From 10e2a3f3f778e422c7b515c0d9f93c91a93f26fa Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 13 Mar 2020 00:20:48 +0200 Subject: [PATCH 001/140] New AST structure --- pkg/ast/ast.go | 200 ++++ pkg/ast/ast_test.go | 191 ++++ pkg/ast/node.go | 1814 ++++++++++++++++++++++++++++++++++ pkg/ast/traverser/dfs.go | 491 +++++++++ pkg/ast/visitor/dump.go | 1003 +++++++++++++++++++ pkg/ast/visitor/dump_test.go | 43 + pkg/ast/visitor/null.go | 683 +++++++++++++ 7 files changed, 4425 insertions(+) create mode 100644 pkg/ast/ast.go create mode 100644 pkg/ast/ast_test.go create mode 100644 pkg/ast/node.go create mode 100644 pkg/ast/traverser/dfs.go create mode 100644 pkg/ast/visitor/dump.go create mode 100644 pkg/ast/visitor/dump_test.go create mode 100644 pkg/ast/visitor/null.go diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go new file mode 100644 index 0000000..a7a1da6 --- /dev/null +++ b/pkg/ast/ast.go @@ -0,0 +1,200 @@ +package ast + +import ( + "github.com/z7zmey/php-parser/freefloating" + "github.com/z7zmey/php-parser/position" +) + +type Vertex interface { + Accept(v NodeVisitor) + + SetPosition(p *position.Position) + GetPosition() *position.Position + GetFreeFloating() *freefloating.Collection +} + +type Traverser interface { + Traverse(n Vertex) +} + +type Visitor interface { + Enter(key string, singleNode bool) + Leave(key string, singleNode bool) + + EnterNode(n Vertex) bool + LeaveNode(n Vertex) +} + +type NodeVisitor interface { + Root(n *Root) + Nullable(n *Nullable) + Parameter(n *Parameter) + Identifier(n *Identifier) + ArgumentList(n *ArgumentList) + Argument(n *Argument) + + StmtAltElse(n *StmtAltElse) + StmtAltElseIf(n *StmtAltElseIf) + StmtAltFor(n *StmtAltFor) + StmtAltForeach(n *StmtAltForeach) + StmtAltIf(n *StmtAltIf) + StmtAltSwitch(n *StmtAltSwitch) + StmtAltWhile(n *StmtAltWhile) + StmtBreak(n *StmtBreak) + StmtCase(n *StmtCase) + StmtCaseList(n *StmtCaseList) + StmtCatch(n *StmtCatch) + StmtClass(n *StmtClass) + StmtClassConstList(n *StmtClassConstList) + StmtClassExtends(n *StmtClassExtends) + StmtClassImplements(n *StmtClassImplements) + StmtClassMethod(n *StmtClassMethod) + StmtConstList(n *StmtConstList) + StmtConstant(n *StmtConstant) + StmtContinue(n *StmtContinue) + StmtDeclare(n *StmtDeclare) + StmtDefault(n *StmtDefault) + StmtDo(n *StmtDo) + StmtEcho(n *StmtEcho) + StmtElse(n *StmtElse) + StmtElseIf(n *StmtElseIf) + StmtExpression(n *StmtExpression) + StmtFinally(n *StmtFinally) + StmtFor(n *StmtFor) + StmtForeach(n *StmtForeach) + StmtFunction(n *StmtFunction) + StmtGlobal(n *StmtGlobal) + StmtGoto(n *StmtGoto) + StmtGroupUse(n *StmtGroupUse) + StmtHaltCompiler(n *StmtHaltCompiler) + StmtIf(n *StmtIf) + StmtInlineHtml(n *StmtInlineHtml) + StmtInterface(n *StmtInterface) + StmtInterfaceExtends(n *StmtInterfaceExtends) + StmtLabel(n *StmtLabel) + StmtNamespace(n *StmtNamespace) + StmtNop(n *StmtNop) + StmtProperty(n *StmtProperty) + StmtPropertyList(n *StmtPropertyList) + StmtReturn(n *StmtReturn) + StmtStatic(n *StmtStatic) + StmtStaticVar(n *StmtStaticVar) + StmtStmtList(n *StmtStmtList) + StmtSwitch(n *StmtSwitch) + StmtThrow(n *StmtThrow) + StmtTrait(n *StmtTrait) + StmtTraitAdaptationList(n *StmtTraitAdaptationList) + StmtTraitMethodRef(n *StmtTraitMethodRef) + StmtTraitUse(n *StmtTraitUse) + StmtTraitUseAlias(n *StmtTraitUseAlias) + StmtTraitUsePrecedence(n *StmtTraitUsePrecedence) + StmtTry(n *StmtTry) + StmtUnset(n *StmtUnset) + StmtUse(n *StmtUse) + StmtUseList(n *StmtUseList) + StmtWhile(n *StmtWhile) + + ExprArray(n *ExprArray) + ExprArrayDimFetch(n *ExprArrayDimFetch) + ExprArrayItem(n *ExprArrayItem) + ExprArrowFunction(n *ExprArrowFunction) + ExprBitwiseNot(n *ExprBitwiseNot) + ExprBooleanNot(n *ExprBooleanNot) + ExprClassConstFetch(n *ExprClassConstFetch) + ExprClone(n *ExprClone) + ExprClosure(n *ExprClosure) + ExprClosureUse(n *ExprClosureUse) + ExprConstFetch(n *ExprConstFetch) + ExprEmpty(n *ExprEmpty) + ExprErrorSuppress(n *ExprErrorSuppress) + ExprEval(n *ExprEval) + ExprExit(n *ExprExit) + ExprFunctionCall(n *ExprFunctionCall) + ExprInclude(n *ExprInclude) + ExprIncludeOnce(n *ExprIncludeOnce) + ExprInstanceOf(n *ExprInstanceOf) + ExprIsset(n *ExprIsset) + ExprList(n *ExprList) + ExprMethodCall(n *ExprMethodCall) + ExprNew(n *ExprNew) + ExprPostDec(n *ExprPostDec) + ExprPostInc(n *ExprPostInc) + ExprPreDec(n *ExprPreDec) + ExprPreInc(n *ExprPreInc) + ExprPrint(n *ExprPrint) + ExprPropertyFetch(n *ExprPropertyFetch) + ExprReference(n *ExprReference) + ExprRequire(n *ExprRequire) + ExprRequireOnce(n *ExprRequireOnce) + ExprShellExec(n *ExprShellExec) + ExprShortArray(n *ExprShortArray) + ExprShortList(n *ExprShortList) + ExprStaticCall(n *ExprStaticCall) + ExprStaticPropertyFetch(n *ExprStaticPropertyFetch) + ExprTernary(n *ExprTernary) + ExprUnaryMinus(n *ExprUnaryMinus) + ExprUnaryPlus(n *ExprUnaryPlus) + ExprVariable(n *ExprVariable) + ExprYield(n *ExprYield) + ExprYieldFrom(n *ExprYieldFrom) + + ExprAssign(n *ExprAssign) + ExprAssignReference(n *ExprAssignReference) + ExprAssignBitwiseAnd(n *ExprAssignBitwiseAnd) + ExprAssignBitwiseOr(n *ExprAssignBitwiseOr) + ExprAssignBitwiseXor(n *ExprAssignBitwiseXor) + ExprAssignCoalesce(n *ExprAssignCoalesce) + ExprAssignConcat(n *ExprAssignConcat) + ExprAssignDiv(n *ExprAssignDiv) + ExprAssignMinus(n *ExprAssignMinus) + ExprAssignMod(n *ExprAssignMod) + ExprAssignMul(n *ExprAssignMul) + ExprAssignPlus(n *ExprAssignPlus) + ExprAssignPow(n *ExprAssignPow) + ExprAssignShiftLeft(n *ExprAssignShiftLeft) + ExprAssignShiftRight(n *ExprAssignShiftRight) + + ExprBinaryBitwiseAnd(n *ExprBinaryBitwiseAnd) + ExprBinaryBitwiseOr(n *ExprBinaryBitwiseOr) + ExprBinaryBitwiseXor(n *ExprBinaryBitwiseXor) + ExprBinaryBooleanAnd(n *ExprBinaryBooleanAnd) + ExprBinaryBooleanOr(n *ExprBinaryBooleanOr) + ExprBinaryCoalesce(n *ExprBinaryCoalesce) + ExprBinaryConcat(n *ExprBinaryConcat) + ExprBinaryDiv(n *ExprBinaryDiv) + ExprBinaryEqual(n *ExprBinaryEqual) + ExprBinaryGreater(n *ExprBinaryGreater) + ExprBinaryGreaterOrEqual(n *ExprBinaryGreaterOrEqual) + ExprBinaryIdentical(n *ExprBinaryIdentical) + ExprBinaryLogicalAnd(n *ExprBinaryLogicalAnd) + ExprBinaryLogicalOr(n *ExprBinaryLogicalOr) + ExprBinaryLogicalXor(n *ExprBinaryLogicalXor) + ExprBinaryMinus(n *ExprBinaryMinus) + ExprBinaryMod(n *ExprBinaryMod) + ExprBinaryMul(n *ExprBinaryMul) + ExprBinaryNotEqual(n *ExprBinaryNotEqual) + ExprBinaryNotIdentical(n *ExprBinaryNotIdentical) + ExprBinaryPlus(n *ExprBinaryPlus) + ExprBinaryPow(n *ExprBinaryPow) + ExprBinaryShiftLeft(n *ExprBinaryShiftLeft) + ExprBinaryShiftRight(n *ExprBinaryShiftRight) + ExprBinarySmaller(n *ExprBinarySmaller) + ExprBinarySmallerOrEqual(n *ExprBinarySmallerOrEqual) + ExprBinarySpaceship(n *ExprBinarySpaceship) + + ExprCastArray(n *ExprCastArray) + ExprCastBool(n *ExprCastBool) + ExprCastDouble(n *ExprCastDouble) + ExprCastInt(n *ExprCastInt) + ExprCastObject(n *ExprCastObject) + ExprCastString(n *ExprCastString) + ExprCastUnset(n *ExprCastUnset) + + ScalarDnumber(n *ScalarDnumber) + ScalarEncapsed(n *ScalarEncapsed) + ScalarEncapsedStringPart(n *ScalarEncapsedStringPart) + ScalarHeredoc(n *ScalarHeredoc) + ScalarLnumber(n *ScalarLnumber) + ScalarMagicConstant(n *ScalarMagicConstant) + ScalarString(n *ScalarString) +} diff --git a/pkg/ast/ast_test.go b/pkg/ast/ast_test.go new file mode 100644 index 0000000..bb98e9f --- /dev/null +++ b/pkg/ast/ast_test.go @@ -0,0 +1,191 @@ +package ast_test + +import ( + "bytes" + "encoding/json" + "fmt" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" + "os" + "strings" +) + +func ExampleJSON() { + stxTree := &ast.Root{ + Stmts: []ast.Vertex{ + &ast.Nullable{ + Expr: &ast.Parameter{ + Type: nil, + Var: nil, + DefaultValue: nil, + }, + }, + &ast.Identifier{}, + &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{}, + &ast.Argument{ + Expr: &ast.ScalarDnumber{}, + }, + }, + }, + }, + } + + jsonStxTree, err := json.Marshal(stxTree) + if err != nil { + panic(err) + } + + buf := bytes.NewBuffer(nil) + err = json.Indent(buf, jsonStxTree, "", " ") + if err != nil { + panic(err) + } + + fmt.Fprint(os.Stdout, buf.String()) + + // output: + // { + // "FreeFloating": null, + // "Position": null, + // "Stmts": [ + // { + // "FreeFloating": null, + // "Position": null, + // "Expr": { + // "FreeFloating": null, + // "Position": null, + // "ByRef": false, + // "Variadic": false, + // "Type": null, + // "Var": null, + // "DefaultValue": null + // } + // }, + // { + // "FreeFloating": null, + // "Position": null, + // "Value": "" + // }, + // { + // "FreeFloating": null, + // "Position": null, + // "Arguments": [ + // { + // "FreeFloating": null, + // "Position": null, + // "Variadic": false, + // "IsReference": false, + // "Expr": null + // }, + // { + // "FreeFloating": null, + // "Position": null, + // "Variadic": false, + // "IsReference": false, + // "Expr": { + // "FreeFloating": null, + // "Position": null, + // "Value": "" + // } + // } + // ] + // } + // ] + // } +} + +func ExampleStxTree() { + stxTree := &ast.Root{ + Stmts: []ast.Vertex{ + &ast.Nullable{ + Expr: &ast.Parameter{ + Type: nil, + Var: nil, + DefaultValue: nil, + }, + }, + &ast.Identifier{}, + &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{}, + &ast.Argument{ + Expr: &ast.ScalarDnumber{}, + }, + }, + }, + }, + } + + traverser.NewDFS(&testVisitor{}).Traverse(stxTree) + + //output: + //=> *ast.Root + //=> Stmts: + //=> *ast.Nullable + //=> Expr: + //=> *ast.Parameter + //=> *ast.Identifier + //=> *ast.ArgumentList + //=> Arguments: + //=> *ast.Argument + //=> *ast.Argument + //=> Expr: + //=> *ast.ScalarDnumber +} + +type testVisitor struct { + visitor.Null + depth int +} + + +func (v *testVisitor) Enter(key string, _ bool) { + v.depth++ + fmt.Fprint(os.Stdout, "=>", strings.Repeat(" ", v.depth), key, ":\n") +} + +func (v *testVisitor) Leave(key string, _ bool) { + v.depth-- +} + +func (v *testVisitor) EnterNode(n ast.Vertex) bool { + v.depth++ + n.Accept(v) + + return true +} + +func (v *testVisitor) LeaveNode(_ ast.Vertex) { + v.depth-- +} + +func (v *testVisitor) Root(_ *ast.Root) { + fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Root") +} + +func (v *testVisitor) Nullable(_ *ast.Nullable) { + fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Nullable") +} + +func (v *testVisitor) Parameter(_ *ast.Parameter) { + fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Parameter") +} + +func (v *testVisitor) Identifier(_ *ast.Identifier) { + fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Identifier") +} + +func (v *testVisitor) ArgumentList(_ *ast.ArgumentList) { + fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.ArgumentList") +} + +func (v *testVisitor) Argument(_ *ast.Argument) { + fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Argument") +} + +func (v *testVisitor) ScalarDnumber(_ *ast.ScalarDnumber) { + fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.ScalarDnumber") +} diff --git a/pkg/ast/node.go b/pkg/ast/node.go new file mode 100644 index 0000000..65c2d98 --- /dev/null +++ b/pkg/ast/node.go @@ -0,0 +1,1814 @@ +package ast + +import ( + "github.com/z7zmey/php-parser/freefloating" + "github.com/z7zmey/php-parser/position" +) + +type Node struct { + FreeFloating freefloating.Collection + Position *position.Position +} + +// SetPosition sets node position +func (n *Node) SetPosition(p *position.Position) { + n.Position = p +} + +// GetPosition returns node positions +func (n *Node) GetPosition() *position.Position { + return n.Position +} + +func (n *Node) GetFreeFloating() *freefloating.Collection { + return &n.FreeFloating +} + +// Root node +type Root struct { + Node + Stmts []Vertex +} + +func (n *Root) Accept(v NodeVisitor) { + v.Root(n) +} + +// Nullable node +type Nullable struct { + Node + Expr Vertex +} + +func (n *Nullable) Accept(v NodeVisitor) { + v.Nullable(n) +} + +// Parameter node +type Parameter struct { + Node + ByRef bool + Variadic bool + Type Vertex + Var Vertex + DefaultValue Vertex +} + +func (n *Parameter) Accept(v NodeVisitor) { + v.Parameter(n) +} + +// Identifier node +type Identifier struct { + Node + Value string +} + +func (n *Identifier) Accept(v NodeVisitor) { + v.Identifier(n) +} + +// ArgumentList node +type ArgumentList struct { + Node + Arguments []Vertex +} + +func (n *ArgumentList) Accept(v NodeVisitor) { + v.ArgumentList(n) +} + +// Argument node +type Argument struct { + Node + Variadic bool + IsReference bool + Expr Vertex +} + +func (n *Argument) Accept(v NodeVisitor) { + v.Argument(n) +} + +// ScalarDnumber node +type ScalarDnumber struct { + Node + Value string +} + +func (n *ScalarDnumber) Accept(v NodeVisitor) { + v.ScalarDnumber(n) +} + +// ScalarEncapsed node +type ScalarEncapsed struct { + Node + Parts []Vertex +} + +func (n *ScalarEncapsed) Accept(v NodeVisitor) { + v.ScalarEncapsed(n) +} + +// ScalarEncapsedStringPart node +type ScalarEncapsedStringPart struct { + Node + Value string +} + +func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { + v.ScalarEncapsedStringPart(n) +} + +// ScalarHeredoc node +type ScalarHeredoc struct { + Node + Label string + Parts []Vertex +} + +func (n *ScalarHeredoc) Accept(v NodeVisitor) { + v.ScalarHeredoc(n) +} + +// ScalarLnumber node +type ScalarLnumber struct { + Node + Value string +} + +func (n *ScalarLnumber) Accept(v NodeVisitor) { + v.ScalarLnumber(n) +} + +// ScalarMagicConstant node +type ScalarMagicConstant struct { + Node + Value string +} + +func (n *ScalarMagicConstant) Accept(v NodeVisitor) { + v.ScalarMagicConstant(n) +} + +// ScalarString node +type ScalarString struct { + Node + Value string +} + +func (n *ScalarString) Accept(v NodeVisitor) { + v.ScalarString(n) +} + +// StmtAltElse node +type StmtAltElse struct { + Node + Stmt Vertex +} + +func (n *StmtAltElse) Accept(v NodeVisitor) { + v.StmtAltElse(n) +} + +// StmtAltElseIf node +type StmtAltElseIf struct { + Node + Cond Vertex + Stmt Vertex +} + +func (n *StmtAltElseIf) Accept(v NodeVisitor) { + v.StmtAltElseIf(n) +} + +// StmtAltFor node +type StmtAltFor struct { + Node + Init []Vertex + Cond []Vertex + Loop []Vertex + Stmt Vertex +} + +func (n *StmtAltFor) Accept(v NodeVisitor) { + v.StmtAltFor(n) +} + +// StmtAltForeach node +type StmtAltForeach struct { + Node + Expr Vertex + Key Vertex + Var Vertex + Stmt Vertex +} + +func (n *StmtAltForeach) Accept(v NodeVisitor) { + v.StmtAltForeach(n) +} + +// StmtAltIf node +type StmtAltIf struct { + Node + Cond Vertex + Stmt Vertex + ElseIf []Vertex + Else Vertex +} + +func (n *StmtAltIf) Accept(v NodeVisitor) { + v.StmtAltIf(n) +} + +// StmtAltSwitch node +type StmtAltSwitch struct { + Node + Cond Vertex + CaseList *StmtCaseList +} + +func (n *StmtAltSwitch) Accept(v NodeVisitor) { + v.StmtAltSwitch(n) +} + +// StmtAltWhile node +type StmtAltWhile struct { + Node + Cond Vertex + Stmt Vertex +} + +func (n *StmtAltWhile) Accept(v NodeVisitor) { + v.StmtAltWhile(n) +} + +// StmtBreak node +type StmtBreak struct { + Node + Expr Vertex +} + +func (n *StmtBreak) Accept(v NodeVisitor) { + v.StmtBreak(n) +} + +// StmtCase node +type StmtCase struct { + Node + Cond Vertex + Stmts []Vertex +} + +func (n *StmtCase) Accept(v NodeVisitor) { + v.StmtCase(n) +} + +// StmtCaseList node +type StmtCaseList struct { + Node + Cases []Vertex +} + +func (n *StmtCaseList) Accept(v NodeVisitor) { + v.StmtCaseList(n) +} + +// StmtCatch node +type StmtCatch struct { + Node + Types []Vertex + Var Vertex + Stmts []Vertex +} + +func (n *StmtCatch) Accept(v NodeVisitor) { + v.StmtCatch(n) +} + +// StmtClass node +type StmtClass struct { + Node + ClassName Vertex + Modifiers []Vertex + ArgumentList *ArgumentList + Extends *StmtClassExtends + Implements *StmtClassImplements + Stmts []Vertex +} + +func (n *StmtClass) Accept(v NodeVisitor) { + v.StmtClass(n) +} + +// StmtClassConstList node +type StmtClassConstList struct { + Node + Modifiers []Vertex + Consts []Vertex +} + +func (n *StmtClassConstList) Accept(v NodeVisitor) { + v.StmtClassConstList(n) +} + +// StmtClassExtends node +type StmtClassExtends struct { + Node + ClassName Vertex +} + +func (n *StmtClassExtends) Accept(v NodeVisitor) { + v.StmtClassExtends(n) +} + +// StmtClassImplements node +type StmtClassImplements struct { + Node + InterfaceNames []Vertex +} + +func (n *StmtClassImplements) Accept(v NodeVisitor) { + v.StmtClassImplements(n) +} + +// StmtClassMethod node +type StmtClassMethod struct { + Node + ReturnsRef bool + MethodName Vertex + Modifiers []Vertex + Params []Vertex + ReturnType Vertex + Stmt Vertex +} + +func (n *StmtClassMethod) Accept(v NodeVisitor) { + v.StmtClassMethod(n) +} + +// StmtConstList node +type StmtConstList struct { + Node + Consts []Vertex +} + +func (n *StmtConstList) Accept(v NodeVisitor) { + v.StmtConstList(n) +} + +// StmtConstant node +type StmtConstant struct { + Node + ConstantName Vertex + Expr Vertex +} + +func (n *StmtConstant) Accept(v NodeVisitor) { + v.StmtConstant(n) +} + +// StmtContinue node +type StmtContinue struct { + Node + Expr Vertex +} + +func (n *StmtContinue) Accept(v NodeVisitor) { + v.StmtContinue(n) +} + +// StmtDeclare node +type StmtDeclare struct { + Node + Alt bool + Consts []Vertex + Stmt Vertex +} + +func (n *StmtDeclare) Accept(v NodeVisitor) { + v.StmtDeclare(n) +} + +// StmtDefault node +type StmtDefault struct { + Node + Stmts []Vertex +} + +func (n *StmtDefault) Accept(v NodeVisitor) { + v.StmtDefault(n) +} + +// StmtDo node +type StmtDo struct { + Node + Stmt Vertex + Cond Vertex +} + +func (n *StmtDo) Accept(v NodeVisitor) { + v.StmtDo(n) +} + +// StmtEcho node +type StmtEcho struct { + Node + Exprs []Vertex +} + +func (n *StmtEcho) Accept(v NodeVisitor) { + v.StmtEcho(n) +} + +// StmtElse node +type StmtElse struct { + Node + Stmt Vertex +} + +func (n *StmtElse) Accept(v NodeVisitor) { + v.StmtElse(n) +} + +// StmtElseIf node +type StmtElseIf struct { + Node + Cond Vertex + Stmt Vertex +} + +func (n *StmtElseIf) Accept(v NodeVisitor) { + v.StmtElseIf(n) +} + +// StmtExpression node +type StmtExpression struct { + Node + Expr Vertex +} + +func (n *StmtExpression) Accept(v NodeVisitor) { + v.StmtExpression(n) +} + +// StmtFinally node +type StmtFinally struct { + Node + Stmts []Vertex +} + +func (n *StmtFinally) Accept(v NodeVisitor) { + v.StmtFinally(n) +} + +// StmtFor node +type StmtFor struct { + Node + Init []Vertex + Cond []Vertex + Loop []Vertex + Stmt Vertex +} + +func (n *StmtFor) Accept(v NodeVisitor) { + v.StmtFor(n) +} + +// StmtForeach node +type StmtForeach struct { + Node + Expr Vertex + Key Vertex + Var Vertex + Stmt Vertex +} + +func (n *StmtForeach) Accept(v NodeVisitor) { + v.StmtForeach(n) +} + +// StmtFunction node +type StmtFunction struct { + Node + ReturnsRef bool + FunctionName Vertex + Params []Vertex + ReturnType Vertex + Stmts []Vertex +} + +func (n *StmtFunction) Accept(v NodeVisitor) { + v.StmtFunction(n) +} + +// StmtGlobal node +type StmtGlobal struct { + Node + Vars []Vertex +} + +func (n *StmtGlobal) Accept(v NodeVisitor) { + v.StmtGlobal(n) +} + +// StmtGoto node +type StmtGoto struct { + Node + Label Vertex +} + +func (n *StmtGoto) Accept(v NodeVisitor) { + v.StmtGoto(n) +} + +// StmtGroupUse node +type StmtGroupUse struct { + Node + UseType Vertex + Prefix Vertex + UseList []Vertex +} + +func (n *StmtGroupUse) Accept(v NodeVisitor) { + v.StmtGroupUse(n) +} + +// StmtHaltCompiler node +type StmtHaltCompiler struct { + Node +} + +func (n *StmtHaltCompiler) Accept(v NodeVisitor) { + v.StmtHaltCompiler(n) +} + +// StmtIf node +type StmtIf struct { + Node + Cond Vertex + Stmt Vertex + ElseIf []Vertex + Else Vertex +} + +func (n *StmtIf) Accept(v NodeVisitor) { + v.StmtIf(n) +} + +// StmtInlineHtml node +type StmtInlineHtml struct { + Node + Value string +} + +func (n *StmtInlineHtml) Accept(v NodeVisitor) { + v.StmtInlineHtml(n) +} + +// StmtInterface node +type StmtInterface struct { + Node + InterfaceName Vertex + Extends *StmtInterfaceExtends + Stmts []Vertex +} + +func (n *StmtInterface) Accept(v NodeVisitor) { + v.StmtInterface(n) +} + +// StmtInterfaceExtends node +type StmtInterfaceExtends struct { + Node + InterfaceNames []Vertex +} + +func (n *StmtInterfaceExtends) Accept(v NodeVisitor) { + v.StmtInterfaceExtends(n) +} + +// StmtLabel node +type StmtLabel struct { + Node + LabelName Vertex +} + +func (n *StmtLabel) Accept(v NodeVisitor) { + v.StmtLabel(n) +} + +// StmtNamespace node +type StmtNamespace struct { + Node + NamespaceName Vertex + Stmts []Vertex +} + +func (n *StmtNamespace) Accept(v NodeVisitor) { + v.StmtNamespace(n) +} + +// StmtNop node +type StmtNop struct { + Node +} + +func (n *StmtNop) Accept(v NodeVisitor) { + v.StmtNop(n) +} + +// StmtProperty node +type StmtProperty struct { + Node + Var Vertex + Expr Vertex +} + +func (n *StmtProperty) Accept(v NodeVisitor) { + v.StmtProperty(n) +} + +// StmtPropertyList node +type StmtPropertyList struct { + Node + Modifiers []Vertex + Type Vertex + Properties []Vertex +} + +func (n *StmtPropertyList) Accept(v NodeVisitor) { + v.StmtPropertyList(n) +} + +// StmtReturn node +type StmtReturn struct { + Node + Expr Vertex +} + +func (n *StmtReturn) Accept(v NodeVisitor) { + v.StmtReturn(n) +} + +// StmtStatic node +type StmtStatic struct { + Node + Vars []Vertex +} + +func (n *StmtStatic) Accept(v NodeVisitor) { + v.StmtStatic(n) +} + +// StmtStaticVar node +type StmtStaticVar struct { + Node + Var Vertex + Expr Vertex +} + +func (n *StmtStaticVar) Accept(v NodeVisitor) { + v.StmtStaticVar(n) +} + +// StmtStmtList node +type StmtStmtList struct { + Node + Stmts []Vertex +} + +func (n *StmtStmtList) Accept(v NodeVisitor) { + v.StmtStmtList(n) +} + +// StmtSwitch node +type StmtSwitch struct { + Node + Cond Vertex + CaseList *StmtCaseList +} + +func (n *StmtSwitch) Accept(v NodeVisitor) { + v.StmtSwitch(n) +} + +// StmtThrow node +type StmtThrow struct { + Node + Expr Vertex +} + +func (n *StmtThrow) Accept(v NodeVisitor) { + v.StmtThrow(n) +} + +// StmtTrait node +type StmtTrait struct { + Node + TraitName Vertex + Stmts []Vertex +} + +func (n *StmtTrait) Accept(v NodeVisitor) { + v.StmtTrait(n) +} + +// StmtTraitAdaptationList node +type StmtTraitAdaptationList struct { + Node + Adaptations []Vertex +} + +func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { + v.StmtTraitAdaptationList(n) +} + +// StmtTraitMethodRef node +type StmtTraitMethodRef struct { + Node + Trait Vertex + Method Vertex +} + +func (n *StmtTraitMethodRef) Accept(v NodeVisitor) { + v.StmtTraitMethodRef(n) +} + +// StmtTraitUse node +type StmtTraitUse struct { + Node + Traits []Vertex + TraitAdaptationList Vertex +} + +func (n *StmtTraitUse) Accept(v NodeVisitor) { + v.StmtTraitUse(n) +} + +// StmtTraitUseAlias node +type StmtTraitUseAlias struct { + Node + Ref Vertex + Modifier Vertex + Alias Vertex +} + +func (n *StmtTraitUseAlias) Accept(v NodeVisitor) { + v.StmtTraitUseAlias(n) +} + +// StmtTraitUsePrecedence node +type StmtTraitUsePrecedence struct { + Node + Ref Vertex + Insteadof []Vertex +} + +func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { + v.StmtTraitUsePrecedence(n) +} + +// StmtTry node +type StmtTry struct { + Node + Stmts []Vertex + Catches []Vertex + Finally Vertex +} + +func (n *StmtTry) Accept(v NodeVisitor) { + v.StmtTry(n) +} + +// StmtUnset node +type StmtUnset struct { + Node + Vars []Vertex +} + +func (n *StmtUnset) Accept(v NodeVisitor) { + v.StmtUnset(n) +} + +// StmtUse node +type StmtUse struct { + Node + UseType Vertex + Use Vertex + Alias Vertex +} + +func (n *StmtUse) Accept(v NodeVisitor) { + v.StmtUse(n) +} + +// StmtUseList node +type StmtUseList struct { + Node + UseType Vertex + Uses []Vertex +} + +func (n *StmtUseList) Accept(v NodeVisitor) { + v.StmtUseList(n) +} + +// StmtWhile node +type StmtWhile struct { + Node + Cond Vertex + Stmt Vertex +} + +func (n *StmtWhile) Accept(v NodeVisitor) { + v.StmtWhile(n) +} + +// ExprArray node +type ExprArray struct { + Node + Items []Vertex +} + +func (n *ExprArray) Accept(v NodeVisitor) { + v.ExprArray(n) +} + +// ExprArrayDimFetch node +type ExprArrayDimFetch struct { + Node + Var Vertex + Dim Vertex +} + +func (n *ExprArrayDimFetch) Accept(v NodeVisitor) { + v.ExprArrayDimFetch(n) +} + +// ExprArrayItem node +type ExprArrayItem struct { + Node + Unpack bool + Key Vertex + Val Vertex +} + +func (n *ExprArrayItem) Accept(v NodeVisitor) { + v.ExprArrayItem(n) +} + +// ExprArrowFunction node +type ExprArrowFunction struct { + Node + ReturnsRef bool + Static bool + Params []Vertex + ReturnType Vertex + Expr Vertex +} + +func (n *ExprArrowFunction) Accept(v NodeVisitor) { + v.ExprArrowFunction(n) +} + +// ExprBitwiseNot node +type ExprBitwiseNot struct { + Node + Expr Vertex +} + +func (n *ExprBitwiseNot) Accept(v NodeVisitor) { + v.ExprBitwiseNot(n) +} + +// ExprBooleanNot node +type ExprBooleanNot struct { + Node + Expr Vertex +} + +func (n *ExprBooleanNot) Accept(v NodeVisitor) { + v.ExprBooleanNot(n) +} + +// ExprClassConstFetch node +type ExprClassConstFetch struct { + Node + Class Vertex + ConstantName Vertex +} + +func (n *ExprClassConstFetch) Accept(v NodeVisitor) { + v.ExprClassConstFetch(n) +} + +// ExprClone node +type ExprClone struct { + Node + Expr Vertex +} + +func (n *ExprClone) Accept(v NodeVisitor) { + v.ExprClone(n) +} + +// ExprClosure node +type ExprClosure struct { + Node + ReturnsRef bool + Static bool + Params []Vertex + ClosureUse *ExprClosureUse + ReturnType Vertex + Stmts []Vertex +} + +func (n *ExprClosure) Accept(v NodeVisitor) { + v.ExprClosure(n) +} + +// ExprClosureUse node +type ExprClosureUse struct { + Node + Uses []Vertex +} + +func (n *ExprClosureUse) Accept(v NodeVisitor) { + v.ExprClosureUse(n) +} + +// ExprConstFetch node +type ExprConstFetch struct { + Node + Const Vertex +} + +func (n *ExprConstFetch) Accept(v NodeVisitor) { + v.ExprConstFetch(n) +} + +// ExprEmpty node +type ExprEmpty struct { + Node + Expr Vertex +} + +func (n *ExprEmpty) Accept(v NodeVisitor) { + v.ExprEmpty(n) +} + +// ExprErrorSuppress node +type ExprErrorSuppress struct { + Node + Expr Vertex +} + +func (n *ExprErrorSuppress) Accept(v NodeVisitor) { + v.ExprErrorSuppress(n) +} + +// ExprEval node +type ExprEval struct { + Node + Expr Vertex +} + +func (n *ExprEval) Accept(v NodeVisitor) { + v.ExprEval(n) +} + +// ExprExit node +type ExprExit struct { + Node + Die bool + Expr Vertex +} + +func (n *ExprExit) Accept(v NodeVisitor) { + v.ExprExit(n) +} + +// ExprFunctionCall node +type ExprFunctionCall struct { + Node + Function Vertex + ArgumentList *ArgumentList +} + +func (n *ExprFunctionCall) Accept(v NodeVisitor) { + v.ExprFunctionCall(n) +} + +// ExprInclude node +type ExprInclude struct { + Node + Expr Vertex +} + +func (n *ExprInclude) Accept(v NodeVisitor) { + v.ExprInclude(n) +} + +// ExprIncludeOnce node +type ExprIncludeOnce struct { + Node + Expr Vertex +} + +func (n *ExprIncludeOnce) Accept(v NodeVisitor) { + v.ExprIncludeOnce(n) +} + +// ExprInstanceOf node +type ExprInstanceOf struct { + Node + Expr Vertex + Class Vertex +} + +func (n *ExprInstanceOf) Accept(v NodeVisitor) { + v.ExprInstanceOf(n) +} + +// ExprIsset node +type ExprIsset struct { + Node + Vars []Vertex +} + +func (n *ExprIsset) Accept(v NodeVisitor) { + v.ExprIsset(n) +} + +// ExprList node +type ExprList struct { + Node + Items []Vertex +} + +func (n *ExprList) Accept(v NodeVisitor) { + v.ExprList(n) +} + +// ExprMethodCall node +type ExprMethodCall struct { + Node + Var Vertex + Method Vertex + ArgumentList *ArgumentList +} + +func (n *ExprMethodCall) Accept(v NodeVisitor) { + v.ExprMethodCall(n) +} + +// ExprNew node +type ExprNew struct { + Node + Class Vertex + ArgumentList *ArgumentList +} + +func (n *ExprNew) Accept(v NodeVisitor) { + v.ExprNew(n) +} + +// ExprPostDec node +type ExprPostDec struct { + Node + Var Vertex +} + +func (n *ExprPostDec) Accept(v NodeVisitor) { + v.ExprPostDec(n) +} + +// ExprPostInc node +type ExprPostInc struct { + Node + Var Vertex +} + +func (n *ExprPostInc) Accept(v NodeVisitor) { + v.ExprPostInc(n) +} + +// ExprPreDec node +type ExprPreDec struct { + Node + Var Vertex +} + +func (n *ExprPreDec) Accept(v NodeVisitor) { + v.ExprPreDec(n) +} + +// ExprPreInc node +type ExprPreInc struct { + Node + Var Vertex +} + +func (n *ExprPreInc) Accept(v NodeVisitor) { + v.ExprPreInc(n) +} + +// ExprPrint node +type ExprPrint struct { + Node + Expr Vertex +} + +func (n *ExprPrint) Accept(v NodeVisitor) { + v.ExprPrint(n) +} + +// ExprPropertyFetch node +type ExprPropertyFetch struct { + Node + Var Vertex + Property Vertex +} + +func (n *ExprPropertyFetch) Accept(v NodeVisitor) { + v.ExprPropertyFetch(n) +} + +// ExprReference node +type ExprReference struct { + Node + Var Vertex +} + +func (n *ExprReference) Accept(v NodeVisitor) { + v.ExprReference(n) +} + +// ExprRequire node +type ExprRequire struct { + Node + Expr Vertex +} + +func (n *ExprRequire) Accept(v NodeVisitor) { + v.ExprRequire(n) +} + +// ExprRequireOnce node +type ExprRequireOnce struct { + Node + Expr Vertex +} + +func (n *ExprRequireOnce) Accept(v NodeVisitor) { + v.ExprRequireOnce(n) +} + +// ExprShellExec node +type ExprShellExec struct { + Node + Parts []Vertex +} + +func (n *ExprShellExec) Accept(v NodeVisitor) { + v.ExprShellExec(n) +} + +// ExprShortArray node +type ExprShortArray struct { + Node + Items []Vertex +} + +func (n *ExprShortArray) Accept(v NodeVisitor) { + v.ExprShortArray(n) +} + +// ExprShortList node +type ExprShortList struct { + Node + Items []Vertex +} + +func (n *ExprShortList) Accept(v NodeVisitor) { + v.ExprShortList(n) +} + +// ExprStaticCall node +type ExprStaticCall struct { + Node + Class Vertex + Call Vertex + ArgumentList *ArgumentList +} + +func (n *ExprStaticCall) Accept(v NodeVisitor) { + v.ExprStaticCall(n) +} + +// ExprStaticPropertyFetch node +type ExprStaticPropertyFetch struct { + Node + Class Vertex + Property Vertex +} + +func (n *ExprStaticPropertyFetch) Accept(v NodeVisitor) { + v.ExprStaticPropertyFetch(n) +} + +// ExprTernary node +type ExprTernary struct { + Node + Condition Vertex + IfTrue Vertex + IfFalse Vertex +} + +func (n *ExprTernary) Accept(v NodeVisitor) { + v.ExprTernary(n) +} + +// ExprUnaryMinus node +type ExprUnaryMinus struct { + Node + Expr Vertex +} + +func (n *ExprUnaryMinus) Accept(v NodeVisitor) { + v.ExprUnaryMinus(n) +} + +// ExprUnaryPlus node +type ExprUnaryPlus struct { + Node + Expr Vertex +} + +func (n *ExprUnaryPlus) Accept(v NodeVisitor) { + v.ExprUnaryPlus(n) +} + +// ExprVariable node +type ExprVariable struct { + Node + VarName Vertex +} + +func (n *ExprVariable) Accept(v NodeVisitor) { + v.ExprVariable(n) +} + +// ExprYield node +type ExprYield struct { + Node + Key Vertex + Value Vertex +} + +func (n *ExprYield) Accept(v NodeVisitor) { + v.ExprYield(n) +} + +// ExprYieldFrom node +type ExprYieldFrom struct { + Node + Expr Vertex +} + +func (n *ExprYieldFrom) Accept(v NodeVisitor) { + v.ExprYieldFrom(n) +} + +// ExprCastArray node +type ExprCastArray struct { + Node + Expr Vertex +} + +func (n *ExprCastArray) Accept(v NodeVisitor) { + v.ExprCastArray(n) +} + +// ExprCastBool node +type ExprCastBool struct { + Node + Expr Vertex +} + +func (n *ExprCastBool) Accept(v NodeVisitor) { + v.ExprCastBool(n) +} + +// ExprCastDouble node +type ExprCastDouble struct { + Node + Expr Vertex +} + +func (n *ExprCastDouble) Accept(v NodeVisitor) { + v.ExprCastDouble(n) +} + +// ExprCastInt node +type ExprCastInt struct { + Node + Expr Vertex +} + +func (n *ExprCastInt) Accept(v NodeVisitor) { + v.ExprCastInt(n) +} + +// ExprCastObject node +type ExprCastObject struct { + Node + Expr Vertex +} + +func (n *ExprCastObject) Accept(v NodeVisitor) { + v.ExprCastObject(n) +} + +// ExprCastString node +type ExprCastString struct { + Node + Expr Vertex +} + +func (n *ExprCastString) Accept(v NodeVisitor) { + v.ExprCastString(n) +} + +// ExprCastUnset node +type ExprCastUnset struct { + Node + Expr Vertex +} + +func (n *ExprCastUnset) Accept(v NodeVisitor) { + v.ExprCastUnset(n) +} + +// ExprAssign node +type ExprAssign struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssign) Accept(v NodeVisitor) { + v.ExprAssign(n) +} + +// ExprAssignReference node +type ExprAssignReference struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignReference) Accept(v NodeVisitor) { + v.ExprAssignReference(n) +} + +// ExprAssignBitwiseAnd node +type ExprAssignBitwiseAnd struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { + v.ExprAssignBitwiseAnd(n) +} + +// ExprAssignBitwiseOr node +type ExprAssignBitwiseOr struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { + v.ExprAssignBitwiseOr(n) +} + +// ExprAssignBitwiseXor node +type ExprAssignBitwiseXor struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { + v.ExprAssignBitwiseXor(n) +} + +// ExprAssignCoalesce node +type ExprAssignCoalesce struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { + v.ExprAssignCoalesce(n) +} + +// ExprAssignConcat node +type ExprAssignConcat struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignConcat) Accept(v NodeVisitor) { + v.ExprAssignConcat(n) +} + +// ExprAssignDiv node +type ExprAssignDiv struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignDiv) Accept(v NodeVisitor) { + v.ExprAssignDiv(n) +} + +// ExprAssignMinus node +type ExprAssignMinus struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignMinus) Accept(v NodeVisitor) { + v.ExprAssignMinus(n) +} + +// ExprAssignMod node +type ExprAssignMod struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignMod) Accept(v NodeVisitor) { + v.ExprAssignMod(n) +} + +// ExprAssignMul node +type ExprAssignMul struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignMul) Accept(v NodeVisitor) { + v.ExprAssignMul(n) +} + +// ExprAssignPlus node +type ExprAssignPlus struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignPlus) Accept(v NodeVisitor) { + v.ExprAssignPlus(n) +} + +// ExprAssignPow node +type ExprAssignPow struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignPow) Accept(v NodeVisitor) { + v.ExprAssignPow(n) +} + +// ExprAssignShiftLeft node +type ExprAssignShiftLeft struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { + v.ExprAssignShiftLeft(n) +} + +// ExprAssignShiftRight node +type ExprAssignShiftRight struct { + Node + Var Vertex + Expr Vertex +} + +func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { + v.ExprAssignShiftRight(n) +} + +// ExprBinaryBitwiseAnd node +type ExprBinaryBitwiseAnd struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryBitwiseAnd) Accept(v NodeVisitor) { + v.ExprBinaryBitwiseAnd(n) +} + +// ExprBinaryBitwiseOr node +type ExprBinaryBitwiseOr struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryBitwiseOr) Accept(v NodeVisitor) { + v.ExprBinaryBitwiseOr(n) +} + +// ExprBinaryBitwiseXor node +type ExprBinaryBitwiseXor struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryBitwiseXor) Accept(v NodeVisitor) { + v.ExprBinaryBitwiseXor(n) +} + +// ExprBinaryBooleanAnd node +type ExprBinaryBooleanAnd struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryBooleanAnd) Accept(v NodeVisitor) { + v.ExprBinaryBooleanAnd(n) +} + +// ExprBinaryBooleanOr node +type ExprBinaryBooleanOr struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryBooleanOr) Accept(v NodeVisitor) { + v.ExprBinaryBooleanOr(n) +} + +// ExprBinaryCoalesce node +type ExprBinaryCoalesce struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryCoalesce) Accept(v NodeVisitor) { + v.ExprBinaryCoalesce(n) +} + +// ExprBinaryConcat node +type ExprBinaryConcat struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryConcat) Accept(v NodeVisitor) { + v.ExprBinaryConcat(n) +} + +// ExprBinaryDiv node +type ExprBinaryDiv struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryDiv) Accept(v NodeVisitor) { + v.ExprBinaryDiv(n) +} + +// ExprBinaryEqual node +type ExprBinaryEqual struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryEqual) Accept(v NodeVisitor) { + v.ExprBinaryEqual(n) +} + +// ExprBinaryGreater node +type ExprBinaryGreater struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryGreater) Accept(v NodeVisitor) { + v.ExprBinaryGreater(n) +} + +// ExprBinaryGreaterOrEqual node +type ExprBinaryGreaterOrEqual struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryGreaterOrEqual) Accept(v NodeVisitor) { + v.ExprBinaryGreaterOrEqual(n) +} + +// ExprBinaryIdentical node +type ExprBinaryIdentical struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryIdentical) Accept(v NodeVisitor) { + v.ExprBinaryIdentical(n) +} + +// ExprBinaryLogicalAnd node +type ExprBinaryLogicalAnd struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryLogicalAnd) Accept(v NodeVisitor) { + v.ExprBinaryLogicalAnd(n) +} + +// ExprBinaryLogicalOr node +type ExprBinaryLogicalOr struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryLogicalOr) Accept(v NodeVisitor) { + v.ExprBinaryLogicalOr(n) +} + +// ExprBinaryLogicalXor node +type ExprBinaryLogicalXor struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryLogicalXor) Accept(v NodeVisitor) { + v.ExprBinaryLogicalXor(n) +} + +// ExprBinaryMinus node +type ExprBinaryMinus struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryMinus) Accept(v NodeVisitor) { + v.ExprBinaryMinus(n) +} + +// ExprBinaryMod node +type ExprBinaryMod struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryMod) Accept(v NodeVisitor) { + v.ExprBinaryMod(n) +} + +// ExprBinaryMul node +type ExprBinaryMul struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryMul) Accept(v NodeVisitor) { + v.ExprBinaryMul(n) +} + +// ExprBinaryNotEqual node +type ExprBinaryNotEqual struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryNotEqual) Accept(v NodeVisitor) { + v.ExprBinaryNotEqual(n) +} + +// ExprBinaryNotIdentical node +type ExprBinaryNotIdentical struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryNotIdentical) Accept(v NodeVisitor) { + v.ExprBinaryNotIdentical(n) +} + +// ExprBinaryPlus node +type ExprBinaryPlus struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryPlus) Accept(v NodeVisitor) { + v.ExprBinaryPlus(n) +} + +// ExprBinaryPow node +type ExprBinaryPow struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryPow) Accept(v NodeVisitor) { + v.ExprBinaryPow(n) +} + +// ExprBinaryShiftLeft node +type ExprBinaryShiftLeft struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryShiftLeft) Accept(v NodeVisitor) { + v.ExprBinaryShiftLeft(n) +} + +// ExprBinaryShiftRight node +type ExprBinaryShiftRight struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinaryShiftRight) Accept(v NodeVisitor) { + v.ExprBinaryShiftRight(n) +} + +// ExprBinarySmaller node +type ExprBinarySmaller struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinarySmaller) Accept(v NodeVisitor) { + v.ExprBinarySmaller(n) +} + +// ExprBinarySmallerOrEqual node +type ExprBinarySmallerOrEqual struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinarySmallerOrEqual) Accept(v NodeVisitor) { + v.ExprBinarySmallerOrEqual(n) +} + +// ExprBinarySpaceship node +type ExprBinarySpaceship struct { + Node + Left Vertex + Right Vertex +} + +func (n *ExprBinarySpaceship) Accept(v NodeVisitor) { + v.ExprBinarySpaceship(n) +} diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go new file mode 100644 index 0000000..f3d745e --- /dev/null +++ b/pkg/ast/traverser/dfs.go @@ -0,0 +1,491 @@ +package traverser + +import "github.com/z7zmey/php-parser/pkg/ast" + +type DFS struct { + visitor ast.Visitor +} + +func NewDFS(visitor ast.Visitor) *DFS { + return &DFS{ + visitor: visitor, + } +} + +func (t *DFS) Traverse(n ast.Vertex) { + if n == nil { + return + } + + if !t.visitor.EnterNode(n) { + return + } + + switch nn := n.(type) { + case *ast.Root: + t.traverseArray("Stmts", nn.Stmts) + case *ast.Nullable: + t.traverseSingle("Expr", nn.Expr) + case *ast.Parameter: + t.traverseSingle("Type", nn.Type) + t.traverseSingle("Var", nn.Var) + t.traverseSingle("DefaultValue", nn.DefaultValue) + case *ast.Identifier: + case *ast.ArgumentList: + t.traverseArray("Arguments", nn.Arguments) + case *ast.Argument: + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtAltElse: + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtAltElseIf: + t.traverseSingle("Cond", nn.Cond) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtAltFor: + t.traverseArray("Init", nn.Init) + t.traverseArray("Cond", nn.Cond) + t.traverseArray("Loop", nn.Loop) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtAltForeach: + t.traverseSingle("Expr", nn.Expr) + t.traverseSingle("Key", nn.Key) + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtAltIf: + t.traverseSingle("Cond", nn.Cond) + t.traverseSingle("Stmt", nn.Stmt) + t.traverseArray("ElseIf", nn.ElseIf) + t.traverseSingle("Else", nn.Else) + case *ast.StmtAltSwitch: + t.traverseSingle("Cond", nn.Cond) + t.traverseSingle("CaseList", nn.CaseList) + case *ast.StmtAltWhile: + t.traverseSingle("Cond", nn.Cond) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtBreak: + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtCase: + t.traverseSingle("Cond", nn.Cond) + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtCaseList: + t.traverseArray("Cases", nn.Cases) + case *ast.StmtCatch: + t.traverseArray("Types", nn.Types) + t.traverseSingle("Var", nn.Var) + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtClass: + t.traverseSingle("ClassName", nn.ClassName) + t.traverseArray("Modifiers", nn.Modifiers) + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtClassConstList: + t.traverseArray("Modifiers", nn.Modifiers) + t.traverseArray("Consts", nn.Consts) + case *ast.StmtClassExtends: + t.traverseSingle("ClassName", nn.ClassName) + case *ast.StmtClassImplements: + t.traverseArray("InterfaceNames", nn.InterfaceNames) + case *ast.StmtClassMethod: + t.traverseSingle("MethodName", nn.MethodName) + t.traverseArray("Modifiers", nn.Modifiers) + t.traverseArray("Params", nn.Params) + t.traverseSingle("ReturnType", nn.ReturnType) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtConstList: + t.traverseArray("Consts", nn.Consts) + case *ast.StmtConstant: + t.traverseSingle("ConstantName", nn.ConstantName) + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtContinue: + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtDeclare: + t.traverseArray("Consts", nn.Consts) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtDefault: + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtDo: + t.traverseSingle("Stmt", nn.Stmt) + t.traverseSingle("Cond", nn.Cond) + case *ast.StmtEcho: + t.traverseArray("Exprs", nn.Exprs) + case *ast.StmtElse: + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtElseIf: + t.traverseSingle("Cond", nn.Cond) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtExpression: + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtFinally: + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtFor: + t.traverseArray("Init", nn.Init) + t.traverseArray("Cond", nn.Cond) + t.traverseArray("Loop", nn.Loop) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtForeach: + t.traverseSingle("Expr", nn.Expr) + t.traverseSingle("Key", nn.Key) + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.StmtFunction: + t.traverseSingle("FunctionName", nn.FunctionName) + t.traverseArray("Params", nn.Params) + t.traverseSingle("ReturnType", nn.ReturnType) + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtGlobal: + t.traverseArray("Vars", nn.Vars) + case *ast.StmtGoto: + t.traverseSingle("Label", nn.Label) + case *ast.StmtGroupUse: + t.traverseSingle("UseType", nn.UseType) + t.traverseSingle("Prefix", nn.Prefix) + t.traverseArray("UseList", nn.UseList) + case *ast.StmtHaltCompiler: + case *ast.StmtIf: + t.traverseSingle("Cond", nn.Cond) + t.traverseSingle("Stmt", nn.Stmt) + t.traverseArray("ElseIf", nn.ElseIf) + t.traverseSingle("Else", nn.Else) + case *ast.StmtInlineHtml: + case *ast.StmtInterface: + t.traverseSingle("InterfaceName", nn.InterfaceName) + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtInterfaceExtends: + t.traverseArray("InterfaceNames", nn.InterfaceNames) + case *ast.StmtLabel: + t.traverseSingle("LabelName", nn.LabelName) + case *ast.StmtNamespace: + t.traverseSingle("NamespaceName", nn.NamespaceName) + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtNop: + case *ast.StmtProperty: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtPropertyList: + t.traverseArray("Modifiers", nn.Modifiers) + t.traverseSingle("Type", nn.Type) + t.traverseArray("Properties", nn.Properties) + case *ast.StmtReturn: + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtStatic: + t.traverseArray("Vars", nn.Vars) + case *ast.StmtStaticVar: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtStmtList: + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtSwitch: + t.traverseSingle("Cond", nn.Cond) + case *ast.StmtThrow: + t.traverseSingle("Expr", nn.Expr) + case *ast.StmtTrait: + t.traverseSingle("TraitName", nn.TraitName) + t.traverseArray("Stmts", nn.Stmts) + case *ast.StmtTraitAdaptationList: + t.traverseArray("Adaptations", nn.Adaptations) + case *ast.StmtTraitMethodRef: + t.traverseSingle("Trait", nn.Trait) + t.traverseSingle("Method", nn.Method) + case *ast.StmtTraitUse: + t.traverseArray("Traits", nn.Traits) + t.traverseSingle("TraitAdaptationList", nn.TraitAdaptationList) + case *ast.StmtTraitUseAlias: + t.traverseSingle("Ref", nn.Ref) + t.traverseSingle("Modifier", nn.Modifier) + t.traverseSingle("Alias", nn.Alias) + case *ast.StmtTraitUsePrecedence: + t.traverseSingle("Ref", nn.Ref) + t.traverseArray("Insteadof", nn.Insteadof) + case *ast.StmtTry: + t.traverseArray("Stmts", nn.Stmts) + t.traverseArray("Catches", nn.Catches) + t.traverseSingle("Finally", nn.Finally) + case *ast.StmtUnset: + t.traverseArray("Vars", nn.Vars) + case *ast.StmtUse: + t.traverseSingle("UseType", nn.UseType) + t.traverseSingle("Use", nn.Use) + t.traverseSingle("Alias", nn.Alias) + case *ast.StmtUseList: + t.traverseSingle("UseType", nn.UseType) + t.traverseArray("Uses", nn.Uses) + case *ast.StmtWhile: + t.traverseSingle("Cond", nn.Cond) + t.traverseSingle("Stmt", nn.Stmt) + case *ast.ExprArray: + t.traverseArray("Items", nn.Items) + case *ast.ExprArrayDimFetch: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Dim", nn.Dim) + case *ast.ExprArrayItem: + t.traverseSingle("Key", nn.Key) + t.traverseSingle("Val", nn.Val) + case *ast.ExprArrowFunction: + t.traverseArray("Params", nn.Params) + t.traverseSingle("ReturnType", nn.ReturnType) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprBitwiseNot: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprBooleanNot: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprClassConstFetch: + t.traverseSingle("Class", nn.Class) + t.traverseSingle("ConstantName", nn.ConstantName) + case *ast.ExprClone: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprClosure: + t.traverseArray("Params", nn.Params) + t.traverseSingle("ClosureUse", nn.ClosureUse) + t.traverseSingle("ReturnType", nn.ReturnType) + t.traverseArray("Stmts", nn.Stmts) + case *ast.ExprClosureUse: + t.traverseArray("Uses", nn.Uses) + case *ast.ExprConstFetch: + t.traverseSingle("Const", nn.Const) + case *ast.ExprEmpty: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprErrorSuppress: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprEval: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprExit: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprFunctionCall: + t.traverseSingle("Function", nn.Function) + t.traverseSingle("ArgumentList", nn.ArgumentList) + case *ast.ExprInclude: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprIncludeOnce: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprInstanceOf: + t.traverseSingle("Expr", nn.Expr) + t.traverseSingle("Class", nn.Class) + case *ast.ExprIsset: + t.traverseArray("Vars", nn.Vars) + case *ast.ExprList: + t.traverseArray("Items", nn.Items) + case *ast.ExprMethodCall: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Method", nn.Method) + case *ast.ExprNew: + t.traverseSingle("Class", nn.Class) + case *ast.ExprPostDec: + t.traverseSingle("Var", nn.Var) + case *ast.ExprPostInc: + t.traverseSingle("Var", nn.Var) + case *ast.ExprPreDec: + t.traverseSingle("Var", nn.Var) + case *ast.ExprPreInc: + t.traverseSingle("Var", nn.Var) + case *ast.ExprPrint: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprPropertyFetch: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Property", nn.Property) + case *ast.ExprReference: + t.traverseSingle("Var", nn.Var) + case *ast.ExprRequire: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprRequireOnce: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprShellExec: + t.traverseArray("Parts", nn.Parts) + case *ast.ExprShortArray: + t.traverseArray("Items", nn.Items) + case *ast.ExprShortList: + t.traverseArray("Items", nn.Items) + case *ast.ExprStaticCall: + t.traverseSingle("Class", nn.Class) + t.traverseSingle("Call", nn.Call) + t.traverseSingle("ArgumentList", nn.ArgumentList) + case *ast.ExprStaticPropertyFetch: + t.traverseSingle("Class", nn.Class) + t.traverseSingle("Property", nn.Property) + case *ast.ExprTernary: + t.traverseSingle("Condition", nn.Condition) + t.traverseSingle("IfTrue", nn.IfTrue) + t.traverseSingle("IfFalse", nn.IfFalse) + case *ast.ExprUnaryMinus: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprUnaryPlus: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprVariable: + t.traverseSingle("VarName", nn.VarName) + case *ast.ExprYield: + t.traverseSingle("Key", nn.Key) + t.traverseSingle("Value", nn.Value) + case *ast.ExprYieldFrom: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssign: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignReference: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignBitwiseAnd: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignBitwiseOr: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignBitwiseXor: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignCoalesce: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignConcat: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignDiv: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignMinus: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignMod: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignMul: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignPlus: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignPow: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignShiftLeft: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprAssignShiftRight: + t.traverseSingle("Var", nn.Var) + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprBinaryBitwiseAnd: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryBitwiseOr: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryBitwiseXor: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryBooleanAnd: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryBooleanOr: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryCoalesce: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryConcat: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryDiv: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryEqual: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryGreater: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryGreaterOrEqual: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryIdentical: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryLogicalAnd: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryLogicalOr: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryLogicalXor: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryMinus: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryMod: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryMul: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryNotEqual: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryNotIdentical: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryPlus: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryPow: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryShiftLeft: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinaryShiftRight: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinarySmaller: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinarySmallerOrEqual: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprBinarySpaceship: + t.traverseSingle("Left", nn.Left) + t.traverseSingle("Right", nn.Right) + case *ast.ExprCastArray: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprCastBool: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprCastDouble: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprCastInt: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprCastObject: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprCastString: + t.traverseSingle("Expr", nn.Expr) + case *ast.ExprCastUnset: + t.traverseSingle("Expr", nn.Expr) + case *ast.ScalarDnumber: + case *ast.ScalarEncapsed: + t.traverseArray("Parts", nn.Parts) + case *ast.ScalarEncapsedStringPart: + case *ast.ScalarHeredoc: + t.traverseArray("Parts", nn.Parts) + case *ast.ScalarLnumber: + case *ast.ScalarMagicConstant: + case *ast.ScalarString: + } + + t.visitor.LeaveNode(n) +} + +func (t *DFS) traverseSingle(key string, n ast.Vertex) { + if n == nil { + return + } + + t.visitor.Enter(key, true) + t.Traverse(n) + t.visitor.Leave(key, true) +} + +func (t *DFS) traverseArray(key string, nn []ast.Vertex) { + if nn == nil { + return + } + + t.visitor.Enter(key, false) + for _, c := range nn { + t.Traverse(c) + } + t.visitor.Leave(key, false) +} diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go new file mode 100644 index 0000000..b013607 --- /dev/null +++ b/pkg/ast/visitor/dump.go @@ -0,0 +1,1003 @@ +package visitor + +import ( + "fmt" + "github.com/z7zmey/php-parser/pkg/ast" + "io" + "strings" +) + +type meta struct { + singleNode bool +} + +type Dump struct { + writer io.Writer + indent int + depth int + stack []meta +} + +func NewDump(writer io.Writer) *Dump { + return &Dump{writer: writer} +} + +func (v *Dump) print(str string) { + _, err := io.WriteString(v.writer, str) + if err != nil { + panic(err) + } +} + +func (v *Dump) printIndent(indentDepth int) { + v.print(strings.Repeat("\t", indentDepth)) +} + +func (v *Dump) printIndentIfNotSingle(indentDepth int) { + if !v.stack[v.depth-1].singleNode { + v.print(strings.Repeat("\t", indentDepth)) + } +} + +func (v *Dump) Enter(key string, singleNode bool) { + if len(v.stack) < v.depth+1 { + v.stack = append(v.stack, meta{}) + } + + v.stack[v.depth].singleNode = singleNode + + v.printIndent(v.indent) + v.print(key) + v.print(": ") + + if !singleNode { + v.print("[]ast.Vertex{\n") + v.indent++ + } +} + +func (v *Dump) Leave(_ string, singleNode bool) { + if !singleNode { + v.indent-- + v.printIndent(v.indent) + v.print("},\n") + } +} + +func (v *Dump) EnterNode(n ast.Vertex) bool { + v.indent++ + v.depth++ + + if len(v.stack) < v.depth { + v.stack = append(v.stack, meta{}) + } + + n.Accept(v) + + return true +} + +func (v *Dump) LeaveNode(_ ast.Vertex) { + v.indent-- + v.depth-- + v.printIndent(v.indent) + v.print("}") + if v.depth != 0 { + v.print(",") + } + v.print("\n") +} + +func (v *Dump) Root(_ *ast.Root) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.Root{\n") +} + +func (v *Dump) Nullable(_ *ast.Nullable) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.Nullable{\n") +} + +func (v *Dump) Parameter(n *ast.Parameter) { + v.printIndent(v.indent - 1) + v.print("&ast.Parameter{\n") + + if n.ByRef { + v.printIndent(v.indent) + v.print("ByRef: true,\n") + } + + if n.Variadic { + v.printIndent(v.indent) + v.print("Variadic: true,\n") + } +} + +func (v *Dump) Identifier(n *ast.Identifier) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.Identifier{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} + +func (v *Dump) ArgumentList(_ *ast.ArgumentList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ArgumentList{\n") +} + +func (v *Dump) Argument(n *ast.Argument) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.Argument{\n") + + if n.Variadic { + v.printIndent(v.indent) + v.print("Variadic: true,\n") + } + + if n.IsReference { + v.printIndent(v.indent) + v.print("IsReference: true,\n") + } +} + +func (v *Dump) StmtAltElse(_ *ast.StmtAltElse) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtAltElse{\n") +} + +func (v *Dump) StmtAltElseIf(_ *ast.StmtAltElseIf) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtAltElseIf{\n") +} + +func (v *Dump) StmtAltFor(_ *ast.StmtAltFor) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtAltFor{\n") +} + +func (v *Dump) StmtAltForeach(_ *ast.StmtAltForeach) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtAltForeach{\n") +} + +func (v *Dump) StmtAltIf(_ *ast.StmtAltIf) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtAltIf{\n") +} + +func (v *Dump) StmtAltSwitch(_ *ast.StmtAltSwitch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtAltSwitch{\n") +} + +func (v *Dump) StmtAltWhile(_ *ast.StmtAltWhile) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtAltWhile{\n") +} + +func (v *Dump) StmtBreak(_ *ast.StmtBreak) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtBreak{\n") +} + +func (v *Dump) StmtCase(_ *ast.StmtCase) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtCase{\n") +} + +func (v *Dump) StmtCaseList(_ *ast.StmtCaseList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtCaseList{\n") +} + +func (v *Dump) StmtCatch(_ *ast.StmtCatch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtCatch{\n") +} + +func (v *Dump) StmtClass(_ *ast.StmtClass) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtClass{\n") +} + +func (v *Dump) StmtClassConstList(_ *ast.StmtClassConstList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtClassConstList{\n") +} + +func (v *Dump) StmtClassExtends(_ *ast.StmtClassExtends) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtClassExtends{\n") +} + +func (v *Dump) StmtClassImplements(_ *ast.StmtClassImplements) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtClassImplements{\n") +} + +func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtClassMethod{\n") + + if n.ReturnsRef { + v.printIndent(v.indent) + v.print("ReturnsRef: true,\n") + } +} + +func (v *Dump) StmtConstList(_ *ast.StmtConstList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtConstList{\n") +} + +func (v *Dump) StmtConstant(_ *ast.StmtConstant) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtConstant{\n") +} + +func (v *Dump) StmtContinue(_ *ast.StmtContinue) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtContinue{\n") +} + +func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtDeclare{\n") + + if n.Alt { + v.printIndent(v.indent) + v.print("Alt: true,\n") + } +} + +func (v *Dump) StmtDefault(_ *ast.StmtDefault) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtDefault{\n") +} + +func (v *Dump) StmtDo(_ *ast.StmtDo) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtDo{\n") +} + +func (v *Dump) StmtEcho(_ *ast.StmtEcho) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtEcho{\n") +} + +func (v *Dump) StmtElse(_ *ast.StmtElse) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtElse{\n") +} + +func (v *Dump) StmtElseIf(_ *ast.StmtElseIf) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtElseIf{\n") +} + +func (v *Dump) StmtExpression(_ *ast.StmtExpression) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtExpression{\n") +} + +func (v *Dump) StmtFinally(_ *ast.StmtFinally) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtFinally{\n") +} + +func (v *Dump) StmtFor(_ *ast.StmtFor) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtFor{\n") +} + +func (v *Dump) StmtForeach(_ *ast.StmtForeach) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtForeach{\n") +} + +func (v *Dump) StmtFunction(n *ast.StmtFunction) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtFunction{\n") + + if n.ReturnsRef { + v.printIndent(v.indent) + v.print("ReturnsRef: true,\n") + } +} + +func (v *Dump) StmtGlobal(_ *ast.StmtGlobal) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtGlobal{\n") +} + +func (v *Dump) StmtGoto(_ *ast.StmtGoto) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtGoto{\n") +} + +func (v *Dump) StmtGroupUse(_ *ast.StmtGroupUse) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtGroupUse{\n") +} + +func (v *Dump) StmtHaltCompiler(_ *ast.StmtHaltCompiler) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtHaltCompiler{\n") +} + +func (v *Dump) StmtIf(_ *ast.StmtIf) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtIf{\n") +} + +func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtInlineHtml{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} + +func (v *Dump) StmtInterface(_ *ast.StmtInterface) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtInterface{\n") +} + +func (v *Dump) StmtInterfaceExtends(_ *ast.StmtInterfaceExtends) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtInterfaceExtends{\n") +} + +func (v *Dump) StmtLabel(_ *ast.StmtLabel) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtLabel{\n") +} + +func (v *Dump) StmtNamespace(_ *ast.StmtNamespace) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtNamespace{\n") +} + +func (v *Dump) StmtNop(_ *ast.StmtNop) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtNop{\n") +} + +func (v *Dump) StmtProperty(_ *ast.StmtProperty) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtProperty{\n") +} + +func (v *Dump) StmtPropertyList(_ *ast.StmtPropertyList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtPropertyList{\n") +} + +func (v *Dump) StmtReturn(_ *ast.StmtReturn) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtReturn{\n") +} + +func (v *Dump) StmtStatic(_ *ast.StmtStatic) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtStatic{\n") +} + +func (v *Dump) StmtStaticVar(_ *ast.StmtStaticVar) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtStaticVar{\n") +} + +func (v *Dump) StmtStmtList(_ *ast.StmtStmtList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtStmtList{\n") +} + +func (v *Dump) StmtSwitch(_ *ast.StmtSwitch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtSwitch{\n") +} + +func (v *Dump) StmtThrow(_ *ast.StmtThrow) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtThrow{\n") +} + +func (v *Dump) StmtTrait(_ *ast.StmtTrait) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtTrait{\n") +} + +func (v *Dump) StmtTraitAdaptationList(_ *ast.StmtTraitAdaptationList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtTraitAdaptationList{\n") +} + +func (v *Dump) StmtTraitMethodRef(_ *ast.StmtTraitMethodRef) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtTraitMethodRef{\n") +} + +func (v *Dump) StmtTraitUse(_ *ast.StmtTraitUse) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtTraitUse{\n") +} + +func (v *Dump) StmtTraitUseAlias(_ *ast.StmtTraitUseAlias) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtTraitUseAlias{\n") +} + +func (v *Dump) StmtTraitUsePrecedence(_ *ast.StmtTraitUsePrecedence) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtTraitUsePrecedence{\n") +} + +func (v *Dump) StmtTry(_ *ast.StmtTry) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtTry{\n") +} + +func (v *Dump) StmtUnset(_ *ast.StmtUnset) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtUnset{\n") +} + +func (v *Dump) StmtUse(_ *ast.StmtUse) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtUse{\n") +} + +func (v *Dump) StmtUseList(_ *ast.StmtUseList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtUseList{\n") +} + +func (v *Dump) StmtWhile(_ *ast.StmtWhile) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtWhile{\n") +} + +func (v *Dump) ExprArray(_ *ast.ExprArray) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprArray{\n") +} + +func (v *Dump) ExprArrayDimFetch(_ *ast.ExprArrayDimFetch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprArrayDimFetch{\n") +} + +func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprArrayItem{\n") + + if n.Unpack { + v.printIndent(v.indent) + v.print("Unpack: true,\n") + } +} + +func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprArrowFunction{\n") + + if n.ReturnsRef { + v.printIndent(v.indent) + v.print("ReturnsRef: true,\n") + } + + if n.Static { + v.printIndent(v.indent) + v.print("Static: true,\n") + } +} + +func (v *Dump) ExprBitwiseNot(_ *ast.ExprBitwiseNot) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBitwiseNot{\n") +} + +func (v *Dump) ExprBooleanNot(_ *ast.ExprBooleanNot) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBooleanNot{\n") +} + +func (v *Dump) ExprClassConstFetch(_ *ast.ExprClassConstFetch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprClassConstFetch{\n") +} + +func (v *Dump) ExprClone(_ *ast.ExprClone) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprClone{\n") +} + +func (v *Dump) ExprClosure(n *ast.ExprClosure) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprClosure{\n") + + if n.ReturnsRef { + v.printIndent(v.indent) + v.print("ReturnsRef: true,\n") + } + + if n.Static { + v.printIndent(v.indent) + v.print("Static: true,\n") + } +} + +func (v *Dump) ExprClosureUse(_ *ast.ExprClosureUse) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprClosureUse{\n") +} + +func (v *Dump) ExprConstFetch(_ *ast.ExprConstFetch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprConstFetch{\n") +} + +func (v *Dump) ExprEmpty(_ *ast.ExprEmpty) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprEmpty{\n") +} + +func (v *Dump) ExprErrorSuppress(_ *ast.ExprErrorSuppress) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprErrorSuppress{\n") +} + +func (v *Dump) ExprEval(_ *ast.ExprEval) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprEval{\n") +} + +func (v *Dump) ExprExit(n *ast.ExprExit) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprExit{\n") + + if n.Die { + v.printIndent(v.indent) + v.print("Die: true,\n") + } +} + +func (v *Dump) ExprFunctionCall(_ *ast.ExprFunctionCall) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprFunctionCall{\n") +} + +func (v *Dump) ExprInclude(_ *ast.ExprInclude) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprInclude{\n") +} + +func (v *Dump) ExprIncludeOnce(_ *ast.ExprIncludeOnce) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprIncludeOnce{\n") +} + +func (v *Dump) ExprInstanceOf(_ *ast.ExprInstanceOf) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprInstanceOf{\n") +} + +func (v *Dump) ExprIsset(_ *ast.ExprIsset) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprIsset{\n") +} + +func (v *Dump) ExprList(_ *ast.ExprList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprList{\n") +} + +func (v *Dump) ExprMethodCall(_ *ast.ExprMethodCall) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprMethodCall{\n") +} + +func (v *Dump) ExprNew(_ *ast.ExprNew) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprNew{\n") +} + +func (v *Dump) ExprPostDec(_ *ast.ExprPostDec) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprPostDec{\n") +} + +func (v *Dump) ExprPostInc(_ *ast.ExprPostInc) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprPostInc{\n") +} + +func (v *Dump) ExprPreDec(_ *ast.ExprPreDec) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprPreDec{\n") +} + +func (v *Dump) ExprPreInc(_ *ast.ExprPreInc) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprPreInc{\n") +} + +func (v *Dump) ExprPrint(_ *ast.ExprPrint) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprPrint{\n") +} + +func (v *Dump) ExprPropertyFetch(_ *ast.ExprPropertyFetch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprPropertyFetch{\n") +} + +func (v *Dump) ExprReference(_ *ast.ExprReference) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprReference{\n") +} + +func (v *Dump) ExprRequire(_ *ast.ExprRequire) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprRequire{\n") +} + +func (v *Dump) ExprRequireOnce(_ *ast.ExprRequireOnce) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprRequireOnce{\n") +} + +func (v *Dump) ExprShellExec(_ *ast.ExprShellExec) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprShellExec{\n") +} + +func (v *Dump) ExprShortArray(_ *ast.ExprShortArray) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprShortArray{\n") +} + +func (v *Dump) ExprShortList(_ *ast.ExprShortList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprShortList{\n") +} + +func (v *Dump) ExprStaticCall(_ *ast.ExprStaticCall) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprStaticCall{\n") +} + +func (v *Dump) ExprStaticPropertyFetch(_ *ast.ExprStaticPropertyFetch) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprStaticPropertyFetch{\n") +} + +func (v *Dump) ExprTernary(_ *ast.ExprTernary) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprTernary{\n") +} + +func (v *Dump) ExprUnaryMinus(_ *ast.ExprUnaryMinus) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprUnaryMinus{\n") +} + +func (v *Dump) ExprUnaryPlus(_ *ast.ExprUnaryPlus) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprUnaryPlus{\n") +} + +func (v *Dump) ExprVariable(_ *ast.ExprVariable) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprVariable{\n") +} + +func (v *Dump) ExprYield(_ *ast.ExprYield) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprYield{\n") +} + +func (v *Dump) ExprYieldFrom(_ *ast.ExprYieldFrom) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprYieldFrom{\n") +} + +func (v *Dump) ExprAssign(_ *ast.ExprAssign) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssign{\n") +} + +func (v *Dump) ExprAssignReference(_ *ast.ExprAssignReference) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignReference{\n") +} + +func (v *Dump) ExprAssignBitwiseAnd(_ *ast.ExprAssignBitwiseAnd) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignBitwiseAnd{\n") +} + +func (v *Dump) ExprAssignBitwiseOr(_ *ast.ExprAssignBitwiseOr) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignBitwiseOr{\n") +} + +func (v *Dump) ExprAssignBitwiseXor(_ *ast.ExprAssignBitwiseXor) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignBitwiseXor{\n") +} + +func (v *Dump) ExprAssignCoalesce(_ *ast.ExprAssignCoalesce) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignCoalesce{\n") +} + +func (v *Dump) ExprAssignConcat(_ *ast.ExprAssignConcat) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignConcat{\n") +} + +func (v *Dump) ExprAssignDiv(_ *ast.ExprAssignDiv) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignDiv{\n") +} + +func (v *Dump) ExprAssignMinus(_ *ast.ExprAssignMinus) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignMinus{\n") +} + +func (v *Dump) ExprAssignMod(_ *ast.ExprAssignMod) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignMod{\n") +} + +func (v *Dump) ExprAssignMul(_ *ast.ExprAssignMul) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignMul{\n") +} + +func (v *Dump) ExprAssignPlus(_ *ast.ExprAssignPlus) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignPlus{\n") +} + +func (v *Dump) ExprAssignPow(_ *ast.ExprAssignPow) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignPow{\n") +} + +func (v *Dump) ExprAssignShiftLeft(_ *ast.ExprAssignShiftLeft) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignShiftLeft{\n") +} + +func (v *Dump) ExprAssignShiftRight(_ *ast.ExprAssignShiftRight) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprAssignShiftRight{\n") +} + +func (v *Dump) ExprBinaryBitwiseAnd(_ *ast.ExprBinaryBitwiseAnd) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryBitwiseAnd{\n") +} + +func (v *Dump) ExprBinaryBitwiseOr(_ *ast.ExprBinaryBitwiseOr) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryBitwiseOr{\n") +} + +func (v *Dump) ExprBinaryBitwiseXor(_ *ast.ExprBinaryBitwiseXor) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryBitwiseXor{\n") +} + +func (v *Dump) ExprBinaryBooleanAnd(_ *ast.ExprBinaryBooleanAnd) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryBooleanAnd{\n") +} + +func (v *Dump) ExprBinaryBooleanOr(_ *ast.ExprBinaryBooleanOr) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryBooleanOr{\n") +} + +func (v *Dump) ExprBinaryCoalesce(_ *ast.ExprBinaryCoalesce) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryCoalesce{\n") +} + +func (v *Dump) ExprBinaryConcat(_ *ast.ExprBinaryConcat) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryConcat{\n") +} + +func (v *Dump) ExprBinaryDiv(_ *ast.ExprBinaryDiv) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryDiv{\n") +} + +func (v *Dump) ExprBinaryEqual(_ *ast.ExprBinaryEqual) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryEqual{\n") +} + +func (v *Dump) ExprBinaryGreater(_ *ast.ExprBinaryGreater) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryGreater{\n") +} + +func (v *Dump) ExprBinaryGreaterOrEqual(_ *ast.ExprBinaryGreaterOrEqual) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryGreaterOrEqual{\n") +} + +func (v *Dump) ExprBinaryIdentical(_ *ast.ExprBinaryIdentical) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryIdentical{\n") +} + +func (v *Dump) ExprBinaryLogicalAnd(_ *ast.ExprBinaryLogicalAnd) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryLogicalAnd{\n") +} + +func (v *Dump) ExprBinaryLogicalOr(_ *ast.ExprBinaryLogicalOr) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryLogicalOr{\n") +} + +func (v *Dump) ExprBinaryLogicalXor(_ *ast.ExprBinaryLogicalXor) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryLogicalXor{\n") +} + +func (v *Dump) ExprBinaryMinus(_ *ast.ExprBinaryMinus) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryMinus{\n") +} + +func (v *Dump) ExprBinaryMod(_ *ast.ExprBinaryMod) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryMod{\n") +} + +func (v *Dump) ExprBinaryMul(_ *ast.ExprBinaryMul) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryMul{\n") +} + +func (v *Dump) ExprBinaryNotEqual(_ *ast.ExprBinaryNotEqual) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryNotEqual{\n") +} + +func (v *Dump) ExprBinaryNotIdentical(_ *ast.ExprBinaryNotIdentical) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryNotIdentical{\n") +} + +func (v *Dump) ExprBinaryPlus(_ *ast.ExprBinaryPlus) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryPlus{\n") +} + +func (v *Dump) ExprBinaryPow(_ *ast.ExprBinaryPow) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryPow{\n") +} + +func (v *Dump) ExprBinaryShiftLeft(_ *ast.ExprBinaryShiftLeft) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryShiftLeft{\n") +} + +func (v *Dump) ExprBinaryShiftRight(_ *ast.ExprBinaryShiftRight) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinaryShiftRight{\n") +} + +func (v *Dump) ExprBinarySmaller(_ *ast.ExprBinarySmaller) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinarySmaller{\n") +} + +func (v *Dump) ExprBinarySmallerOrEqual(_ *ast.ExprBinarySmallerOrEqual) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinarySmallerOrEqual{\n") +} + +func (v *Dump) ExprBinarySpaceship(_ *ast.ExprBinarySpaceship) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprBinarySpaceship{\n") +} + +func (v *Dump) ExprCastArray(_ *ast.ExprCastArray) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprCastArray{\n") +} + +func (v *Dump) ExprCastBool(_ *ast.ExprCastBool) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprCastBool{\n") +} + +func (v *Dump) ExprCastDouble(_ *ast.ExprCastDouble) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprCastDouble{\n") +} + +func (v *Dump) ExprCastInt(_ *ast.ExprCastInt) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprCastInt{\n") +} + +func (v *Dump) ExprCastObject(_ *ast.ExprCastObject) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprCastObject{\n") +} + +func (v *Dump) ExprCastString(_ *ast.ExprCastString) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprCastString{\n") +} + +func (v *Dump) ExprCastUnset(_ *ast.ExprCastUnset) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ExprCastUnset{\n") +} + +func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ScalarDnumber{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} + +func (v *Dump) ScalarEncapsed(_ *ast.ScalarEncapsed) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ScalarEncapsed{\n") +} + +func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ScalarEncapsedStringPart{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} + +func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ScalarHeredoc{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Label: %q,\n", n.Label)) +} + +func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ScalarLnumber{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} + +func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ScalarMagicConstant{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} + +func (v *Dump) ScalarString(n *ast.ScalarString) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ScalarString{\n") + + v.printIndentIfNotSingle(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go new file mode 100644 index 0000000..5d2277d --- /dev/null +++ b/pkg/ast/visitor/dump_test.go @@ -0,0 +1,43 @@ +package visitor_test + +import ( + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" + "os" +) + +func ExampleDump() { + stxTree := &ast.Root{ + Stmts: []ast.Vertex{ + &ast.Identifier{}, + &ast.Parameter{ + Variadic: true, + Var: &ast.ExprVariable{ + }, + }, + &ast.StmtInlineHtml{ + Value: "foo", + }, + }, + } + + traverser.NewDFS(visitor.NewDump(os.Stdout)).Traverse(stxTree) + + //output: + //&ast.Root{ + // Stmts: []ast.Vertex{ + // &ast.Identifier{ + // Value: "", + // }, + // &ast.Parameter{ + // Variadic: true, + // Var: &ast.ExprVariable{ + // }, + // }, + // &ast.StmtInlineHtml{ + // Value: "foo", + // }, + // }, + //} +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go new file mode 100644 index 0000000..41ab67b --- /dev/null +++ b/pkg/ast/visitor/null.go @@ -0,0 +1,683 @@ +package visitor + +import ( + "github.com/z7zmey/php-parser/pkg/ast" +) + +type Null struct { +} + +func (v *Null) Enter(_ string, _ bool) { + // do nothing +} +func (v *Null) Leave(_ string, _ bool) { + // do nothing +} + +func (v *Null) EnterNode(_ ast.Vertex) bool { + return true +} + +func (v *Null) LeaveNode(_ ast.Vertex) { + // do nothing +} + +func (v *Null) Root(_ *ast.Root) { + // do nothing +} + +func (v *Null) Nullable(_ *ast.Nullable) { + // do nothing +} + +func (v *Null) Parameter(_ *ast.Parameter) { + // do nothing +} + +func (v *Null) Identifier(_ *ast.Identifier) { + // do nothing +} + +func (v *Null) ArgumentList(_ *ast.ArgumentList) { + // do nothing +} + +func (v *Null) Argument(_ *ast.Argument) { + // do nothing +} + +func (v *Null) StmtAltElse(_ *ast.StmtAltElse) { + // do nothing +} + +func (v *Null) StmtAltElseIf(_ *ast.StmtAltElseIf) { + // do nothing +} + +func (v *Null) StmtAltFor(_ *ast.StmtAltFor) { + // do nothing +} + +func (v *Null) StmtAltForeach(_ *ast.StmtAltForeach) { + // do nothing +} + +func (v *Null) StmtAltIf(_ *ast.StmtAltIf) { + // do nothing +} + +func (v *Null) StmtAltSwitch(_ *ast.StmtAltSwitch) { + // do nothing +} + +func (v *Null) StmtAltWhile(_ *ast.StmtAltWhile) { + // do nothing +} + +func (v *Null) StmtBreak(_ *ast.StmtBreak) { + // do nothing +} + +func (v *Null) StmtCase(_ *ast.StmtCase) { + // do nothing +} + +func (v *Null) StmtCaseList(_ *ast.StmtCaseList) { + // do nothing +} + +func (v *Null) StmtCatch(_ *ast.StmtCatch) { + // do nothing +} + +func (v *Null) StmtClass(_ *ast.StmtClass) { + // do nothing +} + +func (v *Null) StmtClassConstList(_ *ast.StmtClassConstList) { + // do nothing +} + +func (v *Null) StmtClassExtends(_ *ast.StmtClassExtends) { + // do nothing +} + +func (v *Null) StmtClassImplements(_ *ast.StmtClassImplements) { + // do nothing +} + +func (v *Null) StmtClassMethod(_ *ast.StmtClassMethod) { + // do nothing +} + +func (v *Null) StmtConstList(_ *ast.StmtConstList) { + // do nothing +} + +func (v *Null) StmtConstant(_ *ast.StmtConstant) { + // do nothing +} + +func (v *Null) StmtContinue(_ *ast.StmtContinue) { + // do nothing +} + +func (v *Null) StmtDeclare(_ *ast.StmtDeclare) { + // do nothing +} + +func (v *Null) StmtDefault(_ *ast.StmtDefault) { + // do nothing +} + +func (v *Null) StmtDo(_ *ast.StmtDo) { + // do nothing +} + +func (v *Null) StmtEcho(_ *ast.StmtEcho) { + // do nothing +} + +func (v *Null) StmtElse(_ *ast.StmtElse) { + // do nothing +} + +func (v *Null) StmtElseIf(_ *ast.StmtElseIf) { + // do nothing +} + +func (v *Null) StmtExpression(_ *ast.StmtExpression) { + // do nothing +} + +func (v *Null) StmtFinally(_ *ast.StmtFinally) { + // do nothing +} + +func (v *Null) StmtFor(_ *ast.StmtFor) { + // do nothing +} + +func (v *Null) StmtForeach(_ *ast.StmtForeach) { + // do nothing +} + +func (v *Null) StmtFunction(_ *ast.StmtFunction) { + // do nothing +} + +func (v *Null) StmtGlobal(_ *ast.StmtGlobal) { + // do nothing +} + +func (v *Null) StmtGoto(_ *ast.StmtGoto) { + // do nothing +} + +func (v *Null) StmtGroupUse(_ *ast.StmtGroupUse) { + // do nothing +} + +func (v *Null) StmtHaltCompiler(_ *ast.StmtHaltCompiler) { + // do nothing +} + +func (v *Null) StmtIf(_ *ast.StmtIf) { + // do nothing +} + +func (v *Null) StmtInlineHtml(_ *ast.StmtInlineHtml) { + // do nothing +} + +func (v *Null) StmtInterface(_ *ast.StmtInterface) { + // do nothing +} + +func (v *Null) StmtInterfaceExtends(_ *ast.StmtInterfaceExtends) { + // do nothing +} + +func (v *Null) StmtLabel(_ *ast.StmtLabel) { + // do nothing +} + +func (v *Null) StmtNamespace(_ *ast.StmtNamespace) { + // do nothing +} + +func (v *Null) StmtNop(_ *ast.StmtNop) { + // do nothing +} + +func (v *Null) StmtProperty(_ *ast.StmtProperty) { + // do nothing +} + +func (v *Null) StmtPropertyList(_ *ast.StmtPropertyList) { + // do nothing +} + +func (v *Null) StmtReturn(_ *ast.StmtReturn) { + // do nothing +} + +func (v *Null) StmtStatic(_ *ast.StmtStatic) { + // do nothing +} + +func (v *Null) StmtStaticVar(_ *ast.StmtStaticVar) { + // do nothing +} + +func (v *Null) StmtStmtList(_ *ast.StmtStmtList) { + // do nothing +} + +func (v *Null) StmtSwitch(_ *ast.StmtSwitch) { + // do nothing +} + +func (v *Null) StmtThrow(_ *ast.StmtThrow) { + // do nothing +} + +func (v *Null) StmtTrait(_ *ast.StmtTrait) { + // do nothing +} + +func (v *Null) StmtTraitAdaptationList(_ *ast.StmtTraitAdaptationList) { + // do nothing +} + +func (v *Null) StmtTraitMethodRef(_ *ast.StmtTraitMethodRef) { + // do nothing +} + +func (v *Null) StmtTraitUse(_ *ast.StmtTraitUse) { + // do nothing +} + +func (v *Null) StmtTraitUseAlias(_ *ast.StmtTraitUseAlias) { + // do nothing +} + +func (v *Null) StmtTraitUsePrecedence(_ *ast.StmtTraitUsePrecedence) { + // do nothing +} + +func (v *Null) StmtTry(_ *ast.StmtTry) { + // do nothing +} + +func (v *Null) StmtUnset(_ *ast.StmtUnset) { + // do nothing +} + +func (v *Null) StmtUse(_ *ast.StmtUse) { + // do nothing +} + +func (v *Null) StmtUseList(_ *ast.StmtUseList) { + // do nothing +} + +func (v *Null) StmtWhile(_ *ast.StmtWhile) { + // do nothing +} + +func (v *Null) ExprArray(_ *ast.ExprArray) { + // do nothing +} + +func (v *Null) ExprArrayDimFetch(_ *ast.ExprArrayDimFetch) { + // do nothing +} + +func (v *Null) ExprArrayItem(_ *ast.ExprArrayItem) { + // do nothing +} + +func (v *Null) ExprArrowFunction(_ *ast.ExprArrowFunction) { + // do nothing +} + +func (v *Null) ExprBitwiseNot(_ *ast.ExprBitwiseNot) { + // do nothing +} + +func (v *Null) ExprBooleanNot(_ *ast.ExprBooleanNot) { + // do nothing +} + +func (v *Null) ExprClassConstFetch(_ *ast.ExprClassConstFetch) { + // do nothing +} + +func (v *Null) ExprClone(_ *ast.ExprClone) { + // do nothing +} + +func (v *Null) ExprClosure(_ *ast.ExprClosure) { + // do nothing +} + +func (v *Null) ExprClosureUse(_ *ast.ExprClosureUse) { + // do nothing +} + +func (v *Null) ExprConstFetch(_ *ast.ExprConstFetch) { + // do nothing +} + +func (v *Null) ExprEmpty(_ *ast.ExprEmpty) { + // do nothing +} + +func (v *Null) ExprErrorSuppress(_ *ast.ExprErrorSuppress) { + // do nothing +} + +func (v *Null) ExprEval(_ *ast.ExprEval) { + // do nothing +} + +func (v *Null) ExprExit(_ *ast.ExprExit) { + // do nothing +} + +func (v *Null) ExprFunctionCall(_ *ast.ExprFunctionCall) { + // do nothing +} + +func (v *Null) ExprInclude(_ *ast.ExprInclude) { + // do nothing +} + +func (v *Null) ExprIncludeOnce(_ *ast.ExprIncludeOnce) { + // do nothing +} + +func (v *Null) ExprInstanceOf(_ *ast.ExprInstanceOf) { + // do nothing +} + +func (v *Null) ExprIsset(_ *ast.ExprIsset) { + // do nothing +} + +func (v *Null) ExprList(_ *ast.ExprList) { + // do nothing +} + +func (v *Null) ExprMethodCall(_ *ast.ExprMethodCall) { + // do nothing +} + +func (v *Null) ExprNew(_ *ast.ExprNew) { + // do nothing +} + +func (v *Null) ExprPostDec(_ *ast.ExprPostDec) { + // do nothing +} + +func (v *Null) ExprPostInc(_ *ast.ExprPostInc) { + // do nothing +} + +func (v *Null) ExprPreDec(_ *ast.ExprPreDec) { + // do nothing +} + +func (v *Null) ExprPreInc(_ *ast.ExprPreInc) { + // do nothing +} + +func (v *Null) ExprPrint(_ *ast.ExprPrint) { + // do nothing +} + +func (v *Null) ExprPropertyFetch(_ *ast.ExprPropertyFetch) { + // do nothing +} + +func (v *Null) ExprReference(_ *ast.ExprReference) { + // do nothing +} + +func (v *Null) ExprRequire(_ *ast.ExprRequire) { + // do nothing +} + +func (v *Null) ExprRequireOnce(_ *ast.ExprRequireOnce) { + // do nothing +} + +func (v *Null) ExprShellExec(_ *ast.ExprShellExec) { + // do nothing +} + +func (v *Null) ExprShortArray(_ *ast.ExprShortArray) { + // do nothing +} + +func (v *Null) ExprShortList(_ *ast.ExprShortList) { + // do nothing +} + +func (v *Null) ExprStaticCall(_ *ast.ExprStaticCall) { + // do nothing +} + +func (v *Null) ExprStaticPropertyFetch(_ *ast.ExprStaticPropertyFetch) { + // do nothing +} + +func (v *Null) ExprTernary(_ *ast.ExprTernary) { + // do nothing +} + +func (v *Null) ExprUnaryMinus(_ *ast.ExprUnaryMinus) { + // do nothing +} + +func (v *Null) ExprUnaryPlus(_ *ast.ExprUnaryPlus) { + // do nothing +} + +func (v *Null) ExprVariable(_ *ast.ExprVariable) { + // do nothing +} + +func (v *Null) ExprYield(_ *ast.ExprYield) { + // do nothing +} + +func (v *Null) ExprYieldFrom(_ *ast.ExprYieldFrom) { + // do nothing +} + +func (v *Null) ExprAssign(_ *ast.ExprAssign) { + // do nothing +} + +func (v *Null) ExprAssignReference(_ *ast.ExprAssignReference) { + // do nothing +} + +func (v *Null) ExprAssignBitwiseAnd(_ *ast.ExprAssignBitwiseAnd) { + // do nothing +} + +func (v *Null) ExprAssignBitwiseOr(_ *ast.ExprAssignBitwiseOr) { + // do nothing +} + +func (v *Null) ExprAssignBitwiseXor(_ *ast.ExprAssignBitwiseXor) { + // do nothing +} + +func (v *Null) ExprAssignCoalesce(_ *ast.ExprAssignCoalesce) { + // do nothing +} + +func (v *Null) ExprAssignConcat(_ *ast.ExprAssignConcat) { + // do nothing +} + +func (v *Null) ExprAssignDiv(_ *ast.ExprAssignDiv) { + // do nothing +} + +func (v *Null) ExprAssignMinus(_ *ast.ExprAssignMinus) { + // do nothing +} + +func (v *Null) ExprAssignMod(_ *ast.ExprAssignMod) { + // do nothing +} + +func (v *Null) ExprAssignMul(_ *ast.ExprAssignMul) { + // do nothing +} + +func (v *Null) ExprAssignPlus(_ *ast.ExprAssignPlus) { + // do nothing +} + +func (v *Null) ExprAssignPow(_ *ast.ExprAssignPow) { + // do nothing +} + +func (v *Null) ExprAssignShiftLeft(_ *ast.ExprAssignShiftLeft) { + // do nothing +} + +func (v *Null) ExprAssignShiftRight(_ *ast.ExprAssignShiftRight) { + // do nothing +} + +func (v *Null) ExprBinaryBitwiseAnd(_ *ast.ExprBinaryBitwiseAnd) { + // do nothing +} + +func (v *Null) ExprBinaryBitwiseOr(_ *ast.ExprBinaryBitwiseOr) { + // do nothing +} + +func (v *Null) ExprBinaryBitwiseXor(_ *ast.ExprBinaryBitwiseXor) { + // do nothing +} + +func (v *Null) ExprBinaryBooleanAnd(_ *ast.ExprBinaryBooleanAnd) { + // do nothing +} + +func (v *Null) ExprBinaryBooleanOr(_ *ast.ExprBinaryBooleanOr) { + // do nothing +} + +func (v *Null) ExprBinaryCoalesce(_ *ast.ExprBinaryCoalesce) { + // do nothing +} + +func (v *Null) ExprBinaryConcat(_ *ast.ExprBinaryConcat) { + // do nothing +} + +func (v *Null) ExprBinaryDiv(_ *ast.ExprBinaryDiv) { + // do nothing +} + +func (v *Null) ExprBinaryEqual(_ *ast.ExprBinaryEqual) { + // do nothing +} + +func (v *Null) ExprBinaryGreater(_ *ast.ExprBinaryGreater) { + // do nothing +} + +func (v *Null) ExprBinaryGreaterOrEqual(_ *ast.ExprBinaryGreaterOrEqual) { + // do nothing +} + +func (v *Null) ExprBinaryIdentical(_ *ast.ExprBinaryIdentical) { + // do nothing +} + +func (v *Null) ExprBinaryLogicalAnd(_ *ast.ExprBinaryLogicalAnd) { + // do nothing +} + +func (v *Null) ExprBinaryLogicalOr(_ *ast.ExprBinaryLogicalOr) { + // do nothing +} + +func (v *Null) ExprBinaryLogicalXor(_ *ast.ExprBinaryLogicalXor) { + // do nothing +} + +func (v *Null) ExprBinaryMinus(_ *ast.ExprBinaryMinus) { + // do nothing +} + +func (v *Null) ExprBinaryMod(_ *ast.ExprBinaryMod) { + // do nothing +} + +func (v *Null) ExprBinaryMul(_ *ast.ExprBinaryMul) { + // do nothing +} + +func (v *Null) ExprBinaryNotEqual(_ *ast.ExprBinaryNotEqual) { + // do nothing +} + +func (v *Null) ExprBinaryNotIdentical(_ *ast.ExprBinaryNotIdentical) { + // do nothing +} + +func (v *Null) ExprBinaryPlus(_ *ast.ExprBinaryPlus) { + // do nothing +} + +func (v *Null) ExprBinaryPow(_ *ast.ExprBinaryPow) { + // do nothing +} + +func (v *Null) ExprBinaryShiftLeft(_ *ast.ExprBinaryShiftLeft) { + // do nothing +} + +func (v *Null) ExprBinaryShiftRight(_ *ast.ExprBinaryShiftRight) { + // do nothing +} + +func (v *Null) ExprBinarySmaller(_ *ast.ExprBinarySmaller) { + // do nothing +} + +func (v *Null) ExprBinarySmallerOrEqual(_ *ast.ExprBinarySmallerOrEqual) { + // do nothing +} + +func (v *Null) ExprBinarySpaceship(_ *ast.ExprBinarySpaceship) { + // do nothing +} + +func (v *Null) ExprCastArray(_ *ast.ExprCastArray) { + // do nothing +} + +func (v *Null) ExprCastBool(_ *ast.ExprCastBool) { + // do nothing +} + +func (v *Null) ExprCastDouble(_ *ast.ExprCastDouble) { + // do nothing +} + +func (v *Null) ExprCastInt(_ *ast.ExprCastInt) { + // do nothing +} + +func (v *Null) ExprCastObject(_ *ast.ExprCastObject) { + // do nothing +} + +func (v *Null) ExprCastString(_ *ast.ExprCastString) { + // do nothing +} + +func (v *Null) ExprCastUnset(_ *ast.ExprCastUnset) { + // do nothing +} + +func (v *Null) ScalarDnumber(_ *ast.ScalarDnumber) { + // do nothing +} + +func (v *Null) ScalarEncapsed(_ *ast.ScalarEncapsed) { + // do nothing +} + +func (v *Null) ScalarEncapsedStringPart(_ *ast.ScalarEncapsedStringPart) { + // do nothing +} + +func (v *Null) ScalarHeredoc(_ *ast.ScalarHeredoc) { + // do nothing +} + +func (v *Null) ScalarLnumber(_ *ast.ScalarLnumber) { + // do nothing +} + +func (v *Null) ScalarMagicConstant(_ *ast.ScalarMagicConstant) { + // do nothing +} + +func (v *Null) ScalarString(_ *ast.ScalarString) { + // do nothing +} From 60f171bfa175cf0cee5f8958af061a16a646eb22 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 10 May 2020 08:47:13 +0300 Subject: [PATCH 002/140] refactor token structure --- pkg/ast/ast.go | 10 +-- pkg/ast/ast_test.go | 88 -------------------------- pkg/ast/node.go | 19 ++---- pkg/token/token.go | 149 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 155 insertions(+), 111 deletions(-) create mode 100644 pkg/token/token.go diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index a7a1da6..dfd53c3 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -1,16 +1,8 @@ package ast -import ( - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/position" -) - type Vertex interface { Accept(v NodeVisitor) - - SetPosition(p *position.Position) - GetPosition() *position.Position - GetFreeFloating() *freefloating.Collection + GetNode() *Node } type Traverser interface { diff --git a/pkg/ast/ast_test.go b/pkg/ast/ast_test.go index bb98e9f..7930e5f 100644 --- a/pkg/ast/ast_test.go +++ b/pkg/ast/ast_test.go @@ -1,8 +1,6 @@ package ast_test import ( - "bytes" - "encoding/json" "fmt" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/ast/traverser" @@ -11,92 +9,6 @@ import ( "strings" ) -func ExampleJSON() { - stxTree := &ast.Root{ - Stmts: []ast.Vertex{ - &ast.Nullable{ - Expr: &ast.Parameter{ - Type: nil, - Var: nil, - DefaultValue: nil, - }, - }, - &ast.Identifier{}, - &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{}, - &ast.Argument{ - Expr: &ast.ScalarDnumber{}, - }, - }, - }, - }, - } - - jsonStxTree, err := json.Marshal(stxTree) - if err != nil { - panic(err) - } - - buf := bytes.NewBuffer(nil) - err = json.Indent(buf, jsonStxTree, "", " ") - if err != nil { - panic(err) - } - - fmt.Fprint(os.Stdout, buf.String()) - - // output: - // { - // "FreeFloating": null, - // "Position": null, - // "Stmts": [ - // { - // "FreeFloating": null, - // "Position": null, - // "Expr": { - // "FreeFloating": null, - // "Position": null, - // "ByRef": false, - // "Variadic": false, - // "Type": null, - // "Var": null, - // "DefaultValue": null - // } - // }, - // { - // "FreeFloating": null, - // "Position": null, - // "Value": "" - // }, - // { - // "FreeFloating": null, - // "Position": null, - // "Arguments": [ - // { - // "FreeFloating": null, - // "Position": null, - // "Variadic": false, - // "IsReference": false, - // "Expr": null - // }, - // { - // "FreeFloating": null, - // "Position": null, - // "Variadic": false, - // "IsReference": false, - // "Expr": { - // "FreeFloating": null, - // "Position": null, - // "Value": "" - // } - // } - // ] - // } - // ] - // } -} - func ExampleStxTree() { stxTree := &ast.Root{ Stmts: []ast.Vertex{ diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 65c2d98..13b285c 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1,27 +1,18 @@ package ast import ( - "github.com/z7zmey/php-parser/freefloating" + "github.com/z7zmey/php-parser/pkg/token" "github.com/z7zmey/php-parser/position" ) type Node struct { - FreeFloating freefloating.Collection + StartTokens []token.Token + EndTokens []token.Token Position *position.Position } -// SetPosition sets node position -func (n *Node) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *Node) GetPosition() *position.Position { - return n.Position -} - -func (n *Node) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating +func (n *Node) GetNode() *Node { + return n } // Root node diff --git a/pkg/token/token.go b/pkg/token/token.go new file mode 100644 index 0000000..a79915d --- /dev/null +++ b/pkg/token/token.go @@ -0,0 +1,149 @@ +package token + +type TokenID int + +const ( + T_INCLUDE TokenID = iota + 57346 + T_INCLUDE_ONCE + T_EXIT + T_IF + T_LNUMBER + T_DNUMBER + T_STRING + T_STRING_VARNAME + T_VARIABLE + T_NUM_STRING + T_INLINE_HTML + T_CHARACTER + T_BAD_CHARACTER + T_ENCAPSED_AND_WHITESPACE + T_CONSTANT_ENCAPSED_STRING + T_ECHO + T_DO + T_WHILE + T_ENDWHILE + T_FOR + T_ENDFOR + T_FOREACH + T_ENDFOREACH + T_DECLARE + T_ENDDECLARE + T_AS + T_SWITCH + T_ENDSWITCH + T_CASE + T_DEFAULT + T_BREAK + T_CONTINUE + T_GOTO + T_FUNCTION + T_FN + T_CONST + T_RETURN + T_TRY + T_CATCH + T_FINALLY + T_THROW + T_USE + T_INSTEADOF + T_GLOBAL + T_VAR + T_UNSET + T_ISSET + T_EMPTY + T_HALT_COMPILER + T_CLASS + T_TRAIT + T_INTERFACE + T_EXTENDS + T_IMPLEMENTS + T_OBJECT_OPERATOR + T_DOUBLE_ARROW + T_LIST + T_ARRAY + T_CALLABLE + T_CLASS_C + T_TRAIT_C + T_METHOD_C + T_FUNC_C + T_LINE + T_FILE + T_COMMENT + T_DOC_COMMENT + T_OPEN_TAG + T_OPEN_TAG_WITH_ECHO + T_CLOSE_TAG + T_WHITESPACE + T_START_HEREDOC + T_END_HEREDOC + T_DOLLAR_OPEN_CURLY_BRACES + T_CURLY_OPEN + T_PAAMAYIM_NEKUDOTAYIM + T_NAMESPACE + T_NS_C + T_DIR + T_NS_SEPARATOR + T_ELLIPSIS + T_EVAL + T_REQUIRE + T_REQUIRE_ONCE + T_LOGICAL_OR + T_LOGICAL_XOR + T_LOGICAL_AND + T_INSTANCEOF + T_NEW + T_CLONE + T_ELSEIF + T_ELSE + T_ENDIF + T_PRINT + T_YIELD + T_STATIC + T_ABSTRACT + T_FINAL + T_PRIVATE + T_PROTECTED + T_PUBLIC + T_INC + T_DEC + T_YIELD_FROM + T_INT_CAST + T_DOUBLE_CAST + T_STRING_CAST + T_ARRAY_CAST + T_OBJECT_CAST + T_BOOL_CAST + T_UNSET_CAST + T_COALESCE + T_SPACESHIP + T_NOELSE + T_PLUS_EQUAL + T_MINUS_EQUAL + T_MUL_EQUAL + T_POW_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_COALESCE_EQUAL + T_BOOLEAN_OR + T_BOOLEAN_AND + T_POW + T_SL + T_SR + T_IS_IDENTICAL + T_IS_NOT_IDENTICAL + T_IS_EQUAL + T_IS_NOT_EQUAL + T_IS_SMALLER_OR_EQUAL + T_IS_GREATER_OR_EQUAL +) + +type Token struct { + ID TokenID + Value []byte +} From 3b9ef2b56d8fe154aa99440c8928ecc19f89ff72 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 10 May 2020 08:53:00 +0300 Subject: [PATCH 003/140] refactor position package --- pkg/position/position.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 pkg/position/position.go diff --git a/pkg/position/position.go b/pkg/position/position.go new file mode 100644 index 0000000..d4099cd --- /dev/null +++ b/pkg/position/position.go @@ -0,0 +1,27 @@ +package position + +import ( + "fmt" +) + +// Position represents node position +type Position struct { + StartLine int + EndLine int + StartPos int + EndPos int +} + +// NewPosition Position constructor +func NewPosition(StartLine int, EndLine int, StartPos int, EndPos int) *Position { + return &Position{ + StartLine: StartLine, + EndLine: EndLine, + StartPos: StartPos, + EndPos: EndPos, + } +} + +func (p Position) String() string { + return fmt.Sprintf("Pos{Line: %d-%d Pos: %d-%d}", p.StartLine, p.EndLine, p.StartPos, p.EndPos) +} From aab9da03f0605df8ec89d2effbbdfa76183af2de Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 10 May 2020 08:53:17 +0300 Subject: [PATCH 004/140] refactor position package --- pkg/ast/node.go | 8 ++++---- pkg/position/position.go | 8 -------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 13b285c..b8b486e 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1,14 +1,14 @@ package ast import ( + "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" - "github.com/z7zmey/php-parser/position" ) type Node struct { - StartTokens []token.Token - EndTokens []token.Token - Position *position.Position + StartTokens []token.Token + EndTokens []token.Token + Position *position.Position } func (n *Node) GetNode() *Node { diff --git a/pkg/position/position.go b/pkg/position/position.go index d4099cd..ffe4746 100644 --- a/pkg/position/position.go +++ b/pkg/position/position.go @@ -1,9 +1,5 @@ package position -import ( - "fmt" -) - // Position represents node position type Position struct { StartLine int @@ -21,7 +17,3 @@ func NewPosition(StartLine int, EndLine int, StartPos int, EndPos int) *Position EndPos: EndPos, } } - -func (p Position) String() string { - return fmt.Sprintf("Pos{Line: %d-%d Pos: %d-%d}", p.StartLine, p.EndLine, p.StartPos, p.EndPos) -} From 6a84d58ee694402b6e9fd95aa82b33b03de25d8e Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Wed, 13 May 2020 00:16:36 +0300 Subject: [PATCH 005/140] refactor php7 --- Makefile | 18 +- {php5 => internal/php5}/parser.go | 17 +- {php5 => internal/php5}/php5.go | 0 {php5 => internal/php5}/php5.y | 0 {php5 => internal/php5}/php5_bench_test.go | 0 {php5 => internal/php5}/php5_test.go | 0 internal/php7/parser.go | 190 + {php7 => internal/php7}/php7.go | 3758 ++- internal/php7/php7.y | 5655 +++++ {php7 => internal/php7}/php7_bench_test.go | 2 +- internal/php7/php7_test.go | 20023 ++++++++++++++++ .../positionbuilder}/position_builder.go | 38 +- .../positionbuilder/position_builder_test.go | 485 + {scanner => internal/scanner}/lexer.go | 50 +- {scanner => internal/scanner}/lexer_tokens.go | 0 {scanner => internal/scanner}/newline.go | 0 {scanner => internal/scanner}/scanner.go | 914 +- {scanner => internal/scanner}/scanner.rl | 36 +- {scanner => internal/scanner}/scanner_test.go | 401 +- internal/scanner/token.go | 15 + {scanner => internal/scanner}/token_pool.go | 0 .../scanner}/token_pool_test.go | 4 +- .../scanner}/tokenid_string.go | 0 {version => internal/version}/version.go | 0 php7/parser.go | 225 - php7/php7.y | 5666 ----- php7/php7_test.go | 16450 ------------- pkg/ast/ast.go | 5 + pkg/ast/ast_test.go | 7 +- pkg/ast/node.go | 53 +- pkg/ast/visitor/dump.go | 2 +- pkg/ast/visitor/dump_test.go | 3 +- {errors => pkg/errors}/error.go | 2 +- {errors => pkg/errors}/error_test.go | 0 {parser => pkg/parser}/parser.go | 14 +- .../string.go => pkg/token/position.go | 31 +- .../token}/position_string.go | 2 +- pkg/token/token.go | 6 +- position/position.go | 27 - position/position_test.go | 19 - positionbuilder/position_builder_test.go | 463 - scanner/token.go | 35 - scanner/token_test.go | 37 - visitor/dumper.go | 83 - visitor/dumper_test.go | 151 - visitor/go_dumper.go | 172 - visitor/go_dumper_test.go | 528 - visitor/json_dumper.go | 142 - visitor/json_dumper_test.go | 41 - visitor/namespace_resolver.go | 392 - visitor/namespace_resolver_test.go | 976 - visitor/pretty_json_dumper.go | 187 - visitor/pretty_json_dumper_test.go | 509 - walker/walker.go | 21 - 54 files changed, 29034 insertions(+), 28821 deletions(-) rename {php5 => internal/php5}/parser.go (94%) rename {php5 => internal/php5}/php5.go (100%) rename {php5 => internal/php5}/php5.y (100%) rename {php5 => internal/php5}/php5_bench_test.go (100%) rename {php5 => internal/php5}/php5_test.go (100%) create mode 100644 internal/php7/parser.go rename {php7 => internal/php7}/php7.go (50%) create mode 100644 internal/php7/php7.y rename {php7 => internal/php7}/php7_bench_test.go (99%) create mode 100644 internal/php7/php7_test.go rename {positionbuilder => internal/positionbuilder}/position_builder.go (74%) create mode 100644 internal/positionbuilder/position_builder_test.go rename {scanner => internal/scanner}/lexer.go (83%) rename {scanner => internal/scanner}/lexer_tokens.go (100%) rename {scanner => internal/scanner}/newline.go (100%) rename {scanner => internal/scanner}/scanner.go (94%) rename {scanner => internal/scanner}/scanner.rl (95%) rename {scanner => internal/scanner}/scanner_test.go (76%) create mode 100644 internal/scanner/token.go rename {scanner => internal/scanner}/token_pool.go (100%) rename {scanner => internal/scanner}/token_pool_test.go (87%) rename {scanner => internal/scanner}/tokenid_string.go (100%) rename {version => internal/version}/version.go (100%) delete mode 100644 php7/parser.go delete mode 100644 php7/php7.y delete mode 100644 php7/php7_test.go rename {errors => pkg/errors}/error.go (90%) rename {errors => pkg/errors}/error_test.go (100%) rename {parser => pkg/parser}/parser.go (59%) rename freefloating/string.go => pkg/token/position.go (66%) rename {freefloating => pkg/token}/position_string.go (99%) delete mode 100644 position/position.go delete mode 100644 position/position_test.go delete mode 100644 positionbuilder/position_builder_test.go delete mode 100644 scanner/token.go delete mode 100644 scanner/token_test.go delete mode 100644 visitor/dumper.go delete mode 100644 visitor/dumper_test.go delete mode 100644 visitor/go_dumper.go delete mode 100644 visitor/go_dumper_test.go delete mode 100644 visitor/json_dumper.go delete mode 100644 visitor/json_dumper_test.go delete mode 100644 visitor/namespace_resolver.go delete mode 100644 visitor/namespace_resolver_test.go delete mode 100644 visitor/pretty_json_dumper.go delete mode 100644 visitor/pretty_json_dumper_test.go delete mode 100644 walker/walker.go diff --git a/Makefile b/Makefile index 9540674..a5b8399 100644 --- a/Makefile +++ b/Makefile @@ -22,21 +22,21 @@ bench: go test -benchmem -bench=. ./php5 go test -benchmem -bench=. ./php7 -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 +compile: ./internal/php5/php5.go ./internal/php7/php7.go ./internal/scanner/scanner.go fmt + sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./internal/php7/php7.go + sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./internal/php5/php5.go + sed -i '' -e 's/\/\/line/\/\/ line/g' ./internal/php5/php5.go + sed -i '' -e 's/\/\/line/\/\/ line/g' ./internal/php7/php7.go + sed -i '' -e 's/\/\/line/\/\/ line/g' ./internal/scanner/scanner.go rm -f y.output -./scanner/scanner.go: ./scanner/scanner.rl +./internal/scanner/scanner.go: ./internal/scanner/scanner.rl ragel -Z -G2 -o $@ $< -./php5/php5.go: ./php5/php5.y +./internal/php5/php5.go: ./internal/php5/php5.y goyacc -o $@ $< -./php7/php7.go: ./php7/php7.y +./internal/php7/php7.go: ./internal/php7/php7.y goyacc -o $@ $< cpu_pprof: diff --git a/php5/parser.go b/internal/php5/parser.go similarity index 94% rename from php5/parser.go rename to internal/php5/parser.go index 027f444..311e544 100644 --- a/php5/parser.go +++ b/internal/php5/parser.go @@ -1,13 +1,14 @@ package php5 import ( - "strings" - - "github.com/z7zmey/php-parser/errors" "github.com/z7zmey/php-parser/freefloating" "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/position" - "github.com/z7zmey/php-parser/positionbuilder" + "strings" + + "github.com/z7zmey/php-parser/internal/positionbuilder" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/scanner" ) @@ -20,7 +21,7 @@ type Parser struct { Lexer scanner.Scanner currentToken *scanner.Token positionBuilder *positionbuilder.PositionBuilder - rootNode node.Node + rootNode ast.Vertex } // NewParser creates and returns new Parser @@ -54,7 +55,7 @@ func (l *Parser) Error(msg string) { l.Lexer.AddError(errors.NewError(msg, pos)) } -func (l *Parser) WithFreeFloating() { +func (l *Parser) WithTokens() { l.Lexer.SetWithFreeFloating(true) } @@ -71,7 +72,7 @@ func (l *Parser) Parse() int { } // GetRootNode returns root node -func (l *Parser) GetRootNode() node.Node { +func (l *Parser) GetRootNode() ast.Vertex { return l.rootNode } diff --git a/php5/php5.go b/internal/php5/php5.go similarity index 100% rename from php5/php5.go rename to internal/php5/php5.go diff --git a/php5/php5.y b/internal/php5/php5.y similarity index 100% rename from php5/php5.y rename to internal/php5/php5.y diff --git a/php5/php5_bench_test.go b/internal/php5/php5_bench_test.go similarity index 100% rename from php5/php5_bench_test.go rename to internal/php5/php5_bench_test.go diff --git a/php5/php5_test.go b/internal/php5/php5_test.go similarity index 100% rename from php5/php5_test.go rename to internal/php5/php5_test.go diff --git a/internal/php7/parser.go b/internal/php7/parser.go new file mode 100644 index 0000000..cb42f54 --- /dev/null +++ b/internal/php7/parser.go @@ -0,0 +1,190 @@ +package php7 + +import ( + "bytes" + + "github.com/z7zmey/php-parser/internal/positionbuilder" + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" +) + +func (lval *yySymType) Token(t *scanner.Token) { + lval.token = t +} + +// Parser structure +type Parser struct { + Lexer scanner.Scanner + currentToken *scanner.Token + positionBuilder *positionbuilder.PositionBuilder + rootNode ast.Vertex +} + +// NewParser creates and returns new Parser +func NewParser(src []byte, v string) *Parser { + lexer := scanner.NewLexer(src) + lexer.PHPVersion = v + + return &Parser{ + lexer, + nil, + nil, + nil, + } +} + +func (l *Parser) Lex(lval *yySymType) int { + t := l.Lexer.Lex(lval) + l.currentToken = lval.token + return t +} + +func (l *Parser) Error(msg string) { + pos := &position.Position{ + StartLine: l.currentToken.StartLine, + EndLine: l.currentToken.EndLine, + StartPos: l.currentToken.StartPos, + EndPos: l.currentToken.EndPos, + } + + l.Lexer.AddError(errors.NewError(msg, pos)) +} + +func (l *Parser) WithTokens() { + l.Lexer.SetWithTokens(true) +} + +// Parse the php7 Parser entrypoint +func (l *Parser) Parse() int { + // init + l.Lexer.SetErrors(nil) + l.rootNode = nil + l.positionBuilder = &positionbuilder.PositionBuilder{} + + // parse + + return yyParse(l) +} + +// GetRootNode returns root node +func (l *Parser) GetRootNode() ast.Vertex { + return l.rootNode +} + +// GetErrors returns errors list +func (l *Parser) GetErrors() []*errors.Error { + return l.Lexer.GetErrors() +} + +// helpers + +func lastNode(nn []ast.Vertex) ast.Vertex { + if len(nn) == 0 { + return nil + } + return nn[len(nn)-1] +} + +func firstNode(nn []ast.Vertex) ast.Vertex { + return nn[0] +} + +func isDollar(r rune) bool { + return r == '$' +} + +func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { + if l.Lexer.GetWithFreeFloating() == false { + return + } + + if src.GetNode().Tokens == nil { + return + } + + l.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) + delete(src.GetNode().Tokens, token.Start) +} + +func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { + if l.Lexer.GetWithFreeFloating() == false { + return + } + + if len(strings) == 0 { + return + } + + dstCollection := &dst.GetNode().Tokens + if *dstCollection == nil { + *dstCollection = make(token.Collection) + } + + (*dstCollection)[p] = strings +} + +func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { + if l.Lexer.GetWithFreeFloating() == false { + return []token.Token{} + } + + tokens := make([]token.Token, len(t.Tokens)) + copy(tokens, t.Tokens) + + return tokens +} + +func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { + if l.Lexer.GetWithFreeFloating() == false { + return + } + + semiColon := prevNode.GetNode().Tokens[token.SemiColon] + delete(prevNode.GetNode().Tokens, token.SemiColon) + if len(semiColon) == 0 { + return + } + + if semiColon[0].Value[0] == ';' { + l.setFreeFloating(prevNode, token.SemiColon, []token.Token{ + { + ID: token.ID(';'), + Value: semiColon[0].Value[0:1], + }, + }) + } + + vlen := len(semiColon[0].Value) + tlen := 2 + if bytes.HasSuffix(semiColon[0].Value, []byte("?>\n")) { + tlen = 3 + } + + phpCloseTag := []token.Token{} + if vlen-tlen > 1 { + phpCloseTag = append(phpCloseTag, token.Token{ + ID: token.T_WHITESPACE, + Value: semiColon[0].Value[1 : vlen-tlen], + }) + } + + phpCloseTag = append(phpCloseTag, token.Token{ + ID: T_CLOSE_TAG, + Value: semiColon[0].Value[vlen-tlen:], + }) + + l.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) +} + +func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { + for i := 1; i < len(yyDollar); i++ { + if yyDollar[i].token != nil { + p.Lexer.ReturnTokenToPool(yyDollar[i].token) + } + yyDollar[i].token = nil + } + yyVAL.token = nil +} diff --git a/php7/php7.go b/internal/php7/php7.go similarity index 50% rename from php7/php7.go rename to internal/php7/php7.go index 5e35ac0..0a41dff 100644 --- a/php7/php7.go +++ b/internal/php7/php7.go @@ -1,37 +1,33 @@ -// line php7/php7.y:2 +// Code generated by goyacc -o internal/php7/php7.go internal/php7/php7.y. DO NOT EDIT. + +// line internal/php7/php7.y:2 package php7 import __yyfmt__ "fmt" -// line php7/php7.y:2 -import ( - "strconv" - "strings" +// line internal/php7/php7.y:2 - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/scanner" +import ( + "bytes" + "strconv" + + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" ) -// line php7/php7.y:22 +// line internal/php7/php7.y:15 type yySymType struct { yys int - node node.Node + node ast.Vertex token *scanner.Token - list []node.Node + list []ast.Vertex str string - ClassExtends *stmt.ClassExtends - ClassImplements *stmt.ClassImplements - InterfaceExtends *stmt.InterfaceExtends - ClosureUse *expr.ClosureUse + ClassExtends *ast.StmtClassExtends + ClassImplements *ast.StmtClassImplements + InterfaceExtends *ast.StmtInterfaceExtends + ClosureUse *ast.ExprClosureUse } const T_INCLUDE = 57346 @@ -350,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line php7/php7.y:5666 +// line internal/php7/php7.y:5655 // line yacctab:1 var yyExca = [...]int{ @@ -2117,484 +2113,484 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:303 +// line internal/php7/php7.y:296 { - yylex.(*Parser).rootNode = node.NewRoot(yyDollar[1].list) + yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} // save position - yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, freefloating.End, yylex.(*Parser).currentToken.FreeFloating) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:316 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:317 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:318 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:319 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:320 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:321 +// line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:322 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:327 +// line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:330 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:330 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:330 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:330 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:330 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:330 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:335 +// line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:339 +// line internal/php7/php7.y:332 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:346 +// line internal/php7/php7.y:339 { - if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { + if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) } @@ -2607,51 +2603,51 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:359 +// line internal/php7/php7.y:352 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:368 +// line internal/php7/php7.y:361 { - namePart := name.NewNamePart(yyDollar[1].token.Value) - yyVAL.list = []node.Node{namePart} + namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{namePart} // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:381 +// line internal/php7/php7.y:374 { - namePart := name.NewNamePart(yyDollar[3].token.Value) + namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:398 +// line internal/php7/php7.y:391 { - yyVAL.node = name.NewName(yyDollar[1].list) + yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2660,36 +2656,36 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:410 +// line internal/php7/php7.y:403 { - yyVAL.node = name.NewRelative(yyDollar[3].list) + yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Namespace, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:423 +// line internal/php7/php7.y:416 { - yyVAL.node = name.NewFullyQualified(yyDollar[2].list) + yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:438 +// line internal/php7/php7.y:431 { // error yyVAL.node = nil @@ -2698,7 +2694,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:445 +// line internal/php7/php7.y:438 { yyVAL.node = yyDollar[1].node @@ -2706,7 +2702,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:451 +// line internal/php7/php7.y:444 { yyVAL.node = yyDollar[1].node @@ -2714,7 +2710,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:457 +// line internal/php7/php7.y:450 { yyVAL.node = yyDollar[1].node @@ -2722,7 +2718,7 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:463 +// line internal/php7/php7.y:456 { yyVAL.node = yyDollar[1].node @@ -2730,7 +2726,7 @@ yydefault: } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:469 +// line internal/php7/php7.y:462 { yyVAL.node = yyDollar[1].node @@ -2738,350 +2734,351 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:475 +// line internal/php7/php7.y:468 { - yyVAL.node = stmt.NewHaltCompiler() + yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.HaltCompiller, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OpenParenthesisToken, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CloseParenthesisToken, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:491 +// line internal/php7/php7.y:484 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewNamespace(name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:508 +// line internal/php7/php7.y:501 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:525 +// line internal/php7/php7.y:518 { - yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) + yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Namespace, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:539 +// line internal/php7/php7.y:532 { yyVAL.node = yyDollar[2].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseDeclarationList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:553 +// line internal/php7/php7.y:546 { - yyVAL.node = yyDollar[3].node.(*stmt.GroupUse).SetUseType(yyDollar[2].node) + yyDollar[3].node.(*ast.StmtGroupUse).UseType = yyDollar[2].node + yyVAL.node = yyDollar[3].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseDeclarationList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:567 +// line internal/php7/php7.y:561 { - yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) + yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseDeclarationList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:581 +// line internal/php7/php7.y:575 { - yyVAL.node = stmt.NewUseList(yyDollar[2].node, yyDollar[3].list) + yyVAL.node = &ast.StmtUseList{ast.Node{}, yyDollar[2].node, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseDeclarationList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:595 +// line internal/php7/php7.y:589 { - yyVAL.node = stmt.NewConstList(yyDollar[2].list) + yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:612 +// line internal/php7/php7.y:606 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:624 +// line internal/php7/php7.y:618 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:639 +// line internal/php7/php7.y:633 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, append(yyDollar[5].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.FreeFloating...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Tokens...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line php7/php7.y:660 +// line internal/php7/php7.y:654 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseType, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseType, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, append(yyDollar[6].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.FreeFloating...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Tokens...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:685 +// line internal/php7/php7.y:679 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[4].list) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, append(yyDollar[5].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.FreeFloating...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Tokens...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line php7/php7.y:706 +// line internal/php7/php7.y:700 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewGroupUse(nil, name, yyDollar[5].list) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Use, append(yyDollar[1].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Use, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, append(yyDollar[6].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.FreeFloating...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Tokens...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:731 +// line internal/php7/php7.y:725 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:735 +// line internal/php7/php7.y:729 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:742 +// line internal/php7/php7.y:736 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:751 +// line internal/php7/php7.y:745 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:760 +// line internal/php7/php7.y:754 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:769 +// line internal/php7/php7.y:763 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:778 +// line internal/php7/php7.y:772 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:787 +// line internal/php7/php7.y:781 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:796 +// line internal/php7/php7.y:790 { yyVAL.node = yyDollar[1].node @@ -3089,22 +3086,23 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:802 +// line internal/php7/php7.y:796 { - yyVAL.node = yyDollar[2].node.(*stmt.Use).SetUseType(yyDollar[1].node) + yyDollar[2].node.(*ast.StmtUse).UseType = yyDollar[1].node + yyVAL.node = yyDollar[2].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:811 +// line internal/php7/php7.y:806 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) @@ -3113,74 +3111,74 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:825 +// line internal/php7/php7.y:820 { - name := name.NewName(yyDollar[1].list) - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:846 +// line internal/php7/php7.y:841 { yyVAL.node = yyDollar[1].node // save coments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node.(*stmt.Use).Use, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node.(*ast.StmtUse).Use, yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:855 +// line internal/php7/php7.y:850 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:871 +// line internal/php7/php7.y:866 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:880 +// line internal/php7/php7.y:875 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:889 +// line internal/php7/php7.y:884 { - if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { + if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) } @@ -3193,15 +3191,15 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:902 +// line internal/php7/php7.y:897 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:911 +// line internal/php7/php7.y:906 { // error yyVAL.node = nil @@ -3210,7 +3208,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:918 +// line internal/php7/php7.y:913 { yyVAL.node = yyDollar[1].node @@ -3218,7 +3216,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:924 +// line internal/php7/php7.y:919 { yyVAL.node = yyDollar[1].node @@ -3226,7 +3224,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:930 +// line internal/php7/php7.y:925 { yyVAL.node = yyDollar[1].node @@ -3234,7 +3232,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:936 +// line internal/php7/php7.y:931 { yyVAL.node = yyDollar[1].node @@ -3242,7 +3240,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:942 +// line internal/php7/php7.y:937 { yyVAL.node = yyDollar[1].node @@ -3250,40 +3248,40 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:948 +// line internal/php7/php7.y:943 { - yyVAL.node = stmt.NewHaltCompiler() + yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.HaltCompiller, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OpenParenthesisToken, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CloseParenthesisToken, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:966 +// line internal/php7/php7.y:961 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list) + yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:979 +// line internal/php7/php7.y:974 { yyVAL.node = yyDollar[1].node @@ -3291,7 +3289,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:985 +// line internal/php7/php7.y:980 { yyVAL.node = yyDollar[1].node @@ -3299,56 +3297,56 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:991 +// line internal/php7/php7.y:986 { switch n := yyDollar[5].node.(type) { - case *stmt.While: + case *ast.StmtWhile: n.Cond = yyDollar[3].node - case *stmt.AltWhile: + case *ast.StmtAltWhile: n.Cond = yyDollar[3].node } yyVAL.node = yyDollar[5].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.While, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line php7/php7.y:1012 +// line internal/php7/php7.y:1007 { - yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[5].node) + yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.While, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[7].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[7].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[7].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line php7/php7.y:1029 +// line internal/php7/php7.y:1024 { switch n := yyDollar[9].node.(type) { - case *stmt.For: + case *ast.StmtFor: n.Init = yyDollar[3].list n.Cond = yyDollar[5].list n.Loop = yyDollar[7].list - case *stmt.AltFor: + case *ast.StmtAltFor: n.Init = yyDollar[3].list n.Cond = yyDollar[5].list n.Loop = yyDollar[7].list @@ -3357,25 +3355,25 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node.GetNode().Position = 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.For, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.InitExpr, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CondExpr, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.IncExpr, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:1056 +// line internal/php7/php7.y:1051 { switch n := yyDollar[5].node.(type) { - case *stmt.Switch: + case *ast.StmtSwitch: n.Cond = yyDollar[3].node - case *stmt.AltSwitch: + case *ast.StmtAltSwitch: n.Cond = yyDollar[3].node default: panic("unexpected node type") @@ -3384,377 +3382,376 @@ yydefault: yyVAL.node = yyDollar[5].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Switch, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1079 +// line internal/php7/php7.y:1074 { - yyVAL.node = stmt.NewBreak(yyDollar[2].node) + yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1093 +// line internal/php7/php7.y:1088 { - yyVAL.node = stmt.NewContinue(yyDollar[2].node) + yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1107 +// line internal/php7/php7.y:1102 { - yyVAL.node = stmt.NewReturn(yyDollar[2].node) + yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1121 +// line internal/php7/php7.y:1116 { - yyVAL.node = stmt.NewGlobal(yyDollar[2].list) + yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1135 +// line internal/php7/php7.y:1130 { - yyVAL.node = stmt.NewStatic(yyDollar[2].list) + yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1149 +// line internal/php7/php7.y:1144 { - yyVAL.node = stmt.NewEcho(yyDollar[2].list) + yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1164 +// line internal/php7/php7.y:1159 { - yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) + yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:1176 +// line internal/php7/php7.y:1171 { - yyVAL.node = stmt.NewExpression(yyDollar[1].node) + yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:1190 +// line internal/php7/php7.y:1185 { - yyVAL.node = stmt.NewUnset(yyDollar[3].list) + yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Unset, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) if yyDollar[4].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, append(yyDollar[4].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.FreeFloating...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Tokens...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CloseParenthesisToken, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line php7/php7.y:1210 +// line internal/php7/php7.y:1205 { switch n := yyDollar[7].node.(type) { - case *stmt.Foreach: + case *ast.StmtForeach: n.Expr = yyDollar[3].node - n.Variable = yyDollar[5].node - case *stmt.AltForeach: + n.Var = yyDollar[5].node + case *ast.StmtAltForeach: n.Expr = yyDollar[3].node - n.Variable = yyDollar[5].node + n.Var = yyDollar[5].node } yyVAL.node = yyDollar[7].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Foreach, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line php7/php7.y:1235 +// line internal/php7/php7.y:1230 { switch n := yyDollar[9].node.(type) { - case *stmt.Foreach: + case *ast.StmtForeach: n.Expr = yyDollar[3].node n.Key = yyDollar[5].node - n.Variable = yyDollar[7].node - case *stmt.AltForeach: + n.Var = yyDollar[7].node + case *ast.StmtAltForeach: n.Expr = yyDollar[3].node n.Key = yyDollar[5].node - n.Variable = yyDollar[7].node + n.Var = yyDollar[7].node } yyVAL.node = yyDollar[9].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node.GetNode().Position = 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.Foreach, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Key, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:1262 +// line internal/php7/php7.y:1257 { yyVAL.node = yyDollar[5].node - yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list + yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Declare, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ConstList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1277 +// line internal/php7/php7.y:1272 { - yyVAL.node = stmt.NewNop() + yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:1290 +// line internal/php7/php7.y:1285 { if yyDollar[6].node == nil { - yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) + yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) } else { - yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Try, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1307 +// line internal/php7/php7.y:1302 { - yyVAL.node = stmt.NewThrow(yyDollar[2].node) + yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1321 +// line internal/php7/php7.y:1316 { - label := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = stmt.NewGoto(label) + label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtGoto{ast.Node{}, label} // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(label, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Label, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:1338 +// line internal/php7/php7.y:1333 { - label := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewLabel(label) + label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtLabel{ast.Node{}, label} // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Label, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1355 +// line internal/php7/php7.y:1350 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line php7/php7.y:1361 +// line internal/php7/php7.y:1356 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[5].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - catch := stmt.NewCatch(yyDollar[4].list, variable, yyDollar[8].list) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[5].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + catch := &ast.StmtCatch{ast.Node{}, yyDollar[4].list, variable, yyDollar[8].list} yyVAL.list = append(yyDollar[1].list, catch) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token)) - catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token) + catch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(catch, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(catch, freefloating.Catch, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[5].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catch, freefloating.Var, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(catch, freefloating.Cond, yyDollar[7].token.FreeFloating) - yylex.(*Parser).setFreeFloating(catch, freefloating.Stmts, yyDollar[9].token.FreeFloating) + yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1386 +// line internal/php7/php7.y:1380 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1392 +// line internal/php7/php7.y:1386 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1404 +// line internal/php7/php7.y:1398 { yyVAL.node = nil @@ -3762,42 +3759,42 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1410 +// line internal/php7/php7.y:1404 { - yyVAL.node = stmt.NewFinally(yyDollar[3].list) + yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Finally, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1427 +// line internal/php7/php7.y:1421 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1433 +// line internal/php7/php7.y:1427 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1445 +// line internal/php7/php7.y:1439 { yyVAL.node = yyDollar[1].node @@ -3805,114 +3802,114 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line php7/php7.y:1454 +// line internal/php7/php7.y:1448 { - 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) + name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParamList, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.Tokens) if yyDollar[8].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyDollar[8].node.GetFreeFloating())[freefloating.Colon]) - delete((*yyDollar[8].node.GetFreeFloating()), freefloating.Colon) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[8].node.GetNode().Tokens[token.Colon]) + delete(yyDollar[8].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ReturnType, yyDollar[9].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[11].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) // normalize if yyDollar[8].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyVAL.node.GetFreeFloating())[freefloating.ReturnType]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.ReturnType) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) + delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1490 +// line internal/php7/php7.y:1484 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1494 +// line internal/php7/php7.y:1488 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1501 +// line internal/php7/php7.y:1495 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1505 +// line internal/php7/php7.y:1499 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line php7/php7.y:1512 +// line internal/php7/php7.y:1506 { - 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) + name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ModifierList, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[7].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[9].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line php7/php7.y:1530 +// line internal/php7/php7.y:1524 { - 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) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1550 +// line internal/php7/php7.y:1544 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:1556 +// line internal/php7/php7.y:1550 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3920,73 +3917,73 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1565 +// line internal/php7/php7.y:1559 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1577 +// line internal/php7/php7.y:1571 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:1592 +// line internal/php7/php7.y:1586 { - name := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = stmt.NewTrait(name, yyDollar[5].list, yyDollar[3].str) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line php7/php7.y:1612 +// line internal/php7/php7.y:1606 { - name := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[6].list, yyDollar[4].str) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1632 +// line internal/php7/php7.y:1626 { yyVAL.ClassExtends = nil @@ -3994,21 +3991,21 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:1638 +// line internal/php7/php7.y:1632 { - yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) + yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} // save position - yyVAL.ClassExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.ClassExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1653 +// line internal/php7/php7.y:1647 { yyVAL.InterfaceExtends = nil @@ -4016,21 +4013,21 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:1659 +// line internal/php7/php7.y:1653 { - yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) + yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} // save position - yyVAL.InterfaceExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.InterfaceExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1674 +// line internal/php7/php7.y:1668 { yyVAL.ClassImplements = nil @@ -4038,21 +4035,21 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:1680 +// line internal/php7/php7.y:1674 { - yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) + yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} // save position - yyVAL.ClassImplements.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.ClassImplements.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1695 +// line internal/php7/php7.y:1689 { yyVAL.node = yyDollar[1].node @@ -4060,335 +4057,337 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:1701 +// line internal/php7/php7.y:1695 { - yyVAL.node = expr.NewReference(yyDollar[2].node) + yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1713 +// line internal/php7/php7.y:1707 { - yyVAL.node = expr.NewList(yyDollar[3].list) + yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.List, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1727 +// line internal/php7/php7.y:1721 { - yyVAL.node = expr.NewShortList(yyDollar[2].list) + yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save commentsc - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1743 +// line internal/php7/php7.y:1737 { - yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) + yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1752 +// line internal/php7/php7.y:1746 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1772 +// line internal/php7/php7.y:1766 { - yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) + yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1781 +// line internal/php7/php7.y:1775 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1801 +// line internal/php7/php7.y:1795 { - yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) + yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1810 +// line internal/php7/php7.y:1804 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewDeclare(nil, stmtList, true) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:1830 +// line internal/php7/php7.y:1824 { - caseList := stmt.NewCaseList(yyDollar[2].list) - yyVAL.node = stmt.NewSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1845 +// line internal/php7/php7.y:1839 { - caseList := stmt.NewCaseList(yyDollar[3].list) - yyVAL.node = stmt.NewSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1861 +// line internal/php7/php7.y:1855 { - caseList := stmt.NewCaseList(yyDollar[2].list) - yyVAL.node = stmt.NewAltSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:1878 +// line internal/php7/php7.y:1872 { - caseList := stmt.NewCaseList(yyDollar[3].list) - yyVAL.node = stmt.NewAltSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:1900 +// line internal/php7/php7.y:1894 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:1906 +// line internal/php7/php7.y:1900 { - _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) + _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) // save position - _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_case, freefloating.Expr, append(yyDollar[4].token.FreeFloating)) - yylex.(*Parser).setFreeFloating(_case, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.Tokens)) + yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1921 +// line internal/php7/php7.y:1915 { - _default := stmt.NewDefault(yyDollar[4].list) + _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) // save position - _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.Default, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1939 +// line internal/php7/php7.y:1933 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1943 +// line internal/php7/php7.y:1937 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:1950 +// line internal/php7/php7.y:1944 { - yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) + yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:1959 +// line internal/php7/php7.y:1953 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewAltWhile(nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:1979 +// line internal/php7/php7.y:1973 { - yyVAL.node = stmt.NewIf(yyDollar[3].node, yyDollar[5].node, nil, nil) + yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.If, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:1993 +// line internal/php7/php7.y:1987 { - _elseIf := stmt.NewElseIf(yyDollar[4].node, yyDollar[6].node) - yyVAL.node = yyDollar[1].node.(*stmt.If).AddElseIf(_elseIf) + _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} + yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) + + yyVAL.node = yyDollar[1].node // save position - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2012 +// line internal/php7/php7.y:2008 { yyVAL.node = yyDollar[1].node @@ -4396,100 +4395,106 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2018 +// line internal/php7/php7.y:2014 { - _else := stmt.NewElse(yyDollar[3].node) - yyVAL.node = yyDollar[1].node.(*stmt.If).SetElse(_else) + _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} + yyDollar[1].node.(*ast.StmtIf).Else = _else + + yyVAL.node = yyDollar[1].node // save position - _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(_else, freefloating.Start, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:2035 +// line internal/php7/php7.y:2033 { - stmts := stmt.NewStmtList(yyDollar[6].list) - yyVAL.node = stmt.NewAltIf(yyDollar[3].node, stmts, nil, nil) + stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} + yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[6].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[6].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.If, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line php7/php7.y:2052 +// line internal/php7/php7.y:2050 { - stmts := stmt.NewStmtList(yyDollar[7].list) - _elseIf := stmt.NewAltElseIf(yyDollar[4].node, stmts) - yyVAL.node = yyDollar[1].node.(*stmt.AltIf).AddElseIf(_elseIf) + stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} + yyDollar[1].node.(*ast.StmtAltIf).ElseIf = append(yyDollar[1].node.(*ast.StmtAltIf).ElseIf, _elseIf) + + yyVAL.node = yyDollar[1].node // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[7].list)) - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[7].list) + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Cond, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2073 +// line internal/php7/php7.y:2073 { yyVAL.node = yyDollar[1].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:2087 +// line internal/php7/php7.y:2087 { - stmts := stmt.NewStmtList(yyDollar[4].list) - _else := stmt.NewAltElse(stmts) - yyVAL.node = yyDollar[1].node.(*stmt.AltIf).SetElse(_else) + stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} + _else := &ast.StmtAltElse{ast.Node{}, stmts} + yyDollar[1].node.(*ast.StmtAltIf).Else = _else + + yyVAL.node = yyDollar[1].node // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) - _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list) + _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(_else, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_else, freefloating.Else, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Else, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2110 +// line internal/php7/php7.y:2112 { yyVAL.list = yyDollar[1].list @@ -4497,7 +4502,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:2116 +// line internal/php7/php7.y:2118 { yyVAL.list = nil @@ -4505,42 +4510,42 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2125 +// line internal/php7/php7.y:2127 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2131 +// line internal/php7/php7.y:2133 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:2143 +// line internal/php7/php7.y:2145 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].token != nil, yyDollar[3].token != nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, nil} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) } // save comments @@ -4548,49 +4553,48 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Variadic, yyDollar[4].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, (*yyVAL.node.GetFreeFloating())[freefloating.Variadic]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Variadic) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, (*yyVAL.node.GetFreeFloating())[freefloating.Ampersand]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Ampersand) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, (*yyVAL.node.GetFreeFloating())[freefloating.OptionalType]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.OptionalType) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:2188 +// line internal/php7/php7.y:2189 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].token != nil, yyDollar[3].token != nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, yyDollar[6].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } // save comments @@ -4598,34 +4602,33 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Variadic, yyDollar[4].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, (*yyVAL.node.GetFreeFloating())[freefloating.Variadic]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Variadic) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, (*yyVAL.node.GetFreeFloating())[freefloating.Ampersand]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Ampersand) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, (*yyVAL.node.GetFreeFloating())[freefloating.OptionalType]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.OptionalType) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:2237 +// line internal/php7/php7.y:2237 { yyVAL.node = nil @@ -4633,7 +4636,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2243 +// line internal/php7/php7.y:2243 { yyVAL.node = yyDollar[1].node @@ -4641,7 +4644,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2252 +// line internal/php7/php7.y:2252 { yyVAL.node = yyDollar[1].node @@ -4649,49 +4652,49 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2258 +// line internal/php7/php7.y:2258 { - yyVAL.node = node.NewNullable(yyDollar[2].node) + yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2273 +// line internal/php7/php7.y:2273 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2285 +// line internal/php7/php7.y:2285 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2297 +// line internal/php7/php7.y:2297 { yyVAL.node = yyDollar[1].node @@ -4699,7 +4702,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:2306 +// line internal/php7/php7.y:2306 { yyVAL.node = nil @@ -4707,76 +4710,76 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2312 +// line internal/php7/php7.y:2312 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Colon, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Colon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2324 +// line internal/php7/php7.y:2324 { - yyVAL.node = node.NewArgumentList(nil) + yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArgumentList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:2337 +// line internal/php7/php7.y:2337 { - yyVAL.node = node.NewArgumentList(yyDollar[2].list) + yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArgumentList, append(yyDollar[3].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token), yyDollar[4].token.FreeFloating...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, append(yyDollar[3].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token), yyDollar[4].token.Tokens...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArgumentList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[4].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2357 +// line internal/php7/php7.y:2357 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2363 +// line internal/php7/php7.y:2363 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2375 +// line internal/php7/php7.y:2375 { - yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) + yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -4785,40 +4788,40 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2387 +// line internal/php7/php7.y:2387 { - yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) + yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2402 +// line internal/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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2411 +// line internal/php7/php7.y:2411 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2420 +// line internal/php7/php7.y:2420 { yyVAL.node = yyDollar[1].node @@ -4826,65 +4829,63 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2429 +// line internal/php7/php7.y:2429 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2438 +// line internal/php7/php7.y:2438 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2447 +// line internal/php7/php7.y:2447 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = stmt.NewStaticVar(variable, nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, nil} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2464 +// line internal/php7/php7.y:2463 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = stmt.NewStaticVar(variable, yyDollar[3].node) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = 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).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2485 +// line internal/php7/php7.y:2483 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4892,172 +4893,172 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:2491 +// line internal/php7/php7.y:2489 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:2500 +// line internal/php7/php7.y:2498 { - yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, yyDollar[2].node, yyDollar[3].list) + yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:2514 +// line internal/php7/php7.y:2512 { - yyVAL.node = stmt.NewClassConstList(yyDollar[1].list, yyDollar[3].list) + yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token) // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ModifierList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ConstList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2533 +// line internal/php7/php7.y:2531 { - yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) + yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line php7/php7.y:2545 +// line internal/php7/php7.y:2543 { - 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) + name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].list == nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) } // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ModifierList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.Tokens) if yyDollar[9].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyDollar[9].node.GetFreeFloating())[freefloating.Colon]) - delete((*yyDollar[9].node.GetFreeFloating()), freefloating.Colon) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[9].node.GetNode().Tokens[token.Colon]) + delete(yyDollar[9].node.GetNode().Tokens, token.Colon) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2582 +// line internal/php7/php7.y:2580 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2588 +// line internal/php7/php7.y:2586 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2600 +// line internal/php7/php7.y:2598 { - yyVAL.node = stmt.NewNop() + yyVAL.node = &ast.StmtNop{ast.Node{}} - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2613 +// line internal/php7/php7.y:2611 { - yyVAL.node = stmt.NewTraitAdaptationList(nil) + yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AdaptationList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2625 +// line internal/php7/php7.y:2623 { - yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) + yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AdaptationList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2640 +// line internal/php7/php7.y:2638 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2646 +// line internal/php7/php7.y:2644 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5065,131 +5066,131 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2655 +// line internal/php7/php7.y:2653 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.NameList, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2665 +// line internal/php7/php7.y:2663 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Alias, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2678 +// line internal/php7/php7.y:2676 { - yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) + yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ref, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2694 +// line internal/php7/php7.y:2692 { - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) + alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, 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)) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2710 +// line internal/php7/php7.y:2708 { - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, nil, alias) + alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, 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)) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:2726 +// line internal/php7/php7.y:2724 { - alias := node.NewIdentifier(yyDollar[4].token.Value) - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) + alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} // save position - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = 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.Ref, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2742 +// line internal/php7/php7.y:2740 { - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) + yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Ref, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2758 +// line internal/php7/php7.y:2756 { - name := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewTraitMethodRef(nil, name) + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2772 +// line internal/php7/php7.y:2770 { yyVAL.node = yyDollar[1].node @@ -5197,55 +5198,55 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2781 +// line internal/php7/php7.y:2779 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2800 +// line internal/php7/php7.y:2798 { - yyVAL.node = stmt.NewNop() + yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2813 +// line internal/php7/php7.y:2811 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list) + yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2829 +// line internal/php7/php7.y:2827 { yyVAL.list = yyDollar[1].list @@ -5253,22 +5254,22 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2835 +// line internal/php7/php7.y:2833 { - modifier := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.list = []node.Node{modifier} + modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{modifier} // save position - modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:2851 +// line internal/php7/php7.y:2849 { yyVAL.list = nil @@ -5276,7 +5277,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2857 +// line internal/php7/php7.y:2855 { yyVAL.list = yyDollar[1].list @@ -5284,15 +5285,15 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2866 +// line internal/php7/php7.y:2864 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2872 +// line internal/php7/php7.y:2870 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5300,221 +5301,219 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2881 +// line internal/php7/php7.y:2879 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2893 +// line internal/php7/php7.y:2891 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2905 +// line internal/php7/php7.y:2903 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2917 +// line internal/php7/php7.y:2915 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2929 +// line internal/php7/php7.y:2927 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2941 +// line internal/php7/php7.y:2939 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:2956 +// line internal/php7/php7.y:2954 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:2965 +// line internal/php7/php7.y:2963 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:2974 +// line internal/php7/php7.y:2972 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = stmt.NewProperty(variable, nil, yyDollar[2].str) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, nil} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:2991 +// line internal/php7/php7.y:2988 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = stmt.NewProperty(variable, yyDollar[3].node, yyDollar[4].str) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = 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).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3012 +// line internal/php7/php7.y:3008 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:3021 +// line internal/php7/php7.y:3017 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:3030 +// line internal/php7/php7.y:3026 { - name := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:3048 +// line internal/php7/php7.y:3044 { - name := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewConstant(name, yyDollar[3].node, yyDollar[4].str) + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3066 +// line internal/php7/php7.y:3062 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:3075 +// line internal/php7/php7.y:3071 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:3084 +// line internal/php7/php7.y:3080 { yyVAL.node = yyDollar[1].node @@ -5522,7 +5521,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:3093 +// line internal/php7/php7.y:3089 { yyVAL.list = nil @@ -5530,7 +5529,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:3099 +// line internal/php7/php7.y:3095 { yyVAL.list = yyDollar[1].list @@ -5538,886 +5537,886 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3108 +// line internal/php7/php7.y:3104 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:3117 +// line internal/php7/php7.y:3113 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line php7/php7.y:3126 +// line internal/php7/php7.y:3122 { 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) + yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} } else { - yyVAL.node = stmt.NewClass(nil, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list, yyDollar[5].str) + yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} } // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3147 +// line internal/php7/php7.y:3143 { if yyDollar[3].node != nil { - yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) } else { - yyVAL.node = expr.NewNew(yyDollar[2].node, nil) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3162 +// line internal/php7/php7.y:3158 { - yyVAL.node = expr.NewNew(yyDollar[2].node, nil) + yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:3177 +// line internal/php7/php7.y:3173 { - listNode := expr.NewList(yyDollar[3].list) - yyVAL.node = assign.NewAssign(listNode, yyDollar[6].node) + listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:3194 +// line internal/php7/php7.y:3190 { - shortList := expr.NewShortList(yyDollar[2].list) - yyVAL.node = assign.NewAssign(shortList, yyDollar[5].node) + shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} // save position - shortList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + shortList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(shortList, freefloating.ArrayPairList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3210 +// line internal/php7/php7.y:3206 { - yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:3223 +// line internal/php7/php7.y:3219 { - yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) + yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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.Var, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Equal, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3237 +// line internal/php7/php7.y:3233 { - yyVAL.node = expr.NewClone(yyDollar[2].node) + yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3249 +// line internal/php7/php7.y:3245 { - yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3262 +// line internal/php7/php7.y:3258 { - yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3275 +// line internal/php7/php7.y:3271 { - yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3288 +// line internal/php7/php7.y:3284 { - yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3301 +// line internal/php7/php7.y:3297 { - yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3314 +// line internal/php7/php7.y:3310 { - yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3327 +// line internal/php7/php7.y:3323 { - yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3340 +// line internal/php7/php7.y:3336 { - yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3353 +// line internal/php7/php7.y:3349 { - yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3366 +// line internal/php7/php7.y:3362 { - yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3379 +// line internal/php7/php7.y:3375 { - yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3392 +// line internal/php7/php7.y:3388 { - yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3405 +// line internal/php7/php7.y:3401 { - yyVAL.node = assign.NewCoalesce(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3418 +// line internal/php7/php7.y:3414 { - yyVAL.node = expr.NewPostInc(yyDollar[1].node) + yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3431 +// line internal/php7/php7.y:3427 { - yyVAL.node = expr.NewPreInc(yyDollar[2].node) + yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3443 +// line internal/php7/php7.y:3439 { - yyVAL.node = expr.NewPostDec(yyDollar[1].node) + yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3456 +// line internal/php7/php7.y:3452 { - yyVAL.node = expr.NewPreDec(yyDollar[2].node) + yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3468 +// line internal/php7/php7.y:3464 { - yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3481 +// line internal/php7/php7.y:3477 { - yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3494 +// line internal/php7/php7.y:3490 { - yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3507 +// line internal/php7/php7.y:3503 { - yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3520 +// line internal/php7/php7.y:3516 { - yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3533 +// line internal/php7/php7.y:3529 { - yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3546 +// line internal/php7/php7.y:3542 { - yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3559 +// line internal/php7/php7.y:3555 { - yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3572 +// line internal/php7/php7.y:3568 { - yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3585 +// line internal/php7/php7.y:3581 { - yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3598 +// line internal/php7/php7.y:3594 { - yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3611 +// line internal/php7/php7.y:3607 { - yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3624 +// line internal/php7/php7.y:3620 { - yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3637 +// line internal/php7/php7.y:3633 { - yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3650 +// line internal/php7/php7.y:3646 { - yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3663 +// line internal/php7/php7.y:3659 { - yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3676 +// line internal/php7/php7.y:3672 { - yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3689 +// line internal/php7/php7.y:3685 { - yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) + yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3701 +// line internal/php7/php7.y:3697 { - yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) + yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3713 +// line internal/php7/php7.y:3709 { - yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) + yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3725 +// line internal/php7/php7.y:3721 { - yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) + yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3737 +// line internal/php7/php7.y:3733 { - yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3750 +// line internal/php7/php7.y:3746 { - yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3763 +// line internal/php7/php7.y:3759 { - yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3776 +// line internal/php7/php7.y:3772 { - yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3790 +// line internal/php7/php7.y:3786 { - yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3803 +// line internal/php7/php7.y:3799 { - yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3816 +// line internal/php7/php7.y:3812 { - yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3829 +// line internal/php7/php7.y:3825 { - yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3842 +// line internal/php7/php7.y:3838 { - yyVAL.node = binary.NewSpaceship(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3855 +// line internal/php7/php7.y:3851 { - yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3868 +// line internal/php7/php7.y:3864 { 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:3878 +// line internal/php7/php7.y:3874 { yyVAL.node = yyDollar[1].node @@ -6425,54 +6424,54 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:3884 +// line internal/php7/php7.y:3880 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) + yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.True, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:3898 +// line internal/php7/php7.y:3894 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) + yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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.Cond, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.True, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:3912 +// line internal/php7/php7.y:3908 { - yyVAL.node = binary.NewCoalesce(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:3925 +// line internal/php7/php7.y:3921 { yyVAL.node = yyDollar[1].node @@ -6480,155 +6479,155 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3931 +// line internal/php7/php7.y:3927 { - yyVAL.node = cast.NewInt(yyDollar[2].node) + yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3944 +// line internal/php7/php7.y:3940 { - yyVAL.node = cast.NewDouble(yyDollar[2].node) + yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3957 +// line internal/php7/php7.y:3953 { - yyVAL.node = cast.NewString(yyDollar[2].node) + yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3970 +// line internal/php7/php7.y:3966 { - yyVAL.node = cast.NewArray(yyDollar[2].node) + yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3983 +// line internal/php7/php7.y:3979 { - yyVAL.node = cast.NewObject(yyDollar[2].node) + yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:3996 +// line internal/php7/php7.y:3992 { - yyVAL.node = cast.NewBool(yyDollar[2].node) + yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4009 +// line internal/php7/php7.y:4005 { - yyVAL.node = cast.NewUnset(yyDollar[2].node) + yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4022 +// line internal/php7/php7.y:4018 { - var e *expr.Exit + var e *ast.ExprExit if yyDollar[2].node != nil { - e = yyDollar[2].node.(*expr.Exit) + e = yyDollar[2].node.(*ast.ExprExit) } else { - e = expr.NewExit(nil) + e = &ast.ExprExit{ast.Node{}, false, nil} } yyVAL.node = e - if strings.EqualFold(yyDollar[1].token.Value, "die") { + if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { e.Die = true } // save position if yyDollar[2].node == nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4049 +// line internal/php7/php7.y:4045 { - yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) + yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4061 +// line internal/php7/php7.y:4057 { yyVAL.node = yyDollar[1].node @@ -6636,92 +6635,92 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4067 +// line internal/php7/php7.y:4063 { - yyVAL.node = expr.NewShellExec(yyDollar[2].list) + yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4079 +// line internal/php7/php7.y:4075 { - yyVAL.node = expr.NewPrint(yyDollar[2].node) + yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4091 +// line internal/php7/php7.y:4087 { - yyVAL.node = expr.NewYield(nil, nil) + yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4103 +// line internal/php7/php7.y:4099 { - yyVAL.node = expr.NewYield(nil, yyDollar[2].node) + yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4115 +// line internal/php7/php7.y:4111 { - yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) + yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4128 +// line internal/php7/php7.y:4124 { - yyVAL.node = expr.NewYieldFrom(yyDollar[2].node) + yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4140 +// line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node @@ -6729,99 +6728,99 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4146 +// line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[2].node switch n := yyVAL.node.(type) { - case *expr.Closure: + case *ast.ExprClosure: n.Static = true - case *expr.ArrowFunction: + case *ast.ExprArrowFunction: n.Static = true } // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Static, yyVAL.node.GetNode().Tokens[token.Start]) + delete(yyVAL.node.GetNode().Tokens, token.Start) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line php7/php7.y:4169 +// line internal/php7/php7.y:4165 { - yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list, false, yyDollar[2].token != nil, yyDollar[3].str) + yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) if yyDollar[8].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.LexicalVars, (*yyDollar[8].node.GetFreeFloating())[freefloating.Colon]) - delete((*yyDollar[8].node.GetFreeFloating()), freefloating.Colon) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].node.GetNode().Tokens[token.Colon]) + delete(yyDollar[8].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ReturnType, yyDollar[9].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[11].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) // normalize if yyDollar[8].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.LexicalVars, (*yyVAL.node.GetFreeFloating())[freefloating.ReturnType]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.ReturnType) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyVAL.node.GetNode().Tokens[token.ReturnType]) + delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } if yyDollar[7].ClosureUse == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyVAL.node.GetFreeFloating())[freefloating.LexicalVarList]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.LexicalVarList) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVarList]) + delete(yyVAL.node.GetNode().Tokens, token.LexicalVarList) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line php7/php7.y:4201 +// line internal/php7/php7.y:4197 { - yyVAL.node = expr.NewArrowFunction(yyDollar[4].list, yyDollar[6].node, yyDollar[9].node, false, yyDollar[2].token != nil, yyDollar[7].str) + yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node.GetNode().Position = 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, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) } 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, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) 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, token.Params, yyDollar[6].node.GetNode().Tokens[token.Colon]) + delete(yyDollar[6].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ReturnType, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.Tokens) // normalize if yyDollar[6].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyVAL.node.GetFreeFloating())[freefloating.ReturnType]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.ReturnType) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) + delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 375: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:4232 +// line internal/php7/php7.y:4228 { yyVAL.str = yylex.(*Parser).Lexer.GetPhpDocComment() yylex.(*Parser).Lexer.SetPhpDocComment("") @@ -6830,19 +6829,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:4242 +// line internal/php7/php7.y:4238 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4246 +// line internal/php7/php7.y:4242 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:4253 +// line internal/php7/php7.y:4249 { yyVAL.ClosureUse = nil @@ -6850,84 +6849,82 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4259 +// line internal/php7/php7.y:4255 { - yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) + yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} // save position - yyVAL.ClosureUse.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.ClosureUse.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, freefloating.Use, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, freefloating.LexicalVarList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4276 +// line internal/php7/php7.y:4272 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4285 +// line internal/php7/php7.y:4281 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4294 +// line internal/php7/php7.y:4290 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(identifier) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4309 +// line internal/php7/php7.y:4304 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = expr.NewReference(variable) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.ExprReference{ast.Node{}, variable} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4330 +// line internal/php7/php7.y:4324 { - yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6936,42 +6933,42 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4342 +// line internal/php7/php7.y:4336 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4355 +// line internal/php7/php7.y:4349 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4368 +// line internal/php7/php7.y:4362 { - yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6980,21 +6977,21 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4383 +// line internal/php7/php7.y:4377 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4395 +// line internal/php7/php7.y:4389 { yyVAL.node = yyDollar[1].node @@ -7002,7 +6999,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4404 +// line internal/php7/php7.y:4398 { yyVAL.node = yyDollar[1].node @@ -7010,7 +7007,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4410 +// line internal/php7/php7.y:4404 { yyVAL.node = yyDollar[1].node @@ -7018,7 +7015,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:4419 +// line internal/php7/php7.y:4413 { yyVAL.node = nil @@ -7026,42 +7023,42 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4425 +// line internal/php7/php7.y:4419 { - yyVAL.node = expr.NewExit(yyDollar[2].node) + yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Exit, append(yyDollar[1].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:4441 +// line internal/php7/php7.y:4435 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4447 +// line internal/php7/php7.y:4441 { - part := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) - yyVAL.list = []node.Node{part} + part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{part} // save position - part.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4457 +// line internal/php7/php7.y:4451 { yyVAL.list = yyDollar[1].list @@ -7069,7 +7066,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:4466 +// line internal/php7/php7.y:4460 { yyVAL.node = nil @@ -7077,7 +7074,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4472 +// line internal/php7/php7.y:4466 { yyVAL.node = yyDollar[1].node @@ -7085,250 +7082,250 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4481 +// line internal/php7/php7.y:4475 { - yyVAL.node = expr.NewArray(yyDollar[3].list) + yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Array, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4495 +// line internal/php7/php7.y:4489 { - yyVAL.node = expr.NewShortArray(yyDollar[2].list) + yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4508 +// line internal/php7/php7.y:4502 { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4523 +// line internal/php7/php7.y:4517 { - yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4535 +// line internal/php7/php7.y:4529 { - yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4547 +// line internal/php7/php7.y:4541 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4559 +// line internal/php7/php7.y:4553 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4571 +// line internal/php7/php7.y:4565 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4583 +// line internal/php7/php7.y:4577 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4595 +// line internal/php7/php7.y:4589 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4607 +// line internal/php7/php7.y:4601 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4619 +// line internal/php7/php7.y:4613 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4631 +// line internal/php7/php7.y:4625 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4643 +// line internal/php7/php7.y:4637 { - encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) - yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4657 +// line internal/php7/php7.y:4651 { - yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) + yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4669 +// line internal/php7/php7.y:4663 { - yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) + yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4681 +// line internal/php7/php7.y:4675 { - yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) + yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4693 +// line internal/php7/php7.y:4687 { yyVAL.node = yyDollar[1].node @@ -7336,7 +7333,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4699 +// line internal/php7/php7.y:4693 { yyVAL.node = yyDollar[1].node @@ -7344,12 +7341,12 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4708 +// line internal/php7/php7.y:4702 { - yyVAL.node = expr.NewConstFetch(yyDollar[1].node) + yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7358,43 +7355,43 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4720 +// line internal/php7/php7.y:4714 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4736 +// line internal/php7/php7.y:4730 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4755 +// line internal/php7/php7.y:4749 { yyVAL.node = yyDollar[1].node @@ -7402,7 +7399,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4761 +// line internal/php7/php7.y:4755 { yyVAL.node = yyDollar[1].node @@ -7410,7 +7407,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:4770 +// line internal/php7/php7.y:4764 { yyVAL.node = nil @@ -7418,7 +7415,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4776 +// line internal/php7/php7.y:4770 { yyVAL.node = yyDollar[1].node @@ -7426,7 +7423,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4785 +// line internal/php7/php7.y:4779 { yyVAL.node = yyDollar[1].node @@ -7434,7 +7431,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4794 +// line internal/php7/php7.y:4788 { yyVAL.node = yyDollar[1].node @@ -7442,19 +7439,19 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4800 +// line internal/php7/php7.y:4794 { 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4810 +// line internal/php7/php7.y:4804 { yyVAL.node = yyDollar[1].node @@ -7462,7 +7459,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4819 +// line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[1].node @@ -7470,19 +7467,19 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4825 +// line internal/php7/php7.y:4819 { 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4835 +// line internal/php7/php7.y:4829 { yyVAL.node = yyDollar[1].node @@ -7490,7 +7487,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4844 +// line internal/php7/php7.y:4838 { yyVAL.node = yyDollar[1].node @@ -7498,70 +7495,70 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4850 +// line internal/php7/php7.y:4844 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4864 +// line internal/php7/php7.y:4858 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4878 +// line internal/php7/php7.y:4872 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4892 +// line internal/php7/php7.y:4886 { - yyVAL.node = expr.NewMethodCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4905 +// line internal/php7/php7.y:4899 { yyVAL.node = yyDollar[1].node @@ -7569,7 +7566,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4914 +// line internal/php7/php7.y:4908 { yyVAL.node = yyDollar[1].node @@ -7577,7 +7574,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4920 +// line internal/php7/php7.y:4914 { yyVAL.node = yyDollar[1].node @@ -7585,101 +7582,100 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4926 +// line internal/php7/php7.y:4920 { - yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:4942 +// line internal/php7/php7.y:4936 { - name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:4957 +// line internal/php7/php7.y:4950 { - yyVAL.node = expr.NewVariable(yyDollar[3].node) + yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - 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).setFreeFloating(yyDollar[3].node, freefloating.Start, append(yyDollar[2].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), (*yyDollar[3].node.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, freefloating.End, append((*yyDollar[3].node.GetFreeFloating())[freefloating.End], append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:4972 +// line internal/php7/php7.y:4965 { - yyVAL.node = expr.NewVariable(yyDollar[2].node) + yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:4988 +// line internal/php7/php7.y:4981 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5001 +// line internal/php7/php7.y:4994 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5017 +// line internal/php7/php7.y:5010 { yyVAL.node = yyDollar[1].node @@ -7687,110 +7683,110 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:5023 +// line internal/php7/php7.y:5016 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:5037 +// line internal/php7/php7.y:5030 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5051 +// line internal/php7/php7.y:5044 { - yyVAL.node = expr.NewPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5064 +// line internal/php7/php7.y:5057 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5077 +// line internal/php7/php7.y:5070 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5093 +// line internal/php7/php7.y:5086 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5105 +// line internal/php7/php7.y:5098 { 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5115 +// line internal/php7/php7.y:5108 { yyVAL.node = yyDollar[1].node @@ -7798,33 +7794,33 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5124 +// line internal/php7/php7.y:5117 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5136 +// line internal/php7/php7.y:5129 { 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5146 +// line internal/php7/php7.y:5139 { yyVAL.node = yyDollar[1].node @@ -7832,7 +7828,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5155 +// line internal/php7/php7.y:5148 { yyVAL.list = yyDollar[1].list @@ -7840,15 +7836,15 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line php7/php7.y:5164 +// line internal/php7/php7.y:5157 { - yyVAL.node = expr.NewArrayItem(nil, nil, false) + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5170 +// line internal/php7/php7.y:5163 { yyVAL.node = yyDollar[1].node @@ -7856,54 +7852,54 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5179 +// line internal/php7/php7.y:5172 { if len(yyDollar[1].list) == 0 { - yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil, false)} + yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} } 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5192 +// line internal/php7/php7.y:5185 { - if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { - yyVAL.list = []node.Node{} + if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { + yyVAL.list = []ast.Vertex{} } else { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5205 +// line internal/php7/php7.y:5198 { - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5218 +// line internal/php7/php7.y:5211 { - yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7912,95 +7908,95 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:5230 +// line internal/php7/php7.y:5223 { - reference := expr.NewReference(yyDollar[4].node) - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, reference, false) + reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5246 +// line internal/php7/php7.y:5239 { - reference := expr.NewReference(yyDollar[2].node) - yyVAL.node = expr.NewArrayItem(nil, reference, false) + reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + reference.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5260 +// line internal/php7/php7.y:5253 { - yyVAL.node = expr.NewArrayItem(nil, yyDollar[2].node, true) + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:5272 +// line internal/php7/php7.y:5265 { // TODO: Cannot use list() as standalone expression - listNode := expr.NewList(yyDollar[5].list) - yyVAL.node = expr.NewArrayItem(yyDollar[1].node, listNode, false) + listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, listNode} // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token)) + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:5291 +// line internal/php7/php7.y:5284 { // TODO: Cannot use list() as standalone expression - listNode := expr.NewList(yyDollar[3].list) - yyVAL.node = expr.NewArrayItem(nil, listNode, false) + listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5311 +// line internal/php7/php7.y:5304 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8008,378 +8004,374 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5317 +// line internal/php7/php7.y:5310 { - encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5330 +// line internal/php7/php7.y:5323 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5336 +// line internal/php7/php7.y:5329 { - encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) - yyVAL.list = []node.Node{encapsed, yyDollar[2].node} + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5352 +// line internal/php7/php7.y:5345 { - name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:5367 +// line internal/php7/php7.y:5359 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).addDollarToken(variable) - 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, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5385 +// line internal/php7/php7.y:5376 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - fetch := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewPropertyFetch(variable, fetch) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + fetch := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5405 +// line internal/php7/php7.y:5395 { - variable := expr.NewVariable(yyDollar[2].node) + variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} yyVAL.node = variable // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5420 +// line internal/php7/php7.y:5410 { - name := node.NewIdentifier(yyDollar[2].token.Value) - variable := expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + variable := &ast.ExprVariable{ast.Node{}, name} yyVAL.node = variable // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line php7/php7.y:5437 +// line internal/php7/php7.y:5427 { - identifier := node.NewIdentifier(yyDollar[2].token.Value) - variable := expr.NewVariable(identifier) - yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) + identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[5].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[6].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5456 +// line internal/php7/php7.y:5446 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5469 +// line internal/php7/php7.y:5459 { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5481 +// line internal/php7/php7.y:5471 { // TODO: add option to handle 64 bit integer - if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { - yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) + if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { + yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} } else { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} } // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5498 +// line internal/php7/php7.y:5488 { - var lnumber *scalar.Lnumber + var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer - _, err := strconv.Atoi(yyDollar[2].token.Value) + _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil if isInt { - lnumber = scalar.NewLnumber(yyDollar[2].token.Value) - yyVAL.node = expr.NewUnaryMinus(lnumber) + lnumber = &ast.ScalarLnumber{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, lnumber} } else { - yyDollar[2].token.Value = "-" + yyDollar[2].token.Value - yyVAL.node = scalar.NewString(yyDollar[2].token.Value) + yyDollar[2].token.Value = append([]byte("-"), yyDollar[2].token.Value...) + yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[2].token.Value} } // save position if isInt { - lnumber.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + lnumber.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) } - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5524 +// line internal/php7/php7.y:5514 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(identifier) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line php7/php7.y:5542 +// line internal/php7/php7.y:5531 { - yyVAL.node = expr.NewIsset(yyDollar[3].list) + yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Isset, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) if yyDollar[4].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, append(yyDollar[4].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.FreeFloating...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Tokens...)...)) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:5560 +// line internal/php7/php7.y:5549 { - yyVAL.node = expr.NewEmpty(yyDollar[3].node) + yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Empty, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5574 +// line internal/php7/php7.y:5563 { - yyVAL.node = expr.NewInclude(yyDollar[2].node) + yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5586 +// line internal/php7/php7.y:5575 { - yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) + yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line php7/php7.y:5598 +// line internal/php7/php7.y:5587 { - yyVAL.node = expr.NewEval(yyDollar[3].node) + yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Eval, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5612 +// line internal/php7/php7.y:5601 { - yyVAL.node = expr.NewRequire(yyDollar[2].node) + yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line php7/php7.y:5624 +// line internal/php7/php7.y:5613 { - yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) + yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5639 +// line internal/php7/php7.y:5628 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line php7/php7.y:5645 +// line internal/php7/php7.y:5634 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line php7/php7.y:5657 +// line internal/php7/php7.y:5646 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y new file mode 100644 index 0000000..9f08fa4 --- /dev/null +++ b/internal/php7/php7.y @@ -0,0 +1,5655 @@ +%{ +package php7 + +import ( + "bytes" + "strconv" + + "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" +) + +%} + +%union{ + node ast.Vertex + token *scanner.Token + list []ast.Vertex + str string + + ClassExtends *ast.StmtClassExtends + ClassImplements *ast.StmtClassImplements + InterfaceExtends *ast.StmtInterfaceExtends + ClosureUse *ast.ExprClosureUse +} + +%type $unk +%token T_INCLUDE +%token T_INCLUDE_ONCE +%token T_EXIT +%token T_IF +%token T_LNUMBER +%token T_DNUMBER +%token T_STRING +%token T_STRING_VARNAME +%token T_VARIABLE +%token T_NUM_STRING +%token T_INLINE_HTML +%token T_CHARACTER +%token T_BAD_CHARACTER +%token T_ENCAPSED_AND_WHITESPACE +%token T_CONSTANT_ENCAPSED_STRING +%token T_ECHO +%token T_DO +%token T_WHILE +%token T_ENDWHILE +%token T_FOR +%token T_ENDFOR +%token T_FOREACH +%token T_ENDFOREACH +%token T_DECLARE +%token T_ENDDECLARE +%token T_AS +%token T_SWITCH +%token T_ENDSWITCH +%token T_CASE +%token T_DEFAULT +%token T_BREAK +%token T_CONTINUE +%token T_GOTO +%token T_FUNCTION +%token T_FN +%token T_CONST +%token T_RETURN +%token T_TRY +%token T_CATCH +%token T_FINALLY +%token T_THROW +%token T_USE +%token T_INSTEADOF +%token T_GLOBAL +%token T_VAR +%token T_UNSET +%token T_ISSET +%token T_EMPTY +%token T_HALT_COMPILER +%token T_CLASS +%token T_TRAIT +%token T_INTERFACE +%token T_EXTENDS +%token T_IMPLEMENTS +%token T_OBJECT_OPERATOR +%token T_DOUBLE_ARROW +%token T_LIST +%token T_ARRAY +%token T_CALLABLE +%token T_CLASS_C +%token T_TRAIT_C +%token T_METHOD_C +%token T_FUNC_C +%token T_LINE +%token T_FILE +%token T_COMMENT +%token T_DOC_COMMENT +%token T_OPEN_TAG +%token T_OPEN_TAG_WITH_ECHO +%token T_CLOSE_TAG +%token T_WHITESPACE +%token T_START_HEREDOC +%token T_END_HEREDOC +%token T_DOLLAR_OPEN_CURLY_BRACES +%token T_CURLY_OPEN +%token T_PAAMAYIM_NEKUDOTAYIM +%token T_NAMESPACE +%token T_NS_C +%token T_DIR +%token T_NS_SEPARATOR +%token T_ELLIPSIS +%token T_EVAL +%token T_REQUIRE +%token T_REQUIRE_ONCE +%token T_LOGICAL_OR +%token T_LOGICAL_XOR +%token T_LOGICAL_AND +%token T_INSTANCEOF +%token T_NEW +%token T_CLONE +%token T_ELSEIF +%token T_ELSE +%token T_ENDIF +%token T_PRINT +%token T_YIELD +%token T_STATIC +%token T_ABSTRACT +%token T_FINAL +%token T_PRIVATE +%token T_PROTECTED +%token T_PUBLIC +%token T_INC +%token T_DEC +%token T_YIELD_FROM +%token T_INT_CAST +%token T_DOUBLE_CAST +%token T_STRING_CAST +%token T_ARRAY_CAST +%token T_OBJECT_CAST +%token T_BOOL_CAST +%token T_UNSET_CAST +%token T_COALESCE +%token T_SPACESHIP +%token T_NOELSE +%token T_PLUS_EQUAL +%token T_MINUS_EQUAL +%token T_MUL_EQUAL +%token T_POW_EQUAL +%token T_DIV_EQUAL +%token T_CONCAT_EQUAL +%token T_MOD_EQUAL +%token T_AND_EQUAL +%token T_OR_EQUAL +%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 +%token T_SL +%token T_SR +%token T_IS_IDENTICAL +%token T_IS_NOT_IDENTICAL +%token T_IS_EQUAL +%token T_IS_NOT_EQUAL +%token T_IS_SMALLER_OR_EQUAL +%token T_IS_GREATER_OR_EQUAL +%token '"' +%token '`' +%token '{' +%token '}' +%token ';' +%token ':' +%token '(' +%token ')' +%token '[' +%token ']' +%token '?' +%token '&' +%token '-' +%token '+' +%token '!' +%token '~' +%token '@' +%token '$' +%token ',' +%token '|' +%token '=' +%token '^' +%token '*' +%token '/' +%token '%' +%token '<' +%token '>' +%token '.' + +%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE +%left ',' +%left T_LOGICAL_OR +%left T_LOGICAL_XOR +%left T_LOGICAL_AND +%right T_PRINT +%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 T_COALESCE_EQUAL +%left '?' ':' +%right T_COALESCE +%left T_BOOLEAN_OR +%left T_BOOLEAN_AND +%left '|' +%left '^' +%left '&' +%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP +%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL +%left T_SL T_SR +%left '+' '-' '.' +%left '*' '/' '%' +%right '!' +%nonassoc T_INSTANCEOF +%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' +%right T_POW +%right '[' +%nonassoc T_NEW T_CLONE +%left T_NOELSE +%left T_ELSEIF +%left T_ELSE +%left T_ENDIF +%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC + +%type is_reference is_variadic returns_ref + +%type reserved_non_modifiers +%type semi_reserved +%type identifier +%type possible_comma +%type case_separator + +%type top_statement name statement function_declaration_statement +%type class_declaration_statement trait_declaration_statement +%type interface_declaration_statement +%type group_use_declaration inline_use_declaration +%type mixed_group_use_declaration use_declaration unprefixed_use_declaration +%type const_decl inner_statement +%type expr optional_expr +%type declare_statement finally_statement unset_variable variable +%type parameter optional_type argument expr_without_variable global_var +%type static_var class_statement trait_adaptation trait_precedence trait_alias +%type absolute_trait_method_reference trait_method_reference property echo_expr +%type new_expr anonymous_class class_name class_name_reference simple_variable +%type internal_functions_in_yacc +%type exit_expr scalar lexical_var function_call member_name property_name +%type variable_class_name dereferencable_scalar constant dereferencable +%type callable_expr callable_variable static_member new_variable +%type encaps_var encaps_var_offset +%type if_stmt +%type alt_if_stmt +%type if_stmt_without_else +%type class_const_decl +%type alt_if_stmt_without_else +%type array_pair possible_array_pair +%type isset_variable type return_type type_expr +%type class_modifier +%type argument_list ctor_arguments +%type trait_adaptations +%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 +%type lexical_vars + +%type member_modifier +%type use_type +%type foreach_variable + + +%type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list +%type const_list echo_expr_list for_exprs non_empty_for_exprs global_var_list +%type unprefixed_use_declarations inline_use_declarations property_list static_var_list +%type case_list trait_adaptation_list unset_variables +%type use_declarations lexical_var_list isset_variables non_empty_array_pair_list +%type array_pair_list non_empty_argument_list top_statement_list +%type inner_statement_list parameter_list non_empty_parameter_list class_statement_list +%type method_modifiers variable_modifiers +%type non_empty_member_modifiers name_list class_modifiers + +%type backup_doc_comment + +%% + +///////////////////////////////////////////////////////////////////////// + +start: + top_statement_list + { + yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} + + // save position + yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +reserved_non_modifiers: + T_INCLUDE {$$=$1} | T_INCLUDE_ONCE {$$=$1} | T_EVAL {$$=$1} | T_REQUIRE {$$=$1} | T_REQUIRE_ONCE {$$=$1} | T_LOGICAL_OR {$$=$1} | T_LOGICAL_XOR {$$=$1} | T_LOGICAL_AND {$$=$1} + | T_INSTANCEOF {$$=$1} | T_NEW {$$=$1} | T_CLONE {$$=$1} | T_EXIT {$$=$1} | T_IF {$$=$1} | T_ELSEIF {$$=$1} | T_ELSE {$$=$1} | T_ENDIF {$$=$1} | T_ECHO {$$=$1} | T_DO {$$=$1} | T_WHILE {$$=$1} | T_ENDWHILE {$$=$1} + | T_FOR {$$=$1} | T_ENDFOR {$$=$1} | T_FOREACH {$$=$1} | T_ENDFOREACH {$$=$1} | T_DECLARE {$$=$1} | T_ENDDECLARE {$$=$1} | T_AS {$$=$1} | T_TRY {$$=$1} | T_CATCH {$$=$1} | T_FINALLY {$$=$1} + | 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_FN {$$=$1} +; + +semi_reserved: + reserved_non_modifiers + { + $$ = $1 + } + | T_STATIC {$$=$1} | T_ABSTRACT {$$=$1} | T_FINAL {$$=$1} | T_PRIVATE {$$=$1} | T_PROTECTED {$$=$1} | T_PUBLIC {$$=$1} +; + +identifier: + T_STRING + { + $$ = $1 + } + | semi_reserved + { + $$ = $1 + } +; + +top_statement_list: + top_statement_list top_statement + { + if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { + prevNode := lastNode($1) + yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) + } + + if $2 != nil { + $$ = append($1, $2) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | /* empty */ + { + $$ = []ast.Vertex{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +namespace_name: + T_STRING + { + namePart := &ast.NameNamePart{ast.Node{}, $1.Value} + $$ = []ast.Vertex{namePart} + + // save position + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | namespace_name T_NS_SEPARATOR T_STRING + { + namePart := &ast.NameNamePart{ast.Node{}, $3.Value} + $$ = append($1, namePart) + + // save position + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +name: + namespace_name + { + $$ = &ast.NameName{ast.Node{}, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + + // save comments + yylex.(*Parser).MoveFreeFloating($1[0], $$) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NAMESPACE T_NS_SEPARATOR namespace_name + { + $$ = &ast.NameRelative{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NS_SEPARATOR namespace_name + { + $$ = &ast.NameFullyQualified{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +top_statement: + error + { + // error + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | function_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | class_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | trait_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | interface_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_HALT_COMPILER '(' ')' ';' + { + $$ = &ast.StmtHaltCompiler{ast.Node{}} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NAMESPACE namespace_name ';' + { + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtNamespace{ast.Node{}, name, nil} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NAMESPACE namespace_name '{' top_statement_list '}' + { + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtNamespace{ast.Node{}, name, $4} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NAMESPACE '{' top_statement_list '}' + { + $$ = &ast.StmtNamespace{ast.Node{}, nil, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_USE mixed_group_use_declaration ';' + { + $$ = $2 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_USE use_type group_use_declaration ';' + { + $3.(*ast.StmtGroupUse).UseType = $2 + $$ = $3 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_USE use_declarations ';' + { + $$ = &ast.StmtUseList{ast.Node{}, nil, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_USE use_type use_declarations ';' + { + $$ = &ast.StmtUseList{ast.Node{}, $2, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CONST const_list ';' + { + $$ = &ast.StmtConstList{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +use_type: + T_FUNCTION + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CONST + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +group_use_declaration: + namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' + { + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $4} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6) + + // save comments + yylex.(*Parser).MoveFreeFloating($1[0], name) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) + if $5 != nil { + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Tokens...)...)) + } else { + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' + { + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $5} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.UseType, $1.Tokens) + yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) + if $6 != nil { + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Tokens...)...)) + } else { + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +mixed_group_use_declaration: + namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' + { + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $4} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6) + + // save comments + yylex.(*Parser).MoveFreeFloating($1[0], name) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) + if $5 != nil { + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Tokens...)...)) + } else { + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' + { + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $5} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Use, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) + if $6 != nil { + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Tokens...)...)) + } else { + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +possible_comma: + /* empty */ + { + $$ = nil + } + | ',' + { + $$ = $1 + } +; + +inline_use_declarations: + inline_use_declarations ',' inline_use_declaration + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | inline_use_declaration + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +unprefixed_use_declarations: + unprefixed_use_declarations ',' unprefixed_use_declaration + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | unprefixed_use_declaration + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +use_declarations: + use_declarations ',' use_declaration + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | use_declaration + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +inline_use_declaration: + unprefixed_use_declaration + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | use_type unprefixed_use_declaration + { + $2.(*ast.StmtUse).UseType = $1 + $$ = $2 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +unprefixed_use_declaration: + namespace_name + { + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + + // save comments + yylex.(*Parser).MoveFreeFloating($1[0], name) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | namespace_name T_AS T_STRING + { + name := &ast.NameName{ast.Node{}, $1} + alias := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1[0], name) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +use_declaration: + unprefixed_use_declaration + { + $$ = $1 + + // save coments + yylex.(*Parser).MoveFreeFloating($1.(*ast.StmtUse).Use, $$) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NS_SEPARATOR unprefixed_use_declaration + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +const_list: + const_list ',' const_decl + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | const_decl + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +inner_statement_list: + inner_statement_list inner_statement + { + if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { + prevNode := lastNode($1) + yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) + } + + if $2 != nil { + $$ = append($1, $2) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | /* empty */ + { + $$ = []ast.Vertex{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +inner_statement: + error + { + // error + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | function_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | class_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | trait_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | interface_declaration_statement + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_HALT_COMPILER '(' ')' ';' + { + $$ = &ast.StmtHaltCompiler{ast.Node{}, } + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + +statement: + '{' inner_statement_list '}' + { + $$ = &ast.StmtStmtList{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | if_stmt + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | alt_if_stmt + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_WHILE '(' expr ')' while_statement + { + switch n := $5.(type) { + case *ast.StmtWhile : + n.Cond = $3 + case *ast.StmtAltWhile : + n.Cond = $3 + } + + $$ = $5 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.While, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DO statement T_WHILE '(' expr ')' ';' + { + $$ = &ast.StmtDo{ast.Node{}, $2, $5} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.While, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($7)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement + { + switch n := $9.(type) { + case *ast.StmtFor : + n.Init = $3 + n.Cond = $5 + n.Loop = $7 + case *ast.StmtAltFor : + n.Init = $3 + n.Cond = $5 + n.Loop = $7 + } + + $$ = $9 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_SWITCH '(' expr ')' switch_case_list + { + switch n := $5.(type) { + case *ast.StmtSwitch: + n.Cond = $3 + case *ast.StmtAltSwitch: + n.Cond = $3 + default: + panic("unexpected node type") + } + + $$ = $5 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Switch, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_BREAK optional_expr ';' + { + $$ = &ast.StmtBreak{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CONTINUE optional_expr ';' + { + $$ = &ast.StmtContinue{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_RETURN optional_expr ';' + { + $$ = &ast.StmtReturn{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_GLOBAL global_var_list ';' + { + $$ = &ast.StmtGlobal{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_STATIC static_var_list ';' + { + $$ = &ast.StmtStatic{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ECHO echo_expr_list ';' + { + $$ = &ast.StmtEcho{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_INLINE_HTML + { + $$ = &ast.StmtInlineHtml{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr ';' + { + $$ = &ast.StmtExpression{ast.Node{}, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_UNSET '(' unset_variables possible_comma ')' ';' + { + $$ = &ast.StmtUnset{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) + if $4 != nil { + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Tokens...)...)) + } else { + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) + } + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement + { + switch n := $7.(type) { + case *ast.StmtForeach : + n.Expr = $3 + n.Var = $5 + case *ast.StmtAltForeach : + n.Expr = $3 + n.Var = $5 + } + + $$ = $7 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $6.Tokens) + + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement + { + switch n := $9.(type) { + case *ast.StmtForeach : + n.Expr = $3 + n.Key = $5 + n.Var = $7 + case *ast.StmtAltForeach : + n.Expr = $3 + n.Key = $5 + n.Var = $7 + } + + $$ = $9 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Key, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $8.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DECLARE '(' const_list ')' declare_statement + { + $$ = $5 + $$.(*ast.StmtDeclare).Consts = $3 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ';' + { + $$ = &ast.StmtNop{ast.Node{}, } + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_TRY '{' inner_statement_list '}' catch_list finally_statement + { + if $6 == nil { + $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5) + } else { + $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) + } + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_THROW expr ';' + { + $$ = &ast.StmtThrow{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_GOTO T_STRING ';' + { + label := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtGoto{ast.Node{}, label} + + // save position + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_STRING ':' + { + label := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtLabel{ast.Node{}, label} + + // save position + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + +catch_list: + /* empty */ + { + $$ = []ast.Vertex{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($5.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + catch := &ast.StmtCatch{ast.Node{}, $4, variable, $8} + $$ = append($1, catch) + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($5) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($5) + catch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9) + + // save comments + yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; +catch_name_list: + name + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | catch_name_list '|' name + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +finally_statement: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FINALLY '{' inner_statement_list '}' + { + $$ = &ast.StmtFinally{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +unset_variables: + unset_variable + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | unset_variables ',' unset_variable + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +unset_variable: + variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +function_declaration_statement: + T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' + { + name := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $6, $8, $10} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11) + + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if $2 != nil { + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + } else { + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + } + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.Tokens) + if $8 != nil { + yylex.(*Parser).setFreeFloating($$, token.Params, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) + } + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) + + // normalize + if $8 == nil { + yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +is_reference: + /* empty */ + { + $$ = nil + } + | '&' + { + $$ = $1 + } +; + +is_variadic: + /* empty */ + { + $$ = nil + } + | T_ELLIPSIS + { + $$ = $1 + } +; + +class_declaration_statement: + class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' + { + name := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtClass{ast.Node{}, name, $1, nil, $4, $5, $8} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9) + + // save comments + yylex.(*Parser).MoveFreeFloating($1[0], $$) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' + { + name := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtClass{ast.Node{}, name, nil, nil, $3, $4, $7} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_modifiers: + class_modifier + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | class_modifiers class_modifier + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_modifier: + T_ABSTRACT + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FINAL + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +trait_declaration_statement: + T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' + { + name := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtTrait{ast.Node{}, name, $5} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +interface_declaration_statement: + T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' + { + name := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtInterface{ast.Node{}, name, $3, $6} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +extends_from: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_EXTENDS name + { + $$ = &ast.StmtClassExtends{ast.Node{}, $2}; + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +interface_extends_list: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_EXTENDS name_list + { + $$ = &ast.StmtInterfaceExtends{ast.Node{}, $2}; + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +implements_list: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_IMPLEMENTS name_list + { + $$ = &ast.StmtClassImplements{ast.Node{}, $2}; + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +foreach_variable: + variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '&' variable + { + $$ = &ast.ExprReference{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_LIST '(' array_pair_list ')' + { + $$ = &ast.ExprList{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '[' array_pair_list ']' + { + $$ = &ast.ExprShortList{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save commentsc + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +for_statement: + statement + { + $$ = &ast.StmtFor{ast.Node{}, nil, nil, nil, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ':' inner_statement_list T_ENDFOR ';' + { + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} + + // save position + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +foreach_statement: + statement + { + $$ = &ast.StmtForeach{ast.Node{}, nil, nil, nil, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ':' inner_statement_list T_ENDFOREACH ';' + { + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} + + // save position + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +declare_statement: + statement + { + $$ = &ast.StmtDeclare{ast.Node{}, false, nil, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ':' inner_statement_list T_ENDDECLARE ';' + { + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} + + // save position + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +switch_case_list: + '{' case_list '}' + { + caseList := &ast.StmtCaseList{ast.Node{}, $2} + $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} + + // save position + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '{' ';' case_list '}' + { + caseList := &ast.StmtCaseList{ast.Node{}, $3} + $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} + + // save position + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ':' case_list T_ENDSWITCH ';' + { + caseList := &ast.StmtCaseList{ast.Node{}, $2} + $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} + + // save position + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ':' ';' case_list T_ENDSWITCH ';' + { + + caseList := &ast.StmtCaseList{ast.Node{}, $3} + $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} + + // save position + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +case_list: + /* empty */ + { + $$ = []ast.Vertex{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | case_list T_CASE expr case_separator inner_statement_list + { + _case := &ast.StmtCase{ast.Node{}, $3, $5} + $$ = append($1, _case) + + // save position + _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) + + // save comments + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.Tokens)) + yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | case_list T_DEFAULT case_separator inner_statement_list + { + _default := &ast.StmtDefault{ast.Node{}, $4} + $$ = append($1, _default) + + // save position + _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) + + // save comments + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +case_separator: + ':' + { + $$ = $1 + } + | ';' + { + $$ = $1 + } +; + +while_statement: + statement + { + $$ = &ast.StmtWhile{ast.Node{}, nil, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ':' inner_statement_list T_ENDWHILE ';' + { + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} + + // save position + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +if_stmt_without_else: + T_IF '(' expr ')' statement + { + $$ = &ast.StmtIf{ast.Node{}, $3, $5, nil, nil} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | if_stmt_without_else T_ELSEIF '(' expr ')' statement + { + _elseIf := &ast.StmtElseIf{ast.Node{}, $4, $6} + $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, _elseIf) + + $$ = $1 + + // save position + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6) + + // save comments + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +if_stmt: + if_stmt_without_else %prec T_NOELSE + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | if_stmt_without_else T_ELSE statement + { + _else := &ast.StmtElse{ast.Node{}, $3} + $1.(*ast.StmtIf).Else = _else + + $$ = $1 + + // save position + _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +alt_if_stmt_without_else: + T_IF '(' expr ')' ':' inner_statement_list + { + stmts := &ast.StmtStmtList{ast.Node{}, $6} + $$ = &ast.StmtAltIf{ast.Node{}, $3, stmts, nil, nil} + + // save position + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($6) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list + { + stmts := &ast.StmtStmtList{ast.Node{}, $7} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, $4, stmts} + $1.(*ast.StmtAltIf).ElseIf = append($1.(*ast.StmtAltIf).ElseIf, _elseIf) + + $$ = $1 + + // save position + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($7) + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7) + + // save comments + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $6.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +alt_if_stmt: + alt_if_stmt_without_else T_ENDIF ';' + { + $$ = $1 + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' + { + stmts := &ast.StmtStmtList{ast.Node{}, $4} + _else := &ast.StmtAltElse{ast.Node{}, stmts} + $1.(*ast.StmtAltIf).Else = _else + + $$ = $1 + + // save position + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($4) + _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6) + + // save comments + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Else, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +parameter_list: + non_empty_parameter_list + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +non_empty_parameter_list: + parameter + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | non_empty_parameter_list ',' parameter + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +parameter: + optional_type is_reference is_variadic T_VARIABLE + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, nil} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + if $1 != nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + } else if $2 != nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4) + } else if $3 != nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4) + } else { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + } + + // save comments + if $1 != nil { + yylex.(*Parser).MoveFreeFloating($1, $$) + } + if $2 != nil { + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) + } + if $3 != nil { + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + } + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + + // normalize + if $3 == nil { + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) + } + if $2 == nil { + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) + } + if $1 == nil { + yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | optional_type is_reference is_variadic T_VARIABLE '=' expr + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, $6} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + if $1 != nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6) + } else if $2 != nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6) + } else if $3 != nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6) + } else { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6) + } + + // save comments + if $1 != nil { + yylex.(*Parser).MoveFreeFloating($1, $$) + } + if $2 != nil { + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) + } + if $3 != nil { + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + } + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + + // normalize + if $3 == nil { + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) + } + if $2 == nil { + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) + } + if $1 == nil { + yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +optional_type: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | type_expr + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +type_expr: + type + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '?' type + { + $$ = &ast.Nullable{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +type: + T_ARRAY + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CALLABLE + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | name + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +return_type: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | ':' type_expr + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Colon, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +argument_list: + '(' ')' + { + $$ = &ast.ArgumentList{ast.Node{}, nil} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '(' non_empty_argument_list possible_comma ')' + { + $$ = &ast.ArgumentList{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if $3 != nil { + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, append($3.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($3), $4.Tokens...)...)) + } else { + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $4.Tokens) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +non_empty_argument_list: + argument + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | non_empty_argument_list ',' argument + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +argument: + expr + { + $$ = &ast.Argument{ast.Node{}, false, false, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ELLIPSIS expr + { + $$ = &ast.Argument{ast.Node{}, true, false, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +global_var_list: + global_var_list ',' global_var + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | global_var + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +global_var: + simple_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +static_var_list: + static_var_list ',' static_var + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | static_var + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +static_var: + T_VARIABLE + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.StmtStaticVar{ast.Node{}, variable, nil} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_VARIABLE '=' expr + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.StmtStaticVar{ast.Node{}, variable, $3} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_statement_list: + class_statement_list class_statement + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | /* empty */ + { + $$ = []ast.Vertex{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_statement: + variable_modifiers optional_type property_list ';' + { + $$ = &ast.StmtPropertyList{ast.Node{}, $1, $2, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1[0], $$) + yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | method_modifiers T_CONST class_const_list ';' + { + $$ = &ast.StmtClassConstList{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4) + + // save comments + if len($1) > 0 { + yylex.(*Parser).MoveFreeFloating($1[0], $$) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + } else { + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + } + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_USE name_list trait_adaptations + { + $$ = &ast.StmtTraitUse{ast.Node{}, $2, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body + { + name := &ast.Identifier{ast.Node{}, $4.Value} + $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $7, $9, $10} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + if $1 == nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $10) + } else { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $10) + } + + // save comments + if len($1) > 0 { + yylex.(*Parser).MoveFreeFloating($1[0], $$) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + } else { + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + } + if $3 == nil { + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + } else { + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + } + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.Tokens) + if $9 != nil { + yylex.(*Parser).setFreeFloating($$, token.Params, $9.GetNode().Tokens[token.Colon]); delete($9.GetNode().Tokens, token.Colon) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +name_list: + name + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | name_list ',' name + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +trait_adaptations: + ';' + { + $$ = &ast.StmtNop{ast.Node{}, } + + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '{' '}' + { + $$ = &ast.StmtTraitAdaptationList{ast.Node{}, nil} + + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '{' trait_adaptation_list '}' + { + $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} + + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +trait_adaptation_list: + trait_adaptation + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | trait_adaptation_list trait_adaptation + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +trait_adaptation: + trait_precedence ';' + { + $$ = $1; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | trait_alias ';' + { + $$ = $1; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +trait_precedence: + absolute_trait_method_reference T_INSTEADOF name_list + { + $$ = &ast.StmtTraitUsePrecedence{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +trait_alias: + trait_method_reference T_AS T_STRING + { + alias := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} + + // save position + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | trait_method_reference T_AS reserved_non_modifiers + { + alias := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} + + // save position + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | trait_method_reference T_AS member_modifier identifier + { + alias := &ast.Identifier{ast.Node{}, $4.Value} + $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} + + // save position + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | trait_method_reference T_AS member_modifier + { + $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +trait_method_reference: + identifier + { + name := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | absolute_trait_method_reference + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +absolute_trait_method_reference: + name T_PAAMAYIM_NEKUDOTAYIM identifier + { + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} + + // save position + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +method_body: + ';' /* abstract method */ + { + $$ = &ast.StmtNop{ast.Node{}, } + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '{' inner_statement_list '}' + { + $$ = &ast.StmtStmtList{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +variable_modifiers: + non_empty_member_modifiers + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_VAR + { + modifier := &ast.Identifier{ast.Node{}, $1.Value} + $$ = []ast.Vertex{modifier} + + // save position + modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +method_modifiers: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | non_empty_member_modifiers + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +non_empty_member_modifiers: + member_modifier + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | non_empty_member_modifiers member_modifier + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +member_modifier: + T_PUBLIC + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_PROTECTED + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_PRIVATE + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_STATIC + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ABSTRACT + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FINAL + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +property_list: + property_list ',' property + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | property + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +property: + T_VARIABLE backup_doc_comment + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.StmtProperty{ast.Node{}, variable, nil} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_VARIABLE '=' expr backup_doc_comment + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.StmtProperty{ast.Node{}, variable, $3} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_const_list: + class_const_list ',' class_const_decl + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | class_const_decl + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_const_decl: + identifier '=' expr backup_doc_comment + { + name := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtConstant{ast.Node{}, name, $3} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +const_decl: + T_STRING '=' expr backup_doc_comment + { + name := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtConstant{ast.Node{}, name, $3} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +echo_expr_list: + echo_expr_list ',' echo_expr + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | echo_expr + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +echo_expr: + expr + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +for_exprs: + /* empty */ + { + $$ = nil; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | non_empty_for_exprs + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +non_empty_for_exprs: + non_empty_for_exprs ',' expr + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +anonymous_class: + T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' + { + if $2 != nil { + $$ = &ast.StmtClass{ast.Node{}, nil, nil, $2.(*ast.ArgumentList), $3, $4, $7} + } else { + $$ = &ast.StmtClass{ast.Node{}, nil, nil, nil, $3, $4, $7} + } + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +new_expr: + T_NEW class_name_reference ctor_arguments + { + if $3 != nil { + $$ = &ast.ExprNew{ast.Node{}, $2, $3.(*ast.ArgumentList)} + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + } else { + $$ = &ast.ExprNew{ast.Node{}, $2, nil} + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + } + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NEW anonymous_class + { + $$ = &ast.ExprNew{ast.Node{}, $2, nil} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +expr_without_variable: + T_LIST '(' array_pair_list ')' '=' expr + { + listNode := &ast.ExprList{ast.Node{}, $3} + $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} + + // save position + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '[' array_pair_list ']' '=' expr + { + shortList := &ast.ExprShortList{ast.Node{}, $2} + $$ = &ast.ExprAssign{ast.Node{}, shortList, $5} + + // save position + shortList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable '=' expr + { + $$ = &ast.ExprAssign{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable '=' '&' expr + { + $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CLONE expr + { + $$ = &ast.ExprClone{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_PLUS_EQUAL expr + { + $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_MINUS_EQUAL expr + { + $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_MUL_EQUAL expr + { + $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_POW_EQUAL expr + { + $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_DIV_EQUAL expr + { + $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_CONCAT_EQUAL expr + { + $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_MOD_EQUAL expr + { + $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_AND_EQUAL expr + { + $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_OR_EQUAL expr + { + $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_XOR_EQUAL expr + { + $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_SL_EQUAL expr + { + $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_SR_EQUAL expr + { + $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_COALESCE_EQUAL expr + { + $$ = &ast.ExprAssignCoalesce{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_INC + { + $$ = &ast.ExprPostInc{ast.Node{}, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_INC variable + { + $$ = &ast.ExprPreInc{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable T_DEC + { + $$ = &ast.ExprPostDec{ast.Node{}, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DEC variable + { + $$ = &ast.ExprPreDec{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_BOOLEAN_OR expr + { + $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_BOOLEAN_AND expr + { + $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_LOGICAL_OR expr + { + $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_LOGICAL_AND expr + { + $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_LOGICAL_XOR expr + { + $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '|' expr + { + $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '&' expr + { + $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '^' expr + { + $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '.' expr + { + $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '+' expr + { + $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '-' expr + { + $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '*' expr + { + $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_POW expr + { + $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '/' expr + { + $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '%' expr + { + $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_SL expr + { + $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_SR expr + { + $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '+' expr %prec T_INC + { + $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '-' expr %prec T_INC + { + $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '!' expr + { + $$ = &ast.ExprBooleanNot{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '~' expr + { + $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_IS_IDENTICAL expr + { + $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_IS_NOT_IDENTICAL expr + { + $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_IS_EQUAL expr + { + $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_IS_NOT_EQUAL expr + { + $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '<' expr + { + $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_IS_SMALLER_OR_EQUAL expr + { + $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '>' expr + { + $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_IS_GREATER_OR_EQUAL expr + { + $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_SPACESHIP expr + { + $$ = &ast.ExprBinarySpaceship{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_INSTANCEOF class_name_reference + { + $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '(' expr ')' + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | new_expr + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '?' expr ':' expr + { + $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr '?' ':' expr + { + $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_COALESCE expr + { + $$ = &ast.ExprBinaryCoalesce{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | internal_functions_in_yacc + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_INT_CAST expr + { + $$ = &ast.ExprCastInt{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DOUBLE_CAST expr + { + $$ = &ast.ExprCastDouble{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_STRING_CAST expr + { + $$ = &ast.ExprCastString{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ARRAY_CAST expr + { + $$ = &ast.ExprCastArray{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_OBJECT_CAST expr + { + $$ = &ast.ExprCastObject{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_BOOL_CAST expr + { + $$ = &ast.ExprCastBool{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_UNSET_CAST expr + { + $$ = &ast.ExprCastUnset{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_EXIT exit_expr + { + var e *ast.ExprExit; + if $2 != nil { + e = $2.(*ast.ExprExit) + } else { + e = &ast.ExprExit{ast.Node{}, false, nil} + } + + $$ = e + + if (bytes.EqualFold($1.Value, []byte("die"))) { + e.Die = true + } + + // save position + if $2 == nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + } else { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + } + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '@' expr + { + $$ = &ast.ExprErrorSuppress{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | scalar + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '`' backticks_expr '`' + { + $$ = &ast.ExprShellExec{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_PRINT expr + { + $$ = &ast.ExprPrint{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_YIELD + { + $$ = &ast.ExprYield{ast.Node{}, nil, nil} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_YIELD expr + { + $$ = &ast.ExprYield{ast.Node{}, nil, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_YIELD expr T_DOUBLE_ARROW expr + { + $$ = &ast.ExprYield{ast.Node{}, $2, $4} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_YIELD_FROM expr + { + $$ = &ast.ExprYieldFrom{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | inline_function + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_STATIC inline_function + { + $$ = $2; + + switch n := $$.(type) { + case *ast.ExprClosure : + n.Static = true; + case *ast.ExprArrowFunction : + n.Static = true; + }; + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Static, $$.GetNode().Tokens[token.Start]); delete($$.GetNode().Tokens, token.Start) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens); + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +inline_function: + T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' + { + $$ = &ast.ExprClosure{ast.Node{}, $2 != nil, false, $5, $7, $8, $10} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if $2 == nil { + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + } else { + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + } + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) + if $8 != nil { + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) + } + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) + + // normalize + if $8 == nil { + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) + } + if $7 == nil { + yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.LexicalVarList]); delete($$.GetNode().Tokens, token.LexicalVarList) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr + { + $$ = &ast.ExprArrowFunction{ast.Node{}, $2 != nil, false, $4, $6, $9} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if $2 == nil { + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + } else { + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + }; + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) + if $6 != nil { + yylex.(*Parser).setFreeFloating($$, token.Params, $6.GetNode().Tokens[token.Colon]); delete($6.GetNode().Tokens, token.Colon) + }; + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.Tokens) + + // normalize + if $6 == nil { + yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) + }; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +backup_doc_comment: + /* empty */ + { + $$ = yylex.(*Parser).Lexer.GetPhpDocComment() + yylex.(*Parser).Lexer.SetPhpDocComment("") + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +returns_ref: + /* empty */ + { + $$ = nil + } + | '&' + { + $$ = $1 + } +; + +lexical_vars: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_USE '(' lexical_var_list ')' + { + $$ = &ast.ExprClosureUse{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +lexical_var_list: + lexical_var_list ',' lexical_var + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | lexical_var + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +lexical_var: + T_VARIABLE + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, identifier} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '&' T_VARIABLE + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($2.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.ExprReference{ast.Node{}, variable} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +function_call: + name argument_list + { + $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list + { + $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list + { + $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | callable_expr argument_list + { + $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_name: + T_STATIC + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | name + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +class_name_reference: + class_name + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | new_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +exit_expr: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '(' optional_expr ')' + { + $$ = &ast.ExprExit{ast.Node{}, false, $2}; + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +backticks_expr: + /* empty */ + { + $$ = []ast.Vertex{} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ENCAPSED_AND_WHITESPACE + { + part := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} + $$ = []ast.Vertex{part} + + // save position + part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | encaps_list + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +ctor_arguments: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | argument_list + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +dereferencable_scalar: + T_ARRAY '(' array_pair_list ')' + { + $$ = &ast.ExprArray{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '[' array_pair_list ']' + { + $$ = &ast.ExprShortArray{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CONSTANT_ENCAPSED_STRING + { + $$ = &ast.ScalarString{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +scalar: + T_LNUMBER + { + $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DNUMBER + { + $$ = &ast.ScalarDnumber{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_LINE + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FILE + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DIR + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_TRAIT_C + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_METHOD_C + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_FUNC_C + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NS_C + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CLASS_C + { + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC + { + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} + $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, []ast.Vertex{encapsed}} + + // save position + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_START_HEREDOC T_END_HEREDOC + { + $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, nil} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '"' encaps_list '"' + { + $$ = &ast.ScalarEncapsed{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_START_HEREDOC encaps_list T_END_HEREDOC + { + $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | dereferencable_scalar + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | constant + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +constant: + name + { + $$ = &ast.ExprConstFetch{ast.Node{}, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | class_name T_PAAMAYIM_NEKUDOTAYIM identifier + { + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} + + // save position + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier + { + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} + + // save position + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +expr: + variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr_without_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +optional_expr: + /* empty */ + { + $$ = nil + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +variable_class_name: + dereferencable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +dereferencable: + variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '(' expr ')' + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | dereferencable_scalar + { + $$ = $1; + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +callable_expr: + callable_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '(' expr ')' + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | dereferencable_scalar + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +callable_variable: + simple_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | dereferencable '[' optional_expr ']' + { + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | constant '[' optional_expr ']' + { + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | dereferencable '{' expr '}' + { + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | dereferencable T_OBJECT_OPERATOR property_name argument_list + { + $$ = &ast.ExprMethodCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | function_call + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +variable: + callable_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | static_member + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | dereferencable T_OBJECT_OPERATOR property_name + { + $$ = &ast.ExprPropertyFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +simple_variable: + T_VARIABLE + { + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, name} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '$' '{' expr '}' + { + $$ = &ast.ExprVariable{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '$' simple_variable + { + $$ = &ast.ExprVariable{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +static_member: + class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable + { + $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable + { + $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +new_variable: + simple_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | new_variable '[' optional_expr ']' + { + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | new_variable '{' expr '}' + { + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | new_variable T_OBJECT_OPERATOR property_name + { + $$ = &ast.ExprPropertyFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable + { + $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable + { + $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +member_name: + identifier + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '{' expr '}' + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | simple_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +property_name: + T_STRING + { + $$ = &ast.Identifier{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '{' expr '}' + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | simple_variable + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +array_pair_list: + non_empty_array_pair_list + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +possible_array_pair: + /* empty */ + { + $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | array_pair + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +non_empty_array_pair_list: + non_empty_array_pair_list ',' possible_array_pair + { + if len($1) == 0 { + $1 = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} + } + + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | possible_array_pair + { + if $1.(*ast.ExprArrayItem).Key == nil && $1.(*ast.ExprArrayItem).Val == nil { + $$ = []ast.Vertex{} + } else { + $$ = []ast.Vertex{$1} + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +array_pair: + expr T_DOUBLE_ARROW expr + { + $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr + { + $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, $1} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_DOUBLE_ARROW '&' variable + { + reference := &ast.ExprReference{ast.Node{}, $4} + $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, reference} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '&' variable + { + reference := &ast.ExprReference{ast.Node{}, $2} + $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ELLIPSIS expr + { + $$ = &ast.ExprArrayItem{ast.Node{}, true, nil, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' + { + // TODO: Cannot use list() as standalone expression + listNode := &ast.ExprList{ast.Node{}, $5} + $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, listNode} + + // save position + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $6) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6) + + // save comments + yylex.(*Parser).MoveFreeFloating($1, $$) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $4.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_LIST '(' array_pair_list ')' + { + // TODO: Cannot use list() as standalone expression + listNode := &ast.ExprList{ast.Node{}, $3} + $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} + + // save position + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +encaps_list: + encaps_list encaps_var + { + $$ = append($1, $2) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | encaps_list T_ENCAPSED_AND_WHITESPACE + { + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} + $$ = append($1, encapsed) + + // save position + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + + // save comments + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | encaps_var + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_ENCAPSED_AND_WHITESPACE encaps_var + { + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} + $$ = []ast.Vertex{encapsed, $2} + + // save position + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +encaps_var: + T_VARIABLE + { + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, name} + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_VARIABLE '[' encaps_var_offset ']' + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_VARIABLE T_OBJECT_OPERATOR T_STRING + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + fetch := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DOLLAR_OPEN_CURLY_BRACES expr '}' + { + variable := &ast.ExprVariable{ast.Node{}, $2} + + $$ = variable + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' + { + name := &ast.Identifier{ast.Node{}, $2.Value} + variable := &ast.ExprVariable{ast.Node{}, name} + + $$ = variable + + // save position + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' + { + identifier := &ast.Identifier{ast.Node{}, $2.Value} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Tokens, yylex.(*Parser).GetFreeFloatingToken($5)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($6.Tokens, yylex.(*Parser).GetFreeFloatingToken($6)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_CURLY_OPEN variable '}' + { + $$ = $2; + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +encaps_var_offset: + T_STRING + { + $$ = &ast.ScalarString{ast.Node{}, $1.Value} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_NUM_STRING + { + // TODO: add option to handle 64 bit integer + if _, err := strconv.Atoi(string($1.Value)); err == nil { + $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} + } else { + $$ = &ast.ScalarString{ast.Node{}, $1.Value} + } + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | '-' T_NUM_STRING + { + var lnumber *ast.ScalarLnumber + // TODO: add option to handle 64 bit integer + _, err := strconv.Atoi(string($2.Value)); + isInt := err == nil + + if isInt { + lnumber = &ast.ScalarLnumber{ast.Node{}, $2.Value} + $$ = &ast.ExprUnaryMinus{ast.Node{}, lnumber} + } else { + $2.Value = append([]byte("-"), $2.Value...) + $$ = &ast.ScalarString{ast.Node{}, $2.Value} + } + + // save position + if isInt { + lnumber.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + } + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_VARIABLE + { + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, identifier} + + // save position + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +internal_functions_in_yacc: + T_ISSET '(' isset_variables possible_comma ')' + { + $$ = &ast.ExprIsset{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) + if $4 == nil { + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) + } else { + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Tokens...)...)) + } + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_EMPTY '(' expr ')' + { + $$ = &ast.ExprEmpty{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_INCLUDE expr + { + $$ = &ast.ExprInclude{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_INCLUDE_ONCE expr + { + $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_EVAL '(' expr ')' + { + $$ = &ast.ExprEval{ast.Node{}, $3} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_REQUIRE expr + { + $$ = &ast.ExprRequire{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | T_REQUIRE_ONCE expr + { + $$ = &ast.ExprRequireOnce{ast.Node{}, $2} + + // save position + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + + // save comments + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +isset_variables: + isset_variable + { + $$ = []ast.Vertex{$1} + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + | isset_variables ',' isset_variable + { + $$ = append($1, $3) + + // save comments + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +isset_variable: + expr + { + $$ = $1 + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } +; + +///////////////////////////////////////////////////////////////////////// + +%% diff --git a/php7/php7_bench_test.go b/internal/php7/php7_bench_test.go similarity index 99% rename from php7/php7_bench_test.go rename to internal/php7/php7_bench_test.go index c7acc29..a5a9aee 100644 --- a/php7/php7_bench_test.go +++ b/internal/php7/php7_bench_test.go @@ -3,7 +3,7 @@ package php7_test import ( "testing" - "github.com/z7zmey/php-parser/php7" + "github.com/z7zmey/php-parser/internal/php7" ) func BenchmarkPhp7(b *testing.B) { diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go new file mode 100644 index 0000000..5e0268a --- /dev/null +++ b/internal/php7/php7_test.go @@ -0,0 +1,20023 @@ +package php7_test + +import ( + "testing" + + "gotest.tools/assert" + + "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/position" +) + +func TestPhp7(t *testing.T) { + src := `bar($a, ...$b); + foo::bar($a, ...$b); + $foo::bar($a, ...$b); + new foo($a, ...$b); + /** anonymous class */ + new class ($a, ...$b) {}; + new class {}; + new $foo; + new $foo[1]; + new $foo{$bar}; + new $foo->bar; + new $foo::$bar; + new static::$bar; + + function foo(?bar $bar=null, baz &...$baz) {} + class foo {public function foo(?bar $bar=null, baz &...$baz) {}} + function(?bar $bar=null, baz &...$baz) {}; + static function(?bar $bar=null, baz &...$baz) {}; + + 1234567890123456789; + 12345678901234567890; + 0.; + 0b0111111111111111111111111111111111111111111111111111111111111111; + 0b1111111111111111111111111111111111111111111111111111111111111111; + 0x007111111111111111; + 0x8111111111111111; + __CLASS__; + __DIR__; + __FILE__; + __FUNCTION__; + __LINE__; + __NAMESPACE__; + __METHOD__; + __TRAIT__; + + "test $var"; + "test $var[1]"; + "test $var[-1]"; + "test $var[1234567890123456789012345678901234567890]"; + "test $var[-1234567890123456789012345678901234567890]"; + "test $var[bar]"; + "test $var[$bar]"; + "$foo $bar"; + "test $foo->bar()"; + "test ${foo}"; + "test ${foo[0]}"; + "test ${$foo}"; + "test {$foo->bar()}"; + + if ($a) : + endif; + if ($a) : + elseif ($b): + endif; + if ($a) : + else: + endif; + if ($a) : + elseif ($b): + elseif ($c): + else: + endif; + + while (1) { break; } + while (1) { break 2; } + while (1) : break(3); endwhile; + class foo{ public const FOO = 1, BAR = 2; } + class foo{ const FOO = 1, BAR = 2; } + class foo{ function bar() {} } + class foo{ public static function &bar() {} } + class foo{ public static function &bar(): void {} } + abstract class foo{ } + final class foo extends bar { } + final class foo implements bar { } + final class foo implements bar, baz { } + new class() extends foo implements bar, baz { }; + + const FOO = 1, BAR = 2; + while (1) { continue; } + while (1) { continue 2; } + while (1) { continue(3); } + declare(ticks=1); + declare(ticks=1) {} + declare(ticks=1): enddeclare; + do {} while(1); + echo $a, 1; + echo($a); + for($i = 0; $i < 10; $i++, $i++) {} + for(; $i < 10; $i++, $i++) : endfor; + foreach ($a as $v) {} + foreach ($a as $v) : endforeach; + foreach ($a as $k => $v) {} + foreach ($a as $k => &$v) {} + foreach ($a as $k => list($v)) {} + foreach ($a as $k => [$v]) {} + function foo() {} + function foo() {return;} + function &foo() {return 1;} + function &foo(): void {} + global $a, $b; + a: + goto a; + if ($a) {} + if ($a) {} elseif ($b) {} + if ($a) {} else {} + if ($a) {} elseif ($b) {} elseif ($c) {} else {} + if ($a) {} elseif ($b) {} else if ($c) {} else {} + ?>
1, &$b,); + ~$a; + !$a; + + Foo::Bar; + $foo::Bar; + clone($a); + clone $a; + function(){}; + function($a, $b) use ($c, &$d) {}; + function(): void {}; + foo; + namespace\foo; + \foo; + + empty($a); + @$a; + eval($a); + exit; + exit($a); + die; + die($a); + foo(); + namespace\foo(); + \foo(); + $foo(); + + $a--; + $a++; + --$a; + ++$a; + + include $a; + include_once $a; + require $a; + require_once $a; + + $a instanceof Foo; + $a instanceof namespace\Foo; + $a instanceof \Foo; + + isset($a, $b); + list($a) = $b; + list($a[]) = $b; + list(list($a)) = $b; + + $a->foo(); + new Foo(); + new namespace\Foo(); + new \Foo(); + new class ($a, ...$b) {}; + print($a); + $a->foo; + ` + "`cmd $a`;" + ` + ` + "`cmd`;" + ` + ` + "``;" + ` + []; + [1]; + [1=>1, &$b,]; + + [$a] = $b; + [$a[]] = $b; + [list($a)] = $b; + Foo::bar(); + namespace\Foo::bar(); + \Foo::bar(); + Foo::$bar; + $foo::$bar; + namespace\Foo::$bar; + \Foo::$bar; + $a ? $b : $c; + $a ? : $c; + $a ? $b ? $c : $d : $e; + $a ? $b : $c ? $d : $e; + -$a; + +$a; + $$a; + yield; + yield $a; + yield $a => $b; + yield from $a; + + (array)$a; + (boolean)$a; + (bool)$a; + (double)$a; + (float)$a; + (integer)$a; + (int)$a; + (object)$a; + (string)$a; + (unset)$a; + + $a & $b; + $a | $b; + $a ^ $b; + $a && $b; + $a || $b; + $a ?? $b; + $a . $b; + $a / $b; + $a == $b; + $a >= $b; + $a > $b; + $a === $b; + $a and $b; + $a or $b; + $a xor $b; + $a - $b; + $a % $b; + $a * $b; + $a != $b; + $a !== $b; + $a + $b; + $a ** $b; + $a << $b; + $a >> $b; + $a <= $b; + $a < $b; + $a <=> $b; + + $a =& $b; + $a = $b; + $a &= $b; + $a |= $b; + $a ^= $b; + $a .= $b; + $a /= $b; + $a -= $b; + $a %= $b; + $a *= $b; + $a += $b; + $a **= $b; + $a <<= $b; + $a >>= $b; + + class foo {public function class() {} } + \foo\bar(); + + function foo(&$a, ...$b) { + + function bar() {} + class Baz {} + trait Quux{} + interface Quuux {} + } + + function foo(&$a = 1, ...$b = 1, $c = 1) {} + function foo(array $a, callable $b) {} + abstract final class foo { abstract protected static function bar(); final private function baz() {} } + + (new Foo)->bar; + (new Foo)(); + [$foo][0](); + foo[1](); + "foo"(); + [1]{$foo}(); + ${foo()}; + + Foo::$bar(); + Foo::{$bar[0]}(); + + $foo->$bar; + $foo->{$bar[0]}; + + [1=>&$a, 2=>list($b)]; + + __halt_compiler(); + + parsing process must be terminated + ` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 348, + StartPos: 5, + EndPos: 6319, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 20, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 19, + }, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 8, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 8, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 8, + EndPos: 19, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 11, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 13, + EndPos: 18, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 16, + EndPos: 18, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 16, + EndPos: 18, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 23, + EndPos: 39, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 23, + EndPos: 38, + }, + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 23, + EndPos: 27, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 23, + EndPos: 27, + }, + }, + Value: []byte("foo"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 27, + EndPos: 38, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 30, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 30, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 30, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 32, + EndPos: 37, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 35, + EndPos: 37, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 35, + EndPos: 37, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 42, + EndPos: 63, + }, + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 42, + EndPos: 62, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 42, + EndPos: 46, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 42, + EndPos: 46, + }, + }, + Value: []byte("foo"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 48, + EndPos: 51, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 51, + EndPos: 62, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 54, + }, + }, + IsReference: false, + Variadic: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 54, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 54, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 56, + EndPos: 61, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 86, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 85, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 69, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 69, + }, + }, + Value: []byte("foo"), + }, + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 71, + EndPos: 74, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 74, + EndPos: 85, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 77, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 77, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 77, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 79, + EndPos: 84, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 89, + EndPos: 110, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 89, + EndPos: 109, + }, + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 89, + EndPos: 93, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 89, + EndPos: 93, + }, + }, + Value: []byte("foo"), + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 95, + EndPos: 98, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 98, + EndPos: 109, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 101, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 101, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 101, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 103, + EndPos: 108, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 113, + EndPos: 132, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 113, + EndPos: 131, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 120, + EndPos: 131, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 125, + EndPos: 130, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 128, + EndPos: 130, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 128, + EndPos: 130, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 160, + EndPos: 185, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 160, + EndPos: 184, + }, + }, + Class: &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 164, + EndPos: 184, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 170, + EndPos: 181, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 173, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 173, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 173, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 175, + EndPos: 180, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 178, + EndPos: 180, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 178, + EndPos: 180, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 188, + EndPos: 201, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 188, + EndPos: 200, + }, + }, + Class: &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 192, + EndPos: 200, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 204, + EndPos: 213, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 204, + EndPos: 212, + }, + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 208, + EndPos: 212, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 208, + EndPos: 212, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 216, + EndPos: 228, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 216, + EndPos: 227, + }, + }, + Class: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 220, + EndPos: 227, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 220, + EndPos: 224, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 220, + EndPos: 224, + }, + }, + Value: []byte("foo"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 225, + EndPos: 226, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 231, + EndPos: 246, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 231, + EndPos: 245, + }, + }, + Class: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 235, + EndPos: 245, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 235, + EndPos: 239, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 235, + EndPos: 239, + }, + }, + Value: []byte("foo"), + }, + }, + Dim: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 240, + EndPos: 244, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 13, + EndLine: 13, + StartPos: 240, + EndPos: 244, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 249, + EndPos: 263, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 249, + EndPos: 262, + }, + }, + Class: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 253, + EndPos: 262, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 253, + EndPos: 257, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 253, + EndPos: 257, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 259, + EndPos: 262, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 266, + EndPos: 281, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 266, + EndPos: 280, + }, + }, + Class: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 270, + EndPos: 280, + }, + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 270, + EndPos: 274, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 270, + EndPos: 274, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 276, + EndPos: 280, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 276, + EndPos: 280, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 284, + EndPos: 301, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 284, + EndPos: 300, + }, + }, + Class: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 288, + EndPos: 300, + }, + }, + Class: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 288, + EndPos: 294, + }, + }, + Value: []byte("static"), + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 296, + EndPos: 300, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 296, + EndPos: 300, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 305, + EndPos: 350, + }, + }, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 314, + EndPos: 317, + }, + }, + Value: []byte("foo"), + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 318, + EndPos: 332, + }, + }, + ByRef: false, + Variadic: false, + Type: &ast.Nullable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 318, + EndPos: 322, + }, + }, + Expr: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 319, + EndPos: 322, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 319, + EndPos: 322, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 323, + EndPos: 327, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 323, + EndPos: 327, + }, + }, + Value: []byte("bar"), + }, + }, + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 328, + EndPos: 332, + }, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 328, + EndPos: 332, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 328, + EndPos: 332, + }, + }, + Value: []byte("null"), + }, + }, + }, + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 334, + EndPos: 346, + }, + }, + Variadic: true, + ByRef: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 334, + EndPos: 337, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 334, + EndPos: 337, + }, + }, + Value: []byte("baz"), + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 342, + EndPos: 346, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 342, + EndPos: 346, + }, + }, + Value: []byte("baz"), + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 353, + EndPos: 417, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 359, + EndPos: 362, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 364, + EndPos: 416, + }, + }, + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 380, + EndPos: 383, + }, + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 364, + EndPos: 370, + }, + }, + Value: []byte("public"), + }, + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 384, + EndPos: 398, + }, + }, + ByRef: false, + Variadic: false, + Type: &ast.Nullable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 384, + EndPos: 388, + }, + }, + Expr: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 385, + EndPos: 388, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 385, + EndPos: 388, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 389, + EndPos: 393, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 389, + EndPos: 393, + }, + }, + Value: []byte("bar"), + }, + }, + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 394, + EndPos: 398, + }, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 394, + EndPos: 398, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 394, + EndPos: 398, + }, + }, + Value: []byte("null"), + }, + }, + }, + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 400, + EndPos: 412, + }, + }, + ByRef: true, + Variadic: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 400, + EndPos: 403, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 400, + EndPos: 403, + }, + }, + Value: []byte("baz"), + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 408, + EndPos: 412, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 408, + EndPos: 412, + }, + }, + Value: []byte("baz"), + }, + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 414, + EndPos: 416, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 420, + EndPos: 462, + }, + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 420, + EndPos: 461, + }, + }, + ReturnsRef: false, + Static: false, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 429, + EndPos: 443, + }, + }, + ByRef: false, + Variadic: false, + Type: &ast.Nullable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 429, + EndPos: 433, + }, + }, + Expr: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 430, + EndPos: 433, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 430, + EndPos: 433, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 434, + EndPos: 438, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 434, + EndPos: 438, + }, + }, + Value: []byte("bar"), + }, + }, + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 439, + EndPos: 443, + }, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 439, + EndPos: 443, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 439, + EndPos: 443, + }, + }, + Value: []byte("null"), + }, + }, + }, + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 445, + EndPos: 457, + }, + }, + ByRef: true, + Variadic: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 445, + EndPos: 448, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 445, + EndPos: 448, + }, + }, + Value: []byte("baz"), + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 453, + EndPos: 457, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 453, + EndPos: 457, + }, + }, + Value: []byte("baz"), + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 465, + EndPos: 514, + }, + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 465, + EndPos: 513, + }, + }, + ReturnsRef: false, + Static: true, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 481, + EndPos: 495, + }, + }, + ByRef: false, + Variadic: false, + Type: &ast.Nullable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 481, + EndPos: 485, + }, + }, + Expr: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 482, + EndPos: 485, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 482, + EndPos: 485, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 486, + EndPos: 490, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 486, + EndPos: 490, + }, + }, + Value: []byte("bar"), + }, + }, + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 491, + EndPos: 495, + }, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 491, + EndPos: 495, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 491, + EndPos: 495, + }, + }, + Value: []byte("null"), + }, + }, + }, + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 497, + EndPos: 509, + }, + }, + ByRef: true, + Variadic: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 497, + EndPos: 500, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 497, + EndPos: 500, + }, + }, + Value: []byte("baz"), + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 505, + EndPos: 509, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 505, + EndPos: 509, + }, + }, + Value: []byte("baz"), + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 23, + EndLine: 23, + StartPos: 518, + EndPos: 538, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 23, + EndLine: 23, + StartPos: 518, + EndPos: 537, + }, + }, + Value: []byte("1234567890123456789"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 541, + EndPos: 562, + }, + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 541, + EndPos: 561, + }, + }, + Value: []byte("12345678901234567890"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 565, + EndPos: 568, + }, + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 565, + EndPos: 567, + }, + }, + Value: []byte("0."), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 26, + EndLine: 26, + StartPos: 571, + EndPos: 638, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 26, + EndLine: 26, + StartPos: 571, + EndPos: 637, + }, + }, + Value: []byte("0b0111111111111111111111111111111111111111111111111111111111111111"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 27, + EndLine: 27, + StartPos: 641, + EndPos: 708, + }, + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 27, + EndLine: 27, + StartPos: 641, + EndPos: 707, + }, + }, + Value: []byte("0b1111111111111111111111111111111111111111111111111111111111111111"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 711, + EndPos: 732, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 711, + EndPos: 731, + }, + }, + Value: []byte("0x007111111111111111"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 29, + EndLine: 29, + StartPos: 735, + EndPos: 754, + }, + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 29, + EndLine: 29, + StartPos: 735, + EndPos: 753, + }, + }, + Value: []byte("0x8111111111111111"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 757, + EndPos: 767, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 757, + EndPos: 766, + }, + }, + Value: []byte("__CLASS__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 770, + EndPos: 778, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 770, + EndPos: 777, + }, + }, + Value: []byte("__DIR__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 781, + EndPos: 790, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 781, + EndPos: 789, + }, + }, + Value: []byte("__FILE__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 793, + EndPos: 806, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 793, + EndPos: 805, + }, + }, + Value: []byte("__FUNCTION__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 809, + EndPos: 818, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 809, + EndPos: 817, + }, + }, + Value: []byte("__LINE__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 821, + EndPos: 835, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 821, + EndPos: 834, + }, + }, + Value: []byte("__NAMESPACE__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 838, + EndPos: 849, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 838, + EndPos: 848, + }, + }, + Value: []byte("__METHOD__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 852, + EndPos: 862, + }, + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 852, + EndPos: 861, + }, + }, + Value: []byte("__TRAIT__"), + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 866, + EndPos: 878, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 866, + EndPos: 877, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 867, + EndPos: 872, + }, + }, + Value: []byte("test "), + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 872, + EndPos: 876, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 872, + EndPos: 876, + }, + }, + Value: []byte("var"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 881, + EndPos: 896, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 881, + EndPos: 895, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 882, + EndPos: 887, + }, + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 887, + EndPos: 894, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 887, + EndPos: 891, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 887, + EndPos: 891, + }, + }, + Value: []byte("var"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 40, + EndLine: 40, + StartPos: 892, + EndPos: 893, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 899, + EndPos: 915, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 899, + EndPos: 914, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 900, + EndPos: 905, + }, + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 905, + EndPos: 913, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 905, + EndPos: 909, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 905, + EndPos: 909, + }, + }, + Value: []byte("var"), + }, + }, + Dim: &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 910, + EndPos: 912, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 910, + EndPos: 912, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 918, + EndPos: 972, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 918, + EndPos: 971, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 919, + EndPos: 924, + }, + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 924, + EndPos: 970, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 924, + EndPos: 928, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 924, + EndPos: 928, + }, + }, + Value: []byte("var"), + }, + }, + Dim: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 42, + EndLine: 42, + StartPos: 929, + EndPos: 969, + }, + }, + Value: []byte("1234567890123456789012345678901234567890"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 975, + EndPos: 1030, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 975, + EndPos: 1029, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 976, + EndPos: 981, + }, + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 981, + EndPos: 1028, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 981, + EndPos: 985, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 981, + EndPos: 985, + }, + }, + Value: []byte("var"), + }, + }, + Dim: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 986, + EndPos: 1027, + }, + }, + Value: []byte("-1234567890123456789012345678901234567890"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1033, + EndPos: 1050, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1033, + EndPos: 1049, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1034, + EndPos: 1039, + }, + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1039, + EndPos: 1048, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1039, + EndPos: 1043, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1039, + EndPos: 1043, + }, + }, + Value: []byte("var"), + }, + }, + Dim: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 1044, + EndPos: 1047, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1053, + EndPos: 1071, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1053, + EndPos: 1070, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1054, + EndPos: 1059, + }, + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1059, + EndPos: 1069, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1059, + EndPos: 1063, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1059, + EndPos: 1063, + }, + }, + Value: []byte("var"), + }, + }, + Dim: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1064, + EndPos: 1068, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 45, + EndLine: 45, + StartPos: 1064, + EndPos: 1068, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1074, + EndPos: 1086, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1074, + EndPos: 1085, + }, + }, + Parts: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1075, + EndPos: 1079, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1075, + EndPos: 1079, + }, + }, + Value: []byte("foo"), + }, + }, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1079, + EndPos: 1080, + }, + }, + Value: []byte(" "), + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1080, + EndPos: 1084, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 1080, + EndPos: 1084, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1089, + EndPos: 1108, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1089, + EndPos: 1107, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1090, + EndPos: 1095, + }, + }, + Value: []byte("test "), + }, + &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1095, + EndPos: 1104, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1095, + EndPos: 1099, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1095, + EndPos: 1099, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1101, + EndPos: 1104, + }, + }, + Value: []byte("bar"), + }, + }, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: 47, + StartPos: 1104, + EndPos: 1106, + }, + }, + Value: []byte("()"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1111, + EndPos: 1125, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1111, + EndPos: 1124, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1112, + EndPos: 1117, + }, + }, + Value: []byte("test "), + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1117, + EndPos: 1123, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 48, + EndLine: 48, + StartPos: 1119, + EndPos: 1122, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1128, + EndPos: 1145, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1128, + EndPos: 1144, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1129, + EndPos: 1134, + }, + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1134, + EndPos: 1143, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1136, + EndPos: 1139, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1136, + EndPos: 1139, + }, + }, + Value: []byte("foo"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1140, + EndPos: 1141, + }, + }, + Value: []byte("0"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1148, + EndPos: 1163, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1148, + EndPos: 1162, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1149, + EndPos: 1154, + }, + }, + Value: []byte("test "), + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1154, + EndPos: 1161, + }, + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1156, + EndPos: 1160, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1156, + EndPos: 1160, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1166, + EndPos: 1187, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1166, + EndPos: 1186, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1167, + EndPos: 1172, + }, + }, + Value: []byte("test "), + }, + &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1173, + EndPos: 1184, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1173, + EndPos: 1177, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1173, + EndPos: 1177, + }, + }, + Value: []byte("foo"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1179, + EndPos: 1182, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1182, + EndPos: 1184, + }, + }, + }, + }, + }, + }, + }, + &ast.StmtAltIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 53, + EndLine: 54, + StartPos: 1191, + EndPos: 1209, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 53, + EndLine: 53, + StartPos: 1195, + EndPos: 1197, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 53, + EndLine: 53, + StartPos: 1195, + EndPos: 1197, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtAltIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 55, + EndLine: 57, + StartPos: 1212, + EndPos: 1245, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1216, + EndPos: 1218, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1216, + EndPos: 1218, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtAltElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 56, + EndLine: -1, + StartPos: 1224, + EndPos: -1, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1232, + EndPos: 1234, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1232, + EndPos: 1234, + }, + }, + Value: []byte("b"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtAltIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 60, + StartPos: 1248, + EndPos: 1274, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1252, + EndPos: 1254, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1252, + EndPos: 1254, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + Else: &ast.StmtAltElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 59, + EndLine: -1, + StartPos: 1260, + EndPos: -1, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtAltIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 65, + StartPos: 1277, + EndPos: 1333, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1281, + EndPos: 1283, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1281, + EndPos: 1283, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtAltElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 62, + EndLine: -1, + StartPos: 1289, + EndPos: -1, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1297, + EndPos: 1299, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1297, + EndPos: 1299, + }, + }, + Value: []byte("b"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtAltElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: -1, + StartPos: 1304, + EndPos: -1, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1312, + EndPos: 1314, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1312, + EndPos: 1314, + }, + }, + Value: []byte("c"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + Else: &ast.StmtAltElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 64, + EndLine: -1, + StartPos: 1319, + EndPos: -1, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtWhile{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1337, + EndPos: 1357, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1344, + EndPos: 1345, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1347, + EndPos: 1357, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1349, + EndPos: 1355, + }, + }, + }, + }, + }, + }, + &ast.StmtWhile{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1360, + EndPos: 1382, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1367, + EndPos: 1368, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1370, + EndPos: 1382, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1372, + EndPos: 1380, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1378, + EndPos: 1379, + }, + }, + Value: []byte("2"), + }, + }, + }, + }, + }, + &ast.StmtAltWhile{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1385, + EndPos: 1416, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1392, + EndPos: 1393, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1397, + EndPos: 1406, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1397, + EndPos: 1406, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1403, + EndPos: 1404, + }, + }, + Value: []byte("3"), + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1419, + EndPos: 1462, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1425, + EndPos: 1428, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassConstList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1430, + EndPos: 1460, + }, + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1430, + EndPos: 1436, + }, + }, + Value: []byte("public"), + }, + }, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1443, + EndPos: 1450, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1443, + EndPos: 1446, + }, + }, + Value: []byte("FOO"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1449, + EndPos: 1450, + }, + }, + Value: []byte("1"), + }, + }, + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1452, + EndPos: 1459, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1452, + EndPos: 1455, + }, + }, + Value: []byte("BAR"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1458, + EndPos: 1459, + }, + }, + Value: []byte("2"), + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1465, + EndPos: 1501, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1471, + EndPos: 1474, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassConstList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1476, + EndPos: 1499, + }, + }, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1482, + EndPos: 1489, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1482, + EndPos: 1485, + }, + }, + Value: []byte("FOO"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1488, + EndPos: 1489, + }, + }, + Value: []byte("1"), + }, + }, + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1491, + EndPos: 1498, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1491, + EndPos: 1494, + }, + }, + Value: []byte("BAR"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1497, + EndPos: 1498, + }, + }, + Value: []byte("2"), + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1504, + EndPos: 1534, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1510, + EndPos: 1513, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1515, + EndPos: 1532, + }, + }, + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1524, + EndPos: 1527, + }, + }, + Value: []byte("bar"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1530, + EndPos: 1532, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1537, + EndPos: 1582, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1543, + EndPos: 1546, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1548, + EndPos: 1580, + }, + }, + ReturnsRef: true, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1572, + EndPos: 1575, + }, + }, + Value: []byte("bar"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1548, + EndPos: 1554, + }, + }, + Value: []byte("public"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1555, + EndPos: 1561, + }, + }, + Value: []byte("static"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1578, + EndPos: 1580, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1585, + EndPos: 1636, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1591, + EndPos: 1594, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1596, + EndPos: 1634, + }, + }, + ReturnsRef: true, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1620, + EndPos: 1623, + }, + }, + Value: []byte("bar"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1596, + EndPos: 1602, + }, + }, + Value: []byte("public"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1603, + EndPos: 1609, + }, + }, + Value: []byte("static"), + }, + }, + ReturnType: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1627, + EndPos: 1631, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1627, + EndPos: 1631, + }, + }, + Value: []byte("void"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1632, + EndPos: 1634, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1639, + EndPos: 1660, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1654, + EndPos: 1657, + }, + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1639, + EndPos: 1647, + }, + }, + Value: []byte("abstract"), + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1663, + EndPos: 1694, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1675, + EndPos: 1678, + }, + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1663, + EndPos: 1668, + }, + }, + Value: []byte("final"), + }, + }, + Extends: &ast.StmtClassExtends{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1679, + EndPos: 1690, + }, + }, + ClassName: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1687, + EndPos: 1690, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1687, + EndPos: 1690, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1697, + EndPos: 1731, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1709, + EndPos: 1712, + }, + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1697, + EndPos: 1702, + }, + }, + Value: []byte("final"), + }, + }, + Implements: &ast.StmtClassImplements{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1713, + EndPos: 1727, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1724, + EndPos: 1727, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1724, + EndPos: 1727, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1734, + EndPos: 1773, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1746, + EndPos: 1749, + }, + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1734, + EndPos: 1739, + }, + }, + Value: []byte("final"), + }, + }, + Implements: &ast.StmtClassImplements{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1750, + EndPos: 1769, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1761, + EndPos: 1764, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1761, + EndPos: 1764, + }, + }, + Value: []byte("bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1766, + EndPos: 1769, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1766, + EndPos: 1769, + }, + }, + Value: []byte("baz"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1776, + EndPos: 1824, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1776, + EndPos: 1823, + }, + }, + Class: &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1780, + EndPos: 1823, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1785, + EndPos: 1787, + }, + }, + }, + Extends: &ast.StmtClassExtends{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1788, + EndPos: 1799, + }, + }, + ClassName: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1796, + EndPos: 1799, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1796, + EndPos: 1799, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + Implements: &ast.StmtClassImplements{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1800, + EndPos: 1819, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1811, + EndPos: 1814, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1811, + EndPos: 1814, + }, + }, + Value: []byte("bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1816, + EndPos: 1819, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1816, + EndPos: 1819, + }, + }, + Value: []byte("baz"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtConstList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1828, + EndPos: 1851, + }, + }, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1834, + EndPos: 1841, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1834, + EndPos: 1837, + }, + }, + Value: []byte("FOO"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1840, + EndPos: 1841, + }, + }, + Value: []byte("1"), + }, + }, + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1843, + EndPos: 1850, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1843, + EndPos: 1846, + }, + }, + Value: []byte("BAR"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1849, + EndPos: 1850, + }, + }, + Value: []byte("2"), + }, + }, + }, + }, + &ast.StmtWhile{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1854, + EndPos: 1877, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1861, + EndPos: 1862, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1864, + EndPos: 1877, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtContinue{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1866, + EndPos: 1875, + }, + }, + }, + }, + }, + }, + &ast.StmtWhile{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1880, + EndPos: 1905, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1887, + EndPos: 1888, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1890, + EndPos: 1905, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtContinue{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1892, + EndPos: 1903, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1901, + EndPos: 1902, + }, + }, + Value: []byte("2"), + }, + }, + }, + }, + }, + &ast.StmtWhile{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1908, + EndPos: 1934, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1915, + EndPos: 1916, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1918, + EndPos: 1934, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtContinue{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1920, + EndPos: 1932, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1929, + EndPos: 1930, + }, + }, + Value: []byte("3"), + }, + }, + }, + }, + }, + &ast.StmtDeclare{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1937, + EndPos: 1954, + }, + }, + Alt: false, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1945, + EndPos: 1952, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1945, + EndPos: 1950, + }, + }, + Value: []byte("ticks"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1951, + EndPos: 1952, + }, + }, + Value: []byte("1"), + }, + }, + }, + Stmt: &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 1953, + EndPos: 1954, + }, + }, + }, + }, + &ast.StmtDeclare{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1957, + EndPos: 1976, + }, + }, + Alt: false, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1965, + EndPos: 1972, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1965, + EndPos: 1970, + }, + }, + Value: []byte("ticks"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1971, + EndPos: 1972, + }, + }, + Value: []byte("1"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 1974, + EndPos: 1976, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtDeclare{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1979, + EndPos: 2008, + }, + }, + Alt: true, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1987, + EndPos: 1994, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1987, + EndPos: 1992, + }, + }, + Value: []byte("ticks"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 87, + EndLine: 87, + StartPos: 1993, + EndPos: 1994, + }, + }, + Value: []byte("1"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtDo{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 88, + EndLine: 88, + StartPos: 2011, + EndPos: 2026, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 88, + EndLine: 88, + StartPos: 2014, + EndPos: 2016, + }, + }, + Stmts: []ast.Vertex{}, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 88, + EndLine: 88, + StartPos: 2023, + EndPos: 2024, + }, + }, + Value: []byte("1"), + }, + }, + &ast.StmtEcho{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2029, + EndPos: 2040, + }, + }, + Exprs: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2034, + EndPos: 2036, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2034, + EndPos: 2036, + }, + }, + Value: []byte("a"), + }, + }, + &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2038, + EndPos: 2039, + }, + }, + Value: []byte("1"), + }, + }, + }, + &ast.StmtEcho{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2043, + EndPos: 2052, + }, + }, + Exprs: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2048, + EndPos: 2050, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2048, + EndPos: 2050, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtFor{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2055, + EndPos: 2090, + }, + }, + Init: []ast.Vertex{ + &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2059, + EndPos: 2065, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2059, + EndPos: 2061, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2059, + EndPos: 2061, + }, + }, + Value: []byte("i"), + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2064, + EndPos: 2065, + }, + }, + Value: []byte("0"), + }, + }, + }, + Cond: []ast.Vertex{ + &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2067, + EndPos: 2074, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2067, + EndPos: 2069, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2067, + EndPos: 2069, + }, + }, + Value: []byte("i"), + }, + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2072, + EndPos: 2074, + }, + }, + Value: []byte("10"), + }, + }, + }, + Loop: []ast.Vertex{ + &ast.ExprPostInc{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2076, + EndPos: 2080, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2076, + EndPos: 2078, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2076, + EndPos: 2078, + }, + }, + Value: []byte("i"), + }, + }, + }, + &ast.ExprPostInc{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2082, + EndPos: 2086, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2082, + EndPos: 2084, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2082, + EndPos: 2084, + }, + }, + Value: []byte("i"), + }, + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2088, + EndPos: 2090, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtAltFor{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2093, + EndPos: 2129, + }, + }, + Cond: []ast.Vertex{ + &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2099, + EndPos: 2106, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2099, + EndPos: 2101, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2099, + EndPos: 2101, + }, + }, + Value: []byte("i"), + }, + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2104, + EndPos: 2106, + }, + }, + Value: []byte("10"), + }, + }, + }, + Loop: []ast.Vertex{ + &ast.ExprPostInc{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2108, + EndPos: 2112, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2108, + EndPos: 2110, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2108, + EndPos: 2110, + }, + }, + Value: []byte("i"), + }, + }, + }, + &ast.ExprPostInc{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2114, + EndPos: 2118, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2114, + EndPos: 2116, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 92, + EndLine: 92, + StartPos: 2114, + EndPos: 2116, + }, + }, + Value: []byte("i"), + }, + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2132, + EndPos: 2153, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2141, + EndPos: 2143, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2141, + EndPos: 2143, + }, + }, + Value: []byte("a"), + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2147, + EndPos: 2149, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2147, + EndPos: 2149, + }, + }, + Value: []byte("v"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 93, + EndLine: 93, + StartPos: 2151, + EndPos: 2153, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtAltForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2156, + EndPos: 2188, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2165, + EndPos: 2167, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2165, + EndPos: 2167, + }, + }, + Value: []byte("a"), + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2171, + EndPos: 2173, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2171, + EndPos: 2173, + }, + }, + Value: []byte("v"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2191, + EndPos: 2218, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2200, + EndPos: 2202, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2200, + EndPos: 2202, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2206, + EndPos: 2208, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2206, + EndPos: 2208, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2212, + EndPos: 2214, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2212, + EndPos: 2214, + }, + }, + Value: []byte("v"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2216, + EndPos: 2218, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2221, + EndPos: 2249, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2230, + EndPos: 2232, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2230, + EndPos: 2232, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2236, + EndPos: 2238, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2236, + EndPos: 2238, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2242, + EndPos: 2245, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2243, + EndPos: 2245, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2243, + EndPos: 2245, + }, + }, + Value: []byte("v"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 96, + EndLine: 96, + StartPos: 2247, + EndPos: 2249, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2252, + EndPos: 2285, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2261, + EndPos: 2263, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2261, + EndPos: 2263, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2267, + EndPos: 2269, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2267, + EndPos: 2269, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2273, + EndPos: 2281, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2278, + EndPos: 2280, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2278, + EndPos: 2280, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2278, + EndPos: 2280, + }, + }, + Value: []byte("v"), + }, + }, + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2283, + EndPos: 2285, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2288, + EndPos: 2317, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2297, + EndPos: 2299, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2297, + EndPos: 2299, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2303, + EndPos: 2305, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2303, + EndPos: 2305, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprShortList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2309, + EndPos: 2313, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2310, + EndPos: 2312, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2310, + EndPos: 2312, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2310, + EndPos: 2312, + }, + }, + Value: []byte("v"), + }, + }, + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2315, + EndPos: 2317, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 99, + EndLine: 99, + StartPos: 2320, + EndPos: 2337, + }, + }, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 99, + EndLine: 99, + StartPos: 2329, + EndPos: 2332, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2340, + EndPos: 2364, + }, + }, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2349, + EndPos: 2352, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtReturn{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2356, + EndPos: 2363, + }, + }, + }, + }, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2367, + EndPos: 2394, + }, + }, + ReturnsRef: true, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2377, + EndPos: 2380, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtReturn{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2384, + EndPos: 2393, + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2391, + EndPos: 2392, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2397, + EndPos: 2421, + }, + }, + ReturnsRef: true, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2407, + EndPos: 2410, + }, + }, + Value: []byte("foo"), + }, + ReturnType: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2414, + EndPos: 2418, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2414, + EndPos: 2418, + }, + }, + Value: []byte("void"), + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtGlobal{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2424, + EndPos: 2438, + }, + }, + Vars: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2431, + EndPos: 2433, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2431, + EndPos: 2433, + }, + }, + Value: []byte("a"), + }, + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2435, + EndPos: 2437, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2435, + EndPos: 2437, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtLabel{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2441, + EndPos: 2443, + }, + }, + LabelName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2441, + EndPos: 2442, + }, + }, + Value: []byte("a"), + }, + }, + &ast.StmtGoto{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2447, + EndPos: 2454, + }, + }, + Label: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2452, + EndPos: 2453, + }, + }, + Value: []byte("a"), + }, + }, + &ast.StmtIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2457, + EndPos: 2467, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2461, + EndPos: 2463, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2461, + EndPos: 2463, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2465, + EndPos: 2467, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2470, + EndPos: 2495, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2474, + EndPos: 2476, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2474, + EndPos: 2476, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2478, + EndPos: 2480, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2481, + EndPos: 2495, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2489, + EndPos: 2491, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2489, + EndPos: 2491, + }, + }, + Value: []byte("b"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2493, + EndPos: 2495, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2498, + EndPos: 2516, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2502, + EndPos: 2504, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2502, + EndPos: 2504, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2506, + EndPos: 2508, + }, + }, + Stmts: []ast.Vertex{}, + }, + Else: &ast.StmtElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2509, + EndPos: 2516, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2514, + EndPos: 2516, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2519, + EndPos: 2567, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2523, + EndPos: 2525, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2523, + EndPos: 2525, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2527, + EndPos: 2529, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2530, + EndPos: 2544, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2538, + EndPos: 2540, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2538, + EndPos: 2540, + }, + }, + Value: []byte("b"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2542, + EndPos: 2544, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2545, + EndPos: 2559, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2553, + EndPos: 2555, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2553, + EndPos: 2555, + }, + }, + Value: []byte("c"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2557, + EndPos: 2559, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + Else: &ast.StmtElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2560, + EndPos: 2567, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2565, + EndPos: 2567, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2570, + EndPos: 2619, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2574, + EndPos: 2576, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2574, + EndPos: 2576, + }, + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2578, + EndPos: 2580, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2581, + EndPos: 2595, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2589, + EndPos: 2591, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2589, + EndPos: 2591, + }, + }, + Value: []byte("b"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2593, + EndPos: 2595, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + Else: &ast.StmtElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2596, + EndPos: 2619, + }, + }, + Stmt: &ast.StmtIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2601, + EndPos: 2619, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2605, + EndPos: 2607, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2605, + EndPos: 2607, + }, + }, + Value: []byte("c"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2609, + EndPos: 2611, + }, + }, + Stmts: []ast.Vertex{}, + }, + Else: &ast.StmtElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2612, + EndPos: 2619, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2617, + EndPos: 2619, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + }, + &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2622, + EndPos: 2624, + }, + }, + }, + &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2624, + EndPos: 2637, + }, + }, + Value: []byte("
"), + }, + &ast.StmtInterface{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2642, + EndPos: 2658, + }, + }, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2652, + EndPos: 2655, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtInterface{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2661, + EndPos: 2689, + }, + }, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2671, + EndPos: 2674, + }, + }, + Value: []byte("Foo"), + }, + Extends: &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2675, + EndPos: 2686, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2683, + EndPos: 2686, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2683, + EndPos: 2686, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtInterface{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2692, + EndPos: 2725, + }, + }, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2702, + EndPos: 2705, + }, + }, + Value: []byte("Foo"), + }, + Extends: &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2706, + EndPos: 2722, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2714, + EndPos: 2717, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2714, + EndPos: 2717, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2719, + EndPos: 2722, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2719, + EndPos: 2722, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtNamespace{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2728, + EndPos: 2742, + }, + }, + NamespaceName: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2738, + EndPos: 2741, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2738, + EndPos: 2741, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + &ast.StmtNamespace{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2745, + EndPos: 2761, + }, + }, + NamespaceName: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2755, + EndPos: 2758, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2755, + EndPos: 2758, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtNamespace{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 117, + EndLine: 117, + StartPos: 2764, + EndPos: 2776, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2779, + EndPos: 2798, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2785, + EndPos: 2788, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtPropertyList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2790, + EndPos: 2797, + }, + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2790, + EndPos: 2793, + }, + }, + Value: []byte("var"), + }, + }, + Properties: []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2794, + EndPos: 2796, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2794, + EndPos: 2796, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2794, + EndPos: 2796, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2801, + EndPos: 2838, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2807, + EndPos: 2810, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtPropertyList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2812, + EndPos: 2837, + }, + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2812, + EndPos: 2818, + }, + }, + Value: []byte("public"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2819, + EndPos: 2825, + }, + }, + Value: []byte("static"), + }, + }, + Properties: []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2826, + EndPos: 2828, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2826, + EndPos: 2828, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2826, + EndPos: 2828, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.StmtProperty{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2830, + EndPos: 2836, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2830, + EndPos: 2832, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2830, + EndPos: 2832, + }, + }, + Value: []byte("b"), + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2835, + EndPos: 2836, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + }, + }, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2841, + EndPos: 2859, + }, + }, + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2848, + EndPos: 2850, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2848, + EndPos: 2850, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2848, + EndPos: 2850, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2852, + EndPos: 2858, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2852, + EndPos: 2854, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2852, + EndPos: 2854, + }, + }, + Value: []byte("b"), + }, + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: 120, + StartPos: 2857, + EndPos: 2858, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + &ast.StmtAltSwitch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 122, + EndLine: 126, + StartPos: 2863, + EndPos: 2922, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 122, + EndLine: 122, + StartPos: 2871, + EndPos: 2872, + }, + }, + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 123, + EndLine: -1, + StartPos: 2879, + EndPos: -1, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 123, + EndLine: -1, + StartPos: 2879, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 123, + EndLine: 123, + StartPos: 2884, + EndPos: 2885, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtDefault{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 124, + EndLine: -1, + StartPos: 2890, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 125, + EndLine: -1, + StartPos: 2902, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 125, + EndLine: 125, + StartPos: 2907, + EndPos: 2908, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtAltSwitch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 128, + EndLine: 131, + StartPos: 2926, + EndPos: 2974, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 128, + EndLine: 128, + StartPos: 2934, + EndPos: 2935, + }, + }, + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 129, + EndLine: -1, + StartPos: 2943, + EndPos: -1, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 129, + EndLine: -1, + StartPos: 2943, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 129, + EndLine: 129, + StartPos: 2948, + EndPos: 2949, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 130, + EndLine: -1, + StartPos: 2954, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 130, + EndLine: 130, + StartPos: 2959, + EndPos: 2960, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtSwitch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 133, + EndLine: 136, + StartPos: 2980, + EndPos: 3032, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 133, + EndLine: 133, + StartPos: 2988, + EndPos: 2989, + }, + }, + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 133, + EndLine: 136, + StartPos: 2991, + EndPos: 3032, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 2996, + EndPos: 3010, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 3001, + EndPos: 3002, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 3004, + EndPos: 3010, + }, + }, + }, + }, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 3014, + EndPos: 3028, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 3019, + EndPos: 3020, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 3022, + EndPos: 3028, + }, + }, + }, + }, + }, + }, + }, + }, + &ast.StmtSwitch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 138, + EndLine: 141, + StartPos: 3038, + EndPos: 3091, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 138, + EndLine: 138, + StartPos: 3046, + EndPos: 3047, + }, + }, + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 138, + EndLine: 141, + StartPos: 3049, + EndPos: 3091, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 139, + EndLine: 139, + StartPos: 3055, + EndPos: 3069, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 139, + EndLine: 139, + StartPos: 3060, + EndPos: 3061, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 139, + EndLine: 139, + StartPos: 3063, + EndPos: 3069, + }, + }, + }, + }, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3073, + EndPos: 3087, + }, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3078, + EndPos: 3079, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3081, + EndPos: 3087, + }, + }, + }, + }, + }, + }, + }, + }, + &ast.StmtThrow{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3095, + EndPos: 3104, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3101, + EndPos: 3103, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3101, + EndPos: 3103, + }, + }, + Value: []byte("e"), + }, + }, + }, + &ast.StmtTrait{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3108, + EndPos: 3120, + }, + }, + TraitName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 145, + EndLine: 145, + StartPos: 3114, + EndPos: 3117, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3123, + EndPos: 3145, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3129, + EndPos: 3132, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3135, + EndPos: 3143, + }, + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3139, + EndPos: 3142, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3139, + EndPos: 3142, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 146, + EndLine: 146, + StartPos: 3142, + EndPos: 3143, + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3148, + EndPos: 3177, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3154, + EndPos: 3157, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3160, + EndPos: 3175, + }, + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3164, + EndPos: 3167, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3164, + EndPos: 3167, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3169, + EndPos: 3172, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3169, + EndPos: 3172, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3173, + EndPos: 3175, + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3180, + EndPos: 3226, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3186, + EndPos: 3189, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3192, + EndPos: 3224, + }, + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3196, + EndPos: 3199, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3196, + EndPos: 3199, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3201, + EndPos: 3204, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3201, + EndPos: 3204, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3205, + EndPos: 3224, + }, + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3207, + EndPos: 3221, + }, + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3207, + EndPos: 3210, + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3207, + EndPos: 3210, + }, + }, + Value: []byte("one"), + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3214, + EndPos: 3221, + }, + }, + Value: []byte("include"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3229, + EndPos: 3274, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3235, + EndPos: 3238, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3241, + EndPos: 3272, + }, + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3245, + EndPos: 3248, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3245, + EndPos: 3248, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3250, + EndPos: 3253, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3250, + EndPos: 3253, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3254, + EndPos: 3272, + }, + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3256, + EndPos: 3269, + }, + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3256, + EndPos: 3259, + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3256, + EndPos: 3259, + }, + }, + Value: []byte("one"), + }, + }, + Modifier: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3263, + EndPos: 3269, + }, + }, + Value: []byte("public"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3277, + EndPos: 3326, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3283, + EndPos: 3286, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3289, + EndPos: 3324, + }, + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3293, + EndPos: 3296, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3293, + EndPos: 3296, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3298, + EndPos: 3301, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3298, + EndPos: 3301, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3302, + EndPos: 3324, + }, + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3304, + EndPos: 3321, + }, + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3304, + EndPos: 3307, + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3304, + EndPos: 3307, + }, + }, + Value: []byte("one"), + }, + }, + Modifier: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3311, + EndPos: 3317, + }, + }, + Value: []byte("public"), + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3318, + EndPos: 3321, + }, + }, + Value: []byte("two"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3329, + EndPos: 3406, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3335, + EndPos: 3338, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3341, + EndPos: 3404, + }, + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3345, + EndPos: 3348, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3345, + EndPos: 3348, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3350, + EndPos: 3353, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3350, + EndPos: 3353, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3354, + EndPos: 3404, + }, + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUsePrecedence{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3356, + EndPos: 3384, + }, + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3356, + EndPos: 3364, + }, + }, + Trait: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3356, + EndPos: 3359, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3356, + EndPos: 3359, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3361, + EndPos: 3364, + }, + }, + Value: []byte("one"), + }, + }, + Insteadof: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3375, + EndPos: 3378, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3375, + EndPos: 3378, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3380, + EndPos: 3384, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3380, + EndPos: 3384, + }, + }, + Value: []byte("Quux"), + }, + }, + }, + }, + }, + &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3386, + EndPos: 3401, + }, + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3386, + EndPos: 3394, + }, + }, + Trait: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3386, + EndPos: 3389, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3386, + EndPos: 3389, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3391, + EndPos: 3394, + }, + }, + Value: []byte("one"), + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 151, + EndLine: 151, + StartPos: 3398, + EndPos: 3401, + }, + }, + Value: []byte("two"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 153, + EndLine: -1, + StartPos: 3410, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{}, + }, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3419, + EndPos: 3449, + }, + }, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3426, + EndPos: 3449, + }, + }, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3433, + EndPos: 3442, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3433, + EndPos: 3442, + }, + }, + Value: []byte("Exception"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3443, + EndPos: 3445, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3443, + EndPos: 3445, + }, + }, + Value: []byte("e"), + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3452, + EndPos: 3499, + }, + }, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3459, + EndPos: 3499, + }, + }, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3466, + EndPos: 3475, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3466, + EndPos: 3475, + }, + }, + Value: []byte("Exception"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3476, + EndPos: 3492, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3476, + EndPos: 3492, + }, + }, + Value: []byte("RuntimeException"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3493, + EndPos: 3495, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3493, + EndPos: 3495, + }, + }, + Value: []byte("e"), + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3502, + EndPos: 3563, + }, + }, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3509, + EndPos: 3532, + }, + }, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3516, + EndPos: 3525, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3516, + EndPos: 3525, + }, + }, + Value: []byte("Exception"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3526, + EndPos: 3528, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3526, + EndPos: 3528, + }, + }, + Value: []byte("e"), + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3533, + EndPos: 3563, + }, + }, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3540, + EndPos: 3556, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3540, + EndPos: 3556, + }, + }, + Value: []byte("RuntimeException"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3557, + EndPos: 3559, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3557, + EndPos: 3559, + }, + }, + Value: []byte("e"), + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3566, + EndPos: 3607, + }, + }, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3573, + EndPos: 3596, + }, + }, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3580, + EndPos: 3589, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3580, + EndPos: 3589, + }, + }, + Value: []byte("Exception"), + }, + }, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3590, + EndPos: 3592, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3590, + EndPos: 3592, + }, + }, + Value: []byte("e"), + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + Finally: &ast.StmtFinally{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3597, + EndPos: 3607, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtUnset{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3611, + EndPos: 3626, + }, + }, + Vars: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3617, + EndPos: 3619, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3617, + EndPos: 3619, + }, + }, + Value: []byte("a"), + }, + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3621, + EndPos: 3623, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3621, + EndPos: 3623, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3630, + EndPos: 3638, + }, + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3634, + EndPos: 3637, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3634, + EndPos: 3637, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3634, + EndPos: 3637, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3641, + EndPos: 3650, + }, + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3646, + EndPos: 3649, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3646, + EndPos: 3649, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3646, + EndPos: 3649, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3653, + EndPos: 3669, + }, + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3658, + EndPos: 3668, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3658, + EndPos: 3661, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3658, + EndPos: 3661, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3665, + EndPos: 3668, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3672, + EndPos: 3685, + }, + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3676, + EndPos: 3679, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3676, + EndPos: 3679, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3676, + EndPos: 3679, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3681, + EndPos: 3684, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3681, + EndPos: 3684, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3681, + EndPos: 3684, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3688, + EndPos: 3708, + }, + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3692, + EndPos: 3695, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3692, + EndPos: 3695, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3692, + EndPos: 3695, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3697, + EndPos: 3707, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3697, + EndPos: 3700, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3697, + EndPos: 3700, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3704, + EndPos: 3707, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3711, + EndPos: 3734, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3715, + EndPos: 3723, + }, + }, + Value: []byte("function"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3724, + EndPos: 3727, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3724, + EndPos: 3727, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3724, + EndPos: 3727, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3730, + EndPos: 3733, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3730, + EndPos: 3733, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3730, + EndPos: 3733, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3737, + EndPos: 3774, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3741, + EndPos: 3749, + }, + }, + Value: []byte("function"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3750, + EndPos: 3760, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3750, + EndPos: 3753, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3750, + EndPos: 3753, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3757, + EndPos: 3760, + }, + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3763, + EndPos: 3773, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3763, + EndPos: 3766, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3763, + EndPos: 3766, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3770, + EndPos: 3773, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3777, + EndPos: 3797, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3781, + EndPos: 3786, + }, + }, + Value: []byte("const"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3787, + EndPos: 3790, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3787, + EndPos: 3790, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3787, + EndPos: 3790, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3793, + EndPos: 3796, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3793, + EndPos: 3796, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3793, + EndPos: 3796, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + }, + }, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3800, + EndPos: 3834, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3804, + EndPos: 3809, + }, + }, + Value: []byte("const"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3810, + EndPos: 3820, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3810, + EndPos: 3813, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3810, + EndPos: 3813, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3817, + EndPos: 3820, + }, + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3823, + EndPos: 3833, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3823, + EndPos: 3826, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3823, + EndPos: 3826, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3830, + EndPos: 3833, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtGroupUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3838, + EndPos: 3858, + }, + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3843, + EndPos: 3846, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3843, + EndPos: 3846, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3848, + EndPos: 3851, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3848, + EndPos: 3851, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3848, + EndPos: 3851, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3853, + EndPos: 3856, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3853, + EndPos: 3856, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3853, + EndPos: 3856, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + }, + }, + &ast.StmtGroupUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3861, + EndPos: 3888, + }, + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3865, + EndPos: 3868, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3865, + EndPos: 3868, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3873, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3873, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3870, + EndPos: 3873, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3875, + EndPos: 3886, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3875, + EndPos: 3878, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3875, + EndPos: 3878, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3882, + EndPos: 3886, + }, + }, + Value: []byte("quux"), + }, + }, + }, + }, + &ast.StmtGroupUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3891, + EndPos: 3919, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3895, + EndPos: 3903, + }, + }, + Value: []byte("function"), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3904, + EndPos: 3907, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3904, + EndPos: 3907, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3909, + EndPos: 3912, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3909, + EndPos: 3912, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3909, + EndPos: 3912, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3914, + EndPos: 3917, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3914, + EndPos: 3917, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3914, + EndPos: 3917, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + }, + }, + &ast.StmtGroupUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3922, + EndPos: 3948, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3926, + EndPos: 3931, + }, + }, + Value: []byte("const"), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3933, + EndPos: 3936, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3933, + EndPos: 3936, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3938, + EndPos: 3941, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3938, + EndPos: 3941, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3938, + EndPos: 3941, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3943, + EndPos: 3946, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3943, + EndPos: 3946, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3943, + EndPos: 3946, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + }, + }, + &ast.StmtGroupUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3951, + EndPos: 3985, + }, + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3955, + EndPos: 3958, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3955, + EndPos: 3958, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3966, + EndPos: 3969, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3960, + EndPos: 3965, + }, + }, + Value: []byte("const"), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3966, + EndPos: 3969, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3966, + EndPos: 3969, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + &ast.StmtUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3980, + EndPos: 3983, + }, + }, + UseType: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3971, + EndPos: 3979, + }, + }, + Value: []byte("function"), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3980, + EndPos: 3983, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3980, + EndPos: 3983, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3989, + EndPos: 3995, + }, + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3989, + EndPos: 3994, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3989, + EndPos: 3991, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3989, + EndPos: 3991, + }, + }, + Value: []byte("a"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3992, + EndPos: 3993, + }, + }, + Value: []byte("1"), + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3998, + EndPos: 4007, + }, + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3998, + EndPos: 4006, + }, + }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3998, + EndPos: 4003, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3998, + EndPos: 4000, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3998, + EndPos: 4000, + }, + }, + Value: []byte("a"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 4001, + EndPos: 4002, + }, + }, + Value: []byte("1"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 4004, + EndPos: 4005, + }, + }, + Value: []byte("2"), + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4010, + EndPos: 4018, + }, + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 4010, + EndPos: 4017, + }, + }, + Items: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4021, + EndPos: 4030, + }, + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4021, + EndPos: 4029, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4027, + EndPos: 4028, + }, + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 4027, + EndPos: 4028, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4033, + EndPos: 4051, + }, + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4033, + EndPos: 4050, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4039, + EndPos: 4043, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4039, + EndPos: 4040, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4042, + EndPos: 4043, + }, + }, + Value: []byte("1"), + }, + }, + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4045, + EndPos: 4048, + }, + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4045, + EndPos: 4048, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4046, + EndPos: 4048, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4046, + EndPos: 4048, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.ExprArrayItem{}, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4054, + EndPos: 4058, + }, + }, + Expr: &ast.ExprBitwiseNot{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4054, + EndPos: 4057, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4055, + EndPos: 4057, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4055, + EndPos: 4057, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4061, + EndPos: 4065, + }, + }, + Expr: &ast.ExprBooleanNot{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4061, + EndPos: 4064, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4062, + EndPos: 4064, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4062, + EndPos: 4064, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4069, + EndPos: 4078, + }, + }, + Expr: &ast.ExprClassConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4069, + EndPos: 4077, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4069, + EndPos: 4072, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4069, + EndPos: 4072, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4074, + EndPos: 4077, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4081, + EndPos: 4091, + }, + }, + Expr: &ast.ExprClassConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4081, + EndPos: 4090, + }, + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4081, + EndPos: 4085, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4081, + EndPos: 4085, + }, + }, + Value: []byte("foo"), + }, + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4087, + EndPos: 4090, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4094, + EndPos: 4104, + }, + }, + Expr: &ast.ExprClone{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4094, + EndPos: 4102, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4100, + EndPos: 4102, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4100, + EndPos: 4102, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4107, + EndPos: 4116, + }, + }, + Expr: &ast.ExprClone{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4107, + EndPos: 4115, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4113, + EndPos: 4115, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4113, + EndPos: 4115, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4119, + EndPos: 4132, + }, + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4119, + EndPos: 4131, + }, + }, + ReturnsRef: false, + Static: false, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4135, + EndPos: 4169, + }, + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4135, + EndPos: 4168, + }, + }, + Static: false, + ReturnsRef: false, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4144, + EndPos: 4146, + }, + }, + ByRef: false, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4144, + EndPos: 4146, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4144, + EndPos: 4146, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4148, + EndPos: 4150, + }, + }, + ByRef: false, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4148, + EndPos: 4150, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4148, + EndPos: 4150, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + ClosureUse: &ast.ExprClosureUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4152, + EndPos: 4165, + }, + }, + Uses: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4157, + EndPos: 4159, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4157, + EndPos: 4159, + }, + }, + Value: []byte("c"), + }, + }, + &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4161, + EndPos: 4164, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4162, + EndPos: 4164, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4162, + EndPos: 4164, + }, + }, + Value: []byte("d"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4172, + EndPos: 4192, + }, + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4172, + EndPos: 4191, + }, + }, + ReturnsRef: false, + Static: false, + ReturnType: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4184, + EndPos: 4188, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4184, + EndPos: 4188, + }, + }, + Value: []byte("void"), + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4195, + EndPos: 4199, + }, + }, + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4195, + EndPos: 4198, + }, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4195, + EndPos: 4198, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4195, + EndPos: 4198, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4202, + EndPos: 4216, + }, + }, + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4202, + EndPos: 4215, + }, + }, + Const: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4202, + EndPos: 4215, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4212, + EndPos: 4215, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4219, + EndPos: 4224, + }, + }, + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4219, + EndPos: 4223, + }, + }, + Const: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4219, + EndPos: 4223, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4220, + EndPos: 4223, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4228, + EndPos: 4238, + }, + }, + Expr: &ast.ExprEmpty{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4228, + EndPos: 4237, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4234, + EndPos: 4236, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4234, + EndPos: 4236, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4241, + EndPos: 4245, + }, + }, + Expr: &ast.ExprErrorSuppress{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4241, + EndPos: 4244, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4242, + EndPos: 4244, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 197, + EndLine: 197, + StartPos: 4242, + EndPos: 4244, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4248, + EndPos: 4257, + }, + }, + Expr: &ast.ExprEval{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4248, + EndPos: 4256, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4253, + EndPos: 4255, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4253, + EndPos: 4255, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4260, + EndPos: 4265, + }, + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4260, + EndPos: 4264, + }, + }, + Die: false, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4268, + EndPos: 4277, + }, + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4268, + EndPos: 4276, + }, + }, + Die: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4273, + EndPos: 4275, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4273, + EndPos: 4275, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4280, + EndPos: 4284, + }, + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4280, + EndPos: 4283, + }, + }, + Die: true, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4287, + EndPos: 4295, + }, + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4287, + EndPos: 4294, + }, + }, + Die: true, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4291, + EndPos: 4293, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 202, + EndLine: 202, + StartPos: 4291, + EndPos: 4293, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4298, + EndPos: 4304, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4298, + EndPos: 4303, + }, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4298, + EndPos: 4301, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4298, + EndPos: 4301, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4301, + EndPos: 4303, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4307, + EndPos: 4323, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4307, + EndPos: 4322, + }, + }, + Function: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4307, + EndPos: 4320, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4317, + EndPos: 4320, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4320, + EndPos: 4322, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4326, + EndPos: 4333, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4326, + EndPos: 4332, + }, + }, + Function: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4326, + EndPos: 4330, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4327, + EndPos: 4330, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4330, + EndPos: 4332, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4336, + EndPos: 4343, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4336, + EndPos: 4342, + }, + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4336, + EndPos: 4340, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4336, + EndPos: 4340, + }, + }, + Value: []byte("foo"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4340, + EndPos: 4342, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4347, + EndPos: 4352, + }, + }, + Expr: &ast.ExprPostDec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4347, + EndPos: 4351, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4347, + EndPos: 4349, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4347, + EndPos: 4349, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4355, + EndPos: 4360, + }, + }, + Expr: &ast.ExprPostInc{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4355, + EndPos: 4359, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4355, + EndPos: 4357, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4355, + EndPos: 4357, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4363, + EndPos: 4368, + }, + }, + Expr: &ast.ExprPreDec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4363, + EndPos: 4367, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4365, + EndPos: 4367, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4365, + EndPos: 4367, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4371, + EndPos: 4376, + }, + }, + Expr: &ast.ExprPreInc{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4371, + EndPos: 4375, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4373, + EndPos: 4375, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 211, + EndLine: 211, + StartPos: 4373, + EndPos: 4375, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 213, + EndLine: 213, + StartPos: 4380, + EndPos: 4391, + }, + }, + Expr: &ast.ExprInclude{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 213, + EndLine: 213, + StartPos: 4380, + EndPos: 4390, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 213, + EndLine: 213, + StartPos: 4388, + EndPos: 4390, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 213, + EndLine: 213, + StartPos: 4388, + EndPos: 4390, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4394, + EndPos: 4410, + }, + }, + Expr: &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4394, + EndPos: 4409, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4407, + EndPos: 4409, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4407, + EndPos: 4409, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4413, + EndPos: 4424, + }, + }, + Expr: &ast.ExprRequire{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4413, + EndPos: 4423, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4421, + EndPos: 4423, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4421, + EndPos: 4423, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4427, + EndPos: 4443, + }, + }, + Expr: &ast.ExprRequireOnce{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4427, + EndPos: 4442, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4440, + EndPos: 4442, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4440, + EndPos: 4442, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4447, + EndPos: 4465, + }, + }, + Expr: &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4447, + EndPos: 4464, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4447, + EndPos: 4449, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4447, + EndPos: 4449, + }, + }, + Value: []byte("a"), + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4461, + EndPos: 4464, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 218, + EndLine: 218, + StartPos: 4461, + EndPos: 4464, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4468, + EndPos: 4496, + }, + }, + Expr: &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4468, + EndPos: 4495, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4468, + EndPos: 4470, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4468, + EndPos: 4470, + }, + }, + Value: []byte("a"), + }, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4482, + EndPos: 4495, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4492, + EndPos: 4495, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4499, + EndPos: 4518, + }, + }, + Expr: &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4499, + EndPos: 4517, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4499, + EndPos: 4501, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4499, + EndPos: 4501, + }, + }, + Value: []byte("a"), + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4513, + EndPos: 4517, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4514, + EndPos: 4517, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4522, + EndPos: 4536, + }, + }, + Expr: &ast.ExprIsset{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4522, + EndPos: 4535, + }, + }, + Vars: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4528, + EndPos: 4530, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4528, + EndPos: 4530, + }, + }, + Value: []byte("a"), + }, + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4532, + EndPos: 4534, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4532, + EndPos: 4534, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4539, + EndPos: 4553, + }, + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4539, + EndPos: 4552, + }, + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4539, + EndPos: 4547, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4546, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4546, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4544, + EndPos: 4546, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4550, + EndPos: 4552, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4550, + EndPos: 4552, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4556, + EndPos: 4572, + }, + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4556, + EndPos: 4571, + }, + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4556, + EndPos: 4566, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4561, + EndPos: 4565, + }, + }, + Val: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4561, + EndPos: 4565, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4561, + EndPos: 4563, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4561, + EndPos: 4563, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4569, + EndPos: 4571, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4569, + EndPos: 4571, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4575, + EndPos: 4595, + }, + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4575, + EndPos: 4594, + }, + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4575, + EndPos: 4589, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4580, + EndPos: 4588, + }, + }, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4580, + EndPos: 4588, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4585, + EndPos: 4587, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4585, + EndPos: 4587, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4585, + EndPos: 4587, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4592, + EndPos: 4594, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4592, + EndPos: 4594, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4599, + EndPos: 4609, + }, + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4599, + EndPos: 4608, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4599, + EndPos: 4601, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4599, + EndPos: 4601, + }, + }, + Value: []byte("a"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4603, + EndPos: 4606, + }, + }, + Value: []byte("foo"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4606, + EndPos: 4608, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4612, + EndPos: 4622, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4612, + EndPos: 4621, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4616, + EndPos: 4619, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4616, + EndPos: 4619, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4619, + EndPos: 4621, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4625, + EndPos: 4645, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4625, + EndPos: 4644, + }, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4629, + EndPos: 4642, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4639, + EndPos: 4642, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4642, + EndPos: 4644, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4648, + EndPos: 4659, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4648, + EndPos: 4658, + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4652, + EndPos: 4656, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4653, + EndPos: 4656, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4656, + EndPos: 4658, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4662, + EndPos: 4687, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4662, + EndPos: 4686, + }, + }, + Class: &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4666, + EndPos: 4686, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4672, + EndPos: 4683, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4673, + EndPos: 4675, + }, + }, + IsReference: false, + Variadic: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4673, + EndPos: 4675, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4673, + EndPos: 4675, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4677, + EndPos: 4682, + }, + }, + IsReference: false, + Variadic: true, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4680, + EndPos: 4682, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4680, + EndPos: 4682, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4690, + EndPos: 4700, + }, + }, + Expr: &ast.ExprPrint{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4690, + EndPos: 4698, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4696, + EndPos: 4698, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4696, + EndPos: 4698, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4703, + EndPos: 4711, + }, + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4703, + EndPos: 4710, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4703, + EndPos: 4705, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4703, + EndPos: 4705, + }, + }, + Value: []byte("a"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4707, + EndPos: 4710, + }, + }, + Value: []byte("foo"), + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4714, + EndPos: 4723, + }, + }, + Expr: &ast.ExprShellExec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4714, + EndPos: 4722, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4715, + EndPos: 4719, + }, + }, + Value: []byte("cmd "), + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4719, + EndPos: 4721, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 234, + EndLine: 234, + StartPos: 4719, + EndPos: 4721, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4726, + EndPos: 4732, + }, + }, + Expr: &ast.ExprShellExec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4726, + EndPos: 4731, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4727, + EndPos: 4730, + }, + }, + Value: []byte("cmd"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4735, + EndPos: 4738, + }, + }, + Expr: &ast.ExprShellExec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4735, + EndPos: 4737, + }, + }, + Parts: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4741, + EndPos: 4744, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4741, + EndPos: 4743, + }, + }, + Items: []ast.Vertex{}, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4747, + EndPos: 4751, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4747, + EndPos: 4750, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4748, + EndPos: 4749, + }, + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4748, + EndPos: 4749, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4754, + EndPos: 4767, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4754, + EndPos: 4766, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4755, + EndPos: 4759, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4755, + EndPos: 4756, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4758, + EndPos: 4759, + }, + }, + Value: []byte("1"), + }, + }, + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4761, + EndPos: 4764, + }, + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4761, + EndPos: 4764, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4762, + EndPos: 4764, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4762, + EndPos: 4764, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.ExprArrayItem{}, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4771, + EndPos: 4781, + }, + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4771, + EndPos: 4780, + }, + }, + Var: &ast.ExprShortList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4771, + EndPos: 4775, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4772, + EndPos: 4774, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4772, + EndPos: 4774, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4772, + EndPos: 4774, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4778, + EndPos: 4780, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4778, + EndPos: 4780, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4784, + EndPos: 4796, + }, + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4784, + EndPos: 4795, + }, + }, + Var: &ast.ExprShortList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4784, + EndPos: 4790, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4785, + EndPos: 4789, + }, + }, + Val: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4785, + EndPos: 4789, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4785, + EndPos: 4787, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4785, + EndPos: 4787, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4793, + EndPos: 4795, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4793, + EndPos: 4795, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4799, + EndPos: 4815, + }, + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4799, + EndPos: 4814, + }, + }, + Var: &ast.ExprShortList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4799, + EndPos: 4809, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4800, + EndPos: 4808, + }, + }, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4800, + EndPos: 4808, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4805, + EndPos: 4807, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4805, + EndPos: 4807, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4805, + EndPos: 4807, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4812, + EndPos: 4814, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4812, + EndPos: 4814, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4818, + EndPos: 4829, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4818, + EndPos: 4828, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4818, + EndPos: 4821, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4818, + EndPos: 4821, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4823, + EndPos: 4826, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4826, + EndPos: 4828, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4832, + EndPos: 4853, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4832, + EndPos: 4852, + }, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4832, + EndPos: 4845, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4842, + EndPos: 4845, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4847, + EndPos: 4850, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4850, + EndPos: 4852, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4856, + EndPos: 4868, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4856, + EndPos: 4867, + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4856, + EndPos: 4860, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4857, + EndPos: 4860, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4862, + EndPos: 4865, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4865, + EndPos: 4867, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4871, + EndPos: 4881, + }, + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4871, + EndPos: 4880, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4871, + EndPos: 4874, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4871, + EndPos: 4874, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4876, + EndPos: 4880, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4876, + EndPos: 4880, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4884, + EndPos: 4895, + }, + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4884, + EndPos: 4894, + }, + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4884, + EndPos: 4888, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4884, + EndPos: 4888, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4890, + EndPos: 4894, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4890, + EndPos: 4894, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4898, + EndPos: 4918, + }, + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4898, + EndPos: 4917, + }, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4898, + EndPos: 4911, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4908, + EndPos: 4911, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4913, + EndPos: 4917, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4913, + EndPos: 4917, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4921, + EndPos: 4932, + }, + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4921, + EndPos: 4931, + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4921, + EndPos: 4925, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4922, + EndPos: 4925, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4927, + EndPos: 4931, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4927, + EndPos: 4931, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4935, + EndPos: 4948, + }, + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4935, + EndPos: 4947, + }, + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4935, + EndPos: 4937, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4935, + EndPos: 4937, + }, + }, + Value: []byte("a"), + }, + }, + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4940, + EndPos: 4942, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4940, + EndPos: 4942, + }, + }, + Value: []byte("b"), + }, + }, + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4945, + EndPos: 4947, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4945, + EndPos: 4947, + }, + }, + Value: []byte("c"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4951, + EndPos: 4961, + }, + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4951, + EndPos: 4960, + }, + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4951, + EndPos: 4953, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4951, + EndPos: 4953, + }, + }, + Value: []byte("a"), + }, + }, + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4958, + EndPos: 4960, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4958, + EndPos: 4960, + }, + }, + Value: []byte("c"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4964, + EndPos: 4987, + }, + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4964, + EndPos: 4986, + }, + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4964, + EndPos: 4966, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4964, + EndPos: 4966, + }, + }, + Value: []byte("a"), + }, + }, + IfTrue: &ast.ExprTernary{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4969, + EndPos: 4981, + }, + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4969, + EndPos: 4971, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4969, + EndPos: 4971, + }, + }, + Value: []byte("b"), + }, + }, + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4974, + EndPos: 4976, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4974, + EndPos: 4976, + }, + }, + Value: []byte("c"), + }, + }, + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4979, + EndPos: 4981, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4979, + EndPos: 4981, + }, + }, + Value: []byte("d"), + }, + }, + }, + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4984, + EndPos: 4986, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4984, + EndPos: 4986, + }, + }, + Value: []byte("e"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4990, + EndPos: 5013, + }, + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4990, + EndPos: 5012, + }, + }, + Condition: &ast.ExprTernary{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4990, + EndPos: 5002, + }, + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4990, + EndPos: 4992, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4990, + EndPos: 4992, + }, + }, + Value: []byte("a"), + }, + }, + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4995, + EndPos: 4997, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4995, + EndPos: 4997, + }, + }, + Value: []byte("b"), + }, + }, + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5000, + EndPos: 5002, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5000, + EndPos: 5002, + }, + }, + Value: []byte("c"), + }, + }, + }, + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5005, + EndPos: 5007, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5005, + EndPos: 5007, + }, + }, + Value: []byte("d"), + }, + }, + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5010, + EndPos: 5012, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 5010, + EndPos: 5012, + }, + }, + Value: []byte("e"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5016, + EndPos: 5020, + }, + }, + Expr: &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5016, + EndPos: 5019, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5017, + EndPos: 5019, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5017, + EndPos: 5019, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5023, + EndPos: 5027, + }, + }, + Expr: &ast.ExprUnaryPlus{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5023, + EndPos: 5026, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5024, + EndPos: 5026, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 256, + EndLine: 256, + StartPos: 5024, + EndPos: 5026, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5030, + EndPos: 5034, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5030, + EndPos: 5033, + }, + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5031, + EndPos: 5033, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5031, + EndPos: 5033, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5037, + EndPos: 5043, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5037, + EndPos: 5042, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5046, + EndPos: 5055, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5046, + EndPos: 5054, + }, + }, + Value: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5052, + EndPos: 5054, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5052, + EndPos: 5054, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5058, + EndPos: 5073, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5058, + EndPos: 5072, + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5064, + EndPos: 5066, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5064, + EndPos: 5066, + }, + }, + Value: []byte("a"), + }, + }, + Value: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5070, + EndPos: 5072, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5070, + EndPos: 5072, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5076, + EndPos: 5090, + }, + }, + Expr: &ast.ExprYieldFrom{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5076, + EndPos: 5089, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5087, + EndPos: 5089, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5087, + EndPos: 5089, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5096, + EndPos: 5106, + }, + }, + Expr: &ast.ExprCastArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5096, + EndPos: 5105, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5103, + EndPos: 5105, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5103, + EndPos: 5105, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5109, + EndPos: 5121, + }, + }, + Expr: &ast.ExprCastBool{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5109, + EndPos: 5120, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5118, + EndPos: 5120, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5118, + EndPos: 5120, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5124, + EndPos: 5133, + }, + }, + Expr: &ast.ExprCastBool{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5124, + EndPos: 5132, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5130, + EndPos: 5132, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5130, + EndPos: 5132, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5136, + EndPos: 5147, + }, + }, + Expr: &ast.ExprCastDouble{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5136, + EndPos: 5146, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5144, + EndPos: 5146, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5144, + EndPos: 5146, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5150, + EndPos: 5160, + }, + }, + Expr: &ast.ExprCastDouble{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5150, + EndPos: 5159, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5157, + EndPos: 5159, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 267, + EndLine: 267, + StartPos: 5157, + EndPos: 5159, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5163, + EndPos: 5175, + }, + }, + Expr: &ast.ExprCastInt{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5163, + EndPos: 5174, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5172, + EndPos: 5174, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5172, + EndPos: 5174, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5178, + EndPos: 5186, + }, + }, + Expr: &ast.ExprCastInt{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5178, + EndPos: 5185, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5183, + EndPos: 5185, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5183, + EndPos: 5185, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5189, + EndPos: 5200, + }, + }, + Expr: &ast.ExprCastObject{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5189, + EndPos: 5199, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5197, + EndPos: 5199, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5197, + EndPos: 5199, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5203, + EndPos: 5214, + }, + }, + Expr: &ast.ExprCastString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5203, + EndPos: 5213, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5211, + EndPos: 5213, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5211, + EndPos: 5213, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5217, + EndPos: 5227, + }, + }, + Expr: &ast.ExprCastUnset{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5217, + EndPos: 5226, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5224, + EndPos: 5226, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5224, + EndPos: 5226, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5231, + EndPos: 5239, + }, + }, + Expr: &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5231, + EndPos: 5238, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5231, + EndPos: 5233, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5231, + EndPos: 5233, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5236, + EndPos: 5238, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5236, + EndPos: 5238, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5242, + EndPos: 5250, + }, + }, + Expr: &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5242, + EndPos: 5249, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5242, + EndPos: 5244, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5242, + EndPos: 5244, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5247, + EndPos: 5249, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5247, + EndPos: 5249, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5253, + EndPos: 5261, + }, + }, + Expr: &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5253, + EndPos: 5260, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5253, + EndPos: 5255, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5253, + EndPos: 5255, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5258, + EndPos: 5260, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5258, + EndPos: 5260, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5264, + EndPos: 5273, + }, + }, + Expr: &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5264, + EndPos: 5272, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5264, + EndPos: 5266, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5264, + EndPos: 5266, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5270, + EndPos: 5272, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5270, + EndPos: 5272, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5276, + EndPos: 5285, + }, + }, + Expr: &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5276, + EndPos: 5284, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5276, + EndPos: 5278, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5276, + EndPos: 5278, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5282, + EndPos: 5284, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5282, + EndPos: 5284, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5288, + EndPos: 5297, + }, + }, + Expr: &ast.ExprBinaryCoalesce{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5288, + EndPos: 5296, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5288, + EndPos: 5290, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5288, + EndPos: 5290, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5294, + EndPos: 5296, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5294, + EndPos: 5296, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5300, + EndPos: 5308, + }, + }, + Expr: &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5300, + EndPos: 5307, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5300, + EndPos: 5302, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5300, + EndPos: 5302, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5305, + EndPos: 5307, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5305, + EndPos: 5307, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5311, + EndPos: 5319, + }, + }, + Expr: &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5311, + EndPos: 5318, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5311, + EndPos: 5313, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5311, + EndPos: 5313, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5316, + EndPos: 5318, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5316, + EndPos: 5318, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5322, + EndPos: 5331, + }, + }, + Expr: &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5322, + EndPos: 5330, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5322, + EndPos: 5324, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5322, + EndPos: 5324, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5328, + EndPos: 5330, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5328, + EndPos: 5330, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5334, + EndPos: 5343, + }, + }, + Expr: &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5334, + EndPos: 5342, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5334, + EndPos: 5336, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5334, + EndPos: 5336, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5340, + EndPos: 5342, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5340, + EndPos: 5342, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5346, + EndPos: 5354, + }, + }, + Expr: &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5346, + EndPos: 5353, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5346, + EndPos: 5348, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5346, + EndPos: 5348, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5351, + EndPos: 5353, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5351, + EndPos: 5353, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5357, + EndPos: 5367, + }, + }, + Expr: &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5357, + EndPos: 5366, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5357, + EndPos: 5359, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5357, + EndPos: 5359, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5364, + EndPos: 5366, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5364, + EndPos: 5366, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5370, + EndPos: 5380, + }, + }, + Expr: &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5370, + EndPos: 5379, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5370, + EndPos: 5372, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5370, + EndPos: 5372, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5377, + EndPos: 5379, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5377, + EndPos: 5379, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5383, + EndPos: 5392, + }, + }, + Expr: &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5383, + EndPos: 5391, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5383, + EndPos: 5385, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5383, + EndPos: 5385, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5389, + EndPos: 5391, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5389, + EndPos: 5391, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5395, + EndPos: 5405, + }, + }, + Expr: &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5395, + EndPos: 5404, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5395, + EndPos: 5397, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5395, + EndPos: 5397, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5402, + EndPos: 5404, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5402, + EndPos: 5404, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5408, + EndPos: 5416, + }, + }, + Expr: &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5408, + EndPos: 5415, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5408, + EndPos: 5410, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5408, + EndPos: 5410, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5413, + EndPos: 5415, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5413, + EndPos: 5415, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5419, + EndPos: 5427, + }, + }, + Expr: &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5419, + EndPos: 5426, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5419, + EndPos: 5421, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5419, + EndPos: 5421, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5424, + EndPos: 5426, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5424, + EndPos: 5426, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5430, + EndPos: 5438, + }, + }, + Expr: &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5430, + EndPos: 5437, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5430, + EndPos: 5432, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5430, + EndPos: 5432, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5435, + EndPos: 5437, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5435, + EndPos: 5437, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5441, + EndPos: 5450, + }, + }, + Expr: &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5441, + EndPos: 5449, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5441, + EndPos: 5443, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5441, + EndPos: 5443, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5447, + EndPos: 5449, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5447, + EndPos: 5449, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5453, + EndPos: 5463, + }, + }, + Expr: &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5453, + EndPos: 5462, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5453, + EndPos: 5455, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5453, + EndPos: 5455, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5460, + EndPos: 5462, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 293, + EndLine: 293, + StartPos: 5460, + EndPos: 5462, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5466, + EndPos: 5474, + }, + }, + Expr: &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5466, + EndPos: 5473, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5466, + EndPos: 5468, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5466, + EndPos: 5468, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5471, + EndPos: 5473, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5471, + EndPos: 5473, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5477, + EndPos: 5486, + }, + }, + Expr: &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5477, + EndPos: 5485, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5477, + EndPos: 5479, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5477, + EndPos: 5479, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5483, + EndPos: 5485, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5483, + EndPos: 5485, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5489, + EndPos: 5498, + }, + }, + Expr: &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5489, + EndPos: 5497, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5489, + EndPos: 5491, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5489, + EndPos: 5491, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5495, + EndPos: 5497, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5495, + EndPos: 5497, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5501, + EndPos: 5510, + }, + }, + Expr: &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5501, + EndPos: 5509, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5501, + EndPos: 5503, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5501, + EndPos: 5503, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5507, + EndPos: 5509, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5507, + EndPos: 5509, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5513, + EndPos: 5522, + }, + }, + Expr: &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5513, + EndPos: 5521, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5513, + EndPos: 5515, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5513, + EndPos: 5515, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5519, + EndPos: 5521, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5519, + EndPos: 5521, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5525, + EndPos: 5533, + }, + }, + Expr: &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5525, + EndPos: 5532, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5525, + EndPos: 5527, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5525, + EndPos: 5527, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5530, + EndPos: 5532, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5530, + EndPos: 5532, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5536, + EndPos: 5546, + }, + }, + Expr: &ast.ExprBinarySpaceship{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5536, + EndPos: 5545, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5536, + EndPos: 5538, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5536, + EndPos: 5538, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5543, + EndPos: 5545, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5543, + EndPos: 5545, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5550, + EndPos: 5559, + }, + }, + Expr: &ast.ExprAssignReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5550, + EndPos: 5558, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5550, + EndPos: 5552, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5550, + EndPos: 5552, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5556, + EndPos: 5558, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5556, + EndPos: 5558, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5562, + EndPos: 5570, + }, + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5562, + EndPos: 5569, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5562, + EndPos: 5564, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5562, + EndPos: 5564, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5567, + EndPos: 5569, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5567, + EndPos: 5569, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5573, + EndPos: 5582, + }, + }, + Expr: &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5573, + EndPos: 5581, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5573, + EndPos: 5575, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5573, + EndPos: 5575, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5579, + EndPos: 5581, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5579, + EndPos: 5581, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5585, + EndPos: 5594, + }, + }, + Expr: &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5585, + EndPos: 5593, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5585, + EndPos: 5587, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5585, + EndPos: 5587, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5591, + EndPos: 5593, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5591, + EndPos: 5593, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5597, + EndPos: 5606, + }, + }, + Expr: &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5597, + EndPos: 5605, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5597, + EndPos: 5599, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5597, + EndPos: 5599, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5603, + EndPos: 5605, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5603, + EndPos: 5605, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5609, + EndPos: 5618, + }, + }, + Expr: &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5609, + EndPos: 5617, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5609, + EndPos: 5611, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5609, + EndPos: 5611, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5615, + EndPos: 5617, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5615, + EndPos: 5617, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5621, + EndPos: 5630, + }, + }, + Expr: &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5621, + EndPos: 5629, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5621, + EndPos: 5623, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5621, + EndPos: 5623, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5627, + EndPos: 5629, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5627, + EndPos: 5629, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5633, + EndPos: 5642, + }, + }, + Expr: &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5633, + EndPos: 5641, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5633, + EndPos: 5635, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5633, + EndPos: 5635, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5639, + EndPos: 5641, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5639, + EndPos: 5641, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5645, + EndPos: 5654, + }, + }, + Expr: &ast.ExprAssignMod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5645, + EndPos: 5653, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5645, + EndPos: 5647, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5645, + EndPos: 5647, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5651, + EndPos: 5653, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 310, + EndLine: 310, + StartPos: 5651, + EndPos: 5653, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5657, + EndPos: 5666, + }, + }, + Expr: &ast.ExprAssignMul{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5657, + EndPos: 5665, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5657, + EndPos: 5659, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5657, + EndPos: 5659, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5663, + EndPos: 5665, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 311, + EndLine: 311, + StartPos: 5663, + EndPos: 5665, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5669, + EndPos: 5678, + }, + }, + Expr: &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5669, + EndPos: 5677, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5669, + EndPos: 5671, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5669, + EndPos: 5671, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5675, + EndPos: 5677, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5675, + EndPos: 5677, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5681, + EndPos: 5691, + }, + }, + Expr: &ast.ExprAssignPow{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5681, + EndPos: 5690, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5681, + EndPos: 5683, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5681, + EndPos: 5683, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5688, + EndPos: 5690, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5688, + EndPos: 5690, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5694, + EndPos: 5704, + }, + }, + Expr: &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5694, + EndPos: 5703, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5694, + EndPos: 5696, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5694, + EndPos: 5696, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5701, + EndPos: 5703, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5701, + EndPos: 5703, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5707, + EndPos: 5717, + }, + }, + Expr: &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5707, + EndPos: 5716, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5707, + EndPos: 5709, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5707, + EndPos: 5709, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5714, + EndPos: 5716, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5714, + EndPos: 5716, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5721, + EndPos: 5760, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5727, + EndPos: 5730, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5732, + EndPos: 5758, + }, + }, + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5748, + EndPos: 5753, + }, + }, + Value: []byte("class"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5732, + EndPos: 5738, + }, + }, + Value: []byte("public"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5756, + EndPos: 5758, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5763, + EndPos: 5774, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5763, + EndPos: 5773, + }, + }, + Function: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5763, + EndPos: 5771, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5764, + EndPos: 5767, + }, + }, + Value: []byte("foo"), + }, + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5768, + EndPos: 5771, + }, + }, + Value: []byte("bar"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5771, + EndPos: 5773, + }, + }, + }, + }, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 326, + StartPos: 5778, + EndPos: 5905, + }, + }, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5787, + EndPos: 5790, + }, + }, + Value: []byte("foo"), + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5791, + EndPos: 5794, + }, + }, + ByRef: true, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5792, + EndPos: 5794, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5792, + EndPos: 5794, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5796, + EndPos: 5801, + }, + }, + ByRef: false, + Variadic: true, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5799, + EndPos: 5801, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5799, + EndPos: 5801, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5830, + EndPos: 5847, + }, + }, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5839, + EndPos: 5842, + }, + }, + Value: []byte("bar"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 323, + EndLine: 323, + StartPos: 5851, + EndPos: 5863, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 323, + EndLine: 323, + StartPos: 5857, + EndPos: 5860, + }, + }, + Value: []byte("Baz"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtTrait{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5867, + EndPos: 5879, + }, + }, + TraitName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5873, + EndPos: 5877, + }, + }, + Value: []byte("Quux"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtInterface{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5883, + EndPos: 5901, + }, + }, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5893, + EndPos: 5898, + }, + }, + Value: []byte("Quuux"), + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5911, + EndPos: 5954, + }, + }, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5920, + EndPos: 5923, + }, + }, + Value: []byte("foo"), + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5924, + EndPos: 5931, + }, + }, + ByRef: true, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5925, + EndPos: 5927, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5925, + EndPos: 5927, + }, + }, + Value: []byte("a"), + }, + }, + DefaultValue: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5930, + EndPos: 5931, + }, + }, + Value: []byte("1"), + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5933, + EndPos: 5942, + }, + }, + ByRef: false, + Variadic: true, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5936, + EndPos: 5938, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5936, + EndPos: 5938, + }, + }, + Value: []byte("b"), + }, + }, + DefaultValue: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5941, + EndPos: 5942, + }, + }, + Value: []byte("1"), + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5944, + EndPos: 5950, + }, + }, + ByRef: false, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5944, + EndPos: 5946, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5944, + EndPos: 5946, + }, + }, + Value: []byte("c"), + }, + }, + DefaultValue: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5949, + EndPos: 5950, + }, + }, + Value: []byte("1"), + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5957, + EndPos: 5995, + }, + }, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5966, + EndPos: 5969, + }, + }, + Value: []byte("foo"), + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5970, + EndPos: 5978, + }, + }, + ByRef: false, + Variadic: false, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5970, + EndPos: 5975, + }, + }, + Value: []byte("array"), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5976, + EndPos: 5978, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5976, + EndPos: 5978, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Parameter{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5980, + EndPos: 5991, + }, + }, + Variadic: false, + ByRef: false, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5980, + EndPos: 5988, + }, + }, + Value: []byte("callable"), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5989, + EndPos: 5991, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5989, + EndPos: 5991, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5998, + EndPos: 6100, + }, + }, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6019, + EndPos: 6022, + }, + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5998, + EndPos: 6006, + }, + }, + Value: []byte("abstract"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6007, + EndPos: 6012, + }, + }, + Value: []byte("final"), + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6025, + EndPos: 6066, + }, + }, + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6060, + EndPos: 6063, + }, + }, + Value: []byte("bar"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6025, + EndPos: 6033, + }, + }, + Value: []byte("abstract"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6034, + EndPos: 6043, + }, + }, + Value: []byte("protected"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6044, + EndPos: 6050, + }, + }, + Value: []byte("static"), + }, + }, + Stmt: &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6065, + EndPos: 6066, + }, + }, + }, + }, + &ast.StmtClassMethod{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6067, + EndPos: 6098, + }, + }, + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6090, + EndPos: 6093, + }, + }, + Value: []byte("baz"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6067, + EndPos: 6072, + }, + }, + Value: []byte("final"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6073, + EndPos: 6080, + }, + }, + Value: []byte("private"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 6096, + EndPos: 6098, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6105, + EndPos: 6119, + }, + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6105, + EndPos: 6118, + }, + }, + Var: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6105, + EndPos: 6112, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6109, + EndPos: 6112, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6109, + EndPos: 6112, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6115, + EndPos: 6118, + }, + }, + Value: []byte("bar"), + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6123, + EndPos: 6134, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6123, + EndPos: 6133, + }, + }, + Function: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6123, + EndPos: 6130, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6127, + EndPos: 6130, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6127, + EndPos: 6130, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6131, + EndPos: 6133, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6137, + EndPos: 6149, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6137, + EndPos: 6148, + }, + }, + Function: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6137, + EndPos: 6146, + }, + }, + Var: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6137, + EndPos: 6143, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6138, + EndPos: 6142, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6138, + EndPos: 6142, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6138, + EndPos: 6142, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6144, + EndPos: 6145, + }, + }, + Value: []byte("0"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6146, + EndPos: 6148, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6152, + EndPos: 6161, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6152, + EndPos: 6160, + }, + }, + Function: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6152, + EndPos: 6158, + }, + }, + Var: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6152, + EndPos: 6155, + }, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6152, + EndPos: 6155, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6152, + EndPos: 6155, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6156, + EndPos: 6157, + }, + }, + Value: []byte("1"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6158, + EndPos: 6160, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6164, + EndPos: 6172, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6164, + EndPos: 6171, + }, + }, + Function: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6164, + EndPos: 6169, + }, + }, + Value: []byte("\"foo\""), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6169, + EndPos: 6171, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6175, + EndPos: 6187, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6175, + EndPos: 6186, + }, + }, + Function: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6175, + EndPos: 6184, + }, + }, + Var: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6175, + EndPos: 6178, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6176, + EndPos: 6177, + }, + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6176, + EndPos: 6177, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + Dim: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6179, + EndPos: 6183, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6179, + EndPos: 6183, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6184, + EndPos: 6186, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6190, + EndPos: 6199, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6190, + EndPos: 6198, + }, + }, + VarName: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6192, + EndPos: 6197, + }, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6192, + EndPos: 6195, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6192, + EndPos: 6195, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6195, + EndPos: 6197, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6203, + EndPos: 6215, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6203, + EndPos: 6214, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6203, + EndPos: 6206, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6203, + EndPos: 6206, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Call: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6208, + EndPos: 6212, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6208, + EndPos: 6212, + }, + }, + Value: []byte("bar"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6212, + EndPos: 6214, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6218, + EndPos: 6235, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6218, + EndPos: 6234, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6218, + EndPos: 6221, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6218, + EndPos: 6221, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Call: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6224, + EndPos: 6231, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6224, + EndPos: 6228, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6224, + EndPos: 6228, + }, + }, + Value: []byte("bar"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6229, + EndPos: 6230, + }, + }, + Value: []byte("0"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6232, + EndPos: 6234, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6241, + EndPos: 6252, + }, + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6241, + EndPos: 6251, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6241, + EndPos: 6245, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6241, + EndPos: 6245, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6247, + EndPos: 6251, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6247, + EndPos: 6251, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6255, + EndPos: 6271, + }, + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6255, + EndPos: 6269, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6255, + EndPos: 6259, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6255, + EndPos: 6259, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6262, + EndPos: 6269, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6262, + EndPos: 6266, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6262, + EndPos: 6266, + }, + }, + Value: []byte("bar"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6267, + EndPos: 6268, + }, + }, + Value: []byte("0"), + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6275, + EndPos: 6297, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6275, + EndPos: 6296, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6276, + EndPos: 6282, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6276, + EndPos: 6277, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6279, + EndPos: 6282, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6280, + EndPos: 6282, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6280, + EndPos: 6282, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6284, + EndPos: 6295, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6284, + EndPos: 6285, + }, + }, + Value: []byte("2"), + }, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6287, + EndPos: 6295, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6292, + EndPos: 6294, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6292, + EndPos: 6294, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6292, + EndPos: 6294, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + }, + }, + &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6301, + EndPos: 6319, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestPhp5Strings(t *testing.T) { + src := ` 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]) + lex.addToken(T_DOC_COMMENT, lex.ts, lex.te) + } else { + lex.addToken(T_COMMENT, lex.ts, lex.te) } } goto st121 tr96: - // line scanner/scanner.rl:187 + // line internal/scanner/scanner.rl:185 (lex.p) = (lex.te) - 1 { base := 10 @@ -3559,7 +3559,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr109: lex.cs = 121 - // line scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:172 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3573,7 +3573,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr125: lex.cs = 121 - // line scanner/scanner.rl:173 + // line internal/scanner/scanner.rl:171 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3586,7 +3586,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr127: - // line scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:357 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3599,7 +3599,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr129: - // line scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:269 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3612,7 +3612,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr140: - // line scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:268 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3625,7 +3625,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr180: - // line scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3633,7 +3633,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr191: - // line scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:346 lex.te = (lex.p) + 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3648,7 +3648,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr225: - // line scanner/scanner.rl:289 + // line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3662,7 +3662,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr228: lex.cs = 121 - // line scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3675,7 +3675,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr229: - // line scanner/scanner.rl:354 + // line internal/scanner/scanner.rl:354 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3685,7 +3685,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr231: - // line scanner/scanner.rl:355 + // line internal/scanner/scanner.rl:355 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3696,25 +3696,25 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr232: - // line scanner/scanner.rl:172 + // line internal/scanner/scanner.rl:170 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st121 tr234: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:172 + // line internal/scanner/scanner.rl:170 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st121 tr238: - // line scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) (lex.p)-- { @@ -3723,7 +3723,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr239: - // line scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:346 lex.te = (lex.p) (lex.p)-- { @@ -3739,7 +3739,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr241: - // line scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { @@ -3753,7 +3753,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr242: - // line scanner/scanner.rl:309 + // line internal/scanner/scanner.rl:307 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3767,7 +3767,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr243: lex.cs = 121 - // line scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:382 lex.te = (lex.p) (lex.p)-- { @@ -3781,27 +3781,27 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr244: - // line scanner/scanner.rl:330 + // line internal/scanner/scanner.rl:328 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + lex.addToken(T_COMMENT, lex.ts, lex.te) } goto st121 tr246: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:330 + // line internal/scanner/scanner.rl:328 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + lex.addToken(T_COMMENT, lex.ts, lex.te) } goto st121 tr250: - // line scanner/scanner.rl:356 + // line internal/scanner/scanner.rl:356 lex.te = (lex.p) (lex.p)-- { @@ -3815,7 +3815,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr251: - // line scanner/scanner.rl:303 + // line internal/scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3828,7 +3828,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr252: - // line scanner/scanner.rl:292 + // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3841,7 +3841,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr253: - // line scanner/scanner.rl:294 + // line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3854,7 +3854,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr255: - // line scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3867,7 +3867,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr256: - // line scanner/scanner.rl:316 + // line internal/scanner/scanner.rl:314 lex.te = (lex.p) (lex.p)-- { @@ -3881,7 +3881,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr257: - // line scanner/scanner.rl:298 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3894,7 +3894,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr258: - // line scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:303 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3907,7 +3907,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr259: - // line scanner/scanner.rl:300 + // line internal/scanner/scanner.rl:298 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3920,7 +3920,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr260: - // line scanner/scanner.rl:304 + // line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3933,7 +3933,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr261: - // line scanner/scanner.rl:301 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3947,7 +3947,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr262: lex.cs = 121 - // line scanner/scanner.rl:359 + // line internal/scanner/scanner.rl:359 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3960,7 +3960,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr264: - // line scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3973,7 +3973,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr265: - // line scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:174 lex.te = (lex.p) (lex.p)-- { @@ -3987,7 +3987,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr268: - // line scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4000,7 +4000,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr269: - // line scanner/scanner.rl:187 + // line internal/scanner/scanner.rl:185 lex.te = (lex.p) (lex.p)-- { @@ -4032,7 +4032,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr274: - // line scanner/scanner.rl:177 + // line internal/scanner/scanner.rl:175 lex.te = (lex.p) (lex.p)-- { @@ -4059,7 +4059,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr275: - // line scanner/scanner.rl:202 + // line internal/scanner/scanner.rl:200 lex.te = (lex.p) (lex.p)-- { @@ -4086,7 +4086,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr276: - // line scanner/scanner.rl:291 + // line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4100,7 +4100,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr277: lex.cs = 121 - // line scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:172 lex.te = (lex.p) (lex.p)-- { @@ -4115,9 +4115,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr279: lex.cs = 121 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:172 lex.te = (lex.p) (lex.p)-- { @@ -4131,7 +4131,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr282: - // line scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4144,7 +4144,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr283: - // line scanner/scanner.rl:317 + // line internal/scanner/scanner.rl:315 lex.te = (lex.p) (lex.p)-- { @@ -4158,7 +4158,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr284: - // line scanner/scanner.rl:312 + // line internal/scanner/scanner.rl:310 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4172,9 +4172,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr285: lex.cs = 121 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:367 + // line internal/scanner/scanner.rl:367 lex.te = (lex.p) (lex.p)-- { @@ -4196,7 +4196,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr286: - // line scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:313 lex.te = (lex.p) (lex.p)-- { @@ -4210,7 +4210,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr287: - // line scanner/scanner.rl:307 + // line internal/scanner/scanner.rl:305 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4223,7 +4223,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr289: - // line scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:304 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4236,7 +4236,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr290: - // line scanner/scanner.rl:310 + // line internal/scanner/scanner.rl:308 lex.te = (lex.p) (lex.p)-- { @@ -4250,7 +4250,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr291: - // line scanner/scanner.rl:311 + // line internal/scanner/scanner.rl:309 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4263,7 +4263,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr292: - // line scanner/scanner.rl:314 + // line internal/scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4276,7 +4276,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr294: - // line scanner/scanner.rl:318 + // line internal/scanner/scanner.rl:316 lex.te = (lex.p) (lex.p)-- { @@ -4290,7 +4290,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr295: - // line scanner/scanner.rl:313 + // line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4304,7 +4304,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr298: lex.cs = 121 - // line scanner/scanner.rl:173 + // line internal/scanner/scanner.rl:171 lex.te = (lex.p) (lex.p)-- { @@ -4319,9 +4319,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr300: lex.cs = 121 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:173 + // line internal/scanner/scanner.rl:171 lex.te = (lex.p) (lex.p)-- { @@ -4335,7 +4335,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr301: - // line scanner/scanner.rl:319 + // line internal/scanner/scanner.rl:317 lex.te = (lex.p) (lex.p)-- { @@ -4349,7 +4349,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr302: - // line scanner/scanner.rl:320 + // line internal/scanner/scanner.rl:318 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4362,7 +4362,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr303: - // line scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:357 lex.te = (lex.p) (lex.p)-- { @@ -4376,7 +4376,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr383: - // line scanner/scanner.rl:228 + // line internal/scanner/scanner.rl:226 lex.te = (lex.p) (lex.p)-- { @@ -4390,7 +4390,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr403: - // line scanner/scanner.rl:232 + // line internal/scanner/scanner.rl:230 lex.te = (lex.p) (lex.p)-- { @@ -4404,7 +4404,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr432: - // line scanner/scanner.rl:240 + // line internal/scanner/scanner.rl:238 lex.te = (lex.p) (lex.p)-- { @@ -4418,7 +4418,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr436: - // line scanner/scanner.rl:242 + // line internal/scanner/scanner.rl:240 lex.te = (lex.p) (lex.p)-- { @@ -4432,7 +4432,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr468: - // line scanner/scanner.rl:272 + // line internal/scanner/scanner.rl:270 lex.te = (lex.p) (lex.p)-- { @@ -4446,7 +4446,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr536: - // line scanner/scanner.rl:274 + // line internal/scanner/scanner.rl:272 lex.te = (lex.p) (lex.p)-- { @@ -4460,7 +4460,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr582: - // line scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:269 lex.te = (lex.p) (lex.p)-- { @@ -4474,7 +4474,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr587: - // line scanner/scanner.rl:302 + // line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4487,7 +4487,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr661: - // line scanner/scanner.rl:295 + // line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4500,7 +4500,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr662: - // line scanner/scanner.rl:293 + // line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4523,7 +4523,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:3387 + // line internal/scanner/scanner.go:3387 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4708,7 +4708,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st122 st122: @@ -4716,7 +4716,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof122 } st_case_122: - // line scanner/scanner.go:3580 + // line internal/scanner/scanner.go:3580 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4738,7 +4738,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st123 st123: @@ -4746,7 +4746,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof123 } st_case_123: - // line scanner/scanner.go:3610 + // line internal/scanner/scanner.go:3610 switch lex.data[(lex.p)] { case 10: goto tr236 @@ -4760,7 +4760,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr234 tr237: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st6 st6: @@ -4768,7 +4768,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof6 } st_case_6: - // line scanner/scanner.go:3632 + // line internal/scanner/scanner.go:3632 if lex.data[(lex.p)] == 10 { goto tr10 } @@ -4804,7 +4804,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:382 lex.act = 140 goto st127 st127: @@ -4812,7 +4812,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof127 } st_case_127: - // line scanner/scanner.go:3676 + // line internal/scanner/scanner.go:3676 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4829,7 +4829,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st7 tr13: - // line scanner/scanner.rl:50 + // line internal/scanner/scanner.rl:48 if lex.data[lex.p] == '\n' { lex.NewLines.Append(lex.p) @@ -4845,7 +4845,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof7 } st_case_7: - // line scanner/scanner.go:3709 + // line internal/scanner/scanner.go:3709 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4922,7 +4922,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st7 tr247: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st128 st128: @@ -4930,7 +4930,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof128 } st_case_128: - // line scanner/scanner.go:3794 + // line internal/scanner/scanner.go:3794 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -4977,7 +4977,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr244 tr248: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st129 st129: @@ -4985,7 +4985,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof129 } st_case_129: - // line scanner/scanner.go:3849 + // line internal/scanner/scanner.go:3849 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5109,7 +5109,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof134 } st_case_134: - // line scanner/scanner.go:3973 + // line internal/scanner/scanner.go:3973 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5122,7 +5122,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st11 tr20: - // line scanner/scanner.rl:50 + // line internal/scanner/scanner.rl:48 if lex.data[lex.p] == '\n' { lex.NewLines.Append(lex.p) @@ -5138,7 +5138,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof11 } st_case_11: - // line scanner/scanner.go:4002 + // line internal/scanner/scanner.go:4002 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5172,7 +5172,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof135 } st_case_135: - // line scanner/scanner.go:4036 + // line internal/scanner/scanner.go:4036 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6020,7 +6020,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof140 } st_case_140: - // line scanner/scanner.go:4884 + // line internal/scanner/scanner.go:4884 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6044,7 +6044,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:174 lex.act = 10 goto st141 st141: @@ -6052,7 +6052,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof141 } st_case_141: - // line scanner/scanner.go:4916 + // line internal/scanner/scanner.go:4916 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6093,7 +6093,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:174 lex.act = 10 goto st142 st142: @@ -6101,7 +6101,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof142 } st_case_142: - // line scanner/scanner.go:4965 + // line internal/scanner/scanner.go:4965 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6128,7 +6128,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof143 } st_case_143: - // line scanner/scanner.go:4992 + // line internal/scanner/scanner.go:4992 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6139,7 +6139,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr239 tr92: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st71 st71: @@ -6147,7 +6147,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof71 } st_case_71: - // line scanner/scanner.go:5011 + // line internal/scanner/scanner.go:5011 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6156,7 +6156,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st71 tr93: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st72 st72: @@ -6164,7 +6164,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof72 } st_case_72: - // line scanner/scanner.go:5028 + // line internal/scanner/scanner.go:5028 switch lex.data[(lex.p)] { case 10: goto tr93 @@ -6173,7 +6173,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr92 tr94: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st73 st73: @@ -6181,7 +6181,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof73 } st_case_73: - // line scanner/scanner.go:5045 + // line internal/scanner/scanner.go:5045 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6195,7 +6195,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:187 + // line internal/scanner/scanner.rl:185 lex.act = 12 goto st144 st144: @@ -6203,7 +6203,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof144 } st_case_144: - // line scanner/scanner.go:5067 + // line internal/scanner/scanner.go:5067 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6226,7 +6226,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:174 lex.act = 10 goto st145 st145: @@ -6234,7 +6234,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof145 } st_case_145: - // line scanner/scanner.go:5098 + // line internal/scanner/scanner.go:5098 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6249,7 +6249,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:187 + // line internal/scanner/scanner.rl:185 lex.act = 12 goto st146 st146: @@ -6257,7 +6257,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof146 } st_case_146: - // line scanner/scanner.go:5121 + // line internal/scanner/scanner.go:5121 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6294,7 +6294,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:177 + // line internal/scanner/scanner.rl:175 lex.act = 11 goto st147 st147: @@ -6302,7 +6302,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof147 } st_case_147: - // line scanner/scanner.go:5166 + // line internal/scanner/scanner.go:5166 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6332,7 +6332,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:202 + // line internal/scanner/scanner.rl:200 lex.act = 13 goto st148 st148: @@ -6340,7 +6340,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof148 } st_case_148: - // line scanner/scanner.go:5204 + // line internal/scanner/scanner.go:5204 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6376,7 +6376,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof150 } st_case_150: - // line scanner/scanner.go:5240 + // line internal/scanner/scanner.go:5240 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6392,7 +6392,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr239 tr104: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st77 st77: @@ -6400,7 +6400,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof77 } st_case_77: - // line scanner/scanner.go:5264 + // line internal/scanner/scanner.go:5264 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6416,7 +6416,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr22 tr105: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st78 st78: @@ -6424,7 +6424,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof78 } st_case_78: - // line scanner/scanner.go:5288 + // line internal/scanner/scanner.go:5288 switch lex.data[(lex.p)] { case 10: goto tr105 @@ -6440,7 +6440,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr22 tr106: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st79 st79: @@ -6448,13 +6448,13 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof79 } st_case_79: - // line scanner/scanner.go:5312 + // line internal/scanner/scanner.go:5312 if lex.data[(lex.p)] == 10 { goto st78 } goto tr22 tr107: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st80 st80: @@ -6462,7 +6462,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof80 } st_case_80: - // line scanner/scanner.go:5326 + // line internal/scanner/scanner.go:5326 if lex.data[(lex.p)] == 62 { goto tr108 } @@ -6477,7 +6477,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof151 } st_case_151: - // line scanner/scanner.go:5341 + // line internal/scanner/scanner.go:5341 switch lex.data[(lex.p)] { case 10: goto st152 @@ -6518,7 +6518,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:317 + // line internal/scanner/scanner.rl:315 lex.act = 118 goto st154 st154: @@ -6526,7 +6526,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof154 } st_case_154: - // line scanner/scanner.go:5390 + // line internal/scanner/scanner.go:5390 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6586,7 +6586,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr115 tr115: - // line scanner/scanner.rl:47 + // line internal/scanner/scanner.rl:45 lblStart = lex.p goto st84 st84: @@ -6594,7 +6594,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof84 } st_case_84: - // line scanner/scanner.go:5458 + // line internal/scanner/scanner.go:5458 switch lex.data[(lex.p)] { case 34: goto tr116 @@ -6620,7 +6620,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st84 tr116: - // line scanner/scanner.rl:48 + // line internal/scanner/scanner.rl:46 lblEnd = lex.p goto st85 st85: @@ -6628,7 +6628,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof85 } st_case_85: - // line scanner/scanner.go:5492 + // line internal/scanner/scanner.go:5492 switch lex.data[(lex.p)] { case 10: goto st155 @@ -6637,7 +6637,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr11 tr122: - // line scanner/scanner.rl:48 + // line internal/scanner/scanner.rl:46 lblEnd = lex.p goto st155 st155: @@ -6645,10 +6645,10 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof155 } st_case_155: - // line scanner/scanner.go:5509 + // line internal/scanner/scanner.go:5509 goto tr285 tr123: - // line scanner/scanner.rl:48 + // line internal/scanner/scanner.rl:46 lblEnd = lex.p goto st86 st86: @@ -6656,7 +6656,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof86 } st_case_86: - // line scanner/scanner.go:5520 + // line internal/scanner/scanner.go:5520 if lex.data[(lex.p)] == 10 { goto st155 } @@ -6683,7 +6683,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr120 tr120: - // line scanner/scanner.rl:47 + // line internal/scanner/scanner.rl:45 lblStart = lex.p goto st88 st88: @@ -6691,7 +6691,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof88 } st_case_88: - // line scanner/scanner.go:5555 + // line internal/scanner/scanner.go:5555 switch lex.data[(lex.p)] { case 39: goto tr116 @@ -6717,7 +6717,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st88 tr114: - // line scanner/scanner.rl:47 + // line internal/scanner/scanner.rl:45 lblStart = lex.p goto st89 st89: @@ -6725,7 +6725,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof89 } st_case_89: - // line scanner/scanner.go:5589 + // line internal/scanner/scanner.go:5589 switch lex.data[(lex.p)] { case 10: goto tr122 @@ -6825,7 +6825,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof162 } st_case_162: - // line scanner/scanner.go:5689 + // line internal/scanner/scanner.go:5689 switch lex.data[(lex.p)] { case 10: goto st163 @@ -6904,490 +6904,490 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:357 lex.act = 135 goto st166 tr307: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:215 + // line internal/scanner/scanner.rl:213 lex.act = 16 goto st166 tr313: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:213 + // line internal/scanner/scanner.rl:211 lex.act = 14 goto st166 tr314: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:286 + // line internal/scanner/scanner.rl:284 lex.act = 87 goto st166 tr317: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:214 + // line internal/scanner/scanner.rl:212 lex.act = 15 goto st166 tr322: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:216 + // line internal/scanner/scanner.rl:214 lex.act = 17 goto st166 tr334: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:217 + // line internal/scanner/scanner.rl:215 lex.act = 18 goto st166 tr335: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:218 + // line internal/scanner/scanner.rl:216 lex.act = 19 goto st166 tr337: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:219 + // line internal/scanner/scanner.rl:217 lex.act = 20 goto st166 tr344: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:244 + // line internal/scanner/scanner.rl:242 lex.act = 45 goto st166 tr348: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:220 + // line internal/scanner/scanner.rl:218 lex.act = 21 goto st166 tr350: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:221 + // line internal/scanner/scanner.rl:219 lex.act = 22 goto st166 tr354: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:222 + // line internal/scanner/scanner.rl:220 lex.act = 23 goto st166 tr358: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:223 + // line internal/scanner/scanner.rl:221 lex.act = 24 goto st166 tr361: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:226 + // line internal/scanner/scanner.rl:224 lex.act = 27 goto st166 tr367: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:224 + // line internal/scanner/scanner.rl:222 lex.act = 25 goto st166 tr371: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:225 + // line internal/scanner/scanner.rl:223 lex.act = 26 goto st166 tr372: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:238 + // line internal/scanner/scanner.rl:236 lex.act = 39 goto st166 tr380: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:227 + // line internal/scanner/scanner.rl:225 lex.act = 28 goto st166 tr385: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:229 + // line internal/scanner/scanner.rl:227 lex.act = 30 goto st166 tr388: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:230 + // line internal/scanner/scanner.rl:228 lex.act = 31 goto st166 tr400: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:231 + // line internal/scanner/scanner.rl:229 lex.act = 32 goto st166 tr407: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:233 + // line internal/scanner/scanner.rl:231 lex.act = 34 goto st166 tr408: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:234 + // line internal/scanner/scanner.rl:232 lex.act = 35 goto st166 tr413: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:235 + // line internal/scanner/scanner.rl:233 lex.act = 36 goto st166 tr417: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:236 + // line internal/scanner/scanner.rl:234 lex.act = 37 goto st166 tr419: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:237 + // line internal/scanner/scanner.rl:235 lex.act = 38 goto st166 tr425: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:239 + // line internal/scanner/scanner.rl:237 lex.act = 40 goto st166 tr427: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:245 + // line internal/scanner/scanner.rl:243 lex.act = 46 goto st166 tr434: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:241 + // line internal/scanner/scanner.rl:239 lex.act = 42 goto st166 tr440: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:243 + // line internal/scanner/scanner.rl:241 lex.act = 44 goto st166 tr446: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:246 + // line internal/scanner/scanner.rl:244 lex.act = 47 goto st166 tr448: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:247 + // line internal/scanner/scanner.rl:245 lex.act = 48 goto st166 tr449: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:248 + // line internal/scanner/scanner.rl:246 lex.act = 49 goto st166 tr460: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:250 + // line internal/scanner/scanner.rl:248 lex.act = 51 goto st166 tr473: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:273 + // line internal/scanner/scanner.rl:271 lex.act = 74 goto st166 tr481: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:251 + // line internal/scanner/scanner.rl:249 lex.act = 52 goto st166 tr485: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:252 + // line internal/scanner/scanner.rl:250 lex.act = 53 goto st166 tr491: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:253 + // line internal/scanner/scanner.rl:251 lex.act = 54 goto st166 tr494: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:249 + // line internal/scanner/scanner.rl:247 lex.act = 50 goto st166 tr497: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:254 + // line internal/scanner/scanner.rl:252 lex.act = 55 goto st166 tr506: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:255 + // line internal/scanner/scanner.rl:253 lex.act = 56 goto st166 tr507: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:285 + // line internal/scanner/scanner.rl:283 lex.act = 86 goto st166 tr508: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:287 + // line internal/scanner/scanner.rl:285 lex.act = 88 goto st166 tr515: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:256 lex.act = 59 goto st166 tr518: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:256 + // line internal/scanner/scanner.rl:254 lex.act = 57 goto st166 tr524: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:257 lex.act = 60 goto st166 tr528: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:257 + // line internal/scanner/scanner.rl:255 lex.act = 58 goto st166 tr541: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:275 + // line internal/scanner/scanner.rl:273 lex.act = 76 goto st166 tr544: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:258 lex.act = 61 goto st166 tr550: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:259 lex.act = 62 goto st166 tr554: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:260 lex.act = 63 goto st166 tr559: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:263 + // line internal/scanner/scanner.rl:261 lex.act = 64 goto st166 tr561: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:265 + // line internal/scanner/scanner.rl:263 lex.act = 66 goto st166 tr563: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:264 + // line internal/scanner/scanner.rl:262 lex.act = 65 goto st166 tr568: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:266 + // line internal/scanner/scanner.rl:264 lex.act = 67 goto st166 tr569: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:267 + // line internal/scanner/scanner.rl:265 lex.act = 68 goto st166 tr571: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:266 lex.act = 69 goto st166 tr575: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:267 lex.act = 70 goto st166 tr577: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:288 + // line internal/scanner/scanner.rl:286 lex.act = 89 goto st166 tr586: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:268 lex.act = 71 goto st166 tr602: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:276 + // line internal/scanner/scanner.rl:274 lex.act = 77 goto st166 tr606: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:277 + // line internal/scanner/scanner.rl:275 lex.act = 78 goto st166 tr612: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:278 + // line internal/scanner/scanner.rl:276 lex.act = 79 goto st166 tr620: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:279 + // line internal/scanner/scanner.rl:277 lex.act = 80 goto st166 tr632: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:284 + // line internal/scanner/scanner.rl:282 lex.act = 85 goto st166 tr637: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:280 + // line internal/scanner/scanner.rl:278 lex.act = 81 goto st166 tr644: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:282 + // line internal/scanner/scanner.rl:280 lex.act = 83 goto st166 tr654: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:281 + // line internal/scanner/scanner.rl:279 lex.act = 82 goto st166 tr660: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:283 + // line internal/scanner/scanner.rl:281 lex.act = 84 goto st166 st166: @@ -7395,7 +7395,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof166 } st_case_166: - // line scanner/scanner.go:6259 + // line internal/scanner/scanner.go:6259 if lex.data[(lex.p)] == 96 { goto tr11 } @@ -7731,7 +7731,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:357 lex.act = 135 goto st177 st177: @@ -7739,7 +7739,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof177 } st_case_177: - // line scanner/scanner.go:6603 + // line internal/scanner/scanner.go:6603 switch lex.data[(lex.p)] { case 34: goto st7 @@ -14733,7 +14733,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof397 } st_case_397: - // line scanner/scanner.go:13597 + // line internal/scanner/scanner.go:13597 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14776,7 +14776,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr211 tr134: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st93 st93: @@ -14784,7 +14784,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof93 } st_case_93: - // line scanner/scanner.go:13648 + // line internal/scanner/scanner.go:13648 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14802,7 +14802,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr129 tr135: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st94 st94: @@ -14810,7 +14810,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof94 } st_case_94: - // line scanner/scanner.go:13674 + // line internal/scanner/scanner.go:13674 switch lex.data[(lex.p)] { case 10: goto tr135 @@ -14828,7 +14828,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr129 tr136: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st95 st95: @@ -14836,13 +14836,13 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof95 } st_case_95: - // line scanner/scanner.go:13700 + // line internal/scanner/scanner.go:13700 if lex.data[(lex.p)] == 10 { goto st94 } goto tr129 tr137: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st96 st96: @@ -14850,7 +14850,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof96 } st_case_96: - // line scanner/scanner.go:13714 + // line internal/scanner/scanner.go:13714 switch lex.data[(lex.p)] { case 82: goto st97 @@ -16954,14 +16954,14 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr239 tr141: - // line scanner/scanner.rl:391 + // line internal/scanner/scanner.rl:391 (lex.p) = (lex.te) - 1 { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr663: - // line scanner/scanner.rl:394 + // line internal/scanner/scanner.rl:394 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -16971,25 +16971,25 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st468 tr668: - // line scanner/scanner.rl:391 + // line internal/scanner/scanner.rl:391 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr670: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:391 + // line internal/scanner/scanner.rl:391 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr674: - // line scanner/scanner.rl:394 + // line internal/scanner/scanner.rl:394 lex.te = (lex.p) (lex.p)-- { @@ -17000,7 +17000,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st468 tr675: - // line scanner/scanner.rl:392 + // line internal/scanner/scanner.rl:392 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17014,7 +17014,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st468 tr676: lex.cs = 468 - // line scanner/scanner.rl:393 + // line internal/scanner/scanner.rl:393 lex.te = (lex.p) (lex.p)-- { @@ -17038,7 +17038,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:15870 + // line internal/scanner/scanner.go:15870 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17083,7 +17083,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st469 st469: @@ -17091,7 +17091,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof469 } st_case_469: - // line scanner/scanner.go:15923 + // line internal/scanner/scanner.go:15923 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17113,7 +17113,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st470 st470: @@ -17121,7 +17121,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof470 } st_case_470: - // line scanner/scanner.go:15953 + // line internal/scanner/scanner.go:15953 switch lex.data[(lex.p)] { case 10: goto tr672 @@ -17135,7 +17135,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr670 tr673: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st99 st99: @@ -17143,7 +17143,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof99 } st_case_99: - // line scanner/scanner.go:15975 + // line internal/scanner/scanner.go:15975 if lex.data[(lex.p)] == 10 { goto tr142 } @@ -17219,9 +17219,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr680: lex.cs = 474 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:398 lex.te = (lex.p) (lex.p)-- { @@ -17248,7 +17248,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:16069 + // line internal/scanner/scanner.go:16069 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17302,16 +17302,16 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:398 lex.act = 146 goto st475 tr681: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:398 lex.act = 146 goto st475 st475: @@ -17319,7 +17319,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof475 } st_case_475: - // line scanner/scanner.go:16140 + // line internal/scanner/scanner.go:16140 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17366,7 +17366,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr679 tr682: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st476 st476: @@ -17374,7 +17374,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof476 } st_case_476: - // line scanner/scanner.go:16195 + // line internal/scanner/scanner.go:16195 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17421,7 +17421,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr680 tr143: - // line scanner/scanner.rl:407 + // line internal/scanner/scanner.rl:407 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17432,7 +17432,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st477 tr689: - // line scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:409 lex.te = (lex.p) (lex.p)-- { @@ -17448,7 +17448,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st477 tr690: - // line scanner/scanner.rl:408 + // line internal/scanner/scanner.rl:408 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17498,9 +17498,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr692: lex.cs = 477 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:410 lex.te = (lex.p) (lex.p)-- { @@ -17518,7 +17518,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr696: lex.cs = 477 - // line scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:410 lex.te = (lex.p) (lex.p)-- { @@ -17545,7 +17545,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:16324 + // line internal/scanner/scanner.go:16324 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17622,30 +17622,30 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:410 lex.act = 150 goto st479 tr693: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:410 lex.act = 150 goto st479 tr695: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:408 + // line internal/scanner/scanner.rl:408 lex.act = 148 goto st479 tr697: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:407 + // line internal/scanner/scanner.rl:407 lex.act = 147 goto st479 st479: @@ -17653,7 +17653,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof479 } st_case_479: - // line scanner/scanner.go:16432 + // line internal/scanner/scanner.go:16432 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17700,7 +17700,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr691 tr694: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st480 st480: @@ -17708,7 +17708,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof480 } st_case_480: - // line scanner/scanner.go:16487 + // line internal/scanner/scanner.go:16487 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17865,7 +17865,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr696 tr145: - // line scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:422 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17877,7 +17877,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st483 tr699: lex.cs = 483 - // line scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17890,7 +17890,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr706: - // line scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) (lex.p)-- { @@ -17906,7 +17906,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st483 tr707: - // line scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:423 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17962,9 +17962,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr709: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) (lex.p)-- { @@ -17978,7 +17978,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st483 tr713: - // line scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) (lex.p)-- { @@ -18002,7 +18002,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:16721 + // line internal/scanner/scanner.go:16721 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18083,37 +18083,37 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:426 lex.act = 155 goto st485 tr704: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:425 lex.act = 154 goto st485 tr710: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:426 lex.act = 155 goto st485 tr712: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:423 lex.act = 152 goto st485 tr714: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:422 lex.act = 151 goto st485 st485: @@ -18121,7 +18121,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof485 } st_case_485: - // line scanner/scanner.go:16840 + // line internal/scanner/scanner.go:16840 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18168,7 +18168,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr708 tr711: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st486 st486: @@ -18176,7 +18176,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof486 } st_case_486: - // line scanner/scanner.go:16895 + // line internal/scanner/scanner.go:16895 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18333,7 +18333,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr713 tr146: - // line scanner/scanner.rl:434 + // line internal/scanner/scanner.rl:434 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18345,7 +18345,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st489 tr715: lex.cs = 489 - // line scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:437 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18358,7 +18358,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr723: - // line scanner/scanner.rl:436 + // line internal/scanner/scanner.rl:436 lex.te = (lex.p) (lex.p)-- { @@ -18374,7 +18374,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st489 tr724: - // line scanner/scanner.rl:435 + // line internal/scanner/scanner.rl:435 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18430,9 +18430,9 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr726: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:438 lex.te = (lex.p) (lex.p)-- { @@ -18446,7 +18446,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st489 tr730: - // line scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:438 lex.te = (lex.p) (lex.p)-- { @@ -18470,7 +18470,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:17129 + // line internal/scanner/scanner.go:17129 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18551,37 +18551,37 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:438 lex.act = 160 goto st491 tr720: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:437 lex.act = 159 goto st491 tr727: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:438 lex.act = 160 goto st491 tr729: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:435 + // line internal/scanner/scanner.rl:435 lex.act = 157 goto st491 tr731: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:434 + // line internal/scanner/scanner.rl:434 lex.act = 156 goto st491 st491: @@ -18589,7 +18589,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof491 } st_case_491: - // line scanner/scanner.go:17248 + // line internal/scanner/scanner.go:17248 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18636,7 +18636,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr725 tr728: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st492 st492: @@ -18644,7 +18644,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof492 } st_case_492: - // line scanner/scanner.go:17303 + // line internal/scanner/scanner.go:17303 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18802,7 +18802,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto tr730 tr733: lex.cs = 495 - // line scanner/scanner.rl:446 + // line internal/scanner/scanner.rl:446 lex.te = (lex.p) (lex.p)-- { @@ -18826,7 +18826,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:17482 + // line internal/scanner/scanner.go:17482 if lex.data[(lex.p)] == 96 { goto st0 } @@ -18870,7 +18870,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st496 tr147: - // line scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:465 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -18882,7 +18882,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr148: - // line scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18896,7 +18896,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr734: - // line scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:465 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18908,7 +18908,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr738: - // line scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18918,7 +18918,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr739: - // line scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:465 lex.te = (lex.p) (lex.p)-- { @@ -18931,7 +18931,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr741: - // line scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) (lex.p)-- { @@ -18945,7 +18945,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr743: - // line scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) (lex.p)-- { @@ -18969,7 +18969,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:17574 + // line internal/scanner/scanner.go:17574 switch lex.data[(lex.p)] { case 36: goto st498 @@ -19050,7 +19050,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof500 } st_case_500: - // line scanner/scanner.go:17655 + // line internal/scanner/scanner.go:17655 if lex.data[(lex.p)] == 62 { goto st103 } @@ -19103,7 +19103,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st501 tr149: - // line scanner/scanner.rl:469 + // line internal/scanner/scanner.rl:469 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -19116,7 +19116,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr744: - // line scanner/scanner.rl:475 + // line internal/scanner/scanner.rl:475 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -19124,7 +19124,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr745: - // line scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19134,7 +19134,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr748: - // line scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19147,7 +19147,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr752: - // line scanner/scanner.rl:474 + // line internal/scanner/scanner.rl:474 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19157,9 +19157,9 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr753: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) (lex.p)-- { @@ -19170,7 +19170,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr754: - // line scanner/scanner.rl:475 + // line internal/scanner/scanner.rl:475 lex.te = (lex.p) (lex.p)-- { @@ -19179,7 +19179,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr755: - // line scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) (lex.p)-- { @@ -19193,7 +19193,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr757: - // line scanner/scanner.rl:470 + // line internal/scanner/scanner.rl:470 lex.te = (lex.p) (lex.p)-- { @@ -19207,7 +19207,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr758: - // line scanner/scanner.rl:469 + // line internal/scanner/scanner.rl:469 lex.te = (lex.p) (lex.p)-- { @@ -19221,7 +19221,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr762: - // line scanner/scanner.rl:471 + // line internal/scanner/scanner.rl:471 lex.te = (lex.p) (lex.p)-- { @@ -19245,7 +19245,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:17787 + // line internal/scanner/scanner.go:17787 switch lex.data[(lex.p)] { case 10: goto st503 @@ -19382,7 +19382,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof507 } st_case_507: - // line scanner/scanner.go:17924 + // line internal/scanner/scanner.go:17924 switch lex.data[(lex.p)] { case 95: goto st104 @@ -19405,7 +19405,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof508 } st_case_508: - // line scanner/scanner.go:17947 + // line internal/scanner/scanner.go:17947 if lex.data[(lex.p)] == 95 { goto st104 } @@ -19441,7 +19441,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof509 } st_case_509: - // line scanner/scanner.go:17983 + // line internal/scanner/scanner.go:17983 if lex.data[(lex.p)] == 95 { goto st105 } @@ -19477,7 +19477,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof510 } st_case_510: - // line scanner/scanner.go:18019 + // line internal/scanner/scanner.go:18019 if lex.data[(lex.p)] == 95 { goto st106 } @@ -19522,7 +19522,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st511 tr153: lex.cs = 512 - // line scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:483 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -19531,7 +19531,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr155: lex.cs = 512 - // line scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19546,7 +19546,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr763: lex.cs = 512 - // line scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19555,7 +19555,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr765: lex.cs = 512 - // line scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { @@ -19574,7 +19574,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:18098 + // line internal/scanner/scanner.go:18098 if lex.data[(lex.p)] == 96 { goto tr763 } @@ -19601,7 +19601,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof513 } st_case_513: - // line scanner/scanner.go:18125 + // line internal/scanner/scanner.go:18125 switch lex.data[(lex.p)] { case 91: goto tr155 @@ -19660,15 +19660,15 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st107 tr156: - // line scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:487 (lex.p) = (lex.te) - 1 { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st514 tr766: lex.cs = 514 - // line scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19677,7 +19677,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr769: lex.cs = 514 - // line scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19690,26 +19690,26 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr770: - // line scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:487 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st514 tr772: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:487 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st514 tr776: lex.cs = 514 - // line scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { @@ -19728,7 +19728,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:18232 + // line internal/scanner/scanner.go:18232 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19752,7 +19752,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st515 st515: @@ -19760,7 +19760,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof515 } st_case_515: - // line scanner/scanner.go:18264 + // line internal/scanner/scanner.go:18264 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19782,7 +19782,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st516 st516: @@ -19790,7 +19790,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof516 } st_case_516: - // line scanner/scanner.go:18294 + // line internal/scanner/scanner.go:18294 switch lex.data[(lex.p)] { case 10: goto tr774 @@ -19804,7 +19804,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr772 tr775: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st108 st108: @@ -19812,7 +19812,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof108 } st_case_108: - // line scanner/scanner.go:18316 + // line internal/scanner/scanner.go:18316 if lex.data[(lex.p)] == 10 { goto tr157 } @@ -19827,15 +19827,15 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr776 tr158: - // line scanner/scanner.rl:493 + // line internal/scanner/scanner.rl:493 (lex.p) = (lex.te) - 1 { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st518 tr777: lex.cs = 518 - // line scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:495 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19844,7 +19844,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr780: lex.cs = 518 - // line scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:494 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19857,26 +19857,26 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr781: - // line scanner/scanner.rl:493 + // line internal/scanner/scanner.rl:493 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st518 tr783: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:493 + // line internal/scanner/scanner.rl:493 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st518 tr787: lex.cs = 518 - // line scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:495 lex.te = (lex.p) (lex.p)-- { @@ -19895,7 +19895,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:18379 + // line internal/scanner/scanner.go:18379 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19919,7 +19919,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st519 st519: @@ -19927,7 +19927,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof519 } st_case_519: - // line scanner/scanner.go:18411 + // line internal/scanner/scanner.go:18411 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19949,7 +19949,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st520 st520: @@ -19957,7 +19957,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof520 } st_case_520: - // line scanner/scanner.go:18441 + // line internal/scanner/scanner.go:18441 switch lex.data[(lex.p)] { case 10: goto tr785 @@ -19971,7 +19971,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr783 tr786: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st109 st109: @@ -19979,7 +19979,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof109 } st_case_109: - // line scanner/scanner.go:18463 + // line internal/scanner/scanner.go:18463 if lex.data[(lex.p)] == 10 { goto tr159 } @@ -19994,15 +19994,15 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr787 tr160: - // line scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:499 (lex.p) = (lex.te) - 1 { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st522 tr788: lex.cs = 522 - // line scanner/scanner.rl:501 + // line internal/scanner/scanner.rl:501 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20011,7 +20011,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr791: lex.cs = 522 - // line scanner/scanner.rl:500 + // line internal/scanner/scanner.rl:500 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -20024,26 +20024,26 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr792: - // line scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:499 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st522 tr794: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:499 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te) + lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st522 tr798: lex.cs = 522 - // line scanner/scanner.rl:501 + // line internal/scanner/scanner.rl:501 lex.te = (lex.p) (lex.p)-- { @@ -20062,7 +20062,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:18526 + // line internal/scanner/scanner.go:18526 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20086,7 +20086,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st523 st523: @@ -20094,7 +20094,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof523 } st_case_523: - // line scanner/scanner.go:18558 + // line internal/scanner/scanner.go:18558 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20116,7 +20116,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st524 st524: @@ -20124,7 +20124,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof524 } st_case_524: - // line scanner/scanner.go:18588 + // line internal/scanner/scanner.go:18588 switch lex.data[(lex.p)] { case 10: goto tr796 @@ -20138,7 +20138,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr794 tr797: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st110 st110: @@ -20146,7 +20146,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof110 } st_case_110: - // line scanner/scanner.go:18610 + // line internal/scanner/scanner.go:18610 if lex.data[(lex.p)] == 10 { goto tr161 } @@ -20172,19 +20172,19 @@ func (lex *Lexer) Lex(lval Lval) int { case 186: { (lex.p) = (lex.te) - 1 - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + lex.addToken(T_HALT_COMPILER, lex.ts, lex.te) } } goto st526 tr802: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:505 + // line internal/scanner/scanner.rl:505 lex.te = (lex.p) (lex.p)-- { - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + lex.addToken(T_HALT_COMPILER, lex.ts, lex.te) } goto st526 st526: @@ -20201,7 +20201,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line scanner/scanner.go:18657 + // line internal/scanner/scanner.go:18657 if lex.data[(lex.p)] == 10 { goto st528 } @@ -20210,16 +20210,16 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:505 + // line internal/scanner/scanner.rl:505 lex.act = 186 goto st527 tr803: // line NONE:1 lex.te = (lex.p) + 1 - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line scanner/scanner.rl:505 + // line internal/scanner/scanner.rl:505 lex.act = 186 goto st527 st527: @@ -20227,13 +20227,13 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof527 } st_case_527: - // line scanner/scanner.go:18683 + // line internal/scanner/scanner.go:18683 if lex.data[(lex.p)] == 10 { goto st528 } goto tr799 tr804: - // line scanner/scanner.rl:66 + // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) goto st528 st528: @@ -20241,7 +20241,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof528 } st_case_528: - // line scanner/scanner.go:18697 + // line internal/scanner/scanner.go:18697 if lex.data[(lex.p)] == 10 { goto tr804 } @@ -22863,10 +22863,10 @@ func (lex *Lexer) Lex(lval Lval) int { } } - // line scanner/scanner.rl:509 + // line internal/scanner/scanner.rl:509 - token.FreeFloating = lex.FreeFloating - token.Value = string(lex.data[lex.ts:lex.te]) + token.Tokens = lex.Tokens + token.Value = lex.data[lex.ts:lex.te] lval.Token(token) diff --git a/scanner/scanner.rl b/internal/scanner/scanner.rl similarity index 95% rename from scanner/scanner.rl rename to internal/scanner/scanner.rl index c15fbdf..5eec481 100644 --- a/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -4,8 +4,6 @@ import ( "fmt" "strconv" "strings" - - "github.com/z7zmey/php-parser/freefloating" ) %%{ @@ -30,13 +28,13 @@ func NewLexer(data []byte) *Lexer { } func (lex *Lexer) Lex(lval Lval) int { - lex.FreeFloating = nil + lex.Tokens = nil eof := lex.pe var tok TokenID token := lex.TokenPool.Get() - token.FreeFloating = lex.FreeFloating - token.Value = string(lex.data[0:0]) + token.Tokens = lex.Tokens + token.Value = lex.data[0:0] lblStart := 0 lblEnd := 0 @@ -136,7 +134,7 @@ func (lex *Lexer) Lex(lval Lval) int { main := |* "#!" any* :>> newline => { - lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + lex.addToken(T_COMMENT, lex.ts, lex.te) }; any => { fnext html; @@ -152,12 +150,12 @@ func (lex *Lexer) Lex(lval Lval) int { fbreak; }; ' { - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.te) + lex.addToken(T_OPEN_TAG, lex.ts, lex.te) fnext php; }; ' { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addFreeFloating(freefloating.TokenType, lex.ts, lex.ts+5) + lex.addToken(T_OPEN_TAG, lex.ts, lex.ts+5) fnext php; }; ' { @@ -169,7 +167,7 @@ func (lex *Lexer) Lex(lval Lval) int { *|; php := |* - whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + whitespace_line* => {lex.addToken(T_WHITESPACE, 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;}; @@ -329,17 +327,19 @@ func (lex *Lexer) Lex(lval Lval) int { ('#' | '//') any_line* when is_not_comment_end => { lex.ungetStr("?>") - lex.addFreeFloating(freefloating.CommentType, lex.ts, lex.te) + lex.addToken(T_COMMENT, 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]) + lex.addToken(T_DOC_COMMENT, lex.ts, lex.te) + } else { + lex.addToken(T_COMMENT, lex.ts, lex.te) } }; @@ -388,7 +388,7 @@ func (lex *Lexer) Lex(lval Lval) int { *|; property := |* - whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + whitespace_line* => {lex.addToken(T_WHITESPACE, 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;}; @@ -484,32 +484,32 @@ func (lex *Lexer) Lex(lval Lval) int { *|; halt_compiller_open_parenthesis := |* - whitespace_line* => {lex.addFreeFloating(freefloating.WhiteSpaceType, lex.ts, lex.te)}; + whitespace_line* => {lex.addToken(T_WHITESPACE, 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)}; + whitespace_line* => {lex.addToken(T_WHITESPACE, 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)}; + whitespace_line* => {lex.addToken(T_WHITESPACE, 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); }; + any_line* => { lex.addToken(T_HALT_COMPILER, lex.ts, lex.te); }; *|; write exec; }%% - token.FreeFloating = lex.FreeFloating - token.Value = string(lex.data[lex.ts:lex.te]) + token.Tokens = lex.Tokens + token.Value = lex.data[lex.ts:lex.te] lval.Token(token) diff --git a/scanner/scanner_test.go b/internal/scanner/scanner_test.go similarity index 76% rename from scanner/scanner_test.go rename to internal/scanner/scanner_test.go index eb496a2..71822c4 100644 --- a/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -3,8 +3,7 @@ package scanner import ( "testing" - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/pkg/token" "gotest.tools/assert" ) @@ -361,7 +360,7 @@ func TestTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -390,15 +389,15 @@ func TestShebang(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} token := lexer.Lex(lv) assert.Equal(t, token, int(T_DNUMBER)) - for _, tt := range lv.Tkn.FreeFloating { - actual = append(actual, tt.Value) + for _, tt := range lv.Tkn.Tokens { + actual = append(actual, string(tt.Value)) } assert.DeepEqual(t, expected, actual) @@ -411,12 +410,12 @@ func TestShebangHtml(t *testing.T) { ` lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} token := lexer.Lex(lv) assert.Equal(t, token, int(T_INLINE_HTML)) - assert.Equal(t, lv.Tkn.FreeFloating[0].Value, "#!/usr/bin/env php\n") + assert.Equal(t, string(lv.Tkn.Tokens[0].Value), "#!/usr/bin/env php\n") token = lexer.Lex(lv) assert.Equal(t, token, int(T_DNUMBER)) @@ -462,7 +461,7 @@ func TestNumberTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -520,7 +519,7 @@ func TestConstantStrings(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -656,7 +655,7 @@ func TestTeplateStringTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -742,7 +741,7 @@ func TestBackquoteStringTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -837,7 +836,7 @@ CAT; } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -911,7 +910,7 @@ CAT } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -951,7 +950,7 @@ CAT; } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -983,7 +982,7 @@ func TestHereDocTokens73(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -1015,7 +1014,7 @@ CAT;` lexer := NewLexer([]byte(src)) lexer.PHPVersion = "7.2" - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -1048,7 +1047,7 @@ func TestInlineHtmlNopTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} actual := []string{} @@ -1094,7 +1093,7 @@ func TestStringTokensAfterVariable(t *testing.T) { break } - actualTokens = append(actualTokens, lv.Tkn.Value) + actualTokens = append(actualTokens, string(lv.Tkn.Value)) actual = append(actual, TokenID(token).String()) } @@ -1128,7 +1127,7 @@ func TestSlashAfterVariable(t *testing.T) { break } - actualTokens = append(actualTokens, lv.Tkn.Value) + actualTokens = append(actualTokens, string(lv.Tkn.Value)) actual = append(actual, TokenID(token).String()) } @@ -1139,31 +1138,29 @@ func TestSlashAfterVariable(t *testing.T) { func TestCommentEnd(t *testing.T) { src := ` test` - expected := []freefloating.String{ + expected := []token.Token{ { - Value: " bar ( '' ) ;` lexer := NewLexer([]byte(src)) - lexer.WithFreeFloating = true + lexer.WithTokens = true lv := &lval{} - expected := []freefloating.String{ + expected := []token.Token{ { - Value: "\n") { - tlen = 3 - } - - phpCloseTag := []freefloating.String{} - if vlen-tlen > 1 { - phpCloseTag = append(phpCloseTag, freefloating.String{ - StringType: freefloating.WhiteSpaceType, - Value: semiColon[0].Value[1 : vlen-tlen], - Position: &position.Position{ - StartLine: p.StartLine, - EndLine: p.EndLine, - StartPos: p.StartPos + 1, - EndPos: p.EndPos - tlen, - }, - }) - } - - phpCloseTag = append(phpCloseTag, freefloating.String{ - StringType: freefloating.WhiteSpaceType, - Value: semiColon[0].Value[vlen-tlen:], - Position: &position.Position{ - StartLine: p.EndLine, - EndLine: p.EndLine, - StartPos: p.EndPos - tlen, - EndPos: p.EndPos, - }, - }) - - l.setFreeFloating(htmlNode, freefloating.Start, append(phpCloseTag, (*htmlNode.GetFreeFloating())[freefloating.Start]...)) -} - -func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { - for i := 1; i < len(yyDollar); i++ { - if yyDollar[i].token != nil { - p.Lexer.ReturnTokenToPool(yyDollar[i].token) - } - yyDollar[i].token = nil - } - yyVAL.token = nil -} diff --git a/php7/php7.y b/php7/php7.y deleted file mode 100644 index e6634ff..0000000 --- a/php7/php7.y +++ /dev/null @@ -1,5666 +0,0 @@ -%{ -package php7 - -import ( - "strings" - "strconv" - - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/scanner" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" -) - -%} - -%union{ - node node.Node - token *scanner.Token - list []node.Node - str string - - ClassExtends *stmt.ClassExtends - ClassImplements *stmt.ClassImplements - InterfaceExtends *stmt.InterfaceExtends - ClosureUse *expr.ClosureUse -} - -%type $unk -%token T_INCLUDE -%token T_INCLUDE_ONCE -%token T_EXIT -%token T_IF -%token T_LNUMBER -%token T_DNUMBER -%token T_STRING -%token T_STRING_VARNAME -%token T_VARIABLE -%token T_NUM_STRING -%token T_INLINE_HTML -%token T_CHARACTER -%token T_BAD_CHARACTER -%token T_ENCAPSED_AND_WHITESPACE -%token T_CONSTANT_ENCAPSED_STRING -%token T_ECHO -%token T_DO -%token T_WHILE -%token T_ENDWHILE -%token T_FOR -%token T_ENDFOR -%token T_FOREACH -%token T_ENDFOREACH -%token T_DECLARE -%token T_ENDDECLARE -%token T_AS -%token T_SWITCH -%token T_ENDSWITCH -%token T_CASE -%token T_DEFAULT -%token T_BREAK -%token T_CONTINUE -%token T_GOTO -%token T_FUNCTION -%token T_FN -%token T_CONST -%token T_RETURN -%token T_TRY -%token T_CATCH -%token T_FINALLY -%token T_THROW -%token T_USE -%token T_INSTEADOF -%token T_GLOBAL -%token T_VAR -%token T_UNSET -%token T_ISSET -%token T_EMPTY -%token T_HALT_COMPILER -%token T_CLASS -%token T_TRAIT -%token T_INTERFACE -%token T_EXTENDS -%token T_IMPLEMENTS -%token T_OBJECT_OPERATOR -%token T_DOUBLE_ARROW -%token T_LIST -%token T_ARRAY -%token T_CALLABLE -%token T_CLASS_C -%token T_TRAIT_C -%token T_METHOD_C -%token T_FUNC_C -%token T_LINE -%token T_FILE -%token T_COMMENT -%token T_DOC_COMMENT -%token T_OPEN_TAG -%token T_OPEN_TAG_WITH_ECHO -%token T_CLOSE_TAG -%token T_WHITESPACE -%token T_START_HEREDOC -%token T_END_HEREDOC -%token T_DOLLAR_OPEN_CURLY_BRACES -%token T_CURLY_OPEN -%token T_PAAMAYIM_NEKUDOTAYIM -%token T_NAMESPACE -%token T_NS_C -%token T_DIR -%token T_NS_SEPARATOR -%token T_ELLIPSIS -%token T_EVAL -%token T_REQUIRE -%token T_REQUIRE_ONCE -%token T_LOGICAL_OR -%token T_LOGICAL_XOR -%token T_LOGICAL_AND -%token T_INSTANCEOF -%token T_NEW -%token T_CLONE -%token T_ELSEIF -%token T_ELSE -%token T_ENDIF -%token T_PRINT -%token T_YIELD -%token T_STATIC -%token T_ABSTRACT -%token T_FINAL -%token T_PRIVATE -%token T_PROTECTED -%token T_PUBLIC -%token T_INC -%token T_DEC -%token T_YIELD_FROM -%token T_INT_CAST -%token T_DOUBLE_CAST -%token T_STRING_CAST -%token T_ARRAY_CAST -%token T_OBJECT_CAST -%token T_BOOL_CAST -%token T_UNSET_CAST -%token T_COALESCE -%token T_SPACESHIP -%token T_NOELSE -%token T_PLUS_EQUAL -%token T_MINUS_EQUAL -%token T_MUL_EQUAL -%token T_POW_EQUAL -%token T_DIV_EQUAL -%token T_CONCAT_EQUAL -%token T_MOD_EQUAL -%token T_AND_EQUAL -%token T_OR_EQUAL -%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 -%token T_SL -%token T_SR -%token T_IS_IDENTICAL -%token T_IS_NOT_IDENTICAL -%token T_IS_EQUAL -%token T_IS_NOT_EQUAL -%token T_IS_SMALLER_OR_EQUAL -%token T_IS_GREATER_OR_EQUAL -%token '"' -%token '`' -%token '{' -%token '}' -%token ';' -%token ':' -%token '(' -%token ')' -%token '[' -%token ']' -%token '?' -%token '&' -%token '-' -%token '+' -%token '!' -%token '~' -%token '@' -%token '$' -%token ',' -%token '|' -%token '=' -%token '^' -%token '*' -%token '/' -%token '%' -%token '<' -%token '>' -%token '.' - -%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE -%left ',' -%left T_LOGICAL_OR -%left T_LOGICAL_XOR -%left T_LOGICAL_AND -%right T_PRINT -%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 T_COALESCE_EQUAL -%left '?' ':' -%right T_COALESCE -%left T_BOOLEAN_OR -%left T_BOOLEAN_AND -%left '|' -%left '^' -%left '&' -%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP -%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL -%left T_SL T_SR -%left '+' '-' '.' -%left '*' '/' '%' -%right '!' -%nonassoc T_INSTANCEOF -%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' -%right T_POW -%right '[' -%nonassoc T_NEW T_CLONE -%left T_NOELSE -%left T_ELSEIF -%left T_ELSE -%left T_ENDIF -%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC - -%type is_reference is_variadic returns_ref - -%type reserved_non_modifiers -%type semi_reserved -%type identifier -%type possible_comma -%type case_separator - -%type top_statement name statement function_declaration_statement -%type class_declaration_statement trait_declaration_statement -%type interface_declaration_statement -%type group_use_declaration inline_use_declaration -%type mixed_group_use_declaration use_declaration unprefixed_use_declaration -%type const_decl inner_statement -%type expr optional_expr -%type declare_statement finally_statement unset_variable variable -%type parameter optional_type argument expr_without_variable global_var -%type static_var class_statement trait_adaptation trait_precedence trait_alias -%type absolute_trait_method_reference trait_method_reference property echo_expr -%type new_expr anonymous_class class_name class_name_reference simple_variable -%type internal_functions_in_yacc -%type exit_expr scalar lexical_var function_call member_name property_name -%type variable_class_name dereferencable_scalar constant dereferencable -%type callable_expr callable_variable static_member new_variable -%type encaps_var encaps_var_offset -%type if_stmt -%type alt_if_stmt -%type if_stmt_without_else -%type class_const_decl -%type alt_if_stmt_without_else -%type array_pair possible_array_pair -%type isset_variable type return_type type_expr -%type class_modifier -%type argument_list ctor_arguments -%type trait_adaptations -%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 -%type lexical_vars - -%type member_modifier -%type use_type -%type foreach_variable - - -%type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list -%type const_list echo_expr_list for_exprs non_empty_for_exprs global_var_list -%type unprefixed_use_declarations inline_use_declarations property_list static_var_list -%type case_list trait_adaptation_list unset_variables -%type use_declarations lexical_var_list isset_variables non_empty_array_pair_list -%type array_pair_list non_empty_argument_list top_statement_list -%type inner_statement_list parameter_list non_empty_parameter_list class_statement_list -%type method_modifiers variable_modifiers -%type non_empty_member_modifiers name_list class_modifiers - -%type backup_doc_comment - -%% - -///////////////////////////////////////////////////////////////////////// - -start: - top_statement_list - { - yylex.(*Parser).rootNode = node.NewRoot($1) - - // 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) - } -; - -reserved_non_modifiers: - T_INCLUDE {$$=$1} | T_INCLUDE_ONCE {$$=$1} | T_EVAL {$$=$1} | T_REQUIRE {$$=$1} | T_REQUIRE_ONCE {$$=$1} | T_LOGICAL_OR {$$=$1} | T_LOGICAL_XOR {$$=$1} | T_LOGICAL_AND {$$=$1} - | T_INSTANCEOF {$$=$1} | T_NEW {$$=$1} | T_CLONE {$$=$1} | T_EXIT {$$=$1} | T_IF {$$=$1} | T_ELSEIF {$$=$1} | T_ELSE {$$=$1} | T_ENDIF {$$=$1} | T_ECHO {$$=$1} | T_DO {$$=$1} | T_WHILE {$$=$1} | T_ENDWHILE {$$=$1} - | T_FOR {$$=$1} | T_ENDFOR {$$=$1} | T_FOREACH {$$=$1} | T_ENDFOREACH {$$=$1} | T_DECLARE {$$=$1} | T_ENDDECLARE {$$=$1} | T_AS {$$=$1} | T_TRY {$$=$1} | T_CATCH {$$=$1} | T_FINALLY {$$=$1} - | 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_FN {$$=$1} -; - -semi_reserved: - reserved_non_modifiers - { - $$ = $1 - } - | T_STATIC {$$=$1} | T_ABSTRACT {$$=$1} | T_FINAL {$$=$1} | T_PRIVATE {$$=$1} | T_PROTECTED {$$=$1} | T_PUBLIC {$$=$1} -; - -identifier: - T_STRING - { - $$ = $1 - } - | semi_reserved - { - $$ = $1 - } -; - -top_statement_list: - top_statement_list top_statement - { - if inlineHtmlNode, ok := $2.(*stmt.InlineHtml); ok && len($1) > 0 { - prevNode := lastNode($1) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - - if $2 != nil { - $$ = append($1, $2) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | /* empty */ - { - $$ = []node.Node{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -namespace_name: - T_STRING - { - namePart := name.NewNamePart($1.Value) - $$ = []node.Node{namePart} - - // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | namespace_name T_NS_SEPARATOR T_STRING - { - namePart := name.NewNamePart($3.Value) - $$ = append($1, namePart) - - // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -name: - namespace_name - { - $$ = name.NewName($1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NAMESPACE T_NS_SEPARATOR namespace_name - { - $$ = name.NewRelative($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Namespace, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NS_SEPARATOR namespace_name - { - $$ = name.NewFullyQualified($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -top_statement: - error - { - // error - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | function_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | class_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | trait_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | interface_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_HALT_COMPILER '(' ')' ';' - { - $$ = stmt.NewHaltCompiler() - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.HaltCompiller, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.OpenParenthesisToken, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.CloseParenthesisToken, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NAMESPACE namespace_name ';' - { - name := name.NewName($2) - $$ = stmt.NewNamespace(name, nil) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NAMESPACE namespace_name '{' top_statement_list '}' - { - name := name.NewName($2) - $$ = stmt.NewNamespace(name, $4) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $5.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NAMESPACE '{' top_statement_list '}' - { - $$ = stmt.NewNamespace(nil, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Namespace, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_USE mixed_group_use_declaration ';' - { - $$ = $2 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.UseDeclarationList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_USE use_type group_use_declaration ';' - { - $$ = $3.(*stmt.GroupUse).SetUseType($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.UseDeclarationList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_USE use_declarations ';' - { - $$ = stmt.NewUseList(nil, $2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.UseDeclarationList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_USE use_type use_declarations ';' - { - $$ = stmt.NewUseList($2, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.UseDeclarationList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CONST const_list ';' - { - $$ = stmt.NewConstList($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -use_type: - T_FUNCTION - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CONST - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -group_use_declaration: - namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' - { - name := name.NewName($1) - $$ = stmt.NewGroupUse(nil, name, $4) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, $3.FreeFloating) - if $5 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, append($5.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.FreeFloating...)...)) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $6.FreeFloating) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' - { - name := name.NewName($2) - $$ = stmt.NewGroupUse(nil, name, $5) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.UseType, $1.FreeFloating) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, $4.FreeFloating) - if $6 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, append($6.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.FreeFloating...)...)) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $7.FreeFloating) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -mixed_group_use_declaration: - namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' - { - name := name.NewName($1) - $$ = stmt.NewGroupUse(nil, name, $4) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, $3.FreeFloating) - if $5 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, append($5.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.FreeFloating...)...)) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $6.FreeFloating) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' - { - name := name.NewName($2) - $$ = stmt.NewGroupUse(nil, name, $5) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Use, append($1.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, $4.FreeFloating) - if $6 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, append($6.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.FreeFloating...)...)) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $7.FreeFloating) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -possible_comma: - /* empty */ - { - $$ = nil - } - | ',' - { - $$ = $1 - } -; - -inline_use_declarations: - inline_use_declarations ',' inline_use_declaration - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | inline_use_declaration - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -unprefixed_use_declarations: - unprefixed_use_declarations ',' unprefixed_use_declaration - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | unprefixed_use_declaration - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -use_declarations: - use_declarations ',' use_declaration - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | use_declaration - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -inline_use_declaration: - unprefixed_use_declaration - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | use_type unprefixed_use_declaration - { - $$ = $2.(*stmt.Use).SetUseType($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -unprefixed_use_declaration: - namespace_name - { - name := name.NewName($1) - $$ = stmt.NewUse(nil, name, nil) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | namespace_name T_AS T_STRING - { - name := name.NewName($1) - alias := node.NewIdentifier($3.Value) - $$ = stmt.NewUse(nil, name, alias) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -use_declaration: - unprefixed_use_declaration - { - $$ = $1 - - // save coments - yylex.(*Parser).MoveFreeFloating($1.(*stmt.Use).Use, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NS_SEPARATOR unprefixed_use_declaration - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -const_list: - const_list ',' const_decl - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | const_decl - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -inner_statement_list: - inner_statement_list inner_statement - { - if inlineHtmlNode, ok := $2.(*stmt.InlineHtml); ok && len($1) > 0 { - prevNode := lastNode($1) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - - if $2 != nil { - $$ = append($1, $2) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | /* empty */ - { - $$ = []node.Node{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -inner_statement: - error - { - // error - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | function_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | class_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | trait_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | interface_declaration_statement - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_HALT_COMPILER '(' ')' ';' - { - $$ = stmt.NewHaltCompiler() - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.HaltCompiller, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.OpenParenthesisToken, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.CloseParenthesisToken, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - -statement: - '{' inner_statement_list '}' - { - $$ = stmt.NewStmtList($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | if_stmt - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | alt_if_stmt - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_WHILE '(' expr ')' while_statement - { - switch n := $5.(type) { - case *stmt.While : - n.Cond = $3 - case *stmt.AltWhile : - n.Cond = $3 - } - - $$ = $5 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.While, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DO statement T_WHILE '(' expr ')' ';' - { - $$ = stmt.NewDo($2, $5) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.While, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $7.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($7)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement - { - switch n := $9.(type) { - case *stmt.For : - n.Init = $3 - n.Cond = $5 - n.Loop = $7 - case *stmt.AltFor : - n.Init = $3 - n.Cond = $5 - n.Loop = $7 - } - - $$ = $9 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.For, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.InitExpr, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.CondExpr, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.IncExpr, $8.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_SWITCH '(' expr ')' switch_case_list - { - switch n := $5.(type) { - case *stmt.Switch: - n.Cond = $3 - case *stmt.AltSwitch: - n.Cond = $3 - default: - panic("unexpected node type") - } - - $$ = $5 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Switch, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_BREAK optional_expr ';' - { - $$ = stmt.NewBreak($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CONTINUE optional_expr ';' - { - $$ = stmt.NewContinue($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_RETURN optional_expr ';' - { - $$ = stmt.NewReturn($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_GLOBAL global_var_list ';' - { - $$ = stmt.NewGlobal($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_STATIC static_var_list ';' - { - $$ = stmt.NewStatic($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_ECHO echo_expr_list ';' - { - $$ = stmt.NewEcho($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_INLINE_HTML - { - $$ = stmt.NewInlineHtml($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr ';' - { - $$ = stmt.NewExpression($1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_UNSET '(' unset_variables possible_comma ')' ';' - { - $$ = stmt.NewUnset($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Unset, $2.FreeFloating) - if $4 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, append($4.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.FreeFloating...)...)) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $5.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.CloseParenthesisToken, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { - switch n := $7.(type) { - case *stmt.Foreach : - n.Expr = $3 - n.Variable = $5 - case *stmt.AltForeach : - n.Expr = $3 - n.Variable = $5 - } - - $$ = $7 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Foreach, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $6.FreeFloating) - - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { - switch n := $9.(type) { - case *stmt.Foreach : - n.Expr = $3 - n.Key = $5 - n.Variable = $7 - case *stmt.AltForeach : - n.Expr = $3 - n.Key = $5 - n.Variable = $7 - } - - $$ = $9 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Foreach, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Key, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $8.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DECLARE '(' const_list ')' declare_statement - { - $$ = $5 - $$.(*stmt.Declare).Consts = $3 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Declare, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ConstList, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ';' - { - $$ = stmt.NewNop() - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_TRY '{' inner_statement_list '}' catch_list finally_statement - { - if $6 == nil { - $$ = stmt.NewTry($3, $5, $6) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) - } else { - $$ = stmt.NewTry($3, $5, $6) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) - } - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Try, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_THROW expr ';' - { - $$ = stmt.NewThrow($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_GOTO T_STRING ';' - { - label := node.NewIdentifier($2.Value) - $$ = stmt.NewGoto(label) - - // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(label, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Label, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_STRING ':' - { - label := node.NewIdentifier($1.Value) - $$ = stmt.NewLabel(label) - - // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Label, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - -catch_list: - /* empty */ - { - $$ = []node.Node{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($5.Value, isDollar)) - variable := expr.NewVariable(identifier) - catch := stmt.NewCatch($4, variable, $8) - $$ = append($1, catch) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($5)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($5)) - catch.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9)) - - // save comments - yylex.(*Parser).setFreeFloating(catch, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(catch, freefloating.Catch, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $5.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catch, freefloating.Var, $6.FreeFloating) - yylex.(*Parser).setFreeFloating(catch, freefloating.Cond, $7.FreeFloating) - yylex.(*Parser).setFreeFloating(catch, freefloating.Stmts, $9.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; -catch_name_list: - name - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | catch_name_list '|' name - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -finally_statement: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FINALLY '{' inner_statement_list '}' - { - $$ = stmt.NewFinally($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Finally, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -unset_variables: - unset_variable - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | unset_variables ',' unset_variable - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -unset_variable: - variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -function_declaration_statement: - T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' - { - name := node.NewIdentifier($3.Value) - $$ = stmt.NewFunction(name, $2 != nil, $6, $8, $10, $4) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) - - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if $2 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $3.FreeFloating) - } else { - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $3.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ParamList, $7.FreeFloating) - if $8 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$8.GetFreeFloating())[freefloating.Colon]); delete((*$8.GetFreeFloating()), freefloating.Colon) - } - yylex.(*Parser).setFreeFloating($$, freefloating.ReturnType, $9.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $11.FreeFloating) - - // normalize - if $8 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$$.GetFreeFloating())[freefloating.ReturnType]); delete((*$$.GetFreeFloating()), freefloating.ReturnType) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -is_reference: - /* empty */ - { - $$ = nil - } - | '&' - { - $$ = $1 - } -; - -is_variadic: - /* empty */ - { - $$ = nil - } - | T_ELLIPSIS - { - $$ = $1 - } -; - -class_declaration_statement: - class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' - { - name := node.NewIdentifier($3.Value) - $$ = stmt.NewClass(name, $1, nil, $4, $5, $8, $6) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, freefloating.ModifierList, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $7.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $9.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' - { - name := node.NewIdentifier($2.Value) - $$ = stmt.NewClass(name, nil, nil, $3, $4, $7, $5) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $8.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_modifiers: - class_modifier - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | class_modifiers class_modifier - { - $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_modifier: - T_ABSTRACT - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FINAL - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -trait_declaration_statement: - T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' - { - name := node.NewIdentifier($2.Value) - $$ = stmt.NewTrait(name, $5, $3) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $6.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -interface_declaration_statement: - T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' - { - name := node.NewIdentifier($2.Value) - $$ = stmt.NewInterface(name, $3, $6, $4) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $7.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -extends_from: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_EXTENDS name - { - $$ = stmt.NewClassExtends($2); - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -interface_extends_list: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_EXTENDS name_list - { - $$ = stmt.NewInterfaceExtends($2); - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -implements_list: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_IMPLEMENTS name_list - { - $$ = stmt.NewClassImplements($2); - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -foreach_variable: - variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '&' variable - { - $$ = expr.NewReference($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_LIST '(' array_pair_list ')' - { - $$ = expr.NewList($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.List, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '[' array_pair_list ']' - { - $$ = expr.NewShortList($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save commentsc - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -for_statement: - statement - { - $$ = stmt.NewFor(nil, nil, nil, $1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ':' inner_statement_list T_ENDFOR ';' - { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewAltFor(nil, nil, nil, stmtList) - - // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -foreach_statement: - statement - { - $$ = stmt.NewForeach(nil, nil, nil, $1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ':' inner_statement_list T_ENDFOREACH ';' - { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewAltForeach(nil, nil, nil, stmtList) - - // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -declare_statement: - statement - { - $$ = stmt.NewDeclare(nil, $1, false) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ':' inner_statement_list T_ENDDECLARE ';' - { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewDeclare(nil, stmtList, true) - - // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -switch_case_list: - '{' case_list '}' - { - caseList := stmt.NewCaseList($2) - $$ = stmt.NewSwitch(nil, caseList) - - // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '{' ';' case_list '}' - { - caseList := stmt.NewCaseList($3) - $$ = stmt.NewSwitch(nil, caseList) - - // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ':' case_list T_ENDSWITCH ';' - { - caseList := stmt.NewCaseList($2) - $$ = stmt.NewAltSwitch(nil, caseList) - - // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ':' ';' case_list T_ENDSWITCH ';' - { - - caseList := stmt.NewCaseList($3) - $$ = stmt.NewAltSwitch(nil, caseList) - - // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -case_list: - /* empty */ - { - $$ = []node.Node{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | case_list T_CASE expr case_separator inner_statement_list - { - _case := stmt.NewCase($3, $5) - $$ = append($1, _case) - - // save position - _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) - - // save comments - yylex.(*Parser).setFreeFloating(_case, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(_case, freefloating.Expr, append($4.FreeFloating)) - yylex.(*Parser).setFreeFloating(_case, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | case_list T_DEFAULT case_separator inner_statement_list - { - _default := stmt.NewDefault($4) - $$ = append($1, _default) - - // save position - _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) - - // save comments - yylex.(*Parser).setFreeFloating(_default, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.Default, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -case_separator: - ':' - { - $$ = $1 - } - | ';' - { - $$ = $1 - } -; - -while_statement: - statement - { - $$ = stmt.NewWhile(nil, $1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ':' inner_statement_list T_ENDWHILE ';' - { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewAltWhile(nil, stmtList) - - // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -if_stmt_without_else: - T_IF '(' expr ')' statement - { - $$ = stmt.NewIf($3, $5, nil, nil) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.If, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | if_stmt_without_else T_ELSEIF '(' expr ')' statement - { - _elseIf := stmt.NewElseIf($4, $6) - $$ = $1.(*stmt.If).AddElseIf(_elseIf) - - // save position - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, $5.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -if_stmt: - if_stmt_without_else %prec T_NOELSE - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | if_stmt_without_else T_ELSE statement - { - _else := stmt.NewElse($3) - $$ = $1.(*stmt.If).SetElse(_else) - - // save position - _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating(_else, freefloating.Start, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -alt_if_stmt_without_else: - T_IF '(' expr ')' ':' inner_statement_list - { - stmts := stmt.NewStmtList($6) - $$ = stmt.NewAltIf($3, stmts, nil, nil) - - // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($6)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.If, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $5.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list - { - stmts := stmt.NewStmtList($7) - _elseIf := stmt.NewAltElseIf($4, stmts) - $$ = $1.(*stmt.AltIf).AddElseIf(_elseIf) - - // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($7)) - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7)) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, $5.FreeFloating) - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Cond, $6.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -alt_if_stmt: - alt_if_stmt_without_else T_ENDIF ';' - { - $$ = $1 - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' - { - stmts := stmt.NewStmtList($4) - _else := stmt.NewAltElse(stmts) - $$ = $1.(*stmt.AltIf).SetElse(_else) - - // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) - _else.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) - - // save comments - yylex.(*Parser).setFreeFloating(_else, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(_else, freefloating.Else, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -parameter_list: - non_empty_parameter_list - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -non_empty_parameter_list: - parameter - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | non_empty_parameter_list ',' parameter - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -parameter: - optional_type is_reference is_variadic T_VARIABLE - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = node.NewParameter($1, variable, nil, $2 != nil, $3 != nil) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - if $1 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - } else if $2 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4)) - } else if $3 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) - } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - } - - // save comments - if $1 != nil { - yylex.(*Parser).MoveFreeFloating($1, $$) - } - if $2 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, $2.FreeFloating) - } - if $3 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $3.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.Variadic, $4.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - - // normalize - if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, (*$$.GetFreeFloating())[freefloating.Variadic]); delete((*$$.GetFreeFloating()), freefloating.Variadic) - } - if $2 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, (*$$.GetFreeFloating())[freefloating.Ampersand]); delete((*$$.GetFreeFloating()), freefloating.Ampersand) - } - if $1 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Start, (*$$.GetFreeFloating())[freefloating.OptionalType]); delete((*$$.GetFreeFloating()), freefloating.OptionalType) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | optional_type is_reference is_variadic T_VARIABLE '=' expr - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = node.NewParameter($1, variable, $6, $2 != nil, $3 != nil) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - if $1 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) - } else if $2 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) - } else if $3 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6)) - } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) - } - - // save comments - if $1 != nil { - yylex.(*Parser).MoveFreeFloating($1, $$) - } - if $2 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, $2.FreeFloating) - } - if $3 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $3.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.Variadic, $4.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $5.FreeFloating) - - // normalize - if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, (*$$.GetFreeFloating())[freefloating.Variadic]); delete((*$$.GetFreeFloating()), freefloating.Variadic) - } - if $2 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, (*$$.GetFreeFloating())[freefloating.Ampersand]); delete((*$$.GetFreeFloating()), freefloating.Ampersand) - } - if $1 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Start, (*$$.GetFreeFloating())[freefloating.OptionalType]); delete((*$$.GetFreeFloating()), freefloating.OptionalType) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -optional_type: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | type_expr - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -type_expr: - type - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '?' type - { - $$ = node.NewNullable($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -type: - T_ARRAY - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CALLABLE - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | name - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -return_type: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | ':' type_expr - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Colon, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -argument_list: - '(' ')' - { - $$ = node.NewArgumentList(nil) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArgumentList, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '(' non_empty_argument_list possible_comma ')' - { - $$ = node.NewArgumentList($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if $3 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.ArgumentList, append($3.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($3), $4.FreeFloating...)...)) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.ArgumentList, $4.FreeFloating) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -non_empty_argument_list: - argument - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | non_empty_argument_list ',' argument - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -argument: - expr - { - $$ = node.NewArgument($1, false, false) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_ELLIPSIS expr - { - $$ = node.NewArgument($2, true, false) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -global_var_list: - global_var_list ',' global_var - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | global_var - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -global_var: - simple_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -static_var_list: - static_var_list ',' static_var - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | static_var - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -static_var: - T_VARIABLE - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = stmt.NewStaticVar(variable, nil) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_VARIABLE '=' expr - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = stmt.NewStaticVar(variable, $3) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_statement_list: - class_statement_list class_statement - { - $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | /* empty */ - { - $$ = []node.Node{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_statement: - variable_modifiers optional_type property_list ';' - { - $$ = stmt.NewPropertyList($1, $2, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, freefloating.PropertyList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | method_modifiers T_CONST class_const_list ';' - { - $$ = stmt.NewClassConstList($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4)) - - // save comments - if len($1) > 0 { - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, freefloating.ModifierList, $2.FreeFloating) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $2.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.ConstList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_USE name_list trait_adaptations - { - $$ = stmt.NewTraitUse($2, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body - { - name := node.NewIdentifier($4.Value) - $$ = stmt.NewClassMethod(name, $1, $3 != nil, $7, $9, $10, $5) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - if $1 == nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $10)) - } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $10)) - } - - // save comments - if len($1) > 0 { - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, freefloating.ModifierList, $2.FreeFloating) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $2.FreeFloating) - } - if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $4.FreeFloating) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $4.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ParameterList, $8.FreeFloating) - if $9 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$9.GetFreeFloating())[freefloating.Colon]); delete((*$9.GetFreeFloating()), freefloating.Colon) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -name_list: - name - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | name_list ',' name - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -trait_adaptations: - ';' - { - $$ = stmt.NewNop() - - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) - - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '{' '}' - { - $$ = stmt.NewTraitAdaptationList(nil) - - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AdaptationList, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '{' trait_adaptation_list '}' - { - $$ = stmt.NewTraitAdaptationList($2) - - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AdaptationList, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -trait_adaptation_list: - trait_adaptation - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | trait_adaptation_list trait_adaptation - { - $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -trait_adaptation: - trait_precedence ';' - { - $$ = $1; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.NameList, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | trait_alias ';' - { - $$ = $1; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Alias, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -trait_precedence: - absolute_trait_method_reference T_INSTEADOF name_list - { - $$ = stmt.NewTraitUsePrecedence($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -trait_alias: - trait_method_reference T_AS T_STRING - { - alias := node.NewIdentifier($3.Value) - $$ = stmt.NewTraitUseAlias($1, nil, alias) - - // save position - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | trait_method_reference T_AS reserved_non_modifiers - { - alias := node.NewIdentifier($3.Value) - $$ = stmt.NewTraitUseAlias($1, nil, alias) - - // save position - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | trait_method_reference T_AS member_modifier identifier - { - alias := node.NewIdentifier($4.Value) - $$ = stmt.NewTraitUseAlias($1, $3, alias) - - // save position - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | trait_method_reference T_AS member_modifier - { - $$ = stmt.NewTraitUseAlias($1, $3, nil) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -trait_method_reference: - identifier - { - name := node.NewIdentifier($1.Value) - $$ = stmt.NewTraitMethodRef(nil, name) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | absolute_trait_method_reference - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -absolute_trait_method_reference: - name T_PAAMAYIM_NEKUDOTAYIM identifier - { - target := node.NewIdentifier($3.Value) - $$ = stmt.NewTraitMethodRef($1, target) - - // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -method_body: - ';' /* abstract method */ - { - $$ = stmt.NewNop() - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '{' inner_statement_list '}' - { - $$ = stmt.NewStmtList($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -variable_modifiers: - non_empty_member_modifiers - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_VAR - { - modifier := node.NewIdentifier($1.Value) - $$ = []node.Node{modifier} - - // save position - modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating(modifier, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -method_modifiers: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | non_empty_member_modifiers - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -non_empty_member_modifiers: - member_modifier - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | non_empty_member_modifiers member_modifier - { - $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -member_modifier: - T_PUBLIC - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_PROTECTED - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_PRIVATE - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_STATIC - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_ABSTRACT - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FINAL - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -property_list: - property_list ',' property - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | property - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -property: - T_VARIABLE backup_doc_comment - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = stmt.NewProperty(variable, nil, $2) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_VARIABLE '=' expr backup_doc_comment - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = stmt.NewProperty(variable, $3, $4) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_const_list: - class_const_list ',' class_const_decl - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | class_const_decl - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_const_decl: - identifier '=' expr backup_doc_comment - { - name := node.NewIdentifier($1.Value) - $$ = stmt.NewConstant(name, $3, $4) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -const_decl: - T_STRING '=' expr backup_doc_comment - { - name := node.NewIdentifier($1.Value) - $$ = stmt.NewConstant(name, $3, $4) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -echo_expr_list: - echo_expr_list ',' echo_expr - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | echo_expr - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -echo_expr: - expr - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -for_exprs: - /* empty */ - { - $$ = nil; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | non_empty_for_exprs - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -non_empty_for_exprs: - non_empty_for_exprs ',' expr - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -anonymous_class: - T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' - { - if $2 != nil { - $$ = stmt.NewClass(nil, nil, $2.(*node.ArgumentList), $3, $4, $7, $5) - } else { - $$ = stmt.NewClass(nil, nil, nil, $3, $4, $7, $5) - } - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $8.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -new_expr: - T_NEW class_name_reference ctor_arguments - { - if $3 != nil { - $$ = expr.NewNew($2, $3.(*node.ArgumentList)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - } else { - $$ = expr.NewNew($2, nil) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - } - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NEW anonymous_class - { - $$ = expr.NewNew($2, nil) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -expr_without_variable: - T_LIST '(' array_pair_list ')' '=' expr - { - listNode := expr.NewList($3) - $$ = assign.NewAssign(listNode, $6) - - // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $5.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '[' array_pair_list ']' '=' expr - { - shortList := expr.NewShortList($2) - $$ = assign.NewAssign(shortList, $5) - - // save position - shortList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(shortList, freefloating.ArrayPairList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | variable '=' expr - { - $$ = assign.NewAssign($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 '=' '&' expr - { - $$ = assign.NewReference($1, $4) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Equal, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CLONE expr - { - $$ = expr.NewClone($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | variable T_PLUS_EQUAL expr - { - $$ = assign.NewPlus($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_MINUS_EQUAL expr - { - $$ = assign.NewMinus($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_MUL_EQUAL expr - { - $$ = assign.NewMul($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_POW_EQUAL expr - { - $$ = assign.NewPow($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_DIV_EQUAL expr - { - $$ = assign.NewDiv($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_CONCAT_EQUAL expr - { - $$ = assign.NewConcat($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_MOD_EQUAL expr - { - $$ = assign.NewMod($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_AND_EQUAL expr - { - $$ = assign.NewBitwiseAnd($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_OR_EQUAL expr - { - $$ = assign.NewBitwiseOr($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_XOR_EQUAL expr - { - $$ = assign.NewBitwiseXor($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_SL_EQUAL expr - { - $$ = assign.NewShiftLeft($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_SR_EQUAL expr - { - $$ = assign.NewShiftRight($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_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 - { - $$ = expr.NewPostInc($1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_INC variable - { - $$ = expr.NewPreInc($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | variable T_DEC - { - $$ = expr.NewPostDec($1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DEC variable - { - $$ = expr.NewPreDec($2) - - // 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_BOOLEAN_OR expr - { - $$ = binary.NewBooleanOr($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_BOOLEAN_AND expr - { - $$ = binary.NewBooleanAnd($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_LOGICAL_OR expr - { - $$ = binary.NewLogicalOr($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_LOGICAL_AND expr - { - $$ = binary.NewLogicalAnd($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_LOGICAL_XOR expr - { - $$ = binary.NewLogicalXor($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '|' expr - { - $$ = binary.NewBitwiseOr($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '&' expr - { - $$ = binary.NewBitwiseAnd($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '^' expr - { - $$ = binary.NewBitwiseXor($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '.' expr - { - $$ = binary.NewConcat($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '+' expr - { - $$ = binary.NewPlus($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '-' expr - { - $$ = binary.NewMinus($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '*' expr - { - $$ = binary.NewMul($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_POW expr - { - $$ = binary.NewPow($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '/' expr - { - $$ = binary.NewDiv($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '%' expr - { - $$ = binary.NewMod($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_SL expr - { - $$ = binary.NewShiftLeft($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_SR expr - { - $$ = binary.NewShiftRight($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '+' expr %prec T_INC - { - $$ = expr.NewUnaryPlus($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '-' expr %prec T_INC - { - $$ = expr.NewUnaryMinus($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '!' expr - { - $$ = expr.NewBooleanNot($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '~' expr - { - $$ = expr.NewBitwiseNot($2) - - // 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_IS_IDENTICAL expr - { - $$ = binary.NewIdentical($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_IS_NOT_IDENTICAL expr - { - $$ = binary.NewNotIdentical($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_IS_EQUAL expr - { - $$ = binary.NewEqual($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_IS_NOT_EQUAL expr - { - $$ = binary.NewNotEqual($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '<' expr - { - $$ = binary.NewSmaller($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_IS_SMALLER_OR_EQUAL expr - { - $$ = binary.NewSmallerOrEqual($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '>' expr - { - $$ = binary.NewGreater($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_IS_GREATER_OR_EQUAL expr - { - $$ = binary.NewGreaterOrEqual($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_SPACESHIP expr - { - $$ = binary.NewSpaceship($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_INSTANCEOF class_name_reference - { - $$ = expr.NewInstanceOf($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '(' expr ')' - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | new_expr - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '?' expr ':' expr - { - $$ = expr.NewTernary($1, $3, $5) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.True, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr '?' ':' expr - { - $$ = expr.NewTernary($1, nil, $4) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.True, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_COALESCE expr - { - $$ = binary.NewCoalesce($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | internal_functions_in_yacc - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_INT_CAST expr - { - $$ = cast.NewInt($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DOUBLE_CAST expr - { - $$ = cast.NewDouble($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_STRING_CAST expr - { - $$ = cast.NewString($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_ARRAY_CAST expr - { - $$ = cast.NewArray($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_OBJECT_CAST expr - { - $$ = cast.NewObject($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_BOOL_CAST expr - { - $$ = cast.NewBool($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_UNSET_CAST expr - { - $$ = cast.NewUnset($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_EXIT exit_expr - { - var e *expr.Exit; - if $2 != nil { - e = $2.(*expr.Exit) - } else { - e = expr.NewExit(nil) - } - - $$ = e - - if (strings.EqualFold($1.Value, "die")) { - e.Die = true - } - - // save position - if $2 == nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - } - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '@' expr - { - $$ = expr.NewErrorSuppress($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | scalar - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '`' backticks_expr '`' - { - $$ = expr.NewShellExec($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_PRINT expr - { - $$ = expr.NewPrint($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_YIELD - { - $$ = expr.NewYield(nil, nil) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_YIELD expr - { - $$ = expr.NewYield(nil, $2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_YIELD expr T_DOUBLE_ARROW expr - { - $$ = expr.NewYield($2, $4) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_YIELD_FROM expr - { - $$ = expr.NewYieldFrom($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | 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) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if $2 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $4.FreeFloating) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $4.FreeFloating) - } - yylex.(*Parser).setFreeFloating($$, freefloating.ParameterList, $6.FreeFloating) - if $8 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVars, (*$8.GetFreeFloating())[freefloating.Colon]); delete((*$8.GetFreeFloating()), freefloating.Colon) - } - yylex.(*Parser).setFreeFloating($$, freefloating.ReturnType, $9.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $11.FreeFloating) - - // normalize - if $8 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVars, (*$$.GetFreeFloating())[freefloating.ReturnType]); delete((*$$.GetFreeFloating()), freefloating.ReturnType) - } - if $7 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$$.GetFreeFloating())[freefloating.LexicalVarList]); delete((*$$.GetFreeFloating()), freefloating.LexicalVarList) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr - { - $$ = expr.NewArrowFunction($4, $6, $9, false, $2 != nil, $7) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if $2 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $3.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 $6 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$$.GetFreeFloating())[freefloating.ReturnType]); delete((*$$.GetFreeFloating()), freefloating.ReturnType) - }; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -backup_doc_comment: - /* empty */ - { - $$ = yylex.(*Parser).Lexer.GetPhpDocComment() - yylex.(*Parser).Lexer.SetPhpDocComment("") - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -returns_ref: - /* empty */ - { - $$ = nil - } - | '&' - { - $$ = $1 - } -; - -lexical_vars: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_USE '(' lexical_var_list ')' - { - $$ = expr.NewClosureUse($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Use, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVarList, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -lexical_var_list: - lexical_var_list ',' lexical_var - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | lexical_var - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -lexical_var: - T_VARIABLE - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(identifier) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '&' T_VARIABLE - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($2.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = expr.NewReference(variable) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -function_call: - name argument_list - { - $$ = expr.NewFunctionCall($1, $2.(*node.ArgumentList)) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { - $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { - $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | callable_expr argument_list - { - $$ = expr.NewFunctionCall($1, $2.(*node.ArgumentList)) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_name: - T_STATIC - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | name - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -class_name_reference: - class_name - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | new_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -exit_expr: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '(' optional_expr ')' - { - $$ = expr.NewExit($2); - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Exit, append($1.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -backticks_expr: - /* empty */ - { - $$ = []node.Node{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_ENCAPSED_AND_WHITESPACE - { - part := scalar.NewEncapsedStringPart($1.Value) - $$ = []node.Node{part} - - // save position - part.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | encaps_list - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -ctor_arguments: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | argument_list - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -dereferencable_scalar: - T_ARRAY '(' array_pair_list ')' - { - $$ = expr.NewArray($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Array, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '[' array_pair_list ']' - { - $$ = expr.NewShortArray($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CONSTANT_ENCAPSED_STRING - { - $$ = scalar.NewString($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -scalar: - T_LNUMBER - { - $$ = scalar.NewLnumber($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DNUMBER - { - $$ = scalar.NewDnumber($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_LINE - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FILE - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DIR - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_TRAIT_C - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_METHOD_C - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_FUNC_C - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NS_C - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CLASS_C - { - $$ = scalar.NewMagicConstant($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { - encapsed := scalar.NewEncapsedStringPart($2.Value) - $$ = scalar.NewHeredoc($1.Value, []node.Node{encapsed}) - - // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_START_HEREDOC T_END_HEREDOC - { - $$ = scalar.NewHeredoc($1.Value, nil) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '"' encaps_list '"' - { - $$ = scalar.NewEncapsed($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_START_HEREDOC encaps_list T_END_HEREDOC - { - $$ = scalar.NewHeredoc($1.Value, $2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | dereferencable_scalar - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | constant - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -constant: - name - { - $$ = expr.NewConstFetch($1) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | class_name T_PAAMAYIM_NEKUDOTAYIM identifier - { - target := node.NewIdentifier($3.Value) - $$ = expr.NewClassConstFetch($1, target) - - // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier - { - target := node.NewIdentifier($3.Value) - $$ = expr.NewClassConstFetch($1, target) - - // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -expr: - variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr_without_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -optional_expr: - /* empty */ - { - $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -variable_class_name: - dereferencable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -dereferencable: - variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '(' expr ')' - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | dereferencable_scalar - { - $$ = $1; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -callable_expr: - callable_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '(' expr ')' - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | dereferencable_scalar - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -callable_variable: - simple_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | dereferencable '[' optional_expr ']' - { - $$ = expr.NewArrayDimFetch($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | constant '[' optional_expr ']' - { - $$ = expr.NewArrayDimFetch($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | dereferencable '{' expr '}' - { - $$ = expr.NewArrayDimFetch($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | dereferencable T_OBJECT_OPERATOR property_name argument_list - { - $$ = expr.NewMethodCall($1, $3, $4.(*node.ArgumentList)) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | function_call - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -variable: - callable_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | static_member - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | dereferencable T_OBJECT_OPERATOR property_name - { - $$ = expr.NewPropertyFetch($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) - } -; - -simple_variable: - T_VARIABLE - { - name := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(name) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '$' '{' expr '}' - { - $$ = expr.NewVariable($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($3, freefloating.Start, append($2.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($2), (*$3.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, freefloating.End, append((*$3.GetFreeFloating())[freefloating.End], append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '$' simple_variable - { - $$ = expr.NewVariable($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -static_member: - class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { - $$ = expr.NewStaticPropertyFetch($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { - $$ = expr.NewStaticPropertyFetch($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -new_variable: - simple_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | new_variable '[' optional_expr ']' - { - $$ = expr.NewArrayDimFetch($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | new_variable '{' expr '}' - { - $$ = expr.NewArrayDimFetch($1, $3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | new_variable T_OBJECT_OPERATOR property_name - { - $$ = expr.NewPropertyFetch($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) - } - | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable - { - $$ = expr.NewStaticPropertyFetch($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) - } - | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable - { - $$ = expr.NewStaticPropertyFetch($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) - } -; - -member_name: - identifier - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '{' expr '}' - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | simple_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -property_name: - T_STRING - { - $$ = node.NewIdentifier($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '{' expr '}' - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | simple_variable - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -array_pair_list: - non_empty_array_pair_list - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -possible_array_pair: - /* empty */ - { - $$ = expr.NewArrayItem(nil, nil, false) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | array_pair - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -non_empty_array_pair_list: - non_empty_array_pair_list ',' possible_array_pair - { - if len($1) == 0 { - $1 = []node.Node{expr.NewArrayItem(nil, nil, false)} - } - - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | possible_array_pair - { - if $1.(*expr.ArrayItem).Key == nil && $1.(*expr.ArrayItem).Val == nil { - $$ = []node.Node{} - } else { - $$ = []node.Node{$1} - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -array_pair: - expr T_DOUBLE_ARROW expr - { - $$ = expr.NewArrayItem($1, $3, false) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr - { - $$ = expr.NewArrayItem(nil, $1, false) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | expr T_DOUBLE_ARROW '&' variable - { - reference := expr.NewReference($4) - $$ = expr.NewArrayItem($1, reference, false) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '&' variable - { - reference := expr.NewReference($2) - $$ = expr.NewArrayItem(nil, reference, false) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // 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, false) - - // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $6)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6)) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, $4.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, $6.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_LIST '(' array_pair_list ')' - { - // TODO: Cannot use list() as standalone expression - listNode := expr.NewList($3) - $$ = expr.NewArrayItem(nil, listNode, false) - - // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -encaps_list: - encaps_list encaps_var - { - $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | encaps_list T_ENCAPSED_AND_WHITESPACE - { - encapsed := scalar.NewEncapsedStringPart($2.Value) - $$ = append($1, encapsed) - - // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | encaps_var - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_ENCAPSED_AND_WHITESPACE encaps_var - { - encapsed := scalar.NewEncapsedStringPart($1.Value) - $$ = []node.Node{encapsed, $2} - - // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -encaps_var: - T_VARIABLE - { - name := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(name) - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_VARIABLE '[' encaps_var_offset ']' - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = expr.NewArrayDimFetch(variable, $3) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_VARIABLE T_OBJECT_OPERATOR T_STRING - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - fetch := node.NewIdentifier($3.Value) - $$ = expr.NewPropertyFetch(variable, fetch) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Start, $3.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' - { - variable := expr.NewVariable($2) - - $$ = variable - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' - { - name := node.NewIdentifier($2.Value) - variable := expr.NewVariable(name) - - $$ = variable - - // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - { - identifier := node.NewIdentifier($2.Value) - variable := expr.NewVariable(identifier) - $$ = expr.NewArrayDimFetch(variable, $4) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($5.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($5)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($6.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($6)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_CURLY_OPEN variable '}' - { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -encaps_var_offset: - T_STRING - { - $$ = scalar.NewString($1.Value) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_NUM_STRING - { - // TODO: add option to handle 64 bit integer - if _, err := strconv.Atoi($1.Value); err == nil { - $$ = scalar.NewLnumber($1.Value) - } else { - $$ = scalar.NewString($1.Value) - } - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | '-' T_NUM_STRING - { - var lnumber *scalar.Lnumber - // TODO: add option to handle 64 bit integer - _, err := strconv.Atoi($2.Value); - isInt := err == nil - - if isInt { - lnumber = scalar.NewLnumber($2.Value) - $$ = expr.NewUnaryMinus(lnumber) - } else { - $2.Value = "-"+$2.Value - $$ = scalar.NewString($2.Value) - } - - // save position - if isInt { - lnumber.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - } - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_VARIABLE - { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(identifier) - - // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -internal_functions_in_yacc: - T_ISSET '(' isset_variables possible_comma ')' - { - $$ = expr.NewIsset($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Isset, $2.FreeFloating) - if $4 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $5.FreeFloating) - } else { - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, append($4.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.FreeFloating...)...)) - } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_EMPTY '(' expr ')' - { - $$ = expr.NewEmpty($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Empty, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_INCLUDE expr - { - $$ = expr.NewInclude($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_INCLUDE_ONCE expr - { - $$ = expr.NewIncludeOnce($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_EVAL '(' expr ')' - { - $$ = expr.NewEval($3) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Eval, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_REQUIRE expr - { - $$ = expr.NewRequire($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | T_REQUIRE_ONCE expr - { - $$ = expr.NewRequireOnce($2) - - // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - - // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -isset_variables: - isset_variable - { - $$ = []node.Node{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - | isset_variables ',' isset_variable - { - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -isset_variable: - expr - { - $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } -; - -///////////////////////////////////////////////////////////////////////// - -%% diff --git a/php7/php7_test.go b/php7/php7_test.go deleted file mode 100644 index 32b79c7..0000000 --- a/php7/php7_test.go +++ /dev/null @@ -1,16450 +0,0 @@ -package php7_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/errors" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/position" -) - -func TestPhp7(t *testing.T) { - src := `bar($a, ...$b); - foo::bar($a, ...$b); - $foo::bar($a, ...$b); - new foo($a, ...$b); - /** anonymous class */ - new class ($a, ...$b) {}; - new class {}; - new $foo; - new $foo[1]; - new $foo{$bar}; - new $foo->bar; - new $foo::$bar; - new static::$bar; - - function foo(?bar $bar=null, baz &...$baz) {} - class foo {public function foo(?bar $bar=null, baz &...$baz) {}} - function(?bar $bar=null, baz &...$baz) {}; - static function(?bar $bar=null, baz &...$baz) {}; - - 1234567890123456789; - 12345678901234567890; - 0.; - 0b0111111111111111111111111111111111111111111111111111111111111111; - 0b1111111111111111111111111111111111111111111111111111111111111111; - 0x007111111111111111; - 0x8111111111111111; - __CLASS__; - __DIR__; - __FILE__; - __FUNCTION__; - __LINE__; - __NAMESPACE__; - __METHOD__; - __TRAIT__; - - "test $var"; - "test $var[1]"; - "test $var[-1]"; - "test $var[1234567890123456789012345678901234567890]"; - "test $var[-1234567890123456789012345678901234567890]"; - "test $var[bar]"; - "test $var[$bar]"; - "$foo $bar"; - "test $foo->bar()"; - "test ${foo}"; - "test ${foo[0]}"; - "test ${$foo}"; - "test {$foo->bar()}"; - - if ($a) : - endif; - if ($a) : - elseif ($b): - endif; - if ($a) : - else: - endif; - if ($a) : - elseif ($b): - elseif ($c): - else: - endif; - - while (1) { break; } - while (1) { break 2; } - while (1) : break(3); endwhile; - class foo{ public const FOO = 1, BAR = 2; } - class foo{ const FOO = 1, BAR = 2; } - class foo{ function bar() {} } - class foo{ public static function &bar() {} } - class foo{ public static function &bar(): void {} } - abstract class foo{ } - final class foo extends bar { } - final class foo implements bar { } - final class foo implements bar, baz { } - new class() extends foo implements bar, baz { }; - - const FOO = 1, BAR = 2; - while (1) { continue; } - while (1) { continue 2; } - while (1) { continue(3); } - declare(ticks=1); - declare(ticks=1) {} - declare(ticks=1): enddeclare; - do {} while(1); - echo $a, 1; - echo($a); - for($i = 0; $i < 10; $i++, $i++) {} - for(; $i < 10; $i++, $i++) : endfor; - foreach ($a as $v) {} - foreach ($a as $v) : endforeach; - foreach ($a as $k => $v) {} - foreach ($a as $k => &$v) {} - foreach ($a as $k => list($v)) {} - foreach ($a as $k => [$v]) {} - function foo() {} - function foo() {return;} - function &foo() {return 1;} - function &foo(): void {} - global $a, $b; - a: - goto a; - if ($a) {} - if ($a) {} elseif ($b) {} - if ($a) {} else {} - if ($a) {} elseif ($b) {} elseif ($c) {} else {} - if ($a) {} elseif ($b) {} else if ($c) {} else {} - ?>
1, &$b,); - ~$a; - !$a; - - Foo::Bar; - $foo::Bar; - clone($a); - clone $a; - function(){}; - function($a, $b) use ($c, &$d) {}; - function(): void {}; - foo; - namespace\foo; - \foo; - - empty($a); - @$a; - eval($a); - exit; - exit($a); - die; - die($a); - foo(); - namespace\foo(); - \foo(); - $foo(); - - $a--; - $a++; - --$a; - ++$a; - - include $a; - include_once $a; - require $a; - require_once $a; - - $a instanceof Foo; - $a instanceof namespace\Foo; - $a instanceof \Foo; - - isset($a, $b); - list($a) = $b; - list($a[]) = $b; - list(list($a)) = $b; - - $a->foo(); - new Foo(); - new namespace\Foo(); - new \Foo(); - new class ($a, ...$b) {}; - print($a); - $a->foo; - ` + "`cmd $a`;" + ` - ` + "`cmd`;" + ` - ` + "``;" + ` - []; - [1]; - [1=>1, &$b,]; - - [$a] = $b; - [$a[]] = $b; - [list($a)] = $b; - Foo::bar(); - namespace\Foo::bar(); - \Foo::bar(); - Foo::$bar; - $foo::$bar; - namespace\Foo::$bar; - \Foo::$bar; - $a ? $b : $c; - $a ? : $c; - $a ? $b ? $c : $d : $e; - $a ? $b : $c ? $d : $e; - -$a; - +$a; - $$a; - yield; - yield $a; - yield $a => $b; - yield from $a; - - (array)$a; - (boolean)$a; - (bool)$a; - (double)$a; - (float)$a; - (integer)$a; - (int)$a; - (object)$a; - (string)$a; - (unset)$a; - - $a & $b; - $a | $b; - $a ^ $b; - $a && $b; - $a || $b; - $a ?? $b; - $a . $b; - $a / $b; - $a == $b; - $a >= $b; - $a > $b; - $a === $b; - $a and $b; - $a or $b; - $a xor $b; - $a - $b; - $a % $b; - $a * $b; - $a != $b; - $a !== $b; - $a + $b; - $a ** $b; - $a << $b; - $a >> $b; - $a <= $b; - $a < $b; - $a <=> $b; - - $a =& $b; - $a = $b; - $a &= $b; - $a |= $b; - $a ^= $b; - $a .= $b; - $a /= $b; - $a -= $b; - $a %= $b; - $a *= $b; - $a += $b; - $a **= $b; - $a <<= $b; - $a >>= $b; - - class foo {public function class() {} } - \foo\bar(); - - function foo(&$a, ...$b) { - - function bar() {} - class Baz {} - trait Quux{} - interface Quuux {} - } - - function foo(&$a = 1, ...$b = 1, $c = 1) {} - function foo(array $a, callable $b) {} - abstract final class foo { abstract protected static function bar(); final private function baz() {} } - - (new Foo)->bar; - (new Foo)(); - [$foo][0](); - foo[1](); - "foo"(); - [1]{$foo}(); - ${foo()}; - - Foo::$bar(); - Foo::{$bar[0]}(); - - $foo->$bar; - $foo->{$bar[0]}; - - [1=>&$a, 2=>list($b)]; - - __halt_compiler(); - - parsing process must be terminated - ` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 2, - EndLine: 348, - StartPos: 5, - EndPos: 6319, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 5, - EndPos: 20, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 5, - EndPos: 19, - }, - Function: &name.Name{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 5, - EndPos: 8, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 5, - EndPos: 8, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 8, - EndPos: 19, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 11, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 11, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 11, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 13, - EndPos: 18, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 16, - EndPos: 18, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 16, - EndPos: 18, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 23, - EndPos: 39, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 23, - EndPos: 38, - }, - Function: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 23, - EndPos: 27, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 23, - EndPos: 27, - }, - Value: "foo", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 27, - EndPos: 38, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 30, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 30, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 30, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 32, - EndPos: 37, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 35, - EndPos: 37, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 35, - EndPos: 37, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 42, - EndPos: 63, - }, - Expr: &expr.MethodCall{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 42, - EndPos: 62, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 42, - EndPos: 46, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 42, - EndPos: 46, - }, - Value: "foo", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 48, - EndPos: 51, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 51, - EndPos: 62, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 52, - EndPos: 54, - }, - IsReference: false, - Variadic: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 52, - EndPos: 54, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 52, - EndPos: 54, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 56, - EndPos: 61, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 59, - EndPos: 61, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 59, - EndPos: 61, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 86, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 85, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 69, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 69, - }, - Value: "foo", - }, - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 71, - EndPos: 74, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 74, - EndPos: 85, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 75, - EndPos: 77, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 75, - EndPos: 77, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 75, - EndPos: 77, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 79, - EndPos: 84, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 82, - EndPos: 84, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 82, - EndPos: 84, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 110, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 109, - }, - Class: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 93, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 93, - }, - Value: "foo", - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 95, - EndPos: 98, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 98, - EndPos: 109, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 99, - EndPos: 101, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 99, - EndPos: 101, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 99, - EndPos: 101, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 103, - EndPos: 108, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 106, - EndPos: 108, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 106, - EndPos: 108, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 113, - EndPos: 132, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 113, - EndPos: 131, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 117, - EndPos: 120, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 117, - EndPos: 120, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 120, - EndPos: 131, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 121, - EndPos: 123, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 121, - EndPos: 123, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 121, - EndPos: 123, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 125, - EndPos: 130, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 128, - EndPos: 130, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 128, - EndPos: 130, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 160, - EndPos: 185, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 160, - EndPos: 184, - }, - Class: &stmt.Class{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 164, - EndPos: 184, - }, - PhpDocComment: "/** anonymous class */", - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 170, - EndPos: 181, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 171, - EndPos: 173, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 171, - EndPos: 173, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 171, - EndPos: 173, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 175, - EndPos: 180, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 178, - EndPos: 180, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 178, - EndPos: 180, - }, - Value: "b", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 188, - EndPos: 201, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 188, - EndPos: 200, - }, - Class: &stmt.Class{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 192, - EndPos: 200, - }, - PhpDocComment: "", - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 204, - EndPos: 213, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 204, - EndPos: 212, - }, - Class: &expr.Variable{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 208, - EndPos: 212, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 208, - EndPos: 212, - }, - Value: "foo", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 216, - EndPos: 228, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 216, - EndPos: 227, - }, - Class: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 220, - EndPos: 227, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 220, - EndPos: 224, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 220, - EndPos: 224, - }, - Value: "foo", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 225, - EndPos: 226, - }, - Value: "1", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 231, - EndPos: 246, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 231, - EndPos: 245, - }, - Class: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 235, - EndPos: 245, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 235, - EndPos: 239, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 235, - EndPos: 239, - }, - Value: "foo", - }, - }, - Dim: &expr.Variable{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 240, - EndPos: 244, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 240, - EndPos: 244, - }, - Value: "bar", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 249, - EndPos: 263, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 249, - EndPos: 262, - }, - Class: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 253, - EndPos: 262, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 253, - EndPos: 257, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 253, - EndPos: 257, - }, - Value: "foo", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 259, - EndPos: 262, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 266, - EndPos: 281, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 266, - EndPos: 280, - }, - Class: &expr.StaticPropertyFetch{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 270, - EndPos: 280, - }, - Class: &expr.Variable{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 270, - EndPos: 274, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 270, - EndPos: 274, - }, - Value: "foo", - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 276, - EndPos: 280, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 276, - EndPos: 280, - }, - Value: "bar", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 284, - EndPos: 301, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 284, - EndPos: 300, - }, - Class: &expr.StaticPropertyFetch{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 288, - EndPos: 300, - }, - Class: &node.Identifier{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 288, - EndPos: 294, - }, - Value: "static", - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 296, - EndPos: 300, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 296, - EndPos: 300, - }, - Value: "bar", - }, - }, - }, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 305, - EndPos: 350, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 314, - EndPos: 317, - }, - Value: "foo", - }, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 318, - EndPos: 332, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Nullable{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 318, - EndPos: 322, - }, - Expr: &name.Name{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 319, - EndPos: 322, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 319, - EndPos: 322, - }, - Value: "bar", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 323, - EndPos: 327, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 323, - EndPos: 327, - }, - Value: "bar", - }, - }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 328, - EndPos: 332, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 328, - EndPos: 332, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 328, - EndPos: 332, - }, - Value: "null", - }, - }, - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 334, - EndPos: 346, - }, - Variadic: true, - ByRef: true, - VariableType: &name.Name{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 334, - EndPos: 337, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 334, - EndPos: 337, - }, - Value: "baz", - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 342, - EndPos: 346, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 342, - EndPos: 346, - }, - Value: "baz", - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 353, - EndPos: 417, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 359, - EndPos: 362, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 364, - EndPos: 416, - }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 380, - EndPos: 383, - }, - Value: "foo", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 364, - EndPos: 370, - }, - Value: "public", - }, - }, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 384, - EndPos: 398, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Nullable{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 384, - EndPos: 388, - }, - Expr: &name.Name{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 385, - EndPos: 388, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 385, - EndPos: 388, - }, - Value: "bar", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 389, - EndPos: 393, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 389, - EndPos: 393, - }, - Value: "bar", - }, - }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 394, - EndPos: 398, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 394, - EndPos: 398, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 394, - EndPos: 398, - }, - Value: "null", - }, - }, - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 400, - EndPos: 412, - }, - ByRef: true, - Variadic: true, - VariableType: &name.Name{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 400, - EndPos: 403, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 400, - EndPos: 403, - }, - Value: "baz", - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 408, - EndPos: 412, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 408, - EndPos: 412, - }, - Value: "baz", - }, - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 414, - EndPos: 416, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 420, - EndPos: 462, - }, - Expr: &expr.Closure{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 420, - EndPos: 461, - }, - PhpDocComment: "", - ReturnsRef: false, - Static: false, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 429, - EndPos: 443, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Nullable{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 429, - EndPos: 433, - }, - Expr: &name.Name{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 430, - EndPos: 433, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 430, - EndPos: 433, - }, - Value: "bar", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 434, - EndPos: 438, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 434, - EndPos: 438, - }, - Value: "bar", - }, - }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 439, - EndPos: 443, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 439, - EndPos: 443, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 439, - EndPos: 443, - }, - Value: "null", - }, - }, - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 445, - EndPos: 457, - }, - ByRef: true, - Variadic: true, - VariableType: &name.Name{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 445, - EndPos: 448, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 445, - EndPos: 448, - }, - Value: "baz", - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 453, - EndPos: 457, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 453, - EndPos: 457, - }, - Value: "baz", - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 465, - EndPos: 514, - }, - Expr: &expr.Closure{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 465, - EndPos: 513, - }, - PhpDocComment: "", - ReturnsRef: false, - Static: true, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 481, - EndPos: 495, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Nullable{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 481, - EndPos: 485, - }, - Expr: &name.Name{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 482, - EndPos: 485, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 482, - EndPos: 485, - }, - Value: "bar", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 486, - EndPos: 490, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 486, - EndPos: 490, - }, - Value: "bar", - }, - }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 491, - EndPos: 495, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 491, - EndPos: 495, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 491, - EndPos: 495, - }, - Value: "null", - }, - }, - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 497, - EndPos: 509, - }, - ByRef: true, - Variadic: true, - VariableType: &name.Name{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 497, - EndPos: 500, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 497, - EndPos: 500, - }, - Value: "baz", - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 505, - EndPos: 509, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 505, - EndPos: 509, - }, - Value: "baz", - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 23, - EndLine: 23, - StartPos: 518, - EndPos: 538, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 23, - EndLine: 23, - StartPos: 518, - EndPos: 537, - }, - Value: "1234567890123456789", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 24, - EndLine: 24, - StartPos: 541, - EndPos: 562, - }, - Expr: &scalar.Dnumber{ - Position: &position.Position{ - StartLine: 24, - EndLine: 24, - StartPos: 541, - EndPos: 561, - }, - Value: "12345678901234567890", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 25, - EndLine: 25, - StartPos: 565, - EndPos: 568, - }, - Expr: &scalar.Dnumber{ - Position: &position.Position{ - StartLine: 25, - EndLine: 25, - StartPos: 565, - EndPos: 567, - }, - Value: "0.", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 26, - EndLine: 26, - StartPos: 571, - EndPos: 638, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 26, - EndLine: 26, - StartPos: 571, - EndPos: 637, - }, - Value: "0b0111111111111111111111111111111111111111111111111111111111111111", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 27, - EndLine: 27, - StartPos: 641, - EndPos: 708, - }, - Expr: &scalar.Dnumber{ - Position: &position.Position{ - StartLine: 27, - EndLine: 27, - StartPos: 641, - EndPos: 707, - }, - Value: "0b1111111111111111111111111111111111111111111111111111111111111111", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 28, - EndLine: 28, - StartPos: 711, - EndPos: 732, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 28, - EndLine: 28, - StartPos: 711, - EndPos: 731, - }, - Value: "0x007111111111111111", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 29, - EndLine: 29, - StartPos: 735, - EndPos: 754, - }, - Expr: &scalar.Dnumber{ - Position: &position.Position{ - StartLine: 29, - EndLine: 29, - StartPos: 735, - EndPos: 753, - }, - Value: "0x8111111111111111", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 757, - EndPos: 767, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 757, - EndPos: 766, - }, - Value: "__CLASS__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 770, - EndPos: 778, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 770, - EndPos: 777, - }, - Value: "__DIR__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 781, - EndPos: 790, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 781, - EndPos: 789, - }, - Value: "__FILE__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 793, - EndPos: 806, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 793, - EndPos: 805, - }, - Value: "__FUNCTION__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 809, - EndPos: 818, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 809, - EndPos: 817, - }, - Value: "__LINE__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 821, - EndPos: 835, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 821, - EndPos: 834, - }, - Value: "__NAMESPACE__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 838, - EndPos: 849, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 838, - EndPos: 848, - }, - Value: "__METHOD__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 852, - EndPos: 862, - }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 852, - EndPos: 861, - }, - Value: "__TRAIT__", - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 866, - EndPos: 878, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 866, - EndPos: 877, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 867, - EndPos: 872, - }, - Value: "test ", - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 872, - EndPos: 876, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 872, - EndPos: 876, - }, - Value: "var", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 881, - EndPos: 896, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 881, - EndPos: 895, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 882, - EndPos: 887, - }, - Value: "test ", - }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 887, - EndPos: 894, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 887, - EndPos: 891, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 887, - EndPos: 891, - }, - Value: "var", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 892, - EndPos: 893, - }, - Value: "1", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 899, - EndPos: 915, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 899, - EndPos: 914, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 900, - EndPos: 905, - }, - Value: "test ", - }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 905, - EndPos: 913, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 905, - EndPos: 909, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 905, - EndPos: 909, - }, - Value: "var", - }, - }, - Dim: &expr.UnaryMinus{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 910, - EndPos: 912, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 910, - EndPos: 912, - }, - Value: "1", - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 918, - EndPos: 972, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 918, - EndPos: 971, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 919, - EndPos: 924, - }, - Value: "test ", - }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 924, - EndPos: 970, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 924, - EndPos: 928, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 924, - EndPos: 928, - }, - Value: "var", - }, - }, - Dim: &scalar.String{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 929, - EndPos: 969, - }, - Value: "1234567890123456789012345678901234567890", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 975, - EndPos: 1030, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 975, - EndPos: 1029, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 976, - EndPos: 981, - }, - Value: "test ", - }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 981, - EndPos: 1028, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 981, - EndPos: 985, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 981, - EndPos: 985, - }, - Value: "var", - }, - }, - Dim: &scalar.String{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 986, - EndPos: 1027, - }, - Value: "-1234567890123456789012345678901234567890", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 1033, - EndPos: 1050, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 1033, - EndPos: 1049, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 1034, - EndPos: 1039, - }, - Value: "test ", - }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 1039, - EndPos: 1048, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 1039, - EndPos: 1043, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 1039, - EndPos: 1043, - }, - Value: "var", - }, - }, - Dim: &scalar.String{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 1044, - EndPos: 1047, - }, - Value: "bar", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1053, - EndPos: 1071, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1053, - EndPos: 1070, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1054, - EndPos: 1059, - }, - Value: "test ", - }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1059, - EndPos: 1069, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1059, - EndPos: 1063, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1059, - EndPos: 1063, - }, - Value: "var", - }, - }, - Dim: &expr.Variable{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1064, - EndPos: 1068, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 1064, - EndPos: 1068, - }, - Value: "bar", - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 1074, - EndPos: 1086, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 1074, - EndPos: 1085, - }, - Parts: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 1075, - EndPos: 1079, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 1075, - EndPos: 1079, - }, - Value: "foo", - }, - }, - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 1079, - EndPos: 1080, - }, - Value: " ", - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 1080, - EndPos: 1084, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 1080, - EndPos: 1084, - }, - Value: "bar", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1089, - EndPos: 1108, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1089, - EndPos: 1107, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1090, - EndPos: 1095, - }, - Value: "test ", - }, - &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1095, - EndPos: 1104, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1095, - EndPos: 1099, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1095, - EndPos: 1099, - }, - Value: "foo", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1101, - EndPos: 1104, - }, - Value: "bar", - }, - }, - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1104, - EndPos: 1106, - }, - Value: "()", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1111, - EndPos: 1125, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1111, - EndPos: 1124, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1112, - EndPos: 1117, - }, - Value: "test ", - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1117, - EndPos: 1123, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1119, - EndPos: 1122, - }, - Value: "foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1128, - EndPos: 1145, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1128, - EndPos: 1144, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1129, - EndPos: 1134, - }, - Value: "test ", - }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1134, - EndPos: 1143, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1136, - EndPos: 1139, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1136, - EndPos: 1139, - }, - Value: "foo", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1140, - EndPos: 1141, - }, - Value: "0", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1148, - EndPos: 1163, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1148, - EndPos: 1162, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1149, - EndPos: 1154, - }, - Value: "test ", - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1154, - EndPos: 1161, - }, - VarName: &expr.Variable{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1156, - EndPos: 1160, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1156, - EndPos: 1160, - }, - Value: "foo", - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1166, - EndPos: 1187, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1166, - EndPos: 1186, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1167, - EndPos: 1172, - }, - Value: "test ", - }, - &expr.MethodCall{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1173, - EndPos: 1184, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1173, - EndPos: 1177, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1173, - EndPos: 1177, - }, - Value: "foo", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1179, - EndPos: 1182, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1182, - EndPos: 1184, - }, - }, - }, - }, - }, - }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 53, - EndLine: 54, - StartPos: 1191, - EndPos: 1209, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 53, - EndLine: 53, - StartPos: 1195, - EndPos: 1197, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 53, - EndLine: 53, - StartPos: 1195, - EndPos: 1197, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 55, - EndLine: 57, - StartPos: 1212, - EndPos: 1245, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 1216, - EndPos: 1218, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 1216, - EndPos: 1218, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Position: &position.Position{ - StartLine: 56, - EndLine: -1, - StartPos: 1224, - EndPos: -1, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1232, - EndPos: 1234, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1232, - EndPos: 1234, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 58, - EndLine: 60, - StartPos: 1248, - EndPos: 1274, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1252, - EndPos: 1254, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1252, - EndPos: 1254, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - Else: &stmt.AltElse{ - Position: &position.Position{ - StartLine: 59, - EndLine: -1, - StartPos: 1260, - EndPos: -1, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 61, - EndLine: 65, - StartPos: 1277, - EndPos: 1333, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1281, - EndPos: 1283, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1281, - EndPos: 1283, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Position: &position.Position{ - StartLine: 62, - EndLine: -1, - StartPos: 1289, - EndPos: -1, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1297, - EndPos: 1299, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1297, - EndPos: 1299, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.AltElseIf{ - Position: &position.Position{ - StartLine: 63, - EndLine: -1, - StartPos: 1304, - EndPos: -1, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1312, - EndPos: 1314, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1312, - EndPos: 1314, - }, - Value: "c", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - }, - Else: &stmt.AltElse{ - Position: &position.Position{ - StartLine: 64, - EndLine: -1, - StartPos: 1319, - EndPos: -1, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.While{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1337, - EndPos: 1357, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1344, - EndPos: 1345, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1347, - EndPos: 1357, - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1349, - EndPos: 1355, - }, - }, - }, - }, - }, - &stmt.While{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1360, - EndPos: 1382, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1367, - EndPos: 1368, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1370, - EndPos: 1382, - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1372, - EndPos: 1380, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1378, - EndPos: 1379, - }, - Value: "2", - }, - }, - }, - }, - }, - &stmt.AltWhile{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1385, - EndPos: 1416, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1392, - EndPos: 1393, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1397, - EndPos: 1406, - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1397, - EndPos: 1406, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1403, - EndPos: 1404, - }, - Value: "3", - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1419, - EndPos: 1462, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1425, - EndPos: 1428, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.ClassConstList{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1430, - EndPos: 1460, - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1430, - EndPos: 1436, - }, - Value: "public", - }, - }, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1443, - EndPos: 1450, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1443, - EndPos: 1446, - }, - Value: "FOO", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1449, - EndPos: 1450, - }, - Value: "1", - }, - }, - &stmt.Constant{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1452, - EndPos: 1459, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1452, - EndPos: 1455, - }, - Value: "BAR", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1458, - EndPos: 1459, - }, - Value: "2", - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1465, - EndPos: 1501, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1471, - EndPos: 1474, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.ClassConstList{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1476, - EndPos: 1499, - }, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1482, - EndPos: 1489, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1482, - EndPos: 1485, - }, - Value: "FOO", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1488, - EndPos: 1489, - }, - Value: "1", - }, - }, - &stmt.Constant{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1491, - EndPos: 1498, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1491, - EndPos: 1494, - }, - Value: "BAR", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1497, - EndPos: 1498, - }, - Value: "2", - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1504, - EndPos: 1534, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1510, - EndPos: 1513, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1515, - EndPos: 1532, - }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1524, - EndPos: 1527, - }, - Value: "bar", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1530, - EndPos: 1532, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1537, - EndPos: 1582, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1543, - EndPos: 1546, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1548, - EndPos: 1580, - }, - ReturnsRef: true, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1572, - EndPos: 1575, - }, - Value: "bar", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1548, - EndPos: 1554, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1555, - EndPos: 1561, - }, - Value: "static", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1578, - EndPos: 1580, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1585, - EndPos: 1636, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1591, - EndPos: 1594, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1596, - EndPos: 1634, - }, - ReturnsRef: true, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1620, - EndPos: 1623, - }, - Value: "bar", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1596, - EndPos: 1602, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1603, - EndPos: 1609, - }, - Value: "static", - }, - }, - ReturnType: &name.Name{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1627, - EndPos: 1631, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1627, - EndPos: 1631, - }, - Value: "void", - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1632, - EndPos: 1634, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1639, - EndPos: 1660, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1654, - EndPos: 1657, - }, - Value: "foo", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1639, - EndPos: 1647, - }, - Value: "abstract", - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1663, - EndPos: 1694, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1675, - EndPos: 1678, - }, - Value: "foo", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1663, - EndPos: 1668, - }, - Value: "final", - }, - }, - Extends: &stmt.ClassExtends{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1679, - EndPos: 1690, - }, - ClassName: &name.Name{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1687, - EndPos: 1690, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1687, - EndPos: 1690, - }, - Value: "bar", - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1697, - EndPos: 1731, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1709, - EndPos: 1712, - }, - Value: "foo", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1697, - EndPos: 1702, - }, - Value: "final", - }, - }, - Implements: &stmt.ClassImplements{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1713, - EndPos: 1727, - }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1724, - EndPos: 1727, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1724, - EndPos: 1727, - }, - Value: "bar", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1734, - EndPos: 1773, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1746, - EndPos: 1749, - }, - Value: "foo", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1734, - EndPos: 1739, - }, - Value: "final", - }, - }, - Implements: &stmt.ClassImplements{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1750, - EndPos: 1769, - }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1761, - EndPos: 1764, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1761, - EndPos: 1764, - }, - Value: "bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1766, - EndPos: 1769, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1766, - EndPos: 1769, - }, - Value: "baz", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1776, - EndPos: 1824, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1776, - EndPos: 1823, - }, - Class: &stmt.Class{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1780, - EndPos: 1823, - }, - PhpDocComment: "", - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1785, - EndPos: 1787, - }, - }, - Extends: &stmt.ClassExtends{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1788, - EndPos: 1799, - }, - ClassName: &name.Name{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1796, - EndPos: 1799, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1796, - EndPos: 1799, - }, - Value: "foo", - }, - }, - }, - }, - Implements: &stmt.ClassImplements{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1800, - EndPos: 1819, - }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1811, - EndPos: 1814, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1811, - EndPos: 1814, - }, - Value: "bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1816, - EndPos: 1819, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1816, - EndPos: 1819, - }, - Value: "baz", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.ConstList{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1828, - EndPos: 1851, - }, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1834, - EndPos: 1841, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1834, - EndPos: 1837, - }, - Value: "FOO", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1840, - EndPos: 1841, - }, - Value: "1", - }, - }, - &stmt.Constant{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1843, - EndPos: 1850, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1843, - EndPos: 1846, - }, - Value: "BAR", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1849, - EndPos: 1850, - }, - Value: "2", - }, - }, - }, - }, - &stmt.While{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1854, - EndPos: 1877, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1861, - EndPos: 1862, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1864, - EndPos: 1877, - }, - Stmts: []node.Node{ - &stmt.Continue{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1866, - EndPos: 1875, - }, - }, - }, - }, - }, - &stmt.While{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1880, - EndPos: 1905, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1887, - EndPos: 1888, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1890, - EndPos: 1905, - }, - Stmts: []node.Node{ - &stmt.Continue{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1892, - EndPos: 1903, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1901, - EndPos: 1902, - }, - Value: "2", - }, - }, - }, - }, - }, - &stmt.While{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1908, - EndPos: 1934, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1915, - EndPos: 1916, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1918, - EndPos: 1934, - }, - Stmts: []node.Node{ - &stmt.Continue{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1920, - EndPos: 1932, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1929, - EndPos: 1930, - }, - Value: "3", - }, - }, - }, - }, - }, - &stmt.Declare{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1937, - EndPos: 1954, - }, - Alt: false, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1945, - EndPos: 1952, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1945, - EndPos: 1950, - }, - Value: "ticks", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1951, - EndPos: 1952, - }, - Value: "1", - }, - }, - }, - Stmt: &stmt.Nop{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1953, - EndPos: 1954, - }, - }, - }, - &stmt.Declare{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1957, - EndPos: 1976, - }, - Alt: false, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1965, - EndPos: 1972, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1965, - EndPos: 1970, - }, - Value: "ticks", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1971, - EndPos: 1972, - }, - Value: "1", - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1974, - EndPos: 1976, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Declare{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1979, - EndPos: 2008, - }, - Alt: true, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1987, - EndPos: 1994, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1987, - EndPos: 1992, - }, - Value: "ticks", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1993, - EndPos: 1994, - }, - Value: "1", - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Do{ - Position: &position.Position{ - StartLine: 88, - EndLine: 88, - StartPos: 2011, - EndPos: 2026, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 88, - EndLine: 88, - StartPos: 2014, - EndPos: 2016, - }, - Stmts: []node.Node{}, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 88, - EndLine: 88, - StartPos: 2023, - EndPos: 2024, - }, - Value: "1", - }, - }, - &stmt.Echo{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 2029, - EndPos: 2040, - }, - Exprs: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 2034, - EndPos: 2036, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 2034, - EndPos: 2036, - }, - Value: "a", - }, - }, - &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 2038, - EndPos: 2039, - }, - Value: "1", - }, - }, - }, - &stmt.Echo{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 2043, - EndPos: 2052, - }, - Exprs: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 2048, - EndPos: 2050, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 2048, - EndPos: 2050, - }, - Value: "a", - }, - }, - }, - }, - &stmt.For{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2055, - EndPos: 2090, - }, - Init: []node.Node{ - &assign.Assign{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2059, - EndPos: 2065, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2059, - EndPos: 2061, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2059, - EndPos: 2061, - }, - Value: "i", - }, - }, - Expression: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2064, - EndPos: 2065, - }, - Value: "0", - }, - }, - }, - Cond: []node.Node{ - &binary.Smaller{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2067, - EndPos: 2074, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2067, - EndPos: 2069, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2067, - EndPos: 2069, - }, - Value: "i", - }, - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2072, - EndPos: 2074, - }, - Value: "10", - }, - }, - }, - Loop: []node.Node{ - &expr.PostInc{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2076, - EndPos: 2080, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2076, - EndPos: 2078, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2076, - EndPos: 2078, - }, - Value: "i", - }, - }, - }, - &expr.PostInc{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2082, - EndPos: 2086, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2082, - EndPos: 2084, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2082, - EndPos: 2084, - }, - Value: "i", - }, - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2088, - EndPos: 2090, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.AltFor{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2093, - EndPos: 2129, - }, - Cond: []node.Node{ - &binary.Smaller{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2099, - EndPos: 2106, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2099, - EndPos: 2101, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2099, - EndPos: 2101, - }, - Value: "i", - }, - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2104, - EndPos: 2106, - }, - Value: "10", - }, - }, - }, - Loop: []node.Node{ - &expr.PostInc{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2108, - EndPos: 2112, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2108, - EndPos: 2110, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2108, - EndPos: 2110, - }, - Value: "i", - }, - }, - }, - &expr.PostInc{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2114, - EndPos: 2118, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2114, - EndPos: 2116, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 2114, - EndPos: 2116, - }, - Value: "i", - }, - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 2132, - EndPos: 2153, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 2141, - EndPos: 2143, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 2141, - EndPos: 2143, - }, - Value: "a", - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 2147, - EndPos: 2149, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 2147, - EndPos: 2149, - }, - Value: "v", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 2151, - EndPos: 2153, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.AltForeach{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2156, - EndPos: 2188, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2165, - EndPos: 2167, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2165, - EndPos: 2167, - }, - Value: "a", - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2171, - EndPos: 2173, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2171, - EndPos: 2173, - }, - Value: "v", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2191, - EndPos: 2218, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2200, - EndPos: 2202, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2200, - EndPos: 2202, - }, - Value: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2206, - EndPos: 2208, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2206, - EndPos: 2208, - }, - Value: "k", - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2212, - EndPos: 2214, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2212, - EndPos: 2214, - }, - Value: "v", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2216, - EndPos: 2218, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2221, - EndPos: 2249, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2230, - EndPos: 2232, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2230, - EndPos: 2232, - }, - Value: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2236, - EndPos: 2238, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2236, - EndPos: 2238, - }, - Value: "k", - }, - }, - Variable: &expr.Reference{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2242, - EndPos: 2245, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2243, - EndPos: 2245, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2243, - EndPos: 2245, - }, - Value: "v", - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2247, - EndPos: 2249, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2252, - EndPos: 2285, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2261, - EndPos: 2263, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2261, - EndPos: 2263, - }, - Value: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2267, - EndPos: 2269, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2267, - EndPos: 2269, - }, - Value: "k", - }, - }, - Variable: &expr.List{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2273, - EndPos: 2281, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2278, - EndPos: 2280, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2278, - EndPos: 2280, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2278, - EndPos: 2280, - }, - Value: "v", - }, - }, - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2283, - EndPos: 2285, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2288, - EndPos: 2317, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2297, - EndPos: 2299, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2297, - EndPos: 2299, - }, - Value: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2303, - EndPos: 2305, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2303, - EndPos: 2305, - }, - Value: "k", - }, - }, - Variable: &expr.ShortList{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2309, - EndPos: 2313, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2310, - EndPos: 2312, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2310, - EndPos: 2312, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2310, - EndPos: 2312, - }, - Value: "v", - }, - }, - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2315, - EndPos: 2317, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2320, - EndPos: 2337, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2329, - EndPos: 2332, - }, - Value: "foo", - }, - Stmts: []node.Node{}, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2340, - EndPos: 2364, - }, - PhpDocComment: "", - ReturnsRef: false, - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2349, - EndPos: 2352, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.Return{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2356, - EndPos: 2363, - }, - }, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2367, - EndPos: 2394, - }, - ReturnsRef: true, - PhpDocComment: "", - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2377, - EndPos: 2380, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.Return{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2384, - EndPos: 2393, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2391, - EndPos: 2392, - }, - Value: "1", - }, - }, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2397, - EndPos: 2421, - }, - ReturnsRef: true, - PhpDocComment: "", - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2407, - EndPos: 2410, - }, - Value: "foo", - }, - ReturnType: &name.Name{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2414, - EndPos: 2418, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2414, - EndPos: 2418, - }, - Value: "void", - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Global{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2424, - EndPos: 2438, - }, - Vars: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2431, - EndPos: 2433, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2431, - EndPos: 2433, - }, - Value: "a", - }, - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2435, - EndPos: 2437, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2435, - EndPos: 2437, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Label{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2441, - EndPos: 2443, - }, - LabelName: &node.Identifier{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2441, - EndPos: 2442, - }, - Value: "a", - }, - }, - &stmt.Goto{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2447, - EndPos: 2454, - }, - Label: &node.Identifier{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2452, - EndPos: 2453, - }, - Value: "a", - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2457, - EndPos: 2467, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2461, - EndPos: 2463, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2461, - EndPos: 2463, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2465, - EndPos: 2467, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2470, - EndPos: 2495, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2474, - EndPos: 2476, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2474, - EndPos: 2476, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2478, - EndPos: 2480, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2481, - EndPos: 2495, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2489, - EndPos: 2491, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2489, - EndPos: 2491, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2493, - EndPos: 2495, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2498, - EndPos: 2516, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2502, - EndPos: 2504, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2502, - EndPos: 2504, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2506, - EndPos: 2508, - }, - Stmts: []node.Node{}, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2509, - EndPos: 2516, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2514, - EndPos: 2516, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2519, - EndPos: 2567, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2523, - EndPos: 2525, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2523, - EndPos: 2525, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2527, - EndPos: 2529, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2530, - EndPos: 2544, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2538, - EndPos: 2540, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2538, - EndPos: 2540, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2542, - EndPos: 2544, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2545, - EndPos: 2559, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2553, - EndPos: 2555, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2553, - EndPos: 2555, - }, - Value: "c", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2557, - EndPos: 2559, - }, - Stmts: []node.Node{}, - }, - }, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2560, - EndPos: 2567, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2565, - EndPos: 2567, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.If{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2570, - EndPos: 2619, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2574, - EndPos: 2576, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2574, - EndPos: 2576, - }, - Value: "a", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2578, - EndPos: 2580, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2581, - EndPos: 2595, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2589, - EndPos: 2591, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2589, - EndPos: 2591, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2593, - EndPos: 2595, - }, - Stmts: []node.Node{}, - }, - }, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2596, - EndPos: 2619, - }, - Stmt: &stmt.If{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2601, - EndPos: 2619, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2605, - EndPos: 2607, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2605, - EndPos: 2607, - }, - Value: "c", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2609, - EndPos: 2611, - }, - Stmts: []node.Node{}, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2612, - EndPos: 2619, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2617, - EndPos: 2619, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - }, - &stmt.Nop{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2622, - EndPos: 2624, - }, - }, - &stmt.InlineHtml{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2624, - EndPos: 2637, - }, - Value: "
", - }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2642, - EndPos: 2658, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2652, - EndPos: 2655, - }, - Value: "Foo", - }, - Stmts: []node.Node{}, - }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2661, - EndPos: 2689, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2671, - EndPos: 2674, - }, - Value: "Foo", - }, - Extends: &stmt.InterfaceExtends{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2675, - EndPos: 2686, - }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2683, - EndPos: 2686, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2683, - EndPos: 2686, - }, - Value: "Bar", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2692, - EndPos: 2725, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2702, - EndPos: 2705, - }, - Value: "Foo", - }, - Extends: &stmt.InterfaceExtends{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2706, - EndPos: 2722, - }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2714, - EndPos: 2717, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2714, - EndPos: 2717, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2719, - EndPos: 2722, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2719, - EndPos: 2722, - }, - Value: "Baz", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Namespace{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2728, - EndPos: 2742, - }, - NamespaceName: &name.Name{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2738, - EndPos: 2741, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2738, - EndPos: 2741, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Namespace{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2745, - EndPos: 2761, - }, - NamespaceName: &name.Name{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2755, - EndPos: 2758, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2755, - EndPos: 2758, - }, - Value: "Foo", - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Namespace{ - Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2764, - EndPos: 2776, - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2779, - EndPos: 2798, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2785, - EndPos: 2788, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.PropertyList{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2790, - EndPos: 2797, - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2790, - EndPos: 2793, - }, - Value: "var", - }, - }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2794, - EndPos: 2796, - }, - PhpDocComment: "", - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2794, - EndPos: 2796, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2794, - EndPos: 2796, - }, - Value: "a", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2801, - EndPos: 2838, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2807, - EndPos: 2810, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.PropertyList{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2812, - EndPos: 2837, - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2812, - EndPos: 2818, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2819, - EndPos: 2825, - }, - Value: "static", - }, - }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2826, - EndPos: 2828, - }, - PhpDocComment: "", - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2826, - EndPos: 2828, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2826, - EndPos: 2828, - }, - Value: "a", - }, - }, - }, - &stmt.Property{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2830, - EndPos: 2836, - }, - PhpDocComment: "", - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2830, - EndPos: 2832, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2830, - EndPos: 2832, - }, - Value: "b", - }, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2835, - EndPos: 2836, - }, - Value: "1", - }, - }, - }, - }, - }, - }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2841, - EndPos: 2859, - }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2848, - EndPos: 2850, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2848, - EndPos: 2850, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2848, - EndPos: 2850, - }, - Value: "a", - }, - }, - }, - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2852, - EndPos: 2858, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2852, - EndPos: 2854, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2852, - EndPos: 2854, - }, - Value: "b", - }, - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2857, - EndPos: 2858, - }, - Value: "1", - }, - }, - }, - }, - &stmt.AltSwitch{ - Position: &position.Position{ - StartLine: 122, - EndLine: 126, - StartPos: 2863, - EndPos: 2922, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 122, - EndLine: 122, - StartPos: 2871, - EndPos: 2872, - }, - Value: "1", - }, - CaseList: &stmt.CaseList{ - Position: &position.Position{ - StartLine: 123, - EndLine: -1, - StartPos: 2879, - EndPos: -1, - }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 123, - EndLine: -1, - StartPos: 2879, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 123, - EndLine: 123, - StartPos: 2884, - EndPos: 2885, - }, - Value: "1", - }, - Stmts: []node.Node{}, - }, - &stmt.Default{ - Position: &position.Position{ - StartLine: 124, - EndLine: -1, - StartPos: 2890, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 125, - EndLine: -1, - StartPos: 2902, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 125, - EndLine: 125, - StartPos: 2907, - EndPos: 2908, - }, - Value: "2", - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.AltSwitch{ - Position: &position.Position{ - StartLine: 128, - EndLine: 131, - StartPos: 2926, - EndPos: 2974, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 128, - EndLine: 128, - StartPos: 2934, - EndPos: 2935, - }, - Value: "1", - }, - CaseList: &stmt.CaseList{ - Position: &position.Position{ - StartLine: 129, - EndLine: -1, - StartPos: 2943, - EndPos: -1, - }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 129, - EndLine: -1, - StartPos: 2943, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 129, - EndLine: 129, - StartPos: 2948, - EndPos: 2949, - }, - Value: "1", - }, - Stmts: []node.Node{}, - }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 130, - EndLine: -1, - StartPos: 2954, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2959, - EndPos: 2960, - }, - Value: "2", - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Switch{ - Position: &position.Position{ - StartLine: 133, - EndLine: 136, - StartPos: 2980, - EndPos: 3032, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 133, - EndLine: 133, - StartPos: 2988, - EndPos: 2989, - }, - Value: "1", - }, - CaseList: &stmt.CaseList{ - Position: &position.Position{ - StartLine: 133, - EndLine: 136, - StartPos: 2991, - EndPos: 3032, - }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 2996, - EndPos: 3010, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 3001, - EndPos: 3002, - }, - Value: "1", - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 3004, - EndPos: 3010, - }, - }, - }, - }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 3014, - EndPos: 3028, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 3019, - EndPos: 3020, - }, - Value: "2", - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 3022, - EndPos: 3028, - }, - }, - }, - }, - }, - }, - }, - &stmt.Switch{ - Position: &position.Position{ - StartLine: 138, - EndLine: 141, - StartPos: 3038, - EndPos: 3091, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 3046, - EndPos: 3047, - }, - Value: "1", - }, - CaseList: &stmt.CaseList{ - Position: &position.Position{ - StartLine: 138, - EndLine: 141, - StartPos: 3049, - EndPos: 3091, - }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 3055, - EndPos: 3069, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 3060, - EndPos: 3061, - }, - Value: "1", - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 3063, - EndPos: 3069, - }, - }, - }, - }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3073, - EndPos: 3087, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3078, - EndPos: 3079, - }, - Value: "2", - }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3081, - EndPos: 3087, - }, - }, - }, - }, - }, - }, - }, - &stmt.Throw{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3095, - EndPos: 3104, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3101, - EndPos: 3103, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3101, - EndPos: 3103, - }, - Value: "e", - }, - }, - }, - &stmt.Trait{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3108, - EndPos: 3120, - }, - PhpDocComment: "", - TraitName: &node.Identifier{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 3114, - EndPos: 3117, - }, - Value: "Foo", - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3123, - EndPos: 3145, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3129, - EndPos: 3132, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3135, - EndPos: 3143, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3139, - EndPos: 3142, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3139, - EndPos: 3142, - }, - Value: "Bar", - }, - }, - }, - }, - TraitAdaptationList: &stmt.Nop{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 3142, - EndPos: 3143, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3148, - EndPos: 3177, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3154, - EndPos: 3157, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3160, - EndPos: 3175, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3164, - EndPos: 3167, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3164, - EndPos: 3167, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3169, - EndPos: 3172, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3169, - EndPos: 3172, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3173, - EndPos: 3175, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3180, - EndPos: 3226, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3186, - EndPos: 3189, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3192, - EndPos: 3224, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3196, - EndPos: 3199, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3196, - EndPos: 3199, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3201, - EndPos: 3204, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3201, - EndPos: 3204, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3205, - EndPos: 3224, - }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3207, - EndPos: 3221, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3207, - EndPos: 3210, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3207, - EndPos: 3210, - }, - Value: "one", - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3214, - EndPos: 3221, - }, - Value: "include", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3229, - EndPos: 3274, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3235, - EndPos: 3238, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3241, - EndPos: 3272, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3245, - EndPos: 3248, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3245, - EndPos: 3248, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3250, - EndPos: 3253, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3250, - EndPos: 3253, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3254, - EndPos: 3272, - }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3256, - EndPos: 3269, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3256, - EndPos: 3259, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3256, - EndPos: 3259, - }, - Value: "one", - }, - }, - Modifier: &node.Identifier{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3263, - EndPos: 3269, - }, - Value: "public", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3277, - EndPos: 3326, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3283, - EndPos: 3286, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3289, - EndPos: 3324, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3293, - EndPos: 3296, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3293, - EndPos: 3296, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3298, - EndPos: 3301, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3298, - EndPos: 3301, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3302, - EndPos: 3324, - }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3304, - EndPos: 3321, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3304, - EndPos: 3307, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3304, - EndPos: 3307, - }, - Value: "one", - }, - }, - Modifier: &node.Identifier{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3311, - EndPos: 3317, - }, - Value: "public", - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3318, - EndPos: 3321, - }, - Value: "two", - }, - }, - }, - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3329, - EndPos: 3406, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3335, - EndPos: 3338, - }, - Value: "Foo", - }, - Stmts: []node.Node{ - &stmt.TraitUse{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3341, - EndPos: 3404, - }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3345, - EndPos: 3348, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3345, - EndPos: 3348, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3350, - EndPos: 3353, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3350, - EndPos: 3353, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3354, - EndPos: 3404, - }, - Adaptations: []node.Node{ - &stmt.TraitUsePrecedence{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3356, - EndPos: 3384, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3356, - EndPos: 3364, - }, - Trait: &name.Name{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3356, - EndPos: 3359, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3356, - EndPos: 3359, - }, - Value: "Bar", - }, - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3361, - EndPos: 3364, - }, - Value: "one", - }, - }, - Insteadof: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3375, - EndPos: 3378, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3375, - EndPos: 3378, - }, - Value: "Baz", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3380, - EndPos: 3384, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3380, - EndPos: 3384, - }, - Value: "Quux", - }, - }, - }, - }, - }, - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3386, - EndPos: 3401, - }, - Ref: &stmt.TraitMethodRef{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3386, - EndPos: 3394, - }, - Trait: &name.Name{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3386, - EndPos: 3389, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3386, - EndPos: 3389, - }, - Value: "Baz", - }, - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3391, - EndPos: 3394, - }, - Value: "one", - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3398, - EndPos: 3401, - }, - Value: "two", - }, - }, - }, - }, - }, - }, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 153, - EndLine: -1, - StartPos: 3410, - EndPos: -1, - }, - Stmts: []node.Node{}, - Catches: []node.Node{}, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3419, - EndPos: 3449, - }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3426, - EndPos: 3449, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3433, - EndPos: 3442, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3433, - EndPos: 3442, - }, - Value: "Exception", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3443, - EndPos: 3445, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3443, - EndPos: 3445, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3452, - EndPos: 3499, - }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3459, - EndPos: 3499, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3466, - EndPos: 3475, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3466, - EndPos: 3475, - }, - Value: "Exception", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3476, - EndPos: 3492, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3476, - EndPos: 3492, - }, - Value: "RuntimeException", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3493, - EndPos: 3495, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3493, - EndPos: 3495, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3502, - EndPos: 3563, - }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3509, - EndPos: 3532, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3516, - EndPos: 3525, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3516, - EndPos: 3525, - }, - Value: "Exception", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3526, - EndPos: 3528, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3526, - EndPos: 3528, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3533, - EndPos: 3563, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3540, - EndPos: 3556, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3540, - EndPos: 3556, - }, - Value: "RuntimeException", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3557, - EndPos: 3559, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3557, - EndPos: 3559, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3566, - EndPos: 3607, - }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3573, - EndPos: 3596, - }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3580, - EndPos: 3589, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3580, - EndPos: 3589, - }, - Value: "Exception", - }, - }, - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3590, - EndPos: 3592, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3590, - EndPos: 3592, - }, - Value: "e", - }, - }, - Stmts: []node.Node{}, - }, - }, - Finally: &stmt.Finally{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3597, - EndPos: 3607, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Unset{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3611, - EndPos: 3626, - }, - Vars: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3617, - EndPos: 3619, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3617, - EndPos: 3619, - }, - Value: "a", - }, - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3621, - EndPos: 3623, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3621, - EndPos: 3623, - }, - Value: "b", - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3630, - EndPos: 3638, - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3634, - EndPos: 3637, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3634, - EndPos: 3637, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3634, - EndPos: 3637, - }, - Value: "Foo", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3641, - EndPos: 3650, - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3646, - EndPos: 3649, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3646, - EndPos: 3649, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3646, - EndPos: 3649, - }, - Value: "Foo", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3653, - EndPos: 3669, - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3658, - EndPos: 3668, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3658, - EndPos: 3661, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3658, - EndPos: 3661, - }, - Value: "Foo", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3665, - EndPos: 3668, - }, - Value: "Bar", - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3672, - EndPos: 3685, - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3676, - EndPos: 3679, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3676, - EndPos: 3679, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3676, - EndPos: 3679, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3681, - EndPos: 3684, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3681, - EndPos: 3684, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3681, - EndPos: 3684, - }, - Value: "Bar", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3688, - EndPos: 3708, - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3692, - EndPos: 3695, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3692, - EndPos: 3695, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3692, - EndPos: 3695, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3697, - EndPos: 3707, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3697, - EndPos: 3700, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3697, - EndPos: 3700, - }, - Value: "Bar", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3704, - EndPos: 3707, - }, - Value: "Baz", - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3711, - EndPos: 3734, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3715, - EndPos: 3723, - }, - Value: "function", - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3724, - EndPos: 3727, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3724, - EndPos: 3727, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3724, - EndPos: 3727, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3730, - EndPos: 3733, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3730, - EndPos: 3733, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3730, - EndPos: 3733, - }, - Value: "Bar", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3737, - EndPos: 3774, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3741, - EndPos: 3749, - }, - Value: "function", - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3750, - EndPos: 3760, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3750, - EndPos: 3753, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3750, - EndPos: 3753, - }, - Value: "Foo", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3757, - EndPos: 3760, - }, - Value: "foo", - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3763, - EndPos: 3773, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3763, - EndPos: 3766, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3763, - EndPos: 3766, - }, - Value: "Bar", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3770, - EndPos: 3773, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3777, - EndPos: 3797, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3781, - EndPos: 3786, - }, - Value: "const", - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3787, - EndPos: 3790, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3787, - EndPos: 3790, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3787, - EndPos: 3790, - }, - Value: "Foo", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3793, - EndPos: 3796, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3793, - EndPos: 3796, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3793, - EndPos: 3796, - }, - Value: "Bar", - }, - }, - }, - }, - }, - }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3800, - EndPos: 3834, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3804, - EndPos: 3809, - }, - Value: "const", - }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3810, - EndPos: 3820, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3810, - EndPos: 3813, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3810, - EndPos: 3813, - }, - Value: "Foo", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3817, - EndPos: 3820, - }, - Value: "foo", - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3823, - EndPos: 3833, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3823, - EndPos: 3826, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3823, - EndPos: 3826, - }, - Value: "Bar", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3830, - EndPos: 3833, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.GroupUse{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3838, - EndPos: 3858, - }, - Prefix: &name.Name{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3843, - EndPos: 3846, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3843, - EndPos: 3846, - }, - Value: "Foo", - }, - }, - }, - UseList: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3848, - EndPos: 3851, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3848, - EndPos: 3851, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3848, - EndPos: 3851, - }, - Value: "Bar", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3853, - EndPos: 3856, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3853, - EndPos: 3856, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3853, - EndPos: 3856, - }, - Value: "Baz", - }, - }, - }, - }, - }, - }, - &stmt.GroupUse{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3861, - EndPos: 3888, - }, - Prefix: &name.Name{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3865, - EndPos: 3868, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3865, - EndPos: 3868, - }, - Value: "Foo", - }, - }, - }, - UseList: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3873, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3873, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3870, - EndPos: 3873, - }, - Value: "Bar", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3875, - EndPos: 3886, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3875, - EndPos: 3878, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3875, - EndPos: 3878, - }, - Value: "Baz", - }, - }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3882, - EndPos: 3886, - }, - Value: "quux", - }, - }, - }, - }, - &stmt.GroupUse{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3891, - EndPos: 3919, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3895, - EndPos: 3903, - }, - Value: "function", - }, - Prefix: &name.Name{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3904, - EndPos: 3907, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3904, - EndPos: 3907, - }, - Value: "Foo", - }, - }, - }, - UseList: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3909, - EndPos: 3912, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3909, - EndPos: 3912, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3909, - EndPos: 3912, - }, - Value: "Bar", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3914, - EndPos: 3917, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3914, - EndPos: 3917, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3914, - EndPos: 3917, - }, - Value: "Baz", - }, - }, - }, - }, - }, - }, - &stmt.GroupUse{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3922, - EndPos: 3948, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3926, - EndPos: 3931, - }, - Value: "const", - }, - Prefix: &name.Name{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3933, - EndPos: 3936, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3933, - EndPos: 3936, - }, - Value: "Foo", - }, - }, - }, - UseList: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3938, - EndPos: 3941, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3938, - EndPos: 3941, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3938, - EndPos: 3941, - }, - Value: "Bar", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3943, - EndPos: 3946, - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3943, - EndPos: 3946, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3943, - EndPos: 3946, - }, - Value: "Baz", - }, - }, - }, - }, - }, - }, - &stmt.GroupUse{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3951, - EndPos: 3985, - }, - Prefix: &name.Name{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3955, - EndPos: 3958, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3955, - EndPos: 3958, - }, - Value: "Foo", - }, - }, - }, - UseList: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3966, - EndPos: 3969, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3960, - EndPos: 3965, - }, - Value: "const", - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3966, - EndPos: 3969, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3966, - EndPos: 3969, - }, - Value: "Bar", - }, - }, - }, - }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3980, - EndPos: 3983, - }, - UseType: &node.Identifier{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3971, - EndPos: 3979, - }, - Value: "function", - }, - Use: &name.Name{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3980, - EndPos: 3983, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3980, - EndPos: 3983, - }, - Value: "Baz", - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3989, - EndPos: 3995, - }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3989, - EndPos: 3994, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3989, - EndPos: 3991, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3989, - EndPos: 3991, - }, - Value: "a", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3992, - EndPos: 3993, - }, - Value: "1", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3998, - EndPos: 4007, - }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3998, - EndPos: 4006, - }, - Variable: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3998, - EndPos: 4003, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3998, - EndPos: 4000, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3998, - EndPos: 4000, - }, - Value: "a", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 4001, - EndPos: 4002, - }, - Value: "1", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 4004, - EndPos: 4005, - }, - Value: "2", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4010, - EndPos: 4018, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 4010, - EndPos: 4017, - }, - Items: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 4021, - EndPos: 4030, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 4021, - EndPos: 4029, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 4027, - EndPos: 4028, - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 4027, - EndPos: 4028, - }, - Value: "1", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4033, - EndPos: 4051, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4033, - EndPos: 4050, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4039, - EndPos: 4043, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4039, - EndPos: 4040, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4042, - EndPos: 4043, - }, - Value: "1", - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4045, - EndPos: 4048, - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4045, - EndPos: 4048, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4046, - EndPos: 4048, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4046, - EndPos: 4048, - }, - Value: "b", - }, - }, - }, - }, - &expr.ArrayItem{}, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4054, - EndPos: 4058, - }, - Expr: &expr.BitwiseNot{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4054, - EndPos: 4057, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4055, - EndPos: 4057, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4055, - EndPos: 4057, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4061, - EndPos: 4065, - }, - Expr: &expr.BooleanNot{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4061, - EndPos: 4064, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4062, - EndPos: 4064, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4062, - EndPos: 4064, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4069, - EndPos: 4078, - }, - Expr: &expr.ClassConstFetch{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4069, - EndPos: 4077, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4069, - EndPos: 4072, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4069, - EndPos: 4072, - }, - Value: "Foo", - }, - }, - }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4074, - EndPos: 4077, - }, - Value: "Bar", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4081, - EndPos: 4091, - }, - Expr: &expr.ClassConstFetch{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4081, - EndPos: 4090, - }, - Class: &expr.Variable{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4081, - EndPos: 4085, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4081, - EndPos: 4085, - }, - Value: "foo", - }, - }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4087, - EndPos: 4090, - }, - Value: "Bar", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4094, - EndPos: 4104, - }, - Expr: &expr.Clone{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4094, - EndPos: 4102, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4100, - EndPos: 4102, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4100, - EndPos: 4102, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4107, - EndPos: 4116, - }, - Expr: &expr.Clone{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4107, - EndPos: 4115, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4113, - EndPos: 4115, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4113, - EndPos: 4115, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4119, - EndPos: 4132, - }, - Expr: &expr.Closure{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4119, - EndPos: 4131, - }, - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4135, - EndPos: 4169, - }, - Expr: &expr.Closure{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4135, - EndPos: 4168, - }, - Static: false, - PhpDocComment: "", - ReturnsRef: false, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4144, - EndPos: 4146, - }, - ByRef: false, - Variadic: false, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4144, - EndPos: 4146, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4144, - EndPos: 4146, - }, - Value: "a", - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4148, - EndPos: 4150, - }, - ByRef: false, - Variadic: false, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4148, - EndPos: 4150, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4148, - EndPos: 4150, - }, - Value: "b", - }, - }, - }, - }, - ClosureUse: &expr.ClosureUse{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4152, - EndPos: 4165, - }, - Uses: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4157, - EndPos: 4159, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4157, - EndPos: 4159, - }, - Value: "c", - }, - }, - &expr.Reference{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4161, - EndPos: 4164, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4162, - EndPos: 4164, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4162, - EndPos: 4164, - }, - Value: "d", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4172, - EndPos: 4192, - }, - Expr: &expr.Closure{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4172, - EndPos: 4191, - }, - ReturnsRef: false, - Static: false, - PhpDocComment: "", - ReturnType: &name.Name{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4184, - EndPos: 4188, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4184, - EndPos: 4188, - }, - Value: "void", - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4195, - EndPos: 4199, - }, - Expr: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4195, - EndPos: 4198, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4195, - EndPos: 4198, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4195, - EndPos: 4198, - }, - Value: "foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 4202, - EndPos: 4216, - }, - Expr: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 4202, - EndPos: 4215, - }, - Constant: &name.Relative{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 4202, - EndPos: 4215, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 4212, - EndPos: 4215, - }, - Value: "foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4219, - EndPos: 4224, - }, - Expr: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4219, - EndPos: 4223, - }, - Constant: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4219, - EndPos: 4223, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4220, - EndPos: 4223, - }, - Value: "foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4228, - EndPos: 4238, - }, - Expr: &expr.Empty{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4228, - EndPos: 4237, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4234, - EndPos: 4236, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4234, - EndPos: 4236, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4241, - EndPos: 4245, - }, - Expr: &expr.ErrorSuppress{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4241, - EndPos: 4244, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4242, - EndPos: 4244, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 4242, - EndPos: 4244, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4248, - EndPos: 4257, - }, - Expr: &expr.Eval{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4248, - EndPos: 4256, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4253, - EndPos: 4255, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4253, - EndPos: 4255, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 4260, - EndPos: 4265, - }, - Expr: &expr.Exit{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 4260, - EndPos: 4264, - }, - Die: false, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 4268, - EndPos: 4277, - }, - Expr: &expr.Exit{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 4268, - EndPos: 4276, - }, - Die: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 4273, - EndPos: 4275, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 4273, - EndPos: 4275, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 4280, - EndPos: 4284, - }, - Expr: &expr.Exit{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 4280, - EndPos: 4283, - }, - Die: true, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4287, - EndPos: 4295, - }, - Expr: &expr.Exit{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4287, - EndPos: 4294, - }, - Die: true, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4291, - EndPos: 4293, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 4291, - EndPos: 4293, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 4298, - EndPos: 4304, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 4298, - EndPos: 4303, - }, - Function: &name.Name{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 4298, - EndPos: 4301, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 4298, - EndPos: 4301, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 4301, - EndPos: 4303, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 4307, - EndPos: 4323, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 4307, - EndPos: 4322, - }, - Function: &name.Relative{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 4307, - EndPos: 4320, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 4317, - EndPos: 4320, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 4320, - EndPos: 4322, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 4326, - EndPos: 4333, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 4326, - EndPos: 4332, - }, - Function: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 4326, - EndPos: 4330, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 4327, - EndPos: 4330, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 4330, - EndPos: 4332, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4336, - EndPos: 4343, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4336, - EndPos: 4342, - }, - Function: &expr.Variable{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4336, - EndPos: 4340, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4336, - EndPos: 4340, - }, - Value: "foo", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4340, - EndPos: 4342, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 4347, - EndPos: 4352, - }, - Expr: &expr.PostDec{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 4347, - EndPos: 4351, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 4347, - EndPos: 4349, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 4347, - EndPos: 4349, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4355, - EndPos: 4360, - }, - Expr: &expr.PostInc{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4355, - EndPos: 4359, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4355, - EndPos: 4357, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4355, - EndPos: 4357, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4363, - EndPos: 4368, - }, - Expr: &expr.PreDec{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4363, - EndPos: 4367, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4365, - EndPos: 4367, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4365, - EndPos: 4367, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4371, - EndPos: 4376, - }, - Expr: &expr.PreInc{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4371, - EndPos: 4375, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4373, - EndPos: 4375, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4373, - EndPos: 4375, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4380, - EndPos: 4391, - }, - Expr: &expr.Include{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4380, - EndPos: 4390, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4388, - EndPos: 4390, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4388, - EndPos: 4390, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4394, - EndPos: 4410, - }, - Expr: &expr.IncludeOnce{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4394, - EndPos: 4409, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4407, - EndPos: 4409, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4407, - EndPos: 4409, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4413, - EndPos: 4424, - }, - Expr: &expr.Require{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4413, - EndPos: 4423, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4421, - EndPos: 4423, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4421, - EndPos: 4423, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4427, - EndPos: 4443, - }, - Expr: &expr.RequireOnce{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4427, - EndPos: 4442, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4440, - EndPos: 4442, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4440, - EndPos: 4442, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4447, - EndPos: 4465, - }, - Expr: &expr.InstanceOf{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4447, - EndPos: 4464, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4447, - EndPos: 4449, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4447, - EndPos: 4449, - }, - Value: "a", - }, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4461, - EndPos: 4464, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4461, - EndPos: 4464, - }, - Value: "Foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4468, - EndPos: 4496, - }, - Expr: &expr.InstanceOf{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4468, - EndPos: 4495, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4468, - EndPos: 4470, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4468, - EndPos: 4470, - }, - Value: "a", - }, - }, - Class: &name.Relative{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4482, - EndPos: 4495, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4492, - EndPos: 4495, - }, - Value: "Foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4499, - EndPos: 4518, - }, - Expr: &expr.InstanceOf{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4499, - EndPos: 4517, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4499, - EndPos: 4501, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4499, - EndPos: 4501, - }, - Value: "a", - }, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4513, - EndPos: 4517, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4514, - EndPos: 4517, - }, - Value: "Foo", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4522, - EndPos: 4536, - }, - Expr: &expr.Isset{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4522, - EndPos: 4535, - }, - Variables: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4528, - EndPos: 4530, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4528, - EndPos: 4530, - }, - Value: "a", - }, - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4532, - EndPos: 4534, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4532, - EndPos: 4534, - }, - Value: "b", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4539, - EndPos: 4553, - }, - Expr: &assign.Assign{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4539, - EndPos: 4552, - }, - Variable: &expr.List{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4539, - EndPos: 4547, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4544, - EndPos: 4546, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4544, - EndPos: 4546, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4544, - EndPos: 4546, - }, - Value: "a", - }, - }, - }, - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4550, - EndPos: 4552, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4550, - EndPos: 4552, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4556, - EndPos: 4572, - }, - Expr: &assign.Assign{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4556, - EndPos: 4571, - }, - Variable: &expr.List{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4556, - EndPos: 4566, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4561, - EndPos: 4565, - }, - Val: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4561, - EndPos: 4565, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4561, - EndPos: 4563, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4561, - EndPos: 4563, - }, - Value: "a", - }, - }, - }, - }, - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4569, - EndPos: 4571, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4569, - EndPos: 4571, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4575, - EndPos: 4595, - }, - Expr: &assign.Assign{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4575, - EndPos: 4594, - }, - Variable: &expr.List{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4575, - EndPos: 4589, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4580, - EndPos: 4588, - }, - Val: &expr.List{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4580, - EndPos: 4588, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4585, - EndPos: 4587, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4585, - EndPos: 4587, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4585, - EndPos: 4587, - }, - Value: "a", - }, - }, - }, - }, - }, - }, - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4592, - EndPos: 4594, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4592, - EndPos: 4594, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4599, - EndPos: 4609, - }, - Expr: &expr.MethodCall{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4599, - EndPos: 4608, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4599, - EndPos: 4601, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4599, - EndPos: 4601, - }, - Value: "a", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4603, - EndPos: 4606, - }, - Value: "foo", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4606, - EndPos: 4608, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4612, - EndPos: 4622, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4612, - EndPos: 4621, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4616, - EndPos: 4619, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4616, - EndPos: 4619, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4619, - EndPos: 4621, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4625, - EndPos: 4645, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4625, - EndPos: 4644, - }, - Class: &name.Relative{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4629, - EndPos: 4642, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4639, - EndPos: 4642, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4642, - EndPos: 4644, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4648, - EndPos: 4659, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4648, - EndPos: 4658, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4652, - EndPos: 4656, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4653, - EndPos: 4656, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4656, - EndPos: 4658, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4662, - EndPos: 4687, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4662, - EndPos: 4686, - }, - Class: &stmt.Class{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4666, - EndPos: 4686, - }, - PhpDocComment: "", - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4672, - EndPos: 4683, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4673, - EndPos: 4675, - }, - IsReference: false, - Variadic: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4673, - EndPos: 4675, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4673, - EndPos: 4675, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4677, - EndPos: 4682, - }, - IsReference: false, - Variadic: true, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4680, - EndPos: 4682, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4680, - EndPos: 4682, - }, - Value: "b", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4690, - EndPos: 4700, - }, - Expr: &expr.Print{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4690, - EndPos: 4698, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4696, - EndPos: 4698, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4696, - EndPos: 4698, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4703, - EndPos: 4711, - }, - Expr: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4703, - EndPos: 4710, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4703, - EndPos: 4705, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4703, - EndPos: 4705, - }, - Value: "a", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4707, - EndPos: 4710, - }, - Value: "foo", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4714, - EndPos: 4723, - }, - Expr: &expr.ShellExec{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4714, - EndPos: 4722, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4715, - EndPos: 4719, - }, - Value: "cmd ", - }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4719, - EndPos: 4721, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4719, - EndPos: 4721, - }, - Value: "a", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4726, - EndPos: 4732, - }, - Expr: &expr.ShellExec{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4726, - EndPos: 4731, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4727, - EndPos: 4730, - }, - Value: "cmd", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4735, - EndPos: 4738, - }, - Expr: &expr.ShellExec{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4735, - EndPos: 4737, - }, - Parts: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4741, - EndPos: 4744, - }, - Expr: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4741, - EndPos: 4743, - }, - Items: []node.Node{}, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4747, - EndPos: 4751, - }, - Expr: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4747, - EndPos: 4750, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4748, - EndPos: 4749, - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4748, - EndPos: 4749, - }, - Value: "1", - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4754, - EndPos: 4767, - }, - Expr: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4754, - EndPos: 4766, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4755, - EndPos: 4759, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4755, - EndPos: 4756, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4758, - EndPos: 4759, - }, - Value: "1", - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4761, - EndPos: 4764, - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4761, - EndPos: 4764, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4762, - EndPos: 4764, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4762, - EndPos: 4764, - }, - Value: "b", - }, - }, - }, - }, - &expr.ArrayItem{}, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4771, - EndPos: 4781, - }, - Expr: &assign.Assign{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4771, - EndPos: 4780, - }, - Variable: &expr.ShortList{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4771, - EndPos: 4775, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4772, - EndPos: 4774, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4772, - EndPos: 4774, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4772, - EndPos: 4774, - }, - Value: "a", - }, - }, - }, - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4778, - EndPos: 4780, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4778, - EndPos: 4780, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4784, - EndPos: 4796, - }, - Expr: &assign.Assign{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4784, - EndPos: 4795, - }, - Variable: &expr.ShortList{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4784, - EndPos: 4790, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4785, - EndPos: 4789, - }, - Val: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4785, - EndPos: 4789, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4785, - EndPos: 4787, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4785, - EndPos: 4787, - }, - Value: "a", - }, - }, - }, - }, - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4793, - EndPos: 4795, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4793, - EndPos: 4795, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4799, - EndPos: 4815, - }, - Expr: &assign.Assign{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4799, - EndPos: 4814, - }, - Variable: &expr.ShortList{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4799, - EndPos: 4809, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4800, - EndPos: 4808, - }, - Val: &expr.List{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4800, - EndPos: 4808, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4805, - EndPos: 4807, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4805, - EndPos: 4807, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4805, - EndPos: 4807, - }, - Value: "a", - }, - }, - }, - }, - }, - }, - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4812, - EndPos: 4814, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4812, - EndPos: 4814, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4818, - EndPos: 4829, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4818, - EndPos: 4828, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4818, - EndPos: 4821, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4818, - EndPos: 4821, - }, - Value: "Foo", - }, - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4823, - EndPos: 4826, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4826, - EndPos: 4828, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4832, - EndPos: 4853, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4832, - EndPos: 4852, - }, - Class: &name.Relative{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4832, - EndPos: 4845, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4842, - EndPos: 4845, - }, - Value: "Foo", - }, - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4847, - EndPos: 4850, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4850, - EndPos: 4852, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4856, - EndPos: 4868, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4856, - EndPos: 4867, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4856, - EndPos: 4860, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4857, - EndPos: 4860, - }, - Value: "Foo", - }, - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4862, - EndPos: 4865, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4865, - EndPos: 4867, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4871, - EndPos: 4881, - }, - Expr: &expr.StaticPropertyFetch{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4871, - EndPos: 4880, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4871, - EndPos: 4874, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4871, - EndPos: 4874, - }, - Value: "Foo", - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4876, - EndPos: 4880, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4876, - EndPos: 4880, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4884, - EndPos: 4895, - }, - Expr: &expr.StaticPropertyFetch{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4884, - EndPos: 4894, - }, - Class: &expr.Variable{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4884, - EndPos: 4888, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4884, - EndPos: 4888, - }, - Value: "foo", - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4890, - EndPos: 4894, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4890, - EndPos: 4894, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4898, - EndPos: 4918, - }, - Expr: &expr.StaticPropertyFetch{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4898, - EndPos: 4917, - }, - Class: &name.Relative{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4898, - EndPos: 4911, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4908, - EndPos: 4911, - }, - Value: "Foo", - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4913, - EndPos: 4917, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4913, - EndPos: 4917, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4921, - EndPos: 4932, - }, - Expr: &expr.StaticPropertyFetch{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4921, - EndPos: 4931, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4921, - EndPos: 4925, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4922, - EndPos: 4925, - }, - Value: "Foo", - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4927, - EndPos: 4931, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4927, - EndPos: 4931, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4935, - EndPos: 4948, - }, - Expr: &expr.Ternary{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4935, - EndPos: 4947, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4935, - EndPos: 4937, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4935, - EndPos: 4937, - }, - Value: "a", - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4940, - EndPos: 4942, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4940, - EndPos: 4942, - }, - Value: "b", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4945, - EndPos: 4947, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4945, - EndPos: 4947, - }, - Value: "c", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4951, - EndPos: 4961, - }, - Expr: &expr.Ternary{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4951, - EndPos: 4960, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4951, - EndPos: 4953, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4951, - EndPos: 4953, - }, - Value: "a", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4958, - EndPos: 4960, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4958, - EndPos: 4960, - }, - Value: "c", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4964, - EndPos: 4987, - }, - Expr: &expr.Ternary{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4964, - EndPos: 4986, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4964, - EndPos: 4966, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4964, - EndPos: 4966, - }, - Value: "a", - }, - }, - IfTrue: &expr.Ternary{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4969, - EndPos: 4981, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4969, - EndPos: 4971, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4969, - EndPos: 4971, - }, - Value: "b", - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4974, - EndPos: 4976, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4974, - EndPos: 4976, - }, - Value: "c", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4979, - EndPos: 4981, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4979, - EndPos: 4981, - }, - Value: "d", - }, - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4984, - EndPos: 4986, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4984, - EndPos: 4986, - }, - Value: "e", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4990, - EndPos: 5013, - }, - Expr: &expr.Ternary{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4990, - EndPos: 5012, - }, - Condition: &expr.Ternary{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4990, - EndPos: 5002, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4990, - EndPos: 4992, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4990, - EndPos: 4992, - }, - Value: "a", - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4995, - EndPos: 4997, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4995, - EndPos: 4997, - }, - Value: "b", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 5000, - EndPos: 5002, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 5000, - EndPos: 5002, - }, - Value: "c", - }, - }, - }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 5005, - EndPos: 5007, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 5005, - EndPos: 5007, - }, - Value: "d", - }, - }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 5010, - EndPos: 5012, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 5010, - EndPos: 5012, - }, - Value: "e", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5016, - EndPos: 5020, - }, - Expr: &expr.UnaryMinus{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5016, - EndPos: 5019, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5017, - EndPos: 5019, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5017, - EndPos: 5019, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5023, - EndPos: 5027, - }, - Expr: &expr.UnaryPlus{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5023, - EndPos: 5026, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5024, - EndPos: 5026, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 5024, - EndPos: 5026, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5030, - EndPos: 5034, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5030, - EndPos: 5033, - }, - VarName: &expr.Variable{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5031, - EndPos: 5033, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5031, - EndPos: 5033, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 5037, - EndPos: 5043, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 5037, - EndPos: 5042, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 5046, - EndPos: 5055, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 5046, - EndPos: 5054, - }, - Value: &expr.Variable{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 5052, - EndPos: 5054, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 5052, - EndPos: 5054, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 5058, - EndPos: 5073, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 5058, - EndPos: 5072, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 5064, - EndPos: 5066, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 5064, - EndPos: 5066, - }, - Value: "a", - }, - }, - Value: &expr.Variable{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 5070, - EndPos: 5072, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 5070, - EndPos: 5072, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5076, - EndPos: 5090, - }, - Expr: &expr.YieldFrom{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5076, - EndPos: 5089, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5087, - EndPos: 5089, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5087, - EndPos: 5089, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 5096, - EndPos: 5106, - }, - Expr: &cast.Array{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 5096, - EndPos: 5105, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 5103, - EndPos: 5105, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 5103, - EndPos: 5105, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 5109, - EndPos: 5121, - }, - Expr: &cast.Bool{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 5109, - EndPos: 5120, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 5118, - EndPos: 5120, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 5118, - EndPos: 5120, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 5124, - EndPos: 5133, - }, - Expr: &cast.Bool{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 5124, - EndPos: 5132, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 5130, - EndPos: 5132, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 5130, - EndPos: 5132, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 5136, - EndPos: 5147, - }, - Expr: &cast.Double{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 5136, - EndPos: 5146, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 5144, - EndPos: 5146, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 5144, - EndPos: 5146, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5150, - EndPos: 5160, - }, - Expr: &cast.Double{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5150, - EndPos: 5159, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5157, - EndPos: 5159, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 5157, - EndPos: 5159, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 5163, - EndPos: 5175, - }, - Expr: &cast.Int{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 5163, - EndPos: 5174, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 5172, - EndPos: 5174, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 5172, - EndPos: 5174, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 5178, - EndPos: 5186, - }, - Expr: &cast.Int{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 5178, - EndPos: 5185, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 5183, - EndPos: 5185, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 5183, - EndPos: 5185, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 5189, - EndPos: 5200, - }, - Expr: &cast.Object{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 5189, - EndPos: 5199, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 5197, - EndPos: 5199, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 5197, - EndPos: 5199, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 5203, - EndPos: 5214, - }, - Expr: &cast.String{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 5203, - EndPos: 5213, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 5211, - EndPos: 5213, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 5211, - EndPos: 5213, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 5217, - EndPos: 5227, - }, - Expr: &cast.Unset{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 5217, - EndPos: 5226, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 5224, - EndPos: 5226, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 5224, - EndPos: 5226, - }, - Value: "a", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5231, - EndPos: 5239, - }, - Expr: &binary.BitwiseAnd{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5231, - EndPos: 5238, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5231, - EndPos: 5233, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5231, - EndPos: 5233, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5236, - EndPos: 5238, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5236, - EndPos: 5238, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5242, - EndPos: 5250, - }, - Expr: &binary.BitwiseOr{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5242, - EndPos: 5249, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5242, - EndPos: 5244, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5242, - EndPos: 5244, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5247, - EndPos: 5249, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5247, - EndPos: 5249, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5253, - EndPos: 5261, - }, - Expr: &binary.BitwiseXor{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5253, - EndPos: 5260, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5253, - EndPos: 5255, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5253, - EndPos: 5255, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5258, - EndPos: 5260, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5258, - EndPos: 5260, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5264, - EndPos: 5273, - }, - Expr: &binary.BooleanAnd{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5264, - EndPos: 5272, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5264, - EndPos: 5266, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5264, - EndPos: 5266, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5270, - EndPos: 5272, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5270, - EndPos: 5272, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5276, - EndPos: 5285, - }, - Expr: &binary.BooleanOr{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5276, - EndPos: 5284, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5276, - EndPos: 5278, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5276, - EndPos: 5278, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5282, - EndPos: 5284, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5282, - EndPos: 5284, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5288, - EndPos: 5297, - }, - Expr: &binary.Coalesce{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5288, - EndPos: 5296, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5288, - EndPos: 5290, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5288, - EndPos: 5290, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5294, - EndPos: 5296, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5294, - EndPos: 5296, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5300, - EndPos: 5308, - }, - Expr: &binary.Concat{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5300, - EndPos: 5307, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5300, - EndPos: 5302, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5300, - EndPos: 5302, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5305, - EndPos: 5307, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5305, - EndPos: 5307, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5311, - EndPos: 5319, - }, - Expr: &binary.Div{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5311, - EndPos: 5318, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5311, - EndPos: 5313, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5311, - EndPos: 5313, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5316, - EndPos: 5318, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5316, - EndPos: 5318, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5322, - EndPos: 5331, - }, - Expr: &binary.Equal{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5322, - EndPos: 5330, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5322, - EndPos: 5324, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5322, - EndPos: 5324, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5328, - EndPos: 5330, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5328, - EndPos: 5330, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5334, - EndPos: 5343, - }, - Expr: &binary.GreaterOrEqual{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5334, - EndPos: 5342, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5334, - EndPos: 5336, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5334, - EndPos: 5336, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5340, - EndPos: 5342, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5340, - EndPos: 5342, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5346, - EndPos: 5354, - }, - Expr: &binary.Greater{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5346, - EndPos: 5353, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5346, - EndPos: 5348, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5346, - EndPos: 5348, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5351, - EndPos: 5353, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5351, - EndPos: 5353, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5357, - EndPos: 5367, - }, - Expr: &binary.Identical{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5357, - EndPos: 5366, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5357, - EndPos: 5359, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5357, - EndPos: 5359, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5364, - EndPos: 5366, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5364, - EndPos: 5366, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5370, - EndPos: 5380, - }, - Expr: &binary.LogicalAnd{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5370, - EndPos: 5379, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5370, - EndPos: 5372, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5370, - EndPos: 5372, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5377, - EndPos: 5379, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5377, - EndPos: 5379, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5383, - EndPos: 5392, - }, - Expr: &binary.LogicalOr{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5383, - EndPos: 5391, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5383, - EndPos: 5385, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5383, - EndPos: 5385, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5389, - EndPos: 5391, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5389, - EndPos: 5391, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5395, - EndPos: 5405, - }, - Expr: &binary.LogicalXor{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5395, - EndPos: 5404, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5395, - EndPos: 5397, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5395, - EndPos: 5397, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5402, - EndPos: 5404, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5402, - EndPos: 5404, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5408, - EndPos: 5416, - }, - Expr: &binary.Minus{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5408, - EndPos: 5415, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5408, - EndPos: 5410, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5408, - EndPos: 5410, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5413, - EndPos: 5415, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5413, - EndPos: 5415, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5419, - EndPos: 5427, - }, - Expr: &binary.Mod{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5419, - EndPos: 5426, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5419, - EndPos: 5421, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5419, - EndPos: 5421, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5424, - EndPos: 5426, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5424, - EndPos: 5426, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5430, - EndPos: 5438, - }, - Expr: &binary.Mul{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5430, - EndPos: 5437, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5430, - EndPos: 5432, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5430, - EndPos: 5432, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5435, - EndPos: 5437, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5435, - EndPos: 5437, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5441, - EndPos: 5450, - }, - Expr: &binary.NotEqual{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5441, - EndPos: 5449, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5441, - EndPos: 5443, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5441, - EndPos: 5443, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5447, - EndPos: 5449, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5447, - EndPos: 5449, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5453, - EndPos: 5463, - }, - Expr: &binary.NotIdentical{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5453, - EndPos: 5462, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5453, - EndPos: 5455, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5453, - EndPos: 5455, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5460, - EndPos: 5462, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 5460, - EndPos: 5462, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5466, - EndPos: 5474, - }, - Expr: &binary.Plus{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5466, - EndPos: 5473, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5466, - EndPos: 5468, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5466, - EndPos: 5468, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5471, - EndPos: 5473, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5471, - EndPos: 5473, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5477, - EndPos: 5486, - }, - Expr: &binary.Pow{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5477, - EndPos: 5485, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5477, - EndPos: 5479, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5477, - EndPos: 5479, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5483, - EndPos: 5485, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5483, - EndPos: 5485, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5489, - EndPos: 5498, - }, - Expr: &binary.ShiftLeft{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5489, - EndPos: 5497, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5489, - EndPos: 5491, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5489, - EndPos: 5491, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5495, - EndPos: 5497, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5495, - EndPos: 5497, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5501, - EndPos: 5510, - }, - Expr: &binary.ShiftRight{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5501, - EndPos: 5509, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5501, - EndPos: 5503, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5501, - EndPos: 5503, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5507, - EndPos: 5509, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5507, - EndPos: 5509, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5513, - EndPos: 5522, - }, - Expr: &binary.SmallerOrEqual{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5513, - EndPos: 5521, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5513, - EndPos: 5515, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5513, - EndPos: 5515, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5519, - EndPos: 5521, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5519, - EndPos: 5521, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5525, - EndPos: 5533, - }, - Expr: &binary.Smaller{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5525, - EndPos: 5532, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5525, - EndPos: 5527, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5525, - EndPos: 5527, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5530, - EndPos: 5532, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5530, - EndPos: 5532, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5536, - EndPos: 5546, - }, - Expr: &binary.Spaceship{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5536, - EndPos: 5545, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5536, - EndPos: 5538, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5536, - EndPos: 5538, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5543, - EndPos: 5545, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5543, - EndPos: 5545, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5550, - EndPos: 5559, - }, - Expr: &assign.Reference{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5550, - EndPos: 5558, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5550, - EndPos: 5552, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5550, - EndPos: 5552, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5556, - EndPos: 5558, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5556, - EndPos: 5558, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5562, - EndPos: 5570, - }, - Expr: &assign.Assign{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5562, - EndPos: 5569, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5562, - EndPos: 5564, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5562, - EndPos: 5564, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5567, - EndPos: 5569, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5567, - EndPos: 5569, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5573, - EndPos: 5582, - }, - Expr: &assign.BitwiseAnd{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5573, - EndPos: 5581, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5573, - EndPos: 5575, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5573, - EndPos: 5575, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5579, - EndPos: 5581, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5579, - EndPos: 5581, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5585, - EndPos: 5594, - }, - Expr: &assign.BitwiseOr{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5585, - EndPos: 5593, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5585, - EndPos: 5587, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5585, - EndPos: 5587, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5591, - EndPos: 5593, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5591, - EndPos: 5593, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5597, - EndPos: 5606, - }, - Expr: &assign.BitwiseXor{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5597, - EndPos: 5605, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5597, - EndPos: 5599, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5597, - EndPos: 5599, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5603, - EndPos: 5605, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5603, - EndPos: 5605, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5609, - EndPos: 5618, - }, - Expr: &assign.Concat{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5609, - EndPos: 5617, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5609, - EndPos: 5611, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5609, - EndPos: 5611, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5615, - EndPos: 5617, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5615, - EndPos: 5617, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5621, - EndPos: 5630, - }, - Expr: &assign.Div{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5621, - EndPos: 5629, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5621, - EndPos: 5623, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5621, - EndPos: 5623, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5627, - EndPos: 5629, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5627, - EndPos: 5629, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5633, - EndPos: 5642, - }, - Expr: &assign.Minus{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5633, - EndPos: 5641, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5633, - EndPos: 5635, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5633, - EndPos: 5635, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5639, - EndPos: 5641, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5639, - EndPos: 5641, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5645, - EndPos: 5654, - }, - Expr: &assign.Mod{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5645, - EndPos: 5653, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5645, - EndPos: 5647, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5645, - EndPos: 5647, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5651, - EndPos: 5653, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5651, - EndPos: 5653, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5657, - EndPos: 5666, - }, - Expr: &assign.Mul{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5657, - EndPos: 5665, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5657, - EndPos: 5659, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5657, - EndPos: 5659, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5663, - EndPos: 5665, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5663, - EndPos: 5665, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5669, - EndPos: 5678, - }, - Expr: &assign.Plus{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5669, - EndPos: 5677, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5669, - EndPos: 5671, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5669, - EndPos: 5671, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5675, - EndPos: 5677, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5675, - EndPos: 5677, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5681, - EndPos: 5691, - }, - Expr: &assign.Pow{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5681, - EndPos: 5690, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5681, - EndPos: 5683, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5681, - EndPos: 5683, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5688, - EndPos: 5690, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5688, - EndPos: 5690, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5694, - EndPos: 5704, - }, - Expr: &assign.ShiftLeft{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5694, - EndPos: 5703, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5694, - EndPos: 5696, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5694, - EndPos: 5696, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5701, - EndPos: 5703, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5701, - EndPos: 5703, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5707, - EndPos: 5717, - }, - Expr: &assign.ShiftRight{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5707, - EndPos: 5716, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5707, - EndPos: 5709, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5707, - EndPos: 5709, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5714, - EndPos: 5716, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5714, - EndPos: 5716, - }, - Value: "b", - }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5721, - EndPos: 5760, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5727, - EndPos: 5730, - }, - Value: "foo", - }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5732, - EndPos: 5758, - }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5748, - EndPos: 5753, - }, - Value: "class", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5732, - EndPos: 5738, - }, - Value: "public", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5756, - EndPos: 5758, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5763, - EndPos: 5774, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5763, - EndPos: 5773, - }, - Function: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5763, - EndPos: 5771, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5764, - EndPos: 5767, - }, - Value: "foo", - }, - &name.NamePart{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5768, - EndPos: 5771, - }, - Value: "bar", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5771, - EndPos: 5773, - }, - }, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 320, - EndLine: 326, - StartPos: 5778, - EndPos: 5905, - }, - PhpDocComment: "", - ReturnsRef: false, - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5787, - EndPos: 5790, - }, - Value: "foo", - }, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5791, - EndPos: 5794, - }, - ByRef: true, - Variadic: false, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5792, - EndPos: 5794, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5792, - EndPos: 5794, - }, - Value: "a", - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5796, - EndPos: 5801, - }, - ByRef: false, - Variadic: true, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5799, - EndPos: 5801, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5799, - EndPos: 5801, - }, - Value: "b", - }, - }, - }, - }, - Stmts: []node.Node{ - &stmt.Function{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5830, - EndPos: 5847, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5839, - EndPos: 5842, - }, - Value: "bar", - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5851, - EndPos: 5863, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5857, - EndPos: 5860, - }, - Value: "Baz", - }, - Stmts: []node.Node{}, - }, - &stmt.Trait{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5867, - EndPos: 5879, - }, - PhpDocComment: "", - TraitName: &node.Identifier{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5873, - EndPos: 5877, - }, - Value: "Quux", - }, - Stmts: []node.Node{}, - }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5883, - EndPos: 5901, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5893, - EndPos: 5898, - }, - Value: "Quuux", - }, - Stmts: []node.Node{}, - }, - }, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5911, - EndPos: 5954, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5920, - EndPos: 5923, - }, - Value: "foo", - }, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5924, - EndPos: 5931, - }, - ByRef: true, - Variadic: false, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5925, - EndPos: 5927, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5925, - EndPos: 5927, - }, - Value: "a", - }, - }, - DefaultValue: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5930, - EndPos: 5931, - }, - Value: "1", - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5933, - EndPos: 5942, - }, - ByRef: false, - Variadic: true, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5936, - EndPos: 5938, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5936, - EndPos: 5938, - }, - Value: "b", - }, - }, - DefaultValue: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5941, - EndPos: 5942, - }, - Value: "1", - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5944, - EndPos: 5950, - }, - ByRef: false, - Variadic: false, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5944, - EndPos: 5946, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5944, - EndPos: 5946, - }, - Value: "c", - }, - }, - DefaultValue: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5949, - EndPos: 5950, - }, - Value: "1", - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5957, - EndPos: 5995, - }, - PhpDocComment: "", - ReturnsRef: false, - FunctionName: &node.Identifier{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5966, - EndPos: 5969, - }, - Value: "foo", - }, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5970, - EndPos: 5978, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5970, - EndPos: 5975, - }, - Value: "array", - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5976, - EndPos: 5978, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5976, - EndPos: 5978, - }, - Value: "a", - }, - }, - }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5980, - EndPos: 5991, - }, - Variadic: false, - ByRef: false, - VariableType: &node.Identifier{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5980, - EndPos: 5988, - }, - Value: "callable", - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5989, - EndPos: 5991, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5989, - EndPos: 5991, - }, - Value: "b", - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5998, - EndPos: 6100, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6019, - EndPos: 6022, - }, - Value: "foo", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5998, - EndPos: 6006, - }, - Value: "abstract", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6007, - EndPos: 6012, - }, - Value: "final", - }, - }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6025, - EndPos: 6066, - }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6060, - EndPos: 6063, - }, - Value: "bar", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6025, - EndPos: 6033, - }, - Value: "abstract", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6034, - EndPos: 6043, - }, - Value: "protected", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6044, - EndPos: 6050, - }, - Value: "static", - }, - }, - Stmt: &stmt.Nop{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6065, - EndPos: 6066, - }, - }, - }, - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6067, - EndPos: 6098, - }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6090, - EndPos: 6093, - }, - Value: "baz", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6067, - EndPos: 6072, - }, - Value: "final", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6073, - EndPos: 6080, - }, - Value: "private", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 6096, - EndPos: 6098, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6105, - EndPos: 6119, - }, - Expr: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6105, - EndPos: 6118, - }, - Variable: &expr.New{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6105, - EndPos: 6112, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6109, - EndPos: 6112, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6109, - EndPos: 6112, - }, - Value: "Foo", - }, - }, - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6115, - EndPos: 6118, - }, - Value: "bar", - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6123, - EndPos: 6134, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6123, - EndPos: 6133, - }, - Function: &expr.New{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6123, - EndPos: 6130, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6127, - EndPos: 6130, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6127, - EndPos: 6130, - }, - Value: "Foo", - }, - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6131, - EndPos: 6133, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6137, - EndPos: 6149, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6137, - EndPos: 6148, - }, - Function: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6137, - EndPos: 6146, - }, - Variable: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6137, - EndPos: 6143, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6138, - EndPos: 6142, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6138, - EndPos: 6142, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6138, - EndPos: 6142, - }, - Value: "foo", - }, - }, - }, - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6144, - EndPos: 6145, - }, - Value: "0", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6146, - EndPos: 6148, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6152, - EndPos: 6161, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6152, - EndPos: 6160, - }, - Function: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6152, - EndPos: 6158, - }, - Variable: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6152, - EndPos: 6155, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6152, - EndPos: 6155, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6152, - EndPos: 6155, - }, - Value: "foo", - }, - }, - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6156, - EndPos: 6157, - }, - Value: "1", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6158, - EndPos: 6160, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6164, - EndPos: 6172, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6164, - EndPos: 6171, - }, - Function: &scalar.String{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6164, - EndPos: 6169, - }, - Value: "\"foo\"", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6169, - EndPos: 6171, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6175, - EndPos: 6187, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6175, - EndPos: 6186, - }, - Function: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6175, - EndPos: 6184, - }, - Variable: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6175, - EndPos: 6178, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6176, - EndPos: 6177, - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6176, - EndPos: 6177, - }, - Value: "1", - }, - }, - }, - }, - Dim: &expr.Variable{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6179, - EndPos: 6183, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6179, - EndPos: 6183, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6184, - EndPos: 6186, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6190, - EndPos: 6199, - }, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6190, - EndPos: 6198, - }, - VarName: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6192, - EndPos: 6197, - }, - Function: &name.Name{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6192, - EndPos: 6195, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6192, - EndPos: 6195, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6195, - EndPos: 6197, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6203, - EndPos: 6215, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6203, - EndPos: 6214, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6203, - EndPos: 6206, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6203, - EndPos: 6206, - }, - Value: "Foo", - }, - }, - }, - Call: &expr.Variable{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6208, - EndPos: 6212, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6208, - EndPos: 6212, - }, - Value: "bar", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6212, - EndPos: 6214, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6218, - EndPos: 6235, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6218, - EndPos: 6234, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6218, - EndPos: 6221, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6218, - EndPos: 6221, - }, - Value: "Foo", - }, - }, - }, - Call: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6224, - EndPos: 6231, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6224, - EndPos: 6228, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6224, - EndPos: 6228, - }, - Value: "bar", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6229, - EndPos: 6230, - }, - Value: "0", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6232, - EndPos: 6234, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6241, - EndPos: 6252, - }, - Expr: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6241, - EndPos: 6251, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6241, - EndPos: 6245, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6241, - EndPos: 6245, - }, - Value: "foo", - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6247, - EndPos: 6251, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6247, - EndPos: 6251, - }, - Value: "bar", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6255, - EndPos: 6271, - }, - Expr: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6255, - EndPos: 6269, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6255, - EndPos: 6259, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6255, - EndPos: 6259, - }, - Value: "foo", - }, - }, - Property: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6262, - EndPos: 6269, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6262, - EndPos: 6266, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6262, - EndPos: 6266, - }, - Value: "bar", - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6267, - EndPos: 6268, - }, - Value: "0", - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6275, - EndPos: 6297, - }, - Expr: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6275, - EndPos: 6296, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6276, - EndPos: 6282, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6276, - EndPos: 6277, - }, - Value: "1", - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6279, - EndPos: 6282, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6280, - EndPos: 6282, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6280, - EndPos: 6282, - }, - Value: "a", - }, - }, - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6284, - EndPos: 6295, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6284, - EndPos: 6285, - }, - Value: "2", - }, - Val: &expr.List{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6287, - EndPos: 6295, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6292, - EndPos: 6294, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6292, - EndPos: 6294, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6292, - EndPos: 6294, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - }, - }, - &stmt.HaltCompiler{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 6301, - EndPos: 6319, - }, - }, - }, - } - - php7parser := php7.NewParser([]byte(src), "7.4") - php7parser.Parse() - actual := php7parser.GetRootNode() - assert.DeepEqual(t, expected, actual) -} - -func TestPhp5Strings(t *testing.T) { - src := `", strings.Repeat(" ", v.depth), key, ":\n") @@ -90,14 +89,14 @@ func (v *testVisitor) Identifier(_ *ast.Identifier) { fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Identifier") } -func (v *testVisitor) ArgumentList(_ *ast.ArgumentList) { +func (v *testVisitor) ArgumentList(_ *ast.ArgumentList) { fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.ArgumentList") } -func (v *testVisitor) Argument(_ *ast.Argument) { +func (v *testVisitor) Argument(_ *ast.Argument) { fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Argument") } -func (v *testVisitor) ScalarDnumber(_ *ast.ScalarDnumber) { +func (v *testVisitor) ScalarDnumber(_ *ast.ScalarDnumber) { fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.ScalarDnumber") } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index b8b486e..99b34a3 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -8,6 +8,7 @@ import ( type Node struct { StartTokens []token.Token EndTokens []token.Token + Tokens token.Collection Position *position.Position } @@ -52,7 +53,7 @@ func (n *Parameter) Accept(v NodeVisitor) { // Identifier node type Identifier struct { Node - Value string + Value []byte } func (n *Identifier) Accept(v NodeVisitor) { @@ -84,7 +85,7 @@ func (n *Argument) Accept(v NodeVisitor) { // ScalarDnumber node type ScalarDnumber struct { Node - Value string + Value []byte } func (n *ScalarDnumber) Accept(v NodeVisitor) { @@ -104,7 +105,7 @@ func (n *ScalarEncapsed) Accept(v NodeVisitor) { // ScalarEncapsedStringPart node type ScalarEncapsedStringPart struct { Node - Value string + Value []byte } func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { @@ -114,7 +115,7 @@ func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { // ScalarHeredoc node type ScalarHeredoc struct { Node - Label string + Label []byte Parts []Vertex } @@ -125,7 +126,7 @@ func (n *ScalarHeredoc) Accept(v NodeVisitor) { // ScalarLnumber node type ScalarLnumber struct { Node - Value string + Value []byte } func (n *ScalarLnumber) Accept(v NodeVisitor) { @@ -135,7 +136,7 @@ func (n *ScalarLnumber) Accept(v NodeVisitor) { // ScalarMagicConstant node type ScalarMagicConstant struct { Node - Value string + Value []byte } func (n *ScalarMagicConstant) Accept(v NodeVisitor) { @@ -145,7 +146,7 @@ func (n *ScalarMagicConstant) Accept(v NodeVisitor) { // ScalarString node type ScalarString struct { Node - Value string + Value []byte } func (n *ScalarString) Accept(v NodeVisitor) { @@ -550,7 +551,7 @@ func (n *StmtIf) Accept(v NodeVisitor) { // StmtInlineHtml node type StmtInlineHtml struct { Node - Value string + Value []byte } func (n *StmtInlineHtml) Accept(v NodeVisitor) { @@ -1803,3 +1804,39 @@ type ExprBinarySpaceship struct { func (n *ExprBinarySpaceship) Accept(v NodeVisitor) { v.ExprBinarySpaceship(n) } + +type NameName struct { + Node + Parts []Vertex +} + +func (n *NameName) Accept(v NodeVisitor) { + v.NameName(n) +} + +type NameFullyQualified struct { + Node + Parts []Vertex +} + +func (n *NameFullyQualified) Accept(v NodeVisitor) { + v.NameFullyQualified(n) +} + +type NameRelative struct { + Node + Parts []Vertex +} + +func (n *NameRelative) Accept(v NodeVisitor) { + v.NameRelative(n) +} + +type NameNamePart struct { + Node + Value []byte +} + +func (n *NameNamePart) Accept(v NodeVisitor) { + v.NameNamePart(n) +} diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index b013607..a000a59 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -73,7 +73,7 @@ func (v *Dump) EnterNode(n ast.Vertex) bool { } n.Accept(v) - + return true } diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index 5d2277d..b1f5153 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -13,8 +13,7 @@ func ExampleDump() { &ast.Identifier{}, &ast.Parameter{ Variadic: true, - Var: &ast.ExprVariable{ - }, + Var: &ast.ExprVariable{}, }, &ast.StmtInlineHtml{ Value: "foo", diff --git a/errors/error.go b/pkg/errors/error.go similarity index 90% rename from errors/error.go rename to pkg/errors/error.go index 63e480e..623dc07 100644 --- a/errors/error.go +++ b/pkg/errors/error.go @@ -3,7 +3,7 @@ package errors import ( "fmt" - "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/pkg/position" ) // Error parsing error diff --git a/errors/error_test.go b/pkg/errors/error_test.go similarity index 100% rename from errors/error_test.go rename to pkg/errors/error_test.go diff --git a/parser/parser.go b/pkg/parser/parser.go similarity index 59% rename from parser/parser.go rename to pkg/parser/parser.go index c05b22d..9f804c3 100644 --- a/parser/parser.go +++ b/pkg/parser/parser.go @@ -1,19 +1,19 @@ package parser import ( - "github.com/z7zmey/php-parser/errors" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/version" + "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/internal/version" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/errors" ) // Parser interface type Parser interface { Parse() int - GetRootNode() node.Node + GetRootNode() ast.Vertex GetErrors() []*errors.Error - WithFreeFloating() + WithTokens() } func NewParser(src []byte, v string) (Parser, error) { diff --git a/freefloating/string.go b/pkg/token/position.go similarity index 66% rename from freefloating/string.go rename to pkg/token/position.go index ee05c36..209ed9d 100644 --- a/freefloating/string.go +++ b/pkg/token/position.go @@ -1,17 +1,9 @@ -package freefloating - -import "github.com/z7zmey/php-parser/position" - -type StringType int - -const ( - WhiteSpaceType StringType = iota - CommentType - TokenType -) +package token type Position int +type Collection map[Position][]Token + //go:generate stringer -type=Position -output ./position_string.go const ( Start Position = iota @@ -94,20 +86,3 @@ const ( OpenParenthesisToken CloseParenthesisToken ) - -type String struct { - StringType StringType - Value string - Position *position.Position -} - -type Collection map[Position][]String - -func (c Collection) IsEmpty() bool { - for _, v := range c { - if len(v) > 0 { - return false - } - } - return true -} diff --git a/freefloating/position_string.go b/pkg/token/position_string.go similarity index 99% rename from freefloating/position_string.go rename to pkg/token/position_string.go index 2428f22..cc51fe2 100644 --- a/freefloating/position_string.go +++ b/pkg/token/position_string.go @@ -1,6 +1,6 @@ // Code generated by "stringer -type=Position -output ./position_string.go"; DO NOT EDIT. -package freefloating +package token import "strconv" diff --git a/pkg/token/token.go b/pkg/token/token.go index a79915d..6ba52d6 100644 --- a/pkg/token/token.go +++ b/pkg/token/token.go @@ -1,9 +1,9 @@ package token -type TokenID int +type ID int const ( - T_INCLUDE TokenID = iota + 57346 + T_INCLUDE ID = iota + 57346 T_INCLUDE_ONCE T_EXIT T_IF @@ -144,6 +144,6 @@ const ( ) type Token struct { - ID TokenID + ID ID Value []byte } diff --git a/position/position.go b/position/position.go deleted file mode 100644 index d4099cd..0000000 --- a/position/position.go +++ /dev/null @@ -1,27 +0,0 @@ -package position - -import ( - "fmt" -) - -// Position represents node position -type Position struct { - StartLine int - EndLine int - StartPos int - EndPos int -} - -// NewPosition Position constructor -func NewPosition(StartLine int, EndLine int, StartPos int, EndPos int) *Position { - return &Position{ - StartLine: StartLine, - EndLine: EndLine, - StartPos: StartPos, - EndPos: EndPos, - } -} - -func (p Position) String() string { - return fmt.Sprintf("Pos{Line: %d-%d Pos: %d-%d}", p.StartLine, p.EndLine, p.StartPos, p.EndPos) -} diff --git a/position/position_test.go b/position/position_test.go deleted file mode 100644 index 0e322b6..0000000 --- a/position/position_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package position_test - -import ( - "testing" - - "github.com/z7zmey/php-parser/position" -) - -func TestPrintPosition(t *testing.T) { - pos := position.NewPosition(1, 1, 2, 5) - - expected := "Pos{Line: 1-1 Pos: 2-5}" - - actual := pos.String() - - if expected != actual { - t.Errorf("expected and actual are not equal\n") - } -} diff --git a/positionbuilder/position_builder_test.go b/positionbuilder/position_builder_test.go deleted file mode 100644 index fd8fa2b..0000000 --- a/positionbuilder/position_builder_test.go +++ /dev/null @@ -1,463 +0,0 @@ -package positionbuilder_test - -import ( - "testing" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/position" - "github.com/z7zmey/php-parser/positionbuilder" - - "github.com/z7zmey/php-parser/scanner" -) - -func TestNewTokenPosition(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - - tkn := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - } - - pos := builder.NewTokenPosition(tkn) - - if pos.String() != `Pos{Line: 1-1 Pos: 0-3}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewTokensPosition(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - - token1 := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - } - token2 := &scanner.Token{ - Value: `foo`, - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 6, - } - - pos := builder.NewTokensPosition(token1, token2) - - if pos.String() != `Pos{Line: 1-2 Pos: 0-6}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewNodePosition(t *testing.T) { - n := node.NewIdentifier("test node") - n.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodePosition(n) - - if pos.String() != `Pos{Line: 1-1 Pos: 0-3}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewTokenNodePosition(t *testing.T) { - tkn := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - } - n := node.NewIdentifier("test node") - n.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 12, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewTokenNodePosition(tkn, n) - - if pos.String() != `Pos{Line: 1-2 Pos: 0-12}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewNodeTokenPosition(t *testing.T) { - n := node.NewIdentifier("test node") - n.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }) - - tkn := &scanner.Token{ - Value: `foo`, - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, - } - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeTokenPosition(n, tkn) - - if pos.String() != `Pos{Line: 1-2 Pos: 0-12}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewNodeListPosition(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }) - - n2 := node.NewIdentifier("test node") - n2.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeListPosition([]node.Node{n1, n2}) - - if pos.String() != `Pos{Line: 1-2 Pos: 0-19}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewNodesPosition(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }) - - n2 := node.NewIdentifier("test node") - n2.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodesPosition(n1, n2) - - if pos.String() != `Pos{Line: 1-2 Pos: 0-19}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewNodeListTokenPosition(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }) - - n2 := node.NewIdentifier("test node") - n2.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }) - - tkn := &scanner.Token{ - Value: `foo`, - StartLine: 3, - EndLine: 3, - StartPos: 20, - EndPos: 22, - } - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeListTokenPosition([]node.Node{n1, n2}, tkn) - - if pos.String() != `Pos{Line: 1-3 Pos: 0-22}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewTokenNodeListPosition(t *testing.T) { - tkn := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 2, - } - - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 10, - }) - - n2 := node.NewIdentifier("test node") - n2.SetPosition(&position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 11, - EndPos: 20, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewTokenNodeListPosition(tkn, []node.Node{n1, n2}) - - if pos.String() != `Pos{Line: 1-3 Pos: 0-20}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewNodeNodeListPosition(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }) - - n2 := node.NewIdentifier("test node") - n2.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }) - - n3 := node.NewIdentifier("test node") - n3.SetPosition(&position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeNodeListPosition(n1, []node.Node{n2, n3}) - - if pos.String() != `Pos{Line: 1-3 Pos: 0-26}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewNodeListNodePosition(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }) - n2 := node.NewIdentifier("test node") - n2.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }) - n3 := node.NewIdentifier("test node") - n3.SetPosition(&position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeListNodePosition([]node.Node{n1, n2}, n3) - - if pos.String() != `Pos{Line: 1-3 Pos: 0-26}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewOptionalListTokensPosition(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - - token1 := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - } - token2 := &scanner.Token{ - Value: `foo`, - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 6, - } - - pos := builder.NewOptionalListTokensPosition(nil, token1, token2) - - if pos.String() != `Pos{Line: 1-2 Pos: 0-6}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNewOptionalListTokensPosition2(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }) - n2 := node.NewIdentifier("test node") - n2.SetPosition(&position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }) - n3 := node.NewIdentifier("test node") - n3.SetPosition(&position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }) - - builder := positionbuilder.PositionBuilder{} - - token1 := &scanner.Token{ - Value: `foo`, - StartLine: 4, - EndLine: 4, - StartPos: 27, - EndPos: 29, - } - token2 := &scanner.Token{ - Value: `foo`, - StartLine: 5, - EndLine: 5, - StartPos: 30, - EndPos: 32, - } - - pos := builder.NewOptionalListTokensPosition([]node.Node{n2, n3}, token1, token2) - - if pos.String() != `Pos{Line: 2-5 Pos: 9-32}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNilNodePos(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodesPosition(nil, nil) - - if pos.String() != `Pos{Line: -1--1 Pos: -1--1}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNilNodeListPos(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeNodeListPosition(n1, nil) - - if pos.String() != `Pos{Line: 1--1 Pos: 0--1}` { - t.Errorf("token value is not equal\n") - } -} - -func TestNilNodeListTokenPos(t *testing.T) { - token := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - } - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeListTokenPosition(nil, token) - - if pos.String() != `Pos{Line: -1-1 Pos: -1-3}` { - t.Errorf("token value is not equal\n") - } -} - -func TestEmptyNodeListPos(t *testing.T) { - n1 := node.NewIdentifier("test node") - n1.SetPosition(&position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }) - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeNodeListPosition(n1, []node.Node{}) - - if pos.String() != `Pos{Line: 1--1 Pos: 0--1}` { - t.Errorf("token value is not equal\n") - } -} - -func TestEmptyNodeListTokenPos(t *testing.T) { - token := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - } - - builder := positionbuilder.PositionBuilder{} - - pos := builder.NewNodeListTokenPosition([]node.Node{}, token) - - if pos.String() != `Pos{Line: -1-1 Pos: -1-3}` { - t.Errorf("token value is not equal\n") - } -} diff --git a/scanner/token.go b/scanner/token.go deleted file mode 100644 index fcd66a4..0000000 --- a/scanner/token.go +++ /dev/null @@ -1,35 +0,0 @@ -package scanner - -import ( - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/position" -) - -// Token value returned by lexer -type Token struct { - Value string - FreeFloating []freefloating.String - StartLine int - EndLine int - StartPos int - EndPos int -} - -func (t *Token) String() string { - return string(t.Value) -} - -func (t *Token) GetFreeFloatingToken() []freefloating.String { - return []freefloating.String{ - { - StringType: freefloating.TokenType, - Value: t.Value, - Position: &position.Position{ - StartLine: t.StartLine, - EndLine: t.EndLine, - StartPos: t.StartPos, - EndPos: t.EndPos, - }, - }, - } -} diff --git a/scanner/token_test.go b/scanner/token_test.go deleted file mode 100644 index 0edf072..0000000 --- a/scanner/token_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package scanner_test - -import ( - "reflect" - "testing" - - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/scanner" -) - -func TestToken(t *testing.T) { - tkn := &scanner.Token{ - Value: `foo`, - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - } - - c := []freefloating.String{ - { - Value: "test comment", - StringType: freefloating.CommentType, - Position: nil, - }, - } - - tkn.FreeFloating = c - - if !reflect.DeepEqual(tkn.FreeFloating, c) { - t.Errorf("comments are not equal\n") - } - - if tkn.String() != `foo` { - t.Errorf("token value is not equal\n") - } -} diff --git a/visitor/dumper.go b/visitor/dumper.go deleted file mode 100644 index 785679a..0000000 --- a/visitor/dumper.go +++ /dev/null @@ -1,83 +0,0 @@ -// Package visitor contains walker.visitor implementations -package visitor - -import ( - "fmt" - "io" - "reflect" - "strings" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/walker" -) - -// Dumper writes ast hierarchy to an io.Writer -// Also prints comments and positions attached to nodes -type Dumper struct { - Writer io.Writer - Indent string - NsResolver *NamespaceResolver -} - -// EnterNode is invoked at every node in hierarchy -func (d *Dumper) EnterNode(w walker.Walkable) bool { - n := w.(node.Node) - - fmt.Fprintf(d.Writer, "%v[%v]\n", d.Indent, reflect.TypeOf(n)) - - if n.GetPosition() != nil { - fmt.Fprintf(d.Writer, "%v\"Position\": %s\n", d.Indent+" ", n.GetPosition()) - } - - if d.NsResolver != nil { - if namespacedName, ok := d.NsResolver.ResolvedNames[n]; ok { - fmt.Fprintf(d.Writer, "%v\"NamespacedName\": %q\n", d.Indent+" ", namespacedName) - } - } - - if !n.GetFreeFloating().IsEmpty() { - fmt.Fprintf(d.Writer, "%v\"freefloating\":\n", d.Indent+" ") - for key, freeFloatingStrings := range *n.GetFreeFloating() { - for _, freeFloatingString := range freeFloatingStrings { - fmt.Fprintf(d.Writer, "%v%q: %q\n", d.Indent+" ", key.String(), freeFloatingString.Value) - } - } - } - - if a := n.Attributes(); len(a) > 0 { - for key, attr := range a { - switch attr.(type) { - case string: - fmt.Fprintf(d.Writer, "%v\"%v\": %q\n", d.Indent+" ", key, attr) - default: - fmt.Fprintf(d.Writer, "%v\"%v\": %v\n", d.Indent+" ", key, attr) - } - } - } - - return true -} - -// LeaveNode is invoked after node process -func (d *Dumper) LeaveNode(n walker.Walkable) { - // do nothing -} - -// GetChildrenVisitor is invoked at every node parameter that contains children nodes -func (d *Dumper) EnterChildNode(key string, w walker.Walkable) { - fmt.Fprintf(d.Writer, "%v%q:\n", d.Indent+" ", key) - d.Indent = d.Indent + " " -} - -func (d *Dumper) LeaveChildNode(key string, w walker.Walkable) { - d.Indent = strings.TrimSuffix(d.Indent, " ") -} - -func (d *Dumper) EnterChildList(key string, w walker.Walkable) { - fmt.Fprintf(d.Writer, "%v%q:\n", d.Indent+" ", key) - d.Indent = d.Indent + " " -} - -func (d *Dumper) LeaveChildList(key string, w walker.Walkable) { - d.Indent = strings.TrimSuffix(d.Indent, " ") -} diff --git a/visitor/dumper_test.go b/visitor/dumper_test.go deleted file mode 100644 index cdfc78d..0000000 --- a/visitor/dumper_test.go +++ /dev/null @@ -1,151 +0,0 @@ -package visitor_test - -import ( - "os" - - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/visitor" -) - -func ExampleDumper() { - src := ` 0 { - for key, attr := range a { - printIndent(d.Writer, d.depth) - switch attr.(type) { - case string: - fmt.Fprintf(d.Writer, "%s: %q,\n", key, attr) - default: - fmt.Fprintf(d.Writer, "%s: %v,\n", key, attr) - } - } - } - - return true -} - -// LeaveNode is invoked after node process -func (d *GoDumper) LeaveNode(n walker.Walkable) { - d.depth-- - printIndent(d.Writer, d.depth) - if d.depth != 0 { - io.WriteString(d.Writer, "},\n") - } else { - io.WriteString(d.Writer, "}\n") - } -} - -func (d *GoDumper) EnterChildNode(key string, w walker.Walkable) { - printIndent(d.Writer, d.depth) - io.WriteString(d.Writer, key+": ") - d.isChildNode = true -} - -func (d *GoDumper) LeaveChildNode(key string, w walker.Walkable) { - // do nothing -} - -func (d *GoDumper) EnterChildList(key string, w walker.Walkable) { - printIndent(d.Writer, d.depth) - io.WriteString(d.Writer, key+": []node.Node{\n") - d.depth++ -} - -func (d *GoDumper) LeaveChildList(key string, w walker.Walkable) { - d.depth-- - printIndent(d.Writer, d.depth) - if d.depth != 0 { - io.WriteString(d.Writer, "},\n") - } -} diff --git a/visitor/go_dumper_test.go b/visitor/go_dumper_test.go deleted file mode 100644 index 2970615..0000000 --- a/visitor/go_dumper_test.go +++ /dev/null @@ -1,528 +0,0 @@ -package visitor_test - -import ( - "os" - - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/visitor" -) - -func ExampleGoDumper() { - src := ` 0 { - var attributes []string - for key := range n.Attributes() { - attributes = append(attributes, key) - } - - sort.Strings(attributes) - - for _, attributeName := range attributes { - attr := a[attributeName] - switch attr.(type) { - case string: - fmt.Fprintf(d.Writer, ",\"%s\":%q", attributeName, attr) - default: - fmt.Fprintf(d.Writer, ",\"%s\":%v", attributeName, attr) - } - } - } - - return true -} - -// LeaveNode is invoked after node process -func (d *JsonDumper) LeaveNode(n walker.Walkable) { - fmt.Fprint(d.Writer, "}") -} - -func (d *JsonDumper) EnterChildNode(key string, w walker.Walkable) { - fmt.Fprintf(d.Writer, ",%q:", key) - d.isChildNode = true -} - -func (d *JsonDumper) LeaveChildNode(key string, w walker.Walkable) { - // do nothing -} - -func (d *JsonDumper) EnterChildList(key string, w walker.Walkable) { - fmt.Fprintf(d.Writer, ",%q:[", key) - d.isNotFirstNode = false - -} - -func (d *JsonDumper) LeaveChildList(key string, w walker.Walkable) { - fmt.Fprint(d.Writer, "]") -} diff --git a/visitor/json_dumper_test.go b/visitor/json_dumper_test.go deleted file mode 100644 index b803fc3..0000000 --- a/visitor/json_dumper_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package visitor_test - -import ( - "os" - - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/visitor" -) - -func ExampleJsonDumper() { - src := ` 1 { - // if name qualified, replace first part by alias - return aliasName + "\\" + concatNameParts(n.Parts[1:]), nil - } - - return aliasName, nil - } - - return "", errors.New("must be instance of name.Names") -} - -// ResolveAlias returns alias or error if not found -func (ns *Namespace) ResolveAlias(nameNode node.Node, aliasType string) (string, error) { - aliasType = strings.ToLower(aliasType) - nameParts := nameNode.(*name.Name).Parts - - firstPartStr := nameParts[0].(*name.NamePart).Value - - if len(nameParts) > 1 { // resolve aliases for qualified names, always against class alias type - firstPartStr = strings.ToLower(firstPartStr) - aliasType = "" - } else { - if aliasType != "const" { // constants are case-sensitive - firstPartStr = strings.ToLower(firstPartStr) - } - } - - aliasName, ok := ns.Aliases[aliasType][firstPartStr] - if !ok { - return "", errors.New("Not found") - } - - return aliasName, nil -} - -func concatNameParts(parts ...[]node.Node) string { - str := "" - - for _, p := range parts { - for _, n := range p { - if str == "" { - str = n.(*name.NamePart).Value - } else { - str = str + "\\" + n.(*name.NamePart).Value - } - } - } - - return str -} diff --git a/visitor/namespace_resolver_test.go b/visitor/namespace_resolver_test.go deleted file mode 100644 index d626dbb..0000000 --- a/visitor/namespace_resolver_test.go +++ /dev/null @@ -1,976 +0,0 @@ -package visitor_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node" - "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/node/stmt" - "github.com/z7zmey/php-parser/visitor" -) - -func TestResolveStaticCall(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &expr.StaticCall{ - Class: nameBC, - Call: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - } - - expected := map[node.Node]string{ - nameBC: "A\\B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveStaticPropertyFetch(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &expr.StaticPropertyFetch{ - Class: nameBC, - Property: &node.Identifier{Value: "foo"}, - }, - }, - } - - expected := map[node.Node]string{ - nameBC: "A\\B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveClassConstFetch(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &expr.ClassConstFetch{ - Class: nameBC, - ConstantName: &node.Identifier{Value: "FOO"}, - }, - }, - } - - expected := map[node.Node]string{ - nameBC: "A\\B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveNew(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &expr.New{ - Class: nameBC, - ArgumentList: &node.ArgumentList{}, - }, - }, - } - - expected := map[node.Node]string{ - nameBC: "A\\B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveInstanceOf(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Class: nameBC, - }, - }, - } - - expected := map[node.Node]string{ - nameBC: "A\\B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveInstanceCatch(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - nameDE := &name.Name{Parts: []node.Node{&name.NamePart{Value: "D"}, &name.NamePart{Value: "E"}}} - nameF := &name.Name{Parts: []node.Node{&name.NamePart{Value: "F"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - &stmt.Use{ - Use: nameDE, - Alias: &node.Identifier{Value: "F"}, - }, - }, - }, - &stmt.Try{ - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Types: []node.Node{ - nameBC, - nameF, - }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Stmts: []node.Node{}, - }, - }, - }, - }, - } - - expected := map[node.Node]string{ - nameBC: "A\\B\\C", - nameF: "D\\E", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveFunctionCall(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - UseType: &node.Identifier{Value: "function"}, - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &expr.FunctionCall{ - Function: nameB, - ArgumentList: &node.ArgumentList{}, - }, - }, - } - - expected := map[node.Node]string{ - nameB: "A\\B", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveConstFetch(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - UseType: &node.Identifier{Value: "const"}, - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &expr.ConstFetch{ - Constant: nameB, - }, - }, - } - - expected := map[node.Node]string{ - nameB: "A\\B", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveGroupUse(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBD := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "D"}}} - nameE := &name.Name{Parts: []node.Node{&name.NamePart{Value: "E"}}} - nameC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "C"}}} - nameF := &name.Name{Parts: []node.Node{&name.NamePart{Value: "F"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.GroupUse{ - Prefix: nameAB, - UseList: []node.Node{ - &stmt.Use{ - UseType: &node.Identifier{Value: "Function"}, - Use: nameF, - }, - &stmt.Use{ - UseType: &node.Identifier{Value: "const"}, - Use: nameC, - }, - }, - }, - &stmt.GroupUse{ - Prefix: nameBD, - UseType: &node.Identifier{Value: "Function"}, - UseList: []node.Node{ - &stmt.Use{ - Use: nameE, - }, - }, - }, - &expr.ConstFetch{ - Constant: nameC, - }, - &expr.FunctionCall{ - Function: nameF, - ArgumentList: &node.ArgumentList{}, - }, - &expr.FunctionCall{ - Function: nameE, - ArgumentList: &node.ArgumentList{}, - }, - }, - } - - expected := map[node.Node]string{ - nameC: "A\\B\\C", - nameF: "A\\B\\F", - nameE: "B\\D\\E", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveTraitUse(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}}} - nameD := &name.Name{Parts: []node.Node{&name.NamePart{Value: "D"}}} - - fullyQualifiedNameB := &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "B"}}} - fullyQualifiedNameBC := &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - relativeNameB := &name.Relative{Parts: []node.Node{&name.NamePart{Value: "B"}}} - relativeNameBC := &name.Relative{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAB, - }, - }, - }, - &stmt.TraitUse{ - Traits: []node.Node{ - nameB, - relativeNameB, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Adaptations: []node.Node{ - &stmt.TraitUsePrecedence{ - Ref: &stmt.TraitMethodRef{ - Trait: fullyQualifiedNameB, - Method: &node.Identifier{Value: "foo"}, - }, - Insteadof: []node.Node{fullyQualifiedNameBC}, - }, - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: relativeNameBC, - Method: &node.Identifier{Value: "foo"}, - }, - Alias: &node.Identifier{Value: "bar"}, - }, - }, - }, - }, - &stmt.TraitUse{ - Traits: []node.Node{ - nameD, - }, - }, - }, - } - - expected := map[node.Node]string{ - nameB: "A\\B", - nameD: "D", - relativeNameB: "B", - fullyQualifiedNameB: "B", - fullyQualifiedNameBC: "B\\C", - relativeNameBC: "B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveClassName(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - class := &stmt.Class{ - PhpDocComment: "", - ClassName: &node.Identifier{Value: "A"}, - Extends: &stmt.ClassExtends{ - ClassName: nameAB, - }, - Implements: &stmt.ClassImplements{ - InterfaceNames: []node.Node{ - nameBC, - }, - }, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - class, - }, - } - - expected := map[node.Node]string{ - class: "A", - nameAB: "A\\B", - nameBC: "B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveInterfaceName(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - interfaceNode := &stmt.Interface{ - PhpDocComment: "", - InterfaceName: &node.Identifier{Value: "A"}, - Extends: &stmt.InterfaceExtends{ - InterfaceNames: []node.Node{ - nameAB, - nameBC, - }, - }, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - interfaceNode, - }, - } - - expected := map[node.Node]string{ - interfaceNode: "A", - nameAB: "A\\B", - nameBC: "B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveTraitName(t *testing.T) { - traitNode := &stmt.Trait{ - PhpDocComment: "", - TraitName: &node.Identifier{Value: "A"}, - Stmts: []node.Node{}, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - traitNode, - }, - } - - expected := map[node.Node]string{ - traitNode: "A", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveFunctionName(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - functionNode := &stmt.Function{ - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{Value: "A"}, - Params: []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: nameAB, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - }, - }, - ReturnType: &node.Nullable{Expr: nameBC}, - Stmts: []node.Node{}, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - functionNode, - }, - } - - expected := map[node.Node]string{ - functionNode: "A", - nameAB: "A\\B", - nameBC: "B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveMethodName(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - methodNode := &stmt.ClassMethod{ - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{Value: "A"}, - Params: []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: nameAB, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - }, - }, - ReturnType: &node.Nullable{Expr: nameBC}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{}, - }, - } - - expected := map[node.Node]string{ - nameAB: "A\\B", - nameBC: "B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - methodNode.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveClosureName(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - nameBC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "B"}, &name.NamePart{Value: "C"}}} - - closureNode := &expr.Closure{ - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Params: []node.Node{ - &node.Parameter{ - ByRef: false, - Variadic: false, - VariableType: nameAB, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - }, - }, - ReturnType: &node.Nullable{Expr: nameBC}, - Stmts: []node.Node{}, - } - - expected := map[node.Node]string{ - nameAB: "A\\B", - nameBC: "B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - closureNode.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveConstantsName(t *testing.T) { - nameAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - - constantB := &stmt.Constant{ - PhpDocComment: "", - ConstantName: &node.Identifier{Value: "B"}, - Expr: &scalar.Lnumber{Value: "1"}, - } - constantC := &stmt.Constant{ - PhpDocComment: "", - ConstantName: &node.Identifier{Value: "C"}, - Expr: &scalar.Lnumber{Value: "1"}, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Namespace{ - NamespaceName: nameAB, - }, - &stmt.ConstList{ - Consts: []node.Node{ - constantB, - constantC, - }, - }, - }, - } - - expected := map[node.Node]string{ - constantB: "A\\B\\B", - constantC: "A\\B\\C", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveNamespaces(t *testing.T) { - namespaceAB := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "B"}}} - namespaceCD := &name.Name{Parts: []node.Node{&name.NamePart{Value: "C"}, &name.NamePart{Value: "D"}}} - - nameAC := &name.Name{Parts: []node.Node{&name.NamePart{Value: "A"}, &name.NamePart{Value: "C"}}} - nameCF := &name.Name{Parts: []node.Node{&name.NamePart{Value: "C"}, &name.NamePart{Value: "F"}}} - nameFG := &name.Name{Parts: []node.Node{&name.NamePart{Value: "F"}, &name.NamePart{Value: "G"}}} - relativeNameCE := &name.Relative{Parts: []node.Node{&name.NamePart{Value: "C"}, &name.NamePart{Value: "E"}}} - - constantB := &stmt.Constant{ - PhpDocComment: "", - ConstantName: &node.Identifier{Value: "B"}, - Expr: &scalar.Lnumber{Value: "1"}, - } - constantC := &stmt.Constant{ - PhpDocComment: "", - ConstantName: &node.Identifier{Value: "C"}, - Expr: &scalar.Lnumber{Value: "1"}, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Namespace{ - NamespaceName: namespaceAB, - }, - &stmt.ConstList{ - Consts: []node.Node{ - constantB, - constantC, - }, - }, - &expr.StaticCall{ - Class: nameFG, - Call: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, - }, - &stmt.Namespace{ - Stmts: []node.Node{}, - }, - &stmt.Namespace{ - NamespaceName: namespaceCD, - Stmts: []node.Node{ - &stmt.UseList{ - Uses: []node.Node{ - &stmt.Use{ - Use: nameAC, - }, - }, - }, - &expr.StaticCall{ - Class: relativeNameCE, - Call: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, - }, - &expr.StaticCall{ - Class: nameCF, - Call: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - }, - }, - } - - expected := map[node.Node]string{ - constantB: "A\\B\\B", - constantC: "A\\B\\C", - nameFG: "A\\B\\F\\G", - relativeNameCE: "C\\D\\C\\E", - nameCF: "A\\C\\F", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestResolveStaticCallDinamicClassName(t *testing.T) { - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &expr.StaticCall{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Call: &node.Identifier{Value: "foo"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - } - - expected := map[node.Node]string{} - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestDoNotResolveReservedConstants(t *testing.T) { - namespaceName := &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}} - - constantTrue := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "True"}, - }, - } - - constantFalse := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "False"}, - }, - } - - constantNull := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "NULL"}, - }, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Namespace{ - NamespaceName: namespaceName, - }, - &stmt.Expression{ - Expr: &expr.ConstFetch{ - Constant: constantTrue, - }, - }, - &stmt.Expression{ - Expr: &expr.ConstFetch{ - Constant: constantFalse, - }, - }, - &stmt.Expression{ - Expr: &expr.ConstFetch{ - Constant: constantNull, - }, - }, - }, - } - - expected := map[node.Node]string{ - constantTrue: "true", - constantFalse: "false", - constantNull: "null", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestDoNotResolveReservedNames(t *testing.T) { - - nameInt := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "int"}, - }, - } - - nameFloat := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "float"}, - }, - } - - nameBool := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "bool"}, - }, - } - - nameString := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "string"}, - }, - } - - nameVoid := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "void"}, - }, - } - - nameIterable := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "iterable"}, - }, - } - - nameObject := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "object"}, - }, - } - - function := &stmt.Function{ - FunctionName: &node.Identifier{Value: "bar"}, - Params: []node.Node{ - &node.Parameter{ - VariableType: nameInt, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "Int"}, - }, - }, - &node.Parameter{ - VariableType: nameFloat, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "Float"}, - }, - }, - &node.Parameter{ - VariableType: nameBool, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "Bool"}, - }, - }, - &node.Parameter{ - VariableType: nameString, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "String"}, - }, - }, - &node.Parameter{ - VariableType: nameVoid, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "Void"}, - }, - }, - &node.Parameter{ - VariableType: nameIterable, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "Iterable"}, - }, - }, - &node.Parameter{ - VariableType: nameObject, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "Object"}, - }, - }, - }, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Namespace{ - NamespaceName: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - function, - }, - } - - expected := map[node.Node]string{ - function: "Foo\\bar", - nameInt: "int", - nameFloat: "float", - nameBool: "bool", - nameString: "string", - nameVoid: "void", - nameIterable: "iterable", - nameObject: "object", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} - -func TestDoNotResolveReservedSpecialNames(t *testing.T) { - - nameSelf := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Self"}, - }, - } - - nameStatic := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Static"}, - }, - } - - nameParent := &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Parent"}, - }, - } - - cls := &stmt.Class{ - ClassName: &node.Identifier{Value: "Bar"}, - Stmts: []node.Node{ - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: nameSelf, - Call: &node.Identifier{Value: "func"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: nameStatic, - Call: &node.Identifier{Value: "func"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - &stmt.Expression{ - Expr: &expr.StaticCall{ - Class: nameParent, - Call: &node.Identifier{Value: "func"}, - ArgumentList: &node.ArgumentList{}, - }, - }, - }, - } - - ast := &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Namespace{ - NamespaceName: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, - }, - }, - }, - cls, - }, - } - - expected := map[node.Node]string{ - cls: "Foo\\Bar", - nameSelf: "self", - nameStatic: "static", - nameParent: "parent", - } - - nsResolver := visitor.NewNamespaceResolver() - ast.Walk(nsResolver) - - assert.DeepEqual(t, expected, nsResolver.ResolvedNames) -} diff --git a/visitor/pretty_json_dumper.go b/visitor/pretty_json_dumper.go deleted file mode 100644 index 547e486..0000000 --- a/visitor/pretty_json_dumper.go +++ /dev/null @@ -1,187 +0,0 @@ -// Package visitor contains walker.visitor implementations -package visitor - -import ( - "fmt" - "io" - "reflect" - - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/walker" -) - -type PrettyJsonDumper struct { - Writer io.Writer - NsResolver *NamespaceResolver - depth int - isChildNode bool - isNotFirstNode bool -} - -func NewPrettyJsonDumper(Writer io.Writer, NsResolver *NamespaceResolver) *PrettyJsonDumper { - return &PrettyJsonDumper{ - Writer: Writer, - NsResolver: NsResolver, - depth: 0, - isChildNode: false, - isNotFirstNode: false, - } -} - -func (d *PrettyJsonDumper) printIndent(w io.Writer) { - for i := 0; i < d.depth; i++ { - fmt.Fprint(d.Writer, " ") - } -} - -// EnterNode is invoked at every node in hierarchy -func (d *PrettyJsonDumper) EnterNode(w walker.Walkable) bool { - n := w.(node.Node) - - nodeType := reflect.TypeOf(n).String() - - if d.isChildNode { - d.isChildNode = false - } else if d.isNotFirstNode { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - } else { - d.printIndent(d.Writer) - d.isNotFirstNode = true - } - - fmt.Fprint(d.Writer, "{\n") - d.depth++ - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %q", "type", nodeType) - - if p := n.GetPosition(); p != nil { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: {\n", "position") - d.depth++ - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d,\n", "startPos", p.StartPos) - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d,\n", "endPos", p.EndPos) - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d,\n", "startLine", p.StartLine) - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %d\n", "endLine", p.EndLine) - d.depth-- - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "}") - } - - if d.NsResolver != nil { - if namespacedName, ok := d.NsResolver.ResolvedNames[n]; ok { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "\"namespacedName\": %q", namespacedName) - } - } - - if !n.GetFreeFloating().IsEmpty() { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "\"freefloating\": {\n") - d.depth++ - i := 0 - for key, freeFloatingStrings := range *n.GetFreeFloating() { - if i != 0 { - fmt.Fprint(d.Writer, ",\n") - } - i++ - - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: [\n", key) - d.depth++ - - j := 0 - for _, freeFloatingString := range freeFloatingStrings { - if j != 0 { - fmt.Fprint(d.Writer, ",\n") - } - j++ - - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "{\n") - d.depth++ - d.printIndent(d.Writer) - switch freeFloatingString.StringType { - case freefloating.CommentType: - fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "freefloating.CommentType") - case freefloating.WhiteSpaceType: - fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "freefloating.WhiteSpaceType") - case freefloating.TokenType: - fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "freefloating.TokenType") - } - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: %q\n", "value", freeFloatingString.Value) - d.depth-- - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "}") - } - - d.depth-- - fmt.Fprint(d.Writer, "\n") - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "]") - } - d.depth-- - fmt.Fprint(d.Writer, "\n") - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "}") - } - - if a := n.Attributes(); len(a) > 0 { - for key, attr := range a { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - switch attr.(type) { - case string: - fmt.Fprintf(d.Writer, "\"%s\": %q", key, attr) - default: - fmt.Fprintf(d.Writer, "\"%s\": %v", key, attr) - } - } - } - - return true -} - -// LeaveNode is invoked after node process -func (d *PrettyJsonDumper) LeaveNode(n walker.Walkable) { - d.depth-- - fmt.Fprint(d.Writer, "\n") - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "}") -} - -func (d *PrettyJsonDumper) EnterChildNode(key string, w walker.Walkable) { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: ", key) - d.isChildNode = true -} - -func (d *PrettyJsonDumper) LeaveChildNode(key string, w walker.Walkable) { - // do nothing -} - -func (d *PrettyJsonDumper) EnterChildList(key string, w walker.Walkable) { - fmt.Fprint(d.Writer, ",\n") - d.printIndent(d.Writer) - fmt.Fprintf(d.Writer, "%q: [\n", key) - d.depth++ - - d.isNotFirstNode = false -} - -func (d *PrettyJsonDumper) LeaveChildList(key string, w walker.Walkable) { - d.depth-- - fmt.Fprint(d.Writer, "\n") - d.printIndent(d.Writer) - fmt.Fprint(d.Writer, "]") -} diff --git a/visitor/pretty_json_dumper_test.go b/visitor/pretty_json_dumper_test.go deleted file mode 100644 index 307581d..0000000 --- a/visitor/pretty_json_dumper_test.go +++ /dev/null @@ -1,509 +0,0 @@ -package visitor_test - -import ( - "os" - - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/visitor" -) - -func ExamplePrettyJsonDumper() { - src := ` Date: Wed, 13 May 2020 20:18:53 +0300 Subject: [PATCH 006/140] refactor php5 --- internal/php5/parser.go | 104 +- internal/php5/php5.go | 4784 +++--- internal/php5/php5.y | 4207 +++-- internal/php5/php5_bench_test.go | 2 +- internal/php5/php5_test.go | 24628 +++++++++++++++++------------ internal/php7/php7.go | 988 +- 6 files changed, 19367 insertions(+), 15346 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 311e544..060be97 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -1,15 +1,14 @@ package php5 import ( - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "strings" + "bytes" "github.com/z7zmey/php-parser/internal/positionbuilder" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" - "github.com/z7zmey/php-parser/scanner" + "github.com/z7zmey/php-parser/pkg/token" ) func (lval *yySymType) Token(t *scanner.Token) { @@ -56,7 +55,7 @@ func (l *Parser) Error(msg string) { } func (l *Parser) WithTokens() { - l.Lexer.SetWithFreeFloating(true) + l.Lexer.SetWithTokens(true) } // Parse the php7 Parser entrypoint @@ -83,14 +82,14 @@ func (l *Parser) GetErrors() []*errors.Error { // helpers -func lastNode(nn []node.Node) node.Node { +func lastNode(nn []ast.Vertex) ast.Vertex { if len(nn) == 0 { return nil } return nn[len(nn)-1] } -func firstNode(nn []node.Node) node.Node { +func firstNode(nn []ast.Vertex) ast.Vertex { return nn[0] } @@ -98,20 +97,20 @@ func isDollar(r rune) bool { return r == '$' } -func (l *Parser) MoveFreeFloating(src node.Node, dst node.Node) { +func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { if l.Lexer.GetWithFreeFloating() == false { return } - if src.GetFreeFloating() == nil { + if src.GetNode().Tokens == nil { return } - l.setFreeFloating(dst, freefloating.Start, (*src.GetFreeFloating())[freefloating.Start]) - delete((*src.GetFreeFloating()), freefloating.Start) + l.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) + delete(src.GetNode().Tokens, token.Start) } -func (l *Parser) setFreeFloating(dst node.Node, p freefloating.Position, strings []freefloating.String) { +func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { if l.Lexer.GetWithFreeFloating() == false { return } @@ -120,100 +119,65 @@ func (l *Parser) setFreeFloating(dst node.Node, p freefloating.Position, strings return } - dstCollection := dst.GetFreeFloating() + dstCollection := &dst.GetNode().Tokens if *dstCollection == nil { - *dstCollection = make(freefloating.Collection) + *dstCollection = make(token.Collection) } (*dstCollection)[p] = strings } -func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []freefloating.String { +func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { if l.Lexer.GetWithFreeFloating() == false { - return []freefloating.String{} + return []token.Token{} } - return t.GetFreeFloatingToken() + tokens := make([]token.Token, len(t.Tokens)) + copy(tokens, t.Tokens) + + return tokens } -func (l *Parser) addDollarToken(v node.Node) { +func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { if l.Lexer.GetWithFreeFloating() == false { return } - l.setFreeFloating(v, freefloating.Dollar, []freefloating.String{ - { - StringType: freefloating.TokenType, - Value: "$", - Position: &position.Position{ - StartLine: v.GetPosition().StartLine, - EndLine: v.GetPosition().StartLine, - StartPos: v.GetPosition().StartPos, - EndPos: v.GetPosition().StartPos + 1, - }, - }, - }) -} - -func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode node.Node, prevNode node.Node) { - if l.Lexer.GetWithFreeFloating() == false { - return - } - - semiColon := (*prevNode.GetFreeFloating())[freefloating.SemiColon] - delete((*prevNode.GetFreeFloating()), freefloating.SemiColon) + semiColon := prevNode.GetNode().Tokens[token.SemiColon] + delete(prevNode.GetNode().Tokens, token.SemiColon) if len(semiColon) == 0 { return } - p := semiColon[0].Position if semiColon[0].Value[0] == ';' { - l.setFreeFloating(prevNode, freefloating.SemiColon, []freefloating.String{ + l.setFreeFloating(prevNode, token.SemiColon, []token.Token{ { - StringType: freefloating.TokenType, - Value: ";", - Position: &position.Position{ - StartLine: p.StartLine, - EndLine: p.StartLine, - StartPos: p.StartPos, - EndPos: p.StartPos + 1, - }, + ID: token.ID(';'), + Value: semiColon[0].Value[0:1], }, }) } vlen := len(semiColon[0].Value) tlen := 2 - if strings.HasSuffix(semiColon[0].Value, "?>\n") { + if bytes.HasSuffix(semiColon[0].Value, []byte("?>\n")) { tlen = 3 } - phpCloseTag := []freefloating.String{} + phpCloseTag := []token.Token{} if vlen-tlen > 1 { - phpCloseTag = append(phpCloseTag, freefloating.String{ - StringType: freefloating.WhiteSpaceType, - Value: semiColon[0].Value[1 : vlen-tlen], - Position: &position.Position{ - StartLine: p.StartLine, - EndLine: p.EndLine, - StartPos: p.StartPos + 1, - EndPos: p.EndPos - tlen, - }, + phpCloseTag = append(phpCloseTag, token.Token{ + ID: token.T_WHITESPACE, + Value: semiColon[0].Value[1 : vlen-tlen], }) } - phpCloseTag = append(phpCloseTag, freefloating.String{ - StringType: freefloating.WhiteSpaceType, - Value: semiColon[0].Value[vlen-tlen:], - Position: &position.Position{ - StartLine: p.EndLine, - EndLine: p.EndLine, - StartPos: p.EndPos - tlen, - EndPos: p.EndPos, - }, + phpCloseTag = append(phpCloseTag, token.Token{ + ID: T_CLOSE_TAG, + Value: semiColon[0].Value[vlen-tlen:], }) - l.setFreeFloating(htmlNode, freefloating.Start, append(phpCloseTag, (*htmlNode.GetFreeFloating())[freefloating.Start]...)) + l.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) } func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8bb5291..0b7071c 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -1,37 +1,33 @@ -// line php5/php5.y:2 +// Code generated by goyacc -o internal/php5/php5.go internal/php5/php5.y. DO NOT EDIT. + +// line internal/php5/php5.y:2 package php5 import __yyfmt__ "fmt" -// line php5/php5.y:2 -import ( - "strconv" - "strings" +// line internal/php5/php5.y:2 - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/scanner" +import ( + "bytes" + "strconv" + + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" ) -// line php5/php5.y:22 +// line internal/php5/php5.y:15 type yySymType struct { yys int - node node.Node + node ast.Vertex token *scanner.Token - list []node.Node + list []ast.Vertex simpleIndirectReference simpleIndirectReference - ClassExtends *stmt.ClassExtends - ClassImplements *stmt.ClassImplements - InterfaceExtends *stmt.InterfaceExtends - ClosureUse *expr.ClosureUse + ClassExtends *ast.StmtClassExtends + ClassImplements *ast.StmtClassImplements + InterfaceExtends *ast.StmtInterfaceExtends + ClosureUse *ast.ExprClosureUse } const T_INCLUDE = 57346 @@ -350,11 +346,11 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line php5/php5.y:7200 +// line internal/php5/php5.y:7171 type simpleIndirectReference struct { - all []*expr.Variable - last *expr.Variable + all []*ast.ExprVariable + last *ast.ExprVariable } // line yacctab:1 @@ -2319,20 +2315,20 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:283 +// line internal/php5/php5.y:276 { - yylex.(*Parser).rootNode = node.NewRoot(yyDollar[1].list) - yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} + yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, freefloating.End, yylex.(*Parser).currentToken.FreeFloating) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:295 +// line internal/php5/php5.y:288 { - if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { + if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) } @@ -2345,46 +2341,46 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:308 +// line internal/php5/php5.y:301 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:317 +// line internal/php5/php5.y:310 { - namePart := name.NewNamePart(yyDollar[1].token.Value) - yyVAL.list = []node.Node{namePart} + namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{namePart} // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:330 +// line internal/php5/php5.y:323 { - namePart := name.NewNamePart(yyDollar[3].token.Value) + namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:347 +// line internal/php5/php5.y:340 { // error yyVAL.node = nil @@ -2393,7 +2389,7 @@ yydefault: } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:354 +// line internal/php5/php5.y:347 { yyVAL.node = yyDollar[1].node @@ -2401,7 +2397,7 @@ yydefault: } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:360 +// line internal/php5/php5.y:353 { yyVAL.node = yyDollar[1].node @@ -2409,7 +2405,7 @@ yydefault: } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:366 +// line internal/php5/php5.y:359 { yyVAL.node = yyDollar[1].node @@ -2417,174 +2413,174 @@ yydefault: } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:372 +// line internal/php5/php5.y:365 { - yyVAL.node = stmt.NewHaltCompiler() + yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.HaltCompiller, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OpenParenthesisToken, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CloseParenthesisToken, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:388 +// line internal/php5/php5.y:381 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewNamespace(name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:405 +// line internal/php5/php5.y:398 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewNamespace(name, yyDollar[4].list) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:422 +// line internal/php5/php5.y:415 { - yyVAL.node = stmt.NewNamespace(nil, yyDollar[3].list) + yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Namespace, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:436 +// line internal/php5/php5.y:429 { - yyVAL.node = stmt.NewUseList(nil, yyDollar[2].list) + yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseDeclarationList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:450 +// line internal/php5/php5.y:443 { - useType := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) + useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} // save position - useType.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(useType, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseDeclarationList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:467 +// line internal/php5/php5.y:460 { - useType := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = stmt.NewUseList(useType, yyDollar[3].list) + useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} // save position - useType.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(useType, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.UseDeclarationList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:484 +// line internal/php5/php5.y:477 { yyVAL.node = yyDollar[1].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:500 +// line internal/php5/php5.y:493 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:509 +// line internal/php5/php5.y:502 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:518 +// line internal/php5/php5.y:511 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2593,93 +2589,93 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:532 +// line internal/php5/php5.y:525 { - name := name.NewName(yyDollar[1].list) - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:550 +// line internal/php5/php5.y:543 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:566 +// line internal/php5/php5.y:559 { - name := name.NewName(yyDollar[2].list) - alias := node.NewIdentifier(yyDollar[4].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:589 +// line internal/php5/php5.y:582 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:598 +// line internal/php5/php5.y:591 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:607 +// line internal/php5/php5.y:600 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2688,93 +2684,93 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:621 +// line internal/php5/php5.y:614 { - name := name.NewName(yyDollar[1].list) - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:639 +// line internal/php5/php5.y:632 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:655 +// line internal/php5/php5.y:648 { - name := name.NewName(yyDollar[2].list) - alias := node.NewIdentifier(yyDollar[4].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:678 +// line internal/php5/php5.y:671 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:687 +// line internal/php5/php5.y:680 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:696 +// line internal/php5/php5.y:689 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2783,113 +2779,113 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:710 +// line internal/php5/php5.y:703 { - name := name.NewName(yyDollar[1].list) - alias := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:728 +// line internal/php5/php5.y:721 { - name := name.NewName(yyDollar[2].list) - yyVAL.node = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:744 +// line internal/php5/php5.y:737 { - name := name.NewName(yyDollar[2].list) - alias := node.NewIdentifier(yyDollar[4].token.Value) - yyVAL.node = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, yyDollar[2].list} + alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:767 +// line internal/php5/php5.y:760 { - name := node.NewIdentifier(yyDollar[3].token.Value) - constant := stmt.NewConstant(name, yyDollar[5].node, "") - constList := yyDollar[1].node.(*stmt.ConstList) + name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} + constList := yyDollar[1].node.(*ast.StmtConstList) lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) yyVAL.node = yyDollar[1].node // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:788 +// line internal/php5/php5.y:781 { - name := node.NewIdentifier(yyDollar[2].token.Value) - constant := stmt.NewConstant(name, yyDollar[4].node, "") - constList := []node.Node{constant} - yyVAL.node = stmt.NewConstList(constList) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} + constList := []ast.Vertex{constant} + yyVAL.node = &ast.StmtConstList{ast.Node{}, constList} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, constList)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, constList) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:810 +// line internal/php5/php5.y:803 { - if inlineHtmlNode, ok := yyDollar[2].node.(*stmt.InlineHtml); ok && len(yyDollar[1].list) > 0 { + if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) } @@ -2902,15 +2898,15 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:823 +// line internal/php5/php5.y:816 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:833 +// line internal/php5/php5.y:826 { // error yyVAL.node = nil @@ -2919,7 +2915,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:840 +// line internal/php5/php5.y:833 { yyVAL.node = yyDollar[1].node @@ -2927,7 +2923,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:846 +// line internal/php5/php5.y:839 { yyVAL.node = yyDollar[1].node @@ -2935,7 +2931,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:852 +// line internal/php5/php5.y:845 { yyVAL.node = yyDollar[1].node @@ -2943,25 +2939,25 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:858 +// line internal/php5/php5.y:851 { - yyVAL.node = stmt.NewHaltCompiler() + yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.HaltCompiller, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OpenParenthesisToken, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CloseParenthesisToken, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:878 +// line internal/php5/php5.y:871 { yyVAL.node = yyDollar[1].node @@ -2969,156 +2965,156 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:884 +// line internal/php5/php5.y:877 { - label := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewLabel(label) + label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtLabel{ast.Node{}, label} // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Label, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:902 +// line internal/php5/php5.y:895 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list) + yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:915 +// line internal/php5/php5.y:908 { - yyVAL.node = stmt.NewIf(yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node) + yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} // save position if yyDollar[5].node != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) } else if len(yyDollar[4].list) > 0 { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.If, (*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, (*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line php5/php5.y:939 +// line internal/php5/php5.y:932 { - stmts := stmt.NewStmtList(yyDollar[4].list) - yyVAL.node = stmt.NewAltIf(yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node) + stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} + yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.If, (*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, (*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[7].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[8].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[8].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[8].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:963 +// line internal/php5/php5.y:956 { switch n := yyDollar[3].node.(type) { - case *stmt.While: + case *ast.StmtWhile: n.Cond = yyDollar[2].node - case *stmt.AltWhile: + case *ast.StmtAltWhile: n.Cond = yyDollar[2].node } yyVAL.node = yyDollar[3].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.While, (*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, (*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:988 +// line internal/php5/php5.y:981 { - yyVAL.node = stmt.NewDo(yyDollar[2].node, yyDollar[4].node) + yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - if len((*yyDollar[4].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.While, (*yyDollar[4].node.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*yyDollar[4].node.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]) - delete((*yyDollar[4].node.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + if len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + delete(yyDollar[4].node.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*yyDollar[4].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, (*yyDollar[4].node.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*yyDollar[4].node.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]) - delete((*yyDollar[4].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + delete(yyDollar[4].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line php5/php5.y:1009 +// line internal/php5/php5.y:1002 { switch n := yyDollar[9].node.(type) { - case *stmt.For: + case *ast.StmtFor: n.Init = yyDollar[3].list n.Cond = yyDollar[5].list n.Loop = yyDollar[7].list - case *stmt.AltFor: + case *ast.StmtAltFor: n.Init = yyDollar[3].list n.Cond = yyDollar[5].list n.Loop = yyDollar[7].list @@ -3127,25 +3123,25 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node)) + yyVAL.node.GetNode().Position = 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.For, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.InitExpr, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CondExpr, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.IncExpr, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1036 +// line internal/php5/php5.y:1029 { switch n := yyDollar[3].node.(type) { - case *stmt.Switch: + case *ast.StmtSwitch: n.Cond = yyDollar[2].node - case *stmt.AltSwitch: + case *ast.StmtAltSwitch: n.Cond = yyDollar[2].node default: panic("unexpected node type") @@ -3154,455 +3150,454 @@ yydefault: yyVAL.node = yyDollar[3].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Switch, (*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, (*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]) - delete((*yyDollar[2].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1063 +// line internal/php5/php5.y:1056 { - yyVAL.node = stmt.NewBreak(nil) + yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1077 +// line internal/php5/php5.y:1070 { - yyVAL.node = stmt.NewBreak(yyDollar[2].node) + yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1091 +// line internal/php5/php5.y:1084 { - yyVAL.node = stmt.NewContinue(nil) + yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1105 +// line internal/php5/php5.y:1098 { - yyVAL.node = stmt.NewContinue(yyDollar[2].node) + yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1119 +// line internal/php5/php5.y:1112 { - yyVAL.node = stmt.NewReturn(nil) + yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1133 +// line internal/php5/php5.y:1126 { - yyVAL.node = stmt.NewReturn(yyDollar[2].node) + yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1147 +// line internal/php5/php5.y:1140 { - yyVAL.node = stmt.NewReturn(yyDollar[2].node) + yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1161 +// line internal/php5/php5.y:1154 { - yyVAL.node = stmt.NewExpression(yyDollar[1].node) + yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1175 +// line internal/php5/php5.y:1168 { - yyVAL.node = stmt.NewGlobal(yyDollar[2].list) + yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1189 +// line internal/php5/php5.y:1182 { - yyVAL.node = stmt.NewStatic(yyDollar[2].list) + yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1203 +// line internal/php5/php5.y:1196 { - yyVAL.node = stmt.NewEcho(yyDollar[2].list) + yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1218 +// line internal/php5/php5.y:1211 { - yyVAL.node = stmt.NewInlineHtml(yyDollar[1].token.Value) + yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1230 +// line internal/php5/php5.y:1223 { - yyVAL.node = stmt.NewExpression(yyDollar[1].node) + yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:1244 +// line internal/php5/php5.y:1237 { - yyVAL.node = stmt.NewUnset(yyDollar[3].list) + yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Unset, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.CloseParenthesisToken, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line php5/php5.y:1260 +// line internal/php5/php5.y:1253 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { - case *stmt.Foreach: + case *ast.StmtForeach: n.Expr = yyDollar[3].node - n.Variable = yyDollar[5].node - case *stmt.AltForeach: + n.Var = yyDollar[5].node + case *ast.StmtAltForeach: n.Expr = yyDollar[3].node - n.Variable = yyDollar[5].node + n.Var = yyDollar[5].node } } else { switch n := yyDollar[8].node.(type) { - case *stmt.Foreach: + case *ast.StmtForeach: n.Expr = yyDollar[3].node n.Key = yyDollar[5].node - n.Variable = yyDollar[6].node - case *stmt.AltForeach: + n.Var = yyDollar[6].node + case *ast.StmtAltForeach: n.Expr = yyDollar[3].node n.Key = yyDollar[5].node - n.Variable = yyDollar[6].node + n.Var = yyDollar[6].node } } yyVAL.node = yyDollar[8].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Foreach, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Key, (*yyDollar[6].node.GetFreeFloating())[freefloating.Key]) - delete((*yyDollar[6].node.GetFreeFloating()), freefloating.Key) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) + delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line php5/php5.y:1300 +// line internal/php5/php5.y:1293 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { - case *stmt.Foreach: + case *ast.StmtForeach: n.Expr = yyDollar[3].node - n.Variable = yyDollar[5].node - case *stmt.AltForeach: + n.Var = yyDollar[5].node + case *ast.StmtAltForeach: n.Expr = yyDollar[3].node - n.Variable = yyDollar[5].node + n.Var = yyDollar[5].node } } else { switch n := yyDollar[8].node.(type) { - case *stmt.Foreach: + case *ast.StmtForeach: n.Expr = yyDollar[3].node n.Key = yyDollar[5].node - n.Variable = yyDollar[6].node - case *stmt.AltForeach: + n.Var = yyDollar[6].node + case *ast.StmtAltForeach: n.Expr = yyDollar[3].node n.Key = yyDollar[5].node - n.Variable = yyDollar[6].node + n.Var = yyDollar[6].node } } // save position yyVAL.node = yyDollar[8].node - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Foreach, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Key, (*yyDollar[6].node.GetFreeFloating())[freefloating.Key]) - delete((*yyDollar[6].node.GetFreeFloating()), freefloating.Key) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) + delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:1340 +// line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[5].node - yyVAL.node.(*stmt.Declare).Consts = yyDollar[3].list + yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Declare, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ConstList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1355 +// line internal/php5/php5.y:1348 { - yyVAL.node = stmt.NewNop() + yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line php5/php5.y:1368 +// line internal/php5/php5.y:1361 { - yyVAL.node = stmt.NewTry(yyDollar[3].list, yyDollar[5].list, yyDollar[6].node) + yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} // save position if yyDollar[6].node == nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Try, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1386 +// line internal/php5/php5.y:1379 { - yyVAL.node = stmt.NewThrow(yyDollar[2].node) + yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1400 +// line internal/php5/php5.y:1393 { - label := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = stmt.NewGoto(label) + label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtGoto{ast.Node{}, label} // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(label, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Label, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1420 +// line internal/php5/php5.y:1413 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line php5/php5.y:1426 +// line internal/php5/php5.y:1419 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - catchNode := stmt.NewCatch([]node.Node{yyDollar[3].node}, variable, yyDollar[7].list) - yyVAL.list = append([]node.Node{catchNode}, yyDollar[9].list...) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + catchNode := &ast.StmtCatch{ast.Node{}, []ast.Vertex{yyDollar[3].node}, variable, yyDollar[7].list} + yyVAL.list = append([]ast.Vertex{catchNode}, yyDollar[9].list...) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - catchNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + catchNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Catch, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[4].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Var, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Cond, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Stmts, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1452 +// line internal/php5/php5.y:1444 { yyVAL.node = nil @@ -3610,23 +3605,23 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:1458 +// line internal/php5/php5.y:1450 { - yyVAL.node = stmt.NewFinally(yyDollar[3].list) + yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Finally, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1475 +// line internal/php5/php5.y:1467 { yyVAL.list = yyDollar[1].list @@ -3634,23 +3629,23 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1481 +// line internal/php5/php5.y:1473 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1490 +// line internal/php5/php5.y:1482 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1496 +// line internal/php5/php5.y:1488 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3658,50 +3653,49 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line php5/php5.y:1505 +// line internal/php5/php5.y:1497 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = stmt.NewCatch([]node.Node{yyDollar[3].node}, variable, yyDollar[7].list) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.StmtCatch{ast.Node{}, []ast.Vertex{yyDollar[3].node}, variable, yyDollar[7].list} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Catch, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[4].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[8].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1530 +// line internal/php5/php5.y:1521 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1536 +// line internal/php5/php5.y:1527 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1548 +// line internal/php5/php5.y:1539 { yyVAL.node = yyDollar[1].node @@ -3709,7 +3703,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1557 +// line internal/php5/php5.y:1548 { yyVAL.node = yyDollar[1].node @@ -3717,7 +3711,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1566 +// line internal/php5/php5.y:1557 { yyVAL.node = yyDollar[1].node @@ -3725,67 +3719,67 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1575 +// line internal/php5/php5.y:1566 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1579 +// line internal/php5/php5.y:1570 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1586 +// line internal/php5/php5.y:1577 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1590 +// line internal/php5/php5.y:1581 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line php5/php5.y:1597 +// line internal/php5/php5.y:1588 { - name := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewFunction(name, yyDollar[2].token != nil, yyDollar[5].list, nil, yyDollar[8].list, "") + name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParamList, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, yyDollar[7].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[9].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line php5/php5.y:1624 +// line internal/php5/php5.y:1615 { - name := node.NewIdentifier(yyDollar[2].token.Value) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { - case *stmt.Class: + case *ast.StmtClass: n.ClassName = name n.Stmts = yyDollar[6].list n.Extends = yyDollar[3].ClassExtends n.Implements = yyDollar[4].ClassImplements - case *stmt.Trait: + case *ast.StmtTrait: // TODO: is it possible that trait extend or implement n.TraitName = name n.Stmts = yyDollar[6].list @@ -3793,100 +3787,100 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line php5/php5.y:1652 +// line internal/php5/php5.y:1643 { - name := node.NewIdentifier(yyDollar[2].token.Value) - yyVAL.node = stmt.NewInterface(name, yyDollar[3].InterfaceExtends, yyDollar[5].list, "") + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[6].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1673 +// line internal/php5/php5.y:1664 { - yyVAL.node = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") + yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1685 +// line internal/php5/php5.y:1676 { - classModifier := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") + classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ModifierList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1700 +// line internal/php5/php5.y:1691 { - yyVAL.node = stmt.NewTrait(nil, nil, "") + yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1712 +// line internal/php5/php5.y:1703 { - classModifier := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") + classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ModifierList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1730 +// line internal/php5/php5.y:1721 { yyVAL.ClassExtends = nil @@ -3894,27 +3888,27 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1736 +// line internal/php5/php5.y:1727 { - yyVAL.ClassExtends = stmt.NewClassExtends(yyDollar[2].node) + yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} // save position - yyVAL.ClassExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.ClassExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1751 +// line internal/php5/php5.y:1742 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1758 +// line internal/php5/php5.y:1749 { yyVAL.InterfaceExtends = nil @@ -3922,21 +3916,21 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1764 +// line internal/php5/php5.y:1755 { - yyVAL.InterfaceExtends = stmt.NewInterfaceExtends(yyDollar[2].list) + yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} // save position - yyVAL.InterfaceExtends.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.InterfaceExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1779 +// line internal/php5/php5.y:1770 { yyVAL.ClassImplements = nil @@ -3944,40 +3938,40 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1785 +// line internal/php5/php5.y:1776 { - yyVAL.ClassImplements = stmt.NewClassImplements(yyDollar[2].list) + yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} // save position - yyVAL.ClassImplements.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.ClassImplements.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1800 +// line internal/php5/php5.y:1791 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1806 +// line internal/php5/php5.y:1797 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:1818 +// line internal/php5/php5.y:1809 { yyVAL.node = nil @@ -3985,18 +3979,18 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1824 +// line internal/php5/php5.y:1815 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Key, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1836 +// line internal/php5/php5.y:1827 { yyVAL.node = yyDollar[1].node @@ -4004,323 +3998,323 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:1842 +// line internal/php5/php5.y:1833 { - yyVAL.node = expr.NewReference(yyDollar[2].node) + yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:1854 +// line internal/php5/php5.y:1845 { - yyVAL.node = expr.NewList(yyDollar[3].list) + yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.List, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1871 +// line internal/php5/php5.y:1862 { - yyVAL.node = stmt.NewFor(nil, nil, nil, yyDollar[1].node) + yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:1880 +// line internal/php5/php5.y:1871 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewAltFor(nil, nil, nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1900 +// line internal/php5/php5.y:1891 { - yyVAL.node = stmt.NewForeach(nil, nil, nil, yyDollar[1].node) + yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:1909 +// line internal/php5/php5.y:1900 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewAltForeach(nil, nil, nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:1930 +// line internal/php5/php5.y:1921 { - yyVAL.node = stmt.NewDeclare(nil, yyDollar[1].node, false) + yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:1939 +// line internal/php5/php5.y:1930 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewDeclare(nil, stmtList, true) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1960 +// line internal/php5/php5.y:1951 { - name := node.NewIdentifier(yyDollar[1].token.Value) - constant := stmt.NewConstant(name, yyDollar[3].node, "") - yyVAL.list = []node.Node{constant} + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} + yyVAL.list = []ast.Vertex{constant} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:1976 +// line internal/php5/php5.y:1967 { - name := node.NewIdentifier(yyDollar[3].token.Value) - constant := stmt.NewConstant(name, yyDollar[5].node, "") + name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, constant) // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:1997 +// line internal/php5/php5.y:1988 { - caseList := stmt.NewCaseList(yyDollar[2].list) - yyVAL.node = stmt.NewSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2012 +// line internal/php5/php5.y:2003 { - caseList := stmt.NewCaseList(yyDollar[3].list) - yyVAL.node = stmt.NewSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2028 +// line internal/php5/php5.y:2019 { - caseList := stmt.NewCaseList(yyDollar[2].list) - yyVAL.node = stmt.NewAltSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:2045 +// line internal/php5/php5.y:2036 { - caseList := stmt.NewCaseList(yyDollar[3].list) - yyVAL.node = stmt.NewAltSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2068 +// line internal/php5/php5.y:2059 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:2074 +// line internal/php5/php5.y:2065 { - _case := stmt.NewCase(yyDollar[3].node, yyDollar[5].list) + _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) // save position - _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_case, freefloating.Expr, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_case, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2089 +// line internal/php5/php5.y:2080 { - _default := stmt.NewDefault(yyDollar[4].list) + _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) // save position - _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list)) + _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.Default, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2108 +// line internal/php5/php5.y:2099 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2112 +// line internal/php5/php5.y:2103 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2120 +// line internal/php5/php5.y:2111 { - yyVAL.node = stmt.NewWhile(nil, yyDollar[1].node) + yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2129 +// line internal/php5/php5.y:2120 { - stmtList := stmt.NewStmtList(yyDollar[2].list) - yyVAL.node = stmt.NewAltWhile(nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AltEnd, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2151 +// line internal/php5/php5.y:2142 { yyVAL.list = nil @@ -4328,30 +4322,30 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2157 +// line internal/php5/php5.y:2148 { - _elseIf := stmt.NewElseIf(yyDollar[3].node, yyDollar[4].node) + _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, yyDollar[2].token.FreeFloating) - if len((*yyDollar[3].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, (*yyDollar[3].node.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*yyDollar[3].node.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]) - delete((*yyDollar[3].node.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*yyDollar[3].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, (*yyDollar[3].node.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*yyDollar[3].node.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]) - delete((*yyDollar[3].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2180 +// line internal/php5/php5.y:2171 { yyVAL.list = nil @@ -4359,33 +4353,33 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:2186 +// line internal/php5/php5.y:2177 { - stmts := stmt.NewStmtList(yyDollar[5].list) - _elseIf := stmt.NewAltElseIf(yyDollar[3].node, stmts) + stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list)) - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list) + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, yyDollar[2].token.FreeFloating) - if len((*yyDollar[3].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, (*yyDollar[3].node.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*yyDollar[3].node.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]) - delete((*yyDollar[3].node.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*yyDollar[3].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, (*yyDollar[3].node.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*yyDollar[3].node.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]) - delete((*yyDollar[3].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Cond, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2212 +// line internal/php5/php5.y:2203 { yyVAL.node = nil @@ -4393,21 +4387,21 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2218 +// line internal/php5/php5.y:2209 { - yyVAL.node = stmt.NewElse(yyDollar[2].node) + yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2234 +// line internal/php5/php5.y:2225 { yyVAL.node = nil @@ -4415,24 +4409,24 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2240 +// line internal/php5/php5.y:2231 { - stmts := stmt.NewStmtList(yyDollar[3].list) - yyVAL.node = stmt.NewAltElse(stmts) + stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Else, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Else, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2259 +// line internal/php5/php5.y:2250 { yyVAL.list = yyDollar[1].list @@ -4440,7 +4434,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2265 +// line internal/php5/php5.y:2256 { yyVAL.list = nil @@ -4448,42 +4442,42 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2274 +// line internal/php5/php5.y:2265 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2280 +// line internal/php5/php5.y:2271 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2292 +// line internal/php5/php5.y:2283 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, nil, yyDollar[2].token != nil, yyDollar[3].token != nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, nil} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) } // save comments @@ -4491,49 +4485,48 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Variadic, yyDollar[4].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, (*yyVAL.node.GetFreeFloating())[freefloating.Variadic]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Variadic) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, (*yyVAL.node.GetFreeFloating())[freefloating.Ampersand]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Ampersand) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, (*yyVAL.node.GetFreeFloating())[freefloating.OptionalType]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.OptionalType) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line php5/php5.y:2337 +// line internal/php5/php5.y:2327 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = node.NewParameter(yyDollar[1].node, variable, yyDollar[6].node, yyDollar[2].token != nil, yyDollar[3].token != nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, yyDollar[6].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } // save comments @@ -4541,34 +4534,33 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Variadic, yyDollar[4].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, (*yyVAL.node.GetFreeFloating())[freefloating.Variadic]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Variadic) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.OptionalType, (*yyVAL.node.GetFreeFloating())[freefloating.Ampersand]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.Ampersand) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, (*yyVAL.node.GetFreeFloating())[freefloating.OptionalType]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.OptionalType) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2387 +// line internal/php5/php5.y:2376 { yyVAL.node = nil @@ -4576,35 +4568,35 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2393 +// line internal/php5/php5.y:2382 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2405 +// line internal/php5/php5.y:2394 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2417 +// line internal/php5/php5.y:2406 { yyVAL.node = yyDollar[1].node @@ -4612,78 +4604,78 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2427 +// line internal/php5/php5.y:2416 { - yyVAL.node = node.NewArgumentList(nil) + yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArgumentList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2440 +// line internal/php5/php5.y:2429 { - yyVAL.node = node.NewArgumentList(yyDollar[2].list) + yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArgumentList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2453 +// line internal/php5/php5.y:2442 { - arg := node.NewArgument(yyDollar[2].node, false, false) - yyVAL.node = node.NewArgumentList([]node.Node{arg}) + arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} + yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} // save position - arg.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + arg.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArgumentList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2472 +// line internal/php5/php5.y:2461 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2478 +// line internal/php5/php5.y:2467 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2490 +// line internal/php5/php5.y:2479 { - yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) + yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -4692,12 +4684,12 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2502 +// line internal/php5/php5.y:2491 { - yyVAL.node = node.NewArgument(yyDollar[1].node, false, false) + yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -4706,187 +4698,182 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2514 +// line internal/php5/php5.y:2503 { - yyVAL.node = node.NewArgument(yyDollar[2].node, false, true) + yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2526 +// line internal/php5/php5.y:2515 { - yyVAL.node = node.NewArgument(yyDollar[2].node, true, false) + yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2541 +// line internal/php5/php5.y:2530 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2550 +// line internal/php5/php5.y:2539 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2560 +// line internal/php5/php5.y:2549 { - name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2575 +// line internal/php5/php5.y:2563 { - yyVAL.node = expr.NewVariable(yyDollar[2].node) + yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2588 +// line internal/php5/php5.y:2576 { - yyVAL.node = expr.NewVariable(yyDollar[3].node) + yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - 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).setFreeFloating(yyDollar[3].node, freefloating.Start, append(yyDollar[2].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), (*yyDollar[3].node.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, freefloating.End, append((*yyDollar[3].node.GetFreeFloating())[freefloating.End], append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2607 +// line internal/php5/php5.y:2595 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} yyVAL.list = append(yyDollar[1].list, staticVar) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:2626 +// line internal/php5/php5.y:2613 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, yyDollar[5].node) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, staticVar) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Var, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2646 +// line internal/php5/php5.y:2632 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, nil) - yyVAL.list = []node.Node{staticVar} + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} + yyVAL.list = []ast.Vertex{staticVar} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2664 +// line internal/php5/php5.y:2649 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, yyDollar[3].node) - yyVAL.list = []node.Node{staticVar} + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} + yyVAL.list = []ast.Vertex{staticVar} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2687 +// line internal/php5/php5.y:2671 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4894,46 +4881,46 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2693 +// line internal/php5/php5.y:2677 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2703 +// line internal/php5/php5.y:2687 { - yyVAL.node = stmt.NewPropertyList(yyDollar[1].list, nil, yyDollar[2].list) + yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].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, token.PropertyList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2717 +// line internal/php5/php5.y:2701 { yyVAL.node = yyDollar[1].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ConstList, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2730 +// line internal/php5/php5.y:2714 { yyVAL.node = yyDollar[1].node @@ -4941,101 +4928,101 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line php5/php5.y:2736 +// line internal/php5/php5.y:2720 { - 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, "") + name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].list == nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) } // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ModifierList, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Name, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[7].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2770 +// line internal/php5/php5.y:2754 { - yyVAL.node = stmt.NewTraitUse(yyDollar[2].list, yyDollar[3].node) + yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2785 +// line internal/php5/php5.y:2769 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2791 +// line internal/php5/php5.y:2775 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2803 +// line internal/php5/php5.y:2787 { - yyVAL.node = stmt.NewNop() + yyVAL.node = &ast.StmtNop{ast.Node{}} - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2815 +// line internal/php5/php5.y:2799 { - yyVAL.node = stmt.NewTraitAdaptationList(yyDollar[2].list) + yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.AdaptationList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2830 +// line internal/php5/php5.y:2814 { yyVAL.list = nil @@ -5043,7 +5030,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2836 +// line internal/php5/php5.y:2820 { yyVAL.list = yyDollar[1].list @@ -5051,15 +5038,15 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2845 +// line internal/php5/php5.y:2829 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2851 +// line internal/php5/php5.y:2835 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5067,81 +5054,81 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2860 +// line internal/php5/php5.y:2844 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.NameList, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:2870 +// line internal/php5/php5.y:2854 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Alias, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2883 +// line internal/php5/php5.y:2867 { - yyVAL.node = stmt.NewTraitUsePrecedence(yyDollar[1].node, yyDollar[3].list) + yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ref, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2899 +// line internal/php5/php5.y:2883 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2905 +// line internal/php5/php5.y:2889 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2917 +// line internal/php5/php5.y:2901 { - name := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = stmt.NewTraitMethodRef(nil, name) + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2931 +// line internal/php5/php5.y:2915 { yyVAL.node = yyDollar[1].node @@ -5149,58 +5136,58 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2940 +// line internal/php5/php5.y:2924 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = stmt.NewTraitMethodRef(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:2959 +// line internal/php5/php5.y:2943 { - alias := node.NewIdentifier(yyDollar[4].token.Value) - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, alias) + alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} // save position - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = 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.Ref, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:2975 +// line internal/php5/php5.y:2959 { - yyVAL.node = stmt.NewTraitUseAlias(yyDollar[1].node, yyDollar[3].node, nil) + yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Ref, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:2991 +// line internal/php5/php5.y:2975 { yyVAL.node = nil @@ -5208,7 +5195,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:2997 +// line internal/php5/php5.y:2981 { yyVAL.node = yyDollar[1].node @@ -5216,37 +5203,37 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3006 +// line internal/php5/php5.y:2990 { - yyVAL.node = stmt.NewNop() + yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3019 +// line internal/php5/php5.y:3003 { - yyVAL.node = stmt.NewStmtList(yyDollar[2].list) + yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3035 +// line internal/php5/php5.y:3019 { yyVAL.list = yyDollar[1].list @@ -5254,22 +5241,22 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3041 +// line internal/php5/php5.y:3025 { - modifier := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.list = []node.Node{modifier} + modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{modifier} // save position - modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:3057 +// line internal/php5/php5.y:3041 { yyVAL.list = nil @@ -5277,7 +5264,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3063 +// line internal/php5/php5.y:3047 { yyVAL.list = yyDollar[1].list @@ -5285,15 +5272,15 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3072 +// line internal/php5/php5.y:3056 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3078 +// line internal/php5/php5.y:3062 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5301,237 +5288,233 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3087 +// line internal/php5/php5.y:3071 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3099 +// line internal/php5/php5.y:3083 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3111 +// line internal/php5/php5.y:3095 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3123 +// line internal/php5/php5.y:3107 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3135 +// line internal/php5/php5.y:3119 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3147 +// line internal/php5/php5.y:3131 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3162 +// line internal/php5/php5.y:3146 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, nil, "") + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, nil} yyVAL.list = append(yyDollar[1].list, property) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(property, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:3181 +// line internal/php5/php5.y:3164 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, yyDollar[5].node, "") + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, property) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(property, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, freefloating.Var, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3201 +// line internal/php5/php5.y:3183 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, nil, "") - yyVAL.list = []node.Node{property} + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, nil} + yyVAL.list = []ast.Vertex{property} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(property, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3219 +// line internal/php5/php5.y:3200 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, yyDollar[3].node, "") - yyVAL.list = []node.Node{property} + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} + yyVAL.list = []ast.Vertex{property} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(property, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:3241 +// line internal/php5/php5.y:3221 { - name := node.NewIdentifier(yyDollar[3].token.Value) - constant := stmt.NewConstant(name, yyDollar[5].node, "") - constList := yyDollar[1].node.(*stmt.ClassConstList) + name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} + constList := yyDollar[1].node.(*ast.StmtClassConstList) lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) yyVAL.node = yyDollar[1].node // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node)) - yyDollar[1].node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) + yyDollar[1].node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastConst, freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:3262 +// line internal/php5/php5.y:3242 { - name := node.NewIdentifier(yyDollar[2].token.Value) - constant := stmt.NewConstant(name, yyDollar[4].node, "") - yyVAL.node = stmt.NewClassConstList(nil, []node.Node{constant}) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} + yyVAL.node = &ast.StmtClassConstList{ast.Node{}, nil, []ast.Vertex{constant}} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3283 +// line internal/php5/php5.y:3263 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3292 +// line internal/php5/php5.y:3272 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:3302 +// line internal/php5/php5.y:3282 { yyVAL.list = nil @@ -5539,7 +5522,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3308 +// line internal/php5/php5.y:3288 { yyVAL.list = yyDollar[1].list @@ -5547,26 +5530,26 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3317 +// line internal/php5/php5.y:3297 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3326 +// line internal/php5/php5.y:3306 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3335 +// line internal/php5/php5.y:3315 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5574,7 +5557,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3341 +// line internal/php5/php5.y:3321 { yyVAL.list = yyDollar[1].list @@ -5582,39 +5565,39 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:3350 +// line internal/php5/php5.y:3330 { - fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3364 +// line internal/php5/php5.y:3344 { - fetch := expr.NewArrayDimFetch(nil, yyDollar[2].node) - yyVAL.list = []node.Node{fetch} + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} + yyVAL.list = []ast.Vertex{fetch} // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append(yyDollar[1].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3381 +// line internal/php5/php5.y:3361 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5622,7 +5605,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3387 +// line internal/php5/php5.y:3367 { yyVAL.list = yyDollar[1].list @@ -5630,7 +5613,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3393 +// line internal/php5/php5.y:3373 { yyVAL.list = yyDollar[1].list @@ -5638,7 +5621,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:3402 +// line internal/php5/php5.y:3382 { yyVAL.list = nil @@ -5646,7 +5629,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:3408 +// line internal/php5/php5.y:3388 { yyVAL.list = yyDollar[1].list @@ -5654,815 +5637,815 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3417 +// line internal/php5/php5.y:3397 { if yyDollar[3].node != nil { - yyVAL.node = expr.NewNew(yyDollar[2].node, yyDollar[3].node.(*node.ArgumentList)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node)) + yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) } else { - yyVAL.node = expr.NewNew(yyDollar[2].node, nil) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line php5/php5.y:3436 +// line internal/php5/php5.y:3416 { - listNode := expr.NewList(yyDollar[3].list) - yyVAL.node = assign.NewAssign(listNode, yyDollar[6].node) + listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node)) + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3453 +// line internal/php5/php5.y:3433 { - yyVAL.node = assign.NewAssign(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:3466 +// line internal/php5/php5.y:3446 { - yyVAL.node = assign.NewReference(yyDollar[1].node, yyDollar[4].node) + yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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.Var, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Equal, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line php5/php5.y:3480 +// line internal/php5/php5.y:3460 { - var _new *expr.New + var _new *ast.ExprNew if yyDollar[6].node != nil { - _new = expr.NewNew(yyDollar[5].node, yyDollar[6].node.(*node.ArgumentList)) + _new = &ast.ExprNew{ast.Node{}, yyDollar[5].node, yyDollar[6].node.(*ast.ArgumentList)} } else { - _new = expr.NewNew(yyDollar[5].node, nil) + _new = &ast.ExprNew{ast.Node{}, yyDollar[5].node, nil} } - yyVAL.node = assign.NewReference(yyDollar[1].node, _new) + yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, _new} // save position if yyDollar[6].node != nil { - _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node)) + _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } else { - _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node)) + _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node) } - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, _new)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, _new) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Equal, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(_new, freefloating.Start, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3507 +// line internal/php5/php5.y:3487 { - yyVAL.node = expr.NewClone(yyDollar[2].node) + yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3519 +// line internal/php5/php5.y:3499 { - yyVAL.node = assign.NewPlus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3531 +// line internal/php5/php5.y:3511 { - yyVAL.node = assign.NewMinus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3544 +// line internal/php5/php5.y:3524 { - yyVAL.node = assign.NewMul(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3557 +// line internal/php5/php5.y:3537 { - yyVAL.node = assign.NewPow(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3570 +// line internal/php5/php5.y:3550 { - yyVAL.node = assign.NewDiv(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3583 +// line internal/php5/php5.y:3563 { - yyVAL.node = assign.NewConcat(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3596 +// line internal/php5/php5.y:3576 { - yyVAL.node = assign.NewMod(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3609 +// line internal/php5/php5.y:3589 { - yyVAL.node = assign.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3622 +// line internal/php5/php5.y:3602 { - yyVAL.node = assign.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3635 +// line internal/php5/php5.y:3615 { - yyVAL.node = assign.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3648 +// line internal/php5/php5.y:3628 { - yyVAL.node = assign.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3661 +// line internal/php5/php5.y:3641 { - yyVAL.node = assign.NewShiftRight(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3674 +// line internal/php5/php5.y:3654 { - yyVAL.node = expr.NewPostInc(yyDollar[1].node) + yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3687 +// line internal/php5/php5.y:3667 { - yyVAL.node = expr.NewPreInc(yyDollar[2].node) + yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3699 +// line internal/php5/php5.y:3679 { - yyVAL.node = expr.NewPostDec(yyDollar[1].node) + yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3712 +// line internal/php5/php5.y:3692 { - yyVAL.node = expr.NewPreDec(yyDollar[2].node) + yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3724 +// line internal/php5/php5.y:3704 { - yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3737 +// line internal/php5/php5.y:3717 { - yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3750 +// line internal/php5/php5.y:3730 { - yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3763 +// line internal/php5/php5.y:3743 { - yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3776 +// line internal/php5/php5.y:3756 { - yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3789 +// line internal/php5/php5.y:3769 { - yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3802 +// line internal/php5/php5.y:3782 { - yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3815 +// line internal/php5/php5.y:3795 { - yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3828 +// line internal/php5/php5.y:3808 { - yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3841 +// line internal/php5/php5.y:3821 { - yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3854 +// line internal/php5/php5.y:3834 { - yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3867 +// line internal/php5/php5.y:3847 { - yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3880 +// line internal/php5/php5.y:3860 { - yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3893 +// line internal/php5/php5.y:3873 { - yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3906 +// line internal/php5/php5.y:3886 { - yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3919 +// line internal/php5/php5.y:3899 { - yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3932 +// line internal/php5/php5.y:3912 { - yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3945 +// line internal/php5/php5.y:3925 { - yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) + yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3957 +// line internal/php5/php5.y:3937 { - yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) + yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3969 +// line internal/php5/php5.y:3949 { - yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) + yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:3981 +// line internal/php5/php5.y:3961 { - yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) + yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:3993 +// line internal/php5/php5.y:3973 { - yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4006 +// line internal/php5/php5.y:3986 { - yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4019 +// line internal/php5/php5.y:3999 { - yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4032 +// line internal/php5/php5.y:4012 { - yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4046 +// line internal/php5/php5.y:4026 { - yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4059 +// line internal/php5/php5.y:4039 { - yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4072 +// line internal/php5/php5.y:4052 { - yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4085 +// line internal/php5/php5.y:4065 { - yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4098 +// line internal/php5/php5.y:4078 { - yyVAL.node = expr.NewInstanceOf(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4111 +// line internal/php5/php5.y:4091 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - yylex.(*Parser).setFreeFloating(yyDollar[1].node, freefloating.Start, append((*yyDollar[1].node.GetFreeFloating())[freefloating.OpenParenthesisToken], (*yyDollar[1].node.GetFreeFloating())[freefloating.Start]...)) - delete((*yyDollar[1].node.GetFreeFloating()), freefloating.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating(yyDollar[1].node, freefloating.End, append((*yyDollar[1].node.GetFreeFloating())[freefloating.End], (*yyDollar[1].node.GetFreeFloating())[freefloating.CloseParenthesisToken]...)) - delete((*yyDollar[1].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + yylex.(*Parser).setFreeFloating(yyDollar[1].node, token.Start, append(yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[1].node.GetNode().Tokens[token.Start]...)) + delete(yyDollar[1].node.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(yyDollar[1].node, token.End, append(yyDollar[1].node.GetNode().Tokens[token.End], yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]...)) + delete(yyDollar[1].node.GetNode().Tokens, token.CloseParenthesisToken) } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4120 +// line internal/php5/php5.y:4100 { yyVAL.node = yyDollar[1].node @@ -6470,73 +6453,73 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4126 +// line internal/php5/php5.y:4106 { 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) for _, n := range yyDollar[4].list { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = yyVAL.node + case *ast.ExprArrayDimFetch: + nn.Var = yyVAL.node yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.PropertyFetch: - nn.Variable = yyVAL.node + case *ast.ExprPropertyFetch: + nn.Var = yyVAL.node yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.MethodCall: - nn.Variable = yyVAL.node + case *ast.ExprMethodCall: + nn.Var = yyVAL.node yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, n)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, n) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:4158 +// line internal/php5/php5.y:4138 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) + yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.True, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4172 +// line internal/php5/php5.y:4152 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) + yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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.Cond, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.True, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4186 +// line internal/php5/php5.y:4166 { yyVAL.node = yyDollar[1].node @@ -6544,149 +6527,149 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4192 +// line internal/php5/php5.y:4172 { - yyVAL.node = cast.NewInt(yyDollar[2].node) + yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4205 +// line internal/php5/php5.y:4185 { - yyVAL.node = cast.NewDouble(yyDollar[2].node) + yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4218 +// line internal/php5/php5.y:4198 { - yyVAL.node = cast.NewString(yyDollar[2].node) + yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4231 +// line internal/php5/php5.y:4211 { - yyVAL.node = cast.NewArray(yyDollar[2].node) + yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4244 +// line internal/php5/php5.y:4224 { - yyVAL.node = cast.NewObject(yyDollar[2].node) + yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4257 +// line internal/php5/php5.y:4237 { - yyVAL.node = cast.NewBool(yyDollar[2].node) + yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4270 +// line internal/php5/php5.y:4250 { - yyVAL.node = cast.NewUnset(yyDollar[2].node) + yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4283 +// line internal/php5/php5.y:4263 { - e := yyDollar[2].node.(*expr.Exit) + e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node - if strings.EqualFold(yyDollar[1].token.Value, "die") { + if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { e.Die = true } // save position - if yyDollar[2].node.GetPosition() == nil { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + if yyDollar[2].node.GetNode().Position == nil { + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4304 +// line internal/php5/php5.y:4284 { - yyVAL.node = expr.NewErrorSuppress(yyDollar[2].node) + yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4316 +// line internal/php5/php5.y:4296 { yyVAL.node = yyDollar[1].node @@ -6694,7 +6677,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4322 +// line internal/php5/php5.y:4302 { yyVAL.node = yyDollar[1].node @@ -6702,7 +6685,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4328 +// line internal/php5/php5.y:4308 { yyVAL.node = yyDollar[1].node @@ -6710,269 +6693,269 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4334 +// line internal/php5/php5.y:4314 { - yyVAL.node = expr.NewShellExec(yyDollar[2].list) + yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4346 +// line internal/php5/php5.y:4326 { - yyVAL.node = expr.NewPrint(yyDollar[2].node) + yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4358 +// line internal/php5/php5.y:4338 { - yyVAL.node = expr.NewYield(nil, nil) + yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line php5/php5.y:4370 +// line internal/php5/php5.y:4350 { - yyVAL.node = expr.NewClosure(yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list, false, yyDollar[2].token != nil, "") + yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) } 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, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[5].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.LexicalVars, yyDollar[7].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[9].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) // normalize if yyDollar[6].ClosureUse == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyVAL.node.GetFreeFloating())[freefloating.LexicalVars]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.LexicalVars) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) + delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line php5/php5.y:4396 +// line internal/php5/php5.y:4376 { - yyVAL.node = expr.NewClosure(yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list, true, yyDollar[3].token != nil, "") + yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Static, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.Tokens) if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Function, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Ampersand, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ParameterList, yyDollar[6].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.LexicalVars, yyDollar[8].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Stmts, yyDollar[10].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.Tokens) // normalize if yyDollar[7].ClosureUse == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Params, (*yyVAL.node.GetFreeFloating())[freefloating.LexicalVars]) - delete((*yyVAL.node.GetFreeFloating()), freefloating.LexicalVars) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) + delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4426 +// line internal/php5/php5.y:4406 { - yyVAL.node = expr.NewYield(nil, yyDollar[2].node) + yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4438 +// line internal/php5/php5.y:4418 { - yyVAL.node = expr.NewYield(nil, yyDollar[2].node) + yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4450 +// line internal/php5/php5.y:4430 { - yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) + yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4463 +// line internal/php5/php5.y:4443 { - yyVAL.node = expr.NewYield(yyDollar[2].node, yyDollar[4].node) + yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4479 +// line internal/php5/php5.y:4459 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4493 +// line internal/php5/php5.y:4473 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4507 +// line internal/php5/php5.y:4487 { - str := scalar.NewString(yyDollar[1].token.Value) - yyVAL.node = expr.NewArrayDimFetch(str, yyDollar[3].node) + str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} // save position - str.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token)) + str.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - 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, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4523 +// line internal/php5/php5.y:4503 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4540 +// line internal/php5/php5.y:4520 { - yyVAL.node = expr.NewArray(yyDollar[3].list) + yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Array, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4554 +// line internal/php5/php5.y:4534 { - yyVAL.node = expr.NewShortArray(yyDollar[2].list) + yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4570 +// line internal/php5/php5.y:4550 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:4577 +// line internal/php5/php5.y:4557 { yyVAL.ClosureUse = nil @@ -6980,110 +6963,106 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4583 +// line internal/php5/php5.y:4563 { - yyVAL.ClosureUse = expr.NewClosureUse(yyDollar[3].list) + yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} // save position - yyVAL.ClosureUse.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.ClosureUse.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, freefloating.Use, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, freefloating.LexicalVarList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4600 +// line internal/php5/php5.y:4580 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[3].token.Value, isDollar)) - variable := expr.NewVariable(identifier) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.list = append(yyDollar[1].list, variable) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4617 +// line internal/php5/php5.y:4596 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[4].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - reference := expr.NewReference(variable) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + reference := &ast.ExprReference{ast.Node{}, variable} yyVAL.list = append(yyDollar[1].list, reference) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, yyDollar[3].token.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[4].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4637 +// line internal/php5/php5.y:4615 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.list = []node.Node{variable} + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.list = []ast.Vertex{variable} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4653 +// line internal/php5/php5.y:4630 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[2].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - reference := expr.NewReference(variable) - yyVAL.list = []node.Node{reference} + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + reference := &ast.ExprReference{ast.Node{}, variable} + yyVAL.list = []ast.Vertex{reference} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4675 +// line internal/php5/php5.y:4651 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = expr.NewFunctionCall(name, yyDollar[2].node.(*node.ArgumentList)) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(name, yyDollar[2].node)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(name, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7092,105 +7071,105 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4689 +// line internal/php5/php5.y:4665 { - funcName := name.NewRelative(yyDollar[3].list) - yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[4].node.(*node.ArgumentList)) + funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} // save position - funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[4].node)) + funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(funcName, freefloating.Namespace, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4704 +// line internal/php5/php5.y:4680 { - funcName := name.NewFullyQualified(yyDollar[2].list) - yyVAL.node = expr.NewFunctionCall(funcName, yyDollar[3].node.(*node.ArgumentList)) + funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} // save position - funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[3].node)) + funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4718 +// line internal/php5/php5.y:4694 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4731 +// line internal/php5/php5.y:4707 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4744 +// line internal/php5/php5.y:4720 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4757 +// line internal/php5/php5.y:4733 { - yyVAL.node = expr.NewStaticCall(yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4770 +// line internal/php5/php5.y:4746 { - yyVAL.node = expr.NewFunctionCall(yyDollar[1].node, yyDollar[2].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7199,26 +7178,26 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4785 +// line internal/php5/php5.y:4761 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4797 +// line internal/php5/php5.y:4773 { - yyVAL.node = name.NewName(yyDollar[1].list) + yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7227,41 +7206,41 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4809 +// line internal/php5/php5.y:4785 { - yyVAL.node = name.NewRelative(yyDollar[3].list) + yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Namespace, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4822 +// line internal/php5/php5.y:4798 { - yyVAL.node = name.NewFullyQualified(yyDollar[2].list) + yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4837 +// line internal/php5/php5.y:4813 { - yyVAL.node = name.NewName(yyDollar[1].list) + yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7270,36 +7249,36 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:4849 +// line internal/php5/php5.y:4825 { - yyVAL.node = name.NewRelative(yyDollar[3].list) + yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Namespace, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4862 +// line internal/php5/php5.y:4838 { - yyVAL.node = name.NewFullyQualified(yyDollar[2].list) + yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4877 +// line internal/php5/php5.y:4853 { yyVAL.node = yyDollar[1].node @@ -7307,7 +7286,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4883 +// line internal/php5/php5.y:4859 { yyVAL.node = yyDollar[1].node @@ -7315,42 +7294,42 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:4892 +// line internal/php5/php5.y:4868 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) for _, n := range yyDollar[3].list { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = yyVAL.node - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = yyVAL.node + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.PropertyFetch: - nn.Variable = yyVAL.node - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprPropertyFetch: + nn.Var = yyVAL.node + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } for _, n := range yyDollar[4].list { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = yyVAL.node - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = yyVAL.node + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.PropertyFetch: - nn.Variable = yyVAL.node - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprPropertyFetch: + nn.Var = yyVAL.node + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } @@ -7358,7 +7337,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4933 +// line internal/php5/php5.y:4909 { yyVAL.node = yyDollar[1].node @@ -7366,7 +7345,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4943 +// line internal/php5/php5.y:4919 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7374,90 +7353,90 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:4949 +// line internal/php5/php5.y:4925 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4959 +// line internal/php5/php5.y:4935 { yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], freefloating.Var, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:4971 +// line internal/php5/php5.y:4947 { - yyVAL.node = expr.NewExit(nil) + yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:4977 +// line internal/php5/php5.y:4953 { - yyVAL.node = expr.NewExit(nil) + yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Exit, append(yyDollar[1].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:4990 +// line internal/php5/php5.y:4966 { - yyVAL.node = expr.NewExit(yyDollar[1].node) + yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} // save position - if yylex.(*Parser).currentToken.Value == ")" { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yylex.(*Parser).currentToken)) + if bytes.Compare(yylex.(*Parser).currentToken.Value, []byte(")")) == 0 { + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yylex.(*Parser).currentToken) } else { - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Exit, (*yyDollar[1].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) - delete((*yyDollar[1].node.GetFreeFloating()), freefloating.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, (*yyDollar[1].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) - delete((*yyDollar[1].node.GetFreeFloating()), freefloating.CloseParenthesisToken) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken]) + delete(yyDollar[1].node.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]) + delete(yyDollar[1].node.GetNode().Tokens, token.CloseParenthesisToken) } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:5010 +// line internal/php5/php5.y:4986 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5016 +// line internal/php5/php5.y:4992 { - part := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) - yyVAL.list = []node.Node{part} + part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{part} // save position - part.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5026 +// line internal/php5/php5.y:5002 { yyVAL.list = yyDollar[1].list @@ -7465,7 +7444,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:5035 +// line internal/php5/php5.y:5011 { yyVAL.node = nil @@ -7473,7 +7452,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5041 +// line internal/php5/php5.y:5017 { yyVAL.node = yyDollar[1].node @@ -7481,195 +7460,195 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5050 +// line internal/php5/php5.y:5026 { - yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5062 +// line internal/php5/php5.y:5038 { - yyVAL.node = scalar.NewDnumber(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5074 +// line internal/php5/php5.y:5050 { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5086 +// line internal/php5/php5.y:5062 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5098 +// line internal/php5/php5.y:5074 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5110 +// line internal/php5/php5.y:5086 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5122 +// line internal/php5/php5.y:5098 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5134 +// line internal/php5/php5.y:5110 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5146 +// line internal/php5/php5.y:5122 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5158 +// line internal/php5/php5.y:5134 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5170 +// line internal/php5/php5.y:5146 { - encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) - yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, []node.Node{encapsed}) + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5184 +// line internal/php5/php5.y:5160 { - yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, nil) + yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5199 +// line internal/php5/php5.y:5175 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5218 +// line internal/php5/php5.y:5194 { yyVAL.node = yyDollar[1].node @@ -7677,7 +7656,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5227 +// line internal/php5/php5.y:5203 { yyVAL.node = yyDollar[1].node @@ -7685,7 +7664,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5233 +// line internal/php5/php5.y:5209 { yyVAL.node = yyDollar[1].node @@ -7693,14 +7672,14 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5239 +// line internal/php5/php5.y:5215 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = expr.NewConstFetch(name) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7709,71 +7688,71 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5253 +// line internal/php5/php5.y:5229 { - name := name.NewRelative(yyDollar[3].list) - yyVAL.node = expr.NewConstFetch(name) + name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Namespace, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5268 +// line internal/php5/php5.y:5244 { - name := name.NewFullyQualified(yyDollar[2].list) - yyVAL.node = expr.NewConstFetch(name) + name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:5282 +// line internal/php5/php5.y:5258 { - yyVAL.node = expr.NewArray(yyDollar[3].list) + yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Array, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5296 +// line internal/php5/php5.y:5272 { - yyVAL.node = expr.NewShortArray(yyDollar[2].list) + yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.ArrayPairList, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5309 +// line internal/php5/php5.y:5285 { yyVAL.node = yyDollar[1].node @@ -7781,21 +7760,21 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5315 +// line internal/php5/php5.y:5291 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5327 +// line internal/php5/php5.y:5303 { yyVAL.node = yyDollar[1].node @@ -7803,499 +7782,499 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:5336 +// line internal/php5/php5.y:5312 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5350 +// line internal/php5/php5.y:5326 { - yyVAL.node = binary.NewPlus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5363 +// line internal/php5/php5.y:5339 { - yyVAL.node = binary.NewMinus(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5376 +// line internal/php5/php5.y:5352 { - yyVAL.node = binary.NewMul(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5389 +// line internal/php5/php5.y:5365 { - yyVAL.node = binary.NewPow(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5402 +// line internal/php5/php5.y:5378 { - yyVAL.node = binary.NewDiv(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5415 +// line internal/php5/php5.y:5391 { - yyVAL.node = binary.NewMod(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5428 +// line internal/php5/php5.y:5404 { - yyVAL.node = expr.NewBooleanNot(yyDollar[2].node) + yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5440 +// line internal/php5/php5.y:5416 { - yyVAL.node = expr.NewBitwiseNot(yyDollar[2].node) + yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5452 +// line internal/php5/php5.y:5428 { - yyVAL.node = binary.NewBitwiseOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5465 +// line internal/php5/php5.y:5441 { - yyVAL.node = binary.NewBitwiseAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5478 +// line internal/php5/php5.y:5454 { - yyVAL.node = binary.NewBitwiseXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5491 +// line internal/php5/php5.y:5467 { - yyVAL.node = binary.NewShiftLeft(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5504 +// line internal/php5/php5.y:5480 { - yyVAL.node = binary.NewShiftRight(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5517 +// line internal/php5/php5.y:5493 { - yyVAL.node = binary.NewConcat(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5530 +// line internal/php5/php5.y:5506 { - yyVAL.node = binary.NewLogicalXor(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5543 +// line internal/php5/php5.y:5519 { - yyVAL.node = binary.NewLogicalAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5556 +// line internal/php5/php5.y:5532 { - yyVAL.node = binary.NewLogicalOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5569 +// line internal/php5/php5.y:5545 { - yyVAL.node = binary.NewBooleanAnd(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5582 +// line internal/php5/php5.y:5558 { - yyVAL.node = binary.NewBooleanOr(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5595 +// line internal/php5/php5.y:5571 { - yyVAL.node = binary.NewIdentical(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5608 +// line internal/php5/php5.y:5584 { - yyVAL.node = binary.NewNotIdentical(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5621 +// line internal/php5/php5.y:5597 { - yyVAL.node = binary.NewEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5634 +// line internal/php5/php5.y:5610 { - yyVAL.node = binary.NewNotEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5648 +// line internal/php5/php5.y:5624 { - yyVAL.node = binary.NewSmaller(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5661 +// line internal/php5/php5.y:5637 { - yyVAL.node = binary.NewGreater(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5674 +// line internal/php5/php5.y:5650 { - yyVAL.node = binary.NewSmallerOrEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5687 +// line internal/php5/php5.y:5663 { - yyVAL.node = binary.NewGreaterOrEqual(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:5700 +// line internal/php5/php5.y:5676 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, nil, yyDollar[4].node) + yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + yyVAL.node.GetNode().Position = 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.Cond, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.True, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:5714 +// line internal/php5/php5.y:5690 { - yyVAL.node = expr.NewTernary(yyDollar[1].node, yyDollar[3].node, yyDollar[5].node) + yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Cond, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.True, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5728 +// line internal/php5/php5.y:5704 { - yyVAL.node = expr.NewUnaryPlus(yyDollar[2].node) + yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5740 +// line internal/php5/php5.y:5716 { - yyVAL.node = expr.NewUnaryMinus(yyDollar[2].node) + yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5752 +// line internal/php5/php5.y:5728 { 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5765 +// line internal/php5/php5.y:5741 { yyVAL.node = yyDollar[1].node @@ -8303,14 +8282,14 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5771 +// line internal/php5/php5.y:5747 { - name := name.NewName(yyDollar[1].list) - yyVAL.node = expr.NewConstFetch(name) + name := &ast.NameName{ast.Node{}, yyDollar[1].list} + yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -8319,56 +8298,56 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5785 +// line internal/php5/php5.y:5761 { - name := name.NewRelative(yyDollar[3].list) - yyVAL.node = expr.NewConstFetch(name) + name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Namespace, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5800 +// line internal/php5/php5.y:5776 { - name := name.NewFullyQualified(yyDollar[2].list) - yyVAL.node = expr.NewConstFetch(name) + name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5817 +// line internal/php5/php5.y:5793 { - name := node.NewIdentifier(yyDollar[1].token.Value) - yyVAL.node = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5831 +// line internal/php5/php5.y:5807 { yyVAL.node = yyDollar[1].node @@ -8376,7 +8355,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5837 +// line internal/php5/php5.y:5813 { yyVAL.node = yyDollar[1].node @@ -8384,7 +8363,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5843 +// line internal/php5/php5.y:5819 { yyVAL.node = yyDollar[1].node @@ -8392,49 +8371,49 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5849 +// line internal/php5/php5.y:5825 { - yyVAL.node = scalar.NewEncapsed(yyDollar[2].list) + yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5861 +// line internal/php5/php5.y:5837 { - yyVAL.node = scalar.NewHeredoc(yyDollar[1].token.Value, yyDollar[2].list) + yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5873 +// line internal/php5/php5.y:5849 { - yyVAL.node = scalar.NewMagicConstant(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:5888 +// line internal/php5/php5.y:5864 { yyVAL.list = nil @@ -8442,87 +8421,87 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:5894 +// line internal/php5/php5.y:5870 { yyVAL.list = yyDollar[1].list // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:5908 +// line internal/php5/php5.y:5884 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5912 +// line internal/php5/php5.y:5888 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:5919 +// line internal/php5/php5.y:5895 { - arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5934 +// line internal/php5/php5.y:5910 { - arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5948 +// line internal/php5/php5.y:5924 { - arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) - yyVAL.list = []node.Node{arrayItem} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} + yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5962 +// line internal/php5/php5.y:5938 { - arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) - yyVAL.list = []node.Node{arrayItem} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} + yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) @@ -8531,7 +8510,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5978 +// line internal/php5/php5.y:5954 { yyVAL.node = yyDollar[1].node @@ -8539,7 +8518,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:5984 +// line internal/php5/php5.y:5960 { yyVAL.node = yyDollar[1].node @@ -8547,43 +8526,43 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:5993 +// line internal/php5/php5.y:5969 { yyVAL.node = yyDollar[2].node // save comments - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.Start, append((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken], (*yyDollar[2].node.GetFreeFloating())[freefloating.Start]...)) + if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.Start, append(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[2].node.GetNode().Tokens[token.Start]...)) } - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.End, append((*yyDollar[2].node.GetFreeFloating())[freefloating.End], (*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]...)) + if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.OpenParenthesisToken, append(yyDollar[1].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.CloseParenthesisToken, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6009 +// line internal/php5/php5.y:5985 { yyVAL.node = yyDollar[2].node // save comments - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.Start, append((*yyDollar[2].node.GetFreeFloating())[freefloating.OpenParenthesisToken], (*yyDollar[2].node.GetFreeFloating())[freefloating.Start]...)) + if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.Start, append(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[2].node.GetNode().Tokens[token.Start]...)) } - if len((*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.End, append((*yyDollar[2].node.GetFreeFloating())[freefloating.End], (*yyDollar[2].node.GetFreeFloating())[freefloating.CloseParenthesisToken]...)) + if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.OpenParenthesisToken, append(yyDollar[1].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyDollar[2].node, freefloating.CloseParenthesisToken, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6029 +// line internal/php5/php5.y:6005 { yyVAL.node = yyDollar[1].node @@ -8591,7 +8570,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6039 +// line internal/php5/php5.y:6015 { yyVAL.node = yyDollar[1].node @@ -8599,7 +8578,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6048 +// line internal/php5/php5.y:6024 { yyVAL.node = yyDollar[1].node @@ -8607,59 +8586,59 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:6057 +// line internal/php5/php5.y:6033 { yyVAL.node = yyDollar[1].node if yyDollar[4].list != nil { - yyDollar[4].list[0].(*expr.MethodCall).Method = yyDollar[3].list[len(yyDollar[3].list)-1].(*expr.PropertyFetch).Property + yyDollar[4].list[0].(*ast.ExprMethodCall).Method = yyDollar[3].list[len(yyDollar[3].list)-1].(*ast.ExprPropertyFetch).Property yyDollar[3].list = append(yyDollar[3].list[:len(yyDollar[3].list)-1], yyDollar[4].list...) } // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], freefloating.Var, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) for _, n := range yyDollar[3].list { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = yyVAL.node - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = yyVAL.node + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.PropertyFetch: - nn.Variable = yyVAL.node - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprPropertyFetch: + nn.Var = yyVAL.node + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.MethodCall: - nn.Variable = yyVAL.node - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprMethodCall: + nn.Var = yyVAL.node + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } for _, n := range yyDollar[5].list { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = yyVAL.node - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = yyVAL.node + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.PropertyFetch: - nn.Variable = yyVAL.node - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprPropertyFetch: + nn.Var = yyVAL.node + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) - case *expr.MethodCall: - nn.Variable = yyVAL.node - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn)) + case *ast.ExprMethodCall: + nn.Var = yyVAL.node + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, yyVAL.node) + yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } @@ -8667,7 +8646,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6115 +// line internal/php5/php5.y:6091 { yyVAL.node = yyDollar[1].node @@ -8675,7 +8654,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6124 +// line internal/php5/php5.y:6100 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8683,82 +8662,82 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:6130 +// line internal/php5/php5.y:6106 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6140 +// line internal/php5/php5.y:6116 { if yyDollar[3].list != nil { - yyDollar[3].list[0].(*expr.MethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*expr.PropertyFetch).Property + yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property yyDollar[2].list = append(yyDollar[2].list[:len(yyDollar[2].list)-1], yyDollar[3].list...) } yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], freefloating.Var, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6157 +// line internal/php5/php5.y:6133 { - fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6171 +// line internal/php5/php5.y:6147 { - fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) - yyVAL.list = []node.Node{yyDollar[1].node, fetch} + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6188 +// line internal/php5/php5.y:6164 { - yyVAL.node = expr.NewMethodCall(nil, nil, yyDollar[1].node.(*node.ArgumentList)) + yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6200 +// line internal/php5/php5.y:6176 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6206 +// line internal/php5/php5.y:6182 { yyVAL.list = yyDollar[1].list @@ -8766,7 +8745,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:6212 +// line internal/php5/php5.y:6188 { yyVAL.list = nil @@ -8774,7 +8753,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6221 +// line internal/php5/php5.y:6197 { yyVAL.node = yyDollar[1].node @@ -8782,12 +8761,12 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6227 +// line internal/php5/php5.y:6203 { - yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) + yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node for _, n := range yyDollar[1].simpleIndirectReference.all { - n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node)) + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] @@ -8796,37 +8775,37 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6242 +// line internal/php5/php5.y:6218 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6255 +// line internal/php5/php5.y:6231 { - yyVAL.node = expr.NewStaticPropertyFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6271 +// line internal/php5/php5.y:6247 { yyVAL.node = yyDollar[1].node @@ -8834,39 +8813,39 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6280 +// line internal/php5/php5.y:6256 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6294 +// line internal/php5/php5.y:6270 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6311 +// line internal/php5/php5.y:6287 { yyVAL.node = yyDollar[1].node @@ -8874,7 +8853,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6317 +// line internal/php5/php5.y:6293 { yyVAL.node = yyDollar[1].node @@ -8882,7 +8861,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6323 +// line internal/php5/php5.y:6299 { yyVAL.node = yyDollar[1].node @@ -8890,7 +8869,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6333 +// line internal/php5/php5.y:6309 { yyVAL.node = yyDollar[1].node @@ -8898,12 +8877,12 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6339 +// line internal/php5/php5.y:6315 { - yyDollar[1].simpleIndirectReference.last.SetVarName(yyDollar[2].node) + yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node for _, n := range yyDollar[1].simpleIndirectReference.all { - n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node)) + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] @@ -8912,7 +8891,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6351 +// line internal/php5/php5.y:6327 { yyVAL.node = yyDollar[1].node @@ -8920,39 +8899,39 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6360 +// line internal/php5/php5.y:6336 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6374 +// line internal/php5/php5.y:6350 { - yyVAL.node = expr.NewArrayDimFetch(yyDollar[1].node, yyDollar[3].node) + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6388 +// line internal/php5/php5.y:6364 { yyVAL.node = yyDollar[1].node @@ -8960,41 +8939,40 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6398 +// line internal/php5/php5.y:6374 { - name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6413 +// line internal/php5/php5.y:6388 { - yyVAL.node = expr.NewVariable(yyDollar[3].node) + yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - 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).setFreeFloating(yyDollar[3].node, freefloating.Start, append(yyDollar[2].token.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), (*yyDollar[3].node.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, freefloating.End, append((*yyDollar[3].node.GetFreeFloating())[freefloating.End], append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:6431 +// line internal/php5/php5.y:6406 { yyVAL.node = nil @@ -9002,7 +8980,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6437 +// line internal/php5/php5.y:6412 { yyVAL.node = yyDollar[1].node @@ -9010,7 +8988,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6447 +// line internal/php5/php5.y:6422 { yyVAL.list = yyDollar[1].list @@ -9018,160 +8996,160 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6453 +// line internal/php5/php5.y:6428 { - fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) - yyVAL.list = []node.Node{fetch} + fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} + yyVAL.list = []ast.Vertex{fetch} // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6466 +// line internal/php5/php5.y:6441 { - fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6480 +// line internal/php5/php5.y:6455 { - fetch := expr.NewArrayDimFetch(nil, yyDollar[3].node) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append(yyDollar[2].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append(yyDollar[4].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6494 +// line internal/php5/php5.y:6469 { - fetch := expr.NewPropertyFetch(nil, yyDollar[1].node) - yyVAL.list = []node.Node{fetch} + fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} + yyVAL.list = []ast.Vertex{fetch} // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6507 +// line internal/php5/php5.y:6482 { - yyVAL.node = node.NewIdentifier(yyDollar[1].token.Value) + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6519 +// line internal/php5/php5.y:6494 { yyVAL.node = yyDollar[2].node // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // 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).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6535 +// line internal/php5/php5.y:6510 { - n := expr.NewVariable(nil) - yyVAL.simpleIndirectReference = simpleIndirectReference{[]*expr.Variable{n}, n} + n := &ast.ExprVariable{ast.Node{}, nil} + yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} // save position - n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(n, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(n, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6549 +// line internal/php5/php5.y:6524 { - n := expr.NewVariable(nil) + n := &ast.ExprVariable{ast.Node{}, nil} - yyDollar[1].simpleIndirectReference.last.SetVarName(n) + yyDollar[1].simpleIndirectReference.last.VarName = n yyDollar[1].simpleIndirectReference.all = append(yyDollar[1].simpleIndirectReference.all, n) yyDollar[1].simpleIndirectReference.last = n yyVAL.simpleIndirectReference = yyDollar[1].simpleIndirectReference // save position - n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(n, freefloating.Start, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(n, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6570 +// line internal/php5/php5.y:6545 { if len(yyDollar[1].list) == 0 { - yyDollar[1].list = []node.Node{expr.NewArrayItem(nil, nil, false)} + yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} } 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6583 +// line internal/php5/php5.y:6558 { - if yyDollar[1].node.(*expr.ArrayItem).Key == nil && yyDollar[1].node.(*expr.ArrayItem).Val == nil { - yyVAL.list = []node.Node{} + if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { + yyVAL.list = []ast.Vertex{} } else { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6597 +// line internal/php5/php5.y:6572 { - yyVAL.node = expr.NewArrayItem(nil, yyDollar[1].node, false) + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -9180,113 +9158,113 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6609 +// line internal/php5/php5.y:6584 { - listNode := expr.NewList(yyDollar[3].list) - yyVAL.node = expr.NewArrayItem(nil, listNode, false) + listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(listNode)) + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:6625 +// line internal/php5/php5.y:6600 { - yyVAL.node = expr.NewArrayItem(nil, nil, false) + yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line php5/php5.y:6635 +// line internal/php5/php5.y:6610 { - yyVAL.list = []node.Node{} + yyVAL.list = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6641 +// line internal/php5/php5.y:6616 { yyVAL.list = yyDollar[1].list if yyDollar[2].token != nil { - yyVAL.list = append(yyDollar[1].list, expr.NewArrayItem(nil, nil, false)) + yyVAL.list = append(yyDollar[1].list, &ast.ExprArrayItem{ast.Node{}, false, nil, nil}) } // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line php5/php5.y:6659 +// line internal/php5/php5.y:6634 { - arrayItem := expr.NewArrayItem(yyDollar[3].node, yyDollar[5].node, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6674 +// line internal/php5/php5.y:6649 { - arrayItem := expr.NewArrayItem(nil, yyDollar[3].node, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6688 +// line internal/php5/php5.y:6663 { - arrayItem := expr.NewArrayItem(yyDollar[1].node, yyDollar[3].node, false) - yyVAL.list = []node.Node{arrayItem} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} + yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6702 +// line internal/php5/php5.y:6677 { - arrayItem := expr.NewArrayItem(nil, yyDollar[1].node, false) - yyVAL.list = []node.Node{arrayItem} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} + yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) @@ -9295,81 +9273,81 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line php5/php5.y:6715 +// line internal/php5/php5.y:6690 { - reference := expr.NewReference(yyDollar[6].node) - arrayItem := expr.NewArrayItem(yyDollar[3].node, reference, false) + reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node)) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, yyDollar[4].token.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, yyDollar[5].token.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6733 +// line internal/php5/php5.y:6708 { - reference := expr.NewReference(yyDollar[4].node) - arrayItem := expr.NewArrayItem(nil, reference, false) + reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), freefloating.End, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6749 +// line internal/php5/php5.y:6724 { - reference := expr.NewReference(yyDollar[4].node) - arrayItem := expr.NewArrayItem(yyDollar[1].node, reference, false) - yyVAL.list = []node.Node{arrayItem} + reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} + yyVAL.list = []ast.Vertex{arrayItem} // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node)) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6766 +// line internal/php5/php5.y:6741 { - reference := expr.NewReference(yyDollar[2].node) - arrayItem := expr.NewArrayItem(nil, reference, false) - yyVAL.list = []node.Node{arrayItem} + reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} + yyVAL.list = []ast.Vertex{arrayItem} // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6784 +// line internal/php5/php5.y:6759 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9377,362 +9355,358 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6790 +// line internal/php5/php5.y:6765 { - encapsed := scalar.NewEncapsedStringPart(yyDollar[2].token.Value) + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, yyDollar[2].token.FreeFloating) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6803 +// line internal/php5/php5.y:6778 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:6809 +// line internal/php5/php5.y:6784 { - encapsed := scalar.NewEncapsedStringPart(yyDollar[1].token.Value) - yyVAL.list = []node.Node{encapsed, yyDollar[2].node} + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} + yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6825 +// line internal/php5/php5.y:6800 { - name := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6840 +// line internal/php5/php5.y:6814 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[3].node) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).addDollarToken(variable) - 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, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6858 +// line internal/php5/php5.y:6831 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - variable := expr.NewVariable(identifier) - fetch := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewPropertyFetch(variable, fetch) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + fetch := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Start, yyDollar[3].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6878 +// line internal/php5/php5.y:6850 { - variable := expr.NewVariable(yyDollar[2].node) + variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} yyVAL.node = variable // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6893 +// line internal/php5/php5.y:6865 { - name := node.NewIdentifier(yyDollar[2].token.Value) - variable := expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + variable := &ast.ExprVariable{ast.Node{}, name} yyVAL.node = variable // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line php5/php5.y:6910 +// line internal/php5/php5.y:6882 { - identifier := node.NewIdentifier(yyDollar[2].token.Value) - variable := expr.NewVariable(identifier) - yyVAL.node = expr.NewArrayDimFetch(variable, yyDollar[4].node) + identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + variable := &ast.ExprVariable{ast.Node{}, identifier} + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Var, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, append(yyDollar[5].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[6].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:6929 +// line internal/php5/php5.y:6901 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.End, append(yyDollar[3].token.FreeFloating, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6942 +// line internal/php5/php5.y:6914 { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6954 +// line internal/php5/php5.y:6926 { // TODO: add option to handle 64 bit integer - if _, err := strconv.Atoi(yyDollar[1].token.Value); err == nil { - yyVAL.node = scalar.NewLnumber(yyDollar[1].token.Value) + if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { + yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} } else { - yyVAL.node = scalar.NewString(yyDollar[1].token.Value) + yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} } // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:6971 +// line internal/php5/php5.y:6943 { - identifier := node.NewIdentifier(strings.TrimLeftFunc(yyDollar[1].token.Value, isDollar)) - yyVAL.node = expr.NewVariable(identifier) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).addDollarToken(yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:6989 +// line internal/php5/php5.y:6960 { - yyVAL.node = expr.NewIsset(yyDollar[3].list) + yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Isset, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.VarList, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:7003 +// line internal/php5/php5.y:6974 { - yyVAL.node = expr.NewEmpty(yyDollar[3].node) + yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Empty, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:7017 +// line internal/php5/php5.y:6988 { - yyVAL.node = expr.NewEmpty(yyDollar[3].node) + yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Empty, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:7031 +// line internal/php5/php5.y:7002 { - yyVAL.node = expr.NewInclude(yyDollar[2].node) + yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:7043 +// line internal/php5/php5.y:7014 { - yyVAL.node = expr.NewIncludeOnce(yyDollar[2].node) + yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line php5/php5.y:7055 +// line internal/php5/php5.y:7026 { - yyVAL.node = expr.NewEval(yyDollar[3].node) + yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token)) + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Start, yyDollar[1].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Eval, yyDollar[2].token.FreeFloating) - yylex.(*Parser).setFreeFloating(yyVAL.node, freefloating.Expr, yyDollar[4].token.FreeFloating) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:7069 +// line internal/php5/php5.y:7040 { - yyVAL.node = expr.NewRequire(yyDollar[2].node) + yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line php5/php5.y:7081 +// line internal/php5/php5.y:7052 { - yyVAL.node = expr.NewRequireOnce(yyDollar[2].node) + yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node)) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:7096 +// line internal/php5/php5.y:7067 { - yyVAL.list = []node.Node{yyDollar[1].node} + yyVAL.list = []ast.Vertex{yyDollar[1].node} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:7102 +// line internal/php5/php5.y:7073 { 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).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:7114 +// line internal/php5/php5.y:7085 { yyVAL.node = yyDollar[1].node @@ -9740,7 +9714,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line php5/php5.y:7120 +// line internal/php5/php5.y:7091 { yyVAL.node = yyDollar[1].node @@ -9748,73 +9722,73 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:7129 +// line internal/php5/php5.y:7100 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:7145 +// line internal/php5/php5.y:7116 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:7164 +// line internal/php5/php5.y:7135 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line php5/php5.y:7183 +// line internal/php5/php5.y:7154 { - target := node.NewIdentifier(yyDollar[3].token.Value) - yyVAL.node = expr.NewClassConstFetch(yyDollar[1].node, target) + target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, 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)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = 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).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 9102dd8..fc42063 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2,33 +2,26 @@ package php5 import ( - "strings" + "bytes" "strconv" - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/scanner" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" + "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" ) %} %union{ - node node.Node + node ast.Vertex token *scanner.Token - list []node.Node + list []ast.Vertex simpleIndirectReference simpleIndirectReference - ClassExtends *stmt.ClassExtends - ClassImplements *stmt.ClassImplements - InterfaceExtends *stmt.InterfaceExtends - ClosureUse *expr.ClosureUse + ClassExtends *ast.StmtClassExtends + ClassImplements *ast.StmtClassImplements + InterfaceExtends *ast.StmtInterfaceExtends + ClosureUse *ast.ExprClosureUse } %type $unk @@ -281,10 +274,10 @@ import ( start: top_statement_list { - yylex.(*Parser).rootNode = node.NewRoot($1) - yylex.(*Parser).rootNode.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} + yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, freefloating.End, yylex.(*Parser).currentToken.FreeFloating) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -293,7 +286,7 @@ start: top_statement_list: top_statement_list top_statement { - if inlineHtmlNode, ok := $2.(*stmt.InlineHtml); ok && len($1) > 0 { + if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { prevNode := lastNode($1) yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) } @@ -306,7 +299,7 @@ top_statement_list: } | /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -315,28 +308,28 @@ top_statement_list: namespace_name: T_STRING { - namePart := name.NewNamePart($1.Value) - $$ = []node.Node{namePart} + namePart := &ast.NameNamePart{ast.Node{}, $1.Value} + $$ = []ast.Vertex{namePart} // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_NS_SEPARATOR T_STRING { - namePart := name.NewNamePart($3.Value) + namePart := &ast.NameNamePart{ast.Node{}, $3.Value} $$ = append($1, namePart) // save position - namePart.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(namePart, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -352,131 +345,131 @@ top_statement: } | statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_declaration_statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_declaration_statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_HALT_COMPILER '(' ')' ';' { - $$ = stmt.NewHaltCompiler() + $$ = &ast.StmtHaltCompiler{ast.Node{}, } // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.HaltCompiller, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.OpenParenthesisToken, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.CloseParenthesisToken, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE namespace_name ';' { - name := name.NewName($2) - $$ = stmt.NewNamespace(name, nil) + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtNamespace{ast.Node{}, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { - name := name.NewName($2) - $$ = stmt.NewNamespace(name, $4) + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtNamespace{ast.Node{}, name, $4} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $5.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE '{' top_statement_list '}' { - $$ = stmt.NewNamespace(nil, $3) + $$ = &ast.StmtNamespace{ast.Node{}, nil, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Namespace, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_declarations ';' { - $$ = stmt.NewUseList(nil, $2) + $$ = &ast.StmtUseList{ast.Node{}, nil, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.UseDeclarationList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE T_FUNCTION use_function_declarations ';' { - useType := node.NewIdentifier($2.Value) - $$ = stmt.NewUseList(useType, $3) + useType := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtUseList{ast.Node{}, useType, $3} // save position - useType.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(useType, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.UseDeclarationList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE T_CONST use_const_declarations ';' { - useType := node.NewIdentifier($2.Value) - $$ = stmt.NewUseList(useType, $3) + useType := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtUseList{ast.Node{}, useType, $3} // save position - useType.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(useType, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.UseDeclarationList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -485,11 +478,11 @@ top_statement: $$ = $1 // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -501,13 +494,13 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_declaration { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -516,12 +509,12 @@ use_declarations: use_declaration: namespace_name { - name := name.NewName($1) - $$ = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -530,55 +523,55 @@ use_declaration: } | namespace_name T_AS T_STRING { - name := name.NewName($1) - alias := node.NewIdentifier($3.Value) - $$ = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, $1} + alias := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { - name := name.NewName($2) - $$ = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - name := name.NewName($2) - alias := node.NewIdentifier($4.Value) - $$ = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, $2} + alias := &ast.Identifier{ast.Node{}, $4.Value} + $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -590,13 +583,13 @@ use_function_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_function_declaration { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -605,12 +598,12 @@ use_function_declarations: use_function_declaration: namespace_name { - name := name.NewName($1) - $$ = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -619,55 +612,55 @@ use_function_declaration: } | namespace_name T_AS T_STRING { - name := name.NewName($1) - alias := node.NewIdentifier($3.Value) - $$ = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, $1} + alias := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { - name := name.NewName($2) - $$ = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - name := name.NewName($2) - alias := node.NewIdentifier($4.Value) - $$ = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, $2} + alias := &ast.Identifier{ast.Node{}, $4.Value} + $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -679,13 +672,13 @@ use_const_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_const_declaration { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -694,12 +687,12 @@ use_const_declarations: use_const_declaration: namespace_name { - name := name.NewName($1) - $$ = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -708,55 +701,55 @@ use_const_declaration: } | namespace_name T_AS T_STRING { - name := name.NewName($1) - alias := node.NewIdentifier($3.Value) - $$ = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, $1} + alias := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { - name := name.NewName($2) - $$ = stmt.NewUse(nil, name, nil) + name := &ast.NameName{ast.Node{}, $2} + $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - name := name.NewName($2) - alias := node.NewIdentifier($4.Value) - $$ = stmt.NewUse(nil, name, alias) + name := &ast.NameName{ast.Node{}, $2} + alias := &ast.Identifier{ast.Node{}, $4.Value} + $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, freefloating.End, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -765,41 +758,41 @@ use_const_declaration: constant_declaration: constant_declaration ',' T_STRING '=' static_scalar { - name := node.NewIdentifier($3.Value) - constant := stmt.NewConstant(name, $5, "") - constList := $1.(*stmt.ConstList) + name := &ast.Identifier{ast.Node{}, $3.Value} + constant := &ast.StmtConstant{ast.Node{}, name, $5} + constList := $1.(*ast.StmtConstList) lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) $$ = $1 // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONST T_STRING '=' static_scalar { - name := node.NewIdentifier($2.Value) - constant := stmt.NewConstant(name, $4, "") - constList := []node.Node{constant} - $$ = stmt.NewConstList(constList) + name := &ast.Identifier{ast.Node{}, $2.Value} + constant := &ast.StmtConstant{ast.Node{}, name, $4} + constList := []ast.Vertex{constant} + $$ = &ast.StmtConstList{ast.Node{}, constList} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -808,7 +801,7 @@ constant_declaration: inner_statement_list: inner_statement_list inner_statement { - if inlineHtmlNode, ok := $2.(*stmt.InlineHtml); ok && len($1) > 0 { + if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { prevNode := lastNode($1) yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) } @@ -821,7 +814,7 @@ inner_statement_list: } | /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -838,35 +831,35 @@ inner_statement: } | statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_declaration_statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_declaration_statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_HALT_COMPILER '(' ')' ';' { - $$ = stmt.NewHaltCompiler() + $$ = &ast.StmtHaltCompiler{ast.Node{}, } // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.HaltCompiller, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.OpenParenthesisToken, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.CloseParenthesisToken, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -876,22 +869,22 @@ inner_statement: statement: unticked_statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STRING ':' { - label := node.NewIdentifier($1.Value) - $$ = stmt.NewLabel(label) + label := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtLabel{ast.Node{}, label} // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Label, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -900,119 +893,119 @@ statement: unticked_statement: '{' inner_statement_list '}' { - $$ = stmt.NewStmtList($2) + $$ = &ast.StmtStmtList{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IF parenthesis_expr statement elseif_list else_single { - $$ = stmt.NewIf($2, $3, $4, $5) + $$ = &ast.StmtIf{ast.Node{}, $2, $3, $4, $5} // save position if $5 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) } else if len($4) > 0 { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $4) } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) } // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.If, (*$2.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, (*$2.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { - stmts := stmt.NewStmtList($4) - $$ = stmt.NewAltIf($2, stmts, $5, $6) + stmts := &ast.StmtStmtList{ast.Node{}, $4} + $$ = &ast.StmtAltIf{ast.Node{}, $2, stmts, $5, $6} // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.If, (*$2.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, (*$2.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $7.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $8.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($8)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($8)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_WHILE parenthesis_expr while_statement { switch n := $3.(type) { - case *stmt.While : + case *ast.StmtWhile : n.Cond = $2 - case *stmt.AltWhile : + case *ast.StmtAltWhile : n.Cond = $2 } $$ = $3 // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.While, (*$2.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.While, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, (*$2.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DO statement T_WHILE parenthesis_expr ';' { - $$ = stmt.NewDo($2, $4) + $$ = &ast.StmtDo{ast.Node{}, $2, $4} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - if len((*$4.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.While, (*$4.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*$4.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]); delete((*$4.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + if len($4.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.While, $4.GetNode().Tokens[token.OpenParenthesisToken][:len($4.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($4.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*$4.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, (*$4.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*$4.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]); delete((*$4.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len($4.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.GetNode().Tokens[token.CloseParenthesisToken][:len($4.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($4.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement { switch n := $9.(type) { - case *stmt.For : + case *ast.StmtFor : n.Init = $3 n.Cond = $5 n.Loop = $7 - case *stmt.AltFor : + case *ast.StmtAltFor : n.Init = $3 n.Cond = $5 n.Loop = $7 @@ -1021,23 +1014,23 @@ unticked_statement: $$ = $9 // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.For, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.InitExpr, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.CondExpr, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.IncExpr, $8.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_SWITCH parenthesis_expr switch_case_list { switch n := $3.(type) { - case *stmt.Switch: + case *ast.StmtSwitch: n.Cond = $2 - case *stmt.AltSwitch: + case *ast.StmtAltSwitch: n.Cond = $2 default: panic("unexpected node type") @@ -1046,213 +1039,213 @@ unticked_statement: $$ = $3 // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - if len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.Switch, (*$2.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.Switch, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, (*$2.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]); delete((*$2.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BREAK ';' { - $$ = stmt.NewBreak(nil) + $$ = &ast.StmtBreak{ast.Node{}, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BREAK expr ';' { - $$ = stmt.NewBreak($2) + $$ = &ast.StmtBreak{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONTINUE ';' { - $$ = stmt.NewContinue(nil) + $$ = &ast.StmtContinue{ast.Node{}, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONTINUE expr ';' { - $$ = stmt.NewContinue($2) + $$ = &ast.StmtContinue{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_RETURN ';' { - $$ = stmt.NewReturn(nil) + $$ = &ast.StmtReturn{ast.Node{}, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_RETURN expr_without_variable ';' { - $$ = stmt.NewReturn($2) + $$ = &ast.StmtReturn{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_RETURN variable ';' { - $$ = stmt.NewReturn($2) + $$ = &ast.StmtReturn{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | yield_expr ';' { - $$ = stmt.NewExpression($1) + $$ = &ast.StmtExpression{ast.Node{}, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_GLOBAL global_var_list ';' { - $$ = stmt.NewGlobal($2) + $$ = &ast.StmtGlobal{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC static_var_list ';' { - $$ = stmt.NewStatic($2) + $$ = &ast.StmtStatic{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ECHO echo_expr_list ';' { - $$ = stmt.NewEcho($2) + $$ = &ast.StmtEcho{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INLINE_HTML { - $$ = stmt.NewInlineHtml($1.Value) + $$ = &ast.StmtInlineHtml{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr ';' { - $$ = stmt.NewExpression($1) + $$ = &ast.StmtExpression{ast.Node{}, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_UNSET '(' unset_variables ')' ';' { - $$ = stmt.NewUnset($3) + $$ = &ast.StmtUnset{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Unset, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.CloseParenthesisToken, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1260,39 +1253,39 @@ unticked_statement: { if $6 == nil { switch n := $8.(type) { - case *stmt.Foreach : + case *ast.StmtForeach : n.Expr = $3 - n.Variable = $5 - case *stmt.AltForeach : + n.Var = $5 + case *ast.StmtAltForeach : n.Expr = $3 - n.Variable = $5 + n.Var = $5 } } else { switch n := $8.(type) { - case *stmt.Foreach : + case *ast.StmtForeach : n.Expr = $3 n.Key = $5 - n.Variable = $6 - case *stmt.AltForeach : + n.Var = $6 + case *ast.StmtAltForeach : n.Expr = $3 n.Key = $5 - n.Variable = $6 + n.Var = $6 } } - + $$ = $8 // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Foreach, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Key, (*$6.GetFreeFloating())[freefloating.Key]); delete((*$6.GetFreeFloating()), freefloating.Key) + yylex.(*Parser).setFreeFloating($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $7.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1300,116 +1293,116 @@ unticked_statement: { if $6 == nil { switch n := $8.(type) { - case *stmt.Foreach : + case *ast.StmtForeach : n.Expr = $3 - n.Variable = $5 - case *stmt.AltForeach : + n.Var = $5 + case *ast.StmtAltForeach : n.Expr = $3 - n.Variable = $5 + n.Var = $5 } } else { switch n := $8.(type) { - case *stmt.Foreach : + case *ast.StmtForeach : n.Expr = $3 n.Key = $5 - n.Variable = $6 - case *stmt.AltForeach : + n.Var = $6 + case *ast.StmtAltForeach : n.Expr = $3 n.Key = $5 - n.Variable = $6 + n.Var = $6 } } - + // save position $$ = $8 - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Foreach, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Key, (*$6.GetFreeFloating())[freefloating.Key]); delete((*$6.GetFreeFloating()), freefloating.Key) + yylex.(*Parser).setFreeFloating($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $7.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DECLARE '(' declare_list ')' declare_statement { $$ = $5 - $$.(*stmt.Declare).Consts = $3 + $$.(*ast.StmtDeclare).Consts = $3 // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Declare, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ConstList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ';' { - $$ = stmt.NewNop() + $$ = &ast.StmtNop{ast.Node{}, } // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { - $$ = stmt.NewTry($3, $5, $6) + $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} // save position if $6 == nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5) } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) } // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Try, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_THROW expr ';' { - $$ = stmt.NewThrow($2) + $$ = &ast.StmtThrow{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_GOTO T_STRING ';' { - label := node.NewIdentifier($2.Value) - $$ = stmt.NewGoto(label) + label := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtGoto{ast.Node{}, label} // save position - label.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(label, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Label, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1418,30 +1411,29 @@ unticked_statement: catch_statement: /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { - identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) - variable := expr.NewVariable(identifier) - catchNode := stmt.NewCatch([]node.Node{$3}, variable, $7) - $$ = append([]node.Node{catchNode}, $9...) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + catchNode := &ast.StmtCatch{ast.Node{}, []ast.Vertex{$3}, variable, $7} + $$ = append([]ast.Vertex{catchNode}, $9...) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - catchNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + catchNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Catch, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $4.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Var, $5.FreeFloating) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Cond, $6.FreeFloating) - yylex.(*Parser).setFreeFloating(catchNode, freefloating.Stmts, $8.FreeFloating) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1450,21 +1442,21 @@ catch_statement: finally_statement: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINALLY '{' inner_statement_list '}' { - $$ = stmt.NewFinally($3) + $$ = &ast.StmtFinally{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Finally, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1473,13 +1465,13 @@ finally_statement: additional_catches: non_empty_additional_catches { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1488,13 +1480,13 @@ additional_catches: non_empty_additional_catches: additional_catch { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_additional_catches additional_catch { - $$ = append($1, $2) + $$ = append($1, $2) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1503,23 +1495,22 @@ non_empty_additional_catches: additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { - identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = stmt.NewCatch([]node.Node{$3}, variable, $7) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.StmtCatch{ast.Node{}, []ast.Vertex{$3}, variable, $7} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Catch, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $4.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $8.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1528,7 +1519,7 @@ additional_catch: unset_variables: unset_variable { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1537,7 +1528,7 @@ unset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1546,7 +1537,7 @@ unset_variables: unset_variable: variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1555,7 +1546,7 @@ unset_variable: function_declaration_statement: unticked_function_declaration_statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1564,7 +1555,7 @@ function_declaration_statement: class_declaration_statement: unticked_class_declaration_statement { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1595,25 +1586,25 @@ is_variadic: unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { - name := node.NewIdentifier($3.Value) - $$ = stmt.NewFunction(name, $2 != nil, $5, nil, $8, "") + name := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $5, nil, $8} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $2 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) } else { - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ParamList, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Params, $7.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $9.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Params, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1622,15 +1613,15 @@ unticked_function_declaration_statement: unticked_class_declaration_statement: class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}' { - name := node.NewIdentifier($2.Value) + name := &ast.Identifier{ast.Node{}, $2.Value} switch n := $1.(type) { - case *stmt.Class : + case *ast.StmtClass : n.ClassName = name n.Stmts = $6 n.Extends = $3 n.Implements = $4 - case *stmt.Trait : + case *ast.StmtTrait : // TODO: is it possible that trait extend or implement n.TraitName = name n.Stmts = $6 @@ -1638,30 +1629,30 @@ unticked_class_declaration_statement: $$ = $1 // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $7)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $7.FreeFloating) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { - name := node.NewIdentifier($2.Value) - $$ = stmt.NewInterface(name, $3, $5, "") + name := &ast.Identifier{ast.Node{}, $2.Value} + $$ = &ast.StmtInterface{ast.Node{}, name, $3, $5} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $6.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1671,55 +1662,55 @@ unticked_class_declaration_statement: class_entry_type: T_CLASS { - $$ = stmt.NewClass(nil, nil, nil, nil, nil, nil, "") + $$ = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ABSTRACT T_CLASS { - classModifier := node.NewIdentifier($1.Value) - $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") + classModifier := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ModifierList, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRAIT { - $$ = stmt.NewTrait(nil, nil, "") + $$ = &ast.StmtTrait{ast.Node{}, nil, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINAL T_CLASS { - classModifier := node.NewIdentifier($1.Value) - $$ = stmt.NewClass(nil, []node.Node{classModifier}, nil, nil, nil, nil, "") + classModifier := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ModifierList, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1728,19 +1719,19 @@ class_entry_type: extends_from: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXTENDS fully_qualified_class_name { - $$ = stmt.NewClassExtends($2); + $$ = &ast.StmtClassExtends{ast.Node{}, $2}; // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1756,19 +1747,19 @@ interface_entry: interface_extends_list: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXTENDS interface_list { - $$ = stmt.NewInterfaceExtends($2); + $$ = &ast.StmtInterfaceExtends{ast.Node{}, $2}; // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1777,19 +1768,19 @@ interface_extends_list: implements_list: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IMPLEMENTS interface_list { - $$ = stmt.NewClassImplements($2); + $$ = &ast.StmtClassImplements{ast.Node{}, $2}; // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1798,7 +1789,7 @@ implements_list: interface_list: fully_qualified_class_name { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1807,7 +1798,7 @@ interface_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1816,7 +1807,7 @@ interface_list: foreach_optional_arg: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1825,7 +1816,7 @@ foreach_optional_arg: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Key, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Key, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1834,33 +1825,33 @@ foreach_optional_arg: foreach_variable: variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' variable { - $$ = expr.NewReference($2) + $$ = &ast.ExprReference{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' assignment_list ')' { - $$ = expr.NewList($3) + $$ = &ast.ExprList{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.List, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1869,27 +1860,27 @@ foreach_variable: for_statement: statement { - $$ = stmt.NewFor(nil, nil, nil, $1) + $$ = &ast.StmtFor{ast.Node{}, nil, nil, nil, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOR ';' { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewAltFor(nil, nil, nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1898,27 +1889,27 @@ for_statement: foreach_statement: statement { - $$ = stmt.NewForeach(nil, nil, nil, $1) + $$ = &ast.StmtForeach{ast.Node{}, nil, nil, nil, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOREACH ';' { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewAltForeach(nil, nil, nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1928,27 +1919,27 @@ foreach_statement: declare_statement: statement { - $$ = stmt.NewDeclare(nil, $1, false) + $$ = &ast.StmtDeclare{ast.Node{}, false, nil, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDDECLARE ';' { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewDeclare(nil, stmtList, true) + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1958,34 +1949,34 @@ declare_statement: declare_list: T_STRING '=' static_scalar { - name := node.NewIdentifier($1.Value) - constant := stmt.NewConstant(name, $3, "") - $$ = []node.Node{constant} + name := &ast.Identifier{ast.Node{}, $1.Value} + constant := &ast.StmtConstant{ast.Node{}, name, $3} + $$ = []ast.Vertex{constant} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(constant, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | declare_list ',' T_STRING '=' static_scalar { - name := node.NewIdentifier($3.Value) - constant := stmt.NewConstant(name, $5, "") + name := &ast.Identifier{ast.Node{}, $3.Value} + constant := &ast.StmtConstant{ast.Node{}, name, $5} $$ = append($1, constant) // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1995,68 +1986,68 @@ declare_list: switch_case_list: '{' case_list '}' { - caseList := stmt.NewCaseList($2) - $$ = stmt.NewSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, $2} + $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' ';' case_list '}' { - caseList := stmt.NewCaseList($3) - $$ = stmt.NewSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, $3} + $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(caseList, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' case_list T_ENDSWITCH ';' { - caseList := stmt.NewCaseList($2) - $$ = stmt.NewAltSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, $2} + $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' ';' case_list T_ENDSWITCH ';' { - caseList := stmt.NewCaseList($3) - $$ = stmt.NewAltSwitch(nil, caseList) + caseList := &ast.StmtCaseList{ast.Node{}, $3} + $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5)) + caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListStart, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, freefloating.CaseListEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2066,37 +2057,37 @@ switch_case_list: case_list: /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | case_list T_CASE expr case_separator inner_statement_list { - _case := stmt.NewCase($3, $5) + _case := &ast.StmtCase{ast.Node{}, $3, $5} $$ = append($1, _case) // save position - _case.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) + _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_case, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(_case, freefloating.Expr, $4.FreeFloating) - yylex.(*Parser).setFreeFloating(_case, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | case_list T_DEFAULT case_separator inner_statement_list { - _default := stmt.NewDefault($4) + _default := &ast.StmtDefault{ast.Node{}, $4} $$ = append($1, _default) // save position - _default.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4)) + _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_default, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.Default, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(_default, freefloating.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2118,27 +2109,27 @@ case_separator: while_statement: statement { - $$ = stmt.NewWhile(nil, $1) + $$ = &ast.StmtWhile{ast.Node{}, nil, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDWHILE ';' { - stmtList := stmt.NewStmtList($2) - $$ = stmt.NewAltWhile(nil, stmtList) + stmtList := &ast.StmtStmtList{ast.Node{}, $2} + $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AltEnd, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2149,25 +2140,25 @@ while_statement: elseif_list: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | elseif_list T_ELSEIF parenthesis_expr statement { - _elseIf := stmt.NewElseIf($3, $4) + _elseIf := &ast.StmtElseIf{ast.Node{}, $3, $4} $$ = append($1, _elseIf) // save position - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, $2.FreeFloating) - if len((*$3.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, (*$3.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*$3.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]); delete((*$3.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*$3.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, (*$3.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*$3.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]); delete((*$3.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2178,29 +2169,29 @@ elseif_list: new_elseif_list: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { - stmts := stmt.NewStmtList($5) - _elseIf := stmt.NewAltElseIf($3, stmts) + stmts := &ast.StmtStmtList{ast.Node{}, $5} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, $3, stmts} $$ = append($1, _elseIf) // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($5)) - _elseIf.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5)) + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($5) + _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Start, $2.FreeFloating) - if len((*$3.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.ElseIf, (*$3.GetFreeFloating())[freefloating.OpenParenthesisToken][:len((*$3.GetFreeFloating())[freefloating.OpenParenthesisToken])-1]); delete((*$3.GetFreeFloating()), freefloating.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } - if len((*$3.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Expr, (*$3.GetFreeFloating())[freefloating.CloseParenthesisToken][:len((*$3.GetFreeFloating())[freefloating.CloseParenthesisToken])-1]); delete((*$3.GetFreeFloating()), freefloating.CloseParenthesisToken) + if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, freefloating.Cond, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2210,19 +2201,19 @@ new_elseif_list: else_single: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELSE statement { - $$ = stmt.NewElse($2) + $$ = &ast.StmtElse{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2232,22 +2223,22 @@ else_single: new_else_single: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELSE ':' inner_statement_list { - stmts := stmt.NewStmtList($3) - $$ = stmt.NewAltElse(stmts) + stmts := &ast.StmtStmtList{ast.Node{}, $3} + $$ = &ast.StmtAltElse{ast.Node{}, stmts} // save position - stmts.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - + stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Else, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Else, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2257,13 +2248,13 @@ new_else_single: parameter_list: non_empty_parameter_list { - $$ = $1; + $$ = $1; yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2272,7 +2263,7 @@ parameter_list: non_empty_parameter_list: parameter { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2281,7 +2272,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2290,21 +2281,21 @@ non_empty_parameter_list: parameter: optional_class_type is_reference is_variadic T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = node.NewParameter($1, variable, nil, $2 != nil, $3 != nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, nil} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) if $1 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) } else if $2 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4) } else if $3 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4) } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) } // save comments @@ -2312,44 +2303,43 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, freefloating.Variadic, $4.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) // normalize if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, (*$$.GetFreeFloating())[freefloating.Variadic]); delete((*$$.GetFreeFloating()), freefloating.Variadic) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) } if $2 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, (*$$.GetFreeFloating())[freefloating.Ampersand]); delete((*$$.GetFreeFloating()), freefloating.Ampersand) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) } if $1 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Start, (*$$.GetFreeFloating())[freefloating.OptionalType]); delete((*$$.GetFreeFloating()), freefloating.OptionalType) + yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar { - identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = node.NewParameter($1, variable, $6, $2 != nil, $3 != nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, $6} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) if $1 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6) } else if $2 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6) } else if $3 != nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6) } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6) } // save comments @@ -2357,24 +2347,23 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, freefloating.Variadic, $4.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $5.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) // normalize if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, (*$$.GetFreeFloating())[freefloating.Variadic]); delete((*$$.GetFreeFloating()), freefloating.Variadic) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) } if $2 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.OptionalType, (*$$.GetFreeFloating())[freefloating.Ampersand]); delete((*$$.GetFreeFloating()), freefloating.Ampersand) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) } if $1 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Start, (*$$.GetFreeFloating())[freefloating.OptionalType]); delete((*$$.GetFreeFloating()), freefloating.OptionalType) + yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2385,37 +2374,37 @@ parameter: optional_class_type: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ARRAY { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CALLABLE { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | fully_qualified_class_name { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2425,42 +2414,42 @@ optional_class_type: function_call_parameter_list: '(' ')' { - $$ = node.NewArgumentList(nil) + $$ = &ast.ArgumentList{ast.Node{}, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArgumentList, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' non_empty_function_call_parameter_list ')' { - $$ = node.NewArgumentList($2) + $$ = &ast.ArgumentList{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArgumentList, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' yield_expr ')' { - arg := node.NewArgument($2, false, false) - $$ = node.NewArgumentList([]node.Node{arg}) + arg := &ast.Argument{ast.Node{}, false, false, $2} + $$ = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} // save position - arg.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + arg.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArgumentList, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2470,7 +2459,7 @@ function_call_parameter_list: non_empty_function_call_parameter_list: function_call_parameter { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2479,7 +2468,7 @@ non_empty_function_call_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2488,10 +2477,10 @@ non_empty_function_call_parameter_list: function_call_parameter: expr_without_variable { - $$ = node.NewArgument($1, false, false) + $$ = &ast.Argument{ast.Node{}, false, false, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2500,10 +2489,10 @@ function_call_parameter: } | variable { - $$ = node.NewArgument($1, false, false) + $$ = &ast.Argument{ast.Node{}, false, false, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2512,25 +2501,25 @@ function_call_parameter: } | '&' w_variable { - $$ = node.NewArgument($2, false, true) + $$ = &ast.Argument{ast.Node{}, false, true, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELLIPSIS expr { - $$ = node.NewArgument($2, true, false) + $$ = &ast.Argument{ast.Node{}, true, false, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2542,13 +2531,13 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | global_var { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2558,44 +2547,43 @@ global_var_list: global_var: T_VARIABLE { - name := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' r_variable { - $$ = expr.NewVariable($2) + $$ = &ast.ExprVariable{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' '{' expr '}' { - $$ = expr.NewVariable($3) + $$ = &ast.ExprVariable{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($3, freefloating.Start, append($2.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($2), (*$3.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, freefloating.End, append((*$3.GetFreeFloating())[freefloating.End], append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2605,77 +2593,73 @@ global_var: static_var_list: static_var_list ',' T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($3.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, nil) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} $$ = append($1, staticVar) - + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_var_list ',' T_VARIABLE '=' static_scalar { - identifier := node.NewIdentifier(strings.TrimLeftFunc($3.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, $5) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $5} $$ = append($1, staticVar) - + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Var, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, nil) - $$ = []node.Node{staticVar} - + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} + $$ = []ast.Vertex{staticVar} + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' static_scalar { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - staticVar := stmt.NewStaticVar(variable, $3) - $$ = []node.Node{staticVar} - + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $3} + $$ = []ast.Vertex{staticVar} + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - staticVar.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2685,13 +2669,13 @@ static_var_list: class_statement_list: class_statement_list class_statement { - $$ = append($1, $2) + $$ = append($1, $2) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2701,15 +2685,15 @@ class_statement_list: class_statement: variable_modifiers class_variable_declaration ';' { - $$ = stmt.NewPropertyList($1, nil, $2) + $$ = &ast.StmtPropertyList{ast.Node{}, $1, nil, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) // 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($$, token.PropertyList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2718,11 +2702,11 @@ class_statement: $$ = $1 // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.ConstList, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2734,32 +2718,32 @@ class_statement: } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { - name := node.NewIdentifier($4.Value) - $$ = stmt.NewClassMethod(name, $1, $3 != nil, $6, nil, $8, "") + name := &ast.Identifier{ast.Node{}, $4.Value} + $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $6, nil, $8} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) if $1 == nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $8)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $8) } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $8)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $8) } // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, freefloating.ModifierList, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) } if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) } - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ParameterList, $7.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2768,13 +2752,13 @@ class_statement: trait_use_statement: T_USE trait_list trait_adaptations { - $$ = stmt.NewTraitUse($2, $3) + $$ = &ast.StmtTraitUse{ast.Node{}, $2, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2783,7 +2767,7 @@ trait_use_statement: trait_list: fully_qualified_class_name { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2792,7 +2776,7 @@ trait_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2801,25 +2785,25 @@ trait_list: trait_adaptations: ';' { - $$ = stmt.NewNop() + $$ = &ast.StmtNop{ast.Node{}, } - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' trait_adaptation_list '}' { - $$ = stmt.NewTraitAdaptationList($2) + $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.AdaptationList, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2828,13 +2812,13 @@ trait_adaptations: trait_adaptation_list: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_trait_adaptation_list { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2843,13 +2827,13 @@ trait_adaptation_list: non_empty_trait_adaptation_list: trait_adaptation_statement { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_trait_adaptation_list trait_adaptation_statement { - $$ = append($1, $2) + $$ = append($1, $2) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2861,8 +2845,8 @@ trait_adaptation_statement: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.NameList, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2871,8 +2855,8 @@ trait_adaptation_statement: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Alias, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2881,14 +2865,14 @@ trait_adaptation_statement: trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { - $$ = stmt.NewTraitUsePrecedence($1, $3) + $$ = &ast.StmtTraitUsePrecedence{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2897,7 +2881,7 @@ trait_precedence: trait_reference_list: fully_qualified_class_name { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2906,7 +2890,7 @@ trait_reference_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2915,21 +2899,21 @@ trait_reference_list: trait_method_reference: T_STRING { - name := node.NewIdentifier($1.Value) - $$ = stmt.NewTraitMethodRef(nil, name) + name := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference_fully_qualified { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2938,17 +2922,17 @@ trait_method_reference: trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := node.NewIdentifier($3.Value) - $$ = stmt.NewTraitMethodRef($1, target) + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2957,30 +2941,30 @@ trait_method_reference_fully_qualified: trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { - alias := node.NewIdentifier($4.Value) - $$ = stmt.NewTraitUseAlias($1, $3, alias) + alias := &ast.Identifier{ast.Node{}, $4.Value} + $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} // save position - alias.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) + alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(alias, freefloating.Start, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_method_reference T_AS member_modifier { - $$ = stmt.NewTraitUseAlias($1, $3, nil) + $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Ref, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2989,42 +2973,42 @@ trait_alias: trait_modifiers: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | member_modifier { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; method_body: - ';' /* abstract method */ + ';' /* abstract method */ { - $$ = stmt.NewNop() + $$ = &ast.StmtNop{ast.Node{}, } // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' inner_statement_list '}' { - $$ = stmt.NewStmtList($2) + $$ = &ast.StmtStmtList{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3033,20 +3017,20 @@ method_body: variable_modifiers: non_empty_member_modifiers { - $$ = $1; + $$ = $1; yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VAR { - modifier := node.NewIdentifier($1.Value) - $$ = []node.Node{modifier} + modifier := &ast.Identifier{ast.Node{}, $1.Value} + $$ = []ast.Vertex{modifier} // save position - modifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(modifier, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3055,13 +3039,13 @@ variable_modifiers: method_modifiers: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_member_modifiers { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3070,13 +3054,13 @@ method_modifiers: non_empty_member_modifiers: member_modifier { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_member_modifiers member_modifier { - $$ = append($1, $2) + $$ = append($1, $2) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3085,73 +3069,73 @@ non_empty_member_modifiers: member_modifier: T_PUBLIC { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PROTECTED { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PRIVATE { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ABSTRACT { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINAL { - $$ = node.NewIdentifier($1.Value) + $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3160,77 +3144,73 @@ member_modifier: class_variable_declaration: class_variable_declaration ',' T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($3.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, nil, "") + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, nil} $$ = append($1, property) - + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(property, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { - identifier := node.NewIdentifier(strings.TrimLeftFunc($3.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, $5, "") + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, $5} $$ = append($1, property) - + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) - + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) + // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(property, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, freefloating.Var, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, nil, "") - $$ = []node.Node{property} - + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, nil} + $$ = []ast.Vertex{property} + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + // save comments - yylex.(*Parser).setFreeFloating(property, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(property, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' static_scalar { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - property := stmt.NewProperty(variable, $3, "") - $$ = []node.Node{property} - + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + property := &ast.StmtProperty{ast.Node{}, variable, $3} + $$ = []ast.Vertex{property} + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - property.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) - + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating(property, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(property, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3239,40 +3219,40 @@ class_variable_declaration: class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar { - name := node.NewIdentifier($3.Value) - constant := stmt.NewConstant(name, $5, "") - constList := $1.(*stmt.ClassConstList) + name := &ast.Identifier{ast.Node{}, $3.Value} + constant := &ast.StmtConstant{ast.Node{}, name, $5} + constList := $1.(*ast.StmtClassConstList) lastConst := lastNode(constList.Consts) constList.Consts = append(constList.Consts, constant) $$ = $1 // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5)) - $1.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) + $1.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating(lastConst, freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONST T_STRING '=' static_scalar { - name := node.NewIdentifier($2.Value) - constant := stmt.NewConstant(name, $4, "") - $$ = stmt.NewClassConstList(nil, []node.Node{constant}) + name := &ast.Identifier{ast.Node{}, $2.Value} + constant := &ast.StmtConstant{ast.Node{}, name, $4} + $$ = &ast.StmtClassConstList{ast.Node{}, nil, []ast.Vertex{constant}} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - constant.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(constant, freefloating.Name, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3284,13 +3264,13 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3300,13 +3280,13 @@ echo_expr_list: for_expr: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_for_expr { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3318,13 +3298,13 @@ non_empty_for_expr: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3333,13 +3313,13 @@ non_empty_for_expr: chaining_method_or_property: chaining_method_or_property variable_property { - $$ = append($1, $2...) + $$ = append($1, $2...) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_property { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3348,29 +3328,29 @@ chaining_method_or_property: chaining_dereference: chaining_dereference '[' dim_offset ']' { - fetch := expr.NewArrayDimFetch(nil, $3) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} $$ = append($1, fetch) - + // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' dim_offset ']' { - fetch := expr.NewArrayDimFetch(nil, $2) - $$ = []node.Node{fetch} - + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $2} + $$ = []ast.Vertex{fetch} + // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($2)) - + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) + // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append($1.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3379,19 +3359,19 @@ chaining_dereference: chaining_instance_call: chaining_dereference chaining_method_or_property { - $$ = append($1, $2...) + $$ = append($1, $2...) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | chaining_dereference { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | chaining_method_or_property { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3400,13 +3380,13 @@ chaining_instance_call: instance_call: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | chaining_instance_call { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3417,15 +3397,15 @@ new_expr: { if $3 != nil { - $$ = expr.NewNew($2, $3.(*node.ArgumentList)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3)) + $$ = &ast.ExprNew{ast.Node{}, $2, $3.(*ast.ArgumentList)} + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) } else { - $$ = expr.NewNew($2, nil) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$ = &ast.ExprNew{ast.Node{}, $2, nil} + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) } // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3434,691 +3414,691 @@ new_expr: expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { - listNode := expr.NewList($3) - $$ = assign.NewAssign(listNode, $6) + listNode := &ast.ExprList{ast.Node{}, $3} + $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6)) + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, $4.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $5.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' expr { - $$ = assign.NewAssign($1, $3) + $$ = &ast.ExprAssign{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' '&' variable { - $$ = assign.NewReference($1, $4) + $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Equal, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable '=' '&' T_NEW class_name_reference ctor_arguments { - var _new *expr.New + var _new *ast.ExprNew if $6 != nil { - _new = expr.NewNew($5, $6.(*node.ArgumentList)) + _new = &ast.ExprNew{ast.Node{}, $5, $6.(*ast.ArgumentList)} } else { - _new = expr.NewNew($5, nil) + _new = &ast.ExprNew{ast.Node{}, $5, nil} } - $$ = assign.NewReference($1, _new) + $$ = &ast.ExprAssignReference{ast.Node{}, $1, _new} // save position if $6 != nil { - _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6)) + _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6) } else { - _new.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $5)) + _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $5) } - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, _new)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, _new) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Equal, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(_new, freefloating.Start, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) + yylex.(*Parser).setFreeFloating(_new, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLONE expr { - $$ = expr.NewClone($2) + $$ = &ast.ExprClone{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_PLUS_EQUAL expr { - $$ = assign.NewPlus($1, $3) + $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MINUS_EQUAL expr { - $$ = assign.NewMinus($1, $3) + $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MUL_EQUAL expr { - $$ = assign.NewMul($1, $3) + $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_POW_EQUAL expr { - $$ = assign.NewPow($1, $3) + $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_DIV_EQUAL expr { - $$ = assign.NewDiv($1, $3) + $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_CONCAT_EQUAL expr { - $$ = assign.NewConcat($1, $3) + $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_MOD_EQUAL expr { - $$ = assign.NewMod($1, $3) + $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_AND_EQUAL expr { - $$ = assign.NewBitwiseAnd($1, $3) + $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_OR_EQUAL expr { - $$ = assign.NewBitwiseOr($1, $3) + $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_XOR_EQUAL expr { - $$ = assign.NewBitwiseXor($1, $3) + $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SL_EQUAL expr { - $$ = assign.NewShiftLeft($1, $3) + $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable T_SR_EQUAL expr { - $$ = assign.NewShiftRight($1, $3) + $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | rw_variable T_INC { - $$ = expr.NewPostInc($1) + $$ = &ast.ExprPostInc{ast.Node{}, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INC rw_variable { - $$ = expr.NewPreInc($2) + $$ = &ast.ExprPreInc{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | rw_variable T_DEC { - $$ = expr.NewPostDec($1) + $$ = &ast.ExprPostDec{ast.Node{}, $1} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DEC rw_variable { - $$ = expr.NewPreDec($2) + $$ = &ast.ExprPreDec{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_BOOLEAN_OR expr { - $$ = binary.NewBooleanOr($1, $3) + $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_BOOLEAN_AND expr { - $$ = binary.NewBooleanAnd($1, $3) + $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_OR expr { - $$ = binary.NewLogicalOr($1, $3) + $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_AND expr { - $$ = binary.NewLogicalAnd($1, $3) + $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_LOGICAL_XOR expr { - $$ = binary.NewLogicalXor($1, $3) + $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '|' expr { - $$ = binary.NewBitwiseOr($1, $3) + $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '&' expr { - $$ = binary.NewBitwiseAnd($1, $3) + $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '^' expr { - $$ = binary.NewBitwiseXor($1, $3) + $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '.' expr { - $$ = binary.NewConcat($1, $3) + $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '+' expr { - $$ = binary.NewPlus($1, $3) + $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '-' expr { - $$ = binary.NewMinus($1, $3) + $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '*' expr { - $$ = binary.NewMul($1, $3) + $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_POW expr { - $$ = binary.NewPow($1, $3) + $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '/' expr { - $$ = binary.NewDiv($1, $3) + $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '%' expr { - $$ = binary.NewMod($1, $3) + $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SL expr { - $$ = binary.NewShiftLeft($1, $3) + $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_SR expr { - $$ = binary.NewShiftRight($1, $3) + $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '+' expr %prec T_INC { - $$ = expr.NewUnaryPlus($2) + $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '-' expr %prec T_INC { - $$ = expr.NewUnaryMinus($2) + $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '!' expr { - $$ = expr.NewBooleanNot($2) + $$ = &ast.ExprBooleanNot{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '~' expr { - $$ = expr.NewBitwiseNot($2) + $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_IDENTICAL expr { - $$ = binary.NewIdentical($1, $3) + $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_IDENTICAL expr { - $$ = binary.NewNotIdentical($1, $3) + $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_EQUAL expr { - $$ = binary.NewEqual($1, $3) + $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_NOT_EQUAL expr { - $$ = binary.NewNotEqual($1, $3) + $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '<' expr { - $$ = binary.NewSmaller($1, $3) + $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_SMALLER_OR_EQUAL expr { - $$ = binary.NewSmallerOrEqual($1, $3) + $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '>' expr { - $$ = binary.NewGreater($1, $3) + $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_IS_GREATER_OR_EQUAL expr { - $$ = binary.NewGreaterOrEqual($1, $3) + $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_INSTANCEOF class_name_reference { - $$ = expr.NewInstanceOf($1, $3) + $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | parenthesis_expr { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - yylex.(*Parser).setFreeFloating($1, freefloating.Start, append((*$1.GetFreeFloating())[freefloating.OpenParenthesisToken], (*$1.GetFreeFloating())[freefloating.Start]...)); delete((*$1.GetFreeFloating()), freefloating.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating($1, freefloating.End, append((*$1.GetFreeFloating())[freefloating.End], (*$1.GetFreeFloating())[freefloating.CloseParenthesisToken]...)); delete((*$1.GetFreeFloating()), freefloating.CloseParenthesisToken) + yylex.(*Parser).setFreeFloating($1, token.Start, append($1.GetNode().Tokens[token.OpenParenthesisToken], $1.GetNode().Tokens[token.Start]...)); delete($1.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating($1, token.End, append($1.GetNode().Tokens[token.End], $1.GetNode().Tokens[token.CloseParenthesisToken]...)); delete($1.GetNode().Tokens, token.CloseParenthesisToken) } | new_expr { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4127,294 +4107,294 @@ expr_without_variable: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) for _, n := range($4) { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = $$ + case *ast.ExprArrayDimFetch: + nn.Var = $$ $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.PropertyFetch: - nn.Variable = $$ + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprPropertyFetch: + nn.Var = $$ $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.MethodCall: - nn.Variable = $$ + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprMethodCall: + nn.Var = $$ $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, n)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, n) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' expr ':' expr { - $$ = expr.NewTernary($1, $3, $5) + $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.True, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' ':' expr { - $$ = expr.NewTernary($1, nil, $4) + $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.True, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | internal_functions_in_yacc { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INT_CAST expr { - $$ = cast.NewInt($2) + $$ = &ast.ExprCastInt{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOUBLE_CAST expr { - $$ = cast.NewDouble($2) + $$ = &ast.ExprCastDouble{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STRING_CAST expr { - $$ = cast.NewString($2) + $$ = &ast.ExprCastString{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ARRAY_CAST expr { - $$ = cast.NewArray($2) + $$ = &ast.ExprCastArray{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_OBJECT_CAST expr { - $$ = cast.NewObject($2) + $$ = &ast.ExprCastObject{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_BOOL_CAST expr { - $$ = cast.NewBool($2) + $$ = &ast.ExprCastBool{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_UNSET_CAST expr { - $$ = cast.NewUnset($2) + $$ = &ast.ExprCastUnset{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXIT exit_expr { - e := $2.(*expr.Exit) + e := $2.(*ast.ExprExit) $$ = $2 - if (strings.EqualFold($1.Value, "die")) { + if (bytes.EqualFold($1.Value, []byte("die"))) { e.Die = true } // save position - if $2.GetPosition() == nil { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + if $2.GetNode().Position == nil { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) } // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '@' expr { - $$ = expr.NewErrorSuppress($2) + $$ = &ast.ExprErrorSuppress{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | scalar { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | combined_scalar_offset { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | combined_scalar { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '`' backticks_expr '`' { - $$ = expr.NewShellExec($2) + $$ = &ast.ExprShellExec{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_PRINT expr { - $$ = expr.NewPrint($2) + $$ = &ast.ExprPrint{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD { - $$ = expr.NewYield(nil, nil) + $$ = &ast.ExprYield{ast.Node{}, nil, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = expr.NewClosure($4, $6, nil, $8, false, $2 != nil, "") + $$ = &ast.ExprClosure{ast.Node{}, $2 != nil, false, $4, $6, nil, $8} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, freefloating.ParameterList, $5.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVars, $7.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $9.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) // normalize if $6 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$$.GetFreeFloating())[freefloating.LexicalVars]); delete((*$$.GetFreeFloating()), freefloating.LexicalVars) + yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = expr.NewClosure($5, $7, nil, $9, true, $3 != nil, "") + $$ = &ast.ExprClosure{ast.Node{}, $3 != nil, true, $5, $7, nil, $9} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Static, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Static, $2.Tokens) if $3 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, freefloating.Function, $3.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Ampersand, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) } - yylex.(*Parser).setFreeFloating($$, freefloating.ParameterList, $6.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVars, $8.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Stmts, $10.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.Tokens) // normalize if $7 == nil { - yylex.(*Parser).setFreeFloating($$, freefloating.Params, (*$$.GetFreeFloating())[freefloating.LexicalVars]); delete((*$$.GetFreeFloating()), freefloating.LexicalVars) + yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4424,51 +4404,51 @@ expr_without_variable: yield_expr: T_YIELD expr_without_variable { - $$ = expr.NewYield(nil, $2) + $$ = &ast.ExprYield{ast.Node{}, nil, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD variable { - $$ = expr.NewYield(nil, $2) + $$ = &ast.ExprYield{ast.Node{}, nil, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { - $$ = expr.NewYield($2, $4) + $$ = &ast.ExprYield{ast.Node{}, $2, $4} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_YIELD expr T_DOUBLE_ARROW variable { - $$ = expr.NewYield($2, $4) + $$ = &ast.ExprYield{ast.Node{}, $2, $4} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4477,59 +4457,59 @@ yield_expr: combined_scalar_offset: combined_scalar '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | combined_scalar_offset '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { - str := scalar.NewString($1.Value) - $$ = expr.NewArrayDimFetch(str, $3) + str := &ast.ScalarString{ast.Node{}, $1.Value} + $$ = &ast.ExprArrayDimFetch{ast.Node{}, str, $3} // save position - str.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4)) + str.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | general_constant '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4538,28 +4518,28 @@ combined_scalar_offset: combined_scalar: T_ARRAY '(' array_pair_list ')' { - $$ = expr.NewArray($3) + $$ = &ast.ExprArray{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Array, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' array_pair_list ']' { - $$ = expr.NewShortArray($2) + $$ = &ast.ExprShortArray{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4575,21 +4555,21 @@ function: lexical_vars: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE '(' lexical_var_list ')' { - $$ = expr.NewClosureUse($3) + $$ = &ast.ExprClosureUse{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Use, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.LexicalVarList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4598,73 +4578,69 @@ lexical_vars: lexical_var_list: lexical_var_list ',' T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($3.Value, isDollar)) - variable := expr.NewVariable(identifier) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = append($1, variable) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | lexical_var_list ',' '&' T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($4.Value, isDollar)) - variable := expr.NewVariable(identifier) - reference := expr.NewReference(variable) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + reference := &ast.ExprReference{ast.Node{}, variable} $$ = append($1, reference) // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($4)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, $3.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $4.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = []node.Node{variable} + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = []ast.Vertex{variable} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($2.Value, isDollar)) - variable := expr.NewVariable(identifier) - reference := expr.NewReference(variable) - $$ = []node.Node{reference} - + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($2.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + reference := &ast.ExprReference{ast.Node{}, variable} + $$ = []ast.Vertex{reference} + // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) - + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(variable, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).addDollarToken(variable) + yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4673,12 +4649,12 @@ lexical_var_list: function_call: namespace_name function_call_parameter_list { - name := name.NewName($1) - $$ = expr.NewFunctionCall(name, $2.(*node.ArgumentList)) - + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.ExprFunctionCall{ast.Node{}, name, $2.(*ast.ArgumentList)} + // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(name, $2)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(name, $2) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -4687,91 +4663,91 @@ function_call: } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { - funcName := name.NewRelative($3) - $$ = expr.NewFunctionCall(funcName, $4.(*node.ArgumentList)) - + funcName := &ast.NameRelative{ast.Node{}, $3} + $$ = &ast.ExprFunctionCall{ast.Node{}, funcName, $4.(*ast.ArgumentList)} + // save position - funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4)) + funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(funcName, freefloating.Namespace, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name function_call_parameter_list { - funcName := name.NewFullyQualified($2) - $$ = expr.NewFunctionCall(funcName, $3.(*node.ArgumentList)) - + funcName := &ast.NameFullyQualified{ast.Node{}, $2} + $$ = &ast.ExprFunctionCall{ast.Node{}, funcName, $3.(*ast.ArgumentList)} + // save position - funcName.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3)) + funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) - + $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) - + $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) - + $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { - $$ = expr.NewStaticCall($1, $3, $4.(*node.ArgumentList)) - + $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_without_objects function_call_parameter_list { - $$ = expr.NewFunctionCall($1, $2.(*node.ArgumentList)) - + $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4783,23 +4759,23 @@ function_call: class_name: T_STATIC { - $$ = node.NewIdentifier($1.Value) - + $$ = &ast.Identifier{ast.Node{}, $1.Value} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - | namespace_name + | namespace_name { - $$ = name.NewName($1) - + $$ = &ast.NameName{ast.Node{}, $1} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -4807,26 +4783,26 @@ class_name: } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - $$ = name.NewRelative($3) - + $$ = &ast.NameRelative{ast.Node{}, $3} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Namespace, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { - $$ = name.NewFullyQualified($2) - + $$ = &ast.NameFullyQualified{ast.Node{}, $2} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4835,11 +4811,11 @@ class_name: fully_qualified_class_name: namespace_name { - $$ = name.NewName($1) - + $$ = &ast.NameName{ast.Node{}, $1} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -4847,26 +4823,26 @@ fully_qualified_class_name: } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - $$ = name.NewRelative($3) - + $$ = &ast.NameRelative{ast.Node{}, $3} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Namespace, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { - $$ = name.NewFullyQualified($2) - + $$ = &ast.NameFullyQualified{ast.Node{}, $2} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4875,13 +4851,13 @@ fully_qualified_class_name: class_name_reference: class_name { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dynamic_class_name_reference { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4893,45 +4869,45 @@ dynamic_class_name_reference: $$ = $1 // save comments - yylex.(*Parser).setFreeFloating($3[0], freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) for _, n := range($3) { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = $$ - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = $$ + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.PropertyFetch: - nn.Variable = $$ - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprPropertyFetch: + nn.Var = $$ + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } for _, n := range($4) { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = $$ - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = $$ + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.PropertyFetch: - nn.Variable = $$ - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprPropertyFetch: + nn.Var = $$ + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - | base_variable + | base_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4941,13 +4917,13 @@ dynamic_class_name_reference: dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property { - $$ = append($1, $2...) + $$ = append($1, $2...) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4958,9 +4934,9 @@ dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property { $$ = $2 - + // save comments - yylex.(*Parser).setFreeFloating($2[0], freefloating.Var, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4969,62 +4945,62 @@ dynamic_class_name_variable_property: exit_expr: /* empty */ { - $$ = expr.NewExit(nil); + $$ = &ast.ExprExit{ast.Node{}, false, nil}; yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' ')' { - $$ = expr.NewExit(nil); + $$ = &ast.ExprExit{ast.Node{}, false, nil}; // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Exit, append($1.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | parenthesis_expr { - $$ = expr.NewExit($1); + $$ = &ast.ExprExit{ast.Node{}, false, $1}; // save position - if yylex.(*Parser).currentToken.Value == ")" { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition(yylex.(*Parser).currentToken)) + if bytes.Compare(yylex.(*Parser).currentToken.Value, []byte(")")) == 0 { + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yylex.(*Parser).currentToken) } else { - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Exit, (*$1.GetFreeFloating())[freefloating.OpenParenthesisToken]); delete((*$1.GetFreeFloating()), freefloating.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, (*$1.GetFreeFloating())[freefloating.CloseParenthesisToken]); delete((*$1.GetFreeFloating()), freefloating.CloseParenthesisToken) + yylex.(*Parser).setFreeFloating($$, token.Exit, $1.GetNode().Tokens[token.OpenParenthesisToken]); delete($1.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloating($$, token.Expr, $1.GetNode().Tokens[token.CloseParenthesisToken]); delete($1.GetNode().Tokens, token.CloseParenthesisToken) } ; backticks_expr: /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ENCAPSED_AND_WHITESPACE { - part := scalar.NewEncapsedStringPart($1.Value) - $$ = []node.Node{part} + part := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} + $$ = []ast.Vertex{part} // save position - part.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_list { - $$ = $1; + $$ = $1; yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5033,13 +5009,13 @@ backticks_expr: ctor_arguments: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call_parameter_list { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5048,147 +5024,147 @@ ctor_arguments: common_scalar: T_LNUMBER { - $$ = scalar.NewLnumber($1.Value) + $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DNUMBER { - $$ = scalar.NewDnumber($1.Value) + $$ = &ast.ScalarDnumber{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CONSTANT_ENCAPSED_STRING { - $$ = scalar.NewString($1.Value) + $$ = &ast.ScalarString{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LINE { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FILE { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DIR { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_TRAIT_C { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_METHOD_C { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FUNC_C { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_C { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { - encapsed := scalar.NewEncapsedStringPart($2.Value) - $$ = scalar.NewHeredoc($1.Value, []node.Node{encapsed}) + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} + $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, []ast.Vertex{encapsed}} // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC T_END_HEREDOC { - $$ = scalar.NewHeredoc($1.Value, nil) + $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, nil} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5197,17 +5173,17 @@ common_scalar: static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := node.NewIdentifier($3.Value) - $$ = expr.NewClassConstFetch($1, target) - + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} + // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5216,7 +5192,7 @@ static_class_constant: static_scalar: static_scalar_value { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5225,24 +5201,24 @@ static_scalar: static_scalar_value: common_scalar { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_class_name_scalar { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name { - name := name.NewName($1) - $$ = expr.NewConstFetch(name) + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -5251,81 +5227,81 @@ static_scalar_value: } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - name := name.NewRelative($3) - $$ = expr.NewConstFetch(name) - + name := &ast.NameRelative{ast.Node{}, $3} + $$ = &ast.ExprConstFetch{ast.Node{}, name} + // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Namespace, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { - name := name.NewFullyQualified($2) - $$ = expr.NewConstFetch(name) + name := &ast.NameFullyQualified{ast.Node{}, $2} + $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ARRAY '(' static_array_pair_list ')' { - $$ = expr.NewArray($3) + $$ = &ast.ExprArray{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Array, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '[' static_array_pair_list ']' { - $$ = expr.NewShortArray($2) + $$ = &ast.ExprShortArray{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.ArrayPairList, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_class_constant { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS_C { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_operation { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5334,417 +5310,417 @@ static_scalar_value: static_operation: static_scalar_value '[' static_scalar_value ']' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '+' static_scalar_value { - $$ = binary.NewPlus($1, $3) + $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '-' static_scalar_value { - $$ = binary.NewMinus($1, $3) + $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '*' static_scalar_value { - $$ = binary.NewMul($1, $3) + $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_POW static_scalar_value { - $$ = binary.NewPow($1, $3) + $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '/' static_scalar_value { - $$ = binary.NewDiv($1, $3) + $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '%' static_scalar_value { - $$ = binary.NewMod($1, $3) + $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '!' static_scalar_value { - $$ = expr.NewBooleanNot($2) + $$ = &ast.ExprBooleanNot{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '~' static_scalar_value { - $$ = expr.NewBitwiseNot($2) - + $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '|' static_scalar_value { - $$ = binary.NewBitwiseOr($1, $3) + $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '&' static_scalar_value { - $$ = binary.NewBitwiseAnd($1, $3) + $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '^' static_scalar_value { - $$ = binary.NewBitwiseXor($1, $3) + $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_SL static_scalar_value { - $$ = binary.NewShiftLeft($1, $3) + $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_SR static_scalar_value { - $$ = binary.NewShiftRight($1, $3) + $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '.' static_scalar_value { - $$ = binary.NewConcat($1, $3) + $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_LOGICAL_XOR static_scalar_value { - $$ = binary.NewLogicalXor($1, $3) + $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_LOGICAL_AND static_scalar_value { - $$ = binary.NewLogicalAnd($1, $3) + $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_LOGICAL_OR static_scalar_value { - $$ = binary.NewLogicalOr($1, $3) + $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_BOOLEAN_AND static_scalar_value { - $$ = binary.NewBooleanAnd($1, $3) + $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_BOOLEAN_OR static_scalar_value { - $$ = binary.NewBooleanOr($1, $3) + $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_IDENTICAL static_scalar_value { - $$ = binary.NewIdentical($1, $3) + $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { - $$ = binary.NewNotIdentical($1, $3) + $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_EQUAL static_scalar_value { - $$ = binary.NewEqual($1, $3) + $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { - $$ = binary.NewNotEqual($1, $3) + $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '<' static_scalar_value { - $$ = binary.NewSmaller($1, $3) + $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '>' static_scalar_value { - $$ = binary.NewGreater($1, $3) + $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { - $$ = binary.NewSmallerOrEqual($1, $3) + $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { - $$ = binary.NewGreaterOrEqual($1, $3) + $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '?' ':' static_scalar_value { - $$ = expr.NewTernary($1, nil, $4) + $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.True, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value '?' static_scalar_value ':' static_scalar_value { - $$ = expr.NewTernary($1, $3, $5) + $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Cond, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.True, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '+' static_scalar_value { - $$ = expr.NewUnaryPlus($2) - + $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '-' static_scalar_value { - $$ = expr.NewUnaryMinus($2) - + $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5753,8 +5729,8 @@ static_operation: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5763,18 +5739,18 @@ static_operation: general_constant: class_constant { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name { - name := name.NewName($1) - $$ = expr.NewConstFetch(name) + name := &ast.NameName{ast.Node{}, $1} + $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewNodeListPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -5783,30 +5759,30 @@ general_constant: } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - name := name.NewRelative($3) - $$ = expr.NewConstFetch(name) - + name := &ast.NameRelative{ast.Node{}, $3} + $$ = &ast.ExprConstFetch{ast.Node{}, name} + // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) - + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(name, freefloating.Namespace, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name { - name := name.NewFullyQualified($2) - $$ = expr.NewConstFetch(name) - + name := &ast.NameFullyQualified{ast.Node{}, $2} + $$ = &ast.ExprConstFetch{ast.Node{}, name} + // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(name)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5815,69 +5791,69 @@ general_constant: scalar: T_STRING_VARNAME { - name := node.NewIdentifier($1.Value) - $$ = expr.NewVariable(name) - + name := &ast.Identifier{ast.Node{}, $1.Value} + $$ = &ast.ExprVariable{ast.Node{}, name} + // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | general_constant { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name_scalar { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | common_scalar { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '"' encaps_list '"' { - $$ = scalar.NewEncapsed($2) + $$ = &ast.ScalarEncapsed{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_START_HEREDOC encaps_list T_END_HEREDOC { - $$ = scalar.NewHeredoc($1.Value, $2) + $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS_C { - $$ = scalar.NewMagicConstant($1.Value) + $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5886,7 +5862,7 @@ scalar: static_array_pair_list: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5896,7 +5872,7 @@ static_array_pair_list: // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5917,54 +5893,54 @@ 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, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, $5} $$ = append($1, arrayItem) - + // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) - + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5) + // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_static_array_pair_list ',' static_scalar_value { - arrayItem := expr.NewArrayItem(nil, $3, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $3} $$ = append($1, arrayItem) - + // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) - + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { - arrayItem := expr.NewArrayItem($1, $3, false) - $$ = []node.Node{arrayItem} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, $3} + $$ = []ast.Vertex{arrayItem} // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value { - arrayItem := expr.NewArrayItem(nil, $1, false) - $$ = []node.Node{arrayItem} - + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $1} + $$ = []ast.Vertex{arrayItem} + // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) @@ -5976,13 +5952,13 @@ non_empty_static_array_pair_list: expr: r_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr_without_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5994,14 +5970,14 @@ parenthesis_expr: $$ = $2 // save comments - if len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, freefloating.Start, append((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken], (*$2.GetFreeFloating())[freefloating.Start]...)) + if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($2, token.Start, append($2.GetNode().Tokens[token.OpenParenthesisToken], $2.GetNode().Tokens[token.Start]...)) } - if len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, freefloating.End, append((*$2.GetFreeFloating())[freefloating.End], (*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]...)) + if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating($2, freefloating.OpenParenthesisToken, append($1.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($2, freefloating.CloseParenthesisToken, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6010,14 +5986,14 @@ parenthesis_expr: $$ = $2 // save comments - if len((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, freefloating.Start, append((*$2.GetFreeFloating())[freefloating.OpenParenthesisToken], (*$2.GetFreeFloating())[freefloating.Start]...)) + if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($2, token.Start, append($2.GetNode().Tokens[token.OpenParenthesisToken], $2.GetNode().Tokens[token.Start]...)) } - if len((*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, freefloating.End, append((*$2.GetFreeFloating())[freefloating.End], (*$2.GetFreeFloating())[freefloating.CloseParenthesisToken]...)) + if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { + yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating($2, freefloating.OpenParenthesisToken, append($1.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($2, freefloating.CloseParenthesisToken, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6027,7 +6003,7 @@ parenthesis_expr: r_variable: variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6037,7 +6013,7 @@ r_variable: w_variable: variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6046,7 +6022,7 @@ w_variable: rw_variable: variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6058,54 +6034,54 @@ variable: $$ = $1 if $4 != nil { - $4[0].(*expr.MethodCall).Method = $3[len($3)-1].(*expr.PropertyFetch).Property + $4[0].(*ast.ExprMethodCall).Method = $3[len($3)-1].(*ast.ExprPropertyFetch).Property $3 = append($3[:len($3)-1], $4...) } // save comments - yylex.(*Parser).setFreeFloating($3[0], freefloating.Var, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) for _, n := range($3) { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = $$ - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = $$ + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.PropertyFetch: - nn.Variable = $$ - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprPropertyFetch: + nn.Var = $$ + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.MethodCall: - nn.Variable = $$ - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprMethodCall: + nn.Var = $$ + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } for _, n := range($5) { switch nn := n.(type) { - case *expr.ArrayDimFetch: - nn.Variable = $$ - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + case *ast.ExprArrayDimFetch: + nn.Var = $$ + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.PropertyFetch: - nn.Variable = $$ - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprPropertyFetch: + nn.Var = $$ + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) - - case *expr.MethodCall: - nn.Variable = $$ - nn.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn)) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) + + case *ast.ExprMethodCall: + nn.Var = $$ + nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Variable, $$) + yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } @@ -6113,7 +6089,7 @@ variable: } | base_variable_with_function_calls { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6122,13 +6098,13 @@ variable: variable_properties: variable_properties variable_property { - $$ = append($1, $2...) + $$ = append($1, $2...) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6139,14 +6115,14 @@ variable_property: T_OBJECT_OPERATOR object_property method_or_not { if $3 != nil { - $3[0].(*expr.MethodCall).Method = $2[len($2)-1].(*expr.PropertyFetch).Property + $3[0].(*ast.ExprMethodCall).Method = $2[len($2)-1].(*ast.ExprPropertyFetch).Property $2 = append($2[:len($2)-1], $3...) } $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($2[0], freefloating.Var, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6155,29 +6131,29 @@ variable_property: array_method_dereference: array_method_dereference '[' dim_offset ']' { - fetch := expr.NewArrayDimFetch(nil, $3) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} $$ = append($1, fetch) // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | method '[' dim_offset ']' { - fetch := expr.NewArrayDimFetch(nil, $3) - $$ = []node.Node{$1, fetch} + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} + $$ = []ast.Vertex{$1, fetch} // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6186,10 +6162,10 @@ array_method_dereference: method: function_call_parameter_list { - $$ = expr.NewMethodCall(nil, nil, $1.(*node.ArgumentList)) + $$ = &ast.ExprMethodCall{ast.Node{}, nil, nil, $1.(*ast.ArgumentList)} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6198,19 +6174,19 @@ method: method_or_not: method { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | array_method_dereference { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6219,16 +6195,16 @@ method_or_not: variable_without_objects: reference_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_indirect_reference reference_variable { - $1.last.SetVarName($2) + $1.last.VarName = $2 for _, n := range($1.all) { - n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2)) + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) } $$ = $1.all[0] @@ -6240,27 +6216,27 @@ variable_without_objects: static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { - $$ = expr.NewStaticPropertyFetch($1, $3) + $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { - $$ = expr.NewStaticPropertyFetch($1, $3) + $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6269,7 +6245,7 @@ static_member: variable_class_name: reference_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6278,29 +6254,29 @@ variable_class_name: array_function_dereference: array_function_dereference '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6309,19 +6285,19 @@ array_function_dereference: base_variable_with_function_calls: base_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | array_function_dereference { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6331,16 +6307,16 @@ base_variable_with_function_calls: base_variable: reference_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_indirect_reference reference_variable { - $1.last.SetVarName($2) + $1.last.VarName = $2 for _, n := range($1.all) { - n.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2)) + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) } $$ = $1.all[0] @@ -6349,7 +6325,7 @@ base_variable: } | static_member { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6358,35 +6334,35 @@ base_variable: reference_variable: reference_variable '[' dim_offset ']' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | reference_variable '{' expr '}' { - $$ = expr.NewArrayDimFetch($1, $3) + $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | compound_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6396,31 +6372,30 @@ reference_variable: compound_variable: T_VARIABLE { - name := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(name) - + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, name} + // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '$' '{' expr '}' { - $$ = expr.NewVariable($3) - + $$ = &ast.ExprVariable{ast.Node{}, $3} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($3, freefloating.Start, append($2.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($2), (*$3.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, freefloating.End, append((*$3.GetFreeFloating())[freefloating.End], append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6429,13 +6404,13 @@ compound_variable: dim_offset: /* empty */ { - $$ = nil + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6443,19 +6418,19 @@ dim_offset: object_property: - object_dim_list + object_dim_list { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_without_objects { - fetch := expr.NewPropertyFetch(nil, $1) - $$ = []node.Node{fetch} + fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, $1} + $$ = []ast.Vertex{fetch} // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6464,39 +6439,39 @@ object_property: object_dim_list: object_dim_list '[' dim_offset ']' { - fetch := expr.NewArrayDimFetch(nil, $3) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} $$ = append($1, fetch) - + // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | object_dim_list '{' expr '}' { - fetch := expr.NewArrayDimFetch(nil, $3) + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} $$ = append($1, fetch) - + // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_name { - fetch := expr.NewPropertyFetch(nil, $1) - $$ = []node.Node{fetch} - + fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, $1} + $$ = []ast.Vertex{fetch} + // save position - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6505,26 +6480,26 @@ object_dim_list: variable_name: T_STRING { - $$ = node.NewIdentifier($1.Value) - + $$ = &ast.Identifier{ast.Node{}, $1.Value} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' expr '}' { $$ = $2 - + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, append($1.FreeFloating, append(yylex.(*Parser).GetFreeFloatingToken($1), (*$$.GetFreeFloating())[freefloating.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append((*$$.GetFreeFloating())[freefloating.End], append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6533,33 +6508,33 @@ variable_name: simple_indirect_reference: '$' { - n := expr.NewVariable(nil) - $$ = simpleIndirectReference{[]*expr.Variable{n}, n} - + n := &ast.ExprVariable{ast.Node{}, nil} + $$ = simpleIndirectReference{[]*ast.ExprVariable{n}, n} + // save position - n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + // save comments - yylex.(*Parser).setFreeFloating(n, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(n, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating(n, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_indirect_reference '$' { - n := expr.NewVariable(nil) + n := &ast.ExprVariable{ast.Node{}, nil} - $1.last.SetVarName(n) + $1.last.VarName = n $1.all = append($1.all, n) $1.last = n $$ = $1 - + // save position - n.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - + n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + // save comments - yylex.(*Parser).setFreeFloating(n, freefloating.Start, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(n, freefloating.Dollar, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating(n, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6569,22 +6544,22 @@ assignment_list: assignment_list ',' assignment_list_element { if len($1) == 0 { - $1 = []node.Node{expr.NewArrayItem(nil, nil, false)} + $1 = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} } $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | assignment_list_element { - if $1.(*expr.ArrayItem).Key == nil && $1.(*expr.ArrayItem).Val == nil { - $$ = []node.Node{} + if $1.(*ast.ExprArrayItem).Key == nil && $1.(*ast.ExprArrayItem).Val == nil { + $$ = []ast.Vertex{} } else { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6595,10 +6570,10 @@ assignment_list: assignment_list_element: variable { - $$ = expr.NewArrayItem(nil, $1, false) - + $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, $1} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6607,23 +6582,23 @@ assignment_list_element: } | T_LIST '(' assignment_list ')' { - listNode := expr.NewList($3) - $$ = expr.NewArrayItem(nil, listNode, false) - + listNode := &ast.ExprList{ast.Node{}, $3} + $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} + // save position - listNode.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition(listNode)) + listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.List, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(listNode, freefloating.ArrayPairList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { - $$ = expr.NewArrayItem(nil, nil, false) + $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6633,7 +6608,7 @@ assignment_list_element: array_pair_list: /* empty */ { - $$ = []node.Node{} + $$ = []ast.Vertex{} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6642,12 +6617,12 @@ array_pair_list: $$ = $1 if $2 != nil { - $$ = append($1, expr.NewArrayItem(nil, nil, false)) + $$ = append($1, &ast.ExprArrayItem{ast.Node{}, false, nil, nil}) } // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6657,54 +6632,54 @@ array_pair_list: non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { - arrayItem := expr.NewArrayItem($3, $5, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, $5} $$ = append($1, arrayItem) // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5)) - + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5) + // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, $4.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' expr { - arrayItem := expr.NewArrayItem(nil, $3, false) + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $3} $$ = append($1, arrayItem) - + // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($3)) - + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW expr { - arrayItem := expr.NewArrayItem($1, $3, false) - $$ = []node.Node{arrayItem} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, $3} + $$ = []ast.Vertex{arrayItem} // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3)) - + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { - arrayItem := expr.NewArrayItem(nil, $1, false) - $$ = []node.Node{arrayItem} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $1} + $$ = []ast.Vertex{arrayItem} // save position - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodePosition($1)) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) @@ -6713,67 +6688,67 @@ 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, false) + reference := &ast.ExprReference{ast.Node{}, $6} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, reference} $$ = append($1, arrayItem) - + // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($5, $6)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6)) - + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($5, $6) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6) + // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, $4.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, $5.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' '&' w_variable { - reference := expr.NewReference($4) - arrayItem := expr.NewArrayItem(nil, reference, false) + reference := &ast.ExprReference{ast.Node{}, $4} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} $$ = append($1, arrayItem) - + // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) - + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) + // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW '&' w_variable { - reference := expr.NewReference($4) - arrayItem := expr.NewArrayItem($1, reference, false) - $$ = []node.Node{arrayItem} - + reference := &ast.ExprReference{ast.Node{}, $4} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, reference} + $$ = []ast.Vertex{arrayItem} + // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4)) + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Expr, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(reference, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' w_variable { - reference := expr.NewReference($2) - arrayItem := expr.NewArrayItem(nil, reference, false) - $$ = []node.Node{arrayItem} - + reference := &ast.ExprReference{ast.Node{}, $2} + arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} + $$ = []ast.Vertex{arrayItem} + // save position - reference.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - arrayItem.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) - + reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + // save comments - yylex.(*Parser).setFreeFloating(arrayItem, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6782,39 +6757,39 @@ non_empty_array_pair_list: encaps_list: encaps_list encaps_var { - $$ = append($1, $2) + $$ = append($1, $2) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_list T_ENCAPSED_AND_WHITESPACE { - encapsed := scalar.NewEncapsedStringPart($2.Value) + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} $$ = append($1, encapsed) // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_var { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ENCAPSED_AND_WHITESPACE encaps_var { - encapsed := scalar.NewEncapsedStringPart($1.Value) - $$ = []node.Node{encapsed, $2} + encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} + $$ = []ast.Vertex{encapsed, $2} // save position - encapsed.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(encapsed, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6823,105 +6798,102 @@ encaps_list: encaps_var: T_VARIABLE { - name := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - $$ = expr.NewArrayDimFetch(variable, $3) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($2.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($4.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - variable := expr.NewVariable(identifier) - fetch := node.NewIdentifier($3.Value) - $$ = expr.NewPropertyFetch(variable, fetch) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + variable := &ast.ExprVariable{ast.Node{}, identifier} + fetch := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - fetch.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(fetch, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - variable := expr.NewVariable($2) + variable := &ast.ExprVariable{ast.Node{}, $2} $$ = variable // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - name := node.NewIdentifier($2.Value) - variable := expr.NewVariable(name) + name := &ast.Identifier{ast.Node{}, $2.Value} + variable := &ast.ExprVariable{ast.Node{}, name} $$ = variable // save position - name.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3)) + name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { - identifier := node.NewIdentifier($2.Value) - variable := expr.NewVariable(identifier) - $$ = expr.NewArrayDimFetch(variable, $4) + identifier := &ast.Identifier{ast.Node{}, $2.Value} + variable := &ast.ExprVariable{ast.Node{}, identifier} + $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - variable.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($2)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.Var, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, append($5.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($5)...)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($6.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($6)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Tokens, yylex.(*Parser).GetFreeFloatingToken($5)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($6.Tokens, yylex.(*Parser).GetFreeFloatingToken($6)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6930,8 +6902,8 @@ encaps_var: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, freefloating.End, append($3.FreeFloating, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6940,45 +6912,44 @@ encaps_var: encaps_var_offset: T_STRING { - $$ = scalar.NewString($1.Value) + $$ = &ast.ScalarString{ast.Node{}, $1.Value} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NUM_STRING { // TODO: add option to handle 64 bit integer - if _, err := strconv.Atoi($1.Value); err == nil { - $$ = scalar.NewLnumber($1.Value) + if _, err := strconv.Atoi(string($1.Value)); err == nil { + $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} } else { - $$ = scalar.NewString($1.Value) + $$ = &ast.ScalarString{ast.Node{}, $1.Value} } // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { - identifier := node.NewIdentifier(strings.TrimLeftFunc($1.Value, isDollar)) - $$ = expr.NewVariable(identifier) + identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($1)) + identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).addDollarToken($$) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6987,105 +6958,105 @@ encaps_var_offset: internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { - $$ = expr.NewIsset($3) - + $$ = &ast.ExprIsset{ast.Node{}, $3} + // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) - + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Isset, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.VarList, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EMPTY '(' variable ')' { - $$ = expr.NewEmpty($3) + $$ = &ast.ExprEmpty{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Empty, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EMPTY '(' expr ')' { - $$ = expr.NewEmpty($3) + $$ = &ast.ExprEmpty{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Empty, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INCLUDE expr { - $$ = expr.NewInclude($2) + $$ = &ast.ExprInclude{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INCLUDE_ONCE expr { - $$ = expr.NewIncludeOnce($2) + $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EVAL '(' expr ')' { - $$ = expr.NewEval($3) + $$ = &ast.ExprEval{ast.Node{}, $3} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Eval, $2.FreeFloating) - yylex.(*Parser).setFreeFloating($$, freefloating.Expr, $4.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_REQUIRE expr { - $$ = expr.NewRequire($2) + $$ = &ast.ExprRequire{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_REQUIRE_ONCE expr { - $$ = expr.NewRequireOnce($2) + $$ = &ast.ExprRequireOnce{ast.Node{}, $2} // save position - $$.SetPosition(yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2)) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, freefloating.Start, $1.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7094,7 +7065,7 @@ internal_functions_in_yacc: isset_variables: isset_variable { - $$ = []node.Node{$1} + $$ = []ast.Vertex{$1} yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7103,7 +7074,7 @@ isset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), freefloating.End, $2.FreeFloating) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7112,13 +7083,13 @@ isset_variables: isset_variable: variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr_without_variable { - $$ = $1 + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7127,33 +7098,33 @@ isset_variable: class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := node.NewIdentifier($3.Value) - $$ = expr.NewClassConstFetch($1, target) + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := node.NewIdentifier($3.Value) - $$ = expr.NewClassConstFetch($1, target) + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7162,17 +7133,17 @@ class_constant: static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { - target := node.NewIdentifier($3.Value) - $$ = expr.NewClassConstFetch($1, target) + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7181,17 +7152,17 @@ static_class_name_scalar: class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { - target := node.NewIdentifier($3.Value) - $$ = expr.NewClassConstFetch($1, target) + target := &ast.Identifier{ast.Node{}, $3.Value} + $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.SetPosition(yylex.(*Parser).positionBuilder.NewTokenPosition($3)) - $$.SetPosition(yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3)) + target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, freefloating.Name, $2.FreeFloating) - yylex.(*Parser).setFreeFloating(target, freefloating.Start, $3.FreeFloating) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7200,6 +7171,6 @@ class_name_scalar: %% type simpleIndirectReference struct { - all []*expr.Variable - last *expr.Variable + all []*ast.ExprVariable + last *ast.ExprVariable } diff --git a/internal/php5/php5_bench_test.go b/internal/php5/php5_bench_test.go index 1cdd5aa..2c7d11c 100644 --- a/internal/php5/php5_bench_test.go +++ b/internal/php5/php5_bench_test.go @@ -3,7 +3,7 @@ package php5_test import ( "testing" - "github.com/z7zmey/php-parser/php5" + "github.com/z7zmey/php-parser/internal/php5" ) func BenchmarkPhp5(b *testing.B) { diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 3cbb727..295e0b0 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -1,21 +1,13 @@ package php5_test import ( + "gotest.tools/assert" "testing" - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/errors" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/position" ) func TestPhp5(t *testing.T) { @@ -402,106 +394,130 @@ func TestPhp5(t *testing.T) { parsing process must be terminated ` - expected := &node.Root{ - Position: &position.Position{ - StartLine: 2, - EndLine: 379, - StartPos: 5, - EndPos: 6944, + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 379, + StartPos: 5, + EndPos: 6944, + }, }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 5, - EndPos: 20, - }, - Expr: &expr.FunctionCall{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 5, - EndPos: 19, + EndPos: 20, }, - Function: &name.Name{ + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 5, - EndPos: 8, + EndPos: 19, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 5, - EndPos: 8, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 8, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 8, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 8, - EndPos: 19, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 8, + EndPos: 19, + }, }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 11, - }, - IsReference: false, - Variadic: false, - Expr: &expr.Variable{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 9, EndPos: 11, }, - VarName: &node.Identifier{ + }, + IsReference: false, + Variadic: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 9, EndPos: 11, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("a"), }, }, }, - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 13, - EndPos: 18, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 16, + StartPos: 13, EndPos: 18, }, - VarName: &node.Identifier{ + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 16, EndPos: 18, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 16, + EndPos: 18, + }, + }, + Value: []byte("b"), }, }, }, @@ -509,96 +525,118 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 23, - EndPos: 39, - }, - Expr: &expr.FunctionCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 23, - EndPos: 38, + EndPos: 39, }, - Function: &expr.Variable{ + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 23, - EndPos: 27, + EndPos: 38, }, - VarName: &node.Identifier{ + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 23, EndPos: 27, }, - Value: "foo", }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 27, - EndPos: 38, - }, - Arguments: []node.Node{ - &node.Argument{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 30, + StartPos: 23, + EndPos: 27, }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ + }, + Value: []byte("foo"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 27, + EndPos: 38, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 28, EndPos: 30, }, - VarName: &node.Identifier{ + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 28, EndPos: 30, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 30, + }, + }, + Value: []byte("a"), }, }, }, - &node.Argument{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 32, - EndPos: 37, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 35, + StartPos: 32, EndPos: 37, }, - VarName: &node.Identifier{ + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 35, EndPos: 37, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 35, + EndPos: 37, + }, + }, + Value: []byte("b"), }, }, }, @@ -606,105 +644,129 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 42, - EndPos: 63, - }, - Expr: &expr.MethodCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 42, - EndPos: 62, + EndPos: 63, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 42, - EndPos: 46, + EndPos: 62, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 42, EndPos: 46, }, - Value: "foo", }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 48, - EndPos: 51, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 51, - EndPos: 62, - }, - Arguments: []node.Node{ - &node.Argument{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, - EndPos: 54, + StartPos: 42, + EndPos: 46, }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ + }, + Value: []byte("foo"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 48, + EndPos: 51, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 51, + EndPos: 62, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 52, EndPos: 54, }, - VarName: &node.Identifier{ + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 52, EndPos: 54, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 54, + }, + }, + Value: []byte("a"), }, }, }, - &node.Argument{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 56, - EndPos: 61, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 59, + StartPos: 56, EndPos: 61, }, - VarName: &node.Identifier{ + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 59, EndPos: 61, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + }, + Value: []byte("b"), }, }, }, @@ -712,107 +774,131 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 86, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 66, - EndPos: 85, + EndPos: 86, }, - Class: &name.Name{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 66, - EndPos: 69, + EndPos: 85, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 69, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 69, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 69, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 71, - EndPos: 74, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 71, + EndPos: 74, + }, }, - Value: "bar", + Value: []byte("bar"), }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 74, - EndPos: 85, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 74, + EndPos: 85, + }, }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 75, - EndPos: 77, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 75, EndPos: 77, }, - VarName: &node.Identifier{ + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 75, EndPos: 77, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 77, + }, + }, + Value: []byte("a"), }, }, }, - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 79, - EndPos: 84, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 82, + StartPos: 79, EndPos: 84, }, - VarName: &node.Identifier{ + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 82, EndPos: 84, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + }, + Value: []byte("b"), }, }, }, @@ -820,105 +906,129 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 110, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 89, - EndPos: 109, + EndPos: 110, }, - Class: &expr.Variable{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 89, - EndPos: 93, + EndPos: 109, }, - VarName: &node.Identifier{ + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 89, EndPos: 93, }, - Value: "foo", }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 95, - EndPos: 98, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 98, - EndPos: 109, - }, - Arguments: []node.Node{ - &node.Argument{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, - EndPos: 101, + StartPos: 89, + EndPos: 93, }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ + }, + Value: []byte("foo"), + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 95, + EndPos: 98, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 98, + EndPos: 109, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 99, EndPos: 101, }, - VarName: &node.Identifier{ + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 99, EndPos: 101, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 101, + }, + }, + Value: []byte("a"), }, }, }, - &node.Argument{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 103, - EndPos: 108, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 106, + StartPos: 103, EndPos: 108, }, - VarName: &node.Identifier{ + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 106, EndPos: 108, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + }, + Value: []byte("b"), }, }, }, @@ -926,98 +1036,120 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 113, - EndPos: 132, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, StartPos: 113, - EndPos: 131, + EndPos: 132, }, - Class: &name.Name{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 117, - EndPos: 120, + StartPos: 113, + EndPos: 131, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 117, - EndPos: 120, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 120, - EndPos: 131, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 120, + EndPos: 131, + }, }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 121, - EndPos: 123, - }, - IsReference: false, - Variadic: false, - Expr: &expr.Variable{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, StartPos: 121, EndPos: 123, }, - VarName: &node.Identifier{ + }, + IsReference: false, + Variadic: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, StartPos: 121, EndPos: 123, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + }, + Value: []byte("a"), }, }, }, - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 125, - EndPos: 130, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 128, + StartPos: 125, EndPos: 130, }, - VarName: &node.Identifier{ + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, StartPos: 128, EndPos: 130, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 128, + EndPos: 130, + }, + }, + Value: []byte("b"), }, }, }, @@ -1025,4643 +1157,5639 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 136, - EndPos: 180, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ + &ast.StmtFunction{ + Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 145, - EndPos: 148, + StartPos: 136, + EndPos: 180, }, - Value: "foo", }, - Params: []node.Node{ - &node.Parameter{ + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 149, - EndPos: 162, + StartPos: 145, + EndPos: 148, }, - ByRef: false, - Variadic: false, - VariableType: &name.Name{ + }, + Value: []byte("foo"), + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, StartPos: 149, - EndPos: 152, + EndPos: 162, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 149, - EndPos: 152, + }, + ByRef: false, + Variadic: false, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 149, + EndPos: 152, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 149, + EndPos: 152, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 153, - EndPos: 157, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, StartPos: 153, EndPos: 157, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 153, + EndPos: 157, + }, + }, + Value: []byte("bar"), }, }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 158, - EndPos: 162, - }, - Constant: &name.Name{ + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, StartPos: 158, EndPos: 162, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 158, - EndPos: 162, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 158, + EndPos: 162, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 158, + EndPos: 162, + }, }, - Value: "null", + Value: []byte("null"), }, }, }, }, }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 164, - EndPos: 176, - }, - ByRef: true, - Variadic: true, - VariableType: &name.Name{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, StartPos: 164, - EndPos: 167, + EndPos: 176, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 164, - EndPos: 167, + }, + ByRef: true, + Variadic: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 164, + EndPos: 167, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 164, + EndPos: 167, + }, }, - Value: "baz", + Value: []byte("baz"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 172, - EndPos: 176, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, StartPos: 172, EndPos: 176, }, - Value: "baz", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 172, + EndPos: 176, + }, + }, + Value: []byte("baz"), }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 183, - EndPos: 246, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 189, - EndPos: 192, + StartPos: 183, + EndPos: 246, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.ClassMethod{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 194, - EndPos: 245, + StartPos: 189, + EndPos: 192, }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 210, - EndPos: 213, + StartPos: 194, + EndPos: 245, }, - Value: "foo", }, - Modifiers: []node.Node{ - &node.Identifier{ + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 194, - EndPos: 200, + StartPos: 210, + EndPos: 213, }, - Value: "public", + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 194, + EndPos: 200, + }, + }, + Value: []byte("public"), }, }, - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 214, - EndPos: 227, - }, - ByRef: false, - Variadic: false, - VariableType: &name.Name{ + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, StartPos: 214, - EndPos: 217, + EndPos: 227, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 214, - EndPos: 217, + }, + ByRef: false, + Variadic: false, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 214, + EndPos: 217, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 214, + EndPos: 217, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 218, - EndPos: 222, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, StartPos: 218, EndPos: 222, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 218, + EndPos: 222, + }, + }, + Value: []byte("bar"), }, }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 223, - EndPos: 227, - }, - Constant: &name.Name{ + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, StartPos: 223, EndPos: 227, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 223, - EndPos: 227, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 223, + EndPos: 227, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 223, + EndPos: 227, + }, }, - Value: "null", + Value: []byte("null"), }, }, }, }, }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 229, - EndPos: 241, - }, - ByRef: true, - Variadic: true, - VariableType: &name.Name{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, StartPos: 229, - EndPos: 232, + EndPos: 241, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 229, - EndPos: 232, + }, + ByRef: true, + Variadic: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 229, + EndPos: 232, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 229, + EndPos: 232, + }, }, - Value: "baz", + Value: []byte("baz"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 237, - EndPos: 241, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, StartPos: 237, EndPos: 241, }, - Value: "baz", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 237, + EndPos: 241, + }, + }, + Value: []byte("baz"), }, }, }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 243, - EndPos: 245, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 243, + EndPos: 245, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 249, - EndPos: 290, - }, - Expr: &expr.Closure{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, StartPos: 249, - EndPos: 289, + EndPos: 290, }, - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 258, - EndPos: 271, - }, - ByRef: false, - Variadic: false, - VariableType: &name.Name{ + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 249, + EndPos: 289, + }, + }, + ReturnsRef: false, + Static: false, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, StartPos: 258, - EndPos: 261, + EndPos: 271, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 258, - EndPos: 261, + }, + ByRef: false, + Variadic: false, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 258, + EndPos: 261, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 258, + EndPos: 261, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 262, - EndPos: 266, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, StartPos: 262, EndPos: 266, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 262, + EndPos: 266, + }, + }, + Value: []byte("bar"), }, }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 267, - EndPos: 271, - }, - Constant: &name.Name{ + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, StartPos: 267, EndPos: 271, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 267, - EndPos: 271, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 267, + EndPos: 271, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 267, + EndPos: 271, + }, }, - Value: "null", + Value: []byte("null"), }, }, }, }, }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 273, - EndPos: 285, - }, - ByRef: true, - Variadic: true, - VariableType: &name.Name{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, StartPos: 273, - EndPos: 276, + EndPos: 285, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 273, - EndPos: 276, + }, + ByRef: true, + Variadic: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 273, + EndPos: 276, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 273, + EndPos: 276, + }, }, - Value: "baz", + Value: []byte("baz"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 281, - EndPos: 285, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, StartPos: 281, EndPos: 285, }, - Value: "baz", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 281, + EndPos: 285, + }, + }, + Value: []byte("baz"), }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 293, - EndPos: 341, - }, - Expr: &expr.Closure{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, StartPos: 293, - EndPos: 340, + EndPos: 341, }, - ReturnsRef: false, - Static: true, - PhpDocComment: "", - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 309, - EndPos: 322, - }, - ByRef: false, - Variadic: false, - VariableType: &name.Name{ + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 293, + EndPos: 340, + }, + }, + ReturnsRef: false, + Static: true, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, StartPos: 309, - EndPos: 312, + EndPos: 322, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 309, - EndPos: 312, + }, + ByRef: false, + Variadic: false, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 309, + EndPos: 312, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 309, + EndPos: 312, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 313, - EndPos: 317, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, StartPos: 313, EndPos: 317, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 313, + EndPos: 317, + }, + }, + Value: []byte("bar"), }, }, - DefaultValue: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 318, - EndPos: 322, - }, - Constant: &name.Name{ + DefaultValue: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, StartPos: 318, EndPos: 322, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 318, - EndPos: 322, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 318, + EndPos: 322, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 318, + EndPos: 322, + }, }, - Value: "null", + Value: []byte("null"), }, }, }, }, }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 324, - EndPos: 336, - }, - ByRef: true, - Variadic: true, - VariableType: &name.Name{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, StartPos: 324, - EndPos: 327, + EndPos: 336, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 324, - EndPos: 327, + }, + ByRef: true, + Variadic: true, + Type: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 324, + EndPos: 327, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 324, + EndPos: 327, + }, }, - Value: "baz", + Value: []byte("baz"), }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 332, - EndPos: 336, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, StartPos: 332, EndPos: 336, }, - Value: "baz", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 332, + EndPos: 336, + }, + }, + Value: []byte("baz"), }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 345, - EndPos: 365, - }, - Expr: &scalar.Lnumber{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 14, EndLine: 14, StartPos: 345, - EndPos: 364, + EndPos: 365, }, - Value: "1234567890123456789", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 14, + EndLine: 14, + StartPos: 345, + EndPos: 364, + }, + }, + Value: []byte("1234567890123456789"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 368, - EndPos: 389, - }, - Expr: &scalar.Dnumber{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 15, EndLine: 15, StartPos: 368, - EndPos: 388, + EndPos: 389, }, - Value: "12345678901234567890", + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 15, + EndLine: 15, + StartPos: 368, + EndPos: 388, + }, + }, + Value: []byte("12345678901234567890"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 392, - EndPos: 395, - }, - Expr: &scalar.Dnumber{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 16, EndLine: 16, StartPos: 392, - EndPos: 394, + EndPos: 395, }, - Value: "0.", + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 16, + EndLine: 16, + StartPos: 392, + EndPos: 394, + }, + }, + Value: []byte("0."), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 17, - EndLine: 17, - StartPos: 398, - EndPos: 465, - }, - Expr: &scalar.Lnumber{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 17, EndLine: 17, StartPos: 398, - EndPos: 464, + EndPos: 465, }, - Value: "0b0111111111111111111111111111111111111111111111111111111111111111", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 398, + EndPos: 464, + }, + }, + Value: []byte("0b0111111111111111111111111111111111111111111111111111111111111111"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 468, - EndPos: 535, - }, - Expr: &scalar.Dnumber{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 18, EndLine: 18, StartPos: 468, - EndPos: 534, + EndPos: 535, }, - Value: "0b1111111111111111111111111111111111111111111111111111111111111111", + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 468, + EndPos: 534, + }, + }, + Value: []byte("0b1111111111111111111111111111111111111111111111111111111111111111"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 538, - EndPos: 559, - }, - Expr: &scalar.Lnumber{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 19, EndLine: 19, StartPos: 538, - EndPos: 558, + EndPos: 559, }, - Value: "0x007111111111111111", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 538, + EndPos: 558, + }, + }, + Value: []byte("0x007111111111111111"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 562, - EndPos: 581, - }, - Expr: &scalar.Dnumber{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 20, EndLine: 20, StartPos: 562, - EndPos: 580, + EndPos: 581, }, - Value: "0x8111111111111111", + }, + Expr: &ast.ScalarDnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 562, + EndPos: 580, + }, + }, + Value: []byte("0x8111111111111111"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 584, - EndPos: 594, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 21, EndLine: 21, StartPos: 584, - EndPos: 593, + EndPos: 594, }, - Value: "__CLASS__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 584, + EndPos: 593, + }, + }, + Value: []byte("__CLASS__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 22, - EndLine: 22, - StartPos: 597, - EndPos: 605, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 22, EndLine: 22, StartPos: 597, - EndPos: 604, + EndPos: 605, }, - Value: "__DIR__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 22, + EndLine: 22, + StartPos: 597, + EndPos: 604, + }, + }, + Value: []byte("__DIR__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 23, - EndLine: 23, - StartPos: 608, - EndPos: 617, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 23, EndLine: 23, StartPos: 608, - EndPos: 616, + EndPos: 617, }, - Value: "__FILE__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 23, + EndLine: 23, + StartPos: 608, + EndPos: 616, + }, + }, + Value: []byte("__FILE__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 24, - EndLine: 24, - StartPos: 620, - EndPos: 633, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 24, EndLine: 24, StartPos: 620, - EndPos: 632, + EndPos: 633, }, - Value: "__FUNCTION__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 620, + EndPos: 632, + }, + }, + Value: []byte("__FUNCTION__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 25, - EndLine: 25, - StartPos: 636, - EndPos: 645, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 25, EndLine: 25, StartPos: 636, - EndPos: 644, + EndPos: 645, }, - Value: "__LINE__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 636, + EndPos: 644, + }, + }, + Value: []byte("__LINE__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 26, - EndLine: 26, - StartPos: 648, - EndPos: 662, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 26, EndLine: 26, StartPos: 648, - EndPos: 661, + EndPos: 662, }, - Value: "__NAMESPACE__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 26, + EndLine: 26, + StartPos: 648, + EndPos: 661, + }, + }, + Value: []byte("__NAMESPACE__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 27, - EndLine: 27, - StartPos: 665, - EndPos: 676, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 27, EndLine: 27, StartPos: 665, - EndPos: 675, + EndPos: 676, }, - Value: "__METHOD__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 27, + EndLine: 27, + StartPos: 665, + EndPos: 675, + }, + }, + Value: []byte("__METHOD__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 28, - EndLine: 28, - StartPos: 679, - EndPos: 689, - }, - Expr: &scalar.MagicConstant{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 28, EndLine: 28, StartPos: 679, - EndPos: 688, + EndPos: 689, }, - Value: "__TRAIT__", + }, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 679, + EndPos: 688, + }, + }, + Value: []byte("__TRAIT__"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 693, - EndPos: 705, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 30, EndLine: 30, StartPos: 693, - EndPos: 704, + EndPos: 705, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 694, - EndPos: 699, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 693, + EndPos: 704, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 699, - EndPos: 703, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 694, + EndPos: 699, + }, }, - VarName: &node.Identifier{ + Value: []byte("test "), + }, + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 30, EndLine: 30, StartPos: 699, EndPos: 703, }, - Value: "var", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 30, + EndLine: 30, + StartPos: 699, + EndPos: 703, + }, + }, + Value: []byte("var"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 708, - EndPos: 723, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 31, EndLine: 31, StartPos: 708, - EndPos: 722, + EndPos: 723, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 709, - EndPos: 714, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 708, + EndPos: 722, }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 714, - EndPos: 721, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 709, + EndPos: 714, + }, }, - Variable: &expr.Variable{ + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 31, EndLine: 31, StartPos: 714, - EndPos: 718, + EndPos: 721, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 31, EndLine: 31, StartPos: 714, EndPos: 718, }, - Value: "var", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 714, + EndPos: 718, + }, + }, + Value: []byte("var"), }, }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 719, - EndPos: 720, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 31, + EndLine: 31, + StartPos: 719, + EndPos: 720, + }, }, - Value: "1", + Value: []byte("1"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 726, - EndPos: 780, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 32, EndLine: 32, StartPos: 726, - EndPos: 779, + EndPos: 780, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 727, - EndPos: 732, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 726, + EndPos: 779, }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 732, - EndPos: 778, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 727, + EndPos: 732, + }, }, - Variable: &expr.Variable{ + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 32, EndLine: 32, StartPos: 732, - EndPos: 736, + EndPos: 778, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 32, EndLine: 32, StartPos: 732, EndPos: 736, }, - Value: "var", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 732, + EndPos: 736, + }, + }, + Value: []byte("var"), }, }, - Dim: &scalar.String{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 737, - EndPos: 777, + Dim: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 32, + EndLine: 32, + StartPos: 737, + EndPos: 777, + }, }, - Value: "1234567890123456789012345678901234567890", + Value: []byte("1234567890123456789012345678901234567890"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 783, - EndPos: 800, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 33, EndLine: 33, StartPos: 783, - EndPos: 799, + EndPos: 800, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 784, - EndPos: 789, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 783, + EndPos: 799, }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 789, - EndPos: 798, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 784, + EndPos: 789, + }, }, - Variable: &expr.Variable{ + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 33, EndLine: 33, StartPos: 789, - EndPos: 793, + EndPos: 798, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 33, EndLine: 33, StartPos: 789, EndPos: 793, }, - Value: "var", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 789, + EndPos: 793, + }, + }, + Value: []byte("var"), }, }, - Dim: &scalar.String{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 794, - EndPos: 797, + Dim: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 33, + EndLine: 33, + StartPos: 794, + EndPos: 797, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 803, - EndPos: 821, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 34, EndLine: 34, StartPos: 803, - EndPos: 820, + EndPos: 821, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 804, - EndPos: 809, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 803, + EndPos: 820, }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 809, - EndPos: 819, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 804, + EndPos: 809, + }, }, - Variable: &expr.Variable{ + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 34, EndLine: 34, StartPos: 809, - EndPos: 813, + EndPos: 819, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 34, EndLine: 34, StartPos: 809, EndPos: 813, }, - Value: "var", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 809, + EndPos: 813, + }, + }, + Value: []byte("var"), }, }, - Dim: &expr.Variable{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 814, - EndPos: 818, - }, - VarName: &node.Identifier{ + Dim: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 34, EndLine: 34, StartPos: 814, EndPos: 818, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 34, + EndLine: 34, + StartPos: 814, + EndPos: 818, + }, + }, + Value: []byte("bar"), }, }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 824, - EndPos: 836, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 35, EndLine: 35, StartPos: 824, - EndPos: 835, + EndPos: 836, }, - Parts: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 825, - EndPos: 829, - }, - VarName: &node.Identifier{ + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 824, + EndPos: 835, + }, + }, + Parts: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 35, EndLine: 35, StartPos: 825, EndPos: 829, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 825, + EndPos: 829, + }, + }, + Value: []byte("foo"), }, }, - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 829, - EndPos: 830, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 829, + EndPos: 830, + }, }, - Value: " ", + Value: []byte(" "), }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 830, - EndPos: 834, - }, - VarName: &node.Identifier{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 35, EndLine: 35, StartPos: 830, EndPos: 834, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 35, + EndLine: 35, + StartPos: 830, + EndPos: 834, + }, + }, + Value: []byte("bar"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 839, - EndPos: 858, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 36, EndLine: 36, StartPos: 839, - EndPos: 857, + EndPos: 858, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 840, - EndPos: 845, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 839, + EndPos: 857, }, - &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 845, - EndPos: 854, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 840, + EndPos: 845, + }, }, - Variable: &expr.Variable{ + Value: []byte("test "), + }, + &ast.ExprPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 36, EndLine: 36, StartPos: 845, - EndPos: 849, + EndPos: 854, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 36, EndLine: 36, StartPos: 845, EndPos: 849, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 845, + EndPos: 849, + }, + }, + Value: []byte("foo"), }, }, - Property: &node.Identifier{ + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 36, + EndLine: 36, + StartPos: 851, + EndPos: 854, + }, + }, + Value: []byte("bar"), + }, + }, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 851, - EndPos: 854, + StartPos: 854, + EndPos: 856, }, - Value: "bar", }, - }, - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 854, - EndPos: 856, - }, - Value: "()", + Value: []byte("()"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 861, - EndPos: 875, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 37, EndLine: 37, StartPos: 861, - EndPos: 874, + EndPos: 875, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 862, - EndPos: 867, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 861, + EndPos: 874, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 867, - EndPos: 873, - }, - VarName: &node.Identifier{ + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 869, - EndPos: 872, + StartPos: 862, + EndPos: 867, }, - Value: "foo", + }, + Value: []byte("test "), + }, + &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 867, + EndPos: 873, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 37, + EndLine: 37, + StartPos: 869, + EndPos: 872, + }, + }, + Value: []byte("foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 878, - EndPos: 895, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 38, EndLine: 38, StartPos: 878, - EndPos: 894, + EndPos: 895, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 879, - EndPos: 884, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 878, + EndPos: 894, }, - &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 884, - EndPos: 893, - }, - Variable: &expr.Variable{ + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 886, - EndPos: 889, + StartPos: 879, + EndPos: 884, }, - VarName: &node.Identifier{ + }, + Value: []byte("test "), + }, + &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 884, + EndPos: 893, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 38, EndLine: 38, StartPos: 886, EndPos: 889, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 886, + EndPos: 889, + }, + }, + Value: []byte("foo"), }, }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 890, - EndPos: 891, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 38, + EndLine: 38, + StartPos: 890, + EndPos: 891, + }, }, - Value: "0", + Value: []byte("0"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 898, - EndPos: 919, - }, - Expr: &scalar.Encapsed{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 39, EndLine: 39, StartPos: 898, - EndPos: 918, + EndPos: 919, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 899, - EndPos: 904, - }, - Value: "test ", + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 898, + EndPos: 918, }, - &expr.MethodCall{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 905, - EndPos: 916, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 899, + EndPos: 904, + }, }, - Variable: &expr.Variable{ + Value: []byte("test "), + }, + &ast.ExprMethodCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 39, EndLine: 39, StartPos: 905, - EndPos: 909, + EndPos: 916, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 39, EndLine: 39, StartPos: 905, EndPos: 909, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 905, + EndPos: 909, + }, + }, + Value: []byte("foo"), }, }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 911, - EndPos: 914, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 911, + EndPos: 914, + }, }, - Value: "bar", + Value: []byte("bar"), }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 914, - EndPos: 916, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 39, + EndLine: 39, + StartPos: 914, + EndPos: 916, + }, }, }, }, }, }, }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 41, - EndLine: 42, - StartPos: 923, - EndPos: 941, - }, - Cond: &expr.Variable{ + &ast.StmtAltIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 41, - EndLine: 41, - StartPos: 927, - EndPos: 929, + EndLine: 42, + StartPos: 923, + EndPos: 941, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 41, EndLine: 41, StartPos: 927, EndPos: 929, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 41, + EndLine: 41, + StartPos: 927, + EndPos: 929, + }, + }, + Value: []byte("a"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 43, - EndLine: 45, - StartPos: 944, - EndPos: 977, - }, - Cond: &expr.Variable{ + &ast.StmtAltIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 43, - EndLine: 43, - StartPos: 948, - EndPos: 950, + EndLine: 45, + StartPos: 944, + EndPos: 977, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 43, EndLine: 43, StartPos: 948, EndPos: 950, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 43, + EndLine: 43, + StartPos: 948, + EndPos: 950, + }, + }, + Value: []byte("a"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.AltElseIf{ + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ Position: &position.Position{ - StartLine: 44, + StartLine: -1, EndLine: -1, - StartPos: 956, + StartPos: -1, EndPos: -1, }, - Cond: &expr.Variable{ + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtAltElseIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 44, - EndLine: 44, - StartPos: 964, - EndPos: 966, + EndLine: -1, + StartPos: 956, + EndPos: -1, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 44, EndLine: 44, StartPos: 964, EndPos: 966, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 44, + EndLine: 44, + StartPos: 964, + EndPos: 966, + }, + }, + Value: []byte("b"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 46, - EndLine: 48, - StartPos: 980, - EndPos: 1006, - }, - Cond: &expr.Variable{ + &ast.StmtAltIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 46, - EndLine: 46, - StartPos: 984, - EndPos: 986, + EndLine: 48, + StartPos: 980, + EndPos: 1006, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 46, EndLine: 46, StartPos: 984, EndPos: 986, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 46, + EndLine: 46, + StartPos: 984, + EndPos: 986, + }, + }, + Value: []byte("a"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - Else: &stmt.AltElse{ - Position: &position.Position{ - StartLine: 47, - EndLine: -1, - StartPos: 992, - EndPos: -1, - }, - Stmt: &stmt.StmtList{ + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ Position: &position.Position{ StartLine: -1, EndLine: -1, StartPos: -1, EndPos: -1, }, - Stmts: []node.Node{}, + }, + Stmts: []ast.Vertex{}, + }, + Else: &ast.StmtAltElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 47, + EndLine: -1, + StartPos: 992, + EndPos: -1, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, - &stmt.AltIf{ - Position: &position.Position{ - StartLine: 49, - EndLine: 53, - StartPos: 1009, - EndPos: 1065, - }, - Cond: &expr.Variable{ + &ast.StmtAltIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 49, - EndLine: 49, - StartPos: 1013, - EndPos: 1015, + EndLine: 53, + StartPos: 1009, + EndPos: 1065, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 49, EndLine: 49, StartPos: 1013, EndPos: 1015, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 49, + EndLine: 49, + StartPos: 1013, + EndPos: 1015, + }, + }, + Value: []byte("a"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Position: &position.Position{ - StartLine: 50, - EndLine: -1, - StartPos: 1021, - EndPos: -1, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1029, - EndPos: 1031, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1029, - EndPos: 1031, - }, - Value: "b", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.AltElseIf{ - Position: &position.Position{ - StartLine: 51, - EndLine: -1, - StartPos: 1036, - EndPos: -1, - }, - Cond: &expr.Variable{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1044, - EndPos: 1046, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1044, - EndPos: 1046, - }, - Value: "c", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - }, - Else: &stmt.AltElse{ - Position: &position.Position{ - StartLine: 52, - EndLine: -1, - StartPos: 1051, - EndPos: -1, - }, - Stmt: &stmt.StmtList{ + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ Position: &position.Position{ StartLine: -1, EndLine: -1, StartPos: -1, EndPos: -1, }, - Stmts: []node.Node{}, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtAltElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: -1, + StartPos: 1021, + EndPos: -1, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1029, + EndPos: 1031, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 50, + EndLine: 50, + StartPos: 1029, + EndPos: 1031, + }, + }, + Value: []byte("b"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtAltElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: -1, + StartPos: 1036, + EndPos: -1, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1044, + EndPos: 1046, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 51, + EndLine: 51, + StartPos: 1044, + EndPos: 1046, + }, + }, + Value: []byte("c"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + Else: &ast.StmtAltElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 52, + EndLine: -1, + StartPos: 1051, + EndPos: -1, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, - &stmt.While{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 1069, - EndPos: 1089, - }, - Cond: &scalar.Lnumber{ + &ast.StmtWhile{ + Node: ast.Node{ Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1076, - EndPos: 1077, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 1079, + StartPos: 1069, EndPos: 1089, }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 1081, - EndPos: 1087, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1076, + EndPos: 1077, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1079, + EndPos: 1089, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 55, + EndLine: 55, + StartPos: 1081, + EndPos: 1087, + }, }, }, }, }, }, - &stmt.While{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1092, - EndPos: 1114, - }, - Cond: &scalar.Lnumber{ + &ast.StmtWhile{ + Node: ast.Node{ Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1099, - EndPos: 1100, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1102, + StartPos: 1092, EndPos: 1114, }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1104, - EndPos: 1112, - }, - Expr: &scalar.Lnumber{ + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1099, + EndPos: 1100, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1102, + EndPos: 1114, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1110, - EndPos: 1111, + StartPos: 1104, + EndPos: 1112, }, - Value: "2", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 56, + EndLine: 56, + StartPos: 1110, + EndPos: 1111, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.AltWhile{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1117, - EndPos: 1148, - }, - Cond: &scalar.Lnumber{ + &ast.StmtAltWhile{ + Node: ast.Node{ Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1124, - EndPos: 1125, + StartPos: 1117, + EndPos: 1148, }, - Value: "1", }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1129, - EndPos: 1138, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1124, + EndPos: 1125, + }, }, - Stmts: []node.Node{ - &stmt.Break{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1129, - EndPos: 1138, - }, - Expr: &scalar.Lnumber{ + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1129, + EndPos: 1138, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1135, - EndPos: 1136, + StartPos: 1129, + EndPos: 1138, }, - Value: "3", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 57, + EndLine: 57, + StartPos: 1135, + EndPos: 1136, + }, + }, + Value: []byte("3"), }, }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1151, - EndPos: 1187, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1157, - EndPos: 1160, + StartPos: 1151, + EndPos: 1187, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.ClassConstList{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1162, - EndPos: 1185, + StartPos: 1157, + EndPos: 1160, }, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1168, - EndPos: 1175, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassConstList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1162, + EndPos: 1185, + }, + }, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 58, EndLine: 58, StartPos: 1168, - EndPos: 1171, - }, - Value: "FOO", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1174, EndPos: 1175, }, - Value: "1", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1168, + EndPos: 1171, + }, + }, + Value: []byte("FOO"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1174, + EndPos: 1175, + }, + }, + Value: []byte("1"), }, }, - &stmt.Constant{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1177, - EndPos: 1184, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 58, EndLine: 58, StartPos: 1177, - EndPos: 1180, - }, - Value: "BAR", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1183, EndPos: 1184, }, - Value: "2", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1177, + EndPos: 1180, + }, + }, + Value: []byte("BAR"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 58, + EndLine: 58, + StartPos: 1183, + EndPos: 1184, + }, + }, + Value: []byte("2"), }, }, }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 59, - EndLine: 59, - StartPos: 1190, - EndPos: 1220, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1196, - EndPos: 1199, + StartPos: 1190, + EndPos: 1220, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.ClassMethod{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1201, - EndPos: 1218, + StartPos: 1196, + EndPos: 1199, }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1210, - EndPos: 1213, - }, - Value: "bar", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 59, - EndLine: 59, - StartPos: 1216, + StartPos: 1201, EndPos: 1218, }, - Stmts: []node.Node{}, + }, + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 59, + EndLine: 59, + StartPos: 1210, + EndPos: 1213, + }, + }, + Value: []byte("bar"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 59, + EndLine: 59, + StartPos: 1216, + EndPos: 1218, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1223, - EndPos: 1268, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1229, - EndPos: 1232, + StartPos: 1223, + EndPos: 1268, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.ClassMethod{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1234, - EndPos: 1266, + StartPos: 1229, + EndPos: 1232, }, - ReturnsRef: true, - PhpDocComment: "", - MethodName: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1258, - EndPos: 1261, - }, - Value: "bar", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1234, - EndPos: 1240, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1241, - EndPos: 1247, - }, - Value: "static", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1264, + StartPos: 1234, EndPos: 1266, }, - Stmts: []node.Node{}, + }, + ReturnsRef: true, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1258, + EndPos: 1261, + }, + }, + Value: []byte("bar"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1234, + EndPos: 1240, + }, + }, + Value: []byte("public"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1241, + EndPos: 1247, + }, + }, + Value: []byte("static"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 60, + EndLine: 60, + StartPos: 1264, + EndPos: 1266, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1271, - EndPos: 1343, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1277, - EndPos: 1280, + StartPos: 1271, + EndPos: 1343, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.ClassMethod{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1282, - EndPos: 1313, + StartPos: 1277, + EndPos: 1280, }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1305, - EndPos: 1308, - }, - Value: "bar", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1282, - EndPos: 1287, - }, - Value: "final", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1288, - EndPos: 1295, - }, - Value: "private", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1311, + StartPos: 1282, EndPos: 1313, }, - Stmts: []node.Node{}, }, - }, - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1314, - EndPos: 1341, - }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1333, - EndPos: 1336, - }, - Value: "baz", - }, - Modifiers: []node.Node{ - &node.Identifier{ + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1314, - EndPos: 1323, + StartPos: 1305, + EndPos: 1308, }, - Value: "protected", + }, + Value: []byte("bar"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1282, + EndPos: 1287, + }, + }, + Value: []byte("final"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1288, + EndPos: 1295, + }, + }, + Value: []byte("private"), }, }, - Stmt: &stmt.StmtList{ + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1311, + EndPos: 1313, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtClassMethod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1339, + StartPos: 1314, EndPos: 1341, }, - Stmts: []node.Node{}, + }, + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1333, + EndPos: 1336, + }, + }, + Value: []byte("baz"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1314, + EndPos: 1323, + }, + }, + Value: []byte("protected"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 61, + EndLine: 61, + StartPos: 1339, + EndPos: 1341, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1346, - EndPos: 1399, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1361, - EndPos: 1364, + StartPos: 1346, + EndPos: 1399, }, - Value: "foo", }, - Modifiers: []node.Node{ - &node.Identifier{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1346, - EndPos: 1354, + StartPos: 1361, + EndPos: 1364, }, - Value: "abstract", + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1346, + EndPos: 1354, + }, + }, + Value: []byte("abstract"), }, }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1366, - EndPos: 1397, - }, - ReturnsRef: false, - PhpDocComment: "", - MethodName: &node.Identifier{ + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1391, - EndPos: 1394, - }, - Value: "bar", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1366, - EndPos: 1374, - }, - Value: "abstract", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1375, - EndPos: 1381, - }, - Value: "public", - }, - }, - Stmt: &stmt.Nop{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1396, + StartPos: 1366, EndPos: 1397, }, }, - }, - }, - }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1402, - EndPos: 1433, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1414, - EndPos: 1417, - }, - Value: "foo", - }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1402, - EndPos: 1407, - }, - Value: "final", - }, - }, - Extends: &stmt.ClassExtends{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1418, - EndPos: 1429, - }, - ClassName: &name.Name{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1426, - EndPos: 1429, - }, - Parts: []node.Node{ - &name.NamePart{ + ReturnsRef: false, + MethodName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1426, - EndPos: 1429, + StartLine: 62, + EndLine: 62, + StartPos: 1391, + EndPos: 1394, + }, + }, + Value: []byte("bar"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1366, + EndPos: 1374, + }, + }, + Value: []byte("abstract"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1375, + EndPos: 1381, + }, + }, + Value: []byte("public"), + }, + }, + Stmt: &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 62, + EndLine: 62, + StartPos: 1396, + EndPos: 1397, }, - Value: "bar", }, }, }, }, - Stmts: []node.Node{}, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1436, - EndPos: 1470, + &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1402, + EndPos: 1433, + }, }, - PhpDocComment: "", - ClassName: &node.Identifier{ + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1414, + EndPos: 1417, + }, + }, + Value: []byte("foo"), + }, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1402, + EndPos: 1407, + }, + }, + Value: []byte("final"), + }, + }, + Extends: &ast.StmtClassExtends{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1418, + EndPos: 1429, + }, + }, + ClassName: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1426, + EndPos: 1429, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 63, + EndLine: 63, + StartPos: 1426, + EndPos: 1429, + }, + }, + Value: []byte("bar"), + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1448, - EndPos: 1451, + StartPos: 1436, + EndPos: 1470, }, - Value: "foo", }, - Modifiers: []node.Node{ - &node.Identifier{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1436, - EndPos: 1441, + StartPos: 1448, + EndPos: 1451, }, - Value: "final", }, + Value: []byte("foo"), }, - Implements: &stmt.ClassImplements{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1452, - EndPos: 1466, - }, - InterfaceNames: []node.Node{ - &name.Name{ + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1463, - EndPos: 1466, + StartPos: 1436, + EndPos: 1441, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1463, - EndPos: 1466, + }, + Value: []byte("final"), + }, + }, + Implements: &ast.StmtClassImplements{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1452, + EndPos: 1466, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1463, + EndPos: 1466, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 64, + EndLine: 64, + StartPos: 1463, + EndPos: 1466, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1473, - EndPos: 1512, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1485, - EndPos: 1488, + StartPos: 1473, + EndPos: 1512, }, - Value: "foo", }, - Modifiers: []node.Node{ - &node.Identifier{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1473, - EndPos: 1478, + StartPos: 1485, + EndPos: 1488, }, - Value: "final", }, + Value: []byte("foo"), }, - Implements: &stmt.ClassImplements{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1489, - EndPos: 1508, - }, - InterfaceNames: []node.Node{ - &name.Name{ + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1500, - EndPos: 1503, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1500, - EndPos: 1503, - }, - Value: "bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1505, - EndPos: 1508, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1505, - EndPos: 1508, - }, - Value: "baz", - }, + StartPos: 1473, + EndPos: 1478, }, }, + Value: []byte("final"), }, }, - Stmts: []node.Node{}, - }, - &stmt.ConstList{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1516, - EndPos: 1539, - }, - Consts: []node.Node{ - &stmt.Constant{ + Implements: &ast.StmtClassImplements{ + Node: ast.Node{ Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1522, - EndPos: 1529, + StartLine: 65, + EndLine: 65, + StartPos: 1489, + EndPos: 1508, }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1500, + EndPos: 1503, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1500, + EndPos: 1503, + }, + }, + Value: []byte("bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1505, + EndPos: 1508, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 65, + EndLine: 65, + StartPos: 1505, + EndPos: 1508, + }, + }, + Value: []byte("baz"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtConstList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1516, + EndPos: 1539, + }, + }, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 67, EndLine: 67, StartPos: 1522, - EndPos: 1525, - }, - Value: "FOO", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1528, EndPos: 1529, }, - Value: "1", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1522, + EndPos: 1525, + }, + }, + Value: []byte("FOO"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1528, + EndPos: 1529, + }, + }, + Value: []byte("1"), }, }, - &stmt.Constant{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1531, - EndPos: 1538, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 67, EndLine: 67, StartPos: 1531, - EndPos: 1534, - }, - Value: "BAR", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1537, EndPos: 1538, }, - Value: "2", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1531, + EndPos: 1534, + }, + }, + Value: []byte("BAR"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 67, + EndLine: 67, + StartPos: 1537, + EndPos: 1538, + }, + }, + Value: []byte("2"), }, }, }, }, - &stmt.While{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1542, - EndPos: 1565, - }, - Cond: &scalar.Lnumber{ + &ast.StmtWhile{ + Node: ast.Node{ Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1549, - EndPos: 1550, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1552, + StartPos: 1542, EndPos: 1565, }, - Stmts: []node.Node{ - &stmt.Continue{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1554, - EndPos: 1563, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1549, + EndPos: 1550, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1552, + EndPos: 1565, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtContinue{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 68, + EndLine: 68, + StartPos: 1554, + EndPos: 1563, + }, }, }, }, }, }, - &stmt.While{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1568, - EndPos: 1593, - }, - Cond: &scalar.Lnumber{ + &ast.StmtWhile{ + Node: ast.Node{ Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1575, - EndPos: 1576, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1578, + StartPos: 1568, EndPos: 1593, }, - Stmts: []node.Node{ - &stmt.Continue{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1580, - EndPos: 1591, - }, - Expr: &scalar.Lnumber{ + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1575, + EndPos: 1576, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1578, + EndPos: 1593, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtContinue{ + Node: ast.Node{ Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1589, - EndPos: 1590, + StartPos: 1580, + EndPos: 1591, }, - Value: "2", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 69, + EndLine: 69, + StartPos: 1589, + EndPos: 1590, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.While{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1596, - EndPos: 1622, - }, - Cond: &scalar.Lnumber{ + &ast.StmtWhile{ + Node: ast.Node{ Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1603, - EndPos: 1604, - }, - Value: "1", - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1606, + StartPos: 1596, EndPos: 1622, }, - Stmts: []node.Node{ - &stmt.Continue{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1608, - EndPos: 1620, - }, - Expr: &scalar.Lnumber{ + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1603, + EndPos: 1604, + }, + }, + Value: []byte("1"), + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1606, + EndPos: 1622, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtContinue{ + Node: ast.Node{ Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1617, - EndPos: 1618, + StartPos: 1608, + EndPos: 1620, }, - Value: "3", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 70, + EndLine: 70, + StartPos: 1617, + EndPos: 1618, + }, + }, + Value: []byte("3"), }, }, }, }, }, - &stmt.Declare{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1625, - EndPos: 1642, + &ast.StmtDeclare{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1625, + EndPos: 1642, + }, }, Alt: false, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1633, - EndPos: 1640, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 71, EndLine: 71, StartPos: 1633, - EndPos: 1638, - }, - Value: "ticks", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1639, EndPos: 1640, }, - Value: "1", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1633, + EndPos: 1638, + }, + }, + Value: []byte("ticks"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1639, + EndPos: 1640, + }, + }, + Value: []byte("1"), }, }, }, - Stmt: &stmt.Nop{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1641, - EndPos: 1642, + Stmt: &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 71, + EndLine: 71, + StartPos: 1641, + EndPos: 1642, + }, }, }, }, - &stmt.Declare{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1645, - EndPos: 1680, + &ast.StmtDeclare{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1645, + EndPos: 1680, + }, }, Alt: false, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1653, - EndPos: 1660, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 72, EndLine: 72, StartPos: 1653, - EndPos: 1658, - }, - Value: "ticks", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1659, EndPos: 1660, }, - Value: "1", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1653, + EndPos: 1658, + }, + }, + Value: []byte("ticks"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1659, + EndPos: 1660, + }, + }, + Value: []byte("1"), }, }, - &stmt.Constant{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1662, - EndPos: 1676, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 72, EndLine: 72, StartPos: 1662, - EndPos: 1674, - }, - Value: "strict_types", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1675, EndPos: 1676, }, - Value: "1", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1662, + EndPos: 1674, + }, + }, + Value: []byte("strict_types"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1675, + EndPos: 1676, + }, + }, + Value: []byte("1"), }, }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1678, - EndPos: 1680, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 72, + EndLine: 72, + StartPos: 1678, + EndPos: 1680, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Declare{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1683, - EndPos: 1712, + &ast.StmtDeclare{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1683, + EndPos: 1712, + }, }, Alt: true, - Consts: []node.Node{ - &stmt.Constant{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1691, - EndPos: 1698, - }, - PhpDocComment: "", - ConstantName: &node.Identifier{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ Position: &position.Position{ StartLine: 73, EndLine: 73, StartPos: 1691, - EndPos: 1696, - }, - Value: "ticks", - }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1697, EndPos: 1698, }, - Value: "1", + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1691, + EndPos: 1696, + }, + }, + Value: []byte("ticks"), + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 73, + EndLine: 73, + StartPos: 1697, + EndPos: 1698, + }, + }, + Value: []byte("1"), }, }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - Stmts: []node.Node{}, - }, - }, - &stmt.Do{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1715, - EndPos: 1730, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1718, - EndPos: 1720, - }, - Stmts: []node.Node{}, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1727, - EndPos: 1728, - }, - Value: "1", - }, - }, - &stmt.Echo{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1733, - EndPos: 1744, - }, - Exprs: []node.Node{ - &expr.Variable{ + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1738, - EndPos: 1740, + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, }, - VarName: &node.Identifier{ + }, + Stmts: []ast.Vertex{}, + }, + }, + &ast.StmtDo{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1715, + EndPos: 1730, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1718, + EndPos: 1720, + }, + }, + Stmts: []ast.Vertex{}, + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 74, + EndLine: 74, + StartPos: 1727, + EndPos: 1728, + }, + }, + Value: []byte("1"), + }, + }, + &ast.StmtEcho{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1733, + EndPos: 1744, + }, + }, + Exprs: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 75, EndLine: 75, StartPos: 1738, EndPos: 1740, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1738, + EndPos: 1740, + }, + }, + Value: []byte("a"), }, }, - &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1742, - EndPos: 1743, + &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 75, + EndLine: 75, + StartPos: 1742, + EndPos: 1743, + }, }, - Value: "1", + Value: []byte("1"), }, }, }, - &stmt.Echo{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1747, - EndPos: 1756, + &ast.StmtEcho{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1747, + EndPos: 1756, + }, }, - Exprs: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1752, - EndPos: 1754, - }, - VarName: &node.Identifier{ + Exprs: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 76, EndLine: 76, StartPos: 1752, EndPos: 1754, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 76, + EndLine: 76, + StartPos: 1752, + EndPos: 1754, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.For{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1759, - EndPos: 1794, + &ast.StmtFor{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1759, + EndPos: 1794, + }, }, - Init: []node.Node{ - &assign.Assign{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1763, - EndPos: 1769, - }, - Variable: &expr.Variable{ + Init: []ast.Vertex{ + &ast.ExprAssign{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1763, - EndPos: 1765, + EndPos: 1769, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1763, EndPos: 1765, }, - Value: "i", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1763, + EndPos: 1765, + }, + }, + Value: []byte("i"), }, }, - Expression: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1768, - EndPos: 1769, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1768, + EndPos: 1769, + }, }, - Value: "0", + Value: []byte("0"), }, }, }, - Cond: []node.Node{ - &binary.Smaller{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1771, - EndPos: 1778, - }, - Left: &expr.Variable{ + Cond: []ast.Vertex{ + &ast.ExprBinarySmaller{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1771, - EndPos: 1773, + EndPos: 1778, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1771, EndPos: 1773, }, - Value: "i", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1771, + EndPos: 1773, + }, + }, + Value: []byte("i"), }, }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1776, - EndPos: 1778, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1776, + EndPos: 1778, + }, }, - Value: "10", + Value: []byte("10"), }, }, }, - Loop: []node.Node{ - &expr.PostInc{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1780, - EndPos: 1784, - }, - Variable: &expr.Variable{ + Loop: []ast.Vertex{ + &ast.ExprPostInc{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1780, - EndPos: 1782, + EndPos: 1784, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1780, EndPos: 1782, }, - Value: "i", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1780, + EndPos: 1782, + }, + }, + Value: []byte("i"), }, }, }, - &expr.PostInc{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1786, - EndPos: 1790, - }, - Variable: &expr.Variable{ + &ast.ExprPostInc{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1786, - EndPos: 1788, + EndPos: 1790, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 77, EndLine: 77, StartPos: 1786, EndPos: 1788, }, - Value: "i", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1786, + EndPos: 1788, + }, + }, + Value: []byte("i"), }, }, }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1792, - EndPos: 1794, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 77, + EndLine: 77, + StartPos: 1792, + EndPos: 1794, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.AltFor{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1797, - EndPos: 1827, + &ast.StmtAltFor{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1797, + EndPos: 1827, + }, }, - Cond: []node.Node{ - &binary.Smaller{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1803, - EndPos: 1810, - }, - Left: &expr.Variable{ + Cond: []ast.Vertex{ + &ast.ExprBinarySmaller{ + Node: ast.Node{ Position: &position.Position{ StartLine: 78, EndLine: 78, StartPos: 1803, - EndPos: 1805, + EndPos: 1810, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 78, EndLine: 78, StartPos: 1803, EndPos: 1805, }, - Value: "i", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1803, + EndPos: 1805, + }, + }, + Value: []byte("i"), }, }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1808, - EndPos: 1810, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1808, + EndPos: 1810, + }, }, - Value: "10", + Value: []byte("10"), }, }, }, - Loop: []node.Node{ - &expr.PostInc{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1812, - EndPos: 1816, - }, - Variable: &expr.Variable{ + Loop: []ast.Vertex{ + &ast.ExprPostInc{ + Node: ast.Node{ Position: &position.Position{ StartLine: 78, EndLine: 78, StartPos: 1812, - EndPos: 1814, + EndPos: 1816, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 78, EndLine: 78, StartPos: 1812, EndPos: 1814, }, - Value: "i", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 78, + EndLine: 78, + StartPos: 1812, + EndPos: 1814, + }, + }, + Value: []byte("i"), }, }, }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1830, - EndPos: 1851, - }, - Expr: &expr.Variable{ + &ast.StmtForeach{ + Node: ast.Node{ Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1839, - EndPos: 1841, + StartPos: 1830, + EndPos: 1851, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 79, EndLine: 79, StartPos: 1839, EndPos: 1841, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1839, + EndPos: 1841, + }, + }, + Value: []byte("a"), }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1845, - EndPos: 1847, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 79, EndLine: 79, StartPos: 1845, EndPos: 1847, }, - Value: "v", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1845, + EndPos: 1847, + }, + }, + Value: []byte("v"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1849, - EndPos: 1851, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 79, + EndLine: 79, + StartPos: 1849, + EndPos: 1851, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1854, - EndPos: 1875, - }, - Expr: &expr.ShortArray{ + &ast.StmtForeach{ + Node: ast.Node{ Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1863, - EndPos: 1865, + StartPos: 1854, + EndPos: 1875, }, - Items: []node.Node{}, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1869, - EndPos: 1871, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1863, + EndPos: 1865, + }, }, - VarName: &node.Identifier{ + Items: []ast.Vertex{}, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 80, EndLine: 80, StartPos: 1869, EndPos: 1871, }, - Value: "v", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1869, + EndPos: 1871, + }, + }, + Value: []byte("v"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1873, - EndPos: 1875, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 80, + EndLine: 80, + StartPos: 1873, + EndPos: 1875, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.AltForeach{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1878, - EndPos: 1910, - }, - Expr: &expr.Variable{ + &ast.StmtAltForeach{ + Node: ast.Node{ Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1887, - EndPos: 1889, + StartPos: 1878, + EndPos: 1910, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 81, EndLine: 81, StartPos: 1887, EndPos: 1889, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1887, + EndPos: 1889, + }, + }, + Value: []byte("a"), }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1893, - EndPos: 1895, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 81, EndLine: 81, StartPos: 1893, EndPos: 1895, }, - Value: "v", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 81, + EndLine: 81, + StartPos: 1893, + EndPos: 1895, + }, + }, + Value: []byte("v"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: -1, + EndLine: -1, + StartPos: -1, + EndPos: -1, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1913, - EndPos: 1940, - }, - Expr: &expr.Variable{ + &ast.StmtForeach{ + Node: ast.Node{ Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1922, - EndPos: 1924, + StartPos: 1913, + EndPos: 1940, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 82, EndLine: 82, StartPos: 1922, EndPos: 1924, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1922, + EndPos: 1924, + }, + }, + Value: []byte("a"), }, }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1928, - EndPos: 1930, - }, - VarName: &node.Identifier{ + Key: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 82, EndLine: 82, StartPos: 1928, EndPos: 1930, }, - Value: "k", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1928, + EndPos: 1930, + }, + }, + Value: []byte("k"), }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1934, - EndPos: 1936, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 82, EndLine: 82, StartPos: 1934, EndPos: 1936, }, - Value: "v", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1934, + EndPos: 1936, + }, + }, + Value: []byte("v"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1938, - EndPos: 1940, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 82, + EndLine: 82, + StartPos: 1938, + EndPos: 1940, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1943, - EndPos: 1970, - }, - Expr: &expr.ShortArray{ + &ast.StmtForeach{ + Node: ast.Node{ Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1952, - EndPos: 1954, + StartPos: 1943, + EndPos: 1970, }, - Items: []node.Node{}, }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1958, - EndPos: 1960, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1952, + EndPos: 1954, + }, }, - VarName: &node.Identifier{ + Items: []ast.Vertex{}, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 83, EndLine: 83, StartPos: 1958, EndPos: 1960, }, - Value: "k", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1958, + EndPos: 1960, + }, + }, + Value: []byte("k"), }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1964, - EndPos: 1966, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 83, EndLine: 83, StartPos: 1964, EndPos: 1966, }, - Value: "v", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1964, + EndPos: 1966, + }, + }, + Value: []byte("v"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1968, - EndPos: 1970, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 83, + EndLine: 83, + StartPos: 1968, + EndPos: 1970, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1973, - EndPos: 2001, - }, - Expr: &expr.Variable{ + &ast.StmtForeach{ + Node: ast.Node{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1982, - EndPos: 1984, + StartPos: 1973, + EndPos: 2001, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 84, EndLine: 84, StartPos: 1982, EndPos: 1984, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1982, + EndPos: 1984, + }, + }, + Value: []byte("a"), }, }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1988, - EndPos: 1990, - }, - VarName: &node.Identifier{ + Key: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 84, EndLine: 84, StartPos: 1988, EndPos: 1990, }, - Value: "k", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1988, + EndPos: 1990, + }, + }, + Value: []byte("k"), }, }, - Variable: &expr.Reference{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1994, - EndPos: 1997, - }, - Variable: &expr.Variable{ + Var: &ast.ExprReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1995, + StartPos: 1994, EndPos: 1997, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 84, EndLine: 84, StartPos: 1995, EndPos: 1997, }, - Value: "v", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1995, + EndPos: 1997, + }, + }, + Value: []byte("v"), }, }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1999, - EndPos: 2001, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 84, + EndLine: 84, + StartPos: 1999, + EndPos: 2001, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 2004, - EndPos: 2037, - }, - Expr: &expr.Variable{ + &ast.StmtForeach{ + Node: ast.Node{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2013, - EndPos: 2015, + StartPos: 2004, + EndPos: 2037, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 85, EndLine: 85, StartPos: 2013, EndPos: 2015, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2013, + EndPos: 2015, + }, + }, + Value: []byte("a"), }, }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 2019, - EndPos: 2021, - }, - VarName: &node.Identifier{ + Key: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 85, EndLine: 85, StartPos: 2019, EndPos: 2021, }, - Value: "k", }, - }, - Variable: &expr.List{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 2025, - EndPos: 2033, - }, - Items: []node.Node{ - &expr.ArrayItem{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2030, - EndPos: 2032, + StartPos: 2019, + EndPos: 2021, }, - Val: &expr.Variable{ + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2025, + EndPos: 2033, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 85, EndLine: 85, StartPos: 2030, EndPos: 2032, }, - VarName: &node.Identifier{ + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 85, EndLine: 85, StartPos: 2030, EndPos: 2032, }, - Value: "v", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2030, + EndPos: 2032, + }, + }, + Value: []byte("v"), }, }, }, }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 2035, - EndPos: 2037, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 85, + EndLine: 85, + StartPos: 2035, + EndPos: 2037, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 2040, - EndPos: 2057, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ + &ast.StmtFunction{ + Node: ast.Node{ Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 2049, - EndPos: 2052, + StartPos: 2040, + EndPos: 2057, }, - Value: "foo", }, - Stmts: []node.Node{}, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 86, + EndLine: 86, + StartPos: 2049, + EndPos: 2052, + }, + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{}, }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 88, - EndLine: 92, - StartPos: 2061, - EndPos: 2132, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ + &ast.StmtFunction{ + Node: ast.Node{ Position: &position.Position{ StartLine: 88, - EndLine: 88, - StartPos: 2070, - EndPos: 2073, + EndLine: 92, + StartPos: 2061, + EndPos: 2132, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.Function{ + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 2081, - EndPos: 2098, + StartLine: 88, + EndLine: 88, + StartPos: 2070, + EndPos: 2073, }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtFunction{ + Node: ast.Node{ Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2090, - EndPos: 2093, + StartPos: 2081, + EndPos: 2098, }, - Value: "bar", }, - Stmts: []node.Node{}, + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 89, + EndLine: 89, + StartPos: 2090, + EndPos: 2093, + }, + }, + Value: []byte("bar"), + }, + Stmts: []ast.Vertex{}, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 2102, - EndPos: 2114, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2108, - EndPos: 2111, + StartPos: 2102, + EndPos: 2114, }, - Value: "Baz", }, - Stmts: []node.Node{}, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 90, + EndLine: 90, + StartPos: 2108, + EndPos: 2111, + }, + }, + Value: []byte("Baz"), + }, + Stmts: []ast.Vertex{}, }, - &stmt.Return{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 2118, - EndPos: 2128, - }, - Expr: &expr.Variable{ + &ast.StmtReturn{ + Node: ast.Node{ Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2125, - EndPos: 2127, + StartPos: 2118, + EndPos: 2128, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 91, EndLine: 91, StartPos: 2125, EndPos: 2127, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 91, + EndLine: 91, + StartPos: 2125, + EndPos: 2127, + }, + }, + Value: []byte("a"), }, }, }, }, }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2138, - EndPos: 2183, - }, - ReturnsRef: false, - PhpDocComment: "", - FunctionName: &node.Identifier{ + &ast.StmtFunction{ + Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2147, - EndPos: 2150, + StartPos: 2138, + EndPos: 2183, }, - Value: "foo", }, - Params: []node.Node{ - &node.Parameter{ + ReturnsRef: false, + FunctionName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2151, - EndPos: 2159, + StartPos: 2147, + EndPos: 2150, }, - Variadic: false, - ByRef: false, - VariableType: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, StartPos: 2151, - EndPos: 2156, - }, - Value: "array", - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2157, EndPos: 2159, }, - VarName: &node.Identifier{ + }, + Variadic: false, + ByRef: false, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2151, + EndPos: 2156, + }, + }, + Value: []byte("array"), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, StartPos: 2157, EndPos: 2159, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2157, + EndPos: 2159, + }, + }, + Value: []byte("a"), }, }, }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2161, - EndPos: 2172, - }, - ByRef: false, - Variadic: false, - VariableType: &node.Identifier{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, StartPos: 2161, - EndPos: 2169, - }, - Value: "callable", - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2170, EndPos: 2172, }, - VarName: &node.Identifier{ + }, + ByRef: false, + Variadic: false, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2161, + EndPos: 2169, + }, + }, + Value: []byte("callable"), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, StartPos: 2170, EndPos: 2172, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2170, + EndPos: 2172, + }, + }, + Value: []byte("b"), }, }, }, }, - Stmts: []node.Node{ - &stmt.Return{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2175, - EndPos: 2182, + Stmts: []ast.Vertex{ + &ast.StmtReturn{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 94, + EndLine: 94, + StartPos: 2175, + EndPos: 2182, + }, }, }, }, }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2186, - EndPos: 2213, - }, - ReturnsRef: true, - PhpDocComment: "", - FunctionName: &node.Identifier{ + &ast.StmtFunction{ + Node: ast.Node{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2196, - EndPos: 2199, + StartPos: 2186, + EndPos: 2213, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.Return{ + ReturnsRef: true, + FunctionName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2203, - EndPos: 2212, + StartPos: 2196, + EndPos: 2199, }, - Expr: &scalar.Lnumber{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtReturn{ + Node: ast.Node{ Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2210, - EndPos: 2211, + StartPos: 2203, + EndPos: 2212, }, - Value: "1", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 95, + EndLine: 95, + StartPos: 2210, + EndPos: 2211, + }, + }, + Value: []byte("1"), }, }, }, }, - &stmt.Function{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2216, - EndPos: 2234, - }, - ReturnsRef: true, - PhpDocComment: "", - FunctionName: &node.Identifier{ + &ast.StmtFunction{ + Node: ast.Node{ Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2226, - EndPos: 2229, + StartPos: 2216, + EndPos: 2234, }, - Value: "foo", }, - Stmts: []node.Node{}, - }, - &stmt.Global{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2237, - EndPos: 2266, - }, - Vars: []node.Node{ - &expr.Variable{ + ReturnsRef: true, + FunctionName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2244, - EndPos: 2246, + StartLine: 96, + EndLine: 96, + StartPos: 2226, + EndPos: 2229, }, - VarName: &node.Identifier{ + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtGlobal{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2237, + EndPos: 2266, + }, + }, + Vars: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 97, EndLine: 97, StartPos: 2244, EndPos: 2246, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2244, + EndPos: 2246, + }, + }, + Value: []byte("a"), }, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2248, - EndPos: 2250, - }, - VarName: &node.Identifier{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 97, EndLine: 97, StartPos: 2248, EndPos: 2250, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2248, + EndPos: 2250, + }, + }, + Value: []byte("b"), }, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2252, - EndPos: 2255, - }, - VarName: &expr.Variable{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2253, + StartPos: 2252, EndPos: 2255, }, - VarName: &node.Identifier{ + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 97, EndLine: 97, StartPos: 2253, EndPos: 2255, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2253, + EndPos: 2255, + }, + }, + Value: []byte("c"), }, }, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2257, - EndPos: 2265, - }, - VarName: &expr.FunctionCall{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2259, - EndPos: 2264, + StartPos: 2257, + EndPos: 2265, }, - Function: &name.Name{ + }, + VarName: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 97, EndLine: 97, StartPos: 2259, - EndPos: 2262, + EndPos: 2264, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2259, - EndPos: 2262, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2259, + EndPos: 2262, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2259, + EndPos: 2262, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2262, - EndPos: 2264, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 97, + EndLine: 97, + StartPos: 2262, + EndPos: 2264, + }, }, }, }, }, }, }, - &stmt.Label{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2269, - EndPos: 2271, - }, - LabelName: &node.Identifier{ + &ast.StmtLabel{ + Node: ast.Node{ Position: &position.Position{ StartLine: 98, EndLine: 98, StartPos: 2269, - EndPos: 2270, + EndPos: 2271, }, - Value: "a", + }, + LabelName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 98, + EndLine: 98, + StartPos: 2269, + EndPos: 2270, + }, + }, + Value: []byte("a"), }, }, - &stmt.Goto{ - Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2275, - EndPos: 2282, - }, - Label: &node.Identifier{ + &ast.StmtGoto{ + Node: ast.Node{ Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2280, - EndPos: 2281, + StartPos: 2275, + EndPos: 2282, }, - Value: "a", + }, + Label: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 99, + EndLine: 99, + StartPos: 2280, + EndPos: 2281, + }, + }, + Value: []byte("a"), }, }, - &stmt.If{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2285, - EndPos: 2295, - }, - Cond: &expr.Variable{ + &ast.StmtIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2289, - EndPos: 2291, + StartPos: 2285, + EndPos: 2295, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 100, EndLine: 100, StartPos: 2289, EndPos: 2291, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2289, + EndPos: 2291, + }, + }, + Value: []byte("a"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2293, - EndPos: 2295, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 100, + EndLine: 100, + StartPos: 2293, + EndPos: 2295, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.If{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2298, - EndPos: 2323, - }, - Cond: &expr.Variable{ + &ast.StmtIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2302, - EndPos: 2304, + StartPos: 2298, + EndPos: 2323, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 101, EndLine: 101, StartPos: 2302, EndPos: 2304, }, - Value: "a", }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2306, - EndPos: 2308, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2309, - EndPos: 2323, - }, - Cond: &expr.Variable{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2317, - EndPos: 2319, + StartPos: 2302, + EndPos: 2304, }, - VarName: &node.Identifier{ + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2306, + EndPos: 2308, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2309, + EndPos: 2323, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 101, EndLine: 101, StartPos: 2317, EndPos: 2319, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2317, + EndPos: 2319, + }, + }, + Value: []byte("b"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2321, - EndPos: 2323, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 101, + EndLine: 101, + StartPos: 2321, + EndPos: 2323, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.If{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2326, - EndPos: 2344, - }, - Cond: &expr.Variable{ + &ast.StmtIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2330, - EndPos: 2332, + StartPos: 2326, + EndPos: 2344, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 102, EndLine: 102, StartPos: 2330, EndPos: 2332, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2330, + EndPos: 2332, + }, + }, + Value: []byte("a"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2334, - EndPos: 2336, - }, - Stmts: []node.Node{}, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2337, - EndPos: 2344, - }, - Stmt: &stmt.StmtList{ + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2342, + StartPos: 2334, + EndPos: 2336, + }, + }, + Stmts: []ast.Vertex{}, + }, + Else: &ast.StmtElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2337, EndPos: 2344, }, - Stmts: []node.Node{}, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 102, + EndLine: 102, + StartPos: 2342, + EndPos: 2344, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, - &stmt.If{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2347, - EndPos: 2395, - }, - Cond: &expr.Variable{ + &ast.StmtIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2351, - EndPos: 2353, + StartPos: 2347, + EndPos: 2395, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 103, EndLine: 103, StartPos: 2351, EndPos: 2353, }, - Value: "a", }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2355, - EndPos: 2357, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2358, - EndPos: 2372, - }, - Cond: &expr.Variable{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2366, - EndPos: 2368, + StartPos: 2351, + EndPos: 2353, }, - VarName: &node.Identifier{ + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2355, + EndPos: 2357, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2358, + EndPos: 2372, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 103, EndLine: 103, StartPos: 2366, EndPos: 2368, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2366, + EndPos: 2368, + }, + }, + Value: []byte("b"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2370, - EndPos: 2372, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2370, + EndPos: 2372, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2373, - EndPos: 2387, - }, - Cond: &expr.Variable{ + &ast.StmtElseIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2381, - EndPos: 2383, + StartPos: 2373, + EndPos: 2387, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 103, EndLine: 103, StartPos: 2381, EndPos: 2383, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2381, + EndPos: 2383, + }, + }, + Value: []byte("c"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2385, - EndPos: 2387, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2385, + EndPos: 2387, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2388, - EndPos: 2395, - }, - Stmt: &stmt.StmtList{ + Else: &ast.StmtElse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2393, + StartPos: 2388, EndPos: 2395, }, - Stmts: []node.Node{}, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 103, + EndLine: 103, + StartPos: 2393, + EndPos: 2395, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, - &stmt.If{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2398, - EndPos: 2447, - }, - Cond: &expr.Variable{ + &ast.StmtIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2402, - EndPos: 2404, + StartPos: 2398, + EndPos: 2447, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, StartPos: 2402, EndPos: 2404, }, - Value: "a", }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2406, - EndPos: 2408, - }, - Stmts: []node.Node{}, - }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2409, - EndPos: 2423, - }, - Cond: &expr.Variable{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2417, - EndPos: 2419, + StartPos: 2402, + EndPos: 2404, }, - VarName: &node.Identifier{ + }, + Value: []byte("a"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2406, + EndPos: 2408, + }, + }, + Stmts: []ast.Vertex{}, + }, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2409, + EndPos: 2423, + }, + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, StartPos: 2417, EndPos: 2419, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2417, + EndPos: 2419, + }, + }, + Value: []byte("b"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2421, - EndPos: 2423, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2421, + EndPos: 2423, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2424, - EndPos: 2447, - }, - Stmt: &stmt.If{ + Else: &ast.StmtElse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2429, + StartPos: 2424, EndPos: 2447, }, - Cond: &expr.Variable{ + }, + Stmt: &ast.StmtIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2433, - EndPos: 2435, + StartPos: 2429, + EndPos: 2447, }, - VarName: &node.Identifier{ + }, + Cond: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, StartPos: 2433, EndPos: 2435, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2433, + EndPos: 2435, + }, + }, + Value: []byte("c"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2437, - EndPos: 2439, - }, - Stmts: []node.Node{}, - }, - Else: &stmt.Else{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2440, - EndPos: 2447, - }, - Stmt: &stmt.StmtList{ + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2445, + StartPos: 2437, + EndPos: 2439, + }, + }, + Stmts: []ast.Vertex{}, + }, + Else: &ast.StmtElse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2440, EndPos: 2447, }, - Stmts: []node.Node{}, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 104, + EndLine: 104, + StartPos: 2445, + EndPos: 2447, + }, + }, + Stmts: []ast.Vertex{}, }, }, }, }, }, - &stmt.Nop{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2450, - EndPos: 2452, + &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2450, + EndPos: 2452, + }, }, }, - &stmt.InlineHtml{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2452, - EndPos: 2465, + &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 105, + EndLine: 105, + StartPos: 2452, + EndPos: 2465, + }, }, - Value: "
", + Value: []byte("
"), }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2470, - EndPos: 2486, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ + &ast.StmtInterface{ + Node: ast.Node{ Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2480, - EndPos: 2483, + StartPos: 2470, + EndPos: 2486, }, - Value: "Foo", }, - Stmts: []node.Node{}, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 106, + EndLine: 106, + StartPos: 2480, + EndPos: 2483, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{}, }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2489, - EndPos: 2517, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ + &ast.StmtInterface{ + Node: ast.Node{ Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2499, - EndPos: 2502, + StartPos: 2489, + EndPos: 2517, }, - Value: "Foo", }, - Extends: &stmt.InterfaceExtends{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2503, - EndPos: 2514, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2499, + EndPos: 2502, + }, }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2511, - EndPos: 2514, + Value: []byte("Foo"), + }, + Extends: &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2503, + EndPos: 2514, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2511, + EndPos: 2514, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2511, - EndPos: 2514, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 107, + EndLine: 107, + StartPos: 2511, + EndPos: 2514, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Interface{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2520, - EndPos: 2553, - }, - PhpDocComment: "", - InterfaceName: &node.Identifier{ + &ast.StmtInterface{ + Node: ast.Node{ Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2530, - EndPos: 2533, + StartPos: 2520, + EndPos: 2553, }, - Value: "Foo", }, - Extends: &stmt.InterfaceExtends{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2534, - EndPos: 2550, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2530, + EndPos: 2533, + }, }, - InterfaceNames: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2542, - EndPos: 2545, + Value: []byte("Foo"), + }, + Extends: &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2534, + EndPos: 2550, + }, + }, + InterfaceNames: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2542, + EndPos: 2545, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2542, - EndPos: 2545, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2542, + EndPos: 2545, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, - &name.Name{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2547, - EndPos: 2550, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2547, + EndPos: 2550, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2547, - EndPos: 2550, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 108, + EndLine: 108, + StartPos: 2547, + EndPos: 2550, + }, }, - Value: "Baz", + Value: []byte("Baz"), }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Namespace{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2556, - EndPos: 2570, - }, - NamespaceName: &name.Name{ + &ast.StmtNamespace{ + Node: ast.Node{ Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2566, - EndPos: 2569, + StartPos: 2556, + EndPos: 2570, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2566, - EndPos: 2569, + }, + NamespaceName: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2566, + EndPos: 2569, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 109, + EndLine: 109, + StartPos: 2566, + EndPos: 2569, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, - &stmt.Namespace{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2573, - EndPos: 2593, - }, - NamespaceName: &name.Name{ + &ast.StmtNamespace{ + Node: ast.Node{ Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2583, - EndPos: 2590, + StartPos: 2573, + EndPos: 2593, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2583, - EndPos: 2586, - }, - Value: "Foo", + }, + NamespaceName: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2583, + EndPos: 2590, }, - &name.NamePart{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2587, - EndPos: 2590, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2583, + EndPos: 2586, + }, }, - Value: "Bar", + Value: []byte("Foo"), + }, + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 110, + EndLine: 110, + StartPos: 2587, + EndPos: 2590, + }, + }, + Value: []byte("Bar"), }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Namespace{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2596, - EndPos: 2608, + &ast.StmtNamespace{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 111, + EndLine: 111, + StartPos: 2596, + EndPos: 2608, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2611, - EndPos: 2630, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2617, - EndPos: 2620, + StartPos: 2611, + EndPos: 2630, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.PropertyList{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2622, - EndPos: 2629, + StartPos: 2617, + EndPos: 2620, }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2622, - EndPos: 2625, - }, - Value: "var", + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtPropertyList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2622, + EndPos: 2629, }, }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2626, - EndPos: 2628, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2622, + EndPos: 2625, + }, }, - PhpDocComment: "", - Variable: &expr.Variable{ + Value: []byte("var"), + }, + }, + Properties: []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ Position: &position.Position{ StartLine: 112, EndLine: 112, StartPos: 2626, EndPos: 2628, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 112, EndLine: 112, StartPos: 2626, EndPos: 2628, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 112, + EndLine: 112, + StartPos: 2626, + EndPos: 2628, + }, + }, + Value: []byte("a"), }, }, }, @@ -5669,221 +6797,263 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2633, - EndPos: 2670, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2639, - EndPos: 2642, + StartPos: 2633, + EndPos: 2670, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.PropertyList{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2644, - EndPos: 2669, + StartPos: 2639, + EndPos: 2642, }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2644, - EndPos: 2650, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2651, - EndPos: 2657, - }, - Value: "static", + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtPropertyList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2644, + EndPos: 2669, }, }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2658, - EndPos: 2660, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2644, + EndPos: 2650, + }, }, - PhpDocComment: "", - Variable: &expr.Variable{ + Value: []byte("public"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2651, + EndPos: 2657, + }, + }, + Value: []byte("static"), + }, + }, + Properties: []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ Position: &position.Position{ StartLine: 113, EndLine: 113, StartPos: 2658, EndPos: 2660, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 113, EndLine: 113, StartPos: 2658, EndPos: 2660, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2658, + EndPos: 2660, + }, + }, + Value: []byte("a"), }, }, }, - &stmt.Property{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2662, - EndPos: 2668, - }, - PhpDocComment: "", - Variable: &expr.Variable{ + &ast.StmtProperty{ + Node: ast.Node{ Position: &position.Position{ StartLine: 113, EndLine: 113, StartPos: 2662, - EndPos: 2664, + EndPos: 2668, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 113, EndLine: 113, StartPos: 2662, EndPos: 2664, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2662, + EndPos: 2664, + }, + }, + Value: []byte("b"), }, }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2667, - EndPos: 2668, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 113, + EndLine: 113, + StartPos: 2667, + EndPos: 2668, + }, }, - Value: "1", + Value: []byte("1"), }, }, }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2673, - EndPos: 2710, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2679, - EndPos: 2682, + StartPos: 2673, + EndPos: 2710, }, - Value: "foo", }, - Stmts: []node.Node{ - &stmt.PropertyList{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2684, - EndPos: 2709, + StartPos: 2679, + EndPos: 2682, }, - Modifiers: []node.Node{ - &node.Identifier{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2684, - EndPos: 2690, - }, - Value: "public", - }, - &node.Identifier{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2691, - EndPos: 2697, - }, - Value: "static", + }, + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtPropertyList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2684, + EndPos: 2709, }, }, - Properties: []node.Node{ - &stmt.Property{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2698, - EndPos: 2704, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2684, + EndPos: 2690, + }, }, - PhpDocComment: "", - Variable: &expr.Variable{ + Value: []byte("public"), + }, + &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2691, + EndPos: 2697, + }, + }, + Value: []byte("static"), + }, + }, + Properties: []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ Position: &position.Position{ StartLine: 114, EndLine: 114, StartPos: 2698, - EndPos: 2700, + EndPos: 2704, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 114, EndLine: 114, StartPos: 2698, EndPos: 2700, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2698, + EndPos: 2700, + }, + }, + Value: []byte("a"), }, }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2703, - EndPos: 2704, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2703, + EndPos: 2704, + }, }, - Value: "1", + Value: []byte("1"), }, }, - &stmt.Property{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2706, - EndPos: 2708, - }, - PhpDocComment: "", - Variable: &expr.Variable{ + &ast.StmtProperty{ + Node: ast.Node{ Position: &position.Position{ StartLine: 114, EndLine: 114, StartPos: 2706, EndPos: 2708, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 114, EndLine: 114, StartPos: 2706, EndPos: 2708, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 114, + EndLine: 114, + StartPos: 2706, + EndPos: 2708, + }, + }, + Value: []byte("b"), }, }, }, @@ -5891,353 +7061,433 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2713, - EndPos: 2731, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2713, + EndPos: 2731, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2720, - EndPos: 2722, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 115, EndLine: 115, StartPos: 2720, EndPos: 2722, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 115, EndLine: 115, StartPos: 2720, EndPos: 2722, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2720, + EndPos: 2722, + }, + }, + Value: []byte("a"), }, }, }, - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2724, - EndPos: 2730, - }, - Variable: &expr.Variable{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 115, EndLine: 115, StartPos: 2724, - EndPos: 2726, + EndPos: 2730, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 115, EndLine: 115, StartPos: 2724, EndPos: 2726, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2724, + EndPos: 2726, + }, + }, + Value: []byte("b"), }, }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2729, - EndPos: 2730, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 115, + EndLine: 115, + StartPos: 2729, + EndPos: 2730, + }, }, - Value: "1", + Value: []byte("1"), }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2734, - EndPos: 2752, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2734, + EndPos: 2752, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2741, - EndPos: 2747, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 116, EndLine: 116, StartPos: 2741, - EndPos: 2743, + EndPos: 2747, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 116, EndLine: 116, StartPos: 2741, EndPos: 2743, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2741, + EndPos: 2743, + }, + }, + Value: []byte("a"), }, }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2746, - EndPos: 2747, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2746, + EndPos: 2747, + }, }, - Value: "1", + Value: []byte("1"), }, }, - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2749, - EndPos: 2751, - }, - Variable: &expr.Variable{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 116, EndLine: 116, StartPos: 2749, EndPos: 2751, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 116, EndLine: 116, StartPos: 2749, EndPos: 2751, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 116, + EndLine: 116, + StartPos: 2749, + EndPos: 2751, + }, + }, + Value: []byte("b"), }, }, }, }, }, - &stmt.AltSwitch{ - Position: &position.Position{ - StartLine: 118, - EndLine: 122, - StartPos: 2756, - EndPos: 2815, - }, - Cond: &scalar.Lnumber{ + &ast.StmtAltSwitch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 118, - EndLine: 118, - StartPos: 2764, - EndPos: 2765, + EndLine: 122, + StartPos: 2756, + EndPos: 2815, }, - Value: "1", }, - CaseList: &stmt.CaseList{ - Position: &position.Position{ - StartLine: 119, - EndLine: -1, - StartPos: 2772, - EndPos: -1, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 118, + EndLine: 118, + StartPos: 2764, + EndPos: 2765, + }, }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 119, - EndLine: -1, - StartPos: 2772, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: -1, + StartPos: 2772, + EndPos: -1, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 119, - EndLine: 119, - StartPos: 2777, - EndPos: 2778, + EndLine: -1, + StartPos: 2772, + EndPos: -1, }, - Value: "1", }, - Stmts: []node.Node{}, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: 119, + StartPos: 2777, + EndPos: 2778, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{}, }, - &stmt.Default{ - Position: &position.Position{ - StartLine: 120, - EndLine: -1, - StartPos: 2783, - EndPos: -1, + &ast.StmtDefault{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: -1, + StartPos: 2783, + EndPos: -1, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 121, - EndLine: -1, - StartPos: 2795, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 121, - EndLine: 121, - StartPos: 2800, - EndPos: 2801, + EndLine: -1, + StartPos: 2795, + EndPos: -1, }, - Value: "2", }, - Stmts: []node.Node{}, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 121, + EndLine: 121, + StartPos: 2800, + EndPos: 2801, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.AltSwitch{ - Position: &position.Position{ - StartLine: 124, - EndLine: 127, - StartPos: 2819, - EndPos: 2867, - }, - Cond: &scalar.Lnumber{ + &ast.StmtAltSwitch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 124, - EndLine: 124, - StartPos: 2827, - EndPos: 2828, + EndLine: 127, + StartPos: 2819, + EndPos: 2867, }, - Value: "1", }, - CaseList: &stmt.CaseList{ - Position: &position.Position{ - StartLine: 125, - EndLine: -1, - StartPos: 2836, - EndPos: -1, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 124, + EndLine: 124, + StartPos: 2827, + EndPos: 2828, + }, }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 125, - EndLine: -1, - StartPos: 2836, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 125, + EndLine: -1, + StartPos: 2836, + EndPos: -1, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 125, - EndLine: 125, - StartPos: 2841, - EndPos: 2842, + EndLine: -1, + StartPos: 2836, + EndPos: -1, }, - Value: "1", }, - Stmts: []node.Node{}, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 125, + EndLine: 125, + StartPos: 2841, + EndPos: 2842, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{}, }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 126, - EndLine: -1, - StartPos: 2847, - EndPos: -1, - }, - Cond: &scalar.Lnumber{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 126, - EndLine: 126, - StartPos: 2852, - EndPos: 2853, + EndLine: -1, + StartPos: 2847, + EndPos: -1, }, - Value: "2", }, - Stmts: []node.Node{}, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 126, + EndLine: 126, + StartPos: 2852, + EndPos: 2853, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{}, }, }, }, }, - &stmt.Switch{ - Position: &position.Position{ - StartLine: 129, - EndLine: 132, - StartPos: 2873, - EndPos: 2925, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 129, - EndLine: 129, - StartPos: 2881, - EndPos: 2882, - }, - Value: "1", - }, - CaseList: &stmt.CaseList{ + &ast.StmtSwitch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 129, EndLine: 132, - StartPos: 2884, + StartPos: 2873, EndPos: 2925, }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2889, - EndPos: 2903, - }, - Cond: &scalar.Lnumber{ + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 129, + EndLine: 129, + StartPos: 2881, + EndPos: 2882, + }, + }, + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 129, + EndLine: 132, + StartPos: 2884, + EndPos: 2925, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2894, - EndPos: 2895, + StartPos: 2889, + EndPos: 2903, }, - Value: "1", }, - Stmts: []node.Node{ - &stmt.Break{ + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2897, - EndPos: 2903, + StartPos: 2894, + EndPos: 2895, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 130, + EndLine: 130, + StartPos: 2897, + EndPos: 2903, + }, }, }, }, }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 131, - EndLine: 131, - StartPos: 2907, - EndPos: 2921, - }, - Cond: &scalar.Lnumber{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2912, - EndPos: 2913, + StartPos: 2907, + EndPos: 2921, }, - Value: "2", }, - Stmts: []node.Node{ - &stmt.Break{ + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2915, - EndPos: 2921, + StartPos: 2912, + EndPos: 2913, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 131, + EndLine: 131, + StartPos: 2915, + EndPos: 2921, + }, }, }, }, @@ -6245,80 +7495,98 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Switch{ - Position: &position.Position{ - StartLine: 134, - EndLine: 137, - StartPos: 2931, - EndPos: 2984, - }, - Cond: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 2939, - EndPos: 2940, - }, - Value: "1", - }, - CaseList: &stmt.CaseList{ + &ast.StmtSwitch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 134, EndLine: 137, - StartPos: 2942, + StartPos: 2931, EndPos: 2984, }, - Cases: []node.Node{ - &stmt.Case{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2948, - EndPos: 2962, - }, - Cond: &scalar.Lnumber{ + }, + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 2939, + EndPos: 2940, + }, + }, + Value: []byte("1"), + }, + CaseList: &ast.StmtCaseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 134, + EndLine: 137, + StartPos: 2942, + EndPos: 2984, + }, + }, + Cases: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2953, - EndPos: 2954, + StartPos: 2948, + EndPos: 2962, }, - Value: "1", }, - Stmts: []node.Node{ - &stmt.Break{ + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2956, - EndPos: 2962, + StartPos: 2953, + EndPos: 2954, + }, + }, + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 2956, + EndPos: 2962, + }, }, }, }, }, - &stmt.Case{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 2966, - EndPos: 2980, - }, - Cond: &scalar.Lnumber{ + &ast.StmtCase{ + Node: ast.Node{ Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2971, - EndPos: 2972, + StartPos: 2966, + EndPos: 2980, }, - Value: "2", }, - Stmts: []node.Node{ - &stmt.Break{ + Cond: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2974, - EndPos: 2980, + StartPos: 2971, + EndPos: 2972, + }, + }, + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 136, + EndLine: 136, + StartPos: 2974, + EndPos: 2980, + }, }, }, }, @@ -6326,288 +7594,346 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Throw{ - Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 2987, - EndPos: 2996, - }, - Expr: &expr.Variable{ + &ast.StmtThrow{ + Node: ast.Node{ Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 2993, - EndPos: 2995, + StartPos: 2987, + EndPos: 2996, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 138, EndLine: 138, StartPos: 2993, EndPos: 2995, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 138, + EndLine: 138, + StartPos: 2993, + EndPos: 2995, + }, + }, + Value: []byte("e"), }, }, }, - &stmt.Trait{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 2999, - EndPos: 3011, - }, - PhpDocComment: "", - TraitName: &node.Identifier{ + &ast.StmtTrait{ + Node: ast.Node{ Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3005, - EndPos: 3008, + StartPos: 2999, + EndPos: 3011, }, - Value: "Foo", }, - Stmts: []node.Node{}, + TraitName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 139, + EndLine: 139, + StartPos: 3005, + EndPos: 3008, + }, + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{}, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3014, - EndPos: 3036, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3020, - EndPos: 3023, + StartPos: 3014, + EndPos: 3036, }, - Value: "Foo", }, - Stmts: []node.Node{ - &stmt.TraitUse{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3026, - EndPos: 3034, + StartPos: 3020, + EndPos: 3023, }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3030, - EndPos: 3033, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 3030, - EndPos: 3033, - }, - Value: "Bar", - }, - }, - }, - }, - TraitAdaptationList: &stmt.Nop{ + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3033, + StartPos: 3026, EndPos: 3034, }, }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3030, + EndPos: 3033, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3030, + EndPos: 3033, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 3033, + EndPos: 3034, + }, + }, + }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3039, - EndPos: 3068, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3045, - EndPos: 3048, + StartPos: 3039, + EndPos: 3068, }, - Value: "Foo", }, - Stmts: []node.Node{ - &stmt.TraitUse{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3051, - EndPos: 3066, + StartPos: 3045, + EndPos: 3048, }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3055, - EndPos: 3058, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3055, - EndPos: 3058, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3060, - EndPos: 3063, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 3060, - EndPos: 3063, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3064, + StartPos: 3051, EndPos: 3066, }, }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3055, + EndPos: 3058, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3055, + EndPos: 3058, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3060, + EndPos: 3063, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3060, + EndPos: 3063, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 141, + EndLine: 141, + StartPos: 3064, + EndPos: 3066, + }, + }, + }, }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3071, - EndPos: 3116, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3077, - EndPos: 3080, + StartPos: 3071, + EndPos: 3116, }, - Value: "Foo", }, - Stmts: []node.Node{ - &stmt.TraitUse{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3083, - EndPos: 3114, + StartPos: 3077, + EndPos: 3080, }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3087, - EndPos: 3090, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3087, - EndPos: 3090, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3092, - EndPos: 3095, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3092, - EndPos: 3095, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3096, + StartPos: 3083, EndPos: 3114, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3098, - EndPos: 3111, + StartPos: 3087, + EndPos: 3090, }, - Ref: &stmt.TraitMethodRef{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3087, + EndPos: 3090, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3092, + EndPos: 3095, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3092, + EndPos: 3095, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3096, + EndPos: 3114, + }, + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Node: ast.Node{ Position: &position.Position{ StartLine: 142, EndLine: 142, StartPos: 3098, - EndPos: 3101, + EndPos: 3111, }, - Method: &node.Identifier{ + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ Position: &position.Position{ StartLine: 142, EndLine: 142, StartPos: 3098, EndPos: 3101, }, - Value: "one", + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3098, + EndPos: 3101, + }, + }, + Value: []byte("one"), }, }, - Modifier: &node.Identifier{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 3105, - EndPos: 3111, + Modifier: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 142, + EndLine: 142, + StartPos: 3105, + EndPos: 3111, + }, }, - Value: "public", + Value: []byte("public"), }, }, }, @@ -6615,120 +7941,145 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3119, - EndPos: 3168, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3125, - EndPos: 3128, + StartPos: 3119, + EndPos: 3168, }, - Value: "Foo", }, - Stmts: []node.Node{ - &stmt.TraitUse{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3131, - EndPos: 3166, + StartPos: 3125, + EndPos: 3128, }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3135, - EndPos: 3138, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3135, - EndPos: 3138, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3140, - EndPos: 3143, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3140, - EndPos: 3143, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3144, + StartPos: 3131, EndPos: 3166, }, - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3146, - EndPos: 3163, + StartPos: 3135, + EndPos: 3138, }, - Ref: &stmt.TraitMethodRef{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3135, + EndPos: 3138, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3140, + EndPos: 3143, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3140, + EndPos: 3143, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3144, + EndPos: 3166, + }, + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Node: ast.Node{ Position: &position.Position{ StartLine: 143, EndLine: 143, StartPos: 3146, - EndPos: 3149, + EndPos: 3163, }, - Method: &node.Identifier{ + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ Position: &position.Position{ StartLine: 143, EndLine: 143, StartPos: 3146, EndPos: 3149, }, - Value: "one", + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3146, + EndPos: 3149, + }, + }, + Value: []byte("one"), }, }, - Modifier: &node.Identifier{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3153, - EndPos: 3159, + Modifier: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3153, + EndPos: 3159, + }, }, - Value: "public", + Value: []byte("public"), }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 3160, - EndPos: 3163, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 143, + EndLine: 143, + StartPos: 3160, + EndPos: 3163, + }, }, - Value: "two", + Value: []byte("two"), }, }, }, @@ -6736,214 +8087,259 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Class{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3171, - EndPos: 3248, - }, - PhpDocComment: "", - ClassName: &node.Identifier{ + &ast.StmtClass{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3177, - EndPos: 3180, + StartPos: 3171, + EndPos: 3248, }, - Value: "Foo", }, - Stmts: []node.Node{ - &stmt.TraitUse{ + ClassName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3183, - EndPos: 3246, + StartPos: 3177, + EndPos: 3180, }, - Traits: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3187, - EndPos: 3190, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3187, - EndPos: 3190, - }, - Value: "Bar", - }, - }, - }, - &name.Name{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3192, - EndPos: 3195, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3192, - EndPos: 3195, - }, - Value: "Baz", - }, - }, - }, - }, - TraitAdaptationList: &stmt.TraitAdaptationList{ + }, + Value: []byte("Foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtTraitUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3196, + StartPos: 3183, EndPos: 3246, }, - Adaptations: []node.Node{ - &stmt.TraitUsePrecedence{ + }, + Traits: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3198, - EndPos: 3226, + StartPos: 3187, + EndPos: 3190, }, - Ref: &stmt.TraitMethodRef{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3187, + EndPos: 3190, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3192, + EndPos: 3195, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3192, + EndPos: 3195, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3196, + EndPos: 3246, + }, + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUsePrecedence{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, StartPos: 3198, - EndPos: 3206, + EndPos: 3226, }, - Trait: &name.Name{ + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, StartPos: 3198, - EndPos: 3201, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3198, - EndPos: 3201, - }, - Value: "Bar", - }, - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3203, EndPos: 3206, }, - Value: "one", }, - }, - Insteadof: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3217, - EndPos: 3220, + Trait: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3198, + EndPos: 3201, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3217, - EndPos: 3220, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3198, + EndPos: 3201, + }, }, - Value: "Baz", + Value: []byte("Bar"), }, }, }, - &name.Name{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3222, - EndPos: 3226, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3203, + EndPos: 3206, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3222, - EndPos: 3226, + Value: []byte("one"), + }, + }, + Insteadof: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3217, + EndPos: 3220, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3217, + EndPos: 3220, + }, }, - Value: "Quux", + Value: []byte("Baz"), + }, + }, + }, + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3222, + EndPos: 3226, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3222, + EndPos: 3226, + }, + }, + Value: []byte("Quux"), }, }, }, }, }, - &stmt.TraitUseAlias{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3228, - EndPos: 3243, - }, - Ref: &stmt.TraitMethodRef{ + &ast.StmtTraitUseAlias{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, StartPos: 3228, - EndPos: 3236, + EndPos: 3243, }, - Trait: &name.Name{ + }, + Ref: &ast.StmtTraitMethodRef{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, StartPos: 3228, - EndPos: 3231, + EndPos: 3236, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3228, - EndPos: 3231, + }, + Trait: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3228, + EndPos: 3231, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3228, + EndPos: 3231, + }, }, - Value: "Baz", + Value: []byte("Baz"), }, }, }, - Method: &node.Identifier{ + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 144, + EndLine: 144, + StartPos: 3233, + EndPos: 3236, + }, + }, + Value: []byte("one"), + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3233, - EndPos: 3236, + StartPos: 3240, + EndPos: 3243, }, - Value: "one", }, - }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3240, - EndPos: 3243, - }, - Value: "two", + Value: []byte("two"), }, }, }, @@ -6951,1311 +8347,1599 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 146, - EndLine: -1, - StartPos: 3252, - EndPos: -1, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 146, + EndLine: -1, + StartPos: 3252, + EndPos: -1, + }, }, - Stmts: []node.Node{}, - Catches: []node.Node{}, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{}, }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3261, - EndPos: 3291, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3261, + EndPos: 3291, + }, }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3268, - EndPos: 3291, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3268, + EndPos: 3291, + }, }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3275, - EndPos: 3284, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3275, + EndPos: 3284, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3275, - EndPos: 3284, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3275, + EndPos: 3284, + }, }, - Value: "Exception", + Value: []byte("Exception"), }, }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3285, - EndPos: 3287, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 147, EndLine: 147, StartPos: 3285, EndPos: 3287, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 147, + EndLine: 147, + StartPos: 3285, + EndPos: 3287, + }, + }, + Value: []byte("e"), }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3294, - EndPos: 3355, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3294, + EndPos: 3355, + }, }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3301, - EndPos: 3324, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3301, + EndPos: 3324, + }, }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3308, - EndPos: 3317, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3308, + EndPos: 3317, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3308, - EndPos: 3317, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3308, + EndPos: 3317, + }, }, - Value: "Exception", + Value: []byte("Exception"), }, }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3318, - EndPos: 3320, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 148, EndLine: 148, StartPos: 3318, EndPos: 3320, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3318, + EndPos: 3320, + }, + }, + Value: []byte("e"), }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3325, - EndPos: 3355, + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3325, + EndPos: 3355, + }, }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3332, - EndPos: 3348, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3332, + EndPos: 3348, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3332, - EndPos: 3348, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3332, + EndPos: 3348, + }, }, - Value: "RuntimeException", + Value: []byte("RuntimeException"), }, }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3349, - EndPos: 3351, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 148, EndLine: 148, StartPos: 3349, EndPos: 3351, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 148, + EndLine: 148, + StartPos: 3349, + EndPos: 3351, + }, + }, + Value: []byte("e"), }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3358, - EndPos: 3462, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3358, + EndPos: 3462, + }, }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3365, - EndPos: 3388, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3365, + EndPos: 3388, + }, }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3372, - EndPos: 3381, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3372, + EndPos: 3381, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3372, - EndPos: 3381, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3372, + EndPos: 3381, + }, }, - Value: "Exception", + Value: []byte("Exception"), }, }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3382, - EndPos: 3384, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 149, EndLine: 149, StartPos: 3382, EndPos: 3384, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3382, + EndPos: 3384, + }, + }, + Value: []byte("e"), }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3389, - EndPos: 3420, + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3389, + EndPos: 3420, + }, }, - Types: []node.Node{ - &name.FullyQualified{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3396, - EndPos: 3413, + Types: []ast.Vertex{ + &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3396, + EndPos: 3413, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3397, - EndPos: 3413, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3397, + EndPos: 3413, + }, }, - Value: "RuntimeException", + Value: []byte("RuntimeException"), }, }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3414, - EndPos: 3416, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 149, EndLine: 149, StartPos: 3414, EndPos: 3416, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3414, + EndPos: 3416, + }, + }, + Value: []byte("e"), }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, - &stmt.Catch{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3421, - EndPos: 3462, + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3421, + EndPos: 3462, + }, }, - Types: []node.Node{ - &name.Relative{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3428, - EndPos: 3455, + Types: []ast.Vertex{ + &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3428, + EndPos: 3455, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3438, - EndPos: 3455, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3438, + EndPos: 3455, + }, }, - Value: "AdditionException", + Value: []byte("AdditionException"), }, }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3456, - EndPos: 3458, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 149, EndLine: 149, StartPos: 3456, EndPos: 3458, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 149, + EndLine: 149, + StartPos: 3456, + EndPos: 3458, + }, + }, + Value: []byte("e"), }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, }, - &stmt.Try{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3465, - EndPos: 3506, + &ast.StmtTry{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3465, + EndPos: 3506, + }, }, - Stmts: []node.Node{}, - Catches: []node.Node{ - &stmt.Catch{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3472, - EndPos: 3495, + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3472, + EndPos: 3495, + }, }, - Types: []node.Node{ - &name.Name{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3479, - EndPos: 3488, + Types: []ast.Vertex{ + &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3479, + EndPos: 3488, + }, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3479, - EndPos: 3488, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3479, + EndPos: 3488, + }, }, - Value: "Exception", + Value: []byte("Exception"), }, }, }, }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3489, - EndPos: 3491, - }, - VarName: &node.Identifier{ + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 150, EndLine: 150, StartPos: 3489, EndPos: 3491, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3489, + EndPos: 3491, + }, + }, + Value: []byte("e"), }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - Finally: &stmt.Finally{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3496, - EndPos: 3506, + Finally: &ast.StmtFinally{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 150, + EndLine: 150, + StartPos: 3496, + EndPos: 3506, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Unset{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3510, - EndPos: 3524, + &ast.StmtUnset{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3510, + EndPos: 3524, + }, }, - Vars: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3516, - EndPos: 3518, - }, - VarName: &node.Identifier{ + Vars: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 152, EndLine: 152, StartPos: 3516, EndPos: 3518, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3516, + EndPos: 3518, + }, + }, + Value: []byte("a"), }, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3520, - EndPos: 3522, - }, - VarName: &node.Identifier{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 152, EndLine: 152, StartPos: 3520, EndPos: 3522, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 152, + EndLine: 152, + StartPos: 3520, + EndPos: 3522, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3528, - EndPos: 3536, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3528, + EndPos: 3536, + }, }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3532, - EndPos: 3535, - }, - Use: &name.Name{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 154, EndLine: 154, StartPos: 3532, EndPos: 3535, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3532, - EndPos: 3535, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3532, + EndPos: 3535, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3532, + EndPos: 3535, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3539, - EndPos: 3548, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3539, + EndPos: 3548, + }, }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3544, - EndPos: 3547, - }, - Use: &name.Name{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 155, EndLine: 155, StartPos: 3544, EndPos: 3547, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3544, - EndPos: 3547, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3544, + EndPos: 3547, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3544, + EndPos: 3547, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3551, - EndPos: 3567, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3551, + EndPos: 3567, + }, }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3556, - EndPos: 3566, - }, - Use: &name.Name{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 156, EndLine: 156, StartPos: 3556, - EndPos: 3559, + EndPos: 3566, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3556, - EndPos: 3559, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3556, + EndPos: 3559, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3556, + EndPos: 3559, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3563, - EndPos: 3566, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3563, + EndPos: 3566, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3570, - EndPos: 3583, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3570, + EndPos: 3583, + }, }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3574, - EndPos: 3577, - }, - Use: &name.Name{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 157, EndLine: 157, StartPos: 3574, EndPos: 3577, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3574, - EndPos: 3577, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3574, + EndPos: 3577, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3574, + EndPos: 3577, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3579, - EndPos: 3582, - }, - Use: &name.Name{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 157, EndLine: 157, StartPos: 3579, EndPos: 3582, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3579, - EndPos: 3582, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3579, + EndPos: 3582, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3579, + EndPos: 3582, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3586, - EndPos: 3606, + &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3586, + EndPos: 3606, + }, }, - Uses: []node.Node{ - &stmt.Use{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3590, - EndPos: 3593, - }, - Use: &name.Name{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 158, EndLine: 158, StartPos: 3590, EndPos: 3593, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3590, - EndPos: 3593, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3590, + EndPos: 3593, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3590, + EndPos: 3593, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3595, - EndPos: 3605, - }, - Use: &name.Name{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 158, EndLine: 158, StartPos: 3595, - EndPos: 3598, + EndPos: 3605, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3595, - EndPos: 3598, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3595, + EndPos: 3598, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3595, + EndPos: 3598, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3602, - EndPos: 3605, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3602, + EndPos: 3605, + }, }, - Value: "Baz", + Value: []byte("Baz"), }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3609, - EndPos: 3632, - }, - UseType: &node.Identifier{ + &ast.StmtUseList{ + Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3613, - EndPos: 3621, + StartPos: 3609, + EndPos: 3632, }, - Value: "function", }, - Uses: []node.Node{ - &stmt.Use{ + UseType: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3622, - EndPos: 3625, + StartPos: 3613, + EndPos: 3621, }, - Use: &name.Name{ + }, + Value: []byte("function"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, StartPos: 3622, EndPos: 3625, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3622, - EndPos: 3625, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3622, + EndPos: 3625, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3622, + EndPos: 3625, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3628, - EndPos: 3631, - }, - Use: &name.Name{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, StartPos: 3628, EndPos: 3631, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3628, - EndPos: 3631, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3628, + EndPos: 3631, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3628, + EndPos: 3631, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3635, - EndPos: 3672, - }, - UseType: &node.Identifier{ + &ast.StmtUseList{ + Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3639, - EndPos: 3647, + StartPos: 3635, + EndPos: 3672, }, - Value: "function", }, - Uses: []node.Node{ - &stmt.Use{ + UseType: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3648, - EndPos: 3658, + StartPos: 3639, + EndPos: 3647, }, - Use: &name.Name{ + }, + Value: []byte("function"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, StartPos: 3648, - EndPos: 3651, + EndPos: 3658, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3648, - EndPos: 3651, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3648, + EndPos: 3651, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3648, + EndPos: 3651, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3655, - EndPos: 3658, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3655, + EndPos: 3658, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3661, - EndPos: 3671, - }, - Use: &name.Name{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, StartPos: 3661, - EndPos: 3664, + EndPos: 3671, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3661, - EndPos: 3664, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3661, + EndPos: 3664, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3661, + EndPos: 3664, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3668, - EndPos: 3671, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3668, + EndPos: 3671, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3675, - EndPos: 3695, - }, - UseType: &node.Identifier{ + &ast.StmtUseList{ + Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3679, - EndPos: 3684, + StartPos: 3675, + EndPos: 3695, }, - Value: "const", }, - Uses: []node.Node{ - &stmt.Use{ + UseType: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3685, - EndPos: 3688, + StartPos: 3679, + EndPos: 3684, }, - Use: &name.Name{ + }, + Value: []byte("const"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, StartPos: 3685, EndPos: 3688, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3685, - EndPos: 3688, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3685, + EndPos: 3688, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3685, + EndPos: 3688, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3691, - EndPos: 3694, - }, - Use: &name.Name{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, StartPos: 3691, EndPos: 3694, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3691, - EndPos: 3694, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3691, + EndPos: 3694, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3691, + EndPos: 3694, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, }, }, }, - &stmt.UseList{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3698, - EndPos: 3732, - }, - UseType: &node.Identifier{ + &ast.StmtUseList{ + Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3702, - EndPos: 3707, + StartPos: 3698, + EndPos: 3732, }, - Value: "const", }, - Uses: []node.Node{ - &stmt.Use{ + UseType: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3708, - EndPos: 3718, + StartPos: 3702, + EndPos: 3707, }, - Use: &name.Name{ + }, + Value: []byte("const"), + }, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, StartPos: 3708, - EndPos: 3711, + EndPos: 3718, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3708, - EndPos: 3711, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3708, + EndPos: 3711, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3708, + EndPos: 3711, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3715, - EndPos: 3718, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3715, + EndPos: 3718, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, - &stmt.Use{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3721, - EndPos: 3731, - }, - Use: &name.Name{ + &ast.StmtUse{ + Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, StartPos: 3721, - EndPos: 3724, + EndPos: 3731, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3721, - EndPos: 3724, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3721, + EndPos: 3724, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3721, + EndPos: 3724, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, - Alias: &node.Identifier{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3728, - EndPos: 3731, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3728, + EndPos: 3731, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3736, - EndPos: 3742, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 164, EndLine: 164, StartPos: 3736, - EndPos: 3741, + EndPos: 3742, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 164, EndLine: 164, StartPos: 3736, - EndPos: 3738, + EndPos: 3741, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 164, EndLine: 164, StartPos: 3736, EndPos: 3738, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3736, + EndPos: 3738, + }, + }, + Value: []byte("a"), }, }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3739, - EndPos: 3740, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3739, + EndPos: 3740, + }, }, - Value: "1", + Value: []byte("1"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3745, - EndPos: 3754, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 165, EndLine: 165, StartPos: 3745, - EndPos: 3753, + EndPos: 3754, }, - Variable: &expr.ArrayDimFetch{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 165, EndLine: 165, StartPos: 3745, - EndPos: 3750, + EndPos: 3753, }, - Variable: &expr.Variable{ + }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 165, EndLine: 165, StartPos: 3745, - EndPos: 3747, + EndPos: 3750, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 165, EndLine: 165, StartPos: 3745, EndPos: 3747, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3745, + EndPos: 3747, + }, + }, + Value: []byte("a"), }, }, - Dim: &scalar.Lnumber{ + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3748, + EndPos: 3749, + }, + }, + Value: []byte("1"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3748, - EndPos: 3749, + StartPos: 3751, + EndPos: 3752, }, - Value: "1", }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3751, - EndPos: 3752, - }, - Value: "2", + Value: []byte("2"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3757, - EndPos: 3765, - }, - Expr: &expr.Array{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 166, EndLine: 166, StartPos: 3757, - EndPos: 3764, + EndPos: 3765, }, - Items: []node.Node{}, + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3757, + EndPos: 3764, + }, + }, + Items: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3768, - EndPos: 3777, - }, - Expr: &expr.Array{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 167, EndLine: 167, StartPos: 3768, - EndPos: 3776, + EndPos: 3777, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3774, - EndPos: 3775, - }, - Val: &scalar.Lnumber{ + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3768, + EndPos: 3776, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 167, EndLine: 167, StartPos: 3774, EndPos: 3775, }, - Value: "1", + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3774, + EndPos: 3775, + }, + }, + Value: []byte("1"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3780, - EndPos: 3798, - }, - Expr: &expr.Array{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3780, - EndPos: 3797, + EndPos: 3798, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3786, - EndPos: 3790, - }, - Key: &scalar.Lnumber{ + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3780, + EndPos: 3797, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3786, - EndPos: 3787, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3789, EndPos: 3790, }, - Value: "1", + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3786, + EndPos: 3787, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3789, + EndPos: 3790, + }, + }, + Value: []byte("1"), }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3792, - EndPos: 3795, - }, - Val: &expr.Reference{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3792, EndPos: 3795, }, - Variable: &expr.Variable{ + }, + Val: &ast.ExprReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, + StartPos: 3792, EndPos: 3795, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3793, EndPos: 3795, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3793, + EndPos: 3795, + }, + }, + Value: []byte("b"), }, }, }, }, - &expr.ArrayItem{}, + &ast.ExprArrayItem{}, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3801, - EndPos: 3816, - }, - Expr: &expr.Array{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, StartPos: 3801, - EndPos: 3815, + EndPos: 3816, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3807, - EndPos: 3814, - }, - Key: &scalar.Lnumber{ + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3801, + EndPos: 3815, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, StartPos: 3807, - EndPos: 3808, - }, - Value: "3", - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3811, EndPos: 3814, }, - Variable: &expr.Variable{ + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3812, + StartPos: 3807, + EndPos: 3808, + }, + }, + Value: []byte("3"), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3811, EndPos: 3814, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, StartPos: 3812, EndPos: 3814, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3812, + EndPos: 3814, + }, + }, + Value: []byte("b"), }, }, }, @@ -8263,135 +9947,167 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3819, - EndPos: 3848, - }, - Expr: &expr.Array{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, StartPos: 3819, - EndPos: 3847, + EndPos: 3848, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3825, - EndPos: 3828, - }, - Val: &expr.Reference{ + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3819, + EndPos: 3847, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, StartPos: 3825, EndPos: 3828, }, - Variable: &expr.Variable{ + }, + Val: &ast.ExprReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3826, + StartPos: 3825, EndPos: 3828, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, StartPos: 3826, EndPos: 3828, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3826, + EndPos: 3828, + }, + }, + Value: []byte("b"), }, }, }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3830, - EndPos: 3834, - }, - Key: &scalar.Lnumber{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, StartPos: 3830, - EndPos: 3831, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3833, EndPos: 3834, }, - Value: "1", + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3830, + EndPos: 3831, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3833, + EndPos: 3834, + }, + }, + Value: []byte("1"), }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3836, - EndPos: 3837, - }, - Val: &scalar.Lnumber{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, StartPos: 3836, EndPos: 3837, }, - Value: "1", + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3836, + EndPos: 3837, + }, + }, + Value: []byte("1"), }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3839, - EndPos: 3846, - }, - Key: &scalar.Lnumber{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, StartPos: 3839, - EndPos: 3840, - }, - Value: "3", - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3843, EndPos: 3846, }, - Variable: &expr.Variable{ + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3844, + StartPos: 3839, + EndPos: 3840, + }, + }, + Value: []byte("3"), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3843, EndPos: 3846, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 170, EndLine: 170, StartPos: 3844, EndPos: 3846, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 170, + EndLine: 170, + StartPos: 3844, + EndPos: 3846, + }, + }, + Value: []byte("b"), }, }, }, @@ -8399,935 +10115,1145 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3851, - EndPos: 3855, - }, - Expr: &expr.BitwiseNot{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 171, EndLine: 171, StartPos: 3851, - EndPos: 3854, + EndPos: 3855, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprBitwiseNot{ + Node: ast.Node{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3852, + StartPos: 3851, EndPos: 3854, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 171, EndLine: 171, StartPos: 3852, EndPos: 3854, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3852, + EndPos: 3854, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3858, - EndPos: 3862, - }, - Expr: &expr.BooleanNot{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 172, EndLine: 172, StartPos: 3858, - EndPos: 3861, + EndPos: 3862, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprBooleanNot{ + Node: ast.Node{ Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3859, + StartPos: 3858, EndPos: 3861, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 172, EndLine: 172, StartPos: 3859, EndPos: 3861, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3859, + EndPos: 3861, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3866, - EndPos: 3875, - }, - Expr: &expr.ClassConstFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 174, EndLine: 174, StartPos: 3866, - EndPos: 3874, + EndPos: 3875, }, - Class: &name.Name{ + }, + Expr: &ast.ExprClassConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 174, EndLine: 174, StartPos: 3866, - EndPos: 3869, + EndPos: 3874, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3866, - EndPos: 3869, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3866, + EndPos: 3869, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3866, + EndPos: 3869, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3871, - EndPos: 3874, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3871, + EndPos: 3874, + }, }, - Value: "Bar", + Value: []byte("Bar"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3878, - EndPos: 3888, - }, - Expr: &expr.Clone{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 175, EndLine: 175, StartPos: 3878, - EndPos: 3886, + EndPos: 3888, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprClone{ + Node: ast.Node{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3884, + StartPos: 3878, EndPos: 3886, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 175, EndLine: 175, StartPos: 3884, EndPos: 3886, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3884, + EndPos: 3886, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3891, - EndPos: 3900, - }, - Expr: &expr.Clone{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 176, EndLine: 176, StartPos: 3891, - EndPos: 3899, + EndPos: 3900, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprClone{ + Node: ast.Node{ Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3897, + StartPos: 3891, EndPos: 3899, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 176, EndLine: 176, StartPos: 3897, EndPos: 3899, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 176, + EndLine: 176, + StartPos: 3897, + EndPos: 3899, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3903, - EndPos: 3916, - }, - Expr: &expr.Closure{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 177, EndLine: 177, StartPos: 3903, - EndPos: 3915, + EndPos: 3916, }, - Static: false, - PhpDocComment: "", - ReturnsRef: false, - Stmts: []node.Node{}, + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 177, + EndLine: 177, + StartPos: 3903, + EndPos: 3915, + }, + }, + Static: false, + ReturnsRef: false, + Stmts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3919, - EndPos: 3953, - }, - Expr: &expr.Closure{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, StartPos: 3919, - EndPos: 3952, + EndPos: 3953, }, - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3928, - EndPos: 3930, - }, - ByRef: false, - Variadic: false, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3919, + EndPos: 3952, + }, + }, + ReturnsRef: false, + Static: false, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, StartPos: 3928, EndPos: 3930, }, - VarName: &node.Identifier{ + }, + ByRef: false, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, StartPos: 3928, EndPos: 3930, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3928, + EndPos: 3930, + }, + }, + Value: []byte("a"), }, }, }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3932, - EndPos: 3934, - }, - Variadic: false, - ByRef: false, - Variable: &expr.Variable{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, StartPos: 3932, EndPos: 3934, }, - VarName: &node.Identifier{ + }, + Variadic: false, + ByRef: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, StartPos: 3932, EndPos: 3934, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3932, + EndPos: 3934, + }, + }, + Value: []byte("b"), }, }, }, }, - ClosureUse: &expr.ClosureUse{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3936, - EndPos: 3949, + ClosureUse: &ast.ExprClosureUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3936, + EndPos: 3949, + }, }, - Uses: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3941, - EndPos: 3943, - }, - VarName: &node.Identifier{ + Uses: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, StartPos: 3941, EndPos: 3943, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3941, + EndPos: 3943, + }, + }, + Value: []byte("c"), }, }, - &expr.Reference{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3945, - EndPos: 3948, - }, - Variable: &expr.Variable{ + &ast.ExprReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3946, + StartPos: 3945, EndPos: 3948, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, StartPos: 3946, EndPos: 3948, }, - Value: "d", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 178, + EndLine: 178, + StartPos: 3946, + EndPos: 3948, + }, + }, + Value: []byte("d"), }, }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3956, - EndPos: 3990, - }, - Expr: &expr.Closure{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, StartPos: 3956, - EndPos: 3989, + EndPos: 3990, }, - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Params: []node.Node{ - &node.Parameter{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3965, - EndPos: 3967, - }, - ByRef: false, - Variadic: false, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3956, + EndPos: 3989, + }, + }, + ReturnsRef: false, + Static: false, + Params: []ast.Vertex{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, StartPos: 3965, EndPos: 3967, }, - VarName: &node.Identifier{ + }, + ByRef: false, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, StartPos: 3965, EndPos: 3967, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3965, + EndPos: 3967, + }, + }, + Value: []byte("a"), }, }, }, - &node.Parameter{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3969, - EndPos: 3971, - }, - ByRef: false, - Variadic: false, - Variable: &expr.Variable{ + &ast.Parameter{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, StartPos: 3969, EndPos: 3971, }, - VarName: &node.Identifier{ + }, + ByRef: false, + Variadic: false, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, StartPos: 3969, EndPos: 3971, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3969, + EndPos: 3971, + }, + }, + Value: []byte("b"), }, }, }, }, - ClosureUse: &expr.ClosureUse{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3973, - EndPos: 3986, + ClosureUse: &ast.ExprClosureUse{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3973, + EndPos: 3986, + }, }, - Uses: []node.Node{ - &expr.Reference{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3978, - EndPos: 3981, - }, - Variable: &expr.Variable{ + Uses: []ast.Vertex{ + &ast.ExprReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3979, + StartPos: 3978, EndPos: 3981, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, StartPos: 3979, EndPos: 3981, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3979, + EndPos: 3981, + }, + }, + Value: []byte("c"), }, }, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3983, - EndPos: 3985, - }, - VarName: &node.Identifier{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, StartPos: 3983, EndPos: 3985, }, - Value: "d", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 179, + EndLine: 179, + StartPos: 3983, + EndPos: 3985, + }, + }, + Value: []byte("d"), }, }, }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3993, - EndPos: 4007, - }, - Expr: &expr.Closure{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 180, EndLine: 180, StartPos: 3993, - EndPos: 4006, + EndPos: 4007, }, - ReturnsRef: false, - Static: false, - PhpDocComment: "", - Stmts: []node.Node{}, + }, + Expr: &ast.ExprClosure{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 180, + EndLine: 180, + StartPos: 3993, + EndPos: 4006, + }, + }, + ReturnsRef: false, + Static: false, + Stmts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4010, - EndPos: 4014, - }, - Expr: &expr.ConstFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 181, EndLine: 181, StartPos: 4010, - EndPos: 4013, + EndPos: 4014, }, - Constant: &name.Name{ + }, + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 181, EndLine: 181, StartPos: 4010, EndPos: 4013, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 4010, - EndPos: 4013, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4010, + EndPos: 4013, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 181, + EndLine: 181, + StartPos: 4010, + EndPos: 4013, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4017, - EndPos: 4031, - }, - Expr: &expr.ConstFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 182, EndLine: 182, StartPos: 4017, - EndPos: 4030, + EndPos: 4031, }, - Constant: &name.Relative{ + }, + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 182, EndLine: 182, StartPos: 4017, EndPos: 4030, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 4027, - EndPos: 4030, + }, + Const: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4017, + EndPos: 4030, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 182, + EndLine: 182, + StartPos: 4027, + EndPos: 4030, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4034, - EndPos: 4039, - }, - Expr: &expr.ConstFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 183, EndLine: 183, StartPos: 4034, - EndPos: 4038, + EndPos: 4039, }, - Constant: &name.FullyQualified{ + }, + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 183, EndLine: 183, StartPos: 4034, EndPos: 4038, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 4035, - EndPos: 4038, + }, + Const: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4034, + EndPos: 4038, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 183, + EndLine: 183, + StartPos: 4035, + EndPos: 4038, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 4043, - EndPos: 4053, - }, - Expr: &expr.Empty{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 185, EndLine: 185, StartPos: 4043, - EndPos: 4052, + EndPos: 4053, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprEmpty{ + Node: ast.Node{ Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4049, - EndPos: 4051, + StartPos: 4043, + EndPos: 4052, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 185, EndLine: 185, StartPos: 4049, EndPos: 4051, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 185, + EndLine: 185, + StartPos: 4049, + EndPos: 4051, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4056, - EndPos: 4067, - }, - Expr: &expr.Empty{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 186, EndLine: 186, StartPos: 4056, - EndPos: 4066, + EndPos: 4067, }, - Expr: &expr.ConstFetch{ + }, + Expr: &ast.ExprEmpty{ + Node: ast.Node{ Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4062, - EndPos: 4065, + StartPos: 4056, + EndPos: 4066, }, - Constant: &name.Name{ + }, + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 186, EndLine: 186, StartPos: 4062, EndPos: 4065, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 4062, - EndPos: 4065, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4062, + EndPos: 4065, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 186, + EndLine: 186, + StartPos: 4062, + EndPos: 4065, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 4070, - EndPos: 4074, - }, - Expr: &expr.ErrorSuppress{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 187, EndLine: 187, StartPos: 4070, - EndPos: 4073, + EndPos: 4074, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprErrorSuppress{ + Node: ast.Node{ Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4071, + StartPos: 4070, EndPos: 4073, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 187, EndLine: 187, StartPos: 4071, EndPos: 4073, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 187, + EndLine: 187, + StartPos: 4071, + EndPos: 4073, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 4077, - EndPos: 4086, - }, - Expr: &expr.Eval{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 188, EndLine: 188, StartPos: 4077, - EndPos: 4085, + EndPos: 4086, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprEval{ + Node: ast.Node{ Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4082, - EndPos: 4084, + StartPos: 4077, + EndPos: 4085, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 188, EndLine: 188, StartPos: 4082, EndPos: 4084, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 188, + EndLine: 188, + StartPos: 4082, + EndPos: 4084, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 4089, - EndPos: 4094, - }, - Expr: &expr.Exit{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 189, EndLine: 189, StartPos: 4089, - EndPos: 4093, + EndPos: 4094, + }, + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 189, + EndLine: 189, + StartPos: 4089, + EndPos: 4093, + }, }, Die: false, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 4097, - EndPos: 4106, - }, - Expr: &expr.Exit{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 190, EndLine: 190, StartPos: 4097, - EndPos: 4105, + EndPos: 4106, }, - Die: false, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4102, - EndPos: 4104, + StartPos: 4097, + EndPos: 4105, }, - VarName: &node.Identifier{ + }, + Die: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 190, EndLine: 190, StartPos: 4102, EndPos: 4104, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 190, + EndLine: 190, + StartPos: 4102, + EndPos: 4104, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 4109, - EndPos: 4115, - }, - Expr: &expr.Exit{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 191, EndLine: 191, StartPos: 4109, - EndPos: 4114, + EndPos: 4115, + }, + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 191, + EndLine: 191, + StartPos: 4109, + EndPos: 4114, + }, }, Die: true, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 4118, - EndPos: 4126, - }, - Expr: &expr.Exit{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 192, EndLine: 192, StartPos: 4118, - EndPos: 4125, + EndPos: 4126, }, - Die: true, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprExit{ + Node: ast.Node{ Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4122, - EndPos: 4124, + StartPos: 4118, + EndPos: 4125, }, - VarName: &node.Identifier{ + }, + Die: true, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 192, EndLine: 192, StartPos: 4122, EndPos: 4124, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 192, + EndLine: 192, + StartPos: 4122, + EndPos: 4124, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 4129, - EndPos: 4135, - }, - Expr: &expr.FunctionCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 193, EndLine: 193, StartPos: 4129, - EndPos: 4134, + EndPos: 4135, }, - Function: &name.Name{ + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 193, EndLine: 193, StartPos: 4129, - EndPos: 4132, + EndPos: 4134, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 4129, - EndPos: 4132, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4129, + EndPos: 4132, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4129, + EndPos: 4132, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 4132, - EndPos: 4134, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 193, + EndLine: 193, + StartPos: 4132, + EndPos: 4134, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4138, - EndPos: 4157, - }, - Expr: &expr.FunctionCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 194, EndLine: 194, StartPos: 4138, - EndPos: 4156, + EndPos: 4157, }, - Function: &name.Relative{ + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 194, EndLine: 194, StartPos: 4138, - EndPos: 4151, + EndPos: 4156, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4148, - EndPos: 4151, + }, + Function: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4138, + EndPos: 4151, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4148, + EndPos: 4151, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4151, - EndPos: 4156, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4151, + EndPos: 4156, + }, }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 4153, - EndPos: 4155, - }, - Variadic: false, - IsReference: true, - Expr: &expr.Variable{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 194, EndLine: 194, StartPos: 4153, EndPos: 4155, }, - VarName: &node.Identifier{ + }, + Variadic: false, + IsReference: true, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 194, EndLine: 194, StartPos: 4153, EndPos: 4155, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 194, + EndLine: 194, + StartPos: 4153, + EndPos: 4155, + }, + }, + Value: []byte("a"), }, }, }, @@ -9335,140 +11261,172 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4160, - EndPos: 4169, - }, - Expr: &expr.FunctionCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 195, EndLine: 195, StartPos: 4160, - EndPos: 4168, + EndPos: 4169, }, - Function: &name.FullyQualified{ + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 195, EndLine: 195, StartPos: 4160, - EndPos: 4164, + EndPos: 4168, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4161, - EndPos: 4164, + }, + Function: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4160, + EndPos: 4164, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4161, + EndPos: 4164, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4164, - EndPos: 4168, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4164, + EndPos: 4168, + }, }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 4165, - EndPos: 4167, - }, - Variadic: false, - IsReference: false, - Expr: &expr.ShortArray{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 195, EndLine: 195, StartPos: 4165, EndPos: 4167, }, - Items: []node.Node{}, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 195, + EndLine: 195, + StartPos: 4165, + EndPos: 4167, + }, + }, + Items: []ast.Vertex{}, }, }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4172, - EndPos: 4187, - }, - Expr: &expr.FunctionCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, StartPos: 4172, - EndPos: 4186, + EndPos: 4187, }, - Function: &expr.Variable{ + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, StartPos: 4172, - EndPos: 4176, + EndPos: 4186, }, - VarName: &node.Identifier{ + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, StartPos: 4172, EndPos: 4176, }, - Value: "foo", }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 4176, - EndPos: 4186, - }, - Arguments: []node.Node{ - &node.Argument{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4177, - EndPos: 4185, + StartPos: 4172, + EndPos: 4176, }, - IsReference: false, - Variadic: false, - Expr: &expr.Yield{ + }, + Value: []byte("foo"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4176, + EndPos: 4186, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, StartPos: 4177, EndPos: 4185, }, - Value: &expr.Variable{ + }, + IsReference: false, + Variadic: false, + Expr: &ast.ExprYield{ + Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4183, + StartPos: 4177, EndPos: 4185, }, - VarName: &node.Identifier{ + }, + Value: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, StartPos: 4183, EndPos: 4185, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 196, + EndLine: 196, + StartPos: 4183, + EndPos: 4185, + }, + }, + Value: []byte("a"), }, }, }, @@ -9477,516 +11435,638 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 4191, - EndPos: 4196, - }, - Expr: &expr.PostDec{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 198, EndLine: 198, StartPos: 4191, - EndPos: 4195, + EndPos: 4196, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprPostDec{ + Node: ast.Node{ Position: &position.Position{ StartLine: 198, EndLine: 198, StartPos: 4191, - EndPos: 4193, + EndPos: 4195, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 198, EndLine: 198, StartPos: 4191, EndPos: 4193, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 198, + EndLine: 198, + StartPos: 4191, + EndPos: 4193, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 4199, - EndPos: 4204, - }, - Expr: &expr.PostInc{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 199, EndLine: 199, StartPos: 4199, - EndPos: 4203, + EndPos: 4204, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprPostInc{ + Node: ast.Node{ Position: &position.Position{ StartLine: 199, EndLine: 199, StartPos: 4199, - EndPos: 4201, + EndPos: 4203, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 199, EndLine: 199, StartPos: 4199, EndPos: 4201, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 199, + EndLine: 199, + StartPos: 4199, + EndPos: 4201, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 4207, - EndPos: 4212, - }, - Expr: &expr.PreDec{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 200, EndLine: 200, StartPos: 4207, - EndPos: 4211, + EndPos: 4212, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprPreDec{ + Node: ast.Node{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4209, + StartPos: 4207, EndPos: 4211, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 200, EndLine: 200, StartPos: 4209, EndPos: 4211, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 200, + EndLine: 200, + StartPos: 4209, + EndPos: 4211, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 4215, - EndPos: 4220, - }, - Expr: &expr.PreInc{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 201, EndLine: 201, StartPos: 4215, - EndPos: 4219, + EndPos: 4220, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprPreInc{ + Node: ast.Node{ Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4217, + StartPos: 4215, EndPos: 4219, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 201, EndLine: 201, StartPos: 4217, EndPos: 4219, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 201, + EndLine: 201, + StartPos: 4217, + EndPos: 4219, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 4224, - EndPos: 4235, - }, - Expr: &expr.Include{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 203, EndLine: 203, StartPos: 4224, - EndPos: 4234, + EndPos: 4235, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprInclude{ + Node: ast.Node{ Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4232, + StartPos: 4224, EndPos: 4234, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 203, EndLine: 203, StartPos: 4232, EndPos: 4234, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 203, + EndLine: 203, + StartPos: 4232, + EndPos: 4234, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 4238, - EndPos: 4254, - }, - Expr: &expr.IncludeOnce{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 204, EndLine: 204, StartPos: 4238, - EndPos: 4253, + EndPos: 4254, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprIncludeOnce{ + Node: ast.Node{ Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4251, + StartPos: 4238, EndPos: 4253, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 204, EndLine: 204, StartPos: 4251, EndPos: 4253, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 204, + EndLine: 204, + StartPos: 4251, + EndPos: 4253, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 4257, - EndPos: 4268, - }, - Expr: &expr.Require{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 205, EndLine: 205, StartPos: 4257, - EndPos: 4267, + EndPos: 4268, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprRequire{ + Node: ast.Node{ Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4265, + StartPos: 4257, EndPos: 4267, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 205, EndLine: 205, StartPos: 4265, EndPos: 4267, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 205, + EndLine: 205, + StartPos: 4265, + EndPos: 4267, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 4271, - EndPos: 4287, - }, - Expr: &expr.RequireOnce{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 206, EndLine: 206, StartPos: 4271, - EndPos: 4286, + EndPos: 4287, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprRequireOnce{ + Node: ast.Node{ Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4284, + StartPos: 4271, EndPos: 4286, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 206, EndLine: 206, StartPos: 4284, EndPos: 4286, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 206, + EndLine: 206, + StartPos: 4284, + EndPos: 4286, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 4291, - EndPos: 4309, - }, - Expr: &expr.InstanceOf{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 208, EndLine: 208, StartPos: 4291, - EndPos: 4308, + EndPos: 4309, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprInstanceOf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 208, EndLine: 208, StartPos: 4291, - EndPos: 4293, + EndPos: 4308, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 208, EndLine: 208, StartPos: 4291, EndPos: 4293, }, - Value: "a", }, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 4305, - EndPos: 4308, - }, - Parts: []node.Node{ - &name.NamePart{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4305, - EndPos: 4308, + StartPos: 4291, + EndPos: 4293, }, - Value: "Foo", + }, + Value: []byte("a"), + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4305, + EndPos: 4308, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 208, + EndLine: 208, + StartPos: 4305, + EndPos: 4308, + }, + }, + Value: []byte("Foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4312, - EndPos: 4340, - }, - Expr: &expr.InstanceOf{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 209, EndLine: 209, StartPos: 4312, - EndPos: 4339, + EndPos: 4340, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprInstanceOf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 209, EndLine: 209, StartPos: 4312, - EndPos: 4314, + EndPos: 4339, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 209, EndLine: 209, StartPos: 4312, EndPos: 4314, }, - Value: "a", }, - }, - Class: &name.Relative{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4326, - EndPos: 4339, - }, - Parts: []node.Node{ - &name.NamePart{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4336, - EndPos: 4339, + StartPos: 4312, + EndPos: 4314, }, - Value: "Foo", + }, + Value: []byte("a"), + }, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4326, + EndPos: 4339, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 209, + EndLine: 209, + StartPos: 4336, + EndPos: 4339, + }, + }, + Value: []byte("Foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4343, - EndPos: 4362, - }, - Expr: &expr.InstanceOf{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 210, EndLine: 210, StartPos: 4343, - EndPos: 4361, + EndPos: 4362, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprInstanceOf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 210, EndLine: 210, StartPos: 4343, - EndPos: 4345, + EndPos: 4361, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 210, EndLine: 210, StartPos: 4343, EndPos: 4345, }, - Value: "a", }, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4357, - EndPos: 4361, - }, - Parts: []node.Node{ - &name.NamePart{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4358, - EndPos: 4361, + StartPos: 4343, + EndPos: 4345, }, - Value: "Foo", + }, + Value: []byte("a"), + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4357, + EndPos: 4361, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 210, + EndLine: 210, + StartPos: 4358, + EndPos: 4361, + }, + }, + Value: []byte("Foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4366, - EndPos: 4380, - }, - Expr: &expr.Isset{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 212, EndLine: 212, StartPos: 4366, - EndPos: 4379, + EndPos: 4380, }, - Variables: []node.Node{ - &expr.Variable{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4372, - EndPos: 4374, - }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprIsset{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4366, + EndPos: 4379, + }, + }, + Vars: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 212, EndLine: 212, StartPos: 4372, EndPos: 4374, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4372, + EndPos: 4374, + }, + }, + Value: []byte("a"), }, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4376, - EndPos: 4378, - }, - VarName: &node.Identifier{ + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 212, EndLine: 212, StartPos: 4376, EndPos: 4378, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 212, + EndLine: 212, + StartPos: 4376, + EndPos: 4378, + }, + }, + Value: []byte("b"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4383, - EndPos: 4394, - }, - Expr: &expr.Isset{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 213, EndLine: 213, StartPos: 4383, - EndPos: 4393, + EndPos: 4394, }, - Variables: []node.Node{ - &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4389, - EndPos: 4392, - }, - Constant: &name.Name{ + }, + Expr: &ast.ExprIsset{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 213, + EndLine: 213, + StartPos: 4383, + EndPos: 4393, + }, + }, + Vars: []ast.Vertex{ + &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 213, EndLine: 213, StartPos: 4389, EndPos: 4392, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4389, - EndPos: 4392, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 213, + EndLine: 213, + StartPos: 4389, + EndPos: 4392, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 213, + EndLine: 213, + StartPos: 4389, + EndPos: 4392, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, @@ -9994,276 +12074,342 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4397, - EndPos: 4409, - }, - Expr: &assign.Assign{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 214, EndLine: 214, StartPos: 4397, - EndPos: 4408, + EndPos: 4409, }, - Variable: &expr.List{ + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ Position: &position.Position{ StartLine: 214, EndLine: 214, StartPos: 4397, - EndPos: 4403, - }, - Items: []node.Node{}, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4406, EndPos: 4408, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4397, + EndPos: 4403, + }, + }, + Items: []ast.Vertex{}, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 214, EndLine: 214, StartPos: 4406, EndPos: 4408, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 214, + EndLine: 214, + StartPos: 4406, + EndPos: 4408, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4412, - EndPos: 4430, - }, - Expr: &assign.Assign{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 215, EndLine: 215, StartPos: 4412, - EndPos: 4429, + EndPos: 4430, }, - Variable: &expr.List{ + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ Position: &position.Position{ StartLine: 215, EndLine: 215, StartPos: 4412, - EndPos: 4424, + EndPos: 4429, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4417, - EndPos: 4419, - }, - Val: &expr.Variable{ + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4412, + EndPos: 4424, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 215, EndLine: 215, StartPos: 4417, EndPos: 4419, }, - VarName: &node.Identifier{ + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 215, EndLine: 215, StartPos: 4417, EndPos: 4419, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4417, + EndPos: 4419, + }, + }, + Value: []byte("a"), }, }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4421, - EndPos: 4423, - }, - Val: &expr.Variable{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 215, EndLine: 215, StartPos: 4421, EndPos: 4423, }, - VarName: &node.Identifier{ + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 215, EndLine: 215, StartPos: 4421, EndPos: 4423, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4421, + EndPos: 4423, + }, + }, + Value: []byte("b"), }, }, }, }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4427, - EndPos: 4429, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 215, EndLine: 215, StartPos: 4427, EndPos: 4429, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 215, + EndLine: 215, + StartPos: 4427, + EndPos: 4429, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4433, - EndPos: 4449, - }, - Expr: &assign.Assign{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 216, EndLine: 216, StartPos: 4433, - EndPos: 4448, + EndPos: 4449, }, - Variable: &expr.List{ + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ Position: &position.Position{ StartLine: 216, EndLine: 216, StartPos: 4433, - EndPos: 4443, + EndPos: 4448, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4438, - EndPos: 4442, - }, - Val: &expr.ArrayDimFetch{ + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4433, + EndPos: 4443, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 216, EndLine: 216, StartPos: 4438, EndPos: 4442, }, - Variable: &expr.Variable{ + }, + Val: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 216, EndLine: 216, StartPos: 4438, - EndPos: 4440, + EndPos: 4442, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 216, EndLine: 216, StartPos: 4438, EndPos: 4440, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4438, + EndPos: 4440, + }, + }, + Value: []byte("a"), }, }, }, }, }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4446, - EndPos: 4448, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 216, EndLine: 216, StartPos: 4446, EndPos: 4448, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 216, + EndLine: 216, + StartPos: 4446, + EndPos: 4448, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4452, - EndPos: 4472, - }, - Expr: &assign.Assign{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 217, EndLine: 217, StartPos: 4452, - EndPos: 4471, + EndPos: 4472, }, - Variable: &expr.List{ + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ Position: &position.Position{ StartLine: 217, EndLine: 217, StartPos: 4452, - EndPos: 4466, + EndPos: 4471, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4457, - EndPos: 4465, - }, - Val: &expr.List{ + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4452, + EndPos: 4466, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 217, EndLine: 217, StartPos: 4457, EndPos: 4465, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4462, - EndPos: 4464, - }, - Val: &expr.Variable{ + }, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4457, + EndPos: 4465, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 217, EndLine: 217, StartPos: 4462, EndPos: 4464, }, - VarName: &node.Identifier{ + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 217, EndLine: 217, StartPos: 4462, EndPos: 4464, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4462, + EndPos: 4464, + }, + }, + Value: []byte("a"), }, }, }, @@ -10272,3654 +12418,4522 @@ func TestPhp5(t *testing.T) { }, }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4469, - EndPos: 4471, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 217, EndLine: 217, StartPos: 4469, EndPos: 4471, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 217, + EndLine: 217, + StartPos: 4469, + EndPos: 4471, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4476, - EndPos: 4486, - }, - Expr: &expr.MethodCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 219, EndLine: 219, StartPos: 4476, - EndPos: 4485, + EndPos: 4486, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 219, EndLine: 219, StartPos: 4476, - EndPos: 4478, + EndPos: 4485, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 219, EndLine: 219, StartPos: 4476, EndPos: 4478, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4476, + EndPos: 4478, + }, + }, + Value: []byte("a"), }, }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4480, - EndPos: 4483, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4480, + EndPos: 4483, + }, }, - Value: "foo", + Value: []byte("foo"), }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4483, - EndPos: 4485, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 219, + EndLine: 219, + StartPos: 4483, + EndPos: 4485, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4489, - EndPos: 4497, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 220, EndLine: 220, StartPos: 4489, - EndPos: 4496, + EndPos: 4497, }, - Class: &name.Name{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4493, + StartPos: 4489, EndPos: 4496, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4493, - EndPos: 4496, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4493, + EndPos: 4496, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 220, + EndLine: 220, + StartPos: 4493, + EndPos: 4496, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4500, - EndPos: 4520, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 221, EndLine: 221, StartPos: 4500, - EndPos: 4519, + EndPos: 4520, }, - Class: &name.Relative{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4504, - EndPos: 4517, + StartPos: 4500, + EndPos: 4519, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4514, - EndPos: 4517, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4504, + EndPos: 4517, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4514, + EndPos: 4517, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4517, - EndPos: 4519, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 221, + EndLine: 221, + StartPos: 4517, + EndPos: 4519, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4523, - EndPos: 4534, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 222, EndLine: 222, StartPos: 4523, - EndPos: 4533, + EndPos: 4534, }, - Class: &name.FullyQualified{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4527, - EndPos: 4531, + StartPos: 4523, + EndPos: 4533, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4528, - EndPos: 4531, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4527, + EndPos: 4531, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4528, + EndPos: 4531, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4531, - EndPos: 4533, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 222, + EndLine: 222, + StartPos: 4531, + EndPos: 4533, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4537, - EndPos: 4547, - }, - Expr: &expr.Print{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 223, EndLine: 223, StartPos: 4537, - EndPos: 4545, + EndPos: 4547, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprPrint{ + Node: ast.Node{ Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4543, + StartPos: 4537, EndPos: 4545, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 223, EndLine: 223, StartPos: 4543, EndPos: 4545, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 223, + EndLine: 223, + StartPos: 4543, + EndPos: 4545, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4550, - EndPos: 4558, - }, - Expr: &expr.PropertyFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 224, EndLine: 224, StartPos: 4550, - EndPos: 4557, + EndPos: 4558, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 224, EndLine: 224, StartPos: 4550, - EndPos: 4552, + EndPos: 4557, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 224, EndLine: 224, StartPos: 4550, EndPos: 4552, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4550, + EndPos: 4552, + }, + }, + Value: []byte("a"), }, }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4554, - EndPos: 4557, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 224, + EndLine: 224, + StartPos: 4554, + EndPos: 4557, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4561, - EndPos: 4572, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 225, EndLine: 225, StartPos: 4561, - EndPos: 4570, + EndPos: 4572, }, - Variable: &expr.PropertyFetch{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 225, EndLine: 225, StartPos: 4561, - EndPos: 4568, + EndPos: 4570, }, - Variable: &expr.Variable{ + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 225, EndLine: 225, StartPos: 4561, - EndPos: 4563, + EndPos: 4568, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 225, EndLine: 225, StartPos: 4561, EndPos: 4563, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4561, + EndPos: 4563, + }, + }, + Value: []byte("a"), }, }, - Property: &node.Identifier{ + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 225, + EndLine: 225, + StartPos: 4565, + EndPos: 4568, + }, + }, + Value: []byte("foo"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4565, - EndPos: 4568, + StartPos: 4569, + EndPos: 4570, }, - Value: "foo", }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4569, - EndPos: 4570, - }, - Value: "1", + Value: []byte("1"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4575, - EndPos: 4604, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, StartPos: 4575, - EndPos: 4602, + EndPos: 4604, }, - Variable: &expr.PropertyFetch{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, StartPos: 4575, - EndPos: 4600, + EndPos: 4602, }, - Variable: &expr.MethodCall{ + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, StartPos: 4575, - EndPos: 4594, + EndPos: 4600, }, - Variable: &expr.PropertyFetch{ + }, + Var: &ast.ExprMethodCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, StartPos: 4575, - EndPos: 4587, + EndPos: 4594, }, - Variable: &expr.PropertyFetch{ + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, StartPos: 4575, - EndPos: 4582, + EndPos: 4587, }, - Variable: &expr.Variable{ + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, StartPos: 4575, - EndPos: 4577, + EndPos: 4582, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, StartPos: 4575, EndPos: 4577, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4575, + EndPos: 4577, + }, + }, + Value: []byte("a"), }, }, - Property: &node.Identifier{ + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4579, + EndPos: 4582, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4579, - EndPos: 4582, + StartPos: 4584, + EndPos: 4587, }, - Value: "foo", }, + Value: []byte("bar"), }, - Property: &node.Identifier{ + }, + Method: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4584, - EndPos: 4587, + StartPos: 4589, + EndPos: 4592, }, - Value: "bar", }, + Value: []byte("baz"), }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4589, - EndPos: 4592, - }, - Value: "baz", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4592, - EndPos: 4594, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4592, + EndPos: 4594, + }, }, }, }, - Property: &node.Identifier{ + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 226, + EndLine: 226, + StartPos: 4596, + EndPos: 4600, + }, + }, + Value: []byte("quux"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4596, - EndPos: 4600, + StartPos: 4601, + EndPos: 4602, }, - Value: "quux", }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4601, - EndPos: 4602, - }, - Value: "0", + Value: []byte("0"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4607, - EndPos: 4623, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 227, EndLine: 227, StartPos: 4607, - EndPos: 4621, + EndPos: 4623, }, - Variable: &expr.ArrayDimFetch{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 227, EndLine: 227, StartPos: 4607, - EndPos: 4618, + EndPos: 4621, }, - Variable: &expr.MethodCall{ + }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 227, EndLine: 227, StartPos: 4607, - EndPos: 4616, + EndPos: 4618, }, - Variable: &expr.Variable{ + }, + Var: &ast.ExprMethodCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 227, EndLine: 227, StartPos: 4607, - EndPos: 4609, + EndPos: 4616, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 227, EndLine: 227, StartPos: 4607, EndPos: 4609, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4607, + EndPos: 4609, + }, + }, + Value: []byte("a"), }, }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4611, - EndPos: 4614, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4611, + EndPos: 4614, + }, }, - Value: "foo", + Value: []byte("foo"), }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4614, - EndPos: 4616, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4614, + EndPos: 4616, + }, }, }, }, - Dim: &scalar.Lnumber{ + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 227, + EndLine: 227, + StartPos: 4617, + EndPos: 4618, + }, + }, + Value: []byte("1"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4617, - EndPos: 4618, + StartPos: 4620, + EndPos: 4621, }, - Value: "1", }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4620, - EndPos: 4621, - }, - Value: "1", + Value: []byte("1"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4626, - EndPos: 4635, - }, - Expr: &expr.ShellExec{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 228, EndLine: 228, StartPos: 4626, - EndPos: 4634, + EndPos: 4635, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4627, - EndPos: 4631, - }, - Value: "cmd ", + }, + Expr: &ast.ExprShellExec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4626, + EndPos: 4634, }, - &expr.Variable{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4631, - EndPos: 4633, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4627, + EndPos: 4631, + }, }, - VarName: &node.Identifier{ + Value: []byte("cmd "), + }, + &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 228, EndLine: 228, StartPos: 4631, EndPos: 4633, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 228, + EndLine: 228, + StartPos: 4631, + EndPos: 4633, + }, + }, + Value: []byte("a"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4638, - EndPos: 4644, - }, - Expr: &expr.ShellExec{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 229, EndLine: 229, StartPos: 4638, - EndPos: 4643, + EndPos: 4644, }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4639, - EndPos: 4642, + }, + Expr: &ast.ExprShellExec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4638, + EndPos: 4643, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 229, + EndLine: 229, + StartPos: 4639, + EndPos: 4642, + }, }, - Value: "cmd", + Value: []byte("cmd"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4647, - EndPos: 4650, - }, - Expr: &expr.ShellExec{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 230, EndLine: 230, StartPos: 4647, - EndPos: 4649, + EndPos: 4650, }, - Parts: []node.Node{}, + }, + Expr: &ast.ExprShellExec{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 230, + EndLine: 230, + StartPos: 4647, + EndPos: 4649, + }, + }, + Parts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4653, - EndPos: 4656, - }, - Expr: &expr.ShortArray{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 231, EndLine: 231, StartPos: 4653, - EndPos: 4655, + EndPos: 4656, }, - Items: []node.Node{}, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 231, + EndLine: 231, + StartPos: 4653, + EndPos: 4655, + }, + }, + Items: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4659, - EndPos: 4663, - }, - Expr: &expr.ShortArray{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 232, EndLine: 232, StartPos: 4659, - EndPos: 4662, + EndPos: 4663, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4660, - EndPos: 4661, - }, - Val: &scalar.Lnumber{ + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4659, + EndPos: 4662, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 232, EndLine: 232, StartPos: 4660, EndPos: 4661, }, - Value: "1", + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 232, + EndLine: 232, + StartPos: 4660, + EndPos: 4661, + }, + }, + Value: []byte("1"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4666, - EndPos: 4679, - }, - Expr: &expr.ShortArray{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 233, EndLine: 233, StartPos: 4666, - EndPos: 4678, + EndPos: 4679, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4667, - EndPos: 4671, - }, - Key: &scalar.Lnumber{ + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4666, + EndPos: 4678, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 233, EndLine: 233, StartPos: 4667, - EndPos: 4668, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4670, EndPos: 4671, }, - Value: "1", + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4667, + EndPos: 4668, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4670, + EndPos: 4671, + }, + }, + Value: []byte("1"), }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4673, - EndPos: 4676, - }, - Val: &expr.Reference{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 233, EndLine: 233, StartPos: 4673, EndPos: 4676, }, - Variable: &expr.Variable{ + }, + Val: &ast.ExprReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4674, + StartPos: 4673, EndPos: 4676, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 233, EndLine: 233, StartPos: 4674, EndPos: 4676, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 233, + EndLine: 233, + StartPos: 4674, + EndPos: 4676, + }, + }, + Value: []byte("b"), }, }, }, }, - &expr.ArrayItem{}, + &ast.ExprArrayItem{}, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4683, - EndPos: 4694, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 235, EndLine: 235, StartPos: 4683, - EndPos: 4693, + EndPos: 4694, }, - Class: &name.Name{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 235, EndLine: 235, StartPos: 4683, - EndPos: 4686, + EndPos: 4693, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4683, - EndPos: 4686, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4683, + EndPos: 4686, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4683, + EndPos: 4686, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4688, - EndPos: 4691, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4688, + EndPos: 4691, + }, }, - Value: "bar", + Value: []byte("bar"), }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4691, - EndPos: 4693, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 235, + EndLine: 235, + StartPos: 4691, + EndPos: 4693, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4697, - EndPos: 4718, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 236, EndLine: 236, StartPos: 4697, - EndPos: 4717, + EndPos: 4718, }, - Class: &name.Relative{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 236, EndLine: 236, StartPos: 4697, - EndPos: 4710, + EndPos: 4717, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4707, - EndPos: 4710, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4697, + EndPos: 4710, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4707, + EndPos: 4710, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4712, - EndPos: 4715, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4712, + EndPos: 4715, + }, }, - Value: "bar", + Value: []byte("bar"), }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4715, - EndPos: 4717, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 236, + EndLine: 236, + StartPos: 4715, + EndPos: 4717, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4721, - EndPos: 4733, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 237, EndLine: 237, StartPos: 4721, - EndPos: 4732, + EndPos: 4733, }, - Class: &name.FullyQualified{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 237, EndLine: 237, StartPos: 4721, - EndPos: 4725, + EndPos: 4732, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4722, - EndPos: 4725, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4721, + EndPos: 4725, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4722, + EndPos: 4725, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4727, - EndPos: 4730, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4727, + EndPos: 4730, + }, }, - Value: "bar", + Value: []byte("bar"), }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4730, - EndPos: 4732, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 237, + EndLine: 237, + StartPos: 4730, + EndPos: 4732, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4736, - EndPos: 4748, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 238, EndLine: 238, StartPos: 4736, - EndPos: 4747, + EndPos: 4748, }, - Class: &name.Name{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 238, EndLine: 238, StartPos: 4736, - EndPos: 4739, + EndPos: 4747, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4736, - EndPos: 4739, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4736, + EndPos: 4739, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4736, + EndPos: 4739, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Call: &expr.Variable{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4741, - EndPos: 4745, - }, - VarName: &node.Identifier{ + Call: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 238, EndLine: 238, StartPos: 4741, EndPos: 4745, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4741, + EndPos: 4745, + }, + }, + Value: []byte("bar"), }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4745, - EndPos: 4747, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 238, + EndLine: 238, + StartPos: 4745, + EndPos: 4747, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4751, - EndPos: 4764, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 239, EndLine: 239, StartPos: 4751, - EndPos: 4763, + EndPos: 4764, }, - Class: &expr.Variable{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 239, EndLine: 239, StartPos: 4751, - EndPos: 4755, + EndPos: 4763, }, - VarName: &node.Identifier{ + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 239, EndLine: 239, StartPos: 4751, EndPos: 4755, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4751, + EndPos: 4755, + }, + }, + Value: []byte("foo"), }, }, - Call: &expr.Variable{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4757, - EndPos: 4761, - }, - VarName: &node.Identifier{ + Call: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 239, EndLine: 239, StartPos: 4757, EndPos: 4761, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4757, + EndPos: 4761, + }, + }, + Value: []byte("bar"), }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4761, - EndPos: 4763, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 239, + EndLine: 239, + StartPos: 4761, + EndPos: 4763, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4767, - EndPos: 4777, - }, - Expr: &expr.StaticPropertyFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 240, EndLine: 240, StartPos: 4767, - EndPos: 4776, + EndPos: 4777, }, - Class: &name.Name{ + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 240, EndLine: 240, StartPos: 4767, - EndPos: 4770, + EndPos: 4776, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4767, - EndPos: 4770, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4767, + EndPos: 4770, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4767, + EndPos: 4770, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4772, - EndPos: 4776, - }, - VarName: &node.Identifier{ + Property: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 240, EndLine: 240, StartPos: 4772, EndPos: 4776, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 240, + EndLine: 240, + StartPos: 4772, + EndPos: 4776, + }, + }, + Value: []byte("bar"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4780, - EndPos: 4800, - }, - Expr: &expr.StaticPropertyFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 241, EndLine: 241, StartPos: 4780, - EndPos: 4799, + EndPos: 4800, }, - Class: &name.Relative{ + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 241, EndLine: 241, StartPos: 4780, - EndPos: 4793, + EndPos: 4799, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4790, - EndPos: 4793, + }, + Class: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4780, + EndPos: 4793, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4790, + EndPos: 4793, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4795, - EndPos: 4799, - }, - VarName: &node.Identifier{ + Property: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 241, EndLine: 241, StartPos: 4795, EndPos: 4799, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 241, + EndLine: 241, + StartPos: 4795, + EndPos: 4799, + }, + }, + Value: []byte("bar"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4803, - EndPos: 4814, - }, - Expr: &expr.StaticPropertyFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 242, EndLine: 242, StartPos: 4803, - EndPos: 4813, + EndPos: 4814, }, - Class: &name.FullyQualified{ + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 242, EndLine: 242, StartPos: 4803, - EndPos: 4807, + EndPos: 4813, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4804, - EndPos: 4807, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4803, + EndPos: 4807, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4804, + EndPos: 4807, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4809, - EndPos: 4813, - }, - VarName: &node.Identifier{ + Property: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 242, EndLine: 242, StartPos: 4809, EndPos: 4813, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 242, + EndLine: 242, + StartPos: 4809, + EndPos: 4813, + }, + }, + Value: []byte("bar"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4817, - EndPos: 4830, - }, - Expr: &expr.Ternary{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 243, EndLine: 243, StartPos: 4817, - EndPos: 4829, + EndPos: 4830, }, - Condition: &expr.Variable{ + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 243, EndLine: 243, StartPos: 4817, - EndPos: 4819, + EndPos: 4829, }, - VarName: &node.Identifier{ + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 243, EndLine: 243, StartPos: 4817, EndPos: 4819, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4817, + EndPos: 4819, + }, + }, + Value: []byte("a"), }, }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4822, - EndPos: 4824, - }, - VarName: &node.Identifier{ + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 243, EndLine: 243, StartPos: 4822, EndPos: 4824, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4822, + EndPos: 4824, + }, + }, + Value: []byte("b"), }, }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4827, - EndPos: 4829, - }, - VarName: &node.Identifier{ + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 243, EndLine: 243, StartPos: 4827, EndPos: 4829, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 243, + EndLine: 243, + StartPos: 4827, + EndPos: 4829, + }, + }, + Value: []byte("c"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4833, - EndPos: 4843, - }, - Expr: &expr.Ternary{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 244, EndLine: 244, StartPos: 4833, - EndPos: 4842, + EndPos: 4843, }, - Condition: &expr.Variable{ + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 244, EndLine: 244, StartPos: 4833, - EndPos: 4835, + EndPos: 4842, }, - VarName: &node.Identifier{ + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 244, EndLine: 244, StartPos: 4833, EndPos: 4835, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4833, + EndPos: 4835, + }, + }, + Value: []byte("a"), }, }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4840, - EndPos: 4842, - }, - VarName: &node.Identifier{ + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 244, EndLine: 244, StartPos: 4840, EndPos: 4842, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 244, + EndLine: 244, + StartPos: 4840, + EndPos: 4842, + }, + }, + Value: []byte("c"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4846, - EndPos: 4869, - }, - Expr: &expr.Ternary{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4846, - EndPos: 4868, + EndPos: 4869, }, - Condition: &expr.Variable{ + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4846, - EndPos: 4848, + EndPos: 4868, }, - VarName: &node.Identifier{ + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4846, EndPos: 4848, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4846, + EndPos: 4848, + }, + }, + Value: []byte("a"), }, }, - IfTrue: &expr.Ternary{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4851, - EndPos: 4863, - }, - Condition: &expr.Variable{ + IfTrue: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4851, - EndPos: 4853, + EndPos: 4863, }, - VarName: &node.Identifier{ + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4851, EndPos: 4853, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4851, + EndPos: 4853, + }, + }, + Value: []byte("b"), }, }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4856, - EndPos: 4858, - }, - VarName: &node.Identifier{ + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4856, EndPos: 4858, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4856, + EndPos: 4858, + }, + }, + Value: []byte("c"), }, }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4861, - EndPos: 4863, - }, - VarName: &node.Identifier{ + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4861, EndPos: 4863, }, - Value: "d", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4861, + EndPos: 4863, + }, + }, + Value: []byte("d"), }, }, }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4866, - EndPos: 4868, - }, - VarName: &node.Identifier{ + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 245, EndLine: 245, StartPos: 4866, EndPos: 4868, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 245, + EndLine: 245, + StartPos: 4866, + EndPos: 4868, + }, + }, + Value: []byte("e"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4872, - EndPos: 4895, - }, - Expr: &expr.Ternary{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4872, - EndPos: 4894, + EndPos: 4895, }, - Condition: &expr.Ternary{ + }, + Expr: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4872, - EndPos: 4884, + EndPos: 4894, }, - Condition: &expr.Variable{ + }, + Condition: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4872, - EndPos: 4874, + EndPos: 4884, }, - VarName: &node.Identifier{ + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4872, EndPos: 4874, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4872, + EndPos: 4874, + }, + }, + Value: []byte("a"), }, }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4877, - EndPos: 4879, - }, - VarName: &node.Identifier{ + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4877, EndPos: 4879, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4877, + EndPos: 4879, + }, + }, + Value: []byte("b"), }, }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4882, - EndPos: 4884, - }, - VarName: &node.Identifier{ + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4882, EndPos: 4884, }, - Value: "c", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4882, + EndPos: 4884, + }, + }, + Value: []byte("c"), }, }, }, - IfTrue: &expr.Variable{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4887, - EndPos: 4889, - }, - VarName: &node.Identifier{ + IfTrue: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4887, EndPos: 4889, }, - Value: "d", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4887, + EndPos: 4889, + }, + }, + Value: []byte("d"), }, }, - IfFalse: &expr.Variable{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4892, - EndPos: 4894, - }, - VarName: &node.Identifier{ + IfFalse: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 246, EndLine: 246, StartPos: 4892, EndPos: 4894, }, - Value: "e", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 246, + EndLine: 246, + StartPos: 4892, + EndPos: 4894, + }, + }, + Value: []byte("e"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4898, - EndPos: 4902, - }, - Expr: &expr.UnaryMinus{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 247, EndLine: 247, StartPos: 4898, - EndPos: 4901, + EndPos: 4902, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprUnaryMinus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4899, + StartPos: 4898, EndPos: 4901, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 247, EndLine: 247, StartPos: 4899, EndPos: 4901, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 247, + EndLine: 247, + StartPos: 4899, + EndPos: 4901, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4905, - EndPos: 4909, - }, - Expr: &expr.UnaryPlus{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 248, EndLine: 248, StartPos: 4905, - EndPos: 4908, + EndPos: 4909, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprUnaryPlus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4906, + StartPos: 4905, EndPos: 4908, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 248, EndLine: 248, StartPos: 4906, EndPos: 4908, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 248, + EndLine: 248, + StartPos: 4906, + EndPos: 4908, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4912, - EndPos: 4916, - }, - Expr: &expr.Variable{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 249, EndLine: 249, StartPos: 4912, - EndPos: 4915, + EndPos: 4916, }, - VarName: &expr.Variable{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4913, + StartPos: 4912, EndPos: 4915, }, - VarName: &node.Identifier{ + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 249, EndLine: 249, StartPos: 4913, EndPos: 4915, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 249, + EndLine: 249, + StartPos: 4913, + EndPos: 4915, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4919, - EndPos: 4924, - }, - Expr: &expr.Variable{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 250, EndLine: 250, StartPos: 4919, - EndPos: 4923, + EndPos: 4924, }, - VarName: &expr.Variable{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4920, + StartPos: 4919, EndPos: 4923, }, - VarName: &expr.Variable{ + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4921, + StartPos: 4920, EndPos: 4923, }, - VarName: &node.Identifier{ + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 250, EndLine: 250, StartPos: 4921, EndPos: 4923, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 250, + EndLine: 250, + StartPos: 4921, + EndPos: 4923, + }, + }, + Value: []byte("a"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4927, - EndPos: 4933, - }, - Expr: &expr.Yield{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 251, EndLine: 251, StartPos: 4927, - EndPos: 4932, + EndPos: 4933, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 251, + EndLine: 251, + StartPos: 4927, + EndPos: 4932, + }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4936, - EndPos: 4945, - }, - Expr: &expr.Yield{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 252, EndLine: 252, StartPos: 4936, - EndPos: 4944, + EndPos: 4945, }, - Value: &expr.Variable{ + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4942, + StartPos: 4936, EndPos: 4944, }, - VarName: &node.Identifier{ + }, + Value: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 252, EndLine: 252, StartPos: 4942, EndPos: 4944, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 252, + EndLine: 252, + StartPos: 4942, + EndPos: 4944, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4948, - EndPos: 4963, - }, - Expr: &expr.Yield{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 253, EndLine: 253, StartPos: 4948, - EndPos: 4962, + EndPos: 4963, }, - Key: &expr.Variable{ + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4954, - EndPos: 4956, + StartPos: 4948, + EndPos: 4962, }, - VarName: &node.Identifier{ + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 253, EndLine: 253, StartPos: 4954, EndPos: 4956, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4954, + EndPos: 4956, + }, + }, + Value: []byte("a"), }, }, - Value: &expr.Variable{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4960, - EndPos: 4962, - }, - VarName: &node.Identifier{ + Value: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 253, EndLine: 253, StartPos: 4960, EndPos: 4962, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 253, + EndLine: 253, + StartPos: 4960, + EndPos: 4962, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4966, - EndPos: 4983, - }, - Expr: &expr.Yield{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 254, EndLine: 254, StartPos: 4966, - EndPos: 4982, + EndPos: 4983, }, - Value: &expr.ClassConstFetch{ + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4972, + StartPos: 4966, EndPos: 4982, }, - Class: &name.Name{ + }, + Value: &ast.ExprClassConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 254, EndLine: 254, StartPos: 4972, - EndPos: 4975, + EndPos: 4982, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4972, - EndPos: 4975, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4972, + EndPos: 4975, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4972, + EndPos: 4975, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4977, - EndPos: 4982, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 254, + EndLine: 254, + StartPos: 4977, + EndPos: 4982, + }, }, - Value: "class", + Value: []byte("class"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4986, - EndPos: 5009, - }, - Expr: &expr.Yield{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 255, EndLine: 255, StartPos: 4986, - EndPos: 5008, + EndPos: 5009, }, - Key: &expr.Variable{ + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4992, - EndPos: 4994, + StartPos: 4986, + EndPos: 5008, }, - VarName: &node.Identifier{ + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 255, EndLine: 255, StartPos: 4992, EndPos: 4994, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4992, + EndPos: 4994, + }, + }, + Value: []byte("a"), }, }, - Value: &expr.ClassConstFetch{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4998, - EndPos: 5008, - }, - Class: &name.Name{ + Value: &ast.ExprClassConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 255, EndLine: 255, StartPos: 4998, - EndPos: 5001, + EndPos: 5008, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4998, - EndPos: 5001, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4998, + EndPos: 5001, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 4998, + EndPos: 5001, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 5003, - EndPos: 5008, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 255, + EndLine: 255, + StartPos: 5003, + EndPos: 5008, + }, }, - Value: "class", + Value: []byte("class"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 5015, - EndPos: 5025, - }, - Expr: &cast.Array{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 257, EndLine: 257, StartPos: 5015, - EndPos: 5024, + EndPos: 5025, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastArray{ + Node: ast.Node{ Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5022, + StartPos: 5015, EndPos: 5024, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 257, EndLine: 257, StartPos: 5022, EndPos: 5024, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 257, + EndLine: 257, + StartPos: 5022, + EndPos: 5024, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 5028, - EndPos: 5040, - }, - Expr: &cast.Bool{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 258, EndLine: 258, StartPos: 5028, - EndPos: 5039, + EndPos: 5040, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastBool{ + Node: ast.Node{ Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5037, + StartPos: 5028, EndPos: 5039, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 258, EndLine: 258, StartPos: 5037, EndPos: 5039, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 258, + EndLine: 258, + StartPos: 5037, + EndPos: 5039, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 5043, - EndPos: 5052, - }, - Expr: &cast.Bool{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 259, EndLine: 259, StartPos: 5043, - EndPos: 5051, + EndPos: 5052, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastBool{ + Node: ast.Node{ Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5049, + StartPos: 5043, EndPos: 5051, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 259, EndLine: 259, StartPos: 5049, EndPos: 5051, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 259, + EndLine: 259, + StartPos: 5049, + EndPos: 5051, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 5055, - EndPos: 5066, - }, - Expr: &cast.Double{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 260, EndLine: 260, StartPos: 5055, - EndPos: 5065, + EndPos: 5066, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastDouble{ + Node: ast.Node{ Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5063, + StartPos: 5055, EndPos: 5065, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 260, EndLine: 260, StartPos: 5063, EndPos: 5065, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 260, + EndLine: 260, + StartPos: 5063, + EndPos: 5065, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 5069, - EndPos: 5079, - }, - Expr: &cast.Double{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 261, EndLine: 261, StartPos: 5069, - EndPos: 5078, + EndPos: 5079, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastDouble{ + Node: ast.Node{ Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5076, + StartPos: 5069, EndPos: 5078, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 261, EndLine: 261, StartPos: 5076, EndPos: 5078, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 261, + EndLine: 261, + StartPos: 5076, + EndPos: 5078, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 5082, - EndPos: 5094, - }, - Expr: &cast.Int{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 262, EndLine: 262, StartPos: 5082, - EndPos: 5093, + EndPos: 5094, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastInt{ + Node: ast.Node{ Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5091, + StartPos: 5082, EndPos: 5093, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 262, EndLine: 262, StartPos: 5091, EndPos: 5093, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 262, + EndLine: 262, + StartPos: 5091, + EndPos: 5093, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 5097, - EndPos: 5105, - }, - Expr: &cast.Int{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 263, EndLine: 263, StartPos: 5097, - EndPos: 5104, + EndPos: 5105, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastInt{ + Node: ast.Node{ Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5102, + StartPos: 5097, EndPos: 5104, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 263, EndLine: 263, StartPos: 5102, EndPos: 5104, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 263, + EndLine: 263, + StartPos: 5102, + EndPos: 5104, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 5108, - EndPos: 5119, - }, - Expr: &cast.Object{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 264, EndLine: 264, StartPos: 5108, - EndPos: 5118, + EndPos: 5119, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastObject{ + Node: ast.Node{ Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5116, + StartPos: 5108, EndPos: 5118, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 264, EndLine: 264, StartPos: 5116, EndPos: 5118, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 264, + EndLine: 264, + StartPos: 5116, + EndPos: 5118, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 5122, - EndPos: 5133, - }, - Expr: &cast.String{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 265, EndLine: 265, StartPos: 5122, - EndPos: 5132, + EndPos: 5133, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastString{ + Node: ast.Node{ Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5130, + StartPos: 5122, EndPos: 5132, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 265, EndLine: 265, StartPos: 5130, EndPos: 5132, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 265, + EndLine: 265, + StartPos: 5130, + EndPos: 5132, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 5136, - EndPos: 5146, - }, - Expr: &cast.Unset{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 266, EndLine: 266, StartPos: 5136, - EndPos: 5145, + EndPos: 5146, }, - Expr: &expr.Variable{ + }, + Expr: &ast.ExprCastUnset{ + Node: ast.Node{ Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5143, + StartPos: 5136, EndPos: 5145, }, - VarName: &node.Identifier{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 266, EndLine: 266, StartPos: 5143, EndPos: 5145, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 266, + EndLine: 266, + StartPos: 5143, + EndPos: 5145, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 5150, - EndPos: 5158, - }, - Expr: &binary.BitwiseAnd{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 268, EndLine: 268, StartPos: 5150, - EndPos: 5157, + EndPos: 5158, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ Position: &position.Position{ StartLine: 268, EndLine: 268, StartPos: 5150, - EndPos: 5152, + EndPos: 5157, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 268, EndLine: 268, StartPos: 5150, EndPos: 5152, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5150, + EndPos: 5152, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 5155, - EndPos: 5157, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 268, EndLine: 268, StartPos: 5155, EndPos: 5157, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 268, + EndLine: 268, + StartPos: 5155, + EndPos: 5157, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 5161, - EndPos: 5169, - }, - Expr: &binary.BitwiseOr{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 269, EndLine: 269, StartPos: 5161, - EndPos: 5168, + EndPos: 5169, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ Position: &position.Position{ StartLine: 269, EndLine: 269, StartPos: 5161, - EndPos: 5163, + EndPos: 5168, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 269, EndLine: 269, StartPos: 5161, EndPos: 5163, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5161, + EndPos: 5163, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 5166, - EndPos: 5168, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 269, EndLine: 269, StartPos: 5166, EndPos: 5168, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 269, + EndLine: 269, + StartPos: 5166, + EndPos: 5168, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 5172, - EndPos: 5180, - }, - Expr: &binary.BitwiseXor{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 270, EndLine: 270, StartPos: 5172, - EndPos: 5179, + EndPos: 5180, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ Position: &position.Position{ StartLine: 270, EndLine: 270, StartPos: 5172, - EndPos: 5174, + EndPos: 5179, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 270, EndLine: 270, StartPos: 5172, EndPos: 5174, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5172, + EndPos: 5174, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 5177, - EndPos: 5179, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 270, EndLine: 270, StartPos: 5177, EndPos: 5179, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 270, + EndLine: 270, + StartPos: 5177, + EndPos: 5179, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 5183, - EndPos: 5192, - }, - Expr: &binary.BooleanAnd{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 271, EndLine: 271, StartPos: 5183, - EndPos: 5191, + EndPos: 5192, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ Position: &position.Position{ StartLine: 271, EndLine: 271, StartPos: 5183, - EndPos: 5185, + EndPos: 5191, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 271, EndLine: 271, StartPos: 5183, EndPos: 5185, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5183, + EndPos: 5185, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 5189, - EndPos: 5191, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 271, EndLine: 271, StartPos: 5189, EndPos: 5191, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 271, + EndLine: 271, + StartPos: 5189, + EndPos: 5191, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 5195, - EndPos: 5204, - }, - Expr: &binary.BooleanOr{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 272, EndLine: 272, StartPos: 5195, - EndPos: 5203, + EndPos: 5204, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ Position: &position.Position{ StartLine: 272, EndLine: 272, StartPos: 5195, - EndPos: 5197, + EndPos: 5203, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 272, EndLine: 272, StartPos: 5195, EndPos: 5197, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5195, + EndPos: 5197, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 5201, - EndPos: 5203, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 272, EndLine: 272, StartPos: 5201, EndPos: 5203, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 272, + EndLine: 272, + StartPos: 5201, + EndPos: 5203, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 5207, - EndPos: 5215, - }, - Expr: &binary.Concat{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 273, EndLine: 273, StartPos: 5207, - EndPos: 5214, + EndPos: 5215, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryConcat{ + Node: ast.Node{ Position: &position.Position{ StartLine: 273, EndLine: 273, StartPos: 5207, - EndPos: 5209, + EndPos: 5214, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 273, EndLine: 273, StartPos: 5207, EndPos: 5209, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5207, + EndPos: 5209, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 5212, - EndPos: 5214, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 273, EndLine: 273, StartPos: 5212, EndPos: 5214, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 273, + EndLine: 273, + StartPos: 5212, + EndPos: 5214, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5218, - EndPos: 5226, - }, - Expr: &binary.Div{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 274, EndLine: 274, StartPos: 5218, - EndPos: 5225, + EndPos: 5226, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryDiv{ + Node: ast.Node{ Position: &position.Position{ StartLine: 274, EndLine: 274, StartPos: 5218, - EndPos: 5220, + EndPos: 5225, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 274, EndLine: 274, StartPos: 5218, EndPos: 5220, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5218, + EndPos: 5220, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 5223, - EndPos: 5225, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 274, EndLine: 274, StartPos: 5223, EndPos: 5225, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 274, + EndLine: 274, + StartPos: 5223, + EndPos: 5225, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5229, - EndPos: 5238, - }, - Expr: &binary.Equal{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 275, EndLine: 275, StartPos: 5229, - EndPos: 5237, + EndPos: 5238, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 275, EndLine: 275, StartPos: 5229, - EndPos: 5231, + EndPos: 5237, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 275, EndLine: 275, StartPos: 5229, EndPos: 5231, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5229, + EndPos: 5231, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 5235, - EndPos: 5237, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 275, EndLine: 275, StartPos: 5235, EndPos: 5237, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 275, + EndLine: 275, + StartPos: 5235, + EndPos: 5237, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5241, - EndPos: 5250, - }, - Expr: &binary.GreaterOrEqual{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 276, EndLine: 276, StartPos: 5241, - EndPos: 5249, + EndPos: 5250, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 276, EndLine: 276, StartPos: 5241, - EndPos: 5243, + EndPos: 5249, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 276, EndLine: 276, StartPos: 5241, EndPos: 5243, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5241, + EndPos: 5243, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 5247, - EndPos: 5249, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 276, EndLine: 276, StartPos: 5247, EndPos: 5249, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 276, + EndLine: 276, + StartPos: 5247, + EndPos: 5249, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5253, - EndPos: 5261, - }, - Expr: &binary.Greater{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 277, EndLine: 277, StartPos: 5253, - EndPos: 5260, + EndPos: 5261, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryGreater{ + Node: ast.Node{ Position: &position.Position{ StartLine: 277, EndLine: 277, StartPos: 5253, - EndPos: 5255, + EndPos: 5260, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 277, EndLine: 277, StartPos: 5253, EndPos: 5255, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5253, + EndPos: 5255, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 5258, - EndPos: 5260, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 277, EndLine: 277, StartPos: 5258, EndPos: 5260, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 277, + EndLine: 277, + StartPos: 5258, + EndPos: 5260, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5264, - EndPos: 5274, - }, - Expr: &binary.Identical{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 278, EndLine: 278, StartPos: 5264, - EndPos: 5273, + EndPos: 5274, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryIdentical{ + Node: ast.Node{ Position: &position.Position{ StartLine: 278, EndLine: 278, StartPos: 5264, - EndPos: 5266, + EndPos: 5273, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 278, EndLine: 278, StartPos: 5264, EndPos: 5266, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5264, + EndPos: 5266, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 5271, - EndPos: 5273, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 278, EndLine: 278, StartPos: 5271, EndPos: 5273, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 278, + EndLine: 278, + StartPos: 5271, + EndPos: 5273, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5277, - EndPos: 5287, - }, - Expr: &binary.LogicalAnd{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 279, EndLine: 279, StartPos: 5277, - EndPos: 5286, + EndPos: 5287, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ Position: &position.Position{ StartLine: 279, EndLine: 279, StartPos: 5277, - EndPos: 5279, + EndPos: 5286, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 279, EndLine: 279, StartPos: 5277, EndPos: 5279, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5277, + EndPos: 5279, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 5284, - EndPos: 5286, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 279, EndLine: 279, StartPos: 5284, EndPos: 5286, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 279, + EndLine: 279, + StartPos: 5284, + EndPos: 5286, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5290, - EndPos: 5299, - }, - Expr: &binary.LogicalOr{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 280, EndLine: 280, StartPos: 5290, - EndPos: 5298, + EndPos: 5299, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ Position: &position.Position{ StartLine: 280, EndLine: 280, StartPos: 5290, - EndPos: 5292, + EndPos: 5298, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 280, EndLine: 280, StartPos: 5290, EndPos: 5292, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5290, + EndPos: 5292, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 5296, - EndPos: 5298, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 280, EndLine: 280, StartPos: 5296, EndPos: 5298, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 280, + EndLine: 280, + StartPos: 5296, + EndPos: 5298, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5302, - EndPos: 5312, - }, - Expr: &binary.LogicalXor{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 281, EndLine: 281, StartPos: 5302, - EndPos: 5311, + EndPos: 5312, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ Position: &position.Position{ StartLine: 281, EndLine: 281, StartPos: 5302, - EndPos: 5304, + EndPos: 5311, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 281, EndLine: 281, StartPos: 5302, EndPos: 5304, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5302, + EndPos: 5304, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 5309, - EndPos: 5311, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 281, EndLine: 281, StartPos: 5309, EndPos: 5311, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 281, + EndLine: 281, + StartPos: 5309, + EndPos: 5311, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5315, - EndPos: 5323, - }, - Expr: &binary.Minus{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 282, EndLine: 282, StartPos: 5315, - EndPos: 5322, + EndPos: 5323, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryMinus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 282, EndLine: 282, StartPos: 5315, - EndPos: 5317, + EndPos: 5322, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 282, EndLine: 282, StartPos: 5315, EndPos: 5317, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5315, + EndPos: 5317, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 5320, - EndPos: 5322, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 282, EndLine: 282, StartPos: 5320, EndPos: 5322, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 282, + EndLine: 282, + StartPos: 5320, + EndPos: 5322, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5326, - EndPos: 5334, - }, - Expr: &binary.Mod{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 283, EndLine: 283, StartPos: 5326, - EndPos: 5333, + EndPos: 5334, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryMod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 283, EndLine: 283, StartPos: 5326, - EndPos: 5328, + EndPos: 5333, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 283, EndLine: 283, StartPos: 5326, EndPos: 5328, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5326, + EndPos: 5328, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 5331, - EndPos: 5333, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 283, EndLine: 283, StartPos: 5331, EndPos: 5333, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 283, + EndLine: 283, + StartPos: 5331, + EndPos: 5333, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5337, - EndPos: 5345, - }, - Expr: &binary.Mul{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 284, EndLine: 284, StartPos: 5337, - EndPos: 5344, + EndPos: 5345, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryMul{ + Node: ast.Node{ Position: &position.Position{ StartLine: 284, EndLine: 284, StartPos: 5337, - EndPos: 5339, + EndPos: 5344, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 284, EndLine: 284, StartPos: 5337, EndPos: 5339, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5337, + EndPos: 5339, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 5342, - EndPos: 5344, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 284, EndLine: 284, StartPos: 5342, EndPos: 5344, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 284, + EndLine: 284, + StartPos: 5342, + EndPos: 5344, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5348, - EndPos: 5357, - }, - Expr: &binary.NotEqual{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 285, EndLine: 285, StartPos: 5348, - EndPos: 5356, + EndPos: 5357, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryNotEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 285, EndLine: 285, StartPos: 5348, - EndPos: 5350, + EndPos: 5356, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 285, EndLine: 285, StartPos: 5348, EndPos: 5350, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5348, + EndPos: 5350, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 5354, - EndPos: 5356, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 285, EndLine: 285, StartPos: 5354, EndPos: 5356, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 285, + EndLine: 285, + StartPos: 5354, + EndPos: 5356, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5360, - EndPos: 5370, - }, - Expr: &binary.NotIdentical{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 286, EndLine: 286, StartPos: 5360, - EndPos: 5369, + EndPos: 5370, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ Position: &position.Position{ StartLine: 286, EndLine: 286, StartPos: 5360, - EndPos: 5362, + EndPos: 5369, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 286, EndLine: 286, StartPos: 5360, EndPos: 5362, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5360, + EndPos: 5362, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 5367, - EndPos: 5369, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 286, EndLine: 286, StartPos: 5367, EndPos: 5369, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 286, + EndLine: 286, + StartPos: 5367, + EndPos: 5369, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5373, - EndPos: 5381, - }, - Expr: &binary.Plus{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 287, EndLine: 287, StartPos: 5373, - EndPos: 5380, + EndPos: 5381, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryPlus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 287, EndLine: 287, StartPos: 5373, - EndPos: 5375, + EndPos: 5380, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 287, EndLine: 287, StartPos: 5373, EndPos: 5375, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5373, + EndPos: 5375, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 5378, - EndPos: 5380, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 287, EndLine: 287, StartPos: 5378, EndPos: 5380, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 287, + EndLine: 287, + StartPos: 5378, + EndPos: 5380, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5384, - EndPos: 5393, - }, - Expr: &binary.Pow{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 288, EndLine: 288, StartPos: 5384, - EndPos: 5392, + EndPos: 5393, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryPow{ + Node: ast.Node{ Position: &position.Position{ StartLine: 288, EndLine: 288, StartPos: 5384, - EndPos: 5386, + EndPos: 5392, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 288, EndLine: 288, StartPos: 5384, EndPos: 5386, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5384, + EndPos: 5386, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 5390, - EndPos: 5392, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 288, EndLine: 288, StartPos: 5390, EndPos: 5392, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 288, + EndLine: 288, + StartPos: 5390, + EndPos: 5392, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5396, - EndPos: 5405, - }, - Expr: &binary.ShiftLeft{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 289, EndLine: 289, StartPos: 5396, - EndPos: 5404, + EndPos: 5405, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ Position: &position.Position{ StartLine: 289, EndLine: 289, StartPos: 5396, - EndPos: 5398, + EndPos: 5404, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 289, EndLine: 289, StartPos: 5396, EndPos: 5398, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5396, + EndPos: 5398, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 5402, - EndPos: 5404, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 289, EndLine: 289, StartPos: 5402, EndPos: 5404, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 289, + EndLine: 289, + StartPos: 5402, + EndPos: 5404, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5408, - EndPos: 5417, - }, - Expr: &binary.ShiftRight{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 290, EndLine: 290, StartPos: 5408, - EndPos: 5416, + EndPos: 5417, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinaryShiftRight{ + Node: ast.Node{ Position: &position.Position{ StartLine: 290, EndLine: 290, StartPos: 5408, - EndPos: 5410, + EndPos: 5416, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 290, EndLine: 290, StartPos: 5408, EndPos: 5410, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5408, + EndPos: 5410, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 5414, - EndPos: 5416, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 290, EndLine: 290, StartPos: 5414, EndPos: 5416, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 290, + EndLine: 290, + StartPos: 5414, + EndPos: 5416, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5420, - EndPos: 5429, - }, - Expr: &binary.SmallerOrEqual{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 291, EndLine: 291, StartPos: 5420, - EndPos: 5428, + EndPos: 5429, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 291, EndLine: 291, StartPos: 5420, - EndPos: 5422, + EndPos: 5428, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 291, EndLine: 291, StartPos: 5420, EndPos: 5422, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5420, + EndPos: 5422, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 5426, - EndPos: 5428, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 291, EndLine: 291, StartPos: 5426, EndPos: 5428, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 291, + EndLine: 291, + StartPos: 5426, + EndPos: 5428, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5432, - EndPos: 5440, - }, - Expr: &binary.Smaller{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 292, EndLine: 292, StartPos: 5432, - EndPos: 5439, + EndPos: 5440, }, - Left: &expr.Variable{ + }, + Expr: &ast.ExprBinarySmaller{ + Node: ast.Node{ Position: &position.Position{ StartLine: 292, EndLine: 292, StartPos: 5432, - EndPos: 5434, + EndPos: 5439, }, - VarName: &node.Identifier{ + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 292, EndLine: 292, StartPos: 5432, EndPos: 5434, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5432, + EndPos: 5434, + }, + }, + Value: []byte("a"), }, }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 5437, - EndPos: 5439, - }, - VarName: &node.Identifier{ + Right: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 292, EndLine: 292, StartPos: 5437, EndPos: 5439, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 292, + EndLine: 292, + StartPos: 5437, + EndPos: 5439, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5444, - EndPos: 5453, - }, - Expr: &assign.Reference{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 294, EndLine: 294, StartPos: 5444, - EndPos: 5452, + EndPos: 5453, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 294, EndLine: 294, StartPos: 5444, - EndPos: 5446, + EndPos: 5452, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 294, EndLine: 294, StartPos: 5444, EndPos: 5446, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5444, + EndPos: 5446, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 5450, - EndPos: 5452, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 294, EndLine: 294, StartPos: 5450, EndPos: 5452, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 294, + EndLine: 294, + StartPos: 5450, + EndPos: 5452, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5456, - EndPos: 5470, - }, - Expr: &assign.Reference{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 295, EndLine: 295, StartPos: 5456, - EndPos: 5469, + EndPos: 5470, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 295, EndLine: 295, StartPos: 5456, - EndPos: 5458, + EndPos: 5469, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 295, EndLine: 295, StartPos: 5456, EndPos: 5458, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5456, + EndPos: 5458, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.New{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5462, - EndPos: 5469, - }, - Class: &name.Name{ + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5466, + StartPos: 5462, EndPos: 5469, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 5466, - EndPos: 5469, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5466, + EndPos: 5469, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 295, + EndLine: 295, + StartPos: 5466, + EndPos: 5469, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5473, - EndPos: 5491, - }, - Expr: &assign.Reference{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 296, EndLine: 296, StartPos: 5473, - EndPos: 5490, + EndPos: 5491, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignReference{ + Node: ast.Node{ Position: &position.Position{ StartLine: 296, EndLine: 296, StartPos: 5473, - EndPos: 5475, + EndPos: 5490, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 296, EndLine: 296, StartPos: 5473, EndPos: 5475, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5473, + EndPos: 5475, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.New{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5479, - EndPos: 5490, - }, - Class: &name.Name{ + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5483, - EndPos: 5486, + StartPos: 5479, + EndPos: 5490, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5483, - EndPos: 5486, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5483, + EndPos: 5486, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5483, + EndPos: 5486, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5486, - EndPos: 5490, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5486, + EndPos: 5490, + }, }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 5487, - EndPos: 5489, - }, - IsReference: false, - Variadic: false, - Expr: &expr.Variable{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ Position: &position.Position{ StartLine: 296, EndLine: 296, StartPos: 5487, EndPos: 5489, }, - VarName: &node.Identifier{ + }, + IsReference: false, + Variadic: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 296, EndLine: 296, StartPos: 5487, EndPos: 5489, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 296, + EndLine: 296, + StartPos: 5487, + EndPos: 5489, + }, + }, + Value: []byte("b"), }, }, }, @@ -13928,765 +16942,885 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5494, - EndPos: 5502, - }, - Expr: &assign.Assign{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 297, EndLine: 297, StartPos: 5494, - EndPos: 5501, + EndPos: 5502, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssign{ + Node: ast.Node{ Position: &position.Position{ StartLine: 297, EndLine: 297, StartPos: 5494, - EndPos: 5496, + EndPos: 5501, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 297, EndLine: 297, StartPos: 5494, EndPos: 5496, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5494, + EndPos: 5496, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 5499, - EndPos: 5501, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 297, EndLine: 297, StartPos: 5499, EndPos: 5501, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 297, + EndLine: 297, + StartPos: 5499, + EndPos: 5501, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5505, - EndPos: 5514, - }, - Expr: &assign.BitwiseAnd{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 298, EndLine: 298, StartPos: 5505, - EndPos: 5513, + EndPos: 5514, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ Position: &position.Position{ StartLine: 298, EndLine: 298, StartPos: 5505, - EndPos: 5507, + EndPos: 5513, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 298, EndLine: 298, StartPos: 5505, EndPos: 5507, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5505, + EndPos: 5507, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 5511, - EndPos: 5513, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 298, EndLine: 298, StartPos: 5511, EndPos: 5513, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 298, + EndLine: 298, + StartPos: 5511, + EndPos: 5513, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5517, - EndPos: 5526, - }, - Expr: &assign.BitwiseOr{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 299, EndLine: 299, StartPos: 5517, - EndPos: 5525, + EndPos: 5526, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ Position: &position.Position{ StartLine: 299, EndLine: 299, StartPos: 5517, - EndPos: 5519, + EndPos: 5525, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 299, EndLine: 299, StartPos: 5517, EndPos: 5519, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5517, + EndPos: 5519, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5523, - EndPos: 5525, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 299, EndLine: 299, StartPos: 5523, EndPos: 5525, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 299, + EndLine: 299, + StartPos: 5523, + EndPos: 5525, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5529, - EndPos: 5538, - }, - Expr: &assign.BitwiseXor{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 300, EndLine: 300, StartPos: 5529, - EndPos: 5537, + EndPos: 5538, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ Position: &position.Position{ StartLine: 300, EndLine: 300, StartPos: 5529, - EndPos: 5531, + EndPos: 5537, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 300, EndLine: 300, StartPos: 5529, EndPos: 5531, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5529, + EndPos: 5531, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5535, - EndPos: 5537, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 300, EndLine: 300, StartPos: 5535, EndPos: 5537, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 300, + EndLine: 300, + StartPos: 5535, + EndPos: 5537, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5541, - EndPos: 5550, - }, - Expr: &assign.Concat{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 301, EndLine: 301, StartPos: 5541, - EndPos: 5549, + EndPos: 5550, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignConcat{ + Node: ast.Node{ Position: &position.Position{ StartLine: 301, EndLine: 301, StartPos: 5541, - EndPos: 5543, + EndPos: 5549, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 301, EndLine: 301, StartPos: 5541, EndPos: 5543, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5541, + EndPos: 5543, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5547, - EndPos: 5549, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 301, EndLine: 301, StartPos: 5547, EndPos: 5549, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 301, + EndLine: 301, + StartPos: 5547, + EndPos: 5549, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5553, - EndPos: 5562, - }, - Expr: &assign.Div{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 302, EndLine: 302, StartPos: 5553, - EndPos: 5561, + EndPos: 5562, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignDiv{ + Node: ast.Node{ Position: &position.Position{ StartLine: 302, EndLine: 302, StartPos: 5553, - EndPos: 5555, + EndPos: 5561, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 302, EndLine: 302, StartPos: 5553, EndPos: 5555, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5553, + EndPos: 5555, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5559, - EndPos: 5561, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 302, EndLine: 302, StartPos: 5559, EndPos: 5561, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 302, + EndLine: 302, + StartPos: 5559, + EndPos: 5561, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5565, - EndPos: 5574, - }, - Expr: &assign.Minus{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 303, EndLine: 303, StartPos: 5565, - EndPos: 5573, + EndPos: 5574, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignMinus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 303, EndLine: 303, StartPos: 5565, - EndPos: 5567, + EndPos: 5573, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 303, EndLine: 303, StartPos: 5565, EndPos: 5567, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5565, + EndPos: 5567, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5571, - EndPos: 5573, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 303, EndLine: 303, StartPos: 5571, EndPos: 5573, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 303, + EndLine: 303, + StartPos: 5571, + EndPos: 5573, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5577, - EndPos: 5586, - }, - Expr: &assign.Mod{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 304, EndLine: 304, StartPos: 5577, - EndPos: 5585, + EndPos: 5586, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignMod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 304, EndLine: 304, StartPos: 5577, - EndPos: 5579, + EndPos: 5585, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 304, EndLine: 304, StartPos: 5577, EndPos: 5579, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5577, + EndPos: 5579, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5583, - EndPos: 5585, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 304, EndLine: 304, StartPos: 5583, EndPos: 5585, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 304, + EndLine: 304, + StartPos: 5583, + EndPos: 5585, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5589, - EndPos: 5598, - }, - Expr: &assign.Mul{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 305, EndLine: 305, StartPos: 5589, - EndPos: 5597, + EndPos: 5598, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignMul{ + Node: ast.Node{ Position: &position.Position{ StartLine: 305, EndLine: 305, StartPos: 5589, - EndPos: 5591, + EndPos: 5597, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 305, EndLine: 305, StartPos: 5589, EndPos: 5591, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5589, + EndPos: 5591, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5595, - EndPos: 5597, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 305, EndLine: 305, StartPos: 5595, EndPos: 5597, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 305, + EndLine: 305, + StartPos: 5595, + EndPos: 5597, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5601, - EndPos: 5610, - }, - Expr: &assign.Plus{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 306, EndLine: 306, StartPos: 5601, - EndPos: 5609, + EndPos: 5610, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignPlus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 306, EndLine: 306, StartPos: 5601, - EndPos: 5603, + EndPos: 5609, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 306, EndLine: 306, StartPos: 5601, EndPos: 5603, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5601, + EndPos: 5603, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5607, - EndPos: 5609, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 306, EndLine: 306, StartPos: 5607, EndPos: 5609, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 306, + EndLine: 306, + StartPos: 5607, + EndPos: 5609, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5613, - EndPos: 5623, - }, - Expr: &assign.Pow{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 307, EndLine: 307, StartPos: 5613, - EndPos: 5622, + EndPos: 5623, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignPow{ + Node: ast.Node{ Position: &position.Position{ StartLine: 307, EndLine: 307, StartPos: 5613, - EndPos: 5615, + EndPos: 5622, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 307, EndLine: 307, StartPos: 5613, EndPos: 5615, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5613, + EndPos: 5615, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5620, - EndPos: 5622, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 307, EndLine: 307, StartPos: 5620, EndPos: 5622, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 307, + EndLine: 307, + StartPos: 5620, + EndPos: 5622, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5626, - EndPos: 5636, - }, - Expr: &assign.ShiftLeft{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 308, EndLine: 308, StartPos: 5626, - EndPos: 5635, + EndPos: 5636, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignShiftLeft{ + Node: ast.Node{ Position: &position.Position{ StartLine: 308, EndLine: 308, StartPos: 5626, - EndPos: 5628, + EndPos: 5635, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 308, EndLine: 308, StartPos: 5626, EndPos: 5628, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5626, + EndPos: 5628, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5633, - EndPos: 5635, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 308, EndLine: 308, StartPos: 5633, EndPos: 5635, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 308, + EndLine: 308, + StartPos: 5633, + EndPos: 5635, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5639, - EndPos: 5649, - }, - Expr: &assign.ShiftRight{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 309, EndLine: 309, StartPos: 5639, - EndPos: 5648, + EndPos: 5649, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprAssignShiftRight{ + Node: ast.Node{ Position: &position.Position{ StartLine: 309, EndLine: 309, StartPos: 5639, - EndPos: 5641, + EndPos: 5648, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 309, EndLine: 309, StartPos: 5639, EndPos: 5641, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5639, + EndPos: 5641, + }, + }, + Value: []byte("a"), }, }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5646, - EndPos: 5648, - }, - VarName: &node.Identifier{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 309, EndLine: 309, StartPos: 5646, EndPos: 5648, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 309, + EndLine: 309, + StartPos: 5646, + EndPos: 5648, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5655, - EndPos: 5667, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 312, EndLine: 312, StartPos: 5655, - EndPos: 5665, + EndPos: 5667, }, - Class: &name.FullyQualified{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5659, - EndPos: 5663, + StartPos: 5655, + EndPos: 5665, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5660, - EndPos: 5663, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5659, + EndPos: 5663, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5660, + EndPos: 5663, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5663, - EndPos: 5665, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 312, + EndLine: 312, + StartPos: 5663, + EndPos: 5665, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5691, - EndPos: 5695, - }, - Expr: &expr.PropertyFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 313, EndLine: 313, StartPos: 5691, - EndPos: 5694, + EndPos: 5695, }, - Variable: &expr.MethodCall{ + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5687, - EndPos: 5689, + StartPos: 5691, + EndPos: 5694, }, - Variable: &expr.New{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5671, - EndPos: 5681, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5675, - EndPos: 5679, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5676, - EndPos: 5679, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5679, - EndPos: 5681, - }, - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5684, - EndPos: 5687, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ + }, + Var: &ast.ExprMethodCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 313, EndLine: 313, @@ -14694,171 +17828,190 @@ func TestPhp5(t *testing.T) { EndPos: 5689, }, }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5691, - EndPos: 5694, + Var: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5671, + EndPos: 5681, + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5675, + EndPos: 5679, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5676, + EndPos: 5679, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5679, + EndPos: 5681, + }, + }, + }, }, - Value: "baz", + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5684, + EndPos: 5687, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5687, + EndPos: 5689, + }, + }, + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 313, + EndLine: 313, + StartPos: 5691, + EndPos: 5694, + }, + }, + Value: []byte("baz"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5714, - EndPos: 5717, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 314, EndLine: 314, StartPos: 5714, - EndPos: 5715, + EndPos: 5717, }, - Variable: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5711, - EndPos: 5712, - }, - Variable: &expr.New{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5699, - EndPos: 5709, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5703, - EndPos: 5707, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5704, - EndPos: 5707, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5707, - EndPos: 5709, - }, - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5711, - EndPos: 5712, - }, - Value: "0", - }, - }, - Dim: &scalar.Lnumber{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 314, EndLine: 314, StartPos: 5714, EndPos: 5715, }, - Value: "0", + }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5711, + EndPos: 5712, + }, + }, + Var: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5699, + EndPos: 5709, + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5703, + EndPos: 5707, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5704, + EndPos: 5707, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5707, + EndPos: 5709, + }, + }, + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5711, + EndPos: 5712, + }, + }, + Value: []byte("0"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 314, + EndLine: 314, + StartPos: 5714, + EndPos: 5715, + }, + }, + Value: []byte("0"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5740, - EndPos: 5743, - }, - Expr: &expr.MethodCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 315, EndLine: 315, StartPos: 5740, - EndPos: 5742, + EndPos: 5743, }, - Variable: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5733, - EndPos: 5734, - }, - Variable: &expr.New{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5721, - EndPos: 5731, - }, - Class: &name.FullyQualified{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5725, - EndPos: 5729, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5726, - EndPos: 5729, - }, - Value: "Foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5729, - EndPos: 5731, - }, - }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5733, - EndPos: 5734, - }, - Value: "0", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5737, - EndPos: 5740, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 315, EndLine: 315, @@ -14866,67 +18019,168 @@ func TestPhp5(t *testing.T) { EndPos: 5742, }, }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5733, + EndPos: 5734, + }, + }, + Var: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5721, + EndPos: 5731, + }, + }, + Class: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5725, + EndPos: 5729, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5726, + EndPos: 5729, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5729, + EndPos: 5731, + }, + }, + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5733, + EndPos: 5734, + }, + }, + Value: []byte("0"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5737, + EndPos: 5740, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 315, + EndLine: 315, + StartPos: 5740, + EndPos: 5742, + }, + }, + }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5747, - EndPos: 5764, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 317, EndLine: 317, StartPos: 5747, - EndPos: 5763, + EndPos: 5764, }, - Variable: &expr.ArrayDimFetch{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 317, EndLine: 317, StartPos: 5747, - EndPos: 5760, + EndPos: 5763, }, - Variable: &expr.Array{ + }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 317, EndLine: 317, StartPos: 5747, - EndPos: 5757, + EndPos: 5760, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5753, - EndPos: 5756, - }, - Val: &expr.ShortArray{ + }, + Var: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5747, + EndPos: 5757, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 317, EndLine: 317, StartPos: 5753, EndPos: 5756, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5754, - EndPos: 5755, - }, - Val: &scalar.Lnumber{ + }, + Val: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5753, + EndPos: 5756, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 317, EndLine: 317, StartPos: 5754, EndPos: 5755, }, - Value: "0", + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5754, + EndPos: 5755, + }, + }, + Value: []byte("0"), }, }, }, @@ -14934,2702 +18188,3324 @@ func TestPhp5(t *testing.T) { }, }, }, - Dim: &scalar.Lnumber{ + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 317, + EndLine: 317, + StartPos: 5758, + EndPos: 5759, + }, + }, + Value: []byte("0"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5758, - EndPos: 5759, + StartPos: 5761, + EndPos: 5762, }, - Value: "0", }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5761, - EndPos: 5762, - }, - Value: "0", + Value: []byte("0"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5767, - EndPos: 5776, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 318, EndLine: 318, StartPos: 5767, - EndPos: 5775, + EndPos: 5776, }, - Variable: &scalar.String{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 318, EndLine: 318, StartPos: 5767, - EndPos: 5772, + EndPos: 5775, }, - Value: "\"foo\"", }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5773, - EndPos: 5774, + Var: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5767, + EndPos: 5772, + }, }, - Value: "0", + Value: []byte("\"foo\""), + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 318, + EndLine: 318, + StartPos: 5773, + EndPos: 5774, + }, + }, + Value: []byte("0"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5779, - EndPos: 5786, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 319, EndLine: 319, StartPos: 5779, - EndPos: 5785, + EndPos: 5786, }, - Variable: &expr.ConstFetch{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 319, EndLine: 319, StartPos: 5779, - EndPos: 5782, + EndPos: 5785, }, - Constant: &name.Name{ + }, + Var: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 319, EndLine: 319, StartPos: 5779, EndPos: 5782, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5779, - EndPos: 5782, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5779, + EndPos: 5782, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5779, + EndPos: 5782, + }, }, - Value: "foo", + Value: []byte("foo"), }, }, }, }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5783, - EndPos: 5784, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 319, + EndLine: 319, + StartPos: 5783, + EndPos: 5784, + }, }, - Value: "0", + Value: []byte("0"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5789, - EndPos: 5801, - }, - Expr: &expr.ClassConstFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 320, EndLine: 320, StartPos: 5789, - EndPos: 5800, + EndPos: 5801, }, - Class: &node.Identifier{ + }, + Expr: &ast.ExprClassConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 320, EndLine: 320, StartPos: 5789, - EndPos: 5795, - }, - Value: "static", - }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5797, EndPos: 5800, }, - Value: "foo", + }, + Class: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5789, + EndPos: 5795, + }, + }, + Value: []byte("static"), + }, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5797, + EndPos: 5800, + }, + }, + Value: []byte("foo"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5805, - EndPos: 5814, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 322, EndLine: 322, StartPos: 5805, - EndPos: 5813, + EndPos: 5814, }, - Class: &expr.Variable{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5809, + StartPos: 5805, EndPos: 5813, }, - VarName: &node.Identifier{ + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 322, EndLine: 322, StartPos: 5809, EndPos: 5813, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 322, + EndLine: 322, + StartPos: 5809, + EndPos: 5813, + }, + }, + Value: []byte("foo"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5817, - EndPos: 5832, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 323, EndLine: 323, StartPos: 5817, - EndPos: 5831, + EndPos: 5832, }, - Class: &expr.StaticPropertyFetch{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5821, + StartPos: 5817, EndPos: 5831, }, - Class: &expr.Variable{ + }, + Class: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 323, EndLine: 323, StartPos: 5821, - EndPos: 5825, + EndPos: 5831, }, - VarName: &node.Identifier{ + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 323, EndLine: 323, StartPos: 5821, EndPos: 5825, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 323, + EndLine: 323, + StartPos: 5821, + EndPos: 5825, + }, + }, + Value: []byte("foo"), }, }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5827, - EndPos: 5831, - }, - VarName: &node.Identifier{ + Property: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 323, EndLine: 323, StartPos: 5827, EndPos: 5831, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 323, + EndLine: 323, + StartPos: 5827, + EndPos: 5831, + }, + }, + Value: []byte("bar"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5835, - EndPos: 5848, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 324, EndLine: 324, StartPos: 5835, - EndPos: 5846, + EndPos: 5848, }, - Class: &expr.ArrayDimFetch{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5845, + StartPos: 5835, EndPos: 5846, }, - Variable: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5843, - EndPos: 5846, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5839, - EndPos: 5844, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5839, - EndPos: 5841, - }, - Value: "a", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5843, - EndPos: 5844, - }, - Value: "b", - }, - }, - Dim: &scalar.Lnumber{ + }, + Class: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 324, EndLine: 324, StartPos: 5845, EndPos: 5846, }, - Value: "0", + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5843, + EndPos: 5846, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5839, + EndPos: 5844, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5839, + EndPos: 5841, + }, + }, + Value: []byte("a"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5843, + EndPos: 5844, + }, + }, + Value: []byte("b"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 324, + EndLine: 324, + StartPos: 5845, + EndPos: 5846, + }, + }, + Value: []byte("0"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5851, - EndPos: 5883, - }, - Expr: &expr.New{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 325, EndLine: 325, StartPos: 5851, - EndPos: 5881, + EndPos: 5883, }, - Class: &expr.ArrayDimFetch{ + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5880, + StartPos: 5851, EndPos: 5881, }, - Variable: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5878, - EndPos: 5881, - }, - Variable: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5874, - EndPos: 5879, - }, - Variable: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5861, - EndPos: 5876, - }, - Variable: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5859, - EndPos: 5871, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5855, - EndPos: 5860, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5855, - EndPos: 5857, - }, - Value: "a", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5859, - EndPos: 5860, - }, - Value: "b", - }, - }, - Dim: &expr.Ternary{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5861, - EndPos: 5871, - }, - Condition: &expr.Variable{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5861, - EndPos: 5863, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5861, - EndPos: 5863, - }, - Value: "b", - }, - }, - IfFalse: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5867, - EndPos: 5871, - }, - Constant: &name.Name{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5867, - EndPos: 5871, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5867, - EndPos: 5871, - }, - Value: "null", - }, - }, - }, - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5874, - EndPos: 5876, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5874, - EndPos: 5876, - }, - Value: "c", - }, - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5878, - EndPos: 5879, - }, - Value: "d", - }, - }, - Dim: &scalar.Lnumber{ + }, + Class: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 325, EndLine: 325, StartPos: 5880, EndPos: 5881, }, - Value: "0", + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5878, + EndPos: 5881, + }, + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5874, + EndPos: 5879, + }, + }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5861, + EndPos: 5876, + }, + }, + Var: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5859, + EndPos: 5871, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5855, + EndPos: 5860, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5855, + EndPos: 5857, + }, + }, + Value: []byte("a"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5859, + EndPos: 5860, + }, + }, + Value: []byte("b"), + }, + }, + Dim: &ast.ExprTernary{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5861, + EndPos: 5871, + }, + }, + Condition: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5861, + EndPos: 5863, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5861, + EndPos: 5863, + }, + }, + Value: []byte("b"), + }, + }, + IfFalse: &ast.ExprConstFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5867, + EndPos: 5871, + }, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5867, + EndPos: 5871, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5867, + EndPos: 5871, + }, + }, + Value: []byte("null"), + }, + }, + }, + }, + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5874, + EndPos: 5876, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5874, + EndPos: 5876, + }, + }, + Value: []byte("c"), + }, + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5878, + EndPos: 5879, + }, + }, + Value: []byte("d"), + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5880, + EndPos: 5881, + }, + }, + Value: []byte("0"), }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5883, - EndPos: 5902, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5883, + EndPos: 5902, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5890, - EndPos: 5901, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 325, EndLine: 325, StartPos: 5890, - EndPos: 5892, + EndPos: 5901, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 325, EndLine: 325, StartPos: 5890, EndPos: 5892, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5890, + EndPos: 5892, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5895, - EndPos: 5901, - }, - Variable: &expr.ShortArray{ + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 325, EndLine: 325, StartPos: 5895, - EndPos: 5898, + EndPos: 5901, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5896, - EndPos: 5897, - }, - Val: &scalar.Lnumber{ + }, + Var: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5895, + EndPos: 5898, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 325, EndLine: 325, StartPos: 5896, EndPos: 5897, }, - Value: "1", + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5896, + EndPos: 5897, + }, + }, + Value: []byte("1"), }, }, }, }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5899, - EndPos: 5900, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 325, + EndLine: 325, + StartPos: 5899, + EndPos: 5900, + }, }, - Value: "0", + Value: []byte("0"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5906, - EndPos: 5921, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5906, + EndPos: 5921, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5913, - EndPos: 5920, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 327, EndLine: 327, StartPos: 5913, - EndPos: 5915, + EndPos: 5920, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 327, EndLine: 327, StartPos: 5913, EndPos: 5915, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5913, + EndPos: 5915, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.BooleanNot{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5918, - EndPos: 5920, - }, - Expr: &scalar.Lnumber{ + Expr: &ast.ExprBooleanNot{ + Node: ast.Node{ Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5919, + StartPos: 5918, EndPos: 5920, }, - Value: "1", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 327, + EndLine: 327, + StartPos: 5919, + EndPos: 5920, + }, + }, + Value: []byte("1"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5924, - EndPos: 5939, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5924, + EndPos: 5939, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5931, - EndPos: 5938, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, StartPos: 5931, - EndPos: 5933, + EndPos: 5938, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, StartPos: 5931, EndPos: 5933, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5931, + EndPos: 5933, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.BitwiseNot{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5936, - EndPos: 5938, - }, - Expr: &scalar.Lnumber{ + Expr: &ast.ExprBitwiseNot{ + Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5937, + StartPos: 5936, EndPos: 5938, }, - Value: "1", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5937, + EndPos: 5938, + }, + }, + Value: []byte("1"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5942, - EndPos: 5957, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5942, + EndPos: 5957, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5949, - EndPos: 5956, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 329, EndLine: 329, StartPos: 5949, - EndPos: 5951, + EndPos: 5956, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 329, EndLine: 329, StartPos: 5949, EndPos: 5951, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5949, + EndPos: 5951, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.UnaryPlus{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5954, - EndPos: 5956, - }, - Expr: &scalar.Lnumber{ + Expr: &ast.ExprUnaryPlus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5955, + StartPos: 5954, EndPos: 5956, }, - Value: "1", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 329, + EndLine: 329, + StartPos: 5955, + EndPos: 5956, + }, + }, + Value: []byte("1"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5960, - EndPos: 5975, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5960, + EndPos: 5975, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5967, - EndPos: 5974, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 330, EndLine: 330, StartPos: 5967, - EndPos: 5969, + EndPos: 5974, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 330, EndLine: 330, StartPos: 5967, EndPos: 5969, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5967, + EndPos: 5969, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.UnaryMinus{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5972, - EndPos: 5974, - }, - Expr: &scalar.Lnumber{ + Expr: &ast.ExprUnaryMinus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5973, + StartPos: 5972, EndPos: 5974, }, - Value: "1", + }, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 330, + EndLine: 330, + StartPos: 5973, + EndPos: 5974, + }, + }, + Value: []byte("1"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5978, - EndPos: 5994, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5978, + EndPos: 5994, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5985, - EndPos: 5992, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 331, EndLine: 331, StartPos: 5985, - EndPos: 5987, + EndPos: 5992, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 331, EndLine: 331, StartPos: 5985, EndPos: 5987, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5985, + EndPos: 5987, + }, + }, + Value: []byte("a"), }, }, - Expr: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5991, - EndPos: 5992, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 331, + EndLine: 331, + StartPos: 5991, + EndPos: 5992, + }, }, - Value: "1", + Value: []byte("1"), }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5997, - EndPos: 6016, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 5997, + EndPos: 6016, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6004, - EndPos: 6015, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 332, EndLine: 332, StartPos: 6004, - EndPos: 6006, + EndPos: 6015, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 332, EndLine: 332, StartPos: 6004, EndPos: 6006, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6004, + EndPos: 6006, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.Ternary{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6009, - EndPos: 6015, - }, - Condition: &scalar.Lnumber{ + Expr: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 332, EndLine: 332, StartPos: 6009, - EndPos: 6010, - }, - Value: "1", - }, - IfFalse: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 6014, EndPos: 6015, }, - Value: "2", + }, + Condition: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6009, + EndPos: 6010, + }, + }, + Value: []byte("1"), + }, + IfFalse: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 332, + EndLine: 332, + StartPos: 6014, + EndPos: 6015, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6019, - EndPos: 6041, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6019, + EndPos: 6041, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6026, - EndPos: 6040, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 333, EndLine: 333, StartPos: 6026, - EndPos: 6028, + EndPos: 6040, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 333, EndLine: 333, StartPos: 6026, EndPos: 6028, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6026, + EndPos: 6028, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.Ternary{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6031, - EndPos: 6040, - }, - Condition: &scalar.Lnumber{ + Expr: &ast.ExprTernary{ + Node: ast.Node{ Position: &position.Position{ StartLine: 333, EndLine: 333, StartPos: 6031, - EndPos: 6032, - }, - Value: "1", - }, - IfTrue: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6035, - EndPos: 6036, - }, - Value: "2", - }, - IfFalse: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 6039, EndPos: 6040, }, - Value: "3", + }, + Condition: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6031, + EndPos: 6032, + }, + }, + Value: []byte("1"), + }, + IfTrue: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6035, + EndPos: 6036, + }, + }, + Value: []byte("2"), + }, + IfFalse: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 333, + EndLine: 333, + StartPos: 6039, + EndPos: 6040, + }, + }, + Value: []byte("3"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6044, - EndPos: 6062, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6044, + EndPos: 6062, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6051, - EndPos: 6061, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 334, EndLine: 334, StartPos: 6051, - EndPos: 6053, + EndPos: 6061, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 334, EndLine: 334, StartPos: 6051, EndPos: 6053, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6051, + EndPos: 6053, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.BitwiseAnd{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6056, - EndPos: 6061, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ Position: &position.Position{ StartLine: 334, EndLine: 334, StartPos: 6056, - EndPos: 6057, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 6060, EndPos: 6061, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6056, + EndPos: 6057, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 334, + EndLine: 334, + StartPos: 6060, + EndPos: 6061, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6065, - EndPos: 6083, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6065, + EndPos: 6083, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6072, - EndPos: 6082, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 335, EndLine: 335, StartPos: 6072, - EndPos: 6074, + EndPos: 6082, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 335, EndLine: 335, StartPos: 6072, EndPos: 6074, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6072, + EndPos: 6074, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.BitwiseOr{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6077, - EndPos: 6082, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ Position: &position.Position{ StartLine: 335, EndLine: 335, StartPos: 6077, - EndPos: 6078, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 6081, EndPos: 6082, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6077, + EndPos: 6078, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 335, + EndLine: 335, + StartPos: 6081, + EndPos: 6082, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6086, - EndPos: 6104, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6086, + EndPos: 6104, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6093, - EndPos: 6103, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 336, EndLine: 336, StartPos: 6093, - EndPos: 6095, + EndPos: 6103, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 336, EndLine: 336, StartPos: 6093, EndPos: 6095, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6093, + EndPos: 6095, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.BitwiseXor{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6098, - EndPos: 6103, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ Position: &position.Position{ StartLine: 336, EndLine: 336, StartPos: 6098, - EndPos: 6099, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 6102, EndPos: 6103, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6098, + EndPos: 6099, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 336, + EndLine: 336, + StartPos: 6102, + EndPos: 6103, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6107, - EndPos: 6126, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6107, + EndPos: 6126, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6114, - EndPos: 6125, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 337, EndLine: 337, StartPos: 6114, - EndPos: 6116, + EndPos: 6125, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 337, EndLine: 337, StartPos: 6114, EndPos: 6116, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6114, + EndPos: 6116, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.BooleanAnd{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6119, - EndPos: 6125, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ Position: &position.Position{ StartLine: 337, EndLine: 337, StartPos: 6119, - EndPos: 6120, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 6124, EndPos: 6125, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6119, + EndPos: 6120, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 337, + EndLine: 337, + StartPos: 6124, + EndPos: 6125, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6129, - EndPos: 6148, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6129, + EndPos: 6148, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6136, - EndPos: 6147, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 338, EndLine: 338, StartPos: 6136, - EndPos: 6138, + EndPos: 6147, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 338, EndLine: 338, StartPos: 6136, EndPos: 6138, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6136, + EndPos: 6138, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.BooleanOr{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6141, - EndPos: 6147, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ Position: &position.Position{ StartLine: 338, EndLine: 338, StartPos: 6141, - EndPos: 6142, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 6146, EndPos: 6147, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6141, + EndPos: 6142, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 338, + EndLine: 338, + StartPos: 6146, + EndPos: 6147, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6151, - EndPos: 6169, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6151, + EndPos: 6169, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6158, - EndPos: 6168, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 339, EndLine: 339, StartPos: 6158, - EndPos: 6160, + EndPos: 6168, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 339, EndLine: 339, StartPos: 6158, EndPos: 6160, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6158, + EndPos: 6160, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Concat{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6163, - EndPos: 6168, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryConcat{ + Node: ast.Node{ Position: &position.Position{ StartLine: 339, EndLine: 339, StartPos: 6163, - EndPos: 6164, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 6167, EndPos: 6168, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6163, + EndPos: 6164, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 339, + EndLine: 339, + StartPos: 6167, + EndPos: 6168, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6172, - EndPos: 6190, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6172, + EndPos: 6190, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6179, - EndPos: 6189, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 340, EndLine: 340, StartPos: 6179, - EndPos: 6181, + EndPos: 6189, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 340, EndLine: 340, StartPos: 6179, EndPos: 6181, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6179, + EndPos: 6181, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Div{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6184, - EndPos: 6189, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryDiv{ + Node: ast.Node{ Position: &position.Position{ StartLine: 340, EndLine: 340, StartPos: 6184, - EndPos: 6185, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 6188, EndPos: 6189, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6184, + EndPos: 6185, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 340, + EndLine: 340, + StartPos: 6188, + EndPos: 6189, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6193, - EndPos: 6212, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6193, + EndPos: 6212, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6200, - EndPos: 6211, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 341, EndLine: 341, StartPos: 6200, - EndPos: 6202, + EndPos: 6211, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 341, EndLine: 341, StartPos: 6200, EndPos: 6202, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6200, + EndPos: 6202, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Equal{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6205, - EndPos: 6211, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 341, EndLine: 341, StartPos: 6205, - EndPos: 6206, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 6210, EndPos: 6211, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6205, + EndPos: 6206, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 341, + EndLine: 341, + StartPos: 6210, + EndPos: 6211, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6215, - EndPos: 6234, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6215, + EndPos: 6234, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6222, - EndPos: 6233, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 342, EndLine: 342, StartPos: 6222, - EndPos: 6224, + EndPos: 6233, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 342, EndLine: 342, StartPos: 6222, EndPos: 6224, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6222, + EndPos: 6224, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.GreaterOrEqual{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6227, - EndPos: 6233, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 342, EndLine: 342, StartPos: 6227, - EndPos: 6228, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 6232, EndPos: 6233, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6227, + EndPos: 6228, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 342, + EndLine: 342, + StartPos: 6232, + EndPos: 6233, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6237, - EndPos: 6255, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6237, + EndPos: 6255, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6244, - EndPos: 6254, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 343, EndLine: 343, StartPos: 6244, - EndPos: 6246, + EndPos: 6254, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 343, EndLine: 343, StartPos: 6244, EndPos: 6246, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6244, + EndPos: 6246, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Greater{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6249, - EndPos: 6254, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryGreater{ + Node: ast.Node{ Position: &position.Position{ StartLine: 343, EndLine: 343, StartPos: 6249, - EndPos: 6250, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 6253, EndPos: 6254, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6249, + EndPos: 6250, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 343, + EndLine: 343, + StartPos: 6253, + EndPos: 6254, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6258, - EndPos: 6278, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6258, + EndPos: 6278, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6265, - EndPos: 6277, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 344, EndLine: 344, StartPos: 6265, - EndPos: 6267, + EndPos: 6277, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 344, EndLine: 344, StartPos: 6265, EndPos: 6267, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6265, + EndPos: 6267, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Identical{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6270, - EndPos: 6277, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryIdentical{ + Node: ast.Node{ Position: &position.Position{ StartLine: 344, EndLine: 344, StartPos: 6270, - EndPos: 6271, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 6276, EndPos: 6277, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6270, + EndPos: 6271, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 344, + EndLine: 344, + StartPos: 6276, + EndPos: 6277, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6281, - EndPos: 6301, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6281, + EndPos: 6301, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6288, - EndPos: 6300, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 345, EndLine: 345, StartPos: 6288, - EndPos: 6290, + EndPos: 6300, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 345, EndLine: 345, StartPos: 6288, EndPos: 6290, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6288, + EndPos: 6290, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.LogicalAnd{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6293, - EndPos: 6300, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ Position: &position.Position{ StartLine: 345, EndLine: 345, StartPos: 6293, - EndPos: 6294, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 6299, EndPos: 6300, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6293, + EndPos: 6294, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 345, + EndLine: 345, + StartPos: 6299, + EndPos: 6300, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6304, - EndPos: 6323, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6304, + EndPos: 6323, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6311, - EndPos: 6322, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 346, EndLine: 346, StartPos: 6311, - EndPos: 6313, + EndPos: 6322, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 346, EndLine: 346, StartPos: 6311, EndPos: 6313, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6311, + EndPos: 6313, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.LogicalOr{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6316, - EndPos: 6322, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ Position: &position.Position{ StartLine: 346, EndLine: 346, StartPos: 6316, - EndPos: 6317, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 6321, EndPos: 6322, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6316, + EndPos: 6317, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 346, + EndLine: 346, + StartPos: 6321, + EndPos: 6322, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6326, - EndPos: 6346, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6326, + EndPos: 6346, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6333, - EndPos: 6345, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 347, EndLine: 347, StartPos: 6333, - EndPos: 6335, + EndPos: 6345, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 347, EndLine: 347, StartPos: 6333, EndPos: 6335, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6333, + EndPos: 6335, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.LogicalXor{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6338, - EndPos: 6345, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ Position: &position.Position{ StartLine: 347, EndLine: 347, StartPos: 6338, - EndPos: 6339, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 6344, EndPos: 6345, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6338, + EndPos: 6339, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 347, + EndLine: 347, + StartPos: 6344, + EndPos: 6345, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 6349, - EndPos: 6367, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6349, + EndPos: 6367, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 6356, - EndPos: 6366, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 348, EndLine: 348, StartPos: 6356, - EndPos: 6358, + EndPos: 6366, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 348, EndLine: 348, StartPos: 6356, EndPos: 6358, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6356, + EndPos: 6358, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Minus{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 6361, - EndPos: 6366, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryMinus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 348, EndLine: 348, StartPos: 6361, - EndPos: 6362, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 6365, EndPos: 6366, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6361, + EndPos: 6362, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 348, + EndLine: 348, + StartPos: 6365, + EndPos: 6366, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 6370, - EndPos: 6388, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6370, + EndPos: 6388, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 6377, - EndPos: 6387, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 349, EndLine: 349, StartPos: 6377, - EndPos: 6379, + EndPos: 6387, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 349, EndLine: 349, StartPos: 6377, EndPos: 6379, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6377, + EndPos: 6379, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Mod{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 6382, - EndPos: 6387, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryMod{ + Node: ast.Node{ Position: &position.Position{ StartLine: 349, EndLine: 349, StartPos: 6382, - EndPos: 6383, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 6386, EndPos: 6387, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6382, + EndPos: 6383, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 349, + EndLine: 349, + StartPos: 6386, + EndPos: 6387, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 6391, - EndPos: 6409, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6391, + EndPos: 6409, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 6398, - EndPos: 6408, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 350, EndLine: 350, StartPos: 6398, - EndPos: 6400, + EndPos: 6408, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 350, EndLine: 350, StartPos: 6398, EndPos: 6400, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6398, + EndPos: 6400, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Mul{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 6403, - EndPos: 6408, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryMul{ + Node: ast.Node{ Position: &position.Position{ StartLine: 350, EndLine: 350, StartPos: 6403, - EndPos: 6404, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 6407, EndPos: 6408, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6403, + EndPos: 6404, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 350, + EndLine: 350, + StartPos: 6407, + EndPos: 6408, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 6412, - EndPos: 6431, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6412, + EndPos: 6431, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 6419, - EndPos: 6430, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 351, EndLine: 351, StartPos: 6419, - EndPos: 6421, + EndPos: 6430, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 351, EndLine: 351, StartPos: 6419, EndPos: 6421, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6419, + EndPos: 6421, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.NotEqual{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 6424, - EndPos: 6430, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryNotEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 351, EndLine: 351, StartPos: 6424, - EndPos: 6425, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 6429, EndPos: 6430, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6424, + EndPos: 6425, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 351, + EndLine: 351, + StartPos: 6429, + EndPos: 6430, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 6434, - EndPos: 6454, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6434, + EndPos: 6454, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 6441, - EndPos: 6453, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 352, EndLine: 352, StartPos: 6441, - EndPos: 6443, + EndPos: 6453, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 352, EndLine: 352, StartPos: 6441, EndPos: 6443, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6441, + EndPos: 6443, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.NotIdentical{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 6446, - EndPos: 6453, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ Position: &position.Position{ StartLine: 352, EndLine: 352, StartPos: 6446, - EndPos: 6447, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 6452, EndPos: 6453, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6446, + EndPos: 6447, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 352, + EndLine: 352, + StartPos: 6452, + EndPos: 6453, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 6457, - EndPos: 6475, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6457, + EndPos: 6475, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 6464, - EndPos: 6474, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 353, EndLine: 353, StartPos: 6464, - EndPos: 6466, + EndPos: 6474, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 353, EndLine: 353, StartPos: 6464, EndPos: 6466, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6464, + EndPos: 6466, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Plus{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 6469, - EndPos: 6474, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryPlus{ + Node: ast.Node{ Position: &position.Position{ StartLine: 353, EndLine: 353, StartPos: 6469, - EndPos: 6470, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 6473, EndPos: 6474, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6469, + EndPos: 6470, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 353, + EndLine: 353, + StartPos: 6473, + EndPos: 6474, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 6478, - EndPos: 6497, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6478, + EndPos: 6497, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 6485, - EndPos: 6496, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 354, EndLine: 354, StartPos: 6485, - EndPos: 6487, + EndPos: 6496, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 354, EndLine: 354, StartPos: 6485, EndPos: 6487, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6485, + EndPos: 6487, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Pow{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 6490, - EndPos: 6496, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryPow{ + Node: ast.Node{ Position: &position.Position{ StartLine: 354, EndLine: 354, StartPos: 6490, - EndPos: 6491, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 6495, EndPos: 6496, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6490, + EndPos: 6491, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 354, + EndLine: 354, + StartPos: 6495, + EndPos: 6496, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 6500, - EndPos: 6519, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6500, + EndPos: 6519, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 6507, - EndPos: 6518, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 355, EndLine: 355, StartPos: 6507, - EndPos: 6509, + EndPos: 6518, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 355, EndLine: 355, StartPos: 6507, EndPos: 6509, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6507, + EndPos: 6509, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.ShiftLeft{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 6512, - EndPos: 6518, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ Position: &position.Position{ StartLine: 355, EndLine: 355, StartPos: 6512, - EndPos: 6513, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 6517, EndPos: 6518, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6512, + EndPos: 6513, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 355, + EndLine: 355, + StartPos: 6517, + EndPos: 6518, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 6522, - EndPos: 6541, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6522, + EndPos: 6541, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 6529, - EndPos: 6540, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 356, EndLine: 356, StartPos: 6529, - EndPos: 6531, + EndPos: 6540, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 356, EndLine: 356, StartPos: 6529, EndPos: 6531, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6529, + EndPos: 6531, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.ShiftRight{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 6534, - EndPos: 6540, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinaryShiftRight{ + Node: ast.Node{ Position: &position.Position{ StartLine: 356, EndLine: 356, StartPos: 6534, - EndPos: 6535, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 6539, EndPos: 6540, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6534, + EndPos: 6535, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 356, + EndLine: 356, + StartPos: 6539, + EndPos: 6540, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 6544, - EndPos: 6563, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6544, + EndPos: 6563, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 6551, - EndPos: 6562, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 357, EndLine: 357, StartPos: 6551, - EndPos: 6553, + EndPos: 6562, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 357, EndLine: 357, StartPos: 6551, EndPos: 6553, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6551, + EndPos: 6553, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.SmallerOrEqual{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 6556, - EndPos: 6562, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ Position: &position.Position{ StartLine: 357, EndLine: 357, StartPos: 6556, - EndPos: 6557, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 6561, EndPos: 6562, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6556, + EndPos: 6557, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 357, + EndLine: 357, + StartPos: 6561, + EndPos: 6562, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 6566, - EndPos: 6584, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6566, + EndPos: 6584, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 6573, - EndPos: 6583, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 358, EndLine: 358, StartPos: 6573, - EndPos: 6575, + EndPos: 6583, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 358, EndLine: 358, StartPos: 6573, EndPos: 6575, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6573, + EndPos: 6575, + }, + }, + Value: []byte("a"), }, }, - Expr: &binary.Smaller{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 6578, - EndPos: 6583, - }, - Left: &scalar.Lnumber{ + Expr: &ast.ExprBinarySmaller{ + Node: ast.Node{ Position: &position.Position{ StartLine: 358, EndLine: 358, StartPos: 6578, - EndPos: 6579, - }, - Value: "1", - }, - Right: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 6582, EndPos: 6583, }, - Value: "2", + }, + Left: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6578, + EndPos: 6579, + }, + }, + Value: []byte("1"), + }, + Right: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 358, + EndLine: 358, + StartPos: 6582, + EndPos: 6583, + }, + }, + Value: []byte("2"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 6587, - EndPos: 6608, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6587, + EndPos: 6608, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 6594, - EndPos: 6607, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 359, EndLine: 359, StartPos: 6594, - EndPos: 6596, + EndPos: 6607, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 359, EndLine: 359, StartPos: 6594, EndPos: 6596, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6594, + EndPos: 6596, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.ClassConstFetch{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 6599, - EndPos: 6607, - }, - Class: &name.Name{ + Expr: &ast.ExprClassConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 359, EndLine: 359, StartPos: 6599, - EndPos: 6602, + EndPos: 6607, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 6599, - EndPos: 6602, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6599, + EndPos: 6602, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6599, + EndPos: 6602, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 6604, - EndPos: 6607, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 359, + EndLine: 359, + StartPos: 6604, + EndPos: 6607, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6611, - EndPos: 6634, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6611, + EndPos: 6634, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6618, - EndPos: 6633, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 360, EndLine: 360, StartPos: 6618, - EndPos: 6620, + EndPos: 6633, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 360, EndLine: 360, StartPos: 6618, EndPos: 6620, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6618, + EndPos: 6620, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.ClassConstFetch{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6623, - EndPos: 6633, - }, - Class: &name.Name{ + Expr: &ast.ExprClassConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 360, EndLine: 360, StartPos: 6623, - EndPos: 6626, + EndPos: 6633, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6623, - EndPos: 6626, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6623, + EndPos: 6626, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6623, + EndPos: 6626, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6628, - EndPos: 6633, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 360, + EndLine: 360, + StartPos: 6628, + EndPos: 6633, + }, }, - Value: "class", + Value: []byte("class"), }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6637, - EndPos: 6659, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6637, + EndPos: 6659, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6644, - EndPos: 6658, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 361, EndLine: 361, StartPos: 6644, - EndPos: 6646, + EndPos: 6658, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 361, EndLine: 361, StartPos: 6644, EndPos: 6646, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6644, + EndPos: 6646, + }, + }, + Value: []byte("a"), }, }, - Expr: &scalar.MagicConstant{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6649, - EndPos: 6658, + Expr: &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 361, + EndLine: 361, + StartPos: 6649, + EndPos: 6658, + }, }, - Value: "__CLASS__", + Value: []byte("__CLASS__"), }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6662, - EndPos: 6678, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6662, + EndPos: 6678, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6669, - EndPos: 6677, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 362, EndLine: 362, StartPos: 6669, - EndPos: 6671, + EndPos: 6677, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 362, EndLine: 362, StartPos: 6669, EndPos: 6671, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6669, + EndPos: 6671, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6674, - EndPos: 6677, - }, - Constant: &name.Name{ + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 362, EndLine: 362, StartPos: 6674, EndPos: 6677, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6674, - EndPos: 6677, + }, + Const: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6674, + EndPos: 6677, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 362, + EndLine: 362, + StartPos: 6674, + EndPos: 6677, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, @@ -17637,61 +21513,75 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6681, - EndPos: 6707, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6681, + EndPos: 6707, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6688, - EndPos: 6706, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 363, EndLine: 363, StartPos: 6688, - EndPos: 6690, + EndPos: 6706, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 363, EndLine: 363, StartPos: 6688, EndPos: 6690, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6688, + EndPos: 6690, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6693, - EndPos: 6706, - }, - Constant: &name.Relative{ + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 363, EndLine: 363, StartPos: 6693, EndPos: 6706, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6703, - EndPos: 6706, + }, + Const: &ast.NameRelative{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6693, + EndPos: 6706, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 363, + EndLine: 363, + StartPos: 6703, + EndPos: 6706, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, @@ -17699,61 +21589,75 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6710, - EndPos: 6727, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6710, + EndPos: 6727, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6717, - EndPos: 6726, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 364, EndLine: 364, StartPos: 6717, - EndPos: 6719, + EndPos: 6726, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 364, EndLine: 364, StartPos: 6717, EndPos: 6719, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6717, + EndPos: 6719, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.ConstFetch{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6722, - EndPos: 6726, - }, - Constant: &name.FullyQualified{ + Expr: &ast.ExprConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 364, EndLine: 364, StartPos: 6722, EndPos: 6726, }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6723, - EndPos: 6726, + }, + Const: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6722, + EndPos: 6726, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 364, + EndLine: 364, + StartPos: 6723, + EndPos: 6726, + }, }, - Value: "Foo", + Value: []byte("Foo"), }, }, }, @@ -17761,130 +21665,160 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6730, - EndPos: 6750, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6730, + EndPos: 6750, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6737, - EndPos: 6749, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 365, EndLine: 365, StartPos: 6737, - EndPos: 6739, + EndPos: 6749, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 365, EndLine: 365, StartPos: 6737, EndPos: 6739, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6737, + EndPos: 6739, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6742, - EndPos: 6749, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 365, + EndLine: 365, + StartPos: 6742, + EndPos: 6749, + }, }, }, }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6753, - EndPos: 6782, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6753, + EndPos: 6782, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6760, - EndPos: 6781, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 366, EndLine: 366, StartPos: 6760, - EndPos: 6762, + EndPos: 6781, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 366, EndLine: 366, StartPos: 6760, EndPos: 6762, }, - Value: "a", }, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6765, - EndPos: 6781, - }, - Items: []node.Node{ - &expr.ArrayItem{ + VarName: &ast.Identifier{ + Node: ast.Node{ Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6771, - EndPos: 6777, + StartPos: 6760, + EndPos: 6762, }, - Key: &scalar.Lnumber{ + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6765, + EndPos: 6781, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 366, EndLine: 366, StartPos: 6771, - EndPos: 6772, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6776, EndPos: 6777, }, - Value: "1", + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6771, + EndPos: 6772, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6776, + EndPos: 6777, + }, + }, + Value: []byte("1"), }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6779, - EndPos: 6780, - }, - Val: &scalar.Lnumber{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 366, EndLine: 366, StartPos: 6779, EndPos: 6780, }, - Value: "2", + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 366, + EndLine: 366, + StartPos: 6779, + EndPos: 6780, + }, + }, + Value: []byte("2"), }, }, }, @@ -17892,510 +21826,630 @@ func TestPhp5(t *testing.T) { }, }, }, - &stmt.Static{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6785, - EndPos: 6812, + &ast.StmtStatic{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6785, + EndPos: 6812, + }, }, - Vars: []node.Node{ - &stmt.StaticVar{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6792, - EndPos: 6811, - }, - Variable: &expr.Variable{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ Position: &position.Position{ StartLine: 367, EndLine: 367, StartPos: 6792, - EndPos: 6794, + EndPos: 6811, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 367, EndLine: 367, StartPos: 6792, EndPos: 6794, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6792, + EndPos: 6794, + }, + }, + Value: []byte("a"), }, }, - Expr: &expr.ArrayDimFetch{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6797, - EndPos: 6811, - }, - Variable: &expr.ShortArray{ + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 367, EndLine: 367, StartPos: 6797, - EndPos: 6808, + EndPos: 6811, }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6798, - EndPos: 6799, - }, - Val: &scalar.Lnumber{ + }, + Var: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6797, + EndPos: 6808, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 367, EndLine: 367, StartPos: 6798, EndPos: 6799, }, - Value: "1", + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6798, + EndPos: 6799, + }, + }, + Value: []byte("1"), }, }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6801, - EndPos: 6807, - }, - Key: &scalar.Lnumber{ + &ast.ExprArrayItem{ + Node: ast.Node{ Position: &position.Position{ StartLine: 367, EndLine: 367, StartPos: 6801, - EndPos: 6802, - }, - Value: "2", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6806, EndPos: 6807, }, - Value: "2", + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6801, + EndPos: 6802, + }, + }, + Value: []byte("2"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6806, + EndPos: 6807, + }, + }, + Value: []byte("2"), }, }, }, }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6809, - EndPos: 6810, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 367, + EndLine: 367, + StartPos: 6809, + EndPos: 6810, + }, }, - Value: "0", + Value: []byte("0"), }, }, }, }, }, - &stmt.If{ - Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6816, - EndPos: 6831, - }, - Cond: &expr.Yield{ + &ast.StmtIf{ + Node: ast.Node{ Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6820, - EndPos: 6827, + StartPos: 6816, + EndPos: 6831, }, - Value: &scalar.Lnumber{ + }, + Cond: &ast.ExprYield{ + Node: ast.Node{ Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6826, + StartPos: 6820, EndPos: 6827, }, - Value: "1", + }, + Value: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6826, + EndPos: 6827, + }, + }, + Value: []byte("1"), }, }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6829, - EndPos: 6831, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 369, + EndLine: 369, + StartPos: 6829, + EndPos: 6831, + }, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6834, - EndPos: 6845, - }, - Expr: &expr.StaticPropertyFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 370, EndLine: 370, StartPos: 6834, - EndPos: 6844, + EndPos: 6845, }, - Class: &name.Name{ + }, + Expr: &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 370, EndLine: 370, StartPos: 6834, - EndPos: 6837, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6834, - EndPos: 6837, - }, - Value: "Foo", - }, - }, - }, - Property: &expr.Variable{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6839, EndPos: 6844, }, - VarName: &expr.Variable{ + }, + Class: &ast.NameName{ + Node: ast.Node{ Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6840, + StartPos: 6834, + EndPos: 6837, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 370, + EndLine: 370, + StartPos: 6834, + EndPos: 6837, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Property: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 370, + EndLine: 370, + StartPos: 6839, EndPos: 6844, }, - VarName: &node.Identifier{ + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 370, EndLine: 370, StartPos: 6840, EndPos: 6844, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 370, + EndLine: 370, + StartPos: 6840, + EndPos: 6844, + }, + }, + Value: []byte("bar"), }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6849, - EndPos: 6856, - }, - Expr: &expr.FunctionCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 372, EndLine: 372, StartPos: 6849, - EndPos: 6855, + EndPos: 6856, }, - Function: &expr.Variable{ + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 372, EndLine: 372, StartPos: 6849, - EndPos: 6853, + EndPos: 6855, }, - VarName: &node.Identifier{ + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 372, EndLine: 372, StartPos: 6849, EndPos: 6853, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6849, + EndPos: 6853, + }, + }, + Value: []byte("foo"), }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6853, - EndPos: 6855, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 372, + EndLine: 372, + StartPos: 6853, + EndPos: 6855, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6859, - EndPos: 6872, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 373, EndLine: 373, StartPos: 6859, - EndPos: 6871, + EndPos: 6872, }, - Variable: &expr.ArrayDimFetch{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 373, EndLine: 373, StartPos: 6859, - EndPos: 6868, + EndPos: 6871, }, - Variable: &expr.FunctionCall{ + }, + Var: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 373, EndLine: 373, StartPos: 6859, - EndPos: 6865, + EndPos: 6868, }, - Function: &expr.Variable{ + }, + Var: &ast.ExprFunctionCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 373, EndLine: 373, StartPos: 6859, - EndPos: 6863, + EndPos: 6865, }, - VarName: &node.Identifier{ + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 373, EndLine: 373, StartPos: 6859, EndPos: 6863, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 373, + EndLine: 373, + StartPos: 6859, + EndPos: 6863, + }, + }, + Value: []byte("foo"), }, }, - ArgumentList: &node.ArgumentList{ + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 373, + EndLine: 373, + StartPos: 6863, + EndPos: 6865, + }, + }, + }, + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6863, - EndPos: 6865, + StartPos: 6866, + EndPos: 6867, }, }, + Value: []byte("0"), }, - Dim: &scalar.Lnumber{ + }, + Dim: &ast.ScalarLnumber{ + Node: ast.Node{ Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6866, - EndPos: 6867, + StartPos: 6869, + EndPos: 6870, }, - Value: "0", }, - }, - Dim: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6869, - EndPos: 6870, - }, - Value: "0", + Value: []byte("0"), }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6875, - EndPos: 6882, - }, - Expr: &expr.ArrayDimFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 374, EndLine: 374, StartPos: 6875, - EndPos: 6881, + EndPos: 6882, }, - Variable: &expr.Variable{ + }, + Expr: &ast.ExprArrayDimFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 374, EndLine: 374, StartPos: 6875, - EndPos: 6877, + EndPos: 6881, }, - VarName: &node.Identifier{ + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 374, EndLine: 374, StartPos: 6875, EndPos: 6877, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 374, + EndLine: 374, + StartPos: 6875, + EndPos: 6877, + }, + }, + Value: []byte("a"), }, }, - Dim: &expr.Variable{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6878, - EndPos: 6880, - }, - VarName: &node.Identifier{ + Dim: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 374, EndLine: 374, StartPos: 6878, EndPos: 6880, }, - Value: "b", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 374, + EndLine: 374, + StartPos: 6878, + EndPos: 6880, + }, + }, + Value: []byte("b"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6885, - EndPos: 6891, - }, - Expr: &expr.Variable{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 375, EndLine: 375, StartPos: 6885, - EndPos: 6890, + EndPos: 6891, }, - VarName: &expr.Variable{ + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6887, - EndPos: 6889, + StartPos: 6885, + EndPos: 6890, }, - VarName: &node.Identifier{ + }, + VarName: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 375, EndLine: 375, StartPos: 6887, EndPos: 6889, }, - Value: "a", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 375, + EndLine: 375, + StartPos: 6887, + EndPos: 6889, + }, + }, + Value: []byte("a"), }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6894, - EndPos: 6909, - }, - Expr: &expr.StaticCall{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 376, EndLine: 376, StartPos: 6894, - EndPos: 6908, + EndPos: 6909, }, - Class: &expr.Variable{ + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ Position: &position.Position{ StartLine: 376, EndLine: 376, StartPos: 6894, - EndPos: 6898, + EndPos: 6908, }, - VarName: &node.Identifier{ + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 376, EndLine: 376, StartPos: 6894, EndPos: 6898, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6894, + EndPos: 6898, + }, + }, + Value: []byte("foo"), }, }, - Call: &expr.Variable{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6900, - EndPos: 6906, - }, - VarName: &node.Identifier{ + Call: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6901, - EndPos: 6905, + StartPos: 6900, + EndPos: 6906, }, - Value: "bar", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6901, + EndPos: 6905, + }, + }, + Value: []byte("bar"), }, }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6906, - EndPos: 6908, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 376, + EndLine: 376, + StartPos: 6906, + EndPos: 6908, + }, }, }, }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6912, - EndPos: 6922, - }, - Expr: &expr.ClassConstFetch{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 377, EndLine: 377, StartPos: 6912, - EndPos: 6921, + EndPos: 6922, }, - Class: &expr.Variable{ + }, + Expr: &ast.ExprClassConstFetch{ + Node: ast.Node{ Position: &position.Position{ StartLine: 377, EndLine: 377, StartPos: 6912, - EndPos: 6916, + EndPos: 6921, }, - VarName: &node.Identifier{ + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ Position: &position.Position{ StartLine: 377, EndLine: 377, StartPos: 6912, EndPos: 6916, }, - Value: "foo", + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 377, + EndLine: 377, + StartPos: 6912, + EndPos: 6916, + }, + }, + Value: []byte("foo"), }, }, - ConstantName: &node.Identifier{ - Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6918, - EndPos: 6921, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 377, + EndLine: 377, + StartPos: 6918, + EndPos: 6921, + }, }, - Value: "bar", + Value: []byte("bar"), }, }, }, - &stmt.HaltCompiler{ - Position: &position.Position{ - StartLine: 379, - EndLine: 379, - StartPos: 6926, - EndPos: 6944, + &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 379, + EndLine: 379, + StartPos: 6926, + EndPos: 6944, + }, }, }, }, @@ -18420,97 +22474,119 @@ func TestPhp5Strings(t *testing.T) { '; ` - expected := &node.Root{ - Position: &position.Position{ - StartLine: 2, - EndLine: 10, - StartPos: 5, - EndPos: 70, + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 10, + StartPos: 5, + EndPos: 70, + }, }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 5, - EndPos: 12, - }, - Expr: &scalar.String{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 5, - EndPos: 11, + EndPos: 12, }, - Value: "\"test\"", + }, + Expr: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 11, + }, + }, + Value: []byte("\"test\""), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 15, - EndPos: 24, - }, - Expr: &scalar.String{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 15, - EndPos: 23, + EndPos: 24, }, - Value: "\"\\$test\"", + }, + Expr: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 15, + EndPos: 23, + }, + }, + Value: []byte("\"\\$test\""), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 4, - EndLine: 6, - StartPos: 27, - EndPos: 41, - }, - Expr: &scalar.String{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 6, StartPos: 27, - EndPos: 40, + EndPos: 41, }, - Value: "\"\n\t\t\ttest\n\t\t\"", + }, + Expr: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 6, + StartPos: 27, + EndPos: 40, + }, + }, + Value: []byte("\"\n\t\t\ttest\n\t\t\""), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 44, - EndPos: 52, - }, - Expr: &scalar.String{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, StartPos: 44, - EndPos: 51, + EndPos: 52, }, - Value: "'$test'", + }, + Expr: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 44, + EndPos: 51, + }, + }, + Value: []byte("'$test'"), }, }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 8, - EndLine: 10, - StartPos: 55, - EndPos: 70, - }, - Expr: &scalar.String{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 8, EndLine: 10, StartPos: 55, - EndPos: 69, + EndPos: 70, }, - Value: "'\n\t\t\t$test\n\t\t'", + }, + Expr: &ast.ScalarString{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 8, + EndLine: 10, + StartPos: 55, + EndPos: 69, + }, + }, + Value: []byte("'\n\t\t\t$test\n\t\t'"), }, }, }, @@ -18540,165 +22616,201 @@ CAD; CAD; ` - expected := &node.Root{ - Position: &position.Position{ - StartLine: 2, - EndLine: 15, - StartPos: 5, - EndPos: 120, + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 15, + StartPos: 5, + EndPos: 120, + }, }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 2, - EndLine: 3, - StartPos: 5, - EndPos: 16, - }, - Expr: &scalar.Heredoc{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 3, StartPos: 5, - EndPos: 15, + EndPos: 16, }, - Label: "<< 0 { prevNode := lastNode(yyDollar[1].list) @@ -2603,7 +2603,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:352 + // line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{} @@ -2611,7 +2611,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:361 + // line internal/php7/php7.y:361 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2626,7 +2626,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:374 + // line internal/php7/php7.y:374 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2642,7 +2642,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:391 + // line internal/php7/php7.y:391 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -2656,7 +2656,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:403 + // line internal/php7/php7.y:403 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -2671,7 +2671,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:416 + // line internal/php7/php7.y:416 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -2685,7 +2685,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:431 + // line internal/php7/php7.y:431 { // error yyVAL.node = nil @@ -2694,7 +2694,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:438 + // line internal/php7/php7.y:438 { yyVAL.node = yyDollar[1].node @@ -2702,7 +2702,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:444 + // line internal/php7/php7.y:444 { yyVAL.node = yyDollar[1].node @@ -2710,7 +2710,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:450 + // line internal/php7/php7.y:450 { yyVAL.node = yyDollar[1].node @@ -2718,7 +2718,7 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:456 + // line internal/php7/php7.y:456 { yyVAL.node = yyDollar[1].node @@ -2726,7 +2726,7 @@ yydefault: } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:462 + // line internal/php7/php7.y:462 { yyVAL.node = yyDollar[1].node @@ -2734,7 +2734,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:468 + // line internal/php7/php7.y:468 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2752,7 +2752,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:484 + // line internal/php7/php7.y:484 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2771,7 +2771,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:501 + // line internal/php7/php7.y:501 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2790,7 +2790,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:518 + // line internal/php7/php7.y:518 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2806,7 +2806,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:532 + // line internal/php7/php7.y:532 { yyVAL.node = yyDollar[2].node @@ -2822,7 +2822,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:546 + // line internal/php7/php7.y:546 { yyDollar[3].node.(*ast.StmtGroupUse).UseType = yyDollar[2].node yyVAL.node = yyDollar[3].node @@ -2839,7 +2839,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:561 + // line internal/php7/php7.y:561 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} @@ -2855,7 +2855,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:575 + // line internal/php7/php7.y:575 { yyVAL.node = &ast.StmtUseList{ast.Node{}, yyDollar[2].node, yyDollar[3].list} @@ -2871,7 +2871,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:589 + // line internal/php7/php7.y:589 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2887,7 +2887,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:606 + // line internal/php7/php7.y:606 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2901,7 +2901,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:618 + // line internal/php7/php7.y:618 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2915,7 +2915,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:633 + // line internal/php7/php7.y:633 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2938,7 +2938,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:654 + // line internal/php7/php7.y:654 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -2962,7 +2962,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:679 + // line internal/php7/php7.y:679 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2985,7 +2985,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:700 + // line internal/php7/php7.y:700 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -3009,19 +3009,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:725 + // line internal/php7/php7.y:725 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:729 + // line internal/php7/php7.y:729 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:736 + // line internal/php7/php7.y:736 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3032,7 +3032,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:745 + // line internal/php7/php7.y:745 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3040,7 +3040,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:754 + // line internal/php7/php7.y:754 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3051,7 +3051,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:763 + // line internal/php7/php7.y:763 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3059,7 +3059,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:772 + // line internal/php7/php7.y:772 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3070,7 +3070,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:781 + // line internal/php7/php7.y:781 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3078,7 +3078,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:790 + // line internal/php7/php7.y:790 { yyVAL.node = yyDollar[1].node @@ -3086,7 +3086,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:796 + // line internal/php7/php7.y:796 { yyDollar[2].node.(*ast.StmtUse).UseType = yyDollar[1].node yyVAL.node = yyDollar[2].node @@ -3095,7 +3095,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:806 + // line internal/php7/php7.y:806 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -3111,7 +3111,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:820 + // line internal/php7/php7.y:820 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -3131,7 +3131,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = yyDollar[1].node @@ -3142,7 +3142,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:850 + // line internal/php7/php7.y:850 { yyVAL.node = yyDollar[2].node @@ -3157,7 +3157,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:866 + // line internal/php7/php7.y:866 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3168,7 +3168,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:875 + // line internal/php7/php7.y:875 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3176,7 +3176,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:884 + // line internal/php7/php7.y:884 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3191,7 +3191,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:897 + // line internal/php7/php7.y:897 { yyVAL.list = []ast.Vertex{} @@ -3199,7 +3199,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:906 + // line internal/php7/php7.y:906 { // error yyVAL.node = nil @@ -3208,7 +3208,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:913 + // line internal/php7/php7.y:913 { yyVAL.node = yyDollar[1].node @@ -3216,7 +3216,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:919 + // line internal/php7/php7.y:919 { yyVAL.node = yyDollar[1].node @@ -3224,7 +3224,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:925 + // line internal/php7/php7.y:925 { yyVAL.node = yyDollar[1].node @@ -3232,7 +3232,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:931 + // line internal/php7/php7.y:931 { yyVAL.node = yyDollar[1].node @@ -3240,7 +3240,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:937 + // line internal/php7/php7.y:937 { yyVAL.node = yyDollar[1].node @@ -3248,7 +3248,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:943 + // line internal/php7/php7.y:943 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3266,7 +3266,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:961 + // line internal/php7/php7.y:961 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3281,7 +3281,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:974 + // line internal/php7/php7.y:974 { yyVAL.node = yyDollar[1].node @@ -3289,7 +3289,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:980 + // line internal/php7/php7.y:980 { yyVAL.node = yyDollar[1].node @@ -3297,7 +3297,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:986 + // line internal/php7/php7.y:986 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3320,7 +3320,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1007 + // line internal/php7/php7.y:1007 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3339,7 +3339,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1024 + // line internal/php7/php7.y:1024 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3368,7 +3368,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1051 + // line internal/php7/php7.y:1051 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3393,7 +3393,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3409,7 +3409,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1088 + // line internal/php7/php7.y:1088 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3425,7 +3425,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3441,7 +3441,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1116 + // line internal/php7/php7.y:1116 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3457,7 +3457,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1130 + // line internal/php7/php7.y:1130 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3473,7 +3473,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1144 + // line internal/php7/php7.y:1144 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3490,7 +3490,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1159 + // line internal/php7/php7.y:1159 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3504,7 +3504,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1171 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3520,7 +3520,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1185 + // line internal/php7/php7.y:1185 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3542,7 +3542,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1205 + // line internal/php7/php7.y:1205 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3568,7 +3568,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1230 + // line internal/php7/php7.y:1230 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3597,7 +3597,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1257 + // line internal/php7/php7.y:1257 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3614,7 +3614,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1272 + // line internal/php7/php7.y:1272 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3629,7 +3629,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1285 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3648,7 +3648,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1302 + // line internal/php7/php7.y:1302 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3664,7 +3664,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1316 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3683,7 +3683,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1333 + // line internal/php7/php7.y:1333 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3700,7 +3700,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1350 + // line internal/php7/php7.y:1350 { yyVAL.list = []ast.Vertex{} @@ -3708,7 +3708,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1356 + // line internal/php7/php7.y:1356 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[5].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3732,7 +3732,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1380 + // line internal/php7/php7.y:1380 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3740,7 +3740,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1386 + // line internal/php7/php7.y:1386 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3751,7 +3751,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1398 + // line internal/php7/php7.y:1398 { yyVAL.node = nil @@ -3759,7 +3759,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1404 + // line internal/php7/php7.y:1404 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3775,7 +3775,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1421 + // line internal/php7/php7.y:1421 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3783,7 +3783,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1427 + // line internal/php7/php7.y:1427 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3794,7 +3794,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1439 + // line internal/php7/php7.y:1439 { yyVAL.node = yyDollar[1].node @@ -3802,7 +3802,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1448 + // line internal/php7/php7.y:1448 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3838,31 +3838,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1484 + // line internal/php7/php7.y:1484 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1488 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1495 + // line internal/php7/php7.y:1495 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1499 + // line internal/php7/php7.y:1499 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1506 + // line internal/php7/php7.y:1506 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3882,7 +3882,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1524 + // line internal/php7/php7.y:1524 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3901,7 +3901,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1544 + // line internal/php7/php7.y:1544 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3909,7 +3909,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1550 + // line internal/php7/php7.y:1550 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3917,7 +3917,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1559 + // line internal/php7/php7.y:1559 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3931,7 +3931,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1571 + // line internal/php7/php7.y:1571 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3945,7 +3945,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1586 + // line internal/php7/php7.y:1586 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3964,7 +3964,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1606 + // line internal/php7/php7.y:1606 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3983,7 +3983,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1626 { yyVAL.ClassExtends = nil @@ -3991,7 +3991,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1632 + // line internal/php7/php7.y:1632 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -4005,7 +4005,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1647 + // line internal/php7/php7.y:1647 { yyVAL.InterfaceExtends = nil @@ -4013,7 +4013,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1653 + // line internal/php7/php7.y:1653 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4027,7 +4027,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1668 + // line internal/php7/php7.y:1668 { yyVAL.ClassImplements = nil @@ -4035,7 +4035,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1674 + // line internal/php7/php7.y:1674 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4049,7 +4049,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1689 + // line internal/php7/php7.y:1689 { yyVAL.node = yyDollar[1].node @@ -4057,7 +4057,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1695 + // line internal/php7/php7.y:1695 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4071,7 +4071,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1707 + // line internal/php7/php7.y:1707 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4087,7 +4087,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1721 + // line internal/php7/php7.y:1721 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4102,7 +4102,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1737 + // line internal/php7/php7.y:1737 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4113,7 +4113,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1746 + // line internal/php7/php7.y:1746 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4132,7 +4132,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1766 + // line internal/php7/php7.y:1766 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4143,7 +4143,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1775 + // line internal/php7/php7.y:1775 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4162,7 +4162,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1795 + // line internal/php7/php7.y:1795 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4173,7 +4173,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1804 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4192,7 +4192,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1824 + // line internal/php7/php7.y:1824 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4209,7 +4209,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1839 + // line internal/php7/php7.y:1839 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4227,7 +4227,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1855 + // line internal/php7/php7.y:1855 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4246,7 +4246,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1872 + // line internal/php7/php7.y:1872 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4267,7 +4267,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1894 + // line internal/php7/php7.y:1894 { yyVAL.list = []ast.Vertex{} @@ -4275,7 +4275,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1900 + // line internal/php7/php7.y:1900 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4292,7 +4292,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1915 + // line internal/php7/php7.y:1915 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4309,19 +4309,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1933 + // line internal/php7/php7.y:1933 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1937 + // line internal/php7/php7.y:1937 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1944 + // line internal/php7/php7.y:1944 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4332,7 +4332,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1953 + // line internal/php7/php7.y:1953 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4351,7 +4351,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1973 + // line internal/php7/php7.y:1973 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4367,7 +4367,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1987 + // line internal/php7/php7.y:1987 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4387,7 +4387,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2008 + // line internal/php7/php7.y:2008 { yyVAL.node = yyDollar[1].node @@ -4395,7 +4395,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2014 + // line internal/php7/php7.y:2014 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4413,7 +4413,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2033 + // line internal/php7/php7.y:2033 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4432,7 +4432,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:2050 + // line internal/php7/php7.y:2050 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4454,7 +4454,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2073 + // line internal/php7/php7.y:2073 { yyVAL.node = yyDollar[1].node @@ -4470,7 +4470,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2087 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4494,7 +4494,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2112 + // line internal/php7/php7.y:2112 { yyVAL.list = yyDollar[1].list @@ -4502,7 +4502,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2118 + // line internal/php7/php7.y:2118 { yyVAL.list = nil @@ -4510,7 +4510,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2127 + // line internal/php7/php7.y:2127 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4518,7 +4518,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2133 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4529,7 +4529,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2145 + // line internal/php7/php7.y:2145 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4578,7 +4578,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2189 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4628,7 +4628,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2237 { yyVAL.node = nil @@ -4636,7 +4636,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2243 { yyVAL.node = yyDollar[1].node @@ -4644,7 +4644,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2252 + // line internal/php7/php7.y:2252 { yyVAL.node = yyDollar[1].node @@ -4652,7 +4652,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2258 + // line internal/php7/php7.y:2258 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4666,7 +4666,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2273 + // line internal/php7/php7.y:2273 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4680,7 +4680,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2285 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4694,7 +4694,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2297 + // line internal/php7/php7.y:2297 { yyVAL.node = yyDollar[1].node @@ -4702,7 +4702,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2306 + // line internal/php7/php7.y:2306 { yyVAL.node = nil @@ -4710,7 +4710,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2312 { yyVAL.node = yyDollar[2].node @@ -4721,7 +4721,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2324 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4736,7 +4736,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2337 + // line internal/php7/php7.y:2337 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4755,7 +4755,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2357 + // line internal/php7/php7.y:2357 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4763,7 +4763,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2363 + // line internal/php7/php7.y:2363 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4774,7 +4774,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2375 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4788,7 +4788,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2387 + // line internal/php7/php7.y:2387 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4802,7 +4802,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2402 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4813,7 +4813,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2411 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4821,7 +4821,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2420 { yyVAL.node = yyDollar[1].node @@ -4829,7 +4829,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2429 + // line internal/php7/php7.y:2429 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4840,7 +4840,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2438 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4848,7 +4848,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2447 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4866,7 +4866,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2463 + // line internal/php7/php7.y:2463 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4885,7 +4885,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2483 + // line internal/php7/php7.y:2483 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4893,7 +4893,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2489 + // line internal/php7/php7.y:2489 { yyVAL.list = []ast.Vertex{} @@ -4901,7 +4901,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2498 + // line internal/php7/php7.y:2498 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4917,7 +4917,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2512 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4938,7 +4938,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2531 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4952,7 +4952,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2543 + // line internal/php7/php7.y:2543 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4989,7 +4989,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2580 + // line internal/php7/php7.y:2580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4997,7 +4997,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2586 + // line internal/php7/php7.y:2586 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5008,7 +5008,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2598 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5022,7 +5022,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5036,7 +5036,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2623 + // line internal/php7/php7.y:2623 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5050,7 +5050,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5058,7 +5058,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2644 + // line internal/php7/php7.y:2644 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5066,7 +5066,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2653 { yyVAL.node = yyDollar[1].node @@ -5078,7 +5078,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2663 { yyVAL.node = yyDollar[1].node @@ -5090,7 +5090,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2676 + // line internal/php7/php7.y:2676 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5105,7 +5105,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2692 + // line internal/php7/php7.y:2692 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5123,7 +5123,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2708 + // line internal/php7/php7.y:2708 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5141,7 +5141,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2724 + // line internal/php7/php7.y:2724 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5159,7 +5159,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2740 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5174,7 +5174,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5190,7 +5190,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2770 { yyVAL.node = yyDollar[1].node @@ -5198,7 +5198,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2779 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5216,7 +5216,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2798 + // line internal/php7/php7.y:2798 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5231,7 +5231,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2811 + // line internal/php7/php7.y:2811 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5246,7 +5246,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2827 + // line internal/php7/php7.y:2827 { yyVAL.list = yyDollar[1].list @@ -5254,7 +5254,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2833 + // line internal/php7/php7.y:2833 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5269,7 +5269,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2849 + // line internal/php7/php7.y:2849 { yyVAL.list = nil @@ -5277,7 +5277,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2855 { yyVAL.list = yyDollar[1].list @@ -5285,7 +5285,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2864 + // line internal/php7/php7.y:2864 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5293,7 +5293,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2870 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5301,7 +5301,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2879 + // line internal/php7/php7.y:2879 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5315,7 +5315,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2891 + // line internal/php7/php7.y:2891 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5329,7 +5329,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2903 + // line internal/php7/php7.y:2903 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5343,7 +5343,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2915 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5357,7 +5357,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2927 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5371,7 +5371,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2939 + // line internal/php7/php7.y:2939 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5385,7 +5385,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2954 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5396,7 +5396,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2963 + // line internal/php7/php7.y:2963 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5404,7 +5404,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2972 + // line internal/php7/php7.y:2972 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5422,7 +5422,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2988 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5441,7 +5441,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3008 + // line internal/php7/php7.y:3008 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5452,7 +5452,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3017 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5460,7 +5460,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3026 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5477,7 +5477,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3044 + // line internal/php7/php7.y:3044 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5494,7 +5494,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3062 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5505,7 +5505,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3071 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5513,7 +5513,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3080 { yyVAL.node = yyDollar[1].node @@ -5521,7 +5521,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3089 { yyVAL.list = nil @@ -5529,7 +5529,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3095 { yyVAL.list = yyDollar[1].list @@ -5537,7 +5537,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3104 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5548,7 +5548,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3113 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5556,7 +5556,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3122 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5576,7 +5576,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3143 + // line internal/php7/php7.y:3143 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5593,7 +5593,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3158 + // line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5607,7 +5607,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:3173 + // line internal/php7/php7.y:3173 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5626,7 +5626,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3190 + // line internal/php7/php7.y:3190 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5644,7 +5644,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5659,7 +5659,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5675,7 +5675,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3233 + // line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5689,7 +5689,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5704,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5719,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5734,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5749,7 +5749,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5764,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5779,7 +5779,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5794,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5809,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5824,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5839,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5854,7 +5854,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5869,7 +5869,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5884,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5899,7 +5899,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3427 + // line internal/php7/php7.y:3427 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5913,7 +5913,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3439 + // line internal/php7/php7.y:3439 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5928,7 +5928,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3452 + // line internal/php7/php7.y:3452 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5942,7 +5942,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5957,7 +5957,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5972,7 +5972,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5987,7 +5987,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6002,7 +6002,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6017,7 +6017,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6032,7 +6032,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6047,7 +6047,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6062,7 +6062,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6077,7 +6077,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6092,7 +6092,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6107,7 +6107,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6122,7 +6122,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3620 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6137,7 +6137,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6152,7 +6152,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6167,7 +6167,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6182,7 +6182,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6197,7 +6197,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3685 + // line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6211,7 +6211,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3697 + // line internal/php7/php7.y:3697 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6225,7 +6225,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3709 + // line internal/php7/php7.y:3709 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6239,7 +6239,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3721 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6253,7 +6253,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6268,7 +6268,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6283,7 +6283,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6298,7 +6298,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3772 + // line internal/php7/php7.y:3772 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6314,7 +6314,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6329,7 +6329,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6344,7 +6344,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6359,7 +6359,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6374,7 +6374,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6389,7 +6389,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3851 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6404,7 +6404,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3864 + // line internal/php7/php7.y:3864 { yyVAL.node = yyDollar[2].node @@ -6416,7 +6416,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3874 { yyVAL.node = yyDollar[1].node @@ -6424,7 +6424,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3880 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6440,7 +6440,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3894 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6456,7 +6456,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6471,7 +6471,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3921 { yyVAL.node = yyDollar[1].node @@ -6479,7 +6479,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6494,7 +6494,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6509,7 +6509,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6524,7 +6524,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6539,7 +6539,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6554,7 +6554,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3992 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6569,7 +6569,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4005 + // line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6584,7 +6584,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4018 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6613,7 +6613,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4045 + // line internal/php7/php7.y:4045 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6627,7 +6627,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4057 { yyVAL.node = yyDollar[1].node @@ -6635,7 +6635,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4063 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6649,7 +6649,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6663,7 +6663,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6677,7 +6677,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4099 + // line internal/php7/php7.y:4099 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6691,7 +6691,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4111 + // line internal/php7/php7.y:4111 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6706,7 +6706,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4124 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6720,7 +6720,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node @@ -6728,7 +6728,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[2].node @@ -6751,7 +6751,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4165 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6788,7 +6788,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4197 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6820,7 +6820,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4228 { yyVAL.str = yylex.(*Parser).Lexer.GetPhpDocComment() yylex.(*Parser).Lexer.SetPhpDocComment("") @@ -6829,19 +6829,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4238 + // line internal/php7/php7.y:4238 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4242 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4249 + // line internal/php7/php7.y:4249 { yyVAL.ClosureUse = nil @@ -6849,7 +6849,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4255 + // line internal/php7/php7.y:4255 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6865,7 +6865,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4272 + // line internal/php7/php7.y:4272 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6876,7 +6876,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6884,7 +6884,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4290 + // line internal/php7/php7.y:4290 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6900,7 +6900,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4304 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6919,7 +6919,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4324 + // line internal/php7/php7.y:4324 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6933,7 +6933,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6948,7 +6948,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4349 + // line internal/php7/php7.y:4349 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6963,7 +6963,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4362 + // line internal/php7/php7.y:4362 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6977,7 +6977,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4377 + // line internal/php7/php7.y:4377 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6991,7 +6991,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4389 { yyVAL.node = yyDollar[1].node @@ -6999,7 +6999,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4398 + // line internal/php7/php7.y:4398 { yyVAL.node = yyDollar[1].node @@ -7007,7 +7007,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4404 + // line internal/php7/php7.y:4404 { yyVAL.node = yyDollar[1].node @@ -7015,7 +7015,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4413 { yyVAL.node = nil @@ -7023,7 +7023,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4419 + // line internal/php7/php7.y:4419 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7038,7 +7038,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4435 { yyVAL.list = []ast.Vertex{} @@ -7046,7 +7046,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4441 + // line internal/php7/php7.y:4441 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7058,7 +7058,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4451 + // line internal/php7/php7.y:4451 { yyVAL.list = yyDollar[1].list @@ -7066,7 +7066,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4460 + // line internal/php7/php7.y:4460 { yyVAL.node = nil @@ -7074,7 +7074,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4466 + // line internal/php7/php7.y:4466 { yyVAL.node = yyDollar[1].node @@ -7082,7 +7082,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4475 + // line internal/php7/php7.y:4475 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7098,7 +7098,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4489 + // line internal/php7/php7.y:4489 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7113,7 +7113,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4502 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7127,7 +7127,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4517 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7141,7 +7141,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4529 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7155,7 +7155,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4541 + // line internal/php7/php7.y:4541 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7169,7 +7169,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4553 + // line internal/php7/php7.y:4553 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7183,7 +7183,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4565 + // line internal/php7/php7.y:4565 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7197,7 +7197,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4577 + // line internal/php7/php7.y:4577 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7211,7 +7211,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4589 + // line internal/php7/php7.y:4589 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7225,7 +7225,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4601 + // line internal/php7/php7.y:4601 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7239,7 +7239,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4613 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7253,7 +7253,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4625 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7267,7 +7267,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4637 + // line internal/php7/php7.y:4637 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7283,7 +7283,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4651 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7297,7 +7297,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4663 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7311,7 +7311,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4675 + // line internal/php7/php7.y:4675 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7325,7 +7325,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4687 + // line internal/php7/php7.y:4687 { yyVAL.node = yyDollar[1].node @@ -7333,7 +7333,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4693 + // line internal/php7/php7.y:4693 { yyVAL.node = yyDollar[1].node @@ -7341,7 +7341,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4702 + // line internal/php7/php7.y:4702 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7355,7 +7355,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4714 + // line internal/php7/php7.y:4714 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7373,7 +7373,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4730 + // line internal/php7/php7.y:4730 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7391,7 +7391,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4749 { yyVAL.node = yyDollar[1].node @@ -7399,7 +7399,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4755 + // line internal/php7/php7.y:4755 { yyVAL.node = yyDollar[1].node @@ -7407,7 +7407,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4764 { yyVAL.node = nil @@ -7415,7 +7415,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4770 + // line internal/php7/php7.y:4770 { yyVAL.node = yyDollar[1].node @@ -7423,7 +7423,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4779 + // line internal/php7/php7.y:4779 { yyVAL.node = yyDollar[1].node @@ -7431,7 +7431,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4788 { yyVAL.node = yyDollar[1].node @@ -7439,7 +7439,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4794 + // line internal/php7/php7.y:4794 { yyVAL.node = yyDollar[2].node @@ -7451,7 +7451,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4804 + // line internal/php7/php7.y:4804 { yyVAL.node = yyDollar[1].node @@ -7459,7 +7459,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[1].node @@ -7467,7 +7467,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4819 + // line internal/php7/php7.y:4819 { yyVAL.node = yyDollar[2].node @@ -7479,7 +7479,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4829 + // line internal/php7/php7.y:4829 { yyVAL.node = yyDollar[1].node @@ -7487,7 +7487,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4838 + // line internal/php7/php7.y:4838 { yyVAL.node = yyDollar[1].node @@ -7495,7 +7495,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4844 + // line internal/php7/php7.y:4844 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7511,7 +7511,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4858 + // line internal/php7/php7.y:4858 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7527,7 +7527,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4872 + // line internal/php7/php7.y:4872 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7543,7 +7543,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4886 + // line internal/php7/php7.y:4886 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7558,7 +7558,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4899 + // line internal/php7/php7.y:4899 { yyVAL.node = yyDollar[1].node @@ -7566,7 +7566,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4908 { yyVAL.node = yyDollar[1].node @@ -7574,7 +7574,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4914 + // line internal/php7/php7.y:4914 { yyVAL.node = yyDollar[1].node @@ -7582,7 +7582,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4920 + // line internal/php7/php7.y:4920 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7597,7 +7597,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4936 + // line internal/php7/php7.y:4936 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7613,7 +7613,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4950 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7630,7 +7630,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4965 + // line internal/php7/php7.y:4965 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7645,7 +7645,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4981 + // line internal/php7/php7.y:4981 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7660,7 +7660,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4994 + // line internal/php7/php7.y:4994 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7675,7 +7675,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5010 + // line internal/php7/php7.y:5010 { yyVAL.node = yyDollar[1].node @@ -7683,7 +7683,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5016 + // line internal/php7/php7.y:5016 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7699,7 +7699,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5030 + // line internal/php7/php7.y:5030 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7715,7 +7715,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5044 + // line internal/php7/php7.y:5044 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7730,7 +7730,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5057 + // line internal/php7/php7.y:5057 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7745,7 +7745,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5070 + // line internal/php7/php7.y:5070 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7760,7 +7760,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5086 + // line internal/php7/php7.y:5086 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7774,7 +7774,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5098 + // line internal/php7/php7.y:5098 { yyVAL.node = yyDollar[2].node @@ -7786,7 +7786,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5108 + // line internal/php7/php7.y:5108 { yyVAL.node = yyDollar[1].node @@ -7794,7 +7794,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5117 + // line internal/php7/php7.y:5117 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7808,7 +7808,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5129 + // line internal/php7/php7.y:5129 { yyVAL.node = yyDollar[2].node @@ -7820,7 +7820,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5139 + // line internal/php7/php7.y:5139 { yyVAL.node = yyDollar[1].node @@ -7828,7 +7828,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5148 + // line internal/php7/php7.y:5148 { yyVAL.list = yyDollar[1].list @@ -7836,7 +7836,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:5157 + // line internal/php7/php7.y:5157 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7844,7 +7844,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5163 + // line internal/php7/php7.y:5163 { yyVAL.node = yyDollar[1].node @@ -7852,7 +7852,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5172 + // line internal/php7/php7.y:5172 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7867,7 +7867,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5185 + // line internal/php7/php7.y:5185 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7879,7 +7879,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5198 + // line internal/php7/php7.y:5198 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7894,7 +7894,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5211 + // line internal/php7/php7.y:5211 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7908,7 +7908,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5223 + // line internal/php7/php7.y:5223 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7926,7 +7926,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5239 + // line internal/php7/php7.y:5239 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7942,7 +7942,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5253 + // line internal/php7/php7.y:5253 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7956,7 +7956,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:5265 + // line internal/php7/php7.y:5265 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7977,7 +7977,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5284 + // line internal/php7/php7.y:5284 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7996,7 +7996,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5304 + // line internal/php7/php7.y:5304 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8004,7 +8004,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5310 + // line internal/php7/php7.y:5310 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8019,7 +8019,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5323 + // line internal/php7/php7.y:5323 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8027,7 +8027,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5329 + // line internal/php7/php7.y:5329 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8042,7 +8042,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5345 + // line internal/php7/php7.y:5345 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8058,7 +8058,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5359 + // line internal/php7/php7.y:5359 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8077,7 +8077,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5376 + // line internal/php7/php7.y:5376 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8098,7 +8098,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5395 + // line internal/php7/php7.y:5395 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8115,7 +8115,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5410 + // line internal/php7/php7.y:5410 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8134,7 +8134,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:5427 + // line internal/php7/php7.y:5427 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8155,7 +8155,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5446 + // line internal/php7/php7.y:5446 { yyVAL.node = yyDollar[2].node @@ -8167,7 +8167,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5459 + // line internal/php7/php7.y:5459 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8181,7 +8181,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5471 + // line internal/php7/php7.y:5471 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8200,7 +8200,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5488 + // line internal/php7/php7.y:5488 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8228,7 +8228,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5514 + // line internal/php7/php7.y:5514 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8244,7 +8244,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:5531 + // line internal/php7/php7.y:5531 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8264,7 +8264,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5549 + // line internal/php7/php7.y:5549 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8280,7 +8280,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5563 + // line internal/php7/php7.y:5563 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8294,7 +8294,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5575 + // line internal/php7/php7.y:5575 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8308,7 +8308,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5587 + // line internal/php7/php7.y:5587 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8324,7 +8324,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5601 + // line internal/php7/php7.y:5601 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8338,7 +8338,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5613 + // line internal/php7/php7.y:5613 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8352,7 +8352,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5628 + // line internal/php7/php7.y:5628 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8360,7 +8360,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5634 + // line internal/php7/php7.y:5634 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8371,7 +8371,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5646 + // line internal/php7/php7.y:5646 { yyVAL.node = yyDollar[1].node From 12086ef6b69970e6ea0aa32b894bc959d26208f1 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Wed, 13 May 2020 21:05:15 +0300 Subject: [PATCH 007/140] refactor cmd --- Makefile | 2 +- main.go => cmd/php-parser/main.go | 63 +- pkg/ast/traverser/dfs.go | 2774 +++++++++++++++++--- pkg/ast/visitor/dump.go | 39 +- pkg/ast/visitor/dump_test.go | 2 +- pkg/ast/visitor/namespace_resolver.go | 399 +++ pkg/ast/visitor/namespace_resolver_test.go | 986 +++++++ pkg/ast/visitor/null.go | 16 + 8 files changed, 3924 insertions(+), 357 deletions(-) rename main.go => cmd/php-parser/main.go (70%) create mode 100644 pkg/ast/visitor/namespace_resolver.go create mode 100644 pkg/ast/visitor/namespace_resolver_test.go diff --git a/Makefile b/Makefile index a5b8399..5f88103 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ fmt: build: go generate ./... - go build + go build ./cmd/... run: ./php-parser -d go $(PHPFILE) diff --git a/main.go b/cmd/php-parser/main.go similarity index 70% rename from main.go rename to cmd/php-parser/main.go index a1ad92c..569dd30 100644 --- a/main.go +++ b/cmd/php-parser/main.go @@ -1,9 +1,9 @@ package main import ( - "bytes" "flag" "fmt" + "github.com/z7zmey/php-parser/pkg/ast/traverser" "io/ioutil" "log" "os" @@ -13,15 +13,14 @@ import ( "github.com/pkg/profile" "github.com/yookoala/realpath" - "github.com/z7zmey/php-parser/parser" - "github.com/z7zmey/php-parser/printer" - "github.com/z7zmey/php-parser/visitor" + "github.com/z7zmey/php-parser/pkg/parser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" ) var wg sync.WaitGroup var phpVersion string -var dumpType string var profiler string +var dump *bool var withFreeFloating *bool var showResolvedNs *bool var printBack *bool @@ -42,7 +41,7 @@ func main() { 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]") + dump = flag.Bool("d", false, "dump") flag.StringVar(&profiler, "prof", "", "start profiler: [cpu, mem, trace]") flag.StringVar(&phpVersion, "phpver", "7.4", "php version") @@ -115,7 +114,7 @@ func parserWorker(fileCh <-chan *file, r chan<- result) { } if *withFreeFloating { - parserWorker.WithFreeFloating() + parserWorker.WithTokens() } parserWorker.Parse() @@ -143,44 +142,26 @@ func printerWorker(r <-chan result) { fmt.Fprintf(os.Stdout, "==> %s\n", e) } - if *printBack { - o := bytes.NewBuffer([]byte{}) - p := printer.NewPrinter(o) - p.Print(res.parser.GetRootNode()) + //if *printBack { + // o := bytes.NewBuffer([]byte{}) + // p := printer.NewPrinter(o) + // p.Print(res.parser.GetRootNode()) + // + // err := ioutil.WriteFile(res.path, o.Bytes(), 0644) + // checkErr(err) + //} - err := ioutil.WriteFile(res.path, o.Bytes(), 0644) - checkErr(err) - } - - var nsResolver *visitor.NamespaceResolver if *showResolvedNs { - nsResolver = visitor.NewNamespaceResolver() - res.parser.GetRootNode().Walk(nsResolver) + v := visitor.NewNamespaceResolver() + t := traverser.NewDFS(v) + t.Traverse(res.parser.GetRootNode()) + fmt.Printf("%+v", v.ResolvedNames) } - switch dumpType { - case "custom": - dumper := &visitor.Dumper{ - Writer: os.Stdout, - Indent: "| ", - NsResolver: nsResolver, - } - res.parser.GetRootNode().Walk(dumper) - case "json": - dumper := &visitor.JsonDumper{ - Writer: os.Stdout, - NsResolver: nsResolver, - } - res.parser.GetRootNode().Walk(dumper) - case "pretty_json": - dumper := &visitor.PrettyJsonDumper{ - Writer: os.Stdout, - NsResolver: nsResolver, - } - res.parser.GetRootNode().Walk(dumper) - case "go": - dumper := &visitor.GoDumper{Writer: os.Stdout} - res.parser.GetRootNode().Walk(dumper) + if *dump == true { + v := visitor.NewDump(os.Stdout) + t := traverser.NewDFS(v) + t.Traverse(res.parser.GetRootNode()) } wg.Done() diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index f3d745e..4618bc9 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -13,479 +13,2641 @@ func NewDFS(visitor ast.Visitor) *DFS { } func (t *DFS) Traverse(n ast.Vertex) { - if n == nil { - return - } - - if !t.visitor.EnterNode(n) { - return - } - switch nn := n.(type) { case *ast.Root: - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.Nullable: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.Parameter: - t.traverseSingle("Type", nn.Type) - t.traverseSingle("Var", nn.Var) - t.traverseSingle("DefaultValue", nn.DefaultValue) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Type != nil { + t.visitor.Enter("Type", true) + t.Traverse(nn.Type) + t.visitor.Leave("Type", true) + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.DefaultValue != nil { + t.visitor.Enter("DefaultValue", true) + t.Traverse(nn.DefaultValue) + t.visitor.Leave("DefaultValue", true) + } case *ast.Identifier: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.ArgumentList: - t.traverseArray("Arguments", nn.Arguments) + if nn.Arguments != nil { + t.visitor.Enter("Arguments", false) + for _, c := range nn.Arguments { + t.Traverse(c) + } + t.visitor.Leave("Arguments", false) + } case *ast.Argument: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtAltElse: - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtAltElseIf: - t.traverseSingle("Cond", nn.Cond) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtAltFor: - t.traverseArray("Init", nn.Init) - t.traverseArray("Cond", nn.Cond) - t.traverseArray("Loop", nn.Loop) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Init != nil { + t.visitor.Enter("Init", false) + for _, c := range nn.Init { + t.Traverse(c) + } + t.visitor.Leave("Init", false) + } + if nn.Cond != nil { + t.visitor.Enter("Cond", false) + for _, c := range nn.Cond { + t.Traverse(c) + } + t.visitor.Leave("Cond", false) + } + if nn.Loop != nil { + t.visitor.Enter("Loop", false) + for _, c := range nn.Loop { + t.Traverse(c) + } + t.visitor.Leave("Loop", false) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtAltForeach: - t.traverseSingle("Expr", nn.Expr) - t.traverseSingle("Key", nn.Key) - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } + if nn.Key != nil { + t.visitor.Enter("Key", true) + t.Traverse(nn.Key) + t.visitor.Leave("Key", true) + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtAltIf: - t.traverseSingle("Cond", nn.Cond) - t.traverseSingle("Stmt", nn.Stmt) - t.traverseArray("ElseIf", nn.ElseIf) - t.traverseSingle("Else", nn.Else) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } + if nn.ElseIf != nil { + t.visitor.Enter("ElseIf", false) + for _, c := range nn.ElseIf { + t.Traverse(c) + } + t.visitor.Leave("ElseIf", false) + } + if nn.Else != nil { + t.visitor.Enter("Else", true) + t.Traverse(nn.Else) + t.visitor.Leave("Else", true) + } case *ast.StmtAltSwitch: - t.traverseSingle("Cond", nn.Cond) - t.traverseSingle("CaseList", nn.CaseList) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.CaseList != nil { + t.visitor.Enter("CaseList", true) + t.Traverse(nn.CaseList) + t.visitor.Leave("CaseList", true) + } case *ast.StmtAltWhile: - t.traverseSingle("Cond", nn.Cond) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtBreak: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtCase: - t.traverseSingle("Cond", nn.Cond) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtCaseList: - t.traverseArray("Cases", nn.Cases) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cases != nil { + t.visitor.Enter("Cases", false) + for _, c := range nn.Cases { + t.Traverse(c) + } + t.visitor.Leave("Cases", false) + } case *ast.StmtCatch: - t.traverseArray("Types", nn.Types) - t.traverseSingle("Var", nn.Var) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Types != nil { + t.visitor.Enter("Types", false) + for _, c := range nn.Types { + t.Traverse(c) + } + t.visitor.Leave("Types", false) + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtClass: - t.traverseSingle("ClassName", nn.ClassName) - t.traverseArray("Modifiers", nn.Modifiers) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.ClassName != nil { + t.visitor.Enter("ClassName", true) + t.Traverse(nn.ClassName) + t.visitor.Leave("ClassName", true) + } + if nn.Modifiers != nil { + t.visitor.Enter("Modifiers", false) + for _, c := range nn.Modifiers { + t.Traverse(c) + } + t.visitor.Leave("Modifiers", false) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtClassConstList: - t.traverseArray("Modifiers", nn.Modifiers) - t.traverseArray("Consts", nn.Consts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Modifiers != nil { + t.visitor.Enter("Modifiers", false) + for _, c := range nn.Modifiers { + t.Traverse(c) + } + t.visitor.Leave("Modifiers", false) + } + if nn.Consts != nil { + t.visitor.Enter("Consts", false) + for _, c := range nn.Consts { + t.Traverse(c) + } + t.visitor.Leave("Consts", false) + } case *ast.StmtClassExtends: - t.traverseSingle("ClassName", nn.ClassName) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.ClassName != nil { + t.visitor.Enter("ClassName", true) + t.Traverse(nn.ClassName) + t.visitor.Leave("ClassName", true) + } case *ast.StmtClassImplements: - t.traverseArray("InterfaceNames", nn.InterfaceNames) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.InterfaceNames != nil { + t.visitor.Enter("InterfaceNames", false) + for _, c := range nn.InterfaceNames { + t.Traverse(c) + } + t.visitor.Leave("InterfaceNames", false) + } case *ast.StmtClassMethod: - t.traverseSingle("MethodName", nn.MethodName) - t.traverseArray("Modifiers", nn.Modifiers) - t.traverseArray("Params", nn.Params) - t.traverseSingle("ReturnType", nn.ReturnType) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.MethodName != nil { + t.visitor.Enter("MethodName", true) + t.Traverse(nn.MethodName) + t.visitor.Leave("MethodName", true) + } + if nn.Modifiers != nil { + t.visitor.Enter("Modifiers", false) + for _, c := range nn.Modifiers { + t.Traverse(c) + } + t.visitor.Leave("Modifiers", false) + } + if nn.Params != nil { + t.visitor.Enter("Params", false) + for _, c := range nn.Params { + t.Traverse(c) + } + t.visitor.Leave("Params", false) + } + if nn.ReturnType != nil { + t.visitor.Enter("ReturnType", true) + t.Traverse(nn.ReturnType) + t.visitor.Leave("ReturnType", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtConstList: - t.traverseArray("Consts", nn.Consts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Consts != nil { + t.visitor.Enter("Consts", false) + for _, c := range nn.Consts { + t.Traverse(c) + } + t.visitor.Leave("Consts", false) + } case *ast.StmtConstant: - t.traverseSingle("ConstantName", nn.ConstantName) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.ConstantName != nil { + t.visitor.Enter("ConstantName", true) + t.Traverse(nn.ConstantName) + t.visitor.Leave("ConstantName", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtContinue: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtDeclare: - t.traverseArray("Consts", nn.Consts) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Consts != nil { + t.visitor.Enter("Consts", false) + for _, c := range nn.Consts { + t.Traverse(c) + } + t.visitor.Leave("Consts", false) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtDefault: - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtDo: - t.traverseSingle("Stmt", nn.Stmt) - t.traverseSingle("Cond", nn.Cond) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } case *ast.StmtEcho: - t.traverseArray("Exprs", nn.Exprs) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Exprs != nil { + t.visitor.Enter("Exprs", false) + for _, c := range nn.Exprs { + t.Traverse(c) + } + t.visitor.Leave("Exprs", false) + } case *ast.StmtElse: - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtElseIf: - t.traverseSingle("Cond", nn.Cond) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtExpression: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtFinally: - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtFor: - t.traverseArray("Init", nn.Init) - t.traverseArray("Cond", nn.Cond) - t.traverseArray("Loop", nn.Loop) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Init != nil { + t.visitor.Enter("Init", false) + for _, c := range nn.Init { + t.Traverse(c) + } + t.visitor.Leave("Init", false) + } + if nn.Cond != nil { + t.visitor.Enter("Cond", false) + for _, c := range nn.Cond { + t.Traverse(c) + } + t.visitor.Leave("Cond", false) + } + if nn.Loop != nil { + t.visitor.Enter("Loop", false) + for _, c := range nn.Loop { + t.Traverse(c) + } + t.visitor.Leave("Loop", false) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtForeach: - t.traverseSingle("Expr", nn.Expr) - t.traverseSingle("Key", nn.Key) - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } + if nn.Key != nil { + t.visitor.Enter("Key", true) + t.Traverse(nn.Key) + t.visitor.Leave("Key", true) + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.StmtFunction: - t.traverseSingle("FunctionName", nn.FunctionName) - t.traverseArray("Params", nn.Params) - t.traverseSingle("ReturnType", nn.ReturnType) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.FunctionName != nil { + t.visitor.Enter("FunctionName", true) + t.Traverse(nn.FunctionName) + t.visitor.Leave("FunctionName", true) + } + if nn.Params != nil { + t.visitor.Enter("Params", false) + for _, c := range nn.Params { + t.Traverse(c) + } + t.visitor.Leave("Params", false) + } + if nn.ReturnType != nil { + t.visitor.Enter("ReturnType", true) + t.Traverse(nn.ReturnType) + t.visitor.Leave("ReturnType", true) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtGlobal: - t.traverseArray("Vars", nn.Vars) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Vars != nil { + t.visitor.Enter("Vars", false) + for _, c := range nn.Vars { + t.Traverse(c) + } + t.visitor.Leave("Vars", false) + } case *ast.StmtGoto: - t.traverseSingle("Label", nn.Label) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Label != nil { + t.visitor.Enter("Label", true) + t.Traverse(nn.Label) + t.visitor.Leave("Label", true) + } case *ast.StmtGroupUse: - t.traverseSingle("UseType", nn.UseType) - t.traverseSingle("Prefix", nn.Prefix) - t.traverseArray("UseList", nn.UseList) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.UseType != nil { + t.visitor.Enter("UseType", true) + t.Traverse(nn.UseType) + t.visitor.Leave("UseType", true) + } + if nn.Prefix != nil { + t.visitor.Enter("Prefix", true) + t.Traverse(nn.Prefix) + t.visitor.Leave("Prefix", true) + } + if nn.UseList != nil { + t.visitor.Enter("UseList", false) + for _, c := range nn.UseList { + t.Traverse(c) + } + t.visitor.Leave("UseList", false) + } case *ast.StmtHaltCompiler: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.StmtIf: - t.traverseSingle("Cond", nn.Cond) - t.traverseSingle("Stmt", nn.Stmt) - t.traverseArray("ElseIf", nn.ElseIf) - t.traverseSingle("Else", nn.Else) + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } + if nn.ElseIf != nil { + t.visitor.Enter("ElseIf", false) + for _, c := range nn.ElseIf { + t.Traverse(c) + } + t.visitor.Leave("ElseIf", false) + } + if nn.Else != nil { + t.visitor.Enter("Else", true) + t.Traverse(nn.Else) + t.visitor.Leave("Else", true) + } case *ast.StmtInlineHtml: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.StmtInterface: - t.traverseSingle("InterfaceName", nn.InterfaceName) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.InterfaceName != nil { + t.visitor.Enter("InterfaceName", true) + t.Traverse(nn.InterfaceName) + t.visitor.Leave("InterfaceName", true) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtInterfaceExtends: - t.traverseArray("InterfaceNames", nn.InterfaceNames) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.InterfaceNames != nil { + t.visitor.Enter("InterfaceNames", false) + for _, c := range nn.InterfaceNames { + t.Traverse(c) + } + t.visitor.Leave("InterfaceNames", false) + } case *ast.StmtLabel: - t.traverseSingle("LabelName", nn.LabelName) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.LabelName != nil { + t.visitor.Enter("LabelName", true) + t.Traverse(nn.LabelName) + t.visitor.Leave("LabelName", true) + } case *ast.StmtNamespace: - t.traverseSingle("NamespaceName", nn.NamespaceName) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.NamespaceName != nil { + t.visitor.Enter("NamespaceName", true) + t.Traverse(nn.NamespaceName) + t.visitor.Leave("NamespaceName", true) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtNop: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.StmtProperty: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtPropertyList: - t.traverseArray("Modifiers", nn.Modifiers) - t.traverseSingle("Type", nn.Type) - t.traverseArray("Properties", nn.Properties) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Modifiers != nil { + t.visitor.Enter("Modifiers", false) + for _, c := range nn.Modifiers { + t.Traverse(c) + } + t.visitor.Leave("Modifiers", false) + } + if nn.Type != nil { + t.visitor.Enter("Type", true) + t.Traverse(nn.Type) + t.visitor.Leave("Type", true) + } + if nn.Properties != nil { + t.visitor.Enter("Properties", false) + for _, c := range nn.Properties { + t.Traverse(c) + } + t.visitor.Leave("Properties", false) + } case *ast.StmtReturn: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtStatic: - t.traverseArray("Vars", nn.Vars) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Vars != nil { + t.visitor.Enter("Vars", false) + for _, c := range nn.Vars { + t.Traverse(c) + } + t.visitor.Leave("Vars", false) + } case *ast.StmtStaticVar: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtStmtList: - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtSwitch: - t.traverseSingle("Cond", nn.Cond) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } case *ast.StmtThrow: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.StmtTrait: - t.traverseSingle("TraitName", nn.TraitName) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.TraitName != nil { + t.visitor.Enter("TraitName", true) + t.Traverse(nn.TraitName) + t.visitor.Leave("TraitName", true) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.StmtTraitAdaptationList: - t.traverseArray("Adaptations", nn.Adaptations) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Adaptations != nil { + t.visitor.Enter("Adaptations", false) + for _, c := range nn.Adaptations { + t.Traverse(c) + } + t.visitor.Leave("Adaptations", false) + } case *ast.StmtTraitMethodRef: - t.traverseSingle("Trait", nn.Trait) - t.traverseSingle("Method", nn.Method) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Trait != nil { + t.visitor.Enter("Trait", true) + t.Traverse(nn.Trait) + t.visitor.Leave("Trait", true) + } + if nn.Method != nil { + t.visitor.Enter("Method", true) + t.Traverse(nn.Method) + t.visitor.Leave("Method", true) + } case *ast.StmtTraitUse: - t.traverseArray("Traits", nn.Traits) - t.traverseSingle("TraitAdaptationList", nn.TraitAdaptationList) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Traits != nil { + t.visitor.Enter("Traits", false) + for _, c := range nn.Traits { + t.Traverse(c) + } + t.visitor.Leave("Traits", false) + } + if nn.TraitAdaptationList != nil { + t.visitor.Enter("TraitAdaptationList", true) + t.Traverse(nn.TraitAdaptationList) + t.visitor.Leave("TraitAdaptationList", true) + } case *ast.StmtTraitUseAlias: - t.traverseSingle("Ref", nn.Ref) - t.traverseSingle("Modifier", nn.Modifier) - t.traverseSingle("Alias", nn.Alias) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Ref != nil { + t.visitor.Enter("Ref", true) + t.Traverse(nn.Ref) + t.visitor.Leave("Ref", true) + } + if nn.Modifier != nil { + t.visitor.Enter("Modifier", true) + t.Traverse(nn.Modifier) + t.visitor.Leave("Modifier", true) + } + if nn.Alias != nil { + t.visitor.Enter("Alias", true) + t.Traverse(nn.Alias) + t.visitor.Leave("Alias", true) + } case *ast.StmtTraitUsePrecedence: - t.traverseSingle("Ref", nn.Ref) - t.traverseArray("Insteadof", nn.Insteadof) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Ref != nil { + t.visitor.Enter("Ref", true) + t.Traverse(nn.Ref) + t.visitor.Leave("Ref", true) + } + if nn.Insteadof != nil { + t.visitor.Enter("Insteadof", false) + for _, c := range nn.Insteadof { + t.Traverse(c) + } + t.visitor.Leave("Insteadof", false) + } case *ast.StmtTry: - t.traverseArray("Stmts", nn.Stmts) - t.traverseArray("Catches", nn.Catches) - t.traverseSingle("Finally", nn.Finally) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } + if nn.Catches != nil { + t.visitor.Enter("Catches", false) + for _, c := range nn.Catches { + t.Traverse(c) + } + t.visitor.Leave("Catches", false) + } + if nn.Finally != nil { + t.visitor.Enter("Finally", true) + t.Traverse(nn.Finally) + t.visitor.Leave("Finally", true) + } case *ast.StmtUnset: - t.traverseArray("Vars", nn.Vars) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Vars != nil { + t.visitor.Enter("Vars", false) + for _, c := range nn.Vars { + t.Traverse(c) + } + t.visitor.Leave("Vars", false) + } case *ast.StmtUse: - t.traverseSingle("UseType", nn.UseType) - t.traverseSingle("Use", nn.Use) - t.traverseSingle("Alias", nn.Alias) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.UseType != nil { + t.visitor.Enter("UseType", true) + t.Traverse(nn.UseType) + t.visitor.Leave("UseType", true) + } + if nn.Use != nil { + t.visitor.Enter("Use", true) + t.Traverse(nn.Use) + t.visitor.Leave("Use", true) + } + if nn.Alias != nil { + t.visitor.Enter("Alias", true) + t.Traverse(nn.Alias) + t.visitor.Leave("Alias", true) + } case *ast.StmtUseList: - t.traverseSingle("UseType", nn.UseType) - t.traverseArray("Uses", nn.Uses) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.UseType != nil { + t.visitor.Enter("UseType", true) + t.Traverse(nn.UseType) + t.visitor.Leave("UseType", true) + } + if nn.Uses != nil { + t.visitor.Enter("Uses", false) + for _, c := range nn.Uses { + t.Traverse(c) + } + t.visitor.Leave("Uses", false) + } case *ast.StmtWhile: - t.traverseSingle("Cond", nn.Cond) - t.traverseSingle("Stmt", nn.Stmt) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Cond != nil { + t.visitor.Enter("Cond", true) + t.Traverse(nn.Cond) + t.visitor.Leave("Cond", true) + } + if nn.Stmt != nil { + t.visitor.Enter("Stmt", true) + t.Traverse(nn.Stmt) + t.visitor.Leave("Stmt", true) + } case *ast.ExprArray: - t.traverseArray("Items", nn.Items) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Items != nil { + t.visitor.Enter("Items", false) + for _, c := range nn.Items { + t.Traverse(c) + } + t.visitor.Leave("Items", false) + } case *ast.ExprArrayDimFetch: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Dim", nn.Dim) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Dim != nil { + t.visitor.Enter("Dim", true) + t.Traverse(nn.Dim) + t.visitor.Leave("Dim", true) + } case *ast.ExprArrayItem: - t.traverseSingle("Key", nn.Key) - t.traverseSingle("Val", nn.Val) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Key != nil { + t.visitor.Enter("Key", true) + t.Traverse(nn.Key) + t.visitor.Leave("Key", true) + } + if nn.Val != nil { + t.visitor.Enter("Val", true) + t.Traverse(nn.Val) + t.visitor.Leave("Val", true) + } case *ast.ExprArrowFunction: - t.traverseArray("Params", nn.Params) - t.traverseSingle("ReturnType", nn.ReturnType) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Params != nil { + t.visitor.Enter("Params", false) + for _, c := range nn.Params { + t.Traverse(c) + } + t.visitor.Leave("Params", false) + } + if nn.ReturnType != nil { + t.visitor.Enter("ReturnType", true) + t.Traverse(nn.ReturnType) + t.visitor.Leave("ReturnType", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprBitwiseNot: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprBooleanNot: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprClassConstFetch: - t.traverseSingle("Class", nn.Class) - t.traverseSingle("ConstantName", nn.ConstantName) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Class != nil { + t.visitor.Enter("Class", true) + t.Traverse(nn.Class) + t.visitor.Leave("Class", true) + } + if nn.ConstantName != nil { + t.visitor.Enter("ConstantName", true) + t.Traverse(nn.ConstantName) + t.visitor.Leave("ConstantName", true) + } case *ast.ExprClone: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprClosure: - t.traverseArray("Params", nn.Params) - t.traverseSingle("ClosureUse", nn.ClosureUse) - t.traverseSingle("ReturnType", nn.ReturnType) - t.traverseArray("Stmts", nn.Stmts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Params != nil { + t.visitor.Enter("Params", false) + for _, c := range nn.Params { + t.Traverse(c) + } + t.visitor.Leave("Params", false) + } + if nn.ClosureUse != nil { + t.visitor.Enter("ClosureUse", true) + t.Traverse(nn.ClosureUse) + t.visitor.Leave("ClosureUse", true) + } + if nn.ReturnType != nil { + t.visitor.Enter("ReturnType", true) + t.Traverse(nn.ReturnType) + t.visitor.Leave("ReturnType", true) + } + if nn.Stmts != nil { + t.visitor.Enter("Stmts", false) + for _, c := range nn.Stmts { + t.Traverse(c) + } + t.visitor.Leave("Stmts", false) + } case *ast.ExprClosureUse: - t.traverseArray("Uses", nn.Uses) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Uses != nil { + t.visitor.Enter("Uses", false) + for _, c := range nn.Uses { + t.Traverse(c) + } + t.visitor.Leave("Uses", false) + } case *ast.ExprConstFetch: - t.traverseSingle("Const", nn.Const) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Const != nil { + t.visitor.Enter("Const", true) + t.Traverse(nn.Const) + t.visitor.Leave("Const", true) + } case *ast.ExprEmpty: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprErrorSuppress: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprEval: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprExit: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprFunctionCall: - t.traverseSingle("Function", nn.Function) - t.traverseSingle("ArgumentList", nn.ArgumentList) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Function != nil { + t.visitor.Enter("Function", true) + t.Traverse(nn.Function) + t.visitor.Leave("Function", true) + } + if nn.ArgumentList != nil { + t.visitor.Enter("ArgumentList", true) + t.Traverse(nn.ArgumentList) + t.visitor.Leave("ArgumentList", true) + } case *ast.ExprInclude: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprIncludeOnce: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprInstanceOf: - t.traverseSingle("Expr", nn.Expr) - t.traverseSingle("Class", nn.Class) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } + if nn.Class != nil { + t.visitor.Enter("Class", true) + t.Traverse(nn.Class) + t.visitor.Leave("Class", true) + } case *ast.ExprIsset: - t.traverseArray("Vars", nn.Vars) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Vars != nil { + t.visitor.Enter("Vars", false) + for _, c := range nn.Vars { + t.Traverse(c) + } + t.visitor.Leave("Vars", false) + } case *ast.ExprList: - t.traverseArray("Items", nn.Items) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Items != nil { + t.visitor.Enter("Items", false) + for _, c := range nn.Items { + t.Traverse(c) + } + t.visitor.Leave("Items", false) + } case *ast.ExprMethodCall: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Method", nn.Method) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Method != nil { + t.visitor.Enter("Method", true) + t.Traverse(nn.Method) + t.visitor.Leave("Method", true) + } case *ast.ExprNew: - t.traverseSingle("Class", nn.Class) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Class != nil { + t.visitor.Enter("Class", true) + t.Traverse(nn.Class) + t.visitor.Leave("Class", true) + } case *ast.ExprPostDec: - t.traverseSingle("Var", nn.Var) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } case *ast.ExprPostInc: - t.traverseSingle("Var", nn.Var) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } case *ast.ExprPreDec: - t.traverseSingle("Var", nn.Var) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } case *ast.ExprPreInc: - t.traverseSingle("Var", nn.Var) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } case *ast.ExprPrint: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprPropertyFetch: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Property", nn.Property) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Property != nil { + t.visitor.Enter("Property", true) + t.Traverse(nn.Property) + t.visitor.Leave("Property", true) + } case *ast.ExprReference: - t.traverseSingle("Var", nn.Var) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } case *ast.ExprRequire: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprRequireOnce: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprShellExec: - t.traverseArray("Parts", nn.Parts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Parts != nil { + t.visitor.Enter("Parts", false) + for _, c := range nn.Parts { + t.Traverse(c) + } + t.visitor.Leave("Parts", false) + } case *ast.ExprShortArray: - t.traverseArray("Items", nn.Items) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Items != nil { + t.visitor.Enter("Items", false) + for _, c := range nn.Items { + t.Traverse(c) + } + t.visitor.Leave("Items", false) + } case *ast.ExprShortList: - t.traverseArray("Items", nn.Items) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Items != nil { + t.visitor.Enter("Items", false) + for _, c := range nn.Items { + t.Traverse(c) + } + t.visitor.Leave("Items", false) + } case *ast.ExprStaticCall: - t.traverseSingle("Class", nn.Class) - t.traverseSingle("Call", nn.Call) - t.traverseSingle("ArgumentList", nn.ArgumentList) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Class != nil { + t.visitor.Enter("Class", true) + t.Traverse(nn.Class) + t.visitor.Leave("Class", true) + } + if nn.Call != nil { + t.visitor.Enter("Call", true) + t.Traverse(nn.Call) + t.visitor.Leave("Call", true) + } + if nn.ArgumentList != nil { + t.visitor.Enter("ArgumentList", true) + t.Traverse(nn.ArgumentList) + t.visitor.Leave("ArgumentList", true) + } case *ast.ExprStaticPropertyFetch: - t.traverseSingle("Class", nn.Class) - t.traverseSingle("Property", nn.Property) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Class != nil { + t.visitor.Enter("Class", true) + t.Traverse(nn.Class) + t.visitor.Leave("Class", true) + } + if nn.Property != nil { + t.visitor.Enter("Property", true) + t.Traverse(nn.Property) + t.visitor.Leave("Property", true) + } case *ast.ExprTernary: - t.traverseSingle("Condition", nn.Condition) - t.traverseSingle("IfTrue", nn.IfTrue) - t.traverseSingle("IfFalse", nn.IfFalse) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Condition != nil { + t.visitor.Enter("Condition", true) + t.Traverse(nn.Condition) + t.visitor.Leave("Condition", true) + } + if nn.IfTrue != nil { + t.visitor.Enter("IfTrue", true) + t.Traverse(nn.IfTrue) + t.visitor.Leave("IfTrue", true) + } + if nn.IfFalse != nil { + t.visitor.Enter("IfFalse", true) + t.Traverse(nn.IfFalse) + t.visitor.Leave("IfFalse", true) + } case *ast.ExprUnaryMinus: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprUnaryPlus: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprVariable: - t.traverseSingle("VarName", nn.VarName) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.VarName != nil { + t.visitor.Enter("VarName", true) + t.Traverse(nn.VarName) + t.visitor.Leave("VarName", true) + } case *ast.ExprYield: - t.traverseSingle("Key", nn.Key) - t.traverseSingle("Value", nn.Value) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Key != nil { + t.visitor.Enter("Key", true) + t.Traverse(nn.Key) + t.visitor.Leave("Key", true) + } + if nn.Value != nil { + t.visitor.Enter("Value", true) + t.Traverse(nn.Value) + t.visitor.Leave("Value", true) + } case *ast.ExprYieldFrom: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssign: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignReference: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignBitwiseAnd: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignBitwiseOr: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignBitwiseXor: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignCoalesce: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignConcat: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignDiv: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignMinus: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignMod: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignMul: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignPlus: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignPow: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignShiftLeft: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprAssignShiftRight: - t.traverseSingle("Var", nn.Var) - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprBinaryBitwiseAnd: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryBitwiseOr: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryBitwiseXor: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryBooleanAnd: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryBooleanOr: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryCoalesce: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryConcat: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryDiv: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryEqual: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryGreater: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryGreaterOrEqual: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryIdentical: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryLogicalAnd: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryLogicalOr: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryLogicalXor: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryMinus: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryMod: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryMul: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryNotEqual: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryNotIdentical: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryPlus: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryPow: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryShiftLeft: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinaryShiftRight: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinarySmaller: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinarySmallerOrEqual: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprBinarySpaceship: - t.traverseSingle("Left", nn.Left) - t.traverseSingle("Right", nn.Right) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Left != nil { + t.visitor.Enter("Left", true) + t.Traverse(nn.Left) + t.visitor.Leave("Left", true) + } + if nn.Right != nil { + t.visitor.Enter("Right", true) + t.Traverse(nn.Right) + t.visitor.Leave("Right", true) + } case *ast.ExprCastArray: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprCastBool: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprCastDouble: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprCastInt: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprCastObject: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprCastString: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprCastUnset: - t.traverseSingle("Expr", nn.Expr) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ScalarDnumber: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.ScalarEncapsed: - t.traverseArray("Parts", nn.Parts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Parts != nil { + t.visitor.Enter("Parts", false) + for _, c := range nn.Parts { + t.Traverse(c) + } + t.visitor.Leave("Parts", false) + } case *ast.ScalarEncapsedStringPart: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.ScalarHeredoc: - t.traverseArray("Parts", nn.Parts) + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Parts != nil { + t.visitor.Enter("Parts", false) + for _, c := range nn.Parts { + t.Traverse(c) + } + t.visitor.Leave("Parts", false) + } case *ast.ScalarLnumber: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.ScalarMagicConstant: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } case *ast.ScalarString: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + default: + panic("unexpected type of node") } t.visitor.LeaveNode(n) } - -func (t *DFS) traverseSingle(key string, n ast.Vertex) { - if n == nil { - return - } - - t.visitor.Enter(key, true) - t.Traverse(n) - t.visitor.Leave(key, true) -} - -func (t *DFS) traverseArray(key string, nn []ast.Vertex) { - if nn == nil { - return - } - - t.visitor.Enter(key, false) - for _, c := range nn { - t.Traverse(c) - } - t.visitor.Leave(key, false) -} diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index a000a59..9d4c316 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -117,7 +117,7 @@ func (v *Dump) Identifier(n *ast.Identifier) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Identifier{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) } @@ -335,7 +335,7 @@ func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInlineHtml{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) } @@ -953,7 +953,7 @@ func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarDnumber{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) } @@ -966,7 +966,7 @@ func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsedStringPart{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) } @@ -974,7 +974,7 @@ func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarHeredoc{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) v.print(fmt.Sprintf("Label: %q,\n", n.Label)) } @@ -982,7 +982,7 @@ func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarLnumber{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) } @@ -990,7 +990,7 @@ func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarMagicConstant{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) } @@ -998,6 +998,29 @@ func (v *Dump) ScalarString(n *ast.ScalarString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarString{\n") - v.printIndentIfNotSingle(v.indent) + v.printIndent(v.indent) + v.print(fmt.Sprintf("Value: %q,\n", n.Value)) +} + +func (v *Dump) NameName(_ *ast.NameName) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.NameName{\n") +} + +func (v *Dump) NameFullyQualified(_ *ast.NameFullyQualified) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.NameFullyQualified{\n") +} + +func (v *Dump) NameRelative(_ *ast.NameRelative) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.NameRelative{\n") +} + +func (v *Dump) NameNamePart(n *ast.NameNamePart) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.NameNamePart{\n") + + v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) } diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index b1f5153..3d68a0d 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -16,7 +16,7 @@ func ExampleDump() { Var: &ast.ExprVariable{}, }, &ast.StmtInlineHtml{ - Value: "foo", + Value: []byte("foo"), }, }, } diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go new file mode 100644 index 0000000..f79378c --- /dev/null +++ b/pkg/ast/visitor/namespace_resolver.go @@ -0,0 +1,399 @@ +// Package visitor contains walker.visitor implementations +package visitor + +import ( + "errors" + "github.com/z7zmey/php-parser/pkg/ast" + "strings" +) + +// NamespaceResolver visitor +type NamespaceResolver struct { + Null + Namespace *Namespace + ResolvedNames map[ast.Vertex]string + + goDeep bool +} + +// NewNamespaceResolver NamespaceResolver type constructor +func NewNamespaceResolver() *NamespaceResolver { + return &NamespaceResolver{ + Namespace: NewNamespace(""), + ResolvedNames: map[ast.Vertex]string{}, + goDeep: true, + } +} + +func (nsr *NamespaceResolver) EnterNode(n ast.Vertex) bool { + n.Accept(nsr) + + if !nsr.goDeep { + nsr.goDeep = true + return false + } + + return true +} + +func (nsr *NamespaceResolver) StmtNamespace(n *ast.StmtNamespace) { + if n.NamespaceName == nil { + nsr.Namespace = NewNamespace("") + } else { + NSParts := n.NamespaceName.(*ast.NameName).Parts + nsr.Namespace = NewNamespace(concatNameParts(NSParts)) + } +} + +func (nsr *NamespaceResolver) StmtUseList(n *ast.StmtUseList) { + useType := "" + if n.UseType != nil { + useType = string(n.UseType.(*ast.Identifier).Value) + } + + for _, nn := range n.Uses { + nsr.AddAlias(useType, nn, nil) + } + + nsr.goDeep = false +} + +func (nsr *NamespaceResolver) StmtGroupUse(n *ast.StmtGroupUse) { + useType := "" + if n.UseType != nil { + useType = string(n.UseType.(*ast.Identifier).Value) + } + + for _, nn := range n.UseList { + nsr.AddAlias(useType, nn, n.Prefix.(*ast.NameName).Parts) + } + + nsr.goDeep = false +} + +func (nsr *NamespaceResolver) StmtClass(n *ast.StmtClass) { + if n.Extends != nil { + nsr.ResolveName(n.Extends.ClassName, "") + } + + if n.Implements != nil { + for _, interfaceName := range n.Implements.InterfaceNames { + nsr.ResolveName(interfaceName, "") + } + } + + if n.ClassName != nil { + nsr.AddNamespacedName(n, string(n.ClassName.(*ast.Identifier).Value)) + } +} + +func (nsr *NamespaceResolver) StmtInterface(n *ast.StmtInterface) { + if n.Extends != nil { + for _, interfaceName := range n.Extends.InterfaceNames { + nsr.ResolveName(interfaceName, "") + } + } + + nsr.AddNamespacedName(n, string(n.InterfaceName.(*ast.Identifier).Value)) +} + +func (nsr *NamespaceResolver) StmtTrait(n *ast.StmtTrait) { + nsr.AddNamespacedName(n, string(n.TraitName.(*ast.Identifier).Value)) +} + +func (nsr *NamespaceResolver) StmtFunction(n *ast.StmtFunction) { + nsr.AddNamespacedName(n, string(n.FunctionName.(*ast.Identifier).Value)) + + for _, parameter := range n.Params { + nsr.ResolveType(parameter.(*ast.Parameter).Type) + } + + if n.ReturnType != nil { + nsr.ResolveType(n.ReturnType) + } +} + +func (nsr *NamespaceResolver) StmtClassMethod(n *ast.StmtClassMethod) { + for _, parameter := range n.Params { + nsr.ResolveType(parameter.(*ast.Parameter).Type) + } + + if n.ReturnType != nil { + nsr.ResolveType(n.ReturnType) + } +} + +func (nsr *NamespaceResolver) ExprClosure(n *ast.ExprClosure) { + for _, parameter := range n.Params { + nsr.ResolveType(parameter.(*ast.Parameter).Type) + } + + if n.ReturnType != nil { + nsr.ResolveType(n.ReturnType) + } +} + +func (nsr *NamespaceResolver) StmtConstList(n *ast.StmtConstList) { + for _, constant := range n.Consts { + nsr.AddNamespacedName(constant, string(constant.(*ast.StmtConstant).ConstantName.(*ast.Identifier).Value)) + } +} + +func (nsr *NamespaceResolver) ExprStaticCall(n *ast.ExprStaticCall) { + nsr.ResolveName(n.Class, "") +} + +func (nsr *NamespaceResolver) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { + nsr.ResolveName(n.Class, "") +} + +func (nsr *NamespaceResolver) ExprClassConstFetch(n *ast.ExprClassConstFetch) { + nsr.ResolveName(n.Class, "") +} + +func (nsr *NamespaceResolver) ExprNew(n *ast.ExprNew) { + nsr.ResolveName(n.Class, "") +} + +func (nsr *NamespaceResolver) ExprInstanceOf(n *ast.ExprInstanceOf) { + nsr.ResolveName(n.Class, "") +} + +func (nsr *NamespaceResolver) StmtCatch(n *ast.StmtCatch) { + for _, t := range n.Types { + nsr.ResolveName(t, "") + } +} + +func (nsr *NamespaceResolver) ExprFunctionCall(n *ast.ExprFunctionCall) { + nsr.ResolveName(n.Function, "function") +} + +func (nsr *NamespaceResolver) ExprConstFetch(n *ast.ExprConstFetch) { + nsr.ResolveName(n.Const, "const") +} + +func (nsr *NamespaceResolver) StmtTraitUse(n *ast.StmtTraitUse) { + for _, t := range n.Traits { + nsr.ResolveName(t, "") + } + + if adaptationList, ok := n.TraitAdaptationList.(*ast.StmtTraitAdaptationList); ok { + for _, a := range adaptationList.Adaptations { + switch aa := a.(type) { + case *ast.StmtTraitUsePrecedence: + refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait + if refTrait != nil { + nsr.ResolveName(refTrait, "") + } + for _, insteadOf := range aa.Insteadof { + nsr.ResolveName(insteadOf, "") + } + + case *ast.StmtTraitUseAlias: + refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait + if refTrait != nil { + nsr.ResolveName(refTrait, "") + } + } + } + } +} + +// LeaveNode is invoked after node process +func (nsr *NamespaceResolver) LeaveNode(n ast.Vertex) { + switch nn := n.(type) { + case *ast.StmtNamespace: + if nn.Stmts != nil { + nsr.Namespace = NewNamespace("") + } + } +} + +// AddAlias adds a new alias +func (nsr *NamespaceResolver) AddAlias(useType string, nn ast.Vertex, prefix []ast.Vertex) { + switch use := nn.(type) { + case *ast.StmtUse: + if use.UseType != nil { + useType = string(use.UseType.(*ast.Identifier).Value) + } + + useNameParts := use.Use.(*ast.NameName).Parts + var alias string + if use.Alias == nil { + alias = string(useNameParts[len(useNameParts)-1].(*ast.NameNamePart).Value) + } else { + alias = string(use.Alias.(*ast.Identifier).Value) + } + + nsr.Namespace.AddAlias(useType, concatNameParts(prefix, useNameParts), alias) + } +} + +// AddNamespacedName adds namespaced name by node +func (nsr *NamespaceResolver) AddNamespacedName(nn ast.Vertex, nodeName string) { + if nsr.Namespace.Namespace == "" { + nsr.ResolvedNames[nn] = nodeName + } else { + nsr.ResolvedNames[nn] = nsr.Namespace.Namespace + "\\" + nodeName + } +} + +// ResolveName adds a resolved fully qualified name by node +func (nsr *NamespaceResolver) ResolveName(nameNode ast.Vertex, aliasType string) { + resolved, err := nsr.Namespace.ResolveName(nameNode, aliasType) + if err == nil { + nsr.ResolvedNames[nameNode] = resolved + } +} + +// ResolveType adds a resolved fully qualified type name +func (nsr *NamespaceResolver) ResolveType(n ast.Vertex) { + switch nn := n.(type) { + case *ast.Nullable: + nsr.ResolveType(nn.Expr) + case *ast.NameName: + nsr.ResolveName(n, "") + case *ast.NameRelative: + nsr.ResolveName(n, "") + case *ast.NameFullyQualified: + nsr.ResolveName(n, "") + } +} + +// Namespace context +type Namespace struct { + Namespace string + Aliases map[string]map[string]string +} + +// NewNamespace constructor +func NewNamespace(NSName string) *Namespace { + return &Namespace{ + Namespace: NSName, + Aliases: map[string]map[string]string{ + "": {}, + "const": {}, + "function": {}, + }, + } +} + +// AddAlias adds a new alias +func (ns *Namespace) AddAlias(aliasType string, aliasName string, alias string) { + aliasType = strings.ToLower(aliasType) + + if aliasType == "const" { + ns.Aliases[aliasType][alias] = aliasName + } else { + ns.Aliases[aliasType][strings.ToLower(alias)] = aliasName + } +} + +// ResolveName returns a resolved fully qualified name +func (ns *Namespace) ResolveName(nameNode ast.Vertex, aliasType string) (string, error) { + switch n := nameNode.(type) { + case *ast.NameFullyQualified: + // Fully qualifid name is already resolved + return concatNameParts(n.Parts), nil + + case *ast.NameRelative: + if ns.Namespace == "" { + return concatNameParts(n.Parts), nil + } + return ns.Namespace + "\\" + concatNameParts(n.Parts), nil + + case *ast.NameName: + if aliasType == "const" && len(n.Parts) == 1 { + part := strings.ToLower(string(n.Parts[0].(*ast.NameNamePart).Value)) + if part == "true" || part == "false" || part == "null" { + return part, nil + } + } + + if aliasType == "" && len(n.Parts) == 1 { + part := strings.ToLower(string(n.Parts[0].(*ast.NameNamePart).Value)) + + switch part { + case "self": + fallthrough + case "static": + fallthrough + case "parent": + fallthrough + case "int": + fallthrough + case "float": + fallthrough + case "bool": + fallthrough + case "string": + fallthrough + case "void": + fallthrough + case "iterable": + fallthrough + case "object": + return part, nil + } + } + + aliasName, err := ns.ResolveAlias(nameNode, aliasType) + if err != nil { + // resolve as relative name if alias not found + if ns.Namespace == "" { + return concatNameParts(n.Parts), nil + } + return ns.Namespace + "\\" + concatNameParts(n.Parts), nil + } + + if len(n.Parts) > 1 { + // if name qualified, replace first part by alias + return aliasName + "\\" + concatNameParts(n.Parts[1:]), nil + } + + return aliasName, nil + } + + return "", errors.New("must be instance of name.Names") +} + +// ResolveAlias returns alias or error if not found +func (ns *Namespace) ResolveAlias(nameNode ast.Vertex, aliasType string) (string, error) { + aliasType = strings.ToLower(aliasType) + nameParts := nameNode.(*ast.NameName).Parts + + firstPartStr := string(nameParts[0].(*ast.NameNamePart).Value) + + if len(nameParts) > 1 { // resolve aliases for qualified names, always against class alias type + firstPartStr = strings.ToLower(firstPartStr) + aliasType = "" + } else { + if aliasType != "const" { // constants are case-sensitive + firstPartStr = strings.ToLower(firstPartStr) + } + } + + aliasName, ok := ns.Aliases[aliasType][firstPartStr] + if !ok { + return "", errors.New("Not found") + } + + return aliasName, nil +} + +func concatNameParts(parts ...[]ast.Vertex) string { + str := "" + + for _, p := range parts { + for _, n := range p { + if str == "" { + str = string(n.(*ast.NameNamePart).Value) + } else { + str = str + "\\" + string(n.(*ast.NameNamePart).Value) + } + } + } + + return str +} diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go new file mode 100644 index 0000000..61ed537 --- /dev/null +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -0,0 +1,986 @@ +package visitor_test + +import ( + "testing" + + "gotest.tools/assert" + + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" +) + +func TestResolveStaticCall(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.ExprStaticCall{ + Class: nameBC, + Call: &ast.Identifier{Value: []byte("foo")}, + ArgumentList: &ast.ArgumentList{}, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameBC: "A\\B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveStaticPropertyFetch(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.ExprStaticPropertyFetch{ + Class: nameBC, + Property: &ast.Identifier{Value: []byte("foo")}, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameBC: "A\\B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveClassConstFetch(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.ExprClassConstFetch{ + Class: nameBC, + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameBC: "A\\B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveNew(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.ExprNew{ + Class: nameBC, + ArgumentList: &ast.ArgumentList{}, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameBC: "A\\B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveInstanceOf(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.ExprInstanceOf{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Class: nameBC, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameBC: "A\\B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveInstanceCatch(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + nameDE := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("D")}, &ast.NameNamePart{Value: []byte("E")}}} + nameF := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("F")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + &ast.StmtUse{ + Use: nameDE, + Alias: &ast.Identifier{Value: []byte("F")}, + }, + }, + }, + &ast.StmtTry{ + Stmts: []ast.Vertex{}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Types: []ast.Vertex{ + nameBC, + nameF, + }, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameBC: "A\\B\\C", + nameF: "D\\E", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveFunctionCall(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + UseType: &ast.Identifier{Value: []byte("function")}, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.ExprFunctionCall{ + Function: nameB, + ArgumentList: &ast.ArgumentList{}, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameB: "A\\B", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveConstFetch(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + UseType: &ast.Identifier{Value: []byte("const")}, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.ExprConstFetch{ + Const: nameB, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameB: "A\\B", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveGroupUse(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBD := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("D")}}} + nameE := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("E")}}} + nameC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}}} + nameF := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("F")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtGroupUse{ + Prefix: nameAB, + UseList: []ast.Vertex{ + &ast.StmtUse{ + UseType: &ast.Identifier{Value: []byte("Function")}, + Use: nameF, + }, + &ast.StmtUse{ + UseType: &ast.Identifier{Value: []byte("const")}, + Use: nameC, + }, + }, + }, + &ast.StmtGroupUse{ + Prefix: nameBD, + UseType: &ast.Identifier{Value: []byte("Function")}, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Use: nameE, + }, + }, + }, + &ast.ExprConstFetch{ + Const: nameC, + }, + &ast.ExprFunctionCall{ + Function: nameF, + ArgumentList: &ast.ArgumentList{}, + }, + &ast.ExprFunctionCall{ + Function: nameE, + ArgumentList: &ast.ArgumentList{}, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameC: "A\\B\\C", + nameF: "A\\B\\F", + nameE: "B\\D\\E", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveTraitUse(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} + nameD := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("D")}}} + + fullyQualifiedNameB := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} + fullyQualifiedNameBC := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + relativeNameB := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} + relativeNameBC := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAB, + }, + }, + }, + &ast.StmtTraitUse{ + Traits: []ast.Vertex{ + nameB, + relativeNameB, + }, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Adaptations: []ast.Vertex{ + &ast.StmtTraitUsePrecedence{ + Ref: &ast.StmtTraitMethodRef{ + Trait: fullyQualifiedNameB, + Method: &ast.Identifier{Value: []byte("foo")}, + }, + Insteadof: []ast.Vertex{fullyQualifiedNameBC}, + }, + &ast.StmtTraitUseAlias{ + Ref: &ast.StmtTraitMethodRef{ + Trait: relativeNameBC, + Method: &ast.Identifier{Value: []byte("foo")}, + }, + Alias: &ast.Identifier{Value: []byte("bar")}, + }, + }, + }, + }, + &ast.StmtTraitUse{ + Traits: []ast.Vertex{ + nameD, + }, + }, + }, + } + + expected := map[ast.Vertex]string{ + nameB: "A\\B", + nameD: "D", + relativeNameB: "B", + fullyQualifiedNameB: "B", + fullyQualifiedNameBC: "B\\C", + relativeNameBC: "B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveClassName(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + class := &ast.StmtClass{ + ClassName: &ast.Identifier{Value: []byte("A")}, + Extends: &ast.StmtClassExtends{ + ClassName: nameAB, + }, + Implements: &ast.StmtClassImplements{ + InterfaceNames: []ast.Vertex{ + nameBC, + }, + }, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + class, + }, + } + + expected := map[ast.Vertex]string{ + class: "A", + nameAB: "A\\B", + nameBC: "B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveInterfaceName(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + interfaceNode := &ast.StmtInterface{ + InterfaceName: &ast.Identifier{Value: []byte("A")}, + Extends: &ast.StmtInterfaceExtends{ + InterfaceNames: []ast.Vertex{ + nameAB, + nameBC, + }, + }, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + interfaceNode, + }, + } + + expected := map[ast.Vertex]string{ + interfaceNode: "A", + nameAB: "A\\B", + nameBC: "B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveTraitName(t *testing.T) { + traitNode := &ast.StmtTrait{ + TraitName: &ast.Identifier{Value: []byte("A")}, + Stmts: []ast.Vertex{}, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + traitNode, + }, + } + + expected := map[ast.Vertex]string{ + traitNode: "A", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveFunctionName(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + functionNode := &ast.StmtFunction{ + ReturnsRef: false, + FunctionName: &ast.Identifier{Value: []byte("A")}, + Params: []ast.Vertex{ + &ast.Parameter{ + ByRef: false, + Variadic: false, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + }, + }, + ReturnType: &ast.Nullable{Expr: nameBC}, + Stmts: []ast.Vertex{}, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + functionNode, + }, + } + + expected := map[ast.Vertex]string{ + functionNode: "A", + nameAB: "A\\B", + nameBC: "B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveMethodName(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + methodNode := &ast.StmtClassMethod{ + ReturnsRef: false, + MethodName: &ast.Identifier{Value: []byte("A")}, + Params: []ast.Vertex{ + &ast.Parameter{ + ByRef: false, + Variadic: false, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + }, + }, + ReturnType: &ast.Nullable{Expr: nameBC}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{}, + }, + } + + expected := map[ast.Vertex]string{ + nameAB: "A\\B", + nameBC: "B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(methodNode) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveClosureName(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + + closureNode := &ast.ExprClosure{ + ReturnsRef: false, + Static: false, + Params: []ast.Vertex{ + &ast.Parameter{ + ByRef: false, + Variadic: false, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + }, + }, + ClosureUse: nil, + ReturnType: &ast.Nullable{Expr: nameBC}, + Stmts: []ast.Vertex{}, + } + + expected := map[ast.Vertex]string{ + nameAB: "A\\B", + nameBC: "B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(closureNode) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveConstantsName(t *testing.T) { + nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + + constantB := &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("B")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, + } + constantC := &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("C")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNamespace{ + NamespaceName: nameAB, + }, + &ast.StmtConstList{ + Consts: []ast.Vertex{ + constantB, + constantC, + }, + }, + }, + } + + expected := map[ast.Vertex]string{ + constantB: "A\\B\\B", + constantC: "A\\B\\C", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveNamespaces(t *testing.T) { + namespaceAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + namespaceCD := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("D")}}} + + nameAC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("C")}}} + nameCF := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("F")}}} + nameFG := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("F")}, &ast.NameNamePart{Value: []byte("G")}}} + relativeNameCE := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("E")}}} + + constantB := &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("B")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, + } + constantC := &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("C")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNamespace{ + NamespaceName: namespaceAB, + }, + &ast.StmtConstList{ + Consts: []ast.Vertex{ + constantB, + constantC, + }, + }, + &ast.ExprStaticCall{ + Class: nameFG, + Call: &ast.Identifier{Value: []byte("foo")}, + ArgumentList: &ast.ArgumentList{}, + }, + &ast.StmtNamespace{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtNamespace{ + NamespaceName: namespaceCD, + Stmts: []ast.Vertex{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: nameAC, + }, + }, + }, + &ast.ExprStaticCall{ + Class: relativeNameCE, + Call: &ast.Identifier{Value: []byte("foo")}, + ArgumentList: &ast.ArgumentList{}, + }, + &ast.ExprStaticCall{ + Class: nameCF, + Call: &ast.Identifier{Value: []byte("foo")}, + ArgumentList: &ast.ArgumentList{}, + }, + }, + }, + }, + } + + expected := map[ast.Vertex]string{ + constantB: "A\\B\\B", + constantC: "A\\B\\C", + nameFG: "A\\B\\F\\G", + relativeNameCE: "C\\D\\C\\E", + nameCF: "A\\C\\F", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestResolveStaticCallDinamicClassName(t *testing.T) { + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.ExprStaticCall{ + Class: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Call: &ast.Identifier{Value: []byte("foo")}, + ArgumentList: &ast.ArgumentList{}, + }, + }, + } + + expected := map[ast.Vertex]string{} + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestDoNotResolveReservedConstants(t *testing.T) { + namespaceName := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}} + + constantTrue := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("True")}, + }, + } + + constantFalse := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("False")}, + }, + } + + constantNull := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("NULL")}, + }, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNamespace{ + NamespaceName: namespaceName, + }, + &ast.StmtExpression{ + Expr: &ast.ExprConstFetch{ + Const: constantTrue, + }, + }, + &ast.StmtExpression{ + Expr: &ast.ExprConstFetch{ + Const: constantFalse, + }, + }, + &ast.StmtExpression{ + Expr: &ast.ExprConstFetch{ + Const: constantNull, + }, + }, + }, + } + + expected := map[ast.Vertex]string{ + constantTrue: "true", + constantFalse: "false", + constantNull: "null", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestDoNotResolveReservedNames(t *testing.T) { + + nameInt := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("int")}, + }, + } + + nameFloat := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("float")}, + }, + } + + nameBool := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("bool")}, + }, + } + + nameString := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("string")}, + }, + } + + nameVoid := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("void")}, + }, + } + + nameIterable := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("iterable")}, + }, + } + + nameObject := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("object")}, + }, + } + + function := &ast.StmtFunction{ + FunctionName: &ast.Identifier{Value: []byte("bar")}, + Params: []ast.Vertex{ + &ast.Parameter{ + Type: nameInt, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("Int")}, + }, + }, + &ast.Parameter{ + Type: nameFloat, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("Float")}, + }, + }, + &ast.Parameter{ + Type: nameBool, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("Bool")}, + }, + }, + &ast.Parameter{ + Type: nameString, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("String")}, + }, + }, + &ast.Parameter{ + Type: nameVoid, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("Void")}, + }, + }, + &ast.Parameter{ + Type: nameIterable, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("Iterable")}, + }, + }, + &ast.Parameter{ + Type: nameObject, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("Object")}, + }, + }, + }, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNamespace{ + NamespaceName: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Foo")}, + }, + }, + }, + function, + }, + } + + expected := map[ast.Vertex]string{ + function: "Foo\\bar", + nameInt: "int", + nameFloat: "float", + nameBool: "bool", + nameString: "string", + nameVoid: "void", + nameIterable: "iterable", + nameObject: "object", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} + +func TestDoNotResolveReservedSpecialNames(t *testing.T) { + + nameSelf := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Self")}, + }, + } + + nameStatic := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Static")}, + }, + } + + nameParent := &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Parent")}, + }, + } + + cls := &ast.StmtClass{ + ClassName: &ast.Identifier{Value: []byte("Bar")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Expr: &ast.ExprStaticCall{ + Class: nameSelf, + Call: &ast.Identifier{Value: []byte("func")}, + ArgumentList: &ast.ArgumentList{}, + }, + }, + &ast.StmtExpression{ + Expr: &ast.ExprStaticCall{ + Class: nameStatic, + Call: &ast.Identifier{Value: []byte("func")}, + ArgumentList: &ast.ArgumentList{}, + }, + }, + &ast.StmtExpression{ + Expr: &ast.ExprStaticCall{ + Class: nameParent, + Call: &ast.Identifier{Value: []byte("func")}, + ArgumentList: &ast.ArgumentList{}, + }, + }, + }, + } + + stxTree := &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNamespace{ + NamespaceName: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Foo")}, + }, + }, + }, + cls, + }, + } + + expected := map[ast.Vertex]string{ + cls: "Foo\\Bar", + nameSelf: "self", + nameStatic: "static", + nameParent: "parent", + } + + nsResolver := visitor.NewNamespaceResolver() + dfsTraverser := traverser.NewDFS(nsResolver) + dfsTraverser.Traverse(stxTree) + + assert.DeepEqual(t, expected, nsResolver.ResolvedNames) +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 41ab67b..bdcacbf 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -681,3 +681,19 @@ func (v *Null) ScalarMagicConstant(_ *ast.ScalarMagicConstant) { func (v *Null) ScalarString(_ *ast.ScalarString) { // do nothing } + +func (v *Null) NameName(_ *ast.NameName) { + // do nothing +} + +func (v *Null) NameFullyQualified(_ *ast.NameFullyQualified) { + // do nothing +} + +func (v *Null) NameRelative(_ *ast.NameRelative) { + // do nothing +} + +func (v *Null) NameNamePart(_ *ast.NameNamePart) { + // do nothing +} From 50f8a47119d13b79c8479f5a5b043a5f4bb1c489 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Thu, 14 May 2020 19:07:05 +0300 Subject: [PATCH 008/140] update tests --- internal/php5/parser_test.go | 23147 +++++++++++++++++ internal/php7/parser_test.go | 25883 ++++++++++++++++++++ node/expr/assign/n_assign.go | 66 - node/expr/assign/n_assign_ref.go | 66 - node/expr/assign/n_bitwise_and.go | 66 - node/expr/assign/n_bitwise_or.go | 66 - node/expr/assign/n_bitwise_xor.go | 66 - node/expr/assign/n_coalesce.go | 66 - node/expr/assign/n_concat.go | 66 - node/expr/assign/n_div.go | 66 - node/expr/assign/n_minus.go | 66 - node/expr/assign/n_mod.go | 66 - node/expr/assign/n_mul.go | 66 - node/expr/assign/n_plus.go | 66 - node/expr/assign/n_pow.go | 66 - node/expr/assign/n_shift_left.go | 66 - node/expr/assign/n_shift_right.go | 66 - node/expr/assign/t_assign_op_test.go | 1344 - node/expr/assign/t_freefloating_test.go | 84 - node/expr/assign/t_position_test.go | 18 - node/expr/assign/t_visitor_test.go | 190 - node/expr/binary/n_bitwise_and.go | 66 - node/expr/binary/n_bitwise_or.go | 66 - node/expr/binary/n_bitwise_xor.go | 66 - node/expr/binary/n_boolean_and.go | 66 - node/expr/binary/n_boolean_or.go | 66 - node/expr/binary/n_coalesce.go | 66 - node/expr/binary/n_concat.go | 66 - node/expr/binary/n_div.go | 66 - node/expr/binary/n_equal.go | 66 - node/expr/binary/n_greater.go | 66 - node/expr/binary/n_greater_or_equal.go | 66 - node/expr/binary/n_identical.go | 66 - node/expr/binary/n_logical_and.go | 66 - node/expr/binary/n_logical_or.go | 66 - node/expr/binary/n_logical_xor.go | 66 - node/expr/binary/n_minus.go | 66 - node/expr/binary/n_mod.go | 66 - node/expr/binary/n_mul.go | 66 - node/expr/binary/n_not_equal.go | 66 - node/expr/binary/n_not_identical.go | 66 - node/expr/binary/n_plus.go | 66 - node/expr/binary/n_pow.go | 66 - node/expr/binary/n_shift_left.go | 66 - node/expr/binary/n_shift_right.go | 66 - node/expr/binary/n_smaller.go | 66 - node/expr/binary/n_smaller_or_equal.go | 66 - node/expr/binary/n_spaceship.go | 66 - node/expr/binary/t_binary_op_test.go | 2030 -- node/expr/binary/t_freefloating_test.go | 117 - node/expr/binary/t_position_test.go | 18 - node/expr/binary/t_visitor_test.go | 285 - node/expr/cast/n_cast_array.go | 58 - node/expr/cast/n_cast_bool.go | 58 - node/expr/cast/n_cast_double.go | 58 - node/expr/cast/n_cast_int.go | 58 - node/expr/cast/n_cast_object.go | 58 - node/expr/cast/n_cast_string.go | 58 - node/expr/cast/n_cast_unset.go | 58 - node/expr/cast/t_cast_test.go | 653 - node/expr/cast/t_freefloating_test.go | 57 - node/expr/cast/t_position_test.go | 18 - node/expr/cast/t_visitor_test.go | 119 - node/expr/n_array.go | 62 - node/expr/n_array_dim_fetch.go | 66 - node/expr/n_array_item.go | 70 - node/expr/n_arrow_function.go | 88 - node/expr/n_bitwise_not.go | 58 - node/expr/n_boolean_not.go | 58 - node/expr/n_class_const_fetch.go | 66 - node/expr/n_clone.go | 58 - node/expr/n_closure.go | 100 - node/expr/n_closure_use.go | 62 - node/expr/n_const_fetch.go | 58 - node/expr/n_empty.go | 58 - node/expr/n_error_suppress.go | 58 - node/expr/n_eval.go | 58 - node/expr/n_exit.go | 61 - node/expr/n_function_call.go | 66 - node/expr/n_include.go | 58 - node/expr/n_include_once.go | 58 - node/expr/n_instance_of.go | 66 - node/expr/n_isset.go | 62 - node/expr/n_list.go | 62 - node/expr/n_method_call.go | 74 - node/expr/n_new.go | 66 - node/expr/n_post_dec.go | 58 - node/expr/n_post_inc.go | 58 - node/expr/n_pre_dec.go | 58 - node/expr/n_pre_inc.go | 58 - node/expr/n_print.go | 58 - node/expr/n_property_fetch.go | 66 - node/expr/n_reference.go | 58 - node/expr/n_require.go | 58 - node/expr/n_require_once.go | 58 - node/expr/n_shell_exec.go | 62 - node/expr/n_short_array.go | 62 - node/expr/n_short_list.go | 62 - node/expr/n_static_call.go | 74 - node/expr/n_static_property_fetch.go | 66 - node/expr/n_ternary.go | 74 - node/expr/n_unary_minus.go | 58 - node/expr/n_unary_plus.go | 58 - node/expr/n_variable.go | 63 - node/expr/n_yield.go | 66 - node/expr/n_yield_from.go | 58 - node/expr/t_array_dim_fetch_test.go | 166 - node/expr/t_array_test.go | 284 - node/expr/t_arrow_function_test.go | 144 - node/expr/t_bitwise_not_test.go | 73 - node/expr/t_boolean_not_test.go | 73 - node/expr/t_class_const_fetch_test.go | 145 - node/expr/t_clone_test.go | 131 - node/expr/t_closure_test.go | 427 - node/expr/t_const_fetch_test.go | 197 - node/expr/t_empty_test.go | 73 - node/expr/t_error_supress_test.go | 73 - node/expr/t_eval_test.go | 73 - node/expr/t_exit_test.go | 301 - node/expr/t_freefloating_test.go | 165 - node/expr/t_function_call_test.go | 462 - node/expr/t_inc_dec_test.go | 247 - node/expr/t_include_test.go | 247 - node/expr/t_instance_of_test.go | 248 - node/expr/t_isset_test.go | 152 - node/expr/t_list_test.go | 577 - node/expr/t_method_call_test.go | 90 - node/expr/t_new_test.go | 323 - node/expr/t_position_test.go | 18 - node/expr/t_print_test.go | 73 - node/expr/t_property_fetch_test.go | 82 - node/expr/t_reference_test.go | 117 - node/expr/t_shell_exec_test.go | 86 - node/expr/t_short_array_test.go | 220 - node/expr/t_short_list_test.go | 304 - node/expr/t_static_call_test.go | 416 - node/expr/t_static_property_fetch_test.go | 247 - node/expr/t_ternary_test.go | 450 - node/expr/t_unary_test.go | 131 - node/expr/t_variable_test.go | 123 - node/expr/t_visitor_test.go | 416 - node/expr/t_yield_test.go | 360 - node/n_argument.go | 64 - node/n_argument_list.go | 61 - node/n_identifier.go | 53 - node/n_nullable.go | 57 - node/n_parameter.go | 80 - node/n_root.go | 61 - node/name/n_fully_qualified.go | 67 - node/name/n_name.go | 67 - node/name/n_name_part.go | 53 - node/name/n_relative.go | 67 - node/name/names.go | 11 - node/name/t_freefloating_test.go | 48 - node/name/t_name_test.go | 235 - node/name/t_position_test.go | 18 - node/name/t_visitor_test.go | 89 - node/node.go | 16 - node/scalar/node_dnumber.go | 53 - node/scalar/node_encapsed.go | 62 - node/scalar/node_encapsed_string_part.go | 53 - node/scalar/node_heredoc.go | 66 - node/scalar/node_lnumber.go | 53 - node/scalar/node_magic_constant.go | 53 - node/scalar/node_string.go | 53 - node/scalar/t_encapsed_test.go | 662 - node/scalar/t_freefloating_test.go | 57 - node/scalar/t_heredoc_test.go | 336 - node/scalar/t_magic_constant_test.go | 57 - node/scalar/t_numbers_test.go | 308 - node/scalar/t_position_test.go | 18 - node/scalar/t_string_test.go | 228 - node/scalar/t_visitor_test.go | 104 - node/stmt/n_alt_else.go | 58 - node/stmt/n_alt_else_if.go | 66 - node/stmt/n_alt_for.go | 94 - node/stmt/n_alt_foreach.go | 82 - node/stmt/n_alt_if.go | 104 - node/stmt/n_alt_switch.go | 66 - node/stmt/n_alt_while.go | 66 - node/stmt/n_break.go | 58 - node/stmt/n_case.go | 70 - node/stmt/n_case_list.go | 62 - node/stmt/n_catch.go | 82 - node/stmt/n_class.go | 110 - node/stmt/n_class_const_list.go | 74 - node/stmt/n_class_extends.go | 58 - node/stmt/n_class_implements.go | 62 - node/stmt/n_class_method.go | 105 - node/stmt/n_const_list.go | 62 - node/stmt/n_constant.go | 70 - node/stmt/n_continue.go | 58 - node/stmt/n_declare.go | 74 - node/stmt/n_default.go | 62 - node/stmt/n_do.go | 66 - node/stmt/n_echo.go | 62 - node/stmt/n_else.go | 58 - node/stmt/n_else_if.go | 66 - node/stmt/n_expression.go | 58 - node/stmt/n_finally.go | 62 - node/stmt/n_for.go | 94 - node/stmt/n_foreach.go | 82 - node/stmt/n_function.go | 98 - node/stmt/n_global.go | 62 - node/stmt/n_goto.go | 58 - node/stmt/n_group_use.go | 84 - node/stmt/n_halt_compiler.go | 47 - node/stmt/n_if.go | 104 - node/stmt/n_inline_html.go | 53 - node/stmt/n_interface.go | 82 - node/stmt/n_interface_extends.go | 62 - node/stmt/n_label.go | 58 - node/stmt/n_namespace.go | 70 - node/stmt/n_nop.go | 47 - node/stmt/n_property.go | 70 - node/stmt/n_property_list.go | 82 - node/stmt/n_return.go | 58 - node/stmt/n_static.go | 62 - node/stmt/n_static_var.go | 66 - node/stmt/n_stmt_list.go | 62 - node/stmt/n_switch.go | 66 - node/stmt/n_throw.go | 58 - node/stmt/n_trait.go | 74 - node/stmt/n_trait_adaptation_list.go | 62 - node/stmt/n_trait_method_ref.go | 66 - node/stmt/n_trait_use.go | 70 - node/stmt/n_trait_use_alias.go | 74 - node/stmt/n_trait_use_precedence.go | 70 - node/stmt/n_try.go | 82 - node/stmt/n_unset.go | 62 - node/stmt/n_use.go | 80 - node/stmt/n_use_list.go | 70 - node/stmt/n_while.go | 66 - node/stmt/t_alt_if_test.go | 407 - node/stmt/t_class_const_list_test.go | 239 - node/stmt/t_class_method_test.go | 626 - node/stmt/t_class_test.go | 513 - node/stmt/t_const_list_test.go | 104 - node/stmt/t_continue_test.go | 213 - node/stmt/t_declare_test.go | 255 - node/stmt/t_do_test.go | 66 - node/stmt/t_echo_test.go | 130 - node/stmt/t_expression_test.go | 57 - node/stmt/t_for_test.go | 291 - node/stmt/t_foreach_test.go | 625 - node/stmt/t_freefloating_test.go | 216 - node/stmt/t_function_test.go | 383 - node/stmt/t_global_test.go | 204 - node/stmt/t_goto_label_test.go | 72 - node/stmt/t_halt_compiler_test.go | 46 - node/stmt/t_if_test.go | 545 - node/stmt/t_inline_html_test.go | 55 - node/stmt/t_interface_test.go | 224 - node/stmt/t_namespace_test.go | 154 - node/stmt/t_position_test.go | 18 - node/stmt/t_property_list_test.go | 487 - node/stmt/t_static_var_test.go | 263 - node/stmt/t_switch_case_default_test.go | 433 - node/stmt/t_throw_test.go | 64 - node/stmt/t_trait_test.go | 57 - node/stmt/t_trait_use_test.go | 822 - node/stmt/t_try_catch_finnaly_test.go | 640 - node/stmt/t_unset_test.go | 199 - node/stmt/t_use_test.go | 1385 -- node/stmt/t_visitor_test.go | 574 - node/stmt/t_while_break_test.go | 213 - node/t_freefloating_test.go | 53 - node/t_node_test.go | 2755 --- node/t_position_test.go | 18 - node/t_visitor_test.go | 113 - 270 files changed, 49030 insertions(+), 39496 deletions(-) create mode 100644 internal/php5/parser_test.go create mode 100644 internal/php7/parser_test.go delete mode 100644 node/expr/assign/n_assign.go delete mode 100644 node/expr/assign/n_assign_ref.go delete mode 100644 node/expr/assign/n_bitwise_and.go delete mode 100644 node/expr/assign/n_bitwise_or.go delete mode 100644 node/expr/assign/n_bitwise_xor.go delete mode 100644 node/expr/assign/n_coalesce.go delete mode 100644 node/expr/assign/n_concat.go delete mode 100644 node/expr/assign/n_div.go delete mode 100644 node/expr/assign/n_minus.go delete mode 100644 node/expr/assign/n_mod.go delete mode 100644 node/expr/assign/n_mul.go delete mode 100644 node/expr/assign/n_plus.go delete mode 100644 node/expr/assign/n_pow.go delete mode 100644 node/expr/assign/n_shift_left.go delete mode 100644 node/expr/assign/n_shift_right.go delete mode 100644 node/expr/assign/t_assign_op_test.go delete mode 100644 node/expr/assign/t_freefloating_test.go delete mode 100644 node/expr/assign/t_position_test.go delete mode 100644 node/expr/assign/t_visitor_test.go delete mode 100644 node/expr/binary/n_bitwise_and.go delete mode 100644 node/expr/binary/n_bitwise_or.go delete mode 100644 node/expr/binary/n_bitwise_xor.go delete mode 100644 node/expr/binary/n_boolean_and.go delete mode 100644 node/expr/binary/n_boolean_or.go delete mode 100644 node/expr/binary/n_coalesce.go delete mode 100644 node/expr/binary/n_concat.go delete mode 100644 node/expr/binary/n_div.go delete mode 100644 node/expr/binary/n_equal.go delete mode 100644 node/expr/binary/n_greater.go delete mode 100644 node/expr/binary/n_greater_or_equal.go delete mode 100644 node/expr/binary/n_identical.go delete mode 100644 node/expr/binary/n_logical_and.go delete mode 100644 node/expr/binary/n_logical_or.go delete mode 100644 node/expr/binary/n_logical_xor.go delete mode 100644 node/expr/binary/n_minus.go delete mode 100644 node/expr/binary/n_mod.go delete mode 100644 node/expr/binary/n_mul.go delete mode 100644 node/expr/binary/n_not_equal.go delete mode 100644 node/expr/binary/n_not_identical.go delete mode 100644 node/expr/binary/n_plus.go delete mode 100644 node/expr/binary/n_pow.go delete mode 100644 node/expr/binary/n_shift_left.go delete mode 100644 node/expr/binary/n_shift_right.go delete mode 100644 node/expr/binary/n_smaller.go delete mode 100644 node/expr/binary/n_smaller_or_equal.go delete mode 100644 node/expr/binary/n_spaceship.go delete mode 100644 node/expr/binary/t_binary_op_test.go delete mode 100644 node/expr/binary/t_freefloating_test.go delete mode 100644 node/expr/binary/t_position_test.go delete mode 100644 node/expr/binary/t_visitor_test.go delete mode 100644 node/expr/cast/n_cast_array.go delete mode 100644 node/expr/cast/n_cast_bool.go delete mode 100644 node/expr/cast/n_cast_double.go delete mode 100644 node/expr/cast/n_cast_int.go delete mode 100644 node/expr/cast/n_cast_object.go delete mode 100644 node/expr/cast/n_cast_string.go delete mode 100644 node/expr/cast/n_cast_unset.go delete mode 100644 node/expr/cast/t_cast_test.go delete mode 100644 node/expr/cast/t_freefloating_test.go delete mode 100644 node/expr/cast/t_position_test.go delete mode 100644 node/expr/cast/t_visitor_test.go delete mode 100644 node/expr/n_array.go delete mode 100644 node/expr/n_array_dim_fetch.go delete mode 100644 node/expr/n_array_item.go delete mode 100644 node/expr/n_arrow_function.go delete mode 100644 node/expr/n_bitwise_not.go delete mode 100644 node/expr/n_boolean_not.go delete mode 100644 node/expr/n_class_const_fetch.go delete mode 100644 node/expr/n_clone.go delete mode 100644 node/expr/n_closure.go delete mode 100644 node/expr/n_closure_use.go delete mode 100644 node/expr/n_const_fetch.go delete mode 100644 node/expr/n_empty.go delete mode 100644 node/expr/n_error_suppress.go delete mode 100644 node/expr/n_eval.go delete mode 100644 node/expr/n_exit.go delete mode 100644 node/expr/n_function_call.go delete mode 100644 node/expr/n_include.go delete mode 100644 node/expr/n_include_once.go delete mode 100644 node/expr/n_instance_of.go delete mode 100644 node/expr/n_isset.go delete mode 100644 node/expr/n_list.go delete mode 100644 node/expr/n_method_call.go delete mode 100644 node/expr/n_new.go delete mode 100644 node/expr/n_post_dec.go delete mode 100644 node/expr/n_post_inc.go delete mode 100644 node/expr/n_pre_dec.go delete mode 100644 node/expr/n_pre_inc.go delete mode 100644 node/expr/n_print.go delete mode 100644 node/expr/n_property_fetch.go delete mode 100644 node/expr/n_reference.go delete mode 100644 node/expr/n_require.go delete mode 100644 node/expr/n_require_once.go delete mode 100644 node/expr/n_shell_exec.go delete mode 100644 node/expr/n_short_array.go delete mode 100644 node/expr/n_short_list.go delete mode 100644 node/expr/n_static_call.go delete mode 100644 node/expr/n_static_property_fetch.go delete mode 100644 node/expr/n_ternary.go delete mode 100644 node/expr/n_unary_minus.go delete mode 100644 node/expr/n_unary_plus.go delete mode 100644 node/expr/n_variable.go delete mode 100644 node/expr/n_yield.go delete mode 100644 node/expr/n_yield_from.go delete mode 100644 node/expr/t_array_dim_fetch_test.go delete mode 100644 node/expr/t_array_test.go delete mode 100644 node/expr/t_arrow_function_test.go delete mode 100644 node/expr/t_bitwise_not_test.go delete mode 100644 node/expr/t_boolean_not_test.go delete mode 100644 node/expr/t_class_const_fetch_test.go delete mode 100644 node/expr/t_clone_test.go delete mode 100644 node/expr/t_closure_test.go delete mode 100644 node/expr/t_const_fetch_test.go delete mode 100644 node/expr/t_empty_test.go delete mode 100644 node/expr/t_error_supress_test.go delete mode 100644 node/expr/t_eval_test.go delete mode 100644 node/expr/t_exit_test.go delete mode 100644 node/expr/t_freefloating_test.go delete mode 100644 node/expr/t_function_call_test.go delete mode 100644 node/expr/t_inc_dec_test.go delete mode 100644 node/expr/t_include_test.go delete mode 100644 node/expr/t_instance_of_test.go delete mode 100644 node/expr/t_isset_test.go delete mode 100644 node/expr/t_list_test.go delete mode 100644 node/expr/t_method_call_test.go delete mode 100644 node/expr/t_new_test.go delete mode 100644 node/expr/t_position_test.go delete mode 100644 node/expr/t_print_test.go delete mode 100644 node/expr/t_property_fetch_test.go delete mode 100644 node/expr/t_reference_test.go delete mode 100644 node/expr/t_shell_exec_test.go delete mode 100644 node/expr/t_short_array_test.go delete mode 100644 node/expr/t_short_list_test.go delete mode 100644 node/expr/t_static_call_test.go delete mode 100644 node/expr/t_static_property_fetch_test.go delete mode 100644 node/expr/t_ternary_test.go delete mode 100644 node/expr/t_unary_test.go delete mode 100644 node/expr/t_variable_test.go delete mode 100644 node/expr/t_visitor_test.go delete mode 100644 node/expr/t_yield_test.go delete mode 100644 node/n_argument.go delete mode 100644 node/n_argument_list.go delete mode 100644 node/n_identifier.go delete mode 100644 node/n_nullable.go delete mode 100644 node/n_parameter.go delete mode 100644 node/n_root.go delete mode 100644 node/name/n_fully_qualified.go delete mode 100644 node/name/n_name.go delete mode 100644 node/name/n_name_part.go delete mode 100644 node/name/n_relative.go delete mode 100644 node/name/names.go delete mode 100644 node/name/t_freefloating_test.go delete mode 100644 node/name/t_name_test.go delete mode 100644 node/name/t_position_test.go delete mode 100644 node/name/t_visitor_test.go delete mode 100644 node/node.go delete mode 100644 node/scalar/node_dnumber.go delete mode 100644 node/scalar/node_encapsed.go delete mode 100644 node/scalar/node_encapsed_string_part.go delete mode 100644 node/scalar/node_heredoc.go delete mode 100644 node/scalar/node_lnumber.go delete mode 100644 node/scalar/node_magic_constant.go delete mode 100644 node/scalar/node_string.go delete mode 100644 node/scalar/t_encapsed_test.go delete mode 100644 node/scalar/t_freefloating_test.go delete mode 100644 node/scalar/t_heredoc_test.go delete mode 100644 node/scalar/t_magic_constant_test.go delete mode 100644 node/scalar/t_numbers_test.go delete mode 100644 node/scalar/t_position_test.go delete mode 100644 node/scalar/t_string_test.go delete mode 100644 node/scalar/t_visitor_test.go delete mode 100644 node/stmt/n_alt_else.go delete mode 100644 node/stmt/n_alt_else_if.go delete mode 100644 node/stmt/n_alt_for.go delete mode 100644 node/stmt/n_alt_foreach.go delete mode 100644 node/stmt/n_alt_if.go delete mode 100644 node/stmt/n_alt_switch.go delete mode 100644 node/stmt/n_alt_while.go delete mode 100644 node/stmt/n_break.go delete mode 100644 node/stmt/n_case.go delete mode 100644 node/stmt/n_case_list.go delete mode 100644 node/stmt/n_catch.go delete mode 100644 node/stmt/n_class.go delete mode 100644 node/stmt/n_class_const_list.go delete mode 100644 node/stmt/n_class_extends.go delete mode 100644 node/stmt/n_class_implements.go delete mode 100644 node/stmt/n_class_method.go delete mode 100644 node/stmt/n_const_list.go delete mode 100644 node/stmt/n_constant.go delete mode 100644 node/stmt/n_continue.go delete mode 100644 node/stmt/n_declare.go delete mode 100644 node/stmt/n_default.go delete mode 100644 node/stmt/n_do.go delete mode 100644 node/stmt/n_echo.go delete mode 100644 node/stmt/n_else.go delete mode 100644 node/stmt/n_else_if.go delete mode 100644 node/stmt/n_expression.go delete mode 100644 node/stmt/n_finally.go delete mode 100644 node/stmt/n_for.go delete mode 100644 node/stmt/n_foreach.go delete mode 100644 node/stmt/n_function.go delete mode 100644 node/stmt/n_global.go delete mode 100644 node/stmt/n_goto.go delete mode 100644 node/stmt/n_group_use.go delete mode 100644 node/stmt/n_halt_compiler.go delete mode 100644 node/stmt/n_if.go delete mode 100644 node/stmt/n_inline_html.go delete mode 100644 node/stmt/n_interface.go delete mode 100644 node/stmt/n_interface_extends.go delete mode 100644 node/stmt/n_label.go delete mode 100644 node/stmt/n_namespace.go delete mode 100644 node/stmt/n_nop.go delete mode 100644 node/stmt/n_property.go delete mode 100644 node/stmt/n_property_list.go delete mode 100644 node/stmt/n_return.go delete mode 100644 node/stmt/n_static.go delete mode 100644 node/stmt/n_static_var.go delete mode 100644 node/stmt/n_stmt_list.go delete mode 100644 node/stmt/n_switch.go delete mode 100644 node/stmt/n_throw.go delete mode 100644 node/stmt/n_trait.go delete mode 100644 node/stmt/n_trait_adaptation_list.go delete mode 100644 node/stmt/n_trait_method_ref.go delete mode 100644 node/stmt/n_trait_use.go delete mode 100644 node/stmt/n_trait_use_alias.go delete mode 100644 node/stmt/n_trait_use_precedence.go delete mode 100644 node/stmt/n_try.go delete mode 100644 node/stmt/n_unset.go delete mode 100644 node/stmt/n_use.go delete mode 100644 node/stmt/n_use_list.go delete mode 100644 node/stmt/n_while.go delete mode 100644 node/stmt/t_alt_if_test.go delete mode 100644 node/stmt/t_class_const_list_test.go delete mode 100644 node/stmt/t_class_method_test.go delete mode 100644 node/stmt/t_class_test.go delete mode 100644 node/stmt/t_const_list_test.go delete mode 100644 node/stmt/t_continue_test.go delete mode 100644 node/stmt/t_declare_test.go delete mode 100644 node/stmt/t_do_test.go delete mode 100644 node/stmt/t_echo_test.go delete mode 100644 node/stmt/t_expression_test.go delete mode 100644 node/stmt/t_for_test.go delete mode 100644 node/stmt/t_foreach_test.go delete mode 100644 node/stmt/t_freefloating_test.go delete mode 100644 node/stmt/t_function_test.go delete mode 100644 node/stmt/t_global_test.go delete mode 100644 node/stmt/t_goto_label_test.go delete mode 100644 node/stmt/t_halt_compiler_test.go delete mode 100644 node/stmt/t_if_test.go delete mode 100644 node/stmt/t_inline_html_test.go delete mode 100644 node/stmt/t_interface_test.go delete mode 100644 node/stmt/t_namespace_test.go delete mode 100644 node/stmt/t_position_test.go delete mode 100644 node/stmt/t_property_list_test.go delete mode 100644 node/stmt/t_static_var_test.go delete mode 100644 node/stmt/t_switch_case_default_test.go delete mode 100644 node/stmt/t_throw_test.go delete mode 100644 node/stmt/t_trait_test.go delete mode 100644 node/stmt/t_trait_use_test.go delete mode 100644 node/stmt/t_try_catch_finnaly_test.go delete mode 100644 node/stmt/t_unset_test.go delete mode 100644 node/stmt/t_use_test.go delete mode 100644 node/stmt/t_visitor_test.go delete mode 100644 node/stmt/t_while_break_test.go delete mode 100644 node/t_freefloating_test.go delete mode 100644 node/t_node_test.go delete mode 100644 node/t_position_test.go delete mode 100644 node/t_visitor_test.go diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go new file mode 100644 index 0000000..638d1df --- /dev/null +++ b/internal/php5/parser_test.go @@ -0,0 +1,23147 @@ +package php5_test + +import ( + "gotest.tools/assert" + "testing" + + "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/position" +) + +func TestIdentifier(t *testing.T) { + src := `bar($a, ...$b); + foo::bar($a, ...$b); + $foo::bar($a, ...$b); + new foo($a, ...$b); + ` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 7, + StartPos: 6, + EndPos: 133, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 21, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 20, + }, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 9, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 9, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 20, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 14, + EndPos: 19, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 19, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 19, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 40, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 39, + }, + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 28, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 28, + }, + }, + Value: []byte("foo"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 39, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 31, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 31, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 31, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 33, + EndPos: 38, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 38, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 38, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 64, + }, + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 63, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 47, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 47, + }, + }, + Value: []byte("foo"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 49, + EndPos: 52, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 63, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 55, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 55, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 55, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 57, + EndPos: 62, + }, + }, + IsReference: false, + Variadic: true, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 62, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 62, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 87, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 86, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 70, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 70, + }, + }, + Value: []byte("foo"), + }, + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 72, + EndPos: 75, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 86, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 78, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 78, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 78, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 80, + EndPos: 85, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 85, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 85, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 111, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 110, + }, + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 94, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 94, + }, + }, + Value: []byte("foo"), + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 96, + EndPos: 99, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 110, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 102, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 102, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 102, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 104, + EndPos: 109, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 109, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 109, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 133, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 132, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 121, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 121, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 132, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 124, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 124, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 124, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 126, + EndPos: 131, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 131, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 131, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestPhp5ParameterNode(t *testing.T) { + src := `bar()";` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 9, + }, + }, + Value: []byte("test "), + }, + &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 18, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 13, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 13, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Value: []byte("bar"), + }, + }, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("()"), + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { + src := `bar()}";` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 9, + }, + }, + Value: []byte("test "), + }, + &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 21, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 14, + }, + }, + Value: []byte("foo"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 21, + }, + }, + }, + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestScalarHeredoc_HeredocSimpleLabel(t *testing.T) { + src := ` $v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + Value: []byte("v"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtForeach_ExprWithKey(t *testing.T) { + src := ` $v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Items: []ast.Vertex{}, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + Value: []byte("v"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtForeach_WithRef(t *testing.T) { + src := ` &$v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + Value: []byte("v"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtForeach_WithList(t *testing.T) { + src := ` list($v)) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 32, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Value: []byte("v"), + }, + }, + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtFunction(t *testing.T) { + src := `
` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + }, + &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 17, + }, + }, + Value: []byte("
"), + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtInterface(t *testing.T) { + src := `1, &$b,);` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 20, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 13, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, + }, + Value: []byte("1"), + }, + }, + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.ExprArrayItem{}, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBitwiseNot(t *testing.T) { + src := `foo();` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("foo"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprNew(t *testing.T) { + src := `foo;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 10, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprReference_ForeachWithRef(t *testing.T) { + t.Helper() + src := ` &$v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + Value: []byte("v"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprShellExec(t *testing.T) { + src := "1, &$b,];` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 15, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 8, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 8, + }, + }, + Value: []byte("1"), + }, + }, + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.ExprArrayItem{}, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprStaticCall(t *testing.T) { + src := ` $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("a"), + }, + }, + Value: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 17, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 17, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprYield_Expr(t *testing.T) { + src := ` 1;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("a"), + }, + }, + Value: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +// expr assign + +func TestExprAssign_Assign(t *testing.T) { + src := `>= $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Expr: &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +// expr binary + +func TestExprBinary_BitwiseAnd(t *testing.T) { + src := `= $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Expr: &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBinary_Greater(t *testing.T) { + src := ` $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Expr: &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 10, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 10, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 10, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBinary_Identical(t *testing.T) { + src := `> $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Expr: &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php5parser := php5.NewParser([]byte(src), "5.6") + php5parser.Parse() + actual := php5parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBinary_SmallerOrEqual(t *testing.T) { + src := `bar($a, ...$b); + foo::bar($a, ...$b); + $foo::bar($a, ...$b); + new foo($a, ...$b); + /** anonymous class */ + new class ($a, ...$b) {}; + ` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 9, + StartPos: 6, + EndPos: 186, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 21, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 20, + }, + }, + Function: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 9, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 6, + EndPos: 9, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 20, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 14, + EndPos: 19, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 19, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 17, + EndPos: 19, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 40, + }, + }, + Expr: &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 39, + }, + }, + Function: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 28, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 24, + EndPos: 28, + }, + }, + Value: []byte("foo"), + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 28, + EndPos: 39, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 31, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 31, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 29, + EndPos: 31, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 33, + EndPos: 38, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 38, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 36, + EndPos: 38, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 64, + }, + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 63, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 47, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 43, + EndPos: 47, + }, + }, + Value: []byte("foo"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 49, + EndPos: 52, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 63, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 55, + }, + }, + IsReference: false, + Variadic: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 55, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 53, + EndPos: 55, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 57, + EndPos: 62, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 62, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 60, + EndPos: 62, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 87, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 86, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 70, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 67, + EndPos: 70, + }, + }, + Value: []byte("foo"), + }, + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 72, + EndPos: 75, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 86, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 78, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 78, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 76, + EndPos: 78, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 80, + EndPos: 85, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 85, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 83, + EndPos: 85, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 111, + }, + }, + Expr: &ast.ExprStaticCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 110, + }, + }, + Class: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 94, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 90, + EndPos: 94, + }, + }, + Value: []byte("foo"), + }, + }, + Call: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 96, + EndPos: 99, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 110, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 102, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 102, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 100, + EndPos: 102, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 104, + EndPos: 109, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 109, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 107, + EndPos: 109, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 133, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 114, + EndPos: 132, + }, + }, + Class: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 121, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 118, + EndPos: 121, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 132, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 124, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 124, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 122, + EndPos: 124, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 126, + EndPos: 131, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 131, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 129, + EndPos: 131, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + }, + }, + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 161, + EndPos: 186, + }, + }, + Expr: &ast.ExprNew{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 161, + EndPos: 185, + }, + }, + Class: &ast.StmtClass{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 165, + EndPos: 185, + }, + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 182, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 172, + EndPos: 174, + }, + }, + Variadic: false, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 172, + EndPos: 174, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 172, + EndPos: 174, + }, + }, + Value: []byte("a"), + }, + }, + }, + &ast.Argument{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 176, + EndPos: 181, + }, + }, + Variadic: true, + IsReference: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 179, + EndPos: 181, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 179, + EndPos: 181, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestPhp7ParameterNode(t *testing.T) { + src := `bar()";` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 9, + }, + }, + Value: []byte("test "), + }, + &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 18, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 13, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 13, + }, + }, + Value: []byte("foo"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Value: []byte("bar"), + }, + }, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("()"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { + src := `bar()}";` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + }, + Expr: &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + }, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 9, + }, + }, + Value: []byte("test "), + }, + &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 21, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 14, + }, + }, + Value: []byte("foo"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("bar"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 21, + }, + }, + }, + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestScalarHeredoc_HeredocSimpleLabel(t *testing.T) { + src := ` $v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + Value: []byte("v"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtForeach_ExprWithKey(t *testing.T) { + src := ` $v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Items: []ast.Vertex{}, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + }, + Value: []byte("v"), + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtForeach_WithRef(t *testing.T) { + src := ` &$v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + Value: []byte("v"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtForeach_WithList(t *testing.T) { + src := ` list($v)) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 32, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Val: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Value: []byte("v"), + }, + }, + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtFunction(t *testing.T) { + src := `
` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + }, + &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 17, + }, + }, + Value: []byte("
"), + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestStmtInterface(t *testing.T) { + src := `1, &$b,);` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + }, + Expr: &ast.ExprArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 20, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 13, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, + }, + Value: []byte("1"), + }, + }, + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.ExprArrayItem{}, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprArray_ItemUnpack(t *testing.T) { + src := ` $a;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 14, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 14, + }, + }, + Expr: &ast.ExprArrowFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + ReturnsRef: false, + Static: false, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprArrowFunction_ReturnType(t *testing.T) { + src := ` $a;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + }, + Expr: &ast.ExprArrowFunction{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + }, + Static: false, + ReturnsRef: true, + ReturnType: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + }, + Value: []byte("foo"), + }, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 22, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 22, + }, + }, + Value: []byte("a"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBitwiseNot(t *testing.T) { + src := `foo();` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Expr: &ast.ExprMethodCall{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("foo"), + }, + ArgumentList: &ast.ArgumentList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprNew(t *testing.T) { + src := `foo;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Expr: &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 10, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("foo"), + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprReference_ForeachWithRef(t *testing.T) { + t.Helper() + src := ` &$v) {}` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + }, + Value: []byte("a"), + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + }, + Value: []byte("k"), + }, + }, + Var: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + }, + Value: []byte("v"), + }, + }, + }, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + }, + Stmts: []ast.Vertex{}, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprShellExec(t *testing.T) { + src := "1, &$b,];` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + }, + Expr: &ast.ExprShortArray{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 15, + }, + }, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 8, + }, + }, + Key: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 4, + EndPos: 5, + }, + }, + Value: []byte("1"), + }, + Val: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 8, + }, + }, + Value: []byte("1"), + }, + }, + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + &ast.ExprArrayItem{}, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprShortList(t *testing.T) { + src := ` $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("a"), + }, + }, + Value: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 17, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 17, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprYield_Expr(t *testing.T) { + src := ` 1;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + }, + Expr: &ast.ExprYield{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + }, + Key: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("a"), + }, + }, + Value: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, + }, + Value: []byte("1"), + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprYieldFrom(t *testing.T) { + src := `>= $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Expr: &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprAssign_Coalesce(t *testing.T) { + src := `= $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Expr: &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBinary_Greater(t *testing.T) { + src := ` $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Expr: &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 10, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 10, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 10, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBinary_Identical(t *testing.T) { + src := `> $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Expr: &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 11, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +func TestExprBinary_SmallerOrEqual(t *testing.T) { + src := ` $b;` + + expected := &ast.Root{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + }, + Expr: &ast.ExprBinarySpaceship{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 12, + }, + }, + Left: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + }, + Value: []byte("a"), + }, + }, + Right: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, + Value: []byte("b"), + }, + }, + }, + }, + }, + } + + php7parser := php7.NewParser([]byte(src), "7.4") + php7parser.Parse() + actual := php7parser.GetRootNode() + assert.DeepEqual(t, expected, actual) +} + +// expr cast + +func TestExprCast_Array(t *testing.T) { + src := `>= $b;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - Expr: &assign.ShiftRight{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - Value: "a", - }, - }, - Expression: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, - }, - Value: "b", - }, - }, - }, - }, - }, - } - - 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 TestCoalesce(t *testing.T) { - src := `= $b;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - Expr: &binary.GreaterOrEqual{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - Value: "b", - }, - }, - }, - }, - }, - } - - 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 TestGreater(t *testing.T) { - src := ` $b;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - Expr: &binary.Greater{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, - }, - Value: "b", - }, - }, - }, - }, - }, - } - - 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 TestIdentical(t *testing.T) { - src := `> $b;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - Expr: &binary.ShiftRight{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - Value: "b", - }, - }, - }, - }, - }, - } - - 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 TestSmallerOrEqual(t *testing.T) { - src := ` $b;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - Expr: &binary.Spaceship{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - Left: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - Value: "a", - }, - }, - Right: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, - }, - Value: "b", - }, - }, - }, - }, - }, - } - - php7parser := php7.NewParser([]byte(src), "7.4") - php7parser.Parse() - actual := php7parser.GetRootNode() - assert.DeepEqual(t, expected, actual) -} diff --git a/node/expr/binary/t_freefloating_test.go b/node/expr/binary/t_freefloating_test.go deleted file mode 100644 index 7db5cf4..0000000 --- a/node/expr/binary/t_freefloating_test.go +++ /dev/null @@ -1,117 +0,0 @@ -package binary_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr/binary" -) - -var expected freefloating.Collection = freefloating.Collection{ - freefloating.Start: []freefloating.String{ - { - StringType: freefloating.WhiteSpaceType, - Value: " ", - Position: nil, - }, - { - StringType: freefloating.CommentType, - Value: "//comment\n", - Position: nil, - }, - }, -} - -var nodes = []node.Node{ - &binary.BitwiseAnd{ - FreeFloating: expected, - }, - &binary.BitwiseOr{ - FreeFloating: expected, - }, - &binary.BitwiseXor{ - FreeFloating: expected, - }, - &binary.BooleanAnd{ - FreeFloating: expected, - }, - &binary.BooleanOr{ - FreeFloating: expected, - }, - &binary.Coalesce{ - FreeFloating: expected, - }, - &binary.Concat{ - FreeFloating: expected, - }, - &binary.Div{ - FreeFloating: expected, - }, - &binary.Equal{ - FreeFloating: expected, - }, - &binary.GreaterOrEqual{ - FreeFloating: expected, - }, - &binary.Greater{ - FreeFloating: expected, - }, - &binary.Identical{ - FreeFloating: expected, - }, - &binary.LogicalAnd{ - FreeFloating: expected, - }, - &binary.LogicalOr{ - FreeFloating: expected, - }, - &binary.LogicalXor{ - FreeFloating: expected, - }, - &binary.Minus{ - FreeFloating: expected, - }, - &binary.Mod{ - FreeFloating: expected, - }, - &binary.Mul{ - FreeFloating: expected, - }, - &binary.NotEqual{ - FreeFloating: expected, - }, - &binary.NotIdentical{ - FreeFloating: expected, - }, - &binary.Plus{ - FreeFloating: expected, - }, - &binary.Pow{ - FreeFloating: expected, - }, - &binary.ShiftLeft{ - FreeFloating: expected, - }, - &binary.ShiftRight{ - FreeFloating: expected, - }, - &binary.SmallerOrEqual{ - FreeFloating: expected, - }, - &binary.Smaller{ - FreeFloating: expected, - }, - &binary.Spaceship{ - FreeFloating: expected, - }, -} - -func TestMeta(t *testing.T) { - for _, n := range nodes { - actual := *n.GetFreeFloating() - assert.DeepEqual(t, expected, actual) - } -} diff --git a/node/expr/binary/t_position_test.go b/node/expr/binary/t_position_test.go deleted file mode 100644 index 079e380..0000000 --- a/node/expr/binary/t_position_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package binary_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/position" -) - -func TestPosition(t *testing.T) { - expected := position.NewPosition(1, 1, 1, 1) - for _, n := range nodes { - n.SetPosition(expected) - actual := n.GetPosition() - assert.DeepEqual(t, expected, actual) - } -} diff --git a/node/expr/binary/t_visitor_test.go b/node/expr/binary/t_visitor_test.go deleted file mode 100644 index 7962e23..0000000 --- a/node/expr/binary/t_visitor_test.go +++ /dev/null @@ -1,285 +0,0 @@ -package binary_test - -import ( - "testing" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/walker" - "gotest.tools/assert" -) - -var nodesToTest = []struct { - node node.Node // node - expectedVisitedKeys []string // visited keys - expectedAttributes map[string]interface{} -}{ - { - &binary.BitwiseAnd{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.BitwiseOr{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.BitwiseXor{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.BooleanAnd{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.BooleanOr{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Coalesce{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Concat{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Div{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Equal{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.GreaterOrEqual{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Greater{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Identical{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.LogicalAnd{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.LogicalOr{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.LogicalXor{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Minus{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Mod{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Mul{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.NotEqual{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.NotIdentical{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Plus{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Pow{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.ShiftLeft{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.ShiftRight{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.SmallerOrEqual{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Smaller{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, - { - &binary.Spaceship{ - Left: &expr.Variable{}, - Right: &expr.Variable{}, - }, - []string{"Left", "Right"}, - nil, - }, -} - -type visitorMock struct { - visitChildren bool - visitedKeys []string -} - -func (v *visitorMock) EnterNode(n walker.Walkable) bool { return v.visitChildren } -func (v *visitorMock) LeaveNode(n walker.Walkable) {} -func (v *visitorMock) EnterChildNode(key string, w walker.Walkable) { - v.visitedKeys = append(v.visitedKeys, key) -} -func (v *visitorMock) LeaveChildNode(key string, w walker.Walkable) {} -func (v *visitorMock) EnterChildList(key string, w walker.Walkable) { - v.visitedKeys = append(v.visitedKeys, key) -} -func (v *visitorMock) LeaveChildList(key string, w walker.Walkable) {} - -func TestVisitorDisableChildren(t *testing.T) { - for _, tt := range nodesToTest { - v := &visitorMock{false, []string{}} - tt.node.Walk(v) - - expected := []string{} - actual := v.visitedKeys - - assert.DeepEqual(t, expected, actual) - } -} - -func TestVisitor(t *testing.T) { - for _, tt := range nodesToTest { - v := &visitorMock{true, []string{}} - tt.node.Walk(v) - - expected := tt.expectedVisitedKeys - actual := v.visitedKeys - - assert.DeepEqual(t, expected, actual) - } -} - -// test Attributes() - -func TestNameAttributes(t *testing.T) { - for _, tt := range nodesToTest { - expected := tt.expectedAttributes - actual := tt.node.Attributes() - - assert.DeepEqual(t, expected, actual) - } -} diff --git a/node/expr/cast/n_cast_array.go b/node/expr/cast/n_cast_array.go deleted file mode 100644 index f12458b..0000000 --- a/node/expr/cast/n_cast_array.go +++ /dev/null @@ -1,58 +0,0 @@ -package cast - -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" -) - -// Array node -type Array struct { - FreeFloating freefloating.Collection - Position *position.Position - Expr node.Node -} - -// NewArray node constructor -func NewArray(Expr node.Node) *Array { - return &Array{ - FreeFloating: nil, - Expr: Expr, - } -} - -// SetPosition sets node position -func (n *Array) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *Array) GetPosition() *position.Position { - return n.Position -} - -func (n *Array) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating -} - -// Attributes returns node attributes as map -func (n *Array) Attributes() map[string]interface{} { - return nil -} - -// Walk traverses nodes -// Walk is invoked recursively until v.EnterNode returns true -func (n *Array) Walk(v walker.Visitor) { - if v.EnterNode(n) == false { - return - } - - if n.Expr != nil { - v.EnterChildNode("Expr", n) - n.Expr.Walk(v) - v.LeaveChildNode("Expr", n) - } - - v.LeaveNode(n) -} diff --git a/node/expr/cast/n_cast_bool.go b/node/expr/cast/n_cast_bool.go deleted file mode 100644 index a794df8..0000000 --- a/node/expr/cast/n_cast_bool.go +++ /dev/null @@ -1,58 +0,0 @@ -package cast - -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" -) - -// Bool node -type Bool struct { - FreeFloating freefloating.Collection - Position *position.Position - Expr node.Node -} - -// NewBool node constructor -func NewBool(Expr node.Node) *Bool { - return &Bool{ - FreeFloating: nil, - Expr: Expr, - } -} - -// SetPosition sets node position -func (n *Bool) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *Bool) GetPosition() *position.Position { - return n.Position -} - -func (n *Bool) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating -} - -// Attributes returns node attributes as map -func (n *Bool) Attributes() map[string]interface{} { - return nil -} - -// Walk traverses nodes -// Walk is invoked recursively until v.EnterNode returns true -func (n *Bool) Walk(v walker.Visitor) { - if v.EnterNode(n) == false { - return - } - - if n.Expr != nil { - v.EnterChildNode("Expr", n) - n.Expr.Walk(v) - v.LeaveChildNode("Expr", n) - } - - v.LeaveNode(n) -} diff --git a/node/expr/cast/n_cast_double.go b/node/expr/cast/n_cast_double.go deleted file mode 100644 index 61dcc43..0000000 --- a/node/expr/cast/n_cast_double.go +++ /dev/null @@ -1,58 +0,0 @@ -package cast - -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" -) - -// Double node -type Double struct { - FreeFloating freefloating.Collection - Position *position.Position - Expr node.Node -} - -// NewDouble node constructor -func NewDouble(Expr node.Node) *Double { - return &Double{ - FreeFloating: nil, - Expr: Expr, - } -} - -// SetPosition sets node position -func (n *Double) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *Double) GetPosition() *position.Position { - return n.Position -} - -func (n *Double) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating -} - -// Attributes returns node attributes as map -func (n *Double) Attributes() map[string]interface{} { - return nil -} - -// Walk traverses nodes -// Walk is invoked recursively until v.EnterNode returns true -func (n *Double) Walk(v walker.Visitor) { - if v.EnterNode(n) == false { - return - } - - if n.Expr != nil { - v.EnterChildNode("Expr", n) - n.Expr.Walk(v) - v.LeaveChildNode("Expr", n) - } - - v.LeaveNode(n) -} diff --git a/node/expr/cast/n_cast_int.go b/node/expr/cast/n_cast_int.go deleted file mode 100644 index fc3f98d..0000000 --- a/node/expr/cast/n_cast_int.go +++ /dev/null @@ -1,58 +0,0 @@ -package cast - -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" -) - -// Int node -type Int struct { - FreeFloating freefloating.Collection - Position *position.Position - Expr node.Node -} - -// NewInt node constructor -func NewInt(Expr node.Node) *Int { - return &Int{ - FreeFloating: nil, - Expr: Expr, - } -} - -// SetPosition sets node position -func (n *Int) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *Int) GetPosition() *position.Position { - return n.Position -} - -func (n *Int) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating -} - -// Attributes returns node attributes as map -func (n *Int) Attributes() map[string]interface{} { - return nil -} - -// Walk traverses nodes -// Walk is invoked recursively until v.EnterNode returns true -func (n *Int) Walk(v walker.Visitor) { - if v.EnterNode(n) == false { - return - } - - if n.Expr != nil { - v.EnterChildNode("Expr", n) - n.Expr.Walk(v) - v.LeaveChildNode("Expr", n) - } - - v.LeaveNode(n) -} diff --git a/node/expr/cast/n_cast_object.go b/node/expr/cast/n_cast_object.go deleted file mode 100644 index ea67ce2..0000000 --- a/node/expr/cast/n_cast_object.go +++ /dev/null @@ -1,58 +0,0 @@ -package cast - -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" -) - -// Object node -type Object struct { - FreeFloating freefloating.Collection - Position *position.Position - Expr node.Node -} - -// NewObject node constructor -func NewObject(Expr node.Node) *Object { - return &Object{ - FreeFloating: nil, - Expr: Expr, - } -} - -// SetPosition sets node position -func (n *Object) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *Object) GetPosition() *position.Position { - return n.Position -} - -func (n *Object) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating -} - -// Attributes returns node attributes as map -func (n *Object) Attributes() map[string]interface{} { - return nil -} - -// Walk traverses nodes -// Walk is invoked recursively until v.EnterNode returns true -func (n *Object) Walk(v walker.Visitor) { - if v.EnterNode(n) == false { - return - } - - if n.Expr != nil { - v.EnterChildNode("Expr", n) - n.Expr.Walk(v) - v.LeaveChildNode("Expr", n) - } - - v.LeaveNode(n) -} diff --git a/node/expr/cast/n_cast_string.go b/node/expr/cast/n_cast_string.go deleted file mode 100644 index 68a09e2..0000000 --- a/node/expr/cast/n_cast_string.go +++ /dev/null @@ -1,58 +0,0 @@ -package cast - -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" -) - -// String node -type String struct { - FreeFloating freefloating.Collection - Position *position.Position - Expr node.Node -} - -// NewString node constructor -func NewString(Expr node.Node) *String { - return &String{ - FreeFloating: nil, - Expr: Expr, - } -} - -// SetPosition sets node position -func (n *String) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *String) GetPosition() *position.Position { - return n.Position -} - -func (n *String) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating -} - -// Attributes returns node attributes as map -func (n *String) Attributes() map[string]interface{} { - return nil -} - -// Walk traverses nodes -// Walk is invoked recursively until v.EnterNode returns true -func (n *String) Walk(v walker.Visitor) { - if v.EnterNode(n) == false { - return - } - - if n.Expr != nil { - v.EnterChildNode("Expr", n) - n.Expr.Walk(v) - v.LeaveChildNode("Expr", n) - } - - v.LeaveNode(n) -} diff --git a/node/expr/cast/n_cast_unset.go b/node/expr/cast/n_cast_unset.go deleted file mode 100644 index a792daa..0000000 --- a/node/expr/cast/n_cast_unset.go +++ /dev/null @@ -1,58 +0,0 @@ -package cast - -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" -) - -// Unset node -type Unset struct { - FreeFloating freefloating.Collection - Position *position.Position - Expr node.Node -} - -// NewUnset node constructor -func NewUnset(Expr node.Node) *Unset { - return &Unset{ - FreeFloating: nil, - Expr: Expr, - } -} - -// SetPosition sets node position -func (n *Unset) SetPosition(p *position.Position) { - n.Position = p -} - -// GetPosition returns node positions -func (n *Unset) GetPosition() *position.Position { - return n.Position -} - -func (n *Unset) GetFreeFloating() *freefloating.Collection { - return &n.FreeFloating -} - -// Attributes returns node attributes as map -func (n *Unset) Attributes() map[string]interface{} { - return nil -} - -// Walk traverses nodes -// Walk is invoked recursively until v.EnterNode returns true -func (n *Unset) Walk(v walker.Visitor) { - if v.EnterNode(n) == false { - return - } - - if n.Expr != nil { - v.EnterChildNode("Expr", n) - n.Expr.Walk(v) - v.LeaveChildNode("Expr", n) - } - - v.LeaveNode(n) -} diff --git a/node/expr/cast/t_cast_test.go b/node/expr/cast/t_cast_test.go deleted file mode 100644 index 0314800..0000000 --- a/node/expr/cast/t_cast_test.go +++ /dev/null @@ -1,653 +0,0 @@ -package cast_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/position" -) - -func TestArray(t *testing.T) { - src := `1, &$b,);` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 21, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 21, - }, - Expr: &expr.Array{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 20, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 13, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 10, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 13, - }, - Value: "1", - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 18, - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 18, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 18, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 18, - }, - Value: "b", - }, - }, - }, - }, - &expr.ArrayItem{}, - }, - }, - }, - }, - } - - 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 TestArrayItemUnpack(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 deleted file mode 100644 index a5688b0..0000000 --- a/node/expr/t_bitwise_not_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package expr_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" -) - -func TestBitwiseNot(t *testing.T) { - src := `foo();` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - Expr: &expr.MethodCall{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - Value: "a", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - Value: "foo", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, - }, - }, - }, - }, - }, - } - - 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) -} diff --git a/node/expr/t_new_test.go b/node/expr/t_new_test.go deleted file mode 100644 index d0670f8..0000000 --- a/node/expr/t_new_test.go +++ /dev/null @@ -1,323 +0,0 @@ -package expr_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/node/expr" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" -) - -func TestNew(t *testing.T) { - src := `foo;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - Expr: &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - Value: "a", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - Value: "foo", - }, - }, - }, - }, - } - - 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) -} diff --git a/node/expr/t_reference_test.go b/node/expr/t_reference_test.go deleted file mode 100644 index 8a9c38e..0000000 --- a/node/expr/t_reference_test.go +++ /dev/null @@ -1,117 +0,0 @@ -package expr_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" -) - -func TestForeachWithRef(t *testing.T) { - t.Helper() - src := ` &$v) {}` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - Stmts: []node.Node{ - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - Expr: &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: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - Value: "k", - }, - }, - Variable: &expr.Reference{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 27, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - Value: "v", - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 31, - }, - Stmts: []node.Node{}, - }, - }, - }, - } - - 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) -} diff --git a/node/expr/t_shell_exec_test.go b/node/expr/t_shell_exec_test.go deleted file mode 100644 index 4932334..0000000 --- a/node/expr/t_shell_exec_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package expr_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/node/expr" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" -) - -func TestShellExec(t *testing.T) { - src := "1, &$b,];` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 16, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 16, - }, - Expr: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 15, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 4, - EndPos: 8, - }, - Key: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 4, - EndPos: 5, - }, - Value: "1", - }, - Val: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 8, - }, - Value: "1", - }, - }, - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 13, - }, - Val: &expr.Reference{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 13, - }, - Variable: &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: "b", - }, - }, - }, - }, - &expr.ArrayItem{}, - }, - }, - }, - }, - } - - 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) -} diff --git a/node/expr/t_short_list_test.go b/node/expr/t_short_list_test.go deleted file mode 100644 index 76f0bbe..0000000 --- a/node/expr/t_short_list_test.go +++ /dev/null @@ -1,304 +0,0 @@ -package expr_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/position" -) - -func TestShortList(t *testing.T) { - src := ` $b;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 18, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 18, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - Value: "a", - }, - }, - Value: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 17, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 17, - }, - Value: "b", - }, - }, - }, - }, - }, - } - - 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 TestYieldExpr(t *testing.T) { - src := ` 1;` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, - Expr: &expr.Yield{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 16, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, - }, - Value: "a", - }, - }, - Value: &scalar.Lnumber{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 16, - }, - Value: "1", - }, - }, - }, - }, - } - - 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 TestYieldFrom(t *testing.T) { - src := `bar()";` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 22, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 22, - }, - Expr: &scalar.Encapsed{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 21, - }, - Parts: []node.Node{ - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 4, - EndPos: 9, - }, - Value: "test ", - }, - &expr.PropertyFetch{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 18, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 13, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 13, - }, - Value: "foo", - }, - }, - Property: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 18, - }, - Value: "bar", - }, - }, - &scalar.EncapsedStringPart{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - Value: "()", - }, - }, - }, - }, - }, - } - - 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 TestDollarOpenCurlyBraces(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: 16, - EndPos: 19, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 21, - }, - }, - }, - }, - }, - }, - }, - } - - 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) -} diff --git a/node/scalar/t_freefloating_test.go b/node/scalar/t_freefloating_test.go deleted file mode 100644 index c30e2ff..0000000 --- a/node/scalar/t_freefloating_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package scalar_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/scalar" -) - -var expected freefloating.Collection = freefloating.Collection{ - freefloating.Start: []freefloating.String{ - { - StringType: freefloating.WhiteSpaceType, - Value: " ", - Position: nil, - }, - { - StringType: freefloating.CommentType, - Value: "//comment\n", - Position: nil, - }, - }, -} - -var nodes = []node.Node{ - &scalar.Dnumber{ - FreeFloating: expected, - }, - &scalar.EncapsedStringPart{ - FreeFloating: expected, - }, - &scalar.Encapsed{ - FreeFloating: expected, - }, - &scalar.Heredoc{ - FreeFloating: expected, - }, - &scalar.Lnumber{ - FreeFloating: expected, - }, - &scalar.MagicConstant{ - FreeFloating: expected, - }, - &scalar.String{ - FreeFloating: expected, - }, -} - -func TestMeta(t *testing.T) { - for _, n := range nodes { - actual := *n.GetFreeFloating() - assert.DeepEqual(t, expected, actual) - } -} diff --git a/node/scalar/t_heredoc_test.go b/node/scalar/t_heredoc_test.go deleted file mode 100644 index ae0ce1f..0000000 --- a/node/scalar/t_heredoc_test.go +++ /dev/null @@ -1,336 +0,0 @@ -package scalar_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" -) - -func TestHeredocSimpleLabel(t *testing.T) { - src := ` $v) {}` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, - Stmts: []node.Node{ - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, - Expr: &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: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - Value: "k", - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 26, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 26, - }, - Value: "v", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 30, - }, - Stmts: []node.Node{}, - }, - }, - }, - } - - 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 TestForeachExprWithKey(t *testing.T) { - src := ` $v) {}` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, - Stmts: []node.Node{ - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, - Expr: &expr.ShortArray{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 14, - }, - Items: []node.Node{}, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - Value: "k", - }, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 26, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 26, - }, - Value: "v", - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 30, - }, - Stmts: []node.Node{}, - }, - }, - }, - } - - 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 TestForeachWithRef(t *testing.T) { - src := ` &$v) {}` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - Stmts: []node.Node{ - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - Expr: &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: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - Value: "k", - }, - }, - Variable: &expr.Reference{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 27, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - Value: "v", - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 31, - }, - Stmts: []node.Node{}, - }, - }, - }, - } - - 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 TestForeachWithList(t *testing.T) { - src := ` list($v)) {}` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 36, - }, - Stmts: []node.Node{ - &stmt.Foreach{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 36, - }, - Expr: &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: "a", - }, - }, - Key: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 20, - }, - Value: "k", - }, - }, - Variable: &expr.List{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 32, - }, - Items: []node.Node{ - &expr.ArrayItem{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 31, - }, - Val: &expr.Variable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 31, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 31, - }, - Value: "v", - }, - }, - }, - }, - }, - Stmt: &stmt.StmtList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 34, - EndPos: 36, - }, - Stmts: []node.Node{}, - }, - }, - }, - } - - 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) -} diff --git a/node/stmt/t_freefloating_test.go b/node/stmt/t_freefloating_test.go deleted file mode 100644 index 182c5d9..0000000 --- a/node/stmt/t_freefloating_test.go +++ /dev/null @@ -1,216 +0,0 @@ -package stmt_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" -) - -var expected freefloating.Collection = freefloating.Collection{ - freefloating.Start: []freefloating.String{ - { - StringType: freefloating.WhiteSpaceType, - Value: " ", - Position: nil, - }, - { - StringType: freefloating.CommentType, - Value: "//comment\n", - Position: nil, - }, - }, -} - -var nodes = []node.Node{ - &stmt.AltElseIf{ - FreeFloating: expected, - }, - &stmt.AltElse{ - FreeFloating: expected, - }, - &stmt.AltFor{ - FreeFloating: expected, - }, - &stmt.AltForeach{ - FreeFloating: expected, - }, - &stmt.AltIf{ - FreeFloating: expected, - }, - &stmt.AltSwitch{ - FreeFloating: expected, - }, - &stmt.AltWhile{ - FreeFloating: expected, - }, - &stmt.Break{ - FreeFloating: expected, - }, - &stmt.CaseList{ - FreeFloating: expected, - }, - &stmt.Case{ - FreeFloating: expected, - }, - &stmt.Catch{ - FreeFloating: expected, - }, - &stmt.ClassConstList{ - FreeFloating: expected, - }, - &stmt.ClassExtends{ - FreeFloating: expected, - }, - &stmt.ClassImplements{ - FreeFloating: expected, - }, - &stmt.ClassMethod{ - FreeFloating: expected, - }, - &stmt.Class{ - FreeFloating: expected, - }, - &stmt.ConstList{ - FreeFloating: expected, - }, - &stmt.Constant{ - FreeFloating: expected, - }, - &stmt.Continue{ - FreeFloating: expected, - }, - &stmt.Declare{ - FreeFloating: expected, - }, - &stmt.Default{ - FreeFloating: expected, - }, - &stmt.Do{ - FreeFloating: expected, - }, - &stmt.Echo{ - FreeFloating: expected, - }, - &stmt.ElseIf{ - FreeFloating: expected, - }, - &stmt.Else{ - FreeFloating: expected, - }, - &stmt.Expression{ - FreeFloating: expected, - }, - &stmt.Finally{ - FreeFloating: expected, - }, - &stmt.For{ - FreeFloating: expected, - }, - &stmt.Foreach{ - FreeFloating: expected, - }, - &stmt.Function{ - FreeFloating: expected, - }, - &stmt.Global{ - FreeFloating: expected, - }, - &stmt.Goto{ - FreeFloating: expected, - }, - &stmt.GroupUse{ - FreeFloating: expected, - }, - &stmt.HaltCompiler{ - FreeFloating: expected, - }, - &stmt.If{ - FreeFloating: expected, - }, - &stmt.InlineHtml{ - FreeFloating: expected, - }, - &stmt.InterfaceExtends{ - FreeFloating: expected, - }, - &stmt.Interface{ - FreeFloating: expected, - }, - &stmt.Label{ - FreeFloating: expected, - }, - &stmt.Namespace{ - FreeFloating: expected, - }, - &stmt.Nop{ - FreeFloating: expected, - }, - &stmt.PropertyList{ - FreeFloating: expected, - }, - &stmt.Property{ - FreeFloating: expected, - }, - &stmt.Return{ - FreeFloating: expected, - }, - &stmt.StaticVar{ - FreeFloating: expected, - }, - &stmt.Static{ - FreeFloating: expected, - }, - &stmt.StmtList{ - FreeFloating: expected, - }, - &stmt.Switch{ - FreeFloating: expected, - }, - &stmt.Throw{ - FreeFloating: expected, - }, - &stmt.TraitAdaptationList{ - FreeFloating: expected, - }, - &stmt.TraitMethodRef{ - FreeFloating: expected, - }, - &stmt.TraitUseAlias{ - FreeFloating: expected, - }, - &stmt.TraitUsePrecedence{ - FreeFloating: expected, - }, - &stmt.TraitUse{ - FreeFloating: expected, - }, - &stmt.Trait{ - FreeFloating: expected, - }, - &stmt.Try{ - FreeFloating: expected, - }, - &stmt.Unset{ - FreeFloating: expected, - }, - &stmt.UseList{ - FreeFloating: expected, - }, - &stmt.Use{ - FreeFloating: expected, - }, - &stmt.While{ - FreeFloating: expected, - }, -} - -func TestMeta(t *testing.T) { - for _, n := range nodes { - actual := *n.GetFreeFloating() - assert.DeepEqual(t, expected, actual) - } -} diff --git a/node/stmt/t_function_test.go b/node/stmt/t_function_test.go deleted file mode 100644 index 4b8fbe3..0000000 --- a/node/stmt/t_function_test.go +++ /dev/null @@ -1,383 +0,0 @@ -package stmt_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" -) - -func TestSimpleFunction(t *testing.T) { - src := `
` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, - Stmts: []node.Node{ - &stmt.Nop{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - }, - &stmt.InlineHtml{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 5, - EndPos: 17, - }, - Value: "
", - }, - }, - } - - 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) -} diff --git a/node/stmt/t_interface_test.go b/node/stmt/t_interface_test.go deleted file mode 100644 index 5b018ec..0000000 --- a/node/stmt/t_interface_test.go +++ /dev/null @@ -1,224 +0,0 @@ -package stmt_test - -import ( - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/position" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/php7" -) - -func TestInterface(t *testing.T) { - src := `bar($a, ...$b); - foo::bar($a, ...$b); - $foo::bar($a, ...$b); - new foo($a, ...$b); - /** anonymous class */ - new class ($a, ...$b) {}; - ` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 2, - EndLine: 9, - StartPos: 6, - EndPos: 186, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 21, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 20, - }, - Function: &name.Name{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 9, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 9, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 20, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 14, - EndPos: 19, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 17, - EndPos: 19, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 17, - EndPos: 19, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 40, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 39, - }, - Function: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 28, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 28, - }, - Value: "foo", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 39, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 29, - EndPos: 31, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 29, - EndPos: 31, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 29, - EndPos: 31, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 33, - EndPos: 38, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 36, - EndPos: 38, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 36, - EndPos: 38, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 64, - }, - Expr: &expr.MethodCall{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 63, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 47, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 47, - }, - Value: "foo", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 49, - EndPos: 52, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 52, - EndPos: 63, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - IsReference: false, - Variadic: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 57, - EndPos: 62, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 60, - EndPos: 62, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 60, - EndPos: 62, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 87, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 86, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 70, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 70, - }, - Value: "foo", - }, - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 72, - EndPos: 75, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 75, - EndPos: 86, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 80, - EndPos: 85, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 83, - EndPos: 85, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 83, - EndPos: 85, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 111, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 110, - }, - Class: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 94, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 94, - }, - Value: "foo", - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 96, - EndPos: 99, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 99, - EndPos: 110, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 104, - EndPos: 109, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 107, - EndPos: 109, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 107, - EndPos: 109, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 114, - EndPos: 133, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 114, - EndPos: 132, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 118, - EndPos: 121, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 118, - EndPos: 121, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 121, - EndPos: 132, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 126, - EndPos: 131, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 129, - EndPos: 131, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 129, - EndPos: 131, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 161, - EndPos: 186, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 161, - EndPos: 185, - }, - Class: &stmt.Class{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 165, - EndPos: 185, - }, - PhpDocComment: "/** anonymous class */", - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 171, - EndPos: 182, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 172, - EndPos: 174, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 172, - EndPos: 174, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 172, - EndPos: 174, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 176, - EndPos: 181, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 179, - EndPos: 181, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 179, - EndPos: 181, - }, - Value: "b", - }, - }, - }, - }, - }, - Stmts: []node.Node{}, - }, - }, - }, - }, - } - - php7parser := php7.NewParser([]byte(src), "7.4") - php7parser.Parse() - actual := php7parser.GetRootNode() - assert.DeepEqual(t, expected, actual) -} - -func TestPhp5ArgumentNode(t *testing.T) { - src := `bar($a, ...$b); - foo::bar($a, ...$b); - $foo::bar($a, ...$b); - new foo($a, ...$b); - ` - - expected := &node.Root{ - Position: &position.Position{ - StartLine: 2, - EndLine: 7, - StartPos: 6, - EndPos: 133, - }, - Stmts: []node.Node{ - &stmt.Expression{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 21, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 20, - }, - Function: &name.Name{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 9, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 9, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 20, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 14, - EndPos: 19, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 17, - EndPos: 19, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 17, - EndPos: 19, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 40, - }, - Expr: &expr.FunctionCall{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 39, - }, - Function: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 28, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 28, - }, - Value: "foo", - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 39, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 29, - EndPos: 31, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 29, - EndPos: 31, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 29, - EndPos: 31, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 33, - EndPos: 38, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 36, - EndPos: 38, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 36, - EndPos: 38, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 64, - }, - Expr: &expr.MethodCall{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 63, - }, - Variable: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 47, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 43, - EndPos: 47, - }, - Value: "foo", - }, - }, - Method: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 49, - EndPos: 52, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 52, - EndPos: 63, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 57, - EndPos: 62, - }, - IsReference: false, - Variadic: true, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 60, - EndPos: 62, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 60, - EndPos: 62, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 87, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 86, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 70, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 70, - }, - Value: "foo", - }, - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 72, - EndPos: 75, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 75, - EndPos: 86, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 80, - EndPos: 85, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 83, - EndPos: 85, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 83, - EndPos: 85, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 111, - }, - Expr: &expr.StaticCall{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 110, - }, - Class: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 94, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 90, - EndPos: 94, - }, - Value: "foo", - }, - }, - Call: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 96, - EndPos: 99, - }, - Value: "bar", - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 99, - EndPos: 110, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 104, - EndPos: 109, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 107, - EndPos: 109, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 107, - EndPos: 109, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - &stmt.Expression{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 114, - EndPos: 133, - }, - Expr: &expr.New{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 114, - EndPos: 132, - }, - Class: &name.Name{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 118, - EndPos: 121, - }, - Parts: []node.Node{ - &name.NamePart{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 118, - EndPos: 121, - }, - Value: "foo", - }, - }, - }, - ArgumentList: &node.ArgumentList{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 121, - EndPos: 132, - }, - Arguments: []node.Node{ - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, - Variadic: false, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, - Value: "a", - }, - }, - }, - &node.Argument{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 126, - EndPos: 131, - }, - Variadic: true, - IsReference: false, - Expr: &expr.Variable{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 129, - EndPos: 131, - }, - VarName: &node.Identifier{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 129, - EndPos: 131, - }, - Value: "b", - }, - }, - }, - }, - }, - }, - }, - }, - } - - php5parser := php5.NewParser([]byte(src), "5.6") - php5parser.Parse() - actual := php5parser.GetRootNode() - assert.DeepEqual(t, expected, actual) -} - -func TestPhp7ParameterNode(t *testing.T) { - src := ` Date: Sun, 17 May 2020 22:56:32 +0300 Subject: [PATCH 009/140] refactor printer --- cmd/php-parser/main.go | 2 +- internal/php5/parser.go | 24 +- internal/php5/php5.go | 938 ++--- internal/php5/php5.y | 22 + internal/php7/parser.go | 21 +- internal/php7/parser_test.go | 60 +- internal/php7/php7.go | 692 ++-- internal/php7/php7.y | 16 + internal/scanner/scanner.go | 1 + internal/scanner/scanner.rl | 1 + internal/scanner/token.go | 1 + pkg/ast/visitor/namespace_resolver.go | 4 +- pkg/ast/visitor/namespace_resolver_test.go | 62 +- {printer => pkg/printer}/pretty_printer.go | 1134 +++--- .../printer}/pretty_printer_test.go | 1855 +++++----- pkg/printer/printer.go | 3257 ++++++++++++++++ .../printer}/printer_parsed_php5_test.go | 12 +- .../printer}/printer_parsed_php7_test.go | 20 +- {printer => pkg/printer}/printer_test.go | 2415 ++++++------ pkg/token/position.go | 13 +- printer/printer.go | 3267 ----------------- 21 files changed, 6955 insertions(+), 6862 deletions(-) rename {printer => pkg/printer}/pretty_printer.go (54%) rename {printer => pkg/printer}/pretty_printer_test.go (55%) create mode 100644 pkg/printer/printer.go rename {printer => pkg/printer}/printer_parsed_php5_test.go (99%) rename {printer => pkg/printer}/printer_parsed_php7_test.go (98%) rename {printer => pkg/printer}/printer_test.go (54%) delete mode 100644 printer/printer.go diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 569dd30..33d03e0 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -13,8 +13,8 @@ import ( "github.com/pkg/profile" "github.com/yookoala/realpath" - "github.com/z7zmey/php-parser/pkg/parser" "github.com/z7zmey/php-parser/pkg/ast/visitor" + "github.com/z7zmey/php-parser/pkg/parser" ) var wg sync.WaitGroup diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 060be97..d4ec16d 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -2,6 +2,7 @@ package php5 import ( "bytes" + "fmt" "github.com/z7zmey/php-parser/internal/positionbuilder" "github.com/z7zmey/php-parser/internal/scanner" @@ -132,10 +133,25 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { return []token.Token{} } - tokens := make([]token.Token, len(t.Tokens)) - copy(tokens, t.Tokens) + return []token.Token{ + { + ID: token.ID(t.ID), + Value: t.Value, + }, + } +} - return tokens +func (l *Parser) addDollarToken(v ast.Vertex) { + if l.Lexer.GetWithFreeFloating() == false { + return + } + + l.setFreeFloating(v, token.Dollar, []token.Token{ + { + ID: token.ID('$'), + Value: []byte("$"), + }, + }) } func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { @@ -159,6 +175,8 @@ func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } vlen := len(semiColon[0].Value) + fmt.Printf("vlen: %q\n", string(semiColon[0].Value)) + tlen := 2 if bytes.HasSuffix(semiColon[0].Value, []byte("?>\n")) { tlen = 3 diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 0b7071c..b63ef14 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7171 +// line internal/php5/php5.y:7193 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3589,6 +3589,7 @@ yydefault: yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Tokens) yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Tokens) yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Tokens) @@ -3597,7 +3598,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1444 +// line internal/php5/php5.y:1445 { yyVAL.node = nil @@ -3605,7 +3606,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1450 +// line internal/php5/php5.y:1451 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3621,7 +3622,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1467 +// line internal/php5/php5.y:1468 { yyVAL.list = yyDollar[1].list @@ -3629,7 +3630,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1473 +// line internal/php5/php5.y:1474 { yyVAL.list = []ast.Vertex{} @@ -3637,7 +3638,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1482 +// line internal/php5/php5.y:1483 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3645,7 +3646,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1488 +// line internal/php5/php5.y:1489 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3653,7 +3654,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1497 +// line internal/php5/php5.y:1498 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3668,6 +3669,7 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) @@ -3676,7 +3678,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1521 +// line internal/php5/php5.y:1523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3684,7 +3686,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1527 +// line internal/php5/php5.y:1529 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3695,7 +3697,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1539 +// line internal/php5/php5.y:1541 { yyVAL.node = yyDollar[1].node @@ -3703,7 +3705,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1548 +// line internal/php5/php5.y:1550 { yyVAL.node = yyDollar[1].node @@ -3711,7 +3713,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1557 +// line internal/php5/php5.y:1559 { yyVAL.node = yyDollar[1].node @@ -3719,31 +3721,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1566 +// line internal/php5/php5.y:1568 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1570 +// line internal/php5/php5.y:1572 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1577 +// line internal/php5/php5.y:1579 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1581 +// line internal/php5/php5.y:1583 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1588 +// line internal/php5/php5.y:1590 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3769,7 +3771,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1615 +// line internal/php5/php5.y:1617 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3799,7 +3801,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1643 +// line internal/php5/php5.y:1645 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3818,7 +3820,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1664 +// line internal/php5/php5.y:1666 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3832,7 +3834,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1676 +// line internal/php5/php5.y:1678 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3849,7 +3851,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1691 +// line internal/php5/php5.y:1693 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3863,7 +3865,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1703 +// line internal/php5/php5.y:1705 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3880,7 +3882,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1721 +// line internal/php5/php5.y:1723 { yyVAL.ClassExtends = nil @@ -3888,7 +3890,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1727 +// line internal/php5/php5.y:1729 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3902,13 +3904,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1742 +// line internal/php5/php5.y:1744 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1749 +// line internal/php5/php5.y:1751 { yyVAL.InterfaceExtends = nil @@ -3916,7 +3918,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1755 +// line internal/php5/php5.y:1757 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3930,7 +3932,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1770 +// line internal/php5/php5.y:1772 { yyVAL.ClassImplements = nil @@ -3938,7 +3940,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1776 +// line internal/php5/php5.y:1778 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3952,7 +3954,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1791 +// line internal/php5/php5.y:1793 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3960,7 +3962,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1797 +// line internal/php5/php5.y:1799 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3971,7 +3973,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1809 +// line internal/php5/php5.y:1811 { yyVAL.node = nil @@ -3979,7 +3981,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1815 +// line internal/php5/php5.y:1817 { yyVAL.node = yyDollar[2].node @@ -3990,7 +3992,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1827 +// line internal/php5/php5.y:1829 { yyVAL.node = yyDollar[1].node @@ -3998,7 +4000,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1833 +// line internal/php5/php5.y:1835 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4012,7 +4014,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1845 +// line internal/php5/php5.y:1847 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4028,7 +4030,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1862 +// line internal/php5/php5.y:1864 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4039,7 +4041,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1871 +// line internal/php5/php5.y:1873 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4058,7 +4060,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1891 +// line internal/php5/php5.y:1893 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4069,7 +4071,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1900 +// line internal/php5/php5.y:1902 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4088,7 +4090,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1921 +// line internal/php5/php5.y:1923 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4099,7 +4101,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1930 +// line internal/php5/php5.y:1932 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4118,7 +4120,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1951 +// line internal/php5/php5.y:1953 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4136,7 +4138,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1967 +// line internal/php5/php5.y:1969 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4155,7 +4157,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1988 +// line internal/php5/php5.y:1990 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4172,7 +4174,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2003 +// line internal/php5/php5.y:2005 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4190,7 +4192,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2019 +// line internal/php5/php5.y:2021 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4209,7 +4211,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2036 +// line internal/php5/php5.y:2038 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4230,7 +4232,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2059 +// line internal/php5/php5.y:2061 { yyVAL.list = []ast.Vertex{} @@ -4238,7 +4240,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2065 +// line internal/php5/php5.y:2067 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4255,7 +4257,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2080 +// line internal/php5/php5.y:2082 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4272,19 +4274,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2099 +// line internal/php5/php5.y:2101 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2103 +// line internal/php5/php5.y:2105 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2111 +// line internal/php5/php5.y:2113 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4295,7 +4297,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2120 +// line internal/php5/php5.y:2122 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4314,7 +4316,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2142 +// line internal/php5/php5.y:2144 { yyVAL.list = nil @@ -4322,7 +4324,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2148 +// line internal/php5/php5.y:2150 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4345,7 +4347,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2171 +// line internal/php5/php5.y:2173 { yyVAL.list = nil @@ -4353,7 +4355,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2177 +// line internal/php5/php5.y:2179 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4379,7 +4381,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2203 +// line internal/php5/php5.y:2205 { yyVAL.node = nil @@ -4387,7 +4389,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2209 +// line internal/php5/php5.y:2211 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4401,7 +4403,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2225 +// line internal/php5/php5.y:2227 { yyVAL.node = nil @@ -4409,7 +4411,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2231 +// line internal/php5/php5.y:2233 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4426,7 +4428,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2250 +// line internal/php5/php5.y:2252 { yyVAL.list = yyDollar[1].list @@ -4434,7 +4436,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2256 +// line internal/php5/php5.y:2258 { yyVAL.list = nil @@ -4442,7 +4444,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2265 +// line internal/php5/php5.y:2267 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4450,7 +4452,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2271 +// line internal/php5/php5.y:2273 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4461,7 +4463,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2283 +// line internal/php5/php5.y:2285 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4491,6 +4493,7 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).addDollarToken(variable) // normalize if yyDollar[3].token == nil { @@ -4510,7 +4513,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2327 +// line internal/php5/php5.y:2330 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4541,6 +4544,7 @@ yydefault: } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).addDollarToken(variable) // normalize if yyDollar[3].token == nil { @@ -4560,7 +4564,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2376 +// line internal/php5/php5.y:2380 { yyVAL.node = nil @@ -4568,7 +4572,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2382 +// line internal/php5/php5.y:2386 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4582,7 +4586,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2394 +// line internal/php5/php5.y:2398 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4596,7 +4600,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2406 +// line internal/php5/php5.y:2410 { yyVAL.node = yyDollar[1].node @@ -4604,7 +4608,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2416 +// line internal/php5/php5.y:2420 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4619,7 +4623,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2429 +// line internal/php5/php5.y:2433 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4634,7 +4638,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2442 +// line internal/php5/php5.y:2446 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4651,7 +4655,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2461 +// line internal/php5/php5.y:2465 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4659,7 +4663,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2467 +// line internal/php5/php5.y:2471 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4670,7 +4674,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2479 +// line internal/php5/php5.y:2483 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4684,7 +4688,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2491 +// line internal/php5/php5.y:2495 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4698,7 +4702,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2503 +// line internal/php5/php5.y:2507 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4712,7 +4716,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2515 +// line internal/php5/php5.y:2519 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4726,7 +4730,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2530 +// line internal/php5/php5.y:2534 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4737,7 +4741,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4745,7 +4749,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2549 +// line internal/php5/php5.y:2553 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4756,12 +4760,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2563 +// line internal/php5/php5.y:2568 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4776,7 +4781,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2576 +// line internal/php5/php5.y:2581 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4793,7 +4798,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2595 +// line internal/php5/php5.y:2600 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4807,13 +4812,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2613 +// line internal/php5/php5.y:2619 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4827,6 +4833,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Tokens) @@ -4834,7 +4841,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2632 +// line internal/php5/php5.y:2639 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4847,13 +4854,14 @@ yydefault: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2649 +// line internal/php5/php5.y:2657 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4866,6 +4874,7 @@ yydefault: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Tokens) @@ -4873,7 +4882,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2671 +// line internal/php5/php5.y:2680 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4881,7 +4890,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2677 +// line internal/php5/php5.y:2686 { yyVAL.list = []ast.Vertex{} @@ -4889,7 +4898,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2687 +// line internal/php5/php5.y:2696 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4905,7 +4914,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2701 +// line internal/php5/php5.y:2710 { yyVAL.node = yyDollar[1].node @@ -4920,7 +4929,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2714 +// line internal/php5/php5.y:2723 { yyVAL.node = yyDollar[1].node @@ -4928,7 +4937,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2720 +// line internal/php5/php5.y:2729 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4961,7 +4970,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2754 +// line internal/php5/php5.y:2763 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4975,7 +4984,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2769 +// line internal/php5/php5.y:2778 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4983,7 +4992,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2775 +// line internal/php5/php5.y:2784 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4994,7 +5003,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2787 +// line internal/php5/php5.y:2796 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5008,7 +5017,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2799 +// line internal/php5/php5.y:2808 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5022,7 +5031,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2814 +// line internal/php5/php5.y:2823 { yyVAL.list = nil @@ -5030,7 +5039,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2820 +// line internal/php5/php5.y:2829 { yyVAL.list = yyDollar[1].list @@ -5038,7 +5047,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2829 +// line internal/php5/php5.y:2838 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5046,7 +5055,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2835 +// line internal/php5/php5.y:2844 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5054,7 +5063,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2844 +// line internal/php5/php5.y:2853 { yyVAL.node = yyDollar[1].node @@ -5066,7 +5075,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2854 +// line internal/php5/php5.y:2863 { yyVAL.node = yyDollar[1].node @@ -5078,7 +5087,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2867 +// line internal/php5/php5.y:2876 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5093,7 +5102,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2883 +// line internal/php5/php5.y:2892 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5101,7 +5110,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2889 +// line internal/php5/php5.y:2898 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5112,7 +5121,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2901 +// line internal/php5/php5.y:2910 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5128,7 +5137,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2915 +// line internal/php5/php5.y:2924 { yyVAL.node = yyDollar[1].node @@ -5136,7 +5145,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2924 +// line internal/php5/php5.y:2933 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5154,7 +5163,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2943 +// line internal/php5/php5.y:2952 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5172,7 +5181,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2959 +// line internal/php5/php5.y:2968 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5187,7 +5196,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2975 +// line internal/php5/php5.y:2984 { yyVAL.node = nil @@ -5195,7 +5204,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2981 +// line internal/php5/php5.y:2990 { yyVAL.node = yyDollar[1].node @@ -5203,7 +5212,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2990 +// line internal/php5/php5.y:2999 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5218,7 +5227,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3003 +// line internal/php5/php5.y:3012 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5233,7 +5242,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3019 +// line internal/php5/php5.y:3028 { yyVAL.list = yyDollar[1].list @@ -5241,7 +5250,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3025 +// line internal/php5/php5.y:3034 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5256,7 +5265,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3041 +// line internal/php5/php5.y:3050 { yyVAL.list = nil @@ -5264,7 +5273,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3047 +// line internal/php5/php5.y:3056 { yyVAL.list = yyDollar[1].list @@ -5272,7 +5281,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3056 +// line internal/php5/php5.y:3065 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5280,7 +5289,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3062 +// line internal/php5/php5.y:3071 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5288,7 +5297,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3071 +// line internal/php5/php5.y:3080 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5302,7 +5311,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3092 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5316,7 +5325,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3095 +// line internal/php5/php5.y:3104 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5330,7 +5339,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3107 +// line internal/php5/php5.y:3116 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5344,7 +5353,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3128 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5358,7 +5367,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3131 +// line internal/php5/php5.y:3140 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5372,7 +5381,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3146 +// line internal/php5/php5.y:3155 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5385,6 +5394,7 @@ yydefault: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) @@ -5392,7 +5402,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3164 +// line internal/php5/php5.y:3174 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5406,6 +5416,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Tokens) @@ -5413,7 +5424,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3183 +// line internal/php5/php5.y:3194 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5426,13 +5437,14 @@ yydefault: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3200 +// line internal/php5/php5.y:3212 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5445,6 +5457,7 @@ yydefault: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Tokens) @@ -5452,7 +5465,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3221 +// line internal/php5/php5.y:3234 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5475,7 +5488,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3242 +// line internal/php5/php5.y:3255 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5495,7 +5508,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3263 +// line internal/php5/php5.y:3276 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5506,7 +5519,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3272 +// line internal/php5/php5.y:3285 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5514,7 +5527,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3282 +// line internal/php5/php5.y:3295 { yyVAL.list = nil @@ -5522,7 +5535,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3288 +// line internal/php5/php5.y:3301 { yyVAL.list = yyDollar[1].list @@ -5530,7 +5543,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3297 +// line internal/php5/php5.y:3310 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5541,7 +5554,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3306 +// line internal/php5/php5.y:3319 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5549,7 +5562,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3315 +// line internal/php5/php5.y:3328 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5557,7 +5570,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3321 +// line internal/php5/php5.y:3334 { yyVAL.list = yyDollar[1].list @@ -5565,7 +5578,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3330 +// line internal/php5/php5.y:3343 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5581,7 +5594,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3344 +// line internal/php5/php5.y:3357 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5597,7 +5610,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3361 +// line internal/php5/php5.y:3374 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5605,7 +5618,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3367 +// line internal/php5/php5.y:3380 { yyVAL.list = yyDollar[1].list @@ -5613,7 +5626,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3373 +// line internal/php5/php5.y:3386 { yyVAL.list = yyDollar[1].list @@ -5621,7 +5634,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3382 +// line internal/php5/php5.y:3395 { yyVAL.list = nil @@ -5629,7 +5642,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3388 +// line internal/php5/php5.y:3401 { yyVAL.list = yyDollar[1].list @@ -5637,7 +5650,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3397 +// line internal/php5/php5.y:3410 { if yyDollar[3].node != nil { @@ -5655,7 +5668,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3429 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5674,7 +5687,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3433 +// line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5702,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3446 +// line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5705,7 +5718,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3460 +// line internal/php5/php5.y:3473 { var _new *ast.ExprNew @@ -5734,7 +5747,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3487 +// line internal/php5/php5.y:3500 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5748,7 +5761,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3499 +// line internal/php5/php5.y:3512 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5762,7 +5775,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3511 +// line internal/php5/php5.y:3524 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,7 +5790,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3524 +// line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,7 +5805,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3537 +// line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5820,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3550 +// line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,7 +5835,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3563 +// line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5837,7 +5850,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3576 +// line internal/php5/php5.y:3589 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5865,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3589 +// line internal/php5/php5.y:3602 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5867,7 +5880,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3602 +// line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5882,7 +5895,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3615 +// line internal/php5/php5.y:3628 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5910,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3628 +// line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5912,7 +5925,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3641 +// line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5927,7 +5940,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3654 +// line internal/php5/php5.y:3667 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5942,7 +5955,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3667 +// line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5956,7 +5969,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3679 +// line internal/php5/php5.y:3692 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5971,7 +5984,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3692 +// line internal/php5/php5.y:3705 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5985,7 +5998,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3704 +// line internal/php5/php5.y:3717 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6000,7 +6013,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3717 +// line internal/php5/php5.y:3730 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6015,7 +6028,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3730 +// line internal/php5/php5.y:3743 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6030,7 +6043,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3743 +// line internal/php5/php5.y:3756 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6045,7 +6058,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3756 +// line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6060,7 +6073,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3769 +// line internal/php5/php5.y:3782 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6075,7 +6088,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3782 +// line internal/php5/php5.y:3795 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6090,7 +6103,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3795 +// line internal/php5/php5.y:3808 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6105,7 +6118,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3808 +// line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6120,7 +6133,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3821 +// line internal/php5/php5.y:3834 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6135,7 +6148,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3834 +// line internal/php5/php5.y:3847 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6150,7 +6163,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3847 +// line internal/php5/php5.y:3860 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6165,7 +6178,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3860 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6180,7 +6193,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3873 +// line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6195,7 +6208,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3886 +// line internal/php5/php5.y:3899 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6210,7 +6223,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3899 +// line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6225,7 +6238,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3912 +// line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6240,7 +6253,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3925 +// line internal/php5/php5.y:3938 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6254,7 +6267,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3937 +// line internal/php5/php5.y:3950 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6268,7 +6281,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3949 +// line internal/php5/php5.y:3962 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6282,7 +6295,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3961 +// line internal/php5/php5.y:3974 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6296,7 +6309,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3973 +// line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6311,7 +6324,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3986 +// line internal/php5/php5.y:3999 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6326,7 +6339,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3999 +// line internal/php5/php5.y:4012 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6341,7 +6354,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4012 +// line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6357,7 +6370,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4026 +// line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6372,7 +6385,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4052 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6387,7 +6400,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4052 +// line internal/php5/php5.y:4065 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6402,7 +6415,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4065 +// line internal/php5/php5.y:4078 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6417,7 +6430,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4078 +// line internal/php5/php5.y:4091 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6432,7 +6445,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4091 +// line internal/php5/php5.y:4104 { yyVAL.node = yyDollar[1].node @@ -6445,7 +6458,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4100 +// line internal/php5/php5.y:4113 { yyVAL.node = yyDollar[1].node @@ -6453,7 +6466,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4106 +// line internal/php5/php5.y:4119 { yyVAL.node = yyDollar[2].node @@ -6487,7 +6500,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4138 +// line internal/php5/php5.y:4151 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6503,7 +6516,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4152 +// line internal/php5/php5.y:4165 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6519,7 +6532,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4166 +// line internal/php5/php5.y:4179 { yyVAL.node = yyDollar[1].node @@ -6527,7 +6540,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4172 +// line internal/php5/php5.y:4185 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6542,7 +6555,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4185 +// line internal/php5/php5.y:4198 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6557,7 +6570,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4198 +// line internal/php5/php5.y:4211 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6572,7 +6585,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4211 +// line internal/php5/php5.y:4224 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6587,7 +6600,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4224 +// line internal/php5/php5.y:4237 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6602,7 +6615,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4237 +// line internal/php5/php5.y:4250 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6617,7 +6630,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4250 +// line internal/php5/php5.y:4263 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6632,7 +6645,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4263 +// line internal/php5/php5.y:4276 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6655,7 +6668,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4284 +// line internal/php5/php5.y:4297 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6669,7 +6682,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4296 +// line internal/php5/php5.y:4309 { yyVAL.node = yyDollar[1].node @@ -6677,7 +6690,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4302 +// line internal/php5/php5.y:4315 { yyVAL.node = yyDollar[1].node @@ -6685,7 +6698,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4308 +// line internal/php5/php5.y:4321 { yyVAL.node = yyDollar[1].node @@ -6693,7 +6706,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4314 +// line internal/php5/php5.y:4327 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6707,7 +6720,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4326 +// line internal/php5/php5.y:4339 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6721,7 +6734,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4338 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6735,7 +6748,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:4350 +// line internal/php5/php5.y:4363 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6764,7 +6777,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:4376 +// line internal/php5/php5.y:4389 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6794,7 +6807,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4406 +// line internal/php5/php5.y:4419 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6808,7 +6821,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4418 +// line internal/php5/php5.y:4431 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6822,21 +6835,6 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4430 - { - yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 309: - yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:4443 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6850,9 +6848,24 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } + case 309: + yyDollar = yyS[yypt-4 : yypt+1] +// line internal/php5/php5.y:4456 + { + yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} + + // save position + yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4459 +// line internal/php5/php5.y:4472 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6868,7 +6881,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4473 +// line internal/php5/php5.y:4486 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6884,7 +6897,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4487 +// line internal/php5/php5.y:4500 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6902,7 +6915,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4503 +// line internal/php5/php5.y:4516 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6918,7 +6931,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4520 +// line internal/php5/php5.y:4533 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6934,7 +6947,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4534 +// line internal/php5/php5.y:4547 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6949,13 +6962,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4550 +// line internal/php5/php5.y:4563 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4557 +// line internal/php5/php5.y:4570 { yyVAL.ClosureUse = nil @@ -6963,7 +6976,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4563 +// line internal/php5/php5.y:4576 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6979,7 +6992,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4580 +// line internal/php5/php5.y:4593 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6992,12 +7005,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4610 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7013,12 +7027,13 @@ yydefault: yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4615 +// line internal/php5/php5.y:4630 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7030,12 +7045,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4630 +// line internal/php5/php5.y:4646 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7050,12 +7066,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4651 +// line internal/php5/php5.y:4668 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7071,7 +7088,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4665 +// line internal/php5/php5.y:4682 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7088,7 +7105,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4680 +// line internal/php5/php5.y:4697 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7104,7 +7121,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4694 +// line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7119,7 +7136,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4707 +// line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7134,7 +7151,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4720 +// line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7149,7 +7166,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4733 +// line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7164,7 +7181,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4746 +// line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7178,7 +7195,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4761 +// line internal/php5/php5.y:4778 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7192,7 +7209,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4773 +// line internal/php5/php5.y:4790 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7206,7 +7223,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4785 +// line internal/php5/php5.y:4802 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7221,7 +7238,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4798 +// line internal/php5/php5.y:4815 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7235,7 +7252,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4813 +// line internal/php5/php5.y:4830 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7249,7 +7266,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4825 +// line internal/php5/php5.y:4842 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7264,7 +7281,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4838 +// line internal/php5/php5.y:4855 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7278,7 +7295,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4853 +// line internal/php5/php5.y:4870 { yyVAL.node = yyDollar[1].node @@ -7286,7 +7303,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4859 +// line internal/php5/php5.y:4876 { yyVAL.node = yyDollar[1].node @@ -7294,7 +7311,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4868 +// line internal/php5/php5.y:4885 { yyVAL.node = yyDollar[1].node @@ -7337,7 +7354,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4909 +// line internal/php5/php5.y:4926 { yyVAL.node = yyDollar[1].node @@ -7345,7 +7362,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4919 +// line internal/php5/php5.y:4936 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7353,7 +7370,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4925 +// line internal/php5/php5.y:4942 { yyVAL.list = []ast.Vertex{} @@ -7361,7 +7378,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4935 +// line internal/php5/php5.y:4952 { yyVAL.list = yyDollar[2].list @@ -7372,7 +7389,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4947 +// line internal/php5/php5.y:4964 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7380,7 +7397,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4953 +// line internal/php5/php5.y:4970 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7395,7 +7412,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4966 +// line internal/php5/php5.y:4983 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7416,7 +7433,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4986 +// line internal/php5/php5.y:5003 { yyVAL.list = []ast.Vertex{} @@ -7424,7 +7441,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4992 +// line internal/php5/php5.y:5009 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7436,7 +7453,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5002 +// line internal/php5/php5.y:5019 { yyVAL.list = yyDollar[1].list @@ -7444,7 +7461,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5028 { yyVAL.node = nil @@ -7452,7 +7469,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5017 +// line internal/php5/php5.y:5034 { yyVAL.node = yyDollar[1].node @@ -7460,7 +7477,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5026 +// line internal/php5/php5.y:5043 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7474,7 +7491,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5038 +// line internal/php5/php5.y:5055 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7488,7 +7505,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5050 +// line internal/php5/php5.y:5067 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7502,7 +7519,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5062 +// line internal/php5/php5.y:5079 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7516,7 +7533,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5074 +// line internal/php5/php5.y:5091 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7530,7 +7547,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5086 +// line internal/php5/php5.y:5103 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7544,7 +7561,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5098 +// line internal/php5/php5.y:5115 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7558,7 +7575,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5110 +// line internal/php5/php5.y:5127 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7572,7 +7589,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5139 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7586,7 +7603,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5134 +// line internal/php5/php5.y:5151 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7600,7 +7617,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5146 +// line internal/php5/php5.y:5163 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7616,7 +7633,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5160 +// line internal/php5/php5.y:5177 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7630,7 +7647,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5175 +// line internal/php5/php5.y:5192 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7648,7 +7665,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5194 +// line internal/php5/php5.y:5211 { yyVAL.node = yyDollar[1].node @@ -7656,7 +7673,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5203 +// line internal/php5/php5.y:5220 { yyVAL.node = yyDollar[1].node @@ -7664,7 +7681,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5209 +// line internal/php5/php5.y:5226 { yyVAL.node = yyDollar[1].node @@ -7672,7 +7689,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5215 +// line internal/php5/php5.y:5232 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7688,7 +7705,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5229 +// line internal/php5/php5.y:5246 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7705,7 +7722,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5244 +// line internal/php5/php5.y:5261 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7721,7 +7738,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5258 +// line internal/php5/php5.y:5275 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7737,7 +7754,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5272 +// line internal/php5/php5.y:5289 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7752,7 +7769,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5285 +// line internal/php5/php5.y:5302 { yyVAL.node = yyDollar[1].node @@ -7760,7 +7777,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5291 +// line internal/php5/php5.y:5308 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7774,7 +7791,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5303 +// line internal/php5/php5.y:5320 { yyVAL.node = yyDollar[1].node @@ -7782,7 +7799,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5312 +// line internal/php5/php5.y:5329 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7798,7 +7815,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5326 +// line internal/php5/php5.y:5343 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7813,7 +7830,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5339 +// line internal/php5/php5.y:5356 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7828,7 +7845,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5352 +// line internal/php5/php5.y:5369 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7843,7 +7860,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5365 +// line internal/php5/php5.y:5382 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7858,7 +7875,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5378 +// line internal/php5/php5.y:5395 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7873,7 +7890,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5391 +// line internal/php5/php5.y:5408 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7888,7 +7905,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5404 +// line internal/php5/php5.y:5421 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7902,7 +7919,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5416 +// line internal/php5/php5.y:5433 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7916,7 +7933,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5428 +// line internal/php5/php5.y:5445 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7931,7 +7948,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5441 +// line internal/php5/php5.y:5458 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7946,7 +7963,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5471 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7961,7 +7978,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5467 +// line internal/php5/php5.y:5484 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7976,7 +7993,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5480 +// line internal/php5/php5.y:5497 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7991,7 +8008,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5493 +// line internal/php5/php5.y:5510 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8006,7 +8023,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5506 +// line internal/php5/php5.y:5523 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8021,7 +8038,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5519 +// line internal/php5/php5.y:5536 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8036,7 +8053,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5532 +// line internal/php5/php5.y:5549 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8051,7 +8068,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5545 +// line internal/php5/php5.y:5562 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8066,7 +8083,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5558 +// line internal/php5/php5.y:5575 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8081,7 +8098,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5571 +// line internal/php5/php5.y:5588 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8096,7 +8113,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5584 +// line internal/php5/php5.y:5601 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8111,7 +8128,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5597 +// line internal/php5/php5.y:5614 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8126,7 +8143,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5627 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8142,7 +8159,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5624 +// line internal/php5/php5.y:5641 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8157,7 +8174,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5637 +// line internal/php5/php5.y:5654 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8172,7 +8189,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5650 +// line internal/php5/php5.y:5667 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8187,7 +8204,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5663 +// line internal/php5/php5.y:5680 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8202,7 +8219,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5676 +// line internal/php5/php5.y:5693 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8218,7 +8235,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5690 +// line internal/php5/php5.y:5707 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8234,7 +8251,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5704 +// line internal/php5/php5.y:5721 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8248,7 +8265,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5716 +// line internal/php5/php5.y:5733 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8262,7 +8279,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5728 +// line internal/php5/php5.y:5745 { yyVAL.node = yyDollar[2].node @@ -8274,7 +8291,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5741 +// line internal/php5/php5.y:5758 { yyVAL.node = yyDollar[1].node @@ -8282,7 +8299,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5747 +// line internal/php5/php5.y:5764 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8298,7 +8315,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5761 +// line internal/php5/php5.y:5778 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8315,7 +8332,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5776 +// line internal/php5/php5.y:5793 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8331,7 +8348,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5793 +// line internal/php5/php5.y:5810 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8347,7 +8364,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5807 +// line internal/php5/php5.y:5824 { yyVAL.node = yyDollar[1].node @@ -8355,7 +8372,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5813 +// line internal/php5/php5.y:5830 { yyVAL.node = yyDollar[1].node @@ -8363,7 +8380,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5819 +// line internal/php5/php5.y:5836 { yyVAL.node = yyDollar[1].node @@ -8371,7 +8388,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5825 +// line internal/php5/php5.y:5842 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8385,7 +8402,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5837 +// line internal/php5/php5.y:5854 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8399,7 +8416,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5849 +// line internal/php5/php5.y:5866 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8413,7 +8430,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5864 +// line internal/php5/php5.y:5881 { yyVAL.list = nil @@ -8421,7 +8438,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5870 +// line internal/php5/php5.y:5887 { yyVAL.list = yyDollar[1].list @@ -8434,19 +8451,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5884 +// line internal/php5/php5.y:5901 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5888 +// line internal/php5/php5.y:5905 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5895 +// line internal/php5/php5.y:5912 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8463,7 +8480,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5910 +// line internal/php5/php5.y:5927 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8479,7 +8496,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5924 +// line internal/php5/php5.y:5941 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8495,7 +8512,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5938 +// line internal/php5/php5.y:5955 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8510,7 +8527,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5954 +// line internal/php5/php5.y:5971 { yyVAL.node = yyDollar[1].node @@ -8518,7 +8535,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5960 +// line internal/php5/php5.y:5977 { yyVAL.node = yyDollar[1].node @@ -8526,7 +8543,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5969 +// line internal/php5/php5.y:5986 { yyVAL.node = yyDollar[2].node @@ -8544,7 +8561,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5985 +// line internal/php5/php5.y:6002 { yyVAL.node = yyDollar[2].node @@ -8562,7 +8579,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6005 +// line internal/php5/php5.y:6022 { yyVAL.node = yyDollar[1].node @@ -8570,7 +8587,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6015 +// line internal/php5/php5.y:6032 { yyVAL.node = yyDollar[1].node @@ -8578,7 +8595,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6024 +// line internal/php5/php5.y:6041 { yyVAL.node = yyDollar[1].node @@ -8586,7 +8603,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6033 +// line internal/php5/php5.y:6050 { yyVAL.node = yyDollar[1].node @@ -8646,7 +8663,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6091 +// line internal/php5/php5.y:6108 { yyVAL.node = yyDollar[1].node @@ -8654,7 +8671,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6100 +// line internal/php5/php5.y:6117 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8662,7 +8679,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6106 +// line internal/php5/php5.y:6123 { yyVAL.list = []ast.Vertex{} @@ -8670,7 +8687,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6116 +// line internal/php5/php5.y:6133 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8686,7 +8703,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6133 +// line internal/php5/php5.y:6150 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8702,7 +8719,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6147 +// line internal/php5/php5.y:6164 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8718,7 +8735,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6164 +// line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8729,7 +8746,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6176 +// line internal/php5/php5.y:6193 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8737,7 +8754,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6182 +// line internal/php5/php5.y:6199 { yyVAL.list = yyDollar[1].list @@ -8745,7 +8762,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6188 +// line internal/php5/php5.y:6205 { yyVAL.list = nil @@ -8753,7 +8770,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6197 +// line internal/php5/php5.y:6214 { yyVAL.node = yyDollar[1].node @@ -8761,7 +8778,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6203 +// line internal/php5/php5.y:6220 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8775,7 +8792,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6218 +// line internal/php5/php5.y:6235 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8790,7 +8807,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6231 +// line internal/php5/php5.y:6248 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8805,7 +8822,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6247 +// line internal/php5/php5.y:6264 { yyVAL.node = yyDollar[1].node @@ -8813,7 +8830,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6256 +// line internal/php5/php5.y:6273 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8829,7 +8846,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6270 +// line internal/php5/php5.y:6287 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8845,7 +8862,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6287 +// line internal/php5/php5.y:6304 { yyVAL.node = yyDollar[1].node @@ -8853,7 +8870,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6293 +// line internal/php5/php5.y:6310 { yyVAL.node = yyDollar[1].node @@ -8861,7 +8878,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6299 +// line internal/php5/php5.y:6316 { yyVAL.node = yyDollar[1].node @@ -8869,7 +8886,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6309 +// line internal/php5/php5.y:6326 { yyVAL.node = yyDollar[1].node @@ -8877,7 +8894,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6315 +// line internal/php5/php5.y:6332 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8891,7 +8908,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6327 +// line internal/php5/php5.y:6344 { yyVAL.node = yyDollar[1].node @@ -8899,7 +8916,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6336 +// line internal/php5/php5.y:6353 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8915,7 +8932,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6350 +// line internal/php5/php5.y:6367 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8931,7 +8948,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6364 +// line internal/php5/php5.y:6381 { yyVAL.node = yyDollar[1].node @@ -8939,7 +8956,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6374 +// line internal/php5/php5.y:6391 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8950,12 +8967,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6388 +// line internal/php5/php5.y:6406 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8972,7 +8990,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6406 +// line internal/php5/php5.y:6424 { yyVAL.node = nil @@ -8980,7 +8998,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6412 +// line internal/php5/php5.y:6430 { yyVAL.node = yyDollar[1].node @@ -8988,7 +9006,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6422 +// line internal/php5/php5.y:6440 { yyVAL.list = yyDollar[1].list @@ -8996,7 +9014,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6428 +// line internal/php5/php5.y:6446 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9008,7 +9026,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6441 +// line internal/php5/php5.y:6459 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9024,7 +9042,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6455 +// line internal/php5/php5.y:6473 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9040,7 +9058,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6469 +// line internal/php5/php5.y:6487 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9052,7 +9070,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6482 +// line internal/php5/php5.y:6500 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9066,7 +9084,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6494 +// line internal/php5/php5.y:6512 { yyVAL.node = yyDollar[2].node @@ -9081,7 +9099,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6510 +// line internal/php5/php5.y:6528 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9097,7 +9115,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6524 +// line internal/php5/php5.y:6542 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9117,7 +9135,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6545 +// line internal/php5/php5.y:6563 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9132,7 +9150,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6558 +// line internal/php5/php5.y:6576 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9144,7 +9162,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6572 +// line internal/php5/php5.y:6590 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9158,7 +9176,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6584 +// line internal/php5/php5.y:6602 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9176,7 +9194,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6600 +// line internal/php5/php5.y:6618 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9184,7 +9202,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6610 +// line internal/php5/php5.y:6628 { yyVAL.list = []ast.Vertex{} @@ -9192,7 +9210,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6616 +// line internal/php5/php5.y:6634 { yyVAL.list = yyDollar[1].list @@ -9209,7 +9227,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6634 +// line internal/php5/php5.y:6652 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9226,7 +9244,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6649 +// line internal/php5/php5.y:6667 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9242,7 +9260,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6663 +// line internal/php5/php5.y:6681 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9258,7 +9276,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6677 +// line internal/php5/php5.y:6695 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9273,7 +9291,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6690 +// line internal/php5/php5.y:6708 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9293,7 +9311,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6708 +// line internal/php5/php5.y:6726 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9311,7 +9329,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6724 +// line internal/php5/php5.y:6742 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9330,7 +9348,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6741 +// line internal/php5/php5.y:6759 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9347,7 +9365,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6759 +// line internal/php5/php5.y:6777 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9355,7 +9373,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6765 +// line internal/php5/php5.y:6783 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9370,7 +9388,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6778 +// line internal/php5/php5.y:6796 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9378,7 +9396,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6784 +// line internal/php5/php5.y:6802 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9393,7 +9411,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6800 +// line internal/php5/php5.y:6818 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9404,12 +9422,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6814 +// line internal/php5/php5.y:6833 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9421,6 +9440,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) @@ -9428,7 +9448,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6831 +// line internal/php5/php5.y:6851 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9442,6 +9462,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) @@ -9449,7 +9470,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6850 +// line internal/php5/php5.y:6871 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9466,7 +9487,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6865 +// line internal/php5/php5.y:6886 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9485,7 +9506,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6882 +// line internal/php5/php5.y:6903 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9506,7 +9527,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6901 +// line internal/php5/php5.y:6922 { yyVAL.node = yyDollar[2].node @@ -9518,7 +9539,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6914 +// line internal/php5/php5.y:6935 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9532,7 +9553,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6926 +// line internal/php5/php5.y:6947 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9551,7 +9572,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6943 +// line internal/php5/php5.y:6964 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9562,12 +9583,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6960 +// line internal/php5/php5.y:6982 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9583,7 +9605,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6974 +// line internal/php5/php5.y:6996 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9599,7 +9621,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6988 +// line internal/php5/php5.y:7010 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9615,7 +9637,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7002 +// line internal/php5/php5.y:7024 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9629,7 +9651,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7014 +// line internal/php5/php5.y:7036 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9643,7 +9665,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:7026 +// line internal/php5/php5.y:7048 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9659,7 +9681,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7040 +// line internal/php5/php5.y:7062 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9673,7 +9695,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7052 +// line internal/php5/php5.y:7074 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9687,7 +9709,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7067 +// line internal/php5/php5.y:7089 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9695,7 +9717,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7073 +// line internal/php5/php5.y:7095 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9706,7 +9728,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7085 +// line internal/php5/php5.y:7107 { yyVAL.node = yyDollar[1].node @@ -9714,7 +9736,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7091 +// line internal/php5/php5.y:7113 { yyVAL.node = yyDollar[1].node @@ -9722,7 +9744,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7100 +// line internal/php5/php5.y:7122 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9740,7 +9762,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7116 +// line internal/php5/php5.y:7138 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9758,7 +9780,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7135 +// line internal/php5/php5.y:7157 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9776,7 +9798,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7154 +// line internal/php5/php5.y:7176 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index fc42063..082430d 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1431,6 +1431,7 @@ catch_statement: yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Tokens) yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Tokens) yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Tokens) @@ -1508,6 +1509,7 @@ additional_catch: yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Tokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) @@ -2309,6 +2311,7 @@ parameter: yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).addDollarToken(variable) // normalize if $3 == nil { @@ -2354,6 +2357,7 @@ parameter: } yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).addDollarToken(variable) // normalize if $3 == nil { @@ -2556,6 +2560,7 @@ global_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2605,6 +2610,7 @@ static_var_list: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2623,6 +2629,7 @@ static_var_list: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Tokens) @@ -2641,6 +2648,7 @@ static_var_list: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2658,6 +2666,7 @@ static_var_list: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Tokens) @@ -3155,6 +3164,7 @@ class_variable_declaration: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) @@ -3174,6 +3184,7 @@ class_variable_declaration: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(property, token.Var, $4.Tokens) @@ -3192,6 +3203,7 @@ class_variable_declaration: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3209,6 +3221,7 @@ class_variable_declaration: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(property, token.Var, $2.Tokens) @@ -4589,6 +4602,7 @@ lexical_var_list: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4608,6 +4622,7 @@ lexical_var_list: yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4623,6 +4638,7 @@ lexical_var_list: // save comments yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4641,6 +4657,7 @@ lexical_var_list: // save comments yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6381,6 +6398,7 @@ compound_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6807,6 +6825,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6822,6 +6841,7 @@ encaps_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) @@ -6841,6 +6861,7 @@ encaps_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) @@ -6950,6 +6971,7 @@ encaps_var_offset: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/parser.go b/internal/php7/parser.go index cb42f54..a960984 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -131,10 +131,25 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { return []token.Token{} } - tokens := make([]token.Token, len(t.Tokens)) - copy(tokens, t.Tokens) + return []token.Token{ + { + ID: token.ID(t.ID), + Value: t.Value, + }, + } +} - return tokens +func (l *Parser) addDollarToken(v ast.Vertex) { + if l.Lexer.GetWithFreeFloating() == false { + return + } + + l.setFreeFloating(v, token.Dollar, []token.Token{ + { + ID: token.ID('$'), + Value: []byte("$"), + }, + }) } func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 25490fc..bceae9c 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -982,7 +982,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 51, }, }, - ReturnsRef: false, + ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -1183,7 +1183,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 117, }, }, - ReturnsRef: false, + ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -1397,8 +1397,8 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 162, }, }, - ReturnsRef: false, - Static: false, + ReturnsRef: false, + Static: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ @@ -1577,8 +1577,8 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 214, }, }, - Static: true, - ReturnsRef: false, + Static: true, + ReturnsRef: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ @@ -4376,7 +4376,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { EndPos: 31, }, }, - ReturnsRef: false, + ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -4454,7 +4454,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { EndPos: 45, }, }, - ReturnsRef: false, + ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -4511,7 +4511,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { EndPos: 73, }, }, - ReturnsRef: false, + ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -4602,7 +4602,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { EndPos: 52, }, }, - ReturnsRef: true, + ReturnsRef: true, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -4740,7 +4740,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { EndPos: 54, }, }, - ReturnsRef: false, + ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -4854,7 +4854,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { EndPos: 51, }, }, - ReturnsRef: false, + ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -7300,7 +7300,7 @@ func TestStmtFunction(t *testing.T) { EndPos: 20, }, }, - ReturnsRef: false, + ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -7345,7 +7345,7 @@ func TestStmtFunction_Return(t *testing.T) { EndPos: 27, }, }, - ReturnsRef: false, + ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -7401,7 +7401,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndPos: 51, }, }, - ReturnsRef: false, + ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -7568,7 +7568,7 @@ func TestStmtFunction_Ref(t *testing.T) { EndPos: 30, }, }, - ReturnsRef: true, + ReturnsRef: true, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -7635,7 +7635,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { EndPos: 27, }, }, - ReturnsRef: true, + ReturnsRef: true, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ @@ -14535,8 +14535,8 @@ func TestExprArrowFunction(t *testing.T) { EndPos: 13, }, }, - ReturnsRef: false, - Static: false, + ReturnsRef: false, + Static: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -14600,8 +14600,8 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { EndPos: 22, }, }, - Static: false, - ReturnsRef: true, + Static: false, + ReturnsRef: true, ReturnType: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ @@ -15080,9 +15080,9 @@ func TestExprClosure(t *testing.T) { EndPos: 15, }, }, - ReturnsRef: false, - Static: false, - Stmts: []ast.Vertex{}, + ReturnsRef: false, + Static: false, + Stmts: []ast.Vertex{}, }, }, }, @@ -15125,8 +15125,8 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 36, }, }, - ReturnsRef: false, - Static: false, + ReturnsRef: false, + Static: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ @@ -15302,8 +15302,8 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 36, }, }, - ReturnsRef: false, - Static: false, + ReturnsRef: false, + Static: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ @@ -15479,8 +15479,8 @@ func TestExprClosure_ReturnType(t *testing.T) { EndPos: 22, }, }, - ReturnsRef: false, - Static: false, + ReturnsRef: false, + Static: false, ReturnType: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 9a3f30a..0900ad3 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5655 +// line internal/php7/php7.y:5671 // line yacctab:1 var yyExca = [...]int{ @@ -3724,6 +3724,7 @@ yydefault: yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Tokens) yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Tokens) yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Tokens) @@ -3732,7 +3733,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1380 + // line internal/php7/php7.y:1381 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3740,7 +3741,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1386 + // line internal/php7/php7.y:1387 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3751,7 +3752,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1398 + // line internal/php7/php7.y:1399 { yyVAL.node = nil @@ -3759,7 +3760,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1404 + // line internal/php7/php7.y:1405 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3775,7 +3776,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1421 + // line internal/php7/php7.y:1422 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3783,7 +3784,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1427 + // line internal/php7/php7.y:1428 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3794,7 +3795,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1439 + // line internal/php7/php7.y:1440 { yyVAL.node = yyDollar[1].node @@ -3802,7 +3803,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1448 + // line internal/php7/php7.y:1449 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3838,31 +3839,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1484 + // line internal/php7/php7.y:1485 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1489 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1495 + // line internal/php7/php7.y:1496 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1499 + // line internal/php7/php7.y:1500 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1506 + // line internal/php7/php7.y:1507 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3882,7 +3883,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1524 + // line internal/php7/php7.y:1525 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3901,7 +3902,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1544 + // line internal/php7/php7.y:1545 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3909,7 +3910,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1550 + // line internal/php7/php7.y:1551 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3917,7 +3918,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1559 + // line internal/php7/php7.y:1560 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3931,7 +3932,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1571 + // line internal/php7/php7.y:1572 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3945,7 +3946,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1586 + // line internal/php7/php7.y:1587 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3964,7 +3965,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1606 + // line internal/php7/php7.y:1607 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3983,7 +3984,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1627 { yyVAL.ClassExtends = nil @@ -3991,7 +3992,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1632 + // line internal/php7/php7.y:1633 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -4005,7 +4006,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1647 + // line internal/php7/php7.y:1648 { yyVAL.InterfaceExtends = nil @@ -4013,7 +4014,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1653 + // line internal/php7/php7.y:1654 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4027,7 +4028,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1668 + // line internal/php7/php7.y:1669 { yyVAL.ClassImplements = nil @@ -4035,7 +4036,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1674 + // line internal/php7/php7.y:1675 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4049,7 +4050,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1689 + // line internal/php7/php7.y:1690 { yyVAL.node = yyDollar[1].node @@ -4057,7 +4058,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1695 + // line internal/php7/php7.y:1696 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4071,7 +4072,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1707 + // line internal/php7/php7.y:1708 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4087,7 +4088,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1721 + // line internal/php7/php7.y:1722 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4102,7 +4103,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1737 + // line internal/php7/php7.y:1738 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4113,7 +4114,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1746 + // line internal/php7/php7.y:1747 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4132,7 +4133,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1766 + // line internal/php7/php7.y:1767 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4143,7 +4144,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1775 + // line internal/php7/php7.y:1776 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4162,7 +4163,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1795 + // line internal/php7/php7.y:1796 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4173,7 +4174,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1805 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4192,7 +4193,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1824 + // line internal/php7/php7.y:1825 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4209,7 +4210,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1839 + // line internal/php7/php7.y:1840 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4227,7 +4228,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1855 + // line internal/php7/php7.y:1856 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4246,7 +4247,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1872 + // line internal/php7/php7.y:1873 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4267,7 +4268,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1894 + // line internal/php7/php7.y:1895 { yyVAL.list = []ast.Vertex{} @@ -4275,7 +4276,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1900 + // line internal/php7/php7.y:1901 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4292,7 +4293,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1915 + // line internal/php7/php7.y:1916 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4309,19 +4310,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1933 + // line internal/php7/php7.y:1934 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1937 + // line internal/php7/php7.y:1938 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1944 + // line internal/php7/php7.y:1945 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4332,7 +4333,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1953 + // line internal/php7/php7.y:1954 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4351,7 +4352,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1973 + // line internal/php7/php7.y:1974 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4367,7 +4368,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1987 + // line internal/php7/php7.y:1988 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4387,7 +4388,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2008 + // line internal/php7/php7.y:2009 { yyVAL.node = yyDollar[1].node @@ -4395,7 +4396,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2014 + // line internal/php7/php7.y:2015 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4413,7 +4414,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2033 + // line internal/php7/php7.y:2034 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4432,7 +4433,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2050 + // line internal/php7/php7.y:2051 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4454,7 +4455,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2073 + // line internal/php7/php7.y:2074 { yyVAL.node = yyDollar[1].node @@ -4470,7 +4471,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2088 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4494,7 +4495,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2112 + // line internal/php7/php7.y:2113 { yyVAL.list = yyDollar[1].list @@ -4502,7 +4503,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2118 + // line internal/php7/php7.y:2119 { yyVAL.list = nil @@ -4510,7 +4511,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2127 + // line internal/php7/php7.y:2128 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4518,7 +4519,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2134 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4529,7 +4530,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2145 + // line internal/php7/php7.y:2146 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4560,6 +4561,8 @@ yydefault: } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).addDollarToken(variable) + // normalize if yyDollar[3].token == nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) @@ -4578,7 +4581,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2192 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4610,6 +4613,8 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).addDollarToken(variable) + // normalize if yyDollar[3].token == nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) @@ -4628,7 +4633,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2242 { yyVAL.node = nil @@ -4636,7 +4641,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2248 { yyVAL.node = yyDollar[1].node @@ -4644,7 +4649,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2252 + // line internal/php7/php7.y:2257 { yyVAL.node = yyDollar[1].node @@ -4652,7 +4657,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2258 + // line internal/php7/php7.y:2263 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4666,7 +4671,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2273 + // line internal/php7/php7.y:2278 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4680,7 +4685,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2290 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4694,7 +4699,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2297 + // line internal/php7/php7.y:2302 { yyVAL.node = yyDollar[1].node @@ -4702,7 +4707,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2306 + // line internal/php7/php7.y:2311 { yyVAL.node = nil @@ -4710,7 +4715,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2317 { yyVAL.node = yyDollar[2].node @@ -4721,7 +4726,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2329 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4736,7 +4741,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2337 + // line internal/php7/php7.y:2342 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4755,7 +4760,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2357 + // line internal/php7/php7.y:2362 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4763,7 +4768,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2363 + // line internal/php7/php7.y:2368 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4774,7 +4779,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2380 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4788,7 +4793,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2387 + // line internal/php7/php7.y:2392 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4802,7 +4807,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2407 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4813,7 +4818,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2416 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4821,7 +4826,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2425 { yyVAL.node = yyDollar[1].node @@ -4829,7 +4834,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2429 + // line internal/php7/php7.y:2434 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4840,7 +4845,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2443 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4848,7 +4853,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2452 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4861,12 +4866,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2463 + // line internal/php7/php7.y:2469 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4879,13 +4885,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2483 + // line internal/php7/php7.y:2490 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4893,7 +4900,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2489 + // line internal/php7/php7.y:2496 { yyVAL.list = []ast.Vertex{} @@ -4901,7 +4908,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2498 + // line internal/php7/php7.y:2505 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4917,7 +4924,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2519 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4938,7 +4945,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2538 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4952,7 +4959,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2543 + // line internal/php7/php7.y:2550 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4989,7 +4996,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2580 + // line internal/php7/php7.y:2587 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4997,7 +5004,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2586 + // line internal/php7/php7.y:2593 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5008,7 +5015,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2605 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5022,7 +5029,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2618 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5036,7 +5043,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2623 + // line internal/php7/php7.y:2630 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5050,7 +5057,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2645 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5058,7 +5065,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2644 + // line internal/php7/php7.y:2651 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5066,7 +5073,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2660 { yyVAL.node = yyDollar[1].node @@ -5078,7 +5085,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2670 { yyVAL.node = yyDollar[1].node @@ -5090,7 +5097,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2676 + // line internal/php7/php7.y:2683 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5105,7 +5112,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2692 + // line internal/php7/php7.y:2699 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5123,7 +5130,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2708 + // line internal/php7/php7.y:2715 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5141,7 +5148,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2724 + // line internal/php7/php7.y:2731 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5159,7 +5166,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2747 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5174,7 +5181,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2763 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5190,7 +5197,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2777 { yyVAL.node = yyDollar[1].node @@ -5198,7 +5205,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2786 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5216,7 +5223,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2798 + // line internal/php7/php7.y:2805 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5231,7 +5238,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2811 + // line internal/php7/php7.y:2818 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5246,7 +5253,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2827 + // line internal/php7/php7.y:2834 { yyVAL.list = yyDollar[1].list @@ -5254,7 +5261,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2833 + // line internal/php7/php7.y:2840 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5269,7 +5276,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2849 + // line internal/php7/php7.y:2856 { yyVAL.list = nil @@ -5277,7 +5284,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2862 { yyVAL.list = yyDollar[1].list @@ -5285,7 +5292,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2864 + // line internal/php7/php7.y:2871 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5293,7 +5300,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2877 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5301,7 +5308,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2879 + // line internal/php7/php7.y:2886 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5315,7 +5322,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2891 + // line internal/php7/php7.y:2898 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5329,7 +5336,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2903 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5343,7 +5350,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2922 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5357,7 +5364,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2934 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5371,7 +5378,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2939 + // line internal/php7/php7.y:2946 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5385,7 +5392,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2961 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5396,7 +5403,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2963 + // line internal/php7/php7.y:2970 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5404,7 +5411,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2972 + // line internal/php7/php7.y:2979 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5417,12 +5424,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2996 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5435,13 +5443,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3008 + // line internal/php7/php7.y:3017 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5452,7 +5461,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3026 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5460,7 +5469,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3035 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5477,7 +5486,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3044 + // line internal/php7/php7.y:3053 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5494,7 +5503,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3071 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5505,7 +5514,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3080 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5513,7 +5522,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3089 { yyVAL.node = yyDollar[1].node @@ -5521,7 +5530,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3098 { yyVAL.list = nil @@ -5529,7 +5538,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3104 { yyVAL.list = yyDollar[1].list @@ -5537,7 +5546,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3113 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5548,7 +5557,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3122 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5556,7 +5565,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3131 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5576,7 +5585,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3143 + // line internal/php7/php7.y:3152 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5593,7 +5602,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3158 + // line internal/php7/php7.y:3167 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5607,7 +5616,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3173 + // line internal/php7/php7.y:3182 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5626,7 +5635,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3190 + // line internal/php7/php7.y:3199 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5644,7 +5653,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5659,7 +5668,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3228 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5675,7 +5684,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3233 + // line internal/php7/php7.y:3242 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5689,7 +5698,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3254 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5713,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3267 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5728,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3280 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5743,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3293 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5749,7 +5758,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3306 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5773,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3319 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5779,7 +5788,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5803,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3345 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5818,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3358 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5833,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3371 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5848,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3384 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5854,7 +5863,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3397 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5869,7 +5878,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3410 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5893,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3423 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5899,7 +5908,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3427 + // line internal/php7/php7.y:3436 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5913,7 +5922,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3439 + // line internal/php7/php7.y:3448 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5928,7 +5937,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3452 + // line internal/php7/php7.y:3461 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5942,7 +5951,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3473 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5957,7 +5966,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3486 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5972,7 +5981,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3499 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5987,7 +5996,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6002,7 +6011,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3525 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6017,7 +6026,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3538 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6032,7 +6041,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6047,7 +6056,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3564 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6062,7 +6071,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6077,7 +6086,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3590 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6092,7 +6101,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3603 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6107,7 +6116,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3616 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6122,7 +6131,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3629 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6137,7 +6146,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3642 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6152,7 +6161,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3655 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6167,7 +6176,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3668 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6182,7 +6191,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3681 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6197,7 +6206,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3685 + // line internal/php7/php7.y:3694 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6211,7 +6220,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3697 + // line internal/php7/php7.y:3706 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6225,7 +6234,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3709 + // line internal/php7/php7.y:3718 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6239,7 +6248,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3730 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6253,7 +6262,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3742 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6268,7 +6277,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3755 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6283,7 +6292,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3768 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6298,7 +6307,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3772 + // line internal/php7/php7.y:3781 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6314,7 +6323,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3795 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6329,7 +6338,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3808 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6344,7 +6353,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3821 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6359,7 +6368,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3834 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6374,7 +6383,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3847 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6389,7 +6398,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3860 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6404,7 +6413,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3864 + // line internal/php7/php7.y:3873 { yyVAL.node = yyDollar[2].node @@ -6416,7 +6425,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3883 { yyVAL.node = yyDollar[1].node @@ -6424,7 +6433,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3889 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6440,7 +6449,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3894 + // line internal/php7/php7.y:3903 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6456,7 +6465,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3917 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6471,7 +6480,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3930 { yyVAL.node = yyDollar[1].node @@ -6479,7 +6488,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3936 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6494,7 +6503,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3949 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6509,7 +6518,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3962 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6524,7 +6533,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3975 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6539,7 +6548,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3988 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6554,7 +6563,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3992 + // line internal/php7/php7.y:4001 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6569,7 +6578,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4005 + // line internal/php7/php7.y:4014 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6584,7 +6593,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4027 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6613,7 +6622,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4045 + // line internal/php7/php7.y:4054 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6627,7 +6636,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4066 { yyVAL.node = yyDollar[1].node @@ -6635,7 +6644,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6649,7 +6658,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4084 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6663,7 +6672,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4096 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6677,7 +6686,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4099 + // line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6691,7 +6700,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4111 + // line internal/php7/php7.y:4120 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6706,7 +6715,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4124 + // line internal/php7/php7.y:4133 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6720,7 +6729,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4145 { yyVAL.node = yyDollar[1].node @@ -6728,7 +6737,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4151 { yyVAL.node = yyDollar[2].node @@ -6751,7 +6760,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4174 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6788,7 +6797,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4206 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6820,7 +6829,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4237 { yyVAL.str = yylex.(*Parser).Lexer.GetPhpDocComment() yylex.(*Parser).Lexer.SetPhpDocComment("") @@ -6829,19 +6838,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4238 + // line internal/php7/php7.y:4247 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4251 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4249 + // line internal/php7/php7.y:4258 { yyVAL.ClosureUse = nil @@ -6849,7 +6858,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4255 + // line internal/php7/php7.y:4264 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6865,7 +6874,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4272 + // line internal/php7/php7.y:4281 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6876,7 +6885,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6884,7 +6893,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4290 + // line internal/php7/php7.y:4299 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6895,12 +6904,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4314 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6914,12 +6924,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4324 + // line internal/php7/php7.y:4335 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6933,7 +6944,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4347 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6948,7 +6959,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4349 + // line internal/php7/php7.y:4360 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6963,7 +6974,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4362 + // line internal/php7/php7.y:4373 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6977,7 +6988,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4377 + // line internal/php7/php7.y:4388 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6991,7 +7002,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4400 { yyVAL.node = yyDollar[1].node @@ -6999,7 +7010,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4398 + // line internal/php7/php7.y:4409 { yyVAL.node = yyDollar[1].node @@ -7007,7 +7018,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4404 + // line internal/php7/php7.y:4415 { yyVAL.node = yyDollar[1].node @@ -7015,7 +7026,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4424 { yyVAL.node = nil @@ -7023,7 +7034,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4419 + // line internal/php7/php7.y:4430 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7038,7 +7049,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4446 { yyVAL.list = []ast.Vertex{} @@ -7046,7 +7057,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4441 + // line internal/php7/php7.y:4452 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7058,7 +7069,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4451 + // line internal/php7/php7.y:4462 { yyVAL.list = yyDollar[1].list @@ -7066,7 +7077,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4460 + // line internal/php7/php7.y:4471 { yyVAL.node = nil @@ -7074,7 +7085,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4466 + // line internal/php7/php7.y:4477 { yyVAL.node = yyDollar[1].node @@ -7082,7 +7093,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4475 + // line internal/php7/php7.y:4486 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7098,7 +7109,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4489 + // line internal/php7/php7.y:4500 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7113,7 +7124,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4513 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7127,7 +7138,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4528 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7141,7 +7152,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4540 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7155,7 +7166,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4541 + // line internal/php7/php7.y:4552 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7169,7 +7180,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4553 + // line internal/php7/php7.y:4564 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7183,7 +7194,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4565 + // line internal/php7/php7.y:4576 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7197,7 +7208,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4577 + // line internal/php7/php7.y:4588 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7211,7 +7222,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4589 + // line internal/php7/php7.y:4600 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7225,7 +7236,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4601 + // line internal/php7/php7.y:4612 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7239,7 +7250,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4624 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7253,7 +7264,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4636 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7267,7 +7278,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4637 + // line internal/php7/php7.y:4648 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7283,7 +7294,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4662 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7297,7 +7308,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4674 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7311,7 +7322,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4675 + // line internal/php7/php7.y:4686 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7325,7 +7336,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4687 + // line internal/php7/php7.y:4698 { yyVAL.node = yyDollar[1].node @@ -7333,7 +7344,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4693 + // line internal/php7/php7.y:4704 { yyVAL.node = yyDollar[1].node @@ -7341,7 +7352,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4702 + // line internal/php7/php7.y:4713 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7355,7 +7366,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4714 + // line internal/php7/php7.y:4725 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7373,7 +7384,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4730 + // line internal/php7/php7.y:4741 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7391,7 +7402,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4760 { yyVAL.node = yyDollar[1].node @@ -7399,7 +7410,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4755 + // line internal/php7/php7.y:4766 { yyVAL.node = yyDollar[1].node @@ -7407,7 +7418,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4775 { yyVAL.node = nil @@ -7415,7 +7426,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4770 + // line internal/php7/php7.y:4781 { yyVAL.node = yyDollar[1].node @@ -7423,7 +7434,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4779 + // line internal/php7/php7.y:4790 { yyVAL.node = yyDollar[1].node @@ -7431,7 +7442,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4799 { yyVAL.node = yyDollar[1].node @@ -7439,7 +7450,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4794 + // line internal/php7/php7.y:4805 { yyVAL.node = yyDollar[2].node @@ -7451,7 +7462,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4804 + // line internal/php7/php7.y:4815 { yyVAL.node = yyDollar[1].node @@ -7459,7 +7470,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4824 { yyVAL.node = yyDollar[1].node @@ -7467,7 +7478,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4819 + // line internal/php7/php7.y:4830 { yyVAL.node = yyDollar[2].node @@ -7479,7 +7490,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4829 + // line internal/php7/php7.y:4840 { yyVAL.node = yyDollar[1].node @@ -7487,7 +7498,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4838 + // line internal/php7/php7.y:4849 { yyVAL.node = yyDollar[1].node @@ -7495,7 +7506,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4844 + // line internal/php7/php7.y:4855 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7511,7 +7522,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4858 + // line internal/php7/php7.y:4869 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7527,7 +7538,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4872 + // line internal/php7/php7.y:4883 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7543,7 +7554,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4886 + // line internal/php7/php7.y:4897 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7558,7 +7569,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4899 + // line internal/php7/php7.y:4910 { yyVAL.node = yyDollar[1].node @@ -7566,7 +7577,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4919 { yyVAL.node = yyDollar[1].node @@ -7574,7 +7585,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4914 + // line internal/php7/php7.y:4925 { yyVAL.node = yyDollar[1].node @@ -7582,7 +7593,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4920 + // line internal/php7/php7.y:4931 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7597,7 +7608,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4936 + // line internal/php7/php7.y:4947 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7608,12 +7619,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4962 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7630,7 +7642,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4965 + // line internal/php7/php7.y:4977 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7645,7 +7657,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4981 + // line internal/php7/php7.y:4993 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7660,7 +7672,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4994 + // line internal/php7/php7.y:5006 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7675,7 +7687,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5010 + // line internal/php7/php7.y:5022 { yyVAL.node = yyDollar[1].node @@ -7683,7 +7695,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5016 + // line internal/php7/php7.y:5028 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7699,7 +7711,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5030 + // line internal/php7/php7.y:5042 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7715,7 +7727,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5044 + // line internal/php7/php7.y:5056 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7730,7 +7742,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5057 + // line internal/php7/php7.y:5069 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7745,7 +7757,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5070 + // line internal/php7/php7.y:5082 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7760,7 +7772,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5086 + // line internal/php7/php7.y:5098 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7774,7 +7786,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5098 + // line internal/php7/php7.y:5110 { yyVAL.node = yyDollar[2].node @@ -7786,7 +7798,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5108 + // line internal/php7/php7.y:5120 { yyVAL.node = yyDollar[1].node @@ -7794,7 +7806,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5117 + // line internal/php7/php7.y:5129 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7808,7 +7820,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5129 + // line internal/php7/php7.y:5141 { yyVAL.node = yyDollar[2].node @@ -7820,7 +7832,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5139 + // line internal/php7/php7.y:5151 { yyVAL.node = yyDollar[1].node @@ -7828,7 +7840,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5148 + // line internal/php7/php7.y:5160 { yyVAL.list = yyDollar[1].list @@ -7836,7 +7848,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5157 + // line internal/php7/php7.y:5169 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7844,7 +7856,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5163 + // line internal/php7/php7.y:5175 { yyVAL.node = yyDollar[1].node @@ -7852,7 +7864,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5172 + // line internal/php7/php7.y:5184 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7867,7 +7879,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5185 + // line internal/php7/php7.y:5197 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7879,7 +7891,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5198 + // line internal/php7/php7.y:5210 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7894,7 +7906,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5211 + // line internal/php7/php7.y:5223 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7908,7 +7920,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5223 + // line internal/php7/php7.y:5235 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7926,7 +7938,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5239 + // line internal/php7/php7.y:5251 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7942,7 +7954,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5253 + // line internal/php7/php7.y:5265 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7956,7 +7968,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5265 + // line internal/php7/php7.y:5277 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7977,7 +7989,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5284 + // line internal/php7/php7.y:5296 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7996,7 +8008,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5304 + // line internal/php7/php7.y:5316 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8004,7 +8016,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5310 + // line internal/php7/php7.y:5322 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8019,7 +8031,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5323 + // line internal/php7/php7.y:5335 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8027,7 +8039,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5329 + // line internal/php7/php7.y:5341 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8042,7 +8054,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5345 + // line internal/php7/php7.y:5357 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8053,12 +8065,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5359 + // line internal/php7/php7.y:5372 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8070,6 +8083,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) @@ -8077,7 +8091,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5376 + // line internal/php7/php7.y:5390 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8091,6 +8105,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) @@ -8098,7 +8113,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5395 + // line internal/php7/php7.y:5410 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8115,7 +8130,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5410 + // line internal/php7/php7.y:5425 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8134,7 +8149,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5427 + // line internal/php7/php7.y:5442 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8155,7 +8170,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5446 + // line internal/php7/php7.y:5461 { yyVAL.node = yyDollar[2].node @@ -8167,7 +8182,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5459 + // line internal/php7/php7.y:5474 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8181,7 +8196,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5471 + // line internal/php7/php7.y:5486 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8200,7 +8215,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5488 + // line internal/php7/php7.y:5503 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8228,7 +8243,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5514 + // line internal/php7/php7.y:5529 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8239,12 +8254,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5531 + // line internal/php7/php7.y:5547 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8264,7 +8280,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5549 + // line internal/php7/php7.y:5565 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8280,7 +8296,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5563 + // line internal/php7/php7.y:5579 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8294,7 +8310,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5575 + // line internal/php7/php7.y:5591 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8308,7 +8324,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5587 + // line internal/php7/php7.y:5603 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8324,7 +8340,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5601 + // line internal/php7/php7.y:5617 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8338,7 +8354,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5613 + // line internal/php7/php7.y:5629 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8352,7 +8368,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5628 + // line internal/php7/php7.y:5644 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8360,7 +8376,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5634 + // line internal/php7/php7.y:5650 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8371,7 +8387,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5646 + // line internal/php7/php7.y:5662 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 9f08fa4..cd147ff 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1368,6 +1368,7 @@ catch_list: yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Tokens) yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Tokens) yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Tokens) @@ -2172,6 +2173,8 @@ parameter: } yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).addDollarToken(variable) + // normalize if $3 == nil { yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) @@ -2217,6 +2220,8 @@ parameter: yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).addDollarToken(variable) + // normalize if $3 == nil { yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) @@ -2456,6 +2461,7 @@ static_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2472,6 +2478,7 @@ static_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2981,6 +2988,7 @@ property: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2997,6 +3005,7 @@ property: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4297,6 +4306,7 @@ lexical_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4314,6 +4324,7 @@ lexical_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4943,6 +4954,7 @@ simple_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5352,6 +5364,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5367,6 +5380,7 @@ encaps_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) @@ -5386,6 +5400,7 @@ encaps_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments + yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) @@ -5521,6 +5536,7 @@ encaps_var_offset: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 3764cec..0d411e1 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -22867,6 +22867,7 @@ func (lex *Lexer) Lex(lval Lval) int { token.Tokens = lex.Tokens token.Value = lex.data[lex.ts:lex.te] + token.ID = tok lval.Token(token) diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index 5eec481..d9195f2 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -510,6 +510,7 @@ func (lex *Lexer) Lex(lval Lval) int { token.Tokens = lex.Tokens token.Value = lex.data[lex.ts:lex.te] + token.ID = tok lval.Token(token) diff --git a/internal/scanner/token.go b/internal/scanner/token.go index d45a12e..7c07126 100644 --- a/internal/scanner/token.go +++ b/internal/scanner/token.go @@ -6,6 +6,7 @@ import ( // Token value returned by lexer type Token struct { + ID TokenID Value []byte Tokens []token.Token StartLine int diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index f79378c..3029c5c 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -27,7 +27,7 @@ func NewNamespaceResolver() *NamespaceResolver { func (nsr *NamespaceResolver) EnterNode(n ast.Vertex) bool { n.Accept(nsr) - + if !nsr.goDeep { nsr.goDeep = true return false @@ -54,7 +54,7 @@ func (nsr *NamespaceResolver) StmtUseList(n *ast.StmtUseList) { for _, nn := range n.Uses { nsr.AddAlias(useType, nn, nil) } - + nsr.goDeep = false } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 61ed537..607aa9e 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -194,8 +194,8 @@ func TestResolveInstanceCatch(t *testing.T) { nameBC, nameF, }, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, - Stmts: []ast.Vertex{}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Stmts: []ast.Vertex{}, }, }, }, @@ -407,7 +407,7 @@ func TestResolveClassName(t *testing.T) { nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} class := &ast.StmtClass{ - ClassName: &ast.Identifier{Value: []byte("A")}, + ClassName: &ast.Identifier{Value: []byte("A")}, Extends: &ast.StmtClassExtends{ ClassName: nameAB, }, @@ -472,8 +472,8 @@ func TestResolveInterfaceName(t *testing.T) { func TestResolveTraitName(t *testing.T) { traitNode := &ast.StmtTrait{ - TraitName: &ast.Identifier{Value: []byte("A")}, - Stmts: []ast.Vertex{}, + TraitName: &ast.Identifier{Value: []byte("A")}, + Stmts: []ast.Vertex{}, } stxTree := &ast.StmtStmtList{ @@ -498,14 +498,14 @@ func TestResolveFunctionName(t *testing.T) { nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} functionNode := &ast.StmtFunction{ - ReturnsRef: false, - FunctionName: &ast.Identifier{Value: []byte("A")}, + ReturnsRef: false, + FunctionName: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: false, - Variadic: false, - Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + ByRef: false, + Variadic: false, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }, }, ReturnType: &ast.Nullable{Expr: nameBC}, @@ -536,14 +536,14 @@ func TestResolveMethodName(t *testing.T) { nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} methodNode := &ast.StmtClassMethod{ - ReturnsRef: false, - MethodName: &ast.Identifier{Value: []byte("A")}, + ReturnsRef: false, + MethodName: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: false, - Variadic: false, - Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + ByRef: false, + Variadic: false, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }, }, ReturnType: &ast.Nullable{Expr: nameBC}, @@ -569,14 +569,14 @@ func TestResolveClosureName(t *testing.T) { nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} closureNode := &ast.ExprClosure{ - ReturnsRef: false, - Static: false, + ReturnsRef: false, + Static: false, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: false, - Variadic: false, - Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + ByRef: false, + Variadic: false, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }, }, ClosureUse: nil, @@ -600,12 +600,12 @@ func TestResolveConstantsName(t *testing.T) { nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} constantB := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("B")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + ConstantName: &ast.Identifier{Value: []byte("B")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } constantC := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("C")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + ConstantName: &ast.Identifier{Value: []byte("C")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } stxTree := &ast.StmtStmtList{ @@ -644,12 +644,12 @@ func TestResolveNamespaces(t *testing.T) { relativeNameCE := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("E")}}} constantB := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("B")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + ConstantName: &ast.Identifier{Value: []byte("B")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } constantC := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("C")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + ConstantName: &ast.Identifier{Value: []byte("C")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } stxTree := &ast.StmtStmtList{ diff --git a/printer/pretty_printer.go b/pkg/printer/pretty_printer.go similarity index 54% rename from printer/pretty_printer.go rename to pkg/printer/pretty_printer.go index 95de96f..37a1a71 100644 --- a/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -4,15 +4,7 @@ import ( "io" "strings" - "github.com/z7zmey/php-parser/node/stmt" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" + "github.com/z7zmey/php-parser/pkg/ast" ) type PrettyPrinter struct { @@ -30,11 +22,11 @@ func NewPrettyPrinter(w io.Writer, indentStr string) *PrettyPrinter { } } -func (p *PrettyPrinter) Print(n node.Node) { +func (p *PrettyPrinter) Print(n ast.Vertex) { p.printNode(n) } -func (p *PrettyPrinter) joinPrint(glue string, nn []node.Node) { +func (p *PrettyPrinter) joinPrint(glue string, nn []ast.Vertex) { for k, n := range nn { if k > 0 { io.WriteString(p.w, glue) @@ -44,7 +36,7 @@ func (p *PrettyPrinter) joinPrint(glue string, nn []node.Node) { } } -func (p *PrettyPrinter) printNodes(nn []node.Node) { +func (p *PrettyPrinter) printNodes(nn []ast.Vertex) { p.indentDepth++ l := len(nn) - 1 for k, n := range nn { @@ -63,367 +55,367 @@ func (p *PrettyPrinter) printIndent() { } } -func (p *PrettyPrinter) printNode(n node.Node) { +func (p *PrettyPrinter) printNode(n ast.Vertex) { switch n.(type) { // node - case *node.Root: + case *ast.Root: p.printNodeRoot(n) - case *node.Identifier: + case *ast.Identifier: p.printNodeIdentifier(n) - case *node.Parameter: + case *ast.Parameter: p.printNodeParameter(n) - case *node.Nullable: + case *ast.Nullable: p.printNodeNullable(n) - case *node.Argument: + case *ast.Argument: p.printNodeArgument(n) // name - case *name.NamePart: + case *ast.NameNamePart: p.printNameNamePart(n) - case *name.Name: + case *ast.NameName: p.printNameName(n) - case *name.FullyQualified: + case *ast.NameFullyQualified: p.printNameFullyQualified(n) - case *name.Relative: + case *ast.NameRelative: p.printNameRelative(n) // scalar - case *scalar.Lnumber: + case *ast.ScalarLnumber: p.printScalarLNumber(n) - case *scalar.Dnumber: + case *ast.ScalarDnumber: p.printScalarDNumber(n) - case *scalar.String: + case *ast.ScalarString: p.printScalarString(n) - case *scalar.EncapsedStringPart: + case *ast.ScalarEncapsedStringPart: p.printScalarEncapsedStringPart(n) - case *scalar.Encapsed: + case *ast.ScalarEncapsed: p.printScalarEncapsed(n) - case *scalar.Heredoc: + case *ast.ScalarHeredoc: p.printScalarHeredoc(n) - case *scalar.MagicConstant: + case *ast.ScalarMagicConstant: p.printScalarMagicConstant(n) // assign - case *assign.Assign: - p.printAssign(n) - case *assign.Reference: - p.printReference(n) - case *assign.BitwiseAnd: + case *ast.ExprAssign: + p.printAssignAssign(n) + case *ast.ExprAssignReference: + p.printAssignReference(n) + case *ast.ExprAssignBitwiseAnd: p.printAssignBitwiseAnd(n) - case *assign.BitwiseOr: + case *ast.ExprAssignBitwiseOr: p.printAssignBitwiseOr(n) - case *assign.BitwiseXor: + case *ast.ExprAssignBitwiseXor: p.printAssignBitwiseXor(n) - case *assign.Concat: + case *ast.ExprAssignConcat: p.printAssignConcat(n) - case *assign.Div: + case *ast.ExprAssignDiv: p.printAssignDiv(n) - case *assign.Minus: + case *ast.ExprAssignMinus: p.printAssignMinus(n) - case *assign.Mod: + case *ast.ExprAssignMod: p.printAssignMod(n) - case *assign.Mul: + case *ast.ExprAssignMul: p.printAssignMul(n) - case *assign.Plus: + case *ast.ExprAssignPlus: p.printAssignPlus(n) - case *assign.Pow: + case *ast.ExprAssignPow: p.printAssignPow(n) - case *assign.ShiftLeft: + case *ast.ExprAssignShiftLeft: p.printAssignShiftLeft(n) - case *assign.ShiftRight: + case *ast.ExprAssignShiftRight: p.printAssignShiftRight(n) // binary - case *binary.BitwiseAnd: + case *ast.ExprBinaryBitwiseAnd: p.printBinaryBitwiseAnd(n) - case *binary.BitwiseOr: + case *ast.ExprBinaryBitwiseOr: p.printBinaryBitwiseOr(n) - case *binary.BitwiseXor: + case *ast.ExprBinaryBitwiseXor: p.printBinaryBitwiseXor(n) - case *binary.BooleanAnd: + case *ast.ExprBinaryBooleanAnd: p.printBinaryBooleanAnd(n) - case *binary.BooleanOr: + case *ast.ExprBinaryBooleanOr: p.printBinaryBooleanOr(n) - case *binary.Coalesce: + case *ast.ExprBinaryCoalesce: p.printBinaryCoalesce(n) - case *binary.Concat: + case *ast.ExprBinaryConcat: p.printBinaryConcat(n) - case *binary.Div: + case *ast.ExprBinaryDiv: p.printBinaryDiv(n) - case *binary.Equal: + case *ast.ExprBinaryEqual: p.printBinaryEqual(n) - case *binary.GreaterOrEqual: + case *ast.ExprBinaryGreaterOrEqual: p.printBinaryGreaterOrEqual(n) - case *binary.Greater: + case *ast.ExprBinaryGreater: p.printBinaryGreater(n) - case *binary.Identical: + case *ast.ExprBinaryIdentical: p.printBinaryIdentical(n) - case *binary.LogicalAnd: + case *ast.ExprBinaryLogicalAnd: p.printBinaryLogicalAnd(n) - case *binary.LogicalOr: + case *ast.ExprBinaryLogicalOr: p.printBinaryLogicalOr(n) - case *binary.LogicalXor: + case *ast.ExprBinaryLogicalXor: p.printBinaryLogicalXor(n) - case *binary.Minus: + case *ast.ExprBinaryMinus: p.printBinaryMinus(n) - case *binary.Mod: + case *ast.ExprBinaryMod: p.printBinaryMod(n) - case *binary.Mul: + case *ast.ExprBinaryMul: p.printBinaryMul(n) - case *binary.NotEqual: + case *ast.ExprBinaryNotEqual: p.printBinaryNotEqual(n) - case *binary.NotIdentical: + case *ast.ExprBinaryNotIdentical: p.printBinaryNotIdentical(n) - case *binary.Plus: + case *ast.ExprBinaryPlus: p.printBinaryPlus(n) - case *binary.Pow: + case *ast.ExprBinaryPow: p.printBinaryPow(n) - case *binary.ShiftLeft: + case *ast.ExprBinaryShiftLeft: p.printBinaryShiftLeft(n) - case *binary.ShiftRight: + case *ast.ExprBinaryShiftRight: p.printBinaryShiftRight(n) - case *binary.SmallerOrEqual: + case *ast.ExprBinarySmallerOrEqual: p.printBinarySmallerOrEqual(n) - case *binary.Smaller: + case *ast.ExprBinarySmaller: p.printBinarySmaller(n) - case *binary.Spaceship: + case *ast.ExprBinarySpaceship: p.printBinarySpaceship(n) // cast - case *cast.Array: + case *ast.ExprCastArray: p.printArray(n) - case *cast.Bool: + case *ast.ExprCastBool: p.printBool(n) - case *cast.Double: + case *ast.ExprCastDouble: p.printDouble(n) - case *cast.Int: + case *ast.ExprCastInt: p.printInt(n) - case *cast.Object: + case *ast.ExprCastObject: p.printObject(n) - case *cast.String: + case *ast.ExprCastString: p.printString(n) - case *cast.Unset: + case *ast.ExprCastUnset: p.printUnset(n) // expr - case *expr.ArrayDimFetch: + case *ast.ExprArrayDimFetch: p.printExprArrayDimFetch(n) - case *expr.ArrayItem: + case *ast.ExprArrayItem: p.printExprArrayItem(n) - case *expr.Array: + case *ast.ExprArray: p.printExprArray(n) - case *expr.BitwiseNot: + case *ast.ExprBitwiseNot: p.printExprBitwiseNot(n) - case *expr.BooleanNot: + case *ast.ExprBooleanNot: p.printExprBooleanNot(n) - case *expr.ClassConstFetch: + case *ast.ExprClassConstFetch: p.printExprClassConstFetch(n) - case *expr.Clone: + case *ast.ExprClone: p.printExprClone(n) - case *expr.ClosureUse: + case *ast.ExprClosureUse: p.printExprClosureUse(n) - case *expr.Closure: + case *ast.ExprClosure: p.printExprClosure(n) - case *expr.ConstFetch: + case *ast.ExprConstFetch: p.printExprConstFetch(n) - case *expr.Empty: + case *ast.ExprEmpty: p.printExprEmpty(n) - case *expr.ErrorSuppress: + case *ast.ExprErrorSuppress: p.printExprErrorSuppress(n) - case *expr.Eval: + case *ast.ExprEval: p.printExprEval(n) - case *expr.Exit: + case *ast.ExprExit: p.printExprExit(n) - case *expr.FunctionCall: + case *ast.ExprFunctionCall: p.printExprFunctionCall(n) - case *expr.Include: + case *ast.ExprInclude: p.printExprInclude(n) - case *expr.IncludeOnce: + case *ast.ExprIncludeOnce: p.printExprIncludeOnce(n) - case *expr.InstanceOf: + case *ast.ExprInstanceOf: p.printExprInstanceOf(n) - case *expr.Isset: + case *ast.ExprIsset: p.printExprIsset(n) - case *expr.List: + case *ast.ExprList: p.printExprList(n) - case *expr.MethodCall: + case *ast.ExprMethodCall: p.printExprMethodCall(n) - case *expr.New: + case *ast.ExprNew: p.printExprNew(n) - case *expr.PostDec: + case *ast.ExprPostDec: p.printExprPostDec(n) - case *expr.PostInc: + case *ast.ExprPostInc: p.printExprPostInc(n) - case *expr.PreDec: + case *ast.ExprPreDec: p.printExprPreDec(n) - case *expr.PreInc: + case *ast.ExprPreInc: p.printExprPreInc(n) - case *expr.Print: + case *ast.ExprPrint: p.printExprPrint(n) - case *expr.PropertyFetch: + case *ast.ExprPropertyFetch: p.printExprPropertyFetch(n) - case *expr.Reference: + case *ast.ExprReference: p.printExprReference(n) - case *expr.Require: + case *ast.ExprRequire: p.printExprRequire(n) - case *expr.RequireOnce: + case *ast.ExprRequireOnce: p.printExprRequireOnce(n) - case *expr.ShellExec: + case *ast.ExprShellExec: p.printExprShellExec(n) - case *expr.ShortArray: + case *ast.ExprShortArray: p.printExprShortArray(n) - case *expr.ShortList: + case *ast.ExprShortList: p.printExprShortList(n) - case *expr.StaticCall: + case *ast.ExprStaticCall: p.printExprStaticCall(n) - case *expr.StaticPropertyFetch: + case *ast.ExprStaticPropertyFetch: p.printExprStaticPropertyFetch(n) - case *expr.Ternary: + case *ast.ExprTernary: p.printExprTernary(n) - case *expr.UnaryMinus: + case *ast.ExprUnaryMinus: p.printExprUnaryMinus(n) - case *expr.UnaryPlus: + case *ast.ExprUnaryPlus: p.printExprUnaryPlus(n) - case *expr.Variable: + case *ast.ExprVariable: p.printExprVariable(n) - case *expr.YieldFrom: + case *ast.ExprYieldFrom: p.printExprYieldFrom(n) - case *expr.Yield: + case *ast.ExprYield: p.printExprYield(n) // stmt - case *stmt.AltElseIf: + case *ast.StmtAltElseIf: p.printStmtAltElseIf(n) - case *stmt.AltElse: + case *ast.StmtAltElse: p.printStmtAltElse(n) - case *stmt.AltFor: + case *ast.StmtAltFor: p.printStmtAltFor(n) - case *stmt.AltForeach: + case *ast.StmtAltForeach: p.printStmtAltForeach(n) - case *stmt.AltIf: + case *ast.StmtAltIf: p.printStmtAltIf(n) - case *stmt.AltSwitch: + case *ast.StmtAltSwitch: p.printStmtAltSwitch(n) - case *stmt.AltWhile: + case *ast.StmtAltWhile: p.printStmtAltWhile(n) - case *stmt.Break: + case *ast.StmtBreak: p.printStmtBreak(n) - case *stmt.Case: + case *ast.StmtCase: p.printStmtCase(n) - case *stmt.Catch: + case *ast.StmtCatch: p.printStmtCatch(n) - case *stmt.ClassMethod: + case *ast.StmtClassMethod: p.printStmtClassMethod(n) - case *stmt.Class: + case *ast.StmtClass: p.printStmtClass(n) - case *stmt.ClassConstList: + case *ast.StmtClassConstList: p.printStmtClassConstList(n) - case *stmt.Constant: + case *ast.StmtConstant: p.printStmtConstant(n) - case *stmt.Continue: + case *ast.StmtContinue: p.printStmtContinue(n) - case *stmt.Declare: + case *ast.StmtDeclare: p.printStmtDeclare(n) - case *stmt.Default: + case *ast.StmtDefault: p.printStmtDefault(n) - case *stmt.Do: + case *ast.StmtDo: p.printStmtDo(n) - case *stmt.Echo: + case *ast.StmtEcho: p.printStmtEcho(n) - case *stmt.ElseIf: + case *ast.StmtElseIf: p.printStmtElseif(n) - case *stmt.Else: + case *ast.StmtElse: p.printStmtElse(n) - case *stmt.Expression: + case *ast.StmtExpression: p.printStmtExpression(n) - case *stmt.Finally: + case *ast.StmtFinally: p.printStmtFinally(n) - case *stmt.For: + case *ast.StmtFor: p.printStmtFor(n) - case *stmt.Foreach: + case *ast.StmtForeach: p.printStmtForeach(n) - case *stmt.Function: + case *ast.StmtFunction: p.printStmtFunction(n) - case *stmt.Global: + case *ast.StmtGlobal: p.printStmtGlobal(n) - case *stmt.Goto: + case *ast.StmtGoto: p.printStmtGoto(n) - case *stmt.GroupUse: + case *ast.StmtGroupUse: p.printStmtGroupUse(n) - case *stmt.HaltCompiler: + case *ast.StmtHaltCompiler: p.printStmtHaltCompiler(n) - case *stmt.If: + case *ast.StmtIf: p.printStmtIf(n) - case *stmt.InlineHtml: + case *ast.StmtInlineHtml: p.printStmtInlineHTML(n) - case *stmt.Interface: + case *ast.StmtInterface: p.printStmtInterface(n) - case *stmt.Label: + case *ast.StmtLabel: p.printStmtLabel(n) - case *stmt.Namespace: + case *ast.StmtNamespace: p.printStmtNamespace(n) - case *stmt.Nop: + case *ast.StmtNop: p.printStmtNop(n) - case *stmt.PropertyList: + case *ast.StmtPropertyList: p.printStmtPropertyList(n) - case *stmt.Property: + case *ast.StmtProperty: p.printStmtProperty(n) - case *stmt.Return: + case *ast.StmtReturn: p.printStmtReturn(n) - case *stmt.StaticVar: + case *ast.StmtStaticVar: p.printStmtStaticVar(n) - case *stmt.Static: + case *ast.StmtStatic: p.printStmtStatic(n) - case *stmt.StmtList: + case *ast.StmtStmtList: p.printStmtStmtList(n) - case *stmt.Switch: + case *ast.StmtSwitch: p.printStmtSwitch(n) - case *stmt.Throw: + case *ast.StmtThrow: p.printStmtThrow(n) - case *stmt.TraitMethodRef: + case *ast.StmtTraitMethodRef: p.printStmtTraitMethodRef(n) - case *stmt.TraitUseAlias: + case *ast.StmtTraitUseAlias: p.printStmtTraitUseAlias(n) - case *stmt.TraitUsePrecedence: + case *ast.StmtTraitUsePrecedence: p.printStmtTraitUsePrecedence(n) - case *stmt.TraitUse: + case *ast.StmtTraitUse: p.printStmtTraitUse(n) - case *stmt.Trait: + case *ast.StmtTrait: p.printStmtTrait(n) - case *stmt.Try: + case *ast.StmtTry: p.printStmtTry(n) - case *stmt.Unset: + case *ast.StmtUnset: p.printStmtUnset(n) - case *stmt.UseList: + case *ast.StmtUseList: p.printStmtUseList(n) - case *stmt.Use: + case *ast.StmtUse: p.printStmtUse(n) - case *stmt.While: + case *ast.StmtWhile: p.printStmtWhile(n) } } // node -func (p *PrettyPrinter) printNodeRoot(n node.Node) { - v := n.(*node.Root) +func (p *PrettyPrinter) printNodeRoot(n ast.Vertex) { + v := n.(*ast.Root) if len(v.Stmts) > 0 { firstStmt := v.Stmts[0] v.Stmts = v.Stmts[1:] switch fs := firstStmt.(type) { - case *stmt.InlineHtml: - io.WriteString(p.w, fs.Value) + case *ast.StmtInlineHtml: + io.WriteString(p.w, string(fs.Value)) io.WriteString(p.w, " 0 { @@ -506,8 +498,8 @@ func (p *PrettyPrinter) printNameName(n node.Node) { } } -func (p *PrettyPrinter) printNameFullyQualified(n node.Node) { - nn := n.(*name.FullyQualified) +func (p *PrettyPrinter) printNameFullyQualified(n ast.Vertex) { + nn := n.(*ast.NameFullyQualified) for _, part := range nn.Parts { io.WriteString(p.w, "\\") @@ -515,8 +507,8 @@ func (p *PrettyPrinter) printNameFullyQualified(n node.Node) { } } -func (p *PrettyPrinter) printNameRelative(n node.Node) { - nn := n.(*name.Relative) +func (p *PrettyPrinter) printNameRelative(n ast.Vertex) { + nn := n.(*ast.NameRelative) io.WriteString(p.w, "namespace") for _, part := range nn.Parts { @@ -527,34 +519,34 @@ func (p *PrettyPrinter) printNameRelative(n node.Node) { // scalar -func (p *PrettyPrinter) printScalarLNumber(n node.Node) { - v := n.(*scalar.Lnumber).Value +func (p *PrettyPrinter) printScalarLNumber(n ast.Vertex) { + v := string(n.(*ast.ScalarLnumber).Value) io.WriteString(p.w, v) } -func (p *PrettyPrinter) printScalarDNumber(n node.Node) { - v := n.(*scalar.Dnumber).Value +func (p *PrettyPrinter) printScalarDNumber(n ast.Vertex) { + v := string(n.(*ast.ScalarDnumber).Value) io.WriteString(p.w, v) } -func (p *PrettyPrinter) printScalarString(n node.Node) { - v := n.(*scalar.String).Value +func (p *PrettyPrinter) printScalarString(n ast.Vertex) { + v := string(n.(*ast.ScalarString).Value) io.WriteString(p.w, v) } -func (p *PrettyPrinter) printScalarEncapsedStringPart(n node.Node) { - v := n.(*scalar.EncapsedStringPart).Value +func (p *PrettyPrinter) printScalarEncapsedStringPart(n ast.Vertex) { + v := string(n.(*ast.ScalarEncapsedStringPart).Value) io.WriteString(p.w, v) } -func (p *PrettyPrinter) printScalarEncapsed(n node.Node) { - nn := n.(*scalar.Encapsed) +func (p *PrettyPrinter) printScalarEncapsed(n ast.Vertex) { + nn := n.(*ast.ScalarEncapsed) io.WriteString(p.w, "\"") for _, part := range nn.Parts { switch part.(type) { - case *scalar.EncapsedStringPart: + case *ast.ScalarEncapsedStringPart: p.Print(part) default: io.WriteString(p.w, "{") @@ -566,14 +558,14 @@ func (p *PrettyPrinter) printScalarEncapsed(n node.Node) { io.WriteString(p.w, "\"") } -func (p *PrettyPrinter) printScalarHeredoc(n node.Node) { - nn := n.(*scalar.Heredoc) +func (p *PrettyPrinter) printScalarHeredoc(n ast.Vertex) { + nn := n.(*ast.ScalarHeredoc) - io.WriteString(p.w, nn.Label) + io.WriteString(p.w, string(nn.Label)) for _, part := range nn.Parts { switch part.(type) { - case *scalar.EncapsedStringPart: + case *ast.ScalarEncapsedStringPart: p.Print(part) default: io.WriteString(p.w, "{") @@ -582,326 +574,326 @@ func (p *PrettyPrinter) printScalarHeredoc(n node.Node) { } } - io.WriteString(p.w, strings.Trim(nn.Label, "<\"'\n")) + io.WriteString(p.w, strings.Trim(string(nn.Label), "<\"'\n")) } -func (p *PrettyPrinter) printScalarMagicConstant(n node.Node) { - v := n.(*scalar.MagicConstant).Value +func (p *PrettyPrinter) printScalarMagicConstant(n ast.Vertex) { + v := string(n.(*ast.ScalarMagicConstant).Value) io.WriteString(p.w, v) } // Assign -func (p *PrettyPrinter) printAssign(n node.Node) { - nn := n.(*assign.Assign) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignAssign(n ast.Vertex) { + nn := n.(*ast.ExprAssign) + p.Print(nn.Var) io.WriteString(p.w, " = ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printReference(n node.Node) { - nn := n.(*assign.Reference) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignReference(n ast.Vertex) { + nn := n.(*ast.ExprAssignReference) + p.Print(nn.Var) io.WriteString(p.w, " =& ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignBitwiseAnd(n node.Node) { - nn := n.(*assign.BitwiseAnd) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignBitwiseAnd(n ast.Vertex) { + nn := n.(*ast.ExprAssignBitwiseAnd) + p.Print(nn.Var) io.WriteString(p.w, " &= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignBitwiseOr(n node.Node) { - nn := n.(*assign.BitwiseOr) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignBitwiseOr(n ast.Vertex) { + nn := n.(*ast.ExprAssignBitwiseOr) + p.Print(nn.Var) io.WriteString(p.w, " |= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignBitwiseXor(n node.Node) { - nn := n.(*assign.BitwiseXor) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignBitwiseXor(n ast.Vertex) { + nn := n.(*ast.ExprAssignBitwiseXor) + p.Print(nn.Var) io.WriteString(p.w, " ^= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignConcat(n node.Node) { - nn := n.(*assign.Concat) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignConcat(n ast.Vertex) { + nn := n.(*ast.ExprAssignConcat) + p.Print(nn.Var) io.WriteString(p.w, " .= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignDiv(n node.Node) { - nn := n.(*assign.Div) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignDiv(n ast.Vertex) { + nn := n.(*ast.ExprAssignDiv) + p.Print(nn.Var) io.WriteString(p.w, " /= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignMinus(n node.Node) { - nn := n.(*assign.Minus) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignMinus(n ast.Vertex) { + nn := n.(*ast.ExprAssignMinus) + p.Print(nn.Var) io.WriteString(p.w, " -= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignMod(n node.Node) { - nn := n.(*assign.Mod) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignMod(n ast.Vertex) { + nn := n.(*ast.ExprAssignMod) + p.Print(nn.Var) io.WriteString(p.w, " %= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignMul(n node.Node) { - nn := n.(*assign.Mul) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignMul(n ast.Vertex) { + nn := n.(*ast.ExprAssignMul) + p.Print(nn.Var) io.WriteString(p.w, " *= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignPlus(n node.Node) { - nn := n.(*assign.Plus) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignPlus(n ast.Vertex) { + nn := n.(*ast.ExprAssignPlus) + p.Print(nn.Var) io.WriteString(p.w, " += ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignPow(n node.Node) { - nn := n.(*assign.Pow) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignPow(n ast.Vertex) { + nn := n.(*ast.ExprAssignPow) + p.Print(nn.Var) io.WriteString(p.w, " **= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignShiftLeft(n node.Node) { - nn := n.(*assign.ShiftLeft) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignShiftLeft(n ast.Vertex) { + nn := n.(*ast.ExprAssignShiftLeft) + p.Print(nn.Var) io.WriteString(p.w, " <<= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } -func (p *PrettyPrinter) printAssignShiftRight(n node.Node) { - nn := n.(*assign.ShiftRight) - p.Print(nn.Variable) +func (p *PrettyPrinter) printAssignShiftRight(n ast.Vertex) { + nn := n.(*ast.ExprAssignShiftRight) + p.Print(nn.Var) io.WriteString(p.w, " >>= ") - p.Print(nn.Expression) + p.Print(nn.Expr) } // binary -func (p *PrettyPrinter) printBinaryBitwiseAnd(n node.Node) { - nn := n.(*binary.BitwiseAnd) +func (p *PrettyPrinter) printBinaryBitwiseAnd(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBitwiseAnd) p.Print(nn.Left) io.WriteString(p.w, " & ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryBitwiseOr(n node.Node) { - nn := n.(*binary.BitwiseOr) +func (p *PrettyPrinter) printBinaryBitwiseOr(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBitwiseOr) p.Print(nn.Left) io.WriteString(p.w, " | ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryBitwiseXor(n node.Node) { - nn := n.(*binary.BitwiseXor) +func (p *PrettyPrinter) printBinaryBitwiseXor(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBitwiseXor) p.Print(nn.Left) io.WriteString(p.w, " ^ ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryBooleanAnd(n node.Node) { - nn := n.(*binary.BooleanAnd) +func (p *PrettyPrinter) printBinaryBooleanAnd(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBooleanAnd) p.Print(nn.Left) io.WriteString(p.w, " && ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryBooleanOr(n node.Node) { - nn := n.(*binary.BooleanOr) +func (p *PrettyPrinter) printBinaryBooleanOr(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBooleanOr) p.Print(nn.Left) io.WriteString(p.w, " || ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryCoalesce(n node.Node) { - nn := n.(*binary.Coalesce) +func (p *PrettyPrinter) printBinaryCoalesce(n ast.Vertex) { + nn := n.(*ast.ExprBinaryCoalesce) p.Print(nn.Left) io.WriteString(p.w, " ?? ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryConcat(n node.Node) { - nn := n.(*binary.Concat) +func (p *PrettyPrinter) printBinaryConcat(n ast.Vertex) { + nn := n.(*ast.ExprBinaryConcat) p.Print(nn.Left) io.WriteString(p.w, " . ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryDiv(n node.Node) { - nn := n.(*binary.Div) +func (p *PrettyPrinter) printBinaryDiv(n ast.Vertex) { + nn := n.(*ast.ExprBinaryDiv) p.Print(nn.Left) io.WriteString(p.w, " / ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryEqual(n node.Node) { - nn := n.(*binary.Equal) +func (p *PrettyPrinter) printBinaryEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinaryEqual) p.Print(nn.Left) io.WriteString(p.w, " == ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryGreaterOrEqual(n node.Node) { - nn := n.(*binary.GreaterOrEqual) +func (p *PrettyPrinter) printBinaryGreaterOrEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinaryGreaterOrEqual) p.Print(nn.Left) io.WriteString(p.w, " >= ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryGreater(n node.Node) { - nn := n.(*binary.Greater) +func (p *PrettyPrinter) printBinaryGreater(n ast.Vertex) { + nn := n.(*ast.ExprBinaryGreater) p.Print(nn.Left) io.WriteString(p.w, " > ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryIdentical(n node.Node) { - nn := n.(*binary.Identical) +func (p *PrettyPrinter) printBinaryIdentical(n ast.Vertex) { + nn := n.(*ast.ExprBinaryIdentical) p.Print(nn.Left) io.WriteString(p.w, " === ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryLogicalAnd(n node.Node) { - nn := n.(*binary.LogicalAnd) +func (p *PrettyPrinter) printBinaryLogicalAnd(n ast.Vertex) { + nn := n.(*ast.ExprBinaryLogicalAnd) p.Print(nn.Left) io.WriteString(p.w, " and ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryLogicalOr(n node.Node) { - nn := n.(*binary.LogicalOr) +func (p *PrettyPrinter) printBinaryLogicalOr(n ast.Vertex) { + nn := n.(*ast.ExprBinaryLogicalOr) p.Print(nn.Left) io.WriteString(p.w, " or ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryLogicalXor(n node.Node) { - nn := n.(*binary.LogicalXor) +func (p *PrettyPrinter) printBinaryLogicalXor(n ast.Vertex) { + nn := n.(*ast.ExprBinaryLogicalXor) p.Print(nn.Left) io.WriteString(p.w, " xor ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryMinus(n node.Node) { - nn := n.(*binary.Minus) +func (p *PrettyPrinter) printBinaryMinus(n ast.Vertex) { + nn := n.(*ast.ExprBinaryMinus) p.Print(nn.Left) io.WriteString(p.w, " - ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryMod(n node.Node) { - nn := n.(*binary.Mod) +func (p *PrettyPrinter) printBinaryMod(n ast.Vertex) { + nn := n.(*ast.ExprBinaryMod) p.Print(nn.Left) io.WriteString(p.w, " % ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryMul(n node.Node) { - nn := n.(*binary.Mul) +func (p *PrettyPrinter) printBinaryMul(n ast.Vertex) { + nn := n.(*ast.ExprBinaryMul) p.Print(nn.Left) io.WriteString(p.w, " * ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryNotEqual(n node.Node) { - nn := n.(*binary.NotEqual) +func (p *PrettyPrinter) printBinaryNotEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinaryNotEqual) p.Print(nn.Left) io.WriteString(p.w, " != ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryNotIdentical(n node.Node) { - nn := n.(*binary.NotIdentical) +func (p *PrettyPrinter) printBinaryNotIdentical(n ast.Vertex) { + nn := n.(*ast.ExprBinaryNotIdentical) p.Print(nn.Left) io.WriteString(p.w, " !== ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryPlus(n node.Node) { - nn := n.(*binary.Plus) +func (p *PrettyPrinter) printBinaryPlus(n ast.Vertex) { + nn := n.(*ast.ExprBinaryPlus) p.Print(nn.Left) io.WriteString(p.w, " + ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryPow(n node.Node) { - nn := n.(*binary.Pow) +func (p *PrettyPrinter) printBinaryPow(n ast.Vertex) { + nn := n.(*ast.ExprBinaryPow) p.Print(nn.Left) io.WriteString(p.w, " ** ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryShiftLeft(n node.Node) { - nn := n.(*binary.ShiftLeft) +func (p *PrettyPrinter) printBinaryShiftLeft(n ast.Vertex) { + nn := n.(*ast.ExprBinaryShiftLeft) p.Print(nn.Left) io.WriteString(p.w, " << ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinaryShiftRight(n node.Node) { - nn := n.(*binary.ShiftRight) +func (p *PrettyPrinter) printBinaryShiftRight(n ast.Vertex) { + nn := n.(*ast.ExprBinaryShiftRight) p.Print(nn.Left) io.WriteString(p.w, " >> ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinarySmallerOrEqual(n node.Node) { - nn := n.(*binary.SmallerOrEqual) +func (p *PrettyPrinter) printBinarySmallerOrEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinarySmallerOrEqual) p.Print(nn.Left) io.WriteString(p.w, " <= ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinarySmaller(n node.Node) { - nn := n.(*binary.Smaller) +func (p *PrettyPrinter) printBinarySmaller(n ast.Vertex) { + nn := n.(*ast.ExprBinarySmaller) p.Print(nn.Left) io.WriteString(p.w, " < ") p.Print(nn.Right) } -func (p *PrettyPrinter) printBinarySpaceship(n node.Node) { - nn := n.(*binary.Spaceship) +func (p *PrettyPrinter) printBinarySpaceship(n ast.Vertex) { + nn := n.(*ast.ExprBinarySpaceship) p.Print(nn.Left) io.WriteString(p.w, " <=> ") @@ -910,50 +902,50 @@ func (p *PrettyPrinter) printBinarySpaceship(n node.Node) { // cast -func (p *PrettyPrinter) printArray(n node.Node) { - nn := n.(*cast.Array) +func (p *PrettyPrinter) printArray(n ast.Vertex) { + nn := n.(*ast.ExprCastArray) io.WriteString(p.w, "(array)") p.Print(nn.Expr) } -func (p *PrettyPrinter) printBool(n node.Node) { - nn := n.(*cast.Bool) +func (p *PrettyPrinter) printBool(n ast.Vertex) { + nn := n.(*ast.ExprCastBool) io.WriteString(p.w, "(bool)") p.Print(nn.Expr) } -func (p *PrettyPrinter) printDouble(n node.Node) { - nn := n.(*cast.Double) +func (p *PrettyPrinter) printDouble(n ast.Vertex) { + nn := n.(*ast.ExprCastDouble) io.WriteString(p.w, "(float)") p.Print(nn.Expr) } -func (p *PrettyPrinter) printInt(n node.Node) { - nn := n.(*cast.Int) +func (p *PrettyPrinter) printInt(n ast.Vertex) { + nn := n.(*ast.ExprCastInt) io.WriteString(p.w, "(int)") p.Print(nn.Expr) } -func (p *PrettyPrinter) printObject(n node.Node) { - nn := n.(*cast.Object) +func (p *PrettyPrinter) printObject(n ast.Vertex) { + nn := n.(*ast.ExprCastObject) io.WriteString(p.w, "(object)") p.Print(nn.Expr) } -func (p *PrettyPrinter) printString(n node.Node) { - nn := n.(*cast.String) +func (p *PrettyPrinter) printString(n ast.Vertex) { + nn := n.(*ast.ExprCastString) io.WriteString(p.w, "(string)") p.Print(nn.Expr) } -func (p *PrettyPrinter) printUnset(n node.Node) { - nn := n.(*cast.Unset) +func (p *PrettyPrinter) printUnset(n ast.Vertex) { + nn := n.(*ast.ExprCastUnset) io.WriteString(p.w, "(unset)") p.Print(nn.Expr) @@ -961,16 +953,16 @@ func (p *PrettyPrinter) printUnset(n node.Node) { // expr -func (p *PrettyPrinter) printExprArrayDimFetch(n node.Node) { - nn := n.(*expr.ArrayDimFetch) - p.Print(nn.Variable) +func (p *PrettyPrinter) printExprArrayDimFetch(n ast.Vertex) { + nn := n.(*ast.ExprArrayDimFetch) + p.Print(nn.Var) io.WriteString(p.w, "[") p.Print(nn.Dim) io.WriteString(p.w, "]") } -func (p *PrettyPrinter) printExprArrayItem(n node.Node) { - nn := n.(*expr.ArrayItem) +func (p *PrettyPrinter) printExprArrayItem(n ast.Vertex) { + nn := n.(*ast.ExprArrayItem) if nn.Key != nil { p.Print(nn.Key) @@ -980,51 +972,51 @@ func (p *PrettyPrinter) printExprArrayItem(n node.Node) { p.Print(nn.Val) } -func (p *PrettyPrinter) printExprArray(n node.Node) { - nn := n.(*expr.Array) +func (p *PrettyPrinter) printExprArray(n ast.Vertex) { + nn := n.(*ast.ExprArray) io.WriteString(p.w, "array(") p.joinPrint(", ", nn.Items) io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprBitwiseNot(n node.Node) { - nn := n.(*expr.BitwiseNot) +func (p *PrettyPrinter) printExprBitwiseNot(n ast.Vertex) { + nn := n.(*ast.ExprBitwiseNot) io.WriteString(p.w, "~") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprBooleanNot(n node.Node) { - nn := n.(*expr.BooleanNot) +func (p *PrettyPrinter) printExprBooleanNot(n ast.Vertex) { + nn := n.(*ast.ExprBooleanNot) io.WriteString(p.w, "!") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprClassConstFetch(n node.Node) { - nn := n.(*expr.ClassConstFetch) +func (p *PrettyPrinter) printExprClassConstFetch(n ast.Vertex) { + nn := n.(*ast.ExprClassConstFetch) p.Print(nn.Class) io.WriteString(p.w, "::") - io.WriteString(p.w, nn.ConstantName.(*node.Identifier).Value) + io.WriteString(p.w, string(nn.ConstantName.(*ast.Identifier).Value)) } -func (p *PrettyPrinter) printExprClone(n node.Node) { - nn := n.(*expr.Clone) +func (p *PrettyPrinter) printExprClone(n ast.Vertex) { + nn := n.(*ast.ExprClone) io.WriteString(p.w, "clone ") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprClosureUse(n node.Node) { - nn := n.(*expr.ClosureUse) +func (p *PrettyPrinter) printExprClosureUse(n ast.Vertex) { + nn := n.(*ast.ExprClosureUse) io.WriteString(p.w, "use (") p.joinPrint(", ", nn.Uses) io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprClosure(n node.Node) { - nn := n.(*expr.Closure) +func (p *PrettyPrinter) printExprClosure(n ast.Vertex) { + nn := n.(*ast.ExprClosure) if nn.Static { io.WriteString(p.w, "static ") @@ -1057,37 +1049,37 @@ func (p *PrettyPrinter) printExprClosure(n node.Node) { io.WriteString(p.w, "}") } -func (p *PrettyPrinter) printExprConstFetch(n node.Node) { - nn := n.(*expr.ConstFetch) +func (p *PrettyPrinter) printExprConstFetch(n ast.Vertex) { + nn := n.(*ast.ExprConstFetch) - p.Print(nn.Constant) + p.Print(nn.Const) } -func (p *PrettyPrinter) printExprEmpty(n node.Node) { - nn := n.(*expr.Empty) +func (p *PrettyPrinter) printExprEmpty(n ast.Vertex) { + nn := n.(*ast.ExprEmpty) io.WriteString(p.w, "empty(") p.Print(nn.Expr) io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprErrorSuppress(n node.Node) { - nn := n.(*expr.ErrorSuppress) +func (p *PrettyPrinter) printExprErrorSuppress(n ast.Vertex) { + nn := n.(*ast.ExprErrorSuppress) io.WriteString(p.w, "@") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprEval(n node.Node) { - nn := n.(*expr.Eval) +func (p *PrettyPrinter) printExprEval(n ast.Vertex) { + nn := n.(*ast.ExprEval) io.WriteString(p.w, "eval(") p.Print(nn.Expr) io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprExit(n node.Node) { - nn := n.(*expr.Exit) +func (p *PrettyPrinter) printExprExit(n ast.Vertex) { + nn := n.(*ast.ExprExit) if nn.Die { io.WriteString(p.w, "die(") @@ -1098,8 +1090,8 @@ func (p *PrettyPrinter) printExprExit(n node.Node) { io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprFunctionCall(n node.Node) { - nn := n.(*expr.FunctionCall) +func (p *PrettyPrinter) printExprFunctionCall(n ast.Vertex) { + nn := n.(*ast.ExprFunctionCall) p.Print(nn.Function) io.WriteString(p.w, "(") @@ -1107,48 +1099,48 @@ func (p *PrettyPrinter) printExprFunctionCall(n node.Node) { io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprInclude(n node.Node) { - nn := n.(*expr.Include) +func (p *PrettyPrinter) printExprInclude(n ast.Vertex) { + nn := n.(*ast.ExprInclude) io.WriteString(p.w, "include ") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprIncludeOnce(n node.Node) { - nn := n.(*expr.IncludeOnce) +func (p *PrettyPrinter) printExprIncludeOnce(n ast.Vertex) { + nn := n.(*ast.ExprIncludeOnce) io.WriteString(p.w, "include_once ") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprInstanceOf(n node.Node) { - nn := n.(*expr.InstanceOf) +func (p *PrettyPrinter) printExprInstanceOf(n ast.Vertex) { + nn := n.(*ast.ExprInstanceOf) p.Print(nn.Expr) io.WriteString(p.w, " instanceof ") p.Print(nn.Class) } -func (p *PrettyPrinter) printExprIsset(n node.Node) { - nn := n.(*expr.Isset) +func (p *PrettyPrinter) printExprIsset(n ast.Vertex) { + nn := n.(*ast.ExprIsset) io.WriteString(p.w, "isset(") - p.joinPrint(", ", nn.Variables) + p.joinPrint(", ", nn.Vars) io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprList(n node.Node) { - nn := n.(*expr.List) +func (p *PrettyPrinter) printExprList(n ast.Vertex) { + nn := n.(*ast.ExprList) io.WriteString(p.w, "list(") p.joinPrint(", ", nn.Items) io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprMethodCall(n node.Node) { - nn := n.(*expr.MethodCall) +func (p *PrettyPrinter) printExprMethodCall(n ast.Vertex) { + nn := n.(*ast.ExprMethodCall) - p.Print(nn.Variable) + p.Print(nn.Var) io.WriteString(p.w, "->") p.Print(nn.Method) io.WriteString(p.w, "(") @@ -1156,8 +1148,8 @@ func (p *PrettyPrinter) printExprMethodCall(n node.Node) { io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprNew(n node.Node) { - nn := n.(*expr.New) +func (p *PrettyPrinter) printExprNew(n ast.Vertex) { + nn := n.(*ast.ExprNew) io.WriteString(p.w, "new ") p.Print(nn.Class) @@ -1169,78 +1161,78 @@ func (p *PrettyPrinter) printExprNew(n node.Node) { } } -func (p *PrettyPrinter) printExprPostDec(n node.Node) { - nn := n.(*expr.PostDec) +func (p *PrettyPrinter) printExprPostDec(n ast.Vertex) { + nn := n.(*ast.ExprPostDec) - p.Print(nn.Variable) + p.Print(nn.Var) io.WriteString(p.w, "--") } -func (p *PrettyPrinter) printExprPostInc(n node.Node) { - nn := n.(*expr.PostInc) +func (p *PrettyPrinter) printExprPostInc(n ast.Vertex) { + nn := n.(*ast.ExprPostInc) - p.Print(nn.Variable) + p.Print(nn.Var) io.WriteString(p.w, "++") } -func (p *PrettyPrinter) printExprPreDec(n node.Node) { - nn := n.(*expr.PreDec) +func (p *PrettyPrinter) printExprPreDec(n ast.Vertex) { + nn := n.(*ast.ExprPreDec) io.WriteString(p.w, "--") - p.Print(nn.Variable) + p.Print(nn.Var) } -func (p *PrettyPrinter) printExprPreInc(n node.Node) { - nn := n.(*expr.PreInc) +func (p *PrettyPrinter) printExprPreInc(n ast.Vertex) { + nn := n.(*ast.ExprPreInc) io.WriteString(p.w, "++") - p.Print(nn.Variable) + p.Print(nn.Var) } -func (p *PrettyPrinter) printExprPrint(n node.Node) { - nn := n.(*expr.Print) +func (p *PrettyPrinter) printExprPrint(n ast.Vertex) { + nn := n.(*ast.ExprPrint) io.WriteString(p.w, "print(") p.Print(nn.Expr) io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprPropertyFetch(n node.Node) { - nn := n.(*expr.PropertyFetch) +func (p *PrettyPrinter) printExprPropertyFetch(n ast.Vertex) { + nn := n.(*ast.ExprPropertyFetch) - p.Print(nn.Variable) + p.Print(nn.Var) io.WriteString(p.w, "->") p.Print(nn.Property) } -func (p *PrettyPrinter) printExprReference(n node.Node) { - nn := n.(*expr.Reference) +func (p *PrettyPrinter) printExprReference(n ast.Vertex) { + nn := n.(*ast.ExprReference) io.WriteString(p.w, "&") - p.Print(nn.Variable) + p.Print(nn.Var) } -func (p *PrettyPrinter) printExprRequire(n node.Node) { - nn := n.(*expr.Require) +func (p *PrettyPrinter) printExprRequire(n ast.Vertex) { + nn := n.(*ast.ExprRequire) io.WriteString(p.w, "require ") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprRequireOnce(n node.Node) { - nn := n.(*expr.RequireOnce) +func (p *PrettyPrinter) printExprRequireOnce(n ast.Vertex) { + nn := n.(*ast.ExprRequireOnce) io.WriteString(p.w, "require_once ") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprShellExec(n node.Node) { - nn := n.(*expr.ShellExec) +func (p *PrettyPrinter) printExprShellExec(n ast.Vertex) { + nn := n.(*ast.ExprShellExec) io.WriteString(p.w, "`") for _, part := range nn.Parts { switch part.(type) { - case *scalar.EncapsedStringPart: + case *ast.ScalarEncapsedStringPart: p.Print(part) default: io.WriteString(p.w, "{") @@ -1251,24 +1243,24 @@ func (p *PrettyPrinter) printExprShellExec(n node.Node) { io.WriteString(p.w, "`") } -func (p *PrettyPrinter) printExprShortArray(n node.Node) { - nn := n.(*expr.ShortArray) +func (p *PrettyPrinter) printExprShortArray(n ast.Vertex) { + nn := n.(*ast.ExprShortArray) io.WriteString(p.w, "[") p.joinPrint(", ", nn.Items) io.WriteString(p.w, "]") } -func (p *PrettyPrinter) printExprShortList(n node.Node) { - nn := n.(*expr.ShortList) +func (p *PrettyPrinter) printExprShortList(n ast.Vertex) { + nn := n.(*ast.ExprShortList) io.WriteString(p.w, "[") p.joinPrint(", ", nn.Items) io.WriteString(p.w, "]") } -func (p *PrettyPrinter) printExprStaticCall(n node.Node) { - nn := n.(*expr.StaticCall) +func (p *PrettyPrinter) printExprStaticCall(n ast.Vertex) { + nn := n.(*ast.ExprStaticCall) p.Print(nn.Class) io.WriteString(p.w, "::") @@ -1278,16 +1270,16 @@ func (p *PrettyPrinter) printExprStaticCall(n node.Node) { io.WriteString(p.w, ")") } -func (p *PrettyPrinter) printExprStaticPropertyFetch(n node.Node) { - nn := n.(*expr.StaticPropertyFetch) +func (p *PrettyPrinter) printExprStaticPropertyFetch(n ast.Vertex) { + nn := n.(*ast.ExprStaticPropertyFetch) p.Print(nn.Class) io.WriteString(p.w, "::") p.Print(nn.Property) } -func (p *PrettyPrinter) printExprTernary(n node.Node) { - nn := n.(*expr.Ternary) +func (p *PrettyPrinter) printExprTernary(n ast.Vertex) { + nn := n.(*ast.ExprTernary) p.Print(nn.Condition) io.WriteString(p.w, " ?") @@ -1302,35 +1294,35 @@ func (p *PrettyPrinter) printExprTernary(n node.Node) { p.Print(nn.IfFalse) } -func (p *PrettyPrinter) printExprUnaryMinus(n node.Node) { - nn := n.(*expr.UnaryMinus) +func (p *PrettyPrinter) printExprUnaryMinus(n ast.Vertex) { + nn := n.(*ast.ExprUnaryMinus) io.WriteString(p.w, "-") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprUnaryPlus(n node.Node) { - nn := n.(*expr.UnaryPlus) +func (p *PrettyPrinter) printExprUnaryPlus(n ast.Vertex) { + nn := n.(*ast.ExprUnaryPlus) io.WriteString(p.w, "+") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprVariable(n node.Node) { - nn := n.(*expr.Variable) +func (p *PrettyPrinter) printExprVariable(n ast.Vertex) { + nn := n.(*ast.ExprVariable) io.WriteString(p.w, "$") p.Print(nn.VarName) } -func (p *PrettyPrinter) printExprYieldFrom(n node.Node) { - nn := n.(*expr.YieldFrom) +func (p *PrettyPrinter) printExprYieldFrom(n ast.Vertex) { + nn := n.(*ast.ExprYieldFrom) io.WriteString(p.w, "yield from ") p.Print(nn.Expr) } -func (p *PrettyPrinter) printExprYield(n node.Node) { - nn := n.(*expr.Yield) +func (p *PrettyPrinter) printExprYield(n ast.Vertex) { + nn := n.(*ast.ExprYield) io.WriteString(p.w, "yield ") @@ -1344,32 +1336,32 @@ func (p *PrettyPrinter) printExprYield(n node.Node) { // smtm -func (p *PrettyPrinter) printStmtAltElseIf(n node.Node) { - nn := n.(*stmt.AltElseIf) +func (p *PrettyPrinter) printStmtAltElseIf(n ast.Vertex) { + nn := n.(*ast.StmtAltElseIf) io.WriteString(p.w, "elseif (") p.Print(nn.Cond) io.WriteString(p.w, ") :") - if s := nn.Stmt.(*stmt.StmtList).Stmts; len(s) > 0 { + if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { io.WriteString(p.w, "\n") p.printNodes(s) } } -func (p *PrettyPrinter) printStmtAltElse(n node.Node) { - nn := n.(*stmt.AltElse) +func (p *PrettyPrinter) printStmtAltElse(n ast.Vertex) { + nn := n.(*ast.StmtAltElse) io.WriteString(p.w, "else :") - if s := nn.Stmt.(*stmt.StmtList).Stmts; len(s) > 0 { + if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { io.WriteString(p.w, "\n") p.printNodes(s) } } -func (p *PrettyPrinter) printStmtAltFor(n node.Node) { - nn := n.(*stmt.AltFor) +func (p *PrettyPrinter) printStmtAltFor(n ast.Vertex) { + nn := n.(*ast.StmtAltFor) io.WriteString(p.w, "for (") p.joinPrint(", ", nn.Init) @@ -1379,7 +1371,7 @@ func (p *PrettyPrinter) printStmtAltFor(n node.Node) { p.joinPrint(", ", nn.Loop) io.WriteString(p.w, ") :\n") - s := nn.Stmt.(*stmt.StmtList) + s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) io.WriteString(p.w, "\n") p.printIndent() @@ -1387,8 +1379,8 @@ func (p *PrettyPrinter) printStmtAltFor(n node.Node) { io.WriteString(p.w, "endfor;") } -func (p *PrettyPrinter) printStmtAltForeach(n node.Node) { - nn := n.(*stmt.AltForeach) +func (p *PrettyPrinter) printStmtAltForeach(n ast.Vertex) { + nn := n.(*ast.StmtAltForeach) io.WriteString(p.w, "foreach (") p.Print(nn.Expr) @@ -1399,11 +1391,11 @@ func (p *PrettyPrinter) printStmtAltForeach(n node.Node) { io.WriteString(p.w, " => ") } - p.Print(nn.Variable) + p.Print(nn.Var) io.WriteString(p.w, ") :\n") - s := nn.Stmt.(*stmt.StmtList) + s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) io.WriteString(p.w, "\n") @@ -1411,14 +1403,14 @@ func (p *PrettyPrinter) printStmtAltForeach(n node.Node) { io.WriteString(p.w, "endforeach;") } -func (p *PrettyPrinter) printStmtAltIf(n node.Node) { - nn := n.(*stmt.AltIf) +func (p *PrettyPrinter) printStmtAltIf(n ast.Vertex) { + nn := n.(*ast.StmtAltIf) io.WriteString(p.w, "if (") p.Print(nn.Cond) io.WriteString(p.w, ") :\n") - s := nn.Stmt.(*stmt.StmtList) + s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) for _, elseif := range nn.ElseIf { @@ -1438,8 +1430,8 @@ func (p *PrettyPrinter) printStmtAltIf(n node.Node) { io.WriteString(p.w, "endif;") } -func (p *PrettyPrinter) printStmtAltSwitch(n node.Node) { - nn := n.(*stmt.AltSwitch) +func (p *PrettyPrinter) printStmtAltSwitch(n ast.Vertex) { + nn := n.(*ast.StmtAltSwitch) io.WriteString(p.w, "switch (") p.Print(nn.Cond) @@ -1453,14 +1445,14 @@ func (p *PrettyPrinter) printStmtAltSwitch(n node.Node) { io.WriteString(p.w, "endswitch;") } -func (p *PrettyPrinter) printStmtAltWhile(n node.Node) { - nn := n.(*stmt.AltWhile) +func (p *PrettyPrinter) printStmtAltWhile(n ast.Vertex) { + nn := n.(*ast.StmtAltWhile) io.WriteString(p.w, "while (") p.Print(nn.Cond) io.WriteString(p.w, ") :\n") - s := nn.Stmt.(*stmt.StmtList) + s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) io.WriteString(p.w, "\n") @@ -1468,8 +1460,8 @@ func (p *PrettyPrinter) printStmtAltWhile(n node.Node) { io.WriteString(p.w, "endwhile;") } -func (p *PrettyPrinter) printStmtBreak(n node.Node) { - nn := n.(*stmt.Break) +func (p *PrettyPrinter) printStmtBreak(n ast.Vertex) { + nn := n.(*ast.StmtBreak) io.WriteString(p.w, "break") if nn.Expr != nil { @@ -1480,8 +1472,8 @@ func (p *PrettyPrinter) printStmtBreak(n node.Node) { io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtCase(n node.Node) { - nn := n.(*stmt.Case) +func (p *PrettyPrinter) printStmtCase(n ast.Vertex) { + nn := n.(*ast.StmtCase) io.WriteString(p.w, "case ") p.Print(nn.Cond) @@ -1493,13 +1485,13 @@ func (p *PrettyPrinter) printStmtCase(n node.Node) { } } -func (p *PrettyPrinter) printStmtCatch(n node.Node) { - nn := n.(*stmt.Catch) +func (p *PrettyPrinter) printStmtCatch(n ast.Vertex) { + nn := n.(*ast.StmtCatch) io.WriteString(p.w, "catch (") p.joinPrint(" | ", nn.Types) io.WriteString(p.w, " ") - p.Print(nn.Variable) + p.Print(nn.Var) io.WriteString(p.w, ") {\n") p.printNodes(nn.Stmts) io.WriteString(p.w, "\n") @@ -1507,8 +1499,8 @@ func (p *PrettyPrinter) printStmtCatch(n node.Node) { io.WriteString(p.w, "}") } -func (p *PrettyPrinter) printStmtClassMethod(n node.Node) { - nn := n.(*stmt.ClassMethod) +func (p *PrettyPrinter) printStmtClassMethod(n ast.Vertex) { + nn := n.(*ast.StmtClassMethod) if nn.Modifiers != nil { p.joinPrint(" ", nn.Modifiers) @@ -1531,7 +1523,7 @@ func (p *PrettyPrinter) printStmtClassMethod(n node.Node) { } switch s := nn.Stmt.(type) { - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, "\n") p.printIndent() io.WriteString(p.w, "{\n") @@ -1544,8 +1536,8 @@ func (p *PrettyPrinter) printStmtClassMethod(n node.Node) { } } -func (p *PrettyPrinter) printStmtClass(n node.Node) { - nn := n.(*stmt.Class) +func (p *PrettyPrinter) printStmtClass(n ast.Vertex) { + nn := n.(*ast.StmtClass) if nn.Modifiers != nil { p.joinPrint(" ", nn.Modifiers) @@ -1583,8 +1575,8 @@ func (p *PrettyPrinter) printStmtClass(n node.Node) { io.WriteString(p.w, "}") } -func (p *PrettyPrinter) printStmtClassConstList(n node.Node) { - nn := n.(*stmt.ClassConstList) +func (p *PrettyPrinter) printStmtClassConstList(n ast.Vertex) { + nn := n.(*ast.StmtClassConstList) if nn.Modifiers != nil { p.joinPrint(" ", nn.Modifiers) @@ -1597,16 +1589,16 @@ func (p *PrettyPrinter) printStmtClassConstList(n node.Node) { io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtConstant(n node.Node) { - nn := n.(*stmt.Constant) +func (p *PrettyPrinter) printStmtConstant(n ast.Vertex) { + nn := n.(*ast.StmtConstant) p.Print(nn.ConstantName) io.WriteString(p.w, " = ") p.Print(nn.Expr) } -func (p *PrettyPrinter) printStmtContinue(n node.Node) { - nn := n.(*stmt.Continue) +func (p *PrettyPrinter) printStmtContinue(n ast.Vertex) { + nn := n.(*ast.StmtContinue) io.WriteString(p.w, "continue") if nn.Expr != nil { @@ -1617,18 +1609,18 @@ func (p *PrettyPrinter) printStmtContinue(n node.Node) { io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtDeclare(n node.Node) { - nn := n.(*stmt.Declare) +func (p *PrettyPrinter) printStmtDeclare(n ast.Vertex) { + nn := n.(*ast.StmtDeclare) io.WriteString(p.w, "declare(") p.joinPrint(", ", nn.Consts) io.WriteString(p.w, ")") switch s := nn.Stmt.(type) { - case *stmt.Nop: + case *ast.StmtNop: p.Print(s) break - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, " ") p.Print(s) default: @@ -1640,8 +1632,8 @@ func (p *PrettyPrinter) printStmtDeclare(n node.Node) { } } -func (p *PrettyPrinter) printStmtDefault(n node.Node) { - nn := n.(*stmt.Default) +func (p *PrettyPrinter) printStmtDefault(n ast.Vertex) { + nn := n.(*ast.StmtDefault) io.WriteString(p.w, "default:") if len(nn.Stmts) > 0 { @@ -1650,12 +1642,12 @@ func (p *PrettyPrinter) printStmtDefault(n node.Node) { } } -func (p *PrettyPrinter) printStmtDo(n node.Node) { - nn := n.(*stmt.Do) +func (p *PrettyPrinter) printStmtDo(n ast.Vertex) { + nn := n.(*ast.StmtDo) io.WriteString(p.w, "do") switch s := nn.Stmt.(type) { - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, " ") p.Print(s) io.WriteString(p.w, " ") @@ -1674,25 +1666,25 @@ func (p *PrettyPrinter) printStmtDo(n node.Node) { io.WriteString(p.w, ");") } -func (p *PrettyPrinter) printStmtEcho(n node.Node) { - nn := n.(*stmt.Echo) +func (p *PrettyPrinter) printStmtEcho(n ast.Vertex) { + nn := n.(*ast.StmtEcho) io.WriteString(p.w, "echo ") p.joinPrint(", ", nn.Exprs) io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtElseif(n node.Node) { - nn := n.(*stmt.ElseIf) +func (p *PrettyPrinter) printStmtElseif(n ast.Vertex) { + nn := n.(*ast.StmtElseIf) io.WriteString(p.w, "elseif (") p.Print(nn.Cond) io.WriteString(p.w, ")") switch s := nn.Stmt.(type) { - case *stmt.Nop: + case *ast.StmtNop: p.Print(s) break - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, " ") p.Print(s) default: @@ -1704,16 +1696,16 @@ func (p *PrettyPrinter) printStmtElseif(n node.Node) { } } -func (p *PrettyPrinter) printStmtElse(n node.Node) { - nn := n.(*stmt.Else) +func (p *PrettyPrinter) printStmtElse(n ast.Vertex) { + nn := n.(*ast.StmtElse) io.WriteString(p.w, "else") switch s := nn.Stmt.(type) { - case *stmt.Nop: + case *ast.StmtNop: p.Print(s) break - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, " ") p.Print(s) default: @@ -1725,16 +1717,16 @@ func (p *PrettyPrinter) printStmtElse(n node.Node) { } } -func (p *PrettyPrinter) printStmtExpression(n node.Node) { - nn := n.(*stmt.Expression) +func (p *PrettyPrinter) printStmtExpression(n ast.Vertex) { + nn := n.(*ast.StmtExpression) p.Print(nn.Expr) io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtFinally(n node.Node) { - nn := n.(*stmt.Finally) +func (p *PrettyPrinter) printStmtFinally(n ast.Vertex) { + nn := n.(*ast.StmtFinally) io.WriteString(p.w, "finally {\n") p.printNodes(nn.Stmts) @@ -1743,8 +1735,8 @@ func (p *PrettyPrinter) printStmtFinally(n node.Node) { io.WriteString(p.w, "}") } -func (p *PrettyPrinter) printStmtFor(n node.Node) { - nn := n.(*stmt.For) +func (p *PrettyPrinter) printStmtFor(n ast.Vertex) { + nn := n.(*ast.StmtFor) io.WriteString(p.w, "for (") p.joinPrint(", ", nn.Init) @@ -1755,10 +1747,10 @@ func (p *PrettyPrinter) printStmtFor(n node.Node) { io.WriteString(p.w, ")") switch s := nn.Stmt.(type) { - case *stmt.Nop: + case *ast.StmtNop: p.Print(s) break - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, " ") p.Print(s) default: @@ -1770,8 +1762,8 @@ func (p *PrettyPrinter) printStmtFor(n node.Node) { } } -func (p *PrettyPrinter) printStmtForeach(n node.Node) { - nn := n.(*stmt.Foreach) +func (p *PrettyPrinter) printStmtForeach(n ast.Vertex) { + nn := n.(*ast.StmtForeach) io.WriteString(p.w, "foreach (") p.Print(nn.Expr) @@ -1782,14 +1774,14 @@ func (p *PrettyPrinter) printStmtForeach(n node.Node) { io.WriteString(p.w, " => ") } - p.Print(nn.Variable) + p.Print(nn.Var) io.WriteString(p.w, ")") switch s := nn.Stmt.(type) { - case *stmt.Nop: + case *ast.StmtNop: p.Print(s) break - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, " ") p.Print(s) default: @@ -1801,8 +1793,8 @@ func (p *PrettyPrinter) printStmtForeach(n node.Node) { } } -func (p *PrettyPrinter) printStmtFunction(n node.Node) { - nn := n.(*stmt.Function) +func (p *PrettyPrinter) printStmtFunction(n ast.Vertex) { + nn := n.(*ast.StmtFunction) io.WriteString(p.w, "function ") @@ -1828,24 +1820,24 @@ func (p *PrettyPrinter) printStmtFunction(n node.Node) { io.WriteString(p.w, "}") } -func (p *PrettyPrinter) printStmtGlobal(n node.Node) { - nn := n.(*stmt.Global) +func (p *PrettyPrinter) printStmtGlobal(n ast.Vertex) { + nn := n.(*ast.StmtGlobal) io.WriteString(p.w, "global ") p.joinPrint(", ", nn.Vars) io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtGoto(n node.Node) { - nn := n.(*stmt.Goto) +func (p *PrettyPrinter) printStmtGoto(n ast.Vertex) { + nn := n.(*ast.StmtGoto) io.WriteString(p.w, "goto ") p.Print(nn.Label) io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtGroupUse(n node.Node) { - nn := n.(*stmt.GroupUse) +func (p *PrettyPrinter) printStmtGroupUse(n ast.Vertex) { + nn := n.(*ast.StmtGroupUse) io.WriteString(p.w, "use ") @@ -1860,22 +1852,22 @@ func (p *PrettyPrinter) printStmtGroupUse(n node.Node) { io.WriteString(p.w, "};") } -func (p *PrettyPrinter) printStmtHaltCompiler(n node.Node) { +func (p *PrettyPrinter) printStmtHaltCompiler(n ast.Vertex) { io.WriteString(p.w, "__halt_compiler();") } -func (p *PrettyPrinter) printStmtIf(n node.Node) { - nn := n.(*stmt.If) +func (p *PrettyPrinter) printStmtIf(n ast.Vertex) { + nn := n.(*ast.StmtIf) io.WriteString(p.w, "if (") p.Print(nn.Cond) io.WriteString(p.w, ")") switch s := nn.Stmt.(type) { - case *stmt.Nop: + case *ast.StmtNop: p.Print(s) break - case *stmt.StmtList: + case *ast.StmtStmtList: io.WriteString(p.w, " ") p.Print(s) default: @@ -1900,16 +1892,16 @@ func (p *PrettyPrinter) printStmtIf(n node.Node) { } } -func (p *PrettyPrinter) printStmtInlineHTML(n node.Node) { - nn := n.(*stmt.InlineHtml) +func (p *PrettyPrinter) printStmtInlineHTML(n ast.Vertex) { + nn := n.(*ast.StmtInlineHtml) io.WriteString(p.w, "?>") - io.WriteString(p.w, nn.Value) + io.WriteString(p.w, string(nn.Value)) io.WriteString(p.w, "HTML"}, - &stmt.Expression{ - Expr: &scalar.Heredoc{ - Label: "<<<\"LBL\"\n", - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "hello world\n"}, + p.Print(&ast.Root{ + Stmts: []ast.Vertex{ + &ast.StmtInlineHtml{Value: []byte("
HTML
")}, + &ast.StmtExpression{ + Expr: &ast.ScalarHeredoc{ + Label: []byte("<<<\"LBL\"\n"), + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{Value: []byte("hello world\n")}, }, }, }, @@ -114,7 +107,7 @@ func TestPrintIdentifier(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&node.Identifier{Value: "test"}) + p.Print(&ast.Identifier{Value: []byte("test")}) if o.String() != `test` { t.Errorf("TestPrintIdentifier is failed\n") @@ -125,12 +118,12 @@ func TestPrintParameter(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&node.Parameter{ + p.Print(&ast.Parameter{ ByRef: false, Variadic: true, - VariableType: &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - DefaultValue: &scalar.String{Value: "'default'"}, + Type: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + DefaultValue: &ast.ScalarString{Value: []byte("'default'")}, }) expected := "\\Foo ...$var = 'default'" @@ -145,13 +138,13 @@ func TestPrintNullable(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&node.Nullable{ - Expr: &node.Parameter{ + p.Print(&ast.Nullable{ + Expr: &ast.Parameter{ ByRef: false, Variadic: true, - VariableType: &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - DefaultValue: &scalar.String{Value: "'default'"}, + Type: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + DefaultValue: &ast.ScalarString{Value: []byte("'default'")}, }, }) @@ -167,10 +160,10 @@ func TestPrintArgument(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&node.Argument{ + p.Print(&ast.Argument{ IsReference: false, Variadic: true, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := "...$var" @@ -184,10 +177,10 @@ func TestPrintArgumentByRef(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&node.Argument{ + p.Print(&ast.Argument{ IsReference: true, Variadic: false, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := "&$var" @@ -204,8 +197,8 @@ func TestPrintNameNamePart(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&name.NamePart{ - Value: "foo", + p.Print(&ast.NameNamePart{ + Value: []byte("foo"), }) expected := "foo" @@ -220,13 +213,13 @@ func TestPrintNameName(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&name.Name{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + p.Print(&ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, - &name.NamePart{ - Value: "Bar", + &ast.NameNamePart{ + Value: []byte("Bar"), }, }, }) @@ -243,13 +236,13 @@ func TestPrintNameFullyQualified(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + p.Print(&ast.NameFullyQualified{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, - &name.NamePart{ - Value: "Bar", + &ast.NameNamePart{ + Value: []byte("Bar"), }, }, }) @@ -266,13 +259,13 @@ func TestPrintNameRelative(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&name.Relative{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + p.Print(&ast.NameRelative{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, - &name.NamePart{ - Value: "Bar", + &ast.NameNamePart{ + Value: []byte("Bar"), }, }, }) @@ -291,7 +284,7 @@ func TestPrintScalarLNumber(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&scalar.Lnumber{Value: "1"}) + p.Print(&ast.ScalarLnumber{Value: []byte("1")}) if o.String() != `1` { t.Errorf("TestPrintScalarLNumber is failed\n") @@ -302,7 +295,7 @@ func TestPrintScalarDNumber(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&scalar.Dnumber{Value: ".1"}) + p.Print(&ast.ScalarDnumber{Value: []byte(".1")}) if o.String() != `.1` { t.Errorf("TestPrintScalarDNumber is failed\n") @@ -313,7 +306,7 @@ func TestPrintScalarString(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&scalar.String{Value: "'hello world'"}) + p.Print(&ast.ScalarString{Value: []byte("'hello world'")}) expected := `'hello world'` actual := o.String() @@ -327,7 +320,7 @@ func TestPrintScalarEncapsedStringPart(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&scalar.EncapsedStringPart{Value: "hello world"}) + p.Print(&ast.ScalarEncapsedStringPart{Value: []byte("hello world")}) if o.String() != `hello world` { t.Errorf("TestPrintScalarEncapsedStringPart is failed\n") @@ -338,11 +331,11 @@ func TestPrintScalarEncapsed(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "hello "}, - &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - &scalar.EncapsedStringPart{Value: " world"}, + p.Print(&ast.ScalarEncapsed{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + &ast.ScalarEncapsedStringPart{Value: []byte(" world")}, }, }) @@ -355,12 +348,12 @@ func TestPrintScalarHeredoc(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&scalar.Heredoc{ - Label: "<<>= $b` @@ -652,9 +645,9 @@ func TestPrintBinaryBitwiseAnd(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.BitwiseAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryBitwiseAnd{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a & $b` @@ -669,9 +662,9 @@ func TestPrintBinaryBitwiseOr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.BitwiseOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryBitwiseOr{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a | $b` @@ -686,9 +679,9 @@ func TestPrintBinaryBitwiseXor(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.BitwiseXor{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryBitwiseXor{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a ^ $b` @@ -703,9 +696,9 @@ func TestPrintBinaryBooleanAnd(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.BooleanAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryBooleanAnd{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a && $b` @@ -720,9 +713,9 @@ func TestPrintBinaryBooleanOr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.BooleanOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryBooleanOr{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a || $b` @@ -737,9 +730,9 @@ func TestPrintBinaryCoalesce(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Coalesce{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryCoalesce{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a ?? $b` @@ -754,9 +747,9 @@ func TestPrintBinaryConcat(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Concat{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryConcat{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a . $b` @@ -771,9 +764,9 @@ func TestPrintBinaryDiv(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Div{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryDiv{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a / $b` @@ -788,9 +781,9 @@ func TestPrintBinaryEqual(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Equal{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryEqual{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a == $b` @@ -805,9 +798,9 @@ func TestPrintBinaryGreaterOrEqual(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.GreaterOrEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryGreaterOrEqual{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a >= $b` @@ -822,9 +815,9 @@ func TestPrintBinaryGreater(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Greater{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryGreater{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a > $b` @@ -839,9 +832,9 @@ func TestPrintBinaryIdentical(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Identical{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryIdentical{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a === $b` @@ -856,9 +849,9 @@ func TestPrintBinaryLogicalAnd(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.LogicalAnd{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryLogicalAnd{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a and $b` @@ -873,9 +866,9 @@ func TestPrintBinaryLogicalOr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.LogicalOr{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryLogicalOr{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a or $b` @@ -890,9 +883,9 @@ func TestPrintBinaryLogicalXor(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.LogicalXor{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryLogicalXor{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a xor $b` @@ -907,9 +900,9 @@ func TestPrintBinaryMinus(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Minus{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryMinus{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a - $b` @@ -924,9 +917,9 @@ func TestPrintBinaryMod(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Mod{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryMod{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a % $b` @@ -941,9 +934,9 @@ func TestPrintBinaryMul(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Mul{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryMul{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a * $b` @@ -958,9 +951,9 @@ func TestPrintBinaryNotEqual(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.NotEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryNotEqual{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a != $b` @@ -975,9 +968,9 @@ func TestPrintBinaryNotIdentical(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.NotIdentical{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryNotIdentical{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a !== $b` @@ -992,9 +985,9 @@ func TestPrintBinaryPlus(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Plus{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryPlus{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a + $b` @@ -1009,9 +1002,9 @@ func TestPrintBinaryPow(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Pow{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryPow{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a ** $b` @@ -1026,9 +1019,9 @@ func TestPrintBinaryShiftLeft(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.ShiftLeft{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryShiftLeft{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a << $b` @@ -1043,9 +1036,9 @@ func TestPrintBinaryShiftRight(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.ShiftRight{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinaryShiftRight{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a >> $b` @@ -1060,9 +1053,9 @@ func TestPrintBinarySmallerOrEqual(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.SmallerOrEqual{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinarySmallerOrEqual{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a <= $b` @@ -1077,9 +1070,9 @@ func TestPrintBinarySmaller(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Smaller{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinarySmaller{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a < $b` @@ -1094,9 +1087,9 @@ func TestPrintBinarySpaceship(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&binary.Spaceship{ - Left: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Right: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprBinarySpaceship{ + Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a <=> $b` @@ -1113,8 +1106,8 @@ func TestPrintArray(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&cast.Array{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprCastArray{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `(array)$var` @@ -1129,8 +1122,8 @@ func TestPrintBool(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&cast.Bool{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprCastBool{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `(bool)$var` @@ -1145,8 +1138,8 @@ func TestPrintDouble(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&cast.Double{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprCastDouble{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `(float)$var` @@ -1161,8 +1154,8 @@ func TestPrintInt(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&cast.Int{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprCastInt{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `(int)$var` @@ -1177,8 +1170,8 @@ func TestPrintObject(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&cast.Object{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprCastObject{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `(object)$var` @@ -1193,8 +1186,8 @@ func TestPrintString(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&cast.String{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprCastString{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `(string)$var` @@ -1209,8 +1202,8 @@ func TestPrintUnset(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&cast.Unset{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprCastUnset{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `(unset)$var` @@ -1227,9 +1220,9 @@ func TestPrintExprArrayDimFetch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ArrayDimFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Dim: &scalar.Lnumber{Value: "1"}, + p.Print(&ast.ExprArrayDimFetch{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + Dim: &ast.ScalarLnumber{Value: []byte("1")}, }) expected := `$var[1]` @@ -1244,9 +1237,9 @@ func TestPrintExprArrayItemWithKey(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ArrayItem{ - Key: &scalar.String{Value: "'Hello'"}, - Val: &expr.Variable{VarName: &node.Identifier{Value: "world"}}, + p.Print(&ast.ExprArrayItem{ + Key: &ast.ScalarString{Value: []byte("'Hello'")}, + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, }) expected := `'Hello' => $world` @@ -1261,8 +1254,8 @@ func TestPrintExprArrayItem(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ArrayItem{ - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "world"}}}, + p.Print(&ast.ExprArrayItem{ + Val: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}}, }) expected := `&$world` @@ -1277,18 +1270,18 @@ func TestPrintExprArray(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Array{ - Items: []node.Node{ - &expr.ArrayItem{ - Key: &scalar.String{Value: "'Hello'"}, - Val: &expr.Variable{VarName: &node.Identifier{Value: "world"}}, + p.Print(&ast.ExprArray{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Key: &ast.ScalarString{Value: []byte("'Hello'")}, + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, }, - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "2"}, - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}, + &ast.ExprArrayItem{ + Key: &ast.ScalarLnumber{Value: []byte("2")}, + Val: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, }, - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }, }, }) @@ -1305,8 +1298,8 @@ func TestPrintExprBitwiseNot(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.BitwiseNot{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprBitwiseNot{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `~$var` @@ -1321,8 +1314,8 @@ func TestPrintExprBooleanNot(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.BooleanNot{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprBooleanNot{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `!$var` @@ -1337,9 +1330,9 @@ func TestPrintExprClassConstFetch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ClassConstFetch{ - Class: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - ConstantName: &node.Identifier{Value: "CONST"}, + p.Print(&ast.ExprClassConstFetch{ + Class: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + ConstantName: &ast.Identifier{Value: []byte("CONST")}, }) expected := `$var::CONST` @@ -1354,8 +1347,8 @@ func TestPrintExprClone(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Clone{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprClone{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `clone $var` @@ -1370,10 +1363,10 @@ func TestPrintExprClosureUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ClosureUse{ - Uses: []node.Node{ - &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}}, - &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + p.Print(&ast.ExprClosureUse{ + Uses: []ast.Vertex{ + &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("bar")}}, }, }) @@ -1389,27 +1382,27 @@ func TestPrintExprClosure(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &expr.Closure{ + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.ExprClosure{ Static: true, ReturnsRef: true, - Params: []node.Node{ - &node.Parameter{ + Params: []ast.Vertex{ + &ast.Parameter{ ByRef: true, Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }, }, - ClosureUse: &expr.ClosureUse{ - Uses: []node.Node{ - &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + ClosureUse: &ast.ExprClosureUse{ + Uses: []ast.Vertex{ + &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, - ReturnType: &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + ReturnType: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, }, }, @@ -1431,8 +1424,8 @@ func TestPrintExprConstFetch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ConstFetch{ - Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}, + p.Print(&ast.ExprConstFetch{ + Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}, }) expected := "null" @@ -1447,7 +1440,7 @@ func TestPrintEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Empty{Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}) + p.Print(&ast.ExprEmpty{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) expected := `empty($var)` actual := o.String() @@ -1461,7 +1454,7 @@ func TestPrettyPrinterrorSuppress(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ErrorSuppress{Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}) + p.Print(&ast.ExprErrorSuppress{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) expected := `@$var` actual := o.String() @@ -1475,7 +1468,7 @@ func TestPrintEval(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Eval{Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}) + p.Print(&ast.ExprEval{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) expected := `eval($var)` actual := o.String() @@ -1489,7 +1482,7 @@ func TestPrintExit(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Exit{Die: false, Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}) + p.Print(&ast.ExprExit{Die: false, Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) expected := `exit($var)` actual := o.String() @@ -1503,7 +1496,7 @@ func TestPrintDie(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Exit{Die: true, Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}) + p.Print(&ast.ExprExit{Die: true, Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) expected := `die($var)` actual := o.String() @@ -1517,20 +1510,20 @@ func TestPrintFunctionCall(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.FunctionCall{ - Function: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ + p.Print(&ast.ExprFunctionCall{ + Function: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + ArgumentList: &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{ IsReference: true, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - &node.Argument{ + &ast.Argument{ Variadic: true, - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, }, }, }, @@ -1548,7 +1541,7 @@ func TestPrintInclude(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Include{Expr: &scalar.String{Value: "'path'"}}) + p.Print(&ast.ExprInclude{Expr: &ast.ScalarString{Value: []byte("'path'")}}) expected := `include 'path'` actual := o.String() @@ -1562,7 +1555,7 @@ func TestPrintIncludeOnce(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.IncludeOnce{Expr: &scalar.String{Value: "'path'"}}) + p.Print(&ast.ExprIncludeOnce{Expr: &ast.ScalarString{Value: []byte("'path'")}}) expected := `include_once 'path'` actual := o.String() @@ -1576,9 +1569,9 @@ func TestPrintInstanceOf(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.InstanceOf{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, + p.Print(&ast.ExprInstanceOf{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + Class: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, }) expected := `$var instanceof Foo` @@ -1593,10 +1586,10 @@ func TestPrintIsset(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Isset{ - Variables: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprIsset{ + Vars: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }) @@ -1612,19 +1605,19 @@ func TestPrintList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.ExprList{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - &expr.ArrayItem{ - Val: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &ast.ExprArrayItem{ + Val: &ast.ExprList{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, }, }, }, @@ -1644,16 +1637,16 @@ func TestPrintMethodCall(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.MethodCall{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Method: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.ExprMethodCall{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Method: &ast.Identifier{Value: []byte("bar")}, + ArgumentList: &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, }, @@ -1671,15 +1664,15 @@ func TestPrintNew(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.New{ - Class: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.ExprNew{ + Class: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + ArgumentList: &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, }, @@ -1697,8 +1690,8 @@ func TestPrintPostDec(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.PostDec{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprPostDec{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `$var--` @@ -1713,8 +1706,8 @@ func TestPrintPostInc(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.PostInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprPostInc{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `$var++` @@ -1729,8 +1722,8 @@ func TestPrintPreDec(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.PreDec{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprPreDec{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `--$var` @@ -1745,8 +1738,8 @@ func TestPrintPreInc(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.PreInc{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprPreInc{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `++$var` @@ -1761,7 +1754,7 @@ func TestPrintPrint(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Print{Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}) + p.Print(&ast.ExprPrint{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) expected := `print($var)` actual := o.String() @@ -1775,9 +1768,9 @@ func TestPrintPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.PropertyFetch{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, - Property: &node.Identifier{Value: "bar"}, + p.Print(&ast.ExprPropertyFetch{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Property: &ast.Identifier{Value: []byte("bar")}, }) expected := `$foo->bar` @@ -1792,8 +1785,8 @@ func TestPrintExprReference(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Reference{ - Variable: &expr.Variable{VarName: &node.Identifier{Value: "foo"}}, + p.Print(&ast.ExprReference{ + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }) expected := `&$foo` @@ -1808,7 +1801,7 @@ func TestPrintRequire(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Require{Expr: &scalar.String{Value: "'path'"}}) + p.Print(&ast.ExprRequire{Expr: &ast.ScalarString{Value: []byte("'path'")}}) expected := `require 'path'` actual := o.String() @@ -1822,7 +1815,7 @@ func TestPrintRequireOnce(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.RequireOnce{Expr: &scalar.String{Value: "'path'"}}) + p.Print(&ast.ExprRequireOnce{Expr: &ast.ScalarString{Value: []byte("'path'")}}) expected := `require_once 'path'` actual := o.String() @@ -1836,11 +1829,11 @@ func TestPrintShellExec(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ShellExec{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "hello "}, - &expr.Variable{VarName: &node.Identifier{Value: "world"}}, - &scalar.EncapsedStringPart{Value: "!"}, + p.Print(&ast.ExprShellExec{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, + &ast.ScalarEncapsedStringPart{Value: []byte("!")}, }, }) @@ -1856,18 +1849,18 @@ func TestPrintExprShortArray(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Key: &scalar.String{Value: "'Hello'"}, - Val: &expr.Variable{VarName: &node.Identifier{Value: "world"}}, + p.Print(&ast.ExprShortArray{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Key: &ast.ScalarString{Value: []byte("'Hello'")}, + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, }, - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "2"}, - Val: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}, + &ast.ExprArrayItem{ + Key: &ast.ScalarLnumber{Value: []byte("2")}, + Val: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, }, - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }, }, }) @@ -1884,19 +1877,19 @@ func TestPrintShortList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.ShortList{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.ExprShortList{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - &expr.ArrayItem{ - Val: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &ast.ExprArrayItem{ + Val: &ast.ExprList{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - &expr.ArrayItem{ - Val: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, }, }, }, @@ -1916,16 +1909,16 @@ func TestPrintStaticCall(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.StaticCall{ - Class: &node.Identifier{Value: "Foo"}, - Call: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.ExprStaticCall{ + Class: &ast.Identifier{Value: []byte("Foo")}, + Call: &ast.Identifier{Value: []byte("bar")}, + ArgumentList: &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, }, @@ -1943,9 +1936,9 @@ func TestPrintStaticPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.StaticPropertyFetch{ - Class: &node.Identifier{Value: "Foo"}, - Property: &expr.Variable{VarName: &node.Identifier{Value: "bar"}}, + p.Print(&ast.ExprStaticPropertyFetch{ + Class: &ast.Identifier{Value: []byte("Foo")}, + Property: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("bar")}}, }) expected := `Foo::$bar` @@ -1960,9 +1953,9 @@ func TestPrintTernary(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.ExprTernary{ + Condition: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + IfFalse: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }) expected := `$a ?: $b` @@ -1977,10 +1970,10 @@ func TestPrintTernaryFull(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Ternary{ - Condition: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - IfTrue: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - IfFalse: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + p.Print(&ast.ExprTernary{ + Condition: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + IfTrue: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, + IfFalse: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, }) expected := `$a ? $b : $c` @@ -1995,8 +1988,8 @@ func TestPrintUnaryMinus(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.UnaryMinus{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprUnaryMinus{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `-$var` @@ -2011,8 +2004,8 @@ func TestPrintUnaryPlus(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.UnaryPlus{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprUnaryPlus{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `+$var` @@ -2027,7 +2020,7 @@ func TestPrintVariable(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Variable{VarName: &expr.Variable{VarName: &node.Identifier{Value: "var"}}}) + p.Print(&ast.ExprVariable{VarName: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) expected := `$$var` actual := o.String() @@ -2041,8 +2034,8 @@ func TestPrintYieldFrom(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.YieldFrom{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprYieldFrom{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `yield from $var` @@ -2057,8 +2050,8 @@ func TestPrintYield(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Yield{ - Value: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprYield{ + Value: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `yield $var` @@ -2073,9 +2066,9 @@ func TestPrintYieldFull(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&expr.Yield{ - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Value: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + p.Print(&ast.ExprYield{ + Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("k")}}, + Value: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }) expected := `yield $k => $var` @@ -2092,11 +2085,11 @@ func TestPrintAltElseIf(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + p.Print(&ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }) @@ -2114,9 +2107,9 @@ func TestPrintAltElseIfEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{}, + p.Print(&ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtStmtList{}, }) expected := `elseif ($a) :` @@ -2131,10 +2124,10 @@ func TestPrintAltElse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.AltElse{ - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + p.Print(&ast.StmtAltElse{ + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }) @@ -2152,8 +2145,8 @@ func TestPrintAltElseEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.AltElse{ - Stmt: &stmt.StmtList{}, + p.Print(&ast.StmtAltElse{ + Stmt: &ast.StmtStmtList{}, }) expected := `else :` @@ -2168,21 +2161,21 @@ func TestPrintAltFor(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.AltFor{ - Init: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtAltFor{ + Init: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - Cond: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Cond: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - Loop: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Loop: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}}, }, }, }, @@ -2205,15 +2198,15 @@ func TestPrintAltForeach(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.AltForeach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "key"}}, - Variable: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "val"}}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtAltForeach{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("key")}}, + Var: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("val")}}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}}, }, }, }, @@ -2236,33 +2229,33 @@ func TestPrintAltIf(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.AltIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtAltIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}}, }, }, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + ElseIf: []ast.Vertex{ + &ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }, - &stmt.AltElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{}, + &ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, + Stmt: &ast.StmtStmtList{}, }, }, - Else: &stmt.AltElse{ - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + Else: &ast.StmtAltElse{ + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }, @@ -2291,22 +2284,22 @@ func TestPrintStmtAltSwitch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.AltSwitch{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, - CaseList: &stmt.CaseList{ - Cases: []node.Node{ - &stmt.Case{ - Cond: &scalar.String{Value: "'a'"}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtAltSwitch{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + CaseList: &ast.StmtCaseList{ + Cases: []ast.Vertex{ + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'a'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, }, - &stmt.Case{ - Cond: &scalar.String{Value: "'b'"}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'b'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }, @@ -2334,13 +2327,13 @@ func TestPrintAltWhile(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.AltWhile{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtAltWhile{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }, @@ -2363,8 +2356,8 @@ func TestPrintStmtBreak(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Break{ - Expr: &scalar.Lnumber{Value: "1"}, + p.Print(&ast.StmtBreak{ + Expr: &ast.ScalarLnumber{Value: []byte("1")}, }) expected := "break 1;" @@ -2379,10 +2372,10 @@ func TestPrintStmtCase(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Case{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + p.Print(&ast.StmtCase{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, }) @@ -2399,9 +2392,9 @@ func TestPrintStmtCaseEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Case{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmts: []node.Node{}, + p.Print(&ast.StmtCase{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmts: []ast.Vertex{}, }) expected := "case $a:" @@ -2416,16 +2409,16 @@ func TestPrintStmtCatch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Catch{ - Types: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Exception"}}}, - &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "RuntimeException"}}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtCatch{ + Types: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, + &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("RuntimeException")}}}, }, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("e")}}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, }, }, @@ -2447,26 +2440,26 @@ func TestPrintStmtClassMethod(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.ClassMethod{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, + p.Print(&ast.StmtClassMethod{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, ReturnsRef: true, - MethodName: &node.Identifier{Value: "foo"}, - Params: []node.Node{ - &node.Parameter{ + MethodName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{ + &ast.Parameter{ ByRef: true, - VariableType: &node.Nullable{Expr: &name.Name{Parts: []node.Node{&name.NamePart{Value: "int"}}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, + Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, - &node.Parameter{ + &ast.Parameter{ Variadic: true, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, - ReturnType: &name.Name{Parts: []node.Node{&name.NamePart{Value: "void"}}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + ReturnType: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, }, }) @@ -2485,24 +2478,24 @@ func TestPrintStmtAbstractClassMethod(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.ClassMethod{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, + p.Print(&ast.StmtClassMethod{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, ReturnsRef: true, - MethodName: &node.Identifier{Value: "foo"}, - Params: []node.Node{ - &node.Parameter{ + MethodName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{ + &ast.Parameter{ ByRef: true, - VariableType: &node.Nullable{Expr: &name.Name{Parts: []node.Node{&name.NamePart{Value: "int"}}}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, + Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, - &node.Parameter{ + &ast.Parameter{ Variadic: true, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, - ReturnType: &name.Name{Parts: []node.Node{&name.NamePart{Value: "void"}}}, - Stmt: &stmt.Nop{}, + ReturnType: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}}, + Stmt: &ast.StmtNop{}, }) expected := `public function &foo(?int &$a = null, ...$b): void;` @@ -2517,27 +2510,27 @@ func TestPrintStmtClass(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Class{ - Modifiers: []node.Node{&node.Identifier{Value: "abstract"}}, - ClassName: &node.Identifier{Value: "Foo"}, - Extends: &stmt.ClassExtends{ - ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtClass{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, + ClassName: &ast.Identifier{Value: []byte("Foo")}, + Extends: &ast.StmtClassExtends{ + ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - Implements: &stmt.ClassImplements{ - InterfaceNames: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}}, + Implements: &ast.StmtClassImplements{ + InterfaceNames: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, }, - Stmts: []node.Node{ - &stmt.ClassConstList{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + Stmts: []ast.Vertex{ + &ast.StmtClassConstList{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, }, @@ -2563,36 +2556,36 @@ func TestPrintStmtAnonymousClass(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Class{ - Modifiers: []node.Node{&node.Identifier{Value: "abstract"}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtClass{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, + ArgumentList: &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - &node.Argument{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + &ast.Argument{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, }, - Extends: &stmt.ClassExtends{ - ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, + Extends: &ast.StmtClassExtends{ + ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - Implements: &stmt.ClassImplements{ - InterfaceNames: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}}, + Implements: &ast.StmtClassImplements{ + InterfaceNames: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, }, - Stmts: []node.Node{ - &stmt.ClassConstList{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + Stmts: []ast.Vertex{ + &ast.StmtClassConstList{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, }, @@ -2618,16 +2611,16 @@ func TestPrintStmtClassConstList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.ClassConstList{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'a'"}, + p.Print(&ast.StmtClassConstList{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'a'")}, }, - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.String{Value: "'b'"}, + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("BAR")}, + Expr: &ast.ScalarString{Value: []byte("'b'")}, }, }, }) @@ -2644,9 +2637,9 @@ func TestPrintStmtConstant(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'BAR'"}, + p.Print(&ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'BAR'")}, }) expected := "FOO = 'BAR'" @@ -2661,8 +2654,8 @@ func TestPrintStmtContinue(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Continue{ - Expr: &scalar.Lnumber{Value: "1"}, + p.Print(&ast.StmtContinue{ + Expr: &ast.ScalarLnumber{Value: []byte("1")}, }) expected := `continue 1;` @@ -2677,18 +2670,18 @@ func TestPrintStmtDeclareStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + p.Print(&ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtDeclare{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }, @@ -2711,16 +2704,16 @@ func TestPrintStmtDeclareExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + p.Print(&ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtDeclare{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }, }, }) @@ -2740,14 +2733,14 @@ func TestPrintStmtDeclareNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + p.Print(&ast.StmtDeclare{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, - Stmt: &stmt.Nop{}, + Stmt: &ast.StmtNop{}, }) expected := `declare(FOO = 'bar');` @@ -2762,9 +2755,9 @@ func TestPrintStmtDefalut(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Default{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + p.Print(&ast.StmtDefault{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, }) @@ -2781,8 +2774,8 @@ func TestPrintStmtDefalutEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Default{ - Stmts: []node.Node{}, + p.Print(&ast.StmtDefault{ + Stmts: []ast.Vertex{}, }) expected := `default:` @@ -2797,12 +2790,12 @@ func TestPrintStmtDo_Expression(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Do{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtDo{ + Cond: &ast.ScalarLnumber{Value: []byte("1")}, + Stmt: &ast.StmtExpression{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, }, }, @@ -2824,13 +2817,13 @@ func TestPrintStmtDo_StmtList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Do{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtDo{ + Cond: &ast.ScalarLnumber{Value: []byte("1")}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, }, }, @@ -2853,10 +2846,10 @@ func TestPrintStmtEcho(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Echo{ - Exprs: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }) @@ -2872,11 +2865,11 @@ func TestPrintStmtElseIfStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + p.Print(&ast.StmtElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -2895,9 +2888,9 @@ func TestPrintStmtElseIfExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + p.Print(&ast.StmtElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }) expected := `elseif ($a) @@ -2913,9 +2906,9 @@ func TestPrintStmtElseIfNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.Nop{}, + p.Print(&ast.StmtElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtNop{}, }) expected := `elseif ($a);` @@ -2930,10 +2923,10 @@ func TestPrintStmtElseStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Else{ - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + p.Print(&ast.StmtElse{ + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -2952,8 +2945,8 @@ func TestPrintStmtElseExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Else{ - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + p.Print(&ast.StmtElse{ + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }) expected := `else @@ -2969,8 +2962,8 @@ func TestPrintStmtElseNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Else{ - Stmt: &stmt.Nop{}, + p.Print(&ast.StmtElse{ + Stmt: &ast.StmtNop{}, }) expected := `else;` @@ -2985,7 +2978,7 @@ func TestPrintExpression(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Expression{Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}}) + p.Print(&ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}) expected := `$a;` actual := o.String() @@ -2999,11 +2992,11 @@ func TestPrintStmtFinally(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Finally{ - Stmts: []node.Node{ - &stmt.Nop{}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtFinally{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }, @@ -3025,24 +3018,24 @@ func TestPrintStmtForStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.For{ - Init: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtFor{ + Init: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - Cond: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - &expr.Variable{VarName: &node.Identifier{Value: "d"}}, + Cond: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}, }, - Loop: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - &expr.Variable{VarName: &node.Identifier{Value: "f"}}, + Loop: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("e")}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("f")}}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }, @@ -3065,19 +3058,19 @@ func TestPrintStmtForExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.For{ - Init: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtFor{ + Init: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - Cond: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Cond: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - Loop: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Loop: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, }, - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }, }, }) @@ -3097,17 +3090,17 @@ func TestPrintStmtForNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.For{ - Init: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, + p.Print(&ast.StmtFor{ + Init: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, - Cond: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + Cond: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - Loop: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "c"}}, + Loop: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, }, - Stmt: &stmt.Nop{}, + Stmt: &ast.StmtNop{}, }) expected := `for ($a; $b; $c);` @@ -3122,14 +3115,14 @@ func TestPrintStmtForeachStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }, @@ -3152,13 +3145,13 @@ func TestPrintStmtForeachExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}, - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtForeach{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("k")}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("v")}}, + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }, }, }) @@ -3178,11 +3171,11 @@ func TestPrintStmtForeachNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Foreach{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Key: &expr.Variable{VarName: &node.Identifier{Value: "k"}}, - Variable: &expr.Reference{Variable: &expr.Variable{VarName: &node.Identifier{Value: "v"}}}, - Stmt: &stmt.Nop{}, + p.Print(&ast.StmtForeach{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("k")}}, + Var: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("v")}}}, + Stmt: &ast.StmtNop{}, }) expected := `foreach ($a as $k => &$v);` @@ -3197,21 +3190,21 @@ func TestPrintStmtFunction(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.Function{ + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtFunction{ ReturnsRef: true, - FunctionName: &node.Identifier{Value: "foo"}, - Params: []node.Node{ - &node.Parameter{ + FunctionName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{ + &ast.Parameter{ ByRef: true, Variadic: false, - Variable: &expr.Variable{VarName: &node.Identifier{Value: "var"}}, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, }, }, - ReturnType: &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Stmts: []node.Node{ - &stmt.Nop{}, + ReturnType: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }, @@ -3233,10 +3226,10 @@ func TestPrintStmtGlobal(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Global{ - Vars: []node.Node{ - &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.StmtGlobal{ + Vars: []ast.Vertex{ + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }) @@ -3252,8 +3245,8 @@ func TestPrintStmtGoto(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Goto{ - Label: &node.Identifier{Value: "FOO"}, + p.Print(&ast.StmtGoto{ + Label: &ast.Identifier{Value: []byte("FOO")}, }) expected := `goto FOO;` @@ -3268,16 +3261,16 @@ func TestPrintStmtGroupUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.GroupUse{ - UseType: &node.Identifier{Value: "function"}, - Prefix: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - UseList: []node.Node{ - &stmt.Use{ - Use: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, - Alias: &node.Identifier{Value: "Baz"}, + p.Print(&ast.StmtGroupUse{ + UseType: &ast.Identifier{Value: []byte("function")}, + Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + Alias: &ast.Identifier{Value: []byte("Baz")}, }, - &stmt.Use{ - Use: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}}, + &ast.StmtUse{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, }, }) @@ -3294,7 +3287,7 @@ func TestPrintHaltCompiler(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.HaltCompiler{}) + p.Print(&ast.StmtHaltCompiler{}) expected := `__halt_compiler();` actual := o.String() @@ -3308,32 +3301,32 @@ func TestPrintIfExpression(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtExpression{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "c"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "d"}}, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}, }, }, }, }, - &stmt.ElseIf{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "e"}}, - Stmt: &stmt.Nop{}, + &ast.StmtElseIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("e")}}, + Stmt: &ast.StmtNop{}, }, }, - Else: &stmt.Else{ - Stmt: &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "f"}}, + Else: &ast.StmtElse{ + Stmt: &ast.StmtExpression{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("f")}}, }, }, }, @@ -3361,14 +3354,14 @@ func TestPrintIfStmtList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.Namespace{ - Stmts: []node.Node{ - &stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{ - Expr: &expr.Variable{VarName: &node.Identifier{Value: "b"}}, + p.Print(&ast.StmtNamespace{ + Stmts: []ast.Vertex{ + &ast.StmtIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, }, }, }, @@ -3392,9 +3385,9 @@ func TestPrintIfNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.If{ - Cond: &expr.Variable{VarName: &node.Identifier{Value: "a"}}, - Stmt: &stmt.Nop{}, + p.Print(&ast.StmtIf{ + Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Stmt: &ast.StmtNop{}, }) expected := `if ($a);` @@ -3409,8 +3402,8 @@ func TestPrintInlineHtml(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&stmt.InlineHtml{ - Value: "test", + p.Print(&ast.StmtInlineHtml{ + Value: []byte("test"), }) expected := `?>test 0 { + io.WriteString(p.w, glue) + } + + p.Print(n) + } +} + +func (p *Printer) printNodes(nn []ast.Vertex) { + for _, n := range nn { + p.Print(n) + } +} + +func (p *Printer) printFreeFloating(n ast.Vertex, pos token.Position) { + if n == nil { + return + } + + for _, m := range n.GetNode().Tokens[pos] { + io.WriteString(p.w, string(m.Value)) + } +} + +func (p *Printer) printNode(n ast.Vertex) { + switch n.(type) { + + // node + + case *ast.Root: + p.printNodeRoot(n) + case *ast.Identifier: + p.printNodeIdentifier(n) + case *ast.Parameter: + p.printNodeParameter(n) + case *ast.Nullable: + p.printNodeNullable(n) + case *ast.Argument: + p.printNodeArgument(n) + + // name + + case *ast.NameNamePart: + p.printNameNamePart(n) + case *ast.NameName: + p.printNameName(n) + case *ast.NameFullyQualified: + p.printNameFullyQualified(n) + case *ast.NameRelative: + p.printNameRelative(n) + + // scalar + + case *ast.ScalarLnumber: + p.printScalarLNumber(n) + case *ast.ScalarDnumber: + p.printScalarDNumber(n) + case *ast.ScalarString: + p.printScalarString(n) + case *ast.ScalarEncapsedStringPart: + p.printScalarEncapsedStringPart(n) + case *ast.ScalarEncapsed: + p.printScalarEncapsed(n) + case *ast.ScalarHeredoc: + p.printScalarHeredoc(n) + case *ast.ScalarMagicConstant: + p.printScalarMagicConstant(n) + + // assign + + case *ast.ExprAssign: + p.printAssign(n) + case *ast.ExprAssignReference: + p.printAssignReference(n) + case *ast.ExprAssignBitwiseAnd: + p.printAssignBitwiseAnd(n) + case *ast.ExprAssignBitwiseOr: + p.printAssignBitwiseOr(n) + case *ast.ExprAssignBitwiseXor: + p.printAssignBitwiseXor(n) + case *ast.ExprAssignCoalesce: + p.printAssignCoalesce(n) + case *ast.ExprAssignConcat: + p.printAssignConcat(n) + case *ast.ExprAssignDiv: + p.printAssignDiv(n) + case *ast.ExprAssignMinus: + p.printAssignMinus(n) + case *ast.ExprAssignMod: + p.printAssignMod(n) + case *ast.ExprAssignMul: + p.printAssignMul(n) + case *ast.ExprAssignPlus: + p.printAssignPlus(n) + case *ast.ExprAssignPow: + p.printAssignPow(n) + case *ast.ExprAssignShiftLeft: + p.printAssignShiftLeft(n) + case *ast.ExprAssignShiftRight: + p.printAssignShiftRight(n) + + // binary + + case *ast.ExprBinaryBitwiseAnd: + p.printBinaryBitwiseAnd(n) + case *ast.ExprBinaryBitwiseOr: + p.printBinaryBitwiseOr(n) + case *ast.ExprBinaryBitwiseXor: + p.printBinaryBitwiseXor(n) + case *ast.ExprBinaryBooleanAnd: + p.printBinaryBooleanAnd(n) + case *ast.ExprBinaryBooleanOr: + p.printBinaryBooleanOr(n) + case *ast.ExprBinaryCoalesce: + p.printBinaryCoalesce(n) + case *ast.ExprBinaryConcat: + p.printBinaryConcat(n) + case *ast.ExprBinaryDiv: + p.printBinaryDiv(n) + case *ast.ExprBinaryEqual: + p.printBinaryEqual(n) + case *ast.ExprBinaryGreaterOrEqual: + p.printBinaryGreaterOrEqual(n) + case *ast.ExprBinaryGreater: + p.printBinaryGreater(n) + case *ast.ExprBinaryIdentical: + p.printBinaryIdentical(n) + case *ast.ExprBinaryLogicalAnd: + p.printBinaryLogicalAnd(n) + case *ast.ExprBinaryLogicalOr: + p.printBinaryLogicalOr(n) + case *ast.ExprBinaryLogicalXor: + p.printBinaryLogicalXor(n) + case *ast.ExprBinaryMinus: + p.printBinaryMinus(n) + case *ast.ExprBinaryMod: + p.printBinaryMod(n) + case *ast.ExprBinaryMul: + p.printBinaryMul(n) + case *ast.ExprBinaryNotEqual: + p.printBinaryNotEqual(n) + case *ast.ExprBinaryNotIdentical: + p.printBinaryNotIdentical(n) + case *ast.ExprBinaryPlus: + p.printBinaryPlus(n) + case *ast.ExprBinaryPow: + p.printBinaryPow(n) + case *ast.ExprBinaryShiftLeft: + p.printBinaryShiftLeft(n) + case *ast.ExprBinaryShiftRight: + p.printBinaryShiftRight(n) + case *ast.ExprBinarySmallerOrEqual: + p.printBinarySmallerOrEqual(n) + case *ast.ExprBinarySmaller: + p.printBinarySmaller(n) + case *ast.ExprBinarySpaceship: + p.printBinarySpaceship(n) + + // cast + + case *ast.ExprCastArray: + p.printArray(n) + case *ast.ExprCastBool: + p.printBool(n) + case *ast.ExprCastDouble: + p.printDouble(n) + case *ast.ExprCastInt: + p.printInt(n) + case *ast.ExprCastObject: + p.printObject(n) + case *ast.ExprCastString: + p.printString(n) + case *ast.ExprCastUnset: + p.printUnset(n) + + // expr + + case *ast.ExprArrayDimFetch: + p.printExprArrayDimFetch(n) + case *ast.ExprArrayItem: + p.printExprArrayItem(n) + case *ast.ExprArray: + p.printExprArray(n) + case *ast.ExprArrowFunction: + p.printExprArrowFunction(n) + case *ast.ExprBitwiseNot: + p.printExprBitwiseNot(n) + case *ast.ExprBooleanNot: + p.printExprBooleanNot(n) + case *ast.ExprClassConstFetch: + p.printExprClassConstFetch(n) + case *ast.ExprClone: + p.printExprClone(n) + case *ast.ExprClosureUse: + p.printExprClosureUse(n) + case *ast.ExprClosure: + p.printExprClosure(n) + case *ast.ExprConstFetch: + p.printExprConstFetch(n) + case *ast.ExprEmpty: + p.printExprEmpty(n) + case *ast.ExprErrorSuppress: + p.printExprErrorSuppress(n) + case *ast.ExprEval: + p.printExprEval(n) + case *ast.ExprExit: + p.printExprExit(n) + case *ast.ExprFunctionCall: + p.printExprFunctionCall(n) + case *ast.ExprInclude: + p.printExprInclude(n) + case *ast.ExprIncludeOnce: + p.printExprIncludeOnce(n) + case *ast.ExprInstanceOf: + p.printExprInstanceOf(n) + case *ast.ExprIsset: + p.printExprIsset(n) + case *ast.ExprList: + p.printExprList(n) + case *ast.ExprMethodCall: + p.printExprMethodCall(n) + case *ast.ExprNew: + p.printExprNew(n) + case *ast.ExprPostDec: + p.printExprPostDec(n) + case *ast.ExprPostInc: + p.printExprPostInc(n) + case *ast.ExprPreDec: + p.printExprPreDec(n) + case *ast.ExprPreInc: + p.printExprPreInc(n) + case *ast.ExprPrint: + p.printExprPrint(n) + case *ast.ExprPropertyFetch: + p.printExprPropertyFetch(n) + case *ast.ExprReference: + p.printExprReference(n) + case *ast.ExprRequire: + p.printExprRequire(n) + case *ast.ExprRequireOnce: + p.printExprRequireOnce(n) + case *ast.ExprShellExec: + p.printExprShellExec(n) + case *ast.ExprShortArray: + p.printExprShortArray(n) + case *ast.ExprShortList: + p.printExprShortList(n) + case *ast.ExprStaticCall: + p.printExprStaticCall(n) + case *ast.ExprStaticPropertyFetch: + p.printExprStaticPropertyFetch(n) + case *ast.ExprTernary: + p.printExprTernary(n) + case *ast.ExprUnaryMinus: + p.printExprUnaryMinus(n) + case *ast.ExprUnaryPlus: + p.printExprUnaryPlus(n) + case *ast.ExprVariable: + p.printExprVariable(n) + case *ast.ExprYieldFrom: + p.printExprYieldFrom(n) + case *ast.ExprYield: + p.printExprYield(n) + + // stmt + + case *ast.StmtAltElseIf: + p.printStmtAltElseIf(n) + case *ast.StmtAltElse: + p.printStmtAltElse(n) + case *ast.StmtAltFor: + p.printStmtAltFor(n) + case *ast.StmtAltForeach: + p.printStmtAltForeach(n) + case *ast.StmtAltIf: + p.printStmtAltIf(n) + case *ast.StmtAltSwitch: + p.printStmtAltSwitch(n) + case *ast.StmtAltWhile: + p.printStmtAltWhile(n) + case *ast.StmtBreak: + p.printStmtBreak(n) + case *ast.StmtCase: + p.printStmtCase(n) + case *ast.StmtCatch: + p.printStmtCatch(n) + case *ast.StmtClassMethod: + p.printStmtClassMethod(n) + case *ast.StmtClass: + p.printStmtClass(n) + case *ast.StmtClassConstList: + p.printStmtClassConstList(n) + case *ast.StmtConstList: + p.printStmtConstList(n) + case *ast.StmtConstant: + p.printStmtConstant(n) + case *ast.StmtContinue: + p.printStmtContinue(n) + case *ast.StmtDeclare: + p.printStmtDeclare(n) + case *ast.StmtDefault: + p.printStmtDefault(n) + case *ast.StmtDo: + p.printStmtDo(n) + case *ast.StmtEcho: + p.printStmtEcho(n) + case *ast.StmtElseIf: + p.printStmtElseif(n) + case *ast.StmtElse: + p.printStmtElse(n) + case *ast.StmtExpression: + p.printStmtExpression(n) + case *ast.StmtFinally: + p.printStmtFinally(n) + case *ast.StmtFor: + p.printStmtFor(n) + case *ast.StmtForeach: + p.printStmtForeach(n) + case *ast.StmtFunction: + p.printStmtFunction(n) + case *ast.StmtGlobal: + p.printStmtGlobal(n) + case *ast.StmtGoto: + p.printStmtGoto(n) + case *ast.StmtGroupUse: + p.printStmtGroupUse(n) + case *ast.StmtHaltCompiler: + p.printStmtHaltCompiler(n) + case *ast.StmtIf: + p.printStmtIf(n) + case *ast.StmtInlineHtml: + p.printStmtInlineHTML(n) + case *ast.StmtInterface: + p.printStmtInterface(n) + case *ast.StmtLabel: + p.printStmtLabel(n) + case *ast.StmtNamespace: + p.printStmtNamespace(n) + case *ast.StmtNop: + p.printStmtNop(n) + case *ast.StmtPropertyList: + p.printStmtPropertyList(n) + case *ast.StmtProperty: + p.printStmtProperty(n) + case *ast.StmtReturn: + p.printStmtReturn(n) + case *ast.StmtStaticVar: + p.printStmtStaticVar(n) + case *ast.StmtStatic: + p.printStmtStatic(n) + case *ast.StmtStmtList: + p.printStmtStmtList(n) + case *ast.StmtSwitch: + p.printStmtSwitch(n) + case *ast.StmtThrow: + p.printStmtThrow(n) + case *ast.StmtTraitAdaptationList: + p.printStmtTraitAdaptationList(n) + case *ast.StmtTraitMethodRef: + p.printStmtTraitMethodRef(n) + case *ast.StmtTraitUseAlias: + p.printStmtTraitUseAlias(n) + case *ast.StmtTraitUsePrecedence: + p.printStmtTraitUsePrecedence(n) + case *ast.StmtTraitUse: + p.printStmtTraitUse(n) + case *ast.StmtTrait: + p.printStmtTrait(n) + case *ast.StmtTry: + p.printStmtTry(n) + case *ast.StmtUnset: + p.printStmtUnset(n) + case *ast.StmtUseList: + p.printStmtUseList(n) + case *ast.StmtUse: + p.printStmtUse(n) + case *ast.StmtWhile: + p.printStmtWhile(n) + } +} + +// node + +func (p *Printer) printNodeRoot(n ast.Vertex) { + nn := n.(*ast.Root) + p.SetState(HtmlState) + p.printFreeFloating(nn, token.Start) + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNodeIdentifier(n ast.Vertex) { + nn := n.(*ast.Identifier) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNodeParameter(n ast.Vertex) { + nn := n.(*ast.Parameter) + p.printFreeFloating(nn, token.Start) + + if nn.Type != nil { + p.Print(nn.Type) + } + p.printFreeFloating(nn, token.OptionalType) + + if nn.ByRef { + io.WriteString(p.w, "&") + } + p.printFreeFloating(nn, token.Ampersand) + + if nn.Variadic { + io.WriteString(p.w, "...") + } + p.printFreeFloating(nn, token.Variadic) + + p.Print(nn.Var) + + if nn.DefaultValue != nil { + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "=") + p.Print(nn.DefaultValue) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNodeNullable(n ast.Vertex) { + nn := n.(*ast.Nullable) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "?") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNodeArgument(n ast.Vertex) { + nn := n.(*ast.Argument) + p.printFreeFloating(nn, token.Start) + + if nn.IsReference { + io.WriteString(p.w, "&") + } + p.printFreeFloating(nn, token.Ampersand) + + if nn.Variadic { + io.WriteString(p.w, "...") + } + p.printFreeFloating(nn, token.Variadic) + + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +// name + +func (p *Printer) printNameNamePart(n ast.Vertex) { + nn := n.(*ast.NameNamePart) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, string(nn.Value)) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNameName(n ast.Vertex) { + nn := n.(*ast.NameName) + p.printFreeFloating(nn, token.Start) + + p.joinPrint("\\", nn.Parts) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNameFullyQualified(n ast.Vertex) { + nn := n.(*ast.NameFullyQualified) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "\\") + p.joinPrint("\\", nn.Parts) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNameRelative(n ast.Vertex) { + nn := n.(*ast.NameRelative) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "namespace") + p.printFreeFloating(nn, token.Namespace) + + for _, part := range nn.Parts { + io.WriteString(p.w, "\\") + p.Print(part) + } + + p.printFreeFloating(nn, token.End) +} + +// scalar + +func (p *Printer) printScalarLNumber(n ast.Vertex) { + nn := n.(*ast.ScalarLnumber) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printScalarDNumber(n ast.Vertex) { + nn := n.(*ast.ScalarDnumber) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printScalarString(n ast.Vertex) { + nn := n.(*ast.ScalarString) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printScalarEncapsedStringPart(n ast.Vertex) { + nn := n.(*ast.ScalarEncapsedStringPart) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printScalarEncapsed(n ast.Vertex) { + nn := n.(*ast.ScalarEncapsed) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "\"") + for _, part := range nn.Parts { + switch part.(type) { + case *ast.ExprArrayDimFetch: + s := part.GetNode().Tokens[token.Start] + if len(s) > 0 && string(s[0].Value) == "${" { + p.printExprArrayDimFetchWithoutLeadingDollar(part) + } else { + p.Print(part) + } + case *ast.ExprVariable: + s := part.GetNode().Tokens[token.Start] + if len(s) > 0 && string(s[0].Value) == "${" { + p.printExprVariableWithoutLeadingDollar(part) + } else { + p.Print(part) + } + default: + p.Print(part) + } + } + io.WriteString(p.w, "\"") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printScalarHeredoc(n ast.Vertex) { + nn := n.(*ast.ScalarHeredoc) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, string(nn.Label)) + + for _, part := range nn.Parts { + switch part.(type) { + case *ast.ExprArrayDimFetch: + s := part.GetNode().Tokens[token.Start] + if len(s) > 0 && string(s[0].Value) == "${" { + p.printExprArrayDimFetchWithoutLeadingDollar(part) + } else { + p.Print(part) + } + case *ast.ExprVariable: + s := part.GetNode().Tokens[token.Start] + if len(s) > 0 && string(s[0].Value) == "${" { + p.printExprVariableWithoutLeadingDollar(part) + } else { + p.Print(part) + } + default: + p.Print(part) + } + } + + io.WriteString(p.w, strings.Trim(string(nn.Label), "<\"'\n")) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printScalarMagicConstant(n ast.Vertex) { + nn := n.(*ast.ScalarMagicConstant) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) +} + +// Assign + +func (p *Printer) printAssign(n ast.Vertex) { + nn := n.(*ast.ExprAssign) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignReference(n ast.Vertex) { + nn := n.(*ast.ExprAssignReference) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "=") + p.printFreeFloating(nn, token.Equal) + io.WriteString(p.w, "&") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignBitwiseAnd(n ast.Vertex) { + nn := n.(*ast.ExprAssignBitwiseAnd) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "&") + io.WriteString(p.w, "=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignBitwiseOr(n ast.Vertex) { + nn := n.(*ast.ExprAssignBitwiseOr) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "|=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignBitwiseXor(n ast.Vertex) { + nn := n.(*ast.ExprAssignBitwiseXor) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "^=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignCoalesce(n ast.Vertex) { + nn := n.(*ast.ExprAssignCoalesce) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "??=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignConcat(n ast.Vertex) { + nn := n.(*ast.ExprAssignConcat) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, ".=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignDiv(n ast.Vertex) { + nn := n.(*ast.ExprAssignDiv) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "/=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignMinus(n ast.Vertex) { + nn := n.(*ast.ExprAssignMinus) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "-=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignMod(n ast.Vertex) { + nn := n.(*ast.ExprAssignMod) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "%=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignMul(n ast.Vertex) { + nn := n.(*ast.ExprAssignMul) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "*=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignPlus(n ast.Vertex) { + nn := n.(*ast.ExprAssignPlus) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "+=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignPow(n ast.Vertex) { + nn := n.(*ast.ExprAssignPow) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "**=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignShiftLeft(n ast.Vertex) { + nn := n.(*ast.ExprAssignShiftLeft) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "<<=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printAssignShiftRight(n ast.Vertex) { + nn := n.(*ast.ExprAssignShiftRight) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, ">>=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +// binary + +func (p *Printer) printBinaryBitwiseAnd(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBitwiseAnd) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "&") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryBitwiseOr(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBitwiseOr) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "|") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryBitwiseXor(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBitwiseXor) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "^") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryBooleanAnd(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBooleanAnd) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "&&") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryBooleanOr(n ast.Vertex) { + nn := n.(*ast.ExprBinaryBooleanOr) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "||") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryCoalesce(n ast.Vertex) { + nn := n.(*ast.ExprBinaryCoalesce) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "??") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryConcat(n ast.Vertex) { + nn := n.(*ast.ExprBinaryConcat) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ".") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryDiv(n ast.Vertex) { + nn := n.(*ast.ExprBinaryDiv) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "/") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinaryEqual) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "==") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryGreaterOrEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinaryGreaterOrEqual) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ">=") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryGreater(n ast.Vertex) { + nn := n.(*ast.ExprBinaryGreater) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ">") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryIdentical(n ast.Vertex) { + nn := n.(*ast.ExprBinaryIdentical) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "===") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryLogicalAnd(n ast.Vertex) { + nn := n.(*ast.ExprBinaryLogicalAnd) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "and") + if nn.Right.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryLogicalOr(n ast.Vertex) { + nn := n.(*ast.ExprBinaryLogicalOr) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "or") + if nn.Right.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryLogicalXor(n ast.Vertex) { + nn := n.(*ast.ExprBinaryLogicalXor) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "xor") + if nn.Right.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryMinus(n ast.Vertex) { + nn := n.(*ast.ExprBinaryMinus) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "-") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryMod(n ast.Vertex) { + nn := n.(*ast.ExprBinaryMod) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "%") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryMul(n ast.Vertex) { + nn := n.(*ast.ExprBinaryMul) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "*") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryNotEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinaryNotEqual) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + p.printFreeFloating(nn, token.Equal) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "!=") + } + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryNotIdentical(n ast.Vertex) { + nn := n.(*ast.ExprBinaryNotIdentical) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "!==") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryPlus(n ast.Vertex) { + nn := n.(*ast.ExprBinaryPlus) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "+") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryPow(n ast.Vertex) { + nn := n.(*ast.ExprBinaryPow) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "**") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryShiftLeft(n ast.Vertex) { + nn := n.(*ast.ExprBinaryShiftLeft) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "<<") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinaryShiftRight(n ast.Vertex) { + nn := n.(*ast.ExprBinaryShiftRight) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ">>") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinarySmallerOrEqual(n ast.Vertex) { + nn := n.(*ast.ExprBinarySmallerOrEqual) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "<=") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinarySmaller(n ast.Vertex) { + nn := n.(*ast.ExprBinarySmaller) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "<") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBinarySpaceship(n ast.Vertex) { + nn := n.(*ast.ExprBinarySpaceship) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Left) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "<=>") + p.Print(nn.Right) + + p.printFreeFloating(nn, token.End) +} + +// cast + +func (p *Printer) printArray(n ast.Vertex) { + nn := n.(*ast.ExprCastArray) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Cast) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "(array)") + } + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printBool(n ast.Vertex) { + nn := n.(*ast.ExprCastBool) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Cast) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "(boolean)") + } + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printDouble(n ast.Vertex) { + nn := n.(*ast.ExprCastDouble) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Cast) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "(float)") + } + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printInt(n ast.Vertex) { + nn := n.(*ast.ExprCastInt) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Cast) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "(integer)") + } + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printObject(n ast.Vertex) { + nn := n.(*ast.ExprCastObject) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Cast) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "(object)") + } + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printString(n ast.Vertex) { + nn := n.(*ast.ExprCastString) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Cast) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "(string)") + } + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printUnset(n ast.Vertex) { + nn := n.(*ast.ExprCastUnset) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Cast) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "(unset)") + } + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +// expr + +func (p *Printer) printExprArrayDimFetch(n ast.Vertex) { + nn := n.(*ast.ExprArrayDimFetch) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "[") + } + p.Print(nn.Dim) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "]") + } + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprArrayDimFetchWithoutLeadingDollar(n ast.Vertex) { + nn := n.(*ast.ExprArrayDimFetch) + p.printFreeFloating(nn, token.Start) + p.printExprVariableWithoutLeadingDollar(nn.Var) + p.printFreeFloating(nn, token.Var) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "[") + } + p.Print(nn.Dim) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "]") + } + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprArrayItem(n ast.Vertex) { + nn := n.(*ast.ExprArrayItem) + p.printFreeFloating(nn, token.Start) + + if nn.Unpack { + io.WriteString(p.w, "...") + } + + if nn.Key != nil { + p.Print(nn.Key) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "=>") + } + + p.Print(nn.Val) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprArray(n ast.Vertex) { + nn := n.(*ast.ExprArray) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "array") + p.printFreeFloating(nn, token.Array) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Items) + p.printFreeFloating(nn, token.ArrayPairList) + io.WriteString(p.w, ")") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprArrowFunction(n ast.Vertex) { + nn := n.(*ast.ExprArrowFunction) + p.printFreeFloating(nn, token.Start) + + if nn.Static { + io.WriteString(p.w, "static") + } + p.printFreeFloating(nn, token.Static) + if nn.Static && n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + io.WriteString(p.w, "fn") + p.printFreeFloating(nn, token.Function) + + if nn.ReturnsRef { + io.WriteString(p.w, "&") + } + p.printFreeFloating(nn, token.Ampersand) + + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Params) + p.printFreeFloating(nn, token.ParameterList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Params) + + if nn.ReturnType != nil { + io.WriteString(p.w, ":") + p.Print(nn.ReturnType) + } + p.printFreeFloating(nn, token.ReturnType) + + io.WriteString(p.w, "=>") + + p.printNode(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprBitwiseNot(n ast.Vertex) { + nn := n.(*ast.ExprBitwiseNot) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "~") + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprBooleanNot(n ast.Vertex) { + nn := n.(*ast.ExprBooleanNot) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "!") + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprClassConstFetch(n ast.Vertex) { + nn := n.(*ast.ExprClassConstFetch) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Class) + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "::") + p.Print(nn.ConstantName) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprClone(n ast.Vertex) { + nn := n.(*ast.ExprClone) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "clone") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprClosureUse(n ast.Vertex) { + nn := n.(*ast.ExprClosureUse) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "use") + p.printFreeFloating(nn, token.Use) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Uses) + p.printFreeFloating(nn, token.LexicalVarList) + io.WriteString(p.w, ")") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprClosure(n ast.Vertex) { + nn := n.(*ast.ExprClosure) + p.printFreeFloating(nn, token.Start) + + if nn.Static { + io.WriteString(p.w, "static") + } + p.printFreeFloating(nn, token.Static) + if nn.Static && n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + io.WriteString(p.w, "function") + p.printFreeFloating(nn, token.Function) + + if nn.ReturnsRef { + io.WriteString(p.w, "&") + } + p.printFreeFloating(nn, token.Ampersand) + + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Params) + p.printFreeFloating(nn, token.ParameterList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Params) + + if nn.ClosureUse != nil { + p.Print(nn.ClosureUse) + } + p.printFreeFloating(nn, token.LexicalVars) + + if nn.ReturnType != nil { + io.WriteString(p.w, ":") + p.Print(nn.ReturnType) + } + p.printFreeFloating(nn, token.ReturnType) + + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprConstFetch(n ast.Vertex) { + nn := n.(*ast.ExprConstFetch) + p.printFreeFloating(nn, token.Start) + p.Print(nn.Const) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprEmpty(n ast.Vertex) { + nn := n.(*ast.ExprEmpty) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "empty") + p.printFreeFloating(nn, token.Empty) + io.WriteString(p.w, "(") + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprErrorSuppress(n ast.Vertex) { + nn := n.(*ast.ExprErrorSuppress) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "@") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprEval(n ast.Vertex) { + nn := n.(*ast.ExprEval) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "eval") + p.printFreeFloating(nn, token.Eval) + io.WriteString(p.w, "(") + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprExit(n ast.Vertex) { + nn := n.(*ast.ExprExit) + p.printFreeFloating(nn, token.Start) + + if nn.Die { + io.WriteString(p.w, "die") + } else { + io.WriteString(p.w, "exit") + } + p.printFreeFloating(nn, token.Exit) + + if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() && nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprFunctionCall(n ast.Vertex) { + nn := n.(*ast.ExprFunctionCall) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Function) + + p.printFreeFloating(nn.ArgumentList, token.Start) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.ArgumentList.Arguments) + p.printFreeFloating(nn.ArgumentList, token.ArgumentList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn.ArgumentList, token.End) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprInclude(n ast.Vertex) { + nn := n.(*ast.ExprInclude) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "include") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprIncludeOnce(n ast.Vertex) { + nn := n.(*ast.ExprIncludeOnce) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "include_once") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprInstanceOf(n ast.Vertex) { + nn := n.(*ast.ExprInstanceOf) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + io.WriteString(p.w, "instanceof") + + if nn.Class.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Class) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprIsset(n ast.Vertex) { + nn := n.(*ast.ExprIsset) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "isset") + p.printFreeFloating(nn, token.Isset) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Vars) + p.printFreeFloating(nn, token.VarList) + io.WriteString(p.w, ")") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprList(n ast.Vertex) { + nn := n.(*ast.ExprList) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "list") + p.printFreeFloating(nn, token.List) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Items) + p.printFreeFloating(nn, token.ArrayPairList) + io.WriteString(p.w, ")") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprMethodCall(n ast.Vertex) { + nn := n.(*ast.ExprMethodCall) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "->") + p.Print(nn.Method) + + p.printFreeFloating(nn.ArgumentList, token.Start) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.ArgumentList.Arguments) + p.printFreeFloating(nn.ArgumentList, token.ArgumentList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn.ArgumentList, token.End) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprNew(n ast.Vertex) { + nn := n.(*ast.ExprNew) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "new") + if nn.Class.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Class) + + if nn.ArgumentList != nil { + p.printFreeFloating(nn.ArgumentList, token.Start) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.ArgumentList.Arguments) + p.printFreeFloating(nn.ArgumentList, token.ArgumentList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn.ArgumentList, token.End) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprPostDec(n ast.Vertex) { + nn := n.(*ast.ExprPostDec) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "--") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprPostInc(n ast.Vertex) { + nn := n.(*ast.ExprPostInc) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "++") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprPreDec(n ast.Vertex) { + nn := n.(*ast.ExprPreDec) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "--") + p.Print(nn.Var) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprPreInc(n ast.Vertex) { + nn := n.(*ast.ExprPreInc) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "++") + p.Print(nn.Var) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprPrint(n ast.Vertex) { + nn := n.(*ast.ExprPrint) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "print") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprPropertyFetch(n ast.Vertex) { + nn := n.(*ast.ExprPropertyFetch) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "->") + p.Print(nn.Property) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprReference(n ast.Vertex) { + nn := n.(*ast.ExprReference) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "&") + p.Print(nn.Var) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprRequire(n ast.Vertex) { + nn := n.(*ast.ExprRequire) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "require") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprRequireOnce(n ast.Vertex) { + nn := n.(*ast.ExprRequireOnce) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "require_once") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprShellExec(n ast.Vertex) { + nn := n.(*ast.ExprShellExec) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "`") + p.joinPrint("", nn.Parts) + io.WriteString(p.w, "`") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprShortArray(n ast.Vertex) { + nn := n.(*ast.ExprShortArray) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "[") + p.joinPrint(",", nn.Items) + p.printFreeFloating(nn, token.ArrayPairList) + io.WriteString(p.w, "]") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprShortList(n ast.Vertex) { + nn := n.(*ast.ExprShortList) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "[") + p.joinPrint(",", nn.Items) + p.printFreeFloating(nn, token.ArrayPairList) + io.WriteString(p.w, "]") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprStaticCall(n ast.Vertex) { + nn := n.(*ast.ExprStaticCall) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Class) + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "::") + p.Print(nn.Call) + + p.printFreeFloating(nn.ArgumentList, token.Start) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.ArgumentList.Arguments) + p.printFreeFloating(nn.ArgumentList, token.ArgumentList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn.ArgumentList, token.End) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprStaticPropertyFetch(n ast.Vertex) { + nn := n.(*ast.ExprStaticPropertyFetch) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Class) + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "::") + p.Print(nn.Property) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprTernary(n ast.Vertex) { + nn := n.(*ast.ExprTernary) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Condition) + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, "?") + + if nn.IfTrue != nil { + p.Print(nn.IfTrue) + } + p.printFreeFloating(nn, token.True) + + io.WriteString(p.w, ":") + p.Print(nn.IfFalse) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprUnaryMinus(n ast.Vertex) { + nn := n.(*ast.ExprUnaryMinus) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "-") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprUnaryPlus(n ast.Vertex) { + nn := n.(*ast.ExprUnaryPlus) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "+") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprVariable(n ast.Vertex) { + nn := n.(*ast.ExprVariable) + p.printFreeFloating(nn, token.Start) + + p.printFreeFloating(nn, token.Dollar) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "$") + } + + p.Print(nn.VarName) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprVariableWithoutLeadingDollar(n ast.Vertex) { + nn := n.(*ast.ExprVariable) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.VarName) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprYieldFrom(n ast.Vertex) { + nn := n.(*ast.ExprYieldFrom) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "yield from") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printExprYield(n ast.Vertex) { + nn := n.(*ast.ExprYield) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "yield") + + if nn.Key != nil { + if nn.Key.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Key) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, "=>") + } else { + if nn.Value.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + + p.Print(nn.Value) + + p.printFreeFloating(nn, token.End) +} + +// smtm + +func (p *Printer) printStmtAltElseIf(n ast.Vertex) { + nn := n.(*ast.StmtAltElseIf) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "elseif") + p.printFreeFloating(nn, token.ElseIf) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, ":") + + if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { + p.printNodes(s) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtAltElse(n ast.Vertex) { + nn := n.(*ast.StmtAltElse) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "else") + p.printFreeFloating(nn, token.Else) + io.WriteString(p.w, ":") + + if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { + p.printNodes(s) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtAltFor(n ast.Vertex) { + nn := n.(*ast.StmtAltFor) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "for") + p.printFreeFloating(nn, token.For) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Init) + p.printFreeFloating(nn, token.InitExpr) + io.WriteString(p.w, ";") + p.joinPrint(",", nn.Cond) + p.printFreeFloating(nn, token.CondExpr) + io.WriteString(p.w, ";") + p.joinPrint(",", nn.Loop) + p.printFreeFloating(nn, token.IncExpr) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, ":") + + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + p.printFreeFloating(nn, token.Stmts) + + io.WriteString(p.w, "endfor") + p.printFreeFloating(nn, token.AltEnd) + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtAltForeach(n ast.Vertex) { + nn := n.(*ast.StmtAltForeach) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "foreach") + p.printFreeFloating(nn, token.Foreach) + io.WriteString(p.w, "(") + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "as") + + if nn.Key != nil { + if nn.Key.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Key) + p.printFreeFloating(nn, token.Key) + io.WriteString(p.w, "=>") + } else { + if nn.Var.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + + io.WriteString(p.w, ":") + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + p.printFreeFloating(nn, token.Stmts) + + io.WriteString(p.w, "endforeach") + p.printFreeFloating(nn, token.AltEnd) + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtAltIf(n ast.Vertex) { + nn := n.(*ast.StmtAltIf) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "if") + p.printFreeFloating(nn, token.If) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, ":") + + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + + for _, elseif := range nn.ElseIf { + p.Print(elseif) + } + + if nn.Else != nil { + p.Print(nn.Else) + } + + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "endif") + p.printFreeFloating(nn, token.AltEnd) + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtAltSwitch(n ast.Vertex) { + nn := n.(*ast.StmtAltSwitch) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "switch") + p.printFreeFloating(nn, token.Switch) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, ":") + + p.printFreeFloating(nn.CaseList, token.Start) + p.printFreeFloating(nn.CaseList, token.CaseListStart) + p.printNodes(nn.CaseList.Cases) + p.printFreeFloating(nn.CaseList, token.CaseListEnd) + p.printFreeFloating(nn.CaseList, token.End) + + io.WriteString(p.w, "endswitch") + p.printFreeFloating(nn, token.AltEnd) + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtAltWhile(n ast.Vertex) { + nn := n.(*ast.StmtAltWhile) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "while") + p.printFreeFloating(nn, token.While) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, ":") + + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + p.printFreeFloating(nn, token.Stmts) + + io.WriteString(p.w, "endwhile") + p.printFreeFloating(nn, token.AltEnd) + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtBreak(n ast.Vertex) { + nn := n.(*ast.StmtBreak) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "break") + if nn.Expr != nil { + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + } + p.printFreeFloating(nn, token.Expr) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtCase(n ast.Vertex) { + nn := n.(*ast.StmtCase) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "case") + if nn.Cond.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + p.printFreeFloating(nn, token.CaseSeparator) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ":") + } + + if len(nn.Stmts) > 0 { + p.printNodes(nn.Stmts) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtCatch(n ast.Vertex) { + nn := n.(*ast.StmtCatch) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "catch") + p.printFreeFloating(nn, token.Catch) + io.WriteString(p.w, "(") + p.joinPrint("|", nn.Types) + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtClassMethod(n ast.Vertex) { + nn := n.(*ast.StmtClassMethod) + p.printFreeFloating(nn, token.Start) + + if nn.Modifiers != nil { + for k, m := range nn.Modifiers { + if k > 0 && m.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(m) + } + + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + p.printFreeFloating(nn, token.ModifierList) + io.WriteString(p.w, "function") + p.printFreeFloating(nn, token.Function) + + if nn.ReturnsRef { + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "&") + p.printFreeFloating(nn, token.Ampersand) + } else { + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + + p.Print(nn.MethodName) + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Params) + p.printFreeFloating(nn, token.ParameterList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Params) + + if nn.ReturnType != nil { + io.WriteString(p.w, ":") + p.Print(nn.ReturnType) + } + + p.Print(nn.Stmt) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtClass(n ast.Vertex) { + nn := n.(*ast.StmtClass) + p.printFreeFloating(nn, token.Start) + + if nn.Modifiers != nil { + for k, m := range nn.Modifiers { + if k > 0 && m.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(m) + } + + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + p.printFreeFloating(nn, token.ModifierList) + io.WriteString(p.w, "class") + p.printFreeFloating(nn, token.Class) + + if nn.ClassName != nil { + if nn.ClassName.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.ClassName) + } + + if nn.ArgumentList != nil { + p.printFreeFloating(nn.ArgumentList, token.Start) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.ArgumentList.Arguments) + p.printFreeFloating(nn.ArgumentList, token.ArgumentList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn.ArgumentList, token.End) + } + + if nn.Extends != nil { + p.printFreeFloating(nn.Extends, token.Start) + if nn.Extends.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "extends") + if nn.Extends.ClassName.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Extends.ClassName) + } + + if nn.Implements != nil { + p.printFreeFloating(nn.Implements, token.Start) + if nn.Implements.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "implements") + if nn.Implements.InterfaceNames[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.joinPrint(",", nn.Implements.InterfaceNames) + } + + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtClassConstList(n ast.Vertex) { + nn := n.(*ast.StmtClassConstList) + p.printFreeFloating(nn, token.Start) + + if nn.Modifiers != nil { + for k, m := range nn.Modifiers { + if k > 0 && m.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(m) + } + + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + p.printFreeFloating(nn, token.ModifierList) + io.WriteString(p.w, "const") + + if nn.Consts[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.joinPrint(",", nn.Consts) + p.printFreeFloating(nn, token.ConstList) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtConstList(n ast.Vertex) { + nn := n.(*ast.StmtConstList) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "const") + + if nn.Consts[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.joinPrint(",", nn.Consts) + p.printFreeFloating(nn, token.Stmts) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtConstant(n ast.Vertex) { + nn := n.(*ast.StmtConstant) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.ConstantName) + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "=") + p.Print(nn.Expr) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtContinue(n ast.Vertex) { + nn := n.(*ast.StmtContinue) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "continue") + + if nn.Expr != nil { + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + } + p.printFreeFloating(nn, token.Expr) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtDeclare(n ast.Vertex) { + nn := n.(*ast.StmtDeclare) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "declare") + p.printFreeFloating(nn, token.Declare) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Consts) + p.printFreeFloating(nn, token.ConstList) + io.WriteString(p.w, ")") + + if nn.Alt { + p.printFreeFloating(nn, token.Cond) + io.WriteString(p.w, ":") + + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + p.printFreeFloating(nn, token.Stmts) + + io.WriteString(p.w, "enddeclare") + p.printFreeFloating(nn, token.AltEnd) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + } else { + p.Print(nn.Stmt) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtDefault(n ast.Vertex) { + nn := n.(*ast.StmtDefault) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "default") + p.printFreeFloating(nn, token.Default) + p.printFreeFloating(nn, token.CaseSeparator) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ":") + } + + if len(nn.Stmts) > 0 { + p.printNodes(nn.Stmts) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtDo(n ast.Vertex) { + nn := n.(*ast.StmtDo) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "do") + + if _, ok := nn.Stmt.(*ast.StmtStmtList); !ok { + if nn.Stmt.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + + p.Print(nn.Stmt) + p.printFreeFloating(nn, token.Stmts) + + io.WriteString(p.w, "while") + p.printFreeFloating(nn, token.While) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Cond) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtEcho(n ast.Vertex) { + nn := n.(*ast.StmtEcho) + + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "echo") + } + if nn.Exprs[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + p.printFreeFloating(nn, token.Start) + p.printFreeFloating(nn, token.Echo) + + p.joinPrint(",", nn.Exprs) + p.printFreeFloating(nn, token.Expr) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtElseif(n ast.Vertex) { + nn := n.(*ast.StmtElseIf) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "elseif") + p.printFreeFloating(nn, token.ElseIf) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + + p.Print(nn.Stmt) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtElse(n ast.Vertex) { + nn := n.(*ast.StmtElse) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "else") + + if _, ok := nn.Stmt.(*ast.StmtStmtList); !ok { + if nn.Stmt.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + + p.Print(nn.Stmt) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtExpression(n ast.Vertex) { + nn := n.(*ast.StmtExpression) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtFinally(n ast.Vertex) { + nn := n.(*ast.StmtFinally) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "finally") + p.printFreeFloating(nn, token.Finally) + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtFor(n ast.Vertex) { + nn := n.(*ast.StmtFor) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "for") + p.printFreeFloating(nn, token.For) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Init) + p.printFreeFloating(nn, token.InitExpr) + io.WriteString(p.w, ";") + p.joinPrint(",", nn.Cond) + p.printFreeFloating(nn, token.CondExpr) + io.WriteString(p.w, ";") + p.joinPrint(",", nn.Loop) + p.printFreeFloating(nn, token.IncExpr) + io.WriteString(p.w, ")") + + p.Print(nn.Stmt) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtForeach(n ast.Vertex) { + nn := n.(*ast.StmtForeach) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "foreach") + p.printFreeFloating(nn, token.Foreach) + io.WriteString(p.w, "(") + + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + io.WriteString(p.w, "as") + + if nn.Key != nil { + if nn.Key.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Key) + p.printFreeFloating(nn, token.Key) + io.WriteString(p.w, "=>") + } else { + if nn.Var.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + p.Print(nn.Var) + p.printFreeFloating(nn, token.Var) + + io.WriteString(p.w, ")") + + p.Print(nn.Stmt) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtFunction(n ast.Vertex) { + nn := n.(*ast.StmtFunction) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "function") + p.printFreeFloating(nn, token.Function) + + if nn.ReturnsRef { + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "&") + } else { + if nn.FunctionName.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + + p.Print(nn.FunctionName) + p.printFreeFloating(nn, token.Name) + + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Params) + p.printFreeFloating(nn, token.ParamList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.Params) + + if nn.ReturnType != nil { + io.WriteString(p.w, ":") + p.Print(nn.ReturnType) + } + p.printFreeFloating(nn, token.ReturnType) + + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtGlobal(n ast.Vertex) { + nn := n.(*ast.StmtGlobal) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "global") + p.joinPrint(",", nn.Vars) + p.printFreeFloating(nn, token.VarList) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtGoto(n ast.Vertex) { + nn := n.(*ast.StmtGoto) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "goto") + if nn.Label.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Label) + p.printFreeFloating(nn, token.Label) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtGroupUse(n ast.Vertex) { + nn := n.(*ast.StmtGroupUse) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "use") + p.printFreeFloating(nn, token.Use) + + if nn.UseType != nil { + if nn.UseType.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.UseType) + } + + if nn.Prefix.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Prefix) + io.WriteString(p.w, "\\") + p.printFreeFloating(nn, token.Slash) + + io.WriteString(p.w, "{") + p.joinPrint(",", nn.UseList) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + p.printFreeFloating(nn, token.UseDeclarationList) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtHaltCompiler(n ast.Vertex) { + nn := n.(*ast.StmtHaltCompiler) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "__halt_compiler") + p.printFreeFloating(nn, token.HaltCompiller) + io.WriteString(p.w, "(") + p.printFreeFloating(nn, token.OpenParenthesisToken) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.CloseParenthesisToken) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtIf(n ast.Vertex) { + nn := n.(*ast.StmtIf) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "if") + p.printFreeFloating(n, token.If) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(n, token.Expr) + io.WriteString(p.w, ")") + + p.Print(nn.Stmt) + + if nn.ElseIf != nil { + p.printNodes(nn.ElseIf) + } + + if nn.Else != nil { + p.Print(nn.Else) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtInlineHTML(n ast.Vertex) { + nn := n.(*ast.StmtInlineHtml) + p.printFreeFloating(nn, token.Start) + + if p.s == PhpState && nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, "?>") + } + p.SetState(HtmlState) + + io.WriteString(p.w, string(nn.Value)) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtInterface(n ast.Vertex) { + nn := n.(*ast.StmtInterface) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "interface") + + if nn.InterfaceName.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + p.Print(nn.InterfaceName) + + if nn.Extends != nil { + p.printFreeFloating(nn.Extends, token.Start) + if nn.Extends.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "extends") + if nn.Extends.InterfaceNames[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.joinPrint(",", nn.Extends.InterfaceNames) + } + + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtLabel(n ast.Vertex) { + nn := n.(*ast.StmtLabel) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.LabelName) + p.printFreeFloating(nn, token.Label) + + io.WriteString(p.w, ":") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtNamespace(n ast.Vertex) { + nn := n.(*ast.StmtNamespace) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "namespace") + + if nn.NamespaceName != nil { + if nn.NamespaceName.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.NamespaceName) + } + + if nn.Stmts != nil { + p.printFreeFloating(nn, token.Namespace) + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + } else { + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtNop(n ast.Vertex) { + p.printFreeFloating(n, token.Start) + p.printFreeFloating(n, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + p.printFreeFloating(n, token.End) +} + +func (p *Printer) printStmtPropertyList(n ast.Vertex) { + nn := n.(*ast.StmtPropertyList) + p.printFreeFloating(nn, token.Start) + + for k, m := range nn.Modifiers { + if k > 0 && m.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(m) + } + + if nn.Type != nil && nn.Type.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + p.Print(nn.Type) + + if nn.Properties[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + p.joinPrint(",", nn.Properties) + p.printFreeFloating(n, token.PropertyList) + + p.printFreeFloating(n, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtProperty(n ast.Vertex) { + nn := n.(*ast.StmtProperty) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Var) + + if nn.Expr != nil { + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "=") + p.Print(nn.Expr) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtReturn(n ast.Vertex) { + nn := n.(*ast.StmtReturn) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "return") + if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + + p.printFreeFloating(nn, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtStaticVar(n ast.Vertex) { + nn := n.(*ast.StmtStaticVar) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Var) + + if nn.Expr != nil { + p.printFreeFloating(nn, token.Var) + io.WriteString(p.w, "=") + p.Print(nn.Expr) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtStatic(n ast.Vertex) { + nn := n.(*ast.StmtStatic) + p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "static") + + p.joinPrint(",", nn.Vars) + p.printFreeFloating(nn, token.VarList) + + p.printFreeFloating(nn, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtStmtList(n ast.Vertex) { + nn := n.(*ast.StmtStmtList) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtSwitch(n ast.Vertex) { + nn := n.(*ast.StmtSwitch) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "switch") + p.printFreeFloating(nn, token.Switch) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + + p.printFreeFloating(nn.CaseList, token.Start) + io.WriteString(p.w, "{") + p.printFreeFloating(nn.CaseList, token.CaseListStart) + p.printNodes(nn.CaseList.Cases) + p.printFreeFloating(nn.CaseList, token.CaseListEnd) + io.WriteString(p.w, "}") + p.printFreeFloating(nn.CaseList, token.End) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtThrow(n ast.Vertex) { + nn := n.(*ast.StmtThrow) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "throw") + if nn.Expr.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Expr) + p.printFreeFloating(nn, token.Expr) + + p.printFreeFloating(nn, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtTraitAdaptationList(n ast.Vertex) { + nn := n.(*ast.StmtTraitAdaptationList) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "{") + p.printNodes(nn.Adaptations) + p.printFreeFloating(nn, token.AdaptationList) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtTraitMethodRef(n ast.Vertex) { + nn := n.(*ast.StmtTraitMethodRef) + p.printFreeFloating(nn, token.Start) + + if nn.Trait != nil { + p.Print(nn.Trait) + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "::") + } + + p.Print(nn.Method) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtTraitUseAlias(n ast.Vertex) { + nn := n.(*ast.StmtTraitUseAlias) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Ref) + p.printFreeFloating(nn, token.Ref) + + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "as") + + if nn.Modifier != nil { + if nn.Modifier.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Modifier) + } + + if nn.Alias != nil { + if nn.Alias.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Alias) + } + p.printFreeFloating(nn, token.Alias) + + p.printFreeFloating(nn, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtTraitUsePrecedence(n ast.Vertex) { + nn := n.(*ast.StmtTraitUsePrecedence) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Ref) + p.printFreeFloating(nn, token.Ref) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + + io.WriteString(p.w, "insteadof") + if nn.Insteadof[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.joinPrint(",", nn.Insteadof) + p.printFreeFloating(nn, token.NameList) + + p.printFreeFloating(nn, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtTraitUse(n ast.Vertex) { + nn := n.(*ast.StmtTraitUse) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "use") + if nn.Traits[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.joinPrint(",", nn.Traits) + + p.Print(nn.TraitAdaptationList) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtTrait(n ast.Vertex) { + nn := n.(*ast.StmtTrait) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "trait") + if nn.TraitName.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.TraitName) + + p.printFreeFloating(nn, token.Name) + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtTry(n ast.Vertex) { + nn := n.(*ast.StmtTry) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "try") + p.printFreeFloating(nn, token.Try) + io.WriteString(p.w, "{") + p.printNodes(nn.Stmts) + p.printFreeFloating(nn, token.Stmts) + io.WriteString(p.w, "}") + + if nn.Catches != nil { + p.printNodes(nn.Catches) + } + + if nn.Finally != nil { + p.Print(nn.Finally) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtUnset(n ast.Vertex) { + nn := n.(*ast.StmtUnset) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "unset") + p.printFreeFloating(nn, token.Unset) + io.WriteString(p.w, "(") + p.joinPrint(",", nn.Vars) + p.printFreeFloating(nn, token.VarList) + io.WriteString(p.w, ")") + p.printFreeFloating(nn, token.CloseParenthesisToken) + + p.printFreeFloating(nn, token.SemiColon) + if n.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtUseList(n ast.Vertex) { + nn := n.(*ast.StmtUseList) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "use") + + if nn.UseType != nil { + if nn.UseType.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.UseType) + } + + if nn.Uses[0].GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.joinPrint(",", nn.Uses) + p.printFreeFloating(nn, token.UseDeclarationList) + + p.printFreeFloating(nn, token.SemiColon) + if nn.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, ";") + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtUse(n ast.Vertex) { + nn := n.(*ast.StmtUse) + p.printFreeFloating(nn, token.Start) + + if nn.UseType != nil { + p.Print(nn.UseType) + if nn.UseType.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + } + + p.printFreeFloating(nn, token.Slash) + + p.Print(nn.Use) + + if nn.Alias != nil { + if nn.Alias.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + io.WriteString(p.w, "as") + if nn.Alias.GetNode().Tokens.IsEmpty() { + io.WriteString(p.w, " ") + } + p.Print(nn.Alias) + } + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtWhile(n ast.Vertex) { + nn := n.(*ast.StmtWhile) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "while") + p.printFreeFloating(nn, token.While) + io.WriteString(p.w, "(") + p.Print(nn.Cond) + p.printFreeFloating(nn, token.Expr) + io.WriteString(p.w, ")") + + p.Print(nn.Stmt) + + p.printFreeFloating(nn, token.End) +} diff --git a/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go similarity index 99% rename from printer/printer_parsed_php5_test.go rename to pkg/printer/printer_parsed_php5_test.go index 660987a..14868ac 100644 --- a/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -2,22 +2,22 @@ package printer_test import ( "bytes" + "github.com/z7zmey/php-parser/pkg/ast" "testing" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/php5" - "github.com/z7zmey/php-parser/printer" + "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/pkg/printer" ) -func parsePhp5(src string) node.Node { +func parsePhp5(src string) ast.Vertex { php5parser := php5.NewParser([]byte(src), "5.6") - php5parser.WithFreeFloating() + php5parser.WithTokens() php5parser.Parse() return php5parser.GetRootNode() } -func printPhp5(n node.Node) string { +func printPhp5(n ast.Vertex) string { o := bytes.NewBufferString("") p := printer.NewPrinter(o) diff --git a/printer/printer_parsed_php7_test.go b/pkg/printer/printer_parsed_php7_test.go similarity index 98% rename from printer/printer_parsed_php7_test.go rename to pkg/printer/printer_parsed_php7_test.go index d50dc59..971219f 100644 --- a/printer/printer_parsed_php7_test.go +++ b/pkg/printer/printer_parsed_php7_test.go @@ -2,14 +2,12 @@ package printer_test import ( "bytes" + "github.com/z7zmey/php-parser/pkg/ast" "os" "testing" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/php7" - "github.com/z7zmey/php-parser/printer" + "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/pkg/printer" ) func ExamplePrinter() { @@ -30,15 +28,15 @@ abstract class Bar extends Baz // parse php7parser := php7.NewParser([]byte(src), "7.4") - php7parser.WithFreeFloating() + php7parser.WithTokens() php7parser.Parse() rootNode := php7parser.GetRootNode() // change namespace - parts := &rootNode.(*node.Root).Stmts[0].(*stmt.Namespace).NamespaceName.(*name.Name).Parts - *parts = append(*parts, &name.NamePart{Value: "Quuz"}) + parts := &rootNode.(*ast.Root).Stmts[0].(*ast.StmtNamespace).NamespaceName.(*ast.NameName).Parts + *parts = append(*parts, &ast.NameNamePart{Value: []byte("Quuz")}) // print @@ -60,15 +58,15 @@ abstract class Bar extends Baz // } } -func parse(src string) node.Node { +func parse(src string) ast.Vertex { php7parser := php7.NewParser([]byte(src), "7.4") - php7parser.WithFreeFloating() + php7parser.WithTokens() php7parser.Parse() return php7parser.GetRootNode() } -func print(n node.Node) string { +func print(n ast.Vertex) string { o := bytes.NewBufferString("") p := printer.NewPrinter(o) diff --git a/printer/printer_test.go b/pkg/printer/printer_test.go similarity index 54% rename from printer/printer_test.go rename to pkg/printer/printer_test.go index 331de66..a2df1a1 100644 --- a/printer/printer_test.go +++ b/pkg/printer/printer_test.go @@ -2,56 +2,49 @@ package printer_test import ( "bytes" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" "testing" - "github.com/z7zmey/php-parser/freefloating" - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" - "github.com/z7zmey/php-parser/node/stmt" - "github.com/z7zmey/php-parser/printer" + "github.com/z7zmey/php-parser/pkg/printer" ) func TestPrinterPrintFile(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Root{ - Stmts: []node.Node{ - &stmt.Namespace{ - NamespaceName: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Foo"}, + p.Print(&ast.Root{ + Stmts: []ast.Vertex{ + &ast.StmtNamespace{ + NamespaceName: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Foo")}, }, }, }, - &stmt.Class{ - Modifiers: []node.Node{&node.Identifier{Value: "abstract"}}, - ClassName: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Bar"}, + &ast.StmtClass{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, + ClassName: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Bar")}, }, }, - Extends: &stmt.ClassExtends{ - ClassName: &name.Name{ - Parts: []node.Node{ - &name.NamePart{Value: "Baz"}, + Extends: &ast.StmtClassExtends{ + ClassName: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Baz")}, }, }, }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - MethodName: &node.Identifier{Value: "greet"}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Echo{ - Exprs: []node.Node{ - &scalar.String{Value: "'Hello world'"}, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + MethodName: &ast.Identifier{Value: []byte("greet")}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ScalarString{Value: []byte("'Hello world'")}, }, }, }, @@ -74,37 +67,41 @@ func TestPrinterPrintFileInlineHtml(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Root{ - Stmts: []node.Node{ - &stmt.InlineHtml{Value: "
HTML
"}, - &stmt.Expression{ - Expr: &expr.Variable{ - FreeFloating: freefloating.Collection{ - freefloating.Start: []freefloating.String{ - { - StringType: freefloating.TokenType, - Value: "$", + p.Print(&ast.Root{ + Stmts: []ast.Vertex{ + &ast.StmtInlineHtml{Value: []byte("
HTML
")}, + &ast.StmtExpression{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Tokens: token.Collection{ + token.Start: []token.Token{ + { + ID: token.ID('$'), + Value: []byte("$"), + }, }, }, }, - VarName: &node.Identifier{ - Value: "a", + VarName: &ast.Identifier{ + Value: []byte("a"), }, }, }, - &stmt.InlineHtml{Value: "
HTML
"}, - &stmt.Expression{ - Expr: &expr.Variable{ - FreeFloating: freefloating.Collection{ - freefloating.Start: []freefloating.String{ - { - StringType: freefloating.TokenType, - Value: "$", + &ast.StmtInlineHtml{Value: []byte("
HTML
")}, + &ast.StmtExpression{ + Expr: &ast.ExprVariable{ + Node: ast.Node{ + Tokens: token.Collection{ + token.Start: []token.Token{ + { + ID: token.ID('$'), + Value: []byte("$"), + }, }, }, }, - VarName: &node.Identifier{ - Value: "a", + VarName: &ast.Identifier{ + Value: []byte("a"), }, }, }, @@ -125,8 +122,8 @@ func TestPrinterPrintIdentifier(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - n := &node.Identifier{ - Value: "test", + n := &ast.Identifier{ + Value: []byte("test"), } p.Print(n) @@ -142,21 +139,21 @@ func TestPrinterPrintParameter(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Parameter{ + p.Print(&ast.Parameter{ ByRef: false, Variadic: true, - VariableType: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + Type: &ast.NameFullyQualified{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, }, }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, - DefaultValue: &scalar.String{ - Value: "'default'", + DefaultValue: &ast.ScalarString{ + Value: []byte("'default'"), }, }) @@ -172,24 +169,24 @@ func TestPrinterPrintNullable(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Nullable{ - Expr: &node.Parameter{ + p.Print(&ast.Nullable{ + Expr: &ast.Parameter{ ByRef: true, Variadic: false, - VariableType: &name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + Type: &ast.NameFullyQualified{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, }, }, - Variable: &expr.Variable{ - VarName: &node.Identifier{ - Value: "var", + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("var"), }, }, - DefaultValue: &scalar.String{ - Value: "'default'", + DefaultValue: &ast.ScalarString{ + Value: []byte("'default'"), }, }, }) @@ -206,12 +203,12 @@ func TestPrinterPrintArgument(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Argument{ + p.Print(&ast.Argument{ IsReference: false, Variadic: true, - Expr: &expr.Variable{ - VarName: &node.Identifier{ - Value: "var", + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("var"), }, }, }) @@ -227,12 +224,12 @@ func TestPrinterPrintArgumentByRef(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Argument{ + p.Print(&ast.Argument{ IsReference: true, Variadic: false, - Expr: &expr.Variable{ - VarName: &node.Identifier{ - Value: "var", + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("var"), }, }, }) @@ -251,8 +248,8 @@ func TestPrinterPrintNameNamePart(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&name.NamePart{ - Value: "foo", + p.Print(&ast.NameNamePart{ + Value: []byte("foo"), }) expected := "foo" @@ -267,13 +264,13 @@ func TestPrinterPrintNameName(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&name.Name{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + p.Print(&ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, - &name.NamePart{ - Value: "Bar", + &ast.NameNamePart{ + Value: []byte("Bar"), }, }, }) @@ -290,13 +287,13 @@ func TestPrinterPrintNameFullyQualified(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&name.FullyQualified{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + p.Print(&ast.NameFullyQualified{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, - &name.NamePart{ - Value: "Bar", + &ast.NameNamePart{ + Value: []byte("Bar"), }, }, }) @@ -313,13 +310,13 @@ func TestPrinterPrintNameRelative(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&name.Relative{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + p.Print(&ast.NameRelative{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, - &name.NamePart{ - Value: "Bar", + &ast.NameNamePart{ + Value: []byte("Bar"), }, }, }) @@ -338,8 +335,8 @@ func TestPrinterPrintScalarLNumber(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&scalar.Lnumber{ - Value: "1", + p.Print(&ast.ScalarLnumber{ + Value: []byte("1"), }) expected := "1" @@ -354,8 +351,8 @@ func TestPrinterPrintScalarDNumber(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&scalar.Dnumber{ - Value: ".1", + p.Print(&ast.ScalarDnumber{ + Value: []byte(".1"), }) expected := ".1" @@ -370,8 +367,8 @@ func TestPrinterPrintScalarString(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&scalar.String{ - Value: "'hello world'", + p.Print(&ast.ScalarString{ + Value: []byte("'hello world'"), }) expected := `'hello world'` @@ -386,8 +383,8 @@ func TestPrinterPrintScalarEncapsedStringPart(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&scalar.EncapsedStringPart{ - Value: "hello world", + p.Print(&ast.ScalarEncapsedStringPart{ + Value: []byte("hello world"), }) expected := `hello world` @@ -402,13 +399,13 @@ func TestPrinterPrintScalarEncapsed(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&scalar.Encapsed{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "hello "}, - &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.ScalarEncapsed{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, - &scalar.EncapsedStringPart{Value: " world"}, + &ast.ScalarEncapsedStringPart{Value: []byte(" world")}, }, }) @@ -424,14 +421,14 @@ func TestPrinterPrintScalarHeredoc(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&scalar.Heredoc{ - Label: "<<bar` @@ -2221,9 +2218,9 @@ func TestPrinterPrintExprReference(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.Reference{ - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "foo"}, + p.Print(&ast.ExprReference{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("foo")}, }, }) @@ -2239,8 +2236,8 @@ func TestPrinterPrintRequire(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.Require{ - Expr: &scalar.String{Value: "'path'"}, + p.Print(&ast.ExprRequire{ + Expr: &ast.ScalarString{Value: []byte("'path'")}, }) expected := `require 'path'` @@ -2255,8 +2252,8 @@ func TestPrinterPrintRequireOnce(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.RequireOnce{ - Expr: &scalar.String{Value: "'path'"}, + p.Print(&ast.ExprRequireOnce{ + Expr: &ast.ScalarString{Value: []byte("'path'")}, }) expected := `require_once 'path'` @@ -2271,13 +2268,13 @@ func TestPrinterPrintShellExec(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.ShellExec{ - Parts: []node.Node{ - &scalar.EncapsedStringPart{Value: "hello "}, - &expr.Variable{ - VarName: &node.Identifier{Value: "world"}, + p.Print(&ast.ExprShellExec{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("world")}, }, - &scalar.EncapsedStringPart{Value: "!"}, + &ast.ScalarEncapsedStringPart{Value: []byte("!")}, }, }) @@ -2293,23 +2290,23 @@ func TestPrinterPrintExprShortArray(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.ShortArray{ - Items: []node.Node{ - &expr.ArrayItem{ - Key: &scalar.String{Value: "'Hello'"}, - Val: &expr.Variable{ - VarName: &node.Identifier{Value: "world"}, + p.Print(&ast.ExprShortArray{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Key: &ast.ScalarString{Value: []byte("'Hello'")}, + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("world")}, }, }, - &expr.ArrayItem{ - Key: &scalar.Lnumber{Value: "2"}, - Val: &expr.Reference{Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + &ast.ExprArrayItem{ + Key: &ast.ScalarLnumber{Value: []byte("2")}, + Val: &ast.ExprReference{Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }}, }, - &expr.ArrayItem{ - Val: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }, }, @@ -2327,24 +2324,24 @@ func TestPrinterPrintShortList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.ShortList{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.ExprShortList{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, }, - &expr.ArrayItem{ - Val: &expr.List{ - Items: []node.Node{ - &expr.ArrayItem{ - Val: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.ExprArrayItem{ + Val: &ast.ExprList{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, - &expr.ArrayItem{ - Val: &expr.Variable{ - VarName: &node.Identifier{Value: "c"}, + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("c")}, }, }, }, @@ -2365,19 +2362,19 @@ func TestPrinterPrintStaticCall(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.StaticCall{ - Class: &node.Identifier{Value: "Foo"}, - Call: &node.Identifier{Value: "bar"}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.ExprStaticCall{ + Class: &ast.Identifier{Value: []byte("Foo")}, + Call: &ast.Identifier{Value: []byte("bar")}, + ArgumentList: &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, }, - &node.Argument{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, @@ -2396,10 +2393,10 @@ func TestPrinterPrintStaticPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.StaticPropertyFetch{ - Class: &node.Identifier{Value: "Foo"}, - Property: &expr.Variable{ - VarName: &node.Identifier{Value: "bar"}, + p.Print(&ast.ExprStaticPropertyFetch{ + Class: &ast.Identifier{Value: []byte("Foo")}, + Property: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("bar")}, }, }) @@ -2415,12 +2412,12 @@ func TestPrinterPrintTernary(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.Ternary{ - Condition: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.ExprTernary{ + Condition: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - IfFalse: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + IfFalse: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }) @@ -2436,15 +2433,15 @@ func TestPrinterPrintTernaryFull(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.Ternary{ - Condition: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.ExprTernary{ + Condition: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - IfTrue: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + IfTrue: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, - IfFalse: &expr.Variable{ - VarName: &node.Identifier{Value: "c"}, + IfFalse: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("c")}, }, }) @@ -2460,9 +2457,9 @@ func TestPrinterPrintUnaryMinus(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.UnaryMinus{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.ExprUnaryMinus{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }) @@ -2478,9 +2475,9 @@ func TestPrinterPrintUnaryPlus(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.UnaryPlus{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.ExprUnaryPlus{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }) @@ -2496,9 +2493,9 @@ func TestPrinterPrintVariable(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.Variable{ - VarName: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.ExprVariable{ + VarName: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }) @@ -2514,9 +2511,9 @@ func TestPrinterPrintYieldFrom(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.YieldFrom{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.ExprYieldFrom{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }) @@ -2532,9 +2529,9 @@ func TestPrinterPrintYield(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.Yield{ - Value: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.ExprYield{ + Value: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }) @@ -2550,12 +2547,12 @@ func TestPrinterPrintYieldFull(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&expr.Yield{ - Key: &expr.Variable{ - VarName: &node.Identifier{Value: "k"}, + p.Print(&ast.ExprYield{ + Key: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("k")}, }, - Value: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + Value: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }) @@ -2573,14 +2570,14 @@ func TestPrinterPrintAltElseIf(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, @@ -2598,11 +2595,11 @@ func TestPrinterPrintAltElseIfEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.StmtList{}, + Stmt: &ast.StmtStmtList{}, }) expected := `elseif($a):` @@ -2617,11 +2614,11 @@ func TestPrinterPrintAltElse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltElse{ - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + p.Print(&ast.StmtAltElse{ + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, @@ -2639,8 +2636,8 @@ func TestPrinterPrintAltElseEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltElse{ - Stmt: &stmt.StmtList{}, + p.Print(&ast.StmtAltElse{ + Stmt: &ast.StmtStmtList{}, }) expected := `else:` @@ -2655,26 +2652,26 @@ func TestPrinterPrintAltFor(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltFor{ - Init: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtAltFor{ + Init: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, }, - Cond: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Cond: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, - Loop: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "c"}, + Loop: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("c")}, }, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "d"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("d")}, }}, }, }, @@ -2692,20 +2689,20 @@ func TestPrinterPrintAltForeach(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltForeach{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.StmtAltForeach{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, - Key: &expr.Variable{ - VarName: &node.Identifier{Value: "key"}, + Key: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("key")}, }, - Variable: &expr.Reference{Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "val"}, + Var: &ast.ExprReference{Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("val")}, }}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "d"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("d")}, }}, }, }, @@ -2723,42 +2720,42 @@ func TestPrinterPrintAltIf(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtAltIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "d"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("d")}, }}, }, }, - ElseIf: []node.Node{ - &stmt.AltElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + ElseIf: []ast.Vertex{ + &ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, }, - &stmt.AltElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "c"}, + &ast.StmtAltElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("c")}, }, - Stmt: &stmt.StmtList{}, + Stmt: &ast.StmtStmtList{}, }, }, - Else: &stmt.AltElse{ - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Else: &ast.StmtAltElse{ + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, @@ -2777,25 +2774,25 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltSwitch{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.StmtAltSwitch{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, - CaseList: &stmt.CaseList{ - Cases: []node.Node{ - &stmt.Case{ - Cond: &scalar.String{Value: "'a'"}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + CaseList: &ast.StmtCaseList{ + Cases: []ast.Vertex{ + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'a'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }, - &stmt.Case{ - Cond: &scalar.String{Value: "'b'"}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'b'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, @@ -2815,14 +2812,14 @@ func TestPrinterPrintAltWhile(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.AltWhile{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtAltWhile{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, @@ -2840,9 +2837,9 @@ func TestPrinterPrintStmtBreak(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Break{ - Expr: &scalar.Lnumber{ - Value: "1", + p.Print(&ast.StmtBreak{ + Expr: &ast.ScalarLnumber{ + Value: []byte("1"), }, }) @@ -2858,13 +2855,13 @@ func TestPrinterPrintStmtCase(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Case{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtCase{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }) @@ -2881,11 +2878,11 @@ func TestPrinterPrintStmtCaseEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Case{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtCase{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmts: []node.Node{}, + Stmts: []ast.Vertex{}, }) expected := "case $a:" @@ -2900,17 +2897,17 @@ func TestPrinterPrintStmtCatch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Catch{ - Types: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Exception"}}}, - &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "RuntimeException"}}}, + p.Print(&ast.StmtCatch{ + Types: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, + &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("RuntimeException")}}}, }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("e")}, }, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }) @@ -2927,33 +2924,33 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.ClassMethod{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, + p.Print(&ast.StmtClassMethod{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, ReturnsRef: true, - MethodName: &node.Identifier{Value: "foo"}, - Params: []node.Node{ - &node.Parameter{ - ByRef: true, - VariableType: &node.Nullable{Expr: &name.Name{Parts: []node.Node{&name.NamePart{Value: "int"}}}}, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + MethodName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{ + &ast.Parameter{ + ByRef: true, + Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, + DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, - &node.Parameter{ + &ast.Parameter{ Variadic: true, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, - ReturnType: &name.Name{ - Parts: []node.Node{&name.NamePart{Value: "void"}}, + ReturnType: &ast.NameName{ + Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }, @@ -2971,33 +2968,33 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.ClassMethod{ - Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + p.Print(&ast.StmtClassMethod{ + Modifiers: []ast.Vertex{ + &ast.Identifier{Value: []byte("public")}, + &ast.Identifier{Value: []byte("static")}, }, ReturnsRef: true, - MethodName: &node.Identifier{Value: "foo"}, - Params: []node.Node{ - &node.Parameter{ - ByRef: true, - VariableType: &node.Nullable{Expr: &name.Name{Parts: []node.Node{&name.NamePart{Value: "int"}}}}, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + MethodName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{ + &ast.Parameter{ + ByRef: true, + Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - DefaultValue: &expr.ConstFetch{Constant: &name.Name{Parts: []node.Node{&name.NamePart{Value: "null"}}}}, + DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, - &node.Parameter{ + &ast.Parameter{ Variadic: true, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, - ReturnType: &name.Name{ - Parts: []node.Node{&name.NamePart{Value: "void"}}, + ReturnType: &ast.NameName{ + Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}, }, - Stmt: &stmt.Nop{}, + Stmt: &ast.StmtNop{}, }) expected := `public static function &foo(?int&$a=null,...$b):void;` @@ -3012,28 +3009,28 @@ func TestPrinterPrintStmtClass(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Class{ - Modifiers: []node.Node{&node.Identifier{Value: "abstract"}}, - ClassName: &node.Identifier{Value: "Foo"}, - Extends: &stmt.ClassExtends{ - ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, + p.Print(&ast.StmtClass{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, + ClassName: &ast.Identifier{Value: []byte("Foo")}, + Extends: &ast.StmtClassExtends{ + ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - Implements: &stmt.ClassImplements{ - InterfaceNames: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}}, + Implements: &ast.StmtClassImplements{ + InterfaceNames: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, }, - Stmts: []node.Node{ - &stmt.ClassConstList{ - Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + Stmts: []ast.Vertex{ + &ast.StmtClassConstList{ + Modifiers: []ast.Vertex{ + &ast.Identifier{Value: []byte("public")}, + &ast.Identifier{Value: []byte("static")}, }, - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, }, @@ -3052,38 +3049,38 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Class{ - Modifiers: []node.Node{&node.Identifier{Value: "abstract"}}, - ArgumentList: &node.ArgumentList{ - Arguments: []node.Node{ - &node.Argument{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtClass{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, + ArgumentList: &ast.ArgumentList{ + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, }, - &node.Argument{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, }, - Extends: &stmt.ClassExtends{ - ClassName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, + Extends: &ast.StmtClassExtends{ + ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - Implements: &stmt.ClassImplements{ - InterfaceNames: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}}, + Implements: &ast.StmtClassImplements{ + InterfaceNames: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, }, - Stmts: []node.Node{ - &stmt.ClassConstList{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + Stmts: []ast.Vertex{ + &ast.StmtClassConstList{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, }, @@ -3102,16 +3099,16 @@ func TestPrinterPrintStmtClassConstList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.ClassConstList{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'a'"}, + p.Print(&ast.StmtClassConstList{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'a'")}, }, - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.String{Value: "'b'"}, + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("BAR")}, + Expr: &ast.ScalarString{Value: []byte("'b'")}, }, }, }) @@ -3128,15 +3125,15 @@ func TestPrinterPrintStmtConstList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.ConstList{ - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'a'"}, + p.Print(&ast.StmtConstList{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'a'")}, }, - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "BAR"}, - Expr: &scalar.String{Value: "'b'"}, + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("BAR")}, + Expr: &ast.ScalarString{Value: []byte("'b'")}, }, }, }) @@ -3153,9 +3150,9 @@ func TestPrinterPrintStmtConstant(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'BAR'"}, + p.Print(&ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'BAR'")}, }) expected := "FOO='BAR'" @@ -3170,9 +3167,9 @@ func TestPrinterPrintStmtContinue(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Continue{ - Expr: &scalar.Lnumber{ - Value: "1", + p.Print(&ast.StmtContinue{ + Expr: &ast.ScalarLnumber{ + Value: []byte("1"), }, }) @@ -3188,16 +3185,16 @@ func TestPrinterPrintStmtDeclareStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + p.Print(&ast.StmtDeclare{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -3214,14 +3211,14 @@ func TestPrinterPrintStmtDeclareExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + p.Print(&ast.StmtDeclare{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }) expected := `declare(FOO='bar')'bar';` @@ -3236,14 +3233,14 @@ func TestPrinterPrintStmtDeclareNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Declare{ - Consts: []node.Node{ - &stmt.Constant{ - ConstantName: &node.Identifier{Value: "FOO"}, - Expr: &scalar.String{Value: "'bar'"}, + p.Print(&ast.StmtDeclare{ + Consts: []ast.Vertex{ + &ast.StmtConstant{ + ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, - Stmt: &stmt.Nop{}, + Stmt: &ast.StmtNop{}, }) expected := `declare(FOO='bar');` @@ -3258,10 +3255,10 @@ func TestPrinterPrintStmtDefalut(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Default{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtDefault{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }) @@ -3278,8 +3275,8 @@ func TestPrinterPrintStmtDefalutEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Default{ - Stmts: []node.Node{}, + p.Print(&ast.StmtDefault{ + Stmts: []ast.Vertex{}, }) expected := `default:` @@ -3294,11 +3291,11 @@ func TestPrinterPrintStmtDo_Expression(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Do{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.Expression{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtDo{ + Cond: &ast.ScalarLnumber{Value: []byte("1")}, + Stmt: &ast.StmtExpression{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, }, }) @@ -3315,12 +3312,12 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Do{ - Cond: &scalar.Lnumber{Value: "1"}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtDo{ + Cond: &ast.ScalarLnumber{Value: []byte("1")}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }, @@ -3338,15 +3335,15 @@ func TestPrinterPrintStmtEchoHtmlState(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Root{ - Stmts: []node.Node{ - &stmt.Echo{ - Exprs: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.Root{ + Stmts: []ast.Vertex{ + &ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, @@ -3365,13 +3362,13 @@ func TestPrinterPrintStmtEchoPhpState(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Echo{ - Exprs: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }) @@ -3388,13 +3385,13 @@ func TestPrinterPrintStmtElseIfStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.ElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -3411,11 +3408,11 @@ func TestPrinterPrintStmtElseIfExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.ElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }) expected := `elseif($a)'bar';` @@ -3430,11 +3427,11 @@ func TestPrinterPrintStmtElseIfNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.ElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.Nop{}, + Stmt: &ast.StmtNop{}, }) expected := `elseif($a);` @@ -3449,10 +3446,10 @@ func TestPrinterPrintStmtElseStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Else{ - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + p.Print(&ast.StmtElse{ + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -3469,8 +3466,8 @@ func TestPrinterPrintStmtElseExpr(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Else{ - Stmt: &stmt.Expression{Expr: &scalar.String{Value: "'bar'"}}, + p.Print(&ast.StmtElse{ + Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, }) expected := `else 'bar';` @@ -3485,8 +3482,8 @@ func TestPrinterPrintStmtElseNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Else{ - Stmt: &stmt.Nop{}, + p.Print(&ast.StmtElse{ + Stmt: &ast.StmtNop{}, }) expected := `else ;` @@ -3501,9 +3498,9 @@ func TestPrinterPrintExpression(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Expression{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtExpression{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, }) @@ -3519,9 +3516,9 @@ func TestPrinterPrintStmtFinally(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Finally{ - Stmts: []node.Node{ - &stmt.Nop{}, + p.Print(&ast.StmtFinally{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }) @@ -3537,34 +3534,34 @@ func TestPrinterPrintStmtFor(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.For{ - Init: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtFor{ + Init: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, - Cond: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "c"}, + Cond: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("c")}, }, - &expr.Variable{ - VarName: &node.Identifier{Value: "d"}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("d")}, }, }, - Loop: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Loop: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("e")}, }, - &expr.Variable{ - VarName: &node.Identifier{Value: "f"}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("f")}, }, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -3581,19 +3578,19 @@ func TestPrinterPrintStmtForeach(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Foreach{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtForeach{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Key: &expr.Variable{ - VarName: &node.Identifier{Value: "k"}, + Key: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("k")}, }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "v"}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("v")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Nop{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -3610,23 +3607,23 @@ func TestPrinterPrintStmtFunction(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Function{ + p.Print(&ast.StmtFunction{ ReturnsRef: true, - FunctionName: &node.Identifier{Value: "foo"}, - Params: []node.Node{ - &node.Parameter{ + FunctionName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{ + &ast.Parameter{ ByRef: true, Variadic: false, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }, }, - ReturnType: &name.FullyQualified{ - Parts: []node.Node{&name.NamePart{Value: "Foo"}}, + ReturnType: &ast.NameFullyQualified{ + Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}, }, - Stmts: []node.Node{ - &stmt.Nop{}, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }) @@ -3642,13 +3639,13 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Global{ - Vars: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtGlobal{ + Vars: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }) @@ -3665,8 +3662,8 @@ func TestPrinterPrintStmtGoto(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Goto{ - Label: &node.Identifier{Value: "FOO"}, + p.Print(&ast.StmtGoto{ + Label: &ast.Identifier{Value: []byte("FOO")}, }) expected := `goto FOO;` @@ -3681,16 +3678,16 @@ func TestPrinterPrintStmtGroupUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.GroupUse{ - UseType: &node.Identifier{Value: "function"}, - Prefix: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - UseList: []node.Node{ - &stmt.Use{ - Use: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, - Alias: &node.Identifier{Value: "Baz"}, + p.Print(&ast.StmtGroupUse{ + UseType: &ast.Identifier{Value: []byte("function")}, + Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + UseList: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + Alias: &ast.Identifier{Value: []byte("Baz")}, }, - &stmt.Use{ - Use: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Quuz"}}}, + &ast.StmtUse{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, }, }) @@ -3707,7 +3704,7 @@ func TestPrinterPrintHaltCompiler(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.HaltCompiler{}) + p.Print(&ast.StmtHaltCompiler{}) expected := `__halt_compiler();` actual := o.String() @@ -3721,41 +3718,41 @@ func TestPrinterPrintIfExpression(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.If{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.Expression{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Stmt: &ast.StmtExpression{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, - ElseIf: []node.Node{ - &stmt.ElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "c"}, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("c")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "d"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("d")}, }, }, }, }, }, - &stmt.ElseIf{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + &ast.StmtElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("e")}, }, - Stmt: &stmt.Nop{}, + Stmt: &ast.StmtNop{}, }, }, - Else: &stmt.Else{ - Stmt: &stmt.Expression{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "f"}, + Else: &ast.StmtElse{ + Stmt: &ast.StmtExpression{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("f")}, }, }, }, @@ -3773,15 +3770,15 @@ func TestPrinterPrintIfStmtList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.If{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, @@ -3800,11 +3797,11 @@ func TestPrinterPrintIfNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.If{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.Nop{}, + Stmt: &ast.StmtNop{}, }) expected := `if($a);` @@ -3819,10 +3816,10 @@ func TestPrinterPrintInlineHtml(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&node.Root{ - Stmts: []node.Node{ - &stmt.InlineHtml{ - Value: "test", + p.Print(&ast.Root{ + Stmts: []ast.Vertex{ + &ast.StmtInlineHtml{ + Value: []byte("test"), }, }, }) @@ -3839,23 +3836,23 @@ func TestPrinterPrintInterface(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Interface{ - InterfaceName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Extends: &stmt.InterfaceExtends{ - InterfaceNames: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}}, + p.Print(&ast.StmtInterface{ + InterfaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Extends: &ast.StmtInterfaceExtends{ + InterfaceNames: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, }, }, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - MethodName: &node.Identifier{Value: "foo"}, - Params: []node.Node{}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + MethodName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }, @@ -3875,8 +3872,8 @@ func TestPrinterPrintLabel(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Label{ - LabelName: &node.Identifier{Value: "FOO"}, + p.Print(&ast.StmtLabel{ + LabelName: &ast.Identifier{Value: []byte("FOO")}, }) expected := `FOO:` @@ -3891,8 +3888,8 @@ func TestPrinterPrintNamespace(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Namespace{ - NamespaceName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, + p.Print(&ast.StmtNamespace{ + NamespaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, }) expected := `namespace Foo;` @@ -3907,11 +3904,11 @@ func TestPrinterPrintNamespaceWithStmts(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Namespace{ - NamespaceName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtNamespace{ + NamespaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }) @@ -3928,7 +3925,7 @@ func TestPrinterPrintNop(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Nop{}) + p.Print(&ast.StmtNop{}) expected := `;` actual := o.String() @@ -3942,28 +3939,28 @@ func TestPrinterPrintPropertyList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.PropertyList{ - Modifiers: []node.Node{ - &node.Identifier{Value: "public"}, - &node.Identifier{Value: "static"}, + p.Print(&ast.StmtPropertyList{ + Modifiers: []ast.Vertex{ + &ast.Identifier{Value: []byte("public")}, + &ast.Identifier{Value: []byte("static")}, }, - Type: &name.Name{ - Parts: []node.Node{ - &name.NamePart{ - Value: "Foo", + Type: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("Foo"), }, }, }, - Properties: []node.Node{ - &stmt.Property{ - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Properties: []ast.Vertex{ + &ast.StmtProperty{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Expr: &scalar.String{Value: "'a'"}, + Expr: &ast.ScalarString{Value: []byte("'a'")}, }, - &stmt.Property{ - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.StmtProperty{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, @@ -3981,19 +3978,21 @@ func TestPrinterPrintProperty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Property{ - Variable: &expr.Variable{ - FreeFloating: freefloating.Collection{ - freefloating.Start: []freefloating.String{ - { - StringType: freefloating.TokenType, - Value: "$", + p.Print(&ast.StmtProperty{ + Var: &ast.ExprVariable{ + Node: ast.Node{ + Tokens: token.Collection{ + token.Start: []token.Token{ + { + ID: token.ID('$'), + Value: []byte("$"), + }, }, }, }, - VarName: &node.Identifier{Value: "a"}, + VarName: &ast.Identifier{Value: []byte("a")}, }, - Expr: &scalar.Lnumber{Value: "1"}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, }) expected := `$a=1` @@ -4008,8 +4007,8 @@ func TestPrinterPrintReturn(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Return{ - Expr: &scalar.Lnumber{Value: "1"}, + p.Print(&ast.StmtReturn{ + Expr: &ast.ScalarLnumber{Value: []byte("1")}, }) expected := `return 1;` @@ -4024,11 +4023,11 @@ func TestPrinterPrintStaticVar(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.StaticVar{ - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtStaticVar{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Expr: &scalar.Lnumber{Value: "1"}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, }) expected := `$a=1` @@ -4043,16 +4042,16 @@ func TestPrinterPrintStatic(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Static{ - Vars: []node.Node{ - &stmt.StaticVar{ - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, }, - &stmt.StaticVar{ - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.StmtStaticVar{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }, @@ -4070,13 +4069,13 @@ func TestPrinterPrintStmtList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }) @@ -4093,20 +4092,20 @@ func TestPrinterPrintStmtListNested(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, - &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, - &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "c"}, + &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("c")}, }}, }, }, @@ -4127,25 +4126,25 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Switch{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.StmtSwitch{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, - CaseList: &stmt.CaseList{ - Cases: []node.Node{ - &stmt.Case{ - Cond: &scalar.String{Value: "'a'"}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + CaseList: &ast.StmtCaseList{ + Cases: []ast.Vertex{ + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'a'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }, - &stmt.Case{ - Cond: &scalar.String{Value: "'b'"}, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'b'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, @@ -4165,9 +4164,9 @@ func TestPrinterPrintStmtThrow(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Throw{ - Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "var"}, + p.Print(&ast.StmtThrow{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("var")}, }, }) @@ -4183,14 +4182,14 @@ func TestPrinterPrintStmtTraitAdaptationList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.TraitAdaptationList{ - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Method: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtTraitAdaptationList{ + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, }, - Alias: &node.Identifier{Value: "b"}, + Alias: &ast.Identifier{Value: []byte("b")}, }, }, }) @@ -4207,8 +4206,8 @@ func TestPrinterPrintStmtTraitMethodRef(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.TraitMethodRef{ - Method: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtTraitMethodRef{ + Method: &ast.Identifier{Value: []byte("a")}, }) expected := `a` @@ -4223,9 +4222,9 @@ func TestPrinterPrintStmtTraitMethodRefFull(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.TraitMethodRef{ - Trait: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Method: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtTraitMethodRef{ + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, }) expected := `Foo::a` @@ -4240,13 +4239,13 @@ func TestPrinterPrintStmtTraitUseAlias(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Method: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtTraitUseAlias{ + Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, }, - Modifier: &node.Identifier{Value: "public"}, - Alias: &node.Identifier{Value: "b"}, + Modifier: &ast.Identifier{Value: []byte("public")}, + Alias: &ast.Identifier{Value: []byte("b")}, }) expected := `Foo::a as public b;` @@ -4261,14 +4260,14 @@ func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.TraitUsePrecedence{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Method: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtTraitUsePrecedence{ + Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, }, - Insteadof: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}}, + Insteadof: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, }, }) @@ -4284,12 +4283,12 @@ func TestPrinterPrintStmtTraitUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.TraitUse{ - Traits: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, + p.Print(&ast.StmtTraitUse{ + Traits: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - TraitAdaptationList: &stmt.Nop{}, + TraitAdaptationList: &ast.StmtNop{}, }) expected := `use Foo,Bar;` @@ -4304,19 +4303,19 @@ func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.TraitUse{ - Traits: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Bar"}}}, + p.Print(&ast.StmtTraitUse{ + Traits: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - TraitAdaptationList: &stmt.TraitAdaptationList{ - Adaptations: []node.Node{ - &stmt.TraitUseAlias{ - Ref: &stmt.TraitMethodRef{ - Trait: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Method: &node.Identifier{Value: "a"}, + TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, }, - Alias: &node.Identifier{Value: "b"}, + Alias: &ast.Identifier{Value: []byte("b")}, }, }, }, @@ -4334,17 +4333,17 @@ func TestPrinterPrintTrait(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Trait{ - TraitName: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Stmts: []node.Node{ - &stmt.ClassMethod{ - Modifiers: []node.Node{&node.Identifier{Value: "public"}}, - MethodName: &node.Identifier{Value: "foo"}, - Params: []node.Node{}, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtTrait{ + TraitName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Stmts: []ast.Vertex{ + &ast.StmtClassMethod{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + MethodName: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }, @@ -4364,31 +4363,31 @@ func TestPrinterPrintStmtTry(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Try{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtTry{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, - Catches: []node.Node{ - &stmt.Catch{ - Types: []node.Node{ - &name.Name{Parts: []node.Node{&name.NamePart{Value: "Exception"}}}, - &name.FullyQualified{Parts: []node.Node{&name.NamePart{Value: "RuntimeException"}}}, + Catches: []ast.Vertex{ + &ast.StmtCatch{ + Types: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, + &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("RuntimeException")}}}, }, - Variable: &expr.Variable{ - VarName: &node.Identifier{Value: "e"}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("e")}, }, - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }}, }, }, }, - Finally: &stmt.Finally{ - Stmts: []node.Node{ - &stmt.Nop{}, + Finally: &ast.StmtFinally{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, }, }, }) @@ -4405,13 +4404,13 @@ func TestPrinterPrintStmtUnset(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Unset{ - Vars: []node.Node{ - &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtUnset{ + Vars: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - &expr.Variable{ - VarName: &node.Identifier{Value: "b"}, + &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("b")}, }, }, }) @@ -4428,15 +4427,15 @@ func TestPrinterPrintStmtUseList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.UseList{ - UseType: &node.Identifier{Value: "function"}, - Uses: []node.Node{ - &stmt.Use{ - Use: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Alias: &node.Identifier{Value: "Bar"}, + p.Print(&ast.StmtUseList{ + UseType: &ast.Identifier{Value: []byte("function")}, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, }, - &stmt.Use{ - Use: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Baz"}}}, + &ast.StmtUse{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, }, }, }) @@ -4453,10 +4452,10 @@ func TestPrinterPrintUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.Use{ - UseType: &node.Identifier{Value: "function"}, - Use: &name.Name{Parts: []node.Node{&name.NamePart{Value: "Foo"}}}, - Alias: &node.Identifier{Value: "Bar"}, + p.Print(&ast.StmtUse{ + UseType: &ast.Identifier{Value: []byte("function")}, + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, }) expected := `function Foo as Bar` @@ -4471,14 +4470,14 @@ func TestPrinterPrintWhileStmtList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&stmt.While{ - Cond: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + p.Print(&ast.StmtWhile{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }, - Stmt: &stmt.StmtList{ - Stmts: []node.Node{ - &stmt.Expression{Expr: &expr.Variable{ - VarName: &node.Identifier{Value: "a"}, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("a")}, }}, }, }, diff --git a/pkg/token/position.go b/pkg/token/position.go index 209ed9d..7032e5a 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -2,8 +2,6 @@ package token type Position int -type Collection map[Position][]Token - //go:generate stringer -type=Position -output ./position_string.go const ( Start Position = iota @@ -86,3 +84,14 @@ const ( OpenParenthesisToken CloseParenthesisToken ) + +type Collection map[Position][]Token + +func (c Collection) IsEmpty() bool { + for _, v := range c { + if len(v) > 0 { + return false + } + } + return true +} diff --git a/printer/printer.go b/printer/printer.go deleted file mode 100644 index 06ad2ae..0000000 --- a/printer/printer.go +++ /dev/null @@ -1,3267 +0,0 @@ -package printer - -import ( - "io" - "strings" - - "github.com/z7zmey/php-parser/freefloating" - - "github.com/z7zmey/php-parser/node/stmt" - - "github.com/z7zmey/php-parser/node" - "github.com/z7zmey/php-parser/node/expr" - "github.com/z7zmey/php-parser/node/expr/assign" - "github.com/z7zmey/php-parser/node/expr/binary" - "github.com/z7zmey/php-parser/node/expr/cast" - "github.com/z7zmey/php-parser/node/name" - "github.com/z7zmey/php-parser/node/scalar" -) - -type printerState int - -const ( - PhpState printerState = iota - HtmlState -) - -type Printer struct { - w io.Writer - s printerState -} - -// NewPrinter - Constructor for Printer -func NewPrinter(w io.Writer) *Printer { - return &Printer{ - w: w, - } -} - -func (p *Printer) SetState(s printerState) { - p.s = s -} - -func (p *Printer) Print(n node.Node) { - _, isRoot := n.(*node.Root) - _, isInlineHtml := n.(*stmt.InlineHtml) - if p.s == HtmlState && !isInlineHtml && !isRoot { - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " 0 { - io.WriteString(p.w, glue) - } - - p.Print(n) - } -} - -func (p *Printer) printNodes(nn []node.Node) { - for _, n := range nn { - p.Print(n) - } -} - -func (p *Printer) printFreeFloating(n node.Node, pos freefloating.Position) { - if n == nil { - return - } - - for _, m := range (*n.GetFreeFloating())[pos] { - io.WriteString(p.w, m.Value) - } -} - -func (p *Printer) printNode(n node.Node) { - switch n.(type) { - - // node - - case *node.Root: - p.printNodeRoot(n) - case *node.Identifier: - p.printNodeIdentifier(n) - case *node.Parameter: - p.printNodeParameter(n) - case *node.Nullable: - p.printNodeNullable(n) - case *node.Argument: - p.printNodeArgument(n) - - // name - - case *name.NamePart: - p.printNameNamePart(n) - case *name.Name: - p.printNameName(n) - case *name.FullyQualified: - p.printNameFullyQualified(n) - case *name.Relative: - p.printNameRelative(n) - - // scalar - - case *scalar.Lnumber: - p.printScalarLNumber(n) - case *scalar.Dnumber: - p.printScalarDNumber(n) - case *scalar.String: - p.printScalarString(n) - case *scalar.EncapsedStringPart: - p.printScalarEncapsedStringPart(n) - case *scalar.Encapsed: - p.printScalarEncapsed(n) - case *scalar.Heredoc: - p.printScalarHeredoc(n) - case *scalar.MagicConstant: - p.printScalarMagicConstant(n) - - // assign - - case *assign.Assign: - p.printAssign(n) - case *assign.Reference: - p.printAssignReference(n) - case *assign.BitwiseAnd: - p.printAssignBitwiseAnd(n) - case *assign.BitwiseOr: - p.printAssignBitwiseOr(n) - case *assign.BitwiseXor: - p.printAssignBitwiseXor(n) - case *assign.Coalesce: - p.printAssignCoalesce(n) - case *assign.Concat: - p.printAssignConcat(n) - case *assign.Div: - p.printAssignDiv(n) - case *assign.Minus: - p.printAssignMinus(n) - case *assign.Mod: - p.printAssignMod(n) - case *assign.Mul: - p.printAssignMul(n) - case *assign.Plus: - p.printAssignPlus(n) - case *assign.Pow: - p.printAssignPow(n) - case *assign.ShiftLeft: - p.printAssignShiftLeft(n) - case *assign.ShiftRight: - p.printAssignShiftRight(n) - - // binary - - case *binary.BitwiseAnd: - p.printBinaryBitwiseAnd(n) - case *binary.BitwiseOr: - p.printBinaryBitwiseOr(n) - case *binary.BitwiseXor: - p.printBinaryBitwiseXor(n) - case *binary.BooleanAnd: - p.printBinaryBooleanAnd(n) - case *binary.BooleanOr: - p.printBinaryBooleanOr(n) - case *binary.Coalesce: - p.printBinaryCoalesce(n) - case *binary.Concat: - p.printBinaryConcat(n) - case *binary.Div: - p.printBinaryDiv(n) - case *binary.Equal: - p.printBinaryEqual(n) - case *binary.GreaterOrEqual: - p.printBinaryGreaterOrEqual(n) - case *binary.Greater: - p.printBinaryGreater(n) - case *binary.Identical: - p.printBinaryIdentical(n) - case *binary.LogicalAnd: - p.printBinaryLogicalAnd(n) - case *binary.LogicalOr: - p.printBinaryLogicalOr(n) - case *binary.LogicalXor: - p.printBinaryLogicalXor(n) - case *binary.Minus: - p.printBinaryMinus(n) - case *binary.Mod: - p.printBinaryMod(n) - case *binary.Mul: - p.printBinaryMul(n) - case *binary.NotEqual: - p.printBinaryNotEqual(n) - case *binary.NotIdentical: - p.printBinaryNotIdentical(n) - case *binary.Plus: - p.printBinaryPlus(n) - case *binary.Pow: - p.printBinaryPow(n) - case *binary.ShiftLeft: - p.printBinaryShiftLeft(n) - case *binary.ShiftRight: - p.printBinaryShiftRight(n) - case *binary.SmallerOrEqual: - p.printBinarySmallerOrEqual(n) - case *binary.Smaller: - p.printBinarySmaller(n) - case *binary.Spaceship: - p.printBinarySpaceship(n) - - // cast - - case *cast.Array: - p.printArray(n) - case *cast.Bool: - p.printBool(n) - case *cast.Double: - p.printDouble(n) - case *cast.Int: - p.printInt(n) - case *cast.Object: - p.printObject(n) - case *cast.String: - p.printString(n) - case *cast.Unset: - p.printUnset(n) - - // expr - - case *expr.ArrayDimFetch: - p.printExprArrayDimFetch(n) - case *expr.ArrayItem: - p.printExprArrayItem(n) - case *expr.Array: - p.printExprArray(n) - case *expr.ArrowFunction: - p.printExprArrowFunction(n) - case *expr.BitwiseNot: - p.printExprBitwiseNot(n) - case *expr.BooleanNot: - p.printExprBooleanNot(n) - case *expr.ClassConstFetch: - p.printExprClassConstFetch(n) - case *expr.Clone: - p.printExprClone(n) - case *expr.ClosureUse: - p.printExprClosureUse(n) - case *expr.Closure: - p.printExprClosure(n) - case *expr.ConstFetch: - p.printExprConstFetch(n) - case *expr.Empty: - p.printExprEmpty(n) - case *expr.ErrorSuppress: - p.printExprErrorSuppress(n) - case *expr.Eval: - p.printExprEval(n) - case *expr.Exit: - p.printExprExit(n) - case *expr.FunctionCall: - p.printExprFunctionCall(n) - case *expr.Include: - p.printExprInclude(n) - case *expr.IncludeOnce: - p.printExprIncludeOnce(n) - case *expr.InstanceOf: - p.printExprInstanceOf(n) - case *expr.Isset: - p.printExprIsset(n) - case *expr.List: - p.printExprList(n) - case *expr.MethodCall: - p.printExprMethodCall(n) - case *expr.New: - p.printExprNew(n) - case *expr.PostDec: - p.printExprPostDec(n) - case *expr.PostInc: - p.printExprPostInc(n) - case *expr.PreDec: - p.printExprPreDec(n) - case *expr.PreInc: - p.printExprPreInc(n) - case *expr.Print: - p.printExprPrint(n) - case *expr.PropertyFetch: - p.printExprPropertyFetch(n) - case *expr.Reference: - p.printExprReference(n) - case *expr.Require: - p.printExprRequire(n) - case *expr.RequireOnce: - p.printExprRequireOnce(n) - case *expr.ShellExec: - p.printExprShellExec(n) - case *expr.ShortArray: - p.printExprShortArray(n) - case *expr.ShortList: - p.printExprShortList(n) - case *expr.StaticCall: - p.printExprStaticCall(n) - case *expr.StaticPropertyFetch: - p.printExprStaticPropertyFetch(n) - case *expr.Ternary: - p.printExprTernary(n) - case *expr.UnaryMinus: - p.printExprUnaryMinus(n) - case *expr.UnaryPlus: - p.printExprUnaryPlus(n) - case *expr.Variable: - p.printExprVariable(n) - case *expr.YieldFrom: - p.printExprYieldFrom(n) - case *expr.Yield: - p.printExprYield(n) - - // stmt - - case *stmt.AltElseIf: - p.printStmtAltElseIf(n) - case *stmt.AltElse: - p.printStmtAltElse(n) - case *stmt.AltFor: - p.printStmtAltFor(n) - case *stmt.AltForeach: - p.printStmtAltForeach(n) - case *stmt.AltIf: - p.printStmtAltIf(n) - case *stmt.AltSwitch: - p.printStmtAltSwitch(n) - case *stmt.AltWhile: - p.printStmtAltWhile(n) - case *stmt.Break: - p.printStmtBreak(n) - case *stmt.Case: - p.printStmtCase(n) - case *stmt.Catch: - p.printStmtCatch(n) - case *stmt.ClassMethod: - p.printStmtClassMethod(n) - case *stmt.Class: - p.printStmtClass(n) - case *stmt.ClassConstList: - p.printStmtClassConstList(n) - case *stmt.ConstList: - p.printStmtConstList(n) - case *stmt.Constant: - p.printStmtConstant(n) - case *stmt.Continue: - p.printStmtContinue(n) - case *stmt.Declare: - p.printStmtDeclare(n) - case *stmt.Default: - p.printStmtDefault(n) - case *stmt.Do: - p.printStmtDo(n) - case *stmt.Echo: - p.printStmtEcho(n) - case *stmt.ElseIf: - p.printStmtElseif(n) - case *stmt.Else: - p.printStmtElse(n) - case *stmt.Expression: - p.printStmtExpression(n) - case *stmt.Finally: - p.printStmtFinally(n) - case *stmt.For: - p.printStmtFor(n) - case *stmt.Foreach: - p.printStmtForeach(n) - case *stmt.Function: - p.printStmtFunction(n) - case *stmt.Global: - p.printStmtGlobal(n) - case *stmt.Goto: - p.printStmtGoto(n) - case *stmt.GroupUse: - p.printStmtGroupUse(n) - case *stmt.HaltCompiler: - p.printStmtHaltCompiler(n) - case *stmt.If: - p.printStmtIf(n) - case *stmt.InlineHtml: - p.printStmtInlineHTML(n) - case *stmt.Interface: - p.printStmtInterface(n) - case *stmt.Label: - p.printStmtLabel(n) - case *stmt.Namespace: - p.printStmtNamespace(n) - case *stmt.Nop: - p.printStmtNop(n) - case *stmt.PropertyList: - p.printStmtPropertyList(n) - case *stmt.Property: - p.printStmtProperty(n) - case *stmt.Return: - p.printStmtReturn(n) - case *stmt.StaticVar: - p.printStmtStaticVar(n) - case *stmt.Static: - p.printStmtStatic(n) - case *stmt.StmtList: - p.printStmtStmtList(n) - case *stmt.Switch: - p.printStmtSwitch(n) - case *stmt.Throw: - p.printStmtThrow(n) - case *stmt.TraitAdaptationList: - p.printStmtTraitAdaptationList(n) - case *stmt.TraitMethodRef: - p.printStmtTraitMethodRef(n) - case *stmt.TraitUseAlias: - p.printStmtTraitUseAlias(n) - case *stmt.TraitUsePrecedence: - p.printStmtTraitUsePrecedence(n) - case *stmt.TraitUse: - p.printStmtTraitUse(n) - case *stmt.Trait: - p.printStmtTrait(n) - case *stmt.Try: - p.printStmtTry(n) - case *stmt.Unset: - p.printStmtUnset(n) - case *stmt.UseList: - p.printStmtUseList(n) - case *stmt.Use: - p.printStmtUse(n) - case *stmt.While: - p.printStmtWhile(n) - } -} - -// node - -func (p *Printer) printNodeRoot(n node.Node) { - nn := n.(*node.Root) - p.SetState(HtmlState) - p.printFreeFloating(nn, freefloating.Start) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printNodeIdentifier(n node.Node) { - nn := n.(*node.Identifier) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, nn.Value) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printNodeParameter(n node.Node) { - nn := n.(*node.Parameter) - p.printFreeFloating(nn, freefloating.Start) - - if nn.VariableType != nil { - p.Print(nn.VariableType) - } - p.printFreeFloating(nn, freefloating.OptionalType) - - if nn.ByRef { - io.WriteString(p.w, "&") - } - p.printFreeFloating(nn, freefloating.Ampersand) - - if nn.Variadic { - io.WriteString(p.w, "...") - } - p.printFreeFloating(nn, freefloating.Variadic) - - p.Print(nn.Variable) - - if nn.DefaultValue != nil { - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "=") - p.Print(nn.DefaultValue) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printNodeNullable(n node.Node) { - nn := n.(*node.Nullable) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "?") - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printNodeArgument(n node.Node) { - nn := n.(*node.Argument) - p.printFreeFloating(nn, freefloating.Start) - - if nn.IsReference { - io.WriteString(p.w, "&") - } - p.printFreeFloating(nn, freefloating.Ampersand) - - if nn.Variadic { - io.WriteString(p.w, "...") - } - p.printFreeFloating(nn, freefloating.Variadic) - - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -// name - -func (p *Printer) printNameNamePart(n node.Node) { - nn := n.(*name.NamePart) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, nn.Value) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printNameName(n node.Node) { - nn := n.(*name.Name) - p.printFreeFloating(nn, freefloating.Start) - - p.joinPrint("\\", nn.Parts) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printNameFullyQualified(n node.Node) { - nn := n.(*name.FullyQualified) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "\\") - p.joinPrint("\\", nn.Parts) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printNameRelative(n node.Node) { - nn := n.(*name.Relative) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "namespace") - p.printFreeFloating(nn, freefloating.Namespace) - - for _, part := range nn.Parts { - io.WriteString(p.w, "\\") - p.Print(part) - } - - p.printFreeFloating(nn, freefloating.End) -} - -// scalar - -func (p *Printer) printScalarLNumber(n node.Node) { - nn := n.(*scalar.Lnumber) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, nn.Value) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printScalarDNumber(n node.Node) { - nn := n.(*scalar.Dnumber) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, nn.Value) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printScalarString(n node.Node) { - nn := n.(*scalar.String) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, nn.Value) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printScalarEncapsedStringPart(n node.Node) { - nn := n.(*scalar.EncapsedStringPart) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, nn.Value) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printScalarEncapsed(n node.Node) { - nn := n.(*scalar.Encapsed) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "\"") - for _, part := range nn.Parts { - switch part.(type) { - case *expr.ArrayDimFetch: - s := (*part.GetFreeFloating())[freefloating.Start] - if len(s) > 0 && s[0].Value == "${" { - p.printExprArrayDimFetchWithoutLeadingDollar(part) - } else { - p.Print(part) - } - case *expr.Variable: - s := (*part.GetFreeFloating())[freefloating.Start] - if len(s) > 0 && s[0].Value == "${" { - p.printExprVariableWithoutLeadingDollar(part) - } else { - p.Print(part) - } - default: - p.Print(part) - } - } - io.WriteString(p.w, "\"") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printScalarHeredoc(n node.Node) { - nn := n.(*scalar.Heredoc) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, nn.Label) - - for _, part := range nn.Parts { - switch part.(type) { - case *expr.ArrayDimFetch: - s := (*part.GetFreeFloating())[freefloating.Start] - if len(s) > 0 && s[0].Value == "${" { - p.printExprArrayDimFetchWithoutLeadingDollar(part) - } else { - p.Print(part) - } - case *expr.Variable: - s := (*part.GetFreeFloating())[freefloating.Start] - if len(s) > 0 && s[0].Value == "${" { - p.printExprVariableWithoutLeadingDollar(part) - } else { - p.Print(part) - } - default: - p.Print(part) - } - } - - io.WriteString(p.w, strings.Trim(nn.Label, "<\"'\n")) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printScalarMagicConstant(n node.Node) { - nn := n.(*scalar.MagicConstant) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, nn.Value) - p.printFreeFloating(nn, freefloating.End) -} - -// Assign - -func (p *Printer) printAssign(n node.Node) { - nn := n.(*assign.Assign) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignReference(n node.Node) { - nn := n.(*assign.Reference) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "=") - p.printFreeFloating(nn, freefloating.Equal) - io.WriteString(p.w, "&") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignBitwiseAnd(n node.Node) { - nn := n.(*assign.BitwiseAnd) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "&") - io.WriteString(p.w, "=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignBitwiseOr(n node.Node) { - nn := n.(*assign.BitwiseOr) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "|=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignBitwiseXor(n node.Node) { - nn := n.(*assign.BitwiseXor) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "^=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignCoalesce(n node.Node) { - nn := n.(*assign.Coalesce) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "??=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignConcat(n node.Node) { - nn := n.(*assign.Concat) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, ".=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignDiv(n node.Node) { - nn := n.(*assign.Div) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "/=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignMinus(n node.Node) { - nn := n.(*assign.Minus) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "-=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignMod(n node.Node) { - nn := n.(*assign.Mod) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "%=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignMul(n node.Node) { - nn := n.(*assign.Mul) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "*=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignPlus(n node.Node) { - nn := n.(*assign.Plus) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "+=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignPow(n node.Node) { - nn := n.(*assign.Pow) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "**=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignShiftLeft(n node.Node) { - nn := n.(*assign.ShiftLeft) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "<<=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printAssignShiftRight(n node.Node) { - nn := n.(*assign.ShiftRight) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, ">>=") - p.Print(nn.Expression) - - p.printFreeFloating(nn, freefloating.End) -} - -// binary - -func (p *Printer) printBinaryBitwiseAnd(n node.Node) { - nn := n.(*binary.BitwiseAnd) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "&") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryBitwiseOr(n node.Node) { - nn := n.(*binary.BitwiseOr) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "|") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryBitwiseXor(n node.Node) { - nn := n.(*binary.BitwiseXor) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "^") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryBooleanAnd(n node.Node) { - nn := n.(*binary.BooleanAnd) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "&&") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryBooleanOr(n node.Node) { - nn := n.(*binary.BooleanOr) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "||") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryCoalesce(n node.Node) { - nn := n.(*binary.Coalesce) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "??") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryConcat(n node.Node) { - nn := n.(*binary.Concat) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ".") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryDiv(n node.Node) { - nn := n.(*binary.Div) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "/") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryEqual(n node.Node) { - nn := n.(*binary.Equal) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "==") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryGreaterOrEqual(n node.Node) { - nn := n.(*binary.GreaterOrEqual) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ">=") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryGreater(n node.Node) { - nn := n.(*binary.Greater) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ">") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryIdentical(n node.Node) { - nn := n.(*binary.Identical) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "===") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryLogicalAnd(n node.Node) { - nn := n.(*binary.LogicalAnd) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "and") - if nn.Right.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryLogicalOr(n node.Node) { - nn := n.(*binary.LogicalOr) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "or") - if nn.Right.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryLogicalXor(n node.Node) { - nn := n.(*binary.LogicalXor) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "xor") - if nn.Right.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryMinus(n node.Node) { - nn := n.(*binary.Minus) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "-") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryMod(n node.Node) { - nn := n.(*binary.Mod) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "%") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryMul(n node.Node) { - nn := n.(*binary.Mul) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "*") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryNotEqual(n node.Node) { - nn := n.(*binary.NotEqual) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - p.printFreeFloating(nn, freefloating.Equal) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "!=") - } - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryNotIdentical(n node.Node) { - nn := n.(*binary.NotIdentical) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "!==") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryPlus(n node.Node) { - nn := n.(*binary.Plus) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "+") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryPow(n node.Node) { - nn := n.(*binary.Pow) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "**") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryShiftLeft(n node.Node) { - nn := n.(*binary.ShiftLeft) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "<<") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinaryShiftRight(n node.Node) { - nn := n.(*binary.ShiftRight) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ">>") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinarySmallerOrEqual(n node.Node) { - nn := n.(*binary.SmallerOrEqual) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "<=") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinarySmaller(n node.Node) { - nn := n.(*binary.Smaller) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "<") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBinarySpaceship(n node.Node) { - nn := n.(*binary.Spaceship) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "<=>") - p.Print(nn.Right) - - p.printFreeFloating(nn, freefloating.End) -} - -// cast - -func (p *Printer) printArray(n node.Node) { - nn := n.(*cast.Array) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Cast) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "(array)") - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printBool(n node.Node) { - nn := n.(*cast.Bool) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Cast) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "(boolean)") - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printDouble(n node.Node) { - nn := n.(*cast.Double) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Cast) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "(float)") - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printInt(n node.Node) { - nn := n.(*cast.Int) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Cast) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "(integer)") - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printObject(n node.Node) { - nn := n.(*cast.Object) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Cast) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "(object)") - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printString(n node.Node) { - nn := n.(*cast.String) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Cast) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "(string)") - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printUnset(n node.Node) { - nn := n.(*cast.Unset) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Cast) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "(unset)") - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -// expr - -func (p *Printer) printExprArrayDimFetch(n node.Node) { - nn := n.(*expr.ArrayDimFetch) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "[") - } - p.Print(nn.Dim) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "]") - } - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprArrayDimFetchWithoutLeadingDollar(n node.Node) { - nn := n.(*expr.ArrayDimFetch) - p.printFreeFloating(nn, freefloating.Start) - p.printExprVariableWithoutLeadingDollar(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "[") - } - p.Print(nn.Dim) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "]") - } - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprArrayItem(n node.Node) { - nn := n.(*expr.ArrayItem) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Unpack { - io.WriteString(p.w, "...") - } - - if nn.Key != nil { - p.Print(nn.Key) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "=>") - } - - p.Print(nn.Val) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprArray(n node.Node) { - nn := n.(*expr.Array) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "array") - p.printFreeFloating(nn, freefloating.Array) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, freefloating.ArrayPairList) - io.WriteString(p.w, ")") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprArrowFunction(n node.Node) { - nn := n.(*expr.ArrowFunction) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Static { - io.WriteString(p.w, "static") - } - p.printFreeFloating(nn, freefloating.Static) - if nn.Static && n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - io.WriteString(p.w, "fn") - p.printFreeFloating(nn, freefloating.Function) - - if nn.ReturnsRef { - io.WriteString(p.w, "&") - } - p.printFreeFloating(nn, freefloating.Ampersand) - - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, freefloating.ParameterList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Params) - - if nn.ReturnType != nil { - io.WriteString(p.w, ":") - p.Print(nn.ReturnType) - } - p.printFreeFloating(nn, freefloating.ReturnType) - - io.WriteString(p.w, "=>") - - p.printNode(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprBitwiseNot(n node.Node) { - nn := n.(*expr.BitwiseNot) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "~") - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprBooleanNot(n node.Node) { - nn := n.(*expr.BooleanNot) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "!") - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprClassConstFetch(n node.Node) { - nn := n.(*expr.ClassConstFetch) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Class) - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "::") - p.Print(nn.ConstantName) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprClone(n node.Node) { - nn := n.(*expr.Clone) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "clone") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprClosureUse(n node.Node) { - nn := n.(*expr.ClosureUse) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "use") - p.printFreeFloating(nn, freefloating.Use) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Uses) - p.printFreeFloating(nn, freefloating.LexicalVarList) - io.WriteString(p.w, ")") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprClosure(n node.Node) { - nn := n.(*expr.Closure) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Static { - io.WriteString(p.w, "static") - } - p.printFreeFloating(nn, freefloating.Static) - if nn.Static && n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - io.WriteString(p.w, "function") - p.printFreeFloating(nn, freefloating.Function) - - if nn.ReturnsRef { - io.WriteString(p.w, "&") - } - p.printFreeFloating(nn, freefloating.Ampersand) - - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, freefloating.ParameterList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Params) - - if nn.ClosureUse != nil { - p.Print(nn.ClosureUse) - } - p.printFreeFloating(nn, freefloating.LexicalVars) - - if nn.ReturnType != nil { - io.WriteString(p.w, ":") - p.Print(nn.ReturnType) - } - p.printFreeFloating(nn, freefloating.ReturnType) - - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprConstFetch(n node.Node) { - nn := n.(*expr.ConstFetch) - p.printFreeFloating(nn, freefloating.Start) - p.Print(nn.Constant) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprEmpty(n node.Node) { - nn := n.(*expr.Empty) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "empty") - p.printFreeFloating(nn, freefloating.Empty) - io.WriteString(p.w, "(") - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprErrorSuppress(n node.Node) { - nn := n.(*expr.ErrorSuppress) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "@") - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprEval(n node.Node) { - nn := n.(*expr.Eval) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "eval") - p.printFreeFloating(nn, freefloating.Eval) - io.WriteString(p.w, "(") - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprExit(n node.Node) { - nn := n.(*expr.Exit) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Die { - io.WriteString(p.w, "die") - } else { - io.WriteString(p.w, "exit") - } - p.printFreeFloating(nn, freefloating.Exit) - - if nn.Expr != nil && nn.Expr.GetFreeFloating().IsEmpty() && nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprFunctionCall(n node.Node) { - nn := n.(*expr.FunctionCall) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Function) - - p.printFreeFloating(nn.ArgumentList, freefloating.Start) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, freefloating.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, freefloating.End) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprInclude(n node.Node) { - nn := n.(*expr.Include) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "include") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprIncludeOnce(n node.Node) { - nn := n.(*expr.IncludeOnce) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "include_once") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprInstanceOf(n node.Node) { - nn := n.(*expr.InstanceOf) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - io.WriteString(p.w, "instanceof") - - if nn.Class.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Class) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprIsset(n node.Node) { - nn := n.(*expr.Isset) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "isset") - p.printFreeFloating(nn, freefloating.Isset) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Variables) - p.printFreeFloating(nn, freefloating.VarList) - io.WriteString(p.w, ")") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprList(n node.Node) { - nn := n.(*expr.List) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "list") - p.printFreeFloating(nn, freefloating.List) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, freefloating.ArrayPairList) - io.WriteString(p.w, ")") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprMethodCall(n node.Node) { - nn := n.(*expr.MethodCall) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "->") - p.Print(nn.Method) - - p.printFreeFloating(nn.ArgumentList, freefloating.Start) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, freefloating.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, freefloating.End) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprNew(n node.Node) { - nn := n.(*expr.New) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "new") - if nn.Class.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Class) - - if nn.ArgumentList != nil { - p.printFreeFloating(nn.ArgumentList, freefloating.Start) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, freefloating.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, freefloating.End) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprPostDec(n node.Node) { - nn := n.(*expr.PostDec) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "--") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprPostInc(n node.Node) { - nn := n.(*expr.PostInc) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "++") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprPreDec(n node.Node) { - nn := n.(*expr.PreDec) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "--") - p.Print(nn.Variable) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprPreInc(n node.Node) { - nn := n.(*expr.PreInc) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "++") - p.Print(nn.Variable) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprPrint(n node.Node) { - nn := n.(*expr.Print) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "print") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprPropertyFetch(n node.Node) { - nn := n.(*expr.PropertyFetch) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "->") - p.Print(nn.Property) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprReference(n node.Node) { - nn := n.(*expr.Reference) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "&") - p.Print(nn.Variable) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprRequire(n node.Node) { - nn := n.(*expr.Require) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "require") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprRequireOnce(n node.Node) { - nn := n.(*expr.RequireOnce) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "require_once") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprShellExec(n node.Node) { - nn := n.(*expr.ShellExec) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "`") - p.joinPrint("", nn.Parts) - io.WriteString(p.w, "`") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprShortArray(n node.Node) { - nn := n.(*expr.ShortArray) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "[") - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, freefloating.ArrayPairList) - io.WriteString(p.w, "]") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprShortList(n node.Node) { - nn := n.(*expr.ShortList) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "[") - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, freefloating.ArrayPairList) - io.WriteString(p.w, "]") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprStaticCall(n node.Node) { - nn := n.(*expr.StaticCall) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Class) - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "::") - p.Print(nn.Call) - - p.printFreeFloating(nn.ArgumentList, freefloating.Start) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, freefloating.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, freefloating.End) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprStaticPropertyFetch(n node.Node) { - nn := n.(*expr.StaticPropertyFetch) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Class) - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "::") - p.Print(nn.Property) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprTernary(n node.Node) { - nn := n.(*expr.Ternary) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Condition) - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, "?") - - if nn.IfTrue != nil { - p.Print(nn.IfTrue) - } - p.printFreeFloating(nn, freefloating.True) - - io.WriteString(p.w, ":") - p.Print(nn.IfFalse) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprUnaryMinus(n node.Node) { - nn := n.(*expr.UnaryMinus) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "-") - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprUnaryPlus(n node.Node) { - nn := n.(*expr.UnaryPlus) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "+") - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprVariable(n node.Node) { - nn := n.(*expr.Variable) - p.printFreeFloating(nn, freefloating.Start) - - p.printFreeFloating(nn, freefloating.Dollar) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "$") - } - - p.Print(nn.VarName) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprVariableWithoutLeadingDollar(n node.Node) { - nn := n.(*expr.Variable) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.VarName) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprYieldFrom(n node.Node) { - nn := n.(*expr.YieldFrom) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "yield from") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printExprYield(n node.Node) { - nn := n.(*expr.Yield) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "yield") - - if nn.Key != nil { - if nn.Key.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Key) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, "=>") - } else { - if nn.Value.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.Print(nn.Value) - - p.printFreeFloating(nn, freefloating.End) -} - -// smtm - -func (p *Printer) printStmtAltElseIf(n node.Node) { - nn := n.(*stmt.AltElseIf) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "elseif") - p.printFreeFloating(nn, freefloating.ElseIf) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, ":") - - if s := nn.Stmt.(*stmt.StmtList).Stmts; len(s) > 0 { - p.printNodes(s) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtAltElse(n node.Node) { - nn := n.(*stmt.AltElse) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "else") - p.printFreeFloating(nn, freefloating.Else) - io.WriteString(p.w, ":") - - if s := nn.Stmt.(*stmt.StmtList).Stmts; len(s) > 0 { - p.printNodes(s) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtAltFor(n node.Node) { - nn := n.(*stmt.AltFor) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "for") - p.printFreeFloating(nn, freefloating.For) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Init) - p.printFreeFloating(nn, freefloating.InitExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Cond) - p.printFreeFloating(nn, freefloating.CondExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Loop) - p.printFreeFloating(nn, freefloating.IncExpr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, ":") - - s := nn.Stmt.(*stmt.StmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - - io.WriteString(p.w, "endfor") - p.printFreeFloating(nn, freefloating.AltEnd) - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtAltForeach(n node.Node) { - nn := n.(*stmt.AltForeach) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "foreach") - p.printFreeFloating(nn, freefloating.Foreach) - io.WriteString(p.w, "(") - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "as") - - if nn.Key != nil { - if nn.Key.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Key) - p.printFreeFloating(nn, freefloating.Key) - io.WriteString(p.w, "=>") - } else { - if nn.Variable.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - - io.WriteString(p.w, ":") - s := nn.Stmt.(*stmt.StmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - - io.WriteString(p.w, "endforeach") - p.printFreeFloating(nn, freefloating.AltEnd) - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtAltIf(n node.Node) { - nn := n.(*stmt.AltIf) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "if") - p.printFreeFloating(nn, freefloating.If) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, ":") - - s := nn.Stmt.(*stmt.StmtList) - p.printNodes(s.Stmts) - - for _, elseif := range nn.ElseIf { - p.Print(elseif) - } - - if nn.Else != nil { - p.Print(nn.Else) - } - - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "endif") - p.printFreeFloating(nn, freefloating.AltEnd) - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtAltSwitch(n node.Node) { - nn := n.(*stmt.AltSwitch) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "switch") - p.printFreeFloating(nn, freefloating.Switch) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, ":") - - p.printFreeFloating(nn.CaseList, freefloating.Start) - p.printFreeFloating(nn.CaseList, freefloating.CaseListStart) - p.printNodes(nn.CaseList.Cases) - p.printFreeFloating(nn.CaseList, freefloating.CaseListEnd) - p.printFreeFloating(nn.CaseList, freefloating.End) - - io.WriteString(p.w, "endswitch") - p.printFreeFloating(nn, freefloating.AltEnd) - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtAltWhile(n node.Node) { - nn := n.(*stmt.AltWhile) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "while") - p.printFreeFloating(nn, freefloating.While) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, ":") - - s := nn.Stmt.(*stmt.StmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - - io.WriteString(p.w, "endwhile") - p.printFreeFloating(nn, freefloating.AltEnd) - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtBreak(n node.Node) { - nn := n.(*stmt.Break) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "break") - if nn.Expr != nil { - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - } - p.printFreeFloating(nn, freefloating.Expr) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtCase(n node.Node) { - nn := n.(*stmt.Case) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "case") - if nn.Cond.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - p.printFreeFloating(nn, freefloating.CaseSeparator) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ":") - } - - if len(nn.Stmts) > 0 { - p.printNodes(nn.Stmts) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtCatch(n node.Node) { - nn := n.(*stmt.Catch) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "catch") - p.printFreeFloating(nn, freefloating.Catch) - io.WriteString(p.w, "(") - p.joinPrint("|", nn.Types) - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtClassMethod(n node.Node) { - nn := n.(*stmt.ClassMethod) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Modifiers != nil { - for k, m := range nn.Modifiers { - if k > 0 && m.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(m) - } - - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - p.printFreeFloating(nn, freefloating.ModifierList) - io.WriteString(p.w, "function") - p.printFreeFloating(nn, freefloating.Function) - - if nn.ReturnsRef { - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "&") - p.printFreeFloating(nn, freefloating.Ampersand) - } else { - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.Print(nn.MethodName) - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, freefloating.ParameterList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Params) - - if nn.ReturnType != nil { - io.WriteString(p.w, ":") - p.Print(nn.ReturnType) - } - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtClass(n node.Node) { - nn := n.(*stmt.Class) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Modifiers != nil { - for k, m := range nn.Modifiers { - if k > 0 && m.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(m) - } - - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - p.printFreeFloating(nn, freefloating.ModifierList) - io.WriteString(p.w, "class") - p.printFreeFloating(nn, freefloating.Class) - - if nn.ClassName != nil { - if nn.ClassName.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.ClassName) - } - - if nn.ArgumentList != nil { - p.printFreeFloating(nn.ArgumentList, freefloating.Start) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, freefloating.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, freefloating.End) - } - - if nn.Extends != nil { - p.printFreeFloating(nn.Extends, freefloating.Start) - if nn.Extends.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "extends") - if nn.Extends.ClassName.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Extends.ClassName) - } - - if nn.Implements != nil { - p.printFreeFloating(nn.Implements, freefloating.Start) - if nn.Implements.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "implements") - if nn.Implements.InterfaceNames[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Implements.InterfaceNames) - } - - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtClassConstList(n node.Node) { - nn := n.(*stmt.ClassConstList) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Modifiers != nil { - for k, m := range nn.Modifiers { - if k > 0 && m.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(m) - } - - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - p.printFreeFloating(nn, freefloating.ModifierList) - io.WriteString(p.w, "const") - - if nn.Consts[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Consts) - p.printFreeFloating(nn, freefloating.ConstList) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtConstList(n node.Node) { - nn := n.(*stmt.ConstList) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "const") - - if nn.Consts[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Consts) - p.printFreeFloating(nn, freefloating.Stmts) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtConstant(n node.Node) { - nn := n.(*stmt.Constant) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.ConstantName) - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "=") - p.Print(nn.Expr) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtContinue(n node.Node) { - nn := n.(*stmt.Continue) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "continue") - - if nn.Expr != nil { - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - } - p.printFreeFloating(nn, freefloating.Expr) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtDeclare(n node.Node) { - nn := n.(*stmt.Declare) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "declare") - p.printFreeFloating(nn, freefloating.Declare) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Consts) - p.printFreeFloating(nn, freefloating.ConstList) - io.WriteString(p.w, ")") - - if nn.Alt { - p.printFreeFloating(nn, freefloating.Cond) - io.WriteString(p.w, ":") - - s := nn.Stmt.(*stmt.StmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - - io.WriteString(p.w, "enddeclare") - p.printFreeFloating(nn, freefloating.AltEnd) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - } else { - p.Print(nn.Stmt) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtDefault(n node.Node) { - nn := n.(*stmt.Default) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "default") - p.printFreeFloating(nn, freefloating.Default) - p.printFreeFloating(nn, freefloating.CaseSeparator) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ":") - } - - if len(nn.Stmts) > 0 { - p.printNodes(nn.Stmts) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtDo(n node.Node) { - nn := n.(*stmt.Do) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "do") - - if _, ok := nn.Stmt.(*stmt.StmtList); !ok { - if nn.Stmt.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.Print(nn.Stmt) - p.printFreeFloating(nn, freefloating.Stmts) - - io.WriteString(p.w, "while") - p.printFreeFloating(nn, freefloating.While) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Cond) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtEcho(n node.Node) { - nn := n.(*stmt.Echo) - - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "echo") - } - if nn.Exprs[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - p.printFreeFloating(nn, freefloating.Start) - p.printFreeFloating(nn, freefloating.Echo) - - p.joinPrint(",", nn.Exprs) - p.printFreeFloating(nn, freefloating.Expr) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtElseif(n node.Node) { - nn := n.(*stmt.ElseIf) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "elseif") - p.printFreeFloating(nn, freefloating.ElseIf) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtElse(n node.Node) { - nn := n.(*stmt.Else) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "else") - - if _, ok := nn.Stmt.(*stmt.StmtList); !ok { - if nn.Stmt.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtExpression(n node.Node) { - nn := n.(*stmt.Expression) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtFinally(n node.Node) { - nn := n.(*stmt.Finally) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "finally") - p.printFreeFloating(nn, freefloating.Finally) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtFor(n node.Node) { - nn := n.(*stmt.For) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "for") - p.printFreeFloating(nn, freefloating.For) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Init) - p.printFreeFloating(nn, freefloating.InitExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Cond) - p.printFreeFloating(nn, freefloating.CondExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Loop) - p.printFreeFloating(nn, freefloating.IncExpr) - io.WriteString(p.w, ")") - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtForeach(n node.Node) { - nn := n.(*stmt.Foreach) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "foreach") - p.printFreeFloating(nn, freefloating.Foreach) - io.WriteString(p.w, "(") - - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - io.WriteString(p.w, "as") - - if nn.Key != nil { - if nn.Key.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Key) - p.printFreeFloating(nn, freefloating.Key) - io.WriteString(p.w, "=>") - } else { - if nn.Variable.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - p.Print(nn.Variable) - p.printFreeFloating(nn, freefloating.Var) - - io.WriteString(p.w, ")") - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtFunction(n node.Node) { - nn := n.(*stmt.Function) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "function") - p.printFreeFloating(nn, freefloating.Function) - - if nn.ReturnsRef { - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "&") - } else { - if nn.FunctionName.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.Print(nn.FunctionName) - p.printFreeFloating(nn, freefloating.Name) - - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, freefloating.ParamList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.Params) - - if nn.ReturnType != nil { - io.WriteString(p.w, ":") - p.Print(nn.ReturnType) - } - p.printFreeFloating(nn, freefloating.ReturnType) - - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtGlobal(n node.Node) { - nn := n.(*stmt.Global) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "global") - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, freefloating.VarList) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtGoto(n node.Node) { - nn := n.(*stmt.Goto) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "goto") - if nn.Label.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Label) - p.printFreeFloating(nn, freefloating.Label) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtGroupUse(n node.Node) { - nn := n.(*stmt.GroupUse) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "use") - p.printFreeFloating(nn, freefloating.Use) - - if nn.UseType != nil { - if nn.UseType.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.UseType) - } - - if nn.Prefix.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Prefix) - io.WriteString(p.w, "\\") - p.printFreeFloating(nn, freefloating.Slash) - - io.WriteString(p.w, "{") - p.joinPrint(",", nn.UseList) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - p.printFreeFloating(nn, freefloating.UseDeclarationList) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtHaltCompiler(n node.Node) { - nn := n.(*stmt.HaltCompiler) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "__halt_compiler") - p.printFreeFloating(nn, freefloating.HaltCompiller) - io.WriteString(p.w, "(") - p.printFreeFloating(nn, freefloating.OpenParenthesisToken) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.CloseParenthesisToken) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtIf(n node.Node) { - nn := n.(*stmt.If) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "if") - p.printFreeFloating(n, freefloating.If) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(n, freefloating.Expr) - io.WriteString(p.w, ")") - - p.Print(nn.Stmt) - - if nn.ElseIf != nil { - p.printNodes(nn.ElseIf) - } - - if nn.Else != nil { - p.Print(nn.Else) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtInlineHTML(n node.Node) { - nn := n.(*stmt.InlineHtml) - p.printFreeFloating(nn, freefloating.Start) - - if p.s == PhpState && nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, "?>") - } - p.SetState(HtmlState) - - io.WriteString(p.w, nn.Value) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtInterface(n node.Node) { - nn := n.(*stmt.Interface) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "interface") - - if nn.InterfaceName.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - p.Print(nn.InterfaceName) - - if nn.Extends != nil { - p.printFreeFloating(nn.Extends, freefloating.Start) - if nn.Extends.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "extends") - if nn.Extends.InterfaceNames[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Extends.InterfaceNames) - } - - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtLabel(n node.Node) { - nn := n.(*stmt.Label) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.LabelName) - p.printFreeFloating(nn, freefloating.Label) - - io.WriteString(p.w, ":") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtNamespace(n node.Node) { - nn := n.(*stmt.Namespace) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "namespace") - - if nn.NamespaceName != nil { - if nn.NamespaceName.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.NamespaceName) - } - - if nn.Stmts != nil { - p.printFreeFloating(nn, freefloating.Namespace) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - } else { - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtNop(n node.Node) { - p.printFreeFloating(n, freefloating.Start) - p.printFreeFloating(n, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - p.printFreeFloating(n, freefloating.End) -} - -func (p *Printer) printStmtPropertyList(n node.Node) { - nn := n.(*stmt.PropertyList) - p.printFreeFloating(nn, freefloating.Start) - - for k, m := range nn.Modifiers { - if k > 0 && m.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(m) - } - - if nn.Type != nil && nn.Type.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - p.Print(nn.Type) - - if nn.Properties[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - p.joinPrint(",", nn.Properties) - p.printFreeFloating(n, freefloating.PropertyList) - - p.printFreeFloating(n, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtProperty(n node.Node) { - nn := n.(*stmt.Property) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Variable) - - if nn.Expr != nil { - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "=") - p.Print(nn.Expr) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtReturn(n node.Node) { - nn := n.(*stmt.Return) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "return") - if nn.Expr != nil && nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - - p.printFreeFloating(nn, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtStaticVar(n node.Node) { - nn := n.(*stmt.StaticVar) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Variable) - - if nn.Expr != nil { - p.printFreeFloating(nn, freefloating.Var) - io.WriteString(p.w, "=") - p.Print(nn.Expr) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtStatic(n node.Node) { - nn := n.(*stmt.Static) - p.printFreeFloating(nn, freefloating.Start) - io.WriteString(p.w, "static") - - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, freefloating.VarList) - - p.printFreeFloating(nn, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtStmtList(n node.Node) { - nn := n.(*stmt.StmtList) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtSwitch(n node.Node) { - nn := n.(*stmt.Switch) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "switch") - p.printFreeFloating(nn, freefloating.Switch) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - - p.printFreeFloating(nn.CaseList, freefloating.Start) - io.WriteString(p.w, "{") - p.printFreeFloating(nn.CaseList, freefloating.CaseListStart) - p.printNodes(nn.CaseList.Cases) - p.printFreeFloating(nn.CaseList, freefloating.CaseListEnd) - io.WriteString(p.w, "}") - p.printFreeFloating(nn.CaseList, freefloating.End) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtThrow(n node.Node) { - nn := n.(*stmt.Throw) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "throw") - if nn.Expr.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - p.printFreeFloating(nn, freefloating.Expr) - - p.printFreeFloating(nn, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtTraitAdaptationList(n node.Node) { - nn := n.(*stmt.TraitAdaptationList) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "{") - p.printNodes(nn.Adaptations) - p.printFreeFloating(nn, freefloating.AdaptationList) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtTraitMethodRef(n node.Node) { - nn := n.(*stmt.TraitMethodRef) - p.printFreeFloating(nn, freefloating.Start) - - if nn.Trait != nil { - p.Print(nn.Trait) - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "::") - } - - p.Print(nn.Method) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtTraitUseAlias(n node.Node) { - nn := n.(*stmt.TraitUseAlias) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Ref) - p.printFreeFloating(nn, freefloating.Ref) - - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "as") - - if nn.Modifier != nil { - if nn.Modifier.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Modifier) - } - - if nn.Alias != nil { - if nn.Alias.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Alias) - } - p.printFreeFloating(nn, freefloating.Alias) - - p.printFreeFloating(nn, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtTraitUsePrecedence(n node.Node) { - nn := n.(*stmt.TraitUsePrecedence) - p.printFreeFloating(nn, freefloating.Start) - - p.Print(nn.Ref) - p.printFreeFloating(nn, freefloating.Ref) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - - io.WriteString(p.w, "insteadof") - if nn.Insteadof[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Insteadof) - p.printFreeFloating(nn, freefloating.NameList) - - p.printFreeFloating(nn, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtTraitUse(n node.Node) { - nn := n.(*stmt.TraitUse) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "use") - if nn.Traits[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Traits) - - p.Print(nn.TraitAdaptationList) - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtTrait(n node.Node) { - nn := n.(*stmt.Trait) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "trait") - if nn.TraitName.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.TraitName) - - p.printFreeFloating(nn, freefloating.Name) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtTry(n node.Node) { - nn := n.(*stmt.Try) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "try") - p.printFreeFloating(nn, freefloating.Try) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, freefloating.Stmts) - io.WriteString(p.w, "}") - - if nn.Catches != nil { - p.printNodes(nn.Catches) - } - - if nn.Finally != nil { - p.Print(nn.Finally) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtUnset(n node.Node) { - nn := n.(*stmt.Unset) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "unset") - p.printFreeFloating(nn, freefloating.Unset) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, freefloating.VarList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, freefloating.CloseParenthesisToken) - - p.printFreeFloating(nn, freefloating.SemiColon) - if n.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtUseList(n node.Node) { - nn := n.(*stmt.UseList) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "use") - - if nn.UseType != nil { - if nn.UseType.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.UseType) - } - - if nn.Uses[0].GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Uses) - p.printFreeFloating(nn, freefloating.UseDeclarationList) - - p.printFreeFloating(nn, freefloating.SemiColon) - if nn.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtUse(n node.Node) { - nn := n.(*stmt.Use) - p.printFreeFloating(nn, freefloating.Start) - - if nn.UseType != nil { - p.Print(nn.UseType) - if nn.UseType.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.printFreeFloating(nn, freefloating.Slash) - - p.Print(nn.Use) - - if nn.Alias != nil { - if nn.Alias.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "as") - if nn.Alias.GetFreeFloating().IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Alias) - } - - p.printFreeFloating(nn, freefloating.End) -} - -func (p *Printer) printStmtWhile(n node.Node) { - nn := n.(*stmt.While) - p.printFreeFloating(nn, freefloating.Start) - - io.WriteString(p.w, "while") - p.printFreeFloating(nn, freefloating.While) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, freefloating.Expr) - io.WriteString(p.w, ")") - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, freefloating.End) -} From f4c15f4671c72f2901501f69c8293271a09e733d Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 17 May 2020 23:13:14 +0300 Subject: [PATCH 010/140] [refactoring] fix tests --- go.mod | 1 - go.sum | 16 ----------- pkg/ast/traverser/dfs.go | 61 ++++++++++++++++++++++++++++++++++++++++ pkg/errors/error_test.go | 4 +-- 4 files changed, 63 insertions(+), 19 deletions(-) diff --git a/go.mod b/go.mod index 6b90c8b..79bd6f0 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,5 @@ require ( 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 index 6f9717a..082e37f 100644 --- a/go.sum +++ b/go.sum @@ -6,22 +6,6 @@ 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= diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 4618bc9..2bba30c 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -70,6 +70,12 @@ func (t *DFS) Traverse(n ast.Vertex) { return } case *ast.ArgumentList: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } if nn.Arguments != nil { t.visitor.Enter("Arguments", false) for _, c := range nn.Arguments { @@ -732,6 +738,12 @@ func (t *DFS) Traverse(n ast.Vertex) { return } case *ast.StmtIf: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } if nn.Cond != nil { t.visitor.Enter("Cond", true) t.Traverse(nn.Cond) @@ -2645,6 +2657,55 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } + case *ast.NameName: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Parts != nil { + t.visitor.Enter("Parts", false) + for _, c := range nn.Parts { + t.Traverse(c) + } + t.visitor.Leave("Parts", false) + } + case *ast.NameFullyQualified: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Parts != nil { + t.visitor.Enter("Parts", false) + for _, c := range nn.Parts { + t.Traverse(c) + } + t.visitor.Leave("Parts", false) + } + case *ast.NameRelative: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Parts != nil { + t.visitor.Enter("Parts", false) + for _, c := range nn.Parts { + t.Traverse(c) + } + t.visitor.Leave("Parts", false) + } + case *ast.NameNamePart: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } default: panic("unexpected type of node") } diff --git a/pkg/errors/error_test.go b/pkg/errors/error_test.go index 439157e..3fcac4c 100644 --- a/pkg/errors/error_test.go +++ b/pkg/errors/error_test.go @@ -5,8 +5,8 @@ import ( "gotest.tools/assert" - "github.com/z7zmey/php-parser/errors" - "github.com/z7zmey/php-parser/position" + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/position" ) func TestConstructor(t *testing.T) { From e98607f5d08bd7b0b89c18da1cd5c38093f19ffe Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 17 May 2020 23:50:23 +0300 Subject: [PATCH 011/140] [refactoring] use position.Position to store token position --- internal/php5/parser.go | 10 +- internal/php5/php5.go | 1040 ++++++++--------- internal/php7/parser.go | 10 +- internal/positionbuilder/position_builder.go | 44 +- .../positionbuilder/position_builder_test.go | 156 +-- internal/scanner/lexer.go | 8 +- internal/scanner/token.go | 12 +- 7 files changed, 646 insertions(+), 634 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index d4ec16d..e3b2dc9 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -8,7 +8,6 @@ import ( "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" - "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" ) @@ -45,14 +44,9 @@ func (l *Parser) Lex(lval *yySymType) int { } func (l *Parser) Error(msg string) { - pos := &position.Position{ - StartLine: l.currentToken.StartLine, - EndLine: l.currentToken.EndLine, - StartPos: l.currentToken.StartPos, - EndPos: l.currentToken.EndPos, - } + var pos = l.currentToken.Position - l.Lexer.AddError(errors.NewError(msg, pos)) + l.Lexer.AddError(errors.NewError(msg, &pos)) } func (l *Parser) WithTokens() { diff --git a/internal/php5/php5.go b/internal/php5/php5.go index b63ef14..c822f38 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:276 + // line internal/php5/php5.y:276 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) @@ -2326,7 +2326,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:288 + // line internal/php5/php5.y:288 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2341,7 +2341,7 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:301 + // line internal/php5/php5.y:301 { yyVAL.list = []ast.Vertex{} @@ -2349,7 +2349,7 @@ yydefault: } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:310 + // line internal/php5/php5.y:310 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2364,7 +2364,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:323 + // line internal/php5/php5.y:323 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2380,7 +2380,7 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:340 + // line internal/php5/php5.y:340 { // error yyVAL.node = nil @@ -2389,7 +2389,7 @@ yydefault: } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:347 + // line internal/php5/php5.y:347 { yyVAL.node = yyDollar[1].node @@ -2397,7 +2397,7 @@ yydefault: } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:353 + // line internal/php5/php5.y:353 { yyVAL.node = yyDollar[1].node @@ -2405,7 +2405,7 @@ yydefault: } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:359 + // line internal/php5/php5.y:359 { yyVAL.node = yyDollar[1].node @@ -2413,7 +2413,7 @@ yydefault: } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:365 + // line internal/php5/php5.y:365 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2431,7 +2431,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:381 + // line internal/php5/php5.y:381 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2450,7 +2450,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:398 + // line internal/php5/php5.y:398 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2469,7 +2469,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:415 + // line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2485,7 +2485,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:429 + // line internal/php5/php5.y:429 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} @@ -2501,7 +2501,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:443 + // line internal/php5/php5.y:443 { useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} @@ -2520,7 +2520,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:460 + // line internal/php5/php5.y:460 { useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} @@ -2539,7 +2539,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:477 + // line internal/php5/php5.y:477 { yyVAL.node = yyDollar[1].node @@ -2554,7 +2554,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:493 + // line internal/php5/php5.y:493 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2565,7 +2565,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:502 + // line internal/php5/php5.y:502 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2573,7 +2573,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:511 + // line internal/php5/php5.y:511 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2589,7 +2589,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:525 + // line internal/php5/php5.y:525 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2609,7 +2609,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:543 + // line internal/php5/php5.y:543 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2627,7 +2627,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:559 + // line internal/php5/php5.y:559 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2649,7 +2649,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:582 + // line internal/php5/php5.y:582 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2660,7 +2660,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:591 + // line internal/php5/php5.y:591 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2668,7 +2668,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:600 + // line internal/php5/php5.y:600 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2684,7 +2684,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:614 + // line internal/php5/php5.y:614 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2704,7 +2704,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:632 + // line internal/php5/php5.y:632 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2722,7 +2722,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:648 + // line internal/php5/php5.y:648 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2744,7 +2744,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:671 + // line internal/php5/php5.y:671 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2755,7 +2755,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:680 + // line internal/php5/php5.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2763,7 +2763,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:689 + // line internal/php5/php5.y:689 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2779,7 +2779,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:703 + // line internal/php5/php5.y:703 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2799,7 +2799,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:721 + // line internal/php5/php5.y:721 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -2817,7 +2817,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:737 + // line internal/php5/php5.y:737 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2839,7 +2839,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:760 + // line internal/php5/php5.y:760 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2862,7 +2862,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:781 + // line internal/php5/php5.y:781 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2883,7 +2883,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:803 + // line internal/php5/php5.y:803 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2898,7 +2898,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { yyVAL.list = []ast.Vertex{} @@ -2906,7 +2906,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:826 + // line internal/php5/php5.y:826 { // error yyVAL.node = nil @@ -2915,7 +2915,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:833 + // line internal/php5/php5.y:833 { yyVAL.node = yyDollar[1].node @@ -2923,7 +2923,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:839 + // line internal/php5/php5.y:839 { yyVAL.node = yyDollar[1].node @@ -2931,7 +2931,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:845 + // line internal/php5/php5.y:845 { yyVAL.node = yyDollar[1].node @@ -2939,7 +2939,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:851 + // line internal/php5/php5.y:851 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2957,7 +2957,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:871 + // line internal/php5/php5.y:871 { yyVAL.node = yyDollar[1].node @@ -2965,7 +2965,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:877 + // line internal/php5/php5.y:877 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2982,7 +2982,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:895 + // line internal/php5/php5.y:895 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2997,7 +2997,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:908 + // line internal/php5/php5.y:908 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3025,7 +3025,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:932 + // line internal/php5/php5.y:932 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} @@ -3053,7 +3053,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:956 + // line internal/php5/php5.y:956 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3082,7 +3082,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:981 + // line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3107,7 +3107,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1002 + // line internal/php5/php5.y:1002 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3136,7 +3136,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1029 + // line internal/php5/php5.y:1029 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3167,7 +3167,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1056 + // line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3183,7 +3183,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1070 + // line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3199,7 +3199,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1084 + // line internal/php5/php5.y:1084 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3215,7 +3215,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1098 + // line internal/php5/php5.y:1098 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3231,7 +3231,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1112 + // line internal/php5/php5.y:1112 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3247,7 +3247,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1126 + // line internal/php5/php5.y:1126 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3263,7 +3263,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1140 + // line internal/php5/php5.y:1140 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3279,7 +3279,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1154 + // line internal/php5/php5.y:1154 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3295,7 +3295,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3311,7 +3311,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3327,7 +3327,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1196 + // line internal/php5/php5.y:1196 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3344,7 +3344,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1211 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3358,7 +3358,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1223 + // line internal/php5/php5.y:1223 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3374,7 +3374,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1237 + // line internal/php5/php5.y:1237 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3392,7 +3392,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1253 + // line internal/php5/php5.y:1253 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3435,7 +3435,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1293 + // line internal/php5/php5.y:1293 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3478,7 +3478,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3495,7 +3495,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1348 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3510,7 +3510,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1361 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3530,7 +3530,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1379 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3546,7 +3546,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1393 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3565,7 +3565,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1413 + // line internal/php5/php5.y:1413 { yyVAL.list = []ast.Vertex{} @@ -3573,7 +3573,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1419 + // line internal/php5/php5.y:1419 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3598,7 +3598,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1445 + // line internal/php5/php5.y:1445 { yyVAL.node = nil @@ -3606,7 +3606,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1451 + // line internal/php5/php5.y:1451 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3622,7 +3622,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1468 + // line internal/php5/php5.y:1468 { yyVAL.list = yyDollar[1].list @@ -3630,7 +3630,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1474 { yyVAL.list = []ast.Vertex{} @@ -3638,7 +3638,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1483 + // line internal/php5/php5.y:1483 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3646,7 +3646,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1489 + // line internal/php5/php5.y:1489 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3654,7 +3654,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1498 + // line internal/php5/php5.y:1498 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3678,7 +3678,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3686,7 +3686,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1529 + // line internal/php5/php5.y:1529 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3697,7 +3697,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1541 + // line internal/php5/php5.y:1541 { yyVAL.node = yyDollar[1].node @@ -3705,7 +3705,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1550 { yyVAL.node = yyDollar[1].node @@ -3713,7 +3713,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1559 + // line internal/php5/php5.y:1559 { yyVAL.node = yyDollar[1].node @@ -3721,31 +3721,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1568 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1572 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1579 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1583 + // line internal/php5/php5.y:1583 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1590 + // line internal/php5/php5.y:1590 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3771,7 +3771,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1617 + // line internal/php5/php5.y:1617 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3801,7 +3801,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1645 + // line internal/php5/php5.y:1645 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3820,7 +3820,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1666 + // line internal/php5/php5.y:1666 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3834,7 +3834,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1678 + // line internal/php5/php5.y:1678 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3851,7 +3851,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1693 + // line internal/php5/php5.y:1693 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3865,7 +3865,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1705 + // line internal/php5/php5.y:1705 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3882,7 +3882,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1723 + // line internal/php5/php5.y:1723 { yyVAL.ClassExtends = nil @@ -3890,7 +3890,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1729 + // line internal/php5/php5.y:1729 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3904,13 +3904,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1744 + // line internal/php5/php5.y:1744 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1751 + // line internal/php5/php5.y:1751 { yyVAL.InterfaceExtends = nil @@ -3918,7 +3918,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1757 + // line internal/php5/php5.y:1757 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3932,7 +3932,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1772 + // line internal/php5/php5.y:1772 { yyVAL.ClassImplements = nil @@ -3940,7 +3940,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1778 + // line internal/php5/php5.y:1778 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3954,7 +3954,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1793 + // line internal/php5/php5.y:1793 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3962,7 +3962,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1799 + // line internal/php5/php5.y:1799 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3973,7 +3973,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1811 { yyVAL.node = nil @@ -3981,7 +3981,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1817 { yyVAL.node = yyDollar[2].node @@ -3992,7 +3992,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1829 + // line internal/php5/php5.y:1829 { yyVAL.node = yyDollar[1].node @@ -4000,7 +4000,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1835 + // line internal/php5/php5.y:1835 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4014,7 +4014,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1847 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4030,7 +4030,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1864 + // line internal/php5/php5.y:1864 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4041,7 +4041,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1873 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4060,7 +4060,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1893 + // line internal/php5/php5.y:1893 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4071,7 +4071,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1902 + // line internal/php5/php5.y:1902 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4090,7 +4090,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1923 + // line internal/php5/php5.y:1923 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4101,7 +4101,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1932 + // line internal/php5/php5.y:1932 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4120,7 +4120,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1953 + // line internal/php5/php5.y:1953 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4138,7 +4138,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1969 + // line internal/php5/php5.y:1969 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4157,7 +4157,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1990 + // line internal/php5/php5.y:1990 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4174,7 +4174,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2005 + // line internal/php5/php5.y:2005 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4192,7 +4192,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2021 + // line internal/php5/php5.y:2021 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4211,7 +4211,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2038 + // line internal/php5/php5.y:2038 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4232,7 +4232,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2061 + // line internal/php5/php5.y:2061 { yyVAL.list = []ast.Vertex{} @@ -4240,7 +4240,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2067 + // line internal/php5/php5.y:2067 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4257,7 +4257,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2082 + // line internal/php5/php5.y:2082 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4274,19 +4274,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2101 + // line internal/php5/php5.y:2101 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2105 + // line internal/php5/php5.y:2105 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2113 + // line internal/php5/php5.y:2113 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4297,7 +4297,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2122 + // line internal/php5/php5.y:2122 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4316,7 +4316,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2144 + // line internal/php5/php5.y:2144 { yyVAL.list = nil @@ -4324,7 +4324,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2150 + // line internal/php5/php5.y:2150 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4347,7 +4347,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2173 + // line internal/php5/php5.y:2173 { yyVAL.list = nil @@ -4355,7 +4355,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2179 + // line internal/php5/php5.y:2179 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4381,7 +4381,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2205 + // line internal/php5/php5.y:2205 { yyVAL.node = nil @@ -4389,7 +4389,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2211 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4403,7 +4403,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2227 + // line internal/php5/php5.y:2227 { yyVAL.node = nil @@ -4411,7 +4411,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2233 + // line internal/php5/php5.y:2233 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4428,7 +4428,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2252 + // line internal/php5/php5.y:2252 { yyVAL.list = yyDollar[1].list @@ -4436,7 +4436,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2258 + // line internal/php5/php5.y:2258 { yyVAL.list = nil @@ -4444,7 +4444,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2267 + // line internal/php5/php5.y:2267 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4452,7 +4452,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2273 + // line internal/php5/php5.y:2273 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4463,7 +4463,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2285 + // line internal/php5/php5.y:2285 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4513,7 +4513,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2330 + // line internal/php5/php5.y:2330 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4564,7 +4564,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2380 + // line internal/php5/php5.y:2380 { yyVAL.node = nil @@ -4572,7 +4572,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2386 + // line internal/php5/php5.y:2386 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4586,7 +4586,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2398 + // line internal/php5/php5.y:2398 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4600,7 +4600,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2410 + // line internal/php5/php5.y:2410 { yyVAL.node = yyDollar[1].node @@ -4608,7 +4608,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2420 + // line internal/php5/php5.y:2420 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4623,7 +4623,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2433 + // line internal/php5/php5.y:2433 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4638,7 +4638,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2446 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4655,7 +4655,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2465 + // line internal/php5/php5.y:2465 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4663,7 +4663,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2471 + // line internal/php5/php5.y:2471 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4674,7 +4674,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2483 + // line internal/php5/php5.y:2483 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4688,7 +4688,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2495 + // line internal/php5/php5.y:2495 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4702,7 +4702,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2507 + // line internal/php5/php5.y:2507 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4716,7 +4716,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2519 + // line internal/php5/php5.y:2519 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4730,7 +4730,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2534 + // line internal/php5/php5.y:2534 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4741,7 +4741,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2543 + // line internal/php5/php5.y:2543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4749,7 +4749,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2553 + // line internal/php5/php5.y:2553 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4766,7 +4766,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2568 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4781,7 +4781,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2581 + // line internal/php5/php5.y:2581 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4798,7 +4798,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2600 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4819,7 +4819,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2619 + // line internal/php5/php5.y:2619 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4841,7 +4841,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2639 + // line internal/php5/php5.y:2639 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4861,7 +4861,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2657 + // line internal/php5/php5.y:2657 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4882,7 +4882,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2680 + // line internal/php5/php5.y:2680 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4890,7 +4890,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2686 + // line internal/php5/php5.y:2686 { yyVAL.list = []ast.Vertex{} @@ -4898,7 +4898,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2696 + // line internal/php5/php5.y:2696 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4914,7 +4914,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2710 + // line internal/php5/php5.y:2710 { yyVAL.node = yyDollar[1].node @@ -4929,7 +4929,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2723 + // line internal/php5/php5.y:2723 { yyVAL.node = yyDollar[1].node @@ -4937,7 +4937,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2729 + // line internal/php5/php5.y:2729 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4970,7 +4970,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2763 + // line internal/php5/php5.y:2763 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4984,7 +4984,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2778 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4992,7 +4992,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2784 + // line internal/php5/php5.y:2784 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5003,7 +5003,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2796 + // line internal/php5/php5.y:2796 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5017,7 +5017,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2808 + // line internal/php5/php5.y:2808 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5031,7 +5031,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2823 + // line internal/php5/php5.y:2823 { yyVAL.list = nil @@ -5039,7 +5039,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2829 + // line internal/php5/php5.y:2829 { yyVAL.list = yyDollar[1].list @@ -5047,7 +5047,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2838 + // line internal/php5/php5.y:2838 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5055,7 +5055,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2844 + // line internal/php5/php5.y:2844 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5063,7 +5063,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2853 + // line internal/php5/php5.y:2853 { yyVAL.node = yyDollar[1].node @@ -5075,7 +5075,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2863 + // line internal/php5/php5.y:2863 { yyVAL.node = yyDollar[1].node @@ -5087,7 +5087,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2876 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5102,7 +5102,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2892 + // line internal/php5/php5.y:2892 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5110,7 +5110,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2898 + // line internal/php5/php5.y:2898 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5121,7 +5121,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2910 + // line internal/php5/php5.y:2910 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5137,7 +5137,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2924 + // line internal/php5/php5.y:2924 { yyVAL.node = yyDollar[1].node @@ -5145,7 +5145,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2933 + // line internal/php5/php5.y:2933 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5163,7 +5163,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2952 + // line internal/php5/php5.y:2952 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5181,7 +5181,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2968 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5196,7 +5196,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2984 + // line internal/php5/php5.y:2984 { yyVAL.node = nil @@ -5204,7 +5204,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2990 + // line internal/php5/php5.y:2990 { yyVAL.node = yyDollar[1].node @@ -5212,7 +5212,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2999 + // line internal/php5/php5.y:2999 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5227,7 +5227,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3012 + // line internal/php5/php5.y:3012 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5242,7 +5242,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3028 { yyVAL.list = yyDollar[1].list @@ -5250,7 +5250,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3034 + // line internal/php5/php5.y:3034 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5265,7 +5265,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3050 + // line internal/php5/php5.y:3050 { yyVAL.list = nil @@ -5273,7 +5273,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3056 + // line internal/php5/php5.y:3056 { yyVAL.list = yyDollar[1].list @@ -5281,7 +5281,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3065 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5289,7 +5289,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3071 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5297,7 +5297,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5311,7 +5311,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3092 + // line internal/php5/php5.y:3092 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5325,7 +5325,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3104 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5339,7 +5339,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3116 + // line internal/php5/php5.y:3116 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5353,7 +5353,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3128 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5367,7 +5367,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3140 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5381,7 +5381,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3155 + // line internal/php5/php5.y:3155 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5402,7 +5402,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3174 + // line internal/php5/php5.y:3174 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5424,7 +5424,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3194 + // line internal/php5/php5.y:3194 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5444,7 +5444,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3212 + // line internal/php5/php5.y:3212 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5465,7 +5465,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3234 + // line internal/php5/php5.y:3234 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5488,7 +5488,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3255 + // line internal/php5/php5.y:3255 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5508,7 +5508,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3276 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5519,7 +5519,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3285 + // line internal/php5/php5.y:3285 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5527,7 +5527,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3295 { yyVAL.list = nil @@ -5535,7 +5535,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3301 + // line internal/php5/php5.y:3301 { yyVAL.list = yyDollar[1].list @@ -5543,7 +5543,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3310 + // line internal/php5/php5.y:3310 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5554,7 +5554,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3319 + // line internal/php5/php5.y:3319 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5562,7 +5562,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3328 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5570,7 +5570,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3334 + // line internal/php5/php5.y:3334 { yyVAL.list = yyDollar[1].list @@ -5578,7 +5578,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3343 + // line internal/php5/php5.y:3343 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5594,7 +5594,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3357 + // line internal/php5/php5.y:3357 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5610,7 +5610,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3374 + // line internal/php5/php5.y:3374 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5618,7 +5618,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3380 { yyVAL.list = yyDollar[1].list @@ -5626,7 +5626,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3386 + // line internal/php5/php5.y:3386 { yyVAL.list = yyDollar[1].list @@ -5634,7 +5634,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3395 + // line internal/php5/php5.y:3395 { yyVAL.list = nil @@ -5642,7 +5642,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3401 + // line internal/php5/php5.y:3401 { yyVAL.list = yyDollar[1].list @@ -5650,7 +5650,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3410 + // line internal/php5/php5.y:3410 { if yyDollar[3].node != nil { @@ -5668,7 +5668,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3429 + // line internal/php5/php5.y:3429 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5687,7 +5687,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3446 + // line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5702,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3459 + // line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5718,7 +5718,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3473 + // line internal/php5/php5.y:3473 { var _new *ast.ExprNew @@ -5747,7 +5747,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3500 + // line internal/php5/php5.y:3500 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5761,7 +5761,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3512 + // line internal/php5/php5.y:3512 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5775,7 +5775,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3524 + // line internal/php5/php5.y:3524 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5790,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3537 + // line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5805,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3550 + // line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5820,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5835,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3576 + // line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5850,7 +5850,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3589 + // line internal/php5/php5.y:3589 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5865,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3602 + // line internal/php5/php5.y:3602 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5880,7 +5880,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3615 + // line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5895,7 +5895,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3628 + // line internal/php5/php5.y:3628 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5910,7 +5910,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3641 + // line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5925,7 +5925,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3654 + // line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5940,7 +5940,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3667 + // line internal/php5/php5.y:3667 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5955,7 +5955,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3680 + // line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5969,7 +5969,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3692 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5984,7 +5984,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3705 + // line internal/php5/php5.y:3705 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5998,7 +5998,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3717 + // line internal/php5/php5.y:3717 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6013,7 +6013,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3730 + // line internal/php5/php5.y:3730 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6028,7 +6028,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3743 + // line internal/php5/php5.y:3743 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6043,7 +6043,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3756 + // line internal/php5/php5.y:3756 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6058,7 +6058,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3769 + // line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6073,7 +6073,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3782 + // line internal/php5/php5.y:3782 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6088,7 +6088,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3795 + // line internal/php5/php5.y:3795 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6103,7 +6103,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3808 + // line internal/php5/php5.y:3808 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6118,7 +6118,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3821 + // line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6133,7 +6133,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3834 + // line internal/php5/php5.y:3834 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6148,7 +6148,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3847 + // line internal/php5/php5.y:3847 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6163,7 +6163,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3860 + // line internal/php5/php5.y:3860 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6178,7 +6178,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6193,7 +6193,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3886 + // line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6208,7 +6208,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3899 + // line internal/php5/php5.y:3899 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6223,7 +6223,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3912 + // line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6238,7 +6238,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3925 + // line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6253,7 +6253,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3938 + // line internal/php5/php5.y:3938 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6267,7 +6267,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3950 + // line internal/php5/php5.y:3950 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6281,7 +6281,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3962 + // line internal/php5/php5.y:3962 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6295,7 +6295,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3974 + // line internal/php5/php5.y:3974 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6309,7 +6309,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3986 + // line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6324,7 +6324,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3999 + // line internal/php5/php5.y:3999 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6339,7 +6339,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4012 + // line internal/php5/php5.y:4012 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6354,7 +6354,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4025 + // line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6370,7 +6370,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4039 + // line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6385,7 +6385,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4052 + // line internal/php5/php5.y:4052 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6400,7 +6400,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4065 + // line internal/php5/php5.y:4065 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6415,7 +6415,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4078 + // line internal/php5/php5.y:4078 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6430,7 +6430,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4091 + // line internal/php5/php5.y:4091 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6445,7 +6445,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4104 { yyVAL.node = yyDollar[1].node @@ -6458,7 +6458,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4113 { yyVAL.node = yyDollar[1].node @@ -6466,7 +6466,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4119 + // line internal/php5/php5.y:4119 { yyVAL.node = yyDollar[2].node @@ -6500,7 +6500,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4151 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6516,7 +6516,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4165 + // line internal/php5/php5.y:4165 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6532,7 +6532,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4179 + // line internal/php5/php5.y:4179 { yyVAL.node = yyDollar[1].node @@ -6540,7 +6540,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4185 + // line internal/php5/php5.y:4185 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6555,7 +6555,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4198 + // line internal/php5/php5.y:4198 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6570,7 +6570,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4211 + // line internal/php5/php5.y:4211 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6585,7 +6585,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4224 + // line internal/php5/php5.y:4224 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6600,7 +6600,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4237 + // line internal/php5/php5.y:4237 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6615,7 +6615,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4250 + // line internal/php5/php5.y:4250 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6630,7 +6630,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4263 + // line internal/php5/php5.y:4263 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6645,7 +6645,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4276 + // line internal/php5/php5.y:4276 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6668,7 +6668,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4297 + // line internal/php5/php5.y:4297 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6682,7 +6682,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4309 + // line internal/php5/php5.y:4309 { yyVAL.node = yyDollar[1].node @@ -6690,7 +6690,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4315 + // line internal/php5/php5.y:4315 { yyVAL.node = yyDollar[1].node @@ -6698,7 +6698,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4321 { yyVAL.node = yyDollar[1].node @@ -6706,7 +6706,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4327 + // line internal/php5/php5.y:4327 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6720,7 +6720,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6734,7 +6734,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 + // line internal/php5/php5.y:4351 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6748,7 +6748,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:4363 + // line internal/php5/php5.y:4363 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6777,7 +6777,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4389 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6807,7 +6807,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4419 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6821,7 +6821,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4431 + // line internal/php5/php5.y:4431 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6835,7 +6835,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4443 + // line internal/php5/php5.y:4443 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6850,7 +6850,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4456 + // line internal/php5/php5.y:4456 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6865,7 +6865,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4472 + // line internal/php5/php5.y:4472 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6881,7 +6881,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4486 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6897,7 +6897,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4500 + // line internal/php5/php5.y:4500 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6915,7 +6915,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4516 + // line internal/php5/php5.y:4516 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6931,7 +6931,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4533 + // line internal/php5/php5.y:4533 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6947,7 +6947,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4547 + // line internal/php5/php5.y:4547 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6962,13 +6962,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4563 + // line internal/php5/php5.y:4563 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4570 + // line internal/php5/php5.y:4570 { yyVAL.ClosureUse = nil @@ -6976,7 +6976,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4576 + // line internal/php5/php5.y:4576 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6992,7 +6992,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4593 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7011,7 +7011,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4610 + // line internal/php5/php5.y:4610 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7033,7 +7033,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4630 + // line internal/php5/php5.y:4630 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7051,7 +7051,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4646 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7072,7 +7072,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4668 + // line internal/php5/php5.y:4668 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7088,7 +7088,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4682 + // line internal/php5/php5.y:4682 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7105,7 +7105,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4697 + // line internal/php5/php5.y:4697 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7121,7 +7121,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4711 + // line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7136,7 +7136,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7151,7 +7151,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4737 + // line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7166,7 +7166,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4750 + // line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7181,7 +7181,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4763 + // line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7195,7 +7195,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4778 + // line internal/php5/php5.y:4778 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7209,7 +7209,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4790 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7223,7 +7223,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4802 + // line internal/php5/php5.y:4802 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7238,7 +7238,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4815 + // line internal/php5/php5.y:4815 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7252,7 +7252,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4830 + // line internal/php5/php5.y:4830 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7266,7 +7266,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4842 + // line internal/php5/php5.y:4842 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7281,7 +7281,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4855 + // line internal/php5/php5.y:4855 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7295,7 +7295,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4870 { yyVAL.node = yyDollar[1].node @@ -7303,7 +7303,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4876 + // line internal/php5/php5.y:4876 { yyVAL.node = yyDollar[1].node @@ -7311,7 +7311,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4885 + // line internal/php5/php5.y:4885 { yyVAL.node = yyDollar[1].node @@ -7354,7 +7354,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4926 + // line internal/php5/php5.y:4926 { yyVAL.node = yyDollar[1].node @@ -7362,7 +7362,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4936 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7370,7 +7370,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4942 { yyVAL.list = []ast.Vertex{} @@ -7378,7 +7378,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4952 + // line internal/php5/php5.y:4952 { yyVAL.list = yyDollar[2].list @@ -7389,7 +7389,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4964 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7397,7 +7397,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4970 + // line internal/php5/php5.y:4970 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7412,7 +7412,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4983 + // line internal/php5/php5.y:4983 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7433,7 +7433,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5003 + // line internal/php5/php5.y:5003 { yyVAL.list = []ast.Vertex{} @@ -7441,7 +7441,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5009 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7453,7 +7453,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5019 + // line internal/php5/php5.y:5019 { yyVAL.list = yyDollar[1].list @@ -7461,7 +7461,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5028 + // line internal/php5/php5.y:5028 { yyVAL.node = nil @@ -7469,7 +7469,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5034 + // line internal/php5/php5.y:5034 { yyVAL.node = yyDollar[1].node @@ -7477,7 +7477,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5043 + // line internal/php5/php5.y:5043 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7491,7 +7491,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5055 + // line internal/php5/php5.y:5055 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7505,7 +7505,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5067 + // line internal/php5/php5.y:5067 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7519,7 +7519,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5079 + // line internal/php5/php5.y:5079 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7533,7 +7533,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5091 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7547,7 +7547,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5103 + // line internal/php5/php5.y:5103 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7561,7 +7561,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5115 + // line internal/php5/php5.y:5115 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7575,7 +7575,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5127 + // line internal/php5/php5.y:5127 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7589,7 +7589,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5139 + // line internal/php5/php5.y:5139 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7603,7 +7603,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5151 + // line internal/php5/php5.y:5151 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7617,7 +7617,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5163 + // line internal/php5/php5.y:5163 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7633,7 +7633,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5177 + // line internal/php5/php5.y:5177 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7647,7 +7647,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5192 + // line internal/php5/php5.y:5192 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7665,7 +7665,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5211 { yyVAL.node = yyDollar[1].node @@ -7673,7 +7673,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5220 + // line internal/php5/php5.y:5220 { yyVAL.node = yyDollar[1].node @@ -7681,7 +7681,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5226 + // line internal/php5/php5.y:5226 { yyVAL.node = yyDollar[1].node @@ -7689,7 +7689,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5232 + // line internal/php5/php5.y:5232 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7705,7 +7705,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5246 + // line internal/php5/php5.y:5246 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7722,7 +7722,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5261 + // line internal/php5/php5.y:5261 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7738,7 +7738,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5275 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7754,7 +7754,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5289 + // line internal/php5/php5.y:5289 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7769,7 +7769,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5302 { yyVAL.node = yyDollar[1].node @@ -7777,7 +7777,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5308 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7791,7 +7791,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5320 { yyVAL.node = yyDollar[1].node @@ -7799,7 +7799,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5329 + // line internal/php5/php5.y:5329 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7815,7 +7815,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5343 + // line internal/php5/php5.y:5343 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7830,7 +7830,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5356 + // line internal/php5/php5.y:5356 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7845,7 +7845,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5369 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7860,7 +7860,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5382 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7875,7 +7875,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5395 + // line internal/php5/php5.y:5395 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7890,7 +7890,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5408 + // line internal/php5/php5.y:5408 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7905,7 +7905,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5421 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7919,7 +7919,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5433 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7933,7 +7933,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5445 + // line internal/php5/php5.y:5445 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7948,7 +7948,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5458 + // line internal/php5/php5.y:5458 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7963,7 +7963,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5471 + // line internal/php5/php5.y:5471 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7978,7 +7978,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5484 + // line internal/php5/php5.y:5484 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7993,7 +7993,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5497 + // line internal/php5/php5.y:5497 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8008,7 +8008,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5510 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8023,7 +8023,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5523 + // line internal/php5/php5.y:5523 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8038,7 +8038,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5536 + // line internal/php5/php5.y:5536 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8053,7 +8053,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5549 + // line internal/php5/php5.y:5549 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8068,7 +8068,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5562 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8083,7 +8083,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5575 + // line internal/php5/php5.y:5575 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8098,7 +8098,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5588 + // line internal/php5/php5.y:5588 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8113,7 +8113,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5601 + // line internal/php5/php5.y:5601 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8128,7 +8128,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5614 + // line internal/php5/php5.y:5614 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8143,7 +8143,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5627 + // line internal/php5/php5.y:5627 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8159,7 +8159,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5641 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8174,7 +8174,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5654 + // line internal/php5/php5.y:5654 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8189,7 +8189,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5667 + // line internal/php5/php5.y:5667 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8204,7 +8204,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5680 + // line internal/php5/php5.y:5680 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8219,7 +8219,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5693 + // line internal/php5/php5.y:5693 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8235,7 +8235,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5707 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8251,7 +8251,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5721 + // line internal/php5/php5.y:5721 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8265,7 +8265,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5733 + // line internal/php5/php5.y:5733 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8279,7 +8279,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5745 + // line internal/php5/php5.y:5745 { yyVAL.node = yyDollar[2].node @@ -8291,7 +8291,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5758 + // line internal/php5/php5.y:5758 { yyVAL.node = yyDollar[1].node @@ -8299,7 +8299,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5764 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8315,7 +8315,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5778 + // line internal/php5/php5.y:5778 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8332,7 +8332,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5793 + // line internal/php5/php5.y:5793 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8348,7 +8348,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5810 + // line internal/php5/php5.y:5810 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8364,7 +8364,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5824 + // line internal/php5/php5.y:5824 { yyVAL.node = yyDollar[1].node @@ -8372,7 +8372,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5830 + // line internal/php5/php5.y:5830 { yyVAL.node = yyDollar[1].node @@ -8380,7 +8380,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5836 + // line internal/php5/php5.y:5836 { yyVAL.node = yyDollar[1].node @@ -8388,7 +8388,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5842 + // line internal/php5/php5.y:5842 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8402,7 +8402,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5854 + // line internal/php5/php5.y:5854 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8416,7 +8416,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5866 + // line internal/php5/php5.y:5866 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8430,7 +8430,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5881 + // line internal/php5/php5.y:5881 { yyVAL.list = nil @@ -8438,7 +8438,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5887 + // line internal/php5/php5.y:5887 { yyVAL.list = yyDollar[1].list @@ -8451,19 +8451,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5901 + // line internal/php5/php5.y:5901 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5905 + // line internal/php5/php5.y:5905 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5912 + // line internal/php5/php5.y:5912 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8480,7 +8480,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5927 + // line internal/php5/php5.y:5927 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8496,7 +8496,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5941 + // line internal/php5/php5.y:5941 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8512,7 +8512,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5955 + // line internal/php5/php5.y:5955 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8527,7 +8527,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5971 + // line internal/php5/php5.y:5971 { yyVAL.node = yyDollar[1].node @@ -8535,7 +8535,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5977 + // line internal/php5/php5.y:5977 { yyVAL.node = yyDollar[1].node @@ -8543,7 +8543,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5986 + // line internal/php5/php5.y:5986 { yyVAL.node = yyDollar[2].node @@ -8561,7 +8561,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6002 + // line internal/php5/php5.y:6002 { yyVAL.node = yyDollar[2].node @@ -8579,7 +8579,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6022 + // line internal/php5/php5.y:6022 { yyVAL.node = yyDollar[1].node @@ -8587,7 +8587,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6032 + // line internal/php5/php5.y:6032 { yyVAL.node = yyDollar[1].node @@ -8595,7 +8595,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6041 + // line internal/php5/php5.y:6041 { yyVAL.node = yyDollar[1].node @@ -8603,7 +8603,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6050 + // line internal/php5/php5.y:6050 { yyVAL.node = yyDollar[1].node @@ -8663,7 +8663,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6108 + // line internal/php5/php5.y:6108 { yyVAL.node = yyDollar[1].node @@ -8671,7 +8671,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6117 + // line internal/php5/php5.y:6117 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8679,7 +8679,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6123 + // line internal/php5/php5.y:6123 { yyVAL.list = []ast.Vertex{} @@ -8687,7 +8687,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6133 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8703,7 +8703,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6150 + // line internal/php5/php5.y:6150 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8719,7 +8719,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6164 + // line internal/php5/php5.y:6164 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8735,7 +8735,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8746,7 +8746,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6193 + // line internal/php5/php5.y:6193 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8754,7 +8754,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6199 + // line internal/php5/php5.y:6199 { yyVAL.list = yyDollar[1].list @@ -8762,7 +8762,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6205 + // line internal/php5/php5.y:6205 { yyVAL.list = nil @@ -8770,7 +8770,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6214 + // line internal/php5/php5.y:6214 { yyVAL.node = yyDollar[1].node @@ -8778,7 +8778,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6220 + // line internal/php5/php5.y:6220 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8792,7 +8792,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6235 + // line internal/php5/php5.y:6235 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8807,7 +8807,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6248 + // line internal/php5/php5.y:6248 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8822,7 +8822,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6264 + // line internal/php5/php5.y:6264 { yyVAL.node = yyDollar[1].node @@ -8830,7 +8830,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6273 + // line internal/php5/php5.y:6273 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8846,7 +8846,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6287 + // line internal/php5/php5.y:6287 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8862,7 +8862,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6304 + // line internal/php5/php5.y:6304 { yyVAL.node = yyDollar[1].node @@ -8870,7 +8870,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6310 { yyVAL.node = yyDollar[1].node @@ -8878,7 +8878,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6316 + // line internal/php5/php5.y:6316 { yyVAL.node = yyDollar[1].node @@ -8886,7 +8886,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6326 + // line internal/php5/php5.y:6326 { yyVAL.node = yyDollar[1].node @@ -8894,7 +8894,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6332 + // line internal/php5/php5.y:6332 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8908,7 +8908,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6344 + // line internal/php5/php5.y:6344 { yyVAL.node = yyDollar[1].node @@ -8916,7 +8916,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6353 + // line internal/php5/php5.y:6353 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8932,7 +8932,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6367 + // line internal/php5/php5.y:6367 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8948,7 +8948,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6381 + // line internal/php5/php5.y:6381 { yyVAL.node = yyDollar[1].node @@ -8956,7 +8956,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6391 + // line internal/php5/php5.y:6391 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8973,7 +8973,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6406 + // line internal/php5/php5.y:6406 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8990,7 +8990,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6424 + // line internal/php5/php5.y:6424 { yyVAL.node = nil @@ -8998,7 +8998,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6430 + // line internal/php5/php5.y:6430 { yyVAL.node = yyDollar[1].node @@ -9006,7 +9006,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6440 + // line internal/php5/php5.y:6440 { yyVAL.list = yyDollar[1].list @@ -9014,7 +9014,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6446 + // line internal/php5/php5.y:6446 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9026,7 +9026,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6459 + // line internal/php5/php5.y:6459 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9042,7 +9042,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6473 + // line internal/php5/php5.y:6473 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9058,7 +9058,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6487 + // line internal/php5/php5.y:6487 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9070,7 +9070,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6500 + // line internal/php5/php5.y:6500 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9084,7 +9084,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6512 + // line internal/php5/php5.y:6512 { yyVAL.node = yyDollar[2].node @@ -9099,7 +9099,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6528 + // line internal/php5/php5.y:6528 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9115,7 +9115,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6542 + // line internal/php5/php5.y:6542 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9135,7 +9135,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6563 + // line internal/php5/php5.y:6563 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9150,7 +9150,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6576 + // line internal/php5/php5.y:6576 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9162,7 +9162,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6590 + // line internal/php5/php5.y:6590 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9176,7 +9176,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6602 + // line internal/php5/php5.y:6602 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9194,7 +9194,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6618 + // line internal/php5/php5.y:6618 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9202,7 +9202,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6628 + // line internal/php5/php5.y:6628 { yyVAL.list = []ast.Vertex{} @@ -9210,7 +9210,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6634 + // line internal/php5/php5.y:6634 { yyVAL.list = yyDollar[1].list @@ -9227,7 +9227,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6652 + // line internal/php5/php5.y:6652 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9244,7 +9244,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6667 + // line internal/php5/php5.y:6667 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9260,7 +9260,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6681 + // line internal/php5/php5.y:6681 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9276,7 +9276,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6695 + // line internal/php5/php5.y:6695 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9291,7 +9291,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6708 + // line internal/php5/php5.y:6708 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9311,7 +9311,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6726 + // line internal/php5/php5.y:6726 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9329,7 +9329,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6742 + // line internal/php5/php5.y:6742 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9348,7 +9348,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6759 + // line internal/php5/php5.y:6759 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9365,7 +9365,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6777 + // line internal/php5/php5.y:6777 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9373,7 +9373,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6783 + // line internal/php5/php5.y:6783 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9388,7 +9388,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6796 + // line internal/php5/php5.y:6796 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9396,7 +9396,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6802 + // line internal/php5/php5.y:6802 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9411,7 +9411,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6818 + // line internal/php5/php5.y:6818 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9428,7 +9428,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6833 + // line internal/php5/php5.y:6833 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9448,7 +9448,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6851 + // line internal/php5/php5.y:6851 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9470,7 +9470,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6871 + // line internal/php5/php5.y:6871 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9487,7 +9487,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6886 + // line internal/php5/php5.y:6886 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9506,7 +9506,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6903 + // line internal/php5/php5.y:6903 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9527,7 +9527,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6922 + // line internal/php5/php5.y:6922 { yyVAL.node = yyDollar[2].node @@ -9539,7 +9539,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6935 + // line internal/php5/php5.y:6935 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9553,7 +9553,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6947 + // line internal/php5/php5.y:6947 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9572,7 +9572,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6964 + // line internal/php5/php5.y:6964 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9589,7 +9589,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6982 + // line internal/php5/php5.y:6982 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9605,7 +9605,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6996 + // line internal/php5/php5.y:6996 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9621,7 +9621,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:7010 + // line internal/php5/php5.y:7010 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9637,7 +9637,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7024 + // line internal/php5/php5.y:7024 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9651,7 +9651,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7036 + // line internal/php5/php5.y:7036 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9665,7 +9665,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:7048 + // line internal/php5/php5.y:7048 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9681,7 +9681,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7062 + // line internal/php5/php5.y:7062 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9695,7 +9695,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:7074 + // line internal/php5/php5.y:7074 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9709,7 +9709,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7089 + // line internal/php5/php5.y:7089 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9717,7 +9717,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7095 + // line internal/php5/php5.y:7095 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9728,7 +9728,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7107 + // line internal/php5/php5.y:7107 { yyVAL.node = yyDollar[1].node @@ -9736,7 +9736,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:7113 + // line internal/php5/php5.y:7113 { yyVAL.node = yyDollar[1].node @@ -9744,7 +9744,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7122 + // line internal/php5/php5.y:7122 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9762,7 +9762,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7138 + // line internal/php5/php5.y:7138 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9780,7 +9780,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7157 + // line internal/php5/php5.y:7157 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9798,7 +9798,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:7176 + // line internal/php5/php5.y:7176 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php7/parser.go b/internal/php7/parser.go index a960984..918c795 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -7,7 +7,6 @@ import ( "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" - "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" ) @@ -43,14 +42,9 @@ func (l *Parser) Lex(lval *yySymType) int { } func (l *Parser) Error(msg string) { - pos := &position.Position{ - StartLine: l.currentToken.StartLine, - EndLine: l.currentToken.EndLine, - StartPos: l.currentToken.StartPos, - EndPos: l.currentToken.EndPos, - } + var pos = l.currentToken.Position - l.Lexer.AddError(errors.NewError(msg, pos)) + l.Lexer.AddError(errors.NewError(msg, &pos)) } func (l *Parser) WithTokens() { diff --git a/internal/positionbuilder/position_builder.go b/internal/positionbuilder/position_builder.go index cf06379..4f69393 100644 --- a/internal/positionbuilder/position_builder.go +++ b/internal/positionbuilder/position_builder.go @@ -100,29 +100,29 @@ func (b *PositionBuilder) NewNodePosition(n ast.Vertex) *position.Position { // NewTokenPosition returns new Position func (b *PositionBuilder) NewTokenPosition(t *scanner.Token) *position.Position { return &position.Position{ - StartLine: t.StartLine, - EndLine: t.EndLine, - StartPos: t.StartPos, - EndPos: t.EndPos, + StartLine: t.Position.StartLine, + EndLine: t.Position.EndLine, + StartPos: t.Position.StartPos, + EndPos: t.Position.EndPos, } } // NewTokensPosition returns new Position func (b *PositionBuilder) NewTokensPosition(startToken *scanner.Token, endToken *scanner.Token) *position.Position { return &position.Position{ - StartLine: startToken.StartLine, - EndLine: endToken.EndLine, - StartPos: startToken.StartPos, - EndPos: endToken.EndPos, + StartLine: startToken.Position.StartLine, + EndLine: endToken.Position.EndLine, + StartPos: startToken.Position.StartPos, + EndPos: endToken.Position.EndPos, } } // NewTokenNodePosition returns new Position func (b *PositionBuilder) NewTokenNodePosition(t *scanner.Token, n ast.Vertex) *position.Position { return &position.Position{ - StartLine: t.StartLine, + StartLine: t.Position.StartLine, EndLine: b.getNodeEndPos(n).endLine, - StartPos: t.StartPos, + StartPos: t.Position.StartPos, EndPos: b.getNodeEndPos(n).endPos, } } @@ -131,9 +131,9 @@ func (b *PositionBuilder) NewTokenNodePosition(t *scanner.Token, n ast.Vertex) * func (b *PositionBuilder) NewNodeTokenPosition(n ast.Vertex, t *scanner.Token) *position.Position { return &position.Position{ StartLine: b.getNodeStartPos(n).startLine, - EndLine: t.EndLine, + EndLine: t.Position.EndLine, StartPos: b.getNodeStartPos(n).startPos, - EndPos: t.EndPos, + EndPos: t.Position.EndPos, } } @@ -151,18 +151,18 @@ func (b *PositionBuilder) NewNodesPosition(startNode ast.Vertex, endNode ast.Ver func (b *PositionBuilder) NewNodeListTokenPosition(list []ast.Vertex, t *scanner.Token) *position.Position { return &position.Position{ StartLine: b.getListStartPos(list).startLine, - EndLine: t.EndLine, + EndLine: t.Position.EndLine, StartPos: b.getListStartPos(list).startPos, - EndPos: t.EndPos, + EndPos: t.Position.EndPos, } } // NewTokenNodeListPosition returns new Position func (b *PositionBuilder) NewTokenNodeListPosition(t *scanner.Token, list []ast.Vertex) *position.Position { return &position.Position{ - StartLine: t.StartLine, + StartLine: t.Position.StartLine, EndLine: b.getListEndPos(list).endLine, - StartPos: t.StartPos, + StartPos: t.Position.StartPos, EndPos: b.getListEndPos(list).endPos, } } @@ -191,17 +191,17 @@ func (b *PositionBuilder) NewNodeListNodePosition(list []ast.Vertex, n ast.Verte func (b *PositionBuilder) NewOptionalListTokensPosition(list []ast.Vertex, t *scanner.Token, endToken *scanner.Token) *position.Position { if list == nil { return &position.Position{ - StartLine: t.StartLine, - EndLine: endToken.EndLine, - StartPos: t.StartPos, - EndPos: endToken.EndPos, + StartLine: t.Position.StartLine, + EndLine: endToken.Position.EndLine, + StartPos: t.Position.StartPos, + EndPos: endToken.Position.EndPos, } } return &position.Position{ StartLine: b.getListStartPos(list).startLine, - EndLine: endToken.EndLine, + EndLine: endToken.Position.EndLine, StartPos: b.getListStartPos(list).startPos, - EndPos: endToken.EndPos, + EndPos: endToken.Position.EndPos, } } diff --git a/internal/positionbuilder/position_builder_test.go b/internal/positionbuilder/position_builder_test.go index 5d0e5bc..24652d9 100644 --- a/internal/positionbuilder/position_builder_test.go +++ b/internal/positionbuilder/position_builder_test.go @@ -14,11 +14,13 @@ func TestNewTokenPosition(t *testing.T) { builder := positionbuilder.PositionBuilder{} tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } pos := builder.NewTokenPosition(tkn) @@ -32,18 +34,22 @@ func TestNewTokensPosition(t *testing.T) { builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } token2 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 6, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 4, + EndPos: 6, + }, } pos := builder.NewTokensPosition(token1, token2) @@ -72,11 +78,13 @@ func TestNewNodePosition(t *testing.T) { func TestNewTokenNodePosition(t *testing.T) { tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } n := &ast.Identifier{ Node: ast.Node{ @@ -109,11 +117,13 @@ func TestNewNodeTokenPosition(t *testing.T) { } tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 12, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 12, + }, } builder := positionbuilder.PositionBuilder{} @@ -207,11 +217,13 @@ func TestNewNodeListTokenPosition(t *testing.T) { } tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 3, - EndLine: 3, - StartPos: 20, - EndPos: 22, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 20, + EndPos: 22, + }, } builder := positionbuilder.PositionBuilder{} @@ -223,11 +235,13 @@ func TestNewNodeListTokenPosition(t *testing.T) { func TestNewTokenNodeListPosition(t *testing.T) { tkn := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 2, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 2, + }, } n1 := &ast.Identifier{ @@ -343,18 +357,22 @@ func TestNewOptionalListTokensPosition(t *testing.T) { builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } token2 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 6, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 4, + EndPos: 6, + }, } pos := builder.NewOptionalListTokensPosition(nil, token1, token2) @@ -387,18 +405,22 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { builder := positionbuilder.PositionBuilder{} token1 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 4, - EndLine: 4, - StartPos: 27, - EndPos: 29, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 27, + EndPos: 29, + }, } token2 := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 5, - EndLine: 5, - StartPos: 30, - EndPos: 32, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 30, + EndPos: 32, + }, } pos := builder.NewOptionalListTokensPosition([]ast.Vertex{n2, n3}, token1, token2) @@ -435,11 +457,13 @@ func TestNilNodeListPos(t *testing.T) { func TestNilNodeListTokenPos(t *testing.T) { token := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } builder := positionbuilder.PositionBuilder{} @@ -470,11 +494,13 @@ func TestEmptyNodeListPos(t *testing.T) { func TestEmptyNodeListTokenPos(t *testing.T) { token := &scanner.Token{ - Value: []byte(`foo`), - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, + Value: []byte(`foo`), + Position: position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, + }, } builder := positionbuilder.PositionBuilder{} diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 89b6891..9dad9d0 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -78,10 +78,10 @@ func (l *Lexer) SetErrors(e []*errors.Error) { } 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 + token.Position.StartLine = lex.NewLines.GetLine(lex.ts) + token.Position.EndLine = lex.NewLines.GetLine(lex.te - 1) + token.Position.StartPos = lex.ts + token.Position.EndPos = lex.te } func (lex *Lexer) addToken(id TokenID, ps, pe int) { diff --git a/internal/scanner/token.go b/internal/scanner/token.go index 7c07126..793958c 100644 --- a/internal/scanner/token.go +++ b/internal/scanner/token.go @@ -1,16 +1,14 @@ package scanner import ( + "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" ) // Token value returned by lexer type Token struct { - ID TokenID - Value []byte - Tokens []token.Token - StartLine int - EndLine int - StartPos int - EndPos int + ID TokenID + Value []byte + Tokens []token.Token + Position position.Position } From 5620697cabe93508eefcde5a5b083b7a275f0da3 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 18 May 2020 00:04:04 +0300 Subject: [PATCH 012/140] [refactoring] rename struct field scanner.Token.Hidden --- internal/php5/parser.go | 12 +- internal/php5/php5.go | 1194 +++++++++++++++--------------- internal/php5/php5.y | 1194 +++++++++++++++--------------- internal/php7/parser.go | 12 +- internal/php7/php7.go | 1012 ++++++++++++------------- internal/php7/php7.y | 1012 ++++++++++++------------- internal/scanner/lexer.go | 32 +- internal/scanner/scanner.go | 6 +- internal/scanner/scanner.rl | 6 +- internal/scanner/scanner_test.go | 88 +-- internal/scanner/token.go | 2 +- 11 files changed, 2285 insertions(+), 2285 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index e3b2dc9..8ceb195 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -50,7 +50,7 @@ func (l *Parser) Error(msg string) { } func (l *Parser) WithTokens() { - l.Lexer.SetWithTokens(true) + l.Lexer.SetWithHiddenTokens(true) } // Parse the php7 Parser entrypoint @@ -93,7 +93,7 @@ func isDollar(r rune) bool { } func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } @@ -106,7 +106,7 @@ func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { } func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } @@ -123,7 +123,7 @@ func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []tok } func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return []token.Token{} } @@ -136,7 +136,7 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } func (l *Parser) addDollarToken(v ast.Vertex) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } @@ -149,7 +149,7 @@ func (l *Parser) addDollarToken(v ast.Vertex) { } func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } diff --git a/internal/php5/php5.go b/internal/php5/php5.go index c822f38..a087602 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2320,7 +2320,7 @@ yydefault: yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2358,7 +2358,7 @@ yydefault: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2373,8 +2373,8 @@ yydefault: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2421,10 +2421,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2441,9 +2441,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2460,10 +2460,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2477,9 +2477,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2493,8 +2493,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2511,9 +2511,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2530,9 +2530,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2547,7 +2547,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2559,7 +2559,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2602,8 +2602,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2619,7 +2619,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) @@ -2639,11 +2639,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2654,7 +2654,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2697,8 +2697,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2714,7 +2714,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) @@ -2734,11 +2734,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2749,7 +2749,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2792,8 +2792,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2809,7 +2809,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) @@ -2829,11 +2829,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2854,9 +2854,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2875,9 +2875,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, constList) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2947,10 +2947,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2975,8 +2975,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2990,8 +2990,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3011,7 +3011,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) @@ -3035,7 +3035,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) @@ -3044,9 +3044,9 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[8].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[8].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3068,7 +3068,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) @@ -3090,8 +3090,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) if len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[4].node.GetNode().Tokens, token.OpenParenthesisToken) @@ -3100,7 +3100,7 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[4].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3126,11 +3126,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3153,7 +3153,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) @@ -3175,8 +3175,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3191,8 +3191,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3207,8 +3207,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3223,8 +3223,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3239,8 +3239,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3255,8 +3255,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3271,8 +3271,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3288,7 +3288,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3303,8 +3303,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3319,8 +3319,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3335,9 +3335,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3352,7 +3352,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3367,7 +3367,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3382,10 +3382,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3422,14 +3422,14 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) if yyDollar[6].node != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3465,14 +3465,14 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) if yyDollar[6].node != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3487,9 +3487,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3503,7 +3503,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3522,9 +3522,9 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3538,8 +3538,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3556,9 +3556,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3586,13 +3586,13 @@ yydefault: catchNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3614,9 +3614,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3666,13 +3666,13 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3691,7 +3691,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3755,17 +3755,17 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3793,9 +3793,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3811,10 +3811,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3828,7 +3828,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3844,8 +3844,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3859,7 +3859,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3875,8 +3875,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3898,7 +3898,7 @@ yydefault: yyVAL.ClassExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3926,7 +3926,7 @@ yydefault: yyVAL.InterfaceExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3948,7 +3948,7 @@ yydefault: yyVAL.ClassImplements.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3967,7 +3967,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3986,7 +3986,7 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4008,7 +4008,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4022,9 +4022,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4051,9 +4051,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4081,9 +4081,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4111,9 +4111,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4131,8 +4131,8 @@ yydefault: constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4149,9 +4149,9 @@ yydefault: constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4167,8 +4167,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4184,9 +4184,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4202,9 +4202,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4222,10 +4222,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4249,8 +4249,8 @@ yydefault: _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4266,8 +4266,8 @@ yydefault: _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4307,9 +4307,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4333,7 +4333,7 @@ yydefault: _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) @@ -4366,7 +4366,7 @@ yydefault: _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) @@ -4375,7 +4375,7 @@ yydefault: yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4397,7 +4397,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4421,8 +4421,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Else, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Else, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4457,7 +4457,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4487,12 +4487,12 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) yylex.(*Parser).addDollarToken(variable) // normalize @@ -4537,13 +4537,13 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) yylex.(*Parser).addDollarToken(variable) // normalize @@ -4580,7 +4580,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4594,7 +4594,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4616,8 +4616,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4631,8 +4631,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4648,8 +4648,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4668,7 +4668,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4710,7 +4710,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4724,7 +4724,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4735,7 +4735,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4759,7 +4759,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4774,7 +4774,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4789,10 +4789,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4811,9 +4811,9 @@ yydefault: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4832,10 +4832,10 @@ yydefault: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4855,7 +4855,7 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4875,8 +4875,8 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4907,7 +4907,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4922,7 +4922,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4953,18 +4953,18 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Hidden) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4978,7 +4978,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4997,7 +4997,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5010,7 +5010,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5024,8 +5024,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5068,7 +5068,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5080,7 +5080,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5096,7 +5096,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5115,7 +5115,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5131,7 +5131,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5156,8 +5156,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5174,8 +5174,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5190,7 +5190,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5220,7 +5220,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5235,8 +5235,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5259,7 +5259,7 @@ yydefault: modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5305,7 +5305,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5319,7 +5319,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5333,7 +5333,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5347,7 +5347,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5361,7 +5361,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5375,7 +5375,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5395,8 +5395,8 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5415,10 +5415,10 @@ yydefault: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5438,7 +5438,7 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5458,8 +5458,8 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5480,9 +5480,9 @@ yydefault: yyDollar[1].node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5500,9 +5500,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5513,7 +5513,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5548,7 +5548,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5587,8 +5587,8 @@ yydefault: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5603,8 +5603,8 @@ yydefault: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5662,7 +5662,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5678,10 +5678,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5696,7 +5696,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5711,8 +5711,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5739,9 +5739,9 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5755,7 +5755,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5769,7 +5769,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5784,7 +5784,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5799,7 +5799,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5814,7 +5814,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5829,7 +5829,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5844,7 +5844,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5859,7 +5859,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5874,7 +5874,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5889,7 +5889,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5904,7 +5904,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5919,7 +5919,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5934,7 +5934,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5949,7 +5949,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5963,7 +5963,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5978,7 +5978,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5992,7 +5992,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6007,7 +6007,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6022,7 +6022,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6037,7 +6037,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6052,7 +6052,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6067,7 +6067,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6082,7 +6082,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6097,7 +6097,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6112,7 +6112,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6127,7 +6127,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6142,7 +6142,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6157,7 +6157,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6172,7 +6172,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6187,7 +6187,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6202,7 +6202,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6217,7 +6217,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6232,7 +6232,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6247,7 +6247,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6261,7 +6261,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6275,7 +6275,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6289,7 +6289,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6303,7 +6303,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6318,7 +6318,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6333,7 +6333,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6348,7 +6348,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6363,7 +6363,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6379,7 +6379,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6394,7 +6394,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6409,7 +6409,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6424,7 +6424,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6439,7 +6439,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6471,8 +6471,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) for _, n := range yyDollar[4].list { switch nn := n.(type) { @@ -6509,8 +6509,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6525,8 +6525,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6548,7 +6548,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6563,7 +6563,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6578,7 +6578,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6593,7 +6593,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6608,7 +6608,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6623,7 +6623,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6638,7 +6638,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6662,7 +6662,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6676,7 +6676,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6714,7 +6714,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6728,7 +6728,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6742,7 +6742,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6756,16 +6756,16 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Hidden) // normalize if yyDollar[6].ClosureUse == nil { @@ -6785,17 +6785,17 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.Hidden) if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.Hidden) // normalize if yyDollar[7].ClosureUse == nil { @@ -6815,7 +6815,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6829,7 +6829,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6843,8 +6843,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6858,8 +6858,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6874,8 +6874,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6890,8 +6890,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6907,9 +6907,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6924,8 +6924,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6939,9 +6939,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6955,8 +6955,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6984,9 +6984,9 @@ yydefault: yyVAL.ClosureUse.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7003,8 +7003,8 @@ yydefault: variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -7024,9 +7024,9 @@ yydefault: reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -7044,7 +7044,7 @@ yydefault: variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -7064,8 +7064,8 @@ yydefault: reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -7098,8 +7098,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7115,7 +7115,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7130,7 +7130,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7145,7 +7145,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7160,7 +7160,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7175,7 +7175,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7203,7 +7203,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7231,8 +7231,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7246,7 +7246,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7274,8 +7274,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7289,7 +7289,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7316,7 +7316,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Hidden) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -7383,7 +7383,7 @@ yydefault: yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7405,8 +7405,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7485,7 +7485,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7499,7 +7499,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7513,7 +7513,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7527,7 +7527,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7541,7 +7541,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7555,7 +7555,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7569,7 +7569,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7583,7 +7583,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7597,7 +7597,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7611,7 +7611,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7627,7 +7627,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7641,7 +7641,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7658,8 +7658,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7715,8 +7715,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7732,7 +7732,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7746,9 +7746,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7762,8 +7762,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7785,7 +7785,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7808,8 +7808,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7824,7 +7824,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7839,7 +7839,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7854,7 +7854,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7869,7 +7869,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7884,7 +7884,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7899,7 +7899,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7913,7 +7913,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7927,7 +7927,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7942,7 +7942,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7957,7 +7957,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7972,7 +7972,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7987,7 +7987,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8002,7 +8002,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8017,7 +8017,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8032,7 +8032,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8047,7 +8047,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8062,7 +8062,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8077,7 +8077,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8092,7 +8092,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8107,7 +8107,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8122,7 +8122,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8137,7 +8137,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8152,7 +8152,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8168,7 +8168,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8183,7 +8183,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8198,7 +8198,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8213,7 +8213,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8228,8 +8228,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8244,8 +8244,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8259,7 +8259,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8273,7 +8273,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8284,8 +8284,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8325,8 +8325,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8342,7 +8342,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8358,7 +8358,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8396,7 +8396,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8410,7 +8410,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8424,7 +8424,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8444,7 +8444,7 @@ yydefault: // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8472,9 +8472,9 @@ yydefault: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8489,7 +8489,7 @@ yydefault: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8506,7 +8506,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8554,8 +8554,8 @@ yydefault: if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8572,8 +8572,8 @@ yydefault: if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8613,7 +8613,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Hidden) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -8697,7 +8697,7 @@ yydefault: yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8712,8 +8712,8 @@ yydefault: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8728,8 +8728,8 @@ yydefault: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8801,7 +8801,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8816,7 +8816,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8839,8 +8839,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8855,8 +8855,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8925,8 +8925,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8941,8 +8941,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8966,7 +8966,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8981,10 +8981,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9035,8 +9035,8 @@ yydefault: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9051,8 +9051,8 @@ yydefault: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9078,7 +9078,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9092,8 +9092,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9108,7 +9108,7 @@ yydefault: n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9128,7 +9128,7 @@ yydefault: n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9144,7 +9144,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9186,9 +9186,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9220,7 +9220,7 @@ yydefault: // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9236,9 +9236,9 @@ yydefault: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9253,7 +9253,7 @@ yydefault: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9270,7 +9270,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9302,10 +9302,10 @@ yydefault: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9322,8 +9322,8 @@ yydefault: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9341,8 +9341,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9359,7 +9359,7 @@ yydefault: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9382,7 +9382,7 @@ yydefault: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9405,7 +9405,7 @@ yydefault: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9421,7 +9421,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9441,8 +9441,8 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9463,8 +9463,8 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9481,7 +9481,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9500,7 +9500,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9519,9 +9519,9 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9533,7 +9533,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9547,7 +9547,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9566,7 +9566,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9582,7 +9582,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9597,9 +9597,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9613,9 +9613,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9629,9 +9629,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9645,7 +9645,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9659,7 +9659,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9673,9 +9673,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9689,7 +9689,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9703,7 +9703,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9722,7 +9722,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9755,8 +9755,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9773,8 +9773,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9791,8 +9791,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9809,8 +9809,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 082430d..cb70cfe 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -277,7 +277,7 @@ start: yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -315,7 +315,7 @@ namespace_name: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -328,8 +328,8 @@ namespace_name: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -369,10 +369,10 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -387,9 +387,9 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -404,10 +404,10 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -419,9 +419,9 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -433,8 +433,8 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -449,9 +449,9 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -466,9 +466,9 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -481,7 +481,7 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -494,7 +494,7 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -534,8 +534,8 @@ use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -549,7 +549,7 @@ use_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) @@ -567,11 +567,11 @@ use_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -583,7 +583,7 @@ use_function_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -623,8 +623,8 @@ use_function_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -638,7 +638,7 @@ use_function_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) @@ -656,11 +656,11 @@ use_function_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -672,7 +672,7 @@ use_const_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -712,8 +712,8 @@ use_const_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -727,7 +727,7 @@ use_const_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) @@ -745,11 +745,11 @@ use_const_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -771,9 +771,9 @@ constant_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -790,9 +790,9 @@ constant_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -855,10 +855,10 @@ inner_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -883,8 +883,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -899,8 +899,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -918,7 +918,7 @@ unticked_statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } @@ -938,16 +938,16 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating($$, token.Cond, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $8.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($8)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -967,7 +967,7 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($$, token.While, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } @@ -985,15 +985,15 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) if len($4.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($$, token.While, $4.GetNode().Tokens[token.OpenParenthesisToken][:len($4.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($4.GetNode().Tokens, token.OpenParenthesisToken) } if len($4.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($$, token.Expr, $4.GetNode().Tokens[token.CloseParenthesisToken][:len($4.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($4.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1017,11 +1017,11 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.For, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1042,7 +1042,7 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($$, token.Switch, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } @@ -1060,8 +1060,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1074,8 +1074,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1088,8 +1088,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1102,8 +1102,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1116,8 +1116,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1130,8 +1130,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1144,8 +1144,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1159,7 +1159,7 @@ unticked_statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1172,8 +1172,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1186,8 +1186,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1200,9 +1200,9 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1215,7 +1215,7 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1228,7 +1228,7 @@ unticked_statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1241,10 +1241,10 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1279,13 +1279,13 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) if $6 != nil { yylex.(*Parser).setFreeFloating($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1319,13 +1319,13 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) if $6 != nil { yylex.(*Parser).setFreeFloating($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1338,9 +1338,9 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1352,7 +1352,7 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1369,9 +1369,9 @@ unticked_statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1383,8 +1383,8 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1399,9 +1399,9 @@ unticked_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1428,13 +1428,13 @@ catch_statement: catchNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1455,9 +1455,9 @@ finally_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1506,13 +1506,13 @@ additional_catch: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1530,7 +1530,7 @@ unset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1596,17 +1596,17 @@ unticked_function_declaration_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Params, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Params, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1635,9 +1635,9 @@ unticked_class_declaration_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1651,10 +1651,10 @@ unticked_class_declaration_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1670,7 +1670,7 @@ class_entry_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1684,8 +1684,8 @@ class_entry_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1697,7 +1697,7 @@ class_entry_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1711,8 +1711,8 @@ class_entry_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1733,7 +1733,7 @@ extends_from: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1761,7 +1761,7 @@ interface_extends_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1782,7 +1782,7 @@ implements_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1800,7 +1800,7 @@ interface_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1818,7 +1818,7 @@ foreach_optional_arg: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, token.Key, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Key, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1839,7 +1839,7 @@ foreach_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1851,9 +1851,9 @@ foreach_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.List, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1879,9 +1879,9 @@ for_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1908,9 +1908,9 @@ foreach_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1938,9 +1938,9 @@ declare_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1960,8 +1960,8 @@ declare_list: constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1976,9 +1976,9 @@ declare_list: constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1996,8 +1996,8 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2011,9 +2011,9 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2027,9 +2027,9 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2045,10 +2045,10 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2072,8 +2072,8 @@ case_list: _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.Hidden) yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2087,8 +2087,8 @@ case_list: _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Hidden) yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2128,9 +2128,9 @@ while_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2155,7 +2155,7 @@ elseif_list: _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } @@ -2186,14 +2186,14 @@ new_elseif_list: _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $4.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2215,7 +2215,7 @@ else_single: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2239,8 +2239,8 @@ new_else_single: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Else, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Else, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2274,7 +2274,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2305,12 +2305,12 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) yylex.(*Parser).addDollarToken(variable) // normalize @@ -2350,13 +2350,13 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) yylex.(*Parser).addDollarToken(variable) // normalize @@ -2390,7 +2390,7 @@ optional_class_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2402,7 +2402,7 @@ optional_class_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2424,8 +2424,8 @@ function_call_parameter_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2437,8 +2437,8 @@ function_call_parameter_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2452,8 +2452,8 @@ function_call_parameter_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2472,7 +2472,7 @@ non_empty_function_call_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2511,7 +2511,7 @@ function_call_parameter: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2523,7 +2523,7 @@ function_call_parameter: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2535,7 +2535,7 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2559,7 +2559,7 @@ global_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2572,7 +2572,7 @@ global_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2585,10 +2585,10 @@ global_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2609,9 +2609,9 @@ static_var_list: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2628,10 +2628,10 @@ static_var_list: staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2649,7 +2649,7 @@ static_var_list: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2667,8 +2667,8 @@ static_var_list: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2701,7 +2701,7 @@ class_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2714,7 +2714,7 @@ class_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2741,18 +2741,18 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Hidden) } if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2767,7 +2767,7 @@ trait_use_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2785,7 +2785,7 @@ trait_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2799,7 +2799,7 @@ trait_adaptations: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2811,8 +2811,8 @@ trait_adaptations: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2854,7 +2854,7 @@ trait_adaptation_statement: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2864,7 +2864,7 @@ trait_adaptation_statement: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2881,7 +2881,7 @@ trait_precedence: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2899,7 +2899,7 @@ trait_reference_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2916,7 +2916,7 @@ trait_method_reference: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2940,8 +2940,8 @@ trait_method_reference_fully_qualified: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2959,8 +2959,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2973,7 +2973,7 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3003,7 +3003,7 @@ method_body: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3016,8 +3016,8 @@ method_body: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3039,7 +3039,7 @@ variable_modifiers: modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3084,7 +3084,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3096,7 +3096,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3108,7 +3108,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3120,7 +3120,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3132,7 +3132,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3144,7 +3144,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3165,8 +3165,8 @@ class_variable_declaration: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3183,10 +3183,10 @@ class_variable_declaration: property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, $4.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Var, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3204,7 +3204,7 @@ class_variable_declaration: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3222,8 +3222,8 @@ class_variable_declaration: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(property, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3245,9 +3245,9 @@ class_constant_declaration: $1.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3263,9 +3263,9 @@ class_constant_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3277,7 +3277,7 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3311,7 +3311,7 @@ non_empty_for_expr: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3348,8 +3348,8 @@ chaining_dereference: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3362,8 +3362,8 @@ chaining_dereference: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3418,7 +3418,7 @@ new_expr: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3435,10 +3435,10 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3451,7 +3451,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3464,8 +3464,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3490,9 +3490,9 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Hidden) + yylex.(*Parser).setFreeFloating(_new, token.Start, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3504,7 +3504,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3516,7 +3516,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3529,7 +3529,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3542,7 +3542,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3555,7 +3555,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3568,7 +3568,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3581,7 +3581,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3594,7 +3594,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3607,7 +3607,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3620,7 +3620,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3633,7 +3633,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3646,7 +3646,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3659,7 +3659,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3672,7 +3672,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3684,7 +3684,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3697,7 +3697,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3709,7 +3709,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3722,7 +3722,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3735,7 +3735,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3748,7 +3748,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3761,7 +3761,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3774,7 +3774,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3787,7 +3787,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3800,7 +3800,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3813,7 +3813,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3826,7 +3826,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3839,7 +3839,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3852,7 +3852,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3865,7 +3865,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3878,7 +3878,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3891,7 +3891,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3904,7 +3904,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3917,7 +3917,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3930,7 +3930,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3942,7 +3942,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3954,7 +3954,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3966,7 +3966,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3978,7 +3978,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3991,7 +3991,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4004,7 +4004,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4017,7 +4017,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4030,7 +4030,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4044,7 +4044,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4057,7 +4057,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4070,7 +4070,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4083,7 +4083,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4096,7 +4096,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4120,8 +4120,8 @@ expr_without_variable: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) for _, n := range($4) { switch nn := n.(type) { @@ -4156,8 +4156,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4170,8 +4170,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4189,7 +4189,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4202,7 +4202,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4215,7 +4215,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4228,7 +4228,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4241,7 +4241,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4254,7 +4254,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4267,7 +4267,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4289,7 +4289,7 @@ expr_without_variable: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4301,7 +4301,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4331,7 +4331,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4343,7 +4343,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4355,7 +4355,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4367,16 +4367,16 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Hidden) // normalize if $6 == nil { @@ -4393,17 +4393,17 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Static, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Static, $2.Hidden) if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.Hidden) // normalize if $7 == nil { @@ -4423,7 +4423,7 @@ yield_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4435,7 +4435,7 @@ yield_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4447,8 +4447,8 @@ yield_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4460,8 +4460,8 @@ yield_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4477,8 +4477,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4491,8 +4491,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4506,9 +4506,9 @@ combined_scalar_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4521,8 +4521,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4537,9 +4537,9 @@ combined_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4551,8 +4551,8 @@ combined_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4580,9 +4580,9 @@ lexical_vars: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4600,8 +4600,8 @@ lexical_var_list: variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4619,9 +4619,9 @@ lexical_var_list: reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4637,7 +4637,7 @@ lexical_var_list: variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4655,8 +4655,8 @@ lexical_var_list: reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4688,8 +4688,8 @@ function_call: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4703,7 +4703,7 @@ function_call: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4716,7 +4716,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4729,7 +4729,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4742,7 +4742,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4755,7 +4755,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4782,7 +4782,7 @@ class_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4806,8 +4806,8 @@ class_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4819,7 +4819,7 @@ class_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4846,8 +4846,8 @@ fully_qualified_class_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4859,7 +4859,7 @@ fully_qualified_class_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4886,7 +4886,7 @@ dynamic_class_name_reference: $$ = $1 // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Hidden) for _, n := range($3) { switch nn := n.(type) { @@ -4953,7 +4953,7 @@ dynamic_class_name_variable_property: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4974,8 +4974,8 @@ exit_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5047,7 +5047,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5059,7 +5059,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5071,7 +5071,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5083,7 +5083,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5095,7 +5095,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5107,7 +5107,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5119,7 +5119,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5131,7 +5131,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5143,7 +5143,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5155,7 +5155,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5169,7 +5169,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5181,7 +5181,7 @@ common_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5199,8 +5199,8 @@ static_class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5252,8 +5252,8 @@ static_scalar_value: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5267,7 +5267,7 @@ static_scalar_value: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5279,9 +5279,9 @@ static_scalar_value: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5293,8 +5293,8 @@ static_scalar_value: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5312,7 +5312,7 @@ static_scalar_value: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5334,8 +5334,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5348,7 +5348,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5361,7 +5361,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5374,7 +5374,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5387,7 +5387,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5400,7 +5400,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5413,7 +5413,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5425,7 +5425,7 @@ static_operation: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5437,7 +5437,7 @@ static_operation: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5450,7 +5450,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5463,7 +5463,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5476,7 +5476,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5489,7 +5489,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5502,7 +5502,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5515,7 +5515,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5528,7 +5528,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5541,7 +5541,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5554,7 +5554,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5567,7 +5567,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5580,7 +5580,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5593,7 +5593,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5606,7 +5606,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5619,7 +5619,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5632,7 +5632,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5646,7 +5646,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5659,7 +5659,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5672,7 +5672,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5685,7 +5685,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5698,8 +5698,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5712,8 +5712,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5725,7 +5725,7 @@ static_operation: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5737,7 +5737,7 @@ static_operation: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5746,8 +5746,8 @@ static_operation: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5784,8 +5784,8 @@ general_constant: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5799,7 +5799,7 @@ general_constant: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5816,7 +5816,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5846,7 +5846,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5858,7 +5858,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5870,7 +5870,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5889,7 +5889,7 @@ static_array_pair_list: // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5917,9 +5917,9 @@ non_empty_static_array_pair_list: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5932,7 +5932,7 @@ non_empty_static_array_pair_list: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5947,7 +5947,7 @@ non_empty_static_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5993,8 +5993,8 @@ parenthesis_expr: if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6009,8 +6009,8 @@ parenthesis_expr: if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6056,7 +6056,7 @@ variable: } // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Hidden) for _, n := range($3) { switch nn := n.(type) { @@ -6139,7 +6139,7 @@ variable_property: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6155,8 +6155,8 @@ array_method_dereference: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6169,8 +6169,8 @@ array_method_dereference: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6240,7 +6240,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6253,7 +6253,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6278,8 +6278,8 @@ array_function_dereference: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6292,8 +6292,8 @@ array_function_dereference: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6358,8 +6358,8 @@ reference_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6372,8 +6372,8 @@ reference_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6397,7 +6397,7 @@ compound_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6410,10 +6410,10 @@ compound_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6464,8 +6464,8 @@ object_dim_list: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6478,8 +6478,8 @@ object_dim_list: fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6504,7 +6504,7 @@ variable_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6516,8 +6516,8 @@ variable_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6533,7 +6533,7 @@ simple_indirect_reference: n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6551,7 +6551,7 @@ simple_indirect_reference: n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(n, token.Start, $2.Hidden) yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6568,7 +6568,7 @@ assignment_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6608,9 +6608,9 @@ assignment_list_element: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6640,7 +6640,7 @@ array_pair_list: // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6657,9 +6657,9 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6672,7 +6672,7 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6687,7 +6687,7 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6715,10 +6715,10 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $5.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, $5.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6733,8 +6733,8 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6750,8 +6750,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6766,7 +6766,7 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6788,7 +6788,7 @@ encaps_list: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6807,7 +6807,7 @@ encaps_list: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6824,7 +6824,7 @@ encaps_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6842,8 +6842,8 @@ encaps_var: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6862,8 +6862,8 @@ encaps_var: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6878,7 +6878,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6895,7 +6895,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6912,9 +6912,9 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Tokens, yylex.(*Parser).GetFreeFloatingToken($5)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($6.Tokens, yylex.(*Parser).GetFreeFloatingToken($6)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Hidden, yylex.(*Parser).GetFreeFloatingToken($5)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($6.Hidden, yylex.(*Parser).GetFreeFloatingToken($6)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6924,7 +6924,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6939,7 +6939,7 @@ encaps_var_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6956,7 +6956,7 @@ encaps_var_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6970,7 +6970,7 @@ encaps_var_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6986,9 +6986,9 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7000,9 +7000,9 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7014,9 +7014,9 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7028,7 +7028,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7040,7 +7040,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7052,9 +7052,9 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7066,7 +7066,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7078,7 +7078,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7096,7 +7096,7 @@ isset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7129,8 +7129,8 @@ class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7145,8 +7145,8 @@ class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7164,8 +7164,8 @@ static_class_name_scalar: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7183,8 +7183,8 @@ class_name_scalar: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/parser.go b/internal/php7/parser.go index 918c795..b2f106b 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -48,7 +48,7 @@ func (l *Parser) Error(msg string) { } func (l *Parser) WithTokens() { - l.Lexer.SetWithTokens(true) + l.Lexer.SetWithHiddenTokens(true) } // Parse the php7 Parser entrypoint @@ -91,7 +91,7 @@ func isDollar(r rune) bool { } func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } @@ -104,7 +104,7 @@ func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { } func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } @@ -121,7 +121,7 @@ func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []tok } func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return []token.Token{} } @@ -134,7 +134,7 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } func (l *Parser) addDollarToken(v ast.Vertex) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } @@ -147,7 +147,7 @@ func (l *Parser) addDollarToken(v ast.Vertex) { } func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if l.Lexer.GetWithFreeFloating() == false { + if l.Lexer.GetWithHiddenTokens() == false { return } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 0900ad3..b26e864 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2120,7 +2120,7 @@ yydefault: // save position yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2620,7 +2620,7 @@ yydefault: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2635,8 +2635,8 @@ yydefault: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2664,8 +2664,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2679,7 +2679,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2742,10 +2742,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2762,9 +2762,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2781,10 +2781,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2798,9 +2798,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2814,8 +2814,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2831,8 +2831,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2847,8 +2847,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2863,8 +2863,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2879,8 +2879,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2895,7 +2895,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2909,7 +2909,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2926,12 +2926,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Hidden) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Tokens...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2948,14 +2948,14 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseType, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseType, yyDollar[1].token.Hidden) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Hidden) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Tokens...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2973,12 +2973,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Hidden) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Tokens...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2995,14 +2995,14 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Use, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Use, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Hidden) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Tokens...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3026,7 +3026,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3045,7 +3045,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3064,7 +3064,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3124,8 +3124,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3147,10 +3147,10 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3162,7 +3162,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3256,10 +3256,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3274,8 +3274,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3312,9 +3312,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3328,11 +3328,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[7].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[7].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3358,11 +3358,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3385,9 +3385,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3401,8 +3401,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3417,8 +3417,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3433,8 +3433,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3449,8 +3449,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3465,8 +3465,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3481,9 +3481,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3498,7 +3498,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3513,7 +3513,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3528,14 +3528,14 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Hidden) if yyDollar[4].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Tokens...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3559,10 +3559,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3587,11 +3587,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3606,9 +3606,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3622,7 +3622,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3640,9 +3640,9 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3656,8 +3656,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3674,9 +3674,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3693,8 +3693,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3721,13 +3721,13 @@ yydefault: catch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3746,7 +3746,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3768,9 +3768,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3789,7 +3789,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3813,21 +3813,21 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.Hidden) if yyDollar[8].node != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[8].node.GetNode().Tokens[token.Colon]) delete(yyDollar[8].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Hidden) // normalize if yyDollar[8].node == nil { @@ -3874,10 +3874,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3893,10 +3893,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3926,7 +3926,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3940,7 +3940,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3956,10 +3956,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3975,10 +3975,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4000,7 +4000,7 @@ yydefault: yyVAL.ClassExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4022,7 +4022,7 @@ yydefault: yyVAL.InterfaceExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4044,7 +4044,7 @@ yydefault: yyVAL.ClassImplements.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4066,7 +4066,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4080,9 +4080,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4096,8 +4096,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save commentsc - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4124,9 +4124,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4154,9 +4154,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4184,9 +4184,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4203,8 +4203,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4220,9 +4220,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4238,9 +4238,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4258,10 +4258,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4285,8 +4285,8 @@ yydefault: _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.Tokens)) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.Hidden)) yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4302,8 +4302,8 @@ yydefault: _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4343,9 +4343,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4360,9 +4360,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4380,9 +4380,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4408,7 +4408,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4424,10 +4424,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4446,10 +4446,10 @@ yydefault: _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[6].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4463,8 +4463,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4485,10 +4485,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_else, token.Else, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_else, token.Else, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[6].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4524,7 +4524,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4554,12 +4554,12 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) yylex.(*Parser).addDollarToken(variable) @@ -4605,13 +4605,13 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) yylex.(*Parser).addDollarToken(variable) @@ -4665,7 +4665,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4679,7 +4679,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4693,7 +4693,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4720,7 +4720,7 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Colon, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Colon, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4734,8 +4734,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4749,11 +4749,11 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, append(yyDollar[3].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token), yyDollar[4].token.Tokens...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, append(yyDollar[3].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token), yyDollar[4].token.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[4].token.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4773,7 +4773,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4801,7 +4801,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4812,7 +4812,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4839,7 +4839,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4865,7 +4865,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4884,9 +4884,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4917,7 +4917,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4934,11 +4934,11 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4953,7 +4953,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4975,18 +4975,18 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Hidden) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.Hidden) if yyDollar[9].node != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[9].node.GetNode().Tokens[token.Colon]) delete(yyDollar[9].node.GetNode().Tokens, token.Colon) @@ -5009,7 +5009,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5022,7 +5022,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5036,8 +5036,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5050,8 +5050,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5078,7 +5078,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5090,7 +5090,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5106,7 +5106,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5123,8 +5123,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5141,8 +5141,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5159,8 +5159,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5175,7 +5175,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5191,7 +5191,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5216,8 +5216,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5231,7 +5231,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5246,8 +5246,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5270,7 +5270,7 @@ yydefault: modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5316,7 +5316,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5330,7 +5330,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5344,7 +5344,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5358,7 +5358,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5372,7 +5372,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5386,7 +5386,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5397,7 +5397,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5423,7 +5423,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5442,9 +5442,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5455,7 +5455,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5479,8 +5479,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5496,8 +5496,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5508,7 +5508,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5551,7 +5551,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5577,9 +5577,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5596,7 +5596,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5610,7 +5610,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5626,10 +5626,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5645,9 +5645,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5662,7 +5662,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5677,8 +5677,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5692,7 +5692,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5707,7 +5707,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5722,7 +5722,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5737,7 +5737,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5752,7 +5752,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5767,7 +5767,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5782,7 +5782,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5797,7 +5797,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5812,7 +5812,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5827,7 +5827,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5842,7 +5842,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5857,7 +5857,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5872,7 +5872,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5887,7 +5887,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5902,7 +5902,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5916,7 +5916,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5931,7 +5931,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5945,7 +5945,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5960,7 +5960,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5975,7 +5975,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5990,7 +5990,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6005,7 +6005,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6020,7 +6020,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6035,7 +6035,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6050,7 +6050,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6065,7 +6065,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6080,7 +6080,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6095,7 +6095,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6110,7 +6110,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6125,7 +6125,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6140,7 +6140,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6155,7 +6155,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6170,7 +6170,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6185,7 +6185,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6200,7 +6200,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6214,7 +6214,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6228,7 +6228,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6242,7 +6242,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6256,7 +6256,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6271,7 +6271,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6286,7 +6286,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6301,7 +6301,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6316,7 +6316,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6332,7 +6332,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6347,7 +6347,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6362,7 +6362,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6377,7 +6377,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6392,7 +6392,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6407,7 +6407,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6418,8 +6418,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6442,8 +6442,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6458,8 +6458,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6474,7 +6474,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6496,7 +6496,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6511,7 +6511,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6526,7 +6526,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6541,7 +6541,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6556,7 +6556,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6571,7 +6571,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6586,7 +6586,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6616,7 +6616,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6630,7 +6630,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6652,7 +6652,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6666,7 +6666,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6680,7 +6680,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6694,7 +6694,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6708,8 +6708,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6723,7 +6723,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6754,7 +6754,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyVAL.node.GetNode().Tokens[token.Start]) delete(yyVAL.node.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6768,20 +6768,20 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Hidden) if yyDollar[8].node != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].node.GetNode().Tokens[token.Colon]) delete(yyDollar[8].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Hidden) // normalize if yyDollar[8].node == nil { @@ -6805,19 +6805,19 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Hidden) if yyDollar[6].node != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[6].node.GetNode().Tokens[token.Colon]) delete(yyDollar[6].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.Hidden) // normalize if yyDollar[6].node == nil { @@ -6866,9 +6866,9 @@ yydefault: yyVAL.ClosureUse.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6879,7 +6879,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6903,7 +6903,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6922,8 +6922,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6953,7 +6953,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6968,7 +6968,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6996,7 +6996,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7042,8 +7042,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7101,9 +7101,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7117,8 +7117,8 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7132,7 +7132,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7146,7 +7146,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7160,7 +7160,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7174,7 +7174,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7188,7 +7188,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7202,7 +7202,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7216,7 +7216,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7230,7 +7230,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7244,7 +7244,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7258,7 +7258,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7272,7 +7272,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7288,7 +7288,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7302,7 +7302,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7316,7 +7316,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7330,7 +7330,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7377,8 +7377,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7395,8 +7395,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7455,8 +7455,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7483,8 +7483,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7515,8 +7515,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7531,8 +7531,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7547,8 +7547,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7563,7 +7563,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7602,7 +7602,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7618,7 +7618,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -7633,10 +7633,10 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7650,7 +7650,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -7666,7 +7666,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7681,7 +7681,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7704,8 +7704,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7720,8 +7720,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7736,7 +7736,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7751,7 +7751,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7766,7 +7766,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7780,7 +7780,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7791,8 +7791,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7814,7 +7814,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7825,8 +7825,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7873,7 +7873,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7900,7 +7900,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7931,8 +7931,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7948,7 +7948,7 @@ yydefault: reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7962,7 +7962,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7980,10 +7980,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8000,9 +8000,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8025,7 +8025,7 @@ yydefault: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8048,7 +8048,7 @@ yydefault: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8064,7 +8064,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8084,8 +8084,8 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8106,8 +8106,8 @@ yydefault: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8124,7 +8124,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8143,7 +8143,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8162,9 +8162,9 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8176,7 +8176,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8190,7 +8190,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8209,7 +8209,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8237,7 +8237,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8253,7 +8253,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8268,12 +8268,12 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Hidden) if yyDollar[4].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Hidden) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Tokens...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Hidden...)...)) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8288,9 +8288,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8304,7 +8304,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8318,7 +8318,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8332,9 +8332,9 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8348,7 +8348,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8362,7 +8362,7 @@ yydefault: yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8381,7 +8381,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index cd147ff..7515ba9 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -299,7 +299,7 @@ start: // save position yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -366,7 +366,7 @@ namespace_name: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -379,8 +379,8 @@ namespace_name: namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -407,8 +407,8 @@ name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -420,7 +420,7 @@ name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -472,10 +472,10 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -490,9 +490,9 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -507,10 +507,10 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -522,9 +522,9 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -536,8 +536,8 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -551,8 +551,8 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -565,8 +565,8 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -579,8 +579,8 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -593,8 +593,8 @@ top_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -610,7 +610,7 @@ use_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -622,7 +622,7 @@ use_type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -640,12 +640,12 @@ group_use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Hidden) if $5 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Tokens...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -660,14 +660,14 @@ group_use_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.UseType, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseType, $1.Hidden) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Hidden) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Tokens...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -686,12 +686,12 @@ mixed_group_use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Hidden) if $5 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Tokens...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -706,14 +706,14 @@ mixed_group_use_declaration: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Use, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($$, token.Use, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Hidden) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Tokens...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -737,7 +737,7 @@ inline_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -755,7 +755,7 @@ unprefixed_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -773,7 +773,7 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -829,8 +829,8 @@ unprefixed_use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -851,10 +851,10 @@ use_declaration: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -867,7 +867,7 @@ const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -947,10 +947,10 @@ inner_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -965,8 +965,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -997,9 +997,9 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.While, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.While, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1011,11 +1011,11 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.While, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.While, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $7.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($7)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1039,11 +1039,11 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.For, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1064,9 +1064,9 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Switch, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Switch, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1078,8 +1078,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1092,8 +1092,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1106,8 +1106,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1120,8 +1120,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1134,8 +1134,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1148,9 +1148,9 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1163,7 +1163,7 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1176,7 +1176,7 @@ statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1189,14 +1189,14 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Hidden) if $4 != nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Tokens...)...)) + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1218,10 +1218,10 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $6.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1245,11 +1245,11 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Key, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Key, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $8.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1262,9 +1262,9 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1276,7 +1276,7 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1292,9 +1292,9 @@ statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1306,8 +1306,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1322,9 +1322,9 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1339,8 +1339,8 @@ statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1365,13 +1365,13 @@ catch_list: catch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1388,7 +1388,7 @@ catch_name_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1409,9 +1409,9 @@ finally_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1429,7 +1429,7 @@ unset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1456,20 +1456,20 @@ function_declaration_statement: // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.Hidden) if $8 != nil { yylex.(*Parser).setFreeFloating($$, token.Params, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Hidden) // normalize if $8 == nil { @@ -1514,10 +1514,10 @@ class_declaration_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1531,10 +1531,10 @@ class_declaration_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1564,7 +1564,7 @@ class_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1576,7 +1576,7 @@ class_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1593,10 +1593,10 @@ trait_declaration_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1613,10 +1613,10 @@ interface_declaration_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1637,7 +1637,7 @@ extends_from: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1658,7 +1658,7 @@ interface_extends_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1679,7 +1679,7 @@ implements_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1700,7 +1700,7 @@ foreach_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1712,9 +1712,9 @@ foreach_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.List, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1726,8 +1726,8 @@ foreach_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save commentsc - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1753,9 +1753,9 @@ for_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1782,9 +1782,9 @@ foreach_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1811,9 +1811,9 @@ declare_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1831,8 +1831,8 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1846,9 +1846,9 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1862,9 +1862,9 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1880,10 +1880,10 @@ switch_case_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1906,8 +1906,8 @@ case_list: _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.Tokens)) + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.Hidden)) yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1921,8 +1921,8 @@ case_list: _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Hidden) yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1960,9 +1960,9 @@ while_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1978,9 +1978,9 @@ if_stmt_without_else: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.If, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1996,9 +1996,9 @@ if_stmt_without_else: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2023,7 +2023,7 @@ if_stmt: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2040,10 +2040,10 @@ alt_if_stmt_without_else: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.If, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2060,10 +2060,10 @@ alt_if_stmt_without_else: _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $6.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $6.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2078,8 +2078,8 @@ alt_if_stmt: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $3.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2098,10 +2098,10 @@ alt_if_stmt: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_else, token.Else, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $6.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_else, token.Else, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $6.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2135,7 +2135,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2166,12 +2166,12 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) yylex.(*Parser).addDollarToken(variable) @@ -2212,13 +2212,13 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) yylex.(*Parser).addDollarToken(variable) @@ -2267,7 +2267,7 @@ type_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2282,7 +2282,7 @@ type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2294,7 +2294,7 @@ type: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2318,7 +2318,7 @@ return_type: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Colon, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Colon, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2333,8 +2333,8 @@ argument_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2346,11 +2346,11 @@ argument_list: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, append($3.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($3), $4.Tokens...)...)) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, append($3.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($3), $4.Hidden...)...)) } else { - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $4.Hidden) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2369,7 +2369,7 @@ non_empty_argument_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2396,7 +2396,7 @@ argument: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2408,7 +2408,7 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2435,7 +2435,7 @@ static_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2460,7 +2460,7 @@ static_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2477,9 +2477,9 @@ static_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2510,7 +2510,7 @@ class_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2525,11 +2525,11 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2542,7 +2542,7 @@ class_statement: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2562,18 +2562,18 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Hidden) } if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.Hidden) if $9 != nil { yylex.(*Parser).setFreeFloating($$, token.Params, $9.GetNode().Tokens[token.Colon]); delete($9.GetNode().Tokens, token.Colon) } @@ -2594,7 +2594,7 @@ name_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2608,7 +2608,7 @@ trait_adaptations: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) @@ -2621,8 +2621,8 @@ trait_adaptations: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2633,8 +2633,8 @@ trait_adaptations: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2661,7 +2661,7 @@ trait_adaptation: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2671,7 +2671,7 @@ trait_adaptation: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2688,7 +2688,7 @@ trait_precedence: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2706,8 +2706,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2722,8 +2722,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2738,8 +2738,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2752,7 +2752,7 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2769,7 +2769,7 @@ trait_method_reference: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2793,8 +2793,8 @@ absolute_trait_method_reference: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2809,7 +2809,7 @@ method_body: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2822,8 +2822,8 @@ method_body: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2845,7 +2845,7 @@ variable_modifiers: modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2890,7 +2890,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2902,7 +2902,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2914,7 +2914,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2926,7 +2926,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2938,7 +2938,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2950,7 +2950,7 @@ member_modifier: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2962,7 +2962,7 @@ property_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2987,7 +2987,7 @@ property: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3004,9 +3004,9 @@ property: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3018,7 +3018,7 @@ class_const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3041,8 +3041,8 @@ class_const_decl: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3059,8 +3059,8 @@ const_decl: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3072,7 +3072,7 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3114,7 +3114,7 @@ non_empty_for_exprs: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3139,9 +3139,9 @@ anonymous_class: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3159,7 +3159,7 @@ new_expr: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3171,7 +3171,7 @@ new_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3188,10 +3188,10 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3205,9 +3205,9 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3220,7 +3220,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3233,8 +3233,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3246,7 +3246,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3259,7 +3259,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3272,7 +3272,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3285,7 +3285,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3298,7 +3298,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3311,7 +3311,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3324,7 +3324,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3337,7 +3337,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3350,7 +3350,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3363,7 +3363,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3376,7 +3376,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3389,7 +3389,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3402,7 +3402,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3415,7 +3415,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3428,7 +3428,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3440,7 +3440,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3453,7 +3453,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3465,7 +3465,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3478,7 +3478,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3491,7 +3491,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3504,7 +3504,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3517,7 +3517,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3530,7 +3530,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3543,7 +3543,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3556,7 +3556,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3569,7 +3569,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3582,7 +3582,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3595,7 +3595,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3608,7 +3608,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3621,7 +3621,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3634,7 +3634,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3647,7 +3647,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3660,7 +3660,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3673,7 +3673,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3686,7 +3686,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3698,7 +3698,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3710,7 +3710,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3722,7 +3722,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3734,7 +3734,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3747,7 +3747,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3760,7 +3760,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3773,7 +3773,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3786,7 +3786,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3800,7 +3800,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3813,7 +3813,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3826,7 +3826,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3839,7 +3839,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3852,7 +3852,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3865,7 +3865,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3874,8 +3874,8 @@ expr_without_variable: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3894,8 +3894,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3908,8 +3908,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3922,7 +3922,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3940,7 +3940,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3953,7 +3953,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3966,7 +3966,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3979,7 +3979,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -3992,7 +3992,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4005,7 +4005,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4018,7 +4018,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4046,7 +4046,7 @@ expr_without_variable: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4058,7 +4058,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4076,7 +4076,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4088,7 +4088,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4100,7 +4100,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4112,7 +4112,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4124,8 +4124,8 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4137,7 +4137,7 @@ expr_without_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4163,7 +4163,7 @@ expr_without_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Static, $$.GetNode().Tokens[token.Start]); delete($$.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens); + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden); yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4178,19 +4178,19 @@ inline_function: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Hidden) if $8 != nil { yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Hidden) // normalize if $8 == nil { @@ -4210,18 +4210,18 @@ inline_function: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) }; - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Hidden) if $6 != nil { yylex.(*Parser).setFreeFloating($$, token.Params, $6.GetNode().Tokens[token.Colon]); delete($6.GetNode().Tokens, token.Colon) }; - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.Hidden) // normalize if $6 == nil { @@ -4268,9 +4268,9 @@ lexical_vars: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4282,7 +4282,7 @@ lexical_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4305,7 +4305,7 @@ lexical_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4322,8 +4322,8 @@ lexical_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Hidden) yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4352,7 +4352,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4365,7 +4365,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4392,7 +4392,7 @@ class_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4434,8 +4434,8 @@ exit_expr: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Tokens, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4490,9 +4490,9 @@ dereferencable_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4504,8 +4504,8 @@ dereferencable_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4517,7 +4517,7 @@ dereferencable_scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4532,7 +4532,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4544,7 +4544,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4556,7 +4556,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4568,7 +4568,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4580,7 +4580,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4592,7 +4592,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4604,7 +4604,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4616,7 +4616,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4628,7 +4628,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4640,7 +4640,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4654,7 +4654,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4666,7 +4666,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4678,7 +4678,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4690,7 +4690,7 @@ scalar: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4732,8 +4732,8 @@ constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4748,8 +4748,8 @@ constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4806,8 +4806,8 @@ dereferencable: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4831,8 +4831,8 @@ callable_expr: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4860,8 +4860,8 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4874,8 +4874,8 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4888,8 +4888,8 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4902,7 +4902,7 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4936,7 +4936,7 @@ variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4953,7 +4953,7 @@ simple_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4966,10 +4966,10 @@ simple_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4981,7 +4981,7 @@ simple_variable: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4998,7 +4998,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5011,7 +5011,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5033,8 +5033,8 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5047,8 +5047,8 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5061,7 +5061,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5074,7 +5074,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5087,7 +5087,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5102,7 +5102,7 @@ member_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5111,8 +5111,8 @@ member_name: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5133,7 +5133,7 @@ property_name: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5142,8 +5142,8 @@ property_name: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5189,7 +5189,7 @@ non_empty_array_pair_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5215,7 +5215,7 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5242,8 +5242,8 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5257,7 +5257,7 @@ array_pair: reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5269,7 +5269,7 @@ array_pair: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5285,10 +5285,10 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $4.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, $4.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5303,9 +5303,9 @@ array_pair: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5327,7 +5327,7 @@ encaps_list: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5346,7 +5346,7 @@ encaps_list: encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5363,7 +5363,7 @@ encaps_var: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5381,8 +5381,8 @@ encaps_var: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Tokens, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Tokens, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5401,8 +5401,8 @@ encaps_var: // save comments yylex.(*Parser).addDollarToken(variable) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5417,7 +5417,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5434,7 +5434,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5451,9 +5451,9 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Tokens, yylex.(*Parser).GetFreeFloatingToken($5)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($6.Tokens, yylex.(*Parser).GetFreeFloatingToken($6)...)) + yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Hidden, yylex.(*Parser).GetFreeFloatingToken($5)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($6.Hidden, yylex.(*Parser).GetFreeFloatingToken($6)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5463,7 +5463,7 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Tokens, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5478,7 +5478,7 @@ encaps_var_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5495,7 +5495,7 @@ encaps_var_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5521,7 +5521,7 @@ encaps_var_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5535,7 +5535,7 @@ encaps_var_offset: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5551,12 +5551,12 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Hidden) if $4 == nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Hidden) } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Tokens...)...)) + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Hidden...)...)) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5569,9 +5569,9 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5583,7 +5583,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5595,7 +5595,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5607,9 +5607,9 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5621,7 +5621,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5633,7 +5633,7 @@ internal_functions_in_yacc: $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5651,7 +5651,7 @@ isset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 9dad9d0..2a24948 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -16,8 +16,8 @@ type Scanner interface { GetPhpDocComment() string SetPhpDocComment(string) GetErrors() []*errors.Error - GetWithFreeFloating() bool - SetWithTokens(bool) + GetWithHiddenTokens() bool + SetWithHiddenTokens(bool) AddError(e *errors.Error) SetErrors(e []*errors.Error) } @@ -35,14 +35,14 @@ type Lexer struct { top int heredocLabel []byte - TokenPool *TokenPool - Tokens []token.Token - WithTokens bool - PhpDocComment string - lastToken *Token - Errors []*errors.Error - NewLines NewLines - PHPVersion string + TokenPool *TokenPool + HiddenTokens []token.Token + WithHiddenTokens bool + PhpDocComment string + lastToken *Token + Errors []*errors.Error + NewLines NewLines + PHPVersion string } func (l *Lexer) ReturnTokenToPool(t *Token) { @@ -61,12 +61,12 @@ func (l *Lexer) GetErrors() []*errors.Error { return l.Errors } -func (l *Lexer) GetWithFreeFloating() bool { - return l.WithTokens +func (l *Lexer) GetWithHiddenTokens() bool { + return l.WithHiddenTokens } -func (l *Lexer) SetWithTokens(b bool) { - l.WithTokens = b +func (l *Lexer) SetWithHiddenTokens(b bool) { + l.WithHiddenTokens = b } func (l *Lexer) AddError(e *errors.Error) { @@ -85,11 +85,11 @@ func (lex *Lexer) setTokenPosition(token *Token) { } func (lex *Lexer) addToken(id TokenID, ps, pe int) { - if !lex.WithTokens { + if !lex.WithHiddenTokens { return } - lex.Tokens = append(lex.Tokens, token.Token{ + lex.HiddenTokens = append(lex.HiddenTokens, token.Token{ ID: token.ID(id), Value: lex.data[ps:pe], }) diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 0d411e1..b1cf6d3 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -55,12 +55,12 @@ func NewLexer(data []byte) *Lexer { } func (lex *Lexer) Lex(lval Lval) int { - lex.Tokens = nil + lex.HiddenTokens = nil eof := lex.pe var tok TokenID token := lex.TokenPool.Get() - token.Tokens = lex.Tokens + token.Hidden = nil token.Value = lex.data[0:0] lblStart := 0 @@ -22865,7 +22865,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line internal/scanner/scanner.rl:509 - token.Tokens = lex.Tokens + token.Hidden = lex.HiddenTokens token.Value = lex.data[lex.ts:lex.te] token.ID = tok diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index d9195f2..3379bef 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -28,12 +28,12 @@ func NewLexer(data []byte) *Lexer { } func (lex *Lexer) Lex(lval Lval) int { - lex.Tokens = nil + lex.HiddenTokens = nil eof := lex.pe var tok TokenID token := lex.TokenPool.Get() - token.Tokens = lex.Tokens + token.Hidden = nil token.Value = lex.data[0:0] lblStart := 0 @@ -508,7 +508,7 @@ func (lex *Lexer) Lex(lval Lval) int { write exec; }%% - token.Tokens = lex.Tokens + token.Hidden = lex.HiddenTokens token.Value = lex.data[lex.ts:lex.te] token.ID = tok diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 71822c4..fecea9d 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -360,7 +360,7 @@ func TestTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -389,14 +389,14 @@ func TestShebang(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} token := lexer.Lex(lv) assert.Equal(t, token, int(T_DNUMBER)) - for _, tt := range lv.Tkn.Tokens { + for _, tt := range lv.Tkn.Hidden { actual = append(actual, string(tt.Value)) } @@ -410,12 +410,12 @@ func TestShebangHtml(t *testing.T) { ` lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} token := lexer.Lex(lv) assert.Equal(t, token, int(T_INLINE_HTML)) - assert.Equal(t, string(lv.Tkn.Tokens[0].Value), "#!/usr/bin/env php\n") + assert.Equal(t, string(lv.Tkn.Hidden[0].Value), "#!/usr/bin/env php\n") token = lexer.Lex(lv) assert.Equal(t, token, int(T_DNUMBER)) @@ -461,7 +461,7 @@ func TestNumberTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -519,7 +519,7 @@ func TestConstantStrings(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -655,7 +655,7 @@ func TestTeplateStringTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -741,7 +741,7 @@ func TestBackquoteStringTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -836,7 +836,7 @@ CAT; } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -910,7 +910,7 @@ CAT } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -950,7 +950,7 @@ CAT; } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -982,7 +982,7 @@ func TestHereDocTokens73(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -1014,7 +1014,7 @@ CAT;` lexer := NewLexer([]byte(src)) lexer.PHPVersion = "7.2" - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -1047,7 +1047,7 @@ func TestInlineHtmlNopTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} actual := []string{} @@ -1155,12 +1155,12 @@ func TestCommentEnd(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lexer.Tokens + actual := lexer.HiddenTokens assert.DeepEqual(t, expected, actual) } @@ -1185,12 +1185,12 @@ func TestCommentNewLine(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1215,12 +1215,12 @@ func TestCommentNewLine1(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1245,12 +1245,12 @@ func TestCommentNewLine2(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1276,12 +1276,12 @@ func TestCommentWithPhpEndTag(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1307,12 +1307,12 @@ func TestInlineComment(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1338,12 +1338,12 @@ func TestInlineComment2(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lexer.Tokens + actual := lexer.HiddenTokens assert.DeepEqual(t, expected, actual) } @@ -1373,12 +1373,12 @@ func TestEmptyInlineComment(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lexer.Tokens + actual := lexer.HiddenTokens assert.DeepEqual(t, expected, actual) } @@ -1404,12 +1404,12 @@ func TestEmptyInlineComment2(t *testing.T) { } lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1419,7 +1419,7 @@ func TestMethodCallTokens(t *testing.T) { $a -> bar ( '' ) ;` lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} expected := []token.Token{ @@ -1433,7 +1433,7 @@ func TestMethodCallTokens(t *testing.T) { }, } lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1443,7 +1443,7 @@ func TestMethodCallTokens(t *testing.T) { }, } lexer.Lex(lv) - actual = lv.Tkn.Tokens + actual = lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1453,7 +1453,7 @@ func TestMethodCallTokens(t *testing.T) { }, } lexer.Lex(lv) - actual = lv.Tkn.Tokens + actual = lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1463,7 +1463,7 @@ func TestMethodCallTokens(t *testing.T) { }, } lexer.Lex(lv) - actual = lv.Tkn.Tokens + actual = lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1473,7 +1473,7 @@ func TestMethodCallTokens(t *testing.T) { }, } lexer.Lex(lv) - actual = lv.Tkn.Tokens + actual = lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1483,7 +1483,7 @@ func TestMethodCallTokens(t *testing.T) { }, } lexer.Lex(lv) - actual = lv.Tkn.Tokens + actual = lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1493,7 +1493,7 @@ func TestMethodCallTokens(t *testing.T) { }, } lexer.Lex(lv) - actual = lv.Tkn.Tokens + actual = lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1502,7 +1502,7 @@ func TestYieldFromTokens(t *testing.T) { yield from $a` lexer := NewLexer([]byte(src)) - lexer.WithTokens = true + lexer.WithHiddenTokens = true lv := &lval{} expected := []token.Token{ @@ -1516,7 +1516,7 @@ func TestYieldFromTokens(t *testing.T) { }, } lexer.Lex(lv) - actual := lv.Tkn.Tokens + actual := lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1526,7 +1526,7 @@ func TestYieldFromTokens(t *testing.T) { }, } lexer.Lex(lv) - actual = lv.Tkn.Tokens + actual = lv.Tkn.Hidden assert.DeepEqual(t, expected, actual) } diff --git a/internal/scanner/token.go b/internal/scanner/token.go index 793958c..b46b340 100644 --- a/internal/scanner/token.go +++ b/internal/scanner/token.go @@ -9,6 +9,6 @@ import ( type Token struct { ID TokenID Value []byte - Tokens []token.Token + Hidden []token.Token Position position.Position } From 8a50bd254aee4e3e12e2d1cf07d7de4d4aefd070 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 18 May 2020 00:23:02 +0300 Subject: [PATCH 013/140] [refactoring] remove scanner.Lexer.PhpDocComment --- internal/php7/php7.go | 1030 +++++++++++++++++------------------ internal/php7/php7.y | 9 - internal/scanner/lexer.go | 11 - internal/scanner/scanner.go | 382 +++++++------ internal/scanner/scanner.rl | 3 +- 5 files changed, 701 insertions(+), 734 deletions(-) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index b26e864..ff4af9b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -22,7 +22,6 @@ type yySymType struct { node ast.Vertex token *scanner.Token list []ast.Vertex - str string ClassExtends *ast.StmtClassExtends ClassImplements *ast.StmtClassImplements @@ -346,7 +345,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5671 +// line internal/php7/php7.y:5662 // line yacctab:1 var yyExca = [...]int{ @@ -1435,11 +1434,11 @@ var yyPgo = [...]int{ 9, 762, 20, 553, 868, 18, 867, 864, 862, 88, 860, 36, 858, 855, 25, 33, 854, 853, 45, 848, 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, - 832, 17, 831, 821, 803, 7, 767, 28, 752, + 832, 17, 831, 821, 803, 7, 767, 752, 28, } var yyR1 = [...]int{ - 0, 128, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 127, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -1476,7 +1475,7 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 85, 85, 127, 3, 3, 89, 89, + 32, 32, 32, 85, 85, 128, 3, 3, 89, 89, 112, 112, 51, 51, 52, 52, 52, 52, 45, 45, 46, 46, 49, 49, 94, 94, 94, 78, 78, 56, 56, 56, 50, 50, 50, 50, 50, 50, 50, 50, @@ -1545,7 +1544,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -128, -117, -9, 2, -11, -12, -13, -14, -15, + -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, 52, 80, 45, 39, 144, -65, -66, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, @@ -1583,7 +1582,7 @@ var yyChk = [...]int{ -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -46, -23, 147, -23, -110, -27, -28, -23, -99, -118, 146, 146, 10, - -127, 10, -86, 56, -127, -88, 56, 148, -11, 148, + -128, 10, -86, 56, -128, -88, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -54, 10, 144, -47, -115, 151, 160, 59, -28, -23, @@ -1602,42 +1601,42 @@ var yyChk = [...]int{ -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, 83, -95, -19, 83, -95, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -33, -34, -23, -42, - 147, -23, -7, 160, 29, 149, 145, -127, 148, -86, - -87, 57, -10, 144, -127, -125, -10, -23, -23, -118, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -86, + -87, 57, -10, 144, -128, -125, -10, -23, -23, -118, -23, 149, 151, 145, -77, -23, 149, 162, -71, -23, 153, 60, -115, 149, 151, 149, -64, 10, 13, 154, 12, 10, 145, 145, 150, 145, -23, 151, -77, -23, -77, -47, -24, -23, -54, -47, -86, -7, 160, 149, 149, -119, -120, -29, -30, -75, -73, 152, 61, 62, -10, 145, -7, 160, -23, 149, 145, 144, 83, -105, - -17, -20, -91, 144, -127, 149, -84, -11, 147, -23, + -17, -20, -91, 144, -128, 149, -84, -11, 147, -23, -101, -23, -80, 144, 147, -23, 149, -27, -92, -28, 153, 60, 150, -25, -11, 147, -97, 148, -119, -87, - -127, -125, -121, 144, 160, 149, 149, 96, -11, 147, + -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, 151, 145, -87, 149, -72, 149, 160, -1, 153, -73, 149, -31, -104, -20, 144, -7, 160, -20, -105, 146, -118, 149, 146, -108, 146, -108, 146, 146, 149, 59, - -28, 148, -115, -118, -26, 42, 43, -119, 149, -127, + -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, 144, 145, -35, -123, -122, 45, -124, 48, -90, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -127, -74, 147, -29, -2, 84, + -118, -23, -115, 151, -128, -74, 147, -29, -2, 84, -7, 160, -104, 145, -17, -7, 22, 146, -101, 145, 32, 33, -108, 31, -108, -82, -11, 147, -92, -28, -115, 151, 28, 148, 144, 149, -89, 45, 144, -121, -30, 39, 37, -125, -90, 145, -118, 149, 145, 144, - -127, -75, 12, 145, -20, -7, 145, 146, 149, -23, + -128, -75, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, -96, -10, -118, -74, -74, 148, -121, 145, -106, -41, 12, -98, -68, -6, -3, -79, 146, 144, -121, 59, 162, 145, -83, -11, 147, -8, -118, 146, 26, -82, 12, 161, 145, 144, 144, -112, -51, 12, 153, 145, - 146, 160, -127, 162, 146, 160, 162, -6, 145, -109, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -109, -36, -37, -38, -39, -40, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -41, -23, -68, -23, -127, 145, -36, 146, - 146, 46, 29, 79, 24, 144, 145, 145, -51, -127, - -127, 148, -125, 10, -4, -90, -6, 146, -118, -119, + 160, 12, -41, -23, -68, -23, -128, 145, -36, 146, + 146, 46, 29, 79, 24, 144, 145, 145, -51, -128, + -128, 148, -125, 10, -4, -90, -6, 146, -118, -119, -6, 145, 149, -74, -81, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2113,7 +2112,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2126,469 +2125,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:314 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:328 + // line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:332 + // line internal/php7/php7.y:329 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:339 + // line internal/php7/php7.y:336 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2603,7 +2602,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:352 + // line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{} @@ -2611,7 +2610,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:361 + // line internal/php7/php7.y:358 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2626,7 +2625,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:374 + // line internal/php7/php7.y:371 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2642,7 +2641,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:391 + // line internal/php7/php7.y:388 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -2656,7 +2655,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:403 + // line internal/php7/php7.y:400 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -2671,7 +2670,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:416 + // line internal/php7/php7.y:413 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -2685,7 +2684,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:431 + // line internal/php7/php7.y:428 { // error yyVAL.node = nil @@ -2694,7 +2693,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:438 + // line internal/php7/php7.y:435 { yyVAL.node = yyDollar[1].node @@ -2702,7 +2701,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:444 + // line internal/php7/php7.y:441 { yyVAL.node = yyDollar[1].node @@ -2710,7 +2709,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:450 + // line internal/php7/php7.y:447 { yyVAL.node = yyDollar[1].node @@ -2718,7 +2717,7 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:456 + // line internal/php7/php7.y:453 { yyVAL.node = yyDollar[1].node @@ -2726,7 +2725,7 @@ yydefault: } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:462 + // line internal/php7/php7.y:459 { yyVAL.node = yyDollar[1].node @@ -2734,7 +2733,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:468 + // line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2752,7 +2751,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:484 + // line internal/php7/php7.y:481 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2771,7 +2770,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:501 + // line internal/php7/php7.y:498 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2790,7 +2789,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:518 + // line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2806,7 +2805,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:532 + // line internal/php7/php7.y:529 { yyVAL.node = yyDollar[2].node @@ -2822,7 +2821,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:546 + // line internal/php7/php7.y:543 { yyDollar[3].node.(*ast.StmtGroupUse).UseType = yyDollar[2].node yyVAL.node = yyDollar[3].node @@ -2839,7 +2838,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:561 + // line internal/php7/php7.y:558 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} @@ -2855,7 +2854,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:575 + // line internal/php7/php7.y:572 { yyVAL.node = &ast.StmtUseList{ast.Node{}, yyDollar[2].node, yyDollar[3].list} @@ -2871,7 +2870,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:589 + // line internal/php7/php7.y:586 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2887,7 +2886,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:606 + // line internal/php7/php7.y:603 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2901,7 +2900,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:618 + // line internal/php7/php7.y:615 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2915,7 +2914,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:633 + // line internal/php7/php7.y:630 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2938,7 +2937,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:654 + // line internal/php7/php7.y:651 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -2962,7 +2961,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:679 + // line internal/php7/php7.y:676 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2985,7 +2984,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:700 + // line internal/php7/php7.y:697 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -3009,19 +3008,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:725 + // line internal/php7/php7.y:722 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:729 + // line internal/php7/php7.y:726 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:736 + // line internal/php7/php7.y:733 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3032,7 +3031,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:745 + // line internal/php7/php7.y:742 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3040,7 +3039,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:754 + // line internal/php7/php7.y:751 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3051,7 +3050,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:763 + // line internal/php7/php7.y:760 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3059,7 +3058,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:772 + // line internal/php7/php7.y:769 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3070,7 +3069,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:781 + // line internal/php7/php7.y:778 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3078,7 +3077,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:790 + // line internal/php7/php7.y:787 { yyVAL.node = yyDollar[1].node @@ -3086,7 +3085,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:796 + // line internal/php7/php7.y:793 { yyDollar[2].node.(*ast.StmtUse).UseType = yyDollar[1].node yyVAL.node = yyDollar[2].node @@ -3095,7 +3094,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:806 + // line internal/php7/php7.y:803 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -3111,7 +3110,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:820 + // line internal/php7/php7.y:817 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -3131,7 +3130,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:841 + // line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node @@ -3142,7 +3141,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:850 + // line internal/php7/php7.y:847 { yyVAL.node = yyDollar[2].node @@ -3157,7 +3156,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:866 + // line internal/php7/php7.y:863 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3168,7 +3167,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:875 + // line internal/php7/php7.y:872 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3176,7 +3175,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:884 + // line internal/php7/php7.y:881 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3191,7 +3190,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:897 + // line internal/php7/php7.y:894 { yyVAL.list = []ast.Vertex{} @@ -3199,7 +3198,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:906 + // line internal/php7/php7.y:903 { // error yyVAL.node = nil @@ -3208,7 +3207,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:913 + // line internal/php7/php7.y:910 { yyVAL.node = yyDollar[1].node @@ -3216,7 +3215,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:919 + // line internal/php7/php7.y:916 { yyVAL.node = yyDollar[1].node @@ -3224,7 +3223,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:925 + // line internal/php7/php7.y:922 { yyVAL.node = yyDollar[1].node @@ -3232,7 +3231,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:931 + // line internal/php7/php7.y:928 { yyVAL.node = yyDollar[1].node @@ -3240,7 +3239,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:937 + // line internal/php7/php7.y:934 { yyVAL.node = yyDollar[1].node @@ -3248,7 +3247,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:943 + // line internal/php7/php7.y:940 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3266,7 +3265,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:961 + // line internal/php7/php7.y:958 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3281,7 +3280,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:974 + // line internal/php7/php7.y:971 { yyVAL.node = yyDollar[1].node @@ -3289,7 +3288,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:980 + // line internal/php7/php7.y:977 { yyVAL.node = yyDollar[1].node @@ -3297,7 +3296,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:986 + // line internal/php7/php7.y:983 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3320,7 +3319,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1007 + // line internal/php7/php7.y:1004 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3339,7 +3338,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1024 + // line internal/php7/php7.y:1021 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3368,7 +3367,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1051 + // line internal/php7/php7.y:1048 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3393,7 +3392,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1071 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3409,7 +3408,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1088 + // line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3425,7 +3424,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1099 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3441,7 +3440,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1116 + // line internal/php7/php7.y:1113 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3457,7 +3456,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1130 + // line internal/php7/php7.y:1127 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3473,7 +3472,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1144 + // line internal/php7/php7.y:1141 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3490,7 +3489,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1159 + // line internal/php7/php7.y:1156 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3504,7 +3503,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1168 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3520,7 +3519,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1185 + // line internal/php7/php7.y:1182 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3542,7 +3541,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1205 + // line internal/php7/php7.y:1202 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3568,7 +3567,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1230 + // line internal/php7/php7.y:1227 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3597,7 +3596,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1257 + // line internal/php7/php7.y:1254 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3614,7 +3613,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1272 + // line internal/php7/php7.y:1269 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3629,7 +3628,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1282 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3648,7 +3647,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1302 + // line internal/php7/php7.y:1299 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3664,7 +3663,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1313 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3683,7 +3682,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1333 + // line internal/php7/php7.y:1330 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3700,7 +3699,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1350 + // line internal/php7/php7.y:1347 { yyVAL.list = []ast.Vertex{} @@ -3708,7 +3707,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1356 + // line internal/php7/php7.y:1353 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[5].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3733,7 +3732,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1378 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3741,7 +3740,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1387 + // line internal/php7/php7.y:1384 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3752,7 +3751,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1399 + // line internal/php7/php7.y:1396 { yyVAL.node = nil @@ -3760,7 +3759,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1402 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3776,7 +3775,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1422 + // line internal/php7/php7.y:1419 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3784,7 +3783,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1428 + // line internal/php7/php7.y:1425 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3795,7 +3794,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1440 + // line internal/php7/php7.y:1437 { yyVAL.node = yyDollar[1].node @@ -3803,7 +3802,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1449 + // line internal/php7/php7.y:1446 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3839,31 +3838,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1485 + // line internal/php7/php7.y:1482 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1489 + // line internal/php7/php7.y:1486 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1496 + // line internal/php7/php7.y:1493 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1500 + // line internal/php7/php7.y:1497 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1507 + // line internal/php7/php7.y:1504 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3883,7 +3882,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1525 + // line internal/php7/php7.y:1522 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3902,7 +3901,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1545 + // line internal/php7/php7.y:1542 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3910,7 +3909,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1548 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3918,7 +3917,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1560 + // line internal/php7/php7.y:1557 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3932,7 +3931,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1569 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3946,7 +3945,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1587 + // line internal/php7/php7.y:1584 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3965,7 +3964,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1607 + // line internal/php7/php7.y:1604 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3984,7 +3983,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1627 + // line internal/php7/php7.y:1624 { yyVAL.ClassExtends = nil @@ -3992,7 +3991,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1633 + // line internal/php7/php7.y:1630 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -4006,7 +4005,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1648 + // line internal/php7/php7.y:1645 { yyVAL.InterfaceExtends = nil @@ -4014,7 +4013,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1651 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4028,7 +4027,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1669 + // line internal/php7/php7.y:1666 { yyVAL.ClassImplements = nil @@ -4036,7 +4035,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1672 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4050,7 +4049,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1690 + // line internal/php7/php7.y:1687 { yyVAL.node = yyDollar[1].node @@ -4058,7 +4057,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1693 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4072,7 +4071,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1708 + // line internal/php7/php7.y:1705 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4088,7 +4087,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1722 + // line internal/php7/php7.y:1719 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4103,7 +4102,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1738 + // line internal/php7/php7.y:1735 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4114,7 +4113,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1747 + // line internal/php7/php7.y:1744 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4133,7 +4132,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1767 + // line internal/php7/php7.y:1764 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4144,7 +4143,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1776 + // line internal/php7/php7.y:1773 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4163,7 +4162,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1793 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4174,7 +4173,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1805 + // line internal/php7/php7.y:1802 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4193,7 +4192,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1825 + // line internal/php7/php7.y:1822 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4210,7 +4209,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1837 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4228,7 +4227,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1856 + // line internal/php7/php7.y:1853 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4247,7 +4246,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1873 + // line internal/php7/php7.y:1870 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4268,7 +4267,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1895 + // line internal/php7/php7.y:1892 { yyVAL.list = []ast.Vertex{} @@ -4276,7 +4275,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1901 + // line internal/php7/php7.y:1898 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4293,7 +4292,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1916 + // line internal/php7/php7.y:1913 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4310,19 +4309,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1934 + // line internal/php7/php7.y:1931 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1938 + // line internal/php7/php7.y:1935 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1945 + // line internal/php7/php7.y:1942 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4333,7 +4332,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1954 + // line internal/php7/php7.y:1951 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4352,7 +4351,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1974 + // line internal/php7/php7.y:1971 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4368,7 +4367,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1988 + // line internal/php7/php7.y:1985 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4388,7 +4387,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2009 + // line internal/php7/php7.y:2006 { yyVAL.node = yyDollar[1].node @@ -4396,7 +4395,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2015 + // line internal/php7/php7.y:2012 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4414,7 +4413,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2034 + // line internal/php7/php7.y:2031 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4433,7 +4432,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2051 + // line internal/php7/php7.y:2048 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4455,7 +4454,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2074 + // line internal/php7/php7.y:2071 { yyVAL.node = yyDollar[1].node @@ -4471,7 +4470,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2088 + // line internal/php7/php7.y:2085 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4495,7 +4494,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2113 + // line internal/php7/php7.y:2110 { yyVAL.list = yyDollar[1].list @@ -4503,7 +4502,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2119 + // line internal/php7/php7.y:2116 { yyVAL.list = nil @@ -4511,7 +4510,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2128 + // line internal/php7/php7.y:2125 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4519,7 +4518,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2134 + // line internal/php7/php7.y:2131 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4530,7 +4529,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2146 + // line internal/php7/php7.y:2143 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4581,7 +4580,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2192 + // line internal/php7/php7.y:2189 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4633,7 +4632,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2242 + // line internal/php7/php7.y:2239 { yyVAL.node = nil @@ -4641,7 +4640,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2248 + // line internal/php7/php7.y:2245 { yyVAL.node = yyDollar[1].node @@ -4649,7 +4648,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2257 + // line internal/php7/php7.y:2254 { yyVAL.node = yyDollar[1].node @@ -4657,7 +4656,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2260 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4671,7 +4670,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2278 + // line internal/php7/php7.y:2275 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4685,7 +4684,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2287 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4699,7 +4698,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2302 + // line internal/php7/php7.y:2299 { yyVAL.node = yyDollar[1].node @@ -4707,7 +4706,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2311 + // line internal/php7/php7.y:2308 { yyVAL.node = nil @@ -4715,7 +4714,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2317 + // line internal/php7/php7.y:2314 { yyVAL.node = yyDollar[2].node @@ -4726,7 +4725,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2329 + // line internal/php7/php7.y:2326 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4741,7 +4740,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2342 + // line internal/php7/php7.y:2339 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4760,7 +4759,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2362 + // line internal/php7/php7.y:2359 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4768,7 +4767,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2368 + // line internal/php7/php7.y:2365 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4779,7 +4778,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2380 + // line internal/php7/php7.y:2377 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4793,7 +4792,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2392 + // line internal/php7/php7.y:2389 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4807,7 +4806,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2407 + // line internal/php7/php7.y:2404 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4818,7 +4817,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2413 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4826,7 +4825,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2422 { yyVAL.node = yyDollar[1].node @@ -4834,7 +4833,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2434 + // line internal/php7/php7.y:2431 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4845,7 +4844,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2443 + // line internal/php7/php7.y:2440 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4853,7 +4852,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2452 + // line internal/php7/php7.y:2449 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4872,7 +4871,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2469 + // line internal/php7/php7.y:2466 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4892,7 +4891,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2490 + // line internal/php7/php7.y:2487 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4900,7 +4899,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2496 + // line internal/php7/php7.y:2493 { yyVAL.list = []ast.Vertex{} @@ -4908,7 +4907,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2505 + // line internal/php7/php7.y:2502 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4924,7 +4923,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2516 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4945,7 +4944,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2538 + // line internal/php7/php7.y:2535 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4959,7 +4958,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2550 + // line internal/php7/php7.y:2547 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4996,7 +4995,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2587 + // line internal/php7/php7.y:2584 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5004,7 +5003,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2593 + // line internal/php7/php7.y:2590 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5015,7 +5014,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2605 + // line internal/php7/php7.y:2602 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5029,7 +5028,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2618 + // line internal/php7/php7.y:2615 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5043,7 +5042,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2630 + // line internal/php7/php7.y:2627 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5057,7 +5056,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2645 + // line internal/php7/php7.y:2642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5065,7 +5064,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2651 + // line internal/php7/php7.y:2648 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5073,7 +5072,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2660 + // line internal/php7/php7.y:2657 { yyVAL.node = yyDollar[1].node @@ -5085,7 +5084,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2670 + // line internal/php7/php7.y:2667 { yyVAL.node = yyDollar[1].node @@ -5097,7 +5096,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2683 + // line internal/php7/php7.y:2680 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5112,7 +5111,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2699 + // line internal/php7/php7.y:2696 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5130,7 +5129,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2715 + // line internal/php7/php7.y:2712 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5148,7 +5147,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2728 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5166,7 +5165,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2747 + // line internal/php7/php7.y:2744 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5181,7 +5180,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2763 + // line internal/php7/php7.y:2760 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5197,7 +5196,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2777 + // line internal/php7/php7.y:2774 { yyVAL.node = yyDollar[1].node @@ -5205,7 +5204,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2786 + // line internal/php7/php7.y:2783 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5223,7 +5222,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2805 + // line internal/php7/php7.y:2802 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5238,7 +5237,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2818 + // line internal/php7/php7.y:2815 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5253,7 +5252,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2834 + // line internal/php7/php7.y:2831 { yyVAL.list = yyDollar[1].list @@ -5261,7 +5260,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2840 + // line internal/php7/php7.y:2837 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5276,7 +5275,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2853 { yyVAL.list = nil @@ -5284,7 +5283,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2862 + // line internal/php7/php7.y:2859 { yyVAL.list = yyDollar[1].list @@ -5292,7 +5291,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2871 + // line internal/php7/php7.y:2868 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5300,7 +5299,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2877 + // line internal/php7/php7.y:2874 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5308,7 +5307,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2886 + // line internal/php7/php7.y:2883 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5322,7 +5321,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2898 + // line internal/php7/php7.y:2895 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5336,7 +5335,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2910 + // line internal/php7/php7.y:2907 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5350,7 +5349,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5364,7 +5363,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2934 + // line internal/php7/php7.y:2931 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5378,7 +5377,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2946 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5392,7 +5391,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2961 + // line internal/php7/php7.y:2958 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5403,7 +5402,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2970 + // line internal/php7/php7.y:2967 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5411,7 +5410,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2979 + // line internal/php7/php7.y:2976 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5430,7 +5429,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2996 + // line internal/php7/php7.y:2993 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5450,7 +5449,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3014 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5461,7 +5460,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3023 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5469,7 +5468,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3032 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5486,7 +5485,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3053 + // line internal/php7/php7.y:3050 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5503,7 +5502,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3068 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5514,7 +5513,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3077 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5522,7 +5521,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3086 { yyVAL.node = yyDollar[1].node @@ -5530,7 +5529,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3098 + // line internal/php7/php7.y:3095 { yyVAL.list = nil @@ -5538,7 +5537,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3101 { yyVAL.list = yyDollar[1].list @@ -5546,7 +5545,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3110 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5557,7 +5556,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3119 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5565,7 +5564,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3131 + // line internal/php7/php7.y:3128 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5585,7 +5584,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3152 + // line internal/php7/php7.y:3149 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5602,7 +5601,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3167 + // line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5616,7 +5615,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3182 + // line internal/php7/php7.y:3179 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5635,7 +5634,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3199 + // line internal/php7/php7.y:3196 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5653,7 +5652,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3212 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5668,7 +5667,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3228 + // line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5684,7 +5683,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3242 + // line internal/php7/php7.y:3239 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5698,7 +5697,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3254 + // line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,7 +5712,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3267 + // line internal/php7/php7.y:3264 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5727,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3280 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,7 +5742,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3293 + // line internal/php7/php7.y:3290 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5757,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3306 + // line internal/php7/php7.y:3303 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5772,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3319 + // line internal/php7/php7.y:3316 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5788,7 +5787,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3332 + // line internal/php7/php7.y:3329 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5802,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3345 + // line internal/php7/php7.y:3342 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5817,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3358 + // line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5832,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3371 + // line internal/php7/php7.y:3368 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5847,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3384 + // line internal/php7/php7.y:3381 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5863,7 +5862,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3397 + // line internal/php7/php7.y:3394 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5877,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3410 + // line internal/php7/php7.y:3407 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5893,7 +5892,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3423 + // line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5908,7 +5907,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3436 + // line internal/php7/php7.y:3433 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5922,7 +5921,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3448 + // line internal/php7/php7.y:3445 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5937,7 +5936,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3461 + // line internal/php7/php7.y:3458 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5951,7 +5950,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3473 + // line internal/php7/php7.y:3470 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5966,7 +5965,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3486 + // line internal/php7/php7.y:3483 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5981,7 +5980,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3499 + // line internal/php7/php7.y:3496 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5996,7 +5995,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3512 + // line internal/php7/php7.y:3509 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6011,7 +6010,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6026,7 +6025,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3538 + // line internal/php7/php7.y:3535 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6041,7 +6040,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3551 + // line internal/php7/php7.y:3548 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6056,7 +6055,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3564 + // line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6071,7 +6070,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3577 + // line internal/php7/php7.y:3574 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6086,7 +6085,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3590 + // line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6101,7 +6100,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3603 + // line internal/php7/php7.y:3600 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6116,7 +6115,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3616 + // line internal/php7/php7.y:3613 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6131,7 +6130,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3629 + // line internal/php7/php7.y:3626 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6146,7 +6145,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3642 + // line internal/php7/php7.y:3639 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6161,7 +6160,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3655 + // line internal/php7/php7.y:3652 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6176,7 +6175,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3668 + // line internal/php7/php7.y:3665 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6191,7 +6190,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3681 + // line internal/php7/php7.y:3678 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6206,7 +6205,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3691 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6220,7 +6219,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3706 + // line internal/php7/php7.y:3703 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6234,7 +6233,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3718 + // line internal/php7/php7.y:3715 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6248,7 +6247,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3730 + // line internal/php7/php7.y:3727 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6262,7 +6261,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3742 + // line internal/php7/php7.y:3739 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6277,7 +6276,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3755 + // line internal/php7/php7.y:3752 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6292,7 +6291,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3768 + // line internal/php7/php7.y:3765 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6307,7 +6306,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3778 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6323,7 +6322,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3795 + // line internal/php7/php7.y:3792 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6338,7 +6337,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3808 + // line internal/php7/php7.y:3805 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6353,7 +6352,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3821 + // line internal/php7/php7.y:3818 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6368,7 +6367,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3834 + // line internal/php7/php7.y:3831 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6383,7 +6382,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3844 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6398,7 +6397,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3860 + // line internal/php7/php7.y:3857 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6413,7 +6412,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3873 + // line internal/php7/php7.y:3870 { yyVAL.node = yyDollar[2].node @@ -6425,7 +6424,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3883 + // line internal/php7/php7.y:3880 { yyVAL.node = yyDollar[1].node @@ -6433,7 +6432,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3889 + // line internal/php7/php7.y:3886 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6449,7 +6448,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3903 + // line internal/php7/php7.y:3900 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6465,7 +6464,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3917 + // line internal/php7/php7.y:3914 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6480,7 +6479,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3930 + // line internal/php7/php7.y:3927 { yyVAL.node = yyDollar[1].node @@ -6488,7 +6487,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3936 + // line internal/php7/php7.y:3933 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6503,7 +6502,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3949 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6518,7 +6517,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3962 + // line internal/php7/php7.y:3959 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6533,7 +6532,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3975 + // line internal/php7/php7.y:3972 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6548,7 +6547,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3988 + // line internal/php7/php7.y:3985 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6563,7 +6562,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4001 + // line internal/php7/php7.y:3998 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6578,7 +6577,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4014 + // line internal/php7/php7.y:4011 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6593,7 +6592,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4027 + // line internal/php7/php7.y:4024 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6622,7 +6621,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4051 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6636,7 +6635,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4063 { yyVAL.node = yyDollar[1].node @@ -6644,7 +6643,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4069 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6658,7 +6657,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4081 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6672,7 +6671,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4096 + // line internal/php7/php7.y:4093 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6686,7 +6685,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4105 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6700,7 +6699,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4120 + // line internal/php7/php7.y:4117 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6715,7 +6714,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4133 + // line internal/php7/php7.y:4130 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6729,7 +6728,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4145 + // line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[1].node @@ -6737,7 +6736,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4151 + // line internal/php7/php7.y:4148 { yyVAL.node = yyDollar[2].node @@ -6760,7 +6759,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4174 + // line internal/php7/php7.y:4171 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6797,7 +6796,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4206 + // line internal/php7/php7.y:4203 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6825,32 +6824,23 @@ yydefault: delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 375: - yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4237 - { - yyVAL.str = yylex.(*Parser).Lexer.GetPhpDocComment() - yylex.(*Parser).Lexer.SetPhpDocComment("") - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4238 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4242 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4258 + // line internal/php7/php7.y:4249 { yyVAL.ClosureUse = nil @@ -6858,7 +6848,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4264 + // line internal/php7/php7.y:4255 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6874,7 +6864,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4272 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6885,7 +6875,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4290 + // line internal/php7/php7.y:4281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6893,7 +6883,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4299 + // line internal/php7/php7.y:4290 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6910,7 +6900,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4305 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6930,7 +6920,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4335 + // line internal/php7/php7.y:4326 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6944,7 +6934,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4347 + // line internal/php7/php7.y:4338 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6959,7 +6949,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4360 + // line internal/php7/php7.y:4351 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6974,7 +6964,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4373 + // line internal/php7/php7.y:4364 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6988,7 +6978,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4379 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7002,7 +6992,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4400 + // line internal/php7/php7.y:4391 { yyVAL.node = yyDollar[1].node @@ -7010,7 +7000,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4409 + // line internal/php7/php7.y:4400 { yyVAL.node = yyDollar[1].node @@ -7018,7 +7008,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4415 + // line internal/php7/php7.y:4406 { yyVAL.node = yyDollar[1].node @@ -7026,7 +7016,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4424 + // line internal/php7/php7.y:4415 { yyVAL.node = nil @@ -7034,7 +7024,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4430 + // line internal/php7/php7.y:4421 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7049,7 +7039,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4446 + // line internal/php7/php7.y:4437 { yyVAL.list = []ast.Vertex{} @@ -7057,7 +7047,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4452 + // line internal/php7/php7.y:4443 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7069,7 +7059,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4453 { yyVAL.list = yyDollar[1].list @@ -7077,7 +7067,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4471 + // line internal/php7/php7.y:4462 { yyVAL.node = nil @@ -7085,7 +7075,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4468 { yyVAL.node = yyDollar[1].node @@ -7093,7 +7083,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4486 + // line internal/php7/php7.y:4477 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7109,7 +7099,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4500 + // line internal/php7/php7.y:4491 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7124,7 +7114,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4513 + // line internal/php7/php7.y:4504 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7138,7 +7128,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4528 + // line internal/php7/php7.y:4519 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7152,7 +7142,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4540 + // line internal/php7/php7.y:4531 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7166,7 +7156,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4552 + // line internal/php7/php7.y:4543 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7180,7 +7170,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4564 + // line internal/php7/php7.y:4555 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7194,7 +7184,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4576 + // line internal/php7/php7.y:4567 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7208,7 +7198,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4588 + // line internal/php7/php7.y:4579 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7222,7 +7212,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4591 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7236,7 +7226,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4612 + // line internal/php7/php7.y:4603 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7250,7 +7240,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4624 + // line internal/php7/php7.y:4615 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7264,7 +7254,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4636 + // line internal/php7/php7.y:4627 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7278,7 +7268,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4648 + // line internal/php7/php7.y:4639 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7294,7 +7284,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4653 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7308,7 +7298,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4674 + // line internal/php7/php7.y:4665 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7322,7 +7312,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4686 + // line internal/php7/php7.y:4677 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7336,7 +7326,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4698 + // line internal/php7/php7.y:4689 { yyVAL.node = yyDollar[1].node @@ -7344,7 +7334,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4704 + // line internal/php7/php7.y:4695 { yyVAL.node = yyDollar[1].node @@ -7352,7 +7342,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4713 + // line internal/php7/php7.y:4704 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7366,7 +7356,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4725 + // line internal/php7/php7.y:4716 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7384,7 +7374,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4741 + // line internal/php7/php7.y:4732 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7402,7 +7392,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4760 + // line internal/php7/php7.y:4751 { yyVAL.node = yyDollar[1].node @@ -7410,7 +7400,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4766 + // line internal/php7/php7.y:4757 { yyVAL.node = yyDollar[1].node @@ -7418,7 +7408,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4775 + // line internal/php7/php7.y:4766 { yyVAL.node = nil @@ -7426,7 +7416,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4781 + // line internal/php7/php7.y:4772 { yyVAL.node = yyDollar[1].node @@ -7434,7 +7424,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4790 + // line internal/php7/php7.y:4781 { yyVAL.node = yyDollar[1].node @@ -7442,7 +7432,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4799 + // line internal/php7/php7.y:4790 { yyVAL.node = yyDollar[1].node @@ -7450,7 +7440,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4805 + // line internal/php7/php7.y:4796 { yyVAL.node = yyDollar[2].node @@ -7462,7 +7452,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4815 + // line internal/php7/php7.y:4806 { yyVAL.node = yyDollar[1].node @@ -7470,7 +7460,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4824 + // line internal/php7/php7.y:4815 { yyVAL.node = yyDollar[1].node @@ -7478,7 +7468,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4830 + // line internal/php7/php7.y:4821 { yyVAL.node = yyDollar[2].node @@ -7490,7 +7480,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4840 + // line internal/php7/php7.y:4831 { yyVAL.node = yyDollar[1].node @@ -7498,7 +7488,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4849 + // line internal/php7/php7.y:4840 { yyVAL.node = yyDollar[1].node @@ -7506,7 +7496,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4855 + // line internal/php7/php7.y:4846 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7522,7 +7512,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4869 + // line internal/php7/php7.y:4860 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7538,7 +7528,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4883 + // line internal/php7/php7.y:4874 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7554,7 +7544,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4897 + // line internal/php7/php7.y:4888 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7569,7 +7559,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4910 + // line internal/php7/php7.y:4901 { yyVAL.node = yyDollar[1].node @@ -7577,7 +7567,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4919 + // line internal/php7/php7.y:4910 { yyVAL.node = yyDollar[1].node @@ -7585,7 +7575,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4925 + // line internal/php7/php7.y:4916 { yyVAL.node = yyDollar[1].node @@ -7593,7 +7583,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4931 + // line internal/php7/php7.y:4922 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7608,7 +7598,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4947 + // line internal/php7/php7.y:4938 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7625,7 +7615,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4962 + // line internal/php7/php7.y:4953 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7642,7 +7632,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4977 + // line internal/php7/php7.y:4968 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7657,7 +7647,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4993 + // line internal/php7/php7.y:4984 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7672,7 +7662,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5006 + // line internal/php7/php7.y:4997 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7687,7 +7677,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5022 + // line internal/php7/php7.y:5013 { yyVAL.node = yyDollar[1].node @@ -7695,7 +7685,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5028 + // line internal/php7/php7.y:5019 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7711,7 +7701,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5042 + // line internal/php7/php7.y:5033 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7727,7 +7717,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5056 + // line internal/php7/php7.y:5047 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7742,7 +7732,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5069 + // line internal/php7/php7.y:5060 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7757,7 +7747,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5082 + // line internal/php7/php7.y:5073 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7772,7 +7762,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5098 + // line internal/php7/php7.y:5089 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7786,7 +7776,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5110 + // line internal/php7/php7.y:5101 { yyVAL.node = yyDollar[2].node @@ -7798,7 +7788,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5120 + // line internal/php7/php7.y:5111 { yyVAL.node = yyDollar[1].node @@ -7806,7 +7796,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5129 + // line internal/php7/php7.y:5120 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7820,7 +7810,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5141 + // line internal/php7/php7.y:5132 { yyVAL.node = yyDollar[2].node @@ -7832,7 +7822,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5151 + // line internal/php7/php7.y:5142 { yyVAL.node = yyDollar[1].node @@ -7840,7 +7830,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5160 + // line internal/php7/php7.y:5151 { yyVAL.list = yyDollar[1].list @@ -7848,7 +7838,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5169 + // line internal/php7/php7.y:5160 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7856,7 +7846,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5175 + // line internal/php7/php7.y:5166 { yyVAL.node = yyDollar[1].node @@ -7864,7 +7854,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5184 + // line internal/php7/php7.y:5175 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7879,7 +7869,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5197 + // line internal/php7/php7.y:5188 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7891,7 +7881,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5210 + // line internal/php7/php7.y:5201 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7906,7 +7896,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5223 + // line internal/php7/php7.y:5214 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7920,7 +7910,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5235 + // line internal/php7/php7.y:5226 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7938,7 +7928,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5251 + // line internal/php7/php7.y:5242 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7954,7 +7944,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5265 + // line internal/php7/php7.y:5256 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7968,7 +7958,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5277 + // line internal/php7/php7.y:5268 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7989,7 +7979,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5296 + // line internal/php7/php7.y:5287 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -8008,7 +7998,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5316 + // line internal/php7/php7.y:5307 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8016,7 +8006,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5322 + // line internal/php7/php7.y:5313 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8031,7 +8021,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5335 + // line internal/php7/php7.y:5326 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8039,7 +8029,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5341 + // line internal/php7/php7.y:5332 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8054,7 +8044,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5357 + // line internal/php7/php7.y:5348 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8071,7 +8061,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5372 + // line internal/php7/php7.y:5363 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8091,7 +8081,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5390 + // line internal/php7/php7.y:5381 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8113,7 +8103,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5410 + // line internal/php7/php7.y:5401 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8130,7 +8120,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5425 + // line internal/php7/php7.y:5416 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8149,7 +8139,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5442 + // line internal/php7/php7.y:5433 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8170,7 +8160,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5461 + // line internal/php7/php7.y:5452 { yyVAL.node = yyDollar[2].node @@ -8182,7 +8172,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5474 + // line internal/php7/php7.y:5465 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8196,7 +8186,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5486 + // line internal/php7/php7.y:5477 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8215,7 +8205,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5503 + // line internal/php7/php7.y:5494 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8243,7 +8233,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5529 + // line internal/php7/php7.y:5520 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8260,7 +8250,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5547 + // line internal/php7/php7.y:5538 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8280,7 +8270,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5565 + // line internal/php7/php7.y:5556 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8296,7 +8286,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5579 + // line internal/php7/php7.y:5570 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8310,7 +8300,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5591 + // line internal/php7/php7.y:5582 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8324,7 +8314,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5603 + // line internal/php7/php7.y:5594 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8340,7 +8330,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5617 + // line internal/php7/php7.y:5608 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8354,7 +8344,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5629 + // line internal/php7/php7.y:5620 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8368,7 +8358,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5644 + // line internal/php7/php7.y:5635 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8376,7 +8366,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5650 + // line internal/php7/php7.y:5641 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8387,7 +8377,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5662 + // line internal/php7/php7.y:5653 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 7515ba9..a929753 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -16,7 +16,6 @@ import ( node ast.Vertex token *scanner.Token list []ast.Vertex - str string ClassExtends *ast.StmtClassExtends ClassImplements *ast.StmtClassImplements @@ -285,8 +284,6 @@ import ( %type method_modifiers variable_modifiers %type non_empty_member_modifiers name_list class_modifiers -%type backup_doc_comment - %% ///////////////////////////////////////////////////////////////////////// @@ -4234,12 +4231,6 @@ inline_function: backup_doc_comment: /* empty */ - { - $$ = yylex.(*Parser).Lexer.GetPhpDocComment() - yylex.(*Parser).Lexer.SetPhpDocComment("") - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } ; returns_ref: diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 2a24948..8a68d86 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -13,8 +13,6 @@ import ( type Scanner interface { Lex(lval Lval) int ReturnTokenToPool(t *Token) - GetPhpDocComment() string - SetPhpDocComment(string) GetErrors() []*errors.Error GetWithHiddenTokens() bool SetWithHiddenTokens(bool) @@ -38,7 +36,6 @@ type Lexer struct { TokenPool *TokenPool HiddenTokens []token.Token WithHiddenTokens bool - PhpDocComment string lastToken *Token Errors []*errors.Error NewLines NewLines @@ -49,14 +46,6 @@ func (l *Lexer) ReturnTokenToPool(t *Token) { l.TokenPool.Put(t) } -func (l *Lexer) GetPhpDocComment() string { - return l.PhpDocComment -} - -func (l *Lexer) SetPhpDocComment(s string) { - l.PhpDocComment = s -} - func (l *Lexer) GetErrors() []*errors.Error { return l.Errors } diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index b1cf6d3..185e7a9 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -3357,7 +3357,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr14: - // line internal/scanner/scanner.rl:361 + // line internal/scanner/scanner.rl:360 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3370,7 +3370,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr18: - // line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:383 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] @@ -3378,7 +3378,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr22: - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:345 (lex.p) = (lex.te) - 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3519,7 +3519,6 @@ func (lex *Lexer) Lex(lval Lval) int { } if isDocComment { - lex.PhpDocComment = string(lex.data[lex.ts:lex.te]) lex.addToken(T_DOC_COMMENT, lex.ts, lex.te) } else { lex.addToken(T_COMMENT, lex.ts, lex.te) @@ -3586,7 +3585,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr127: - // line internal/scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:356 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3625,7 +3624,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr180: - // line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:383 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3633,7 +3632,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr191: - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:345 lex.te = (lex.p) + 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3662,7 +3661,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr228: lex.cs = 121 - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:380 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3675,7 +3674,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr229: - // line internal/scanner/scanner.rl:354 + // line internal/scanner/scanner.rl:353 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3685,13 +3684,12 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr231: - // line internal/scanner/scanner.rl:355 + // line internal/scanner/scanner.rl:354 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) tok = TokenID(int('}')) lex.ret(1) - lex.PhpDocComment = "" goto _out } goto st121 @@ -3714,7 +3712,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr238: - // line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:383 lex.te = (lex.p) (lex.p)-- { @@ -3723,7 +3721,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr239: - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:345 lex.te = (lex.p) (lex.p)-- { @@ -3767,7 +3765,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr243: lex.cs = 121 - // line internal/scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { @@ -3801,7 +3799,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr250: - // line internal/scanner/scanner.rl:356 + // line internal/scanner/scanner.rl:355 lex.te = (lex.p) (lex.p)-- { @@ -3947,7 +3945,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st121 tr262: lex.cs = 121 - // line internal/scanner/scanner.rl:359 + // line internal/scanner/scanner.rl:358 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4174,7 +4172,7 @@ func (lex *Lexer) Lex(lval Lval) int { lex.cs = 121 // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:367 + // line internal/scanner/scanner.rl:366 lex.te = (lex.p) (lex.p)-- { @@ -4362,7 +4360,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st121 tr303: - // line internal/scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:356 lex.te = (lex.p) (lex.p)-- { @@ -4523,7 +4521,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:3387 + // line internal/scanner/scanner.go:3386 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4716,7 +4714,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof122 } st_case_122: - // line internal/scanner/scanner.go:3580 + // line internal/scanner/scanner.go:3579 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4746,7 +4744,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof123 } st_case_123: - // line internal/scanner/scanner.go:3610 + // line internal/scanner/scanner.go:3609 switch lex.data[(lex.p)] { case 10: goto tr236 @@ -4768,7 +4766,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof6 } st_case_6: - // line internal/scanner/scanner.go:3632 + // line internal/scanner/scanner.go:3631 if lex.data[(lex.p)] == 10 { goto tr10 } @@ -4804,7 +4802,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:381 lex.act = 140 goto st127 st127: @@ -4812,7 +4810,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof127 } st_case_127: - // line internal/scanner/scanner.go:3676 + // line internal/scanner/scanner.go:3675 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4845,7 +4843,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof7 } st_case_7: - // line internal/scanner/scanner.go:3709 + // line internal/scanner/scanner.go:3708 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4930,7 +4928,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof128 } st_case_128: - // line internal/scanner/scanner.go:3794 + // line internal/scanner/scanner.go:3793 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -4985,7 +4983,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof129 } st_case_129: - // line internal/scanner/scanner.go:3849 + // line internal/scanner/scanner.go:3848 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5109,7 +5107,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof134 } st_case_134: - // line internal/scanner/scanner.go:3973 + // line internal/scanner/scanner.go:3972 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5138,7 +5136,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:4002 + // line internal/scanner/scanner.go:4001 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5172,7 +5170,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof135 } st_case_135: - // line internal/scanner/scanner.go:4036 + // line internal/scanner/scanner.go:4035 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6020,7 +6018,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof140 } st_case_140: - // line internal/scanner/scanner.go:4884 + // line internal/scanner/scanner.go:4883 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6052,7 +6050,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof141 } st_case_141: - // line internal/scanner/scanner.go:4916 + // line internal/scanner/scanner.go:4915 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6101,7 +6099,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:4965 + // line internal/scanner/scanner.go:4964 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6128,7 +6126,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:4992 + // line internal/scanner/scanner.go:4991 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6147,7 +6145,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5011 + // line internal/scanner/scanner.go:5010 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6164,7 +6162,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5028 + // line internal/scanner/scanner.go:5027 switch lex.data[(lex.p)] { case 10: goto tr93 @@ -6181,7 +6179,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5045 + // line internal/scanner/scanner.go:5044 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6203,7 +6201,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5067 + // line internal/scanner/scanner.go:5066 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6234,7 +6232,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5098 + // line internal/scanner/scanner.go:5097 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6257,7 +6255,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5121 + // line internal/scanner/scanner.go:5120 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6302,7 +6300,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5166 + // line internal/scanner/scanner.go:5165 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6340,7 +6338,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5204 + // line internal/scanner/scanner.go:5203 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6376,7 +6374,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5240 + // line internal/scanner/scanner.go:5239 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6400,7 +6398,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5264 + // line internal/scanner/scanner.go:5263 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6424,7 +6422,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5288 + // line internal/scanner/scanner.go:5287 switch lex.data[(lex.p)] { case 10: goto tr105 @@ -6448,7 +6446,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5312 + // line internal/scanner/scanner.go:5311 if lex.data[(lex.p)] == 10 { goto st78 } @@ -6462,7 +6460,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5326 + // line internal/scanner/scanner.go:5325 if lex.data[(lex.p)] == 62 { goto tr108 } @@ -6477,7 +6475,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof151 } st_case_151: - // line internal/scanner/scanner.go:5341 + // line internal/scanner/scanner.go:5340 switch lex.data[(lex.p)] { case 10: goto st152 @@ -6526,7 +6524,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5390 + // line internal/scanner/scanner.go:5389 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6594,7 +6592,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5458 + // line internal/scanner/scanner.go:5457 switch lex.data[(lex.p)] { case 34: goto tr116 @@ -6628,7 +6626,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5492 + // line internal/scanner/scanner.go:5491 switch lex.data[(lex.p)] { case 10: goto st155 @@ -6645,7 +6643,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof155 } st_case_155: - // line internal/scanner/scanner.go:5509 + // line internal/scanner/scanner.go:5508 goto tr285 tr123: // line internal/scanner/scanner.rl:46 @@ -6656,7 +6654,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5520 + // line internal/scanner/scanner.go:5519 if lex.data[(lex.p)] == 10 { goto st155 } @@ -6691,7 +6689,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5555 + // line internal/scanner/scanner.go:5554 switch lex.data[(lex.p)] { case 39: goto tr116 @@ -6725,7 +6723,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5589 + // line internal/scanner/scanner.go:5588 switch lex.data[(lex.p)] { case 10: goto tr122 @@ -6825,7 +6823,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof162 } st_case_162: - // line internal/scanner/scanner.go:5689 + // line internal/scanner/scanner.go:5688 switch lex.data[(lex.p)] { case 10: goto st163 @@ -6904,7 +6902,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:356 lex.act = 135 goto st166 tr307: @@ -7395,7 +7393,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof166 } st_case_166: - // line internal/scanner/scanner.go:6259 + // line internal/scanner/scanner.go:6258 if lex.data[(lex.p)] == 96 { goto tr11 } @@ -7731,7 +7729,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:356 lex.act = 135 goto st177 st177: @@ -7739,7 +7737,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof177 } st_case_177: - // line internal/scanner/scanner.go:6603 + // line internal/scanner/scanner.go:6602 switch lex.data[(lex.p)] { case 34: goto st7 @@ -14733,7 +14731,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof397 } st_case_397: - // line internal/scanner/scanner.go:13597 + // line internal/scanner/scanner.go:13596 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14784,7 +14782,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:13648 + // line internal/scanner/scanner.go:13647 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14810,7 +14808,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:13674 + // line internal/scanner/scanner.go:13673 switch lex.data[(lex.p)] { case 10: goto tr135 @@ -14836,7 +14834,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:13700 + // line internal/scanner/scanner.go:13699 if lex.data[(lex.p)] == 10 { goto st94 } @@ -14850,7 +14848,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:13714 + // line internal/scanner/scanner.go:13713 switch lex.data[(lex.p)] { case 82: goto st97 @@ -16954,14 +16952,14 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr239 tr141: - // line internal/scanner/scanner.rl:391 + // line internal/scanner/scanner.rl:390 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr663: - // line internal/scanner/scanner.rl:394 + // line internal/scanner/scanner.rl:393 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -16971,7 +16969,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st468 tr668: - // line internal/scanner/scanner.rl:391 + // line internal/scanner/scanner.rl:390 lex.te = (lex.p) (lex.p)-- { @@ -16981,7 +16979,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr670: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:391 + // line internal/scanner/scanner.rl:390 lex.te = (lex.p) (lex.p)-- { @@ -16989,7 +16987,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st468 tr674: - // line internal/scanner/scanner.rl:394 + // line internal/scanner/scanner.rl:393 lex.te = (lex.p) (lex.p)-- { @@ -17000,7 +16998,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st468 tr675: - // line internal/scanner/scanner.rl:392 + // line internal/scanner/scanner.rl:391 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17014,7 +17012,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st468 tr676: lex.cs = 468 - // line internal/scanner/scanner.rl:393 + // line internal/scanner/scanner.rl:392 lex.te = (lex.p) (lex.p)-- { @@ -17038,7 +17036,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:15870 + // line internal/scanner/scanner.go:15869 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17091,7 +17089,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof469 } st_case_469: - // line internal/scanner/scanner.go:15923 + // line internal/scanner/scanner.go:15922 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17121,7 +17119,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof470 } st_case_470: - // line internal/scanner/scanner.go:15953 + // line internal/scanner/scanner.go:15952 switch lex.data[(lex.p)] { case 10: goto tr672 @@ -17143,7 +17141,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:15975 + // line internal/scanner/scanner.go:15974 if lex.data[(lex.p)] == 10 { goto tr142 } @@ -17221,7 +17219,7 @@ func (lex *Lexer) Lex(lval Lval) int { lex.cs = 474 // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) (lex.p)-- { @@ -17248,7 +17246,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16069 + // line internal/scanner/scanner.go:16068 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17302,7 +17300,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:397 lex.act = 146 goto st475 tr681: @@ -17311,7 +17309,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:397 lex.act = 146 goto st475 st475: @@ -17319,7 +17317,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof475 } st_case_475: - // line internal/scanner/scanner.go:16140 + // line internal/scanner/scanner.go:16139 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17374,7 +17372,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof476 } st_case_476: - // line internal/scanner/scanner.go:16195 + // line internal/scanner/scanner.go:16194 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17421,7 +17419,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr680 tr143: - // line internal/scanner/scanner.rl:407 + // line internal/scanner/scanner.rl:406 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17432,7 +17430,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st477 tr689: - // line internal/scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:408 lex.te = (lex.p) (lex.p)-- { @@ -17448,7 +17446,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st477 tr690: - // line internal/scanner/scanner.rl:408 + // line internal/scanner/scanner.rl:407 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17500,7 +17498,7 @@ func (lex *Lexer) Lex(lval Lval) int { lex.cs = 477 // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:409 lex.te = (lex.p) (lex.p)-- { @@ -17518,7 +17516,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr696: lex.cs = 477 - // line internal/scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:409 lex.te = (lex.p) (lex.p)-- { @@ -17545,7 +17543,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16324 + // line internal/scanner/scanner.go:16323 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17622,7 +17620,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:409 lex.act = 150 goto st479 tr693: @@ -17631,21 +17629,21 @@ func (lex *Lexer) Lex(lval Lval) int { // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:409 lex.act = 150 goto st479 tr695: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:408 + // line internal/scanner/scanner.rl:407 lex.act = 148 goto st479 tr697: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:407 + // line internal/scanner/scanner.rl:406 lex.act = 147 goto st479 st479: @@ -17653,7 +17651,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof479 } st_case_479: - // line internal/scanner/scanner.go:16432 + // line internal/scanner/scanner.go:16431 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17708,7 +17706,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof480 } st_case_480: - // line internal/scanner/scanner.go:16487 + // line internal/scanner/scanner.go:16486 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17865,7 +17863,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr696 tr145: - // line internal/scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:421 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17877,7 +17875,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st483 tr699: lex.cs = 483 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17890,7 +17888,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr706: - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:423 lex.te = (lex.p) (lex.p)-- { @@ -17906,7 +17904,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st483 tr707: - // line internal/scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:422 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17964,7 +17962,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr709: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- { @@ -17978,7 +17976,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st483 tr713: - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- { @@ -18002,7 +18000,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16721 + // line internal/scanner/scanner.go:16720 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18083,14 +18081,14 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:425 lex.act = 155 goto st485 tr704: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:424 lex.act = 154 goto st485 tr710: @@ -18099,21 +18097,21 @@ func (lex *Lexer) Lex(lval Lval) int { // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:425 lex.act = 155 goto st485 tr712: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:422 lex.act = 152 goto st485 tr714: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:421 lex.act = 151 goto st485 st485: @@ -18121,7 +18119,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof485 } st_case_485: - // line internal/scanner/scanner.go:16840 + // line internal/scanner/scanner.go:16839 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18176,7 +18174,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof486 } st_case_486: - // line internal/scanner/scanner.go:16895 + // line internal/scanner/scanner.go:16894 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18333,7 +18331,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr713 tr146: - // line internal/scanner/scanner.rl:434 + // line internal/scanner/scanner.rl:433 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18345,7 +18343,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st489 tr715: lex.cs = 489 - // line internal/scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:436 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18358,7 +18356,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr723: - // line internal/scanner/scanner.rl:436 + // line internal/scanner/scanner.rl:435 lex.te = (lex.p) (lex.p)-- { @@ -18374,7 +18372,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st489 tr724: - // line internal/scanner/scanner.rl:435 + // line internal/scanner/scanner.rl:434 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18432,7 +18430,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr726: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:437 lex.te = (lex.p) (lex.p)-- { @@ -18446,7 +18444,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st489 tr730: - // line internal/scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:437 lex.te = (lex.p) (lex.p)-- { @@ -18470,7 +18468,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17129 + // line internal/scanner/scanner.go:17128 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18551,14 +18549,14 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:437 lex.act = 160 goto st491 tr720: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:436 lex.act = 159 goto st491 tr727: @@ -18567,21 +18565,21 @@ func (lex *Lexer) Lex(lval Lval) int { // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:438 + // line internal/scanner/scanner.rl:437 lex.act = 160 goto st491 tr729: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:435 + // line internal/scanner/scanner.rl:434 lex.act = 157 goto st491 tr731: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:434 + // line internal/scanner/scanner.rl:433 lex.act = 156 goto st491 st491: @@ -18589,7 +18587,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof491 } st_case_491: - // line internal/scanner/scanner.go:17248 + // line internal/scanner/scanner.go:17247 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18644,7 +18642,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof492 } st_case_492: - // line internal/scanner/scanner.go:17303 + // line internal/scanner/scanner.go:17302 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18802,7 +18800,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto tr730 tr733: lex.cs = 495 - // line internal/scanner/scanner.rl:446 + // line internal/scanner/scanner.rl:445 lex.te = (lex.p) (lex.p)-- { @@ -18826,7 +18824,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17482 + // line internal/scanner/scanner.go:17481 if lex.data[(lex.p)] == 96 { goto st0 } @@ -18870,7 +18868,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st496 tr147: - // line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:464 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -18882,7 +18880,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr148: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18896,7 +18894,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr734: - // line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18908,7 +18906,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr738: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18918,7 +18916,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr739: - // line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) (lex.p)-- { @@ -18931,7 +18929,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr741: - // line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -18945,7 +18943,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st497 tr743: - // line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { @@ -18969,7 +18967,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17574 + // line internal/scanner/scanner.go:17573 switch lex.data[(lex.p)] { case 36: goto st498 @@ -19050,7 +19048,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof500 } st_case_500: - // line internal/scanner/scanner.go:17655 + // line internal/scanner/scanner.go:17654 if lex.data[(lex.p)] == 62 { goto st103 } @@ -19103,7 +19101,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st501 tr149: - // line internal/scanner/scanner.rl:469 + // line internal/scanner/scanner.rl:468 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -19116,7 +19114,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr744: - // line internal/scanner/scanner.rl:475 + // line internal/scanner/scanner.rl:474 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -19124,7 +19122,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr745: - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:471 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19134,7 +19132,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr748: - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19147,7 +19145,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr752: - // line internal/scanner/scanner.rl:474 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19159,7 +19157,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr753: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:471 lex.te = (lex.p) (lex.p)-- { @@ -19170,7 +19168,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr754: - // line internal/scanner/scanner.rl:475 + // line internal/scanner/scanner.rl:474 lex.te = (lex.p) (lex.p)-- { @@ -19179,7 +19177,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr755: - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) (lex.p)-- { @@ -19193,7 +19191,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr757: - // line internal/scanner/scanner.rl:470 + // line internal/scanner/scanner.rl:469 lex.te = (lex.p) (lex.p)-- { @@ -19207,7 +19205,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr758: - // line internal/scanner/scanner.rl:469 + // line internal/scanner/scanner.rl:468 lex.te = (lex.p) (lex.p)-- { @@ -19221,7 +19219,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st502 tr762: - // line internal/scanner/scanner.rl:471 + // line internal/scanner/scanner.rl:470 lex.te = (lex.p) (lex.p)-- { @@ -19245,7 +19243,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17787 + // line internal/scanner/scanner.go:17786 switch lex.data[(lex.p)] { case 10: goto st503 @@ -19382,7 +19380,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof507 } st_case_507: - // line internal/scanner/scanner.go:17924 + // line internal/scanner/scanner.go:17923 switch lex.data[(lex.p)] { case 95: goto st104 @@ -19405,7 +19403,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:17947 + // line internal/scanner/scanner.go:17946 if lex.data[(lex.p)] == 95 { goto st104 } @@ -19441,7 +19439,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof509 } st_case_509: - // line internal/scanner/scanner.go:17983 + // line internal/scanner/scanner.go:17982 if lex.data[(lex.p)] == 95 { goto st105 } @@ -19477,7 +19475,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof510 } st_case_510: - // line internal/scanner/scanner.go:18019 + // line internal/scanner/scanner.go:18018 if lex.data[(lex.p)] == 95 { goto st106 } @@ -19522,7 +19520,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st511 tr153: lex.cs = 512 - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:482 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -19531,7 +19529,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr155: lex.cs = 512 - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:481 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19546,7 +19544,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr763: lex.cs = 512 - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19555,7 +19553,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr765: lex.cs = 512 - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) (lex.p)-- { @@ -19574,7 +19572,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18098 + // line internal/scanner/scanner.go:18097 if lex.data[(lex.p)] == 96 { goto tr763 } @@ -19601,7 +19599,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof513 } st_case_513: - // line internal/scanner/scanner.go:18125 + // line internal/scanner/scanner.go:18124 switch lex.data[(lex.p)] { case 91: goto tr155 @@ -19660,7 +19658,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto st107 tr156: - // line internal/scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:486 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) @@ -19668,7 +19666,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st514 tr766: lex.cs = 514 - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19677,7 +19675,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr769: lex.cs = 514 - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:487 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19690,7 +19688,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr770: - // line internal/scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:486 lex.te = (lex.p) (lex.p)-- { @@ -19700,7 +19698,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr772: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:486 lex.te = (lex.p) (lex.p)-- { @@ -19709,7 +19707,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st514 tr776: lex.cs = 514 - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) (lex.p)-- { @@ -19728,7 +19726,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18232 + // line internal/scanner/scanner.go:18231 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19760,7 +19758,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof515 } st_case_515: - // line internal/scanner/scanner.go:18264 + // line internal/scanner/scanner.go:18263 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19790,7 +19788,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof516 } st_case_516: - // line internal/scanner/scanner.go:18294 + // line internal/scanner/scanner.go:18293 switch lex.data[(lex.p)] { case 10: goto tr774 @@ -19812,7 +19810,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof108 } st_case_108: - // line internal/scanner/scanner.go:18316 + // line internal/scanner/scanner.go:18315 if lex.data[(lex.p)] == 10 { goto tr157 } @@ -19827,7 +19825,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr776 tr158: - // line internal/scanner/scanner.rl:493 + // line internal/scanner/scanner.rl:492 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) @@ -19835,7 +19833,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st518 tr777: lex.cs = 518 - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:494 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19844,7 +19842,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr780: lex.cs = 518 - // line internal/scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:493 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19857,7 +19855,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr781: - // line internal/scanner/scanner.rl:493 + // line internal/scanner/scanner.rl:492 lex.te = (lex.p) (lex.p)-- { @@ -19867,7 +19865,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr783: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:493 + // line internal/scanner/scanner.rl:492 lex.te = (lex.p) (lex.p)-- { @@ -19876,7 +19874,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st518 tr787: lex.cs = 518 - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:494 lex.te = (lex.p) (lex.p)-- { @@ -19895,7 +19893,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18379 + // line internal/scanner/scanner.go:18378 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19927,7 +19925,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof519 } st_case_519: - // line internal/scanner/scanner.go:18411 + // line internal/scanner/scanner.go:18410 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19957,7 +19955,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof520 } st_case_520: - // line internal/scanner/scanner.go:18441 + // line internal/scanner/scanner.go:18440 switch lex.data[(lex.p)] { case 10: goto tr785 @@ -19979,7 +19977,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof109 } st_case_109: - // line internal/scanner/scanner.go:18463 + // line internal/scanner/scanner.go:18462 if lex.data[(lex.p)] == 10 { goto tr159 } @@ -19994,7 +19992,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto tr787 tr160: - // line internal/scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:498 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) @@ -20002,7 +20000,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st522 tr788: lex.cs = 522 - // line internal/scanner/scanner.rl:501 + // line internal/scanner/scanner.rl:500 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20011,7 +20009,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _again tr791: lex.cs = 522 - // line internal/scanner/scanner.rl:500 + // line internal/scanner/scanner.rl:499 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -20024,7 +20022,7 @@ func (lex *Lexer) Lex(lval Lval) int { } goto _again tr792: - // line internal/scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:498 lex.te = (lex.p) (lex.p)-- { @@ -20034,7 +20032,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr794: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:498 lex.te = (lex.p) (lex.p)-- { @@ -20043,7 +20041,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto st522 tr798: lex.cs = 522 - // line internal/scanner/scanner.rl:501 + // line internal/scanner/scanner.rl:500 lex.te = (lex.p) (lex.p)-- { @@ -20062,7 +20060,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18526 + // line internal/scanner/scanner.go:18525 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20094,7 +20092,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof523 } st_case_523: - // line internal/scanner/scanner.go:18558 + // line internal/scanner/scanner.go:18557 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20124,7 +20122,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof524 } st_case_524: - // line internal/scanner/scanner.go:18588 + // line internal/scanner/scanner.go:18587 switch lex.data[(lex.p)] { case 10: goto tr796 @@ -20146,7 +20144,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:18610 + // line internal/scanner/scanner.go:18609 if lex.data[(lex.p)] == 10 { goto tr161 } @@ -20180,7 +20178,7 @@ func (lex *Lexer) Lex(lval Lval) int { tr802: // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:505 + // line internal/scanner/scanner.rl:504 lex.te = (lex.p) (lex.p)-- { @@ -20201,7 +20199,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18657 + // line internal/scanner/scanner.go:18656 if lex.data[(lex.p)] == 10 { goto st528 } @@ -20210,7 +20208,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:505 + // line internal/scanner/scanner.rl:504 lex.act = 186 goto st527 tr803: @@ -20219,7 +20217,7 @@ func (lex *Lexer) Lex(lval Lval) int { // line internal/scanner/scanner.rl:64 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:505 + // line internal/scanner/scanner.rl:504 lex.act = 186 goto st527 st527: @@ -20227,7 +20225,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof527 } st_case_527: - // line internal/scanner/scanner.go:18683 + // line internal/scanner/scanner.go:18682 if lex.data[(lex.p)] == 10 { goto st528 } @@ -20241,7 +20239,7 @@ func (lex *Lexer) Lex(lval Lval) int { goto _test_eof528 } st_case_528: - // line internal/scanner/scanner.go:18697 + // line internal/scanner/scanner.go:18696 if lex.data[(lex.p)] == 10 { goto tr804 } @@ -22863,7 +22861,7 @@ func (lex *Lexer) Lex(lval Lval) int { } } - // line internal/scanner/scanner.rl:509 + // line internal/scanner/scanner.rl:508 token.Hidden = lex.HiddenTokens token.Value = lex.data[lex.ts:lex.te] diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index 3379bef..d8efac1 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -336,7 +336,6 @@ func (lex *Lexer) Lex(lval Lval) int { } if isDocComment { - lex.PhpDocComment = string(lex.data[lex.ts:lex.te]) lex.addToken(T_DOC_COMMENT, lex.ts, lex.te) } else { lex.addToken(T_COMMENT, lex.ts, lex.te) @@ -352,7 +351,7 @@ func (lex *Lexer) Lex(lval Lval) int { }; "{" => { 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;}; + "}" => { lex.setTokenPosition(token); tok = TokenID(int('}')); lex.ret(1); goto _out;}; "$" varname => { lex.setTokenPosition(token); tok = T_VARIABLE; fbreak; }; varname => { lex.setTokenPosition(token); tok = T_STRING; fbreak; }; From 3bee91c972c8088131afe25dcc58bb8d492a0a15 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 18 May 2020 01:01:35 +0300 Subject: [PATCH 014/140] [refactoring] remove scanner.Lval interface --- internal/php5/parser.go | 11 +- internal/php7/parser.go | 9 +- internal/scanner/lexer.go | 7 +- internal/scanner/scanner.go | 6 +- internal/scanner/scanner.rl | 6 +- internal/scanner/scanner_test.go | 265 +++++++++++++------------------ 6 files changed, 131 insertions(+), 173 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 8ceb195..fe68521 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -36,11 +36,14 @@ func NewParser(src []byte, v string) *Parser { } } -// Lex proxy to lexer Lex +// Lex proxy to scanner Lex func (l *Parser) Lex(lval *yySymType) int { - t := l.Lexer.Lex(lval) - l.currentToken = lval.token - return t + t := l.Lexer.Lex() + + l.currentToken = t + lval.token = t + + return int(t.ID) } func (l *Parser) Error(msg string) { diff --git a/internal/php7/parser.go b/internal/php7/parser.go index b2f106b..b2a0cf6 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -36,9 +36,12 @@ func NewParser(src []byte, v string) *Parser { } func (l *Parser) Lex(lval *yySymType) int { - t := l.Lexer.Lex(lval) - l.currentToken = lval.token - return t + t := l.Lexer.Lex() + + l.currentToken = t + lval.token = t + + return int(t.ID) } func (l *Parser) Error(msg string) { diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 8a68d86..d367291 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -11,7 +11,7 @@ import ( ) type Scanner interface { - Lex(lval Lval) int + Lex() *Token ReturnTokenToPool(t *Token) GetErrors() []*errors.Error GetWithHiddenTokens() bool @@ -20,11 +20,6 @@ type Scanner interface { SetErrors(e []*errors.Error) } -// Lval parsers yySymType must implement this interface -type Lval interface { - Token(tkn *Token) -} - type Lexer struct { data []byte p, pe, cs int diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 185e7a9..95db2b2 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -54,7 +54,7 @@ func NewLexer(data []byte) *Lexer { return lex } -func (lex *Lexer) Lex(lval Lval) int { +func (lex *Lexer) Lex() *Token { lex.HiddenTokens = nil eof := lex.pe var tok TokenID @@ -22867,7 +22867,5 @@ func (lex *Lexer) Lex(lval Lval) int { token.Value = lex.data[lex.ts:lex.te] token.ID = tok - lval.Token(token) - - return int(tok) + return token } diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index d8efac1..abd03b4 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -27,7 +27,7 @@ func NewLexer(data []byte) *Lexer { return lex } -func (lex *Lexer) Lex(lval Lval) int { +func (lex *Lexer) Lex() *Token { lex.HiddenTokens = nil eof := lex.pe var tok TokenID @@ -511,7 +511,5 @@ func (lex *Lexer) Lex(lval Lval) int { token.Value = lex.data[lex.ts:lex.te] token.ID = tok - lval.Token(token) - - return int(tok); + return token } \ No newline at end of file diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index fecea9d..ec61cbc 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -7,14 +7,6 @@ import ( "gotest.tools/assert" ) -type lval struct { - Tkn *Token -} - -func (lv *lval) Token(t *Token) { - lv.Tkn = t -} - func TestTokens(t *testing.T) { src := `inline html - @@ -361,16 +353,15 @@ func TestTokens(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -390,13 +381,12 @@ func TestShebang(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} - token := lexer.Lex(lv) - assert.Equal(t, token, int(T_DNUMBER)) + tkn := lexer.Lex() + assert.Equal(t, tkn.ID, T_DNUMBER) - for _, tt := range lv.Tkn.Hidden { + for _, tt := range tkn.Hidden { actual = append(actual, string(tt.Value)) } @@ -411,14 +401,13 @@ func TestShebangHtml(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - token := lexer.Lex(lv) - assert.Equal(t, token, int(T_INLINE_HTML)) - assert.Equal(t, string(lv.Tkn.Hidden[0].Value), "#!/usr/bin/env php\n") + tkn := lexer.Lex() + assert.Equal(t, tkn.ID, T_INLINE_HTML) + assert.Equal(t, string(tkn.Hidden[0].Value), "#!/usr/bin/env php\n") - token = lexer.Lex(lv) - assert.Equal(t, token, int(T_DNUMBER)) + tkn = lexer.Lex() + assert.Equal(t, tkn.ID, T_DNUMBER) } func TestNumberTokens(t *testing.T) { @@ -462,16 +451,15 @@ func TestNumberTokens(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -520,16 +508,15 @@ func TestConstantStrings(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -567,16 +554,15 @@ func TestSingleQuoteStringTokens(t *testing.T) { } lexer := NewLexer([]byte(src)) - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -656,16 +642,15 @@ func TestTeplateStringTokens(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -742,16 +727,15 @@ func TestBackquoteStringTokens(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -837,16 +821,15 @@ CAT; lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -911,16 +894,15 @@ CAT lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -951,16 +933,15 @@ CAT; lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -983,16 +964,15 @@ func TestHereDocTokens73(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -1015,16 +995,15 @@ CAT;` lexer := NewLexer([]byte(src)) lexer.PHPVersion = "7.2" lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -1048,16 +1027,15 @@ func TestInlineHtmlNopTokens(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} actual := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actual = append(actual, TokenID(token).String()) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -1083,18 +1061,17 @@ func TestStringTokensAfterVariable(t *testing.T) { } lexer := NewLexer([]byte(src)) - lv := &lval{} actual := []string{} actualTokens := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actualTokens = append(actualTokens, string(lv.Tkn.Value)) - actual = append(actual, TokenID(token).String()) + actualTokens = append(actualTokens, string(tkn.Value)) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -1117,18 +1094,17 @@ func TestSlashAfterVariable(t *testing.T) { } lexer := NewLexer([]byte(src)) - lv := &lval{} actual := []string{} actualTokens := []string{} for { - token := lexer.Lex(lv) - if token == 0 { + tkn := lexer.Lex() + if tkn.ID == 0 { break } - actualTokens = append(actualTokens, string(lv.Tkn.Value)) - actual = append(actual, TokenID(token).String()) + actualTokens = append(actualTokens, string(tkn.Value)) + actual = append(actual, tkn.ID.String()) } assert.DeepEqual(t, expected, actual) @@ -1156,9 +1132,8 @@ func TestCommentEnd(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + lexer.Lex() actual := lexer.HiddenTokens @@ -1186,11 +1161,10 @@ func TestCommentNewLine(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + tkn := lexer.Lex() - actual := lv.Tkn.Hidden + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1216,11 +1190,10 @@ func TestCommentNewLine1(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + tkn := lexer.Lex() - actual := lv.Tkn.Hidden + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1246,11 +1219,10 @@ func TestCommentNewLine2(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + tkn := lexer.Lex() - actual := lv.Tkn.Hidden + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1277,11 +1249,10 @@ func TestCommentWithPhpEndTag(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + tkn := lexer.Lex() - actual := lv.Tkn.Hidden + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1308,11 +1279,10 @@ func TestInlineComment(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + tkn := lexer.Lex() - actual := lv.Tkn.Hidden + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1339,9 +1309,8 @@ func TestInlineComment2(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + lexer.Lex() actual := lexer.HiddenTokens @@ -1374,9 +1343,8 @@ func TestEmptyInlineComment(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + lexer.Lex() actual := lexer.HiddenTokens @@ -1405,11 +1373,10 @@ func TestEmptyInlineComment2(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} - lexer.Lex(lv) + tkn := lexer.Lex() - actual := lv.Tkn.Hidden + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1420,7 +1387,6 @@ func TestMethodCallTokens(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} expected := []token.Token{ { @@ -1432,8 +1398,8 @@ func TestMethodCallTokens(t *testing.T) { Value: []byte("\n\t"), }, } - lexer.Lex(lv) - actual := lv.Tkn.Hidden + tkn := lexer.Lex() + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1442,8 +1408,8 @@ func TestMethodCallTokens(t *testing.T) { Value: []byte(" "), }, } - lexer.Lex(lv) - actual = lv.Tkn.Hidden + tkn = lexer.Lex() + actual = tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1452,8 +1418,8 @@ func TestMethodCallTokens(t *testing.T) { Value: []byte(" "), }, } - lexer.Lex(lv) - actual = lv.Tkn.Hidden + tkn = lexer.Lex() + actual = tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1462,8 +1428,8 @@ func TestMethodCallTokens(t *testing.T) { Value: []byte(" "), }, } - lexer.Lex(lv) - actual = lv.Tkn.Hidden + tkn = lexer.Lex() + actual = tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1472,8 +1438,8 @@ func TestMethodCallTokens(t *testing.T) { Value: []byte(" "), }, } - lexer.Lex(lv) - actual = lv.Tkn.Hidden + tkn = lexer.Lex() + actual = tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1482,8 +1448,8 @@ func TestMethodCallTokens(t *testing.T) { Value: []byte(" "), }, } - lexer.Lex(lv) - actual = lv.Tkn.Hidden + tkn = lexer.Lex() + actual = tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1492,8 +1458,8 @@ func TestMethodCallTokens(t *testing.T) { Value: []byte(" "), }, } - lexer.Lex(lv) - actual = lv.Tkn.Hidden + tkn = lexer.Lex() + actual = tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1503,7 +1469,6 @@ func TestYieldFromTokens(t *testing.T) { lexer := NewLexer([]byte(src)) lexer.WithHiddenTokens = true - lv := &lval{} expected := []token.Token{ { @@ -1515,8 +1480,8 @@ func TestYieldFromTokens(t *testing.T) { Value: []byte("\n\t"), }, } - lexer.Lex(lv) - actual := lv.Tkn.Hidden + tkn := lexer.Lex() + actual := tkn.Hidden assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1525,8 +1490,8 @@ func TestYieldFromTokens(t *testing.T) { Value: []byte(" "), }, } - lexer.Lex(lv) - actual = lv.Tkn.Hidden + tkn = lexer.Lex() + actual = tkn.Hidden assert.DeepEqual(t, expected, actual) } @@ -1534,51 +1499,48 @@ func TestVarNameByteChars(t *testing.T) { src := " Date: Mon, 18 May 2020 01:03:20 +0300 Subject: [PATCH 015/140] [refactoring] remove unused scanner.Lexer.lastToken field --- internal/scanner/lexer.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index d367291..5c8dfad 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -31,7 +31,6 @@ type Lexer struct { TokenPool *TokenPool HiddenTokens []token.Token WithHiddenTokens bool - lastToken *Token Errors []*errors.Error NewLines NewLines PHPVersion string From 291dc7e884a152956e8ae2f72a6ded50a8a74f07 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 18 May 2020 20:07:17 +0300 Subject: [PATCH 016/140] [refactoring] move errors from scanner to parser --- internal/php5/parser.go | 30 +- internal/php7/parser.go | 30 +- internal/scanner/lexer.go | 45 +- internal/scanner/scanner.go | 865 +++++++++++++++---------------- internal/scanner/scanner.rl | 15 +- internal/scanner/scanner_test.go | 75 +-- 6 files changed, 533 insertions(+), 527 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index fe68521..1315a54 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -21,19 +21,21 @@ type Parser struct { currentToken *scanner.Token positionBuilder *positionbuilder.PositionBuilder rootNode ast.Vertex + errors []*errors.Error } // NewParser creates and returns new Parser func NewParser(src []byte, v string) *Parser { - lexer := scanner.NewLexer(src) + parser := &Parser{} + + lexer := scanner.NewLexer(src, func(e *errors.Error) { + parser.errors = append(parser.errors, e) + }) lexer.PHPVersion = v - return &Parser{ - lexer, - nil, - nil, - nil, - } + parser.Lexer = lexer + + return parser } // Lex proxy to scanner Lex @@ -49,7 +51,12 @@ func (l *Parser) Lex(lval *yySymType) int { func (l *Parser) Error(msg string) { var pos = l.currentToken.Position - l.Lexer.AddError(errors.NewError(msg, &pos)) + l.errors = append(l.errors, errors.NewError(msg, &pos)) +} + +// GetErrors returns errors list +func (l *Parser) GetErrors() []*errors.Error { + return l.errors } func (l *Parser) WithTokens() { @@ -59,7 +66,7 @@ func (l *Parser) WithTokens() { // Parse the php7 Parser entrypoint func (l *Parser) Parse() int { // init - l.Lexer.SetErrors(nil) + l.errors = nil l.rootNode = nil l.positionBuilder = &positionbuilder.PositionBuilder{} @@ -73,11 +80,6 @@ func (l *Parser) GetRootNode() ast.Vertex { return l.rootNode } -// GetErrors returns errors list -func (l *Parser) GetErrors() []*errors.Error { - return l.Lexer.GetErrors() -} - // helpers func lastNode(nn []ast.Vertex) ast.Vertex { diff --git a/internal/php7/parser.go b/internal/php7/parser.go index b2a0cf6..72dab68 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -20,19 +20,21 @@ type Parser struct { currentToken *scanner.Token positionBuilder *positionbuilder.PositionBuilder rootNode ast.Vertex + errors []*errors.Error } // NewParser creates and returns new Parser func NewParser(src []byte, v string) *Parser { - lexer := scanner.NewLexer(src) + parser := &Parser{} + + lexer := scanner.NewLexer(src, func(e *errors.Error) { + parser.errors = append(parser.errors, e) + }) lexer.PHPVersion = v - return &Parser{ - lexer, - nil, - nil, - nil, - } + parser.Lexer = lexer + + return parser } func (l *Parser) Lex(lval *yySymType) int { @@ -47,7 +49,12 @@ func (l *Parser) Lex(lval *yySymType) int { func (l *Parser) Error(msg string) { var pos = l.currentToken.Position - l.Lexer.AddError(errors.NewError(msg, &pos)) + l.errors = append(l.errors, errors.NewError(msg, &pos)) +} + +// GetErrors returns errors list +func (l *Parser) GetErrors() []*errors.Error { + return l.errors } func (l *Parser) WithTokens() { @@ -57,7 +64,7 @@ func (l *Parser) WithTokens() { // Parse the php7 Parser entrypoint func (l *Parser) Parse() int { // init - l.Lexer.SetErrors(nil) + l.errors = nil l.rootNode = nil l.positionBuilder = &positionbuilder.PositionBuilder{} @@ -71,11 +78,6 @@ func (l *Parser) GetRootNode() ast.Vertex { return l.rootNode } -// GetErrors returns errors list -func (l *Parser) GetErrors() []*errors.Error { - return l.Lexer.GetErrors() -} - // helpers func lastNode(nn []ast.Vertex) ast.Vertex { diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 5c8dfad..60aaec9 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -13,15 +13,14 @@ import ( type Scanner interface { Lex() *Token ReturnTokenToPool(t *Token) - GetErrors() []*errors.Error GetWithHiddenTokens() bool SetWithHiddenTokens(bool) - AddError(e *errors.Error) - SetErrors(e []*errors.Error) } type Lexer struct { - data []byte + data []byte + errHandlerFunc func(*errors.Error) + p, pe, cs int ts, te, act int stack []int @@ -31,17 +30,29 @@ type Lexer struct { TokenPool *TokenPool HiddenTokens []token.Token WithHiddenTokens bool - Errors []*errors.Error NewLines NewLines PHPVersion string } -func (l *Lexer) ReturnTokenToPool(t *Token) { - l.TokenPool.Put(t) +func NewLexer(data []byte, errHandlerFunc func(*errors.Error)) *Lexer { + lex := &Lexer{ + data: data, + errHandlerFunc: errHandlerFunc, + + pe: len(data), + stack: make([]int, 0), + + TokenPool: &TokenPool{}, + NewLines: NewLines{make([]int, 0, 128)}, + } + + initLexer(lex) + + return lex } -func (l *Lexer) GetErrors() []*errors.Error { - return l.Errors +func (l *Lexer) ReturnTokenToPool(t *Token) { + l.TokenPool.Put(t) } func (l *Lexer) GetWithHiddenTokens() bool { @@ -52,14 +63,6 @@ func (l *Lexer) SetWithHiddenTokens(b bool) { l.WithHiddenTokens = b } -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.Position.StartLine = lex.NewLines.GetLine(lex.ts) token.Position.EndLine = lex.NewLines.GetLine(lex.te - 1) @@ -230,7 +233,11 @@ func (lex *Lexer) ungetCnt(n int) { lex.te = lex.te - n } -func (lex *Lexer) Error(msg string) { +func (lex *Lexer) error(msg string) { + if lex.errHandlerFunc == nil { + return + } + pos := position.NewPosition( lex.NewLines.GetLine(lex.ts), lex.NewLines.GetLine(lex.te-1), @@ -238,7 +245,7 @@ func (lex *Lexer) Error(msg string) { lex.te, ) - lex.Errors = append(lex.Errors, errors.NewError(msg, pos)) + lex.errHandlerFunc(errors.NewError(msg, pos)) } func isValidVarNameStart(r byte) bool { diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 95db2b2..576f19a 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -31,17 +31,9 @@ const lexer_en_halt_compiller_end int = 526 // line internal/scanner/scanner.rl:15 -func NewLexer(data []byte) *Lexer { - lex := &Lexer{ - data: data, - pe: len(data), - stack: make([]int, 0), +func initLexer(lex *Lexer) { - TokenPool: &TokenPool{}, - NewLines: NewLines{make([]int, 0, 128)}, - } - - // line internal/scanner/scanner.go:49 + // line internal/scanner/scanner.go:41 { lex.cs = lexer_start lex.top = 0 @@ -50,8 +42,7 @@ func NewLexer(data []byte) *Lexer { lex.act = 0 } - // line internal/scanner/scanner.rl:27 - return lex + // line internal/scanner/scanner.rl:19 } func (lex *Lexer) Lex() *Token { @@ -68,7 +59,7 @@ func (lex *Lexer) Lex() *Token { _, _ = lblStart, lblEnd - // line internal/scanner/scanner.go:77 + // line internal/scanner/scanner.go:68 { var _widec int16 if (lex.p) == (lex.pe) { @@ -2205,7 +2196,7 @@ func (lex *Lexer) Lex() *Token { goto st_out tr0: lex.cs = 111 - // line internal/scanner/scanner.rl:139 + // line internal/scanner/scanner.rl:130 (lex.p) = (lex.te) - 1 { lex.cs = 114 @@ -2214,7 +2205,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr162: lex.cs = 111 - // line internal/scanner/scanner.rl:139 + // line internal/scanner/scanner.rl:130 lex.te = (lex.p) + 1 { lex.cs = 114 @@ -2223,7 +2214,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr164: lex.cs = 111 - // line internal/scanner/scanner.rl:139 + // line internal/scanner/scanner.rl:130 lex.te = (lex.p) (lex.p)-- { @@ -2232,9 +2223,9 @@ func (lex *Lexer) Lex() *Token { } goto _again tr165: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:136 + // line internal/scanner/scanner.rl:127 lex.te = (lex.p) (lex.p)-- { @@ -2252,7 +2243,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2261 + // line internal/scanner/scanner.go:2252 if lex.data[(lex.p)] == 35 { goto tr163 } @@ -2267,7 +2258,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof112 } st_case_112: - // line internal/scanner/scanner.go:2276 + // line internal/scanner/scanner.go:2267 if lex.data[(lex.p)] == 33 { goto st1 } @@ -2289,7 +2280,7 @@ func (lex *Lexer) Lex() *Token { goto tr165 tr3: lex.cs = 114 - // line internal/scanner/scanner.rl:152 + // line internal/scanner/scanner.rl:143 (lex.p) = (lex.te) - 1 { lex.addToken(T_OPEN_TAG, lex.ts, lex.te) @@ -2298,7 +2289,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr6: lex.cs = 114 - // line internal/scanner/scanner.rl:156 + // line internal/scanner/scanner.rl:147 lex.te = (lex.p) + 1 { lex.ungetCnt(lex.te - lex.ts - 5) @@ -2307,7 +2298,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr169: - // line internal/scanner/scanner.rl:146 + // line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2322,9 +2313,9 @@ func (lex *Lexer) Lex() *Token { } goto st114 tr171: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:146 + // line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2340,7 +2331,7 @@ func (lex *Lexer) Lex() *Token { goto st114 tr176: lex.cs = 114 - // line internal/scanner/scanner.rl:152 + // line internal/scanner/scanner.rl:143 lex.te = (lex.p) (lex.p)-- { @@ -2350,7 +2341,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr177: lex.cs = 114 - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:152 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -2364,9 +2355,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr179: lex.cs = 114 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:156 + // line internal/scanner/scanner.rl:147 lex.te = (lex.p) (lex.p)-- { @@ -2386,7 +2377,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2384 + // line internal/scanner/scanner.go:2375 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2395,7 +2386,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr172: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st115 st115: @@ -2403,7 +2394,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof115 } st_case_115: - // line internal/scanner/scanner.go:2401 + // line internal/scanner/scanner.go:2392 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2412,7 +2403,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr173: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st116 st116: @@ -2420,7 +2411,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof116 } st_case_116: - // line internal/scanner/scanner.go:2418 + // line internal/scanner/scanner.go:2409 switch lex.data[(lex.p)] { case 10: goto tr173 @@ -2429,7 +2420,7 @@ func (lex *Lexer) Lex() *Token { } goto tr172 tr174: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st117 st117: @@ -2437,7 +2428,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof117 } st_case_117: - // line internal/scanner/scanner.go:2435 + // line internal/scanner/scanner.go:2426 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2471,7 +2462,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof119 } st_case_119: - // line internal/scanner/scanner.go:2469 + // line internal/scanner/scanner.go:2460 switch lex.data[(lex.p)] { case 61: goto tr177 @@ -2537,7 +2528,7 @@ func (lex *Lexer) Lex() *Token { } goto tr3 tr9: - // line internal/scanner/scanner.rl:170 + // line internal/scanner/scanner.rl:161 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) @@ -3357,7 +3348,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr14: - // line internal/scanner/scanner.rl:360 + // line internal/scanner/scanner.rl:351 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3370,15 +3361,15 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr18: - // line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:374 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] - lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) + lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } goto st121 tr22: - // line internal/scanner/scanner.rl:345 + // line internal/scanner/scanner.rl:336 (lex.p) = (lex.te) - 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3393,7 +3384,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr37: - // line internal/scanner/scanner.rl:320 + // line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3406,7 +3397,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr44: - // line internal/scanner/scanner.rl:325 + // line internal/scanner/scanner.rl:316 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3419,7 +3410,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr48: - // line internal/scanner/scanner.rl:321 + // line internal/scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3432,7 +3423,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr56: - // line internal/scanner/scanner.rl:322 + // line internal/scanner/scanner.rl:313 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3445,7 +3436,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr63: - // line internal/scanner/scanner.rl:323 + // line internal/scanner/scanner.rl:314 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3458,7 +3449,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr72: - // line internal/scanner/scanner.rl:324 + // line internal/scanner/scanner.rl:315 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3471,7 +3462,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr83: - // line internal/scanner/scanner.rl:326 + // line internal/scanner/scanner.rl:317 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3484,7 +3475,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr84: - // line internal/scanner/scanner.rl:288 + // line internal/scanner/scanner.rl:279 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3497,7 +3488,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr87: - // line internal/scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:165 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3510,7 +3501,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr95: - // line internal/scanner/scanner.rl:332 + // line internal/scanner/scanner.rl:323 lex.te = (lex.p) + 1 { isDocComment := false @@ -3526,7 +3517,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr96: - // line internal/scanner/scanner.rl:185 + // line internal/scanner/scanner.rl:176 (lex.p) = (lex.te) - 1 { base := 10 @@ -3558,7 +3549,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr109: lex.cs = 121 - // line internal/scanner/scanner.rl:172 + // line internal/scanner/scanner.rl:163 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3572,7 +3563,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr125: lex.cs = 121 - // line internal/scanner/scanner.rl:171 + // line internal/scanner/scanner.rl:162 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3585,7 +3576,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr127: - // line internal/scanner/scanner.rl:356 + // line internal/scanner/scanner.rl:347 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3598,7 +3589,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr129: - // line internal/scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:260 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3611,7 +3602,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr140: - // line internal/scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:259 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3624,15 +3615,15 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr180: - // line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:374 lex.te = (lex.p) + 1 { c := lex.data[lex.p] - lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) + lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } goto st121 tr191: - // line internal/scanner/scanner.rl:345 + // line internal/scanner/scanner.rl:336 lex.te = (lex.p) + 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3647,7 +3638,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr225: - // line internal/scanner/scanner.rl:287 + // line internal/scanner/scanner.rl:278 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3661,7 +3652,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr228: lex.cs = 121 - // line internal/scanner/scanner.rl:380 + // line internal/scanner/scanner.rl:371 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3674,7 +3665,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr229: - // line internal/scanner/scanner.rl:353 + // line internal/scanner/scanner.rl:344 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3684,7 +3675,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr231: - // line internal/scanner/scanner.rl:354 + // line internal/scanner/scanner.rl:345 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3694,7 +3685,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr232: - // line internal/scanner/scanner.rl:170 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -3702,9 +3693,9 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr234: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:170 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -3712,16 +3703,16 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr238: - // line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:374 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)) + lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } goto st121 tr239: - // line internal/scanner/scanner.rl:345 + // line internal/scanner/scanner.rl:336 lex.te = (lex.p) (lex.p)-- { @@ -3737,7 +3728,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr241: - // line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) (lex.p)-- { @@ -3751,7 +3742,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr242: - // line internal/scanner/scanner.rl:307 + // line internal/scanner/scanner.rl:298 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3765,7 +3756,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr243: lex.cs = 121 - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:372 lex.te = (lex.p) (lex.p)-- { @@ -3779,7 +3770,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr244: - // line internal/scanner/scanner.rl:328 + // line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { @@ -3788,9 +3779,9 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr246: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:328 + // line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { @@ -3799,7 +3790,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr250: - // line internal/scanner/scanner.rl:355 + // line internal/scanner/scanner.rl:346 lex.te = (lex.p) (lex.p)-- { @@ -3813,7 +3804,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr251: - // line internal/scanner/scanner.rl:301 + // line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3826,7 +3817,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr252: - // line internal/scanner/scanner.rl:290 + // line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3839,7 +3830,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr253: - // line internal/scanner/scanner.rl:292 + // line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3852,7 +3843,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr255: - // line internal/scanner/scanner.rl:295 + // line internal/scanner/scanner.rl:286 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3865,7 +3856,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr256: - // line internal/scanner/scanner.rl:314 + // line internal/scanner/scanner.rl:305 lex.te = (lex.p) (lex.p)-- { @@ -3879,7 +3870,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr257: - // line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3892,7 +3883,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr258: - // line internal/scanner/scanner.rl:303 + // line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3905,7 +3896,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr259: - // line internal/scanner/scanner.rl:298 + // line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3918,7 +3909,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr260: - // line internal/scanner/scanner.rl:302 + // line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3931,7 +3922,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr261: - // line internal/scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3945,7 +3936,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr262: lex.cs = 121 - // line internal/scanner/scanner.rl:358 + // line internal/scanner/scanner.rl:349 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3958,7 +3949,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr264: - // line internal/scanner/scanner.rl:294 + // line internal/scanner/scanner.rl:285 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3971,7 +3962,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr265: - // line internal/scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { @@ -3985,7 +3976,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr268: - // line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:288 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3998,7 +3989,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr269: - // line internal/scanner/scanner.rl:185 + // line internal/scanner/scanner.rl:176 lex.te = (lex.p) (lex.p)-- { @@ -4030,7 +4021,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr274: - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:166 lex.te = (lex.p) (lex.p)-- { @@ -4057,7 +4048,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr275: - // line internal/scanner/scanner.rl:200 + // line internal/scanner/scanner.rl:191 lex.te = (lex.p) (lex.p)-- { @@ -4084,7 +4075,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr276: - // line internal/scanner/scanner.rl:289 + // line internal/scanner/scanner.rl:280 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4098,7 +4089,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr277: lex.cs = 121 - // line internal/scanner/scanner.rl:172 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4113,9 +4104,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr279: lex.cs = 121 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:172 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4129,7 +4120,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr282: - // line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4142,7 +4133,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr283: - // line internal/scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { @@ -4156,7 +4147,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr284: - // line internal/scanner/scanner.rl:310 + // line internal/scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4170,9 +4161,9 @@ func (lex *Lexer) Lex() *Token { goto st121 tr285: lex.cs = 121 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:366 + // line internal/scanner/scanner.rl:357 lex.te = (lex.p) (lex.p)-- { @@ -4194,7 +4185,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr286: - // line internal/scanner/scanner.rl:313 + // line internal/scanner/scanner.rl:304 lex.te = (lex.p) (lex.p)-- { @@ -4208,7 +4199,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr287: - // line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4221,7 +4212,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr289: - // line internal/scanner/scanner.rl:304 + // line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4234,7 +4225,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr290: - // line internal/scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) (lex.p)-- { @@ -4248,7 +4239,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr291: - // line internal/scanner/scanner.rl:309 + // line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4261,7 +4252,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr292: - // line internal/scanner/scanner.rl:312 + // line internal/scanner/scanner.rl:303 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4274,7 +4265,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr294: - // line internal/scanner/scanner.rl:316 + // line internal/scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { @@ -4288,7 +4279,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr295: - // line internal/scanner/scanner.rl:311 + // line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4302,7 +4293,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr298: lex.cs = 121 - // line internal/scanner/scanner.rl:171 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4317,9 +4308,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr300: lex.cs = 121 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:171 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4333,7 +4324,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr301: - // line internal/scanner/scanner.rl:317 + // line internal/scanner/scanner.rl:308 lex.te = (lex.p) (lex.p)-- { @@ -4347,7 +4338,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr302: - // line internal/scanner/scanner.rl:318 + // line internal/scanner/scanner.rl:309 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4360,7 +4351,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr303: - // line internal/scanner/scanner.rl:356 + // line internal/scanner/scanner.rl:347 lex.te = (lex.p) (lex.p)-- { @@ -4374,7 +4365,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr383: - // line internal/scanner/scanner.rl:226 + // line internal/scanner/scanner.rl:217 lex.te = (lex.p) (lex.p)-- { @@ -4388,7 +4379,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr403: - // line internal/scanner/scanner.rl:230 + // line internal/scanner/scanner.rl:221 lex.te = (lex.p) (lex.p)-- { @@ -4402,7 +4393,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr432: - // line internal/scanner/scanner.rl:238 + // line internal/scanner/scanner.rl:229 lex.te = (lex.p) (lex.p)-- { @@ -4416,7 +4407,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr436: - // line internal/scanner/scanner.rl:240 + // line internal/scanner/scanner.rl:231 lex.te = (lex.p) (lex.p)-- { @@ -4430,7 +4421,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr468: - // line internal/scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:261 lex.te = (lex.p) (lex.p)-- { @@ -4444,7 +4435,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr536: - // line internal/scanner/scanner.rl:272 + // line internal/scanner/scanner.rl:263 lex.te = (lex.p) (lex.p)-- { @@ -4458,7 +4449,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr582: - // line internal/scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:260 lex.te = (lex.p) (lex.p)-- { @@ -4472,7 +4463,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr587: - // line internal/scanner/scanner.rl:300 + // line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4485,7 +4476,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr661: - // line internal/scanner/scanner.rl:293 + // line internal/scanner/scanner.rl:284 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4498,7 +4489,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr662: - // line internal/scanner/scanner.rl:291 + // line internal/scanner/scanner.rl:282 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4521,7 +4512,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:3386 + // line internal/scanner/scanner.go:3377 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4706,7 +4697,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st122 st122: @@ -4714,7 +4705,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof122 } st_case_122: - // line internal/scanner/scanner.go:3579 + // line internal/scanner/scanner.go:3570 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4736,7 +4727,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st123 st123: @@ -4744,7 +4735,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof123 } st_case_123: - // line internal/scanner/scanner.go:3609 + // line internal/scanner/scanner.go:3600 switch lex.data[(lex.p)] { case 10: goto tr236 @@ -4758,7 +4749,7 @@ func (lex *Lexer) Lex() *Token { } goto tr234 tr237: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st6 st6: @@ -4766,7 +4757,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof6 } st_case_6: - // line internal/scanner/scanner.go:3631 + // line internal/scanner/scanner.go:3622 if lex.data[(lex.p)] == 10 { goto tr10 } @@ -4802,7 +4793,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:372 lex.act = 140 goto st127 st127: @@ -4810,7 +4801,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof127 } st_case_127: - // line internal/scanner/scanner.go:3675 + // line internal/scanner/scanner.go:3666 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4827,7 +4818,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr13: - // line internal/scanner/scanner.rl:48 + // line internal/scanner/scanner.rl:39 if lex.data[lex.p] == '\n' { lex.NewLines.Append(lex.p) @@ -4843,7 +4834,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof7 } st_case_7: - // line internal/scanner/scanner.go:3708 + // line internal/scanner/scanner.go:3699 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4920,7 +4911,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr247: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st128 st128: @@ -4928,7 +4919,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof128 } st_case_128: - // line internal/scanner/scanner.go:3793 + // line internal/scanner/scanner.go:3784 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -4975,7 +4966,7 @@ func (lex *Lexer) Lex() *Token { } goto tr244 tr248: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st129 st129: @@ -4983,7 +4974,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof129 } st_case_129: - // line internal/scanner/scanner.go:3848 + // line internal/scanner/scanner.go:3839 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5107,7 +5098,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof134 } st_case_134: - // line internal/scanner/scanner.go:3972 + // line internal/scanner/scanner.go:3963 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5120,7 +5111,7 @@ func (lex *Lexer) Lex() *Token { } goto st11 tr20: - // line internal/scanner/scanner.rl:48 + // line internal/scanner/scanner.rl:39 if lex.data[lex.p] == '\n' { lex.NewLines.Append(lex.p) @@ -5136,7 +5127,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:4001 + // line internal/scanner/scanner.go:3992 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5170,7 +5161,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof135 } st_case_135: - // line internal/scanner/scanner.go:4035 + // line internal/scanner/scanner.go:4026 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6018,7 +6009,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof140 } st_case_140: - // line internal/scanner/scanner.go:4883 + // line internal/scanner/scanner.go:4874 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6042,7 +6033,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st141 st141: @@ -6050,7 +6041,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof141 } st_case_141: - // line internal/scanner/scanner.go:4915 + // line internal/scanner/scanner.go:4906 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6091,7 +6082,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st142 st142: @@ -6099,7 +6090,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:4964 + // line internal/scanner/scanner.go:4955 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6126,7 +6117,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:4991 + // line internal/scanner/scanner.go:4982 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6137,7 +6128,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr92: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st71 st71: @@ -6145,7 +6136,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5010 + // line internal/scanner/scanner.go:5001 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6154,7 +6145,7 @@ func (lex *Lexer) Lex() *Token { } goto st71 tr93: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st72 st72: @@ -6162,7 +6153,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5027 + // line internal/scanner/scanner.go:5018 switch lex.data[(lex.p)] { case 10: goto tr93 @@ -6171,7 +6162,7 @@ func (lex *Lexer) Lex() *Token { } goto tr92 tr94: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st73 st73: @@ -6179,7 +6170,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5044 + // line internal/scanner/scanner.go:5035 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6193,7 +6184,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:185 + // line internal/scanner/scanner.rl:176 lex.act = 12 goto st144 st144: @@ -6201,7 +6192,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5066 + // line internal/scanner/scanner.go:5057 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6224,7 +6215,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:174 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st145 st145: @@ -6232,7 +6223,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5097 + // line internal/scanner/scanner.go:5088 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6247,7 +6238,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:185 + // line internal/scanner/scanner.rl:176 lex.act = 12 goto st146 st146: @@ -6255,7 +6246,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5120 + // line internal/scanner/scanner.go:5111 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6292,7 +6283,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:166 lex.act = 11 goto st147 st147: @@ -6300,7 +6291,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5165 + // line internal/scanner/scanner.go:5156 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6330,7 +6321,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:200 + // line internal/scanner/scanner.rl:191 lex.act = 13 goto st148 st148: @@ -6338,7 +6329,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5203 + // line internal/scanner/scanner.go:5194 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6374,7 +6365,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5239 + // line internal/scanner/scanner.go:5230 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6390,7 +6381,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr104: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st77 st77: @@ -6398,7 +6389,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5263 + // line internal/scanner/scanner.go:5254 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6414,7 +6405,7 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr105: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st78 st78: @@ -6422,7 +6413,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5287 + // line internal/scanner/scanner.go:5278 switch lex.data[(lex.p)] { case 10: goto tr105 @@ -6438,7 +6429,7 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr106: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st79 st79: @@ -6446,13 +6437,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5311 + // line internal/scanner/scanner.go:5302 if lex.data[(lex.p)] == 10 { goto st78 } goto tr22 tr107: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st80 st80: @@ -6460,7 +6451,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5325 + // line internal/scanner/scanner.go:5316 if lex.data[(lex.p)] == 62 { goto tr108 } @@ -6475,7 +6466,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof151 } st_case_151: - // line internal/scanner/scanner.go:5340 + // line internal/scanner/scanner.go:5331 switch lex.data[(lex.p)] { case 10: goto st152 @@ -6516,7 +6507,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:306 lex.act = 118 goto st154 st154: @@ -6524,7 +6515,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5389 + // line internal/scanner/scanner.go:5380 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6584,7 +6575,7 @@ func (lex *Lexer) Lex() *Token { } goto tr115 tr115: - // line internal/scanner/scanner.rl:45 + // line internal/scanner/scanner.rl:36 lblStart = lex.p goto st84 st84: @@ -6592,7 +6583,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5457 + // line internal/scanner/scanner.go:5448 switch lex.data[(lex.p)] { case 34: goto tr116 @@ -6618,7 +6609,7 @@ func (lex *Lexer) Lex() *Token { } goto st84 tr116: - // line internal/scanner/scanner.rl:46 + // line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st85 st85: @@ -6626,7 +6617,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5491 + // line internal/scanner/scanner.go:5482 switch lex.data[(lex.p)] { case 10: goto st155 @@ -6635,7 +6626,7 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr122: - // line internal/scanner/scanner.rl:46 + // line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st155 st155: @@ -6643,10 +6634,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof155 } st_case_155: - // line internal/scanner/scanner.go:5508 + // line internal/scanner/scanner.go:5499 goto tr285 tr123: - // line internal/scanner/scanner.rl:46 + // line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st86 st86: @@ -6654,7 +6645,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5519 + // line internal/scanner/scanner.go:5510 if lex.data[(lex.p)] == 10 { goto st155 } @@ -6681,7 +6672,7 @@ func (lex *Lexer) Lex() *Token { } goto tr120 tr120: - // line internal/scanner/scanner.rl:45 + // line internal/scanner/scanner.rl:36 lblStart = lex.p goto st88 st88: @@ -6689,7 +6680,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5554 + // line internal/scanner/scanner.go:5545 switch lex.data[(lex.p)] { case 39: goto tr116 @@ -6715,7 +6706,7 @@ func (lex *Lexer) Lex() *Token { } goto st88 tr114: - // line internal/scanner/scanner.rl:45 + // line internal/scanner/scanner.rl:36 lblStart = lex.p goto st89 st89: @@ -6723,7 +6714,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5588 + // line internal/scanner/scanner.go:5579 switch lex.data[(lex.p)] { case 10: goto tr122 @@ -6823,7 +6814,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof162 } st_case_162: - // line internal/scanner/scanner.go:5688 + // line internal/scanner/scanner.go:5679 switch lex.data[(lex.p)] { case 10: goto st163 @@ -6902,490 +6893,490 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:356 + // line internal/scanner/scanner.rl:347 lex.act = 135 goto st166 tr307: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:213 + // line internal/scanner/scanner.rl:204 lex.act = 16 goto st166 tr313: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:211 + // line internal/scanner/scanner.rl:202 lex.act = 14 goto st166 tr314: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:284 + // line internal/scanner/scanner.rl:275 lex.act = 87 goto st166 tr317: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:212 + // line internal/scanner/scanner.rl:203 lex.act = 15 goto st166 tr322: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:214 + // line internal/scanner/scanner.rl:205 lex.act = 17 goto st166 tr334: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:215 + // line internal/scanner/scanner.rl:206 lex.act = 18 goto st166 tr335: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:216 + // line internal/scanner/scanner.rl:207 lex.act = 19 goto st166 tr337: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:217 + // line internal/scanner/scanner.rl:208 lex.act = 20 goto st166 tr344: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:242 + // line internal/scanner/scanner.rl:233 lex.act = 45 goto st166 tr348: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:218 + // line internal/scanner/scanner.rl:209 lex.act = 21 goto st166 tr350: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:219 + // line internal/scanner/scanner.rl:210 lex.act = 22 goto st166 tr354: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:220 + // line internal/scanner/scanner.rl:211 lex.act = 23 goto st166 tr358: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:221 + // line internal/scanner/scanner.rl:212 lex.act = 24 goto st166 tr361: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:224 + // line internal/scanner/scanner.rl:215 lex.act = 27 goto st166 tr367: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:222 + // line internal/scanner/scanner.rl:213 lex.act = 25 goto st166 tr371: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:223 + // line internal/scanner/scanner.rl:214 lex.act = 26 goto st166 tr372: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:236 + // line internal/scanner/scanner.rl:227 lex.act = 39 goto st166 tr380: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:225 + // line internal/scanner/scanner.rl:216 lex.act = 28 goto st166 tr385: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:227 + // line internal/scanner/scanner.rl:218 lex.act = 30 goto st166 tr388: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:228 + // line internal/scanner/scanner.rl:219 lex.act = 31 goto st166 tr400: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:229 + // line internal/scanner/scanner.rl:220 lex.act = 32 goto st166 tr407: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:231 + // line internal/scanner/scanner.rl:222 lex.act = 34 goto st166 tr408: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:232 + // line internal/scanner/scanner.rl:223 lex.act = 35 goto st166 tr413: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:233 + // line internal/scanner/scanner.rl:224 lex.act = 36 goto st166 tr417: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:234 + // line internal/scanner/scanner.rl:225 lex.act = 37 goto st166 tr419: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:235 + // line internal/scanner/scanner.rl:226 lex.act = 38 goto st166 tr425: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:237 + // line internal/scanner/scanner.rl:228 lex.act = 40 goto st166 tr427: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:243 + // line internal/scanner/scanner.rl:234 lex.act = 46 goto st166 tr434: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:239 + // line internal/scanner/scanner.rl:230 lex.act = 42 goto st166 tr440: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:241 + // line internal/scanner/scanner.rl:232 lex.act = 44 goto st166 tr446: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:244 + // line internal/scanner/scanner.rl:235 lex.act = 47 goto st166 tr448: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:245 + // line internal/scanner/scanner.rl:236 lex.act = 48 goto st166 tr449: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:246 + // line internal/scanner/scanner.rl:237 lex.act = 49 goto st166 tr460: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:248 + // line internal/scanner/scanner.rl:239 lex.act = 51 goto st166 tr473: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:262 lex.act = 74 goto st166 tr481: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:249 + // line internal/scanner/scanner.rl:240 lex.act = 52 goto st166 tr485: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:250 + // line internal/scanner/scanner.rl:241 lex.act = 53 goto st166 tr491: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:251 + // line internal/scanner/scanner.rl:242 lex.act = 54 goto st166 tr494: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:247 + // line internal/scanner/scanner.rl:238 lex.act = 50 goto st166 tr497: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:252 + // line internal/scanner/scanner.rl:243 lex.act = 55 goto st166 tr506: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:253 + // line internal/scanner/scanner.rl:244 lex.act = 56 goto st166 tr507: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:283 + // line internal/scanner/scanner.rl:274 lex.act = 86 goto st166 tr508: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:285 + // line internal/scanner/scanner.rl:276 lex.act = 88 goto st166 tr515: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:256 + // line internal/scanner/scanner.rl:247 lex.act = 59 goto st166 tr518: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:254 + // line internal/scanner/scanner.rl:245 lex.act = 57 goto st166 tr524: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:257 + // line internal/scanner/scanner.rl:248 lex.act = 60 goto st166 tr528: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:255 + // line internal/scanner/scanner.rl:246 lex.act = 58 goto st166 tr541: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:273 + // line internal/scanner/scanner.rl:264 lex.act = 76 goto st166 tr544: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:249 lex.act = 61 goto st166 tr550: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:250 lex.act = 62 goto st166 tr554: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:251 lex.act = 63 goto st166 tr559: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:252 lex.act = 64 goto st166 tr561: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:263 + // line internal/scanner/scanner.rl:254 lex.act = 66 goto st166 tr563: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:253 lex.act = 65 goto st166 tr568: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:264 + // line internal/scanner/scanner.rl:255 lex.act = 67 goto st166 tr569: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:265 + // line internal/scanner/scanner.rl:256 lex.act = 68 goto st166 tr571: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:266 + // line internal/scanner/scanner.rl:257 lex.act = 69 goto st166 tr575: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:267 + // line internal/scanner/scanner.rl:258 lex.act = 70 goto st166 tr577: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:286 + // line internal/scanner/scanner.rl:277 lex.act = 89 goto st166 tr586: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:259 lex.act = 71 goto st166 tr602: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:274 + // line internal/scanner/scanner.rl:265 lex.act = 77 goto st166 tr606: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:275 + // line internal/scanner/scanner.rl:266 lex.act = 78 goto st166 tr612: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:276 + // line internal/scanner/scanner.rl:267 lex.act = 79 goto st166 tr620: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:277 + // line internal/scanner/scanner.rl:268 lex.act = 80 goto st166 tr632: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:282 + // line internal/scanner/scanner.rl:273 lex.act = 85 goto st166 tr637: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:278 + // line internal/scanner/scanner.rl:269 lex.act = 81 goto st166 tr644: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:280 + // line internal/scanner/scanner.rl:271 lex.act = 83 goto st166 tr654: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:279 + // line internal/scanner/scanner.rl:270 lex.act = 82 goto st166 tr660: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:281 + // line internal/scanner/scanner.rl:272 lex.act = 84 goto st166 st166: @@ -7393,7 +7384,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof166 } st_case_166: - // line internal/scanner/scanner.go:6258 + // line internal/scanner/scanner.go:6249 if lex.data[(lex.p)] == 96 { goto tr11 } @@ -7729,7 +7720,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:356 + // line internal/scanner/scanner.rl:347 lex.act = 135 goto st177 st177: @@ -7737,7 +7728,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof177 } st_case_177: - // line internal/scanner/scanner.go:6602 + // line internal/scanner/scanner.go:6593 switch lex.data[(lex.p)] { case 34: goto st7 @@ -14731,7 +14722,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof397 } st_case_397: - // line internal/scanner/scanner.go:13596 + // line internal/scanner/scanner.go:13587 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14774,7 +14765,7 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr134: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st93 st93: @@ -14782,7 +14773,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:13647 + // line internal/scanner/scanner.go:13638 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14800,7 +14791,7 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr135: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st94 st94: @@ -14808,7 +14799,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:13673 + // line internal/scanner/scanner.go:13664 switch lex.data[(lex.p)] { case 10: goto tr135 @@ -14826,7 +14817,7 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr136: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st95 st95: @@ -14834,13 +14825,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:13699 + // line internal/scanner/scanner.go:13690 if lex.data[(lex.p)] == 10 { goto st94 } goto tr129 tr137: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st96 st96: @@ -14848,7 +14839,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:13713 + // line internal/scanner/scanner.go:13704 switch lex.data[(lex.p)] { case 82: goto st97 @@ -16952,14 +16943,14 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr141: - // line internal/scanner/scanner.rl:390 + // line internal/scanner/scanner.rl:381 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr663: - // line internal/scanner/scanner.rl:393 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -16969,7 +16960,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr668: - // line internal/scanner/scanner.rl:390 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { @@ -16977,9 +16968,9 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr670: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:390 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { @@ -16987,7 +16978,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr674: - // line internal/scanner/scanner.rl:393 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) (lex.p)-- { @@ -16998,7 +16989,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr675: - // line internal/scanner/scanner.rl:391 + // line internal/scanner/scanner.rl:382 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17012,7 +17003,7 @@ func (lex *Lexer) Lex() *Token { goto st468 tr676: lex.cs = 468 - // line internal/scanner/scanner.rl:392 + // line internal/scanner/scanner.rl:383 lex.te = (lex.p) (lex.p)-- { @@ -17036,7 +17027,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:15869 + // line internal/scanner/scanner.go:15860 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17081,7 +17072,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st469 st469: @@ -17089,7 +17080,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof469 } st_case_469: - // line internal/scanner/scanner.go:15922 + // line internal/scanner/scanner.go:15913 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17111,7 +17102,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st470 st470: @@ -17119,7 +17110,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof470 } st_case_470: - // line internal/scanner/scanner.go:15952 + // line internal/scanner/scanner.go:15943 switch lex.data[(lex.p)] { case 10: goto tr672 @@ -17133,7 +17124,7 @@ func (lex *Lexer) Lex() *Token { } goto tr670 tr673: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st99 st99: @@ -17141,7 +17132,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:15974 + // line internal/scanner/scanner.go:15965 if lex.data[(lex.p)] == 10 { goto tr142 } @@ -17217,9 +17208,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr680: lex.cs = 474 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:388 lex.te = (lex.p) (lex.p)-- { @@ -17246,7 +17237,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16068 + // line internal/scanner/scanner.go:16059 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17300,16 +17291,16 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:388 lex.act = 146 goto st475 tr681: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:388 lex.act = 146 goto st475 st475: @@ -17317,7 +17308,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof475 } st_case_475: - // line internal/scanner/scanner.go:16139 + // line internal/scanner/scanner.go:16130 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17364,7 +17355,7 @@ func (lex *Lexer) Lex() *Token { } goto tr679 tr682: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st476 st476: @@ -17372,7 +17363,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof476 } st_case_476: - // line internal/scanner/scanner.go:16194 + // line internal/scanner/scanner.go:16185 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17419,7 +17410,7 @@ func (lex *Lexer) Lex() *Token { } goto tr680 tr143: - // line internal/scanner/scanner.rl:406 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17430,7 +17421,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr689: - // line internal/scanner/scanner.rl:408 + // line internal/scanner/scanner.rl:399 lex.te = (lex.p) (lex.p)-- { @@ -17446,7 +17437,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr690: - // line internal/scanner/scanner.rl:407 + // line internal/scanner/scanner.rl:398 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17496,9 +17487,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr692: lex.cs = 477 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { @@ -17516,7 +17507,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr696: lex.cs = 477 - // line internal/scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { @@ -17543,7 +17534,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16323 + // line internal/scanner/scanner.go:16314 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17620,30 +17611,30 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:400 lex.act = 150 goto st479 tr693: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:400 lex.act = 150 goto st479 tr695: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:407 + // line internal/scanner/scanner.rl:398 lex.act = 148 goto st479 tr697: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:406 + // line internal/scanner/scanner.rl:397 lex.act = 147 goto st479 st479: @@ -17651,7 +17642,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof479 } st_case_479: - // line internal/scanner/scanner.go:16431 + // line internal/scanner/scanner.go:16422 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17698,7 +17689,7 @@ func (lex *Lexer) Lex() *Token { } goto tr691 tr694: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st480 st480: @@ -17706,7 +17697,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof480 } st_case_480: - // line internal/scanner/scanner.go:16486 + // line internal/scanner/scanner.go:16477 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17863,7 +17854,7 @@ func (lex *Lexer) Lex() *Token { } goto tr696 tr145: - // line internal/scanner/scanner.rl:421 + // line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17875,7 +17866,7 @@ func (lex *Lexer) Lex() *Token { goto st483 tr699: lex.cs = 483 - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:415 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17888,7 +17879,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr706: - // line internal/scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:414 lex.te = (lex.p) (lex.p)-- { @@ -17904,7 +17895,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr707: - // line internal/scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:413 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17960,9 +17951,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr709: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { @@ -17976,7 +17967,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr713: - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { @@ -18000,7 +17991,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16720 + // line internal/scanner/scanner.go:16711 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18081,37 +18072,37 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:416 lex.act = 155 goto st485 tr704: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:415 lex.act = 154 goto st485 tr710: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:416 lex.act = 155 goto st485 tr712: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:413 lex.act = 152 goto st485 tr714: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:421 + // line internal/scanner/scanner.rl:412 lex.act = 151 goto st485 st485: @@ -18119,7 +18110,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof485 } st_case_485: - // line internal/scanner/scanner.go:16839 + // line internal/scanner/scanner.go:16830 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18166,7 +18157,7 @@ func (lex *Lexer) Lex() *Token { } goto tr708 tr711: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st486 st486: @@ -18174,7 +18165,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof486 } st_case_486: - // line internal/scanner/scanner.go:16894 + // line internal/scanner/scanner.go:16885 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18331,7 +18322,7 @@ func (lex *Lexer) Lex() *Token { } goto tr713 tr146: - // line internal/scanner/scanner.rl:433 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18343,7 +18334,7 @@ func (lex *Lexer) Lex() *Token { goto st489 tr715: lex.cs = 489 - // line internal/scanner/scanner.rl:436 + // line internal/scanner/scanner.rl:427 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18356,7 +18347,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr723: - // line internal/scanner/scanner.rl:435 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) (lex.p)-- { @@ -18372,7 +18363,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr724: - // line internal/scanner/scanner.rl:434 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18428,9 +18419,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr726: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { @@ -18444,7 +18435,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr730: - // line internal/scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { @@ -18468,7 +18459,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17128 + // line internal/scanner/scanner.go:17119 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18549,37 +18540,37 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:428 lex.act = 160 goto st491 tr720: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:436 + // line internal/scanner/scanner.rl:427 lex.act = 159 goto st491 tr727: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:437 + // line internal/scanner/scanner.rl:428 lex.act = 160 goto st491 tr729: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:434 + // line internal/scanner/scanner.rl:425 lex.act = 157 goto st491 tr731: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:433 + // line internal/scanner/scanner.rl:424 lex.act = 156 goto st491 st491: @@ -18587,7 +18578,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof491 } st_case_491: - // line internal/scanner/scanner.go:17247 + // line internal/scanner/scanner.go:17238 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18634,7 +18625,7 @@ func (lex *Lexer) Lex() *Token { } goto tr725 tr728: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st492 st492: @@ -18642,7 +18633,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof492 } st_case_492: - // line internal/scanner/scanner.go:17302 + // line internal/scanner/scanner.go:17293 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18800,7 +18791,7 @@ func (lex *Lexer) Lex() *Token { goto tr730 tr733: lex.cs = 495 - // line internal/scanner/scanner.rl:445 + // line internal/scanner/scanner.rl:436 lex.te = (lex.p) (lex.p)-- { @@ -18824,7 +18815,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17481 + // line internal/scanner/scanner.go:17472 if lex.data[(lex.p)] == 96 { goto st0 } @@ -18868,7 +18859,7 @@ func (lex *Lexer) Lex() *Token { } goto st496 tr147: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:455 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -18880,7 +18871,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr148: - // line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:452 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18894,7 +18885,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr734: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:455 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18906,7 +18897,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr738: - // line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:454 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18916,7 +18907,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr739: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:455 lex.te = (lex.p) (lex.p)-- { @@ -18929,7 +18920,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr741: - // line internal/scanner/scanner.rl:460 + // line internal/scanner/scanner.rl:451 lex.te = (lex.p) (lex.p)-- { @@ -18943,7 +18934,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr743: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:453 lex.te = (lex.p) (lex.p)-- { @@ -18967,7 +18958,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17573 + // line internal/scanner/scanner.go:17564 switch lex.data[(lex.p)] { case 36: goto st498 @@ -19048,7 +19039,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof500 } st_case_500: - // line internal/scanner/scanner.go:17654 + // line internal/scanner/scanner.go:17645 if lex.data[(lex.p)] == 62 { goto st103 } @@ -19101,7 +19092,7 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr149: - // line internal/scanner/scanner.rl:468 + // line internal/scanner/scanner.rl:459 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -19114,15 +19105,15 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr744: - // line internal/scanner/scanner.rl:474 + // line internal/scanner/scanner.rl:465 lex.te = (lex.p) + 1 { c := lex.data[lex.p] - lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) + lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } goto st502 tr745: - // line internal/scanner/scanner.rl:471 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19132,7 +19123,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr748: - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19145,7 +19136,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr752: - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19155,9 +19146,9 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr753: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:471 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { @@ -19168,16 +19159,16 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr754: - // line internal/scanner/scanner.rl:474 + // line internal/scanner/scanner.rl:465 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)) + lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } goto st502 tr755: - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) (lex.p)-- { @@ -19191,7 +19182,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr757: - // line internal/scanner/scanner.rl:469 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -19205,7 +19196,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr758: - // line internal/scanner/scanner.rl:468 + // line internal/scanner/scanner.rl:459 lex.te = (lex.p) (lex.p)-- { @@ -19219,7 +19210,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr762: - // line internal/scanner/scanner.rl:470 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) (lex.p)-- { @@ -19243,7 +19234,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17786 + // line internal/scanner/scanner.go:17777 switch lex.data[(lex.p)] { case 10: goto st503 @@ -19380,7 +19371,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof507 } st_case_507: - // line internal/scanner/scanner.go:17923 + // line internal/scanner/scanner.go:17914 switch lex.data[(lex.p)] { case 95: goto st104 @@ -19403,7 +19394,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:17946 + // line internal/scanner/scanner.go:17937 if lex.data[(lex.p)] == 95 { goto st104 } @@ -19439,7 +19430,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof509 } st_case_509: - // line internal/scanner/scanner.go:17982 + // line internal/scanner/scanner.go:17973 if lex.data[(lex.p)] == 95 { goto st105 } @@ -19475,7 +19466,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof510 } st_case_510: - // line internal/scanner/scanner.go:18018 + // line internal/scanner/scanner.go:18009 if lex.data[(lex.p)] == 95 { goto st106 } @@ -19520,7 +19511,7 @@ func (lex *Lexer) Lex() *Token { goto st511 tr153: lex.cs = 512 - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:473 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -19529,7 +19520,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr155: lex.cs = 512 - // line internal/scanner/scanner.rl:481 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19544,7 +19535,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr763: lex.cs = 512 - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19553,7 +19544,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr765: lex.cs = 512 - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) (lex.p)-- { @@ -19572,7 +19563,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18097 + // line internal/scanner/scanner.go:18088 if lex.data[(lex.p)] == 96 { goto tr763 } @@ -19599,7 +19590,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof513 } st_case_513: - // line internal/scanner/scanner.go:18124 + // line internal/scanner/scanner.go:18115 switch lex.data[(lex.p)] { case 91: goto tr155 @@ -19658,7 +19649,7 @@ func (lex *Lexer) Lex() *Token { } goto st107 tr156: - // line internal/scanner/scanner.rl:486 + // line internal/scanner/scanner.rl:477 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) @@ -19666,7 +19657,7 @@ func (lex *Lexer) Lex() *Token { goto st514 tr766: lex.cs = 514 - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:479 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19675,7 +19666,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr769: lex.cs = 514 - // line internal/scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:478 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19688,7 +19679,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr770: - // line internal/scanner/scanner.rl:486 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { @@ -19696,9 +19687,9 @@ func (lex *Lexer) Lex() *Token { } goto st514 tr772: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:486 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { @@ -19707,7 +19698,7 @@ func (lex *Lexer) Lex() *Token { goto st514 tr776: lex.cs = 514 - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:479 lex.te = (lex.p) (lex.p)-- { @@ -19726,7 +19717,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18231 + // line internal/scanner/scanner.go:18222 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19750,7 +19741,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st515 st515: @@ -19758,7 +19749,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof515 } st_case_515: - // line internal/scanner/scanner.go:18263 + // line internal/scanner/scanner.go:18254 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19780,7 +19771,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st516 st516: @@ -19788,7 +19779,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof516 } st_case_516: - // line internal/scanner/scanner.go:18293 + // line internal/scanner/scanner.go:18284 switch lex.data[(lex.p)] { case 10: goto tr774 @@ -19802,7 +19793,7 @@ func (lex *Lexer) Lex() *Token { } goto tr772 tr775: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st108 st108: @@ -19810,7 +19801,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof108 } st_case_108: - // line internal/scanner/scanner.go:18315 + // line internal/scanner/scanner.go:18306 if lex.data[(lex.p)] == 10 { goto tr157 } @@ -19825,7 +19816,7 @@ func (lex *Lexer) Lex() *Token { } goto tr776 tr158: - // line internal/scanner/scanner.rl:492 + // line internal/scanner/scanner.rl:483 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) @@ -19833,7 +19824,7 @@ func (lex *Lexer) Lex() *Token { goto st518 tr777: lex.cs = 518 - // line internal/scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:485 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19842,7 +19833,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr780: lex.cs = 518 - // line internal/scanner/scanner.rl:493 + // line internal/scanner/scanner.rl:484 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19855,7 +19846,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr781: - // line internal/scanner/scanner.rl:492 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { @@ -19863,9 +19854,9 @@ func (lex *Lexer) Lex() *Token { } goto st518 tr783: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:492 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { @@ -19874,7 +19865,7 @@ func (lex *Lexer) Lex() *Token { goto st518 tr787: lex.cs = 518 - // line internal/scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:485 lex.te = (lex.p) (lex.p)-- { @@ -19893,7 +19884,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18378 + // line internal/scanner/scanner.go:18369 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19917,7 +19908,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st519 st519: @@ -19925,7 +19916,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof519 } st_case_519: - // line internal/scanner/scanner.go:18410 + // line internal/scanner/scanner.go:18401 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19947,7 +19938,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st520 st520: @@ -19955,7 +19946,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof520 } st_case_520: - // line internal/scanner/scanner.go:18440 + // line internal/scanner/scanner.go:18431 switch lex.data[(lex.p)] { case 10: goto tr785 @@ -19969,7 +19960,7 @@ func (lex *Lexer) Lex() *Token { } goto tr783 tr786: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st109 st109: @@ -19977,7 +19968,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof109 } st_case_109: - // line internal/scanner/scanner.go:18462 + // line internal/scanner/scanner.go:18453 if lex.data[(lex.p)] == 10 { goto tr159 } @@ -19992,7 +19983,7 @@ func (lex *Lexer) Lex() *Token { } goto tr787 tr160: - // line internal/scanner/scanner.rl:498 + // line internal/scanner/scanner.rl:489 (lex.p) = (lex.te) - 1 { lex.addToken(T_WHITESPACE, lex.ts, lex.te) @@ -20000,7 +19991,7 @@ func (lex *Lexer) Lex() *Token { goto st522 tr788: lex.cs = 522 - // line internal/scanner/scanner.rl:500 + // line internal/scanner/scanner.rl:491 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20009,7 +20000,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr791: lex.cs = 522 - // line internal/scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:490 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -20022,7 +20013,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr792: - // line internal/scanner/scanner.rl:498 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { @@ -20030,9 +20021,9 @@ func (lex *Lexer) Lex() *Token { } goto st522 tr794: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:498 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { @@ -20041,7 +20032,7 @@ func (lex *Lexer) Lex() *Token { goto st522 tr798: lex.cs = 522 - // line internal/scanner/scanner.rl:500 + // line internal/scanner/scanner.rl:491 lex.te = (lex.p) (lex.p)-- { @@ -20060,7 +20051,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18525 + // line internal/scanner/scanner.go:18516 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20084,7 +20075,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st523 st523: @@ -20092,7 +20083,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof523 } st_case_523: - // line internal/scanner/scanner.go:18557 + // line internal/scanner/scanner.go:18548 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20114,7 +20105,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st524 st524: @@ -20122,7 +20113,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof524 } st_case_524: - // line internal/scanner/scanner.go:18587 + // line internal/scanner/scanner.go:18578 switch lex.data[(lex.p)] { case 10: goto tr796 @@ -20136,7 +20127,7 @@ func (lex *Lexer) Lex() *Token { } goto tr794 tr797: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st110 st110: @@ -20144,7 +20135,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:18609 + // line internal/scanner/scanner.go:18600 if lex.data[(lex.p)] == 10 { goto tr161 } @@ -20176,9 +20167,9 @@ func (lex *Lexer) Lex() *Token { goto st526 tr802: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:504 + // line internal/scanner/scanner.rl:495 lex.te = (lex.p) (lex.p)-- { @@ -20199,7 +20190,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18656 + // line internal/scanner/scanner.go:18647 if lex.data[(lex.p)] == 10 { goto st528 } @@ -20208,16 +20199,16 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:504 + // line internal/scanner/scanner.rl:495 lex.act = 186 goto st527 tr803: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:504 + // line internal/scanner/scanner.rl:495 lex.act = 186 goto st527 st527: @@ -20225,13 +20216,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof527 } st_case_527: - // line internal/scanner/scanner.go:18682 + // line internal/scanner/scanner.go:18673 if lex.data[(lex.p)] == 10 { goto st528 } goto tr799 tr804: - // line internal/scanner/scanner.rl:64 + // line internal/scanner/scanner.rl:55 lex.NewLines.Append(lex.p) goto st528 st528: @@ -20239,7 +20230,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof528 } st_case_528: - // line internal/scanner/scanner.go:18696 + // line internal/scanner/scanner.go:18687 if lex.data[(lex.p)] == 10 { goto tr804 } @@ -22861,7 +22852,7 @@ func (lex *Lexer) Lex() *Token { } } - // line internal/scanner/scanner.rl:508 + // line internal/scanner/scanner.rl:499 token.Hidden = lex.HiddenTokens token.Value = lex.data[lex.ts:lex.te] diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index abd03b4..f885098 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -14,17 +14,8 @@ import ( 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)}, - } +func initLexer(lex *Lexer) { %% write init; - return lex } func (lex *Lexer) Lex() *Token { @@ -382,7 +373,7 @@ func (lex *Lexer) Lex() *Token { any_line => { c := lex.data[lex.p] - lex.Error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)); + lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)); }; *|; @@ -473,7 +464,7 @@ func (lex *Lexer) Lex() *Token { ']' > (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)); + lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)); }; *|; diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index ec61cbc..c9f63af 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -1,6 +1,8 @@ package scanner import ( + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/position" "testing" "github.com/z7zmey/php-parser/pkg/token" @@ -351,7 +353,7 @@ func TestTokens(t *testing.T) { T_UNSET_CAST.String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -379,7 +381,7 @@ func TestShebang(t *testing.T) { "\n", } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -399,7 +401,7 @@ func TestShebangHtml(t *testing.T) { 0.1 ` - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true tkn := lexer.Lex() @@ -449,7 +451,7 @@ func TestNumberTokens(t *testing.T) { T_DNUMBER.String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -506,7 +508,7 @@ func TestConstantStrings(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -553,7 +555,7 @@ func TestSingleQuoteStringTokens(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) actual := []string{} for { @@ -640,7 +642,7 @@ func TestTeplateStringTokens(t *testing.T) { TokenID(int('"')).String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -725,7 +727,7 @@ func TestBackquoteStringTokens(t *testing.T) { TokenID(int('`')).String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -819,7 +821,7 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -892,7 +894,7 @@ CAT T_END_HEREDOC.String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -931,7 +933,7 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -962,7 +964,7 @@ func TestHereDocTokens73(t *testing.T) { T_VARIABLE.String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -992,7 +994,7 @@ CAT;` TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.PHPVersion = "7.2" lexer.WithHiddenTokens = true actual := []string{} @@ -1025,7 +1027,7 @@ func TestInlineHtmlNopTokens(t *testing.T) { T_INLINE_HTML.String(), } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true actual := []string{} @@ -1060,7 +1062,7 @@ func TestStringTokensAfterVariable(t *testing.T) { "\"", } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) actual := []string{} actualTokens := []string{} @@ -1093,7 +1095,7 @@ func TestSlashAfterVariable(t *testing.T) { "3", } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) actual := []string{} actualTokens := []string{} @@ -1130,7 +1132,7 @@ func TestCommentEnd(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true lexer.Lex() @@ -1159,7 +1161,7 @@ func TestCommentNewLine(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true tkn := lexer.Lex() @@ -1188,7 +1190,7 @@ func TestCommentNewLine1(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true tkn := lexer.Lex() @@ -1217,7 +1219,7 @@ func TestCommentNewLine2(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true tkn := lexer.Lex() @@ -1247,7 +1249,7 @@ func TestCommentWithPhpEndTag(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true tkn := lexer.Lex() @@ -1277,7 +1279,7 @@ func TestInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true tkn := lexer.Lex() @@ -1307,7 +1309,7 @@ func TestInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true lexer.Lex() @@ -1341,7 +1343,7 @@ func TestEmptyInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true lexer.Lex() @@ -1371,7 +1373,7 @@ func TestEmptyInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true tkn := lexer.Lex() @@ -1385,7 +1387,7 @@ func TestMethodCallTokens(t *testing.T) { src := ` bar ( '' ) ;` - lexer := NewLexer([]byte(src)) + lexer := NewLexer([]byte(src), nil) lexer.WithHiddenTokens = true expected := []token.Token{ @@ -1467,7 +1469,7 @@ func TestYieldFromTokens(t *testing.T) { src := ` Date: Mon, 18 May 2020 21:15:07 +0300 Subject: [PATCH 017/140] [refactoring] scanner.Lexer.withHiddenTokens --- cmd/php-parser/main.go | 6 +- internal/php5/parser.go | 32 +- internal/php5/parser_test.go | 516 ++++----- internal/php5/php5_bench_test.go | 2 +- internal/php5/php5_test.go | 8 +- internal/php7/parser.go | 32 +- internal/php7/parser_test.go | 564 +++++----- internal/php7/php7_bench_test.go | 2 +- internal/php7/php7_test.go | 8 +- internal/scanner/lexer.go | 71 +- internal/scanner/scanner.go | 1376 +++++++++++------------ internal/scanner/scanner.rl | 36 +- internal/scanner/scanner_test.go | 124 +- pkg/parser/parser.go | 7 +- pkg/printer/printer_parsed_php5_test.go | 3 +- pkg/printer/printer_parsed_php7_test.go | 6 +- 16 files changed, 1394 insertions(+), 1399 deletions(-) diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 33d03e0..9300288 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -108,15 +108,11 @@ func parserWorker(fileCh <-chan *file, r chan<- result) { return } - parserWorker, err := parser.NewParser(f.content, phpVersion) + parserWorker, err := parser.NewParser(f.content, phpVersion, *withFreeFloating) if err != nil { panic(err.Error()) } - if *withFreeFloating { - parserWorker.WithTokens() - } - parserWorker.Parse() r <- result{path: f.path, parser: parserWorker} diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 1315a54..0f4441d 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -22,17 +22,23 @@ type Parser struct { positionBuilder *positionbuilder.PositionBuilder rootNode ast.Vertex errors []*errors.Error + withTokens bool } // NewParser creates and returns new Parser -func NewParser(src []byte, v string) *Parser { - parser := &Parser{} +func NewParser(src []byte, v string, withTokens bool) *Parser { + parser := &Parser{ + withTokens: withTokens, + } - lexer := scanner.NewLexer(src, func(e *errors.Error) { - parser.errors = append(parser.errors, e) - }) - lexer.PHPVersion = v + scannerConfig := scanner.Config{ + WithHiddenTokens: withTokens, + ErrHandlerFunc: func(e *errors.Error) { + parser.errors = append(parser.errors, e) + }, + } + lexer := scanner.NewLexer(src, v, scannerConfig) parser.Lexer = lexer return parser @@ -59,10 +65,6 @@ func (l *Parser) GetErrors() []*errors.Error { return l.errors } -func (l *Parser) WithTokens() { - l.Lexer.SetWithHiddenTokens(true) -} - // Parse the php7 Parser entrypoint func (l *Parser) Parse() int { // init @@ -98,7 +100,7 @@ func isDollar(r rune) bool { } func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } @@ -111,7 +113,7 @@ func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { } func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } @@ -128,7 +130,7 @@ func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []tok } func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return []token.Token{} } @@ -141,7 +143,7 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } func (l *Parser) addDollarToken(v ast.Vertex) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } @@ -154,7 +156,7 @@ func (l *Parser) addDollarToken(v ast.Vertex) { } func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 638d1df..c5b5d58 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -56,7 +56,7 @@ func TestIdentifier(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -838,7 +838,7 @@ func TestPhp5ArgumentNode(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1591,7 +1591,7 @@ func TestPhp5ParameterNode(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1612,7 +1612,7 @@ func TestCommentEndFile(t *testing.T) { Stmts: []ast.Vertex{}, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1689,7 +1689,7 @@ func TestName(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1764,7 +1764,7 @@ func TestFullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1839,7 +1839,7 @@ func TestRelative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1917,7 +1917,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1993,7 +1993,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2080,7 +2080,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2177,7 +2177,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2285,7 +2285,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2361,7 +2361,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2458,7 +2458,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2565,7 +2565,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2656,7 +2656,7 @@ LBL; }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2747,7 +2747,7 @@ LBL; }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2806,7 +2806,7 @@ LBL; }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2851,7 +2851,7 @@ CAD; }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2910,7 +2910,7 @@ CAD; }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2954,7 +2954,7 @@ func TestScalarMagicConstant(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2997,7 +2997,7 @@ func TestScalarNumber_LNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3040,7 +3040,7 @@ func TestScalarNumber_DNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3083,7 +3083,7 @@ func TestScalarNumber_Float(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3126,7 +3126,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3169,7 +3169,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3212,7 +3212,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3255,7 +3255,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3298,7 +3298,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3341,7 +3341,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3386,7 +3386,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3429,7 +3429,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3474,7 +3474,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3543,7 +3543,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3655,7 +3655,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3744,7 +3744,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3921,7 +3921,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4042,7 +4042,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4120,7 +4120,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4268,7 +4268,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4370,7 +4370,7 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4484,7 +4484,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4528,7 +4528,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4585,7 +4585,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4675,7 +4675,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4767,7 +4767,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4882,7 +4882,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4980,7 +4980,7 @@ func TestStmtConstList(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5045,7 +5045,7 @@ func TestStmtContinue_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5121,7 +5121,7 @@ func TestStmtContinue_Light(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5197,7 +5197,7 @@ func TestStmtContinue(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5273,7 +5273,7 @@ func TestStmtDeclare(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5382,7 +5382,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5460,7 +5460,7 @@ func TestStmtDeclare_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5514,7 +5514,7 @@ func TestStmtDo(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5580,7 +5580,7 @@ func TestStmtEcho(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5635,7 +5635,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5678,7 +5678,7 @@ func TestStmtExpression(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5873,7 +5873,7 @@ func TestStmtFor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5993,7 +5993,7 @@ func TestStmtFor_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6078,7 +6078,7 @@ func TestStmtForeach(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6153,7 +6153,7 @@ func TestStmtForeach_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6238,7 +6238,7 @@ func TestStmtForeach_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6344,7 +6344,7 @@ func TestStmtForeach_WithKey(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6440,7 +6440,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6556,7 +6556,7 @@ func TestStmtForeach_WithRef(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6684,7 +6684,7 @@ func TestStmtForeach_WithList(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6729,7 +6729,7 @@ func TestStmtFunction(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6785,7 +6785,7 @@ func TestStmtFunction_Return(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6952,7 +6952,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7019,7 +7019,7 @@ func TestStmtFunction_Ref(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7074,7 +7074,7 @@ func TestStmtGlobal(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7234,7 +7234,7 @@ func TestStmtGlobal_Vars(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7298,7 +7298,7 @@ func TestStmtGotoLabel(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7330,7 +7330,7 @@ func TestStmtHaltCompiler(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7394,7 +7394,7 @@ func TestStmtIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7502,7 +7502,7 @@ func TestStmtIf_ElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7587,7 +7587,7 @@ func TestStmtIf_Else(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7758,7 +7758,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7939,7 +7939,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7982,7 +7982,7 @@ func TestStmtInlineHtml(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8026,7 +8026,7 @@ func TestStmtInterface(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8105,7 +8105,7 @@ func TestStmtInterface_Extend(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8207,7 +8207,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8262,7 +8262,7 @@ func TestStmtNamespace(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8318,7 +8318,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8351,7 +8351,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8452,7 +8452,7 @@ func TestStmtProperty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8606,7 +8606,7 @@ func TestStmtProperty_Properties(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8760,7 +8760,7 @@ func TestStmtProperty_Properties2(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8825,7 +8825,7 @@ func TestStmtStaticVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8932,7 +8932,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9039,7 +9039,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9165,7 +9165,7 @@ func TestStmtSwitch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9291,7 +9291,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9407,7 +9407,7 @@ func TestStmtSwitch_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9511,7 +9511,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9564,7 +9564,7 @@ func TestStmtThrow(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9608,7 +9608,7 @@ func TestStmtTrait(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9698,7 +9698,7 @@ func TestStmtTraitUse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9811,7 +9811,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9924,7 +9924,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10081,7 +10081,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10249,7 +10249,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10531,7 +10531,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10567,7 +10567,7 @@ func TestStmtTry_Try(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10661,7 +10661,7 @@ func TestStmtTry_TryCatch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10812,7 +10812,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10917,7 +10917,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11123,7 +11123,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11178,7 +11178,7 @@ func TestStmtUnset(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11254,7 +11254,7 @@ func TestStmtUnset_Vars(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11321,7 +11321,7 @@ func TestStmtUse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11388,7 +11388,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11466,7 +11466,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11566,7 +11566,7 @@ func TestStmtUse_List(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11677,7 +11677,7 @@ func TestStmtUse_ListAlias(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11788,7 +11788,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11921,7 +11921,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12032,7 +12032,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12165,7 +12165,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12230,7 +12230,7 @@ func TestStmtBreak_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12306,7 +12306,7 @@ func TestStmtBreak_Light(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12382,7 +12382,7 @@ func TestStmtBreak(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12458,7 +12458,7 @@ func TestExprArrayDimFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12553,7 +12553,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12596,7 +12596,7 @@ func TestExprArray(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12661,7 +12661,7 @@ func TestExprArray_Item(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12779,7 +12779,7 @@ func TestExprArray_Items(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12842,7 +12842,7 @@ func TestExprBitwiseNot(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12905,7 +12905,7 @@ func TestExprBooleanNot(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12981,7 +12981,7 @@ func TestExprClassConstFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13045,7 +13045,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13108,7 +13108,7 @@ func TestExprClone_Brackets(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13171,7 +13171,7 @@ func TestExprClone(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13216,7 +13216,7 @@ func TestExprClosure(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13393,7 +13393,7 @@ func TestExprClosure_Use(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13570,7 +13570,7 @@ func TestExprClosure_Use2(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13635,7 +13635,7 @@ func TestExprConstFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13700,7 +13700,7 @@ func TestExprConstFetch_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13765,7 +13765,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13828,7 +13828,7 @@ func TestExprEmpty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13891,7 +13891,7 @@ func TestExprErrorSuppress(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13954,7 +13954,7 @@ func TestExprEval(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13997,7 +13997,7 @@ func TestExprExit(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14040,7 +14040,7 @@ func TestExprExit_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14104,7 +14104,7 @@ func TestExprExit_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14147,7 +14147,7 @@ func TestExprDie(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14190,7 +14190,7 @@ func TestExprDie_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14254,7 +14254,7 @@ func TestExprDie_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14329,7 +14329,7 @@ func TestExprFunctionCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14404,7 +14404,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14504,7 +14504,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14622,7 +14622,7 @@ func TestExprFunctionCall_Var(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14753,7 +14753,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14816,7 +14816,7 @@ func TestExprPostDec(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14879,7 +14879,7 @@ func TestExprPostInc(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14942,7 +14942,7 @@ func TestExprPreDec(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15005,7 +15005,7 @@ func TestExprPreInc(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15068,7 +15068,7 @@ func TestExprInclude(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15131,7 +15131,7 @@ func TestExprInclude_Once(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15194,7 +15194,7 @@ func TestExprRequire(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15257,7 +15257,7 @@ func TestExprRequire_Once(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15343,7 +15343,7 @@ func TestExprInstanceOf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15429,7 +15429,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15515,7 +15515,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15580,7 +15580,7 @@ func TestExprIsset(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15666,7 +15666,7 @@ func TestExprIsset_Variables(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15740,7 +15740,7 @@ func TestExprList_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15846,7 +15846,7 @@ func TestExprList(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15962,7 +15962,7 @@ func TestExprList_ArrayIndex(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16090,7 +16090,7 @@ func TestExprList_List(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16197,7 +16197,7 @@ func TestExprList_EmptyItem(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16306,7 +16306,7 @@ func TestExprList_EmptyItems(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16390,7 +16390,7 @@ func TestExprMethodCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16455,7 +16455,7 @@ func TestExprNew(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16530,7 +16530,7 @@ func TestExprNew_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16605,7 +16605,7 @@ func TestExprNew_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16668,7 +16668,7 @@ func TestExprPrint(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16742,7 +16742,7 @@ func TestExprPropertyFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16859,7 +16859,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16935,7 +16935,7 @@ func TestExprShellExec(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16978,7 +16978,7 @@ func TestExprShortArray(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17043,7 +17043,7 @@ func TestExprShortArray_Item(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17161,7 +17161,7 @@ func TestExprShortArray_Items(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17247,7 +17247,7 @@ func TestExprStaticCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17333,7 +17333,7 @@ func TestExprStaticCall_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17419,7 +17419,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17515,7 +17515,7 @@ func TestExprStaticCall_Var(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17609,7 +17609,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17695,7 +17695,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17781,7 +17781,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17867,7 +17867,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17972,7 +17972,7 @@ func TestExprTernary(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18056,7 +18056,7 @@ func TestExprTernary_Simple(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18213,7 +18213,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18370,7 +18370,7 @@ func TestExprTernary_NestedCond(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18433,7 +18433,7 @@ func TestExprUnaryMinus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18496,7 +18496,7 @@ func TestExprUnaryPlus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18549,7 +18549,7 @@ func TestExprVariable(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18612,7 +18612,7 @@ func TestExprVariable_Variable(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18654,7 +18654,7 @@ func TestExprYield(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18717,7 +18717,7 @@ func TestExprYield_Val(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18801,7 +18801,7 @@ func TestExprYield_KeyVal(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18854,7 +18854,7 @@ func TestExprYield_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18928,7 +18928,7 @@ func TestExprYield_KeyExpr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19014,7 +19014,7 @@ func TestExprAssign_Assign(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19098,7 +19098,7 @@ func TestExprAssign_Reference(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19194,7 +19194,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19335,7 +19335,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19419,7 +19419,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19503,7 +19503,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19587,7 +19587,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19671,7 +19671,7 @@ func TestExprAssign_Concat(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19755,7 +19755,7 @@ func TestExprAssign_Div(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19839,7 +19839,7 @@ func TestExprAssign_Minus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19923,7 +19923,7 @@ func TestExprAssign_Mod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20007,7 +20007,7 @@ func TestExprAssign_Mul(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20091,7 +20091,7 @@ func TestExprAssign_Plus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20175,7 +20175,7 @@ func TestExprAssign_Pow(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20259,7 +20259,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20343,7 +20343,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20429,7 +20429,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20513,7 +20513,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20597,7 +20597,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20681,7 +20681,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20765,7 +20765,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20849,7 +20849,7 @@ func TestExprBinary_Concat(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20933,7 +20933,7 @@ func TestExprBinary_Div(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21017,7 +21017,7 @@ func TestExprBinary_Equal(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21101,7 +21101,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21185,7 +21185,7 @@ func TestExprBinary_Greater(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21269,7 +21269,7 @@ func TestExprBinary_Identical(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21353,7 +21353,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21437,7 +21437,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21521,7 +21521,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21605,7 +21605,7 @@ func TestExprBinary_Minus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21689,7 +21689,7 @@ func TestExprBinary_Mod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21773,7 +21773,7 @@ func TestExprBinary_Mul(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21857,7 +21857,7 @@ func TestExprBinary_NotEqual(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21941,7 +21941,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22025,7 +22025,7 @@ func TestExprBinary_Plus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22109,7 +22109,7 @@ func TestExprBinary_Pow(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22193,7 +22193,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22277,7 +22277,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22361,7 +22361,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22445,7 +22445,7 @@ func TestExprBinary_Smaller(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22510,7 +22510,7 @@ func TestExprCast_Array(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22573,7 +22573,7 @@ func TestExprCast_Bool(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22636,7 +22636,7 @@ func TestExprCast_BoolShort(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22699,7 +22699,7 @@ func TestExprCast_Double(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22762,7 +22762,7 @@ func TestExprCast_CastFloat(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22825,7 +22825,7 @@ func TestExprCast_Int(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22888,7 +22888,7 @@ func TestExprCast_IntShort(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22951,7 +22951,7 @@ func TestExprCast_Object(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23014,7 +23014,7 @@ func TestExprCast_String(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23077,7 +23077,7 @@ func TestExprCast_BinaryString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23140,7 +23140,7 @@ func TestExprCast_Unset(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/internal/php5/php5_bench_test.go b/internal/php5/php5_bench_test.go index 2c7d11c..2b94e89 100644 --- a/internal/php5/php5_bench_test.go +++ b/internal/php5/php5_bench_test.go @@ -413,7 +413,7 @@ CAD; ` for n := 0; n < b.N; n++ { - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() } } diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 295e0b0..68a7b05 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -22455,7 +22455,7 @@ func TestPhp5(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22592,7 +22592,7 @@ func TestPhp5Strings(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22818,7 +22818,7 @@ CAD; }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22838,7 +22838,7 @@ func TestPhp5ControlCharsErrors(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6") + php5parser := php5.NewParser([]byte(src), "5.6", false) php5parser.Parse() actual := php5parser.GetErrors() assert.DeepEqual(t, expected, actual) diff --git a/internal/php7/parser.go b/internal/php7/parser.go index 72dab68..df00e2d 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -21,17 +21,23 @@ type Parser struct { positionBuilder *positionbuilder.PositionBuilder rootNode ast.Vertex errors []*errors.Error + withTokens bool } // NewParser creates and returns new Parser -func NewParser(src []byte, v string) *Parser { - parser := &Parser{} +func NewParser(src []byte, v string, withTokens bool) *Parser { + parser := &Parser{ + withTokens: withTokens, + } - lexer := scanner.NewLexer(src, func(e *errors.Error) { - parser.errors = append(parser.errors, e) - }) - lexer.PHPVersion = v + scannerConfig := scanner.Config{ + WithHiddenTokens: withTokens, + ErrHandlerFunc: func(e *errors.Error) { + parser.errors = append(parser.errors, e) + }, + } + lexer := scanner.NewLexer(src, v, scannerConfig) parser.Lexer = lexer return parser @@ -57,10 +63,6 @@ func (l *Parser) GetErrors() []*errors.Error { return l.errors } -func (l *Parser) WithTokens() { - l.Lexer.SetWithHiddenTokens(true) -} - // Parse the php7 Parser entrypoint func (l *Parser) Parse() int { // init @@ -96,7 +98,7 @@ func isDollar(r rune) bool { } func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } @@ -109,7 +111,7 @@ func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { } func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } @@ -126,7 +128,7 @@ func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []tok } func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return []token.Token{} } @@ -139,7 +141,7 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } func (l *Parser) addDollarToken(v ast.Vertex) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } @@ -152,7 +154,7 @@ func (l *Parser) addDollarToken(v ast.Vertex) { } func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if l.Lexer.GetWithHiddenTokens() == false { + if l.withTokens == false { return } diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index bceae9c..e4a2100 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -56,7 +56,7 @@ func TestIdentifier(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -949,7 +949,7 @@ func TestPhp7ArgumentNode(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1742,7 +1742,7 @@ func TestPhp7ParameterNode(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1763,7 +1763,7 @@ func TestCommentEndFile(t *testing.T) { Stmts: []ast.Vertex{}, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1840,7 +1840,7 @@ func TestName(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1915,7 +1915,7 @@ func TestFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1990,7 +1990,7 @@ func TestRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2068,7 +2068,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2144,7 +2144,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2231,7 +2231,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2328,7 +2328,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2436,7 +2436,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2512,7 +2512,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2609,7 +2609,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2716,7 +2716,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2807,7 +2807,7 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2898,7 +2898,7 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2957,7 +2957,7 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3002,7 +3002,7 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3061,7 +3061,7 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3105,7 +3105,7 @@ func TestScalarMagicConstant(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3148,7 +3148,7 @@ func TestScalarNumber_LNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3191,7 +3191,7 @@ func TestScalarNumber_DNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3234,7 +3234,7 @@ func TestScalarNumber_Float(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3277,7 +3277,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3320,7 +3320,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3363,7 +3363,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3406,7 +3406,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3449,7 +3449,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3492,7 +3492,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3537,7 +3537,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3580,7 +3580,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3625,7 +3625,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3694,7 +3694,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3806,7 +3806,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3895,7 +3895,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4072,7 +4072,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4206,7 +4206,7 @@ func TestStmtClassConstList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4327,7 +4327,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4405,7 +4405,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4553,7 +4553,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4678,7 +4678,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4792,7 +4792,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4918,7 +4918,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4962,7 +4962,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5019,7 +5019,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5109,7 +5109,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5201,7 +5201,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5316,7 +5316,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5470,7 +5470,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5568,7 +5568,7 @@ func TestStmtConstList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5633,7 +5633,7 @@ func TestStmtContinue_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5709,7 +5709,7 @@ func TestStmtContinue_Light(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5785,7 +5785,7 @@ func TestStmtContinue(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5861,7 +5861,7 @@ func TestStmtDeclare(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5970,7 +5970,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6048,7 +6048,7 @@ func TestStmtDeclare_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6102,7 +6102,7 @@ func TestStmtDo(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6168,7 +6168,7 @@ func TestStmtEcho(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6223,7 +6223,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6266,7 +6266,7 @@ func TestStmtExpression(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6461,7 +6461,7 @@ func TestStmtFor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6581,7 +6581,7 @@ func TestStmtFor_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6666,7 +6666,7 @@ func TestStmtForeach(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6741,7 +6741,7 @@ func TestStmtForeach_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6826,7 +6826,7 @@ func TestStmtForeach_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6932,7 +6932,7 @@ func TestStmtForeach_WithKey(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7028,7 +7028,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7144,7 +7144,7 @@ func TestStmtForeach_WithRef(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7272,7 +7272,7 @@ func TestStmtForeach_WithList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7317,7 +7317,7 @@ func TestStmtFunction(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7373,7 +7373,7 @@ func TestStmtFunction_Return(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7540,7 +7540,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7607,7 +7607,7 @@ func TestStmtFunction_Ref(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7675,7 +7675,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7730,7 +7730,7 @@ func TestStmtGlobal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7890,7 +7890,7 @@ func TestStmtGlobal_Vars(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7954,7 +7954,7 @@ func TestStmtGotoLabel(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7986,7 +7986,7 @@ func TestStmtHaltCompiler(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8050,7 +8050,7 @@ func TestStmtIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8158,7 +8158,7 @@ func TestStmtIf_ElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8243,7 +8243,7 @@ func TestStmtIf_Else(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8414,7 +8414,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8595,7 +8595,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8638,7 +8638,7 @@ func TestStmtInlineHtml(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8682,7 +8682,7 @@ func TestStmtInterface(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8761,7 +8761,7 @@ func TestStmtInterface_Extend(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8863,7 +8863,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8918,7 +8918,7 @@ func TestStmtNamespace(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8974,7 +8974,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9007,7 +9007,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9108,7 +9108,7 @@ func TestStmtProperty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9262,7 +9262,7 @@ func TestStmtProperty_Properties(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9416,7 +9416,7 @@ func TestStmtProperty_Properties2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9540,7 +9540,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9605,7 +9605,7 @@ func TestStmtStaticVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9712,7 +9712,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9819,7 +9819,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9945,7 +9945,7 @@ func TestStmtSwitch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10071,7 +10071,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10187,7 +10187,7 @@ func TestStmtSwitch_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10291,7 +10291,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10344,7 +10344,7 @@ func TestStmtThrow(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10388,7 +10388,7 @@ func TestStmtTrait(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10478,7 +10478,7 @@ func TestStmtTraitUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10591,7 +10591,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10704,7 +10704,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10861,7 +10861,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11029,7 +11029,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11311,7 +11311,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11347,7 +11347,7 @@ func TestStmtTry_Try(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11441,7 +11441,7 @@ func TestStmtTry_TryCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11558,7 +11558,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11709,7 +11709,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11814,7 +11814,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12020,7 +12020,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12075,7 +12075,7 @@ func TestStmtUnset(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12151,7 +12151,7 @@ func TestStmtUnset_Vars(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12227,7 +12227,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12294,7 +12294,7 @@ func TestStmtUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12361,7 +12361,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12439,7 +12439,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12539,7 +12539,7 @@ func TestStmtUse_List(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12650,7 +12650,7 @@ func TestStmtUse_ListAlias(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12761,7 +12761,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12894,7 +12894,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13005,7 +13005,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13138,7 +13138,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13261,7 +13261,7 @@ func TestStmtUse_GroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13395,7 +13395,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13529,7 +13529,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13663,7 +13663,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13808,7 +13808,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13873,7 +13873,7 @@ func TestStmtBreak_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13949,7 +13949,7 @@ func TestStmtBreak_Light(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14025,7 +14025,7 @@ func TestStmtBreak(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14101,7 +14101,7 @@ func TestExprArrayDimFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14196,7 +14196,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14239,7 +14239,7 @@ func TestExprArray(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14304,7 +14304,7 @@ func TestExprArray_Item(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14422,7 +14422,7 @@ func TestExprArray_Items(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14498,7 +14498,7 @@ func TestExprArray_ItemUnpack(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14563,7 +14563,7 @@ func TestExprArrowFunction(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14651,7 +14651,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14714,7 +14714,7 @@ func TestExprBitwiseNot(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14777,7 +14777,7 @@ func TestExprBooleanNot(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14853,7 +14853,7 @@ func TestExprClassConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14917,7 +14917,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14980,7 +14980,7 @@ func TestExprClone_Brackets(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15043,7 +15043,7 @@ func TestExprClone(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15088,7 +15088,7 @@ func TestExprClosure(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15265,7 +15265,7 @@ func TestExprClosure_Use(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15442,7 +15442,7 @@ func TestExprClosure_Use2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15510,7 +15510,7 @@ func TestExprClosure_ReturnType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15575,7 +15575,7 @@ func TestExprConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15640,7 +15640,7 @@ func TestExprConstFetch_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15705,7 +15705,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15768,7 +15768,7 @@ func TestExprEmpty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15831,7 +15831,7 @@ func TestExprErrorSuppress(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15894,7 +15894,7 @@ func TestExprEval(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15937,7 +15937,7 @@ func TestExprExit(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15980,7 +15980,7 @@ func TestExprExit_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16044,7 +16044,7 @@ func TestExprExit_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16087,7 +16087,7 @@ func TestExprDie(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16130,7 +16130,7 @@ func TestExprDie_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16194,7 +16194,7 @@ func TestExprDie_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16269,7 +16269,7 @@ func TestExprFunctionCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16344,7 +16344,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16444,7 +16444,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16562,7 +16562,7 @@ func TestExprFunctionCall_Var(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16693,7 +16693,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16756,7 +16756,7 @@ func TestExprPostDec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16819,7 +16819,7 @@ func TestExprPostInc(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16882,7 +16882,7 @@ func TestExprPreDec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16945,7 +16945,7 @@ func TestExprPreInc(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17008,7 +17008,7 @@ func TestExprInclude(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17071,7 +17071,7 @@ func TestExprInclude_Once(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17134,7 +17134,7 @@ func TestExprRequire(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17197,7 +17197,7 @@ func TestExprRequire_Once(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17283,7 +17283,7 @@ func TestExprInstanceOf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17369,7 +17369,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17455,7 +17455,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17520,7 +17520,7 @@ func TestExprIsset(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17606,7 +17606,7 @@ func TestExprIsset_Variables(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17680,7 +17680,7 @@ func TestExprList_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17786,7 +17786,7 @@ func TestExprList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17902,7 +17902,7 @@ func TestExprList_ArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18030,7 +18030,7 @@ func TestExprList_List(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18137,7 +18137,7 @@ func TestExprList_EmptyItem(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18246,7 +18246,7 @@ func TestExprList_EmptyItems(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18330,7 +18330,7 @@ func TestExprMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18395,7 +18395,7 @@ func TestExprNew(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18470,7 +18470,7 @@ func TestExprNew_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18545,7 +18545,7 @@ func TestExprNew_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18676,7 +18676,7 @@ func TestExprNew_Anonymous(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18739,7 +18739,7 @@ func TestExprPrint(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18813,7 +18813,7 @@ func TestExprPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18930,7 +18930,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19006,7 +19006,7 @@ func TestExprShellExec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19049,7 +19049,7 @@ func TestExprShortArray(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19114,7 +19114,7 @@ func TestExprShortArray_Item(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19232,7 +19232,7 @@ func TestExprShortArray_Items(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19338,7 +19338,7 @@ func TestExprShortList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19454,7 +19454,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19582,7 +19582,7 @@ func TestExprShortList_List(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19668,7 +19668,7 @@ func TestExprStaticCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19754,7 +19754,7 @@ func TestExprStaticCall_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19840,7 +19840,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19936,7 +19936,7 @@ func TestExprStaticCall_Var(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20030,7 +20030,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20116,7 +20116,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20202,7 +20202,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20288,7 +20288,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20393,7 +20393,7 @@ func TestExprTernary(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20477,7 +20477,7 @@ func TestExprTernary_Simple(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20634,7 +20634,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20791,7 +20791,7 @@ func TestExprTernary_NestedCond(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20854,7 +20854,7 @@ func TestExprUnaryMinus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20917,7 +20917,7 @@ func TestExprUnaryPlus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20970,7 +20970,7 @@ func TestExprVariable(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21033,7 +21033,7 @@ func TestExprVariable_Variable(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21075,7 +21075,7 @@ func TestExprYield(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21138,7 +21138,7 @@ func TestExprYield_Val(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21222,7 +21222,7 @@ func TestExprYield_KeyVal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21275,7 +21275,7 @@ func TestExprYield_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21349,7 +21349,7 @@ func TestExprYield_KeyExpr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21412,7 +21412,7 @@ func TestExprYieldFrom(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21498,7 +21498,7 @@ func TestExprAssign_Assign(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21582,7 +21582,7 @@ func TestExprAssign_Reference(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21678,7 +21678,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21819,7 +21819,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21903,7 +21903,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21987,7 +21987,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22071,7 +22071,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22155,7 +22155,7 @@ func TestExprAssign_Concat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22239,7 +22239,7 @@ func TestExprAssign_Div(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22323,7 +22323,7 @@ func TestExprAssign_Minus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22407,7 +22407,7 @@ func TestExprAssign_Mod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22491,7 +22491,7 @@ func TestExprAssign_Mul(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22575,7 +22575,7 @@ func TestExprAssign_Plus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22659,7 +22659,7 @@ func TestExprAssign_Pow(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22743,7 +22743,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22827,7 +22827,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22911,7 +22911,7 @@ func TestExprAssign_Coalesce(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22997,7 +22997,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23081,7 +23081,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23165,7 +23165,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23249,7 +23249,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23333,7 +23333,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23417,7 +23417,7 @@ func TestExprBinary_Coalesce(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23501,7 +23501,7 @@ func TestExprBinary_Concat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23585,7 +23585,7 @@ func TestExprBinary_Div(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23669,7 +23669,7 @@ func TestExprBinary_Equal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23753,7 +23753,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23837,7 +23837,7 @@ func TestExprBinary_Greater(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23921,7 +23921,7 @@ func TestExprBinary_Identical(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24005,7 +24005,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24089,7 +24089,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24173,7 +24173,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24257,7 +24257,7 @@ func TestExprBinary_Minus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24341,7 +24341,7 @@ func TestExprBinary_Mod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24425,7 +24425,7 @@ func TestExprBinary_Mul(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24509,7 +24509,7 @@ func TestExprBinary_NotEqual(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24593,7 +24593,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24677,7 +24677,7 @@ func TestExprBinary_Plus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24761,7 +24761,7 @@ func TestExprBinary_Pow(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24845,7 +24845,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24929,7 +24929,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25013,7 +25013,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25097,7 +25097,7 @@ func TestExprBinary_Smaller(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25181,7 +25181,7 @@ func TestExprBinary_Spaceship(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25246,7 +25246,7 @@ func TestExprCast_Array(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25309,7 +25309,7 @@ func TestExprCast_Bool(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25372,7 +25372,7 @@ func TestExprCast_BoolShort(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25435,7 +25435,7 @@ func TestExprCast_Double(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25498,7 +25498,7 @@ func TestExprCast_CastFloat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25561,7 +25561,7 @@ func TestExprCast_Int(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25624,7 +25624,7 @@ func TestExprCast_IntShort(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25687,7 +25687,7 @@ func TestExprCast_Object(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25750,7 +25750,7 @@ func TestExprCast_String(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25813,7 +25813,7 @@ func TestExprCast_BinaryString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25876,7 +25876,7 @@ func TestExprCast_Unset(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/internal/php7/php7_bench_test.go b/internal/php7/php7_bench_test.go index a5a9aee..8058be7 100644 --- a/internal/php7/php7_bench_test.go +++ b/internal/php7/php7_bench_test.go @@ -381,7 +381,7 @@ CAD; ` for n := 0; n < b.N; n++ { - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() } } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 5e0268a..7b78b29 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -19633,7 +19633,7 @@ func TestPhp7(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19770,7 +19770,7 @@ func TestPhp5Strings(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19996,7 +19996,7 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20016,7 +20016,7 @@ func TestPhp7ControlCharsErrors(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4") + php7parser := php7.NewParser([]byte(src), "7.4", false) php7parser.Parse() actual := php7parser.GetErrors() assert.DeepEqual(t, expected, actual) diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 60aaec9..4b242d3 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -13,37 +13,42 @@ import ( type Scanner interface { Lex() *Token ReturnTokenToPool(t *Token) - GetWithHiddenTokens() bool - SetWithHiddenTokens(bool) +} + +type Config struct { + WithHiddenTokens bool + ErrHandlerFunc func(*errors.Error) } type Lexer struct { - data []byte - errHandlerFunc func(*errors.Error) + data []byte + phpVersion string + withHiddenTokens bool + errHandlerFunc func(*errors.Error) + + p, pe, cs int + ts, te, act int + stack []int + top int - p, pe, cs int - ts, te, act int - stack []int - top int heredocLabel []byte - - TokenPool *TokenPool - HiddenTokens []token.Token - WithHiddenTokens bool - NewLines NewLines - PHPVersion string + tokenPool *TokenPool + hiddenTokens []token.Token + newLines NewLines } -func NewLexer(data []byte, errHandlerFunc func(*errors.Error)) *Lexer { +func NewLexer(data []byte, phpVersion string, config Config) *Lexer { lex := &Lexer{ - data: data, - errHandlerFunc: errHandlerFunc, + data: data, + phpVersion: phpVersion, + errHandlerFunc: config.ErrHandlerFunc, + withHiddenTokens: config.WithHiddenTokens, pe: len(data), stack: make([]int, 0), - TokenPool: &TokenPool{}, - NewLines: NewLines{make([]int, 0, 128)}, + tokenPool: &TokenPool{}, + newLines: NewLines{make([]int, 0, 128)}, } initLexer(lex) @@ -51,31 +56,23 @@ func NewLexer(data []byte, errHandlerFunc func(*errors.Error)) *Lexer { return lex } -func (l *Lexer) ReturnTokenToPool(t *Token) { - l.TokenPool.Put(t) -} - -func (l *Lexer) GetWithHiddenTokens() bool { - return l.WithHiddenTokens -} - -func (l *Lexer) SetWithHiddenTokens(b bool) { - l.WithHiddenTokens = b +func (lex *Lexer) ReturnTokenToPool(t *Token) { + lex.tokenPool.Put(t) } func (lex *Lexer) setTokenPosition(token *Token) { - token.Position.StartLine = lex.NewLines.GetLine(lex.ts) - token.Position.EndLine = lex.NewLines.GetLine(lex.te - 1) + token.Position.StartLine = lex.newLines.GetLine(lex.ts) + token.Position.EndLine = lex.newLines.GetLine(lex.te - 1) token.Position.StartPos = lex.ts token.Position.EndPos = lex.te } -func (lex *Lexer) addToken(id TokenID, ps, pe int) { - if !lex.WithHiddenTokens { +func (lex *Lexer) addHiddenToken(id TokenID, ps, pe int) { + if !lex.withHiddenTokens { return } - lex.HiddenTokens = append(lex.HiddenTokens, token.Token{ + lex.hiddenTokens = append(lex.hiddenTokens, token.Token{ ID: token.ID(id), Value: lex.data[ps:pe], }) @@ -112,7 +109,7 @@ func (lex *Lexer) isNotStringEnd(s byte) bool { } func (lex *Lexer) isHeredocEnd(p int) bool { - r, err := version.Compare(lex.PHPVersion, "7.3") + r, err := version.Compare(lex.phpVersion, "7.3") if err != nil { return lex.isHeredocEndSince73(p) } @@ -239,8 +236,8 @@ func (lex *Lexer) error(msg string) { } pos := position.NewPosition( - lex.NewLines.GetLine(lex.ts), - lex.NewLines.GetLine(lex.te-1), + lex.newLines.GetLine(lex.ts), + lex.newLines.GetLine(lex.te-1), lex.ts, lex.te, ) diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 576f19a..0a3ecd8 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -33,7 +33,7 @@ const lexer_en_halt_compiller_end int = 526 func initLexer(lex *Lexer) { - // line internal/scanner/scanner.go:41 +// line internal/scanner/scanner.go:41 { lex.cs = lexer_start lex.top = 0 @@ -42,15 +42,15 @@ func initLexer(lex *Lexer) { lex.act = 0 } - // line internal/scanner/scanner.rl:19 +// line internal/scanner/scanner.rl:19 } func (lex *Lexer) Lex() *Token { - lex.HiddenTokens = nil + lex.hiddenTokens = nil eof := lex.pe var tok TokenID - token := lex.TokenPool.Get() + token := lex.tokenPool.Get() token.Hidden = nil token.Value = lex.data[0:0] @@ -59,7 +59,7 @@ func (lex *Lexer) Lex() *Token { _, _ = lblStart, lblEnd - // line internal/scanner/scanner.go:68 +// line internal/scanner/scanner.go:68 { var _widec int16 if (lex.p) == (lex.pe) { @@ -2196,7 +2196,7 @@ func (lex *Lexer) Lex() *Token { goto st_out tr0: lex.cs = 111 - // line internal/scanner/scanner.rl:130 +// line internal/scanner/scanner.rl:130 (lex.p) = (lex.te) - 1 { lex.cs = 114 @@ -2205,7 +2205,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr162: lex.cs = 111 - // line internal/scanner/scanner.rl:130 +// line internal/scanner/scanner.rl:130 lex.te = (lex.p) + 1 { lex.cs = 114 @@ -2214,7 +2214,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr164: lex.cs = 111 - // line internal/scanner/scanner.rl:130 +// line internal/scanner/scanner.rl:130 lex.te = (lex.p) (lex.p)-- { @@ -2223,33 +2223,33 @@ func (lex *Lexer) Lex() *Token { } goto _again tr165: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:127 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:127 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) } goto st111 st111: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof111 } st_case_111: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2252 +// line internal/scanner/scanner.go:2252 if lex.data[(lex.p)] == 35 { goto tr163 } goto tr162 tr163: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st112 @@ -2258,7 +2258,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof112 } st_case_112: - // line internal/scanner/scanner.go:2267 +// line internal/scanner/scanner.go:2267 if lex.data[(lex.p)] == 33 { goto st1 } @@ -2280,25 +2280,25 @@ func (lex *Lexer) Lex() *Token { goto tr165 tr3: lex.cs = 114 - // line internal/scanner/scanner.rl:143 +// line internal/scanner/scanner.rl:143 (lex.p) = (lex.te) - 1 { - lex.addToken(T_OPEN_TAG, lex.ts, lex.te) + lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.te) lex.cs = 121 } goto _again tr6: lex.cs = 114 - // line internal/scanner/scanner.rl:147 +// line internal/scanner/scanner.rl:147 lex.te = (lex.p) + 1 { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addToken(T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 121 } goto _again tr169: - // line internal/scanner/scanner.rl:137 +// line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2313,9 +2313,9 @@ func (lex *Lexer) Lex() *Token { } goto st114 tr171: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:137 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2331,17 +2331,17 @@ func (lex *Lexer) Lex() *Token { goto st114 tr176: lex.cs = 114 - // line internal/scanner/scanner.rl:143 +// line internal/scanner/scanner.rl:143 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_OPEN_TAG, lex.ts, lex.te) + lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.te) lex.cs = 121 } goto _again tr177: lex.cs = 114 - // line internal/scanner/scanner.rl:152 +// line internal/scanner/scanner.rl:152 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -2355,29 +2355,29 @@ func (lex *Lexer) Lex() *Token { goto _again tr179: lex.cs = 114 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:147 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:147 lex.te = (lex.p) (lex.p)-- { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addToken(T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 121 } goto _again st114: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof114 } st_case_114: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2375 +// line internal/scanner/scanner.go:2375 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2386,15 +2386,15 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr172: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st115 st115: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof115 } st_case_115: - // line internal/scanner/scanner.go:2392 +// line internal/scanner/scanner.go:2392 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2403,15 +2403,15 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr173: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st116 st116: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof116 } st_case_116: - // line internal/scanner/scanner.go:2409 +// line internal/scanner/scanner.go:2409 switch lex.data[(lex.p)] { case 10: goto tr173 @@ -2420,15 +2420,15 @@ func (lex *Lexer) Lex() *Token { } goto tr172 tr174: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st117 st117: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof117 } st_case_117: - // line internal/scanner/scanner.go:2426 +// line internal/scanner/scanner.go:2426 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2453,7 +2453,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr175: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st119 @@ -2462,7 +2462,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof119 } st_case_119: - // line internal/scanner/scanner.go:2460 +// line internal/scanner/scanner.go:2460 switch lex.data[(lex.p)] { case 61: goto tr177 @@ -2528,15 +2528,15 @@ func (lex *Lexer) Lex() *Token { } goto tr3 tr9: - // line internal/scanner/scanner.rl:161 +// line internal/scanner/scanner.rl:161 (lex.p) = (lex.te) - 1 { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st121 tr11: lex.cs = 121 - // line NONE:1 +// line NONE:1 switch lex.act { case 10: { @@ -3348,7 +3348,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr14: - // line internal/scanner/scanner.rl:351 +// line internal/scanner/scanner.rl:351 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3361,7 +3361,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr18: - // line internal/scanner/scanner.rl:374 +// line internal/scanner/scanner.rl:374 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] @@ -3369,7 +3369,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr22: - // line internal/scanner/scanner.rl:336 +// line internal/scanner/scanner.rl:336 (lex.p) = (lex.te) - 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3384,7 +3384,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr37: - // line internal/scanner/scanner.rl:311 +// line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3397,7 +3397,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr44: - // line internal/scanner/scanner.rl:316 +// line internal/scanner/scanner.rl:316 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3410,7 +3410,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr48: - // line internal/scanner/scanner.rl:312 +// line internal/scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3423,7 +3423,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr56: - // line internal/scanner/scanner.rl:313 +// line internal/scanner/scanner.rl:313 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3436,7 +3436,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr63: - // line internal/scanner/scanner.rl:314 +// line internal/scanner/scanner.rl:314 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3449,7 +3449,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr72: - // line internal/scanner/scanner.rl:315 +// line internal/scanner/scanner.rl:315 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3462,7 +3462,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr83: - // line internal/scanner/scanner.rl:317 +// line internal/scanner/scanner.rl:317 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3475,7 +3475,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr84: - // line internal/scanner/scanner.rl:279 +// line internal/scanner/scanner.rl:279 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3488,7 +3488,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr87: - // line internal/scanner/scanner.rl:165 +// line internal/scanner/scanner.rl:165 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3501,7 +3501,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr95: - // line internal/scanner/scanner.rl:323 +// line internal/scanner/scanner.rl:323 lex.te = (lex.p) + 1 { isDocComment := false @@ -3510,14 +3510,14 @@ func (lex *Lexer) Lex() *Token { } if isDocComment { - lex.addToken(T_DOC_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) } } goto st121 tr96: - // line internal/scanner/scanner.rl:176 +// line internal/scanner/scanner.rl:176 (lex.p) = (lex.te) - 1 { base := 10 @@ -3549,7 +3549,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr109: lex.cs = 121 - // line internal/scanner/scanner.rl:163 +// line internal/scanner/scanner.rl:163 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3563,7 +3563,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr125: lex.cs = 121 - // line internal/scanner/scanner.rl:162 +// line internal/scanner/scanner.rl:162 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3576,7 +3576,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr127: - // line internal/scanner/scanner.rl:347 +// line internal/scanner/scanner.rl:347 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3589,7 +3589,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr129: - // line internal/scanner/scanner.rl:260 +// line internal/scanner/scanner.rl:260 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3602,7 +3602,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr140: - // line internal/scanner/scanner.rl:259 +// line internal/scanner/scanner.rl:259 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3615,7 +3615,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr180: - // line internal/scanner/scanner.rl:374 +// line internal/scanner/scanner.rl:374 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3623,7 +3623,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr191: - // line internal/scanner/scanner.rl:336 +// line internal/scanner/scanner.rl:336 lex.te = (lex.p) + 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3638,7 +3638,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr225: - // line internal/scanner/scanner.rl:278 +// line internal/scanner/scanner.rl:278 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3652,7 +3652,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr228: lex.cs = 121 - // line internal/scanner/scanner.rl:371 +// line internal/scanner/scanner.rl:371 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3665,7 +3665,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr229: - // line internal/scanner/scanner.rl:344 +// line internal/scanner/scanner.rl:344 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3675,7 +3675,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr231: - // line internal/scanner/scanner.rl:345 +// line internal/scanner/scanner.rl:345 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3685,25 +3685,25 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr232: - // line internal/scanner/scanner.rl:161 +// line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st121 tr234: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:161 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st121 tr238: - // line internal/scanner/scanner.rl:374 +// line internal/scanner/scanner.rl:374 lex.te = (lex.p) (lex.p)-- { @@ -3712,7 +3712,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr239: - // line internal/scanner/scanner.rl:336 +// line internal/scanner/scanner.rl:336 lex.te = (lex.p) (lex.p)-- { @@ -3728,7 +3728,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr241: - // line internal/scanner/scanner.rl:297 +// line internal/scanner/scanner.rl:297 lex.te = (lex.p) (lex.p)-- { @@ -3742,7 +3742,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr242: - // line internal/scanner/scanner.rl:298 +// line internal/scanner/scanner.rl:298 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3756,7 +3756,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr243: lex.cs = 121 - // line internal/scanner/scanner.rl:372 +// line internal/scanner/scanner.rl:372 lex.te = (lex.p) (lex.p)-- { @@ -3770,27 +3770,27 @@ func (lex *Lexer) Lex() *Token { } goto _again tr244: - // line internal/scanner/scanner.rl:319 +// line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) } goto st121 tr246: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:319 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) } goto st121 tr250: - // line internal/scanner/scanner.rl:346 +// line internal/scanner/scanner.rl:346 lex.te = (lex.p) (lex.p)-- { @@ -3804,7 +3804,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr251: - // line internal/scanner/scanner.rl:292 +// line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3817,7 +3817,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr252: - // line internal/scanner/scanner.rl:281 +// line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3830,7 +3830,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr253: - // line internal/scanner/scanner.rl:283 +// line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3843,7 +3843,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr255: - // line internal/scanner/scanner.rl:286 +// line internal/scanner/scanner.rl:286 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3856,7 +3856,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr256: - // line internal/scanner/scanner.rl:305 +// line internal/scanner/scanner.rl:305 lex.te = (lex.p) (lex.p)-- { @@ -3870,7 +3870,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr257: - // line internal/scanner/scanner.rl:287 +// line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3883,7 +3883,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr258: - // line internal/scanner/scanner.rl:294 +// line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3896,7 +3896,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr259: - // line internal/scanner/scanner.rl:289 +// line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3909,7 +3909,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr260: - // line internal/scanner/scanner.rl:293 +// line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3922,7 +3922,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr261: - // line internal/scanner/scanner.rl:290 +// line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3936,7 +3936,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr262: lex.cs = 121 - // line internal/scanner/scanner.rl:349 +// line internal/scanner/scanner.rl:349 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3949,7 +3949,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr264: - // line internal/scanner/scanner.rl:285 +// line internal/scanner/scanner.rl:285 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3962,7 +3962,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr265: - // line internal/scanner/scanner.rl:165 +// line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { @@ -3976,7 +3976,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr268: - // line internal/scanner/scanner.rl:288 +// line internal/scanner/scanner.rl:288 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3989,7 +3989,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr269: - // line internal/scanner/scanner.rl:176 +// line internal/scanner/scanner.rl:176 lex.te = (lex.p) (lex.p)-- { @@ -4021,7 +4021,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr274: - // line internal/scanner/scanner.rl:166 +// line internal/scanner/scanner.rl:166 lex.te = (lex.p) (lex.p)-- { @@ -4048,7 +4048,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr275: - // line internal/scanner/scanner.rl:191 +// line internal/scanner/scanner.rl:191 lex.te = (lex.p) (lex.p)-- { @@ -4075,7 +4075,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr276: - // line internal/scanner/scanner.rl:280 +// line internal/scanner/scanner.rl:280 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4089,7 +4089,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr277: lex.cs = 121 - // line internal/scanner/scanner.rl:163 +// line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4104,9 +4104,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr279: lex.cs = 121 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:163 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4120,7 +4120,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr282: - // line internal/scanner/scanner.rl:297 +// line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4133,7 +4133,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr283: - // line internal/scanner/scanner.rl:306 +// line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { @@ -4147,7 +4147,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr284: - // line internal/scanner/scanner.rl:301 +// line internal/scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4161,9 +4161,9 @@ func (lex *Lexer) Lex() *Token { goto st121 tr285: lex.cs = 121 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:357 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:357 lex.te = (lex.p) (lex.p)-- { @@ -4185,7 +4185,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr286: - // line internal/scanner/scanner.rl:304 +// line internal/scanner/scanner.rl:304 lex.te = (lex.p) (lex.p)-- { @@ -4199,7 +4199,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr287: - // line internal/scanner/scanner.rl:296 +// line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4212,7 +4212,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr289: - // line internal/scanner/scanner.rl:295 +// line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4225,7 +4225,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr290: - // line internal/scanner/scanner.rl:299 +// line internal/scanner/scanner.rl:299 lex.te = (lex.p) (lex.p)-- { @@ -4239,7 +4239,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr291: - // line internal/scanner/scanner.rl:300 +// line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4252,7 +4252,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr292: - // line internal/scanner/scanner.rl:303 +// line internal/scanner/scanner.rl:303 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4265,7 +4265,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr294: - // line internal/scanner/scanner.rl:307 +// line internal/scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { @@ -4279,7 +4279,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr295: - // line internal/scanner/scanner.rl:302 +// line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4293,7 +4293,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr298: lex.cs = 121 - // line internal/scanner/scanner.rl:162 +// line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4308,9 +4308,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr300: lex.cs = 121 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:162 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4324,7 +4324,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr301: - // line internal/scanner/scanner.rl:308 +// line internal/scanner/scanner.rl:308 lex.te = (lex.p) (lex.p)-- { @@ -4338,7 +4338,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr302: - // line internal/scanner/scanner.rl:309 +// line internal/scanner/scanner.rl:309 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4351,7 +4351,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr303: - // line internal/scanner/scanner.rl:347 +// line internal/scanner/scanner.rl:347 lex.te = (lex.p) (lex.p)-- { @@ -4365,7 +4365,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr383: - // line internal/scanner/scanner.rl:217 +// line internal/scanner/scanner.rl:217 lex.te = (lex.p) (lex.p)-- { @@ -4379,7 +4379,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr403: - // line internal/scanner/scanner.rl:221 +// line internal/scanner/scanner.rl:221 lex.te = (lex.p) (lex.p)-- { @@ -4393,7 +4393,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr432: - // line internal/scanner/scanner.rl:229 +// line internal/scanner/scanner.rl:229 lex.te = (lex.p) (lex.p)-- { @@ -4407,7 +4407,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr436: - // line internal/scanner/scanner.rl:231 +// line internal/scanner/scanner.rl:231 lex.te = (lex.p) (lex.p)-- { @@ -4421,7 +4421,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr468: - // line internal/scanner/scanner.rl:261 +// line internal/scanner/scanner.rl:261 lex.te = (lex.p) (lex.p)-- { @@ -4435,7 +4435,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr536: - // line internal/scanner/scanner.rl:263 +// line internal/scanner/scanner.rl:263 lex.te = (lex.p) (lex.p)-- { @@ -4449,7 +4449,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr582: - // line internal/scanner/scanner.rl:260 +// line internal/scanner/scanner.rl:260 lex.te = (lex.p) (lex.p)-- { @@ -4463,7 +4463,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr587: - // line internal/scanner/scanner.rl:291 +// line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4476,7 +4476,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr661: - // line internal/scanner/scanner.rl:284 +// line internal/scanner/scanner.rl:284 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4489,7 +4489,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr662: - // line internal/scanner/scanner.rl:282 +// line internal/scanner/scanner.rl:282 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4502,17 +4502,17 @@ func (lex *Lexer) Lex() *Token { } goto st121 st121: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof121 } st_case_121: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:3377 +// line internal/scanner/scanner.go:3377 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4689,23 +4689,23 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr181: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st122 tr235: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st122 st122: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof122 } st_case_122: - // line internal/scanner/scanner.go:3570 +// line internal/scanner/scanner.go:3570 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4719,23 +4719,23 @@ func (lex *Lexer) Lex() *Token { } goto tr232 tr10: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st123 tr236: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st123 st123: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof123 } st_case_123: - // line internal/scanner/scanner.go:3600 +// line internal/scanner/scanner.go:3600 switch lex.data[(lex.p)] { case 10: goto tr236 @@ -4749,15 +4749,15 @@ func (lex *Lexer) Lex() *Token { } goto tr234 tr237: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st6 st6: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof6 } st_case_6: - // line internal/scanner/scanner.go:3622 +// line internal/scanner/scanner.go:3622 if lex.data[(lex.p)] == 10 { goto tr10 } @@ -4790,10 +4790,10 @@ func (lex *Lexer) Lex() *Token { } goto tr241 tr184: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:372 +// line internal/scanner/scanner.rl:372 lex.act = 140 goto st127 st127: @@ -4801,7 +4801,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof127 } st_case_127: - // line internal/scanner/scanner.go:3666 +// line internal/scanner/scanner.go:3666 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4818,14 +4818,14 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr13: - // line internal/scanner/scanner.rl:39 +// line internal/scanner/scanner.rl:39 if lex.data[lex.p] == '\n' { - lex.NewLines.Append(lex.p) + lex.newLines.Append(lex.p) } if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.NewLines.Append(lex.p) + lex.newLines.Append(lex.p) } goto st7 @@ -4834,7 +4834,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof7 } st_case_7: - // line internal/scanner/scanner.go:3699 +// line internal/scanner/scanner.go:3699 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4911,15 +4911,15 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr247: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st128 st128: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof128 } st_case_128: - // line internal/scanner/scanner.go:3784 +// line internal/scanner/scanner.go:3784 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -4966,15 +4966,15 @@ func (lex *Lexer) Lex() *Token { } goto tr244 tr248: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st129 st129: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof129 } st_case_129: - // line internal/scanner/scanner.go:3839 +// line internal/scanner/scanner.go:3839 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5089,7 +5089,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr189: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st134 @@ -5098,7 +5098,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof134 } st_case_134: - // line internal/scanner/scanner.go:3963 +// line internal/scanner/scanner.go:3963 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5111,14 +5111,14 @@ func (lex *Lexer) Lex() *Token { } goto st11 tr20: - // line internal/scanner/scanner.rl:39 +// line internal/scanner/scanner.rl:39 if lex.data[lex.p] == '\n' { - lex.NewLines.Append(lex.p) + lex.newLines.Append(lex.p) } if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.NewLines.Append(lex.p) + lex.newLines.Append(lex.p) } goto st11 @@ -5127,7 +5127,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:3992 +// line internal/scanner/scanner.go:3992 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5152,7 +5152,7 @@ func (lex *Lexer) Lex() *Token { } goto st11 tr190: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st135 @@ -5161,7 +5161,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof135 } st_case_135: - // line internal/scanner/scanner.go:4026 +// line internal/scanner/scanner.go:4026 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6000,7 +6000,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr195: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st140 @@ -6009,7 +6009,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof140 } st_case_140: - // line internal/scanner/scanner.go:4874 +// line internal/scanner/scanner.go:4874 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6030,10 +6030,10 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr88: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 +// line internal/scanner/scanner.rl:165 lex.act = 10 goto st141 st141: @@ -6041,7 +6041,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof141 } st_case_141: - // line internal/scanner/scanner.go:4906 +// line internal/scanner/scanner.go:4906 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6079,10 +6079,10 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr86: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 +// line internal/scanner/scanner.rl:165 lex.act = 10 goto st142 st142: @@ -6090,7 +6090,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:4955 +// line internal/scanner/scanner.go:4955 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6108,7 +6108,7 @@ func (lex *Lexer) Lex() *Token { } goto tr87 tr196: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st143 @@ -6117,7 +6117,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:4982 +// line internal/scanner/scanner.go:4982 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6128,15 +6128,15 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr92: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st71 st71: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5001 +// line internal/scanner/scanner.go:5001 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6145,15 +6145,15 @@ func (lex *Lexer) Lex() *Token { } goto st71 tr93: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st72 st72: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5018 +// line internal/scanner/scanner.go:5018 switch lex.data[(lex.p)] { case 10: goto tr93 @@ -6162,15 +6162,15 @@ func (lex *Lexer) Lex() *Token { } goto tr92 tr94: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st73 st73: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5035 +// line internal/scanner/scanner.go:5035 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6181,10 +6181,10 @@ func (lex *Lexer) Lex() *Token { } goto st71 tr197: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:176 +// line internal/scanner/scanner.rl:176 lex.act = 12 goto st144 st144: @@ -6192,7 +6192,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5057 +// line internal/scanner/scanner.go:5057 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6212,10 +6212,10 @@ func (lex *Lexer) Lex() *Token { } goto tr269 tr270: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 +// line internal/scanner/scanner.rl:165 lex.act = 10 goto st145 st145: @@ -6223,7 +6223,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5088 +// line internal/scanner/scanner.go:5088 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6235,10 +6235,10 @@ func (lex *Lexer) Lex() *Token { } goto tr265 tr97: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:176 +// line internal/scanner/scanner.rl:176 lex.act = 12 goto st146 st146: @@ -6246,7 +6246,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5111 +// line internal/scanner/scanner.go:5111 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6280,10 +6280,10 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr98: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:166 +// line internal/scanner/scanner.rl:166 lex.act = 11 goto st147 st147: @@ -6291,7 +6291,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5156 +// line internal/scanner/scanner.go:5156 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6318,10 +6318,10 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr99: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:191 +// line internal/scanner/scanner.rl:191 lex.act = 13 goto st148 st148: @@ -6329,7 +6329,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5194 +// line internal/scanner/scanner.go:5194 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6356,7 +6356,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr199: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st150 @@ -6365,7 +6365,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5230 +// line internal/scanner/scanner.go:5230 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6381,15 +6381,15 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr104: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st77 st77: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5254 +// line internal/scanner/scanner.go:5254 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6405,15 +6405,15 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr105: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st78 st78: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5278 +// line internal/scanner/scanner.go:5278 switch lex.data[(lex.p)] { case 10: goto tr105 @@ -6429,35 +6429,35 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr106: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st79 st79: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5302 +// line internal/scanner/scanner.go:5302 if lex.data[(lex.p)] == 10 { goto st78 } goto tr22 tr107: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st80 st80: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5316 +// line internal/scanner/scanner.go:5316 if lex.data[(lex.p)] == 62 { goto tr108 } goto tr22 tr108: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st151 @@ -6466,7 +6466,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof151 } st_case_151: - // line internal/scanner/scanner.go:5331 +// line internal/scanner/scanner.go:5331 switch lex.data[(lex.p)] { case 10: goto st152 @@ -6504,10 +6504,10 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr280: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:306 +// line internal/scanner/scanner.rl:306 lex.act = 118 goto st154 st154: @@ -6515,7 +6515,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5380 +// line internal/scanner/scanner.go:5380 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6575,7 +6575,7 @@ func (lex *Lexer) Lex() *Token { } goto tr115 tr115: - // line internal/scanner/scanner.rl:36 +// line internal/scanner/scanner.rl:36 lblStart = lex.p goto st84 st84: @@ -6583,7 +6583,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5448 +// line internal/scanner/scanner.go:5448 switch lex.data[(lex.p)] { case 34: goto tr116 @@ -6609,7 +6609,7 @@ func (lex *Lexer) Lex() *Token { } goto st84 tr116: - // line internal/scanner/scanner.rl:37 +// line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st85 st85: @@ -6617,7 +6617,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5482 +// line internal/scanner/scanner.go:5482 switch lex.data[(lex.p)] { case 10: goto st155 @@ -6626,7 +6626,7 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr122: - // line internal/scanner/scanner.rl:37 +// line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st155 st155: @@ -6634,10 +6634,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof155 } st_case_155: - // line internal/scanner/scanner.go:5499 +// line internal/scanner/scanner.go:5499 goto tr285 tr123: - // line internal/scanner/scanner.rl:37 +// line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st86 st86: @@ -6645,7 +6645,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5510 +// line internal/scanner/scanner.go:5510 if lex.data[(lex.p)] == 10 { goto st155 } @@ -6672,7 +6672,7 @@ func (lex *Lexer) Lex() *Token { } goto tr120 tr120: - // line internal/scanner/scanner.rl:36 +// line internal/scanner/scanner.rl:36 lblStart = lex.p goto st88 st88: @@ -6680,7 +6680,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5545 +// line internal/scanner/scanner.go:5545 switch lex.data[(lex.p)] { case 39: goto tr116 @@ -6706,7 +6706,7 @@ func (lex *Lexer) Lex() *Token { } goto st88 tr114: - // line internal/scanner/scanner.rl:36 +// line internal/scanner/scanner.rl:36 lblStart = lex.p goto st89 st89: @@ -6714,7 +6714,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5579 +// line internal/scanner/scanner.go:5579 switch lex.data[(lex.p)] { case 10: goto tr122 @@ -6805,7 +6805,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr296: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st162 @@ -6814,7 +6814,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof162 } st_case_162: - // line internal/scanner/scanner.go:5679 +// line internal/scanner/scanner.go:5679 switch lex.data[(lex.p)] { case 10: goto st163 @@ -6890,493 +6890,493 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr211: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:347 +// line internal/scanner/scanner.rl:347 lex.act = 135 goto st166 tr307: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:204 +// line internal/scanner/scanner.rl:204 lex.act = 16 goto st166 tr313: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:202 +// line internal/scanner/scanner.rl:202 lex.act = 14 goto st166 tr314: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:275 +// line internal/scanner/scanner.rl:275 lex.act = 87 goto st166 tr317: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:203 +// line internal/scanner/scanner.rl:203 lex.act = 15 goto st166 tr322: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:205 +// line internal/scanner/scanner.rl:205 lex.act = 17 goto st166 tr334: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:206 +// line internal/scanner/scanner.rl:206 lex.act = 18 goto st166 tr335: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:207 +// line internal/scanner/scanner.rl:207 lex.act = 19 goto st166 tr337: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:208 +// line internal/scanner/scanner.rl:208 lex.act = 20 goto st166 tr344: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:233 +// line internal/scanner/scanner.rl:233 lex.act = 45 goto st166 tr348: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:209 +// line internal/scanner/scanner.rl:209 lex.act = 21 goto st166 tr350: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:210 +// line internal/scanner/scanner.rl:210 lex.act = 22 goto st166 tr354: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:211 +// line internal/scanner/scanner.rl:211 lex.act = 23 goto st166 tr358: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:212 +// line internal/scanner/scanner.rl:212 lex.act = 24 goto st166 tr361: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:215 +// line internal/scanner/scanner.rl:215 lex.act = 27 goto st166 tr367: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:213 +// line internal/scanner/scanner.rl:213 lex.act = 25 goto st166 tr371: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:214 +// line internal/scanner/scanner.rl:214 lex.act = 26 goto st166 tr372: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:227 +// line internal/scanner/scanner.rl:227 lex.act = 39 goto st166 tr380: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:216 +// line internal/scanner/scanner.rl:216 lex.act = 28 goto st166 tr385: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:218 +// line internal/scanner/scanner.rl:218 lex.act = 30 goto st166 tr388: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:219 +// line internal/scanner/scanner.rl:219 lex.act = 31 goto st166 tr400: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:220 +// line internal/scanner/scanner.rl:220 lex.act = 32 goto st166 tr407: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:222 +// line internal/scanner/scanner.rl:222 lex.act = 34 goto st166 tr408: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:223 +// line internal/scanner/scanner.rl:223 lex.act = 35 goto st166 tr413: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:224 +// line internal/scanner/scanner.rl:224 lex.act = 36 goto st166 tr417: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:225 +// line internal/scanner/scanner.rl:225 lex.act = 37 goto st166 tr419: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:226 +// line internal/scanner/scanner.rl:226 lex.act = 38 goto st166 tr425: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:228 +// line internal/scanner/scanner.rl:228 lex.act = 40 goto st166 tr427: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:234 +// line internal/scanner/scanner.rl:234 lex.act = 46 goto st166 tr434: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:230 +// line internal/scanner/scanner.rl:230 lex.act = 42 goto st166 tr440: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:232 +// line internal/scanner/scanner.rl:232 lex.act = 44 goto st166 tr446: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:235 +// line internal/scanner/scanner.rl:235 lex.act = 47 goto st166 tr448: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:236 +// line internal/scanner/scanner.rl:236 lex.act = 48 goto st166 tr449: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:237 +// line internal/scanner/scanner.rl:237 lex.act = 49 goto st166 tr460: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:239 +// line internal/scanner/scanner.rl:239 lex.act = 51 goto st166 tr473: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:262 +// line internal/scanner/scanner.rl:262 lex.act = 74 goto st166 tr481: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:240 +// line internal/scanner/scanner.rl:240 lex.act = 52 goto st166 tr485: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:241 +// line internal/scanner/scanner.rl:241 lex.act = 53 goto st166 tr491: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:242 +// line internal/scanner/scanner.rl:242 lex.act = 54 goto st166 tr494: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:238 +// line internal/scanner/scanner.rl:238 lex.act = 50 goto st166 tr497: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:243 +// line internal/scanner/scanner.rl:243 lex.act = 55 goto st166 tr506: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:244 +// line internal/scanner/scanner.rl:244 lex.act = 56 goto st166 tr507: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:274 +// line internal/scanner/scanner.rl:274 lex.act = 86 goto st166 tr508: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:276 +// line internal/scanner/scanner.rl:276 lex.act = 88 goto st166 tr515: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:247 +// line internal/scanner/scanner.rl:247 lex.act = 59 goto st166 tr518: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:245 +// line internal/scanner/scanner.rl:245 lex.act = 57 goto st166 tr524: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:248 +// line internal/scanner/scanner.rl:248 lex.act = 60 goto st166 tr528: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:246 +// line internal/scanner/scanner.rl:246 lex.act = 58 goto st166 tr541: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:264 +// line internal/scanner/scanner.rl:264 lex.act = 76 goto st166 tr544: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:249 +// line internal/scanner/scanner.rl:249 lex.act = 61 goto st166 tr550: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:250 +// line internal/scanner/scanner.rl:250 lex.act = 62 goto st166 tr554: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:251 +// line internal/scanner/scanner.rl:251 lex.act = 63 goto st166 tr559: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:252 +// line internal/scanner/scanner.rl:252 lex.act = 64 goto st166 tr561: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:254 +// line internal/scanner/scanner.rl:254 lex.act = 66 goto st166 tr563: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:253 +// line internal/scanner/scanner.rl:253 lex.act = 65 goto st166 tr568: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:255 +// line internal/scanner/scanner.rl:255 lex.act = 67 goto st166 tr569: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:256 +// line internal/scanner/scanner.rl:256 lex.act = 68 goto st166 tr571: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:257 +// line internal/scanner/scanner.rl:257 lex.act = 69 goto st166 tr575: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:258 +// line internal/scanner/scanner.rl:258 lex.act = 70 goto st166 tr577: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:277 +// line internal/scanner/scanner.rl:277 lex.act = 89 goto st166 tr586: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:259 +// line internal/scanner/scanner.rl:259 lex.act = 71 goto st166 tr602: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:265 +// line internal/scanner/scanner.rl:265 lex.act = 77 goto st166 tr606: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:266 +// line internal/scanner/scanner.rl:266 lex.act = 78 goto st166 tr612: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:267 +// line internal/scanner/scanner.rl:267 lex.act = 79 goto st166 tr620: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:268 +// line internal/scanner/scanner.rl:268 lex.act = 80 goto st166 tr632: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:273 +// line internal/scanner/scanner.rl:273 lex.act = 85 goto st166 tr637: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:269 +// line internal/scanner/scanner.rl:269 lex.act = 81 goto st166 tr644: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:271 +// line internal/scanner/scanner.rl:271 lex.act = 83 goto st166 tr654: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:270 +// line internal/scanner/scanner.rl:270 lex.act = 82 goto st166 tr660: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:272 +// line internal/scanner/scanner.rl:272 lex.act = 84 goto st166 st166: @@ -7384,7 +7384,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof166 } st_case_166: - // line internal/scanner/scanner.go:6249 +// line internal/scanner/scanner.go:6249 if lex.data[(lex.p)] == 96 { goto tr11 } @@ -7717,10 +7717,10 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr205: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:347 +// line internal/scanner/scanner.rl:347 lex.act = 135 goto st177 st177: @@ -7728,7 +7728,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof177 } st_case_177: - // line internal/scanner/scanner.go:6593 +// line internal/scanner/scanner.go:6593 switch lex.data[(lex.p)] { case 34: goto st7 @@ -14713,7 +14713,7 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr581: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st397 @@ -14722,7 +14722,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof397 } st_case_397: - // line internal/scanner/scanner.go:13587 +// line internal/scanner/scanner.go:13587 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14765,15 +14765,15 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr134: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st93 st93: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:13638 +// line internal/scanner/scanner.go:13638 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14791,15 +14791,15 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr135: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st94 st94: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:13664 +// line internal/scanner/scanner.go:13664 switch lex.data[(lex.p)] { case 10: goto tr135 @@ -14817,29 +14817,29 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr136: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st95 st95: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:13690 +// line internal/scanner/scanner.go:13690 if lex.data[(lex.p)] == 10 { goto st94 } goto tr129 tr137: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st96 st96: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:13704 +// line internal/scanner/scanner.go:13704 switch lex.data[(lex.p)] { case 82: goto st97 @@ -16943,14 +16943,14 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr141: - // line internal/scanner/scanner.rl:381 +// line internal/scanner/scanner.rl:381 (lex.p) = (lex.te) - 1 { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr663: - // line internal/scanner/scanner.rl:384 +// line internal/scanner/scanner.rl:384 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -16960,25 +16960,25 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr668: - // line internal/scanner/scanner.rl:381 +// line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr670: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:381 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr674: - // line internal/scanner/scanner.rl:384 +// line internal/scanner/scanner.rl:384 lex.te = (lex.p) (lex.p)-- { @@ -16989,7 +16989,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr675: - // line internal/scanner/scanner.rl:382 +// line internal/scanner/scanner.rl:382 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17003,7 +17003,7 @@ func (lex *Lexer) Lex() *Token { goto st468 tr676: lex.cs = 468 - // line internal/scanner/scanner.rl:383 +// line internal/scanner/scanner.rl:383 lex.te = (lex.p) (lex.p)-- { @@ -17017,17 +17017,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st468: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof468 } st_case_468: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:15860 +// line internal/scanner/scanner.go:15860 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17064,23 +17064,23 @@ func (lex *Lexer) Lex() *Token { } goto st473 tr664: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st469 tr671: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st469 st469: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof469 } st_case_469: - // line internal/scanner/scanner.go:15913 +// line internal/scanner/scanner.go:15913 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17094,23 +17094,23 @@ func (lex *Lexer) Lex() *Token { } goto tr668 tr142: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st470 tr672: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st470 st470: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof470 } st_case_470: - // line internal/scanner/scanner.go:15943 +// line internal/scanner/scanner.go:15943 switch lex.data[(lex.p)] { case 10: goto tr672 @@ -17124,15 +17124,15 @@ func (lex *Lexer) Lex() *Token { } goto tr670 tr673: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st99 st99: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:15965 +// line internal/scanner/scanner.go:15965 if lex.data[(lex.p)] == 10 { goto tr142 } @@ -17183,7 +17183,7 @@ func (lex *Lexer) Lex() *Token { goto st473 tr679: lex.cs = 474 - // line NONE:1 +// line NONE:1 switch lex.act { case 0: { @@ -17208,9 +17208,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr680: lex.cs = 474 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:388 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:388 lex.te = (lex.p) (lex.p)-- { @@ -17224,20 +17224,20 @@ func (lex *Lexer) Lex() *Token { } goto _again st474: - // line NONE:1 +// line NONE:1 lex.ts = 0 - // line NONE:1 +// line NONE:1 lex.act = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof474 } st_case_474: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16059 +// line internal/scanner/scanner.go:16059 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17288,19 +17288,19 @@ func (lex *Lexer) Lex() *Token { lex.cs = 0 goto _out tr677: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:388 +// line internal/scanner/scanner.rl:388 lex.act = 146 goto st475 tr681: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:388 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:388 lex.act = 146 goto st475 st475: @@ -17308,7 +17308,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof475 } st_case_475: - // line internal/scanner/scanner.go:16130 +// line internal/scanner/scanner.go:16130 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17355,15 +17355,15 @@ func (lex *Lexer) Lex() *Token { } goto tr679 tr682: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st476 st476: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof476 } st_case_476: - // line internal/scanner/scanner.go:16185 +// line internal/scanner/scanner.go:16185 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17410,7 +17410,7 @@ func (lex *Lexer) Lex() *Token { } goto tr680 tr143: - // line internal/scanner/scanner.rl:397 +// line internal/scanner/scanner.rl:397 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17421,7 +17421,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr689: - // line internal/scanner/scanner.rl:399 +// line internal/scanner/scanner.rl:399 lex.te = (lex.p) (lex.p)-- { @@ -17437,7 +17437,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr690: - // line internal/scanner/scanner.rl:398 +// line internal/scanner/scanner.rl:398 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17448,7 +17448,7 @@ func (lex *Lexer) Lex() *Token { goto st477 tr691: lex.cs = 477 - // line NONE:1 +// line NONE:1 switch lex.act { case 147: { @@ -17487,9 +17487,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr692: lex.cs = 477 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:400 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { @@ -17507,7 +17507,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr696: lex.cs = 477 - // line internal/scanner/scanner.rl:400 +// line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { @@ -17524,17 +17524,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st477: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof477 } st_case_477: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16314 +// line internal/scanner/scanner.go:16314 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17608,33 +17608,33 @@ func (lex *Lexer) Lex() *Token { } goto st0 tr685: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:400 +// line internal/scanner/scanner.rl:400 lex.act = 150 goto st479 tr693: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:400 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:400 lex.act = 150 goto st479 tr695: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:398 +// line internal/scanner/scanner.rl:398 lex.act = 148 goto st479 tr697: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:397 +// line internal/scanner/scanner.rl:397 lex.act = 147 goto st479 st479: @@ -17642,7 +17642,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof479 } st_case_479: - // line internal/scanner/scanner.go:16422 +// line internal/scanner/scanner.go:16422 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17689,15 +17689,15 @@ func (lex *Lexer) Lex() *Token { } goto tr691 tr694: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st480 st480: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof480 } st_case_480: - // line internal/scanner/scanner.go:16477 +// line internal/scanner/scanner.go:16477 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17854,7 +17854,7 @@ func (lex *Lexer) Lex() *Token { } goto tr696 tr145: - // line internal/scanner/scanner.rl:412 +// line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17866,7 +17866,7 @@ func (lex *Lexer) Lex() *Token { goto st483 tr699: lex.cs = 483 - // line internal/scanner/scanner.rl:415 +// line internal/scanner/scanner.rl:415 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17879,7 +17879,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr706: - // line internal/scanner/scanner.rl:414 +// line internal/scanner/scanner.rl:414 lex.te = (lex.p) (lex.p)-- { @@ -17895,7 +17895,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr707: - // line internal/scanner/scanner.rl:413 +// line internal/scanner/scanner.rl:413 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17906,7 +17906,7 @@ func (lex *Lexer) Lex() *Token { goto st483 tr708: lex.cs = 483 - // line NONE:1 +// line NONE:1 switch lex.act { case 151: { @@ -17951,9 +17951,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr709: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:416 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { @@ -17967,7 +17967,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr713: - // line internal/scanner/scanner.rl:416 +// line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { @@ -17981,17 +17981,17 @@ func (lex *Lexer) Lex() *Token { } goto st483 st483: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof483 } st_case_483: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16711 +// line internal/scanner/scanner.go:16711 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18069,40 +18069,40 @@ func (lex *Lexer) Lex() *Token { } goto st0 tr701: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:416 +// line internal/scanner/scanner.rl:416 lex.act = 155 goto st485 tr704: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:415 +// line internal/scanner/scanner.rl:415 lex.act = 154 goto st485 tr710: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:416 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:416 lex.act = 155 goto st485 tr712: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:413 +// line internal/scanner/scanner.rl:413 lex.act = 152 goto st485 tr714: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:412 +// line internal/scanner/scanner.rl:412 lex.act = 151 goto st485 st485: @@ -18110,7 +18110,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof485 } st_case_485: - // line internal/scanner/scanner.go:16830 +// line internal/scanner/scanner.go:16830 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18157,15 +18157,15 @@ func (lex *Lexer) Lex() *Token { } goto tr708 tr711: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st486 st486: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof486 } st_case_486: - // line internal/scanner/scanner.go:16885 +// line internal/scanner/scanner.go:16885 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18322,7 +18322,7 @@ func (lex *Lexer) Lex() *Token { } goto tr713 tr146: - // line internal/scanner/scanner.rl:424 +// line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18334,7 +18334,7 @@ func (lex *Lexer) Lex() *Token { goto st489 tr715: lex.cs = 489 - // line internal/scanner/scanner.rl:427 +// line internal/scanner/scanner.rl:427 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18347,7 +18347,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr723: - // line internal/scanner/scanner.rl:426 +// line internal/scanner/scanner.rl:426 lex.te = (lex.p) (lex.p)-- { @@ -18363,7 +18363,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr724: - // line internal/scanner/scanner.rl:425 +// line internal/scanner/scanner.rl:425 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18374,7 +18374,7 @@ func (lex *Lexer) Lex() *Token { goto st489 tr725: lex.cs = 489 - // line NONE:1 +// line NONE:1 switch lex.act { case 156: { @@ -18419,9 +18419,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr726: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:428 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { @@ -18435,7 +18435,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr730: - // line internal/scanner/scanner.rl:428 +// line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { @@ -18449,17 +18449,17 @@ func (lex *Lexer) Lex() *Token { } goto st489 st489: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof489 } st_case_489: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17119 +// line internal/scanner/scanner.go:17119 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18537,40 +18537,40 @@ func (lex *Lexer) Lex() *Token { } goto st0 tr718: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:428 +// line internal/scanner/scanner.rl:428 lex.act = 160 goto st491 tr720: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:427 +// line internal/scanner/scanner.rl:427 lex.act = 159 goto st491 tr727: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:428 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:428 lex.act = 160 goto st491 tr729: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:425 +// line internal/scanner/scanner.rl:425 lex.act = 157 goto st491 tr731: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:424 +// line internal/scanner/scanner.rl:424 lex.act = 156 goto st491 st491: @@ -18578,7 +18578,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof491 } st_case_491: - // line internal/scanner/scanner.go:17238 +// line internal/scanner/scanner.go:17238 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18625,15 +18625,15 @@ func (lex *Lexer) Lex() *Token { } goto tr725 tr728: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st492 st492: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof492 } st_case_492: - // line internal/scanner/scanner.go:17293 +// line internal/scanner/scanner.go:17293 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18791,7 +18791,7 @@ func (lex *Lexer) Lex() *Token { goto tr730 tr733: lex.cs = 495 - // line internal/scanner/scanner.rl:436 +// line internal/scanner/scanner.rl:436 lex.te = (lex.p) (lex.p)-- { @@ -18805,17 +18805,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st495: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof495 } st_case_495: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17472 +// line internal/scanner/scanner.go:17472 if lex.data[(lex.p)] == 96 { goto st0 } @@ -18859,7 +18859,7 @@ func (lex *Lexer) Lex() *Token { } goto st496 tr147: - // line internal/scanner/scanner.rl:455 +// line internal/scanner/scanner.rl:455 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -18871,7 +18871,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr148: - // line internal/scanner/scanner.rl:452 +// line internal/scanner/scanner.rl:452 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18885,7 +18885,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr734: - // line internal/scanner/scanner.rl:455 +// line internal/scanner/scanner.rl:455 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18897,7 +18897,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr738: - // line internal/scanner/scanner.rl:454 +// line internal/scanner/scanner.rl:454 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18907,7 +18907,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr739: - // line internal/scanner/scanner.rl:455 +// line internal/scanner/scanner.rl:455 lex.te = (lex.p) (lex.p)-- { @@ -18920,7 +18920,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr741: - // line internal/scanner/scanner.rl:451 +// line internal/scanner/scanner.rl:451 lex.te = (lex.p) (lex.p)-- { @@ -18934,7 +18934,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr743: - // line internal/scanner/scanner.rl:453 +// line internal/scanner/scanner.rl:453 lex.te = (lex.p) (lex.p)-- { @@ -18948,17 +18948,17 @@ func (lex *Lexer) Lex() *Token { } goto st497 st497: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof497 } st_case_497: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17564 +// line internal/scanner/scanner.go:17564 switch lex.data[(lex.p)] { case 36: goto st498 @@ -19030,7 +19030,7 @@ func (lex *Lexer) Lex() *Token { } goto st499 tr736: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st500 @@ -19039,7 +19039,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof500 } st_case_500: - // line internal/scanner/scanner.go:17645 +// line internal/scanner/scanner.go:17645 if lex.data[(lex.p)] == 62 { goto st103 } @@ -19092,7 +19092,7 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr149: - // line internal/scanner/scanner.rl:459 +// line internal/scanner/scanner.rl:459 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -19105,7 +19105,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr744: - // line internal/scanner/scanner.rl:465 +// line internal/scanner/scanner.rl:465 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -19113,7 +19113,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr745: - // line internal/scanner/scanner.rl:462 +// line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19123,7 +19123,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr748: - // line internal/scanner/scanner.rl:463 +// line internal/scanner/scanner.rl:463 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19136,7 +19136,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr752: - // line internal/scanner/scanner.rl:464 +// line internal/scanner/scanner.rl:464 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19146,9 +19146,9 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr753: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:462 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { @@ -19159,7 +19159,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr754: - // line internal/scanner/scanner.rl:465 +// line internal/scanner/scanner.rl:465 lex.te = (lex.p) (lex.p)-- { @@ -19168,7 +19168,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr755: - // line internal/scanner/scanner.rl:463 +// line internal/scanner/scanner.rl:463 lex.te = (lex.p) (lex.p)-- { @@ -19182,7 +19182,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr757: - // line internal/scanner/scanner.rl:460 +// line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -19196,7 +19196,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr758: - // line internal/scanner/scanner.rl:459 +// line internal/scanner/scanner.rl:459 lex.te = (lex.p) (lex.p)-- { @@ -19210,7 +19210,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr762: - // line internal/scanner/scanner.rl:461 +// line internal/scanner/scanner.rl:461 lex.te = (lex.p) (lex.p)-- { @@ -19224,17 +19224,17 @@ func (lex *Lexer) Lex() *Token { } goto st502 st502: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof502 } st_case_502: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17777 +// line internal/scanner/scanner.go:17777 switch lex.data[(lex.p)] { case 10: goto st503 @@ -19362,7 +19362,7 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr750: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st507 @@ -19371,7 +19371,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof507 } st_case_507: - // line internal/scanner/scanner.go:17914 +// line internal/scanner/scanner.go:17914 switch lex.data[(lex.p)] { case 95: goto st104 @@ -19385,7 +19385,7 @@ func (lex *Lexer) Lex() *Token { } goto tr758 tr150: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st508 @@ -19394,7 +19394,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:17937 +// line internal/scanner/scanner.go:17937 if lex.data[(lex.p)] == 95 { goto st104 } @@ -19421,7 +19421,7 @@ func (lex *Lexer) Lex() *Token { } goto tr149 tr151: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st509 @@ -19430,7 +19430,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof509 } st_case_509: - // line internal/scanner/scanner.go:17973 +// line internal/scanner/scanner.go:17973 if lex.data[(lex.p)] == 95 { goto st105 } @@ -19457,7 +19457,7 @@ func (lex *Lexer) Lex() *Token { } goto tr149 tr152: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st510 @@ -19466,7 +19466,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof510 } st_case_510: - // line internal/scanner/scanner.go:18009 +// line internal/scanner/scanner.go:18009 if lex.data[(lex.p)] == 95 { goto st106 } @@ -19511,7 +19511,7 @@ func (lex *Lexer) Lex() *Token { goto st511 tr153: lex.cs = 512 - // line internal/scanner/scanner.rl:473 +// line internal/scanner/scanner.rl:473 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -19520,7 +19520,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr155: lex.cs = 512 - // line internal/scanner/scanner.rl:472 +// line internal/scanner/scanner.rl:472 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19535,7 +19535,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr763: lex.cs = 512 - // line internal/scanner/scanner.rl:473 +// line internal/scanner/scanner.rl:473 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19544,7 +19544,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr765: lex.cs = 512 - // line internal/scanner/scanner.rl:473 +// line internal/scanner/scanner.rl:473 lex.te = (lex.p) (lex.p)-- { @@ -19553,17 +19553,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st512: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof512 } st_case_512: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18088 +// line internal/scanner/scanner.go:18088 if lex.data[(lex.p)] == 96 { goto tr763 } @@ -19581,7 +19581,7 @@ func (lex *Lexer) Lex() *Token { } goto tr764 tr764: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st513 @@ -19590,7 +19590,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof513 } st_case_513: - // line internal/scanner/scanner.go:18115 +// line internal/scanner/scanner.go:18115 switch lex.data[(lex.p)] { case 91: goto tr155 @@ -19649,15 +19649,15 @@ func (lex *Lexer) Lex() *Token { } goto st107 tr156: - // line internal/scanner/scanner.rl:477 +// line internal/scanner/scanner.rl:477 (lex.p) = (lex.te) - 1 { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st514 tr766: lex.cs = 514 - // line internal/scanner/scanner.rl:479 +// line internal/scanner/scanner.rl:479 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19666,7 +19666,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr769: lex.cs = 514 - // line internal/scanner/scanner.rl:478 +// line internal/scanner/scanner.rl:478 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19679,26 +19679,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr770: - // line internal/scanner/scanner.rl:477 +// line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st514 tr772: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:477 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st514 tr776: lex.cs = 514 - // line internal/scanner/scanner.rl:479 +// line internal/scanner/scanner.rl:479 lex.te = (lex.p) (lex.p)-- { @@ -19707,17 +19707,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st514: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof514 } st_case_514: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18222 +// line internal/scanner/scanner.go:18222 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19733,23 +19733,23 @@ func (lex *Lexer) Lex() *Token { } goto tr766 tr767: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st515 tr773: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st515 st515: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof515 } st_case_515: - // line internal/scanner/scanner.go:18254 +// line internal/scanner/scanner.go:18254 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19763,23 +19763,23 @@ func (lex *Lexer) Lex() *Token { } goto tr770 tr157: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st516 tr774: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st516 st516: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof516 } st_case_516: - // line internal/scanner/scanner.go:18284 +// line internal/scanner/scanner.go:18284 switch lex.data[(lex.p)] { case 10: goto tr774 @@ -19793,15 +19793,15 @@ func (lex *Lexer) Lex() *Token { } goto tr772 tr775: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st108 st108: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof108 } st_case_108: - // line internal/scanner/scanner.go:18306 +// line internal/scanner/scanner.go:18306 if lex.data[(lex.p)] == 10 { goto tr157 } @@ -19816,15 +19816,15 @@ func (lex *Lexer) Lex() *Token { } goto tr776 tr158: - // line internal/scanner/scanner.rl:483 +// line internal/scanner/scanner.rl:483 (lex.p) = (lex.te) - 1 { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st518 tr777: lex.cs = 518 - // line internal/scanner/scanner.rl:485 +// line internal/scanner/scanner.rl:485 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19833,7 +19833,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr780: lex.cs = 518 - // line internal/scanner/scanner.rl:484 +// line internal/scanner/scanner.rl:484 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19846,26 +19846,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr781: - // line internal/scanner/scanner.rl:483 +// line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st518 tr783: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:483 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st518 tr787: lex.cs = 518 - // line internal/scanner/scanner.rl:485 +// line internal/scanner/scanner.rl:485 lex.te = (lex.p) (lex.p)-- { @@ -19874,17 +19874,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st518: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof518 } st_case_518: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18369 +// line internal/scanner/scanner.go:18369 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19900,23 +19900,23 @@ func (lex *Lexer) Lex() *Token { } goto tr777 tr778: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st519 tr784: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st519 st519: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof519 } st_case_519: - // line internal/scanner/scanner.go:18401 +// line internal/scanner/scanner.go:18401 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19930,23 +19930,23 @@ func (lex *Lexer) Lex() *Token { } goto tr781 tr159: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st520 tr785: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st520 st520: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof520 } st_case_520: - // line internal/scanner/scanner.go:18431 +// line internal/scanner/scanner.go:18431 switch lex.data[(lex.p)] { case 10: goto tr785 @@ -19960,15 +19960,15 @@ func (lex *Lexer) Lex() *Token { } goto tr783 tr786: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st109 st109: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof109 } st_case_109: - // line internal/scanner/scanner.go:18453 +// line internal/scanner/scanner.go:18453 if lex.data[(lex.p)] == 10 { goto tr159 } @@ -19983,15 +19983,15 @@ func (lex *Lexer) Lex() *Token { } goto tr787 tr160: - // line internal/scanner/scanner.rl:489 +// line internal/scanner/scanner.rl:489 (lex.p) = (lex.te) - 1 { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st522 tr788: lex.cs = 522 - // line internal/scanner/scanner.rl:491 +// line internal/scanner/scanner.rl:491 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20000,7 +20000,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr791: lex.cs = 522 - // line internal/scanner/scanner.rl:490 +// line internal/scanner/scanner.rl:490 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -20013,26 +20013,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr792: - // line internal/scanner/scanner.rl:489 +// line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st522 tr794: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:489 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st522 tr798: lex.cs = 522 - // line internal/scanner/scanner.rl:491 +// line internal/scanner/scanner.rl:491 lex.te = (lex.p) (lex.p)-- { @@ -20041,17 +20041,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st522: - // line NONE:1 +// line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof522 } st_case_522: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18516 +// line internal/scanner/scanner.go:18516 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20067,23 +20067,23 @@ func (lex *Lexer) Lex() *Token { } goto tr788 tr789: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st523 tr795: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st523 st523: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof523 } st_case_523: - // line internal/scanner/scanner.go:18548 +// line internal/scanner/scanner.go:18548 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20097,23 +20097,23 @@ func (lex *Lexer) Lex() *Token { } goto tr792 tr161: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 goto st524 tr796: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st524 st524: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof524 } st_case_524: - // line internal/scanner/scanner.go:18578 +// line internal/scanner/scanner.go:18578 switch lex.data[(lex.p)] { case 10: goto tr796 @@ -20127,15 +20127,15 @@ func (lex *Lexer) Lex() *Token { } goto tr794 tr797: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st110 st110: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:18600 +// line internal/scanner/scanner.go:18600 if lex.data[(lex.p)] == 10 { goto tr161 } @@ -20150,7 +20150,7 @@ func (lex *Lexer) Lex() *Token { } goto tr798 tr801: - // line NONE:1 +// line NONE:1 switch lex.act { case 0: { @@ -20161,54 +20161,54 @@ func (lex *Lexer) Lex() *Token { case 186: { (lex.p) = (lex.te) - 1 - lex.addToken(T_HALT_COMPILER, lex.ts, lex.te) + lex.addHiddenToken(T_HALT_COMPILER, lex.ts, lex.te) } } goto st526 tr802: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:495 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:495 lex.te = (lex.p) (lex.p)-- { - lex.addToken(T_HALT_COMPILER, lex.ts, lex.te) + lex.addHiddenToken(T_HALT_COMPILER, lex.ts, lex.te) } goto st526 st526: - // line NONE:1 +// line NONE:1 lex.ts = 0 - // line NONE:1 +// line NONE:1 lex.act = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof526 } st_case_526: - // line NONE:1 +// line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18647 +// line internal/scanner/scanner.go:18647 if lex.data[(lex.p)] == 10 { goto st528 } goto tr799 tr799: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:495 +// line internal/scanner/scanner.rl:495 lex.act = 186 goto st527 tr803: - // line NONE:1 +// line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) - // line internal/scanner/scanner.rl:495 +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) +// line internal/scanner/scanner.rl:495 lex.act = 186 goto st527 st527: @@ -20216,21 +20216,21 @@ func (lex *Lexer) Lex() *Token { goto _test_eof527 } st_case_527: - // line internal/scanner/scanner.go:18673 +// line internal/scanner/scanner.go:18673 if lex.data[(lex.p)] == 10 { goto st528 } goto tr799 tr804: - // line internal/scanner/scanner.rl:55 - lex.NewLines.Append(lex.p) +// line internal/scanner/scanner.rl:55 + lex.newLines.Append(lex.p) goto st528 st528: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof528 } st_case_528: - // line internal/scanner/scanner.go:18687 +// line internal/scanner/scanner.go:18687 if lex.data[(lex.p)] == 10 { goto tr804 } @@ -22852,9 +22852,9 @@ func (lex *Lexer) Lex() *Token { } } - // line internal/scanner/scanner.rl:499 +// line internal/scanner/scanner.rl:499 - token.Hidden = lex.HiddenTokens + token.Hidden = lex.hiddenTokens token.Value = lex.data[lex.ts:lex.te] token.ID = tok diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index f885098..0dc87ad 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -19,11 +19,11 @@ func initLexer(lex *Lexer) { } func (lex *Lexer) Lex() *Token { - lex.HiddenTokens = nil + lex.hiddenTokens = nil eof := lex.pe var tok TokenID - token := lex.TokenPool.Get() + token := lex.tokenPool.Get() token.Hidden = nil token.Value = lex.data[0:0] @@ -38,11 +38,11 @@ func (lex *Lexer) Lex() *Token { action constant_string_new_line { if lex.data[lex.p] == '\n' { - lex.NewLines.Append(lex.p) + lex.newLines.Append(lex.p) } if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.NewLines.Append(lex.p) + lex.newLines.Append(lex.p) } } @@ -52,7 +52,7 @@ func (lex *Lexer) Lex() *Token { 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);}; + 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; @@ -125,7 +125,7 @@ func (lex *Lexer) Lex() *Token { main := |* "#!" any* :>> newline => { - lex.addToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) }; any => { fnext html; @@ -141,12 +141,12 @@ func (lex *Lexer) Lex() *Token { fbreak; }; ' { - lex.addToken(T_OPEN_TAG, lex.ts, lex.te) + lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.te) fnext php; }; ' { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addToken(T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.ts+5) fnext php; }; ' { @@ -158,7 +158,7 @@ func (lex *Lexer) Lex() *Token { *|; php := |* - whitespace_line* => {lex.addToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, 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;}; @@ -318,7 +318,7 @@ func (lex *Lexer) Lex() *Token { ('#' | '//') any_line* when is_not_comment_end => { lex.ungetStr("?>") - lex.addToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) }; '/*' any_line* :>> '*/' { isDocComment := false; @@ -327,9 +327,9 @@ func (lex *Lexer) Lex() *Token { } if isDocComment { - lex.addToken(T_DOC_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) } }; @@ -378,7 +378,7 @@ func (lex *Lexer) Lex() *Token { *|; property := |* - whitespace_line* => {lex.addToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, 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;}; @@ -474,31 +474,31 @@ func (lex *Lexer) Lex() *Token { *|; halt_compiller_open_parenthesis := |* - whitespace_line* => {lex.addToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, 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.addToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, 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.addToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, 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.addToken(T_HALT_COMPILER, lex.ts, lex.te); }; + any_line* => { lex.addHiddenToken(T_HALT_COMPILER, lex.ts, lex.te); }; *|; write exec; }%% - token.Hidden = lex.HiddenTokens + token.Hidden = lex.hiddenTokens token.Value = lex.data[lex.ts:lex.te] token.ID = tok diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index c9f63af..9199f1d 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -353,8 +353,8 @@ func TestTokens(t *testing.T) { T_UNSET_CAST.String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -381,8 +381,8 @@ func TestShebang(t *testing.T) { "\n", } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} tkn := lexer.Lex() @@ -401,8 +401,8 @@ func TestShebangHtml(t *testing.T) { 0.1 ` - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true tkn := lexer.Lex() assert.Equal(t, tkn.ID, T_INLINE_HTML) @@ -451,8 +451,8 @@ func TestNumberTokens(t *testing.T) { T_DNUMBER.String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -508,8 +508,8 @@ func TestConstantStrings(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -555,7 +555,7 @@ func TestSingleQuoteStringTokens(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), nil) + lexer := NewLexer([]byte(src), "7.4", Config{}) actual := []string{} for { @@ -642,8 +642,8 @@ func TestTeplateStringTokens(t *testing.T) { TokenID(int('"')).String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -727,8 +727,8 @@ func TestBackquoteStringTokens(t *testing.T) { TokenID(int('`')).String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -821,8 +821,8 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -894,8 +894,8 @@ CAT T_END_HEREDOC.String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -933,8 +933,8 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -964,8 +964,8 @@ func TestHereDocTokens73(t *testing.T) { T_VARIABLE.String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -994,9 +994,9 @@ CAT;` TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), nil) - lexer.PHPVersion = "7.2" - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.phpVersion = "7.2" + lexer.withHiddenTokens = true actual := []string{} for { @@ -1027,8 +1027,8 @@ func TestInlineHtmlNopTokens(t *testing.T) { T_INLINE_HTML.String(), } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true actual := []string{} for { @@ -1062,7 +1062,7 @@ func TestStringTokensAfterVariable(t *testing.T) { "\"", } - lexer := NewLexer([]byte(src), nil) + lexer := NewLexer([]byte(src), "7.4", Config{}) actual := []string{} actualTokens := []string{} @@ -1095,7 +1095,7 @@ func TestSlashAfterVariable(t *testing.T) { "3", } - lexer := NewLexer([]byte(src), nil) + lexer := NewLexer([]byte(src), "7.4", Config{}) actual := []string{} actualTokens := []string{} @@ -1132,12 +1132,12 @@ func TestCommentEnd(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true lexer.Lex() - actual := lexer.HiddenTokens + actual := lexer.hiddenTokens assert.DeepEqual(t, expected, actual) } @@ -1161,8 +1161,8 @@ func TestCommentNewLine(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1190,8 +1190,8 @@ func TestCommentNewLine1(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1219,8 +1219,8 @@ func TestCommentNewLine2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1249,8 +1249,8 @@ func TestCommentWithPhpEndTag(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1279,8 +1279,8 @@ func TestInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1309,12 +1309,12 @@ func TestInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true lexer.Lex() - actual := lexer.HiddenTokens + actual := lexer.hiddenTokens assert.DeepEqual(t, expected, actual) } @@ -1343,12 +1343,12 @@ func TestEmptyInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true lexer.Lex() - actual := lexer.HiddenTokens + actual := lexer.hiddenTokens assert.DeepEqual(t, expected, actual) } @@ -1373,8 +1373,8 @@ func TestEmptyInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1387,8 +1387,8 @@ func TestMethodCallTokens(t *testing.T) { src := ` bar ( '' ) ;` - lexer := NewLexer([]byte(src), nil) - lexer.WithHiddenTokens = true + lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer.withHiddenTokens = true expected := []token.Token{ { @@ -1469,8 +1469,8 @@ func TestYieldFromTokens(t *testing.T) { src := ` Date: Mon, 18 May 2020 21:40:49 +0300 Subject: [PATCH 018/140] [refactoring] scanner DefaultConfig --- internal/scanner/lexer.go | 2 + internal/scanner/scanner.go | 1192 +++++++++++++++--------------- internal/scanner/scanner_test.go | 60 +- 3 files changed, 628 insertions(+), 626 deletions(-) diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 4b242d3..8cfc2b3 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -20,6 +20,8 @@ type Config struct { ErrHandlerFunc func(*errors.Error) } +var DefaultConfig = Config{} + type Lexer struct { data []byte phpVersion string diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 0a3ecd8..c4b5ae5 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -33,7 +33,7 @@ const lexer_en_halt_compiller_end int = 526 func initLexer(lex *Lexer) { -// line internal/scanner/scanner.go:41 + // line internal/scanner/scanner.go:41 { lex.cs = lexer_start lex.top = 0 @@ -42,7 +42,7 @@ func initLexer(lex *Lexer) { lex.act = 0 } -// line internal/scanner/scanner.rl:19 + // line internal/scanner/scanner.rl:19 } func (lex *Lexer) Lex() *Token { @@ -59,7 +59,7 @@ func (lex *Lexer) Lex() *Token { _, _ = lblStart, lblEnd -// line internal/scanner/scanner.go:68 + // line internal/scanner/scanner.go:68 { var _widec int16 if (lex.p) == (lex.pe) { @@ -2196,7 +2196,7 @@ func (lex *Lexer) Lex() *Token { goto st_out tr0: lex.cs = 111 -// line internal/scanner/scanner.rl:130 + // line internal/scanner/scanner.rl:130 (lex.p) = (lex.te) - 1 { lex.cs = 114 @@ -2205,7 +2205,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr162: lex.cs = 111 -// line internal/scanner/scanner.rl:130 + // line internal/scanner/scanner.rl:130 lex.te = (lex.p) + 1 { lex.cs = 114 @@ -2214,7 +2214,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr164: lex.cs = 111 -// line internal/scanner/scanner.rl:130 + // line internal/scanner/scanner.rl:130 lex.te = (lex.p) (lex.p)-- { @@ -2223,9 +2223,9 @@ func (lex *Lexer) Lex() *Token { } goto _again tr165: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:127 + // line internal/scanner/scanner.rl:127 lex.te = (lex.p) (lex.p)-- { @@ -2233,23 +2233,23 @@ func (lex *Lexer) Lex() *Token { } goto st111 st111: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof111 } st_case_111: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:2252 + // line internal/scanner/scanner.go:2252 if lex.data[(lex.p)] == 35 { goto tr163 } goto tr162 tr163: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st112 @@ -2258,7 +2258,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof112 } st_case_112: -// line internal/scanner/scanner.go:2267 + // line internal/scanner/scanner.go:2267 if lex.data[(lex.p)] == 33 { goto st1 } @@ -2280,7 +2280,7 @@ func (lex *Lexer) Lex() *Token { goto tr165 tr3: lex.cs = 114 -// line internal/scanner/scanner.rl:143 + // line internal/scanner/scanner.rl:143 (lex.p) = (lex.te) - 1 { lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.te) @@ -2289,7 +2289,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr6: lex.cs = 114 -// line internal/scanner/scanner.rl:147 + // line internal/scanner/scanner.rl:147 lex.te = (lex.p) + 1 { lex.ungetCnt(lex.te - lex.ts - 5) @@ -2298,7 +2298,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr169: -// line internal/scanner/scanner.rl:137 + // line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2313,9 +2313,9 @@ func (lex *Lexer) Lex() *Token { } goto st114 tr171: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:137 + // line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2331,7 +2331,7 @@ func (lex *Lexer) Lex() *Token { goto st114 tr176: lex.cs = 114 -// line internal/scanner/scanner.rl:143 + // line internal/scanner/scanner.rl:143 lex.te = (lex.p) (lex.p)-- { @@ -2341,7 +2341,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr177: lex.cs = 114 -// line internal/scanner/scanner.rl:152 + // line internal/scanner/scanner.rl:152 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -2355,9 +2355,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr179: lex.cs = 114 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:147 + // line internal/scanner/scanner.rl:147 lex.te = (lex.p) (lex.p)-- { @@ -2367,17 +2367,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st114: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof114 } st_case_114: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:2375 + // line internal/scanner/scanner.go:2375 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2386,7 +2386,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr172: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st115 st115: @@ -2394,7 +2394,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof115 } st_case_115: -// line internal/scanner/scanner.go:2392 + // line internal/scanner/scanner.go:2392 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2403,7 +2403,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr173: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st116 st116: @@ -2411,7 +2411,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof116 } st_case_116: -// line internal/scanner/scanner.go:2409 + // line internal/scanner/scanner.go:2409 switch lex.data[(lex.p)] { case 10: goto tr173 @@ -2420,7 +2420,7 @@ func (lex *Lexer) Lex() *Token { } goto tr172 tr174: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st117 st117: @@ -2428,7 +2428,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof117 } st_case_117: -// line internal/scanner/scanner.go:2426 + // line internal/scanner/scanner.go:2426 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2453,7 +2453,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr175: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st119 @@ -2462,7 +2462,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof119 } st_case_119: -// line internal/scanner/scanner.go:2460 + // line internal/scanner/scanner.go:2460 switch lex.data[(lex.p)] { case 61: goto tr177 @@ -2528,7 +2528,7 @@ func (lex *Lexer) Lex() *Token { } goto tr3 tr9: -// line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:161 (lex.p) = (lex.te) - 1 { lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) @@ -2536,7 +2536,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr11: lex.cs = 121 -// line NONE:1 + // line NONE:1 switch lex.act { case 10: { @@ -3348,7 +3348,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr14: -// line internal/scanner/scanner.rl:351 + // line internal/scanner/scanner.rl:351 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3361,7 +3361,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr18: -// line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:374 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] @@ -3369,7 +3369,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr22: -// line internal/scanner/scanner.rl:336 + // line internal/scanner/scanner.rl:336 (lex.p) = (lex.te) - 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3384,7 +3384,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr37: -// line internal/scanner/scanner.rl:311 + // line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3397,7 +3397,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr44: -// line internal/scanner/scanner.rl:316 + // line internal/scanner/scanner.rl:316 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3410,7 +3410,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr48: -// line internal/scanner/scanner.rl:312 + // line internal/scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3423,7 +3423,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr56: -// line internal/scanner/scanner.rl:313 + // line internal/scanner/scanner.rl:313 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3436,7 +3436,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr63: -// line internal/scanner/scanner.rl:314 + // line internal/scanner/scanner.rl:314 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3449,7 +3449,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr72: -// line internal/scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:315 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3462,7 +3462,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr83: -// line internal/scanner/scanner.rl:317 + // line internal/scanner/scanner.rl:317 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3475,7 +3475,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr84: -// line internal/scanner/scanner.rl:279 + // line internal/scanner/scanner.rl:279 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3488,7 +3488,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr87: -// line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:165 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3501,7 +3501,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr95: -// line internal/scanner/scanner.rl:323 + // line internal/scanner/scanner.rl:323 lex.te = (lex.p) + 1 { isDocComment := false @@ -3517,7 +3517,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr96: -// line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:176 (lex.p) = (lex.te) - 1 { base := 10 @@ -3549,7 +3549,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr109: lex.cs = 121 -// line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:163 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3563,7 +3563,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr125: lex.cs = 121 -// line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:162 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3576,7 +3576,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr127: -// line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:347 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3589,7 +3589,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr129: -// line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:260 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3602,7 +3602,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr140: -// line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:259 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3615,7 +3615,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr180: -// line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:374 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3623,7 +3623,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr191: -// line internal/scanner/scanner.rl:336 + // line internal/scanner/scanner.rl:336 lex.te = (lex.p) + 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3638,7 +3638,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr225: -// line internal/scanner/scanner.rl:278 + // line internal/scanner/scanner.rl:278 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3652,7 +3652,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr228: lex.cs = 121 -// line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:371 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3665,7 +3665,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr229: -// line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:344 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3675,7 +3675,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr231: -// line internal/scanner/scanner.rl:345 + // line internal/scanner/scanner.rl:345 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3685,7 +3685,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr232: -// line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -3693,9 +3693,9 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr234: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -3703,7 +3703,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr238: -// line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:374 lex.te = (lex.p) (lex.p)-- { @@ -3712,7 +3712,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr239: -// line internal/scanner/scanner.rl:336 + // line internal/scanner/scanner.rl:336 lex.te = (lex.p) (lex.p)-- { @@ -3728,7 +3728,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr241: -// line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) (lex.p)-- { @@ -3742,7 +3742,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr242: -// line internal/scanner/scanner.rl:298 + // line internal/scanner/scanner.rl:298 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3756,7 +3756,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr243: lex.cs = 121 -// line internal/scanner/scanner.rl:372 + // line internal/scanner/scanner.rl:372 lex.te = (lex.p) (lex.p)-- { @@ -3770,7 +3770,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr244: -// line internal/scanner/scanner.rl:319 + // line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { @@ -3779,9 +3779,9 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr246: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:319 + // line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { @@ -3790,7 +3790,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr250: -// line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:346 lex.te = (lex.p) (lex.p)-- { @@ -3804,7 +3804,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr251: -// line internal/scanner/scanner.rl:292 + // line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3817,7 +3817,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr252: -// line internal/scanner/scanner.rl:281 + // line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3830,7 +3830,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr253: -// line internal/scanner/scanner.rl:283 + // line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3843,7 +3843,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr255: -// line internal/scanner/scanner.rl:286 + // line internal/scanner/scanner.rl:286 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3856,7 +3856,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr256: -// line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:305 lex.te = (lex.p) (lex.p)-- { @@ -3870,7 +3870,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr257: -// line internal/scanner/scanner.rl:287 + // line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3883,7 +3883,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr258: -// line internal/scanner/scanner.rl:294 + // line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3896,7 +3896,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr259: -// line internal/scanner/scanner.rl:289 + // line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3909,7 +3909,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr260: -// line internal/scanner/scanner.rl:293 + // line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3922,7 +3922,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr261: -// line internal/scanner/scanner.rl:290 + // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3936,7 +3936,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr262: lex.cs = 121 -// line internal/scanner/scanner.rl:349 + // line internal/scanner/scanner.rl:349 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3949,7 +3949,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr264: -// line internal/scanner/scanner.rl:285 + // line internal/scanner/scanner.rl:285 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3962,7 +3962,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr265: -// line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { @@ -3976,7 +3976,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr268: -// line internal/scanner/scanner.rl:288 + // line internal/scanner/scanner.rl:288 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3989,7 +3989,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr269: -// line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:176 lex.te = (lex.p) (lex.p)-- { @@ -4021,7 +4021,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr274: -// line internal/scanner/scanner.rl:166 + // line internal/scanner/scanner.rl:166 lex.te = (lex.p) (lex.p)-- { @@ -4048,7 +4048,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr275: -// line internal/scanner/scanner.rl:191 + // line internal/scanner/scanner.rl:191 lex.te = (lex.p) (lex.p)-- { @@ -4075,7 +4075,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr276: -// line internal/scanner/scanner.rl:280 + // line internal/scanner/scanner.rl:280 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4089,7 +4089,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr277: lex.cs = 121 -// line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4104,9 +4104,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr279: lex.cs = 121 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4120,7 +4120,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr282: -// line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4133,7 +4133,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr283: -// line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { @@ -4147,7 +4147,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr284: -// line internal/scanner/scanner.rl:301 + // line internal/scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4161,9 +4161,9 @@ func (lex *Lexer) Lex() *Token { goto st121 tr285: lex.cs = 121 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:357 lex.te = (lex.p) (lex.p)-- { @@ -4185,7 +4185,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr286: -// line internal/scanner/scanner.rl:304 + // line internal/scanner/scanner.rl:304 lex.te = (lex.p) (lex.p)-- { @@ -4199,7 +4199,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr287: -// line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4212,7 +4212,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr289: -// line internal/scanner/scanner.rl:295 + // line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4225,7 +4225,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr290: -// line internal/scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) (lex.p)-- { @@ -4239,7 +4239,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr291: -// line internal/scanner/scanner.rl:300 + // line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4252,7 +4252,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr292: -// line internal/scanner/scanner.rl:303 + // line internal/scanner/scanner.rl:303 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4265,7 +4265,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr294: -// line internal/scanner/scanner.rl:307 + // line internal/scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { @@ -4279,7 +4279,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr295: -// line internal/scanner/scanner.rl:302 + // line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4293,7 +4293,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr298: lex.cs = 121 -// line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4308,9 +4308,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr300: lex.cs = 121 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4324,7 +4324,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr301: -// line internal/scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:308 lex.te = (lex.p) (lex.p)-- { @@ -4338,7 +4338,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr302: -// line internal/scanner/scanner.rl:309 + // line internal/scanner/scanner.rl:309 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4351,7 +4351,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr303: -// line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:347 lex.te = (lex.p) (lex.p)-- { @@ -4365,7 +4365,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr383: -// line internal/scanner/scanner.rl:217 + // line internal/scanner/scanner.rl:217 lex.te = (lex.p) (lex.p)-- { @@ -4379,7 +4379,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr403: -// line internal/scanner/scanner.rl:221 + // line internal/scanner/scanner.rl:221 lex.te = (lex.p) (lex.p)-- { @@ -4393,7 +4393,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr432: -// line internal/scanner/scanner.rl:229 + // line internal/scanner/scanner.rl:229 lex.te = (lex.p) (lex.p)-- { @@ -4407,7 +4407,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr436: -// line internal/scanner/scanner.rl:231 + // line internal/scanner/scanner.rl:231 lex.te = (lex.p) (lex.p)-- { @@ -4421,7 +4421,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr468: -// line internal/scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:261 lex.te = (lex.p) (lex.p)-- { @@ -4435,7 +4435,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr536: -// line internal/scanner/scanner.rl:263 + // line internal/scanner/scanner.rl:263 lex.te = (lex.p) (lex.p)-- { @@ -4449,7 +4449,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr582: -// line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:260 lex.te = (lex.p) (lex.p)-- { @@ -4463,7 +4463,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr587: -// line internal/scanner/scanner.rl:291 + // line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4476,7 +4476,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr661: -// line internal/scanner/scanner.rl:284 + // line internal/scanner/scanner.rl:284 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4489,7 +4489,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr662: -// line internal/scanner/scanner.rl:282 + // line internal/scanner/scanner.rl:282 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4502,17 +4502,17 @@ func (lex *Lexer) Lex() *Token { } goto st121 st121: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof121 } st_case_121: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:3377 + // line internal/scanner/scanner.go:3377 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4689,15 +4689,15 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr181: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st122 tr235: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st122 st122: @@ -4705,7 +4705,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof122 } st_case_122: -// line internal/scanner/scanner.go:3570 + // line internal/scanner/scanner.go:3570 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4719,15 +4719,15 @@ func (lex *Lexer) Lex() *Token { } goto tr232 tr10: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st123 tr236: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st123 st123: @@ -4735,7 +4735,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof123 } st_case_123: -// line internal/scanner/scanner.go:3600 + // line internal/scanner/scanner.go:3600 switch lex.data[(lex.p)] { case 10: goto tr236 @@ -4749,7 +4749,7 @@ func (lex *Lexer) Lex() *Token { } goto tr234 tr237: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st6 st6: @@ -4757,7 +4757,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof6 } st_case_6: -// line internal/scanner/scanner.go:3622 + // line internal/scanner/scanner.go:3622 if lex.data[(lex.p)] == 10 { goto tr10 } @@ -4790,10 +4790,10 @@ func (lex *Lexer) Lex() *Token { } goto tr241 tr184: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:372 + // line internal/scanner/scanner.rl:372 lex.act = 140 goto st127 st127: @@ -4801,7 +4801,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof127 } st_case_127: -// line internal/scanner/scanner.go:3666 + // line internal/scanner/scanner.go:3666 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4818,7 +4818,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr13: -// line internal/scanner/scanner.rl:39 + // line internal/scanner/scanner.rl:39 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p) @@ -4834,7 +4834,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof7 } st_case_7: -// line internal/scanner/scanner.go:3699 + // line internal/scanner/scanner.go:3699 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4911,7 +4911,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr247: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st128 st128: @@ -4919,7 +4919,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof128 } st_case_128: -// line internal/scanner/scanner.go:3784 + // line internal/scanner/scanner.go:3784 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -4966,7 +4966,7 @@ func (lex *Lexer) Lex() *Token { } goto tr244 tr248: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st129 st129: @@ -4974,7 +4974,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof129 } st_case_129: -// line internal/scanner/scanner.go:3839 + // line internal/scanner/scanner.go:3839 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5089,7 +5089,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr189: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st134 @@ -5098,7 +5098,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof134 } st_case_134: -// line internal/scanner/scanner.go:3963 + // line internal/scanner/scanner.go:3963 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5111,7 +5111,7 @@ func (lex *Lexer) Lex() *Token { } goto st11 tr20: -// line internal/scanner/scanner.rl:39 + // line internal/scanner/scanner.rl:39 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p) @@ -5127,7 +5127,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof11 } st_case_11: -// line internal/scanner/scanner.go:3992 + // line internal/scanner/scanner.go:3992 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5152,7 +5152,7 @@ func (lex *Lexer) Lex() *Token { } goto st11 tr190: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st135 @@ -5161,7 +5161,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof135 } st_case_135: -// line internal/scanner/scanner.go:4026 + // line internal/scanner/scanner.go:4026 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6000,7 +6000,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr195: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st140 @@ -6009,7 +6009,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof140 } st_case_140: -// line internal/scanner/scanner.go:4874 + // line internal/scanner/scanner.go:4874 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6030,10 +6030,10 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr88: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st141 st141: @@ -6041,7 +6041,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof141 } st_case_141: -// line internal/scanner/scanner.go:4906 + // line internal/scanner/scanner.go:4906 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6079,10 +6079,10 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr86: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st142 st142: @@ -6090,7 +6090,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof142 } st_case_142: -// line internal/scanner/scanner.go:4955 + // line internal/scanner/scanner.go:4955 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6108,7 +6108,7 @@ func (lex *Lexer) Lex() *Token { } goto tr87 tr196: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st143 @@ -6117,7 +6117,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof143 } st_case_143: -// line internal/scanner/scanner.go:4982 + // line internal/scanner/scanner.go:4982 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6128,7 +6128,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr92: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st71 st71: @@ -6136,7 +6136,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof71 } st_case_71: -// line internal/scanner/scanner.go:5001 + // line internal/scanner/scanner.go:5001 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6145,7 +6145,7 @@ func (lex *Lexer) Lex() *Token { } goto st71 tr93: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st72 st72: @@ -6153,7 +6153,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof72 } st_case_72: -// line internal/scanner/scanner.go:5018 + // line internal/scanner/scanner.go:5018 switch lex.data[(lex.p)] { case 10: goto tr93 @@ -6162,7 +6162,7 @@ func (lex *Lexer) Lex() *Token { } goto tr92 tr94: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st73 st73: @@ -6170,7 +6170,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof73 } st_case_73: -// line internal/scanner/scanner.go:5035 + // line internal/scanner/scanner.go:5035 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6181,10 +6181,10 @@ func (lex *Lexer) Lex() *Token { } goto st71 tr197: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:176 lex.act = 12 goto st144 st144: @@ -6192,7 +6192,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof144 } st_case_144: -// line internal/scanner/scanner.go:5057 + // line internal/scanner/scanner.go:5057 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6212,10 +6212,10 @@ func (lex *Lexer) Lex() *Token { } goto tr269 tr270: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st145 st145: @@ -6223,7 +6223,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof145 } st_case_145: -// line internal/scanner/scanner.go:5088 + // line internal/scanner/scanner.go:5088 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6235,10 +6235,10 @@ func (lex *Lexer) Lex() *Token { } goto tr265 tr97: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:176 lex.act = 12 goto st146 st146: @@ -6246,7 +6246,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof146 } st_case_146: -// line internal/scanner/scanner.go:5111 + // line internal/scanner/scanner.go:5111 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6280,10 +6280,10 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr98: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:166 + // line internal/scanner/scanner.rl:166 lex.act = 11 goto st147 st147: @@ -6291,7 +6291,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof147 } st_case_147: -// line internal/scanner/scanner.go:5156 + // line internal/scanner/scanner.go:5156 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6318,10 +6318,10 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr99: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:191 + // line internal/scanner/scanner.rl:191 lex.act = 13 goto st148 st148: @@ -6329,7 +6329,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof148 } st_case_148: -// line internal/scanner/scanner.go:5194 + // line internal/scanner/scanner.go:5194 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6356,7 +6356,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr199: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st150 @@ -6365,7 +6365,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof150 } st_case_150: -// line internal/scanner/scanner.go:5230 + // line internal/scanner/scanner.go:5230 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6381,7 +6381,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr104: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st77 st77: @@ -6389,7 +6389,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof77 } st_case_77: -// line internal/scanner/scanner.go:5254 + // line internal/scanner/scanner.go:5254 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6405,7 +6405,7 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr105: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st78 st78: @@ -6413,7 +6413,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof78 } st_case_78: -// line internal/scanner/scanner.go:5278 + // line internal/scanner/scanner.go:5278 switch lex.data[(lex.p)] { case 10: goto tr105 @@ -6429,7 +6429,7 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr106: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st79 st79: @@ -6437,13 +6437,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof79 } st_case_79: -// line internal/scanner/scanner.go:5302 + // line internal/scanner/scanner.go:5302 if lex.data[(lex.p)] == 10 { goto st78 } goto tr22 tr107: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st80 st80: @@ -6451,13 +6451,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof80 } st_case_80: -// line internal/scanner/scanner.go:5316 + // line internal/scanner/scanner.go:5316 if lex.data[(lex.p)] == 62 { goto tr108 } goto tr22 tr108: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st151 @@ -6466,7 +6466,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof151 } st_case_151: -// line internal/scanner/scanner.go:5331 + // line internal/scanner/scanner.go:5331 switch lex.data[(lex.p)] { case 10: goto st152 @@ -6504,10 +6504,10 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr280: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:306 lex.act = 118 goto st154 st154: @@ -6515,7 +6515,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof154 } st_case_154: -// line internal/scanner/scanner.go:5380 + // line internal/scanner/scanner.go:5380 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6575,7 +6575,7 @@ func (lex *Lexer) Lex() *Token { } goto tr115 tr115: -// line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:36 lblStart = lex.p goto st84 st84: @@ -6583,7 +6583,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof84 } st_case_84: -// line internal/scanner/scanner.go:5448 + // line internal/scanner/scanner.go:5448 switch lex.data[(lex.p)] { case 34: goto tr116 @@ -6609,7 +6609,7 @@ func (lex *Lexer) Lex() *Token { } goto st84 tr116: -// line internal/scanner/scanner.rl:37 + // line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st85 st85: @@ -6617,7 +6617,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof85 } st_case_85: -// line internal/scanner/scanner.go:5482 + // line internal/scanner/scanner.go:5482 switch lex.data[(lex.p)] { case 10: goto st155 @@ -6626,7 +6626,7 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr122: -// line internal/scanner/scanner.rl:37 + // line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st155 st155: @@ -6634,10 +6634,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof155 } st_case_155: -// line internal/scanner/scanner.go:5499 + // line internal/scanner/scanner.go:5499 goto tr285 tr123: -// line internal/scanner/scanner.rl:37 + // line internal/scanner/scanner.rl:37 lblEnd = lex.p goto st86 st86: @@ -6645,7 +6645,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof86 } st_case_86: -// line internal/scanner/scanner.go:5510 + // line internal/scanner/scanner.go:5510 if lex.data[(lex.p)] == 10 { goto st155 } @@ -6672,7 +6672,7 @@ func (lex *Lexer) Lex() *Token { } goto tr120 tr120: -// line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:36 lblStart = lex.p goto st88 st88: @@ -6680,7 +6680,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof88 } st_case_88: -// line internal/scanner/scanner.go:5545 + // line internal/scanner/scanner.go:5545 switch lex.data[(lex.p)] { case 39: goto tr116 @@ -6706,7 +6706,7 @@ func (lex *Lexer) Lex() *Token { } goto st88 tr114: -// line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:36 lblStart = lex.p goto st89 st89: @@ -6714,7 +6714,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof89 } st_case_89: -// line internal/scanner/scanner.go:5579 + // line internal/scanner/scanner.go:5579 switch lex.data[(lex.p)] { case 10: goto tr122 @@ -6805,7 +6805,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr296: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st162 @@ -6814,7 +6814,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof162 } st_case_162: -// line internal/scanner/scanner.go:5679 + // line internal/scanner/scanner.go:5679 switch lex.data[(lex.p)] { case 10: goto st163 @@ -6890,493 +6890,493 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr211: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:347 lex.act = 135 goto st166 tr307: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:204 + // line internal/scanner/scanner.rl:204 lex.act = 16 goto st166 tr313: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:202 + // line internal/scanner/scanner.rl:202 lex.act = 14 goto st166 tr314: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:275 + // line internal/scanner/scanner.rl:275 lex.act = 87 goto st166 tr317: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:203 + // line internal/scanner/scanner.rl:203 lex.act = 15 goto st166 tr322: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:205 + // line internal/scanner/scanner.rl:205 lex.act = 17 goto st166 tr334: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:206 + // line internal/scanner/scanner.rl:206 lex.act = 18 goto st166 tr335: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:207 + // line internal/scanner/scanner.rl:207 lex.act = 19 goto st166 tr337: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:208 + // line internal/scanner/scanner.rl:208 lex.act = 20 goto st166 tr344: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:233 + // line internal/scanner/scanner.rl:233 lex.act = 45 goto st166 tr348: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:209 + // line internal/scanner/scanner.rl:209 lex.act = 21 goto st166 tr350: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:210 + // line internal/scanner/scanner.rl:210 lex.act = 22 goto st166 tr354: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:211 + // line internal/scanner/scanner.rl:211 lex.act = 23 goto st166 tr358: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:212 + // line internal/scanner/scanner.rl:212 lex.act = 24 goto st166 tr361: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:215 + // line internal/scanner/scanner.rl:215 lex.act = 27 goto st166 tr367: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:213 + // line internal/scanner/scanner.rl:213 lex.act = 25 goto st166 tr371: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:214 + // line internal/scanner/scanner.rl:214 lex.act = 26 goto st166 tr372: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:227 + // line internal/scanner/scanner.rl:227 lex.act = 39 goto st166 tr380: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:216 + // line internal/scanner/scanner.rl:216 lex.act = 28 goto st166 tr385: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:218 + // line internal/scanner/scanner.rl:218 lex.act = 30 goto st166 tr388: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:219 + // line internal/scanner/scanner.rl:219 lex.act = 31 goto st166 tr400: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:220 + // line internal/scanner/scanner.rl:220 lex.act = 32 goto st166 tr407: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:222 + // line internal/scanner/scanner.rl:222 lex.act = 34 goto st166 tr408: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:223 + // line internal/scanner/scanner.rl:223 lex.act = 35 goto st166 tr413: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:224 + // line internal/scanner/scanner.rl:224 lex.act = 36 goto st166 tr417: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:225 + // line internal/scanner/scanner.rl:225 lex.act = 37 goto st166 tr419: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:226 + // line internal/scanner/scanner.rl:226 lex.act = 38 goto st166 tr425: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:228 + // line internal/scanner/scanner.rl:228 lex.act = 40 goto st166 tr427: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:234 + // line internal/scanner/scanner.rl:234 lex.act = 46 goto st166 tr434: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:230 + // line internal/scanner/scanner.rl:230 lex.act = 42 goto st166 tr440: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:232 + // line internal/scanner/scanner.rl:232 lex.act = 44 goto st166 tr446: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:235 + // line internal/scanner/scanner.rl:235 lex.act = 47 goto st166 tr448: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:236 + // line internal/scanner/scanner.rl:236 lex.act = 48 goto st166 tr449: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:237 + // line internal/scanner/scanner.rl:237 lex.act = 49 goto st166 tr460: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:239 + // line internal/scanner/scanner.rl:239 lex.act = 51 goto st166 tr473: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:262 lex.act = 74 goto st166 tr481: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:240 + // line internal/scanner/scanner.rl:240 lex.act = 52 goto st166 tr485: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:241 + // line internal/scanner/scanner.rl:241 lex.act = 53 goto st166 tr491: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:242 + // line internal/scanner/scanner.rl:242 lex.act = 54 goto st166 tr494: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:238 + // line internal/scanner/scanner.rl:238 lex.act = 50 goto st166 tr497: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:243 + // line internal/scanner/scanner.rl:243 lex.act = 55 goto st166 tr506: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:244 + // line internal/scanner/scanner.rl:244 lex.act = 56 goto st166 tr507: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:274 + // line internal/scanner/scanner.rl:274 lex.act = 86 goto st166 tr508: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:276 + // line internal/scanner/scanner.rl:276 lex.act = 88 goto st166 tr515: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:247 + // line internal/scanner/scanner.rl:247 lex.act = 59 goto st166 tr518: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:245 + // line internal/scanner/scanner.rl:245 lex.act = 57 goto st166 tr524: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:248 + // line internal/scanner/scanner.rl:248 lex.act = 60 goto st166 tr528: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:246 + // line internal/scanner/scanner.rl:246 lex.act = 58 goto st166 tr541: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:264 + // line internal/scanner/scanner.rl:264 lex.act = 76 goto st166 tr544: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:249 + // line internal/scanner/scanner.rl:249 lex.act = 61 goto st166 tr550: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:250 + // line internal/scanner/scanner.rl:250 lex.act = 62 goto st166 tr554: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:251 + // line internal/scanner/scanner.rl:251 lex.act = 63 goto st166 tr559: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:252 + // line internal/scanner/scanner.rl:252 lex.act = 64 goto st166 tr561: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:254 + // line internal/scanner/scanner.rl:254 lex.act = 66 goto st166 tr563: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:253 + // line internal/scanner/scanner.rl:253 lex.act = 65 goto st166 tr568: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:255 + // line internal/scanner/scanner.rl:255 lex.act = 67 goto st166 tr569: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:256 + // line internal/scanner/scanner.rl:256 lex.act = 68 goto st166 tr571: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:257 + // line internal/scanner/scanner.rl:257 lex.act = 69 goto st166 tr575: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:258 lex.act = 70 goto st166 tr577: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:277 + // line internal/scanner/scanner.rl:277 lex.act = 89 goto st166 tr586: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:259 lex.act = 71 goto st166 tr602: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:265 + // line internal/scanner/scanner.rl:265 lex.act = 77 goto st166 tr606: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:266 + // line internal/scanner/scanner.rl:266 lex.act = 78 goto st166 tr612: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:267 + // line internal/scanner/scanner.rl:267 lex.act = 79 goto st166 tr620: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:268 lex.act = 80 goto st166 tr632: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:273 + // line internal/scanner/scanner.rl:273 lex.act = 85 goto st166 tr637: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:269 lex.act = 81 goto st166 tr644: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:271 lex.act = 83 goto st166 tr654: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:270 lex.act = 82 goto st166 tr660: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:272 + // line internal/scanner/scanner.rl:272 lex.act = 84 goto st166 st166: @@ -7384,7 +7384,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof166 } st_case_166: -// line internal/scanner/scanner.go:6249 + // line internal/scanner/scanner.go:6249 if lex.data[(lex.p)] == 96 { goto tr11 } @@ -7717,10 +7717,10 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr205: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:347 lex.act = 135 goto st177 st177: @@ -7728,7 +7728,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof177 } st_case_177: -// line internal/scanner/scanner.go:6593 + // line internal/scanner/scanner.go:6593 switch lex.data[(lex.p)] { case 34: goto st7 @@ -14713,7 +14713,7 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr581: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st397 @@ -14722,7 +14722,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof397 } st_case_397: -// line internal/scanner/scanner.go:13587 + // line internal/scanner/scanner.go:13587 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14765,7 +14765,7 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr134: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st93 st93: @@ -14773,7 +14773,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof93 } st_case_93: -// line internal/scanner/scanner.go:13638 + // line internal/scanner/scanner.go:13638 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14791,7 +14791,7 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr135: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st94 st94: @@ -14799,7 +14799,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof94 } st_case_94: -// line internal/scanner/scanner.go:13664 + // line internal/scanner/scanner.go:13664 switch lex.data[(lex.p)] { case 10: goto tr135 @@ -14817,7 +14817,7 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr136: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st95 st95: @@ -14825,13 +14825,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof95 } st_case_95: -// line internal/scanner/scanner.go:13690 + // line internal/scanner/scanner.go:13690 if lex.data[(lex.p)] == 10 { goto st94 } goto tr129 tr137: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st96 st96: @@ -14839,7 +14839,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof96 } st_case_96: -// line internal/scanner/scanner.go:13704 + // line internal/scanner/scanner.go:13704 switch lex.data[(lex.p)] { case 82: goto st97 @@ -16943,14 +16943,14 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr141: -// line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:381 (lex.p) = (lex.te) - 1 { lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) } goto st468 tr663: -// line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -16960,7 +16960,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr668: -// line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { @@ -16968,9 +16968,9 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr670: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { @@ -16978,7 +16978,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr674: -// line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) (lex.p)-- { @@ -16989,7 +16989,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr675: -// line internal/scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:382 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17003,7 +17003,7 @@ func (lex *Lexer) Lex() *Token { goto st468 tr676: lex.cs = 468 -// line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:383 lex.te = (lex.p) (lex.p)-- { @@ -17017,17 +17017,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st468: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof468 } st_case_468: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:15860 + // line internal/scanner/scanner.go:15860 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17064,15 +17064,15 @@ func (lex *Lexer) Lex() *Token { } goto st473 tr664: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st469 tr671: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st469 st469: @@ -17080,7 +17080,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof469 } st_case_469: -// line internal/scanner/scanner.go:15913 + // line internal/scanner/scanner.go:15913 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17094,15 +17094,15 @@ func (lex *Lexer) Lex() *Token { } goto tr668 tr142: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st470 tr672: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st470 st470: @@ -17110,7 +17110,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof470 } st_case_470: -// line internal/scanner/scanner.go:15943 + // line internal/scanner/scanner.go:15943 switch lex.data[(lex.p)] { case 10: goto tr672 @@ -17124,7 +17124,7 @@ func (lex *Lexer) Lex() *Token { } goto tr670 tr673: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st99 st99: @@ -17132,7 +17132,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof99 } st_case_99: -// line internal/scanner/scanner.go:15965 + // line internal/scanner/scanner.go:15965 if lex.data[(lex.p)] == 10 { goto tr142 } @@ -17183,7 +17183,7 @@ func (lex *Lexer) Lex() *Token { goto st473 tr679: lex.cs = 474 -// line NONE:1 + // line NONE:1 switch lex.act { case 0: { @@ -17208,9 +17208,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr680: lex.cs = 474 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:388 lex.te = (lex.p) (lex.p)-- { @@ -17224,20 +17224,20 @@ func (lex *Lexer) Lex() *Token { } goto _again st474: -// line NONE:1 + // line NONE:1 lex.ts = 0 -// line NONE:1 + // line NONE:1 lex.act = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof474 } st_case_474: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:16059 + // line internal/scanner/scanner.go:16059 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17288,19 +17288,19 @@ func (lex *Lexer) Lex() *Token { lex.cs = 0 goto _out tr677: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:388 lex.act = 146 goto st475 tr681: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:388 lex.act = 146 goto st475 st475: @@ -17308,7 +17308,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof475 } st_case_475: -// line internal/scanner/scanner.go:16130 + // line internal/scanner/scanner.go:16130 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17355,7 +17355,7 @@ func (lex *Lexer) Lex() *Token { } goto tr679 tr682: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st476 st476: @@ -17363,7 +17363,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof476 } st_case_476: -// line internal/scanner/scanner.go:16185 + // line internal/scanner/scanner.go:16185 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17410,7 +17410,7 @@ func (lex *Lexer) Lex() *Token { } goto tr680 tr143: -// line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17421,7 +17421,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr689: -// line internal/scanner/scanner.rl:399 + // line internal/scanner/scanner.rl:399 lex.te = (lex.p) (lex.p)-- { @@ -17437,7 +17437,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr690: -// line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:398 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17448,7 +17448,7 @@ func (lex *Lexer) Lex() *Token { goto st477 tr691: lex.cs = 477 -// line NONE:1 + // line NONE:1 switch lex.act { case 147: { @@ -17487,9 +17487,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr692: lex.cs = 477 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { @@ -17507,7 +17507,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr696: lex.cs = 477 -// line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { @@ -17524,17 +17524,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st477: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof477 } st_case_477: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:16314 + // line internal/scanner/scanner.go:16314 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17608,33 +17608,33 @@ func (lex *Lexer) Lex() *Token { } goto st0 tr685: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:400 lex.act = 150 goto st479 tr693: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:400 lex.act = 150 goto st479 tr695: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:398 lex.act = 148 goto st479 tr697: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:397 lex.act = 147 goto st479 st479: @@ -17642,7 +17642,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof479 } st_case_479: -// line internal/scanner/scanner.go:16422 + // line internal/scanner/scanner.go:16422 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17689,7 +17689,7 @@ func (lex *Lexer) Lex() *Token { } goto tr691 tr694: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st480 st480: @@ -17697,7 +17697,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof480 } st_case_480: -// line internal/scanner/scanner.go:16477 + // line internal/scanner/scanner.go:16477 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17854,7 +17854,7 @@ func (lex *Lexer) Lex() *Token { } goto tr696 tr145: -// line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17866,7 +17866,7 @@ func (lex *Lexer) Lex() *Token { goto st483 tr699: lex.cs = 483 -// line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:415 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17879,7 +17879,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr706: -// line internal/scanner/scanner.rl:414 + // line internal/scanner/scanner.rl:414 lex.te = (lex.p) (lex.p)-- { @@ -17895,7 +17895,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr707: -// line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:413 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17906,7 +17906,7 @@ func (lex *Lexer) Lex() *Token { goto st483 tr708: lex.cs = 483 -// line NONE:1 + // line NONE:1 switch lex.act { case 151: { @@ -17951,9 +17951,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr709: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { @@ -17967,7 +17967,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr713: -// line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { @@ -17981,17 +17981,17 @@ func (lex *Lexer) Lex() *Token { } goto st483 st483: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof483 } st_case_483: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:16711 + // line internal/scanner/scanner.go:16711 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18069,40 +18069,40 @@ func (lex *Lexer) Lex() *Token { } goto st0 tr701: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:416 lex.act = 155 goto st485 tr704: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:415 lex.act = 154 goto st485 tr710: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:416 lex.act = 155 goto st485 tr712: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:413 lex.act = 152 goto st485 tr714: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:412 lex.act = 151 goto st485 st485: @@ -18110,7 +18110,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof485 } st_case_485: -// line internal/scanner/scanner.go:16830 + // line internal/scanner/scanner.go:16830 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18157,7 +18157,7 @@ func (lex *Lexer) Lex() *Token { } goto tr708 tr711: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st486 st486: @@ -18165,7 +18165,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof486 } st_case_486: -// line internal/scanner/scanner.go:16885 + // line internal/scanner/scanner.go:16885 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18322,7 +18322,7 @@ func (lex *Lexer) Lex() *Token { } goto tr713 tr146: -// line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18334,7 +18334,7 @@ func (lex *Lexer) Lex() *Token { goto st489 tr715: lex.cs = 489 -// line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:427 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18347,7 +18347,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr723: -// line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) (lex.p)-- { @@ -18363,7 +18363,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr724: -// line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18374,7 +18374,7 @@ func (lex *Lexer) Lex() *Token { goto st489 tr725: lex.cs = 489 -// line NONE:1 + // line NONE:1 switch lex.act { case 156: { @@ -18419,9 +18419,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr726: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { @@ -18435,7 +18435,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr730: -// line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { @@ -18449,17 +18449,17 @@ func (lex *Lexer) Lex() *Token { } goto st489 st489: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof489 } st_case_489: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:17119 + // line internal/scanner/scanner.go:17119 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18537,40 +18537,40 @@ func (lex *Lexer) Lex() *Token { } goto st0 tr718: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:428 lex.act = 160 goto st491 tr720: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:427 lex.act = 159 goto st491 tr727: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:428 lex.act = 160 goto st491 tr729: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:425 lex.act = 157 goto st491 tr731: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:424 lex.act = 156 goto st491 st491: @@ -18578,7 +18578,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof491 } st_case_491: -// line internal/scanner/scanner.go:17238 + // line internal/scanner/scanner.go:17238 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18625,7 +18625,7 @@ func (lex *Lexer) Lex() *Token { } goto tr725 tr728: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st492 st492: @@ -18633,7 +18633,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof492 } st_case_492: -// line internal/scanner/scanner.go:17293 + // line internal/scanner/scanner.go:17293 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18791,7 +18791,7 @@ func (lex *Lexer) Lex() *Token { goto tr730 tr733: lex.cs = 495 -// line internal/scanner/scanner.rl:436 + // line internal/scanner/scanner.rl:436 lex.te = (lex.p) (lex.p)-- { @@ -18805,17 +18805,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st495: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof495 } st_case_495: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:17472 + // line internal/scanner/scanner.go:17472 if lex.data[(lex.p)] == 96 { goto st0 } @@ -18859,7 +18859,7 @@ func (lex *Lexer) Lex() *Token { } goto st496 tr147: -// line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:455 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -18871,7 +18871,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr148: -// line internal/scanner/scanner.rl:452 + // line internal/scanner/scanner.rl:452 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18885,7 +18885,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr734: -// line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:455 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18897,7 +18897,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr738: -// line internal/scanner/scanner.rl:454 + // line internal/scanner/scanner.rl:454 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18907,7 +18907,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr739: -// line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:455 lex.te = (lex.p) (lex.p)-- { @@ -18920,7 +18920,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr741: -// line internal/scanner/scanner.rl:451 + // line internal/scanner/scanner.rl:451 lex.te = (lex.p) (lex.p)-- { @@ -18934,7 +18934,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr743: -// line internal/scanner/scanner.rl:453 + // line internal/scanner/scanner.rl:453 lex.te = (lex.p) (lex.p)-- { @@ -18948,17 +18948,17 @@ func (lex *Lexer) Lex() *Token { } goto st497 st497: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof497 } st_case_497: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:17564 + // line internal/scanner/scanner.go:17564 switch lex.data[(lex.p)] { case 36: goto st498 @@ -19030,7 +19030,7 @@ func (lex *Lexer) Lex() *Token { } goto st499 tr736: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st500 @@ -19039,7 +19039,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof500 } st_case_500: -// line internal/scanner/scanner.go:17645 + // line internal/scanner/scanner.go:17645 if lex.data[(lex.p)] == 62 { goto st103 } @@ -19092,7 +19092,7 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr149: -// line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:459 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -19105,7 +19105,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr744: -// line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:465 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -19113,7 +19113,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr745: -// line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19123,7 +19123,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr748: -// line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19136,7 +19136,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr752: -// line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19146,9 +19146,9 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr753: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { @@ -19159,7 +19159,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr754: -// line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:465 lex.te = (lex.p) (lex.p)-- { @@ -19168,7 +19168,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr755: -// line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) (lex.p)-- { @@ -19182,7 +19182,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr757: -// line internal/scanner/scanner.rl:460 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -19196,7 +19196,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr758: -// line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:459 lex.te = (lex.p) (lex.p)-- { @@ -19210,7 +19210,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr762: -// line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) (lex.p)-- { @@ -19224,17 +19224,17 @@ func (lex *Lexer) Lex() *Token { } goto st502 st502: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof502 } st_case_502: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:17777 + // line internal/scanner/scanner.go:17777 switch lex.data[(lex.p)] { case 10: goto st503 @@ -19362,7 +19362,7 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr750: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st507 @@ -19371,7 +19371,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof507 } st_case_507: -// line internal/scanner/scanner.go:17914 + // line internal/scanner/scanner.go:17914 switch lex.data[(lex.p)] { case 95: goto st104 @@ -19385,7 +19385,7 @@ func (lex *Lexer) Lex() *Token { } goto tr758 tr150: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st508 @@ -19394,7 +19394,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof508 } st_case_508: -// line internal/scanner/scanner.go:17937 + // line internal/scanner/scanner.go:17937 if lex.data[(lex.p)] == 95 { goto st104 } @@ -19421,7 +19421,7 @@ func (lex *Lexer) Lex() *Token { } goto tr149 tr151: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st509 @@ -19430,7 +19430,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof509 } st_case_509: -// line internal/scanner/scanner.go:17973 + // line internal/scanner/scanner.go:17973 if lex.data[(lex.p)] == 95 { goto st105 } @@ -19457,7 +19457,7 @@ func (lex *Lexer) Lex() *Token { } goto tr149 tr152: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st510 @@ -19466,7 +19466,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof510 } st_case_510: -// line internal/scanner/scanner.go:18009 + // line internal/scanner/scanner.go:18009 if lex.data[(lex.p)] == 95 { goto st106 } @@ -19511,7 +19511,7 @@ func (lex *Lexer) Lex() *Token { goto st511 tr153: lex.cs = 512 -// line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:473 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -19520,7 +19520,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr155: lex.cs = 512 -// line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19535,7 +19535,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr763: lex.cs = 512 -// line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19544,7 +19544,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr765: lex.cs = 512 -// line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) (lex.p)-- { @@ -19553,17 +19553,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st512: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof512 } st_case_512: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:18088 + // line internal/scanner/scanner.go:18088 if lex.data[(lex.p)] == 96 { goto tr763 } @@ -19581,7 +19581,7 @@ func (lex *Lexer) Lex() *Token { } goto tr764 tr764: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st513 @@ -19590,7 +19590,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof513 } st_case_513: -// line internal/scanner/scanner.go:18115 + // line internal/scanner/scanner.go:18115 switch lex.data[(lex.p)] { case 91: goto tr155 @@ -19649,7 +19649,7 @@ func (lex *Lexer) Lex() *Token { } goto st107 tr156: -// line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:477 (lex.p) = (lex.te) - 1 { lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) @@ -19657,7 +19657,7 @@ func (lex *Lexer) Lex() *Token { goto st514 tr766: lex.cs = 514 -// line internal/scanner/scanner.rl:479 + // line internal/scanner/scanner.rl:479 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19666,7 +19666,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr769: lex.cs = 514 -// line internal/scanner/scanner.rl:478 + // line internal/scanner/scanner.rl:478 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19679,7 +19679,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr770: -// line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { @@ -19687,9 +19687,9 @@ func (lex *Lexer) Lex() *Token { } goto st514 tr772: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { @@ -19698,7 +19698,7 @@ func (lex *Lexer) Lex() *Token { goto st514 tr776: lex.cs = 514 -// line internal/scanner/scanner.rl:479 + // line internal/scanner/scanner.rl:479 lex.te = (lex.p) (lex.p)-- { @@ -19707,17 +19707,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st514: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof514 } st_case_514: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:18222 + // line internal/scanner/scanner.go:18222 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19733,15 +19733,15 @@ func (lex *Lexer) Lex() *Token { } goto tr766 tr767: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st515 tr773: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st515 st515: @@ -19749,7 +19749,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof515 } st_case_515: -// line internal/scanner/scanner.go:18254 + // line internal/scanner/scanner.go:18254 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19763,15 +19763,15 @@ func (lex *Lexer) Lex() *Token { } goto tr770 tr157: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st516 tr774: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st516 st516: @@ -19779,7 +19779,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof516 } st_case_516: -// line internal/scanner/scanner.go:18284 + // line internal/scanner/scanner.go:18284 switch lex.data[(lex.p)] { case 10: goto tr774 @@ -19793,7 +19793,7 @@ func (lex *Lexer) Lex() *Token { } goto tr772 tr775: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st108 st108: @@ -19801,7 +19801,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof108 } st_case_108: -// line internal/scanner/scanner.go:18306 + // line internal/scanner/scanner.go:18306 if lex.data[(lex.p)] == 10 { goto tr157 } @@ -19816,7 +19816,7 @@ func (lex *Lexer) Lex() *Token { } goto tr776 tr158: -// line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:483 (lex.p) = (lex.te) - 1 { lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) @@ -19824,7 +19824,7 @@ func (lex *Lexer) Lex() *Token { goto st518 tr777: lex.cs = 518 -// line internal/scanner/scanner.rl:485 + // line internal/scanner/scanner.rl:485 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19833,7 +19833,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr780: lex.cs = 518 -// line internal/scanner/scanner.rl:484 + // line internal/scanner/scanner.rl:484 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19846,7 +19846,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr781: -// line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { @@ -19854,9 +19854,9 @@ func (lex *Lexer) Lex() *Token { } goto st518 tr783: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { @@ -19865,7 +19865,7 @@ func (lex *Lexer) Lex() *Token { goto st518 tr787: lex.cs = 518 -// line internal/scanner/scanner.rl:485 + // line internal/scanner/scanner.rl:485 lex.te = (lex.p) (lex.p)-- { @@ -19874,17 +19874,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st518: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof518 } st_case_518: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:18369 + // line internal/scanner/scanner.go:18369 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19900,15 +19900,15 @@ func (lex *Lexer) Lex() *Token { } goto tr777 tr778: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st519 tr784: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st519 st519: @@ -19916,7 +19916,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof519 } st_case_519: -// line internal/scanner/scanner.go:18401 + // line internal/scanner/scanner.go:18401 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19930,15 +19930,15 @@ func (lex *Lexer) Lex() *Token { } goto tr781 tr159: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st520 tr785: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st520 st520: @@ -19946,7 +19946,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof520 } st_case_520: -// line internal/scanner/scanner.go:18431 + // line internal/scanner/scanner.go:18431 switch lex.data[(lex.p)] { case 10: goto tr785 @@ -19960,7 +19960,7 @@ func (lex *Lexer) Lex() *Token { } goto tr783 tr786: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st109 st109: @@ -19968,7 +19968,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof109 } st_case_109: -// line internal/scanner/scanner.go:18453 + // line internal/scanner/scanner.go:18453 if lex.data[(lex.p)] == 10 { goto tr159 } @@ -19983,7 +19983,7 @@ func (lex *Lexer) Lex() *Token { } goto tr787 tr160: -// line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:489 (lex.p) = (lex.te) - 1 { lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) @@ -19991,7 +19991,7 @@ func (lex *Lexer) Lex() *Token { goto st522 tr788: lex.cs = 522 -// line internal/scanner/scanner.rl:491 + // line internal/scanner/scanner.rl:491 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20000,7 +20000,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr791: lex.cs = 522 -// line internal/scanner/scanner.rl:490 + // line internal/scanner/scanner.rl:490 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -20013,7 +20013,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr792: -// line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { @@ -20021,9 +20021,9 @@ func (lex *Lexer) Lex() *Token { } goto st522 tr794: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { @@ -20032,7 +20032,7 @@ func (lex *Lexer) Lex() *Token { goto st522 tr798: lex.cs = 522 -// line internal/scanner/scanner.rl:491 + // line internal/scanner/scanner.rl:491 lex.te = (lex.p) (lex.p)-- { @@ -20041,17 +20041,17 @@ func (lex *Lexer) Lex() *Token { } goto _again st522: -// line NONE:1 + // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof522 } st_case_522: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:18516 + // line internal/scanner/scanner.go:18516 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20067,15 +20067,15 @@ func (lex *Lexer) Lex() *Token { } goto tr788 tr789: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st523 tr795: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st523 st523: @@ -20083,7 +20083,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof523 } st_case_523: -// line internal/scanner/scanner.go:18548 + // line internal/scanner/scanner.go:18548 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20097,15 +20097,15 @@ func (lex *Lexer) Lex() *Token { } goto tr792 tr161: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 goto st524 tr796: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st524 st524: @@ -20113,7 +20113,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof524 } st_case_524: -// line internal/scanner/scanner.go:18578 + // line internal/scanner/scanner.go:18578 switch lex.data[(lex.p)] { case 10: goto tr796 @@ -20127,7 +20127,7 @@ func (lex *Lexer) Lex() *Token { } goto tr794 tr797: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st110 st110: @@ -20135,7 +20135,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof110 } st_case_110: -// line internal/scanner/scanner.go:18600 + // line internal/scanner/scanner.go:18600 if lex.data[(lex.p)] == 10 { goto tr161 } @@ -20150,7 +20150,7 @@ func (lex *Lexer) Lex() *Token { } goto tr798 tr801: -// line NONE:1 + // line NONE:1 switch lex.act { case 0: { @@ -20167,9 +20167,9 @@ func (lex *Lexer) Lex() *Token { goto st526 tr802: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:495 lex.te = (lex.p) (lex.p)-- { @@ -20177,38 +20177,38 @@ func (lex *Lexer) Lex() *Token { } goto st526 st526: -// line NONE:1 + // line NONE:1 lex.ts = 0 -// line NONE:1 + // line NONE:1 lex.act = 0 if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof526 } st_case_526: -// line NONE:1 + // line NONE:1 lex.ts = (lex.p) -// line internal/scanner/scanner.go:18647 + // line internal/scanner/scanner.go:18647 if lex.data[(lex.p)] == 10 { goto st528 } goto tr799 tr799: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:495 lex.act = 186 goto st527 tr803: -// line NONE:1 + // line NONE:1 lex.te = (lex.p) + 1 -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) -// line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:495 lex.act = 186 goto st527 st527: @@ -20216,13 +20216,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof527 } st_case_527: -// line internal/scanner/scanner.go:18673 + // line internal/scanner/scanner.go:18673 if lex.data[(lex.p)] == 10 { goto st528 } goto tr799 tr804: -// line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:55 lex.newLines.Append(lex.p) goto st528 st528: @@ -20230,7 +20230,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof528 } st_case_528: -// line internal/scanner/scanner.go:18687 + // line internal/scanner/scanner.go:18687 if lex.data[(lex.p)] == 10 { goto tr804 } @@ -22852,7 +22852,7 @@ func (lex *Lexer) Lex() *Token { } } -// line internal/scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:499 token.Hidden = lex.hiddenTokens token.Value = lex.data[lex.ts:lex.te] diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 9199f1d..41a7092 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -353,7 +353,7 @@ func TestTokens(t *testing.T) { T_UNSET_CAST.String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -381,7 +381,7 @@ func TestShebang(t *testing.T) { "\n", } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -401,7 +401,7 @@ func TestShebangHtml(t *testing.T) { 0.1 ` - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -451,7 +451,7 @@ func TestNumberTokens(t *testing.T) { T_DNUMBER.String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -508,7 +508,7 @@ func TestConstantStrings(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -555,7 +555,7 @@ func TestSingleQuoteStringTokens(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) actual := []string{} for { @@ -642,7 +642,7 @@ func TestTeplateStringTokens(t *testing.T) { TokenID(int('"')).String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -727,7 +727,7 @@ func TestBackquoteStringTokens(t *testing.T) { TokenID(int('`')).String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -821,7 +821,7 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -894,7 +894,7 @@ CAT T_END_HEREDOC.String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -933,7 +933,7 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -964,7 +964,7 @@ func TestHereDocTokens73(t *testing.T) { T_VARIABLE.String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -994,7 +994,7 @@ CAT;` TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.phpVersion = "7.2" lexer.withHiddenTokens = true actual := []string{} @@ -1027,7 +1027,7 @@ func TestInlineHtmlNopTokens(t *testing.T) { T_INLINE_HTML.String(), } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true actual := []string{} @@ -1062,7 +1062,7 @@ func TestStringTokensAfterVariable(t *testing.T) { "\"", } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) actual := []string{} actualTokens := []string{} @@ -1095,7 +1095,7 @@ func TestSlashAfterVariable(t *testing.T) { "3", } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) actual := []string{} actualTokens := []string{} @@ -1132,7 +1132,7 @@ func TestCommentEnd(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true lexer.Lex() @@ -1161,7 +1161,7 @@ func TestCommentNewLine(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1190,7 +1190,7 @@ func TestCommentNewLine1(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1219,7 +1219,7 @@ func TestCommentNewLine2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1249,7 +1249,7 @@ func TestCommentWithPhpEndTag(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1279,7 +1279,7 @@ func TestInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1309,7 +1309,7 @@ func TestInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true lexer.Lex() @@ -1343,7 +1343,7 @@ func TestEmptyInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true lexer.Lex() @@ -1373,7 +1373,7 @@ func TestEmptyInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1387,7 +1387,7 @@ func TestMethodCallTokens(t *testing.T) { src := ` bar ( '' ) ;` - lexer := NewLexer([]byte(src), "7.4", Config{}) + lexer := NewLexer([]byte(src), "7.4", DefaultConfig) lexer.withHiddenTokens = true expected := []token.Token{ @@ -1469,7 +1469,7 @@ func TestYieldFromTokens(t *testing.T) { src := ` Date: Mon, 18 May 2020 21:44:03 +0300 Subject: [PATCH 019/140] [refactoring] remove scanner interface --- internal/php5/parser.go | 6 +----- internal/php7/parser.go | 6 +----- internal/scanner/lexer.go | 5 ----- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 0f4441d..c0e2ac4 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -11,13 +11,9 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -func (lval *yySymType) Token(t *scanner.Token) { - lval.token = t -} - // Parser structure type Parser struct { - Lexer scanner.Scanner + Lexer *scanner.Lexer currentToken *scanner.Token positionBuilder *positionbuilder.PositionBuilder rootNode ast.Vertex diff --git a/internal/php7/parser.go b/internal/php7/parser.go index df00e2d..f34ddc4 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -10,13 +10,9 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -func (lval *yySymType) Token(t *scanner.Token) { - lval.token = t -} - // Parser structure type Parser struct { - Lexer scanner.Scanner + Lexer *scanner.Lexer currentToken *scanner.Token positionBuilder *positionbuilder.PositionBuilder rootNode ast.Vertex diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 8cfc2b3..2308bcd 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -10,11 +10,6 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -type Scanner interface { - Lex() *Token - ReturnTokenToPool(t *Token) -} - type Config struct { WithHiddenTokens bool ErrHandlerFunc func(*errors.Error) From 21f3d88b0f5afa6c04503b4f227065ad9886947e Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 18 May 2020 22:36:39 +0300 Subject: [PATCH 020/140] [refactoring] update makefile --- Makefile | 12 ++++++------ cmd/php-parser/main.go | 21 ++++++++++++--------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 5f88103..6bcfbcd 100644 --- a/Makefile +++ b/Makefile @@ -19,8 +19,8 @@ cover: go test ./... --cover bench: - go test -benchmem -bench=. ./php5 - go test -benchmem -bench=. ./php7 + go test -benchmem -bench=. ./internal/php5 + go test -benchmem -bench=. ./internal/php7 compile: ./internal/php5/php5.go ./internal/php7/php7.go ./internal/scanner/scanner.go fmt sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./internal/php7/php7.go @@ -40,17 +40,17 @@ compile: ./internal/php5/php5.go ./internal/php7/php7.go ./internal/scanner/scan goyacc -o $@ $< cpu_pprof: - go test -cpuprofile cpu.pprof -bench=. -benchtime=20s ./php7 + go test -cpuprofile cpu.pprof -bench=. -benchtime=20s ./internal/php7 go tool pprof ./php7.test cpu.pprof mem_pprof: - go test -memprofile mem.pprof -bench=. -benchtime=20s -benchmem ./php7 + go test -memprofile mem.pprof -bench=. -benchtime=20s -benchmem ./internal/php7 go tool pprof -alloc_objects ./php7.test mem.pprof cpu_pprof_php5: - go test -cpuprofile cpu.prof -bench=. -benchtime=20s ./php5 + go test -cpuprofile cpu.prof -bench=. -benchtime=20s ./internal/php5 go tool pprof ./php5.test cpu.prof mem_pprof_php5: - go test -memprofile mem.prof -bench=. -benchtime=20s -benchmem ./php5 + go test -memprofile mem.prof -bench=. -benchtime=20s -benchmem ./internal/php5 go tool pprof -alloc_objects ./php5.test mem.prof diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 9300288..06b11a2 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -1,9 +1,9 @@ package main import ( + "bytes" "flag" "fmt" - "github.com/z7zmey/php-parser/pkg/ast/traverser" "io/ioutil" "log" "os" @@ -13,8 +13,11 @@ import ( "github.com/pkg/profile" "github.com/yookoala/realpath" + + "github.com/z7zmey/php-parser/pkg/ast/traverser" "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/parser" + "github.com/z7zmey/php-parser/pkg/printer" ) var wg sync.WaitGroup @@ -138,14 +141,14 @@ func printerWorker(r <-chan result) { fmt.Fprintf(os.Stdout, "==> %s\n", e) } - //if *printBack { - // o := bytes.NewBuffer([]byte{}) - // p := printer.NewPrinter(o) - // p.Print(res.parser.GetRootNode()) - // - // err := ioutil.WriteFile(res.path, o.Bytes(), 0644) - // checkErr(err) - //} + if *printBack { + o := bytes.NewBuffer([]byte{}) + p := printer.NewPrinter(o) + p.Print(res.parser.GetRootNode()) + + err := ioutil.WriteFile(res.path, o.Bytes(), 0644) + checkErr(err) + } if *showResolvedNs { v := visitor.NewNamespaceResolver() From 009d638ee24e0df5e76c22dd5ea66fe57b011d8d Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 18 May 2020 22:37:13 +0300 Subject: [PATCH 021/140] [refactoring] version testing --- internal/version/version.go | 8 ++++---- internal/version/version_test.go | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 internal/version/version_test.go diff --git a/internal/version/version.go b/internal/version/version.go index f11d933..9834ebf 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -42,17 +42,17 @@ func Compare(a string, b string) (int, error) { } func parse(v string) (version, error) { - parts := strings.Split(v, ".") - if len(parts) != 2 { + i := strings.Index(v, ".") + if i == -1 { return version{}, errors.New("version must contain major and minor parts") } - major, err := strconv.Atoi(parts[0]) + major, err := strconv.Atoi(v[:i]) if err != nil { return version{}, err } - minor, err := strconv.Atoi(parts[1]) + minor, err := strconv.Atoi(v[i+1:]) if err != nil { return version{}, err } diff --git a/internal/version/version_test.go b/internal/version/version_test.go new file mode 100644 index 0000000..5f8a2f7 --- /dev/null +++ b/internal/version/version_test.go @@ -0,0 +1,29 @@ +package version_test + +import ( + "gotest.tools/assert" + "testing" + + "github.com/z7zmey/php-parser/internal/version" +) + +func TestSmaller(t *testing.T) { + r, err := version.Compare("7.3", "5.6") + + assert.NilError(t, err) + assert.Equal(t, 1, r) +} + +func TestGreater(t *testing.T) { + r, err := version.Compare("5.6", "7.3") + + assert.NilError(t, err) + assert.Equal(t, -1, r) +} + +func TestEqual(t *testing.T) { + r, err := version.Compare("7.3", "7.3") + + assert.NilError(t, err) + assert.Equal(t, 0, r) +} From ee673e5667014765b7e76710137055f51e414cb0 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 29 Jun 2020 14:15:58 +0300 Subject: [PATCH 022/140] [refactoring] update internal parser --- cmd/php-parser/main.go | 10 +++++++ internal/php5/parser.go | 64 +++++++++++++++++++---------------------- internal/php7/parser.go | 10 ++----- 3 files changed, 43 insertions(+), 41 deletions(-) diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 06b11a2..557f699 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -10,6 +10,7 @@ import ( "path/filepath" "runtime" "sync" + "time" "github.com/pkg/profile" "github.com/yookoala/realpath" @@ -28,6 +29,7 @@ var withFreeFloating *bool var showResolvedNs *bool var printBack *bool var printPath *bool +var printExecTime *bool type file struct { path string @@ -40,6 +42,9 @@ type result struct { } func main() { + start := time.Now() + + printExecTime = flag.Bool("time", false, "print execution time") 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") @@ -84,6 +89,11 @@ func main() { wg.Wait() close(fileCh) close(resultCh) + + elapsed := time.Since(start) + if *printExecTime { + log.Printf("took: %s", elapsed) + } } func processPath(pathList []string, fileCh chan<- *file) { diff --git a/internal/php5/parser.go b/internal/php5/parser.go index c0e2ac4..fe3e295 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -41,41 +41,41 @@ func NewParser(src []byte, v string, withTokens bool) *Parser { } // Lex proxy to scanner Lex -func (l *Parser) Lex(lval *yySymType) int { - t := l.Lexer.Lex() +func (p *Parser) Lex(lval *yySymType) int { + t := p.Lexer.Lex() - l.currentToken = t + p.currentToken = t lval.token = t return int(t.ID) } -func (l *Parser) Error(msg string) { - var pos = l.currentToken.Position +func (p *Parser) Error(msg string) { + var pos = p.currentToken.Position - l.errors = append(l.errors, errors.NewError(msg, &pos)) + p.errors = append(p.errors, errors.NewError(msg, &pos)) } // GetErrors returns errors list -func (l *Parser) GetErrors() []*errors.Error { - return l.errors +func (p *Parser) GetErrors() []*errors.Error { + return p.errors } // Parse the php7 Parser entrypoint -func (l *Parser) Parse() int { +func (p *Parser) Parse() int { // init - l.errors = nil - l.rootNode = nil - l.positionBuilder = &positionbuilder.PositionBuilder{} + p.errors = nil + p.rootNode = nil + p.positionBuilder = &positionbuilder.PositionBuilder{} // parse - return yyParse(l) + return yyParse(p) } // GetRootNode returns root node -func (l *Parser) GetRootNode() ast.Vertex { - return l.rootNode +func (p *Parser) GetRootNode() ast.Vertex { + return p.rootNode } // helpers @@ -87,16 +87,12 @@ func lastNode(nn []ast.Vertex) ast.Vertex { return nn[len(nn)-1] } -func firstNode(nn []ast.Vertex) ast.Vertex { - return nn[0] -} - func isDollar(r rune) bool { return r == '$' } -func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if l.withTokens == false { +func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { + if p.withTokens == false { return } @@ -104,12 +100,12 @@ func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { return } - l.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) + p.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) delete(src.GetNode().Tokens, token.Start) } -func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { - if l.withTokens == false { +func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, strings []token.Token) { + if p.withTokens == false { return } @@ -122,11 +118,11 @@ func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []tok *dstCollection = make(token.Collection) } - (*dstCollection)[p] = strings + (*dstCollection)[pos] = strings } -func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if l.withTokens == false { +func (p *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { + if p.withTokens == false { return []token.Token{} } @@ -138,12 +134,12 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } } -func (l *Parser) addDollarToken(v ast.Vertex) { - if l.withTokens == false { +func (p *Parser) addDollarToken(v ast.Vertex) { + if p.withTokens == false { return } - l.setFreeFloating(v, token.Dollar, []token.Token{ + p.setFreeFloating(v, token.Dollar, []token.Token{ { ID: token.ID('$'), Value: []byte("$"), @@ -151,8 +147,8 @@ func (l *Parser) addDollarToken(v ast.Vertex) { }) } -func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if l.withTokens == false { +func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { + if p.withTokens == false { return } @@ -163,7 +159,7 @@ func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } if semiColon[0].Value[0] == ';' { - l.setFreeFloating(prevNode, token.SemiColon, []token.Token{ + p.setFreeFloating(prevNode, token.SemiColon, []token.Token{ { ID: token.ID(';'), Value: semiColon[0].Value[0:1], @@ -192,7 +188,7 @@ func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. Value: semiColon[0].Value[vlen-tlen:], }) - l.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) + p.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) } func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { diff --git a/internal/php7/parser.go b/internal/php7/parser.go index f34ddc4..1b3c0a6 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -85,10 +85,6 @@ func lastNode(nn []ast.Vertex) ast.Vertex { return nn[len(nn)-1] } -func firstNode(nn []ast.Vertex) ast.Vertex { - return nn[0] -} - func isDollar(r rune) bool { return r == '$' } @@ -106,8 +102,8 @@ func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { delete(src.GetNode().Tokens, token.Start) } -func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []token.Token) { - if l.withTokens == false { +func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, strings []token.Token) { + if p.withTokens == false { return } @@ -120,7 +116,7 @@ func (l *Parser) setFreeFloating(dst ast.Vertex, p token.Position, strings []tok *dstCollection = make(token.Collection) } - (*dstCollection)[p] = strings + (*dstCollection)[pos] = strings } func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { From 7eff83624ea2b9cb045ddaf46106aa6645f53a74 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 29 Jun 2020 14:38:10 +0300 Subject: [PATCH 023/140] [refactoring] internal position package --- internal/php5/parser.go | 13 +- internal/php5/php5.go | 2043 +++++++++-------- internal/php5/php5.y | 1005 ++++---- internal/php7/parser.go | 13 +- internal/php7/php7.go | 1703 +++++++------- internal/php7/php7.y | 719 +++--- internal/position/position.go | 204 ++ .../position_test.go} | 40 +- internal/positionbuilder/position_builder.go | 207 -- 9 files changed, 2953 insertions(+), 2994 deletions(-) create mode 100644 internal/position/position.go rename internal/{positionbuilder/position_builder_test.go => position/position_test.go} (90%) delete mode 100644 internal/positionbuilder/position_builder.go diff --git a/internal/php5/parser.go b/internal/php5/parser.go index fe3e295..19702d0 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" - "github.com/z7zmey/php-parser/internal/positionbuilder" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -13,12 +12,11 @@ import ( // Parser structure type Parser struct { - Lexer *scanner.Lexer - currentToken *scanner.Token - positionBuilder *positionbuilder.PositionBuilder - rootNode ast.Vertex - errors []*errors.Error - withTokens bool + Lexer *scanner.Lexer + currentToken *scanner.Token + rootNode ast.Vertex + errors []*errors.Error + withTokens bool } // NewParser creates and returns new Parser @@ -66,7 +64,6 @@ func (p *Parser) Parse() int { // init p.errors = nil p.rootNode = nil - p.positionBuilder = &positionbuilder.PositionBuilder{} // parse diff --git a/internal/php5/php5.go b/internal/php5/php5.go index a087602..22e8d54 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -11,12 +11,13 @@ import ( "bytes" "strconv" + "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php5/php5.y:15 +// line internal/php5/php5.y:16 type yySymType struct { yys int node ast.Vertex @@ -346,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7193 +// line internal/php5/php5.y:7194 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2315,10 +2316,10 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:276 + // line internal/php5/php5.y:277 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} - yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) @@ -2326,7 +2327,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:288 + // line internal/php5/php5.y:289 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2341,7 +2342,7 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:301 + // line internal/php5/php5.y:302 { yyVAL.list = []ast.Vertex{} @@ -2349,13 +2350,13 @@ yydefault: } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:310 + // line internal/php5/php5.y:311 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Hidden) @@ -2364,13 +2365,13 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:323 + // line internal/php5/php5.y:324 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -2380,7 +2381,7 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:340 + // line internal/php5/php5.y:341 { // error yyVAL.node = nil @@ -2389,7 +2390,7 @@ yydefault: } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:347 + // line internal/php5/php5.y:348 { yyVAL.node = yyDollar[1].node @@ -2397,7 +2398,7 @@ yydefault: } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:353 + // line internal/php5/php5.y:354 { yyVAL.node = yyDollar[1].node @@ -2405,7 +2406,7 @@ yydefault: } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:359 + // line internal/php5/php5.y:360 { yyVAL.node = yyDollar[1].node @@ -2413,12 +2414,12 @@ yydefault: } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:365 + // line internal/php5/php5.y:366 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2431,14 +2432,14 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:381 + // line internal/php5/php5.y:382 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2450,14 +2451,14 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:398 + // line internal/php5/php5.y:399 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2469,12 +2470,12 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:415 + // line internal/php5/php5.y:416 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2485,12 +2486,12 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:429 + // line internal/php5/php5.y:430 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2501,14 +2502,14 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:443 + // line internal/php5/php5.y:444 { useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} // save position - useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + useType.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2520,14 +2521,14 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:460 + // line internal/php5/php5.y:461 { useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} // save position - useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + useType.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2539,12 +2540,12 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:477 + // line internal/php5/php5.y:478 { yyVAL.node = yyDollar[1].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Hidden) @@ -2554,7 +2555,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:493 + // line internal/php5/php5.y:494 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2565,7 +2566,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:502 + // line internal/php5/php5.y:503 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2573,14 +2574,14 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:511 + // line internal/php5/php5.y:512 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2589,16 +2590,16 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:525 + // line internal/php5/php5.y:526 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2609,14 +2610,14 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:543 + // line internal/php5/php5.y:544 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2627,16 +2628,16 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:559 + // line internal/php5/php5.y:560 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2649,7 +2650,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:582 + // line internal/php5/php5.y:583 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2660,7 +2661,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:591 + // line internal/php5/php5.y:592 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2668,14 +2669,14 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:600 + // line internal/php5/php5.y:601 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2684,16 +2685,16 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:614 + // line internal/php5/php5.y:615 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2704,14 +2705,14 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:632 + // line internal/php5/php5.y:633 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2722,16 +2723,16 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:648 + // line internal/php5/php5.y:649 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2744,7 +2745,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:671 + // line internal/php5/php5.y:672 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2755,7 +2756,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:680 + // line internal/php5/php5.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2763,14 +2764,14 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:689 + // line internal/php5/php5.y:690 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2779,16 +2780,16 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:703 + // line internal/php5/php5.y:704 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2799,14 +2800,14 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:721 + // line internal/php5/php5.y:722 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2817,16 +2818,16 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:737 + // line internal/php5/php5.y:738 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2839,7 +2840,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:760 + // line internal/php5/php5.y:761 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2849,9 +2850,9 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts) + name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts) // save comments yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Hidden) @@ -2862,7 +2863,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:781 + // line internal/php5/php5.y:782 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2870,9 +2871,9 @@ yydefault: yyVAL.node = &ast.StmtConstList{ast.Node{}, constList} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, constList) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, constList) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2883,7 +2884,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:803 + // line internal/php5/php5.y:804 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2898,7 +2899,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:816 + // line internal/php5/php5.y:817 { yyVAL.list = []ast.Vertex{} @@ -2906,7 +2907,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:826 + // line internal/php5/php5.y:827 { // error yyVAL.node = nil @@ -2915,7 +2916,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:833 + // line internal/php5/php5.y:834 { yyVAL.node = yyDollar[1].node @@ -2923,7 +2924,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:839 + // line internal/php5/php5.y:840 { yyVAL.node = yyDollar[1].node @@ -2931,7 +2932,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:845 + // line internal/php5/php5.y:846 { yyVAL.node = yyDollar[1].node @@ -2939,12 +2940,12 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:851 + // line internal/php5/php5.y:852 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2957,7 +2958,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:871 + // line internal/php5/php5.y:872 { yyVAL.node = yyDollar[1].node @@ -2965,14 +2966,14 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:877 + // line internal/php5/php5.y:878 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + label.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2982,12 +2983,12 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:895 + // line internal/php5/php5.y:896 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2997,17 +2998,17 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:908 + // line internal/php5/php5.y:909 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} // save position if yyDollar[5].node != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) } else if len(yyDollar[4].list) > 0 { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) } // save comments @@ -3025,14 +3026,14 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:932 + // line internal/php5/php5.y:933 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) + stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3053,7 +3054,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:956 + // line internal/php5/php5.y:957 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3065,7 +3066,7 @@ yydefault: yyVAL.node = yyDollar[3].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3082,12 +3083,12 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:981 + // line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3107,7 +3108,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1002 + // line internal/php5/php5.y:1003 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3123,7 +3124,7 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3136,7 +3137,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1029 + // line internal/php5/php5.y:1030 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3150,7 +3151,7 @@ yydefault: yyVAL.node = yyDollar[3].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3167,12 +3168,12 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1056 + // line internal/php5/php5.y:1057 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3183,12 +3184,12 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1070 + // line internal/php5/php5.y:1071 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3199,12 +3200,12 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1084 + // line internal/php5/php5.y:1085 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3215,12 +3216,12 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1098 + // line internal/php5/php5.y:1099 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3231,12 +3232,12 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1112 + // line internal/php5/php5.y:1113 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3247,12 +3248,12 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1126 + // line internal/php5/php5.y:1127 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3263,12 +3264,12 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1140 + // line internal/php5/php5.y:1141 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3279,12 +3280,12 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1154 + // line internal/php5/php5.y:1155 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -3295,12 +3296,12 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1169 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3311,12 +3312,12 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1183 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3327,12 +3328,12 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1196 + // line internal/php5/php5.y:1197 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3344,12 +3345,12 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1212 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3358,12 +3359,12 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1223 + // line internal/php5/php5.y:1224 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -3374,12 +3375,12 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1237 + // line internal/php5/php5.y:1238 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3392,7 +3393,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1253 + // line internal/php5/php5.y:1254 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3419,7 +3420,7 @@ yydefault: yyVAL.node = yyDollar[8].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3435,7 +3436,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1293 + // line internal/php5/php5.y:1294 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3462,7 +3463,7 @@ yydefault: // save position yyVAL.node = yyDollar[8].node - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3478,13 +3479,13 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1334 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3495,12 +3496,12 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1349 { yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3510,15 +3511,15 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1362 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} // save position if yyDollar[6].node == nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) } // save comments @@ -3530,12 +3531,12 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1380 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3546,14 +3547,14 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1394 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + label.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3565,7 +3566,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1413 + // line internal/php5/php5.y:1414 { yyVAL.list = []ast.Vertex{} @@ -3573,7 +3574,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1419 + // line internal/php5/php5.y:1420 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3581,9 +3582,9 @@ yydefault: yyVAL.list = append([]ast.Vertex{catchNode}, yyDollar[9].list...) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - catchNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + catchNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Hidden) @@ -3598,7 +3599,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1445 + // line internal/php5/php5.y:1446 { yyVAL.node = nil @@ -3606,12 +3607,12 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1451 + // line internal/php5/php5.y:1452 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3622,7 +3623,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1468 + // line internal/php5/php5.y:1469 { yyVAL.list = yyDollar[1].list @@ -3630,7 +3631,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1475 { yyVAL.list = []ast.Vertex{} @@ -3638,7 +3639,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1483 + // line internal/php5/php5.y:1484 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3646,7 +3647,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1489 + // line internal/php5/php5.y:1490 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3654,16 +3655,16 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1498 + // line internal/php5/php5.y:1499 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtCatch{ast.Node{}, []ast.Vertex{yyDollar[3].node}, variable, yyDollar[7].list} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3678,7 +3679,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1524 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3686,7 +3687,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1529 + // line internal/php5/php5.y:1530 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3697,7 +3698,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1541 + // line internal/php5/php5.y:1542 { yyVAL.node = yyDollar[1].node @@ -3705,7 +3706,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1551 { yyVAL.node = yyDollar[1].node @@ -3713,7 +3714,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1559 + // line internal/php5/php5.y:1560 { yyVAL.node = yyDollar[1].node @@ -3721,38 +3722,38 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1569 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1573 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1580 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1583 + // line internal/php5/php5.y:1584 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1590 + // line internal/php5/php5.y:1591 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3771,7 +3772,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1617 + // line internal/php5/php5.y:1618 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3789,8 +3790,8 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) // save comments yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) @@ -3801,14 +3802,14 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1645 + // line internal/php5/php5.y:1646 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3820,12 +3821,12 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1666 + // line internal/php5/php5.y:1667 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3834,14 +3835,14 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1678 + // line internal/php5/php5.y:1679 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + classModifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3851,12 +3852,12 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1693 + // line internal/php5/php5.y:1694 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3865,14 +3866,14 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1705 + // line internal/php5/php5.y:1706 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + classModifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3882,7 +3883,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1723 + // line internal/php5/php5.y:1724 { yyVAL.ClassExtends = nil @@ -3890,12 +3891,12 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1729 + // line internal/php5/php5.y:1730 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} // save position - yyVAL.ClassExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Hidden) @@ -3904,13 +3905,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1744 + // line internal/php5/php5.y:1745 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1751 + // line internal/php5/php5.y:1752 { yyVAL.InterfaceExtends = nil @@ -3918,12 +3919,12 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1757 + // line internal/php5/php5.y:1758 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} // save position - yyVAL.InterfaceExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Hidden) @@ -3932,7 +3933,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1772 + // line internal/php5/php5.y:1773 { yyVAL.ClassImplements = nil @@ -3940,12 +3941,12 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1778 + // line internal/php5/php5.y:1779 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} // save position - yyVAL.ClassImplements.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Hidden) @@ -3954,7 +3955,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1793 + // line internal/php5/php5.y:1794 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3962,7 +3963,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1799 + // line internal/php5/php5.y:1800 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3973,7 +3974,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1812 { yyVAL.node = nil @@ -3981,7 +3982,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1818 { yyVAL.node = yyDollar[2].node @@ -3992,7 +3993,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1829 + // line internal/php5/php5.y:1830 { yyVAL.node = yyDollar[1].node @@ -4000,12 +4001,12 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1835 + // line internal/php5/php5.y:1836 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4014,12 +4015,12 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1848 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4030,25 +4031,25 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1864 + // line internal/php5/php5.y:1865 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1874 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4060,25 +4061,25 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1893 + // line internal/php5/php5.y:1894 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1902 + // line internal/php5/php5.y:1903 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4090,25 +4091,25 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1923 + // line internal/php5/php5.y:1924 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1932 + // line internal/php5/php5.y:1933 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4120,15 +4121,15 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1953 + // line internal/php5/php5.y:1954 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} yyVAL.list = []ast.Vertex{constant} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.Hidden) @@ -4138,15 +4139,15 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1969 + // line internal/php5/php5.y:1970 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, constant) // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) + name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -4157,14 +4158,14 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1990 + // line internal/php5/php5.y:1991 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) @@ -4174,14 +4175,14 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2005 + // line internal/php5/php5.y:2006 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) @@ -4192,14 +4193,14 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2021 + // line internal/php5/php5.y:2022 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4211,15 +4212,15 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2038 + // line internal/php5/php5.y:2039 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4232,7 +4233,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2061 + // line internal/php5/php5.y:2062 { yyVAL.list = []ast.Vertex{} @@ -4240,13 +4241,13 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2067 + // line internal/php5/php5.y:2068 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) // save position - _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) + _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Hidden) @@ -4257,13 +4258,13 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2082 + // line internal/php5/php5.y:2083 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) // save position - _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) + _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Hidden) @@ -4274,37 +4275,37 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2101 + // line internal/php5/php5.y:2102 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2105 + // line internal/php5/php5.y:2106 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2113 + // line internal/php5/php5.y:2114 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2122 + // line internal/php5/php5.y:2123 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4316,7 +4317,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2144 + // line internal/php5/php5.y:2145 { yyVAL.list = nil @@ -4324,13 +4325,13 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2150 + // line internal/php5/php5.y:2151 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) + _elseIf.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) @@ -4347,7 +4348,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2173 + // line internal/php5/php5.y:2174 { yyVAL.list = nil @@ -4355,15 +4356,15 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2179 + // line internal/php5/php5.y:2180 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[5].list) - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) + stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) + _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) @@ -4381,7 +4382,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2205 + // line internal/php5/php5.y:2206 { yyVAL.node = nil @@ -4389,12 +4390,12 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2212 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4403,7 +4404,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2227 + // line internal/php5/php5.y:2228 { yyVAL.node = nil @@ -4411,14 +4412,14 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2233 + // line internal/php5/php5.y:2234 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4428,7 +4429,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2252 + // line internal/php5/php5.y:2253 { yyVAL.list = yyDollar[1].list @@ -4436,7 +4437,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2258 + // line internal/php5/php5.y:2259 { yyVAL.list = nil @@ -4444,7 +4445,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2267 + // line internal/php5/php5.y:2268 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4452,7 +4453,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2273 + // line internal/php5/php5.y:2274 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4463,23 +4464,23 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2285 + // line internal/php5/php5.y:2286 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) } // save comments @@ -4513,23 +4514,23 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2330 + // line internal/php5/php5.y:2331 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, yyDollar[6].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } // save comments @@ -4564,7 +4565,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2380 + // line internal/php5/php5.y:2381 { yyVAL.node = nil @@ -4572,12 +4573,12 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2386 + // line internal/php5/php5.y:2387 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4586,12 +4587,12 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2398 + // line internal/php5/php5.y:2399 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4600,7 +4601,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2410 + // line internal/php5/php5.y:2411 { yyVAL.node = yyDollar[1].node @@ -4608,12 +4609,12 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2420 + // line internal/php5/php5.y:2421 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4623,12 +4624,12 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2433 + // line internal/php5/php5.y:2434 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4638,14 +4639,14 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2447 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} // save position - arg.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + arg.GetNode().Position = position.NewNodePosition(yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4655,7 +4656,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2465 + // line internal/php5/php5.y:2466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4663,7 +4664,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2471 + // line internal/php5/php5.y:2472 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4674,12 +4675,12 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2483 + // line internal/php5/php5.y:2484 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -4688,12 +4689,12 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2495 + // line internal/php5/php5.y:2496 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -4702,12 +4703,12 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2507 + // line internal/php5/php5.y:2508 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4716,12 +4717,12 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2519 + // line internal/php5/php5.y:2520 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4730,7 +4731,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2534 + // line internal/php5/php5.y:2535 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4741,7 +4742,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2543 + // line internal/php5/php5.y:2544 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4749,14 +4750,14 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2553 + // line internal/php5/php5.y:2554 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4766,12 +4767,12 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2569 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4781,12 +4782,12 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2581 + // line internal/php5/php5.y:2582 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4798,7 +4799,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2601 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4806,9 +4807,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, staticVar) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -4819,7 +4820,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2619 + // line internal/php5/php5.y:2620 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4827,9 +4828,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, staticVar) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -4841,7 +4842,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2639 + // line internal/php5/php5.y:2640 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4849,9 +4850,9 @@ yydefault: yyVAL.list = []ast.Vertex{staticVar} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).addDollarToken(variable) @@ -4861,7 +4862,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2657 + // line internal/php5/php5.y:2658 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4869,9 +4870,9 @@ yydefault: yyVAL.list = []ast.Vertex{staticVar} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).addDollarToken(variable) @@ -4882,7 +4883,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2680 + // line internal/php5/php5.y:2681 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4890,7 +4891,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2686 + // line internal/php5/php5.y:2687 { yyVAL.list = []ast.Vertex{} @@ -4898,12 +4899,12 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2696 + // line internal/php5/php5.y:2697 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -4914,12 +4915,12 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2710 + // line internal/php5/php5.y:2711 { yyVAL.node = yyDollar[1].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.Hidden) @@ -4929,7 +4930,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2723 + // line internal/php5/php5.y:2724 { yyVAL.node = yyDollar[1].node @@ -4937,17 +4938,17 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2729 + // line internal/php5/php5.y:2730 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].list == nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) + yyVAL.node.GetNode().Position = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) } // save comments @@ -4970,12 +4971,12 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2763 + // line internal/php5/php5.y:2764 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4984,7 +4985,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4992,7 +4993,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2784 + // line internal/php5/php5.y:2785 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5003,11 +5004,11 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2796 + // line internal/php5/php5.y:2797 { yyVAL.node = &ast.StmtNop{ast.Node{}} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5017,11 +5018,11 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2808 + // line internal/php5/php5.y:2809 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5031,7 +5032,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2823 + // line internal/php5/php5.y:2824 { yyVAL.list = nil @@ -5039,7 +5040,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2829 + // line internal/php5/php5.y:2830 { yyVAL.list = yyDollar[1].list @@ -5047,7 +5048,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2838 + // line internal/php5/php5.y:2839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5055,7 +5056,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2844 + // line internal/php5/php5.y:2845 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5063,7 +5064,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2853 + // line internal/php5/php5.y:2854 { yyVAL.node = yyDollar[1].node @@ -5075,7 +5076,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2863 + // line internal/php5/php5.y:2864 { yyVAL.node = yyDollar[1].node @@ -5087,12 +5088,12 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2877 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5102,7 +5103,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2892 + // line internal/php5/php5.y:2893 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5110,7 +5111,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2898 + // line internal/php5/php5.y:2899 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5121,14 +5122,14 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2910 + // line internal/php5/php5.y:2911 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5137,7 +5138,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2924 + // line internal/php5/php5.y:2925 { yyVAL.node = yyDollar[1].node @@ -5145,14 +5146,14 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2933 + // line internal/php5/php5.y:2934 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5163,14 +5164,14 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2952 + // line internal/php5/php5.y:2953 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5181,12 +5182,12 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2969 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5196,7 +5197,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2984 + // line internal/php5/php5.y:2985 { yyVAL.node = nil @@ -5204,7 +5205,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2990 + // line internal/php5/php5.y:2991 { yyVAL.node = yyDollar[1].node @@ -5212,12 +5213,12 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2999 + // line internal/php5/php5.y:3000 { yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5227,12 +5228,12 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3012 + // line internal/php5/php5.y:3013 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5242,7 +5243,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3029 { yyVAL.list = yyDollar[1].list @@ -5250,13 +5251,13 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3034 + // line internal/php5/php5.y:3035 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} // save position - modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Hidden) @@ -5265,7 +5266,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3050 + // line internal/php5/php5.y:3051 { yyVAL.list = nil @@ -5273,7 +5274,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3056 + // line internal/php5/php5.y:3057 { yyVAL.list = yyDollar[1].list @@ -5281,7 +5282,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3066 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5289,7 +5290,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3072 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5297,12 +5298,12 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3081 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5311,12 +5312,12 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3092 + // line internal/php5/php5.y:3093 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5325,12 +5326,12 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3105 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5339,12 +5340,12 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3116 + // line internal/php5/php5.y:3117 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5353,12 +5354,12 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3129 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5367,12 +5368,12 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3141 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5381,7 +5382,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3155 + // line internal/php5/php5.y:3156 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5389,9 +5390,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, property) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + property.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments yylex.(*Parser).addDollarToken(variable) @@ -5402,7 +5403,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3174 + // line internal/php5/php5.y:3175 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5410,9 +5411,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, property) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + property.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -5424,7 +5425,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3194 + // line internal/php5/php5.y:3195 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5432,9 +5433,9 @@ yydefault: yyVAL.list = []ast.Vertex{property} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + property.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).addDollarToken(variable) @@ -5444,7 +5445,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3212 + // line internal/php5/php5.y:3213 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5452,9 +5453,9 @@ yydefault: yyVAL.list = []ast.Vertex{property} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + property.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).addDollarToken(variable) @@ -5465,7 +5466,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3234 + // line internal/php5/php5.y:3235 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5475,9 +5476,9 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) - yyDollar[1].node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) + yyDollar[1].node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Hidden) @@ -5488,16 +5489,16 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3255 + // line internal/php5/php5.y:3256 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} yyVAL.node = &ast.StmtClassConstList{ast.Node{}, nil, []ast.Vertex{constant}} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5508,7 +5509,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3277 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5519,7 +5520,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3285 + // line internal/php5/php5.y:3286 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5527,7 +5528,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3296 { yyVAL.list = nil @@ -5535,7 +5536,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3301 + // line internal/php5/php5.y:3302 { yyVAL.list = yyDollar[1].list @@ -5543,7 +5544,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3310 + // line internal/php5/php5.y:3311 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5554,7 +5555,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3319 + // line internal/php5/php5.y:3320 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5562,7 +5563,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3329 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5570,7 +5571,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3334 + // line internal/php5/php5.y:3335 { yyVAL.list = yyDollar[1].list @@ -5578,13 +5579,13 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3343 + // line internal/php5/php5.y:3344 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) @@ -5594,13 +5595,13 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3357 + // line internal/php5/php5.y:3358 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[2].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) @@ -5610,7 +5611,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3374 + // line internal/php5/php5.y:3375 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5618,7 +5619,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3381 { yyVAL.list = yyDollar[1].list @@ -5626,7 +5627,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3386 + // line internal/php5/php5.y:3387 { yyVAL.list = yyDollar[1].list @@ -5634,7 +5635,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3395 + // line internal/php5/php5.y:3396 { yyVAL.list = nil @@ -5642,7 +5643,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3401 + // line internal/php5/php5.y:3402 { yyVAL.list = yyDollar[1].list @@ -5650,15 +5651,15 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3410 + // line internal/php5/php5.y:3411 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) } else { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) } // save comments @@ -5668,14 +5669,14 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3429 + // line internal/php5/php5.y:3430 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5687,12 +5688,12 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3446 + // line internal/php5/php5.y:3447 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5702,12 +5703,12 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3459 + // line internal/php5/php5.y:3460 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5718,7 +5719,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3473 + // line internal/php5/php5.y:3474 { var _new *ast.ExprNew @@ -5731,11 +5732,11 @@ yydefault: // save position if yyDollar[6].node != nil { - _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) + _new.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } else { - _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node) + _new.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node) } - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, _new) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, _new) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5747,12 +5748,12 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3500 + // line internal/php5/php5.y:3501 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5761,12 +5762,12 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3512 + // line internal/php5/php5.y:3513 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) @@ -5775,12 +5776,12 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3524 + // line internal/php5/php5.y:3525 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5790,12 +5791,12 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3537 + // line internal/php5/php5.y:3538 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5805,12 +5806,12 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3550 + // line internal/php5/php5.y:3551 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5820,12 +5821,12 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3564 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5835,12 +5836,12 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3576 + // line internal/php5/php5.y:3577 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5850,12 +5851,12 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3589 + // line internal/php5/php5.y:3590 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5865,12 +5866,12 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3602 + // line internal/php5/php5.y:3603 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5880,12 +5881,12 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3615 + // line internal/php5/php5.y:3616 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5895,12 +5896,12 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3628 + // line internal/php5/php5.y:3629 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5910,12 +5911,12 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3641 + // line internal/php5/php5.y:3642 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5925,12 +5926,12 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3654 + // line internal/php5/php5.y:3655 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5940,12 +5941,12 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3667 + // line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5955,12 +5956,12 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3680 + // line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5969,12 +5970,12 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3693 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5984,12 +5985,12 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3705 + // line internal/php5/php5.y:3706 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5998,12 +5999,12 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3717 + // line internal/php5/php5.y:3718 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6013,12 +6014,12 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3730 + // line internal/php5/php5.y:3731 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6028,12 +6029,12 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3743 + // line internal/php5/php5.y:3744 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6043,12 +6044,12 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3756 + // line internal/php5/php5.y:3757 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6058,12 +6059,12 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3769 + // line internal/php5/php5.y:3770 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6073,12 +6074,12 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3782 + // line internal/php5/php5.y:3783 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6088,12 +6089,12 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3795 + // line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6103,12 +6104,12 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3808 + // line internal/php5/php5.y:3809 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6118,12 +6119,12 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3821 + // line internal/php5/php5.y:3822 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6133,12 +6134,12 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3834 + // line internal/php5/php5.y:3835 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6148,12 +6149,12 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3847 + // line internal/php5/php5.y:3848 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6163,12 +6164,12 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3860 + // line internal/php5/php5.y:3861 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6178,12 +6179,12 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6193,12 +6194,12 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3886 + // line internal/php5/php5.y:3887 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6208,12 +6209,12 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3899 + // line internal/php5/php5.y:3900 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6223,12 +6224,12 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3912 + // line internal/php5/php5.y:3913 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6238,12 +6239,12 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3925 + // line internal/php5/php5.y:3926 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6253,12 +6254,12 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3938 + // line internal/php5/php5.y:3939 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6267,12 +6268,12 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3950 + // line internal/php5/php5.y:3951 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6281,12 +6282,12 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3962 + // line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6295,12 +6296,12 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3974 + // line internal/php5/php5.y:3975 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6309,12 +6310,12 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3986 + // line internal/php5/php5.y:3987 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6324,12 +6325,12 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3999 + // line internal/php5/php5.y:4000 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6339,12 +6340,12 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4012 + // line internal/php5/php5.y:4013 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6354,12 +6355,12 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4025 + // line internal/php5/php5.y:4026 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6370,12 +6371,12 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4039 + // line internal/php5/php5.y:4040 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6385,12 +6386,12 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4052 + // line internal/php5/php5.y:4053 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6400,12 +6401,12 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4065 + // line internal/php5/php5.y:4066 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6415,12 +6416,12 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4078 + // line internal/php5/php5.y:4079 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6430,12 +6431,12 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4091 + // line internal/php5/php5.y:4092 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6445,7 +6446,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4105 { yyVAL.node = yyDollar[1].node @@ -6458,7 +6459,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4114 { yyVAL.node = yyDollar[1].node @@ -6466,7 +6467,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4119 + // line internal/php5/php5.y:4120 { yyVAL.node = yyDollar[2].node @@ -6493,19 +6494,19 @@ yydefault: } // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, n) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, n) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4152 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6516,12 +6517,12 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4165 + // line internal/php5/php5.y:4166 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6532,7 +6533,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4179 + // line internal/php5/php5.y:4180 { yyVAL.node = yyDollar[1].node @@ -6540,12 +6541,12 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4185 + // line internal/php5/php5.y:4186 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6555,12 +6556,12 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4198 + // line internal/php5/php5.y:4199 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6570,12 +6571,12 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4211 + // line internal/php5/php5.y:4212 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6585,12 +6586,12 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4224 + // line internal/php5/php5.y:4225 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6600,12 +6601,12 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4237 + // line internal/php5/php5.y:4238 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6615,12 +6616,12 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4250 + // line internal/php5/php5.y:4251 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6630,12 +6631,12 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4263 + // line internal/php5/php5.y:4264 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6645,7 +6646,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4276 + // line internal/php5/php5.y:4277 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6656,9 +6657,9 @@ yydefault: // save position if yyDollar[2].node.GetNode().Position == nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) } // save comments @@ -6668,12 +6669,12 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4297 + // line internal/php5/php5.y:4298 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6682,7 +6683,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4309 + // line internal/php5/php5.y:4310 { yyVAL.node = yyDollar[1].node @@ -6690,7 +6691,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4315 + // line internal/php5/php5.y:4316 { yyVAL.node = yyDollar[1].node @@ -6698,7 +6699,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4322 { yyVAL.node = yyDollar[1].node @@ -6706,12 +6707,12 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4327 + // line internal/php5/php5.y:4328 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6720,12 +6721,12 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4340 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6734,12 +6735,12 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4351 + // line internal/php5/php5.y:4352 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6748,12 +6749,12 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4363 + // line internal/php5/php5.y:4364 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6777,12 +6778,12 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4390 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6807,12 +6808,12 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4420 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6821,12 +6822,12 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4431 + // line internal/php5/php5.y:4432 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6835,12 +6836,12 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4443 + // line internal/php5/php5.y:4444 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6850,12 +6851,12 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4456 + // line internal/php5/php5.y:4457 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6865,12 +6866,12 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4472 + // line internal/php5/php5.y:4473 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6881,12 +6882,12 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4487 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6897,14 +6898,14 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4500 + // line internal/php5/php5.y:4501 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} // save position - str.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, yyDollar[4].token) + str.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(str, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6915,12 +6916,12 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4516 + // line internal/php5/php5.y:4517 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6931,12 +6932,12 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4533 + // line internal/php5/php5.y:4534 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6947,12 +6948,12 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4547 + // line internal/php5/php5.y:4548 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6962,13 +6963,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4563 + // line internal/php5/php5.y:4564 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4570 + // line internal/php5/php5.y:4571 { yyVAL.ClosureUse = nil @@ -6976,12 +6977,12 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4576 + // line internal/php5/php5.y:4577 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} // save position - yyVAL.ClosureUse.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Hidden) @@ -6992,15 +6993,15 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4594 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.list = append(yyDollar[1].list, variable) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -7011,7 +7012,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4610 + // line internal/php5/php5.y:4611 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7019,9 +7020,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, reference) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + reference.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -7033,15 +7034,15 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4630 + // line internal/php5/php5.y:4631 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.list = []ast.Vertex{variable} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Hidden) @@ -7051,7 +7052,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4647 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7059,9 +7060,9 @@ yydefault: yyVAL.list = []ast.Vertex{reference} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + reference.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Hidden) @@ -7072,14 +7073,14 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4668 + // line internal/php5/php5.y:4669 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(name, yyDollar[2].node) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7088,14 +7089,14 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4682 + // line internal/php5/php5.y:4683 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[4].node) + funcName.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[4].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7105,14 +7106,14 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4697 + // line internal/php5/php5.y:4698 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, yyDollar[3].node) + funcName.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7121,12 +7122,12 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4711 + // line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7136,12 +7137,12 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4725 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7151,12 +7152,12 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4737 + // line internal/php5/php5.y:4738 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7166,12 +7167,12 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4750 + // line internal/php5/php5.y:4751 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7181,12 +7182,12 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4763 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7195,12 +7196,12 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4778 + // line internal/php5/php5.y:4779 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7209,12 +7210,12 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4791 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7223,12 +7224,12 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4802 + // line internal/php5/php5.y:4803 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7238,12 +7239,12 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4815 + // line internal/php5/php5.y:4816 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7252,12 +7253,12 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4830 + // line internal/php5/php5.y:4831 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7266,12 +7267,12 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4842 + // line internal/php5/php5.y:4843 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7281,12 +7282,12 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4855 + // line internal/php5/php5.y:4856 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7295,7 +7296,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4871 { yyVAL.node = yyDollar[1].node @@ -7303,7 +7304,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4876 + // line internal/php5/php5.y:4877 { yyVAL.node = yyDollar[1].node @@ -7311,7 +7312,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4885 + // line internal/php5/php5.y:4886 { yyVAL.node = yyDollar[1].node @@ -7322,13 +7323,13 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } @@ -7338,13 +7339,13 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } @@ -7354,7 +7355,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4926 + // line internal/php5/php5.y:4927 { yyVAL.node = yyDollar[1].node @@ -7362,7 +7363,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4937 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7370,7 +7371,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4943 { yyVAL.list = []ast.Vertex{} @@ -7378,7 +7379,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4952 + // line internal/php5/php5.y:4953 { yyVAL.list = yyDollar[2].list @@ -7389,7 +7390,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4965 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7397,12 +7398,12 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4970 + // line internal/php5/php5.y:4971 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) @@ -7412,15 +7413,15 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4983 + // line internal/php5/php5.y:4984 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} // save position if bytes.Compare(yylex.(*Parser).currentToken.Value, []byte(")")) == 0 { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yylex.(*Parser).currentToken) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yylex.(*Parser).currentToken) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -7433,7 +7434,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5003 + // line internal/php5/php5.y:5004 { yyVAL.list = []ast.Vertex{} @@ -7441,19 +7442,19 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5010 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} // save position - part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + part.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5019 + // line internal/php5/php5.y:5020 { yyVAL.list = yyDollar[1].list @@ -7461,7 +7462,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5028 + // line internal/php5/php5.y:5029 { yyVAL.node = nil @@ -7469,7 +7470,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5034 + // line internal/php5/php5.y:5035 { yyVAL.node = yyDollar[1].node @@ -7477,12 +7478,12 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5043 + // line internal/php5/php5.y:5044 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7491,12 +7492,12 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5055 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7505,12 +7506,12 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5067 + // line internal/php5/php5.y:5068 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7519,12 +7520,12 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5079 + // line internal/php5/php5.y:5080 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7533,12 +7534,12 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5092 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7547,12 +7548,12 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5103 + // line internal/php5/php5.y:5104 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7561,12 +7562,12 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5115 + // line internal/php5/php5.y:5116 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7575,12 +7576,12 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5127 + // line internal/php5/php5.y:5128 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7589,12 +7590,12 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5139 + // line internal/php5/php5.y:5140 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7603,12 +7604,12 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5151 + // line internal/php5/php5.y:5152 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7617,14 +7618,14 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5163 + // line internal/php5/php5.y:5164 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7633,12 +7634,12 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5177 + // line internal/php5/php5.y:5178 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7647,14 +7648,14 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5192 + // line internal/php5/php5.y:5193 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7665,7 +7666,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5212 { yyVAL.node = yyDollar[1].node @@ -7673,7 +7674,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5220 + // line internal/php5/php5.y:5221 { yyVAL.node = yyDollar[1].node @@ -7681,7 +7682,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5226 + // line internal/php5/php5.y:5227 { yyVAL.node = yyDollar[1].node @@ -7689,14 +7690,14 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5232 + // line internal/php5/php5.y:5233 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -7705,14 +7706,14 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5246 + // line internal/php5/php5.y:5247 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7722,14 +7723,14 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5261 + // line internal/php5/php5.y:5262 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7738,12 +7739,12 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5276 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7754,12 +7755,12 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5289 + // line internal/php5/php5.y:5290 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7769,7 +7770,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5303 { yyVAL.node = yyDollar[1].node @@ -7777,12 +7778,12 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5309 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7791,7 +7792,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5321 { yyVAL.node = yyDollar[1].node @@ -7799,12 +7800,12 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5329 + // line internal/php5/php5.y:5330 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7815,12 +7816,12 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5343 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7830,12 +7831,12 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5356 + // line internal/php5/php5.y:5357 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7845,12 +7846,12 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7860,12 +7861,12 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5383 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7875,12 +7876,12 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5395 + // line internal/php5/php5.y:5396 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7890,12 +7891,12 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5408 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7905,12 +7906,12 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5422 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7919,12 +7920,12 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5434 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7933,12 +7934,12 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5445 + // line internal/php5/php5.y:5446 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7948,12 +7949,12 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5458 + // line internal/php5/php5.y:5459 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7963,12 +7964,12 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5471 + // line internal/php5/php5.y:5472 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7978,12 +7979,12 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5484 + // line internal/php5/php5.y:5485 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7993,12 +7994,12 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5497 + // line internal/php5/php5.y:5498 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8008,12 +8009,12 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5511 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8023,12 +8024,12 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5523 + // line internal/php5/php5.y:5524 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8038,12 +8039,12 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5536 + // line internal/php5/php5.y:5537 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8053,12 +8054,12 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5549 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8068,12 +8069,12 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5563 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8083,12 +8084,12 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5575 + // line internal/php5/php5.y:5576 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8098,12 +8099,12 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5588 + // line internal/php5/php5.y:5589 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8113,12 +8114,12 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5601 + // line internal/php5/php5.y:5602 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8128,12 +8129,12 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5614 + // line internal/php5/php5.y:5615 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8143,12 +8144,12 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5627 + // line internal/php5/php5.y:5628 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8159,12 +8160,12 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5642 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8174,12 +8175,12 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5654 + // line internal/php5/php5.y:5655 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8189,12 +8190,12 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5667 + // line internal/php5/php5.y:5668 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8204,12 +8205,12 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5680 + // line internal/php5/php5.y:5681 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8219,12 +8220,12 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5693 + // line internal/php5/php5.y:5694 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8235,12 +8236,12 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5708 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8251,12 +8252,12 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5721 + // line internal/php5/php5.y:5722 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8265,12 +8266,12 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5733 + // line internal/php5/php5.y:5734 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8279,7 +8280,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5745 + // line internal/php5/php5.y:5746 { yyVAL.node = yyDollar[2].node @@ -8291,7 +8292,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5758 + // line internal/php5/php5.y:5759 { yyVAL.node = yyDollar[1].node @@ -8299,14 +8300,14 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5765 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -8315,14 +8316,14 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5778 + // line internal/php5/php5.y:5779 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8332,14 +8333,14 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5793 + // line internal/php5/php5.y:5794 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8348,14 +8349,14 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5810 + // line internal/php5/php5.y:5811 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8364,7 +8365,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5824 + // line internal/php5/php5.y:5825 { yyVAL.node = yyDollar[1].node @@ -8372,7 +8373,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5830 + // line internal/php5/php5.y:5831 { yyVAL.node = yyDollar[1].node @@ -8380,7 +8381,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5836 + // line internal/php5/php5.y:5837 { yyVAL.node = yyDollar[1].node @@ -8388,12 +8389,12 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5842 + // line internal/php5/php5.y:5843 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8402,12 +8403,12 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5854 + // line internal/php5/php5.y:5855 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8416,12 +8417,12 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5866 + // line internal/php5/php5.y:5867 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8430,7 +8431,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5881 + // line internal/php5/php5.y:5882 { yyVAL.list = nil @@ -8438,7 +8439,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5887 + // line internal/php5/php5.y:5888 { yyVAL.list = yyDollar[1].list @@ -8451,25 +8452,25 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5901 + // line internal/php5/php5.y:5902 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5905 + // line internal/php5/php5.y:5906 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5912 + // line internal/php5/php5.y:5913 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) + arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -8480,13 +8481,13 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5927 + // line internal/php5/php5.y:5928 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) + arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -8496,13 +8497,13 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5941 + // line internal/php5/php5.y:5942 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) @@ -8512,13 +8513,13 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5955 + // line internal/php5/php5.y:5956 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) @@ -8527,7 +8528,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5971 + // line internal/php5/php5.y:5972 { yyVAL.node = yyDollar[1].node @@ -8535,7 +8536,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5977 + // line internal/php5/php5.y:5978 { yyVAL.node = yyDollar[1].node @@ -8543,7 +8544,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5986 + // line internal/php5/php5.y:5987 { yyVAL.node = yyDollar[2].node @@ -8561,7 +8562,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6002 + // line internal/php5/php5.y:6003 { yyVAL.node = yyDollar[2].node @@ -8579,7 +8580,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6022 + // line internal/php5/php5.y:6023 { yyVAL.node = yyDollar[1].node @@ -8587,7 +8588,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6032 + // line internal/php5/php5.y:6033 { yyVAL.node = yyDollar[1].node @@ -8595,7 +8596,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6041 + // line internal/php5/php5.y:6042 { yyVAL.node = yyDollar[1].node @@ -8603,7 +8604,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6050 + // line internal/php5/php5.y:6051 { yyVAL.node = yyDollar[1].node @@ -8619,19 +8620,19 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } @@ -8641,19 +8642,19 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyVAL.node, nn) + nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } @@ -8663,7 +8664,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6108 + // line internal/php5/php5.y:6109 { yyVAL.node = yyDollar[1].node @@ -8671,7 +8672,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6117 + // line internal/php5/php5.y:6118 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8679,7 +8680,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6123 + // line internal/php5/php5.y:6124 { yyVAL.list = []ast.Vertex{} @@ -8687,7 +8688,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6134 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8703,13 +8704,13 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6150 + // line internal/php5/php5.y:6151 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) @@ -8719,13 +8720,13 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6164 + // line internal/php5/php5.y:6165 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) @@ -8735,18 +8736,18 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6182 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6193 + // line internal/php5/php5.y:6194 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8754,7 +8755,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6199 + // line internal/php5/php5.y:6200 { yyVAL.list = yyDollar[1].list @@ -8762,7 +8763,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6205 + // line internal/php5/php5.y:6206 { yyVAL.list = nil @@ -8770,7 +8771,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6214 + // line internal/php5/php5.y:6215 { yyVAL.node = yyDollar[1].node @@ -8778,12 +8779,12 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6220 + // line internal/php5/php5.y:6221 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node for _, n := range yyDollar[1].simpleIndirectReference.all { - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) + n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] @@ -8792,12 +8793,12 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6235 + // line internal/php5/php5.y:6236 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8807,12 +8808,12 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6248 + // line internal/php5/php5.y:6249 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8822,7 +8823,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6264 + // line internal/php5/php5.y:6265 { yyVAL.node = yyDollar[1].node @@ -8830,12 +8831,12 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6273 + // line internal/php5/php5.y:6274 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8846,12 +8847,12 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6287 + // line internal/php5/php5.y:6288 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8862,7 +8863,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6304 + // line internal/php5/php5.y:6305 { yyVAL.node = yyDollar[1].node @@ -8870,7 +8871,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6311 { yyVAL.node = yyDollar[1].node @@ -8878,7 +8879,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6316 + // line internal/php5/php5.y:6317 { yyVAL.node = yyDollar[1].node @@ -8886,7 +8887,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6326 + // line internal/php5/php5.y:6327 { yyVAL.node = yyDollar[1].node @@ -8894,12 +8895,12 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6332 + // line internal/php5/php5.y:6333 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node for _, n := range yyDollar[1].simpleIndirectReference.all { - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, yyDollar[2].node) + n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] @@ -8908,7 +8909,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6344 + // line internal/php5/php5.y:6345 { yyVAL.node = yyDollar[1].node @@ -8916,12 +8917,12 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6353 + // line internal/php5/php5.y:6354 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8932,12 +8933,12 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6367 + // line internal/php5/php5.y:6368 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -8948,7 +8949,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6381 + // line internal/php5/php5.y:6382 { yyVAL.node = yyDollar[1].node @@ -8956,14 +8957,14 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6391 + // line internal/php5/php5.y:6392 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8973,12 +8974,12 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6406 + // line internal/php5/php5.y:6407 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8990,7 +8991,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6424 + // line internal/php5/php5.y:6425 { yyVAL.node = nil @@ -8998,7 +8999,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6430 + // line internal/php5/php5.y:6431 { yyVAL.node = yyDollar[1].node @@ -9006,7 +9007,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6440 + // line internal/php5/php5.y:6441 { yyVAL.list = yyDollar[1].list @@ -9014,25 +9015,25 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6446 + // line internal/php5/php5.y:6447 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6459 + // line internal/php5/php5.y:6460 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) @@ -9042,13 +9043,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6473 + // line internal/php5/php5.y:6474 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) @@ -9058,24 +9059,24 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6487 + // line internal/php5/php5.y:6488 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + fetch.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6500 + // line internal/php5/php5.y:6501 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9084,12 +9085,12 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6512 + // line internal/php5/php5.y:6513 { yyVAL.node = yyDollar[2].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) @@ -9099,13 +9100,13 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6528 + // line internal/php5/php5.y:6529 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} // save position - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + n.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Hidden) @@ -9115,7 +9116,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6542 + // line internal/php5/php5.y:6543 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9125,7 +9126,7 @@ yydefault: yyVAL.simpleIndirectReference = yyDollar[1].simpleIndirectReference // save position - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + n.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Hidden) @@ -9135,7 +9136,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6563 + // line internal/php5/php5.y:6564 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9150,7 +9151,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6576 + // line internal/php5/php5.y:6577 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9162,12 +9163,12 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6590 + // line internal/php5/php5.y:6591 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -9176,14 +9177,14 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6602 + // line internal/php5/php5.y:6603 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(listNode) + listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodePosition(listNode) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9194,7 +9195,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6618 + // line internal/php5/php5.y:6619 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9202,7 +9203,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6628 + // line internal/php5/php5.y:6629 { yyVAL.list = []ast.Vertex{} @@ -9210,7 +9211,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6634 + // line internal/php5/php5.y:6635 { yyVAL.list = yyDollar[1].list @@ -9227,13 +9228,13 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6652 + // line internal/php5/php5.y:6653 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) + arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -9244,13 +9245,13 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6667 + // line internal/php5/php5.y:6668 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[3].node) + arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -9260,13 +9261,13 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6681 + // line internal/php5/php5.y:6682 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) @@ -9276,13 +9277,13 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6695 + // line internal/php5/php5.y:6696 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) @@ -9291,15 +9292,15 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6708 + // line internal/php5/php5.y:6709 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) + reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node) + arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -9311,15 +9312,15 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6726 + // line internal/php5/php5.y:6727 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} yyVAL.list = append(yyDollar[1].list, arrayItem) // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) + reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) + arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -9329,15 +9330,15 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6742 + // line internal/php5/php5.y:6743 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} yyVAL.list = []ast.Vertex{arrayItem} // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) + arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) @@ -9348,15 +9349,15 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6759 + // line internal/php5/php5.y:6760 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} yyVAL.list = []ast.Vertex{arrayItem} // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.Hidden) @@ -9365,7 +9366,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6777 + // line internal/php5/php5.y:6778 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9373,13 +9374,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6783 + // line internal/php5/php5.y:6784 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Hidden) @@ -9388,7 +9389,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6796 + // line internal/php5/php5.y:6797 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9396,13 +9397,13 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6802 + // line internal/php5/php5.y:6803 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Hidden) @@ -9411,14 +9412,14 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6818 + // line internal/php5/php5.y:6819 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9428,16 +9429,16 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6833 + // line internal/php5/php5.y:6834 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).addDollarToken(variable) @@ -9448,7 +9449,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6851 + // line internal/php5/php5.y:6852 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9456,10 +9457,10 @@ yydefault: yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + fetch.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).addDollarToken(variable) @@ -9470,14 +9471,14 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6871 + // line internal/php5/php5.y:6872 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} yyVAL.node = variable // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) @@ -9487,7 +9488,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6886 + // line internal/php5/php5.y:6887 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9495,8 +9496,8 @@ yydefault: yyVAL.node = variable // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) @@ -9506,16 +9507,16 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6903 + // line internal/php5/php5.y:6904 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) @@ -9527,7 +9528,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6922 + // line internal/php5/php5.y:6923 { yyVAL.node = yyDollar[2].node @@ -9539,12 +9540,12 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6935 + // line internal/php5/php5.y:6936 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9553,7 +9554,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6947 + // line internal/php5/php5.y:6948 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9563,7 +9564,7 @@ yydefault: } // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9572,14 +9573,14 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6964 + // line internal/php5/php5.y:6965 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9589,12 +9590,12 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6982 + // line internal/php5/php5.y:6983 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9605,12 +9606,12 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6996 + // line internal/php5/php5.y:6997 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9621,12 +9622,12 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:7010 + // line internal/php5/php5.y:7011 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9637,12 +9638,12 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7024 + // line internal/php5/php5.y:7025 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9651,12 +9652,12 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7036 + // line internal/php5/php5.y:7037 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9665,12 +9666,12 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:7048 + // line internal/php5/php5.y:7049 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9681,12 +9682,12 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7062 + // line internal/php5/php5.y:7063 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9695,12 +9696,12 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7074 + // line internal/php5/php5.y:7075 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -9709,7 +9710,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7089 + // line internal/php5/php5.y:7090 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9717,7 +9718,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7095 + // line internal/php5/php5.y:7096 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9728,7 +9729,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7107 + // line internal/php5/php5.y:7108 { yyVAL.node = yyDollar[1].node @@ -9736,7 +9737,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7113 + // line internal/php5/php5.y:7114 { yyVAL.node = yyDollar[1].node @@ -9744,14 +9745,14 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7122 + // line internal/php5/php5.y:7123 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -9762,14 +9763,14 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7138 + // line internal/php5/php5.y:7139 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -9780,14 +9781,14 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7157 + // line internal/php5/php5.y:7158 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -9798,14 +9799,14 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7176 + // line internal/php5/php5.y:7177 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) diff --git a/internal/php5/php5.y b/internal/php5/php5.y index cb70cfe..7b05f37 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -5,9 +5,10 @@ import ( "bytes" "strconv" - "github.com/z7zmey/php-parser/pkg/token" - "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/internal/position" + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" ) %} @@ -275,7 +276,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} - yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) @@ -312,7 +313,7 @@ namespace_name: $$ = []ast.Vertex{namePart} // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + namePart.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Hidden) @@ -325,7 +326,7 @@ namespace_name: $$ = append($1, namePart) // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + namePart.GetNode().Position = position.NewTokenPosition($3) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -366,7 +367,7 @@ top_statement: $$ = &ast.StmtHaltCompiler{ast.Node{}, } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -383,8 +384,8 @@ top_statement: $$ = &ast.StmtNamespace{ast.Node{}, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -400,8 +401,8 @@ top_statement: $$ = &ast.StmtNamespace{ast.Node{}, name, $4} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -416,7 +417,7 @@ top_statement: $$ = &ast.StmtNamespace{ast.Node{}, nil, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -430,7 +431,7 @@ top_statement: $$ = &ast.StmtUseList{ast.Node{}, nil, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -445,8 +446,8 @@ top_statement: $$ = &ast.StmtUseList{ast.Node{}, useType, $3} // save position - useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + useType.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -462,8 +463,8 @@ top_statement: $$ = &ast.StmtUseList{ast.Node{}, useType, $3} // save position - useType.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + useType.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -478,7 +479,7 @@ top_statement: $$ = $1 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Hidden) @@ -513,8 +514,8 @@ use_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -528,9 +529,9 @@ use_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) + name.GetNode().Position = position.NewNodeListPosition($1) + alias.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -545,8 +546,8 @@ use_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewNodeListPosition($2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -562,9 +563,9 @@ use_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) + name.GetNode().Position = position.NewNodeListPosition($2) + alias.GetNode().Position = position.NewTokenPosition($4) + $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -602,8 +603,8 @@ use_function_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -617,9 +618,9 @@ use_function_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) + name.GetNode().Position = position.NewNodeListPosition($1) + alias.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -634,8 +635,8 @@ use_function_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewNodeListPosition($2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -651,9 +652,9 @@ use_function_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) + name.GetNode().Position = position.NewNodeListPosition($2) + alias.GetNode().Position = position.NewTokenPosition($4) + $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -691,8 +692,8 @@ use_const_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -706,9 +707,9 @@ use_const_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) + name.GetNode().Position = position.NewNodeListPosition($1) + alias.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -723,8 +724,8 @@ use_const_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewNodeListPosition($2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -740,9 +741,9 @@ use_const_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($2, $4) + name.GetNode().Position = position.NewNodeListPosition($2) + alias.GetNode().Position = position.NewTokenPosition($4) + $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -766,9 +767,9 @@ constant_declaration: $$ = $1 // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, constList.Consts) + name.GetNode().Position = position.NewTokenPosition($3) + constant.GetNode().Position = position.NewTokenNodePosition($3, $5) + $$.GetNode().Position = position.NewNodeNodeListPosition($1, constList.Consts) // save comments yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Hidden) @@ -785,9 +786,9 @@ constant_declaration: $$ = &ast.StmtConstList{ast.Node{}, constList} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, constList) + name.GetNode().Position = position.NewTokenPosition($2) + constant.GetNode().Position = position.NewTokenNodePosition($2, $4) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, constList) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -852,7 +853,7 @@ inner_statement: $$ = &ast.StmtHaltCompiler{ast.Node{}, } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -879,8 +880,8 @@ statement: $$ = &ast.StmtLabel{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + label.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -896,7 +897,7 @@ unticked_statement: $$ = &ast.StmtStmtList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -910,11 +911,11 @@ unticked_statement: // save position if $5 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + $$.GetNode().Position = position.NewTokenNodePosition($1, $5) } else if len($4) > 0 { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $4) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $4) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) } // save comments @@ -934,8 +935,8 @@ unticked_statement: $$ = &ast.StmtAltIf{ast.Node{}, $2, stmts, $5, $6} // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) + stmts.GetNode().Position = position.NewNodeListPosition($4) + $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -964,7 +965,7 @@ unticked_statement: $$ = $3 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -982,7 +983,7 @@ unticked_statement: $$ = &ast.StmtDo{ast.Node{}, $2, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1014,7 +1015,7 @@ unticked_statement: $$ = $9 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1039,7 +1040,7 @@ unticked_statement: $$ = $3 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1057,7 +1058,7 @@ unticked_statement: $$ = &ast.StmtBreak{ast.Node{}, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1071,7 +1072,7 @@ unticked_statement: $$ = &ast.StmtBreak{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1085,7 +1086,7 @@ unticked_statement: $$ = &ast.StmtContinue{ast.Node{}, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1099,7 +1100,7 @@ unticked_statement: $$ = &ast.StmtContinue{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1113,7 +1114,7 @@ unticked_statement: $$ = &ast.StmtReturn{ast.Node{}, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1127,7 +1128,7 @@ unticked_statement: $$ = &ast.StmtReturn{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1141,7 +1142,7 @@ unticked_statement: $$ = &ast.StmtReturn{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1155,7 +1156,7 @@ unticked_statement: $$ = &ast.StmtExpression{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -1169,7 +1170,7 @@ unticked_statement: $$ = &ast.StmtGlobal{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1183,7 +1184,7 @@ unticked_statement: $$ = &ast.StmtStatic{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1197,7 +1198,7 @@ unticked_statement: $$ = &ast.StmtEcho{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1212,7 +1213,7 @@ unticked_statement: $$ = &ast.StmtInlineHtml{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1224,7 +1225,7 @@ unticked_statement: $$ = &ast.StmtExpression{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -1238,7 +1239,7 @@ unticked_statement: $$ = &ast.StmtUnset{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1276,7 +1277,7 @@ unticked_statement: $$ = $8 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8) + $$.GetNode().Position = position.NewTokenNodePosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1316,7 +1317,7 @@ unticked_statement: // save position $$ = $8 - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $8) + $$.GetNode().Position = position.NewTokenNodePosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1335,7 +1336,7 @@ unticked_statement: $$.(*ast.StmtDeclare).Consts = $3 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1349,7 +1350,7 @@ unticked_statement: $$ = &ast.StmtNop{ast.Node{}, } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1363,9 +1364,9 @@ unticked_statement: // save position if $6 == nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) + $$.GetNode().Position = position.NewTokenNodePosition($1, $6) } // save comments @@ -1380,7 +1381,7 @@ unticked_statement: $$ = &ast.StmtThrow{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1395,8 +1396,8 @@ unticked_statement: $$ = &ast.StmtGoto{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + label.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1423,9 +1424,9 @@ catch_statement: $$ = append([]ast.Vertex{catchNode}, $9...) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - catchNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) + identifier.GetNode().Position = position.NewTokenPosition($4) + variable.GetNode().Position = position.NewTokenPosition($4) + catchNode.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Hidden) @@ -1452,7 +1453,7 @@ finally_statement: $$ = &ast.StmtFinally{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1501,9 +1502,9 @@ additional_catch: $$ = &ast.StmtCatch{ast.Node{}, []ast.Vertex{$3}, variable, $7} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) + identifier.GetNode().Position = position.NewTokenPosition($4) + variable.GetNode().Position = position.NewTokenPosition($4) + $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1592,8 +1593,8 @@ unticked_function_declaration_statement: $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $5, nil, $8} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9) + name.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewTokensPosition($1, $9) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1631,8 +1632,8 @@ unticked_class_declaration_statement: $$ = $1 // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $7) + name.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $7) // save comments yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) @@ -1647,8 +1648,8 @@ unticked_class_declaration_statement: $$ = &ast.StmtInterface{ast.Node{}, name, $3, $5} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + name.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1667,7 +1668,7 @@ class_entry_type: $$ = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1680,8 +1681,8 @@ class_entry_type: $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + classModifier.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1694,7 +1695,7 @@ class_entry_type: $$ = &ast.StmtTrait{ast.Node{}, nil, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1707,8 +1708,8 @@ class_entry_type: $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + classModifier.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1730,7 +1731,7 @@ extends_from: $$ = &ast.StmtClassExtends{ast.Node{}, $2}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1758,7 +1759,7 @@ interface_extends_list: $$ = &ast.StmtInterfaceExtends{ast.Node{}, $2}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1779,7 +1780,7 @@ implements_list: $$ = &ast.StmtClassImplements{ast.Node{}, $2}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1836,7 +1837,7 @@ foreach_variable: $$ = &ast.ExprReference{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1848,7 +1849,7 @@ foreach_variable: $$ = &ast.ExprList{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1865,7 +1866,7 @@ for_statement: $$ = &ast.StmtFor{ast.Node{}, nil, nil, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1875,8 +1876,8 @@ for_statement: $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1894,7 +1895,7 @@ foreach_statement: $$ = &ast.StmtForeach{ast.Node{}, nil, nil, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1904,8 +1905,8 @@ foreach_statement: $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1924,7 +1925,7 @@ declare_statement: $$ = &ast.StmtDeclare{ast.Node{}, false, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1934,8 +1935,8 @@ declare_statement: $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1956,8 +1957,8 @@ declare_list: $$ = []ast.Vertex{constant} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + name.GetNode().Position = position.NewTokenPosition($1) + constant.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating(constant, token.Start, $1.Hidden) @@ -1972,8 +1973,8 @@ declare_list: $$ = append($1, constant) // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) + name.GetNode().Position = position.NewTokenPosition($3) + constant.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -1992,8 +1993,8 @@ switch_case_list: $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + caseList.GetNode().Position = position.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) @@ -2007,8 +2008,8 @@ switch_case_list: $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + caseList.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) @@ -2023,8 +2024,8 @@ switch_case_list: $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + caseList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -2041,8 +2042,8 @@ switch_case_list: $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + caseList.GetNode().Position = position.NewNodeListPosition($3) + $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -2069,7 +2070,7 @@ case_list: $$ = append($1, _case) // save position - _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) + _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Hidden) @@ -2084,7 +2085,7 @@ case_list: $$ = append($1, _default) // save position - _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) + _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) // save comments yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Hidden) @@ -2114,7 +2115,7 @@ while_statement: $$ = &ast.StmtWhile{ast.Node{}, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2124,8 +2125,8 @@ while_statement: $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -2152,7 +2153,7 @@ elseif_list: $$ = append($1, _elseIf) // save position - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4) + _elseIf.GetNode().Position = position.NewTokenNodePosition($2, $4) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) @@ -2182,8 +2183,8 @@ new_elseif_list: $$ = append($1, _elseIf) // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($5) - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) + stmts.GetNode().Position = position.NewNodeListPosition($5) + _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) @@ -2212,7 +2213,7 @@ else_single: $$ = &ast.StmtElse{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2235,8 +2236,8 @@ new_else_single: $$ = &ast.StmtAltElse{ast.Node{}, stmts} // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + stmts.GetNode().Position = position.NewNodeListPosition($3) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2288,16 +2289,16 @@ parameter: $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + identifier.GetNode().Position = position.NewTokenPosition($4) + variable.GetNode().Position = position.NewTokenPosition($4) if $1 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) } else if $2 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4) + $$.GetNode().Position = position.NewTokensPosition($2, $4) } else if $3 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4) + $$.GetNode().Position = position.NewTokensPosition($3, $4) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = position.NewTokenPosition($4) } // save comments @@ -2333,16 +2334,16 @@ parameter: $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, $6} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + identifier.GetNode().Position = position.NewTokenPosition($4) + variable.GetNode().Position = position.NewTokenPosition($4) if $1 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6) + $$.GetNode().Position = position.NewNodesPosition($1, $6) } else if $2 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6) + $$.GetNode().Position = position.NewTokenNodePosition($2, $6) } else if $3 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6) + $$.GetNode().Position = position.NewTokenNodePosition($3, $6) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6) + $$.GetNode().Position = position.NewTokenNodePosition($4, $6) } // save comments @@ -2387,7 +2388,7 @@ optional_class_type: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2399,7 +2400,7 @@ optional_class_type: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2421,7 +2422,7 @@ function_call_parameter_list: $$ = &ast.ArgumentList{ast.Node{}, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2434,7 +2435,7 @@ function_call_parameter_list: $$ = &ast.ArgumentList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2448,8 +2449,8 @@ function_call_parameter_list: $$ = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} // save position - arg.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + arg.GetNode().Position = position.NewNodePosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2484,7 +2485,7 @@ function_call_parameter: $$ = &ast.Argument{ast.Node{}, false, false, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2496,7 +2497,7 @@ function_call_parameter: $$ = &ast.Argument{ast.Node{}, false, false, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2508,7 +2509,7 @@ function_call_parameter: $$ = &ast.Argument{ast.Node{}, false, true, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) + $$.GetNode().Position = position.NewNodePosition($2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2520,7 +2521,7 @@ function_call_parameter: $$ = &ast.Argument{ast.Node{}, true, false, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2555,8 +2556,8 @@ global_var: $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2569,7 +2570,7 @@ global_var: $$ = &ast.ExprVariable{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2582,7 +2583,7 @@ global_var: $$ = &ast.ExprVariable{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2604,9 +2605,9 @@ static_var_list: $$ = append($1, staticVar) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + identifier.GetNode().Position = position.NewTokenPosition($3) + variable.GetNode().Position = position.NewTokenPosition($3) + staticVar.GetNode().Position = position.NewTokenPosition($3) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -2623,9 +2624,9 @@ static_var_list: $$ = append($1, staticVar) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) + identifier.GetNode().Position = position.NewTokenPosition($3) + variable.GetNode().Position = position.NewTokenPosition($3) + staticVar.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -2643,9 +2644,9 @@ static_var_list: $$ = []ast.Vertex{staticVar} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + staticVar.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).addDollarToken(variable) @@ -2661,9 +2662,9 @@ static_var_list: $$ = []ast.Vertex{staticVar} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - staticVar.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + staticVar.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).addDollarToken(variable) @@ -2697,7 +2698,7 @@ class_statement: $$ = &ast.StmtPropertyList{ast.Node{}, $1, nil, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -2711,7 +2712,7 @@ class_statement: $$ = $1 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.Hidden) @@ -2731,11 +2732,11 @@ class_statement: $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $6, nil, $8} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + name.GetNode().Position = position.NewTokenPosition($4) if $1 == nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $8) + $$.GetNode().Position = position.NewTokenNodePosition($2, $8) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $8) + $$.GetNode().Position = position.NewNodeListNodePosition($1, $8) } // save comments @@ -2764,7 +2765,7 @@ trait_use_statement: $$ = &ast.StmtTraitUse{ast.Node{}, $2, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2796,7 +2797,7 @@ trait_adaptations: { $$ = &ast.StmtNop{ast.Node{}, } - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2808,7 +2809,7 @@ trait_adaptations: { $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2877,7 +2878,7 @@ trait_precedence: $$ = &ast.StmtTraitUsePrecedence{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3) + $$.GetNode().Position = position.NewNodeNodeListPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2912,8 +2913,8 @@ trait_method_reference: $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2935,8 +2936,8 @@ trait_method_reference_fully_qualified: $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2954,8 +2955,8 @@ trait_alias: $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + alias.GetNode().Position = position.NewTokenPosition($4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2969,7 +2970,7 @@ trait_alias: $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3000,7 +3001,7 @@ method_body: $$ = &ast.StmtNop{ast.Node{}, } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3013,7 +3014,7 @@ method_body: $$ = &ast.StmtStmtList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3036,7 +3037,7 @@ variable_modifiers: $$ = []ast.Vertex{modifier} // save position - modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + modifier.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Hidden) @@ -3081,7 +3082,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3093,7 +3094,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3105,7 +3106,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3117,7 +3118,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3129,7 +3130,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3141,7 +3142,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3159,9 +3160,9 @@ class_variable_declaration: $$ = append($1, property) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + identifier.GetNode().Position = position.NewTokenPosition($3) + variable.GetNode().Position = position.NewTokenPosition($3) + property.GetNode().Position = position.NewTokenPosition($3) // save comments yylex.(*Parser).addDollarToken(variable) @@ -3178,9 +3179,9 @@ class_variable_declaration: $$ = append($1, property) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) + identifier.GetNode().Position = position.NewTokenPosition($3) + variable.GetNode().Position = position.NewTokenPosition($3) + property.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -3198,9 +3199,9 @@ class_variable_declaration: $$ = []ast.Vertex{property} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + property.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).addDollarToken(variable) @@ -3216,9 +3217,9 @@ class_variable_declaration: $$ = []ast.Vertex{property} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - property.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + property.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).addDollarToken(variable) @@ -3240,9 +3241,9 @@ class_constant_declaration: $$ = $1 // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $5) - $1.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) + name.GetNode().Position = position.NewTokenPosition($3) + constant.GetNode().Position = position.NewTokenNodePosition($3, $5) + $1.GetNode().Position = position.NewNodesPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Hidden) @@ -3258,9 +3259,9 @@ class_constant_declaration: $$ = &ast.StmtClassConstList{ast.Node{}, nil, []ast.Vertex{constant}} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - constant.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) + name.GetNode().Position = position.NewTokenPosition($2) + constant.GetNode().Position = position.NewTokenNodePosition($2, $4) + $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3345,7 +3346,7 @@ chaining_dereference: $$ = append($1, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + fetch.GetNode().Position = position.NewNodePosition($3) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) @@ -3359,7 +3360,7 @@ chaining_dereference: $$ = []ast.Vertex{fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($2) + fetch.GetNode().Position = position.NewNodePosition($2) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) @@ -3411,10 +3412,10 @@ new_expr: if $3 != nil { $$ = &ast.ExprNew{ast.Node{}, $2, $3.(*ast.ArgumentList)} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) } else { $$ = &ast.ExprNew{ast.Node{}, $2, nil} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) } // save comments @@ -3431,8 +3432,8 @@ expr_without_variable: $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) + listNode.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokenNodePosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3447,7 +3448,7 @@ expr_without_variable: $$ = &ast.ExprAssign{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3460,7 +3461,7 @@ expr_without_variable: $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3482,11 +3483,11 @@ expr_without_variable: // save position if $6 != nil { - _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6) + _new.GetNode().Position = position.NewTokenNodePosition($4, $6) } else { - _new.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $5) + _new.GetNode().Position = position.NewTokenNodePosition($4, $5) } - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, _new) + $$.GetNode().Position = position.NewNodesPosition($1, _new) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3501,7 +3502,7 @@ expr_without_variable: $$ = &ast.ExprClone{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3513,7 +3514,7 @@ expr_without_variable: $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) @@ -3525,7 +3526,7 @@ expr_without_variable: $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3538,7 +3539,7 @@ expr_without_variable: $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3551,7 +3552,7 @@ expr_without_variable: $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3564,7 +3565,7 @@ expr_without_variable: $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3577,7 +3578,7 @@ expr_without_variable: $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3590,7 +3591,7 @@ expr_without_variable: $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3603,7 +3604,7 @@ expr_without_variable: $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3616,7 +3617,7 @@ expr_without_variable: $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3629,7 +3630,7 @@ expr_without_variable: $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3642,7 +3643,7 @@ expr_without_variable: $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3655,7 +3656,7 @@ expr_without_variable: $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3668,7 +3669,7 @@ expr_without_variable: $$ = &ast.ExprPostInc{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3681,7 +3682,7 @@ expr_without_variable: $$ = &ast.ExprPreInc{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3693,7 +3694,7 @@ expr_without_variable: $$ = &ast.ExprPostDec{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3706,7 +3707,7 @@ expr_without_variable: $$ = &ast.ExprPreDec{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3718,7 +3719,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3731,7 +3732,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3744,7 +3745,7 @@ expr_without_variable: $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3757,7 +3758,7 @@ expr_without_variable: $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3770,7 +3771,7 @@ expr_without_variable: $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3783,7 +3784,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3796,7 +3797,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3809,7 +3810,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3822,7 +3823,7 @@ expr_without_variable: $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3835,7 +3836,7 @@ expr_without_variable: $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3848,7 +3849,7 @@ expr_without_variable: $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3861,7 +3862,7 @@ expr_without_variable: $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3874,7 +3875,7 @@ expr_without_variable: $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3887,7 +3888,7 @@ expr_without_variable: $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3900,7 +3901,7 @@ expr_without_variable: $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3913,7 +3914,7 @@ expr_without_variable: $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3926,7 +3927,7 @@ expr_without_variable: $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3939,7 +3940,7 @@ expr_without_variable: $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3951,7 +3952,7 @@ expr_without_variable: $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3963,7 +3964,7 @@ expr_without_variable: $$ = &ast.ExprBooleanNot{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3975,7 +3976,7 @@ expr_without_variable: $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3987,7 +3988,7 @@ expr_without_variable: $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4000,7 +4001,7 @@ expr_without_variable: $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4013,7 +4014,7 @@ expr_without_variable: $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4026,7 +4027,7 @@ expr_without_variable: $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4040,7 +4041,7 @@ expr_without_variable: $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4053,7 +4054,7 @@ expr_without_variable: $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4066,7 +4067,7 @@ expr_without_variable: $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4079,7 +4080,7 @@ expr_without_variable: $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4092,7 +4093,7 @@ expr_without_variable: $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4142,7 +4143,7 @@ expr_without_variable: } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, n) + $$.GetNode().Position = position.NewNodesPosition($$, n) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4152,7 +4153,7 @@ expr_without_variable: $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) + $$.GetNode().Position = position.NewNodesPosition($1, $5) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4166,7 +4167,7 @@ expr_without_variable: $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4186,7 +4187,7 @@ expr_without_variable: $$ = &ast.ExprCastInt{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4199,7 +4200,7 @@ expr_without_variable: $$ = &ast.ExprCastDouble{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4212,7 +4213,7 @@ expr_without_variable: $$ = &ast.ExprCastString{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4225,7 +4226,7 @@ expr_without_variable: $$ = &ast.ExprCastArray{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4238,7 +4239,7 @@ expr_without_variable: $$ = &ast.ExprCastObject{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4251,7 +4252,7 @@ expr_without_variable: $$ = &ast.ExprCastBool{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4264,7 +4265,7 @@ expr_without_variable: $$ = &ast.ExprCastUnset{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4283,9 +4284,9 @@ expr_without_variable: // save position if $2.GetNode().Position == nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) } // save comments @@ -4298,7 +4299,7 @@ expr_without_variable: $$ = &ast.ExprErrorSuppress{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4328,7 +4329,7 @@ expr_without_variable: $$ = &ast.ExprShellExec{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4340,7 +4341,7 @@ expr_without_variable: $$ = &ast.ExprPrint{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4352,7 +4353,7 @@ expr_without_variable: $$ = &ast.ExprYield{ast.Node{}, nil, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4364,7 +4365,7 @@ expr_without_variable: $$ = &ast.ExprClosure{ast.Node{}, $2 != nil, false, $4, $6, nil, $8} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $9) + $$.GetNode().Position = position.NewTokensPosition($1, $9) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4390,7 +4391,7 @@ expr_without_variable: $$ = &ast.ExprClosure{ast.Node{}, $3 != nil, true, $5, $7, nil, $9} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $10) + $$.GetNode().Position = position.NewTokensPosition($1, $10) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4420,7 +4421,7 @@ yield_expr: $$ = &ast.ExprYield{ast.Node{}, nil, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4432,7 +4433,7 @@ yield_expr: $$ = &ast.ExprYield{ast.Node{}, nil, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4444,7 +4445,7 @@ yield_expr: $$ = &ast.ExprYield{ast.Node{}, $2, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) + $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4457,7 +4458,7 @@ yield_expr: $$ = &ast.ExprYield{ast.Node{}, $2, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) + $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4473,7 +4474,7 @@ combined_scalar_offset: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4487,7 +4488,7 @@ combined_scalar_offset: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4502,8 +4503,8 @@ combined_scalar_offset: $$ = &ast.ExprArrayDimFetch{ast.Node{}, str, $3} // save position - str.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(str, $4) + str.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewNodeTokenPosition(str, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4517,7 +4518,7 @@ combined_scalar_offset: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4534,7 +4535,7 @@ combined_scalar: $$ = &ast.ExprArray{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4548,7 +4549,7 @@ combined_scalar: $$ = &ast.ExprShortArray{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4577,7 +4578,7 @@ lexical_vars: $$ = &ast.ExprClosureUse{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4596,8 +4597,8 @@ lexical_var_list: $$ = append($1, variable) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + identifier.GetNode().Position = position.NewTokenPosition($3) + variable.GetNode().Position = position.NewTokenPosition($3) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -4614,9 +4615,9 @@ lexical_var_list: $$ = append($1, reference) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4) + identifier.GetNode().Position = position.NewTokenPosition($4) + variable.GetNode().Position = position.NewTokenPosition($4) + reference.GetNode().Position = position.NewTokensPosition($3, $4) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -4633,8 +4634,8 @@ lexical_var_list: $$ = []ast.Vertex{variable} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Hidden) @@ -4650,9 +4651,9 @@ lexical_var_list: $$ = []ast.Vertex{reference} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + identifier.GetNode().Position = position.NewTokenPosition($2) + variable.GetNode().Position = position.NewTokenPosition($2) + reference.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Hidden) @@ -4670,8 +4671,8 @@ function_call: $$ = &ast.ExprFunctionCall{ast.Node{}, name, $2.(*ast.ArgumentList)} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(name, $2) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodesPosition(name, $2) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -4684,8 +4685,8 @@ function_call: $$ = &ast.ExprFunctionCall{ast.Node{}, funcName, $4.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $4) + funcName.GetNode().Position = position.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition(funcName, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4699,8 +4700,8 @@ function_call: $$ = &ast.ExprFunctionCall{ast.Node{}, funcName, $3.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(funcName, $3) + funcName.GetNode().Position = position.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewNodesPosition(funcName, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4712,7 +4713,7 @@ function_call: $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4725,7 +4726,7 @@ function_call: $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4738,7 +4739,7 @@ function_call: $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4751,7 +4752,7 @@ function_call: $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4764,7 +4765,7 @@ function_call: $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2) + $$.GetNode().Position = position.NewNodesPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4779,7 +4780,7 @@ class_name: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4791,7 +4792,7 @@ class_name: $$ = &ast.NameName{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -4803,7 +4804,7 @@ class_name: $$ = &ast.NameRelative{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4816,7 +4817,7 @@ class_name: $$ = &ast.NameFullyQualified{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4831,7 +4832,7 @@ fully_qualified_class_name: $$ = &ast.NameName{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -4843,7 +4844,7 @@ fully_qualified_class_name: $$ = &ast.NameRelative{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4856,7 +4857,7 @@ fully_qualified_class_name: $$ = &ast.NameFullyQualified{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4892,13 +4893,13 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } @@ -4908,13 +4909,13 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } @@ -4971,7 +4972,7 @@ exit_expr: $$ = &ast.ExprExit{ast.Node{}, false, nil}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) @@ -4985,9 +4986,9 @@ exit_expr: // save position if bytes.Compare(yylex.(*Parser).currentToken.Value, []byte(")")) == 0 { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yylex.(*Parser).currentToken) + $$.GetNode().Position = position.NewTokenPosition(yylex.(*Parser).currentToken) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5011,7 +5012,7 @@ backticks_expr: $$ = []ast.Vertex{part} // save position - part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + part.GetNode().Position = position.NewTokenPosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5044,7 +5045,7 @@ common_scalar: $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5056,7 +5057,7 @@ common_scalar: $$ = &ast.ScalarDnumber{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5068,7 +5069,7 @@ common_scalar: $$ = &ast.ScalarString{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5080,7 +5081,7 @@ common_scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5092,7 +5093,7 @@ common_scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5104,7 +5105,7 @@ common_scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5116,7 +5117,7 @@ common_scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5128,7 +5129,7 @@ common_scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5140,7 +5141,7 @@ common_scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5152,7 +5153,7 @@ common_scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5165,8 +5166,8 @@ common_scalar: $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, []ast.Vertex{encapsed}} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + encapsed.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5178,7 +5179,7 @@ common_scalar: $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5194,8 +5195,8 @@ static_class_constant: $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5234,8 +5235,8 @@ static_scalar_value: $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -5248,8 +5249,8 @@ static_scalar_value: $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + name.GetNode().Position = position.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5263,8 +5264,8 @@ static_scalar_value: $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + name.GetNode().Position = position.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5276,7 +5277,7 @@ static_scalar_value: $$ = &ast.ExprArray{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5290,7 +5291,7 @@ static_scalar_value: $$ = &ast.ExprShortArray{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5309,7 +5310,7 @@ static_scalar_value: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5330,7 +5331,7 @@ static_operation: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5344,7 +5345,7 @@ static_operation: $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5357,7 +5358,7 @@ static_operation: $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5370,7 +5371,7 @@ static_operation: $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5383,7 +5384,7 @@ static_operation: $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5396,7 +5397,7 @@ static_operation: $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5409,7 +5410,7 @@ static_operation: $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5422,7 +5423,7 @@ static_operation: $$ = &ast.ExprBooleanNot{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5434,7 +5435,7 @@ static_operation: $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5446,7 +5447,7 @@ static_operation: $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5459,7 +5460,7 @@ static_operation: $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5472,7 +5473,7 @@ static_operation: $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5485,7 +5486,7 @@ static_operation: $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5498,7 +5499,7 @@ static_operation: $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5511,7 +5512,7 @@ static_operation: $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5524,7 +5525,7 @@ static_operation: $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5537,7 +5538,7 @@ static_operation: $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5550,7 +5551,7 @@ static_operation: $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5563,7 +5564,7 @@ static_operation: $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5576,7 +5577,7 @@ static_operation: $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5589,7 +5590,7 @@ static_operation: $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5602,7 +5603,7 @@ static_operation: $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5615,7 +5616,7 @@ static_operation: $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5628,7 +5629,7 @@ static_operation: $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5642,7 +5643,7 @@ static_operation: $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5655,7 +5656,7 @@ static_operation: $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5668,7 +5669,7 @@ static_operation: $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5681,7 +5682,7 @@ static_operation: $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5694,7 +5695,7 @@ static_operation: $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5708,7 +5709,7 @@ static_operation: $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) + $$.GetNode().Position = position.NewNodesPosition($1, $5) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5722,7 +5723,7 @@ static_operation: $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5734,7 +5735,7 @@ static_operation: $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5766,8 +5767,8 @@ general_constant: $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -5780,8 +5781,8 @@ general_constant: $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5795,8 +5796,8 @@ general_constant: $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(name) + name.GetNode().Position = position.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewNodePosition(name) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5812,8 +5813,8 @@ scalar: $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5843,7 +5844,7 @@ scalar: $$ = &ast.ScalarEncapsed{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5855,7 +5856,7 @@ scalar: $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5867,7 +5868,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5914,7 +5915,7 @@ non_empty_static_array_pair_list: $$ = append($1, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5) + arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -5929,7 +5930,7 @@ non_empty_static_array_pair_list: $$ = append($1, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -5943,7 +5944,7 @@ non_empty_static_array_pair_list: $$ = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + arrayItem.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) @@ -5957,7 +5958,7 @@ non_empty_static_array_pair_list: $$ = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + arrayItem.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) @@ -6062,19 +6063,19 @@ variable: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + nn.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + nn.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprMethodCall: nn.Var = $$ - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + nn.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } @@ -6084,19 +6085,19 @@ variable: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + nn.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + nn.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprMethodCall: nn.Var = $$ - nn.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($$, nn) + nn.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } @@ -6152,7 +6153,7 @@ array_method_dereference: $$ = append($1, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + fetch.GetNode().Position = position.NewNodePosition($3) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) @@ -6166,7 +6167,7 @@ array_method_dereference: $$ = []ast.Vertex{$1, fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + fetch.GetNode().Position = position.NewNodePosition($3) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) @@ -6182,7 +6183,7 @@ method: $$ = &ast.ExprMethodCall{ast.Node{}, nil, nil, $1.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6221,7 +6222,7 @@ variable_without_objects: $1.last.VarName = $2 for _, n := range($1.all) { - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) + n.GetNode().Position = position.NewNodesPosition(n, $2) } $$ = $1.all[0] @@ -6236,7 +6237,7 @@ static_member: $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6249,7 +6250,7 @@ static_member: $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6274,7 +6275,7 @@ array_function_dereference: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6288,7 +6289,7 @@ array_function_dereference: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6333,7 +6334,7 @@ base_variable: $1.last.VarName = $2 for _, n := range($1.all) { - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(n, $2) + n.GetNode().Position = position.NewNodesPosition(n, $2) } $$ = $1.all[0] @@ -6354,7 +6355,7 @@ reference_variable: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6368,7 +6369,7 @@ reference_variable: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6393,8 +6394,8 @@ compound_variable: $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6407,7 +6408,7 @@ compound_variable: $$ = &ast.ExprVariable{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6448,7 +6449,7 @@ object_property: $$ = []ast.Vertex{fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + fetch.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6461,7 +6462,7 @@ object_dim_list: $$ = append($1, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + fetch.GetNode().Position = position.NewNodePosition($3) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) @@ -6475,7 +6476,7 @@ object_dim_list: $$ = append($1, fetch) // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + fetch.GetNode().Position = position.NewNodePosition($3) // save comments yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) @@ -6489,7 +6490,7 @@ object_dim_list: $$ = []ast.Vertex{fetch} // save position - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + fetch.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6501,7 +6502,7 @@ variable_name: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6513,7 +6514,7 @@ variable_name: $$ = $2 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) @@ -6530,7 +6531,7 @@ simple_indirect_reference: $$ = simpleIndirectReference{[]*ast.ExprVariable{n}, n} // save position - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + n.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(n, token.Start, $1.Hidden) @@ -6548,7 +6549,7 @@ simple_indirect_reference: $$ = $1 // save position - n.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + n.GetNode().Position = position.NewTokenPosition($2) // save comments yylex.(*Parser).setFreeFloating(n, token.Start, $2.Hidden) @@ -6591,7 +6592,7 @@ assignment_list_element: $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -6604,8 +6605,8 @@ assignment_list_element: $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(listNode) + listNode.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewNodePosition(listNode) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6654,7 +6655,7 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $5) + arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -6669,7 +6670,7 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($3) + arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -6683,7 +6684,7 @@ non_empty_array_pair_list: $$ = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + arrayItem.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) @@ -6697,7 +6698,7 @@ non_empty_array_pair_list: $$ = []ast.Vertex{arrayItem} // save position - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + arrayItem.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) @@ -6711,8 +6712,8 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($5, $6) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($3, $6) + reference.GetNode().Position = position.NewTokenNodePosition($5, $6) + arrayItem.GetNode().Position = position.NewNodesPosition($3, $6) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -6729,8 +6730,8 @@ non_empty_array_pair_list: $$ = append($1, arrayItem) // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) + reference.GetNode().Position = position.NewTokenNodePosition($3, $4) + arrayItem.GetNode().Position = position.NewTokenNodePosition($3, $4) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -6745,8 +6746,8 @@ non_empty_array_pair_list: $$ = []ast.Vertex{arrayItem} // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + reference.GetNode().Position = position.NewTokenNodePosition($3, $4) + arrayItem.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) @@ -6762,8 +6763,8 @@ non_empty_array_pair_list: $$ = []ast.Vertex{arrayItem} // save position - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) - arrayItem.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + reference.GetNode().Position = position.NewTokenNodePosition($1, $2) + arrayItem.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.Hidden) @@ -6785,7 +6786,7 @@ encaps_list: $$ = append($1, encapsed) // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + encapsed.GetNode().Position = position.NewTokenPosition($2) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Hidden) @@ -6804,7 +6805,7 @@ encaps_list: $$ = []ast.Vertex{encapsed, $2} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + encapsed.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Hidden) @@ -6820,8 +6821,8 @@ encaps_var: $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6836,9 +6837,9 @@ encaps_var: $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).addDollarToken(variable) @@ -6855,10 +6856,10 @@ encaps_var: $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + fetch.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).addDollarToken(variable) @@ -6874,7 +6875,7 @@ encaps_var: $$ = variable // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) @@ -6890,8 +6891,8 @@ encaps_var: $$ = variable // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + name.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) @@ -6906,9 +6907,9 @@ encaps_var: $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + identifier.GetNode().Position = position.NewTokenPosition($2) + variable.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) @@ -6936,7 +6937,7 @@ encaps_var_offset: $$ = &ast.ScalarString{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6953,7 +6954,7 @@ encaps_var_offset: } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6966,8 +6967,8 @@ encaps_var_offset: $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6983,7 +6984,7 @@ internal_functions_in_yacc: $$ = &ast.ExprIsset{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -6997,7 +6998,7 @@ internal_functions_in_yacc: $$ = &ast.ExprEmpty{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -7011,7 +7012,7 @@ internal_functions_in_yacc: $$ = &ast.ExprEmpty{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -7025,7 +7026,7 @@ internal_functions_in_yacc: $$ = &ast.ExprInclude{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -7037,7 +7038,7 @@ internal_functions_in_yacc: $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -7049,7 +7050,7 @@ internal_functions_in_yacc: $$ = &ast.ExprEval{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -7063,7 +7064,7 @@ internal_functions_in_yacc: $$ = &ast.ExprRequire{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -7075,7 +7076,7 @@ internal_functions_in_yacc: $$ = &ast.ExprRequireOnce{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -7124,8 +7125,8 @@ class_constant: $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -7140,8 +7141,8 @@ class_constant: $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -7159,8 +7160,8 @@ static_class_name_scalar: $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -7178,8 +7179,8 @@ class_name_scalar: $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) diff --git a/internal/php7/parser.go b/internal/php7/parser.go index 1b3c0a6..25f28d5 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -3,7 +3,6 @@ package php7 import ( "bytes" - "github.com/z7zmey/php-parser/internal/positionbuilder" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -12,12 +11,11 @@ import ( // Parser structure type Parser struct { - Lexer *scanner.Lexer - currentToken *scanner.Token - positionBuilder *positionbuilder.PositionBuilder - rootNode ast.Vertex - errors []*errors.Error - withTokens bool + Lexer *scanner.Lexer + currentToken *scanner.Token + rootNode ast.Vertex + errors []*errors.Error + withTokens bool } // NewParser creates and returns new Parser @@ -64,7 +62,6 @@ func (l *Parser) Parse() int { // init l.errors = nil l.rootNode = nil - l.positionBuilder = &positionbuilder.PositionBuilder{} // parse diff --git a/internal/php7/php7.go b/internal/php7/php7.go index ff4af9b..cccb6d9 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -11,12 +11,13 @@ import ( "bytes" "strconv" + "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php7/php7.y:15 +// line internal/php7/php7.y:16 type yySymType struct { yys int node ast.Vertex @@ -345,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5662 +// line internal/php7/php7.y:5663 // line yacctab:1 var yyExca = [...]int{ @@ -2112,12 +2113,12 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} // save position - yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) @@ -2125,469 +2126,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:317 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:325 + // line internal/php7/php7.y:326 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:329 + // line internal/php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:336 + // line internal/php7/php7.y:337 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2602,7 +2603,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:349 + // line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{} @@ -2610,13 +2611,13 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:358 + // line internal/php7/php7.y:359 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Hidden) @@ -2625,13 +2626,13 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:371 + // line internal/php7/php7.y:372 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) + namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) @@ -2641,12 +2642,12 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:388 + // line internal/php7/php7.y:389 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -2655,12 +2656,12 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:400 + // line internal/php7/php7.y:401 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2670,12 +2671,12 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:413 + // line internal/php7/php7.y:414 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2684,7 +2685,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:428 + // line internal/php7/php7.y:429 { // error yyVAL.node = nil @@ -2693,7 +2694,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:435 + // line internal/php7/php7.y:436 { yyVAL.node = yyDollar[1].node @@ -2701,7 +2702,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:441 + // line internal/php7/php7.y:442 { yyVAL.node = yyDollar[1].node @@ -2709,7 +2710,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:447 + // line internal/php7/php7.y:448 { yyVAL.node = yyDollar[1].node @@ -2717,7 +2718,7 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:453 + // line internal/php7/php7.y:454 { yyVAL.node = yyDollar[1].node @@ -2725,7 +2726,7 @@ yydefault: } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:459 + // line internal/php7/php7.y:460 { yyVAL.node = yyDollar[1].node @@ -2733,12 +2734,12 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:465 + // line internal/php7/php7.y:466 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2751,14 +2752,14 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:481 + // line internal/php7/php7.y:482 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2770,14 +2771,14 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:498 + // line internal/php7/php7.y:499 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2789,12 +2790,12 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:515 + // line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2805,12 +2806,12 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:529 + // line internal/php7/php7.y:530 { yyVAL.node = yyDollar[2].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2821,13 +2822,13 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:543 + // line internal/php7/php7.y:544 { yyDollar[3].node.(*ast.StmtGroupUse).UseType = yyDollar[2].node yyVAL.node = yyDollar[3].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2838,12 +2839,12 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:558 + // line internal/php7/php7.y:559 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2854,12 +2855,12 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:572 + // line internal/php7/php7.y:573 { yyVAL.node = &ast.StmtUseList{ast.Node{}, yyDollar[2].node, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2870,12 +2871,12 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:586 + // line internal/php7/php7.y:587 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2886,12 +2887,12 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:603 + // line internal/php7/php7.y:604 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2900,12 +2901,12 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:615 + // line internal/php7/php7.y:616 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -2914,14 +2915,14 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:630 + // line internal/php7/php7.y:631 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) @@ -2937,14 +2938,14 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:651 + // line internal/php7/php7.y:652 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseType, yyDollar[1].token.Hidden) @@ -2961,14 +2962,14 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:676 + // line internal/php7/php7.y:677 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) @@ -2984,14 +2985,14 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:697 + // line internal/php7/php7.y:698 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Use, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) @@ -3008,19 +3009,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:722 + // line internal/php7/php7.y:723 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:726 + // line internal/php7/php7.y:727 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:733 + // line internal/php7/php7.y:734 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3031,7 +3032,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:742 + // line internal/php7/php7.y:743 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3039,7 +3040,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:751 + // line internal/php7/php7.y:752 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3050,7 +3051,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:760 + // line internal/php7/php7.y:761 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3058,7 +3059,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:769 + // line internal/php7/php7.y:770 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3069,7 +3070,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:778 + // line internal/php7/php7.y:779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3077,7 +3078,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:787 + // line internal/php7/php7.y:788 { yyVAL.node = yyDollar[1].node @@ -3085,7 +3086,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:793 + // line internal/php7/php7.y:794 { yyDollar[2].node.(*ast.StmtUse).UseType = yyDollar[1].node yyVAL.node = yyDollar[2].node @@ -3094,14 +3095,14 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:803 + // line internal/php7/php7.y:804 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) @@ -3110,16 +3111,16 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:817 + // line internal/php7/php7.y:818 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) + name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) @@ -3130,7 +3131,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:838 + // line internal/php7/php7.y:839 { yyVAL.node = yyDollar[1].node @@ -3141,7 +3142,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:847 + // line internal/php7/php7.y:848 { yyVAL.node = yyDollar[2].node @@ -3156,7 +3157,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:863 + // line internal/php7/php7.y:864 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3167,7 +3168,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:872 + // line internal/php7/php7.y:873 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3175,7 +3176,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:881 + // line internal/php7/php7.y:882 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3190,7 +3191,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:894 + // line internal/php7/php7.y:895 { yyVAL.list = []ast.Vertex{} @@ -3198,7 +3199,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:903 + // line internal/php7/php7.y:904 { // error yyVAL.node = nil @@ -3207,7 +3208,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:910 + // line internal/php7/php7.y:911 { yyVAL.node = yyDollar[1].node @@ -3215,7 +3216,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:916 + // line internal/php7/php7.y:917 { yyVAL.node = yyDollar[1].node @@ -3223,7 +3224,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:922 + // line internal/php7/php7.y:923 { yyVAL.node = yyDollar[1].node @@ -3231,7 +3232,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:928 + // line internal/php7/php7.y:929 { yyVAL.node = yyDollar[1].node @@ -3239,7 +3240,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:934 + // line internal/php7/php7.y:935 { yyVAL.node = yyDollar[1].node @@ -3247,12 +3248,12 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:940 + // line internal/php7/php7.y:941 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3265,12 +3266,12 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:958 + // line internal/php7/php7.y:959 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3280,7 +3281,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:971 + // line internal/php7/php7.y:972 { yyVAL.node = yyDollar[1].node @@ -3288,7 +3289,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:977 + // line internal/php7/php7.y:978 { yyVAL.node = yyDollar[1].node @@ -3296,7 +3297,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:983 + // line internal/php7/php7.y:984 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3308,7 +3309,7 @@ yydefault: yyVAL.node = yyDollar[5].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3319,12 +3320,12 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1004 + // line internal/php7/php7.y:1005 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3338,7 +3339,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1021 + // line internal/php7/php7.y:1022 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3354,7 +3355,7 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3367,7 +3368,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1049 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3381,7 +3382,7 @@ yydefault: yyVAL.node = yyDollar[5].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3392,12 +3393,12 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1071 + // line internal/php7/php7.y:1072 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3408,12 +3409,12 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3424,12 +3425,12 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1099 + // line internal/php7/php7.y:1100 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3440,12 +3441,12 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1113 + // line internal/php7/php7.y:1114 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3456,12 +3457,12 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1127 + // line internal/php7/php7.y:1128 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3472,12 +3473,12 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1141 + // line internal/php7/php7.y:1142 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3489,12 +3490,12 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1156 + // line internal/php7/php7.y:1157 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3503,12 +3504,12 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1168 + // line internal/php7/php7.y:1169 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -3519,12 +3520,12 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1182 + // line internal/php7/php7.y:1183 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3541,7 +3542,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1203 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3555,7 +3556,7 @@ yydefault: yyVAL.node = yyDollar[7].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3567,7 +3568,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1227 + // line internal/php7/php7.y:1228 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3583,7 +3584,7 @@ yydefault: yyVAL.node = yyDollar[9].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3596,13 +3597,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1254 + // line internal/php7/php7.y:1255 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3613,12 +3614,12 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1269 + // line internal/php7/php7.y:1270 { yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3628,14 +3629,14 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1282 + // line internal/php7/php7.y:1283 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) } else { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) } // save comments @@ -3647,12 +3648,12 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1299 + // line internal/php7/php7.y:1300 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3663,14 +3664,14 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1314 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + label.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3682,14 +3683,14 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1330 + // line internal/php7/php7.y:1331 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + label.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3699,7 +3700,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1347 + // line internal/php7/php7.y:1348 { yyVAL.list = []ast.Vertex{} @@ -3707,7 +3708,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1353 + // line internal/php7/php7.y:1354 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[5].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3715,9 +3716,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, catch) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[5].token) - catch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[5].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[5].token) + catch.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) // save comments yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Hidden) @@ -3732,7 +3733,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1378 + // line internal/php7/php7.y:1379 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3740,7 +3741,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1384 + // line internal/php7/php7.y:1385 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3751,7 +3752,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1396 + // line internal/php7/php7.y:1397 { yyVAL.node = nil @@ -3759,12 +3760,12 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1402 + // line internal/php7/php7.y:1403 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3775,7 +3776,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1419 + // line internal/php7/php7.y:1420 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3783,7 +3784,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1425 + // line internal/php7/php7.y:1426 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3794,7 +3795,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1438 { yyVAL.node = yyDollar[1].node @@ -3802,14 +3803,14 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1447 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3838,38 +3839,38 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1483 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1486 + // line internal/php7/php7.y:1487 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1493 + // line internal/php7/php7.y:1494 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1497 + // line internal/php7/php7.y:1498 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1504 + // line internal/php7/php7.y:1505 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -3882,14 +3883,14 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1523 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3901,7 +3902,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3909,7 +3910,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1548 + // line internal/php7/php7.y:1549 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3917,12 +3918,12 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1557 + // line internal/php7/php7.y:1558 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3931,12 +3932,12 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1569 + // line internal/php7/php7.y:1570 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3945,14 +3946,14 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1584 + // line internal/php7/php7.y:1585 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3964,14 +3965,14 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1604 + // line internal/php7/php7.y:1605 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -3983,7 +3984,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1625 { yyVAL.ClassExtends = nil @@ -3991,12 +3992,12 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1631 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} // save position - yyVAL.ClassExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Hidden) @@ -4005,7 +4006,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1645 + // line internal/php7/php7.y:1646 { yyVAL.InterfaceExtends = nil @@ -4013,12 +4014,12 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1651 + // line internal/php7/php7.y:1652 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} // save position - yyVAL.InterfaceExtends.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Hidden) @@ -4027,7 +4028,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1667 { yyVAL.ClassImplements = nil @@ -4035,12 +4036,12 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1672 + // line internal/php7/php7.y:1673 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} // save position - yyVAL.ClassImplements.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) + yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Hidden) @@ -4049,7 +4050,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1687 + // line internal/php7/php7.y:1688 { yyVAL.node = yyDollar[1].node @@ -4057,12 +4058,12 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1693 + // line internal/php7/php7.y:1694 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4071,12 +4072,12 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1705 + // line internal/php7/php7.y:1706 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4087,12 +4088,12 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1719 + // line internal/php7/php7.y:1720 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save commentsc yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4102,25 +4103,25 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1735 + // line internal/php7/php7.y:1736 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1744 + // line internal/php7/php7.y:1745 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4132,25 +4133,25 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1764 + // line internal/php7/php7.y:1765 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1773 + // line internal/php7/php7.y:1774 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4162,25 +4163,25 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1793 + // line internal/php7/php7.y:1794 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1802 + // line internal/php7/php7.y:1803 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4192,14 +4193,14 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1822 + // line internal/php7/php7.y:1823 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) @@ -4209,14 +4210,14 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1837 + // line internal/php7/php7.y:1838 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) @@ -4227,14 +4228,14 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1854 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4246,15 +4247,15 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1870 + // line internal/php7/php7.y:1871 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[3].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4267,7 +4268,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1892 + // line internal/php7/php7.y:1893 { yyVAL.list = []ast.Vertex{} @@ -4275,13 +4276,13 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1898 + // line internal/php7/php7.y:1899 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) // save position - _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) + _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Hidden) @@ -4292,13 +4293,13 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1913 + // line internal/php7/php7.y:1914 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) // save position - _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) + _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Hidden) @@ -4309,37 +4310,37 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1931 + // line internal/php7/php7.y:1932 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1936 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1942 + // line internal/php7/php7.y:1943 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1951 + // line internal/php7/php7.y:1952 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) @@ -4351,12 +4352,12 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1971 + // line internal/php7/php7.y:1972 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4367,7 +4368,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1985 + // line internal/php7/php7.y:1986 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4375,8 +4376,8 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + _elseIf.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) @@ -4387,7 +4388,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2006 + // line internal/php7/php7.y:2007 { yyVAL.node = yyDollar[1].node @@ -4395,7 +4396,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2012 + // line internal/php7/php7.y:2013 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4403,8 +4404,8 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + _else.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Hidden) @@ -4413,14 +4414,14 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2031 + // line internal/php7/php7.y:2032 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[6].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) + stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[6].list) + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4432,7 +4433,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2048 + // line internal/php7/php7.y:2049 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4441,8 +4442,8 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[7].list) - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) + stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[7].list) + _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) @@ -4454,12 +4455,12 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2072 { yyVAL.node = yyDollar[1].node // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Hidden) @@ -4470,7 +4471,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2086 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4479,9 +4480,9 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition(yyDollar[4].list) - _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) + stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + _else.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Hidden) @@ -4494,7 +4495,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2111 { yyVAL.list = yyDollar[1].list @@ -4502,7 +4503,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2116 + // line internal/php7/php7.y:2117 { yyVAL.list = nil @@ -4510,7 +4511,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2125 + // line internal/php7/php7.y:2126 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4518,7 +4519,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2131 + // line internal/php7/php7.y:2132 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4529,23 +4530,23 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2143 + // line internal/php7/php7.y:2144 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) } // save comments @@ -4580,23 +4581,23 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2190 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, yyDollar[6].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } // save comments @@ -4632,7 +4633,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2239 + // line internal/php7/php7.y:2240 { yyVAL.node = nil @@ -4640,7 +4641,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2245 + // line internal/php7/php7.y:2246 { yyVAL.node = yyDollar[1].node @@ -4648,7 +4649,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2254 + // line internal/php7/php7.y:2255 { yyVAL.node = yyDollar[1].node @@ -4656,12 +4657,12 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2260 + // line internal/php7/php7.y:2261 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4670,12 +4671,12 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2275 + // line internal/php7/php7.y:2276 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4684,12 +4685,12 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2287 + // line internal/php7/php7.y:2288 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4698,7 +4699,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2299 + // line internal/php7/php7.y:2300 { yyVAL.node = yyDollar[1].node @@ -4706,7 +4707,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2308 + // line internal/php7/php7.y:2309 { yyVAL.node = nil @@ -4714,7 +4715,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2315 { yyVAL.node = yyDollar[2].node @@ -4725,12 +4726,12 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2326 + // line internal/php7/php7.y:2327 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4740,12 +4741,12 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2339 + // line internal/php7/php7.y:2340 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4759,7 +4760,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2359 + // line internal/php7/php7.y:2360 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4767,7 +4768,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2365 + // line internal/php7/php7.y:2366 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4778,12 +4779,12 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2377 + // line internal/php7/php7.y:2378 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -4792,12 +4793,12 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2389 + // line internal/php7/php7.y:2390 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4806,7 +4807,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2404 + // line internal/php7/php7.y:2405 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4817,7 +4818,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2413 + // line internal/php7/php7.y:2414 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4825,7 +4826,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2422 + // line internal/php7/php7.y:2423 { yyVAL.node = yyDollar[1].node @@ -4833,7 +4834,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2432 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4844,7 +4845,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2440 + // line internal/php7/php7.y:2441 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4852,16 +4853,16 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2449 + // line internal/php7/php7.y:2450 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4871,16 +4872,16 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2466 + // line internal/php7/php7.y:2467 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4891,7 +4892,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2487 + // line internal/php7/php7.y:2488 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4899,7 +4900,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2493 + // line internal/php7/php7.y:2494 { yyVAL.list = []ast.Vertex{} @@ -4907,12 +4908,12 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2503 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) @@ -4923,12 +4924,12 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2516 + // line internal/php7/php7.y:2517 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token) // save comments if len(yyDollar[1].list) > 0 { @@ -4944,12 +4945,12 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2535 + // line internal/php7/php7.y:2536 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -4958,17 +4959,17 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2547 + // line internal/php7/php7.y:2548 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].list == nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) + yyVAL.node.GetNode().Position = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) } // save comments @@ -4995,7 +4996,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2584 + // line internal/php7/php7.y:2585 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5003,7 +5004,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2590 + // line internal/php7/php7.y:2591 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5014,11 +5015,11 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2602 + // line internal/php7/php7.y:2603 { yyVAL.node = &ast.StmtNop{ast.Node{}} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5028,11 +5029,11 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2615 + // line internal/php7/php7.y:2616 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5042,11 +5043,11 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2627 + // line internal/php7/php7.y:2628 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5056,7 +5057,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2642 + // line internal/php7/php7.y:2643 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5064,7 +5065,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2648 + // line internal/php7/php7.y:2649 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5072,7 +5073,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2657 + // line internal/php7/php7.y:2658 { yyVAL.node = yyDollar[1].node @@ -5084,7 +5085,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2667 + // line internal/php7/php7.y:2668 { yyVAL.node = yyDollar[1].node @@ -5096,12 +5097,12 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2680 + // line internal/php7/php7.y:2681 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) + yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5111,14 +5112,14 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2696 + // line internal/php7/php7.y:2697 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5129,14 +5130,14 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2712 + // line internal/php7/php7.y:2713 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5147,14 +5148,14 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2728 + // line internal/php7/php7.y:2729 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5165,12 +5166,12 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2744 + // line internal/php7/php7.y:2745 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5180,14 +5181,14 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2760 + // line internal/php7/php7.y:2761 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5196,7 +5197,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2774 + // line internal/php7/php7.y:2775 { yyVAL.node = yyDollar[1].node @@ -5204,14 +5205,14 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2783 + // line internal/php7/php7.y:2784 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5222,12 +5223,12 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2802 + // line internal/php7/php7.y:2803 { yyVAL.node = &ast.StmtNop{ast.Node{}} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5237,12 +5238,12 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2815 + // line internal/php7/php7.y:2816 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5252,7 +5253,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2831 + // line internal/php7/php7.y:2832 { yyVAL.list = yyDollar[1].list @@ -5260,13 +5261,13 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2837 + // line internal/php7/php7.y:2838 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} // save position - modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Hidden) @@ -5275,7 +5276,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2853 + // line internal/php7/php7.y:2854 { yyVAL.list = nil @@ -5283,7 +5284,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2859 + // line internal/php7/php7.y:2860 { yyVAL.list = yyDollar[1].list @@ -5291,7 +5292,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2868 + // line internal/php7/php7.y:2869 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5299,7 +5300,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2874 + // line internal/php7/php7.y:2875 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5307,12 +5308,12 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2884 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5321,12 +5322,12 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2895 + // line internal/php7/php7.y:2896 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5335,12 +5336,12 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2907 + // line internal/php7/php7.y:2908 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5349,12 +5350,12 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2919 + // line internal/php7/php7.y:2920 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5363,12 +5364,12 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2931 + // line internal/php7/php7.y:2932 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5377,12 +5378,12 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2943 + // line internal/php7/php7.y:2944 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5391,7 +5392,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2958 + // line internal/php7/php7.y:2959 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5402,7 +5403,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2967 + // line internal/php7/php7.y:2968 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5410,16 +5411,16 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2976 + // line internal/php7/php7.y:2977 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5429,16 +5430,16 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2993 + // line internal/php7/php7.y:2994 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5449,7 +5450,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3014 + // line internal/php7/php7.y:3015 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5460,7 +5461,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3024 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5468,14 +5469,14 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3032 + // line internal/php7/php7.y:3033 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5485,14 +5486,14 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3051 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5502,7 +5503,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3069 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5513,7 +5514,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3077 + // line internal/php7/php7.y:3078 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5521,7 +5522,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3086 + // line internal/php7/php7.y:3087 { yyVAL.node = yyDollar[1].node @@ -5529,7 +5530,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3096 { yyVAL.list = nil @@ -5537,7 +5538,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3102 { yyVAL.list = yyDollar[1].list @@ -5545,7 +5546,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3110 + // line internal/php7/php7.y:3111 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5556,7 +5557,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3119 + // line internal/php7/php7.y:3120 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5564,7 +5565,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3128 + // line internal/php7/php7.y:3129 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5573,7 +5574,7 @@ yydefault: } // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5584,14 +5585,14 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3150 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) } else { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) } // save comments @@ -5601,12 +5602,12 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3164 + // line internal/php7/php7.y:3165 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5615,14 +5616,14 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3179 + // line internal/php7/php7.y:3180 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5634,14 +5635,14 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3196 + // line internal/php7/php7.y:3197 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} // save position - shortList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + shortList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5652,12 +5653,12 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3212 + // line internal/php7/php7.y:3213 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5667,12 +5668,12 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3225 + // line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5683,12 +5684,12 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3239 + // line internal/php7/php7.y:3240 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5697,12 +5698,12 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3252 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5712,12 +5713,12 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3264 + // line internal/php7/php7.y:3265 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5727,12 +5728,12 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5742,12 +5743,12 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3290 + // line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5757,12 +5758,12 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3303 + // line internal/php7/php7.y:3304 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5772,12 +5773,12 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3316 + // line internal/php7/php7.y:3317 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5787,12 +5788,12 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3329 + // line internal/php7/php7.y:3330 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5802,12 +5803,12 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3342 + // line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5817,12 +5818,12 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3356 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5832,12 +5833,12 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3368 + // line internal/php7/php7.y:3369 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5847,12 +5848,12 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3381 + // line internal/php7/php7.y:3382 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5862,12 +5863,12 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3394 + // line internal/php7/php7.y:3395 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5877,12 +5878,12 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3407 + // line internal/php7/php7.y:3408 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5892,12 +5893,12 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3421 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5907,12 +5908,12 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3433 + // line internal/php7/php7.y:3434 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5921,12 +5922,12 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3445 + // line internal/php7/php7.y:3446 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5936,12 +5937,12 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3458 + // line internal/php7/php7.y:3459 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -5950,12 +5951,12 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3470 + // line internal/php7/php7.y:3471 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5965,12 +5966,12 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3483 + // line internal/php7/php7.y:3484 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5980,12 +5981,12 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3496 + // line internal/php7/php7.y:3497 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -5995,12 +5996,12 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3510 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6010,12 +6011,12 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3522 + // line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6025,12 +6026,12 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3535 + // line internal/php7/php7.y:3536 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6040,12 +6041,12 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3548 + // line internal/php7/php7.y:3549 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6055,12 +6056,12 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3561 + // line internal/php7/php7.y:3562 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6070,12 +6071,12 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3574 + // line internal/php7/php7.y:3575 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6085,12 +6086,12 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3587 + // line internal/php7/php7.y:3588 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6100,12 +6101,12 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3600 + // line internal/php7/php7.y:3601 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6115,12 +6116,12 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3613 + // line internal/php7/php7.y:3614 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6130,12 +6131,12 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3626 + // line internal/php7/php7.y:3627 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6145,12 +6146,12 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3639 + // line internal/php7/php7.y:3640 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6160,12 +6161,12 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3652 + // line internal/php7/php7.y:3653 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6175,12 +6176,12 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3665 + // line internal/php7/php7.y:3666 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6190,12 +6191,12 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3678 + // line internal/php7/php7.y:3679 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6205,12 +6206,12 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3691 + // line internal/php7/php7.y:3692 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6219,12 +6220,12 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3703 + // line internal/php7/php7.y:3704 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6233,12 +6234,12 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3715 + // line internal/php7/php7.y:3716 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6247,12 +6248,12 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3727 + // line internal/php7/php7.y:3728 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6261,12 +6262,12 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3739 + // line internal/php7/php7.y:3740 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6276,12 +6277,12 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3752 + // line internal/php7/php7.y:3753 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6291,12 +6292,12 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3765 + // line internal/php7/php7.y:3766 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6306,12 +6307,12 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3778 + // line internal/php7/php7.y:3779 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6322,12 +6323,12 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3792 + // line internal/php7/php7.y:3793 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6337,12 +6338,12 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3805 + // line internal/php7/php7.y:3806 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6352,12 +6353,12 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3819 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6367,12 +6368,12 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3831 + // line internal/php7/php7.y:3832 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6382,12 +6383,12 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3844 + // line internal/php7/php7.y:3845 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6397,12 +6398,12 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3857 + // line internal/php7/php7.y:3858 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6412,7 +6413,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3871 { yyVAL.node = yyDollar[2].node @@ -6424,7 +6425,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3881 { yyVAL.node = yyDollar[1].node @@ -6432,12 +6433,12 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3886 + // line internal/php7/php7.y:3887 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6448,12 +6449,12 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3901 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6464,12 +6465,12 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3914 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6479,7 +6480,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3928 { yyVAL.node = yyDollar[1].node @@ -6487,12 +6488,12 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3934 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6502,12 +6503,12 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3947 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6517,12 +6518,12 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3960 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6532,12 +6533,12 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3972 + // line internal/php7/php7.y:3973 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6547,12 +6548,12 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3985 + // line internal/php7/php7.y:3986 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6562,12 +6563,12 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3998 + // line internal/php7/php7.y:3999 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6577,12 +6578,12 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4011 + // line internal/php7/php7.y:4012 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6592,7 +6593,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4024 + // line internal/php7/php7.y:4025 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6609,9 +6610,9 @@ yydefault: // save position if yyDollar[2].node == nil { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) } // save comments @@ -6621,12 +6622,12 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4051 + // line internal/php7/php7.y:4052 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6635,7 +6636,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4064 { yyVAL.node = yyDollar[1].node @@ -6643,12 +6644,12 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4069 + // line internal/php7/php7.y:4070 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6657,12 +6658,12 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4081 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6671,12 +6672,12 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4093 + // line internal/php7/php7.y:4094 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6685,12 +6686,12 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4105 + // line internal/php7/php7.y:4106 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6699,12 +6700,12 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4117 + // line internal/php7/php7.y:4118 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6714,12 +6715,12 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4130 + // line internal/php7/php7.y:4131 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6728,7 +6729,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node @@ -6736,7 +6737,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4148 + // line internal/php7/php7.y:4149 { yyVAL.node = yyDollar[2].node @@ -6748,7 +6749,7 @@ yydefault: } // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyVAL.node.GetNode().Tokens[token.Start]) @@ -6759,12 +6760,12 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4171 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6796,12 +6797,12 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4203 + // line internal/php7/php7.y:4204 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6828,19 +6829,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4238 + // line internal/php7/php7.y:4239 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4243 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4249 + // line internal/php7/php7.y:4250 { yyVAL.ClosureUse = nil @@ -6848,12 +6849,12 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4255 + // line internal/php7/php7.y:4256 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} // save position - yyVAL.ClosureUse.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Hidden) @@ -6864,7 +6865,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4272 + // line internal/php7/php7.y:4273 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6875,7 +6876,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4282 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6883,14 +6884,14 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4290 + // line internal/php7/php7.y:4291 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6900,16 +6901,16 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4305 + // line internal/php7/php7.y:4306 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprReference{ast.Node{}, variable} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6920,12 +6921,12 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4326 + // line internal/php7/php7.y:4327 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6934,12 +6935,12 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4338 + // line internal/php7/php7.y:4339 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6949,12 +6950,12 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4351 + // line internal/php7/php7.y:4352 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6964,12 +6965,12 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4364 + // line internal/php7/php7.y:4365 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -6978,12 +6979,12 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4379 + // line internal/php7/php7.y:4380 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -6992,7 +6993,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4391 + // line internal/php7/php7.y:4392 { yyVAL.node = yyDollar[1].node @@ -7000,7 +7001,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4400 + // line internal/php7/php7.y:4401 { yyVAL.node = yyDollar[1].node @@ -7008,7 +7009,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4406 + // line internal/php7/php7.y:4407 { yyVAL.node = yyDollar[1].node @@ -7016,7 +7017,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4415 + // line internal/php7/php7.y:4416 { yyVAL.node = nil @@ -7024,12 +7025,12 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4421 + // line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) @@ -7039,7 +7040,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4437 + // line internal/php7/php7.y:4438 { yyVAL.list = []ast.Vertex{} @@ -7047,19 +7048,19 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4443 + // line internal/php7/php7.y:4444 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} // save position - part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + part.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4453 + // line internal/php7/php7.y:4454 { yyVAL.list = yyDollar[1].list @@ -7067,7 +7068,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4463 { yyVAL.node = nil @@ -7075,7 +7076,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4468 + // line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[1].node @@ -7083,12 +7084,12 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4478 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7099,12 +7100,12 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4491 + // line internal/php7/php7.y:4492 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7114,12 +7115,12 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4504 + // line internal/php7/php7.y:4505 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7128,12 +7129,12 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4519 + // line internal/php7/php7.y:4520 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7142,12 +7143,12 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4531 + // line internal/php7/php7.y:4532 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7156,12 +7157,12 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4543 + // line internal/php7/php7.y:4544 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7170,12 +7171,12 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4555 + // line internal/php7/php7.y:4556 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7184,12 +7185,12 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4567 + // line internal/php7/php7.y:4568 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7198,12 +7199,12 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4579 + // line internal/php7/php7.y:4580 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7212,12 +7213,12 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4591 + // line internal/php7/php7.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7226,12 +7227,12 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4603 + // line internal/php7/php7.y:4604 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7240,12 +7241,12 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4615 + // line internal/php7/php7.y:4616 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7254,12 +7255,12 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4627 + // line internal/php7/php7.y:4628 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7268,14 +7269,14 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4639 + // line internal/php7/php7.y:4640 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7284,12 +7285,12 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4653 + // line internal/php7/php7.y:4654 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7298,12 +7299,12 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4665 + // line internal/php7/php7.y:4666 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7312,12 +7313,12 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4677 + // line internal/php7/php7.y:4678 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7326,7 +7327,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4689 + // line internal/php7/php7.y:4690 { yyVAL.node = yyDollar[1].node @@ -7334,7 +7335,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4695 + // line internal/php7/php7.y:4696 { yyVAL.node = yyDollar[1].node @@ -7342,12 +7343,12 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4704 + // line internal/php7/php7.y:4705 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7356,14 +7357,14 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4716 + // line internal/php7/php7.y:4717 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7374,14 +7375,14 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4732 + // line internal/php7/php7.y:4733 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7392,7 +7393,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4751 + // line internal/php7/php7.y:4752 { yyVAL.node = yyDollar[1].node @@ -7400,7 +7401,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4757 + // line internal/php7/php7.y:4758 { yyVAL.node = yyDollar[1].node @@ -7408,7 +7409,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4766 + // line internal/php7/php7.y:4767 { yyVAL.node = nil @@ -7416,7 +7417,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4772 + // line internal/php7/php7.y:4773 { yyVAL.node = yyDollar[1].node @@ -7424,7 +7425,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4781 + // line internal/php7/php7.y:4782 { yyVAL.node = yyDollar[1].node @@ -7432,7 +7433,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4790 + // line internal/php7/php7.y:4791 { yyVAL.node = yyDollar[1].node @@ -7440,7 +7441,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4796 + // line internal/php7/php7.y:4797 { yyVAL.node = yyDollar[2].node @@ -7452,7 +7453,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4806 + // line internal/php7/php7.y:4807 { yyVAL.node = yyDollar[1].node @@ -7460,7 +7461,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4815 + // line internal/php7/php7.y:4816 { yyVAL.node = yyDollar[1].node @@ -7468,7 +7469,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4821 + // line internal/php7/php7.y:4822 { yyVAL.node = yyDollar[2].node @@ -7480,7 +7481,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4832 { yyVAL.node = yyDollar[1].node @@ -7488,7 +7489,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4840 + // line internal/php7/php7.y:4841 { yyVAL.node = yyDollar[1].node @@ -7496,12 +7497,12 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4846 + // line internal/php7/php7.y:4847 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7512,12 +7513,12 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4860 + // line internal/php7/php7.y:4861 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7528,12 +7529,12 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4874 + // line internal/php7/php7.y:4875 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7544,12 +7545,12 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4888 + // line internal/php7/php7.y:4889 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7559,7 +7560,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4901 + // line internal/php7/php7.y:4902 { yyVAL.node = yyDollar[1].node @@ -7567,7 +7568,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4910 + // line internal/php7/php7.y:4911 { yyVAL.node = yyDollar[1].node @@ -7575,7 +7576,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4916 + // line internal/php7/php7.y:4917 { yyVAL.node = yyDollar[1].node @@ -7583,12 +7584,12 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4922 + // line internal/php7/php7.y:4923 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7598,14 +7599,14 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4938 + // line internal/php7/php7.y:4939 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7615,12 +7616,12 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4953 + // line internal/php7/php7.y:4954 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7632,12 +7633,12 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4968 + // line internal/php7/php7.y:4969 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7647,12 +7648,12 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4984 + // line internal/php7/php7.y:4985 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7662,12 +7663,12 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4997 + // line internal/php7/php7.y:4998 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7677,7 +7678,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5013 + // line internal/php7/php7.y:5014 { yyVAL.node = yyDollar[1].node @@ -7685,12 +7686,12 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5019 + // line internal/php7/php7.y:5020 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7701,12 +7702,12 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5033 + // line internal/php7/php7.y:5034 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7717,12 +7718,12 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5047 + // line internal/php7/php7.y:5048 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7732,12 +7733,12 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5060 + // line internal/php7/php7.y:5061 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7747,12 +7748,12 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5073 + // line internal/php7/php7.y:5074 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7762,12 +7763,12 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5089 + // line internal/php7/php7.y:5090 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7776,7 +7777,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5101 + // line internal/php7/php7.y:5102 { yyVAL.node = yyDollar[2].node @@ -7788,7 +7789,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5111 + // line internal/php7/php7.y:5112 { yyVAL.node = yyDollar[1].node @@ -7796,12 +7797,12 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5120 + // line internal/php7/php7.y:5121 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7810,7 +7811,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5132 + // line internal/php7/php7.y:5133 { yyVAL.node = yyDollar[2].node @@ -7822,7 +7823,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5142 + // line internal/php7/php7.y:5143 { yyVAL.node = yyDollar[1].node @@ -7830,7 +7831,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5151 + // line internal/php7/php7.y:5152 { yyVAL.list = yyDollar[1].list @@ -7838,7 +7839,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5160 + // line internal/php7/php7.y:5161 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7846,7 +7847,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5166 + // line internal/php7/php7.y:5167 { yyVAL.node = yyDollar[1].node @@ -7854,7 +7855,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5175 + // line internal/php7/php7.y:5176 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7869,7 +7870,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5188 + // line internal/php7/php7.y:5189 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7881,12 +7882,12 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5201 + // line internal/php7/php7.y:5202 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7896,12 +7897,12 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5214 + // line internal/php7/php7.y:5215 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition(yyDollar[1].node) + yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7910,14 +7911,14 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5226 + // line internal/php7/php7.y:5227 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7928,14 +7929,14 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5242 + // line internal/php7/php7.y:5243 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7944,12 +7945,12 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5256 + // line internal/php7/php7.y:5257 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7958,15 +7959,15 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5268 + // line internal/php7/php7.y:5269 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, listNode} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) + listNode.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) @@ -7979,15 +7980,15 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5287 + // line internal/php7/php7.y:5288 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -7998,7 +7999,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5307 + // line internal/php7/php7.y:5308 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8006,13 +8007,13 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5313 + // line internal/php7/php7.y:5314 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) + encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Hidden) @@ -8021,7 +8022,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5326 + // line internal/php7/php7.y:5327 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8029,13 +8030,13 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5332 + // line internal/php7/php7.y:5333 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Hidden) @@ -8044,14 +8045,14 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5348 + // line internal/php7/php7.y:5349 { name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8061,16 +8062,16 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5363 + // line internal/php7/php7.y:5364 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).addDollarToken(variable) @@ -8081,7 +8082,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5381 + // line internal/php7/php7.y:5382 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8089,10 +8090,10 @@ yydefault: yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[3].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + fetch.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).addDollarToken(variable) @@ -8103,14 +8104,14 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5401 + // line internal/php7/php7.y:5402 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} yyVAL.node = variable // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) @@ -8120,7 +8121,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5416 + // line internal/php7/php7.y:5417 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8128,8 +8129,8 @@ yydefault: yyVAL.node = variable // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) @@ -8139,16 +8140,16 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5433 + // line internal/php7/php7.y:5434 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) @@ -8160,7 +8161,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5452 + // line internal/php7/php7.y:5453 { yyVAL.node = yyDollar[2].node @@ -8172,12 +8173,12 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5465 + // line internal/php7/php7.y:5466 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8186,7 +8187,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5477 + // line internal/php7/php7.y:5478 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8196,7 +8197,7 @@ yydefault: } // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8205,7 +8206,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5494 + // line internal/php7/php7.y:5495 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8222,9 +8223,9 @@ yydefault: // save position if isInt { - lnumber.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + lnumber.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) } - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8233,14 +8234,14 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5520 + // line internal/php7/php7.y:5521 { identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition(yyDollar[1].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8250,12 +8251,12 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5538 + // line internal/php7/php7.y:5539 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8270,12 +8271,12 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5556 + // line internal/php7/php7.y:5557 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8286,12 +8287,12 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5570 + // line internal/php7/php7.y:5571 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8300,12 +8301,12 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5582 + // line internal/php7/php7.y:5583 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8314,12 +8315,12 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5594 + // line internal/php7/php7.y:5595 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8330,12 +8331,12 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5608 + // line internal/php7/php7.y:5609 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8344,12 +8345,12 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5620 + // line internal/php7/php7.y:5621 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} // save position - yyVAL.node.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) @@ -8358,7 +8359,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5635 + // line internal/php7/php7.y:5636 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8366,7 +8367,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5641 + // line internal/php7/php7.y:5642 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8377,7 +8378,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5653 + // line internal/php7/php7.y:5654 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index a929753..16e3936 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -5,9 +5,10 @@ import ( "bytes" "strconv" - "github.com/z7zmey/php-parser/pkg/token" - "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/internal/position" + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" ) %} @@ -294,7 +295,7 @@ start: yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} // save position - yylex.(*Parser).rootNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) @@ -360,7 +361,7 @@ namespace_name: $$ = []ast.Vertex{namePart} // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + namePart.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Hidden) @@ -373,7 +374,7 @@ namespace_name: $$ = append($1, namePart) // save position - namePart.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) + namePart.GetNode().Position = position.NewTokenPosition($3) // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) @@ -389,7 +390,7 @@ name: $$ = &ast.NameName{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -401,7 +402,7 @@ name: $$ = &ast.NameRelative{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $3) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -414,7 +415,7 @@ name: $$ = &ast.NameFullyQualified{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -466,7 +467,7 @@ top_statement: $$ = &ast.StmtHaltCompiler{ast.Node{}} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -483,8 +484,8 @@ top_statement: $$ = &ast.StmtNamespace{ast.Node{}, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -500,8 +501,8 @@ top_statement: $$ = &ast.StmtNamespace{ast.Node{}, name, $4} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -516,7 +517,7 @@ top_statement: $$ = &ast.StmtNamespace{ast.Node{}, nil, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -530,7 +531,7 @@ top_statement: $$ = $2 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -545,7 +546,7 @@ top_statement: $$ = $3 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -559,7 +560,7 @@ top_statement: $$ = &ast.StmtUseList{ast.Node{}, nil, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -573,7 +574,7 @@ top_statement: $$ = &ast.StmtUseList{ast.Node{}, $2, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -587,7 +588,7 @@ top_statement: $$ = &ast.StmtConstList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -604,7 +605,7 @@ use_type: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -616,7 +617,7 @@ use_type: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -632,8 +633,8 @@ group_use_declaration: $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $4} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) @@ -653,8 +654,8 @@ group_use_declaration: $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $5} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments yylex.(*Parser).setFreeFloating($$, token.UseType, $1.Hidden) @@ -678,8 +679,8 @@ mixed_group_use_declaration: $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $4} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $6) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) @@ -699,8 +700,8 @@ mixed_group_use_declaration: $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $5} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + name.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments yylex.(*Parser).setFreeFloating($$, token.Use, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) @@ -805,8 +806,8 @@ unprefixed_use_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) + name.GetNode().Position = position.NewNodeListPosition($1) + $$.GetNode().Position = position.NewNodeListPosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) @@ -820,9 +821,9 @@ unprefixed_use_declaration: $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($1) - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $3) + name.GetNode().Position = position.NewNodeListPosition($1) + alias.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) @@ -941,7 +942,7 @@ inner_statement: $$ = &ast.StmtHaltCompiler{ast.Node{}, } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -959,7 +960,7 @@ statement: $$ = &ast.StmtStmtList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -991,7 +992,7 @@ statement: $$ = $5 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1005,7 +1006,7 @@ statement: $$ = &ast.StmtDo{ast.Node{}, $2, $5} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1033,7 +1034,7 @@ statement: $$ = $9 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1058,7 +1059,7 @@ statement: $$ = $5 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1072,7 +1073,7 @@ statement: $$ = &ast.StmtBreak{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1086,7 +1087,7 @@ statement: $$ = &ast.StmtContinue{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1100,7 +1101,7 @@ statement: $$ = &ast.StmtReturn{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1114,7 +1115,7 @@ statement: $$ = &ast.StmtGlobal{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1128,7 +1129,7 @@ statement: $$ = &ast.StmtStatic{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1142,7 +1143,7 @@ statement: $$ = &ast.StmtEcho{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1157,7 +1158,7 @@ statement: $$ = &ast.StmtInlineHtml{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1169,7 +1170,7 @@ statement: $$ = &ast.StmtExpression{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -1183,7 +1184,7 @@ statement: $$ = &ast.StmtUnset{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1212,7 +1213,7 @@ statement: $$ = $7 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $7) + $$.GetNode().Position = position.NewTokenNodePosition($1, $7) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1239,7 +1240,7 @@ statement: $$ = $9 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1256,7 +1257,7 @@ statement: $$.(*ast.StmtDeclare).Consts = $3 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1270,7 +1271,7 @@ statement: $$ = &ast.StmtNop{ast.Node{}, } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1282,10 +1283,10 @@ statement: { if $6 == nil { $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $5) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) } else { $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) + $$.GetNode().Position = position.NewTokenNodePosition($1, $6) } // save comments @@ -1300,7 +1301,7 @@ statement: $$ = &ast.StmtThrow{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1315,8 +1316,8 @@ statement: $$ = &ast.StmtGoto{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + label.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1332,8 +1333,8 @@ statement: $$ = &ast.StmtLabel{ast.Node{}, label} // save position - label.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + label.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1357,9 +1358,9 @@ catch_list: $$ = append($1, catch) // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($5) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($5) - catch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($2, $9) + identifier.GetNode().Position = position.NewTokenPosition($5) + variable.GetNode().Position = position.NewTokenPosition($5) + catch.GetNode().Position = position.NewTokensPosition($2, $9) // save comments yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Hidden) @@ -1403,7 +1404,7 @@ finally_statement: $$ = &ast.StmtFinally{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1448,8 +1449,8 @@ function_declaration_statement: $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $6, $8, $10} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11) + name.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewTokensPosition($1, $11) // save comments @@ -1506,8 +1507,8 @@ class_declaration_statement: $$ = &ast.StmtClass{ast.Node{}, name, $1, nil, $4, $5, $8} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $9) + name.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewOptionalListTokensPosition($1, $2, $9) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -1524,8 +1525,8 @@ class_declaration_statement: $$ = &ast.StmtClass{ast.Node{}, name, nil, nil, $3, $4, $7} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) + name.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1558,7 +1559,7 @@ class_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1570,7 +1571,7 @@ class_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1586,8 +1587,8 @@ trait_declaration_statement: $$ = &ast.StmtTrait{ast.Node{}, name, $5} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + name.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1606,8 +1607,8 @@ interface_declaration_statement: $$ = &ast.StmtInterface{ast.Node{}, name, $3, $6} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $7) + name.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1631,7 +1632,7 @@ extends_from: $$ = &ast.StmtClassExtends{ast.Node{}, $2}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1652,7 +1653,7 @@ interface_extends_list: $$ = &ast.StmtInterfaceExtends{ast.Node{}, $2}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1673,7 +1674,7 @@ implements_list: $$ = &ast.StmtClassImplements{ast.Node{}, $2}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $2) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1694,7 +1695,7 @@ foreach_variable: $$ = &ast.ExprReference{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1706,7 +1707,7 @@ foreach_variable: $$ = &ast.ExprList{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1720,7 +1721,7 @@ foreach_variable: $$ = &ast.ExprShortList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save commentsc yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1736,7 +1737,7 @@ for_statement: $$ = &ast.StmtFor{ast.Node{}, nil, nil, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1746,8 +1747,8 @@ for_statement: $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1765,7 +1766,7 @@ foreach_statement: $$ = &ast.StmtForeach{ast.Node{}, nil, nil, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1775,8 +1776,8 @@ foreach_statement: $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1794,7 +1795,7 @@ declare_statement: $$ = &ast.StmtDeclare{ast.Node{}, false, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1804,8 +1805,8 @@ declare_statement: $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1824,8 +1825,8 @@ switch_case_list: $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + caseList.GetNode().Position = position.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) @@ -1839,8 +1840,8 @@ switch_case_list: $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + caseList.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) @@ -1855,8 +1856,8 @@ switch_case_list: $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + caseList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1873,8 +1874,8 @@ switch_case_list: $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} // save position - caseList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + caseList.GetNode().Position = position.NewNodeListPosition($3) + $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1900,7 +1901,7 @@ case_list: $$ = append($1, _case) // save position - _case.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $5) + _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Hidden) @@ -1915,7 +1916,7 @@ case_list: $$ = append($1, _default) // save position - _default.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) + _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) // save comments yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Hidden) @@ -1943,7 +1944,7 @@ while_statement: $$ = &ast.StmtWhile{ast.Node{}, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1953,8 +1954,8 @@ while_statement: $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + stmtList.GetNode().Position = position.NewNodeListPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) @@ -1972,7 +1973,7 @@ if_stmt_without_else: $$ = &ast.StmtIf{ast.Node{}, $3, $5, nil, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -1989,8 +1990,8 @@ if_stmt_without_else: $$ = $1 // save position - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6) + _elseIf.GetNode().Position = position.NewTokenNodePosition($2, $6) + $$.GetNode().Position = position.NewNodesPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) @@ -2016,8 +2017,8 @@ if_stmt: $$ = $1 // save position - _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + _else.GetNode().Position = position.NewTokenNodePosition($2, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Hidden) @@ -2033,8 +2034,8 @@ alt_if_stmt_without_else: $$ = &ast.StmtAltIf{ast.Node{}, $3, stmts, nil, nil} // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($6) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($1, $6) + stmts.GetNode().Position = position.NewNodeListPosition($6) + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2053,8 +2054,8 @@ alt_if_stmt_without_else: $$ = $1 // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($7) - _elseIf.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $7) + stmts.GetNode().Position = position.NewNodeListPosition($7) + _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $7) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) @@ -2072,7 +2073,7 @@ alt_if_stmt: $$ = $1 // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Hidden) @@ -2090,9 +2091,9 @@ alt_if_stmt: $$ = $1 // save position - stmts.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListPosition($4) - _else.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodeListPosition($2, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6) + stmts.GetNode().Position = position.NewNodeListPosition($4) + _else.GetNode().Position = position.NewTokenNodeListPosition($2, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Hidden) @@ -2146,16 +2147,16 @@ parameter: $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + identifier.GetNode().Position = position.NewTokenPosition($4) + variable.GetNode().Position = position.NewTokenPosition($4) if $1 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) } else if $2 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($2, $4) + $$.GetNode().Position = position.NewTokensPosition($2, $4) } else if $3 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $4) + $$.GetNode().Position = position.NewTokensPosition($3, $4) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + $$.GetNode().Position = position.NewTokenPosition($4) } // save comments @@ -2192,16 +2193,16 @@ parameter: $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, $6} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + identifier.GetNode().Position = position.NewTokenPosition($4) + variable.GetNode().Position = position.NewTokenPosition($4) if $1 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $6) + $$.GetNode().Position = position.NewNodesPosition($1, $6) } else if $2 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $6) + $$.GetNode().Position = position.NewTokenNodePosition($2, $6) } else if $3 != nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $6) + $$.GetNode().Position = position.NewTokenNodePosition($3, $6) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($4, $6) + $$.GetNode().Position = position.NewTokenNodePosition($4, $6) } // save comments @@ -2261,7 +2262,7 @@ type_expr: $$ = &ast.Nullable{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2276,7 +2277,7 @@ type: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2288,7 +2289,7 @@ type: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2327,7 +2328,7 @@ argument_list: $$ = &ast.ArgumentList{ast.Node{}, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2340,7 +2341,7 @@ argument_list: $$ = &ast.ArgumentList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2378,7 +2379,7 @@ argument: $$ = &ast.Argument{ast.Node{}, false, false, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2390,7 +2391,7 @@ argument: $$ = &ast.Argument{ast.Node{}, true, false, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2452,9 +2453,9 @@ static_var: $$ = &ast.StmtStaticVar{ast.Node{}, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2469,9 +2470,9 @@ static_var: $$ = &ast.StmtStaticVar{ast.Node{}, variable, $3} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2503,7 +2504,7 @@ class_statement: $$ = &ast.StmtPropertyList{ast.Node{}, $1, $2, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeListTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) @@ -2517,7 +2518,7 @@ class_statement: $$ = &ast.StmtClassConstList{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewOptionalListTokensPosition($1, $2, $4) + $$.GetNode().Position = position.NewOptionalListTokensPosition($1, $2, $4) // save comments if len($1) > 0 { @@ -2536,7 +2537,7 @@ class_statement: $$ = &ast.StmtTraitUse{ast.Node{}, $2, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2549,11 +2550,11 @@ class_statement: $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $7, $9, $10} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) + name.GetNode().Position = position.NewTokenPosition($4) if $1 == nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($2, $10) + $$.GetNode().Position = position.NewTokenNodePosition($2, $10) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeListNodePosition($1, $10) + $$.GetNode().Position = position.NewNodeListNodePosition($1, $10) } // save comments @@ -2602,7 +2603,7 @@ trait_adaptations: { $$ = &ast.StmtNop{ast.Node{}, } - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2615,7 +2616,7 @@ trait_adaptations: { $$ = &ast.StmtTraitAdaptationList{ast.Node{}, nil} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2627,7 +2628,7 @@ trait_adaptations: { $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2681,7 +2682,7 @@ trait_precedence: $$ = &ast.StmtTraitUsePrecedence{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeNodeListPosition($1, $3) + $$.GetNode().Position = position.NewNodeNodeListPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2698,8 +2699,8 @@ trait_alias: $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + alias.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2714,8 +2715,8 @@ trait_alias: $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + alias.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2730,8 +2731,8 @@ trait_alias: $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} // save position - alias.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + alias.GetNode().Position = position.NewTokenPosition($4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2745,7 +2746,7 @@ trait_alias: $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2762,8 +2763,8 @@ trait_method_reference: $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2785,8 +2786,8 @@ absolute_trait_method_reference: $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -2803,7 +2804,7 @@ method_body: $$ = &ast.StmtNop{ast.Node{}, } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2816,7 +2817,7 @@ method_body: $$ = &ast.StmtStmtList{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2839,7 +2840,7 @@ variable_modifiers: $$ = []ast.Vertex{modifier} // save position - modifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + modifier.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Hidden) @@ -2884,7 +2885,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2896,7 +2897,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2908,7 +2909,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2920,7 +2921,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2932,7 +2933,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2944,7 +2945,7 @@ member_modifier: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2979,9 +2980,9 @@ property: $$ = &ast.StmtProperty{ast.Node{}, variable, nil} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -2996,9 +2997,9 @@ property: $$ = &ast.StmtProperty{ast.Node{}, variable, $3} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3034,8 +3035,8 @@ class_const_decl: $$ = &ast.StmtConstant{ast.Node{}, name, $3} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3052,8 +3053,8 @@ const_decl: $$ = &ast.StmtConstant{ast.Node{}, name, $3} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3133,7 +3134,7 @@ anonymous_class: } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $8) + $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3149,10 +3150,10 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ast.Node{}, $2, $3.(*ast.ArgumentList)} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $3) } else { $$ = &ast.ExprNew{ast.Node{}, $2, nil} - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) } // save comments @@ -3165,7 +3166,7 @@ new_expr: $$ = &ast.ExprNew{ast.Node{}, $2, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3181,8 +3182,8 @@ expr_without_variable: $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $6) + listNode.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokenNodePosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3198,8 +3199,8 @@ expr_without_variable: $$ = &ast.ExprAssign{ast.Node{}, shortList, $5} // save position - shortList.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $5) + shortList.GetNode().Position = position.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3213,7 +3214,7 @@ expr_without_variable: $$ = &ast.ExprAssign{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3226,7 +3227,7 @@ expr_without_variable: $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3240,7 +3241,7 @@ expr_without_variable: $$ = &ast.ExprClone{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3252,7 +3253,7 @@ expr_without_variable: $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3265,7 +3266,7 @@ expr_without_variable: $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3278,7 +3279,7 @@ expr_without_variable: $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3291,7 +3292,7 @@ expr_without_variable: $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3304,7 +3305,7 @@ expr_without_variable: $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3317,7 +3318,7 @@ expr_without_variable: $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3330,7 +3331,7 @@ expr_without_variable: $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3343,7 +3344,7 @@ expr_without_variable: $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3356,7 +3357,7 @@ expr_without_variable: $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3369,7 +3370,7 @@ expr_without_variable: $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3382,7 +3383,7 @@ expr_without_variable: $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3395,7 +3396,7 @@ expr_without_variable: $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3408,7 +3409,7 @@ expr_without_variable: $$ = &ast.ExprAssignCoalesce{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3421,7 +3422,7 @@ expr_without_variable: $$ = &ast.ExprPostInc{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3434,7 +3435,7 @@ expr_without_variable: $$ = &ast.ExprPreInc{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3446,7 +3447,7 @@ expr_without_variable: $$ = &ast.ExprPostDec{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $2) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3459,7 +3460,7 @@ expr_without_variable: $$ = &ast.ExprPreDec{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3471,7 +3472,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3484,7 +3485,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3497,7 +3498,7 @@ expr_without_variable: $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3510,7 +3511,7 @@ expr_without_variable: $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3523,7 +3524,7 @@ expr_without_variable: $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3536,7 +3537,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3549,7 +3550,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3562,7 +3563,7 @@ expr_without_variable: $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3575,7 +3576,7 @@ expr_without_variable: $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3588,7 +3589,7 @@ expr_without_variable: $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3601,7 +3602,7 @@ expr_without_variable: $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3614,7 +3615,7 @@ expr_without_variable: $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3627,7 +3628,7 @@ expr_without_variable: $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3640,7 +3641,7 @@ expr_without_variable: $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3653,7 +3654,7 @@ expr_without_variable: $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3666,7 +3667,7 @@ expr_without_variable: $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3679,7 +3680,7 @@ expr_without_variable: $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3692,7 +3693,7 @@ expr_without_variable: $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3704,7 +3705,7 @@ expr_without_variable: $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3716,7 +3717,7 @@ expr_without_variable: $$ = &ast.ExprBooleanNot{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3728,7 +3729,7 @@ expr_without_variable: $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3740,7 +3741,7 @@ expr_without_variable: $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3753,7 +3754,7 @@ expr_without_variable: $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3766,7 +3767,7 @@ expr_without_variable: $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3779,7 +3780,7 @@ expr_without_variable: $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3793,7 +3794,7 @@ expr_without_variable: $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3806,7 +3807,7 @@ expr_without_variable: $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3819,7 +3820,7 @@ expr_without_variable: $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3832,7 +3833,7 @@ expr_without_variable: $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3845,7 +3846,7 @@ expr_without_variable: $$ = &ast.ExprBinarySpaceship{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3858,7 +3859,7 @@ expr_without_variable: $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3887,7 +3888,7 @@ expr_without_variable: $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $5) + $$.GetNode().Position = position.NewNodesPosition($1, $5) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3901,7 +3902,7 @@ expr_without_variable: $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3915,7 +3916,7 @@ expr_without_variable: $$ = &ast.ExprBinaryCoalesce{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -3934,7 +3935,7 @@ expr_without_variable: $$ = &ast.ExprCastInt{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3947,7 +3948,7 @@ expr_without_variable: $$ = &ast.ExprCastDouble{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3960,7 +3961,7 @@ expr_without_variable: $$ = &ast.ExprCastString{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3973,7 +3974,7 @@ expr_without_variable: $$ = &ast.ExprCastArray{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3986,7 +3987,7 @@ expr_without_variable: $$ = &ast.ExprCastObject{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -3999,7 +4000,7 @@ expr_without_variable: $$ = &ast.ExprCastBool{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4012,7 +4013,7 @@ expr_without_variable: $$ = &ast.ExprCastUnset{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4037,9 +4038,9 @@ expr_without_variable: // save position if $2 == nil { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) } else { - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) } // save comments @@ -4052,7 +4053,7 @@ expr_without_variable: $$ = &ast.ExprErrorSuppress{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4070,7 +4071,7 @@ expr_without_variable: $$ = &ast.ExprShellExec{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4082,7 +4083,7 @@ expr_without_variable: $$ = &ast.ExprPrint{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4094,7 +4095,7 @@ expr_without_variable: $$ = &ast.ExprYield{ast.Node{}, nil, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4106,7 +4107,7 @@ expr_without_variable: $$ = &ast.ExprYield{ast.Node{}, nil, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4118,7 +4119,7 @@ expr_without_variable: $$ = &ast.ExprYield{ast.Node{}, $2, $4} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $4) + $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4131,7 +4132,7 @@ expr_without_variable: $$ = &ast.ExprYieldFrom{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4156,7 +4157,7 @@ expr_without_variable: }; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Static, $$.GetNode().Tokens[token.Start]); delete($$.GetNode().Tokens, token.Start) @@ -4172,7 +4173,7 @@ inline_function: $$ = &ast.ExprClosure{ast.Node{}, $2 != nil, false, $5, $7, $8, $10} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $11) + $$.GetNode().Position = position.NewTokensPosition($1, $11) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4204,7 +4205,7 @@ inline_function: $$ = &ast.ExprArrowFunction{ast.Node{}, $2 != nil, false, $4, $6, $9} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $9) + $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4256,7 +4257,7 @@ lexical_vars: $$ = &ast.ExprClosureUse{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4292,8 +4293,8 @@ lexical_var: $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4308,9 +4309,9 @@ lexical_var: $$ = &ast.ExprReference{ast.Node{}, variable} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + identifier.GetNode().Position = position.NewTokenPosition($2) + variable.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4327,7 +4328,7 @@ function_call: $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2) + $$.GetNode().Position = position.NewNodesPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4339,7 +4340,7 @@ function_call: $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4352,7 +4353,7 @@ function_call: $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4365,7 +4366,7 @@ function_call: $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $2) + $$.GetNode().Position = position.NewNodesPosition($1, $2) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4380,7 +4381,7 @@ class_name: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4422,7 +4423,7 @@ exit_expr: $$ = &ast.ExprExit{ast.Node{}, false, $2}; // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) @@ -4445,7 +4446,7 @@ backticks_expr: $$ = []ast.Vertex{part} // save position - part.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + part.GetNode().Position = position.NewTokenPosition($1) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4478,7 +4479,7 @@ dereferencable_scalar: $$ = &ast.ExprArray{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4492,7 +4493,7 @@ dereferencable_scalar: $$ = &ast.ExprShortArray{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4505,7 +4506,7 @@ dereferencable_scalar: $$ = &ast.ScalarString{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4520,7 +4521,7 @@ scalar: $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4532,7 +4533,7 @@ scalar: $$ = &ast.ScalarDnumber{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4544,7 +4545,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4556,7 +4557,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4568,7 +4569,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4580,7 +4581,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4592,7 +4593,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4604,7 +4605,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4616,7 +4617,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4628,7 +4629,7 @@ scalar: $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4641,8 +4642,8 @@ scalar: $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, []ast.Vertex{encapsed}} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + encapsed.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4654,7 +4655,7 @@ scalar: $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, nil} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4666,7 +4667,7 @@ scalar: $$ = &ast.ScalarEncapsed{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4678,7 +4679,7 @@ scalar: $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4705,7 +4706,7 @@ constant: $$ = &ast.ExprConstFetch{ast.Node{}, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4718,8 +4719,8 @@ constant: $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4734,8 +4735,8 @@ constant: $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $3) + target.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4847,7 +4848,7 @@ callable_variable: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4861,7 +4862,7 @@ callable_variable: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4875,7 +4876,7 @@ callable_variable: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4889,7 +4890,7 @@ callable_variable: $$ = &ast.ExprMethodCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4923,7 +4924,7 @@ variable: $$ = &ast.ExprPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4940,8 +4941,8 @@ simple_variable: $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4954,7 +4955,7 @@ simple_variable: $$ = &ast.ExprVariable{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4969,7 +4970,7 @@ simple_variable: $$ = &ast.ExprVariable{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -4985,7 +4986,7 @@ static_member: $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -4998,7 +4999,7 @@ static_member: $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5020,7 +5021,7 @@ new_variable: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5034,7 +5035,7 @@ new_variable: $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $4) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5048,7 +5049,7 @@ new_variable: $$ = &ast.ExprPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5061,7 +5062,7 @@ new_variable: $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5074,7 +5075,7 @@ new_variable: $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5090,7 +5091,7 @@ member_name: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5121,7 +5122,7 @@ property_name: $$ = &ast.Identifier{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5202,7 +5203,7 @@ array_pair: $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $3) + $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5215,7 +5216,7 @@ array_pair: $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, $1} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodePosition($1) + $$.GetNode().Position = position.NewNodePosition($1) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5228,8 +5229,8 @@ array_pair: $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, reference} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodesPosition($1, $4) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($3, $4) + $$.GetNode().Position = position.NewNodesPosition($1, $4) + reference.GetNode().Position = position.NewTokenNodePosition($3, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5244,8 +5245,8 @@ array_pair: $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) - reference.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) + reference.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5257,7 +5258,7 @@ array_pair: $$ = &ast.ExprArrayItem{ast.Node{}, true, nil, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5271,8 +5272,8 @@ array_pair: $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, listNode} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($3, $6) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewNodeTokenPosition($1, $6) + listNode.GetNode().Position = position.NewTokensPosition($3, $6) + $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) @@ -5290,8 +5291,8 @@ array_pair: $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + listNode.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5315,7 +5316,7 @@ encaps_list: $$ = append($1, encapsed) // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) + encapsed.GetNode().Position = position.NewTokenPosition($2) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Hidden) @@ -5334,7 +5335,7 @@ encaps_list: $$ = []ast.Vertex{encapsed, $2} // save position - encapsed.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + encapsed.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Hidden) @@ -5350,8 +5351,8 @@ encaps_var: $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + name.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5366,9 +5367,9 @@ encaps_var: $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).addDollarToken(variable) @@ -5385,10 +5386,10 @@ encaps_var: $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - fetch.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($3) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + identifier.GetNode().Position = position.NewTokenPosition($1) + variable.GetNode().Position = position.NewTokenPosition($1) + fetch.GetNode().Position = position.NewTokenPosition($3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).addDollarToken(variable) @@ -5404,7 +5405,7 @@ encaps_var: $$ = variable // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) @@ -5420,8 +5421,8 @@ encaps_var: $$ = variable // save position - name.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $3) + name.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) @@ -5436,9 +5437,9 @@ encaps_var: $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - variable.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($2) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $6) + identifier.GetNode().Position = position.NewTokenPosition($2) + variable.GetNode().Position = position.NewTokenPosition($2) + $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) @@ -5466,7 +5467,7 @@ encaps_var_offset: $$ = &ast.ScalarString{ast.Node{}, $1.Value} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5483,7 +5484,7 @@ encaps_var_offset: } // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5507,9 +5508,9 @@ encaps_var_offset: // save position if isInt { - lnumber.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + lnumber.GetNode().Position = position.NewTokensPosition($1, $2) } - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $2) + $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5522,8 +5523,8 @@ encaps_var_offset: $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenPosition($1) + identifier.GetNode().Position = position.NewTokenPosition($1) + $$.GetNode().Position = position.NewTokenPosition($1) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5539,7 +5540,7 @@ internal_functions_in_yacc: $$ = &ast.ExprIsset{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $5) + $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5557,7 +5558,7 @@ internal_functions_in_yacc: $$ = &ast.ExprEmpty{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5571,7 +5572,7 @@ internal_functions_in_yacc: $$ = &ast.ExprInclude{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5583,7 +5584,7 @@ internal_functions_in_yacc: $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5595,7 +5596,7 @@ internal_functions_in_yacc: $$ = &ast.ExprEval{ast.Node{}, $3} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5609,7 +5610,7 @@ internal_functions_in_yacc: $$ = &ast.ExprRequire{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) @@ -5621,7 +5622,7 @@ internal_functions_in_yacc: $$ = &ast.ExprRequireOnce{ast.Node{}, $2} // save position - $$.GetNode().Position = yylex.(*Parser).positionBuilder.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) diff --git a/internal/position/position.go b/internal/position/position.go new file mode 100644 index 0000000..cbcc309 --- /dev/null +++ b/internal/position/position.go @@ -0,0 +1,204 @@ +package position + +import ( + "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/position" +) + +type startPos struct { + startLine int + startPos int +} + +type endPos struct { + endLine int + endPos int +} + +func getListStartPos(l []ast.Vertex) startPos { + if l == nil { + return startPos{-1, -1} + } + + if len(l) == 0 { + return startPos{-1, -1} + } + + return getNodeStartPos(l[0]) +} + +func getNodeStartPos(n ast.Vertex) startPos { + sl := -1 + sp := -1 + + if n == nil { + return startPos{-1, -1} + } + + p := n.GetNode().Position + if p != nil { + sl = p.StartLine + sp = p.StartPos + } + + return startPos{sl, sp} +} + +func getListEndPos(l []ast.Vertex) endPos { + if l == nil { + return endPos{-1, -1} + } + + if len(l) == 0 { + return endPos{-1, -1} + } + + return getNodeEndPos(l[len(l)-1]) +} + +func getNodeEndPos(n ast.Vertex) endPos { + el := -1 + ep := -1 + + if n == nil { + return endPos{-1, -1} + } + + p := n.GetNode().Position + if p != nil { + el = p.EndLine + ep = p.EndPos + } + + return endPos{el, ep} +} + +// NewNodeListPosition returns new Position +func NewNodeListPosition(list []ast.Vertex) *position.Position { + return &position.Position{ + StartLine: getListStartPos(list).startLine, + EndLine: getListEndPos(list).endLine, + StartPos: getListStartPos(list).startPos, + EndPos: getListEndPos(list).endPos, + } +} + +// NewNodePosition returns new Position +func NewNodePosition(n ast.Vertex) *position.Position { + return &position.Position{ + StartLine: getNodeStartPos(n).startLine, + EndLine: getNodeEndPos(n).endLine, + StartPos: getNodeStartPos(n).startPos, + EndPos: getNodeEndPos(n).endPos, + } +} + +// NewTokenPosition returns new Position +func NewTokenPosition(t *scanner.Token) *position.Position { + return &position.Position{ + StartLine: t.Position.StartLine, + EndLine: t.Position.EndLine, + StartPos: t.Position.StartPos, + EndPos: t.Position.EndPos, + } +} + +// NewTokensPosition returns new Position +func NewTokensPosition(startToken *scanner.Token, endToken *scanner.Token) *position.Position { + return &position.Position{ + StartLine: startToken.Position.StartLine, + EndLine: endToken.Position.EndLine, + StartPos: startToken.Position.StartPos, + EndPos: endToken.Position.EndPos, + } +} + +// NewTokenNodePosition returns new Position +func NewTokenNodePosition(t *scanner.Token, n ast.Vertex) *position.Position { + return &position.Position{ + StartLine: t.Position.StartLine, + EndLine: getNodeEndPos(n).endLine, + StartPos: t.Position.StartPos, + EndPos: getNodeEndPos(n).endPos, + } +} + +// NewNodeTokenPosition returns new Position +func NewNodeTokenPosition(n ast.Vertex, t *scanner.Token) *position.Position { + return &position.Position{ + StartLine: getNodeStartPos(n).startLine, + EndLine: t.Position.EndLine, + StartPos: getNodeStartPos(n).startPos, + EndPos: t.Position.EndPos, + } +} + +// NewNodesPosition returns new Position +func NewNodesPosition(startNode ast.Vertex, endNode ast.Vertex) *position.Position { + return &position.Position{ + StartLine: getNodeStartPos(startNode).startLine, + EndLine: getNodeEndPos(endNode).endLine, + StartPos: getNodeStartPos(startNode).startPos, + EndPos: getNodeEndPos(endNode).endPos, + } +} + +// NewNodeListTokenPosition returns new Position +func NewNodeListTokenPosition(list []ast.Vertex, t *scanner.Token) *position.Position { + return &position.Position{ + StartLine: getListStartPos(list).startLine, + EndLine: t.Position.EndLine, + StartPos: getListStartPos(list).startPos, + EndPos: t.Position.EndPos, + } +} + +// NewTokenNodeListPosition returns new Position +func NewTokenNodeListPosition(t *scanner.Token, list []ast.Vertex) *position.Position { + return &position.Position{ + StartLine: t.Position.StartLine, + EndLine: getListEndPos(list).endLine, + StartPos: t.Position.StartPos, + EndPos: getListEndPos(list).endPos, + } +} + +// NewNodeNodeListPosition returns new Position +func NewNodeNodeListPosition(n ast.Vertex, list []ast.Vertex) *position.Position { + return &position.Position{ + StartLine: getNodeStartPos(n).startLine, + EndLine: getListEndPos(list).endLine, + StartPos: getNodeStartPos(n).startPos, + EndPos: getListEndPos(list).endPos, + } +} + +// NewNodeListNodePosition returns new Position +func NewNodeListNodePosition(list []ast.Vertex, n ast.Vertex) *position.Position { + return &position.Position{ + StartLine: getListStartPos(list).startLine, + EndLine: getNodeEndPos(n).endLine, + StartPos: getListStartPos(list).startPos, + EndPos: getNodeEndPos(n).endPos, + } +} + +// NewOptionalListTokensPosition returns new Position +func NewOptionalListTokensPosition(list []ast.Vertex, t *scanner.Token, endToken *scanner.Token) *position.Position { + if list == nil { + return &position.Position{ + StartLine: t.Position.StartLine, + EndLine: endToken.Position.EndLine, + StartPos: t.Position.StartPos, + EndPos: endToken.Position.EndPos, + } + } + + return &position.Position{ + StartLine: getListStartPos(list).startLine, + EndLine: endToken.Position.EndLine, + StartPos: getListStartPos(list).startPos, + EndPos: endToken.Position.EndPos, + } +} diff --git a/internal/positionbuilder/position_builder_test.go b/internal/position/position_test.go similarity index 90% rename from internal/positionbuilder/position_builder_test.go rename to internal/position/position_test.go index 24652d9..f932f2d 100644 --- a/internal/positionbuilder/position_builder_test.go +++ b/internal/position/position_test.go @@ -1,18 +1,16 @@ -package positionbuilder_test +package position_test import ( "gotest.tools/assert" "testing" - "github.com/z7zmey/php-parser/internal/positionbuilder" + builder "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/position" ) func TestNewTokenPosition(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - tkn := &scanner.Token{ Value: []byte(`foo`), Position: position.Position{ @@ -31,8 +29,6 @@ func TestNewTokenPosition(t *testing.T) { } func TestNewTokensPosition(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - token1 := &scanner.Token{ Value: []byte(`foo`), Position: position.Position{ @@ -69,8 +65,6 @@ func TestNewNodePosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodePosition(n) assert.DeepEqual(t, &position.Position{1, 1, 0, 3}, pos) @@ -97,8 +91,6 @@ func TestNewTokenNodePosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewTokenNodePosition(tkn, n) assert.DeepEqual(t, &position.Position{1, 2, 0, 12}, pos) @@ -126,8 +118,6 @@ func TestNewNodeTokenPosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeTokenPosition(n, tkn) assert.DeepEqual(t, &position.Position{1, 2, 0, 12}, pos) @@ -156,8 +146,6 @@ func TestNewNodeListPosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeListPosition([]ast.Vertex{n1, n2}) assert.DeepEqual(t, &position.Position{1, 2, 0, 19}, pos) @@ -186,8 +174,6 @@ func TestNewNodesPosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodesPosition(n1, n2) assert.DeepEqual(t, &position.Position{1, 2, 0, 19}, pos) @@ -226,8 +212,6 @@ func TestNewNodeListTokenPosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeListTokenPosition([]ast.Vertex{n1, n2}, tkn) assert.DeepEqual(t, &position.Position{1, 3, 0, 22}, pos) @@ -266,8 +250,6 @@ func TestNewTokenNodeListPosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewTokenNodeListPosition(tkn, []ast.Vertex{n1, n2}) assert.DeepEqual(t, &position.Position{1, 3, 0, 20}, pos) @@ -307,8 +289,6 @@ func TestNewNodeNodeListPosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{n2, n3}) assert.DeepEqual(t, &position.Position{1, 3, 0, 26}, pos) @@ -346,16 +326,12 @@ func TestNewNodeListNodePosition(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeListNodePosition([]ast.Vertex{n1, n2}, n3) assert.DeepEqual(t, &position.Position{1, 3, 0, 26}, pos) } func TestNewOptionalListTokensPosition(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - token1 := &scanner.Token{ Value: []byte(`foo`), Position: position.Position{ @@ -402,8 +378,6 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - token1 := &scanner.Token{ Value: []byte(`foo`), Position: position.Position{ @@ -429,8 +403,6 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { } func TestNilNodePos(t *testing.T) { - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodesPosition(nil, nil) assert.DeepEqual(t, &position.Position{-1, -1, -1, -1}, pos) @@ -448,8 +420,6 @@ func TestNilNodeListPos(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeNodeListPosition(n1, nil) assert.DeepEqual(t, &position.Position{1, -1, 0, -1}, pos) @@ -466,8 +436,6 @@ func TestNilNodeListTokenPos(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeListTokenPosition(nil, token) assert.DeepEqual(t, &position.Position{-1, 1, -1, 3}, pos) @@ -485,8 +453,6 @@ func TestEmptyNodeListPos(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{}) assert.DeepEqual(t, &position.Position{1, -1, 0, -1}, pos) @@ -503,8 +469,6 @@ func TestEmptyNodeListTokenPos(t *testing.T) { }, } - builder := positionbuilder.PositionBuilder{} - pos := builder.NewNodeListTokenPosition([]ast.Vertex{}, token) assert.DeepEqual(t, &position.Position{-1, 1, -1, 3}, pos) diff --git a/internal/positionbuilder/position_builder.go b/internal/positionbuilder/position_builder.go deleted file mode 100644 index 4f69393..0000000 --- a/internal/positionbuilder/position_builder.go +++ /dev/null @@ -1,207 +0,0 @@ -package positionbuilder - -import ( - "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/position" -) - -// PositionBuilder provide functions to constuct positions -type PositionBuilder struct{} - -type startPos struct { - startLine int - startPos int -} - -type endPos struct { - endLine int - endPos int -} - -func (b *PositionBuilder) getListStartPos(l []ast.Vertex) startPos { - if l == nil { - return startPos{-1, -1} - } - - if len(l) == 0 { - return startPos{-1, -1} - } - - return b.getNodeStartPos(l[0]) -} - -func (b *PositionBuilder) getNodeStartPos(n ast.Vertex) startPos { - sl := -1 - sp := -1 - - if n == nil { - return startPos{-1, -1} - } - - p := n.GetNode().Position - if p != nil { - sl = p.StartLine - sp = p.StartPos - } - - return startPos{sl, sp} -} - -func (b *PositionBuilder) getListEndPos(l []ast.Vertex) endPos { - if l == nil { - return endPos{-1, -1} - } - - if len(l) == 0 { - return endPos{-1, -1} - } - - return b.getNodeEndPos(l[len(l)-1]) -} - -func (b *PositionBuilder) getNodeEndPos(n ast.Vertex) endPos { - el := -1 - ep := -1 - - if n == nil { - return endPos{-1, -1} - } - - p := n.GetNode().Position - if p != nil { - el = p.EndLine - ep = p.EndPos - } - - return endPos{el, ep} -} - -// NewNodeListPosition returns new Position -func (b *PositionBuilder) NewNodeListPosition(list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: b.getListStartPos(list).startLine, - EndLine: b.getListEndPos(list).endLine, - StartPos: b.getListStartPos(list).startPos, - EndPos: b.getListEndPos(list).endPos, - } -} - -// NewNodePosition returns new Position -func (b *PositionBuilder) NewNodePosition(n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: b.getNodeStartPos(n).startLine, - EndLine: b.getNodeEndPos(n).endLine, - StartPos: b.getNodeStartPos(n).startPos, - EndPos: b.getNodeEndPos(n).endPos, - } -} - -// NewTokenPosition returns new Position -func (b *PositionBuilder) NewTokenPosition(t *scanner.Token) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: t.Position.EndLine, - StartPos: t.Position.StartPos, - EndPos: t.Position.EndPos, - } -} - -// NewTokensPosition returns new Position -func (b *PositionBuilder) NewTokensPosition(startToken *scanner.Token, endToken *scanner.Token) *position.Position { - return &position.Position{ - StartLine: startToken.Position.StartLine, - EndLine: endToken.Position.EndLine, - StartPos: startToken.Position.StartPos, - EndPos: endToken.Position.EndPos, - } -} - -// NewTokenNodePosition returns new Position -func (b *PositionBuilder) NewTokenNodePosition(t *scanner.Token, n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: b.getNodeEndPos(n).endLine, - StartPos: t.Position.StartPos, - EndPos: b.getNodeEndPos(n).endPos, - } -} - -// NewNodeTokenPosition returns new Position -func (b *PositionBuilder) NewNodeTokenPosition(n ast.Vertex, t *scanner.Token) *position.Position { - return &position.Position{ - StartLine: b.getNodeStartPos(n).startLine, - EndLine: t.Position.EndLine, - StartPos: b.getNodeStartPos(n).startPos, - EndPos: t.Position.EndPos, - } -} - -// NewNodesPosition returns new Position -func (b *PositionBuilder) NewNodesPosition(startNode ast.Vertex, endNode ast.Vertex) *position.Position { - return &position.Position{ - StartLine: b.getNodeStartPos(startNode).startLine, - EndLine: b.getNodeEndPos(endNode).endLine, - StartPos: b.getNodeStartPos(startNode).startPos, - EndPos: b.getNodeEndPos(endNode).endPos, - } -} - -// NewNodeListTokenPosition returns new Position -func (b *PositionBuilder) NewNodeListTokenPosition(list []ast.Vertex, t *scanner.Token) *position.Position { - return &position.Position{ - StartLine: b.getListStartPos(list).startLine, - EndLine: t.Position.EndLine, - StartPos: b.getListStartPos(list).startPos, - EndPos: t.Position.EndPos, - } -} - -// NewTokenNodeListPosition returns new Position -func (b *PositionBuilder) NewTokenNodeListPosition(t *scanner.Token, list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: b.getListEndPos(list).endLine, - StartPos: t.Position.StartPos, - EndPos: b.getListEndPos(list).endPos, - } -} - -// NewNodeNodeListPosition returns new Position -func (b *PositionBuilder) NewNodeNodeListPosition(n ast.Vertex, list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: b.getNodeStartPos(n).startLine, - EndLine: b.getListEndPos(list).endLine, - StartPos: b.getNodeStartPos(n).startPos, - EndPos: b.getListEndPos(list).endPos, - } -} - -// NewNodeListNodePosition returns new Position -func (b *PositionBuilder) NewNodeListNodePosition(list []ast.Vertex, n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: b.getListStartPos(list).startLine, - EndLine: b.getNodeEndPos(n).endLine, - StartPos: b.getListStartPos(list).startPos, - EndPos: b.getNodeEndPos(n).endPos, - } -} - -// NewOptionalListTokensPosition returns new Position -func (b *PositionBuilder) NewOptionalListTokensPosition(list []ast.Vertex, t *scanner.Token, endToken *scanner.Token) *position.Position { - if list == nil { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: endToken.Position.EndLine, - StartPos: t.Position.StartPos, - EndPos: endToken.Position.EndPos, - } - } - - return &position.Position{ - StartLine: b.getListStartPos(list).startLine, - EndLine: endToken.Position.EndLine, - StartPos: b.getListStartPos(list).startPos, - EndPos: endToken.Position.EndPos, - } -} From 424f7a132c2c5ff2095597ad44e074b001beb79a Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 29 Jun 2020 14:52:43 +0300 Subject: [PATCH 024/140] [refactoring] remove lexer config struct --- internal/php5/parser.go | 11 ++--- internal/php7/parser.go | 63 +++++++++++++--------------- internal/scanner/lexer.go | 13 ++---- internal/scanner/scanner_test.go | 70 +++++++++++++++----------------- 4 files changed, 68 insertions(+), 89 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 19702d0..8fe09e9 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -25,14 +25,9 @@ func NewParser(src []byte, v string, withTokens bool) *Parser { withTokens: withTokens, } - scannerConfig := scanner.Config{ - WithHiddenTokens: withTokens, - ErrHandlerFunc: func(e *errors.Error) { - parser.errors = append(parser.errors, e) - }, - } - - lexer := scanner.NewLexer(src, v, scannerConfig) + lexer := scanner.NewLexer(src, v, withTokens, func(e *errors.Error) { + parser.errors = append(parser.errors, e) + }) parser.Lexer = lexer return parser diff --git a/internal/php7/parser.go b/internal/php7/parser.go index 25f28d5..97261be 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -24,53 +24,48 @@ func NewParser(src []byte, v string, withTokens bool) *Parser { withTokens: withTokens, } - scannerConfig := scanner.Config{ - WithHiddenTokens: withTokens, - ErrHandlerFunc: func(e *errors.Error) { - parser.errors = append(parser.errors, e) - }, - } - - lexer := scanner.NewLexer(src, v, scannerConfig) + lexer := scanner.NewLexer(src, v, withTokens, func(e *errors.Error) { + parser.errors = append(parser.errors, e) + }) parser.Lexer = lexer return parser } -func (l *Parser) Lex(lval *yySymType) int { - t := l.Lexer.Lex() +func (p *Parser) Lex(lval *yySymType) int { + t := p.Lexer.Lex() - l.currentToken = t + p.currentToken = t lval.token = t return int(t.ID) } -func (l *Parser) Error(msg string) { - var pos = l.currentToken.Position +func (p *Parser) Error(msg string) { + var pos = p.currentToken.Position - l.errors = append(l.errors, errors.NewError(msg, &pos)) + p.errors = append(p.errors, errors.NewError(msg, &pos)) } // GetErrors returns errors list -func (l *Parser) GetErrors() []*errors.Error { - return l.errors +func (p *Parser) GetErrors() []*errors.Error { + return p.errors } // Parse the php7 Parser entrypoint -func (l *Parser) Parse() int { +func (p *Parser) Parse() int { // init - l.errors = nil - l.rootNode = nil + p.errors = nil + p.rootNode = nil // parse - return yyParse(l) + return yyParse(p) } // GetRootNode returns root node -func (l *Parser) GetRootNode() ast.Vertex { - return l.rootNode +func (p *Parser) GetRootNode() ast.Vertex { + return p.rootNode } // helpers @@ -86,8 +81,8 @@ func isDollar(r rune) bool { return r == '$' } -func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if l.withTokens == false { +func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { + if p.withTokens == false { return } @@ -95,7 +90,7 @@ func (l *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { return } - l.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) + p.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) delete(src.GetNode().Tokens, token.Start) } @@ -116,8 +111,8 @@ func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, strings []t (*dstCollection)[pos] = strings } -func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if l.withTokens == false { +func (p *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { + if p.withTokens == false { return []token.Token{} } @@ -129,12 +124,12 @@ func (l *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } } -func (l *Parser) addDollarToken(v ast.Vertex) { - if l.withTokens == false { +func (p *Parser) addDollarToken(v ast.Vertex) { + if p.withTokens == false { return } - l.setFreeFloating(v, token.Dollar, []token.Token{ + p.setFreeFloating(v, token.Dollar, []token.Token{ { ID: token.ID('$'), Value: []byte("$"), @@ -142,8 +137,8 @@ func (l *Parser) addDollarToken(v ast.Vertex) { }) } -func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if l.withTokens == false { +func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { + if p.withTokens == false { return } @@ -154,7 +149,7 @@ func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } if semiColon[0].Value[0] == ';' { - l.setFreeFloating(prevNode, token.SemiColon, []token.Token{ + p.setFreeFloating(prevNode, token.SemiColon, []token.Token{ { ID: token.ID(';'), Value: semiColon[0].Value[0:1], @@ -181,7 +176,7 @@ func (l *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. Value: semiColon[0].Value[vlen-tlen:], }) - l.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) + p.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) } func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 2308bcd..e20e701 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -10,13 +10,6 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -type Config struct { - WithHiddenTokens bool - ErrHandlerFunc func(*errors.Error) -} - -var DefaultConfig = Config{} - type Lexer struct { data []byte phpVersion string @@ -34,12 +27,12 @@ type Lexer struct { newLines NewLines } -func NewLexer(data []byte, phpVersion string, config Config) *Lexer { +func NewLexer(data []byte, phpVersion string, withHiddenTokens bool, errHandlerFunc func(*errors.Error)) *Lexer { lex := &Lexer{ data: data, phpVersion: phpVersion, - errHandlerFunc: config.ErrHandlerFunc, - withHiddenTokens: config.WithHiddenTokens, + withHiddenTokens: withHiddenTokens, + errHandlerFunc: errHandlerFunc, pe: len(data), stack: make([]int, 0), diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 41a7092..7399c08 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -353,7 +353,7 @@ func TestTokens(t *testing.T) { T_UNSET_CAST.String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -381,7 +381,7 @@ func TestShebang(t *testing.T) { "\n", } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -401,7 +401,7 @@ func TestShebangHtml(t *testing.T) { 0.1 ` - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -451,7 +451,7 @@ func TestNumberTokens(t *testing.T) { T_DNUMBER.String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -508,7 +508,7 @@ func TestConstantStrings(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -555,7 +555,7 @@ func TestSingleQuoteStringTokens(t *testing.T) { T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) actual := []string{} for { @@ -642,7 +642,7 @@ func TestTeplateStringTokens(t *testing.T) { TokenID(int('"')).String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -727,7 +727,7 @@ func TestBackquoteStringTokens(t *testing.T) { TokenID(int('`')).String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -821,7 +821,7 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -894,7 +894,7 @@ CAT T_END_HEREDOC.String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -933,7 +933,7 @@ CAT; TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -964,7 +964,7 @@ func TestHereDocTokens73(t *testing.T) { T_VARIABLE.String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -994,7 +994,7 @@ CAT;` TokenID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.phpVersion = "7.2" lexer.withHiddenTokens = true actual := []string{} @@ -1027,7 +1027,7 @@ func TestInlineHtmlNopTokens(t *testing.T) { T_INLINE_HTML.String(), } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true actual := []string{} @@ -1062,7 +1062,7 @@ func TestStringTokensAfterVariable(t *testing.T) { "\"", } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) actual := []string{} actualTokens := []string{} @@ -1095,7 +1095,7 @@ func TestSlashAfterVariable(t *testing.T) { "3", } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) actual := []string{} actualTokens := []string{} @@ -1132,7 +1132,7 @@ func TestCommentEnd(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true lexer.Lex() @@ -1161,7 +1161,7 @@ func TestCommentNewLine(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1190,7 +1190,7 @@ func TestCommentNewLine1(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1219,7 +1219,7 @@ func TestCommentNewLine2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1249,7 +1249,7 @@ func TestCommentWithPhpEndTag(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1279,7 +1279,7 @@ func TestInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1309,7 +1309,7 @@ func TestInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true lexer.Lex() @@ -1343,7 +1343,7 @@ func TestEmptyInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true lexer.Lex() @@ -1373,7 +1373,7 @@ func TestEmptyInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true tkn := lexer.Lex() @@ -1387,7 +1387,7 @@ func TestMethodCallTokens(t *testing.T) { src := ` bar ( '' ) ;` - lexer := NewLexer([]byte(src), "7.4", DefaultConfig) + lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.withHiddenTokens = true expected := []token.Token{ @@ -1469,7 +1469,7 @@ func TestYieldFromTokens(t *testing.T) { src := ` Date: Mon, 29 Jun 2020 23:00:56 +0300 Subject: [PATCH 025/140] [refactoring] parsing error handler --- cmd/php-parser/main.go | 27 +- internal/php5/parser.go | 38 +- internal/php5/parser_test.go | 778 ++++++++++++++-------- internal/php5/php5_bench_test.go | 4 +- internal/php5/php5_test.go | 24 +- internal/php7/parser.go | 37 +- internal/php7/parser_test.go | 850 ++++++++++++++++-------- internal/php7/php7_bench_test.go | 4 +- internal/php7/php7_test.go | 21 +- pkg/parser/parser.go | 22 +- pkg/printer/printer_parsed_php5_test.go | 7 +- pkg/printer/printer_parsed_php7_test.go | 10 +- 12 files changed, 1191 insertions(+), 631 deletions(-) diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 557f699..8e9bbe1 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -15,8 +15,10 @@ import ( "github.com/pkg/profile" "github.com/yookoala/realpath" + "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/ast/traverser" "github.com/z7zmey/php-parser/pkg/ast/visitor" + "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/parser" "github.com/z7zmey/php-parser/pkg/printer" ) @@ -37,8 +39,9 @@ type file struct { } type result struct { - path string - parser parser.Parser + path string + rootNode ast.Vertex + errors []*errors.Error } func main() { @@ -121,14 +124,18 @@ func parserWorker(fileCh <-chan *file, r chan<- result) { return } - parserWorker, err := parser.NewParser(f.content, phpVersion, *withFreeFloating) + parserErrors := []*errors.Error{} + cfg := parser.Config{ + ErrorHandlerFunc: func(e *errors.Error) { + parserErrors = append(parserErrors, e) + }, + } + rootNode, err := parser.Parse(f.content, phpVersion, cfg) if err != nil { panic(err.Error()) } - parserWorker.Parse() - - r <- result{path: f.path, parser: parserWorker} + r <- result{path: f.path, rootNode: rootNode, errors: parserErrors} } } @@ -147,14 +154,14 @@ func printerWorker(r <-chan result) { fmt.Fprintf(os.Stdout, "==> [%d] %s\n", counter, res.path) } - for _, e := range res.parser.GetErrors() { + for _, e := range res.errors { fmt.Fprintf(os.Stdout, "==> %s\n", e) } if *printBack { o := bytes.NewBuffer([]byte{}) p := printer.NewPrinter(o) - p.Print(res.parser.GetRootNode()) + p.Print(res.rootNode) err := ioutil.WriteFile(res.path, o.Bytes(), 0644) checkErr(err) @@ -163,14 +170,14 @@ func printerWorker(r <-chan result) { if *showResolvedNs { v := visitor.NewNamespaceResolver() t := traverser.NewDFS(v) - t.Traverse(res.parser.GetRootNode()) + t.Traverse(res.rootNode) fmt.Printf("%+v", v.ResolvedNames) } if *dump == true { v := visitor.NewDump(os.Stdout) t := traverser.NewDFS(v) - t.Traverse(res.parser.GetRootNode()) + t.Traverse(res.rootNode) } wg.Done() diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 8fe09e9..f7c244f 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -12,25 +12,20 @@ import ( // Parser structure type Parser struct { - Lexer *scanner.Lexer - currentToken *scanner.Token - rootNode ast.Vertex - errors []*errors.Error - withTokens bool + Lexer *scanner.Lexer + currentToken *scanner.Token + rootNode ast.Vertex + withTokens bool + errHandlerFunc func(*errors.Error) } // NewParser creates and returns new Parser -func NewParser(src []byte, v string, withTokens bool) *Parser { - parser := &Parser{ - withTokens: withTokens, +func NewParser(lexer *scanner.Lexer, withTokens bool, errHandlerFunc func(*errors.Error)) *Parser { + return &Parser{ + withTokens: withTokens, + Lexer: lexer, + errHandlerFunc: errHandlerFunc, } - - lexer := scanner.NewLexer(src, v, withTokens, func(e *errors.Error) { - parser.errors = append(parser.errors, e) - }) - parser.Lexer = lexer - - return parser } // Lex proxy to scanner Lex @@ -45,23 +40,12 @@ func (p *Parser) Lex(lval *yySymType) int { func (p *Parser) Error(msg string) { var pos = p.currentToken.Position - - p.errors = append(p.errors, errors.NewError(msg, &pos)) -} - -// GetErrors returns errors list -func (p *Parser) GetErrors() []*errors.Error { - return p.errors + p.errHandlerFunc(errors.NewError(msg, &pos)) } // Parse the php7 Parser entrypoint func (p *Parser) Parse() int { - // init - p.errors = nil p.rootNode = nil - - // parse - return yyParse(p) } diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index c5b5d58..ec349e5 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -1,10 +1,12 @@ package php5_test import ( - "gotest.tools/assert" "testing" + "gotest.tools/assert" + "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/position" ) @@ -56,7 +58,8 @@ func TestIdentifier(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -838,7 +841,8 @@ func TestPhp5ArgumentNode(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1591,7 +1595,8 @@ func TestPhp5ParameterNode(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1612,7 +1617,8 @@ func TestCommentEndFile(t *testing.T) { Stmts: []ast.Vertex{}, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1689,7 +1695,8 @@ func TestName(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1764,7 +1771,8 @@ func TestFullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1839,7 +1847,8 @@ func TestRelative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1917,7 +1926,8 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1993,7 +2003,8 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2080,7 +2091,8 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2177,7 +2189,8 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2285,7 +2298,8 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2361,7 +2375,8 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2458,7 +2473,8 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2565,7 +2581,8 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2656,7 +2673,8 @@ LBL; }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2747,7 +2765,8 @@ LBL; }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2806,7 +2825,8 @@ LBL; }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2851,7 +2871,8 @@ CAD; }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2910,7 +2931,8 @@ CAD; }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2954,7 +2976,8 @@ func TestScalarMagicConstant(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2997,7 +3020,8 @@ func TestScalarNumber_LNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3040,7 +3064,8 @@ func TestScalarNumber_DNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3083,7 +3108,8 @@ func TestScalarNumber_Float(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3126,7 +3152,8 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3169,7 +3196,8 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3212,7 +3240,8 @@ func TestScalarNumber_HLNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3255,7 +3284,8 @@ func TestScalarNumber_HDNumber(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3298,7 +3328,8 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3341,7 +3372,8 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3386,7 +3418,8 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3429,7 +3462,8 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3474,7 +3508,8 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3543,7 +3578,8 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3655,7 +3691,8 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3744,7 +3781,8 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3921,7 +3959,8 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4042,7 +4081,8 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4120,7 +4160,8 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4268,7 +4309,8 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4370,7 +4412,8 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4484,7 +4527,8 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4528,7 +4572,8 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4585,7 +4630,8 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4675,7 +4721,8 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4767,7 +4814,8 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4882,7 +4930,8 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4980,7 +5029,8 @@ func TestStmtConstList(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5045,7 +5095,8 @@ func TestStmtContinue_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5121,7 +5172,8 @@ func TestStmtContinue_Light(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5197,7 +5249,8 @@ func TestStmtContinue(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5273,7 +5326,8 @@ func TestStmtDeclare(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5382,7 +5436,8 @@ func TestStmtDeclare_Stmts(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5460,7 +5515,8 @@ func TestStmtDeclare_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5514,7 +5570,8 @@ func TestStmtDo(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5580,7 +5637,8 @@ func TestStmtEcho(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5635,7 +5693,8 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5678,7 +5737,8 @@ func TestStmtExpression(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5873,7 +5933,8 @@ func TestStmtFor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5993,7 +6054,8 @@ func TestStmtFor_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6078,7 +6140,8 @@ func TestStmtForeach(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6153,7 +6216,8 @@ func TestStmtForeach_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6238,7 +6302,8 @@ func TestStmtForeach_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6344,7 +6409,8 @@ func TestStmtForeach_WithKey(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6440,7 +6506,8 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6556,7 +6623,8 @@ func TestStmtForeach_WithRef(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6684,7 +6752,8 @@ func TestStmtForeach_WithList(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6729,7 +6798,8 @@ func TestStmtFunction(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6785,7 +6855,8 @@ func TestStmtFunction_Return(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6952,7 +7023,8 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7019,7 +7091,8 @@ func TestStmtFunction_Ref(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7074,7 +7147,8 @@ func TestStmtGlobal(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7234,7 +7308,8 @@ func TestStmtGlobal_Vars(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7298,7 +7373,8 @@ func TestStmtGotoLabel(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7330,7 +7406,8 @@ func TestStmtHaltCompiler(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7394,7 +7471,8 @@ func TestStmtIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7502,7 +7580,8 @@ func TestStmtIf_ElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7587,7 +7666,8 @@ func TestStmtIf_Else(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7758,7 +7838,8 @@ func TestStmtIf_ElseElseIf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7939,7 +8020,8 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7982,7 +8064,8 @@ func TestStmtInlineHtml(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8026,7 +8109,8 @@ func TestStmtInterface(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8105,7 +8189,8 @@ func TestStmtInterface_Extend(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8207,7 +8292,8 @@ func TestStmtInterface_Extends(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8262,7 +8348,8 @@ func TestStmtNamespace(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8318,7 +8405,8 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8351,7 +8439,8 @@ func TestStmtNamespace_Anonymous(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8452,7 +8541,8 @@ func TestStmtProperty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8606,7 +8696,8 @@ func TestStmtProperty_Properties(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8760,7 +8851,8 @@ func TestStmtProperty_Properties2(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8825,7 +8917,8 @@ func TestStmtStaticVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8932,7 +9025,8 @@ func TestStmtStaticVar_Vars(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9039,7 +9133,8 @@ func TestStmtStaticVar_Vars2(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9165,7 +9260,8 @@ func TestStmtSwitch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9291,7 +9387,8 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9407,7 +9504,8 @@ func TestStmtSwitch_Alt(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9511,7 +9609,8 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9564,7 +9663,8 @@ func TestStmtThrow(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9608,7 +9708,8 @@ func TestStmtTrait(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9698,7 +9799,8 @@ func TestStmtTraitUse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9811,7 +9913,8 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9924,7 +10027,8 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10081,7 +10185,8 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10249,7 +10354,8 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10531,7 +10637,8 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10567,7 +10674,8 @@ func TestStmtTry_Try(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10661,7 +10769,8 @@ func TestStmtTry_TryCatch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10812,7 +10921,8 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10917,7 +11027,8 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11123,7 +11234,8 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11178,7 +11290,8 @@ func TestStmtUnset(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11254,7 +11367,8 @@ func TestStmtUnset_Vars(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11321,7 +11435,8 @@ func TestStmtUse(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11388,7 +11503,8 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11466,7 +11582,8 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11566,7 +11683,8 @@ func TestStmtUse_List(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11677,7 +11795,8 @@ func TestStmtUse_ListAlias(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11788,7 +11907,8 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11921,7 +12041,8 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12032,7 +12153,8 @@ func TestStmtUse_ListConstType(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12165,7 +12287,8 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12230,7 +12353,8 @@ func TestStmtBreak_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12306,7 +12430,8 @@ func TestStmtBreak_Light(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12382,7 +12507,8 @@ func TestStmtBreak(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12458,7 +12584,8 @@ func TestExprArrayDimFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12553,7 +12680,8 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12596,7 +12724,8 @@ func TestExprArray(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12661,7 +12790,8 @@ func TestExprArray_Item(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12779,7 +12909,8 @@ func TestExprArray_Items(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12842,7 +12973,8 @@ func TestExprBitwiseNot(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12905,7 +13037,8 @@ func TestExprBooleanNot(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12981,7 +13114,8 @@ func TestExprClassConstFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13045,7 +13179,8 @@ func TestExprClassConstFetch_Static(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13108,7 +13243,8 @@ func TestExprClone_Brackets(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13171,7 +13307,8 @@ func TestExprClone(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13216,7 +13353,8 @@ func TestExprClosure(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13393,7 +13531,8 @@ func TestExprClosure_Use(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13570,7 +13709,8 @@ func TestExprClosure_Use2(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13635,7 +13775,8 @@ func TestExprConstFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13700,7 +13841,8 @@ func TestExprConstFetch_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13765,7 +13907,8 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13828,7 +13971,8 @@ func TestExprEmpty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13891,7 +14035,8 @@ func TestExprErrorSuppress(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13954,7 +14099,8 @@ func TestExprEval(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13997,7 +14143,8 @@ func TestExprExit(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14040,7 +14187,8 @@ func TestExprExit_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14104,7 +14252,8 @@ func TestExprExit_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14147,7 +14296,8 @@ func TestExprDie(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14190,7 +14340,8 @@ func TestExprDie_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14254,7 +14405,8 @@ func TestExprDie_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14329,7 +14481,8 @@ func TestExprFunctionCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14404,7 +14557,8 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14504,7 +14658,8 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14622,7 +14777,8 @@ func TestExprFunctionCall_Var(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14753,7 +14909,8 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14816,7 +14973,8 @@ func TestExprPostDec(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14879,7 +15037,8 @@ func TestExprPostInc(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14942,7 +15101,8 @@ func TestExprPreDec(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15005,7 +15165,8 @@ func TestExprPreInc(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15068,7 +15229,8 @@ func TestExprInclude(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15131,7 +15293,8 @@ func TestExprInclude_Once(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15194,7 +15357,8 @@ func TestExprRequire(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15257,7 +15421,8 @@ func TestExprRequire_Once(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15343,7 +15508,8 @@ func TestExprInstanceOf(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15429,7 +15595,8 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15515,7 +15682,8 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15580,7 +15748,8 @@ func TestExprIsset(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15666,7 +15835,8 @@ func TestExprIsset_Variables(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15740,7 +15910,8 @@ func TestExprList_Empty(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15846,7 +16017,8 @@ func TestExprList(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15962,7 +16134,8 @@ func TestExprList_ArrayIndex(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16090,7 +16263,8 @@ func TestExprList_List(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16197,7 +16371,8 @@ func TestExprList_EmptyItem(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16306,7 +16481,8 @@ func TestExprList_EmptyItems(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16390,7 +16566,8 @@ func TestExprMethodCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16455,7 +16632,8 @@ func TestExprNew(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16530,7 +16708,8 @@ func TestExprNew_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16605,7 +16784,8 @@ func TestExprNew_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16668,7 +16848,8 @@ func TestExprPrint(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16742,7 +16923,8 @@ func TestExprPropertyFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16859,7 +17041,8 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16935,7 +17118,8 @@ func TestExprShellExec(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16978,7 +17162,8 @@ func TestExprShortArray(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17043,7 +17228,8 @@ func TestExprShortArray_Item(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17161,7 +17347,8 @@ func TestExprShortArray_Items(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17247,7 +17434,8 @@ func TestExprStaticCall(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17333,7 +17521,8 @@ func TestExprStaticCall_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17419,7 +17608,8 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17515,7 +17705,8 @@ func TestExprStaticCall_Var(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17609,7 +17800,8 @@ func TestExprStaticCall_VarVar(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17695,7 +17887,8 @@ func TestExprStaticPropertyFetch(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17781,7 +17974,8 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17867,7 +18061,8 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17972,7 +18167,8 @@ func TestExprTernary(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18056,7 +18252,8 @@ func TestExprTernary_Simple(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18213,7 +18410,8 @@ func TestExprTernary_NestedTrue(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18370,7 +18568,8 @@ func TestExprTernary_NestedCond(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18433,7 +18632,8 @@ func TestExprUnaryMinus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18496,7 +18696,8 @@ func TestExprUnaryPlus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18549,7 +18750,8 @@ func TestExprVariable(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18612,7 +18814,8 @@ func TestExprVariable_Variable(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18654,7 +18857,8 @@ func TestExprYield(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18717,7 +18921,8 @@ func TestExprYield_Val(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18801,7 +19006,8 @@ func TestExprYield_KeyVal(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18854,7 +19060,8 @@ func TestExprYield_Expr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18928,7 +19135,8 @@ func TestExprYield_KeyExpr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19014,7 +19222,8 @@ func TestExprAssign_Assign(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19098,7 +19307,8 @@ func TestExprAssign_Reference(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19194,7 +19404,8 @@ func TestExprAssign_ReferenceNew(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19335,7 +19546,8 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19419,7 +19631,8 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19503,7 +19716,8 @@ func TestExprAssign_BitwiseOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19587,7 +19801,8 @@ func TestExprAssign_BitwiseXor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19671,7 +19886,8 @@ func TestExprAssign_Concat(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19755,7 +19971,8 @@ func TestExprAssign_Div(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19839,7 +20056,8 @@ func TestExprAssign_Minus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19923,7 +20141,8 @@ func TestExprAssign_Mod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20007,7 +20226,8 @@ func TestExprAssign_Mul(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20091,7 +20311,8 @@ func TestExprAssign_Plus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20175,7 +20396,8 @@ func TestExprAssign_Pow(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20259,7 +20481,8 @@ func TestExprAssign_ShiftLeft(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20343,7 +20566,8 @@ func TestExprAssign_ShiftRight(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20429,7 +20653,8 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20513,7 +20738,8 @@ func TestExprBinary_BitwiseOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20597,7 +20823,8 @@ func TestExprBinary_BitwiseXor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20681,7 +20908,8 @@ func TestExprBinary_BooleanAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20765,7 +20993,8 @@ func TestExprBinary_BooleanOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20849,7 +21078,8 @@ func TestExprBinary_Concat(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20933,7 +21163,8 @@ func TestExprBinary_Div(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21017,7 +21248,8 @@ func TestExprBinary_Equal(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21101,7 +21333,8 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21185,7 +21418,8 @@ func TestExprBinary_Greater(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21269,7 +21503,8 @@ func TestExprBinary_Identical(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21353,7 +21588,8 @@ func TestExprBinary_LogicalAnd(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21437,7 +21673,8 @@ func TestExprBinary_LogicalOr(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21521,7 +21758,8 @@ func TestExprBinary_LogicalXor(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21605,7 +21843,8 @@ func TestExprBinary_Minus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21689,7 +21928,8 @@ func TestExprBinary_Mod(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21773,7 +22013,8 @@ func TestExprBinary_Mul(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21857,7 +22098,8 @@ func TestExprBinary_NotEqual(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21941,7 +22183,8 @@ func TestExprBinary_NotIdentical(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22025,7 +22268,8 @@ func TestExprBinary_Plus(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22109,7 +22353,8 @@ func TestExprBinary_Pow(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22193,7 +22438,8 @@ func TestExprBinary_ShiftLeft(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22277,7 +22523,8 @@ func TestExprBinary_ShiftRight(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22361,7 +22608,8 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22445,7 +22693,8 @@ func TestExprBinary_Smaller(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22510,7 +22759,8 @@ func TestExprCast_Array(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22573,7 +22823,8 @@ func TestExprCast_Bool(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22636,7 +22887,8 @@ func TestExprCast_BoolShort(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22699,7 +22951,8 @@ func TestExprCast_Double(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22762,7 +23015,8 @@ func TestExprCast_CastFloat(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22825,7 +23079,8 @@ func TestExprCast_Int(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22888,7 +23143,8 @@ func TestExprCast_IntShort(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22951,7 +23207,8 @@ func TestExprCast_Object(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23014,7 +23271,8 @@ func TestExprCast_String(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23077,7 +23335,8 @@ func TestExprCast_BinaryString(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23140,7 +23399,8 @@ func TestExprCast_Unset(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/internal/php5/php5_bench_test.go b/internal/php5/php5_bench_test.go index 2b94e89..4ce4b1e 100644 --- a/internal/php5/php5_bench_test.go +++ b/internal/php5/php5_bench_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/internal/scanner" ) func BenchmarkPhp5(b *testing.B) { @@ -413,7 +414,8 @@ CAD; ` for n := 0; n < b.N; n++ { - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() } } diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 68a7b05..5bef94b 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -1,10 +1,12 @@ package php5_test import ( - "gotest.tools/assert" "testing" + "gotest.tools/assert" + "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" @@ -22455,7 +22457,8 @@ func TestPhp5(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22592,7 +22595,8 @@ func TestPhp5Strings(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22818,7 +22822,8 @@ CAD; }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + php5parser := php5.NewParser(lexer, false, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22838,8 +22843,13 @@ func TestPhp5ControlCharsErrors(t *testing.T) { }, } - php5parser := php5.NewParser([]byte(src), "5.6", false) + parserErrors := []*errors.Error{} + errorHandlerFunc := func(e *errors.Error) { + parserErrors = append(parserErrors, e) + } + + lexer := scanner.NewLexer([]byte(src), "5.6", false, errorHandlerFunc) + php5parser := php5.NewParser(lexer, false, errorHandlerFunc) php5parser.Parse() - actual := php5parser.GetErrors() - assert.DeepEqual(t, expected, actual) + assert.DeepEqual(t, expected, parserErrors) } diff --git a/internal/php7/parser.go b/internal/php7/parser.go index 97261be..c219232 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -11,25 +11,20 @@ import ( // Parser structure type Parser struct { - Lexer *scanner.Lexer - currentToken *scanner.Token - rootNode ast.Vertex - errors []*errors.Error - withTokens bool + Lexer *scanner.Lexer + currentToken *scanner.Token + rootNode ast.Vertex + withTokens bool + errHandlerFunc func(*errors.Error) } // NewParser creates and returns new Parser -func NewParser(src []byte, v string, withTokens bool) *Parser { - parser := &Parser{ - withTokens: withTokens, +func NewParser(lexer *scanner.Lexer, withTokens bool, errHandlerFunc func(*errors.Error)) *Parser { + return &Parser{ + withTokens: withTokens, + Lexer: lexer, + errHandlerFunc: errHandlerFunc, } - - lexer := scanner.NewLexer(src, v, withTokens, func(e *errors.Error) { - parser.errors = append(parser.errors, e) - }) - parser.Lexer = lexer - - return parser } func (p *Parser) Lex(lval *yySymType) int { @@ -43,23 +38,13 @@ func (p *Parser) Lex(lval *yySymType) int { func (p *Parser) Error(msg string) { var pos = p.currentToken.Position - - p.errors = append(p.errors, errors.NewError(msg, &pos)) -} - -// GetErrors returns errors list -func (p *Parser) GetErrors() []*errors.Error { - return p.errors + p.errHandlerFunc(errors.NewError(msg, &pos)) } // Parse the php7 Parser entrypoint func (p *Parser) Parse() int { - // init - p.errors = nil p.rootNode = nil - // parse - return yyParse(p) } diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index e4a2100..a7d2ced 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -1,10 +1,12 @@ package php7_test import ( - "gotest.tools/assert" "testing" + "gotest.tools/assert" + "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/position" ) @@ -56,7 +58,8 @@ func TestIdentifier(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -949,7 +952,8 @@ func TestPhp7ArgumentNode(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1742,7 +1746,8 @@ func TestPhp7ParameterNode(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1763,7 +1768,8 @@ func TestCommentEndFile(t *testing.T) { Stmts: []ast.Vertex{}, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1840,7 +1846,8 @@ func TestName(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1915,7 +1922,8 @@ func TestFullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1990,7 +1998,8 @@ func TestRelative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2068,7 +2077,8 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2144,7 +2154,8 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2231,7 +2242,8 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2328,7 +2340,8 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2436,7 +2449,8 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2512,7 +2526,8 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2609,7 +2624,8 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2716,7 +2732,8 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2807,7 +2824,8 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2898,7 +2916,8 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2957,7 +2976,8 @@ LBL; }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3002,7 +3022,8 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3061,7 +3082,8 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3105,7 +3127,8 @@ func TestScalarMagicConstant(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3148,7 +3171,8 @@ func TestScalarNumber_LNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3191,7 +3215,8 @@ func TestScalarNumber_DNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3234,7 +3259,8 @@ func TestScalarNumber_Float(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3277,7 +3303,8 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3320,7 +3347,8 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3363,7 +3391,8 @@ func TestScalarNumber_HLNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3406,7 +3435,8 @@ func TestScalarNumber_HDNumber(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3449,7 +3479,8 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3492,7 +3523,8 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3537,7 +3569,8 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3580,7 +3613,8 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3625,7 +3659,8 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3694,7 +3729,8 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3806,7 +3842,8 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3895,7 +3932,8 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4072,7 +4110,8 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4206,7 +4245,8 @@ func TestStmtClassConstList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4327,7 +4367,8 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4405,7 +4446,8 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4553,7 +4595,8 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4678,7 +4721,8 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4792,7 +4836,8 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4918,7 +4963,8 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4962,7 +5008,8 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5019,7 +5066,8 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5109,7 +5157,8 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5201,7 +5250,8 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5316,7 +5366,8 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5470,7 +5521,8 @@ func TestStmtClass_AnonimousClass(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5568,7 +5620,8 @@ func TestStmtConstList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5633,7 +5686,8 @@ func TestStmtContinue_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5709,7 +5763,8 @@ func TestStmtContinue_Light(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5785,7 +5840,8 @@ func TestStmtContinue(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5861,7 +5917,8 @@ func TestStmtDeclare(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5970,7 +6027,8 @@ func TestStmtDeclare_Stmts(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6048,7 +6106,8 @@ func TestStmtDeclare_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6102,7 +6161,8 @@ func TestStmtDo(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6168,7 +6228,8 @@ func TestStmtEcho(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6223,7 +6284,8 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6266,7 +6328,8 @@ func TestStmtExpression(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6461,7 +6524,8 @@ func TestStmtFor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6581,7 +6645,8 @@ func TestStmtFor_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6666,7 +6731,8 @@ func TestStmtForeach(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6741,7 +6807,8 @@ func TestStmtForeach_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6826,7 +6893,8 @@ func TestStmtForeach_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6932,7 +7000,8 @@ func TestStmtForeach_WithKey(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7028,7 +7097,8 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7144,7 +7214,8 @@ func TestStmtForeach_WithRef(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7272,7 +7343,8 @@ func TestStmtForeach_WithList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7317,7 +7389,8 @@ func TestStmtFunction(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7373,7 +7446,8 @@ func TestStmtFunction_Return(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7540,7 +7614,8 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7607,7 +7682,8 @@ func TestStmtFunction_Ref(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7675,7 +7751,8 @@ func TestStmtFunction_ReturnType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7730,7 +7807,8 @@ func TestStmtGlobal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7890,7 +7968,8 @@ func TestStmtGlobal_Vars(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7954,7 +8033,8 @@ func TestStmtGotoLabel(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7986,7 +8066,8 @@ func TestStmtHaltCompiler(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8050,7 +8131,8 @@ func TestStmtIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8158,7 +8240,8 @@ func TestStmtIf_ElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8243,7 +8326,8 @@ func TestStmtIf_Else(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8414,7 +8498,8 @@ func TestStmtIf_ElseElseIf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8595,7 +8680,8 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8638,7 +8724,8 @@ func TestStmtInlineHtml(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8682,7 +8769,8 @@ func TestStmtInterface(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8761,7 +8849,8 @@ func TestStmtInterface_Extend(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8863,7 +8952,8 @@ func TestStmtInterface_Extends(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8918,7 +9008,8 @@ func TestStmtNamespace(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8974,7 +9065,8 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9007,7 +9099,8 @@ func TestStmtNamespace_Anonymous(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9108,7 +9201,8 @@ func TestStmtProperty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9262,7 +9356,8 @@ func TestStmtProperty_Properties(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9416,7 +9511,8 @@ func TestStmtProperty_Properties2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9540,7 +9636,8 @@ func TestStmtProperty_PropertyType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9605,7 +9702,8 @@ func TestStmtStaticVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9712,7 +9810,8 @@ func TestStmtStaticVar_Vars(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9819,7 +9918,8 @@ func TestStmtStaticVar_Vars2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9945,7 +10045,8 @@ func TestStmtSwitch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10071,7 +10172,8 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10187,7 +10289,8 @@ func TestStmtSwitch_Alt(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10291,7 +10394,8 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10344,7 +10448,8 @@ func TestStmtThrow(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10388,7 +10493,8 @@ func TestStmtTrait(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10478,7 +10584,8 @@ func TestStmtTraitUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10591,7 +10698,8 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10704,7 +10812,8 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10861,7 +10970,8 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11029,7 +11139,8 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11311,7 +11422,8 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11347,7 +11459,8 @@ func TestStmtTry_Try(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11441,7 +11554,8 @@ func TestStmtTry_TryCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11558,7 +11672,8 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11709,7 +11824,8 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11814,7 +11930,8 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12020,7 +12137,8 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12075,7 +12193,8 @@ func TestStmtUnset(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12151,7 +12270,8 @@ func TestStmtUnset_Vars(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12227,7 +12347,8 @@ func TestStmtUnset_TrailingComma(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12294,7 +12415,8 @@ func TestStmtUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12361,7 +12483,8 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12439,7 +12562,8 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12539,7 +12663,8 @@ func TestStmtUse_List(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12650,7 +12775,8 @@ func TestStmtUse_ListAlias(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12761,7 +12887,8 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12894,7 +13021,8 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13005,7 +13133,8 @@ func TestStmtUse_ListConstType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13138,7 +13267,8 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13261,7 +13391,8 @@ func TestStmtUse_GroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13395,7 +13526,8 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13529,7 +13661,8 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13663,7 +13796,8 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13808,7 +13942,8 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13873,7 +14008,8 @@ func TestStmtBreak_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13949,7 +14085,8 @@ func TestStmtBreak_Light(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14025,7 +14162,8 @@ func TestStmtBreak(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14101,7 +14239,8 @@ func TestExprArrayDimFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14196,7 +14335,8 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14239,7 +14379,8 @@ func TestExprArray(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14304,7 +14445,8 @@ func TestExprArray_Item(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14422,7 +14564,8 @@ func TestExprArray_Items(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14498,7 +14641,8 @@ func TestExprArray_ItemUnpack(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14563,7 +14707,8 @@ func TestExprArrowFunction(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14651,7 +14796,8 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14714,7 +14860,8 @@ func TestExprBitwiseNot(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14777,7 +14924,8 @@ func TestExprBooleanNot(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14853,7 +15001,8 @@ func TestExprClassConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14917,7 +15066,8 @@ func TestExprClassConstFetch_Static(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14980,7 +15130,8 @@ func TestExprClone_Brackets(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15043,7 +15194,8 @@ func TestExprClone(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15088,7 +15240,8 @@ func TestExprClosure(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15265,7 +15418,8 @@ func TestExprClosure_Use(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15442,7 +15596,8 @@ func TestExprClosure_Use2(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15510,7 +15665,8 @@ func TestExprClosure_ReturnType(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15575,7 +15731,8 @@ func TestExprConstFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15640,7 +15797,8 @@ func TestExprConstFetch_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15705,7 +15863,8 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15768,7 +15927,8 @@ func TestExprEmpty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15831,7 +15991,8 @@ func TestExprErrorSuppress(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15894,7 +16055,8 @@ func TestExprEval(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15937,7 +16099,8 @@ func TestExprExit(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15980,7 +16143,8 @@ func TestExprExit_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16044,7 +16208,8 @@ func TestExprExit_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16087,7 +16252,8 @@ func TestExprDie(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16130,7 +16296,8 @@ func TestExprDie_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16194,7 +16361,8 @@ func TestExprDie_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16269,7 +16437,8 @@ func TestExprFunctionCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16344,7 +16513,8 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16444,7 +16614,8 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16562,7 +16733,8 @@ func TestExprFunctionCall_Var(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16693,7 +16865,8 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16756,7 +16929,8 @@ func TestExprPostDec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16819,7 +16993,8 @@ func TestExprPostInc(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16882,7 +17057,8 @@ func TestExprPreDec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16945,7 +17121,8 @@ func TestExprPreInc(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17008,7 +17185,8 @@ func TestExprInclude(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17071,7 +17249,8 @@ func TestExprInclude_Once(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17134,7 +17313,8 @@ func TestExprRequire(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17197,7 +17377,8 @@ func TestExprRequire_Once(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17283,7 +17464,8 @@ func TestExprInstanceOf(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17369,7 +17551,8 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17455,7 +17638,8 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17520,7 +17704,8 @@ func TestExprIsset(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17606,7 +17791,8 @@ func TestExprIsset_Variables(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17680,7 +17866,8 @@ func TestExprList_Empty(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17786,7 +17973,8 @@ func TestExprList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17902,7 +18090,8 @@ func TestExprList_ArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18030,7 +18219,8 @@ func TestExprList_List(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18137,7 +18327,8 @@ func TestExprList_EmptyItem(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18246,7 +18437,8 @@ func TestExprList_EmptyItems(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18330,7 +18522,8 @@ func TestExprMethodCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18395,7 +18588,8 @@ func TestExprNew(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18470,7 +18664,8 @@ func TestExprNew_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18545,7 +18740,8 @@ func TestExprNew_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18676,7 +18872,8 @@ func TestExprNew_Anonymous(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18739,7 +18936,8 @@ func TestExprPrint(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18813,7 +19011,8 @@ func TestExprPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18930,7 +19129,8 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19006,7 +19206,8 @@ func TestExprShellExec(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19049,7 +19250,8 @@ func TestExprShortArray(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19114,7 +19316,8 @@ func TestExprShortArray_Item(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19232,7 +19435,8 @@ func TestExprShortArray_Items(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19338,7 +19542,8 @@ func TestExprShortList(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19454,7 +19659,8 @@ func TestExprShortList_ArrayIndex(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19582,7 +19788,8 @@ func TestExprShortList_List(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19668,7 +19875,8 @@ func TestExprStaticCall(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19754,7 +19962,8 @@ func TestExprStaticCall_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19840,7 +20049,8 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19936,7 +20146,8 @@ func TestExprStaticCall_Var(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20030,7 +20241,8 @@ func TestExprStaticCall_VarVar(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20116,7 +20328,8 @@ func TestExprStaticPropertyFetch(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20202,7 +20415,8 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20288,7 +20502,8 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20393,7 +20608,8 @@ func TestExprTernary(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20477,7 +20693,8 @@ func TestExprTernary_Simple(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20634,7 +20851,8 @@ func TestExprTernary_NestedTrue(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20791,7 +21009,8 @@ func TestExprTernary_NestedCond(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20854,7 +21073,8 @@ func TestExprUnaryMinus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20917,7 +21137,8 @@ func TestExprUnaryPlus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20970,7 +21191,8 @@ func TestExprVariable(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21033,7 +21255,8 @@ func TestExprVariable_Variable(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21075,7 +21298,8 @@ func TestExprYield(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21138,7 +21362,8 @@ func TestExprYield_Val(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21222,7 +21447,8 @@ func TestExprYield_KeyVal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21275,7 +21501,8 @@ func TestExprYield_Expr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21349,7 +21576,8 @@ func TestExprYield_KeyExpr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21412,7 +21640,8 @@ func TestExprYieldFrom(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21498,7 +21727,8 @@ func TestExprAssign_Assign(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21582,7 +21812,8 @@ func TestExprAssign_Reference(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21678,7 +21909,8 @@ func TestExprAssign_ReferenceNew(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21819,7 +22051,8 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21903,7 +22136,8 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21987,7 +22221,8 @@ func TestExprAssign_BitwiseOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22071,7 +22306,8 @@ func TestExprAssign_BitwiseXor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22155,7 +22391,8 @@ func TestExprAssign_Concat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22239,7 +22476,8 @@ func TestExprAssign_Div(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22323,7 +22561,8 @@ func TestExprAssign_Minus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22407,7 +22646,8 @@ func TestExprAssign_Mod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22491,7 +22731,8 @@ func TestExprAssign_Mul(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22575,7 +22816,8 @@ func TestExprAssign_Plus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22659,7 +22901,8 @@ func TestExprAssign_Pow(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22743,7 +22986,8 @@ func TestExprAssign_ShiftLeft(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22827,7 +23071,8 @@ func TestExprAssign_ShiftRight(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22911,7 +23156,8 @@ func TestExprAssign_Coalesce(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22997,7 +23243,8 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23081,7 +23328,8 @@ func TestExprBinary_BitwiseOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23165,7 +23413,8 @@ func TestExprBinary_BitwiseXor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23249,7 +23498,8 @@ func TestExprBinary_BooleanAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23333,7 +23583,8 @@ func TestExprBinary_BooleanOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23417,7 +23668,8 @@ func TestExprBinary_Coalesce(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23501,7 +23753,8 @@ func TestExprBinary_Concat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23585,7 +23838,8 @@ func TestExprBinary_Div(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23669,7 +23923,8 @@ func TestExprBinary_Equal(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23753,7 +24008,8 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23837,7 +24093,8 @@ func TestExprBinary_Greater(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23921,7 +24178,8 @@ func TestExprBinary_Identical(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24005,7 +24263,8 @@ func TestExprBinary_LogicalAnd(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24089,7 +24348,8 @@ func TestExprBinary_LogicalOr(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24173,7 +24433,8 @@ func TestExprBinary_LogicalXor(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24257,7 +24518,8 @@ func TestExprBinary_Minus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24341,7 +24603,8 @@ func TestExprBinary_Mod(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24425,7 +24688,8 @@ func TestExprBinary_Mul(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24509,7 +24773,8 @@ func TestExprBinary_NotEqual(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24593,7 +24858,8 @@ func TestExprBinary_NotIdentical(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24677,7 +24943,8 @@ func TestExprBinary_Plus(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24761,7 +25028,8 @@ func TestExprBinary_Pow(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24845,7 +25113,8 @@ func TestExprBinary_ShiftLeft(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24929,7 +25198,8 @@ func TestExprBinary_ShiftRight(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25013,7 +25283,8 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25097,7 +25368,8 @@ func TestExprBinary_Smaller(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25181,7 +25453,8 @@ func TestExprBinary_Spaceship(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25246,7 +25519,8 @@ func TestExprCast_Array(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25309,7 +25583,8 @@ func TestExprCast_Bool(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25372,7 +25647,8 @@ func TestExprCast_BoolShort(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25435,7 +25711,8 @@ func TestExprCast_Double(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25498,7 +25775,8 @@ func TestExprCast_CastFloat(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25561,7 +25839,8 @@ func TestExprCast_Int(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25624,7 +25903,8 @@ func TestExprCast_IntShort(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25687,7 +25967,8 @@ func TestExprCast_Object(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25750,7 +26031,8 @@ func TestExprCast_String(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25813,7 +26095,8 @@ func TestExprCast_BinaryString(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25876,7 +26159,8 @@ func TestExprCast_Unset(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/internal/php7/php7_bench_test.go b/internal/php7/php7_bench_test.go index 8058be7..61045b0 100644 --- a/internal/php7/php7_bench_test.go +++ b/internal/php7/php7_bench_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/internal/scanner" ) func BenchmarkPhp7(b *testing.B) { @@ -381,7 +382,8 @@ CAD; ` for n := 0; n < b.N; n++ { - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() } } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 7b78b29..1fd25a0 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -6,6 +6,7 @@ import ( "gotest.tools/assert" "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" @@ -19633,7 +19634,8 @@ func TestPhp7(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19770,7 +19772,8 @@ func TestPhp5Strings(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19996,7 +19999,8 @@ CAD; }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + php7parser := php7.NewParser(lexer, false, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20016,8 +20020,13 @@ func TestPhp7ControlCharsErrors(t *testing.T) { }, } - php7parser := php7.NewParser([]byte(src), "7.4", false) + parserErrors := []*errors.Error{} + errorHandlerFunc := func(e *errors.Error) { + parserErrors = append(parserErrors, e) + } + + lexer := scanner.NewLexer([]byte(src), "7.4", false, errorHandlerFunc) + php7parser := php7.NewParser(lexer, false, errorHandlerFunc) php7parser.Parse() - actual := php7parser.GetErrors() - assert.DeepEqual(t, expected, actual) + assert.DeepEqual(t, expected, parserErrors) } diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index 18d5439..0ee65f5 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -3,6 +3,7 @@ package parser import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/internal/version" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -12,22 +13,31 @@ import ( type Parser interface { Parse() int GetRootNode() ast.Vertex - GetErrors() []*errors.Error } -func NewParser(src []byte, v string, withTokens bool) (Parser, error) { +type Config struct { + WithTokens bool + WithPositions bool + ErrorHandlerFunc func(e *errors.Error) +} + +func Parse(src []byte, ver string, cfg Config) (ast.Vertex, error) { var parser Parser - r, err := version.Compare(v, "7.0") + r, err := version.Compare(ver, "7.0") if err != nil { return nil, err } + lexer := scanner.NewLexer(src, ver, cfg.WithTokens, cfg.ErrorHandlerFunc) + if r == -1 { - parser = php5.NewParser(src, v, withTokens) + parser = php5.NewParser(lexer, cfg.WithTokens, cfg.ErrorHandlerFunc) } else { - parser = php7.NewParser(src, v, withTokens) + parser = php7.NewParser(lexer, cfg.WithTokens, cfg.ErrorHandlerFunc) } - return parser, nil + parser.Parse() + + return parser.GetRootNode(), nil } diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 0546caf..e632f11 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -2,15 +2,18 @@ package printer_test import ( "bytes" - "github.com/z7zmey/php-parser/pkg/ast" "testing" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/internal/php5" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/printer" ) func parsePhp5(src string) ast.Vertex { - php5parser := php5.NewParser([]byte(src), "5.6", true) + lexer := scanner.NewLexer([]byte(src), "5.6", true, nil) + php5parser := php5.NewParser(lexer, true, nil) php5parser.Parse() return php5parser.GetRootNode() diff --git a/pkg/printer/printer_parsed_php7_test.go b/pkg/printer/printer_parsed_php7_test.go index d4599b1..7b634a4 100644 --- a/pkg/printer/printer_parsed_php7_test.go +++ b/pkg/printer/printer_parsed_php7_test.go @@ -2,11 +2,13 @@ package printer_test import ( "bytes" - "github.com/z7zmey/php-parser/pkg/ast" "os" "testing" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/internal/php7" + "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/printer" ) @@ -27,7 +29,8 @@ abstract class Bar extends Baz // parse - php7parser := php7.NewParser([]byte(src), "7.4", true) + lexer := scanner.NewLexer([]byte(src), "7.4", true, nil) + php7parser := php7.NewParser(lexer, true, nil) php7parser.Parse() rootNode := php7parser.GetRootNode() @@ -58,7 +61,8 @@ abstract class Bar extends Baz } func parse(src string) ast.Vertex { - php7parser := php7.NewParser([]byte(src), "7.4", true) + lexer := scanner.NewLexer([]byte(src), "7.4", true, nil) + php7parser := php7.NewParser(lexer, true, nil) php7parser.Parse() return php7parser.GetRootNode() From ee3fe3b5c0933501cc219e01f2e504bf823ce647 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 30 Jun 2020 00:45:15 +0300 Subject: [PATCH 026/140] [refactoring] keep $ in variable identifier --- internal/php5/parser.go | 19 - internal/php5/parser_test.go | 558 ++++++------ internal/php5/php5.go | 961 ++++++++++----------- internal/php5/php5.y | 73 +- internal/php5/php5_test.go | 666 +++++++-------- internal/php7/parser.go | 17 - internal/php7/parser_test.go | 606 ++++++------- internal/php7/php7.go | 1034 +++++++++++------------ internal/php7/php7.y | 44 +- internal/php7/php7_test.go | 580 ++++++------- pkg/printer/printer.go | 7 +- pkg/printer/printer_parsed_php5_test.go | 2 +- pkg/printer/printer_test.go | 533 ++++++------ 13 files changed, 2481 insertions(+), 2619 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index f7c244f..02bc113 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -2,7 +2,6 @@ package php5 import ( "bytes" - "fmt" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" @@ -63,10 +62,6 @@ func lastNode(nn []ast.Vertex) ast.Vertex { return nn[len(nn)-1] } -func isDollar(r rune) bool { - return r == '$' -} - func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { if p.withTokens == false { return @@ -110,19 +105,6 @@ func (p *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } } -func (p *Parser) addDollarToken(v ast.Vertex) { - if p.withTokens == false { - return - } - - p.setFreeFloating(v, token.Dollar, []token.Token{ - { - ID: token.ID('$'), - Value: []byte("$"), - }, - }) -} - func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { if p.withTokens == false { return @@ -144,7 +126,6 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } vlen := len(semiColon[0].Value) - fmt.Printf("vlen: %q\n", string(semiColon[0].Value)) tlen := 2 if bytes.HasSuffix(semiColon[0].Value, []byte("?>\n")) { diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index ec349e5..223eb2b 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -51,7 +51,7 @@ func TestIdentifier(t *testing.T) { EndPos: 7, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, }, @@ -165,7 +165,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -198,7 +198,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 19, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -242,7 +242,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 28, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -284,7 +284,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 31, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -317,7 +317,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 38, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -361,7 +361,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 47, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -414,7 +414,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 55, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -447,7 +447,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 62, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -546,7 +546,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 78, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -579,7 +579,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 85, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -623,7 +623,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 94, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.Identifier{ @@ -676,7 +676,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 102, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -709,7 +709,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 109, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -797,7 +797,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 124, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -830,7 +830,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 131, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -940,7 +940,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 27, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1029,7 +1029,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 46, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1144,7 +1144,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 92, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1233,7 +1233,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 111, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1325,7 +1325,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 136, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1414,7 +1414,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 155, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1495,7 +1495,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 187, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1584,7 +1584,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 206, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1917,7 +1917,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { EndPos: 13, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, }, @@ -1994,7 +1994,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -2071,7 +2071,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { EndPos: 13, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, &ast.ScalarEncapsedStringPart{ @@ -2159,7 +2159,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndPos: 7, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -2180,7 +2180,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -2266,7 +2266,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { EndPos: 13, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.Identifier{ @@ -2550,7 +2550,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { EndPos: 14, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -2653,7 +2653,7 @@ LBL; EndPos: 19, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, &ast.ScalarEncapsedStringPart{ @@ -2745,7 +2745,7 @@ LBL; EndPos: 21, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, &ast.ScalarEncapsedStringPart{ @@ -3560,7 +3560,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3629,7 +3629,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3671,7 +3671,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: 27, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -3742,7 +3742,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3834,7 +3834,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3876,7 +3876,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 27, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -3918,7 +3918,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 42, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -5618,7 +5618,7 @@ func TestStmtEcho(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ScalarLnumber{ @@ -5685,7 +5685,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -5794,7 +5794,7 @@ func TestStmtFor(t *testing.T) { EndPos: 9, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Expr: &ast.ScalarLnumber{ @@ -5838,7 +5838,7 @@ func TestStmtFor(t *testing.T) { EndPos: 17, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -5882,7 +5882,7 @@ func TestStmtFor(t *testing.T) { EndPos: 26, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -5913,7 +5913,7 @@ func TestStmtFor(t *testing.T) { EndPos: 32, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -5990,7 +5990,7 @@ func TestStmtFor_Alt(t *testing.T) { EndPos: 11, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -6034,7 +6034,7 @@ func TestStmtFor_Alt(t *testing.T) { EndPos: 20, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -6101,7 +6101,7 @@ func TestStmtForeach(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -6122,7 +6122,7 @@ func TestStmtForeach(t *testing.T) { EndPos: 20, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6198,7 +6198,7 @@ func TestStmtForeach_Expr(t *testing.T) { EndPos: 20, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6263,7 +6263,7 @@ func TestStmtForeach_Alt(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -6284,7 +6284,7 @@ func TestStmtForeach_Alt(t *testing.T) { EndPos: 20, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6349,7 +6349,7 @@ func TestStmtForeach_WithKey(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6370,7 +6370,7 @@ func TestStmtForeach_WithKey(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprVariable{ @@ -6391,7 +6391,7 @@ func TestStmtForeach_WithKey(t *testing.T) { EndPos: 26, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6467,7 +6467,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprVariable{ @@ -6488,7 +6488,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { EndPos: 26, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6553,7 +6553,7 @@ func TestStmtForeach_WithRef(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6574,7 +6574,7 @@ func TestStmtForeach_WithRef(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprReference{ @@ -6604,7 +6604,7 @@ func TestStmtForeach_WithRef(t *testing.T) { EndPos: 27, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -6670,7 +6670,7 @@ func TestStmtForeach_WithList(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6691,7 +6691,7 @@ func TestStmtForeach_WithList(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprList{ @@ -6731,7 +6731,7 @@ func TestStmtForeach_WithList(t *testing.T) { EndPos: 31, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -6937,7 +6937,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndPos: 24, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -6981,7 +6981,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndPos: 37, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -7014,7 +7014,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndPos: 49, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7139,7 +7139,7 @@ func TestStmtGlobal(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7195,7 +7195,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -7216,7 +7216,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 16, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, &ast.ExprVariable{ @@ -7246,7 +7246,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 21, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -7453,7 +7453,7 @@ func TestStmtIf(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -7518,7 +7518,7 @@ func TestStmtIf_ElseIf(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -7560,7 +7560,7 @@ func TestStmtIf_ElseIf(t *testing.T) { EndPos: 24, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -7627,7 +7627,7 @@ func TestStmtIf_Else(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -7713,7 +7713,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -7755,7 +7755,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndPos: 24, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -7797,7 +7797,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndPos: 39, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -7885,7 +7885,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -7927,7 +7927,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndPos: 24, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -7979,7 +7979,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndPos: 40, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -8530,7 +8530,7 @@ func TestStmtProperty(t *testing.T) { EndPos: 20, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -8643,7 +8643,7 @@ func TestStmtProperty_Properties(t *testing.T) { EndPos: 30, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -8674,7 +8674,7 @@ func TestStmtProperty_Properties(t *testing.T) { EndPos: 34, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -8798,7 +8798,7 @@ func TestStmtProperty_Properties2(t *testing.T) { EndPos: 30, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarLnumber{ @@ -8840,7 +8840,7 @@ func TestStmtProperty_Properties2(t *testing.T) { EndPos: 38, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -8908,7 +8908,7 @@ func TestStmtStaticVar(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -8974,7 +8974,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -9005,7 +9005,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { EndPos: 16, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -9082,7 +9082,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarLnumber{ @@ -9124,7 +9124,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { EndPos: 20, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -9656,7 +9656,7 @@ func TestStmtThrow(t *testing.T) { EndPos: 11, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -10759,7 +10759,7 @@ func TestStmtTry_TryCatch(t *testing.T) { EndPos: 32, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -10854,7 +10854,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 32, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -10911,7 +10911,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 63, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11006,7 +11006,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { EndPos: 32, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11110,7 +11110,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 29, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11167,7 +11167,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 61, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11224,7 +11224,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 103, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11282,7 +11282,7 @@ func TestStmtUnset(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11338,7 +11338,7 @@ func TestStmtUnset_Vars(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -11359,7 +11359,7 @@ func TestStmtUnset_Vars(t *testing.T) { EndPos: 15, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12565,7 +12565,7 @@ func TestExprArrayDimFetch(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -12649,7 +12649,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -12897,7 +12897,7 @@ func TestExprArray_Items(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12965,7 +12965,7 @@ func TestExprBitwiseNot(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13029,7 +13029,7 @@ func TestExprBooleanNot(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13235,7 +13235,7 @@ func TestExprClone_Brackets(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13299,7 +13299,7 @@ func TestExprClone(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13423,7 +13423,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13456,7 +13456,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -13489,7 +13489,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 27, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, &ast.ExprReference{ @@ -13519,7 +13519,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 32, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -13601,7 +13601,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13634,7 +13634,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -13676,7 +13676,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 28, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -13698,7 +13698,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 32, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -13963,7 +13963,7 @@ func TestExprEmpty(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14027,7 +14027,7 @@ func TestExprErrorSuppress(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14091,7 +14091,7 @@ func TestExprEval(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14244,7 +14244,7 @@ func TestExprExit_Expr(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14397,7 +14397,7 @@ func TestExprDie_Expr(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14714,7 +14714,7 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 7, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -14765,7 +14765,7 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 16, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14886,7 +14886,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndPos: 12, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Right: &ast.ScalarLnumber{ @@ -14965,7 +14965,7 @@ func TestExprPostDec(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15029,7 +15029,7 @@ func TestExprPostInc(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15093,7 +15093,7 @@ func TestExprPreDec(t *testing.T) { EndPos: 7, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15157,7 +15157,7 @@ func TestExprPreInc(t *testing.T) { EndPos: 7, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15221,7 +15221,7 @@ func TestExprInclude(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15285,7 +15285,7 @@ func TestExprInclude_Once(t *testing.T) { EndPos: 18, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15349,7 +15349,7 @@ func TestExprRequire(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15413,7 +15413,7 @@ func TestExprRequire_Once(t *testing.T) { EndPos: 18, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15477,7 +15477,7 @@ func TestExprInstanceOf(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameName{ @@ -15564,7 +15564,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameRelative{ @@ -15651,7 +15651,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameFullyQualified{ @@ -15739,7 +15739,7 @@ func TestExprIsset(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15805,7 +15805,7 @@ func TestExprIsset_Variables(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -15826,7 +15826,7 @@ func TestExprIsset_Variables(t *testing.T) { EndPos: 15, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15902,7 +15902,7 @@ func TestExprList_Empty(t *testing.T) { EndPos: 14, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15985,7 +15985,7 @@ func TestExprList(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16009,7 +16009,7 @@ func TestExprList(t *testing.T) { EndPos: 16, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16101,7 +16101,7 @@ func TestExprList_ArrayIndex(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16126,7 +16126,7 @@ func TestExprList_ArrayIndex(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16228,7 +16228,7 @@ func TestExprList_List(t *testing.T) { EndPos: 15, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16255,7 +16255,7 @@ func TestExprList_List(t *testing.T) { EndPos: 22, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16339,7 +16339,7 @@ func TestExprList_EmptyItem(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16363,7 +16363,7 @@ func TestExprList_EmptyItem(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16448,7 +16448,7 @@ func TestExprList_EmptyItems(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16473,7 +16473,7 @@ func TestExprList_EmptyItems(t *testing.T) { EndPos: 22, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16537,7 +16537,7 @@ func TestExprMethodCall(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Method: &ast.Identifier{ @@ -16840,7 +16840,7 @@ func TestExprPrint(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16904,7 +16904,7 @@ func TestExprPropertyFetch(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -16971,7 +16971,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -16992,7 +16992,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprReference{ @@ -17022,7 +17022,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { EndPos: 27, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -17109,7 +17109,7 @@ func TestExprShellExec(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17335,7 +17335,7 @@ func TestExprShortArray_Items(t *testing.T) { EndPos: 13, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17687,7 +17687,7 @@ func TestExprStaticCall_Var(t *testing.T) { EndPos: 12, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -17761,7 +17761,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { EndPos: 7, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.ExprVariable{ @@ -17782,7 +17782,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { EndPos: 13, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -17879,7 +17879,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndPos: 12, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -17966,7 +17966,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { EndPos: 22, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -18053,7 +18053,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { EndPos: 13, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -18117,7 +18117,7 @@ func TestExprTernary(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -18138,7 +18138,7 @@ func TestExprTernary(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -18159,7 +18159,7 @@ func TestExprTernary(t *testing.T) { EndPos: 15, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -18223,7 +18223,7 @@ func TestExprTernary_Simple(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfFalse: &ast.ExprVariable{ @@ -18244,7 +18244,7 @@ func TestExprTernary_Simple(t *testing.T) { EndPos: 12, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -18308,7 +18308,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprTernary{ @@ -18338,7 +18338,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfTrue: &ast.ExprVariable{ @@ -18359,7 +18359,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 15, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, IfFalse: &ast.ExprVariable{ @@ -18380,7 +18380,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 20, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -18402,7 +18402,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 25, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -18475,7 +18475,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -18496,7 +18496,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -18517,7 +18517,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 15, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -18539,7 +18539,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 20, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, IfFalse: &ast.ExprVariable{ @@ -18560,7 +18560,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 25, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -18624,7 +18624,7 @@ func TestExprUnaryMinus(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18688,7 +18688,7 @@ func TestExprUnaryPlus(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18743,7 +18743,7 @@ func TestExprVariable(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18806,7 +18806,7 @@ func TestExprVariable_Variable(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18913,7 +18913,7 @@ func TestExprYield_Val(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18977,7 +18977,7 @@ func TestExprYield_KeyVal(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Value: &ast.ExprVariable{ @@ -18998,7 +18998,7 @@ func TestExprYield_KeyVal(t *testing.T) { EndPos: 17, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19116,7 +19116,7 @@ func TestExprYield_KeyExpr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Value: &ast.ScalarLnumber{ @@ -19193,7 +19193,7 @@ func TestExprAssign_Assign(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -19214,7 +19214,7 @@ func TestExprAssign_Assign(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19278,7 +19278,7 @@ func TestExprAssign_Reference(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -19299,7 +19299,7 @@ func TestExprAssign_Reference(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19363,7 +19363,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprNew{ @@ -19460,7 +19460,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprNew{ @@ -19534,7 +19534,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { EndPos: 19, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19602,7 +19602,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -19623,7 +19623,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19687,7 +19687,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -19708,7 +19708,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19772,7 +19772,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -19793,7 +19793,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19857,7 +19857,7 @@ func TestExprAssign_Concat(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -19878,7 +19878,7 @@ func TestExprAssign_Concat(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19942,7 +19942,7 @@ func TestExprAssign_Div(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -19963,7 +19963,7 @@ func TestExprAssign_Div(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20027,7 +20027,7 @@ func TestExprAssign_Minus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -20048,7 +20048,7 @@ func TestExprAssign_Minus(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20112,7 +20112,7 @@ func TestExprAssign_Mod(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -20133,7 +20133,7 @@ func TestExprAssign_Mod(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20197,7 +20197,7 @@ func TestExprAssign_Mul(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -20218,7 +20218,7 @@ func TestExprAssign_Mul(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20282,7 +20282,7 @@ func TestExprAssign_Plus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -20303,7 +20303,7 @@ func TestExprAssign_Plus(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20367,7 +20367,7 @@ func TestExprAssign_Pow(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -20388,7 +20388,7 @@ func TestExprAssign_Pow(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20452,7 +20452,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -20473,7 +20473,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20537,7 +20537,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -20558,7 +20558,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20624,7 +20624,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -20645,7 +20645,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20709,7 +20709,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -20730,7 +20730,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20794,7 +20794,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -20815,7 +20815,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20879,7 +20879,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -20900,7 +20900,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20964,7 +20964,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -20985,7 +20985,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21049,7 +21049,7 @@ func TestExprBinary_Concat(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21070,7 +21070,7 @@ func TestExprBinary_Concat(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21134,7 +21134,7 @@ func TestExprBinary_Div(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21155,7 +21155,7 @@ func TestExprBinary_Div(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21219,7 +21219,7 @@ func TestExprBinary_Equal(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21240,7 +21240,7 @@ func TestExprBinary_Equal(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21304,7 +21304,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21325,7 +21325,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21389,7 +21389,7 @@ func TestExprBinary_Greater(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21410,7 +21410,7 @@ func TestExprBinary_Greater(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21474,7 +21474,7 @@ func TestExprBinary_Identical(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21495,7 +21495,7 @@ func TestExprBinary_Identical(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21559,7 +21559,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21580,7 +21580,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21644,7 +21644,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21665,7 +21665,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21729,7 +21729,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21750,7 +21750,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21814,7 +21814,7 @@ func TestExprBinary_Minus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21835,7 +21835,7 @@ func TestExprBinary_Minus(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21899,7 +21899,7 @@ func TestExprBinary_Mod(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -21920,7 +21920,7 @@ func TestExprBinary_Mod(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21984,7 +21984,7 @@ func TestExprBinary_Mul(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22005,7 +22005,7 @@ func TestExprBinary_Mul(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22069,7 +22069,7 @@ func TestExprBinary_NotEqual(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22090,7 +22090,7 @@ func TestExprBinary_NotEqual(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22154,7 +22154,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22175,7 +22175,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22239,7 +22239,7 @@ func TestExprBinary_Plus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22260,7 +22260,7 @@ func TestExprBinary_Plus(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22324,7 +22324,7 @@ func TestExprBinary_Pow(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22345,7 +22345,7 @@ func TestExprBinary_Pow(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22409,7 +22409,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22430,7 +22430,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22494,7 +22494,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22515,7 +22515,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22579,7 +22579,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22600,7 +22600,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22664,7 +22664,7 @@ func TestExprBinary_Smaller(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -22685,7 +22685,7 @@ func TestExprBinary_Smaller(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22751,7 +22751,7 @@ func TestExprCast_Array(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -22815,7 +22815,7 @@ func TestExprCast_Bool(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -22879,7 +22879,7 @@ func TestExprCast_BoolShort(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -22943,7 +22943,7 @@ func TestExprCast_Double(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -23007,7 +23007,7 @@ func TestExprCast_CastFloat(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -23071,7 +23071,7 @@ func TestExprCast_Int(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -23135,7 +23135,7 @@ func TestExprCast_IntShort(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -23199,7 +23199,7 @@ func TestExprCast_Object(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -23263,7 +23263,7 @@ func TestExprCast_String(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -23327,7 +23327,7 @@ func TestExprCast_BinaryString(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -23391,7 +23391,7 @@ func TestExprCast_Unset(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 22e8d54..01c6d9d 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7194 +// line internal/php5/php5.y:7167 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3576,7 +3576,7 @@ yydefault: yyDollar = yyS[yypt-9 : yypt+1] // line internal/php5/php5.y:1420 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} catchNode := &ast.StmtCatch{ast.Node{}, []ast.Vertex{yyDollar[3].node}, variable, yyDollar[7].list} yyVAL.list = append([]ast.Vertex{catchNode}, yyDollar[9].list...) @@ -3590,7 +3590,6 @@ yydefault: yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Hidden) yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Hidden) yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Hidden) @@ -3599,7 +3598,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1446 + // line internal/php5/php5.y:1445 { yyVAL.node = nil @@ -3607,7 +3606,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1452 + // line internal/php5/php5.y:1451 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3623,7 +3622,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1469 + // line internal/php5/php5.y:1468 { yyVAL.list = yyDollar[1].list @@ -3631,7 +3630,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1475 + // line internal/php5/php5.y:1474 { yyVAL.list = []ast.Vertex{} @@ -3639,7 +3638,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1484 + // line internal/php5/php5.y:1483 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3647,7 +3646,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1490 + // line internal/php5/php5.y:1489 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3655,9 +3654,9 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1499 + // line internal/php5/php5.y:1498 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtCatch{ast.Node{}, []ast.Vertex{yyDollar[3].node}, variable, yyDollar[7].list} @@ -3670,7 +3669,6 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Hidden) @@ -3679,7 +3677,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1524 + // line internal/php5/php5.y:1522 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3687,7 +3685,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1530 + // line internal/php5/php5.y:1528 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3698,7 +3696,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1542 + // line internal/php5/php5.y:1540 { yyVAL.node = yyDollar[1].node @@ -3706,7 +3704,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1551 + // line internal/php5/php5.y:1549 { yyVAL.node = yyDollar[1].node @@ -3714,7 +3712,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1560 + // line internal/php5/php5.y:1558 { yyVAL.node = yyDollar[1].node @@ -3722,31 +3720,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1569 + // line internal/php5/php5.y:1567 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1573 + // line internal/php5/php5.y:1571 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1580 + // line internal/php5/php5.y:1578 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1584 + // line internal/php5/php5.y:1582 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1591 + // line internal/php5/php5.y:1589 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3772,7 +3770,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1618 + // line internal/php5/php5.y:1616 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3802,7 +3800,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1646 + // line internal/php5/php5.y:1644 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3821,7 +3819,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1667 + // line internal/php5/php5.y:1665 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3835,7 +3833,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1679 + // line internal/php5/php5.y:1677 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3852,7 +3850,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1694 + // line internal/php5/php5.y:1692 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3866,7 +3864,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1706 + // line internal/php5/php5.y:1704 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3883,7 +3881,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1724 + // line internal/php5/php5.y:1722 { yyVAL.ClassExtends = nil @@ -3891,7 +3889,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1730 + // line internal/php5/php5.y:1728 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3905,13 +3903,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1745 + // line internal/php5/php5.y:1743 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1750 { yyVAL.InterfaceExtends = nil @@ -3919,7 +3917,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1758 + // line internal/php5/php5.y:1756 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3933,7 +3931,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1771 { yyVAL.ClassImplements = nil @@ -3941,7 +3939,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1779 + // line internal/php5/php5.y:1777 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3955,7 +3953,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1794 + // line internal/php5/php5.y:1792 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3963,7 +3961,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1800 + // line internal/php5/php5.y:1798 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3974,7 +3972,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1812 + // line internal/php5/php5.y:1810 { yyVAL.node = nil @@ -3982,7 +3980,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1818 + // line internal/php5/php5.y:1816 { yyVAL.node = yyDollar[2].node @@ -3993,7 +3991,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1830 + // line internal/php5/php5.y:1828 { yyVAL.node = yyDollar[1].node @@ -4001,7 +3999,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1836 + // line internal/php5/php5.y:1834 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4015,7 +4013,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1848 + // line internal/php5/php5.y:1846 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4031,7 +4029,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1865 + // line internal/php5/php5.y:1863 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4042,7 +4040,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1874 + // line internal/php5/php5.y:1872 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4061,7 +4059,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1894 + // line internal/php5/php5.y:1892 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4072,7 +4070,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1903 + // line internal/php5/php5.y:1901 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4091,7 +4089,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1924 + // line internal/php5/php5.y:1922 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4102,7 +4100,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1931 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4121,7 +4119,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1954 + // line internal/php5/php5.y:1952 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4139,7 +4137,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1970 + // line internal/php5/php5.y:1968 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4158,7 +4156,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1991 + // line internal/php5/php5.y:1989 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4175,7 +4173,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2006 + // line internal/php5/php5.y:2004 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4193,7 +4191,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2022 + // line internal/php5/php5.y:2020 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4212,7 +4210,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2039 + // line internal/php5/php5.y:2037 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4233,7 +4231,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2062 + // line internal/php5/php5.y:2060 { yyVAL.list = []ast.Vertex{} @@ -4241,7 +4239,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2068 + // line internal/php5/php5.y:2066 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4258,7 +4256,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2083 + // line internal/php5/php5.y:2081 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4275,19 +4273,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2102 + // line internal/php5/php5.y:2100 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2106 + // line internal/php5/php5.y:2104 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2114 + // line internal/php5/php5.y:2112 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4298,7 +4296,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2123 + // line internal/php5/php5.y:2121 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4317,7 +4315,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2145 + // line internal/php5/php5.y:2143 { yyVAL.list = nil @@ -4325,7 +4323,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2151 + // line internal/php5/php5.y:2149 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4348,7 +4346,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2174 + // line internal/php5/php5.y:2172 { yyVAL.list = nil @@ -4356,7 +4354,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2180 + // line internal/php5/php5.y:2178 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4382,7 +4380,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2206 + // line internal/php5/php5.y:2204 { yyVAL.node = nil @@ -4390,7 +4388,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2212 + // line internal/php5/php5.y:2210 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4404,7 +4402,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2228 + // line internal/php5/php5.y:2226 { yyVAL.node = nil @@ -4412,7 +4410,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2234 + // line internal/php5/php5.y:2232 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4429,7 +4427,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2253 + // line internal/php5/php5.y:2251 { yyVAL.list = yyDollar[1].list @@ -4437,7 +4435,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2259 + // line internal/php5/php5.y:2257 { yyVAL.list = nil @@ -4445,7 +4443,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2268 + // line internal/php5/php5.y:2266 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4453,7 +4451,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2274 + // line internal/php5/php5.y:2272 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4464,9 +4462,9 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2286 + // line internal/php5/php5.y:2284 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, nil} @@ -4494,7 +4492,6 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) - yylex.(*Parser).addDollarToken(variable) // normalize if yyDollar[3].token == nil { @@ -4514,9 +4511,9 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2331 + // line internal/php5/php5.y:2328 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, yyDollar[6].node} @@ -4545,7 +4542,6 @@ yydefault: } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) - yylex.(*Parser).addDollarToken(variable) // normalize if yyDollar[3].token == nil { @@ -4565,7 +4561,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2381 + // line internal/php5/php5.y:2377 { yyVAL.node = nil @@ -4573,7 +4569,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2387 + // line internal/php5/php5.y:2383 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4587,7 +4583,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2399 + // line internal/php5/php5.y:2395 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4601,7 +4597,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2411 + // line internal/php5/php5.y:2407 { yyVAL.node = yyDollar[1].node @@ -4609,7 +4605,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2421 + // line internal/php5/php5.y:2417 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4624,7 +4620,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2434 + // line internal/php5/php5.y:2430 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4639,7 +4635,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2447 + // line internal/php5/php5.y:2443 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4656,7 +4652,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2466 + // line internal/php5/php5.y:2462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4664,7 +4660,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2472 + // line internal/php5/php5.y:2468 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4675,7 +4671,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2484 + // line internal/php5/php5.y:2480 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4689,7 +4685,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2496 + // line internal/php5/php5.y:2492 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4703,7 +4699,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2508 + // line internal/php5/php5.y:2504 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4717,7 +4713,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2520 + // line internal/php5/php5.y:2516 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4731,7 +4727,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2535 + // line internal/php5/php5.y:2531 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4742,7 +4738,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2544 + // line internal/php5/php5.y:2540 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4750,9 +4746,9 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2554 + // line internal/php5/php5.y:2550 { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position @@ -4761,13 +4757,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2569 + // line internal/php5/php5.y:2564 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4776,13 +4771,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2582 + // line internal/php5/php5.y:2576 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4791,7 +4785,6 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) @@ -4799,9 +4792,9 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2601 + // line internal/php5/php5.y:2594 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} yyVAL.list = append(yyDollar[1].list, staticVar) @@ -4813,16 +4806,15 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2620 + // line internal/php5/php5.y:2612 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, staticVar) @@ -4834,7 +4826,6 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Hidden) @@ -4842,9 +4833,9 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2640 + // line internal/php5/php5.y:2631 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} yyVAL.list = []ast.Vertex{staticVar} @@ -4855,16 +4846,15 @@ yydefault: staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2648 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} yyVAL.list = []ast.Vertex{staticVar} @@ -4875,7 +4865,6 @@ yydefault: staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Hidden) @@ -4883,7 +4872,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2681 + // line internal/php5/php5.y:2670 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4891,7 +4880,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2687 + // line internal/php5/php5.y:2676 { yyVAL.list = []ast.Vertex{} @@ -4899,7 +4888,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2697 + // line internal/php5/php5.y:2686 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4915,7 +4904,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2711 + // line internal/php5/php5.y:2700 { yyVAL.node = yyDollar[1].node @@ -4930,7 +4919,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2724 + // line internal/php5/php5.y:2713 { yyVAL.node = yyDollar[1].node @@ -4938,7 +4927,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2730 + // line internal/php5/php5.y:2719 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4971,7 +4960,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2764 + // line internal/php5/php5.y:2753 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4985,7 +4974,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2768 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4993,7 +4982,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2785 + // line internal/php5/php5.y:2774 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5004,7 +4993,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2797 + // line internal/php5/php5.y:2786 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5018,7 +5007,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2809 + // line internal/php5/php5.y:2798 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5032,7 +5021,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2824 + // line internal/php5/php5.y:2813 { yyVAL.list = nil @@ -5040,7 +5029,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2830 + // line internal/php5/php5.y:2819 { yyVAL.list = yyDollar[1].list @@ -5048,7 +5037,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2839 + // line internal/php5/php5.y:2828 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5056,7 +5045,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2845 + // line internal/php5/php5.y:2834 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5064,7 +5053,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2854 + // line internal/php5/php5.y:2843 { yyVAL.node = yyDollar[1].node @@ -5076,7 +5065,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2864 + // line internal/php5/php5.y:2853 { yyVAL.node = yyDollar[1].node @@ -5088,7 +5077,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2877 + // line internal/php5/php5.y:2866 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5103,7 +5092,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2893 + // line internal/php5/php5.y:2882 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5111,7 +5100,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2899 + // line internal/php5/php5.y:2888 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5122,7 +5111,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2911 + // line internal/php5/php5.y:2900 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5138,7 +5127,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2914 { yyVAL.node = yyDollar[1].node @@ -5146,7 +5135,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2934 + // line internal/php5/php5.y:2923 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5164,7 +5153,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2953 + // line internal/php5/php5.y:2942 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5182,7 +5171,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2969 + // line internal/php5/php5.y:2958 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5197,7 +5186,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2985 + // line internal/php5/php5.y:2974 { yyVAL.node = nil @@ -5205,7 +5194,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2991 + // line internal/php5/php5.y:2980 { yyVAL.node = yyDollar[1].node @@ -5213,7 +5202,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3000 + // line internal/php5/php5.y:2989 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5228,7 +5217,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3013 + // line internal/php5/php5.y:3002 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5243,7 +5232,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3029 + // line internal/php5/php5.y:3018 { yyVAL.list = yyDollar[1].list @@ -5251,7 +5240,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3035 + // line internal/php5/php5.y:3024 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5266,7 +5255,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3051 + // line internal/php5/php5.y:3040 { yyVAL.list = nil @@ -5274,7 +5263,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3057 + // line internal/php5/php5.y:3046 { yyVAL.list = yyDollar[1].list @@ -5282,7 +5271,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3066 + // line internal/php5/php5.y:3055 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5290,7 +5279,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3072 + // line internal/php5/php5.y:3061 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5298,7 +5287,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3081 + // line internal/php5/php5.y:3070 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5312,7 +5301,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3093 + // line internal/php5/php5.y:3082 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5326,7 +5315,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3105 + // line internal/php5/php5.y:3094 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5340,7 +5329,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3117 + // line internal/php5/php5.y:3106 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5354,7 +5343,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3129 + // line internal/php5/php5.y:3118 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5368,7 +5357,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3141 + // line internal/php5/php5.y:3130 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5382,9 +5371,9 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3156 + // line internal/php5/php5.y:3145 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} yyVAL.list = append(yyDollar[1].list, property) @@ -5395,7 +5384,6 @@ yydefault: property.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Hidden) @@ -5403,9 +5391,9 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3175 + // line internal/php5/php5.y:3163 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, property) @@ -5417,7 +5405,6 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Hidden) @@ -5425,9 +5412,9 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3195 + // line internal/php5/php5.y:3182 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} yyVAL.list = []ast.Vertex{property} @@ -5438,16 +5425,15 @@ yydefault: property.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3213 + // line internal/php5/php5.y:3199 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} yyVAL.list = []ast.Vertex{property} @@ -5458,7 +5444,6 @@ yydefault: property.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Hidden) @@ -5466,7 +5451,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3235 + // line internal/php5/php5.y:3220 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5489,7 +5474,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3256 + // line internal/php5/php5.y:3241 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5509,7 +5494,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3277 + // line internal/php5/php5.y:3262 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5520,7 +5505,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3286 + // line internal/php5/php5.y:3271 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5528,7 +5513,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3296 + // line internal/php5/php5.y:3281 { yyVAL.list = nil @@ -5536,7 +5521,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3302 + // line internal/php5/php5.y:3287 { yyVAL.list = yyDollar[1].list @@ -5544,7 +5529,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3311 + // line internal/php5/php5.y:3296 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5555,7 +5540,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3320 + // line internal/php5/php5.y:3305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5563,7 +5548,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3329 + // line internal/php5/php5.y:3314 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5571,7 +5556,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3335 + // line internal/php5/php5.y:3320 { yyVAL.list = yyDollar[1].list @@ -5579,7 +5564,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3344 + // line internal/php5/php5.y:3329 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5595,7 +5580,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3358 + // line internal/php5/php5.y:3343 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5611,7 +5596,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3375 + // line internal/php5/php5.y:3360 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5619,7 +5604,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3381 + // line internal/php5/php5.y:3366 { yyVAL.list = yyDollar[1].list @@ -5627,7 +5612,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3387 + // line internal/php5/php5.y:3372 { yyVAL.list = yyDollar[1].list @@ -5635,7 +5620,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3396 + // line internal/php5/php5.y:3381 { yyVAL.list = nil @@ -5643,7 +5628,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3402 + // line internal/php5/php5.y:3387 { yyVAL.list = yyDollar[1].list @@ -5651,7 +5636,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3411 + // line internal/php5/php5.y:3396 { if yyDollar[3].node != nil { @@ -5669,7 +5654,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3430 + // line internal/php5/php5.y:3415 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5688,7 +5673,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3447 + // line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,7 +5688,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3460 + // line internal/php5/php5.y:3445 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5719,7 +5704,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3474 + // line internal/php5/php5.y:3459 { var _new *ast.ExprNew @@ -5748,7 +5733,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3501 + // line internal/php5/php5.y:3486 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5762,7 +5747,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3513 + // line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5776,7 +5761,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3525 + // line internal/php5/php5.y:3510 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5791,7 +5776,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3538 + // line internal/php5/php5.y:3523 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5791,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3551 + // line internal/php5/php5.y:3536 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5806,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3564 + // line internal/php5/php5.y:3549 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5836,7 +5821,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3577 + // line internal/php5/php5.y:3562 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5851,7 +5836,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3590 + // line internal/php5/php5.y:3575 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5866,7 +5851,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3603 + // line internal/php5/php5.y:3588 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5881,7 +5866,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3616 + // line internal/php5/php5.y:3601 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5896,7 +5881,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3629 + // line internal/php5/php5.y:3614 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5911,7 +5896,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3642 + // line internal/php5/php5.y:3627 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5926,7 +5911,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3655 + // line internal/php5/php5.y:3640 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5941,7 +5926,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3668 + // line internal/php5/php5.y:3653 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5956,7 +5941,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3681 + // line internal/php5/php5.y:3666 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5970,7 +5955,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3693 + // line internal/php5/php5.y:3678 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5985,7 +5970,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3706 + // line internal/php5/php5.y:3691 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5999,7 +5984,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3718 + // line internal/php5/php5.y:3703 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6014,7 +5999,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3731 + // line internal/php5/php5.y:3716 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6029,7 +6014,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3744 + // line internal/php5/php5.y:3729 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6044,7 +6029,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3757 + // line internal/php5/php5.y:3742 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6059,7 +6044,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3770 + // line internal/php5/php5.y:3755 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6074,7 +6059,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3783 + // line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6089,7 +6074,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3796 + // line internal/php5/php5.y:3781 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6104,7 +6089,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3809 + // line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6119,7 +6104,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3822 + // line internal/php5/php5.y:3807 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6134,7 +6119,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3835 + // line internal/php5/php5.y:3820 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6149,7 +6134,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3848 + // line internal/php5/php5.y:3833 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6164,7 +6149,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3861 + // line internal/php5/php5.y:3846 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6179,7 +6164,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3874 + // line internal/php5/php5.y:3859 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6194,7 +6179,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3887 + // line internal/php5/php5.y:3872 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6209,7 +6194,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3900 + // line internal/php5/php5.y:3885 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6224,7 +6209,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3913 + // line internal/php5/php5.y:3898 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6239,7 +6224,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3926 + // line internal/php5/php5.y:3911 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6254,7 +6239,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3939 + // line internal/php5/php5.y:3924 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6268,7 +6253,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3951 + // line internal/php5/php5.y:3936 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6282,7 +6267,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3948 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6296,7 +6281,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3975 + // line internal/php5/php5.y:3960 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6310,7 +6295,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3987 + // line internal/php5/php5.y:3972 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6325,7 +6310,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4000 + // line internal/php5/php5.y:3985 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6340,7 +6325,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4013 + // line internal/php5/php5.y:3998 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6355,7 +6340,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4026 + // line internal/php5/php5.y:4011 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6371,7 +6356,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4040 + // line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6386,7 +6371,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4053 + // line internal/php5/php5.y:4038 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6401,7 +6386,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4066 + // line internal/php5/php5.y:4051 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6416,7 +6401,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4079 + // line internal/php5/php5.y:4064 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6431,7 +6416,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4092 + // line internal/php5/php5.y:4077 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6446,7 +6431,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4105 + // line internal/php5/php5.y:4090 { yyVAL.node = yyDollar[1].node @@ -6459,7 +6444,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4114 + // line internal/php5/php5.y:4099 { yyVAL.node = yyDollar[1].node @@ -6467,7 +6452,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4120 + // line internal/php5/php5.y:4105 { yyVAL.node = yyDollar[2].node @@ -6501,7 +6486,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4152 + // line internal/php5/php5.y:4137 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6517,7 +6502,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4166 + // line internal/php5/php5.y:4151 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6533,7 +6518,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4180 + // line internal/php5/php5.y:4165 { yyVAL.node = yyDollar[1].node @@ -6541,7 +6526,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4186 + // line internal/php5/php5.y:4171 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6556,7 +6541,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4199 + // line internal/php5/php5.y:4184 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6571,7 +6556,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4212 + // line internal/php5/php5.y:4197 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6586,7 +6571,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4225 + // line internal/php5/php5.y:4210 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6601,7 +6586,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4238 + // line internal/php5/php5.y:4223 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6616,7 +6601,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4251 + // line internal/php5/php5.y:4236 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6631,7 +6616,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4264 + // line internal/php5/php5.y:4249 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6646,7 +6631,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4277 + // line internal/php5/php5.y:4262 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6669,7 +6654,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4298 + // line internal/php5/php5.y:4283 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6683,7 +6668,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4310 + // line internal/php5/php5.y:4295 { yyVAL.node = yyDollar[1].node @@ -6691,7 +6676,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4316 + // line internal/php5/php5.y:4301 { yyVAL.node = yyDollar[1].node @@ -6699,7 +6684,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4322 + // line internal/php5/php5.y:4307 { yyVAL.node = yyDollar[1].node @@ -6707,7 +6692,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4328 + // line internal/php5/php5.y:4313 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6721,7 +6706,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4325 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6735,7 +6720,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4352 + // line internal/php5/php5.y:4337 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6749,7 +6734,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4364 + // line internal/php5/php5.y:4349 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6778,7 +6763,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4390 + // line internal/php5/php5.y:4375 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6808,7 +6793,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4405 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6822,7 +6807,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4432 + // line internal/php5/php5.y:4417 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6836,7 +6821,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4444 + // line internal/php5/php5.y:4429 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6851,7 +6836,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4457 + // line internal/php5/php5.y:4442 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6866,7 +6851,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4473 + // line internal/php5/php5.y:4458 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6882,7 +6867,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4487 + // line internal/php5/php5.y:4472 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6898,7 +6883,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4501 + // line internal/php5/php5.y:4486 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6916,7 +6901,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4517 + // line internal/php5/php5.y:4502 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6932,7 +6917,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4534 + // line internal/php5/php5.y:4519 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6948,7 +6933,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4548 + // line internal/php5/php5.y:4533 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6963,13 +6948,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4564 + // line internal/php5/php5.y:4549 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4571 + // line internal/php5/php5.y:4556 { yyVAL.ClosureUse = nil @@ -6977,7 +6962,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4577 + // line internal/php5/php5.y:4562 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6993,9 +6978,9 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4579 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[3].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.list = append(yyDollar[1].list, variable) @@ -7006,15 +6991,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4611 + // line internal/php5/php5.y:4595 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} yyVAL.list = append(yyDollar[1].list, reference) @@ -7028,15 +7012,14 @@ yydefault: yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4631 + // line internal/php5/php5.y:4614 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.list = []ast.Vertex{variable} @@ -7046,15 +7029,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4647 + // line internal/php5/php5.y:4629 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} yyVAL.list = []ast.Vertex{reference} @@ -7067,13 +7049,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4650 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7089,7 +7070,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4683 + // line internal/php5/php5.y:4664 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7106,7 +7087,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4698 + // line internal/php5/php5.y:4679 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7122,7 +7103,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4712 + // line internal/php5/php5.y:4693 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7137,7 +7118,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4725 + // line internal/php5/php5.y:4706 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7152,7 +7133,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4738 + // line internal/php5/php5.y:4719 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7167,7 +7148,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4751 + // line internal/php5/php5.y:4732 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7182,7 +7163,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4764 + // line internal/php5/php5.y:4745 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7196,7 +7177,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4779 + // line internal/php5/php5.y:4760 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7210,7 +7191,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4791 + // line internal/php5/php5.y:4772 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7224,7 +7205,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4803 + // line internal/php5/php5.y:4784 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7239,7 +7220,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4816 + // line internal/php5/php5.y:4797 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7253,7 +7234,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4831 + // line internal/php5/php5.y:4812 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7267,7 +7248,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4843 + // line internal/php5/php5.y:4824 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7282,7 +7263,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4856 + // line internal/php5/php5.y:4837 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7296,7 +7277,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4871 + // line internal/php5/php5.y:4852 { yyVAL.node = yyDollar[1].node @@ -7304,7 +7285,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4877 + // line internal/php5/php5.y:4858 { yyVAL.node = yyDollar[1].node @@ -7312,7 +7293,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4886 + // line internal/php5/php5.y:4867 { yyVAL.node = yyDollar[1].node @@ -7355,7 +7336,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4927 + // line internal/php5/php5.y:4908 { yyVAL.node = yyDollar[1].node @@ -7363,7 +7344,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4937 + // line internal/php5/php5.y:4918 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7371,7 +7352,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4943 + // line internal/php5/php5.y:4924 { yyVAL.list = []ast.Vertex{} @@ -7379,7 +7360,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4953 + // line internal/php5/php5.y:4934 { yyVAL.list = yyDollar[2].list @@ -7390,7 +7371,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4965 + // line internal/php5/php5.y:4946 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7398,7 +7379,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4971 + // line internal/php5/php5.y:4952 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7413,7 +7394,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4984 + // line internal/php5/php5.y:4965 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7434,7 +7415,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5004 + // line internal/php5/php5.y:4985 { yyVAL.list = []ast.Vertex{} @@ -7442,7 +7423,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5010 + // line internal/php5/php5.y:4991 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7454,7 +7435,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5001 { yyVAL.list = yyDollar[1].list @@ -7462,7 +7443,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5029 + // line internal/php5/php5.y:5010 { yyVAL.node = nil @@ -7470,7 +7451,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5035 + // line internal/php5/php5.y:5016 { yyVAL.node = yyDollar[1].node @@ -7478,7 +7459,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5025 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7492,7 +7473,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5037 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7506,7 +7487,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5068 + // line internal/php5/php5.y:5049 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7520,7 +7501,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5061 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7534,7 +7515,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5073 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7548,7 +7529,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5085 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7562,7 +7543,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5116 + // line internal/php5/php5.y:5097 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7576,7 +7557,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5128 + // line internal/php5/php5.y:5109 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7590,7 +7571,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5140 + // line internal/php5/php5.y:5121 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7604,7 +7585,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5152 + // line internal/php5/php5.y:5133 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7618,7 +7599,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5164 + // line internal/php5/php5.y:5145 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7634,7 +7615,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5178 + // line internal/php5/php5.y:5159 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7648,7 +7629,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5193 + // line internal/php5/php5.y:5174 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7666,7 +7647,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5212 + // line internal/php5/php5.y:5193 { yyVAL.node = yyDollar[1].node @@ -7674,7 +7655,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5221 + // line internal/php5/php5.y:5202 { yyVAL.node = yyDollar[1].node @@ -7682,7 +7663,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5227 + // line internal/php5/php5.y:5208 { yyVAL.node = yyDollar[1].node @@ -7690,7 +7671,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5233 + // line internal/php5/php5.y:5214 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7706,7 +7687,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5247 + // line internal/php5/php5.y:5228 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7723,7 +7704,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5262 + // line internal/php5/php5.y:5243 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7739,7 +7720,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5276 + // line internal/php5/php5.y:5257 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7755,7 +7736,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5290 + // line internal/php5/php5.y:5271 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7770,7 +7751,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5303 + // line internal/php5/php5.y:5284 { yyVAL.node = yyDollar[1].node @@ -7778,7 +7759,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5309 + // line internal/php5/php5.y:5290 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7792,7 +7773,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5321 + // line internal/php5/php5.y:5302 { yyVAL.node = yyDollar[1].node @@ -7800,7 +7781,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5330 + // line internal/php5/php5.y:5311 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7816,7 +7797,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5325 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7831,7 +7812,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5338 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7846,7 +7827,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5351 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7861,7 +7842,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5383 + // line internal/php5/php5.y:5364 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7876,7 +7857,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5396 + // line internal/php5/php5.y:5377 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7891,7 +7872,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5390 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7906,7 +7887,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5422 + // line internal/php5/php5.y:5403 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7920,7 +7901,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5434 + // line internal/php5/php5.y:5415 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7934,7 +7915,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5446 + // line internal/php5/php5.y:5427 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7949,7 +7930,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5459 + // line internal/php5/php5.y:5440 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7964,7 +7945,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5453 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7979,7 +7960,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5466 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7994,7 +7975,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5498 + // line internal/php5/php5.y:5479 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8009,7 +7990,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5492 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8024,7 +8005,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5524 + // line internal/php5/php5.y:5505 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8039,7 +8020,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5537 + // line internal/php5/php5.y:5518 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8054,7 +8035,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5531 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8069,7 +8050,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5563 + // line internal/php5/php5.y:5544 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8084,7 +8065,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5557 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8099,7 +8080,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5589 + // line internal/php5/php5.y:5570 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8114,7 +8095,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5602 + // line internal/php5/php5.y:5583 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8129,7 +8110,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5615 + // line internal/php5/php5.y:5596 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8144,7 +8125,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5628 + // line internal/php5/php5.y:5609 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8160,7 +8141,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5642 + // line internal/php5/php5.y:5623 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8175,7 +8156,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5655 + // line internal/php5/php5.y:5636 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8190,7 +8171,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5668 + // line internal/php5/php5.y:5649 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8205,7 +8186,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5681 + // line internal/php5/php5.y:5662 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8220,7 +8201,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5694 + // line internal/php5/php5.y:5675 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8236,7 +8217,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5708 + // line internal/php5/php5.y:5689 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8252,7 +8233,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5722 + // line internal/php5/php5.y:5703 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8266,7 +8247,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5734 + // line internal/php5/php5.y:5715 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8280,7 +8261,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5746 + // line internal/php5/php5.y:5727 { yyVAL.node = yyDollar[2].node @@ -8292,7 +8273,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5740 { yyVAL.node = yyDollar[1].node @@ -8300,7 +8281,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5765 + // line internal/php5/php5.y:5746 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8316,7 +8297,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5779 + // line internal/php5/php5.y:5760 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8333,7 +8314,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5794 + // line internal/php5/php5.y:5775 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8349,7 +8330,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5811 + // line internal/php5/php5.y:5792 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8365,7 +8346,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5825 + // line internal/php5/php5.y:5806 { yyVAL.node = yyDollar[1].node @@ -8373,7 +8354,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5831 + // line internal/php5/php5.y:5812 { yyVAL.node = yyDollar[1].node @@ -8381,7 +8362,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5837 + // line internal/php5/php5.y:5818 { yyVAL.node = yyDollar[1].node @@ -8389,7 +8370,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5843 + // line internal/php5/php5.y:5824 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8403,7 +8384,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5855 + // line internal/php5/php5.y:5836 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8417,7 +8398,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5867 + // line internal/php5/php5.y:5848 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8431,7 +8412,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5882 + // line internal/php5/php5.y:5863 { yyVAL.list = nil @@ -8439,7 +8420,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5888 + // line internal/php5/php5.y:5869 { yyVAL.list = yyDollar[1].list @@ -8452,19 +8433,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5902 + // line internal/php5/php5.y:5883 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5906 + // line internal/php5/php5.y:5887 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5913 + // line internal/php5/php5.y:5894 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8481,7 +8462,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5928 + // line internal/php5/php5.y:5909 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8497,7 +8478,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5942 + // line internal/php5/php5.y:5923 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8513,7 +8494,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5956 + // line internal/php5/php5.y:5937 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8528,7 +8509,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5972 + // line internal/php5/php5.y:5953 { yyVAL.node = yyDollar[1].node @@ -8536,7 +8517,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5978 + // line internal/php5/php5.y:5959 { yyVAL.node = yyDollar[1].node @@ -8544,7 +8525,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5987 + // line internal/php5/php5.y:5968 { yyVAL.node = yyDollar[2].node @@ -8562,7 +8543,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6003 + // line internal/php5/php5.y:5984 { yyVAL.node = yyDollar[2].node @@ -8580,7 +8561,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6023 + // line internal/php5/php5.y:6004 { yyVAL.node = yyDollar[1].node @@ -8588,7 +8569,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6033 + // line internal/php5/php5.y:6014 { yyVAL.node = yyDollar[1].node @@ -8596,7 +8577,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6042 + // line internal/php5/php5.y:6023 { yyVAL.node = yyDollar[1].node @@ -8604,7 +8585,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6051 + // line internal/php5/php5.y:6032 { yyVAL.node = yyDollar[1].node @@ -8664,7 +8645,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6109 + // line internal/php5/php5.y:6090 { yyVAL.node = yyDollar[1].node @@ -8672,7 +8653,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6118 + // line internal/php5/php5.y:6099 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8680,7 +8661,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6124 + // line internal/php5/php5.y:6105 { yyVAL.list = []ast.Vertex{} @@ -8688,7 +8669,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6134 + // line internal/php5/php5.y:6115 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8704,7 +8685,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6151 + // line internal/php5/php5.y:6132 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8720,7 +8701,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6165 + // line internal/php5/php5.y:6146 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8736,7 +8717,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6182 + // line internal/php5/php5.y:6163 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8747,7 +8728,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6194 + // line internal/php5/php5.y:6175 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8755,7 +8736,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6200 + // line internal/php5/php5.y:6181 { yyVAL.list = yyDollar[1].list @@ -8763,7 +8744,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6206 + // line internal/php5/php5.y:6187 { yyVAL.list = nil @@ -8771,7 +8752,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6215 + // line internal/php5/php5.y:6196 { yyVAL.node = yyDollar[1].node @@ -8779,7 +8760,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6221 + // line internal/php5/php5.y:6202 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8793,7 +8774,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6236 + // line internal/php5/php5.y:6217 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8808,7 +8789,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6249 + // line internal/php5/php5.y:6230 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8823,7 +8804,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6265 + // line internal/php5/php5.y:6246 { yyVAL.node = yyDollar[1].node @@ -8831,7 +8812,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6274 + // line internal/php5/php5.y:6255 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8847,7 +8828,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6288 + // line internal/php5/php5.y:6269 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8863,7 +8844,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6305 + // line internal/php5/php5.y:6286 { yyVAL.node = yyDollar[1].node @@ -8871,7 +8852,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6311 + // line internal/php5/php5.y:6292 { yyVAL.node = yyDollar[1].node @@ -8879,7 +8860,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6317 + // line internal/php5/php5.y:6298 { yyVAL.node = yyDollar[1].node @@ -8887,7 +8868,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6327 + // line internal/php5/php5.y:6308 { yyVAL.node = yyDollar[1].node @@ -8895,7 +8876,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6333 + // line internal/php5/php5.y:6314 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8909,7 +8890,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6345 + // line internal/php5/php5.y:6326 { yyVAL.node = yyDollar[1].node @@ -8917,7 +8898,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6354 + // line internal/php5/php5.y:6335 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8933,7 +8914,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6368 + // line internal/php5/php5.y:6349 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8949,7 +8930,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6382 + // line internal/php5/php5.y:6363 { yyVAL.node = yyDollar[1].node @@ -8957,9 +8938,9 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6392 + // line internal/php5/php5.y:6373 { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position @@ -8968,13 +8949,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6407 + // line internal/php5/php5.y:6387 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8983,7 +8963,6 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) @@ -8991,7 +8970,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6425 + // line internal/php5/php5.y:6404 { yyVAL.node = nil @@ -8999,7 +8978,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6431 + // line internal/php5/php5.y:6410 { yyVAL.node = yyDollar[1].node @@ -9007,7 +8986,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6441 + // line internal/php5/php5.y:6420 { yyVAL.list = yyDollar[1].list @@ -9015,7 +8994,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6447 + // line internal/php5/php5.y:6426 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9027,7 +9006,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6460 + // line internal/php5/php5.y:6439 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9043,7 +9022,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6474 + // line internal/php5/php5.y:6453 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9059,7 +9038,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6488 + // line internal/php5/php5.y:6467 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9071,7 +9050,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6501 + // line internal/php5/php5.y:6480 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9085,7 +9064,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6513 + // line internal/php5/php5.y:6492 { yyVAL.node = yyDollar[2].node @@ -9100,7 +9079,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6529 + // line internal/php5/php5.y:6508 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9110,13 +9089,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6543 + // line internal/php5/php5.y:6521 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9130,13 +9108,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6564 + // line internal/php5/php5.y:6541 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9151,7 +9128,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6577 + // line internal/php5/php5.y:6554 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9163,7 +9140,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6591 + // line internal/php5/php5.y:6568 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9177,7 +9154,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6603 + // line internal/php5/php5.y:6580 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9195,7 +9172,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6619 + // line internal/php5/php5.y:6596 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9203,7 +9180,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6629 + // line internal/php5/php5.y:6606 { yyVAL.list = []ast.Vertex{} @@ -9211,7 +9188,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6635 + // line internal/php5/php5.y:6612 { yyVAL.list = yyDollar[1].list @@ -9228,7 +9205,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6653 + // line internal/php5/php5.y:6630 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9245,7 +9222,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6668 + // line internal/php5/php5.y:6645 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9261,7 +9238,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6682 + // line internal/php5/php5.y:6659 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9277,7 +9254,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6696 + // line internal/php5/php5.y:6673 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9292,7 +9269,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6709 + // line internal/php5/php5.y:6686 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9312,7 +9289,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6727 + // line internal/php5/php5.y:6704 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9330,7 +9307,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6743 + // line internal/php5/php5.y:6720 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9349,7 +9326,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6760 + // line internal/php5/php5.y:6737 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9366,7 +9343,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6778 + // line internal/php5/php5.y:6755 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9374,7 +9351,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6784 + // line internal/php5/php5.y:6761 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9389,7 +9366,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6797 + // line internal/php5/php5.y:6774 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9397,7 +9374,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6803 + // line internal/php5/php5.y:6780 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9412,9 +9389,9 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6819 + // line internal/php5/php5.y:6796 { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position @@ -9423,15 +9400,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6834 + // line internal/php5/php5.y:6810 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} @@ -9441,7 +9417,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) @@ -9449,9 +9424,9 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6852 + // line internal/php5/php5.y:6827 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} fetch := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} @@ -9463,7 +9438,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Hidden) @@ -9471,7 +9445,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6872 + // line internal/php5/php5.y:6846 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9488,7 +9462,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6887 + // line internal/php5/php5.y:6861 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9507,7 +9481,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6904 + // line internal/php5/php5.y:6878 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9528,7 +9502,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6923 + // line internal/php5/php5.y:6897 { yyVAL.node = yyDollar[2].node @@ -9540,7 +9514,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6936 + // line internal/php5/php5.y:6910 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9554,7 +9528,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6948 + // line internal/php5/php5.y:6922 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9573,9 +9547,9 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6965 + // line internal/php5/php5.y:6939 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position @@ -9584,13 +9558,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6983 + // line internal/php5/php5.y:6956 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9606,7 +9579,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6997 + // line internal/php5/php5.y:6970 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9622,7 +9595,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:7011 + // line internal/php5/php5.y:6984 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9638,7 +9611,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7025 + // line internal/php5/php5.y:6998 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9652,7 +9625,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7037 + // line internal/php5/php5.y:7010 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9666,7 +9639,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:7049 + // line internal/php5/php5.y:7022 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9682,7 +9655,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7063 + // line internal/php5/php5.y:7036 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9696,7 +9669,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7075 + // line internal/php5/php5.y:7048 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9710,7 +9683,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7090 + // line internal/php5/php5.y:7063 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9718,7 +9691,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7096 + // line internal/php5/php5.y:7069 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9729,7 +9702,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7108 + // line internal/php5/php5.y:7081 { yyVAL.node = yyDollar[1].node @@ -9737,7 +9710,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7114 + // line internal/php5/php5.y:7087 { yyVAL.node = yyDollar[1].node @@ -9745,7 +9718,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7123 + // line internal/php5/php5.y:7096 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9763,7 +9736,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7139 + // line internal/php5/php5.y:7112 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9781,7 +9754,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7158 + // line internal/php5/php5.y:7131 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9799,7 +9772,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7177 + // line internal/php5/php5.y:7150 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 7b05f37..07a2c3b 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1418,7 +1418,7 @@ catch_statement: } | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} catchNode := &ast.StmtCatch{ast.Node{}, []ast.Vertex{$3}, variable, $7} $$ = append([]ast.Vertex{catchNode}, $9...) @@ -1432,7 +1432,6 @@ catch_statement: yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Hidden) yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Hidden) yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Hidden) @@ -1497,7 +1496,7 @@ non_empty_additional_catches: additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtCatch{ast.Node{}, []ast.Vertex{$3}, variable, $7} @@ -1510,7 +1509,6 @@ additional_catch: yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Hidden) yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Hidden) @@ -2284,7 +2282,7 @@ non_empty_parameter_list: parameter: optional_class_type is_reference is_variadic T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, nil} @@ -2312,7 +2310,6 @@ parameter: yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) } yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) - yylex.(*Parser).addDollarToken(variable) // normalize if $3 == nil { @@ -2329,7 +2326,7 @@ parameter: } | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, $6} @@ -2358,7 +2355,6 @@ parameter: } yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) - yylex.(*Parser).addDollarToken(variable) // normalize if $3 == nil { @@ -2552,7 +2548,7 @@ global_var_list: global_var: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, name} // save position @@ -2561,7 +2557,6 @@ global_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2574,7 +2569,6 @@ global_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2587,7 +2581,6 @@ global_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) @@ -2599,7 +2592,7 @@ global_var: static_var_list: static_var_list ',' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} $$ = append($1, staticVar) @@ -2611,14 +2604,13 @@ static_var_list: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_var_list ',' T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $5} $$ = append($1, staticVar) @@ -2630,7 +2622,6 @@ static_var_list: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Hidden) yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Hidden) @@ -2638,7 +2629,7 @@ static_var_list: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} $$ = []ast.Vertex{staticVar} @@ -2649,14 +2640,13 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $3} $$ = []ast.Vertex{staticVar} @@ -2667,7 +2657,6 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Hidden) @@ -3154,7 +3143,7 @@ member_modifier: class_variable_declaration: class_variable_declaration ',' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} $$ = append($1, property) @@ -3165,7 +3154,6 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).setFreeFloating(property, token.Start, $3.Hidden) @@ -3173,7 +3161,7 @@ class_variable_declaration: } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, $5} $$ = append($1, property) @@ -3185,7 +3173,6 @@ class_variable_declaration: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, $3.Hidden) yylex.(*Parser).setFreeFloating(property, token.Var, $4.Hidden) @@ -3193,7 +3180,7 @@ class_variable_declaration: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} $$ = []ast.Vertex{property} @@ -3204,14 +3191,13 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, $1.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, $3} $$ = []ast.Vertex{property} @@ -3222,7 +3208,6 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(property, token.Start, $2.Hidden) yylex.(*Parser).setFreeFloating(property, token.Var, $2.Hidden) @@ -4592,7 +4577,7 @@ lexical_vars: lexical_var_list: lexical_var_list ',' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($3.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = append($1, variable) @@ -4603,13 +4588,12 @@ lexical_var_list: // save comments yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | lexical_var_list ',' '&' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} $$ = append($1, reference) @@ -4623,13 +4607,12 @@ lexical_var_list: yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = []ast.Vertex{variable} @@ -4639,13 +4622,12 @@ lexical_var_list: // save comments yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($2.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $2.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} $$ = []ast.Vertex{reference} @@ -4658,7 +4640,6 @@ lexical_var_list: // save comments yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6390,7 +6371,7 @@ reference_variable: compound_variable: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, name} // save position @@ -6399,7 +6380,6 @@ compound_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6412,7 +6392,6 @@ compound_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) @@ -6535,7 +6514,6 @@ simple_indirect_reference: // save comments yylex.(*Parser).setFreeFloating(n, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6553,9 +6531,8 @@ simple_indirect_reference: // save comments yylex.(*Parser).setFreeFloating(n, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(n, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($2)) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6817,7 +6794,7 @@ encaps_list: encaps_var: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, name} // save position @@ -6826,13 +6803,12 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} @@ -6842,7 +6818,6 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) @@ -6850,7 +6825,7 @@ encaps_var: } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} fetch := &ast.Identifier{ast.Node{}, $3.Value} $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} @@ -6862,7 +6837,6 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Hidden) @@ -6963,7 +6937,7 @@ encaps_var_offset: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position @@ -6972,7 +6946,6 @@ encaps_var_offset: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 5bef94b..6f4d199 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -486,7 +486,7 @@ func TestPhp5(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -519,7 +519,7 @@ func TestPhp5(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -563,7 +563,7 @@ func TestPhp5(t *testing.T) { EndPos: 27, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -605,7 +605,7 @@ func TestPhp5(t *testing.T) { EndPos: 30, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -638,7 +638,7 @@ func TestPhp5(t *testing.T) { EndPos: 37, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -682,7 +682,7 @@ func TestPhp5(t *testing.T) { EndPos: 46, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -735,7 +735,7 @@ func TestPhp5(t *testing.T) { EndPos: 54, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -768,7 +768,7 @@ func TestPhp5(t *testing.T) { EndPos: 61, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -867,7 +867,7 @@ func TestPhp5(t *testing.T) { EndPos: 77, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -900,7 +900,7 @@ func TestPhp5(t *testing.T) { EndPos: 84, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -944,7 +944,7 @@ func TestPhp5(t *testing.T) { EndPos: 93, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.Identifier{ @@ -997,7 +997,7 @@ func TestPhp5(t *testing.T) { EndPos: 101, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -1030,7 +1030,7 @@ func TestPhp5(t *testing.T) { EndPos: 108, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -1118,7 +1118,7 @@ func TestPhp5(t *testing.T) { EndPos: 123, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -1151,7 +1151,7 @@ func TestPhp5(t *testing.T) { EndPos: 130, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -1233,7 +1233,7 @@ func TestPhp5(t *testing.T) { EndPos: 157, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1322,7 +1322,7 @@ func TestPhp5(t *testing.T) { EndPos: 176, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1437,7 +1437,7 @@ func TestPhp5(t *testing.T) { EndPos: 222, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1526,7 +1526,7 @@ func TestPhp5(t *testing.T) { EndPos: 241, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1618,7 +1618,7 @@ func TestPhp5(t *testing.T) { EndPos: 266, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1707,7 +1707,7 @@ func TestPhp5(t *testing.T) { EndPos: 285, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1788,7 +1788,7 @@ func TestPhp5(t *testing.T) { EndPos: 317, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1877,7 +1877,7 @@ func TestPhp5(t *testing.T) { EndPos: 336, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -2248,7 +2248,7 @@ func TestPhp5(t *testing.T) { EndPos: 703, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, }, @@ -2311,7 +2311,7 @@ func TestPhp5(t *testing.T) { EndPos: 718, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ScalarLnumber{ @@ -2386,7 +2386,7 @@ func TestPhp5(t *testing.T) { EndPos: 736, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ScalarString{ @@ -2461,7 +2461,7 @@ func TestPhp5(t *testing.T) { EndPos: 793, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ScalarString{ @@ -2536,7 +2536,7 @@ func TestPhp5(t *testing.T) { EndPos: 813, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ExprVariable{ @@ -2557,7 +2557,7 @@ func TestPhp5(t *testing.T) { EndPos: 818, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -2601,7 +2601,7 @@ func TestPhp5(t *testing.T) { EndPos: 829, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, &ast.ScalarEncapsedStringPart{ @@ -2633,7 +2633,7 @@ func TestPhp5(t *testing.T) { EndPos: 834, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -2696,7 +2696,7 @@ func TestPhp5(t *testing.T) { EndPos: 849, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.Identifier{ @@ -2911,7 +2911,7 @@ func TestPhp5(t *testing.T) { EndPos: 909, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -2966,7 +2966,7 @@ func TestPhp5(t *testing.T) { EndPos: 929, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3008,7 +3008,7 @@ func TestPhp5(t *testing.T) { EndPos: 950, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3050,7 +3050,7 @@ func TestPhp5(t *testing.T) { EndPos: 966, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -3094,7 +3094,7 @@ func TestPhp5(t *testing.T) { EndPos: 986, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3157,7 +3157,7 @@ func TestPhp5(t *testing.T) { EndPos: 1015, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3199,7 +3199,7 @@ func TestPhp5(t *testing.T) { EndPos: 1031, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -3241,7 +3241,7 @@ func TestPhp5(t *testing.T) { EndPos: 1046, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -4600,7 +4600,7 @@ func TestPhp5(t *testing.T) { EndPos: 1740, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ScalarLnumber{ @@ -4644,7 +4644,7 @@ func TestPhp5(t *testing.T) { EndPos: 1754, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -4686,7 +4686,7 @@ func TestPhp5(t *testing.T) { EndPos: 1765, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Expr: &ast.ScalarLnumber{ @@ -4730,7 +4730,7 @@ func TestPhp5(t *testing.T) { EndPos: 1773, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -4774,7 +4774,7 @@ func TestPhp5(t *testing.T) { EndPos: 1782, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -4805,7 +4805,7 @@ func TestPhp5(t *testing.T) { EndPos: 1788, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -4859,7 +4859,7 @@ func TestPhp5(t *testing.T) { EndPos: 1805, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -4903,7 +4903,7 @@ func TestPhp5(t *testing.T) { EndPos: 1814, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -4947,7 +4947,7 @@ func TestPhp5(t *testing.T) { EndPos: 1841, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -4968,7 +4968,7 @@ func TestPhp5(t *testing.T) { EndPos: 1847, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -5021,7 +5021,7 @@ func TestPhp5(t *testing.T) { EndPos: 1871, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -5063,7 +5063,7 @@ func TestPhp5(t *testing.T) { EndPos: 1889, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -5084,7 +5084,7 @@ func TestPhp5(t *testing.T) { EndPos: 1895, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -5126,7 +5126,7 @@ func TestPhp5(t *testing.T) { EndPos: 1924, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -5147,7 +5147,7 @@ func TestPhp5(t *testing.T) { EndPos: 1930, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprVariable{ @@ -5168,7 +5168,7 @@ func TestPhp5(t *testing.T) { EndPos: 1936, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -5221,7 +5221,7 @@ func TestPhp5(t *testing.T) { EndPos: 1960, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprVariable{ @@ -5242,7 +5242,7 @@ func TestPhp5(t *testing.T) { EndPos: 1966, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -5284,7 +5284,7 @@ func TestPhp5(t *testing.T) { EndPos: 1984, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -5305,7 +5305,7 @@ func TestPhp5(t *testing.T) { EndPos: 1990, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprReference{ @@ -5335,7 +5335,7 @@ func TestPhp5(t *testing.T) { EndPos: 1997, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -5378,7 +5378,7 @@ func TestPhp5(t *testing.T) { EndPos: 2015, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -5399,7 +5399,7 @@ func TestPhp5(t *testing.T) { EndPos: 2021, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprList{ @@ -5439,7 +5439,7 @@ func TestPhp5(t *testing.T) { EndPos: 2032, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -5574,7 +5574,7 @@ func TestPhp5(t *testing.T) { EndPos: 2127, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -5642,7 +5642,7 @@ func TestPhp5(t *testing.T) { EndPos: 2159, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -5686,7 +5686,7 @@ func TestPhp5(t *testing.T) { EndPos: 2172, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -5800,7 +5800,7 @@ func TestPhp5(t *testing.T) { EndPos: 2246, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -5821,7 +5821,7 @@ func TestPhp5(t *testing.T) { EndPos: 2250, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, &ast.ExprVariable{ @@ -5851,7 +5851,7 @@ func TestPhp5(t *testing.T) { EndPos: 2255, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -5979,7 +5979,7 @@ func TestPhp5(t *testing.T) { EndPos: 2291, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6021,7 +6021,7 @@ func TestPhp5(t *testing.T) { EndPos: 2304, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6063,7 +6063,7 @@ func TestPhp5(t *testing.T) { EndPos: 2319, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -6107,7 +6107,7 @@ func TestPhp5(t *testing.T) { EndPos: 2332, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6170,7 +6170,7 @@ func TestPhp5(t *testing.T) { EndPos: 2353, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6212,7 +6212,7 @@ func TestPhp5(t *testing.T) { EndPos: 2368, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -6254,7 +6254,7 @@ func TestPhp5(t *testing.T) { EndPos: 2383, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -6319,7 +6319,7 @@ func TestPhp5(t *testing.T) { EndPos: 2404, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6361,7 +6361,7 @@ func TestPhp5(t *testing.T) { EndPos: 2419, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -6413,7 +6413,7 @@ func TestPhp5(t *testing.T) { EndPos: 2435, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -6791,7 +6791,7 @@ func TestPhp5(t *testing.T) { EndPos: 2628, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -6881,7 +6881,7 @@ func TestPhp5(t *testing.T) { EndPos: 2660, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -6912,7 +6912,7 @@ func TestPhp5(t *testing.T) { EndPos: 2664, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -7013,7 +7013,7 @@ func TestPhp5(t *testing.T) { EndPos: 2700, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarLnumber{ @@ -7055,7 +7055,7 @@ func TestPhp5(t *testing.T) { EndPos: 2708, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -7100,7 +7100,7 @@ func TestPhp5(t *testing.T) { EndPos: 2722, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7131,7 +7131,7 @@ func TestPhp5(t *testing.T) { EndPos: 2726, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -7185,7 +7185,7 @@ func TestPhp5(t *testing.T) { EndPos: 2743, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarLnumber{ @@ -7227,7 +7227,7 @@ func TestPhp5(t *testing.T) { EndPos: 2751, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -7623,7 +7623,7 @@ func TestPhp5(t *testing.T) { EndPos: 2995, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -8424,7 +8424,7 @@ func TestPhp5(t *testing.T) { EndPos: 3287, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -8494,7 +8494,7 @@ func TestPhp5(t *testing.T) { EndPos: 3320, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -8551,7 +8551,7 @@ func TestPhp5(t *testing.T) { EndPos: 3351, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -8621,7 +8621,7 @@ func TestPhp5(t *testing.T) { EndPos: 3384, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -8678,7 +8678,7 @@ func TestPhp5(t *testing.T) { EndPos: 3416, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -8735,7 +8735,7 @@ func TestPhp5(t *testing.T) { EndPos: 3458, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -8805,7 +8805,7 @@ func TestPhp5(t *testing.T) { EndPos: 3491, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -8851,7 +8851,7 @@ func TestPhp5(t *testing.T) { EndPos: 3518, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -8872,7 +8872,7 @@ func TestPhp5(t *testing.T) { EndPos: 3522, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -9626,7 +9626,7 @@ func TestPhp5(t *testing.T) { EndPos: 3738, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -9687,7 +9687,7 @@ func TestPhp5(t *testing.T) { EndPos: 3747, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -9866,7 +9866,7 @@ func TestPhp5(t *testing.T) { EndPos: 3795, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -9941,7 +9941,7 @@ func TestPhp5(t *testing.T) { EndPos: 3814, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10004,7 +10004,7 @@ func TestPhp5(t *testing.T) { EndPos: 3828, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10109,7 +10109,7 @@ func TestPhp5(t *testing.T) { EndPos: 3846, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10153,7 +10153,7 @@ func TestPhp5(t *testing.T) { EndPos: 3854, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10194,7 +10194,7 @@ func TestPhp5(t *testing.T) { EndPos: 3861, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10289,7 +10289,7 @@ func TestPhp5(t *testing.T) { EndPos: 3886, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10330,7 +10330,7 @@ func TestPhp5(t *testing.T) { EndPos: 3899, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10408,7 +10408,7 @@ func TestPhp5(t *testing.T) { EndPos: 3930, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10441,7 +10441,7 @@ func TestPhp5(t *testing.T) { EndPos: 3934, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10474,7 +10474,7 @@ func TestPhp5(t *testing.T) { EndPos: 3943, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, &ast.ExprReference{ @@ -10504,7 +10504,7 @@ func TestPhp5(t *testing.T) { EndPos: 3948, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -10563,7 +10563,7 @@ func TestPhp5(t *testing.T) { EndPos: 3967, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10596,7 +10596,7 @@ func TestPhp5(t *testing.T) { EndPos: 3971, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10638,7 +10638,7 @@ func TestPhp5(t *testing.T) { EndPos: 3981, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -10660,7 +10660,7 @@ func TestPhp5(t *testing.T) { EndPos: 3985, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -10856,7 +10856,7 @@ func TestPhp5(t *testing.T) { EndPos: 4051, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10950,7 +10950,7 @@ func TestPhp5(t *testing.T) { EndPos: 4073, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10991,7 +10991,7 @@ func TestPhp5(t *testing.T) { EndPos: 4084, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11054,7 +11054,7 @@ func TestPhp5(t *testing.T) { EndPos: 4104, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11117,7 +11117,7 @@ func TestPhp5(t *testing.T) { EndPos: 4124, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11255,7 +11255,7 @@ func TestPhp5(t *testing.T) { EndPos: 4155, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11377,7 +11377,7 @@ func TestPhp5(t *testing.T) { EndPos: 4176, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -11428,7 +11428,7 @@ func TestPhp5(t *testing.T) { EndPos: 4185, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11473,7 +11473,7 @@ func TestPhp5(t *testing.T) { EndPos: 4193, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11514,7 +11514,7 @@ func TestPhp5(t *testing.T) { EndPos: 4201, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11555,7 +11555,7 @@ func TestPhp5(t *testing.T) { EndPos: 4211, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11596,7 +11596,7 @@ func TestPhp5(t *testing.T) { EndPos: 4219, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11637,7 +11637,7 @@ func TestPhp5(t *testing.T) { EndPos: 4234, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11678,7 +11678,7 @@ func TestPhp5(t *testing.T) { EndPos: 4253, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11719,7 +11719,7 @@ func TestPhp5(t *testing.T) { EndPos: 4267, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11760,7 +11760,7 @@ func TestPhp5(t *testing.T) { EndPos: 4286, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11801,7 +11801,7 @@ func TestPhp5(t *testing.T) { EndPos: 4293, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameName{ @@ -11865,7 +11865,7 @@ func TestPhp5(t *testing.T) { EndPos: 4314, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameRelative{ @@ -11929,7 +11929,7 @@ func TestPhp5(t *testing.T) { EndPos: 4345, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameFullyQualified{ @@ -11994,7 +11994,7 @@ func TestPhp5(t *testing.T) { EndPos: 4374, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -12015,7 +12015,7 @@ func TestPhp5(t *testing.T) { EndPos: 4378, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12123,7 +12123,7 @@ func TestPhp5(t *testing.T) { EndPos: 4408, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12183,7 +12183,7 @@ func TestPhp5(t *testing.T) { EndPos: 4419, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12214,7 +12214,7 @@ func TestPhp5(t *testing.T) { EndPos: 4423, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12238,7 +12238,7 @@ func TestPhp5(t *testing.T) { EndPos: 4429, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12307,7 +12307,7 @@ func TestPhp5(t *testing.T) { EndPos: 4440, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12332,7 +12332,7 @@ func TestPhp5(t *testing.T) { EndPos: 4448, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12411,7 +12411,7 @@ func TestPhp5(t *testing.T) { EndPos: 4464, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12438,7 +12438,7 @@ func TestPhp5(t *testing.T) { EndPos: 4471, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12479,7 +12479,7 @@ func TestPhp5(t *testing.T) { EndPos: 4478, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Method: &ast.Identifier{ @@ -12690,7 +12690,7 @@ func TestPhp5(t *testing.T) { EndPos: 4545, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12731,7 +12731,7 @@ func TestPhp5(t *testing.T) { EndPos: 4552, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -12792,7 +12792,7 @@ func TestPhp5(t *testing.T) { EndPos: 4563, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -12892,7 +12892,7 @@ func TestPhp5(t *testing.T) { EndPos: 4577, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -13020,7 +13020,7 @@ func TestPhp5(t *testing.T) { EndPos: 4609, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Method: &ast.Identifier{ @@ -13118,7 +13118,7 @@ func TestPhp5(t *testing.T) { EndPos: 4633, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13329,7 +13329,7 @@ func TestPhp5(t *testing.T) { EndPos: 4676, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -13589,7 +13589,7 @@ func TestPhp5(t *testing.T) { EndPos: 4745, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -13640,7 +13640,7 @@ func TestPhp5(t *testing.T) { EndPos: 4755, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.ExprVariable{ @@ -13661,7 +13661,7 @@ func TestPhp5(t *testing.T) { EndPos: 4761, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -13735,7 +13735,7 @@ func TestPhp5(t *testing.T) { EndPos: 4776, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -13799,7 +13799,7 @@ func TestPhp5(t *testing.T) { EndPos: 4799, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -13863,7 +13863,7 @@ func TestPhp5(t *testing.T) { EndPos: 4813, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -13904,7 +13904,7 @@ func TestPhp5(t *testing.T) { EndPos: 4819, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -13925,7 +13925,7 @@ func TestPhp5(t *testing.T) { EndPos: 4824, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -13946,7 +13946,7 @@ func TestPhp5(t *testing.T) { EndPos: 4829, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -13987,7 +13987,7 @@ func TestPhp5(t *testing.T) { EndPos: 4835, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfFalse: &ast.ExprVariable{ @@ -14008,7 +14008,7 @@ func TestPhp5(t *testing.T) { EndPos: 4842, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -14049,7 +14049,7 @@ func TestPhp5(t *testing.T) { EndPos: 4848, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprTernary{ @@ -14079,7 +14079,7 @@ func TestPhp5(t *testing.T) { EndPos: 4853, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfTrue: &ast.ExprVariable{ @@ -14100,7 +14100,7 @@ func TestPhp5(t *testing.T) { EndPos: 4858, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, IfFalse: &ast.ExprVariable{ @@ -14121,7 +14121,7 @@ func TestPhp5(t *testing.T) { EndPos: 4863, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -14143,7 +14143,7 @@ func TestPhp5(t *testing.T) { EndPos: 4868, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -14193,7 +14193,7 @@ func TestPhp5(t *testing.T) { EndPos: 4874, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -14214,7 +14214,7 @@ func TestPhp5(t *testing.T) { EndPos: 4879, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -14235,7 +14235,7 @@ func TestPhp5(t *testing.T) { EndPos: 4884, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -14257,7 +14257,7 @@ func TestPhp5(t *testing.T) { EndPos: 4889, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, IfFalse: &ast.ExprVariable{ @@ -14278,7 +14278,7 @@ func TestPhp5(t *testing.T) { EndPos: 4894, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -14319,7 +14319,7 @@ func TestPhp5(t *testing.T) { EndPos: 4901, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14360,7 +14360,7 @@ func TestPhp5(t *testing.T) { EndPos: 4908, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14401,7 +14401,7 @@ func TestPhp5(t *testing.T) { EndPos: 4915, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14451,7 +14451,7 @@ func TestPhp5(t *testing.T) { EndPos: 4923, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14513,7 +14513,7 @@ func TestPhp5(t *testing.T) { EndPos: 4944, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14554,7 +14554,7 @@ func TestPhp5(t *testing.T) { EndPos: 4956, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Value: &ast.ExprVariable{ @@ -14575,7 +14575,7 @@ func TestPhp5(t *testing.T) { EndPos: 4962, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -14680,7 +14680,7 @@ func TestPhp5(t *testing.T) { EndPos: 4994, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Value: &ast.ExprClassConstFetch{ @@ -14765,7 +14765,7 @@ func TestPhp5(t *testing.T) { EndPos: 5024, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14806,7 +14806,7 @@ func TestPhp5(t *testing.T) { EndPos: 5039, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14847,7 +14847,7 @@ func TestPhp5(t *testing.T) { EndPos: 5051, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14888,7 +14888,7 @@ func TestPhp5(t *testing.T) { EndPos: 5065, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14929,7 +14929,7 @@ func TestPhp5(t *testing.T) { EndPos: 5078, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14970,7 +14970,7 @@ func TestPhp5(t *testing.T) { EndPos: 5093, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15011,7 +15011,7 @@ func TestPhp5(t *testing.T) { EndPos: 5104, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15052,7 +15052,7 @@ func TestPhp5(t *testing.T) { EndPos: 5118, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15093,7 +15093,7 @@ func TestPhp5(t *testing.T) { EndPos: 5132, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15134,7 +15134,7 @@ func TestPhp5(t *testing.T) { EndPos: 5145, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15175,7 +15175,7 @@ func TestPhp5(t *testing.T) { EndPos: 5152, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15196,7 +15196,7 @@ func TestPhp5(t *testing.T) { EndPos: 5157, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15237,7 +15237,7 @@ func TestPhp5(t *testing.T) { EndPos: 5163, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15258,7 +15258,7 @@ func TestPhp5(t *testing.T) { EndPos: 5168, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15299,7 +15299,7 @@ func TestPhp5(t *testing.T) { EndPos: 5174, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15320,7 +15320,7 @@ func TestPhp5(t *testing.T) { EndPos: 5179, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15361,7 +15361,7 @@ func TestPhp5(t *testing.T) { EndPos: 5185, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15382,7 +15382,7 @@ func TestPhp5(t *testing.T) { EndPos: 5191, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15423,7 +15423,7 @@ func TestPhp5(t *testing.T) { EndPos: 5197, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15444,7 +15444,7 @@ func TestPhp5(t *testing.T) { EndPos: 5203, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15485,7 +15485,7 @@ func TestPhp5(t *testing.T) { EndPos: 5209, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15506,7 +15506,7 @@ func TestPhp5(t *testing.T) { EndPos: 5214, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15547,7 +15547,7 @@ func TestPhp5(t *testing.T) { EndPos: 5220, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15568,7 +15568,7 @@ func TestPhp5(t *testing.T) { EndPos: 5225, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15609,7 +15609,7 @@ func TestPhp5(t *testing.T) { EndPos: 5231, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15630,7 +15630,7 @@ func TestPhp5(t *testing.T) { EndPos: 5237, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15671,7 +15671,7 @@ func TestPhp5(t *testing.T) { EndPos: 5243, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15692,7 +15692,7 @@ func TestPhp5(t *testing.T) { EndPos: 5249, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15733,7 +15733,7 @@ func TestPhp5(t *testing.T) { EndPos: 5255, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15754,7 +15754,7 @@ func TestPhp5(t *testing.T) { EndPos: 5260, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15795,7 +15795,7 @@ func TestPhp5(t *testing.T) { EndPos: 5266, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15816,7 +15816,7 @@ func TestPhp5(t *testing.T) { EndPos: 5273, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15857,7 +15857,7 @@ func TestPhp5(t *testing.T) { EndPos: 5279, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15878,7 +15878,7 @@ func TestPhp5(t *testing.T) { EndPos: 5286, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15919,7 +15919,7 @@ func TestPhp5(t *testing.T) { EndPos: 5292, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15940,7 +15940,7 @@ func TestPhp5(t *testing.T) { EndPos: 5298, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15981,7 +15981,7 @@ func TestPhp5(t *testing.T) { EndPos: 5304, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16002,7 +16002,7 @@ func TestPhp5(t *testing.T) { EndPos: 5311, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16043,7 +16043,7 @@ func TestPhp5(t *testing.T) { EndPos: 5317, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16064,7 +16064,7 @@ func TestPhp5(t *testing.T) { EndPos: 5322, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16105,7 +16105,7 @@ func TestPhp5(t *testing.T) { EndPos: 5328, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16126,7 +16126,7 @@ func TestPhp5(t *testing.T) { EndPos: 5333, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16167,7 +16167,7 @@ func TestPhp5(t *testing.T) { EndPos: 5339, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16188,7 +16188,7 @@ func TestPhp5(t *testing.T) { EndPos: 5344, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16229,7 +16229,7 @@ func TestPhp5(t *testing.T) { EndPos: 5350, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16250,7 +16250,7 @@ func TestPhp5(t *testing.T) { EndPos: 5356, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16291,7 +16291,7 @@ func TestPhp5(t *testing.T) { EndPos: 5362, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16312,7 +16312,7 @@ func TestPhp5(t *testing.T) { EndPos: 5369, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16353,7 +16353,7 @@ func TestPhp5(t *testing.T) { EndPos: 5375, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16374,7 +16374,7 @@ func TestPhp5(t *testing.T) { EndPos: 5380, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16415,7 +16415,7 @@ func TestPhp5(t *testing.T) { EndPos: 5386, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16436,7 +16436,7 @@ func TestPhp5(t *testing.T) { EndPos: 5392, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16477,7 +16477,7 @@ func TestPhp5(t *testing.T) { EndPos: 5398, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16498,7 +16498,7 @@ func TestPhp5(t *testing.T) { EndPos: 5404, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16539,7 +16539,7 @@ func TestPhp5(t *testing.T) { EndPos: 5410, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16560,7 +16560,7 @@ func TestPhp5(t *testing.T) { EndPos: 5416, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16601,7 +16601,7 @@ func TestPhp5(t *testing.T) { EndPos: 5422, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16622,7 +16622,7 @@ func TestPhp5(t *testing.T) { EndPos: 5428, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16663,7 +16663,7 @@ func TestPhp5(t *testing.T) { EndPos: 5434, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16684,7 +16684,7 @@ func TestPhp5(t *testing.T) { EndPos: 5439, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16725,7 +16725,7 @@ func TestPhp5(t *testing.T) { EndPos: 5446, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -16746,7 +16746,7 @@ func TestPhp5(t *testing.T) { EndPos: 5452, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16787,7 +16787,7 @@ func TestPhp5(t *testing.T) { EndPos: 5458, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprNew{ @@ -16861,7 +16861,7 @@ func TestPhp5(t *testing.T) { EndPos: 5475, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprNew{ @@ -16935,7 +16935,7 @@ func TestPhp5(t *testing.T) { EndPos: 5489, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16980,7 +16980,7 @@ func TestPhp5(t *testing.T) { EndPos: 5496, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17001,7 +17001,7 @@ func TestPhp5(t *testing.T) { EndPos: 5501, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17042,7 +17042,7 @@ func TestPhp5(t *testing.T) { EndPos: 5507, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17063,7 +17063,7 @@ func TestPhp5(t *testing.T) { EndPos: 5513, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17104,7 +17104,7 @@ func TestPhp5(t *testing.T) { EndPos: 5519, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17125,7 +17125,7 @@ func TestPhp5(t *testing.T) { EndPos: 5525, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17166,7 +17166,7 @@ func TestPhp5(t *testing.T) { EndPos: 5531, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17187,7 +17187,7 @@ func TestPhp5(t *testing.T) { EndPos: 5537, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17228,7 +17228,7 @@ func TestPhp5(t *testing.T) { EndPos: 5543, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17249,7 +17249,7 @@ func TestPhp5(t *testing.T) { EndPos: 5549, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17290,7 +17290,7 @@ func TestPhp5(t *testing.T) { EndPos: 5555, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17311,7 +17311,7 @@ func TestPhp5(t *testing.T) { EndPos: 5561, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17352,7 +17352,7 @@ func TestPhp5(t *testing.T) { EndPos: 5567, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17373,7 +17373,7 @@ func TestPhp5(t *testing.T) { EndPos: 5573, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17414,7 +17414,7 @@ func TestPhp5(t *testing.T) { EndPos: 5579, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17435,7 +17435,7 @@ func TestPhp5(t *testing.T) { EndPos: 5585, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17476,7 +17476,7 @@ func TestPhp5(t *testing.T) { EndPos: 5591, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17497,7 +17497,7 @@ func TestPhp5(t *testing.T) { EndPos: 5597, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17538,7 +17538,7 @@ func TestPhp5(t *testing.T) { EndPos: 5603, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17559,7 +17559,7 @@ func TestPhp5(t *testing.T) { EndPos: 5609, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17600,7 +17600,7 @@ func TestPhp5(t *testing.T) { EndPos: 5615, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17621,7 +17621,7 @@ func TestPhp5(t *testing.T) { EndPos: 5622, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17662,7 +17662,7 @@ func TestPhp5(t *testing.T) { EndPos: 5628, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17683,7 +17683,7 @@ func TestPhp5(t *testing.T) { EndPos: 5635, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17724,7 +17724,7 @@ func TestPhp5(t *testing.T) { EndPos: 5641, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17745,7 +17745,7 @@ func TestPhp5(t *testing.T) { EndPos: 5648, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18399,7 +18399,7 @@ func TestPhp5(t *testing.T) { EndPos: 5813, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, }, @@ -18449,7 +18449,7 @@ func TestPhp5(t *testing.T) { EndPos: 5825, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.ExprVariable{ @@ -18470,7 +18470,7 @@ func TestPhp5(t *testing.T) { EndPos: 5831, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -18530,7 +18530,7 @@ func TestPhp5(t *testing.T) { EndPos: 5841, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -18640,7 +18640,7 @@ func TestPhp5(t *testing.T) { EndPos: 5857, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -18682,7 +18682,7 @@ func TestPhp5(t *testing.T) { EndPos: 5863, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprConstFetch{ @@ -18738,7 +18738,7 @@ func TestPhp5(t *testing.T) { EndPos: 5876, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -18805,7 +18805,7 @@ func TestPhp5(t *testing.T) { EndPos: 5892, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprArrayDimFetch{ @@ -18902,7 +18902,7 @@ func TestPhp5(t *testing.T) { EndPos: 5915, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBooleanNot{ @@ -18966,7 +18966,7 @@ func TestPhp5(t *testing.T) { EndPos: 5933, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBitwiseNot{ @@ -19030,7 +19030,7 @@ func TestPhp5(t *testing.T) { EndPos: 5951, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprUnaryPlus{ @@ -19094,7 +19094,7 @@ func TestPhp5(t *testing.T) { EndPos: 5969, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprUnaryMinus{ @@ -19158,7 +19158,7 @@ func TestPhp5(t *testing.T) { EndPos: 5987, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarLnumber{ @@ -19212,7 +19212,7 @@ func TestPhp5(t *testing.T) { EndPos: 6006, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprTernary{ @@ -19287,7 +19287,7 @@ func TestPhp5(t *testing.T) { EndPos: 6028, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprTernary{ @@ -19373,7 +19373,7 @@ func TestPhp5(t *testing.T) { EndPos: 6053, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryBitwiseAnd{ @@ -19448,7 +19448,7 @@ func TestPhp5(t *testing.T) { EndPos: 6074, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryBitwiseOr{ @@ -19523,7 +19523,7 @@ func TestPhp5(t *testing.T) { EndPos: 6095, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryBitwiseXor{ @@ -19598,7 +19598,7 @@ func TestPhp5(t *testing.T) { EndPos: 6116, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryBooleanAnd{ @@ -19673,7 +19673,7 @@ func TestPhp5(t *testing.T) { EndPos: 6138, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryBooleanOr{ @@ -19748,7 +19748,7 @@ func TestPhp5(t *testing.T) { EndPos: 6160, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryConcat{ @@ -19823,7 +19823,7 @@ func TestPhp5(t *testing.T) { EndPos: 6181, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryDiv{ @@ -19898,7 +19898,7 @@ func TestPhp5(t *testing.T) { EndPos: 6202, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryEqual{ @@ -19973,7 +19973,7 @@ func TestPhp5(t *testing.T) { EndPos: 6224, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryGreaterOrEqual{ @@ -20048,7 +20048,7 @@ func TestPhp5(t *testing.T) { EndPos: 6246, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryGreater{ @@ -20123,7 +20123,7 @@ func TestPhp5(t *testing.T) { EndPos: 6267, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryIdentical{ @@ -20198,7 +20198,7 @@ func TestPhp5(t *testing.T) { EndPos: 6290, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryLogicalAnd{ @@ -20273,7 +20273,7 @@ func TestPhp5(t *testing.T) { EndPos: 6313, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryLogicalOr{ @@ -20348,7 +20348,7 @@ func TestPhp5(t *testing.T) { EndPos: 6335, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryLogicalXor{ @@ -20423,7 +20423,7 @@ func TestPhp5(t *testing.T) { EndPos: 6358, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryMinus{ @@ -20498,7 +20498,7 @@ func TestPhp5(t *testing.T) { EndPos: 6379, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryMod{ @@ -20573,7 +20573,7 @@ func TestPhp5(t *testing.T) { EndPos: 6400, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryMul{ @@ -20648,7 +20648,7 @@ func TestPhp5(t *testing.T) { EndPos: 6421, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryNotEqual{ @@ -20723,7 +20723,7 @@ func TestPhp5(t *testing.T) { EndPos: 6443, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryNotIdentical{ @@ -20798,7 +20798,7 @@ func TestPhp5(t *testing.T) { EndPos: 6466, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryPlus{ @@ -20873,7 +20873,7 @@ func TestPhp5(t *testing.T) { EndPos: 6487, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryPow{ @@ -20948,7 +20948,7 @@ func TestPhp5(t *testing.T) { EndPos: 6509, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryShiftLeft{ @@ -21023,7 +21023,7 @@ func TestPhp5(t *testing.T) { EndPos: 6531, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinaryShiftRight{ @@ -21098,7 +21098,7 @@ func TestPhp5(t *testing.T) { EndPos: 6553, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinarySmallerOrEqual{ @@ -21173,7 +21173,7 @@ func TestPhp5(t *testing.T) { EndPos: 6575, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprBinarySmaller{ @@ -21248,7 +21248,7 @@ func TestPhp5(t *testing.T) { EndPos: 6596, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprClassConstFetch{ @@ -21335,7 +21335,7 @@ func TestPhp5(t *testing.T) { EndPos: 6620, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprClassConstFetch{ @@ -21422,7 +21422,7 @@ func TestPhp5(t *testing.T) { EndPos: 6646, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarMagicConstant{ @@ -21476,7 +21476,7 @@ func TestPhp5(t *testing.T) { EndPos: 6671, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprConstFetch{ @@ -21552,7 +21552,7 @@ func TestPhp5(t *testing.T) { EndPos: 6690, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprConstFetch{ @@ -21628,7 +21628,7 @@ func TestPhp5(t *testing.T) { EndPos: 6719, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprConstFetch{ @@ -21704,7 +21704,7 @@ func TestPhp5(t *testing.T) { EndPos: 6739, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprArray{ @@ -21757,7 +21757,7 @@ func TestPhp5(t *testing.T) { EndPos: 6762, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprArray{ @@ -21865,7 +21865,7 @@ func TestPhp5(t *testing.T) { EndPos: 6794, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprArrayDimFetch{ @@ -22067,7 +22067,7 @@ func TestPhp5(t *testing.T) { EndPos: 6844, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -22109,7 +22109,7 @@ func TestPhp5(t *testing.T) { EndPos: 6853, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -22178,7 +22178,7 @@ func TestPhp5(t *testing.T) { EndPos: 6863, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -22253,7 +22253,7 @@ func TestPhp5(t *testing.T) { EndPos: 6877, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ExprVariable{ @@ -22274,7 +22274,7 @@ func TestPhp5(t *testing.T) { EndPos: 6880, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22315,7 +22315,7 @@ func TestPhp5(t *testing.T) { EndPos: 6889, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -22356,7 +22356,7 @@ func TestPhp5(t *testing.T) { EndPos: 6898, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.ExprVariable{ @@ -22377,7 +22377,7 @@ func TestPhp5(t *testing.T) { EndPos: 6905, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -22428,7 +22428,7 @@ func TestPhp5(t *testing.T) { EndPos: 6916, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ConstantName: &ast.Identifier{ @@ -22768,7 +22768,7 @@ CAD; EndPos: 85, }, }, - Value: []byte("world"), + Value: []byte("$world"), }, }, &ast.ScalarEncapsedStringPart{ diff --git a/internal/php7/parser.go b/internal/php7/parser.go index c219232..7426278 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -62,10 +62,6 @@ func lastNode(nn []ast.Vertex) ast.Vertex { return nn[len(nn)-1] } -func isDollar(r rune) bool { - return r == '$' -} - func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { if p.withTokens == false { return @@ -109,19 +105,6 @@ func (p *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { } } -func (p *Parser) addDollarToken(v ast.Vertex) { - if p.withTokens == false { - return - } - - p.setFreeFloating(v, token.Dollar, []token.Token{ - { - ID: token.ID('$'), - Value: []byte("$"), - }, - }) -} - func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { if p.withTokens == false { return diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index a7d2ced..05cdefc 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -51,7 +51,7 @@ func TestIdentifier(t *testing.T) { EndPos: 7, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, }, @@ -167,7 +167,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -200,7 +200,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 19, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -244,7 +244,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 28, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -286,7 +286,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 31, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -319,7 +319,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 38, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -363,7 +363,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 47, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -416,7 +416,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 55, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -449,7 +449,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 62, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -548,7 +548,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 78, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -581,7 +581,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 85, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -625,7 +625,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 94, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.Identifier{ @@ -678,7 +678,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 102, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -711,7 +711,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 109, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -799,7 +799,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 124, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -832,7 +832,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 131, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -906,7 +906,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 174, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -939,7 +939,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 181, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -1061,7 +1061,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 28, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1150,7 +1150,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 47, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1275,7 +1275,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 94, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1364,7 +1364,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 113, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1466,7 +1466,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 139, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1555,7 +1555,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 158, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1646,7 +1646,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 191, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1735,7 +1735,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 210, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -2068,7 +2068,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { EndPos: 13, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, }, @@ -2145,7 +2145,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -2222,7 +2222,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { EndPos: 13, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, &ast.ScalarEncapsedStringPart{ @@ -2310,7 +2310,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndPos: 7, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -2331,7 +2331,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -2417,7 +2417,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { EndPos: 13, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.Identifier{ @@ -2701,7 +2701,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { EndPos: 14, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -2804,7 +2804,7 @@ LBL; EndPos: 19, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, &ast.ScalarEncapsedStringPart{ @@ -2896,7 +2896,7 @@ LBL; EndPos: 21, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, &ast.ScalarEncapsedStringPart{ @@ -3711,7 +3711,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3780,7 +3780,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3822,7 +3822,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: 27, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -3893,7 +3893,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3985,7 +3985,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -4027,7 +4027,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 27, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -4069,7 +4069,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 42, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -6209,7 +6209,7 @@ func TestStmtEcho(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ScalarLnumber{ @@ -6276,7 +6276,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -6385,7 +6385,7 @@ func TestStmtFor(t *testing.T) { EndPos: 9, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Expr: &ast.ScalarLnumber{ @@ -6429,7 +6429,7 @@ func TestStmtFor(t *testing.T) { EndPos: 17, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -6473,7 +6473,7 @@ func TestStmtFor(t *testing.T) { EndPos: 26, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -6504,7 +6504,7 @@ func TestStmtFor(t *testing.T) { EndPos: 32, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -6581,7 +6581,7 @@ func TestStmtFor_Alt(t *testing.T) { EndPos: 11, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -6625,7 +6625,7 @@ func TestStmtFor_Alt(t *testing.T) { EndPos: 20, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -6692,7 +6692,7 @@ func TestStmtForeach(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -6713,7 +6713,7 @@ func TestStmtForeach(t *testing.T) { EndPos: 20, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6789,7 +6789,7 @@ func TestStmtForeach_Expr(t *testing.T) { EndPos: 20, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6854,7 +6854,7 @@ func TestStmtForeach_Alt(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -6875,7 +6875,7 @@ func TestStmtForeach_Alt(t *testing.T) { EndPos: 20, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6940,7 +6940,7 @@ func TestStmtForeach_WithKey(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6961,7 +6961,7 @@ func TestStmtForeach_WithKey(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprVariable{ @@ -6982,7 +6982,7 @@ func TestStmtForeach_WithKey(t *testing.T) { EndPos: 26, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -7058,7 +7058,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprVariable{ @@ -7079,7 +7079,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { EndPos: 26, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -7144,7 +7144,7 @@ func TestStmtForeach_WithRef(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -7165,7 +7165,7 @@ func TestStmtForeach_WithRef(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprReference{ @@ -7195,7 +7195,7 @@ func TestStmtForeach_WithRef(t *testing.T) { EndPos: 27, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -7261,7 +7261,7 @@ func TestStmtForeach_WithList(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -7282,7 +7282,7 @@ func TestStmtForeach_WithList(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprList{ @@ -7322,7 +7322,7 @@ func TestStmtForeach_WithList(t *testing.T) { EndPos: 31, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -7528,7 +7528,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndPos: 24, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7572,7 +7572,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndPos: 37, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -7605,7 +7605,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndPos: 49, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7799,7 +7799,7 @@ func TestStmtGlobal(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7855,7 +7855,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -7876,7 +7876,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 16, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, &ast.ExprVariable{ @@ -7906,7 +7906,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 21, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -8113,7 +8113,7 @@ func TestStmtIf(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -8178,7 +8178,7 @@ func TestStmtIf_ElseIf(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -8220,7 +8220,7 @@ func TestStmtIf_ElseIf(t *testing.T) { EndPos: 24, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -8287,7 +8287,7 @@ func TestStmtIf_Else(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -8373,7 +8373,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -8415,7 +8415,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndPos: 24, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -8457,7 +8457,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndPos: 39, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -8545,7 +8545,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -8587,7 +8587,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndPos: 24, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -8639,7 +8639,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndPos: 40, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -9190,7 +9190,7 @@ func TestStmtProperty(t *testing.T) { EndPos: 20, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -9303,7 +9303,7 @@ func TestStmtProperty_Properties(t *testing.T) { EndPos: 30, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -9334,7 +9334,7 @@ func TestStmtProperty_Properties(t *testing.T) { EndPos: 34, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -9458,7 +9458,7 @@ func TestStmtProperty_Properties2(t *testing.T) { EndPos: 30, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarLnumber{ @@ -9500,7 +9500,7 @@ func TestStmtProperty_Properties2(t *testing.T) { EndPos: 38, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -9625,7 +9625,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { EndPos: 24, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -9693,7 +9693,7 @@ func TestStmtStaticVar(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -9759,7 +9759,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -9790,7 +9790,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { EndPos: 16, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -9867,7 +9867,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ScalarLnumber{ @@ -9909,7 +9909,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { EndPos: 20, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10441,7 +10441,7 @@ func TestStmtThrow(t *testing.T) { EndPos: 11, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -11544,7 +11544,7 @@ func TestStmtTry_TryCatch(t *testing.T) { EndPos: 32, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11662,7 +11662,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { EndPos: 49, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11757,7 +11757,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 32, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11814,7 +11814,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 63, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -11909,7 +11909,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { EndPos: 32, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -12013,7 +12013,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 29, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -12070,7 +12070,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 61, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -12127,7 +12127,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 103, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -12185,7 +12185,7 @@ func TestStmtUnset(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12241,7 +12241,7 @@ func TestStmtUnset_Vars(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -12262,7 +12262,7 @@ func TestStmtUnset_Vars(t *testing.T) { EndPos: 15, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12318,7 +12318,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -12339,7 +12339,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { EndPos: 15, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -14220,7 +14220,7 @@ func TestExprArrayDimFetch(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -14304,7 +14304,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -14552,7 +14552,7 @@ func TestExprArray_Items(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -14631,7 +14631,7 @@ func TestExprArray_ItemUnpack(t *testing.T) { EndPos: 14, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -14699,7 +14699,7 @@ func TestExprArrowFunction(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14788,7 +14788,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { EndPos: 22, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14852,7 +14852,7 @@ func TestExprBitwiseNot(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14916,7 +14916,7 @@ func TestExprBooleanNot(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15122,7 +15122,7 @@ func TestExprClone_Brackets(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15186,7 +15186,7 @@ func TestExprClone(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15310,7 +15310,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15343,7 +15343,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15376,7 +15376,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 27, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, &ast.ExprReference{ @@ -15406,7 +15406,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 32, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -15488,7 +15488,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15521,7 +15521,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15563,7 +15563,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 28, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -15585,7 +15585,7 @@ func TestExprClosure_Use2(t *testing.T) { EndPos: 32, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -15919,7 +15919,7 @@ func TestExprEmpty(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15983,7 +15983,7 @@ func TestExprErrorSuppress(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16047,7 +16047,7 @@ func TestExprEval(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16200,7 +16200,7 @@ func TestExprExit_Expr(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16353,7 +16353,7 @@ func TestExprDie_Expr(t *testing.T) { EndPos: 9, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16670,7 +16670,7 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 7, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -16721,7 +16721,7 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 16, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16842,7 +16842,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndPos: 12, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Right: &ast.ScalarLnumber{ @@ -16921,7 +16921,7 @@ func TestExprPostDec(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -16985,7 +16985,7 @@ func TestExprPostInc(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17049,7 +17049,7 @@ func TestExprPreDec(t *testing.T) { EndPos: 7, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17113,7 +17113,7 @@ func TestExprPreInc(t *testing.T) { EndPos: 7, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17177,7 +17177,7 @@ func TestExprInclude(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17241,7 +17241,7 @@ func TestExprInclude_Once(t *testing.T) { EndPos: 18, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17305,7 +17305,7 @@ func TestExprRequire(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17369,7 +17369,7 @@ func TestExprRequire_Once(t *testing.T) { EndPos: 18, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17433,7 +17433,7 @@ func TestExprInstanceOf(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameName{ @@ -17520,7 +17520,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameRelative{ @@ -17607,7 +17607,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameFullyQualified{ @@ -17695,7 +17695,7 @@ func TestExprIsset(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17761,7 +17761,7 @@ func TestExprIsset_Variables(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -17782,7 +17782,7 @@ func TestExprIsset_Variables(t *testing.T) { EndPos: 15, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17858,7 +17858,7 @@ func TestExprList_Empty(t *testing.T) { EndPos: 14, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17941,7 +17941,7 @@ func TestExprList(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -17965,7 +17965,7 @@ func TestExprList(t *testing.T) { EndPos: 16, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18057,7 +18057,7 @@ func TestExprList_ArrayIndex(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18082,7 +18082,7 @@ func TestExprList_ArrayIndex(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18184,7 +18184,7 @@ func TestExprList_List(t *testing.T) { EndPos: 15, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18211,7 +18211,7 @@ func TestExprList_List(t *testing.T) { EndPos: 22, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18295,7 +18295,7 @@ func TestExprList_EmptyItem(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18319,7 +18319,7 @@ func TestExprList_EmptyItem(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18404,7 +18404,7 @@ func TestExprList_EmptyItems(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18429,7 +18429,7 @@ func TestExprList_EmptyItems(t *testing.T) { EndPos: 22, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18493,7 +18493,7 @@ func TestExprMethodCall(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Method: &ast.Identifier{ @@ -18826,7 +18826,7 @@ func TestExprNew_Anonymous(t *testing.T) { EndPos: 16, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18859,7 +18859,7 @@ func TestExprNew_Anonymous(t *testing.T) { EndPos: 23, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18928,7 +18928,7 @@ func TestExprPrint(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18992,7 +18992,7 @@ func TestExprPropertyFetch(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -19059,7 +19059,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -19080,7 +19080,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { EndPos: 20, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprReference{ @@ -19110,7 +19110,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { EndPos: 27, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -19197,7 +19197,7 @@ func TestExprShellExec(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -19423,7 +19423,7 @@ func TestExprShortArray_Items(t *testing.T) { EndPos: 13, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19510,7 +19510,7 @@ func TestExprShortList(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -19534,7 +19534,7 @@ func TestExprShortList(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19626,7 +19626,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -19651,7 +19651,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { EndPos: 14, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19753,7 +19753,7 @@ func TestExprShortList_List(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -19780,7 +19780,7 @@ func TestExprShortList_List(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -20128,7 +20128,7 @@ func TestExprStaticCall_Var(t *testing.T) { EndPos: 12, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -20202,7 +20202,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { EndPos: 7, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.ExprVariable{ @@ -20223,7 +20223,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { EndPos: 13, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -20320,7 +20320,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndPos: 12, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -20407,7 +20407,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { EndPos: 22, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -20494,7 +20494,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { EndPos: 13, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -20558,7 +20558,7 @@ func TestExprTernary(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -20579,7 +20579,7 @@ func TestExprTernary(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -20600,7 +20600,7 @@ func TestExprTernary(t *testing.T) { EndPos: 15, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -20664,7 +20664,7 @@ func TestExprTernary_Simple(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfFalse: &ast.ExprVariable{ @@ -20685,7 +20685,7 @@ func TestExprTernary_Simple(t *testing.T) { EndPos: 12, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -20749,7 +20749,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprTernary{ @@ -20779,7 +20779,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfTrue: &ast.ExprVariable{ @@ -20800,7 +20800,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 15, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, IfFalse: &ast.ExprVariable{ @@ -20821,7 +20821,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 20, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -20843,7 +20843,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndPos: 25, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -20916,7 +20916,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -20937,7 +20937,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -20958,7 +20958,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 15, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -20980,7 +20980,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 20, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, IfFalse: &ast.ExprVariable{ @@ -21001,7 +21001,7 @@ func TestExprTernary_NestedCond(t *testing.T) { EndPos: 25, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -21065,7 +21065,7 @@ func TestExprUnaryMinus(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -21129,7 +21129,7 @@ func TestExprUnaryPlus(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -21184,7 +21184,7 @@ func TestExprVariable(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -21247,7 +21247,7 @@ func TestExprVariable_Variable(t *testing.T) { EndPos: 6, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -21354,7 +21354,7 @@ func TestExprYield_Val(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -21418,7 +21418,7 @@ func TestExprYield_KeyVal(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Value: &ast.ExprVariable{ @@ -21439,7 +21439,7 @@ func TestExprYield_KeyVal(t *testing.T) { EndPos: 17, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21557,7 +21557,7 @@ func TestExprYield_KeyExpr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Value: &ast.ScalarLnumber{ @@ -21632,7 +21632,7 @@ func TestExprYieldFrom(t *testing.T) { EndPos: 16, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -21698,7 +21698,7 @@ func TestExprAssign_Assign(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -21719,7 +21719,7 @@ func TestExprAssign_Assign(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21783,7 +21783,7 @@ func TestExprAssign_Reference(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -21804,7 +21804,7 @@ func TestExprAssign_Reference(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -21868,7 +21868,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprNew{ @@ -21965,7 +21965,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprNew{ @@ -22039,7 +22039,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { EndPos: 19, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22107,7 +22107,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22128,7 +22128,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22192,7 +22192,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22213,7 +22213,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22277,7 +22277,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22298,7 +22298,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22362,7 +22362,7 @@ func TestExprAssign_Concat(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22383,7 +22383,7 @@ func TestExprAssign_Concat(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22447,7 +22447,7 @@ func TestExprAssign_Div(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22468,7 +22468,7 @@ func TestExprAssign_Div(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22532,7 +22532,7 @@ func TestExprAssign_Minus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22553,7 +22553,7 @@ func TestExprAssign_Minus(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22617,7 +22617,7 @@ func TestExprAssign_Mod(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22638,7 +22638,7 @@ func TestExprAssign_Mod(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22702,7 +22702,7 @@ func TestExprAssign_Mul(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22723,7 +22723,7 @@ func TestExprAssign_Mul(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22787,7 +22787,7 @@ func TestExprAssign_Plus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22808,7 +22808,7 @@ func TestExprAssign_Plus(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22872,7 +22872,7 @@ func TestExprAssign_Pow(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22893,7 +22893,7 @@ func TestExprAssign_Pow(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -22957,7 +22957,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -22978,7 +22978,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23042,7 +23042,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -23063,7 +23063,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23127,7 +23127,7 @@ func TestExprAssign_Coalesce(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -23148,7 +23148,7 @@ func TestExprAssign_Coalesce(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23214,7 +23214,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23235,7 +23235,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23299,7 +23299,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23320,7 +23320,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23384,7 +23384,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23405,7 +23405,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23469,7 +23469,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23490,7 +23490,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23554,7 +23554,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23575,7 +23575,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23639,7 +23639,7 @@ func TestExprBinary_Coalesce(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23660,7 +23660,7 @@ func TestExprBinary_Coalesce(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23724,7 +23724,7 @@ func TestExprBinary_Concat(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23745,7 +23745,7 @@ func TestExprBinary_Concat(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23809,7 +23809,7 @@ func TestExprBinary_Div(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23830,7 +23830,7 @@ func TestExprBinary_Div(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23894,7 +23894,7 @@ func TestExprBinary_Equal(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -23915,7 +23915,7 @@ func TestExprBinary_Equal(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -23979,7 +23979,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24000,7 +24000,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24064,7 +24064,7 @@ func TestExprBinary_Greater(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24085,7 +24085,7 @@ func TestExprBinary_Greater(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24149,7 +24149,7 @@ func TestExprBinary_Identical(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24170,7 +24170,7 @@ func TestExprBinary_Identical(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24234,7 +24234,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24255,7 +24255,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24319,7 +24319,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24340,7 +24340,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24404,7 +24404,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24425,7 +24425,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24489,7 +24489,7 @@ func TestExprBinary_Minus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24510,7 +24510,7 @@ func TestExprBinary_Minus(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24574,7 +24574,7 @@ func TestExprBinary_Mod(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24595,7 +24595,7 @@ func TestExprBinary_Mod(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24659,7 +24659,7 @@ func TestExprBinary_Mul(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24680,7 +24680,7 @@ func TestExprBinary_Mul(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24744,7 +24744,7 @@ func TestExprBinary_NotEqual(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24765,7 +24765,7 @@ func TestExprBinary_NotEqual(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24829,7 +24829,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24850,7 +24850,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24914,7 +24914,7 @@ func TestExprBinary_Plus(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -24935,7 +24935,7 @@ func TestExprBinary_Plus(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -24999,7 +24999,7 @@ func TestExprBinary_Pow(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -25020,7 +25020,7 @@ func TestExprBinary_Pow(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -25084,7 +25084,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -25105,7 +25105,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -25169,7 +25169,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -25190,7 +25190,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -25254,7 +25254,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -25275,7 +25275,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { EndPos: 11, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -25339,7 +25339,7 @@ func TestExprBinary_Smaller(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -25360,7 +25360,7 @@ func TestExprBinary_Smaller(t *testing.T) { EndPos: 10, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -25424,7 +25424,7 @@ func TestExprBinary_Spaceship(t *testing.T) { EndPos: 5, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -25445,7 +25445,7 @@ func TestExprBinary_Spaceship(t *testing.T) { EndPos: 12, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -25511,7 +25511,7 @@ func TestExprCast_Array(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -25575,7 +25575,7 @@ func TestExprCast_Bool(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -25639,7 +25639,7 @@ func TestExprCast_BoolShort(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -25703,7 +25703,7 @@ func TestExprCast_Double(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -25767,7 +25767,7 @@ func TestExprCast_CastFloat(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -25831,7 +25831,7 @@ func TestExprCast_Int(t *testing.T) { EndPos: 14, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -25895,7 +25895,7 @@ func TestExprCast_IntShort(t *testing.T) { EndPos: 10, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -25959,7 +25959,7 @@ func TestExprCast_Object(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -26023,7 +26023,7 @@ func TestExprCast_String(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -26087,7 +26087,7 @@ func TestExprCast_BinaryString(t *testing.T) { EndPos: 13, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -26151,7 +26151,7 @@ func TestExprCast_Unset(t *testing.T) { EndPos: 12, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index cccb6d9..90532bc 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5663 +// line internal/php7/php7.y:5647 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 +// line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2126,469 +2126,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:326 +// line internal/php7/php7.y:326 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:330 +// line internal/php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:337 +// line internal/php7/php7.y:337 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2603,7 +2603,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:350 +// line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{} @@ -2611,7 +2611,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:359 +// line internal/php7/php7.y:359 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2626,7 +2626,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:372 +// line internal/php7/php7.y:372 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2642,7 +2642,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:389 +// line internal/php7/php7.y:389 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -2656,7 +2656,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:401 +// line internal/php7/php7.y:401 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -2671,7 +2671,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:414 +// line internal/php7/php7.y:414 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -2685,7 +2685,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 +// line internal/php7/php7.y:429 { // error yyVAL.node = nil @@ -2694,7 +2694,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:436 +// line internal/php7/php7.y:436 { yyVAL.node = yyDollar[1].node @@ -2702,7 +2702,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:442 +// line internal/php7/php7.y:442 { yyVAL.node = yyDollar[1].node @@ -2710,7 +2710,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:448 +// line internal/php7/php7.y:448 { yyVAL.node = yyDollar[1].node @@ -2718,7 +2718,7 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:454 +// line internal/php7/php7.y:454 { yyVAL.node = yyDollar[1].node @@ -2726,7 +2726,7 @@ yydefault: } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:460 +// line internal/php7/php7.y:460 { yyVAL.node = yyDollar[1].node @@ -2734,7 +2734,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:466 +// line internal/php7/php7.y:466 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2752,7 +2752,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:482 +// line internal/php7/php7.y:482 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2771,7 +2771,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:499 +// line internal/php7/php7.y:499 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2790,7 +2790,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:516 +// line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2806,7 +2806,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:530 +// line internal/php7/php7.y:530 { yyVAL.node = yyDollar[2].node @@ -2822,7 +2822,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:544 +// line internal/php7/php7.y:544 { yyDollar[3].node.(*ast.StmtGroupUse).UseType = yyDollar[2].node yyVAL.node = yyDollar[3].node @@ -2839,7 +2839,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:559 +// line internal/php7/php7.y:559 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} @@ -2855,7 +2855,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:573 +// line internal/php7/php7.y:573 { yyVAL.node = &ast.StmtUseList{ast.Node{}, yyDollar[2].node, yyDollar[3].list} @@ -2871,7 +2871,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:587 +// line internal/php7/php7.y:587 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2887,7 +2887,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:604 +// line internal/php7/php7.y:604 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2901,7 +2901,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:616 +// line internal/php7/php7.y:616 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2915,7 +2915,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:631 +// line internal/php7/php7.y:631 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2938,7 +2938,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:652 +// line internal/php7/php7.y:652 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -2962,7 +2962,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:677 +// line internal/php7/php7.y:677 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2985,7 +2985,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:698 +// line internal/php7/php7.y:698 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -3009,19 +3009,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:723 +// line internal/php7/php7.y:723 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:727 +// line internal/php7/php7.y:727 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:734 +// line internal/php7/php7.y:734 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3032,7 +3032,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:743 +// line internal/php7/php7.y:743 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3040,7 +3040,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:752 +// line internal/php7/php7.y:752 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3051,7 +3051,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:761 +// line internal/php7/php7.y:761 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3059,7 +3059,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:770 +// line internal/php7/php7.y:770 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3070,7 +3070,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:779 +// line internal/php7/php7.y:779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3078,7 +3078,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:788 +// line internal/php7/php7.y:788 { yyVAL.node = yyDollar[1].node @@ -3086,7 +3086,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:794 +// line internal/php7/php7.y:794 { yyDollar[2].node.(*ast.StmtUse).UseType = yyDollar[1].node yyVAL.node = yyDollar[2].node @@ -3095,7 +3095,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:804 +// line internal/php7/php7.y:804 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -3111,7 +3111,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:818 +// line internal/php7/php7.y:818 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -3131,7 +3131,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:839 +// line internal/php7/php7.y:839 { yyVAL.node = yyDollar[1].node @@ -3142,7 +3142,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:848 +// line internal/php7/php7.y:848 { yyVAL.node = yyDollar[2].node @@ -3157,7 +3157,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:864 +// line internal/php7/php7.y:864 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3168,7 +3168,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:873 +// line internal/php7/php7.y:873 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3176,7 +3176,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:882 +// line internal/php7/php7.y:882 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3191,7 +3191,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:895 +// line internal/php7/php7.y:895 { yyVAL.list = []ast.Vertex{} @@ -3199,7 +3199,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:904 +// line internal/php7/php7.y:904 { // error yyVAL.node = nil @@ -3208,7 +3208,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:911 +// line internal/php7/php7.y:911 { yyVAL.node = yyDollar[1].node @@ -3216,7 +3216,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:917 +// line internal/php7/php7.y:917 { yyVAL.node = yyDollar[1].node @@ -3224,7 +3224,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:923 +// line internal/php7/php7.y:923 { yyVAL.node = yyDollar[1].node @@ -3232,7 +3232,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:929 +// line internal/php7/php7.y:929 { yyVAL.node = yyDollar[1].node @@ -3240,7 +3240,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:935 +// line internal/php7/php7.y:935 { yyVAL.node = yyDollar[1].node @@ -3248,7 +3248,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:941 +// line internal/php7/php7.y:941 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3266,7 +3266,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:959 +// line internal/php7/php7.y:959 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3281,7 +3281,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:972 +// line internal/php7/php7.y:972 { yyVAL.node = yyDollar[1].node @@ -3289,7 +3289,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:978 +// line internal/php7/php7.y:978 { yyVAL.node = yyDollar[1].node @@ -3297,7 +3297,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:984 +// line internal/php7/php7.y:984 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3320,7 +3320,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1005 +// line internal/php7/php7.y:1005 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3339,7 +3339,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1022 +// line internal/php7/php7.y:1022 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3368,7 +3368,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1049 +// line internal/php7/php7.y:1049 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3393,7 +3393,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1072 +// line internal/php7/php7.y:1072 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3409,7 +3409,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1086 +// line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3425,7 +3425,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1100 +// line internal/php7/php7.y:1100 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3441,7 +3441,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1114 +// line internal/php7/php7.y:1114 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3457,7 +3457,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1128 +// line internal/php7/php7.y:1128 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3473,7 +3473,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1142 +// line internal/php7/php7.y:1142 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3490,7 +3490,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1157 +// line internal/php7/php7.y:1157 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3504,7 +3504,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1169 +// line internal/php7/php7.y:1169 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3520,7 +3520,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1183 +// line internal/php7/php7.y:1183 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3542,7 +3542,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1203 +// line internal/php7/php7.y:1203 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3568,7 +3568,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1228 +// line internal/php7/php7.y:1228 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3597,7 +3597,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1255 +// line internal/php7/php7.y:1255 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3614,7 +3614,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1270 +// line internal/php7/php7.y:1270 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3629,7 +3629,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1283 +// line internal/php7/php7.y:1283 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3648,7 +3648,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1300 +// line internal/php7/php7.y:1300 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3664,7 +3664,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1314 +// line internal/php7/php7.y:1314 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3683,7 +3683,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1331 +// line internal/php7/php7.y:1331 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3700,7 +3700,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1348 +// line internal/php7/php7.y:1348 { yyVAL.list = []ast.Vertex{} @@ -3708,9 +3708,9 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1354 +// line internal/php7/php7.y:1354 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[5].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} catch := &ast.StmtCatch{ast.Node{}, yyDollar[4].list, variable, yyDollar[8].list} yyVAL.list = append(yyDollar[1].list, catch) @@ -3724,7 +3724,6 @@ yydefault: yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Hidden) yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Hidden) yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Hidden) @@ -3733,7 +3732,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1379 +// line internal/php7/php7.y:1378 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3741,7 +3740,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1385 +// line internal/php7/php7.y:1384 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3752,7 +3751,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1397 +// line internal/php7/php7.y:1396 { yyVAL.node = nil @@ -3760,7 +3759,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1403 +// line internal/php7/php7.y:1402 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3776,7 +3775,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1420 +// line internal/php7/php7.y:1419 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3784,7 +3783,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1426 +// line internal/php7/php7.y:1425 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3795,7 +3794,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1438 +// line internal/php7/php7.y:1437 { yyVAL.node = yyDollar[1].node @@ -3803,7 +3802,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1447 +// line internal/php7/php7.y:1446 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3839,31 +3838,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1483 +// line internal/php7/php7.y:1482 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1487 +// line internal/php7/php7.y:1486 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1494 +// line internal/php7/php7.y:1493 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1498 +// line internal/php7/php7.y:1497 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1505 +// line internal/php7/php7.y:1504 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3883,7 +3882,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1523 +// line internal/php7/php7.y:1522 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3902,7 +3901,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1543 +// line internal/php7/php7.y:1542 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3910,7 +3909,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1549 +// line internal/php7/php7.y:1548 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3918,7 +3917,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1558 +// line internal/php7/php7.y:1557 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3932,7 +3931,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1570 +// line internal/php7/php7.y:1569 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3946,7 +3945,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1585 +// line internal/php7/php7.y:1584 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3965,7 +3964,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1605 +// line internal/php7/php7.y:1604 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3984,7 +3983,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1625 +// line internal/php7/php7.y:1624 { yyVAL.ClassExtends = nil @@ -3992,7 +3991,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1631 +// line internal/php7/php7.y:1630 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -4006,7 +4005,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1646 +// line internal/php7/php7.y:1645 { yyVAL.InterfaceExtends = nil @@ -4014,7 +4013,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1652 +// line internal/php7/php7.y:1651 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4028,7 +4027,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1667 +// line internal/php7/php7.y:1666 { yyVAL.ClassImplements = nil @@ -4036,7 +4035,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1673 +// line internal/php7/php7.y:1672 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4050,7 +4049,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1688 +// line internal/php7/php7.y:1687 { yyVAL.node = yyDollar[1].node @@ -4058,7 +4057,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1694 +// line internal/php7/php7.y:1693 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4072,7 +4071,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1706 +// line internal/php7/php7.y:1705 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4088,7 +4087,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1720 +// line internal/php7/php7.y:1719 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4103,7 +4102,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1736 +// line internal/php7/php7.y:1735 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4114,7 +4113,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1745 +// line internal/php7/php7.y:1744 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4133,7 +4132,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1765 +// line internal/php7/php7.y:1764 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4144,7 +4143,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1774 +// line internal/php7/php7.y:1773 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4163,7 +4162,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1794 +// line internal/php7/php7.y:1793 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4174,7 +4173,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1803 +// line internal/php7/php7.y:1802 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4193,7 +4192,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1823 +// line internal/php7/php7.y:1822 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4210,7 +4209,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1838 +// line internal/php7/php7.y:1837 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4228,7 +4227,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1854 +// line internal/php7/php7.y:1853 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4247,7 +4246,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1871 +// line internal/php7/php7.y:1870 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4268,7 +4267,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1893 +// line internal/php7/php7.y:1892 { yyVAL.list = []ast.Vertex{} @@ -4276,7 +4275,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1899 +// line internal/php7/php7.y:1898 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4293,7 +4292,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1914 +// line internal/php7/php7.y:1913 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4310,19 +4309,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1932 +// line internal/php7/php7.y:1931 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1936 +// line internal/php7/php7.y:1935 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1943 +// line internal/php7/php7.y:1942 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4333,7 +4332,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1952 +// line internal/php7/php7.y:1951 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4352,7 +4351,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1972 +// line internal/php7/php7.y:1971 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4368,7 +4367,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1986 +// line internal/php7/php7.y:1985 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4388,7 +4387,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2007 +// line internal/php7/php7.y:2006 { yyVAL.node = yyDollar[1].node @@ -4396,7 +4395,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2013 +// line internal/php7/php7.y:2012 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4414,7 +4413,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2032 +// line internal/php7/php7.y:2031 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4433,7 +4432,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2049 +// line internal/php7/php7.y:2048 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4455,7 +4454,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2072 +// line internal/php7/php7.y:2071 { yyVAL.node = yyDollar[1].node @@ -4471,7 +4470,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2086 +// line internal/php7/php7.y:2085 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4495,7 +4494,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2111 +// line internal/php7/php7.y:2110 { yyVAL.list = yyDollar[1].list @@ -4503,7 +4502,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2117 +// line internal/php7/php7.y:2116 { yyVAL.list = nil @@ -4511,7 +4510,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2126 +// line internal/php7/php7.y:2125 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4519,7 +4518,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2132 +// line internal/php7/php7.y:2131 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4530,9 +4529,9 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2144 +// line internal/php7/php7.y:2143 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, nil} @@ -4561,8 +4560,6 @@ yydefault: } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) - yylex.(*Parser).addDollarToken(variable) - // normalize if yyDollar[3].token == nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) @@ -4581,9 +4578,9 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2190 +// line internal/php7/php7.y:2188 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[4].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[2].token != nil, yyDollar[3].token != nil, yyDollar[1].node, variable, yyDollar[6].node} @@ -4613,8 +4610,6 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) - yylex.(*Parser).addDollarToken(variable) - // normalize if yyDollar[3].token == nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) @@ -4633,7 +4628,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2240 +// line internal/php7/php7.y:2237 { yyVAL.node = nil @@ -4641,7 +4636,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2246 +// line internal/php7/php7.y:2243 { yyVAL.node = yyDollar[1].node @@ -4649,7 +4644,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2255 +// line internal/php7/php7.y:2252 { yyVAL.node = yyDollar[1].node @@ -4657,7 +4652,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2261 +// line internal/php7/php7.y:2258 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4671,7 +4666,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2276 +// line internal/php7/php7.y:2273 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4685,7 +4680,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2288 +// line internal/php7/php7.y:2285 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4699,7 +4694,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2300 +// line internal/php7/php7.y:2297 { yyVAL.node = yyDollar[1].node @@ -4707,7 +4702,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2309 +// line internal/php7/php7.y:2306 { yyVAL.node = nil @@ -4715,7 +4710,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2315 +// line internal/php7/php7.y:2312 { yyVAL.node = yyDollar[2].node @@ -4726,7 +4721,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2327 +// line internal/php7/php7.y:2324 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4741,7 +4736,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2340 +// line internal/php7/php7.y:2337 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4760,7 +4755,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2360 +// line internal/php7/php7.y:2357 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4768,7 +4763,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2366 +// line internal/php7/php7.y:2363 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4779,7 +4774,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2378 +// line internal/php7/php7.y:2375 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4793,7 +4788,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2390 +// line internal/php7/php7.y:2387 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4807,7 +4802,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2405 +// line internal/php7/php7.y:2402 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4818,7 +4813,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2414 +// line internal/php7/php7.y:2411 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4826,7 +4821,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2423 +// line internal/php7/php7.y:2420 { yyVAL.node = yyDollar[1].node @@ -4834,7 +4829,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2432 +// line internal/php7/php7.y:2429 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4845,7 +4840,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2438 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4853,9 +4848,9 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2450 +// line internal/php7/php7.y:2447 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, nil} @@ -4866,15 +4861,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2467 +// line internal/php7/php7.y:2463 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} @@ -4885,14 +4879,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2488 +// line internal/php7/php7.y:2483 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4900,7 +4893,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2494 +// line internal/php7/php7.y:2489 { yyVAL.list = []ast.Vertex{} @@ -4908,7 +4901,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2503 +// line internal/php7/php7.y:2498 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4924,7 +4917,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2517 +// line internal/php7/php7.y:2512 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4945,7 +4938,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2536 +// line internal/php7/php7.y:2531 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4959,7 +4952,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2548 +// line internal/php7/php7.y:2543 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4996,7 +4989,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2585 +// line internal/php7/php7.y:2580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5004,7 +4997,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2591 +// line internal/php7/php7.y:2586 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5015,7 +5008,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2603 +// line internal/php7/php7.y:2598 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5029,7 +5022,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2616 +// line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5043,7 +5036,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2628 +// line internal/php7/php7.y:2623 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5057,7 +5050,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2643 +// line internal/php7/php7.y:2638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5065,7 +5058,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2649 +// line internal/php7/php7.y:2644 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5073,7 +5066,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2658 +// line internal/php7/php7.y:2653 { yyVAL.node = yyDollar[1].node @@ -5085,7 +5078,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2668 +// line internal/php7/php7.y:2663 { yyVAL.node = yyDollar[1].node @@ -5097,7 +5090,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2681 +// line internal/php7/php7.y:2676 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5112,7 +5105,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2697 +// line internal/php7/php7.y:2692 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5130,7 +5123,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2713 +// line internal/php7/php7.y:2708 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5148,7 +5141,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2729 +// line internal/php7/php7.y:2724 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5166,7 +5159,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2745 +// line internal/php7/php7.y:2740 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5181,7 +5174,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2761 +// line internal/php7/php7.y:2756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5197,7 +5190,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2775 +// line internal/php7/php7.y:2770 { yyVAL.node = yyDollar[1].node @@ -5205,7 +5198,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2784 +// line internal/php7/php7.y:2779 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5223,7 +5216,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2803 +// line internal/php7/php7.y:2798 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5238,7 +5231,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2816 +// line internal/php7/php7.y:2811 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5253,7 +5246,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2832 +// line internal/php7/php7.y:2827 { yyVAL.list = yyDollar[1].list @@ -5261,7 +5254,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2838 +// line internal/php7/php7.y:2833 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5276,7 +5269,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2854 +// line internal/php7/php7.y:2849 { yyVAL.list = nil @@ -5284,7 +5277,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2860 +// line internal/php7/php7.y:2855 { yyVAL.list = yyDollar[1].list @@ -5292,7 +5285,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2869 +// line internal/php7/php7.y:2864 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5300,7 +5293,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2870 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5308,7 +5301,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2884 +// line internal/php7/php7.y:2879 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5322,7 +5315,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2896 +// line internal/php7/php7.y:2891 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5336,7 +5329,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2908 +// line internal/php7/php7.y:2903 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5350,7 +5343,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2920 +// line internal/php7/php7.y:2915 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5364,7 +5357,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2932 +// line internal/php7/php7.y:2927 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5378,7 +5371,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2944 +// line internal/php7/php7.y:2939 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5392,7 +5385,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2959 +// line internal/php7/php7.y:2954 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5403,7 +5396,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2968 +// line internal/php7/php7.y:2963 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5411,9 +5404,9 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2977 +// line internal/php7/php7.y:2972 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, nil} @@ -5424,15 +5417,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2994 +// line internal/php7/php7.y:2988 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} @@ -5443,14 +5435,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3015 +// line internal/php7/php7.y:3008 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5461,7 +5452,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3024 +// line internal/php7/php7.y:3017 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5469,7 +5460,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3033 +// line internal/php7/php7.y:3026 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5486,7 +5477,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3051 +// line internal/php7/php7.y:3044 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5503,7 +5494,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3069 +// line internal/php7/php7.y:3062 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5514,7 +5505,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3078 +// line internal/php7/php7.y:3071 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5522,7 +5513,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3087 +// line internal/php7/php7.y:3080 { yyVAL.node = yyDollar[1].node @@ -5530,7 +5521,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3096 +// line internal/php7/php7.y:3089 { yyVAL.list = nil @@ -5538,7 +5529,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3102 +// line internal/php7/php7.y:3095 { yyVAL.list = yyDollar[1].list @@ -5546,7 +5537,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3111 +// line internal/php7/php7.y:3104 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5557,7 +5548,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3120 +// line internal/php7/php7.y:3113 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5565,7 +5556,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3129 +// line internal/php7/php7.y:3122 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5585,7 +5576,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3150 +// line internal/php7/php7.y:3143 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5602,7 +5593,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3165 +// line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5616,7 +5607,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3180 +// line internal/php7/php7.y:3173 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5635,7 +5626,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3197 +// line internal/php7/php7.y:3190 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5653,7 +5644,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3213 +// line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5668,7 +5659,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3226 +// line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5684,7 +5675,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3240 +// line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5698,7 +5689,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3252 +// line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,7 +5704,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3265 +// line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5719,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3278 +// line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,7 +5734,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3291 +// line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5749,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3304 +// line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5764,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3317 +// line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5788,7 +5779,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3330 +// line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5794,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3343 +// line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5809,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3356 +// line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5824,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3369 +// line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5839,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3382 +// line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5863,7 +5854,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3395 +// line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5869,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3408 +// line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5893,7 +5884,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3421 +// line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5908,7 +5899,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3434 +// line internal/php7/php7.y:3427 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5922,7 +5913,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3446 +// line internal/php7/php7.y:3439 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5937,7 +5928,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3459 +// line internal/php7/php7.y:3452 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5951,7 +5942,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3471 +// line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5966,7 +5957,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3484 +// line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5981,7 +5972,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3497 +// line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5996,7 +5987,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3510 +// line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6011,7 +6002,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3523 +// line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6026,7 +6017,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3536 +// line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6041,7 +6032,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3549 +// line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6056,7 +6047,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3562 +// line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6071,7 +6062,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3575 +// line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6086,7 +6077,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3588 +// line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6101,7 +6092,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3601 +// line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6116,7 +6107,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3614 +// line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6131,7 +6122,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3627 +// line internal/php7/php7.y:3620 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6146,7 +6137,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3640 +// line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6161,7 +6152,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3653 +// line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6176,7 +6167,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3666 +// line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6191,7 +6182,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3679 +// line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6206,7 +6197,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3692 +// line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6220,7 +6211,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3704 +// line internal/php7/php7.y:3697 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6234,7 +6225,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3716 +// line internal/php7/php7.y:3709 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6248,7 +6239,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3721 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6262,7 +6253,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3740 +// line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6277,7 +6268,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3753 +// line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6292,7 +6283,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3766 +// line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6307,7 +6298,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3779 +// line internal/php7/php7.y:3772 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6323,7 +6314,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3793 +// line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6338,7 +6329,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3806 +// line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6353,7 +6344,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3819 +// line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6368,7 +6359,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3832 +// line internal/php7/php7.y:3825 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6383,7 +6374,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3845 +// line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6398,7 +6389,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3858 +// line internal/php7/php7.y:3851 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6413,7 +6404,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3871 +// line internal/php7/php7.y:3864 { yyVAL.node = yyDollar[2].node @@ -6425,7 +6416,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3881 +// line internal/php7/php7.y:3874 { yyVAL.node = yyDollar[1].node @@ -6433,7 +6424,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3887 +// line internal/php7/php7.y:3880 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6449,7 +6440,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3901 +// line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6465,7 +6456,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3915 +// line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6480,7 +6471,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3928 +// line internal/php7/php7.y:3921 { yyVAL.node = yyDollar[1].node @@ -6488,7 +6479,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3934 +// line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6503,7 +6494,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3947 +// line internal/php7/php7.y:3940 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6518,7 +6509,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3960 +// line internal/php7/php7.y:3953 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6533,7 +6524,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3973 +// line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6548,7 +6539,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3986 +// line internal/php7/php7.y:3979 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6563,7 +6554,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3999 +// line internal/php7/php7.y:3992 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6578,7 +6569,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4012 +// line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6593,7 +6584,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4025 +// line internal/php7/php7.y:4018 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6622,7 +6613,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4052 +// line internal/php7/php7.y:4045 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6636,7 +6627,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4064 +// line internal/php7/php7.y:4057 { yyVAL.node = yyDollar[1].node @@ -6644,7 +6635,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4070 +// line internal/php7/php7.y:4063 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6658,7 +6649,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4082 +// line internal/php7/php7.y:4075 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6672,7 +6663,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4094 +// line internal/php7/php7.y:4087 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6686,7 +6677,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4106 +// line internal/php7/php7.y:4099 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6700,7 +6691,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4118 +// line internal/php7/php7.y:4111 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6715,7 +6706,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4131 +// line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6729,7 +6720,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4143 +// line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node @@ -6737,7 +6728,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4149 +// line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[2].node @@ -6760,7 +6751,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4172 +// line internal/php7/php7.y:4165 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6797,7 +6788,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4204 +// line internal/php7/php7.y:4197 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6829,19 +6820,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4239 +// line internal/php7/php7.y:4232 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4243 +// line internal/php7/php7.y:4236 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4250 +// line internal/php7/php7.y:4243 { yyVAL.ClosureUse = nil @@ -6849,7 +6840,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4256 +// line internal/php7/php7.y:4249 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6865,7 +6856,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4273 +// line internal/php7/php7.y:4266 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6876,7 +6867,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4282 +// line internal/php7/php7.y:4275 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6884,9 +6875,9 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4291 +// line internal/php7/php7.y:4284 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position @@ -6895,15 +6886,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4306 +// line internal/php7/php7.y:4298 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[2].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprReference{ast.Node{}, variable} @@ -6915,13 +6905,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4327 +// line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6935,7 +6924,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4339 +// line internal/php7/php7.y:4330 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6950,7 +6939,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4352 +// line internal/php7/php7.y:4343 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6965,7 +6954,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4365 +// line internal/php7/php7.y:4356 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6979,7 +6968,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4380 +// line internal/php7/php7.y:4371 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6993,7 +6982,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4392 +// line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node @@ -7001,7 +6990,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4401 +// line internal/php7/php7.y:4392 { yyVAL.node = yyDollar[1].node @@ -7009,7 +6998,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4407 +// line internal/php7/php7.y:4398 { yyVAL.node = yyDollar[1].node @@ -7017,7 +7006,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4416 +// line internal/php7/php7.y:4407 { yyVAL.node = nil @@ -7025,7 +7014,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4422 +// line internal/php7/php7.y:4413 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7040,7 +7029,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4438 +// line internal/php7/php7.y:4429 { yyVAL.list = []ast.Vertex{} @@ -7048,7 +7037,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4444 +// line internal/php7/php7.y:4435 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7060,7 +7049,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4454 +// line internal/php7/php7.y:4445 { yyVAL.list = yyDollar[1].list @@ -7068,7 +7057,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4463 +// line internal/php7/php7.y:4454 { yyVAL.node = nil @@ -7076,7 +7065,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4460 { yyVAL.node = yyDollar[1].node @@ -7084,7 +7073,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4478 +// line internal/php7/php7.y:4469 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7100,7 +7089,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4492 +// line internal/php7/php7.y:4483 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7115,7 +7104,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4505 +// line internal/php7/php7.y:4496 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7129,7 +7118,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4520 +// line internal/php7/php7.y:4511 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7143,7 +7132,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4532 +// line internal/php7/php7.y:4523 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7157,7 +7146,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4544 +// line internal/php7/php7.y:4535 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7171,7 +7160,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4556 +// line internal/php7/php7.y:4547 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7185,7 +7174,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4568 +// line internal/php7/php7.y:4559 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7199,7 +7188,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4580 +// line internal/php7/php7.y:4571 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7213,7 +7202,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4592 +// line internal/php7/php7.y:4583 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7227,7 +7216,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4604 +// line internal/php7/php7.y:4595 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7241,7 +7230,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4616 +// line internal/php7/php7.y:4607 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7255,7 +7244,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4628 +// line internal/php7/php7.y:4619 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7269,7 +7258,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4640 +// line internal/php7/php7.y:4631 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7285,7 +7274,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4654 +// line internal/php7/php7.y:4645 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7299,7 +7288,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4666 +// line internal/php7/php7.y:4657 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7313,7 +7302,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4678 +// line internal/php7/php7.y:4669 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7327,7 +7316,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4690 +// line internal/php7/php7.y:4681 { yyVAL.node = yyDollar[1].node @@ -7335,7 +7324,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4696 +// line internal/php7/php7.y:4687 { yyVAL.node = yyDollar[1].node @@ -7343,7 +7332,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4705 +// line internal/php7/php7.y:4696 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7357,7 +7346,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4717 +// line internal/php7/php7.y:4708 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7375,7 +7364,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4733 +// line internal/php7/php7.y:4724 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7393,7 +7382,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4752 +// line internal/php7/php7.y:4743 { yyVAL.node = yyDollar[1].node @@ -7401,7 +7390,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4758 +// line internal/php7/php7.y:4749 { yyVAL.node = yyDollar[1].node @@ -7409,7 +7398,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4767 +// line internal/php7/php7.y:4758 { yyVAL.node = nil @@ -7417,7 +7406,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4773 +// line internal/php7/php7.y:4764 { yyVAL.node = yyDollar[1].node @@ -7425,7 +7414,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4782 +// line internal/php7/php7.y:4773 { yyVAL.node = yyDollar[1].node @@ -7433,7 +7422,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4791 +// line internal/php7/php7.y:4782 { yyVAL.node = yyDollar[1].node @@ -7441,7 +7430,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4797 +// line internal/php7/php7.y:4788 { yyVAL.node = yyDollar[2].node @@ -7453,7 +7442,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4807 +// line internal/php7/php7.y:4798 { yyVAL.node = yyDollar[1].node @@ -7461,7 +7450,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4816 +// line internal/php7/php7.y:4807 { yyVAL.node = yyDollar[1].node @@ -7469,7 +7458,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4822 +// line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[2].node @@ -7481,7 +7470,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4832 +// line internal/php7/php7.y:4823 { yyVAL.node = yyDollar[1].node @@ -7489,7 +7478,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4841 +// line internal/php7/php7.y:4832 { yyVAL.node = yyDollar[1].node @@ -7497,7 +7486,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4847 +// line internal/php7/php7.y:4838 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7513,7 +7502,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4861 +// line internal/php7/php7.y:4852 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7529,7 +7518,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4875 +// line internal/php7/php7.y:4866 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7545,7 +7534,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4889 +// line internal/php7/php7.y:4880 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7560,7 +7549,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4902 +// line internal/php7/php7.y:4893 { yyVAL.node = yyDollar[1].node @@ -7568,7 +7557,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4911 +// line internal/php7/php7.y:4902 { yyVAL.node = yyDollar[1].node @@ -7576,7 +7565,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4917 +// line internal/php7/php7.y:4908 { yyVAL.node = yyDollar[1].node @@ -7584,7 +7573,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4923 +// line internal/php7/php7.y:4914 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7599,9 +7588,9 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4939 +// line internal/php7/php7.y:4930 { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position @@ -7610,13 +7599,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4954 +// line internal/php7/php7.y:4944 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7625,7 +7613,6 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) @@ -7633,7 +7620,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4969 +// line internal/php7/php7.y:4958 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7642,13 +7629,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Dollar, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4985 +// line internal/php7/php7.y:4973 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7663,7 +7649,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4998 +// line internal/php7/php7.y:4986 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7678,7 +7664,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5014 +// line internal/php7/php7.y:5002 { yyVAL.node = yyDollar[1].node @@ -7686,7 +7672,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5020 +// line internal/php7/php7.y:5008 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7702,7 +7688,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5034 +// line internal/php7/php7.y:5022 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7718,7 +7704,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5048 +// line internal/php7/php7.y:5036 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7733,7 +7719,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5061 +// line internal/php7/php7.y:5049 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7748,7 +7734,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5074 +// line internal/php7/php7.y:5062 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7763,7 +7749,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5090 +// line internal/php7/php7.y:5078 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7777,7 +7763,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5102 +// line internal/php7/php7.y:5090 { yyVAL.node = yyDollar[2].node @@ -7789,7 +7775,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5112 +// line internal/php7/php7.y:5100 { yyVAL.node = yyDollar[1].node @@ -7797,7 +7783,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5121 +// line internal/php7/php7.y:5109 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7811,7 +7797,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5133 +// line internal/php7/php7.y:5121 { yyVAL.node = yyDollar[2].node @@ -7823,7 +7809,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5143 +// line internal/php7/php7.y:5131 { yyVAL.node = yyDollar[1].node @@ -7831,7 +7817,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5152 +// line internal/php7/php7.y:5140 { yyVAL.list = yyDollar[1].list @@ -7839,7 +7825,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5161 +// line internal/php7/php7.y:5149 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7847,7 +7833,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5167 +// line internal/php7/php7.y:5155 { yyVAL.node = yyDollar[1].node @@ -7855,7 +7841,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5176 +// line internal/php7/php7.y:5164 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7870,7 +7856,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5189 +// line internal/php7/php7.y:5177 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7882,7 +7868,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5202 +// line internal/php7/php7.y:5190 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7897,7 +7883,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5215 +// line internal/php7/php7.y:5203 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7911,7 +7897,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5227 +// line internal/php7/php7.y:5215 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7929,7 +7915,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5243 +// line internal/php7/php7.y:5231 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7945,7 +7931,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5257 +// line internal/php7/php7.y:5245 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7959,7 +7945,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5269 +// line internal/php7/php7.y:5257 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7980,7 +7966,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5288 +// line internal/php7/php7.y:5276 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7999,7 +7985,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5308 +// line internal/php7/php7.y:5296 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -8007,7 +7993,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5314 +// line internal/php7/php7.y:5302 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8022,7 +8008,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5327 +// line internal/php7/php7.y:5315 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8030,7 +8016,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5333 +// line internal/php7/php7.y:5321 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8045,9 +8031,9 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5349 +// line internal/php7/php7.y:5337 { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position @@ -8056,15 +8042,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5364 +// line internal/php7/php7.y:5351 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} @@ -8074,7 +8059,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) @@ -8082,9 +8066,9 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5382 +// line internal/php7/php7.y:5368 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} fetch := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} @@ -8096,7 +8080,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Hidden) @@ -8104,7 +8087,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5402 +// line internal/php7/php7.y:5387 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8121,7 +8104,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5417 +// line internal/php7/php7.y:5402 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8140,7 +8123,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5434 +// line internal/php7/php7.y:5419 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8161,7 +8144,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5453 +// line internal/php7/php7.y:5438 { yyVAL.node = yyDollar[2].node @@ -8173,7 +8156,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5466 +// line internal/php7/php7.y:5451 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8187,7 +8170,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5478 +// line internal/php7/php7.y:5463 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8206,7 +8189,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5495 +// line internal/php7/php7.y:5480 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8234,9 +8217,9 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5521 +// line internal/php7/php7.y:5506 { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc(yyDollar[1].token.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position @@ -8245,13 +8228,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).addDollarToken(yyVAL.node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5539 +// line internal/php7/php7.y:5523 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8271,7 +8253,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5557 +// line internal/php7/php7.y:5541 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8287,7 +8269,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5571 +// line internal/php7/php7.y:5555 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8301,7 +8283,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5583 +// line internal/php7/php7.y:5567 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8315,7 +8297,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5595 +// line internal/php7/php7.y:5579 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8331,7 +8313,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5609 +// line internal/php7/php7.y:5593 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8345,7 +8327,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5621 +// line internal/php7/php7.y:5605 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8359,7 +8341,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5636 +// line internal/php7/php7.y:5620 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8367,7 +8349,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5642 +// line internal/php7/php7.y:5626 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8378,7 +8360,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5654 +// line internal/php7/php7.y:5638 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 16e3936..29a4a8b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1352,7 +1352,7 @@ catch_list: } | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($5.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $5.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} catch := &ast.StmtCatch{ast.Node{}, $4, variable, $8} $$ = append($1, catch) @@ -1366,7 +1366,6 @@ catch_list: yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Hidden) yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Hidden) yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Hidden) yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Hidden) @@ -2142,7 +2141,7 @@ non_empty_parameter_list: parameter: optional_type is_reference is_variadic T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, nil} @@ -2171,7 +2170,6 @@ parameter: } yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) - yylex.(*Parser).addDollarToken(variable) // normalize if $3 == nil { @@ -2188,7 +2186,7 @@ parameter: } | optional_type is_reference is_variadic T_VARIABLE '=' expr { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($4.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.Parameter{ast.Node{}, $2 != nil, $3 != nil, $1, variable, $6} @@ -2218,7 +2216,6 @@ parameter: yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) - yylex.(*Parser).addDollarToken(variable) // normalize if $3 == nil { @@ -2448,7 +2445,7 @@ static_var_list: static_var: T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStaticVar{ast.Node{}, variable, nil} @@ -2459,13 +2456,12 @@ static_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' expr { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStaticVar{ast.Node{}, variable, $3} @@ -2476,7 +2472,6 @@ static_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2975,7 +2970,7 @@ property_list: property: T_VARIABLE backup_doc_comment { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtProperty{ast.Node{}, variable, nil} @@ -2986,13 +2981,12 @@ property: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '=' expr backup_doc_comment { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtProperty{ast.Node{}, variable, $3} @@ -3003,7 +2997,6 @@ property: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4289,7 +4282,7 @@ lexical_var_list: lexical_var: T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position @@ -4298,13 +4291,12 @@ lexical_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($2.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $2.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprReference{ast.Node{}, variable} @@ -4316,7 +4308,6 @@ lexical_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Hidden) - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4937,7 +4928,7 @@ variable: simple_variable: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, name} // save position @@ -4946,7 +4937,6 @@ simple_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4959,7 +4949,6 @@ simple_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) @@ -4974,7 +4963,6 @@ simple_variable: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Dollar, yylex.(*Parser).GetFreeFloatingToken($1)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5347,7 +5335,7 @@ encaps_list: encaps_var: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + name := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, name} // save position @@ -5356,13 +5344,12 @@ encaps_var: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} @@ -5372,7 +5359,6 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) @@ -5380,7 +5366,7 @@ encaps_var: } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} fetch := &ast.Identifier{ast.Node{}, $3.Value} $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} @@ -5392,7 +5378,6 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).addDollarToken(variable) yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Hidden) @@ -5519,7 +5504,7 @@ encaps_var_offset: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, bytes.TrimLeftFunc($1.Value, isDollar)} + identifier := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position @@ -5528,7 +5513,6 @@ encaps_var_offset: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).addDollarToken($$) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 1fd25a0..169e62c 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -455,7 +455,7 @@ func TestPhp7(t *testing.T) { EndPos: 11, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -488,7 +488,7 @@ func TestPhp7(t *testing.T) { EndPos: 18, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -532,7 +532,7 @@ func TestPhp7(t *testing.T) { EndPos: 27, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -574,7 +574,7 @@ func TestPhp7(t *testing.T) { EndPos: 30, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -607,7 +607,7 @@ func TestPhp7(t *testing.T) { EndPos: 37, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -651,7 +651,7 @@ func TestPhp7(t *testing.T) { EndPos: 46, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -704,7 +704,7 @@ func TestPhp7(t *testing.T) { EndPos: 54, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -737,7 +737,7 @@ func TestPhp7(t *testing.T) { EndPos: 61, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -836,7 +836,7 @@ func TestPhp7(t *testing.T) { EndPos: 77, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -869,7 +869,7 @@ func TestPhp7(t *testing.T) { EndPos: 84, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -913,7 +913,7 @@ func TestPhp7(t *testing.T) { EndPos: 93, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Call: &ast.Identifier{ @@ -966,7 +966,7 @@ func TestPhp7(t *testing.T) { EndPos: 101, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -999,7 +999,7 @@ func TestPhp7(t *testing.T) { EndPos: 108, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -1087,7 +1087,7 @@ func TestPhp7(t *testing.T) { EndPos: 123, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -1120,7 +1120,7 @@ func TestPhp7(t *testing.T) { EndPos: 130, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -1194,7 +1194,7 @@ func TestPhp7(t *testing.T) { EndPos: 173, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -1227,7 +1227,7 @@ func TestPhp7(t *testing.T) { EndPos: 180, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -1304,7 +1304,7 @@ func TestPhp7(t *testing.T) { EndPos: 212, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, }, @@ -1354,7 +1354,7 @@ func TestPhp7(t *testing.T) { EndPos: 224, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Dim: &ast.ScalarLnumber{ @@ -1416,7 +1416,7 @@ func TestPhp7(t *testing.T) { EndPos: 239, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Dim: &ast.ExprVariable{ @@ -1437,7 +1437,7 @@ func TestPhp7(t *testing.T) { EndPos: 244, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -1488,7 +1488,7 @@ func TestPhp7(t *testing.T) { EndPos: 257, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.Identifier{ @@ -1550,7 +1550,7 @@ func TestPhp7(t *testing.T) { EndPos: 274, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.ExprVariable{ @@ -1571,7 +1571,7 @@ func TestPhp7(t *testing.T) { EndPos: 280, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -1633,7 +1633,7 @@ func TestPhp7(t *testing.T) { EndPos: 300, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -1723,7 +1723,7 @@ func TestPhp7(t *testing.T) { EndPos: 327, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -1812,7 +1812,7 @@ func TestPhp7(t *testing.T) { EndPos: 346, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -1937,7 +1937,7 @@ func TestPhp7(t *testing.T) { EndPos: 393, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -2026,7 +2026,7 @@ func TestPhp7(t *testing.T) { EndPos: 412, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -2128,7 +2128,7 @@ func TestPhp7(t *testing.T) { EndPos: 438, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -2217,7 +2217,7 @@ func TestPhp7(t *testing.T) { EndPos: 457, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -2308,7 +2308,7 @@ func TestPhp7(t *testing.T) { EndPos: 490, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, DefaultValue: &ast.ExprConstFetch{ @@ -2397,7 +2397,7 @@ func TestPhp7(t *testing.T) { EndPos: 509, }, }, - Value: []byte("baz"), + Value: []byte("$baz"), }, }, }, @@ -2768,7 +2768,7 @@ func TestPhp7(t *testing.T) { EndPos: 876, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, }, @@ -2831,7 +2831,7 @@ func TestPhp7(t *testing.T) { EndPos: 891, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ScalarLnumber{ @@ -2906,7 +2906,7 @@ func TestPhp7(t *testing.T) { EndPos: 909, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ExprUnaryMinus{ @@ -2991,7 +2991,7 @@ func TestPhp7(t *testing.T) { EndPos: 928, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ScalarString{ @@ -3066,7 +3066,7 @@ func TestPhp7(t *testing.T) { EndPos: 985, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ScalarString{ @@ -3141,7 +3141,7 @@ func TestPhp7(t *testing.T) { EndPos: 1043, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ScalarString{ @@ -3216,7 +3216,7 @@ func TestPhp7(t *testing.T) { EndPos: 1063, }, }, - Value: []byte("var"), + Value: []byte("$var"), }, }, Dim: &ast.ExprVariable{ @@ -3237,7 +3237,7 @@ func TestPhp7(t *testing.T) { EndPos: 1068, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -3281,7 +3281,7 @@ func TestPhp7(t *testing.T) { EndPos: 1079, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, &ast.ScalarEncapsedStringPart{ @@ -3313,7 +3313,7 @@ func TestPhp7(t *testing.T) { EndPos: 1084, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -3376,7 +3376,7 @@ func TestPhp7(t *testing.T) { EndPos: 1099, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.Identifier{ @@ -3591,7 +3591,7 @@ func TestPhp7(t *testing.T) { EndPos: 1160, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, }, @@ -3655,7 +3655,7 @@ func TestPhp7(t *testing.T) { EndPos: 1177, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Method: &ast.Identifier{ @@ -3710,7 +3710,7 @@ func TestPhp7(t *testing.T) { EndPos: 1197, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3752,7 +3752,7 @@ func TestPhp7(t *testing.T) { EndPos: 1218, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3794,7 +3794,7 @@ func TestPhp7(t *testing.T) { EndPos: 1234, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -3838,7 +3838,7 @@ func TestPhp7(t *testing.T) { EndPos: 1254, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3901,7 +3901,7 @@ func TestPhp7(t *testing.T) { EndPos: 1283, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -3943,7 +3943,7 @@ func TestPhp7(t *testing.T) { EndPos: 1299, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -3985,7 +3985,7 @@ func TestPhp7(t *testing.T) { EndPos: 1314, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -5476,7 +5476,7 @@ func TestPhp7(t *testing.T) { EndPos: 2036, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ScalarLnumber{ @@ -5520,7 +5520,7 @@ func TestPhp7(t *testing.T) { EndPos: 2050, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -5562,7 +5562,7 @@ func TestPhp7(t *testing.T) { EndPos: 2061, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Expr: &ast.ScalarLnumber{ @@ -5606,7 +5606,7 @@ func TestPhp7(t *testing.T) { EndPos: 2069, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -5650,7 +5650,7 @@ func TestPhp7(t *testing.T) { EndPos: 2078, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -5681,7 +5681,7 @@ func TestPhp7(t *testing.T) { EndPos: 2084, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -5735,7 +5735,7 @@ func TestPhp7(t *testing.T) { EndPos: 2101, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, Right: &ast.ScalarLnumber{ @@ -5779,7 +5779,7 @@ func TestPhp7(t *testing.T) { EndPos: 2110, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -5810,7 +5810,7 @@ func TestPhp7(t *testing.T) { EndPos: 2116, }, }, - Value: []byte("i"), + Value: []byte("$i"), }, }, }, @@ -5854,7 +5854,7 @@ func TestPhp7(t *testing.T) { EndPos: 2143, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -5875,7 +5875,7 @@ func TestPhp7(t *testing.T) { EndPos: 2149, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -5917,7 +5917,7 @@ func TestPhp7(t *testing.T) { EndPos: 2167, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Var: &ast.ExprVariable{ @@ -5938,7 +5938,7 @@ func TestPhp7(t *testing.T) { EndPos: 2173, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -5980,7 +5980,7 @@ func TestPhp7(t *testing.T) { EndPos: 2202, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6001,7 +6001,7 @@ func TestPhp7(t *testing.T) { EndPos: 2208, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprVariable{ @@ -6022,7 +6022,7 @@ func TestPhp7(t *testing.T) { EndPos: 2214, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, Stmt: &ast.StmtStmtList{ @@ -6064,7 +6064,7 @@ func TestPhp7(t *testing.T) { EndPos: 2232, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6085,7 +6085,7 @@ func TestPhp7(t *testing.T) { EndPos: 2238, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprReference{ @@ -6115,7 +6115,7 @@ func TestPhp7(t *testing.T) { EndPos: 2245, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -6158,7 +6158,7 @@ func TestPhp7(t *testing.T) { EndPos: 2263, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6179,7 +6179,7 @@ func TestPhp7(t *testing.T) { EndPos: 2269, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprList{ @@ -6219,7 +6219,7 @@ func TestPhp7(t *testing.T) { EndPos: 2280, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -6264,7 +6264,7 @@ func TestPhp7(t *testing.T) { EndPos: 2299, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Key: &ast.ExprVariable{ @@ -6285,7 +6285,7 @@ func TestPhp7(t *testing.T) { EndPos: 2305, }, }, - Value: []byte("k"), + Value: []byte("$k"), }, }, Var: &ast.ExprShortList{ @@ -6325,7 +6325,7 @@ func TestPhp7(t *testing.T) { EndPos: 2312, }, }, - Value: []byte("v"), + Value: []byte("$v"), }, }, }, @@ -6519,7 +6519,7 @@ func TestPhp7(t *testing.T) { EndPos: 2433, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -6540,7 +6540,7 @@ func TestPhp7(t *testing.T) { EndPos: 2437, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -6614,7 +6614,7 @@ func TestPhp7(t *testing.T) { EndPos: 2463, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6656,7 +6656,7 @@ func TestPhp7(t *testing.T) { EndPos: 2476, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6698,7 +6698,7 @@ func TestPhp7(t *testing.T) { EndPos: 2491, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -6742,7 +6742,7 @@ func TestPhp7(t *testing.T) { EndPos: 2504, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6805,7 +6805,7 @@ func TestPhp7(t *testing.T) { EndPos: 2525, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6847,7 +6847,7 @@ func TestPhp7(t *testing.T) { EndPos: 2540, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -6889,7 +6889,7 @@ func TestPhp7(t *testing.T) { EndPos: 2555, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -6954,7 +6954,7 @@ func TestPhp7(t *testing.T) { EndPos: 2576, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Stmt: &ast.StmtStmtList{ @@ -6996,7 +6996,7 @@ func TestPhp7(t *testing.T) { EndPos: 2591, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Stmt: &ast.StmtStmtList{ @@ -7048,7 +7048,7 @@ func TestPhp7(t *testing.T) { EndPos: 2607, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, Stmt: &ast.StmtStmtList{ @@ -7415,7 +7415,7 @@ func TestPhp7(t *testing.T) { EndPos: 2796, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7505,7 +7505,7 @@ func TestPhp7(t *testing.T) { EndPos: 2828, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7536,7 +7536,7 @@ func TestPhp7(t *testing.T) { EndPos: 2832, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -7592,7 +7592,7 @@ func TestPhp7(t *testing.T) { EndPos: 2850, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -7623,7 +7623,7 @@ func TestPhp7(t *testing.T) { EndPos: 2854, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, Expr: &ast.ScalarLnumber{ @@ -8030,7 +8030,7 @@ func TestPhp7(t *testing.T) { EndPos: 3103, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -8966,7 +8966,7 @@ func TestPhp7(t *testing.T) { EndPos: 3445, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -9059,7 +9059,7 @@ func TestPhp7(t *testing.T) { EndPos: 3495, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -9129,7 +9129,7 @@ func TestPhp7(t *testing.T) { EndPos: 3528, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -9186,7 +9186,7 @@ func TestPhp7(t *testing.T) { EndPos: 3559, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -9256,7 +9256,7 @@ func TestPhp7(t *testing.T) { EndPos: 3592, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, Stmts: []ast.Vertex{}, @@ -9302,7 +9302,7 @@ func TestPhp7(t *testing.T) { EndPos: 3619, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -9323,7 +9323,7 @@ func TestPhp7(t *testing.T) { EndPos: 3623, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10637,7 +10637,7 @@ func TestPhp7(t *testing.T) { EndPos: 3991, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -10698,7 +10698,7 @@ func TestPhp7(t *testing.T) { EndPos: 4000, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Dim: &ast.ScalarLnumber{ @@ -10877,7 +10877,7 @@ func TestPhp7(t *testing.T) { EndPos: 4048, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -10922,7 +10922,7 @@ func TestPhp7(t *testing.T) { EndPos: 4057, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -10963,7 +10963,7 @@ func TestPhp7(t *testing.T) { EndPos: 4064, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11058,7 +11058,7 @@ func TestPhp7(t *testing.T) { EndPos: 4085, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ConstantName: &ast.Identifier{ @@ -11110,7 +11110,7 @@ func TestPhp7(t *testing.T) { EndPos: 4102, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11151,7 +11151,7 @@ func TestPhp7(t *testing.T) { EndPos: 4115, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11229,7 +11229,7 @@ func TestPhp7(t *testing.T) { EndPos: 4146, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11262,7 +11262,7 @@ func TestPhp7(t *testing.T) { EndPos: 4150, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -11295,7 +11295,7 @@ func TestPhp7(t *testing.T) { EndPos: 4159, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, &ast.ExprReference{ @@ -11325,7 +11325,7 @@ func TestPhp7(t *testing.T) { EndPos: 4164, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -11545,7 +11545,7 @@ func TestPhp7(t *testing.T) { EndPos: 4236, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11586,7 +11586,7 @@ func TestPhp7(t *testing.T) { EndPos: 4244, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11627,7 +11627,7 @@ func TestPhp7(t *testing.T) { EndPos: 4255, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11690,7 +11690,7 @@ func TestPhp7(t *testing.T) { EndPos: 4275, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11753,7 +11753,7 @@ func TestPhp7(t *testing.T) { EndPos: 4293, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -11953,7 +11953,7 @@ func TestPhp7(t *testing.T) { EndPos: 4340, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, ArgumentList: &ast.ArgumentList{ @@ -12004,7 +12004,7 @@ func TestPhp7(t *testing.T) { EndPos: 4349, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12045,7 +12045,7 @@ func TestPhp7(t *testing.T) { EndPos: 4357, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12086,7 +12086,7 @@ func TestPhp7(t *testing.T) { EndPos: 4367, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12127,7 +12127,7 @@ func TestPhp7(t *testing.T) { EndPos: 4375, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12168,7 +12168,7 @@ func TestPhp7(t *testing.T) { EndPos: 4390, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12209,7 +12209,7 @@ func TestPhp7(t *testing.T) { EndPos: 4409, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12250,7 +12250,7 @@ func TestPhp7(t *testing.T) { EndPos: 4423, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12291,7 +12291,7 @@ func TestPhp7(t *testing.T) { EndPos: 4442, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12332,7 +12332,7 @@ func TestPhp7(t *testing.T) { EndPos: 4449, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameName{ @@ -12396,7 +12396,7 @@ func TestPhp7(t *testing.T) { EndPos: 4470, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameRelative{ @@ -12460,7 +12460,7 @@ func TestPhp7(t *testing.T) { EndPos: 4501, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Class: &ast.NameFullyQualified{ @@ -12525,7 +12525,7 @@ func TestPhp7(t *testing.T) { EndPos: 4530, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, &ast.ExprVariable{ @@ -12546,7 +12546,7 @@ func TestPhp7(t *testing.T) { EndPos: 4534, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12607,7 +12607,7 @@ func TestPhp7(t *testing.T) { EndPos: 4546, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12631,7 +12631,7 @@ func TestPhp7(t *testing.T) { EndPos: 4552, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12700,7 +12700,7 @@ func TestPhp7(t *testing.T) { EndPos: 4563, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12725,7 +12725,7 @@ func TestPhp7(t *testing.T) { EndPos: 4571, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12804,7 +12804,7 @@ func TestPhp7(t *testing.T) { EndPos: 4587, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -12831,7 +12831,7 @@ func TestPhp7(t *testing.T) { EndPos: 4594, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -12872,7 +12872,7 @@ func TestPhp7(t *testing.T) { EndPos: 4601, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Method: &ast.Identifier{ @@ -13123,7 +13123,7 @@ func TestPhp7(t *testing.T) { EndPos: 4675, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13156,7 +13156,7 @@ func TestPhp7(t *testing.T) { EndPos: 4682, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -13202,7 +13202,7 @@ func TestPhp7(t *testing.T) { EndPos: 4698, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13243,7 +13243,7 @@ func TestPhp7(t *testing.T) { EndPos: 4705, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Property: &ast.Identifier{ @@ -13307,7 +13307,7 @@ func TestPhp7(t *testing.T) { EndPos: 4721, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13518,7 +13518,7 @@ func TestPhp7(t *testing.T) { EndPos: 4764, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -13582,7 +13582,7 @@ func TestPhp7(t *testing.T) { EndPos: 4774, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13606,7 +13606,7 @@ func TestPhp7(t *testing.T) { EndPos: 4780, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -13675,7 +13675,7 @@ func TestPhp7(t *testing.T) { EndPos: 4787, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13700,7 +13700,7 @@ func TestPhp7(t *testing.T) { EndPos: 4795, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -13779,7 +13779,7 @@ func TestPhp7(t *testing.T) { EndPos: 4807, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -13806,7 +13806,7 @@ func TestPhp7(t *testing.T) { EndPos: 4814, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -14062,7 +14062,7 @@ func TestPhp7(t *testing.T) { EndPos: 4880, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -14103,7 +14103,7 @@ func TestPhp7(t *testing.T) { EndPos: 4888, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.ExprVariable{ @@ -14124,7 +14124,7 @@ func TestPhp7(t *testing.T) { EndPos: 4894, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -14188,7 +14188,7 @@ func TestPhp7(t *testing.T) { EndPos: 4917, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -14252,7 +14252,7 @@ func TestPhp7(t *testing.T) { EndPos: 4931, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -14293,7 +14293,7 @@ func TestPhp7(t *testing.T) { EndPos: 4937, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -14314,7 +14314,7 @@ func TestPhp7(t *testing.T) { EndPos: 4942, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -14335,7 +14335,7 @@ func TestPhp7(t *testing.T) { EndPos: 4947, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -14376,7 +14376,7 @@ func TestPhp7(t *testing.T) { EndPos: 4953, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfFalse: &ast.ExprVariable{ @@ -14397,7 +14397,7 @@ func TestPhp7(t *testing.T) { EndPos: 4960, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -14438,7 +14438,7 @@ func TestPhp7(t *testing.T) { EndPos: 4966, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprTernary{ @@ -14468,7 +14468,7 @@ func TestPhp7(t *testing.T) { EndPos: 4971, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfTrue: &ast.ExprVariable{ @@ -14489,7 +14489,7 @@ func TestPhp7(t *testing.T) { EndPos: 4976, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, IfFalse: &ast.ExprVariable{ @@ -14510,7 +14510,7 @@ func TestPhp7(t *testing.T) { EndPos: 4981, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, }, @@ -14532,7 +14532,7 @@ func TestPhp7(t *testing.T) { EndPos: 4986, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -14582,7 +14582,7 @@ func TestPhp7(t *testing.T) { EndPos: 4992, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, IfTrue: &ast.ExprVariable{ @@ -14603,7 +14603,7 @@ func TestPhp7(t *testing.T) { EndPos: 4997, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, IfFalse: &ast.ExprVariable{ @@ -14624,7 +14624,7 @@ func TestPhp7(t *testing.T) { EndPos: 5002, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, }, @@ -14646,7 +14646,7 @@ func TestPhp7(t *testing.T) { EndPos: 5007, }, }, - Value: []byte("d"), + Value: []byte("$d"), }, }, IfFalse: &ast.ExprVariable{ @@ -14667,7 +14667,7 @@ func TestPhp7(t *testing.T) { EndPos: 5012, }, }, - Value: []byte("e"), + Value: []byte("$e"), }, }, }, @@ -14708,7 +14708,7 @@ func TestPhp7(t *testing.T) { EndPos: 5019, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14749,7 +14749,7 @@ func TestPhp7(t *testing.T) { EndPos: 5026, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14790,7 +14790,7 @@ func TestPhp7(t *testing.T) { EndPos: 5033, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14851,7 +14851,7 @@ func TestPhp7(t *testing.T) { EndPos: 5054, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14892,7 +14892,7 @@ func TestPhp7(t *testing.T) { EndPos: 5066, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Value: &ast.ExprVariable{ @@ -14913,7 +14913,7 @@ func TestPhp7(t *testing.T) { EndPos: 5072, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -14954,7 +14954,7 @@ func TestPhp7(t *testing.T) { EndPos: 5089, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -14995,7 +14995,7 @@ func TestPhp7(t *testing.T) { EndPos: 5105, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15036,7 +15036,7 @@ func TestPhp7(t *testing.T) { EndPos: 5120, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15077,7 +15077,7 @@ func TestPhp7(t *testing.T) { EndPos: 5132, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15118,7 +15118,7 @@ func TestPhp7(t *testing.T) { EndPos: 5146, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15159,7 +15159,7 @@ func TestPhp7(t *testing.T) { EndPos: 5159, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15200,7 +15200,7 @@ func TestPhp7(t *testing.T) { EndPos: 5174, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15241,7 +15241,7 @@ func TestPhp7(t *testing.T) { EndPos: 5185, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15282,7 +15282,7 @@ func TestPhp7(t *testing.T) { EndPos: 5199, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15323,7 +15323,7 @@ func TestPhp7(t *testing.T) { EndPos: 5213, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15364,7 +15364,7 @@ func TestPhp7(t *testing.T) { EndPos: 5226, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -15405,7 +15405,7 @@ func TestPhp7(t *testing.T) { EndPos: 5233, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15426,7 +15426,7 @@ func TestPhp7(t *testing.T) { EndPos: 5238, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15467,7 +15467,7 @@ func TestPhp7(t *testing.T) { EndPos: 5244, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15488,7 +15488,7 @@ func TestPhp7(t *testing.T) { EndPos: 5249, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15529,7 +15529,7 @@ func TestPhp7(t *testing.T) { EndPos: 5255, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15550,7 +15550,7 @@ func TestPhp7(t *testing.T) { EndPos: 5260, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15591,7 +15591,7 @@ func TestPhp7(t *testing.T) { EndPos: 5266, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15612,7 +15612,7 @@ func TestPhp7(t *testing.T) { EndPos: 5272, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15653,7 +15653,7 @@ func TestPhp7(t *testing.T) { EndPos: 5278, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15674,7 +15674,7 @@ func TestPhp7(t *testing.T) { EndPos: 5284, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15715,7 +15715,7 @@ func TestPhp7(t *testing.T) { EndPos: 5290, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15736,7 +15736,7 @@ func TestPhp7(t *testing.T) { EndPos: 5296, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15777,7 +15777,7 @@ func TestPhp7(t *testing.T) { EndPos: 5302, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15798,7 +15798,7 @@ func TestPhp7(t *testing.T) { EndPos: 5307, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15839,7 +15839,7 @@ func TestPhp7(t *testing.T) { EndPos: 5313, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15860,7 +15860,7 @@ func TestPhp7(t *testing.T) { EndPos: 5318, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15901,7 +15901,7 @@ func TestPhp7(t *testing.T) { EndPos: 5324, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15922,7 +15922,7 @@ func TestPhp7(t *testing.T) { EndPos: 5330, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -15963,7 +15963,7 @@ func TestPhp7(t *testing.T) { EndPos: 5336, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -15984,7 +15984,7 @@ func TestPhp7(t *testing.T) { EndPos: 5342, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16025,7 +16025,7 @@ func TestPhp7(t *testing.T) { EndPos: 5348, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16046,7 +16046,7 @@ func TestPhp7(t *testing.T) { EndPos: 5353, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16087,7 +16087,7 @@ func TestPhp7(t *testing.T) { EndPos: 5359, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16108,7 +16108,7 @@ func TestPhp7(t *testing.T) { EndPos: 5366, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16149,7 +16149,7 @@ func TestPhp7(t *testing.T) { EndPos: 5372, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16170,7 +16170,7 @@ func TestPhp7(t *testing.T) { EndPos: 5379, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16211,7 +16211,7 @@ func TestPhp7(t *testing.T) { EndPos: 5385, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16232,7 +16232,7 @@ func TestPhp7(t *testing.T) { EndPos: 5391, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16273,7 +16273,7 @@ func TestPhp7(t *testing.T) { EndPos: 5397, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16294,7 +16294,7 @@ func TestPhp7(t *testing.T) { EndPos: 5404, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16335,7 +16335,7 @@ func TestPhp7(t *testing.T) { EndPos: 5410, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16356,7 +16356,7 @@ func TestPhp7(t *testing.T) { EndPos: 5415, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16397,7 +16397,7 @@ func TestPhp7(t *testing.T) { EndPos: 5421, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16418,7 +16418,7 @@ func TestPhp7(t *testing.T) { EndPos: 5426, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16459,7 +16459,7 @@ func TestPhp7(t *testing.T) { EndPos: 5432, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16480,7 +16480,7 @@ func TestPhp7(t *testing.T) { EndPos: 5437, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16521,7 +16521,7 @@ func TestPhp7(t *testing.T) { EndPos: 5443, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16542,7 +16542,7 @@ func TestPhp7(t *testing.T) { EndPos: 5449, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16583,7 +16583,7 @@ func TestPhp7(t *testing.T) { EndPos: 5455, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16604,7 +16604,7 @@ func TestPhp7(t *testing.T) { EndPos: 5462, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16645,7 +16645,7 @@ func TestPhp7(t *testing.T) { EndPos: 5468, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16666,7 +16666,7 @@ func TestPhp7(t *testing.T) { EndPos: 5473, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16707,7 +16707,7 @@ func TestPhp7(t *testing.T) { EndPos: 5479, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16728,7 +16728,7 @@ func TestPhp7(t *testing.T) { EndPos: 5485, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16769,7 +16769,7 @@ func TestPhp7(t *testing.T) { EndPos: 5491, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16790,7 +16790,7 @@ func TestPhp7(t *testing.T) { EndPos: 5497, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16831,7 +16831,7 @@ func TestPhp7(t *testing.T) { EndPos: 5503, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16852,7 +16852,7 @@ func TestPhp7(t *testing.T) { EndPos: 5509, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16893,7 +16893,7 @@ func TestPhp7(t *testing.T) { EndPos: 5515, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16914,7 +16914,7 @@ func TestPhp7(t *testing.T) { EndPos: 5521, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -16955,7 +16955,7 @@ func TestPhp7(t *testing.T) { EndPos: 5527, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -16976,7 +16976,7 @@ func TestPhp7(t *testing.T) { EndPos: 5532, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17017,7 +17017,7 @@ func TestPhp7(t *testing.T) { EndPos: 5538, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Right: &ast.ExprVariable{ @@ -17038,7 +17038,7 @@ func TestPhp7(t *testing.T) { EndPos: 5545, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17079,7 +17079,7 @@ func TestPhp7(t *testing.T) { EndPos: 5552, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17100,7 +17100,7 @@ func TestPhp7(t *testing.T) { EndPos: 5558, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17141,7 +17141,7 @@ func TestPhp7(t *testing.T) { EndPos: 5564, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17162,7 +17162,7 @@ func TestPhp7(t *testing.T) { EndPos: 5569, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17203,7 +17203,7 @@ func TestPhp7(t *testing.T) { EndPos: 5575, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17224,7 +17224,7 @@ func TestPhp7(t *testing.T) { EndPos: 5581, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17265,7 +17265,7 @@ func TestPhp7(t *testing.T) { EndPos: 5587, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17286,7 +17286,7 @@ func TestPhp7(t *testing.T) { EndPos: 5593, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17327,7 +17327,7 @@ func TestPhp7(t *testing.T) { EndPos: 5599, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17348,7 +17348,7 @@ func TestPhp7(t *testing.T) { EndPos: 5605, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17389,7 +17389,7 @@ func TestPhp7(t *testing.T) { EndPos: 5611, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17410,7 +17410,7 @@ func TestPhp7(t *testing.T) { EndPos: 5617, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17451,7 +17451,7 @@ func TestPhp7(t *testing.T) { EndPos: 5623, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17472,7 +17472,7 @@ func TestPhp7(t *testing.T) { EndPos: 5629, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17513,7 +17513,7 @@ func TestPhp7(t *testing.T) { EndPos: 5635, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17534,7 +17534,7 @@ func TestPhp7(t *testing.T) { EndPos: 5641, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17575,7 +17575,7 @@ func TestPhp7(t *testing.T) { EndPos: 5647, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17596,7 +17596,7 @@ func TestPhp7(t *testing.T) { EndPos: 5653, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17637,7 +17637,7 @@ func TestPhp7(t *testing.T) { EndPos: 5659, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17658,7 +17658,7 @@ func TestPhp7(t *testing.T) { EndPos: 5665, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17699,7 +17699,7 @@ func TestPhp7(t *testing.T) { EndPos: 5671, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17720,7 +17720,7 @@ func TestPhp7(t *testing.T) { EndPos: 5677, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17761,7 +17761,7 @@ func TestPhp7(t *testing.T) { EndPos: 5683, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17782,7 +17782,7 @@ func TestPhp7(t *testing.T) { EndPos: 5690, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17823,7 +17823,7 @@ func TestPhp7(t *testing.T) { EndPos: 5696, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17844,7 +17844,7 @@ func TestPhp7(t *testing.T) { EndPos: 5703, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -17885,7 +17885,7 @@ func TestPhp7(t *testing.T) { EndPos: 5709, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, Expr: &ast.ExprVariable{ @@ -17906,7 +17906,7 @@ func TestPhp7(t *testing.T) { EndPos: 5716, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18095,7 +18095,7 @@ func TestPhp7(t *testing.T) { EndPos: 5794, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18128,7 +18128,7 @@ func TestPhp7(t *testing.T) { EndPos: 5801, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18276,7 +18276,7 @@ func TestPhp7(t *testing.T) { EndPos: 5927, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, DefaultValue: &ast.ScalarLnumber{ @@ -18320,7 +18320,7 @@ func TestPhp7(t *testing.T) { EndPos: 5938, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, DefaultValue: &ast.ScalarLnumber{ @@ -18364,7 +18364,7 @@ func TestPhp7(t *testing.T) { EndPos: 5946, }, }, - Value: []byte("c"), + Value: []byte("$c"), }, }, DefaultValue: &ast.ScalarLnumber{ @@ -18444,7 +18444,7 @@ func TestPhp7(t *testing.T) { EndPos: 5978, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -18488,7 +18488,7 @@ func TestPhp7(t *testing.T) { EndPos: 5991, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -18857,7 +18857,7 @@ func TestPhp7(t *testing.T) { EndPos: 6142, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, }, @@ -19090,7 +19090,7 @@ func TestPhp7(t *testing.T) { EndPos: 6183, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, }, @@ -19228,7 +19228,7 @@ func TestPhp7(t *testing.T) { EndPos: 6212, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, ArgumentList: &ast.ArgumentList{ @@ -19311,7 +19311,7 @@ func TestPhp7(t *testing.T) { EndPos: 6228, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, Dim: &ast.ScalarLnumber{ @@ -19374,7 +19374,7 @@ func TestPhp7(t *testing.T) { EndPos: 6245, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.ExprVariable{ @@ -19395,7 +19395,7 @@ func TestPhp7(t *testing.T) { EndPos: 6251, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, }, @@ -19436,7 +19436,7 @@ func TestPhp7(t *testing.T) { EndPos: 6259, }, }, - Value: []byte("foo"), + Value: []byte("$foo"), }, }, Property: &ast.ExprArrayDimFetch{ @@ -19466,7 +19466,7 @@ func TestPhp7(t *testing.T) { EndPos: 6266, }, }, - Value: []byte("bar"), + Value: []byte("$bar"), }, }, Dim: &ast.ScalarLnumber{ @@ -19549,7 +19549,7 @@ func TestPhp7(t *testing.T) { EndPos: 6282, }, }, - Value: []byte("a"), + Value: []byte("$a"), }, }, }, @@ -19611,7 +19611,7 @@ func TestPhp7(t *testing.T) { EndPos: 6294, }, }, - Value: []byte("b"), + Value: []byte("$b"), }, }, }, @@ -19945,7 +19945,7 @@ CAD; EndPos: 85, }, }, - Value: []byte("world"), + Value: []byte("$world"), }, }, &ast.ScalarEncapsedStringPart{ diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 421db21..09399dd 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1,10 +1,11 @@ package printer import ( - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/token" "io" "strings" + + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" ) type printerState int @@ -1860,7 +1861,7 @@ func (p *Printer) printExprVariable(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.printFreeFloating(nn, token.Dollar) - if nn.GetNode().Tokens.IsEmpty() { + if _, ok := nn.VarName.(*ast.Identifier); !ok { io.WriteString(p.w, "$") } diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index e632f11..2257614 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -1084,7 +1084,7 @@ func TestParseAndPrintPhp5Shebang(t *testing.T) { test Date: Fri, 3 Jul 2020 00:20:32 +0300 Subject: [PATCH 027/140] [refactoring] remove param withTokens from parser --- internal/php5/parser.go | 79 +- internal/php5/parser_test.go | 516 +++--- internal/php5/php5.go | 1368 +++++++-------- internal/php5/php5.y | 1370 +++++++-------- internal/php5/php5_bench_test.go | 2 +- internal/php5/php5_test.go | 8 +- internal/php7/parser.go | 78 +- internal/php7/parser_test.go | 564 +++--- internal/php7/php7.go | 2131 +++++++++++------------ internal/php7/php7.y | 1155 ++++++------ internal/php7/php7_bench_test.go | 2 +- internal/php7/php7_test.go | 8 +- internal/scanner/lexer.go | 29 +- internal/scanner/scanner.go | 897 +++++----- internal/scanner/scanner.rl | 29 +- internal/scanner/scanner_test.go | 113 +- internal/scanner/token.go | 2 +- pkg/parser/parser.go | 4 +- pkg/printer/printer_parsed_php5_test.go | 5 +- pkg/printer/printer_parsed_php7_test.go | 4 +- 20 files changed, 4207 insertions(+), 4157 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 02bc113..04a37f3 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -14,14 +14,12 @@ type Parser struct { Lexer *scanner.Lexer currentToken *scanner.Token rootNode ast.Vertex - withTokens bool errHandlerFunc func(*errors.Error) } // NewParser creates and returns new Parser -func NewParser(lexer *scanner.Lexer, withTokens bool, errHandlerFunc func(*errors.Error)) *Parser { +func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser { return &Parser{ - withTokens: withTokens, Lexer: lexer, errHandlerFunc: errHandlerFunc, } @@ -63,7 +61,7 @@ func lastNode(nn []ast.Vertex) ast.Vertex { } func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if p.withTokens == false { + if _, ok := src.GetNode().Tokens[token.Start]; !ok { return } @@ -71,42 +69,64 @@ func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { return } - p.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) - delete(src.GetNode().Tokens, token.Start) -} - -func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, strings []token.Token) { - if p.withTokens == false { - return - } - - if len(strings) == 0 { - return - } - dstCollection := &dst.GetNode().Tokens if *dstCollection == nil { *dstCollection = make(token.Collection) } - (*dstCollection)[pos] = strings + (*dstCollection)[token.Start] = src.GetNode().Tokens[token.Start] + delete(src.GetNode().Tokens, token.Start) } -func (p *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if p.withTokens == false { - return []token.Token{} +func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []token.Token) { + if len(tokens) == 0 { + return } - return []token.Token{ - { - ID: token.ID(t.ID), - Value: t.Value, - }, + dstCollection := &dst.GetNode().Tokens + if *dstCollection == nil { + *dstCollection = make(token.Collection) } + + l := len(tokens) + for _, v := range tokens[0 : l-1] { + (*dstCollection)[pos] = append((*dstCollection)[pos], v) + } +} + +func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []token.Token) { + if len(tokens) == 0 { + return + } + + dstCollection := &dst.GetNode().Tokens + if *dstCollection == nil { + *dstCollection = make(token.Collection) + } + + (*dstCollection)[pos] = make([]token.Token, 0) + + for _, v := range tokens { + (*dstCollection)[pos] = append((*dstCollection)[pos], v) + } +} + +func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []token.Token) { + if len(tokens) == 0 { + return + } + + dstCollection := &dst.GetNode().Tokens + if *dstCollection == nil { + *dstCollection = make(token.Collection) + } + + l := len(tokens) + (*dstCollection)[pos] = append((*dstCollection)[pos], tokens[l-1]) } func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if p.withTokens == false { + if _, ok := prevNode.GetNode().Tokens[token.SemiColon]; !ok { return } @@ -117,7 +137,7 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } if semiColon[0].Value[0] == ';' { - p.setFreeFloating(prevNode, token.SemiColon, []token.Token{ + p.setFreeFloatingTokens(prevNode, token.SemiColon, []token.Token{ { ID: token.ID(';'), Value: semiColon[0].Value[0:1], @@ -126,7 +146,6 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } vlen := len(semiColon[0].Value) - tlen := 2 if bytes.HasSuffix(semiColon[0].Value, []byte("?>\n")) { tlen = 3 @@ -145,7 +164,7 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. Value: semiColon[0].Value[vlen-tlen:], }) - p.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) + p.setFreeFloatingTokens(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) } func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 223eb2b..2102e1c 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -59,7 +59,7 @@ func TestIdentifier(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -842,7 +842,7 @@ func TestPhp5ArgumentNode(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1596,7 +1596,7 @@ func TestPhp5ParameterNode(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1618,7 +1618,7 @@ func TestCommentEndFile(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1696,7 +1696,7 @@ func TestName(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1772,7 +1772,7 @@ func TestFullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1848,7 +1848,7 @@ func TestRelative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1927,7 +1927,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2004,7 +2004,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2092,7 +2092,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2190,7 +2190,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2299,7 +2299,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2376,7 +2376,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2474,7 +2474,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2582,7 +2582,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2674,7 +2674,7 @@ LBL; } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2766,7 +2766,7 @@ LBL; } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2826,7 +2826,7 @@ LBL; } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2872,7 +2872,7 @@ CAD; } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2932,7 +2932,7 @@ CAD; } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2977,7 +2977,7 @@ func TestScalarMagicConstant(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3021,7 +3021,7 @@ func TestScalarNumber_LNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3065,7 +3065,7 @@ func TestScalarNumber_DNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3109,7 +3109,7 @@ func TestScalarNumber_Float(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3153,7 +3153,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3197,7 +3197,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3241,7 +3241,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3285,7 +3285,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3329,7 +3329,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3373,7 +3373,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3419,7 +3419,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3463,7 +3463,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3509,7 +3509,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3579,7 +3579,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3692,7 +3692,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3782,7 +3782,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3960,7 +3960,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4082,7 +4082,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4161,7 +4161,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4310,7 +4310,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4413,7 +4413,7 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4528,7 +4528,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4573,7 +4573,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4631,7 +4631,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4722,7 +4722,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4815,7 +4815,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4931,7 +4931,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5030,7 +5030,7 @@ func TestStmtConstList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5096,7 +5096,7 @@ func TestStmtContinue_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5173,7 +5173,7 @@ func TestStmtContinue_Light(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5250,7 +5250,7 @@ func TestStmtContinue(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5327,7 +5327,7 @@ func TestStmtDeclare(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5437,7 +5437,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5516,7 +5516,7 @@ func TestStmtDeclare_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5571,7 +5571,7 @@ func TestStmtDo(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5638,7 +5638,7 @@ func TestStmtEcho(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5694,7 +5694,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5738,7 +5738,7 @@ func TestStmtExpression(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5934,7 +5934,7 @@ func TestStmtFor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6055,7 +6055,7 @@ func TestStmtFor_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6141,7 +6141,7 @@ func TestStmtForeach(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6217,7 +6217,7 @@ func TestStmtForeach_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6303,7 +6303,7 @@ func TestStmtForeach_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6410,7 +6410,7 @@ func TestStmtForeach_WithKey(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6507,7 +6507,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6624,7 +6624,7 @@ func TestStmtForeach_WithRef(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6753,7 +6753,7 @@ func TestStmtForeach_WithList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6799,7 +6799,7 @@ func TestStmtFunction(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6856,7 +6856,7 @@ func TestStmtFunction_Return(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7024,7 +7024,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7092,7 +7092,7 @@ func TestStmtFunction_Ref(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7148,7 +7148,7 @@ func TestStmtGlobal(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7309,7 +7309,7 @@ func TestStmtGlobal_Vars(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7374,7 +7374,7 @@ func TestStmtGotoLabel(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7407,7 +7407,7 @@ func TestStmtHaltCompiler(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7472,7 +7472,7 @@ func TestStmtIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7581,7 +7581,7 @@ func TestStmtIf_ElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7667,7 +7667,7 @@ func TestStmtIf_Else(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7839,7 +7839,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8021,7 +8021,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8065,7 +8065,7 @@ func TestStmtInlineHtml(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8110,7 +8110,7 @@ func TestStmtInterface(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8190,7 +8190,7 @@ func TestStmtInterface_Extend(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8293,7 +8293,7 @@ func TestStmtInterface_Extends(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8349,7 +8349,7 @@ func TestStmtNamespace(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8406,7 +8406,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8440,7 +8440,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8542,7 +8542,7 @@ func TestStmtProperty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8697,7 +8697,7 @@ func TestStmtProperty_Properties(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8852,7 +8852,7 @@ func TestStmtProperty_Properties2(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8918,7 +8918,7 @@ func TestStmtStaticVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9026,7 +9026,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9134,7 +9134,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9261,7 +9261,7 @@ func TestStmtSwitch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9388,7 +9388,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9505,7 +9505,7 @@ func TestStmtSwitch_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9610,7 +9610,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9664,7 +9664,7 @@ func TestStmtThrow(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9709,7 +9709,7 @@ func TestStmtTrait(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9800,7 +9800,7 @@ func TestStmtTraitUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9914,7 +9914,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10028,7 +10028,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10186,7 +10186,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10355,7 +10355,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10638,7 +10638,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10675,7 +10675,7 @@ func TestStmtTry_Try(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10770,7 +10770,7 @@ func TestStmtTry_TryCatch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10922,7 +10922,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11028,7 +11028,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11235,7 +11235,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11291,7 +11291,7 @@ func TestStmtUnset(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11368,7 +11368,7 @@ func TestStmtUnset_Vars(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11436,7 +11436,7 @@ func TestStmtUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11504,7 +11504,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11583,7 +11583,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11684,7 +11684,7 @@ func TestStmtUse_List(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11796,7 +11796,7 @@ func TestStmtUse_ListAlias(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11908,7 +11908,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12042,7 +12042,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12154,7 +12154,7 @@ func TestStmtUse_ListConstType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12288,7 +12288,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12354,7 +12354,7 @@ func TestStmtBreak_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12431,7 +12431,7 @@ func TestStmtBreak_Light(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12508,7 +12508,7 @@ func TestStmtBreak(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12585,7 +12585,7 @@ func TestExprArrayDimFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12681,7 +12681,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12725,7 +12725,7 @@ func TestExprArray(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12791,7 +12791,7 @@ func TestExprArray_Item(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12910,7 +12910,7 @@ func TestExprArray_Items(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12974,7 +12974,7 @@ func TestExprBitwiseNot(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13038,7 +13038,7 @@ func TestExprBooleanNot(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13115,7 +13115,7 @@ func TestExprClassConstFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13180,7 +13180,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13244,7 +13244,7 @@ func TestExprClone_Brackets(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13308,7 +13308,7 @@ func TestExprClone(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13354,7 +13354,7 @@ func TestExprClosure(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13532,7 +13532,7 @@ func TestExprClosure_Use(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13710,7 +13710,7 @@ func TestExprClosure_Use2(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13776,7 +13776,7 @@ func TestExprConstFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13842,7 +13842,7 @@ func TestExprConstFetch_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13908,7 +13908,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13972,7 +13972,7 @@ func TestExprEmpty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14036,7 +14036,7 @@ func TestExprErrorSuppress(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14100,7 +14100,7 @@ func TestExprEval(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14144,7 +14144,7 @@ func TestExprExit(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14188,7 +14188,7 @@ func TestExprExit_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14253,7 +14253,7 @@ func TestExprExit_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14297,7 +14297,7 @@ func TestExprDie(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14341,7 +14341,7 @@ func TestExprDie_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14406,7 +14406,7 @@ func TestExprDie_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14482,7 +14482,7 @@ func TestExprFunctionCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14558,7 +14558,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14659,7 +14659,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14778,7 +14778,7 @@ func TestExprFunctionCall_Var(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14910,7 +14910,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14974,7 +14974,7 @@ func TestExprPostDec(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15038,7 +15038,7 @@ func TestExprPostInc(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15102,7 +15102,7 @@ func TestExprPreDec(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15166,7 +15166,7 @@ func TestExprPreInc(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15230,7 +15230,7 @@ func TestExprInclude(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15294,7 +15294,7 @@ func TestExprInclude_Once(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15358,7 +15358,7 @@ func TestExprRequire(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15422,7 +15422,7 @@ func TestExprRequire_Once(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15509,7 +15509,7 @@ func TestExprInstanceOf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15596,7 +15596,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15683,7 +15683,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15749,7 +15749,7 @@ func TestExprIsset(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15836,7 +15836,7 @@ func TestExprIsset_Variables(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15911,7 +15911,7 @@ func TestExprList_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16018,7 +16018,7 @@ func TestExprList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16135,7 +16135,7 @@ func TestExprList_ArrayIndex(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16264,7 +16264,7 @@ func TestExprList_List(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16372,7 +16372,7 @@ func TestExprList_EmptyItem(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16482,7 +16482,7 @@ func TestExprList_EmptyItems(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16567,7 +16567,7 @@ func TestExprMethodCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16633,7 +16633,7 @@ func TestExprNew(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16709,7 +16709,7 @@ func TestExprNew_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16785,7 +16785,7 @@ func TestExprNew_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16849,7 +16849,7 @@ func TestExprPrint(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16924,7 +16924,7 @@ func TestExprPropertyFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17042,7 +17042,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17119,7 +17119,7 @@ func TestExprShellExec(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17163,7 +17163,7 @@ func TestExprShortArray(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17229,7 +17229,7 @@ func TestExprShortArray_Item(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17348,7 +17348,7 @@ func TestExprShortArray_Items(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17435,7 +17435,7 @@ func TestExprStaticCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17522,7 +17522,7 @@ func TestExprStaticCall_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17609,7 +17609,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17706,7 +17706,7 @@ func TestExprStaticCall_Var(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17801,7 +17801,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17888,7 +17888,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17975,7 +17975,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18062,7 +18062,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18168,7 +18168,7 @@ func TestExprTernary(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18253,7 +18253,7 @@ func TestExprTernary_Simple(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18411,7 +18411,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18569,7 +18569,7 @@ func TestExprTernary_NestedCond(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18633,7 +18633,7 @@ func TestExprUnaryMinus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18697,7 +18697,7 @@ func TestExprUnaryPlus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18751,7 +18751,7 @@ func TestExprVariable(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18815,7 +18815,7 @@ func TestExprVariable_Variable(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18858,7 +18858,7 @@ func TestExprYield(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18922,7 +18922,7 @@ func TestExprYield_Val(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19007,7 +19007,7 @@ func TestExprYield_KeyVal(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19061,7 +19061,7 @@ func TestExprYield_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19136,7 +19136,7 @@ func TestExprYield_KeyExpr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19223,7 +19223,7 @@ func TestExprAssign_Assign(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19308,7 +19308,7 @@ func TestExprAssign_Reference(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19405,7 +19405,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19547,7 +19547,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19632,7 +19632,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19717,7 +19717,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19802,7 +19802,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19887,7 +19887,7 @@ func TestExprAssign_Concat(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19972,7 +19972,7 @@ func TestExprAssign_Div(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20057,7 +20057,7 @@ func TestExprAssign_Minus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20142,7 +20142,7 @@ func TestExprAssign_Mod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20227,7 +20227,7 @@ func TestExprAssign_Mul(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20312,7 +20312,7 @@ func TestExprAssign_Plus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20397,7 +20397,7 @@ func TestExprAssign_Pow(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20482,7 +20482,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20567,7 +20567,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20654,7 +20654,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20739,7 +20739,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20824,7 +20824,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20909,7 +20909,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20994,7 +20994,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21079,7 +21079,7 @@ func TestExprBinary_Concat(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21164,7 +21164,7 @@ func TestExprBinary_Div(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21249,7 +21249,7 @@ func TestExprBinary_Equal(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21334,7 +21334,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21419,7 +21419,7 @@ func TestExprBinary_Greater(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21504,7 +21504,7 @@ func TestExprBinary_Identical(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21589,7 +21589,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21674,7 +21674,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21759,7 +21759,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21844,7 +21844,7 @@ func TestExprBinary_Minus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21929,7 +21929,7 @@ func TestExprBinary_Mod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22014,7 +22014,7 @@ func TestExprBinary_Mul(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22099,7 +22099,7 @@ func TestExprBinary_NotEqual(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22184,7 +22184,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22269,7 +22269,7 @@ func TestExprBinary_Plus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22354,7 +22354,7 @@ func TestExprBinary_Pow(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22439,7 +22439,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22524,7 +22524,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22609,7 +22609,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22694,7 +22694,7 @@ func TestExprBinary_Smaller(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22760,7 +22760,7 @@ func TestExprCast_Array(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22824,7 +22824,7 @@ func TestExprCast_Bool(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22888,7 +22888,7 @@ func TestExprCast_BoolShort(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22952,7 +22952,7 @@ func TestExprCast_Double(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23016,7 +23016,7 @@ func TestExprCast_CastFloat(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23080,7 +23080,7 @@ func TestExprCast_Int(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23144,7 +23144,7 @@ func TestExprCast_IntShort(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23208,7 +23208,7 @@ func TestExprCast_Object(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23272,7 +23272,7 @@ func TestExprCast_String(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23336,7 +23336,7 @@ func TestExprCast_BinaryString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23400,7 +23400,7 @@ func TestExprCast_Unset(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 01c6d9d..3e69543 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2321,7 +2321,7 @@ yydefault: yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2359,7 +2359,7 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2374,8 +2374,8 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2422,11 +2422,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2442,10 +2442,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2461,10 +2461,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2478,9 +2478,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2494,9 +2494,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2512,10 +2512,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2531,10 +2531,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2548,8 +2548,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2560,7 +2560,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2603,8 +2603,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2620,8 +2620,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2640,11 +2640,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2655,7 +2655,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2698,8 +2698,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2715,8 +2715,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2735,11 +2735,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2750,7 +2750,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2793,8 +2793,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2810,8 +2810,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2830,11 +2830,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2855,9 +2855,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2876,9 +2876,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, constList) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2948,11 +2948,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2976,8 +2976,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2991,8 +2991,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3012,13 +3012,13 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } @@ -3036,19 +3036,19 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[8].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[8].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[8].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3069,13 +3069,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.While, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } @@ -3091,18 +3091,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) if len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.While, yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[4].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[4].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3127,11 +3127,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3154,13 +3154,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Switch, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } @@ -3176,9 +3176,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3192,9 +3192,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3208,9 +3208,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3224,9 +3224,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3240,9 +3240,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3256,9 +3256,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3272,9 +3272,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3289,8 +3289,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3304,9 +3304,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3320,9 +3320,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3336,10 +3336,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3353,7 +3353,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3368,8 +3368,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3383,11 +3383,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3423,14 +3423,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3466,14 +3466,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3488,9 +3488,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3504,8 +3504,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3523,9 +3523,9 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3539,9 +3539,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3557,10 +3557,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3587,12 +3587,12 @@ yydefault: catchNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3614,9 +3614,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3666,12 +3666,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3690,7 +3690,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3754,17 +3754,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3792,9 +3792,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3810,10 +3810,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3827,7 +3827,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3843,8 +3843,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3858,7 +3858,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3874,8 +3874,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3897,7 +3897,7 @@ yydefault: yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3925,7 +3925,7 @@ yydefault: yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3947,7 +3947,7 @@ yydefault: yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3966,7 +3966,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3985,7 +3985,7 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4007,7 +4007,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4021,9 +4021,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4050,10 +4050,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4080,10 +4080,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4110,10 +4110,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4130,8 +4130,8 @@ yydefault: constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4148,9 +4148,9 @@ yydefault: constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4166,8 +4166,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4183,9 +4183,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4201,10 +4201,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4221,11 +4221,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4248,9 +4248,9 @@ yydefault: _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4265,9 +4265,9 @@ yydefault: _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4306,10 +4306,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4332,13 +4332,13 @@ yydefault: _elseIf.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) } @@ -4365,16 +4365,16 @@ yydefault: _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4396,7 +4396,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4420,8 +4420,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Else, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Else, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4456,7 +4456,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4486,24 +4486,24 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } @@ -4535,25 +4535,25 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } @@ -4577,7 +4577,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4591,7 +4591,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4613,8 +4613,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4628,8 +4628,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4645,8 +4645,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4665,7 +4665,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4707,7 +4707,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4721,7 +4721,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4732,7 +4732,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4756,7 +4756,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4770,7 +4770,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4784,9 +4784,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4805,8 +4805,8 @@ yydefault: staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4825,9 +4825,9 @@ yydefault: staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4846,7 +4846,7 @@ yydefault: staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4865,8 +4865,8 @@ yydefault: staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4897,8 +4897,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4912,8 +4912,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4943,18 +4943,18 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4968,7 +4968,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4987,7 +4987,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5000,8 +5000,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5014,8 +5014,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5058,8 +5058,8 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5070,8 +5070,8 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5086,7 +5086,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5105,7 +5105,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5121,7 +5121,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5146,8 +5146,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5164,8 +5164,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5180,7 +5180,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5210,8 +5210,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5225,8 +5225,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5249,7 +5249,7 @@ yydefault: modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5295,7 +5295,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5309,7 +5309,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5323,7 +5323,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5337,7 +5337,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5351,7 +5351,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5365,7 +5365,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5384,8 +5384,8 @@ yydefault: property.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5404,9 +5404,9 @@ yydefault: property.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5425,7 +5425,7 @@ yydefault: property.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5444,8 +5444,8 @@ yydefault: property.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5466,9 +5466,9 @@ yydefault: yyDollar[1].node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5486,9 +5486,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5499,7 +5499,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5534,7 +5534,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5573,8 +5573,8 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5589,8 +5589,8 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5648,7 +5648,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5664,10 +5664,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5682,7 +5682,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5697,8 +5697,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5725,9 +5725,9 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5741,7 +5741,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5755,7 +5755,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5770,7 +5770,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5785,7 +5785,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5800,7 +5800,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5815,7 +5815,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5830,7 +5830,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5845,7 +5845,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5860,7 +5860,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5875,7 +5875,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5890,7 +5890,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5905,7 +5905,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5920,7 +5920,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5935,7 +5935,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5949,7 +5949,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5964,7 +5964,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5978,7 +5978,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5993,7 +5993,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6008,7 +6008,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6023,7 +6023,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6038,7 +6038,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6053,7 +6053,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6068,7 +6068,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6083,7 +6083,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6098,7 +6098,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6113,7 +6113,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6128,7 +6128,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6143,7 +6143,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6158,7 +6158,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6173,7 +6173,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6188,7 +6188,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6203,7 +6203,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6218,7 +6218,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6233,7 +6233,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6247,7 +6247,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6261,7 +6261,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6275,7 +6275,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6289,7 +6289,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6304,7 +6304,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6319,7 +6319,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6334,7 +6334,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6349,8 +6349,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6365,7 +6365,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6380,7 +6380,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6395,7 +6395,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6410,7 +6410,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6425,7 +6425,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6437,9 +6437,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - yylex.(*Parser).setFreeFloating(yyDollar[1].node, token.Start, append(yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[1].node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[1].node, token.Start, append(yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[1].node.GetNode().Tokens[token.Start]...)) delete(yyDollar[1].node.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating(yyDollar[1].node, token.End, append(yyDollar[1].node.GetNode().Tokens[token.End], yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[1].node, token.End, append(yyDollar[1].node.GetNode().Tokens[token.End], yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]...)) delete(yyDollar[1].node.GetNode().Tokens, token.CloseParenthesisToken) } case 284: @@ -6457,8 +6457,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) for _, n := range yyDollar[4].list { switch nn := n.(type) { @@ -6495,8 +6495,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6511,8 +6511,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6534,8 +6534,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6549,8 +6549,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6564,8 +6564,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6579,8 +6579,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6594,8 +6594,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6609,8 +6609,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6624,8 +6624,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6648,7 +6648,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6662,7 +6662,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6700,7 +6700,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6714,7 +6714,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6728,7 +6728,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6742,20 +6742,20 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) // normalize if yyDollar[6].ClosureUse == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) } @@ -6771,21 +6771,21 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.Tokens) if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.Tokens) // normalize if yyDollar[7].ClosureUse == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) } @@ -6801,7 +6801,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6815,7 +6815,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6829,8 +6829,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6844,8 +6844,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6860,8 +6860,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6876,8 +6876,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6893,9 +6893,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(str, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6910,8 +6910,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6925,9 +6925,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6941,8 +6941,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6970,9 +6970,9 @@ yydefault: yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6989,8 +6989,8 @@ yydefault: variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7009,9 +7009,9 @@ yydefault: reference.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7028,7 +7028,7 @@ yydefault: variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7047,8 +7047,8 @@ yydefault: reference.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7080,8 +7080,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7097,7 +7097,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7112,7 +7112,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7127,7 +7127,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7142,7 +7142,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7157,7 +7157,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7185,7 +7185,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7213,8 +7213,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7228,7 +7228,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7256,8 +7256,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7271,7 +7271,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7298,7 +7298,7 @@ yydefault: yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -7365,7 +7365,7 @@ yydefault: yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7387,8 +7387,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Exit, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7408,9 +7408,9 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Exit, yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken]) delete(yyDollar[1].node.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]) delete(yyDollar[1].node.GetNode().Tokens, token.CloseParenthesisToken) } case 348: @@ -7467,7 +7467,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7481,7 +7481,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7495,7 +7495,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7509,7 +7509,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7523,7 +7523,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7537,7 +7537,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7551,7 +7551,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7565,7 +7565,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7579,7 +7579,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7593,7 +7593,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7609,7 +7609,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7623,7 +7623,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7640,8 +7640,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7697,8 +7697,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7714,7 +7714,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7728,9 +7728,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7744,8 +7744,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7767,7 +7767,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7790,8 +7790,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7806,7 +7806,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7821,7 +7821,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7836,7 +7836,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7851,7 +7851,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7866,7 +7866,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7881,7 +7881,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7895,7 +7895,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7909,7 +7909,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7924,7 +7924,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7939,7 +7939,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7954,7 +7954,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7969,7 +7969,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7984,7 +7984,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7999,7 +7999,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8014,7 +8014,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8029,7 +8029,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8044,7 +8044,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8059,7 +8059,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8074,7 +8074,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8089,7 +8089,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8104,7 +8104,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8119,7 +8119,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8134,8 +8134,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8150,7 +8150,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8165,7 +8165,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8180,7 +8180,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8195,7 +8195,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8210,8 +8210,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8226,8 +8226,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8241,7 +8241,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8255,7 +8255,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8266,8 +8266,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8307,8 +8307,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8324,7 +8324,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8340,7 +8340,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8378,7 +8378,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8392,7 +8392,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8406,7 +8406,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8426,7 +8426,7 @@ yydefault: // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8454,9 +8454,9 @@ yydefault: arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8471,7 +8471,7 @@ yydefault: arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -8488,7 +8488,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8536,8 +8536,8 @@ yydefault: if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.OpenParenthesisToken, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.CloseParenthesisToken, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8554,8 +8554,8 @@ yydefault: if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.OpenParenthesisToken, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.CloseParenthesisToken, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.OpenParenthesisToken, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.CloseParenthesisToken, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8595,7 +8595,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -8679,7 +8679,7 @@ yydefault: yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8694,8 +8694,8 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8710,8 +8710,8 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8783,7 +8783,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8798,7 +8798,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8821,8 +8821,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8837,8 +8837,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8907,8 +8907,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8923,8 +8923,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8948,7 +8948,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -8962,9 +8962,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9015,8 +9015,8 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9031,8 +9031,8 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9058,7 +9058,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9072,8 +9072,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9088,7 +9088,7 @@ yydefault: n.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9107,7 +9107,7 @@ yydefault: n.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9122,7 +9122,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9164,9 +9164,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9198,7 +9198,7 @@ yydefault: // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9214,9 +9214,9 @@ yydefault: arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9231,7 +9231,7 @@ yydefault: arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -9248,7 +9248,7 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9280,10 +9280,10 @@ yydefault: arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9300,8 +9300,8 @@ yydefault: arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9319,8 +9319,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9337,7 +9337,7 @@ yydefault: arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9360,7 +9360,7 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9383,7 +9383,7 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9399,7 +9399,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9417,8 +9417,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9438,8 +9438,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9455,8 +9455,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9474,8 +9474,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9493,10 +9493,10 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9507,8 +9507,8 @@ yydefault: yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9522,7 +9522,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9541,7 +9541,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9557,7 +9557,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9571,9 +9571,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9587,9 +9587,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9603,9 +9603,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9619,7 +9619,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9633,7 +9633,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9647,9 +9647,9 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9663,7 +9663,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9677,7 +9677,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9696,7 +9696,7 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9729,8 +9729,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9747,8 +9747,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9765,8 +9765,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -9783,8 +9783,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 07a2c3b..bd08ea1 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -278,7 +278,7 @@ start: yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -316,7 +316,7 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -329,8 +329,8 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -370,11 +370,11 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -388,10 +388,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -405,10 +405,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -420,9 +420,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -434,9 +434,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -450,10 +450,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -467,10 +467,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -482,8 +482,8 @@ top_statement: $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -495,7 +495,7 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -535,8 +535,8 @@ use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -550,8 +550,8 @@ use_declaration: $$.GetNode().Position = position.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -568,11 +568,11 @@ use_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -584,7 +584,7 @@ use_function_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -624,8 +624,8 @@ use_function_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -639,8 +639,8 @@ use_function_declaration: $$.GetNode().Position = position.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -657,11 +657,11 @@ use_function_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -673,7 +673,7 @@ use_const_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -713,8 +713,8 @@ use_const_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -728,8 +728,8 @@ use_const_declaration: $$.GetNode().Position = position.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -746,11 +746,11 @@ use_const_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -772,9 +772,9 @@ constant_declaration: $$.GetNode().Position = position.NewNodeNodeListPosition($1, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Hidden) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -791,9 +791,9 @@ constant_declaration: $$.GetNode().Position = position.NewTokenNodeListPosition($1, constList) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -856,11 +856,11 @@ inner_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -884,8 +884,8 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -900,8 +900,8 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -919,12 +919,12 @@ unticked_statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -939,17 +939,17 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating($$, token.Cond, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $8.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($8)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $8.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -968,12 +968,12 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.While, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.While, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -986,16 +986,16 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) if len($4.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.While, $4.GetNode().Tokens[token.OpenParenthesisToken][:len($4.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($4.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.While, $4.GetNode().Tokens[token.OpenParenthesisToken][:len($4.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($4.GetNode().Tokens, token.OpenParenthesisToken) } if len($4.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.GetNode().Tokens[token.CloseParenthesisToken][:len($4.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($4.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.GetNode().Tokens[token.CloseParenthesisToken][:len($4.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($4.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1018,11 +1018,11 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.For, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1043,12 +1043,12 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.Switch, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Switch, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1061,9 +1061,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1075,9 +1075,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1089,9 +1089,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1103,9 +1103,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1117,9 +1117,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1131,9 +1131,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1145,9 +1145,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1160,8 +1160,8 @@ unticked_statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1173,9 +1173,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1187,9 +1187,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1201,10 +1201,10 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Echo, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1216,7 +1216,7 @@ unticked_statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1229,8 +1229,8 @@ unticked_statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1242,11 +1242,11 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1280,13 +1280,13 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) + yylex.(*Parser).setFreeFloatingTokens($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1320,13 +1320,13 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) + yylex.(*Parser).setFreeFloatingTokens($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1339,9 +1339,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1353,8 +1353,8 @@ unticked_statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1370,9 +1370,9 @@ unticked_statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1384,9 +1384,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1400,10 +1400,10 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(label, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1429,12 +1429,12 @@ catch_statement: catchNode.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Hidden) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Hidden) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Tokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1455,9 +1455,9 @@ finally_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1506,12 +1506,12 @@ additional_catch: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1529,7 +1529,7 @@ unset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1595,17 +1595,17 @@ unticked_function_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Params, $7.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Params, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1634,9 +1634,9 @@ unticked_class_declaration_statement: $$.GetNode().Position = position.NewNodeTokenPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1650,10 +1650,10 @@ unticked_class_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1669,7 +1669,7 @@ class_entry_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1683,8 +1683,8 @@ class_entry_type: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1696,7 +1696,7 @@ class_entry_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1710,8 +1710,8 @@ class_entry_type: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1732,7 +1732,7 @@ extends_from: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1760,7 +1760,7 @@ interface_extends_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1781,7 +1781,7 @@ implements_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1799,7 +1799,7 @@ interface_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1817,7 +1817,7 @@ foreach_optional_arg: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, token.Key, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Key, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1838,7 +1838,7 @@ foreach_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1850,9 +1850,9 @@ foreach_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.List, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1878,10 +1878,10 @@ for_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1907,10 +1907,10 @@ foreach_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1937,10 +1937,10 @@ declare_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1959,8 +1959,8 @@ declare_list: constant.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating(constant, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1975,9 +1975,9 @@ declare_list: constant.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1995,8 +1995,8 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2010,9 +2010,9 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2026,10 +2026,10 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2044,11 +2044,11 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2071,9 +2071,9 @@ case_list: _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.Hidden) - yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.Tokens) + yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2086,9 +2086,9 @@ case_list: _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2127,10 +2127,10 @@ while_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2154,12 +2154,12 @@ elseif_list: _elseIf.GetNode().Position = position.NewTokenNodePosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2185,14 +2185,14 @@ new_elseif_list: _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $4.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2214,7 +2214,7 @@ else_single: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2238,8 +2238,8 @@ new_else_single: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Else, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Else, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2273,7 +2273,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2304,22 +2304,22 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) // normalize if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) + yylex.(*Parser).setFreeFloatingTokens($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) } if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) + yylex.(*Parser).setFreeFloatingTokens($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) } if $1 == nil { - yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2348,23 +2348,23 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) // normalize if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) + yylex.(*Parser).setFreeFloatingTokens($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) } if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) + yylex.(*Parser).setFreeFloatingTokens($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) } if $1 == nil { - yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2387,7 +2387,7 @@ optional_class_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2399,7 +2399,7 @@ optional_class_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2421,8 +2421,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2434,8 +2434,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2449,8 +2449,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2469,7 +2469,7 @@ non_empty_function_call_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2508,7 +2508,7 @@ function_call_parameter: $$.GetNode().Position = position.NewNodePosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2520,7 +2520,7 @@ function_call_parameter: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2532,7 +2532,7 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2556,7 +2556,7 @@ global_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2568,7 +2568,7 @@ global_var: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2580,9 +2580,9 @@ global_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.Tokens, $3.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2603,8 +2603,8 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2621,9 +2621,9 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2640,7 +2640,7 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2657,8 +2657,8 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2691,8 +2691,8 @@ class_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2704,8 +2704,8 @@ class_statement: $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2731,18 +2731,18 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) } if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2757,7 +2757,7 @@ trait_use_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2775,7 +2775,7 @@ trait_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2789,8 +2789,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2801,8 +2801,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2844,8 +2844,8 @@ trait_adaptation_statement: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2854,8 +2854,8 @@ trait_adaptation_statement: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2871,7 +2871,7 @@ trait_precedence: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2889,7 +2889,7 @@ trait_reference_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2906,7 +2906,7 @@ trait_method_reference: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2930,8 +2930,8 @@ trait_method_reference_fully_qualified: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2949,8 +2949,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2963,7 +2963,7 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2993,8 +2993,8 @@ method_body: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3006,8 +3006,8 @@ method_body: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3029,7 +3029,7 @@ variable_modifiers: modifier.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3074,7 +3074,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3086,7 +3086,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3098,7 +3098,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3110,7 +3110,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3122,7 +3122,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3134,7 +3134,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3154,8 +3154,8 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3172,9 +3172,9 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Var, $4.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3191,7 +3191,7 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3208,8 +3208,8 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(property, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating(property, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(property, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3231,9 +3231,9 @@ class_constant_declaration: $1.GetNode().Position = position.NewNodesPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Hidden) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3249,9 +3249,9 @@ class_constant_declaration: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3263,7 +3263,7 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3297,7 +3297,7 @@ non_empty_for_expr: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3334,8 +3334,8 @@ chaining_dereference: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3348,8 +3348,8 @@ chaining_dereference: fetch.GetNode().Position = position.NewNodePosition($2) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3404,7 +3404,7 @@ new_expr: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3421,10 +3421,10 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3437,7 +3437,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3450,8 +3450,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3476,9 +3476,9 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Hidden) - yylex.(*Parser).setFreeFloating(_new, token.Start, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) + yylex.(*Parser).setFreeFloating(_new, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3490,7 +3490,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3502,7 +3502,7 @@ expr_without_variable: $$.GetNode().Position = position.NewNodesPosition($1, $3) yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3515,7 +3515,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3528,7 +3528,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3541,7 +3541,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3554,7 +3554,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3567,7 +3567,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3580,7 +3580,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3593,7 +3593,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3606,7 +3606,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3619,7 +3619,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3632,7 +3632,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3645,7 +3645,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3658,7 +3658,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3670,7 +3670,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3683,7 +3683,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3695,7 +3695,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3708,7 +3708,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3721,7 +3721,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3734,7 +3734,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3747,7 +3747,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3760,7 +3760,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3773,7 +3773,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3786,7 +3786,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3799,7 +3799,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3812,7 +3812,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3825,7 +3825,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3838,7 +3838,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3851,7 +3851,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3864,7 +3864,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3877,7 +3877,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3890,7 +3890,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3903,7 +3903,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3916,7 +3916,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3928,7 +3928,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3940,7 +3940,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3952,7 +3952,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3964,7 +3964,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3977,7 +3977,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3990,7 +3990,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4003,7 +4003,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4016,8 +4016,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.Equal, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4030,7 +4030,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4043,7 +4043,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4056,7 +4056,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4069,7 +4069,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4082,7 +4082,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4092,8 +4092,8 @@ expr_without_variable: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - yylex.(*Parser).setFreeFloating($1, token.Start, append($1.GetNode().Tokens[token.OpenParenthesisToken], $1.GetNode().Tokens[token.Start]...)); delete($1.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating($1, token.End, append($1.GetNode().Tokens[token.End], $1.GetNode().Tokens[token.CloseParenthesisToken]...)); delete($1.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($1, token.Start, append($1.GetNode().Tokens[token.OpenParenthesisToken], $1.GetNode().Tokens[token.Start]...)); delete($1.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($1, token.End, append($1.GetNode().Tokens[token.End], $1.GetNode().Tokens[token.CloseParenthesisToken]...)); delete($1.GetNode().Tokens, token.CloseParenthesisToken) } | new_expr { @@ -4106,8 +4106,8 @@ expr_without_variable: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) for _, n := range($4) { switch nn := n.(type) { @@ -4142,8 +4142,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4156,8 +4156,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4175,8 +4175,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4188,8 +4188,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4201,8 +4201,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4214,8 +4214,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4227,8 +4227,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4240,8 +4240,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4253,8 +4253,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4275,7 +4275,7 @@ expr_without_variable: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4287,7 +4287,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4317,7 +4317,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4329,7 +4329,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4341,7 +4341,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4353,20 +4353,20 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) // normalize if $6 == nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4379,21 +4379,21 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $10) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Static, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Static, $2.Tokens) if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.Tokens) // normalize if $7 == nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4409,7 +4409,7 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4421,7 +4421,7 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4433,8 +4433,8 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4446,8 +4446,8 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4463,8 +4463,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4477,8 +4477,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4492,9 +4492,9 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition(str, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4507,8 +4507,8 @@ combined_scalar_offset: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4523,9 +4523,9 @@ combined_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4537,8 +4537,8 @@ combined_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4566,9 +4566,9 @@ lexical_vars: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4586,8 +4586,8 @@ lexical_var_list: variable.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4604,9 +4604,9 @@ lexical_var_list: reference.GetNode().Position = position.NewTokensPosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4621,7 +4621,7 @@ lexical_var_list: variable.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4638,8 +4638,8 @@ lexical_var_list: reference.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4670,8 +4670,8 @@ function_call: $$.GetNode().Position = position.NewNodesPosition(funcName, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4685,7 +4685,7 @@ function_call: $$.GetNode().Position = position.NewNodesPosition(funcName, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4698,7 +4698,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4711,7 +4711,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4724,7 +4724,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4737,7 +4737,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4764,7 +4764,7 @@ class_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4788,8 +4788,8 @@ class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4801,7 +4801,7 @@ class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4828,8 +4828,8 @@ fully_qualified_class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4841,7 +4841,7 @@ fully_qualified_class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4868,7 +4868,7 @@ dynamic_class_name_reference: $$ = $1 // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) for _, n := range($3) { switch nn := n.(type) { @@ -4935,7 +4935,7 @@ dynamic_class_name_variable_property: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Hidden) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4956,8 +4956,8 @@ exit_expr: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Exit, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4975,8 +4975,8 @@ exit_expr: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) // save comments - yylex.(*Parser).setFreeFloating($$, token.Exit, $1.GetNode().Tokens[token.OpenParenthesisToken]); delete($1.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloating($$, token.Expr, $1.GetNode().Tokens[token.CloseParenthesisToken]); delete($1.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Exit, $1.GetNode().Tokens[token.OpenParenthesisToken]); delete($1.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $1.GetNode().Tokens[token.CloseParenthesisToken]); delete($1.GetNode().Tokens, token.CloseParenthesisToken) } ; @@ -5029,7 +5029,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5041,7 +5041,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5053,7 +5053,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5065,7 +5065,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5077,7 +5077,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5089,7 +5089,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5101,7 +5101,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5113,7 +5113,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5125,7 +5125,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5137,7 +5137,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5151,7 +5151,7 @@ common_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5163,7 +5163,7 @@ common_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5181,8 +5181,8 @@ static_class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5234,8 +5234,8 @@ static_scalar_value: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5249,7 +5249,7 @@ static_scalar_value: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5261,9 +5261,9 @@ static_scalar_value: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5275,8 +5275,8 @@ static_scalar_value: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5294,7 +5294,7 @@ static_scalar_value: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5316,8 +5316,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5330,7 +5330,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5343,7 +5343,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5356,7 +5356,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5369,7 +5369,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5382,7 +5382,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5395,7 +5395,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5407,7 +5407,7 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5419,7 +5419,7 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5432,7 +5432,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5445,7 +5445,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5458,7 +5458,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5471,7 +5471,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5484,7 +5484,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5497,7 +5497,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5510,7 +5510,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5523,7 +5523,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5536,7 +5536,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5549,7 +5549,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5562,7 +5562,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5575,7 +5575,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5588,7 +5588,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5601,7 +5601,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5614,8 +5614,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.Equal, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5628,7 +5628,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5641,7 +5641,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5654,7 +5654,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5667,7 +5667,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5680,8 +5680,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5694,8 +5694,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5707,7 +5707,7 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5719,7 +5719,7 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5728,8 +5728,8 @@ static_operation: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5766,8 +5766,8 @@ general_constant: $$.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5781,7 +5781,7 @@ general_constant: $$.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5798,7 +5798,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5828,7 +5828,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5840,7 +5840,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5852,7 +5852,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5871,7 +5871,7 @@ static_array_pair_list: // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5899,9 +5899,9 @@ non_empty_static_array_pair_list: arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5914,7 +5914,7 @@ non_empty_static_array_pair_list: arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5929,7 +5929,7 @@ non_empty_static_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5975,8 +5975,8 @@ parenthesis_expr: if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloatingTokens($2, token.OpenParenthesisToken, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($2, token.CloseParenthesisToken, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5991,8 +5991,8 @@ parenthesis_expr: if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) } - yylex.(*Parser).setFreeFloating($2, token.OpenParenthesisToken, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($2, token.CloseParenthesisToken, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloatingTokens($2, token.OpenParenthesisToken, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($2, token.CloseParenthesisToken, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6038,7 +6038,7 @@ variable: } // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) for _, n := range($3) { switch nn := n.(type) { @@ -6121,7 +6121,7 @@ variable_property: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Hidden) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6137,8 +6137,8 @@ array_method_dereference: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6151,8 +6151,8 @@ array_method_dereference: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6222,7 +6222,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6235,7 +6235,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6260,8 +6260,8 @@ array_function_dereference: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6274,8 +6274,8 @@ array_function_dereference: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6340,8 +6340,8 @@ reference_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6354,8 +6354,8 @@ reference_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6379,7 +6379,7 @@ compound_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6391,9 +6391,9 @@ compound_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.Tokens, $3.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6444,8 +6444,8 @@ object_dim_list: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6458,8 +6458,8 @@ object_dim_list: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(fetch, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(fetch, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6484,7 +6484,7 @@ variable_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6496,8 +6496,8 @@ variable_name: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6513,7 +6513,7 @@ simple_indirect_reference: n.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(n, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6530,9 +6530,9 @@ simple_indirect_reference: n.GetNode().Position = position.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(n, token.Start, $2.Tokens) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6546,7 +6546,7 @@ assignment_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6586,9 +6586,9 @@ assignment_list_element: $$.GetNode().Position = position.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6618,7 +6618,7 @@ array_pair_list: // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6635,9 +6635,9 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6650,7 +6650,7 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -6665,7 +6665,7 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6693,10 +6693,10 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewNodesPosition($3, $6) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, $5.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6711,8 +6711,8 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewTokenNodePosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6728,8 +6728,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6744,7 +6744,7 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6766,7 +6766,7 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6785,7 +6785,7 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6802,7 +6802,7 @@ encaps_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6818,8 +6818,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6837,8 +6837,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6852,8 +6852,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6869,8 +6869,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6886,10 +6886,10 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Hidden, yylex.(*Parser).GetFreeFloatingToken($5)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($6.Hidden, yylex.(*Parser).GetFreeFloatingToken($6)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6898,8 +6898,8 @@ encaps_var: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6914,7 +6914,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6931,7 +6931,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6945,7 +6945,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6960,9 +6960,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6974,9 +6974,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6988,9 +6988,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7002,7 +7002,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7014,7 +7014,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7026,9 +7026,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7040,7 +7040,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7052,7 +7052,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7070,7 +7070,7 @@ isset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7103,8 +7103,8 @@ class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7119,8 +7119,8 @@ class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7138,8 +7138,8 @@ static_class_name_scalar: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -7157,8 +7157,8 @@ class_name_scalar: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php5/php5_bench_test.go b/internal/php5/php5_bench_test.go index 4ce4b1e..49efe90 100644 --- a/internal/php5/php5_bench_test.go +++ b/internal/php5/php5_bench_test.go @@ -415,7 +415,7 @@ CAD; for n := 0; n < b.N; n++ { lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() } } diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 6f4d199..e3b98ab 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -22458,7 +22458,7 @@ func TestPhp5(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22596,7 +22596,7 @@ func TestPhp5Strings(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22823,7 +22823,7 @@ CAD; } lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) - php5parser := php5.NewParser(lexer, false, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22849,7 +22849,7 @@ func TestPhp5ControlCharsErrors(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "5.6", false, errorHandlerFunc) - php5parser := php5.NewParser(lexer, false, errorHandlerFunc) + php5parser := php5.NewParser(lexer, errorHandlerFunc) php5parser.Parse() assert.DeepEqual(t, expected, parserErrors) } diff --git a/internal/php7/parser.go b/internal/php7/parser.go index 7426278..e7aa50e 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -14,14 +14,12 @@ type Parser struct { Lexer *scanner.Lexer currentToken *scanner.Token rootNode ast.Vertex - withTokens bool errHandlerFunc func(*errors.Error) } // NewParser creates and returns new Parser -func NewParser(lexer *scanner.Lexer, withTokens bool, errHandlerFunc func(*errors.Error)) *Parser { +func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser { return &Parser{ - withTokens: withTokens, Lexer: lexer, errHandlerFunc: errHandlerFunc, } @@ -63,7 +61,7 @@ func lastNode(nn []ast.Vertex) ast.Vertex { } func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if p.withTokens == false { + if _, ok := src.GetNode().Tokens[token.Start]; !ok { return } @@ -71,42 +69,64 @@ func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { return } - p.setFreeFloating(dst, token.Start, src.GetNode().Tokens[token.Start]) - delete(src.GetNode().Tokens, token.Start) -} - -func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, strings []token.Token) { - if p.withTokens == false { - return - } - - if len(strings) == 0 { - return - } - dstCollection := &dst.GetNode().Tokens if *dstCollection == nil { *dstCollection = make(token.Collection) } - (*dstCollection)[pos] = strings + (*dstCollection)[token.Start] = src.GetNode().Tokens[token.Start] + delete(src.GetNode().Tokens, token.Start) } -func (p *Parser) GetFreeFloatingToken(t *scanner.Token) []token.Token { - if p.withTokens == false { - return []token.Token{} +func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []token.Token) { + if len(tokens) == 0 { + return } - return []token.Token{ - { - ID: token.ID(t.ID), - Value: t.Value, - }, + dstCollection := &dst.GetNode().Tokens + if *dstCollection == nil { + *dstCollection = make(token.Collection) } + + l := len(tokens) + for _, v := range tokens[0 : l-1] { + (*dstCollection)[pos] = append((*dstCollection)[pos], v) + } +} + +func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []token.Token) { + if len(tokens) == 0 { + return + } + + dstCollection := &dst.GetNode().Tokens + if *dstCollection == nil { + *dstCollection = make(token.Collection) + } + + (*dstCollection)[pos] = make([]token.Token, 0) + + for _, v := range tokens { + (*dstCollection)[pos] = append((*dstCollection)[pos], v) + } +} + +func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []token.Token) { + if len(tokens) == 0 { + return + } + + dstCollection := &dst.GetNode().Tokens + if *dstCollection == nil { + *dstCollection = make(token.Collection) + } + + l := len(tokens) + (*dstCollection)[pos] = append((*dstCollection)[pos], tokens[l-1]) } func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if p.withTokens == false { + if _, ok := prevNode.GetNode().Tokens[token.SemiColon]; !ok { return } @@ -117,7 +137,7 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } if semiColon[0].Value[0] == ';' { - p.setFreeFloating(prevNode, token.SemiColon, []token.Token{ + p.setFreeFloatingTokens(prevNode, token.SemiColon, []token.Token{ { ID: token.ID(';'), Value: semiColon[0].Value[0:1], @@ -144,7 +164,7 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. Value: semiColon[0].Value[vlen-tlen:], }) - p.setFreeFloating(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) + p.setFreeFloatingTokens(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) } func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 05cdefc..60e0289 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -59,7 +59,7 @@ func TestIdentifier(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -953,7 +953,7 @@ func TestPhp7ArgumentNode(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1747,7 +1747,7 @@ func TestPhp7ParameterNode(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1769,7 +1769,7 @@ func TestCommentEndFile(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1847,7 +1847,7 @@ func TestName(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1923,7 +1923,7 @@ func TestFullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1999,7 +1999,7 @@ func TestRelative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2078,7 +2078,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2155,7 +2155,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2243,7 +2243,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2341,7 +2341,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2450,7 +2450,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2527,7 +2527,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2625,7 +2625,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2733,7 +2733,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2825,7 +2825,7 @@ LBL; } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2917,7 +2917,7 @@ LBL; } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2977,7 +2977,7 @@ LBL; } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3023,7 +3023,7 @@ CAD; } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3083,7 +3083,7 @@ CAD; } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3128,7 +3128,7 @@ func TestScalarMagicConstant(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3172,7 +3172,7 @@ func TestScalarNumber_LNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3216,7 +3216,7 @@ func TestScalarNumber_DNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3260,7 +3260,7 @@ func TestScalarNumber_Float(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3304,7 +3304,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3348,7 +3348,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3392,7 +3392,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3436,7 +3436,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3480,7 +3480,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3524,7 +3524,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3570,7 +3570,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3614,7 +3614,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3660,7 +3660,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3730,7 +3730,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3843,7 +3843,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3933,7 +3933,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4111,7 +4111,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4246,7 +4246,7 @@ func TestStmtClassConstList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4368,7 +4368,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4447,7 +4447,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4596,7 +4596,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4722,7 +4722,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4837,7 +4837,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4964,7 +4964,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5009,7 +5009,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5067,7 +5067,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5158,7 +5158,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5251,7 +5251,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5367,7 +5367,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5522,7 +5522,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5621,7 +5621,7 @@ func TestStmtConstList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5687,7 +5687,7 @@ func TestStmtContinue_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5764,7 +5764,7 @@ func TestStmtContinue_Light(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5841,7 +5841,7 @@ func TestStmtContinue(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5918,7 +5918,7 @@ func TestStmtDeclare(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6028,7 +6028,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6107,7 +6107,7 @@ func TestStmtDeclare_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6162,7 +6162,7 @@ func TestStmtDo(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6229,7 +6229,7 @@ func TestStmtEcho(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6285,7 +6285,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6329,7 +6329,7 @@ func TestStmtExpression(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6525,7 +6525,7 @@ func TestStmtFor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6646,7 +6646,7 @@ func TestStmtFor_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6732,7 +6732,7 @@ func TestStmtForeach(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6808,7 +6808,7 @@ func TestStmtForeach_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6894,7 +6894,7 @@ func TestStmtForeach_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7001,7 +7001,7 @@ func TestStmtForeach_WithKey(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7098,7 +7098,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7215,7 +7215,7 @@ func TestStmtForeach_WithRef(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7344,7 +7344,7 @@ func TestStmtForeach_WithList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7390,7 +7390,7 @@ func TestStmtFunction(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7447,7 +7447,7 @@ func TestStmtFunction_Return(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7615,7 +7615,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7683,7 +7683,7 @@ func TestStmtFunction_Ref(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7752,7 +7752,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7808,7 +7808,7 @@ func TestStmtGlobal(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7969,7 +7969,7 @@ func TestStmtGlobal_Vars(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8034,7 +8034,7 @@ func TestStmtGotoLabel(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8067,7 +8067,7 @@ func TestStmtHaltCompiler(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8132,7 +8132,7 @@ func TestStmtIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8241,7 +8241,7 @@ func TestStmtIf_ElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8327,7 +8327,7 @@ func TestStmtIf_Else(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8499,7 +8499,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8681,7 +8681,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8725,7 +8725,7 @@ func TestStmtInlineHtml(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8770,7 +8770,7 @@ func TestStmtInterface(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8850,7 +8850,7 @@ func TestStmtInterface_Extend(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8953,7 +8953,7 @@ func TestStmtInterface_Extends(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9009,7 +9009,7 @@ func TestStmtNamespace(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9066,7 +9066,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9100,7 +9100,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9202,7 +9202,7 @@ func TestStmtProperty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9357,7 +9357,7 @@ func TestStmtProperty_Properties(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9512,7 +9512,7 @@ func TestStmtProperty_Properties2(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9637,7 +9637,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9703,7 +9703,7 @@ func TestStmtStaticVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9811,7 +9811,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9919,7 +9919,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10046,7 +10046,7 @@ func TestStmtSwitch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10173,7 +10173,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10290,7 +10290,7 @@ func TestStmtSwitch_Alt(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10395,7 +10395,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10449,7 +10449,7 @@ func TestStmtThrow(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10494,7 +10494,7 @@ func TestStmtTrait(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10585,7 +10585,7 @@ func TestStmtTraitUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10699,7 +10699,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10813,7 +10813,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10971,7 +10971,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11140,7 +11140,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11423,7 +11423,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11460,7 +11460,7 @@ func TestStmtTry_Try(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11555,7 +11555,7 @@ func TestStmtTry_TryCatch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11673,7 +11673,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11825,7 +11825,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11931,7 +11931,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12138,7 +12138,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12194,7 +12194,7 @@ func TestStmtUnset(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12271,7 +12271,7 @@ func TestStmtUnset_Vars(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12348,7 +12348,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12416,7 +12416,7 @@ func TestStmtUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12484,7 +12484,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12563,7 +12563,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12664,7 +12664,7 @@ func TestStmtUse_List(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12776,7 +12776,7 @@ func TestStmtUse_ListAlias(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12888,7 +12888,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13022,7 +13022,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13134,7 +13134,7 @@ func TestStmtUse_ListConstType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13268,7 +13268,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13392,7 +13392,7 @@ func TestStmtUse_GroupUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13527,7 +13527,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13662,7 +13662,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13797,7 +13797,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13943,7 +13943,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14009,7 +14009,7 @@ func TestStmtBreak_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14086,7 +14086,7 @@ func TestStmtBreak_Light(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14163,7 +14163,7 @@ func TestStmtBreak(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14240,7 +14240,7 @@ func TestExprArrayDimFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14336,7 +14336,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14380,7 +14380,7 @@ func TestExprArray(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14446,7 +14446,7 @@ func TestExprArray_Item(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14565,7 +14565,7 @@ func TestExprArray_Items(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14642,7 +14642,7 @@ func TestExprArray_ItemUnpack(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14708,7 +14708,7 @@ func TestExprArrowFunction(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14797,7 +14797,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14861,7 +14861,7 @@ func TestExprBitwiseNot(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14925,7 +14925,7 @@ func TestExprBooleanNot(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15002,7 +15002,7 @@ func TestExprClassConstFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15067,7 +15067,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15131,7 +15131,7 @@ func TestExprClone_Brackets(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15195,7 +15195,7 @@ func TestExprClone(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15241,7 +15241,7 @@ func TestExprClosure(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15419,7 +15419,7 @@ func TestExprClosure_Use(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15597,7 +15597,7 @@ func TestExprClosure_Use2(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15666,7 +15666,7 @@ func TestExprClosure_ReturnType(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15732,7 +15732,7 @@ func TestExprConstFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15798,7 +15798,7 @@ func TestExprConstFetch_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15864,7 +15864,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15928,7 +15928,7 @@ func TestExprEmpty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15992,7 +15992,7 @@ func TestExprErrorSuppress(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16056,7 +16056,7 @@ func TestExprEval(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16100,7 +16100,7 @@ func TestExprExit(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16144,7 +16144,7 @@ func TestExprExit_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16209,7 +16209,7 @@ func TestExprExit_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16253,7 +16253,7 @@ func TestExprDie(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16297,7 +16297,7 @@ func TestExprDie_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16362,7 +16362,7 @@ func TestExprDie_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16438,7 +16438,7 @@ func TestExprFunctionCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16514,7 +16514,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16615,7 +16615,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16734,7 +16734,7 @@ func TestExprFunctionCall_Var(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16866,7 +16866,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16930,7 +16930,7 @@ func TestExprPostDec(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16994,7 +16994,7 @@ func TestExprPostInc(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17058,7 +17058,7 @@ func TestExprPreDec(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17122,7 +17122,7 @@ func TestExprPreInc(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17186,7 +17186,7 @@ func TestExprInclude(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17250,7 +17250,7 @@ func TestExprInclude_Once(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17314,7 +17314,7 @@ func TestExprRequire(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17378,7 +17378,7 @@ func TestExprRequire_Once(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17465,7 +17465,7 @@ func TestExprInstanceOf(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17552,7 +17552,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17639,7 +17639,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17705,7 +17705,7 @@ func TestExprIsset(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17792,7 +17792,7 @@ func TestExprIsset_Variables(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17867,7 +17867,7 @@ func TestExprList_Empty(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17974,7 +17974,7 @@ func TestExprList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18091,7 +18091,7 @@ func TestExprList_ArrayIndex(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18220,7 +18220,7 @@ func TestExprList_List(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18328,7 +18328,7 @@ func TestExprList_EmptyItem(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18438,7 +18438,7 @@ func TestExprList_EmptyItems(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18523,7 +18523,7 @@ func TestExprMethodCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18589,7 +18589,7 @@ func TestExprNew(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18665,7 +18665,7 @@ func TestExprNew_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18741,7 +18741,7 @@ func TestExprNew_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18873,7 +18873,7 @@ func TestExprNew_Anonymous(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18937,7 +18937,7 @@ func TestExprPrint(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19012,7 +19012,7 @@ func TestExprPropertyFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19130,7 +19130,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19207,7 +19207,7 @@ func TestExprShellExec(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19251,7 +19251,7 @@ func TestExprShortArray(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19317,7 +19317,7 @@ func TestExprShortArray_Item(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19436,7 +19436,7 @@ func TestExprShortArray_Items(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19543,7 +19543,7 @@ func TestExprShortList(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19660,7 +19660,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19789,7 +19789,7 @@ func TestExprShortList_List(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19876,7 +19876,7 @@ func TestExprStaticCall(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19963,7 +19963,7 @@ func TestExprStaticCall_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20050,7 +20050,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20147,7 +20147,7 @@ func TestExprStaticCall_Var(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20242,7 +20242,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20329,7 +20329,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20416,7 +20416,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20503,7 +20503,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20609,7 +20609,7 @@ func TestExprTernary(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20694,7 +20694,7 @@ func TestExprTernary_Simple(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20852,7 +20852,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21010,7 +21010,7 @@ func TestExprTernary_NestedCond(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21074,7 +21074,7 @@ func TestExprUnaryMinus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21138,7 +21138,7 @@ func TestExprUnaryPlus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21192,7 +21192,7 @@ func TestExprVariable(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21256,7 +21256,7 @@ func TestExprVariable_Variable(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21299,7 +21299,7 @@ func TestExprYield(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21363,7 +21363,7 @@ func TestExprYield_Val(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21448,7 +21448,7 @@ func TestExprYield_KeyVal(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21502,7 +21502,7 @@ func TestExprYield_Expr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21577,7 +21577,7 @@ func TestExprYield_KeyExpr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21641,7 +21641,7 @@ func TestExprYieldFrom(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21728,7 +21728,7 @@ func TestExprAssign_Assign(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21813,7 +21813,7 @@ func TestExprAssign_Reference(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21910,7 +21910,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22052,7 +22052,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22137,7 +22137,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22222,7 +22222,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22307,7 +22307,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22392,7 +22392,7 @@ func TestExprAssign_Concat(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22477,7 +22477,7 @@ func TestExprAssign_Div(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22562,7 +22562,7 @@ func TestExprAssign_Minus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22647,7 +22647,7 @@ func TestExprAssign_Mod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22732,7 +22732,7 @@ func TestExprAssign_Mul(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22817,7 +22817,7 @@ func TestExprAssign_Plus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22902,7 +22902,7 @@ func TestExprAssign_Pow(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22987,7 +22987,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23072,7 +23072,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23157,7 +23157,7 @@ func TestExprAssign_Coalesce(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23244,7 +23244,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23329,7 +23329,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23414,7 +23414,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23499,7 +23499,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23584,7 +23584,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23669,7 +23669,7 @@ func TestExprBinary_Coalesce(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23754,7 +23754,7 @@ func TestExprBinary_Concat(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23839,7 +23839,7 @@ func TestExprBinary_Div(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23924,7 +23924,7 @@ func TestExprBinary_Equal(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24009,7 +24009,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24094,7 +24094,7 @@ func TestExprBinary_Greater(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24179,7 +24179,7 @@ func TestExprBinary_Identical(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24264,7 +24264,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24349,7 +24349,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24434,7 +24434,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24519,7 +24519,7 @@ func TestExprBinary_Minus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24604,7 +24604,7 @@ func TestExprBinary_Mod(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24689,7 +24689,7 @@ func TestExprBinary_Mul(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24774,7 +24774,7 @@ func TestExprBinary_NotEqual(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24859,7 +24859,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24944,7 +24944,7 @@ func TestExprBinary_Plus(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25029,7 +25029,7 @@ func TestExprBinary_Pow(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25114,7 +25114,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25199,7 +25199,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25284,7 +25284,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25369,7 +25369,7 @@ func TestExprBinary_Smaller(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25454,7 +25454,7 @@ func TestExprBinary_Spaceship(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25520,7 +25520,7 @@ func TestExprCast_Array(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25584,7 +25584,7 @@ func TestExprCast_Bool(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25648,7 +25648,7 @@ func TestExprCast_BoolShort(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25712,7 +25712,7 @@ func TestExprCast_Double(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25776,7 +25776,7 @@ func TestExprCast_CastFloat(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25840,7 +25840,7 @@ func TestExprCast_Int(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25904,7 +25904,7 @@ func TestExprCast_IntShort(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25968,7 +25968,7 @@ func TestExprCast_Object(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -26032,7 +26032,7 @@ func TestExprCast_String(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -26096,7 +26096,7 @@ func TestExprCast_BinaryString(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -26160,7 +26160,7 @@ func TestExprCast_Unset(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 90532bc..b805993 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5647 +// line internal/php7/php7.y:5644 // line yacctab:1 var yyExca = [...]int{ @@ -2113,482 +2113,482 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:294 + // line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} // save position yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:326 + // line internal/php7/php7.y:326 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:330 + // line internal/php7/php7.y:330 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:337 + // line internal/php7/php7.y:337 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2603,7 +2603,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:350 + // line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{} @@ -2611,7 +2611,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:359 + // line internal/php7/php7.y:359 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2620,13 +2620,13 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:372 + // line internal/php7/php7.y:372 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2635,14 +2635,14 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:389 + // line internal/php7/php7.y:389 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -2656,7 +2656,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:401 + // line internal/php7/php7.y:401 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -2664,14 +2664,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:414 + // line internal/php7/php7.y:414 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -2679,13 +2679,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { // error yyVAL.node = nil @@ -2694,7 +2694,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:436 + // line internal/php7/php7.y:436 { yyVAL.node = yyDollar[1].node @@ -2702,7 +2702,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:442 + // line internal/php7/php7.y:442 { yyVAL.node = yyDollar[1].node @@ -2710,7 +2710,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:448 + // line internal/php7/php7.y:448 { yyVAL.node = yyDollar[1].node @@ -2718,7 +2718,7 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:454 + // line internal/php7/php7.y:454 { yyVAL.node = yyDollar[1].node @@ -2726,7 +2726,7 @@ yydefault: } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:460 + // line internal/php7/php7.y:460 { yyVAL.node = yyDollar[1].node @@ -2734,7 +2734,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:466 + // line internal/php7/php7.y:466 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2742,17 +2742,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:482 + // line internal/php7/php7.y:482 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2762,16 +2762,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:499 + // line internal/php7/php7.y:499 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2781,16 +2781,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:516 + // line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2798,15 +2798,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:530 + // line internal/php7/php7.y:530 { yyVAL.node = yyDollar[2].node @@ -2814,15 +2814,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:544 + // line internal/php7/php7.y:544 { yyDollar[3].node.(*ast.StmtGroupUse).UseType = yyDollar[2].node yyVAL.node = yyDollar[3].node @@ -2831,15 +2831,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:559 + // line internal/php7/php7.y:559 { yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} @@ -2847,15 +2847,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:573 + // line internal/php7/php7.y:573 { yyVAL.node = &ast.StmtUseList{ast.Node{}, yyDollar[2].node, yyDollar[3].list} @@ -2863,15 +2863,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:587 + // line internal/php7/php7.y:587 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2879,15 +2879,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:604 + // line internal/php7/php7.y:604 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2895,13 +2895,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:616 + // line internal/php7/php7.y:616 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2909,13 +2909,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:631 + // line internal/php7/php7.y:631 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2926,19 +2926,19 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Hidden...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:652 + // line internal/php7/php7.y:652 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -2948,21 +2948,21 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseType, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseType, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Hidden...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:677 + // line internal/php7/php7.y:677 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} @@ -2973,19 +2973,19 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token), yyDollar[6].token.Hidden...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:698 + // line internal/php7/php7.y:698 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} @@ -2995,44 +2995,44 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Use, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Use, yyDollar[1].token.Tokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token), yyDollar[7].token.Hidden...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:723 + // line internal/php7/php7.y:723 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:727 + // line internal/php7/php7.y:727 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:734 + // line internal/php7/php7.y:734 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:743 + // line internal/php7/php7.y:743 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3040,18 +3040,18 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:752 + // line internal/php7/php7.y:752 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:761 + // line internal/php7/php7.y:761 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3059,18 +3059,18 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:770 + // line internal/php7/php7.y:770 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:779 + // line internal/php7/php7.y:779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3078,7 +3078,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:788 + // line internal/php7/php7.y:788 { yyVAL.node = yyDollar[1].node @@ -3086,7 +3086,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:794 + // line internal/php7/php7.y:794 { yyDollar[2].node.(*ast.StmtUse).UseType = yyDollar[1].node yyVAL.node = yyDollar[2].node @@ -3095,7 +3095,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:804 + // line internal/php7/php7.y:804 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} @@ -3111,7 +3111,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:818 + // line internal/php7/php7.y:818 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -3124,14 +3124,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:839 + // line internal/php7/php7.y:839 { yyVAL.node = yyDollar[1].node @@ -3142,33 +3142,30 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:848 + // line internal/php7/php7.y:848 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:864 + // line internal/php7/php7.y:861 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:873 + // line internal/php7/php7.y:870 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3176,7 +3173,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:882 + // line internal/php7/php7.y:879 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3191,7 +3188,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:895 + // line internal/php7/php7.y:892 { yyVAL.list = []ast.Vertex{} @@ -3199,7 +3196,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:904 + // line internal/php7/php7.y:901 { // error yyVAL.node = nil @@ -3208,7 +3205,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:911 + // line internal/php7/php7.y:908 { yyVAL.node = yyDollar[1].node @@ -3216,7 +3213,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:917 + // line internal/php7/php7.y:914 { yyVAL.node = yyDollar[1].node @@ -3224,7 +3221,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:923 + // line internal/php7/php7.y:920 { yyVAL.node = yyDollar[1].node @@ -3232,7 +3229,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:929 + // line internal/php7/php7.y:926 { yyVAL.node = yyDollar[1].node @@ -3240,7 +3237,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:935 + // line internal/php7/php7.y:932 { yyVAL.node = yyDollar[1].node @@ -3248,7 +3245,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:941 + // line internal/php7/php7.y:938 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3256,17 +3253,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:959 + // line internal/php7/php7.y:956 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3274,14 +3271,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:969 { yyVAL.node = yyDollar[1].node @@ -3289,7 +3286,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:978 + // line internal/php7/php7.y:975 { yyVAL.node = yyDollar[1].node @@ -3297,7 +3294,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:984 + // line internal/php7/php7.y:981 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3312,15 +3309,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1005 + // line internal/php7/php7.y:1002 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3328,18 +3325,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[7].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[7].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[7].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1022 + // line internal/php7/php7.y:1019 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3358,17 +3355,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1049 + // line internal/php7/php7.y:1046 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3385,15 +3382,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1072 + // line internal/php7/php7.y:1069 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3401,15 +3398,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1086 + // line internal/php7/php7.y:1083 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3417,15 +3414,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1100 + // line internal/php7/php7.y:1097 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3433,15 +3430,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1114 + // line internal/php7/php7.y:1111 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3449,15 +3446,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1128 + // line internal/php7/php7.y:1125 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3465,15 +3462,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1142 + // line internal/php7/php7.y:1139 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3481,16 +3478,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Echo, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1157 + // line internal/php7/php7.y:1154 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3498,13 +3495,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1169 + // line internal/php7/php7.y:1166 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3513,14 +3510,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1183 + // line internal/php7/php7.y:1180 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3528,21 +3525,21 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) if yyDollar[4].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Hidden...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, yyDollar[5].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1203 + // line internal/php7/php7.y:1200 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3559,16 +3556,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1228 + // line internal/php7/php7.y:1225 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3587,17 +3584,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1255 + // line internal/php7/php7.y:1252 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3606,15 +3603,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1270 + // line internal/php7/php7.y:1267 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3622,14 +3619,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1283 + // line internal/php7/php7.y:1280 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3640,15 +3637,15 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1300 + // line internal/php7/php7.y:1297 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3656,15 +3653,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1314 + // line internal/php7/php7.y:1311 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3674,16 +3671,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1331 + // line internal/php7/php7.y:1328 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3693,14 +3690,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1348 + // line internal/php7/php7.y:1345 { yyVAL.list = []ast.Vertex{} @@ -3708,7 +3705,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1354 + // line internal/php7/php7.y:1351 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3721,18 +3718,18 @@ yydefault: catch.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1378 + // line internal/php7/php7.y:1375 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3740,18 +3737,18 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1384 + // line internal/php7/php7.y:1381 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1396 + // line internal/php7/php7.y:1393 { yyVAL.node = nil @@ -3759,7 +3756,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1402 + // line internal/php7/php7.y:1399 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3767,15 +3764,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1419 + // line internal/php7/php7.y:1416 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3783,18 +3780,18 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1425 + // line internal/php7/php7.y:1422 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1434 { yyVAL.node = yyDollar[1].node @@ -3802,7 +3799,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1443 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3812,25 +3809,25 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.Tokens) if yyDollar[8].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[8].node.GetNode().Tokens[token.Colon]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyDollar[8].node.GetNode().Tokens[token.Colon]) delete(yyDollar[8].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) // normalize if yyDollar[8].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } @@ -3838,31 +3835,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1479 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1486 + // line internal/php7/php7.y:1483 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1493 + // line internal/php7/php7.y:1490 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1497 + // line internal/php7/php7.y:1494 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1504 + // line internal/php7/php7.y:1501 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3873,16 +3870,16 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1519 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3892,16 +3889,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1539 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3909,7 +3906,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1548 + // line internal/php7/php7.y:1545 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3917,7 +3914,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1557 + // line internal/php7/php7.y:1554 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3925,13 +3922,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1569 + // line internal/php7/php7.y:1566 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3939,13 +3936,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1584 + // line internal/php7/php7.y:1581 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3955,16 +3952,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1604 + // line internal/php7/php7.y:1601 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3974,16 +3971,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1621 { yyVAL.ClassExtends = nil @@ -3991,7 +3988,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1627 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3999,13 +3996,13 @@ yydefault: yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1645 + // line internal/php7/php7.y:1642 { yyVAL.InterfaceExtends = nil @@ -4013,7 +4010,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1651 + // line internal/php7/php7.y:1648 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4021,13 +4018,13 @@ yydefault: yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1663 { yyVAL.ClassImplements = nil @@ -4035,7 +4032,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1672 + // line internal/php7/php7.y:1669 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4043,13 +4040,13 @@ yydefault: yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1687 + // line internal/php7/php7.y:1684 { yyVAL.node = yyDollar[1].node @@ -4057,7 +4054,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1693 + // line internal/php7/php7.y:1690 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4065,13 +4062,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1705 + // line internal/php7/php7.y:1702 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4079,15 +4076,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1719 + // line internal/php7/php7.y:1716 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4095,14 +4092,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save commentsc - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1735 + // line internal/php7/php7.y:1732 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4113,7 +4110,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1744 + // line internal/php7/php7.y:1741 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4123,16 +4120,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1764 + // line internal/php7/php7.y:1761 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4143,7 +4140,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1773 + // line internal/php7/php7.y:1770 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4153,16 +4150,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1793 + // line internal/php7/php7.y:1790 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4173,7 +4170,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1802 + // line internal/php7/php7.y:1799 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4183,16 +4180,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1822 + // line internal/php7/php7.y:1819 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4202,14 +4199,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1837 + // line internal/php7/php7.y:1834 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4219,15 +4216,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1850 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4237,16 +4234,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1870 + // line internal/php7/php7.y:1867 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4257,17 +4254,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1892 + // line internal/php7/php7.y:1889 { yyVAL.list = []ast.Vertex{} @@ -4275,7 +4272,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1898 + // line internal/php7/php7.y:1895 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4284,15 +4281,15 @@ yydefault: _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.Hidden)) - yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.Tokens)) + yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1913 + // line internal/php7/php7.y:1910 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4301,27 +4298,27 @@ yydefault: _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1931 + // line internal/php7/php7.y:1928 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1932 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1942 + // line internal/php7/php7.y:1939 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4332,7 +4329,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1951 + // line internal/php7/php7.y:1948 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4342,16 +4339,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1971 + // line internal/php7/php7.y:1968 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4359,15 +4356,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1985 + // line internal/php7/php7.y:1982 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4379,15 +4376,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2006 + // line internal/php7/php7.y:2003 { yyVAL.node = yyDollar[1].node @@ -4395,7 +4392,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2012 + // line internal/php7/php7.y:2009 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4407,13 +4404,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2031 + // line internal/php7/php7.y:2028 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4423,16 +4420,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:2048 + // line internal/php7/php7.y:2045 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4445,16 +4442,16 @@ yydefault: _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2068 { yyVAL.node = yyDollar[1].node @@ -4462,15 +4459,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[3].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2082 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4484,17 +4481,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(_else, token.Else, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Else, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[6].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2107 { yyVAL.list = yyDollar[1].list @@ -4502,7 +4499,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2116 + // line internal/php7/php7.y:2113 { yyVAL.list = nil @@ -4510,7 +4507,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2125 + // line internal/php7/php7.y:2122 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4518,18 +4515,18 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2131 + // line internal/php7/php7.y:2128 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2143 + // line internal/php7/php7.y:2140 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4553,24 +4550,24 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } @@ -4578,7 +4575,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2188 + // line internal/php7/php7.y:2185 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4602,25 +4599,25 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) } if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyDollar[2].token.Tokens) } if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Variadic, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) // normalize if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Ampersand, yyVAL.node.GetNode().Tokens[token.Variadic]) delete(yyVAL.node.GetNode().Tokens, token.Variadic) } if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.OptionalType, yyVAL.node.GetNode().Tokens[token.Ampersand]) delete(yyVAL.node.GetNode().Tokens, token.Ampersand) } if yyDollar[1].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyVAL.node.GetNode().Tokens[token.OptionalType]) delete(yyVAL.node.GetNode().Tokens, token.OptionalType) } @@ -4628,7 +4625,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2234 { yyVAL.node = nil @@ -4636,7 +4633,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2240 { yyVAL.node = yyDollar[1].node @@ -4644,7 +4641,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2252 + // line internal/php7/php7.y:2249 { yyVAL.node = yyDollar[1].node @@ -4652,7 +4649,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2258 + // line internal/php7/php7.y:2255 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4660,13 +4657,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2273 + // line internal/php7/php7.y:2270 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4674,13 +4671,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2282 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4688,13 +4685,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2297 + // line internal/php7/php7.y:2294 { yyVAL.node = yyDollar[1].node @@ -4702,7 +4699,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2306 + // line internal/php7/php7.y:2303 { yyVAL.node = nil @@ -4710,18 +4707,18 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2309 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Colon, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Colon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2321 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4729,14 +4726,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2337 + // line internal/php7/php7.y:2334 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4744,18 +4741,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, append(yyDollar[3].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token), yyDollar[4].token.Hidden...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[4].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2357 + // line internal/php7/php7.y:2354 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4763,18 +4760,18 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2363 + // line internal/php7/php7.y:2360 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2372 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4788,7 +4785,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2387 + // line internal/php7/php7.y:2384 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4796,24 +4793,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2399 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2408 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4821,7 +4818,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2417 { yyVAL.node = yyDollar[1].node @@ -4829,18 +4826,18 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2429 + // line internal/php7/php7.y:2426 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2435 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4848,7 +4845,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2444 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4860,13 +4857,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2463 + // line internal/php7/php7.y:2460 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4878,14 +4875,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2483 + // line internal/php7/php7.y:2480 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4893,7 +4890,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2489 + // line internal/php7/php7.y:2486 { yyVAL.list = []ast.Vertex{} @@ -4901,7 +4898,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2498 + // line internal/php7/php7.y:2495 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4910,14 +4907,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2509 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4927,18 +4924,18 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2528 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4946,13 +4943,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2543 + // line internal/php7/php7.y:2540 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4968,20 +4965,20 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.Tokens) if yyDollar[9].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[9].node.GetNode().Tokens[token.Colon]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyDollar[9].node.GetNode().Tokens[token.Colon]) delete(yyDollar[9].node.GetNode().Tokens, token.Colon) } @@ -4989,7 +4986,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2580 + // line internal/php7/php7.y:2577 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4997,60 +4994,60 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2586 + // line internal/php7/php7.y:2583 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2595 { yyVAL.node = &ast.StmtNop{ast.Node{}} yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2608 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2623 + // line internal/php7/php7.y:2620 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2635 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5058,7 +5055,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2644 + // line internal/php7/php7.y:2641 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5066,31 +5063,31 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2650 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2660 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2676 + // line internal/php7/php7.y:2673 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5099,13 +5096,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2692 + // line internal/php7/php7.y:2689 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5116,14 +5113,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2708 + // line internal/php7/php7.y:2705 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5134,14 +5131,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2724 + // line internal/php7/php7.y:2721 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5152,14 +5149,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2737 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5168,13 +5165,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2753 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5184,13 +5181,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2767 { yyVAL.node = yyDollar[1].node @@ -5198,7 +5195,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2776 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5209,14 +5206,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2798 + // line internal/php7/php7.y:2795 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5224,14 +5221,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2811 + // line internal/php7/php7.y:2808 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5239,14 +5236,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2827 + // line internal/php7/php7.y:2824 { yyVAL.list = yyDollar[1].list @@ -5254,7 +5251,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2833 + // line internal/php7/php7.y:2830 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5263,13 +5260,13 @@ yydefault: modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2849 + // line internal/php7/php7.y:2846 { yyVAL.list = nil @@ -5277,7 +5274,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2852 { yyVAL.list = yyDollar[1].list @@ -5285,7 +5282,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2864 + // line internal/php7/php7.y:2861 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5293,7 +5290,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2867 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5301,7 +5298,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2879 + // line internal/php7/php7.y:2876 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5309,13 +5306,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2891 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5323,13 +5320,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2903 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5337,13 +5334,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2912 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5351,13 +5348,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2924 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5365,13 +5362,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2939 + // line internal/php7/php7.y:2936 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5379,24 +5376,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2951 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2963 + // line internal/php7/php7.y:2960 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5404,7 +5401,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2972 + // line internal/php7/php7.y:2969 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5416,13 +5413,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2985 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5434,25 +5431,25 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3008 + // line internal/php7/php7.y:3005 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3014 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5460,7 +5457,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3023 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5470,14 +5467,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3044 + // line internal/php7/php7.y:3041 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5487,25 +5484,25 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3059 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3068 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5513,7 +5510,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3077 { yyVAL.node = yyDollar[1].node @@ -5521,7 +5518,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3086 { yyVAL.list = nil @@ -5529,7 +5526,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3092 { yyVAL.list = yyDollar[1].list @@ -5537,18 +5534,18 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3101 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3110 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5556,7 +5553,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3119 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5568,15 +5565,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3143 + // line internal/php7/php7.y:3140 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5587,13 +5584,13 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3158 + // line internal/php7/php7.y:3155 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5601,13 +5598,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:3173 + // line internal/php7/php7.y:3170 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5617,16 +5614,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3190 + // line internal/php7/php7.y:3187 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5636,15 +5633,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3203 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,13 +5650,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3216 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5668,14 +5665,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3233 + // line internal/php7/php7.y:3230 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5683,13 +5680,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3242 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5698,13 +5695,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3255 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,13 +5710,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,13 +5725,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,13 +5740,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3294 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,13 +5755,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3307 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,13 +5770,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5788,13 +5785,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,13 +5800,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3346 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,13 +5815,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3359 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,13 +5830,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3372 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,13 +5845,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3385 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5863,13 +5860,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3398 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,13 +5875,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3411 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5893,13 +5890,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3427 + // line internal/php7/php7.y:3424 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5907,13 +5904,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3439 + // line internal/php7/php7.y:3436 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5922,13 +5919,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3452 + // line internal/php7/php7.y:3449 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5936,13 +5933,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3461 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5951,13 +5948,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3474 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5966,13 +5963,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5981,13 +5978,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3500 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5996,13 +5993,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3513 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6011,13 +6008,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3526 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6026,13 +6023,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3539 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6041,13 +6038,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3552 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6056,13 +6053,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6071,13 +6068,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3578 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6086,13 +6083,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3591 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6101,13 +6098,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3604 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6116,13 +6113,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3617 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6131,13 +6128,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3630 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6146,13 +6143,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3643 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6161,13 +6158,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3656 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6176,13 +6173,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3669 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6191,13 +6188,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3685 + // line internal/php7/php7.y:3682 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6205,13 +6202,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3697 + // line internal/php7/php7.y:3694 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6219,13 +6216,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3709 + // line internal/php7/php7.y:3706 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6233,13 +6230,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3718 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6247,13 +6244,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3730 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6262,13 +6259,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3743 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6277,13 +6274,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3756 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6292,13 +6289,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3772 + // line internal/php7/php7.y:3769 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6307,14 +6304,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3783 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6323,13 +6320,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6338,13 +6335,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6353,13 +6350,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3822 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6368,13 +6365,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3835 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6383,13 +6380,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3848 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6398,25 +6395,25 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3864 + // line internal/php7/php7.y:3861 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3871 { yyVAL.node = yyDollar[1].node @@ -6424,7 +6421,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3877 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6433,14 +6430,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3894 + // line internal/php7/php7.y:3891 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6449,14 +6446,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3905 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6465,13 +6462,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3918 { yyVAL.node = yyDollar[1].node @@ -6479,7 +6476,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3924 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6487,14 +6484,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3937 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6502,14 +6499,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3950 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6517,14 +6514,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3963 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6532,14 +6529,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6547,14 +6544,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3992 + // line internal/php7/php7.y:3989 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6562,14 +6559,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4005 + // line internal/php7/php7.y:4002 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6577,14 +6574,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cast, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4015 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6607,13 +6604,13 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4045 + // line internal/php7/php7.y:4042 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6621,13 +6618,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4054 { yyVAL.node = yyDollar[1].node @@ -6635,7 +6632,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4060 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6643,13 +6640,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6657,13 +6654,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4084 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6671,13 +6668,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4099 + // line internal/php7/php7.y:4096 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6685,13 +6682,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4111 + // line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6699,14 +6696,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4124 + // line internal/php7/php7.y:4121 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6714,13 +6711,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4133 { yyVAL.node = yyDollar[1].node @@ -6728,7 +6725,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4139 { yyVAL.node = yyDollar[2].node @@ -6743,15 +6740,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyVAL.node.GetNode().Tokens[token.Start]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Static, yyVAL.node.GetNode().Tokens[token.Start]) delete(yyVAL.node.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4162 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6759,28 +6756,28 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) if yyDollar[8].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].node.GetNode().Tokens[token.Colon]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.LexicalVars, yyDollar[8].node.GetNode().Tokens[token.Colon]) delete(yyDollar[8].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) // normalize if yyDollar[8].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyVAL.node.GetNode().Tokens[token.ReturnType]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.LexicalVars, yyVAL.node.GetNode().Tokens[token.ReturnType]) delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } if yyDollar[7].ClosureUse == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVarList]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVarList]) delete(yyVAL.node.GetNode().Tokens, token.LexicalVarList) } @@ -6788,7 +6785,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4194 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6796,23 +6793,23 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[6].node.GetNode().Tokens[token.Colon]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyDollar[6].node.GetNode().Tokens[token.Colon]) delete(yyDollar[6].node.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.Tokens) // normalize if yyDollar[6].node == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } @@ -6820,19 +6817,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4232 + // line internal/php7/php7.y:4229 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4233 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4243 + // line internal/php7/php7.y:4240 { yyVAL.ClosureUse = nil @@ -6840,7 +6837,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4249 + // line internal/php7/php7.y:4246 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6848,26 +6845,26 @@ yydefault: yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4266 + // line internal/php7/php7.y:4263 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4272 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6875,7 +6872,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4284 + // line internal/php7/php7.y:4281 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6885,13 +6882,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4295 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6903,14 +6900,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4315 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6924,7 +6921,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4330 + // line internal/php7/php7.y:4327 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6933,13 +6930,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4343 + // line internal/php7/php7.y:4340 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6948,13 +6945,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4356 + // line internal/php7/php7.y:4353 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6968,7 +6965,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4371 + // line internal/php7/php7.y:4368 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6976,13 +6973,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4383 + // line internal/php7/php7.y:4380 { yyVAL.node = yyDollar[1].node @@ -6990,7 +6987,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4392 + // line internal/php7/php7.y:4389 { yyVAL.node = yyDollar[1].node @@ -6998,7 +6995,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4398 + // line internal/php7/php7.y:4395 { yyVAL.node = yyDollar[1].node @@ -7006,7 +7003,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4407 + // line internal/php7/php7.y:4404 { yyVAL.node = nil @@ -7014,7 +7011,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4410 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7022,14 +7019,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Exit, append(yyDollar[1].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Exit, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4429 + // line internal/php7/php7.y:4426 { yyVAL.list = []ast.Vertex{} @@ -7037,7 +7034,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4432 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7049,7 +7046,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 + // line internal/php7/php7.y:4442 { yyVAL.list = yyDollar[1].list @@ -7057,7 +7054,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4454 + // line internal/php7/php7.y:4451 { yyVAL.node = nil @@ -7065,7 +7062,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4460 + // line internal/php7/php7.y:4457 { yyVAL.node = yyDollar[1].node @@ -7073,7 +7070,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4469 + // line internal/php7/php7.y:4466 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7081,15 +7078,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4483 + // line internal/php7/php7.y:4480 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7097,14 +7094,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4496 + // line internal/php7/php7.y:4493 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7112,13 +7109,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4508 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7126,13 +7123,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4523 + // line internal/php7/php7.y:4520 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7140,13 +7137,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4535 + // line internal/php7/php7.y:4532 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7154,13 +7151,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4547 + // line internal/php7/php7.y:4544 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7168,13 +7165,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4559 + // line internal/php7/php7.y:4556 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7182,13 +7179,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4571 + // line internal/php7/php7.y:4568 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7196,13 +7193,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4583 + // line internal/php7/php7.y:4580 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7210,13 +7207,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7224,13 +7221,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4607 + // line internal/php7/php7.y:4604 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7238,13 +7235,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4619 + // line internal/php7/php7.y:4616 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7252,13 +7249,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4631 + // line internal/php7/php7.y:4628 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7268,13 +7265,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4645 + // line internal/php7/php7.y:4642 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7282,13 +7279,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4657 + // line internal/php7/php7.y:4654 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7296,13 +7293,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4669 + // line internal/php7/php7.y:4666 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7310,13 +7307,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4681 + // line internal/php7/php7.y:4678 { yyVAL.node = yyDollar[1].node @@ -7324,7 +7321,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4687 + // line internal/php7/php7.y:4684 { yyVAL.node = yyDollar[1].node @@ -7332,7 +7329,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4696 + // line internal/php7/php7.y:4693 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7346,7 +7343,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4708 + // line internal/php7/php7.y:4705 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7357,14 +7354,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4724 + // line internal/php7/php7.y:4721 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7375,14 +7372,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4740 { yyVAL.node = yyDollar[1].node @@ -7390,7 +7387,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4746 { yyVAL.node = yyDollar[1].node @@ -7398,7 +7395,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4758 + // line internal/php7/php7.y:4755 { yyVAL.node = nil @@ -7406,7 +7403,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4761 { yyVAL.node = yyDollar[1].node @@ -7414,7 +7411,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4773 + // line internal/php7/php7.y:4770 { yyVAL.node = yyDollar[1].node @@ -7422,7 +7419,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4782 + // line internal/php7/php7.y:4779 { yyVAL.node = yyDollar[1].node @@ -7430,19 +7427,19 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4785 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4798 + // line internal/php7/php7.y:4795 { yyVAL.node = yyDollar[1].node @@ -7450,7 +7447,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4807 + // line internal/php7/php7.y:4804 { yyVAL.node = yyDollar[1].node @@ -7458,19 +7455,19 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4810 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4823 + // line internal/php7/php7.y:4820 { yyVAL.node = yyDollar[1].node @@ -7478,7 +7475,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4832 + // line internal/php7/php7.y:4829 { yyVAL.node = yyDollar[1].node @@ -7486,7 +7483,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4838 + // line internal/php7/php7.y:4835 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7495,14 +7492,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4852 + // line internal/php7/php7.y:4849 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7511,14 +7508,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4866 + // line internal/php7/php7.y:4863 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7527,14 +7524,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4880 + // line internal/php7/php7.y:4877 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7543,13 +7540,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4893 + // line internal/php7/php7.y:4890 { yyVAL.node = yyDollar[1].node @@ -7557,7 +7554,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4902 + // line internal/php7/php7.y:4899 { yyVAL.node = yyDollar[1].node @@ -7565,7 +7562,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4905 { yyVAL.node = yyDollar[1].node @@ -7573,7 +7570,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4914 + // line internal/php7/php7.y:4911 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7582,13 +7579,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4930 + // line internal/php7/php7.y:4927 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7598,13 +7595,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4944 + // line internal/php7/php7.y:4941 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7612,15 +7609,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.Start, append(yyDollar[2].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token), yyDollar[3].node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4958 + // line internal/php7/php7.y:4955 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7628,13 +7625,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4973 + // line internal/php7/php7.y:4970 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7643,13 +7640,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4986 + // line internal/php7/php7.y:4983 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7658,13 +7655,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5002 + // line internal/php7/php7.y:4999 { yyVAL.node = yyDollar[1].node @@ -7672,7 +7669,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5008 + // line internal/php7/php7.y:5005 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7681,14 +7678,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5022 + // line internal/php7/php7.y:5019 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7697,14 +7694,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5036 + // line internal/php7/php7.y:5033 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7713,13 +7710,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5049 + // line internal/php7/php7.y:5046 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7728,13 +7725,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5062 + // line internal/php7/php7.y:5059 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7743,13 +7740,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5078 + // line internal/php7/php7.y:5075 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7757,25 +7754,25 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5090 + // line internal/php7/php7.y:5087 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5100 + // line internal/php7/php7.y:5097 { yyVAL.node = yyDollar[1].node @@ -7783,7 +7780,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5109 + // line internal/php7/php7.y:5106 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7791,25 +7788,25 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5121 + // line internal/php7/php7.y:5118 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, append(yyDollar[1].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token), yyVAL.node.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5131 + // line internal/php7/php7.y:5128 { yyVAL.node = yyDollar[1].node @@ -7817,7 +7814,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5140 + // line internal/php7/php7.y:5137 { yyVAL.list = yyDollar[1].list @@ -7825,7 +7822,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:5149 + // line internal/php7/php7.y:5146 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7833,7 +7830,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5155 + // line internal/php7/php7.y:5152 { yyVAL.node = yyDollar[1].node @@ -7841,7 +7838,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5164 + // line internal/php7/php7.y:5161 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7850,13 +7847,13 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5177 + // line internal/php7/php7.y:5174 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7868,7 +7865,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5190 + // line internal/php7/php7.y:5187 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7877,13 +7874,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5203 + // line internal/php7/php7.y:5200 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7897,7 +7894,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5215 + // line internal/php7/php7.y:5212 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7908,14 +7905,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5231 + // line internal/php7/php7.y:5228 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7925,13 +7922,13 @@ yydefault: reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5245 + // line internal/php7/php7.y:5242 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7939,13 +7936,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:5257 + // line internal/php7/php7.y:5254 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7957,16 +7954,16 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5276 + // line internal/php7/php7.y:5273 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7977,15 +7974,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5296 + // line internal/php7/php7.y:5293 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7993,7 +7990,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5302 + // line internal/php7/php7.y:5299 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8002,13 +7999,13 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5315 + // line internal/php7/php7.y:5312 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8016,7 +8013,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5321 + // line internal/php7/php7.y:5318 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8025,13 +8022,13 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5337 + // line internal/php7/php7.y:5334 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8041,13 +8038,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5351 + // line internal/php7/php7.y:5348 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8059,14 +8056,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[2].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[2].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[4].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token)...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5368 + // line internal/php7/php7.y:5365 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8080,14 +8077,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5387 + // line internal/php7/php7.y:5384 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8097,14 +8094,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5402 + // line internal/php7/php7.y:5399 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8116,14 +8113,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:5419 + // line internal/php7/php7.y:5416 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8135,28 +8132,28 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, append(yyDollar[5].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[5].token)...)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[6].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[6].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5438 + // line internal/php7/php7.y:5435 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yylex.(*Parser).GetFreeFloatingToken(yyDollar[1].token)) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.End, append(yyDollar[3].token.Hidden, yylex.(*Parser).GetFreeFloatingToken(yyDollar[3].token)...)) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5451 + // line internal/php7/php7.y:5448 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8164,13 +8161,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5463 + // line internal/php7/php7.y:5460 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8183,13 +8180,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5480 + // line internal/php7/php7.y:5477 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8211,13 +8208,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5506 + // line internal/php7/php7.y:5503 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8227,13 +8224,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:5523 + // line internal/php7/php7.y:5520 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8241,19 +8238,19 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) if yyDollar[4].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Hidden, append(yylex.(*Parser).GetFreeFloatingToken(yyDollar[4].token), yyDollar[5].token.Hidden...)...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, yyDollar[5].token.Tokens...)) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5541 + // line internal/php7/php7.y:5538 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8261,15 +8258,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5555 + // line internal/php7/php7.y:5552 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8277,13 +8274,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5567 + // line internal/php7/php7.y:5564 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8291,13 +8288,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:5579 + // line internal/php7/php7.y:5576 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8305,15 +8302,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Hidden) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5593 + // line internal/php7/php7.y:5590 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8321,13 +8318,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:5605 + // line internal/php7/php7.y:5602 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8335,13 +8332,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Hidden) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5620 + // line internal/php7/php7.y:5617 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8349,18 +8346,18 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5626 + // line internal/php7/php7.y:5623 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Hidden) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5638 + // line internal/php7/php7.y:5635 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 29a4a8b..6002670 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -297,7 +297,7 @@ start: // save position yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Hidden) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -364,7 +364,7 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -377,8 +377,8 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -405,8 +405,8 @@ name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -418,7 +418,7 @@ name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -470,11 +470,11 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -488,10 +488,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -505,10 +505,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -520,9 +520,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -534,9 +534,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -549,9 +549,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -563,9 +563,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -577,9 +577,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -591,9 +591,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -608,7 +608,7 @@ use_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -620,7 +620,7 @@ use_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -638,12 +638,12 @@ group_use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) if $5 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Hidden...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, $6.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -658,14 +658,14 @@ group_use_declaration: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.UseType, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.UseType, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Hidden...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, $7.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -684,12 +684,12 @@ mixed_group_use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) if $5 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($5), $6.Hidden...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, $6.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -704,14 +704,14 @@ mixed_group_use_declaration: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Use, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Use, $1.Tokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($6), $7.Hidden...)...)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, $7.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -735,7 +735,7 @@ inline_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -753,7 +753,7 @@ unprefixed_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -771,7 +771,7 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -827,8 +827,8 @@ unprefixed_use_declaration: // save comments yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -849,11 +849,8 @@ use_declaration: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) - - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Slash, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -865,7 +862,7 @@ const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -945,11 +942,11 @@ inner_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -963,8 +960,8 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -995,9 +992,9 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.While, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.While, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1009,12 +1006,12 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.While, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cond, $7.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($7)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.While, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $7.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1037,11 +1034,11 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.For, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1062,9 +1059,9 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Switch, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Switch, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1076,9 +1073,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1090,9 +1087,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1104,9 +1101,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1118,9 +1115,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1132,9 +1129,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1146,10 +1143,10 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Echo, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Echo, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1161,7 +1158,7 @@ statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1174,12 +1171,12 @@ statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - | T_UNSET '(' unset_variables possible_comma ')' ';' + | T_UNSET '(' unset_variables possible_comma ')' ';' { $$ = &ast.StmtUnset{ast.Node{}, $3} @@ -1187,15 +1184,15 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) if $4 != nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Hidden...)...)) + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, $5.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1216,10 +1213,10 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1243,11 +1240,11 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Key, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Key, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1260,9 +1257,9 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1274,8 +1271,8 @@ statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1290,9 +1287,9 @@ statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1304,9 +1301,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1320,10 +1317,10 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(label, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1337,8 +1334,8 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1363,12 +1360,12 @@ catch_list: catch.GetNode().Position = position.NewTokensPosition($2, $9) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Hidden) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Hidden) + yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Tokens) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1385,7 +1382,7 @@ catch_name_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1406,9 +1403,9 @@ finally_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1426,7 +1423,7 @@ unset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1453,24 +1450,24 @@ function_declaration_statement: // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.Tokens) if $8 != nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) // normalize if $8 == nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1511,10 +1508,10 @@ class_declaration_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $7.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $7.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1528,10 +1525,10 @@ class_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1561,7 +1558,7 @@ class_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1573,7 +1570,7 @@ class_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1590,10 +1587,10 @@ trait_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1610,10 +1607,10 @@ interface_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1634,7 +1631,7 @@ extends_from: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1655,7 +1652,7 @@ interface_extends_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1676,7 +1673,7 @@ implements_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1697,7 +1694,7 @@ foreach_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1709,9 +1706,9 @@ foreach_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.List, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1723,8 +1720,8 @@ foreach_variable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save commentsc - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1750,10 +1747,10 @@ for_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1779,10 +1776,10 @@ foreach_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1808,10 +1805,10 @@ declare_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1828,8 +1825,8 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1843,9 +1840,9 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1859,10 +1856,10 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1877,11 +1874,11 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListStart, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($5)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1903,9 +1900,9 @@ case_list: _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.Hidden)) - yylex.(*Parser).setFreeFloating(_case, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.Tokens)) + yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1918,9 +1915,9 @@ case_list: _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Hidden) - yylex.(*Parser).setFreeFloating(_default, token.CaseSeparator, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1957,10 +1954,10 @@ while_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1975,9 +1972,9 @@ if_stmt_without_else: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.If, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1993,9 +1990,9 @@ if_stmt_without_else: $$.GetNode().Position = position.NewNodesPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2020,7 +2017,7 @@ if_stmt: $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2037,10 +2034,10 @@ alt_if_stmt_without_else: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.If, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2057,10 +2054,10 @@ alt_if_stmt_without_else: _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $7) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Hidden) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $6.Hidden) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) + yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2075,9 +2072,9 @@ alt_if_stmt: $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($3)) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $3.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2095,11 +2092,11 @@ alt_if_stmt: $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Hidden) - yylex.(*Parser).setFreeFloating(_else, token.Else, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($6)) + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(_else, token.Else, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $6.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2132,7 +2129,7 @@ non_empty_parameter_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2163,23 +2160,23 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) // normalize if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) + yylex.(*Parser).setFreeFloatingTokens($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) } if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) + yylex.(*Parser).setFreeFloatingTokens($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) } if $1 == nil { - yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2208,24 +2205,24 @@ parameter: yylex.(*Parser).MoveFreeFloating($1, $$) } if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.OptionalType, $2.Tokens) } if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Variadic, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) // normalize if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) + yylex.(*Parser).setFreeFloatingTokens($$, token.Ampersand, $$.GetNode().Tokens[token.Variadic]); delete($$.GetNode().Tokens, token.Variadic) } if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) + yylex.(*Parser).setFreeFloatingTokens($$, token.OptionalType, $$.GetNode().Tokens[token.Ampersand]); delete($$.GetNode().Tokens, token.Ampersand) } if $1 == nil { - yylex.(*Parser).setFreeFloating($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $$.GetNode().Tokens[token.OptionalType]); delete($$.GetNode().Tokens, token.OptionalType) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2262,7 +2259,7 @@ type_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2277,7 +2274,7 @@ type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2289,7 +2286,7 @@ type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2313,7 +2310,7 @@ return_type: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Colon, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Colon, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2328,8 +2325,8 @@ argument_list: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2341,11 +2338,11 @@ argument_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, append($3.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($3), $4.Hidden...)...)) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, append($3.Tokens, $4.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $4.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2364,7 +2361,7 @@ non_empty_argument_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2391,7 +2388,7 @@ argument: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2403,7 +2400,7 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2430,7 +2427,7 @@ static_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2455,7 +2452,7 @@ static_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2471,8 +2468,8 @@ static_var: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2503,8 +2500,8 @@ class_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2518,12 +2515,12 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($4)) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2535,7 +2532,7 @@ class_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2555,20 +2552,20 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) } if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.Tokens) if $9 != nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $9.GetNode().Tokens[token.Colon]); delete($9.GetNode().Tokens, token.Colon) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $9.GetNode().Tokens[token.Colon]); delete($9.GetNode().Tokens, token.Colon) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2587,7 +2584,7 @@ name_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2601,8 +2598,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2614,8 +2611,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2626,8 +2623,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2654,8 +2651,8 @@ trait_adaptation: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2664,8 +2661,8 @@ trait_adaptation: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2681,7 +2678,7 @@ trait_precedence: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2699,8 +2696,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2715,8 +2712,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2731,8 +2728,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2745,7 +2742,7 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2762,7 +2759,7 @@ trait_method_reference: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2786,15 +2783,15 @@ absolute_trait_method_reference: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; method_body: - ';' /* abstract method */ + ';' /* abstract method */ { $$ = &ast.StmtNop{ast.Node{}, } @@ -2802,8 +2799,8 @@ method_body: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.SemiColon, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2815,8 +2812,8 @@ method_body: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2838,7 +2835,7 @@ variable_modifiers: modifier.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2883,7 +2880,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2895,7 +2892,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2907,7 +2904,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2919,7 +2916,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2931,7 +2928,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2943,7 +2940,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2955,7 +2952,7 @@ property_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2980,7 +2977,7 @@ property: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2996,8 +2993,8 @@ property: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3009,7 +3006,7 @@ class_const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3032,8 +3029,8 @@ class_const_decl: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3050,8 +3047,8 @@ const_decl: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3063,7 +3060,7 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3105,7 +3102,7 @@ non_empty_for_exprs: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3130,9 +3127,9 @@ anonymous_class: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3150,7 +3147,7 @@ new_expr: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3162,7 +3159,7 @@ new_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3179,10 +3176,10 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3196,9 +3193,9 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Var, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3211,7 +3208,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3224,8 +3221,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3237,7 +3234,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3250,7 +3247,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3263,7 +3260,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3276,7 +3273,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3289,7 +3286,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3302,7 +3299,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3315,7 +3312,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3328,7 +3325,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3341,7 +3338,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3354,7 +3351,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3367,7 +3364,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3380,7 +3377,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3393,7 +3390,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3406,7 +3403,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3419,7 +3416,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3431,7 +3428,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3444,7 +3441,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3456,7 +3453,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3469,7 +3466,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3482,7 +3479,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3495,7 +3492,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3508,7 +3505,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3521,7 +3518,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3534,7 +3531,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3547,7 +3544,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3560,7 +3557,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3573,7 +3570,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3586,7 +3583,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3599,7 +3596,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3612,7 +3609,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3625,7 +3622,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3638,7 +3635,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3651,7 +3648,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3664,7 +3661,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3677,7 +3674,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3689,7 +3686,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3701,7 +3698,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3713,7 +3710,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3725,7 +3722,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3738,7 +3735,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3751,7 +3748,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3764,7 +3761,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3777,8 +3774,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Equal, yylex.(*Parser).GetFreeFloatingToken($2)) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setToken($$, token.Equal, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3791,7 +3788,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3804,7 +3801,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3817,7 +3814,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3830,7 +3827,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3843,7 +3840,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3856,7 +3853,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3865,8 +3862,8 @@ expr_without_variable: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3885,8 +3882,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3899,8 +3896,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3913,7 +3910,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3931,8 +3928,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3944,8 +3941,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3957,8 +3954,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3970,8 +3967,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3983,8 +3980,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3996,8 +3993,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4009,8 +4006,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Cast, yylex.(*Parser).GetFreeFloatingToken($1)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4037,7 +4034,7 @@ expr_without_variable: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4049,7 +4046,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4067,7 +4064,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4079,7 +4076,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4091,7 +4088,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4103,7 +4100,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4115,8 +4112,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4128,7 +4125,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4153,8 +4150,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Static, $$.GetNode().Tokens[token.Start]); delete($$.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden); + yylex.(*Parser).setFreeFloatingTokens($$, token.Static, $$.GetNode().Tokens[token.Start]); delete($$.GetNode().Tokens, token.Start) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens); yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4167,28 +4164,28 @@ inline_function: // save position $$.GetNode().Position = position.NewTokensPosition($1, $11) - + // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) if $8 != nil { - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) + yylex.(*Parser).setFreeFloatingTokens($$, token.LexicalVars, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) } - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) // normalize if $8 == nil { - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) + yylex.(*Parser).setFreeFloatingTokens($$, token.LexicalVars, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) } if $7 == nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.LexicalVarList]); delete($$.GetNode().Tokens, token.LexicalVarList) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVarList]); delete($$.GetNode().Tokens, token.LexicalVarList) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4199,24 +4196,24 @@ inline_function: // save position $$.GetNode().Position = position.NewTokenNodePosition($1, $9) - + // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) }; - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $6.GetNode().Tokens[token.Colon]); delete($6.GetNode().Tokens, token.Colon) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $6.GetNode().Tokens[token.Colon]); delete($6.GetNode().Tokens, token.Colon) }; - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.Hidden) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.Tokens) // normalize if $6 == nil { - yylex.(*Parser).setFreeFloating($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) + yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) }; yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4253,9 +4250,9 @@ lexical_vars: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4267,7 +4264,7 @@ lexical_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4290,7 +4287,7 @@ lexical_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4306,8 +4303,8 @@ lexical_var: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4335,7 +4332,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4348,7 +4345,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4375,7 +4372,7 @@ class_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4417,8 +4414,8 @@ exit_expr: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Exit, append($1.Hidden, yylex.(*Parser).GetFreeFloatingToken($1)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Exit, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4473,9 +4470,9 @@ dereferencable_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4487,8 +4484,8 @@ dereferencable_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4500,7 +4497,7 @@ dereferencable_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4515,7 +4512,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4527,7 +4524,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4539,7 +4536,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4551,7 +4548,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4563,7 +4560,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4575,7 +4572,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4587,7 +4584,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4599,7 +4596,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4611,7 +4608,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4623,7 +4620,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4637,7 +4634,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4649,7 +4646,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4661,7 +4658,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4673,7 +4670,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4715,8 +4712,8 @@ constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4731,8 +4728,8 @@ constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4789,8 +4786,8 @@ dereferencable: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4814,8 +4811,8 @@ callable_expr: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4843,8 +4840,8 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4857,8 +4854,8 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4871,8 +4868,8 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4885,7 +4882,7 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4919,7 +4916,7 @@ variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4936,7 +4933,7 @@ simple_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4948,9 +4945,9 @@ simple_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($3, token.Start, append($2.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($2), $3.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($3, token.End, append($3.GetNode().Tokens[token.End], append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)...)) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.Tokens, $3.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4962,7 +4959,7 @@ simple_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4978,7 +4975,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4991,7 +4988,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5013,8 +5010,8 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5027,8 +5024,8 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5041,7 +5038,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5054,7 +5051,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5067,7 +5064,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5082,7 +5079,7 @@ member_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5091,8 +5088,8 @@ member_name: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5113,17 +5110,17 @@ property_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '{' expr '}' { $$ = $2; - + // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, append($1.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($1), $$.GetNode().Tokens[token.Start]...)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($$.GetNode().Tokens[token.End], append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5169,7 +5166,7 @@ non_empty_array_pair_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5195,7 +5192,7 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5222,8 +5219,8 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5237,7 +5234,7 @@ array_pair: reference.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5249,7 +5246,7 @@ array_pair: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5265,10 +5262,10 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, $4.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $4.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5281,11 +5278,11 @@ array_pair: // save position listNode.GetNode().Position = position.NewTokensPosition($1, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) - + // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Hidden) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5307,7 +5304,7 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5326,7 +5323,7 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5343,7 +5340,7 @@ encaps_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5359,8 +5356,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, append($2.Hidden, yylex.(*Parser).GetFreeFloatingToken($2)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($4.Hidden, yylex.(*Parser).GetFreeFloatingToken($4)...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5378,8 +5375,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Hidden) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5393,8 +5390,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5410,8 +5407,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5427,10 +5424,10 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.Var, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) - yylex.(*Parser).setFreeFloating($$, token.Expr, append($5.Hidden, yylex.(*Parser).GetFreeFloatingToken($5)...)) - yylex.(*Parser).setFreeFloating($$, token.End, append($6.Hidden, yylex.(*Parser).GetFreeFloatingToken($6)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5439,8 +5436,8 @@ encaps_var: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, yylex.(*Parser).GetFreeFloatingToken($1)) - yylex.(*Parser).setFreeFloating($$, token.End, append($3.Hidden, yylex.(*Parser).GetFreeFloatingToken($3)...)) + yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5455,7 +5452,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5472,7 +5469,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5498,7 +5495,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5512,7 +5509,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5527,12 +5524,12 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) if $4 == nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Hidden) + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Hidden, append(yylex.(*Parser).GetFreeFloatingToken($4), $5.Hidden...)...)) + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, $5.Tokens...)) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -5545,9 +5542,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5559,7 +5556,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5571,7 +5568,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5583,9 +5580,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Hidden) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5597,7 +5594,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5609,7 +5606,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Hidden) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5627,7 +5624,7 @@ isset_variables: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Hidden) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7_bench_test.go b/internal/php7/php7_bench_test.go index 61045b0..558c54b 100644 --- a/internal/php7/php7_bench_test.go +++ b/internal/php7/php7_bench_test.go @@ -383,7 +383,7 @@ CAD; for n := 0; n < b.N; n++ { lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() } } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 169e62c..6d214a7 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -19635,7 +19635,7 @@ func TestPhp7(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19773,7 +19773,7 @@ func TestPhp5Strings(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20000,7 +20000,7 @@ CAD; } lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) - php7parser := php7.NewParser(lexer, false, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20026,7 +20026,7 @@ func TestPhp7ControlCharsErrors(t *testing.T) { } lexer := scanner.NewLexer([]byte(src), "7.4", false, errorHandlerFunc) - php7parser := php7.NewParser(lexer, false, errorHandlerFunc) + php7parser := php7.NewParser(lexer, errorHandlerFunc) php7parser.Parse() assert.DeepEqual(t, expected, parserErrors) } diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index e20e701..7456961 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -11,10 +11,10 @@ import ( ) type Lexer struct { - data []byte - phpVersion string - withHiddenTokens bool - errHandlerFunc func(*errors.Error) + data []byte + phpVersion string + withTokens bool + errHandlerFunc func(*errors.Error) p, pe, cs int ts, te, act int @@ -23,16 +23,15 @@ type Lexer struct { heredocLabel []byte tokenPool *TokenPool - hiddenTokens []token.Token newLines NewLines } -func NewLexer(data []byte, phpVersion string, withHiddenTokens bool, errHandlerFunc func(*errors.Error)) *Lexer { +func NewLexer(data []byte, phpVersion string, withTokens bool, errHandlerFunc func(*errors.Error)) *Lexer { lex := &Lexer{ - data: data, - phpVersion: phpVersion, - withHiddenTokens: withHiddenTokens, - errHandlerFunc: errHandlerFunc, + data: data, + phpVersion: phpVersion, + withTokens: withTokens, + errHandlerFunc: errHandlerFunc, pe: len(data), stack: make([]int, 0), @@ -57,12 +56,12 @@ func (lex *Lexer) setTokenPosition(token *Token) { token.Position.EndPos = lex.te } -func (lex *Lexer) addHiddenToken(id TokenID, ps, pe int) { - if !lex.withHiddenTokens { +func (lex *Lexer) addHiddenToken(t *Token, id TokenID, ps, pe int) { + if !lex.withTokens { return } - lex.hiddenTokens = append(lex.hiddenTokens, token.Token{ + t.Tokens = append(t.Tokens, token.Token{ ID: token.ID(id), Value: lex.data[ps:pe], }) @@ -236,9 +235,9 @@ func (lex *Lexer) error(msg string) { } func isValidVarNameStart(r byte) bool { - return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || r == '_' || (r >= 0x80 && r <= 0xff) + return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || r == '_' || r >= 0x80 } func isValidVarName(r byte) bool { - return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') || r == '_' || (r >= 0x80 && r <= 0xff) + return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') || r == '_' || r >= 0x80 } diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index c4b5ae5..86a2eb1 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -46,12 +46,11 @@ func initLexer(lex *Lexer) { } func (lex *Lexer) Lex() *Token { - lex.hiddenTokens = nil eof := lex.pe var tok TokenID token := lex.tokenPool.Get() - token.Hidden = nil + token.Tokens = token.Tokens[:0] token.Value = lex.data[0:0] lblStart := 0 @@ -59,7 +58,7 @@ func (lex *Lexer) Lex() *Token { _, _ = lblStart, lblEnd - // line internal/scanner/scanner.go:68 + // line internal/scanner/scanner.go:67 { var _widec int16 if (lex.p) == (lex.pe) { @@ -2196,7 +2195,7 @@ func (lex *Lexer) Lex() *Token { goto st_out tr0: lex.cs = 111 - // line internal/scanner/scanner.rl:130 + // line internal/scanner/scanner.rl:129 (lex.p) = (lex.te) - 1 { lex.cs = 114 @@ -2205,7 +2204,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr162: lex.cs = 111 - // line internal/scanner/scanner.rl:130 + // line internal/scanner/scanner.rl:129 lex.te = (lex.p) + 1 { lex.cs = 114 @@ -2214,7 +2213,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr164: lex.cs = 111 - // line internal/scanner/scanner.rl:130 + // line internal/scanner/scanner.rl:129 lex.te = (lex.p) (lex.p)-- { @@ -2223,13 +2222,13 @@ func (lex *Lexer) Lex() *Token { } goto _again tr165: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:127 + // line internal/scanner/scanner.rl:126 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) } goto st111 st111: @@ -2243,7 +2242,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2252 + // line internal/scanner/scanner.go:2251 if lex.data[(lex.p)] == 35 { goto tr163 } @@ -2258,7 +2257,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof112 } st_case_112: - // line internal/scanner/scanner.go:2267 + // line internal/scanner/scanner.go:2266 if lex.data[(lex.p)] == 33 { goto st1 } @@ -2280,25 +2279,25 @@ func (lex *Lexer) Lex() *Token { goto tr165 tr3: lex.cs = 114 - // line internal/scanner/scanner.rl:143 + // line internal/scanner/scanner.rl:142 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.te) + lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.te) lex.cs = 121 } goto _again tr6: lex.cs = 114 - // line internal/scanner/scanner.rl:147 + // line internal/scanner/scanner.rl:146 lex.te = (lex.p) + 1 { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 121 } goto _again tr169: - // line internal/scanner/scanner.rl:137 + // line internal/scanner/scanner.rl:136 lex.te = (lex.p) (lex.p)-- { @@ -2313,9 +2312,9 @@ func (lex *Lexer) Lex() *Token { } goto st114 tr171: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:137 + // line internal/scanner/scanner.rl:136 lex.te = (lex.p) (lex.p)-- { @@ -2331,17 +2330,17 @@ func (lex *Lexer) Lex() *Token { goto st114 tr176: lex.cs = 114 - // line internal/scanner/scanner.rl:143 + // line internal/scanner/scanner.rl:142 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.te) + lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.te) lex.cs = 121 } goto _again tr177: lex.cs = 114 - // line internal/scanner/scanner.rl:152 + // line internal/scanner/scanner.rl:151 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -2355,14 +2354,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr179: lex.cs = 114 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:147 + // line internal/scanner/scanner.rl:146 lex.te = (lex.p) (lex.p)-- { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 121 } goto _again @@ -2377,7 +2376,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2375 + // line internal/scanner/scanner.go:2374 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2386,7 +2385,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr172: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st115 st115: @@ -2394,7 +2393,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof115 } st_case_115: - // line internal/scanner/scanner.go:2392 + // line internal/scanner/scanner.go:2391 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2403,7 +2402,7 @@ func (lex *Lexer) Lex() *Token { } goto st115 tr173: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st116 st116: @@ -2411,7 +2410,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof116 } st_case_116: - // line internal/scanner/scanner.go:2409 + // line internal/scanner/scanner.go:2408 switch lex.data[(lex.p)] { case 10: goto tr173 @@ -2420,7 +2419,7 @@ func (lex *Lexer) Lex() *Token { } goto tr172 tr174: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st117 st117: @@ -2428,7 +2427,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof117 } st_case_117: - // line internal/scanner/scanner.go:2426 + // line internal/scanner/scanner.go:2425 switch lex.data[(lex.p)] { case 10: goto st116 @@ -2462,7 +2461,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof119 } st_case_119: - // line internal/scanner/scanner.go:2460 + // line internal/scanner/scanner.go:2459 switch lex.data[(lex.p)] { case 61: goto tr177 @@ -2528,10 +2527,10 @@ func (lex *Lexer) Lex() *Token { } goto tr3 tr9: - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:160 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st121 tr11: @@ -3348,7 +3347,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr14: - // line internal/scanner/scanner.rl:351 + // line internal/scanner/scanner.rl:350 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3361,7 +3360,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr18: - // line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:373 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] @@ -3369,7 +3368,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr22: - // line internal/scanner/scanner.rl:336 + // line internal/scanner/scanner.rl:335 (lex.p) = (lex.te) - 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3384,7 +3383,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr37: - // line internal/scanner/scanner.rl:311 + // line internal/scanner/scanner.rl:310 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3397,7 +3396,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr44: - // line internal/scanner/scanner.rl:316 + // line internal/scanner/scanner.rl:315 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3410,7 +3409,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr48: - // line internal/scanner/scanner.rl:312 + // line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3423,7 +3422,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr56: - // line internal/scanner/scanner.rl:313 + // line internal/scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3436,7 +3435,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr63: - // line internal/scanner/scanner.rl:314 + // line internal/scanner/scanner.rl:313 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3449,7 +3448,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr72: - // line internal/scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:314 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3462,7 +3461,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr83: - // line internal/scanner/scanner.rl:317 + // line internal/scanner/scanner.rl:316 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3475,7 +3474,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr84: - // line internal/scanner/scanner.rl:279 + // line internal/scanner/scanner.rl:278 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3488,7 +3487,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr87: - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:164 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3501,7 +3500,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr95: - // line internal/scanner/scanner.rl:323 + // line internal/scanner/scanner.rl:322 lex.te = (lex.p) + 1 { isDocComment := false @@ -3510,14 +3509,14 @@ func (lex *Lexer) Lex() *Token { } if isDocComment { - lex.addHiddenToken(T_DOC_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) } } goto st121 tr96: - // line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:175 (lex.p) = (lex.te) - 1 { base := 10 @@ -3549,7 +3548,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr109: lex.cs = 121 - // line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:162 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3563,7 +3562,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr125: lex.cs = 121 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:161 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3576,7 +3575,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr127: - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:346 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3589,7 +3588,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr129: - // line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:259 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -3602,7 +3601,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr140: - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:258 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3615,7 +3614,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr180: - // line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:373 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3623,7 +3622,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr191: - // line internal/scanner/scanner.rl:336 + // line internal/scanner/scanner.rl:335 lex.te = (lex.p) + 1 { // rune, _ := utf8.DecodeRune(lex.data[lex.ts:lex.te]); @@ -3638,7 +3637,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr225: - // line internal/scanner/scanner.rl:278 + // line internal/scanner/scanner.rl:277 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3652,7 +3651,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr228: lex.cs = 121 - // line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:370 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3665,7 +3664,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr229: - // line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:343 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3675,7 +3674,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr231: - // line internal/scanner/scanner.rl:345 + // line internal/scanner/scanner.rl:344 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3685,25 +3684,25 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr232: - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:160 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st121 tr234: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:160 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st121 tr238: - // line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:373 lex.te = (lex.p) (lex.p)-- { @@ -3712,7 +3711,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr239: - // line internal/scanner/scanner.rl:336 + // line internal/scanner/scanner.rl:335 lex.te = (lex.p) (lex.p)-- { @@ -3728,7 +3727,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr241: - // line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) (lex.p)-- { @@ -3742,7 +3741,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr242: - // line internal/scanner/scanner.rl:298 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3756,7 +3755,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr243: lex.cs = 121 - // line internal/scanner/scanner.rl:372 + // line internal/scanner/scanner.rl:371 lex.te = (lex.p) (lex.p)-- { @@ -3770,27 +3769,27 @@ func (lex *Lexer) Lex() *Token { } goto _again tr244: - // line internal/scanner/scanner.rl:319 + // line internal/scanner/scanner.rl:318 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) } goto st121 tr246: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:319 + // line internal/scanner/scanner.rl:318 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) } goto st121 tr250: - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:345 lex.te = (lex.p) (lex.p)-- { @@ -3804,7 +3803,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr251: - // line internal/scanner/scanner.rl:292 + // line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3817,7 +3816,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr252: - // line internal/scanner/scanner.rl:281 + // line internal/scanner/scanner.rl:280 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3830,7 +3829,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr253: - // line internal/scanner/scanner.rl:283 + // line internal/scanner/scanner.rl:282 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3843,7 +3842,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr255: - // line internal/scanner/scanner.rl:286 + // line internal/scanner/scanner.rl:285 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3856,7 +3855,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr256: - // line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:304 lex.te = (lex.p) (lex.p)-- { @@ -3870,7 +3869,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr257: - // line internal/scanner/scanner.rl:287 + // line internal/scanner/scanner.rl:286 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3883,7 +3882,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr258: - // line internal/scanner/scanner.rl:294 + // line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3896,7 +3895,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr259: - // line internal/scanner/scanner.rl:289 + // line internal/scanner/scanner.rl:288 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3909,7 +3908,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr260: - // line internal/scanner/scanner.rl:293 + // line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3922,7 +3921,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr261: - // line internal/scanner/scanner.rl:290 + // line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3936,7 +3935,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr262: lex.cs = 121 - // line internal/scanner/scanner.rl:349 + // line internal/scanner/scanner.rl:348 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3949,7 +3948,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr264: - // line internal/scanner/scanner.rl:285 + // line internal/scanner/scanner.rl:284 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3962,7 +3961,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr265: - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:164 lex.te = (lex.p) (lex.p)-- { @@ -3976,7 +3975,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr268: - // line internal/scanner/scanner.rl:288 + // line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -3989,7 +3988,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr269: - // line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:175 lex.te = (lex.p) (lex.p)-- { @@ -4021,7 +4020,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr274: - // line internal/scanner/scanner.rl:166 + // line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { @@ -4048,7 +4047,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr275: - // line internal/scanner/scanner.rl:191 + // line internal/scanner/scanner.rl:190 lex.te = (lex.p) (lex.p)-- { @@ -4075,7 +4074,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr276: - // line internal/scanner/scanner.rl:280 + // line internal/scanner/scanner.rl:279 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4089,7 +4088,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr277: lex.cs = 121 - // line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4104,9 +4103,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr279: lex.cs = 121 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4120,7 +4119,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr282: - // line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4133,7 +4132,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr283: - // line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:305 lex.te = (lex.p) (lex.p)-- { @@ -4147,7 +4146,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr284: - // line internal/scanner/scanner.rl:301 + // line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4161,9 +4160,9 @@ func (lex *Lexer) Lex() *Token { goto st121 tr285: lex.cs = 121 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:356 lex.te = (lex.p) (lex.p)-- { @@ -4185,7 +4184,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr286: - // line internal/scanner/scanner.rl:304 + // line internal/scanner/scanner.rl:303 lex.te = (lex.p) (lex.p)-- { @@ -4199,7 +4198,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr287: - // line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4212,7 +4211,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr289: - // line internal/scanner/scanner.rl:295 + // line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4225,7 +4224,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr290: - // line internal/scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:298 lex.te = (lex.p) (lex.p)-- { @@ -4239,7 +4238,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr291: - // line internal/scanner/scanner.rl:300 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4252,7 +4251,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr292: - // line internal/scanner/scanner.rl:303 + // line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4265,7 +4264,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr294: - // line internal/scanner/scanner.rl:307 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { @@ -4279,7 +4278,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr295: - // line internal/scanner/scanner.rl:302 + // line internal/scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4293,7 +4292,7 @@ func (lex *Lexer) Lex() *Token { goto st121 tr298: lex.cs = 121 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -4308,9 +4307,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr300: lex.cs = 121 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -4324,7 +4323,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr301: - // line internal/scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { @@ -4338,7 +4337,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr302: - // line internal/scanner/scanner.rl:309 + // line internal/scanner/scanner.rl:308 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4351,7 +4350,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr303: - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:346 lex.te = (lex.p) (lex.p)-- { @@ -4365,7 +4364,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr383: - // line internal/scanner/scanner.rl:217 + // line internal/scanner/scanner.rl:216 lex.te = (lex.p) (lex.p)-- { @@ -4379,7 +4378,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr403: - // line internal/scanner/scanner.rl:221 + // line internal/scanner/scanner.rl:220 lex.te = (lex.p) (lex.p)-- { @@ -4393,7 +4392,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr432: - // line internal/scanner/scanner.rl:229 + // line internal/scanner/scanner.rl:228 lex.te = (lex.p) (lex.p)-- { @@ -4407,7 +4406,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr436: - // line internal/scanner/scanner.rl:231 + // line internal/scanner/scanner.rl:230 lex.te = (lex.p) (lex.p)-- { @@ -4421,7 +4420,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr468: - // line internal/scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:260 lex.te = (lex.p) (lex.p)-- { @@ -4435,7 +4434,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr536: - // line internal/scanner/scanner.rl:263 + // line internal/scanner/scanner.rl:262 lex.te = (lex.p) (lex.p)-- { @@ -4449,7 +4448,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr582: - // line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:259 lex.te = (lex.p) (lex.p)-- { @@ -4463,7 +4462,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr587: - // line internal/scanner/scanner.rl:291 + // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4476,7 +4475,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr661: - // line internal/scanner/scanner.rl:284 + // line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4489,7 +4488,7 @@ func (lex *Lexer) Lex() *Token { } goto st121 tr662: - // line internal/scanner/scanner.rl:282 + // line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -4512,7 +4511,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:3377 + // line internal/scanner/scanner.go:3376 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4697,7 +4696,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st122 st122: @@ -4705,7 +4704,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof122 } st_case_122: - // line internal/scanner/scanner.go:3570 + // line internal/scanner/scanner.go:3569 switch lex.data[(lex.p)] { case 10: goto tr10 @@ -4727,7 +4726,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st123 st123: @@ -4735,7 +4734,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof123 } st_case_123: - // line internal/scanner/scanner.go:3600 + // line internal/scanner/scanner.go:3599 switch lex.data[(lex.p)] { case 10: goto tr236 @@ -4749,7 +4748,7 @@ func (lex *Lexer) Lex() *Token { } goto tr234 tr237: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st6 st6: @@ -4757,7 +4756,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof6 } st_case_6: - // line internal/scanner/scanner.go:3622 + // line internal/scanner/scanner.go:3621 if lex.data[(lex.p)] == 10 { goto tr10 } @@ -4793,7 +4792,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:372 + // line internal/scanner/scanner.rl:371 lex.act = 140 goto st127 st127: @@ -4801,7 +4800,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof127 } st_case_127: - // line internal/scanner/scanner.go:3666 + // line internal/scanner/scanner.go:3665 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4818,7 +4817,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr13: - // line internal/scanner/scanner.rl:39 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p) @@ -4834,7 +4833,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof7 } st_case_7: - // line internal/scanner/scanner.go:3699 + // line internal/scanner/scanner.go:3698 switch lex.data[(lex.p)] { case 10: goto tr13 @@ -4911,7 +4910,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr247: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st128 st128: @@ -4919,7 +4918,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof128 } st_case_128: - // line internal/scanner/scanner.go:3784 + // line internal/scanner/scanner.go:3783 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -4966,7 +4965,7 @@ func (lex *Lexer) Lex() *Token { } goto tr244 tr248: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st129 st129: @@ -4974,7 +4973,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof129 } st_case_129: - // line internal/scanner/scanner.go:3839 + // line internal/scanner/scanner.go:3838 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5098,7 +5097,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof134 } st_case_134: - // line internal/scanner/scanner.go:3963 + // line internal/scanner/scanner.go:3962 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5111,7 +5110,7 @@ func (lex *Lexer) Lex() *Token { } goto st11 tr20: - // line internal/scanner/scanner.rl:39 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p) @@ -5127,7 +5126,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:3992 + // line internal/scanner/scanner.go:3991 switch lex.data[(lex.p)] { case 10: goto tr20 @@ -5161,7 +5160,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof135 } st_case_135: - // line internal/scanner/scanner.go:4026 + // line internal/scanner/scanner.go:4025 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6009,7 +6008,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof140 } st_case_140: - // line internal/scanner/scanner.go:4874 + // line internal/scanner/scanner.go:4873 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6033,7 +6032,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:164 lex.act = 10 goto st141 st141: @@ -6041,7 +6040,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof141 } st_case_141: - // line internal/scanner/scanner.go:4906 + // line internal/scanner/scanner.go:4905 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6082,7 +6081,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:164 lex.act = 10 goto st142 st142: @@ -6090,7 +6089,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:4955 + // line internal/scanner/scanner.go:4954 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6117,7 +6116,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:4982 + // line internal/scanner/scanner.go:4981 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6128,7 +6127,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr92: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st71 st71: @@ -6136,7 +6135,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5001 + // line internal/scanner/scanner.go:5000 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6145,7 +6144,7 @@ func (lex *Lexer) Lex() *Token { } goto st71 tr93: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st72 st72: @@ -6153,7 +6152,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5018 + // line internal/scanner/scanner.go:5017 switch lex.data[(lex.p)] { case 10: goto tr93 @@ -6162,7 +6161,7 @@ func (lex *Lexer) Lex() *Token { } goto tr92 tr94: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st73 st73: @@ -6170,7 +6169,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5035 + // line internal/scanner/scanner.go:5034 switch lex.data[(lex.p)] { case 10: goto st72 @@ -6184,7 +6183,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:175 lex.act = 12 goto st144 st144: @@ -6192,7 +6191,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5057 + // line internal/scanner/scanner.go:5056 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6215,7 +6214,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:164 lex.act = 10 goto st145 st145: @@ -6223,7 +6222,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5088 + // line internal/scanner/scanner.go:5087 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6238,7 +6237,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:176 + // line internal/scanner/scanner.rl:175 lex.act = 12 goto st146 st146: @@ -6246,7 +6245,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5111 + // line internal/scanner/scanner.go:5110 switch lex.data[(lex.p)] { case 46: goto tr270 @@ -6283,7 +6282,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:166 + // line internal/scanner/scanner.rl:165 lex.act = 11 goto st147 st147: @@ -6291,7 +6290,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5156 + // line internal/scanner/scanner.go:5155 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6321,7 +6320,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:191 + // line internal/scanner/scanner.rl:190 lex.act = 13 goto st148 st148: @@ -6329,7 +6328,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5194 + // line internal/scanner/scanner.go:5193 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6365,7 +6364,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5230 + // line internal/scanner/scanner.go:5229 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6381,7 +6380,7 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr104: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st77 st77: @@ -6389,7 +6388,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5254 + // line internal/scanner/scanner.go:5253 switch lex.data[(lex.p)] { case 10: goto st78 @@ -6405,7 +6404,7 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr105: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st78 st78: @@ -6413,7 +6412,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5278 + // line internal/scanner/scanner.go:5277 switch lex.data[(lex.p)] { case 10: goto tr105 @@ -6429,7 +6428,7 @@ func (lex *Lexer) Lex() *Token { } goto tr22 tr106: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st79 st79: @@ -6437,13 +6436,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5302 + // line internal/scanner/scanner.go:5301 if lex.data[(lex.p)] == 10 { goto st78 } goto tr22 tr107: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st80 st80: @@ -6451,7 +6450,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5316 + // line internal/scanner/scanner.go:5315 if lex.data[(lex.p)] == 62 { goto tr108 } @@ -6466,7 +6465,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof151 } st_case_151: - // line internal/scanner/scanner.go:5331 + // line internal/scanner/scanner.go:5330 switch lex.data[(lex.p)] { case 10: goto st152 @@ -6507,7 +6506,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:305 lex.act = 118 goto st154 st154: @@ -6515,7 +6514,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5380 + // line internal/scanner/scanner.go:5379 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6575,7 +6574,7 @@ func (lex *Lexer) Lex() *Token { } goto tr115 tr115: - // line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:35 lblStart = lex.p goto st84 st84: @@ -6583,7 +6582,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5448 + // line internal/scanner/scanner.go:5447 switch lex.data[(lex.p)] { case 34: goto tr116 @@ -6609,7 +6608,7 @@ func (lex *Lexer) Lex() *Token { } goto st84 tr116: - // line internal/scanner/scanner.rl:37 + // line internal/scanner/scanner.rl:36 lblEnd = lex.p goto st85 st85: @@ -6617,7 +6616,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5482 + // line internal/scanner/scanner.go:5481 switch lex.data[(lex.p)] { case 10: goto st155 @@ -6626,7 +6625,7 @@ func (lex *Lexer) Lex() *Token { } goto tr11 tr122: - // line internal/scanner/scanner.rl:37 + // line internal/scanner/scanner.rl:36 lblEnd = lex.p goto st155 st155: @@ -6634,10 +6633,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof155 } st_case_155: - // line internal/scanner/scanner.go:5499 + // line internal/scanner/scanner.go:5498 goto tr285 tr123: - // line internal/scanner/scanner.rl:37 + // line internal/scanner/scanner.rl:36 lblEnd = lex.p goto st86 st86: @@ -6645,7 +6644,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5510 + // line internal/scanner/scanner.go:5509 if lex.data[(lex.p)] == 10 { goto st155 } @@ -6672,7 +6671,7 @@ func (lex *Lexer) Lex() *Token { } goto tr120 tr120: - // line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:35 lblStart = lex.p goto st88 st88: @@ -6680,7 +6679,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5545 + // line internal/scanner/scanner.go:5544 switch lex.data[(lex.p)] { case 39: goto tr116 @@ -6706,7 +6705,7 @@ func (lex *Lexer) Lex() *Token { } goto st88 tr114: - // line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:35 lblStart = lex.p goto st89 st89: @@ -6714,7 +6713,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5579 + // line internal/scanner/scanner.go:5578 switch lex.data[(lex.p)] { case 10: goto tr122 @@ -6814,7 +6813,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof162 } st_case_162: - // line internal/scanner/scanner.go:5679 + // line internal/scanner/scanner.go:5678 switch lex.data[(lex.p)] { case 10: goto st163 @@ -6893,490 +6892,490 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:346 lex.act = 135 goto st166 tr307: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:204 + // line internal/scanner/scanner.rl:203 lex.act = 16 goto st166 tr313: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:202 + // line internal/scanner/scanner.rl:201 lex.act = 14 goto st166 tr314: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:275 + // line internal/scanner/scanner.rl:274 lex.act = 87 goto st166 tr317: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:203 + // line internal/scanner/scanner.rl:202 lex.act = 15 goto st166 tr322: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:205 + // line internal/scanner/scanner.rl:204 lex.act = 17 goto st166 tr334: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:206 + // line internal/scanner/scanner.rl:205 lex.act = 18 goto st166 tr335: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:207 + // line internal/scanner/scanner.rl:206 lex.act = 19 goto st166 tr337: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:208 + // line internal/scanner/scanner.rl:207 lex.act = 20 goto st166 tr344: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:233 + // line internal/scanner/scanner.rl:232 lex.act = 45 goto st166 tr348: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:209 + // line internal/scanner/scanner.rl:208 lex.act = 21 goto st166 tr350: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:210 + // line internal/scanner/scanner.rl:209 lex.act = 22 goto st166 tr354: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:211 + // line internal/scanner/scanner.rl:210 lex.act = 23 goto st166 tr358: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:212 + // line internal/scanner/scanner.rl:211 lex.act = 24 goto st166 tr361: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:215 + // line internal/scanner/scanner.rl:214 lex.act = 27 goto st166 tr367: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:213 + // line internal/scanner/scanner.rl:212 lex.act = 25 goto st166 tr371: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:214 + // line internal/scanner/scanner.rl:213 lex.act = 26 goto st166 tr372: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:227 + // line internal/scanner/scanner.rl:226 lex.act = 39 goto st166 tr380: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:216 + // line internal/scanner/scanner.rl:215 lex.act = 28 goto st166 tr385: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:218 + // line internal/scanner/scanner.rl:217 lex.act = 30 goto st166 tr388: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:219 + // line internal/scanner/scanner.rl:218 lex.act = 31 goto st166 tr400: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:220 + // line internal/scanner/scanner.rl:219 lex.act = 32 goto st166 tr407: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:222 + // line internal/scanner/scanner.rl:221 lex.act = 34 goto st166 tr408: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:223 + // line internal/scanner/scanner.rl:222 lex.act = 35 goto st166 tr413: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:224 + // line internal/scanner/scanner.rl:223 lex.act = 36 goto st166 tr417: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:225 + // line internal/scanner/scanner.rl:224 lex.act = 37 goto st166 tr419: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:226 + // line internal/scanner/scanner.rl:225 lex.act = 38 goto st166 tr425: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:228 + // line internal/scanner/scanner.rl:227 lex.act = 40 goto st166 tr427: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:234 + // line internal/scanner/scanner.rl:233 lex.act = 46 goto st166 tr434: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:230 + // line internal/scanner/scanner.rl:229 lex.act = 42 goto st166 tr440: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:232 + // line internal/scanner/scanner.rl:231 lex.act = 44 goto st166 tr446: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:235 + // line internal/scanner/scanner.rl:234 lex.act = 47 goto st166 tr448: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:236 + // line internal/scanner/scanner.rl:235 lex.act = 48 goto st166 tr449: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:237 + // line internal/scanner/scanner.rl:236 lex.act = 49 goto st166 tr460: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:239 + // line internal/scanner/scanner.rl:238 lex.act = 51 goto st166 tr473: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:261 lex.act = 74 goto st166 tr481: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:240 + // line internal/scanner/scanner.rl:239 lex.act = 52 goto st166 tr485: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:241 + // line internal/scanner/scanner.rl:240 lex.act = 53 goto st166 tr491: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:242 + // line internal/scanner/scanner.rl:241 lex.act = 54 goto st166 tr494: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:238 + // line internal/scanner/scanner.rl:237 lex.act = 50 goto st166 tr497: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:243 + // line internal/scanner/scanner.rl:242 lex.act = 55 goto st166 tr506: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:244 + // line internal/scanner/scanner.rl:243 lex.act = 56 goto st166 tr507: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:274 + // line internal/scanner/scanner.rl:273 lex.act = 86 goto st166 tr508: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:276 + // line internal/scanner/scanner.rl:275 lex.act = 88 goto st166 tr515: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:247 + // line internal/scanner/scanner.rl:246 lex.act = 59 goto st166 tr518: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:245 + // line internal/scanner/scanner.rl:244 lex.act = 57 goto st166 tr524: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:248 + // line internal/scanner/scanner.rl:247 lex.act = 60 goto st166 tr528: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:246 + // line internal/scanner/scanner.rl:245 lex.act = 58 goto st166 tr541: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:264 + // line internal/scanner/scanner.rl:263 lex.act = 76 goto st166 tr544: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:249 + // line internal/scanner/scanner.rl:248 lex.act = 61 goto st166 tr550: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:250 + // line internal/scanner/scanner.rl:249 lex.act = 62 goto st166 tr554: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:251 + // line internal/scanner/scanner.rl:250 lex.act = 63 goto st166 tr559: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:252 + // line internal/scanner/scanner.rl:251 lex.act = 64 goto st166 tr561: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:254 + // line internal/scanner/scanner.rl:253 lex.act = 66 goto st166 tr563: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:253 + // line internal/scanner/scanner.rl:252 lex.act = 65 goto st166 tr568: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:255 + // line internal/scanner/scanner.rl:254 lex.act = 67 goto st166 tr569: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:256 + // line internal/scanner/scanner.rl:255 lex.act = 68 goto st166 tr571: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:257 + // line internal/scanner/scanner.rl:256 lex.act = 69 goto st166 tr575: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:257 lex.act = 70 goto st166 tr577: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:277 + // line internal/scanner/scanner.rl:276 lex.act = 89 goto st166 tr586: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:258 lex.act = 71 goto st166 tr602: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:265 + // line internal/scanner/scanner.rl:264 lex.act = 77 goto st166 tr606: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:266 + // line internal/scanner/scanner.rl:265 lex.act = 78 goto st166 tr612: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:267 + // line internal/scanner/scanner.rl:266 lex.act = 79 goto st166 tr620: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:267 lex.act = 80 goto st166 tr632: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:273 + // line internal/scanner/scanner.rl:272 lex.act = 85 goto st166 tr637: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:268 lex.act = 81 goto st166 tr644: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:270 lex.act = 83 goto st166 tr654: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:269 lex.act = 82 goto st166 tr660: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:272 + // line internal/scanner/scanner.rl:271 lex.act = 84 goto st166 st166: @@ -7384,7 +7383,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof166 } st_case_166: - // line internal/scanner/scanner.go:6249 + // line internal/scanner/scanner.go:6248 if lex.data[(lex.p)] == 96 { goto tr11 } @@ -7720,7 +7719,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:346 lex.act = 135 goto st177 st177: @@ -7728,7 +7727,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof177 } st_case_177: - // line internal/scanner/scanner.go:6593 + // line internal/scanner/scanner.go:6592 switch lex.data[(lex.p)] { case 34: goto st7 @@ -14722,7 +14721,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof397 } st_case_397: - // line internal/scanner/scanner.go:13587 + // line internal/scanner/scanner.go:13586 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14765,7 +14764,7 @@ func (lex *Lexer) Lex() *Token { } goto tr211 tr134: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st93 st93: @@ -14773,7 +14772,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:13638 + // line internal/scanner/scanner.go:13637 switch lex.data[(lex.p)] { case 10: goto st94 @@ -14791,7 +14790,7 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr135: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st94 st94: @@ -14799,7 +14798,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:13664 + // line internal/scanner/scanner.go:13663 switch lex.data[(lex.p)] { case 10: goto tr135 @@ -14817,7 +14816,7 @@ func (lex *Lexer) Lex() *Token { } goto tr129 tr136: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st95 st95: @@ -14825,13 +14824,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:13690 + // line internal/scanner/scanner.go:13689 if lex.data[(lex.p)] == 10 { goto st94 } goto tr129 tr137: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st96 st96: @@ -14839,7 +14838,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:13704 + // line internal/scanner/scanner.go:13703 switch lex.data[(lex.p)] { case 82: goto st97 @@ -16943,14 +16942,14 @@ func (lex *Lexer) Lex() *Token { } goto tr239 tr141: - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:380 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st468 tr663: - // line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:383 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -16960,25 +16959,25 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr668: - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:380 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st468 tr670: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:380 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st468 tr674: - // line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:383 lex.te = (lex.p) (lex.p)-- { @@ -16989,7 +16988,7 @@ func (lex *Lexer) Lex() *Token { } goto st468 tr675: - // line internal/scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17003,7 +17002,7 @@ func (lex *Lexer) Lex() *Token { goto st468 tr676: lex.cs = 468 - // line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:382 lex.te = (lex.p) (lex.p)-- { @@ -17027,7 +17026,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:15860 + // line internal/scanner/scanner.go:15859 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17072,7 +17071,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st469 st469: @@ -17080,7 +17079,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof469 } st_case_469: - // line internal/scanner/scanner.go:15913 + // line internal/scanner/scanner.go:15912 switch lex.data[(lex.p)] { case 10: goto tr142 @@ -17102,7 +17101,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st470 st470: @@ -17110,7 +17109,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof470 } st_case_470: - // line internal/scanner/scanner.go:15943 + // line internal/scanner/scanner.go:15942 switch lex.data[(lex.p)] { case 10: goto tr672 @@ -17124,7 +17123,7 @@ func (lex *Lexer) Lex() *Token { } goto tr670 tr673: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st99 st99: @@ -17132,7 +17131,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:15965 + // line internal/scanner/scanner.go:15964 if lex.data[(lex.p)] == 10 { goto tr142 } @@ -17208,9 +17207,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr680: lex.cs = 474 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:387 lex.te = (lex.p) (lex.p)-- { @@ -17237,7 +17236,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16059 + // line internal/scanner/scanner.go:16058 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17291,16 +17290,16 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:387 lex.act = 146 goto st475 tr681: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:387 lex.act = 146 goto st475 st475: @@ -17308,7 +17307,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof475 } st_case_475: - // line internal/scanner/scanner.go:16130 + // line internal/scanner/scanner.go:16129 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17355,7 +17354,7 @@ func (lex *Lexer) Lex() *Token { } goto tr679 tr682: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st476 st476: @@ -17363,7 +17362,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof476 } st_case_476: - // line internal/scanner/scanner.go:16185 + // line internal/scanner/scanner.go:16184 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17410,7 +17409,7 @@ func (lex *Lexer) Lex() *Token { } goto tr680 tr143: - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:396 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17421,7 +17420,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr689: - // line internal/scanner/scanner.rl:399 + // line internal/scanner/scanner.rl:398 lex.te = (lex.p) (lex.p)-- { @@ -17437,7 +17436,7 @@ func (lex *Lexer) Lex() *Token { } goto st477 tr690: - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17487,9 +17486,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr692: lex.cs = 477 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:399 lex.te = (lex.p) (lex.p)-- { @@ -17507,7 +17506,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr696: lex.cs = 477 - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:399 lex.te = (lex.p) (lex.p)-- { @@ -17534,7 +17533,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16314 + // line internal/scanner/scanner.go:16313 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17611,30 +17610,30 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:399 lex.act = 150 goto st479 tr693: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:399 lex.act = 150 goto st479 tr695: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:397 lex.act = 148 goto st479 tr697: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:396 lex.act = 147 goto st479 st479: @@ -17642,7 +17641,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof479 } st_case_479: - // line internal/scanner/scanner.go:16422 + // line internal/scanner/scanner.go:16421 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17689,7 +17688,7 @@ func (lex *Lexer) Lex() *Token { } goto tr691 tr694: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st480 st480: @@ -17697,7 +17696,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof480 } st_case_480: - // line internal/scanner/scanner.go:16477 + // line internal/scanner/scanner.go:16476 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17854,7 +17853,7 @@ func (lex *Lexer) Lex() *Token { } goto tr696 tr145: - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:411 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17866,7 +17865,7 @@ func (lex *Lexer) Lex() *Token { goto st483 tr699: lex.cs = 483 - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:414 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17879,7 +17878,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr706: - // line internal/scanner/scanner.rl:414 + // line internal/scanner/scanner.rl:413 lex.te = (lex.p) (lex.p)-- { @@ -17895,7 +17894,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr707: - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -17951,9 +17950,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr709: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:415 lex.te = (lex.p) (lex.p)-- { @@ -17967,7 +17966,7 @@ func (lex *Lexer) Lex() *Token { } goto st483 tr713: - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:415 lex.te = (lex.p) (lex.p)-- { @@ -17991,7 +17990,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16711 + // line internal/scanner/scanner.go:16710 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18072,37 +18071,37 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:415 lex.act = 155 goto st485 tr704: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:414 lex.act = 154 goto st485 tr710: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:415 lex.act = 155 goto st485 tr712: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:412 lex.act = 152 goto st485 tr714: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:411 lex.act = 151 goto st485 st485: @@ -18110,7 +18109,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof485 } st_case_485: - // line internal/scanner/scanner.go:16830 + // line internal/scanner/scanner.go:16829 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18157,7 +18156,7 @@ func (lex *Lexer) Lex() *Token { } goto tr708 tr711: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st486 st486: @@ -18165,7 +18164,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof486 } st_case_486: - // line internal/scanner/scanner.go:16885 + // line internal/scanner/scanner.go:16884 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18322,7 +18321,7 @@ func (lex *Lexer) Lex() *Token { } goto tr713 tr146: - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:423 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18334,7 +18333,7 @@ func (lex *Lexer) Lex() *Token { goto st489 tr715: lex.cs = 489 - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18347,7 +18346,7 @@ func (lex *Lexer) Lex() *Token { } goto _again tr723: - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- { @@ -18363,7 +18362,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr724: - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18419,9 +18418,9 @@ func (lex *Lexer) Lex() *Token { goto _again tr726: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:427 lex.te = (lex.p) (lex.p)-- { @@ -18435,7 +18434,7 @@ func (lex *Lexer) Lex() *Token { } goto st489 tr730: - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:427 lex.te = (lex.p) (lex.p)-- { @@ -18459,7 +18458,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17119 + // line internal/scanner/scanner.go:17118 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18540,37 +18539,37 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:427 lex.act = 160 goto st491 tr720: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:426 lex.act = 159 goto st491 tr727: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:427 lex.act = 160 goto st491 tr729: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:424 lex.act = 157 goto st491 tr731: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:423 lex.act = 156 goto st491 st491: @@ -18578,7 +18577,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof491 } st_case_491: - // line internal/scanner/scanner.go:17238 + // line internal/scanner/scanner.go:17237 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18625,7 +18624,7 @@ func (lex *Lexer) Lex() *Token { } goto tr725 tr728: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st492 st492: @@ -18633,7 +18632,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof492 } st_case_492: - // line internal/scanner/scanner.go:17293 + // line internal/scanner/scanner.go:17292 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18791,7 +18790,7 @@ func (lex *Lexer) Lex() *Token { goto tr730 tr733: lex.cs = 495 - // line internal/scanner/scanner.rl:436 + // line internal/scanner/scanner.rl:435 lex.te = (lex.p) (lex.p)-- { @@ -18815,7 +18814,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17472 + // line internal/scanner/scanner.go:17471 if lex.data[(lex.p)] == 96 { goto st0 } @@ -18859,7 +18858,7 @@ func (lex *Lexer) Lex() *Token { } goto st496 tr147: - // line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:454 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -18871,7 +18870,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr148: - // line internal/scanner/scanner.rl:452 + // line internal/scanner/scanner.rl:451 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18885,7 +18884,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr734: - // line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:454 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18897,7 +18896,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr738: - // line internal/scanner/scanner.rl:454 + // line internal/scanner/scanner.rl:453 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -18907,7 +18906,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr739: - // line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:454 lex.te = (lex.p) (lex.p)-- { @@ -18920,7 +18919,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr741: - // line internal/scanner/scanner.rl:451 + // line internal/scanner/scanner.rl:450 lex.te = (lex.p) (lex.p)-- { @@ -18934,7 +18933,7 @@ func (lex *Lexer) Lex() *Token { } goto st497 tr743: - // line internal/scanner/scanner.rl:453 + // line internal/scanner/scanner.rl:452 lex.te = (lex.p) (lex.p)-- { @@ -18958,7 +18957,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17564 + // line internal/scanner/scanner.go:17563 switch lex.data[(lex.p)] { case 36: goto st498 @@ -19039,7 +19038,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof500 } st_case_500: - // line internal/scanner/scanner.go:17645 + // line internal/scanner/scanner.go:17644 if lex.data[(lex.p)] == 62 { goto st103 } @@ -19092,7 +19091,7 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr149: - // line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:458 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(token) @@ -19105,7 +19104,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr744: - // line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -19113,7 +19112,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr745: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19123,7 +19122,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr748: - // line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19136,7 +19135,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr752: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19146,9 +19145,9 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr753: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) (lex.p)-- { @@ -19159,7 +19158,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr754: - // line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) (lex.p)-- { @@ -19168,7 +19167,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr755: - // line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { @@ -19182,7 +19181,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr757: - // line internal/scanner/scanner.rl:460 + // line internal/scanner/scanner.rl:459 lex.te = (lex.p) (lex.p)-- { @@ -19196,7 +19195,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr758: - // line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:458 lex.te = (lex.p) (lex.p)-- { @@ -19210,7 +19209,7 @@ func (lex *Lexer) Lex() *Token { } goto st502 tr762: - // line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -19234,7 +19233,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17777 + // line internal/scanner/scanner.go:17776 switch lex.data[(lex.p)] { case 10: goto st503 @@ -19371,7 +19370,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof507 } st_case_507: - // line internal/scanner/scanner.go:17914 + // line internal/scanner/scanner.go:17913 switch lex.data[(lex.p)] { case 95: goto st104 @@ -19394,7 +19393,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:17937 + // line internal/scanner/scanner.go:17936 if lex.data[(lex.p)] == 95 { goto st104 } @@ -19430,7 +19429,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof509 } st_case_509: - // line internal/scanner/scanner.go:17973 + // line internal/scanner/scanner.go:17972 if lex.data[(lex.p)] == 95 { goto st105 } @@ -19466,7 +19465,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof510 } st_case_510: - // line internal/scanner/scanner.go:18009 + // line internal/scanner/scanner.go:18008 if lex.data[(lex.p)] == 95 { goto st106 } @@ -19511,7 +19510,7 @@ func (lex *Lexer) Lex() *Token { goto st511 tr153: lex.cs = 512 - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:472 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -19520,7 +19519,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr155: lex.cs = 512 - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:471 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19535,7 +19534,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr763: lex.cs = 512 - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19544,7 +19543,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr765: lex.cs = 512 - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) (lex.p)-- { @@ -19563,7 +19562,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18088 + // line internal/scanner/scanner.go:18087 if lex.data[(lex.p)] == 96 { goto tr763 } @@ -19590,7 +19589,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof513 } st_case_513: - // line internal/scanner/scanner.go:18115 + // line internal/scanner/scanner.go:18114 switch lex.data[(lex.p)] { case 91: goto tr155 @@ -19649,15 +19648,15 @@ func (lex *Lexer) Lex() *Token { } goto st107 tr156: - // line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:476 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st514 tr766: lex.cs = 514 - // line internal/scanner/scanner.rl:479 + // line internal/scanner/scanner.rl:478 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19666,7 +19665,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr769: lex.cs = 514 - // line internal/scanner/scanner.rl:478 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19679,26 +19678,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr770: - // line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:476 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st514 tr772: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:476 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st514 tr776: lex.cs = 514 - // line internal/scanner/scanner.rl:479 + // line internal/scanner/scanner.rl:478 lex.te = (lex.p) (lex.p)-- { @@ -19717,7 +19716,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18222 + // line internal/scanner/scanner.go:18221 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19741,7 +19740,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st515 st515: @@ -19749,7 +19748,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof515 } st_case_515: - // line internal/scanner/scanner.go:18254 + // line internal/scanner/scanner.go:18253 switch lex.data[(lex.p)] { case 10: goto tr157 @@ -19771,7 +19770,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st516 st516: @@ -19779,7 +19778,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof516 } st_case_516: - // line internal/scanner/scanner.go:18284 + // line internal/scanner/scanner.go:18283 switch lex.data[(lex.p)] { case 10: goto tr774 @@ -19793,7 +19792,7 @@ func (lex *Lexer) Lex() *Token { } goto tr772 tr775: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st108 st108: @@ -19801,7 +19800,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof108 } st_case_108: - // line internal/scanner/scanner.go:18306 + // line internal/scanner/scanner.go:18305 if lex.data[(lex.p)] == 10 { goto tr157 } @@ -19816,15 +19815,15 @@ func (lex *Lexer) Lex() *Token { } goto tr776 tr158: - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:482 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st518 tr777: lex.cs = 518 - // line internal/scanner/scanner.rl:485 + // line internal/scanner/scanner.rl:484 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19833,7 +19832,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr780: lex.cs = 518 - // line internal/scanner/scanner.rl:484 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -19846,26 +19845,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr781: - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st518 tr783: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st518 tr787: lex.cs = 518 - // line internal/scanner/scanner.rl:485 + // line internal/scanner/scanner.rl:484 lex.te = (lex.p) (lex.p)-- { @@ -19884,7 +19883,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18369 + // line internal/scanner/scanner.go:18368 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19908,7 +19907,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st519 st519: @@ -19916,7 +19915,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof519 } st_case_519: - // line internal/scanner/scanner.go:18401 + // line internal/scanner/scanner.go:18400 switch lex.data[(lex.p)] { case 10: goto tr159 @@ -19938,7 +19937,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st520 st520: @@ -19946,7 +19945,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof520 } st_case_520: - // line internal/scanner/scanner.go:18431 + // line internal/scanner/scanner.go:18430 switch lex.data[(lex.p)] { case 10: goto tr785 @@ -19960,7 +19959,7 @@ func (lex *Lexer) Lex() *Token { } goto tr783 tr786: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st109 st109: @@ -19968,7 +19967,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof109 } st_case_109: - // line internal/scanner/scanner.go:18453 + // line internal/scanner/scanner.go:18452 if lex.data[(lex.p)] == 10 { goto tr159 } @@ -19983,15 +19982,15 @@ func (lex *Lexer) Lex() *Token { } goto tr787 tr160: - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:488 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st522 tr788: lex.cs = 522 - // line internal/scanner/scanner.rl:491 + // line internal/scanner/scanner.rl:490 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20000,7 +19999,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr791: lex.cs = 522 - // line internal/scanner/scanner.rl:490 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) + 1 { lex.setTokenPosition(token) @@ -20013,26 +20012,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr792: - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st522 tr794: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te) + lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) } goto st522 tr798: lex.cs = 522 - // line internal/scanner/scanner.rl:491 + // line internal/scanner/scanner.rl:490 lex.te = (lex.p) (lex.p)-- { @@ -20051,7 +20050,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18516 + // line internal/scanner/scanner.go:18515 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20075,7 +20074,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st523 st523: @@ -20083,7 +20082,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof523 } st_case_523: - // line internal/scanner/scanner.go:18548 + // line internal/scanner/scanner.go:18547 switch lex.data[(lex.p)] { case 10: goto tr161 @@ -20105,7 +20104,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st524 st524: @@ -20113,7 +20112,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof524 } st_case_524: - // line internal/scanner/scanner.go:18578 + // line internal/scanner/scanner.go:18577 switch lex.data[(lex.p)] { case 10: goto tr796 @@ -20127,7 +20126,7 @@ func (lex *Lexer) Lex() *Token { } goto tr794 tr797: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st110 st110: @@ -20135,7 +20134,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:18600 + // line internal/scanner/scanner.go:18599 if lex.data[(lex.p)] == 10 { goto tr161 } @@ -20161,19 +20160,19 @@ func (lex *Lexer) Lex() *Token { case 186: { (lex.p) = (lex.te) - 1 - lex.addHiddenToken(T_HALT_COMPILER, lex.ts, lex.te) + lex.addHiddenToken(token, T_HALT_COMPILER, lex.ts, lex.te) } } goto st526 tr802: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:494 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(T_HALT_COMPILER, lex.ts, lex.te) + lex.addHiddenToken(token, T_HALT_COMPILER, lex.ts, lex.te) } goto st526 st526: @@ -20190,7 +20189,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18647 + // line internal/scanner/scanner.go:18646 if lex.data[(lex.p)] == 10 { goto st528 } @@ -20199,16 +20198,16 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:494 lex.act = 186 goto st527 tr803: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:494 lex.act = 186 goto st527 st527: @@ -20216,13 +20215,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof527 } st_case_527: - // line internal/scanner/scanner.go:18673 + // line internal/scanner/scanner.go:18672 if lex.data[(lex.p)] == 10 { goto st528 } goto tr799 tr804: - // line internal/scanner/scanner.rl:55 + // line internal/scanner/scanner.rl:54 lex.newLines.Append(lex.p) goto st528 st528: @@ -20230,7 +20229,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof528 } st_case_528: - // line internal/scanner/scanner.go:18687 + // line internal/scanner/scanner.go:18686 if lex.data[(lex.p)] == 10 { goto tr804 } @@ -22852,11 +22851,11 @@ func (lex *Lexer) Lex() *Token { } } - // line internal/scanner/scanner.rl:499 + // line internal/scanner/scanner.rl:498 - token.Hidden = lex.hiddenTokens token.Value = lex.data[lex.ts:lex.te] token.ID = tok + lex.addHiddenToken(token, tok, lex.ts, lex.te) return token } diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index 0dc87ad..a45c164 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -19,12 +19,11 @@ func initLexer(lex *Lexer) { } func (lex *Lexer) Lex() *Token { - lex.hiddenTokens = nil eof := lex.pe var tok TokenID token := lex.tokenPool.Get() - token.Hidden = nil + token.Tokens = token.Tokens[:0] token.Value = lex.data[0:0] lblStart := 0 @@ -125,7 +124,7 @@ func (lex *Lexer) Lex() *Token { main := |* "#!" any* :>> newline => { - lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) }; any => { fnext html; @@ -141,12 +140,12 @@ func (lex *Lexer) Lex() *Token { fbreak; }; ' { - lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.te) + lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.te) fnext php; }; ' { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addHiddenToken(T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.ts+5) fnext php; }; ' { @@ -158,7 +157,7 @@ func (lex *Lexer) Lex() *Token { *|; php := |* - whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, 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;}; @@ -318,7 +317,7 @@ func (lex *Lexer) Lex() *Token { ('#' | '//') any_line* when is_not_comment_end => { lex.ungetStr("?>") - lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) }; '/*' any_line* :>> '*/' { isDocComment := false; @@ -327,9 +326,9 @@ func (lex *Lexer) Lex() *Token { } if isDocComment { - lex.addHiddenToken(T_DOC_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addHiddenToken(T_COMMENT, lex.ts, lex.te) + lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) } }; @@ -378,7 +377,7 @@ func (lex *Lexer) Lex() *Token { *|; property := |* - whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, 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;}; @@ -474,33 +473,33 @@ func (lex *Lexer) Lex() *Token { *|; halt_compiller_open_parenthesis := |* - whitespace_line* => {lex.addHiddenToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, 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.addHiddenToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, 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.addHiddenToken(T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, 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.addHiddenToken(T_HALT_COMPILER, lex.ts, lex.te); }; + any_line* => { lex.addHiddenToken(token, T_HALT_COMPILER, lex.ts, lex.te); }; *|; write exec; }%% - token.Hidden = lex.hiddenTokens token.Value = lex.data[lex.ts:lex.te] token.ID = tok + lex.addHiddenToken(token, tok, lex.ts, lex.te); return token } \ No newline at end of file diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 7399c08..c05a527 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -354,7 +354,7 @@ func TestTokens(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -382,13 +382,14 @@ func TestShebang(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} tkn := lexer.Lex() assert.Equal(t, tkn.ID, T_DNUMBER) - for _, tt := range tkn.Hidden { + l := len(tkn.Tokens) + for _, tt := range tkn.Tokens[:l-1] { actual = append(actual, string(tt.Value)) } @@ -402,11 +403,11 @@ func TestShebangHtml(t *testing.T) { ` lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true tkn := lexer.Lex() assert.Equal(t, tkn.ID, T_INLINE_HTML) - assert.Equal(t, string(tkn.Hidden[0].Value), "#!/usr/bin/env php\n") + assert.Equal(t, string(tkn.Tokens[0].Value), "#!/usr/bin/env php\n") tkn = lexer.Lex() assert.Equal(t, tkn.ID, T_DNUMBER) @@ -452,7 +453,7 @@ func TestNumberTokens(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -509,7 +510,7 @@ func TestConstantStrings(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -643,7 +644,7 @@ func TestTeplateStringTokens(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -728,7 +729,7 @@ func TestBackquoteStringTokens(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -822,7 +823,7 @@ CAT; } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -895,7 +896,7 @@ CAT } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -934,7 +935,7 @@ CAT; } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -965,7 +966,7 @@ func TestHereDocTokens73(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -996,7 +997,7 @@ CAT;` lexer := NewLexer([]byte(src), "7.4", false, nil) lexer.phpVersion = "7.2" - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -1028,7 +1029,7 @@ func TestInlineHtmlNopTokens(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true actual := []string{} for { @@ -1133,11 +1134,12 @@ func TestCommentEnd(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true - lexer.Lex() + tkn := lexer.Lex() - actual := lexer.hiddenTokens + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1162,11 +1164,12 @@ func TestCommentNewLine(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1191,11 +1194,12 @@ func TestCommentNewLine1(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1220,11 +1224,12 @@ func TestCommentNewLine2(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1250,11 +1255,12 @@ func TestCommentWithPhpEndTag(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1280,11 +1286,12 @@ func TestInlineComment(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1310,11 +1317,12 @@ func TestInlineComment2(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true - lexer.Lex() + tkn := lexer.Lex() - actual := lexer.hiddenTokens + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1344,11 +1352,12 @@ func TestEmptyInlineComment(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true - lexer.Lex() + tkn := lexer.Lex() - actual := lexer.hiddenTokens + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1374,11 +1383,12 @@ func TestEmptyInlineComment2(t *testing.T) { } lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1388,7 +1398,7 @@ func TestMethodCallTokens(t *testing.T) { $a -> bar ( '' ) ;` lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true expected := []token.Token{ { @@ -1401,7 +1411,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1411,7 +1422,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - actual = tkn.Hidden + l = len(tkn.Tokens) + actual = tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1421,7 +1433,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - actual = tkn.Hidden + l = len(tkn.Tokens) + actual = tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1431,7 +1444,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - actual = tkn.Hidden + l = len(tkn.Tokens) + actual = tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1441,7 +1455,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - actual = tkn.Hidden + l = len(tkn.Tokens) + actual = tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1451,7 +1466,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - actual = tkn.Hidden + l = len(tkn.Tokens) + actual = tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1461,7 +1477,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - actual = tkn.Hidden + l = len(tkn.Tokens) + actual = tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } @@ -1470,7 +1487,7 @@ func TestYieldFromTokens(t *testing.T) { yield from $a` lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withHiddenTokens = true + lexer.withTokens = true expected := []token.Token{ { @@ -1483,7 +1500,8 @@ func TestYieldFromTokens(t *testing.T) { }, } tkn := lexer.Lex() - actual := tkn.Hidden + l := len(tkn.Tokens) + actual := tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) expected = []token.Token{ @@ -1493,7 +1511,8 @@ func TestYieldFromTokens(t *testing.T) { }, } tkn = lexer.Lex() - actual = tkn.Hidden + l = len(tkn.Tokens) + actual = tkn.Tokens[:l-1] assert.DeepEqual(t, expected, actual) } diff --git a/internal/scanner/token.go b/internal/scanner/token.go index b46b340..793958c 100644 --- a/internal/scanner/token.go +++ b/internal/scanner/token.go @@ -9,6 +9,6 @@ import ( type Token struct { ID TokenID Value []byte - Hidden []token.Token + Tokens []token.Token Position position.Position } diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index 0ee65f5..67974fd 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -32,9 +32,9 @@ func Parse(src []byte, ver string, cfg Config) (ast.Vertex, error) { lexer := scanner.NewLexer(src, ver, cfg.WithTokens, cfg.ErrorHandlerFunc) if r == -1 { - parser = php5.NewParser(lexer, cfg.WithTokens, cfg.ErrorHandlerFunc) + parser = php5.NewParser(lexer, cfg.ErrorHandlerFunc) } else { - parser = php7.NewParser(lexer, cfg.WithTokens, cfg.ErrorHandlerFunc) + parser = php7.NewParser(lexer, cfg.ErrorHandlerFunc) } parser.Parse() diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 2257614..24b5acd 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -13,7 +13,7 @@ import ( func parsePhp5(src string) ast.Vertex { lexer := scanner.NewLexer([]byte(src), "5.6", true, nil) - php5parser := php5.NewParser(lexer, true, nil) + php5parser := php5.NewParser(lexer, nil) php5parser.Parse() return php5parser.GetRootNode() @@ -832,7 +832,8 @@ func TestParseAndPrintPhp5Break(t *testing.T) { break ( 2 ) ; ` - actual := printPhp5(parsePhp5(src)) + root := parsePhp5(src) + actual := printPhp5(root) if src != actual { t.Errorf("\nexpected: %s\ngot: %s\n", src, actual) diff --git a/pkg/printer/printer_parsed_php7_test.go b/pkg/printer/printer_parsed_php7_test.go index 7b634a4..900ae22 100644 --- a/pkg/printer/printer_parsed_php7_test.go +++ b/pkg/printer/printer_parsed_php7_test.go @@ -30,7 +30,7 @@ abstract class Bar extends Baz // parse lexer := scanner.NewLexer([]byte(src), "7.4", true, nil) - php7parser := php7.NewParser(lexer, true, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() rootNode := php7parser.GetRootNode() @@ -62,7 +62,7 @@ abstract class Bar extends Baz func parse(src string) ast.Vertex { lexer := scanner.NewLexer([]byte(src), "7.4", true, nil) - php7parser := php7.NewParser(lexer, true, nil) + php7parser := php7.NewParser(lexer, nil) php7parser.Parse() return php7parser.GetRootNode() From 476e84229de7f431112f77883c1298da7f6f1679 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 3 Jul 2020 00:42:16 +0300 Subject: [PATCH 028/140] [refactoring] add .gitattributes to mark autogenerated files --- .gitattributes | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..26bd28c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +internal/php5/php5.go -diff -merge +internal/php5/php5.go linguist-generated=true +internal/php7/php7.go -diff -merge +internal/php7/php7.go linguist-generated=true +internal/scanner/scanner.go -diff -merge +internal/scanner/scanner.go linguist-generated=true \ No newline at end of file From 84fe08869dfa46dc7f365cbdb0b49f3fef39636e Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 4 Jul 2020 18:04:12 +0300 Subject: [PATCH 029/140] [refactoring] allow nil parser.errHandlerFunc --- internal/php5/parser.go | 4 ++++ internal/php7/parser.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 04a37f3..1fe5085 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -36,6 +36,10 @@ func (p *Parser) Lex(lval *yySymType) int { } func (p *Parser) Error(msg string) { + if p.errHandlerFunc == nil { + return + } + var pos = p.currentToken.Position p.errHandlerFunc(errors.NewError(msg, &pos)) } diff --git a/internal/php7/parser.go b/internal/php7/parser.go index e7aa50e..f9530cc 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -35,6 +35,10 @@ func (p *Parser) Lex(lval *yySymType) int { } func (p *Parser) Error(msg string) { + if p.errHandlerFunc == nil { + return + } + var pos = p.currentToken.Position p.errHandlerFunc(errors.NewError(msg, &pos)) } From 7fc23cc1ded74d9b2e45ece785f5326ab2e6e8e8 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 4 Jul 2020 19:14:54 +0300 Subject: [PATCH 030/140] [refactoring] cli: add -e flag --- cmd/php-parser/main.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 8e9bbe1..6bccc93 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -3,12 +3,13 @@ package main import ( "bytes" "flag" - "fmt" + "io" "io/ioutil" "log" "os" "path/filepath" "runtime" + "strconv" "sync" "time" @@ -31,6 +32,7 @@ var withFreeFloating *bool var showResolvedNs *bool var printBack *bool var printPath *bool +var printErrors *bool var printExecTime *bool type file struct { @@ -52,6 +54,7 @@ func main() { 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") + printErrors = flag.Bool("e", false, "print errors") dump = flag.Bool("d", false, "dump") flag.StringVar(&profiler, "prof", "", "start profiler: [cpu, mem, trace]") flag.StringVar(&phpVersion, "phpver", "7.4", "php version") @@ -151,11 +154,13 @@ func printerWorker(r <-chan result) { counter++ if *printPath { - fmt.Fprintf(os.Stdout, "==> [%d] %s\n", counter, res.path) + _, _ = io.WriteString(os.Stderr, "==> [" + strconv.Itoa(counter) + "] " + res.path + "\n") } - for _, e := range res.errors { - fmt.Fprintf(os.Stdout, "==> %s\n", e) + if *printErrors { + for _, e := range res.errors { + _, _ = io.WriteString(os.Stderr, "==> " + e.String() + "\n") + } } if *printBack { @@ -171,7 +176,9 @@ func printerWorker(r <-chan result) { v := visitor.NewNamespaceResolver() t := traverser.NewDFS(v) t.Traverse(res.rootNode) - fmt.Printf("%+v", v.ResolvedNames) + for _, n := range v.ResolvedNames { + _, _ = io.WriteString(os.Stderr, "===> " + n + "\n") + } } if *dump == true { From 8417e7d6d27978e0720a86d8d46cceb9698d5f31 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 4 Jul 2020 20:59:26 +0300 Subject: [PATCH 031/140] [refactoring] dumper: print node position and tokens --- cmd/php-parser/main.go | 7 +- pkg/ast/visitor/dump.go | 716 +++++++++++++++++++++++++++-------- pkg/ast/visitor/dump_test.go | 34 ++ pkg/token/token.go | 1 + pkg/token/token_string.go | 161 ++++++++ 5 files changed, 763 insertions(+), 156 deletions(-) create mode 100644 pkg/token/token_string.go diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 6bccc93..1cd927c 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -129,6 +129,7 @@ func parserWorker(fileCh <-chan *file, r chan<- result) { parserErrors := []*errors.Error{} cfg := parser.Config{ + WithTokens: *withFreeFloating, ErrorHandlerFunc: func(e *errors.Error) { parserErrors = append(parserErrors, e) }, @@ -154,12 +155,12 @@ func printerWorker(r <-chan result) { counter++ if *printPath { - _, _ = io.WriteString(os.Stderr, "==> [" + strconv.Itoa(counter) + "] " + res.path + "\n") + _, _ = io.WriteString(os.Stderr, "==> ["+strconv.Itoa(counter)+"] "+res.path+"\n") } if *printErrors { for _, e := range res.errors { - _, _ = io.WriteString(os.Stderr, "==> " + e.String() + "\n") + _, _ = io.WriteString(os.Stderr, "==> "+e.String()+"\n") } } @@ -177,7 +178,7 @@ func printerWorker(r <-chan result) { t := traverser.NewDFS(v) t.Traverse(res.rootNode) for _, n := range v.ResolvedNames { - _, _ = io.WriteString(os.Stderr, "===> " + n + "\n") + _, _ = io.WriteString(os.Stderr, "===> "+n+"\n") } } diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 9d4c316..c86384d 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -3,7 +3,10 @@ package visitor import ( "fmt" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" "io" + "sort" + "strconv" "strings" ) @@ -88,14 +91,87 @@ func (v *Dump) LeaveNode(_ ast.Vertex) { v.print("\n") } -func (v *Dump) Root(_ *ast.Root) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.Root{\n") +func (v *Dump) printNode(n *ast.Node) { + if n.Position == nil && n.Tokens == nil { + return + } + + v.printIndent(v.indent) + v.print("Node: ast.Node{\n") + + if n.Tokens != nil { + v.printIndent(v.indent + 1) + v.print("Tokens: token.Collection{\n") + + keys := make([]int, 0, len(n.Tokens)) + for k := range n.Tokens { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + for _, k := range keys { + key := token.Position(k) + + v.printIndent(v.indent + 2) + v.print("token." + key.String() + ": []token.Token{\n") + + for _, tkn := range n.Tokens[key] { + v.printIndent(v.indent + 3) + v.print("{\n") + + v.printIndent(v.indent + 4) + v.print("ID: token." + tkn.ID.String() + ",\n") + + v.printIndent(v.indent + 4) + v.print("Value: []byte(" + strconv.Quote(string(tkn.Value)) + "),\n") + + v.printIndent(v.indent + 3) + v.print("},\n") + } + + v.printIndent(v.indent + 2) + v.print("},\n") + } + + v.printIndent(v.indent + 1) + v.print("},\n") + } + + if n.Position != nil { + v.printIndent(v.indent + 1) + v.print("Position: &position.Position{\n") + + v.printIndent(v.indent + 2) + v.print("StartLine: " + strconv.Itoa(n.Position.StartLine) + ",\n") + + v.printIndent(v.indent + 2) + v.print("EndLine: " + strconv.Itoa(n.Position.EndLine) + ",\n") + + v.printIndent(v.indent + 2) + v.print("StartPos: " + strconv.Itoa(n.Position.StartPos) + ",\n") + + v.printIndent(v.indent + 2) + v.print("EndPos: " + strconv.Itoa(n.Position.EndPos) + ",\n") + + v.printIndent(v.indent + 1) + v.print("},\n") + } + + v.printIndent(v.indent) + v.print("},\n") } -func (v *Dump) Nullable(_ *ast.Nullable) { +func (v *Dump) Root(n *ast.Root) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.Root{\n") + v.printNode(n.GetNode()) +} + +func (v *Dump) Nullable(n *ast.Nullable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Nullable{\n") + + v.printNode(n.GetNode()) } func (v *Dump) Parameter(n *ast.Parameter) { @@ -111,6 +187,8 @@ func (v *Dump) Parameter(n *ast.Parameter) { v.printIndent(v.indent) v.print("Variadic: true,\n") } + + v.printNode(n.GetNode()) } func (v *Dump) Identifier(n *ast.Identifier) { @@ -119,11 +197,15 @@ func (v *Dump) Identifier(n *ast.Identifier) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } -func (v *Dump) ArgumentList(_ *ast.ArgumentList) { +func (v *Dump) ArgumentList(n *ast.ArgumentList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ArgumentList{\n") + + v.printNode(n.GetNode()) } func (v *Dump) Argument(n *ast.Argument) { @@ -139,81 +221,113 @@ func (v *Dump) Argument(n *ast.Argument) { v.printIndent(v.indent) v.print("IsReference: true,\n") } + + v.printNode(n.GetNode()) } -func (v *Dump) StmtAltElse(_ *ast.StmtAltElse) { +func (v *Dump) StmtAltElse(n *ast.StmtAltElse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltElse{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtAltElseIf(_ *ast.StmtAltElseIf) { +func (v *Dump) StmtAltElseIf(n *ast.StmtAltElseIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltElseIf{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtAltFor(_ *ast.StmtAltFor) { +func (v *Dump) StmtAltFor(n *ast.StmtAltFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltFor{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtAltForeach(_ *ast.StmtAltForeach) { +func (v *Dump) StmtAltForeach(n *ast.StmtAltForeach) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltForeach{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtAltIf(_ *ast.StmtAltIf) { +func (v *Dump) StmtAltIf(n *ast.StmtAltIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltIf{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtAltSwitch(_ *ast.StmtAltSwitch) { +func (v *Dump) StmtAltSwitch(n *ast.StmtAltSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltSwitch{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtAltWhile(_ *ast.StmtAltWhile) { +func (v *Dump) StmtAltWhile(n *ast.StmtAltWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltWhile{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtBreak(_ *ast.StmtBreak) { +func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtBreak{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtCase(_ *ast.StmtCase) { +func (v *Dump) StmtCase(n *ast.StmtCase) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCase{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtCaseList(_ *ast.StmtCaseList) { +func (v *Dump) StmtCaseList(n *ast.StmtCaseList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCaseList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtCatch(_ *ast.StmtCatch) { +func (v *Dump) StmtCatch(n *ast.StmtCatch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCatch{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtClass(_ *ast.StmtClass) { +func (v *Dump) StmtClass(n *ast.StmtClass) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClass{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtClassConstList(_ *ast.StmtClassConstList) { +func (v *Dump) StmtClassConstList(n *ast.StmtClassConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassConstList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtClassExtends(_ *ast.StmtClassExtends) { +func (v *Dump) StmtClassExtends(n *ast.StmtClassExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassExtends{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtClassImplements(_ *ast.StmtClassImplements) { +func (v *Dump) StmtClassImplements(n *ast.StmtClassImplements) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassImplements{\n") + + v.printNode(n.GetNode()) } func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { @@ -224,21 +338,29 @@ func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { v.printIndent(v.indent) v.print("ReturnsRef: true,\n") } + + v.printNode(n.GetNode()) } -func (v *Dump) StmtConstList(_ *ast.StmtConstList) { +func (v *Dump) StmtConstList(n *ast.StmtConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtConstant(_ *ast.StmtConstant) { +func (v *Dump) StmtConstant(n *ast.StmtConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstant{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtContinue(_ *ast.StmtContinue) { +func (v *Dump) StmtContinue(n *ast.StmtContinue) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtContinue{\n") + + v.printNode(n.GetNode()) } func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { @@ -249,51 +371,71 @@ func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { v.printIndent(v.indent) v.print("Alt: true,\n") } + + v.printNode(n.GetNode()) } -func (v *Dump) StmtDefault(_ *ast.StmtDefault) { +func (v *Dump) StmtDefault(n *ast.StmtDefault) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDefault{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtDo(_ *ast.StmtDo) { +func (v *Dump) StmtDo(n *ast.StmtDo) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDo{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtEcho(_ *ast.StmtEcho) { +func (v *Dump) StmtEcho(n *ast.StmtEcho) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtEcho{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtElse(_ *ast.StmtElse) { +func (v *Dump) StmtElse(n *ast.StmtElse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElse{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtElseIf(_ *ast.StmtElseIf) { +func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElseIf{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtExpression(_ *ast.StmtExpression) { +func (v *Dump) StmtExpression(n *ast.StmtExpression) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtExpression{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtFinally(_ *ast.StmtFinally) { +func (v *Dump) StmtFinally(n *ast.StmtFinally) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFinally{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtFor(_ *ast.StmtFor) { +func (v *Dump) StmtFor(n *ast.StmtFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFor{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtForeach(_ *ast.StmtForeach) { +func (v *Dump) StmtForeach(n *ast.StmtForeach) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtForeach{\n") + + v.printNode(n.GetNode()) } func (v *Dump) StmtFunction(n *ast.StmtFunction) { @@ -304,31 +446,43 @@ func (v *Dump) StmtFunction(n *ast.StmtFunction) { v.printIndent(v.indent) v.print("ReturnsRef: true,\n") } + + v.printNode(n.GetNode()) } -func (v *Dump) StmtGlobal(_ *ast.StmtGlobal) { +func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGlobal{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtGoto(_ *ast.StmtGoto) { +func (v *Dump) StmtGoto(n *ast.StmtGoto) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGoto{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtGroupUse(_ *ast.StmtGroupUse) { +func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGroupUse{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtHaltCompiler(_ *ast.StmtHaltCompiler) { +func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtHaltCompiler{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtIf(_ *ast.StmtIf) { +func (v *Dump) StmtIf(n *ast.StmtIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtIf{\n") + + v.printNode(n.GetNode()) } func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { @@ -337,136 +491,190 @@ func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } -func (v *Dump) StmtInterface(_ *ast.StmtInterface) { +func (v *Dump) StmtInterface(n *ast.StmtInterface) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterface{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtInterfaceExtends(_ *ast.StmtInterfaceExtends) { +func (v *Dump) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterfaceExtends{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtLabel(_ *ast.StmtLabel) { +func (v *Dump) StmtLabel(n *ast.StmtLabel) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtLabel{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtNamespace(_ *ast.StmtNamespace) { +func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNamespace{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtNop(_ *ast.StmtNop) { +func (v *Dump) StmtNop(n *ast.StmtNop) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNop{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtProperty(_ *ast.StmtProperty) { +func (v *Dump) StmtProperty(n *ast.StmtProperty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtProperty{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtPropertyList(_ *ast.StmtPropertyList) { +func (v *Dump) StmtPropertyList(n *ast.StmtPropertyList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtPropertyList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtReturn(_ *ast.StmtReturn) { +func (v *Dump) StmtReturn(n *ast.StmtReturn) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtReturn{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtStatic(_ *ast.StmtStatic) { +func (v *Dump) StmtStatic(n *ast.StmtStatic) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStatic{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtStaticVar(_ *ast.StmtStaticVar) { +func (v *Dump) StmtStaticVar(n *ast.StmtStaticVar) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStaticVar{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtStmtList(_ *ast.StmtStmtList) { +func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStmtList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtSwitch(_ *ast.StmtSwitch) { +func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtSwitch{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtThrow(_ *ast.StmtThrow) { +func (v *Dump) StmtThrow(n *ast.StmtThrow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtThrow{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtTrait(_ *ast.StmtTrait) { +func (v *Dump) StmtTrait(n *ast.StmtTrait) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTrait{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtTraitAdaptationList(_ *ast.StmtTraitAdaptationList) { +func (v *Dump) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitAdaptationList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtTraitMethodRef(_ *ast.StmtTraitMethodRef) { +func (v *Dump) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitMethodRef{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtTraitUse(_ *ast.StmtTraitUse) { +func (v *Dump) StmtTraitUse(n *ast.StmtTraitUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUse{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtTraitUseAlias(_ *ast.StmtTraitUseAlias) { +func (v *Dump) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUseAlias{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtTraitUsePrecedence(_ *ast.StmtTraitUsePrecedence) { +func (v *Dump) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUsePrecedence{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtTry(_ *ast.StmtTry) { +func (v *Dump) StmtTry(n *ast.StmtTry) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTry{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtUnset(_ *ast.StmtUnset) { +func (v *Dump) StmtUnset(n *ast.StmtUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUnset{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtUse(_ *ast.StmtUse) { +func (v *Dump) StmtUse(n *ast.StmtUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUse{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtUseList(_ *ast.StmtUseList) { +func (v *Dump) StmtUseList(n *ast.StmtUseList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUseList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) StmtWhile(_ *ast.StmtWhile) { +func (v *Dump) StmtWhile(n *ast.StmtWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtWhile{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprArray(_ *ast.ExprArray) { +func (v *Dump) ExprArray(n *ast.ExprArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArray{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprArrayDimFetch(_ *ast.ExprArrayDimFetch) { +func (v *Dump) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayDimFetch{\n") + + v.printNode(n.GetNode()) } func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { @@ -477,6 +685,8 @@ func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { v.printIndent(v.indent) v.print("Unpack: true,\n") } + + v.printNode(n.GetNode()) } func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { @@ -492,26 +702,36 @@ func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { v.printIndent(v.indent) v.print("Static: true,\n") } + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBitwiseNot(_ *ast.ExprBitwiseNot) { +func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBitwiseNot{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBooleanNot(_ *ast.ExprBooleanNot) { +func (v *Dump) ExprBooleanNot(n *ast.ExprBooleanNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBooleanNot{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprClassConstFetch(_ *ast.ExprClassConstFetch) { +func (v *Dump) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClassConstFetch{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprClone(_ *ast.ExprClone) { +func (v *Dump) ExprClone(n *ast.ExprClone) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClone{\n") + + v.printNode(n.GetNode()) } func (v *Dump) ExprClosure(n *ast.ExprClosure) { @@ -527,31 +747,43 @@ func (v *Dump) ExprClosure(n *ast.ExprClosure) { v.printIndent(v.indent) v.print("Static: true,\n") } + + v.printNode(n.GetNode()) } -func (v *Dump) ExprClosureUse(_ *ast.ExprClosureUse) { +func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosureUse{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprConstFetch(_ *ast.ExprConstFetch) { +func (v *Dump) ExprConstFetch(n *ast.ExprConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprConstFetch{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprEmpty(_ *ast.ExprEmpty) { +func (v *Dump) ExprEmpty(n *ast.ExprEmpty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEmpty{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprErrorSuppress(_ *ast.ExprErrorSuppress) { +func (v *Dump) ExprErrorSuppress(n *ast.ExprErrorSuppress) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprErrorSuppress{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprEval(_ *ast.ExprEval) { +func (v *Dump) ExprEval(n *ast.ExprEval) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEval{\n") + + v.printNode(n.GetNode()) } func (v *Dump) ExprExit(n *ast.ExprExit) { @@ -562,391 +794,547 @@ func (v *Dump) ExprExit(n *ast.ExprExit) { v.printIndent(v.indent) v.print("Die: true,\n") } + + v.printNode(n.GetNode()) } -func (v *Dump) ExprFunctionCall(_ *ast.ExprFunctionCall) { +func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprFunctionCall{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprInclude(_ *ast.ExprInclude) { +func (v *Dump) ExprInclude(n *ast.ExprInclude) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInclude{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprIncludeOnce(_ *ast.ExprIncludeOnce) { +func (v *Dump) ExprIncludeOnce(n *ast.ExprIncludeOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIncludeOnce{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprInstanceOf(_ *ast.ExprInstanceOf) { +func (v *Dump) ExprInstanceOf(n *ast.ExprInstanceOf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInstanceOf{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprIsset(_ *ast.ExprIsset) { +func (v *Dump) ExprIsset(n *ast.ExprIsset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIsset{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprList(_ *ast.ExprList) { +func (v *Dump) ExprList(n *ast.ExprList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprMethodCall(_ *ast.ExprMethodCall) { +func (v *Dump) ExprMethodCall(n *ast.ExprMethodCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprMethodCall{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprNew(_ *ast.ExprNew) { +func (v *Dump) ExprNew(n *ast.ExprNew) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprNew{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprPostDec(_ *ast.ExprPostDec) { +func (v *Dump) ExprPostDec(n *ast.ExprPostDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostDec{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprPostInc(_ *ast.ExprPostInc) { +func (v *Dump) ExprPostInc(n *ast.ExprPostInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostInc{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprPreDec(_ *ast.ExprPreDec) { +func (v *Dump) ExprPreDec(n *ast.ExprPreDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreDec{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprPreInc(_ *ast.ExprPreInc) { +func (v *Dump) ExprPreInc(n *ast.ExprPreInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreInc{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprPrint(_ *ast.ExprPrint) { +func (v *Dump) ExprPrint(n *ast.ExprPrint) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPrint{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprPropertyFetch(_ *ast.ExprPropertyFetch) { +func (v *Dump) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPropertyFetch{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprReference(_ *ast.ExprReference) { +func (v *Dump) ExprReference(n *ast.ExprReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprReference{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprRequire(_ *ast.ExprRequire) { +func (v *Dump) ExprRequire(n *ast.ExprRequire) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequire{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprRequireOnce(_ *ast.ExprRequireOnce) { +func (v *Dump) ExprRequireOnce(n *ast.ExprRequireOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequireOnce{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprShellExec(_ *ast.ExprShellExec) { +func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShellExec{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprShortArray(_ *ast.ExprShortArray) { +func (v *Dump) ExprShortArray(n *ast.ExprShortArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShortArray{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprShortList(_ *ast.ExprShortList) { +func (v *Dump) ExprShortList(n *ast.ExprShortList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShortList{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprStaticCall(_ *ast.ExprStaticCall) { +func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticCall{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprStaticPropertyFetch(_ *ast.ExprStaticPropertyFetch) { +func (v *Dump) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticPropertyFetch{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprTernary(_ *ast.ExprTernary) { +func (v *Dump) ExprTernary(n *ast.ExprTernary) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprTernary{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprUnaryMinus(_ *ast.ExprUnaryMinus) { +func (v *Dump) ExprUnaryMinus(n *ast.ExprUnaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryMinus{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprUnaryPlus(_ *ast.ExprUnaryPlus) { +func (v *Dump) ExprUnaryPlus(n *ast.ExprUnaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryPlus{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprVariable(_ *ast.ExprVariable) { +func (v *Dump) ExprVariable(n *ast.ExprVariable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprVariable{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprYield(_ *ast.ExprYield) { +func (v *Dump) ExprYield(n *ast.ExprYield) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYield{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprYieldFrom(_ *ast.ExprYieldFrom) { +func (v *Dump) ExprYieldFrom(n *ast.ExprYieldFrom) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYieldFrom{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssign(_ *ast.ExprAssign) { +func (v *Dump) ExprAssign(n *ast.ExprAssign) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssign{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignReference(_ *ast.ExprAssignReference) { +func (v *Dump) ExprAssignReference(n *ast.ExprAssignReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignReference{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignBitwiseAnd(_ *ast.ExprAssignBitwiseAnd) { +func (v *Dump) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseAnd{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignBitwiseOr(_ *ast.ExprAssignBitwiseOr) { +func (v *Dump) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseOr{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignBitwiseXor(_ *ast.ExprAssignBitwiseXor) { +func (v *Dump) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseXor{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignCoalesce(_ *ast.ExprAssignCoalesce) { +func (v *Dump) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignCoalesce{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignConcat(_ *ast.ExprAssignConcat) { +func (v *Dump) ExprAssignConcat(n *ast.ExprAssignConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignConcat{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignDiv(_ *ast.ExprAssignDiv) { +func (v *Dump) ExprAssignDiv(n *ast.ExprAssignDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignDiv{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignMinus(_ *ast.ExprAssignMinus) { +func (v *Dump) ExprAssignMinus(n *ast.ExprAssignMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMinus{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignMod(_ *ast.ExprAssignMod) { +func (v *Dump) ExprAssignMod(n *ast.ExprAssignMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMod{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignMul(_ *ast.ExprAssignMul) { +func (v *Dump) ExprAssignMul(n *ast.ExprAssignMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMul{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignPlus(_ *ast.ExprAssignPlus) { +func (v *Dump) ExprAssignPlus(n *ast.ExprAssignPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPlus{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignPow(_ *ast.ExprAssignPow) { +func (v *Dump) ExprAssignPow(n *ast.ExprAssignPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPow{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignShiftLeft(_ *ast.ExprAssignShiftLeft) { +func (v *Dump) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftLeft{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprAssignShiftRight(_ *ast.ExprAssignShiftRight) { +func (v *Dump) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftRight{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryBitwiseAnd(_ *ast.ExprBinaryBitwiseAnd) { +func (v *Dump) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseAnd{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryBitwiseOr(_ *ast.ExprBinaryBitwiseOr) { +func (v *Dump) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseOr{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryBitwiseXor(_ *ast.ExprBinaryBitwiseXor) { +func (v *Dump) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseXor{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryBooleanAnd(_ *ast.ExprBinaryBooleanAnd) { +func (v *Dump) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanAnd{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryBooleanOr(_ *ast.ExprBinaryBooleanOr) { +func (v *Dump) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanOr{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryCoalesce(_ *ast.ExprBinaryCoalesce) { +func (v *Dump) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryCoalesce{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryConcat(_ *ast.ExprBinaryConcat) { +func (v *Dump) ExprBinaryConcat(n *ast.ExprBinaryConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryConcat{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryDiv(_ *ast.ExprBinaryDiv) { +func (v *Dump) ExprBinaryDiv(n *ast.ExprBinaryDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryDiv{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryEqual(_ *ast.ExprBinaryEqual) { +func (v *Dump) ExprBinaryEqual(n *ast.ExprBinaryEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryEqual{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryGreater(_ *ast.ExprBinaryGreater) { +func (v *Dump) ExprBinaryGreater(n *ast.ExprBinaryGreater) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreater{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryGreaterOrEqual(_ *ast.ExprBinaryGreaterOrEqual) { +func (v *Dump) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreaterOrEqual{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryIdentical(_ *ast.ExprBinaryIdentical) { +func (v *Dump) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryIdentical{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryLogicalAnd(_ *ast.ExprBinaryLogicalAnd) { +func (v *Dump) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalAnd{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryLogicalOr(_ *ast.ExprBinaryLogicalOr) { +func (v *Dump) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalOr{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryLogicalXor(_ *ast.ExprBinaryLogicalXor) { +func (v *Dump) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalXor{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryMinus(_ *ast.ExprBinaryMinus) { +func (v *Dump) ExprBinaryMinus(n *ast.ExprBinaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMinus{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryMod(_ *ast.ExprBinaryMod) { +func (v *Dump) ExprBinaryMod(n *ast.ExprBinaryMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMod{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryMul(_ *ast.ExprBinaryMul) { +func (v *Dump) ExprBinaryMul(n *ast.ExprBinaryMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMul{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryNotEqual(_ *ast.ExprBinaryNotEqual) { +func (v *Dump) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotEqual{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryNotIdentical(_ *ast.ExprBinaryNotIdentical) { +func (v *Dump) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotIdentical{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryPlus(_ *ast.ExprBinaryPlus) { +func (v *Dump) ExprBinaryPlus(n *ast.ExprBinaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPlus{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryPow(_ *ast.ExprBinaryPow) { +func (v *Dump) ExprBinaryPow(n *ast.ExprBinaryPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPow{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryShiftLeft(_ *ast.ExprBinaryShiftLeft) { +func (v *Dump) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftLeft{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinaryShiftRight(_ *ast.ExprBinaryShiftRight) { +func (v *Dump) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftRight{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinarySmaller(_ *ast.ExprBinarySmaller) { +func (v *Dump) ExprBinarySmaller(n *ast.ExprBinarySmaller) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmaller{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinarySmallerOrEqual(_ *ast.ExprBinarySmallerOrEqual) { +func (v *Dump) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmallerOrEqual{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprBinarySpaceship(_ *ast.ExprBinarySpaceship) { +func (v *Dump) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySpaceship{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprCastArray(_ *ast.ExprCastArray) { +func (v *Dump) ExprCastArray(n *ast.ExprCastArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastArray{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprCastBool(_ *ast.ExprCastBool) { +func (v *Dump) ExprCastBool(n *ast.ExprCastBool) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastBool{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprCastDouble(_ *ast.ExprCastDouble) { +func (v *Dump) ExprCastDouble(n *ast.ExprCastDouble) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastDouble{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprCastInt(_ *ast.ExprCastInt) { +func (v *Dump) ExprCastInt(n *ast.ExprCastInt) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastInt{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprCastObject(_ *ast.ExprCastObject) { +func (v *Dump) ExprCastObject(n *ast.ExprCastObject) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastObject{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprCastString(_ *ast.ExprCastString) { +func (v *Dump) ExprCastString(n *ast.ExprCastString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastString{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) ExprCastUnset(_ *ast.ExprCastUnset) { +func (v *Dump) ExprCastUnset(n *ast.ExprCastUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastUnset{\n") + + v.printNode(n.GetNode()) } func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { @@ -955,11 +1343,15 @@ func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } -func (v *Dump) ScalarEncapsed(_ *ast.ScalarEncapsed) { +func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsed{\n") + + v.printNode(n.GetNode()) } func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { @@ -968,6 +1360,8 @@ func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { @@ -976,6 +1370,8 @@ func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { v.printIndent(v.indent) v.print(fmt.Sprintf("Label: %q,\n", n.Label)) + + v.printNode(n.GetNode()) } func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { @@ -984,6 +1380,8 @@ func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { @@ -992,6 +1390,8 @@ func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } func (v *Dump) ScalarString(n *ast.ScalarString) { @@ -1000,21 +1400,29 @@ func (v *Dump) ScalarString(n *ast.ScalarString) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } -func (v *Dump) NameName(_ *ast.NameName) { +func (v *Dump) NameName(n *ast.NameName) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameName{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) NameFullyQualified(_ *ast.NameFullyQualified) { +func (v *Dump) NameFullyQualified(n *ast.NameFullyQualified) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameFullyQualified{\n") + + v.printNode(n.GetNode()) } -func (v *Dump) NameRelative(_ *ast.NameRelative) { +func (v *Dump) NameRelative(n *ast.NameRelative) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameRelative{\n") + + v.printNode(n.GetNode()) } func (v *Dump) NameNamePart(n *ast.NameNamePart) { @@ -1023,4 +1431,6 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + + v.printNode(n.GetNode()) } diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index 3d68a0d..df92014 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -4,11 +4,29 @@ import ( "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/ast/traverser" "github.com/z7zmey/php-parser/pkg/ast/visitor" + "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" "os" ) func ExampleDump() { stxTree := &ast.Root{ + Node: ast.Node{ + Tokens: token.Collection{ + token.Start: []token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + }, + }, + }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 1, + }, + }, Stmts: []ast.Vertex{ &ast.Identifier{}, &ast.Parameter{ @@ -25,6 +43,22 @@ func ExampleDump() { //output: //&ast.Root{ + // Node: ast.Node{ + // Tokens: token.Collection{ + // token.Start: []token.Token{ + // { + // ID: token.T_WHITESPACE, + // Value: []byte(" "), + // }, + // }, + // }, + // Position: &position.Position{ + // StartLine: 1, + // EndLine: 1, + // StartPos: 0, + // EndPos: 1, + // }, + // }, // Stmts: []ast.Vertex{ // &ast.Identifier{ // Value: "", diff --git a/pkg/token/token.go b/pkg/token/token.go index 6ba52d6..c1fa07e 100644 --- a/pkg/token/token.go +++ b/pkg/token/token.go @@ -1,5 +1,6 @@ package token +//go:generate stringer -type=ID -output ./token_string.go type ID int const ( diff --git a/pkg/token/token_string.go b/pkg/token/token_string.go new file mode 100644 index 0000000..ce34b14 --- /dev/null +++ b/pkg/token/token_string.go @@ -0,0 +1,161 @@ +// Code generated by "stringer -type=ID -output ./token_string.go"; DO NOT EDIT. + +package token + +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 _ID_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 _ID_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 ID) String() string { + i -= 57346 + if i < 0 || i >= ID(len(_ID_index)-1) { + return "ID(" + strconv.FormatInt(int64(i+57346), 10) + ")" + } + return _ID_name[_ID_index[i]:_ID_index[i+1]] +} From 7a8746600b22af34bb7ae1ee421ec6d79067bb03 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 4 Jul 2020 21:10:41 +0300 Subject: [PATCH 032/140] [refactoring] dumper: fix dumping node value --- pkg/ast/visitor/dump.go | 16 ++++++++-------- pkg/ast/visitor/dump_test.go | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index c86384d..45a06c1 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -196,7 +196,7 @@ func (v *Dump) Identifier(n *ast.Identifier) { v.print("&ast.Identifier{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } @@ -490,7 +490,7 @@ func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { v.print("&ast.StmtInlineHtml{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } @@ -1342,7 +1342,7 @@ func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { v.print("&ast.ScalarDnumber{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } @@ -1359,7 +1359,7 @@ func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.print("&ast.ScalarEncapsedStringPart{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } @@ -1379,7 +1379,7 @@ func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { v.print("&ast.ScalarLnumber{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } @@ -1389,7 +1389,7 @@ func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.print("&ast.ScalarMagicConstant{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } @@ -1399,7 +1399,7 @@ func (v *Dump) ScalarString(n *ast.ScalarString) { v.print("&ast.ScalarString{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } @@ -1430,7 +1430,7 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.print("&ast.NameNamePart{\n") v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: %q,\n", n.Value)) + v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) v.printNode(n.GetNode()) } diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index df92014..c257ed5 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -61,7 +61,7 @@ func ExampleDump() { // }, // Stmts: []ast.Vertex{ // &ast.Identifier{ - // Value: "", + // Value: []byte(""), // }, // &ast.Parameter{ // Variadic: true, @@ -69,7 +69,7 @@ func ExampleDump() { // }, // }, // &ast.StmtInlineHtml{ - // Value: "foo", + // Value: []byte("foo"), // }, // }, //} From 5cc3b502911a1e30207eefb8cf31aa1ad4c5ed36 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 4 Jul 2020 21:22:32 +0300 Subject: [PATCH 033/140] [refactoring] dumper: print Node first --- pkg/ast/visitor/dump.go | 204 ++++------------------------------------ 1 file changed, 18 insertions(+), 186 deletions(-) diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 45a06c1..5273c21 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -170,13 +170,13 @@ func (v *Dump) Root(n *ast.Root) { func (v *Dump) Nullable(n *ast.Nullable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Nullable{\n") - v.printNode(n.GetNode()) } func (v *Dump) Parameter(n *ast.Parameter) { v.printIndent(v.indent - 1) v.print("&ast.Parameter{\n") + v.printNode(n.GetNode()) if n.ByRef { v.printIndent(v.indent) @@ -187,30 +187,27 @@ func (v *Dump) Parameter(n *ast.Parameter) { v.printIndent(v.indent) v.print("Variadic: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) Identifier(n *ast.Identifier) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Identifier{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } func (v *Dump) ArgumentList(n *ast.ArgumentList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ArgumentList{\n") - v.printNode(n.GetNode()) } func (v *Dump) Argument(n *ast.Argument) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Argument{\n") + v.printNode(n.GetNode()) if n.Variadic { v.printIndent(v.indent) @@ -221,477 +218,413 @@ func (v *Dump) Argument(n *ast.Argument) { v.printIndent(v.indent) v.print("IsReference: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) StmtAltElse(n *ast.StmtAltElse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltElse{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtAltElseIf(n *ast.StmtAltElseIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltElseIf{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtAltFor(n *ast.StmtAltFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltFor{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtAltForeach(n *ast.StmtAltForeach) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltForeach{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtAltIf(n *ast.StmtAltIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltIf{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtAltSwitch(n *ast.StmtAltSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltSwitch{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtAltWhile(n *ast.StmtAltWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltWhile{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtBreak{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtCase(n *ast.StmtCase) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCase{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtCaseList(n *ast.StmtCaseList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCaseList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtCatch(n *ast.StmtCatch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCatch{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClass(n *ast.StmtClass) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClass{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassConstList(n *ast.StmtClassConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassConstList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassExtends(n *ast.StmtClassExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassExtends{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassImplements(n *ast.StmtClassImplements) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassImplements{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassMethod{\n") + v.printNode(n.GetNode()) if n.ReturnsRef { v.printIndent(v.indent) v.print("ReturnsRef: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) StmtConstList(n *ast.StmtConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtConstant(n *ast.StmtConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstant{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtContinue(n *ast.StmtContinue) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtContinue{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDeclare{\n") + v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) v.print("Alt: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) StmtDefault(n *ast.StmtDefault) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDefault{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtDo(n *ast.StmtDo) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDo{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtEcho(n *ast.StmtEcho) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtEcho{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtElse(n *ast.StmtElse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElse{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElseIf{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtExpression(n *ast.StmtExpression) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtExpression{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFinally(n *ast.StmtFinally) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFinally{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFor(n *ast.StmtFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFor{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtForeach(n *ast.StmtForeach) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtForeach{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFunction(n *ast.StmtFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFunction{\n") + v.printNode(n.GetNode()) if n.ReturnsRef { v.printIndent(v.indent) v.print("ReturnsRef: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGlobal{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtGoto(n *ast.StmtGoto) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGoto{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGroupUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtHaltCompiler{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtIf(n *ast.StmtIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtIf{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInlineHtml{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } func (v *Dump) StmtInterface(n *ast.StmtInterface) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterface{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterfaceExtends{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtLabel(n *ast.StmtLabel) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtLabel{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNamespace{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtNop(n *ast.StmtNop) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNop{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtProperty(n *ast.StmtProperty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtProperty{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtPropertyList(n *ast.StmtPropertyList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtPropertyList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtReturn(n *ast.StmtReturn) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtReturn{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStatic(n *ast.StmtStatic) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStatic{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStaticVar(n *ast.StmtStaticVar) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStaticVar{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStmtList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtSwitch{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtThrow(n *ast.StmtThrow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtThrow{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTrait(n *ast.StmtTrait) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTrait{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitAdaptationList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitMethodRef{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUse(n *ast.StmtTraitUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUseAlias{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUsePrecedence{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTry(n *ast.StmtTry) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTry{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtUnset(n *ast.StmtUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUnset{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtUse(n *ast.StmtUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtUseList(n *ast.StmtUseList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUseList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtWhile(n *ast.StmtWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtWhile{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArray(n *ast.ExprArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArray{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayDimFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayItem{\n") + v.printNode(n.GetNode()) if n.Unpack { v.printIndent(v.indent) v.print("Unpack: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrowFunction{\n") + v.printNode(n.GetNode()) if n.ReturnsRef { v.printIndent(v.indent) @@ -702,41 +635,36 @@ func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { v.printIndent(v.indent) v.print("Static: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBitwiseNot{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBooleanNot(n *ast.ExprBooleanNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBooleanNot{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClassConstFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClone(n *ast.ExprClone) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClone{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClosure(n *ast.ExprClosure) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosure{\n") + v.printNode(n.GetNode()) if n.ReturnsRef { v.printIndent(v.indent) @@ -747,690 +675,594 @@ func (v *Dump) ExprClosure(n *ast.ExprClosure) { v.printIndent(v.indent) v.print("Static: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosureUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprConstFetch(n *ast.ExprConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprConstFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprEmpty(n *ast.ExprEmpty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEmpty{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprErrorSuppress(n *ast.ExprErrorSuppress) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprErrorSuppress{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprEval(n *ast.ExprEval) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEval{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprExit(n *ast.ExprExit) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprExit{\n") + v.printNode(n.GetNode()) if n.Die { v.printIndent(v.indent) v.print("Die: true,\n") } - - v.printNode(n.GetNode()) } func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprFunctionCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprInclude(n *ast.ExprInclude) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInclude{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprIncludeOnce(n *ast.ExprIncludeOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIncludeOnce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprInstanceOf(n *ast.ExprInstanceOf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInstanceOf{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprIsset(n *ast.ExprIsset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIsset{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprList(n *ast.ExprList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprList{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprMethodCall(n *ast.ExprMethodCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprMethodCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprNew(n *ast.ExprNew) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprNew{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPostDec(n *ast.ExprPostDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostDec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPostInc(n *ast.ExprPostInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostInc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPreDec(n *ast.ExprPreDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreDec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPreInc(n *ast.ExprPreInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreInc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPrint(n *ast.ExprPrint) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPrint{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPropertyFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprReference(n *ast.ExprReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprReference{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprRequire(n *ast.ExprRequire) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequire{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprRequireOnce(n *ast.ExprRequireOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequireOnce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShellExec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprShortArray(n *ast.ExprShortArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShortArray{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprShortList(n *ast.ExprShortList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShortList{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticPropertyFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprTernary(n *ast.ExprTernary) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprTernary{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprUnaryMinus(n *ast.ExprUnaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprUnaryPlus(n *ast.ExprUnaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprVariable(n *ast.ExprVariable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprVariable{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprYield(n *ast.ExprYield) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYield{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprYieldFrom(n *ast.ExprYieldFrom) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYieldFrom{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssign(n *ast.ExprAssign) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssign{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignReference(n *ast.ExprAssignReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignReference{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignCoalesce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignConcat(n *ast.ExprAssignConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignConcat{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignDiv(n *ast.ExprAssignDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignDiv{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMinus(n *ast.ExprAssignMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMod(n *ast.ExprAssignMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMod{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMul(n *ast.ExprAssignMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMul{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignPlus(n *ast.ExprAssignPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignPow(n *ast.ExprAssignPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPow{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftLeft{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftRight{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryCoalesce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryConcat(n *ast.ExprBinaryConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryConcat{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryDiv(n *ast.ExprBinaryDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryDiv{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryEqual(n *ast.ExprBinaryEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryGreater(n *ast.ExprBinaryGreater) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreater{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreaterOrEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryIdentical{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMinus(n *ast.ExprBinaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMod(n *ast.ExprBinaryMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMod{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMul(n *ast.ExprBinaryMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMul{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotIdentical{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryPlus(n *ast.ExprBinaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryPow(n *ast.ExprBinaryPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPow{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftLeft{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftRight{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySmaller(n *ast.ExprBinarySmaller) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmaller{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmallerOrEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySpaceship{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastArray(n *ast.ExprCastArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastArray{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastBool(n *ast.ExprCastBool) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastBool{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastDouble(n *ast.ExprCastDouble) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastDouble{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastInt(n *ast.ExprCastInt) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastInt{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastObject(n *ast.ExprCastObject) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastObject{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastString(n *ast.ExprCastString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastString{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastUnset(n *ast.ExprCastUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastUnset{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarDnumber{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsed{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsedStringPart{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarHeredoc{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Label: %q,\n", n.Label)) - - v.printNode(n.GetNode()) } func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarLnumber{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarMagicConstant{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } func (v *Dump) ScalarString(n *ast.ScalarString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarString{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } func (v *Dump) NameName(n *ast.NameName) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameName{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameFullyQualified(n *ast.NameFullyQualified) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameFullyQualified{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameRelative(n *ast.NameRelative) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameRelative{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameNamePart{\n") + v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) - - v.printNode(n.GetNode()) } From b5e29fc9f5ebe7ec6b1f89a0cf82aade9cb3858b Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 5 Jul 2020 18:27:34 +0300 Subject: [PATCH 034/140] [refactoring] fix dfs traverser --- pkg/ast/traverser/dfs.go | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 2bba30c..7a13184 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -337,6 +337,21 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Modifiers", false) } + if nn.ArgumentList != nil { + t.visitor.Enter("ArgumentList", true) + t.Traverse(nn.ArgumentList) + t.visitor.Leave("ArgumentList", true) + } + if nn.Extends != nil { + t.visitor.Enter("Extends", true) + t.Traverse(nn.Extends) + t.visitor.Leave("Extends", true) + } + if nn.Implements != nil { + t.visitor.Enter("Implements", true) + t.Traverse(nn.Implements) + t.visitor.Leave("Implements", true) + } if nn.Stmts != nil { t.visitor.Enter("Stmts", false) for _, c := range nn.Stmts { @@ -785,6 +800,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.InterfaceName) t.visitor.Leave("InterfaceName", true) } + if nn.Extends != nil { + t.visitor.Enter("Extends", true) + t.Traverse(nn.Extends) + t.visitor.Leave("Extends", true) + } if nn.Stmts != nil { t.visitor.Enter("Stmts", false) for _, c := range nn.Stmts { @@ -845,6 +865,12 @@ func (t *DFS) Traverse(n ast.Vertex) { return } case *ast.StmtProperty: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } if nn.Var != nil { t.visitor.Enter("Var", true) t.Traverse(nn.Var) @@ -950,6 +976,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Cond) t.visitor.Leave("Cond", true) } + if nn.CaseList != nil { + t.visitor.Enter("CaseList", true) + t.Traverse(nn.CaseList) + t.visitor.Leave("CaseList", true) + } case *ast.StmtThrow: if nn == nil { return @@ -1503,6 +1534,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Method) t.visitor.Leave("Method", true) } + if nn.ArgumentList != nil { + t.visitor.Enter("ArgumentList", true) + t.Traverse(nn.ArgumentList) + t.visitor.Leave("ArgumentList", true) + } case *ast.ExprNew: if nn == nil { return @@ -1515,6 +1551,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Class) t.visitor.Leave("Class", true) } + if nn.ArgumentList != nil { + t.visitor.Enter("ArgumentList", true) + t.Traverse(nn.ArgumentList) + t.visitor.Leave("ArgumentList", true) + } case *ast.ExprPostDec: if nn == nil { return From ce18c23597f361b92408b2c61a7626168587bf6d Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 5 Jul 2020 22:47:46 +0300 Subject: [PATCH 035/140] [refactoring] parameters: new node structure --- internal/php5/parser_test.go | 414 +- internal/php5/php5.go | 852 +- internal/php5/php5.y | 94 +- internal/php5/php5_test.go | 8743 ++++++++++---------- internal/php5/test.php | 381 + internal/php7/parser_test.go | 430 +- internal/php7/php7.go | 654 +- internal/php7/php7.y | 96 +- internal/php7/php7_test.go | 7725 +++++++++-------- internal/php7/test.php | 350 + pkg/ast/ast.go | 2 + pkg/ast/node.go | 22 +- pkg/ast/traverser/dfs.go | 24 + pkg/ast/visitor/dump.go | 30 +- pkg/ast/visitor/dump_test.go | 4 +- pkg/ast/visitor/namespace_resolver_test.go | 18 +- pkg/ast/visitor/null.go | 8 + pkg/printer/pretty_printer.go | 26 +- pkg/printer/pretty_printer_test.go | 36 +- pkg/printer/printer.go | 36 +- pkg/printer/printer_parsed_php7_test.go | 12 + pkg/printer/printer_test.go | 68 +- 22 files changed, 10090 insertions(+), 9935 deletions(-) create mode 100644 internal/php5/test.php create mode 100644 internal/php7/test.php diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 2102e1c..7930f17 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -849,7 +849,7 @@ func TestPhp5ArgumentNode(t *testing.T) { } func TestPhp5ParameterNode(t *testing.T) { - src := `bar($a, ...$b); - foo::bar($a, ...$b); - $foo::bar($a, ...$b); - new foo($a, ...$b); - - function foo(bar $bar=null, baz &...$baz) {} - class foo {public function foo(bar $bar=null, baz &...$baz) {}} - function(bar $bar=null, baz &...$baz) {}; - static function(bar $bar=null, baz &...$baz) {}; - - 1234567890123456789; - 12345678901234567890; - 0.; - 0b0111111111111111111111111111111111111111111111111111111111111111; - 0b1111111111111111111111111111111111111111111111111111111111111111; - 0x007111111111111111; - 0x8111111111111111; - __CLASS__; - __DIR__; - __FILE__; - __FUNCTION__; - __LINE__; - __NAMESPACE__; - __METHOD__; - __TRAIT__; - - "test $var"; - "test $var[1]"; - "test $var[1234567890123456789012345678901234567890]"; - "test $var[bar]"; - "test $var[$bar]"; - "$foo $bar"; - "test $foo->bar()"; - "test ${foo}"; - "test ${foo[0]}"; - "test {$foo->bar()}"; - - if ($a) : - endif; - if ($a) : - elseif ($b): - endif; - if ($a) : - else: - endif; - if ($a) : - elseif ($b): - elseif ($c): - else: - endif; - - while (1) { break; } - while (1) { break 2; } - while (1) : break(3); endwhile; - class foo{ const FOO = 1, BAR = 2; } - class foo{ function bar() {} } - class foo{ public static function &bar() {} } - class foo{ final private function bar() {} protected function baz() {} } - abstract class foo{ abstract public function bar(); } - final class foo extends bar { } - final class foo implements bar { } - final class foo implements bar, baz { } - - const FOO = 1, BAR = 2; - while (1) { continue; } - while (1) { continue 2; } - while (1) { continue(3); } - declare(ticks=1); - declare(ticks=1, strict_types=1) {} - declare(ticks=1): enddeclare; - do {} while(1); - echo $a, 1; - echo($a); - for($i = 0; $i < 10; $i++, $i++) {} - for(; $i < 10; $i++) : endfor; - foreach ($a as $v) {} - foreach ([] as $v) {} - foreach ($a as $v) : endforeach; - foreach ($a as $k => $v) {} - foreach ([] as $k => $v) {} - foreach ($a as $k => &$v) {} - foreach ($a as $k => list($v)) {} - function foo() {} - - function foo() { - function bar() {} - class Baz {} - return $a; - } - - function foo(array $a, callable $b) {return;} - function &foo() {return 1;} - function &foo() {} - global $a, $b, $$c, ${foo()}; - a: - goto a; - if ($a) {} - if ($a) {} elseif ($b) {} - if ($a) {} else {} - if ($a) {} elseif ($b) {} elseif ($c) {} else {} - if ($a) {} elseif ($b) {} else if ($c) {} else {} - ?>
1, &$b,); - array(3 =>&$b); - array(&$b, 1=>1, 1, 3 =>&$b); - ~$a; - !$a; - - Foo::Bar; - clone($a); - clone $a; - function(){}; - function($a, $b) use ($c, &$d) {}; - function($a, $b) use (&$c, $d) {}; - function() {}; - foo; - namespace\foo; - \foo; - - empty($a); - empty(Foo); - @$a; - eval($a); - exit; - exit($a); - die(); - die($a); - foo(); - namespace\foo(&$a); - \foo([]); - $foo(yield $a); - - $a--; - $a++; - --$a; - ++$a; - - include $a; - include_once $a; - require $a; - require_once $a; - - $a instanceof Foo; - $a instanceof namespace\Foo; - $a instanceof \Foo; - - isset($a, $b); - isset(Foo); - list() = $b; - list($a, $b) = $b; - list($a[]) = $b; - list(list($a)) = $b; - - $a->foo(); - new Foo; - new namespace\Foo(); - new \Foo(); - print($a); - $a->foo; - $a->foo[1]; - $a->foo->bar->baz()->quux[0]; - $a->foo()[1][1]; - ` + "`cmd $a`;" + ` - ` + "`cmd`;" + ` - ` + "``;" + ` - []; - [1]; - [1=>1, &$b,]; - - Foo::bar(); - namespace\Foo::bar(); - \Foo::bar(); - Foo::$bar(); - $foo::$bar(); - Foo::$bar; - namespace\Foo::$bar; - \Foo::$bar; - $a ? $b : $c; - $a ? : $c; - $a ? $b ? $c : $d : $e; - $a ? $b : $c ? $d : $e; - -$a; - +$a; - $$a; - $$$a; - yield; - yield $a; - yield $a => $b; - yield Foo::class; - yield $a => Foo::class; - - (array)$a; - (boolean)$a; - (bool)$a; - (double)$a; - (float)$a; - (integer)$a; - (int)$a; - (object)$a; - (string)$a; - (unset)$a; - - $a & $b; - $a | $b; - $a ^ $b; - $a && $b; - $a || $b; - $a . $b; - $a / $b; - $a == $b; - $a >= $b; - $a > $b; - $a === $b; - $a and $b; - $a or $b; - $a xor $b; - $a - $b; - $a % $b; - $a * $b; - $a != $b; - $a !== $b; - $a + $b; - $a ** $b; - $a << $b; - $a >> $b; - $a <= $b; - $a < $b; - - $a =& $b; - $a =& new Foo; - $a =& new Foo($b); - $a = $b; - $a &= $b; - $a |= $b; - $a ^= $b; - $a .= $b; - $a /= $b; - $a -= $b; - $a %= $b; - $a *= $b; - $a += $b; - $a **= $b; - $a <<= $b; - $a >>= $b; - - - (new \Foo()); - (new \Foo())->bar()->baz; - (new \Foo())[0][0]; - (new \Foo())[0]->bar(); - - array([0])[0][0]; - "foo"[0]; - foo[0]; - static::foo; - - new $foo; - new $foo::$bar; - new $a->b[0]; - new $a->b{$b ?: null}->$c->d[0];static $a = [1][0]; - - static $a = !1; - static $a = ~1; - static $a = +1; - static $a = -1; - static $a = (1); - static $a = 1 ?: 2; - static $a = 1 ? 2 : 3; - static $a = 1 & 2; - static $a = 1 | 2; - static $a = 1 ^ 2; - static $a = 1 && 2; - static $a = 1 || 2; - static $a = 1 . 2; - static $a = 1 / 2; - static $a = 1 == 2; - static $a = 1 >= 2; - static $a = 1 > 2; - static $a = 1 === 2; - static $a = 1 and 2; - static $a = 1 or 2; - static $a = 1 xor 2; - static $a = 1 - 2; - static $a = 1 % 2; - static $a = 1 * 2; - static $a = 1 != 2; - static $a = 1 !== 2; - static $a = 1 + 2; - static $a = 1 ** 2; - static $a = 1 << 2; - static $a = 1 >> 2; - static $a = 1 <= 2; - static $a = 1 < 2; - static $a = Foo::bar; - static $a = Foo::class; - static $a = __CLASS__; - static $a = Foo; - static $a = namespace\Foo; - static $a = \Foo; - static $a = array(); - static $a = array(1 => 1, 2); - static $a = [1, 2 => 2][0]; - - if (yield 1) {} - Foo::$$bar; - - $foo(); - $foo()[0][0]; - $a{$b}; - ${$a}; - $foo::{$bar}(); - $foo::bar; - - __halt_compiler(); - - parsing process must be terminated - ` + src, err := ioutil.ReadFile("test.php") + assert.NilError(t, err) expected := &ast.Root{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 379, - StartPos: 5, - EndPos: 6944, + StartPos: 3, + EndPos: 6285, }, }, Stmts: []ast.Vertex{ @@ -411,8 +32,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 20, + StartPos: 3, + EndPos: 18, }, }, Expr: &ast.ExprFunctionCall{ @@ -420,8 +41,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 19, + StartPos: 3, + EndPos: 17, }, }, Function: &ast.NameName{ @@ -429,8 +50,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 8, + StartPos: 3, + EndPos: 6, }, }, Parts: []ast.Vertex{ @@ -439,8 +60,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 8, + StartPos: 3, + EndPos: 6, }, }, Value: []byte("foo"), @@ -452,8 +73,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 8, - EndPos: 19, + StartPos: 6, + EndPos: 17, }, }, Arguments: []ast.Vertex{ @@ -462,19 +83,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, - EndPos: 11, + StartPos: 7, + EndPos: 9, }, }, - IsReference: false, - Variadic: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, - EndPos: 11, + StartPos: 7, + EndPos: 9, }, }, VarName: &ast.Identifier{ @@ -482,8 +101,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, - EndPos: 11, + StartPos: 7, + EndPos: 9, }, }, Value: []byte("$a"), @@ -495,19 +114,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 13, - EndPos: 18, + StartPos: 11, + EndPos: 16, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 16, - EndPos: 18, + StartPos: 14, + EndPos: 16, }, }, VarName: &ast.Identifier{ @@ -515,8 +133,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 16, - EndPos: 18, + StartPos: 14, + EndPos: 16, }, }, Value: []byte("$b"), @@ -532,8 +150,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 39, + StartPos: 19, + EndPos: 35, }, }, Expr: &ast.ExprFunctionCall{ @@ -541,8 +159,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 38, + StartPos: 19, + EndPos: 34, }, }, Function: &ast.ExprVariable{ @@ -550,8 +168,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 27, + StartPos: 19, + EndPos: 23, }, }, VarName: &ast.Identifier{ @@ -559,8 +177,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 27, + StartPos: 19, + EndPos: 23, }, }, Value: []byte("$foo"), @@ -571,8 +189,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 27, - EndPos: 38, + StartPos: 23, + EndPos: 34, }, }, Arguments: []ast.Vertex{ @@ -581,19 +199,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 30, + StartPos: 24, + EndPos: 26, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 30, + StartPos: 24, + EndPos: 26, }, }, VarName: &ast.Identifier{ @@ -601,8 +217,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 30, + StartPos: 24, + EndPos: 26, }, }, Value: []byte("$a"), @@ -614,19 +230,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 32, - EndPos: 37, + StartPos: 28, + EndPos: 33, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 35, - EndPos: 37, + StartPos: 31, + EndPos: 33, }, }, VarName: &ast.Identifier{ @@ -634,8 +249,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 35, - EndPos: 37, + StartPos: 31, + EndPos: 33, }, }, Value: []byte("$b"), @@ -651,8 +266,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 63, + StartPos: 36, + EndPos: 57, }, }, Expr: &ast.ExprMethodCall{ @@ -660,8 +275,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 62, + StartPos: 36, + EndPos: 56, }, }, Var: &ast.ExprVariable{ @@ -669,8 +284,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 46, + StartPos: 36, + EndPos: 40, }, }, VarName: &ast.Identifier{ @@ -678,8 +293,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 46, + StartPos: 36, + EndPos: 40, }, }, Value: []byte("$foo"), @@ -690,8 +305,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 48, - EndPos: 51, + StartPos: 42, + EndPos: 45, }, }, Value: []byte("bar"), @@ -701,8 +316,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 51, - EndPos: 62, + StartPos: 45, + EndPos: 56, }, }, Arguments: []ast.Vertex{ @@ -711,19 +326,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, - EndPos: 54, + StartPos: 46, + EndPos: 48, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, - EndPos: 54, + StartPos: 46, + EndPos: 48, }, }, VarName: &ast.Identifier{ @@ -731,8 +344,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, - EndPos: 54, + StartPos: 46, + EndPos: 48, }, }, Value: []byte("$a"), @@ -744,19 +357,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 56, - EndPos: 61, + StartPos: 50, + EndPos: 55, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 59, - EndPos: 61, + StartPos: 53, + EndPos: 55, }, }, VarName: &ast.Identifier{ @@ -764,8 +376,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 59, - EndPos: 61, + StartPos: 53, + EndPos: 55, }, }, Value: []byte("$b"), @@ -781,8 +393,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 86, + StartPos: 58, + EndPos: 78, }, }, Expr: &ast.ExprStaticCall{ @@ -790,8 +402,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 85, + StartPos: 58, + EndPos: 77, }, }, Class: &ast.NameName{ @@ -799,8 +411,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 69, + StartPos: 58, + EndPos: 61, }, }, Parts: []ast.Vertex{ @@ -809,8 +421,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 69, + StartPos: 58, + EndPos: 61, }, }, Value: []byte("foo"), @@ -822,8 +434,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 71, - EndPos: 74, + StartPos: 63, + EndPos: 66, }, }, Value: []byte("bar"), @@ -833,8 +445,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 74, - EndPos: 85, + StartPos: 66, + EndPos: 77, }, }, Arguments: []ast.Vertex{ @@ -843,19 +455,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, - EndPos: 77, + StartPos: 67, + EndPos: 69, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, - EndPos: 77, + StartPos: 67, + EndPos: 69, }, }, VarName: &ast.Identifier{ @@ -863,8 +473,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, - EndPos: 77, + StartPos: 67, + EndPos: 69, }, }, Value: []byte("$a"), @@ -876,19 +486,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 79, - EndPos: 84, + StartPos: 71, + EndPos: 76, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 82, - EndPos: 84, + StartPos: 74, + EndPos: 76, }, }, VarName: &ast.Identifier{ @@ -896,8 +505,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 82, - EndPos: 84, + StartPos: 74, + EndPos: 76, }, }, Value: []byte("$b"), @@ -913,8 +522,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 110, + StartPos: 79, + EndPos: 100, }, }, Expr: &ast.ExprStaticCall{ @@ -922,8 +531,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 109, + StartPos: 79, + EndPos: 99, }, }, Class: &ast.ExprVariable{ @@ -931,8 +540,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 93, + StartPos: 79, + EndPos: 83, }, }, VarName: &ast.Identifier{ @@ -940,8 +549,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 93, + StartPos: 79, + EndPos: 83, }, }, Value: []byte("$foo"), @@ -952,8 +561,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 95, - EndPos: 98, + StartPos: 85, + EndPos: 88, }, }, Value: []byte("bar"), @@ -963,8 +572,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 98, - EndPos: 109, + StartPos: 88, + EndPos: 99, }, }, Arguments: []ast.Vertex{ @@ -973,19 +582,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, - EndPos: 101, + StartPos: 89, + EndPos: 91, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, - EndPos: 101, + StartPos: 89, + EndPos: 91, }, }, VarName: &ast.Identifier{ @@ -993,8 +600,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, - EndPos: 101, + StartPos: 89, + EndPos: 91, }, }, Value: []byte("$a"), @@ -1006,19 +613,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 103, - EndPos: 108, + StartPos: 93, + EndPos: 98, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 106, - EndPos: 108, + StartPos: 96, + EndPos: 98, }, }, VarName: &ast.Identifier{ @@ -1026,8 +632,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 106, - EndPos: 108, + StartPos: 96, + EndPos: 98, }, }, Value: []byte("$b"), @@ -1043,8 +649,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 113, - EndPos: 132, + StartPos: 101, + EndPos: 120, }, }, Expr: &ast.ExprNew{ @@ -1052,8 +658,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 113, - EndPos: 131, + StartPos: 101, + EndPos: 119, }, }, Class: &ast.NameName{ @@ -1061,8 +667,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 117, - EndPos: 120, + StartPos: 105, + EndPos: 108, }, }, Parts: []ast.Vertex{ @@ -1071,8 +677,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 117, - EndPos: 120, + StartPos: 105, + EndPos: 108, }, }, Value: []byte("foo"), @@ -1084,8 +690,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 120, - EndPos: 131, + StartPos: 108, + EndPos: 119, }, }, Arguments: []ast.Vertex{ @@ -1094,19 +700,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, - EndPos: 123, + StartPos: 109, + EndPos: 111, }, }, - IsReference: false, - Variadic: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, - EndPos: 123, + StartPos: 109, + EndPos: 111, }, }, VarName: &ast.Identifier{ @@ -1114,8 +718,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, - EndPos: 123, + StartPos: 109, + EndPos: 111, }, }, Value: []byte("$a"), @@ -1127,19 +731,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 125, - EndPos: 130, + StartPos: 113, + EndPos: 118, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 128, - EndPos: 130, + StartPos: 116, + EndPos: 118, }, }, VarName: &ast.Identifier{ @@ -1147,8 +750,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 128, - EndPos: 130, + StartPos: 116, + EndPos: 118, }, }, Value: []byte("$b"), @@ -1164,18 +767,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 136, - EndPos: 180, + StartPos: 122, + EndPos: 166, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 145, - EndPos: 148, + StartPos: 131, + EndPos: 134, }, }, Value: []byte("foo"), @@ -1186,19 +788,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 149, - EndPos: 162, + StartPos: 135, + EndPos: 148, }, }, - ByRef: false, - Variadic: false, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 149, - EndPos: 152, + StartPos: 135, + EndPos: 138, }, }, Parts: []ast.Vertex{ @@ -1207,8 +807,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 149, - EndPos: 152, + StartPos: 135, + EndPos: 138, }, }, Value: []byte("bar"), @@ -1220,8 +820,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 153, - EndPos: 157, + StartPos: 139, + EndPos: 143, }, }, VarName: &ast.Identifier{ @@ -1229,8 +829,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 153, - EndPos: 157, + StartPos: 139, + EndPos: 143, }, }, Value: []byte("$bar"), @@ -1241,8 +841,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 158, - EndPos: 162, + StartPos: 144, + EndPos: 148, }, }, Const: &ast.NameName{ @@ -1250,8 +850,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 158, - EndPos: 162, + StartPos: 144, + EndPos: 148, }, }, Parts: []ast.Vertex{ @@ -1260,8 +860,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 158, - EndPos: 162, + StartPos: 144, + EndPos: 148, }, }, Value: []byte("null"), @@ -1275,19 +875,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 164, - EndPos: 176, + StartPos: 150, + EndPos: 162, }, }, - ByRef: true, - Variadic: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 164, - EndPos: 167, + StartPos: 150, + EndPos: 153, }, }, Parts: []ast.Vertex{ @@ -1296,33 +894,53 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 164, - EndPos: 167, + StartPos: 150, + EndPos: 153, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 172, - EndPos: 176, + StartPos: 154, + EndPos: 162, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 172, - EndPos: 176, + StartPos: 155, + EndPos: 162, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 158, + EndPos: 162, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 158, + EndPos: 162, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -1334,8 +952,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 183, - EndPos: 246, + StartPos: 167, + EndPos: 230, }, }, ClassName: &ast.Identifier{ @@ -1343,8 +961,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 189, - EndPos: 192, + StartPos: 173, + EndPos: 176, }, }, Value: []byte("foo"), @@ -1355,18 +973,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 194, - EndPos: 245, + StartPos: 178, + EndPos: 229, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 210, - EndPos: 213, + StartPos: 194, + EndPos: 197, }, }, Value: []byte("foo"), @@ -1377,8 +994,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 194, - EndPos: 200, + StartPos: 178, + EndPos: 184, }, }, Value: []byte("public"), @@ -1390,19 +1007,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 214, - EndPos: 227, + StartPos: 198, + EndPos: 211, }, }, - ByRef: false, - Variadic: false, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 214, - EndPos: 217, + StartPos: 198, + EndPos: 201, }, }, Parts: []ast.Vertex{ @@ -1411,8 +1026,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 214, - EndPos: 217, + StartPos: 198, + EndPos: 201, }, }, Value: []byte("bar"), @@ -1424,8 +1039,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 218, - EndPos: 222, + StartPos: 202, + EndPos: 206, }, }, VarName: &ast.Identifier{ @@ -1433,8 +1048,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 218, - EndPos: 222, + StartPos: 202, + EndPos: 206, }, }, Value: []byte("$bar"), @@ -1445,8 +1060,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 223, - EndPos: 227, + StartPos: 207, + EndPos: 211, }, }, Const: &ast.NameName{ @@ -1454,8 +1069,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 223, - EndPos: 227, + StartPos: 207, + EndPos: 211, }, }, Parts: []ast.Vertex{ @@ -1464,8 +1079,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 223, - EndPos: 227, + StartPos: 207, + EndPos: 211, }, }, Value: []byte("null"), @@ -1479,19 +1094,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 229, - EndPos: 241, + StartPos: 213, + EndPos: 225, }, }, - ByRef: true, - Variadic: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 229, - EndPos: 232, + StartPos: 213, + EndPos: 216, }, }, Parts: []ast.Vertex{ @@ -1500,33 +1113,53 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 229, - EndPos: 232, + StartPos: 213, + EndPos: 216, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 237, - EndPos: 241, + StartPos: 217, + EndPos: 225, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 237, - EndPos: 241, + StartPos: 218, + EndPos: 225, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 221, + EndPos: 225, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 221, + EndPos: 225, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -1536,8 +1169,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 243, - EndPos: 245, + StartPos: 227, + EndPos: 229, }, }, Stmts: []ast.Vertex{}, @@ -1550,8 +1183,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 249, - EndPos: 290, + StartPos: 231, + EndPos: 272, }, }, Expr: &ast.ExprClosure{ @@ -1559,31 +1192,27 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 249, - EndPos: 289, + StartPos: 231, + EndPos: 271, }, }, - ReturnsRef: false, - Static: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 258, - EndPos: 271, + StartPos: 240, + EndPos: 253, }, }, - ByRef: false, - Variadic: false, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 258, - EndPos: 261, + StartPos: 240, + EndPos: 243, }, }, Parts: []ast.Vertex{ @@ -1592,8 +1221,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 258, - EndPos: 261, + StartPos: 240, + EndPos: 243, }, }, Value: []byte("bar"), @@ -1605,8 +1234,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 262, - EndPos: 266, + StartPos: 244, + EndPos: 248, }, }, VarName: &ast.Identifier{ @@ -1614,8 +1243,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 262, - EndPos: 266, + StartPos: 244, + EndPos: 248, }, }, Value: []byte("$bar"), @@ -1626,8 +1255,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 267, - EndPos: 271, + StartPos: 249, + EndPos: 253, }, }, Const: &ast.NameName{ @@ -1635,8 +1264,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 267, - EndPos: 271, + StartPos: 249, + EndPos: 253, }, }, Parts: []ast.Vertex{ @@ -1645,8 +1274,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 267, - EndPos: 271, + StartPos: 249, + EndPos: 253, }, }, Value: []byte("null"), @@ -1660,19 +1289,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 273, - EndPos: 285, + StartPos: 255, + EndPos: 267, }, }, - ByRef: true, - Variadic: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 273, - EndPos: 276, + StartPos: 255, + EndPos: 258, }, }, Parts: []ast.Vertex{ @@ -1681,33 +1308,53 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 273, - EndPos: 276, + StartPos: 255, + EndPos: 258, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 281, - EndPos: 285, + StartPos: 259, + EndPos: 267, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 281, - EndPos: 285, + StartPos: 260, + EndPos: 267, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 263, + EndPos: 267, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 263, + EndPos: 267, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -1720,8 +1367,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 293, - EndPos: 341, + StartPos: 273, + EndPos: 321, }, }, Expr: &ast.ExprClosure{ @@ -1729,31 +1376,28 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 293, - EndPos: 340, + StartPos: 273, + EndPos: 320, }, }, - ReturnsRef: false, - Static: true, + Static: true, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 309, - EndPos: 322, + StartPos: 289, + EndPos: 302, }, }, - ByRef: false, - Variadic: false, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 309, - EndPos: 312, + StartPos: 289, + EndPos: 292, }, }, Parts: []ast.Vertex{ @@ -1762,8 +1406,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 309, - EndPos: 312, + StartPos: 289, + EndPos: 292, }, }, Value: []byte("bar"), @@ -1775,8 +1419,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 313, - EndPos: 317, + StartPos: 293, + EndPos: 297, }, }, VarName: &ast.Identifier{ @@ -1784,8 +1428,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 313, - EndPos: 317, + StartPos: 293, + EndPos: 297, }, }, Value: []byte("$bar"), @@ -1796,8 +1440,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 318, - EndPos: 322, + StartPos: 298, + EndPos: 302, }, }, Const: &ast.NameName{ @@ -1805,8 +1449,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 318, - EndPos: 322, + StartPos: 298, + EndPos: 302, }, }, Parts: []ast.Vertex{ @@ -1815,8 +1459,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 318, - EndPos: 322, + StartPos: 298, + EndPos: 302, }, }, Value: []byte("null"), @@ -1830,19 +1474,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 324, - EndPos: 336, + StartPos: 304, + EndPos: 316, }, }, - ByRef: true, - Variadic: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 324, - EndPos: 327, + StartPos: 304, + EndPos: 307, }, }, Parts: []ast.Vertex{ @@ -1851,33 +1493,53 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 324, - EndPos: 327, + StartPos: 304, + EndPos: 307, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 332, - EndPos: 336, + StartPos: 308, + EndPos: 316, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 332, - EndPos: 336, + StartPos: 309, + EndPos: 316, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 312, + EndPos: 316, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 312, + EndPos: 316, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -1890,8 +1552,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 345, - EndPos: 365, + StartPos: 323, + EndPos: 343, }, }, Expr: &ast.ScalarLnumber{ @@ -1899,8 +1561,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 345, - EndPos: 364, + StartPos: 323, + EndPos: 342, }, }, Value: []byte("1234567890123456789"), @@ -1911,8 +1573,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 368, - EndPos: 389, + StartPos: 344, + EndPos: 365, }, }, Expr: &ast.ScalarDnumber{ @@ -1920,8 +1582,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 368, - EndPos: 388, + StartPos: 344, + EndPos: 364, }, }, Value: []byte("12345678901234567890"), @@ -1932,8 +1594,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 392, - EndPos: 395, + StartPos: 366, + EndPos: 369, }, }, Expr: &ast.ScalarDnumber{ @@ -1941,8 +1603,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 392, - EndPos: 394, + StartPos: 366, + EndPos: 368, }, }, Value: []byte("0."), @@ -1953,8 +1615,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 17, EndLine: 17, - StartPos: 398, - EndPos: 465, + StartPos: 370, + EndPos: 437, }, }, Expr: &ast.ScalarLnumber{ @@ -1962,8 +1624,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 17, EndLine: 17, - StartPos: 398, - EndPos: 464, + StartPos: 370, + EndPos: 436, }, }, Value: []byte("0b0111111111111111111111111111111111111111111111111111111111111111"), @@ -1974,8 +1636,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 468, - EndPos: 535, + StartPos: 438, + EndPos: 505, }, }, Expr: &ast.ScalarDnumber{ @@ -1983,8 +1645,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 468, - EndPos: 534, + StartPos: 438, + EndPos: 504, }, }, Value: []byte("0b1111111111111111111111111111111111111111111111111111111111111111"), @@ -1995,8 +1657,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 538, - EndPos: 559, + StartPos: 506, + EndPos: 527, }, }, Expr: &ast.ScalarLnumber{ @@ -2004,8 +1666,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 538, - EndPos: 558, + StartPos: 506, + EndPos: 526, }, }, Value: []byte("0x007111111111111111"), @@ -2016,8 +1678,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 562, - EndPos: 581, + StartPos: 528, + EndPos: 547, }, }, Expr: &ast.ScalarDnumber{ @@ -2025,8 +1687,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 562, - EndPos: 580, + StartPos: 528, + EndPos: 546, }, }, Value: []byte("0x8111111111111111"), @@ -2037,8 +1699,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 584, - EndPos: 594, + StartPos: 548, + EndPos: 558, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2046,8 +1708,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 584, - EndPos: 593, + StartPos: 548, + EndPos: 557, }, }, Value: []byte("__CLASS__"), @@ -2058,8 +1720,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 22, EndLine: 22, - StartPos: 597, - EndPos: 605, + StartPos: 559, + EndPos: 567, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2067,8 +1729,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 22, EndLine: 22, - StartPos: 597, - EndPos: 604, + StartPos: 559, + EndPos: 566, }, }, Value: []byte("__DIR__"), @@ -2079,8 +1741,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 608, - EndPos: 617, + StartPos: 568, + EndPos: 577, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2088,8 +1750,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 608, - EndPos: 616, + StartPos: 568, + EndPos: 576, }, }, Value: []byte("__FILE__"), @@ -2100,8 +1762,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 620, - EndPos: 633, + StartPos: 578, + EndPos: 591, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2109,8 +1771,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 620, - EndPos: 632, + StartPos: 578, + EndPos: 590, }, }, Value: []byte("__FUNCTION__"), @@ -2121,8 +1783,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 636, - EndPos: 645, + StartPos: 592, + EndPos: 601, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2130,8 +1792,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 636, - EndPos: 644, + StartPos: 592, + EndPos: 600, }, }, Value: []byte("__LINE__"), @@ -2142,8 +1804,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 648, - EndPos: 662, + StartPos: 602, + EndPos: 616, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2151,8 +1813,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 648, - EndPos: 661, + StartPos: 602, + EndPos: 615, }, }, Value: []byte("__NAMESPACE__"), @@ -2163,8 +1825,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 665, - EndPos: 676, + StartPos: 617, + EndPos: 628, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2172,8 +1834,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 665, - EndPos: 675, + StartPos: 617, + EndPos: 627, }, }, Value: []byte("__METHOD__"), @@ -2184,8 +1846,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 679, - EndPos: 689, + StartPos: 629, + EndPos: 639, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2193,8 +1855,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 679, - EndPos: 688, + StartPos: 629, + EndPos: 638, }, }, Value: []byte("__TRAIT__"), @@ -2205,8 +1867,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 693, - EndPos: 705, + StartPos: 641, + EndPos: 653, }, }, Expr: &ast.ScalarEncapsed{ @@ -2214,8 +1876,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 693, - EndPos: 704, + StartPos: 641, + EndPos: 652, }, }, Parts: []ast.Vertex{ @@ -2224,8 +1886,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 694, - EndPos: 699, + StartPos: 642, + EndPos: 647, }, }, Value: []byte("test "), @@ -2235,8 +1897,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 699, - EndPos: 703, + StartPos: 647, + EndPos: 651, }, }, VarName: &ast.Identifier{ @@ -2244,8 +1906,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 699, - EndPos: 703, + StartPos: 647, + EndPos: 651, }, }, Value: []byte("$var"), @@ -2259,8 +1921,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 708, - EndPos: 723, + StartPos: 654, + EndPos: 669, }, }, Expr: &ast.ScalarEncapsed{ @@ -2268,8 +1930,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 708, - EndPos: 722, + StartPos: 654, + EndPos: 668, }, }, Parts: []ast.Vertex{ @@ -2278,8 +1940,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 709, - EndPos: 714, + StartPos: 655, + EndPos: 660, }, }, Value: []byte("test "), @@ -2289,8 +1951,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 714, - EndPos: 721, + StartPos: 660, + EndPos: 667, }, }, Var: &ast.ExprVariable{ @@ -2298,8 +1960,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 714, - EndPos: 718, + StartPos: 660, + EndPos: 664, }, }, VarName: &ast.Identifier{ @@ -2307,8 +1969,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 714, - EndPos: 718, + StartPos: 660, + EndPos: 664, }, }, Value: []byte("$var"), @@ -2319,8 +1981,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 719, - EndPos: 720, + StartPos: 665, + EndPos: 666, }, }, Value: []byte("1"), @@ -2334,8 +1996,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 726, - EndPos: 780, + StartPos: 670, + EndPos: 724, }, }, Expr: &ast.ScalarEncapsed{ @@ -2343,8 +2005,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 726, - EndPos: 779, + StartPos: 670, + EndPos: 723, }, }, Parts: []ast.Vertex{ @@ -2353,8 +2015,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 727, - EndPos: 732, + StartPos: 671, + EndPos: 676, }, }, Value: []byte("test "), @@ -2364,8 +2026,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 732, - EndPos: 778, + StartPos: 676, + EndPos: 722, }, }, Var: &ast.ExprVariable{ @@ -2373,8 +2035,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 732, - EndPos: 736, + StartPos: 676, + EndPos: 680, }, }, VarName: &ast.Identifier{ @@ -2382,8 +2044,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 732, - EndPos: 736, + StartPos: 676, + EndPos: 680, }, }, Value: []byte("$var"), @@ -2394,8 +2056,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 737, - EndPos: 777, + StartPos: 681, + EndPos: 721, }, }, Value: []byte("1234567890123456789012345678901234567890"), @@ -2409,8 +2071,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 783, - EndPos: 800, + StartPos: 725, + EndPos: 742, }, }, Expr: &ast.ScalarEncapsed{ @@ -2418,8 +2080,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 783, - EndPos: 799, + StartPos: 725, + EndPos: 741, }, }, Parts: []ast.Vertex{ @@ -2428,8 +2090,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 784, - EndPos: 789, + StartPos: 726, + EndPos: 731, }, }, Value: []byte("test "), @@ -2439,8 +2101,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 789, - EndPos: 798, + StartPos: 731, + EndPos: 740, }, }, Var: &ast.ExprVariable{ @@ -2448,8 +2110,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 789, - EndPos: 793, + StartPos: 731, + EndPos: 735, }, }, VarName: &ast.Identifier{ @@ -2457,8 +2119,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 789, - EndPos: 793, + StartPos: 731, + EndPos: 735, }, }, Value: []byte("$var"), @@ -2469,8 +2131,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 794, - EndPos: 797, + StartPos: 736, + EndPos: 739, }, }, Value: []byte("bar"), @@ -2484,8 +2146,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 803, - EndPos: 821, + StartPos: 743, + EndPos: 761, }, }, Expr: &ast.ScalarEncapsed{ @@ -2493,8 +2155,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 803, - EndPos: 820, + StartPos: 743, + EndPos: 760, }, }, Parts: []ast.Vertex{ @@ -2503,8 +2165,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 804, - EndPos: 809, + StartPos: 744, + EndPos: 749, }, }, Value: []byte("test "), @@ -2514,8 +2176,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 809, - EndPos: 819, + StartPos: 749, + EndPos: 759, }, }, Var: &ast.ExprVariable{ @@ -2523,8 +2185,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 809, - EndPos: 813, + StartPos: 749, + EndPos: 753, }, }, VarName: &ast.Identifier{ @@ -2532,8 +2194,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 809, - EndPos: 813, + StartPos: 749, + EndPos: 753, }, }, Value: []byte("$var"), @@ -2544,8 +2206,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 814, - EndPos: 818, + StartPos: 754, + EndPos: 758, }, }, VarName: &ast.Identifier{ @@ -2553,8 +2215,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 814, - EndPos: 818, + StartPos: 754, + EndPos: 758, }, }, Value: []byte("$bar"), @@ -2569,8 +2231,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 824, - EndPos: 836, + StartPos: 762, + EndPos: 774, }, }, Expr: &ast.ScalarEncapsed{ @@ -2578,8 +2240,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 824, - EndPos: 835, + StartPos: 762, + EndPos: 773, }, }, Parts: []ast.Vertex{ @@ -2588,8 +2250,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 825, - EndPos: 829, + StartPos: 763, + EndPos: 767, }, }, VarName: &ast.Identifier{ @@ -2597,8 +2259,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 825, - EndPos: 829, + StartPos: 763, + EndPos: 767, }, }, Value: []byte("$foo"), @@ -2609,8 +2271,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 829, - EndPos: 830, + StartPos: 767, + EndPos: 768, }, }, Value: []byte(" "), @@ -2620,8 +2282,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 830, - EndPos: 834, + StartPos: 768, + EndPos: 772, }, }, VarName: &ast.Identifier{ @@ -2629,8 +2291,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 830, - EndPos: 834, + StartPos: 768, + EndPos: 772, }, }, Value: []byte("$bar"), @@ -2644,8 +2306,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 839, - EndPos: 858, + StartPos: 775, + EndPos: 794, }, }, Expr: &ast.ScalarEncapsed{ @@ -2653,8 +2315,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 839, - EndPos: 857, + StartPos: 775, + EndPos: 793, }, }, Parts: []ast.Vertex{ @@ -2663,8 +2325,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 840, - EndPos: 845, + StartPos: 776, + EndPos: 781, }, }, Value: []byte("test "), @@ -2674,8 +2336,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 845, - EndPos: 854, + StartPos: 781, + EndPos: 790, }, }, Var: &ast.ExprVariable{ @@ -2683,8 +2345,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 845, - EndPos: 849, + StartPos: 781, + EndPos: 785, }, }, VarName: &ast.Identifier{ @@ -2692,8 +2354,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 845, - EndPos: 849, + StartPos: 781, + EndPos: 785, }, }, Value: []byte("$foo"), @@ -2704,8 +2366,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 851, - EndPos: 854, + StartPos: 787, + EndPos: 790, }, }, Value: []byte("bar"), @@ -2716,8 +2378,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 854, - EndPos: 856, + StartPos: 790, + EndPos: 792, }, }, Value: []byte("()"), @@ -2730,8 +2392,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 861, - EndPos: 875, + StartPos: 795, + EndPos: 809, }, }, Expr: &ast.ScalarEncapsed{ @@ -2739,8 +2401,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 861, - EndPos: 874, + StartPos: 795, + EndPos: 808, }, }, Parts: []ast.Vertex{ @@ -2749,8 +2411,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 862, - EndPos: 867, + StartPos: 796, + EndPos: 801, }, }, Value: []byte("test "), @@ -2760,8 +2422,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 867, - EndPos: 873, + StartPos: 801, + EndPos: 807, }, }, VarName: &ast.Identifier{ @@ -2769,8 +2431,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 869, - EndPos: 872, + StartPos: 803, + EndPos: 806, }, }, Value: []byte("foo"), @@ -2784,8 +2446,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 878, - EndPos: 895, + StartPos: 810, + EndPos: 827, }, }, Expr: &ast.ScalarEncapsed{ @@ -2793,8 +2455,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 878, - EndPos: 894, + StartPos: 810, + EndPos: 826, }, }, Parts: []ast.Vertex{ @@ -2803,8 +2465,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 879, - EndPos: 884, + StartPos: 811, + EndPos: 816, }, }, Value: []byte("test "), @@ -2814,8 +2476,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 884, - EndPos: 893, + StartPos: 816, + EndPos: 825, }, }, Var: &ast.ExprVariable{ @@ -2823,8 +2485,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 886, - EndPos: 889, + StartPos: 818, + EndPos: 821, }, }, VarName: &ast.Identifier{ @@ -2832,8 +2494,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 886, - EndPos: 889, + StartPos: 818, + EndPos: 821, }, }, Value: []byte("foo"), @@ -2844,8 +2506,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 38, EndLine: 38, - StartPos: 890, - EndPos: 891, + StartPos: 822, + EndPos: 823, }, }, Value: []byte("0"), @@ -2859,8 +2521,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 898, - EndPos: 919, + StartPos: 828, + EndPos: 849, }, }, Expr: &ast.ScalarEncapsed{ @@ -2868,8 +2530,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 898, - EndPos: 918, + StartPos: 828, + EndPos: 848, }, }, Parts: []ast.Vertex{ @@ -2878,8 +2540,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 899, - EndPos: 904, + StartPos: 829, + EndPos: 834, }, }, Value: []byte("test "), @@ -2889,8 +2551,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 905, - EndPos: 916, + StartPos: 835, + EndPos: 846, }, }, Var: &ast.ExprVariable{ @@ -2898,8 +2560,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 905, - EndPos: 909, + StartPos: 835, + EndPos: 839, }, }, VarName: &ast.Identifier{ @@ -2907,8 +2569,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 905, - EndPos: 909, + StartPos: 835, + EndPos: 839, }, }, Value: []byte("$foo"), @@ -2919,8 +2581,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 911, - EndPos: 914, + StartPos: 841, + EndPos: 844, }, }, Value: []byte("bar"), @@ -2930,8 +2592,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 914, - EndPos: 916, + StartPos: 844, + EndPos: 846, }, }, }, @@ -2944,8 +2606,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 42, - StartPos: 923, - EndPos: 941, + StartPos: 851, + EndPos: 867, }, }, Cond: &ast.ExprVariable{ @@ -2953,8 +2615,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 927, - EndPos: 929, + StartPos: 855, + EndPos: 857, }, }, VarName: &ast.Identifier{ @@ -2962,8 +2624,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 927, - EndPos: 929, + StartPos: 855, + EndPos: 857, }, }, Value: []byte("$a"), @@ -2986,8 +2648,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 45, - StartPos: 944, - EndPos: 977, + StartPos: 868, + EndPos: 897, }, }, Cond: &ast.ExprVariable{ @@ -2995,8 +2657,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 948, - EndPos: 950, + StartPos: 872, + EndPos: 874, }, }, VarName: &ast.Identifier{ @@ -3004,8 +2666,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 948, - EndPos: 950, + StartPos: 872, + EndPos: 874, }, }, Value: []byte("$a"), @@ -3028,7 +2690,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: -1, - StartPos: 956, + StartPos: 878, EndPos: -1, }, }, @@ -3037,8 +2699,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 964, - EndPos: 966, + StartPos: 886, + EndPos: 888, }, }, VarName: &ast.Identifier{ @@ -3046,8 +2708,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 964, - EndPos: 966, + StartPos: 886, + EndPos: 888, }, }, Value: []byte("$b"), @@ -3072,8 +2734,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 48, - StartPos: 980, - EndPos: 1006, + StartPos: 898, + EndPos: 920, }, }, Cond: &ast.ExprVariable{ @@ -3081,8 +2743,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 984, - EndPos: 986, + StartPos: 902, + EndPos: 904, }, }, VarName: &ast.Identifier{ @@ -3090,8 +2752,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 984, - EndPos: 986, + StartPos: 902, + EndPos: 904, }, }, Value: []byte("$a"), @@ -3113,7 +2775,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: -1, - StartPos: 992, + StartPos: 908, EndPos: -1, }, }, @@ -3135,8 +2797,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 53, - StartPos: 1009, - EndPos: 1065, + StartPos: 921, + EndPos: 969, }, }, Cond: &ast.ExprVariable{ @@ -3144,8 +2806,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1013, - EndPos: 1015, + StartPos: 925, + EndPos: 927, }, }, VarName: &ast.Identifier{ @@ -3153,8 +2815,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1013, - EndPos: 1015, + StartPos: 925, + EndPos: 927, }, }, Value: []byte("$a"), @@ -3177,7 +2839,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: -1, - StartPos: 1021, + StartPos: 931, EndPos: -1, }, }, @@ -3186,8 +2848,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1029, - EndPos: 1031, + StartPos: 939, + EndPos: 941, }, }, VarName: &ast.Identifier{ @@ -3195,8 +2857,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1029, - EndPos: 1031, + StartPos: 939, + EndPos: 941, }, }, Value: []byte("$b"), @@ -3219,7 +2881,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: -1, - StartPos: 1036, + StartPos: 944, EndPos: -1, }, }, @@ -3228,8 +2890,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1044, - EndPos: 1046, + StartPos: 952, + EndPos: 954, }, }, VarName: &ast.Identifier{ @@ -3237,8 +2899,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1044, - EndPos: 1046, + StartPos: 952, + EndPos: 954, }, }, Value: []byte("$c"), @@ -3262,7 +2924,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 52, EndLine: -1, - StartPos: 1051, + StartPos: 957, EndPos: -1, }, }, @@ -3284,8 +2946,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1069, - EndPos: 1089, + StartPos: 971, + EndPos: 991, }, }, Cond: &ast.ScalarLnumber{ @@ -3293,8 +2955,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1076, - EndPos: 1077, + StartPos: 978, + EndPos: 979, }, }, Value: []byte("1"), @@ -3304,8 +2966,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1079, - EndPos: 1089, + StartPos: 981, + EndPos: 991, }, }, Stmts: []ast.Vertex{ @@ -3314,8 +2976,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1081, - EndPos: 1087, + StartPos: 983, + EndPos: 989, }, }, }, @@ -3327,8 +2989,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1092, - EndPos: 1114, + StartPos: 992, + EndPos: 1014, }, }, Cond: &ast.ScalarLnumber{ @@ -3336,8 +2998,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1099, - EndPos: 1100, + StartPos: 999, + EndPos: 1000, }, }, Value: []byte("1"), @@ -3347,8 +3009,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1102, - EndPos: 1114, + StartPos: 1002, + EndPos: 1014, }, }, Stmts: []ast.Vertex{ @@ -3357,8 +3019,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1104, - EndPos: 1112, + StartPos: 1004, + EndPos: 1012, }, }, Expr: &ast.ScalarLnumber{ @@ -3366,8 +3028,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1110, - EndPos: 1111, + StartPos: 1010, + EndPos: 1011, }, }, Value: []byte("2"), @@ -3381,8 +3043,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1117, - EndPos: 1148, + StartPos: 1015, + EndPos: 1046, }, }, Cond: &ast.ScalarLnumber{ @@ -3390,8 +3052,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1124, - EndPos: 1125, + StartPos: 1022, + EndPos: 1023, }, }, Value: []byte("1"), @@ -3401,8 +3063,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1129, - EndPos: 1138, + StartPos: 1027, + EndPos: 1036, }, }, Stmts: []ast.Vertex{ @@ -3411,8 +3073,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1129, - EndPos: 1138, + StartPos: 1027, + EndPos: 1036, }, }, Expr: &ast.ScalarLnumber{ @@ -3420,8 +3082,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 57, EndLine: 57, - StartPos: 1135, - EndPos: 1136, + StartPos: 1033, + EndPos: 1034, }, }, Value: []byte("3"), @@ -3435,8 +3097,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1151, - EndPos: 1187, + StartPos: 1047, + EndPos: 1083, }, }, ClassName: &ast.Identifier{ @@ -3444,8 +3106,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1157, - EndPos: 1160, + StartPos: 1053, + EndPos: 1056, }, }, Value: []byte("foo"), @@ -3456,8 +3118,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1162, - EndPos: 1185, + StartPos: 1058, + EndPos: 1081, }, }, Consts: []ast.Vertex{ @@ -3466,8 +3128,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1168, - EndPos: 1175, + StartPos: 1064, + EndPos: 1071, }, }, ConstantName: &ast.Identifier{ @@ -3475,8 +3137,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1168, - EndPos: 1171, + StartPos: 1064, + EndPos: 1067, }, }, Value: []byte("FOO"), @@ -3486,8 +3148,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1174, - EndPos: 1175, + StartPos: 1070, + EndPos: 1071, }, }, Value: []byte("1"), @@ -3498,8 +3160,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1177, - EndPos: 1184, + StartPos: 1073, + EndPos: 1080, }, }, ConstantName: &ast.Identifier{ @@ -3507,8 +3169,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1177, - EndPos: 1180, + StartPos: 1073, + EndPos: 1076, }, }, Value: []byte("BAR"), @@ -3518,8 +3180,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1183, - EndPos: 1184, + StartPos: 1079, + EndPos: 1080, }, }, Value: []byte("2"), @@ -3534,8 +3196,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1190, - EndPos: 1220, + StartPos: 1084, + EndPos: 1114, }, }, ClassName: &ast.Identifier{ @@ -3543,8 +3205,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1196, - EndPos: 1199, + StartPos: 1090, + EndPos: 1093, }, }, Value: []byte("foo"), @@ -3555,18 +3217,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1201, - EndPos: 1218, + StartPos: 1095, + EndPos: 1112, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1210, - EndPos: 1213, + StartPos: 1104, + EndPos: 1107, }, }, Value: []byte("bar"), @@ -3576,8 +3237,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: 59, - StartPos: 1216, - EndPos: 1218, + StartPos: 1110, + EndPos: 1112, }, }, Stmts: []ast.Vertex{}, @@ -3590,8 +3251,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1223, - EndPos: 1268, + StartPos: 1115, + EndPos: 1160, }, }, ClassName: &ast.Identifier{ @@ -3599,8 +3260,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1229, - EndPos: 1232, + StartPos: 1121, + EndPos: 1124, }, }, Value: []byte("foo"), @@ -3611,8 +3272,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1234, - EndPos: 1266, + StartPos: 1126, + EndPos: 1158, }, }, ReturnsRef: true, @@ -3621,8 +3282,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1258, - EndPos: 1261, + StartPos: 1150, + EndPos: 1153, }, }, Value: []byte("bar"), @@ -3633,8 +3294,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1234, - EndPos: 1240, + StartPos: 1126, + EndPos: 1132, }, }, Value: []byte("public"), @@ -3644,8 +3305,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1241, - EndPos: 1247, + StartPos: 1133, + EndPos: 1139, }, }, Value: []byte("static"), @@ -3656,8 +3317,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 60, EndLine: 60, - StartPos: 1264, - EndPos: 1266, + StartPos: 1156, + EndPos: 1158, }, }, Stmts: []ast.Vertex{}, @@ -3670,8 +3331,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1271, - EndPos: 1343, + StartPos: 1161, + EndPos: 1233, }, }, ClassName: &ast.Identifier{ @@ -3679,8 +3340,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1277, - EndPos: 1280, + StartPos: 1167, + EndPos: 1170, }, }, Value: []byte("foo"), @@ -3691,18 +3352,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1282, - EndPos: 1313, + StartPos: 1172, + EndPos: 1203, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1305, - EndPos: 1308, + StartPos: 1195, + EndPos: 1198, }, }, Value: []byte("bar"), @@ -3713,8 +3373,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1282, - EndPos: 1287, + StartPos: 1172, + EndPos: 1177, }, }, Value: []byte("final"), @@ -3724,8 +3384,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1288, - EndPos: 1295, + StartPos: 1178, + EndPos: 1185, }, }, Value: []byte("private"), @@ -3736,8 +3396,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1311, - EndPos: 1313, + StartPos: 1201, + EndPos: 1203, }, }, Stmts: []ast.Vertex{}, @@ -3748,18 +3408,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1314, - EndPos: 1341, + StartPos: 1204, + EndPos: 1231, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1333, - EndPos: 1336, + StartPos: 1223, + EndPos: 1226, }, }, Value: []byte("baz"), @@ -3770,8 +3429,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1314, - EndPos: 1323, + StartPos: 1204, + EndPos: 1213, }, }, Value: []byte("protected"), @@ -3782,8 +3441,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1339, - EndPos: 1341, + StartPos: 1229, + EndPos: 1231, }, }, Stmts: []ast.Vertex{}, @@ -3796,8 +3455,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1346, - EndPos: 1399, + StartPos: 1234, + EndPos: 1287, }, }, ClassName: &ast.Identifier{ @@ -3805,8 +3464,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1361, - EndPos: 1364, + StartPos: 1249, + EndPos: 1252, }, }, Value: []byte("foo"), @@ -3817,8 +3476,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1346, - EndPos: 1354, + StartPos: 1234, + EndPos: 1242, }, }, Value: []byte("abstract"), @@ -3830,18 +3489,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1366, - EndPos: 1397, + StartPos: 1254, + EndPos: 1285, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1391, - EndPos: 1394, + StartPos: 1279, + EndPos: 1282, }, }, Value: []byte("bar"), @@ -3852,8 +3510,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1366, - EndPos: 1374, + StartPos: 1254, + EndPos: 1262, }, }, Value: []byte("abstract"), @@ -3863,8 +3521,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1375, - EndPos: 1381, + StartPos: 1263, + EndPos: 1269, }, }, Value: []byte("public"), @@ -3875,8 +3533,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1396, - EndPos: 1397, + StartPos: 1284, + EndPos: 1285, }, }, }, @@ -3888,8 +3546,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1402, - EndPos: 1433, + StartPos: 1288, + EndPos: 1319, }, }, ClassName: &ast.Identifier{ @@ -3897,8 +3555,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1414, - EndPos: 1417, + StartPos: 1300, + EndPos: 1303, }, }, Value: []byte("foo"), @@ -3909,8 +3567,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1402, - EndPos: 1407, + StartPos: 1288, + EndPos: 1293, }, }, Value: []byte("final"), @@ -3921,8 +3579,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1418, - EndPos: 1429, + StartPos: 1304, + EndPos: 1315, }, }, ClassName: &ast.NameName{ @@ -3930,8 +3588,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1426, - EndPos: 1429, + StartPos: 1312, + EndPos: 1315, }, }, Parts: []ast.Vertex{ @@ -3940,8 +3598,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1426, - EndPos: 1429, + StartPos: 1312, + EndPos: 1315, }, }, Value: []byte("bar"), @@ -3956,8 +3614,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1436, - EndPos: 1470, + StartPos: 1320, + EndPos: 1354, }, }, ClassName: &ast.Identifier{ @@ -3965,8 +3623,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1448, - EndPos: 1451, + StartPos: 1332, + EndPos: 1335, }, }, Value: []byte("foo"), @@ -3977,8 +3635,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1436, - EndPos: 1441, + StartPos: 1320, + EndPos: 1325, }, }, Value: []byte("final"), @@ -3989,8 +3647,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1452, - EndPos: 1466, + StartPos: 1336, + EndPos: 1350, }, }, InterfaceNames: []ast.Vertex{ @@ -3999,8 +3657,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1463, - EndPos: 1466, + StartPos: 1347, + EndPos: 1350, }, }, Parts: []ast.Vertex{ @@ -4009,8 +3667,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: 64, - StartPos: 1463, - EndPos: 1466, + StartPos: 1347, + EndPos: 1350, }, }, Value: []byte("bar"), @@ -4026,8 +3684,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1473, - EndPos: 1512, + StartPos: 1355, + EndPos: 1394, }, }, ClassName: &ast.Identifier{ @@ -4035,8 +3693,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1485, - EndPos: 1488, + StartPos: 1367, + EndPos: 1370, }, }, Value: []byte("foo"), @@ -4047,8 +3705,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1473, - EndPos: 1478, + StartPos: 1355, + EndPos: 1360, }, }, Value: []byte("final"), @@ -4059,8 +3717,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1489, - EndPos: 1508, + StartPos: 1371, + EndPos: 1390, }, }, InterfaceNames: []ast.Vertex{ @@ -4069,8 +3727,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1500, - EndPos: 1503, + StartPos: 1382, + EndPos: 1385, }, }, Parts: []ast.Vertex{ @@ -4079,8 +3737,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1500, - EndPos: 1503, + StartPos: 1382, + EndPos: 1385, }, }, Value: []byte("bar"), @@ -4092,8 +3750,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1505, - EndPos: 1508, + StartPos: 1387, + EndPos: 1390, }, }, Parts: []ast.Vertex{ @@ -4102,8 +3760,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 65, EndLine: 65, - StartPos: 1505, - EndPos: 1508, + StartPos: 1387, + EndPos: 1390, }, }, Value: []byte("baz"), @@ -4119,8 +3777,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1516, - EndPos: 1539, + StartPos: 1396, + EndPos: 1419, }, }, Consts: []ast.Vertex{ @@ -4129,8 +3787,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1522, - EndPos: 1529, + StartPos: 1402, + EndPos: 1409, }, }, ConstantName: &ast.Identifier{ @@ -4138,8 +3796,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1522, - EndPos: 1525, + StartPos: 1402, + EndPos: 1405, }, }, Value: []byte("FOO"), @@ -4149,8 +3807,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1528, - EndPos: 1529, + StartPos: 1408, + EndPos: 1409, }, }, Value: []byte("1"), @@ -4161,8 +3819,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1531, - EndPos: 1538, + StartPos: 1411, + EndPos: 1418, }, }, ConstantName: &ast.Identifier{ @@ -4170,8 +3828,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1531, - EndPos: 1534, + StartPos: 1411, + EndPos: 1414, }, }, Value: []byte("BAR"), @@ -4181,8 +3839,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1537, - EndPos: 1538, + StartPos: 1417, + EndPos: 1418, }, }, Value: []byte("2"), @@ -4195,8 +3853,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1542, - EndPos: 1565, + StartPos: 1420, + EndPos: 1443, }, }, Cond: &ast.ScalarLnumber{ @@ -4204,8 +3862,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1549, - EndPos: 1550, + StartPos: 1427, + EndPos: 1428, }, }, Value: []byte("1"), @@ -4215,8 +3873,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1552, - EndPos: 1565, + StartPos: 1430, + EndPos: 1443, }, }, Stmts: []ast.Vertex{ @@ -4225,8 +3883,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1554, - EndPos: 1563, + StartPos: 1432, + EndPos: 1441, }, }, }, @@ -4238,8 +3896,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1568, - EndPos: 1593, + StartPos: 1444, + EndPos: 1469, }, }, Cond: &ast.ScalarLnumber{ @@ -4247,8 +3905,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1575, - EndPos: 1576, + StartPos: 1451, + EndPos: 1452, }, }, Value: []byte("1"), @@ -4258,8 +3916,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1578, - EndPos: 1593, + StartPos: 1454, + EndPos: 1469, }, }, Stmts: []ast.Vertex{ @@ -4268,8 +3926,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1580, - EndPos: 1591, + StartPos: 1456, + EndPos: 1467, }, }, Expr: &ast.ScalarLnumber{ @@ -4277,8 +3935,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1589, - EndPos: 1590, + StartPos: 1465, + EndPos: 1466, }, }, Value: []byte("2"), @@ -4292,8 +3950,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1596, - EndPos: 1622, + StartPos: 1470, + EndPos: 1496, }, }, Cond: &ast.ScalarLnumber{ @@ -4301,8 +3959,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1603, - EndPos: 1604, + StartPos: 1477, + EndPos: 1478, }, }, Value: []byte("1"), @@ -4312,8 +3970,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1606, - EndPos: 1622, + StartPos: 1480, + EndPos: 1496, }, }, Stmts: []ast.Vertex{ @@ -4322,8 +3980,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1608, - EndPos: 1620, + StartPos: 1482, + EndPos: 1494, }, }, Expr: &ast.ScalarLnumber{ @@ -4331,8 +3989,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1617, - EndPos: 1618, + StartPos: 1491, + EndPos: 1492, }, }, Value: []byte("3"), @@ -4346,19 +4004,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1625, - EndPos: 1642, + StartPos: 1497, + EndPos: 1514, }, }, - Alt: false, Consts: []ast.Vertex{ &ast.StmtConstant{ Node: ast.Node{ Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1633, - EndPos: 1640, + StartPos: 1505, + EndPos: 1512, }, }, ConstantName: &ast.Identifier{ @@ -4366,8 +4023,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1633, - EndPos: 1638, + StartPos: 1505, + EndPos: 1510, }, }, Value: []byte("ticks"), @@ -4377,8 +4034,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1639, - EndPos: 1640, + StartPos: 1511, + EndPos: 1512, }, }, Value: []byte("1"), @@ -4390,8 +4047,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1641, - EndPos: 1642, + StartPos: 1513, + EndPos: 1514, }, }, }, @@ -4401,19 +4058,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1645, - EndPos: 1680, + StartPos: 1515, + EndPos: 1550, }, }, - Alt: false, Consts: []ast.Vertex{ &ast.StmtConstant{ Node: ast.Node{ Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1653, - EndPos: 1660, + StartPos: 1523, + EndPos: 1530, }, }, ConstantName: &ast.Identifier{ @@ -4421,8 +4077,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1653, - EndPos: 1658, + StartPos: 1523, + EndPos: 1528, }, }, Value: []byte("ticks"), @@ -4432,8 +4088,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1659, - EndPos: 1660, + StartPos: 1529, + EndPos: 1530, }, }, Value: []byte("1"), @@ -4444,8 +4100,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1662, - EndPos: 1676, + StartPos: 1532, + EndPos: 1546, }, }, ConstantName: &ast.Identifier{ @@ -4453,8 +4109,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1662, - EndPos: 1674, + StartPos: 1532, + EndPos: 1544, }, }, Value: []byte("strict_types"), @@ -4464,8 +4120,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1675, - EndPos: 1676, + StartPos: 1545, + EndPos: 1546, }, }, Value: []byte("1"), @@ -4477,8 +4133,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1678, - EndPos: 1680, + StartPos: 1548, + EndPos: 1550, }, }, Stmts: []ast.Vertex{}, @@ -4489,8 +4145,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1683, - EndPos: 1712, + StartPos: 1551, + EndPos: 1580, }, }, Alt: true, @@ -4500,8 +4156,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1691, - EndPos: 1698, + StartPos: 1559, + EndPos: 1566, }, }, ConstantName: &ast.Identifier{ @@ -4509,8 +4165,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1691, - EndPos: 1696, + StartPos: 1559, + EndPos: 1564, }, }, Value: []byte("ticks"), @@ -4520,8 +4176,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1697, - EndPos: 1698, + StartPos: 1565, + EndPos: 1566, }, }, Value: []byte("1"), @@ -4545,8 +4201,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1715, - EndPos: 1730, + StartPos: 1581, + EndPos: 1596, }, }, Stmt: &ast.StmtStmtList{ @@ -4554,8 +4210,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1718, - EndPos: 1720, + StartPos: 1584, + EndPos: 1586, }, }, Stmts: []ast.Vertex{}, @@ -4565,8 +4221,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1727, - EndPos: 1728, + StartPos: 1593, + EndPos: 1594, }, }, Value: []byte("1"), @@ -4577,8 +4233,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1733, - EndPos: 1744, + StartPos: 1597, + EndPos: 1608, }, }, Exprs: []ast.Vertex{ @@ -4587,8 +4243,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1738, - EndPos: 1740, + StartPos: 1602, + EndPos: 1604, }, }, VarName: &ast.Identifier{ @@ -4596,8 +4252,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1738, - EndPos: 1740, + StartPos: 1602, + EndPos: 1604, }, }, Value: []byte("$a"), @@ -4608,8 +4264,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1742, - EndPos: 1743, + StartPos: 1606, + EndPos: 1607, }, }, Value: []byte("1"), @@ -4621,8 +4277,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1747, - EndPos: 1756, + StartPos: 1609, + EndPos: 1618, }, }, Exprs: []ast.Vertex{ @@ -4631,8 +4287,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1752, - EndPos: 1754, + StartPos: 1614, + EndPos: 1616, }, }, VarName: &ast.Identifier{ @@ -4640,8 +4296,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1752, - EndPos: 1754, + StartPos: 1614, + EndPos: 1616, }, }, Value: []byte("$a"), @@ -4654,8 +4310,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1759, - EndPos: 1794, + StartPos: 1619, + EndPos: 1654, }, }, Init: []ast.Vertex{ @@ -4664,8 +4320,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1763, - EndPos: 1769, + StartPos: 1623, + EndPos: 1629, }, }, Var: &ast.ExprVariable{ @@ -4673,8 +4329,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1763, - EndPos: 1765, + StartPos: 1623, + EndPos: 1625, }, }, VarName: &ast.Identifier{ @@ -4682,8 +4338,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1763, - EndPos: 1765, + StartPos: 1623, + EndPos: 1625, }, }, Value: []byte("$i"), @@ -4694,8 +4350,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1768, - EndPos: 1769, + StartPos: 1628, + EndPos: 1629, }, }, Value: []byte("0"), @@ -4708,8 +4364,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1771, - EndPos: 1778, + StartPos: 1631, + EndPos: 1638, }, }, Left: &ast.ExprVariable{ @@ -4717,8 +4373,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1771, - EndPos: 1773, + StartPos: 1631, + EndPos: 1633, }, }, VarName: &ast.Identifier{ @@ -4726,8 +4382,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1771, - EndPos: 1773, + StartPos: 1631, + EndPos: 1633, }, }, Value: []byte("$i"), @@ -4738,8 +4394,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1776, - EndPos: 1778, + StartPos: 1636, + EndPos: 1638, }, }, Value: []byte("10"), @@ -4752,8 +4408,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1780, - EndPos: 1784, + StartPos: 1640, + EndPos: 1644, }, }, Var: &ast.ExprVariable{ @@ -4761,8 +4417,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1780, - EndPos: 1782, + StartPos: 1640, + EndPos: 1642, }, }, VarName: &ast.Identifier{ @@ -4770,8 +4426,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1780, - EndPos: 1782, + StartPos: 1640, + EndPos: 1642, }, }, Value: []byte("$i"), @@ -4783,8 +4439,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1786, - EndPos: 1790, + StartPos: 1646, + EndPos: 1650, }, }, Var: &ast.ExprVariable{ @@ -4792,8 +4448,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1786, - EndPos: 1788, + StartPos: 1646, + EndPos: 1648, }, }, VarName: &ast.Identifier{ @@ -4801,8 +4457,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1786, - EndPos: 1788, + StartPos: 1646, + EndPos: 1648, }, }, Value: []byte("$i"), @@ -4815,8 +4471,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1792, - EndPos: 1794, + StartPos: 1652, + EndPos: 1654, }, }, Stmts: []ast.Vertex{}, @@ -4827,8 +4483,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1797, - EndPos: 1827, + StartPos: 1655, + EndPos: 1685, }, }, Cond: []ast.Vertex{ @@ -4837,8 +4493,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1803, - EndPos: 1810, + StartPos: 1661, + EndPos: 1668, }, }, Left: &ast.ExprVariable{ @@ -4846,8 +4502,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1803, - EndPos: 1805, + StartPos: 1661, + EndPos: 1663, }, }, VarName: &ast.Identifier{ @@ -4855,8 +4511,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1803, - EndPos: 1805, + StartPos: 1661, + EndPos: 1663, }, }, Value: []byte("$i"), @@ -4867,8 +4523,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1808, - EndPos: 1810, + StartPos: 1666, + EndPos: 1668, }, }, Value: []byte("10"), @@ -4881,8 +4537,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1812, - EndPos: 1816, + StartPos: 1670, + EndPos: 1674, }, }, Var: &ast.ExprVariable{ @@ -4890,8 +4546,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1812, - EndPos: 1814, + StartPos: 1670, + EndPos: 1672, }, }, VarName: &ast.Identifier{ @@ -4899,8 +4555,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1812, - EndPos: 1814, + StartPos: 1670, + EndPos: 1672, }, }, Value: []byte("$i"), @@ -4925,8 +4581,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1830, - EndPos: 1851, + StartPos: 1686, + EndPos: 1707, }, }, Expr: &ast.ExprVariable{ @@ -4934,8 +4590,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1839, - EndPos: 1841, + StartPos: 1695, + EndPos: 1697, }, }, VarName: &ast.Identifier{ @@ -4943,8 +4599,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1839, - EndPos: 1841, + StartPos: 1695, + EndPos: 1697, }, }, Value: []byte("$a"), @@ -4955,8 +4611,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1845, - EndPos: 1847, + StartPos: 1701, + EndPos: 1703, }, }, VarName: &ast.Identifier{ @@ -4964,8 +4620,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1845, - EndPos: 1847, + StartPos: 1701, + EndPos: 1703, }, }, Value: []byte("$v"), @@ -4976,8 +4632,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1849, - EndPos: 1851, + StartPos: 1705, + EndPos: 1707, }, }, Stmts: []ast.Vertex{}, @@ -4988,8 +4644,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1854, - EndPos: 1875, + StartPos: 1708, + EndPos: 1729, }, }, Expr: &ast.ExprShortArray{ @@ -4997,8 +4653,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1863, - EndPos: 1865, + StartPos: 1717, + EndPos: 1719, }, }, Items: []ast.Vertex{}, @@ -5008,8 +4664,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1869, - EndPos: 1871, + StartPos: 1723, + EndPos: 1725, }, }, VarName: &ast.Identifier{ @@ -5017,8 +4673,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1869, - EndPos: 1871, + StartPos: 1723, + EndPos: 1725, }, }, Value: []byte("$v"), @@ -5029,8 +4685,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 80, EndLine: 80, - StartPos: 1873, - EndPos: 1875, + StartPos: 1727, + EndPos: 1729, }, }, Stmts: []ast.Vertex{}, @@ -5041,8 +4697,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1878, - EndPos: 1910, + StartPos: 1730, + EndPos: 1762, }, }, Expr: &ast.ExprVariable{ @@ -5050,8 +4706,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1887, - EndPos: 1889, + StartPos: 1739, + EndPos: 1741, }, }, VarName: &ast.Identifier{ @@ -5059,8 +4715,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1887, - EndPos: 1889, + StartPos: 1739, + EndPos: 1741, }, }, Value: []byte("$a"), @@ -5071,8 +4727,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1893, - EndPos: 1895, + StartPos: 1745, + EndPos: 1747, }, }, VarName: &ast.Identifier{ @@ -5080,8 +4736,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1893, - EndPos: 1895, + StartPos: 1745, + EndPos: 1747, }, }, Value: []byte("$v"), @@ -5104,8 +4760,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1913, - EndPos: 1940, + StartPos: 1763, + EndPos: 1790, }, }, Expr: &ast.ExprVariable{ @@ -5113,8 +4769,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1922, - EndPos: 1924, + StartPos: 1772, + EndPos: 1774, }, }, VarName: &ast.Identifier{ @@ -5122,8 +4778,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1922, - EndPos: 1924, + StartPos: 1772, + EndPos: 1774, }, }, Value: []byte("$a"), @@ -5134,8 +4790,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1928, - EndPos: 1930, + StartPos: 1778, + EndPos: 1780, }, }, VarName: &ast.Identifier{ @@ -5143,8 +4799,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1928, - EndPos: 1930, + StartPos: 1778, + EndPos: 1780, }, }, Value: []byte("$k"), @@ -5155,8 +4811,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1934, - EndPos: 1936, + StartPos: 1784, + EndPos: 1786, }, }, VarName: &ast.Identifier{ @@ -5164,8 +4820,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1934, - EndPos: 1936, + StartPos: 1784, + EndPos: 1786, }, }, Value: []byte("$v"), @@ -5176,8 +4832,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1938, - EndPos: 1940, + StartPos: 1788, + EndPos: 1790, }, }, Stmts: []ast.Vertex{}, @@ -5188,8 +4844,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1943, - EndPos: 1970, + StartPos: 1791, + EndPos: 1818, }, }, Expr: &ast.ExprShortArray{ @@ -5197,8 +4853,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1952, - EndPos: 1954, + StartPos: 1800, + EndPos: 1802, }, }, Items: []ast.Vertex{}, @@ -5208,8 +4864,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1958, - EndPos: 1960, + StartPos: 1806, + EndPos: 1808, }, }, VarName: &ast.Identifier{ @@ -5217,8 +4873,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1958, - EndPos: 1960, + StartPos: 1806, + EndPos: 1808, }, }, Value: []byte("$k"), @@ -5229,8 +4885,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1964, - EndPos: 1966, + StartPos: 1812, + EndPos: 1814, }, }, VarName: &ast.Identifier{ @@ -5238,8 +4894,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1964, - EndPos: 1966, + StartPos: 1812, + EndPos: 1814, }, }, Value: []byte("$v"), @@ -5250,8 +4906,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1968, - EndPos: 1970, + StartPos: 1816, + EndPos: 1818, }, }, Stmts: []ast.Vertex{}, @@ -5262,8 +4918,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1973, - EndPos: 2001, + StartPos: 1819, + EndPos: 1847, }, }, Expr: &ast.ExprVariable{ @@ -5271,8 +4927,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1982, - EndPos: 1984, + StartPos: 1828, + EndPos: 1830, }, }, VarName: &ast.Identifier{ @@ -5280,8 +4936,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1982, - EndPos: 1984, + StartPos: 1828, + EndPos: 1830, }, }, Value: []byte("$a"), @@ -5292,8 +4948,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1988, - EndPos: 1990, + StartPos: 1834, + EndPos: 1836, }, }, VarName: &ast.Identifier{ @@ -5301,8 +4957,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1988, - EndPos: 1990, + StartPos: 1834, + EndPos: 1836, }, }, Value: []byte("$k"), @@ -5313,8 +4969,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1994, - EndPos: 1997, + StartPos: 1840, + EndPos: 1843, }, }, Var: &ast.ExprVariable{ @@ -5322,8 +4978,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1995, - EndPos: 1997, + StartPos: 1841, + EndPos: 1843, }, }, VarName: &ast.Identifier{ @@ -5331,8 +4987,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1995, - EndPos: 1997, + StartPos: 1841, + EndPos: 1843, }, }, Value: []byte("$v"), @@ -5344,8 +5000,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1999, - EndPos: 2001, + StartPos: 1845, + EndPos: 1847, }, }, Stmts: []ast.Vertex{}, @@ -5356,8 +5012,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2004, - EndPos: 2037, + StartPos: 1848, + EndPos: 1881, }, }, Expr: &ast.ExprVariable{ @@ -5365,8 +5021,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2013, - EndPos: 2015, + StartPos: 1857, + EndPos: 1859, }, }, VarName: &ast.Identifier{ @@ -5374,8 +5030,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2013, - EndPos: 2015, + StartPos: 1857, + EndPos: 1859, }, }, Value: []byte("$a"), @@ -5386,8 +5042,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2019, - EndPos: 2021, + StartPos: 1863, + EndPos: 1865, }, }, VarName: &ast.Identifier{ @@ -5395,8 +5051,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2019, - EndPos: 2021, + StartPos: 1863, + EndPos: 1865, }, }, Value: []byte("$k"), @@ -5407,8 +5063,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2025, - EndPos: 2033, + StartPos: 1869, + EndPos: 1877, }, }, Items: []ast.Vertex{ @@ -5417,8 +5073,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2030, - EndPos: 2032, + StartPos: 1874, + EndPos: 1876, }, }, Val: &ast.ExprVariable{ @@ -5426,8 +5082,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2030, - EndPos: 2032, + StartPos: 1874, + EndPos: 1876, }, }, VarName: &ast.Identifier{ @@ -5435,8 +5091,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2030, - EndPos: 2032, + StartPos: 1874, + EndPos: 1876, }, }, Value: []byte("$v"), @@ -5450,8 +5106,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 2035, - EndPos: 2037, + StartPos: 1879, + EndPos: 1881, }, }, Stmts: []ast.Vertex{}, @@ -5462,18 +5118,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 2040, - EndPos: 2057, + StartPos: 1882, + EndPos: 1899, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 2049, - EndPos: 2052, + StartPos: 1891, + EndPos: 1894, }, }, Value: []byte("foo"), @@ -5485,18 +5140,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 88, EndLine: 92, - StartPos: 2061, - EndPos: 2132, + StartPos: 1901, + EndPos: 1973, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2070, - EndPos: 2073, + StartPos: 1910, + EndPos: 1913, }, }, Value: []byte("foo"), @@ -5507,18 +5161,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2081, - EndPos: 2098, + StartPos: 1922, + EndPos: 1939, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2090, - EndPos: 2093, + StartPos: 1931, + EndPos: 1934, }, }, Value: []byte("bar"), @@ -5530,8 +5183,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2102, - EndPos: 2114, + StartPos: 1944, + EndPos: 1956, }, }, ClassName: &ast.Identifier{ @@ -5539,8 +5192,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2108, - EndPos: 2111, + StartPos: 1950, + EndPos: 1953, }, }, Value: []byte("Baz"), @@ -5552,8 +5205,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2118, - EndPos: 2128, + StartPos: 1961, + EndPos: 1971, }, }, Expr: &ast.ExprVariable{ @@ -5561,8 +5214,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2125, - EndPos: 2127, + StartPos: 1968, + EndPos: 1970, }, }, VarName: &ast.Identifier{ @@ -5570,8 +5223,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2125, - EndPos: 2127, + StartPos: 1968, + EndPos: 1970, }, }, Value: []byte("$a"), @@ -5585,18 +5238,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2138, - EndPos: 2183, + StartPos: 1975, + EndPos: 2020, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2147, - EndPos: 2150, + StartPos: 1984, + EndPos: 1987, }, }, Value: []byte("foo"), @@ -5607,19 +5259,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2151, - EndPos: 2159, + StartPos: 1988, + EndPos: 1996, }, }, - Variadic: false, - ByRef: false, Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2151, - EndPos: 2156, + StartPos: 1988, + EndPos: 1993, }, }, Value: []byte("array"), @@ -5629,8 +5279,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2157, - EndPos: 2159, + StartPos: 1994, + EndPos: 1996, }, }, VarName: &ast.Identifier{ @@ -5638,8 +5288,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2157, - EndPos: 2159, + StartPos: 1994, + EndPos: 1996, }, }, Value: []byte("$a"), @@ -5651,19 +5301,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2161, - EndPos: 2172, + StartPos: 1998, + EndPos: 2009, }, }, - ByRef: false, - Variadic: false, Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2161, - EndPos: 2169, + StartPos: 1998, + EndPos: 2006, }, }, Value: []byte("callable"), @@ -5673,8 +5321,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2170, - EndPos: 2172, + StartPos: 2007, + EndPos: 2009, }, }, VarName: &ast.Identifier{ @@ -5682,8 +5330,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2170, - EndPos: 2172, + StartPos: 2007, + EndPos: 2009, }, }, Value: []byte("$b"), @@ -5697,8 +5345,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2175, - EndPos: 2182, + StartPos: 2012, + EndPos: 2019, }, }, }, @@ -5709,8 +5357,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2186, - EndPos: 2213, + StartPos: 2021, + EndPos: 2048, }, }, ReturnsRef: true, @@ -5719,8 +5367,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2196, - EndPos: 2199, + StartPos: 2031, + EndPos: 2034, }, }, Value: []byte("foo"), @@ -5731,8 +5379,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2203, - EndPos: 2212, + StartPos: 2038, + EndPos: 2047, }, }, Expr: &ast.ScalarLnumber{ @@ -5740,8 +5388,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2210, - EndPos: 2211, + StartPos: 2045, + EndPos: 2046, }, }, Value: []byte("1"), @@ -5754,8 +5402,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2216, - EndPos: 2234, + StartPos: 2049, + EndPos: 2067, }, }, ReturnsRef: true, @@ -5764,8 +5412,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2226, - EndPos: 2229, + StartPos: 2059, + EndPos: 2062, }, }, Value: []byte("foo"), @@ -5777,8 +5425,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2237, - EndPos: 2266, + StartPos: 2068, + EndPos: 2097, }, }, Vars: []ast.Vertex{ @@ -5787,8 +5435,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2244, - EndPos: 2246, + StartPos: 2075, + EndPos: 2077, }, }, VarName: &ast.Identifier{ @@ -5796,8 +5444,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2244, - EndPos: 2246, + StartPos: 2075, + EndPos: 2077, }, }, Value: []byte("$a"), @@ -5808,8 +5456,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2248, - EndPos: 2250, + StartPos: 2079, + EndPos: 2081, }, }, VarName: &ast.Identifier{ @@ -5817,8 +5465,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2248, - EndPos: 2250, + StartPos: 2079, + EndPos: 2081, }, }, Value: []byte("$b"), @@ -5829,8 +5477,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2252, - EndPos: 2255, + StartPos: 2083, + EndPos: 2086, }, }, VarName: &ast.ExprVariable{ @@ -5838,8 +5486,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2253, - EndPos: 2255, + StartPos: 2084, + EndPos: 2086, }, }, VarName: &ast.Identifier{ @@ -5847,8 +5495,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2253, - EndPos: 2255, + StartPos: 2084, + EndPos: 2086, }, }, Value: []byte("$c"), @@ -5860,8 +5508,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2257, - EndPos: 2265, + StartPos: 2088, + EndPos: 2096, }, }, VarName: &ast.ExprFunctionCall{ @@ -5869,8 +5517,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2259, - EndPos: 2264, + StartPos: 2090, + EndPos: 2095, }, }, Function: &ast.NameName{ @@ -5878,8 +5526,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2259, - EndPos: 2262, + StartPos: 2090, + EndPos: 2093, }, }, Parts: []ast.Vertex{ @@ -5888,8 +5536,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2259, - EndPos: 2262, + StartPos: 2090, + EndPos: 2093, }, }, Value: []byte("foo"), @@ -5901,8 +5549,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2262, - EndPos: 2264, + StartPos: 2093, + EndPos: 2095, }, }, }, @@ -5915,8 +5563,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2269, - EndPos: 2271, + StartPos: 2098, + EndPos: 2100, }, }, LabelName: &ast.Identifier{ @@ -5924,8 +5572,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2269, - EndPos: 2270, + StartPos: 2098, + EndPos: 2099, }, }, Value: []byte("a"), @@ -5936,8 +5584,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2275, - EndPos: 2282, + StartPos: 2101, + EndPos: 2108, }, }, Label: &ast.Identifier{ @@ -5945,8 +5593,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2280, - EndPos: 2281, + StartPos: 2106, + EndPos: 2107, }, }, Value: []byte("a"), @@ -5957,8 +5605,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2285, - EndPos: 2295, + StartPos: 2109, + EndPos: 2119, }, }, Cond: &ast.ExprVariable{ @@ -5966,8 +5614,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2289, - EndPos: 2291, + StartPos: 2113, + EndPos: 2115, }, }, VarName: &ast.Identifier{ @@ -5975,8 +5623,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2289, - EndPos: 2291, + StartPos: 2113, + EndPos: 2115, }, }, Value: []byte("$a"), @@ -5987,8 +5635,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2293, - EndPos: 2295, + StartPos: 2117, + EndPos: 2119, }, }, Stmts: []ast.Vertex{}, @@ -5999,8 +5647,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2298, - EndPos: 2323, + StartPos: 2120, + EndPos: 2145, }, }, Cond: &ast.ExprVariable{ @@ -6008,8 +5656,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2302, - EndPos: 2304, + StartPos: 2124, + EndPos: 2126, }, }, VarName: &ast.Identifier{ @@ -6017,8 +5665,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2302, - EndPos: 2304, + StartPos: 2124, + EndPos: 2126, }, }, Value: []byte("$a"), @@ -6029,8 +5677,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2306, - EndPos: 2308, + StartPos: 2128, + EndPos: 2130, }, }, Stmts: []ast.Vertex{}, @@ -6041,8 +5689,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2309, - EndPos: 2323, + StartPos: 2131, + EndPos: 2145, }, }, Cond: &ast.ExprVariable{ @@ -6050,8 +5698,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2317, - EndPos: 2319, + StartPos: 2139, + EndPos: 2141, }, }, VarName: &ast.Identifier{ @@ -6059,8 +5707,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2317, - EndPos: 2319, + StartPos: 2139, + EndPos: 2141, }, }, Value: []byte("$b"), @@ -6071,8 +5719,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2321, - EndPos: 2323, + StartPos: 2143, + EndPos: 2145, }, }, Stmts: []ast.Vertex{}, @@ -6085,8 +5733,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2326, - EndPos: 2344, + StartPos: 2146, + EndPos: 2164, }, }, Cond: &ast.ExprVariable{ @@ -6094,8 +5742,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2330, - EndPos: 2332, + StartPos: 2150, + EndPos: 2152, }, }, VarName: &ast.Identifier{ @@ -6103,8 +5751,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2330, - EndPos: 2332, + StartPos: 2150, + EndPos: 2152, }, }, Value: []byte("$a"), @@ -6115,8 +5763,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2334, - EndPos: 2336, + StartPos: 2154, + EndPos: 2156, }, }, Stmts: []ast.Vertex{}, @@ -6126,8 +5774,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2337, - EndPos: 2344, + StartPos: 2157, + EndPos: 2164, }, }, Stmt: &ast.StmtStmtList{ @@ -6135,8 +5783,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2342, - EndPos: 2344, + StartPos: 2162, + EndPos: 2164, }, }, Stmts: []ast.Vertex{}, @@ -6148,8 +5796,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2347, - EndPos: 2395, + StartPos: 2165, + EndPos: 2213, }, }, Cond: &ast.ExprVariable{ @@ -6157,8 +5805,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2351, - EndPos: 2353, + StartPos: 2169, + EndPos: 2171, }, }, VarName: &ast.Identifier{ @@ -6166,8 +5814,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2351, - EndPos: 2353, + StartPos: 2169, + EndPos: 2171, }, }, Value: []byte("$a"), @@ -6178,8 +5826,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2355, - EndPos: 2357, + StartPos: 2173, + EndPos: 2175, }, }, Stmts: []ast.Vertex{}, @@ -6190,8 +5838,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2358, - EndPos: 2372, + StartPos: 2176, + EndPos: 2190, }, }, Cond: &ast.ExprVariable{ @@ -6199,8 +5847,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2366, - EndPos: 2368, + StartPos: 2184, + EndPos: 2186, }, }, VarName: &ast.Identifier{ @@ -6208,8 +5856,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2366, - EndPos: 2368, + StartPos: 2184, + EndPos: 2186, }, }, Value: []byte("$b"), @@ -6220,8 +5868,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2370, - EndPos: 2372, + StartPos: 2188, + EndPos: 2190, }, }, Stmts: []ast.Vertex{}, @@ -6232,8 +5880,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2373, - EndPos: 2387, + StartPos: 2191, + EndPos: 2205, }, }, Cond: &ast.ExprVariable{ @@ -6241,8 +5889,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2381, - EndPos: 2383, + StartPos: 2199, + EndPos: 2201, }, }, VarName: &ast.Identifier{ @@ -6250,8 +5898,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2381, - EndPos: 2383, + StartPos: 2199, + EndPos: 2201, }, }, Value: []byte("$c"), @@ -6262,8 +5910,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2385, - EndPos: 2387, + StartPos: 2203, + EndPos: 2205, }, }, Stmts: []ast.Vertex{}, @@ -6275,8 +5923,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2388, - EndPos: 2395, + StartPos: 2206, + EndPos: 2213, }, }, Stmt: &ast.StmtStmtList{ @@ -6284,8 +5932,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2393, - EndPos: 2395, + StartPos: 2211, + EndPos: 2213, }, }, Stmts: []ast.Vertex{}, @@ -6297,8 +5945,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2398, - EndPos: 2447, + StartPos: 2214, + EndPos: 2263, }, }, Cond: &ast.ExprVariable{ @@ -6306,8 +5954,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2402, - EndPos: 2404, + StartPos: 2218, + EndPos: 2220, }, }, VarName: &ast.Identifier{ @@ -6315,8 +5963,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2402, - EndPos: 2404, + StartPos: 2218, + EndPos: 2220, }, }, Value: []byte("$a"), @@ -6327,8 +5975,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2406, - EndPos: 2408, + StartPos: 2222, + EndPos: 2224, }, }, Stmts: []ast.Vertex{}, @@ -6339,8 +5987,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2409, - EndPos: 2423, + StartPos: 2225, + EndPos: 2239, }, }, Cond: &ast.ExprVariable{ @@ -6348,8 +5996,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2417, - EndPos: 2419, + StartPos: 2233, + EndPos: 2235, }, }, VarName: &ast.Identifier{ @@ -6357,8 +6005,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2417, - EndPos: 2419, + StartPos: 2233, + EndPos: 2235, }, }, Value: []byte("$b"), @@ -6369,8 +6017,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2421, - EndPos: 2423, + StartPos: 2237, + EndPos: 2239, }, }, Stmts: []ast.Vertex{}, @@ -6382,8 +6030,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2424, - EndPos: 2447, + StartPos: 2240, + EndPos: 2263, }, }, Stmt: &ast.StmtIf{ @@ -6391,8 +6039,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2429, - EndPos: 2447, + StartPos: 2245, + EndPos: 2263, }, }, Cond: &ast.ExprVariable{ @@ -6400,8 +6048,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2433, - EndPos: 2435, + StartPos: 2249, + EndPos: 2251, }, }, VarName: &ast.Identifier{ @@ -6409,8 +6057,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2433, - EndPos: 2435, + StartPos: 2249, + EndPos: 2251, }, }, Value: []byte("$c"), @@ -6421,8 +6069,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2437, - EndPos: 2439, + StartPos: 2253, + EndPos: 2255, }, }, Stmts: []ast.Vertex{}, @@ -6432,8 +6080,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2440, - EndPos: 2447, + StartPos: 2256, + EndPos: 2263, }, }, Stmt: &ast.StmtStmtList{ @@ -6441,8 +6089,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2445, - EndPos: 2447, + StartPos: 2261, + EndPos: 2263, }, }, Stmts: []ast.Vertex{}, @@ -6456,8 +6104,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2450, - EndPos: 2452, + StartPos: 2264, + EndPos: 2266, }, }, }, @@ -6466,8 +6114,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2452, - EndPos: 2465, + StartPos: 2266, + EndPos: 2279, }, }, Value: []byte("
"), @@ -6477,8 +6125,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2470, - EndPos: 2486, + StartPos: 2282, + EndPos: 2298, }, }, InterfaceName: &ast.Identifier{ @@ -6486,8 +6134,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2480, - EndPos: 2483, + StartPos: 2292, + EndPos: 2295, }, }, Value: []byte("Foo"), @@ -6499,8 +6147,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2489, - EndPos: 2517, + StartPos: 2299, + EndPos: 2327, }, }, InterfaceName: &ast.Identifier{ @@ -6508,8 +6156,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2499, - EndPos: 2502, + StartPos: 2309, + EndPos: 2312, }, }, Value: []byte("Foo"), @@ -6519,8 +6167,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2503, - EndPos: 2514, + StartPos: 2313, + EndPos: 2324, }, }, InterfaceNames: []ast.Vertex{ @@ -6529,8 +6177,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2511, - EndPos: 2514, + StartPos: 2321, + EndPos: 2324, }, }, Parts: []ast.Vertex{ @@ -6539,8 +6187,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2511, - EndPos: 2514, + StartPos: 2321, + EndPos: 2324, }, }, Value: []byte("Bar"), @@ -6556,8 +6204,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2520, - EndPos: 2553, + StartPos: 2328, + EndPos: 2361, }, }, InterfaceName: &ast.Identifier{ @@ -6565,8 +6213,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2530, - EndPos: 2533, + StartPos: 2338, + EndPos: 2341, }, }, Value: []byte("Foo"), @@ -6576,8 +6224,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2534, - EndPos: 2550, + StartPos: 2342, + EndPos: 2358, }, }, InterfaceNames: []ast.Vertex{ @@ -6586,8 +6234,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2542, - EndPos: 2545, + StartPos: 2350, + EndPos: 2353, }, }, Parts: []ast.Vertex{ @@ -6596,8 +6244,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2542, - EndPos: 2545, + StartPos: 2350, + EndPos: 2353, }, }, Value: []byte("Bar"), @@ -6609,8 +6257,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2547, - EndPos: 2550, + StartPos: 2355, + EndPos: 2358, }, }, Parts: []ast.Vertex{ @@ -6619,8 +6267,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2547, - EndPos: 2550, + StartPos: 2355, + EndPos: 2358, }, }, Value: []byte("Baz"), @@ -6636,8 +6284,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2556, - EndPos: 2570, + StartPos: 2362, + EndPos: 2376, }, }, NamespaceName: &ast.NameName{ @@ -6645,8 +6293,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2566, - EndPos: 2569, + StartPos: 2372, + EndPos: 2375, }, }, Parts: []ast.Vertex{ @@ -6655,8 +6303,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2566, - EndPos: 2569, + StartPos: 2372, + EndPos: 2375, }, }, Value: []byte("Foo"), @@ -6669,8 +6317,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2573, - EndPos: 2593, + StartPos: 2377, + EndPos: 2397, }, }, NamespaceName: &ast.NameName{ @@ -6678,8 +6326,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2583, - EndPos: 2590, + StartPos: 2387, + EndPos: 2394, }, }, Parts: []ast.Vertex{ @@ -6688,8 +6336,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2583, - EndPos: 2586, + StartPos: 2387, + EndPos: 2390, }, }, Value: []byte("Foo"), @@ -6699,8 +6347,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2587, - EndPos: 2590, + StartPos: 2391, + EndPos: 2394, }, }, Value: []byte("Bar"), @@ -6714,8 +6362,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 111, EndLine: 111, - StartPos: 2596, - EndPos: 2608, + StartPos: 2398, + EndPos: 2410, }, }, Stmts: []ast.Vertex{}, @@ -6725,8 +6373,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2611, - EndPos: 2630, + StartPos: 2411, + EndPos: 2430, }, }, ClassName: &ast.Identifier{ @@ -6734,8 +6382,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2617, - EndPos: 2620, + StartPos: 2417, + EndPos: 2420, }, }, Value: []byte("foo"), @@ -6746,8 +6394,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2622, - EndPos: 2629, + StartPos: 2422, + EndPos: 2429, }, }, Modifiers: []ast.Vertex{ @@ -6756,8 +6404,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2622, - EndPos: 2625, + StartPos: 2422, + EndPos: 2425, }, }, Value: []byte("var"), @@ -6769,8 +6417,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2626, - EndPos: 2628, + StartPos: 2426, + EndPos: 2428, }, }, Var: &ast.ExprVariable{ @@ -6778,8 +6426,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2626, - EndPos: 2628, + StartPos: 2426, + EndPos: 2428, }, }, VarName: &ast.Identifier{ @@ -6787,8 +6435,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2626, - EndPos: 2628, + StartPos: 2426, + EndPos: 2428, }, }, Value: []byte("$a"), @@ -6804,8 +6452,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2633, - EndPos: 2670, + StartPos: 2431, + EndPos: 2468, }, }, ClassName: &ast.Identifier{ @@ -6813,8 +6461,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2639, - EndPos: 2642, + StartPos: 2437, + EndPos: 2440, }, }, Value: []byte("foo"), @@ -6825,8 +6473,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2644, - EndPos: 2669, + StartPos: 2442, + EndPos: 2467, }, }, Modifiers: []ast.Vertex{ @@ -6835,8 +6483,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2644, - EndPos: 2650, + StartPos: 2442, + EndPos: 2448, }, }, Value: []byte("public"), @@ -6846,8 +6494,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2651, - EndPos: 2657, + StartPos: 2449, + EndPos: 2455, }, }, Value: []byte("static"), @@ -6859,8 +6507,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2658, - EndPos: 2660, + StartPos: 2456, + EndPos: 2458, }, }, Var: &ast.ExprVariable{ @@ -6868,8 +6516,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2658, - EndPos: 2660, + StartPos: 2456, + EndPos: 2458, }, }, VarName: &ast.Identifier{ @@ -6877,8 +6525,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2658, - EndPos: 2660, + StartPos: 2456, + EndPos: 2458, }, }, Value: []byte("$a"), @@ -6890,8 +6538,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2662, - EndPos: 2668, + StartPos: 2460, + EndPos: 2466, }, }, Var: &ast.ExprVariable{ @@ -6899,8 +6547,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2662, - EndPos: 2664, + StartPos: 2460, + EndPos: 2462, }, }, VarName: &ast.Identifier{ @@ -6908,8 +6556,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2662, - EndPos: 2664, + StartPos: 2460, + EndPos: 2462, }, }, Value: []byte("$b"), @@ -6920,8 +6568,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2667, - EndPos: 2668, + StartPos: 2465, + EndPos: 2466, }, }, Value: []byte("1"), @@ -6936,8 +6584,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2673, - EndPos: 2710, + StartPos: 2469, + EndPos: 2506, }, }, ClassName: &ast.Identifier{ @@ -6945,8 +6593,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2679, - EndPos: 2682, + StartPos: 2475, + EndPos: 2478, }, }, Value: []byte("foo"), @@ -6957,8 +6605,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2684, - EndPos: 2709, + StartPos: 2480, + EndPos: 2505, }, }, Modifiers: []ast.Vertex{ @@ -6967,8 +6615,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2684, - EndPos: 2690, + StartPos: 2480, + EndPos: 2486, }, }, Value: []byte("public"), @@ -6978,8 +6626,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2691, - EndPos: 2697, + StartPos: 2487, + EndPos: 2493, }, }, Value: []byte("static"), @@ -6991,8 +6639,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2698, - EndPos: 2704, + StartPos: 2494, + EndPos: 2500, }, }, Var: &ast.ExprVariable{ @@ -7000,8 +6648,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2698, - EndPos: 2700, + StartPos: 2494, + EndPos: 2496, }, }, VarName: &ast.Identifier{ @@ -7009,8 +6657,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2698, - EndPos: 2700, + StartPos: 2494, + EndPos: 2496, }, }, Value: []byte("$a"), @@ -7021,8 +6669,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2703, - EndPos: 2704, + StartPos: 2499, + EndPos: 2500, }, }, Value: []byte("1"), @@ -7033,8 +6681,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2706, - EndPos: 2708, + StartPos: 2502, + EndPos: 2504, }, }, Var: &ast.ExprVariable{ @@ -7042,8 +6690,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2706, - EndPos: 2708, + StartPos: 2502, + EndPos: 2504, }, }, VarName: &ast.Identifier{ @@ -7051,8 +6699,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2706, - EndPos: 2708, + StartPos: 2502, + EndPos: 2504, }, }, Value: []byte("$b"), @@ -7068,8 +6716,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2713, - EndPos: 2731, + StartPos: 2507, + EndPos: 2525, }, }, Vars: []ast.Vertex{ @@ -7078,8 +6726,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2720, - EndPos: 2722, + StartPos: 2514, + EndPos: 2516, }, }, Var: &ast.ExprVariable{ @@ -7087,8 +6735,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2720, - EndPos: 2722, + StartPos: 2514, + EndPos: 2516, }, }, VarName: &ast.Identifier{ @@ -7096,8 +6744,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2720, - EndPos: 2722, + StartPos: 2514, + EndPos: 2516, }, }, Value: []byte("$a"), @@ -7109,8 +6757,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2724, - EndPos: 2730, + StartPos: 2518, + EndPos: 2524, }, }, Var: &ast.ExprVariable{ @@ -7118,8 +6766,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2724, - EndPos: 2726, + StartPos: 2518, + EndPos: 2520, }, }, VarName: &ast.Identifier{ @@ -7127,8 +6775,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2724, - EndPos: 2726, + StartPos: 2518, + EndPos: 2520, }, }, Value: []byte("$b"), @@ -7139,8 +6787,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2729, - EndPos: 2730, + StartPos: 2523, + EndPos: 2524, }, }, Value: []byte("1"), @@ -7153,8 +6801,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2734, - EndPos: 2752, + StartPos: 2526, + EndPos: 2544, }, }, Vars: []ast.Vertex{ @@ -7163,8 +6811,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2741, - EndPos: 2747, + StartPos: 2533, + EndPos: 2539, }, }, Var: &ast.ExprVariable{ @@ -7172,8 +6820,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2741, - EndPos: 2743, + StartPos: 2533, + EndPos: 2535, }, }, VarName: &ast.Identifier{ @@ -7181,8 +6829,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2741, - EndPos: 2743, + StartPos: 2533, + EndPos: 2535, }, }, Value: []byte("$a"), @@ -7193,8 +6841,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2746, - EndPos: 2747, + StartPos: 2538, + EndPos: 2539, }, }, Value: []byte("1"), @@ -7205,8 +6853,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2749, - EndPos: 2751, + StartPos: 2541, + EndPos: 2543, }, }, Var: &ast.ExprVariable{ @@ -7214,8 +6862,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2749, - EndPos: 2751, + StartPos: 2541, + EndPos: 2543, }, }, VarName: &ast.Identifier{ @@ -7223,8 +6871,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2749, - EndPos: 2751, + StartPos: 2541, + EndPos: 2543, }, }, Value: []byte("$b"), @@ -7238,8 +6886,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 122, - StartPos: 2756, - EndPos: 2815, + StartPos: 2546, + EndPos: 2606, }, }, Cond: &ast.ScalarLnumber{ @@ -7247,8 +6895,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2764, - EndPos: 2765, + StartPos: 2554, + EndPos: 2555, }, }, Value: []byte("1"), @@ -7258,7 +6906,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: -1, - StartPos: 2772, + StartPos: 2563, EndPos: -1, }, }, @@ -7268,7 +6916,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: -1, - StartPos: 2772, + StartPos: 2563, EndPos: -1, }, }, @@ -7277,8 +6925,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2777, - EndPos: 2778, + StartPos: 2568, + EndPos: 2569, }, }, Value: []byte("1"), @@ -7290,7 +6938,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: -1, - StartPos: 2783, + StartPos: 2575, EndPos: -1, }, }, @@ -7301,7 +6949,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 121, EndLine: -1, - StartPos: 2795, + StartPos: 2588, EndPos: -1, }, }, @@ -7310,8 +6958,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 121, EndLine: 121, - StartPos: 2800, - EndPos: 2801, + StartPos: 2593, + EndPos: 2594, }, }, Value: []byte("2"), @@ -7326,8 +6974,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 124, EndLine: 127, - StartPos: 2819, - EndPos: 2867, + StartPos: 2608, + EndPos: 2656, }, }, Cond: &ast.ScalarLnumber{ @@ -7335,8 +6983,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 124, EndLine: 124, - StartPos: 2827, - EndPos: 2828, + StartPos: 2616, + EndPos: 2617, }, }, Value: []byte("1"), @@ -7346,7 +6994,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: -1, - StartPos: 2836, + StartPos: 2626, EndPos: -1, }, }, @@ -7356,7 +7004,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: -1, - StartPos: 2836, + StartPos: 2626, EndPos: -1, }, }, @@ -7365,8 +7013,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: 125, - StartPos: 2841, - EndPos: 2842, + StartPos: 2631, + EndPos: 2632, }, }, Value: []byte("1"), @@ -7378,7 +7026,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 126, EndLine: -1, - StartPos: 2847, + StartPos: 2638, EndPos: -1, }, }, @@ -7387,8 +7035,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 126, EndLine: 126, - StartPos: 2852, - EndPos: 2853, + StartPos: 2643, + EndPos: 2644, }, }, Value: []byte("2"), @@ -7403,8 +7051,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: 132, - StartPos: 2873, - EndPos: 2925, + StartPos: 2658, + EndPos: 2710, }, }, Cond: &ast.ScalarLnumber{ @@ -7412,8 +7060,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: 129, - StartPos: 2881, - EndPos: 2882, + StartPos: 2666, + EndPos: 2667, }, }, Value: []byte("1"), @@ -7423,8 +7071,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: 132, - StartPos: 2884, - EndPos: 2925, + StartPos: 2669, + EndPos: 2710, }, }, Cases: []ast.Vertex{ @@ -7433,8 +7081,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2889, - EndPos: 2903, + StartPos: 2675, + EndPos: 2689, }, }, Cond: &ast.ScalarLnumber{ @@ -7442,8 +7090,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2894, - EndPos: 2895, + StartPos: 2680, + EndPos: 2681, }, }, Value: []byte("1"), @@ -7454,8 +7102,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2897, - EndPos: 2903, + StartPos: 2683, + EndPos: 2689, }, }, }, @@ -7466,8 +7114,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2907, - EndPos: 2921, + StartPos: 2694, + EndPos: 2708, }, }, Cond: &ast.ScalarLnumber{ @@ -7475,8 +7123,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2912, - EndPos: 2913, + StartPos: 2699, + EndPos: 2700, }, }, Value: []byte("2"), @@ -7487,8 +7135,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2915, - EndPos: 2921, + StartPos: 2702, + EndPos: 2708, }, }, }, @@ -7502,8 +7150,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 137, - StartPos: 2931, - EndPos: 2984, + StartPos: 2712, + EndPos: 2765, }, }, Cond: &ast.ScalarLnumber{ @@ -7511,8 +7159,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 2939, - EndPos: 2940, + StartPos: 2720, + EndPos: 2721, }, }, Value: []byte("1"), @@ -7522,8 +7170,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 137, - StartPos: 2942, - EndPos: 2984, + StartPos: 2723, + EndPos: 2765, }, }, Cases: []ast.Vertex{ @@ -7532,8 +7180,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2948, - EndPos: 2962, + StartPos: 2730, + EndPos: 2744, }, }, Cond: &ast.ScalarLnumber{ @@ -7541,8 +7189,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2953, - EndPos: 2954, + StartPos: 2735, + EndPos: 2736, }, }, Value: []byte("1"), @@ -7553,8 +7201,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2956, - EndPos: 2962, + StartPos: 2738, + EndPos: 2744, }, }, }, @@ -7565,8 +7213,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2966, - EndPos: 2980, + StartPos: 2749, + EndPos: 2763, }, }, Cond: &ast.ScalarLnumber{ @@ -7574,8 +7222,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2971, - EndPos: 2972, + StartPos: 2754, + EndPos: 2755, }, }, Value: []byte("2"), @@ -7586,8 +7234,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2974, - EndPos: 2980, + StartPos: 2757, + EndPos: 2763, }, }, }, @@ -7601,8 +7249,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 2987, - EndPos: 2996, + StartPos: 2766, + EndPos: 2775, }, }, Expr: &ast.ExprVariable{ @@ -7610,8 +7258,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 2993, - EndPos: 2995, + StartPos: 2772, + EndPos: 2774, }, }, VarName: &ast.Identifier{ @@ -7619,8 +7267,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 2993, - EndPos: 2995, + StartPos: 2772, + EndPos: 2774, }, }, Value: []byte("$e"), @@ -7632,8 +7280,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 2999, - EndPos: 3011, + StartPos: 2776, + EndPos: 2788, }, }, TraitName: &ast.Identifier{ @@ -7641,8 +7289,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3005, - EndPos: 3008, + StartPos: 2782, + EndPos: 2785, }, }, Value: []byte("Foo"), @@ -7654,8 +7302,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3014, - EndPos: 3036, + StartPos: 2789, + EndPos: 2811, }, }, ClassName: &ast.Identifier{ @@ -7663,8 +7311,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3020, - EndPos: 3023, + StartPos: 2795, + EndPos: 2798, }, }, Value: []byte("Foo"), @@ -7675,8 +7323,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3026, - EndPos: 3034, + StartPos: 2801, + EndPos: 2809, }, }, Traits: []ast.Vertex{ @@ -7685,8 +7333,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3030, - EndPos: 3033, + StartPos: 2805, + EndPos: 2808, }, }, Parts: []ast.Vertex{ @@ -7695,8 +7343,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3030, - EndPos: 3033, + StartPos: 2805, + EndPos: 2808, }, }, Value: []byte("Bar"), @@ -7709,8 +7357,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3033, - EndPos: 3034, + StartPos: 2808, + EndPos: 2809, }, }, }, @@ -7722,8 +7370,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3039, - EndPos: 3068, + StartPos: 2812, + EndPos: 2841, }, }, ClassName: &ast.Identifier{ @@ -7731,8 +7379,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3045, - EndPos: 3048, + StartPos: 2818, + EndPos: 2821, }, }, Value: []byte("Foo"), @@ -7743,8 +7391,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3051, - EndPos: 3066, + StartPos: 2824, + EndPos: 2839, }, }, Traits: []ast.Vertex{ @@ -7753,8 +7401,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3055, - EndPos: 3058, + StartPos: 2828, + EndPos: 2831, }, }, Parts: []ast.Vertex{ @@ -7763,8 +7411,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3055, - EndPos: 3058, + StartPos: 2828, + EndPos: 2831, }, }, Value: []byte("Bar"), @@ -7776,8 +7424,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3060, - EndPos: 3063, + StartPos: 2833, + EndPos: 2836, }, }, Parts: []ast.Vertex{ @@ -7786,8 +7434,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3060, - EndPos: 3063, + StartPos: 2833, + EndPos: 2836, }, }, Value: []byte("Baz"), @@ -7800,8 +7448,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 141, EndLine: 141, - StartPos: 3064, - EndPos: 3066, + StartPos: 2837, + EndPos: 2839, }, }, }, @@ -7813,8 +7461,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3071, - EndPos: 3116, + StartPos: 2842, + EndPos: 2887, }, }, ClassName: &ast.Identifier{ @@ -7822,8 +7470,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3077, - EndPos: 3080, + StartPos: 2848, + EndPos: 2851, }, }, Value: []byte("Foo"), @@ -7834,8 +7482,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3083, - EndPos: 3114, + StartPos: 2854, + EndPos: 2885, }, }, Traits: []ast.Vertex{ @@ -7844,8 +7492,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3087, - EndPos: 3090, + StartPos: 2858, + EndPos: 2861, }, }, Parts: []ast.Vertex{ @@ -7854,8 +7502,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3087, - EndPos: 3090, + StartPos: 2858, + EndPos: 2861, }, }, Value: []byte("Bar"), @@ -7867,8 +7515,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3092, - EndPos: 3095, + StartPos: 2863, + EndPos: 2866, }, }, Parts: []ast.Vertex{ @@ -7877,8 +7525,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3092, - EndPos: 3095, + StartPos: 2863, + EndPos: 2866, }, }, Value: []byte("Baz"), @@ -7891,8 +7539,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3096, - EndPos: 3114, + StartPos: 2867, + EndPos: 2885, }, }, Adaptations: []ast.Vertex{ @@ -7901,8 +7549,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3098, - EndPos: 3111, + StartPos: 2869, + EndPos: 2882, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -7910,8 +7558,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3098, - EndPos: 3101, + StartPos: 2869, + EndPos: 2872, }, }, Method: &ast.Identifier{ @@ -7919,8 +7567,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3098, - EndPos: 3101, + StartPos: 2869, + EndPos: 2872, }, }, Value: []byte("one"), @@ -7931,8 +7579,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 142, EndLine: 142, - StartPos: 3105, - EndPos: 3111, + StartPos: 2876, + EndPos: 2882, }, }, Value: []byte("public"), @@ -7948,8 +7596,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3119, - EndPos: 3168, + StartPos: 2888, + EndPos: 2937, }, }, ClassName: &ast.Identifier{ @@ -7957,8 +7605,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3125, - EndPos: 3128, + StartPos: 2894, + EndPos: 2897, }, }, Value: []byte("Foo"), @@ -7969,8 +7617,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3131, - EndPos: 3166, + StartPos: 2900, + EndPos: 2935, }, }, Traits: []ast.Vertex{ @@ -7979,8 +7627,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3135, - EndPos: 3138, + StartPos: 2904, + EndPos: 2907, }, }, Parts: []ast.Vertex{ @@ -7989,8 +7637,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3135, - EndPos: 3138, + StartPos: 2904, + EndPos: 2907, }, }, Value: []byte("Bar"), @@ -8002,8 +7650,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3140, - EndPos: 3143, + StartPos: 2909, + EndPos: 2912, }, }, Parts: []ast.Vertex{ @@ -8012,8 +7660,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3140, - EndPos: 3143, + StartPos: 2909, + EndPos: 2912, }, }, Value: []byte("Baz"), @@ -8026,8 +7674,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3144, - EndPos: 3166, + StartPos: 2913, + EndPos: 2935, }, }, Adaptations: []ast.Vertex{ @@ -8036,8 +7684,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3146, - EndPos: 3163, + StartPos: 2915, + EndPos: 2932, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8045,8 +7693,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3146, - EndPos: 3149, + StartPos: 2915, + EndPos: 2918, }, }, Method: &ast.Identifier{ @@ -8054,8 +7702,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3146, - EndPos: 3149, + StartPos: 2915, + EndPos: 2918, }, }, Value: []byte("one"), @@ -8066,8 +7714,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3153, - EndPos: 3159, + StartPos: 2922, + EndPos: 2928, }, }, Value: []byte("public"), @@ -8077,8 +7725,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3160, - EndPos: 3163, + StartPos: 2929, + EndPos: 2932, }, }, Value: []byte("two"), @@ -8094,8 +7742,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3171, - EndPos: 3248, + StartPos: 2938, + EndPos: 3015, }, }, ClassName: &ast.Identifier{ @@ -8103,8 +7751,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3177, - EndPos: 3180, + StartPos: 2944, + EndPos: 2947, }, }, Value: []byte("Foo"), @@ -8115,8 +7763,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3183, - EndPos: 3246, + StartPos: 2950, + EndPos: 3013, }, }, Traits: []ast.Vertex{ @@ -8125,8 +7773,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3187, - EndPos: 3190, + StartPos: 2954, + EndPos: 2957, }, }, Parts: []ast.Vertex{ @@ -8135,8 +7783,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3187, - EndPos: 3190, + StartPos: 2954, + EndPos: 2957, }, }, Value: []byte("Bar"), @@ -8148,8 +7796,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3192, - EndPos: 3195, + StartPos: 2959, + EndPos: 2962, }, }, Parts: []ast.Vertex{ @@ -8158,8 +7806,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3192, - EndPos: 3195, + StartPos: 2959, + EndPos: 2962, }, }, Value: []byte("Baz"), @@ -8172,8 +7820,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3196, - EndPos: 3246, + StartPos: 2963, + EndPos: 3013, }, }, Adaptations: []ast.Vertex{ @@ -8182,8 +7830,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3198, - EndPos: 3226, + StartPos: 2965, + EndPos: 2993, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8191,8 +7839,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3198, - EndPos: 3206, + StartPos: 2965, + EndPos: 2973, }, }, Trait: &ast.NameName{ @@ -8200,8 +7848,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3198, - EndPos: 3201, + StartPos: 2965, + EndPos: 2968, }, }, Parts: []ast.Vertex{ @@ -8210,8 +7858,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3198, - EndPos: 3201, + StartPos: 2965, + EndPos: 2968, }, }, Value: []byte("Bar"), @@ -8223,8 +7871,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3203, - EndPos: 3206, + StartPos: 2970, + EndPos: 2973, }, }, Value: []byte("one"), @@ -8236,8 +7884,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3217, - EndPos: 3220, + StartPos: 2984, + EndPos: 2987, }, }, Parts: []ast.Vertex{ @@ -8246,8 +7894,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3217, - EndPos: 3220, + StartPos: 2984, + EndPos: 2987, }, }, Value: []byte("Baz"), @@ -8259,8 +7907,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3222, - EndPos: 3226, + StartPos: 2989, + EndPos: 2993, }, }, Parts: []ast.Vertex{ @@ -8269,8 +7917,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3222, - EndPos: 3226, + StartPos: 2989, + EndPos: 2993, }, }, Value: []byte("Quux"), @@ -8284,8 +7932,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3228, - EndPos: 3243, + StartPos: 2995, + EndPos: 3010, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8293,8 +7941,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3228, - EndPos: 3236, + StartPos: 2995, + EndPos: 3003, }, }, Trait: &ast.NameName{ @@ -8302,8 +7950,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3228, - EndPos: 3231, + StartPos: 2995, + EndPos: 2998, }, }, Parts: []ast.Vertex{ @@ -8312,8 +7960,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3228, - EndPos: 3231, + StartPos: 2995, + EndPos: 2998, }, }, Value: []byte("Baz"), @@ -8325,8 +7973,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3233, - EndPos: 3236, + StartPos: 3000, + EndPos: 3003, }, }, Value: []byte("one"), @@ -8337,8 +7985,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 144, EndLine: 144, - StartPos: 3240, - EndPos: 3243, + StartPos: 3007, + EndPos: 3010, }, }, Value: []byte("two"), @@ -8354,7 +8002,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: -1, - StartPos: 3252, + StartPos: 3017, EndPos: -1, }, }, @@ -8366,8 +8014,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3261, - EndPos: 3291, + StartPos: 3024, + EndPos: 3054, }, }, Stmts: []ast.Vertex{}, @@ -8377,8 +8025,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3268, - EndPos: 3291, + StartPos: 3031, + EndPos: 3054, }, }, Types: []ast.Vertex{ @@ -8387,8 +8035,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3275, - EndPos: 3284, + StartPos: 3038, + EndPos: 3047, }, }, Parts: []ast.Vertex{ @@ -8397,8 +8045,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3275, - EndPos: 3284, + StartPos: 3038, + EndPos: 3047, }, }, Value: []byte("Exception"), @@ -8411,8 +8059,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3285, - EndPos: 3287, + StartPos: 3048, + EndPos: 3050, }, }, VarName: &ast.Identifier{ @@ -8420,8 +8068,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3285, - EndPos: 3287, + StartPos: 3048, + EndPos: 3050, }, }, Value: []byte("$e"), @@ -8436,8 +8084,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3294, - EndPos: 3355, + StartPos: 3055, + EndPos: 3116, }, }, Stmts: []ast.Vertex{}, @@ -8447,8 +8095,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3301, - EndPos: 3324, + StartPos: 3062, + EndPos: 3085, }, }, Types: []ast.Vertex{ @@ -8457,8 +8105,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3308, - EndPos: 3317, + StartPos: 3069, + EndPos: 3078, }, }, Parts: []ast.Vertex{ @@ -8467,8 +8115,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3308, - EndPos: 3317, + StartPos: 3069, + EndPos: 3078, }, }, Value: []byte("Exception"), @@ -8481,8 +8129,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3318, - EndPos: 3320, + StartPos: 3079, + EndPos: 3081, }, }, VarName: &ast.Identifier{ @@ -8490,8 +8138,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3318, - EndPos: 3320, + StartPos: 3079, + EndPos: 3081, }, }, Value: []byte("$e"), @@ -8504,8 +8152,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3325, - EndPos: 3355, + StartPos: 3086, + EndPos: 3116, }, }, Types: []ast.Vertex{ @@ -8514,8 +8162,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3332, - EndPos: 3348, + StartPos: 3093, + EndPos: 3109, }, }, Parts: []ast.Vertex{ @@ -8524,8 +8172,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3332, - EndPos: 3348, + StartPos: 3093, + EndPos: 3109, }, }, Value: []byte("RuntimeException"), @@ -8538,8 +8186,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3349, - EndPos: 3351, + StartPos: 3110, + EndPos: 3112, }, }, VarName: &ast.Identifier{ @@ -8547,8 +8195,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3349, - EndPos: 3351, + StartPos: 3110, + EndPos: 3112, }, }, Value: []byte("$e"), @@ -8563,8 +8211,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3358, - EndPos: 3462, + StartPos: 3117, + EndPos: 3221, }, }, Stmts: []ast.Vertex{}, @@ -8574,8 +8222,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3365, - EndPos: 3388, + StartPos: 3124, + EndPos: 3147, }, }, Types: []ast.Vertex{ @@ -8584,8 +8232,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3372, - EndPos: 3381, + StartPos: 3131, + EndPos: 3140, }, }, Parts: []ast.Vertex{ @@ -8594,8 +8242,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3372, - EndPos: 3381, + StartPos: 3131, + EndPos: 3140, }, }, Value: []byte("Exception"), @@ -8608,8 +8256,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3382, - EndPos: 3384, + StartPos: 3141, + EndPos: 3143, }, }, VarName: &ast.Identifier{ @@ -8617,8 +8265,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3382, - EndPos: 3384, + StartPos: 3141, + EndPos: 3143, }, }, Value: []byte("$e"), @@ -8631,8 +8279,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3389, - EndPos: 3420, + StartPos: 3148, + EndPos: 3179, }, }, Types: []ast.Vertex{ @@ -8641,8 +8289,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3396, - EndPos: 3413, + StartPos: 3155, + EndPos: 3172, }, }, Parts: []ast.Vertex{ @@ -8651,8 +8299,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3397, - EndPos: 3413, + StartPos: 3156, + EndPos: 3172, }, }, Value: []byte("RuntimeException"), @@ -8665,8 +8313,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3414, - EndPos: 3416, + StartPos: 3173, + EndPos: 3175, }, }, VarName: &ast.Identifier{ @@ -8674,8 +8322,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3414, - EndPos: 3416, + StartPos: 3173, + EndPos: 3175, }, }, Value: []byte("$e"), @@ -8688,8 +8336,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3421, - EndPos: 3462, + StartPos: 3180, + EndPos: 3221, }, }, Types: []ast.Vertex{ @@ -8698,8 +8346,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3428, - EndPos: 3455, + StartPos: 3187, + EndPos: 3214, }, }, Parts: []ast.Vertex{ @@ -8708,8 +8356,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3438, - EndPos: 3455, + StartPos: 3197, + EndPos: 3214, }, }, Value: []byte("AdditionException"), @@ -8722,8 +8370,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3456, - EndPos: 3458, + StartPos: 3215, + EndPos: 3217, }, }, VarName: &ast.Identifier{ @@ -8731,8 +8379,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3456, - EndPos: 3458, + StartPos: 3215, + EndPos: 3217, }, }, Value: []byte("$e"), @@ -8747,8 +8395,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3465, - EndPos: 3506, + StartPos: 3222, + EndPos: 3263, }, }, Stmts: []ast.Vertex{}, @@ -8758,8 +8406,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3472, - EndPos: 3495, + StartPos: 3229, + EndPos: 3252, }, }, Types: []ast.Vertex{ @@ -8768,8 +8416,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3479, - EndPos: 3488, + StartPos: 3236, + EndPos: 3245, }, }, Parts: []ast.Vertex{ @@ -8778,8 +8426,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3479, - EndPos: 3488, + StartPos: 3236, + EndPos: 3245, }, }, Value: []byte("Exception"), @@ -8792,8 +8440,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3489, - EndPos: 3491, + StartPos: 3246, + EndPos: 3248, }, }, VarName: &ast.Identifier{ @@ -8801,8 +8449,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3489, - EndPos: 3491, + StartPos: 3246, + EndPos: 3248, }, }, Value: []byte("$e"), @@ -8816,8 +8464,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3496, - EndPos: 3506, + StartPos: 3253, + EndPos: 3263, }, }, Stmts: []ast.Vertex{}, @@ -8828,8 +8476,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3510, - EndPos: 3524, + StartPos: 3265, + EndPos: 3279, }, }, Vars: []ast.Vertex{ @@ -8838,8 +8486,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3516, - EndPos: 3518, + StartPos: 3271, + EndPos: 3273, }, }, VarName: &ast.Identifier{ @@ -8847,8 +8495,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3516, - EndPos: 3518, + StartPos: 3271, + EndPos: 3273, }, }, Value: []byte("$a"), @@ -8859,8 +8507,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3520, - EndPos: 3522, + StartPos: 3275, + EndPos: 3277, }, }, VarName: &ast.Identifier{ @@ -8868,8 +8516,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 152, EndLine: 152, - StartPos: 3520, - EndPos: 3522, + StartPos: 3275, + EndPos: 3277, }, }, Value: []byte("$b"), @@ -8882,8 +8530,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3528, - EndPos: 3536, + StartPos: 3281, + EndPos: 3289, }, }, Uses: []ast.Vertex{ @@ -8892,8 +8540,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3532, - EndPos: 3535, + StartPos: 3285, + EndPos: 3288, }, }, Use: &ast.NameName{ @@ -8901,8 +8549,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3532, - EndPos: 3535, + StartPos: 3285, + EndPos: 3288, }, }, Parts: []ast.Vertex{ @@ -8911,8 +8559,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3532, - EndPos: 3535, + StartPos: 3285, + EndPos: 3288, }, }, Value: []byte("Foo"), @@ -8927,8 +8575,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3539, - EndPos: 3548, + StartPos: 3290, + EndPos: 3299, }, }, Uses: []ast.Vertex{ @@ -8937,8 +8585,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3544, - EndPos: 3547, + StartPos: 3295, + EndPos: 3298, }, }, Use: &ast.NameName{ @@ -8946,8 +8594,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3544, - EndPos: 3547, + StartPos: 3295, + EndPos: 3298, }, }, Parts: []ast.Vertex{ @@ -8956,8 +8604,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3544, - EndPos: 3547, + StartPos: 3295, + EndPos: 3298, }, }, Value: []byte("Foo"), @@ -8972,8 +8620,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3551, - EndPos: 3567, + StartPos: 3300, + EndPos: 3316, }, }, Uses: []ast.Vertex{ @@ -8982,8 +8630,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3556, - EndPos: 3566, + StartPos: 3305, + EndPos: 3315, }, }, Use: &ast.NameName{ @@ -8991,8 +8639,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3556, - EndPos: 3559, + StartPos: 3305, + EndPos: 3308, }, }, Parts: []ast.Vertex{ @@ -9001,8 +8649,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3556, - EndPos: 3559, + StartPos: 3305, + EndPos: 3308, }, }, Value: []byte("Foo"), @@ -9014,8 +8662,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3563, - EndPos: 3566, + StartPos: 3312, + EndPos: 3315, }, }, Value: []byte("Bar"), @@ -9028,8 +8676,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3570, - EndPos: 3583, + StartPos: 3317, + EndPos: 3330, }, }, Uses: []ast.Vertex{ @@ -9038,8 +8686,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3574, - EndPos: 3577, + StartPos: 3321, + EndPos: 3324, }, }, Use: &ast.NameName{ @@ -9047,8 +8695,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3574, - EndPos: 3577, + StartPos: 3321, + EndPos: 3324, }, }, Parts: []ast.Vertex{ @@ -9057,8 +8705,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3574, - EndPos: 3577, + StartPos: 3321, + EndPos: 3324, }, }, Value: []byte("Foo"), @@ -9071,8 +8719,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3579, - EndPos: 3582, + StartPos: 3326, + EndPos: 3329, }, }, Use: &ast.NameName{ @@ -9080,8 +8728,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3579, - EndPos: 3582, + StartPos: 3326, + EndPos: 3329, }, }, Parts: []ast.Vertex{ @@ -9090,8 +8738,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3579, - EndPos: 3582, + StartPos: 3326, + EndPos: 3329, }, }, Value: []byte("Bar"), @@ -9106,8 +8754,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3586, - EndPos: 3606, + StartPos: 3331, + EndPos: 3351, }, }, Uses: []ast.Vertex{ @@ -9116,8 +8764,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3590, - EndPos: 3593, + StartPos: 3335, + EndPos: 3338, }, }, Use: &ast.NameName{ @@ -9125,8 +8773,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3590, - EndPos: 3593, + StartPos: 3335, + EndPos: 3338, }, }, Parts: []ast.Vertex{ @@ -9135,8 +8783,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3590, - EndPos: 3593, + StartPos: 3335, + EndPos: 3338, }, }, Value: []byte("Foo"), @@ -9149,8 +8797,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3595, - EndPos: 3605, + StartPos: 3340, + EndPos: 3350, }, }, Use: &ast.NameName{ @@ -9158,8 +8806,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3595, - EndPos: 3598, + StartPos: 3340, + EndPos: 3343, }, }, Parts: []ast.Vertex{ @@ -9168,8 +8816,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3595, - EndPos: 3598, + StartPos: 3340, + EndPos: 3343, }, }, Value: []byte("Bar"), @@ -9181,8 +8829,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 158, EndLine: 158, - StartPos: 3602, - EndPos: 3605, + StartPos: 3347, + EndPos: 3350, }, }, Value: []byte("Baz"), @@ -9195,8 +8843,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3609, - EndPos: 3632, + StartPos: 3352, + EndPos: 3375, }, }, UseType: &ast.Identifier{ @@ -9204,8 +8852,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3613, - EndPos: 3621, + StartPos: 3356, + EndPos: 3364, }, }, Value: []byte("function"), @@ -9216,8 +8864,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3622, - EndPos: 3625, + StartPos: 3365, + EndPos: 3368, }, }, Use: &ast.NameName{ @@ -9225,8 +8873,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3622, - EndPos: 3625, + StartPos: 3365, + EndPos: 3368, }, }, Parts: []ast.Vertex{ @@ -9235,8 +8883,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3622, - EndPos: 3625, + StartPos: 3365, + EndPos: 3368, }, }, Value: []byte("Foo"), @@ -9249,8 +8897,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3628, - EndPos: 3631, + StartPos: 3371, + EndPos: 3374, }, }, Use: &ast.NameName{ @@ -9258,8 +8906,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3628, - EndPos: 3631, + StartPos: 3371, + EndPos: 3374, }, }, Parts: []ast.Vertex{ @@ -9268,8 +8916,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3628, - EndPos: 3631, + StartPos: 3371, + EndPos: 3374, }, }, Value: []byte("Bar"), @@ -9284,8 +8932,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3635, - EndPos: 3672, + StartPos: 3376, + EndPos: 3413, }, }, UseType: &ast.Identifier{ @@ -9293,8 +8941,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3639, - EndPos: 3647, + StartPos: 3380, + EndPos: 3388, }, }, Value: []byte("function"), @@ -9305,8 +8953,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3648, - EndPos: 3658, + StartPos: 3389, + EndPos: 3399, }, }, Use: &ast.NameName{ @@ -9314,8 +8962,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3648, - EndPos: 3651, + StartPos: 3389, + EndPos: 3392, }, }, Parts: []ast.Vertex{ @@ -9324,8 +8972,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3648, - EndPos: 3651, + StartPos: 3389, + EndPos: 3392, }, }, Value: []byte("Foo"), @@ -9337,8 +8985,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3655, - EndPos: 3658, + StartPos: 3396, + EndPos: 3399, }, }, Value: []byte("foo"), @@ -9349,8 +8997,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3661, - EndPos: 3671, + StartPos: 3402, + EndPos: 3412, }, }, Use: &ast.NameName{ @@ -9358,8 +9006,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3661, - EndPos: 3664, + StartPos: 3402, + EndPos: 3405, }, }, Parts: []ast.Vertex{ @@ -9368,8 +9016,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3661, - EndPos: 3664, + StartPos: 3402, + EndPos: 3405, }, }, Value: []byte("Bar"), @@ -9381,8 +9029,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3668, - EndPos: 3671, + StartPos: 3409, + EndPos: 3412, }, }, Value: []byte("bar"), @@ -9395,8 +9043,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3675, - EndPos: 3695, + StartPos: 3414, + EndPos: 3434, }, }, UseType: &ast.Identifier{ @@ -9404,8 +9052,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3679, - EndPos: 3684, + StartPos: 3418, + EndPos: 3423, }, }, Value: []byte("const"), @@ -9416,8 +9064,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3685, - EndPos: 3688, + StartPos: 3424, + EndPos: 3427, }, }, Use: &ast.NameName{ @@ -9425,8 +9073,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3685, - EndPos: 3688, + StartPos: 3424, + EndPos: 3427, }, }, Parts: []ast.Vertex{ @@ -9435,8 +9083,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3685, - EndPos: 3688, + StartPos: 3424, + EndPos: 3427, }, }, Value: []byte("Foo"), @@ -9449,8 +9097,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3691, - EndPos: 3694, + StartPos: 3430, + EndPos: 3433, }, }, Use: &ast.NameName{ @@ -9458,8 +9106,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3691, - EndPos: 3694, + StartPos: 3430, + EndPos: 3433, }, }, Parts: []ast.Vertex{ @@ -9468,8 +9116,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3691, - EndPos: 3694, + StartPos: 3430, + EndPos: 3433, }, }, Value: []byte("Bar"), @@ -9484,8 +9132,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3698, - EndPos: 3732, + StartPos: 3435, + EndPos: 3469, }, }, UseType: &ast.Identifier{ @@ -9493,8 +9141,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3702, - EndPos: 3707, + StartPos: 3439, + EndPos: 3444, }, }, Value: []byte("const"), @@ -9505,8 +9153,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3708, - EndPos: 3718, + StartPos: 3445, + EndPos: 3455, }, }, Use: &ast.NameName{ @@ -9514,8 +9162,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3708, - EndPos: 3711, + StartPos: 3445, + EndPos: 3448, }, }, Parts: []ast.Vertex{ @@ -9524,8 +9172,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3708, - EndPos: 3711, + StartPos: 3445, + EndPos: 3448, }, }, Value: []byte("Foo"), @@ -9537,8 +9185,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3715, - EndPos: 3718, + StartPos: 3452, + EndPos: 3455, }, }, Value: []byte("foo"), @@ -9549,8 +9197,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3721, - EndPos: 3731, + StartPos: 3458, + EndPos: 3468, }, }, Use: &ast.NameName{ @@ -9558,8 +9206,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3721, - EndPos: 3724, + StartPos: 3458, + EndPos: 3461, }, }, Parts: []ast.Vertex{ @@ -9568,8 +9216,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3721, - EndPos: 3724, + StartPos: 3458, + EndPos: 3461, }, }, Value: []byte("Bar"), @@ -9581,8 +9229,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3728, - EndPos: 3731, + StartPos: 3465, + EndPos: 3468, }, }, Value: []byte("bar"), @@ -9595,8 +9243,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3736, - EndPos: 3742, + StartPos: 3471, + EndPos: 3477, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -9604,8 +9252,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3736, - EndPos: 3741, + StartPos: 3471, + EndPos: 3476, }, }, Var: &ast.ExprVariable{ @@ -9613,8 +9261,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3736, - EndPos: 3738, + StartPos: 3471, + EndPos: 3473, }, }, VarName: &ast.Identifier{ @@ -9622,8 +9270,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3736, - EndPos: 3738, + StartPos: 3471, + EndPos: 3473, }, }, Value: []byte("$a"), @@ -9634,8 +9282,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3739, - EndPos: 3740, + StartPos: 3474, + EndPos: 3475, }, }, Value: []byte("1"), @@ -9647,8 +9295,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3745, - EndPos: 3754, + StartPos: 3478, + EndPos: 3487, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -9656,8 +9304,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3745, - EndPos: 3753, + StartPos: 3478, + EndPos: 3486, }, }, Var: &ast.ExprArrayDimFetch{ @@ -9665,8 +9313,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3745, - EndPos: 3750, + StartPos: 3478, + EndPos: 3483, }, }, Var: &ast.ExprVariable{ @@ -9674,8 +9322,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3745, - EndPos: 3747, + StartPos: 3478, + EndPos: 3480, }, }, VarName: &ast.Identifier{ @@ -9683,8 +9331,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3745, - EndPos: 3747, + StartPos: 3478, + EndPos: 3480, }, }, Value: []byte("$a"), @@ -9695,8 +9343,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3748, - EndPos: 3749, + StartPos: 3481, + EndPos: 3482, }, }, Value: []byte("1"), @@ -9707,8 +9355,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3751, - EndPos: 3752, + StartPos: 3484, + EndPos: 3485, }, }, Value: []byte("2"), @@ -9720,8 +9368,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3757, - EndPos: 3765, + StartPos: 3488, + EndPos: 3496, }, }, Expr: &ast.ExprArray{ @@ -9729,8 +9377,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3757, - EndPos: 3764, + StartPos: 3488, + EndPos: 3495, }, }, Items: []ast.Vertex{}, @@ -9741,8 +9389,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3768, - EndPos: 3777, + StartPos: 3497, + EndPos: 3506, }, }, Expr: &ast.ExprArray{ @@ -9750,8 +9398,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3768, - EndPos: 3776, + StartPos: 3497, + EndPos: 3505, }, }, Items: []ast.Vertex{ @@ -9760,8 +9408,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3774, - EndPos: 3775, + StartPos: 3503, + EndPos: 3504, }, }, Val: &ast.ScalarLnumber{ @@ -9769,8 +9417,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3774, - EndPos: 3775, + StartPos: 3503, + EndPos: 3504, }, }, Value: []byte("1"), @@ -9784,8 +9432,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3780, - EndPos: 3798, + StartPos: 3507, + EndPos: 3525, }, }, Expr: &ast.ExprArray{ @@ -9793,8 +9441,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3780, - EndPos: 3797, + StartPos: 3507, + EndPos: 3524, }, }, Items: []ast.Vertex{ @@ -9803,8 +9451,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3786, - EndPos: 3790, + StartPos: 3513, + EndPos: 3517, }, }, Key: &ast.ScalarLnumber{ @@ -9812,8 +9460,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3786, - EndPos: 3787, + StartPos: 3513, + EndPos: 3514, }, }, Value: []byte("1"), @@ -9823,8 +9471,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3789, - EndPos: 3790, + StartPos: 3516, + EndPos: 3517, }, }, Value: []byte("1"), @@ -9835,8 +9483,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3792, - EndPos: 3795, + StartPos: 3519, + EndPos: 3522, }, }, Val: &ast.ExprReference{ @@ -9844,8 +9492,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3792, - EndPos: 3795, + StartPos: 3519, + EndPos: 3522, }, }, Var: &ast.ExprVariable{ @@ -9853,8 +9501,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, - EndPos: 3795, + StartPos: 3520, + EndPos: 3522, }, }, VarName: &ast.Identifier{ @@ -9862,8 +9510,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, - EndPos: 3795, + StartPos: 3520, + EndPos: 3522, }, }, Value: []byte("$b"), @@ -9880,8 +9528,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3801, - EndPos: 3816, + StartPos: 3526, + EndPos: 3541, }, }, Expr: &ast.ExprArray{ @@ -9889,8 +9537,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3801, - EndPos: 3815, + StartPos: 3526, + EndPos: 3540, }, }, Items: []ast.Vertex{ @@ -9899,8 +9547,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3807, - EndPos: 3814, + StartPos: 3532, + EndPos: 3539, }, }, Key: &ast.ScalarLnumber{ @@ -9908,8 +9556,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3807, - EndPos: 3808, + StartPos: 3532, + EndPos: 3533, }, }, Value: []byte("3"), @@ -9919,8 +9567,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3811, - EndPos: 3814, + StartPos: 3536, + EndPos: 3539, }, }, Var: &ast.ExprVariable{ @@ -9928,8 +9576,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3812, - EndPos: 3814, + StartPos: 3537, + EndPos: 3539, }, }, VarName: &ast.Identifier{ @@ -9937,8 +9585,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3812, - EndPos: 3814, + StartPos: 3537, + EndPos: 3539, }, }, Value: []byte("$b"), @@ -9954,8 +9602,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3819, - EndPos: 3848, + StartPos: 3542, + EndPos: 3571, }, }, Expr: &ast.ExprArray{ @@ -9963,8 +9611,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3819, - EndPos: 3847, + StartPos: 3542, + EndPos: 3570, }, }, Items: []ast.Vertex{ @@ -9973,8 +9621,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3825, - EndPos: 3828, + StartPos: 3548, + EndPos: 3551, }, }, Val: &ast.ExprReference{ @@ -9982,8 +9630,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3825, - EndPos: 3828, + StartPos: 3548, + EndPos: 3551, }, }, Var: &ast.ExprVariable{ @@ -9991,8 +9639,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3826, - EndPos: 3828, + StartPos: 3549, + EndPos: 3551, }, }, VarName: &ast.Identifier{ @@ -10000,8 +9648,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3826, - EndPos: 3828, + StartPos: 3549, + EndPos: 3551, }, }, Value: []byte("$b"), @@ -10014,8 +9662,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3830, - EndPos: 3834, + StartPos: 3553, + EndPos: 3557, }, }, Key: &ast.ScalarLnumber{ @@ -10023,8 +9671,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3830, - EndPos: 3831, + StartPos: 3553, + EndPos: 3554, }, }, Value: []byte("1"), @@ -10034,8 +9682,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3833, - EndPos: 3834, + StartPos: 3556, + EndPos: 3557, }, }, Value: []byte("1"), @@ -10046,8 +9694,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3836, - EndPos: 3837, + StartPos: 3559, + EndPos: 3560, }, }, Val: &ast.ScalarLnumber{ @@ -10055,8 +9703,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3836, - EndPos: 3837, + StartPos: 3559, + EndPos: 3560, }, }, Value: []byte("1"), @@ -10067,8 +9715,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3839, - EndPos: 3846, + StartPos: 3562, + EndPos: 3569, }, }, Key: &ast.ScalarLnumber{ @@ -10076,8 +9724,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3839, - EndPos: 3840, + StartPos: 3562, + EndPos: 3563, }, }, Value: []byte("3"), @@ -10087,8 +9735,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3843, - EndPos: 3846, + StartPos: 3566, + EndPos: 3569, }, }, Var: &ast.ExprVariable{ @@ -10096,8 +9744,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3844, - EndPos: 3846, + StartPos: 3567, + EndPos: 3569, }, }, VarName: &ast.Identifier{ @@ -10105,8 +9753,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 170, EndLine: 170, - StartPos: 3844, - EndPos: 3846, + StartPos: 3567, + EndPos: 3569, }, }, Value: []byte("$b"), @@ -10122,8 +9770,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3851, - EndPos: 3855, + StartPos: 3572, + EndPos: 3576, }, }, Expr: &ast.ExprBitwiseNot{ @@ -10131,8 +9779,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3851, - EndPos: 3854, + StartPos: 3572, + EndPos: 3575, }, }, Expr: &ast.ExprVariable{ @@ -10140,8 +9788,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3852, - EndPos: 3854, + StartPos: 3573, + EndPos: 3575, }, }, VarName: &ast.Identifier{ @@ -10149,8 +9797,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3852, - EndPos: 3854, + StartPos: 3573, + EndPos: 3575, }, }, Value: []byte("$a"), @@ -10163,8 +9811,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3858, - EndPos: 3862, + StartPos: 3577, + EndPos: 3581, }, }, Expr: &ast.ExprBooleanNot{ @@ -10172,8 +9820,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3858, - EndPos: 3861, + StartPos: 3577, + EndPos: 3580, }, }, Expr: &ast.ExprVariable{ @@ -10181,8 +9829,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3859, - EndPos: 3861, + StartPos: 3578, + EndPos: 3580, }, }, VarName: &ast.Identifier{ @@ -10190,8 +9838,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3859, - EndPos: 3861, + StartPos: 3578, + EndPos: 3580, }, }, Value: []byte("$a"), @@ -10204,8 +9852,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3866, - EndPos: 3875, + StartPos: 3583, + EndPos: 3592, }, }, Expr: &ast.ExprClassConstFetch{ @@ -10213,8 +9861,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3866, - EndPos: 3874, + StartPos: 3583, + EndPos: 3591, }, }, Class: &ast.NameName{ @@ -10222,8 +9870,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3866, - EndPos: 3869, + StartPos: 3583, + EndPos: 3586, }, }, Parts: []ast.Vertex{ @@ -10232,8 +9880,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3866, - EndPos: 3869, + StartPos: 3583, + EndPos: 3586, }, }, Value: []byte("Foo"), @@ -10245,8 +9893,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3871, - EndPos: 3874, + StartPos: 3588, + EndPos: 3591, }, }, Value: []byte("Bar"), @@ -10258,8 +9906,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3878, - EndPos: 3888, + StartPos: 3593, + EndPos: 3603, }, }, Expr: &ast.ExprClone{ @@ -10267,8 +9915,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3878, - EndPos: 3886, + StartPos: 3593, + EndPos: 3601, }, }, Expr: &ast.ExprVariable{ @@ -10276,8 +9924,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3884, - EndPos: 3886, + StartPos: 3599, + EndPos: 3601, }, }, VarName: &ast.Identifier{ @@ -10285,8 +9933,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3884, - EndPos: 3886, + StartPos: 3599, + EndPos: 3601, }, }, Value: []byte("$a"), @@ -10299,8 +9947,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3891, - EndPos: 3900, + StartPos: 3604, + EndPos: 3613, }, }, Expr: &ast.ExprClone{ @@ -10308,8 +9956,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3891, - EndPos: 3899, + StartPos: 3604, + EndPos: 3612, }, }, Expr: &ast.ExprVariable{ @@ -10317,8 +9965,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3897, - EndPos: 3899, + StartPos: 3610, + EndPos: 3612, }, }, VarName: &ast.Identifier{ @@ -10326,8 +9974,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 176, EndLine: 176, - StartPos: 3897, - EndPos: 3899, + StartPos: 3610, + EndPos: 3612, }, }, Value: []byte("$a"), @@ -10340,8 +9988,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3903, - EndPos: 3916, + StartPos: 3614, + EndPos: 3627, }, }, Expr: &ast.ExprClosure{ @@ -10349,13 +9997,11 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3903, - EndPos: 3915, + StartPos: 3614, + EndPos: 3626, }, }, - Static: false, - ReturnsRef: false, - Stmts: []ast.Vertex{}, + Stmts: []ast.Vertex{}, }, }, &ast.StmtExpression{ @@ -10363,8 +10009,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3919, - EndPos: 3953, + StartPos: 3628, + EndPos: 3662, }, }, Expr: &ast.ExprClosure{ @@ -10372,31 +10018,27 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3919, - EndPos: 3952, + StartPos: 3628, + EndPos: 3661, }, }, - ReturnsRef: false, - Static: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3928, - EndPos: 3930, + StartPos: 3637, + EndPos: 3639, }, }, - ByRef: false, - Variadic: false, Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3928, - EndPos: 3930, + StartPos: 3637, + EndPos: 3639, }, }, VarName: &ast.Identifier{ @@ -10404,8 +10046,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3928, - EndPos: 3930, + StartPos: 3637, + EndPos: 3639, }, }, Value: []byte("$a"), @@ -10417,19 +10059,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3932, - EndPos: 3934, + StartPos: 3641, + EndPos: 3643, }, }, - Variadic: false, - ByRef: false, Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3932, - EndPos: 3934, + StartPos: 3641, + EndPos: 3643, }, }, VarName: &ast.Identifier{ @@ -10437,8 +10077,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3932, - EndPos: 3934, + StartPos: 3641, + EndPos: 3643, }, }, Value: []byte("$b"), @@ -10451,8 +10091,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3936, - EndPos: 3949, + StartPos: 3645, + EndPos: 3658, }, }, Uses: []ast.Vertex{ @@ -10461,8 +10101,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3941, - EndPos: 3943, + StartPos: 3650, + EndPos: 3652, }, }, VarName: &ast.Identifier{ @@ -10470,8 +10110,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3941, - EndPos: 3943, + StartPos: 3650, + EndPos: 3652, }, }, Value: []byte("$c"), @@ -10482,8 +10122,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3945, - EndPos: 3948, + StartPos: 3654, + EndPos: 3657, }, }, Var: &ast.ExprVariable{ @@ -10491,8 +10131,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3946, - EndPos: 3948, + StartPos: 3655, + EndPos: 3657, }, }, VarName: &ast.Identifier{ @@ -10500,8 +10140,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3946, - EndPos: 3948, + StartPos: 3655, + EndPos: 3657, }, }, Value: []byte("$d"), @@ -10518,8 +10158,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3956, - EndPos: 3990, + StartPos: 3663, + EndPos: 3697, }, }, Expr: &ast.ExprClosure{ @@ -10527,31 +10167,27 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3956, - EndPos: 3989, + StartPos: 3663, + EndPos: 3696, }, }, - ReturnsRef: false, - Static: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3965, - EndPos: 3967, + StartPos: 3672, + EndPos: 3674, }, }, - ByRef: false, - Variadic: false, Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3965, - EndPos: 3967, + StartPos: 3672, + EndPos: 3674, }, }, VarName: &ast.Identifier{ @@ -10559,8 +10195,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3965, - EndPos: 3967, + StartPos: 3672, + EndPos: 3674, }, }, Value: []byte("$a"), @@ -10572,19 +10208,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3969, - EndPos: 3971, + StartPos: 3676, + EndPos: 3678, }, }, - ByRef: false, - Variadic: false, Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3969, - EndPos: 3971, + StartPos: 3676, + EndPos: 3678, }, }, VarName: &ast.Identifier{ @@ -10592,8 +10226,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3969, - EndPos: 3971, + StartPos: 3676, + EndPos: 3678, }, }, Value: []byte("$b"), @@ -10606,8 +10240,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3973, - EndPos: 3986, + StartPos: 3680, + EndPos: 3693, }, }, Uses: []ast.Vertex{ @@ -10616,8 +10250,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3978, - EndPos: 3981, + StartPos: 3685, + EndPos: 3688, }, }, Var: &ast.ExprVariable{ @@ -10625,8 +10259,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3979, - EndPos: 3981, + StartPos: 3686, + EndPos: 3688, }, }, VarName: &ast.Identifier{ @@ -10634,8 +10268,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3979, - EndPos: 3981, + StartPos: 3686, + EndPos: 3688, }, }, Value: []byte("$c"), @@ -10647,8 +10281,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3983, - EndPos: 3985, + StartPos: 3690, + EndPos: 3692, }, }, VarName: &ast.Identifier{ @@ -10656,8 +10290,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 3983, - EndPos: 3985, + StartPos: 3690, + EndPos: 3692, }, }, Value: []byte("$d"), @@ -10673,8 +10307,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 3993, - EndPos: 4007, + StartPos: 3698, + EndPos: 3712, }, }, Expr: &ast.ExprClosure{ @@ -10682,13 +10316,11 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 3993, - EndPos: 4006, + StartPos: 3698, + EndPos: 3711, }, }, - ReturnsRef: false, - Static: false, - Stmts: []ast.Vertex{}, + Stmts: []ast.Vertex{}, }, }, &ast.StmtExpression{ @@ -10696,8 +10328,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4010, - EndPos: 4014, + StartPos: 3713, + EndPos: 3717, }, }, Expr: &ast.ExprConstFetch{ @@ -10705,8 +10337,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4010, - EndPos: 4013, + StartPos: 3713, + EndPos: 3716, }, }, Const: &ast.NameName{ @@ -10714,8 +10346,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4010, - EndPos: 4013, + StartPos: 3713, + EndPos: 3716, }, }, Parts: []ast.Vertex{ @@ -10724,8 +10356,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4010, - EndPos: 4013, + StartPos: 3713, + EndPos: 3716, }, }, Value: []byte("foo"), @@ -10739,8 +10371,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4017, - EndPos: 4031, + StartPos: 3718, + EndPos: 3732, }, }, Expr: &ast.ExprConstFetch{ @@ -10748,8 +10380,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4017, - EndPos: 4030, + StartPos: 3718, + EndPos: 3731, }, }, Const: &ast.NameRelative{ @@ -10757,8 +10389,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4017, - EndPos: 4030, + StartPos: 3718, + EndPos: 3731, }, }, Parts: []ast.Vertex{ @@ -10767,8 +10399,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4027, - EndPos: 4030, + StartPos: 3728, + EndPos: 3731, }, }, Value: []byte("foo"), @@ -10782,8 +10414,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4034, - EndPos: 4039, + StartPos: 3733, + EndPos: 3738, }, }, Expr: &ast.ExprConstFetch{ @@ -10791,8 +10423,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4034, - EndPos: 4038, + StartPos: 3733, + EndPos: 3737, }, }, Const: &ast.NameFullyQualified{ @@ -10800,8 +10432,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4034, - EndPos: 4038, + StartPos: 3733, + EndPos: 3737, }, }, Parts: []ast.Vertex{ @@ -10810,8 +10442,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4035, - EndPos: 4038, + StartPos: 3734, + EndPos: 3737, }, }, Value: []byte("foo"), @@ -10825,8 +10457,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4043, - EndPos: 4053, + StartPos: 3740, + EndPos: 3750, }, }, Expr: &ast.ExprEmpty{ @@ -10834,8 +10466,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4043, - EndPos: 4052, + StartPos: 3740, + EndPos: 3749, }, }, Expr: &ast.ExprVariable{ @@ -10843,8 +10475,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4049, - EndPos: 4051, + StartPos: 3746, + EndPos: 3748, }, }, VarName: &ast.Identifier{ @@ -10852,8 +10484,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4049, - EndPos: 4051, + StartPos: 3746, + EndPos: 3748, }, }, Value: []byte("$a"), @@ -10866,8 +10498,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4056, - EndPos: 4067, + StartPos: 3751, + EndPos: 3762, }, }, Expr: &ast.ExprEmpty{ @@ -10875,8 +10507,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4056, - EndPos: 4066, + StartPos: 3751, + EndPos: 3761, }, }, Expr: &ast.ExprConstFetch{ @@ -10884,8 +10516,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4062, - EndPos: 4065, + StartPos: 3757, + EndPos: 3760, }, }, Const: &ast.NameName{ @@ -10893,8 +10525,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4062, - EndPos: 4065, + StartPos: 3757, + EndPos: 3760, }, }, Parts: []ast.Vertex{ @@ -10903,8 +10535,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4062, - EndPos: 4065, + StartPos: 3757, + EndPos: 3760, }, }, Value: []byte("Foo"), @@ -10919,8 +10551,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4070, - EndPos: 4074, + StartPos: 3763, + EndPos: 3767, }, }, Expr: &ast.ExprErrorSuppress{ @@ -10928,8 +10560,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4070, - EndPos: 4073, + StartPos: 3763, + EndPos: 3766, }, }, Expr: &ast.ExprVariable{ @@ -10937,8 +10569,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4071, - EndPos: 4073, + StartPos: 3764, + EndPos: 3766, }, }, VarName: &ast.Identifier{ @@ -10946,8 +10578,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4071, - EndPos: 4073, + StartPos: 3764, + EndPos: 3766, }, }, Value: []byte("$a"), @@ -10960,8 +10592,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4077, - EndPos: 4086, + StartPos: 3768, + EndPos: 3777, }, }, Expr: &ast.ExprEval{ @@ -10969,8 +10601,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4077, - EndPos: 4085, + StartPos: 3768, + EndPos: 3776, }, }, Expr: &ast.ExprVariable{ @@ -10978,8 +10610,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4082, - EndPos: 4084, + StartPos: 3773, + EndPos: 3775, }, }, VarName: &ast.Identifier{ @@ -10987,8 +10619,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4082, - EndPos: 4084, + StartPos: 3773, + EndPos: 3775, }, }, Value: []byte("$a"), @@ -11001,8 +10633,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4089, - EndPos: 4094, + StartPos: 3778, + EndPos: 3783, }, }, Expr: &ast.ExprExit{ @@ -11010,11 +10642,10 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4089, - EndPos: 4093, + StartPos: 3778, + EndPos: 3782, }, }, - Die: false, }, }, &ast.StmtExpression{ @@ -11022,8 +10653,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4097, - EndPos: 4106, + StartPos: 3784, + EndPos: 3793, }, }, Expr: &ast.ExprExit{ @@ -11031,18 +10662,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4097, - EndPos: 4105, + StartPos: 3784, + EndPos: 3792, }, }, - Die: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4102, - EndPos: 4104, + StartPos: 3789, + EndPos: 3791, }, }, VarName: &ast.Identifier{ @@ -11050,8 +10680,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4102, - EndPos: 4104, + StartPos: 3789, + EndPos: 3791, }, }, Value: []byte("$a"), @@ -11064,8 +10694,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4109, - EndPos: 4115, + StartPos: 3794, + EndPos: 3800, }, }, Expr: &ast.ExprExit{ @@ -11073,8 +10703,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4109, - EndPos: 4114, + StartPos: 3794, + EndPos: 3799, }, }, Die: true, @@ -11085,8 +10715,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4118, - EndPos: 4126, + StartPos: 3801, + EndPos: 3809, }, }, Expr: &ast.ExprExit{ @@ -11094,8 +10724,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4118, - EndPos: 4125, + StartPos: 3801, + EndPos: 3808, }, }, Die: true, @@ -11104,8 +10734,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4122, - EndPos: 4124, + StartPos: 3805, + EndPos: 3807, }, }, VarName: &ast.Identifier{ @@ -11113,8 +10743,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4122, - EndPos: 4124, + StartPos: 3805, + EndPos: 3807, }, }, Value: []byte("$a"), @@ -11127,8 +10757,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4129, - EndPos: 4135, + StartPos: 3810, + EndPos: 3816, }, }, Expr: &ast.ExprFunctionCall{ @@ -11136,8 +10766,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4129, - EndPos: 4134, + StartPos: 3810, + EndPos: 3815, }, }, Function: &ast.NameName{ @@ -11145,8 +10775,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4129, - EndPos: 4132, + StartPos: 3810, + EndPos: 3813, }, }, Parts: []ast.Vertex{ @@ -11155,8 +10785,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4129, - EndPos: 4132, + StartPos: 3810, + EndPos: 3813, }, }, Value: []byte("foo"), @@ -11168,8 +10798,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4132, - EndPos: 4134, + StartPos: 3813, + EndPos: 3815, }, }, }, @@ -11180,8 +10810,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4138, - EndPos: 4157, + StartPos: 3817, + EndPos: 3836, }, }, Expr: &ast.ExprFunctionCall{ @@ -11189,8 +10819,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4138, - EndPos: 4156, + StartPos: 3817, + EndPos: 3835, }, }, Function: &ast.NameRelative{ @@ -11198,8 +10828,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4138, - EndPos: 4151, + StartPos: 3817, + EndPos: 3830, }, }, Parts: []ast.Vertex{ @@ -11208,8 +10838,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4148, - EndPos: 4151, + StartPos: 3827, + EndPos: 3830, }, }, Value: []byte("foo"), @@ -11221,8 +10851,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4151, - EndPos: 4156, + StartPos: 3830, + EndPos: 3835, }, }, Arguments: []ast.Vertex{ @@ -11231,19 +10861,18 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4153, - EndPos: 4155, + StartPos: 3832, + EndPos: 3834, }, }, - Variadic: false, IsReference: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4153, - EndPos: 4155, + StartPos: 3832, + EndPos: 3834, }, }, VarName: &ast.Identifier{ @@ -11251,8 +10880,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4153, - EndPos: 4155, + StartPos: 3832, + EndPos: 3834, }, }, Value: []byte("$a"), @@ -11268,8 +10897,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4160, - EndPos: 4169, + StartPos: 3837, + EndPos: 3846, }, }, Expr: &ast.ExprFunctionCall{ @@ -11277,8 +10906,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4160, - EndPos: 4168, + StartPos: 3837, + EndPos: 3845, }, }, Function: &ast.NameFullyQualified{ @@ -11286,8 +10915,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4160, - EndPos: 4164, + StartPos: 3837, + EndPos: 3841, }, }, Parts: []ast.Vertex{ @@ -11296,8 +10925,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4161, - EndPos: 4164, + StartPos: 3838, + EndPos: 3841, }, }, Value: []byte("foo"), @@ -11309,8 +10938,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4164, - EndPos: 4168, + StartPos: 3841, + EndPos: 3845, }, }, Arguments: []ast.Vertex{ @@ -11319,19 +10948,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4165, - EndPos: 4167, + StartPos: 3842, + EndPos: 3844, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprShortArray{ Node: ast.Node{ Position: &position.Position{ StartLine: 195, EndLine: 195, - StartPos: 4165, - EndPos: 4167, + StartPos: 3842, + EndPos: 3844, }, }, Items: []ast.Vertex{}, @@ -11346,8 +10973,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4172, - EndPos: 4187, + StartPos: 3847, + EndPos: 3862, }, }, Expr: &ast.ExprFunctionCall{ @@ -11355,8 +10982,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4172, - EndPos: 4186, + StartPos: 3847, + EndPos: 3861, }, }, Function: &ast.ExprVariable{ @@ -11364,8 +10991,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4172, - EndPos: 4176, + StartPos: 3847, + EndPos: 3851, }, }, VarName: &ast.Identifier{ @@ -11373,8 +11000,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4172, - EndPos: 4176, + StartPos: 3847, + EndPos: 3851, }, }, Value: []byte("$foo"), @@ -11385,8 +11012,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4176, - EndPos: 4186, + StartPos: 3851, + EndPos: 3861, }, }, Arguments: []ast.Vertex{ @@ -11395,19 +11022,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4177, - EndPos: 4185, + StartPos: 3852, + EndPos: 3860, }, }, - IsReference: false, - Variadic: false, Expr: &ast.ExprYield{ Node: ast.Node{ Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4177, - EndPos: 4185, + StartPos: 3852, + EndPos: 3860, }, }, Value: &ast.ExprVariable{ @@ -11415,8 +11040,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4183, - EndPos: 4185, + StartPos: 3858, + EndPos: 3860, }, }, VarName: &ast.Identifier{ @@ -11424,8 +11049,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4183, - EndPos: 4185, + StartPos: 3858, + EndPos: 3860, }, }, Value: []byte("$a"), @@ -11442,8 +11067,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4191, - EndPos: 4196, + StartPos: 3864, + EndPos: 3869, }, }, Expr: &ast.ExprPostDec{ @@ -11451,8 +11076,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4191, - EndPos: 4195, + StartPos: 3864, + EndPos: 3868, }, }, Var: &ast.ExprVariable{ @@ -11460,8 +11085,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4191, - EndPos: 4193, + StartPos: 3864, + EndPos: 3866, }, }, VarName: &ast.Identifier{ @@ -11469,8 +11094,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4191, - EndPos: 4193, + StartPos: 3864, + EndPos: 3866, }, }, Value: []byte("$a"), @@ -11483,8 +11108,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4199, - EndPos: 4204, + StartPos: 3870, + EndPos: 3875, }, }, Expr: &ast.ExprPostInc{ @@ -11492,8 +11117,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4199, - EndPos: 4203, + StartPos: 3870, + EndPos: 3874, }, }, Var: &ast.ExprVariable{ @@ -11501,8 +11126,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4199, - EndPos: 4201, + StartPos: 3870, + EndPos: 3872, }, }, VarName: &ast.Identifier{ @@ -11510,8 +11135,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4199, - EndPos: 4201, + StartPos: 3870, + EndPos: 3872, }, }, Value: []byte("$a"), @@ -11524,8 +11149,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4207, - EndPos: 4212, + StartPos: 3876, + EndPos: 3881, }, }, Expr: &ast.ExprPreDec{ @@ -11533,8 +11158,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4207, - EndPos: 4211, + StartPos: 3876, + EndPos: 3880, }, }, Var: &ast.ExprVariable{ @@ -11542,8 +11167,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4209, - EndPos: 4211, + StartPos: 3878, + EndPos: 3880, }, }, VarName: &ast.Identifier{ @@ -11551,8 +11176,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4209, - EndPos: 4211, + StartPos: 3878, + EndPos: 3880, }, }, Value: []byte("$a"), @@ -11565,8 +11190,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4215, - EndPos: 4220, + StartPos: 3882, + EndPos: 3887, }, }, Expr: &ast.ExprPreInc{ @@ -11574,8 +11199,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4215, - EndPos: 4219, + StartPos: 3882, + EndPos: 3886, }, }, Var: &ast.ExprVariable{ @@ -11583,8 +11208,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4217, - EndPos: 4219, + StartPos: 3884, + EndPos: 3886, }, }, VarName: &ast.Identifier{ @@ -11592,8 +11217,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4217, - EndPos: 4219, + StartPos: 3884, + EndPos: 3886, }, }, Value: []byte("$a"), @@ -11606,8 +11231,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4224, - EndPos: 4235, + StartPos: 3889, + EndPos: 3900, }, }, Expr: &ast.ExprInclude{ @@ -11615,8 +11240,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4224, - EndPos: 4234, + StartPos: 3889, + EndPos: 3899, }, }, Expr: &ast.ExprVariable{ @@ -11624,8 +11249,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4232, - EndPos: 4234, + StartPos: 3897, + EndPos: 3899, }, }, VarName: &ast.Identifier{ @@ -11633,8 +11258,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4232, - EndPos: 4234, + StartPos: 3897, + EndPos: 3899, }, }, Value: []byte("$a"), @@ -11647,8 +11272,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4238, - EndPos: 4254, + StartPos: 3901, + EndPos: 3917, }, }, Expr: &ast.ExprIncludeOnce{ @@ -11656,8 +11281,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4238, - EndPos: 4253, + StartPos: 3901, + EndPos: 3916, }, }, Expr: &ast.ExprVariable{ @@ -11665,8 +11290,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4251, - EndPos: 4253, + StartPos: 3914, + EndPos: 3916, }, }, VarName: &ast.Identifier{ @@ -11674,8 +11299,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4251, - EndPos: 4253, + StartPos: 3914, + EndPos: 3916, }, }, Value: []byte("$a"), @@ -11688,8 +11313,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4257, - EndPos: 4268, + StartPos: 3918, + EndPos: 3929, }, }, Expr: &ast.ExprRequire{ @@ -11697,8 +11322,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4257, - EndPos: 4267, + StartPos: 3918, + EndPos: 3928, }, }, Expr: &ast.ExprVariable{ @@ -11706,8 +11331,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4265, - EndPos: 4267, + StartPos: 3926, + EndPos: 3928, }, }, VarName: &ast.Identifier{ @@ -11715,8 +11340,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4265, - EndPos: 4267, + StartPos: 3926, + EndPos: 3928, }, }, Value: []byte("$a"), @@ -11729,8 +11354,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4271, - EndPos: 4287, + StartPos: 3930, + EndPos: 3946, }, }, Expr: &ast.ExprRequireOnce{ @@ -11738,8 +11363,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4271, - EndPos: 4286, + StartPos: 3930, + EndPos: 3945, }, }, Expr: &ast.ExprVariable{ @@ -11747,8 +11372,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4284, - EndPos: 4286, + StartPos: 3943, + EndPos: 3945, }, }, VarName: &ast.Identifier{ @@ -11756,8 +11381,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4284, - EndPos: 4286, + StartPos: 3943, + EndPos: 3945, }, }, Value: []byte("$a"), @@ -11770,8 +11395,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4291, - EndPos: 4309, + StartPos: 3948, + EndPos: 3966, }, }, Expr: &ast.ExprInstanceOf{ @@ -11779,8 +11404,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4291, - EndPos: 4308, + StartPos: 3948, + EndPos: 3965, }, }, Expr: &ast.ExprVariable{ @@ -11788,8 +11413,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4291, - EndPos: 4293, + StartPos: 3948, + EndPos: 3950, }, }, VarName: &ast.Identifier{ @@ -11797,8 +11422,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4291, - EndPos: 4293, + StartPos: 3948, + EndPos: 3950, }, }, Value: []byte("$a"), @@ -11809,8 +11434,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4305, - EndPos: 4308, + StartPos: 3962, + EndPos: 3965, }, }, Parts: []ast.Vertex{ @@ -11819,8 +11444,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4305, - EndPos: 4308, + StartPos: 3962, + EndPos: 3965, }, }, Value: []byte("Foo"), @@ -11834,8 +11459,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4312, - EndPos: 4340, + StartPos: 3967, + EndPos: 3995, }, }, Expr: &ast.ExprInstanceOf{ @@ -11843,8 +11468,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4312, - EndPos: 4339, + StartPos: 3967, + EndPos: 3994, }, }, Expr: &ast.ExprVariable{ @@ -11852,8 +11477,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4312, - EndPos: 4314, + StartPos: 3967, + EndPos: 3969, }, }, VarName: &ast.Identifier{ @@ -11861,8 +11486,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4312, - EndPos: 4314, + StartPos: 3967, + EndPos: 3969, }, }, Value: []byte("$a"), @@ -11873,8 +11498,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4326, - EndPos: 4339, + StartPos: 3981, + EndPos: 3994, }, }, Parts: []ast.Vertex{ @@ -11883,8 +11508,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4336, - EndPos: 4339, + StartPos: 3991, + EndPos: 3994, }, }, Value: []byte("Foo"), @@ -11898,8 +11523,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4343, - EndPos: 4362, + StartPos: 3996, + EndPos: 4015, }, }, Expr: &ast.ExprInstanceOf{ @@ -11907,8 +11532,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4343, - EndPos: 4361, + StartPos: 3996, + EndPos: 4014, }, }, Expr: &ast.ExprVariable{ @@ -11916,8 +11541,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4343, - EndPos: 4345, + StartPos: 3996, + EndPos: 3998, }, }, VarName: &ast.Identifier{ @@ -11925,8 +11550,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4343, - EndPos: 4345, + StartPos: 3996, + EndPos: 3998, }, }, Value: []byte("$a"), @@ -11937,8 +11562,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4357, - EndPos: 4361, + StartPos: 4010, + EndPos: 4014, }, }, Parts: []ast.Vertex{ @@ -11947,8 +11572,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4358, - EndPos: 4361, + StartPos: 4011, + EndPos: 4014, }, }, Value: []byte("Foo"), @@ -11962,8 +11587,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4366, - EndPos: 4380, + StartPos: 4017, + EndPos: 4031, }, }, Expr: &ast.ExprIsset{ @@ -11971,8 +11596,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4366, - EndPos: 4379, + StartPos: 4017, + EndPos: 4030, }, }, Vars: []ast.Vertex{ @@ -11981,8 +11606,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4372, - EndPos: 4374, + StartPos: 4023, + EndPos: 4025, }, }, VarName: &ast.Identifier{ @@ -11990,8 +11615,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4372, - EndPos: 4374, + StartPos: 4023, + EndPos: 4025, }, }, Value: []byte("$a"), @@ -12002,8 +11627,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4376, - EndPos: 4378, + StartPos: 4027, + EndPos: 4029, }, }, VarName: &ast.Identifier{ @@ -12011,8 +11636,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 212, EndLine: 212, - StartPos: 4376, - EndPos: 4378, + StartPos: 4027, + EndPos: 4029, }, }, Value: []byte("$b"), @@ -12026,8 +11651,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4383, - EndPos: 4394, + StartPos: 4032, + EndPos: 4043, }, }, Expr: &ast.ExprIsset{ @@ -12035,8 +11660,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4383, - EndPos: 4393, + StartPos: 4032, + EndPos: 4042, }, }, Vars: []ast.Vertex{ @@ -12045,8 +11670,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4389, - EndPos: 4392, + StartPos: 4038, + EndPos: 4041, }, }, Const: &ast.NameName{ @@ -12054,8 +11679,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4389, - EndPos: 4392, + StartPos: 4038, + EndPos: 4041, }, }, Parts: []ast.Vertex{ @@ -12064,8 +11689,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4389, - EndPos: 4392, + StartPos: 4038, + EndPos: 4041, }, }, Value: []byte("Foo"), @@ -12081,8 +11706,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4397, - EndPos: 4409, + StartPos: 4044, + EndPos: 4056, }, }, Expr: &ast.ExprAssign{ @@ -12090,8 +11715,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4397, - EndPos: 4408, + StartPos: 4044, + EndPos: 4055, }, }, Var: &ast.ExprList{ @@ -12099,8 +11724,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4397, - EndPos: 4403, + StartPos: 4044, + EndPos: 4050, }, }, Items: []ast.Vertex{}, @@ -12110,8 +11735,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4406, - EndPos: 4408, + StartPos: 4053, + EndPos: 4055, }, }, VarName: &ast.Identifier{ @@ -12119,8 +11744,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4406, - EndPos: 4408, + StartPos: 4053, + EndPos: 4055, }, }, Value: []byte("$b"), @@ -12133,8 +11758,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4412, - EndPos: 4430, + StartPos: 4057, + EndPos: 4075, }, }, Expr: &ast.ExprAssign{ @@ -12142,8 +11767,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4412, - EndPos: 4429, + StartPos: 4057, + EndPos: 4074, }, }, Var: &ast.ExprList{ @@ -12151,8 +11776,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4412, - EndPos: 4424, + StartPos: 4057, + EndPos: 4069, }, }, Items: []ast.Vertex{ @@ -12161,8 +11786,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4417, - EndPos: 4419, + StartPos: 4062, + EndPos: 4064, }, }, Val: &ast.ExprVariable{ @@ -12170,8 +11795,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4417, - EndPos: 4419, + StartPos: 4062, + EndPos: 4064, }, }, VarName: &ast.Identifier{ @@ -12179,8 +11804,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4417, - EndPos: 4419, + StartPos: 4062, + EndPos: 4064, }, }, Value: []byte("$a"), @@ -12192,8 +11817,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4421, - EndPos: 4423, + StartPos: 4066, + EndPos: 4068, }, }, Val: &ast.ExprVariable{ @@ -12201,8 +11826,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4421, - EndPos: 4423, + StartPos: 4066, + EndPos: 4068, }, }, VarName: &ast.Identifier{ @@ -12210,8 +11835,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4421, - EndPos: 4423, + StartPos: 4066, + EndPos: 4068, }, }, Value: []byte("$b"), @@ -12225,8 +11850,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4427, - EndPos: 4429, + StartPos: 4072, + EndPos: 4074, }, }, VarName: &ast.Identifier{ @@ -12234,8 +11859,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4427, - EndPos: 4429, + StartPos: 4072, + EndPos: 4074, }, }, Value: []byte("$b"), @@ -12248,8 +11873,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4433, - EndPos: 4449, + StartPos: 4076, + EndPos: 4092, }, }, Expr: &ast.ExprAssign{ @@ -12257,8 +11882,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4433, - EndPos: 4448, + StartPos: 4076, + EndPos: 4091, }, }, Var: &ast.ExprList{ @@ -12266,8 +11891,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4433, - EndPos: 4443, + StartPos: 4076, + EndPos: 4086, }, }, Items: []ast.Vertex{ @@ -12276,8 +11901,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4438, - EndPos: 4442, + StartPos: 4081, + EndPos: 4085, }, }, Val: &ast.ExprArrayDimFetch{ @@ -12285,8 +11910,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4438, - EndPos: 4442, + StartPos: 4081, + EndPos: 4085, }, }, Var: &ast.ExprVariable{ @@ -12294,8 +11919,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4438, - EndPos: 4440, + StartPos: 4081, + EndPos: 4083, }, }, VarName: &ast.Identifier{ @@ -12303,8 +11928,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4438, - EndPos: 4440, + StartPos: 4081, + EndPos: 4083, }, }, Value: []byte("$a"), @@ -12319,8 +11944,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4446, - EndPos: 4448, + StartPos: 4089, + EndPos: 4091, }, }, VarName: &ast.Identifier{ @@ -12328,8 +11953,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4446, - EndPos: 4448, + StartPos: 4089, + EndPos: 4091, }, }, Value: []byte("$b"), @@ -12342,8 +11967,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4452, - EndPos: 4472, + StartPos: 4093, + EndPos: 4113, }, }, Expr: &ast.ExprAssign{ @@ -12351,8 +11976,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4452, - EndPos: 4471, + StartPos: 4093, + EndPos: 4112, }, }, Var: &ast.ExprList{ @@ -12360,8 +11985,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4452, - EndPos: 4466, + StartPos: 4093, + EndPos: 4107, }, }, Items: []ast.Vertex{ @@ -12370,8 +11995,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4457, - EndPos: 4465, + StartPos: 4098, + EndPos: 4106, }, }, Val: &ast.ExprList{ @@ -12379,8 +12004,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4457, - EndPos: 4465, + StartPos: 4098, + EndPos: 4106, }, }, Items: []ast.Vertex{ @@ -12389,8 +12014,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4462, - EndPos: 4464, + StartPos: 4103, + EndPos: 4105, }, }, Val: &ast.ExprVariable{ @@ -12398,8 +12023,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4462, - EndPos: 4464, + StartPos: 4103, + EndPos: 4105, }, }, VarName: &ast.Identifier{ @@ -12407,8 +12032,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4462, - EndPos: 4464, + StartPos: 4103, + EndPos: 4105, }, }, Value: []byte("$a"), @@ -12425,8 +12050,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4469, - EndPos: 4471, + StartPos: 4110, + EndPos: 4112, }, }, VarName: &ast.Identifier{ @@ -12434,8 +12059,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 217, EndLine: 217, - StartPos: 4469, - EndPos: 4471, + StartPos: 4110, + EndPos: 4112, }, }, Value: []byte("$b"), @@ -12448,8 +12073,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4476, - EndPos: 4486, + StartPos: 4115, + EndPos: 4125, }, }, Expr: &ast.ExprMethodCall{ @@ -12457,8 +12082,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4476, - EndPos: 4485, + StartPos: 4115, + EndPos: 4124, }, }, Var: &ast.ExprVariable{ @@ -12466,8 +12091,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4476, - EndPos: 4478, + StartPos: 4115, + EndPos: 4117, }, }, VarName: &ast.Identifier{ @@ -12475,8 +12100,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4476, - EndPos: 4478, + StartPos: 4115, + EndPos: 4117, }, }, Value: []byte("$a"), @@ -12487,8 +12112,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4480, - EndPos: 4483, + StartPos: 4119, + EndPos: 4122, }, }, Value: []byte("foo"), @@ -12498,8 +12123,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4483, - EndPos: 4485, + StartPos: 4122, + EndPos: 4124, }, }, }, @@ -12510,8 +12135,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4489, - EndPos: 4497, + StartPos: 4126, + EndPos: 4134, }, }, Expr: &ast.ExprNew{ @@ -12519,8 +12144,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4489, - EndPos: 4496, + StartPos: 4126, + EndPos: 4133, }, }, Class: &ast.NameName{ @@ -12528,8 +12153,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4493, - EndPos: 4496, + StartPos: 4130, + EndPos: 4133, }, }, Parts: []ast.Vertex{ @@ -12538,8 +12163,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4493, - EndPos: 4496, + StartPos: 4130, + EndPos: 4133, }, }, Value: []byte("Foo"), @@ -12553,8 +12178,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4500, - EndPos: 4520, + StartPos: 4135, + EndPos: 4155, }, }, Expr: &ast.ExprNew{ @@ -12562,8 +12187,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4500, - EndPos: 4519, + StartPos: 4135, + EndPos: 4154, }, }, Class: &ast.NameRelative{ @@ -12571,8 +12196,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4504, - EndPos: 4517, + StartPos: 4139, + EndPos: 4152, }, }, Parts: []ast.Vertex{ @@ -12581,8 +12206,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4514, - EndPos: 4517, + StartPos: 4149, + EndPos: 4152, }, }, Value: []byte("Foo"), @@ -12594,8 +12219,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 221, EndLine: 221, - StartPos: 4517, - EndPos: 4519, + StartPos: 4152, + EndPos: 4154, }, }, }, @@ -12606,8 +12231,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4523, - EndPos: 4534, + StartPos: 4156, + EndPos: 4167, }, }, Expr: &ast.ExprNew{ @@ -12615,8 +12240,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4523, - EndPos: 4533, + StartPos: 4156, + EndPos: 4166, }, }, Class: &ast.NameFullyQualified{ @@ -12624,8 +12249,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4527, - EndPos: 4531, + StartPos: 4160, + EndPos: 4164, }, }, Parts: []ast.Vertex{ @@ -12634,8 +12259,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4528, - EndPos: 4531, + StartPos: 4161, + EndPos: 4164, }, }, Value: []byte("Foo"), @@ -12647,8 +12272,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4531, - EndPos: 4533, + StartPos: 4164, + EndPos: 4166, }, }, }, @@ -12659,8 +12284,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4537, - EndPos: 4547, + StartPos: 4168, + EndPos: 4178, }, }, Expr: &ast.ExprPrint{ @@ -12668,8 +12293,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4537, - EndPos: 4545, + StartPos: 4168, + EndPos: 4176, }, }, Expr: &ast.ExprVariable{ @@ -12677,8 +12302,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4543, - EndPos: 4545, + StartPos: 4174, + EndPos: 4176, }, }, VarName: &ast.Identifier{ @@ -12686,8 +12311,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4543, - EndPos: 4545, + StartPos: 4174, + EndPos: 4176, }, }, Value: []byte("$a"), @@ -12700,8 +12325,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4550, - EndPos: 4558, + StartPos: 4179, + EndPos: 4187, }, }, Expr: &ast.ExprPropertyFetch{ @@ -12709,8 +12334,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4550, - EndPos: 4557, + StartPos: 4179, + EndPos: 4186, }, }, Var: &ast.ExprVariable{ @@ -12718,8 +12343,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4550, - EndPos: 4552, + StartPos: 4179, + EndPos: 4181, }, }, VarName: &ast.Identifier{ @@ -12727,8 +12352,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4550, - EndPos: 4552, + StartPos: 4179, + EndPos: 4181, }, }, Value: []byte("$a"), @@ -12739,8 +12364,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4554, - EndPos: 4557, + StartPos: 4183, + EndPos: 4186, }, }, Value: []byte("foo"), @@ -12752,8 +12377,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4561, - EndPos: 4572, + StartPos: 4188, + EndPos: 4199, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -12761,8 +12386,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4561, - EndPos: 4570, + StartPos: 4188, + EndPos: 4197, }, }, Var: &ast.ExprPropertyFetch{ @@ -12770,8 +12395,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4561, - EndPos: 4568, + StartPos: 4188, + EndPos: 4195, }, }, Var: &ast.ExprVariable{ @@ -12779,8 +12404,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4561, - EndPos: 4563, + StartPos: 4188, + EndPos: 4190, }, }, VarName: &ast.Identifier{ @@ -12788,8 +12413,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4561, - EndPos: 4563, + StartPos: 4188, + EndPos: 4190, }, }, Value: []byte("$a"), @@ -12800,8 +12425,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4565, - EndPos: 4568, + StartPos: 4192, + EndPos: 4195, }, }, Value: []byte("foo"), @@ -12812,8 +12437,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4569, - EndPos: 4570, + StartPos: 4196, + EndPos: 4197, }, }, Value: []byte("1"), @@ -12825,8 +12450,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4604, + StartPos: 4200, + EndPos: 4229, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -12834,8 +12459,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4602, + StartPos: 4200, + EndPos: 4227, }, }, Var: &ast.ExprPropertyFetch{ @@ -12843,8 +12468,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4600, + StartPos: 4200, + EndPos: 4225, }, }, Var: &ast.ExprMethodCall{ @@ -12852,8 +12477,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4594, + StartPos: 4200, + EndPos: 4219, }, }, Var: &ast.ExprPropertyFetch{ @@ -12861,8 +12486,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4587, + StartPos: 4200, + EndPos: 4212, }, }, Var: &ast.ExprPropertyFetch{ @@ -12870,8 +12495,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4582, + StartPos: 4200, + EndPos: 4207, }, }, Var: &ast.ExprVariable{ @@ -12879,8 +12504,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4577, + StartPos: 4200, + EndPos: 4202, }, }, VarName: &ast.Identifier{ @@ -12888,8 +12513,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4575, - EndPos: 4577, + StartPos: 4200, + EndPos: 4202, }, }, Value: []byte("$a"), @@ -12900,8 +12525,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4579, - EndPos: 4582, + StartPos: 4204, + EndPos: 4207, }, }, Value: []byte("foo"), @@ -12912,8 +12537,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4584, - EndPos: 4587, + StartPos: 4209, + EndPos: 4212, }, }, Value: []byte("bar"), @@ -12924,8 +12549,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4589, - EndPos: 4592, + StartPos: 4214, + EndPos: 4217, }, }, Value: []byte("baz"), @@ -12935,8 +12560,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4592, - EndPos: 4594, + StartPos: 4217, + EndPos: 4219, }, }, }, @@ -12946,8 +12571,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4596, - EndPos: 4600, + StartPos: 4221, + EndPos: 4225, }, }, Value: []byte("quux"), @@ -12958,8 +12583,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 226, EndLine: 226, - StartPos: 4601, - EndPos: 4602, + StartPos: 4226, + EndPos: 4227, }, }, Value: []byte("0"), @@ -12971,8 +12596,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4607, - EndPos: 4623, + StartPos: 4230, + EndPos: 4246, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -12980,8 +12605,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4607, - EndPos: 4621, + StartPos: 4230, + EndPos: 4244, }, }, Var: &ast.ExprArrayDimFetch{ @@ -12989,8 +12614,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4607, - EndPos: 4618, + StartPos: 4230, + EndPos: 4241, }, }, Var: &ast.ExprMethodCall{ @@ -12998,8 +12623,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4607, - EndPos: 4616, + StartPos: 4230, + EndPos: 4239, }, }, Var: &ast.ExprVariable{ @@ -13007,8 +12632,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4607, - EndPos: 4609, + StartPos: 4230, + EndPos: 4232, }, }, VarName: &ast.Identifier{ @@ -13016,8 +12641,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4607, - EndPos: 4609, + StartPos: 4230, + EndPos: 4232, }, }, Value: []byte("$a"), @@ -13028,8 +12653,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4611, - EndPos: 4614, + StartPos: 4234, + EndPos: 4237, }, }, Value: []byte("foo"), @@ -13039,8 +12664,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4614, - EndPos: 4616, + StartPos: 4237, + EndPos: 4239, }, }, }, @@ -13050,8 +12675,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4617, - EndPos: 4618, + StartPos: 4240, + EndPos: 4241, }, }, Value: []byte("1"), @@ -13062,8 +12687,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4620, - EndPos: 4621, + StartPos: 4243, + EndPos: 4244, }, }, Value: []byte("1"), @@ -13075,8 +12700,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4626, - EndPos: 4635, + StartPos: 4247, + EndPos: 4256, }, }, Expr: &ast.ExprShellExec{ @@ -13084,8 +12709,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4626, - EndPos: 4634, + StartPos: 4247, + EndPos: 4255, }, }, Parts: []ast.Vertex{ @@ -13094,8 +12719,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4627, - EndPos: 4631, + StartPos: 4248, + EndPos: 4252, }, }, Value: []byte("cmd "), @@ -13105,8 +12730,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4631, - EndPos: 4633, + StartPos: 4252, + EndPos: 4254, }, }, VarName: &ast.Identifier{ @@ -13114,8 +12739,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4631, - EndPos: 4633, + StartPos: 4252, + EndPos: 4254, }, }, Value: []byte("$a"), @@ -13129,8 +12754,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4638, - EndPos: 4644, + StartPos: 4257, + EndPos: 4263, }, }, Expr: &ast.ExprShellExec{ @@ -13138,8 +12763,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4638, - EndPos: 4643, + StartPos: 4257, + EndPos: 4262, }, }, Parts: []ast.Vertex{ @@ -13148,8 +12773,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4639, - EndPos: 4642, + StartPos: 4258, + EndPos: 4261, }, }, Value: []byte("cmd"), @@ -13162,8 +12787,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4647, - EndPos: 4650, + StartPos: 4264, + EndPos: 4267, }, }, Expr: &ast.ExprShellExec{ @@ -13171,8 +12796,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4647, - EndPos: 4649, + StartPos: 4264, + EndPos: 4266, }, }, Parts: []ast.Vertex{}, @@ -13183,8 +12808,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4653, - EndPos: 4656, + StartPos: 4268, + EndPos: 4271, }, }, Expr: &ast.ExprShortArray{ @@ -13192,8 +12817,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4653, - EndPos: 4655, + StartPos: 4268, + EndPos: 4270, }, }, Items: []ast.Vertex{}, @@ -13204,8 +12829,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4659, - EndPos: 4663, + StartPos: 4272, + EndPos: 4276, }, }, Expr: &ast.ExprShortArray{ @@ -13213,8 +12838,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4659, - EndPos: 4662, + StartPos: 4272, + EndPos: 4275, }, }, Items: []ast.Vertex{ @@ -13223,8 +12848,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4660, - EndPos: 4661, + StartPos: 4273, + EndPos: 4274, }, }, Val: &ast.ScalarLnumber{ @@ -13232,8 +12857,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4660, - EndPos: 4661, + StartPos: 4273, + EndPos: 4274, }, }, Value: []byte("1"), @@ -13247,8 +12872,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4666, - EndPos: 4679, + StartPos: 4277, + EndPos: 4290, }, }, Expr: &ast.ExprShortArray{ @@ -13256,8 +12881,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4666, - EndPos: 4678, + StartPos: 4277, + EndPos: 4289, }, }, Items: []ast.Vertex{ @@ -13266,8 +12891,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4667, - EndPos: 4671, + StartPos: 4278, + EndPos: 4282, }, }, Key: &ast.ScalarLnumber{ @@ -13275,8 +12900,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4667, - EndPos: 4668, + StartPos: 4278, + EndPos: 4279, }, }, Value: []byte("1"), @@ -13286,8 +12911,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4670, - EndPos: 4671, + StartPos: 4281, + EndPos: 4282, }, }, Value: []byte("1"), @@ -13298,8 +12923,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4673, - EndPos: 4676, + StartPos: 4284, + EndPos: 4287, }, }, Val: &ast.ExprReference{ @@ -13307,8 +12932,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4673, - EndPos: 4676, + StartPos: 4284, + EndPos: 4287, }, }, Var: &ast.ExprVariable{ @@ -13316,8 +12941,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4674, - EndPos: 4676, + StartPos: 4285, + EndPos: 4287, }, }, VarName: &ast.Identifier{ @@ -13325,8 +12950,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4674, - EndPos: 4676, + StartPos: 4285, + EndPos: 4287, }, }, Value: []byte("$b"), @@ -13343,8 +12968,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4683, - EndPos: 4694, + StartPos: 4292, + EndPos: 4303, }, }, Expr: &ast.ExprStaticCall{ @@ -13352,8 +12977,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4683, - EndPos: 4693, + StartPos: 4292, + EndPos: 4302, }, }, Class: &ast.NameName{ @@ -13361,8 +12986,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4683, - EndPos: 4686, + StartPos: 4292, + EndPos: 4295, }, }, Parts: []ast.Vertex{ @@ -13371,8 +12996,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4683, - EndPos: 4686, + StartPos: 4292, + EndPos: 4295, }, }, Value: []byte("Foo"), @@ -13384,8 +13009,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4688, - EndPos: 4691, + StartPos: 4297, + EndPos: 4300, }, }, Value: []byte("bar"), @@ -13395,8 +13020,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4691, - EndPos: 4693, + StartPos: 4300, + EndPos: 4302, }, }, }, @@ -13407,8 +13032,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4697, - EndPos: 4718, + StartPos: 4304, + EndPos: 4325, }, }, Expr: &ast.ExprStaticCall{ @@ -13416,8 +13041,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4697, - EndPos: 4717, + StartPos: 4304, + EndPos: 4324, }, }, Class: &ast.NameRelative{ @@ -13425,8 +13050,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4697, - EndPos: 4710, + StartPos: 4304, + EndPos: 4317, }, }, Parts: []ast.Vertex{ @@ -13435,8 +13060,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4707, - EndPos: 4710, + StartPos: 4314, + EndPos: 4317, }, }, Value: []byte("Foo"), @@ -13448,8 +13073,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4712, - EndPos: 4715, + StartPos: 4319, + EndPos: 4322, }, }, Value: []byte("bar"), @@ -13459,8 +13084,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4715, - EndPos: 4717, + StartPos: 4322, + EndPos: 4324, }, }, }, @@ -13471,8 +13096,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4721, - EndPos: 4733, + StartPos: 4326, + EndPos: 4338, }, }, Expr: &ast.ExprStaticCall{ @@ -13480,8 +13105,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4721, - EndPos: 4732, + StartPos: 4326, + EndPos: 4337, }, }, Class: &ast.NameFullyQualified{ @@ -13489,8 +13114,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4721, - EndPos: 4725, + StartPos: 4326, + EndPos: 4330, }, }, Parts: []ast.Vertex{ @@ -13499,8 +13124,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4722, - EndPos: 4725, + StartPos: 4327, + EndPos: 4330, }, }, Value: []byte("Foo"), @@ -13512,8 +13137,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4727, - EndPos: 4730, + StartPos: 4332, + EndPos: 4335, }, }, Value: []byte("bar"), @@ -13523,8 +13148,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4730, - EndPos: 4732, + StartPos: 4335, + EndPos: 4337, }, }, }, @@ -13535,8 +13160,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4736, - EndPos: 4748, + StartPos: 4339, + EndPos: 4351, }, }, Expr: &ast.ExprStaticCall{ @@ -13544,8 +13169,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4736, - EndPos: 4747, + StartPos: 4339, + EndPos: 4350, }, }, Class: &ast.NameName{ @@ -13553,8 +13178,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4736, - EndPos: 4739, + StartPos: 4339, + EndPos: 4342, }, }, Parts: []ast.Vertex{ @@ -13563,8 +13188,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4736, - EndPos: 4739, + StartPos: 4339, + EndPos: 4342, }, }, Value: []byte("Foo"), @@ -13576,8 +13201,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4741, - EndPos: 4745, + StartPos: 4344, + EndPos: 4348, }, }, VarName: &ast.Identifier{ @@ -13585,8 +13210,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4741, - EndPos: 4745, + StartPos: 4344, + EndPos: 4348, }, }, Value: []byte("$bar"), @@ -13597,8 +13222,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4745, - EndPos: 4747, + StartPos: 4348, + EndPos: 4350, }, }, }, @@ -13609,8 +13234,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4751, - EndPos: 4764, + StartPos: 4352, + EndPos: 4365, }, }, Expr: &ast.ExprStaticCall{ @@ -13618,8 +13243,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4751, - EndPos: 4763, + StartPos: 4352, + EndPos: 4364, }, }, Class: &ast.ExprVariable{ @@ -13627,8 +13252,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4751, - EndPos: 4755, + StartPos: 4352, + EndPos: 4356, }, }, VarName: &ast.Identifier{ @@ -13636,8 +13261,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4751, - EndPos: 4755, + StartPos: 4352, + EndPos: 4356, }, }, Value: []byte("$foo"), @@ -13648,8 +13273,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4757, - EndPos: 4761, + StartPos: 4358, + EndPos: 4362, }, }, VarName: &ast.Identifier{ @@ -13657,8 +13282,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4757, - EndPos: 4761, + StartPos: 4358, + EndPos: 4362, }, }, Value: []byte("$bar"), @@ -13669,8 +13294,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4761, - EndPos: 4763, + StartPos: 4362, + EndPos: 4364, }, }, }, @@ -13681,8 +13306,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4767, - EndPos: 4777, + StartPos: 4366, + EndPos: 4376, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -13690,8 +13315,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4767, - EndPos: 4776, + StartPos: 4366, + EndPos: 4375, }, }, Class: &ast.NameName{ @@ -13699,8 +13324,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4767, - EndPos: 4770, + StartPos: 4366, + EndPos: 4369, }, }, Parts: []ast.Vertex{ @@ -13709,8 +13334,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4767, - EndPos: 4770, + StartPos: 4366, + EndPos: 4369, }, }, Value: []byte("Foo"), @@ -13722,8 +13347,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4772, - EndPos: 4776, + StartPos: 4371, + EndPos: 4375, }, }, VarName: &ast.Identifier{ @@ -13731,8 +13356,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 240, EndLine: 240, - StartPos: 4772, - EndPos: 4776, + StartPos: 4371, + EndPos: 4375, }, }, Value: []byte("$bar"), @@ -13745,8 +13370,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4780, - EndPos: 4800, + StartPos: 4377, + EndPos: 4397, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -13754,8 +13379,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4780, - EndPos: 4799, + StartPos: 4377, + EndPos: 4396, }, }, Class: &ast.NameRelative{ @@ -13763,8 +13388,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4780, - EndPos: 4793, + StartPos: 4377, + EndPos: 4390, }, }, Parts: []ast.Vertex{ @@ -13773,8 +13398,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4790, - EndPos: 4793, + StartPos: 4387, + EndPos: 4390, }, }, Value: []byte("Foo"), @@ -13786,8 +13411,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4795, - EndPos: 4799, + StartPos: 4392, + EndPos: 4396, }, }, VarName: &ast.Identifier{ @@ -13795,8 +13420,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4795, - EndPos: 4799, + StartPos: 4392, + EndPos: 4396, }, }, Value: []byte("$bar"), @@ -13809,8 +13434,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4803, - EndPos: 4814, + StartPos: 4398, + EndPos: 4409, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -13818,8 +13443,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4803, - EndPos: 4813, + StartPos: 4398, + EndPos: 4408, }, }, Class: &ast.NameFullyQualified{ @@ -13827,8 +13452,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4803, - EndPos: 4807, + StartPos: 4398, + EndPos: 4402, }, }, Parts: []ast.Vertex{ @@ -13837,8 +13462,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4804, - EndPos: 4807, + StartPos: 4399, + EndPos: 4402, }, }, Value: []byte("Foo"), @@ -13850,8 +13475,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4809, - EndPos: 4813, + StartPos: 4404, + EndPos: 4408, }, }, VarName: &ast.Identifier{ @@ -13859,8 +13484,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4809, - EndPos: 4813, + StartPos: 4404, + EndPos: 4408, }, }, Value: []byte("$bar"), @@ -13873,8 +13498,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4817, - EndPos: 4830, + StartPos: 4410, + EndPos: 4423, }, }, Expr: &ast.ExprTernary{ @@ -13882,8 +13507,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4817, - EndPos: 4829, + StartPos: 4410, + EndPos: 4422, }, }, Condition: &ast.ExprVariable{ @@ -13891,8 +13516,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4817, - EndPos: 4819, + StartPos: 4410, + EndPos: 4412, }, }, VarName: &ast.Identifier{ @@ -13900,8 +13525,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4817, - EndPos: 4819, + StartPos: 4410, + EndPos: 4412, }, }, Value: []byte("$a"), @@ -13912,8 +13537,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4822, - EndPos: 4824, + StartPos: 4415, + EndPos: 4417, }, }, VarName: &ast.Identifier{ @@ -13921,8 +13546,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4822, - EndPos: 4824, + StartPos: 4415, + EndPos: 4417, }, }, Value: []byte("$b"), @@ -13933,8 +13558,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4827, - EndPos: 4829, + StartPos: 4420, + EndPos: 4422, }, }, VarName: &ast.Identifier{ @@ -13942,8 +13567,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4827, - EndPos: 4829, + StartPos: 4420, + EndPos: 4422, }, }, Value: []byte("$c"), @@ -13956,8 +13581,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4833, - EndPos: 4843, + StartPos: 4424, + EndPos: 4434, }, }, Expr: &ast.ExprTernary{ @@ -13965,8 +13590,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4833, - EndPos: 4842, + StartPos: 4424, + EndPos: 4433, }, }, Condition: &ast.ExprVariable{ @@ -13974,8 +13599,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4833, - EndPos: 4835, + StartPos: 4424, + EndPos: 4426, }, }, VarName: &ast.Identifier{ @@ -13983,8 +13608,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4833, - EndPos: 4835, + StartPos: 4424, + EndPos: 4426, }, }, Value: []byte("$a"), @@ -13995,8 +13620,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4840, - EndPos: 4842, + StartPos: 4431, + EndPos: 4433, }, }, VarName: &ast.Identifier{ @@ -14004,8 +13629,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4840, - EndPos: 4842, + StartPos: 4431, + EndPos: 4433, }, }, Value: []byte("$c"), @@ -14018,8 +13643,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4846, - EndPos: 4869, + StartPos: 4435, + EndPos: 4458, }, }, Expr: &ast.ExprTernary{ @@ -14027,8 +13652,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4846, - EndPos: 4868, + StartPos: 4435, + EndPos: 4457, }, }, Condition: &ast.ExprVariable{ @@ -14036,8 +13661,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4846, - EndPos: 4848, + StartPos: 4435, + EndPos: 4437, }, }, VarName: &ast.Identifier{ @@ -14045,8 +13670,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4846, - EndPos: 4848, + StartPos: 4435, + EndPos: 4437, }, }, Value: []byte("$a"), @@ -14057,8 +13682,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4851, - EndPos: 4863, + StartPos: 4440, + EndPos: 4452, }, }, Condition: &ast.ExprVariable{ @@ -14066,8 +13691,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4851, - EndPos: 4853, + StartPos: 4440, + EndPos: 4442, }, }, VarName: &ast.Identifier{ @@ -14075,8 +13700,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4851, - EndPos: 4853, + StartPos: 4440, + EndPos: 4442, }, }, Value: []byte("$b"), @@ -14087,8 +13712,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4856, - EndPos: 4858, + StartPos: 4445, + EndPos: 4447, }, }, VarName: &ast.Identifier{ @@ -14096,8 +13721,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4856, - EndPos: 4858, + StartPos: 4445, + EndPos: 4447, }, }, Value: []byte("$c"), @@ -14108,8 +13733,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4861, - EndPos: 4863, + StartPos: 4450, + EndPos: 4452, }, }, VarName: &ast.Identifier{ @@ -14117,8 +13742,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4861, - EndPos: 4863, + StartPos: 4450, + EndPos: 4452, }, }, Value: []byte("$d"), @@ -14130,8 +13755,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4866, - EndPos: 4868, + StartPos: 4455, + EndPos: 4457, }, }, VarName: &ast.Identifier{ @@ -14139,8 +13764,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4866, - EndPos: 4868, + StartPos: 4455, + EndPos: 4457, }, }, Value: []byte("$e"), @@ -14153,8 +13778,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4872, - EndPos: 4895, + StartPos: 4459, + EndPos: 4482, }, }, Expr: &ast.ExprTernary{ @@ -14162,8 +13787,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4872, - EndPos: 4894, + StartPos: 4459, + EndPos: 4481, }, }, Condition: &ast.ExprTernary{ @@ -14171,8 +13796,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4872, - EndPos: 4884, + StartPos: 4459, + EndPos: 4471, }, }, Condition: &ast.ExprVariable{ @@ -14180,8 +13805,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4872, - EndPos: 4874, + StartPos: 4459, + EndPos: 4461, }, }, VarName: &ast.Identifier{ @@ -14189,8 +13814,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4872, - EndPos: 4874, + StartPos: 4459, + EndPos: 4461, }, }, Value: []byte("$a"), @@ -14201,8 +13826,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4877, - EndPos: 4879, + StartPos: 4464, + EndPos: 4466, }, }, VarName: &ast.Identifier{ @@ -14210,8 +13835,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4877, - EndPos: 4879, + StartPos: 4464, + EndPos: 4466, }, }, Value: []byte("$b"), @@ -14222,8 +13847,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4882, - EndPos: 4884, + StartPos: 4469, + EndPos: 4471, }, }, VarName: &ast.Identifier{ @@ -14231,8 +13856,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4882, - EndPos: 4884, + StartPos: 4469, + EndPos: 4471, }, }, Value: []byte("$c"), @@ -14244,8 +13869,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4887, - EndPos: 4889, + StartPos: 4474, + EndPos: 4476, }, }, VarName: &ast.Identifier{ @@ -14253,8 +13878,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4887, - EndPos: 4889, + StartPos: 4474, + EndPos: 4476, }, }, Value: []byte("$d"), @@ -14265,8 +13890,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4892, - EndPos: 4894, + StartPos: 4479, + EndPos: 4481, }, }, VarName: &ast.Identifier{ @@ -14274,8 +13899,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4892, - EndPos: 4894, + StartPos: 4479, + EndPos: 4481, }, }, Value: []byte("$e"), @@ -14288,8 +13913,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4898, - EndPos: 4902, + StartPos: 4483, + EndPos: 4487, }, }, Expr: &ast.ExprUnaryMinus{ @@ -14297,8 +13922,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4898, - EndPos: 4901, + StartPos: 4483, + EndPos: 4486, }, }, Expr: &ast.ExprVariable{ @@ -14306,8 +13931,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4899, - EndPos: 4901, + StartPos: 4484, + EndPos: 4486, }, }, VarName: &ast.Identifier{ @@ -14315,8 +13940,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4899, - EndPos: 4901, + StartPos: 4484, + EndPos: 4486, }, }, Value: []byte("$a"), @@ -14329,8 +13954,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4905, - EndPos: 4909, + StartPos: 4488, + EndPos: 4492, }, }, Expr: &ast.ExprUnaryPlus{ @@ -14338,8 +13963,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4905, - EndPos: 4908, + StartPos: 4488, + EndPos: 4491, }, }, Expr: &ast.ExprVariable{ @@ -14347,8 +13972,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4906, - EndPos: 4908, + StartPos: 4489, + EndPos: 4491, }, }, VarName: &ast.Identifier{ @@ -14356,8 +13981,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4906, - EndPos: 4908, + StartPos: 4489, + EndPos: 4491, }, }, Value: []byte("$a"), @@ -14370,8 +13995,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4912, - EndPos: 4916, + StartPos: 4493, + EndPos: 4497, }, }, Expr: &ast.ExprVariable{ @@ -14379,8 +14004,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4912, - EndPos: 4915, + StartPos: 4493, + EndPos: 4496, }, }, VarName: &ast.ExprVariable{ @@ -14388,8 +14013,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4913, - EndPos: 4915, + StartPos: 4494, + EndPos: 4496, }, }, VarName: &ast.Identifier{ @@ -14397,8 +14022,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4913, - EndPos: 4915, + StartPos: 4494, + EndPos: 4496, }, }, Value: []byte("$a"), @@ -14411,8 +14036,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4919, - EndPos: 4924, + StartPos: 4498, + EndPos: 4503, }, }, Expr: &ast.ExprVariable{ @@ -14420,8 +14045,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4919, - EndPos: 4923, + StartPos: 4498, + EndPos: 4502, }, }, VarName: &ast.ExprVariable{ @@ -14429,8 +14054,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4920, - EndPos: 4923, + StartPos: 4499, + EndPos: 4502, }, }, VarName: &ast.ExprVariable{ @@ -14438,8 +14063,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4921, - EndPos: 4923, + StartPos: 4500, + EndPos: 4502, }, }, VarName: &ast.Identifier{ @@ -14447,8 +14072,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4921, - EndPos: 4923, + StartPos: 4500, + EndPos: 4502, }, }, Value: []byte("$a"), @@ -14462,8 +14087,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4927, - EndPos: 4933, + StartPos: 4504, + EndPos: 4510, }, }, Expr: &ast.ExprYield{ @@ -14471,8 +14096,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4927, - EndPos: 4932, + StartPos: 4504, + EndPos: 4509, }, }, }, @@ -14482,8 +14107,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4936, - EndPos: 4945, + StartPos: 4511, + EndPos: 4520, }, }, Expr: &ast.ExprYield{ @@ -14491,8 +14116,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4936, - EndPos: 4944, + StartPos: 4511, + EndPos: 4519, }, }, Value: &ast.ExprVariable{ @@ -14500,8 +14125,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4942, - EndPos: 4944, + StartPos: 4517, + EndPos: 4519, }, }, VarName: &ast.Identifier{ @@ -14509,8 +14134,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4942, - EndPos: 4944, + StartPos: 4517, + EndPos: 4519, }, }, Value: []byte("$a"), @@ -14523,8 +14148,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4948, - EndPos: 4963, + StartPos: 4521, + EndPos: 4536, }, }, Expr: &ast.ExprYield{ @@ -14532,8 +14157,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4948, - EndPos: 4962, + StartPos: 4521, + EndPos: 4535, }, }, Key: &ast.ExprVariable{ @@ -14541,8 +14166,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4954, - EndPos: 4956, + StartPos: 4527, + EndPos: 4529, }, }, VarName: &ast.Identifier{ @@ -14550,8 +14175,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4954, - EndPos: 4956, + StartPos: 4527, + EndPos: 4529, }, }, Value: []byte("$a"), @@ -14562,8 +14187,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4960, - EndPos: 4962, + StartPos: 4533, + EndPos: 4535, }, }, VarName: &ast.Identifier{ @@ -14571,8 +14196,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4960, - EndPos: 4962, + StartPos: 4533, + EndPos: 4535, }, }, Value: []byte("$b"), @@ -14585,8 +14210,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4966, - EndPos: 4983, + StartPos: 4537, + EndPos: 4554, }, }, Expr: &ast.ExprYield{ @@ -14594,8 +14219,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4966, - EndPos: 4982, + StartPos: 4537, + EndPos: 4553, }, }, Value: &ast.ExprClassConstFetch{ @@ -14603,8 +14228,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4972, - EndPos: 4982, + StartPos: 4543, + EndPos: 4553, }, }, Class: &ast.NameName{ @@ -14612,8 +14237,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4972, - EndPos: 4975, + StartPos: 4543, + EndPos: 4546, }, }, Parts: []ast.Vertex{ @@ -14622,8 +14247,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4972, - EndPos: 4975, + StartPos: 4543, + EndPos: 4546, }, }, Value: []byte("Foo"), @@ -14635,8 +14260,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4977, - EndPos: 4982, + StartPos: 4548, + EndPos: 4553, }, }, Value: []byte("class"), @@ -14649,8 +14274,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4986, - EndPos: 5009, + StartPos: 4555, + EndPos: 4578, }, }, Expr: &ast.ExprYield{ @@ -14658,8 +14283,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4986, - EndPos: 5008, + StartPos: 4555, + EndPos: 4577, }, }, Key: &ast.ExprVariable{ @@ -14667,8 +14292,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4992, - EndPos: 4994, + StartPos: 4561, + EndPos: 4563, }, }, VarName: &ast.Identifier{ @@ -14676,8 +14301,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4992, - EndPos: 4994, + StartPos: 4561, + EndPos: 4563, }, }, Value: []byte("$a"), @@ -14688,8 +14313,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4998, - EndPos: 5008, + StartPos: 4567, + EndPos: 4577, }, }, Class: &ast.NameName{ @@ -14697,8 +14322,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4998, - EndPos: 5001, + StartPos: 4567, + EndPos: 4570, }, }, Parts: []ast.Vertex{ @@ -14707,8 +14332,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 4998, - EndPos: 5001, + StartPos: 4567, + EndPos: 4570, }, }, Value: []byte("Foo"), @@ -14720,8 +14345,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5003, - EndPos: 5008, + StartPos: 4572, + EndPos: 4577, }, }, Value: []byte("class"), @@ -14734,8 +14359,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5015, - EndPos: 5025, + StartPos: 4580, + EndPos: 4590, }, }, Expr: &ast.ExprCastArray{ @@ -14743,8 +14368,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5015, - EndPos: 5024, + StartPos: 4580, + EndPos: 4589, }, }, Expr: &ast.ExprVariable{ @@ -14752,8 +14377,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5022, - EndPos: 5024, + StartPos: 4587, + EndPos: 4589, }, }, VarName: &ast.Identifier{ @@ -14761,8 +14386,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5022, - EndPos: 5024, + StartPos: 4587, + EndPos: 4589, }, }, Value: []byte("$a"), @@ -14775,8 +14400,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5028, - EndPos: 5040, + StartPos: 4591, + EndPos: 4603, }, }, Expr: &ast.ExprCastBool{ @@ -14784,8 +14409,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5028, - EndPos: 5039, + StartPos: 4591, + EndPos: 4602, }, }, Expr: &ast.ExprVariable{ @@ -14793,8 +14418,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5037, - EndPos: 5039, + StartPos: 4600, + EndPos: 4602, }, }, VarName: &ast.Identifier{ @@ -14802,8 +14427,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5037, - EndPos: 5039, + StartPos: 4600, + EndPos: 4602, }, }, Value: []byte("$a"), @@ -14816,8 +14441,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5043, - EndPos: 5052, + StartPos: 4604, + EndPos: 4613, }, }, Expr: &ast.ExprCastBool{ @@ -14825,8 +14450,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5043, - EndPos: 5051, + StartPos: 4604, + EndPos: 4612, }, }, Expr: &ast.ExprVariable{ @@ -14834,8 +14459,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5049, - EndPos: 5051, + StartPos: 4610, + EndPos: 4612, }, }, VarName: &ast.Identifier{ @@ -14843,8 +14468,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5049, - EndPos: 5051, + StartPos: 4610, + EndPos: 4612, }, }, Value: []byte("$a"), @@ -14857,8 +14482,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5055, - EndPos: 5066, + StartPos: 4614, + EndPos: 4625, }, }, Expr: &ast.ExprCastDouble{ @@ -14866,8 +14491,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5055, - EndPos: 5065, + StartPos: 4614, + EndPos: 4624, }, }, Expr: &ast.ExprVariable{ @@ -14875,8 +14500,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5063, - EndPos: 5065, + StartPos: 4622, + EndPos: 4624, }, }, VarName: &ast.Identifier{ @@ -14884,8 +14509,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5063, - EndPos: 5065, + StartPos: 4622, + EndPos: 4624, }, }, Value: []byte("$a"), @@ -14898,8 +14523,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5069, - EndPos: 5079, + StartPos: 4626, + EndPos: 4636, }, }, Expr: &ast.ExprCastDouble{ @@ -14907,8 +14532,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5069, - EndPos: 5078, + StartPos: 4626, + EndPos: 4635, }, }, Expr: &ast.ExprVariable{ @@ -14916,8 +14541,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5076, - EndPos: 5078, + StartPos: 4633, + EndPos: 4635, }, }, VarName: &ast.Identifier{ @@ -14925,8 +14550,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5076, - EndPos: 5078, + StartPos: 4633, + EndPos: 4635, }, }, Value: []byte("$a"), @@ -14939,8 +14564,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5082, - EndPos: 5094, + StartPos: 4637, + EndPos: 4649, }, }, Expr: &ast.ExprCastInt{ @@ -14948,8 +14573,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5082, - EndPos: 5093, + StartPos: 4637, + EndPos: 4648, }, }, Expr: &ast.ExprVariable{ @@ -14957,8 +14582,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5091, - EndPos: 5093, + StartPos: 4646, + EndPos: 4648, }, }, VarName: &ast.Identifier{ @@ -14966,8 +14591,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 262, EndLine: 262, - StartPos: 5091, - EndPos: 5093, + StartPos: 4646, + EndPos: 4648, }, }, Value: []byte("$a"), @@ -14980,8 +14605,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5097, - EndPos: 5105, + StartPos: 4650, + EndPos: 4658, }, }, Expr: &ast.ExprCastInt{ @@ -14989,8 +14614,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5097, - EndPos: 5104, + StartPos: 4650, + EndPos: 4657, }, }, Expr: &ast.ExprVariable{ @@ -14998,8 +14623,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5102, - EndPos: 5104, + StartPos: 4655, + EndPos: 4657, }, }, VarName: &ast.Identifier{ @@ -15007,8 +14632,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5102, - EndPos: 5104, + StartPos: 4655, + EndPos: 4657, }, }, Value: []byte("$a"), @@ -15021,8 +14646,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5108, - EndPos: 5119, + StartPos: 4659, + EndPos: 4670, }, }, Expr: &ast.ExprCastObject{ @@ -15030,8 +14655,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5108, - EndPos: 5118, + StartPos: 4659, + EndPos: 4669, }, }, Expr: &ast.ExprVariable{ @@ -15039,8 +14664,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5116, - EndPos: 5118, + StartPos: 4667, + EndPos: 4669, }, }, VarName: &ast.Identifier{ @@ -15048,8 +14673,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5116, - EndPos: 5118, + StartPos: 4667, + EndPos: 4669, }, }, Value: []byte("$a"), @@ -15062,8 +14687,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5122, - EndPos: 5133, + StartPos: 4671, + EndPos: 4682, }, }, Expr: &ast.ExprCastString{ @@ -15071,8 +14696,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5122, - EndPos: 5132, + StartPos: 4671, + EndPos: 4681, }, }, Expr: &ast.ExprVariable{ @@ -15080,8 +14705,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5130, - EndPos: 5132, + StartPos: 4679, + EndPos: 4681, }, }, VarName: &ast.Identifier{ @@ -15089,8 +14714,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5130, - EndPos: 5132, + StartPos: 4679, + EndPos: 4681, }, }, Value: []byte("$a"), @@ -15103,8 +14728,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5136, - EndPos: 5146, + StartPos: 4683, + EndPos: 4693, }, }, Expr: &ast.ExprCastUnset{ @@ -15112,8 +14737,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5136, - EndPos: 5145, + StartPos: 4683, + EndPos: 4692, }, }, Expr: &ast.ExprVariable{ @@ -15121,8 +14746,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5143, - EndPos: 5145, + StartPos: 4690, + EndPos: 4692, }, }, VarName: &ast.Identifier{ @@ -15130,8 +14755,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5143, - EndPos: 5145, + StartPos: 4690, + EndPos: 4692, }, }, Value: []byte("$a"), @@ -15144,8 +14769,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5150, - EndPos: 5158, + StartPos: 4695, + EndPos: 4703, }, }, Expr: &ast.ExprBinaryBitwiseAnd{ @@ -15153,8 +14778,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5150, - EndPos: 5157, + StartPos: 4695, + EndPos: 4702, }, }, Left: &ast.ExprVariable{ @@ -15162,8 +14787,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5150, - EndPos: 5152, + StartPos: 4695, + EndPos: 4697, }, }, VarName: &ast.Identifier{ @@ -15171,8 +14796,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5150, - EndPos: 5152, + StartPos: 4695, + EndPos: 4697, }, }, Value: []byte("$a"), @@ -15183,8 +14808,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5155, - EndPos: 5157, + StartPos: 4700, + EndPos: 4702, }, }, VarName: &ast.Identifier{ @@ -15192,8 +14817,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5155, - EndPos: 5157, + StartPos: 4700, + EndPos: 4702, }, }, Value: []byte("$b"), @@ -15206,8 +14831,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5161, - EndPos: 5169, + StartPos: 4704, + EndPos: 4712, }, }, Expr: &ast.ExprBinaryBitwiseOr{ @@ -15215,8 +14840,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5161, - EndPos: 5168, + StartPos: 4704, + EndPos: 4711, }, }, Left: &ast.ExprVariable{ @@ -15224,8 +14849,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5161, - EndPos: 5163, + StartPos: 4704, + EndPos: 4706, }, }, VarName: &ast.Identifier{ @@ -15233,8 +14858,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5161, - EndPos: 5163, + StartPos: 4704, + EndPos: 4706, }, }, Value: []byte("$a"), @@ -15245,8 +14870,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5166, - EndPos: 5168, + StartPos: 4709, + EndPos: 4711, }, }, VarName: &ast.Identifier{ @@ -15254,8 +14879,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5166, - EndPos: 5168, + StartPos: 4709, + EndPos: 4711, }, }, Value: []byte("$b"), @@ -15268,8 +14893,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5172, - EndPos: 5180, + StartPos: 4713, + EndPos: 4721, }, }, Expr: &ast.ExprBinaryBitwiseXor{ @@ -15277,8 +14902,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5172, - EndPos: 5179, + StartPos: 4713, + EndPos: 4720, }, }, Left: &ast.ExprVariable{ @@ -15286,8 +14911,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5172, - EndPos: 5174, + StartPos: 4713, + EndPos: 4715, }, }, VarName: &ast.Identifier{ @@ -15295,8 +14920,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5172, - EndPos: 5174, + StartPos: 4713, + EndPos: 4715, }, }, Value: []byte("$a"), @@ -15307,8 +14932,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5177, - EndPos: 5179, + StartPos: 4718, + EndPos: 4720, }, }, VarName: &ast.Identifier{ @@ -15316,8 +14941,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5177, - EndPos: 5179, + StartPos: 4718, + EndPos: 4720, }, }, Value: []byte("$b"), @@ -15330,8 +14955,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5183, - EndPos: 5192, + StartPos: 4722, + EndPos: 4731, }, }, Expr: &ast.ExprBinaryBooleanAnd{ @@ -15339,8 +14964,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5183, - EndPos: 5191, + StartPos: 4722, + EndPos: 4730, }, }, Left: &ast.ExprVariable{ @@ -15348,8 +14973,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5183, - EndPos: 5185, + StartPos: 4722, + EndPos: 4724, }, }, VarName: &ast.Identifier{ @@ -15357,8 +14982,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5183, - EndPos: 5185, + StartPos: 4722, + EndPos: 4724, }, }, Value: []byte("$a"), @@ -15369,8 +14994,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5189, - EndPos: 5191, + StartPos: 4728, + EndPos: 4730, }, }, VarName: &ast.Identifier{ @@ -15378,8 +15003,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5189, - EndPos: 5191, + StartPos: 4728, + EndPos: 4730, }, }, Value: []byte("$b"), @@ -15392,8 +15017,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5195, - EndPos: 5204, + StartPos: 4732, + EndPos: 4741, }, }, Expr: &ast.ExprBinaryBooleanOr{ @@ -15401,8 +15026,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5195, - EndPos: 5203, + StartPos: 4732, + EndPos: 4740, }, }, Left: &ast.ExprVariable{ @@ -15410,8 +15035,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5195, - EndPos: 5197, + StartPos: 4732, + EndPos: 4734, }, }, VarName: &ast.Identifier{ @@ -15419,8 +15044,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5195, - EndPos: 5197, + StartPos: 4732, + EndPos: 4734, }, }, Value: []byte("$a"), @@ -15431,8 +15056,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5201, - EndPos: 5203, + StartPos: 4738, + EndPos: 4740, }, }, VarName: &ast.Identifier{ @@ -15440,8 +15065,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5201, - EndPos: 5203, + StartPos: 4738, + EndPos: 4740, }, }, Value: []byte("$b"), @@ -15454,8 +15079,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5207, - EndPos: 5215, + StartPos: 4742, + EndPos: 4750, }, }, Expr: &ast.ExprBinaryConcat{ @@ -15463,8 +15088,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5207, - EndPos: 5214, + StartPos: 4742, + EndPos: 4749, }, }, Left: &ast.ExprVariable{ @@ -15472,8 +15097,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5207, - EndPos: 5209, + StartPos: 4742, + EndPos: 4744, }, }, VarName: &ast.Identifier{ @@ -15481,8 +15106,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5207, - EndPos: 5209, + StartPos: 4742, + EndPos: 4744, }, }, Value: []byte("$a"), @@ -15493,8 +15118,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5212, - EndPos: 5214, + StartPos: 4747, + EndPos: 4749, }, }, VarName: &ast.Identifier{ @@ -15502,8 +15127,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 273, EndLine: 273, - StartPos: 5212, - EndPos: 5214, + StartPos: 4747, + EndPos: 4749, }, }, Value: []byte("$b"), @@ -15516,8 +15141,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5218, - EndPos: 5226, + StartPos: 4751, + EndPos: 4759, }, }, Expr: &ast.ExprBinaryDiv{ @@ -15525,8 +15150,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5218, - EndPos: 5225, + StartPos: 4751, + EndPos: 4758, }, }, Left: &ast.ExprVariable{ @@ -15534,8 +15159,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5218, - EndPos: 5220, + StartPos: 4751, + EndPos: 4753, }, }, VarName: &ast.Identifier{ @@ -15543,8 +15168,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5218, - EndPos: 5220, + StartPos: 4751, + EndPos: 4753, }, }, Value: []byte("$a"), @@ -15555,8 +15180,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5223, - EndPos: 5225, + StartPos: 4756, + EndPos: 4758, }, }, VarName: &ast.Identifier{ @@ -15564,8 +15189,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5223, - EndPos: 5225, + StartPos: 4756, + EndPos: 4758, }, }, Value: []byte("$b"), @@ -15578,8 +15203,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5229, - EndPos: 5238, + StartPos: 4760, + EndPos: 4769, }, }, Expr: &ast.ExprBinaryEqual{ @@ -15587,8 +15212,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5229, - EndPos: 5237, + StartPos: 4760, + EndPos: 4768, }, }, Left: &ast.ExprVariable{ @@ -15596,8 +15221,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5229, - EndPos: 5231, + StartPos: 4760, + EndPos: 4762, }, }, VarName: &ast.Identifier{ @@ -15605,8 +15230,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5229, - EndPos: 5231, + StartPos: 4760, + EndPos: 4762, }, }, Value: []byte("$a"), @@ -15617,8 +15242,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5235, - EndPos: 5237, + StartPos: 4766, + EndPos: 4768, }, }, VarName: &ast.Identifier{ @@ -15626,8 +15251,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5235, - EndPos: 5237, + StartPos: 4766, + EndPos: 4768, }, }, Value: []byte("$b"), @@ -15640,8 +15265,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5241, - EndPos: 5250, + StartPos: 4770, + EndPos: 4779, }, }, Expr: &ast.ExprBinaryGreaterOrEqual{ @@ -15649,8 +15274,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5241, - EndPos: 5249, + StartPos: 4770, + EndPos: 4778, }, }, Left: &ast.ExprVariable{ @@ -15658,8 +15283,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5241, - EndPos: 5243, + StartPos: 4770, + EndPos: 4772, }, }, VarName: &ast.Identifier{ @@ -15667,8 +15292,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5241, - EndPos: 5243, + StartPos: 4770, + EndPos: 4772, }, }, Value: []byte("$a"), @@ -15679,8 +15304,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5247, - EndPos: 5249, + StartPos: 4776, + EndPos: 4778, }, }, VarName: &ast.Identifier{ @@ -15688,8 +15313,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5247, - EndPos: 5249, + StartPos: 4776, + EndPos: 4778, }, }, Value: []byte("$b"), @@ -15702,8 +15327,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5253, - EndPos: 5261, + StartPos: 4780, + EndPos: 4788, }, }, Expr: &ast.ExprBinaryGreater{ @@ -15711,8 +15336,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5253, - EndPos: 5260, + StartPos: 4780, + EndPos: 4787, }, }, Left: &ast.ExprVariable{ @@ -15720,8 +15345,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5253, - EndPos: 5255, + StartPos: 4780, + EndPos: 4782, }, }, VarName: &ast.Identifier{ @@ -15729,8 +15354,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5253, - EndPos: 5255, + StartPos: 4780, + EndPos: 4782, }, }, Value: []byte("$a"), @@ -15741,8 +15366,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5258, - EndPos: 5260, + StartPos: 4785, + EndPos: 4787, }, }, VarName: &ast.Identifier{ @@ -15750,8 +15375,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5258, - EndPos: 5260, + StartPos: 4785, + EndPos: 4787, }, }, Value: []byte("$b"), @@ -15764,8 +15389,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5264, - EndPos: 5274, + StartPos: 4789, + EndPos: 4799, }, }, Expr: &ast.ExprBinaryIdentical{ @@ -15773,8 +15398,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5264, - EndPos: 5273, + StartPos: 4789, + EndPos: 4798, }, }, Left: &ast.ExprVariable{ @@ -15782,8 +15407,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5264, - EndPos: 5266, + StartPos: 4789, + EndPos: 4791, }, }, VarName: &ast.Identifier{ @@ -15791,8 +15416,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5264, - EndPos: 5266, + StartPos: 4789, + EndPos: 4791, }, }, Value: []byte("$a"), @@ -15803,8 +15428,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5271, - EndPos: 5273, + StartPos: 4796, + EndPos: 4798, }, }, VarName: &ast.Identifier{ @@ -15812,8 +15437,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5271, - EndPos: 5273, + StartPos: 4796, + EndPos: 4798, }, }, Value: []byte("$b"), @@ -15826,8 +15451,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5277, - EndPos: 5287, + StartPos: 4800, + EndPos: 4810, }, }, Expr: &ast.ExprBinaryLogicalAnd{ @@ -15835,8 +15460,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5277, - EndPos: 5286, + StartPos: 4800, + EndPos: 4809, }, }, Left: &ast.ExprVariable{ @@ -15844,8 +15469,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5277, - EndPos: 5279, + StartPos: 4800, + EndPos: 4802, }, }, VarName: &ast.Identifier{ @@ -15853,8 +15478,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5277, - EndPos: 5279, + StartPos: 4800, + EndPos: 4802, }, }, Value: []byte("$a"), @@ -15865,8 +15490,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5284, - EndPos: 5286, + StartPos: 4807, + EndPos: 4809, }, }, VarName: &ast.Identifier{ @@ -15874,8 +15499,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5284, - EndPos: 5286, + StartPos: 4807, + EndPos: 4809, }, }, Value: []byte("$b"), @@ -15888,8 +15513,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5290, - EndPos: 5299, + StartPos: 4811, + EndPos: 4820, }, }, Expr: &ast.ExprBinaryLogicalOr{ @@ -15897,8 +15522,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5290, - EndPos: 5298, + StartPos: 4811, + EndPos: 4819, }, }, Left: &ast.ExprVariable{ @@ -15906,8 +15531,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5290, - EndPos: 5292, + StartPos: 4811, + EndPos: 4813, }, }, VarName: &ast.Identifier{ @@ -15915,8 +15540,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5290, - EndPos: 5292, + StartPos: 4811, + EndPos: 4813, }, }, Value: []byte("$a"), @@ -15927,8 +15552,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5296, - EndPos: 5298, + StartPos: 4817, + EndPos: 4819, }, }, VarName: &ast.Identifier{ @@ -15936,8 +15561,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5296, - EndPos: 5298, + StartPos: 4817, + EndPos: 4819, }, }, Value: []byte("$b"), @@ -15950,8 +15575,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5302, - EndPos: 5312, + StartPos: 4821, + EndPos: 4831, }, }, Expr: &ast.ExprBinaryLogicalXor{ @@ -15959,8 +15584,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5302, - EndPos: 5311, + StartPos: 4821, + EndPos: 4830, }, }, Left: &ast.ExprVariable{ @@ -15968,8 +15593,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5302, - EndPos: 5304, + StartPos: 4821, + EndPos: 4823, }, }, VarName: &ast.Identifier{ @@ -15977,8 +15602,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5302, - EndPos: 5304, + StartPos: 4821, + EndPos: 4823, }, }, Value: []byte("$a"), @@ -15989,8 +15614,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5309, - EndPos: 5311, + StartPos: 4828, + EndPos: 4830, }, }, VarName: &ast.Identifier{ @@ -15998,8 +15623,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5309, - EndPos: 5311, + StartPos: 4828, + EndPos: 4830, }, }, Value: []byte("$b"), @@ -16012,8 +15637,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5315, - EndPos: 5323, + StartPos: 4832, + EndPos: 4840, }, }, Expr: &ast.ExprBinaryMinus{ @@ -16021,8 +15646,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5315, - EndPos: 5322, + StartPos: 4832, + EndPos: 4839, }, }, Left: &ast.ExprVariable{ @@ -16030,8 +15655,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5315, - EndPos: 5317, + StartPos: 4832, + EndPos: 4834, }, }, VarName: &ast.Identifier{ @@ -16039,8 +15664,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5315, - EndPos: 5317, + StartPos: 4832, + EndPos: 4834, }, }, Value: []byte("$a"), @@ -16051,8 +15676,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5320, - EndPos: 5322, + StartPos: 4837, + EndPos: 4839, }, }, VarName: &ast.Identifier{ @@ -16060,8 +15685,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5320, - EndPos: 5322, + StartPos: 4837, + EndPos: 4839, }, }, Value: []byte("$b"), @@ -16074,8 +15699,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5326, - EndPos: 5334, + StartPos: 4841, + EndPos: 4849, }, }, Expr: &ast.ExprBinaryMod{ @@ -16083,8 +15708,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5326, - EndPos: 5333, + StartPos: 4841, + EndPos: 4848, }, }, Left: &ast.ExprVariable{ @@ -16092,8 +15717,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5326, - EndPos: 5328, + StartPos: 4841, + EndPos: 4843, }, }, VarName: &ast.Identifier{ @@ -16101,8 +15726,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5326, - EndPos: 5328, + StartPos: 4841, + EndPos: 4843, }, }, Value: []byte("$a"), @@ -16113,8 +15738,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5331, - EndPos: 5333, + StartPos: 4846, + EndPos: 4848, }, }, VarName: &ast.Identifier{ @@ -16122,8 +15747,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5331, - EndPos: 5333, + StartPos: 4846, + EndPos: 4848, }, }, Value: []byte("$b"), @@ -16136,8 +15761,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5337, - EndPos: 5345, + StartPos: 4850, + EndPos: 4858, }, }, Expr: &ast.ExprBinaryMul{ @@ -16145,8 +15770,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5337, - EndPos: 5344, + StartPos: 4850, + EndPos: 4857, }, }, Left: &ast.ExprVariable{ @@ -16154,8 +15779,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5337, - EndPos: 5339, + StartPos: 4850, + EndPos: 4852, }, }, VarName: &ast.Identifier{ @@ -16163,8 +15788,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5337, - EndPos: 5339, + StartPos: 4850, + EndPos: 4852, }, }, Value: []byte("$a"), @@ -16175,8 +15800,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5342, - EndPos: 5344, + StartPos: 4855, + EndPos: 4857, }, }, VarName: &ast.Identifier{ @@ -16184,8 +15809,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5342, - EndPos: 5344, + StartPos: 4855, + EndPos: 4857, }, }, Value: []byte("$b"), @@ -16198,8 +15823,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5348, - EndPos: 5357, + StartPos: 4859, + EndPos: 4868, }, }, Expr: &ast.ExprBinaryNotEqual{ @@ -16207,8 +15832,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5348, - EndPos: 5356, + StartPos: 4859, + EndPos: 4867, }, }, Left: &ast.ExprVariable{ @@ -16216,8 +15841,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5348, - EndPos: 5350, + StartPos: 4859, + EndPos: 4861, }, }, VarName: &ast.Identifier{ @@ -16225,8 +15850,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5348, - EndPos: 5350, + StartPos: 4859, + EndPos: 4861, }, }, Value: []byte("$a"), @@ -16237,8 +15862,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5354, - EndPos: 5356, + StartPos: 4865, + EndPos: 4867, }, }, VarName: &ast.Identifier{ @@ -16246,8 +15871,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5354, - EndPos: 5356, + StartPos: 4865, + EndPos: 4867, }, }, Value: []byte("$b"), @@ -16260,8 +15885,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5360, - EndPos: 5370, + StartPos: 4869, + EndPos: 4879, }, }, Expr: &ast.ExprBinaryNotIdentical{ @@ -16269,8 +15894,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5360, - EndPos: 5369, + StartPos: 4869, + EndPos: 4878, }, }, Left: &ast.ExprVariable{ @@ -16278,8 +15903,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5360, - EndPos: 5362, + StartPos: 4869, + EndPos: 4871, }, }, VarName: &ast.Identifier{ @@ -16287,8 +15912,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5360, - EndPos: 5362, + StartPos: 4869, + EndPos: 4871, }, }, Value: []byte("$a"), @@ -16299,8 +15924,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5367, - EndPos: 5369, + StartPos: 4876, + EndPos: 4878, }, }, VarName: &ast.Identifier{ @@ -16308,8 +15933,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5367, - EndPos: 5369, + StartPos: 4876, + EndPos: 4878, }, }, Value: []byte("$b"), @@ -16322,8 +15947,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5373, - EndPos: 5381, + StartPos: 4880, + EndPos: 4888, }, }, Expr: &ast.ExprBinaryPlus{ @@ -16331,8 +15956,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5373, - EndPos: 5380, + StartPos: 4880, + EndPos: 4887, }, }, Left: &ast.ExprVariable{ @@ -16340,8 +15965,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5373, - EndPos: 5375, + StartPos: 4880, + EndPos: 4882, }, }, VarName: &ast.Identifier{ @@ -16349,8 +15974,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5373, - EndPos: 5375, + StartPos: 4880, + EndPos: 4882, }, }, Value: []byte("$a"), @@ -16361,8 +15986,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5378, - EndPos: 5380, + StartPos: 4885, + EndPos: 4887, }, }, VarName: &ast.Identifier{ @@ -16370,8 +15995,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5378, - EndPos: 5380, + StartPos: 4885, + EndPos: 4887, }, }, Value: []byte("$b"), @@ -16384,8 +16009,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5384, - EndPos: 5393, + StartPos: 4889, + EndPos: 4898, }, }, Expr: &ast.ExprBinaryPow{ @@ -16393,8 +16018,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5384, - EndPos: 5392, + StartPos: 4889, + EndPos: 4897, }, }, Left: &ast.ExprVariable{ @@ -16402,8 +16027,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5384, - EndPos: 5386, + StartPos: 4889, + EndPos: 4891, }, }, VarName: &ast.Identifier{ @@ -16411,8 +16036,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5384, - EndPos: 5386, + StartPos: 4889, + EndPos: 4891, }, }, Value: []byte("$a"), @@ -16423,8 +16048,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5390, - EndPos: 5392, + StartPos: 4895, + EndPos: 4897, }, }, VarName: &ast.Identifier{ @@ -16432,8 +16057,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5390, - EndPos: 5392, + StartPos: 4895, + EndPos: 4897, }, }, Value: []byte("$b"), @@ -16446,8 +16071,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5396, - EndPos: 5405, + StartPos: 4899, + EndPos: 4908, }, }, Expr: &ast.ExprBinaryShiftLeft{ @@ -16455,8 +16080,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5396, - EndPos: 5404, + StartPos: 4899, + EndPos: 4907, }, }, Left: &ast.ExprVariable{ @@ -16464,8 +16089,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5396, - EndPos: 5398, + StartPos: 4899, + EndPos: 4901, }, }, VarName: &ast.Identifier{ @@ -16473,8 +16098,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5396, - EndPos: 5398, + StartPos: 4899, + EndPos: 4901, }, }, Value: []byte("$a"), @@ -16485,8 +16110,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5402, - EndPos: 5404, + StartPos: 4905, + EndPos: 4907, }, }, VarName: &ast.Identifier{ @@ -16494,8 +16119,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5402, - EndPos: 5404, + StartPos: 4905, + EndPos: 4907, }, }, Value: []byte("$b"), @@ -16508,8 +16133,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5408, - EndPos: 5417, + StartPos: 4909, + EndPos: 4918, }, }, Expr: &ast.ExprBinaryShiftRight{ @@ -16517,8 +16142,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5408, - EndPos: 5416, + StartPos: 4909, + EndPos: 4917, }, }, Left: &ast.ExprVariable{ @@ -16526,8 +16151,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5408, - EndPos: 5410, + StartPos: 4909, + EndPos: 4911, }, }, VarName: &ast.Identifier{ @@ -16535,8 +16160,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5408, - EndPos: 5410, + StartPos: 4909, + EndPos: 4911, }, }, Value: []byte("$a"), @@ -16547,8 +16172,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5414, - EndPos: 5416, + StartPos: 4915, + EndPos: 4917, }, }, VarName: &ast.Identifier{ @@ -16556,8 +16181,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5414, - EndPos: 5416, + StartPos: 4915, + EndPos: 4917, }, }, Value: []byte("$b"), @@ -16570,8 +16195,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5420, - EndPos: 5429, + StartPos: 4919, + EndPos: 4928, }, }, Expr: &ast.ExprBinarySmallerOrEqual{ @@ -16579,8 +16204,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5420, - EndPos: 5428, + StartPos: 4919, + EndPos: 4927, }, }, Left: &ast.ExprVariable{ @@ -16588,8 +16213,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5420, - EndPos: 5422, + StartPos: 4919, + EndPos: 4921, }, }, VarName: &ast.Identifier{ @@ -16597,8 +16222,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5420, - EndPos: 5422, + StartPos: 4919, + EndPos: 4921, }, }, Value: []byte("$a"), @@ -16609,8 +16234,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5426, - EndPos: 5428, + StartPos: 4925, + EndPos: 4927, }, }, VarName: &ast.Identifier{ @@ -16618,8 +16243,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5426, - EndPos: 5428, + StartPos: 4925, + EndPos: 4927, }, }, Value: []byte("$b"), @@ -16632,8 +16257,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5432, - EndPos: 5440, + StartPos: 4929, + EndPos: 4937, }, }, Expr: &ast.ExprBinarySmaller{ @@ -16641,8 +16266,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5432, - EndPos: 5439, + StartPos: 4929, + EndPos: 4936, }, }, Left: &ast.ExprVariable{ @@ -16650,8 +16275,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5432, - EndPos: 5434, + StartPos: 4929, + EndPos: 4931, }, }, VarName: &ast.Identifier{ @@ -16659,8 +16284,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5432, - EndPos: 5434, + StartPos: 4929, + EndPos: 4931, }, }, Value: []byte("$a"), @@ -16671,8 +16296,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5437, - EndPos: 5439, + StartPos: 4934, + EndPos: 4936, }, }, VarName: &ast.Identifier{ @@ -16680,8 +16305,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5437, - EndPos: 5439, + StartPos: 4934, + EndPos: 4936, }, }, Value: []byte("$b"), @@ -16694,8 +16319,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5444, - EndPos: 5453, + StartPos: 4939, + EndPos: 4948, }, }, Expr: &ast.ExprAssignReference{ @@ -16703,8 +16328,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5444, - EndPos: 5452, + StartPos: 4939, + EndPos: 4947, }, }, Var: &ast.ExprVariable{ @@ -16712,8 +16337,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5444, - EndPos: 5446, + StartPos: 4939, + EndPos: 4941, }, }, VarName: &ast.Identifier{ @@ -16721,8 +16346,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5444, - EndPos: 5446, + StartPos: 4939, + EndPos: 4941, }, }, Value: []byte("$a"), @@ -16733,8 +16358,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5450, - EndPos: 5452, + StartPos: 4945, + EndPos: 4947, }, }, VarName: &ast.Identifier{ @@ -16742,8 +16367,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5450, - EndPos: 5452, + StartPos: 4945, + EndPos: 4947, }, }, Value: []byte("$b"), @@ -16756,8 +16381,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5456, - EndPos: 5470, + StartPos: 4949, + EndPos: 4963, }, }, Expr: &ast.ExprAssignReference{ @@ -16765,8 +16390,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5456, - EndPos: 5469, + StartPos: 4949, + EndPos: 4962, }, }, Var: &ast.ExprVariable{ @@ -16774,8 +16399,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5456, - EndPos: 5458, + StartPos: 4949, + EndPos: 4951, }, }, VarName: &ast.Identifier{ @@ -16783,8 +16408,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5456, - EndPos: 5458, + StartPos: 4949, + EndPos: 4951, }, }, Value: []byte("$a"), @@ -16795,8 +16420,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5462, - EndPos: 5469, + StartPos: 4955, + EndPos: 4962, }, }, Class: &ast.NameName{ @@ -16804,8 +16429,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5466, - EndPos: 5469, + StartPos: 4959, + EndPos: 4962, }, }, Parts: []ast.Vertex{ @@ -16814,8 +16439,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5466, - EndPos: 5469, + StartPos: 4959, + EndPos: 4962, }, }, Value: []byte("Foo"), @@ -16830,8 +16455,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5473, - EndPos: 5491, + StartPos: 4964, + EndPos: 4982, }, }, Expr: &ast.ExprAssignReference{ @@ -16839,8 +16464,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5473, - EndPos: 5490, + StartPos: 4964, + EndPos: 4981, }, }, Var: &ast.ExprVariable{ @@ -16848,8 +16473,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5473, - EndPos: 5475, + StartPos: 4964, + EndPos: 4966, }, }, VarName: &ast.Identifier{ @@ -16857,8 +16482,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5473, - EndPos: 5475, + StartPos: 4964, + EndPos: 4966, }, }, Value: []byte("$a"), @@ -16869,8 +16494,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5479, - EndPos: 5490, + StartPos: 4970, + EndPos: 4981, }, }, Class: &ast.NameName{ @@ -16878,8 +16503,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5483, - EndPos: 5486, + StartPos: 4974, + EndPos: 4977, }, }, Parts: []ast.Vertex{ @@ -16888,8 +16513,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5483, - EndPos: 5486, + StartPos: 4974, + EndPos: 4977, }, }, Value: []byte("Foo"), @@ -16901,8 +16526,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5486, - EndPos: 5490, + StartPos: 4977, + EndPos: 4981, }, }, Arguments: []ast.Vertex{ @@ -16911,19 +16536,17 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5487, - EndPos: 5489, + StartPos: 4978, + EndPos: 4980, }, }, - IsReference: false, - Variadic: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5487, - EndPos: 5489, + StartPos: 4978, + EndPos: 4980, }, }, VarName: &ast.Identifier{ @@ -16931,8 +16554,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5487, - EndPos: 5489, + StartPos: 4978, + EndPos: 4980, }, }, Value: []byte("$b"), @@ -16949,8 +16572,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5494, - EndPos: 5502, + StartPos: 4983, + EndPos: 4991, }, }, Expr: &ast.ExprAssign{ @@ -16958,8 +16581,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5494, - EndPos: 5501, + StartPos: 4983, + EndPos: 4990, }, }, Var: &ast.ExprVariable{ @@ -16967,8 +16590,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5494, - EndPos: 5496, + StartPos: 4983, + EndPos: 4985, }, }, VarName: &ast.Identifier{ @@ -16976,8 +16599,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5494, - EndPos: 5496, + StartPos: 4983, + EndPos: 4985, }, }, Value: []byte("$a"), @@ -16988,8 +16611,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5499, - EndPos: 5501, + StartPos: 4988, + EndPos: 4990, }, }, VarName: &ast.Identifier{ @@ -16997,8 +16620,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5499, - EndPos: 5501, + StartPos: 4988, + EndPos: 4990, }, }, Value: []byte("$b"), @@ -17011,8 +16634,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5505, - EndPos: 5514, + StartPos: 4992, + EndPos: 5001, }, }, Expr: &ast.ExprAssignBitwiseAnd{ @@ -17020,8 +16643,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5505, - EndPos: 5513, + StartPos: 4992, + EndPos: 5000, }, }, Var: &ast.ExprVariable{ @@ -17029,8 +16652,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5505, - EndPos: 5507, + StartPos: 4992, + EndPos: 4994, }, }, VarName: &ast.Identifier{ @@ -17038,8 +16661,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5505, - EndPos: 5507, + StartPos: 4992, + EndPos: 4994, }, }, Value: []byte("$a"), @@ -17050,8 +16673,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5511, - EndPos: 5513, + StartPos: 4998, + EndPos: 5000, }, }, VarName: &ast.Identifier{ @@ -17059,8 +16682,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5511, - EndPos: 5513, + StartPos: 4998, + EndPos: 5000, }, }, Value: []byte("$b"), @@ -17073,8 +16696,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5517, - EndPos: 5526, + StartPos: 5002, + EndPos: 5011, }, }, Expr: &ast.ExprAssignBitwiseOr{ @@ -17082,8 +16705,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5517, - EndPos: 5525, + StartPos: 5002, + EndPos: 5010, }, }, Var: &ast.ExprVariable{ @@ -17091,8 +16714,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5517, - EndPos: 5519, + StartPos: 5002, + EndPos: 5004, }, }, VarName: &ast.Identifier{ @@ -17100,8 +16723,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5517, - EndPos: 5519, + StartPos: 5002, + EndPos: 5004, }, }, Value: []byte("$a"), @@ -17112,8 +16735,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5523, - EndPos: 5525, + StartPos: 5008, + EndPos: 5010, }, }, VarName: &ast.Identifier{ @@ -17121,8 +16744,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5523, - EndPos: 5525, + StartPos: 5008, + EndPos: 5010, }, }, Value: []byte("$b"), @@ -17135,8 +16758,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5529, - EndPos: 5538, + StartPos: 5012, + EndPos: 5021, }, }, Expr: &ast.ExprAssignBitwiseXor{ @@ -17144,8 +16767,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5529, - EndPos: 5537, + StartPos: 5012, + EndPos: 5020, }, }, Var: &ast.ExprVariable{ @@ -17153,8 +16776,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5529, - EndPos: 5531, + StartPos: 5012, + EndPos: 5014, }, }, VarName: &ast.Identifier{ @@ -17162,8 +16785,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5529, - EndPos: 5531, + StartPos: 5012, + EndPos: 5014, }, }, Value: []byte("$a"), @@ -17174,8 +16797,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5535, - EndPos: 5537, + StartPos: 5018, + EndPos: 5020, }, }, VarName: &ast.Identifier{ @@ -17183,8 +16806,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5535, - EndPos: 5537, + StartPos: 5018, + EndPos: 5020, }, }, Value: []byte("$b"), @@ -17197,8 +16820,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5541, - EndPos: 5550, + StartPos: 5022, + EndPos: 5031, }, }, Expr: &ast.ExprAssignConcat{ @@ -17206,8 +16829,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5541, - EndPos: 5549, + StartPos: 5022, + EndPos: 5030, }, }, Var: &ast.ExprVariable{ @@ -17215,8 +16838,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5541, - EndPos: 5543, + StartPos: 5022, + EndPos: 5024, }, }, VarName: &ast.Identifier{ @@ -17224,8 +16847,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5541, - EndPos: 5543, + StartPos: 5022, + EndPos: 5024, }, }, Value: []byte("$a"), @@ -17236,8 +16859,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5547, - EndPos: 5549, + StartPos: 5028, + EndPos: 5030, }, }, VarName: &ast.Identifier{ @@ -17245,8 +16868,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 301, EndLine: 301, - StartPos: 5547, - EndPos: 5549, + StartPos: 5028, + EndPos: 5030, }, }, Value: []byte("$b"), @@ -17259,8 +16882,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5553, - EndPos: 5562, + StartPos: 5032, + EndPos: 5041, }, }, Expr: &ast.ExprAssignDiv{ @@ -17268,8 +16891,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5553, - EndPos: 5561, + StartPos: 5032, + EndPos: 5040, }, }, Var: &ast.ExprVariable{ @@ -17277,8 +16900,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5553, - EndPos: 5555, + StartPos: 5032, + EndPos: 5034, }, }, VarName: &ast.Identifier{ @@ -17286,8 +16909,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5553, - EndPos: 5555, + StartPos: 5032, + EndPos: 5034, }, }, Value: []byte("$a"), @@ -17298,8 +16921,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5559, - EndPos: 5561, + StartPos: 5038, + EndPos: 5040, }, }, VarName: &ast.Identifier{ @@ -17307,8 +16930,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5559, - EndPos: 5561, + StartPos: 5038, + EndPos: 5040, }, }, Value: []byte("$b"), @@ -17321,8 +16944,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5565, - EndPos: 5574, + StartPos: 5042, + EndPos: 5051, }, }, Expr: &ast.ExprAssignMinus{ @@ -17330,8 +16953,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5565, - EndPos: 5573, + StartPos: 5042, + EndPos: 5050, }, }, Var: &ast.ExprVariable{ @@ -17339,8 +16962,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5565, - EndPos: 5567, + StartPos: 5042, + EndPos: 5044, }, }, VarName: &ast.Identifier{ @@ -17348,8 +16971,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5565, - EndPos: 5567, + StartPos: 5042, + EndPos: 5044, }, }, Value: []byte("$a"), @@ -17360,8 +16983,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5571, - EndPos: 5573, + StartPos: 5048, + EndPos: 5050, }, }, VarName: &ast.Identifier{ @@ -17369,8 +16992,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5571, - EndPos: 5573, + StartPos: 5048, + EndPos: 5050, }, }, Value: []byte("$b"), @@ -17383,8 +17006,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5577, - EndPos: 5586, + StartPos: 5052, + EndPos: 5061, }, }, Expr: &ast.ExprAssignMod{ @@ -17392,8 +17015,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5577, - EndPos: 5585, + StartPos: 5052, + EndPos: 5060, }, }, Var: &ast.ExprVariable{ @@ -17401,8 +17024,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5577, - EndPos: 5579, + StartPos: 5052, + EndPos: 5054, }, }, VarName: &ast.Identifier{ @@ -17410,8 +17033,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5577, - EndPos: 5579, + StartPos: 5052, + EndPos: 5054, }, }, Value: []byte("$a"), @@ -17422,8 +17045,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5583, - EndPos: 5585, + StartPos: 5058, + EndPos: 5060, }, }, VarName: &ast.Identifier{ @@ -17431,8 +17054,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5583, - EndPos: 5585, + StartPos: 5058, + EndPos: 5060, }, }, Value: []byte("$b"), @@ -17445,8 +17068,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5589, - EndPos: 5598, + StartPos: 5062, + EndPos: 5071, }, }, Expr: &ast.ExprAssignMul{ @@ -17454,8 +17077,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5589, - EndPos: 5597, + StartPos: 5062, + EndPos: 5070, }, }, Var: &ast.ExprVariable{ @@ -17463,8 +17086,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5589, - EndPos: 5591, + StartPos: 5062, + EndPos: 5064, }, }, VarName: &ast.Identifier{ @@ -17472,8 +17095,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5589, - EndPos: 5591, + StartPos: 5062, + EndPos: 5064, }, }, Value: []byte("$a"), @@ -17484,8 +17107,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5595, - EndPos: 5597, + StartPos: 5068, + EndPos: 5070, }, }, VarName: &ast.Identifier{ @@ -17493,8 +17116,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5595, - EndPos: 5597, + StartPos: 5068, + EndPos: 5070, }, }, Value: []byte("$b"), @@ -17507,8 +17130,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5601, - EndPos: 5610, + StartPos: 5072, + EndPos: 5081, }, }, Expr: &ast.ExprAssignPlus{ @@ -17516,8 +17139,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5601, - EndPos: 5609, + StartPos: 5072, + EndPos: 5080, }, }, Var: &ast.ExprVariable{ @@ -17525,8 +17148,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5601, - EndPos: 5603, + StartPos: 5072, + EndPos: 5074, }, }, VarName: &ast.Identifier{ @@ -17534,8 +17157,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5601, - EndPos: 5603, + StartPos: 5072, + EndPos: 5074, }, }, Value: []byte("$a"), @@ -17546,8 +17169,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5607, - EndPos: 5609, + StartPos: 5078, + EndPos: 5080, }, }, VarName: &ast.Identifier{ @@ -17555,8 +17178,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5607, - EndPos: 5609, + StartPos: 5078, + EndPos: 5080, }, }, Value: []byte("$b"), @@ -17569,8 +17192,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5613, - EndPos: 5623, + StartPos: 5082, + EndPos: 5092, }, }, Expr: &ast.ExprAssignPow{ @@ -17578,8 +17201,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5613, - EndPos: 5622, + StartPos: 5082, + EndPos: 5091, }, }, Var: &ast.ExprVariable{ @@ -17587,8 +17210,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5613, - EndPos: 5615, + StartPos: 5082, + EndPos: 5084, }, }, VarName: &ast.Identifier{ @@ -17596,8 +17219,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5613, - EndPos: 5615, + StartPos: 5082, + EndPos: 5084, }, }, Value: []byte("$a"), @@ -17608,8 +17231,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5620, - EndPos: 5622, + StartPos: 5089, + EndPos: 5091, }, }, VarName: &ast.Identifier{ @@ -17617,8 +17240,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5620, - EndPos: 5622, + StartPos: 5089, + EndPos: 5091, }, }, Value: []byte("$b"), @@ -17631,8 +17254,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5626, - EndPos: 5636, + StartPos: 5093, + EndPos: 5103, }, }, Expr: &ast.ExprAssignShiftLeft{ @@ -17640,8 +17263,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5626, - EndPos: 5635, + StartPos: 5093, + EndPos: 5102, }, }, Var: &ast.ExprVariable{ @@ -17649,8 +17272,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5626, - EndPos: 5628, + StartPos: 5093, + EndPos: 5095, }, }, VarName: &ast.Identifier{ @@ -17658,8 +17281,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5626, - EndPos: 5628, + StartPos: 5093, + EndPos: 5095, }, }, Value: []byte("$a"), @@ -17670,8 +17293,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5633, - EndPos: 5635, + StartPos: 5100, + EndPos: 5102, }, }, VarName: &ast.Identifier{ @@ -17679,8 +17302,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5633, - EndPos: 5635, + StartPos: 5100, + EndPos: 5102, }, }, Value: []byte("$b"), @@ -17693,8 +17316,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5639, - EndPos: 5649, + StartPos: 5104, + EndPos: 5114, }, }, Expr: &ast.ExprAssignShiftRight{ @@ -17702,8 +17325,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5639, - EndPos: 5648, + StartPos: 5104, + EndPos: 5113, }, }, Var: &ast.ExprVariable{ @@ -17711,8 +17334,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5639, - EndPos: 5641, + StartPos: 5104, + EndPos: 5106, }, }, VarName: &ast.Identifier{ @@ -17720,8 +17343,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5639, - EndPos: 5641, + StartPos: 5104, + EndPos: 5106, }, }, Value: []byte("$a"), @@ -17732,8 +17355,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5646, - EndPos: 5648, + StartPos: 5111, + EndPos: 5113, }, }, VarName: &ast.Identifier{ @@ -17741,8 +17364,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5646, - EndPos: 5648, + StartPos: 5111, + EndPos: 5113, }, }, Value: []byte("$b"), @@ -17755,8 +17378,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5655, - EndPos: 5667, + StartPos: 5118, + EndPos: 5130, }, }, Expr: &ast.ExprNew{ @@ -17764,8 +17387,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5655, - EndPos: 5665, + StartPos: 5118, + EndPos: 5128, }, }, Class: &ast.NameFullyQualified{ @@ -17773,8 +17396,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5659, - EndPos: 5663, + StartPos: 5122, + EndPos: 5126, }, }, Parts: []ast.Vertex{ @@ -17783,8 +17406,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5660, - EndPos: 5663, + StartPos: 5123, + EndPos: 5126, }, }, Value: []byte("Foo"), @@ -17796,8 +17419,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5663, - EndPos: 5665, + StartPos: 5126, + EndPos: 5128, }, }, }, @@ -17808,8 +17431,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5691, - EndPos: 5695, + StartPos: 5152, + EndPos: 5156, }, }, Expr: &ast.ExprPropertyFetch{ @@ -17817,8 +17440,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5691, - EndPos: 5694, + StartPos: 5152, + EndPos: 5155, }, }, Var: &ast.ExprMethodCall{ @@ -17826,8 +17449,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5687, - EndPos: 5689, + StartPos: 5148, + EndPos: 5150, }, }, Var: &ast.ExprNew{ @@ -17835,8 +17458,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5671, - EndPos: 5681, + StartPos: 5132, + EndPos: 5142, }, }, Class: &ast.NameFullyQualified{ @@ -17844,8 +17467,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5675, - EndPos: 5679, + StartPos: 5136, + EndPos: 5140, }, }, Parts: []ast.Vertex{ @@ -17854,8 +17477,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5676, - EndPos: 5679, + StartPos: 5137, + EndPos: 5140, }, }, Value: []byte("Foo"), @@ -17867,8 +17490,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5679, - EndPos: 5681, + StartPos: 5140, + EndPos: 5142, }, }, }, @@ -17878,8 +17501,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5684, - EndPos: 5687, + StartPos: 5145, + EndPos: 5148, }, }, Value: []byte("bar"), @@ -17889,8 +17512,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5687, - EndPos: 5689, + StartPos: 5148, + EndPos: 5150, }, }, }, @@ -17900,8 +17523,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5691, - EndPos: 5694, + StartPos: 5152, + EndPos: 5155, }, }, Value: []byte("baz"), @@ -17913,8 +17536,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5714, - EndPos: 5717, + StartPos: 5173, + EndPos: 5176, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -17922,8 +17545,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5714, - EndPos: 5715, + StartPos: 5173, + EndPos: 5174, }, }, Var: &ast.ExprArrayDimFetch{ @@ -17931,8 +17554,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5711, - EndPos: 5712, + StartPos: 5170, + EndPos: 5171, }, }, Var: &ast.ExprNew{ @@ -17940,8 +17563,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5699, - EndPos: 5709, + StartPos: 5158, + EndPos: 5168, }, }, Class: &ast.NameFullyQualified{ @@ -17949,8 +17572,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5703, - EndPos: 5707, + StartPos: 5162, + EndPos: 5166, }, }, Parts: []ast.Vertex{ @@ -17959,8 +17582,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5704, - EndPos: 5707, + StartPos: 5163, + EndPos: 5166, }, }, Value: []byte("Foo"), @@ -17972,8 +17595,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5707, - EndPos: 5709, + StartPos: 5166, + EndPos: 5168, }, }, }, @@ -17983,8 +17606,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5711, - EndPos: 5712, + StartPos: 5170, + EndPos: 5171, }, }, Value: []byte("0"), @@ -17995,8 +17618,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5714, - EndPos: 5715, + StartPos: 5173, + EndPos: 5174, }, }, Value: []byte("0"), @@ -18008,8 +17631,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5740, - EndPos: 5743, + StartPos: 5197, + EndPos: 5200, }, }, Expr: &ast.ExprMethodCall{ @@ -18017,8 +17640,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5740, - EndPos: 5742, + StartPos: 5197, + EndPos: 5199, }, }, Var: &ast.ExprArrayDimFetch{ @@ -18026,8 +17649,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5733, - EndPos: 5734, + StartPos: 5190, + EndPos: 5191, }, }, Var: &ast.ExprNew{ @@ -18035,8 +17658,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5721, - EndPos: 5731, + StartPos: 5178, + EndPos: 5188, }, }, Class: &ast.NameFullyQualified{ @@ -18044,8 +17667,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5725, - EndPos: 5729, + StartPos: 5182, + EndPos: 5186, }, }, Parts: []ast.Vertex{ @@ -18054,8 +17677,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5726, - EndPos: 5729, + StartPos: 5183, + EndPos: 5186, }, }, Value: []byte("Foo"), @@ -18067,8 +17690,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5729, - EndPos: 5731, + StartPos: 5186, + EndPos: 5188, }, }, }, @@ -18078,8 +17701,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5733, - EndPos: 5734, + StartPos: 5190, + EndPos: 5191, }, }, Value: []byte("0"), @@ -18090,8 +17713,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5737, - EndPos: 5740, + StartPos: 5194, + EndPos: 5197, }, }, Value: []byte("bar"), @@ -18101,8 +17724,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5740, - EndPos: 5742, + StartPos: 5197, + EndPos: 5199, }, }, }, @@ -18113,8 +17736,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5747, - EndPos: 5764, + StartPos: 5202, + EndPos: 5219, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -18122,8 +17745,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5747, - EndPos: 5763, + StartPos: 5202, + EndPos: 5218, }, }, Var: &ast.ExprArrayDimFetch{ @@ -18131,8 +17754,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5747, - EndPos: 5760, + StartPos: 5202, + EndPos: 5215, }, }, Var: &ast.ExprArray{ @@ -18140,8 +17763,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5747, - EndPos: 5757, + StartPos: 5202, + EndPos: 5212, }, }, Items: []ast.Vertex{ @@ -18150,8 +17773,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5753, - EndPos: 5756, + StartPos: 5208, + EndPos: 5211, }, }, Val: &ast.ExprShortArray{ @@ -18159,8 +17782,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5753, - EndPos: 5756, + StartPos: 5208, + EndPos: 5211, }, }, Items: []ast.Vertex{ @@ -18169,8 +17792,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5754, - EndPos: 5755, + StartPos: 5209, + EndPos: 5210, }, }, Val: &ast.ScalarLnumber{ @@ -18178,8 +17801,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5754, - EndPos: 5755, + StartPos: 5209, + EndPos: 5210, }, }, Value: []byte("0"), @@ -18195,8 +17818,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5758, - EndPos: 5759, + StartPos: 5213, + EndPos: 5214, }, }, Value: []byte("0"), @@ -18207,8 +17830,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5761, - EndPos: 5762, + StartPos: 5216, + EndPos: 5217, }, }, Value: []byte("0"), @@ -18220,8 +17843,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5767, - EndPos: 5776, + StartPos: 5220, + EndPos: 5229, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -18229,8 +17852,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5767, - EndPos: 5775, + StartPos: 5220, + EndPos: 5228, }, }, Var: &ast.ScalarString{ @@ -18238,8 +17861,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5767, - EndPos: 5772, + StartPos: 5220, + EndPos: 5225, }, }, Value: []byte("\"foo\""), @@ -18249,8 +17872,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5773, - EndPos: 5774, + StartPos: 5226, + EndPos: 5227, }, }, Value: []byte("0"), @@ -18262,8 +17885,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5779, - EndPos: 5786, + StartPos: 5230, + EndPos: 5237, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -18271,8 +17894,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5779, - EndPos: 5785, + StartPos: 5230, + EndPos: 5236, }, }, Var: &ast.ExprConstFetch{ @@ -18280,8 +17903,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5779, - EndPos: 5782, + StartPos: 5230, + EndPos: 5233, }, }, Const: &ast.NameName{ @@ -18289,8 +17912,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5779, - EndPos: 5782, + StartPos: 5230, + EndPos: 5233, }, }, Parts: []ast.Vertex{ @@ -18299,8 +17922,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5779, - EndPos: 5782, + StartPos: 5230, + EndPos: 5233, }, }, Value: []byte("foo"), @@ -18313,8 +17936,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 319, EndLine: 319, - StartPos: 5783, - EndPos: 5784, + StartPos: 5234, + EndPos: 5235, }, }, Value: []byte("0"), @@ -18326,8 +17949,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5789, - EndPos: 5801, + StartPos: 5238, + EndPos: 5250, }, }, Expr: &ast.ExprClassConstFetch{ @@ -18335,8 +17958,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5789, - EndPos: 5800, + StartPos: 5238, + EndPos: 5249, }, }, Class: &ast.Identifier{ @@ -18344,8 +17967,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5789, - EndPos: 5795, + StartPos: 5238, + EndPos: 5244, }, }, Value: []byte("static"), @@ -18355,8 +17978,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5797, - EndPos: 5800, + StartPos: 5246, + EndPos: 5249, }, }, Value: []byte("foo"), @@ -18368,8 +17991,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5805, - EndPos: 5814, + StartPos: 5252, + EndPos: 5261, }, }, Expr: &ast.ExprNew{ @@ -18377,8 +18000,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5805, - EndPos: 5813, + StartPos: 5252, + EndPos: 5260, }, }, Class: &ast.ExprVariable{ @@ -18386,8 +18009,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5809, - EndPos: 5813, + StartPos: 5256, + EndPos: 5260, }, }, VarName: &ast.Identifier{ @@ -18395,8 +18018,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5809, - EndPos: 5813, + StartPos: 5256, + EndPos: 5260, }, }, Value: []byte("$foo"), @@ -18409,8 +18032,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5817, - EndPos: 5832, + StartPos: 5262, + EndPos: 5277, }, }, Expr: &ast.ExprNew{ @@ -18418,8 +18041,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5817, - EndPos: 5831, + StartPos: 5262, + EndPos: 5276, }, }, Class: &ast.ExprStaticPropertyFetch{ @@ -18427,8 +18050,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5821, - EndPos: 5831, + StartPos: 5266, + EndPos: 5276, }, }, Class: &ast.ExprVariable{ @@ -18436,8 +18059,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5821, - EndPos: 5825, + StartPos: 5266, + EndPos: 5270, }, }, VarName: &ast.Identifier{ @@ -18445,8 +18068,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5821, - EndPos: 5825, + StartPos: 5266, + EndPos: 5270, }, }, Value: []byte("$foo"), @@ -18457,8 +18080,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5827, - EndPos: 5831, + StartPos: 5272, + EndPos: 5276, }, }, VarName: &ast.Identifier{ @@ -18466,8 +18089,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5827, - EndPos: 5831, + StartPos: 5272, + EndPos: 5276, }, }, Value: []byte("$bar"), @@ -18481,8 +18104,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5835, - EndPos: 5848, + StartPos: 5278, + EndPos: 5291, }, }, Expr: &ast.ExprNew{ @@ -18490,8 +18113,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5835, - EndPos: 5846, + StartPos: 5278, + EndPos: 5289, }, }, Class: &ast.ExprArrayDimFetch{ @@ -18499,8 +18122,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5845, - EndPos: 5846, + StartPos: 5288, + EndPos: 5289, }, }, Var: &ast.ExprPropertyFetch{ @@ -18508,8 +18131,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5843, - EndPos: 5846, + StartPos: 5286, + EndPos: 5289, }, }, Var: &ast.ExprVariable{ @@ -18517,8 +18140,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5839, - EndPos: 5844, + StartPos: 5282, + EndPos: 5287, }, }, VarName: &ast.Identifier{ @@ -18526,8 +18149,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5839, - EndPos: 5841, + StartPos: 5282, + EndPos: 5284, }, }, Value: []byte("$a"), @@ -18538,8 +18161,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5843, - EndPos: 5844, + StartPos: 5286, + EndPos: 5287, }, }, Value: []byte("b"), @@ -18550,8 +18173,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5845, - EndPos: 5846, + StartPos: 5288, + EndPos: 5289, }, }, Value: []byte("0"), @@ -18564,8 +18187,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5851, - EndPos: 5883, + StartPos: 5292, + EndPos: 5324, }, }, Expr: &ast.ExprNew{ @@ -18573,8 +18196,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5851, - EndPos: 5881, + StartPos: 5292, + EndPos: 5322, }, }, Class: &ast.ExprArrayDimFetch{ @@ -18582,8 +18205,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5880, - EndPos: 5881, + StartPos: 5321, + EndPos: 5322, }, }, Var: &ast.ExprPropertyFetch{ @@ -18591,8 +18214,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5878, - EndPos: 5881, + StartPos: 5319, + EndPos: 5322, }, }, Var: &ast.ExprPropertyFetch{ @@ -18600,8 +18223,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5874, - EndPos: 5879, + StartPos: 5315, + EndPos: 5320, }, }, Var: &ast.ExprArrayDimFetch{ @@ -18609,8 +18232,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5861, - EndPos: 5876, + StartPos: 5302, + EndPos: 5317, }, }, Var: &ast.ExprPropertyFetch{ @@ -18618,8 +18241,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5859, - EndPos: 5871, + StartPos: 5300, + EndPos: 5312, }, }, Var: &ast.ExprVariable{ @@ -18627,8 +18250,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5855, - EndPos: 5860, + StartPos: 5296, + EndPos: 5301, }, }, VarName: &ast.Identifier{ @@ -18636,8 +18259,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5855, - EndPos: 5857, + StartPos: 5296, + EndPos: 5298, }, }, Value: []byte("$a"), @@ -18648,8 +18271,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5859, - EndPos: 5860, + StartPos: 5300, + EndPos: 5301, }, }, Value: []byte("b"), @@ -18660,8 +18283,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5861, - EndPos: 5871, + StartPos: 5302, + EndPos: 5312, }, }, Condition: &ast.ExprVariable{ @@ -18669,8 +18292,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5861, - EndPos: 5863, + StartPos: 5302, + EndPos: 5304, }, }, VarName: &ast.Identifier{ @@ -18678,8 +18301,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5861, - EndPos: 5863, + StartPos: 5302, + EndPos: 5304, }, }, Value: []byte("$b"), @@ -18690,8 +18313,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5867, - EndPos: 5871, + StartPos: 5308, + EndPos: 5312, }, }, Const: &ast.NameName{ @@ -18699,8 +18322,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5867, - EndPos: 5871, + StartPos: 5308, + EndPos: 5312, }, }, Parts: []ast.Vertex{ @@ -18709,8 +18332,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5867, - EndPos: 5871, + StartPos: 5308, + EndPos: 5312, }, }, Value: []byte("null"), @@ -18725,8 +18348,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5874, - EndPos: 5876, + StartPos: 5315, + EndPos: 5317, }, }, VarName: &ast.Identifier{ @@ -18734,8 +18357,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5874, - EndPos: 5876, + StartPos: 5315, + EndPos: 5317, }, }, Value: []byte("$c"), @@ -18747,8 +18370,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5878, - EndPos: 5879, + StartPos: 5319, + EndPos: 5320, }, }, Value: []byte("d"), @@ -18759,8 +18382,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5880, - EndPos: 5881, + StartPos: 5321, + EndPos: 5322, }, }, Value: []byte("0"), @@ -18773,8 +18396,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5883, - EndPos: 5902, + StartPos: 5324, + EndPos: 5343, }, }, Vars: []ast.Vertex{ @@ -18783,8 +18406,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5890, - EndPos: 5901, + StartPos: 5331, + EndPos: 5342, }, }, Var: &ast.ExprVariable{ @@ -18792,8 +18415,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5890, - EndPos: 5892, + StartPos: 5331, + EndPos: 5333, }, }, VarName: &ast.Identifier{ @@ -18801,8 +18424,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5890, - EndPos: 5892, + StartPos: 5331, + EndPos: 5333, }, }, Value: []byte("$a"), @@ -18813,8 +18436,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5895, - EndPos: 5901, + StartPos: 5336, + EndPos: 5342, }, }, Var: &ast.ExprShortArray{ @@ -18822,8 +18445,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5895, - EndPos: 5898, + StartPos: 5336, + EndPos: 5339, }, }, Items: []ast.Vertex{ @@ -18832,8 +18455,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5896, - EndPos: 5897, + StartPos: 5337, + EndPos: 5338, }, }, Val: &ast.ScalarLnumber{ @@ -18841,8 +18464,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5896, - EndPos: 5897, + StartPos: 5337, + EndPos: 5338, }, }, Value: []byte("1"), @@ -18855,8 +18478,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5899, - EndPos: 5900, + StartPos: 5340, + EndPos: 5341, }, }, Value: []byte("0"), @@ -18870,8 +18493,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5906, - EndPos: 5921, + StartPos: 5345, + EndPos: 5360, }, }, Vars: []ast.Vertex{ @@ -18880,8 +18503,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5913, - EndPos: 5920, + StartPos: 5352, + EndPos: 5359, }, }, Var: &ast.ExprVariable{ @@ -18889,8 +18512,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5913, - EndPos: 5915, + StartPos: 5352, + EndPos: 5354, }, }, VarName: &ast.Identifier{ @@ -18898,8 +18521,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5913, - EndPos: 5915, + StartPos: 5352, + EndPos: 5354, }, }, Value: []byte("$a"), @@ -18910,8 +18533,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5918, - EndPos: 5920, + StartPos: 5357, + EndPos: 5359, }, }, Expr: &ast.ScalarLnumber{ @@ -18919,8 +18542,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 327, EndLine: 327, - StartPos: 5919, - EndPos: 5920, + StartPos: 5358, + EndPos: 5359, }, }, Value: []byte("1"), @@ -18934,8 +18557,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5924, - EndPos: 5939, + StartPos: 5361, + EndPos: 5376, }, }, Vars: []ast.Vertex{ @@ -18944,8 +18567,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5931, - EndPos: 5938, + StartPos: 5368, + EndPos: 5375, }, }, Var: &ast.ExprVariable{ @@ -18953,8 +18576,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5931, - EndPos: 5933, + StartPos: 5368, + EndPos: 5370, }, }, VarName: &ast.Identifier{ @@ -18962,8 +18585,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5931, - EndPos: 5933, + StartPos: 5368, + EndPos: 5370, }, }, Value: []byte("$a"), @@ -18974,8 +18597,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5936, - EndPos: 5938, + StartPos: 5373, + EndPos: 5375, }, }, Expr: &ast.ScalarLnumber{ @@ -18983,8 +18606,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5937, - EndPos: 5938, + StartPos: 5374, + EndPos: 5375, }, }, Value: []byte("1"), @@ -18998,8 +18621,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5942, - EndPos: 5957, + StartPos: 5377, + EndPos: 5392, }, }, Vars: []ast.Vertex{ @@ -19008,8 +18631,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5949, - EndPos: 5956, + StartPos: 5384, + EndPos: 5391, }, }, Var: &ast.ExprVariable{ @@ -19017,8 +18640,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5949, - EndPos: 5951, + StartPos: 5384, + EndPos: 5386, }, }, VarName: &ast.Identifier{ @@ -19026,8 +18649,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5949, - EndPos: 5951, + StartPos: 5384, + EndPos: 5386, }, }, Value: []byte("$a"), @@ -19038,8 +18661,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5954, - EndPos: 5956, + StartPos: 5389, + EndPos: 5391, }, }, Expr: &ast.ScalarLnumber{ @@ -19047,8 +18670,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5955, - EndPos: 5956, + StartPos: 5390, + EndPos: 5391, }, }, Value: []byte("1"), @@ -19062,8 +18685,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5960, - EndPos: 5975, + StartPos: 5393, + EndPos: 5408, }, }, Vars: []ast.Vertex{ @@ -19072,8 +18695,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5967, - EndPos: 5974, + StartPos: 5400, + EndPos: 5407, }, }, Var: &ast.ExprVariable{ @@ -19081,8 +18704,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5967, - EndPos: 5969, + StartPos: 5400, + EndPos: 5402, }, }, VarName: &ast.Identifier{ @@ -19090,8 +18713,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5967, - EndPos: 5969, + StartPos: 5400, + EndPos: 5402, }, }, Value: []byte("$a"), @@ -19102,8 +18725,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5972, - EndPos: 5974, + StartPos: 5405, + EndPos: 5407, }, }, Expr: &ast.ScalarLnumber{ @@ -19111,8 +18734,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5973, - EndPos: 5974, + StartPos: 5406, + EndPos: 5407, }, }, Value: []byte("1"), @@ -19126,8 +18749,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5978, - EndPos: 5994, + StartPos: 5409, + EndPos: 5425, }, }, Vars: []ast.Vertex{ @@ -19136,8 +18759,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5985, - EndPos: 5992, + StartPos: 5416, + EndPos: 5423, }, }, Var: &ast.ExprVariable{ @@ -19145,8 +18768,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5985, - EndPos: 5987, + StartPos: 5416, + EndPos: 5418, }, }, VarName: &ast.Identifier{ @@ -19154,8 +18777,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5985, - EndPos: 5987, + StartPos: 5416, + EndPos: 5418, }, }, Value: []byte("$a"), @@ -19166,8 +18789,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 331, EndLine: 331, - StartPos: 5991, - EndPos: 5992, + StartPos: 5422, + EndPos: 5423, }, }, Value: []byte("1"), @@ -19180,8 +18803,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 5997, - EndPos: 6016, + StartPos: 5426, + EndPos: 5445, }, }, Vars: []ast.Vertex{ @@ -19190,8 +18813,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6004, - EndPos: 6015, + StartPos: 5433, + EndPos: 5444, }, }, Var: &ast.ExprVariable{ @@ -19199,8 +18822,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6004, - EndPos: 6006, + StartPos: 5433, + EndPos: 5435, }, }, VarName: &ast.Identifier{ @@ -19208,8 +18831,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6004, - EndPos: 6006, + StartPos: 5433, + EndPos: 5435, }, }, Value: []byte("$a"), @@ -19220,8 +18843,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6009, - EndPos: 6015, + StartPos: 5438, + EndPos: 5444, }, }, Condition: &ast.ScalarLnumber{ @@ -19229,8 +18852,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6009, - EndPos: 6010, + StartPos: 5438, + EndPos: 5439, }, }, Value: []byte("1"), @@ -19240,8 +18863,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6014, - EndPos: 6015, + StartPos: 5443, + EndPos: 5444, }, }, Value: []byte("2"), @@ -19255,8 +18878,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6019, - EndPos: 6041, + StartPos: 5446, + EndPos: 5468, }, }, Vars: []ast.Vertex{ @@ -19265,8 +18888,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6026, - EndPos: 6040, + StartPos: 5453, + EndPos: 5467, }, }, Var: &ast.ExprVariable{ @@ -19274,8 +18897,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6026, - EndPos: 6028, + StartPos: 5453, + EndPos: 5455, }, }, VarName: &ast.Identifier{ @@ -19283,8 +18906,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6026, - EndPos: 6028, + StartPos: 5453, + EndPos: 5455, }, }, Value: []byte("$a"), @@ -19295,8 +18918,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6031, - EndPos: 6040, + StartPos: 5458, + EndPos: 5467, }, }, Condition: &ast.ScalarLnumber{ @@ -19304,8 +18927,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6031, - EndPos: 6032, + StartPos: 5458, + EndPos: 5459, }, }, Value: []byte("1"), @@ -19315,8 +18938,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6035, - EndPos: 6036, + StartPos: 5462, + EndPos: 5463, }, }, Value: []byte("2"), @@ -19326,8 +18949,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6039, - EndPos: 6040, + StartPos: 5466, + EndPos: 5467, }, }, Value: []byte("3"), @@ -19341,8 +18964,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6044, - EndPos: 6062, + StartPos: 5469, + EndPos: 5487, }, }, Vars: []ast.Vertex{ @@ -19351,8 +18974,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6051, - EndPos: 6061, + StartPos: 5476, + EndPos: 5486, }, }, Var: &ast.ExprVariable{ @@ -19360,8 +18983,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6051, - EndPos: 6053, + StartPos: 5476, + EndPos: 5478, }, }, VarName: &ast.Identifier{ @@ -19369,8 +18992,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6051, - EndPos: 6053, + StartPos: 5476, + EndPos: 5478, }, }, Value: []byte("$a"), @@ -19381,8 +19004,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6056, - EndPos: 6061, + StartPos: 5481, + EndPos: 5486, }, }, Left: &ast.ScalarLnumber{ @@ -19390,8 +19013,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6056, - EndPos: 6057, + StartPos: 5481, + EndPos: 5482, }, }, Value: []byte("1"), @@ -19401,8 +19024,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6060, - EndPos: 6061, + StartPos: 5485, + EndPos: 5486, }, }, Value: []byte("2"), @@ -19416,8 +19039,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6065, - EndPos: 6083, + StartPos: 5488, + EndPos: 5506, }, }, Vars: []ast.Vertex{ @@ -19426,8 +19049,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6072, - EndPos: 6082, + StartPos: 5495, + EndPos: 5505, }, }, Var: &ast.ExprVariable{ @@ -19435,8 +19058,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6072, - EndPos: 6074, + StartPos: 5495, + EndPos: 5497, }, }, VarName: &ast.Identifier{ @@ -19444,8 +19067,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6072, - EndPos: 6074, + StartPos: 5495, + EndPos: 5497, }, }, Value: []byte("$a"), @@ -19456,8 +19079,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6077, - EndPos: 6082, + StartPos: 5500, + EndPos: 5505, }, }, Left: &ast.ScalarLnumber{ @@ -19465,8 +19088,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6077, - EndPos: 6078, + StartPos: 5500, + EndPos: 5501, }, }, Value: []byte("1"), @@ -19476,8 +19099,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6081, - EndPos: 6082, + StartPos: 5504, + EndPos: 5505, }, }, Value: []byte("2"), @@ -19491,8 +19114,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6086, - EndPos: 6104, + StartPos: 5507, + EndPos: 5525, }, }, Vars: []ast.Vertex{ @@ -19501,8 +19124,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6093, - EndPos: 6103, + StartPos: 5514, + EndPos: 5524, }, }, Var: &ast.ExprVariable{ @@ -19510,8 +19133,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6093, - EndPos: 6095, + StartPos: 5514, + EndPos: 5516, }, }, VarName: &ast.Identifier{ @@ -19519,8 +19142,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6093, - EndPos: 6095, + StartPos: 5514, + EndPos: 5516, }, }, Value: []byte("$a"), @@ -19531,8 +19154,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6098, - EndPos: 6103, + StartPos: 5519, + EndPos: 5524, }, }, Left: &ast.ScalarLnumber{ @@ -19540,8 +19163,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6098, - EndPos: 6099, + StartPos: 5519, + EndPos: 5520, }, }, Value: []byte("1"), @@ -19551,8 +19174,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6102, - EndPos: 6103, + StartPos: 5523, + EndPos: 5524, }, }, Value: []byte("2"), @@ -19566,8 +19189,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6107, - EndPos: 6126, + StartPos: 5526, + EndPos: 5545, }, }, Vars: []ast.Vertex{ @@ -19576,8 +19199,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6114, - EndPos: 6125, + StartPos: 5533, + EndPos: 5544, }, }, Var: &ast.ExprVariable{ @@ -19585,8 +19208,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6114, - EndPos: 6116, + StartPos: 5533, + EndPos: 5535, }, }, VarName: &ast.Identifier{ @@ -19594,8 +19217,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6114, - EndPos: 6116, + StartPos: 5533, + EndPos: 5535, }, }, Value: []byte("$a"), @@ -19606,8 +19229,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6119, - EndPos: 6125, + StartPos: 5538, + EndPos: 5544, }, }, Left: &ast.ScalarLnumber{ @@ -19615,8 +19238,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6119, - EndPos: 6120, + StartPos: 5538, + EndPos: 5539, }, }, Value: []byte("1"), @@ -19626,8 +19249,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6124, - EndPos: 6125, + StartPos: 5543, + EndPos: 5544, }, }, Value: []byte("2"), @@ -19641,8 +19264,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6129, - EndPos: 6148, + StartPos: 5546, + EndPos: 5565, }, }, Vars: []ast.Vertex{ @@ -19651,8 +19274,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6136, - EndPos: 6147, + StartPos: 5553, + EndPos: 5564, }, }, Var: &ast.ExprVariable{ @@ -19660,8 +19283,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6136, - EndPos: 6138, + StartPos: 5553, + EndPos: 5555, }, }, VarName: &ast.Identifier{ @@ -19669,8 +19292,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6136, - EndPos: 6138, + StartPos: 5553, + EndPos: 5555, }, }, Value: []byte("$a"), @@ -19681,8 +19304,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6141, - EndPos: 6147, + StartPos: 5558, + EndPos: 5564, }, }, Left: &ast.ScalarLnumber{ @@ -19690,8 +19313,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6141, - EndPos: 6142, + StartPos: 5558, + EndPos: 5559, }, }, Value: []byte("1"), @@ -19701,8 +19324,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6146, - EndPos: 6147, + StartPos: 5563, + EndPos: 5564, }, }, Value: []byte("2"), @@ -19716,8 +19339,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6151, - EndPos: 6169, + StartPos: 5566, + EndPos: 5584, }, }, Vars: []ast.Vertex{ @@ -19726,8 +19349,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6158, - EndPos: 6168, + StartPos: 5573, + EndPos: 5583, }, }, Var: &ast.ExprVariable{ @@ -19735,8 +19358,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6158, - EndPos: 6160, + StartPos: 5573, + EndPos: 5575, }, }, VarName: &ast.Identifier{ @@ -19744,8 +19367,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6158, - EndPos: 6160, + StartPos: 5573, + EndPos: 5575, }, }, Value: []byte("$a"), @@ -19756,8 +19379,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6163, - EndPos: 6168, + StartPos: 5578, + EndPos: 5583, }, }, Left: &ast.ScalarLnumber{ @@ -19765,8 +19388,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6163, - EndPos: 6164, + StartPos: 5578, + EndPos: 5579, }, }, Value: []byte("1"), @@ -19776,8 +19399,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 339, EndLine: 339, - StartPos: 6167, - EndPos: 6168, + StartPos: 5582, + EndPos: 5583, }, }, Value: []byte("2"), @@ -19791,8 +19414,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6172, - EndPos: 6190, + StartPos: 5585, + EndPos: 5603, }, }, Vars: []ast.Vertex{ @@ -19801,8 +19424,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6179, - EndPos: 6189, + StartPos: 5592, + EndPos: 5602, }, }, Var: &ast.ExprVariable{ @@ -19810,8 +19433,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6179, - EndPos: 6181, + StartPos: 5592, + EndPos: 5594, }, }, VarName: &ast.Identifier{ @@ -19819,8 +19442,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6179, - EndPos: 6181, + StartPos: 5592, + EndPos: 5594, }, }, Value: []byte("$a"), @@ -19831,8 +19454,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6184, - EndPos: 6189, + StartPos: 5597, + EndPos: 5602, }, }, Left: &ast.ScalarLnumber{ @@ -19840,8 +19463,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6184, - EndPos: 6185, + StartPos: 5597, + EndPos: 5598, }, }, Value: []byte("1"), @@ -19851,8 +19474,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6188, - EndPos: 6189, + StartPos: 5601, + EndPos: 5602, }, }, Value: []byte("2"), @@ -19866,8 +19489,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6193, - EndPos: 6212, + StartPos: 5604, + EndPos: 5623, }, }, Vars: []ast.Vertex{ @@ -19876,8 +19499,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6200, - EndPos: 6211, + StartPos: 5611, + EndPos: 5622, }, }, Var: &ast.ExprVariable{ @@ -19885,8 +19508,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6200, - EndPos: 6202, + StartPos: 5611, + EndPos: 5613, }, }, VarName: &ast.Identifier{ @@ -19894,8 +19517,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6200, - EndPos: 6202, + StartPos: 5611, + EndPos: 5613, }, }, Value: []byte("$a"), @@ -19906,8 +19529,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6205, - EndPos: 6211, + StartPos: 5616, + EndPos: 5622, }, }, Left: &ast.ScalarLnumber{ @@ -19915,8 +19538,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6205, - EndPos: 6206, + StartPos: 5616, + EndPos: 5617, }, }, Value: []byte("1"), @@ -19926,8 +19549,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6210, - EndPos: 6211, + StartPos: 5621, + EndPos: 5622, }, }, Value: []byte("2"), @@ -19941,8 +19564,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6215, - EndPos: 6234, + StartPos: 5624, + EndPos: 5643, }, }, Vars: []ast.Vertex{ @@ -19951,8 +19574,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6222, - EndPos: 6233, + StartPos: 5631, + EndPos: 5642, }, }, Var: &ast.ExprVariable{ @@ -19960,8 +19583,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6222, - EndPos: 6224, + StartPos: 5631, + EndPos: 5633, }, }, VarName: &ast.Identifier{ @@ -19969,8 +19592,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6222, - EndPos: 6224, + StartPos: 5631, + EndPos: 5633, }, }, Value: []byte("$a"), @@ -19981,8 +19604,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6227, - EndPos: 6233, + StartPos: 5636, + EndPos: 5642, }, }, Left: &ast.ScalarLnumber{ @@ -19990,8 +19613,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6227, - EndPos: 6228, + StartPos: 5636, + EndPos: 5637, }, }, Value: []byte("1"), @@ -20001,8 +19624,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 342, EndLine: 342, - StartPos: 6232, - EndPos: 6233, + StartPos: 5641, + EndPos: 5642, }, }, Value: []byte("2"), @@ -20016,8 +19639,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6237, - EndPos: 6255, + StartPos: 5644, + EndPos: 5662, }, }, Vars: []ast.Vertex{ @@ -20026,8 +19649,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6244, - EndPos: 6254, + StartPos: 5651, + EndPos: 5661, }, }, Var: &ast.ExprVariable{ @@ -20035,8 +19658,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6244, - EndPos: 6246, + StartPos: 5651, + EndPos: 5653, }, }, VarName: &ast.Identifier{ @@ -20044,8 +19667,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6244, - EndPos: 6246, + StartPos: 5651, + EndPos: 5653, }, }, Value: []byte("$a"), @@ -20056,8 +19679,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6249, - EndPos: 6254, + StartPos: 5656, + EndPos: 5661, }, }, Left: &ast.ScalarLnumber{ @@ -20065,8 +19688,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6249, - EndPos: 6250, + StartPos: 5656, + EndPos: 5657, }, }, Value: []byte("1"), @@ -20076,8 +19699,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6253, - EndPos: 6254, + StartPos: 5660, + EndPos: 5661, }, }, Value: []byte("2"), @@ -20091,8 +19714,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6258, - EndPos: 6278, + StartPos: 5663, + EndPos: 5683, }, }, Vars: []ast.Vertex{ @@ -20101,8 +19724,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6265, - EndPos: 6277, + StartPos: 5670, + EndPos: 5682, }, }, Var: &ast.ExprVariable{ @@ -20110,8 +19733,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6265, - EndPos: 6267, + StartPos: 5670, + EndPos: 5672, }, }, VarName: &ast.Identifier{ @@ -20119,8 +19742,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6265, - EndPos: 6267, + StartPos: 5670, + EndPos: 5672, }, }, Value: []byte("$a"), @@ -20131,8 +19754,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6270, - EndPos: 6277, + StartPos: 5675, + EndPos: 5682, }, }, Left: &ast.ScalarLnumber{ @@ -20140,8 +19763,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6270, - EndPos: 6271, + StartPos: 5675, + EndPos: 5676, }, }, Value: []byte("1"), @@ -20151,8 +19774,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6276, - EndPos: 6277, + StartPos: 5681, + EndPos: 5682, }, }, Value: []byte("2"), @@ -20166,8 +19789,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6281, - EndPos: 6301, + StartPos: 5684, + EndPos: 5704, }, }, Vars: []ast.Vertex{ @@ -20176,8 +19799,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6288, - EndPos: 6300, + StartPos: 5691, + EndPos: 5703, }, }, Var: &ast.ExprVariable{ @@ -20185,8 +19808,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6288, - EndPos: 6290, + StartPos: 5691, + EndPos: 5693, }, }, VarName: &ast.Identifier{ @@ -20194,8 +19817,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6288, - EndPos: 6290, + StartPos: 5691, + EndPos: 5693, }, }, Value: []byte("$a"), @@ -20206,8 +19829,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6293, - EndPos: 6300, + StartPos: 5696, + EndPos: 5703, }, }, Left: &ast.ScalarLnumber{ @@ -20215,8 +19838,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6293, - EndPos: 6294, + StartPos: 5696, + EndPos: 5697, }, }, Value: []byte("1"), @@ -20226,8 +19849,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 345, EndLine: 345, - StartPos: 6299, - EndPos: 6300, + StartPos: 5702, + EndPos: 5703, }, }, Value: []byte("2"), @@ -20241,8 +19864,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6304, - EndPos: 6323, + StartPos: 5705, + EndPos: 5724, }, }, Vars: []ast.Vertex{ @@ -20251,8 +19874,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6311, - EndPos: 6322, + StartPos: 5712, + EndPos: 5723, }, }, Var: &ast.ExprVariable{ @@ -20260,8 +19883,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6311, - EndPos: 6313, + StartPos: 5712, + EndPos: 5714, }, }, VarName: &ast.Identifier{ @@ -20269,8 +19892,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6311, - EndPos: 6313, + StartPos: 5712, + EndPos: 5714, }, }, Value: []byte("$a"), @@ -20281,8 +19904,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6316, - EndPos: 6322, + StartPos: 5717, + EndPos: 5723, }, }, Left: &ast.ScalarLnumber{ @@ -20290,8 +19913,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6316, - EndPos: 6317, + StartPos: 5717, + EndPos: 5718, }, }, Value: []byte("1"), @@ -20301,8 +19924,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6321, - EndPos: 6322, + StartPos: 5722, + EndPos: 5723, }, }, Value: []byte("2"), @@ -20316,8 +19939,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6326, - EndPos: 6346, + StartPos: 5725, + EndPos: 5745, }, }, Vars: []ast.Vertex{ @@ -20326,8 +19949,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6333, - EndPos: 6345, + StartPos: 5732, + EndPos: 5744, }, }, Var: &ast.ExprVariable{ @@ -20335,8 +19958,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6333, - EndPos: 6335, + StartPos: 5732, + EndPos: 5734, }, }, VarName: &ast.Identifier{ @@ -20344,8 +19967,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6333, - EndPos: 6335, + StartPos: 5732, + EndPos: 5734, }, }, Value: []byte("$a"), @@ -20356,8 +19979,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6338, - EndPos: 6345, + StartPos: 5737, + EndPos: 5744, }, }, Left: &ast.ScalarLnumber{ @@ -20365,8 +19988,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6338, - EndPos: 6339, + StartPos: 5737, + EndPos: 5738, }, }, Value: []byte("1"), @@ -20376,8 +19999,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 347, EndLine: 347, - StartPos: 6344, - EndPos: 6345, + StartPos: 5743, + EndPos: 5744, }, }, Value: []byte("2"), @@ -20391,8 +20014,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6349, - EndPos: 6367, + StartPos: 5746, + EndPos: 5764, }, }, Vars: []ast.Vertex{ @@ -20401,8 +20024,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6356, - EndPos: 6366, + StartPos: 5753, + EndPos: 5763, }, }, Var: &ast.ExprVariable{ @@ -20410,8 +20033,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6356, - EndPos: 6358, + StartPos: 5753, + EndPos: 5755, }, }, VarName: &ast.Identifier{ @@ -20419,8 +20042,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6356, - EndPos: 6358, + StartPos: 5753, + EndPos: 5755, }, }, Value: []byte("$a"), @@ -20431,8 +20054,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6361, - EndPos: 6366, + StartPos: 5758, + EndPos: 5763, }, }, Left: &ast.ScalarLnumber{ @@ -20440,8 +20063,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6361, - EndPos: 6362, + StartPos: 5758, + EndPos: 5759, }, }, Value: []byte("1"), @@ -20451,8 +20074,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6365, - EndPos: 6366, + StartPos: 5762, + EndPos: 5763, }, }, Value: []byte("2"), @@ -20466,8 +20089,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6370, - EndPos: 6388, + StartPos: 5765, + EndPos: 5783, }, }, Vars: []ast.Vertex{ @@ -20476,8 +20099,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6377, - EndPos: 6387, + StartPos: 5772, + EndPos: 5782, }, }, Var: &ast.ExprVariable{ @@ -20485,8 +20108,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6377, - EndPos: 6379, + StartPos: 5772, + EndPos: 5774, }, }, VarName: &ast.Identifier{ @@ -20494,8 +20117,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6377, - EndPos: 6379, + StartPos: 5772, + EndPos: 5774, }, }, Value: []byte("$a"), @@ -20506,8 +20129,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6382, - EndPos: 6387, + StartPos: 5777, + EndPos: 5782, }, }, Left: &ast.ScalarLnumber{ @@ -20515,8 +20138,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6382, - EndPos: 6383, + StartPos: 5777, + EndPos: 5778, }, }, Value: []byte("1"), @@ -20526,8 +20149,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 349, EndLine: 349, - StartPos: 6386, - EndPos: 6387, + StartPos: 5781, + EndPos: 5782, }, }, Value: []byte("2"), @@ -20541,8 +20164,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6391, - EndPos: 6409, + StartPos: 5784, + EndPos: 5802, }, }, Vars: []ast.Vertex{ @@ -20551,8 +20174,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6398, - EndPos: 6408, + StartPos: 5791, + EndPos: 5801, }, }, Var: &ast.ExprVariable{ @@ -20560,8 +20183,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6398, - EndPos: 6400, + StartPos: 5791, + EndPos: 5793, }, }, VarName: &ast.Identifier{ @@ -20569,8 +20192,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6398, - EndPos: 6400, + StartPos: 5791, + EndPos: 5793, }, }, Value: []byte("$a"), @@ -20581,8 +20204,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6403, - EndPos: 6408, + StartPos: 5796, + EndPos: 5801, }, }, Left: &ast.ScalarLnumber{ @@ -20590,8 +20213,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6403, - EndPos: 6404, + StartPos: 5796, + EndPos: 5797, }, }, Value: []byte("1"), @@ -20601,8 +20224,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 350, EndLine: 350, - StartPos: 6407, - EndPos: 6408, + StartPos: 5800, + EndPos: 5801, }, }, Value: []byte("2"), @@ -20616,8 +20239,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6412, - EndPos: 6431, + StartPos: 5803, + EndPos: 5822, }, }, Vars: []ast.Vertex{ @@ -20626,8 +20249,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6419, - EndPos: 6430, + StartPos: 5810, + EndPos: 5821, }, }, Var: &ast.ExprVariable{ @@ -20635,8 +20258,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6419, - EndPos: 6421, + StartPos: 5810, + EndPos: 5812, }, }, VarName: &ast.Identifier{ @@ -20644,8 +20267,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6419, - EndPos: 6421, + StartPos: 5810, + EndPos: 5812, }, }, Value: []byte("$a"), @@ -20656,8 +20279,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6424, - EndPos: 6430, + StartPos: 5815, + EndPos: 5821, }, }, Left: &ast.ScalarLnumber{ @@ -20665,8 +20288,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6424, - EndPos: 6425, + StartPos: 5815, + EndPos: 5816, }, }, Value: []byte("1"), @@ -20676,8 +20299,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 351, EndLine: 351, - StartPos: 6429, - EndPos: 6430, + StartPos: 5820, + EndPos: 5821, }, }, Value: []byte("2"), @@ -20691,8 +20314,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6434, - EndPos: 6454, + StartPos: 5823, + EndPos: 5843, }, }, Vars: []ast.Vertex{ @@ -20701,8 +20324,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6441, - EndPos: 6453, + StartPos: 5830, + EndPos: 5842, }, }, Var: &ast.ExprVariable{ @@ -20710,8 +20333,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6441, - EndPos: 6443, + StartPos: 5830, + EndPos: 5832, }, }, VarName: &ast.Identifier{ @@ -20719,8 +20342,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6441, - EndPos: 6443, + StartPos: 5830, + EndPos: 5832, }, }, Value: []byte("$a"), @@ -20731,8 +20354,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6446, - EndPos: 6453, + StartPos: 5835, + EndPos: 5842, }, }, Left: &ast.ScalarLnumber{ @@ -20740,8 +20363,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6446, - EndPos: 6447, + StartPos: 5835, + EndPos: 5836, }, }, Value: []byte("1"), @@ -20751,8 +20374,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 352, EndLine: 352, - StartPos: 6452, - EndPos: 6453, + StartPos: 5841, + EndPos: 5842, }, }, Value: []byte("2"), @@ -20766,8 +20389,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6457, - EndPos: 6475, + StartPos: 5844, + EndPos: 5862, }, }, Vars: []ast.Vertex{ @@ -20776,8 +20399,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6464, - EndPos: 6474, + StartPos: 5851, + EndPos: 5861, }, }, Var: &ast.ExprVariable{ @@ -20785,8 +20408,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6464, - EndPos: 6466, + StartPos: 5851, + EndPos: 5853, }, }, VarName: &ast.Identifier{ @@ -20794,8 +20417,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6464, - EndPos: 6466, + StartPos: 5851, + EndPos: 5853, }, }, Value: []byte("$a"), @@ -20806,8 +20429,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6469, - EndPos: 6474, + StartPos: 5856, + EndPos: 5861, }, }, Left: &ast.ScalarLnumber{ @@ -20815,8 +20438,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6469, - EndPos: 6470, + StartPos: 5856, + EndPos: 5857, }, }, Value: []byte("1"), @@ -20826,8 +20449,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 353, EndLine: 353, - StartPos: 6473, - EndPos: 6474, + StartPos: 5860, + EndPos: 5861, }, }, Value: []byte("2"), @@ -20841,8 +20464,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6478, - EndPos: 6497, + StartPos: 5863, + EndPos: 5882, }, }, Vars: []ast.Vertex{ @@ -20851,8 +20474,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6485, - EndPos: 6496, + StartPos: 5870, + EndPos: 5881, }, }, Var: &ast.ExprVariable{ @@ -20860,8 +20483,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6485, - EndPos: 6487, + StartPos: 5870, + EndPos: 5872, }, }, VarName: &ast.Identifier{ @@ -20869,8 +20492,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6485, - EndPos: 6487, + StartPos: 5870, + EndPos: 5872, }, }, Value: []byte("$a"), @@ -20881,8 +20504,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6490, - EndPos: 6496, + StartPos: 5875, + EndPos: 5881, }, }, Left: &ast.ScalarLnumber{ @@ -20890,8 +20513,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6490, - EndPos: 6491, + StartPos: 5875, + EndPos: 5876, }, }, Value: []byte("1"), @@ -20901,8 +20524,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 354, EndLine: 354, - StartPos: 6495, - EndPos: 6496, + StartPos: 5880, + EndPos: 5881, }, }, Value: []byte("2"), @@ -20916,8 +20539,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6500, - EndPos: 6519, + StartPos: 5883, + EndPos: 5902, }, }, Vars: []ast.Vertex{ @@ -20926,8 +20549,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6507, - EndPos: 6518, + StartPos: 5890, + EndPos: 5901, }, }, Var: &ast.ExprVariable{ @@ -20935,8 +20558,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6507, - EndPos: 6509, + StartPos: 5890, + EndPos: 5892, }, }, VarName: &ast.Identifier{ @@ -20944,8 +20567,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6507, - EndPos: 6509, + StartPos: 5890, + EndPos: 5892, }, }, Value: []byte("$a"), @@ -20956,8 +20579,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6512, - EndPos: 6518, + StartPos: 5895, + EndPos: 5901, }, }, Left: &ast.ScalarLnumber{ @@ -20965,8 +20588,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6512, - EndPos: 6513, + StartPos: 5895, + EndPos: 5896, }, }, Value: []byte("1"), @@ -20976,8 +20599,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 355, EndLine: 355, - StartPos: 6517, - EndPos: 6518, + StartPos: 5900, + EndPos: 5901, }, }, Value: []byte("2"), @@ -20991,8 +20614,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6522, - EndPos: 6541, + StartPos: 5903, + EndPos: 5922, }, }, Vars: []ast.Vertex{ @@ -21001,8 +20624,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6529, - EndPos: 6540, + StartPos: 5910, + EndPos: 5921, }, }, Var: &ast.ExprVariable{ @@ -21010,8 +20633,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6529, - EndPos: 6531, + StartPos: 5910, + EndPos: 5912, }, }, VarName: &ast.Identifier{ @@ -21019,8 +20642,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6529, - EndPos: 6531, + StartPos: 5910, + EndPos: 5912, }, }, Value: []byte("$a"), @@ -21031,8 +20654,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6534, - EndPos: 6540, + StartPos: 5915, + EndPos: 5921, }, }, Left: &ast.ScalarLnumber{ @@ -21040,8 +20663,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6534, - EndPos: 6535, + StartPos: 5915, + EndPos: 5916, }, }, Value: []byte("1"), @@ -21051,8 +20674,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 356, EndLine: 356, - StartPos: 6539, - EndPos: 6540, + StartPos: 5920, + EndPos: 5921, }, }, Value: []byte("2"), @@ -21066,8 +20689,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6544, - EndPos: 6563, + StartPos: 5923, + EndPos: 5942, }, }, Vars: []ast.Vertex{ @@ -21076,8 +20699,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6551, - EndPos: 6562, + StartPos: 5930, + EndPos: 5941, }, }, Var: &ast.ExprVariable{ @@ -21085,8 +20708,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6551, - EndPos: 6553, + StartPos: 5930, + EndPos: 5932, }, }, VarName: &ast.Identifier{ @@ -21094,8 +20717,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6551, - EndPos: 6553, + StartPos: 5930, + EndPos: 5932, }, }, Value: []byte("$a"), @@ -21106,8 +20729,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6556, - EndPos: 6562, + StartPos: 5935, + EndPos: 5941, }, }, Left: &ast.ScalarLnumber{ @@ -21115,8 +20738,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6556, - EndPos: 6557, + StartPos: 5935, + EndPos: 5936, }, }, Value: []byte("1"), @@ -21126,8 +20749,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 357, EndLine: 357, - StartPos: 6561, - EndPos: 6562, + StartPos: 5940, + EndPos: 5941, }, }, Value: []byte("2"), @@ -21141,8 +20764,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6566, - EndPos: 6584, + StartPos: 5943, + EndPos: 5961, }, }, Vars: []ast.Vertex{ @@ -21151,8 +20774,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6573, - EndPos: 6583, + StartPos: 5950, + EndPos: 5960, }, }, Var: &ast.ExprVariable{ @@ -21160,8 +20783,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6573, - EndPos: 6575, + StartPos: 5950, + EndPos: 5952, }, }, VarName: &ast.Identifier{ @@ -21169,8 +20792,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6573, - EndPos: 6575, + StartPos: 5950, + EndPos: 5952, }, }, Value: []byte("$a"), @@ -21181,8 +20804,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6578, - EndPos: 6583, + StartPos: 5955, + EndPos: 5960, }, }, Left: &ast.ScalarLnumber{ @@ -21190,8 +20813,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6578, - EndPos: 6579, + StartPos: 5955, + EndPos: 5956, }, }, Value: []byte("1"), @@ -21201,8 +20824,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 358, EndLine: 358, - StartPos: 6582, - EndPos: 6583, + StartPos: 5959, + EndPos: 5960, }, }, Value: []byte("2"), @@ -21216,8 +20839,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6587, - EndPos: 6608, + StartPos: 5962, + EndPos: 5983, }, }, Vars: []ast.Vertex{ @@ -21226,8 +20849,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6594, - EndPos: 6607, + StartPos: 5969, + EndPos: 5982, }, }, Var: &ast.ExprVariable{ @@ -21235,8 +20858,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6594, - EndPos: 6596, + StartPos: 5969, + EndPos: 5971, }, }, VarName: &ast.Identifier{ @@ -21244,8 +20867,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6594, - EndPos: 6596, + StartPos: 5969, + EndPos: 5971, }, }, Value: []byte("$a"), @@ -21256,8 +20879,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6599, - EndPos: 6607, + StartPos: 5974, + EndPos: 5982, }, }, Class: &ast.NameName{ @@ -21265,8 +20888,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6599, - EndPos: 6602, + StartPos: 5974, + EndPos: 5977, }, }, Parts: []ast.Vertex{ @@ -21275,8 +20898,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6599, - EndPos: 6602, + StartPos: 5974, + EndPos: 5977, }, }, Value: []byte("Foo"), @@ -21288,8 +20911,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 359, EndLine: 359, - StartPos: 6604, - EndPos: 6607, + StartPos: 5979, + EndPos: 5982, }, }, Value: []byte("bar"), @@ -21303,8 +20926,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6611, - EndPos: 6634, + StartPos: 5984, + EndPos: 6007, }, }, Vars: []ast.Vertex{ @@ -21313,8 +20936,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6618, - EndPos: 6633, + StartPos: 5991, + EndPos: 6006, }, }, Var: &ast.ExprVariable{ @@ -21322,8 +20945,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6618, - EndPos: 6620, + StartPos: 5991, + EndPos: 5993, }, }, VarName: &ast.Identifier{ @@ -21331,8 +20954,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6618, - EndPos: 6620, + StartPos: 5991, + EndPos: 5993, }, }, Value: []byte("$a"), @@ -21343,8 +20966,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6623, - EndPos: 6633, + StartPos: 5996, + EndPos: 6006, }, }, Class: &ast.NameName{ @@ -21352,8 +20975,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6623, - EndPos: 6626, + StartPos: 5996, + EndPos: 5999, }, }, Parts: []ast.Vertex{ @@ -21362,8 +20985,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6623, - EndPos: 6626, + StartPos: 5996, + EndPos: 5999, }, }, Value: []byte("Foo"), @@ -21375,8 +20998,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 360, EndLine: 360, - StartPos: 6628, - EndPos: 6633, + StartPos: 6001, + EndPos: 6006, }, }, Value: []byte("class"), @@ -21390,8 +21013,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6637, - EndPos: 6659, + StartPos: 6008, + EndPos: 6030, }, }, Vars: []ast.Vertex{ @@ -21400,8 +21023,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6644, - EndPos: 6658, + StartPos: 6015, + EndPos: 6029, }, }, Var: &ast.ExprVariable{ @@ -21409,8 +21032,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6644, - EndPos: 6646, + StartPos: 6015, + EndPos: 6017, }, }, VarName: &ast.Identifier{ @@ -21418,8 +21041,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6644, - EndPos: 6646, + StartPos: 6015, + EndPos: 6017, }, }, Value: []byte("$a"), @@ -21430,8 +21053,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 361, EndLine: 361, - StartPos: 6649, - EndPos: 6658, + StartPos: 6020, + EndPos: 6029, }, }, Value: []byte("__CLASS__"), @@ -21444,8 +21067,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6662, - EndPos: 6678, + StartPos: 6031, + EndPos: 6047, }, }, Vars: []ast.Vertex{ @@ -21454,8 +21077,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6669, - EndPos: 6677, + StartPos: 6038, + EndPos: 6046, }, }, Var: &ast.ExprVariable{ @@ -21463,8 +21086,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6669, - EndPos: 6671, + StartPos: 6038, + EndPos: 6040, }, }, VarName: &ast.Identifier{ @@ -21472,8 +21095,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6669, - EndPos: 6671, + StartPos: 6038, + EndPos: 6040, }, }, Value: []byte("$a"), @@ -21484,8 +21107,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6674, - EndPos: 6677, + StartPos: 6043, + EndPos: 6046, }, }, Const: &ast.NameName{ @@ -21493,8 +21116,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6674, - EndPos: 6677, + StartPos: 6043, + EndPos: 6046, }, }, Parts: []ast.Vertex{ @@ -21503,8 +21126,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 362, EndLine: 362, - StartPos: 6674, - EndPos: 6677, + StartPos: 6043, + EndPos: 6046, }, }, Value: []byte("Foo"), @@ -21520,8 +21143,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6681, - EndPos: 6707, + StartPos: 6048, + EndPos: 6074, }, }, Vars: []ast.Vertex{ @@ -21530,8 +21153,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6688, - EndPos: 6706, + StartPos: 6055, + EndPos: 6073, }, }, Var: &ast.ExprVariable{ @@ -21539,8 +21162,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6688, - EndPos: 6690, + StartPos: 6055, + EndPos: 6057, }, }, VarName: &ast.Identifier{ @@ -21548,8 +21171,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6688, - EndPos: 6690, + StartPos: 6055, + EndPos: 6057, }, }, Value: []byte("$a"), @@ -21560,8 +21183,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6693, - EndPos: 6706, + StartPos: 6060, + EndPos: 6073, }, }, Const: &ast.NameRelative{ @@ -21569,8 +21192,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6693, - EndPos: 6706, + StartPos: 6060, + EndPos: 6073, }, }, Parts: []ast.Vertex{ @@ -21579,8 +21202,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 363, EndLine: 363, - StartPos: 6703, - EndPos: 6706, + StartPos: 6070, + EndPos: 6073, }, }, Value: []byte("Foo"), @@ -21596,8 +21219,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6710, - EndPos: 6727, + StartPos: 6075, + EndPos: 6092, }, }, Vars: []ast.Vertex{ @@ -21606,8 +21229,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6717, - EndPos: 6726, + StartPos: 6082, + EndPos: 6091, }, }, Var: &ast.ExprVariable{ @@ -21615,8 +21238,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6717, - EndPos: 6719, + StartPos: 6082, + EndPos: 6084, }, }, VarName: &ast.Identifier{ @@ -21624,8 +21247,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6717, - EndPos: 6719, + StartPos: 6082, + EndPos: 6084, }, }, Value: []byte("$a"), @@ -21636,8 +21259,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6722, - EndPos: 6726, + StartPos: 6087, + EndPos: 6091, }, }, Const: &ast.NameFullyQualified{ @@ -21645,8 +21268,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6722, - EndPos: 6726, + StartPos: 6087, + EndPos: 6091, }, }, Parts: []ast.Vertex{ @@ -21655,8 +21278,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 364, EndLine: 364, - StartPos: 6723, - EndPos: 6726, + StartPos: 6088, + EndPos: 6091, }, }, Value: []byte("Foo"), @@ -21672,8 +21295,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6730, - EndPos: 6750, + StartPos: 6093, + EndPos: 6113, }, }, Vars: []ast.Vertex{ @@ -21682,8 +21305,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6737, - EndPos: 6749, + StartPos: 6100, + EndPos: 6112, }, }, Var: &ast.ExprVariable{ @@ -21691,8 +21314,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6737, - EndPos: 6739, + StartPos: 6100, + EndPos: 6102, }, }, VarName: &ast.Identifier{ @@ -21700,8 +21323,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6737, - EndPos: 6739, + StartPos: 6100, + EndPos: 6102, }, }, Value: []byte("$a"), @@ -21712,8 +21335,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 365, EndLine: 365, - StartPos: 6742, - EndPos: 6749, + StartPos: 6105, + EndPos: 6112, }, }, }, @@ -21725,8 +21348,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6753, - EndPos: 6782, + StartPos: 6114, + EndPos: 6143, }, }, Vars: []ast.Vertex{ @@ -21735,8 +21358,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6760, - EndPos: 6781, + StartPos: 6121, + EndPos: 6142, }, }, Var: &ast.ExprVariable{ @@ -21744,8 +21367,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6760, - EndPos: 6762, + StartPos: 6121, + EndPos: 6123, }, }, VarName: &ast.Identifier{ @@ -21753,8 +21376,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6760, - EndPos: 6762, + StartPos: 6121, + EndPos: 6123, }, }, Value: []byte("$a"), @@ -21765,8 +21388,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6765, - EndPos: 6781, + StartPos: 6126, + EndPos: 6142, }, }, Items: []ast.Vertex{ @@ -21775,8 +21398,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6771, - EndPos: 6777, + StartPos: 6132, + EndPos: 6138, }, }, Key: &ast.ScalarLnumber{ @@ -21784,8 +21407,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6771, - EndPos: 6772, + StartPos: 6132, + EndPos: 6133, }, }, Value: []byte("1"), @@ -21795,8 +21418,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6776, - EndPos: 6777, + StartPos: 6137, + EndPos: 6138, }, }, Value: []byte("1"), @@ -21807,8 +21430,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6779, - EndPos: 6780, + StartPos: 6140, + EndPos: 6141, }, }, Val: &ast.ScalarLnumber{ @@ -21816,8 +21439,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 366, EndLine: 366, - StartPos: 6779, - EndPos: 6780, + StartPos: 6140, + EndPos: 6141, }, }, Value: []byte("2"), @@ -21833,8 +21456,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6785, - EndPos: 6812, + StartPos: 6144, + EndPos: 6171, }, }, Vars: []ast.Vertex{ @@ -21843,8 +21466,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6792, - EndPos: 6811, + StartPos: 6151, + EndPos: 6170, }, }, Var: &ast.ExprVariable{ @@ -21852,8 +21475,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6792, - EndPos: 6794, + StartPos: 6151, + EndPos: 6153, }, }, VarName: &ast.Identifier{ @@ -21861,8 +21484,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6792, - EndPos: 6794, + StartPos: 6151, + EndPos: 6153, }, }, Value: []byte("$a"), @@ -21873,8 +21496,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6797, - EndPos: 6811, + StartPos: 6156, + EndPos: 6170, }, }, Var: &ast.ExprShortArray{ @@ -21882,8 +21505,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6797, - EndPos: 6808, + StartPos: 6156, + EndPos: 6167, }, }, Items: []ast.Vertex{ @@ -21892,8 +21515,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6798, - EndPos: 6799, + StartPos: 6157, + EndPos: 6158, }, }, Val: &ast.ScalarLnumber{ @@ -21901,8 +21524,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6798, - EndPos: 6799, + StartPos: 6157, + EndPos: 6158, }, }, Value: []byte("1"), @@ -21913,8 +21536,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6801, - EndPos: 6807, + StartPos: 6160, + EndPos: 6166, }, }, Key: &ast.ScalarLnumber{ @@ -21922,8 +21545,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6801, - EndPos: 6802, + StartPos: 6160, + EndPos: 6161, }, }, Value: []byte("2"), @@ -21933,8 +21556,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6806, - EndPos: 6807, + StartPos: 6165, + EndPos: 6166, }, }, Value: []byte("2"), @@ -21947,8 +21570,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 367, EndLine: 367, - StartPos: 6809, - EndPos: 6810, + StartPos: 6168, + EndPos: 6169, }, }, Value: []byte("0"), @@ -21962,8 +21585,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6816, - EndPos: 6831, + StartPos: 6173, + EndPos: 6188, }, }, Cond: &ast.ExprYield{ @@ -21971,8 +21594,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6820, - EndPos: 6827, + StartPos: 6177, + EndPos: 6184, }, }, Value: &ast.ScalarLnumber{ @@ -21980,8 +21603,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6826, - EndPos: 6827, + StartPos: 6183, + EndPos: 6184, }, }, Value: []byte("1"), @@ -21992,8 +21615,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 369, EndLine: 369, - StartPos: 6829, - EndPos: 6831, + StartPos: 6186, + EndPos: 6188, }, }, Stmts: []ast.Vertex{}, @@ -22004,8 +21627,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6834, - EndPos: 6845, + StartPos: 6189, + EndPos: 6200, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -22013,8 +21636,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6834, - EndPos: 6844, + StartPos: 6189, + EndPos: 6199, }, }, Class: &ast.NameName{ @@ -22022,8 +21645,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6834, - EndPos: 6837, + StartPos: 6189, + EndPos: 6192, }, }, Parts: []ast.Vertex{ @@ -22032,8 +21655,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6834, - EndPos: 6837, + StartPos: 6189, + EndPos: 6192, }, }, Value: []byte("Foo"), @@ -22045,8 +21668,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6839, - EndPos: 6844, + StartPos: 6194, + EndPos: 6199, }, }, VarName: &ast.ExprVariable{ @@ -22054,8 +21677,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6840, - EndPos: 6844, + StartPos: 6195, + EndPos: 6199, }, }, VarName: &ast.Identifier{ @@ -22063,8 +21686,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 370, EndLine: 370, - StartPos: 6840, - EndPos: 6844, + StartPos: 6195, + EndPos: 6199, }, }, Value: []byte("$bar"), @@ -22078,8 +21701,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6849, - EndPos: 6856, + StartPos: 6202, + EndPos: 6209, }, }, Expr: &ast.ExprFunctionCall{ @@ -22087,8 +21710,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6849, - EndPos: 6855, + StartPos: 6202, + EndPos: 6208, }, }, Function: &ast.ExprVariable{ @@ -22096,8 +21719,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6849, - EndPos: 6853, + StartPos: 6202, + EndPos: 6206, }, }, VarName: &ast.Identifier{ @@ -22105,8 +21728,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6849, - EndPos: 6853, + StartPos: 6202, + EndPos: 6206, }, }, Value: []byte("$foo"), @@ -22117,8 +21740,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 372, EndLine: 372, - StartPos: 6853, - EndPos: 6855, + StartPos: 6206, + EndPos: 6208, }, }, }, @@ -22129,8 +21752,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6859, - EndPos: 6872, + StartPos: 6210, + EndPos: 6223, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -22138,8 +21761,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6859, - EndPos: 6871, + StartPos: 6210, + EndPos: 6222, }, }, Var: &ast.ExprArrayDimFetch{ @@ -22147,8 +21770,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6859, - EndPos: 6868, + StartPos: 6210, + EndPos: 6219, }, }, Var: &ast.ExprFunctionCall{ @@ -22156,8 +21779,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6859, - EndPos: 6865, + StartPos: 6210, + EndPos: 6216, }, }, Function: &ast.ExprVariable{ @@ -22165,8 +21788,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6859, - EndPos: 6863, + StartPos: 6210, + EndPos: 6214, }, }, VarName: &ast.Identifier{ @@ -22174,8 +21797,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6859, - EndPos: 6863, + StartPos: 6210, + EndPos: 6214, }, }, Value: []byte("$foo"), @@ -22186,8 +21809,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6863, - EndPos: 6865, + StartPos: 6214, + EndPos: 6216, }, }, }, @@ -22197,8 +21820,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6866, - EndPos: 6867, + StartPos: 6217, + EndPos: 6218, }, }, Value: []byte("0"), @@ -22209,8 +21832,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 373, EndLine: 373, - StartPos: 6869, - EndPos: 6870, + StartPos: 6220, + EndPos: 6221, }, }, Value: []byte("0"), @@ -22222,8 +21845,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6875, - EndPos: 6882, + StartPos: 6224, + EndPos: 6231, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -22231,8 +21854,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6875, - EndPos: 6881, + StartPos: 6224, + EndPos: 6230, }, }, Var: &ast.ExprVariable{ @@ -22240,8 +21863,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6875, - EndPos: 6877, + StartPos: 6224, + EndPos: 6226, }, }, VarName: &ast.Identifier{ @@ -22249,8 +21872,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6875, - EndPos: 6877, + StartPos: 6224, + EndPos: 6226, }, }, Value: []byte("$a"), @@ -22261,8 +21884,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6878, - EndPos: 6880, + StartPos: 6227, + EndPos: 6229, }, }, VarName: &ast.Identifier{ @@ -22270,8 +21893,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 374, EndLine: 374, - StartPos: 6878, - EndPos: 6880, + StartPos: 6227, + EndPos: 6229, }, }, Value: []byte("$b"), @@ -22284,8 +21907,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6885, - EndPos: 6891, + StartPos: 6232, + EndPos: 6238, }, }, Expr: &ast.ExprVariable{ @@ -22293,8 +21916,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6885, - EndPos: 6890, + StartPos: 6232, + EndPos: 6237, }, }, VarName: &ast.ExprVariable{ @@ -22302,8 +21925,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6887, - EndPos: 6889, + StartPos: 6234, + EndPos: 6236, }, }, VarName: &ast.Identifier{ @@ -22311,8 +21934,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 375, EndLine: 375, - StartPos: 6887, - EndPos: 6889, + StartPos: 6234, + EndPos: 6236, }, }, Value: []byte("$a"), @@ -22325,8 +21948,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6894, - EndPos: 6909, + StartPos: 6239, + EndPos: 6254, }, }, Expr: &ast.ExprStaticCall{ @@ -22334,8 +21957,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6894, - EndPos: 6908, + StartPos: 6239, + EndPos: 6253, }, }, Class: &ast.ExprVariable{ @@ -22343,8 +21966,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6894, - EndPos: 6898, + StartPos: 6239, + EndPos: 6243, }, }, VarName: &ast.Identifier{ @@ -22352,8 +21975,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6894, - EndPos: 6898, + StartPos: 6239, + EndPos: 6243, }, }, Value: []byte("$foo"), @@ -22364,8 +21987,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6900, - EndPos: 6906, + StartPos: 6245, + EndPos: 6251, }, }, VarName: &ast.Identifier{ @@ -22373,8 +21996,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6901, - EndPos: 6905, + StartPos: 6246, + EndPos: 6250, }, }, Value: []byte("$bar"), @@ -22385,8 +22008,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 376, EndLine: 376, - StartPos: 6906, - EndPos: 6908, + StartPos: 6251, + EndPos: 6253, }, }, }, @@ -22397,8 +22020,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6912, - EndPos: 6922, + StartPos: 6255, + EndPos: 6265, }, }, Expr: &ast.ExprClassConstFetch{ @@ -22406,8 +22029,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6912, - EndPos: 6921, + StartPos: 6255, + EndPos: 6264, }, }, Class: &ast.ExprVariable{ @@ -22415,8 +22038,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6912, - EndPos: 6916, + StartPos: 6255, + EndPos: 6259, }, }, VarName: &ast.Identifier{ @@ -22424,8 +22047,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6912, - EndPos: 6916, + StartPos: 6255, + EndPos: 6259, }, }, Value: []byte("$foo"), @@ -22436,8 +22059,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 377, EndLine: 377, - StartPos: 6918, - EndPos: 6921, + StartPos: 6261, + EndPos: 6264, }, }, Value: []byte("bar"), @@ -22449,8 +22072,8 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 379, EndLine: 379, - StartPos: 6926, - EndPos: 6944, + StartPos: 6267, + EndPos: 6285, }, }, }, diff --git a/internal/php5/test.php b/internal/php5/test.php new file mode 100644 index 0000000..c811eb1 --- /dev/null +++ b/internal/php5/test.php @@ -0,0 +1,381 @@ +bar($a, ...$b); +foo::bar($a, ...$b); +$foo::bar($a, ...$b); +new foo($a, ...$b); + +function foo(bar $bar=null, baz &...$baz) {} +class foo {public function foo(bar $bar=null, baz &...$baz) {}} +function(bar $bar=null, baz &...$baz) {}; +static function(bar $bar=null, baz &...$baz) {}; + +1234567890123456789; +12345678901234567890; +0.; +0b0111111111111111111111111111111111111111111111111111111111111111; +0b1111111111111111111111111111111111111111111111111111111111111111; +0x007111111111111111; +0x8111111111111111; +__CLASS__; +__DIR__; +__FILE__; +__FUNCTION__; +__LINE__; +__NAMESPACE__; +__METHOD__; +__TRAIT__; + +"test $var"; +"test $var[1]"; +"test $var[1234567890123456789012345678901234567890]"; +"test $var[bar]"; +"test $var[$bar]"; +"$foo $bar"; +"test $foo->bar()"; +"test ${foo}"; +"test ${foo[0]}"; +"test {$foo->bar()}"; + +if ($a) : +endif; +if ($a) : +elseif ($b): +endif; +if ($a) : +else: +endif; +if ($a) : +elseif ($b): +elseif ($c): +else: +endif; + +while (1) { break; } +while (1) { break 2; } +while (1) : break(3); endwhile; +class foo{ const FOO = 1, BAR = 2; } +class foo{ function bar() {} } +class foo{ public static function &bar() {} } +class foo{ final private function bar() {} protected function baz() {} } +abstract class foo{ abstract public function bar(); } +final class foo extends bar { } +final class foo implements bar { } +final class foo implements bar, baz { } + +const FOO = 1, BAR = 2; +while (1) { continue; } +while (1) { continue 2; } +while (1) { continue(3); } +declare(ticks=1); +declare(ticks=1, strict_types=1) {} +declare(ticks=1): enddeclare; +do {} while(1); +echo $a, 1; +echo($a); +for($i = 0; $i < 10; $i++, $i++) {} +for(; $i < 10; $i++) : endfor; +foreach ($a as $v) {} +foreach ([] as $v) {} +foreach ($a as $v) : endforeach; +foreach ($a as $k => $v) {} +foreach ([] as $k => $v) {} +foreach ($a as $k => &$v) {} +foreach ($a as $k => list($v)) {} +function foo() {} + +function foo() { + function bar() {} + class Baz {} + return $a; +} + +function foo(array $a, callable $b) {return;} +function &foo() {return 1;} +function &foo() {} +global $a, $b, $$c, ${foo()}; +a: +goto a; +if ($a) {} +if ($a) {} elseif ($b) {} +if ($a) {} else {} +if ($a) {} elseif ($b) {} elseif ($c) {} else {} +if ($a) {} elseif ($b) {} else if ($c) {} else {} +?>
1, &$b,); +array(3 =>&$b); +array(&$b, 1=>1, 1, 3 =>&$b); +~$a; +!$a; + +Foo::Bar; +clone($a); +clone $a; +function(){}; +function($a, $b) use ($c, &$d) {}; +function($a, $b) use (&$c, $d) {}; +function() {}; +foo; +namespace\foo; +\foo; + +empty($a); +empty(Foo); +@$a; +eval($a); +exit; +exit($a); +die(); +die($a); +foo(); +namespace\foo(&$a); +\foo([]); +$foo(yield $a); + +$a--; +$a++; +--$a; +++$a; + +include $a; +include_once $a; +require $a; +require_once $a; + +$a instanceof Foo; +$a instanceof namespace\Foo; +$a instanceof \Foo; + +isset($a, $b); +isset(Foo); +list() = $b; +list($a, $b) = $b; +list($a[]) = $b; +list(list($a)) = $b; + +$a->foo(); +new Foo; +new namespace\Foo(); +new \Foo(); +print($a); +$a->foo; +$a->foo[1]; +$a->foo->bar->baz()->quux[0]; +$a->foo()[1][1]; +`cmd $a`; +`cmd`; +``; +[]; +[1]; +[1=>1, &$b,]; + +Foo::bar(); +namespace\Foo::bar(); +\Foo::bar(); +Foo::$bar(); +$foo::$bar(); +Foo::$bar; +namespace\Foo::$bar; +\Foo::$bar; +$a ? $b : $c; +$a ? : $c; +$a ? $b ? $c : $d : $e; +$a ? $b : $c ? $d : $e; +-$a; ++$a; +$$a; +$$$a; +yield; +yield $a; +yield $a => $b; +yield Foo::class; +yield $a => Foo::class; + +(array)$a; +(boolean)$a; +(bool)$a; +(double)$a; +(float)$a; +(integer)$a; +(int)$a; +(object)$a; +(string)$a; +(unset)$a; + +$a & $b; +$a | $b; +$a ^ $b; +$a && $b; +$a || $b; +$a . $b; +$a / $b; +$a == $b; +$a >= $b; +$a > $b; +$a === $b; +$a and $b; +$a or $b; +$a xor $b; +$a - $b; +$a % $b; +$a * $b; +$a != $b; +$a !== $b; +$a + $b; +$a ** $b; +$a << $b; +$a >> $b; +$a <= $b; +$a < $b; + +$a =& $b; +$a =& new Foo; +$a =& new Foo($b); +$a = $b; +$a &= $b; +$a |= $b; +$a ^= $b; +$a .= $b; +$a /= $b; +$a -= $b; +$a %= $b; +$a *= $b; +$a += $b; +$a **= $b; +$a <<= $b; +$a >>= $b; + + +(new \Foo()); +(new \Foo())->bar()->baz; +(new \Foo())[0][0]; +(new \Foo())[0]->bar(); + +array([0])[0][0]; +"foo"[0]; +foo[0]; +static::foo; + +new $foo; +new $foo::$bar; +new $a->b[0]; +new $a->b{$b ?: null}->$c->d[0];static $a = [1][0]; + +static $a = !1; +static $a = ~1; +static $a = +1; +static $a = -1; +static $a = (1); +static $a = 1 ?: 2; +static $a = 1 ? 2 : 3; +static $a = 1 & 2; +static $a = 1 | 2; +static $a = 1 ^ 2; +static $a = 1 && 2; +static $a = 1 || 2; +static $a = 1 . 2; +static $a = 1 / 2; +static $a = 1 == 2; +static $a = 1 >= 2; +static $a = 1 > 2; +static $a = 1 === 2; +static $a = 1 and 2; +static $a = 1 or 2; +static $a = 1 xor 2; +static $a = 1 - 2; +static $a = 1 % 2; +static $a = 1 * 2; +static $a = 1 != 2; +static $a = 1 !== 2; +static $a = 1 + 2; +static $a = 1 ** 2; +static $a = 1 << 2; +static $a = 1 >> 2; +static $a = 1 <= 2; +static $a = 1 < 2; +static $a = Foo::bar; +static $a = Foo::class; +static $a = __CLASS__; +static $a = Foo; +static $a = namespace\Foo; +static $a = \Foo; +static $a = array(); +static $a = array(1 => 1, 2); +static $a = [1, 2 => 2][0]; + +if (yield 1) {} +Foo::$$bar; + +$foo(); +$foo()[0][0]; +$a{$b}; +${$a}; +$foo::{$bar}(); +$foo::bar; + +__halt_compiler(); + +parsing process must be terminated \ No newline at end of file diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 60e0289..0e1ff12 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -960,7 +960,7 @@ func TestPhp7ArgumentNode(t *testing.T) { } func TestPhp7ParameterNode(t *testing.T) { - src := `bar($a, ...$b); - foo::bar($a, ...$b); - $foo::bar($a, ...$b); - new foo($a, ...$b); - /** anonymous class */ - new class ($a, ...$b) {}; - new class {}; - new $foo; - new $foo[1]; - new $foo{$bar}; - new $foo->bar; - new $foo::$bar; - new static::$bar; - - function foo(?bar $bar=null, baz &...$baz) {} - class foo {public function foo(?bar $bar=null, baz &...$baz) {}} - function(?bar $bar=null, baz &...$baz) {}; - static function(?bar $bar=null, baz &...$baz) {}; - - 1234567890123456789; - 12345678901234567890; - 0.; - 0b0111111111111111111111111111111111111111111111111111111111111111; - 0b1111111111111111111111111111111111111111111111111111111111111111; - 0x007111111111111111; - 0x8111111111111111; - __CLASS__; - __DIR__; - __FILE__; - __FUNCTION__; - __LINE__; - __NAMESPACE__; - __METHOD__; - __TRAIT__; - - "test $var"; - "test $var[1]"; - "test $var[-1]"; - "test $var[1234567890123456789012345678901234567890]"; - "test $var[-1234567890123456789012345678901234567890]"; - "test $var[bar]"; - "test $var[$bar]"; - "$foo $bar"; - "test $foo->bar()"; - "test ${foo}"; - "test ${foo[0]}"; - "test ${$foo}"; - "test {$foo->bar()}"; - - if ($a) : - endif; - if ($a) : - elseif ($b): - endif; - if ($a) : - else: - endif; - if ($a) : - elseif ($b): - elseif ($c): - else: - endif; - - while (1) { break; } - while (1) { break 2; } - while (1) : break(3); endwhile; - class foo{ public const FOO = 1, BAR = 2; } - class foo{ const FOO = 1, BAR = 2; } - class foo{ function bar() {} } - class foo{ public static function &bar() {} } - class foo{ public static function &bar(): void {} } - abstract class foo{ } - final class foo extends bar { } - final class foo implements bar { } - final class foo implements bar, baz { } - new class() extends foo implements bar, baz { }; - - const FOO = 1, BAR = 2; - while (1) { continue; } - while (1) { continue 2; } - while (1) { continue(3); } - declare(ticks=1); - declare(ticks=1) {} - declare(ticks=1): enddeclare; - do {} while(1); - echo $a, 1; - echo($a); - for($i = 0; $i < 10; $i++, $i++) {} - for(; $i < 10; $i++, $i++) : endfor; - foreach ($a as $v) {} - foreach ($a as $v) : endforeach; - foreach ($a as $k => $v) {} - foreach ($a as $k => &$v) {} - foreach ($a as $k => list($v)) {} - foreach ($a as $k => [$v]) {} - function foo() {} - function foo() {return;} - function &foo() {return 1;} - function &foo(): void {} - global $a, $b; - a: - goto a; - if ($a) {} - if ($a) {} elseif ($b) {} - if ($a) {} else {} - if ($a) {} elseif ($b) {} elseif ($c) {} else {} - if ($a) {} elseif ($b) {} else if ($c) {} else {} - ?>
1, &$b,); - ~$a; - !$a; - - Foo::Bar; - $foo::Bar; - clone($a); - clone $a; - function(){}; - function($a, $b) use ($c, &$d) {}; - function(): void {}; - foo; - namespace\foo; - \foo; - - empty($a); - @$a; - eval($a); - exit; - exit($a); - die; - die($a); - foo(); - namespace\foo(); - \foo(); - $foo(); - - $a--; - $a++; - --$a; - ++$a; - - include $a; - include_once $a; - require $a; - require_once $a; - - $a instanceof Foo; - $a instanceof namespace\Foo; - $a instanceof \Foo; - - isset($a, $b); - list($a) = $b; - list($a[]) = $b; - list(list($a)) = $b; - - $a->foo(); - new Foo(); - new namespace\Foo(); - new \Foo(); - new class ($a, ...$b) {}; - print($a); - $a->foo; - ` + "`cmd $a`;" + ` - ` + "`cmd`;" + ` - ` + "``;" + ` - []; - [1]; - [1=>1, &$b,]; - - [$a] = $b; - [$a[]] = $b; - [list($a)] = $b; - Foo::bar(); - namespace\Foo::bar(); - \Foo::bar(); - Foo::$bar; - $foo::$bar; - namespace\Foo::$bar; - \Foo::$bar; - $a ? $b : $c; - $a ? : $c; - $a ? $b ? $c : $d : $e; - $a ? $b : $c ? $d : $e; - -$a; - +$a; - $$a; - yield; - yield $a; - yield $a => $b; - yield from $a; - - (array)$a; - (boolean)$a; - (bool)$a; - (double)$a; - (float)$a; - (integer)$a; - (int)$a; - (object)$a; - (string)$a; - (unset)$a; - - $a & $b; - $a | $b; - $a ^ $b; - $a && $b; - $a || $b; - $a ?? $b; - $a . $b; - $a / $b; - $a == $b; - $a >= $b; - $a > $b; - $a === $b; - $a and $b; - $a or $b; - $a xor $b; - $a - $b; - $a % $b; - $a * $b; - $a != $b; - $a !== $b; - $a + $b; - $a ** $b; - $a << $b; - $a >> $b; - $a <= $b; - $a < $b; - $a <=> $b; - - $a =& $b; - $a = $b; - $a &= $b; - $a |= $b; - $a ^= $b; - $a .= $b; - $a /= $b; - $a -= $b; - $a %= $b; - $a *= $b; - $a += $b; - $a **= $b; - $a <<= $b; - $a >>= $b; - - class foo {public function class() {} } - \foo\bar(); - - function foo(&$a, ...$b) { - - function bar() {} - class Baz {} - trait Quux{} - interface Quuux {} - } - - function foo(&$a = 1, ...$b = 1, $c = 1) {} - function foo(array $a, callable $b) {} - abstract final class foo { abstract protected static function bar(); final private function baz() {} } - - (new Foo)->bar; - (new Foo)(); - [$foo][0](); - foo[1](); - "foo"(); - [1]{$foo}(); - ${foo()}; - - Foo::$bar(); - Foo::{$bar[0]}(); - - $foo->$bar; - $foo->{$bar[0]}; - - [1=>&$a, 2=>list($b)]; - - __halt_compiler(); - - parsing process must be terminated - ` + src, err := ioutil.ReadFile("test.php") + assert.NilError(t, err) expected := &ast.Root{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 348, - StartPos: 5, - EndPos: 6319, + StartPos: 3, + EndPos: 5706, }, }, Stmts: []ast.Vertex{ @@ -380,8 +32,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 20, + StartPos: 3, + EndPos: 18, }, }, Expr: &ast.ExprFunctionCall{ @@ -389,8 +41,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 19, + StartPos: 3, + EndPos: 17, }, }, Function: &ast.NameName{ @@ -398,8 +50,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 8, + StartPos: 3, + EndPos: 6, }, }, Parts: []ast.Vertex{ @@ -408,8 +60,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 5, - EndPos: 8, + StartPos: 3, + EndPos: 6, }, }, Value: []byte("foo"), @@ -421,8 +73,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 8, - EndPos: 19, + StartPos: 6, + EndPos: 17, }, }, Arguments: []ast.Vertex{ @@ -431,19 +83,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, - EndPos: 11, + StartPos: 7, + EndPos: 9, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, - EndPos: 11, + StartPos: 7, + EndPos: 9, }, }, VarName: &ast.Identifier{ @@ -451,8 +101,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 9, - EndPos: 11, + StartPos: 7, + EndPos: 9, }, }, Value: []byte("$a"), @@ -464,19 +114,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 13, - EndPos: 18, + StartPos: 11, + EndPos: 16, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 16, - EndPos: 18, + StartPos: 14, + EndPos: 16, }, }, VarName: &ast.Identifier{ @@ -484,8 +133,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 16, - EndPos: 18, + StartPos: 14, + EndPos: 16, }, }, Value: []byte("$b"), @@ -501,8 +150,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 39, + StartPos: 19, + EndPos: 35, }, }, Expr: &ast.ExprFunctionCall{ @@ -510,8 +159,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 38, + StartPos: 19, + EndPos: 34, }, }, Function: &ast.ExprVariable{ @@ -519,8 +168,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 27, + StartPos: 19, + EndPos: 23, }, }, VarName: &ast.Identifier{ @@ -528,8 +177,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 27, + StartPos: 19, + EndPos: 23, }, }, Value: []byte("$foo"), @@ -540,8 +189,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 27, - EndPos: 38, + StartPos: 23, + EndPos: 34, }, }, Arguments: []ast.Vertex{ @@ -550,19 +199,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 30, + StartPos: 24, + EndPos: 26, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 30, + StartPos: 24, + EndPos: 26, }, }, VarName: &ast.Identifier{ @@ -570,8 +217,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 30, + StartPos: 24, + EndPos: 26, }, }, Value: []byte("$a"), @@ -583,19 +230,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 32, - EndPos: 37, + StartPos: 28, + EndPos: 33, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 35, - EndPos: 37, + StartPos: 31, + EndPos: 33, }, }, VarName: &ast.Identifier{ @@ -603,8 +249,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 35, - EndPos: 37, + StartPos: 31, + EndPos: 33, }, }, Value: []byte("$b"), @@ -620,8 +266,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 63, + StartPos: 36, + EndPos: 57, }, }, Expr: &ast.ExprMethodCall{ @@ -629,8 +275,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 62, + StartPos: 36, + EndPos: 56, }, }, Var: &ast.ExprVariable{ @@ -638,8 +284,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 46, + StartPos: 36, + EndPos: 40, }, }, VarName: &ast.Identifier{ @@ -647,8 +293,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 42, - EndPos: 46, + StartPos: 36, + EndPos: 40, }, }, Value: []byte("$foo"), @@ -659,8 +305,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 48, - EndPos: 51, + StartPos: 42, + EndPos: 45, }, }, Value: []byte("bar"), @@ -670,8 +316,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 51, - EndPos: 62, + StartPos: 45, + EndPos: 56, }, }, Arguments: []ast.Vertex{ @@ -680,19 +326,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, - EndPos: 54, + StartPos: 46, + EndPos: 48, }, }, - IsReference: false, - Variadic: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, - EndPos: 54, + StartPos: 46, + EndPos: 48, }, }, VarName: &ast.Identifier{ @@ -700,8 +344,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 52, - EndPos: 54, + StartPos: 46, + EndPos: 48, }, }, Value: []byte("$a"), @@ -713,19 +357,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 56, - EndPos: 61, + StartPos: 50, + EndPos: 55, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 59, - EndPos: 61, + StartPos: 53, + EndPos: 55, }, }, VarName: &ast.Identifier{ @@ -733,8 +376,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 59, - EndPos: 61, + StartPos: 53, + EndPos: 55, }, }, Value: []byte("$b"), @@ -750,8 +393,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 86, + StartPos: 58, + EndPos: 78, }, }, Expr: &ast.ExprStaticCall{ @@ -759,8 +402,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 85, + StartPos: 58, + EndPos: 77, }, }, Class: &ast.NameName{ @@ -768,8 +411,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 69, + StartPos: 58, + EndPos: 61, }, }, Parts: []ast.Vertex{ @@ -778,8 +421,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 66, - EndPos: 69, + StartPos: 58, + EndPos: 61, }, }, Value: []byte("foo"), @@ -791,8 +434,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 71, - EndPos: 74, + StartPos: 63, + EndPos: 66, }, }, Value: []byte("bar"), @@ -802,8 +445,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 74, - EndPos: 85, + StartPos: 66, + EndPos: 77, }, }, Arguments: []ast.Vertex{ @@ -812,19 +455,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, - EndPos: 77, + StartPos: 67, + EndPos: 69, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, - EndPos: 77, + StartPos: 67, + EndPos: 69, }, }, VarName: &ast.Identifier{ @@ -832,8 +473,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 75, - EndPos: 77, + StartPos: 67, + EndPos: 69, }, }, Value: []byte("$a"), @@ -845,19 +486,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 79, - EndPos: 84, + StartPos: 71, + EndPos: 76, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 82, - EndPos: 84, + StartPos: 74, + EndPos: 76, }, }, VarName: &ast.Identifier{ @@ -865,8 +505,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 82, - EndPos: 84, + StartPos: 74, + EndPos: 76, }, }, Value: []byte("$b"), @@ -882,8 +522,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 110, + StartPos: 79, + EndPos: 100, }, }, Expr: &ast.ExprStaticCall{ @@ -891,8 +531,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 109, + StartPos: 79, + EndPos: 99, }, }, Class: &ast.ExprVariable{ @@ -900,8 +540,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 93, + StartPos: 79, + EndPos: 83, }, }, VarName: &ast.Identifier{ @@ -909,8 +549,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 89, - EndPos: 93, + StartPos: 79, + EndPos: 83, }, }, Value: []byte("$foo"), @@ -921,8 +561,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 95, - EndPos: 98, + StartPos: 85, + EndPos: 88, }, }, Value: []byte("bar"), @@ -932,8 +572,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 98, - EndPos: 109, + StartPos: 88, + EndPos: 99, }, }, Arguments: []ast.Vertex{ @@ -942,19 +582,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, - EndPos: 101, + StartPos: 89, + EndPos: 91, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, - EndPos: 101, + StartPos: 89, + EndPos: 91, }, }, VarName: &ast.Identifier{ @@ -962,8 +600,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 99, - EndPos: 101, + StartPos: 89, + EndPos: 91, }, }, Value: []byte("$a"), @@ -975,19 +613,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 103, - EndPos: 108, + StartPos: 93, + EndPos: 98, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 106, - EndPos: 108, + StartPos: 96, + EndPos: 98, }, }, VarName: &ast.Identifier{ @@ -995,8 +632,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 106, - EndPos: 108, + StartPos: 96, + EndPos: 98, }, }, Value: []byte("$b"), @@ -1012,8 +649,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 113, - EndPos: 132, + StartPos: 101, + EndPos: 120, }, }, Expr: &ast.ExprNew{ @@ -1021,8 +658,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 113, - EndPos: 131, + StartPos: 101, + EndPos: 119, }, }, Class: &ast.NameName{ @@ -1030,8 +667,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 117, - EndPos: 120, + StartPos: 105, + EndPos: 108, }, }, Parts: []ast.Vertex{ @@ -1040,8 +677,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 117, - EndPos: 120, + StartPos: 105, + EndPos: 108, }, }, Value: []byte("foo"), @@ -1053,8 +690,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 120, - EndPos: 131, + StartPos: 108, + EndPos: 119, }, }, Arguments: []ast.Vertex{ @@ -1063,19 +700,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, - EndPos: 123, + StartPos: 109, + EndPos: 111, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, - EndPos: 123, + StartPos: 109, + EndPos: 111, }, }, VarName: &ast.Identifier{ @@ -1083,8 +718,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 121, - EndPos: 123, + StartPos: 109, + EndPos: 111, }, }, Value: []byte("$a"), @@ -1096,19 +731,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 125, - EndPos: 130, + StartPos: 113, + EndPos: 118, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 128, - EndPos: 130, + StartPos: 116, + EndPos: 118, }, }, VarName: &ast.Identifier{ @@ -1116,8 +750,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 128, - EndPos: 130, + StartPos: 116, + EndPos: 118, }, }, Value: []byte("$b"), @@ -1133,8 +767,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 160, - EndPos: 185, + StartPos: 144, + EndPos: 169, }, }, Expr: &ast.ExprNew{ @@ -1142,8 +776,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 160, - EndPos: 184, + StartPos: 144, + EndPos: 168, }, }, Class: &ast.StmtClass{ @@ -1151,8 +785,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 164, - EndPos: 184, + StartPos: 148, + EndPos: 168, }, }, ArgumentList: &ast.ArgumentList{ @@ -1160,8 +794,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 170, - EndPos: 181, + StartPos: 154, + EndPos: 165, }, }, Arguments: []ast.Vertex{ @@ -1170,19 +804,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 171, - EndPos: 173, + StartPos: 155, + EndPos: 157, }, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 171, - EndPos: 173, + StartPos: 155, + EndPos: 157, }, }, VarName: &ast.Identifier{ @@ -1190,8 +822,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 171, - EndPos: 173, + StartPos: 155, + EndPos: 157, }, }, Value: []byte("$a"), @@ -1203,19 +835,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 175, - EndPos: 180, + StartPos: 159, + EndPos: 164, }, }, - Variadic: true, - IsReference: false, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 178, - EndPos: 180, + StartPos: 162, + EndPos: 164, }, }, VarName: &ast.Identifier{ @@ -1223,8 +854,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 178, - EndPos: 180, + StartPos: 162, + EndPos: 164, }, }, Value: []byte("$b"), @@ -1242,8 +873,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 188, - EndPos: 201, + StartPos: 170, + EndPos: 183, }, }, Expr: &ast.ExprNew{ @@ -1251,8 +882,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 188, - EndPos: 200, + StartPos: 170, + EndPos: 182, }, }, Class: &ast.StmtClass{ @@ -1260,8 +891,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 10, EndLine: 10, - StartPos: 192, - EndPos: 200, + StartPos: 174, + EndPos: 182, }, }, Stmts: []ast.Vertex{}, @@ -1273,8 +904,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 204, - EndPos: 213, + StartPos: 184, + EndPos: 193, }, }, Expr: &ast.ExprNew{ @@ -1282,8 +913,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 204, - EndPos: 212, + StartPos: 184, + EndPos: 192, }, }, Class: &ast.ExprVariable{ @@ -1291,8 +922,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 208, - EndPos: 212, + StartPos: 188, + EndPos: 192, }, }, VarName: &ast.Identifier{ @@ -1300,8 +931,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 11, EndLine: 11, - StartPos: 208, - EndPos: 212, + StartPos: 188, + EndPos: 192, }, }, Value: []byte("$foo"), @@ -1314,8 +945,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 216, - EndPos: 228, + StartPos: 194, + EndPos: 206, }, }, Expr: &ast.ExprNew{ @@ -1323,8 +954,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 216, - EndPos: 227, + StartPos: 194, + EndPos: 205, }, }, Class: &ast.ExprArrayDimFetch{ @@ -1332,8 +963,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 220, - EndPos: 227, + StartPos: 198, + EndPos: 205, }, }, Var: &ast.ExprVariable{ @@ -1341,8 +972,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 220, - EndPos: 224, + StartPos: 198, + EndPos: 202, }, }, VarName: &ast.Identifier{ @@ -1350,8 +981,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 220, - EndPos: 224, + StartPos: 198, + EndPos: 202, }, }, Value: []byte("$foo"), @@ -1362,8 +993,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 12, EndLine: 12, - StartPos: 225, - EndPos: 226, + StartPos: 203, + EndPos: 204, }, }, Value: []byte("1"), @@ -1376,8 +1007,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 231, - EndPos: 246, + StartPos: 207, + EndPos: 222, }, }, Expr: &ast.ExprNew{ @@ -1385,8 +1016,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 231, - EndPos: 245, + StartPos: 207, + EndPos: 221, }, }, Class: &ast.ExprArrayDimFetch{ @@ -1394,8 +1025,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 235, - EndPos: 245, + StartPos: 211, + EndPos: 221, }, }, Var: &ast.ExprVariable{ @@ -1403,8 +1034,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 235, - EndPos: 239, + StartPos: 211, + EndPos: 215, }, }, VarName: &ast.Identifier{ @@ -1412,8 +1043,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 235, - EndPos: 239, + StartPos: 211, + EndPos: 215, }, }, Value: []byte("$foo"), @@ -1424,8 +1055,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 240, - EndPos: 244, + StartPos: 216, + EndPos: 220, }, }, VarName: &ast.Identifier{ @@ -1433,8 +1064,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 13, EndLine: 13, - StartPos: 240, - EndPos: 244, + StartPos: 216, + EndPos: 220, }, }, Value: []byte("$bar"), @@ -1448,8 +1079,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 249, - EndPos: 263, + StartPos: 223, + EndPos: 237, }, }, Expr: &ast.ExprNew{ @@ -1457,8 +1088,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 249, - EndPos: 262, + StartPos: 223, + EndPos: 236, }, }, Class: &ast.ExprPropertyFetch{ @@ -1466,8 +1097,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 253, - EndPos: 262, + StartPos: 227, + EndPos: 236, }, }, Var: &ast.ExprVariable{ @@ -1475,8 +1106,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 253, - EndPos: 257, + StartPos: 227, + EndPos: 231, }, }, VarName: &ast.Identifier{ @@ -1484,8 +1115,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 253, - EndPos: 257, + StartPos: 227, + EndPos: 231, }, }, Value: []byte("$foo"), @@ -1496,8 +1127,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 14, EndLine: 14, - StartPos: 259, - EndPos: 262, + StartPos: 233, + EndPos: 236, }, }, Value: []byte("bar"), @@ -1510,8 +1141,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 266, - EndPos: 281, + StartPos: 238, + EndPos: 253, }, }, Expr: &ast.ExprNew{ @@ -1519,8 +1150,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 266, - EndPos: 280, + StartPos: 238, + EndPos: 252, }, }, Class: &ast.ExprStaticPropertyFetch{ @@ -1528,8 +1159,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 270, - EndPos: 280, + StartPos: 242, + EndPos: 252, }, }, Class: &ast.ExprVariable{ @@ -1537,8 +1168,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 270, - EndPos: 274, + StartPos: 242, + EndPos: 246, }, }, VarName: &ast.Identifier{ @@ -1546,8 +1177,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 270, - EndPos: 274, + StartPos: 242, + EndPos: 246, }, }, Value: []byte("$foo"), @@ -1558,8 +1189,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 276, - EndPos: 280, + StartPos: 248, + EndPos: 252, }, }, VarName: &ast.Identifier{ @@ -1567,8 +1198,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 15, EndLine: 15, - StartPos: 276, - EndPos: 280, + StartPos: 248, + EndPos: 252, }, }, Value: []byte("$bar"), @@ -1582,8 +1213,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 284, - EndPos: 301, + StartPos: 254, + EndPos: 271, }, }, Expr: &ast.ExprNew{ @@ -1591,8 +1222,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 284, - EndPos: 300, + StartPos: 254, + EndPos: 270, }, }, Class: &ast.ExprStaticPropertyFetch{ @@ -1600,8 +1231,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 288, - EndPos: 300, + StartPos: 258, + EndPos: 270, }, }, Class: &ast.Identifier{ @@ -1609,8 +1240,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 288, - EndPos: 294, + StartPos: 258, + EndPos: 264, }, }, Value: []byte("static"), @@ -1620,8 +1251,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 296, - EndPos: 300, + StartPos: 266, + EndPos: 270, }, }, VarName: &ast.Identifier{ @@ -1629,8 +1260,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 16, EndLine: 16, - StartPos: 296, - EndPos: 300, + StartPos: 266, + EndPos: 270, }, }, Value: []byte("$bar"), @@ -1644,18 +1275,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 305, - EndPos: 350, + StartPos: 273, + EndPos: 318, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 314, - EndPos: 317, + StartPos: 282, + EndPos: 285, }, }, Value: []byte("foo"), @@ -1666,19 +1296,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 318, - EndPos: 332, + StartPos: 286, + EndPos: 300, }, }, - ByRef: false, - Variadic: false, Type: &ast.Nullable{ Node: ast.Node{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 318, - EndPos: 322, + StartPos: 286, + EndPos: 290, }, }, Expr: &ast.NameName{ @@ -1686,8 +1314,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 319, - EndPos: 322, + StartPos: 287, + EndPos: 290, }, }, Parts: []ast.Vertex{ @@ -1696,8 +1324,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 319, - EndPos: 322, + StartPos: 287, + EndPos: 290, }, }, Value: []byte("bar"), @@ -1710,8 +1338,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 323, - EndPos: 327, + StartPos: 291, + EndPos: 295, }, }, VarName: &ast.Identifier{ @@ -1719,8 +1347,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 323, - EndPos: 327, + StartPos: 291, + EndPos: 295, }, }, Value: []byte("$bar"), @@ -1731,8 +1359,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 328, - EndPos: 332, + StartPos: 296, + EndPos: 300, }, }, Const: &ast.NameName{ @@ -1740,8 +1368,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 328, - EndPos: 332, + StartPos: 296, + EndPos: 300, }, }, Parts: []ast.Vertex{ @@ -1750,8 +1378,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 328, - EndPos: 332, + StartPos: 296, + EndPos: 300, }, }, Value: []byte("null"), @@ -1765,19 +1393,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 334, - EndPos: 346, + StartPos: 302, + EndPos: 314, }, }, - Variadic: true, - ByRef: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 334, - EndPos: 337, + StartPos: 302, + EndPos: 305, }, }, Parts: []ast.Vertex{ @@ -1786,33 +1412,53 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 334, - EndPos: 337, + StartPos: 302, + EndPos: 305, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 342, - EndPos: 346, + StartPos: 306, + EndPos: 314, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 18, EndLine: 18, - StartPos: 342, - EndPos: 346, + StartPos: 307, + EndPos: 314, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 310, + EndPos: 314, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 18, + EndLine: 18, + StartPos: 310, + EndPos: 314, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -1824,8 +1470,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 353, - EndPos: 417, + StartPos: 319, + EndPos: 383, }, }, ClassName: &ast.Identifier{ @@ -1833,8 +1479,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 359, - EndPos: 362, + StartPos: 325, + EndPos: 328, }, }, Value: []byte("foo"), @@ -1845,18 +1491,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 364, - EndPos: 416, + StartPos: 330, + EndPos: 382, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 380, - EndPos: 383, + StartPos: 346, + EndPos: 349, }, }, Value: []byte("foo"), @@ -1867,8 +1512,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 364, - EndPos: 370, + StartPos: 330, + EndPos: 336, }, }, Value: []byte("public"), @@ -1880,19 +1525,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 384, - EndPos: 398, + StartPos: 350, + EndPos: 364, }, }, - ByRef: false, - Variadic: false, Type: &ast.Nullable{ Node: ast.Node{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 384, - EndPos: 388, + StartPos: 350, + EndPos: 354, }, }, Expr: &ast.NameName{ @@ -1900,8 +1543,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 385, - EndPos: 388, + StartPos: 351, + EndPos: 354, }, }, Parts: []ast.Vertex{ @@ -1910,8 +1553,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 385, - EndPos: 388, + StartPos: 351, + EndPos: 354, }, }, Value: []byte("bar"), @@ -1924,8 +1567,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 389, - EndPos: 393, + StartPos: 355, + EndPos: 359, }, }, VarName: &ast.Identifier{ @@ -1933,8 +1576,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 389, - EndPos: 393, + StartPos: 355, + EndPos: 359, }, }, Value: []byte("$bar"), @@ -1945,8 +1588,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 394, - EndPos: 398, + StartPos: 360, + EndPos: 364, }, }, Const: &ast.NameName{ @@ -1954,8 +1597,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 394, - EndPos: 398, + StartPos: 360, + EndPos: 364, }, }, Parts: []ast.Vertex{ @@ -1964,8 +1607,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 394, - EndPos: 398, + StartPos: 360, + EndPos: 364, }, }, Value: []byte("null"), @@ -1979,19 +1622,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 400, - EndPos: 412, + StartPos: 366, + EndPos: 378, }, }, - ByRef: true, - Variadic: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 400, - EndPos: 403, + StartPos: 366, + EndPos: 369, }, }, Parts: []ast.Vertex{ @@ -2000,33 +1641,53 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 400, - EndPos: 403, + StartPos: 366, + EndPos: 369, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 408, - EndPos: 412, + StartPos: 370, + EndPos: 378, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 408, - EndPos: 412, + StartPos: 371, + EndPos: 378, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 374, + EndPos: 378, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 19, + EndLine: 19, + StartPos: 374, + EndPos: 378, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -2036,8 +1697,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 19, EndLine: 19, - StartPos: 414, - EndPos: 416, + StartPos: 380, + EndPos: 382, }, }, Stmts: []ast.Vertex{}, @@ -2050,8 +1711,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 420, - EndPos: 462, + StartPos: 384, + EndPos: 426, }, }, Expr: &ast.ExprClosure{ @@ -2059,31 +1720,27 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 420, - EndPos: 461, + StartPos: 384, + EndPos: 425, }, }, - ReturnsRef: false, - Static: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 429, - EndPos: 443, + StartPos: 393, + EndPos: 407, }, }, - ByRef: false, - Variadic: false, Type: &ast.Nullable{ Node: ast.Node{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 429, - EndPos: 433, + StartPos: 393, + EndPos: 397, }, }, Expr: &ast.NameName{ @@ -2091,8 +1748,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 430, - EndPos: 433, + StartPos: 394, + EndPos: 397, }, }, Parts: []ast.Vertex{ @@ -2101,8 +1758,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 430, - EndPos: 433, + StartPos: 394, + EndPos: 397, }, }, Value: []byte("bar"), @@ -2115,8 +1772,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 434, - EndPos: 438, + StartPos: 398, + EndPos: 402, }, }, VarName: &ast.Identifier{ @@ -2124,8 +1781,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 434, - EndPos: 438, + StartPos: 398, + EndPos: 402, }, }, Value: []byte("$bar"), @@ -2136,8 +1793,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 439, - EndPos: 443, + StartPos: 403, + EndPos: 407, }, }, Const: &ast.NameName{ @@ -2145,8 +1802,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 439, - EndPos: 443, + StartPos: 403, + EndPos: 407, }, }, Parts: []ast.Vertex{ @@ -2155,8 +1812,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 439, - EndPos: 443, + StartPos: 403, + EndPos: 407, }, }, Value: []byte("null"), @@ -2170,19 +1827,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 445, - EndPos: 457, + StartPos: 409, + EndPos: 421, }, }, - ByRef: true, - Variadic: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 445, - EndPos: 448, + StartPos: 409, + EndPos: 412, }, }, Parts: []ast.Vertex{ @@ -2191,33 +1846,53 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 445, - EndPos: 448, + StartPos: 409, + EndPos: 412, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 453, - EndPos: 457, + StartPos: 413, + EndPos: 421, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 20, EndLine: 20, - StartPos: 453, - EndPos: 457, + StartPos: 414, + EndPos: 421, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 417, + EndPos: 421, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 20, + EndLine: 20, + StartPos: 417, + EndPos: 421, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -2230,8 +1905,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 465, - EndPos: 514, + StartPos: 427, + EndPos: 476, }, }, Expr: &ast.ExprClosure{ @@ -2239,31 +1914,28 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 465, - EndPos: 513, + StartPos: 427, + EndPos: 475, }, }, - ReturnsRef: false, - Static: true, + Static: true, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 481, - EndPos: 495, + StartPos: 443, + EndPos: 457, }, }, - ByRef: false, - Variadic: false, Type: &ast.Nullable{ Node: ast.Node{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 481, - EndPos: 485, + StartPos: 443, + EndPos: 447, }, }, Expr: &ast.NameName{ @@ -2271,8 +1943,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 482, - EndPos: 485, + StartPos: 444, + EndPos: 447, }, }, Parts: []ast.Vertex{ @@ -2281,8 +1953,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 482, - EndPos: 485, + StartPos: 444, + EndPos: 447, }, }, Value: []byte("bar"), @@ -2295,8 +1967,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 486, - EndPos: 490, + StartPos: 448, + EndPos: 452, }, }, VarName: &ast.Identifier{ @@ -2304,8 +1976,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 486, - EndPos: 490, + StartPos: 448, + EndPos: 452, }, }, Value: []byte("$bar"), @@ -2316,8 +1988,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 491, - EndPos: 495, + StartPos: 453, + EndPos: 457, }, }, Const: &ast.NameName{ @@ -2325,8 +1997,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 491, - EndPos: 495, + StartPos: 453, + EndPos: 457, }, }, Parts: []ast.Vertex{ @@ -2335,8 +2007,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 491, - EndPos: 495, + StartPos: 453, + EndPos: 457, }, }, Value: []byte("null"), @@ -2350,19 +2022,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 497, - EndPos: 509, + StartPos: 459, + EndPos: 471, }, }, - ByRef: true, - Variadic: true, Type: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 497, - EndPos: 500, + StartPos: 459, + EndPos: 462, }, }, Parts: []ast.Vertex{ @@ -2371,33 +2041,53 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 497, - EndPos: 500, + StartPos: 459, + EndPos: 462, }, }, Value: []byte("baz"), }, }, }, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 505, - EndPos: 509, + StartPos: 463, + EndPos: 471, }, }, - VarName: &ast.Identifier{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 21, EndLine: 21, - StartPos: 505, - EndPos: 509, + StartPos: 464, + EndPos: 471, + }, + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 467, + EndPos: 471, + }, + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 21, + EndLine: 21, + StartPos: 467, + EndPos: 471, + }, + }, + Value: []byte("$baz"), }, }, - Value: []byte("$baz"), }, }, }, @@ -2410,8 +2100,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 518, - EndPos: 538, + StartPos: 478, + EndPos: 498, }, }, Expr: &ast.ScalarLnumber{ @@ -2419,8 +2109,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 23, EndLine: 23, - StartPos: 518, - EndPos: 537, + StartPos: 478, + EndPos: 497, }, }, Value: []byte("1234567890123456789"), @@ -2431,8 +2121,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 541, - EndPos: 562, + StartPos: 499, + EndPos: 520, }, }, Expr: &ast.ScalarDnumber{ @@ -2440,8 +2130,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 24, EndLine: 24, - StartPos: 541, - EndPos: 561, + StartPos: 499, + EndPos: 519, }, }, Value: []byte("12345678901234567890"), @@ -2452,8 +2142,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 565, - EndPos: 568, + StartPos: 521, + EndPos: 524, }, }, Expr: &ast.ScalarDnumber{ @@ -2461,8 +2151,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 25, EndLine: 25, - StartPos: 565, - EndPos: 567, + StartPos: 521, + EndPos: 523, }, }, Value: []byte("0."), @@ -2473,8 +2163,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 571, - EndPos: 638, + StartPos: 525, + EndPos: 592, }, }, Expr: &ast.ScalarLnumber{ @@ -2482,8 +2172,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 26, EndLine: 26, - StartPos: 571, - EndPos: 637, + StartPos: 525, + EndPos: 591, }, }, Value: []byte("0b0111111111111111111111111111111111111111111111111111111111111111"), @@ -2494,8 +2184,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 641, - EndPos: 708, + StartPos: 593, + EndPos: 660, }, }, Expr: &ast.ScalarDnumber{ @@ -2503,8 +2193,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 27, EndLine: 27, - StartPos: 641, - EndPos: 707, + StartPos: 593, + EndPos: 659, }, }, Value: []byte("0b1111111111111111111111111111111111111111111111111111111111111111"), @@ -2515,8 +2205,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 711, - EndPos: 732, + StartPos: 661, + EndPos: 682, }, }, Expr: &ast.ScalarLnumber{ @@ -2524,8 +2214,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 28, EndLine: 28, - StartPos: 711, - EndPos: 731, + StartPos: 661, + EndPos: 681, }, }, Value: []byte("0x007111111111111111"), @@ -2536,8 +2226,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 29, EndLine: 29, - StartPos: 735, - EndPos: 754, + StartPos: 683, + EndPos: 702, }, }, Expr: &ast.ScalarDnumber{ @@ -2545,8 +2235,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 29, EndLine: 29, - StartPos: 735, - EndPos: 753, + StartPos: 683, + EndPos: 701, }, }, Value: []byte("0x8111111111111111"), @@ -2557,8 +2247,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 757, - EndPos: 767, + StartPos: 703, + EndPos: 713, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2566,8 +2256,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 30, EndLine: 30, - StartPos: 757, - EndPos: 766, + StartPos: 703, + EndPos: 712, }, }, Value: []byte("__CLASS__"), @@ -2578,8 +2268,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 770, - EndPos: 778, + StartPos: 714, + EndPos: 722, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2587,8 +2277,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 31, EndLine: 31, - StartPos: 770, - EndPos: 777, + StartPos: 714, + EndPos: 721, }, }, Value: []byte("__DIR__"), @@ -2599,8 +2289,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 781, - EndPos: 790, + StartPos: 723, + EndPos: 732, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2608,8 +2298,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 32, EndLine: 32, - StartPos: 781, - EndPos: 789, + StartPos: 723, + EndPos: 731, }, }, Value: []byte("__FILE__"), @@ -2620,8 +2310,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 793, - EndPos: 806, + StartPos: 733, + EndPos: 746, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2629,8 +2319,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 33, EndLine: 33, - StartPos: 793, - EndPos: 805, + StartPos: 733, + EndPos: 745, }, }, Value: []byte("__FUNCTION__"), @@ -2641,8 +2331,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 809, - EndPos: 818, + StartPos: 747, + EndPos: 756, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2650,8 +2340,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 34, EndLine: 34, - StartPos: 809, - EndPos: 817, + StartPos: 747, + EndPos: 755, }, }, Value: []byte("__LINE__"), @@ -2662,8 +2352,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 821, - EndPos: 835, + StartPos: 757, + EndPos: 771, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2671,8 +2361,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 35, EndLine: 35, - StartPos: 821, - EndPos: 834, + StartPos: 757, + EndPos: 770, }, }, Value: []byte("__NAMESPACE__"), @@ -2683,8 +2373,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 838, - EndPos: 849, + StartPos: 772, + EndPos: 783, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2692,8 +2382,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 36, EndLine: 36, - StartPos: 838, - EndPos: 848, + StartPos: 772, + EndPos: 782, }, }, Value: []byte("__METHOD__"), @@ -2704,8 +2394,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 852, - EndPos: 862, + StartPos: 784, + EndPos: 794, }, }, Expr: &ast.ScalarMagicConstant{ @@ -2713,8 +2403,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 37, EndLine: 37, - StartPos: 852, - EndPos: 861, + StartPos: 784, + EndPos: 793, }, }, Value: []byte("__TRAIT__"), @@ -2725,8 +2415,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 866, - EndPos: 878, + StartPos: 796, + EndPos: 808, }, }, Expr: &ast.ScalarEncapsed{ @@ -2734,8 +2424,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 866, - EndPos: 877, + StartPos: 796, + EndPos: 807, }, }, Parts: []ast.Vertex{ @@ -2744,8 +2434,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 867, - EndPos: 872, + StartPos: 797, + EndPos: 802, }, }, Value: []byte("test "), @@ -2755,8 +2445,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 872, - EndPos: 876, + StartPos: 802, + EndPos: 806, }, }, VarName: &ast.Identifier{ @@ -2764,8 +2454,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 39, EndLine: 39, - StartPos: 872, - EndPos: 876, + StartPos: 802, + EndPos: 806, }, }, Value: []byte("$var"), @@ -2779,8 +2469,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 881, - EndPos: 896, + StartPos: 809, + EndPos: 824, }, }, Expr: &ast.ScalarEncapsed{ @@ -2788,8 +2478,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 881, - EndPos: 895, + StartPos: 809, + EndPos: 823, }, }, Parts: []ast.Vertex{ @@ -2798,8 +2488,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 882, - EndPos: 887, + StartPos: 810, + EndPos: 815, }, }, Value: []byte("test "), @@ -2809,8 +2499,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 887, - EndPos: 894, + StartPos: 815, + EndPos: 822, }, }, Var: &ast.ExprVariable{ @@ -2818,8 +2508,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 887, - EndPos: 891, + StartPos: 815, + EndPos: 819, }, }, VarName: &ast.Identifier{ @@ -2827,8 +2517,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 887, - EndPos: 891, + StartPos: 815, + EndPos: 819, }, }, Value: []byte("$var"), @@ -2839,8 +2529,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 40, EndLine: 40, - StartPos: 892, - EndPos: 893, + StartPos: 820, + EndPos: 821, }, }, Value: []byte("1"), @@ -2854,8 +2544,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 899, - EndPos: 915, + StartPos: 825, + EndPos: 841, }, }, Expr: &ast.ScalarEncapsed{ @@ -2863,8 +2553,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 899, - EndPos: 914, + StartPos: 825, + EndPos: 840, }, }, Parts: []ast.Vertex{ @@ -2873,8 +2563,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 900, - EndPos: 905, + StartPos: 826, + EndPos: 831, }, }, Value: []byte("test "), @@ -2884,8 +2574,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 905, - EndPos: 913, + StartPos: 831, + EndPos: 839, }, }, Var: &ast.ExprVariable{ @@ -2893,8 +2583,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 905, - EndPos: 909, + StartPos: 831, + EndPos: 835, }, }, VarName: &ast.Identifier{ @@ -2902,8 +2592,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 905, - EndPos: 909, + StartPos: 831, + EndPos: 835, }, }, Value: []byte("$var"), @@ -2914,8 +2604,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 910, - EndPos: 912, + StartPos: 836, + EndPos: 838, }, }, Expr: &ast.ScalarLnumber{ @@ -2923,8 +2613,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 41, EndLine: 41, - StartPos: 910, - EndPos: 912, + StartPos: 836, + EndPos: 838, }, }, Value: []byte("1"), @@ -2939,8 +2629,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 918, - EndPos: 972, + StartPos: 842, + EndPos: 896, }, }, Expr: &ast.ScalarEncapsed{ @@ -2948,8 +2638,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 918, - EndPos: 971, + StartPos: 842, + EndPos: 895, }, }, Parts: []ast.Vertex{ @@ -2958,8 +2648,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 919, - EndPos: 924, + StartPos: 843, + EndPos: 848, }, }, Value: []byte("test "), @@ -2969,8 +2659,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 924, - EndPos: 970, + StartPos: 848, + EndPos: 894, }, }, Var: &ast.ExprVariable{ @@ -2978,8 +2668,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 924, - EndPos: 928, + StartPos: 848, + EndPos: 852, }, }, VarName: &ast.Identifier{ @@ -2987,8 +2677,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 924, - EndPos: 928, + StartPos: 848, + EndPos: 852, }, }, Value: []byte("$var"), @@ -2999,8 +2689,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 42, EndLine: 42, - StartPos: 929, - EndPos: 969, + StartPos: 853, + EndPos: 893, }, }, Value: []byte("1234567890123456789012345678901234567890"), @@ -3014,8 +2704,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 975, - EndPos: 1030, + StartPos: 897, + EndPos: 952, }, }, Expr: &ast.ScalarEncapsed{ @@ -3023,8 +2713,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 975, - EndPos: 1029, + StartPos: 897, + EndPos: 951, }, }, Parts: []ast.Vertex{ @@ -3033,8 +2723,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 976, - EndPos: 981, + StartPos: 898, + EndPos: 903, }, }, Value: []byte("test "), @@ -3044,8 +2734,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 981, - EndPos: 1028, + StartPos: 903, + EndPos: 950, }, }, Var: &ast.ExprVariable{ @@ -3053,8 +2743,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 981, - EndPos: 985, + StartPos: 903, + EndPos: 907, }, }, VarName: &ast.Identifier{ @@ -3062,8 +2752,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 981, - EndPos: 985, + StartPos: 903, + EndPos: 907, }, }, Value: []byte("$var"), @@ -3074,8 +2764,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 43, EndLine: 43, - StartPos: 986, - EndPos: 1027, + StartPos: 908, + EndPos: 949, }, }, Value: []byte("-1234567890123456789012345678901234567890"), @@ -3089,8 +2779,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1033, - EndPos: 1050, + StartPos: 953, + EndPos: 970, }, }, Expr: &ast.ScalarEncapsed{ @@ -3098,8 +2788,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1033, - EndPos: 1049, + StartPos: 953, + EndPos: 969, }, }, Parts: []ast.Vertex{ @@ -3108,8 +2798,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1034, - EndPos: 1039, + StartPos: 954, + EndPos: 959, }, }, Value: []byte("test "), @@ -3119,8 +2809,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1039, - EndPos: 1048, + StartPos: 959, + EndPos: 968, }, }, Var: &ast.ExprVariable{ @@ -3128,8 +2818,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1039, - EndPos: 1043, + StartPos: 959, + EndPos: 963, }, }, VarName: &ast.Identifier{ @@ -3137,8 +2827,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1039, - EndPos: 1043, + StartPos: 959, + EndPos: 963, }, }, Value: []byte("$var"), @@ -3149,8 +2839,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 44, EndLine: 44, - StartPos: 1044, - EndPos: 1047, + StartPos: 964, + EndPos: 967, }, }, Value: []byte("bar"), @@ -3164,8 +2854,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1053, - EndPos: 1071, + StartPos: 971, + EndPos: 989, }, }, Expr: &ast.ScalarEncapsed{ @@ -3173,8 +2863,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1053, - EndPos: 1070, + StartPos: 971, + EndPos: 988, }, }, Parts: []ast.Vertex{ @@ -3183,8 +2873,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1054, - EndPos: 1059, + StartPos: 972, + EndPos: 977, }, }, Value: []byte("test "), @@ -3194,8 +2884,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1059, - EndPos: 1069, + StartPos: 977, + EndPos: 987, }, }, Var: &ast.ExprVariable{ @@ -3203,8 +2893,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1059, - EndPos: 1063, + StartPos: 977, + EndPos: 981, }, }, VarName: &ast.Identifier{ @@ -3212,8 +2902,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1059, - EndPos: 1063, + StartPos: 977, + EndPos: 981, }, }, Value: []byte("$var"), @@ -3224,8 +2914,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1064, - EndPos: 1068, + StartPos: 982, + EndPos: 986, }, }, VarName: &ast.Identifier{ @@ -3233,8 +2923,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 45, EndLine: 45, - StartPos: 1064, - EndPos: 1068, + StartPos: 982, + EndPos: 986, }, }, Value: []byte("$bar"), @@ -3249,8 +2939,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1074, - EndPos: 1086, + StartPos: 990, + EndPos: 1002, }, }, Expr: &ast.ScalarEncapsed{ @@ -3258,8 +2948,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1074, - EndPos: 1085, + StartPos: 990, + EndPos: 1001, }, }, Parts: []ast.Vertex{ @@ -3268,8 +2958,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1075, - EndPos: 1079, + StartPos: 991, + EndPos: 995, }, }, VarName: &ast.Identifier{ @@ -3277,8 +2967,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1075, - EndPos: 1079, + StartPos: 991, + EndPos: 995, }, }, Value: []byte("$foo"), @@ -3289,8 +2979,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1079, - EndPos: 1080, + StartPos: 995, + EndPos: 996, }, }, Value: []byte(" "), @@ -3300,8 +2990,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1080, - EndPos: 1084, + StartPos: 996, + EndPos: 1000, }, }, VarName: &ast.Identifier{ @@ -3309,8 +2999,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 46, EndLine: 46, - StartPos: 1080, - EndPos: 1084, + StartPos: 996, + EndPos: 1000, }, }, Value: []byte("$bar"), @@ -3324,8 +3014,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1089, - EndPos: 1108, + StartPos: 1003, + EndPos: 1022, }, }, Expr: &ast.ScalarEncapsed{ @@ -3333,8 +3023,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1089, - EndPos: 1107, + StartPos: 1003, + EndPos: 1021, }, }, Parts: []ast.Vertex{ @@ -3343,8 +3033,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1090, - EndPos: 1095, + StartPos: 1004, + EndPos: 1009, }, }, Value: []byte("test "), @@ -3354,8 +3044,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1095, - EndPos: 1104, + StartPos: 1009, + EndPos: 1018, }, }, Var: &ast.ExprVariable{ @@ -3363,8 +3053,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1095, - EndPos: 1099, + StartPos: 1009, + EndPos: 1013, }, }, VarName: &ast.Identifier{ @@ -3372,8 +3062,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1095, - EndPos: 1099, + StartPos: 1009, + EndPos: 1013, }, }, Value: []byte("$foo"), @@ -3384,8 +3074,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1101, - EndPos: 1104, + StartPos: 1015, + EndPos: 1018, }, }, Value: []byte("bar"), @@ -3396,8 +3086,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 47, EndLine: 47, - StartPos: 1104, - EndPos: 1106, + StartPos: 1018, + EndPos: 1020, }, }, Value: []byte("()"), @@ -3410,8 +3100,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1111, - EndPos: 1125, + StartPos: 1023, + EndPos: 1037, }, }, Expr: &ast.ScalarEncapsed{ @@ -3419,8 +3109,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1111, - EndPos: 1124, + StartPos: 1023, + EndPos: 1036, }, }, Parts: []ast.Vertex{ @@ -3429,8 +3119,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1112, - EndPos: 1117, + StartPos: 1024, + EndPos: 1029, }, }, Value: []byte("test "), @@ -3440,8 +3130,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1117, - EndPos: 1123, + StartPos: 1029, + EndPos: 1035, }, }, VarName: &ast.Identifier{ @@ -3449,8 +3139,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 48, EndLine: 48, - StartPos: 1119, - EndPos: 1122, + StartPos: 1031, + EndPos: 1034, }, }, Value: []byte("foo"), @@ -3464,8 +3154,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1128, - EndPos: 1145, + StartPos: 1038, + EndPos: 1055, }, }, Expr: &ast.ScalarEncapsed{ @@ -3473,8 +3163,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1128, - EndPos: 1144, + StartPos: 1038, + EndPos: 1054, }, }, Parts: []ast.Vertex{ @@ -3483,8 +3173,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1129, - EndPos: 1134, + StartPos: 1039, + EndPos: 1044, }, }, Value: []byte("test "), @@ -3494,8 +3184,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1134, - EndPos: 1143, + StartPos: 1044, + EndPos: 1053, }, }, Var: &ast.ExprVariable{ @@ -3503,8 +3193,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1136, - EndPos: 1139, + StartPos: 1046, + EndPos: 1049, }, }, VarName: &ast.Identifier{ @@ -3512,8 +3202,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1136, - EndPos: 1139, + StartPos: 1046, + EndPos: 1049, }, }, Value: []byte("foo"), @@ -3524,8 +3214,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 49, EndLine: 49, - StartPos: 1140, - EndPos: 1141, + StartPos: 1050, + EndPos: 1051, }, }, Value: []byte("0"), @@ -3539,8 +3229,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1148, - EndPos: 1163, + StartPos: 1056, + EndPos: 1071, }, }, Expr: &ast.ScalarEncapsed{ @@ -3548,8 +3238,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1148, - EndPos: 1162, + StartPos: 1056, + EndPos: 1070, }, }, Parts: []ast.Vertex{ @@ -3558,8 +3248,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1149, - EndPos: 1154, + StartPos: 1057, + EndPos: 1062, }, }, Value: []byte("test "), @@ -3569,8 +3259,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1154, - EndPos: 1161, + StartPos: 1062, + EndPos: 1069, }, }, VarName: &ast.ExprVariable{ @@ -3578,8 +3268,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1156, - EndPos: 1160, + StartPos: 1064, + EndPos: 1068, }, }, VarName: &ast.Identifier{ @@ -3587,8 +3277,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 50, EndLine: 50, - StartPos: 1156, - EndPos: 1160, + StartPos: 1064, + EndPos: 1068, }, }, Value: []byte("$foo"), @@ -3603,8 +3293,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1166, - EndPos: 1187, + StartPos: 1072, + EndPos: 1093, }, }, Expr: &ast.ScalarEncapsed{ @@ -3612,8 +3302,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1166, - EndPos: 1186, + StartPos: 1072, + EndPos: 1092, }, }, Parts: []ast.Vertex{ @@ -3622,8 +3312,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1167, - EndPos: 1172, + StartPos: 1073, + EndPos: 1078, }, }, Value: []byte("test "), @@ -3633,8 +3323,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1173, - EndPos: 1184, + StartPos: 1079, + EndPos: 1090, }, }, Var: &ast.ExprVariable{ @@ -3642,8 +3332,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1173, - EndPos: 1177, + StartPos: 1079, + EndPos: 1083, }, }, VarName: &ast.Identifier{ @@ -3651,8 +3341,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1173, - EndPos: 1177, + StartPos: 1079, + EndPos: 1083, }, }, Value: []byte("$foo"), @@ -3663,8 +3353,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1179, - EndPos: 1182, + StartPos: 1085, + EndPos: 1088, }, }, Value: []byte("bar"), @@ -3674,8 +3364,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 51, EndLine: 51, - StartPos: 1182, - EndPos: 1184, + StartPos: 1088, + EndPos: 1090, }, }, }, @@ -3688,8 +3378,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 53, EndLine: 54, - StartPos: 1191, - EndPos: 1209, + StartPos: 1095, + EndPos: 1111, }, }, Cond: &ast.ExprVariable{ @@ -3697,8 +3387,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 53, EndLine: 53, - StartPos: 1195, - EndPos: 1197, + StartPos: 1099, + EndPos: 1101, }, }, VarName: &ast.Identifier{ @@ -3706,8 +3396,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 53, EndLine: 53, - StartPos: 1195, - EndPos: 1197, + StartPos: 1099, + EndPos: 1101, }, }, Value: []byte("$a"), @@ -3730,8 +3420,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 57, - StartPos: 1212, - EndPos: 1245, + StartPos: 1112, + EndPos: 1141, }, }, Cond: &ast.ExprVariable{ @@ -3739,8 +3429,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1216, - EndPos: 1218, + StartPos: 1116, + EndPos: 1118, }, }, VarName: &ast.Identifier{ @@ -3748,8 +3438,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 55, EndLine: 55, - StartPos: 1216, - EndPos: 1218, + StartPos: 1116, + EndPos: 1118, }, }, Value: []byte("$a"), @@ -3772,7 +3462,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: -1, - StartPos: 1224, + StartPos: 1122, EndPos: -1, }, }, @@ -3781,8 +3471,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1232, - EndPos: 1234, + StartPos: 1130, + EndPos: 1132, }, }, VarName: &ast.Identifier{ @@ -3790,8 +3480,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 56, EndLine: 56, - StartPos: 1232, - EndPos: 1234, + StartPos: 1130, + EndPos: 1132, }, }, Value: []byte("$b"), @@ -3816,8 +3506,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 60, - StartPos: 1248, - EndPos: 1274, + StartPos: 1142, + EndPos: 1164, }, }, Cond: &ast.ExprVariable{ @@ -3825,8 +3515,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1252, - EndPos: 1254, + StartPos: 1146, + EndPos: 1148, }, }, VarName: &ast.Identifier{ @@ -3834,8 +3524,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 58, EndLine: 58, - StartPos: 1252, - EndPos: 1254, + StartPos: 1146, + EndPos: 1148, }, }, Value: []byte("$a"), @@ -3857,7 +3547,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 59, EndLine: -1, - StartPos: 1260, + StartPos: 1152, EndPos: -1, }, }, @@ -3879,8 +3569,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 65, - StartPos: 1277, - EndPos: 1333, + StartPos: 1165, + EndPos: 1213, }, }, Cond: &ast.ExprVariable{ @@ -3888,8 +3578,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1281, - EndPos: 1283, + StartPos: 1169, + EndPos: 1171, }, }, VarName: &ast.Identifier{ @@ -3897,8 +3587,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 61, EndLine: 61, - StartPos: 1281, - EndPos: 1283, + StartPos: 1169, + EndPos: 1171, }, }, Value: []byte("$a"), @@ -3921,7 +3611,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: -1, - StartPos: 1289, + StartPos: 1175, EndPos: -1, }, }, @@ -3930,8 +3620,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1297, - EndPos: 1299, + StartPos: 1183, + EndPos: 1185, }, }, VarName: &ast.Identifier{ @@ -3939,8 +3629,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 62, EndLine: 62, - StartPos: 1297, - EndPos: 1299, + StartPos: 1183, + EndPos: 1185, }, }, Value: []byte("$b"), @@ -3963,7 +3653,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: -1, - StartPos: 1304, + StartPos: 1188, EndPos: -1, }, }, @@ -3972,8 +3662,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1312, - EndPos: 1314, + StartPos: 1196, + EndPos: 1198, }, }, VarName: &ast.Identifier{ @@ -3981,8 +3671,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 63, EndLine: 63, - StartPos: 1312, - EndPos: 1314, + StartPos: 1196, + EndPos: 1198, }, }, Value: []byte("$c"), @@ -4006,7 +3696,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 64, EndLine: -1, - StartPos: 1319, + StartPos: 1201, EndPos: -1, }, }, @@ -4028,8 +3718,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1337, - EndPos: 1357, + StartPos: 1215, + EndPos: 1235, }, }, Cond: &ast.ScalarLnumber{ @@ -4037,8 +3727,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1344, - EndPos: 1345, + StartPos: 1222, + EndPos: 1223, }, }, Value: []byte("1"), @@ -4048,8 +3738,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1347, - EndPos: 1357, + StartPos: 1225, + EndPos: 1235, }, }, Stmts: []ast.Vertex{ @@ -4058,8 +3748,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 67, EndLine: 67, - StartPos: 1349, - EndPos: 1355, + StartPos: 1227, + EndPos: 1233, }, }, }, @@ -4071,8 +3761,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1360, - EndPos: 1382, + StartPos: 1236, + EndPos: 1258, }, }, Cond: &ast.ScalarLnumber{ @@ -4080,8 +3770,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1367, - EndPos: 1368, + StartPos: 1243, + EndPos: 1244, }, }, Value: []byte("1"), @@ -4091,8 +3781,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1370, - EndPos: 1382, + StartPos: 1246, + EndPos: 1258, }, }, Stmts: []ast.Vertex{ @@ -4101,8 +3791,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1372, - EndPos: 1380, + StartPos: 1248, + EndPos: 1256, }, }, Expr: &ast.ScalarLnumber{ @@ -4110,8 +3800,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 68, EndLine: 68, - StartPos: 1378, - EndPos: 1379, + StartPos: 1254, + EndPos: 1255, }, }, Value: []byte("2"), @@ -4125,8 +3815,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1385, - EndPos: 1416, + StartPos: 1259, + EndPos: 1290, }, }, Cond: &ast.ScalarLnumber{ @@ -4134,8 +3824,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1392, - EndPos: 1393, + StartPos: 1266, + EndPos: 1267, }, }, Value: []byte("1"), @@ -4145,8 +3835,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1397, - EndPos: 1406, + StartPos: 1271, + EndPos: 1280, }, }, Stmts: []ast.Vertex{ @@ -4155,8 +3845,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1397, - EndPos: 1406, + StartPos: 1271, + EndPos: 1280, }, }, Expr: &ast.ScalarLnumber{ @@ -4164,8 +3854,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 69, EndLine: 69, - StartPos: 1403, - EndPos: 1404, + StartPos: 1277, + EndPos: 1278, }, }, Value: []byte("3"), @@ -4179,8 +3869,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1419, - EndPos: 1462, + StartPos: 1291, + EndPos: 1334, }, }, ClassName: &ast.Identifier{ @@ -4188,8 +3878,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1425, - EndPos: 1428, + StartPos: 1297, + EndPos: 1300, }, }, Value: []byte("foo"), @@ -4200,8 +3890,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1430, - EndPos: 1460, + StartPos: 1302, + EndPos: 1332, }, }, Modifiers: []ast.Vertex{ @@ -4210,8 +3900,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1430, - EndPos: 1436, + StartPos: 1302, + EndPos: 1308, }, }, Value: []byte("public"), @@ -4223,8 +3913,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1443, - EndPos: 1450, + StartPos: 1315, + EndPos: 1322, }, }, ConstantName: &ast.Identifier{ @@ -4232,8 +3922,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1443, - EndPos: 1446, + StartPos: 1315, + EndPos: 1318, }, }, Value: []byte("FOO"), @@ -4243,8 +3933,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1449, - EndPos: 1450, + StartPos: 1321, + EndPos: 1322, }, }, Value: []byte("1"), @@ -4255,8 +3945,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1452, - EndPos: 1459, + StartPos: 1324, + EndPos: 1331, }, }, ConstantName: &ast.Identifier{ @@ -4264,8 +3954,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1452, - EndPos: 1455, + StartPos: 1324, + EndPos: 1327, }, }, Value: []byte("BAR"), @@ -4275,8 +3965,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 70, EndLine: 70, - StartPos: 1458, - EndPos: 1459, + StartPos: 1330, + EndPos: 1331, }, }, Value: []byte("2"), @@ -4291,8 +3981,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1465, - EndPos: 1501, + StartPos: 1335, + EndPos: 1371, }, }, ClassName: &ast.Identifier{ @@ -4300,8 +3990,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1471, - EndPos: 1474, + StartPos: 1341, + EndPos: 1344, }, }, Value: []byte("foo"), @@ -4312,8 +4002,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1476, - EndPos: 1499, + StartPos: 1346, + EndPos: 1369, }, }, Consts: []ast.Vertex{ @@ -4322,8 +4012,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1482, - EndPos: 1489, + StartPos: 1352, + EndPos: 1359, }, }, ConstantName: &ast.Identifier{ @@ -4331,8 +4021,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1482, - EndPos: 1485, + StartPos: 1352, + EndPos: 1355, }, }, Value: []byte("FOO"), @@ -4342,8 +4032,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1488, - EndPos: 1489, + StartPos: 1358, + EndPos: 1359, }, }, Value: []byte("1"), @@ -4354,8 +4044,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1491, - EndPos: 1498, + StartPos: 1361, + EndPos: 1368, }, }, ConstantName: &ast.Identifier{ @@ -4363,8 +4053,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1491, - EndPos: 1494, + StartPos: 1361, + EndPos: 1364, }, }, Value: []byte("BAR"), @@ -4374,8 +4064,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 71, EndLine: 71, - StartPos: 1497, - EndPos: 1498, + StartPos: 1367, + EndPos: 1368, }, }, Value: []byte("2"), @@ -4390,8 +4080,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1504, - EndPos: 1534, + StartPos: 1372, + EndPos: 1402, }, }, ClassName: &ast.Identifier{ @@ -4399,8 +4089,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1510, - EndPos: 1513, + StartPos: 1378, + EndPos: 1381, }, }, Value: []byte("foo"), @@ -4411,18 +4101,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1515, - EndPos: 1532, + StartPos: 1383, + EndPos: 1400, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1524, - EndPos: 1527, + StartPos: 1392, + EndPos: 1395, }, }, Value: []byte("bar"), @@ -4432,8 +4121,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 72, EndLine: 72, - StartPos: 1530, - EndPos: 1532, + StartPos: 1398, + EndPos: 1400, }, }, Stmts: []ast.Vertex{}, @@ -4446,8 +4135,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1537, - EndPos: 1582, + StartPos: 1403, + EndPos: 1448, }, }, ClassName: &ast.Identifier{ @@ -4455,8 +4144,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1543, - EndPos: 1546, + StartPos: 1409, + EndPos: 1412, }, }, Value: []byte("foo"), @@ -4467,8 +4156,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1548, - EndPos: 1580, + StartPos: 1414, + EndPos: 1446, }, }, ReturnsRef: true, @@ -4477,8 +4166,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1572, - EndPos: 1575, + StartPos: 1438, + EndPos: 1441, }, }, Value: []byte("bar"), @@ -4489,8 +4178,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1548, - EndPos: 1554, + StartPos: 1414, + EndPos: 1420, }, }, Value: []byte("public"), @@ -4500,8 +4189,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1555, - EndPos: 1561, + StartPos: 1421, + EndPos: 1427, }, }, Value: []byte("static"), @@ -4512,8 +4201,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 73, EndLine: 73, - StartPos: 1578, - EndPos: 1580, + StartPos: 1444, + EndPos: 1446, }, }, Stmts: []ast.Vertex{}, @@ -4526,8 +4215,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1585, - EndPos: 1636, + StartPos: 1449, + EndPos: 1500, }, }, ClassName: &ast.Identifier{ @@ -4535,8 +4224,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1591, - EndPos: 1594, + StartPos: 1455, + EndPos: 1458, }, }, Value: []byte("foo"), @@ -4547,8 +4236,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1596, - EndPos: 1634, + StartPos: 1460, + EndPos: 1498, }, }, ReturnsRef: true, @@ -4557,8 +4246,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1620, - EndPos: 1623, + StartPos: 1484, + EndPos: 1487, }, }, Value: []byte("bar"), @@ -4569,8 +4258,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1596, - EndPos: 1602, + StartPos: 1460, + EndPos: 1466, }, }, Value: []byte("public"), @@ -4580,8 +4269,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1603, - EndPos: 1609, + StartPos: 1467, + EndPos: 1473, }, }, Value: []byte("static"), @@ -4592,8 +4281,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1627, - EndPos: 1631, + StartPos: 1491, + EndPos: 1495, }, }, Parts: []ast.Vertex{ @@ -4602,8 +4291,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1627, - EndPos: 1631, + StartPos: 1491, + EndPos: 1495, }, }, Value: []byte("void"), @@ -4615,8 +4304,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 74, EndLine: 74, - StartPos: 1632, - EndPos: 1634, + StartPos: 1496, + EndPos: 1498, }, }, Stmts: []ast.Vertex{}, @@ -4629,8 +4318,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1639, - EndPos: 1660, + StartPos: 1501, + EndPos: 1522, }, }, ClassName: &ast.Identifier{ @@ -4638,8 +4327,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1654, - EndPos: 1657, + StartPos: 1516, + EndPos: 1519, }, }, Value: []byte("foo"), @@ -4650,8 +4339,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 75, EndLine: 75, - StartPos: 1639, - EndPos: 1647, + StartPos: 1501, + EndPos: 1509, }, }, Value: []byte("abstract"), @@ -4664,8 +4353,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1663, - EndPos: 1694, + StartPos: 1523, + EndPos: 1554, }, }, ClassName: &ast.Identifier{ @@ -4673,8 +4362,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1675, - EndPos: 1678, + StartPos: 1535, + EndPos: 1538, }, }, Value: []byte("foo"), @@ -4685,8 +4374,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1663, - EndPos: 1668, + StartPos: 1523, + EndPos: 1528, }, }, Value: []byte("final"), @@ -4697,8 +4386,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1679, - EndPos: 1690, + StartPos: 1539, + EndPos: 1550, }, }, ClassName: &ast.NameName{ @@ -4706,8 +4395,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1687, - EndPos: 1690, + StartPos: 1547, + EndPos: 1550, }, }, Parts: []ast.Vertex{ @@ -4716,8 +4405,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 76, EndLine: 76, - StartPos: 1687, - EndPos: 1690, + StartPos: 1547, + EndPos: 1550, }, }, Value: []byte("bar"), @@ -4732,8 +4421,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1697, - EndPos: 1731, + StartPos: 1555, + EndPos: 1589, }, }, ClassName: &ast.Identifier{ @@ -4741,8 +4430,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1709, - EndPos: 1712, + StartPos: 1567, + EndPos: 1570, }, }, Value: []byte("foo"), @@ -4753,8 +4442,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1697, - EndPos: 1702, + StartPos: 1555, + EndPos: 1560, }, }, Value: []byte("final"), @@ -4765,8 +4454,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1713, - EndPos: 1727, + StartPos: 1571, + EndPos: 1585, }, }, InterfaceNames: []ast.Vertex{ @@ -4775,8 +4464,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1724, - EndPos: 1727, + StartPos: 1582, + EndPos: 1585, }, }, Parts: []ast.Vertex{ @@ -4785,8 +4474,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 77, EndLine: 77, - StartPos: 1724, - EndPos: 1727, + StartPos: 1582, + EndPos: 1585, }, }, Value: []byte("bar"), @@ -4802,8 +4491,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1734, - EndPos: 1773, + StartPos: 1590, + EndPos: 1629, }, }, ClassName: &ast.Identifier{ @@ -4811,8 +4500,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1746, - EndPos: 1749, + StartPos: 1602, + EndPos: 1605, }, }, Value: []byte("foo"), @@ -4823,8 +4512,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1734, - EndPos: 1739, + StartPos: 1590, + EndPos: 1595, }, }, Value: []byte("final"), @@ -4835,8 +4524,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1750, - EndPos: 1769, + StartPos: 1606, + EndPos: 1625, }, }, InterfaceNames: []ast.Vertex{ @@ -4845,8 +4534,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1761, - EndPos: 1764, + StartPos: 1617, + EndPos: 1620, }, }, Parts: []ast.Vertex{ @@ -4855,8 +4544,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1761, - EndPos: 1764, + StartPos: 1617, + EndPos: 1620, }, }, Value: []byte("bar"), @@ -4868,8 +4557,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1766, - EndPos: 1769, + StartPos: 1622, + EndPos: 1625, }, }, Parts: []ast.Vertex{ @@ -4878,8 +4567,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 78, EndLine: 78, - StartPos: 1766, - EndPos: 1769, + StartPos: 1622, + EndPos: 1625, }, }, Value: []byte("baz"), @@ -4895,8 +4584,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1776, - EndPos: 1824, + StartPos: 1630, + EndPos: 1678, }, }, Expr: &ast.ExprNew{ @@ -4904,8 +4593,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1776, - EndPos: 1823, + StartPos: 1630, + EndPos: 1677, }, }, Class: &ast.StmtClass{ @@ -4913,8 +4602,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1780, - EndPos: 1823, + StartPos: 1634, + EndPos: 1677, }, }, ArgumentList: &ast.ArgumentList{ @@ -4922,8 +4611,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1785, - EndPos: 1787, + StartPos: 1639, + EndPos: 1641, }, }, }, @@ -4932,8 +4621,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1788, - EndPos: 1799, + StartPos: 1642, + EndPos: 1653, }, }, ClassName: &ast.NameName{ @@ -4941,8 +4630,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1796, - EndPos: 1799, + StartPos: 1650, + EndPos: 1653, }, }, Parts: []ast.Vertex{ @@ -4951,8 +4640,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1796, - EndPos: 1799, + StartPos: 1650, + EndPos: 1653, }, }, Value: []byte("foo"), @@ -4965,8 +4654,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1800, - EndPos: 1819, + StartPos: 1654, + EndPos: 1673, }, }, InterfaceNames: []ast.Vertex{ @@ -4975,8 +4664,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1811, - EndPos: 1814, + StartPos: 1665, + EndPos: 1668, }, }, Parts: []ast.Vertex{ @@ -4985,8 +4674,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1811, - EndPos: 1814, + StartPos: 1665, + EndPos: 1668, }, }, Value: []byte("bar"), @@ -4998,8 +4687,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1816, - EndPos: 1819, + StartPos: 1670, + EndPos: 1673, }, }, Parts: []ast.Vertex{ @@ -5008,8 +4697,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 79, EndLine: 79, - StartPos: 1816, - EndPos: 1819, + StartPos: 1670, + EndPos: 1673, }, }, Value: []byte("baz"), @@ -5027,8 +4716,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1828, - EndPos: 1851, + StartPos: 1680, + EndPos: 1703, }, }, Consts: []ast.Vertex{ @@ -5037,8 +4726,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1834, - EndPos: 1841, + StartPos: 1686, + EndPos: 1693, }, }, ConstantName: &ast.Identifier{ @@ -5046,8 +4735,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1834, - EndPos: 1837, + StartPos: 1686, + EndPos: 1689, }, }, Value: []byte("FOO"), @@ -5057,8 +4746,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1840, - EndPos: 1841, + StartPos: 1692, + EndPos: 1693, }, }, Value: []byte("1"), @@ -5069,8 +4758,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1843, - EndPos: 1850, + StartPos: 1695, + EndPos: 1702, }, }, ConstantName: &ast.Identifier{ @@ -5078,8 +4767,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1843, - EndPos: 1846, + StartPos: 1695, + EndPos: 1698, }, }, Value: []byte("BAR"), @@ -5089,8 +4778,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 81, EndLine: 81, - StartPos: 1849, - EndPos: 1850, + StartPos: 1701, + EndPos: 1702, }, }, Value: []byte("2"), @@ -5103,8 +4792,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1854, - EndPos: 1877, + StartPos: 1704, + EndPos: 1727, }, }, Cond: &ast.ScalarLnumber{ @@ -5112,8 +4801,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1861, - EndPos: 1862, + StartPos: 1711, + EndPos: 1712, }, }, Value: []byte("1"), @@ -5123,8 +4812,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1864, - EndPos: 1877, + StartPos: 1714, + EndPos: 1727, }, }, Stmts: []ast.Vertex{ @@ -5133,8 +4822,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 82, EndLine: 82, - StartPos: 1866, - EndPos: 1875, + StartPos: 1716, + EndPos: 1725, }, }, }, @@ -5146,8 +4835,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1880, - EndPos: 1905, + StartPos: 1728, + EndPos: 1753, }, }, Cond: &ast.ScalarLnumber{ @@ -5155,8 +4844,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1887, - EndPos: 1888, + StartPos: 1735, + EndPos: 1736, }, }, Value: []byte("1"), @@ -5166,8 +4855,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1890, - EndPos: 1905, + StartPos: 1738, + EndPos: 1753, }, }, Stmts: []ast.Vertex{ @@ -5176,8 +4865,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1892, - EndPos: 1903, + StartPos: 1740, + EndPos: 1751, }, }, Expr: &ast.ScalarLnumber{ @@ -5185,8 +4874,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 83, EndLine: 83, - StartPos: 1901, - EndPos: 1902, + StartPos: 1749, + EndPos: 1750, }, }, Value: []byte("2"), @@ -5200,8 +4889,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1908, - EndPos: 1934, + StartPos: 1754, + EndPos: 1780, }, }, Cond: &ast.ScalarLnumber{ @@ -5209,8 +4898,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1915, - EndPos: 1916, + StartPos: 1761, + EndPos: 1762, }, }, Value: []byte("1"), @@ -5220,8 +4909,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1918, - EndPos: 1934, + StartPos: 1764, + EndPos: 1780, }, }, Stmts: []ast.Vertex{ @@ -5230,8 +4919,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1920, - EndPos: 1932, + StartPos: 1766, + EndPos: 1778, }, }, Expr: &ast.ScalarLnumber{ @@ -5239,8 +4928,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 84, EndLine: 84, - StartPos: 1929, - EndPos: 1930, + StartPos: 1775, + EndPos: 1776, }, }, Value: []byte("3"), @@ -5254,19 +4943,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1937, - EndPos: 1954, + StartPos: 1781, + EndPos: 1798, }, }, - Alt: false, Consts: []ast.Vertex{ &ast.StmtConstant{ Node: ast.Node{ Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1945, - EndPos: 1952, + StartPos: 1789, + EndPos: 1796, }, }, ConstantName: &ast.Identifier{ @@ -5274,8 +4962,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1945, - EndPos: 1950, + StartPos: 1789, + EndPos: 1794, }, }, Value: []byte("ticks"), @@ -5285,8 +4973,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1951, - EndPos: 1952, + StartPos: 1795, + EndPos: 1796, }, }, Value: []byte("1"), @@ -5298,8 +4986,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 85, EndLine: 85, - StartPos: 1953, - EndPos: 1954, + StartPos: 1797, + EndPos: 1798, }, }, }, @@ -5309,19 +4997,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1957, - EndPos: 1976, + StartPos: 1799, + EndPos: 1818, }, }, - Alt: false, Consts: []ast.Vertex{ &ast.StmtConstant{ Node: ast.Node{ Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1965, - EndPos: 1972, + StartPos: 1807, + EndPos: 1814, }, }, ConstantName: &ast.Identifier{ @@ -5329,8 +5016,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1965, - EndPos: 1970, + StartPos: 1807, + EndPos: 1812, }, }, Value: []byte("ticks"), @@ -5340,8 +5027,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1971, - EndPos: 1972, + StartPos: 1813, + EndPos: 1814, }, }, Value: []byte("1"), @@ -5353,8 +5040,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 86, EndLine: 86, - StartPos: 1974, - EndPos: 1976, + StartPos: 1816, + EndPos: 1818, }, }, Stmts: []ast.Vertex{}, @@ -5365,8 +5052,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1979, - EndPos: 2008, + StartPos: 1819, + EndPos: 1848, }, }, Alt: true, @@ -5376,8 +5063,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1987, - EndPos: 1994, + StartPos: 1827, + EndPos: 1834, }, }, ConstantName: &ast.Identifier{ @@ -5385,8 +5072,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1987, - EndPos: 1992, + StartPos: 1827, + EndPos: 1832, }, }, Value: []byte("ticks"), @@ -5396,8 +5083,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 87, EndLine: 87, - StartPos: 1993, - EndPos: 1994, + StartPos: 1833, + EndPos: 1834, }, }, Value: []byte("1"), @@ -5421,8 +5108,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2011, - EndPos: 2026, + StartPos: 1849, + EndPos: 1864, }, }, Stmt: &ast.StmtStmtList{ @@ -5430,8 +5117,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2014, - EndPos: 2016, + StartPos: 1852, + EndPos: 1854, }, }, Stmts: []ast.Vertex{}, @@ -5441,8 +5128,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 88, EndLine: 88, - StartPos: 2023, - EndPos: 2024, + StartPos: 1861, + EndPos: 1862, }, }, Value: []byte("1"), @@ -5453,8 +5140,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2029, - EndPos: 2040, + StartPos: 1865, + EndPos: 1876, }, }, Exprs: []ast.Vertex{ @@ -5463,8 +5150,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2034, - EndPos: 2036, + StartPos: 1870, + EndPos: 1872, }, }, VarName: &ast.Identifier{ @@ -5472,8 +5159,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2034, - EndPos: 2036, + StartPos: 1870, + EndPos: 1872, }, }, Value: []byte("$a"), @@ -5484,8 +5171,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 89, EndLine: 89, - StartPos: 2038, - EndPos: 2039, + StartPos: 1874, + EndPos: 1875, }, }, Value: []byte("1"), @@ -5497,8 +5184,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2043, - EndPos: 2052, + StartPos: 1877, + EndPos: 1886, }, }, Exprs: []ast.Vertex{ @@ -5507,8 +5194,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2048, - EndPos: 2050, + StartPos: 1882, + EndPos: 1884, }, }, VarName: &ast.Identifier{ @@ -5516,8 +5203,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 90, EndLine: 90, - StartPos: 2048, - EndPos: 2050, + StartPos: 1882, + EndPos: 1884, }, }, Value: []byte("$a"), @@ -5530,8 +5217,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2055, - EndPos: 2090, + StartPos: 1887, + EndPos: 1922, }, }, Init: []ast.Vertex{ @@ -5540,8 +5227,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2059, - EndPos: 2065, + StartPos: 1891, + EndPos: 1897, }, }, Var: &ast.ExprVariable{ @@ -5549,8 +5236,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2059, - EndPos: 2061, + StartPos: 1891, + EndPos: 1893, }, }, VarName: &ast.Identifier{ @@ -5558,8 +5245,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2059, - EndPos: 2061, + StartPos: 1891, + EndPos: 1893, }, }, Value: []byte("$i"), @@ -5570,8 +5257,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2064, - EndPos: 2065, + StartPos: 1896, + EndPos: 1897, }, }, Value: []byte("0"), @@ -5584,8 +5271,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2067, - EndPos: 2074, + StartPos: 1899, + EndPos: 1906, }, }, Left: &ast.ExprVariable{ @@ -5593,8 +5280,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2067, - EndPos: 2069, + StartPos: 1899, + EndPos: 1901, }, }, VarName: &ast.Identifier{ @@ -5602,8 +5289,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2067, - EndPos: 2069, + StartPos: 1899, + EndPos: 1901, }, }, Value: []byte("$i"), @@ -5614,8 +5301,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2072, - EndPos: 2074, + StartPos: 1904, + EndPos: 1906, }, }, Value: []byte("10"), @@ -5628,8 +5315,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2076, - EndPos: 2080, + StartPos: 1908, + EndPos: 1912, }, }, Var: &ast.ExprVariable{ @@ -5637,8 +5324,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2076, - EndPos: 2078, + StartPos: 1908, + EndPos: 1910, }, }, VarName: &ast.Identifier{ @@ -5646,8 +5333,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2076, - EndPos: 2078, + StartPos: 1908, + EndPos: 1910, }, }, Value: []byte("$i"), @@ -5659,8 +5346,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2082, - EndPos: 2086, + StartPos: 1914, + EndPos: 1918, }, }, Var: &ast.ExprVariable{ @@ -5668,8 +5355,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2082, - EndPos: 2084, + StartPos: 1914, + EndPos: 1916, }, }, VarName: &ast.Identifier{ @@ -5677,8 +5364,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2082, - EndPos: 2084, + StartPos: 1914, + EndPos: 1916, }, }, Value: []byte("$i"), @@ -5691,8 +5378,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 91, EndLine: 91, - StartPos: 2088, - EndPos: 2090, + StartPos: 1920, + EndPos: 1922, }, }, Stmts: []ast.Vertex{}, @@ -5703,8 +5390,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2093, - EndPos: 2129, + StartPos: 1923, + EndPos: 1959, }, }, Cond: []ast.Vertex{ @@ -5713,8 +5400,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2099, - EndPos: 2106, + StartPos: 1929, + EndPos: 1936, }, }, Left: &ast.ExprVariable{ @@ -5722,8 +5409,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2099, - EndPos: 2101, + StartPos: 1929, + EndPos: 1931, }, }, VarName: &ast.Identifier{ @@ -5731,8 +5418,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2099, - EndPos: 2101, + StartPos: 1929, + EndPos: 1931, }, }, Value: []byte("$i"), @@ -5743,8 +5430,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2104, - EndPos: 2106, + StartPos: 1934, + EndPos: 1936, }, }, Value: []byte("10"), @@ -5757,8 +5444,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2108, - EndPos: 2112, + StartPos: 1938, + EndPos: 1942, }, }, Var: &ast.ExprVariable{ @@ -5766,8 +5453,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2108, - EndPos: 2110, + StartPos: 1938, + EndPos: 1940, }, }, VarName: &ast.Identifier{ @@ -5775,8 +5462,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2108, - EndPos: 2110, + StartPos: 1938, + EndPos: 1940, }, }, Value: []byte("$i"), @@ -5788,8 +5475,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2114, - EndPos: 2118, + StartPos: 1944, + EndPos: 1948, }, }, Var: &ast.ExprVariable{ @@ -5797,8 +5484,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2114, - EndPos: 2116, + StartPos: 1944, + EndPos: 1946, }, }, VarName: &ast.Identifier{ @@ -5806,8 +5493,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 92, EndLine: 92, - StartPos: 2114, - EndPos: 2116, + StartPos: 1944, + EndPos: 1946, }, }, Value: []byte("$i"), @@ -5832,8 +5519,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2132, - EndPos: 2153, + StartPos: 1960, + EndPos: 1981, }, }, Expr: &ast.ExprVariable{ @@ -5841,8 +5528,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2141, - EndPos: 2143, + StartPos: 1969, + EndPos: 1971, }, }, VarName: &ast.Identifier{ @@ -5850,8 +5537,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2141, - EndPos: 2143, + StartPos: 1969, + EndPos: 1971, }, }, Value: []byte("$a"), @@ -5862,8 +5549,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2147, - EndPos: 2149, + StartPos: 1975, + EndPos: 1977, }, }, VarName: &ast.Identifier{ @@ -5871,8 +5558,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2147, - EndPos: 2149, + StartPos: 1975, + EndPos: 1977, }, }, Value: []byte("$v"), @@ -5883,8 +5570,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 93, EndLine: 93, - StartPos: 2151, - EndPos: 2153, + StartPos: 1979, + EndPos: 1981, }, }, Stmts: []ast.Vertex{}, @@ -5895,8 +5582,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2156, - EndPos: 2188, + StartPos: 1982, + EndPos: 2014, }, }, Expr: &ast.ExprVariable{ @@ -5904,8 +5591,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2165, - EndPos: 2167, + StartPos: 1991, + EndPos: 1993, }, }, VarName: &ast.Identifier{ @@ -5913,8 +5600,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2165, - EndPos: 2167, + StartPos: 1991, + EndPos: 1993, }, }, Value: []byte("$a"), @@ -5925,8 +5612,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2171, - EndPos: 2173, + StartPos: 1997, + EndPos: 1999, }, }, VarName: &ast.Identifier{ @@ -5934,8 +5621,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 94, EndLine: 94, - StartPos: 2171, - EndPos: 2173, + StartPos: 1997, + EndPos: 1999, }, }, Value: []byte("$v"), @@ -5958,8 +5645,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2191, - EndPos: 2218, + StartPos: 2015, + EndPos: 2042, }, }, Expr: &ast.ExprVariable{ @@ -5967,8 +5654,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2200, - EndPos: 2202, + StartPos: 2024, + EndPos: 2026, }, }, VarName: &ast.Identifier{ @@ -5976,8 +5663,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2200, - EndPos: 2202, + StartPos: 2024, + EndPos: 2026, }, }, Value: []byte("$a"), @@ -5988,8 +5675,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2206, - EndPos: 2208, + StartPos: 2030, + EndPos: 2032, }, }, VarName: &ast.Identifier{ @@ -5997,8 +5684,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2206, - EndPos: 2208, + StartPos: 2030, + EndPos: 2032, }, }, Value: []byte("$k"), @@ -6009,8 +5696,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2212, - EndPos: 2214, + StartPos: 2036, + EndPos: 2038, }, }, VarName: &ast.Identifier{ @@ -6018,8 +5705,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2212, - EndPos: 2214, + StartPos: 2036, + EndPos: 2038, }, }, Value: []byte("$v"), @@ -6030,8 +5717,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 95, EndLine: 95, - StartPos: 2216, - EndPos: 2218, + StartPos: 2040, + EndPos: 2042, }, }, Stmts: []ast.Vertex{}, @@ -6042,8 +5729,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2221, - EndPos: 2249, + StartPos: 2043, + EndPos: 2071, }, }, Expr: &ast.ExprVariable{ @@ -6051,8 +5738,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2230, - EndPos: 2232, + StartPos: 2052, + EndPos: 2054, }, }, VarName: &ast.Identifier{ @@ -6060,8 +5747,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2230, - EndPos: 2232, + StartPos: 2052, + EndPos: 2054, }, }, Value: []byte("$a"), @@ -6072,8 +5759,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2236, - EndPos: 2238, + StartPos: 2058, + EndPos: 2060, }, }, VarName: &ast.Identifier{ @@ -6081,8 +5768,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2236, - EndPos: 2238, + StartPos: 2058, + EndPos: 2060, }, }, Value: []byte("$k"), @@ -6093,8 +5780,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2242, - EndPos: 2245, + StartPos: 2064, + EndPos: 2067, }, }, Var: &ast.ExprVariable{ @@ -6102,8 +5789,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2243, - EndPos: 2245, + StartPos: 2065, + EndPos: 2067, }, }, VarName: &ast.Identifier{ @@ -6111,8 +5798,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2243, - EndPos: 2245, + StartPos: 2065, + EndPos: 2067, }, }, Value: []byte("$v"), @@ -6124,8 +5811,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 96, EndLine: 96, - StartPos: 2247, - EndPos: 2249, + StartPos: 2069, + EndPos: 2071, }, }, Stmts: []ast.Vertex{}, @@ -6136,8 +5823,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2252, - EndPos: 2285, + StartPos: 2072, + EndPos: 2105, }, }, Expr: &ast.ExprVariable{ @@ -6145,8 +5832,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2261, - EndPos: 2263, + StartPos: 2081, + EndPos: 2083, }, }, VarName: &ast.Identifier{ @@ -6154,8 +5841,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2261, - EndPos: 2263, + StartPos: 2081, + EndPos: 2083, }, }, Value: []byte("$a"), @@ -6166,8 +5853,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2267, - EndPos: 2269, + StartPos: 2087, + EndPos: 2089, }, }, VarName: &ast.Identifier{ @@ -6175,8 +5862,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2267, - EndPos: 2269, + StartPos: 2087, + EndPos: 2089, }, }, Value: []byte("$k"), @@ -6187,8 +5874,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2273, - EndPos: 2281, + StartPos: 2093, + EndPos: 2101, }, }, Items: []ast.Vertex{ @@ -6197,8 +5884,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2278, - EndPos: 2280, + StartPos: 2098, + EndPos: 2100, }, }, Val: &ast.ExprVariable{ @@ -6206,8 +5893,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2278, - EndPos: 2280, + StartPos: 2098, + EndPos: 2100, }, }, VarName: &ast.Identifier{ @@ -6215,8 +5902,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2278, - EndPos: 2280, + StartPos: 2098, + EndPos: 2100, }, }, Value: []byte("$v"), @@ -6230,8 +5917,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 97, EndLine: 97, - StartPos: 2283, - EndPos: 2285, + StartPos: 2103, + EndPos: 2105, }, }, Stmts: []ast.Vertex{}, @@ -6242,8 +5929,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2288, - EndPos: 2317, + StartPos: 2106, + EndPos: 2135, }, }, Expr: &ast.ExprVariable{ @@ -6251,8 +5938,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2297, - EndPos: 2299, + StartPos: 2115, + EndPos: 2117, }, }, VarName: &ast.Identifier{ @@ -6260,8 +5947,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2297, - EndPos: 2299, + StartPos: 2115, + EndPos: 2117, }, }, Value: []byte("$a"), @@ -6272,8 +5959,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2303, - EndPos: 2305, + StartPos: 2121, + EndPos: 2123, }, }, VarName: &ast.Identifier{ @@ -6281,8 +5968,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2303, - EndPos: 2305, + StartPos: 2121, + EndPos: 2123, }, }, Value: []byte("$k"), @@ -6293,8 +5980,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2309, - EndPos: 2313, + StartPos: 2127, + EndPos: 2131, }, }, Items: []ast.Vertex{ @@ -6303,8 +5990,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2310, - EndPos: 2312, + StartPos: 2128, + EndPos: 2130, }, }, Val: &ast.ExprVariable{ @@ -6312,8 +5999,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2310, - EndPos: 2312, + StartPos: 2128, + EndPos: 2130, }, }, VarName: &ast.Identifier{ @@ -6321,8 +6008,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2310, - EndPos: 2312, + StartPos: 2128, + EndPos: 2130, }, }, Value: []byte("$v"), @@ -6336,8 +6023,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 98, EndLine: 98, - StartPos: 2315, - EndPos: 2317, + StartPos: 2133, + EndPos: 2135, }, }, Stmts: []ast.Vertex{}, @@ -6348,18 +6035,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2320, - EndPos: 2337, + StartPos: 2136, + EndPos: 2153, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 99, EndLine: 99, - StartPos: 2329, - EndPos: 2332, + StartPos: 2145, + EndPos: 2148, }, }, Value: []byte("foo"), @@ -6371,18 +6057,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2340, - EndPos: 2364, + StartPos: 2154, + EndPos: 2178, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2349, - EndPos: 2352, + StartPos: 2163, + EndPos: 2166, }, }, Value: []byte("foo"), @@ -6393,8 +6078,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 100, EndLine: 100, - StartPos: 2356, - EndPos: 2363, + StartPos: 2170, + EndPos: 2177, }, }, }, @@ -6405,8 +6090,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2367, - EndPos: 2394, + StartPos: 2179, + EndPos: 2206, }, }, ReturnsRef: true, @@ -6415,8 +6100,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2377, - EndPos: 2380, + StartPos: 2189, + EndPos: 2192, }, }, Value: []byte("foo"), @@ -6427,8 +6112,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2384, - EndPos: 2393, + StartPos: 2196, + EndPos: 2205, }, }, Expr: &ast.ScalarLnumber{ @@ -6436,8 +6121,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 101, EndLine: 101, - StartPos: 2391, - EndPos: 2392, + StartPos: 2203, + EndPos: 2204, }, }, Value: []byte("1"), @@ -6450,8 +6135,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2397, - EndPos: 2421, + StartPos: 2207, + EndPos: 2231, }, }, ReturnsRef: true, @@ -6460,8 +6145,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2407, - EndPos: 2410, + StartPos: 2217, + EndPos: 2220, }, }, Value: []byte("foo"), @@ -6471,8 +6156,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2414, - EndPos: 2418, + StartPos: 2224, + EndPos: 2228, }, }, Parts: []ast.Vertex{ @@ -6481,8 +6166,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 102, EndLine: 102, - StartPos: 2414, - EndPos: 2418, + StartPos: 2224, + EndPos: 2228, }, }, Value: []byte("void"), @@ -6496,8 +6181,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2424, - EndPos: 2438, + StartPos: 2232, + EndPos: 2246, }, }, Vars: []ast.Vertex{ @@ -6506,8 +6191,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2431, - EndPos: 2433, + StartPos: 2239, + EndPos: 2241, }, }, VarName: &ast.Identifier{ @@ -6515,8 +6200,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2431, - EndPos: 2433, + StartPos: 2239, + EndPos: 2241, }, }, Value: []byte("$a"), @@ -6527,8 +6212,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2435, - EndPos: 2437, + StartPos: 2243, + EndPos: 2245, }, }, VarName: &ast.Identifier{ @@ -6536,8 +6221,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 103, EndLine: 103, - StartPos: 2435, - EndPos: 2437, + StartPos: 2243, + EndPos: 2245, }, }, Value: []byte("$b"), @@ -6550,8 +6235,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2441, - EndPos: 2443, + StartPos: 2247, + EndPos: 2249, }, }, LabelName: &ast.Identifier{ @@ -6559,8 +6244,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 104, EndLine: 104, - StartPos: 2441, - EndPos: 2442, + StartPos: 2247, + EndPos: 2248, }, }, Value: []byte("a"), @@ -6571,8 +6256,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2447, - EndPos: 2454, + StartPos: 2250, + EndPos: 2257, }, }, Label: &ast.Identifier{ @@ -6580,8 +6265,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 105, EndLine: 105, - StartPos: 2452, - EndPos: 2453, + StartPos: 2255, + EndPos: 2256, }, }, Value: []byte("a"), @@ -6592,8 +6277,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2457, - EndPos: 2467, + StartPos: 2258, + EndPos: 2268, }, }, Cond: &ast.ExprVariable{ @@ -6601,8 +6286,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2461, - EndPos: 2463, + StartPos: 2262, + EndPos: 2264, }, }, VarName: &ast.Identifier{ @@ -6610,8 +6295,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2461, - EndPos: 2463, + StartPos: 2262, + EndPos: 2264, }, }, Value: []byte("$a"), @@ -6622,8 +6307,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 106, EndLine: 106, - StartPos: 2465, - EndPos: 2467, + StartPos: 2266, + EndPos: 2268, }, }, Stmts: []ast.Vertex{}, @@ -6634,8 +6319,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2470, - EndPos: 2495, + StartPos: 2269, + EndPos: 2294, }, }, Cond: &ast.ExprVariable{ @@ -6643,8 +6328,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2474, - EndPos: 2476, + StartPos: 2273, + EndPos: 2275, }, }, VarName: &ast.Identifier{ @@ -6652,8 +6337,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2474, - EndPos: 2476, + StartPos: 2273, + EndPos: 2275, }, }, Value: []byte("$a"), @@ -6664,8 +6349,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2478, - EndPos: 2480, + StartPos: 2277, + EndPos: 2279, }, }, Stmts: []ast.Vertex{}, @@ -6676,8 +6361,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2481, - EndPos: 2495, + StartPos: 2280, + EndPos: 2294, }, }, Cond: &ast.ExprVariable{ @@ -6685,8 +6370,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2489, - EndPos: 2491, + StartPos: 2288, + EndPos: 2290, }, }, VarName: &ast.Identifier{ @@ -6694,8 +6379,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2489, - EndPos: 2491, + StartPos: 2288, + EndPos: 2290, }, }, Value: []byte("$b"), @@ -6706,8 +6391,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 107, EndLine: 107, - StartPos: 2493, - EndPos: 2495, + StartPos: 2292, + EndPos: 2294, }, }, Stmts: []ast.Vertex{}, @@ -6720,8 +6405,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2498, - EndPos: 2516, + StartPos: 2295, + EndPos: 2313, }, }, Cond: &ast.ExprVariable{ @@ -6729,8 +6414,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2502, - EndPos: 2504, + StartPos: 2299, + EndPos: 2301, }, }, VarName: &ast.Identifier{ @@ -6738,8 +6423,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2502, - EndPos: 2504, + StartPos: 2299, + EndPos: 2301, }, }, Value: []byte("$a"), @@ -6750,8 +6435,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2506, - EndPos: 2508, + StartPos: 2303, + EndPos: 2305, }, }, Stmts: []ast.Vertex{}, @@ -6761,8 +6446,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2509, - EndPos: 2516, + StartPos: 2306, + EndPos: 2313, }, }, Stmt: &ast.StmtStmtList{ @@ -6770,8 +6455,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 108, EndLine: 108, - StartPos: 2514, - EndPos: 2516, + StartPos: 2311, + EndPos: 2313, }, }, Stmts: []ast.Vertex{}, @@ -6783,8 +6468,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2519, - EndPos: 2567, + StartPos: 2314, + EndPos: 2362, }, }, Cond: &ast.ExprVariable{ @@ -6792,8 +6477,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2523, - EndPos: 2525, + StartPos: 2318, + EndPos: 2320, }, }, VarName: &ast.Identifier{ @@ -6801,8 +6486,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2523, - EndPos: 2525, + StartPos: 2318, + EndPos: 2320, }, }, Value: []byte("$a"), @@ -6813,8 +6498,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2527, - EndPos: 2529, + StartPos: 2322, + EndPos: 2324, }, }, Stmts: []ast.Vertex{}, @@ -6825,8 +6510,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2530, - EndPos: 2544, + StartPos: 2325, + EndPos: 2339, }, }, Cond: &ast.ExprVariable{ @@ -6834,8 +6519,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2538, - EndPos: 2540, + StartPos: 2333, + EndPos: 2335, }, }, VarName: &ast.Identifier{ @@ -6843,8 +6528,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2538, - EndPos: 2540, + StartPos: 2333, + EndPos: 2335, }, }, Value: []byte("$b"), @@ -6855,8 +6540,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2542, - EndPos: 2544, + StartPos: 2337, + EndPos: 2339, }, }, Stmts: []ast.Vertex{}, @@ -6867,8 +6552,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2545, - EndPos: 2559, + StartPos: 2340, + EndPos: 2354, }, }, Cond: &ast.ExprVariable{ @@ -6876,8 +6561,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2553, - EndPos: 2555, + StartPos: 2348, + EndPos: 2350, }, }, VarName: &ast.Identifier{ @@ -6885,8 +6570,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2553, - EndPos: 2555, + StartPos: 2348, + EndPos: 2350, }, }, Value: []byte("$c"), @@ -6897,8 +6582,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2557, - EndPos: 2559, + StartPos: 2352, + EndPos: 2354, }, }, Stmts: []ast.Vertex{}, @@ -6910,8 +6595,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2560, - EndPos: 2567, + StartPos: 2355, + EndPos: 2362, }, }, Stmt: &ast.StmtStmtList{ @@ -6919,8 +6604,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 109, EndLine: 109, - StartPos: 2565, - EndPos: 2567, + StartPos: 2360, + EndPos: 2362, }, }, Stmts: []ast.Vertex{}, @@ -6932,8 +6617,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2570, - EndPos: 2619, + StartPos: 2363, + EndPos: 2412, }, }, Cond: &ast.ExprVariable{ @@ -6941,8 +6626,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2574, - EndPos: 2576, + StartPos: 2367, + EndPos: 2369, }, }, VarName: &ast.Identifier{ @@ -6950,8 +6635,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2574, - EndPos: 2576, + StartPos: 2367, + EndPos: 2369, }, }, Value: []byte("$a"), @@ -6962,8 +6647,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2578, - EndPos: 2580, + StartPos: 2371, + EndPos: 2373, }, }, Stmts: []ast.Vertex{}, @@ -6974,8 +6659,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2581, - EndPos: 2595, + StartPos: 2374, + EndPos: 2388, }, }, Cond: &ast.ExprVariable{ @@ -6983,8 +6668,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2589, - EndPos: 2591, + StartPos: 2382, + EndPos: 2384, }, }, VarName: &ast.Identifier{ @@ -6992,8 +6677,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2589, - EndPos: 2591, + StartPos: 2382, + EndPos: 2384, }, }, Value: []byte("$b"), @@ -7004,8 +6689,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2593, - EndPos: 2595, + StartPos: 2386, + EndPos: 2388, }, }, Stmts: []ast.Vertex{}, @@ -7017,8 +6702,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2596, - EndPos: 2619, + StartPos: 2389, + EndPos: 2412, }, }, Stmt: &ast.StmtIf{ @@ -7026,8 +6711,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2601, - EndPos: 2619, + StartPos: 2394, + EndPos: 2412, }, }, Cond: &ast.ExprVariable{ @@ -7035,8 +6720,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2605, - EndPos: 2607, + StartPos: 2398, + EndPos: 2400, }, }, VarName: &ast.Identifier{ @@ -7044,8 +6729,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2605, - EndPos: 2607, + StartPos: 2398, + EndPos: 2400, }, }, Value: []byte("$c"), @@ -7056,8 +6741,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2609, - EndPos: 2611, + StartPos: 2402, + EndPos: 2404, }, }, Stmts: []ast.Vertex{}, @@ -7067,8 +6752,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2612, - EndPos: 2619, + StartPos: 2405, + EndPos: 2412, }, }, Stmt: &ast.StmtStmtList{ @@ -7076,8 +6761,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2617, - EndPos: 2619, + StartPos: 2410, + EndPos: 2412, }, }, Stmts: []ast.Vertex{}, @@ -7091,8 +6776,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 111, EndLine: 111, - StartPos: 2622, - EndPos: 2624, + StartPos: 2413, + EndPos: 2415, }, }, }, @@ -7101,8 +6786,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 111, EndLine: 111, - StartPos: 2624, - EndPos: 2637, + StartPos: 2415, + EndPos: 2428, }, }, Value: []byte("
"), @@ -7112,8 +6797,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2642, - EndPos: 2658, + StartPos: 2431, + EndPos: 2447, }, }, InterfaceName: &ast.Identifier{ @@ -7121,8 +6806,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 112, EndLine: 112, - StartPos: 2652, - EndPos: 2655, + StartPos: 2441, + EndPos: 2444, }, }, Value: []byte("Foo"), @@ -7134,8 +6819,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2661, - EndPos: 2689, + StartPos: 2448, + EndPos: 2476, }, }, InterfaceName: &ast.Identifier{ @@ -7143,8 +6828,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2671, - EndPos: 2674, + StartPos: 2458, + EndPos: 2461, }, }, Value: []byte("Foo"), @@ -7154,8 +6839,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2675, - EndPos: 2686, + StartPos: 2462, + EndPos: 2473, }, }, InterfaceNames: []ast.Vertex{ @@ -7164,8 +6849,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2683, - EndPos: 2686, + StartPos: 2470, + EndPos: 2473, }, }, Parts: []ast.Vertex{ @@ -7174,8 +6859,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 113, EndLine: 113, - StartPos: 2683, - EndPos: 2686, + StartPos: 2470, + EndPos: 2473, }, }, Value: []byte("Bar"), @@ -7191,8 +6876,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2692, - EndPos: 2725, + StartPos: 2477, + EndPos: 2510, }, }, InterfaceName: &ast.Identifier{ @@ -7200,8 +6885,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2702, - EndPos: 2705, + StartPos: 2487, + EndPos: 2490, }, }, Value: []byte("Foo"), @@ -7211,8 +6896,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2706, - EndPos: 2722, + StartPos: 2491, + EndPos: 2507, }, }, InterfaceNames: []ast.Vertex{ @@ -7221,8 +6906,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2714, - EndPos: 2717, + StartPos: 2499, + EndPos: 2502, }, }, Parts: []ast.Vertex{ @@ -7231,8 +6916,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2714, - EndPos: 2717, + StartPos: 2499, + EndPos: 2502, }, }, Value: []byte("Bar"), @@ -7244,8 +6929,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2719, - EndPos: 2722, + StartPos: 2504, + EndPos: 2507, }, }, Parts: []ast.Vertex{ @@ -7254,8 +6939,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 114, EndLine: 114, - StartPos: 2719, - EndPos: 2722, + StartPos: 2504, + EndPos: 2507, }, }, Value: []byte("Baz"), @@ -7271,8 +6956,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2728, - EndPos: 2742, + StartPos: 2511, + EndPos: 2525, }, }, NamespaceName: &ast.NameName{ @@ -7280,8 +6965,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2738, - EndPos: 2741, + StartPos: 2521, + EndPos: 2524, }, }, Parts: []ast.Vertex{ @@ -7290,8 +6975,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 115, EndLine: 115, - StartPos: 2738, - EndPos: 2741, + StartPos: 2521, + EndPos: 2524, }, }, Value: []byte("Foo"), @@ -7304,8 +6989,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2745, - EndPos: 2761, + StartPos: 2526, + EndPos: 2542, }, }, NamespaceName: &ast.NameName{ @@ -7313,8 +6998,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2755, - EndPos: 2758, + StartPos: 2536, + EndPos: 2539, }, }, Parts: []ast.Vertex{ @@ -7323,8 +7008,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 116, EndLine: 116, - StartPos: 2755, - EndPos: 2758, + StartPos: 2536, + EndPos: 2539, }, }, Value: []byte("Foo"), @@ -7338,8 +7023,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 117, EndLine: 117, - StartPos: 2764, - EndPos: 2776, + StartPos: 2543, + EndPos: 2555, }, }, Stmts: []ast.Vertex{}, @@ -7349,8 +7034,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2779, - EndPos: 2798, + StartPos: 2556, + EndPos: 2575, }, }, ClassName: &ast.Identifier{ @@ -7358,8 +7043,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2785, - EndPos: 2788, + StartPos: 2562, + EndPos: 2565, }, }, Value: []byte("foo"), @@ -7370,8 +7055,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2790, - EndPos: 2797, + StartPos: 2567, + EndPos: 2574, }, }, Modifiers: []ast.Vertex{ @@ -7380,8 +7065,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2790, - EndPos: 2793, + StartPos: 2567, + EndPos: 2570, }, }, Value: []byte("var"), @@ -7393,8 +7078,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2794, - EndPos: 2796, + StartPos: 2571, + EndPos: 2573, }, }, Var: &ast.ExprVariable{ @@ -7402,8 +7087,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2794, - EndPos: 2796, + StartPos: 2571, + EndPos: 2573, }, }, VarName: &ast.Identifier{ @@ -7411,8 +7096,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 118, EndLine: 118, - StartPos: 2794, - EndPos: 2796, + StartPos: 2571, + EndPos: 2573, }, }, Value: []byte("$a"), @@ -7428,8 +7113,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2801, - EndPos: 2838, + StartPos: 2576, + EndPos: 2613, }, }, ClassName: &ast.Identifier{ @@ -7437,8 +7122,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2807, - EndPos: 2810, + StartPos: 2582, + EndPos: 2585, }, }, Value: []byte("foo"), @@ -7449,8 +7134,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2812, - EndPos: 2837, + StartPos: 2587, + EndPos: 2612, }, }, Modifiers: []ast.Vertex{ @@ -7459,8 +7144,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2812, - EndPos: 2818, + StartPos: 2587, + EndPos: 2593, }, }, Value: []byte("public"), @@ -7470,8 +7155,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2819, - EndPos: 2825, + StartPos: 2594, + EndPos: 2600, }, }, Value: []byte("static"), @@ -7483,8 +7168,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2826, - EndPos: 2828, + StartPos: 2601, + EndPos: 2603, }, }, Var: &ast.ExprVariable{ @@ -7492,8 +7177,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2826, - EndPos: 2828, + StartPos: 2601, + EndPos: 2603, }, }, VarName: &ast.Identifier{ @@ -7501,8 +7186,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2826, - EndPos: 2828, + StartPos: 2601, + EndPos: 2603, }, }, Value: []byte("$a"), @@ -7514,8 +7199,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2830, - EndPos: 2836, + StartPos: 2605, + EndPos: 2611, }, }, Var: &ast.ExprVariable{ @@ -7523,8 +7208,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2830, - EndPos: 2832, + StartPos: 2605, + EndPos: 2607, }, }, VarName: &ast.Identifier{ @@ -7532,8 +7217,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2830, - EndPos: 2832, + StartPos: 2605, + EndPos: 2607, }, }, Value: []byte("$b"), @@ -7544,8 +7229,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 119, EndLine: 119, - StartPos: 2835, - EndPos: 2836, + StartPos: 2610, + EndPos: 2611, }, }, Value: []byte("1"), @@ -7560,8 +7245,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2841, - EndPos: 2859, + StartPos: 2614, + EndPos: 2632, }, }, Vars: []ast.Vertex{ @@ -7570,8 +7255,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2848, - EndPos: 2850, + StartPos: 2621, + EndPos: 2623, }, }, Var: &ast.ExprVariable{ @@ -7579,8 +7264,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2848, - EndPos: 2850, + StartPos: 2621, + EndPos: 2623, }, }, VarName: &ast.Identifier{ @@ -7588,8 +7273,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2848, - EndPos: 2850, + StartPos: 2621, + EndPos: 2623, }, }, Value: []byte("$a"), @@ -7601,8 +7286,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2852, - EndPos: 2858, + StartPos: 2625, + EndPos: 2631, }, }, Var: &ast.ExprVariable{ @@ -7610,8 +7295,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2852, - EndPos: 2854, + StartPos: 2625, + EndPos: 2627, }, }, VarName: &ast.Identifier{ @@ -7619,8 +7304,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2852, - EndPos: 2854, + StartPos: 2625, + EndPos: 2627, }, }, Value: []byte("$b"), @@ -7631,8 +7316,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 120, EndLine: 120, - StartPos: 2857, - EndPos: 2858, + StartPos: 2630, + EndPos: 2631, }, }, Value: []byte("1"), @@ -7645,8 +7330,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 122, EndLine: 126, - StartPos: 2863, - EndPos: 2922, + StartPos: 2634, + EndPos: 2694, }, }, Cond: &ast.ScalarLnumber{ @@ -7654,8 +7339,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 122, EndLine: 122, - StartPos: 2871, - EndPos: 2872, + StartPos: 2642, + EndPos: 2643, }, }, Value: []byte("1"), @@ -7665,7 +7350,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 123, EndLine: -1, - StartPos: 2879, + StartPos: 2651, EndPos: -1, }, }, @@ -7675,7 +7360,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 123, EndLine: -1, - StartPos: 2879, + StartPos: 2651, EndPos: -1, }, }, @@ -7684,8 +7369,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 123, EndLine: 123, - StartPos: 2884, - EndPos: 2885, + StartPos: 2656, + EndPos: 2657, }, }, Value: []byte("1"), @@ -7697,7 +7382,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 124, EndLine: -1, - StartPos: 2890, + StartPos: 2663, EndPos: -1, }, }, @@ -7708,7 +7393,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: -1, - StartPos: 2902, + StartPos: 2676, EndPos: -1, }, }, @@ -7717,8 +7402,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 125, EndLine: 125, - StartPos: 2907, - EndPos: 2908, + StartPos: 2681, + EndPos: 2682, }, }, Value: []byte("2"), @@ -7733,8 +7418,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 128, EndLine: 131, - StartPos: 2926, - EndPos: 2974, + StartPos: 2696, + EndPos: 2744, }, }, Cond: &ast.ScalarLnumber{ @@ -7742,8 +7427,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 128, EndLine: 128, - StartPos: 2934, - EndPos: 2935, + StartPos: 2704, + EndPos: 2705, }, }, Value: []byte("1"), @@ -7753,7 +7438,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: -1, - StartPos: 2943, + StartPos: 2714, EndPos: -1, }, }, @@ -7763,7 +7448,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: -1, - StartPos: 2943, + StartPos: 2714, EndPos: -1, }, }, @@ -7772,8 +7457,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 129, EndLine: 129, - StartPos: 2948, - EndPos: 2949, + StartPos: 2719, + EndPos: 2720, }, }, Value: []byte("1"), @@ -7785,7 +7470,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: -1, - StartPos: 2954, + StartPos: 2726, EndPos: -1, }, }, @@ -7794,8 +7479,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2959, - EndPos: 2960, + StartPos: 2731, + EndPos: 2732, }, }, Value: []byte("2"), @@ -7810,8 +7495,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 133, EndLine: 136, - StartPos: 2980, - EndPos: 3032, + StartPos: 2746, + EndPos: 2798, }, }, Cond: &ast.ScalarLnumber{ @@ -7819,8 +7504,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 133, EndLine: 133, - StartPos: 2988, - EndPos: 2989, + StartPos: 2754, + EndPos: 2755, }, }, Value: []byte("1"), @@ -7830,8 +7515,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 133, EndLine: 136, - StartPos: 2991, - EndPos: 3032, + StartPos: 2757, + EndPos: 2798, }, }, Cases: []ast.Vertex{ @@ -7840,8 +7525,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 2996, - EndPos: 3010, + StartPos: 2763, + EndPos: 2777, }, }, Cond: &ast.ScalarLnumber{ @@ -7849,8 +7534,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 3001, - EndPos: 3002, + StartPos: 2768, + EndPos: 2769, }, }, Value: []byte("1"), @@ -7861,8 +7546,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 3004, - EndPos: 3010, + StartPos: 2771, + EndPos: 2777, }, }, }, @@ -7873,8 +7558,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3014, - EndPos: 3028, + StartPos: 2782, + EndPos: 2796, }, }, Cond: &ast.ScalarLnumber{ @@ -7882,8 +7567,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3019, - EndPos: 3020, + StartPos: 2787, + EndPos: 2788, }, }, Value: []byte("2"), @@ -7894,8 +7579,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 3022, - EndPos: 3028, + StartPos: 2790, + EndPos: 2796, }, }, }, @@ -7909,8 +7594,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 141, - StartPos: 3038, - EndPos: 3091, + StartPos: 2800, + EndPos: 2853, }, }, Cond: &ast.ScalarLnumber{ @@ -7918,8 +7603,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 138, - StartPos: 3046, - EndPos: 3047, + StartPos: 2808, + EndPos: 2809, }, }, Value: []byte("1"), @@ -7929,8 +7614,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 138, EndLine: 141, - StartPos: 3049, - EndPos: 3091, + StartPos: 2811, + EndPos: 2853, }, }, Cases: []ast.Vertex{ @@ -7939,8 +7624,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3055, - EndPos: 3069, + StartPos: 2818, + EndPos: 2832, }, }, Cond: &ast.ScalarLnumber{ @@ -7948,8 +7633,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3060, - EndPos: 3061, + StartPos: 2823, + EndPos: 2824, }, }, Value: []byte("1"), @@ -7960,8 +7645,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 3063, - EndPos: 3069, + StartPos: 2826, + EndPos: 2832, }, }, }, @@ -7972,8 +7657,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3073, - EndPos: 3087, + StartPos: 2837, + EndPos: 2851, }, }, Cond: &ast.ScalarLnumber{ @@ -7981,8 +7666,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3078, - EndPos: 3079, + StartPos: 2842, + EndPos: 2843, }, }, Value: []byte("2"), @@ -7993,8 +7678,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 3081, - EndPos: 3087, + StartPos: 2845, + EndPos: 2851, }, }, }, @@ -8008,8 +7693,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3095, - EndPos: 3104, + StartPos: 2855, + EndPos: 2864, }, }, Expr: &ast.ExprVariable{ @@ -8017,8 +7702,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3101, - EndPos: 3103, + StartPos: 2861, + EndPos: 2863, }, }, VarName: &ast.Identifier{ @@ -8026,8 +7711,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 143, EndLine: 143, - StartPos: 3101, - EndPos: 3103, + StartPos: 2861, + EndPos: 2863, }, }, Value: []byte("$e"), @@ -8039,8 +7724,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 145, EndLine: 145, - StartPos: 3108, - EndPos: 3120, + StartPos: 2866, + EndPos: 2878, }, }, TraitName: &ast.Identifier{ @@ -8048,8 +7733,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 145, EndLine: 145, - StartPos: 3114, - EndPos: 3117, + StartPos: 2872, + EndPos: 2875, }, }, Value: []byte("Foo"), @@ -8061,8 +7746,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3123, - EndPos: 3145, + StartPos: 2879, + EndPos: 2901, }, }, ClassName: &ast.Identifier{ @@ -8070,8 +7755,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3129, - EndPos: 3132, + StartPos: 2885, + EndPos: 2888, }, }, Value: []byte("Foo"), @@ -8082,8 +7767,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3135, - EndPos: 3143, + StartPos: 2891, + EndPos: 2899, }, }, Traits: []ast.Vertex{ @@ -8092,8 +7777,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3139, - EndPos: 3142, + StartPos: 2895, + EndPos: 2898, }, }, Parts: []ast.Vertex{ @@ -8102,8 +7787,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3139, - EndPos: 3142, + StartPos: 2895, + EndPos: 2898, }, }, Value: []byte("Bar"), @@ -8116,8 +7801,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 146, EndLine: 146, - StartPos: 3142, - EndPos: 3143, + StartPos: 2898, + EndPos: 2899, }, }, }, @@ -8129,8 +7814,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3148, - EndPos: 3177, + StartPos: 2902, + EndPos: 2931, }, }, ClassName: &ast.Identifier{ @@ -8138,8 +7823,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3154, - EndPos: 3157, + StartPos: 2908, + EndPos: 2911, }, }, Value: []byte("Foo"), @@ -8150,8 +7835,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3160, - EndPos: 3175, + StartPos: 2914, + EndPos: 2929, }, }, Traits: []ast.Vertex{ @@ -8160,8 +7845,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3164, - EndPos: 3167, + StartPos: 2918, + EndPos: 2921, }, }, Parts: []ast.Vertex{ @@ -8170,8 +7855,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3164, - EndPos: 3167, + StartPos: 2918, + EndPos: 2921, }, }, Value: []byte("Bar"), @@ -8183,8 +7868,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3169, - EndPos: 3172, + StartPos: 2923, + EndPos: 2926, }, }, Parts: []ast.Vertex{ @@ -8193,8 +7878,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3169, - EndPos: 3172, + StartPos: 2923, + EndPos: 2926, }, }, Value: []byte("Baz"), @@ -8207,8 +7892,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 147, EndLine: 147, - StartPos: 3173, - EndPos: 3175, + StartPos: 2927, + EndPos: 2929, }, }, }, @@ -8220,8 +7905,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3180, - EndPos: 3226, + StartPos: 2932, + EndPos: 2978, }, }, ClassName: &ast.Identifier{ @@ -8229,8 +7914,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3186, - EndPos: 3189, + StartPos: 2938, + EndPos: 2941, }, }, Value: []byte("Foo"), @@ -8241,8 +7926,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3192, - EndPos: 3224, + StartPos: 2944, + EndPos: 2976, }, }, Traits: []ast.Vertex{ @@ -8251,8 +7936,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3196, - EndPos: 3199, + StartPos: 2948, + EndPos: 2951, }, }, Parts: []ast.Vertex{ @@ -8261,8 +7946,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3196, - EndPos: 3199, + StartPos: 2948, + EndPos: 2951, }, }, Value: []byte("Bar"), @@ -8274,8 +7959,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3201, - EndPos: 3204, + StartPos: 2953, + EndPos: 2956, }, }, Parts: []ast.Vertex{ @@ -8284,8 +7969,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3201, - EndPos: 3204, + StartPos: 2953, + EndPos: 2956, }, }, Value: []byte("Baz"), @@ -8298,8 +7983,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3205, - EndPos: 3224, + StartPos: 2957, + EndPos: 2976, }, }, Adaptations: []ast.Vertex{ @@ -8308,8 +7993,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3207, - EndPos: 3221, + StartPos: 2959, + EndPos: 2973, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8317,8 +8002,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3207, - EndPos: 3210, + StartPos: 2959, + EndPos: 2962, }, }, Method: &ast.Identifier{ @@ -8326,8 +8011,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3207, - EndPos: 3210, + StartPos: 2959, + EndPos: 2962, }, }, Value: []byte("one"), @@ -8338,8 +8023,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 148, EndLine: 148, - StartPos: 3214, - EndPos: 3221, + StartPos: 2966, + EndPos: 2973, }, }, Value: []byte("include"), @@ -8355,8 +8040,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3229, - EndPos: 3274, + StartPos: 2979, + EndPos: 3024, }, }, ClassName: &ast.Identifier{ @@ -8364,8 +8049,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3235, - EndPos: 3238, + StartPos: 2985, + EndPos: 2988, }, }, Value: []byte("Foo"), @@ -8376,8 +8061,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3241, - EndPos: 3272, + StartPos: 2991, + EndPos: 3022, }, }, Traits: []ast.Vertex{ @@ -8386,8 +8071,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3245, - EndPos: 3248, + StartPos: 2995, + EndPos: 2998, }, }, Parts: []ast.Vertex{ @@ -8396,8 +8081,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3245, - EndPos: 3248, + StartPos: 2995, + EndPos: 2998, }, }, Value: []byte("Bar"), @@ -8409,8 +8094,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3250, - EndPos: 3253, + StartPos: 3000, + EndPos: 3003, }, }, Parts: []ast.Vertex{ @@ -8419,8 +8104,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3250, - EndPos: 3253, + StartPos: 3000, + EndPos: 3003, }, }, Value: []byte("Baz"), @@ -8433,8 +8118,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3254, - EndPos: 3272, + StartPos: 3004, + EndPos: 3022, }, }, Adaptations: []ast.Vertex{ @@ -8443,8 +8128,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3256, - EndPos: 3269, + StartPos: 3006, + EndPos: 3019, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8452,8 +8137,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3256, - EndPos: 3259, + StartPos: 3006, + EndPos: 3009, }, }, Method: &ast.Identifier{ @@ -8461,8 +8146,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3256, - EndPos: 3259, + StartPos: 3006, + EndPos: 3009, }, }, Value: []byte("one"), @@ -8473,8 +8158,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 149, EndLine: 149, - StartPos: 3263, - EndPos: 3269, + StartPos: 3013, + EndPos: 3019, }, }, Value: []byte("public"), @@ -8490,8 +8175,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3277, - EndPos: 3326, + StartPos: 3025, + EndPos: 3074, }, }, ClassName: &ast.Identifier{ @@ -8499,8 +8184,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3283, - EndPos: 3286, + StartPos: 3031, + EndPos: 3034, }, }, Value: []byte("Foo"), @@ -8511,8 +8196,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3289, - EndPos: 3324, + StartPos: 3037, + EndPos: 3072, }, }, Traits: []ast.Vertex{ @@ -8521,8 +8206,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3293, - EndPos: 3296, + StartPos: 3041, + EndPos: 3044, }, }, Parts: []ast.Vertex{ @@ -8531,8 +8216,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3293, - EndPos: 3296, + StartPos: 3041, + EndPos: 3044, }, }, Value: []byte("Bar"), @@ -8544,8 +8229,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3298, - EndPos: 3301, + StartPos: 3046, + EndPos: 3049, }, }, Parts: []ast.Vertex{ @@ -8554,8 +8239,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3298, - EndPos: 3301, + StartPos: 3046, + EndPos: 3049, }, }, Value: []byte("Baz"), @@ -8568,8 +8253,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3302, - EndPos: 3324, + StartPos: 3050, + EndPos: 3072, }, }, Adaptations: []ast.Vertex{ @@ -8578,8 +8263,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3304, - EndPos: 3321, + StartPos: 3052, + EndPos: 3069, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8587,8 +8272,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3304, - EndPos: 3307, + StartPos: 3052, + EndPos: 3055, }, }, Method: &ast.Identifier{ @@ -8596,8 +8281,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3304, - EndPos: 3307, + StartPos: 3052, + EndPos: 3055, }, }, Value: []byte("one"), @@ -8608,8 +8293,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3311, - EndPos: 3317, + StartPos: 3059, + EndPos: 3065, }, }, Value: []byte("public"), @@ -8619,8 +8304,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 150, EndLine: 150, - StartPos: 3318, - EndPos: 3321, + StartPos: 3066, + EndPos: 3069, }, }, Value: []byte("two"), @@ -8636,8 +8321,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3329, - EndPos: 3406, + StartPos: 3075, + EndPos: 3152, }, }, ClassName: &ast.Identifier{ @@ -8645,8 +8330,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3335, - EndPos: 3338, + StartPos: 3081, + EndPos: 3084, }, }, Value: []byte("Foo"), @@ -8657,8 +8342,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3341, - EndPos: 3404, + StartPos: 3087, + EndPos: 3150, }, }, Traits: []ast.Vertex{ @@ -8667,8 +8352,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3345, - EndPos: 3348, + StartPos: 3091, + EndPos: 3094, }, }, Parts: []ast.Vertex{ @@ -8677,8 +8362,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3345, - EndPos: 3348, + StartPos: 3091, + EndPos: 3094, }, }, Value: []byte("Bar"), @@ -8690,8 +8375,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3350, - EndPos: 3353, + StartPos: 3096, + EndPos: 3099, }, }, Parts: []ast.Vertex{ @@ -8700,8 +8385,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3350, - EndPos: 3353, + StartPos: 3096, + EndPos: 3099, }, }, Value: []byte("Baz"), @@ -8714,8 +8399,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3354, - EndPos: 3404, + StartPos: 3100, + EndPos: 3150, }, }, Adaptations: []ast.Vertex{ @@ -8724,8 +8409,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3356, - EndPos: 3384, + StartPos: 3102, + EndPos: 3130, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8733,8 +8418,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3356, - EndPos: 3364, + StartPos: 3102, + EndPos: 3110, }, }, Trait: &ast.NameName{ @@ -8742,8 +8427,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3356, - EndPos: 3359, + StartPos: 3102, + EndPos: 3105, }, }, Parts: []ast.Vertex{ @@ -8752,8 +8437,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3356, - EndPos: 3359, + StartPos: 3102, + EndPos: 3105, }, }, Value: []byte("Bar"), @@ -8765,8 +8450,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3361, - EndPos: 3364, + StartPos: 3107, + EndPos: 3110, }, }, Value: []byte("one"), @@ -8778,8 +8463,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3375, - EndPos: 3378, + StartPos: 3121, + EndPos: 3124, }, }, Parts: []ast.Vertex{ @@ -8788,8 +8473,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3375, - EndPos: 3378, + StartPos: 3121, + EndPos: 3124, }, }, Value: []byte("Baz"), @@ -8801,8 +8486,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3380, - EndPos: 3384, + StartPos: 3126, + EndPos: 3130, }, }, Parts: []ast.Vertex{ @@ -8811,8 +8496,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3380, - EndPos: 3384, + StartPos: 3126, + EndPos: 3130, }, }, Value: []byte("Quux"), @@ -8826,8 +8511,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3386, - EndPos: 3401, + StartPos: 3132, + EndPos: 3147, }, }, Ref: &ast.StmtTraitMethodRef{ @@ -8835,8 +8520,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3386, - EndPos: 3394, + StartPos: 3132, + EndPos: 3140, }, }, Trait: &ast.NameName{ @@ -8844,8 +8529,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3386, - EndPos: 3389, + StartPos: 3132, + EndPos: 3135, }, }, Parts: []ast.Vertex{ @@ -8854,8 +8539,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3386, - EndPos: 3389, + StartPos: 3132, + EndPos: 3135, }, }, Value: []byte("Baz"), @@ -8867,8 +8552,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3391, - EndPos: 3394, + StartPos: 3137, + EndPos: 3140, }, }, Value: []byte("one"), @@ -8879,8 +8564,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 151, EndLine: 151, - StartPos: 3398, - EndPos: 3401, + StartPos: 3144, + EndPos: 3147, }, }, Value: []byte("two"), @@ -8896,7 +8581,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 153, EndLine: -1, - StartPos: 3410, + StartPos: 3154, EndPos: -1, }, }, @@ -8908,8 +8593,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3419, - EndPos: 3449, + StartPos: 3161, + EndPos: 3191, }, }, Stmts: []ast.Vertex{}, @@ -8919,8 +8604,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3426, - EndPos: 3449, + StartPos: 3168, + EndPos: 3191, }, }, Types: []ast.Vertex{ @@ -8929,8 +8614,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3433, - EndPos: 3442, + StartPos: 3175, + EndPos: 3184, }, }, Parts: []ast.Vertex{ @@ -8939,8 +8624,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3433, - EndPos: 3442, + StartPos: 3175, + EndPos: 3184, }, }, Value: []byte("Exception"), @@ -8953,8 +8638,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3443, - EndPos: 3445, + StartPos: 3185, + EndPos: 3187, }, }, VarName: &ast.Identifier{ @@ -8962,8 +8647,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 154, EndLine: 154, - StartPos: 3443, - EndPos: 3445, + StartPos: 3185, + EndPos: 3187, }, }, Value: []byte("$e"), @@ -8978,8 +8663,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3452, - EndPos: 3499, + StartPos: 3192, + EndPos: 3239, }, }, Stmts: []ast.Vertex{}, @@ -8989,8 +8674,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3459, - EndPos: 3499, + StartPos: 3199, + EndPos: 3239, }, }, Types: []ast.Vertex{ @@ -8999,8 +8684,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3466, - EndPos: 3475, + StartPos: 3206, + EndPos: 3215, }, }, Parts: []ast.Vertex{ @@ -9009,8 +8694,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3466, - EndPos: 3475, + StartPos: 3206, + EndPos: 3215, }, }, Value: []byte("Exception"), @@ -9022,8 +8707,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3476, - EndPos: 3492, + StartPos: 3216, + EndPos: 3232, }, }, Parts: []ast.Vertex{ @@ -9032,8 +8717,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3476, - EndPos: 3492, + StartPos: 3216, + EndPos: 3232, }, }, Value: []byte("RuntimeException"), @@ -9046,8 +8731,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3493, - EndPos: 3495, + StartPos: 3233, + EndPos: 3235, }, }, VarName: &ast.Identifier{ @@ -9055,8 +8740,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3493, - EndPos: 3495, + StartPos: 3233, + EndPos: 3235, }, }, Value: []byte("$e"), @@ -9071,8 +8756,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3502, - EndPos: 3563, + StartPos: 3240, + EndPos: 3301, }, }, Stmts: []ast.Vertex{}, @@ -9082,8 +8767,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3509, - EndPos: 3532, + StartPos: 3247, + EndPos: 3270, }, }, Types: []ast.Vertex{ @@ -9092,8 +8777,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3516, - EndPos: 3525, + StartPos: 3254, + EndPos: 3263, }, }, Parts: []ast.Vertex{ @@ -9102,8 +8787,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3516, - EndPos: 3525, + StartPos: 3254, + EndPos: 3263, }, }, Value: []byte("Exception"), @@ -9116,8 +8801,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3526, - EndPos: 3528, + StartPos: 3264, + EndPos: 3266, }, }, VarName: &ast.Identifier{ @@ -9125,8 +8810,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3526, - EndPos: 3528, + StartPos: 3264, + EndPos: 3266, }, }, Value: []byte("$e"), @@ -9139,8 +8824,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3533, - EndPos: 3563, + StartPos: 3271, + EndPos: 3301, }, }, Types: []ast.Vertex{ @@ -9149,8 +8834,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3540, - EndPos: 3556, + StartPos: 3278, + EndPos: 3294, }, }, Parts: []ast.Vertex{ @@ -9159,8 +8844,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3540, - EndPos: 3556, + StartPos: 3278, + EndPos: 3294, }, }, Value: []byte("RuntimeException"), @@ -9173,8 +8858,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3557, - EndPos: 3559, + StartPos: 3295, + EndPos: 3297, }, }, VarName: &ast.Identifier{ @@ -9182,8 +8867,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3557, - EndPos: 3559, + StartPos: 3295, + EndPos: 3297, }, }, Value: []byte("$e"), @@ -9198,8 +8883,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3566, - EndPos: 3607, + StartPos: 3302, + EndPos: 3343, }, }, Stmts: []ast.Vertex{}, @@ -9209,8 +8894,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3573, - EndPos: 3596, + StartPos: 3309, + EndPos: 3332, }, }, Types: []ast.Vertex{ @@ -9219,8 +8904,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3580, - EndPos: 3589, + StartPos: 3316, + EndPos: 3325, }, }, Parts: []ast.Vertex{ @@ -9229,8 +8914,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3580, - EndPos: 3589, + StartPos: 3316, + EndPos: 3325, }, }, Value: []byte("Exception"), @@ -9243,8 +8928,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3590, - EndPos: 3592, + StartPos: 3326, + EndPos: 3328, }, }, VarName: &ast.Identifier{ @@ -9252,8 +8937,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3590, - EndPos: 3592, + StartPos: 3326, + EndPos: 3328, }, }, Value: []byte("$e"), @@ -9267,8 +8952,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 157, EndLine: 157, - StartPos: 3597, - EndPos: 3607, + StartPos: 3333, + EndPos: 3343, }, }, Stmts: []ast.Vertex{}, @@ -9279,8 +8964,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3611, - EndPos: 3626, + StartPos: 3345, + EndPos: 3360, }, }, Vars: []ast.Vertex{ @@ -9289,8 +8974,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3617, - EndPos: 3619, + StartPos: 3351, + EndPos: 3353, }, }, VarName: &ast.Identifier{ @@ -9298,8 +8983,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3617, - EndPos: 3619, + StartPos: 3351, + EndPos: 3353, }, }, Value: []byte("$a"), @@ -9310,8 +8995,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3621, - EndPos: 3623, + StartPos: 3355, + EndPos: 3357, }, }, VarName: &ast.Identifier{ @@ -9319,8 +9004,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3621, - EndPos: 3623, + StartPos: 3355, + EndPos: 3357, }, }, Value: []byte("$b"), @@ -9333,8 +9018,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3630, - EndPos: 3638, + StartPos: 3362, + EndPos: 3370, }, }, Uses: []ast.Vertex{ @@ -9343,8 +9028,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3634, - EndPos: 3637, + StartPos: 3366, + EndPos: 3369, }, }, Use: &ast.NameName{ @@ -9352,8 +9037,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3634, - EndPos: 3637, + StartPos: 3366, + EndPos: 3369, }, }, Parts: []ast.Vertex{ @@ -9362,8 +9047,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3634, - EndPos: 3637, + StartPos: 3366, + EndPos: 3369, }, }, Value: []byte("Foo"), @@ -9378,8 +9063,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3641, - EndPos: 3650, + StartPos: 3371, + EndPos: 3380, }, }, Uses: []ast.Vertex{ @@ -9388,8 +9073,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3646, - EndPos: 3649, + StartPos: 3376, + EndPos: 3379, }, }, Use: &ast.NameName{ @@ -9397,8 +9082,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3646, - EndPos: 3649, + StartPos: 3376, + EndPos: 3379, }, }, Parts: []ast.Vertex{ @@ -9407,8 +9092,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3646, - EndPos: 3649, + StartPos: 3376, + EndPos: 3379, }, }, Value: []byte("Foo"), @@ -9423,8 +9108,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3653, - EndPos: 3669, + StartPos: 3381, + EndPos: 3397, }, }, Uses: []ast.Vertex{ @@ -9433,8 +9118,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3658, - EndPos: 3668, + StartPos: 3386, + EndPos: 3396, }, }, Use: &ast.NameName{ @@ -9442,8 +9127,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3658, - EndPos: 3661, + StartPos: 3386, + EndPos: 3389, }, }, Parts: []ast.Vertex{ @@ -9452,8 +9137,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3658, - EndPos: 3661, + StartPos: 3386, + EndPos: 3389, }, }, Value: []byte("Foo"), @@ -9465,8 +9150,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3665, - EndPos: 3668, + StartPos: 3393, + EndPos: 3396, }, }, Value: []byte("Bar"), @@ -9479,8 +9164,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3672, - EndPos: 3685, + StartPos: 3398, + EndPos: 3411, }, }, Uses: []ast.Vertex{ @@ -9489,8 +9174,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3676, - EndPos: 3679, + StartPos: 3402, + EndPos: 3405, }, }, Use: &ast.NameName{ @@ -9498,8 +9183,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3676, - EndPos: 3679, + StartPos: 3402, + EndPos: 3405, }, }, Parts: []ast.Vertex{ @@ -9508,8 +9193,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3676, - EndPos: 3679, + StartPos: 3402, + EndPos: 3405, }, }, Value: []byte("Foo"), @@ -9522,8 +9207,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3681, - EndPos: 3684, + StartPos: 3407, + EndPos: 3410, }, }, Use: &ast.NameName{ @@ -9531,8 +9216,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3681, - EndPos: 3684, + StartPos: 3407, + EndPos: 3410, }, }, Parts: []ast.Vertex{ @@ -9541,8 +9226,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 164, EndLine: 164, - StartPos: 3681, - EndPos: 3684, + StartPos: 3407, + EndPos: 3410, }, }, Value: []byte("Bar"), @@ -9557,8 +9242,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3688, - EndPos: 3708, + StartPos: 3412, + EndPos: 3432, }, }, Uses: []ast.Vertex{ @@ -9567,8 +9252,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3692, - EndPos: 3695, + StartPos: 3416, + EndPos: 3419, }, }, Use: &ast.NameName{ @@ -9576,8 +9261,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3692, - EndPos: 3695, + StartPos: 3416, + EndPos: 3419, }, }, Parts: []ast.Vertex{ @@ -9586,8 +9271,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3692, - EndPos: 3695, + StartPos: 3416, + EndPos: 3419, }, }, Value: []byte("Foo"), @@ -9600,8 +9285,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3697, - EndPos: 3707, + StartPos: 3421, + EndPos: 3431, }, }, Use: &ast.NameName{ @@ -9609,8 +9294,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3697, - EndPos: 3700, + StartPos: 3421, + EndPos: 3424, }, }, Parts: []ast.Vertex{ @@ -9619,8 +9304,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3697, - EndPos: 3700, + StartPos: 3421, + EndPos: 3424, }, }, Value: []byte("Bar"), @@ -9632,8 +9317,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 165, EndLine: 165, - StartPos: 3704, - EndPos: 3707, + StartPos: 3428, + EndPos: 3431, }, }, Value: []byte("Baz"), @@ -9646,8 +9331,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3711, - EndPos: 3734, + StartPos: 3433, + EndPos: 3456, }, }, UseType: &ast.Identifier{ @@ -9655,8 +9340,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3715, - EndPos: 3723, + StartPos: 3437, + EndPos: 3445, }, }, Value: []byte("function"), @@ -9667,8 +9352,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3724, - EndPos: 3727, + StartPos: 3446, + EndPos: 3449, }, }, Use: &ast.NameName{ @@ -9676,8 +9361,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3724, - EndPos: 3727, + StartPos: 3446, + EndPos: 3449, }, }, Parts: []ast.Vertex{ @@ -9686,8 +9371,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3724, - EndPos: 3727, + StartPos: 3446, + EndPos: 3449, }, }, Value: []byte("Foo"), @@ -9700,8 +9385,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3730, - EndPos: 3733, + StartPos: 3452, + EndPos: 3455, }, }, Use: &ast.NameName{ @@ -9709,8 +9394,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3730, - EndPos: 3733, + StartPos: 3452, + EndPos: 3455, }, }, Parts: []ast.Vertex{ @@ -9719,8 +9404,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3730, - EndPos: 3733, + StartPos: 3452, + EndPos: 3455, }, }, Value: []byte("Bar"), @@ -9735,8 +9420,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3737, - EndPos: 3774, + StartPos: 3457, + EndPos: 3494, }, }, UseType: &ast.Identifier{ @@ -9744,8 +9429,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3741, - EndPos: 3749, + StartPos: 3461, + EndPos: 3469, }, }, Value: []byte("function"), @@ -9756,8 +9441,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3750, - EndPos: 3760, + StartPos: 3470, + EndPos: 3480, }, }, Use: &ast.NameName{ @@ -9765,8 +9450,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3750, - EndPos: 3753, + StartPos: 3470, + EndPos: 3473, }, }, Parts: []ast.Vertex{ @@ -9775,8 +9460,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3750, - EndPos: 3753, + StartPos: 3470, + EndPos: 3473, }, }, Value: []byte("Foo"), @@ -9788,8 +9473,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3757, - EndPos: 3760, + StartPos: 3477, + EndPos: 3480, }, }, Value: []byte("foo"), @@ -9800,8 +9485,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3763, - EndPos: 3773, + StartPos: 3483, + EndPos: 3493, }, }, Use: &ast.NameName{ @@ -9809,8 +9494,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3763, - EndPos: 3766, + StartPos: 3483, + EndPos: 3486, }, }, Parts: []ast.Vertex{ @@ -9819,8 +9504,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3763, - EndPos: 3766, + StartPos: 3483, + EndPos: 3486, }, }, Value: []byte("Bar"), @@ -9832,8 +9517,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3770, - EndPos: 3773, + StartPos: 3490, + EndPos: 3493, }, }, Value: []byte("bar"), @@ -9846,8 +9531,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3777, - EndPos: 3797, + StartPos: 3495, + EndPos: 3515, }, }, UseType: &ast.Identifier{ @@ -9855,8 +9540,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3781, - EndPos: 3786, + StartPos: 3499, + EndPos: 3504, }, }, Value: []byte("const"), @@ -9867,8 +9552,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3787, - EndPos: 3790, + StartPos: 3505, + EndPos: 3508, }, }, Use: &ast.NameName{ @@ -9876,8 +9561,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3787, - EndPos: 3790, + StartPos: 3505, + EndPos: 3508, }, }, Parts: []ast.Vertex{ @@ -9886,8 +9571,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3787, - EndPos: 3790, + StartPos: 3505, + EndPos: 3508, }, }, Value: []byte("Foo"), @@ -9900,8 +9585,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, - EndPos: 3796, + StartPos: 3511, + EndPos: 3514, }, }, Use: &ast.NameName{ @@ -9909,8 +9594,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, - EndPos: 3796, + StartPos: 3511, + EndPos: 3514, }, }, Parts: []ast.Vertex{ @@ -9919,8 +9604,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3793, - EndPos: 3796, + StartPos: 3511, + EndPos: 3514, }, }, Value: []byte("Bar"), @@ -9935,8 +9620,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3800, - EndPos: 3834, + StartPos: 3516, + EndPos: 3550, }, }, UseType: &ast.Identifier{ @@ -9944,8 +9629,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3804, - EndPos: 3809, + StartPos: 3520, + EndPos: 3525, }, }, Value: []byte("const"), @@ -9956,8 +9641,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3810, - EndPos: 3820, + StartPos: 3526, + EndPos: 3536, }, }, Use: &ast.NameName{ @@ -9965,8 +9650,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3810, - EndPos: 3813, + StartPos: 3526, + EndPos: 3529, }, }, Parts: []ast.Vertex{ @@ -9975,8 +9660,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3810, - EndPos: 3813, + StartPos: 3526, + EndPos: 3529, }, }, Value: []byte("Foo"), @@ -9988,8 +9673,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3817, - EndPos: 3820, + StartPos: 3533, + EndPos: 3536, }, }, Value: []byte("foo"), @@ -10000,8 +9685,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3823, - EndPos: 3833, + StartPos: 3539, + EndPos: 3549, }, }, Use: &ast.NameName{ @@ -10009,8 +9694,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3823, - EndPos: 3826, + StartPos: 3539, + EndPos: 3542, }, }, Parts: []ast.Vertex{ @@ -10019,8 +9704,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3823, - EndPos: 3826, + StartPos: 3539, + EndPos: 3542, }, }, Value: []byte("Bar"), @@ -10032,8 +9717,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3830, - EndPos: 3833, + StartPos: 3546, + EndPos: 3549, }, }, Value: []byte("bar"), @@ -10046,8 +9731,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3838, - EndPos: 3858, + StartPos: 3552, + EndPos: 3572, }, }, Prefix: &ast.NameName{ @@ -10055,8 +9740,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3843, - EndPos: 3846, + StartPos: 3557, + EndPos: 3560, }, }, Parts: []ast.Vertex{ @@ -10065,8 +9750,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3843, - EndPos: 3846, + StartPos: 3557, + EndPos: 3560, }, }, Value: []byte("Foo"), @@ -10079,8 +9764,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3848, - EndPos: 3851, + StartPos: 3562, + EndPos: 3565, }, }, Use: &ast.NameName{ @@ -10088,8 +9773,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3848, - EndPos: 3851, + StartPos: 3562, + EndPos: 3565, }, }, Parts: []ast.Vertex{ @@ -10098,8 +9783,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3848, - EndPos: 3851, + StartPos: 3562, + EndPos: 3565, }, }, Value: []byte("Bar"), @@ -10112,8 +9797,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3853, - EndPos: 3856, + StartPos: 3567, + EndPos: 3570, }, }, Use: &ast.NameName{ @@ -10121,8 +9806,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3853, - EndPos: 3856, + StartPos: 3567, + EndPos: 3570, }, }, Parts: []ast.Vertex{ @@ -10131,8 +9816,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3853, - EndPos: 3856, + StartPos: 3567, + EndPos: 3570, }, }, Value: []byte("Baz"), @@ -10147,8 +9832,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3861, - EndPos: 3888, + StartPos: 3573, + EndPos: 3600, }, }, Prefix: &ast.NameName{ @@ -10156,8 +9841,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3865, - EndPos: 3868, + StartPos: 3577, + EndPos: 3580, }, }, Parts: []ast.Vertex{ @@ -10166,8 +9851,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3865, - EndPos: 3868, + StartPos: 3577, + EndPos: 3580, }, }, Value: []byte("Foo"), @@ -10180,8 +9865,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3870, - EndPos: 3873, + StartPos: 3582, + EndPos: 3585, }, }, Use: &ast.NameName{ @@ -10189,8 +9874,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3870, - EndPos: 3873, + StartPos: 3582, + EndPos: 3585, }, }, Parts: []ast.Vertex{ @@ -10199,8 +9884,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3870, - EndPos: 3873, + StartPos: 3582, + EndPos: 3585, }, }, Value: []byte("Bar"), @@ -10213,8 +9898,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3875, - EndPos: 3886, + StartPos: 3587, + EndPos: 3598, }, }, Use: &ast.NameName{ @@ -10222,8 +9907,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3875, - EndPos: 3878, + StartPos: 3587, + EndPos: 3590, }, }, Parts: []ast.Vertex{ @@ -10232,8 +9917,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3875, - EndPos: 3878, + StartPos: 3587, + EndPos: 3590, }, }, Value: []byte("Baz"), @@ -10245,8 +9930,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 172, EndLine: 172, - StartPos: 3882, - EndPos: 3886, + StartPos: 3594, + EndPos: 3598, }, }, Value: []byte("quux"), @@ -10259,8 +9944,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3891, - EndPos: 3919, + StartPos: 3601, + EndPos: 3629, }, }, UseType: &ast.Identifier{ @@ -10268,8 +9953,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3895, - EndPos: 3903, + StartPos: 3605, + EndPos: 3613, }, }, Value: []byte("function"), @@ -10279,8 +9964,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3904, - EndPos: 3907, + StartPos: 3614, + EndPos: 3617, }, }, Parts: []ast.Vertex{ @@ -10289,8 +9974,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3904, - EndPos: 3907, + StartPos: 3614, + EndPos: 3617, }, }, Value: []byte("Foo"), @@ -10303,8 +9988,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3909, - EndPos: 3912, + StartPos: 3619, + EndPos: 3622, }, }, Use: &ast.NameName{ @@ -10312,8 +9997,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3909, - EndPos: 3912, + StartPos: 3619, + EndPos: 3622, }, }, Parts: []ast.Vertex{ @@ -10322,8 +10007,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3909, - EndPos: 3912, + StartPos: 3619, + EndPos: 3622, }, }, Value: []byte("Bar"), @@ -10336,8 +10021,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3914, - EndPos: 3917, + StartPos: 3624, + EndPos: 3627, }, }, Use: &ast.NameName{ @@ -10345,8 +10030,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3914, - EndPos: 3917, + StartPos: 3624, + EndPos: 3627, }, }, Parts: []ast.Vertex{ @@ -10355,8 +10040,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 173, EndLine: 173, - StartPos: 3914, - EndPos: 3917, + StartPos: 3624, + EndPos: 3627, }, }, Value: []byte("Baz"), @@ -10371,8 +10056,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3922, - EndPos: 3948, + StartPos: 3630, + EndPos: 3656, }, }, UseType: &ast.Identifier{ @@ -10380,8 +10065,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3926, - EndPos: 3931, + StartPos: 3634, + EndPos: 3639, }, }, Value: []byte("const"), @@ -10391,8 +10076,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3933, - EndPos: 3936, + StartPos: 3641, + EndPos: 3644, }, }, Parts: []ast.Vertex{ @@ -10401,8 +10086,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3933, - EndPos: 3936, + StartPos: 3641, + EndPos: 3644, }, }, Value: []byte("Foo"), @@ -10415,8 +10100,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3938, - EndPos: 3941, + StartPos: 3646, + EndPos: 3649, }, }, Use: &ast.NameName{ @@ -10424,8 +10109,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3938, - EndPos: 3941, + StartPos: 3646, + EndPos: 3649, }, }, Parts: []ast.Vertex{ @@ -10434,8 +10119,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3938, - EndPos: 3941, + StartPos: 3646, + EndPos: 3649, }, }, Value: []byte("Bar"), @@ -10448,8 +10133,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3943, - EndPos: 3946, + StartPos: 3651, + EndPos: 3654, }, }, Use: &ast.NameName{ @@ -10457,8 +10142,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3943, - EndPos: 3946, + StartPos: 3651, + EndPos: 3654, }, }, Parts: []ast.Vertex{ @@ -10467,8 +10152,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 174, EndLine: 174, - StartPos: 3943, - EndPos: 3946, + StartPos: 3651, + EndPos: 3654, }, }, Value: []byte("Baz"), @@ -10483,8 +10168,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3951, - EndPos: 3985, + StartPos: 3657, + EndPos: 3691, }, }, Prefix: &ast.NameName{ @@ -10492,8 +10177,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3955, - EndPos: 3958, + StartPos: 3661, + EndPos: 3664, }, }, Parts: []ast.Vertex{ @@ -10502,8 +10187,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3955, - EndPos: 3958, + StartPos: 3661, + EndPos: 3664, }, }, Value: []byte("Foo"), @@ -10516,8 +10201,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3966, - EndPos: 3969, + StartPos: 3672, + EndPos: 3675, }, }, UseType: &ast.Identifier{ @@ -10525,8 +10210,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3960, - EndPos: 3965, + StartPos: 3666, + EndPos: 3671, }, }, Value: []byte("const"), @@ -10536,8 +10221,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3966, - EndPos: 3969, + StartPos: 3672, + EndPos: 3675, }, }, Parts: []ast.Vertex{ @@ -10546,8 +10231,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3966, - EndPos: 3969, + StartPos: 3672, + EndPos: 3675, }, }, Value: []byte("Bar"), @@ -10560,8 +10245,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3980, - EndPos: 3983, + StartPos: 3686, + EndPos: 3689, }, }, UseType: &ast.Identifier{ @@ -10569,8 +10254,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3971, - EndPos: 3979, + StartPos: 3677, + EndPos: 3685, }, }, Value: []byte("function"), @@ -10580,8 +10265,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3980, - EndPos: 3983, + StartPos: 3686, + EndPos: 3689, }, }, Parts: []ast.Vertex{ @@ -10590,8 +10275,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3980, - EndPos: 3983, + StartPos: 3686, + EndPos: 3689, }, }, Value: []byte("Baz"), @@ -10606,8 +10291,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3989, - EndPos: 3995, + StartPos: 3693, + EndPos: 3699, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -10615,8 +10300,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3989, - EndPos: 3994, + StartPos: 3693, + EndPos: 3698, }, }, Var: &ast.ExprVariable{ @@ -10624,8 +10309,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3989, - EndPos: 3991, + StartPos: 3693, + EndPos: 3695, }, }, VarName: &ast.Identifier{ @@ -10633,8 +10318,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3989, - EndPos: 3991, + StartPos: 3693, + EndPos: 3695, }, }, Value: []byte("$a"), @@ -10645,8 +10330,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 177, EndLine: 177, - StartPos: 3992, - EndPos: 3993, + StartPos: 3696, + EndPos: 3697, }, }, Value: []byte("1"), @@ -10658,8 +10343,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3998, - EndPos: 4007, + StartPos: 3700, + EndPos: 3709, }, }, Expr: &ast.ExprArrayDimFetch{ @@ -10667,8 +10352,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3998, - EndPos: 4006, + StartPos: 3700, + EndPos: 3708, }, }, Var: &ast.ExprArrayDimFetch{ @@ -10676,8 +10361,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3998, - EndPos: 4003, + StartPos: 3700, + EndPos: 3705, }, }, Var: &ast.ExprVariable{ @@ -10685,8 +10370,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3998, - EndPos: 4000, + StartPos: 3700, + EndPos: 3702, }, }, VarName: &ast.Identifier{ @@ -10694,8 +10379,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 3998, - EndPos: 4000, + StartPos: 3700, + EndPos: 3702, }, }, Value: []byte("$a"), @@ -10706,8 +10391,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 4001, - EndPos: 4002, + StartPos: 3703, + EndPos: 3704, }, }, Value: []byte("1"), @@ -10718,8 +10403,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 178, EndLine: 178, - StartPos: 4004, - EndPos: 4005, + StartPos: 3706, + EndPos: 3707, }, }, Value: []byte("2"), @@ -10731,8 +10416,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 4010, - EndPos: 4018, + StartPos: 3710, + EndPos: 3718, }, }, Expr: &ast.ExprArray{ @@ -10740,8 +10425,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 179, EndLine: 179, - StartPos: 4010, - EndPos: 4017, + StartPos: 3710, + EndPos: 3717, }, }, Items: []ast.Vertex{}, @@ -10752,8 +10437,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4021, - EndPos: 4030, + StartPos: 3719, + EndPos: 3728, }, }, Expr: &ast.ExprArray{ @@ -10761,8 +10446,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4021, - EndPos: 4029, + StartPos: 3719, + EndPos: 3727, }, }, Items: []ast.Vertex{ @@ -10771,8 +10456,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4027, - EndPos: 4028, + StartPos: 3725, + EndPos: 3726, }, }, Val: &ast.ScalarLnumber{ @@ -10780,8 +10465,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 180, EndLine: 180, - StartPos: 4027, - EndPos: 4028, + StartPos: 3725, + EndPos: 3726, }, }, Value: []byte("1"), @@ -10795,8 +10480,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4033, - EndPos: 4051, + StartPos: 3729, + EndPos: 3747, }, }, Expr: &ast.ExprArray{ @@ -10804,8 +10489,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4033, - EndPos: 4050, + StartPos: 3729, + EndPos: 3746, }, }, Items: []ast.Vertex{ @@ -10814,8 +10499,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4039, - EndPos: 4043, + StartPos: 3735, + EndPos: 3739, }, }, Key: &ast.ScalarLnumber{ @@ -10823,8 +10508,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4039, - EndPos: 4040, + StartPos: 3735, + EndPos: 3736, }, }, Value: []byte("1"), @@ -10834,8 +10519,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4042, - EndPos: 4043, + StartPos: 3738, + EndPos: 3739, }, }, Value: []byte("1"), @@ -10846,8 +10531,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4045, - EndPos: 4048, + StartPos: 3741, + EndPos: 3744, }, }, Val: &ast.ExprReference{ @@ -10855,8 +10540,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4045, - EndPos: 4048, + StartPos: 3741, + EndPos: 3744, }, }, Var: &ast.ExprVariable{ @@ -10864,8 +10549,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4046, - EndPos: 4048, + StartPos: 3742, + EndPos: 3744, }, }, VarName: &ast.Identifier{ @@ -10873,8 +10558,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 181, EndLine: 181, - StartPos: 4046, - EndPos: 4048, + StartPos: 3742, + EndPos: 3744, }, }, Value: []byte("$b"), @@ -10891,8 +10576,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4054, - EndPos: 4058, + StartPos: 3748, + EndPos: 3752, }, }, Expr: &ast.ExprBitwiseNot{ @@ -10900,8 +10585,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4054, - EndPos: 4057, + StartPos: 3748, + EndPos: 3751, }, }, Expr: &ast.ExprVariable{ @@ -10909,8 +10594,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4055, - EndPos: 4057, + StartPos: 3749, + EndPos: 3751, }, }, VarName: &ast.Identifier{ @@ -10918,8 +10603,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 182, EndLine: 182, - StartPos: 4055, - EndPos: 4057, + StartPos: 3749, + EndPos: 3751, }, }, Value: []byte("$a"), @@ -10932,8 +10617,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4061, - EndPos: 4065, + StartPos: 3753, + EndPos: 3757, }, }, Expr: &ast.ExprBooleanNot{ @@ -10941,8 +10626,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4061, - EndPos: 4064, + StartPos: 3753, + EndPos: 3756, }, }, Expr: &ast.ExprVariable{ @@ -10950,8 +10635,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4062, - EndPos: 4064, + StartPos: 3754, + EndPos: 3756, }, }, VarName: &ast.Identifier{ @@ -10959,8 +10644,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 183, EndLine: 183, - StartPos: 4062, - EndPos: 4064, + StartPos: 3754, + EndPos: 3756, }, }, Value: []byte("$a"), @@ -10973,8 +10658,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4069, - EndPos: 4078, + StartPos: 3759, + EndPos: 3768, }, }, Expr: &ast.ExprClassConstFetch{ @@ -10982,8 +10667,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4069, - EndPos: 4077, + StartPos: 3759, + EndPos: 3767, }, }, Class: &ast.NameName{ @@ -10991,8 +10676,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4069, - EndPos: 4072, + StartPos: 3759, + EndPos: 3762, }, }, Parts: []ast.Vertex{ @@ -11001,8 +10686,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4069, - EndPos: 4072, + StartPos: 3759, + EndPos: 3762, }, }, Value: []byte("Foo"), @@ -11014,8 +10699,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 185, EndLine: 185, - StartPos: 4074, - EndPos: 4077, + StartPos: 3764, + EndPos: 3767, }, }, Value: []byte("Bar"), @@ -11027,8 +10712,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4081, - EndPos: 4091, + StartPos: 3769, + EndPos: 3779, }, }, Expr: &ast.ExprClassConstFetch{ @@ -11036,8 +10721,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4081, - EndPos: 4090, + StartPos: 3769, + EndPos: 3778, }, }, Class: &ast.ExprVariable{ @@ -11045,8 +10730,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4081, - EndPos: 4085, + StartPos: 3769, + EndPos: 3773, }, }, VarName: &ast.Identifier{ @@ -11054,8 +10739,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4081, - EndPos: 4085, + StartPos: 3769, + EndPos: 3773, }, }, Value: []byte("$foo"), @@ -11066,8 +10751,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 186, EndLine: 186, - StartPos: 4087, - EndPos: 4090, + StartPos: 3775, + EndPos: 3778, }, }, Value: []byte("Bar"), @@ -11079,8 +10764,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4094, - EndPos: 4104, + StartPos: 3780, + EndPos: 3790, }, }, Expr: &ast.ExprClone{ @@ -11088,8 +10773,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4094, - EndPos: 4102, + StartPos: 3780, + EndPos: 3788, }, }, Expr: &ast.ExprVariable{ @@ -11097,8 +10782,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4100, - EndPos: 4102, + StartPos: 3786, + EndPos: 3788, }, }, VarName: &ast.Identifier{ @@ -11106,8 +10791,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 187, EndLine: 187, - StartPos: 4100, - EndPos: 4102, + StartPos: 3786, + EndPos: 3788, }, }, Value: []byte("$a"), @@ -11120,8 +10805,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4107, - EndPos: 4116, + StartPos: 3791, + EndPos: 3800, }, }, Expr: &ast.ExprClone{ @@ -11129,8 +10814,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4107, - EndPos: 4115, + StartPos: 3791, + EndPos: 3799, }, }, Expr: &ast.ExprVariable{ @@ -11138,8 +10823,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4113, - EndPos: 4115, + StartPos: 3797, + EndPos: 3799, }, }, VarName: &ast.Identifier{ @@ -11147,8 +10832,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 188, EndLine: 188, - StartPos: 4113, - EndPos: 4115, + StartPos: 3797, + EndPos: 3799, }, }, Value: []byte("$a"), @@ -11161,8 +10846,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4119, - EndPos: 4132, + StartPos: 3801, + EndPos: 3814, }, }, Expr: &ast.ExprClosure{ @@ -11170,13 +10855,11 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 189, EndLine: 189, - StartPos: 4119, - EndPos: 4131, + StartPos: 3801, + EndPos: 3813, }, }, - ReturnsRef: false, - Static: false, - Stmts: []ast.Vertex{}, + Stmts: []ast.Vertex{}, }, }, &ast.StmtExpression{ @@ -11184,8 +10867,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4135, - EndPos: 4169, + StartPos: 3815, + EndPos: 3849, }, }, Expr: &ast.ExprClosure{ @@ -11193,31 +10876,27 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4135, - EndPos: 4168, + StartPos: 3815, + EndPos: 3848, }, }, - Static: false, - ReturnsRef: false, Params: []ast.Vertex{ &ast.Parameter{ Node: ast.Node{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4144, - EndPos: 4146, + StartPos: 3824, + EndPos: 3826, }, }, - ByRef: false, - Variadic: false, Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4144, - EndPos: 4146, + StartPos: 3824, + EndPos: 3826, }, }, VarName: &ast.Identifier{ @@ -11225,8 +10904,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4144, - EndPos: 4146, + StartPos: 3824, + EndPos: 3826, }, }, Value: []byte("$a"), @@ -11238,19 +10917,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4148, - EndPos: 4150, + StartPos: 3828, + EndPos: 3830, }, }, - ByRef: false, - Variadic: false, Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4148, - EndPos: 4150, + StartPos: 3828, + EndPos: 3830, }, }, VarName: &ast.Identifier{ @@ -11258,8 +10935,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4148, - EndPos: 4150, + StartPos: 3828, + EndPos: 3830, }, }, Value: []byte("$b"), @@ -11272,8 +10949,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4152, - EndPos: 4165, + StartPos: 3832, + EndPos: 3845, }, }, Uses: []ast.Vertex{ @@ -11282,8 +10959,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4157, - EndPos: 4159, + StartPos: 3837, + EndPos: 3839, }, }, VarName: &ast.Identifier{ @@ -11291,8 +10968,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4157, - EndPos: 4159, + StartPos: 3837, + EndPos: 3839, }, }, Value: []byte("$c"), @@ -11303,8 +10980,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4161, - EndPos: 4164, + StartPos: 3841, + EndPos: 3844, }, }, Var: &ast.ExprVariable{ @@ -11312,8 +10989,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4162, - EndPos: 4164, + StartPos: 3842, + EndPos: 3844, }, }, VarName: &ast.Identifier{ @@ -11321,8 +10998,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 190, EndLine: 190, - StartPos: 4162, - EndPos: 4164, + StartPos: 3842, + EndPos: 3844, }, }, Value: []byte("$d"), @@ -11339,8 +11016,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4172, - EndPos: 4192, + StartPos: 3850, + EndPos: 3870, }, }, Expr: &ast.ExprClosure{ @@ -11348,19 +11025,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4172, - EndPos: 4191, + StartPos: 3850, + EndPos: 3869, }, }, - ReturnsRef: false, - Static: false, ReturnType: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4184, - EndPos: 4188, + StartPos: 3862, + EndPos: 3866, }, }, Parts: []ast.Vertex{ @@ -11369,8 +11044,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 191, EndLine: 191, - StartPos: 4184, - EndPos: 4188, + StartPos: 3862, + EndPos: 3866, }, }, Value: []byte("void"), @@ -11385,8 +11060,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4195, - EndPos: 4199, + StartPos: 3871, + EndPos: 3875, }, }, Expr: &ast.ExprConstFetch{ @@ -11394,8 +11069,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4195, - EndPos: 4198, + StartPos: 3871, + EndPos: 3874, }, }, Const: &ast.NameName{ @@ -11403,8 +11078,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4195, - EndPos: 4198, + StartPos: 3871, + EndPos: 3874, }, }, Parts: []ast.Vertex{ @@ -11413,8 +11088,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 192, EndLine: 192, - StartPos: 4195, - EndPos: 4198, + StartPos: 3871, + EndPos: 3874, }, }, Value: []byte("foo"), @@ -11428,8 +11103,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4202, - EndPos: 4216, + StartPos: 3876, + EndPos: 3890, }, }, Expr: &ast.ExprConstFetch{ @@ -11437,8 +11112,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4202, - EndPos: 4215, + StartPos: 3876, + EndPos: 3889, }, }, Const: &ast.NameRelative{ @@ -11446,8 +11121,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4202, - EndPos: 4215, + StartPos: 3876, + EndPos: 3889, }, }, Parts: []ast.Vertex{ @@ -11456,8 +11131,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 193, EndLine: 193, - StartPos: 4212, - EndPos: 4215, + StartPos: 3886, + EndPos: 3889, }, }, Value: []byte("foo"), @@ -11471,8 +11146,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4219, - EndPos: 4224, + StartPos: 3891, + EndPos: 3896, }, }, Expr: &ast.ExprConstFetch{ @@ -11480,8 +11155,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4219, - EndPos: 4223, + StartPos: 3891, + EndPos: 3895, }, }, Const: &ast.NameFullyQualified{ @@ -11489,8 +11164,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4219, - EndPos: 4223, + StartPos: 3891, + EndPos: 3895, }, }, Parts: []ast.Vertex{ @@ -11499,8 +11174,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 194, EndLine: 194, - StartPos: 4220, - EndPos: 4223, + StartPos: 3892, + EndPos: 3895, }, }, Value: []byte("foo"), @@ -11514,8 +11189,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4228, - EndPos: 4238, + StartPos: 3898, + EndPos: 3908, }, }, Expr: &ast.ExprEmpty{ @@ -11523,8 +11198,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4228, - EndPos: 4237, + StartPos: 3898, + EndPos: 3907, }, }, Expr: &ast.ExprVariable{ @@ -11532,8 +11207,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4234, - EndPos: 4236, + StartPos: 3904, + EndPos: 3906, }, }, VarName: &ast.Identifier{ @@ -11541,8 +11216,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 196, EndLine: 196, - StartPos: 4234, - EndPos: 4236, + StartPos: 3904, + EndPos: 3906, }, }, Value: []byte("$a"), @@ -11555,8 +11230,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4241, - EndPos: 4245, + StartPos: 3909, + EndPos: 3913, }, }, Expr: &ast.ExprErrorSuppress{ @@ -11564,8 +11239,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4241, - EndPos: 4244, + StartPos: 3909, + EndPos: 3912, }, }, Expr: &ast.ExprVariable{ @@ -11573,8 +11248,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4242, - EndPos: 4244, + StartPos: 3910, + EndPos: 3912, }, }, VarName: &ast.Identifier{ @@ -11582,8 +11257,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 197, EndLine: 197, - StartPos: 4242, - EndPos: 4244, + StartPos: 3910, + EndPos: 3912, }, }, Value: []byte("$a"), @@ -11596,8 +11271,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4248, - EndPos: 4257, + StartPos: 3914, + EndPos: 3923, }, }, Expr: &ast.ExprEval{ @@ -11605,8 +11280,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4248, - EndPos: 4256, + StartPos: 3914, + EndPos: 3922, }, }, Expr: &ast.ExprVariable{ @@ -11614,8 +11289,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4253, - EndPos: 4255, + StartPos: 3919, + EndPos: 3921, }, }, VarName: &ast.Identifier{ @@ -11623,8 +11298,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 198, EndLine: 198, - StartPos: 4253, - EndPos: 4255, + StartPos: 3919, + EndPos: 3921, }, }, Value: []byte("$a"), @@ -11637,8 +11312,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4260, - EndPos: 4265, + StartPos: 3924, + EndPos: 3929, }, }, Expr: &ast.ExprExit{ @@ -11646,11 +11321,10 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 199, EndLine: 199, - StartPos: 4260, - EndPos: 4264, + StartPos: 3924, + EndPos: 3928, }, }, - Die: false, }, }, &ast.StmtExpression{ @@ -11658,8 +11332,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4268, - EndPos: 4277, + StartPos: 3930, + EndPos: 3939, }, }, Expr: &ast.ExprExit{ @@ -11667,18 +11341,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4268, - EndPos: 4276, + StartPos: 3930, + EndPos: 3938, }, }, - Die: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4273, - EndPos: 4275, + StartPos: 3935, + EndPos: 3937, }, }, VarName: &ast.Identifier{ @@ -11686,8 +11359,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 200, EndLine: 200, - StartPos: 4273, - EndPos: 4275, + StartPos: 3935, + EndPos: 3937, }, }, Value: []byte("$a"), @@ -11700,8 +11373,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4280, - EndPos: 4284, + StartPos: 3940, + EndPos: 3944, }, }, Expr: &ast.ExprExit{ @@ -11709,8 +11382,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 201, EndLine: 201, - StartPos: 4280, - EndPos: 4283, + StartPos: 3940, + EndPos: 3943, }, }, Die: true, @@ -11721,8 +11394,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4287, - EndPos: 4295, + StartPos: 3945, + EndPos: 3953, }, }, Expr: &ast.ExprExit{ @@ -11730,8 +11403,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4287, - EndPos: 4294, + StartPos: 3945, + EndPos: 3952, }, }, Die: true, @@ -11740,8 +11413,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4291, - EndPos: 4293, + StartPos: 3949, + EndPos: 3951, }, }, VarName: &ast.Identifier{ @@ -11749,8 +11422,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 202, EndLine: 202, - StartPos: 4291, - EndPos: 4293, + StartPos: 3949, + EndPos: 3951, }, }, Value: []byte("$a"), @@ -11763,8 +11436,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4298, - EndPos: 4304, + StartPos: 3954, + EndPos: 3960, }, }, Expr: &ast.ExprFunctionCall{ @@ -11772,8 +11445,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4298, - EndPos: 4303, + StartPos: 3954, + EndPos: 3959, }, }, Function: &ast.NameName{ @@ -11781,8 +11454,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4298, - EndPos: 4301, + StartPos: 3954, + EndPos: 3957, }, }, Parts: []ast.Vertex{ @@ -11791,8 +11464,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4298, - EndPos: 4301, + StartPos: 3954, + EndPos: 3957, }, }, Value: []byte("foo"), @@ -11804,8 +11477,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 203, EndLine: 203, - StartPos: 4301, - EndPos: 4303, + StartPos: 3957, + EndPos: 3959, }, }, }, @@ -11816,8 +11489,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4307, - EndPos: 4323, + StartPos: 3961, + EndPos: 3977, }, }, Expr: &ast.ExprFunctionCall{ @@ -11825,8 +11498,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4307, - EndPos: 4322, + StartPos: 3961, + EndPos: 3976, }, }, Function: &ast.NameRelative{ @@ -11834,8 +11507,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4307, - EndPos: 4320, + StartPos: 3961, + EndPos: 3974, }, }, Parts: []ast.Vertex{ @@ -11844,8 +11517,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4317, - EndPos: 4320, + StartPos: 3971, + EndPos: 3974, }, }, Value: []byte("foo"), @@ -11857,8 +11530,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 204, EndLine: 204, - StartPos: 4320, - EndPos: 4322, + StartPos: 3974, + EndPos: 3976, }, }, }, @@ -11869,8 +11542,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4326, - EndPos: 4333, + StartPos: 3978, + EndPos: 3985, }, }, Expr: &ast.ExprFunctionCall{ @@ -11878,8 +11551,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4326, - EndPos: 4332, + StartPos: 3978, + EndPos: 3984, }, }, Function: &ast.NameFullyQualified{ @@ -11887,8 +11560,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4326, - EndPos: 4330, + StartPos: 3978, + EndPos: 3982, }, }, Parts: []ast.Vertex{ @@ -11897,8 +11570,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4327, - EndPos: 4330, + StartPos: 3979, + EndPos: 3982, }, }, Value: []byte("foo"), @@ -11910,8 +11583,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 205, EndLine: 205, - StartPos: 4330, - EndPos: 4332, + StartPos: 3982, + EndPos: 3984, }, }, }, @@ -11922,8 +11595,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4336, - EndPos: 4343, + StartPos: 3986, + EndPos: 3993, }, }, Expr: &ast.ExprFunctionCall{ @@ -11931,8 +11604,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4336, - EndPos: 4342, + StartPos: 3986, + EndPos: 3992, }, }, Function: &ast.ExprVariable{ @@ -11940,8 +11613,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4336, - EndPos: 4340, + StartPos: 3986, + EndPos: 3990, }, }, VarName: &ast.Identifier{ @@ -11949,8 +11622,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4336, - EndPos: 4340, + StartPos: 3986, + EndPos: 3990, }, }, Value: []byte("$foo"), @@ -11961,8 +11634,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 206, EndLine: 206, - StartPos: 4340, - EndPos: 4342, + StartPos: 3990, + EndPos: 3992, }, }, }, @@ -11973,8 +11646,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4347, - EndPos: 4352, + StartPos: 3995, + EndPos: 4000, }, }, Expr: &ast.ExprPostDec{ @@ -11982,8 +11655,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4347, - EndPos: 4351, + StartPos: 3995, + EndPos: 3999, }, }, Var: &ast.ExprVariable{ @@ -11991,8 +11664,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4347, - EndPos: 4349, + StartPos: 3995, + EndPos: 3997, }, }, VarName: &ast.Identifier{ @@ -12000,8 +11673,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 208, EndLine: 208, - StartPos: 4347, - EndPos: 4349, + StartPos: 3995, + EndPos: 3997, }, }, Value: []byte("$a"), @@ -12014,8 +11687,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4355, - EndPos: 4360, + StartPos: 4001, + EndPos: 4006, }, }, Expr: &ast.ExprPostInc{ @@ -12023,8 +11696,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4355, - EndPos: 4359, + StartPos: 4001, + EndPos: 4005, }, }, Var: &ast.ExprVariable{ @@ -12032,8 +11705,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4355, - EndPos: 4357, + StartPos: 4001, + EndPos: 4003, }, }, VarName: &ast.Identifier{ @@ -12041,8 +11714,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 209, EndLine: 209, - StartPos: 4355, - EndPos: 4357, + StartPos: 4001, + EndPos: 4003, }, }, Value: []byte("$a"), @@ -12055,8 +11728,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4363, - EndPos: 4368, + StartPos: 4007, + EndPos: 4012, }, }, Expr: &ast.ExprPreDec{ @@ -12064,8 +11737,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4363, - EndPos: 4367, + StartPos: 4007, + EndPos: 4011, }, }, Var: &ast.ExprVariable{ @@ -12073,8 +11746,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4365, - EndPos: 4367, + StartPos: 4009, + EndPos: 4011, }, }, VarName: &ast.Identifier{ @@ -12082,8 +11755,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 210, EndLine: 210, - StartPos: 4365, - EndPos: 4367, + StartPos: 4009, + EndPos: 4011, }, }, Value: []byte("$a"), @@ -12096,8 +11769,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4371, - EndPos: 4376, + StartPos: 4013, + EndPos: 4018, }, }, Expr: &ast.ExprPreInc{ @@ -12105,8 +11778,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4371, - EndPos: 4375, + StartPos: 4013, + EndPos: 4017, }, }, Var: &ast.ExprVariable{ @@ -12114,8 +11787,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4373, - EndPos: 4375, + StartPos: 4015, + EndPos: 4017, }, }, VarName: &ast.Identifier{ @@ -12123,8 +11796,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 211, EndLine: 211, - StartPos: 4373, - EndPos: 4375, + StartPos: 4015, + EndPos: 4017, }, }, Value: []byte("$a"), @@ -12137,8 +11810,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4380, - EndPos: 4391, + StartPos: 4020, + EndPos: 4031, }, }, Expr: &ast.ExprInclude{ @@ -12146,8 +11819,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4380, - EndPos: 4390, + StartPos: 4020, + EndPos: 4030, }, }, Expr: &ast.ExprVariable{ @@ -12155,8 +11828,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4388, - EndPos: 4390, + StartPos: 4028, + EndPos: 4030, }, }, VarName: &ast.Identifier{ @@ -12164,8 +11837,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 213, EndLine: 213, - StartPos: 4388, - EndPos: 4390, + StartPos: 4028, + EndPos: 4030, }, }, Value: []byte("$a"), @@ -12178,8 +11851,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4394, - EndPos: 4410, + StartPos: 4032, + EndPos: 4048, }, }, Expr: &ast.ExprIncludeOnce{ @@ -12187,8 +11860,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4394, - EndPos: 4409, + StartPos: 4032, + EndPos: 4047, }, }, Expr: &ast.ExprVariable{ @@ -12196,8 +11869,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4407, - EndPos: 4409, + StartPos: 4045, + EndPos: 4047, }, }, VarName: &ast.Identifier{ @@ -12205,8 +11878,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 214, EndLine: 214, - StartPos: 4407, - EndPos: 4409, + StartPos: 4045, + EndPos: 4047, }, }, Value: []byte("$a"), @@ -12219,8 +11892,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4413, - EndPos: 4424, + StartPos: 4049, + EndPos: 4060, }, }, Expr: &ast.ExprRequire{ @@ -12228,8 +11901,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4413, - EndPos: 4423, + StartPos: 4049, + EndPos: 4059, }, }, Expr: &ast.ExprVariable{ @@ -12237,8 +11910,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4421, - EndPos: 4423, + StartPos: 4057, + EndPos: 4059, }, }, VarName: &ast.Identifier{ @@ -12246,8 +11919,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 215, EndLine: 215, - StartPos: 4421, - EndPos: 4423, + StartPos: 4057, + EndPos: 4059, }, }, Value: []byte("$a"), @@ -12260,8 +11933,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4427, - EndPos: 4443, + StartPos: 4061, + EndPos: 4077, }, }, Expr: &ast.ExprRequireOnce{ @@ -12269,8 +11942,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4427, - EndPos: 4442, + StartPos: 4061, + EndPos: 4076, }, }, Expr: &ast.ExprVariable{ @@ -12278,8 +11951,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4440, - EndPos: 4442, + StartPos: 4074, + EndPos: 4076, }, }, VarName: &ast.Identifier{ @@ -12287,8 +11960,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 216, EndLine: 216, - StartPos: 4440, - EndPos: 4442, + StartPos: 4074, + EndPos: 4076, }, }, Value: []byte("$a"), @@ -12301,8 +11974,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4447, - EndPos: 4465, + StartPos: 4079, + EndPos: 4097, }, }, Expr: &ast.ExprInstanceOf{ @@ -12310,8 +11983,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4447, - EndPos: 4464, + StartPos: 4079, + EndPos: 4096, }, }, Expr: &ast.ExprVariable{ @@ -12319,8 +11992,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4447, - EndPos: 4449, + StartPos: 4079, + EndPos: 4081, }, }, VarName: &ast.Identifier{ @@ -12328,8 +12001,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4447, - EndPos: 4449, + StartPos: 4079, + EndPos: 4081, }, }, Value: []byte("$a"), @@ -12340,8 +12013,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4461, - EndPos: 4464, + StartPos: 4093, + EndPos: 4096, }, }, Parts: []ast.Vertex{ @@ -12350,8 +12023,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 218, EndLine: 218, - StartPos: 4461, - EndPos: 4464, + StartPos: 4093, + EndPos: 4096, }, }, Value: []byte("Foo"), @@ -12365,8 +12038,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4468, - EndPos: 4496, + StartPos: 4098, + EndPos: 4126, }, }, Expr: &ast.ExprInstanceOf{ @@ -12374,8 +12047,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4468, - EndPos: 4495, + StartPos: 4098, + EndPos: 4125, }, }, Expr: &ast.ExprVariable{ @@ -12383,8 +12056,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4468, - EndPos: 4470, + StartPos: 4098, + EndPos: 4100, }, }, VarName: &ast.Identifier{ @@ -12392,8 +12065,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4468, - EndPos: 4470, + StartPos: 4098, + EndPos: 4100, }, }, Value: []byte("$a"), @@ -12404,8 +12077,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4482, - EndPos: 4495, + StartPos: 4112, + EndPos: 4125, }, }, Parts: []ast.Vertex{ @@ -12414,8 +12087,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 219, EndLine: 219, - StartPos: 4492, - EndPos: 4495, + StartPos: 4122, + EndPos: 4125, }, }, Value: []byte("Foo"), @@ -12429,8 +12102,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4499, - EndPos: 4518, + StartPos: 4127, + EndPos: 4146, }, }, Expr: &ast.ExprInstanceOf{ @@ -12438,8 +12111,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4499, - EndPos: 4517, + StartPos: 4127, + EndPos: 4145, }, }, Expr: &ast.ExprVariable{ @@ -12447,8 +12120,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4499, - EndPos: 4501, + StartPos: 4127, + EndPos: 4129, }, }, VarName: &ast.Identifier{ @@ -12456,8 +12129,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4499, - EndPos: 4501, + StartPos: 4127, + EndPos: 4129, }, }, Value: []byte("$a"), @@ -12468,8 +12141,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4513, - EndPos: 4517, + StartPos: 4141, + EndPos: 4145, }, }, Parts: []ast.Vertex{ @@ -12478,8 +12151,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 220, EndLine: 220, - StartPos: 4514, - EndPos: 4517, + StartPos: 4142, + EndPos: 4145, }, }, Value: []byte("Foo"), @@ -12493,8 +12166,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4522, - EndPos: 4536, + StartPos: 4148, + EndPos: 4162, }, }, Expr: &ast.ExprIsset{ @@ -12502,8 +12175,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4522, - EndPos: 4535, + StartPos: 4148, + EndPos: 4161, }, }, Vars: []ast.Vertex{ @@ -12512,8 +12185,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4528, - EndPos: 4530, + StartPos: 4154, + EndPos: 4156, }, }, VarName: &ast.Identifier{ @@ -12521,8 +12194,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4528, - EndPos: 4530, + StartPos: 4154, + EndPos: 4156, }, }, Value: []byte("$a"), @@ -12533,8 +12206,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4532, - EndPos: 4534, + StartPos: 4158, + EndPos: 4160, }, }, VarName: &ast.Identifier{ @@ -12542,8 +12215,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 222, EndLine: 222, - StartPos: 4532, - EndPos: 4534, + StartPos: 4158, + EndPos: 4160, }, }, Value: []byte("$b"), @@ -12557,8 +12230,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4539, - EndPos: 4553, + StartPos: 4163, + EndPos: 4177, }, }, Expr: &ast.ExprAssign{ @@ -12566,8 +12239,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4539, - EndPos: 4552, + StartPos: 4163, + EndPos: 4176, }, }, Var: &ast.ExprList{ @@ -12575,8 +12248,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4539, - EndPos: 4547, + StartPos: 4163, + EndPos: 4171, }, }, Items: []ast.Vertex{ @@ -12585,8 +12258,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4544, - EndPos: 4546, + StartPos: 4168, + EndPos: 4170, }, }, Val: &ast.ExprVariable{ @@ -12594,8 +12267,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4544, - EndPos: 4546, + StartPos: 4168, + EndPos: 4170, }, }, VarName: &ast.Identifier{ @@ -12603,8 +12276,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4544, - EndPos: 4546, + StartPos: 4168, + EndPos: 4170, }, }, Value: []byte("$a"), @@ -12618,8 +12291,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4550, - EndPos: 4552, + StartPos: 4174, + EndPos: 4176, }, }, VarName: &ast.Identifier{ @@ -12627,8 +12300,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 223, EndLine: 223, - StartPos: 4550, - EndPos: 4552, + StartPos: 4174, + EndPos: 4176, }, }, Value: []byte("$b"), @@ -12641,8 +12314,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4556, - EndPos: 4572, + StartPos: 4178, + EndPos: 4194, }, }, Expr: &ast.ExprAssign{ @@ -12650,8 +12323,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4556, - EndPos: 4571, + StartPos: 4178, + EndPos: 4193, }, }, Var: &ast.ExprList{ @@ -12659,8 +12332,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4556, - EndPos: 4566, + StartPos: 4178, + EndPos: 4188, }, }, Items: []ast.Vertex{ @@ -12669,8 +12342,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4561, - EndPos: 4565, + StartPos: 4183, + EndPos: 4187, }, }, Val: &ast.ExprArrayDimFetch{ @@ -12678,8 +12351,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4561, - EndPos: 4565, + StartPos: 4183, + EndPos: 4187, }, }, Var: &ast.ExprVariable{ @@ -12687,8 +12360,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4561, - EndPos: 4563, + StartPos: 4183, + EndPos: 4185, }, }, VarName: &ast.Identifier{ @@ -12696,8 +12369,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4561, - EndPos: 4563, + StartPos: 4183, + EndPos: 4185, }, }, Value: []byte("$a"), @@ -12712,8 +12385,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4569, - EndPos: 4571, + StartPos: 4191, + EndPos: 4193, }, }, VarName: &ast.Identifier{ @@ -12721,8 +12394,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 224, EndLine: 224, - StartPos: 4569, - EndPos: 4571, + StartPos: 4191, + EndPos: 4193, }, }, Value: []byte("$b"), @@ -12735,8 +12408,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4575, - EndPos: 4595, + StartPos: 4195, + EndPos: 4215, }, }, Expr: &ast.ExprAssign{ @@ -12744,8 +12417,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4575, - EndPos: 4594, + StartPos: 4195, + EndPos: 4214, }, }, Var: &ast.ExprList{ @@ -12753,8 +12426,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4575, - EndPos: 4589, + StartPos: 4195, + EndPos: 4209, }, }, Items: []ast.Vertex{ @@ -12763,8 +12436,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4580, - EndPos: 4588, + StartPos: 4200, + EndPos: 4208, }, }, Val: &ast.ExprList{ @@ -12772,8 +12445,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4580, - EndPos: 4588, + StartPos: 4200, + EndPos: 4208, }, }, Items: []ast.Vertex{ @@ -12782,8 +12455,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4585, - EndPos: 4587, + StartPos: 4205, + EndPos: 4207, }, }, Val: &ast.ExprVariable{ @@ -12791,8 +12464,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4585, - EndPos: 4587, + StartPos: 4205, + EndPos: 4207, }, }, VarName: &ast.Identifier{ @@ -12800,8 +12473,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4585, - EndPos: 4587, + StartPos: 4205, + EndPos: 4207, }, }, Value: []byte("$a"), @@ -12818,8 +12491,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4592, - EndPos: 4594, + StartPos: 4212, + EndPos: 4214, }, }, VarName: &ast.Identifier{ @@ -12827,8 +12500,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 225, EndLine: 225, - StartPos: 4592, - EndPos: 4594, + StartPos: 4212, + EndPos: 4214, }, }, Value: []byte("$b"), @@ -12841,8 +12514,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4599, - EndPos: 4609, + StartPos: 4217, + EndPos: 4227, }, }, Expr: &ast.ExprMethodCall{ @@ -12850,8 +12523,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4599, - EndPos: 4608, + StartPos: 4217, + EndPos: 4226, }, }, Var: &ast.ExprVariable{ @@ -12859,8 +12532,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4599, - EndPos: 4601, + StartPos: 4217, + EndPos: 4219, }, }, VarName: &ast.Identifier{ @@ -12868,8 +12541,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4599, - EndPos: 4601, + StartPos: 4217, + EndPos: 4219, }, }, Value: []byte("$a"), @@ -12880,8 +12553,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4603, - EndPos: 4606, + StartPos: 4221, + EndPos: 4224, }, }, Value: []byte("foo"), @@ -12891,8 +12564,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 227, EndLine: 227, - StartPos: 4606, - EndPos: 4608, + StartPos: 4224, + EndPos: 4226, }, }, }, @@ -12903,8 +12576,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4612, - EndPos: 4622, + StartPos: 4228, + EndPos: 4238, }, }, Expr: &ast.ExprNew{ @@ -12912,8 +12585,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4612, - EndPos: 4621, + StartPos: 4228, + EndPos: 4237, }, }, Class: &ast.NameName{ @@ -12921,8 +12594,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4616, - EndPos: 4619, + StartPos: 4232, + EndPos: 4235, }, }, Parts: []ast.Vertex{ @@ -12931,8 +12604,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4616, - EndPos: 4619, + StartPos: 4232, + EndPos: 4235, }, }, Value: []byte("Foo"), @@ -12944,8 +12617,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 228, EndLine: 228, - StartPos: 4619, - EndPos: 4621, + StartPos: 4235, + EndPos: 4237, }, }, }, @@ -12956,8 +12629,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4625, - EndPos: 4645, + StartPos: 4239, + EndPos: 4259, }, }, Expr: &ast.ExprNew{ @@ -12965,8 +12638,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4625, - EndPos: 4644, + StartPos: 4239, + EndPos: 4258, }, }, Class: &ast.NameRelative{ @@ -12974,8 +12647,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4629, - EndPos: 4642, + StartPos: 4243, + EndPos: 4256, }, }, Parts: []ast.Vertex{ @@ -12984,8 +12657,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4639, - EndPos: 4642, + StartPos: 4253, + EndPos: 4256, }, }, Value: []byte("Foo"), @@ -12997,8 +12670,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 229, EndLine: 229, - StartPos: 4642, - EndPos: 4644, + StartPos: 4256, + EndPos: 4258, }, }, }, @@ -13009,8 +12682,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4648, - EndPos: 4659, + StartPos: 4260, + EndPos: 4271, }, }, Expr: &ast.ExprNew{ @@ -13018,8 +12691,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4648, - EndPos: 4658, + StartPos: 4260, + EndPos: 4270, }, }, Class: &ast.NameFullyQualified{ @@ -13027,8 +12700,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4652, - EndPos: 4656, + StartPos: 4264, + EndPos: 4268, }, }, Parts: []ast.Vertex{ @@ -13037,8 +12710,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4653, - EndPos: 4656, + StartPos: 4265, + EndPos: 4268, }, }, Value: []byte("Foo"), @@ -13050,8 +12723,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 230, EndLine: 230, - StartPos: 4656, - EndPos: 4658, + StartPos: 4268, + EndPos: 4270, }, }, }, @@ -13062,8 +12735,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4662, - EndPos: 4687, + StartPos: 4272, + EndPos: 4297, }, }, Expr: &ast.ExprNew{ @@ -13071,8 +12744,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4662, - EndPos: 4686, + StartPos: 4272, + EndPos: 4296, }, }, Class: &ast.StmtClass{ @@ -13080,8 +12753,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4666, - EndPos: 4686, + StartPos: 4276, + EndPos: 4296, }, }, ArgumentList: &ast.ArgumentList{ @@ -13089,8 +12762,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4672, - EndPos: 4683, + StartPos: 4282, + EndPos: 4293, }, }, Arguments: []ast.Vertex{ @@ -13099,19 +12772,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4673, - EndPos: 4675, + StartPos: 4283, + EndPos: 4285, }, }, - IsReference: false, - Variadic: false, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4673, - EndPos: 4675, + StartPos: 4283, + EndPos: 4285, }, }, VarName: &ast.Identifier{ @@ -13119,8 +12790,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4673, - EndPos: 4675, + StartPos: 4283, + EndPos: 4285, }, }, Value: []byte("$a"), @@ -13132,19 +12803,18 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4677, - EndPos: 4682, + StartPos: 4287, + EndPos: 4292, }, }, - IsReference: false, - Variadic: true, + Variadic: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4680, - EndPos: 4682, + StartPos: 4290, + EndPos: 4292, }, }, VarName: &ast.Identifier{ @@ -13152,8 +12822,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 231, EndLine: 231, - StartPos: 4680, - EndPos: 4682, + StartPos: 4290, + EndPos: 4292, }, }, Value: []byte("$b"), @@ -13171,8 +12841,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4690, - EndPos: 4700, + StartPos: 4298, + EndPos: 4308, }, }, Expr: &ast.ExprPrint{ @@ -13180,8 +12850,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4690, - EndPos: 4698, + StartPos: 4298, + EndPos: 4306, }, }, Expr: &ast.ExprVariable{ @@ -13189,8 +12859,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4696, - EndPos: 4698, + StartPos: 4304, + EndPos: 4306, }, }, VarName: &ast.Identifier{ @@ -13198,8 +12868,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 232, EndLine: 232, - StartPos: 4696, - EndPos: 4698, + StartPos: 4304, + EndPos: 4306, }, }, Value: []byte("$a"), @@ -13212,8 +12882,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4703, - EndPos: 4711, + StartPos: 4309, + EndPos: 4317, }, }, Expr: &ast.ExprPropertyFetch{ @@ -13221,8 +12891,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4703, - EndPos: 4710, + StartPos: 4309, + EndPos: 4316, }, }, Var: &ast.ExprVariable{ @@ -13230,8 +12900,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4703, - EndPos: 4705, + StartPos: 4309, + EndPos: 4311, }, }, VarName: &ast.Identifier{ @@ -13239,8 +12909,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4703, - EndPos: 4705, + StartPos: 4309, + EndPos: 4311, }, }, Value: []byte("$a"), @@ -13251,8 +12921,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 233, EndLine: 233, - StartPos: 4707, - EndPos: 4710, + StartPos: 4313, + EndPos: 4316, }, }, Value: []byte("foo"), @@ -13264,8 +12934,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4714, - EndPos: 4723, + StartPos: 4318, + EndPos: 4327, }, }, Expr: &ast.ExprShellExec{ @@ -13273,8 +12943,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4714, - EndPos: 4722, + StartPos: 4318, + EndPos: 4326, }, }, Parts: []ast.Vertex{ @@ -13283,8 +12953,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4715, - EndPos: 4719, + StartPos: 4319, + EndPos: 4323, }, }, Value: []byte("cmd "), @@ -13294,8 +12964,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4719, - EndPos: 4721, + StartPos: 4323, + EndPos: 4325, }, }, VarName: &ast.Identifier{ @@ -13303,8 +12973,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 234, EndLine: 234, - StartPos: 4719, - EndPos: 4721, + StartPos: 4323, + EndPos: 4325, }, }, Value: []byte("$a"), @@ -13318,8 +12988,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4726, - EndPos: 4732, + StartPos: 4328, + EndPos: 4334, }, }, Expr: &ast.ExprShellExec{ @@ -13327,8 +12997,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4726, - EndPos: 4731, + StartPos: 4328, + EndPos: 4333, }, }, Parts: []ast.Vertex{ @@ -13337,8 +13007,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 235, EndLine: 235, - StartPos: 4727, - EndPos: 4730, + StartPos: 4329, + EndPos: 4332, }, }, Value: []byte("cmd"), @@ -13351,8 +13021,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4735, - EndPos: 4738, + StartPos: 4335, + EndPos: 4338, }, }, Expr: &ast.ExprShellExec{ @@ -13360,8 +13030,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 236, EndLine: 236, - StartPos: 4735, - EndPos: 4737, + StartPos: 4335, + EndPos: 4337, }, }, Parts: []ast.Vertex{}, @@ -13372,8 +13042,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4741, - EndPos: 4744, + StartPos: 4339, + EndPos: 4342, }, }, Expr: &ast.ExprShortArray{ @@ -13381,8 +13051,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 237, EndLine: 237, - StartPos: 4741, - EndPos: 4743, + StartPos: 4339, + EndPos: 4341, }, }, Items: []ast.Vertex{}, @@ -13393,8 +13063,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4747, - EndPos: 4751, + StartPos: 4343, + EndPos: 4347, }, }, Expr: &ast.ExprShortArray{ @@ -13402,8 +13072,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4747, - EndPos: 4750, + StartPos: 4343, + EndPos: 4346, }, }, Items: []ast.Vertex{ @@ -13412,8 +13082,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4748, - EndPos: 4749, + StartPos: 4344, + EndPos: 4345, }, }, Val: &ast.ScalarLnumber{ @@ -13421,8 +13091,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 238, EndLine: 238, - StartPos: 4748, - EndPos: 4749, + StartPos: 4344, + EndPos: 4345, }, }, Value: []byte("1"), @@ -13436,8 +13106,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4754, - EndPos: 4767, + StartPos: 4348, + EndPos: 4361, }, }, Expr: &ast.ExprShortArray{ @@ -13445,8 +13115,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4754, - EndPos: 4766, + StartPos: 4348, + EndPos: 4360, }, }, Items: []ast.Vertex{ @@ -13455,8 +13125,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4755, - EndPos: 4759, + StartPos: 4349, + EndPos: 4353, }, }, Key: &ast.ScalarLnumber{ @@ -13464,8 +13134,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4755, - EndPos: 4756, + StartPos: 4349, + EndPos: 4350, }, }, Value: []byte("1"), @@ -13475,8 +13145,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4758, - EndPos: 4759, + StartPos: 4352, + EndPos: 4353, }, }, Value: []byte("1"), @@ -13487,8 +13157,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4761, - EndPos: 4764, + StartPos: 4355, + EndPos: 4358, }, }, Val: &ast.ExprReference{ @@ -13496,8 +13166,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4761, - EndPos: 4764, + StartPos: 4355, + EndPos: 4358, }, }, Var: &ast.ExprVariable{ @@ -13505,8 +13175,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4762, - EndPos: 4764, + StartPos: 4356, + EndPos: 4358, }, }, VarName: &ast.Identifier{ @@ -13514,8 +13184,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 239, EndLine: 239, - StartPos: 4762, - EndPos: 4764, + StartPos: 4356, + EndPos: 4358, }, }, Value: []byte("$b"), @@ -13532,8 +13202,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4771, - EndPos: 4781, + StartPos: 4363, + EndPos: 4373, }, }, Expr: &ast.ExprAssign{ @@ -13541,8 +13211,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4771, - EndPos: 4780, + StartPos: 4363, + EndPos: 4372, }, }, Var: &ast.ExprShortList{ @@ -13550,8 +13220,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4771, - EndPos: 4775, + StartPos: 4363, + EndPos: 4367, }, }, Items: []ast.Vertex{ @@ -13560,8 +13230,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4772, - EndPos: 4774, + StartPos: 4364, + EndPos: 4366, }, }, Val: &ast.ExprVariable{ @@ -13569,8 +13239,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4772, - EndPos: 4774, + StartPos: 4364, + EndPos: 4366, }, }, VarName: &ast.Identifier{ @@ -13578,8 +13248,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4772, - EndPos: 4774, + StartPos: 4364, + EndPos: 4366, }, }, Value: []byte("$a"), @@ -13593,8 +13263,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4778, - EndPos: 4780, + StartPos: 4370, + EndPos: 4372, }, }, VarName: &ast.Identifier{ @@ -13602,8 +13272,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 241, EndLine: 241, - StartPos: 4778, - EndPos: 4780, + StartPos: 4370, + EndPos: 4372, }, }, Value: []byte("$b"), @@ -13616,8 +13286,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4784, - EndPos: 4796, + StartPos: 4374, + EndPos: 4386, }, }, Expr: &ast.ExprAssign{ @@ -13625,8 +13295,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4784, - EndPos: 4795, + StartPos: 4374, + EndPos: 4385, }, }, Var: &ast.ExprShortList{ @@ -13634,8 +13304,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4784, - EndPos: 4790, + StartPos: 4374, + EndPos: 4380, }, }, Items: []ast.Vertex{ @@ -13644,8 +13314,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4785, - EndPos: 4789, + StartPos: 4375, + EndPos: 4379, }, }, Val: &ast.ExprArrayDimFetch{ @@ -13653,8 +13323,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4785, - EndPos: 4789, + StartPos: 4375, + EndPos: 4379, }, }, Var: &ast.ExprVariable{ @@ -13662,8 +13332,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4785, - EndPos: 4787, + StartPos: 4375, + EndPos: 4377, }, }, VarName: &ast.Identifier{ @@ -13671,8 +13341,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4785, - EndPos: 4787, + StartPos: 4375, + EndPos: 4377, }, }, Value: []byte("$a"), @@ -13687,8 +13357,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4793, - EndPos: 4795, + StartPos: 4383, + EndPos: 4385, }, }, VarName: &ast.Identifier{ @@ -13696,8 +13366,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 242, EndLine: 242, - StartPos: 4793, - EndPos: 4795, + StartPos: 4383, + EndPos: 4385, }, }, Value: []byte("$b"), @@ -13710,8 +13380,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4799, - EndPos: 4815, + StartPos: 4387, + EndPos: 4403, }, }, Expr: &ast.ExprAssign{ @@ -13719,8 +13389,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4799, - EndPos: 4814, + StartPos: 4387, + EndPos: 4402, }, }, Var: &ast.ExprShortList{ @@ -13728,8 +13398,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4799, - EndPos: 4809, + StartPos: 4387, + EndPos: 4397, }, }, Items: []ast.Vertex{ @@ -13738,8 +13408,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4800, - EndPos: 4808, + StartPos: 4388, + EndPos: 4396, }, }, Val: &ast.ExprList{ @@ -13747,8 +13417,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4800, - EndPos: 4808, + StartPos: 4388, + EndPos: 4396, }, }, Items: []ast.Vertex{ @@ -13757,8 +13427,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4805, - EndPos: 4807, + StartPos: 4393, + EndPos: 4395, }, }, Val: &ast.ExprVariable{ @@ -13766,8 +13436,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4805, - EndPos: 4807, + StartPos: 4393, + EndPos: 4395, }, }, VarName: &ast.Identifier{ @@ -13775,8 +13445,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4805, - EndPos: 4807, + StartPos: 4393, + EndPos: 4395, }, }, Value: []byte("$a"), @@ -13793,8 +13463,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4812, - EndPos: 4814, + StartPos: 4400, + EndPos: 4402, }, }, VarName: &ast.Identifier{ @@ -13802,8 +13472,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 243, EndLine: 243, - StartPos: 4812, - EndPos: 4814, + StartPos: 4400, + EndPos: 4402, }, }, Value: []byte("$b"), @@ -13816,8 +13486,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4818, - EndPos: 4829, + StartPos: 4404, + EndPos: 4415, }, }, Expr: &ast.ExprStaticCall{ @@ -13825,8 +13495,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4818, - EndPos: 4828, + StartPos: 4404, + EndPos: 4414, }, }, Class: &ast.NameName{ @@ -13834,8 +13504,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4818, - EndPos: 4821, + StartPos: 4404, + EndPos: 4407, }, }, Parts: []ast.Vertex{ @@ -13844,8 +13514,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4818, - EndPos: 4821, + StartPos: 4404, + EndPos: 4407, }, }, Value: []byte("Foo"), @@ -13857,8 +13527,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4823, - EndPos: 4826, + StartPos: 4409, + EndPos: 4412, }, }, Value: []byte("bar"), @@ -13868,8 +13538,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 244, EndLine: 244, - StartPos: 4826, - EndPos: 4828, + StartPos: 4412, + EndPos: 4414, }, }, }, @@ -13880,8 +13550,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4832, - EndPos: 4853, + StartPos: 4416, + EndPos: 4437, }, }, Expr: &ast.ExprStaticCall{ @@ -13889,8 +13559,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4832, - EndPos: 4852, + StartPos: 4416, + EndPos: 4436, }, }, Class: &ast.NameRelative{ @@ -13898,8 +13568,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4832, - EndPos: 4845, + StartPos: 4416, + EndPos: 4429, }, }, Parts: []ast.Vertex{ @@ -13908,8 +13578,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4842, - EndPos: 4845, + StartPos: 4426, + EndPos: 4429, }, }, Value: []byte("Foo"), @@ -13921,8 +13591,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4847, - EndPos: 4850, + StartPos: 4431, + EndPos: 4434, }, }, Value: []byte("bar"), @@ -13932,8 +13602,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 245, EndLine: 245, - StartPos: 4850, - EndPos: 4852, + StartPos: 4434, + EndPos: 4436, }, }, }, @@ -13944,8 +13614,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4856, - EndPos: 4868, + StartPos: 4438, + EndPos: 4450, }, }, Expr: &ast.ExprStaticCall{ @@ -13953,8 +13623,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4856, - EndPos: 4867, + StartPos: 4438, + EndPos: 4449, }, }, Class: &ast.NameFullyQualified{ @@ -13962,8 +13632,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4856, - EndPos: 4860, + StartPos: 4438, + EndPos: 4442, }, }, Parts: []ast.Vertex{ @@ -13972,8 +13642,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4857, - EndPos: 4860, + StartPos: 4439, + EndPos: 4442, }, }, Value: []byte("Foo"), @@ -13985,8 +13655,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4862, - EndPos: 4865, + StartPos: 4444, + EndPos: 4447, }, }, Value: []byte("bar"), @@ -13996,8 +13666,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 246, EndLine: 246, - StartPos: 4865, - EndPos: 4867, + StartPos: 4447, + EndPos: 4449, }, }, }, @@ -14008,8 +13678,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4871, - EndPos: 4881, + StartPos: 4451, + EndPos: 4461, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -14017,8 +13687,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4871, - EndPos: 4880, + StartPos: 4451, + EndPos: 4460, }, }, Class: &ast.NameName{ @@ -14026,8 +13696,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4871, - EndPos: 4874, + StartPos: 4451, + EndPos: 4454, }, }, Parts: []ast.Vertex{ @@ -14036,8 +13706,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4871, - EndPos: 4874, + StartPos: 4451, + EndPos: 4454, }, }, Value: []byte("Foo"), @@ -14049,8 +13719,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4876, - EndPos: 4880, + StartPos: 4456, + EndPos: 4460, }, }, VarName: &ast.Identifier{ @@ -14058,8 +13728,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 247, EndLine: 247, - StartPos: 4876, - EndPos: 4880, + StartPos: 4456, + EndPos: 4460, }, }, Value: []byte("$bar"), @@ -14072,8 +13742,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4884, - EndPos: 4895, + StartPos: 4462, + EndPos: 4473, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -14081,8 +13751,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4884, - EndPos: 4894, + StartPos: 4462, + EndPos: 4472, }, }, Class: &ast.ExprVariable{ @@ -14090,8 +13760,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4884, - EndPos: 4888, + StartPos: 4462, + EndPos: 4466, }, }, VarName: &ast.Identifier{ @@ -14099,8 +13769,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4884, - EndPos: 4888, + StartPos: 4462, + EndPos: 4466, }, }, Value: []byte("$foo"), @@ -14111,8 +13781,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4890, - EndPos: 4894, + StartPos: 4468, + EndPos: 4472, }, }, VarName: &ast.Identifier{ @@ -14120,8 +13790,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 248, EndLine: 248, - StartPos: 4890, - EndPos: 4894, + StartPos: 4468, + EndPos: 4472, }, }, Value: []byte("$bar"), @@ -14134,8 +13804,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4898, - EndPos: 4918, + StartPos: 4474, + EndPos: 4494, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -14143,8 +13813,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4898, - EndPos: 4917, + StartPos: 4474, + EndPos: 4493, }, }, Class: &ast.NameRelative{ @@ -14152,8 +13822,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4898, - EndPos: 4911, + StartPos: 4474, + EndPos: 4487, }, }, Parts: []ast.Vertex{ @@ -14162,8 +13832,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4908, - EndPos: 4911, + StartPos: 4484, + EndPos: 4487, }, }, Value: []byte("Foo"), @@ -14175,8 +13845,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4913, - EndPos: 4917, + StartPos: 4489, + EndPos: 4493, }, }, VarName: &ast.Identifier{ @@ -14184,8 +13854,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 249, EndLine: 249, - StartPos: 4913, - EndPos: 4917, + StartPos: 4489, + EndPos: 4493, }, }, Value: []byte("$bar"), @@ -14198,8 +13868,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4921, - EndPos: 4932, + StartPos: 4495, + EndPos: 4506, }, }, Expr: &ast.ExprStaticPropertyFetch{ @@ -14207,8 +13877,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4921, - EndPos: 4931, + StartPos: 4495, + EndPos: 4505, }, }, Class: &ast.NameFullyQualified{ @@ -14216,8 +13886,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4921, - EndPos: 4925, + StartPos: 4495, + EndPos: 4499, }, }, Parts: []ast.Vertex{ @@ -14226,8 +13896,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4922, - EndPos: 4925, + StartPos: 4496, + EndPos: 4499, }, }, Value: []byte("Foo"), @@ -14239,8 +13909,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4927, - EndPos: 4931, + StartPos: 4501, + EndPos: 4505, }, }, VarName: &ast.Identifier{ @@ -14248,8 +13918,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 250, EndLine: 250, - StartPos: 4927, - EndPos: 4931, + StartPos: 4501, + EndPos: 4505, }, }, Value: []byte("$bar"), @@ -14262,8 +13932,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4935, - EndPos: 4948, + StartPos: 4507, + EndPos: 4520, }, }, Expr: &ast.ExprTernary{ @@ -14271,8 +13941,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4935, - EndPos: 4947, + StartPos: 4507, + EndPos: 4519, }, }, Condition: &ast.ExprVariable{ @@ -14280,8 +13950,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4935, - EndPos: 4937, + StartPos: 4507, + EndPos: 4509, }, }, VarName: &ast.Identifier{ @@ -14289,8 +13959,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4935, - EndPos: 4937, + StartPos: 4507, + EndPos: 4509, }, }, Value: []byte("$a"), @@ -14301,8 +13971,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4940, - EndPos: 4942, + StartPos: 4512, + EndPos: 4514, }, }, VarName: &ast.Identifier{ @@ -14310,8 +13980,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4940, - EndPos: 4942, + StartPos: 4512, + EndPos: 4514, }, }, Value: []byte("$b"), @@ -14322,8 +13992,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4945, - EndPos: 4947, + StartPos: 4517, + EndPos: 4519, }, }, VarName: &ast.Identifier{ @@ -14331,8 +14001,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 251, EndLine: 251, - StartPos: 4945, - EndPos: 4947, + StartPos: 4517, + EndPos: 4519, }, }, Value: []byte("$c"), @@ -14345,8 +14015,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4951, - EndPos: 4961, + StartPos: 4521, + EndPos: 4531, }, }, Expr: &ast.ExprTernary{ @@ -14354,8 +14024,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4951, - EndPos: 4960, + StartPos: 4521, + EndPos: 4530, }, }, Condition: &ast.ExprVariable{ @@ -14363,8 +14033,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4951, - EndPos: 4953, + StartPos: 4521, + EndPos: 4523, }, }, VarName: &ast.Identifier{ @@ -14372,8 +14042,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4951, - EndPos: 4953, + StartPos: 4521, + EndPos: 4523, }, }, Value: []byte("$a"), @@ -14384,8 +14054,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4958, - EndPos: 4960, + StartPos: 4528, + EndPos: 4530, }, }, VarName: &ast.Identifier{ @@ -14393,8 +14063,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 252, EndLine: 252, - StartPos: 4958, - EndPos: 4960, + StartPos: 4528, + EndPos: 4530, }, }, Value: []byte("$c"), @@ -14407,8 +14077,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4964, - EndPos: 4987, + StartPos: 4532, + EndPos: 4555, }, }, Expr: &ast.ExprTernary{ @@ -14416,8 +14086,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4964, - EndPos: 4986, + StartPos: 4532, + EndPos: 4554, }, }, Condition: &ast.ExprVariable{ @@ -14425,8 +14095,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4964, - EndPos: 4966, + StartPos: 4532, + EndPos: 4534, }, }, VarName: &ast.Identifier{ @@ -14434,8 +14104,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4964, - EndPos: 4966, + StartPos: 4532, + EndPos: 4534, }, }, Value: []byte("$a"), @@ -14446,8 +14116,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4969, - EndPos: 4981, + StartPos: 4537, + EndPos: 4549, }, }, Condition: &ast.ExprVariable{ @@ -14455,8 +14125,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4969, - EndPos: 4971, + StartPos: 4537, + EndPos: 4539, }, }, VarName: &ast.Identifier{ @@ -14464,8 +14134,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4969, - EndPos: 4971, + StartPos: 4537, + EndPos: 4539, }, }, Value: []byte("$b"), @@ -14476,8 +14146,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4974, - EndPos: 4976, + StartPos: 4542, + EndPos: 4544, }, }, VarName: &ast.Identifier{ @@ -14485,8 +14155,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4974, - EndPos: 4976, + StartPos: 4542, + EndPos: 4544, }, }, Value: []byte("$c"), @@ -14497,8 +14167,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4979, - EndPos: 4981, + StartPos: 4547, + EndPos: 4549, }, }, VarName: &ast.Identifier{ @@ -14506,8 +14176,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4979, - EndPos: 4981, + StartPos: 4547, + EndPos: 4549, }, }, Value: []byte("$d"), @@ -14519,8 +14189,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4984, - EndPos: 4986, + StartPos: 4552, + EndPos: 4554, }, }, VarName: &ast.Identifier{ @@ -14528,8 +14198,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 253, EndLine: 253, - StartPos: 4984, - EndPos: 4986, + StartPos: 4552, + EndPos: 4554, }, }, Value: []byte("$e"), @@ -14542,8 +14212,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4990, - EndPos: 5013, + StartPos: 4556, + EndPos: 4579, }, }, Expr: &ast.ExprTernary{ @@ -14551,8 +14221,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4990, - EndPos: 5012, + StartPos: 4556, + EndPos: 4578, }, }, Condition: &ast.ExprTernary{ @@ -14560,8 +14230,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4990, - EndPos: 5002, + StartPos: 4556, + EndPos: 4568, }, }, Condition: &ast.ExprVariable{ @@ -14569,8 +14239,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4990, - EndPos: 4992, + StartPos: 4556, + EndPos: 4558, }, }, VarName: &ast.Identifier{ @@ -14578,8 +14248,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4990, - EndPos: 4992, + StartPos: 4556, + EndPos: 4558, }, }, Value: []byte("$a"), @@ -14590,8 +14260,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4995, - EndPos: 4997, + StartPos: 4561, + EndPos: 4563, }, }, VarName: &ast.Identifier{ @@ -14599,8 +14269,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 4995, - EndPos: 4997, + StartPos: 4561, + EndPos: 4563, }, }, Value: []byte("$b"), @@ -14611,8 +14281,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5000, - EndPos: 5002, + StartPos: 4566, + EndPos: 4568, }, }, VarName: &ast.Identifier{ @@ -14620,8 +14290,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5000, - EndPos: 5002, + StartPos: 4566, + EndPos: 4568, }, }, Value: []byte("$c"), @@ -14633,8 +14303,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5005, - EndPos: 5007, + StartPos: 4571, + EndPos: 4573, }, }, VarName: &ast.Identifier{ @@ -14642,8 +14312,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5005, - EndPos: 5007, + StartPos: 4571, + EndPos: 4573, }, }, Value: []byte("$d"), @@ -14654,8 +14324,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5010, - EndPos: 5012, + StartPos: 4576, + EndPos: 4578, }, }, VarName: &ast.Identifier{ @@ -14663,8 +14333,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 254, EndLine: 254, - StartPos: 5010, - EndPos: 5012, + StartPos: 4576, + EndPos: 4578, }, }, Value: []byte("$e"), @@ -14677,8 +14347,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5016, - EndPos: 5020, + StartPos: 4580, + EndPos: 4584, }, }, Expr: &ast.ExprUnaryMinus{ @@ -14686,8 +14356,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5016, - EndPos: 5019, + StartPos: 4580, + EndPos: 4583, }, }, Expr: &ast.ExprVariable{ @@ -14695,8 +14365,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5017, - EndPos: 5019, + StartPos: 4581, + EndPos: 4583, }, }, VarName: &ast.Identifier{ @@ -14704,8 +14374,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 255, EndLine: 255, - StartPos: 5017, - EndPos: 5019, + StartPos: 4581, + EndPos: 4583, }, }, Value: []byte("$a"), @@ -14718,8 +14388,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5023, - EndPos: 5027, + StartPos: 4585, + EndPos: 4589, }, }, Expr: &ast.ExprUnaryPlus{ @@ -14727,8 +14397,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5023, - EndPos: 5026, + StartPos: 4585, + EndPos: 4588, }, }, Expr: &ast.ExprVariable{ @@ -14736,8 +14406,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5024, - EndPos: 5026, + StartPos: 4586, + EndPos: 4588, }, }, VarName: &ast.Identifier{ @@ -14745,8 +14415,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 256, EndLine: 256, - StartPos: 5024, - EndPos: 5026, + StartPos: 4586, + EndPos: 4588, }, }, Value: []byte("$a"), @@ -14759,8 +14429,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5030, - EndPos: 5034, + StartPos: 4590, + EndPos: 4594, }, }, Expr: &ast.ExprVariable{ @@ -14768,8 +14438,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5030, - EndPos: 5033, + StartPos: 4590, + EndPos: 4593, }, }, VarName: &ast.ExprVariable{ @@ -14777,8 +14447,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5031, - EndPos: 5033, + StartPos: 4591, + EndPos: 4593, }, }, VarName: &ast.Identifier{ @@ -14786,8 +14456,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 257, EndLine: 257, - StartPos: 5031, - EndPos: 5033, + StartPos: 4591, + EndPos: 4593, }, }, Value: []byte("$a"), @@ -14800,8 +14470,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5037, - EndPos: 5043, + StartPos: 4595, + EndPos: 4601, }, }, Expr: &ast.ExprYield{ @@ -14809,8 +14479,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 258, EndLine: 258, - StartPos: 5037, - EndPos: 5042, + StartPos: 4595, + EndPos: 4600, }, }, }, @@ -14820,8 +14490,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5046, - EndPos: 5055, + StartPos: 4602, + EndPos: 4611, }, }, Expr: &ast.ExprYield{ @@ -14829,8 +14499,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5046, - EndPos: 5054, + StartPos: 4602, + EndPos: 4610, }, }, Value: &ast.ExprVariable{ @@ -14838,8 +14508,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5052, - EndPos: 5054, + StartPos: 4608, + EndPos: 4610, }, }, VarName: &ast.Identifier{ @@ -14847,8 +14517,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 259, EndLine: 259, - StartPos: 5052, - EndPos: 5054, + StartPos: 4608, + EndPos: 4610, }, }, Value: []byte("$a"), @@ -14861,8 +14531,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5058, - EndPos: 5073, + StartPos: 4612, + EndPos: 4627, }, }, Expr: &ast.ExprYield{ @@ -14870,8 +14540,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5058, - EndPos: 5072, + StartPos: 4612, + EndPos: 4626, }, }, Key: &ast.ExprVariable{ @@ -14879,8 +14549,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5064, - EndPos: 5066, + StartPos: 4618, + EndPos: 4620, }, }, VarName: &ast.Identifier{ @@ -14888,8 +14558,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5064, - EndPos: 5066, + StartPos: 4618, + EndPos: 4620, }, }, Value: []byte("$a"), @@ -14900,8 +14570,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5070, - EndPos: 5072, + StartPos: 4624, + EndPos: 4626, }, }, VarName: &ast.Identifier{ @@ -14909,8 +14579,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 260, EndLine: 260, - StartPos: 5070, - EndPos: 5072, + StartPos: 4624, + EndPos: 4626, }, }, Value: []byte("$b"), @@ -14923,8 +14593,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5076, - EndPos: 5090, + StartPos: 4628, + EndPos: 4642, }, }, Expr: &ast.ExprYieldFrom{ @@ -14932,8 +14602,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5076, - EndPos: 5089, + StartPos: 4628, + EndPos: 4641, }, }, Expr: &ast.ExprVariable{ @@ -14941,8 +14611,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5087, - EndPos: 5089, + StartPos: 4639, + EndPos: 4641, }, }, VarName: &ast.Identifier{ @@ -14950,8 +14620,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 261, EndLine: 261, - StartPos: 5087, - EndPos: 5089, + StartPos: 4639, + EndPos: 4641, }, }, Value: []byte("$a"), @@ -14964,8 +14634,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5096, - EndPos: 5106, + StartPos: 4644, + EndPos: 4654, }, }, Expr: &ast.ExprCastArray{ @@ -14973,8 +14643,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5096, - EndPos: 5105, + StartPos: 4644, + EndPos: 4653, }, }, Expr: &ast.ExprVariable{ @@ -14982,8 +14652,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5103, - EndPos: 5105, + StartPos: 4651, + EndPos: 4653, }, }, VarName: &ast.Identifier{ @@ -14991,8 +14661,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 263, EndLine: 263, - StartPos: 5103, - EndPos: 5105, + StartPos: 4651, + EndPos: 4653, }, }, Value: []byte("$a"), @@ -15005,8 +14675,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5109, - EndPos: 5121, + StartPos: 4655, + EndPos: 4667, }, }, Expr: &ast.ExprCastBool{ @@ -15014,8 +14684,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5109, - EndPos: 5120, + StartPos: 4655, + EndPos: 4666, }, }, Expr: &ast.ExprVariable{ @@ -15023,8 +14693,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5118, - EndPos: 5120, + StartPos: 4664, + EndPos: 4666, }, }, VarName: &ast.Identifier{ @@ -15032,8 +14702,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 264, EndLine: 264, - StartPos: 5118, - EndPos: 5120, + StartPos: 4664, + EndPos: 4666, }, }, Value: []byte("$a"), @@ -15046,8 +14716,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5124, - EndPos: 5133, + StartPos: 4668, + EndPos: 4677, }, }, Expr: &ast.ExprCastBool{ @@ -15055,8 +14725,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5124, - EndPos: 5132, + StartPos: 4668, + EndPos: 4676, }, }, Expr: &ast.ExprVariable{ @@ -15064,8 +14734,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5130, - EndPos: 5132, + StartPos: 4674, + EndPos: 4676, }, }, VarName: &ast.Identifier{ @@ -15073,8 +14743,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 265, EndLine: 265, - StartPos: 5130, - EndPos: 5132, + StartPos: 4674, + EndPos: 4676, }, }, Value: []byte("$a"), @@ -15087,8 +14757,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5136, - EndPos: 5147, + StartPos: 4678, + EndPos: 4689, }, }, Expr: &ast.ExprCastDouble{ @@ -15096,8 +14766,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5136, - EndPos: 5146, + StartPos: 4678, + EndPos: 4688, }, }, Expr: &ast.ExprVariable{ @@ -15105,8 +14775,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5144, - EndPos: 5146, + StartPos: 4686, + EndPos: 4688, }, }, VarName: &ast.Identifier{ @@ -15114,8 +14784,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 266, EndLine: 266, - StartPos: 5144, - EndPos: 5146, + StartPos: 4686, + EndPos: 4688, }, }, Value: []byte("$a"), @@ -15128,8 +14798,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5150, - EndPos: 5160, + StartPos: 4690, + EndPos: 4700, }, }, Expr: &ast.ExprCastDouble{ @@ -15137,8 +14807,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5150, - EndPos: 5159, + StartPos: 4690, + EndPos: 4699, }, }, Expr: &ast.ExprVariable{ @@ -15146,8 +14816,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5157, - EndPos: 5159, + StartPos: 4697, + EndPos: 4699, }, }, VarName: &ast.Identifier{ @@ -15155,8 +14825,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 267, EndLine: 267, - StartPos: 5157, - EndPos: 5159, + StartPos: 4697, + EndPos: 4699, }, }, Value: []byte("$a"), @@ -15169,8 +14839,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5163, - EndPos: 5175, + StartPos: 4701, + EndPos: 4713, }, }, Expr: &ast.ExprCastInt{ @@ -15178,8 +14848,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5163, - EndPos: 5174, + StartPos: 4701, + EndPos: 4712, }, }, Expr: &ast.ExprVariable{ @@ -15187,8 +14857,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5172, - EndPos: 5174, + StartPos: 4710, + EndPos: 4712, }, }, VarName: &ast.Identifier{ @@ -15196,8 +14866,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 268, EndLine: 268, - StartPos: 5172, - EndPos: 5174, + StartPos: 4710, + EndPos: 4712, }, }, Value: []byte("$a"), @@ -15210,8 +14880,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5178, - EndPos: 5186, + StartPos: 4714, + EndPos: 4722, }, }, Expr: &ast.ExprCastInt{ @@ -15219,8 +14889,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5178, - EndPos: 5185, + StartPos: 4714, + EndPos: 4721, }, }, Expr: &ast.ExprVariable{ @@ -15228,8 +14898,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5183, - EndPos: 5185, + StartPos: 4719, + EndPos: 4721, }, }, VarName: &ast.Identifier{ @@ -15237,8 +14907,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 269, EndLine: 269, - StartPos: 5183, - EndPos: 5185, + StartPos: 4719, + EndPos: 4721, }, }, Value: []byte("$a"), @@ -15251,8 +14921,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5189, - EndPos: 5200, + StartPos: 4723, + EndPos: 4734, }, }, Expr: &ast.ExprCastObject{ @@ -15260,8 +14930,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5189, - EndPos: 5199, + StartPos: 4723, + EndPos: 4733, }, }, Expr: &ast.ExprVariable{ @@ -15269,8 +14939,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5197, - EndPos: 5199, + StartPos: 4731, + EndPos: 4733, }, }, VarName: &ast.Identifier{ @@ -15278,8 +14948,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 270, EndLine: 270, - StartPos: 5197, - EndPos: 5199, + StartPos: 4731, + EndPos: 4733, }, }, Value: []byte("$a"), @@ -15292,8 +14962,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5203, - EndPos: 5214, + StartPos: 4735, + EndPos: 4746, }, }, Expr: &ast.ExprCastString{ @@ -15301,8 +14971,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5203, - EndPos: 5213, + StartPos: 4735, + EndPos: 4745, }, }, Expr: &ast.ExprVariable{ @@ -15310,8 +14980,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5211, - EndPos: 5213, + StartPos: 4743, + EndPos: 4745, }, }, VarName: &ast.Identifier{ @@ -15319,8 +14989,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 271, EndLine: 271, - StartPos: 5211, - EndPos: 5213, + StartPos: 4743, + EndPos: 4745, }, }, Value: []byte("$a"), @@ -15333,8 +15003,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5217, - EndPos: 5227, + StartPos: 4747, + EndPos: 4757, }, }, Expr: &ast.ExprCastUnset{ @@ -15342,8 +15012,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5217, - EndPos: 5226, + StartPos: 4747, + EndPos: 4756, }, }, Expr: &ast.ExprVariable{ @@ -15351,8 +15021,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5224, - EndPos: 5226, + StartPos: 4754, + EndPos: 4756, }, }, VarName: &ast.Identifier{ @@ -15360,8 +15030,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 272, EndLine: 272, - StartPos: 5224, - EndPos: 5226, + StartPos: 4754, + EndPos: 4756, }, }, Value: []byte("$a"), @@ -15374,8 +15044,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5231, - EndPos: 5239, + StartPos: 4759, + EndPos: 4767, }, }, Expr: &ast.ExprBinaryBitwiseAnd{ @@ -15383,8 +15053,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5231, - EndPos: 5238, + StartPos: 4759, + EndPos: 4766, }, }, Left: &ast.ExprVariable{ @@ -15392,8 +15062,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5231, - EndPos: 5233, + StartPos: 4759, + EndPos: 4761, }, }, VarName: &ast.Identifier{ @@ -15401,8 +15071,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5231, - EndPos: 5233, + StartPos: 4759, + EndPos: 4761, }, }, Value: []byte("$a"), @@ -15413,8 +15083,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5236, - EndPos: 5238, + StartPos: 4764, + EndPos: 4766, }, }, VarName: &ast.Identifier{ @@ -15422,8 +15092,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 274, EndLine: 274, - StartPos: 5236, - EndPos: 5238, + StartPos: 4764, + EndPos: 4766, }, }, Value: []byte("$b"), @@ -15436,8 +15106,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5242, - EndPos: 5250, + StartPos: 4768, + EndPos: 4776, }, }, Expr: &ast.ExprBinaryBitwiseOr{ @@ -15445,8 +15115,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5242, - EndPos: 5249, + StartPos: 4768, + EndPos: 4775, }, }, Left: &ast.ExprVariable{ @@ -15454,8 +15124,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5242, - EndPos: 5244, + StartPos: 4768, + EndPos: 4770, }, }, VarName: &ast.Identifier{ @@ -15463,8 +15133,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5242, - EndPos: 5244, + StartPos: 4768, + EndPos: 4770, }, }, Value: []byte("$a"), @@ -15475,8 +15145,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5247, - EndPos: 5249, + StartPos: 4773, + EndPos: 4775, }, }, VarName: &ast.Identifier{ @@ -15484,8 +15154,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 275, EndLine: 275, - StartPos: 5247, - EndPos: 5249, + StartPos: 4773, + EndPos: 4775, }, }, Value: []byte("$b"), @@ -15498,8 +15168,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5253, - EndPos: 5261, + StartPos: 4777, + EndPos: 4785, }, }, Expr: &ast.ExprBinaryBitwiseXor{ @@ -15507,8 +15177,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5253, - EndPos: 5260, + StartPos: 4777, + EndPos: 4784, }, }, Left: &ast.ExprVariable{ @@ -15516,8 +15186,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5253, - EndPos: 5255, + StartPos: 4777, + EndPos: 4779, }, }, VarName: &ast.Identifier{ @@ -15525,8 +15195,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5253, - EndPos: 5255, + StartPos: 4777, + EndPos: 4779, }, }, Value: []byte("$a"), @@ -15537,8 +15207,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5258, - EndPos: 5260, + StartPos: 4782, + EndPos: 4784, }, }, VarName: &ast.Identifier{ @@ -15546,8 +15216,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 276, EndLine: 276, - StartPos: 5258, - EndPos: 5260, + StartPos: 4782, + EndPos: 4784, }, }, Value: []byte("$b"), @@ -15560,8 +15230,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5264, - EndPos: 5273, + StartPos: 4786, + EndPos: 4795, }, }, Expr: &ast.ExprBinaryBooleanAnd{ @@ -15569,8 +15239,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5264, - EndPos: 5272, + StartPos: 4786, + EndPos: 4794, }, }, Left: &ast.ExprVariable{ @@ -15578,8 +15248,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5264, - EndPos: 5266, + StartPos: 4786, + EndPos: 4788, }, }, VarName: &ast.Identifier{ @@ -15587,8 +15257,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5264, - EndPos: 5266, + StartPos: 4786, + EndPos: 4788, }, }, Value: []byte("$a"), @@ -15599,8 +15269,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5270, - EndPos: 5272, + StartPos: 4792, + EndPos: 4794, }, }, VarName: &ast.Identifier{ @@ -15608,8 +15278,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 277, EndLine: 277, - StartPos: 5270, - EndPos: 5272, + StartPos: 4792, + EndPos: 4794, }, }, Value: []byte("$b"), @@ -15622,8 +15292,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5276, - EndPos: 5285, + StartPos: 4796, + EndPos: 4805, }, }, Expr: &ast.ExprBinaryBooleanOr{ @@ -15631,8 +15301,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5276, - EndPos: 5284, + StartPos: 4796, + EndPos: 4804, }, }, Left: &ast.ExprVariable{ @@ -15640,8 +15310,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5276, - EndPos: 5278, + StartPos: 4796, + EndPos: 4798, }, }, VarName: &ast.Identifier{ @@ -15649,8 +15319,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5276, - EndPos: 5278, + StartPos: 4796, + EndPos: 4798, }, }, Value: []byte("$a"), @@ -15661,8 +15331,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5282, - EndPos: 5284, + StartPos: 4802, + EndPos: 4804, }, }, VarName: &ast.Identifier{ @@ -15670,8 +15340,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 278, EndLine: 278, - StartPos: 5282, - EndPos: 5284, + StartPos: 4802, + EndPos: 4804, }, }, Value: []byte("$b"), @@ -15684,8 +15354,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5288, - EndPos: 5297, + StartPos: 4806, + EndPos: 4815, }, }, Expr: &ast.ExprBinaryCoalesce{ @@ -15693,8 +15363,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5288, - EndPos: 5296, + StartPos: 4806, + EndPos: 4814, }, }, Left: &ast.ExprVariable{ @@ -15702,8 +15372,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5288, - EndPos: 5290, + StartPos: 4806, + EndPos: 4808, }, }, VarName: &ast.Identifier{ @@ -15711,8 +15381,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5288, - EndPos: 5290, + StartPos: 4806, + EndPos: 4808, }, }, Value: []byte("$a"), @@ -15723,8 +15393,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5294, - EndPos: 5296, + StartPos: 4812, + EndPos: 4814, }, }, VarName: &ast.Identifier{ @@ -15732,8 +15402,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 279, EndLine: 279, - StartPos: 5294, - EndPos: 5296, + StartPos: 4812, + EndPos: 4814, }, }, Value: []byte("$b"), @@ -15746,8 +15416,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5300, - EndPos: 5308, + StartPos: 4816, + EndPos: 4824, }, }, Expr: &ast.ExprBinaryConcat{ @@ -15755,8 +15425,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5300, - EndPos: 5307, + StartPos: 4816, + EndPos: 4823, }, }, Left: &ast.ExprVariable{ @@ -15764,8 +15434,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5300, - EndPos: 5302, + StartPos: 4816, + EndPos: 4818, }, }, VarName: &ast.Identifier{ @@ -15773,8 +15443,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5300, - EndPos: 5302, + StartPos: 4816, + EndPos: 4818, }, }, Value: []byte("$a"), @@ -15785,8 +15455,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5305, - EndPos: 5307, + StartPos: 4821, + EndPos: 4823, }, }, VarName: &ast.Identifier{ @@ -15794,8 +15464,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 280, EndLine: 280, - StartPos: 5305, - EndPos: 5307, + StartPos: 4821, + EndPos: 4823, }, }, Value: []byte("$b"), @@ -15808,8 +15478,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5311, - EndPos: 5319, + StartPos: 4825, + EndPos: 4833, }, }, Expr: &ast.ExprBinaryDiv{ @@ -15817,8 +15487,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5311, - EndPos: 5318, + StartPos: 4825, + EndPos: 4832, }, }, Left: &ast.ExprVariable{ @@ -15826,8 +15496,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5311, - EndPos: 5313, + StartPos: 4825, + EndPos: 4827, }, }, VarName: &ast.Identifier{ @@ -15835,8 +15505,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5311, - EndPos: 5313, + StartPos: 4825, + EndPos: 4827, }, }, Value: []byte("$a"), @@ -15847,8 +15517,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5316, - EndPos: 5318, + StartPos: 4830, + EndPos: 4832, }, }, VarName: &ast.Identifier{ @@ -15856,8 +15526,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 281, EndLine: 281, - StartPos: 5316, - EndPos: 5318, + StartPos: 4830, + EndPos: 4832, }, }, Value: []byte("$b"), @@ -15870,8 +15540,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5322, - EndPos: 5331, + StartPos: 4834, + EndPos: 4843, }, }, Expr: &ast.ExprBinaryEqual{ @@ -15879,8 +15549,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5322, - EndPos: 5330, + StartPos: 4834, + EndPos: 4842, }, }, Left: &ast.ExprVariable{ @@ -15888,8 +15558,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5322, - EndPos: 5324, + StartPos: 4834, + EndPos: 4836, }, }, VarName: &ast.Identifier{ @@ -15897,8 +15567,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5322, - EndPos: 5324, + StartPos: 4834, + EndPos: 4836, }, }, Value: []byte("$a"), @@ -15909,8 +15579,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5328, - EndPos: 5330, + StartPos: 4840, + EndPos: 4842, }, }, VarName: &ast.Identifier{ @@ -15918,8 +15588,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 282, EndLine: 282, - StartPos: 5328, - EndPos: 5330, + StartPos: 4840, + EndPos: 4842, }, }, Value: []byte("$b"), @@ -15932,8 +15602,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5334, - EndPos: 5343, + StartPos: 4844, + EndPos: 4853, }, }, Expr: &ast.ExprBinaryGreaterOrEqual{ @@ -15941,8 +15611,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5334, - EndPos: 5342, + StartPos: 4844, + EndPos: 4852, }, }, Left: &ast.ExprVariable{ @@ -15950,8 +15620,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5334, - EndPos: 5336, + StartPos: 4844, + EndPos: 4846, }, }, VarName: &ast.Identifier{ @@ -15959,8 +15629,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5334, - EndPos: 5336, + StartPos: 4844, + EndPos: 4846, }, }, Value: []byte("$a"), @@ -15971,8 +15641,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5340, - EndPos: 5342, + StartPos: 4850, + EndPos: 4852, }, }, VarName: &ast.Identifier{ @@ -15980,8 +15650,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 283, EndLine: 283, - StartPos: 5340, - EndPos: 5342, + StartPos: 4850, + EndPos: 4852, }, }, Value: []byte("$b"), @@ -15994,8 +15664,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5346, - EndPos: 5354, + StartPos: 4854, + EndPos: 4862, }, }, Expr: &ast.ExprBinaryGreater{ @@ -16003,8 +15673,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5346, - EndPos: 5353, + StartPos: 4854, + EndPos: 4861, }, }, Left: &ast.ExprVariable{ @@ -16012,8 +15682,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5346, - EndPos: 5348, + StartPos: 4854, + EndPos: 4856, }, }, VarName: &ast.Identifier{ @@ -16021,8 +15691,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5346, - EndPos: 5348, + StartPos: 4854, + EndPos: 4856, }, }, Value: []byte("$a"), @@ -16033,8 +15703,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5351, - EndPos: 5353, + StartPos: 4859, + EndPos: 4861, }, }, VarName: &ast.Identifier{ @@ -16042,8 +15712,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 284, EndLine: 284, - StartPos: 5351, - EndPos: 5353, + StartPos: 4859, + EndPos: 4861, }, }, Value: []byte("$b"), @@ -16056,8 +15726,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5357, - EndPos: 5367, + StartPos: 4863, + EndPos: 4873, }, }, Expr: &ast.ExprBinaryIdentical{ @@ -16065,8 +15735,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5357, - EndPos: 5366, + StartPos: 4863, + EndPos: 4872, }, }, Left: &ast.ExprVariable{ @@ -16074,8 +15744,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5357, - EndPos: 5359, + StartPos: 4863, + EndPos: 4865, }, }, VarName: &ast.Identifier{ @@ -16083,8 +15753,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5357, - EndPos: 5359, + StartPos: 4863, + EndPos: 4865, }, }, Value: []byte("$a"), @@ -16095,8 +15765,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5364, - EndPos: 5366, + StartPos: 4870, + EndPos: 4872, }, }, VarName: &ast.Identifier{ @@ -16104,8 +15774,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 285, EndLine: 285, - StartPos: 5364, - EndPos: 5366, + StartPos: 4870, + EndPos: 4872, }, }, Value: []byte("$b"), @@ -16118,8 +15788,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5370, - EndPos: 5380, + StartPos: 4874, + EndPos: 4884, }, }, Expr: &ast.ExprBinaryLogicalAnd{ @@ -16127,8 +15797,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5370, - EndPos: 5379, + StartPos: 4874, + EndPos: 4883, }, }, Left: &ast.ExprVariable{ @@ -16136,8 +15806,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5370, - EndPos: 5372, + StartPos: 4874, + EndPos: 4876, }, }, VarName: &ast.Identifier{ @@ -16145,8 +15815,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5370, - EndPos: 5372, + StartPos: 4874, + EndPos: 4876, }, }, Value: []byte("$a"), @@ -16157,8 +15827,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5377, - EndPos: 5379, + StartPos: 4881, + EndPos: 4883, }, }, VarName: &ast.Identifier{ @@ -16166,8 +15836,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 286, EndLine: 286, - StartPos: 5377, - EndPos: 5379, + StartPos: 4881, + EndPos: 4883, }, }, Value: []byte("$b"), @@ -16180,8 +15850,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5383, - EndPos: 5392, + StartPos: 4885, + EndPos: 4894, }, }, Expr: &ast.ExprBinaryLogicalOr{ @@ -16189,8 +15859,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5383, - EndPos: 5391, + StartPos: 4885, + EndPos: 4893, }, }, Left: &ast.ExprVariable{ @@ -16198,8 +15868,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5383, - EndPos: 5385, + StartPos: 4885, + EndPos: 4887, }, }, VarName: &ast.Identifier{ @@ -16207,8 +15877,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5383, - EndPos: 5385, + StartPos: 4885, + EndPos: 4887, }, }, Value: []byte("$a"), @@ -16219,8 +15889,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5389, - EndPos: 5391, + StartPos: 4891, + EndPos: 4893, }, }, VarName: &ast.Identifier{ @@ -16228,8 +15898,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 287, EndLine: 287, - StartPos: 5389, - EndPos: 5391, + StartPos: 4891, + EndPos: 4893, }, }, Value: []byte("$b"), @@ -16242,8 +15912,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5395, - EndPos: 5405, + StartPos: 4895, + EndPos: 4905, }, }, Expr: &ast.ExprBinaryLogicalXor{ @@ -16251,8 +15921,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5395, - EndPos: 5404, + StartPos: 4895, + EndPos: 4904, }, }, Left: &ast.ExprVariable{ @@ -16260,8 +15930,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5395, - EndPos: 5397, + StartPos: 4895, + EndPos: 4897, }, }, VarName: &ast.Identifier{ @@ -16269,8 +15939,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5395, - EndPos: 5397, + StartPos: 4895, + EndPos: 4897, }, }, Value: []byte("$a"), @@ -16281,8 +15951,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5402, - EndPos: 5404, + StartPos: 4902, + EndPos: 4904, }, }, VarName: &ast.Identifier{ @@ -16290,8 +15960,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 288, EndLine: 288, - StartPos: 5402, - EndPos: 5404, + StartPos: 4902, + EndPos: 4904, }, }, Value: []byte("$b"), @@ -16304,8 +15974,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5408, - EndPos: 5416, + StartPos: 4906, + EndPos: 4914, }, }, Expr: &ast.ExprBinaryMinus{ @@ -16313,8 +15983,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5408, - EndPos: 5415, + StartPos: 4906, + EndPos: 4913, }, }, Left: &ast.ExprVariable{ @@ -16322,8 +15992,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5408, - EndPos: 5410, + StartPos: 4906, + EndPos: 4908, }, }, VarName: &ast.Identifier{ @@ -16331,8 +16001,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5408, - EndPos: 5410, + StartPos: 4906, + EndPos: 4908, }, }, Value: []byte("$a"), @@ -16343,8 +16013,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5413, - EndPos: 5415, + StartPos: 4911, + EndPos: 4913, }, }, VarName: &ast.Identifier{ @@ -16352,8 +16022,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 289, EndLine: 289, - StartPos: 5413, - EndPos: 5415, + StartPos: 4911, + EndPos: 4913, }, }, Value: []byte("$b"), @@ -16366,8 +16036,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5419, - EndPos: 5427, + StartPos: 4915, + EndPos: 4923, }, }, Expr: &ast.ExprBinaryMod{ @@ -16375,8 +16045,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5419, - EndPos: 5426, + StartPos: 4915, + EndPos: 4922, }, }, Left: &ast.ExprVariable{ @@ -16384,8 +16054,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5419, - EndPos: 5421, + StartPos: 4915, + EndPos: 4917, }, }, VarName: &ast.Identifier{ @@ -16393,8 +16063,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5419, - EndPos: 5421, + StartPos: 4915, + EndPos: 4917, }, }, Value: []byte("$a"), @@ -16405,8 +16075,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5424, - EndPos: 5426, + StartPos: 4920, + EndPos: 4922, }, }, VarName: &ast.Identifier{ @@ -16414,8 +16084,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 290, EndLine: 290, - StartPos: 5424, - EndPos: 5426, + StartPos: 4920, + EndPos: 4922, }, }, Value: []byte("$b"), @@ -16428,8 +16098,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5430, - EndPos: 5438, + StartPos: 4924, + EndPos: 4932, }, }, Expr: &ast.ExprBinaryMul{ @@ -16437,8 +16107,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5430, - EndPos: 5437, + StartPos: 4924, + EndPos: 4931, }, }, Left: &ast.ExprVariable{ @@ -16446,8 +16116,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5430, - EndPos: 5432, + StartPos: 4924, + EndPos: 4926, }, }, VarName: &ast.Identifier{ @@ -16455,8 +16125,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5430, - EndPos: 5432, + StartPos: 4924, + EndPos: 4926, }, }, Value: []byte("$a"), @@ -16467,8 +16137,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5435, - EndPos: 5437, + StartPos: 4929, + EndPos: 4931, }, }, VarName: &ast.Identifier{ @@ -16476,8 +16146,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 291, EndLine: 291, - StartPos: 5435, - EndPos: 5437, + StartPos: 4929, + EndPos: 4931, }, }, Value: []byte("$b"), @@ -16490,8 +16160,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5441, - EndPos: 5450, + StartPos: 4933, + EndPos: 4942, }, }, Expr: &ast.ExprBinaryNotEqual{ @@ -16499,8 +16169,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5441, - EndPos: 5449, + StartPos: 4933, + EndPos: 4941, }, }, Left: &ast.ExprVariable{ @@ -16508,8 +16178,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5441, - EndPos: 5443, + StartPos: 4933, + EndPos: 4935, }, }, VarName: &ast.Identifier{ @@ -16517,8 +16187,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5441, - EndPos: 5443, + StartPos: 4933, + EndPos: 4935, }, }, Value: []byte("$a"), @@ -16529,8 +16199,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5447, - EndPos: 5449, + StartPos: 4939, + EndPos: 4941, }, }, VarName: &ast.Identifier{ @@ -16538,8 +16208,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 292, EndLine: 292, - StartPos: 5447, - EndPos: 5449, + StartPos: 4939, + EndPos: 4941, }, }, Value: []byte("$b"), @@ -16552,8 +16222,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5453, - EndPos: 5463, + StartPos: 4943, + EndPos: 4953, }, }, Expr: &ast.ExprBinaryNotIdentical{ @@ -16561,8 +16231,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5453, - EndPos: 5462, + StartPos: 4943, + EndPos: 4952, }, }, Left: &ast.ExprVariable{ @@ -16570,8 +16240,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5453, - EndPos: 5455, + StartPos: 4943, + EndPos: 4945, }, }, VarName: &ast.Identifier{ @@ -16579,8 +16249,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5453, - EndPos: 5455, + StartPos: 4943, + EndPos: 4945, }, }, Value: []byte("$a"), @@ -16591,8 +16261,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5460, - EndPos: 5462, + StartPos: 4950, + EndPos: 4952, }, }, VarName: &ast.Identifier{ @@ -16600,8 +16270,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 293, EndLine: 293, - StartPos: 5460, - EndPos: 5462, + StartPos: 4950, + EndPos: 4952, }, }, Value: []byte("$b"), @@ -16614,8 +16284,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5466, - EndPos: 5474, + StartPos: 4954, + EndPos: 4962, }, }, Expr: &ast.ExprBinaryPlus{ @@ -16623,8 +16293,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5466, - EndPos: 5473, + StartPos: 4954, + EndPos: 4961, }, }, Left: &ast.ExprVariable{ @@ -16632,8 +16302,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5466, - EndPos: 5468, + StartPos: 4954, + EndPos: 4956, }, }, VarName: &ast.Identifier{ @@ -16641,8 +16311,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5466, - EndPos: 5468, + StartPos: 4954, + EndPos: 4956, }, }, Value: []byte("$a"), @@ -16653,8 +16323,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5471, - EndPos: 5473, + StartPos: 4959, + EndPos: 4961, }, }, VarName: &ast.Identifier{ @@ -16662,8 +16332,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 294, EndLine: 294, - StartPos: 5471, - EndPos: 5473, + StartPos: 4959, + EndPos: 4961, }, }, Value: []byte("$b"), @@ -16676,8 +16346,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5477, - EndPos: 5486, + StartPos: 4963, + EndPos: 4972, }, }, Expr: &ast.ExprBinaryPow{ @@ -16685,8 +16355,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5477, - EndPos: 5485, + StartPos: 4963, + EndPos: 4971, }, }, Left: &ast.ExprVariable{ @@ -16694,8 +16364,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5477, - EndPos: 5479, + StartPos: 4963, + EndPos: 4965, }, }, VarName: &ast.Identifier{ @@ -16703,8 +16373,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5477, - EndPos: 5479, + StartPos: 4963, + EndPos: 4965, }, }, Value: []byte("$a"), @@ -16715,8 +16385,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5483, - EndPos: 5485, + StartPos: 4969, + EndPos: 4971, }, }, VarName: &ast.Identifier{ @@ -16724,8 +16394,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 295, EndLine: 295, - StartPos: 5483, - EndPos: 5485, + StartPos: 4969, + EndPos: 4971, }, }, Value: []byte("$b"), @@ -16738,8 +16408,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5489, - EndPos: 5498, + StartPos: 4973, + EndPos: 4982, }, }, Expr: &ast.ExprBinaryShiftLeft{ @@ -16747,8 +16417,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5489, - EndPos: 5497, + StartPos: 4973, + EndPos: 4981, }, }, Left: &ast.ExprVariable{ @@ -16756,8 +16426,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5489, - EndPos: 5491, + StartPos: 4973, + EndPos: 4975, }, }, VarName: &ast.Identifier{ @@ -16765,8 +16435,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5489, - EndPos: 5491, + StartPos: 4973, + EndPos: 4975, }, }, Value: []byte("$a"), @@ -16777,8 +16447,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5495, - EndPos: 5497, + StartPos: 4979, + EndPos: 4981, }, }, VarName: &ast.Identifier{ @@ -16786,8 +16456,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 296, EndLine: 296, - StartPos: 5495, - EndPos: 5497, + StartPos: 4979, + EndPos: 4981, }, }, Value: []byte("$b"), @@ -16800,8 +16470,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5501, - EndPos: 5510, + StartPos: 4983, + EndPos: 4992, }, }, Expr: &ast.ExprBinaryShiftRight{ @@ -16809,8 +16479,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5501, - EndPos: 5509, + StartPos: 4983, + EndPos: 4991, }, }, Left: &ast.ExprVariable{ @@ -16818,8 +16488,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5501, - EndPos: 5503, + StartPos: 4983, + EndPos: 4985, }, }, VarName: &ast.Identifier{ @@ -16827,8 +16497,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5501, - EndPos: 5503, + StartPos: 4983, + EndPos: 4985, }, }, Value: []byte("$a"), @@ -16839,8 +16509,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5507, - EndPos: 5509, + StartPos: 4989, + EndPos: 4991, }, }, VarName: &ast.Identifier{ @@ -16848,8 +16518,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 297, EndLine: 297, - StartPos: 5507, - EndPos: 5509, + StartPos: 4989, + EndPos: 4991, }, }, Value: []byte("$b"), @@ -16862,8 +16532,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5513, - EndPos: 5522, + StartPos: 4993, + EndPos: 5002, }, }, Expr: &ast.ExprBinarySmallerOrEqual{ @@ -16871,8 +16541,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5513, - EndPos: 5521, + StartPos: 4993, + EndPos: 5001, }, }, Left: &ast.ExprVariable{ @@ -16880,8 +16550,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5513, - EndPos: 5515, + StartPos: 4993, + EndPos: 4995, }, }, VarName: &ast.Identifier{ @@ -16889,8 +16559,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5513, - EndPos: 5515, + StartPos: 4993, + EndPos: 4995, }, }, Value: []byte("$a"), @@ -16901,8 +16571,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5519, - EndPos: 5521, + StartPos: 4999, + EndPos: 5001, }, }, VarName: &ast.Identifier{ @@ -16910,8 +16580,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 298, EndLine: 298, - StartPos: 5519, - EndPos: 5521, + StartPos: 4999, + EndPos: 5001, }, }, Value: []byte("$b"), @@ -16924,8 +16594,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5525, - EndPos: 5533, + StartPos: 5003, + EndPos: 5011, }, }, Expr: &ast.ExprBinarySmaller{ @@ -16933,8 +16603,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5525, - EndPos: 5532, + StartPos: 5003, + EndPos: 5010, }, }, Left: &ast.ExprVariable{ @@ -16942,8 +16612,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5525, - EndPos: 5527, + StartPos: 5003, + EndPos: 5005, }, }, VarName: &ast.Identifier{ @@ -16951,8 +16621,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5525, - EndPos: 5527, + StartPos: 5003, + EndPos: 5005, }, }, Value: []byte("$a"), @@ -16963,8 +16633,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5530, - EndPos: 5532, + StartPos: 5008, + EndPos: 5010, }, }, VarName: &ast.Identifier{ @@ -16972,8 +16642,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 299, EndLine: 299, - StartPos: 5530, - EndPos: 5532, + StartPos: 5008, + EndPos: 5010, }, }, Value: []byte("$b"), @@ -16986,8 +16656,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5536, - EndPos: 5546, + StartPos: 5012, + EndPos: 5022, }, }, Expr: &ast.ExprBinarySpaceship{ @@ -16995,8 +16665,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5536, - EndPos: 5545, + StartPos: 5012, + EndPos: 5021, }, }, Left: &ast.ExprVariable{ @@ -17004,8 +16674,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5536, - EndPos: 5538, + StartPos: 5012, + EndPos: 5014, }, }, VarName: &ast.Identifier{ @@ -17013,8 +16683,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5536, - EndPos: 5538, + StartPos: 5012, + EndPos: 5014, }, }, Value: []byte("$a"), @@ -17025,8 +16695,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5543, - EndPos: 5545, + StartPos: 5019, + EndPos: 5021, }, }, VarName: &ast.Identifier{ @@ -17034,8 +16704,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 300, EndLine: 300, - StartPos: 5543, - EndPos: 5545, + StartPos: 5019, + EndPos: 5021, }, }, Value: []byte("$b"), @@ -17048,8 +16718,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5550, - EndPos: 5559, + StartPos: 5024, + EndPos: 5033, }, }, Expr: &ast.ExprAssignReference{ @@ -17057,8 +16727,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5550, - EndPos: 5558, + StartPos: 5024, + EndPos: 5032, }, }, Var: &ast.ExprVariable{ @@ -17066,8 +16736,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5550, - EndPos: 5552, + StartPos: 5024, + EndPos: 5026, }, }, VarName: &ast.Identifier{ @@ -17075,8 +16745,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5550, - EndPos: 5552, + StartPos: 5024, + EndPos: 5026, }, }, Value: []byte("$a"), @@ -17087,8 +16757,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5556, - EndPos: 5558, + StartPos: 5030, + EndPos: 5032, }, }, VarName: &ast.Identifier{ @@ -17096,8 +16766,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 302, EndLine: 302, - StartPos: 5556, - EndPos: 5558, + StartPos: 5030, + EndPos: 5032, }, }, Value: []byte("$b"), @@ -17110,8 +16780,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5562, - EndPos: 5570, + StartPos: 5034, + EndPos: 5042, }, }, Expr: &ast.ExprAssign{ @@ -17119,8 +16789,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5562, - EndPos: 5569, + StartPos: 5034, + EndPos: 5041, }, }, Var: &ast.ExprVariable{ @@ -17128,8 +16798,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5562, - EndPos: 5564, + StartPos: 5034, + EndPos: 5036, }, }, VarName: &ast.Identifier{ @@ -17137,8 +16807,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5562, - EndPos: 5564, + StartPos: 5034, + EndPos: 5036, }, }, Value: []byte("$a"), @@ -17149,8 +16819,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5567, - EndPos: 5569, + StartPos: 5039, + EndPos: 5041, }, }, VarName: &ast.Identifier{ @@ -17158,8 +16828,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 303, EndLine: 303, - StartPos: 5567, - EndPos: 5569, + StartPos: 5039, + EndPos: 5041, }, }, Value: []byte("$b"), @@ -17172,8 +16842,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5573, - EndPos: 5582, + StartPos: 5043, + EndPos: 5052, }, }, Expr: &ast.ExprAssignBitwiseAnd{ @@ -17181,8 +16851,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5573, - EndPos: 5581, + StartPos: 5043, + EndPos: 5051, }, }, Var: &ast.ExprVariable{ @@ -17190,8 +16860,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5573, - EndPos: 5575, + StartPos: 5043, + EndPos: 5045, }, }, VarName: &ast.Identifier{ @@ -17199,8 +16869,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5573, - EndPos: 5575, + StartPos: 5043, + EndPos: 5045, }, }, Value: []byte("$a"), @@ -17211,8 +16881,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5579, - EndPos: 5581, + StartPos: 5049, + EndPos: 5051, }, }, VarName: &ast.Identifier{ @@ -17220,8 +16890,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 304, EndLine: 304, - StartPos: 5579, - EndPos: 5581, + StartPos: 5049, + EndPos: 5051, }, }, Value: []byte("$b"), @@ -17234,8 +16904,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5585, - EndPos: 5594, + StartPos: 5053, + EndPos: 5062, }, }, Expr: &ast.ExprAssignBitwiseOr{ @@ -17243,8 +16913,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5585, - EndPos: 5593, + StartPos: 5053, + EndPos: 5061, }, }, Var: &ast.ExprVariable{ @@ -17252,8 +16922,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5585, - EndPos: 5587, + StartPos: 5053, + EndPos: 5055, }, }, VarName: &ast.Identifier{ @@ -17261,8 +16931,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5585, - EndPos: 5587, + StartPos: 5053, + EndPos: 5055, }, }, Value: []byte("$a"), @@ -17273,8 +16943,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5591, - EndPos: 5593, + StartPos: 5059, + EndPos: 5061, }, }, VarName: &ast.Identifier{ @@ -17282,8 +16952,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 305, EndLine: 305, - StartPos: 5591, - EndPos: 5593, + StartPos: 5059, + EndPos: 5061, }, }, Value: []byte("$b"), @@ -17296,8 +16966,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5597, - EndPos: 5606, + StartPos: 5063, + EndPos: 5072, }, }, Expr: &ast.ExprAssignBitwiseXor{ @@ -17305,8 +16975,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5597, - EndPos: 5605, + StartPos: 5063, + EndPos: 5071, }, }, Var: &ast.ExprVariable{ @@ -17314,8 +16984,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5597, - EndPos: 5599, + StartPos: 5063, + EndPos: 5065, }, }, VarName: &ast.Identifier{ @@ -17323,8 +16993,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5597, - EndPos: 5599, + StartPos: 5063, + EndPos: 5065, }, }, Value: []byte("$a"), @@ -17335,8 +17005,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5603, - EndPos: 5605, + StartPos: 5069, + EndPos: 5071, }, }, VarName: &ast.Identifier{ @@ -17344,8 +17014,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 306, EndLine: 306, - StartPos: 5603, - EndPos: 5605, + StartPos: 5069, + EndPos: 5071, }, }, Value: []byte("$b"), @@ -17358,8 +17028,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5609, - EndPos: 5618, + StartPos: 5073, + EndPos: 5082, }, }, Expr: &ast.ExprAssignConcat{ @@ -17367,8 +17037,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5609, - EndPos: 5617, + StartPos: 5073, + EndPos: 5081, }, }, Var: &ast.ExprVariable{ @@ -17376,8 +17046,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5609, - EndPos: 5611, + StartPos: 5073, + EndPos: 5075, }, }, VarName: &ast.Identifier{ @@ -17385,8 +17055,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5609, - EndPos: 5611, + StartPos: 5073, + EndPos: 5075, }, }, Value: []byte("$a"), @@ -17397,8 +17067,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5615, - EndPos: 5617, + StartPos: 5079, + EndPos: 5081, }, }, VarName: &ast.Identifier{ @@ -17406,8 +17076,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 307, EndLine: 307, - StartPos: 5615, - EndPos: 5617, + StartPos: 5079, + EndPos: 5081, }, }, Value: []byte("$b"), @@ -17420,8 +17090,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5621, - EndPos: 5630, + StartPos: 5083, + EndPos: 5092, }, }, Expr: &ast.ExprAssignDiv{ @@ -17429,8 +17099,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5621, - EndPos: 5629, + StartPos: 5083, + EndPos: 5091, }, }, Var: &ast.ExprVariable{ @@ -17438,8 +17108,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5621, - EndPos: 5623, + StartPos: 5083, + EndPos: 5085, }, }, VarName: &ast.Identifier{ @@ -17447,8 +17117,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5621, - EndPos: 5623, + StartPos: 5083, + EndPos: 5085, }, }, Value: []byte("$a"), @@ -17459,8 +17129,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5627, - EndPos: 5629, + StartPos: 5089, + EndPos: 5091, }, }, VarName: &ast.Identifier{ @@ -17468,8 +17138,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 308, EndLine: 308, - StartPos: 5627, - EndPos: 5629, + StartPos: 5089, + EndPos: 5091, }, }, Value: []byte("$b"), @@ -17482,8 +17152,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5633, - EndPos: 5642, + StartPos: 5093, + EndPos: 5102, }, }, Expr: &ast.ExprAssignMinus{ @@ -17491,8 +17161,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5633, - EndPos: 5641, + StartPos: 5093, + EndPos: 5101, }, }, Var: &ast.ExprVariable{ @@ -17500,8 +17170,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5633, - EndPos: 5635, + StartPos: 5093, + EndPos: 5095, }, }, VarName: &ast.Identifier{ @@ -17509,8 +17179,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5633, - EndPos: 5635, + StartPos: 5093, + EndPos: 5095, }, }, Value: []byte("$a"), @@ -17521,8 +17191,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5639, - EndPos: 5641, + StartPos: 5099, + EndPos: 5101, }, }, VarName: &ast.Identifier{ @@ -17530,8 +17200,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 309, EndLine: 309, - StartPos: 5639, - EndPos: 5641, + StartPos: 5099, + EndPos: 5101, }, }, Value: []byte("$b"), @@ -17544,8 +17214,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5645, - EndPos: 5654, + StartPos: 5103, + EndPos: 5112, }, }, Expr: &ast.ExprAssignMod{ @@ -17553,8 +17223,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5645, - EndPos: 5653, + StartPos: 5103, + EndPos: 5111, }, }, Var: &ast.ExprVariable{ @@ -17562,8 +17232,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5645, - EndPos: 5647, + StartPos: 5103, + EndPos: 5105, }, }, VarName: &ast.Identifier{ @@ -17571,8 +17241,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5645, - EndPos: 5647, + StartPos: 5103, + EndPos: 5105, }, }, Value: []byte("$a"), @@ -17583,8 +17253,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5651, - EndPos: 5653, + StartPos: 5109, + EndPos: 5111, }, }, VarName: &ast.Identifier{ @@ -17592,8 +17262,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 310, EndLine: 310, - StartPos: 5651, - EndPos: 5653, + StartPos: 5109, + EndPos: 5111, }, }, Value: []byte("$b"), @@ -17606,8 +17276,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5657, - EndPos: 5666, + StartPos: 5113, + EndPos: 5122, }, }, Expr: &ast.ExprAssignMul{ @@ -17615,8 +17285,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5657, - EndPos: 5665, + StartPos: 5113, + EndPos: 5121, }, }, Var: &ast.ExprVariable{ @@ -17624,8 +17294,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5657, - EndPos: 5659, + StartPos: 5113, + EndPos: 5115, }, }, VarName: &ast.Identifier{ @@ -17633,8 +17303,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5657, - EndPos: 5659, + StartPos: 5113, + EndPos: 5115, }, }, Value: []byte("$a"), @@ -17645,8 +17315,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5663, - EndPos: 5665, + StartPos: 5119, + EndPos: 5121, }, }, VarName: &ast.Identifier{ @@ -17654,8 +17324,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 311, EndLine: 311, - StartPos: 5663, - EndPos: 5665, + StartPos: 5119, + EndPos: 5121, }, }, Value: []byte("$b"), @@ -17668,8 +17338,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5669, - EndPos: 5678, + StartPos: 5123, + EndPos: 5132, }, }, Expr: &ast.ExprAssignPlus{ @@ -17677,8 +17347,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5669, - EndPos: 5677, + StartPos: 5123, + EndPos: 5131, }, }, Var: &ast.ExprVariable{ @@ -17686,8 +17356,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5669, - EndPos: 5671, + StartPos: 5123, + EndPos: 5125, }, }, VarName: &ast.Identifier{ @@ -17695,8 +17365,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5669, - EndPos: 5671, + StartPos: 5123, + EndPos: 5125, }, }, Value: []byte("$a"), @@ -17707,8 +17377,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5675, - EndPos: 5677, + StartPos: 5129, + EndPos: 5131, }, }, VarName: &ast.Identifier{ @@ -17716,8 +17386,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 312, EndLine: 312, - StartPos: 5675, - EndPos: 5677, + StartPos: 5129, + EndPos: 5131, }, }, Value: []byte("$b"), @@ -17730,8 +17400,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5681, - EndPos: 5691, + StartPos: 5133, + EndPos: 5143, }, }, Expr: &ast.ExprAssignPow{ @@ -17739,8 +17409,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5681, - EndPos: 5690, + StartPos: 5133, + EndPos: 5142, }, }, Var: &ast.ExprVariable{ @@ -17748,8 +17418,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5681, - EndPos: 5683, + StartPos: 5133, + EndPos: 5135, }, }, VarName: &ast.Identifier{ @@ -17757,8 +17427,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5681, - EndPos: 5683, + StartPos: 5133, + EndPos: 5135, }, }, Value: []byte("$a"), @@ -17769,8 +17439,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5688, - EndPos: 5690, + StartPos: 5140, + EndPos: 5142, }, }, VarName: &ast.Identifier{ @@ -17778,8 +17448,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 313, EndLine: 313, - StartPos: 5688, - EndPos: 5690, + StartPos: 5140, + EndPos: 5142, }, }, Value: []byte("$b"), @@ -17792,8 +17462,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5694, - EndPos: 5704, + StartPos: 5144, + EndPos: 5154, }, }, Expr: &ast.ExprAssignShiftLeft{ @@ -17801,8 +17471,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5694, - EndPos: 5703, + StartPos: 5144, + EndPos: 5153, }, }, Var: &ast.ExprVariable{ @@ -17810,8 +17480,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5694, - EndPos: 5696, + StartPos: 5144, + EndPos: 5146, }, }, VarName: &ast.Identifier{ @@ -17819,8 +17489,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5694, - EndPos: 5696, + StartPos: 5144, + EndPos: 5146, }, }, Value: []byte("$a"), @@ -17831,8 +17501,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5701, - EndPos: 5703, + StartPos: 5151, + EndPos: 5153, }, }, VarName: &ast.Identifier{ @@ -17840,8 +17510,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 314, EndLine: 314, - StartPos: 5701, - EndPos: 5703, + StartPos: 5151, + EndPos: 5153, }, }, Value: []byte("$b"), @@ -17854,8 +17524,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5707, - EndPos: 5717, + StartPos: 5155, + EndPos: 5165, }, }, Expr: &ast.ExprAssignShiftRight{ @@ -17863,8 +17533,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5707, - EndPos: 5716, + StartPos: 5155, + EndPos: 5164, }, }, Var: &ast.ExprVariable{ @@ -17872,8 +17542,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5707, - EndPos: 5709, + StartPos: 5155, + EndPos: 5157, }, }, VarName: &ast.Identifier{ @@ -17881,8 +17551,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5707, - EndPos: 5709, + StartPos: 5155, + EndPos: 5157, }, }, Value: []byte("$a"), @@ -17893,8 +17563,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5714, - EndPos: 5716, + StartPos: 5162, + EndPos: 5164, }, }, VarName: &ast.Identifier{ @@ -17902,8 +17572,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 315, EndLine: 315, - StartPos: 5714, - EndPos: 5716, + StartPos: 5162, + EndPos: 5164, }, }, Value: []byte("$b"), @@ -17916,8 +17586,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5721, - EndPos: 5760, + StartPos: 5167, + EndPos: 5206, }, }, ClassName: &ast.Identifier{ @@ -17925,8 +17595,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5727, - EndPos: 5730, + StartPos: 5173, + EndPos: 5176, }, }, Value: []byte("foo"), @@ -17937,18 +17607,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5732, - EndPos: 5758, + StartPos: 5178, + EndPos: 5204, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5748, - EndPos: 5753, + StartPos: 5194, + EndPos: 5199, }, }, Value: []byte("class"), @@ -17959,8 +17628,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5732, - EndPos: 5738, + StartPos: 5178, + EndPos: 5184, }, }, Value: []byte("public"), @@ -17971,8 +17640,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 317, EndLine: 317, - StartPos: 5756, - EndPos: 5758, + StartPos: 5202, + EndPos: 5204, }, }, Stmts: []ast.Vertex{}, @@ -17985,8 +17654,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5763, - EndPos: 5774, + StartPos: 5207, + EndPos: 5218, }, }, Expr: &ast.ExprFunctionCall{ @@ -17994,8 +17663,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5763, - EndPos: 5773, + StartPos: 5207, + EndPos: 5217, }, }, Function: &ast.NameFullyQualified{ @@ -18003,8 +17672,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5763, - EndPos: 5771, + StartPos: 5207, + EndPos: 5215, }, }, Parts: []ast.Vertex{ @@ -18013,8 +17682,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5764, - EndPos: 5767, + StartPos: 5208, + EndPos: 5211, }, }, Value: []byte("foo"), @@ -18024,8 +17693,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5768, - EndPos: 5771, + StartPos: 5212, + EndPos: 5215, }, }, Value: []byte("bar"), @@ -18037,8 +17706,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5771, - EndPos: 5773, + StartPos: 5215, + EndPos: 5217, }, }, }, @@ -18049,18 +17718,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 326, - StartPos: 5778, - EndPos: 5905, + StartPos: 5220, + EndPos: 5328, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5787, - EndPos: 5790, + StartPos: 5229, + EndPos: 5232, }, }, Value: []byte("foo"), @@ -18071,31 +17739,39 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5791, - EndPos: 5794, + StartPos: 5233, + EndPos: 5236, }, }, - ByRef: true, - Variadic: false, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5792, - EndPos: 5794, + StartPos: 5233, + EndPos: 5236, }, }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5792, - EndPos: 5794, + StartPos: 5234, + EndPos: 5236, }, }, - Value: []byte("$a"), + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5234, + EndPos: 5236, + }, + }, + Value: []byte("$a"), + }, }, }, }, @@ -18104,31 +17780,39 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5796, - EndPos: 5801, + StartPos: 5238, + EndPos: 5243, }, }, - ByRef: false, - Variadic: true, - Var: &ast.ExprVariable{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5799, - EndPos: 5801, + StartPos: 5238, + EndPos: 5243, }, }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 320, EndLine: 320, - StartPos: 5799, - EndPos: 5801, + StartPos: 5241, + EndPos: 5243, }, }, - Value: []byte("$b"), + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 320, + EndLine: 320, + StartPos: 5241, + EndPos: 5243, + }, + }, + Value: []byte("$b"), + }, }, }, }, @@ -18139,18 +17823,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5830, - EndPos: 5847, + StartPos: 5252, + EndPos: 5269, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 322, EndLine: 322, - StartPos: 5839, - EndPos: 5842, + StartPos: 5261, + EndPos: 5264, }, }, Value: []byte("bar"), @@ -18162,8 +17845,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5851, - EndPos: 5863, + StartPos: 5274, + EndPos: 5286, }, }, ClassName: &ast.Identifier{ @@ -18171,8 +17854,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 323, EndLine: 323, - StartPos: 5857, - EndPos: 5860, + StartPos: 5280, + EndPos: 5283, }, }, Value: []byte("Baz"), @@ -18184,8 +17867,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5867, - EndPos: 5879, + StartPos: 5291, + EndPos: 5303, }, }, TraitName: &ast.Identifier{ @@ -18193,8 +17876,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 324, EndLine: 324, - StartPos: 5873, - EndPos: 5877, + StartPos: 5297, + EndPos: 5301, }, }, Value: []byte("Quux"), @@ -18206,8 +17889,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5883, - EndPos: 5901, + StartPos: 5308, + EndPos: 5326, }, }, InterfaceName: &ast.Identifier{ @@ -18215,8 +17898,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 325, EndLine: 325, - StartPos: 5893, - EndPos: 5898, + StartPos: 5318, + EndPos: 5323, }, }, Value: []byte("Quuux"), @@ -18230,18 +17913,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5911, - EndPos: 5954, + StartPos: 5330, + EndPos: 5373, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5920, - EndPos: 5923, + StartPos: 5339, + EndPos: 5342, }, }, Value: []byte("foo"), @@ -18252,31 +17934,39 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5924, - EndPos: 5931, + StartPos: 5343, + EndPos: 5350, }, }, - ByRef: true, - Variadic: false, - Var: &ast.ExprVariable{ + Var: &ast.Reference{ Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5925, - EndPos: 5927, + StartPos: 5343, + EndPos: 5346, }, }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5925, - EndPos: 5927, + StartPos: 5344, + EndPos: 5346, }, }, - Value: []byte("$a"), + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5344, + EndPos: 5346, + }, + }, + Value: []byte("$a"), + }, }, }, DefaultValue: &ast.ScalarLnumber{ @@ -18284,8 +17974,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5930, - EndPos: 5931, + StartPos: 5349, + EndPos: 5350, }, }, Value: []byte("1"), @@ -18296,31 +17986,39 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5933, - EndPos: 5942, + StartPos: 5352, + EndPos: 5361, }, }, - ByRef: false, - Variadic: true, - Var: &ast.ExprVariable{ + Var: &ast.Variadic{ Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5936, - EndPos: 5938, + StartPos: 5352, + EndPos: 5357, }, }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5936, - EndPos: 5938, + StartPos: 5355, + EndPos: 5357, }, }, - Value: []byte("$b"), + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 328, + EndLine: 328, + StartPos: 5355, + EndPos: 5357, + }, + }, + Value: []byte("$b"), + }, }, }, DefaultValue: &ast.ScalarLnumber{ @@ -18328,8 +18026,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5941, - EndPos: 5942, + StartPos: 5360, + EndPos: 5361, }, }, Value: []byte("1"), @@ -18340,19 +18038,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5944, - EndPos: 5950, + StartPos: 5363, + EndPos: 5369, }, }, - ByRef: false, - Variadic: false, Var: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5944, - EndPos: 5946, + StartPos: 5363, + EndPos: 5365, }, }, VarName: &ast.Identifier{ @@ -18360,8 +18056,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5944, - EndPos: 5946, + StartPos: 5363, + EndPos: 5365, }, }, Value: []byte("$c"), @@ -18372,8 +18068,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 328, EndLine: 328, - StartPos: 5949, - EndPos: 5950, + StartPos: 5368, + EndPos: 5369, }, }, Value: []byte("1"), @@ -18387,18 +18083,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5957, - EndPos: 5995, + StartPos: 5374, + EndPos: 5412, }, }, - ReturnsRef: false, FunctionName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5966, - EndPos: 5969, + StartPos: 5383, + EndPos: 5386, }, }, Value: []byte("foo"), @@ -18409,19 +18104,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5970, - EndPos: 5978, + StartPos: 5387, + EndPos: 5395, }, }, - ByRef: false, - Variadic: false, Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5970, - EndPos: 5975, + StartPos: 5387, + EndPos: 5392, }, }, Value: []byte("array"), @@ -18431,8 +18124,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5976, - EndPos: 5978, + StartPos: 5393, + EndPos: 5395, }, }, VarName: &ast.Identifier{ @@ -18440,8 +18133,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5976, - EndPos: 5978, + StartPos: 5393, + EndPos: 5395, }, }, Value: []byte("$a"), @@ -18453,19 +18146,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5980, - EndPos: 5991, + StartPos: 5397, + EndPos: 5408, }, }, - Variadic: false, - ByRef: false, Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5980, - EndPos: 5988, + StartPos: 5397, + EndPos: 5405, }, }, Value: []byte("callable"), @@ -18475,8 +18166,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5989, - EndPos: 5991, + StartPos: 5406, + EndPos: 5408, }, }, VarName: &ast.Identifier{ @@ -18484,8 +18175,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 329, EndLine: 329, - StartPos: 5989, - EndPos: 5991, + StartPos: 5406, + EndPos: 5408, }, }, Value: []byte("$b"), @@ -18500,8 +18191,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5998, - EndPos: 6100, + StartPos: 5413, + EndPos: 5515, }, }, ClassName: &ast.Identifier{ @@ -18509,8 +18200,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6019, - EndPos: 6022, + StartPos: 5434, + EndPos: 5437, }, }, Value: []byte("foo"), @@ -18521,8 +18212,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 5998, - EndPos: 6006, + StartPos: 5413, + EndPos: 5421, }, }, Value: []byte("abstract"), @@ -18532,8 +18223,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6007, - EndPos: 6012, + StartPos: 5422, + EndPos: 5427, }, }, Value: []byte("final"), @@ -18545,18 +18236,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6025, - EndPos: 6066, + StartPos: 5440, + EndPos: 5481, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6060, - EndPos: 6063, + StartPos: 5475, + EndPos: 5478, }, }, Value: []byte("bar"), @@ -18567,8 +18257,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6025, - EndPos: 6033, + StartPos: 5440, + EndPos: 5448, }, }, Value: []byte("abstract"), @@ -18578,8 +18268,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6034, - EndPos: 6043, + StartPos: 5449, + EndPos: 5458, }, }, Value: []byte("protected"), @@ -18589,8 +18279,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6044, - EndPos: 6050, + StartPos: 5459, + EndPos: 5465, }, }, Value: []byte("static"), @@ -18601,8 +18291,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6065, - EndPos: 6066, + StartPos: 5480, + EndPos: 5481, }, }, }, @@ -18612,18 +18302,17 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6067, - EndPos: 6098, + StartPos: 5482, + EndPos: 5513, }, }, - ReturnsRef: false, MethodName: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6090, - EndPos: 6093, + StartPos: 5505, + EndPos: 5508, }, }, Value: []byte("baz"), @@ -18634,8 +18323,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6067, - EndPos: 6072, + StartPos: 5482, + EndPos: 5487, }, }, Value: []byte("final"), @@ -18645,8 +18334,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6073, - EndPos: 6080, + StartPos: 5488, + EndPos: 5495, }, }, Value: []byte("private"), @@ -18657,8 +18346,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 330, EndLine: 330, - StartPos: 6096, - EndPos: 6098, + StartPos: 5511, + EndPos: 5513, }, }, Stmts: []ast.Vertex{}, @@ -18671,8 +18360,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6105, - EndPos: 6119, + StartPos: 5518, + EndPos: 5532, }, }, Expr: &ast.ExprPropertyFetch{ @@ -18680,8 +18369,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6105, - EndPos: 6118, + StartPos: 5518, + EndPos: 5531, }, }, Var: &ast.ExprNew{ @@ -18689,8 +18378,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6105, - EndPos: 6112, + StartPos: 5518, + EndPos: 5525, }, }, Class: &ast.NameName{ @@ -18698,8 +18387,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6109, - EndPos: 6112, + StartPos: 5522, + EndPos: 5525, }, }, Parts: []ast.Vertex{ @@ -18708,8 +18397,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6109, - EndPos: 6112, + StartPos: 5522, + EndPos: 5525, }, }, Value: []byte("Foo"), @@ -18722,8 +18411,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 6115, - EndPos: 6118, + StartPos: 5528, + EndPos: 5531, }, }, Value: []byte("bar"), @@ -18735,8 +18424,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6123, - EndPos: 6134, + StartPos: 5534, + EndPos: 5545, }, }, Expr: &ast.ExprFunctionCall{ @@ -18744,8 +18433,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6123, - EndPos: 6133, + StartPos: 5534, + EndPos: 5544, }, }, Function: &ast.ExprNew{ @@ -18753,8 +18442,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6123, - EndPos: 6130, + StartPos: 5534, + EndPos: 5541, }, }, Class: &ast.NameName{ @@ -18762,8 +18451,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6127, - EndPos: 6130, + StartPos: 5538, + EndPos: 5541, }, }, Parts: []ast.Vertex{ @@ -18772,8 +18461,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6127, - EndPos: 6130, + StartPos: 5538, + EndPos: 5541, }, }, Value: []byte("Foo"), @@ -18786,8 +18475,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 6131, - EndPos: 6133, + StartPos: 5542, + EndPos: 5544, }, }, }, @@ -18798,8 +18487,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6137, - EndPos: 6149, + StartPos: 5546, + EndPos: 5558, }, }, Expr: &ast.ExprFunctionCall{ @@ -18807,8 +18496,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6137, - EndPos: 6148, + StartPos: 5546, + EndPos: 5557, }, }, Function: &ast.ExprArrayDimFetch{ @@ -18816,8 +18505,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6137, - EndPos: 6146, + StartPos: 5546, + EndPos: 5555, }, }, Var: &ast.ExprShortArray{ @@ -18825,8 +18514,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6137, - EndPos: 6143, + StartPos: 5546, + EndPos: 5552, }, }, Items: []ast.Vertex{ @@ -18835,8 +18524,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6138, - EndPos: 6142, + StartPos: 5547, + EndPos: 5551, }, }, Val: &ast.ExprVariable{ @@ -18844,8 +18533,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6138, - EndPos: 6142, + StartPos: 5547, + EndPos: 5551, }, }, VarName: &ast.Identifier{ @@ -18853,8 +18542,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6138, - EndPos: 6142, + StartPos: 5547, + EndPos: 5551, }, }, Value: []byte("$foo"), @@ -18868,8 +18557,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6144, - EndPos: 6145, + StartPos: 5553, + EndPos: 5554, }, }, Value: []byte("0"), @@ -18880,8 +18569,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 334, EndLine: 334, - StartPos: 6146, - EndPos: 6148, + StartPos: 5555, + EndPos: 5557, }, }, }, @@ -18892,8 +18581,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6152, - EndPos: 6161, + StartPos: 5559, + EndPos: 5568, }, }, Expr: &ast.ExprFunctionCall{ @@ -18901,8 +18590,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6152, - EndPos: 6160, + StartPos: 5559, + EndPos: 5567, }, }, Function: &ast.ExprArrayDimFetch{ @@ -18910,8 +18599,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6152, - EndPos: 6158, + StartPos: 5559, + EndPos: 5565, }, }, Var: &ast.ExprConstFetch{ @@ -18919,8 +18608,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6152, - EndPos: 6155, + StartPos: 5559, + EndPos: 5562, }, }, Const: &ast.NameName{ @@ -18928,8 +18617,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6152, - EndPos: 6155, + StartPos: 5559, + EndPos: 5562, }, }, Parts: []ast.Vertex{ @@ -18938,8 +18627,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6152, - EndPos: 6155, + StartPos: 5559, + EndPos: 5562, }, }, Value: []byte("foo"), @@ -18952,8 +18641,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6156, - EndPos: 6157, + StartPos: 5563, + EndPos: 5564, }, }, Value: []byte("1"), @@ -18964,8 +18653,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 335, EndLine: 335, - StartPos: 6158, - EndPos: 6160, + StartPos: 5565, + EndPos: 5567, }, }, }, @@ -18976,8 +18665,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6164, - EndPos: 6172, + StartPos: 5569, + EndPos: 5577, }, }, Expr: &ast.ExprFunctionCall{ @@ -18985,8 +18674,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6164, - EndPos: 6171, + StartPos: 5569, + EndPos: 5576, }, }, Function: &ast.ScalarString{ @@ -18994,8 +18683,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6164, - EndPos: 6169, + StartPos: 5569, + EndPos: 5574, }, }, Value: []byte("\"foo\""), @@ -19005,8 +18694,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 336, EndLine: 336, - StartPos: 6169, - EndPos: 6171, + StartPos: 5574, + EndPos: 5576, }, }, }, @@ -19017,8 +18706,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6175, - EndPos: 6187, + StartPos: 5578, + EndPos: 5590, }, }, Expr: &ast.ExprFunctionCall{ @@ -19026,8 +18715,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6175, - EndPos: 6186, + StartPos: 5578, + EndPos: 5589, }, }, Function: &ast.ExprArrayDimFetch{ @@ -19035,8 +18724,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6175, - EndPos: 6184, + StartPos: 5578, + EndPos: 5587, }, }, Var: &ast.ExprShortArray{ @@ -19044,8 +18733,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6175, - EndPos: 6178, + StartPos: 5578, + EndPos: 5581, }, }, Items: []ast.Vertex{ @@ -19054,8 +18743,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6176, - EndPos: 6177, + StartPos: 5579, + EndPos: 5580, }, }, Val: &ast.ScalarLnumber{ @@ -19063,8 +18752,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6176, - EndPos: 6177, + StartPos: 5579, + EndPos: 5580, }, }, Value: []byte("1"), @@ -19077,8 +18766,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6179, - EndPos: 6183, + StartPos: 5582, + EndPos: 5586, }, }, VarName: &ast.Identifier{ @@ -19086,8 +18775,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6179, - EndPos: 6183, + StartPos: 5582, + EndPos: 5586, }, }, Value: []byte("$foo"), @@ -19099,8 +18788,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 337, EndLine: 337, - StartPos: 6184, - EndPos: 6186, + StartPos: 5587, + EndPos: 5589, }, }, }, @@ -19111,8 +18800,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6190, - EndPos: 6199, + StartPos: 5591, + EndPos: 5600, }, }, Expr: &ast.ExprVariable{ @@ -19120,8 +18809,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6190, - EndPos: 6198, + StartPos: 5591, + EndPos: 5599, }, }, VarName: &ast.ExprFunctionCall{ @@ -19129,8 +18818,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6192, - EndPos: 6197, + StartPos: 5593, + EndPos: 5598, }, }, Function: &ast.NameName{ @@ -19138,8 +18827,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6192, - EndPos: 6195, + StartPos: 5593, + EndPos: 5596, }, }, Parts: []ast.Vertex{ @@ -19148,8 +18837,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6192, - EndPos: 6195, + StartPos: 5593, + EndPos: 5596, }, }, Value: []byte("foo"), @@ -19161,8 +18850,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 338, EndLine: 338, - StartPos: 6195, - EndPos: 6197, + StartPos: 5596, + EndPos: 5598, }, }, }, @@ -19174,8 +18863,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6203, - EndPos: 6215, + StartPos: 5602, + EndPos: 5614, }, }, Expr: &ast.ExprStaticCall{ @@ -19183,8 +18872,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6203, - EndPos: 6214, + StartPos: 5602, + EndPos: 5613, }, }, Class: &ast.NameName{ @@ -19192,8 +18881,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6203, - EndPos: 6206, + StartPos: 5602, + EndPos: 5605, }, }, Parts: []ast.Vertex{ @@ -19202,8 +18891,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6203, - EndPos: 6206, + StartPos: 5602, + EndPos: 5605, }, }, Value: []byte("Foo"), @@ -19215,8 +18904,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6208, - EndPos: 6212, + StartPos: 5607, + EndPos: 5611, }, }, VarName: &ast.Identifier{ @@ -19224,8 +18913,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6208, - EndPos: 6212, + StartPos: 5607, + EndPos: 5611, }, }, Value: []byte("$bar"), @@ -19236,8 +18925,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 340, EndLine: 340, - StartPos: 6212, - EndPos: 6214, + StartPos: 5611, + EndPos: 5613, }, }, }, @@ -19248,8 +18937,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6218, - EndPos: 6235, + StartPos: 5615, + EndPos: 5632, }, }, Expr: &ast.ExprStaticCall{ @@ -19257,8 +18946,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6218, - EndPos: 6234, + StartPos: 5615, + EndPos: 5631, }, }, Class: &ast.NameName{ @@ -19266,8 +18955,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6218, - EndPos: 6221, + StartPos: 5615, + EndPos: 5618, }, }, Parts: []ast.Vertex{ @@ -19276,8 +18965,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6218, - EndPos: 6221, + StartPos: 5615, + EndPos: 5618, }, }, Value: []byte("Foo"), @@ -19289,8 +18978,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6224, - EndPos: 6231, + StartPos: 5621, + EndPos: 5628, }, }, Var: &ast.ExprVariable{ @@ -19298,8 +18987,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6224, - EndPos: 6228, + StartPos: 5621, + EndPos: 5625, }, }, VarName: &ast.Identifier{ @@ -19307,8 +18996,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6224, - EndPos: 6228, + StartPos: 5621, + EndPos: 5625, }, }, Value: []byte("$bar"), @@ -19319,8 +19008,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6229, - EndPos: 6230, + StartPos: 5626, + EndPos: 5627, }, }, Value: []byte("0"), @@ -19331,8 +19020,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 341, EndLine: 341, - StartPos: 6232, - EndPos: 6234, + StartPos: 5629, + EndPos: 5631, }, }, }, @@ -19343,8 +19032,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6241, - EndPos: 6252, + StartPos: 5634, + EndPos: 5645, }, }, Expr: &ast.ExprPropertyFetch{ @@ -19352,8 +19041,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6241, - EndPos: 6251, + StartPos: 5634, + EndPos: 5644, }, }, Var: &ast.ExprVariable{ @@ -19361,8 +19050,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6241, - EndPos: 6245, + StartPos: 5634, + EndPos: 5638, }, }, VarName: &ast.Identifier{ @@ -19370,8 +19059,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6241, - EndPos: 6245, + StartPos: 5634, + EndPos: 5638, }, }, Value: []byte("$foo"), @@ -19382,8 +19071,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6247, - EndPos: 6251, + StartPos: 5640, + EndPos: 5644, }, }, VarName: &ast.Identifier{ @@ -19391,8 +19080,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 343, EndLine: 343, - StartPos: 6247, - EndPos: 6251, + StartPos: 5640, + EndPos: 5644, }, }, Value: []byte("$bar"), @@ -19405,8 +19094,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6255, - EndPos: 6271, + StartPos: 5646, + EndPos: 5662, }, }, Expr: &ast.ExprPropertyFetch{ @@ -19414,8 +19103,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6255, - EndPos: 6269, + StartPos: 5646, + EndPos: 5660, }, }, Var: &ast.ExprVariable{ @@ -19423,8 +19112,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6255, - EndPos: 6259, + StartPos: 5646, + EndPos: 5650, }, }, VarName: &ast.Identifier{ @@ -19432,8 +19121,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6255, - EndPos: 6259, + StartPos: 5646, + EndPos: 5650, }, }, Value: []byte("$foo"), @@ -19444,8 +19133,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6262, - EndPos: 6269, + StartPos: 5653, + EndPos: 5660, }, }, Var: &ast.ExprVariable{ @@ -19453,8 +19142,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6262, - EndPos: 6266, + StartPos: 5653, + EndPos: 5657, }, }, VarName: &ast.Identifier{ @@ -19462,8 +19151,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6262, - EndPos: 6266, + StartPos: 5653, + EndPos: 5657, }, }, Value: []byte("$bar"), @@ -19474,8 +19163,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 344, EndLine: 344, - StartPos: 6267, - EndPos: 6268, + StartPos: 5658, + EndPos: 5659, }, }, Value: []byte("0"), @@ -19488,8 +19177,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6275, - EndPos: 6297, + StartPos: 5664, + EndPos: 5686, }, }, Expr: &ast.ExprShortArray{ @@ -19497,8 +19186,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6275, - EndPos: 6296, + StartPos: 5664, + EndPos: 5685, }, }, Items: []ast.Vertex{ @@ -19507,8 +19196,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6276, - EndPos: 6282, + StartPos: 5665, + EndPos: 5671, }, }, Key: &ast.ScalarLnumber{ @@ -19516,8 +19205,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6276, - EndPos: 6277, + StartPos: 5665, + EndPos: 5666, }, }, Value: []byte("1"), @@ -19527,8 +19216,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6279, - EndPos: 6282, + StartPos: 5668, + EndPos: 5671, }, }, Var: &ast.ExprVariable{ @@ -19536,8 +19225,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6280, - EndPos: 6282, + StartPos: 5669, + EndPos: 5671, }, }, VarName: &ast.Identifier{ @@ -19545,8 +19234,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6280, - EndPos: 6282, + StartPos: 5669, + EndPos: 5671, }, }, Value: []byte("$a"), @@ -19559,8 +19248,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6284, - EndPos: 6295, + StartPos: 5673, + EndPos: 5684, }, }, Key: &ast.ScalarLnumber{ @@ -19568,8 +19257,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6284, - EndPos: 6285, + StartPos: 5673, + EndPos: 5674, }, }, Value: []byte("2"), @@ -19579,8 +19268,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6287, - EndPos: 6295, + StartPos: 5676, + EndPos: 5684, }, }, Items: []ast.Vertex{ @@ -19589,8 +19278,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6292, - EndPos: 6294, + StartPos: 5681, + EndPos: 5683, }, }, Val: &ast.ExprVariable{ @@ -19598,8 +19287,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6292, - EndPos: 6294, + StartPos: 5681, + EndPos: 5683, }, }, VarName: &ast.Identifier{ @@ -19607,8 +19296,8 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 346, EndLine: 346, - StartPos: 6292, - EndPos: 6294, + StartPos: 5681, + EndPos: 5683, }, }, Value: []byte("$b"), @@ -19626,15 +19315,15 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 348, EndLine: 348, - StartPos: 6301, - EndPos: 6319, + StartPos: 5688, + EndPos: 5706, }, }, }, }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer(src, "7.4", false, nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() diff --git a/internal/php7/test.php b/internal/php7/test.php new file mode 100644 index 0000000..1260892 --- /dev/null +++ b/internal/php7/test.php @@ -0,0 +1,350 @@ +bar($a, ...$b); +foo::bar($a, ...$b); +$foo::bar($a, ...$b); +new foo($a, ...$b); +/** anonymous class */ +new class ($a, ...$b) {}; +new class {}; +new $foo; +new $foo[1]; +new $foo{$bar}; +new $foo->bar; +new $foo::$bar; +new static::$bar; + +function foo(?bar $bar=null, baz &...$baz) {} +class foo {public function foo(?bar $bar=null, baz &...$baz) {}} +function(?bar $bar=null, baz &...$baz) {}; +static function(?bar $bar=null, baz &...$baz) {}; + +1234567890123456789; +12345678901234567890; +0.; +0b0111111111111111111111111111111111111111111111111111111111111111; +0b1111111111111111111111111111111111111111111111111111111111111111; +0x007111111111111111; +0x8111111111111111; +__CLASS__; +__DIR__; +__FILE__; +__FUNCTION__; +__LINE__; +__NAMESPACE__; +__METHOD__; +__TRAIT__; + +"test $var"; +"test $var[1]"; +"test $var[-1]"; +"test $var[1234567890123456789012345678901234567890]"; +"test $var[-1234567890123456789012345678901234567890]"; +"test $var[bar]"; +"test $var[$bar]"; +"$foo $bar"; +"test $foo->bar()"; +"test ${foo}"; +"test ${foo[0]}"; +"test ${$foo}"; +"test {$foo->bar()}"; + +if ($a) : +endif; +if ($a) : +elseif ($b): +endif; +if ($a) : +else: +endif; +if ($a) : +elseif ($b): +elseif ($c): +else: +endif; + +while (1) { break; } +while (1) { break 2; } +while (1) : break(3); endwhile; +class foo{ public const FOO = 1, BAR = 2; } +class foo{ const FOO = 1, BAR = 2; } +class foo{ function bar() {} } +class foo{ public static function &bar() {} } +class foo{ public static function &bar(): void {} } +abstract class foo{ } +final class foo extends bar { } +final class foo implements bar { } +final class foo implements bar, baz { } +new class() extends foo implements bar, baz { }; + +const FOO = 1, BAR = 2; +while (1) { continue; } +while (1) { continue 2; } +while (1) { continue(3); } +declare(ticks=1); +declare(ticks=1) {} +declare(ticks=1): enddeclare; +do {} while(1); +echo $a, 1; +echo($a); +for($i = 0; $i < 10; $i++, $i++) {} +for(; $i < 10; $i++, $i++) : endfor; +foreach ($a as $v) {} +foreach ($a as $v) : endforeach; +foreach ($a as $k => $v) {} +foreach ($a as $k => &$v) {} +foreach ($a as $k => list($v)) {} +foreach ($a as $k => [$v]) {} +function foo() {} +function foo() {return;} +function &foo() {return 1;} +function &foo(): void {} +global $a, $b; +a: +goto a; +if ($a) {} +if ($a) {} elseif ($b) {} +if ($a) {} else {} +if ($a) {} elseif ($b) {} elseif ($c) {} else {} +if ($a) {} elseif ($b) {} else if ($c) {} else {} +?>
1, &$b,); +~$a; +!$a; + +Foo::Bar; +$foo::Bar; +clone($a); +clone $a; +function(){}; +function($a, $b) use ($c, &$d) {}; +function(): void {}; +foo; +namespace\foo; +\foo; + +empty($a); +@$a; +eval($a); +exit; +exit($a); +die; +die($a); +foo(); +namespace\foo(); +\foo(); +$foo(); + +$a--; +$a++; +--$a; +++$a; + +include $a; +include_once $a; +require $a; +require_once $a; + +$a instanceof Foo; +$a instanceof namespace\Foo; +$a instanceof \Foo; + +isset($a, $b); +list($a) = $b; +list($a[]) = $b; +list(list($a)) = $b; + +$a->foo(); +new Foo(); +new namespace\Foo(); +new \Foo(); +new class ($a, ...$b) {}; +print($a); +$a->foo; +`cmd $a`; +`cmd`; +``; +[]; +[1]; +[1=>1, &$b,]; + +[$a] = $b; +[$a[]] = $b; +[list($a)] = $b; +Foo::bar(); +namespace\Foo::bar(); +\Foo::bar(); +Foo::$bar; +$foo::$bar; +namespace\Foo::$bar; +\Foo::$bar; +$a ? $b : $c; +$a ? : $c; +$a ? $b ? $c : $d : $e; +$a ? $b : $c ? $d : $e; +-$a; ++$a; +$$a; +yield; +yield $a; +yield $a => $b; +yield from $a; + +(array)$a; +(boolean)$a; +(bool)$a; +(double)$a; +(float)$a; +(integer)$a; +(int)$a; +(object)$a; +(string)$a; +(unset)$a; + +$a & $b; +$a | $b; +$a ^ $b; +$a && $b; +$a || $b; +$a ?? $b; +$a . $b; +$a / $b; +$a == $b; +$a >= $b; +$a > $b; +$a === $b; +$a and $b; +$a or $b; +$a xor $b; +$a - $b; +$a % $b; +$a * $b; +$a != $b; +$a !== $b; +$a + $b; +$a ** $b; +$a << $b; +$a >> $b; +$a <= $b; +$a < $b; +$a <=> $b; + +$a =& $b; +$a = $b; +$a &= $b; +$a |= $b; +$a ^= $b; +$a .= $b; +$a /= $b; +$a -= $b; +$a %= $b; +$a *= $b; +$a += $b; +$a **= $b; +$a <<= $b; +$a >>= $b; + +class foo {public function class() {} } +\foo\bar(); + +function foo(&$a, ...$b) { + + function bar() {} + class Baz {} + trait Quux{} + interface Quuux {} +} + +function foo(&$a = 1, ...$b = 1, $c = 1) {} +function foo(array $a, callable $b) {} +abstract final class foo { abstract protected static function bar(); final private function baz() {} } + +(new Foo)->bar; +(new Foo)(); +[$foo][0](); +foo[1](); +"foo"(); +[1]{$foo}(); +${foo()}; + +Foo::$bar(); +Foo::{$bar[0]}(); + +$foo->$bar; +$foo->{$bar[0]}; + +[1=>&$a, 2=>list($b)]; + +__halt_compiler(); + +parsing process must be terminated \ No newline at end of file diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 88e017e..41b540b 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -20,6 +20,8 @@ type Visitor interface { type NodeVisitor interface { Root(n *Root) Nullable(n *Nullable) + Reference(n *Reference) + Variadic(n *Variadic) Parameter(n *Parameter) Identifier(n *Identifier) ArgumentList(n *ArgumentList) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 99b34a3..0435c7c 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -36,11 +36,29 @@ func (n *Nullable) Accept(v NodeVisitor) { v.Nullable(n) } +// Reference node +type Reference struct { + Node + Var Vertex +} + +func (n *Reference) Accept(v NodeVisitor) { + v.Reference(n) +} + +// Variadic node +type Variadic struct { + Node + Var Vertex +} + +func (n *Variadic) Accept(v NodeVisitor) { + v.Variadic(n) +} + // Parameter node type Parameter struct { Node - ByRef bool - Variadic bool Type Vertex Var Vertex DefaultValue Vertex diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 7a13184..d25b426 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -40,6 +40,30 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Expr) t.visitor.Leave("Expr", true) } + case *ast.Reference: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } + case *ast.Variadic: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } case *ast.Parameter: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 5273c21..9346d75 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -33,10 +33,18 @@ func (v *Dump) print(str string) { } func (v *Dump) printIndent(indentDepth int) { + if indentDepth < 0 { + indentDepth = 0 + } + v.print(strings.Repeat("\t", indentDepth)) } func (v *Dump) printIndentIfNotSingle(indentDepth int) { + if indentDepth < 0 { + indentDepth = 0 + } + if !v.stack[v.depth-1].singleNode { v.print(strings.Repeat("\t", indentDepth)) } @@ -173,20 +181,22 @@ func (v *Dump) Nullable(n *ast.Nullable) { v.printNode(n.GetNode()) } +func (v *Dump) Reference(n *ast.Reference) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.Reference{\n") + v.printNode(n.GetNode()) +} + +func (v *Dump) Variadic(n *ast.Variadic) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.Variadic{\n") + v.printNode(n.GetNode()) +} + func (v *Dump) Parameter(n *ast.Parameter) { v.printIndent(v.indent - 1) v.print("&ast.Parameter{\n") v.printNode(n.GetNode()) - - if n.ByRef { - v.printIndent(v.indent) - v.print("ByRef: true,\n") - } - - if n.Variadic { - v.printIndent(v.indent) - v.print("Variadic: true,\n") - } } func (v *Dump) Identifier(n *ast.Identifier) { diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index c257ed5..cc9a387 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -30,8 +30,7 @@ func ExampleDump() { Stmts: []ast.Vertex{ &ast.Identifier{}, &ast.Parameter{ - Variadic: true, - Var: &ast.ExprVariable{}, + Var: &ast.ExprVariable{}, }, &ast.StmtInlineHtml{ Value: []byte("foo"), @@ -64,7 +63,6 @@ func ExampleDump() { // Value: []byte(""), // }, // &ast.Parameter{ - // Variadic: true, // Var: &ast.ExprVariable{ // }, // }, diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 607aa9e..6cab1d0 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -502,10 +502,8 @@ func TestResolveFunctionName(t *testing.T) { FunctionName: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: false, - Variadic: false, - Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }, }, ReturnType: &ast.Nullable{Expr: nameBC}, @@ -540,10 +538,8 @@ func TestResolveMethodName(t *testing.T) { MethodName: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: false, - Variadic: false, - Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }, }, ReturnType: &ast.Nullable{Expr: nameBC}, @@ -573,10 +569,8 @@ func TestResolveClosureName(t *testing.T) { Static: false, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: false, - Variadic: false, - Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Type: nameAB, + Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }, }, ClosureUse: nil, diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index bdcacbf..6fd6261 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -30,6 +30,14 @@ func (v *Null) Nullable(_ *ast.Nullable) { // do nothing } +func (v *Null) Reference(_ *ast.Reference) { + // do nothing +} + +func (v *Null) Variadic(_ *ast.Variadic) { + // do nothing +} + func (v *Null) Parameter(_ *ast.Parameter) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 37a1a71..77375ea 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -64,6 +64,10 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { p.printNodeRoot(n) case *ast.Identifier: p.printNodeIdentifier(n) + case *ast.Reference: + p.printNodeReference(n) + case *ast.Variadic: + p.printNodeVariadic(n) case *ast.Parameter: p.printNodeParameter(n) case *ast.Nullable: @@ -434,6 +438,20 @@ func (p *PrettyPrinter) printNodeIdentifier(n ast.Vertex) { io.WriteString(p.w, v) } +func (p *PrettyPrinter) printNodeReference(n ast.Vertex) { + nn := n.(*ast.Reference) + + io.WriteString(p.w, "&") + p.Print(nn.Var) +} + +func (p *PrettyPrinter) printNodeVariadic(n ast.Vertex) { + nn := n.(*ast.Variadic) + + io.WriteString(p.w, "...") + p.Print(nn.Var) +} + func (p *PrettyPrinter) printNodeParameter(n ast.Vertex) { nn := n.(*ast.Parameter) @@ -442,14 +460,6 @@ func (p *PrettyPrinter) printNodeParameter(n ast.Vertex) { io.WriteString(p.w, " ") } - if nn.ByRef { - io.WriteString(p.w, "&") - } - - if nn.Variadic { - io.WriteString(p.w, "...") - } - p.Print(nn.Var) if nn.DefaultValue != nil { diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index 0403ba3..a686aff 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -119,10 +119,14 @@ func TestPrintParameter(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.Parameter{ - ByRef: false, - Variadic: true, - Type: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + Type: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Var: &ast.Variadic{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("var"), + }, + }, + }, DefaultValue: &ast.ScalarString{Value: []byte("'default'")}, }) @@ -140,10 +144,8 @@ func TestPrintNullable(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.Nullable{ Expr: &ast.Parameter{ - ByRef: false, - Variadic: true, Type: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + Var: &ast.Variadic{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, DefaultValue: &ast.ScalarString{Value: []byte("'default'")}, }, }) @@ -1389,9 +1391,7 @@ func TestPrintExprClosure(t *testing.T) { ReturnsRef: true, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: true, - Variadic: false, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, }, }, ClosureUse: &ast.ExprClosureUse{ @@ -2446,14 +2446,12 @@ func TestPrintStmtClassMethod(t *testing.T) { MethodName: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: true, Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, &ast.Parameter{ - Variadic: true, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, + Var: &ast.Variadic{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, ReturnType: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}}, @@ -2484,14 +2482,12 @@ func TestPrintStmtAbstractClassMethod(t *testing.T) { MethodName: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: true, Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, + Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, &ast.Parameter{ - Variadic: true, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, + Var: &ast.Variadic{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, ReturnType: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}}, @@ -3197,9 +3193,7 @@ func TestPrintStmtFunction(t *testing.T) { FunctionName: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ - ByRef: true, - Variadic: false, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, + Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, }, }, ReturnType: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 09399dd..47a82fb 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -79,6 +79,10 @@ func (p *Printer) printNode(n ast.Vertex) { p.printNodeRoot(n) case *ast.Identifier: p.printNodeIdentifier(n) + case *ast.Reference: + p.printNodeReference(n) + case *ast.Variadic: + p.printNodeVariadic(n) case *ast.Parameter: p.printNodeParameter(n) case *ast.Nullable: @@ -444,6 +448,26 @@ func (p *Printer) printNodeIdentifier(n ast.Vertex) { p.printFreeFloating(nn, token.End) } +func (p *Printer) printNodeReference(n ast.Vertex) { + nn := n.(*ast.Reference) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "&") + p.Print(nn.Var) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printNodeVariadic(n ast.Vertex) { + nn := n.(*ast.Variadic) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "...") + p.Print(nn.Var) + + p.printFreeFloating(nn, token.End) +} + func (p *Printer) printNodeParameter(n ast.Vertex) { nn := n.(*ast.Parameter) p.printFreeFloating(nn, token.Start) @@ -451,22 +475,10 @@ func (p *Printer) printNodeParameter(n ast.Vertex) { if nn.Type != nil { p.Print(nn.Type) } - p.printFreeFloating(nn, token.OptionalType) - - if nn.ByRef { - io.WriteString(p.w, "&") - } - p.printFreeFloating(nn, token.Ampersand) - - if nn.Variadic { - io.WriteString(p.w, "...") - } - p.printFreeFloating(nn, token.Variadic) p.Print(nn.Var) if nn.DefaultValue != nil { - p.printFreeFloating(nn, token.Var) io.WriteString(p.w, "=") p.Print(nn.DefaultValue) } diff --git a/pkg/printer/printer_parsed_php7_test.go b/pkg/printer/printer_parsed_php7_test.go index 900ae22..a68c502 100644 --- a/pkg/printer/printer_parsed_php7_test.go +++ b/pkg/printer/printer_parsed_php7_test.go @@ -107,6 +107,18 @@ func TestParseAndPrintIdentifier(t *testing.T) { } } +func TestParseAndPrintParameterTMP(t *testing.T) { + + src := ` Date: Mon, 3 Aug 2020 21:22:53 +0200 Subject: [PATCH 036/140] [refactoring] update `use` ast structure --- internal/php5/parser_test.go | 897 ++++++----- internal/php5/php5.go | 1111 +++++++------ internal/php5/php5.y | 97 +- internal/php5/php5_test.go | 896 ++++++----- internal/php7/parser_test.go | 1623 +++++++++++-------- internal/php7/php7.go | 897 ++++++----- internal/php7/php7.y | 103 +- internal/php7/php7_test.go | 1624 ++++++++++++-------- pkg/ast/ast.go | 4 +- pkg/ast/node.go | 52 +- pkg/ast/traverser/dfs.go | 90 +- pkg/ast/visitor/dump.go | 24 +- pkg/ast/visitor/namespace_resolver.go | 62 +- pkg/ast/visitor/namespace_resolver_test.go | 161 +- pkg/ast/visitor/null.go | 16 +- pkg/printer/pretty_printer.go | 80 +- pkg/printer/pretty_printer_test.go | 113 +- pkg/printer/printer.go | 182 ++- pkg/printer/printer_test.go | 115 +- pkg/token/position.go | 1 - pkg/token/position_string.go | 151 +- 21 files changed, 4604 insertions(+), 3695 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index dcb70ae..b210323 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -11442,7 +11442,7 @@ func TestStmtUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11451,17 +11451,17 @@ func TestStmtUse(t *testing.T) { EndPos: 11, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11470,17 +11470,27 @@ func TestStmtUse(t *testing.T) { EndPos: 10, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, @@ -11510,7 +11520,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11519,17 +11529,17 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 12, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11538,17 +11548,27 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 11, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, @@ -11578,7 +11598,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11587,49 +11607,59 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 19, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 18, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 18, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, - EndPos: 11, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, EndPos: 18, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Value: []byte("Bar"), + }, }, }, }, @@ -11657,7 +11687,7 @@ func TestStmtUse_List(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11666,17 +11696,17 @@ func TestStmtUse_List(t *testing.T) { EndPos: 16, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 15, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11685,31 +11715,31 @@ func TestStmtUse_List(t *testing.T) { EndPos: 10, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11718,17 +11748,27 @@ func TestStmtUse_List(t *testing.T) { EndPos: 15, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), }, - Value: []byte("Bar"), }, }, }, @@ -11758,7 +11798,7 @@ func TestStmtUse_ListAlias(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11767,17 +11807,17 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 23, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 22, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11786,63 +11826,73 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 10, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 22, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, - EndPos: 15, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, EndPos: 22, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, + }, + }, + Value: []byte("Baz"), + }, }, }, }, @@ -11870,7 +11920,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11879,38 +11929,46 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 26, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 15, + EndPos: 25, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 15, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 19, + EndPos: 25, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11919,31 +11977,31 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 19, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 25, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 25, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 25, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11952,7 +12010,19 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 25, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 25, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, @@ -11982,7 +12052,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11991,38 +12061,46 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 40, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 15, + EndPos: 39, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 15, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 26, + EndPos: 39, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 26, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12031,42 +12109,42 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 19, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 39, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 39, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 32, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12075,21 +12153,33 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 32, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 32, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 36, + EndPos: 39, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 36, - EndPos: 39, - }, - }, - Value: []byte("bar"), - }, }, }, }, @@ -12116,7 +12206,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12125,38 +12215,47 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 23, }, }, - UseType: &ast.Identifier{ + + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 12, + EndPos: 22, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 12, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 16, + EndPos: 22, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12165,31 +12264,31 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 16, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12198,7 +12297,19 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 22, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, @@ -12228,7 +12339,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12237,38 +12348,46 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 37, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 12, + EndPos: 36, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 12, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 23, + EndPos: 36, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 23, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12277,42 +12396,42 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 16, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 23, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 20, - EndPos: 23, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 36, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 36, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12321,21 +12440,33 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 29, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 36, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 36, - }, - }, - Value: []byte("bar"), - }, }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 162c382..7a695b7 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7151 +// line internal/php5/php5.y:7134 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2488,59 +2488,66 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:430 { - yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, useList} // save position + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:444 + // line internal/php5/php5.y:445 { - useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} + identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} + useType := &ast.StmtUseType{ast.Node{}, identifier, useList} + yyVAL.node = &ast.StmtUse{ast.Node{}, useType} // save position - useType.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + useType.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, useList) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments + yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:461 + // line internal/php5/php5.y:465 { - useType := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.StmtUseList{ast.Node{}, useType, yyDollar[3].list} + identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} + useType := &ast.StmtUseType{ast.Node{}, identifier, useList} + yyVAL.node = &ast.StmtUse{ast.Node{}, useType} // save position - useType.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + useType.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, useList) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments + yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:478 + // line internal/php5/php5.y:485 { yyVAL.node = yyDollar[1].node @@ -2555,7 +2562,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:494 + // line internal/php5/php5.y:501 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2566,7 +2573,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:503 + // line internal/php5/php5.y:510 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2574,27 +2581,24 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:512 + // line internal/php5/php5.y:519 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:526 + // line internal/php5/php5.y:530 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2602,7 +2606,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) @@ -2610,29 +2613,27 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:544 + // line internal/php5/php5.y:547 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:560 + // line internal/php5/php5.y:561 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) @@ -2640,9 +2641,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) @@ -2650,7 +2649,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:583 + // line internal/php5/php5.y:582 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2661,7 +2660,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:592 + // line internal/php5/php5.y:591 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2669,27 +2668,24 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:601 + // line internal/php5/php5.y:600 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:615 + // line internal/php5/php5.y:611 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2697,7 +2693,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) @@ -2705,29 +2700,27 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:633 + // line internal/php5/php5.y:628 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:649 + // line internal/php5/php5.y:642 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) @@ -2735,9 +2728,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) @@ -2745,7 +2736,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:672 + // line internal/php5/php5.y:663 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2756,7 +2747,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:681 + // line internal/php5/php5.y:672 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2764,27 +2755,24 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:690 + // line internal/php5/php5.y:681 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:704 + // line internal/php5/php5.y:692 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2792,7 +2780,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) @@ -2800,29 +2787,27 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:722 + // line internal/php5/php5.y:709 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:738 + // line internal/php5/php5.y:723 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) @@ -2830,9 +2815,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) @@ -2840,7 +2823,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:761 + // line internal/php5/php5.y:744 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2863,7 +2846,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:782 + // line internal/php5/php5.y:765 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2884,7 +2867,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:804 + // line internal/php5/php5.y:787 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2899,7 +2882,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:817 + // line internal/php5/php5.y:800 { yyVAL.list = []ast.Vertex{} @@ -2907,7 +2890,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:827 + // line internal/php5/php5.y:810 { // error yyVAL.node = nil @@ -2916,7 +2899,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:834 + // line internal/php5/php5.y:817 { yyVAL.node = yyDollar[1].node @@ -2924,7 +2907,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:840 + // line internal/php5/php5.y:823 { yyVAL.node = yyDollar[1].node @@ -2932,7 +2915,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:846 + // line internal/php5/php5.y:829 { yyVAL.node = yyDollar[1].node @@ -2940,7 +2923,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:852 + // line internal/php5/php5.y:835 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2958,7 +2941,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:872 + // line internal/php5/php5.y:855 { yyVAL.node = yyDollar[1].node @@ -2966,7 +2949,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:878 + // line internal/php5/php5.y:861 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2983,7 +2966,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:896 + // line internal/php5/php5.y:879 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2998,7 +2981,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:909 + // line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3026,7 +3009,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:933 + // line internal/php5/php5.y:916 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} @@ -3054,7 +3037,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:957 + // line internal/php5/php5.y:940 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3083,7 +3066,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:982 + // line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3108,7 +3091,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1003 + // line internal/php5/php5.y:986 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3137,7 +3120,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1030 + // line internal/php5/php5.y:1013 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3168,7 +3151,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1057 + // line internal/php5/php5.y:1040 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3184,7 +3167,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1071 + // line internal/php5/php5.y:1054 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3200,7 +3183,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1085 + // line internal/php5/php5.y:1068 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3216,7 +3199,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1099 + // line internal/php5/php5.y:1082 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3232,7 +3215,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1113 + // line internal/php5/php5.y:1096 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3248,7 +3231,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1127 + // line internal/php5/php5.y:1110 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3264,7 +3247,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1141 + // line internal/php5/php5.y:1124 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3280,7 +3263,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1155 + // line internal/php5/php5.y:1138 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3296,7 +3279,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1169 + // line internal/php5/php5.y:1152 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3312,7 +3295,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1183 + // line internal/php5/php5.y:1166 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3328,7 +3311,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1197 + // line internal/php5/php5.y:1180 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3345,7 +3328,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1212 + // line internal/php5/php5.y:1195 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3359,7 +3342,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1224 + // line internal/php5/php5.y:1207 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3375,7 +3358,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1238 + // line internal/php5/php5.y:1221 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3393,7 +3376,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1254 + // line internal/php5/php5.y:1237 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3436,7 +3419,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1294 + // line internal/php5/php5.y:1277 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3479,7 +3462,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1334 + // line internal/php5/php5.y:1317 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3496,7 +3479,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1349 + // line internal/php5/php5.y:1332 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3511,7 +3494,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1345 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3531,7 +3514,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1363 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3547,7 +3530,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1394 + // line internal/php5/php5.y:1377 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3566,7 +3549,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1414 + // line internal/php5/php5.y:1397 { yyVAL.list = []ast.Vertex{} @@ -3574,7 +3557,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1420 + // line internal/php5/php5.y:1403 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3598,7 +3581,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1445 + // line internal/php5/php5.y:1428 { yyVAL.node = nil @@ -3606,7 +3589,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1451 + // line internal/php5/php5.y:1434 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3622,7 +3605,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1468 + // line internal/php5/php5.y:1451 { yyVAL.list = yyDollar[1].list @@ -3630,7 +3613,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1457 { yyVAL.list = []ast.Vertex{} @@ -3638,7 +3621,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1483 + // line internal/php5/php5.y:1466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3646,7 +3629,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1489 + // line internal/php5/php5.y:1472 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3654,7 +3637,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1498 + // line internal/php5/php5.y:1481 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3677,7 +3660,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1522 + // line internal/php5/php5.y:1505 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3685,7 +3668,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1528 + // line internal/php5/php5.y:1511 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3696,7 +3679,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1540 + // line internal/php5/php5.y:1523 { yyVAL.node = yyDollar[1].node @@ -3704,7 +3687,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1549 + // line internal/php5/php5.y:1532 { yyVAL.node = yyDollar[1].node @@ -3712,7 +3695,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1558 + // line internal/php5/php5.y:1541 { yyVAL.node = yyDollar[1].node @@ -3720,31 +3703,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1567 + // line internal/php5/php5.y:1550 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1571 + // line internal/php5/php5.y:1554 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1578 + // line internal/php5/php5.y:1561 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1582 + // line internal/php5/php5.y:1565 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1589 + // line internal/php5/php5.y:1572 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3770,7 +3753,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1616 + // line internal/php5/php5.y:1599 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3800,7 +3783,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1644 + // line internal/php5/php5.y:1627 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3819,7 +3802,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1665 + // line internal/php5/php5.y:1648 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3833,7 +3816,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1677 + // line internal/php5/php5.y:1660 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3850,7 +3833,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1692 + // line internal/php5/php5.y:1675 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3864,7 +3847,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1704 + // line internal/php5/php5.y:1687 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3881,7 +3864,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1722 + // line internal/php5/php5.y:1705 { yyVAL.ClassExtends = nil @@ -3889,7 +3872,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1728 + // line internal/php5/php5.y:1711 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3903,13 +3886,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1743 + // line internal/php5/php5.y:1726 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1750 + // line internal/php5/php5.y:1733 { yyVAL.InterfaceExtends = nil @@ -3917,7 +3900,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1756 + // line internal/php5/php5.y:1739 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3931,7 +3914,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1771 + // line internal/php5/php5.y:1754 { yyVAL.ClassImplements = nil @@ -3939,7 +3922,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1777 + // line internal/php5/php5.y:1760 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3953,7 +3936,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1792 + // line internal/php5/php5.y:1775 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3961,7 +3944,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1798 + // line internal/php5/php5.y:1781 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3972,7 +3955,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1810 + // line internal/php5/php5.y:1793 { yyVAL.node = nil @@ -3980,7 +3963,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1816 + // line internal/php5/php5.y:1799 { yyVAL.node = yyDollar[2].node @@ -3991,7 +3974,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1828 + // line internal/php5/php5.y:1811 { yyVAL.node = yyDollar[1].node @@ -3999,7 +3982,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1834 + // line internal/php5/php5.y:1817 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4013,7 +3996,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1846 + // line internal/php5/php5.y:1829 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4029,7 +4012,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1863 + // line internal/php5/php5.y:1846 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4040,7 +4023,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1872 + // line internal/php5/php5.y:1855 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4059,7 +4042,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1892 + // line internal/php5/php5.y:1875 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4070,7 +4053,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1901 + // line internal/php5/php5.y:1884 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4089,7 +4072,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1922 + // line internal/php5/php5.y:1905 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4100,7 +4083,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1931 + // line internal/php5/php5.y:1914 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4119,7 +4102,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1952 + // line internal/php5/php5.y:1935 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4137,7 +4120,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1968 + // line internal/php5/php5.y:1951 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4156,7 +4139,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1989 + // line internal/php5/php5.y:1972 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4173,7 +4156,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2004 + // line internal/php5/php5.y:1987 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4191,7 +4174,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2020 + // line internal/php5/php5.y:2003 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4210,7 +4193,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2037 + // line internal/php5/php5.y:2020 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4231,7 +4214,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2060 + // line internal/php5/php5.y:2043 { yyVAL.list = []ast.Vertex{} @@ -4239,7 +4222,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2066 + // line internal/php5/php5.y:2049 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4256,7 +4239,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2081 + // line internal/php5/php5.y:2064 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4273,19 +4256,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2100 + // line internal/php5/php5.y:2083 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2104 + // line internal/php5/php5.y:2087 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2112 + // line internal/php5/php5.y:2095 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4296,7 +4279,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2121 + // line internal/php5/php5.y:2104 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4315,7 +4298,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2143 + // line internal/php5/php5.y:2126 { yyVAL.list = nil @@ -4323,7 +4306,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2149 + // line internal/php5/php5.y:2132 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4346,7 +4329,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2172 + // line internal/php5/php5.y:2155 { yyVAL.list = nil @@ -4354,7 +4337,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2178 + // line internal/php5/php5.y:2161 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4380,7 +4363,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2204 + // line internal/php5/php5.y:2187 { yyVAL.node = nil @@ -4388,7 +4371,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2210 + // line internal/php5/php5.y:2193 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4402,7 +4385,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2226 + // line internal/php5/php5.y:2209 { yyVAL.node = nil @@ -4410,7 +4393,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2232 + // line internal/php5/php5.y:2215 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4427,7 +4410,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2251 + // line internal/php5/php5.y:2234 { yyVAL.list = yyDollar[1].list @@ -4435,7 +4418,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2257 + // line internal/php5/php5.y:2240 { yyVAL.list = nil @@ -4443,7 +4426,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2266 + // line internal/php5/php5.y:2249 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4451,7 +4434,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2272 + // line internal/php5/php5.y:2255 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4462,7 +4445,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2284 + // line internal/php5/php5.y:2267 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4500,7 +4483,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2320 + // line internal/php5/php5.y:2303 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4539,7 +4522,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2361 + // line internal/php5/php5.y:2344 { yyVAL.node = nil @@ -4547,7 +4530,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2367 + // line internal/php5/php5.y:2350 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4561,7 +4544,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2379 + // line internal/php5/php5.y:2362 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4575,7 +4558,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2391 + // line internal/php5/php5.y:2374 { yyVAL.node = yyDollar[1].node @@ -4583,7 +4566,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2401 + // line internal/php5/php5.y:2384 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4598,7 +4581,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2414 + // line internal/php5/php5.y:2397 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4613,7 +4596,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2427 + // line internal/php5/php5.y:2410 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4630,7 +4613,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2429 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4638,7 +4621,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2452 + // line internal/php5/php5.y:2435 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4649,7 +4632,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2464 + // line internal/php5/php5.y:2447 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4663,7 +4646,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2476 + // line internal/php5/php5.y:2459 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4677,7 +4660,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2488 + // line internal/php5/php5.y:2471 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4691,7 +4674,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2483 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4705,7 +4688,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2515 + // line internal/php5/php5.y:2498 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4716,7 +4699,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2524 + // line internal/php5/php5.y:2507 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4724,7 +4707,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2534 + // line internal/php5/php5.y:2517 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4740,7 +4723,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2548 + // line internal/php5/php5.y:2531 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4754,7 +4737,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2560 + // line internal/php5/php5.y:2543 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4770,7 +4753,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2561 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4790,7 +4773,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2596 + // line internal/php5/php5.y:2579 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4811,7 +4794,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2615 + // line internal/php5/php5.y:2598 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4830,7 +4813,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2632 + // line internal/php5/php5.y:2615 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4850,7 +4833,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2637 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4858,7 +4841,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2660 + // line internal/php5/php5.y:2643 { yyVAL.list = []ast.Vertex{} @@ -4866,7 +4849,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2670 + // line internal/php5/php5.y:2653 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4882,7 +4865,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2684 + // line internal/php5/php5.y:2667 { yyVAL.node = yyDollar[1].node @@ -4897,7 +4880,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2697 + // line internal/php5/php5.y:2680 { yyVAL.node = yyDollar[1].node @@ -4905,7 +4888,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2703 + // line internal/php5/php5.y:2686 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4938,7 +4921,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2737 + // line internal/php5/php5.y:2720 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4952,7 +4935,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2752 + // line internal/php5/php5.y:2735 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4960,7 +4943,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2758 + // line internal/php5/php5.y:2741 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4971,7 +4954,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2770 + // line internal/php5/php5.y:2753 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4985,7 +4968,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2782 + // line internal/php5/php5.y:2765 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4999,7 +4982,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2797 + // line internal/php5/php5.y:2780 { yyVAL.list = nil @@ -5007,7 +4990,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2803 + // line internal/php5/php5.y:2786 { yyVAL.list = yyDollar[1].list @@ -5015,7 +4998,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2812 + // line internal/php5/php5.y:2795 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5023,7 +5006,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2818 + // line internal/php5/php5.y:2801 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5031,7 +5014,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2827 + // line internal/php5/php5.y:2810 { yyVAL.node = yyDollar[1].node @@ -5043,7 +5026,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2837 + // line internal/php5/php5.y:2820 { yyVAL.node = yyDollar[1].node @@ -5055,7 +5038,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2850 + // line internal/php5/php5.y:2833 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5070,7 +5053,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2866 + // line internal/php5/php5.y:2849 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5078,7 +5061,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2872 + // line internal/php5/php5.y:2855 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5089,7 +5072,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2884 + // line internal/php5/php5.y:2867 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5105,7 +5088,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2898 + // line internal/php5/php5.y:2881 { yyVAL.node = yyDollar[1].node @@ -5113,7 +5096,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2907 + // line internal/php5/php5.y:2890 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5131,7 +5114,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2926 + // line internal/php5/php5.y:2909 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5149,7 +5132,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2942 + // line internal/php5/php5.y:2925 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5164,7 +5147,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2958 + // line internal/php5/php5.y:2941 { yyVAL.node = nil @@ -5172,7 +5155,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2964 + // line internal/php5/php5.y:2947 { yyVAL.node = yyDollar[1].node @@ -5180,7 +5163,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2973 + // line internal/php5/php5.y:2956 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5195,7 +5178,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2986 + // line internal/php5/php5.y:2969 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5210,7 +5193,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3002 + // line internal/php5/php5.y:2985 { yyVAL.list = yyDollar[1].list @@ -5218,7 +5201,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3008 + // line internal/php5/php5.y:2991 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5233,7 +5216,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3024 + // line internal/php5/php5.y:3007 { yyVAL.list = nil @@ -5241,7 +5224,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3030 + // line internal/php5/php5.y:3013 { yyVAL.list = yyDollar[1].list @@ -5249,7 +5232,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3039 + // line internal/php5/php5.y:3022 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5257,7 +5240,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3045 + // line internal/php5/php5.y:3028 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5265,7 +5248,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3037 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5279,7 +5262,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3066 + // line internal/php5/php5.y:3049 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5293,7 +5276,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3078 + // line internal/php5/php5.y:3061 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5307,7 +5290,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3090 + // line internal/php5/php5.y:3073 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5321,7 +5304,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3102 + // line internal/php5/php5.y:3085 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5335,7 +5318,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3114 + // line internal/php5/php5.y:3097 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5349,7 +5332,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3129 + // line internal/php5/php5.y:3112 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5369,7 +5352,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3147 + // line internal/php5/php5.y:3130 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5390,7 +5373,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3166 + // line internal/php5/php5.y:3149 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5409,7 +5392,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3183 + // line internal/php5/php5.y:3166 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5429,7 +5412,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3204 + // line internal/php5/php5.y:3187 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5452,7 +5435,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3225 + // line internal/php5/php5.y:3208 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5472,7 +5455,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3246 + // line internal/php5/php5.y:3229 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5483,7 +5466,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3255 + // line internal/php5/php5.y:3238 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5491,7 +5474,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3265 + // line internal/php5/php5.y:3248 { yyVAL.list = nil @@ -5499,7 +5482,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3271 + // line internal/php5/php5.y:3254 { yyVAL.list = yyDollar[1].list @@ -5507,7 +5490,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3280 + // line internal/php5/php5.y:3263 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5518,7 +5501,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3289 + // line internal/php5/php5.y:3272 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5526,7 +5509,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3298 + // line internal/php5/php5.y:3281 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5534,7 +5517,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3304 + // line internal/php5/php5.y:3287 { yyVAL.list = yyDollar[1].list @@ -5542,7 +5525,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3313 + // line internal/php5/php5.y:3296 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5558,7 +5541,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3327 + // line internal/php5/php5.y:3310 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5574,7 +5557,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3344 + // line internal/php5/php5.y:3327 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5582,7 +5565,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3350 + // line internal/php5/php5.y:3333 { yyVAL.list = yyDollar[1].list @@ -5590,7 +5573,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3356 + // line internal/php5/php5.y:3339 { yyVAL.list = yyDollar[1].list @@ -5598,7 +5581,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3365 + // line internal/php5/php5.y:3348 { yyVAL.list = nil @@ -5606,7 +5589,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3371 + // line internal/php5/php5.y:3354 { yyVAL.list = yyDollar[1].list @@ -5614,7 +5597,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3363 { if yyDollar[3].node != nil { @@ -5632,7 +5615,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3399 + // line internal/php5/php5.y:3382 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5651,7 +5634,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3416 + // line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5649,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3429 + // line internal/php5/php5.y:3412 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5682,7 +5665,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3443 + // line internal/php5/php5.y:3426 { var _new *ast.ExprNew @@ -5711,7 +5694,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3470 + // line internal/php5/php5.y:3453 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5725,7 +5708,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3482 + // line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5739,7 +5722,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3494 + // line internal/php5/php5.y:3477 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5754,7 +5737,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3507 + // line internal/php5/php5.y:3490 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5769,7 +5752,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3520 + // line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5784,7 +5767,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3533 + // line internal/php5/php5.y:3516 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5782,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3546 + // line internal/php5/php5.y:3529 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5814,7 +5797,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3559 + // line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5829,7 +5812,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3572 + // line internal/php5/php5.y:3555 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5827,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3585 + // line internal/php5/php5.y:3568 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5842,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3598 + // line internal/php5/php5.y:3581 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5874,7 +5857,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3611 + // line internal/php5/php5.y:3594 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5889,7 +5872,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3624 + // line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5904,7 +5887,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3637 + // line internal/php5/php5.y:3620 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5919,7 +5902,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3650 + // line internal/php5/php5.y:3633 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5933,7 +5916,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3662 + // line internal/php5/php5.y:3645 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5948,7 +5931,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3675 + // line internal/php5/php5.y:3658 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5962,7 +5945,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3687 + // line internal/php5/php5.y:3670 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5977,7 +5960,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3700 + // line internal/php5/php5.y:3683 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5992,7 +5975,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3713 + // line internal/php5/php5.y:3696 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6007,7 +5990,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3726 + // line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6022,7 +6005,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3739 + // line internal/php5/php5.y:3722 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6037,7 +6020,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3752 + // line internal/php5/php5.y:3735 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6052,7 +6035,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3765 + // line internal/php5/php5.y:3748 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6067,7 +6050,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3778 + // line internal/php5/php5.y:3761 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6082,7 +6065,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3791 + // line internal/php5/php5.y:3774 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6097,7 +6080,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3804 + // line internal/php5/php5.y:3787 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6112,7 +6095,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3817 + // line internal/php5/php5.y:3800 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6127,7 +6110,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3830 + // line internal/php5/php5.y:3813 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6142,7 +6125,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3843 + // line internal/php5/php5.y:3826 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6157,7 +6140,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3856 + // line internal/php5/php5.y:3839 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6172,7 +6155,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3869 + // line internal/php5/php5.y:3852 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6187,7 +6170,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3882 + // line internal/php5/php5.y:3865 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6202,7 +6185,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3895 + // line internal/php5/php5.y:3878 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6217,7 +6200,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3908 + // line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6231,7 +6214,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3920 + // line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6245,7 +6228,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3932 + // line internal/php5/php5.y:3915 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6259,7 +6242,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3944 + // line internal/php5/php5.y:3927 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6273,7 +6256,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3956 + // line internal/php5/php5.y:3939 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6288,7 +6271,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3969 + // line internal/php5/php5.y:3952 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6303,7 +6286,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3982 + // line internal/php5/php5.y:3965 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6318,7 +6301,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3995 + // line internal/php5/php5.y:3978 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6334,7 +6317,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4009 + // line internal/php5/php5.y:3992 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6349,7 +6332,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4022 + // line internal/php5/php5.y:4005 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6364,7 +6347,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4035 + // line internal/php5/php5.y:4018 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6379,7 +6362,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4048 + // line internal/php5/php5.y:4031 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6394,7 +6377,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4061 + // line internal/php5/php5.y:4044 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6409,7 +6392,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4074 + // line internal/php5/php5.y:4057 { yyVAL.node = yyDollar[1].node @@ -6422,7 +6405,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4083 + // line internal/php5/php5.y:4066 { yyVAL.node = yyDollar[1].node @@ -6430,7 +6413,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4089 + // line internal/php5/php5.y:4072 { yyVAL.node = yyDollar[2].node @@ -6464,7 +6447,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4121 + // line internal/php5/php5.y:4104 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6480,7 +6463,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4135 + // line internal/php5/php5.y:4118 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6496,7 +6479,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4149 + // line internal/php5/php5.y:4132 { yyVAL.node = yyDollar[1].node @@ -6504,7 +6487,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4155 + // line internal/php5/php5.y:4138 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6519,7 +6502,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4168 + // line internal/php5/php5.y:4151 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6534,7 +6517,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4181 + // line internal/php5/php5.y:4164 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6549,7 +6532,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4194 + // line internal/php5/php5.y:4177 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6564,7 +6547,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4207 + // line internal/php5/php5.y:4190 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6579,7 +6562,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4220 + // line internal/php5/php5.y:4203 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6594,7 +6577,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4233 + // line internal/php5/php5.y:4216 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6609,7 +6592,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4246 + // line internal/php5/php5.y:4229 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6632,7 +6615,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4267 + // line internal/php5/php5.y:4250 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6646,7 +6629,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4279 + // line internal/php5/php5.y:4262 { yyVAL.node = yyDollar[1].node @@ -6654,7 +6637,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4285 + // line internal/php5/php5.y:4268 { yyVAL.node = yyDollar[1].node @@ -6662,7 +6645,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4291 + // line internal/php5/php5.y:4274 { yyVAL.node = yyDollar[1].node @@ -6670,7 +6653,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4297 + // line internal/php5/php5.y:4280 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6684,7 +6667,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4309 + // line internal/php5/php5.y:4292 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6698,7 +6681,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4304 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6712,7 +6695,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4333 + // line internal/php5/php5.y:4316 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6741,7 +6724,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4359 + // line internal/php5/php5.y:4342 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6771,7 +6754,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4372 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6785,7 +6768,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4401 + // line internal/php5/php5.y:4384 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6799,7 +6782,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4413 + // line internal/php5/php5.y:4396 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6814,7 +6797,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4426 + // line internal/php5/php5.y:4409 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6829,7 +6812,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4442 + // line internal/php5/php5.y:4425 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6845,7 +6828,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4456 + // line internal/php5/php5.y:4439 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6861,7 +6844,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4470 + // line internal/php5/php5.y:4453 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6879,7 +6862,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4469 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6895,7 +6878,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4503 + // line internal/php5/php5.y:4486 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6911,7 +6894,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4517 + // line internal/php5/php5.y:4500 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6926,13 +6909,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4533 + // line internal/php5/php5.y:4516 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4540 + // line internal/php5/php5.y:4523 { yyVAL.ClosureUse = nil @@ -6940,7 +6923,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4546 + // line internal/php5/php5.y:4529 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6956,7 +6939,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4563 + // line internal/php5/php5.y:4546 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6974,7 +6957,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4579 + // line internal/php5/php5.y:4562 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6995,7 +6978,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4598 + // line internal/php5/php5.y:4581 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7012,7 +6995,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4613 + // line internal/php5/php5.y:4596 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7032,7 +7015,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4634 + // line internal/php5/php5.y:4617 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7048,7 +7031,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4648 + // line internal/php5/php5.y:4631 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7065,7 +7048,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4663 + // line internal/php5/php5.y:4646 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7081,7 +7064,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4677 + // line internal/php5/php5.y:4660 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7096,7 +7079,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4690 + // line internal/php5/php5.y:4673 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7111,7 +7094,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4703 + // line internal/php5/php5.y:4686 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7126,7 +7109,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4716 + // line internal/php5/php5.y:4699 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7141,7 +7124,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4729 + // line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7155,7 +7138,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4744 + // line internal/php5/php5.y:4727 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7169,7 +7152,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4756 + // line internal/php5/php5.y:4739 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7183,7 +7166,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4768 + // line internal/php5/php5.y:4751 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7198,7 +7181,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4781 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7212,7 +7195,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4796 + // line internal/php5/php5.y:4779 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7226,7 +7209,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4808 + // line internal/php5/php5.y:4791 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7241,7 +7224,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4821 + // line internal/php5/php5.y:4804 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7255,7 +7238,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4836 + // line internal/php5/php5.y:4819 { yyVAL.node = yyDollar[1].node @@ -7263,7 +7246,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4842 + // line internal/php5/php5.y:4825 { yyVAL.node = yyDollar[1].node @@ -7271,7 +7254,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4851 + // line internal/php5/php5.y:4834 { yyVAL.node = yyDollar[1].node @@ -7314,7 +7297,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4892 + // line internal/php5/php5.y:4875 { yyVAL.node = yyDollar[1].node @@ -7322,7 +7305,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4902 + // line internal/php5/php5.y:4885 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7330,7 +7313,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4908 + // line internal/php5/php5.y:4891 { yyVAL.list = []ast.Vertex{} @@ -7338,7 +7321,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4918 + // line internal/php5/php5.y:4901 { yyVAL.list = yyDollar[2].list @@ -7349,7 +7332,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4913 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7357,7 +7340,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4919 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7372,7 +7355,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4949 + // line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7393,7 +7376,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4969 + // line internal/php5/php5.y:4952 { yyVAL.list = []ast.Vertex{} @@ -7401,7 +7384,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4975 + // line internal/php5/php5.y:4958 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7413,7 +7396,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4985 + // line internal/php5/php5.y:4968 { yyVAL.list = yyDollar[1].list @@ -7421,7 +7404,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4994 + // line internal/php5/php5.y:4977 { yyVAL.node = nil @@ -7429,7 +7412,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5000 + // line internal/php5/php5.y:4983 { yyVAL.node = yyDollar[1].node @@ -7437,7 +7420,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5009 + // line internal/php5/php5.y:4992 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7451,7 +7434,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5004 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7465,7 +7448,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5033 + // line internal/php5/php5.y:5016 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7479,7 +7462,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5045 + // line internal/php5/php5.y:5028 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7493,7 +7476,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5057 + // line internal/php5/php5.y:5040 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7507,7 +7490,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5069 + // line internal/php5/php5.y:5052 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7521,7 +7504,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5081 + // line internal/php5/php5.y:5064 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7535,7 +7518,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5093 + // line internal/php5/php5.y:5076 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7549,7 +7532,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5105 + // line internal/php5/php5.y:5088 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7563,7 +7546,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5117 + // line internal/php5/php5.y:5100 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7577,7 +7560,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5112 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7593,7 +7576,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5143 + // line internal/php5/php5.y:5126 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7607,7 +7590,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5158 + // line internal/php5/php5.y:5141 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7625,7 +7608,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5177 + // line internal/php5/php5.y:5160 { yyVAL.node = yyDollar[1].node @@ -7633,7 +7616,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5186 + // line internal/php5/php5.y:5169 { yyVAL.node = yyDollar[1].node @@ -7641,7 +7624,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5192 + // line internal/php5/php5.y:5175 { yyVAL.node = yyDollar[1].node @@ -7649,7 +7632,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5198 + // line internal/php5/php5.y:5181 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7665,7 +7648,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5212 + // line internal/php5/php5.y:5195 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7682,7 +7665,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5227 + // line internal/php5/php5.y:5210 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7698,7 +7681,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5241 + // line internal/php5/php5.y:5224 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7714,7 +7697,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5255 + // line internal/php5/php5.y:5238 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7729,7 +7712,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5268 + // line internal/php5/php5.y:5251 { yyVAL.node = yyDollar[1].node @@ -7737,7 +7720,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5257 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7751,7 +7734,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5286 + // line internal/php5/php5.y:5269 { yyVAL.node = yyDollar[1].node @@ -7759,7 +7742,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5295 + // line internal/php5/php5.y:5278 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7775,7 +7758,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5309 + // line internal/php5/php5.y:5292 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7790,7 +7773,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5322 + // line internal/php5/php5.y:5305 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7805,7 +7788,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5335 + // line internal/php5/php5.y:5318 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7820,7 +7803,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5348 + // line internal/php5/php5.y:5331 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7835,7 +7818,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5361 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7850,7 +7833,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5374 + // line internal/php5/php5.y:5357 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7865,7 +7848,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5387 + // line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7879,7 +7862,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5399 + // line internal/php5/php5.y:5382 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7893,7 +7876,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5411 + // line internal/php5/php5.y:5394 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7908,7 +7891,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5424 + // line internal/php5/php5.y:5407 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7923,7 +7906,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5437 + // line internal/php5/php5.y:5420 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7938,7 +7921,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5450 + // line internal/php5/php5.y:5433 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7953,7 +7936,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5463 + // line internal/php5/php5.y:5446 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7968,7 +7951,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5476 + // line internal/php5/php5.y:5459 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7983,7 +7966,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5489 + // line internal/php5/php5.y:5472 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7998,7 +7981,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5502 + // line internal/php5/php5.y:5485 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8013,7 +7996,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5515 + // line internal/php5/php5.y:5498 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8028,7 +8011,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5528 + // line internal/php5/php5.y:5511 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8043,7 +8026,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5541 + // line internal/php5/php5.y:5524 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8058,7 +8041,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5554 + // line internal/php5/php5.y:5537 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8073,7 +8056,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8088,7 +8071,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5580 + // line internal/php5/php5.y:5563 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8103,7 +8086,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5593 + // line internal/php5/php5.y:5576 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8119,7 +8102,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5590 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8134,7 +8117,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5620 + // line internal/php5/php5.y:5603 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8149,7 +8132,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5633 + // line internal/php5/php5.y:5616 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8164,7 +8147,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5646 + // line internal/php5/php5.y:5629 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8179,7 +8162,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5659 + // line internal/php5/php5.y:5642 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8195,7 +8178,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5673 + // line internal/php5/php5.y:5656 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8211,7 +8194,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5687 + // line internal/php5/php5.y:5670 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8225,7 +8208,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5699 + // line internal/php5/php5.y:5682 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8239,7 +8222,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5711 + // line internal/php5/php5.y:5694 { yyVAL.node = yyDollar[2].node @@ -8251,7 +8234,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5724 + // line internal/php5/php5.y:5707 { yyVAL.node = yyDollar[1].node @@ -8259,7 +8242,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5730 + // line internal/php5/php5.y:5713 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8275,7 +8258,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5744 + // line internal/php5/php5.y:5727 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8292,7 +8275,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5742 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8308,7 +8291,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5776 + // line internal/php5/php5.y:5759 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8324,7 +8307,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5790 + // line internal/php5/php5.y:5773 { yyVAL.node = yyDollar[1].node @@ -8332,7 +8315,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5796 + // line internal/php5/php5.y:5779 { yyVAL.node = yyDollar[1].node @@ -8340,7 +8323,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5802 + // line internal/php5/php5.y:5785 { yyVAL.node = yyDollar[1].node @@ -8348,7 +8331,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5808 + // line internal/php5/php5.y:5791 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8362,7 +8345,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5820 + // line internal/php5/php5.y:5803 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8376,7 +8359,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5832 + // line internal/php5/php5.y:5815 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8390,7 +8373,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5847 + // line internal/php5/php5.y:5830 { yyVAL.list = nil @@ -8398,7 +8381,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5853 + // line internal/php5/php5.y:5836 { yyVAL.list = yyDollar[1].list @@ -8411,19 +8394,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5867 + // line internal/php5/php5.y:5850 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5871 + // line internal/php5/php5.y:5854 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5878 + // line internal/php5/php5.y:5861 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8440,7 +8423,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5893 + // line internal/php5/php5.y:5876 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8456,7 +8439,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5907 + // line internal/php5/php5.y:5890 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8472,7 +8455,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5921 + // line internal/php5/php5.y:5904 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8487,7 +8470,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5937 + // line internal/php5/php5.y:5920 { yyVAL.node = yyDollar[1].node @@ -8495,7 +8478,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5943 + // line internal/php5/php5.y:5926 { yyVAL.node = yyDollar[1].node @@ -8503,7 +8486,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5952 + // line internal/php5/php5.y:5935 { yyVAL.node = yyDollar[2].node @@ -8521,7 +8504,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5968 + // line internal/php5/php5.y:5951 { yyVAL.node = yyDollar[2].node @@ -8539,7 +8522,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5988 + // line internal/php5/php5.y:5971 { yyVAL.node = yyDollar[1].node @@ -8547,7 +8530,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5998 + // line internal/php5/php5.y:5981 { yyVAL.node = yyDollar[1].node @@ -8555,7 +8538,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6007 + // line internal/php5/php5.y:5990 { yyVAL.node = yyDollar[1].node @@ -8563,7 +8546,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6016 + // line internal/php5/php5.y:5999 { yyVAL.node = yyDollar[1].node @@ -8623,7 +8606,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6074 + // line internal/php5/php5.y:6057 { yyVAL.node = yyDollar[1].node @@ -8631,7 +8614,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6083 + // line internal/php5/php5.y:6066 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8639,7 +8622,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6089 + // line internal/php5/php5.y:6072 { yyVAL.list = []ast.Vertex{} @@ -8647,7 +8630,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6099 + // line internal/php5/php5.y:6082 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8663,7 +8646,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6116 + // line internal/php5/php5.y:6099 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8679,7 +8662,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6130 + // line internal/php5/php5.y:6113 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8695,7 +8678,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6147 + // line internal/php5/php5.y:6130 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8706,7 +8689,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6159 + // line internal/php5/php5.y:6142 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8714,7 +8697,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6165 + // line internal/php5/php5.y:6148 { yyVAL.list = yyDollar[1].list @@ -8722,7 +8705,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6171 + // line internal/php5/php5.y:6154 { yyVAL.list = nil @@ -8730,7 +8713,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6180 + // line internal/php5/php5.y:6163 { yyVAL.node = yyDollar[1].node @@ -8738,7 +8721,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6186 + // line internal/php5/php5.y:6169 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8752,7 +8735,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6201 + // line internal/php5/php5.y:6184 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8767,7 +8750,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6214 + // line internal/php5/php5.y:6197 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8782,7 +8765,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6230 + // line internal/php5/php5.y:6213 { yyVAL.node = yyDollar[1].node @@ -8790,7 +8773,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6239 + // line internal/php5/php5.y:6222 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8806,7 +8789,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6253 + // line internal/php5/php5.y:6236 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8822,7 +8805,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6270 + // line internal/php5/php5.y:6253 { yyVAL.node = yyDollar[1].node @@ -8830,7 +8813,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6276 + // line internal/php5/php5.y:6259 { yyVAL.node = yyDollar[1].node @@ -8838,7 +8821,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6282 + // line internal/php5/php5.y:6265 { yyVAL.node = yyDollar[1].node @@ -8846,7 +8829,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6292 + // line internal/php5/php5.y:6275 { yyVAL.node = yyDollar[1].node @@ -8854,7 +8837,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6298 + // line internal/php5/php5.y:6281 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8868,7 +8851,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6293 { yyVAL.node = yyDollar[1].node @@ -8876,7 +8859,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6319 + // line internal/php5/php5.y:6302 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8892,7 +8875,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6333 + // line internal/php5/php5.y:6316 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8908,7 +8891,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6347 + // line internal/php5/php5.y:6330 { yyVAL.node = yyDollar[1].node @@ -8916,7 +8899,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6357 + // line internal/php5/php5.y:6340 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8932,7 +8915,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6371 + // line internal/php5/php5.y:6354 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8948,7 +8931,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6388 + // line internal/php5/php5.y:6371 { yyVAL.node = nil @@ -8956,7 +8939,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6394 + // line internal/php5/php5.y:6377 { yyVAL.node = yyDollar[1].node @@ -8964,7 +8947,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6404 + // line internal/php5/php5.y:6387 { yyVAL.list = yyDollar[1].list @@ -8972,7 +8955,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6410 + // line internal/php5/php5.y:6393 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8984,7 +8967,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6423 + // line internal/php5/php5.y:6406 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9000,7 +8983,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6437 + // line internal/php5/php5.y:6420 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9016,7 +8999,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6451 + // line internal/php5/php5.y:6434 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9028,7 +9011,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6464 + // line internal/php5/php5.y:6447 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9042,7 +9025,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6476 + // line internal/php5/php5.y:6459 { yyVAL.node = yyDollar[2].node @@ -9057,7 +9040,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6492 + // line internal/php5/php5.y:6475 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9072,7 +9055,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6505 + // line internal/php5/php5.y:6488 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9091,7 +9074,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6525 + // line internal/php5/php5.y:6508 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9106,7 +9089,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6538 + // line internal/php5/php5.y:6521 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9118,7 +9101,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6552 + // line internal/php5/php5.y:6535 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9132,7 +9115,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6564 + // line internal/php5/php5.y:6547 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9150,7 +9133,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6580 + // line internal/php5/php5.y:6563 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9158,7 +9141,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6590 + // line internal/php5/php5.y:6573 { yyVAL.list = []ast.Vertex{} @@ -9166,7 +9149,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6596 + // line internal/php5/php5.y:6579 { yyVAL.list = yyDollar[1].list @@ -9183,7 +9166,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6614 + // line internal/php5/php5.y:6597 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9200,7 +9183,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6629 + // line internal/php5/php5.y:6612 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9216,7 +9199,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6643 + // line internal/php5/php5.y:6626 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9232,7 +9215,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6657 + // line internal/php5/php5.y:6640 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9247,7 +9230,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6670 + // line internal/php5/php5.y:6653 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9267,7 +9250,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6688 + // line internal/php5/php5.y:6671 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9285,7 +9268,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6704 + // line internal/php5/php5.y:6687 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9304,7 +9287,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6721 + // line internal/php5/php5.y:6704 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9321,7 +9304,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6739 + // line internal/php5/php5.y:6722 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9329,7 +9312,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6745 + // line internal/php5/php5.y:6728 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9344,7 +9327,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6758 + // line internal/php5/php5.y:6741 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9352,7 +9335,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6764 + // line internal/php5/php5.y:6747 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9367,7 +9350,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6780 + // line internal/php5/php5.y:6763 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9383,7 +9366,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6794 + // line internal/php5/php5.y:6777 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9402,7 +9385,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6811 + // line internal/php5/php5.y:6794 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9423,7 +9406,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6830 + // line internal/php5/php5.y:6813 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9440,7 +9423,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6845 + // line internal/php5/php5.y:6828 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9459,7 +9442,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6862 + // line internal/php5/php5.y:6845 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9480,7 +9463,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6881 + // line internal/php5/php5.y:6864 { yyVAL.node = yyDollar[2].node @@ -9492,7 +9475,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6894 + // line internal/php5/php5.y:6877 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9506,7 +9489,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6906 + // line internal/php5/php5.y:6889 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9525,7 +9508,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6923 + // line internal/php5/php5.y:6906 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9541,7 +9524,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6940 + // line internal/php5/php5.y:6923 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9557,7 +9540,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6954 + // line internal/php5/php5.y:6937 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9573,7 +9556,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6968 + // line internal/php5/php5.y:6951 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9589,7 +9572,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6982 + // line internal/php5/php5.y:6965 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9603,7 +9586,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6994 + // line internal/php5/php5.y:6977 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9617,7 +9600,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:7006 + // line internal/php5/php5.y:6989 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9633,7 +9616,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7020 + // line internal/php5/php5.y:7003 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9647,7 +9630,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7032 + // line internal/php5/php5.y:7015 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9661,7 +9644,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7047 + // line internal/php5/php5.y:7030 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9669,7 +9652,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7053 + // line internal/php5/php5.y:7036 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9680,7 +9663,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7065 + // line internal/php5/php5.y:7048 { yyVAL.node = yyDollar[1].node @@ -9688,7 +9671,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7071 + // line internal/php5/php5.y:7054 { yyVAL.node = yyDollar[1].node @@ -9696,7 +9679,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7080 + // line internal/php5/php5.y:7063 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9714,7 +9697,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7096 + // line internal/php5/php5.y:7079 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9732,7 +9715,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7115 + // line internal/php5/php5.y:7098 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9750,7 +9733,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7134 + // line internal/php5/php5.y:7117 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 50aa2a5..3e87194 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -428,49 +428,56 @@ top_statement: } | T_USE use_declarations ';' { - $$ = &ast.StmtUseList{ast.Node{}, nil, $2} + useList := &ast.StmtUseList{ast.Node{}, $2} + $$ = &ast.StmtUse{ast.Node{}, useList} // save position + useList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE T_FUNCTION use_function_declarations ';' { - useType := &ast.Identifier{ast.Node{}, $2.Value} - $$ = &ast.StmtUseList{ast.Node{}, useType, $3} + identifier := &ast.Identifier{ast.Node{}, $2.Value} + useList := &ast.StmtUseList{ast.Node{}, $3} + useType := &ast.StmtUseType{ast.Node{}, identifier, useList} + $$ = &ast.StmtUse{ast.Node{}, useType} // save position - useType.GetNode().Position = position.NewTokenPosition($2) + identifier.GetNode().Position = position.NewTokenPosition($2) + useList.GetNode().Position = position.NewNodeListPosition($3) + useType.GetNode().Position = position.NewTokenNodePosition($2, useList) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments + yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE T_CONST use_const_declarations ';' { - useType := &ast.Identifier{ast.Node{}, $2.Value} - $$ = &ast.StmtUseList{ast.Node{}, useType, $3} + identifier := &ast.Identifier{ast.Node{}, $2.Value} + useList := &ast.StmtUseList{ast.Node{}, $3} + useType := &ast.StmtUseType{ast.Node{}, identifier, useList} + $$ = &ast.StmtUse{ast.Node{}, useType} // save position - useType.GetNode().Position = position.NewTokenPosition($2) + identifier.GetNode().Position = position.NewTokenPosition($2) + useList.GetNode().Position = position.NewNodeListPosition($3) + useType.GetNode().Position = position.NewTokenNodePosition($2, useList) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments + yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(useType, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -511,22 +518,19 @@ use_declaration: namespace_name { name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodeListPosition($1) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition($1) @@ -534,7 +538,6 @@ use_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) @@ -543,16 +546,14 @@ use_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -560,7 +561,7 @@ use_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition($2) @@ -568,9 +569,7 @@ use_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) @@ -600,22 +599,19 @@ use_function_declaration: namespace_name { name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodeListPosition($1) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition($1) @@ -623,7 +619,6 @@ use_function_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) @@ -632,16 +627,14 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -649,7 +642,7 @@ use_function_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition($2) @@ -657,9 +650,7 @@ use_function_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) @@ -689,22 +680,19 @@ use_const_declaration: namespace_name { name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodeListPosition($1) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition($1) @@ -712,7 +700,6 @@ use_const_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) @@ -721,16 +708,14 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewNodeListPosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -738,7 +723,7 @@ use_const_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition($2) @@ -746,9 +731,7 @@ use_const_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index d36ab6d..7c4c4c6 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -8525,7 +8525,7 @@ func TestPhp5(t *testing.T) { }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 154, @@ -8534,17 +8534,17 @@ func TestPhp5(t *testing.T) { EndPos: 3289, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3285, + EndPos: 3288, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 154, @@ -8553,24 +8553,34 @@ func TestPhp5(t *testing.T) { EndPos: 3288, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3285, + EndPos: 3288, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3285, + EndPos: 3288, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 155, @@ -8579,17 +8589,17 @@ func TestPhp5(t *testing.T) { EndPos: 3299, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3295, - EndPos: 3298, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3295, + EndPos: 3298, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 155, @@ -8598,24 +8608,34 @@ func TestPhp5(t *testing.T) { EndPos: 3298, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3295, - EndPos: 3298, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3295, + EndPos: 3298, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3295, + EndPos: 3298, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 156, @@ -8624,54 +8644,64 @@ func TestPhp5(t *testing.T) { EndPos: 3316, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3305, - EndPos: 3315, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3305, + EndPos: 3315, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 156, EndLine: 156, StartPos: 3305, - EndPos: 3308, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3305, - EndPos: 3308, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3312, EndPos: 3315, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3305, + EndPos: 3308, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3305, + EndPos: 3308, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3312, + EndPos: 3315, + }, + }, + Value: []byte("Bar"), + }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 157, @@ -8680,17 +8710,17 @@ func TestPhp5(t *testing.T) { EndPos: 3330, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3324, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3321, + EndPos: 3329, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 157, @@ -8699,31 +8729,31 @@ func TestPhp5(t *testing.T) { EndPos: 3324, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3324, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3321, + EndPos: 3324, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3321, + EndPos: 3324, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3329, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 157, @@ -8732,24 +8762,34 @@ func TestPhp5(t *testing.T) { EndPos: 3329, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3329, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3326, + EndPos: 3329, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3326, + EndPos: 3329, + }, + }, + Value: []byte("Bar"), }, - Value: []byte("Bar"), }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 158, @@ -8758,17 +8798,17 @@ func TestPhp5(t *testing.T) { EndPos: 3351, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3338, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3335, + EndPos: 3350, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 158, @@ -8777,68 +8817,78 @@ func TestPhp5(t *testing.T) { EndPos: 3338, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3338, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3335, + EndPos: 3338, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3335, + EndPos: 3338, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3340, - EndPos: 3350, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 158, EndLine: 158, StartPos: 3340, - EndPos: 3343, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3340, - EndPos: 3343, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3347, EndPos: 3350, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3340, + EndPos: 3343, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3340, + EndPos: 3343, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3347, + EndPos: 3350, + }, + }, + Value: []byte("Baz"), + }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, @@ -8847,38 +8897,46 @@ func TestPhp5(t *testing.T) { EndPos: 3375, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, StartPos: 3356, - EndPos: 3364, + EndPos: 3374, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3356, + EndPos: 3364, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, StartPos: 3365, - EndPos: 3368, + EndPos: 3374, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3365, - EndPos: 3368, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3365, + EndPos: 3368, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, @@ -8887,31 +8945,31 @@ func TestPhp5(t *testing.T) { EndPos: 3368, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3365, + EndPos: 3368, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3371, - EndPos: 3374, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3371, - EndPos: 3374, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3371, + EndPos: 3374, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, @@ -8920,14 +8978,26 @@ func TestPhp5(t *testing.T) { EndPos: 3374, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3371, + EndPos: 3374, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, @@ -8936,38 +9006,46 @@ func TestPhp5(t *testing.T) { EndPos: 3413, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, StartPos: 3380, - EndPos: 3388, + EndPos: 3412, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3380, + EndPos: 3388, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, StartPos: 3389, - EndPos: 3399, + EndPos: 3412, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3389, - EndPos: 3392, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3389, + EndPos: 3399, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, @@ -8976,42 +9054,42 @@ func TestPhp5(t *testing.T) { EndPos: 3392, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3389, + EndPos: 3392, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3396, + EndPos: 3399, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3396, - EndPos: 3399, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3402, + EndPos: 3412, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3402, - EndPos: 3412, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3402, - EndPos: 3405, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, @@ -9020,25 +9098,37 @@ func TestPhp5(t *testing.T) { EndPos: 3405, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3402, + EndPos: 3405, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3409, + EndPos: 3412, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3409, - EndPos: 3412, - }, - }, - Value: []byte("bar"), - }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9047,38 +9137,46 @@ func TestPhp5(t *testing.T) { EndPos: 3434, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, StartPos: 3418, - EndPos: 3423, + EndPos: 3433, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3418, + EndPos: 3423, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, StartPos: 3424, - EndPos: 3427, + EndPos: 3433, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3424, - EndPos: 3427, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3424, + EndPos: 3427, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9087,31 +9185,31 @@ func TestPhp5(t *testing.T) { EndPos: 3427, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3424, + EndPos: 3427, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3430, - EndPos: 3433, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3430, - EndPos: 3433, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3430, + EndPos: 3433, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9120,14 +9218,26 @@ func TestPhp5(t *testing.T) { EndPos: 3433, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3430, + EndPos: 3433, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, @@ -9136,38 +9246,46 @@ func TestPhp5(t *testing.T) { EndPos: 3469, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, StartPos: 3439, - EndPos: 3444, + EndPos: 3468, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3439, + EndPos: 3444, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, StartPos: 3445, - EndPos: 3455, + EndPos: 3468, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3445, - EndPos: 3448, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3445, + EndPos: 3455, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, @@ -9176,42 +9294,42 @@ func TestPhp5(t *testing.T) { EndPos: 3448, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3445, + EndPos: 3448, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3452, + EndPos: 3455, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3452, - EndPos: 3455, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3458, + EndPos: 3468, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3458, - EndPos: 3468, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3458, - EndPos: 3461, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, @@ -9220,21 +9338,33 @@ func TestPhp5(t *testing.T) { EndPos: 3461, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3458, + EndPos: 3461, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3465, + EndPos: 3468, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3465, - EndPos: 3468, - }, - }, - Value: []byte("bar"), - }, }, }, }, diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 47a0eca..22f0676 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -12422,7 +12422,7 @@ func TestStmtUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12431,17 +12431,17 @@ func TestStmtUse(t *testing.T) { EndPos: 11, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12450,17 +12450,27 @@ func TestStmtUse(t *testing.T) { EndPos: 10, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, @@ -12490,7 +12500,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12499,17 +12509,17 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 12, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12518,17 +12528,27 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 11, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, @@ -12558,7 +12578,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12567,49 +12587,59 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 19, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 18, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 18, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, - EndPos: 11, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, EndPos: 18, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + }, + Value: []byte("Bar"), + }, }, }, }, @@ -12637,7 +12667,7 @@ func TestStmtUse_List(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12646,17 +12676,17 @@ func TestStmtUse_List(t *testing.T) { EndPos: 16, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 15, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12665,31 +12695,31 @@ func TestStmtUse_List(t *testing.T) { EndPos: 10, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12698,17 +12728,27 @@ func TestStmtUse_List(t *testing.T) { EndPos: 15, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), }, - Value: []byte("Bar"), }, }, }, @@ -12738,7 +12778,7 @@ func TestStmtUse_ListAlias(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12747,17 +12787,17 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 23, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 22, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12766,63 +12806,73 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 10, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 22, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, - EndPos: 15, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, EndPos: 22, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, + }, + }, + Value: []byte("Baz"), + }, }, }, }, @@ -12850,7 +12900,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12859,38 +12909,46 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 26, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 15, + EndPos: 25, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 15, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 19, + EndPos: 25, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12899,31 +12957,31 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 19, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 25, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 25, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 25, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12932,7 +12990,19 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 25, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 25, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, @@ -12962,7 +13032,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12971,38 +13041,46 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 40, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 15, + EndPos: 39, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 15, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 26, + EndPos: 39, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 26, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13011,42 +13089,42 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 19, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 39, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 39, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 32, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13055,21 +13133,33 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 32, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 32, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 36, + EndPos: 39, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 36, - EndPos: 39, - }, - }, - Value: []byte("bar"), - }, }, }, }, @@ -13096,7 +13186,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13105,38 +13195,47 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 23, }, }, - UseType: &ast.Identifier{ + + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 12, + EndPos: 22, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 12, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 16, + EndPos: 22, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13145,31 +13244,31 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 16, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13178,7 +13277,19 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 22, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, @@ -13208,7 +13319,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13217,38 +13328,46 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 37, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 12, + EndPos: 36, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 12, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 23, + EndPos: 36, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 23, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13257,42 +13376,42 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 16, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 23, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 20, - EndPos: 23, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 36, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 36, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13301,21 +13420,33 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 29, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 36, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 36, - }, - }, - Value: []byte("bar"), - }, }, }, }, @@ -13342,7 +13473,7 @@ func TestStmtUse_GroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13351,50 +13482,58 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 22, }, }, - Prefix: &ast.NameName{ + UseList: &ast.StmtGroupUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 10, + EndPos: 21, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, - EndPos: 15, + EndPos: 20, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13403,31 +13542,31 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 15, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 20, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 20, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 20, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13436,7 +13575,19 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 20, }, }, - Value: []byte("Baz"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 20, + }, + }, + Value: []byte("Baz"), + }, + }, }, }, }, @@ -13466,7 +13617,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13475,50 +13626,58 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 30, }, }, - Prefix: &ast.NameName{ + UseList: &ast.StmtGroupUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 10, + EndPos: 29, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, - EndPos: 15, + EndPos: 28, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13527,31 +13686,31 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 15, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 28, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 20, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 28, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13560,21 +13719,33 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 20, }, }, - Value: []byte("Baz"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 20, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 28, + }, + }, + Value: []byte("quux"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 28, - }, - }, - Value: []byte("quux"), - }, }, }, }, @@ -13601,7 +13772,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13610,28 +13781,36 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 31, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 15, + EndPos: 30, }, }, - Value: []byte("function"), - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 15, + }, }, + Value: []byte("function"), }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.StmtGroupUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 30, + }, + }, + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13640,31 +13819,31 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 19, }, }, - Value: []byte("Foo"), - }, - }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 21, - EndPos: 24, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("Foo"), + }, }, }, - Use: &ast.NameName{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 21, - EndPos: 24, + EndPos: 29, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13673,31 +13852,31 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 24, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 24, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 24, + }, + }, + Value: []byte("Bar"), + }, + }, + }, }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13706,7 +13885,29 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 29, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Value: []byte("Baz"), + }, + }, + }, }, }, }, @@ -13736,7 +13937,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13745,28 +13946,36 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 28, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 12, + EndPos: 27, }, }, - Value: []byte("const"), - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 12, + }, }, + Value: []byte("const"), }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.StmtGroupUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 27, + }, + }, + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13775,31 +13984,31 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 16, }, }, - Value: []byte("Foo"), - }, - }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 21, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, + }, + }, + Value: []byte("Foo"), + }, }, }, - Use: &ast.NameName{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 18, - EndPos: 21, + EndPos: 26, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13808,31 +14017,31 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 21, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 21, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 21, + }, + }, + Value: []byte("Bar"), + }, + }, + }, }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13841,7 +14050,29 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 26, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + }, + Value: []byte("Baz"), + }, + }, + }, }, }, }, @@ -13871,7 +14102,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13880,61 +14111,69 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 37, }, }, - Prefix: &ast.NameName{ + UseList: &ast.StmtGroupUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 10, + EndPos: 36, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 18, - EndPos: 21, + StartPos: 7, + EndPos: 10, }, }, - UseType: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 17, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, }, + Value: []byte("Foo"), }, - Value: []byte("const"), }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 21, - }, + }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 35, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseType{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 21, + }, + }, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 17, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13943,42 +14182,52 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 21, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 21, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 21, + }, + }, + Value: []byte("Bar"), + }, + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 32, - EndPos: 35, - }, - }, - UseType: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 31, + &ast.StmtUseType{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 35, + }, }, - }, - Value: []byte("function"), - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 32, - EndPos: 35, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 31, + }, + }, + Value: []byte("function"), }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13987,7 +14236,29 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 35, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 32, + EndPos: 35, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 32, + EndPos: 35, + }, + }, + Value: []byte("Baz"), + }, + }, + }, }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e54c1a7..33a3f5e 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5626 +// line internal/php7/php7.y:5623 // line yacctab:1 var yyExca = [...]int{ @@ -2808,48 +2808,48 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:530 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.StmtUse{ast.Node{}, yyDollar[2].node} // save position yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:544 + // line internal/php7/php7.y:543 { - yyDollar[3].node.(*ast.StmtGroupUse).UseType = yyDollar[2].node - yyVAL.node = yyDollar[3].node + useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, yyDollar[3].node} + yyVAL.node = &ast.StmtUse{ast.Node{}, useType} // save position + useType.GetNode().Position = position.NewNodesPosition(yyDollar[2].node, yyDollar[3].node) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:559 + // line internal/php7/php7.y:558 { - yyVAL.node = &ast.StmtUseList{ast.Node{}, nil, yyDollar[2].list} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} + yyVAL.node = &ast.StmtUse{ast.Node{}, useList} // save position + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2857,21 +2857,24 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:573 { - yyVAL.node = &ast.StmtUseList{ast.Node{}, yyDollar[2].node, yyDollar[3].list} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} + useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, useList} + yyVAL.node = &ast.StmtUse{ast.Node{}, useType} // save position + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + useType.GetNode().Position = position.NewNodesPosition(yyDollar[2].node, useList) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseDeclarationList, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:587 + // line internal/php7/php7.y:590 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2887,7 +2890,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:604 + // line internal/php7/php7.y:607 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2901,7 +2904,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:616 + // line internal/php7/php7.y:619 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2915,113 +2918,113 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:631 + // line internal/php7/php7.y:634 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[6].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:652 + // line internal/php7/php7.y:655 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.UseType, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[7].token.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:677 + // line internal/php7/php7.y:680 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[4].list} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:698 + // line internal/php7/php7.y:701 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtGroupUse{ast.Node{}, nil, name, yyDollar[5].list} + useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Use, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Slash, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[7].token.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:723 + // line internal/php7/php7.y:726 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:727 + // line internal/php7/php7.y:730 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:734 + // line internal/php7/php7.y:737 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3032,7 +3035,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:743 + // line internal/php7/php7.y:746 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3040,7 +3043,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:752 + // line internal/php7/php7.y:755 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3051,7 +3054,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:761 + // line internal/php7/php7.y:764 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3059,7 +3062,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:770 + // line internal/php7/php7.y:773 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3070,7 +3073,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:779 + // line internal/php7/php7.y:782 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3078,7 +3081,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:788 + // line internal/php7/php7.y:791 { yyVAL.node = yyDollar[1].node @@ -3086,36 +3089,35 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:794 + // line internal/php7/php7.y:797 { - yyDollar[2].node.(*ast.StmtUse).UseType = yyDollar[1].node - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.StmtUseType{ast.Node{}, yyDollar[1].node, yyDollar[2].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:804 + // line internal/php7/php7.y:809 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, nil} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) + yyVAL.node.GetNode().Position = position.NewNodePosition(name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:818 + // line internal/php7/php7.y:820 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUse{ast.Node{}, nil, name, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -3123,7 +3125,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], name) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) @@ -3131,30 +3132,26 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:839 + // line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node - // save coments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node.(*ast.StmtUse).Use, yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:848 + // line internal/php7/php7.y:846 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Slash, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:861 + // line internal/php7/php7.y:858 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3165,7 +3162,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 + // line internal/php7/php7.y:867 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3173,7 +3170,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:879 + // line internal/php7/php7.y:876 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3188,7 +3185,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:892 + // line internal/php7/php7.y:889 { yyVAL.list = []ast.Vertex{} @@ -3196,7 +3193,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:901 + // line internal/php7/php7.y:898 { // error yyVAL.node = nil @@ -3205,7 +3202,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:908 + // line internal/php7/php7.y:905 { yyVAL.node = yyDollar[1].node @@ -3213,7 +3210,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:914 + // line internal/php7/php7.y:911 { yyVAL.node = yyDollar[1].node @@ -3221,7 +3218,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:920 + // line internal/php7/php7.y:917 { yyVAL.node = yyDollar[1].node @@ -3229,7 +3226,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:926 + // line internal/php7/php7.y:923 { yyVAL.node = yyDollar[1].node @@ -3237,7 +3234,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:932 + // line internal/php7/php7.y:929 { yyVAL.node = yyDollar[1].node @@ -3245,7 +3242,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:938 + // line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3263,7 +3260,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:956 + // line internal/php7/php7.y:953 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3278,7 +3275,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:969 + // line internal/php7/php7.y:966 { yyVAL.node = yyDollar[1].node @@ -3286,7 +3283,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:975 + // line internal/php7/php7.y:972 { yyVAL.node = yyDollar[1].node @@ -3294,7 +3291,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:981 + // line internal/php7/php7.y:978 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3317,7 +3314,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1002 + // line internal/php7/php7.y:999 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3336,7 +3333,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1019 + // line internal/php7/php7.y:1016 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3365,7 +3362,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1046 + // line internal/php7/php7.y:1043 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3390,7 +3387,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1069 + // line internal/php7/php7.y:1066 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3406,7 +3403,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1083 + // line internal/php7/php7.y:1080 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3422,7 +3419,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1097 + // line internal/php7/php7.y:1094 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3438,7 +3435,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1111 + // line internal/php7/php7.y:1108 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3454,7 +3451,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1122 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3470,7 +3467,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1139 + // line internal/php7/php7.y:1136 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3487,7 +3484,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1154 + // line internal/php7/php7.y:1151 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3501,7 +3498,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1166 + // line internal/php7/php7.y:1163 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3517,7 +3514,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1180 + // line internal/php7/php7.y:1177 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3539,7 +3536,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1200 + // line internal/php7/php7.y:1197 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3565,7 +3562,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1225 + // line internal/php7/php7.y:1222 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3594,7 +3591,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1249 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3611,7 +3608,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1267 + // line internal/php7/php7.y:1264 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3626,7 +3623,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1280 + // line internal/php7/php7.y:1277 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3645,7 +3642,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1297 + // line internal/php7/php7.y:1294 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3661,7 +3658,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1311 + // line internal/php7/php7.y:1308 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3680,7 +3677,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1328 + // line internal/php7/php7.y:1325 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3697,7 +3694,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1345 + // line internal/php7/php7.y:1342 { yyVAL.list = []ast.Vertex{} @@ -3705,7 +3702,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1351 + // line internal/php7/php7.y:1348 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3729,7 +3726,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1375 + // line internal/php7/php7.y:1372 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3737,7 +3734,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1378 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3748,7 +3745,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1393 + // line internal/php7/php7.y:1390 { yyVAL.node = nil @@ -3756,7 +3753,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1399 + // line internal/php7/php7.y:1396 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3772,7 +3769,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1416 + // line internal/php7/php7.y:1413 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3780,7 +3777,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1422 + // line internal/php7/php7.y:1419 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3791,7 +3788,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1434 + // line internal/php7/php7.y:1431 { yyVAL.node = yyDollar[1].node @@ -3799,7 +3796,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1443 + // line internal/php7/php7.y:1440 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3835,31 +3832,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1479 + // line internal/php7/php7.y:1476 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1480 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1490 + // line internal/php7/php7.y:1487 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1494 + // line internal/php7/php7.y:1491 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1501 + // line internal/php7/php7.y:1498 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3879,7 +3876,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1519 + // line internal/php7/php7.y:1516 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3898,7 +3895,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1536 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3906,7 +3903,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1545 + // line internal/php7/php7.y:1542 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3914,7 +3911,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1554 + // line internal/php7/php7.y:1551 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3928,7 +3925,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1566 + // line internal/php7/php7.y:1563 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3942,7 +3939,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1581 + // line internal/php7/php7.y:1578 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3961,7 +3958,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1601 + // line internal/php7/php7.y:1598 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3980,7 +3977,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1621 + // line internal/php7/php7.y:1618 { yyVAL.ClassExtends = nil @@ -3988,7 +3985,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1627 + // line internal/php7/php7.y:1624 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -4002,7 +3999,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1642 + // line internal/php7/php7.y:1639 { yyVAL.InterfaceExtends = nil @@ -4010,7 +4007,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1648 + // line internal/php7/php7.y:1645 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4024,7 +4021,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1660 { yyVAL.ClassImplements = nil @@ -4032,7 +4029,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1669 + // line internal/php7/php7.y:1666 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4046,7 +4043,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1684 + // line internal/php7/php7.y:1681 { yyVAL.node = yyDollar[1].node @@ -4054,7 +4051,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1690 + // line internal/php7/php7.y:1687 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4068,7 +4065,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1702 + // line internal/php7/php7.y:1699 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4084,7 +4081,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1716 + // line internal/php7/php7.y:1713 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4099,7 +4096,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1732 + // line internal/php7/php7.y:1729 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4110,7 +4107,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1741 + // line internal/php7/php7.y:1738 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4129,7 +4126,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1761 + // line internal/php7/php7.y:1758 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4140,7 +4137,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1770 + // line internal/php7/php7.y:1767 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4159,7 +4156,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1790 + // line internal/php7/php7.y:1787 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4170,7 +4167,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1799 + // line internal/php7/php7.y:1796 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4189,7 +4186,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1819 + // line internal/php7/php7.y:1816 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4206,7 +4203,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1834 + // line internal/php7/php7.y:1831 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4224,7 +4221,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1850 + // line internal/php7/php7.y:1847 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4243,7 +4240,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1867 + // line internal/php7/php7.y:1864 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4264,7 +4261,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1889 + // line internal/php7/php7.y:1886 { yyVAL.list = []ast.Vertex{} @@ -4272,7 +4269,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1895 + // line internal/php7/php7.y:1892 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4289,7 +4286,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1910 + // line internal/php7/php7.y:1907 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4306,19 +4303,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1928 + // line internal/php7/php7.y:1925 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1932 + // line internal/php7/php7.y:1929 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1939 + // line internal/php7/php7.y:1936 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4329,7 +4326,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1948 + // line internal/php7/php7.y:1945 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4348,7 +4345,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1965 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4364,7 +4361,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1982 + // line internal/php7/php7.y:1979 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4384,7 +4381,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2003 + // line internal/php7/php7.y:2000 { yyVAL.node = yyDollar[1].node @@ -4392,7 +4389,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2009 + // line internal/php7/php7.y:2006 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4410,7 +4407,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2028 + // line internal/php7/php7.y:2025 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4429,7 +4426,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2045 + // line internal/php7/php7.y:2042 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4451,7 +4448,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2068 + // line internal/php7/php7.y:2065 { yyVAL.node = yyDollar[1].node @@ -4467,7 +4464,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2082 + // line internal/php7/php7.y:2079 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4491,7 +4488,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2104 { yyVAL.list = yyDollar[1].list @@ -4499,7 +4496,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2113 + // line internal/php7/php7.y:2110 { yyVAL.list = nil @@ -4507,7 +4504,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2122 + // line internal/php7/php7.y:2119 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4515,7 +4512,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2128 + // line internal/php7/php7.y:2125 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4526,7 +4523,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2140 + // line internal/php7/php7.y:2137 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4564,7 +4561,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2176 + // line internal/php7/php7.y:2173 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4603,7 +4600,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2216 + // line internal/php7/php7.y:2213 { yyVAL.node = nil @@ -4611,7 +4608,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2219 { yyVAL.node = yyDollar[1].node @@ -4619,7 +4616,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2231 + // line internal/php7/php7.y:2228 { yyVAL.node = yyDollar[1].node @@ -4627,7 +4624,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2234 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4641,7 +4638,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2252 + // line internal/php7/php7.y:2249 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4655,7 +4652,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2264 + // line internal/php7/php7.y:2261 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4669,7 +4666,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2276 + // line internal/php7/php7.y:2273 { yyVAL.node = yyDollar[1].node @@ -4677,7 +4674,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2282 { yyVAL.node = nil @@ -4685,7 +4682,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2291 + // line internal/php7/php7.y:2288 { yyVAL.node = yyDollar[2].node @@ -4696,7 +4693,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2303 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4711,7 +4708,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2316 + // line internal/php7/php7.y:2313 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4730,7 +4727,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2336 + // line internal/php7/php7.y:2333 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4738,7 +4735,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2342 + // line internal/php7/php7.y:2339 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4749,7 +4746,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2354 + // line internal/php7/php7.y:2351 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4763,7 +4760,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2363 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4777,7 +4774,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2381 + // line internal/php7/php7.y:2378 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4788,7 +4785,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2390 + // line internal/php7/php7.y:2387 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4796,7 +4793,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2399 + // line internal/php7/php7.y:2396 { yyVAL.node = yyDollar[1].node @@ -4804,7 +4801,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2405 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4815,7 +4812,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2417 + // line internal/php7/php7.y:2414 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4823,7 +4820,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2426 + // line internal/php7/php7.y:2423 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4841,7 +4838,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2442 + // line internal/php7/php7.y:2439 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4860,7 +4857,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2459 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4868,7 +4865,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2468 + // line internal/php7/php7.y:2465 { yyVAL.list = []ast.Vertex{} @@ -4876,7 +4873,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2477 + // line internal/php7/php7.y:2474 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4892,7 +4889,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2491 + // line internal/php7/php7.y:2488 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4913,7 +4910,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2510 + // line internal/php7/php7.y:2507 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4927,7 +4924,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2519 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4964,7 +4961,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2559 + // line internal/php7/php7.y:2556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4972,7 +4969,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2565 + // line internal/php7/php7.y:2562 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4983,7 +4980,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2577 + // line internal/php7/php7.y:2574 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4997,7 +4994,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2590 + // line internal/php7/php7.y:2587 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5011,7 +5008,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2602 + // line internal/php7/php7.y:2599 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5025,7 +5022,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2617 + // line internal/php7/php7.y:2614 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5033,7 +5030,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2623 + // line internal/php7/php7.y:2620 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5041,7 +5038,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2632 + // line internal/php7/php7.y:2629 { yyVAL.node = yyDollar[1].node @@ -5053,7 +5050,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2642 + // line internal/php7/php7.y:2639 { yyVAL.node = yyDollar[1].node @@ -5065,7 +5062,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2655 + // line internal/php7/php7.y:2652 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5080,7 +5077,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2671 + // line internal/php7/php7.y:2668 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5098,7 +5095,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2687 + // line internal/php7/php7.y:2684 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5116,7 +5113,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2703 + // line internal/php7/php7.y:2700 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5134,7 +5131,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2719 + // line internal/php7/php7.y:2716 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5149,7 +5146,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2735 + // line internal/php7/php7.y:2732 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5165,7 +5162,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2749 + // line internal/php7/php7.y:2746 { yyVAL.node = yyDollar[1].node @@ -5173,7 +5170,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2758 + // line internal/php7/php7.y:2755 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5191,7 +5188,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2777 + // line internal/php7/php7.y:2774 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5206,7 +5203,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2790 + // line internal/php7/php7.y:2787 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5221,7 +5218,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2803 { yyVAL.list = yyDollar[1].list @@ -5229,7 +5226,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2812 + // line internal/php7/php7.y:2809 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5244,7 +5241,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2828 + // line internal/php7/php7.y:2825 { yyVAL.list = nil @@ -5252,7 +5249,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2834 + // line internal/php7/php7.y:2831 { yyVAL.list = yyDollar[1].list @@ -5260,7 +5257,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2843 + // line internal/php7/php7.y:2840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5268,7 +5265,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2849 + // line internal/php7/php7.y:2846 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5276,7 +5273,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2858 + // line internal/php7/php7.y:2855 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5290,7 +5287,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2867 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5304,7 +5301,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2882 + // line internal/php7/php7.y:2879 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5318,7 +5315,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2894 + // line internal/php7/php7.y:2891 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5332,7 +5329,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2906 + // line internal/php7/php7.y:2903 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5346,7 +5343,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2918 + // line internal/php7/php7.y:2915 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5360,7 +5357,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2930 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5371,7 +5368,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2942 + // line internal/php7/php7.y:2939 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5379,7 +5376,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2951 + // line internal/php7/php7.y:2948 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5397,7 +5394,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2967 + // line internal/php7/php7.y:2964 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5416,7 +5413,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2987 + // line internal/php7/php7.y:2984 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5427,7 +5424,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2996 + // line internal/php7/php7.y:2993 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5435,7 +5432,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3005 + // line internal/php7/php7.y:3002 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5452,7 +5449,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3020 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5469,7 +5466,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3038 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5480,7 +5477,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3047 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5488,7 +5485,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3059 + // line internal/php7/php7.y:3056 { yyVAL.node = yyDollar[1].node @@ -5496,7 +5493,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3065 { yyVAL.list = nil @@ -5504,7 +5501,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3074 + // line internal/php7/php7.y:3071 { yyVAL.list = yyDollar[1].list @@ -5512,7 +5509,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3080 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5523,7 +5520,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3092 + // line internal/php7/php7.y:3089 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5531,7 +5528,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3098 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5551,7 +5548,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3119 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5568,7 +5565,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3137 + // line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5582,7 +5579,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3152 + // line internal/php7/php7.y:3149 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5601,7 +5598,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3169 + // line internal/php7/php7.y:3166 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5619,7 +5616,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3185 + // line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5631,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3198 + // line internal/php7/php7.y:3195 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5650,7 +5647,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3212 + // line internal/php7/php7.y:3209 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5664,7 +5661,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3224 + // line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5679,7 +5676,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3237 + // line internal/php7/php7.y:3234 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5694,7 +5691,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3250 + // line internal/php7/php7.y:3247 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5709,7 +5706,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3263 + // line internal/php7/php7.y:3260 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5724,7 +5721,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3276 + // line internal/php7/php7.y:3273 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5739,7 +5736,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3289 + // line internal/php7/php7.y:3286 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5754,7 +5751,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3302 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5769,7 +5766,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3315 + // line internal/php7/php7.y:3312 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5784,7 +5781,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3328 + // line internal/php7/php7.y:3325 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5796,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3341 + // line internal/php7/php7.y:3338 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5814,7 +5811,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3354 + // line internal/php7/php7.y:3351 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5829,7 +5826,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3367 + // line internal/php7/php7.y:3364 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5841,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3380 + // line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5856,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3393 + // line internal/php7/php7.y:3390 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5874,7 +5871,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3406 + // line internal/php7/php7.y:3403 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5888,7 +5885,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3418 + // line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5903,7 +5900,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3428 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5917,7 +5914,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3443 + // line internal/php7/php7.y:3440 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5932,7 +5929,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3456 + // line internal/php7/php7.y:3453 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5947,7 +5944,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3469 + // line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5962,7 +5959,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3482 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5977,7 +5974,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3495 + // line internal/php7/php7.y:3492 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5992,7 +5989,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3508 + // line internal/php7/php7.y:3505 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6007,7 +6004,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3521 + // line internal/php7/php7.y:3518 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6022,7 +6019,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3534 + // line internal/php7/php7.y:3531 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6037,7 +6034,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3547 + // line internal/php7/php7.y:3544 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6052,7 +6049,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3560 + // line internal/php7/php7.y:3557 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6067,7 +6064,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3573 + // line internal/php7/php7.y:3570 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6082,7 +6079,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3586 + // line internal/php7/php7.y:3583 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6097,7 +6094,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3599 + // line internal/php7/php7.y:3596 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6112,7 +6109,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3612 + // line internal/php7/php7.y:3609 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6127,7 +6124,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3625 + // line internal/php7/php7.y:3622 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6142,7 +6139,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3638 + // line internal/php7/php7.y:3635 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6157,7 +6154,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3651 + // line internal/php7/php7.y:3648 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6172,7 +6169,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3664 + // line internal/php7/php7.y:3661 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6186,7 +6183,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3676 + // line internal/php7/php7.y:3673 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6200,7 +6197,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3688 + // line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6214,7 +6211,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3700 + // line internal/php7/php7.y:3697 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6228,7 +6225,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3712 + // line internal/php7/php7.y:3709 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6243,7 +6240,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3725 + // line internal/php7/php7.y:3722 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6258,7 +6255,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3738 + // line internal/php7/php7.y:3735 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6273,7 +6270,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3751 + // line internal/php7/php7.y:3748 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6289,7 +6286,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3765 + // line internal/php7/php7.y:3762 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6304,7 +6301,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3778 + // line internal/php7/php7.y:3775 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6319,7 +6316,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3791 + // line internal/php7/php7.y:3788 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6334,7 +6331,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3804 + // line internal/php7/php7.y:3801 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6349,7 +6346,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3817 + // line internal/php7/php7.y:3814 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6364,7 +6361,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3830 + // line internal/php7/php7.y:3827 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6379,7 +6376,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3843 + // line internal/php7/php7.y:3840 { yyVAL.node = yyDollar[2].node @@ -6391,7 +6388,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3850 { yyVAL.node = yyDollar[1].node @@ -6399,7 +6396,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3856 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6415,7 +6412,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3873 + // line internal/php7/php7.y:3870 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6431,7 +6428,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3887 + // line internal/php7/php7.y:3884 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6446,7 +6443,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3897 { yyVAL.node = yyDollar[1].node @@ -6454,7 +6451,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3906 + // line internal/php7/php7.y:3903 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6469,7 +6466,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3919 + // line internal/php7/php7.y:3916 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6484,7 +6481,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3932 + // line internal/php7/php7.y:3929 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6499,7 +6496,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3945 + // line internal/php7/php7.y:3942 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6514,7 +6511,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3958 + // line internal/php7/php7.y:3955 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6529,7 +6526,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3971 + // line internal/php7/php7.y:3968 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6544,7 +6541,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3984 + // line internal/php7/php7.y:3981 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6559,7 +6556,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3997 + // line internal/php7/php7.y:3994 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6588,7 +6585,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4024 + // line internal/php7/php7.y:4021 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6602,7 +6599,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4033 { yyVAL.node = yyDollar[1].node @@ -6610,7 +6607,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4039 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6624,7 +6621,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4051 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6638,7 +6635,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4063 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6652,7 +6649,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4078 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6666,7 +6663,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4090 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6681,7 +6678,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4103 + // line internal/php7/php7.y:4100 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6695,7 +6692,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4115 + // line internal/php7/php7.y:4112 { yyVAL.node = yyDollar[1].node @@ -6703,7 +6700,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4121 + // line internal/php7/php7.y:4118 { yyVAL.node = yyDollar[2].node @@ -6726,7 +6723,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4144 + // line internal/php7/php7.y:4141 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6763,7 +6760,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4173 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6795,19 +6792,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4211 + // line internal/php7/php7.y:4208 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4215 + // line internal/php7/php7.y:4212 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4222 + // line internal/php7/php7.y:4219 { yyVAL.ClosureUse = nil @@ -6815,7 +6812,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4225 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6831,7 +6828,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4245 + // line internal/php7/php7.y:4242 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6842,7 +6839,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4254 + // line internal/php7/php7.y:4251 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6850,7 +6847,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4263 + // line internal/php7/php7.y:4260 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6866,7 +6863,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4277 + // line internal/php7/php7.y:4274 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6885,7 +6882,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4297 + // line internal/php7/php7.y:4294 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6899,7 +6896,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4309 + // line internal/php7/php7.y:4306 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6914,7 +6911,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4322 + // line internal/php7/php7.y:4319 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6929,7 +6926,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4335 + // line internal/php7/php7.y:4332 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6943,7 +6940,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4350 + // line internal/php7/php7.y:4347 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6957,7 +6954,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4362 + // line internal/php7/php7.y:4359 { yyVAL.node = yyDollar[1].node @@ -6965,7 +6962,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4371 + // line internal/php7/php7.y:4368 { yyVAL.node = yyDollar[1].node @@ -6973,7 +6970,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4377 + // line internal/php7/php7.y:4374 { yyVAL.node = yyDollar[1].node @@ -6981,7 +6978,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4386 + // line internal/php7/php7.y:4383 { yyVAL.node = nil @@ -6989,7 +6986,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4392 + // line internal/php7/php7.y:4389 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7004,7 +7001,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4408 + // line internal/php7/php7.y:4405 { yyVAL.list = []ast.Vertex{} @@ -7012,7 +7009,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4414 + // line internal/php7/php7.y:4411 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7024,7 +7021,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4424 + // line internal/php7/php7.y:4421 { yyVAL.list = yyDollar[1].list @@ -7032,7 +7029,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4433 + // line internal/php7/php7.y:4430 { yyVAL.node = nil @@ -7040,7 +7037,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4439 + // line internal/php7/php7.y:4436 { yyVAL.node = yyDollar[1].node @@ -7048,7 +7045,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4448 + // line internal/php7/php7.y:4445 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7064,7 +7061,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4459 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7079,7 +7076,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4475 + // line internal/php7/php7.y:4472 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7093,7 +7090,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4487 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7107,7 +7104,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4499 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7121,7 +7118,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4514 + // line internal/php7/php7.y:4511 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7135,7 +7132,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4526 + // line internal/php7/php7.y:4523 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7149,7 +7146,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4535 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7163,7 +7160,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4550 + // line internal/php7/php7.y:4547 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7177,7 +7174,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4562 + // line internal/php7/php7.y:4559 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7191,7 +7188,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4571 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7205,7 +7202,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4586 + // line internal/php7/php7.y:4583 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7219,7 +7216,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4598 + // line internal/php7/php7.y:4595 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7233,7 +7230,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4610 + // line internal/php7/php7.y:4607 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7249,7 +7246,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4624 + // line internal/php7/php7.y:4621 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7263,7 +7260,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4636 + // line internal/php7/php7.y:4633 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7277,7 +7274,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4648 + // line internal/php7/php7.y:4645 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7291,7 +7288,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4660 + // line internal/php7/php7.y:4657 { yyVAL.node = yyDollar[1].node @@ -7299,7 +7296,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4666 + // line internal/php7/php7.y:4663 { yyVAL.node = yyDollar[1].node @@ -7307,7 +7304,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4675 + // line internal/php7/php7.y:4672 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7321,7 +7318,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4687 + // line internal/php7/php7.y:4684 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7339,7 +7336,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4703 + // line internal/php7/php7.y:4700 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7357,7 +7354,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4722 + // line internal/php7/php7.y:4719 { yyVAL.node = yyDollar[1].node @@ -7365,7 +7362,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4728 + // line internal/php7/php7.y:4725 { yyVAL.node = yyDollar[1].node @@ -7373,7 +7370,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4737 + // line internal/php7/php7.y:4734 { yyVAL.node = nil @@ -7381,7 +7378,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4740 { yyVAL.node = yyDollar[1].node @@ -7389,7 +7386,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4752 + // line internal/php7/php7.y:4749 { yyVAL.node = yyDollar[1].node @@ -7397,7 +7394,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4761 + // line internal/php7/php7.y:4758 { yyVAL.node = yyDollar[1].node @@ -7405,7 +7402,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4767 + // line internal/php7/php7.y:4764 { yyVAL.node = yyDollar[2].node @@ -7417,7 +7414,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4777 + // line internal/php7/php7.y:4774 { yyVAL.node = yyDollar[1].node @@ -7425,7 +7422,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4786 + // line internal/php7/php7.y:4783 { yyVAL.node = yyDollar[1].node @@ -7433,7 +7430,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4792 + // line internal/php7/php7.y:4789 { yyVAL.node = yyDollar[2].node @@ -7445,7 +7442,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4802 + // line internal/php7/php7.y:4799 { yyVAL.node = yyDollar[1].node @@ -7453,7 +7450,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4811 + // line internal/php7/php7.y:4808 { yyVAL.node = yyDollar[1].node @@ -7461,7 +7458,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4817 + // line internal/php7/php7.y:4814 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7477,7 +7474,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4828 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7493,7 +7490,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4845 + // line internal/php7/php7.y:4842 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7509,7 +7506,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4859 + // line internal/php7/php7.y:4856 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7524,7 +7521,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4872 + // line internal/php7/php7.y:4869 { yyVAL.node = yyDollar[1].node @@ -7532,7 +7529,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4881 + // line internal/php7/php7.y:4878 { yyVAL.node = yyDollar[1].node @@ -7540,7 +7537,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4887 + // line internal/php7/php7.y:4884 { yyVAL.node = yyDollar[1].node @@ -7548,7 +7545,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4893 + // line internal/php7/php7.y:4890 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7563,7 +7560,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4909 + // line internal/php7/php7.y:4906 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7579,7 +7576,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4923 + // line internal/php7/php7.y:4920 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7595,7 +7592,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4937 + // line internal/php7/php7.y:4934 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7609,7 +7606,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4952 + // line internal/php7/php7.y:4949 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7624,7 +7621,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4965 + // line internal/php7/php7.y:4962 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7639,7 +7636,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4981 + // line internal/php7/php7.y:4978 { yyVAL.node = yyDollar[1].node @@ -7647,7 +7644,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4987 + // line internal/php7/php7.y:4984 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7663,7 +7660,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5001 + // line internal/php7/php7.y:4998 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7679,7 +7676,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5015 + // line internal/php7/php7.y:5012 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7694,7 +7691,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5028 + // line internal/php7/php7.y:5025 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7709,7 +7706,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5041 + // line internal/php7/php7.y:5038 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7724,7 +7721,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5057 + // line internal/php7/php7.y:5054 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7738,7 +7735,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5069 + // line internal/php7/php7.y:5066 { yyVAL.node = yyDollar[2].node @@ -7750,7 +7747,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5079 + // line internal/php7/php7.y:5076 { yyVAL.node = yyDollar[1].node @@ -7758,7 +7755,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5088 + // line internal/php7/php7.y:5085 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7772,7 +7769,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5100 + // line internal/php7/php7.y:5097 { yyVAL.node = yyDollar[2].node @@ -7784,7 +7781,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5110 + // line internal/php7/php7.y:5107 { yyVAL.node = yyDollar[1].node @@ -7792,7 +7789,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5119 + // line internal/php7/php7.y:5116 { yyVAL.list = yyDollar[1].list @@ -7800,7 +7797,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5128 + // line internal/php7/php7.y:5125 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7808,7 +7805,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5134 + // line internal/php7/php7.y:5131 { yyVAL.node = yyDollar[1].node @@ -7816,7 +7813,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5143 + // line internal/php7/php7.y:5140 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7831,7 +7828,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5156 + // line internal/php7/php7.y:5153 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7843,7 +7840,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5169 + // line internal/php7/php7.y:5166 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7858,7 +7855,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5182 + // line internal/php7/php7.y:5179 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7872,7 +7869,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5194 + // line internal/php7/php7.y:5191 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7890,7 +7887,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5210 + // line internal/php7/php7.y:5207 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7906,7 +7903,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5224 + // line internal/php7/php7.y:5221 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7920,7 +7917,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5236 + // line internal/php7/php7.y:5233 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7941,7 +7938,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5255 + // line internal/php7/php7.y:5252 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7960,7 +7957,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5275 + // line internal/php7/php7.y:5272 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7968,7 +7965,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5281 + // line internal/php7/php7.y:5278 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7983,7 +7980,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5294 + // line internal/php7/php7.y:5291 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7991,7 +7988,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5300 + // line internal/php7/php7.y:5297 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8006,7 +8003,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5316 + // line internal/php7/php7.y:5313 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8022,7 +8019,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5330 + // line internal/php7/php7.y:5327 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8041,7 +8038,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5347 + // line internal/php7/php7.y:5344 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8062,7 +8059,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5366 + // line internal/php7/php7.y:5363 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8079,7 +8076,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5381 + // line internal/php7/php7.y:5378 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8098,7 +8095,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5398 + // line internal/php7/php7.y:5395 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8119,7 +8116,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5417 + // line internal/php7/php7.y:5414 { yyVAL.node = yyDollar[2].node @@ -8131,7 +8128,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5430 + // line internal/php7/php7.y:5427 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8145,7 +8142,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5442 + // line internal/php7/php7.y:5439 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8164,7 +8161,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5459 + // line internal/php7/php7.y:5456 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8192,7 +8189,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5485 + // line internal/php7/php7.y:5482 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8208,7 +8205,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5502 + // line internal/php7/php7.y:5499 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8228,7 +8225,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5520 + // line internal/php7/php7.y:5517 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8244,7 +8241,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5534 + // line internal/php7/php7.y:5531 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8258,7 +8255,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5546 + // line internal/php7/php7.y:5543 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8272,7 +8269,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5558 + // line internal/php7/php7.y:5555 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8288,7 +8285,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5572 + // line internal/php7/php7.y:5569 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8302,7 +8299,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5584 + // line internal/php7/php7.y:5581 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8316,7 +8313,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5599 + // line internal/php7/php7.y:5596 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8324,7 +8321,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5605 + // line internal/php7/php7.y:5602 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8335,7 +8332,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5617 + // line internal/php7/php7.y:5614 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index c65b0f9..752de40 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -528,58 +528,61 @@ top_statement: } | T_USE mixed_group_use_declaration ';' { - $$ = $2 + $$ = &ast.StmtUse{ast.Node{}, $2} // save position $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_type group_use_declaration ';' { - $3.(*ast.StmtGroupUse).UseType = $2 - $$ = $3 + useType := &ast.StmtUseType{ast.Node{}, $2, $3} + $$ = &ast.StmtUse{ast.Node{}, useType} // save position + useType.GetNode().Position = position.NewNodesPosition($2, $3) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_declarations ';' { - $$ = &ast.StmtUseList{ast.Node{}, nil, $2} + useList := &ast.StmtUseList{ast.Node{}, $2} + $$ = &ast.StmtUse{ast.Node{}, useList} // save position + useList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE use_type use_declarations ';' { - $$ = &ast.StmtUseList{ast.Node{}, $2, $3} + useList := &ast.StmtUseList{ast.Node{}, $3} + useType := &ast.StmtUseType{ast.Node{}, $2, useList} + $$ = &ast.StmtUse{ast.Node{}, useType} // save position + useList.GetNode().Position = position.NewNodeListPosition($3) + useType.GetNode().Position = position.NewNodesPosition($2, useList) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.UseDeclarationList, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -630,20 +633,20 @@ group_use_declaration: namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $4} + useList := &ast.StmtUseList{ast.Node{}, $4} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition($1) + useList.GetNode().Position = position.NewNodeListPosition($4) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($2.Tokens, $3.Tokens...)) if $5 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, $6.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($5.Tokens, $6.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + yylex.(*Parser).setFreeFloating(useList, token.End, $6.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -651,22 +654,22 @@ group_use_declaration: | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $5} + useList := &ast.StmtUseList{ast.Node{}, $5} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition($2) + useList.GetNode().Position = position.NewNodeListPosition($5) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.UseType, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($3.Tokens, $4.Tokens...)) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, $7.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($6.Tokens, $7.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating(useList, token.End, $7.Tokens) } + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -676,20 +679,20 @@ mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $4} + useList := &ast.StmtUseList{ast.Node{}, $4} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition($1) + useList.GetNode().Position = position.NewNodeListPosition($4) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($2.Tokens, $3.Tokens...)) if $5 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($5.Tokens, $6.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($5.Tokens, $6.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -697,22 +700,22 @@ mixed_group_use_declaration: | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtGroupUse{ast.Node{}, nil, name, $5} + useList := &ast.StmtUseList{ast.Node{}, $5} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} // save position name.GetNode().Position = position.NewNodeListPosition($2) + useList.GetNode().Position = position.NewNodeListPosition($5) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Use, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Slash, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($3.Tokens, $4.Tokens...)) if $6 != nil { - yylex.(*Parser).setFreeFloating($$, token.Stmts, append($6.Tokens, $7.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($6.Tokens, $7.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) + yylex.(*Parser).setFreeFloating(useList, token.End, $7.Tokens) } + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -792,8 +795,10 @@ inline_use_declaration: } | use_type unprefixed_use_declaration { - $2.(*ast.StmtUse).UseType = $1 - $$ = $2 + $$ = &ast.StmtUseType{ast.Node{}, $1, $2} + + // save position + $$.GetNode().Position = position.NewNodesPosition($1, $2) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -803,14 +808,11 @@ unprefixed_use_declaration: namespace_name { name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUse{ast.Node{}, nil, name, nil} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} // save position name.GetNode().Position = position.NewNodeListPosition($1) - $$.GetNode().Position = position.NewNodeListPosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) + $$.GetNode().Position = position.NewNodePosition(name) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -818,7 +820,7 @@ unprefixed_use_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUse{ast.Node{}, nil, name, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} // save position name.GetNode().Position = position.NewNodeListPosition($1) @@ -826,7 +828,6 @@ unprefixed_use_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1[0], name) yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) @@ -839,9 +840,6 @@ use_declaration: { $$ = $1 - // save coments - yylex.(*Parser).MoveFreeFloating($1.(*ast.StmtUse).Use, $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR unprefixed_use_declaration @@ -849,8 +847,7 @@ use_declaration: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Slash, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 88589ee..27e217a 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -9013,7 +9013,7 @@ func TestPhp7(t *testing.T) { }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9022,17 +9022,17 @@ func TestPhp7(t *testing.T) { EndPos: 3370, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3366, + EndPos: 3369, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9041,24 +9041,34 @@ func TestPhp7(t *testing.T) { EndPos: 3369, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3366, + EndPos: 3369, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3366, + EndPos: 3369, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, @@ -9067,17 +9077,17 @@ func TestPhp7(t *testing.T) { EndPos: 3380, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3376, - EndPos: 3379, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3376, + EndPos: 3379, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, @@ -9086,24 +9096,34 @@ func TestPhp7(t *testing.T) { EndPos: 3379, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3376, - EndPos: 3379, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3376, + EndPos: 3379, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3376, + EndPos: 3379, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 163, @@ -9112,54 +9132,64 @@ func TestPhp7(t *testing.T) { EndPos: 3397, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3386, - EndPos: 3396, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3386, + EndPos: 3396, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 163, EndLine: 163, StartPos: 3386, - EndPos: 3389, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3386, - EndPos: 3389, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3393, EndPos: 3396, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3386, + EndPos: 3389, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3386, + EndPos: 3389, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3393, + EndPos: 3396, + }, + }, + Value: []byte("Bar"), + }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 164, @@ -9168,17 +9198,17 @@ func TestPhp7(t *testing.T) { EndPos: 3411, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3405, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3402, + EndPos: 3410, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 164, @@ -9187,31 +9217,31 @@ func TestPhp7(t *testing.T) { EndPos: 3405, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3405, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3402, + EndPos: 3405, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3402, + EndPos: 3405, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3407, - EndPos: 3410, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 164, @@ -9220,24 +9250,34 @@ func TestPhp7(t *testing.T) { EndPos: 3410, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3407, - EndPos: 3410, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3407, + EndPos: 3410, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3407, + EndPos: 3410, + }, + }, + Value: []byte("Bar"), }, - Value: []byte("Bar"), }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 165, @@ -9246,17 +9286,17 @@ func TestPhp7(t *testing.T) { EndPos: 3432, }, }, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3419, - }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3416, + EndPos: 3431, }, - Use: &ast.NameName{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 165, @@ -9265,68 +9305,78 @@ func TestPhp7(t *testing.T) { EndPos: 3419, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3419, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3416, + EndPos: 3419, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3416, + EndPos: 3419, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3421, - EndPos: 3431, - }, - }, - Use: &ast.NameName{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 165, EndLine: 165, StartPos: 3421, - EndPos: 3424, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3421, - EndPos: 3424, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3428, EndPos: 3431, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3421, + EndPos: 3424, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3421, + EndPos: 3424, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3428, + EndPos: 3431, + }, + }, + Value: []byte("Baz"), + }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, @@ -9335,38 +9385,46 @@ func TestPhp7(t *testing.T) { EndPos: 3456, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, EndLine: 166, StartPos: 3437, - EndPos: 3445, + EndPos: 3455, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3437, + EndPos: 3445, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, EndLine: 166, StartPos: 3446, - EndPos: 3449, + EndPos: 3455, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3446, - EndPos: 3449, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3446, + EndPos: 3449, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, @@ -9375,31 +9433,31 @@ func TestPhp7(t *testing.T) { EndPos: 3449, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3446, + EndPos: 3449, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3452, - EndPos: 3455, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3452, - EndPos: 3455, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3452, + EndPos: 3455, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, @@ -9408,14 +9466,26 @@ func TestPhp7(t *testing.T) { EndPos: 3455, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3452, + EndPos: 3455, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, @@ -9424,38 +9494,46 @@ func TestPhp7(t *testing.T) { EndPos: 3494, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, EndLine: 167, StartPos: 3461, - EndPos: 3469, + EndPos: 3493, }, }, - Value: []byte("function"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3461, + EndPos: 3469, + }, + }, + Value: []byte("function"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, EndLine: 167, StartPos: 3470, - EndPos: 3480, + EndPos: 3493, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3470, - EndPos: 3473, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3470, + EndPos: 3480, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, @@ -9464,42 +9542,42 @@ func TestPhp7(t *testing.T) { EndPos: 3473, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3470, + EndPos: 3473, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3477, + EndPos: 3480, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3477, - EndPos: 3480, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3483, + EndPos: 3493, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3483, - EndPos: 3493, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3483, - EndPos: 3486, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, @@ -9508,25 +9586,37 @@ func TestPhp7(t *testing.T) { EndPos: 3486, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3483, + EndPos: 3486, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3490, + EndPos: 3493, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3490, - EndPos: 3493, - }, - }, - Value: []byte("bar"), - }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, @@ -9535,38 +9625,46 @@ func TestPhp7(t *testing.T) { EndPos: 3515, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3499, - EndPos: 3504, + EndPos: 3514, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3499, + EndPos: 3504, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3505, - EndPos: 3508, + EndPos: 3514, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3505, - EndPos: 3508, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3505, + EndPos: 3508, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, @@ -9575,31 +9673,31 @@ func TestPhp7(t *testing.T) { EndPos: 3508, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3505, + EndPos: 3508, + }, + }, + Value: []byte("Foo"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3511, - EndPos: 3514, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3511, - EndPos: 3514, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3511, + EndPos: 3514, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, @@ -9608,14 +9706,26 @@ func TestPhp7(t *testing.T) { EndPos: 3514, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3511, + EndPos: 3514, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, }, }, }, }, - &ast.StmtUseList{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, @@ -9624,38 +9734,46 @@ func TestPhp7(t *testing.T) { EndPos: 3550, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, StartPos: 3520, - EndPos: 3525, + EndPos: 3549, }, }, - Value: []byte("const"), - }, - Uses: []ast.Vertex{ - &ast.StmtUse{ + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3520, + EndPos: 3525, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, StartPos: 3526, - EndPos: 3536, + EndPos: 3549, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3529, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3526, + EndPos: 3536, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, @@ -9664,42 +9782,42 @@ func TestPhp7(t *testing.T) { EndPos: 3529, }, }, - Value: []byte("Foo"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3526, + EndPos: 3529, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3533, + EndPos: 3536, + }, + }, + Value: []byte("foo"), }, }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3533, - EndPos: 3536, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3539, + EndPos: 3549, + }, }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3539, - EndPos: 3549, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3539, - EndPos: 3542, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, @@ -9708,25 +9826,37 @@ func TestPhp7(t *testing.T) { EndPos: 3542, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3539, + EndPos: 3542, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3546, + EndPos: 3549, + }, + }, + Value: []byte("bar"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3546, - EndPos: 3549, - }, - }, - Value: []byte("bar"), - }, }, }, }, - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, @@ -9735,50 +9865,58 @@ func TestPhp7(t *testing.T) { EndPos: 3572, }, }, - Prefix: &ast.NameName{ + UseList: &ast.StmtGroupUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3557, - EndPos: 3560, + StartPos: 3556, + EndPos: 3571, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3557, - EndPos: 3560, - }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3557, + EndPos: 3560, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3557, + EndPos: 3560, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, EndLine: 171, StartPos: 3562, - EndPos: 3565, + EndPos: 3570, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3562, - EndPos: 3565, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3562, + EndPos: 3565, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, @@ -9787,31 +9925,31 @@ func TestPhp7(t *testing.T) { EndPos: 3565, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3562, + EndPos: 3565, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3567, - EndPos: 3570, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3567, - EndPos: 3570, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3567, + EndPos: 3570, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, @@ -9820,14 +9958,26 @@ func TestPhp7(t *testing.T) { EndPos: 3570, }, }, - Value: []byte("Baz"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3567, + EndPos: 3570, + }, + }, + Value: []byte("Baz"), + }, + }, }, }, }, }, }, }, - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, @@ -9836,50 +9986,58 @@ func TestPhp7(t *testing.T) { EndPos: 3600, }, }, - Prefix: &ast.NameName{ + UseList: &ast.StmtGroupUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, EndLine: 172, StartPos: 3577, - EndPos: 3580, + EndPos: 3599, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3577, - EndPos: 3580, - }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3577, + EndPos: 3580, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3577, + EndPos: 3580, + }, + }, + Value: []byte("Foo"), }, - Value: []byte("Foo"), }, }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, EndLine: 172, StartPos: 3582, - EndPos: 3585, + EndPos: 3598, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3582, - EndPos: 3585, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3582, + EndPos: 3585, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, @@ -9888,31 +10046,31 @@ func TestPhp7(t *testing.T) { EndPos: 3585, }, }, - Value: []byte("Bar"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3582, + EndPos: 3585, + }, + }, + Value: []byte("Bar"), + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3587, - EndPos: 3598, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3587, - EndPos: 3590, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3587, + EndPos: 3598, + }, }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, @@ -9921,25 +10079,37 @@ func TestPhp7(t *testing.T) { EndPos: 3590, }, }, - Value: []byte("Baz"), + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3587, + EndPos: 3590, + }, + }, + Value: []byte("Baz"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3594, + EndPos: 3598, + }, + }, + Value: []byte("quux"), }, }, }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3594, - EndPos: 3598, - }, - }, - Value: []byte("quux"), - }, }, }, }, - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -9948,28 +10118,36 @@ func TestPhp7(t *testing.T) { EndPos: 3629, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, EndLine: 173, StartPos: 3605, - EndPos: 3613, + EndPos: 3628, }, }, - Value: []byte("function"), - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3614, - EndPos: 3617, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3605, + EndPos: 3613, + }, }, + Value: []byte("function"), }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.StmtGroupUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3614, + EndPos: 3628, + }, + }, + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -9978,31 +10156,31 @@ func TestPhp7(t *testing.T) { EndPos: 3617, }, }, - Value: []byte("Foo"), - }, - }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3619, - EndPos: 3622, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3614, + EndPos: 3617, + }, + }, + Value: []byte("Foo"), + }, }, }, - Use: &ast.NameName{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, EndLine: 173, StartPos: 3619, - EndPos: 3622, + EndPos: 3627, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -10011,31 +10189,31 @@ func TestPhp7(t *testing.T) { EndPos: 3622, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3619, + EndPos: 3622, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3619, + EndPos: 3622, + }, + }, + Value: []byte("Bar"), + }, + }, + }, }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3624, - EndPos: 3627, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3624, - EndPos: 3627, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -10044,14 +10222,36 @@ func TestPhp7(t *testing.T) { EndPos: 3627, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3624, + EndPos: 3627, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3624, + EndPos: 3627, + }, + }, + Value: []byte("Baz"), + }, + }, + }, }, }, }, }, }, }, - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10060,28 +10260,36 @@ func TestPhp7(t *testing.T) { EndPos: 3656, }, }, - UseType: &ast.Identifier{ + UseList: &ast.StmtUseType{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, EndLine: 174, StartPos: 3634, - EndPos: 3639, + EndPos: 3655, }, }, - Value: []byte("const"), - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3641, - EndPos: 3644, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3634, + EndPos: 3639, + }, }, + Value: []byte("const"), }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.StmtGroupUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3640, + EndPos: 3655, + }, + }, + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10090,31 +10298,31 @@ func TestPhp7(t *testing.T) { EndPos: 3644, }, }, - Value: []byte("Foo"), - }, - }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3646, - EndPos: 3649, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3641, + EndPos: 3644, + }, + }, + Value: []byte("Foo"), + }, }, }, - Use: &ast.NameName{ + UseList: &ast.StmtUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, EndLine: 174, StartPos: 3646, - EndPos: 3649, + EndPos: 3654, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10123,31 +10331,31 @@ func TestPhp7(t *testing.T) { EndPos: 3649, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3646, + EndPos: 3649, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3646, + EndPos: 3649, + }, + }, + Value: []byte("Bar"), + }, + }, + }, }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3651, - EndPos: 3654, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3651, - EndPos: 3654, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10156,14 +10364,36 @@ func TestPhp7(t *testing.T) { EndPos: 3654, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3651, + EndPos: 3654, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3651, + EndPos: 3654, + }, + }, + Value: []byte("Baz"), + }, + }, + }, }, }, }, }, }, }, - &ast.StmtGroupUse{ + &ast.StmtUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, @@ -10172,61 +10402,69 @@ func TestPhp7(t *testing.T) { EndPos: 3691, }, }, - Prefix: &ast.NameName{ + UseList: &ast.StmtGroupUseList{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, EndLine: 175, StartPos: 3661, - EndPos: 3664, + EndPos: 3690, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3661, - EndPos: 3664, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - UseList: []ast.Vertex{ - &ast.StmtUse{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, EndLine: 175, - StartPos: 3672, - EndPos: 3675, + StartPos: 3661, + EndPos: 3664, }, }, - UseType: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3666, - EndPos: 3671, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3661, + EndPos: 3664, + }, }, + Value: []byte("Foo"), }, - Value: []byte("const"), }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3672, - EndPos: 3675, - }, + }, + UseList: &ast.StmtUseList{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3666, + EndPos: 3689, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseType{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3666, + EndPos: 3675, + }, + }, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3666, + EndPos: 3671, + }, + }, + Value: []byte("const"), + }, + Use: &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, @@ -10235,42 +10473,52 @@ func TestPhp7(t *testing.T) { EndPos: 3675, }, }, - Value: []byte("Bar"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3672, + EndPos: 3675, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3672, + EndPos: 3675, + }, + }, + Value: []byte("Bar"), + }, + }, + }, }, }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3686, - EndPos: 3689, - }, - }, - UseType: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3677, - EndPos: 3685, + &ast.StmtUseType{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3677, + EndPos: 3689, + }, }, - }, - Value: []byte("function"), - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3686, - EndPos: 3689, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3677, + EndPos: 3685, + }, + }, + Value: []byte("function"), }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Use: &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, @@ -10279,7 +10527,29 @@ func TestPhp7(t *testing.T) { EndPos: 3689, }, }, - Value: []byte("Baz"), + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3686, + EndPos: 3689, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3686, + EndPos: 3689, + }, + }, + Value: []byte("Baz"), + }, + }, + }, }, }, }, diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 41b540b..4513b11 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -59,7 +59,6 @@ type NodeVisitor interface { StmtFunction(n *StmtFunction) StmtGlobal(n *StmtGlobal) StmtGoto(n *StmtGoto) - StmtGroupUse(n *StmtGroupUse) StmtHaltCompiler(n *StmtHaltCompiler) StmtIf(n *StmtIf) StmtInlineHtml(n *StmtInlineHtml) @@ -85,7 +84,10 @@ type NodeVisitor interface { StmtTry(n *StmtTry) StmtUnset(n *StmtUnset) StmtUse(n *StmtUse) + StmtGroupUseList(n *StmtGroupUseList) StmtUseList(n *StmtUseList) + StmtUseDeclaration(n *StmtUseDeclaration) + StmtUseType(n *StmtUseType) StmtWhile(n *StmtWhile) ExprArray(n *ExprArray) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 0435c7c..b609578 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -532,18 +532,6 @@ func (n *StmtGoto) Accept(v NodeVisitor) { v.StmtGoto(n) } -// StmtGroupUse node -type StmtGroupUse struct { - Node - UseType Vertex - Prefix Vertex - UseList []Vertex -} - -func (n *StmtGroupUse) Accept(v NodeVisitor) { - v.StmtGroupUse(n) -} - // StmtHaltCompiler node type StmtHaltCompiler struct { Node @@ -804,26 +792,56 @@ func (n *StmtUnset) Accept(v NodeVisitor) { // StmtUse node type StmtUse struct { Node - UseType Vertex - Use Vertex - Alias Vertex + UseList Vertex } func (n *StmtUse) Accept(v NodeVisitor) { v.StmtUse(n) } +// StmtGroupUseList node +type StmtGroupUseList struct { + Node + Prefix Vertex + UseList Vertex +} + +func (n *StmtGroupUseList) Accept(v NodeVisitor) { + v.StmtGroupUseList(n) +} + // StmtUseList node type StmtUseList struct { Node - UseType Vertex - Uses []Vertex + UseDeclarations []Vertex } func (n *StmtUseList) Accept(v NodeVisitor) { v.StmtUseList(n) } +// StmtUseDeclaration node +type StmtUseDeclaration struct { + Node + Use Vertex + Alias Vertex +} + +func (n *StmtUseDeclaration) Accept(v NodeVisitor) { + v.StmtUseDeclaration(n) +} + +// StmtUseType node +type StmtUseType struct { + Node + Type Vertex + Use Vertex +} + +func (n *StmtUseType) Accept(v NodeVisitor) { + v.StmtUseType(n) +} + // StmtWhile node type StmtWhile struct { Node diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index d25b426..a71c83b 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -745,30 +745,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Label) t.visitor.Leave("Label", true) } - case *ast.StmtGroupUse: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.UseType != nil { - t.visitor.Enter("UseType", true) - t.Traverse(nn.UseType) - t.visitor.Leave("UseType", true) - } - if nn.Prefix != nil { - t.visitor.Enter("Prefix", true) - t.Traverse(nn.Prefix) - t.visitor.Leave("Prefix", true) - } - if nn.UseList != nil { - t.visitor.Enter("UseList", false) - for _, c := range nn.UseList { - t.Traverse(c) - } - t.visitor.Leave("UseList", false) - } case *ast.StmtHaltCompiler: if nn == nil { return @@ -1174,10 +1150,48 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - if nn.UseType != nil { - t.visitor.Enter("UseType", true) - t.Traverse(nn.UseType) - t.visitor.Leave("UseType", true) + if nn.UseList != nil { + t.visitor.Enter("UseList", true) + t.Traverse(nn.UseList) + t.visitor.Leave("UseList", true) + } + case *ast.StmtGroupUseList: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Prefix != nil { + t.visitor.Enter("Prefix", true) + t.Traverse(nn.Prefix) + t.visitor.Leave("Prefix", true) + } + if nn.UseList != nil { + t.visitor.Enter("UseList", true) + t.Traverse(nn.UseList) + t.visitor.Leave("UseList", true) + } + case *ast.StmtUseList: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.UseDeclarations != nil { + t.visitor.Enter("UseDeclarations", false) + for _, c := range nn.UseDeclarations { + t.Traverse(c) + } + t.visitor.Leave("UseDeclarations", false) + } + case *ast.StmtUseDeclaration: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return } if nn.Use != nil { t.visitor.Enter("Use", true) @@ -1189,24 +1203,22 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Alias) t.visitor.Leave("Alias", true) } - case *ast.StmtUseList: + case *ast.StmtUseType: if nn == nil { return } if !t.visitor.EnterNode(nn) { return } - if nn.UseType != nil { - t.visitor.Enter("UseType", true) - t.Traverse(nn.UseType) - t.visitor.Leave("UseType", true) + if nn.Type != nil { + t.visitor.Enter("Type", true) + t.Traverse(nn.Type) + t.visitor.Leave("Type", true) } - if nn.Uses != nil { - t.visitor.Enter("Uses", false) - for _, c := range nn.Uses { - t.Traverse(c) - } - t.visitor.Leave("Uses", false) + if nn.Use != nil { + t.visitor.Enter("Use", true) + t.Traverse(nn.Use) + t.visitor.Leave("Use", true) } case *ast.StmtWhile: if nn == nil { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 9346d75..fd9e253 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -437,12 +437,6 @@ func (v *Dump) StmtGoto(n *ast.StmtGoto) { v.printNode(n.GetNode()) } -func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtGroupUse{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtHaltCompiler{\n") @@ -596,12 +590,30 @@ func (v *Dump) StmtUse(n *ast.StmtUse) { v.printNode(n.GetNode()) } +func (v *Dump) StmtGroupUseList(n *ast.StmtGroupUseList) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtGroupUseList{\n") + v.printNode(n.GetNode()) +} + func (v *Dump) StmtUseList(n *ast.StmtUseList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUseList{\n") v.printNode(n.GetNode()) } +func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtUseDeclaration{\n") + v.printNode(n.GetNode()) +} + +func (v *Dump) StmtUseType(n *ast.StmtUseType) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.StmtUseType{\n") + v.printNode(n.GetNode()) +} + func (v *Dump) StmtWhile(n *ast.StmtWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtWhile{\n") diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index 9438971..65f0f54 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -13,7 +13,9 @@ type NamespaceResolver struct { Namespace *Namespace ResolvedNames map[ast.Vertex]string - goDeep bool + goDeep bool + useType string + usePrefix []ast.Vertex } // NewNamespaceResolver NamespaceResolver type constructor @@ -45,28 +47,28 @@ func (nsr *NamespaceResolver) StmtNamespace(n *ast.StmtNamespace) { } } -func (nsr *NamespaceResolver) StmtUseList(n *ast.StmtUseList) { - useType := "" - if n.UseType != nil { - useType = string(n.UseType.(*ast.Identifier).Value) +func (nsr *NamespaceResolver) StmtUseType(n *ast.StmtUseType) { + if n.Type != nil { + nsr.useType = string(n.Type.(*ast.Identifier).Value) } - - for _, nn := range n.Uses { - nsr.AddAlias(useType, nn, nil) - } - - nsr.goDeep = false } -func (nsr *NamespaceResolver) StmtGroupUse(n *ast.StmtGroupUse) { - useType := "" - if n.UseType != nil { - useType = string(n.UseType.(*ast.Identifier).Value) +func (nsr *NamespaceResolver) StmtGroupUseList(n *ast.StmtGroupUseList) { + if n.Prefix != nil { + nsr.usePrefix = n.Prefix.(*ast.NameName).Parts + } +} + +func (nsr *NamespaceResolver) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + useNameParts := n.Use.(*ast.NameName).Parts + var alias string + if n.Alias == nil { + alias = string(useNameParts[len(useNameParts)-1].(*ast.NameNamePart).Value) + } else { + alias = string(n.Alias.(*ast.Identifier).Value) } - for _, nn := range n.UseList { - nsr.AddAlias(useType, nn, n.Prefix.(*ast.NameName).Parts) - } + nsr.Namespace.AddAlias(nsr.useType, concatNameParts(nsr.usePrefix, useNameParts), alias) nsr.goDeep = false } @@ -213,26 +215,10 @@ func (nsr *NamespaceResolver) LeaveNode(n ast.Vertex) { if nn.Stmts != nil { nsr.Namespace = NewNamespace("") } - } -} - -// AddAlias adds a new alias -func (nsr *NamespaceResolver) AddAlias(useType string, nn ast.Vertex, prefix []ast.Vertex) { - switch use := nn.(type) { - case *ast.StmtUse: - if use.UseType != nil { - useType = string(use.UseType.(*ast.Identifier).Value) - } - - useNameParts := use.Use.(*ast.NameName).Parts - var alias string - if use.Alias == nil { - alias = string(useNameParts[len(useNameParts)-1].(*ast.NameNamePart).Value) - } else { - alias = string(use.Alias.(*ast.Identifier).Value) - } - - nsr.Namespace.AddAlias(useType, concatNameParts(prefix, useNameParts), alias) + case *ast.StmtUseType: + nsr.useType = "" + case *ast.StmtGroupUseList: + nsr.usePrefix = nil } } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index d52d635..22eb8bc 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -16,10 +16,12 @@ func TestResolveStaticCall(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, }, }, }, @@ -48,10 +50,12 @@ func TestResolveStaticPropertyFetch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, }, }, }, @@ -79,10 +83,12 @@ func TestResolveClassConstFetch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, }, }, }, @@ -110,10 +116,12 @@ func TestResolveNew(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, }, }, }, @@ -141,10 +149,12 @@ func TestResolveInstanceOf(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, }, }, }, @@ -175,14 +185,15 @@ func TestResolveInstanceCatch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, - }, - &ast.StmtUse{ - Use: nameDE, - Alias: &ast.Identifier{Value: []byte("F")}, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, &ast.StmtUseDeclaration{ + Use: nameDE, + Alias: &ast.Identifier{Value: []byte("F")}, + }, }, }, }, @@ -220,11 +231,15 @@ func TestResolveFunctionCall(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - UseType: &ast.Identifier{Value: []byte("function")}, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseType{ + Type: &ast.Identifier{Value: []byte("function")}, + Use: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, + }, }, }, }, @@ -252,11 +267,15 @@ func TestResolveConstFetch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - UseType: &ast.Identifier{Value: []byte("const")}, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseType{ + Type: &ast.Identifier{Value: []byte("const")}, + Use: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, + }, }, }, }, @@ -286,25 +305,39 @@ func TestResolveGroupUse(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ - Prefix: nameAB, - UseList: []ast.Vertex{ - &ast.StmtUse{ - UseType: &ast.Identifier{Value: []byte("Function")}, - Use: nameF, - }, - &ast.StmtUse{ - UseType: &ast.Identifier{Value: []byte("const")}, - Use: nameC, + &ast.StmtUse{ + UseList: &ast.StmtGroupUseList{ + Prefix: nameAB, + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseType{ + Type: &ast.Identifier{Value: []byte("Function")}, + Use: &ast.StmtUseDeclaration{ + Use: nameF, + }, + }, + &ast.StmtUseType{ + Type: &ast.Identifier{Value: []byte("const")}, + Use: &ast.StmtUseDeclaration{ + Use: nameC, + }, + }, + }, }, }, }, - &ast.StmtGroupUse{ - Prefix: nameBD, - UseType: &ast.Identifier{Value: []byte("Function")}, - UseList: []ast.Vertex{ - &ast.StmtUse{ - Use: nameE, + &ast.StmtUse{ + UseList: &ast.StmtUseType{ + Type: &ast.Identifier{Value: []byte("Function")}, + Use: &ast.StmtGroupUseList{ + Prefix: nameBD, + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameE, + }, + }, + }, }, }, }, @@ -347,10 +380,12 @@ func TestResolveTraitUse(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAB, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, }, }, }, @@ -668,10 +703,12 @@ func TestResolveNamespaces(t *testing.T) { &ast.StmtNamespace{ NamespaceName: namespaceCD, Stmts: []ast.Vertex{ - &ast.StmtUseList{ - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: nameAC, + &ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAC, + }, }, }, }, diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 6fd6261..e291500 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -182,10 +182,6 @@ func (v *Null) StmtGoto(_ *ast.StmtGoto) { // do nothing } -func (v *Null) StmtGroupUse(_ *ast.StmtGroupUse) { - // do nothing -} - func (v *Null) StmtHaltCompiler(_ *ast.StmtHaltCompiler) { // do nothing } @@ -286,10 +282,22 @@ func (v *Null) StmtUse(_ *ast.StmtUse) { // do nothing } +func (v *Null) StmtGroupUseList(_ *ast.StmtGroupUseList) { + // do nothing +} + func (v *Null) StmtUseList(_ *ast.StmtUseList) { // do nothing } +func (v *Null) StmtUseDeclaration(_ *ast.StmtUseDeclaration) { + // do nothing +} + +func (v *Null) StmtUseType(_ *ast.StmtUseType) { + // do nothing +} + func (v *Null) StmtWhile(_ *ast.StmtWhile) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 0948cdd..71a89a8 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -353,8 +353,6 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { p.printStmtGlobal(n) case *ast.StmtGoto: p.printStmtGoto(n) - case *ast.StmtGroupUse: - p.printStmtGroupUse(n) case *ast.StmtHaltCompiler: p.printStmtHaltCompiler(n) case *ast.StmtIf: @@ -399,10 +397,16 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { p.printStmtTry(n) case *ast.StmtUnset: p.printStmtUnset(n) - case *ast.StmtUseList: - p.printStmtUseList(n) case *ast.StmtUse: p.printStmtUse(n) + case *ast.StmtGroupUseList: + p.printStmtGroupUseList(n) + case *ast.StmtUseList: + p.printStmtUseList(n) + case *ast.StmtUseDeclaration: + p.printStmtUseDeclaration(n) + case *ast.StmtUseType: + p.printStmtUseType(n) case *ast.StmtWhile: p.printStmtWhile(n) } @@ -1847,22 +1851,6 @@ func (p *PrettyPrinter) printStmtGoto(n ast.Vertex) { io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtGroupUse(n ast.Vertex) { - nn := n.(*ast.StmtGroupUse) - - io.WriteString(p.w, "use ") - - if nn.UseType != nil { - p.Print(nn.UseType) - io.WriteString(p.w, " ") - } - - p.Print(nn.Prefix) - io.WriteString(p.w, "\\{") - p.joinPrint(", ", nn.UseList) - io.WriteString(p.w, "};") -} - func (p *PrettyPrinter) printStmtHaltCompiler(n ast.Vertex) { io.WriteString(p.w, "__halt_compiler();") } @@ -2146,27 +2134,34 @@ func (p *PrettyPrinter) printStmtUnset(n ast.Vertex) { io.WriteString(p.w, ");") } -func (p *PrettyPrinter) printStmtUseList(n ast.Vertex) { - nn := n.(*ast.StmtUseList) - - io.WriteString(p.w, "use ") - - if nn.UseType != nil { - p.Print(nn.UseType) - io.WriteString(p.w, " ") - } - - p.joinPrint(", ", nn.Uses) - io.WriteString(p.w, ";") -} - func (p *PrettyPrinter) printStmtUse(n ast.Vertex) { nn := n.(*ast.StmtUse) - if nn.UseType != nil { - p.Print(nn.UseType) - io.WriteString(p.w, " ") - } + io.WriteString(p.w, "use ") + + p.Print(nn.UseList) + + io.WriteString(p.w, ";") +} + +func (p *PrettyPrinter) printStmtGroupUseList(n ast.Vertex) { + nn := n.(*ast.StmtGroupUseList) + + p.Print(nn.Prefix) + + io.WriteString(p.w, "\\{") + p.Print(nn.UseList) + io.WriteString(p.w, "}") +} + +func (p *PrettyPrinter) printStmtUseList(n ast.Vertex) { + nn := n.(*ast.StmtUseList) + + p.joinPrint(", ", nn.UseDeclarations) +} + +func (p *PrettyPrinter) printStmtUseDeclaration(n ast.Vertex) { + nn := n.(*ast.StmtUseDeclaration) p.Print(nn.Use) @@ -2176,6 +2171,15 @@ func (p *PrettyPrinter) printStmtUse(n ast.Vertex) { } } +func (p *PrettyPrinter) printStmtUseType(n ast.Vertex) { + nn := n.(*ast.StmtUseType) + + p.Print(nn.Type) + io.WriteString(p.w, " ") + + p.Print(nn.Use) +} + func (p *PrettyPrinter) printStmtWhile(n ast.Vertex) { nn := n.(*ast.StmtWhile) diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index dd20c5d..72f4988 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -3256,32 +3256,6 @@ func TestPrintStmtGoto(t *testing.T) { } } -func TestPrintStmtGroupUse(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtGroupUse{ - UseType: &ast.Identifier{Value: []byte("function")}, - Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - UseList: []ast.Vertex{ - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - Alias: &ast.Identifier{Value: []byte("Baz")}, - }, - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, - }, - }, - }) - - expected := `use function Foo\{Bar as Baz, Quuz};` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestPrintHaltCompiler(t *testing.T) { o := bytes.NewBufferString("") @@ -3975,24 +3949,15 @@ func TestPrintStmtUset(t *testing.T) { } } -func TestPrintStmtUseList(t *testing.T) { +func TestPrintUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtUseList{ - UseType: &ast.Identifier{Value: []byte("function")}, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Alias: &ast.Identifier{Value: []byte("Bar")}, - }, - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - }, - }, + p.Print(&ast.StmtUse{ + UseList: &ast.StmtUseList{}, }) - expected := `use function Foo as Bar, Baz;` + expected := `use ;` actual := o.String() if expected != actual { @@ -4000,14 +3965,74 @@ func TestPrintStmtUseList(t *testing.T) { } } -func TestPrintUse(t *testing.T) { +func TestPrintStmtGroupUseList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtUse{ - UseType: &ast.Identifier{Value: []byte("function")}, - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Alias: &ast.Identifier{Value: []byte("Bar")}, + p.Print(&ast.StmtGroupUseList{ + Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + UseList: &ast.StmtUseList{}, + }) + + expected := `Foo\{}` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrintStmtUseList(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrettyPrinter(o, " ") + p.Print(&ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, + }, + &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + }, + }, + }) + + expected := `Foo as Bar, Baz` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrintUseDeclaration(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrettyPrinter(o, " ") + p.Print(&ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, + }) + + expected := `Foo as Bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrintUseType(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrettyPrinter(o, " ") + p.Print(&ast.StmtUseType{ + Type: &ast.Identifier{Value: []byte("function")}, + Use: &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, + }, }) expected := `function Foo as Bar` diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 47a82fb..4eff938 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -16,8 +16,10 @@ const ( ) type Printer struct { - w io.Writer - s printerState + w io.Writer + s printerState + bufStart string + bufEnd string } // NewPrinter - Constructor for Printer @@ -60,6 +62,21 @@ func (p *Printer) printNodes(nn []ast.Vertex) { } } +func (p *Printer) printFreeFloatingOrDefault(n ast.Vertex, pos token.Position, def string) { + if n == nil { + return + } + + if len(n.GetNode().Tokens[pos]) == 0 { + io.WriteString(p.w, def) + return + } + + for _, m := range n.GetNode().Tokens[pos] { + io.WriteString(p.w, string(m.Value)) + } +} + func (p *Printer) printFreeFloating(n ast.Vertex, pos token.Position) { if n == nil { return @@ -374,8 +391,6 @@ func (p *Printer) printNode(n ast.Vertex) { p.printStmtGlobal(n) case *ast.StmtGoto: p.printStmtGoto(n) - case *ast.StmtGroupUse: - p.printStmtGroupUse(n) case *ast.StmtHaltCompiler: p.printStmtHaltCompiler(n) case *ast.StmtIf: @@ -422,10 +437,16 @@ func (p *Printer) printNode(n ast.Vertex) { p.printStmtTry(n) case *ast.StmtUnset: p.printStmtUnset(n) - case *ast.StmtUseList: - p.printStmtUseList(n) case *ast.StmtUse: p.printStmtUse(n) + case *ast.StmtGroupUseList: + p.printStmtGroupUseList(n) + case *ast.StmtUseList: + p.printStmtUseList(n) + case *ast.StmtUseDeclaration: + p.printStmtUseDeclaration(n) + case *ast.StmtUseType: + p.printStmtUseType(n) case *ast.StmtWhile: p.printStmtWhile(n) } @@ -443,8 +464,11 @@ func (p *Printer) printNodeRoot(n ast.Vertex) { func (p *Printer) printNodeIdentifier(n ast.Vertex) { nn := n.(*ast.Identifier) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } @@ -519,7 +543,8 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { func (p *Printer) printNameNamePart(n ast.Vertex) { nn := n.(*ast.NameNamePart) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" io.WriteString(p.w, string(nn.Value)) @@ -532,22 +557,26 @@ func (p *Printer) printNameName(n ast.Vertex) { p.joinPrint("\\", nn.Parts) - p.printFreeFloating(nn, token.End) + p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) + p.bufEnd = "" } func (p *Printer) printNameFullyQualified(n ast.Vertex) { nn := n.(*ast.NameFullyQualified) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" io.WriteString(p.w, "\\") p.joinPrint("\\", nn.Parts) - p.printFreeFloating(nn, token.End) + p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) + p.bufEnd = "" } func (p *Printer) printNameRelative(n ast.Vertex) { nn := n.(*ast.NameRelative) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" io.WriteString(p.w, "namespace") p.printFreeFloating(nn, token.Namespace) @@ -557,7 +586,8 @@ func (p *Printer) printNameRelative(n ast.Vertex) { p.Print(part) } - p.printFreeFloating(nn, token.End) + p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) + p.bufEnd = "" } // scalar @@ -2710,41 +2740,6 @@ func (p *Printer) printStmtGoto(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtGroupUse(n ast.Vertex) { - nn := n.(*ast.StmtGroupUse) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "use") - p.printFreeFloating(nn, token.Use) - - if nn.UseType != nil { - if nn.UseType.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.UseType) - } - - if nn.Prefix.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Prefix) - io.WriteString(p.w, "\\") - p.printFreeFloating(nn, token.Slash) - - io.WriteString(p.w, "{") - p.joinPrint(",", nn.UseList) - p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") - p.printFreeFloating(nn, token.UseDeclarationList) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printStmtHaltCompiler(n ast.Vertex) { nn := n.(*ast.StmtHaltCompiler) p.printFreeFloating(nn, token.Start) @@ -3197,59 +3192,78 @@ func (p *Printer) printStmtUnset(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtUseList(n ast.Vertex) { - nn := n.(*ast.StmtUseList) +func (p *Printer) printStmtUse(n ast.Vertex) { + nn := n.(*ast.StmtUse) p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "use") - if nn.UseType != nil { - if nn.UseType.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.UseType) + p.bufStart = " " + p.Print(nn.UseList) + + p.printFreeFloatingOrDefault(nn, token.End, ";") +} + +func (p *Printer) printStmtGroupUseList(n ast.Vertex) { + nn := n.(*ast.StmtGroupUseList) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Prefix) + + p.bufStart = "\\{" + p.bufEnd = "}" + p.Print(nn.UseList) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printStmtUseList(n ast.Vertex) { + nn := n.(*ast.StmtUseList) + + bufEnd := p.bufEnd + p.bufEnd = "" + + if p.bufStart == "\\{" { + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + } else { + p.printFreeFloating(nn, token.Start) } - if nn.Uses[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Uses) - p.printFreeFloating(nn, token.UseDeclarationList) + p.joinPrint(",", nn.UseDeclarations) - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.printFreeFloatingOrDefault(nn, token.End, bufEnd) +} + +func (p *Printer) printStmtUseDeclaration(n ast.Vertex) { + nn := n.(*ast.StmtUseDeclaration) + p.printFreeFloating(nn, token.Start) + + if nn.Alias != nil { + p.bufEnd = " " + } + + p.Print(nn.Use) + + if nn.Alias != nil { + io.WriteString(p.w, "as") + + p.bufStart = " " + p.Print(nn.Alias) } p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtUse(n ast.Vertex) { - nn := n.(*ast.StmtUse) +func (p *Printer) printStmtUseType(n ast.Vertex) { + nn := n.(*ast.StmtUseType) p.printFreeFloating(nn, token.Start) - if nn.UseType != nil { - p.Print(nn.UseType) - if nn.UseType.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.printFreeFloating(nn, token.Slash) + p.Print(nn.Type) + p.bufStart = " " p.Print(nn.Use) - if nn.Alias != nil { - if nn.Alias.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "as") - if nn.Alias.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Alias) - } - p.printFreeFloating(nn, token.End) } diff --git a/pkg/printer/printer_test.go b/pkg/printer/printer_test.go index c7a8303..8e85ac0 100644 --- a/pkg/printer/printer_test.go +++ b/pkg/printer/printer_test.go @@ -3673,32 +3673,6 @@ func TestPrinterPrintStmtGoto(t *testing.T) { } } -func TestPrinterPrintStmtGroupUse(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrinter(o) - p.Print(&ast.StmtGroupUse{ - UseType: &ast.Identifier{Value: []byte("function")}, - Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - UseList: []ast.Vertex{ - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - Alias: &ast.Identifier{Value: []byte("Baz")}, - }, - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, - }, - }, - }) - - expected := `use function Foo\{Bar as Baz,Quuz};` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestPrinterPrintHaltCompiler(t *testing.T) { o := bytes.NewBufferString("") @@ -4412,24 +4386,21 @@ func TestPrinterPrintStmtUnset(t *testing.T) { } } -func TestPrinterPrintStmtUseList(t *testing.T) { +func TestPrinterPrintUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&ast.StmtUseList{ - UseType: &ast.Identifier{Value: []byte("function")}, - Uses: []ast.Vertex{ - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Alias: &ast.Identifier{Value: []byte("Bar")}, - }, - &ast.StmtUse{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + p.Print(&ast.StmtUse{ + UseList: &ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + }, }, }, }) - expected := `use function Foo as Bar,Baz;` + expected := `use Foo;` actual := o.String() if expected != actual { @@ -4437,14 +4408,74 @@ func TestPrinterPrintStmtUseList(t *testing.T) { } } -func TestPrinterPrintUse(t *testing.T) { +func TestPrinterPrintStmtGroupUseList(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&ast.StmtUse{ - UseType: &ast.Identifier{Value: []byte("function")}, - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Alias: &ast.Identifier{Value: []byte("Bar")}, + p.Print(&ast.StmtGroupUseList{ + Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + UseList: &ast.StmtUseList{}, + }) + + expected := `Foo\{}` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrinterPrintStmtUseList(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrinter(o) + p.Print(&ast.StmtUseList{ + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, + }, + &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + }, + }, + }) + + expected := `Foo as Bar,Baz` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrinterPrintUseDeclaration(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrinter(o) + p.Print(&ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, + }) + + expected := `Foo as Bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrinterPrintUseType(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrinter(o) + p.Print(&ast.StmtUseType{ + Type: &ast.Identifier{Value: []byte("function")}, + Use: &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, + }, }) expected := `function Foo as Bar` diff --git a/pkg/token/position.go b/pkg/token/position.go index 7032e5a..1a3b02d 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -6,7 +6,6 @@ type Position int const ( Start Position = iota End - Slash Colon SemiColon AltEnd diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go index cc51fe2..a2f713a 100644 --- a/pkg/token/position_string.go +++ b/pkg/token/position_string.go @@ -10,85 +10,84 @@ func _() { 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] + _ = x[Colon-2] + _ = x[SemiColon-3] + _ = x[AltEnd-4] + _ = x[Dollar-5] + _ = x[Ampersand-6] + _ = x[Name-7] + _ = x[Prefix-8] + _ = x[Key-9] + _ = x[Var-10] + _ = x[UseType-11] + _ = x[ReturnType-12] + _ = x[OptionalType-13] + _ = x[CaseSeparator-14] + _ = x[LexicalVars-15] + _ = x[Params-16] + _ = x[Ref-17] + _ = x[Cast-18] + _ = x[Expr-19] + _ = x[InitExpr-20] + _ = x[CondExpr-21] + _ = x[IncExpr-22] + _ = x[True-23] + _ = x[Cond-24] + _ = x[HaltCompiller-25] + _ = x[Namespace-26] + _ = x[Static-27] + _ = x[Class-28] + _ = x[Use-29] + _ = x[While-30] + _ = x[For-31] + _ = x[Switch-32] + _ = x[Break-33] + _ = x[Foreach-34] + _ = x[Declare-35] + _ = x[Label-36] + _ = x[Finally-37] + _ = x[List-38] + _ = x[Default-39] + _ = x[If-40] + _ = x[ElseIf-41] + _ = x[Else-42] + _ = x[Variadic-43] + _ = x[Function-44] + _ = x[DoubleArrow-45] + _ = x[Alias-46] + _ = x[As-47] + _ = x[Equal-48] + _ = x[Exit-49] + _ = x[Array-50] + _ = x[Isset-51] + _ = x[Empty-52] + _ = x[Eval-53] + _ = x[Echo-54] + _ = x[Try-55] + _ = x[Catch-56] + _ = x[Unset-57] + _ = x[Stmts-58] + _ = x[VarList-59] + _ = x[ConstList-60] + _ = x[NameList-61] + _ = x[ParamList-62] + _ = x[ModifierList-63] + _ = x[ArrayPairList-64] + _ = x[CaseListStart-65] + _ = x[CaseListEnd-66] + _ = x[ArgumentList-67] + _ = x[PropertyList-68] + _ = x[ParameterList-69] + _ = x[AdaptationList-70] + _ = x[LexicalVarList-71] + _ = x[UseDeclarationList-72] + _ = x[OpenParenthesisToken-73] + _ = x[CloseParenthesisToken-74] } -const _Position_name = "StartEndSlashColonSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionDoubleArrowAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" +const _Position_name = "StartEndColonSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionDoubleArrowAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" -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} +var _Position_index = [...]uint16{0, 5, 8, 13, 22, 28, 34, 43, 47, 53, 56, 59, 66, 76, 88, 101, 112, 118, 121, 125, 129, 137, 145, 152, 156, 160, 173, 182, 188, 193, 196, 201, 204, 210, 215, 222, 229, 234, 241, 245, 252, 254, 260, 264, 272, 280, 291, 296, 298, 303, 307, 312, 317, 322, 326, 330, 333, 338, 343, 348, 355, 364, 372, 381, 393, 406, 419, 430, 442, 454, 467, 481, 495, 513, 533, 554} func (i Position) String() string { if i < 0 || i >= Position(len(_Position_index)-1) { From 48e0996a92658f5d1774761afbf1266b645921ea Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 3 Aug 2020 22:39:02 +0200 Subject: [PATCH 037/140] [refactoring] do not inherit free-floating tokens in `name` nodes --- internal/php5/php5.go | 1049 +++++++++++------------ internal/php5/php5.y | 29 +- internal/php7/php7.go | 832 +++++++++--------- internal/php7/php7.y | 10 +- pkg/printer/printer.go | 68 +- pkg/printer/printer_parsed_php7_test.go | 2 +- 6 files changed, 965 insertions(+), 1025 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 7a695b7..6feebfc 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7134 +// line internal/php5/php5.y:7109 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2443,7 +2443,6 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) @@ -2451,7 +2450,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:399 + // line internal/php5/php5.y:398 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2462,7 +2461,6 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) @@ -2470,7 +2468,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:416 + // line internal/php5/php5.y:414 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2486,7 +2484,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:430 + // line internal/php5/php5.y:428 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, useList} @@ -2503,7 +2501,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:445 + // line internal/php5/php5.y:443 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} @@ -2525,7 +2523,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:465 + // line internal/php5/php5.y:463 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} @@ -2547,7 +2545,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:485 + // line internal/php5/php5.y:483 { yyVAL.node = yyDollar[1].node @@ -2562,7 +2560,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:501 + // line internal/php5/php5.y:499 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2573,7 +2571,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:510 + // line internal/php5/php5.y:508 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2581,7 +2579,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:519 + // line internal/php5/php5.y:517 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2594,7 +2592,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:530 + // line internal/php5/php5.y:528 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2613,7 +2611,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:547 + // line internal/php5/php5.y:545 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2629,7 +2627,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:561 + // line internal/php5/php5.y:559 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2649,7 +2647,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:582 + // line internal/php5/php5.y:580 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2660,7 +2658,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:591 + // line internal/php5/php5.y:589 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2668,7 +2666,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:600 + // line internal/php5/php5.y:598 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2681,7 +2679,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:611 + // line internal/php5/php5.y:609 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2700,7 +2698,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:628 + // line internal/php5/php5.y:626 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2716,7 +2714,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:642 + // line internal/php5/php5.y:640 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2736,7 +2734,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:663 + // line internal/php5/php5.y:661 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2747,7 +2745,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:672 + // line internal/php5/php5.y:670 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2755,7 +2753,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:681 + // line internal/php5/php5.y:679 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2768,7 +2766,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:692 + // line internal/php5/php5.y:690 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2787,7 +2785,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:709 + // line internal/php5/php5.y:707 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2803,7 +2801,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:723 + // line internal/php5/php5.y:721 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2823,7 +2821,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:744 + // line internal/php5/php5.y:742 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2846,7 +2844,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:765 + // line internal/php5/php5.y:763 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2867,7 +2865,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:787 + // line internal/php5/php5.y:785 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2882,7 +2880,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:800 + // line internal/php5/php5.y:798 { yyVAL.list = []ast.Vertex{} @@ -2890,7 +2888,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:810 + // line internal/php5/php5.y:808 { // error yyVAL.node = nil @@ -2899,7 +2897,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:817 + // line internal/php5/php5.y:815 { yyVAL.node = yyDollar[1].node @@ -2907,7 +2905,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:823 + // line internal/php5/php5.y:821 { yyVAL.node = yyDollar[1].node @@ -2915,7 +2913,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:829 + // line internal/php5/php5.y:827 { yyVAL.node = yyDollar[1].node @@ -2923,7 +2921,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:835 + // line internal/php5/php5.y:833 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2941,7 +2939,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:855 + // line internal/php5/php5.y:853 { yyVAL.node = yyDollar[1].node @@ -2949,7 +2947,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:861 + // line internal/php5/php5.y:859 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2966,7 +2964,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:879 + // line internal/php5/php5.y:877 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2981,7 +2979,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:892 + // line internal/php5/php5.y:890 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3009,7 +3007,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:916 + // line internal/php5/php5.y:914 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} @@ -3037,7 +3035,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:940 + // line internal/php5/php5.y:938 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3066,7 +3064,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:965 + // line internal/php5/php5.y:963 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3091,7 +3089,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:986 + // line internal/php5/php5.y:984 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3120,7 +3118,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1013 + // line internal/php5/php5.y:1011 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3151,7 +3149,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1040 + // line internal/php5/php5.y:1038 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3167,7 +3165,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1054 + // line internal/php5/php5.y:1052 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3183,7 +3181,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1068 + // line internal/php5/php5.y:1066 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3199,7 +3197,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1082 + // line internal/php5/php5.y:1080 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3215,7 +3213,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1096 + // line internal/php5/php5.y:1094 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3231,7 +3229,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1110 + // line internal/php5/php5.y:1108 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3247,7 +3245,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1124 + // line internal/php5/php5.y:1122 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3263,7 +3261,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1138 + // line internal/php5/php5.y:1136 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3279,7 +3277,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1152 + // line internal/php5/php5.y:1150 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3295,7 +3293,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1166 + // line internal/php5/php5.y:1164 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3311,7 +3309,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1180 + // line internal/php5/php5.y:1178 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3328,7 +3326,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1195 + // line internal/php5/php5.y:1193 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3342,7 +3340,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1207 + // line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3358,7 +3356,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1221 + // line internal/php5/php5.y:1219 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3376,7 +3374,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1237 + // line internal/php5/php5.y:1235 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3419,7 +3417,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1277 + // line internal/php5/php5.y:1275 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3462,7 +3460,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1317 + // line internal/php5/php5.y:1315 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3479,7 +3477,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1332 + // line internal/php5/php5.y:1330 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3494,7 +3492,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1345 + // line internal/php5/php5.y:1343 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3514,7 +3512,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1363 + // line internal/php5/php5.y:1361 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3530,7 +3528,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1377 + // line internal/php5/php5.y:1375 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3549,7 +3547,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1397 + // line internal/php5/php5.y:1395 { yyVAL.list = []ast.Vertex{} @@ -3557,7 +3555,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1403 + // line internal/php5/php5.y:1401 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3581,7 +3579,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1428 + // line internal/php5/php5.y:1426 { yyVAL.node = nil @@ -3589,7 +3587,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1434 + // line internal/php5/php5.y:1432 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3605,7 +3603,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1451 + // line internal/php5/php5.y:1449 { yyVAL.list = yyDollar[1].list @@ -3613,7 +3611,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1457 + // line internal/php5/php5.y:1455 { yyVAL.list = []ast.Vertex{} @@ -3621,7 +3619,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1466 + // line internal/php5/php5.y:1464 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3629,7 +3627,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1472 + // line internal/php5/php5.y:1470 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3637,7 +3635,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1481 + // line internal/php5/php5.y:1479 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3660,7 +3658,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1505 + // line internal/php5/php5.y:1503 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3668,7 +3666,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1511 + // line internal/php5/php5.y:1509 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3679,7 +3677,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1521 { yyVAL.node = yyDollar[1].node @@ -3687,7 +3685,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1532 + // line internal/php5/php5.y:1530 { yyVAL.node = yyDollar[1].node @@ -3695,7 +3693,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1541 + // line internal/php5/php5.y:1539 { yyVAL.node = yyDollar[1].node @@ -3703,31 +3701,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1548 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1554 + // line internal/php5/php5.y:1552 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1561 + // line internal/php5/php5.y:1559 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1565 + // line internal/php5/php5.y:1563 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1570 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3753,7 +3751,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1599 + // line internal/php5/php5.y:1597 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3783,7 +3781,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1627 + // line internal/php5/php5.y:1625 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3802,7 +3800,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1648 + // line internal/php5/php5.y:1646 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3816,7 +3814,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1660 + // line internal/php5/php5.y:1658 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3833,7 +3831,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1675 + // line internal/php5/php5.y:1673 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3847,7 +3845,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1687 + // line internal/php5/php5.y:1685 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3864,7 +3862,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1705 + // line internal/php5/php5.y:1703 { yyVAL.ClassExtends = nil @@ -3872,7 +3870,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1711 + // line internal/php5/php5.y:1709 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3886,13 +3884,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1726 + // line internal/php5/php5.y:1724 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1733 + // line internal/php5/php5.y:1731 { yyVAL.InterfaceExtends = nil @@ -3900,7 +3898,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1739 + // line internal/php5/php5.y:1737 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3914,7 +3912,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1754 + // line internal/php5/php5.y:1752 { yyVAL.ClassImplements = nil @@ -3922,7 +3920,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1760 + // line internal/php5/php5.y:1758 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3936,7 +3934,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1775 + // line internal/php5/php5.y:1773 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3944,7 +3942,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1781 + // line internal/php5/php5.y:1779 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3955,7 +3953,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1793 + // line internal/php5/php5.y:1791 { yyVAL.node = nil @@ -3963,7 +3961,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1799 + // line internal/php5/php5.y:1797 { yyVAL.node = yyDollar[2].node @@ -3974,7 +3972,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1809 { yyVAL.node = yyDollar[1].node @@ -3982,7 +3980,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1815 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3996,7 +3994,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1829 + // line internal/php5/php5.y:1827 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4012,7 +4010,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1846 + // line internal/php5/php5.y:1844 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4023,7 +4021,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1855 + // line internal/php5/php5.y:1853 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4042,7 +4040,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1875 + // line internal/php5/php5.y:1873 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4053,7 +4051,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1884 + // line internal/php5/php5.y:1882 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4072,7 +4070,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1905 + // line internal/php5/php5.y:1903 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4083,7 +4081,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1914 + // line internal/php5/php5.y:1912 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4102,7 +4100,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1935 + // line internal/php5/php5.y:1933 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4120,7 +4118,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1951 + // line internal/php5/php5.y:1949 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4139,7 +4137,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1972 + // line internal/php5/php5.y:1970 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4156,7 +4154,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1987 + // line internal/php5/php5.y:1985 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4174,7 +4172,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2003 + // line internal/php5/php5.y:2001 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4193,7 +4191,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2020 + // line internal/php5/php5.y:2018 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4214,7 +4212,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2043 + // line internal/php5/php5.y:2041 { yyVAL.list = []ast.Vertex{} @@ -4222,7 +4220,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2049 + // line internal/php5/php5.y:2047 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4239,7 +4237,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2064 + // line internal/php5/php5.y:2062 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4256,19 +4254,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2083 + // line internal/php5/php5.y:2081 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2087 + // line internal/php5/php5.y:2085 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2095 + // line internal/php5/php5.y:2093 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4279,7 +4277,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2104 + // line internal/php5/php5.y:2102 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4298,7 +4296,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2126 + // line internal/php5/php5.y:2124 { yyVAL.list = nil @@ -4306,7 +4304,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2132 + // line internal/php5/php5.y:2130 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4329,7 +4327,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2155 + // line internal/php5/php5.y:2153 { yyVAL.list = nil @@ -4337,7 +4335,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2161 + // line internal/php5/php5.y:2159 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4363,7 +4361,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2187 + // line internal/php5/php5.y:2185 { yyVAL.node = nil @@ -4371,7 +4369,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2193 + // line internal/php5/php5.y:2191 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4385,7 +4383,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2209 + // line internal/php5/php5.y:2207 { yyVAL.node = nil @@ -4393,7 +4391,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2215 + // line internal/php5/php5.y:2213 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4410,7 +4408,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2234 + // line internal/php5/php5.y:2232 { yyVAL.list = yyDollar[1].list @@ -4418,7 +4416,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2240 + // line internal/php5/php5.y:2238 { yyVAL.list = nil @@ -4426,7 +4424,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2249 + // line internal/php5/php5.y:2247 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4434,7 +4432,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2255 + // line internal/php5/php5.y:2253 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4445,7 +4443,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2267 + // line internal/php5/php5.y:2265 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4483,7 +4481,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2303 + // line internal/php5/php5.y:2301 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4522,7 +4520,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2344 + // line internal/php5/php5.y:2342 { yyVAL.node = nil @@ -4530,7 +4528,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2350 + // line internal/php5/php5.y:2348 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4544,7 +4542,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2362 + // line internal/php5/php5.y:2360 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4558,7 +4556,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2374 + // line internal/php5/php5.y:2372 { yyVAL.node = yyDollar[1].node @@ -4566,7 +4564,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2382 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4581,7 +4579,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2397 + // line internal/php5/php5.y:2395 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4596,7 +4594,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2410 + // line internal/php5/php5.y:2408 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4613,7 +4611,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2429 + // line internal/php5/php5.y:2427 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4621,7 +4619,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2435 + // line internal/php5/php5.y:2433 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4632,7 +4630,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2447 + // line internal/php5/php5.y:2445 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4646,7 +4644,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2459 + // line internal/php5/php5.y:2457 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4660,7 +4658,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2471 + // line internal/php5/php5.y:2469 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4674,7 +4672,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2483 + // line internal/php5/php5.y:2481 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4688,7 +4686,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2498 + // line internal/php5/php5.y:2496 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4699,7 +4697,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2507 + // line internal/php5/php5.y:2505 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4707,7 +4705,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2517 + // line internal/php5/php5.y:2515 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4723,7 +4721,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2531 + // line internal/php5/php5.y:2529 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4737,7 +4735,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2543 + // line internal/php5/php5.y:2541 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4753,7 +4751,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2561 + // line internal/php5/php5.y:2559 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4773,7 +4771,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2579 + // line internal/php5/php5.y:2577 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4794,7 +4792,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2598 + // line internal/php5/php5.y:2596 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4813,7 +4811,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2615 + // line internal/php5/php5.y:2613 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4833,7 +4831,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2637 + // line internal/php5/php5.y:2635 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4841,7 +4839,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2643 + // line internal/php5/php5.y:2641 { yyVAL.list = []ast.Vertex{} @@ -4849,7 +4847,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2653 + // line internal/php5/php5.y:2651 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4865,7 +4863,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2667 + // line internal/php5/php5.y:2665 { yyVAL.node = yyDollar[1].node @@ -4880,7 +4878,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2680 + // line internal/php5/php5.y:2678 { yyVAL.node = yyDollar[1].node @@ -4888,7 +4886,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2686 + // line internal/php5/php5.y:2684 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4921,7 +4919,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2720 + // line internal/php5/php5.y:2718 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4935,7 +4933,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2735 + // line internal/php5/php5.y:2733 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4943,7 +4941,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2741 + // line internal/php5/php5.y:2739 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4954,7 +4952,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2753 + // line internal/php5/php5.y:2751 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4968,7 +4966,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2765 + // line internal/php5/php5.y:2763 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4982,7 +4980,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2780 + // line internal/php5/php5.y:2778 { yyVAL.list = nil @@ -4990,7 +4988,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2786 + // line internal/php5/php5.y:2784 { yyVAL.list = yyDollar[1].list @@ -4998,7 +4996,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2795 + // line internal/php5/php5.y:2793 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5006,7 +5004,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2801 + // line internal/php5/php5.y:2799 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5014,7 +5012,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2810 + // line internal/php5/php5.y:2808 { yyVAL.node = yyDollar[1].node @@ -5026,7 +5024,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2820 + // line internal/php5/php5.y:2818 { yyVAL.node = yyDollar[1].node @@ -5038,7 +5036,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2833 + // line internal/php5/php5.y:2831 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5053,7 +5051,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2849 + // line internal/php5/php5.y:2847 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5061,7 +5059,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2855 + // line internal/php5/php5.y:2853 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5072,7 +5070,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2867 + // line internal/php5/php5.y:2865 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5088,7 +5086,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2881 + // line internal/php5/php5.y:2879 { yyVAL.node = yyDollar[1].node @@ -5096,7 +5094,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2890 + // line internal/php5/php5.y:2888 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5114,7 +5112,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2909 + // line internal/php5/php5.y:2907 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5132,7 +5130,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2923 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5147,7 +5145,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2941 + // line internal/php5/php5.y:2939 { yyVAL.node = nil @@ -5155,7 +5153,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2947 + // line internal/php5/php5.y:2945 { yyVAL.node = yyDollar[1].node @@ -5163,7 +5161,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2956 + // line internal/php5/php5.y:2954 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5178,7 +5176,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2969 + // line internal/php5/php5.y:2967 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5193,7 +5191,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2985 + // line internal/php5/php5.y:2983 { yyVAL.list = yyDollar[1].list @@ -5201,7 +5199,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2991 + // line internal/php5/php5.y:2989 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5216,7 +5214,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3007 + // line internal/php5/php5.y:3005 { yyVAL.list = nil @@ -5224,7 +5222,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3013 + // line internal/php5/php5.y:3011 { yyVAL.list = yyDollar[1].list @@ -5232,7 +5230,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3022 + // line internal/php5/php5.y:3020 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5240,7 +5238,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3026 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5248,7 +5246,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3037 + // line internal/php5/php5.y:3035 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5262,7 +5260,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3049 + // line internal/php5/php5.y:3047 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5276,7 +5274,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3061 + // line internal/php5/php5.y:3059 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5290,7 +5288,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3073 + // line internal/php5/php5.y:3071 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5304,7 +5302,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3085 + // line internal/php5/php5.y:3083 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5318,7 +5316,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3097 + // line internal/php5/php5.y:3095 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5332,7 +5330,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3112 + // line internal/php5/php5.y:3110 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5352,7 +5350,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3130 + // line internal/php5/php5.y:3128 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5373,7 +5371,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3149 + // line internal/php5/php5.y:3147 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5392,7 +5390,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3166 + // line internal/php5/php5.y:3164 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5412,7 +5410,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3187 + // line internal/php5/php5.y:3185 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5435,7 +5433,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3208 + // line internal/php5/php5.y:3206 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5455,7 +5453,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3229 + // line internal/php5/php5.y:3227 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5466,7 +5464,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3236 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5474,7 +5472,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3248 + // line internal/php5/php5.y:3246 { yyVAL.list = nil @@ -5482,7 +5480,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3252 { yyVAL.list = yyDollar[1].list @@ -5490,7 +5488,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3263 + // line internal/php5/php5.y:3261 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5501,7 +5499,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3272 + // line internal/php5/php5.y:3270 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5509,7 +5507,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3281 + // line internal/php5/php5.y:3279 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5517,7 +5515,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3287 + // line internal/php5/php5.y:3285 { yyVAL.list = yyDollar[1].list @@ -5525,7 +5523,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3296 + // line internal/php5/php5.y:3294 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5541,7 +5539,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3310 + // line internal/php5/php5.y:3308 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5557,7 +5555,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3327 + // line internal/php5/php5.y:3325 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5565,7 +5563,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3333 + // line internal/php5/php5.y:3331 { yyVAL.list = yyDollar[1].list @@ -5573,7 +5571,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3339 + // line internal/php5/php5.y:3337 { yyVAL.list = yyDollar[1].list @@ -5581,7 +5579,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3348 + // line internal/php5/php5.y:3346 { yyVAL.list = nil @@ -5589,7 +5587,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3354 + // line internal/php5/php5.y:3352 { yyVAL.list = yyDollar[1].list @@ -5597,7 +5595,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3363 + // line internal/php5/php5.y:3361 { if yyDollar[3].node != nil { @@ -5615,7 +5613,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3382 + // line internal/php5/php5.y:3380 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5634,7 +5632,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3399 + // line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5649,7 +5647,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3412 + // line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5665,7 +5663,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3426 + // line internal/php5/php5.y:3424 { var _new *ast.ExprNew @@ -5694,7 +5692,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3453 + // line internal/php5/php5.y:3451 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5708,7 +5706,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3465 + // line internal/php5/php5.y:3463 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5722,7 +5720,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3477 + // line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5737,7 +5735,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3490 + // line internal/php5/php5.y:3488 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5752,7 +5750,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3503 + // line internal/php5/php5.y:3501 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5765,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3516 + // line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5782,7 +5780,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3529 + // line internal/php5/php5.y:3527 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5797,7 +5795,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3542 + // line internal/php5/php5.y:3540 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,7 +5810,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3555 + // line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5827,7 +5825,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3568 + // line internal/php5/php5.y:3566 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5842,7 +5840,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3581 + // line internal/php5/php5.y:3579 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,7 +5855,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3594 + // line internal/php5/php5.y:3592 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5870,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3607 + // line internal/php5/php5.y:3605 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5887,7 +5885,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3620 + // line internal/php5/php5.y:3618 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5902,7 +5900,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3633 + // line internal/php5/php5.y:3631 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5916,7 +5914,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3645 + // line internal/php5/php5.y:3643 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5931,7 +5929,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3658 + // line internal/php5/php5.y:3656 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5945,7 +5943,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3670 + // line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5960,7 +5958,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3683 + // line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5975,7 +5973,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3694 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5990,7 +5988,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3709 + // line internal/php5/php5.y:3707 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6005,7 +6003,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3722 + // line internal/php5/php5.y:3720 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6020,7 +6018,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3735 + // line internal/php5/php5.y:3733 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6035,7 +6033,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3748 + // line internal/php5/php5.y:3746 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6050,7 +6048,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3761 + // line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6065,7 +6063,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3774 + // line internal/php5/php5.y:3772 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6080,7 +6078,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3787 + // line internal/php5/php5.y:3785 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6095,7 +6093,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3800 + // line internal/php5/php5.y:3798 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6110,7 +6108,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3813 + // line internal/php5/php5.y:3811 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6125,7 +6123,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3826 + // line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6140,7 +6138,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3839 + // line internal/php5/php5.y:3837 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6155,7 +6153,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3852 + // line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6170,7 +6168,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3865 + // line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6185,7 +6183,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3878 + // line internal/php5/php5.y:3876 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6200,7 +6198,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3891 + // line internal/php5/php5.y:3889 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6214,7 +6212,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3903 + // line internal/php5/php5.y:3901 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6228,7 +6226,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3915 + // line internal/php5/php5.y:3913 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6242,7 +6240,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3927 + // line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6256,7 +6254,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3939 + // line internal/php5/php5.y:3937 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6271,7 +6269,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3952 + // line internal/php5/php5.y:3950 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6286,7 +6284,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3965 + // line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6301,7 +6299,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3978 + // line internal/php5/php5.y:3976 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6317,7 +6315,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3992 + // line internal/php5/php5.y:3990 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6332,7 +6330,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4005 + // line internal/php5/php5.y:4003 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6347,7 +6345,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4018 + // line internal/php5/php5.y:4016 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6362,7 +6360,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4031 + // line internal/php5/php5.y:4029 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6377,7 +6375,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4044 + // line internal/php5/php5.y:4042 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6392,7 +6390,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4057 + // line internal/php5/php5.y:4055 { yyVAL.node = yyDollar[1].node @@ -6405,7 +6403,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4066 + // line internal/php5/php5.y:4064 { yyVAL.node = yyDollar[1].node @@ -6413,7 +6411,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4072 + // line internal/php5/php5.y:4070 { yyVAL.node = yyDollar[2].node @@ -6447,7 +6445,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4102 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6463,7 +6461,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4118 + // line internal/php5/php5.y:4116 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6479,7 +6477,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4132 + // line internal/php5/php5.y:4130 { yyVAL.node = yyDollar[1].node @@ -6487,7 +6485,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4138 + // line internal/php5/php5.y:4136 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6502,7 +6500,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4149 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6517,7 +6515,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4164 + // line internal/php5/php5.y:4162 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6532,7 +6530,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4177 + // line internal/php5/php5.y:4175 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6547,7 +6545,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4190 + // line internal/php5/php5.y:4188 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6562,7 +6560,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4203 + // line internal/php5/php5.y:4201 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6577,7 +6575,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4216 + // line internal/php5/php5.y:4214 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6592,7 +6590,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4229 + // line internal/php5/php5.y:4227 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6615,7 +6613,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4250 + // line internal/php5/php5.y:4248 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6629,7 +6627,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4262 + // line internal/php5/php5.y:4260 { yyVAL.node = yyDollar[1].node @@ -6637,7 +6635,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4268 + // line internal/php5/php5.y:4266 { yyVAL.node = yyDollar[1].node @@ -6645,7 +6643,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4274 + // line internal/php5/php5.y:4272 { yyVAL.node = yyDollar[1].node @@ -6653,7 +6651,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4280 + // line internal/php5/php5.y:4278 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6667,7 +6665,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4292 + // line internal/php5/php5.y:4290 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6681,7 +6679,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4304 + // line internal/php5/php5.y:4302 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6695,7 +6693,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4316 + // line internal/php5/php5.y:4314 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6724,7 +6722,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4342 + // line internal/php5/php5.y:4340 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6754,7 +6752,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4372 + // line internal/php5/php5.y:4370 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6768,7 +6766,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4384 + // line internal/php5/php5.y:4382 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6782,7 +6780,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4396 + // line internal/php5/php5.y:4394 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6797,7 +6795,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4409 + // line internal/php5/php5.y:4407 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6812,7 +6810,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4425 + // line internal/php5/php5.y:4423 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6820,7 +6818,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -6828,7 +6825,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4439 + // line internal/php5/php5.y:4436 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6836,7 +6833,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -6844,7 +6840,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4453 + // line internal/php5/php5.y:4449 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6854,7 +6850,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(str, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(str, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -6862,7 +6858,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4469 + // line internal/php5/php5.y:4465 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6870,7 +6866,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -6878,7 +6873,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4481 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6894,7 +6889,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4500 + // line internal/php5/php5.y:4495 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6909,13 +6904,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4516 + // line internal/php5/php5.y:4511 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4523 + // line internal/php5/php5.y:4518 { yyVAL.ClosureUse = nil @@ -6923,7 +6918,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4529 + // line internal/php5/php5.y:4524 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6939,7 +6934,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4546 + // line internal/php5/php5.y:4541 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6957,7 +6952,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4557 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6978,7 +6973,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4581 + // line internal/php5/php5.y:4576 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6995,7 +6990,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4596 + // line internal/php5/php5.y:4591 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7015,7 +7010,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4617 + // line internal/php5/php5.y:4612 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7024,14 +7019,11 @@ yydefault: name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[2].node) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4631 + // line internal/php5/php5.y:4623 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7048,7 +7040,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4638 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7064,7 +7056,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4660 + // line internal/php5/php5.y:4652 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7079,7 +7071,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4673 + // line internal/php5/php5.y:4665 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7094,7 +7086,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4686 + // line internal/php5/php5.y:4678 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7109,7 +7101,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4699 + // line internal/php5/php5.y:4691 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7124,7 +7116,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4712 + // line internal/php5/php5.y:4704 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7138,7 +7130,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4727 + // line internal/php5/php5.y:4719 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7152,21 +7144,18 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4739 + // line internal/php5/php5.y:4731 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4751 + // line internal/php5/php5.y:4740 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7181,7 +7170,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4764 + // line internal/php5/php5.y:4753 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7195,21 +7184,18 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4779 + // line internal/php5/php5.y:4768 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4791 + // line internal/php5/php5.y:4777 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7224,7 +7210,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4804 + // line internal/php5/php5.y:4790 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7238,7 +7224,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4819 + // line internal/php5/php5.y:4805 { yyVAL.node = yyDollar[1].node @@ -7246,7 +7232,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4825 + // line internal/php5/php5.y:4811 { yyVAL.node = yyDollar[1].node @@ -7254,7 +7240,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4834 + // line internal/php5/php5.y:4820 { yyVAL.node = yyDollar[1].node @@ -7297,7 +7283,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4875 + // line internal/php5/php5.y:4861 { yyVAL.node = yyDollar[1].node @@ -7305,7 +7291,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4885 + // line internal/php5/php5.y:4871 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7313,7 +7299,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4877 { yyVAL.list = []ast.Vertex{} @@ -7321,7 +7307,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4901 + // line internal/php5/php5.y:4887 { yyVAL.list = yyDollar[2].list @@ -7332,7 +7318,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4913 + // line internal/php5/php5.y:4899 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7340,7 +7326,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4919 + // line internal/php5/php5.y:4905 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7355,7 +7341,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4918 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7376,7 +7362,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4952 + // line internal/php5/php5.y:4938 { yyVAL.list = []ast.Vertex{} @@ -7384,7 +7370,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4958 + // line internal/php5/php5.y:4944 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7396,7 +7382,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4968 + // line internal/php5/php5.y:4954 { yyVAL.list = yyDollar[1].list @@ -7404,7 +7390,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4977 + // line internal/php5/php5.y:4963 { yyVAL.node = nil @@ -7412,7 +7398,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4983 + // line internal/php5/php5.y:4969 { yyVAL.node = yyDollar[1].node @@ -7420,7 +7406,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4992 + // line internal/php5/php5.y:4978 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7434,7 +7420,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5004 + // line internal/php5/php5.y:4990 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7448,7 +7434,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5016 + // line internal/php5/php5.y:5002 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7462,7 +7448,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5028 + // line internal/php5/php5.y:5014 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7476,7 +7462,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5040 + // line internal/php5/php5.y:5026 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7490,7 +7476,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5052 + // line internal/php5/php5.y:5038 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7504,7 +7490,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5064 + // line internal/php5/php5.y:5050 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7518,7 +7504,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5076 + // line internal/php5/php5.y:5062 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7532,7 +7518,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5088 + // line internal/php5/php5.y:5074 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7546,7 +7532,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5100 + // line internal/php5/php5.y:5086 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7560,7 +7546,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5098 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7576,7 +7562,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5126 + // line internal/php5/php5.y:5112 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7590,7 +7576,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5141 + // line internal/php5/php5.y:5127 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7608,7 +7594,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5160 + // line internal/php5/php5.y:5146 { yyVAL.node = yyDollar[1].node @@ -7616,7 +7602,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5169 + // line internal/php5/php5.y:5155 { yyVAL.node = yyDollar[1].node @@ -7624,7 +7610,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5175 + // line internal/php5/php5.y:5161 { yyVAL.node = yyDollar[1].node @@ -7632,7 +7618,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5181 + // line internal/php5/php5.y:5167 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7641,14 +7627,11 @@ yydefault: name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5195 + // line internal/php5/php5.y:5178 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7665,7 +7648,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5210 + // line internal/php5/php5.y:5193 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7681,7 +7664,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5224 + // line internal/php5/php5.y:5207 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7697,7 +7680,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5238 + // line internal/php5/php5.y:5221 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7712,7 +7695,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5251 + // line internal/php5/php5.y:5234 { yyVAL.node = yyDollar[1].node @@ -7720,7 +7703,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5257 + // line internal/php5/php5.y:5240 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7734,7 +7717,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5269 + // line internal/php5/php5.y:5252 { yyVAL.node = yyDollar[1].node @@ -7742,7 +7725,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5261 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7750,7 +7733,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -7758,7 +7740,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5292 + // line internal/php5/php5.y:5274 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7773,7 +7755,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5305 + // line internal/php5/php5.y:5287 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7788,7 +7770,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5318 + // line internal/php5/php5.y:5300 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7803,7 +7785,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5331 + // line internal/php5/php5.y:5313 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7818,7 +7800,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5326 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7833,7 +7815,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5339 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7848,7 +7830,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5352 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7862,7 +7844,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5364 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7876,7 +7858,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5394 + // line internal/php5/php5.y:5376 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7891,7 +7873,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5407 + // line internal/php5/php5.y:5389 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7906,7 +7888,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5420 + // line internal/php5/php5.y:5402 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7921,7 +7903,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5415 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7936,7 +7918,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5446 + // line internal/php5/php5.y:5428 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7951,7 +7933,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5459 + // line internal/php5/php5.y:5441 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7966,7 +7948,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5454 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7981,7 +7963,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5467 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7996,7 +7978,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5498 + // line internal/php5/php5.y:5480 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8011,7 +7993,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5493 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8026,7 +8008,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5524 + // line internal/php5/php5.y:5506 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,7 +8023,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5537 + // line internal/php5/php5.y:5519 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8056,7 +8038,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5532 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8071,7 +8053,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5563 + // line internal/php5/php5.y:5545 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8086,7 +8068,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5558 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8102,7 +8084,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5590 + // line internal/php5/php5.y:5572 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8117,7 +8099,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5603 + // line internal/php5/php5.y:5585 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8132,7 +8114,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5616 + // line internal/php5/php5.y:5598 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8147,7 +8129,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5611 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8162,7 +8144,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5642 + // line internal/php5/php5.y:5624 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8178,7 +8160,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5656 + // line internal/php5/php5.y:5638 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8194,7 +8176,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5670 + // line internal/php5/php5.y:5652 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8208,7 +8190,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5682 + // line internal/php5/php5.y:5664 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8222,7 +8204,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5694 + // line internal/php5/php5.y:5676 { yyVAL.node = yyDollar[2].node @@ -8234,7 +8216,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5689 { yyVAL.node = yyDollar[1].node @@ -8242,7 +8224,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5713 + // line internal/php5/php5.y:5695 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8251,14 +8233,11 @@ yydefault: name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5727 + // line internal/php5/php5.y:5706 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8275,7 +8254,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5742 + // line internal/php5/php5.y:5721 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8291,7 +8270,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5738 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8307,7 +8286,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5773 + // line internal/php5/php5.y:5752 { yyVAL.node = yyDollar[1].node @@ -8315,7 +8294,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5779 + // line internal/php5/php5.y:5758 { yyVAL.node = yyDollar[1].node @@ -8323,7 +8302,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5785 + // line internal/php5/php5.y:5764 { yyVAL.node = yyDollar[1].node @@ -8331,7 +8310,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5791 + // line internal/php5/php5.y:5770 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8345,7 +8324,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5803 + // line internal/php5/php5.y:5782 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8359,7 +8338,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5815 + // line internal/php5/php5.y:5794 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8373,7 +8352,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5830 + // line internal/php5/php5.y:5809 { yyVAL.list = nil @@ -8381,7 +8360,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5836 + // line internal/php5/php5.y:5815 { yyVAL.list = yyDollar[1].list @@ -8394,19 +8373,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5850 + // line internal/php5/php5.y:5829 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5854 + // line internal/php5/php5.y:5833 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5861 + // line internal/php5/php5.y:5840 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8423,7 +8402,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5876 + // line internal/php5/php5.y:5855 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8439,7 +8418,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5890 + // line internal/php5/php5.y:5869 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8455,7 +8434,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5904 + // line internal/php5/php5.y:5883 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8470,7 +8449,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5920 + // line internal/php5/php5.y:5899 { yyVAL.node = yyDollar[1].node @@ -8478,7 +8457,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5926 + // line internal/php5/php5.y:5905 { yyVAL.node = yyDollar[1].node @@ -8486,7 +8465,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5935 + // line internal/php5/php5.y:5914 { yyVAL.node = yyDollar[2].node @@ -8504,7 +8483,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5951 + // line internal/php5/php5.y:5930 { yyVAL.node = yyDollar[2].node @@ -8522,7 +8501,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5971 + // line internal/php5/php5.y:5950 { yyVAL.node = yyDollar[1].node @@ -8530,7 +8509,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5981 + // line internal/php5/php5.y:5960 { yyVAL.node = yyDollar[1].node @@ -8538,7 +8517,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5990 + // line internal/php5/php5.y:5969 { yyVAL.node = yyDollar[1].node @@ -8546,7 +8525,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5999 + // line internal/php5/php5.y:5978 { yyVAL.node = yyDollar[1].node @@ -8606,7 +8585,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6057 + // line internal/php5/php5.y:6036 { yyVAL.node = yyDollar[1].node @@ -8614,7 +8593,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6066 + // line internal/php5/php5.y:6045 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8622,7 +8601,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6072 + // line internal/php5/php5.y:6051 { yyVAL.list = []ast.Vertex{} @@ -8630,7 +8609,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6082 + // line internal/php5/php5.y:6061 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8646,7 +8625,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6099 + // line internal/php5/php5.y:6078 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8662,7 +8641,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6113 + // line internal/php5/php5.y:6092 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8678,7 +8657,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6130 + // line internal/php5/php5.y:6109 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8689,7 +8668,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6142 + // line internal/php5/php5.y:6121 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8697,7 +8676,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6148 + // line internal/php5/php5.y:6127 { yyVAL.list = yyDollar[1].list @@ -8705,7 +8684,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6154 + // line internal/php5/php5.y:6133 { yyVAL.list = nil @@ -8713,7 +8692,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6163 + // line internal/php5/php5.y:6142 { yyVAL.node = yyDollar[1].node @@ -8721,7 +8700,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6169 + // line internal/php5/php5.y:6148 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8735,7 +8714,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6184 + // line internal/php5/php5.y:6163 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8750,7 +8729,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6197 + // line internal/php5/php5.y:6176 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8765,7 +8744,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6213 + // line internal/php5/php5.y:6192 { yyVAL.node = yyDollar[1].node @@ -8773,7 +8752,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6222 + // line internal/php5/php5.y:6201 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8781,7 +8760,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -8789,7 +8767,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6236 + // line internal/php5/php5.y:6214 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8797,7 +8775,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -8805,7 +8782,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6253 + // line internal/php5/php5.y:6230 { yyVAL.node = yyDollar[1].node @@ -8813,7 +8790,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6259 + // line internal/php5/php5.y:6236 { yyVAL.node = yyDollar[1].node @@ -8821,7 +8798,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6265 + // line internal/php5/php5.y:6242 { yyVAL.node = yyDollar[1].node @@ -8829,7 +8806,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6275 + // line internal/php5/php5.y:6252 { yyVAL.node = yyDollar[1].node @@ -8837,7 +8814,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6281 + // line internal/php5/php5.y:6258 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8851,7 +8828,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6293 + // line internal/php5/php5.y:6270 { yyVAL.node = yyDollar[1].node @@ -8859,7 +8836,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6302 + // line internal/php5/php5.y:6279 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8867,7 +8844,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -8875,7 +8851,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6316 + // line internal/php5/php5.y:6292 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8883,7 +8859,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -8891,7 +8866,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6330 + // line internal/php5/php5.y:6305 { yyVAL.node = yyDollar[1].node @@ -8899,7 +8874,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6340 + // line internal/php5/php5.y:6315 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8915,7 +8890,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6354 + // line internal/php5/php5.y:6329 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8931,7 +8906,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6371 + // line internal/php5/php5.y:6346 { yyVAL.node = nil @@ -8939,7 +8914,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6377 + // line internal/php5/php5.y:6352 { yyVAL.node = yyDollar[1].node @@ -8947,7 +8922,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6387 + // line internal/php5/php5.y:6362 { yyVAL.list = yyDollar[1].list @@ -8955,7 +8930,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6393 + // line internal/php5/php5.y:6368 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8967,7 +8942,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6406 + // line internal/php5/php5.y:6381 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8983,7 +8958,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6420 + // line internal/php5/php5.y:6395 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8999,7 +8974,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6434 + // line internal/php5/php5.y:6409 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9011,7 +8986,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6447 + // line internal/php5/php5.y:6422 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9025,7 +9000,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6459 + // line internal/php5/php5.y:6434 { yyVAL.node = yyDollar[2].node @@ -9040,7 +9015,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6475 + // line internal/php5/php5.y:6450 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9055,7 +9030,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6488 + // line internal/php5/php5.y:6463 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9074,7 +9049,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6508 + // line internal/php5/php5.y:6483 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9089,7 +9064,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6521 + // line internal/php5/php5.y:6496 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9101,7 +9076,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6535 + // line internal/php5/php5.y:6510 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9115,7 +9090,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6547 + // line internal/php5/php5.y:6522 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9133,7 +9108,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6563 + // line internal/php5/php5.y:6538 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9141,7 +9116,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6573 + // line internal/php5/php5.y:6548 { yyVAL.list = []ast.Vertex{} @@ -9149,7 +9124,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6579 + // line internal/php5/php5.y:6554 { yyVAL.list = yyDollar[1].list @@ -9166,7 +9141,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6597 + // line internal/php5/php5.y:6572 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9183,7 +9158,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6612 + // line internal/php5/php5.y:6587 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9199,7 +9174,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6626 + // line internal/php5/php5.y:6601 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9215,7 +9190,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6640 + // line internal/php5/php5.y:6615 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9230,7 +9205,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6653 + // line internal/php5/php5.y:6628 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9250,7 +9225,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6671 + // line internal/php5/php5.y:6646 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9268,7 +9243,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6687 + // line internal/php5/php5.y:6662 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9287,7 +9262,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6704 + // line internal/php5/php5.y:6679 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9304,7 +9279,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6722 + // line internal/php5/php5.y:6697 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9312,7 +9287,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6728 + // line internal/php5/php5.y:6703 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9327,7 +9302,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6741 + // line internal/php5/php5.y:6716 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9335,7 +9310,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6747 + // line internal/php5/php5.y:6722 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9350,7 +9325,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6763 + // line internal/php5/php5.y:6738 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9366,7 +9341,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6777 + // line internal/php5/php5.y:6752 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9385,7 +9360,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6794 + // line internal/php5/php5.y:6769 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9406,7 +9381,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6813 + // line internal/php5/php5.y:6788 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9423,7 +9398,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6828 + // line internal/php5/php5.y:6803 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9442,7 +9417,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6845 + // line internal/php5/php5.y:6820 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9454,7 +9429,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.Tokens) @@ -9463,7 +9438,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6864 + // line internal/php5/php5.y:6839 { yyVAL.node = yyDollar[2].node @@ -9475,7 +9450,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6877 + // line internal/php5/php5.y:6852 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9489,7 +9464,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6889 + // line internal/php5/php5.y:6864 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9508,7 +9483,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6906 + // line internal/php5/php5.y:6881 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9524,7 +9499,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6923 + // line internal/php5/php5.y:6898 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9540,7 +9515,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6937 + // line internal/php5/php5.y:6912 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9556,7 +9531,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6951 + // line internal/php5/php5.y:6926 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9572,7 +9547,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6965 + // line internal/php5/php5.y:6940 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9586,7 +9561,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6977 + // line internal/php5/php5.y:6952 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9600,7 +9575,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6989 + // line internal/php5/php5.y:6964 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9616,7 +9591,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7003 + // line internal/php5/php5.y:6978 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9630,7 +9605,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7015 + // line internal/php5/php5.y:6990 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9644,7 +9619,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7030 + // line internal/php5/php5.y:7005 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9652,7 +9627,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7036 + // line internal/php5/php5.y:7011 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9663,7 +9638,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7048 + // line internal/php5/php5.y:7023 { yyVAL.node = yyDollar[1].node @@ -9671,7 +9646,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7054 + // line internal/php5/php5.y:7029 { yyVAL.node = yyDollar[1].node @@ -9679,7 +9654,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7063 + // line internal/php5/php5.y:7038 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9697,7 +9672,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7079 + // line internal/php5/php5.y:7054 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9715,7 +9690,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7098 + // line internal/php5/php5.y:7073 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9733,7 +9708,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7117 + // line internal/php5/php5.y:7092 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 3e87194..eade1dc 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -389,7 +389,6 @@ top_statement: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) @@ -406,7 +405,6 @@ top_statement: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) @@ -4429,7 +4427,6 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4443,7 +4440,6 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4459,7 +4455,7 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition(str, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(str, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4473,7 +4469,6 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4622,9 +4617,6 @@ function_call: name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodesPosition(name, $2) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list @@ -4742,9 +4734,6 @@ class_name: // save position $$.GetNode().Position = position.NewNodeListPosition($1) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -4782,9 +4771,6 @@ fully_qualified_class_name: // save position $$.GetNode().Position = position.NewNodeListPosition($1) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -5186,9 +5172,6 @@ static_scalar_value: name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodePosition(name) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -5282,7 +5265,6 @@ static_operation: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -5718,9 +5700,6 @@ general_constant: name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodePosition(name) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -6226,7 +6205,6 @@ array_function_dereference: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -6240,7 +6218,6 @@ array_function_dereference: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -6306,7 +6283,6 @@ reference_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -6320,7 +6296,6 @@ reference_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -6853,7 +6828,7 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken(variable, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.Tokens) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 33a3f5e..c267235 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5623 +// line internal/php7/php7.y:5615 // line yacctab:1 var yyExca = [...]int{ @@ -2649,14 +2649,11 @@ yydefault: // save position yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:401 + // line internal/php7/php7.y:398 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -2671,7 +2668,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:414 + // line internal/php7/php7.y:411 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -2685,7 +2682,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 + // line internal/php7/php7.y:426 { // error yyVAL.node = nil @@ -2694,7 +2691,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:436 + // line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node @@ -2702,7 +2699,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:442 + // line internal/php7/php7.y:439 { yyVAL.node = yyDollar[1].node @@ -2710,7 +2707,7 @@ yydefault: } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:448 + // line internal/php7/php7.y:445 { yyVAL.node = yyDollar[1].node @@ -2718,7 +2715,7 @@ yydefault: } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:454 + // line internal/php7/php7.y:451 { yyVAL.node = yyDollar[1].node @@ -2726,7 +2723,7 @@ yydefault: } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:460 + // line internal/php7/php7.y:457 { yyVAL.node = yyDollar[1].node @@ -2734,7 +2731,7 @@ yydefault: } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:466 + // line internal/php7/php7.y:463 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2752,7 +2749,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:482 + // line internal/php7/php7.y:479 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2771,7 +2768,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:499 + // line internal/php7/php7.y:496 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2790,7 +2787,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:516 + // line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2806,7 +2803,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:530 + // line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ast.Node{}, yyDollar[2].node} @@ -2821,7 +2818,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:543 + // line internal/php7/php7.y:540 { useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, yyDollar[3].node} yyVAL.node = &ast.StmtUse{ast.Node{}, useType} @@ -2838,7 +2835,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:558 + // line internal/php7/php7.y:555 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, useList} @@ -2855,7 +2852,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:573 + // line internal/php7/php7.y:570 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, useList} @@ -2874,7 +2871,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:590 + // line internal/php7/php7.y:587 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2890,7 +2887,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:607 + // line internal/php7/php7.y:604 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2904,7 +2901,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:619 + // line internal/php7/php7.y:616 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2918,7 +2915,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:634 + // line internal/php7/php7.y:631 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} @@ -2941,7 +2938,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:655 + // line internal/php7/php7.y:652 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} @@ -2965,7 +2962,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:680 + // line internal/php7/php7.y:677 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} @@ -2988,7 +2985,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:701 + // line internal/php7/php7.y:698 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} @@ -3012,19 +3009,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:726 + // line internal/php7/php7.y:723 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:730 + // line internal/php7/php7.y:727 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:737 + // line internal/php7/php7.y:734 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3035,7 +3032,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:746 + // line internal/php7/php7.y:743 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3043,7 +3040,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:755 + // line internal/php7/php7.y:752 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3054,7 +3051,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:764 + // line internal/php7/php7.y:761 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3062,7 +3059,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:773 + // line internal/php7/php7.y:770 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3073,7 +3070,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:782 + // line internal/php7/php7.y:779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3081,7 +3078,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:791 + // line internal/php7/php7.y:788 { yyVAL.node = yyDollar[1].node @@ -3089,7 +3086,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:797 + // line internal/php7/php7.y:794 { yyVAL.node = &ast.StmtUseType{ast.Node{}, yyDollar[1].node, yyDollar[2].node} @@ -3100,7 +3097,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:809 + // line internal/php7/php7.y:806 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -3113,7 +3110,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:820 + // line internal/php7/php7.y:817 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -3132,7 +3129,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:840 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node @@ -3140,7 +3137,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:846 + // line internal/php7/php7.y:843 { yyVAL.node = yyDollar[2].node @@ -3151,7 +3148,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:858 + // line internal/php7/php7.y:855 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3162,7 +3159,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:867 + // line internal/php7/php7.y:864 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3170,7 +3167,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:876 + // line internal/php7/php7.y:873 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3185,7 +3182,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:889 + // line internal/php7/php7.y:886 { yyVAL.list = []ast.Vertex{} @@ -3193,7 +3190,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:898 + // line internal/php7/php7.y:895 { // error yyVAL.node = nil @@ -3202,7 +3199,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:905 + // line internal/php7/php7.y:902 { yyVAL.node = yyDollar[1].node @@ -3210,7 +3207,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:911 + // line internal/php7/php7.y:908 { yyVAL.node = yyDollar[1].node @@ -3218,7 +3215,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:917 + // line internal/php7/php7.y:914 { yyVAL.node = yyDollar[1].node @@ -3226,7 +3223,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:923 + // line internal/php7/php7.y:920 { yyVAL.node = yyDollar[1].node @@ -3234,7 +3231,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:929 + // line internal/php7/php7.y:926 { yyVAL.node = yyDollar[1].node @@ -3242,7 +3239,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:935 + // line internal/php7/php7.y:932 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3260,7 +3257,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:953 + // line internal/php7/php7.y:950 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3275,7 +3272,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:966 + // line internal/php7/php7.y:963 { yyVAL.node = yyDollar[1].node @@ -3283,7 +3280,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:972 + // line internal/php7/php7.y:969 { yyVAL.node = yyDollar[1].node @@ -3291,7 +3288,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:978 + // line internal/php7/php7.y:975 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3314,7 +3311,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:999 + // line internal/php7/php7.y:996 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3333,7 +3330,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1016 + // line internal/php7/php7.y:1013 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3362,7 +3359,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1043 + // line internal/php7/php7.y:1040 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3387,7 +3384,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1066 + // line internal/php7/php7.y:1063 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3403,7 +3400,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1080 + // line internal/php7/php7.y:1077 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3419,7 +3416,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1094 + // line internal/php7/php7.y:1091 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3435,7 +3432,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1108 + // line internal/php7/php7.y:1105 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3451,7 +3448,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1122 + // line internal/php7/php7.y:1119 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3467,7 +3464,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1136 + // line internal/php7/php7.y:1133 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3484,7 +3481,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1151 + // line internal/php7/php7.y:1148 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3498,7 +3495,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1163 + // line internal/php7/php7.y:1160 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3514,7 +3511,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1177 + // line internal/php7/php7.y:1174 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3536,7 +3533,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1197 + // line internal/php7/php7.y:1194 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3562,7 +3559,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1222 + // line internal/php7/php7.y:1219 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3591,7 +3588,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1249 + // line internal/php7/php7.y:1246 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3608,7 +3605,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1264 + // line internal/php7/php7.y:1261 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3623,7 +3620,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1277 + // line internal/php7/php7.y:1274 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3642,7 +3639,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1294 + // line internal/php7/php7.y:1291 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3658,7 +3655,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1308 + // line internal/php7/php7.y:1305 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3677,7 +3674,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1325 + // line internal/php7/php7.y:1322 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3694,7 +3691,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1342 + // line internal/php7/php7.y:1339 { yyVAL.list = []ast.Vertex{} @@ -3702,7 +3699,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1348 + // line internal/php7/php7.y:1345 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3726,7 +3723,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1372 + // line internal/php7/php7.y:1369 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3734,7 +3731,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1378 + // line internal/php7/php7.y:1375 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3745,7 +3742,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1390 + // line internal/php7/php7.y:1387 { yyVAL.node = nil @@ -3753,7 +3750,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1396 + // line internal/php7/php7.y:1393 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3769,7 +3766,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1413 + // line internal/php7/php7.y:1410 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3777,7 +3774,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1419 + // line internal/php7/php7.y:1416 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3788,7 +3785,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1431 + // line internal/php7/php7.y:1428 { yyVAL.node = yyDollar[1].node @@ -3796,7 +3793,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1440 + // line internal/php7/php7.y:1437 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3832,31 +3829,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1476 + // line internal/php7/php7.y:1473 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1480 + // line internal/php7/php7.y:1477 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1487 + // line internal/php7/php7.y:1484 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1491 + // line internal/php7/php7.y:1488 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1498 + // line internal/php7/php7.y:1495 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3876,7 +3873,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1516 + // line internal/php7/php7.y:1513 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3895,7 +3892,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1536 + // line internal/php7/php7.y:1533 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3903,7 +3900,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1539 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3911,7 +3908,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1548 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3925,7 +3922,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1563 + // line internal/php7/php7.y:1560 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3939,7 +3936,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1578 + // line internal/php7/php7.y:1575 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3958,7 +3955,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1598 + // line internal/php7/php7.y:1595 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3977,7 +3974,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1618 + // line internal/php7/php7.y:1615 { yyVAL.ClassExtends = nil @@ -3985,7 +3982,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1621 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3999,7 +3996,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1639 + // line internal/php7/php7.y:1636 { yyVAL.InterfaceExtends = nil @@ -4007,7 +4004,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1645 + // line internal/php7/php7.y:1642 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4021,7 +4018,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1657 { yyVAL.ClassImplements = nil @@ -4029,7 +4026,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1663 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4043,7 +4040,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1681 + // line internal/php7/php7.y:1678 { yyVAL.node = yyDollar[1].node @@ -4051,7 +4048,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1687 + // line internal/php7/php7.y:1684 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4065,7 +4062,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1699 + // line internal/php7/php7.y:1696 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4081,7 +4078,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1713 + // line internal/php7/php7.y:1710 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4096,7 +4093,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1729 + // line internal/php7/php7.y:1726 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4107,7 +4104,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1738 + // line internal/php7/php7.y:1735 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4126,7 +4123,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1758 + // line internal/php7/php7.y:1755 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4137,7 +4134,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1767 + // line internal/php7/php7.y:1764 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4156,7 +4153,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1787 + // line internal/php7/php7.y:1784 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4167,7 +4164,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1793 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4186,7 +4183,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1816 + // line internal/php7/php7.y:1813 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4203,7 +4200,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1831 + // line internal/php7/php7.y:1828 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4221,7 +4218,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1847 + // line internal/php7/php7.y:1844 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4240,7 +4237,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1864 + // line internal/php7/php7.y:1861 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4261,7 +4258,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1886 + // line internal/php7/php7.y:1883 { yyVAL.list = []ast.Vertex{} @@ -4269,7 +4266,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1892 + // line internal/php7/php7.y:1889 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4286,7 +4283,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1907 + // line internal/php7/php7.y:1904 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4303,19 +4300,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1925 + // line internal/php7/php7.y:1922 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1929 + // line internal/php7/php7.y:1926 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1936 + // line internal/php7/php7.y:1933 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4326,7 +4323,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1945 + // line internal/php7/php7.y:1942 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4345,7 +4342,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1965 + // line internal/php7/php7.y:1962 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4361,7 +4358,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1976 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4381,7 +4378,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2000 + // line internal/php7/php7.y:1997 { yyVAL.node = yyDollar[1].node @@ -4389,7 +4386,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2006 + // line internal/php7/php7.y:2003 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4407,7 +4404,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2025 + // line internal/php7/php7.y:2022 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4426,7 +4423,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2039 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4448,7 +4445,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2065 + // line internal/php7/php7.y:2062 { yyVAL.node = yyDollar[1].node @@ -4464,7 +4461,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2079 + // line internal/php7/php7.y:2076 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4488,7 +4485,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2104 + // line internal/php7/php7.y:2101 { yyVAL.list = yyDollar[1].list @@ -4496,7 +4493,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2107 { yyVAL.list = nil @@ -4504,7 +4501,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2119 + // line internal/php7/php7.y:2116 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4512,7 +4509,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2125 + // line internal/php7/php7.y:2122 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4523,7 +4520,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2137 + // line internal/php7/php7.y:2134 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4561,7 +4558,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2173 + // line internal/php7/php7.y:2170 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4600,7 +4597,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2213 + // line internal/php7/php7.y:2210 { yyVAL.node = nil @@ -4608,7 +4605,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2219 + // line internal/php7/php7.y:2216 { yyVAL.node = yyDollar[1].node @@ -4616,7 +4613,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2228 + // line internal/php7/php7.y:2225 { yyVAL.node = yyDollar[1].node @@ -4624,7 +4621,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2234 + // line internal/php7/php7.y:2231 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4638,7 +4635,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2249 + // line internal/php7/php7.y:2246 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4652,7 +4649,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2261 + // line internal/php7/php7.y:2258 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4666,7 +4663,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2273 + // line internal/php7/php7.y:2270 { yyVAL.node = yyDollar[1].node @@ -4674,7 +4671,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2282 + // line internal/php7/php7.y:2279 { yyVAL.node = nil @@ -4682,7 +4679,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2285 { yyVAL.node = yyDollar[2].node @@ -4693,7 +4690,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2297 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4708,7 +4705,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2313 + // line internal/php7/php7.y:2310 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4727,7 +4724,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2330 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4735,7 +4732,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2339 + // line internal/php7/php7.y:2336 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4746,7 +4743,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2351 + // line internal/php7/php7.y:2348 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4760,7 +4757,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2363 + // line internal/php7/php7.y:2360 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4774,7 +4771,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2378 + // line internal/php7/php7.y:2375 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4785,7 +4782,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2387 + // line internal/php7/php7.y:2384 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4793,7 +4790,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2396 + // line internal/php7/php7.y:2393 { yyVAL.node = yyDollar[1].node @@ -4801,7 +4798,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2405 + // line internal/php7/php7.y:2402 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4812,7 +4809,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2414 + // line internal/php7/php7.y:2411 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4820,7 +4817,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2423 + // line internal/php7/php7.y:2420 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4838,7 +4835,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2439 + // line internal/php7/php7.y:2436 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4857,7 +4854,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2459 + // line internal/php7/php7.y:2456 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4865,7 +4862,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2465 + // line internal/php7/php7.y:2462 { yyVAL.list = []ast.Vertex{} @@ -4873,7 +4870,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2474 + // line internal/php7/php7.y:2471 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4889,7 +4886,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2488 + // line internal/php7/php7.y:2485 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4910,7 +4907,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2507 + // line internal/php7/php7.y:2504 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4924,7 +4921,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2516 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4961,7 +4958,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2556 + // line internal/php7/php7.y:2553 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4969,7 +4966,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2559 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4980,7 +4977,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2574 + // line internal/php7/php7.y:2571 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4994,7 +4991,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2587 + // line internal/php7/php7.y:2584 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5008,7 +5005,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2599 + // line internal/php7/php7.y:2596 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5022,7 +5019,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2614 + // line internal/php7/php7.y:2611 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5030,7 +5027,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2620 + // line internal/php7/php7.y:2617 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5038,7 +5035,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2629 + // line internal/php7/php7.y:2626 { yyVAL.node = yyDollar[1].node @@ -5050,7 +5047,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2639 + // line internal/php7/php7.y:2636 { yyVAL.node = yyDollar[1].node @@ -5062,7 +5059,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2652 + // line internal/php7/php7.y:2649 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5077,7 +5074,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2668 + // line internal/php7/php7.y:2665 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5095,7 +5092,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2684 + // line internal/php7/php7.y:2681 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5113,7 +5110,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2700 + // line internal/php7/php7.y:2697 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5131,7 +5128,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2716 + // line internal/php7/php7.y:2713 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5146,7 +5143,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2732 + // line internal/php7/php7.y:2729 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5162,7 +5159,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2746 + // line internal/php7/php7.y:2743 { yyVAL.node = yyDollar[1].node @@ -5170,7 +5167,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2755 + // line internal/php7/php7.y:2752 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5188,7 +5185,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2774 + // line internal/php7/php7.y:2771 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5203,7 +5200,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2787 + // line internal/php7/php7.y:2784 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5218,7 +5215,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2803 + // line internal/php7/php7.y:2800 { yyVAL.list = yyDollar[1].list @@ -5226,7 +5223,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2809 + // line internal/php7/php7.y:2806 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5241,7 +5238,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2825 + // line internal/php7/php7.y:2822 { yyVAL.list = nil @@ -5249,7 +5246,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2831 + // line internal/php7/php7.y:2828 { yyVAL.list = yyDollar[1].list @@ -5257,7 +5254,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2840 + // line internal/php7/php7.y:2837 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5265,7 +5262,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2846 + // line internal/php7/php7.y:2843 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5273,7 +5270,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2852 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5287,7 +5284,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2864 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5301,7 +5298,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2879 + // line internal/php7/php7.y:2876 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5315,7 +5312,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2891 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5329,7 +5326,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2903 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5343,7 +5340,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2912 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5357,7 +5354,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2930 + // line internal/php7/php7.y:2927 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5368,7 +5365,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2939 + // line internal/php7/php7.y:2936 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5376,7 +5373,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2948 + // line internal/php7/php7.y:2945 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5394,7 +5391,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2964 + // line internal/php7/php7.y:2961 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5413,7 +5410,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2984 + // line internal/php7/php7.y:2981 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5424,7 +5421,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2993 + // line internal/php7/php7.y:2990 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5432,7 +5429,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3002 + // line internal/php7/php7.y:2999 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5449,7 +5446,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3020 + // line internal/php7/php7.y:3017 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5466,7 +5463,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3038 + // line internal/php7/php7.y:3035 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5477,7 +5474,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3047 + // line internal/php7/php7.y:3044 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5485,7 +5482,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3056 + // line internal/php7/php7.y:3053 { yyVAL.node = yyDollar[1].node @@ -5493,7 +5490,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3065 + // line internal/php7/php7.y:3062 { yyVAL.list = nil @@ -5501,7 +5498,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3068 { yyVAL.list = yyDollar[1].list @@ -5509,7 +5506,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3077 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5520,7 +5517,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3086 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5528,7 +5525,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3098 + // line internal/php7/php7.y:3095 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5548,7 +5545,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3119 + // line internal/php7/php7.y:3116 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5565,7 +5562,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3131 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5579,7 +5576,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3146 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5598,7 +5595,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3163 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5616,7 +5613,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3182 + // line internal/php7/php7.y:3179 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5631,7 +5628,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3195 + // line internal/php7/php7.y:3192 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5647,7 +5644,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3209 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5661,7 +5658,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3221 + // line internal/php7/php7.y:3218 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5676,7 +5673,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3234 + // line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5691,7 +5688,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3247 + // line internal/php7/php7.y:3244 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5703,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3260 + // line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5721,7 +5718,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3273 + // line internal/php7/php7.y:3270 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5736,7 +5733,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3286 + // line internal/php7/php7.y:3283 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5751,7 +5748,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3299 + // line internal/php7/php7.y:3296 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5766,7 +5763,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3312 + // line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5781,7 +5778,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3325 + // line internal/php7/php7.y:3322 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5796,7 +5793,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3338 + // line internal/php7/php7.y:3335 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5811,7 +5808,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3351 + // line internal/php7/php7.y:3348 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5823,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3364 + // line internal/php7/php7.y:3361 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5841,7 +5838,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3377 + // line internal/php7/php7.y:3374 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5856,7 +5853,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3390 + // line internal/php7/php7.y:3387 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5871,7 +5868,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3403 + // line internal/php7/php7.y:3400 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5885,7 +5882,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3415 + // line internal/php7/php7.y:3412 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5900,7 +5897,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3428 + // line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5914,7 +5911,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3440 + // line internal/php7/php7.y:3437 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5929,7 +5926,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3450 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5944,7 +5941,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3466 + // line internal/php7/php7.y:3463 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5959,7 +5956,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3479 + // line internal/php7/php7.y:3476 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5974,7 +5971,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3492 + // line internal/php7/php7.y:3489 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5989,7 +5986,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3502 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6004,7 +6001,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3518 + // line internal/php7/php7.y:3515 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6019,7 +6016,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3531 + // line internal/php7/php7.y:3528 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6034,7 +6031,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3544 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6049,7 +6046,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3557 + // line internal/php7/php7.y:3554 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6064,7 +6061,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3570 + // line internal/php7/php7.y:3567 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6079,7 +6076,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3583 + // line internal/php7/php7.y:3580 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6094,7 +6091,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3596 + // line internal/php7/php7.y:3593 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6109,7 +6106,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3609 + // line internal/php7/php7.y:3606 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6124,7 +6121,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3622 + // line internal/php7/php7.y:3619 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6139,7 +6136,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3635 + // line internal/php7/php7.y:3632 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6154,7 +6151,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3648 + // line internal/php7/php7.y:3645 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6169,7 +6166,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3661 + // line internal/php7/php7.y:3658 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6183,7 +6180,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3673 + // line internal/php7/php7.y:3670 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6197,7 +6194,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3685 + // line internal/php7/php7.y:3682 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6211,7 +6208,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3697 + // line internal/php7/php7.y:3694 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6225,7 +6222,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3709 + // line internal/php7/php7.y:3706 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6240,7 +6237,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3722 + // line internal/php7/php7.y:3719 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6255,7 +6252,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3735 + // line internal/php7/php7.y:3732 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6270,7 +6267,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3748 + // line internal/php7/php7.y:3745 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6286,7 +6283,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3762 + // line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6301,7 +6298,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3775 + // line internal/php7/php7.y:3772 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6316,7 +6313,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3785 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6331,7 +6328,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3801 + // line internal/php7/php7.y:3798 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6346,7 +6343,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3814 + // line internal/php7/php7.y:3811 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6361,7 +6358,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3827 + // line internal/php7/php7.y:3824 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6376,7 +6373,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3840 + // line internal/php7/php7.y:3837 { yyVAL.node = yyDollar[2].node @@ -6388,7 +6385,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3850 + // line internal/php7/php7.y:3847 { yyVAL.node = yyDollar[1].node @@ -6396,7 +6393,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3856 + // line internal/php7/php7.y:3853 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6412,7 +6409,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3867 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6428,7 +6425,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3884 + // line internal/php7/php7.y:3881 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6443,7 +6440,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3897 + // line internal/php7/php7.y:3894 { yyVAL.node = yyDollar[1].node @@ -6451,7 +6448,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3903 + // line internal/php7/php7.y:3900 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6466,7 +6463,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3916 + // line internal/php7/php7.y:3913 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6481,7 +6478,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3926 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6496,7 +6493,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3942 + // line internal/php7/php7.y:3939 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6511,7 +6508,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3955 + // line internal/php7/php7.y:3952 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6526,7 +6523,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3968 + // line internal/php7/php7.y:3965 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6541,7 +6538,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3981 + // line internal/php7/php7.y:3978 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6556,7 +6553,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3994 + // line internal/php7/php7.y:3991 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6585,7 +6582,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4021 + // line internal/php7/php7.y:4018 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6599,7 +6596,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4033 + // line internal/php7/php7.y:4030 { yyVAL.node = yyDollar[1].node @@ -6607,7 +6604,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4039 + // line internal/php7/php7.y:4036 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6621,7 +6618,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4051 + // line internal/php7/php7.y:4048 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6635,7 +6632,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4060 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6649,7 +6646,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6663,7 +6660,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4084 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6678,7 +6675,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4100 + // line internal/php7/php7.y:4097 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6692,7 +6689,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4112 + // line internal/php7/php7.y:4109 { yyVAL.node = yyDollar[1].node @@ -6700,7 +6697,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4118 + // line internal/php7/php7.y:4115 { yyVAL.node = yyDollar[2].node @@ -6723,7 +6720,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4141 + // line internal/php7/php7.y:4138 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6760,7 +6757,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4173 + // line internal/php7/php7.y:4170 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6792,19 +6789,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4208 + // line internal/php7/php7.y:4205 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4212 + // line internal/php7/php7.y:4209 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4219 + // line internal/php7/php7.y:4216 { yyVAL.ClosureUse = nil @@ -6812,7 +6809,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4225 + // line internal/php7/php7.y:4222 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6828,7 +6825,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4239 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6839,7 +6836,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4248 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6847,7 +6844,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4257 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6863,7 +6860,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4274 + // line internal/php7/php7.y:4271 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6882,7 +6879,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4294 + // line internal/php7/php7.y:4291 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6896,7 +6893,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4306 + // line internal/php7/php7.y:4303 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6911,7 +6908,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4319 + // line internal/php7/php7.y:4316 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6926,7 +6923,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4332 + // line internal/php7/php7.y:4329 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6940,7 +6937,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4347 + // line internal/php7/php7.y:4344 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6954,7 +6951,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4359 + // line internal/php7/php7.y:4356 { yyVAL.node = yyDollar[1].node @@ -6962,7 +6959,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4365 { yyVAL.node = yyDollar[1].node @@ -6970,7 +6967,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4374 + // line internal/php7/php7.y:4371 { yyVAL.node = yyDollar[1].node @@ -6978,7 +6975,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4383 + // line internal/php7/php7.y:4380 { yyVAL.node = nil @@ -6986,7 +6983,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4386 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7001,7 +6998,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4405 + // line internal/php7/php7.y:4402 { yyVAL.list = []ast.Vertex{} @@ -7009,7 +7006,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4408 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7021,7 +7018,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4421 + // line internal/php7/php7.y:4418 { yyVAL.list = yyDollar[1].list @@ -7029,7 +7026,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4430 + // line internal/php7/php7.y:4427 { yyVAL.node = nil @@ -7037,7 +7034,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4436 + // line internal/php7/php7.y:4433 { yyVAL.node = yyDollar[1].node @@ -7045,7 +7042,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4445 + // line internal/php7/php7.y:4442 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7061,7 +7058,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4459 + // line internal/php7/php7.y:4456 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7076,7 +7073,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4472 + // line internal/php7/php7.y:4469 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7090,7 +7087,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4487 + // line internal/php7/php7.y:4484 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7104,7 +7101,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4499 + // line internal/php7/php7.y:4496 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7118,7 +7115,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4508 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7132,7 +7129,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4523 + // line internal/php7/php7.y:4520 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7146,7 +7143,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4535 + // line internal/php7/php7.y:4532 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7160,7 +7157,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4547 + // line internal/php7/php7.y:4544 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7174,7 +7171,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4559 + // line internal/php7/php7.y:4556 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7188,7 +7185,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4571 + // line internal/php7/php7.y:4568 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7202,7 +7199,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4583 + // line internal/php7/php7.y:4580 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7216,7 +7213,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7230,7 +7227,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4607 + // line internal/php7/php7.y:4604 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7246,7 +7243,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4621 + // line internal/php7/php7.y:4618 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7260,7 +7257,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4633 + // line internal/php7/php7.y:4630 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7274,7 +7271,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4645 + // line internal/php7/php7.y:4642 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7288,7 +7285,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4657 + // line internal/php7/php7.y:4654 { yyVAL.node = yyDollar[1].node @@ -7296,7 +7293,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4660 { yyVAL.node = yyDollar[1].node @@ -7304,7 +7301,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4672 + // line internal/php7/php7.y:4669 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7318,7 +7315,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4684 + // line internal/php7/php7.y:4681 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7336,7 +7333,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4700 + // line internal/php7/php7.y:4697 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7354,7 +7351,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4719 + // line internal/php7/php7.y:4716 { yyVAL.node = yyDollar[1].node @@ -7362,7 +7359,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4725 + // line internal/php7/php7.y:4722 { yyVAL.node = yyDollar[1].node @@ -7370,7 +7367,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4734 + // line internal/php7/php7.y:4731 { yyVAL.node = nil @@ -7378,7 +7375,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4740 + // line internal/php7/php7.y:4737 { yyVAL.node = yyDollar[1].node @@ -7386,7 +7383,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4746 { yyVAL.node = yyDollar[1].node @@ -7394,7 +7391,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4758 + // line internal/php7/php7.y:4755 { yyVAL.node = yyDollar[1].node @@ -7402,7 +7399,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4761 { yyVAL.node = yyDollar[2].node @@ -7414,7 +7411,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4774 + // line internal/php7/php7.y:4771 { yyVAL.node = yyDollar[1].node @@ -7422,7 +7419,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4783 + // line internal/php7/php7.y:4780 { yyVAL.node = yyDollar[1].node @@ -7430,7 +7427,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4789 + // line internal/php7/php7.y:4786 { yyVAL.node = yyDollar[2].node @@ -7442,7 +7439,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4799 + // line internal/php7/php7.y:4796 { yyVAL.node = yyDollar[1].node @@ -7450,7 +7447,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4808 + // line internal/php7/php7.y:4805 { yyVAL.node = yyDollar[1].node @@ -7458,7 +7455,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4814 + // line internal/php7/php7.y:4811 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7466,7 +7463,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -7474,7 +7470,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4828 + // line internal/php7/php7.y:4824 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7482,7 +7478,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -7490,7 +7485,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4842 + // line internal/php7/php7.y:4837 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7498,7 +7493,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -7506,7 +7500,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4856 + // line internal/php7/php7.y:4850 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7521,7 +7515,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4869 + // line internal/php7/php7.y:4863 { yyVAL.node = yyDollar[1].node @@ -7529,7 +7523,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4878 + // line internal/php7/php7.y:4872 { yyVAL.node = yyDollar[1].node @@ -7537,7 +7531,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4884 + // line internal/php7/php7.y:4878 { yyVAL.node = yyDollar[1].node @@ -7545,7 +7539,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4890 + // line internal/php7/php7.y:4884 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7560,7 +7554,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4906 + // line internal/php7/php7.y:4900 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7576,7 +7570,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4920 + // line internal/php7/php7.y:4914 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7592,7 +7586,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4934 + // line internal/php7/php7.y:4928 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7606,7 +7600,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4949 + // line internal/php7/php7.y:4943 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7621,7 +7615,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4962 + // line internal/php7/php7.y:4956 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7636,7 +7630,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4978 + // line internal/php7/php7.y:4972 { yyVAL.node = yyDollar[1].node @@ -7644,7 +7638,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4984 + // line internal/php7/php7.y:4978 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7652,7 +7646,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -7660,7 +7653,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4998 + // line internal/php7/php7.y:4991 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7668,7 +7661,6 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) @@ -7676,7 +7668,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5012 + // line internal/php7/php7.y:5004 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7691,7 +7683,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5025 + // line internal/php7/php7.y:5017 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7706,7 +7698,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5038 + // line internal/php7/php7.y:5030 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7721,7 +7713,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5054 + // line internal/php7/php7.y:5046 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7735,7 +7727,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5066 + // line internal/php7/php7.y:5058 { yyVAL.node = yyDollar[2].node @@ -7747,7 +7739,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5076 + // line internal/php7/php7.y:5068 { yyVAL.node = yyDollar[1].node @@ -7755,7 +7747,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5085 + // line internal/php7/php7.y:5077 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7769,7 +7761,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5097 + // line internal/php7/php7.y:5089 { yyVAL.node = yyDollar[2].node @@ -7781,7 +7773,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5107 + // line internal/php7/php7.y:5099 { yyVAL.node = yyDollar[1].node @@ -7789,7 +7781,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5116 + // line internal/php7/php7.y:5108 { yyVAL.list = yyDollar[1].list @@ -7797,7 +7789,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5125 + // line internal/php7/php7.y:5117 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7805,7 +7797,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5131 + // line internal/php7/php7.y:5123 { yyVAL.node = yyDollar[1].node @@ -7813,7 +7805,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5140 + // line internal/php7/php7.y:5132 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7828,7 +7820,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5153 + // line internal/php7/php7.y:5145 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7840,7 +7832,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5166 + // line internal/php7/php7.y:5158 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7855,7 +7847,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5179 + // line internal/php7/php7.y:5171 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7869,7 +7861,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5191 + // line internal/php7/php7.y:5183 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7887,7 +7879,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5207 + // line internal/php7/php7.y:5199 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7903,7 +7895,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5221 + // line internal/php7/php7.y:5213 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7917,7 +7909,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5233 + // line internal/php7/php7.y:5225 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7938,7 +7930,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5252 + // line internal/php7/php7.y:5244 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7957,7 +7949,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5272 + // line internal/php7/php7.y:5264 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7965,7 +7957,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5278 + // line internal/php7/php7.y:5270 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7980,7 +7972,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5291 + // line internal/php7/php7.y:5283 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7988,7 +7980,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5297 + // line internal/php7/php7.y:5289 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8003,7 +7995,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5313 + // line internal/php7/php7.y:5305 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8019,7 +8011,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5327 + // line internal/php7/php7.y:5319 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8038,7 +8030,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5344 + // line internal/php7/php7.y:5336 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8059,7 +8051,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5363 + // line internal/php7/php7.y:5355 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8076,7 +8068,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5378 + // line internal/php7/php7.y:5370 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8095,7 +8087,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5395 + // line internal/php7/php7.y:5387 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8107,7 +8099,7 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.Tokens) @@ -8116,7 +8108,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5414 + // line internal/php7/php7.y:5406 { yyVAL.node = yyDollar[2].node @@ -8128,7 +8120,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5427 + // line internal/php7/php7.y:5419 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8142,7 +8134,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5439 + // line internal/php7/php7.y:5431 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8161,7 +8153,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5456 + // line internal/php7/php7.y:5448 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8189,7 +8181,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5482 + // line internal/php7/php7.y:5474 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8205,7 +8197,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5499 + // line internal/php7/php7.y:5491 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8225,7 +8217,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5517 + // line internal/php7/php7.y:5509 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8241,7 +8233,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5531 + // line internal/php7/php7.y:5523 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8255,7 +8247,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5543 + // line internal/php7/php7.y:5535 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8269,7 +8261,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5555 + // line internal/php7/php7.y:5547 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8285,7 +8277,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5569 + // line internal/php7/php7.y:5561 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8299,7 +8291,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5581 + // line internal/php7/php7.y:5573 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8313,7 +8305,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5596 + // line internal/php7/php7.y:5588 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8321,7 +8313,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5602 + // line internal/php7/php7.y:5594 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8332,7 +8324,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5614 + // line internal/php7/php7.y:5606 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 752de40..deb2eff 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -392,9 +392,6 @@ name: // save position $$.GetNode().Position = position.NewNodeListPosition($1) - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name @@ -4818,7 +4815,6 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4832,7 +4828,6 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4846,7 +4841,6 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -4988,7 +4982,6 @@ new_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -5002,7 +4995,6 @@ new_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) @@ -5403,7 +5395,7 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) + yylex.(*Parser).setToken(variable, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.Tokens) yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.Tokens) diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4eff938..dd06f0f 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -594,35 +594,48 @@ func (p *Printer) printNameRelative(n ast.Vertex) { func (p *Printer) printScalarLNumber(n ast.Vertex) { nn := n.(*ast.ScalarLnumber) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarDNumber(n ast.Vertex) { nn := n.(*ast.ScalarDnumber) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarString(n ast.Vertex) { nn := n.(*ast.ScalarString) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarEncapsedStringPart(n ast.Vertex) { nn := n.(*ast.ScalarEncapsedStringPart) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } func (p *Printer) printScalarEncapsed(n ast.Vertex) { nn := n.(*ast.ScalarEncapsed) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" io.WriteString(p.w, "\"") for _, part := range nn.Parts { @@ -652,7 +665,8 @@ func (p *Printer) printScalarEncapsed(n ast.Vertex) { func (p *Printer) printScalarHeredoc(n ast.Vertex) { nn := n.(*ast.ScalarHeredoc) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" io.WriteString(p.w, string(nn.Label)) @@ -684,8 +698,11 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { func (p *Printer) printScalarMagicConstant(n ast.Vertex) { nn := n.(*ast.ScalarMagicConstant) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" + io.WriteString(p.w, string(nn.Value)) + p.printFreeFloating(nn, token.End) } @@ -1613,9 +1630,7 @@ func (p *Printer) printExprInstanceOf(n ast.Vertex) { io.WriteString(p.w, "instanceof") - if nn.Class.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Class) p.printFreeFloating(nn, token.End) @@ -1673,9 +1688,7 @@ func (p *Printer) printExprNew(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "new") - if nn.Class.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Class) if nn.ArgumentList != nil { @@ -1900,7 +1913,8 @@ func (p *Printer) printExprUnaryPlus(n ast.Vertex) { func (p *Printer) printExprVariable(n ast.Vertex) { nn := n.(*ast.ExprVariable) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" p.printFreeFloating(nn, token.Dollar) if _, ok := nn.VarName.(*ast.Identifier); !ok { @@ -2282,7 +2296,8 @@ func (p *Printer) printStmtClassMethod(n ast.Vertex) { func (p *Printer) printStmtClass(n ast.Vertex) { nn := n.(*ast.StmtClass) - p.printFreeFloating(nn, token.Start) + p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) + p.bufStart = "" if nn.Modifiers != nil { for k, m := range nn.Modifiers { @@ -2301,9 +2316,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) { p.printFreeFloating(nn, token.Class) if nn.ClassName != nil { - if nn.ClassName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.ClassName) } @@ -2322,9 +2335,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) { io.WriteString(p.w, " ") } io.WriteString(p.w, "extends") - if nn.Extends.ClassName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Extends.ClassName) } @@ -2890,12 +2901,11 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { p.Print(m) } - if nn.Type != nil && nn.Type.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + if nn.Type != nil { + p.bufStart = " " + p.Print(nn.Type) } - p.Print(nn.Type) - if nn.Properties[0].GetNode().Tokens.IsEmpty() { io.WriteString(p.w, " ") } @@ -2931,9 +2941,7 @@ func (p *Printer) printStmtReturn(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "return") - if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) @@ -3102,9 +3110,7 @@ func (p *Printer) printStmtTraitUsePrecedence(n ast.Vertex) { } io.WriteString(p.w, "insteadof") - if nn.Insteadof[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } + p.bufStart = " " p.joinPrint(",", nn.Insteadof) p.printFreeFloating(nn, token.NameList) diff --git a/pkg/printer/printer_parsed_php7_test.go b/pkg/printer/printer_parsed_php7_test.go index a68c502..317ea02 100644 --- a/pkg/printer/printer_parsed_php7_test.go +++ b/pkg/printer/printer_parsed_php7_test.go @@ -979,7 +979,7 @@ func TestParseAndPrintClass(t *testing.T) { } - new class ( $c ) extends Foo implements Bar , Baz { + new class ( $c, $a ) extends Foo implements Bar , Baz { } ;` From b7d32b07bfe0f6e7230a0c1d37e813d4de465db4 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 3 Aug 2020 22:42:21 +0200 Subject: [PATCH 038/140] [refactoring] store `colon` as free-floating token --- internal/php7/php7.go | 676 +++++++++++++++++------------------ internal/php7/php7.y | 14 +- pkg/printer/printer.go | 8 +- pkg/token/position.go | 1 - pkg/token/position_string.go | 149 ++++---- 5 files changed, 409 insertions(+), 439 deletions(-) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index c267235..f5e4667 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5615 +// line internal/php7/php7.y:5603 // line yacctab:1 var yyExca = [...]int{ @@ -3812,10 +3812,6 @@ yydefault: } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.Tokens) - if yyDollar[8].node != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyDollar[8].node.GetNode().Tokens[token.Colon]) - delete(yyDollar[8].node.GetNode().Tokens, token.Colon) - } yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) @@ -3829,31 +3825,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1473 + // line internal/php7/php7.y:1470 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1477 + // line internal/php7/php7.y:1474 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1484 + // line internal/php7/php7.y:1481 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1485 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1495 + // line internal/php7/php7.y:1492 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3873,7 +3869,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1513 + // line internal/php7/php7.y:1510 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3892,7 +3888,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1533 + // line internal/php7/php7.y:1530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3900,7 +3896,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1536 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3908,7 +3904,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1548 + // line internal/php7/php7.y:1545 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3922,7 +3918,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1560 + // line internal/php7/php7.y:1557 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3936,7 +3932,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1575 + // line internal/php7/php7.y:1572 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3955,7 +3951,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1595 + // line internal/php7/php7.y:1592 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3974,7 +3970,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1615 + // line internal/php7/php7.y:1612 { yyVAL.ClassExtends = nil @@ -3982,7 +3978,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1621 + // line internal/php7/php7.y:1618 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3996,7 +3992,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1636 + // line internal/php7/php7.y:1633 { yyVAL.InterfaceExtends = nil @@ -4004,7 +4000,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1642 + // line internal/php7/php7.y:1639 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4018,7 +4014,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1657 + // line internal/php7/php7.y:1654 { yyVAL.ClassImplements = nil @@ -4026,7 +4022,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1660 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4040,7 +4036,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1678 + // line internal/php7/php7.y:1675 { yyVAL.node = yyDollar[1].node @@ -4048,7 +4044,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1684 + // line internal/php7/php7.y:1681 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4062,7 +4058,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1693 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4078,7 +4074,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1710 + // line internal/php7/php7.y:1707 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4093,7 +4089,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1726 + // line internal/php7/php7.y:1723 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4104,7 +4100,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1735 + // line internal/php7/php7.y:1732 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4123,7 +4119,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1755 + // line internal/php7/php7.y:1752 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4134,7 +4130,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1764 + // line internal/php7/php7.y:1761 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4153,7 +4149,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1784 + // line internal/php7/php7.y:1781 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4164,7 +4160,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1793 + // line internal/php7/php7.y:1790 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4183,7 +4179,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1813 + // line internal/php7/php7.y:1810 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4200,7 +4196,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1825 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4218,7 +4214,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1841 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4237,7 +4233,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1861 + // line internal/php7/php7.y:1858 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4258,7 +4254,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1883 + // line internal/php7/php7.y:1880 { yyVAL.list = []ast.Vertex{} @@ -4266,7 +4262,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1889 + // line internal/php7/php7.y:1886 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4283,7 +4279,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1904 + // line internal/php7/php7.y:1901 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4300,19 +4296,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1922 + // line internal/php7/php7.y:1919 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1926 + // line internal/php7/php7.y:1923 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1933 + // line internal/php7/php7.y:1930 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4323,7 +4319,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1942 + // line internal/php7/php7.y:1939 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4342,7 +4338,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1962 + // line internal/php7/php7.y:1959 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4358,7 +4354,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1976 + // line internal/php7/php7.y:1973 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4378,7 +4374,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1997 + // line internal/php7/php7.y:1994 { yyVAL.node = yyDollar[1].node @@ -4386,7 +4382,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2003 + // line internal/php7/php7.y:2000 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4404,7 +4400,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2019 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4423,7 +4419,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2039 + // line internal/php7/php7.y:2036 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4445,7 +4441,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2062 + // line internal/php7/php7.y:2059 { yyVAL.node = yyDollar[1].node @@ -4461,7 +4457,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2076 + // line internal/php7/php7.y:2073 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4485,7 +4481,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2101 + // line internal/php7/php7.y:2098 { yyVAL.list = yyDollar[1].list @@ -4493,7 +4489,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2104 { yyVAL.list = nil @@ -4501,7 +4497,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2116 + // line internal/php7/php7.y:2113 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4509,7 +4505,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2122 + // line internal/php7/php7.y:2119 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4520,7 +4516,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2134 + // line internal/php7/php7.y:2131 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4558,7 +4554,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2170 + // line internal/php7/php7.y:2167 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4597,7 +4593,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2210 + // line internal/php7/php7.y:2207 { yyVAL.node = nil @@ -4605,7 +4601,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2216 + // line internal/php7/php7.y:2213 { yyVAL.node = yyDollar[1].node @@ -4613,7 +4609,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2225 + // line internal/php7/php7.y:2222 { yyVAL.node = yyDollar[1].node @@ -4621,7 +4617,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2231 + // line internal/php7/php7.y:2228 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4635,7 +4631,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2246 + // line internal/php7/php7.y:2243 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4649,7 +4645,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2258 + // line internal/php7/php7.y:2255 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4663,7 +4659,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2267 { yyVAL.node = yyDollar[1].node @@ -4671,7 +4667,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2279 + // line internal/php7/php7.y:2276 { yyVAL.node = nil @@ -4679,18 +4675,18 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2282 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Colon, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2297 + // line internal/php7/php7.y:2294 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4705,7 +4701,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2310 + // line internal/php7/php7.y:2307 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4724,7 +4720,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2330 + // line internal/php7/php7.y:2327 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4732,7 +4728,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2336 + // line internal/php7/php7.y:2333 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4743,7 +4739,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2348 + // line internal/php7/php7.y:2345 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4757,7 +4753,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2360 + // line internal/php7/php7.y:2357 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4771,7 +4767,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2372 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4782,7 +4778,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2384 + // line internal/php7/php7.y:2381 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4790,7 +4786,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2390 { yyVAL.node = yyDollar[1].node @@ -4798,7 +4794,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2399 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4809,7 +4805,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2408 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4817,7 +4813,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2417 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4835,7 +4831,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2436 + // line internal/php7/php7.y:2433 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4854,7 +4850,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2456 + // line internal/php7/php7.y:2453 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4862,7 +4858,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2459 { yyVAL.list = []ast.Vertex{} @@ -4870,7 +4866,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2471 + // line internal/php7/php7.y:2468 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4886,7 +4882,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2485 + // line internal/php7/php7.y:2482 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4907,7 +4903,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2504 + // line internal/php7/php7.y:2501 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4921,7 +4917,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2516 + // line internal/php7/php7.y:2513 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4949,16 +4945,12 @@ yydefault: } yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.Tokens) - if yyDollar[9].node != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyDollar[9].node.GetNode().Tokens[token.Colon]) - delete(yyDollar[9].node.GetNode().Tokens, token.Colon) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2553 + // line internal/php7/php7.y:2547 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4966,7 +4958,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2559 + // line internal/php7/php7.y:2553 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4977,7 +4969,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2571 + // line internal/php7/php7.y:2565 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4991,7 +4983,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2584 + // line internal/php7/php7.y:2578 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5005,7 +4997,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2596 + // line internal/php7/php7.y:2590 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5019,7 +5011,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2605 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5027,7 +5019,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2617 + // line internal/php7/php7.y:2611 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5035,7 +5027,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2626 + // line internal/php7/php7.y:2620 { yyVAL.node = yyDollar[1].node @@ -5047,7 +5039,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2636 + // line internal/php7/php7.y:2630 { yyVAL.node = yyDollar[1].node @@ -5059,7 +5051,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2649 + // line internal/php7/php7.y:2643 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5074,7 +5066,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2665 + // line internal/php7/php7.y:2659 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5092,7 +5084,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2681 + // line internal/php7/php7.y:2675 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5110,7 +5102,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2697 + // line internal/php7/php7.y:2691 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5128,7 +5120,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2713 + // line internal/php7/php7.y:2707 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5143,7 +5135,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2723 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5159,7 +5151,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2737 { yyVAL.node = yyDollar[1].node @@ -5167,7 +5159,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2752 + // line internal/php7/php7.y:2746 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5185,7 +5177,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2771 + // line internal/php7/php7.y:2765 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5200,7 +5192,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2784 + // line internal/php7/php7.y:2778 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5215,7 +5207,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2800 + // line internal/php7/php7.y:2794 { yyVAL.list = yyDollar[1].list @@ -5223,7 +5215,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2800 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5238,7 +5230,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2822 + // line internal/php7/php7.y:2816 { yyVAL.list = nil @@ -5246,7 +5238,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2828 + // line internal/php7/php7.y:2822 { yyVAL.list = yyDollar[1].list @@ -5254,7 +5246,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2837 + // line internal/php7/php7.y:2831 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5262,7 +5254,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2843 + // line internal/php7/php7.y:2837 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5270,7 +5262,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2846 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5284,7 +5276,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2864 + // line internal/php7/php7.y:2858 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5298,7 +5290,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2876 + // line internal/php7/php7.y:2870 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5312,7 +5304,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2888 + // line internal/php7/php7.y:2882 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5326,7 +5318,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2894 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5340,7 +5332,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2912 + // line internal/php7/php7.y:2906 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5354,7 +5346,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2921 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5365,7 +5357,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2936 + // line internal/php7/php7.y:2930 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5373,7 +5365,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2945 + // line internal/php7/php7.y:2939 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5391,7 +5383,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2961 + // line internal/php7/php7.y:2955 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5410,7 +5402,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2981 + // line internal/php7/php7.y:2975 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5421,7 +5413,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2990 + // line internal/php7/php7.y:2984 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5429,7 +5421,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2999 + // line internal/php7/php7.y:2993 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5446,7 +5438,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3011 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5463,7 +5455,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3029 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5474,7 +5466,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3044 + // line internal/php7/php7.y:3038 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5482,7 +5474,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3053 + // line internal/php7/php7.y:3047 { yyVAL.node = yyDollar[1].node @@ -5490,7 +5482,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3056 { yyVAL.list = nil @@ -5498,7 +5490,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3062 { yyVAL.list = yyDollar[1].list @@ -5506,7 +5498,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3077 + // line internal/php7/php7.y:3071 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5517,7 +5509,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3086 + // line internal/php7/php7.y:3080 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5525,7 +5517,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3089 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5545,7 +5537,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3116 + // line internal/php7/php7.y:3110 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5562,7 +5554,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3131 + // line internal/php7/php7.y:3125 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5576,7 +5568,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3146 + // line internal/php7/php7.y:3140 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5595,7 +5587,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3163 + // line internal/php7/php7.y:3157 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5613,7 +5605,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3179 + // line internal/php7/php7.y:3173 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5620,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3192 + // line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5644,7 +5636,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3200 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5658,7 +5650,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3218 + // line internal/php7/php7.y:3212 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5665,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3231 + // line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5688,7 +5680,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3244 + // line internal/php7/php7.y:3238 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,7 +5695,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3257 + // line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5718,7 +5710,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3270 + // line internal/php7/php7.y:3264 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5733,7 +5725,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3283 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5748,7 +5740,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3296 + // line internal/php7/php7.y:3290 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5763,7 +5755,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3309 + // line internal/php7/php7.y:3303 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5770,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3322 + // line internal/php7/php7.y:3316 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5785,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3335 + // line internal/php7/php7.y:3329 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,7 +5800,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3348 + // line internal/php7/php7.y:3342 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5823,7 +5815,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3361 + // line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5838,7 +5830,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3374 + // line internal/php7/php7.y:3368 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5853,7 +5845,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3381 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5868,7 +5860,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3400 + // line internal/php7/php7.y:3394 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5882,7 +5874,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3412 + // line internal/php7/php7.y:3406 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5897,7 +5889,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3425 + // line internal/php7/php7.y:3419 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5911,7 +5903,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3437 + // line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5926,7 +5918,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3450 + // line internal/php7/php7.y:3444 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5941,7 +5933,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3463 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5956,7 +5948,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3476 + // line internal/php7/php7.y:3470 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5971,7 +5963,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3489 + // line internal/php7/php7.y:3483 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5986,7 +5978,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3502 + // line internal/php7/php7.y:3496 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6001,7 +5993,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3515 + // line internal/php7/php7.y:3509 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6016,7 +6008,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3528 + // line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6031,7 +6023,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3541 + // line internal/php7/php7.y:3535 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6046,7 +6038,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3554 + // line internal/php7/php7.y:3548 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6061,7 +6053,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3567 + // line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6076,7 +6068,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3580 + // line internal/php7/php7.y:3574 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6091,7 +6083,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3593 + // line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6106,7 +6098,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3606 + // line internal/php7/php7.y:3600 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6121,7 +6113,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3619 + // line internal/php7/php7.y:3613 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6136,7 +6128,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3632 + // line internal/php7/php7.y:3626 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6151,7 +6143,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3645 + // line internal/php7/php7.y:3639 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6166,7 +6158,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3658 + // line internal/php7/php7.y:3652 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6180,7 +6172,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3670 + // line internal/php7/php7.y:3664 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6194,7 +6186,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3682 + // line internal/php7/php7.y:3676 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6208,7 +6200,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3688 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6222,7 +6214,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3706 + // line internal/php7/php7.y:3700 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6237,7 +6229,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3719 + // line internal/php7/php7.y:3713 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6252,7 +6244,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3732 + // line internal/php7/php7.y:3726 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6267,7 +6259,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3745 + // line internal/php7/php7.y:3739 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6283,7 +6275,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3753 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6298,7 +6290,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3772 + // line internal/php7/php7.y:3766 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6313,7 +6305,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3785 + // line internal/php7/php7.y:3779 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6328,7 +6320,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3798 + // line internal/php7/php7.y:3792 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6343,7 +6335,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3811 + // line internal/php7/php7.y:3805 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6358,7 +6350,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3824 + // line internal/php7/php7.y:3818 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6373,7 +6365,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3837 + // line internal/php7/php7.y:3831 { yyVAL.node = yyDollar[2].node @@ -6385,7 +6377,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node @@ -6393,7 +6385,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3847 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6409,7 +6401,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3867 + // line internal/php7/php7.y:3861 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6425,7 +6417,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3875 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6440,7 +6432,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3894 + // line internal/php7/php7.y:3888 { yyVAL.node = yyDollar[1].node @@ -6448,7 +6440,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6463,7 +6455,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3913 + // line internal/php7/php7.y:3907 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6478,7 +6470,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3926 + // line internal/php7/php7.y:3920 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6493,7 +6485,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3939 + // line internal/php7/php7.y:3933 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6508,7 +6500,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6523,7 +6515,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3965 + // line internal/php7/php7.y:3959 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6538,7 +6530,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3978 + // line internal/php7/php7.y:3972 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6553,7 +6545,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3991 + // line internal/php7/php7.y:3985 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6582,7 +6574,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4012 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6596,7 +6588,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4030 + // line internal/php7/php7.y:4024 { yyVAL.node = yyDollar[1].node @@ -6604,7 +6596,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4030 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6618,7 +6610,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4042 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6632,7 +6624,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4060 + // line internal/php7/php7.y:4054 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6646,7 +6638,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4066 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6660,7 +6652,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4078 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6675,7 +6667,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4091 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6689,7 +6681,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4109 + // line internal/php7/php7.y:4103 { yyVAL.node = yyDollar[1].node @@ -6697,7 +6689,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4115 + // line internal/php7/php7.y:4109 { yyVAL.node = yyDollar[2].node @@ -6720,7 +6712,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4138 + // line internal/php7/php7.y:4132 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6736,10 +6728,6 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) } yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) - if yyDollar[8].node != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.LexicalVars, yyDollar[8].node.GetNode().Tokens[token.Colon]) - delete(yyDollar[8].node.GetNode().Tokens, token.Colon) - } yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) @@ -6757,7 +6745,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4170 + // line internal/php7/php7.y:4161 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6773,10 +6761,6 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) } yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) - if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyDollar[6].node.GetNode().Tokens[token.Colon]) - delete(yyDollar[6].node.GetNode().Tokens, token.Colon) - } yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.Tokens) // normalize @@ -6789,19 +6773,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4205 + // line internal/php7/php7.y:4193 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4197 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4216 + // line internal/php7/php7.y:4204 { yyVAL.ClosureUse = nil @@ -6809,7 +6793,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4222 + // line internal/php7/php7.y:4210 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6825,7 +6809,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4227 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6836,7 +6820,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4248 + // line internal/php7/php7.y:4236 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6844,7 +6828,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4257 + // line internal/php7/php7.y:4245 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6860,7 +6844,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4271 + // line internal/php7/php7.y:4259 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6879,7 +6863,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4291 + // line internal/php7/php7.y:4279 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6893,7 +6877,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4303 + // line internal/php7/php7.y:4291 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6908,7 +6892,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4316 + // line internal/php7/php7.y:4304 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6923,7 +6907,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4329 + // line internal/php7/php7.y:4317 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6937,7 +6921,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4344 + // line internal/php7/php7.y:4332 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6951,7 +6935,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4356 + // line internal/php7/php7.y:4344 { yyVAL.node = yyDollar[1].node @@ -6959,7 +6943,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4365 + // line internal/php7/php7.y:4353 { yyVAL.node = yyDollar[1].node @@ -6967,7 +6951,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4371 + // line internal/php7/php7.y:4359 { yyVAL.node = yyDollar[1].node @@ -6975,7 +6959,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4380 + // line internal/php7/php7.y:4368 { yyVAL.node = nil @@ -6983,7 +6967,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4386 + // line internal/php7/php7.y:4374 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6998,7 +6982,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4402 + // line internal/php7/php7.y:4390 { yyVAL.list = []ast.Vertex{} @@ -7006,7 +6990,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4408 + // line internal/php7/php7.y:4396 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7018,7 +7002,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4418 + // line internal/php7/php7.y:4406 { yyVAL.list = yyDollar[1].list @@ -7026,7 +7010,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4427 + // line internal/php7/php7.y:4415 { yyVAL.node = nil @@ -7034,7 +7018,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4433 + // line internal/php7/php7.y:4421 { yyVAL.node = yyDollar[1].node @@ -7042,7 +7026,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4442 + // line internal/php7/php7.y:4430 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7058,7 +7042,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4456 + // line internal/php7/php7.y:4444 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7073,7 +7057,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4469 + // line internal/php7/php7.y:4457 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7087,7 +7071,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4472 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7101,7 +7085,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4496 + // line internal/php7/php7.y:4484 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7115,7 +7099,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4508 + // line internal/php7/php7.y:4496 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7129,7 +7113,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4520 + // line internal/php7/php7.y:4508 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7143,7 +7127,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4532 + // line internal/php7/php7.y:4520 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7157,7 +7141,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4544 + // line internal/php7/php7.y:4532 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7171,7 +7155,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4556 + // line internal/php7/php7.y:4544 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7185,7 +7169,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4568 + // line internal/php7/php7.y:4556 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7199,7 +7183,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4580 + // line internal/php7/php7.y:4568 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7213,7 +7197,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4592 + // line internal/php7/php7.y:4580 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7227,7 +7211,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4604 + // line internal/php7/php7.y:4592 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7243,7 +7227,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4618 + // line internal/php7/php7.y:4606 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7257,7 +7241,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4630 + // line internal/php7/php7.y:4618 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7271,7 +7255,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4642 + // line internal/php7/php7.y:4630 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7285,7 +7269,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4654 + // line internal/php7/php7.y:4642 { yyVAL.node = yyDollar[1].node @@ -7293,7 +7277,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4660 + // line internal/php7/php7.y:4648 { yyVAL.node = yyDollar[1].node @@ -7301,7 +7285,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4669 + // line internal/php7/php7.y:4657 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7315,7 +7299,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4681 + // line internal/php7/php7.y:4669 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7333,7 +7317,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4697 + // line internal/php7/php7.y:4685 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7351,7 +7335,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4716 + // line internal/php7/php7.y:4704 { yyVAL.node = yyDollar[1].node @@ -7359,7 +7343,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4722 + // line internal/php7/php7.y:4710 { yyVAL.node = yyDollar[1].node @@ -7367,7 +7351,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4731 + // line internal/php7/php7.y:4719 { yyVAL.node = nil @@ -7375,7 +7359,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4737 + // line internal/php7/php7.y:4725 { yyVAL.node = yyDollar[1].node @@ -7383,7 +7367,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4746 + // line internal/php7/php7.y:4734 { yyVAL.node = yyDollar[1].node @@ -7391,7 +7375,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4755 + // line internal/php7/php7.y:4743 { yyVAL.node = yyDollar[1].node @@ -7399,7 +7383,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4761 + // line internal/php7/php7.y:4749 { yyVAL.node = yyDollar[2].node @@ -7411,7 +7395,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4771 + // line internal/php7/php7.y:4759 { yyVAL.node = yyDollar[1].node @@ -7419,7 +7403,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4780 + // line internal/php7/php7.y:4768 { yyVAL.node = yyDollar[1].node @@ -7427,7 +7411,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4786 + // line internal/php7/php7.y:4774 { yyVAL.node = yyDollar[2].node @@ -7439,7 +7423,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4796 + // line internal/php7/php7.y:4784 { yyVAL.node = yyDollar[1].node @@ -7447,7 +7431,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4805 + // line internal/php7/php7.y:4793 { yyVAL.node = yyDollar[1].node @@ -7455,7 +7439,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4811 + // line internal/php7/php7.y:4799 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7470,7 +7454,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4824 + // line internal/php7/php7.y:4812 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7485,7 +7469,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4837 + // line internal/php7/php7.y:4825 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7500,7 +7484,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4850 + // line internal/php7/php7.y:4838 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7515,7 +7499,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4863 + // line internal/php7/php7.y:4851 { yyVAL.node = yyDollar[1].node @@ -7523,7 +7507,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4872 + // line internal/php7/php7.y:4860 { yyVAL.node = yyDollar[1].node @@ -7531,7 +7515,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4878 + // line internal/php7/php7.y:4866 { yyVAL.node = yyDollar[1].node @@ -7539,7 +7523,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4884 + // line internal/php7/php7.y:4872 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7554,7 +7538,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4900 + // line internal/php7/php7.y:4888 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7570,7 +7554,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4914 + // line internal/php7/php7.y:4902 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7586,7 +7570,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4928 + // line internal/php7/php7.y:4916 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7600,7 +7584,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4943 + // line internal/php7/php7.y:4931 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7615,7 +7599,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4956 + // line internal/php7/php7.y:4944 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7630,7 +7614,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4972 + // line internal/php7/php7.y:4960 { yyVAL.node = yyDollar[1].node @@ -7638,7 +7622,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4978 + // line internal/php7/php7.y:4966 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7653,7 +7637,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4991 + // line internal/php7/php7.y:4979 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7668,7 +7652,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5004 + // line internal/php7/php7.y:4992 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7683,7 +7667,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5017 + // line internal/php7/php7.y:5005 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7698,7 +7682,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5030 + // line internal/php7/php7.y:5018 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7713,7 +7697,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5046 + // line internal/php7/php7.y:5034 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7727,7 +7711,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5058 + // line internal/php7/php7.y:5046 { yyVAL.node = yyDollar[2].node @@ -7739,7 +7723,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5068 + // line internal/php7/php7.y:5056 { yyVAL.node = yyDollar[1].node @@ -7747,7 +7731,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5077 + // line internal/php7/php7.y:5065 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7761,7 +7745,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5089 + // line internal/php7/php7.y:5077 { yyVAL.node = yyDollar[2].node @@ -7773,7 +7757,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5099 + // line internal/php7/php7.y:5087 { yyVAL.node = yyDollar[1].node @@ -7781,7 +7765,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5108 + // line internal/php7/php7.y:5096 { yyVAL.list = yyDollar[1].list @@ -7789,7 +7773,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5117 + // line internal/php7/php7.y:5105 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7797,7 +7781,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5123 + // line internal/php7/php7.y:5111 { yyVAL.node = yyDollar[1].node @@ -7805,7 +7789,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5132 + // line internal/php7/php7.y:5120 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7820,7 +7804,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5145 + // line internal/php7/php7.y:5133 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7832,7 +7816,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5158 + // line internal/php7/php7.y:5146 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7847,7 +7831,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5171 + // line internal/php7/php7.y:5159 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7861,7 +7845,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5183 + // line internal/php7/php7.y:5171 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7879,7 +7863,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5199 + // line internal/php7/php7.y:5187 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7895,7 +7879,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5213 + // line internal/php7/php7.y:5201 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7909,7 +7893,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5225 + // line internal/php7/php7.y:5213 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7930,7 +7914,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5244 + // line internal/php7/php7.y:5232 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7949,7 +7933,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5264 + // line internal/php7/php7.y:5252 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7957,7 +7941,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5270 + // line internal/php7/php7.y:5258 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7972,7 +7956,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5283 + // line internal/php7/php7.y:5271 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7980,7 +7964,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5289 + // line internal/php7/php7.y:5277 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7995,7 +7979,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5305 + // line internal/php7/php7.y:5293 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8011,7 +7995,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5319 + // line internal/php7/php7.y:5307 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8030,7 +8014,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5336 + // line internal/php7/php7.y:5324 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8051,7 +8035,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5355 + // line internal/php7/php7.y:5343 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8068,7 +8052,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5370 + // line internal/php7/php7.y:5358 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8087,7 +8071,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5387 + // line internal/php7/php7.y:5375 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8108,7 +8092,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5406 + // line internal/php7/php7.y:5394 { yyVAL.node = yyDollar[2].node @@ -8120,7 +8104,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5419 + // line internal/php7/php7.y:5407 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8134,7 +8118,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5431 + // line internal/php7/php7.y:5419 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8153,7 +8137,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5448 + // line internal/php7/php7.y:5436 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8181,7 +8165,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5474 + // line internal/php7/php7.y:5462 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8197,7 +8181,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5491 + // line internal/php7/php7.y:5479 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8217,7 +8201,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5509 + // line internal/php7/php7.y:5497 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8233,7 +8217,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5523 + // line internal/php7/php7.y:5511 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8247,7 +8231,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5535 + // line internal/php7/php7.y:5523 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8261,7 +8245,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5547 + // line internal/php7/php7.y:5535 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8277,7 +8261,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5561 + // line internal/php7/php7.y:5549 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8291,7 +8275,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5573 + // line internal/php7/php7.y:5561 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8305,7 +8289,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5588 + // line internal/php7/php7.y:5576 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8313,7 +8297,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5594 + // line internal/php7/php7.y:5582 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8324,7 +8308,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5606 + // line internal/php7/php7.y:5594 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index deb2eff..1fb33a9 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1453,9 +1453,6 @@ function_declaration_statement: } yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.Tokens) - if $8 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) - } yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) @@ -2286,7 +2283,7 @@ return_type: $$ = $2; // save comments - yylex.(*Parser).setFreeFloating($$, token.Colon, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2540,9 +2537,6 @@ class_statement: } yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.Tokens) - if $9 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $9.GetNode().Tokens[token.Colon]); delete($9.GetNode().Tokens, token.Colon) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4150,9 +4144,6 @@ inline_function: yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) } yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) - if $8 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.LexicalVars, $8.GetNode().Tokens[token.Colon]); delete($8.GetNode().Tokens, token.Colon) - } yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) @@ -4182,9 +4173,6 @@ inline_function: yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) }; yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) - if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $6.GetNode().Tokens[token.Colon]); delete($6.GetNode().Tokens, token.Colon) - }; yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.Tokens) // normalize diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index dd06f0f..6fd54bc 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1409,7 +1409,7 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { - io.WriteString(p.w, ":") + p.bufStart = ":" p.Print(nn.ReturnType) } p.printFreeFloating(nn, token.ReturnType) @@ -1505,7 +1505,7 @@ func (p *Printer) printExprClosure(n ast.Vertex) { p.printFreeFloating(nn, token.LexicalVars) if nn.ReturnType != nil { - io.WriteString(p.w, ":") + p.bufStart = ":" p.Print(nn.ReturnType) } p.printFreeFloating(nn, token.ReturnType) @@ -2285,7 +2285,7 @@ func (p *Printer) printStmtClassMethod(n ast.Vertex) { p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { - io.WriteString(p.w, ":") + p.bufStart = ":" p.Print(nn.ReturnType) } @@ -2703,7 +2703,7 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { - io.WriteString(p.w, ":") + p.bufStart = ":" p.Print(nn.ReturnType) } p.printFreeFloating(nn, token.ReturnType) diff --git a/pkg/token/position.go b/pkg/token/position.go index 1a3b02d..28f7802 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -6,7 +6,6 @@ type Position int const ( Start Position = iota End - Colon SemiColon AltEnd Dollar diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go index a2f713a..ef682f8 100644 --- a/pkg/token/position_string.go +++ b/pkg/token/position_string.go @@ -10,84 +10,83 @@ func _() { var x [1]struct{} _ = x[Start-0] _ = x[End-1] - _ = x[Colon-2] - _ = x[SemiColon-3] - _ = x[AltEnd-4] - _ = x[Dollar-5] - _ = x[Ampersand-6] - _ = x[Name-7] - _ = x[Prefix-8] - _ = x[Key-9] - _ = x[Var-10] - _ = x[UseType-11] - _ = x[ReturnType-12] - _ = x[OptionalType-13] - _ = x[CaseSeparator-14] - _ = x[LexicalVars-15] - _ = x[Params-16] - _ = x[Ref-17] - _ = x[Cast-18] - _ = x[Expr-19] - _ = x[InitExpr-20] - _ = x[CondExpr-21] - _ = x[IncExpr-22] - _ = x[True-23] - _ = x[Cond-24] - _ = x[HaltCompiller-25] - _ = x[Namespace-26] - _ = x[Static-27] - _ = x[Class-28] - _ = x[Use-29] - _ = x[While-30] - _ = x[For-31] - _ = x[Switch-32] - _ = x[Break-33] - _ = x[Foreach-34] - _ = x[Declare-35] - _ = x[Label-36] - _ = x[Finally-37] - _ = x[List-38] - _ = x[Default-39] - _ = x[If-40] - _ = x[ElseIf-41] - _ = x[Else-42] - _ = x[Variadic-43] - _ = x[Function-44] - _ = x[DoubleArrow-45] - _ = x[Alias-46] - _ = x[As-47] - _ = x[Equal-48] - _ = x[Exit-49] - _ = x[Array-50] - _ = x[Isset-51] - _ = x[Empty-52] - _ = x[Eval-53] - _ = x[Echo-54] - _ = x[Try-55] - _ = x[Catch-56] - _ = x[Unset-57] - _ = x[Stmts-58] - _ = x[VarList-59] - _ = x[ConstList-60] - _ = x[NameList-61] - _ = x[ParamList-62] - _ = x[ModifierList-63] - _ = x[ArrayPairList-64] - _ = x[CaseListStart-65] - _ = x[CaseListEnd-66] - _ = x[ArgumentList-67] - _ = x[PropertyList-68] - _ = x[ParameterList-69] - _ = x[AdaptationList-70] - _ = x[LexicalVarList-71] - _ = x[UseDeclarationList-72] - _ = x[OpenParenthesisToken-73] - _ = x[CloseParenthesisToken-74] + _ = x[SemiColon-2] + _ = x[AltEnd-3] + _ = x[Dollar-4] + _ = x[Ampersand-5] + _ = x[Name-6] + _ = x[Prefix-7] + _ = x[Key-8] + _ = x[Var-9] + _ = x[UseType-10] + _ = x[ReturnType-11] + _ = x[OptionalType-12] + _ = x[CaseSeparator-13] + _ = x[LexicalVars-14] + _ = x[Params-15] + _ = x[Ref-16] + _ = x[Cast-17] + _ = x[Expr-18] + _ = x[InitExpr-19] + _ = x[CondExpr-20] + _ = x[IncExpr-21] + _ = x[True-22] + _ = x[Cond-23] + _ = x[HaltCompiller-24] + _ = x[Namespace-25] + _ = x[Static-26] + _ = x[Class-27] + _ = x[Use-28] + _ = x[While-29] + _ = x[For-30] + _ = x[Switch-31] + _ = x[Break-32] + _ = x[Foreach-33] + _ = x[Declare-34] + _ = x[Label-35] + _ = x[Finally-36] + _ = x[List-37] + _ = x[Default-38] + _ = x[If-39] + _ = x[ElseIf-40] + _ = x[Else-41] + _ = x[Variadic-42] + _ = x[Function-43] + _ = x[DoubleArrow-44] + _ = x[Alias-45] + _ = x[As-46] + _ = x[Equal-47] + _ = x[Exit-48] + _ = x[Array-49] + _ = x[Isset-50] + _ = x[Empty-51] + _ = x[Eval-52] + _ = x[Echo-53] + _ = x[Try-54] + _ = x[Catch-55] + _ = x[Unset-56] + _ = x[Stmts-57] + _ = x[VarList-58] + _ = x[ConstList-59] + _ = x[NameList-60] + _ = x[ParamList-61] + _ = x[ModifierList-62] + _ = x[ArrayPairList-63] + _ = x[CaseListStart-64] + _ = x[CaseListEnd-65] + _ = x[ArgumentList-66] + _ = x[PropertyList-67] + _ = x[ParameterList-68] + _ = x[AdaptationList-69] + _ = x[LexicalVarList-70] + _ = x[UseDeclarationList-71] + _ = x[OpenParenthesisToken-72] + _ = x[CloseParenthesisToken-73] } -const _Position_name = "StartEndColonSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionDoubleArrowAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" +const _Position_name = "StartEndSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionDoubleArrowAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" -var _Position_index = [...]uint16{0, 5, 8, 13, 22, 28, 34, 43, 47, 53, 56, 59, 66, 76, 88, 101, 112, 118, 121, 125, 129, 137, 145, 152, 156, 160, 173, 182, 188, 193, 196, 201, 204, 210, 215, 222, 229, 234, 241, 245, 252, 254, 260, 264, 272, 280, 291, 296, 298, 303, 307, 312, 317, 322, 326, 330, 333, 338, 343, 348, 355, 364, 372, 381, 393, 406, 419, 430, 442, 454, 467, 481, 495, 513, 533, 554} +var _Position_index = [...]uint16{0, 5, 8, 17, 23, 29, 38, 42, 48, 51, 54, 61, 71, 83, 96, 107, 113, 116, 120, 124, 132, 140, 147, 151, 155, 168, 177, 183, 188, 191, 196, 199, 205, 210, 217, 224, 229, 236, 240, 247, 249, 255, 259, 267, 275, 286, 291, 293, 298, 302, 307, 312, 317, 321, 325, 328, 333, 338, 343, 350, 359, 367, 376, 388, 401, 414, 425, 437, 449, 462, 476, 490, 508, 528, 549} func (i Position) String() string { if i < 0 || i >= Position(len(_Position_index)-1) { From a70e34d72600747f080bbf0545d1946673f858a0 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 3 Aug 2020 22:44:49 +0200 Subject: [PATCH 039/140] [refactoring] remove unused token positions --- pkg/printer/printer.go | 3 - pkg/token/position.go | 9 --- pkg/token/position_string.go | 135 ++++++++++++++++------------------- 3 files changed, 63 insertions(+), 84 deletions(-) diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 6fd54bc..f79c8e7 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -532,7 +532,6 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { if nn.Variadic { io.WriteString(p.w, "...") } - p.printFreeFloating(nn, token.Variadic) p.Print(nn.Expr) @@ -1916,7 +1915,6 @@ func (p *Printer) printExprVariable(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - p.printFreeFloating(nn, token.Dollar) if _, ok := nn.VarName.(*ast.Identifier); !ok { io.WriteString(p.w, "$") } @@ -2313,7 +2311,6 @@ func (p *Printer) printStmtClass(n ast.Vertex) { } p.printFreeFloating(nn, token.ModifierList) io.WriteString(p.w, "class") - p.printFreeFloating(nn, token.Class) if nn.ClassName != nil { p.bufStart = " " diff --git a/pkg/token/position.go b/pkg/token/position.go index 28f7802..c74e558 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -8,15 +8,11 @@ const ( End SemiColon AltEnd - Dollar Ampersand Name - Prefix Key Var - UseType ReturnType - OptionalType CaseSeparator LexicalVars Params @@ -37,7 +33,6 @@ const ( While For Switch - Break Foreach Declare Label @@ -47,11 +42,8 @@ const ( If ElseIf Else - Variadic Function - DoubleArrow Alias - As Equal Exit Array @@ -77,7 +69,6 @@ const ( ParameterList AdaptationList LexicalVarList - UseDeclarationList OpenParenthesisToken CloseParenthesisToken diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go index ef682f8..c3c6eab 100644 --- a/pkg/token/position_string.go +++ b/pkg/token/position_string.go @@ -12,81 +12,72 @@ func _() { _ = x[End-1] _ = x[SemiColon-2] _ = x[AltEnd-3] - _ = x[Dollar-4] - _ = x[Ampersand-5] - _ = x[Name-6] - _ = x[Prefix-7] - _ = x[Key-8] - _ = x[Var-9] - _ = x[UseType-10] - _ = x[ReturnType-11] - _ = x[OptionalType-12] - _ = x[CaseSeparator-13] - _ = x[LexicalVars-14] - _ = x[Params-15] - _ = x[Ref-16] - _ = x[Cast-17] - _ = x[Expr-18] - _ = x[InitExpr-19] - _ = x[CondExpr-20] - _ = x[IncExpr-21] - _ = x[True-22] - _ = x[Cond-23] - _ = x[HaltCompiller-24] - _ = x[Namespace-25] - _ = x[Static-26] - _ = x[Class-27] - _ = x[Use-28] - _ = x[While-29] - _ = x[For-30] - _ = x[Switch-31] - _ = x[Break-32] - _ = x[Foreach-33] - _ = x[Declare-34] - _ = x[Label-35] - _ = x[Finally-36] - _ = x[List-37] - _ = x[Default-38] - _ = x[If-39] - _ = x[ElseIf-40] - _ = x[Else-41] - _ = x[Variadic-42] - _ = x[Function-43] - _ = x[DoubleArrow-44] - _ = x[Alias-45] - _ = x[As-46] - _ = x[Equal-47] - _ = x[Exit-48] - _ = x[Array-49] - _ = x[Isset-50] - _ = x[Empty-51] - _ = x[Eval-52] - _ = x[Echo-53] - _ = x[Try-54] - _ = x[Catch-55] - _ = x[Unset-56] - _ = x[Stmts-57] - _ = x[VarList-58] - _ = x[ConstList-59] - _ = x[NameList-60] - _ = x[ParamList-61] - _ = x[ModifierList-62] - _ = x[ArrayPairList-63] - _ = x[CaseListStart-64] - _ = x[CaseListEnd-65] - _ = x[ArgumentList-66] - _ = x[PropertyList-67] - _ = x[ParameterList-68] - _ = x[AdaptationList-69] - _ = x[LexicalVarList-70] - _ = x[UseDeclarationList-71] - _ = x[OpenParenthesisToken-72] - _ = x[CloseParenthesisToken-73] + _ = x[Ampersand-4] + _ = x[Name-5] + _ = x[Key-6] + _ = x[Var-7] + _ = x[ReturnType-8] + _ = x[CaseSeparator-9] + _ = x[LexicalVars-10] + _ = x[Params-11] + _ = x[Ref-12] + _ = x[Cast-13] + _ = x[Expr-14] + _ = x[InitExpr-15] + _ = x[CondExpr-16] + _ = x[IncExpr-17] + _ = x[True-18] + _ = x[Cond-19] + _ = x[HaltCompiller-20] + _ = x[Namespace-21] + _ = x[Static-22] + _ = x[Class-23] + _ = x[Use-24] + _ = x[While-25] + _ = x[For-26] + _ = x[Switch-27] + _ = x[Foreach-28] + _ = x[Declare-29] + _ = x[Label-30] + _ = x[Finally-31] + _ = x[List-32] + _ = x[Default-33] + _ = x[If-34] + _ = x[ElseIf-35] + _ = x[Else-36] + _ = x[Function-37] + _ = x[Alias-38] + _ = x[Equal-39] + _ = x[Exit-40] + _ = x[Array-41] + _ = x[Isset-42] + _ = x[Empty-43] + _ = x[Eval-44] + _ = x[Echo-45] + _ = x[Try-46] + _ = x[Catch-47] + _ = x[Unset-48] + _ = x[Stmts-49] + _ = x[VarList-50] + _ = x[ConstList-51] + _ = x[NameList-52] + _ = x[ParamList-53] + _ = x[ModifierList-54] + _ = x[ArrayPairList-55] + _ = x[CaseListStart-56] + _ = x[CaseListEnd-57] + _ = x[ArgumentList-58] + _ = x[PropertyList-59] + _ = x[ParameterList-60] + _ = x[AdaptationList-61] + _ = x[LexicalVarList-62] + _ = x[OpenParenthesisToken-63] + _ = x[CloseParenthesisToken-64] } -const _Position_name = "StartEndSemiColonAltEndDollarAmpersandNamePrefixKeyVarUseTypeReturnTypeOptionalTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchBreakForeachDeclareLabelFinallyListDefaultIfElseIfElseVariadicFunctionDoubleArrowAliasAsEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListUseDeclarationListOpenParenthesisTokenCloseParenthesisToken" +const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken" -var _Position_index = [...]uint16{0, 5, 8, 17, 23, 29, 38, 42, 48, 51, 54, 61, 71, 83, 96, 107, 113, 116, 120, 124, 132, 140, 147, 151, 155, 168, 177, 183, 188, 191, 196, 199, 205, 210, 217, 224, 229, 236, 240, 247, 249, 255, 259, 267, 275, 286, 291, 293, 298, 302, 307, 312, 317, 321, 325, 328, 333, 338, 343, 350, 359, 367, 376, 388, 401, 414, 425, 437, 449, 462, 476, 490, 508, 528, 549} +var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 137, 146, 152, 157, 160, 165, 168, 174, 181, 188, 193, 200, 204, 211, 213, 219, 223, 231, 236, 241, 245, 250, 255, 260, 264, 268, 271, 276, 281, 286, 293, 302, 310, 319, 331, 344, 357, 368, 380, 392, 405, 419, 433, 453, 474} func (i Position) String() string { if i < 0 || i >= Position(len(_Position_index)-1) { From 45464654c6ebad2d532c07b2b529f80609ba9a68 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 3 Aug 2020 23:21:12 +0200 Subject: [PATCH 040/140] [refactoring] store halt_compiler tokens --- internal/php5/php5.go | 1032 +++++++++++++++++----------------- internal/php5/php5.y | 14 +- internal/php7/php7.go | 814 +++++++++++++-------------- internal/php7/php7.y | 12 +- pkg/printer/printer.go | 12 +- pkg/token/position.go | 1 - pkg/token/position_string.go | 93 ++- 7 files changed, 971 insertions(+), 1007 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 6feebfc..397fb9d 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7109 +// line internal/php5/php5.y:7103 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2423,16 +2423,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:382 + // line internal/php5/php5.y:379 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2450,7 +2447,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:398 + // line internal/php5/php5.y:395 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2468,7 +2465,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:414 + // line internal/php5/php5.y:411 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2484,7 +2481,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:428 + // line internal/php5/php5.y:425 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, useList} @@ -2501,7 +2498,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:443 + // line internal/php5/php5.y:440 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} @@ -2523,7 +2520,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:463 + // line internal/php5/php5.y:460 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} @@ -2545,7 +2542,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:483 + // line internal/php5/php5.y:480 { yyVAL.node = yyDollar[1].node @@ -2560,7 +2557,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:499 + // line internal/php5/php5.y:496 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2571,7 +2568,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:508 + // line internal/php5/php5.y:505 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2579,7 +2576,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:517 + // line internal/php5/php5.y:514 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2592,7 +2589,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:528 + // line internal/php5/php5.y:525 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2611,7 +2608,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:545 + // line internal/php5/php5.y:542 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2627,7 +2624,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:559 + // line internal/php5/php5.y:556 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2647,7 +2644,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:580 + // line internal/php5/php5.y:577 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2658,7 +2655,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:589 + // line internal/php5/php5.y:586 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2666,7 +2663,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:598 + // line internal/php5/php5.y:595 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2679,7 +2676,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:609 + // line internal/php5/php5.y:606 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2698,7 +2695,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:626 + // line internal/php5/php5.y:623 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2714,7 +2711,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:640 + // line internal/php5/php5.y:637 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2734,7 +2731,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:661 + // line internal/php5/php5.y:658 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2745,7 +2742,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:670 + // line internal/php5/php5.y:667 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2753,7 +2750,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:679 + // line internal/php5/php5.y:676 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2766,7 +2763,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:690 + // line internal/php5/php5.y:687 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2785,7 +2782,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:707 + // line internal/php5/php5.y:704 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2801,7 +2798,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:721 + // line internal/php5/php5.y:718 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2821,7 +2818,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:742 + // line internal/php5/php5.y:739 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2844,7 +2841,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:763 + // line internal/php5/php5.y:760 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2865,7 +2862,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:785 + // line internal/php5/php5.y:782 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2880,7 +2877,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:798 + // line internal/php5/php5.y:795 { yyVAL.list = []ast.Vertex{} @@ -2888,7 +2885,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:808 + // line internal/php5/php5.y:805 { // error yyVAL.node = nil @@ -2897,7 +2894,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:815 + // line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node @@ -2905,7 +2902,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:821 + // line internal/php5/php5.y:818 { yyVAL.node = yyDollar[1].node @@ -2913,7 +2910,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:827 + // line internal/php5/php5.y:824 { yyVAL.node = yyDollar[1].node @@ -2921,7 +2918,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:833 + // line internal/php5/php5.y:830 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2930,16 +2927,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:853 + // line internal/php5/php5.y:847 { yyVAL.node = yyDollar[1].node @@ -2947,7 +2941,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:859 + // line internal/php5/php5.y:853 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2964,7 +2958,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:877 + // line internal/php5/php5.y:871 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2979,7 +2973,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:890 + // line internal/php5/php5.y:884 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3007,7 +3001,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:914 + // line internal/php5/php5.y:908 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} @@ -3035,7 +3029,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:938 + // line internal/php5/php5.y:932 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3064,7 +3058,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:963 + // line internal/php5/php5.y:957 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3089,7 +3083,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:984 + // line internal/php5/php5.y:978 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3118,7 +3112,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1011 + // line internal/php5/php5.y:1005 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3149,7 +3143,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1038 + // line internal/php5/php5.y:1032 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3165,7 +3159,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1052 + // line internal/php5/php5.y:1046 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3181,7 +3175,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1066 + // line internal/php5/php5.y:1060 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3197,7 +3191,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1080 + // line internal/php5/php5.y:1074 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3213,7 +3207,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1094 + // line internal/php5/php5.y:1088 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3229,7 +3223,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1108 + // line internal/php5/php5.y:1102 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3245,7 +3239,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1122 + // line internal/php5/php5.y:1116 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3261,7 +3255,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1136 + // line internal/php5/php5.y:1130 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3277,7 +3271,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1150 + // line internal/php5/php5.y:1144 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3293,7 +3287,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1164 + // line internal/php5/php5.y:1158 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3309,7 +3303,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1178 + // line internal/php5/php5.y:1172 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3326,7 +3320,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1193 + // line internal/php5/php5.y:1187 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3340,7 +3334,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1199 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3356,7 +3350,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1219 + // line internal/php5/php5.y:1213 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3374,7 +3368,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1235 + // line internal/php5/php5.y:1229 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3417,7 +3411,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1275 + // line internal/php5/php5.y:1269 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3460,7 +3454,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1315 + // line internal/php5/php5.y:1309 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3477,7 +3471,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1330 + // line internal/php5/php5.y:1324 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3492,7 +3486,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1343 + // line internal/php5/php5.y:1337 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3512,7 +3506,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1355 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3528,7 +3522,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1375 + // line internal/php5/php5.y:1369 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3547,7 +3541,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1395 + // line internal/php5/php5.y:1389 { yyVAL.list = []ast.Vertex{} @@ -3555,7 +3549,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1401 + // line internal/php5/php5.y:1395 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3579,7 +3573,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1426 + // line internal/php5/php5.y:1420 { yyVAL.node = nil @@ -3587,7 +3581,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1432 + // line internal/php5/php5.y:1426 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3603,7 +3597,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1449 + // line internal/php5/php5.y:1443 { yyVAL.list = yyDollar[1].list @@ -3611,7 +3605,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1455 + // line internal/php5/php5.y:1449 { yyVAL.list = []ast.Vertex{} @@ -3619,7 +3613,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1464 + // line internal/php5/php5.y:1458 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3627,7 +3621,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1470 + // line internal/php5/php5.y:1464 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3635,7 +3629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1479 + // line internal/php5/php5.y:1473 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3658,7 +3652,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1503 + // line internal/php5/php5.y:1497 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3666,7 +3660,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1509 + // line internal/php5/php5.y:1503 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3677,7 +3671,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1521 + // line internal/php5/php5.y:1515 { yyVAL.node = yyDollar[1].node @@ -3685,7 +3679,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1530 + // line internal/php5/php5.y:1524 { yyVAL.node = yyDollar[1].node @@ -3693,7 +3687,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1539 + // line internal/php5/php5.y:1533 { yyVAL.node = yyDollar[1].node @@ -3701,31 +3695,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1548 + // line internal/php5/php5.y:1542 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1552 + // line internal/php5/php5.y:1546 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1559 + // line internal/php5/php5.y:1553 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1563 + // line internal/php5/php5.y:1557 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1570 + // line internal/php5/php5.y:1564 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3751,7 +3745,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1597 + // line internal/php5/php5.y:1591 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3781,7 +3775,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1625 + // line internal/php5/php5.y:1619 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3800,7 +3794,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1646 + // line internal/php5/php5.y:1640 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3814,7 +3808,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1658 + // line internal/php5/php5.y:1652 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3831,7 +3825,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1673 + // line internal/php5/php5.y:1667 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3845,7 +3839,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1685 + // line internal/php5/php5.y:1679 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3862,7 +3856,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1703 + // line internal/php5/php5.y:1697 { yyVAL.ClassExtends = nil @@ -3870,7 +3864,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1709 + // line internal/php5/php5.y:1703 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3884,13 +3878,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1724 + // line internal/php5/php5.y:1718 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1725 { yyVAL.InterfaceExtends = nil @@ -3898,7 +3892,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1737 + // line internal/php5/php5.y:1731 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3912,7 +3906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1746 { yyVAL.ClassImplements = nil @@ -3920,7 +3914,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1758 + // line internal/php5/php5.y:1752 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3934,7 +3928,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1767 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3942,7 +3936,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1779 + // line internal/php5/php5.y:1773 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3953,7 +3947,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1791 + // line internal/php5/php5.y:1785 { yyVAL.node = nil @@ -3961,7 +3955,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1797 + // line internal/php5/php5.y:1791 { yyVAL.node = yyDollar[2].node @@ -3972,7 +3966,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1809 + // line internal/php5/php5.y:1803 { yyVAL.node = yyDollar[1].node @@ -3980,7 +3974,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1815 + // line internal/php5/php5.y:1809 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3994,7 +3988,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1827 + // line internal/php5/php5.y:1821 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4010,7 +4004,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1844 + // line internal/php5/php5.y:1838 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4021,7 +4015,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1853 + // line internal/php5/php5.y:1847 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4040,7 +4034,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1867 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4051,7 +4045,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1882 + // line internal/php5/php5.y:1876 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4070,7 +4064,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1903 + // line internal/php5/php5.y:1897 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4081,7 +4075,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1912 + // line internal/php5/php5.y:1906 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4100,7 +4094,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1927 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4118,7 +4112,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1949 + // line internal/php5/php5.y:1943 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4137,7 +4131,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1970 + // line internal/php5/php5.y:1964 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4154,7 +4148,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1985 + // line internal/php5/php5.y:1979 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4172,7 +4166,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2001 + // line internal/php5/php5.y:1995 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4191,7 +4185,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2018 + // line internal/php5/php5.y:2012 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4212,7 +4206,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2041 + // line internal/php5/php5.y:2035 { yyVAL.list = []ast.Vertex{} @@ -4220,7 +4214,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2047 + // line internal/php5/php5.y:2041 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4237,7 +4231,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2062 + // line internal/php5/php5.y:2056 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4254,19 +4248,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2081 + // line internal/php5/php5.y:2075 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2085 + // line internal/php5/php5.y:2079 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2093 + // line internal/php5/php5.y:2087 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4277,7 +4271,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2102 + // line internal/php5/php5.y:2096 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4296,7 +4290,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2118 { yyVAL.list = nil @@ -4304,7 +4298,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2130 + // line internal/php5/php5.y:2124 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4327,7 +4321,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2153 + // line internal/php5/php5.y:2147 { yyVAL.list = nil @@ -4335,7 +4329,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2159 + // line internal/php5/php5.y:2153 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4361,7 +4355,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2185 + // line internal/php5/php5.y:2179 { yyVAL.node = nil @@ -4369,7 +4363,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2185 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4383,7 +4377,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2201 { yyVAL.node = nil @@ -4391,7 +4385,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2213 + // line internal/php5/php5.y:2207 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4408,7 +4402,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2232 + // line internal/php5/php5.y:2226 { yyVAL.list = yyDollar[1].list @@ -4416,7 +4410,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2238 + // line internal/php5/php5.y:2232 { yyVAL.list = nil @@ -4424,7 +4418,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2241 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4432,7 +4426,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2253 + // line internal/php5/php5.y:2247 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4443,7 +4437,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2265 + // line internal/php5/php5.y:2259 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4481,7 +4475,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2301 + // line internal/php5/php5.y:2295 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4520,7 +4514,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2342 + // line internal/php5/php5.y:2336 { yyVAL.node = nil @@ -4528,7 +4522,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2348 + // line internal/php5/php5.y:2342 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4542,7 +4536,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2360 + // line internal/php5/php5.y:2354 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4556,7 +4550,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2372 + // line internal/php5/php5.y:2366 { yyVAL.node = yyDollar[1].node @@ -4564,7 +4558,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2382 + // line internal/php5/php5.y:2376 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4579,7 +4573,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2395 + // line internal/php5/php5.y:2389 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4594,7 +4588,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2408 + // line internal/php5/php5.y:2402 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4611,7 +4605,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2427 + // line internal/php5/php5.y:2421 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4619,7 +4613,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2433 + // line internal/php5/php5.y:2427 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4630,7 +4624,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2445 + // line internal/php5/php5.y:2439 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4644,7 +4638,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2457 + // line internal/php5/php5.y:2451 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4658,7 +4652,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2469 + // line internal/php5/php5.y:2463 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4672,7 +4666,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2481 + // line internal/php5/php5.y:2475 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4686,7 +4680,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2496 + // line internal/php5/php5.y:2490 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4697,7 +4691,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2505 + // line internal/php5/php5.y:2499 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4705,7 +4699,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2515 + // line internal/php5/php5.y:2509 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4721,7 +4715,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2529 + // line internal/php5/php5.y:2523 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4735,7 +4729,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2541 + // line internal/php5/php5.y:2535 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4751,7 +4745,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2559 + // line internal/php5/php5.y:2553 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4771,7 +4765,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2577 + // line internal/php5/php5.y:2571 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4792,7 +4786,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2596 + // line internal/php5/php5.y:2590 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4811,7 +4805,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2613 + // line internal/php5/php5.y:2607 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4831,7 +4825,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2635 + // line internal/php5/php5.y:2629 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4839,7 +4833,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2641 + // line internal/php5/php5.y:2635 { yyVAL.list = []ast.Vertex{} @@ -4847,7 +4841,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2651 + // line internal/php5/php5.y:2645 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4863,7 +4857,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2665 + // line internal/php5/php5.y:2659 { yyVAL.node = yyDollar[1].node @@ -4878,7 +4872,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2672 { yyVAL.node = yyDollar[1].node @@ -4886,7 +4880,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2684 + // line internal/php5/php5.y:2678 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4919,7 +4913,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2718 + // line internal/php5/php5.y:2712 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4933,7 +4927,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2733 + // line internal/php5/php5.y:2727 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4941,7 +4935,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2739 + // line internal/php5/php5.y:2733 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4952,7 +4946,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2751 + // line internal/php5/php5.y:2745 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4966,7 +4960,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2763 + // line internal/php5/php5.y:2757 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4980,7 +4974,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2772 { yyVAL.list = nil @@ -4988,7 +4982,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2784 + // line internal/php5/php5.y:2778 { yyVAL.list = yyDollar[1].list @@ -4996,7 +4990,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2793 + // line internal/php5/php5.y:2787 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5004,7 +4998,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2799 + // line internal/php5/php5.y:2793 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5012,7 +5006,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2808 + // line internal/php5/php5.y:2802 { yyVAL.node = yyDollar[1].node @@ -5024,7 +5018,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2818 + // line internal/php5/php5.y:2812 { yyVAL.node = yyDollar[1].node @@ -5036,7 +5030,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2831 + // line internal/php5/php5.y:2825 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5051,7 +5045,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2841 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5059,7 +5053,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2853 + // line internal/php5/php5.y:2847 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5070,7 +5064,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2865 + // line internal/php5/php5.y:2859 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5086,7 +5080,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2879 + // line internal/php5/php5.y:2873 { yyVAL.node = yyDollar[1].node @@ -5094,7 +5088,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2888 + // line internal/php5/php5.y:2882 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5112,7 +5106,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2907 + // line internal/php5/php5.y:2901 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5130,7 +5124,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2923 + // line internal/php5/php5.y:2917 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5145,7 +5139,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2939 + // line internal/php5/php5.y:2933 { yyVAL.node = nil @@ -5153,7 +5147,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2945 + // line internal/php5/php5.y:2939 { yyVAL.node = yyDollar[1].node @@ -5161,7 +5155,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2954 + // line internal/php5/php5.y:2948 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5176,7 +5170,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2967 + // line internal/php5/php5.y:2961 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5191,7 +5185,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2983 + // line internal/php5/php5.y:2977 { yyVAL.list = yyDollar[1].list @@ -5199,7 +5193,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2989 + // line internal/php5/php5.y:2983 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5214,7 +5208,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3005 + // line internal/php5/php5.y:2999 { yyVAL.list = nil @@ -5222,7 +5216,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3011 + // line internal/php5/php5.y:3005 { yyVAL.list = yyDollar[1].list @@ -5230,7 +5224,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3020 + // line internal/php5/php5.y:3014 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5238,7 +5232,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3026 + // line internal/php5/php5.y:3020 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5246,7 +5240,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3035 + // line internal/php5/php5.y:3029 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5260,7 +5254,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3047 + // line internal/php5/php5.y:3041 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5274,7 +5268,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3059 + // line internal/php5/php5.y:3053 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5288,7 +5282,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3065 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5302,7 +5296,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3083 + // line internal/php5/php5.y:3077 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5316,7 +5310,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3095 + // line internal/php5/php5.y:3089 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5330,7 +5324,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3110 + // line internal/php5/php5.y:3104 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5350,7 +5344,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3122 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5371,7 +5365,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3147 + // line internal/php5/php5.y:3141 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5390,7 +5384,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3164 + // line internal/php5/php5.y:3158 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5410,7 +5404,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3185 + // line internal/php5/php5.y:3179 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5433,7 +5427,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3206 + // line internal/php5/php5.y:3200 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5453,7 +5447,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3227 + // line internal/php5/php5.y:3221 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5464,7 +5458,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3236 + // line internal/php5/php5.y:3230 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5472,7 +5466,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3246 + // line internal/php5/php5.y:3240 { yyVAL.list = nil @@ -5480,7 +5474,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3252 + // line internal/php5/php5.y:3246 { yyVAL.list = yyDollar[1].list @@ -5488,7 +5482,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3261 + // line internal/php5/php5.y:3255 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5499,7 +5493,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3270 + // line internal/php5/php5.y:3264 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5507,7 +5501,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3279 + // line internal/php5/php5.y:3273 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5515,7 +5509,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3285 + // line internal/php5/php5.y:3279 { yyVAL.list = yyDollar[1].list @@ -5523,7 +5517,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3294 + // line internal/php5/php5.y:3288 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5539,7 +5533,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3308 + // line internal/php5/php5.y:3302 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5555,7 +5549,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3325 + // line internal/php5/php5.y:3319 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5563,7 +5557,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3325 { yyVAL.list = yyDollar[1].list @@ -5571,7 +5565,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3337 + // line internal/php5/php5.y:3331 { yyVAL.list = yyDollar[1].list @@ -5579,7 +5573,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3346 + // line internal/php5/php5.y:3340 { yyVAL.list = nil @@ -5587,7 +5581,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3352 + // line internal/php5/php5.y:3346 { yyVAL.list = yyDollar[1].list @@ -5595,7 +5589,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3361 + // line internal/php5/php5.y:3355 { if yyDollar[3].node != nil { @@ -5613,7 +5607,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3374 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5632,7 +5626,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3397 + // line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5641,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3410 + // line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5663,7 +5657,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3418 { var _new *ast.ExprNew @@ -5692,7 +5686,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3451 + // line internal/php5/php5.y:3445 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5706,7 +5700,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3463 + // line internal/php5/php5.y:3457 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5720,7 +5714,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3475 + // line internal/php5/php5.y:3469 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5735,7 +5729,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3488 + // line internal/php5/php5.y:3482 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5750,7 +5744,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3501 + // line internal/php5/php5.y:3495 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5759,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3514 + // line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5774,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3527 + // line internal/php5/php5.y:3521 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5795,7 +5789,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3540 + // line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5810,7 +5804,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3553 + // line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5825,7 +5819,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3566 + // line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5840,7 +5834,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3579 + // line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5855,7 +5849,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3592 + // line internal/php5/php5.y:3586 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5870,7 +5864,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3605 + // line internal/php5/php5.y:3599 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5879,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3618 + // line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5900,7 +5894,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3631 + // line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5914,7 +5908,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3643 + // line internal/php5/php5.y:3637 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5929,7 +5923,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3656 + // line internal/php5/php5.y:3650 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5943,7 +5937,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3668 + // line internal/php5/php5.y:3662 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5958,7 +5952,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3681 + // line internal/php5/php5.y:3675 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5973,7 +5967,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3694 + // line internal/php5/php5.y:3688 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5988,7 +5982,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3707 + // line internal/php5/php5.y:3701 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6003,7 +5997,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3720 + // line internal/php5/php5.y:3714 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6018,7 +6012,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3733 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6033,7 +6027,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3746 + // line internal/php5/php5.y:3740 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6048,7 +6042,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3759 + // line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6063,7 +6057,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3772 + // line internal/php5/php5.y:3766 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6078,7 +6072,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3785 + // line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6093,7 +6087,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3798 + // line internal/php5/php5.y:3792 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6108,7 +6102,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3811 + // line internal/php5/php5.y:3805 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6123,7 +6117,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3824 + // line internal/php5/php5.y:3818 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6138,7 +6132,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3837 + // line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6153,7 +6147,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3850 + // line internal/php5/php5.y:3844 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6168,7 +6162,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3863 + // line internal/php5/php5.y:3857 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6183,7 +6177,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3876 + // line internal/php5/php5.y:3870 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6198,7 +6192,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3889 + // line internal/php5/php5.y:3883 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6212,7 +6206,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3901 + // line internal/php5/php5.y:3895 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6226,7 +6220,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3913 + // line internal/php5/php5.y:3907 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6240,7 +6234,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3925 + // line internal/php5/php5.y:3919 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6254,7 +6248,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3937 + // line internal/php5/php5.y:3931 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6269,7 +6263,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3950 + // line internal/php5/php5.y:3944 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6284,7 +6278,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3957 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6299,7 +6293,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3976 + // line internal/php5/php5.y:3970 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6315,7 +6309,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3990 + // line internal/php5/php5.y:3984 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6330,7 +6324,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4003 + // line internal/php5/php5.y:3997 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6345,7 +6339,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4016 + // line internal/php5/php5.y:4010 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6360,7 +6354,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4029 + // line internal/php5/php5.y:4023 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6375,7 +6369,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4042 + // line internal/php5/php5.y:4036 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6390,7 +6384,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4055 + // line internal/php5/php5.y:4049 { yyVAL.node = yyDollar[1].node @@ -6403,7 +6397,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4064 + // line internal/php5/php5.y:4058 { yyVAL.node = yyDollar[1].node @@ -6411,7 +6405,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4070 + // line internal/php5/php5.y:4064 { yyVAL.node = yyDollar[2].node @@ -6445,7 +6439,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4102 + // line internal/php5/php5.y:4096 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6461,7 +6455,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4116 + // line internal/php5/php5.y:4110 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6477,7 +6471,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4130 + // line internal/php5/php5.y:4124 { yyVAL.node = yyDollar[1].node @@ -6485,7 +6479,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4136 + // line internal/php5/php5.y:4130 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6500,7 +6494,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4149 + // line internal/php5/php5.y:4143 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6515,7 +6509,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4162 + // line internal/php5/php5.y:4156 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6530,7 +6524,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4175 + // line internal/php5/php5.y:4169 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6545,7 +6539,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4188 + // line internal/php5/php5.y:4182 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6560,7 +6554,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4201 + // line internal/php5/php5.y:4195 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6575,7 +6569,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4214 + // line internal/php5/php5.y:4208 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6590,7 +6584,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4227 + // line internal/php5/php5.y:4221 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6613,7 +6607,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4248 + // line internal/php5/php5.y:4242 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6627,7 +6621,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4260 + // line internal/php5/php5.y:4254 { yyVAL.node = yyDollar[1].node @@ -6635,7 +6629,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4260 { yyVAL.node = yyDollar[1].node @@ -6643,7 +6637,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4272 + // line internal/php5/php5.y:4266 { yyVAL.node = yyDollar[1].node @@ -6651,7 +6645,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4272 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6665,7 +6659,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4290 + // line internal/php5/php5.y:4284 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6679,7 +6673,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4302 + // line internal/php5/php5.y:4296 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6693,7 +6687,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4314 + // line internal/php5/php5.y:4308 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6722,7 +6716,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4334 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6752,7 +6746,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4370 + // line internal/php5/php5.y:4364 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6766,7 +6760,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4382 + // line internal/php5/php5.y:4376 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6780,7 +6774,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4394 + // line internal/php5/php5.y:4388 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6795,7 +6789,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4407 + // line internal/php5/php5.y:4401 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6810,7 +6804,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4423 + // line internal/php5/php5.y:4417 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6825,7 +6819,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4436 + // line internal/php5/php5.y:4430 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6840,7 +6834,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4449 + // line internal/php5/php5.y:4443 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6858,7 +6852,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4465 + // line internal/php5/php5.y:4459 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6873,7 +6867,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4481 + // line internal/php5/php5.y:4475 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6889,7 +6883,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4495 + // line internal/php5/php5.y:4489 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6904,13 +6898,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4511 + // line internal/php5/php5.y:4505 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4518 + // line internal/php5/php5.y:4512 { yyVAL.ClosureUse = nil @@ -6918,7 +6912,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4524 + // line internal/php5/php5.y:4518 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6934,7 +6928,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4541 + // line internal/php5/php5.y:4535 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6952,7 +6946,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4557 + // line internal/php5/php5.y:4551 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6973,7 +6967,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4576 + // line internal/php5/php5.y:4570 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6990,7 +6984,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4591 + // line internal/php5/php5.y:4585 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7010,7 +7004,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4612 + // line internal/php5/php5.y:4606 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7023,7 +7017,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4623 + // line internal/php5/php5.y:4617 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7040,7 +7034,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4638 + // line internal/php5/php5.y:4632 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7056,7 +7050,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4652 + // line internal/php5/php5.y:4646 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7071,7 +7065,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4665 + // line internal/php5/php5.y:4659 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7086,7 +7080,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4678 + // line internal/php5/php5.y:4672 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7101,7 +7095,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4685 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7116,7 +7110,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4704 + // line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7130,7 +7124,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4719 + // line internal/php5/php5.y:4713 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7144,7 +7138,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4731 + // line internal/php5/php5.y:4725 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7155,7 +7149,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4740 + // line internal/php5/php5.y:4734 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7170,7 +7164,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4753 + // line internal/php5/php5.y:4747 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7184,7 +7178,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4768 + // line internal/php5/php5.y:4762 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7195,7 +7189,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4777 + // line internal/php5/php5.y:4771 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7210,7 +7204,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4784 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7224,7 +7218,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4805 + // line internal/php5/php5.y:4799 { yyVAL.node = yyDollar[1].node @@ -7232,7 +7226,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4811 + // line internal/php5/php5.y:4805 { yyVAL.node = yyDollar[1].node @@ -7240,7 +7234,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4820 + // line internal/php5/php5.y:4814 { yyVAL.node = yyDollar[1].node @@ -7283,7 +7277,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4861 + // line internal/php5/php5.y:4855 { yyVAL.node = yyDollar[1].node @@ -7291,7 +7285,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4871 + // line internal/php5/php5.y:4865 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7299,7 +7293,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4877 + // line internal/php5/php5.y:4871 { yyVAL.list = []ast.Vertex{} @@ -7307,7 +7301,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4887 + // line internal/php5/php5.y:4881 { yyVAL.list = yyDollar[2].list @@ -7318,7 +7312,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4899 + // line internal/php5/php5.y:4893 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7326,7 +7320,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4905 + // line internal/php5/php5.y:4899 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7341,7 +7335,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4918 + // line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7362,7 +7356,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4932 { yyVAL.list = []ast.Vertex{} @@ -7370,7 +7364,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4944 + // line internal/php5/php5.y:4938 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7382,7 +7376,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4954 + // line internal/php5/php5.y:4948 { yyVAL.list = yyDollar[1].list @@ -7390,7 +7384,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4963 + // line internal/php5/php5.y:4957 { yyVAL.node = nil @@ -7398,7 +7392,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4969 + // line internal/php5/php5.y:4963 { yyVAL.node = yyDollar[1].node @@ -7406,7 +7400,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4978 + // line internal/php5/php5.y:4972 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7420,7 +7414,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4990 + // line internal/php5/php5.y:4984 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7434,7 +7428,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5002 + // line internal/php5/php5.y:4996 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7448,7 +7442,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5014 + // line internal/php5/php5.y:5008 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7462,7 +7456,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5026 + // line internal/php5/php5.y:5020 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7476,7 +7470,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5038 + // line internal/php5/php5.y:5032 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7490,7 +7484,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5050 + // line internal/php5/php5.y:5044 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7504,7 +7498,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5062 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7518,7 +7512,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5074 + // line internal/php5/php5.y:5068 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7532,7 +7526,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5086 + // line internal/php5/php5.y:5080 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7546,7 +7540,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5098 + // line internal/php5/php5.y:5092 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7562,7 +7556,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5106 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7576,7 +7570,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5127 + // line internal/php5/php5.y:5121 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7594,7 +7588,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5146 + // line internal/php5/php5.y:5140 { yyVAL.node = yyDollar[1].node @@ -7602,7 +7596,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5149 { yyVAL.node = yyDollar[1].node @@ -7610,7 +7604,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5161 + // line internal/php5/php5.y:5155 { yyVAL.node = yyDollar[1].node @@ -7618,7 +7612,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5167 + // line internal/php5/php5.y:5161 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7631,7 +7625,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5178 + // line internal/php5/php5.y:5172 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7648,7 +7642,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5193 + // line internal/php5/php5.y:5187 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7664,7 +7658,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5207 + // line internal/php5/php5.y:5201 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7680,7 +7674,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5221 + // line internal/php5/php5.y:5215 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7695,7 +7689,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5234 + // line internal/php5/php5.y:5228 { yyVAL.node = yyDollar[1].node @@ -7703,7 +7697,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5240 + // line internal/php5/php5.y:5234 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7717,7 +7711,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5246 { yyVAL.node = yyDollar[1].node @@ -7725,7 +7719,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5261 + // line internal/php5/php5.y:5255 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7740,7 +7734,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5268 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7755,7 +7749,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5287 + // line internal/php5/php5.y:5281 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7770,7 +7764,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5300 + // line internal/php5/php5.y:5294 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7785,7 +7779,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5313 + // line internal/php5/php5.y:5307 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7800,7 +7794,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5326 + // line internal/php5/php5.y:5320 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7815,7 +7809,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5339 + // line internal/php5/php5.y:5333 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7830,7 +7824,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5352 + // line internal/php5/php5.y:5346 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7844,7 +7838,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5364 + // line internal/php5/php5.y:5358 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7858,7 +7852,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5376 + // line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7873,7 +7867,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5389 + // line internal/php5/php5.y:5383 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7888,7 +7882,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5396 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7903,7 +7897,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5415 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7918,7 +7912,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5428 + // line internal/php5/php5.y:5422 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7933,7 +7927,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5441 + // line internal/php5/php5.y:5435 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7948,7 +7942,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5454 + // line internal/php5/php5.y:5448 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7963,7 +7957,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5467 + // line internal/php5/php5.y:5461 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7978,7 +7972,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5480 + // line internal/php5/php5.y:5474 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7993,7 +7987,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5493 + // line internal/php5/php5.y:5487 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8008,7 +8002,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8023,7 +8017,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5519 + // line internal/php5/php5.y:5513 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8038,7 +8032,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5532 + // line internal/php5/php5.y:5526 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8053,7 +8047,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5545 + // line internal/php5/php5.y:5539 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8068,7 +8062,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5558 + // line internal/php5/php5.y:5552 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8084,7 +8078,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5572 + // line internal/php5/php5.y:5566 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8099,7 +8093,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5585 + // line internal/php5/php5.y:5579 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8114,7 +8108,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5598 + // line internal/php5/php5.y:5592 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8129,7 +8123,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5611 + // line internal/php5/php5.y:5605 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8144,7 +8138,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5624 + // line internal/php5/php5.y:5618 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8160,7 +8154,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5638 + // line internal/php5/php5.y:5632 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8176,7 +8170,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5652 + // line internal/php5/php5.y:5646 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8190,7 +8184,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5664 + // line internal/php5/php5.y:5658 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8204,7 +8198,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5676 + // line internal/php5/php5.y:5670 { yyVAL.node = yyDollar[2].node @@ -8216,7 +8210,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5689 + // line internal/php5/php5.y:5683 { yyVAL.node = yyDollar[1].node @@ -8224,7 +8218,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5695 + // line internal/php5/php5.y:5689 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8237,7 +8231,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5706 + // line internal/php5/php5.y:5700 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8254,7 +8248,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5721 + // line internal/php5/php5.y:5715 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8270,7 +8264,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5738 + // line internal/php5/php5.y:5732 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8286,7 +8280,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5752 + // line internal/php5/php5.y:5746 { yyVAL.node = yyDollar[1].node @@ -8294,7 +8288,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5758 + // line internal/php5/php5.y:5752 { yyVAL.node = yyDollar[1].node @@ -8302,7 +8296,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5758 { yyVAL.node = yyDollar[1].node @@ -8310,7 +8304,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5770 + // line internal/php5/php5.y:5764 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8324,7 +8318,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5782 + // line internal/php5/php5.y:5776 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8338,7 +8332,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5794 + // line internal/php5/php5.y:5788 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8352,7 +8346,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5809 + // line internal/php5/php5.y:5803 { yyVAL.list = nil @@ -8360,7 +8354,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5815 + // line internal/php5/php5.y:5809 { yyVAL.list = yyDollar[1].list @@ -8373,19 +8367,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5829 + // line internal/php5/php5.y:5823 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5833 + // line internal/php5/php5.y:5827 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5840 + // line internal/php5/php5.y:5834 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8402,7 +8396,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5855 + // line internal/php5/php5.y:5849 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8418,7 +8412,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5869 + // line internal/php5/php5.y:5863 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8434,7 +8428,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5883 + // line internal/php5/php5.y:5877 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8449,7 +8443,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5893 { yyVAL.node = yyDollar[1].node @@ -8457,7 +8451,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5905 + // line internal/php5/php5.y:5899 { yyVAL.node = yyDollar[1].node @@ -8465,7 +8459,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5914 + // line internal/php5/php5.y:5908 { yyVAL.node = yyDollar[2].node @@ -8483,7 +8477,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5930 + // line internal/php5/php5.y:5924 { yyVAL.node = yyDollar[2].node @@ -8501,7 +8495,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5950 + // line internal/php5/php5.y:5944 { yyVAL.node = yyDollar[1].node @@ -8509,7 +8503,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5960 + // line internal/php5/php5.y:5954 { yyVAL.node = yyDollar[1].node @@ -8517,7 +8511,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5969 + // line internal/php5/php5.y:5963 { yyVAL.node = yyDollar[1].node @@ -8525,7 +8519,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5978 + // line internal/php5/php5.y:5972 { yyVAL.node = yyDollar[1].node @@ -8585,7 +8579,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6036 + // line internal/php5/php5.y:6030 { yyVAL.node = yyDollar[1].node @@ -8593,7 +8587,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6045 + // line internal/php5/php5.y:6039 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8601,7 +8595,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6051 + // line internal/php5/php5.y:6045 { yyVAL.list = []ast.Vertex{} @@ -8609,7 +8603,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6061 + // line internal/php5/php5.y:6055 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8625,7 +8619,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6078 + // line internal/php5/php5.y:6072 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8641,7 +8635,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6092 + // line internal/php5/php5.y:6086 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8657,7 +8651,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6109 + // line internal/php5/php5.y:6103 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8668,7 +8662,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6121 + // line internal/php5/php5.y:6115 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8676,7 +8670,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6121 { yyVAL.list = yyDollar[1].list @@ -8684,7 +8678,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6127 { yyVAL.list = nil @@ -8692,7 +8686,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6142 + // line internal/php5/php5.y:6136 { yyVAL.node = yyDollar[1].node @@ -8700,7 +8694,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6148 + // line internal/php5/php5.y:6142 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8714,7 +8708,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6163 + // line internal/php5/php5.y:6157 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8729,7 +8723,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6176 + // line internal/php5/php5.y:6170 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8744,7 +8738,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6192 + // line internal/php5/php5.y:6186 { yyVAL.node = yyDollar[1].node @@ -8752,7 +8746,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6201 + // line internal/php5/php5.y:6195 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8767,7 +8761,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6214 + // line internal/php5/php5.y:6208 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8782,7 +8776,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6230 + // line internal/php5/php5.y:6224 { yyVAL.node = yyDollar[1].node @@ -8790,7 +8784,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6236 + // line internal/php5/php5.y:6230 { yyVAL.node = yyDollar[1].node @@ -8798,7 +8792,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6242 + // line internal/php5/php5.y:6236 { yyVAL.node = yyDollar[1].node @@ -8806,7 +8800,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6252 + // line internal/php5/php5.y:6246 { yyVAL.node = yyDollar[1].node @@ -8814,7 +8808,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6258 + // line internal/php5/php5.y:6252 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8828,7 +8822,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6270 + // line internal/php5/php5.y:6264 { yyVAL.node = yyDollar[1].node @@ -8836,7 +8830,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6279 + // line internal/php5/php5.y:6273 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8851,7 +8845,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6292 + // line internal/php5/php5.y:6286 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8866,7 +8860,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6305 + // line internal/php5/php5.y:6299 { yyVAL.node = yyDollar[1].node @@ -8874,7 +8868,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6315 + // line internal/php5/php5.y:6309 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8890,7 +8884,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6329 + // line internal/php5/php5.y:6323 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8906,7 +8900,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6346 + // line internal/php5/php5.y:6340 { yyVAL.node = nil @@ -8914,7 +8908,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6352 + // line internal/php5/php5.y:6346 { yyVAL.node = yyDollar[1].node @@ -8922,7 +8916,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6362 + // line internal/php5/php5.y:6356 { yyVAL.list = yyDollar[1].list @@ -8930,7 +8924,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6368 + // line internal/php5/php5.y:6362 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8942,7 +8936,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6381 + // line internal/php5/php5.y:6375 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8958,7 +8952,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6395 + // line internal/php5/php5.y:6389 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8974,7 +8968,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6409 + // line internal/php5/php5.y:6403 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8986,7 +8980,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6422 + // line internal/php5/php5.y:6416 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9000,7 +8994,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6434 + // line internal/php5/php5.y:6428 { yyVAL.node = yyDollar[2].node @@ -9015,7 +9009,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6450 + // line internal/php5/php5.y:6444 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9030,7 +9024,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6463 + // line internal/php5/php5.y:6457 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9049,7 +9043,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6483 + // line internal/php5/php5.y:6477 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9064,7 +9058,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6496 + // line internal/php5/php5.y:6490 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9076,7 +9070,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6510 + // line internal/php5/php5.y:6504 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9090,7 +9084,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6522 + // line internal/php5/php5.y:6516 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9108,7 +9102,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6538 + // line internal/php5/php5.y:6532 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9116,7 +9110,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6548 + // line internal/php5/php5.y:6542 { yyVAL.list = []ast.Vertex{} @@ -9124,7 +9118,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6554 + // line internal/php5/php5.y:6548 { yyVAL.list = yyDollar[1].list @@ -9141,7 +9135,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6572 + // line internal/php5/php5.y:6566 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9158,7 +9152,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6587 + // line internal/php5/php5.y:6581 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9174,7 +9168,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6601 + // line internal/php5/php5.y:6595 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9190,7 +9184,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6615 + // line internal/php5/php5.y:6609 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9205,7 +9199,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6628 + // line internal/php5/php5.y:6622 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9225,7 +9219,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6646 + // line internal/php5/php5.y:6640 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9243,7 +9237,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6662 + // line internal/php5/php5.y:6656 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9262,7 +9256,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6679 + // line internal/php5/php5.y:6673 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9279,7 +9273,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6697 + // line internal/php5/php5.y:6691 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9287,7 +9281,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6703 + // line internal/php5/php5.y:6697 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9302,7 +9296,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6716 + // line internal/php5/php5.y:6710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9310,7 +9304,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6722 + // line internal/php5/php5.y:6716 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9325,7 +9319,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6738 + // line internal/php5/php5.y:6732 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9341,7 +9335,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6752 + // line internal/php5/php5.y:6746 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9360,7 +9354,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6769 + // line internal/php5/php5.y:6763 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9381,7 +9375,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6788 + // line internal/php5/php5.y:6782 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9398,7 +9392,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6803 + // line internal/php5/php5.y:6797 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9417,7 +9411,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6820 + // line internal/php5/php5.y:6814 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9438,7 +9432,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6839 + // line internal/php5/php5.y:6833 { yyVAL.node = yyDollar[2].node @@ -9450,7 +9444,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6852 + // line internal/php5/php5.y:6846 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9464,7 +9458,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6864 + // line internal/php5/php5.y:6858 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9483,7 +9477,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6881 + // line internal/php5/php5.y:6875 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9499,7 +9493,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6898 + // line internal/php5/php5.y:6892 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9515,7 +9509,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6912 + // line internal/php5/php5.y:6906 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9531,7 +9525,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6926 + // line internal/php5/php5.y:6920 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9547,7 +9541,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6940 + // line internal/php5/php5.y:6934 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9561,7 +9555,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6952 + // line internal/php5/php5.y:6946 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9575,7 +9569,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6964 + // line internal/php5/php5.y:6958 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9591,7 +9585,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6978 + // line internal/php5/php5.y:6972 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9605,7 +9599,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6990 + // line internal/php5/php5.y:6984 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9619,7 +9613,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7005 + // line internal/php5/php5.y:6999 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9627,7 +9621,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7011 + // line internal/php5/php5.y:7005 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9638,7 +9632,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7023 + // line internal/php5/php5.y:7017 { yyVAL.node = yyDollar[1].node @@ -9646,7 +9640,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7029 + // line internal/php5/php5.y:7023 { yyVAL.node = yyDollar[1].node @@ -9654,7 +9648,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7038 + // line internal/php5/php5.y:7032 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9672,7 +9666,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7054 + // line internal/php5/php5.y:7048 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9690,7 +9684,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7073 + // line internal/php5/php5.y:7067 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9708,7 +9702,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7092 + // line internal/php5/php5.y:7086 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index eade1dc..44430ec 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -364,17 +364,14 @@ top_statement: } | T_HALT_COMPILER '(' ')' ';' { - $$ = &ast.StmtHaltCompiler{ast.Node{}, } + $$ = &ast.StmtHaltCompiler{ast.Node{}} // save position $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -831,17 +828,14 @@ inner_statement: } | T_HALT_COMPILER '(' ')' ';' { - $$ = &ast.StmtHaltCompiler{ast.Node{}, } + $$ = &ast.StmtHaltCompiler{ast.Node{}} // save position $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index f5e4667..e8f3682 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5603 +// line internal/php7/php7.y:5597 // line yacctab:1 var yyExca = [...]int{ @@ -2740,16 +2740,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:479 + // line internal/php7/php7.y:476 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2768,7 +2765,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:496 + // line internal/php7/php7.y:493 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2787,7 +2784,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:513 + // line internal/php7/php7.y:510 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2803,7 +2800,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:527 + // line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ast.Node{}, yyDollar[2].node} @@ -2818,7 +2815,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:540 + // line internal/php7/php7.y:537 { useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, yyDollar[3].node} yyVAL.node = &ast.StmtUse{ast.Node{}, useType} @@ -2835,7 +2832,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:555 + // line internal/php7/php7.y:552 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, useList} @@ -2852,7 +2849,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:570 + // line internal/php7/php7.y:567 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, useList} @@ -2871,7 +2868,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:587 + // line internal/php7/php7.y:584 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2887,7 +2884,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:604 + // line internal/php7/php7.y:601 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2901,7 +2898,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:616 + // line internal/php7/php7.y:613 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2915,7 +2912,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:631 + // line internal/php7/php7.y:628 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} @@ -2938,7 +2935,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:652 + // line internal/php7/php7.y:649 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} @@ -2962,7 +2959,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:677 + // line internal/php7/php7.y:674 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} @@ -2985,7 +2982,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:698 + // line internal/php7/php7.y:695 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} @@ -3009,19 +3006,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:723 + // line internal/php7/php7.y:720 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:727 + // line internal/php7/php7.y:724 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:734 + // line internal/php7/php7.y:731 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3032,7 +3029,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:743 + // line internal/php7/php7.y:740 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3040,7 +3037,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:752 + // line internal/php7/php7.y:749 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3051,7 +3048,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:761 + // line internal/php7/php7.y:758 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3059,7 +3056,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:770 + // line internal/php7/php7.y:767 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3070,7 +3067,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:779 + // line internal/php7/php7.y:776 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3078,7 +3075,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:788 + // line internal/php7/php7.y:785 { yyVAL.node = yyDollar[1].node @@ -3086,7 +3083,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:794 + // line internal/php7/php7.y:791 { yyVAL.node = &ast.StmtUseType{ast.Node{}, yyDollar[1].node, yyDollar[2].node} @@ -3097,7 +3094,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:806 + // line internal/php7/php7.y:803 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -3110,7 +3107,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:817 + // line internal/php7/php7.y:814 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -3129,7 +3126,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 + // line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node @@ -3137,7 +3134,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:843 + // line internal/php7/php7.y:840 { yyVAL.node = yyDollar[2].node @@ -3148,7 +3145,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:855 + // line internal/php7/php7.y:852 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3159,7 +3156,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:864 + // line internal/php7/php7.y:861 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3167,7 +3164,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:873 + // line internal/php7/php7.y:870 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3182,7 +3179,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:886 + // line internal/php7/php7.y:883 { yyVAL.list = []ast.Vertex{} @@ -3190,7 +3187,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:895 + // line internal/php7/php7.y:892 { // error yyVAL.node = nil @@ -3199,7 +3196,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:902 + // line internal/php7/php7.y:899 { yyVAL.node = yyDollar[1].node @@ -3207,7 +3204,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:908 + // line internal/php7/php7.y:905 { yyVAL.node = yyDollar[1].node @@ -3215,7 +3212,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:914 + // line internal/php7/php7.y:911 { yyVAL.node = yyDollar[1].node @@ -3223,7 +3220,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:920 + // line internal/php7/php7.y:917 { yyVAL.node = yyDollar[1].node @@ -3231,7 +3228,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:926 + // line internal/php7/php7.y:923 { yyVAL.node = yyDollar[1].node @@ -3239,7 +3236,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:932 + // line internal/php7/php7.y:929 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3248,16 +3245,13 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.HaltCompiller, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.OpenParenthesisToken, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:950 + // line internal/php7/php7.y:944 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3272,7 +3266,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:963 + // line internal/php7/php7.y:957 { yyVAL.node = yyDollar[1].node @@ -3280,7 +3274,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:969 + // line internal/php7/php7.y:963 { yyVAL.node = yyDollar[1].node @@ -3288,7 +3282,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:975 + // line internal/php7/php7.y:969 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3311,7 +3305,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:996 + // line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3330,7 +3324,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1013 + // line internal/php7/php7.y:1007 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3359,7 +3353,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1040 + // line internal/php7/php7.y:1034 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3384,7 +3378,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1063 + // line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3400,7 +3394,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1077 + // line internal/php7/php7.y:1071 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3416,7 +3410,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1091 + // line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3432,7 +3426,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1105 + // line internal/php7/php7.y:1099 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3448,7 +3442,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1119 + // line internal/php7/php7.y:1113 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3464,7 +3458,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1133 + // line internal/php7/php7.y:1127 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3481,7 +3475,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1148 + // line internal/php7/php7.y:1142 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3495,7 +3489,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1160 + // line internal/php7/php7.y:1154 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3511,7 +3505,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1174 + // line internal/php7/php7.y:1168 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3533,7 +3527,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1194 + // line internal/php7/php7.y:1188 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3559,7 +3553,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1219 + // line internal/php7/php7.y:1213 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3588,7 +3582,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1246 + // line internal/php7/php7.y:1240 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3605,7 +3599,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1261 + // line internal/php7/php7.y:1255 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3620,7 +3614,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1274 + // line internal/php7/php7.y:1268 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3639,7 +3633,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1291 + // line internal/php7/php7.y:1285 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3655,7 +3649,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1305 + // line internal/php7/php7.y:1299 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3674,7 +3668,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1322 + // line internal/php7/php7.y:1316 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3691,7 +3685,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1339 + // line internal/php7/php7.y:1333 { yyVAL.list = []ast.Vertex{} @@ -3699,7 +3693,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1345 + // line internal/php7/php7.y:1339 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3723,7 +3717,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1369 + // line internal/php7/php7.y:1363 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3731,7 +3725,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1375 + // line internal/php7/php7.y:1369 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3742,7 +3736,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1387 + // line internal/php7/php7.y:1381 { yyVAL.node = nil @@ -3750,7 +3744,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1393 + // line internal/php7/php7.y:1387 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3766,7 +3760,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1410 + // line internal/php7/php7.y:1404 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3774,7 +3768,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1416 + // line internal/php7/php7.y:1410 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3785,7 +3779,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1428 + // line internal/php7/php7.y:1422 { yyVAL.node = yyDollar[1].node @@ -3793,7 +3787,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1431 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3825,31 +3819,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1470 + // line internal/php7/php7.y:1464 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1474 + // line internal/php7/php7.y:1468 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1481 + // line internal/php7/php7.y:1475 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1485 + // line internal/php7/php7.y:1479 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1486 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3869,7 +3863,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1510 + // line internal/php7/php7.y:1504 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3888,7 +3882,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1530 + // line internal/php7/php7.y:1524 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3896,7 +3890,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1536 + // line internal/php7/php7.y:1530 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3904,7 +3898,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1545 + // line internal/php7/php7.y:1539 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3918,7 +3912,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1557 + // line internal/php7/php7.y:1551 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3932,7 +3926,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1566 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3951,7 +3945,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1592 + // line internal/php7/php7.y:1586 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3970,7 +3964,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1612 + // line internal/php7/php7.y:1606 { yyVAL.ClassExtends = nil @@ -3978,7 +3972,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1618 + // line internal/php7/php7.y:1612 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3992,7 +3986,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1633 + // line internal/php7/php7.y:1627 { yyVAL.InterfaceExtends = nil @@ -4000,7 +3994,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1639 + // line internal/php7/php7.y:1633 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4014,7 +4008,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1648 { yyVAL.ClassImplements = nil @@ -4022,7 +4016,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1654 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4036,7 +4030,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1669 { yyVAL.node = yyDollar[1].node @@ -4044,7 +4038,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1681 + // line internal/php7/php7.y:1675 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4058,7 +4052,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1693 + // line internal/php7/php7.y:1687 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4074,7 +4068,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1707 + // line internal/php7/php7.y:1701 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4089,7 +4083,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1723 + // line internal/php7/php7.y:1717 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4100,7 +4094,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1732 + // line internal/php7/php7.y:1726 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4119,7 +4113,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1752 + // line internal/php7/php7.y:1746 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4130,7 +4124,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1761 + // line internal/php7/php7.y:1755 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4149,7 +4143,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1781 + // line internal/php7/php7.y:1775 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4160,7 +4154,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1790 + // line internal/php7/php7.y:1784 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4179,7 +4173,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1810 + // line internal/php7/php7.y:1804 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4196,7 +4190,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1825 + // line internal/php7/php7.y:1819 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4214,7 +4208,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1841 + // line internal/php7/php7.y:1835 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4233,7 +4227,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1858 + // line internal/php7/php7.y:1852 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4254,7 +4248,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1880 + // line internal/php7/php7.y:1874 { yyVAL.list = []ast.Vertex{} @@ -4262,7 +4256,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1886 + // line internal/php7/php7.y:1880 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4279,7 +4273,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1901 + // line internal/php7/php7.y:1895 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4296,19 +4290,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1919 + // line internal/php7/php7.y:1913 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1923 + // line internal/php7/php7.y:1917 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1930 + // line internal/php7/php7.y:1924 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4319,7 +4313,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1939 + // line internal/php7/php7.y:1933 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4338,7 +4332,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1959 + // line internal/php7/php7.y:1953 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4354,7 +4348,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1973 + // line internal/php7/php7.y:1967 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4374,7 +4368,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1994 + // line internal/php7/php7.y:1988 { yyVAL.node = yyDollar[1].node @@ -4382,7 +4376,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2000 + // line internal/php7/php7.y:1994 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4400,7 +4394,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2019 + // line internal/php7/php7.y:2013 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4419,7 +4413,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2036 + // line internal/php7/php7.y:2030 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4441,7 +4435,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2053 { yyVAL.node = yyDollar[1].node @@ -4457,7 +4451,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2073 + // line internal/php7/php7.y:2067 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4481,7 +4475,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2092 { yyVAL.list = yyDollar[1].list @@ -4489,7 +4483,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2104 + // line internal/php7/php7.y:2098 { yyVAL.list = nil @@ -4497,7 +4491,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2113 + // line internal/php7/php7.y:2107 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4505,7 +4499,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2119 + // line internal/php7/php7.y:2113 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4516,7 +4510,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2131 + // line internal/php7/php7.y:2125 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4554,7 +4548,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2167 + // line internal/php7/php7.y:2161 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4593,7 +4587,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2201 { yyVAL.node = nil @@ -4601,7 +4595,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2213 + // line internal/php7/php7.y:2207 { yyVAL.node = yyDollar[1].node @@ -4609,7 +4603,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2216 { yyVAL.node = yyDollar[1].node @@ -4617,7 +4611,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2228 + // line internal/php7/php7.y:2222 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4631,7 +4625,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2237 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4645,7 +4639,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2255 + // line internal/php7/php7.y:2249 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4659,7 +4653,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2267 + // line internal/php7/php7.y:2261 { yyVAL.node = yyDollar[1].node @@ -4667,7 +4661,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2276 + // line internal/php7/php7.y:2270 { yyVAL.node = nil @@ -4675,7 +4669,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2282 + // line internal/php7/php7.y:2276 { yyVAL.node = yyDollar[2].node @@ -4686,7 +4680,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2294 + // line internal/php7/php7.y:2288 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4701,7 +4695,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2307 + // line internal/php7/php7.y:2301 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4720,7 +4714,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2321 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4728,7 +4722,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2327 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4739,7 +4733,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2345 + // line internal/php7/php7.y:2339 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4753,7 +4747,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2357 + // line internal/php7/php7.y:2351 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4767,7 +4761,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2372 + // line internal/php7/php7.y:2366 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4778,7 +4772,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2381 + // line internal/php7/php7.y:2375 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4786,7 +4780,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2390 + // line internal/php7/php7.y:2384 { yyVAL.node = yyDollar[1].node @@ -4794,7 +4788,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2399 + // line internal/php7/php7.y:2393 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4805,7 +4799,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2402 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4813,7 +4807,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2417 + // line internal/php7/php7.y:2411 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4831,7 +4825,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2433 + // line internal/php7/php7.y:2427 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4850,7 +4844,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2453 + // line internal/php7/php7.y:2447 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4858,7 +4852,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2459 + // line internal/php7/php7.y:2453 { yyVAL.list = []ast.Vertex{} @@ -4866,7 +4860,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2468 + // line internal/php7/php7.y:2462 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4882,7 +4876,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2482 + // line internal/php7/php7.y:2476 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4903,7 +4897,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2501 + // line internal/php7/php7.y:2495 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4917,7 +4911,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2513 + // line internal/php7/php7.y:2507 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4950,7 +4944,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2547 + // line internal/php7/php7.y:2541 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4958,7 +4952,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2553 + // line internal/php7/php7.y:2547 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4969,7 +4963,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2565 + // line internal/php7/php7.y:2559 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4983,7 +4977,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2578 + // line internal/php7/php7.y:2572 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4997,7 +4991,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2590 + // line internal/php7/php7.y:2584 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5011,7 +5005,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2605 + // line internal/php7/php7.y:2599 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5019,7 +5013,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2605 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5027,7 +5021,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2620 + // line internal/php7/php7.y:2614 { yyVAL.node = yyDollar[1].node @@ -5039,7 +5033,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2630 + // line internal/php7/php7.y:2624 { yyVAL.node = yyDollar[1].node @@ -5051,7 +5045,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2643 + // line internal/php7/php7.y:2637 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5066,7 +5060,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2659 + // line internal/php7/php7.y:2653 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5084,7 +5078,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2675 + // line internal/php7/php7.y:2669 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5102,7 +5096,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2685 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5120,7 +5114,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2707 + // line internal/php7/php7.y:2701 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5135,7 +5129,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2723 + // line internal/php7/php7.y:2717 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5151,7 +5145,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2737 + // line internal/php7/php7.y:2731 { yyVAL.node = yyDollar[1].node @@ -5159,7 +5153,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2746 + // line internal/php7/php7.y:2740 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5177,7 +5171,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2765 + // line internal/php7/php7.y:2759 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5192,7 +5186,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2778 + // line internal/php7/php7.y:2772 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5207,7 +5201,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2794 + // line internal/php7/php7.y:2788 { yyVAL.list = yyDollar[1].list @@ -5215,7 +5209,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2800 + // line internal/php7/php7.y:2794 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5230,7 +5224,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2816 + // line internal/php7/php7.y:2810 { yyVAL.list = nil @@ -5238,7 +5232,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2822 + // line internal/php7/php7.y:2816 { yyVAL.list = yyDollar[1].list @@ -5246,7 +5240,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2831 + // line internal/php7/php7.y:2825 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5254,7 +5248,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2837 + // line internal/php7/php7.y:2831 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5262,7 +5256,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2846 + // line internal/php7/php7.y:2840 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5276,7 +5270,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2858 + // line internal/php7/php7.y:2852 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5290,7 +5284,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2864 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5304,7 +5298,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2882 + // line internal/php7/php7.y:2876 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5318,7 +5312,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2894 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5332,7 +5326,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2906 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5346,7 +5340,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2921 + // line internal/php7/php7.y:2915 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5357,7 +5351,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2930 + // line internal/php7/php7.y:2924 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5365,7 +5359,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2939 + // line internal/php7/php7.y:2933 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5383,7 +5377,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2949 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5402,7 +5396,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2975 + // line internal/php7/php7.y:2969 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5413,7 +5407,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2984 + // line internal/php7/php7.y:2978 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5421,7 +5415,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2993 + // line internal/php7/php7.y:2987 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5438,7 +5432,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3011 + // line internal/php7/php7.y:3005 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5455,7 +5449,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3029 + // line internal/php7/php7.y:3023 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5466,7 +5460,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3038 + // line internal/php7/php7.y:3032 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5474,7 +5468,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3047 + // line internal/php7/php7.y:3041 { yyVAL.node = yyDollar[1].node @@ -5482,7 +5476,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3056 + // line internal/php7/php7.y:3050 { yyVAL.list = nil @@ -5490,7 +5484,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3056 { yyVAL.list = yyDollar[1].list @@ -5498,7 +5492,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3065 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5509,7 +5503,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3074 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5517,7 +5511,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3083 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5537,7 +5531,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3110 + // line internal/php7/php7.y:3104 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5554,7 +5548,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3125 + // line internal/php7/php7.y:3119 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5568,7 +5562,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3140 + // line internal/php7/php7.y:3134 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5587,7 +5581,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3157 + // line internal/php7/php7.y:3151 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5605,7 +5599,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3173 + // line internal/php7/php7.y:3167 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5620,7 +5614,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5636,7 +5630,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3200 + // line internal/php7/php7.y:3194 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5650,7 +5644,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3212 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5659,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3225 + // line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5674,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3238 + // line internal/php7/php7.y:3232 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5695,7 +5689,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5710,7 +5704,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3264 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5725,7 +5719,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5740,7 +5734,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3290 + // line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5755,7 +5749,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3303 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5770,7 +5764,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3316 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5785,7 +5779,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3329 + // line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5800,7 +5794,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3342 + // line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5815,7 +5809,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5830,7 +5824,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3368 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5839,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3381 + // line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5860,7 +5854,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3394 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5874,7 +5868,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3406 + // line internal/php7/php7.y:3400 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5889,7 +5883,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3419 + // line internal/php7/php7.y:3413 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5903,7 +5897,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5918,7 +5912,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3444 + // line internal/php7/php7.y:3438 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5933,7 +5927,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3457 + // line internal/php7/php7.y:3451 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5948,7 +5942,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3470 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5963,7 +5957,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3483 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5978,7 +5972,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3496 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5993,7 +5987,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6008,7 +6002,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3522 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6023,7 +6017,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3535 + // line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6038,7 +6032,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3548 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6053,7 +6047,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3561 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6068,7 +6062,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3574 + // line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6083,7 +6077,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3587 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6098,7 +6092,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3600 + // line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6113,7 +6107,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3613 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6128,7 +6122,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3626 + // line internal/php7/php7.y:3620 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6143,7 +6137,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3639 + // line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6158,7 +6152,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3652 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6172,7 +6166,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3664 + // line internal/php7/php7.y:3658 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6186,7 +6180,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3676 + // line internal/php7/php7.y:3670 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6200,7 +6194,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3688 + // line internal/php7/php7.y:3682 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6214,7 +6208,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3700 + // line internal/php7/php7.y:3694 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6229,7 +6223,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3713 + // line internal/php7/php7.y:3707 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6244,7 +6238,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3726 + // line internal/php7/php7.y:3720 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6259,7 +6253,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3739 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6275,7 +6269,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3747 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6290,7 +6284,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3766 + // line internal/php7/php7.y:3760 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6305,7 +6299,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3779 + // line internal/php7/php7.y:3773 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6320,7 +6314,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3792 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6335,7 +6329,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3805 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6350,7 +6344,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6365,7 +6359,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3831 + // line internal/php7/php7.y:3825 { yyVAL.node = yyDollar[2].node @@ -6377,7 +6371,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3835 { yyVAL.node = yyDollar[1].node @@ -6385,7 +6379,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3841 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6401,7 +6395,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3861 + // line internal/php7/php7.y:3855 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6417,7 +6411,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3869 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6432,7 +6426,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3888 + // line internal/php7/php7.y:3882 { yyVAL.node = yyDollar[1].node @@ -6440,7 +6434,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3894 + // line internal/php7/php7.y:3888 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6455,7 +6449,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3907 + // line internal/php7/php7.y:3901 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6470,7 +6464,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3920 + // line internal/php7/php7.y:3914 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6485,7 +6479,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6500,7 +6494,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6515,7 +6509,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6530,7 +6524,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3972 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6545,7 +6539,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3985 + // line internal/php7/php7.y:3979 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6574,7 +6568,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4012 + // line internal/php7/php7.y:4006 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6588,7 +6582,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4024 + // line internal/php7/php7.y:4018 { yyVAL.node = yyDollar[1].node @@ -6596,7 +6590,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4030 + // line internal/php7/php7.y:4024 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6610,7 +6604,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4036 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6624,7 +6618,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4048 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6638,7 +6632,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4060 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6652,7 +6646,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4078 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6667,7 +6661,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4091 + // line internal/php7/php7.y:4085 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6681,7 +6675,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4103 + // line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node @@ -6689,7 +6683,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4109 + // line internal/php7/php7.y:4103 { yyVAL.node = yyDollar[2].node @@ -6712,7 +6706,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4132 + // line internal/php7/php7.y:4126 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6745,7 +6739,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4161 + // line internal/php7/php7.y:4155 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6773,19 +6767,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4193 + // line internal/php7/php7.y:4187 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4191 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4204 + // line internal/php7/php7.y:4198 { yyVAL.ClosureUse = nil @@ -6793,7 +6787,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4210 + // line internal/php7/php7.y:4204 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6809,7 +6803,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4227 + // line internal/php7/php7.y:4221 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6820,7 +6814,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4230 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6828,7 +6822,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4245 + // line internal/php7/php7.y:4239 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6844,7 +6838,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4259 + // line internal/php7/php7.y:4253 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6863,7 +6857,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4279 + // line internal/php7/php7.y:4273 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6877,7 +6871,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4291 + // line internal/php7/php7.y:4285 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6892,7 +6886,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4298 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6907,7 +6901,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4317 + // line internal/php7/php7.y:4311 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6921,7 +6915,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4332 + // line internal/php7/php7.y:4326 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6935,7 +6929,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4344 + // line internal/php7/php7.y:4338 { yyVAL.node = yyDollar[1].node @@ -6943,7 +6937,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4347 { yyVAL.node = yyDollar[1].node @@ -6951,7 +6945,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4359 + // line internal/php7/php7.y:4353 { yyVAL.node = yyDollar[1].node @@ -6959,7 +6953,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4362 { yyVAL.node = nil @@ -6967,7 +6961,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4374 + // line internal/php7/php7.y:4368 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6982,7 +6976,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4390 + // line internal/php7/php7.y:4384 { yyVAL.list = []ast.Vertex{} @@ -6990,7 +6984,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4396 + // line internal/php7/php7.y:4390 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7002,7 +6996,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4406 + // line internal/php7/php7.y:4400 { yyVAL.list = yyDollar[1].list @@ -7010,7 +7004,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4415 + // line internal/php7/php7.y:4409 { yyVAL.node = nil @@ -7018,7 +7012,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4421 + // line internal/php7/php7.y:4415 { yyVAL.node = yyDollar[1].node @@ -7026,7 +7020,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4430 + // line internal/php7/php7.y:4424 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7042,7 +7036,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4444 + // line internal/php7/php7.y:4438 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7057,7 +7051,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4457 + // line internal/php7/php7.y:4451 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7071,7 +7065,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4472 + // line internal/php7/php7.y:4466 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7085,7 +7079,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4478 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7099,7 +7093,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4496 + // line internal/php7/php7.y:4490 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7113,7 +7107,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4508 + // line internal/php7/php7.y:4502 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7127,7 +7121,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4520 + // line internal/php7/php7.y:4514 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7141,7 +7135,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4532 + // line internal/php7/php7.y:4526 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7155,7 +7149,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4544 + // line internal/php7/php7.y:4538 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7169,7 +7163,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4556 + // line internal/php7/php7.y:4550 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7183,7 +7177,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4568 + // line internal/php7/php7.y:4562 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7197,7 +7191,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4580 + // line internal/php7/php7.y:4574 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7211,7 +7205,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4592 + // line internal/php7/php7.y:4586 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7227,7 +7221,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4606 + // line internal/php7/php7.y:4600 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7241,7 +7235,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4618 + // line internal/php7/php7.y:4612 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7255,7 +7249,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4630 + // line internal/php7/php7.y:4624 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7269,7 +7263,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4642 + // line internal/php7/php7.y:4636 { yyVAL.node = yyDollar[1].node @@ -7277,7 +7271,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4648 + // line internal/php7/php7.y:4642 { yyVAL.node = yyDollar[1].node @@ -7285,7 +7279,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4657 + // line internal/php7/php7.y:4651 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7299,7 +7293,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4669 + // line internal/php7/php7.y:4663 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7317,7 +7311,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4685 + // line internal/php7/php7.y:4679 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7335,7 +7329,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4704 + // line internal/php7/php7.y:4698 { yyVAL.node = yyDollar[1].node @@ -7343,7 +7337,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4710 + // line internal/php7/php7.y:4704 { yyVAL.node = yyDollar[1].node @@ -7351,7 +7345,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4719 + // line internal/php7/php7.y:4713 { yyVAL.node = nil @@ -7359,7 +7353,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4725 + // line internal/php7/php7.y:4719 { yyVAL.node = yyDollar[1].node @@ -7367,7 +7361,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4734 + // line internal/php7/php7.y:4728 { yyVAL.node = yyDollar[1].node @@ -7375,7 +7369,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4737 { yyVAL.node = yyDollar[1].node @@ -7383,7 +7377,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4743 { yyVAL.node = yyDollar[2].node @@ -7395,7 +7389,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4759 + // line internal/php7/php7.y:4753 { yyVAL.node = yyDollar[1].node @@ -7403,7 +7397,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4768 + // line internal/php7/php7.y:4762 { yyVAL.node = yyDollar[1].node @@ -7411,7 +7405,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4774 + // line internal/php7/php7.y:4768 { yyVAL.node = yyDollar[2].node @@ -7423,7 +7417,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4784 + // line internal/php7/php7.y:4778 { yyVAL.node = yyDollar[1].node @@ -7431,7 +7425,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4793 + // line internal/php7/php7.y:4787 { yyVAL.node = yyDollar[1].node @@ -7439,7 +7433,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4799 + // line internal/php7/php7.y:4793 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7454,7 +7448,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4812 + // line internal/php7/php7.y:4806 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7469,7 +7463,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4825 + // line internal/php7/php7.y:4819 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7484,7 +7478,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4838 + // line internal/php7/php7.y:4832 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7499,7 +7493,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4851 + // line internal/php7/php7.y:4845 { yyVAL.node = yyDollar[1].node @@ -7507,7 +7501,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4860 + // line internal/php7/php7.y:4854 { yyVAL.node = yyDollar[1].node @@ -7515,7 +7509,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4866 + // line internal/php7/php7.y:4860 { yyVAL.node = yyDollar[1].node @@ -7523,7 +7517,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4872 + // line internal/php7/php7.y:4866 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7538,7 +7532,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4888 + // line internal/php7/php7.y:4882 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7554,7 +7548,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4902 + // line internal/php7/php7.y:4896 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7570,7 +7564,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4916 + // line internal/php7/php7.y:4910 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7584,7 +7578,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4931 + // line internal/php7/php7.y:4925 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7599,7 +7593,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4944 + // line internal/php7/php7.y:4938 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7614,7 +7608,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4960 + // line internal/php7/php7.y:4954 { yyVAL.node = yyDollar[1].node @@ -7622,7 +7616,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4966 + // line internal/php7/php7.y:4960 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7637,7 +7631,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4979 + // line internal/php7/php7.y:4973 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7652,7 +7646,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4992 + // line internal/php7/php7.y:4986 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7667,7 +7661,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5005 + // line internal/php7/php7.y:4999 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7682,7 +7676,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5018 + // line internal/php7/php7.y:5012 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7697,7 +7691,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5034 + // line internal/php7/php7.y:5028 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7711,7 +7705,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5046 + // line internal/php7/php7.y:5040 { yyVAL.node = yyDollar[2].node @@ -7723,7 +7717,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5056 + // line internal/php7/php7.y:5050 { yyVAL.node = yyDollar[1].node @@ -7731,7 +7725,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5065 + // line internal/php7/php7.y:5059 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7745,7 +7739,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5077 + // line internal/php7/php7.y:5071 { yyVAL.node = yyDollar[2].node @@ -7757,7 +7751,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5087 + // line internal/php7/php7.y:5081 { yyVAL.node = yyDollar[1].node @@ -7765,7 +7759,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5096 + // line internal/php7/php7.y:5090 { yyVAL.list = yyDollar[1].list @@ -7773,7 +7767,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5105 + // line internal/php7/php7.y:5099 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7781,7 +7775,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5111 + // line internal/php7/php7.y:5105 { yyVAL.node = yyDollar[1].node @@ -7789,7 +7783,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5120 + // line internal/php7/php7.y:5114 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7804,7 +7798,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5133 + // line internal/php7/php7.y:5127 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7816,7 +7810,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5146 + // line internal/php7/php7.y:5140 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7831,7 +7825,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5159 + // line internal/php7/php7.y:5153 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7845,7 +7839,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5171 + // line internal/php7/php7.y:5165 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7863,7 +7857,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5187 + // line internal/php7/php7.y:5181 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7879,7 +7873,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5201 + // line internal/php7/php7.y:5195 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7893,7 +7887,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5213 + // line internal/php7/php7.y:5207 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7914,7 +7908,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5232 + // line internal/php7/php7.y:5226 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7933,7 +7927,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5252 + // line internal/php7/php7.y:5246 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7941,7 +7935,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5258 + // line internal/php7/php7.y:5252 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7956,7 +7950,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5271 + // line internal/php7/php7.y:5265 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7964,7 +7958,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5277 + // line internal/php7/php7.y:5271 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7979,7 +7973,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5293 + // line internal/php7/php7.y:5287 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7995,7 +7989,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5307 + // line internal/php7/php7.y:5301 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8014,7 +8008,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5324 + // line internal/php7/php7.y:5318 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8035,7 +8029,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5343 + // line internal/php7/php7.y:5337 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8052,7 +8046,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5358 + // line internal/php7/php7.y:5352 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8071,7 +8065,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5375 + // line internal/php7/php7.y:5369 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8092,7 +8086,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5394 + // line internal/php7/php7.y:5388 { yyVAL.node = yyDollar[2].node @@ -8104,7 +8098,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5407 + // line internal/php7/php7.y:5401 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8118,7 +8112,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5419 + // line internal/php7/php7.y:5413 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8137,7 +8131,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5436 + // line internal/php7/php7.y:5430 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8165,7 +8159,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5462 + // line internal/php7/php7.y:5456 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8181,7 +8175,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5479 + // line internal/php7/php7.y:5473 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8201,7 +8195,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5497 + // line internal/php7/php7.y:5491 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8217,7 +8211,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5511 + // line internal/php7/php7.y:5505 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8231,7 +8225,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5523 + // line internal/php7/php7.y:5517 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8245,7 +8239,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5535 + // line internal/php7/php7.y:5529 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8261,7 +8255,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5549 + // line internal/php7/php7.y:5543 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8275,7 +8269,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5561 + // line internal/php7/php7.y:5555 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8289,7 +8283,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5576 + // line internal/php7/php7.y:5570 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8297,7 +8291,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5582 + // line internal/php7/php7.y:5576 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8308,7 +8302,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5594 + // line internal/php7/php7.y:5588 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 1fb33a9..c17bf65 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -468,10 +468,7 @@ top_statement: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -930,17 +927,14 @@ inner_statement: } | T_HALT_COMPILER '(' ')' ';' { - $$ = &ast.StmtHaltCompiler{ast.Node{}, } + $$ = &ast.StmtHaltCompiler{ast.Node{}} // save position $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.HaltCompiller, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.OpenParenthesisToken, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index f79c8e7..4475a12 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2753,18 +2753,8 @@ func (p *Printer) printStmtHaltCompiler(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "__halt_compiler") - p.printFreeFloating(nn, token.HaltCompiller) - io.WriteString(p.w, "(") - p.printFreeFloating(nn, token.OpenParenthesisToken) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, token.CloseParenthesisToken) - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) + p.printFreeFloatingOrDefault(nn, token.End, "();") } func (p *Printer) printStmtIf(n ast.Vertex) { diff --git a/pkg/token/position.go b/pkg/token/position.go index c74e558..09559e8 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -25,7 +25,6 @@ const ( True Cond - HaltCompiller Namespace Static Class diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go index c3c6eab..5a62283 100644 --- a/pkg/token/position_string.go +++ b/pkg/token/position_string.go @@ -28,56 +28,55 @@ func _() { _ = x[IncExpr-17] _ = x[True-18] _ = x[Cond-19] - _ = x[HaltCompiller-20] - _ = x[Namespace-21] - _ = x[Static-22] - _ = x[Class-23] - _ = x[Use-24] - _ = x[While-25] - _ = x[For-26] - _ = x[Switch-27] - _ = x[Foreach-28] - _ = x[Declare-29] - _ = x[Label-30] - _ = x[Finally-31] - _ = x[List-32] - _ = x[Default-33] - _ = x[If-34] - _ = x[ElseIf-35] - _ = x[Else-36] - _ = x[Function-37] - _ = x[Alias-38] - _ = x[Equal-39] - _ = x[Exit-40] - _ = x[Array-41] - _ = x[Isset-42] - _ = x[Empty-43] - _ = x[Eval-44] - _ = x[Echo-45] - _ = x[Try-46] - _ = x[Catch-47] - _ = x[Unset-48] - _ = x[Stmts-49] - _ = x[VarList-50] - _ = x[ConstList-51] - _ = x[NameList-52] - _ = x[ParamList-53] - _ = x[ModifierList-54] - _ = x[ArrayPairList-55] - _ = x[CaseListStart-56] - _ = x[CaseListEnd-57] - _ = x[ArgumentList-58] - _ = x[PropertyList-59] - _ = x[ParameterList-60] - _ = x[AdaptationList-61] - _ = x[LexicalVarList-62] - _ = x[OpenParenthesisToken-63] - _ = x[CloseParenthesisToken-64] + _ = x[Namespace-20] + _ = x[Static-21] + _ = x[Class-22] + _ = x[Use-23] + _ = x[While-24] + _ = x[For-25] + _ = x[Switch-26] + _ = x[Foreach-27] + _ = x[Declare-28] + _ = x[Label-29] + _ = x[Finally-30] + _ = x[List-31] + _ = x[Default-32] + _ = x[If-33] + _ = x[ElseIf-34] + _ = x[Else-35] + _ = x[Function-36] + _ = x[Alias-37] + _ = x[Equal-38] + _ = x[Exit-39] + _ = x[Array-40] + _ = x[Isset-41] + _ = x[Empty-42] + _ = x[Eval-43] + _ = x[Echo-44] + _ = x[Try-45] + _ = x[Catch-46] + _ = x[Unset-47] + _ = x[Stmts-48] + _ = x[VarList-49] + _ = x[ConstList-50] + _ = x[NameList-51] + _ = x[ParamList-52] + _ = x[ModifierList-53] + _ = x[ArrayPairList-54] + _ = x[CaseListStart-55] + _ = x[CaseListEnd-56] + _ = x[ArgumentList-57] + _ = x[PropertyList-58] + _ = x[ParameterList-59] + _ = x[AdaptationList-60] + _ = x[LexicalVarList-61] + _ = x[OpenParenthesisToken-62] + _ = x[CloseParenthesisToken-63] } -const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondHaltCompillerNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken" +const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken" -var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 137, 146, 152, 157, 160, 165, 168, 174, 181, 188, 193, 200, 204, 211, 213, 219, 223, 231, 236, 241, 245, 250, 255, 260, 264, 268, 271, 276, 281, 286, 293, 302, 310, 319, 331, 344, 357, 368, 380, 392, 405, 419, 433, 453, 474} +var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 144, 147, 152, 155, 161, 168, 175, 180, 187, 191, 198, 200, 206, 210, 218, 223, 228, 232, 237, 242, 247, 251, 255, 258, 263, 268, 273, 280, 289, 297, 306, 318, 331, 344, 355, 367, 379, 392, 406, 420, 440, 461} func (i Position) String() string { if i < 0 || i >= Position(len(_Position_index)-1) { From fd5d891037f05f0238e3a5d0ae366e883f2e9eb5 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 9 Aug 2020 00:56:21 +0200 Subject: [PATCH 041/140] [refactoring] add Parser nodes for `use` --- internal/php5/parser_test.go | 276 +++++- internal/php5/php5.go | 1128 ++++++++++++------------ internal/php5/php5.y | 78 +- internal/php5/php5_test.go | 21 +- internal/php7/parser_test.go | 300 ++++++- internal/php7/php7.go | 914 +++++++++---------- internal/php7/php7.y | 78 +- internal/php7/php7_test.go | 21 +- pkg/ast/ast.go | 4 + pkg/ast/node.go | 27 + pkg/ast/traverser/dfs.go | 36 + pkg/ast/visitor/dump.go | 18 + pkg/ast/visitor/filter_parser_nodes.go | 42 + pkg/ast/visitor/null.go | 12 + pkg/printer/printer.go | 78 +- 15 files changed, 1926 insertions(+), 1107 deletions(-) create mode 100644 pkg/ast/visitor/filter_parser_nodes.go diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index b210323..6d72de0 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -8,6 +8,8 @@ import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/position" ) @@ -62,6 +64,7 @@ func TestIdentifier(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -845,6 +848,7 @@ func TestPhp5ArgumentNode(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1658,6 +1662,7 @@ func TestPhp5ParameterNode(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1680,6 +1685,7 @@ func TestCommentEndFile(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1758,6 +1764,7 @@ func TestName(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1834,6 +1841,7 @@ func TestFullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1910,6 +1918,7 @@ func TestRelative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1989,6 +1998,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2066,6 +2076,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2154,6 +2165,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2252,6 +2264,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2361,6 +2374,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2438,6 +2452,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2536,6 +2551,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2644,6 +2660,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2736,6 +2753,7 @@ LBL; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2828,6 +2846,7 @@ LBL; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2888,6 +2907,7 @@ LBL; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2934,6 +2954,7 @@ CAD; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2994,6 +3015,7 @@ CAD; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3039,6 +3061,7 @@ func TestScalarMagicConstant(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3083,6 +3106,7 @@ func TestScalarNumber_LNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3127,6 +3151,7 @@ func TestScalarNumber_DNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3171,6 +3196,7 @@ func TestScalarNumber_Float(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3215,6 +3241,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3259,6 +3286,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3303,6 +3331,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3347,6 +3376,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3391,6 +3421,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3435,6 +3466,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3481,6 +3513,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3525,6 +3558,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3571,6 +3605,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3641,6 +3676,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3754,6 +3790,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3844,6 +3881,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4022,6 +4060,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4144,6 +4183,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4223,6 +4263,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4372,6 +4413,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4475,6 +4517,7 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4590,6 +4633,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4635,6 +4679,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4693,6 +4738,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4784,6 +4830,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4877,6 +4924,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4993,6 +5041,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5092,6 +5141,7 @@ func TestStmtConstList(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5158,6 +5208,7 @@ func TestStmtContinue_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5235,6 +5286,7 @@ func TestStmtContinue_Light(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5312,6 +5364,7 @@ func TestStmtContinue(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5389,6 +5442,7 @@ func TestStmtDeclare(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5499,6 +5553,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5578,6 +5633,7 @@ func TestStmtDeclare_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5633,6 +5689,7 @@ func TestStmtDo(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5700,6 +5757,7 @@ func TestStmtEcho(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5756,6 +5814,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5800,6 +5859,7 @@ func TestStmtExpression(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5996,6 +6056,7 @@ func TestStmtFor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6117,6 +6178,7 @@ func TestStmtFor_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6203,6 +6265,7 @@ func TestStmtForeach(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6279,6 +6342,7 @@ func TestStmtForeach_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6365,6 +6429,7 @@ func TestStmtForeach_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6472,6 +6537,7 @@ func TestStmtForeach_WithKey(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6569,6 +6635,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6686,6 +6753,7 @@ func TestStmtForeach_WithRef(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6815,6 +6883,7 @@ func TestStmtForeach_WithList(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6861,6 +6930,7 @@ func TestStmtFunction(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6918,6 +6988,7 @@ func TestStmtFunction_Return(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7082,6 +7153,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7150,6 +7222,7 @@ func TestStmtFunction_Ref(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7206,6 +7279,7 @@ func TestStmtGlobal(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7367,6 +7441,7 @@ func TestStmtGlobal_Vars(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7432,6 +7507,7 @@ func TestStmtGotoLabel(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7465,6 +7541,7 @@ func TestStmtHaltCompiler(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7530,6 +7607,7 @@ func TestStmtIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7639,6 +7717,7 @@ func TestStmtIf_ElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7725,6 +7804,7 @@ func TestStmtIf_Else(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7897,6 +7977,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8079,6 +8160,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8123,6 +8205,7 @@ func TestStmtInlineHtml(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8168,6 +8251,7 @@ func TestStmtInterface(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8248,6 +8332,7 @@ func TestStmtInterface_Extend(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8351,6 +8436,7 @@ func TestStmtInterface_Extends(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8407,6 +8493,7 @@ func TestStmtNamespace(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8464,6 +8551,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8498,6 +8586,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8600,6 +8689,7 @@ func TestStmtProperty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8755,6 +8845,7 @@ func TestStmtProperty_Properties(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8910,6 +9001,7 @@ func TestStmtProperty_Properties2(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8976,6 +9068,7 @@ func TestStmtStaticVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9084,6 +9177,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9192,6 +9286,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9319,6 +9414,7 @@ func TestStmtSwitch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9446,6 +9542,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9563,6 +9660,7 @@ func TestStmtSwitch_Alt(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9668,6 +9766,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9722,6 +9821,7 @@ func TestStmtThrow(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9767,6 +9867,7 @@ func TestStmtTrait(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9858,6 +9959,7 @@ func TestStmtTraitUse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9972,6 +10074,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10086,6 +10189,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10244,6 +10348,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10413,6 +10518,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10696,6 +10802,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10733,6 +10840,7 @@ func TestStmtTry_Try(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10828,6 +10936,7 @@ func TestStmtTry_TryCatch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10980,6 +11089,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11086,6 +11196,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11293,6 +11404,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11349,6 +11461,7 @@ func TestStmtUnset(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11426,6 +11539,7 @@ func TestStmtUnset_Vars(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11504,6 +11618,7 @@ func TestStmtUse(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11534,7 +11649,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -11544,7 +11659,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -11582,6 +11697,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11612,7 +11728,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -11622,7 +11738,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -11671,6 +11787,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11782,6 +11899,7 @@ func TestStmtUse_List(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11904,6 +12022,7 @@ func TestStmtUse_ListAlias(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11997,7 +12116,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 25, }, }, @@ -12036,6 +12155,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12140,7 +12260,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 39, }, }, @@ -12190,6 +12310,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12284,7 +12405,7 @@ func TestStmtUse_ListConstType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 22, }, }, @@ -12323,6 +12444,7 @@ func TestStmtUse_ListConstType(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12427,7 +12549,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 36, }, }, @@ -12477,6 +12599,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12543,6 +12666,7 @@ func TestStmtBreak_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12620,6 +12744,7 @@ func TestStmtBreak_Light(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12697,6 +12822,7 @@ func TestStmtBreak(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12774,6 +12900,7 @@ func TestExprArrayDimFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12870,6 +12997,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12914,6 +13042,7 @@ func TestExprArray(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12980,6 +13109,7 @@ func TestExprArray_Item(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13099,6 +13229,7 @@ func TestExprArray_Items(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13163,6 +13294,7 @@ func TestExprBitwiseNot(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13227,6 +13359,7 @@ func TestExprBooleanNot(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13304,6 +13437,7 @@ func TestExprClassConstFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13369,6 +13503,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13433,6 +13568,7 @@ func TestExprClone_Brackets(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13497,6 +13633,7 @@ func TestExprClone(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13543,6 +13680,7 @@ func TestExprClosure(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13717,6 +13855,7 @@ func TestExprClosure_Use(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13891,6 +14030,7 @@ func TestExprClosure_Use2(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13957,6 +14097,7 @@ func TestExprConstFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14023,6 +14164,7 @@ func TestExprConstFetch_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14089,6 +14231,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14153,6 +14296,7 @@ func TestExprEmpty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14217,6 +14361,7 @@ func TestExprErrorSuppress(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14281,6 +14426,7 @@ func TestExprEval(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14325,6 +14471,7 @@ func TestExprExit(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14369,6 +14516,7 @@ func TestExprExit_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14434,6 +14582,7 @@ func TestExprExit_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14478,6 +14627,7 @@ func TestExprDie(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14522,6 +14672,7 @@ func TestExprDie_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14587,6 +14738,7 @@ func TestExprDie_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14663,6 +14815,7 @@ func TestExprFunctionCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14739,6 +14892,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14840,6 +14994,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14959,6 +15114,7 @@ func TestExprFunctionCall_Var(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15091,6 +15247,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15155,6 +15312,7 @@ func TestExprPostDec(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15219,6 +15377,7 @@ func TestExprPostInc(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15283,6 +15442,7 @@ func TestExprPreDec(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15347,6 +15507,7 @@ func TestExprPreInc(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15411,6 +15572,7 @@ func TestExprInclude(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15475,6 +15637,7 @@ func TestExprInclude_Once(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15539,6 +15702,7 @@ func TestExprRequire(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15603,6 +15767,7 @@ func TestExprRequire_Once(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15690,6 +15855,7 @@ func TestExprInstanceOf(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15777,6 +15943,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15864,6 +16031,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15930,6 +16098,7 @@ func TestExprIsset(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16017,6 +16186,7 @@ func TestExprIsset_Variables(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16092,6 +16262,7 @@ func TestExprList_Empty(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16199,6 +16370,7 @@ func TestExprList(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16316,6 +16488,7 @@ func TestExprList_ArrayIndex(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16445,6 +16618,7 @@ func TestExprList_List(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16553,6 +16727,7 @@ func TestExprList_EmptyItem(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16663,6 +16838,7 @@ func TestExprList_EmptyItems(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16748,6 +16924,7 @@ func TestExprMethodCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16814,6 +16991,7 @@ func TestExprNew(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16890,6 +17068,7 @@ func TestExprNew_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16966,6 +17145,7 @@ func TestExprNew_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17030,6 +17210,7 @@ func TestExprPrint(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17105,6 +17286,7 @@ func TestExprPropertyFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17223,6 +17405,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17300,6 +17483,7 @@ func TestExprShellExec(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17344,6 +17528,7 @@ func TestExprShortArray(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17410,6 +17595,7 @@ func TestExprShortArray_Item(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17529,6 +17715,7 @@ func TestExprShortArray_Items(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17616,6 +17803,7 @@ func TestExprStaticCall(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17703,6 +17891,7 @@ func TestExprStaticCall_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17790,6 +17979,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17887,6 +18077,7 @@ func TestExprStaticCall_Var(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17982,6 +18173,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18069,6 +18261,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18156,6 +18349,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18243,6 +18437,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18349,6 +18544,7 @@ func TestExprTernary(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18434,6 +18630,7 @@ func TestExprTernary_Simple(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18592,6 +18789,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18750,6 +18948,7 @@ func TestExprTernary_NestedCond(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18814,6 +19013,7 @@ func TestExprUnaryMinus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18878,6 +19078,7 @@ func TestExprUnaryPlus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18932,6 +19133,7 @@ func TestExprVariable(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18996,6 +19198,7 @@ func TestExprVariable_Variable(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19039,6 +19242,7 @@ func TestExprYield(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19103,6 +19307,7 @@ func TestExprYield_Val(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19188,6 +19393,7 @@ func TestExprYield_KeyVal(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19242,6 +19448,7 @@ func TestExprYield_Expr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19317,6 +19524,7 @@ func TestExprYield_KeyExpr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19404,6 +19612,7 @@ func TestExprAssign_Assign(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19489,6 +19698,7 @@ func TestExprAssign_Reference(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19586,6 +19796,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19728,6 +19939,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19813,6 +20025,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19898,6 +20111,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19983,6 +20197,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20068,6 +20283,7 @@ func TestExprAssign_Concat(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20153,6 +20369,7 @@ func TestExprAssign_Div(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20238,6 +20455,7 @@ func TestExprAssign_Minus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20323,6 +20541,7 @@ func TestExprAssign_Mod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20408,6 +20627,7 @@ func TestExprAssign_Mul(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20493,6 +20713,7 @@ func TestExprAssign_Plus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20578,6 +20799,7 @@ func TestExprAssign_Pow(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20663,6 +20885,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20748,6 +20971,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20835,6 +21059,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20920,6 +21145,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21005,6 +21231,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21090,6 +21317,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21175,6 +21403,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21260,6 +21489,7 @@ func TestExprBinary_Concat(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21345,6 +21575,7 @@ func TestExprBinary_Div(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21430,6 +21661,7 @@ func TestExprBinary_Equal(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21515,6 +21747,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21600,6 +21833,7 @@ func TestExprBinary_Greater(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21685,6 +21919,7 @@ func TestExprBinary_Identical(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21770,6 +22005,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21855,6 +22091,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21940,6 +22177,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22025,6 +22263,7 @@ func TestExprBinary_Minus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22110,6 +22349,7 @@ func TestExprBinary_Mod(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22195,6 +22435,7 @@ func TestExprBinary_Mul(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22280,6 +22521,7 @@ func TestExprBinary_NotEqual(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22365,6 +22607,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22450,6 +22693,7 @@ func TestExprBinary_Plus(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22535,6 +22779,7 @@ func TestExprBinary_Pow(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22620,6 +22865,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22705,6 +22951,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22790,6 +23037,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22875,6 +23123,7 @@ func TestExprBinary_Smaller(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22941,6 +23190,7 @@ func TestExprCast_Array(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23005,6 +23255,7 @@ func TestExprCast_Bool(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23069,6 +23320,7 @@ func TestExprCast_BoolShort(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23133,6 +23385,7 @@ func TestExprCast_Double(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23197,6 +23450,7 @@ func TestExprCast_CastFloat(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23261,6 +23515,7 @@ func TestExprCast_Int(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23325,6 +23580,7 @@ func TestExprCast_IntShort(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23389,6 +23645,7 @@ func TestExprCast_Object(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23453,6 +23710,7 @@ func TestExprCast_String(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23517,6 +23775,7 @@ func TestExprCast_BinaryString(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23581,5 +23840,6 @@ func TestExprCast_Unset(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 397fb9d..b8faaea 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7103 +// line internal/php5/php5.y:7127 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2593,58 +2593,66 @@ yydefault: { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:542 + // line internal/php5/php5.y:544 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:556 + // line internal/php5/php5.y:560 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:577 + // line internal/php5/php5.y:585 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2655,7 +2663,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:586 + // line internal/php5/php5.y:594 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2663,7 +2671,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:595 + // line internal/php5/php5.y:603 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2676,62 +2684,70 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:606 + // line internal/php5/php5.y:614 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:623 + // line internal/php5/php5.y:633 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:637 + // line internal/php5/php5.y:649 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:658 + // line internal/php5/php5.y:674 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -2742,7 +2758,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:667 + // line internal/php5/php5.y:683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -2750,7 +2766,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:676 + // line internal/php5/php5.y:692 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2763,62 +2779,70 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:687 + // line internal/php5/php5.y:703 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:704 + // line internal/php5/php5.y:722 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:718 + // line internal/php5/php5.y:738 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[2].list, yyDollar[4].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:739 + // line internal/php5/php5.y:763 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2841,7 +2865,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:760 + // line internal/php5/php5.y:784 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2862,7 +2886,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:782 + // line internal/php5/php5.y:806 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2877,7 +2901,7 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:795 + // line internal/php5/php5.y:819 { yyVAL.list = []ast.Vertex{} @@ -2885,7 +2909,7 @@ yydefault: } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:805 + // line internal/php5/php5.y:829 { // error yyVAL.node = nil @@ -2894,7 +2918,7 @@ yydefault: } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:812 + // line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node @@ -2902,7 +2926,7 @@ yydefault: } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:818 + // line internal/php5/php5.y:842 { yyVAL.node = yyDollar[1].node @@ -2910,7 +2934,7 @@ yydefault: } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:824 + // line internal/php5/php5.y:848 { yyVAL.node = yyDollar[1].node @@ -2918,7 +2942,7 @@ yydefault: } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:830 + // line internal/php5/php5.y:854 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2933,7 +2957,7 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:847 + // line internal/php5/php5.y:871 { yyVAL.node = yyDollar[1].node @@ -2941,7 +2965,7 @@ yydefault: } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:853 + // line internal/php5/php5.y:877 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2958,7 +2982,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:871 + // line internal/php5/php5.y:895 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2973,7 +2997,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:884 + // line internal/php5/php5.y:908 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3001,7 +3025,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:908 + // line internal/php5/php5.y:932 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} @@ -3029,7 +3053,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:932 + // line internal/php5/php5.y:956 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3058,7 +3082,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:957 + // line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3083,7 +3107,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:978 + // line internal/php5/php5.y:1002 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3112,7 +3136,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1005 + // line internal/php5/php5.y:1029 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3143,7 +3167,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1032 + // line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3159,7 +3183,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1046 + // line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3175,7 +3199,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1060 + // line internal/php5/php5.y:1084 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3191,7 +3215,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1074 + // line internal/php5/php5.y:1098 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3207,7 +3231,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1088 + // line internal/php5/php5.y:1112 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3223,7 +3247,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1102 + // line internal/php5/php5.y:1126 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3239,7 +3263,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1116 + // line internal/php5/php5.y:1140 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3255,7 +3279,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1130 + // line internal/php5/php5.y:1154 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3271,7 +3295,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1144 + // line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3287,7 +3311,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1158 + // line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3303,7 +3327,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1172 + // line internal/php5/php5.y:1196 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3320,7 +3344,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1187 + // line internal/php5/php5.y:1211 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3334,7 +3358,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1199 + // line internal/php5/php5.y:1223 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3350,7 +3374,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1213 + // line internal/php5/php5.y:1237 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3368,7 +3392,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1229 + // line internal/php5/php5.y:1253 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3411,7 +3435,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1269 + // line internal/php5/php5.y:1293 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3454,7 +3478,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1309 + // line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3471,7 +3495,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1324 + // line internal/php5/php5.y:1348 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3486,7 +3510,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1337 + // line internal/php5/php5.y:1361 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3506,7 +3530,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1379 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3522,7 +3546,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1393 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3541,7 +3565,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1389 + // line internal/php5/php5.y:1413 { yyVAL.list = []ast.Vertex{} @@ -3549,7 +3573,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1395 + // line internal/php5/php5.y:1419 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3573,7 +3597,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1420 + // line internal/php5/php5.y:1444 { yyVAL.node = nil @@ -3581,7 +3605,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1426 + // line internal/php5/php5.y:1450 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3597,7 +3621,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1443 + // line internal/php5/php5.y:1467 { yyVAL.list = yyDollar[1].list @@ -3605,7 +3629,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1449 + // line internal/php5/php5.y:1473 { yyVAL.list = []ast.Vertex{} @@ -3613,7 +3637,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1458 + // line internal/php5/php5.y:1482 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3621,7 +3645,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1464 + // line internal/php5/php5.y:1488 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3629,7 +3653,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1497 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3652,7 +3676,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1521 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3660,7 +3684,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1503 + // line internal/php5/php5.y:1527 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3671,7 +3695,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1515 + // line internal/php5/php5.y:1539 { yyVAL.node = yyDollar[1].node @@ -3679,7 +3703,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1524 + // line internal/php5/php5.y:1548 { yyVAL.node = yyDollar[1].node @@ -3687,7 +3711,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1533 + // line internal/php5/php5.y:1557 { yyVAL.node = yyDollar[1].node @@ -3695,31 +3719,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1542 + // line internal/php5/php5.y:1566 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1546 + // line internal/php5/php5.y:1570 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1553 + // line internal/php5/php5.y:1577 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1581 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1564 + // line internal/php5/php5.y:1588 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3745,7 +3769,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1591 + // line internal/php5/php5.y:1615 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3775,7 +3799,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1619 + // line internal/php5/php5.y:1643 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3794,7 +3818,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1640 + // line internal/php5/php5.y:1664 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3808,7 +3832,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1652 + // line internal/php5/php5.y:1676 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3825,7 +3849,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1667 + // line internal/php5/php5.y:1691 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3839,7 +3863,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1679 + // line internal/php5/php5.y:1703 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3856,7 +3880,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1697 + // line internal/php5/php5.y:1721 { yyVAL.ClassExtends = nil @@ -3864,7 +3888,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1703 + // line internal/php5/php5.y:1727 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3878,13 +3902,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1718 + // line internal/php5/php5.y:1742 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1725 + // line internal/php5/php5.y:1749 { yyVAL.InterfaceExtends = nil @@ -3892,7 +3916,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1755 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3906,7 +3930,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1746 + // line internal/php5/php5.y:1770 { yyVAL.ClassImplements = nil @@ -3914,7 +3938,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1776 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3928,7 +3952,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1767 + // line internal/php5/php5.y:1791 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3936,7 +3960,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1797 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3947,7 +3971,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1785 + // line internal/php5/php5.y:1809 { yyVAL.node = nil @@ -3955,7 +3979,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1791 + // line internal/php5/php5.y:1815 { yyVAL.node = yyDollar[2].node @@ -3966,7 +3990,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1803 + // line internal/php5/php5.y:1827 { yyVAL.node = yyDollar[1].node @@ -3974,7 +3998,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1809 + // line internal/php5/php5.y:1833 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3988,7 +4012,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1821 + // line internal/php5/php5.y:1845 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4004,7 +4028,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1838 + // line internal/php5/php5.y:1862 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4015,7 +4039,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1871 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4034,7 +4058,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1867 + // line internal/php5/php5.y:1891 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4045,7 +4069,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1876 + // line internal/php5/php5.y:1900 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4064,7 +4088,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1897 + // line internal/php5/php5.y:1921 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4075,7 +4099,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1906 + // line internal/php5/php5.y:1930 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4094,7 +4118,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1927 + // line internal/php5/php5.y:1951 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4112,7 +4136,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1943 + // line internal/php5/php5.y:1967 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4131,7 +4155,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1964 + // line internal/php5/php5.y:1988 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4148,7 +4172,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1979 + // line internal/php5/php5.y:2003 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4166,7 +4190,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1995 + // line internal/php5/php5.y:2019 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4185,7 +4209,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2012 + // line internal/php5/php5.y:2036 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4206,7 +4230,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2035 + // line internal/php5/php5.y:2059 { yyVAL.list = []ast.Vertex{} @@ -4214,7 +4238,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2041 + // line internal/php5/php5.y:2065 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4231,7 +4255,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2056 + // line internal/php5/php5.y:2080 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4248,19 +4272,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2075 + // line internal/php5/php5.y:2099 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2079 + // line internal/php5/php5.y:2103 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2087 + // line internal/php5/php5.y:2111 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4271,7 +4295,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2096 + // line internal/php5/php5.y:2120 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4290,7 +4314,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2118 + // line internal/php5/php5.y:2142 { yyVAL.list = nil @@ -4298,7 +4322,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2148 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4321,7 +4345,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2147 + // line internal/php5/php5.y:2171 { yyVAL.list = nil @@ -4329,7 +4353,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2153 + // line internal/php5/php5.y:2177 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} @@ -4355,7 +4379,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2179 + // line internal/php5/php5.y:2203 { yyVAL.node = nil @@ -4363,7 +4387,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2185 + // line internal/php5/php5.y:2209 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4377,7 +4401,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2201 + // line internal/php5/php5.y:2225 { yyVAL.node = nil @@ -4385,7 +4409,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2231 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} @@ -4402,7 +4426,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2226 + // line internal/php5/php5.y:2250 { yyVAL.list = yyDollar[1].list @@ -4410,7 +4434,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2232 + // line internal/php5/php5.y:2256 { yyVAL.list = nil @@ -4418,7 +4442,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2241 + // line internal/php5/php5.y:2265 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4426,7 +4450,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2271 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4437,7 +4461,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2259 + // line internal/php5/php5.y:2283 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4475,7 +4499,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2295 + // line internal/php5/php5.y:2319 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4514,7 +4538,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2336 + // line internal/php5/php5.y:2360 { yyVAL.node = nil @@ -4522,7 +4546,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2342 + // line internal/php5/php5.y:2366 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4536,7 +4560,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2354 + // line internal/php5/php5.y:2378 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4550,7 +4574,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2366 + // line internal/php5/php5.y:2390 { yyVAL.node = yyDollar[1].node @@ -4558,7 +4582,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2376 + // line internal/php5/php5.y:2400 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4573,7 +4597,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2389 + // line internal/php5/php5.y:2413 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4588,7 +4612,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2402 + // line internal/php5/php5.y:2426 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4605,7 +4629,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2421 + // line internal/php5/php5.y:2445 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4613,7 +4637,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2427 + // line internal/php5/php5.y:2451 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4624,7 +4648,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2439 + // line internal/php5/php5.y:2463 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4638,7 +4662,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2451 + // line internal/php5/php5.y:2475 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4652,7 +4676,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2487 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4666,7 +4690,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2475 + // line internal/php5/php5.y:2499 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4680,7 +4704,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2490 + // line internal/php5/php5.y:2514 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4691,7 +4715,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2499 + // line internal/php5/php5.y:2523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4699,7 +4723,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2509 + // line internal/php5/php5.y:2533 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4715,7 +4739,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2523 + // line internal/php5/php5.y:2547 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4729,7 +4753,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2535 + // line internal/php5/php5.y:2559 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4745,7 +4769,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2553 + // line internal/php5/php5.y:2577 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4765,7 +4789,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2571 + // line internal/php5/php5.y:2595 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4786,7 +4810,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2590 + // line internal/php5/php5.y:2614 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4805,7 +4829,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2607 + // line internal/php5/php5.y:2631 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4825,7 +4849,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2629 + // line internal/php5/php5.y:2653 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4833,7 +4857,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2635 + // line internal/php5/php5.y:2659 { yyVAL.list = []ast.Vertex{} @@ -4841,7 +4865,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2645 + // line internal/php5/php5.y:2669 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4857,7 +4881,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2659 + // line internal/php5/php5.y:2683 { yyVAL.node = yyDollar[1].node @@ -4872,7 +4896,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2672 + // line internal/php5/php5.y:2696 { yyVAL.node = yyDollar[1].node @@ -4880,7 +4904,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2702 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4913,7 +4937,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2712 + // line internal/php5/php5.y:2736 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4927,7 +4951,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2751 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4935,7 +4959,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2733 + // line internal/php5/php5.y:2757 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4946,7 +4970,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2745 + // line internal/php5/php5.y:2769 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4960,7 +4984,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2781 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4974,7 +4998,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2772 + // line internal/php5/php5.y:2796 { yyVAL.list = nil @@ -4982,7 +5006,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2802 { yyVAL.list = yyDollar[1].list @@ -4990,7 +5014,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2787 + // line internal/php5/php5.y:2811 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4998,7 +5022,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2793 + // line internal/php5/php5.y:2817 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5006,7 +5030,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2802 + // line internal/php5/php5.y:2826 { yyVAL.node = yyDollar[1].node @@ -5018,7 +5042,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2812 + // line internal/php5/php5.y:2836 { yyVAL.node = yyDollar[1].node @@ -5030,7 +5054,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2825 + // line internal/php5/php5.y:2849 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5045,7 +5069,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2841 + // line internal/php5/php5.y:2865 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5053,7 +5077,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2871 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5064,7 +5088,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2859 + // line internal/php5/php5.y:2883 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5080,7 +5104,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2873 + // line internal/php5/php5.y:2897 { yyVAL.node = yyDollar[1].node @@ -5088,7 +5112,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2882 + // line internal/php5/php5.y:2906 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5106,7 +5130,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2901 + // line internal/php5/php5.y:2925 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5124,7 +5148,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2917 + // line internal/php5/php5.y:2941 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5139,7 +5163,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2933 + // line internal/php5/php5.y:2957 { yyVAL.node = nil @@ -5147,7 +5171,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2939 + // line internal/php5/php5.y:2963 { yyVAL.node = yyDollar[1].node @@ -5155,7 +5179,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2948 + // line internal/php5/php5.y:2972 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5170,7 +5194,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2961 + // line internal/php5/php5.y:2985 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5185,7 +5209,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2977 + // line internal/php5/php5.y:3001 { yyVAL.list = yyDollar[1].list @@ -5193,7 +5217,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2983 + // line internal/php5/php5.y:3007 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5208,7 +5232,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2999 + // line internal/php5/php5.y:3023 { yyVAL.list = nil @@ -5216,7 +5240,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3005 + // line internal/php5/php5.y:3029 { yyVAL.list = yyDollar[1].list @@ -5224,7 +5248,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3014 + // line internal/php5/php5.y:3038 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5232,41 +5256,13 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3020 + // line internal/php5/php5.y:3044 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3029 - { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 205: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3041 - { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 206: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3053 { @@ -5280,7 +5276,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 207: + case 205: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3065 { @@ -5294,7 +5290,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 208: + case 206: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3077 { @@ -5308,7 +5304,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 209: + case 207: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3089 { @@ -5320,11 +5316,39 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 208: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php5/php5.y:3101 + { + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + + // save position + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 209: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php5/php5.y:3113 + { + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + + // save position + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3128 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5344,7 +5368,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3122 + // line internal/php5/php5.y:3146 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5365,7 +5389,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3141 + // line internal/php5/php5.y:3165 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5384,7 +5408,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3158 + // line internal/php5/php5.y:3182 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5404,7 +5428,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3179 + // line internal/php5/php5.y:3203 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5427,7 +5451,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3200 + // line internal/php5/php5.y:3224 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5447,7 +5471,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3221 + // line internal/php5/php5.y:3245 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5458,7 +5482,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3230 + // line internal/php5/php5.y:3254 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5466,7 +5490,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3240 + // line internal/php5/php5.y:3264 { yyVAL.list = nil @@ -5474,7 +5498,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3246 + // line internal/php5/php5.y:3270 { yyVAL.list = yyDollar[1].list @@ -5482,7 +5506,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3255 + // line internal/php5/php5.y:3279 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5493,7 +5517,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3264 + // line internal/php5/php5.y:3288 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5501,7 +5525,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3297 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5509,7 +5533,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3279 + // line internal/php5/php5.y:3303 { yyVAL.list = yyDollar[1].list @@ -5517,7 +5541,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3288 + // line internal/php5/php5.y:3312 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5533,7 +5557,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3302 + // line internal/php5/php5.y:3326 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5549,7 +5573,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3319 + // line internal/php5/php5.y:3343 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5557,7 +5581,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3325 + // line internal/php5/php5.y:3349 { yyVAL.list = yyDollar[1].list @@ -5565,7 +5589,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3355 { yyVAL.list = yyDollar[1].list @@ -5573,7 +5597,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3340 + // line internal/php5/php5.y:3364 { yyVAL.list = nil @@ -5581,7 +5605,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3346 + // line internal/php5/php5.y:3370 { yyVAL.list = yyDollar[1].list @@ -5589,7 +5613,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3355 + // line internal/php5/php5.y:3379 { if yyDollar[3].node != nil { @@ -5607,7 +5631,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3374 + // line internal/php5/php5.y:3398 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5626,7 +5650,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5665,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3404 + // line internal/php5/php5.y:3428 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5657,7 +5681,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3418 + // line internal/php5/php5.y:3442 { var _new *ast.ExprNew @@ -5686,7 +5710,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3445 + // line internal/php5/php5.y:3469 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5700,7 +5724,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3457 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5714,7 +5738,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3469 + // line internal/php5/php5.y:3493 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5729,7 +5753,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3482 + // line internal/php5/php5.y:3506 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5744,7 +5768,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3495 + // line internal/php5/php5.y:3519 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5759,7 +5783,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3508 + // line internal/php5/php5.y:3532 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5774,7 +5798,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3521 + // line internal/php5/php5.y:3545 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5789,7 +5813,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3534 + // line internal/php5/php5.y:3558 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5804,7 +5828,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3547 + // line internal/php5/php5.y:3571 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5843,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3560 + // line internal/php5/php5.y:3584 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5834,7 +5858,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3573 + // line internal/php5/php5.y:3597 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5849,7 +5873,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3586 + // line internal/php5/php5.y:3610 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5864,7 +5888,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3599 + // line internal/php5/php5.y:3623 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5879,7 +5903,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3612 + // line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5894,7 +5918,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3625 + // line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5908,7 +5932,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3637 + // line internal/php5/php5.y:3661 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5923,7 +5947,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3650 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5937,7 +5961,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3662 + // line internal/php5/php5.y:3686 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5952,7 +5976,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3675 + // line internal/php5/php5.y:3699 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5967,7 +5991,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3688 + // line internal/php5/php5.y:3712 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5982,7 +6006,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3701 + // line internal/php5/php5.y:3725 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5997,7 +6021,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3714 + // line internal/php5/php5.y:3738 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6012,7 +6036,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3751 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6027,7 +6051,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3740 + // line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6042,7 +6066,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3777 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6057,7 +6081,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3766 + // line internal/php5/php5.y:3790 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6072,7 +6096,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3779 + // line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6087,7 +6111,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3792 + // line internal/php5/php5.y:3816 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6102,7 +6126,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3805 + // line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6117,7 +6141,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3818 + // line internal/php5/php5.y:3842 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6132,7 +6156,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3831 + // line internal/php5/php5.y:3855 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6147,7 +6171,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3844 + // line internal/php5/php5.y:3868 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6162,7 +6186,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3857 + // line internal/php5/php5.y:3881 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6177,7 +6201,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3870 + // line internal/php5/php5.y:3894 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6192,7 +6216,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3883 + // line internal/php5/php5.y:3907 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6206,7 +6230,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3895 + // line internal/php5/php5.y:3919 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6220,7 +6244,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3907 + // line internal/php5/php5.y:3931 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6234,7 +6258,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3919 + // line internal/php5/php5.y:3943 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6248,7 +6272,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3931 + // line internal/php5/php5.y:3955 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6263,7 +6287,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3944 + // line internal/php5/php5.y:3968 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6278,7 +6302,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3957 + // line internal/php5/php5.y:3981 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6293,7 +6317,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3970 + // line internal/php5/php5.y:3994 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6309,7 +6333,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3984 + // line internal/php5/php5.y:4008 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6324,7 +6348,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3997 + // line internal/php5/php5.y:4021 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6339,7 +6363,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4010 + // line internal/php5/php5.y:4034 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6354,7 +6378,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4023 + // line internal/php5/php5.y:4047 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6369,7 +6393,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4036 + // line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6384,7 +6408,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4049 + // line internal/php5/php5.y:4073 { yyVAL.node = yyDollar[1].node @@ -6397,7 +6421,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4058 + // line internal/php5/php5.y:4082 { yyVAL.node = yyDollar[1].node @@ -6405,7 +6429,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4064 + // line internal/php5/php5.y:4088 { yyVAL.node = yyDollar[2].node @@ -6439,7 +6463,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4096 + // line internal/php5/php5.y:4120 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6455,7 +6479,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4110 + // line internal/php5/php5.y:4134 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6471,7 +6495,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4124 + // line internal/php5/php5.y:4148 { yyVAL.node = yyDollar[1].node @@ -6479,7 +6503,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4130 + // line internal/php5/php5.y:4154 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6494,7 +6518,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4143 + // line internal/php5/php5.y:4167 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6509,7 +6533,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4156 + // line internal/php5/php5.y:4180 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6524,7 +6548,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4169 + // line internal/php5/php5.y:4193 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6539,7 +6563,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4182 + // line internal/php5/php5.y:4206 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6554,7 +6578,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4195 + // line internal/php5/php5.y:4219 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6569,7 +6593,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4232 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6584,7 +6608,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4221 + // line internal/php5/php5.y:4245 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6607,7 +6631,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4266 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6621,7 +6645,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4254 + // line internal/php5/php5.y:4278 { yyVAL.node = yyDollar[1].node @@ -6629,7 +6653,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4260 + // line internal/php5/php5.y:4284 { yyVAL.node = yyDollar[1].node @@ -6637,7 +6661,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4290 { yyVAL.node = yyDollar[1].node @@ -6645,7 +6669,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4272 + // line internal/php5/php5.y:4296 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6659,7 +6683,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4308 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6673,7 +6697,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4296 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6687,7 +6711,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4308 + // line internal/php5/php5.y:4332 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6716,7 +6740,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4334 + // line internal/php5/php5.y:4358 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6746,7 +6770,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4364 + // line internal/php5/php5.y:4388 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6760,7 +6784,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4376 + // line internal/php5/php5.y:4400 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6774,7 +6798,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4388 + // line internal/php5/php5.y:4412 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6789,7 +6813,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4401 + // line internal/php5/php5.y:4425 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6804,7 +6828,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4417 + // line internal/php5/php5.y:4441 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6819,7 +6843,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4430 + // line internal/php5/php5.y:4454 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6834,7 +6858,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4443 + // line internal/php5/php5.y:4467 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6852,7 +6876,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4459 + // line internal/php5/php5.y:4483 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6867,7 +6891,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4475 + // line internal/php5/php5.y:4499 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6883,7 +6907,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4489 + // line internal/php5/php5.y:4513 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6898,13 +6922,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4505 + // line internal/php5/php5.y:4529 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4512 + // line internal/php5/php5.y:4536 { yyVAL.ClosureUse = nil @@ -6912,7 +6936,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4518 + // line internal/php5/php5.y:4542 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6928,7 +6952,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4535 + // line internal/php5/php5.y:4559 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6946,7 +6970,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4551 + // line internal/php5/php5.y:4575 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6967,7 +6991,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4570 + // line internal/php5/php5.y:4594 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6984,7 +7008,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4585 + // line internal/php5/php5.y:4609 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7004,7 +7028,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4606 + // line internal/php5/php5.y:4630 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7017,7 +7041,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4617 + // line internal/php5/php5.y:4641 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7034,7 +7058,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4632 + // line internal/php5/php5.y:4656 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7050,7 +7074,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4670 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7065,7 +7089,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4659 + // line internal/php5/php5.y:4683 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7080,7 +7104,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4672 + // line internal/php5/php5.y:4696 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7095,7 +7119,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4685 + // line internal/php5/php5.y:4709 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7110,7 +7134,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4698 + // line internal/php5/php5.y:4722 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7124,7 +7148,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4737 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7138,7 +7162,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4725 + // line internal/php5/php5.y:4749 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7149,7 +7173,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4734 + // line internal/php5/php5.y:4758 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7164,7 +7188,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4747 + // line internal/php5/php5.y:4771 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7178,7 +7202,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4762 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7189,7 +7213,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4771 + // line internal/php5/php5.y:4795 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7204,7 +7228,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4784 + // line internal/php5/php5.y:4808 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7218,7 +7242,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4799 + // line internal/php5/php5.y:4823 { yyVAL.node = yyDollar[1].node @@ -7226,7 +7250,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4805 + // line internal/php5/php5.y:4829 { yyVAL.node = yyDollar[1].node @@ -7234,7 +7258,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4814 + // line internal/php5/php5.y:4838 { yyVAL.node = yyDollar[1].node @@ -7277,7 +7301,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4855 + // line internal/php5/php5.y:4879 { yyVAL.node = yyDollar[1].node @@ -7285,7 +7309,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4865 + // line internal/php5/php5.y:4889 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7293,7 +7317,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4871 + // line internal/php5/php5.y:4895 { yyVAL.list = []ast.Vertex{} @@ -7301,7 +7325,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4881 + // line internal/php5/php5.y:4905 { yyVAL.list = yyDollar[2].list @@ -7312,7 +7336,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4893 + // line internal/php5/php5.y:4917 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7320,7 +7344,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4899 + // line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7335,7 +7359,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4912 + // line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7356,7 +7380,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4956 { yyVAL.list = []ast.Vertex{} @@ -7364,7 +7388,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4962 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7376,7 +7400,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4948 + // line internal/php5/php5.y:4972 { yyVAL.list = yyDollar[1].list @@ -7384,7 +7408,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4957 + // line internal/php5/php5.y:4981 { yyVAL.node = nil @@ -7392,7 +7416,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4963 + // line internal/php5/php5.y:4987 { yyVAL.node = yyDollar[1].node @@ -7400,7 +7424,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4972 + // line internal/php5/php5.y:4996 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7414,7 +7438,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4984 + // line internal/php5/php5.y:5008 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7428,7 +7452,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5020 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7442,7 +7466,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5032 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7456,7 +7480,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5044 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7470,7 +7494,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7484,7 +7508,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5068 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7498,7 +7522,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5080 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7512,7 +7536,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5068 + // line internal/php5/php5.y:5092 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7526,7 +7550,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5104 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7540,7 +7564,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5116 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7556,7 +7580,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5130 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7570,7 +7594,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5121 + // line internal/php5/php5.y:5145 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7588,7 +7612,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5140 + // line internal/php5/php5.y:5164 { yyVAL.node = yyDollar[1].node @@ -7596,7 +7620,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5149 + // line internal/php5/php5.y:5173 { yyVAL.node = yyDollar[1].node @@ -7604,7 +7628,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5179 { yyVAL.node = yyDollar[1].node @@ -7612,7 +7636,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5161 + // line internal/php5/php5.y:5185 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7625,7 +7649,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5172 + // line internal/php5/php5.y:5196 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7642,7 +7666,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5187 + // line internal/php5/php5.y:5211 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7658,7 +7682,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5201 + // line internal/php5/php5.y:5225 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7674,7 +7698,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5215 + // line internal/php5/php5.y:5239 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7689,7 +7713,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5228 + // line internal/php5/php5.y:5252 { yyVAL.node = yyDollar[1].node @@ -7697,7 +7721,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5234 + // line internal/php5/php5.y:5258 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7711,7 +7735,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5246 + // line internal/php5/php5.y:5270 { yyVAL.node = yyDollar[1].node @@ -7719,7 +7743,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5255 + // line internal/php5/php5.y:5279 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7734,7 +7758,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5268 + // line internal/php5/php5.y:5292 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7749,7 +7773,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5281 + // line internal/php5/php5.y:5305 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7764,7 +7788,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5294 + // line internal/php5/php5.y:5318 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7779,7 +7803,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5331 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7794,7 +7818,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7809,7 +7833,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5333 + // line internal/php5/php5.y:5357 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7824,7 +7848,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5346 + // line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7838,7 +7862,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5382 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7852,7 +7876,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5394 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7867,7 +7891,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5383 + // line internal/php5/php5.y:5407 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7882,7 +7906,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5396 + // line internal/php5/php5.y:5420 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7897,7 +7921,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5433 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7912,7 +7936,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5422 + // line internal/php5/php5.y:5446 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7927,7 +7951,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5459 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7942,7 +7966,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5472 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7957,7 +7981,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5461 + // line internal/php5/php5.y:5485 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7972,7 +7996,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5474 + // line internal/php5/php5.y:5498 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7987,7 +8011,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5487 + // line internal/php5/php5.y:5511 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8002,7 +8026,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5524 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8017,7 +8041,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5513 + // line internal/php5/php5.y:5537 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8032,7 +8056,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8047,7 +8071,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5539 + // line internal/php5/php5.y:5563 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8062,7 +8086,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5552 + // line internal/php5/php5.y:5576 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8078,7 +8102,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5566 + // line internal/php5/php5.y:5590 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8093,7 +8117,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5579 + // line internal/php5/php5.y:5603 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8108,7 +8132,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5616 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8123,7 +8147,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5629 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8138,7 +8162,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5618 + // line internal/php5/php5.y:5642 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8154,7 +8178,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5632 + // line internal/php5/php5.y:5656 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8170,7 +8194,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5646 + // line internal/php5/php5.y:5670 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8184,7 +8208,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5658 + // line internal/php5/php5.y:5682 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8198,7 +8222,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5670 + // line internal/php5/php5.y:5694 { yyVAL.node = yyDollar[2].node @@ -8210,7 +8234,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5683 + // line internal/php5/php5.y:5707 { yyVAL.node = yyDollar[1].node @@ -8218,7 +8242,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5689 + // line internal/php5/php5.y:5713 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8231,7 +8255,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5700 + // line internal/php5/php5.y:5724 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8248,7 +8272,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5715 + // line internal/php5/php5.y:5739 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8264,7 +8288,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5732 + // line internal/php5/php5.y:5756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8280,7 +8304,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5746 + // line internal/php5/php5.y:5770 { yyVAL.node = yyDollar[1].node @@ -8288,7 +8312,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5752 + // line internal/php5/php5.y:5776 { yyVAL.node = yyDollar[1].node @@ -8296,7 +8320,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5758 + // line internal/php5/php5.y:5782 { yyVAL.node = yyDollar[1].node @@ -8304,7 +8328,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5788 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8318,7 +8342,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5776 + // line internal/php5/php5.y:5800 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8332,7 +8356,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5788 + // line internal/php5/php5.y:5812 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8346,7 +8370,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5803 + // line internal/php5/php5.y:5827 { yyVAL.list = nil @@ -8354,7 +8378,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5809 + // line internal/php5/php5.y:5833 { yyVAL.list = yyDollar[1].list @@ -8367,19 +8391,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5823 + // line internal/php5/php5.y:5847 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5827 + // line internal/php5/php5.y:5851 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5834 + // line internal/php5/php5.y:5858 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8396,7 +8420,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5849 + // line internal/php5/php5.y:5873 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8412,7 +8436,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5863 + // line internal/php5/php5.y:5887 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8428,7 +8452,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5877 + // line internal/php5/php5.y:5901 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8443,7 +8467,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5893 + // line internal/php5/php5.y:5917 { yyVAL.node = yyDollar[1].node @@ -8451,7 +8475,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5923 { yyVAL.node = yyDollar[1].node @@ -8459,7 +8483,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5908 + // line internal/php5/php5.y:5932 { yyVAL.node = yyDollar[2].node @@ -8477,7 +8501,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5924 + // line internal/php5/php5.y:5948 { yyVAL.node = yyDollar[2].node @@ -8495,7 +8519,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5944 + // line internal/php5/php5.y:5968 { yyVAL.node = yyDollar[1].node @@ -8503,7 +8527,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5954 + // line internal/php5/php5.y:5978 { yyVAL.node = yyDollar[1].node @@ -8511,7 +8535,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5963 + // line internal/php5/php5.y:5987 { yyVAL.node = yyDollar[1].node @@ -8519,7 +8543,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5972 + // line internal/php5/php5.y:5996 { yyVAL.node = yyDollar[1].node @@ -8579,7 +8603,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6030 + // line internal/php5/php5.y:6054 { yyVAL.node = yyDollar[1].node @@ -8587,7 +8611,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6039 + // line internal/php5/php5.y:6063 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8595,7 +8619,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6045 + // line internal/php5/php5.y:6069 { yyVAL.list = []ast.Vertex{} @@ -8603,7 +8627,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6055 + // line internal/php5/php5.y:6079 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8619,7 +8643,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6072 + // line internal/php5/php5.y:6096 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8635,7 +8659,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6110 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8651,7 +8675,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6103 + // line internal/php5/php5.y:6127 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8662,7 +8686,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6115 + // line internal/php5/php5.y:6139 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8670,7 +8694,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6121 + // line internal/php5/php5.y:6145 { yyVAL.list = yyDollar[1].list @@ -8678,7 +8702,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6151 { yyVAL.list = nil @@ -8686,7 +8710,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6136 + // line internal/php5/php5.y:6160 { yyVAL.node = yyDollar[1].node @@ -8694,7 +8718,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6142 + // line internal/php5/php5.y:6166 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8708,7 +8732,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6157 + // line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8723,7 +8747,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6170 + // line internal/php5/php5.y:6194 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8738,7 +8762,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6186 + // line internal/php5/php5.y:6210 { yyVAL.node = yyDollar[1].node @@ -8746,7 +8770,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6195 + // line internal/php5/php5.y:6219 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8761,7 +8785,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6208 + // line internal/php5/php5.y:6232 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8776,7 +8800,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6224 + // line internal/php5/php5.y:6248 { yyVAL.node = yyDollar[1].node @@ -8784,7 +8808,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6230 + // line internal/php5/php5.y:6254 { yyVAL.node = yyDollar[1].node @@ -8792,7 +8816,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6236 + // line internal/php5/php5.y:6260 { yyVAL.node = yyDollar[1].node @@ -8800,7 +8824,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6246 + // line internal/php5/php5.y:6270 { yyVAL.node = yyDollar[1].node @@ -8808,7 +8832,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6252 + // line internal/php5/php5.y:6276 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8822,7 +8846,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6264 + // line internal/php5/php5.y:6288 { yyVAL.node = yyDollar[1].node @@ -8830,7 +8854,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6273 + // line internal/php5/php5.y:6297 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8845,7 +8869,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6286 + // line internal/php5/php5.y:6310 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8860,7 +8884,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6299 + // line internal/php5/php5.y:6323 { yyVAL.node = yyDollar[1].node @@ -8868,7 +8892,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6309 + // line internal/php5/php5.y:6333 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8884,7 +8908,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6323 + // line internal/php5/php5.y:6347 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8900,7 +8924,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6340 + // line internal/php5/php5.y:6364 { yyVAL.node = nil @@ -8908,7 +8932,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6346 + // line internal/php5/php5.y:6370 { yyVAL.node = yyDollar[1].node @@ -8916,7 +8940,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6356 + // line internal/php5/php5.y:6380 { yyVAL.list = yyDollar[1].list @@ -8924,7 +8948,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6362 + // line internal/php5/php5.y:6386 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8936,7 +8960,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6375 + // line internal/php5/php5.y:6399 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8952,7 +8976,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6389 + // line internal/php5/php5.y:6413 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8968,7 +8992,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6403 + // line internal/php5/php5.y:6427 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8980,7 +9004,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6416 + // line internal/php5/php5.y:6440 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8994,7 +9018,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6428 + // line internal/php5/php5.y:6452 { yyVAL.node = yyDollar[2].node @@ -9009,7 +9033,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6444 + // line internal/php5/php5.y:6468 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9024,7 +9048,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6457 + // line internal/php5/php5.y:6481 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9043,7 +9067,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6477 + // line internal/php5/php5.y:6501 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9058,7 +9082,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6490 + // line internal/php5/php5.y:6514 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9070,7 +9094,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6504 + // line internal/php5/php5.y:6528 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9084,7 +9108,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6516 + // line internal/php5/php5.y:6540 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9102,7 +9126,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6532 + // line internal/php5/php5.y:6556 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9110,7 +9134,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6542 + // line internal/php5/php5.y:6566 { yyVAL.list = []ast.Vertex{} @@ -9118,7 +9142,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6548 + // line internal/php5/php5.y:6572 { yyVAL.list = yyDollar[1].list @@ -9135,7 +9159,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6566 + // line internal/php5/php5.y:6590 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9152,7 +9176,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6581 + // line internal/php5/php5.y:6605 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9168,7 +9192,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6595 + // line internal/php5/php5.y:6619 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9184,7 +9208,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6609 + // line internal/php5/php5.y:6633 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9199,7 +9223,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6622 + // line internal/php5/php5.y:6646 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9219,7 +9243,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6640 + // line internal/php5/php5.y:6664 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9237,7 +9261,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6656 + // line internal/php5/php5.y:6680 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9256,7 +9280,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6673 + // line internal/php5/php5.y:6697 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9273,7 +9297,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6691 + // line internal/php5/php5.y:6715 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9281,7 +9305,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6697 + // line internal/php5/php5.y:6721 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9296,7 +9320,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6710 + // line internal/php5/php5.y:6734 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9304,7 +9328,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6716 + // line internal/php5/php5.y:6740 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9319,7 +9343,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6732 + // line internal/php5/php5.y:6756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9335,7 +9359,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6746 + // line internal/php5/php5.y:6770 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9354,7 +9378,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6763 + // line internal/php5/php5.y:6787 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9375,7 +9399,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6782 + // line internal/php5/php5.y:6806 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9392,7 +9416,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6797 + // line internal/php5/php5.y:6821 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9411,7 +9435,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6814 + // line internal/php5/php5.y:6838 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9432,7 +9456,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6833 + // line internal/php5/php5.y:6857 { yyVAL.node = yyDollar[2].node @@ -9444,7 +9468,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6846 + // line internal/php5/php5.y:6870 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9458,7 +9482,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6858 + // line internal/php5/php5.y:6882 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9477,7 +9501,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6875 + // line internal/php5/php5.y:6899 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9493,7 +9517,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6892 + // line internal/php5/php5.y:6916 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9509,7 +9533,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6906 + // line internal/php5/php5.y:6930 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9525,7 +9549,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6920 + // line internal/php5/php5.y:6944 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9541,7 +9565,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6934 + // line internal/php5/php5.y:6958 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9555,7 +9579,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6946 + // line internal/php5/php5.y:6970 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9569,7 +9593,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6958 + // line internal/php5/php5.y:6982 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9585,7 +9609,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6972 + // line internal/php5/php5.y:6996 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9599,7 +9623,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6984 + // line internal/php5/php5.y:7008 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9613,7 +9637,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6999 + // line internal/php5/php5.y:7023 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9621,7 +9645,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7005 + // line internal/php5/php5.y:7029 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9632,7 +9656,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7017 + // line internal/php5/php5.y:7041 { yyVAL.node = yyDollar[1].node @@ -9640,7 +9664,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7023 + // line internal/php5/php5.y:7047 { yyVAL.node = yyDollar[1].node @@ -9648,7 +9672,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7032 + // line internal/php5/php5.y:7056 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9666,7 +9690,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7048 + // line internal/php5/php5.y:7072 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9684,7 +9708,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7067 + // line internal/php5/php5.y:7091 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9702,7 +9726,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7086 + // line internal/php5/php5.y:7110 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 44430ec..5aa8b9e 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -525,15 +525,17 @@ use_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -541,14 +543,16 @@ use_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewNodeListPosition($2) + useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) + $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -556,16 +560,20 @@ use_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) alias.GetNode().Position = position.NewTokenPosition($4) - $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) + asAlias.GetNode().Position = position.NewTokensPosition($3, $4) + useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -606,15 +614,17 @@ use_function_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -622,14 +632,16 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewNodeListPosition($2) + useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) + $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -637,16 +649,20 @@ use_function_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) alias.GetNode().Position = position.NewTokenPosition($4) - $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) + asAlias.GetNode().Position = position.NewTokensPosition($3, $4) + useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -687,15 +703,17 @@ use_const_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -703,14 +721,16 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name { name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewNodeListPosition($2) + useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) + $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -718,16 +738,20 @@ use_const_declaration: { name := &ast.NameName{ast.Node{}, $2} alias := &ast.Identifier{ast.Node{}, $4.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} + $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} // save position name.GetNode().Position = position.NewNodeListPosition($2) alias.GetNode().Position = position.NewTokenPosition($4) - $$.GetNode().Position = position.NewNodeListTokenPosition($2, $4) + asAlias.GetNode().Position = position.NewTokensPosition($3, $4) + useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) + $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 7c4c4c6..07cbd58 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -9,6 +9,8 @@ import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" ) @@ -8594,7 +8596,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3295, + StartPos: 3294, EndPos: 3298, }, }, @@ -8604,7 +8606,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3295, + StartPos: 3294, EndPos: 3298, }, }, @@ -8649,7 +8651,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3305, + StartPos: 3304, EndPos: 3315, }, }, @@ -8659,7 +8661,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3305, + StartPos: 3304, EndPos: 3315, }, }, @@ -8965,7 +8967,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 159, EndLine: 159, - StartPos: 3371, + StartPos: 3370, EndPos: 3374, }, }, @@ -9085,7 +9087,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 160, EndLine: 160, - StartPos: 3402, + StartPos: 3401, EndPos: 3412, }, }, @@ -9205,7 +9207,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 161, EndLine: 161, - StartPos: 3430, + StartPos: 3429, EndPos: 3433, }, }, @@ -9325,7 +9327,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3458, + StartPos: 3457, EndPos: 3468, }, }, @@ -22214,6 +22216,7 @@ func TestPhp5(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22352,6 +22355,7 @@ func TestPhp5Strings(t *testing.T) { php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22579,6 +22583,7 @@ CAD; php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 22f0676..99ac89f 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -8,6 +8,8 @@ import ( "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/position" ) @@ -62,6 +64,7 @@ func TestIdentifier(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -956,6 +959,7 @@ func TestPhp7ArgumentNode(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1809,6 +1813,7 @@ func TestPhp7ParameterNode(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1831,6 +1836,7 @@ func TestCommentEndFile(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1909,6 +1915,7 @@ func TestName(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1985,6 +1992,7 @@ func TestFullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2061,6 +2069,7 @@ func TestRelative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2140,6 +2149,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2217,6 +2227,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2305,6 +2316,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2403,6 +2415,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2512,6 +2525,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2589,6 +2603,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2687,6 +2702,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2795,6 +2811,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2887,6 +2904,7 @@ LBL; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2979,6 +2997,7 @@ LBL; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3039,6 +3058,7 @@ LBL; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3085,6 +3105,7 @@ CAD; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3145,6 +3166,7 @@ CAD; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3190,6 +3212,7 @@ func TestScalarMagicConstant(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3234,6 +3257,7 @@ func TestScalarNumber_LNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3278,6 +3302,7 @@ func TestScalarNumber_DNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3322,6 +3347,7 @@ func TestScalarNumber_Float(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3366,6 +3392,7 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3410,6 +3437,7 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3454,6 +3482,7 @@ func TestScalarNumber_HLNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3498,6 +3527,7 @@ func TestScalarNumber_HDNumber(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3542,6 +3572,7 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3586,6 +3617,7 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3632,6 +3664,7 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3676,6 +3709,7 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3722,6 +3756,7 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3792,6 +3827,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3905,6 +3941,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3995,6 +4032,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4173,6 +4211,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4308,6 +4347,7 @@ func TestStmtClassConstList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4430,6 +4470,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4509,6 +4550,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4658,6 +4700,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4784,6 +4827,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4899,6 +4943,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5026,6 +5071,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5071,6 +5117,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5129,6 +5176,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5220,6 +5268,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5313,6 +5362,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5429,6 +5479,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5584,6 +5635,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5683,6 +5735,7 @@ func TestStmtConstList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5749,6 +5802,7 @@ func TestStmtContinue_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5826,6 +5880,7 @@ func TestStmtContinue_Light(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5903,6 +5958,7 @@ func TestStmtContinue(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5980,6 +6036,7 @@ func TestStmtDeclare(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6090,6 +6147,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6169,6 +6227,7 @@ func TestStmtDeclare_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6224,6 +6283,7 @@ func TestStmtDo(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6291,6 +6351,7 @@ func TestStmtEcho(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6347,6 +6408,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6391,6 +6453,7 @@ func TestStmtExpression(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6587,6 +6650,7 @@ func TestStmtFor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6708,6 +6772,7 @@ func TestStmtFor_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6794,6 +6859,7 @@ func TestStmtForeach(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6870,6 +6936,7 @@ func TestStmtForeach_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6956,6 +7023,7 @@ func TestStmtForeach_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7063,6 +7131,7 @@ func TestStmtForeach_WithKey(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7160,6 +7229,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7277,6 +7347,7 @@ func TestStmtForeach_WithRef(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7406,6 +7477,7 @@ func TestStmtForeach_WithList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7452,6 +7524,7 @@ func TestStmtFunction(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7509,6 +7582,7 @@ func TestStmtFunction_Return(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7673,6 +7747,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7741,6 +7816,7 @@ func TestStmtFunction_Ref(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7810,6 +7886,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7866,6 +7943,7 @@ func TestStmtGlobal(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8027,6 +8105,7 @@ func TestStmtGlobal_Vars(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8092,6 +8171,7 @@ func TestStmtGotoLabel(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8125,6 +8205,7 @@ func TestStmtHaltCompiler(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8190,6 +8271,7 @@ func TestStmtIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8299,6 +8381,7 @@ func TestStmtIf_ElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8385,6 +8468,7 @@ func TestStmtIf_Else(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8557,6 +8641,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8739,6 +8824,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8783,6 +8869,7 @@ func TestStmtInlineHtml(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8828,6 +8915,7 @@ func TestStmtInterface(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8908,6 +8996,7 @@ func TestStmtInterface_Extend(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9011,6 +9100,7 @@ func TestStmtInterface_Extends(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9067,6 +9157,7 @@ func TestStmtNamespace(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9124,6 +9215,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9158,6 +9250,7 @@ func TestStmtNamespace_Anonymous(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9260,6 +9353,7 @@ func TestStmtProperty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9415,6 +9509,7 @@ func TestStmtProperty_Properties(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9570,6 +9665,7 @@ func TestStmtProperty_Properties2(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9695,6 +9791,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9761,6 +9858,7 @@ func TestStmtStaticVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9869,6 +9967,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9977,6 +10076,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10104,6 +10204,7 @@ func TestStmtSwitch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10231,6 +10332,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10348,6 +10450,7 @@ func TestStmtSwitch_Alt(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10453,6 +10556,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10507,6 +10611,7 @@ func TestStmtThrow(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10552,6 +10657,7 @@ func TestStmtTrait(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10643,6 +10749,7 @@ func TestStmtTraitUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10757,6 +10864,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10871,6 +10979,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11029,6 +11138,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11198,6 +11308,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11481,6 +11592,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11518,6 +11630,7 @@ func TestStmtTry_Try(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11613,6 +11726,7 @@ func TestStmtTry_TryCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11731,6 +11845,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11883,6 +11998,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11989,6 +12105,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12196,6 +12313,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12252,6 +12370,7 @@ func TestStmtUnset(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12329,6 +12448,7 @@ func TestStmtUnset_Vars(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12406,6 +12526,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12484,6 +12605,7 @@ func TestStmtUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12514,7 +12636,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -12524,7 +12646,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 11, }, }, @@ -12562,6 +12684,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12592,7 +12715,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -12602,7 +12725,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 8, + StartPos: 7, EndPos: 18, }, }, @@ -12651,6 +12774,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12762,6 +12886,7 @@ func TestStmtUse_List(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12884,6 +13009,7 @@ func TestStmtUse_ListAlias(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12977,7 +13103,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, + StartPos: 21, EndPos: 25, }, }, @@ -13016,6 +13142,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13120,7 +13247,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 29, + StartPos: 28, EndPos: 39, }, }, @@ -13170,6 +13297,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13264,7 +13392,7 @@ func TestStmtUse_ListConstType(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 19, + StartPos: 18, EndPos: 22, }, }, @@ -13303,6 +13431,7 @@ func TestStmtUse_ListConstType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13407,7 +13536,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, + StartPos: 25, EndPos: 36, }, }, @@ -13457,6 +13586,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13601,6 +13731,7 @@ func TestStmtUse_GroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13756,6 +13887,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13921,6 +14053,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14086,6 +14219,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14272,6 +14406,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14338,6 +14473,7 @@ func TestStmtBreak_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14415,6 +14551,7 @@ func TestStmtBreak_Light(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14492,6 +14629,7 @@ func TestStmtBreak(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14569,6 +14707,7 @@ func TestExprArrayDimFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14665,6 +14804,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14709,6 +14849,7 @@ func TestExprArray(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14775,6 +14916,7 @@ func TestExprArray_Item(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14894,6 +15036,7 @@ func TestExprArray_Items(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14971,6 +15114,7 @@ func TestExprArray_ItemUnpack(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15037,6 +15181,7 @@ func TestExprArrowFunction(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15126,6 +15271,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15190,6 +15336,7 @@ func TestExprBitwiseNot(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15254,6 +15401,7 @@ func TestExprBooleanNot(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15331,6 +15479,7 @@ func TestExprClassConstFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15396,6 +15545,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15460,6 +15610,7 @@ func TestExprClone_Brackets(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15524,6 +15675,7 @@ func TestExprClone(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15570,6 +15722,7 @@ func TestExprClosure(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15744,6 +15897,7 @@ func TestExprClosure_Use(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15918,6 +16072,7 @@ func TestExprClosure_Use2(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15987,6 +16142,7 @@ func TestExprClosure_ReturnType(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16053,6 +16209,7 @@ func TestExprConstFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16119,6 +16276,7 @@ func TestExprConstFetch_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16185,6 +16343,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16249,6 +16408,7 @@ func TestExprEmpty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16313,6 +16473,7 @@ func TestExprErrorSuppress(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16377,6 +16538,7 @@ func TestExprEval(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16421,6 +16583,7 @@ func TestExprExit(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16465,6 +16628,7 @@ func TestExprExit_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16530,6 +16694,7 @@ func TestExprExit_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16574,6 +16739,7 @@ func TestExprDie(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16618,6 +16784,7 @@ func TestExprDie_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16683,6 +16850,7 @@ func TestExprDie_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16759,6 +16927,7 @@ func TestExprFunctionCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16835,6 +17004,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16936,6 +17106,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17055,6 +17226,7 @@ func TestExprFunctionCall_Var(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17187,6 +17359,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17251,6 +17424,7 @@ func TestExprPostDec(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17315,6 +17489,7 @@ func TestExprPostInc(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17379,6 +17554,7 @@ func TestExprPreDec(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17443,6 +17619,7 @@ func TestExprPreInc(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17507,6 +17684,7 @@ func TestExprInclude(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17571,6 +17749,7 @@ func TestExprInclude_Once(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17635,6 +17814,7 @@ func TestExprRequire(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17699,6 +17879,7 @@ func TestExprRequire_Once(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17786,6 +17967,7 @@ func TestExprInstanceOf(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17873,6 +18055,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17960,6 +18143,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18026,6 +18210,7 @@ func TestExprIsset(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18113,6 +18298,7 @@ func TestExprIsset_Variables(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18188,6 +18374,7 @@ func TestExprList_Empty(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18295,6 +18482,7 @@ func TestExprList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18412,6 +18600,7 @@ func TestExprList_ArrayIndex(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18541,6 +18730,7 @@ func TestExprList_List(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18649,6 +18839,7 @@ func TestExprList_EmptyItem(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18759,6 +18950,7 @@ func TestExprList_EmptyItems(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18844,6 +19036,7 @@ func TestExprMethodCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18910,6 +19103,7 @@ func TestExprNew(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18986,6 +19180,7 @@ func TestExprNew_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19062,6 +19257,7 @@ func TestExprNew_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19194,6 +19390,7 @@ func TestExprNew_Anonymous(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19258,6 +19455,7 @@ func TestExprPrint(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19333,6 +19531,7 @@ func TestExprPropertyFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19451,6 +19650,7 @@ func TestExprReference_ForeachWithRef(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19528,6 +19728,7 @@ func TestExprShellExec(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19572,6 +19773,7 @@ func TestExprShortArray(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19638,6 +19840,7 @@ func TestExprShortArray_Item(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19757,6 +19960,7 @@ func TestExprShortArray_Items(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19864,6 +20068,7 @@ func TestExprShortList(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19981,6 +20186,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20110,6 +20316,7 @@ func TestExprShortList_List(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20197,6 +20404,7 @@ func TestExprStaticCall(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20284,6 +20492,7 @@ func TestExprStaticCall_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20371,6 +20580,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20468,6 +20678,7 @@ func TestExprStaticCall_Var(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20563,6 +20774,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20650,6 +20862,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20737,6 +20950,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20824,6 +21038,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20930,6 +21145,7 @@ func TestExprTernary(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21015,6 +21231,7 @@ func TestExprTernary_Simple(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21173,6 +21390,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21331,6 +21549,7 @@ func TestExprTernary_NestedCond(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21395,6 +21614,7 @@ func TestExprUnaryMinus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21459,6 +21679,7 @@ func TestExprUnaryPlus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21513,6 +21734,7 @@ func TestExprVariable(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21577,6 +21799,7 @@ func TestExprVariable_Variable(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21620,6 +21843,7 @@ func TestExprYield(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21684,6 +21908,7 @@ func TestExprYield_Val(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21769,6 +21994,7 @@ func TestExprYield_KeyVal(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21823,6 +22049,7 @@ func TestExprYield_Expr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21898,6 +22125,7 @@ func TestExprYield_KeyExpr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21962,6 +22190,7 @@ func TestExprYieldFrom(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22049,6 +22278,7 @@ func TestExprAssign_Assign(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22134,6 +22364,7 @@ func TestExprAssign_Reference(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22231,6 +22462,7 @@ func TestExprAssign_ReferenceNew(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22373,6 +22605,7 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22458,6 +22691,7 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22543,6 +22777,7 @@ func TestExprAssign_BitwiseOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22628,6 +22863,7 @@ func TestExprAssign_BitwiseXor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22713,6 +22949,7 @@ func TestExprAssign_Concat(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22798,6 +23035,7 @@ func TestExprAssign_Div(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22883,6 +23121,7 @@ func TestExprAssign_Minus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22968,6 +23207,7 @@ func TestExprAssign_Mod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23053,6 +23293,7 @@ func TestExprAssign_Mul(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23138,6 +23379,7 @@ func TestExprAssign_Plus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23223,6 +23465,7 @@ func TestExprAssign_Pow(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23308,6 +23551,7 @@ func TestExprAssign_ShiftLeft(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23393,6 +23637,7 @@ func TestExprAssign_ShiftRight(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23478,6 +23723,7 @@ func TestExprAssign_Coalesce(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23565,6 +23811,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23650,6 +23897,7 @@ func TestExprBinary_BitwiseOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23735,6 +23983,7 @@ func TestExprBinary_BitwiseXor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23820,6 +24069,7 @@ func TestExprBinary_BooleanAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23905,6 +24155,7 @@ func TestExprBinary_BooleanOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23990,6 +24241,7 @@ func TestExprBinary_Coalesce(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24075,6 +24327,7 @@ func TestExprBinary_Concat(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24160,6 +24413,7 @@ func TestExprBinary_Div(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24245,6 +24499,7 @@ func TestExprBinary_Equal(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24330,6 +24585,7 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24415,6 +24671,7 @@ func TestExprBinary_Greater(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24500,6 +24757,7 @@ func TestExprBinary_Identical(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24585,6 +24843,7 @@ func TestExprBinary_LogicalAnd(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24670,6 +24929,7 @@ func TestExprBinary_LogicalOr(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24755,6 +25015,7 @@ func TestExprBinary_LogicalXor(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24840,6 +25101,7 @@ func TestExprBinary_Minus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24925,6 +25187,7 @@ func TestExprBinary_Mod(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25010,6 +25273,7 @@ func TestExprBinary_Mul(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25095,6 +25359,7 @@ func TestExprBinary_NotEqual(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25180,6 +25445,7 @@ func TestExprBinary_NotIdentical(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25265,6 +25531,7 @@ func TestExprBinary_Plus(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25350,6 +25617,7 @@ func TestExprBinary_Pow(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25435,6 +25703,7 @@ func TestExprBinary_ShiftLeft(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25520,6 +25789,7 @@ func TestExprBinary_ShiftRight(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25605,6 +25875,7 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25690,6 +25961,7 @@ func TestExprBinary_Smaller(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25775,6 +26047,7 @@ func TestExprBinary_Spaceship(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25841,6 +26114,7 @@ func TestExprCast_Array(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25905,6 +26179,7 @@ func TestExprCast_Bool(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25969,6 +26244,7 @@ func TestExprCast_BoolShort(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26033,6 +26309,7 @@ func TestExprCast_Double(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26097,6 +26374,7 @@ func TestExprCast_CastFloat(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26161,6 +26439,7 @@ func TestExprCast_Int(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26225,6 +26504,7 @@ func TestExprCast_IntShort(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26289,6 +26569,7 @@ func TestExprCast_Object(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26353,6 +26634,7 @@ func TestExprCast_String(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26417,6 +26699,7 @@ func TestExprCast_BinaryString(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26481,5 +26764,6 @@ func TestExprCast_Unset(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e8f3682..d650f60 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5597 +// line internal/php7/php7.y:5623 // line yacctab:1 var yyExca = [...]int{ @@ -2916,109 +2916,129 @@ yydefault: { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[6].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:649 + // line internal/php7/php7.y:653 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[7].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[7].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) } - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:674 + // line internal/php7/php7.y:684 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[6].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:695 + // line internal/php7/php7.y:709 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) + useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[7].token) + useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[7].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.Tokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) } - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:720 + // line internal/php7/php7.y:740 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:724 + // line internal/php7/php7.y:744 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:731 + // line internal/php7/php7.y:751 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3029,7 +3049,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:740 + // line internal/php7/php7.y:760 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3037,7 +3057,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:749 + // line internal/php7/php7.y:769 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3048,7 +3068,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:758 + // line internal/php7/php7.y:778 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3056,7 +3076,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:767 + // line internal/php7/php7.y:787 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3067,7 +3087,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:776 + // line internal/php7/php7.y:796 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3075,7 +3095,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:785 + // line internal/php7/php7.y:805 { yyVAL.node = yyDollar[1].node @@ -3083,7 +3103,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:791 + // line internal/php7/php7.y:811 { yyVAL.node = &ast.StmtUseType{ast.Node{}, yyDollar[1].node, yyDollar[2].node} @@ -3094,7 +3114,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:803 + // line internal/php7/php7.y:823 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -3107,26 +3127,28 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:814 + // line internal/php7/php7.y:834 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:834 + // line internal/php7/php7.y:856 { yyVAL.node = yyDollar[1].node @@ -3134,18 +3156,22 @@ yydefault: } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:840 + // line internal/php7/php7.y:862 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, yyDollar[2].node} + + // save position + yyDollar[2].node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:852 + // line internal/php7/php7.y:878 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3156,7 +3182,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:861 + // line internal/php7/php7.y:887 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3164,7 +3190,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:870 + // line internal/php7/php7.y:896 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3179,7 +3205,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:883 + // line internal/php7/php7.y:909 { yyVAL.list = []ast.Vertex{} @@ -3187,7 +3213,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:892 + // line internal/php7/php7.y:918 { // error yyVAL.node = nil @@ -3196,7 +3222,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:899 + // line internal/php7/php7.y:925 { yyVAL.node = yyDollar[1].node @@ -3204,7 +3230,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:905 + // line internal/php7/php7.y:931 { yyVAL.node = yyDollar[1].node @@ -3212,7 +3238,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:911 + // line internal/php7/php7.y:937 { yyVAL.node = yyDollar[1].node @@ -3220,7 +3246,7 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:917 + // line internal/php7/php7.y:943 { yyVAL.node = yyDollar[1].node @@ -3228,7 +3254,7 @@ yydefault: } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:923 + // line internal/php7/php7.y:949 { yyVAL.node = yyDollar[1].node @@ -3236,7 +3262,7 @@ yydefault: } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:929 + // line internal/php7/php7.y:955 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3251,7 +3277,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:944 + // line internal/php7/php7.y:970 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3266,7 +3292,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:957 + // line internal/php7/php7.y:983 { yyVAL.node = yyDollar[1].node @@ -3274,7 +3300,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:963 + // line internal/php7/php7.y:989 { yyVAL.node = yyDollar[1].node @@ -3282,7 +3308,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:969 + // line internal/php7/php7.y:995 { switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3305,7 +3331,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:990 + // line internal/php7/php7.y:1016 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} @@ -3324,7 +3350,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1007 + // line internal/php7/php7.y:1033 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3353,7 +3379,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1034 + // line internal/php7/php7.y:1060 { switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3378,7 +3404,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1083 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3394,7 +3420,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1071 + // line internal/php7/php7.y:1097 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3410,7 +3436,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1111 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3426,7 +3452,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1099 + // line internal/php7/php7.y:1125 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3442,7 +3468,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1113 + // line internal/php7/php7.y:1139 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3458,7 +3484,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1127 + // line internal/php7/php7.y:1153 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3475,7 +3501,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1142 + // line internal/php7/php7.y:1168 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3489,7 +3515,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1154 + // line internal/php7/php7.y:1180 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3505,7 +3531,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1168 + // line internal/php7/php7.y:1194 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3527,7 +3553,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1188 + // line internal/php7/php7.y:1214 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3553,7 +3579,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1213 + // line internal/php7/php7.y:1239 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3582,7 +3608,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1240 + // line internal/php7/php7.y:1266 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3599,7 +3625,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1255 + // line internal/php7/php7.y:1281 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3614,7 +3640,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1268 + // line internal/php7/php7.y:1294 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3633,7 +3659,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1311 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3649,7 +3675,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1299 + // line internal/php7/php7.y:1325 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3668,7 +3694,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1342 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3685,7 +3711,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1333 + // line internal/php7/php7.y:1359 { yyVAL.list = []ast.Vertex{} @@ -3693,7 +3719,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1339 + // line internal/php7/php7.y:1365 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3717,7 +3743,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1363 + // line internal/php7/php7.y:1389 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3725,7 +3751,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1369 + // line internal/php7/php7.y:1395 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3736,7 +3762,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1407 { yyVAL.node = nil @@ -3744,7 +3770,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1387 + // line internal/php7/php7.y:1413 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3760,7 +3786,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1404 + // line internal/php7/php7.y:1430 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3768,7 +3794,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1410 + // line internal/php7/php7.y:1436 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3779,7 +3805,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1422 + // line internal/php7/php7.y:1448 { yyVAL.node = yyDollar[1].node @@ -3787,7 +3813,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1431 + // line internal/php7/php7.y:1457 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3819,31 +3845,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1464 + // line internal/php7/php7.y:1490 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1494 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1475 + // line internal/php7/php7.y:1501 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1479 + // line internal/php7/php7.y:1505 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1486 + // line internal/php7/php7.y:1512 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3863,7 +3889,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1504 + // line internal/php7/php7.y:1530 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3882,7 +3908,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1524 + // line internal/php7/php7.y:1550 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3890,7 +3916,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1530 + // line internal/php7/php7.y:1556 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3898,7 +3924,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1565 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3912,7 +3938,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1577 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3926,7 +3952,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1566 + // line internal/php7/php7.y:1592 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3945,7 +3971,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1586 + // line internal/php7/php7.y:1612 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3964,7 +3990,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1606 + // line internal/php7/php7.y:1632 { yyVAL.ClassExtends = nil @@ -3972,7 +3998,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1612 + // line internal/php7/php7.y:1638 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3986,7 +4012,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1627 + // line internal/php7/php7.y:1653 { yyVAL.InterfaceExtends = nil @@ -3994,7 +4020,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1633 + // line internal/php7/php7.y:1659 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4008,7 +4034,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1648 + // line internal/php7/php7.y:1674 { yyVAL.ClassImplements = nil @@ -4016,7 +4042,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1680 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4030,7 +4056,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1669 + // line internal/php7/php7.y:1695 { yyVAL.node = yyDollar[1].node @@ -4038,7 +4064,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1701 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4052,7 +4078,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1687 + // line internal/php7/php7.y:1713 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4068,7 +4094,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1701 + // line internal/php7/php7.y:1727 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4083,7 +4109,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1717 + // line internal/php7/php7.y:1743 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4094,7 +4120,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1726 + // line internal/php7/php7.y:1752 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4113,7 +4139,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1746 + // line internal/php7/php7.y:1772 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4124,7 +4150,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1755 + // line internal/php7/php7.y:1781 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4143,7 +4169,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1775 + // line internal/php7/php7.y:1801 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4154,7 +4180,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1784 + // line internal/php7/php7.y:1810 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4173,7 +4199,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1830 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4190,7 +4216,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1819 + // line internal/php7/php7.y:1845 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4208,7 +4234,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1835 + // line internal/php7/php7.y:1861 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4227,7 +4253,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1852 + // line internal/php7/php7.y:1878 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4248,7 +4274,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1874 + // line internal/php7/php7.y:1900 { yyVAL.list = []ast.Vertex{} @@ -4256,7 +4282,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1880 + // line internal/php7/php7.y:1906 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4273,7 +4299,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1895 + // line internal/php7/php7.y:1921 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4290,19 +4316,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1913 + // line internal/php7/php7.y:1939 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1917 + // line internal/php7/php7.y:1943 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1924 + // line internal/php7/php7.y:1950 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4313,7 +4339,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1933 + // line internal/php7/php7.y:1959 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4332,7 +4358,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1953 + // line internal/php7/php7.y:1979 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} @@ -4348,7 +4374,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1993 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) @@ -4368,7 +4394,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1988 + // line internal/php7/php7.y:2014 { yyVAL.node = yyDollar[1].node @@ -4376,7 +4402,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1994 + // line internal/php7/php7.y:2020 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4394,7 +4420,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2013 + // line internal/php7/php7.y:2039 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} @@ -4413,7 +4439,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2030 + // line internal/php7/php7.y:2056 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} @@ -4435,7 +4461,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2079 { yyVAL.node = yyDollar[1].node @@ -4451,7 +4477,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2067 + // line internal/php7/php7.y:2093 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} _else := &ast.StmtAltElse{ast.Node{}, stmts} @@ -4475,7 +4501,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2092 + // line internal/php7/php7.y:2118 { yyVAL.list = yyDollar[1].list @@ -4483,7 +4509,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2124 { yyVAL.list = nil @@ -4491,7 +4517,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2133 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4499,7 +4525,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2113 + // line internal/php7/php7.y:2139 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4510,7 +4536,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2125 + // line internal/php7/php7.y:2151 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4548,7 +4574,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2161 + // line internal/php7/php7.y:2187 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4587,7 +4613,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2201 + // line internal/php7/php7.y:2227 { yyVAL.node = nil @@ -4595,7 +4621,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2233 { yyVAL.node = yyDollar[1].node @@ -4603,7 +4629,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2216 + // line internal/php7/php7.y:2242 { yyVAL.node = yyDollar[1].node @@ -4611,7 +4637,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2248 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4625,7 +4651,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2263 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4639,7 +4665,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2249 + // line internal/php7/php7.y:2275 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4653,7 +4679,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2261 + // line internal/php7/php7.y:2287 { yyVAL.node = yyDollar[1].node @@ -4661,7 +4687,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2296 { yyVAL.node = nil @@ -4669,7 +4695,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2276 + // line internal/php7/php7.y:2302 { yyVAL.node = yyDollar[2].node @@ -4680,7 +4706,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2314 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4695,7 +4721,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2301 + // line internal/php7/php7.y:2327 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4714,7 +4740,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2321 + // line internal/php7/php7.y:2347 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4722,7 +4748,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2353 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4733,7 +4759,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2339 + // line internal/php7/php7.y:2365 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4747,7 +4773,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2351 + // line internal/php7/php7.y:2377 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4761,7 +4787,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2392 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4772,7 +4798,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2401 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4780,7 +4806,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2384 + // line internal/php7/php7.y:2410 { yyVAL.node = yyDollar[1].node @@ -4788,7 +4814,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2419 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4799,7 +4825,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2428 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4807,7 +4833,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2437 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4825,7 +4851,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2427 + // line internal/php7/php7.y:2453 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4844,7 +4870,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2473 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4852,7 +4878,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2453 + // line internal/php7/php7.y:2479 { yyVAL.list = []ast.Vertex{} @@ -4860,7 +4886,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2488 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4876,7 +4902,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2502 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4897,7 +4923,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2495 + // line internal/php7/php7.y:2521 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4911,7 +4937,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2507 + // line internal/php7/php7.y:2533 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4944,7 +4970,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2541 + // line internal/php7/php7.y:2567 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4952,7 +4978,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2547 + // line internal/php7/php7.y:2573 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4963,7 +4989,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2559 + // line internal/php7/php7.y:2585 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4977,7 +5003,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2598 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4991,7 +5017,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2584 + // line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5005,7 +5031,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2599 + // line internal/php7/php7.y:2625 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5013,7 +5039,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2605 + // line internal/php7/php7.y:2631 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5021,7 +5047,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2614 + // line internal/php7/php7.y:2640 { yyVAL.node = yyDollar[1].node @@ -5033,7 +5059,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2624 + // line internal/php7/php7.y:2650 { yyVAL.node = yyDollar[1].node @@ -5045,7 +5071,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2637 + // line internal/php7/php7.y:2663 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5060,7 +5086,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2679 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5078,7 +5104,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2695 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5096,7 +5122,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2685 + // line internal/php7/php7.y:2711 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5114,7 +5140,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2701 + // line internal/php7/php7.y:2727 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5129,7 +5155,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2717 + // line internal/php7/php7.y:2743 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5145,7 +5171,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2757 { yyVAL.node = yyDollar[1].node @@ -5153,7 +5179,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2766 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5171,7 +5197,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2759 + // line internal/php7/php7.y:2785 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5186,7 +5212,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2772 + // line internal/php7/php7.y:2798 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5201,7 +5227,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2814 { yyVAL.list = yyDollar[1].list @@ -5209,7 +5235,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2794 + // line internal/php7/php7.y:2820 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5224,7 +5250,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2810 + // line internal/php7/php7.y:2836 { yyVAL.list = nil @@ -5232,7 +5258,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2816 + // line internal/php7/php7.y:2842 { yyVAL.list = yyDollar[1].list @@ -5240,7 +5266,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2825 + // line internal/php7/php7.y:2851 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5248,7 +5274,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2831 + // line internal/php7/php7.y:2857 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5256,7 +5282,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2840 + // line internal/php7/php7.y:2866 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5270,7 +5296,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2878 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5284,7 +5310,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2864 + // line internal/php7/php7.y:2890 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5298,7 +5324,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2876 + // line internal/php7/php7.y:2902 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5312,7 +5338,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2888 + // line internal/php7/php7.y:2914 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5326,7 +5352,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2926 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5340,7 +5366,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2941 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5351,7 +5377,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2924 + // line internal/php7/php7.y:2950 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5359,7 +5385,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2959 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5377,7 +5403,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2949 + // line internal/php7/php7.y:2975 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5396,7 +5422,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2995 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5407,7 +5433,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2978 + // line internal/php7/php7.y:3004 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5415,7 +5441,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2987 + // line internal/php7/php7.y:3013 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5432,7 +5458,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3005 + // line internal/php7/php7.y:3031 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5449,7 +5475,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3049 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5460,7 +5486,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3032 + // line internal/php7/php7.y:3058 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5468,7 +5494,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3067 { yyVAL.node = yyDollar[1].node @@ -5476,7 +5502,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3076 { yyVAL.list = nil @@ -5484,7 +5510,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3056 + // line internal/php7/php7.y:3082 { yyVAL.list = yyDollar[1].list @@ -5492,7 +5518,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3065 + // line internal/php7/php7.y:3091 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5503,7 +5529,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3074 + // line internal/php7/php7.y:3100 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5511,7 +5537,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3109 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5531,7 +5557,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3130 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5548,7 +5574,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3119 + // line internal/php7/php7.y:3145 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5562,7 +5588,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3160 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5581,7 +5607,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3151 + // line internal/php7/php7.y:3177 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5599,7 +5625,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3167 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5640,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3180 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5630,7 +5656,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3194 + // line internal/php7/php7.y:3220 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5644,7 +5670,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3232 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5659,7 +5685,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5674,7 +5700,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3232 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5715,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5730,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5745,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5760,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5749,7 +5775,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5790,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5779,7 +5805,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5820,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5835,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5850,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5865,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5854,7 +5880,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5868,7 +5894,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3400 + // line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5883,7 +5909,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3413 + // line internal/php7/php7.y:3439 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5897,7 +5923,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3425 + // line internal/php7/php7.y:3451 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5912,7 +5938,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3438 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5927,7 +5953,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3451 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5942,7 +5968,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5957,7 +5983,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5972,7 +5998,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5987,7 +6013,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6002,7 +6028,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6017,7 +6043,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6032,7 +6058,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6047,7 +6073,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6062,7 +6088,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6077,7 +6103,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6092,7 +6118,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3620 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6107,7 +6133,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6122,7 +6148,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6137,7 +6163,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6152,7 +6178,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6166,7 +6192,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3658 + // line internal/php7/php7.y:3684 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6180,7 +6206,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3670 + // line internal/php7/php7.y:3696 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6194,7 +6220,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3682 + // line internal/php7/php7.y:3708 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6208,7 +6234,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3720 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6223,7 +6249,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3707 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6238,7 +6264,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6253,7 +6279,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6269,7 +6295,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3747 + // line internal/php7/php7.y:3773 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6284,7 +6310,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3760 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6299,7 +6325,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3773 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6314,7 +6340,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6329,7 +6355,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6344,7 +6370,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6359,7 +6385,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3851 { yyVAL.node = yyDollar[2].node @@ -6371,7 +6397,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3835 + // line internal/php7/php7.y:3861 { yyVAL.node = yyDollar[1].node @@ -6379,7 +6405,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3867 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6395,7 +6421,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3855 + // line internal/php7/php7.y:3881 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6411,7 +6437,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3869 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6426,7 +6452,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3908 { yyVAL.node = yyDollar[1].node @@ -6434,7 +6460,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3888 + // line internal/php7/php7.y:3914 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6449,7 +6475,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3901 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6464,7 +6490,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3914 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6479,7 +6505,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6494,7 +6520,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6509,7 +6535,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6524,7 +6550,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6539,7 +6565,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:4005 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6568,7 +6594,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4006 + // line internal/php7/php7.y:4032 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6582,7 +6608,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4044 { yyVAL.node = yyDollar[1].node @@ -6590,7 +6616,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4024 + // line internal/php7/php7.y:4050 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6604,7 +6630,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4062 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6618,7 +6644,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4074 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6632,7 +6658,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4060 + // line internal/php7/php7.y:4086 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6646,7 +6672,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4098 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6661,7 +6687,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4085 + // line internal/php7/php7.y:4111 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6675,7 +6701,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4123 { yyVAL.node = yyDollar[1].node @@ -6683,7 +6709,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4103 + // line internal/php7/php7.y:4129 { yyVAL.node = yyDollar[2].node @@ -6706,7 +6732,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4126 + // line internal/php7/php7.y:4152 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6739,7 +6765,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4155 + // line internal/php7/php7.y:4181 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6767,19 +6793,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4213 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4191 + // line internal/php7/php7.y:4217 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4198 + // line internal/php7/php7.y:4224 { yyVAL.ClosureUse = nil @@ -6787,7 +6813,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4204 + // line internal/php7/php7.y:4230 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6803,7 +6829,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4247 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6814,7 +6840,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4256 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6822,7 +6848,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4265 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6838,7 +6864,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4253 + // line internal/php7/php7.y:4279 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6857,7 +6883,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4273 + // line internal/php7/php7.y:4299 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6871,7 +6897,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4311 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6886,7 +6912,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4324 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6901,7 +6927,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4311 + // line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6915,7 +6941,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4326 + // line internal/php7/php7.y:4352 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6929,7 +6955,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4338 + // line internal/php7/php7.y:4364 { yyVAL.node = yyDollar[1].node @@ -6937,7 +6963,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4347 + // line internal/php7/php7.y:4373 { yyVAL.node = yyDollar[1].node @@ -6945,7 +6971,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4379 { yyVAL.node = yyDollar[1].node @@ -6953,7 +6979,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4362 + // line internal/php7/php7.y:4388 { yyVAL.node = nil @@ -6961,7 +6987,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4394 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6976,7 +7002,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4384 + // line internal/php7/php7.y:4410 { yyVAL.list = []ast.Vertex{} @@ -6984,7 +7010,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4390 + // line internal/php7/php7.y:4416 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6996,7 +7022,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4400 + // line internal/php7/php7.y:4426 { yyVAL.list = yyDollar[1].list @@ -7004,7 +7030,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4409 + // line internal/php7/php7.y:4435 { yyVAL.node = nil @@ -7012,7 +7038,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4415 + // line internal/php7/php7.y:4441 { yyVAL.node = yyDollar[1].node @@ -7020,7 +7046,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4424 + // line internal/php7/php7.y:4450 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7036,7 +7062,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4438 + // line internal/php7/php7.y:4464 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7051,7 +7077,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4451 + // line internal/php7/php7.y:4477 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7065,7 +7091,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4466 + // line internal/php7/php7.y:4492 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7079,7 +7105,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4478 + // line internal/php7/php7.y:4504 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7093,7 +7119,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4516 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7107,7 +7133,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4528 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7121,7 +7147,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4514 + // line internal/php7/php7.y:4540 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7135,7 +7161,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4526 + // line internal/php7/php7.y:4552 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7149,7 +7175,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4564 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7163,7 +7189,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4550 + // line internal/php7/php7.y:4576 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7177,7 +7203,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4562 + // line internal/php7/php7.y:4588 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7191,7 +7217,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4600 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7205,7 +7231,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4586 + // line internal/php7/php7.y:4612 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7221,7 +7247,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4626 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7235,7 +7261,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4612 + // line internal/php7/php7.y:4638 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7249,7 +7275,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4624 + // line internal/php7/php7.y:4650 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7263,7 +7289,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4636 + // line internal/php7/php7.y:4662 { yyVAL.node = yyDollar[1].node @@ -7271,7 +7297,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4642 + // line internal/php7/php7.y:4668 { yyVAL.node = yyDollar[1].node @@ -7279,7 +7305,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4677 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7293,7 +7319,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4689 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7311,7 +7337,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4679 + // line internal/php7/php7.y:4705 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7329,7 +7355,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4698 + // line internal/php7/php7.y:4724 { yyVAL.node = yyDollar[1].node @@ -7337,7 +7363,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4704 + // line internal/php7/php7.y:4730 { yyVAL.node = yyDollar[1].node @@ -7345,7 +7371,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4713 + // line internal/php7/php7.y:4739 { yyVAL.node = nil @@ -7353,7 +7379,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4719 + // line internal/php7/php7.y:4745 { yyVAL.node = yyDollar[1].node @@ -7361,7 +7387,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4728 + // line internal/php7/php7.y:4754 { yyVAL.node = yyDollar[1].node @@ -7369,7 +7395,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4737 + // line internal/php7/php7.y:4763 { yyVAL.node = yyDollar[1].node @@ -7377,7 +7403,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4769 { yyVAL.node = yyDollar[2].node @@ -7389,7 +7415,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4753 + // line internal/php7/php7.y:4779 { yyVAL.node = yyDollar[1].node @@ -7397,7 +7423,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4762 + // line internal/php7/php7.y:4788 { yyVAL.node = yyDollar[1].node @@ -7405,7 +7431,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4768 + // line internal/php7/php7.y:4794 { yyVAL.node = yyDollar[2].node @@ -7417,7 +7443,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4778 + // line internal/php7/php7.y:4804 { yyVAL.node = yyDollar[1].node @@ -7425,43 +7451,13 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4787 + // line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4793 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 434: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4806 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4819 { @@ -7476,9 +7472,39 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 436: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4832 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 435: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4845 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4858 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7493,7 +7519,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4845 + // line internal/php7/php7.y:4871 { yyVAL.node = yyDollar[1].node @@ -7501,7 +7527,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4854 + // line internal/php7/php7.y:4880 { yyVAL.node = yyDollar[1].node @@ -7509,7 +7535,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4860 + // line internal/php7/php7.y:4886 { yyVAL.node = yyDollar[1].node @@ -7517,7 +7543,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4866 + // line internal/php7/php7.y:4892 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7532,7 +7558,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4882 + // line internal/php7/php7.y:4908 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7548,7 +7574,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4896 + // line internal/php7/php7.y:4922 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7564,7 +7590,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4910 + // line internal/php7/php7.y:4936 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7578,7 +7604,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4925 + // line internal/php7/php7.y:4951 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7593,7 +7619,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4938 + // line internal/php7/php7.y:4964 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7608,7 +7634,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4954 + // line internal/php7/php7.y:4980 { yyVAL.node = yyDollar[1].node @@ -7616,7 +7642,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4960 + // line internal/php7/php7.y:4986 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7631,7 +7657,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4973 + // line internal/php7/php7.y:4999 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7646,7 +7672,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4986 + // line internal/php7/php7.y:5012 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7661,7 +7687,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4999 + // line internal/php7/php7.y:5025 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7676,7 +7702,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5012 + // line internal/php7/php7.y:5038 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7691,7 +7717,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5028 + // line internal/php7/php7.y:5054 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7705,7 +7731,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5040 + // line internal/php7/php7.y:5066 { yyVAL.node = yyDollar[2].node @@ -7717,7 +7743,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5050 + // line internal/php7/php7.y:5076 { yyVAL.node = yyDollar[1].node @@ -7725,7 +7751,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5059 + // line internal/php7/php7.y:5085 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7739,7 +7765,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5071 + // line internal/php7/php7.y:5097 { yyVAL.node = yyDollar[2].node @@ -7751,7 +7777,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5081 + // line internal/php7/php7.y:5107 { yyVAL.node = yyDollar[1].node @@ -7759,7 +7785,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5090 + // line internal/php7/php7.y:5116 { yyVAL.list = yyDollar[1].list @@ -7767,7 +7793,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5099 + // line internal/php7/php7.y:5125 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7775,7 +7801,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5105 + // line internal/php7/php7.y:5131 { yyVAL.node = yyDollar[1].node @@ -7783,7 +7809,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5114 + // line internal/php7/php7.y:5140 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7798,7 +7824,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5127 + // line internal/php7/php7.y:5153 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7810,7 +7836,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5140 + // line internal/php7/php7.y:5166 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7825,7 +7851,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5153 + // line internal/php7/php7.y:5179 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7839,7 +7865,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5165 + // line internal/php7/php7.y:5191 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7857,7 +7883,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5181 + // line internal/php7/php7.y:5207 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7873,7 +7899,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5195 + // line internal/php7/php7.y:5221 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7887,7 +7913,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5207 + // line internal/php7/php7.y:5233 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7908,7 +7934,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5226 + // line internal/php7/php7.y:5252 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7927,7 +7953,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5246 + // line internal/php7/php7.y:5272 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7935,7 +7961,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5252 + // line internal/php7/php7.y:5278 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7950,7 +7976,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5265 + // line internal/php7/php7.y:5291 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7958,7 +7984,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5271 + // line internal/php7/php7.y:5297 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7973,7 +7999,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5287 + // line internal/php7/php7.y:5313 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7989,7 +8015,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5301 + // line internal/php7/php7.y:5327 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8008,7 +8034,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5318 + // line internal/php7/php7.y:5344 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8029,7 +8055,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5337 + // line internal/php7/php7.y:5363 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8046,7 +8072,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5352 + // line internal/php7/php7.y:5378 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8065,7 +8091,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5369 + // line internal/php7/php7.y:5395 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8086,7 +8112,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5388 + // line internal/php7/php7.y:5414 { yyVAL.node = yyDollar[2].node @@ -8098,7 +8124,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5401 + // line internal/php7/php7.y:5427 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8112,7 +8138,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5413 + // line internal/php7/php7.y:5439 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8131,7 +8157,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5430 + // line internal/php7/php7.y:5456 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8159,7 +8185,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5456 + // line internal/php7/php7.y:5482 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8175,7 +8201,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5473 + // line internal/php7/php7.y:5499 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8195,7 +8221,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5491 + // line internal/php7/php7.y:5517 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8211,7 +8237,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5505 + // line internal/php7/php7.y:5531 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8225,7 +8251,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5517 + // line internal/php7/php7.y:5543 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8239,7 +8265,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5529 + // line internal/php7/php7.y:5555 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8255,7 +8281,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5543 + // line internal/php7/php7.y:5569 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8269,7 +8295,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5555 + // line internal/php7/php7.y:5581 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8283,7 +8309,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5570 + // line internal/php7/php7.y:5596 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8291,7 +8317,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5576 + // line internal/php7/php7.y:5602 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8302,7 +8328,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5588 + // line internal/php7/php7.y:5614 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index c17bf65..5193903 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -628,42 +628,52 @@ group_use_declaration: { name := &ast.NameName{ast.Node{}, $1} useList := &ast.StmtUseList{ast.Node{}, $4} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($1) useList.GetNode().Position = position.NewNodeListPosition($4) + useListBrackets.GetNode().Position = position.NewTokensPosition($3, $6) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($2, $6) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($2.Tokens, $3.Tokens...)) if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($5.Tokens, $6.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $2} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, $5} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($2) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition($1, name) useList.GetNode().Position = position.NewNodeListPosition($5) + useListBrackets.GetNode().Position = position.NewTokensPosition($4, $7) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($3, $7) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($3.Tokens, $4.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($6.Tokens, $7.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) } - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -674,42 +684,52 @@ mixed_group_use_declaration: { name := &ast.NameName{ast.Node{}, $1} useList := &ast.StmtUseList{ast.Node{}, $4} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($1) useList.GetNode().Position = position.NewNodeListPosition($4) + useListBrackets.GetNode().Position = position.NewTokensPosition($3, $6) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($2, $6) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($2.Tokens, $3.Tokens...)) if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($5.Tokens, $6.Tokens...)) - } else { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.Tokens) } + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { name := &ast.NameName{ast.Node{}, $2} + prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} useList := &ast.StmtUseList{ast.Node{}, $5} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useList} + useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} + useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} + $$ = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} // save position name.GetNode().Position = position.NewNodeListPosition($2) + prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition($1, name) useList.GetNode().Position = position.NewNodeListPosition($5) + useListBrackets.GetNode().Position = position.NewTokensPosition($4, $7) + useListNsSeparator.GetNode().Position = position.NewTokensPosition($3, $7) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloatingTokens(useList, token.Start, append($3.Tokens, $4.Tokens...)) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.Tokens) if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, append($6.Tokens, $7.Tokens...)) - } else { - yylex.(*Parser).setFreeFloating(useList, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) } - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.Tokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -814,15 +834,17 @@ unprefixed_use_declaration: { name := &ast.NameName{ast.Node{}, $1} alias := &ast.Identifier{ast.Node{}, $3.Value} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, alias} + asAlias := &ast.ParserAs{ast.Node{}, alias} + $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} // save position name.GetNode().Position = position.NewNodeListPosition($1) alias.GetNode().Position = position.NewTokenPosition($3) + asAlias.GetNode().Position = position.NewTokensPosition($2, $3) $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(name, token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -838,10 +860,14 @@ use_declaration: } | T_NS_SEPARATOR unprefixed_use_declaration { - $$ = $2; + $$ = &ast.ParserNsSeparator{ast.Node{}, $2} + + // save position + $2.GetNode().Position = position.NewTokenNodePosition($1, $2) + $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 27e217a..49f450b 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -9,6 +9,8 @@ import ( "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/ast/traverser" + "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" ) @@ -9082,7 +9084,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3376, + StartPos: 3375, EndPos: 3379, }, }, @@ -9092,7 +9094,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3376, + StartPos: 3375, EndPos: 3379, }, }, @@ -9137,7 +9139,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3386, + StartPos: 3385, EndPos: 3396, }, }, @@ -9147,7 +9149,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3386, + StartPos: 3385, EndPos: 3396, }, }, @@ -9453,7 +9455,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 166, EndLine: 166, - StartPos: 3452, + StartPos: 3451, EndPos: 3455, }, }, @@ -9573,7 +9575,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 167, EndLine: 167, - StartPos: 3483, + StartPos: 3482, EndPos: 3493, }, }, @@ -9693,7 +9695,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 168, EndLine: 168, - StartPos: 3511, + StartPos: 3510, EndPos: 3514, }, }, @@ -9813,7 +9815,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 169, EndLine: 169, - StartPos: 3539, + StartPos: 3538, EndPos: 3549, }, }, @@ -19597,6 +19599,7 @@ func TestPhp7(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19735,6 +19738,7 @@ func TestPhp5Strings(t *testing.T) { php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19962,6 +19966,7 @@ CAD; php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() + traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 4513b11..4259f92 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -198,4 +198,8 @@ type NodeVisitor interface { NameFullyQualified(n *NameFullyQualified) NameRelative(n *NameRelative) NameNamePart(n *NameNamePart) + + ParserAs(n *ParserAs) + ParserNsSeparator(n *ParserNsSeparator) + ParserBrackets(n *ParserBrackets) } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index b609578..81f6ef4 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1876,3 +1876,30 @@ type NameNamePart struct { func (n *NameNamePart) Accept(v NodeVisitor) { v.NameNamePart(n) } + +type ParserAs struct { + Node + Child Vertex +} + +func (n *ParserAs) Accept(v NodeVisitor) { + v.ParserAs(n) +} + +type ParserNsSeparator struct { + Node + Child Vertex +} + +func (n *ParserNsSeparator) Accept(v NodeVisitor) { + v.ParserNsSeparator(n) +} + +type ParserBrackets struct { + Node + Child Vertex +} + +func (n *ParserBrackets) Accept(v NodeVisitor) { + v.ParserBrackets(n) +} diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index a71c83b..03ebbad 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -2783,6 +2783,42 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } + case *ast.ParserAs: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Child != nil { + t.visitor.Enter("Child", true) + t.Traverse(nn.Child) + t.visitor.Leave("Child", true) + } + case *ast.ParserNsSeparator: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Child != nil { + t.visitor.Enter("Child", true) + t.Traverse(nn.Child) + t.visitor.Leave("Child", true) + } + case *ast.ParserBrackets: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Child != nil { + t.visitor.Enter("Child", true) + t.Traverse(nn.Child) + t.visitor.Leave("Child", true) + } default: panic("unexpected type of node") } diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index fd9e253..312b888 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -1288,3 +1288,21 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) } + +func (v *Dump) ParserAs(n *ast.ParserAs) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ParserAs{\n") + v.printNode(n.GetNode()) +} + +func (v *Dump) ParserNsSeparator(n *ast.ParserNsSeparator) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ParserNsSeparator{\n") + v.printNode(n.GetNode()) +} + +func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { + v.printIndentIfNotSingle(v.indent - 1) + v.print("&ast.ParserBrackets{\n") + v.printNode(n.GetNode()) +} diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go new file mode 100644 index 0000000..c8eaabf --- /dev/null +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -0,0 +1,42 @@ +package visitor + +import ( + "github.com/z7zmey/php-parser/pkg/ast" +) + +type FilterParserNodes struct { + Null +} + +func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { + n.Accept(v) + return true +} + +func (v *FilterParserNodes) StmtGroupUseList(n *ast.StmtGroupUseList) { + if nn, ok := n.Prefix.(*ast.ParserNsSeparator); ok { + n.Prefix = nn.Child + } + + if nn, ok := n.UseList.(*ast.ParserNsSeparator); ok { + n.UseList = nn.Child + } + + if nn, ok := n.UseList.(*ast.ParserBrackets); ok { + n.UseList = nn.Child + } +} + +func (v *FilterParserNodes) StmtUseList(n *ast.StmtUseList) { + for k, v := range n.UseDeclarations { + if nn, ok := v.(*ast.ParserNsSeparator); ok { + n.UseDeclarations[k] = nn.Child + } + } +} + +func (v *FilterParserNodes) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + if nn, ok := n.Alias.(*ast.ParserAs); ok { + n.Alias = nn.Child + } +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index e291500..033a77f 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -713,3 +713,15 @@ func (v *Null) NameRelative(_ *ast.NameRelative) { func (v *Null) NameNamePart(_ *ast.NameNamePart) { // do nothing } + +func (v *Null) ParserAs(_ *ast.ParserAs) { + // do nothing +} + +func (v *Null) ParserNsSeparator(_ *ast.ParserNsSeparator) { + // do nothing +} + +func (v *Null) ParserBrackets(_ *ast.ParserBrackets) { + // do nothing +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4475a12..a5c5db5 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -19,10 +19,9 @@ type Printer struct { w io.Writer s printerState bufStart string - bufEnd string } -// NewPrinter - Constructor for Printer +// NewPrinter - Constructor for Printer func NewPrinter(w io.Writer) *Printer { return &Printer{ w: w, @@ -449,6 +448,12 @@ func (p *Printer) printNode(n ast.Vertex) { p.printStmtUseType(n) case *ast.StmtWhile: p.printStmtWhile(n) + case *ast.ParserAs: + p.printParserAs(n) + case *ast.ParserNsSeparator: + p.printParserNsSeparator(n) + case *ast.ParserBrackets: + p.printParserBrackets(n) } } @@ -556,8 +561,7 @@ func (p *Printer) printNameName(n ast.Vertex) { p.joinPrint("\\", nn.Parts) - p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) - p.bufEnd = "" + p.printFreeFloating(nn, token.End) } func (p *Printer) printNameFullyQualified(n ast.Vertex) { @@ -568,8 +572,7 @@ func (p *Printer) printNameFullyQualified(n ast.Vertex) { io.WriteString(p.w, "\\") p.joinPrint("\\", nn.Parts) - p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) - p.bufEnd = "" + p.printFreeFloating(nn, token.End) } func (p *Printer) printNameRelative(n ast.Vertex) { @@ -585,8 +588,7 @@ func (p *Printer) printNameRelative(n ast.Vertex) { p.Print(part) } - p.printFreeFloatingOrDefault(nn, token.End, p.bufEnd) - p.bufEnd = "" + p.printFreeFloating(nn, token.End) } // scalar @@ -3203,43 +3205,38 @@ func (p *Printer) printStmtGroupUseList(n ast.Vertex) { p.Print(nn.Prefix) - p.bufStart = "\\{" - p.bufEnd = "}" + if _, ok := nn.UseList.(*ast.ParserNsSeparator); !ok { + io.WriteString(p.w, "\\{") + } + p.Print(nn.UseList) + if _, ok := nn.UseList.(*ast.ParserNsSeparator); !ok { + io.WriteString(p.w, "}") + } + p.printFreeFloating(nn, token.End) } func (p *Printer) printStmtUseList(n ast.Vertex) { nn := n.(*ast.StmtUseList) - - bufEnd := p.bufEnd - p.bufEnd = "" - - if p.bufStart == "\\{" { - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - } else { - p.printFreeFloating(nn, token.Start) - } + p.printFreeFloating(nn, token.Start) p.joinPrint(",", nn.UseDeclarations) - p.printFreeFloatingOrDefault(nn, token.End, bufEnd) + p.printFreeFloating(nn, token.End) } func (p *Printer) printStmtUseDeclaration(n ast.Vertex) { nn := n.(*ast.StmtUseDeclaration) p.printFreeFloating(nn, token.Start) - if nn.Alias != nil { - p.bufEnd = " " - } - p.Print(nn.Use) if nn.Alias != nil { - io.WriteString(p.w, "as") + if _, ok := nn.Alias.(*ast.ParserAs); !ok { + io.WriteString(p.w, " as") + } p.bufStart = " " p.Print(nn.Alias) @@ -3275,3 +3272,32 @@ func (p *Printer) printStmtWhile(n ast.Vertex) { p.printFreeFloating(nn, token.End) } + +func (p *Printer) printParserAs(n ast.Vertex) { + nn := n.(*ast.ParserAs) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "as") + p.Print(nn.Child) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printParserNsSeparator(n ast.Vertex) { + nn := n.(*ast.ParserNsSeparator) + p.printFreeFloating(nn, token.Start) + + io.WriteString(p.w, "\\") + p.Print(nn.Child) + + p.printFreeFloating(nn, token.End) +} + +func (p *Printer) printParserBrackets(n ast.Vertex) { + nn := n.(*ast.ParserBrackets) + p.printFreeFloating(nn, token.Start) + + p.Print(nn.Child) + + p.printFreeFloating(nn, token.End) +} From 4aae540aad17a68c39690113ae88d438a1b75a3c Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 9 Aug 2020 01:37:09 +0200 Subject: [PATCH 042/140] [refactoring] store argument list parenthesis --- internal/php5/php5.go | 12 ++++++------ internal/php5/php5.y | 12 ++++++------ internal/php7/php7.go | 10 +++++----- internal/php7/php7.y | 10 +++++----- pkg/printer/printer.go | 35 ++++++++++------------------------- pkg/token/position.go | 1 - pkg/token/position_string.go | 17 ++++++++--------- 7 files changed, 40 insertions(+), 57 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index b8faaea..908d035 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -4590,8 +4590,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4605,8 +4605,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4622,8 +4622,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 5aa8b9e..23864be 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2404,8 +2404,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2417,8 +2417,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2432,8 +2432,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index d650f60..1cf81e7 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -4714,8 +4714,8 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4729,11 +4729,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArgumentList, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 5193903..4a2af09 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2318,8 +2318,8 @@ argument_list: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2331,11 +2331,11 @@ argument_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) if $3 != nil { - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, append($3.Tokens, $4.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($3.Tokens, $4.Tokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.ArgumentList, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index a5c5db5..e269a6d 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1587,12 +1587,9 @@ func (p *Printer) printExprFunctionCall(n ast.Vertex) { p.Print(nn.Function) - p.printFreeFloating(nn.ArgumentList, token.Start) - io.WriteString(p.w, "(") + p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, token.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, token.End) + p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") p.printFreeFloating(nn, token.End) } @@ -1674,12 +1671,9 @@ func (p *Printer) printExprMethodCall(n ast.Vertex) { io.WriteString(p.w, "->") p.Print(nn.Method) - p.printFreeFloating(nn.ArgumentList, token.Start) - io.WriteString(p.w, "(") + p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, token.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, token.End) + p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") p.printFreeFloating(nn, token.End) } @@ -1693,12 +1687,9 @@ func (p *Printer) printExprNew(n ast.Vertex) { p.Print(nn.Class) if nn.ArgumentList != nil { - p.printFreeFloating(nn.ArgumentList, token.Start) - io.WriteString(p.w, "(") + p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, token.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, token.End) + p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") } p.printFreeFloating(nn, token.End) @@ -1851,12 +1842,9 @@ func (p *Printer) printExprStaticCall(n ast.Vertex) { io.WriteString(p.w, "::") p.Print(nn.Call) - p.printFreeFloating(nn.ArgumentList, token.Start) - io.WriteString(p.w, "(") + p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, token.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, token.End) + p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") p.printFreeFloating(nn, token.End) } @@ -2320,12 +2308,9 @@ func (p *Printer) printStmtClass(n ast.Vertex) { } if nn.ArgumentList != nil { - p.printFreeFloating(nn.ArgumentList, token.Start) - io.WriteString(p.w, "(") + p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloating(nn.ArgumentList, token.ArgumentList) - io.WriteString(p.w, ")") - p.printFreeFloating(nn.ArgumentList, token.End) + p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") } if nn.Extends != nil { diff --git a/pkg/token/position.go b/pkg/token/position.go index 09559e8..329f8aa 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -63,7 +63,6 @@ const ( ArrayPairList CaseListStart CaseListEnd - ArgumentList PropertyList ParameterList AdaptationList diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go index 5a62283..389ec94 100644 --- a/pkg/token/position_string.go +++ b/pkg/token/position_string.go @@ -65,18 +65,17 @@ func _() { _ = x[ArrayPairList-54] _ = x[CaseListStart-55] _ = x[CaseListEnd-56] - _ = x[ArgumentList-57] - _ = x[PropertyList-58] - _ = x[ParameterList-59] - _ = x[AdaptationList-60] - _ = x[LexicalVarList-61] - _ = x[OpenParenthesisToken-62] - _ = x[CloseParenthesisToken-63] + _ = x[PropertyList-57] + _ = x[ParameterList-58] + _ = x[AdaptationList-59] + _ = x[LexicalVarList-60] + _ = x[OpenParenthesisToken-61] + _ = x[CloseParenthesisToken-62] } -const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndArgumentListPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken" +const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken" -var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 144, 147, 152, 155, 161, 168, 175, 180, 187, 191, 198, 200, 206, 210, 218, 223, 228, 232, 237, 242, 247, 251, 255, 258, 263, 268, 273, 280, 289, 297, 306, 318, 331, 344, 355, 367, 379, 392, 406, 420, 440, 461} +var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 144, 147, 152, 155, 161, 168, 175, 180, 187, 191, 198, 200, 206, 210, 218, 223, 228, 232, 237, 242, 247, 251, 255, 258, 263, 268, 273, 280, 289, 297, 306, 318, 331, 344, 355, 367, 380, 394, 408, 428, 449} func (i Position) String() string { if i < 0 || i >= Position(len(_Position_index)-1) { From b8b4439015325f2c285e7d961d86ea3eb3b0328e Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 9 Aug 2020 14:41:56 +0200 Subject: [PATCH 043/140] [refactoring] store `alt_if` node brackets --- internal/php5/php5.go | 983 +++++++++++++------------ internal/php5/php5.y | 39 +- internal/php7/php7.go | 715 +++++++++--------- internal/php7/php7.y | 41 +- pkg/ast/visitor/filter_parser_nodes.go | 26 + pkg/printer/printer.go | 95 ++- 6 files changed, 1013 insertions(+), 886 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 908d035..466cd09 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7127 +// line internal/php5/php5.y:7142 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3027,33 +3027,42 @@ yydefault: yyDollar = yyS[yypt-8 : yypt+1] // line internal/php5/php5.y:932 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} - yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmts, yyDollar[5].list, yyDollar[6].node} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + yyVAL.node = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, yyDollar[5].list, yyDollar[6].node} // save position + exprBrackets.GetNode().Position = position.NewNodePosition(yyDollar[2].node) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[3].token, yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.Tokens) + if yyDollar[6].node != nil { + yylex.(*Parser).setFreeFloating(yyDollar[6].node.(*ast.StmtAltElse).Stmt, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + } else if len(yyDollar[5].list) > 0 { + yylex.(*Parser).setFreeFloating(yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtAltElseIf).Stmt, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + } yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[8].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:956 + // line internal/php5/php5.y:965 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3082,7 +3091,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:981 + // line internal/php5/php5.y:990 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3107,7 +3116,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1002 + // line internal/php5/php5.y:1011 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3136,7 +3145,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1029 + // line internal/php5/php5.y:1038 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3167,7 +3176,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1056 + // line internal/php5/php5.y:1065 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3183,7 +3192,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1070 + // line internal/php5/php5.y:1079 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3199,7 +3208,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1084 + // line internal/php5/php5.y:1093 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3215,7 +3224,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1098 + // line internal/php5/php5.y:1107 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3231,7 +3240,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1112 + // line internal/php5/php5.y:1121 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3247,7 +3256,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1126 + // line internal/php5/php5.y:1135 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3263,7 +3272,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1140 + // line internal/php5/php5.y:1149 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3279,7 +3288,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1154 + // line internal/php5/php5.y:1163 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3295,7 +3304,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1177 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3311,7 +3320,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1191 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3327,7 +3336,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1196 + // line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3344,7 +3353,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1220 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3358,7 +3367,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1223 + // line internal/php5/php5.y:1232 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3374,7 +3383,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1237 + // line internal/php5/php5.y:1246 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3392,7 +3401,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1253 + // line internal/php5/php5.y:1262 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3435,7 +3444,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1293 + // line internal/php5/php5.y:1302 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3478,7 +3487,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1342 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3495,7 +3504,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1357 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3510,7 +3519,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1370 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3530,7 +3539,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1388 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3546,7 +3555,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1402 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3565,7 +3574,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1413 + // line internal/php5/php5.y:1422 { yyVAL.list = []ast.Vertex{} @@ -3573,7 +3582,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1419 + // line internal/php5/php5.y:1428 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3597,7 +3606,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1444 + // line internal/php5/php5.y:1453 { yyVAL.node = nil @@ -3605,7 +3614,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1450 + // line internal/php5/php5.y:1459 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3621,7 +3630,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1467 + // line internal/php5/php5.y:1476 { yyVAL.list = yyDollar[1].list @@ -3629,7 +3638,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1482 { yyVAL.list = []ast.Vertex{} @@ -3637,7 +3646,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1482 + // line internal/php5/php5.y:1491 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3645,7 +3654,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1488 + // line internal/php5/php5.y:1497 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3653,7 +3662,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1506 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3676,7 +3685,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1521 + // line internal/php5/php5.y:1530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3684,7 +3693,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1527 + // line internal/php5/php5.y:1536 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3695,7 +3704,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1539 + // line internal/php5/php5.y:1548 { yyVAL.node = yyDollar[1].node @@ -3703,7 +3712,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1548 + // line internal/php5/php5.y:1557 { yyVAL.node = yyDollar[1].node @@ -3711,7 +3720,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1566 { yyVAL.node = yyDollar[1].node @@ -3719,31 +3728,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1566 + // line internal/php5/php5.y:1575 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1570 + // line internal/php5/php5.y:1579 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1577 + // line internal/php5/php5.y:1586 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1581 + // line internal/php5/php5.y:1590 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1588 + // line internal/php5/php5.y:1597 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3769,7 +3778,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1615 + // line internal/php5/php5.y:1624 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3799,7 +3808,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1643 + // line internal/php5/php5.y:1652 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3818,7 +3827,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1664 + // line internal/php5/php5.y:1673 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3832,7 +3841,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1676 + // line internal/php5/php5.y:1685 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3849,7 +3858,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1691 + // line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3863,7 +3872,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1703 + // line internal/php5/php5.y:1712 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3880,7 +3889,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1721 + // line internal/php5/php5.y:1730 { yyVAL.ClassExtends = nil @@ -3888,7 +3897,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1727 + // line internal/php5/php5.y:1736 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3902,13 +3911,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1742 + // line internal/php5/php5.y:1751 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1749 + // line internal/php5/php5.y:1758 { yyVAL.InterfaceExtends = nil @@ -3916,7 +3925,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1755 + // line internal/php5/php5.y:1764 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3930,7 +3939,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1770 + // line internal/php5/php5.y:1779 { yyVAL.ClassImplements = nil @@ -3938,7 +3947,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1776 + // line internal/php5/php5.y:1785 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3952,7 +3961,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1791 + // line internal/php5/php5.y:1800 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3960,7 +3969,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1797 + // line internal/php5/php5.y:1806 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3971,7 +3980,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1809 + // line internal/php5/php5.y:1818 { yyVAL.node = nil @@ -3979,7 +3988,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1815 + // line internal/php5/php5.y:1824 { yyVAL.node = yyDollar[2].node @@ -3990,7 +3999,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1827 + // line internal/php5/php5.y:1836 { yyVAL.node = yyDollar[1].node @@ -3998,7 +4007,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1833 + // line internal/php5/php5.y:1842 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4012,7 +4021,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1845 + // line internal/php5/php5.y:1854 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4028,7 +4037,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1862 + // line internal/php5/php5.y:1871 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4039,7 +4048,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1871 + // line internal/php5/php5.y:1880 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4058,7 +4067,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1891 + // line internal/php5/php5.y:1900 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4069,7 +4078,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1900 + // line internal/php5/php5.y:1909 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4088,7 +4097,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1921 + // line internal/php5/php5.y:1930 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4099,7 +4108,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1930 + // line internal/php5/php5.y:1939 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4118,7 +4127,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1951 + // line internal/php5/php5.y:1960 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4136,7 +4145,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1976 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4155,7 +4164,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1988 + // line internal/php5/php5.y:1997 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4172,7 +4181,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2003 + // line internal/php5/php5.y:2012 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4190,7 +4199,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2028 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4209,7 +4218,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2036 + // line internal/php5/php5.y:2045 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4230,7 +4239,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2059 + // line internal/php5/php5.y:2068 { yyVAL.list = []ast.Vertex{} @@ -4238,7 +4247,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2065 + // line internal/php5/php5.y:2074 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4255,7 +4264,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2080 + // line internal/php5/php5.y:2089 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4272,19 +4281,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2099 + // line internal/php5/php5.y:2108 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2103 + // line internal/php5/php5.y:2112 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2111 + // line internal/php5/php5.y:2120 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4295,7 +4304,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2120 + // line internal/php5/php5.y:2129 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4314,7 +4323,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2142 + // line internal/php5/php5.y:2151 { yyVAL.list = nil @@ -4322,7 +4331,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2148 + // line internal/php5/php5.y:2157 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4345,7 +4354,7 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2171 + // line internal/php5/php5.y:2180 { yyVAL.list = nil @@ -4353,33 +4362,37 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2186 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position + exprBrackets.GetNode().Position = position.NewNodePosition(yyDollar[3].node) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) + exprBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[4].token, yyDollar[5].list) _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) } if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2203 + // line internal/php5/php5.y:2216 { yyVAL.node = nil @@ -4387,7 +4400,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2209 + // line internal/php5/php5.y:2222 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4401,7 +4414,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2225 + // line internal/php5/php5.y:2238 { yyVAL.node = nil @@ -4409,24 +4422,26 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2231 + // line internal/php5/php5.y:2244 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} - yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} // save position stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[3].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Else, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2250 + // line internal/php5/php5.y:2265 { yyVAL.list = yyDollar[1].list @@ -4434,7 +4449,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2256 + // line internal/php5/php5.y:2271 { yyVAL.list = nil @@ -4442,7 +4457,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2265 + // line internal/php5/php5.y:2280 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4450,7 +4465,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2271 + // line internal/php5/php5.y:2286 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4461,7 +4476,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2283 + // line internal/php5/php5.y:2298 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4499,7 +4514,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2319 + // line internal/php5/php5.y:2334 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4538,7 +4553,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2360 + // line internal/php5/php5.y:2375 { yyVAL.node = nil @@ -4546,7 +4561,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2366 + // line internal/php5/php5.y:2381 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4560,7 +4575,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2378 + // line internal/php5/php5.y:2393 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4574,7 +4589,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2390 + // line internal/php5/php5.y:2405 { yyVAL.node = yyDollar[1].node @@ -4582,7 +4597,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2400 + // line internal/php5/php5.y:2415 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4597,7 +4612,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2413 + // line internal/php5/php5.y:2428 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4612,7 +4627,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2426 + // line internal/php5/php5.y:2441 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4629,7 +4644,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2445 + // line internal/php5/php5.y:2460 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4637,7 +4652,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2451 + // line internal/php5/php5.y:2466 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4648,7 +4663,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2478 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4662,7 +4677,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2475 + // line internal/php5/php5.y:2490 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4676,7 +4691,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2487 + // line internal/php5/php5.y:2502 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4690,7 +4705,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2499 + // line internal/php5/php5.y:2514 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4704,7 +4719,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2514 + // line internal/php5/php5.y:2529 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4715,7 +4730,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2523 + // line internal/php5/php5.y:2538 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4723,7 +4738,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2533 + // line internal/php5/php5.y:2548 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4739,7 +4754,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2562 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4753,7 +4768,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2559 + // line internal/php5/php5.y:2574 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4769,7 +4784,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2577 + // line internal/php5/php5.y:2592 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4789,7 +4804,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2595 + // line internal/php5/php5.y:2610 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4810,7 +4825,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2614 + // line internal/php5/php5.y:2629 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4829,7 +4844,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2631 + // line internal/php5/php5.y:2646 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4849,7 +4864,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2653 + // line internal/php5/php5.y:2668 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4857,7 +4872,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2659 + // line internal/php5/php5.y:2674 { yyVAL.list = []ast.Vertex{} @@ -4865,7 +4880,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2669 + // line internal/php5/php5.y:2684 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4881,7 +4896,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2683 + // line internal/php5/php5.y:2698 { yyVAL.node = yyDollar[1].node @@ -4896,7 +4911,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2696 + // line internal/php5/php5.y:2711 { yyVAL.node = yyDollar[1].node @@ -4904,7 +4919,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2702 + // line internal/php5/php5.y:2717 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4937,7 +4952,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2736 + // line internal/php5/php5.y:2751 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4951,7 +4966,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2751 + // line internal/php5/php5.y:2766 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4959,7 +4974,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2772 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4970,7 +4985,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2769 + // line internal/php5/php5.y:2784 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4984,7 +4999,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2781 + // line internal/php5/php5.y:2796 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4998,7 +5013,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2796 + // line internal/php5/php5.y:2811 { yyVAL.list = nil @@ -5006,7 +5021,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2802 + // line internal/php5/php5.y:2817 { yyVAL.list = yyDollar[1].list @@ -5014,7 +5029,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2811 + // line internal/php5/php5.y:2826 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5022,7 +5037,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2817 + // line internal/php5/php5.y:2832 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5030,7 +5045,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2826 + // line internal/php5/php5.y:2841 { yyVAL.node = yyDollar[1].node @@ -5042,7 +5057,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2836 + // line internal/php5/php5.y:2851 { yyVAL.node = yyDollar[1].node @@ -5054,7 +5069,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2849 + // line internal/php5/php5.y:2864 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5069,7 +5084,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2865 + // line internal/php5/php5.y:2880 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5077,7 +5092,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2871 + // line internal/php5/php5.y:2886 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5088,7 +5103,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2898 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5104,7 +5119,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2897 + // line internal/php5/php5.y:2912 { yyVAL.node = yyDollar[1].node @@ -5112,7 +5127,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2906 + // line internal/php5/php5.y:2921 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5130,7 +5145,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2940 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5148,7 +5163,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2941 + // line internal/php5/php5.y:2956 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5163,7 +5178,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2957 + // line internal/php5/php5.y:2972 { yyVAL.node = nil @@ -5171,7 +5186,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2963 + // line internal/php5/php5.y:2978 { yyVAL.node = yyDollar[1].node @@ -5179,7 +5194,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2972 + // line internal/php5/php5.y:2987 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5194,7 +5209,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2985 + // line internal/php5/php5.y:3000 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5209,7 +5224,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3001 + // line internal/php5/php5.y:3016 { yyVAL.list = yyDollar[1].list @@ -5217,7 +5232,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3007 + // line internal/php5/php5.y:3022 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5232,7 +5247,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3038 { yyVAL.list = nil @@ -5240,7 +5255,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3029 + // line internal/php5/php5.y:3044 { yyVAL.list = yyDollar[1].list @@ -5248,7 +5263,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3038 + // line internal/php5/php5.y:3053 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5256,7 +5271,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3044 + // line internal/php5/php5.y:3059 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5264,7 +5279,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3053 + // line internal/php5/php5.y:3068 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5278,7 +5293,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5292,7 +5307,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3077 + // line internal/php5/php5.y:3092 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5306,7 +5321,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3089 + // line internal/php5/php5.y:3104 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5320,7 +5335,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3101 + // line internal/php5/php5.y:3116 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5334,7 +5349,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3128 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5348,7 +5363,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3143 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5368,7 +5383,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3146 + // line internal/php5/php5.y:3161 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5389,7 +5404,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3165 + // line internal/php5/php5.y:3180 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5408,7 +5423,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3182 + // line internal/php5/php5.y:3197 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5428,7 +5443,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3203 + // line internal/php5/php5.y:3218 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5451,7 +5466,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3224 + // line internal/php5/php5.y:3239 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5471,7 +5486,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3245 + // line internal/php5/php5.y:3260 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5482,7 +5497,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3269 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5490,7 +5505,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3264 + // line internal/php5/php5.y:3279 { yyVAL.list = nil @@ -5498,7 +5513,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3270 + // line internal/php5/php5.y:3285 { yyVAL.list = yyDollar[1].list @@ -5506,7 +5521,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3279 + // line internal/php5/php5.y:3294 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5517,7 +5532,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3288 + // line internal/php5/php5.y:3303 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5525,7 +5540,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3297 + // line internal/php5/php5.y:3312 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5533,7 +5548,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3303 + // line internal/php5/php5.y:3318 { yyVAL.list = yyDollar[1].list @@ -5541,7 +5556,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3312 + // line internal/php5/php5.y:3327 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5557,7 +5572,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3326 + // line internal/php5/php5.y:3341 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5573,7 +5588,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3343 + // line internal/php5/php5.y:3358 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5581,7 +5596,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3349 + // line internal/php5/php5.y:3364 { yyVAL.list = yyDollar[1].list @@ -5589,7 +5604,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3355 + // line internal/php5/php5.y:3370 { yyVAL.list = yyDollar[1].list @@ -5597,7 +5612,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3364 + // line internal/php5/php5.y:3379 { yyVAL.list = nil @@ -5605,7 +5620,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3385 { yyVAL.list = yyDollar[1].list @@ -5613,7 +5628,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3379 + // line internal/php5/php5.y:3394 { if yyDollar[3].node != nil { @@ -5631,7 +5646,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3398 + // line internal/php5/php5.y:3413 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5650,7 +5665,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3415 + // line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5680,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3428 + // line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5681,7 +5696,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3442 + // line internal/php5/php5.y:3457 { var _new *ast.ExprNew @@ -5710,7 +5725,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3469 + // line internal/php5/php5.y:3484 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5724,7 +5739,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3496 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5738,7 +5753,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3493 + // line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5768,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3506 + // line internal/php5/php5.y:3521 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5783,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3519 + // line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5783,7 +5798,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3532 + // line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5798,7 +5813,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3545 + // line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5828,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3558 + // line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5828,7 +5843,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3571 + // line internal/php5/php5.y:3586 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5858,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3584 + // line internal/php5/php5.y:3599 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5873,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3597 + // line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5873,7 +5888,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3610 + // line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5888,7 +5903,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3623 + // line internal/php5/php5.y:3638 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5903,7 +5918,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3636 + // line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5918,7 +5933,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3649 + // line internal/php5/php5.y:3664 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5932,7 +5947,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3661 + // line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5947,7 +5962,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3689 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5961,7 +5976,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3686 + // line internal/php5/php5.y:3701 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5976,7 +5991,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3699 + // line internal/php5/php5.y:3714 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5991,7 +6006,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3712 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6006,7 +6021,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3725 + // line internal/php5/php5.y:3740 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6021,7 +6036,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3738 + // line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6036,7 +6051,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3751 + // line internal/php5/php5.y:3766 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6051,7 +6066,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3764 + // line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6066,7 +6081,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3777 + // line internal/php5/php5.y:3792 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6081,7 +6096,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3790 + // line internal/php5/php5.y:3805 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6096,7 +6111,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3803 + // line internal/php5/php5.y:3818 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6111,7 +6126,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3816 + // line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6126,7 +6141,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3829 + // line internal/php5/php5.y:3844 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6141,7 +6156,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3842 + // line internal/php5/php5.y:3857 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6156,7 +6171,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3855 + // line internal/php5/php5.y:3870 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6171,7 +6186,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3868 + // line internal/php5/php5.y:3883 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6186,7 +6201,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3881 + // line internal/php5/php5.y:3896 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6201,7 +6216,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3894 + // line internal/php5/php5.y:3909 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6216,7 +6231,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3907 + // line internal/php5/php5.y:3922 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6230,7 +6245,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3919 + // line internal/php5/php5.y:3934 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6244,7 +6259,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3931 + // line internal/php5/php5.y:3946 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6258,7 +6273,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3943 + // line internal/php5/php5.y:3958 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6272,7 +6287,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3955 + // line internal/php5/php5.y:3970 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6287,7 +6302,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3968 + // line internal/php5/php5.y:3983 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6302,7 +6317,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3981 + // line internal/php5/php5.y:3996 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6317,7 +6332,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3994 + // line internal/php5/php5.y:4009 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6333,7 +6348,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4008 + // line internal/php5/php5.y:4023 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6348,7 +6363,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4021 + // line internal/php5/php5.y:4036 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6363,7 +6378,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4034 + // line internal/php5/php5.y:4049 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6378,7 +6393,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4062 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6393,7 +6408,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4060 + // line internal/php5/php5.y:4075 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6408,7 +6423,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4073 + // line internal/php5/php5.y:4088 { yyVAL.node = yyDollar[1].node @@ -6421,7 +6436,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4082 + // line internal/php5/php5.y:4097 { yyVAL.node = yyDollar[1].node @@ -6429,7 +6444,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4088 + // line internal/php5/php5.y:4103 { yyVAL.node = yyDollar[2].node @@ -6463,7 +6478,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4120 + // line internal/php5/php5.y:4135 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6479,7 +6494,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4134 + // line internal/php5/php5.y:4149 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6495,7 +6510,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4148 + // line internal/php5/php5.y:4163 { yyVAL.node = yyDollar[1].node @@ -6503,7 +6518,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4154 + // line internal/php5/php5.y:4169 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6518,7 +6533,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4167 + // line internal/php5/php5.y:4182 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6533,7 +6548,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4180 + // line internal/php5/php5.y:4195 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6548,7 +6563,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4193 + // line internal/php5/php5.y:4208 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6563,7 +6578,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4206 + // line internal/php5/php5.y:4221 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6578,7 +6593,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4219 + // line internal/php5/php5.y:4234 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6593,7 +6608,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4232 + // line internal/php5/php5.y:4247 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6608,7 +6623,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4245 + // line internal/php5/php5.y:4260 { e := yyDollar[2].node.(*ast.ExprExit) yyVAL.node = yyDollar[2].node @@ -6631,7 +6646,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4281 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6645,7 +6660,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4293 { yyVAL.node = yyDollar[1].node @@ -6653,7 +6668,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4299 { yyVAL.node = yyDollar[1].node @@ -6661,7 +6676,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4290 + // line internal/php5/php5.y:4305 { yyVAL.node = yyDollar[1].node @@ -6669,7 +6684,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4296 + // line internal/php5/php5.y:4311 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6683,7 +6698,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4308 + // line internal/php5/php5.y:4323 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6697,7 +6712,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4335 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6711,7 +6726,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4332 + // line internal/php5/php5.y:4347 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6740,7 +6755,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4358 + // line internal/php5/php5.y:4373 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6770,7 +6785,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4388 + // line internal/php5/php5.y:4403 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6784,7 +6799,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4400 + // line internal/php5/php5.y:4415 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6798,7 +6813,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4412 + // line internal/php5/php5.y:4427 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6813,7 +6828,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4425 + // line internal/php5/php5.y:4440 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6828,7 +6843,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4441 + // line internal/php5/php5.y:4456 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6843,7 +6858,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4454 + // line internal/php5/php5.y:4469 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6858,7 +6873,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4467 + // line internal/php5/php5.y:4482 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6876,7 +6891,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4483 + // line internal/php5/php5.y:4498 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6891,7 +6906,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4499 + // line internal/php5/php5.y:4514 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6907,7 +6922,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4513 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6922,13 +6937,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4529 + // line internal/php5/php5.y:4544 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4536 + // line internal/php5/php5.y:4551 { yyVAL.ClosureUse = nil @@ -6936,7 +6951,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4542 + // line internal/php5/php5.y:4557 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6952,7 +6967,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4559 + // line internal/php5/php5.y:4574 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6970,7 +6985,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4575 + // line internal/php5/php5.y:4590 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6991,7 +7006,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4609 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7008,7 +7023,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4624 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7028,7 +7043,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4630 + // line internal/php5/php5.y:4645 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7041,7 +7056,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4641 + // line internal/php5/php5.y:4656 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7058,7 +7073,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4656 + // line internal/php5/php5.y:4671 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7074,7 +7089,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4670 + // line internal/php5/php5.y:4685 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7089,7 +7104,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4683 + // line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7104,7 +7119,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4696 + // line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7119,7 +7134,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4709 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7134,7 +7149,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4722 + // line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7148,7 +7163,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4737 + // line internal/php5/php5.y:4752 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7162,7 +7177,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4749 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7173,7 +7188,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4758 + // line internal/php5/php5.y:4773 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7188,7 +7203,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4771 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7202,7 +7217,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4801 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7213,7 +7228,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4795 + // line internal/php5/php5.y:4810 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7228,7 +7243,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4808 + // line internal/php5/php5.y:4823 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7242,7 +7257,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4838 { yyVAL.node = yyDollar[1].node @@ -7250,7 +7265,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4829 + // line internal/php5/php5.y:4844 { yyVAL.node = yyDollar[1].node @@ -7258,7 +7273,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4838 + // line internal/php5/php5.y:4853 { yyVAL.node = yyDollar[1].node @@ -7301,7 +7316,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4894 { yyVAL.node = yyDollar[1].node @@ -7309,7 +7324,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4889 + // line internal/php5/php5.y:4904 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7317,7 +7332,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4895 + // line internal/php5/php5.y:4910 { yyVAL.list = []ast.Vertex{} @@ -7325,7 +7340,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4905 + // line internal/php5/php5.y:4920 { yyVAL.list = yyDollar[2].list @@ -7336,7 +7351,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7344,7 +7359,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4938 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} @@ -7359,7 +7374,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4951 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} @@ -7380,7 +7395,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4956 + // line internal/php5/php5.y:4971 { yyVAL.list = []ast.Vertex{} @@ -7388,7 +7403,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4962 + // line internal/php5/php5.y:4977 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7400,7 +7415,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4972 + // line internal/php5/php5.y:4987 { yyVAL.list = yyDollar[1].list @@ -7408,7 +7423,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4981 + // line internal/php5/php5.y:4996 { yyVAL.node = nil @@ -7416,7 +7431,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4987 + // line internal/php5/php5.y:5002 { yyVAL.node = yyDollar[1].node @@ -7424,7 +7439,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5011 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7438,7 +7453,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5023 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7452,7 +7467,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5035 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7466,7 +7481,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5047 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7480,7 +7495,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5059 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7494,7 +7509,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5071 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7508,7 +7523,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5068 + // line internal/php5/php5.y:5083 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7522,7 +7537,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5095 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7536,7 +7551,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5107 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7550,7 +7565,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5119 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7564,7 +7579,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5116 + // line internal/php5/php5.y:5131 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7580,7 +7595,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5130 + // line internal/php5/php5.y:5145 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7594,7 +7609,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5145 + // line internal/php5/php5.y:5160 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7612,7 +7627,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5164 + // line internal/php5/php5.y:5179 { yyVAL.node = yyDollar[1].node @@ -7620,7 +7635,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5173 + // line internal/php5/php5.y:5188 { yyVAL.node = yyDollar[1].node @@ -7628,7 +7643,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5179 + // line internal/php5/php5.y:5194 { yyVAL.node = yyDollar[1].node @@ -7636,7 +7651,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5185 + // line internal/php5/php5.y:5200 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7649,7 +7664,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5196 + // line internal/php5/php5.y:5211 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7666,7 +7681,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5226 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7682,7 +7697,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5225 + // line internal/php5/php5.y:5240 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7698,7 +7713,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5239 + // line internal/php5/php5.y:5254 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7713,7 +7728,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5267 { yyVAL.node = yyDollar[1].node @@ -7721,7 +7736,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5258 + // line internal/php5/php5.y:5273 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7735,7 +7750,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5270 + // line internal/php5/php5.y:5285 { yyVAL.node = yyDollar[1].node @@ -7743,7 +7758,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5279 + // line internal/php5/php5.y:5294 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7758,7 +7773,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5292 + // line internal/php5/php5.y:5307 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7773,7 +7788,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5305 + // line internal/php5/php5.y:5320 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7788,7 +7803,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5318 + // line internal/php5/php5.y:5333 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7803,7 +7818,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5331 + // line internal/php5/php5.y:5346 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7818,7 +7833,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5359 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7833,7 +7848,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5372 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7848,7 +7863,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5385 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7862,7 +7877,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5397 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7876,7 +7891,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5394 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7891,7 +7906,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5407 + // line internal/php5/php5.y:5422 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7906,7 +7921,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5420 + // line internal/php5/php5.y:5435 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7921,7 +7936,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5448 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7936,7 +7951,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5446 + // line internal/php5/php5.y:5461 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7951,7 +7966,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5459 + // line internal/php5/php5.y:5474 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7966,7 +7981,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5487 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7981,7 +7996,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7996,7 +8011,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5498 + // line internal/php5/php5.y:5513 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8011,7 +8026,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5526 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8026,7 +8041,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5524 + // line internal/php5/php5.y:5539 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,7 +8056,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5537 + // line internal/php5/php5.y:5552 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8056,7 +8071,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5565 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8071,7 +8086,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5563 + // line internal/php5/php5.y:5578 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8086,7 +8101,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5591 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8102,7 +8117,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5590 + // line internal/php5/php5.y:5605 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8117,7 +8132,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5603 + // line internal/php5/php5.y:5618 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8132,7 +8147,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5616 + // line internal/php5/php5.y:5631 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8147,7 +8162,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5644 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8162,7 +8177,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5642 + // line internal/php5/php5.y:5657 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8178,7 +8193,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5656 + // line internal/php5/php5.y:5671 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8194,7 +8209,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5670 + // line internal/php5/php5.y:5685 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8208,7 +8223,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5682 + // line internal/php5/php5.y:5697 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8222,7 +8237,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5694 + // line internal/php5/php5.y:5709 { yyVAL.node = yyDollar[2].node @@ -8234,7 +8249,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5722 { yyVAL.node = yyDollar[1].node @@ -8242,7 +8257,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5713 + // line internal/php5/php5.y:5728 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8255,7 +8270,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5724 + // line internal/php5/php5.y:5739 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8272,7 +8287,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5739 + // line internal/php5/php5.y:5754 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8288,7 +8303,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5756 + // line internal/php5/php5.y:5771 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8304,7 +8319,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5770 + // line internal/php5/php5.y:5785 { yyVAL.node = yyDollar[1].node @@ -8312,7 +8327,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5776 + // line internal/php5/php5.y:5791 { yyVAL.node = yyDollar[1].node @@ -8320,7 +8335,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5782 + // line internal/php5/php5.y:5797 { yyVAL.node = yyDollar[1].node @@ -8328,7 +8343,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5788 + // line internal/php5/php5.y:5803 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8342,7 +8357,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5800 + // line internal/php5/php5.y:5815 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8356,7 +8371,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5812 + // line internal/php5/php5.y:5827 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8370,7 +8385,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5827 + // line internal/php5/php5.y:5842 { yyVAL.list = nil @@ -8378,7 +8393,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5833 + // line internal/php5/php5.y:5848 { yyVAL.list = yyDollar[1].list @@ -8391,19 +8406,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5847 + // line internal/php5/php5.y:5862 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5851 + // line internal/php5/php5.y:5866 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5858 + // line internal/php5/php5.y:5873 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8420,7 +8435,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5873 + // line internal/php5/php5.y:5888 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8436,7 +8451,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5887 + // line internal/php5/php5.y:5902 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8452,7 +8467,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5901 + // line internal/php5/php5.y:5916 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8467,7 +8482,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5917 + // line internal/php5/php5.y:5932 { yyVAL.node = yyDollar[1].node @@ -8475,7 +8490,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5923 + // line internal/php5/php5.y:5938 { yyVAL.node = yyDollar[1].node @@ -8483,7 +8498,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5932 + // line internal/php5/php5.y:5947 { yyVAL.node = yyDollar[2].node @@ -8501,7 +8516,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5948 + // line internal/php5/php5.y:5963 { yyVAL.node = yyDollar[2].node @@ -8519,7 +8534,7 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5968 + // line internal/php5/php5.y:5983 { yyVAL.node = yyDollar[1].node @@ -8527,7 +8542,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5978 + // line internal/php5/php5.y:5993 { yyVAL.node = yyDollar[1].node @@ -8535,7 +8550,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5987 + // line internal/php5/php5.y:6002 { yyVAL.node = yyDollar[1].node @@ -8543,7 +8558,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5996 + // line internal/php5/php5.y:6011 { yyVAL.node = yyDollar[1].node @@ -8603,7 +8618,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6054 + // line internal/php5/php5.y:6069 { yyVAL.node = yyDollar[1].node @@ -8611,7 +8626,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6063 + // line internal/php5/php5.y:6078 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8619,7 +8634,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6069 + // line internal/php5/php5.y:6084 { yyVAL.list = []ast.Vertex{} @@ -8627,7 +8642,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6079 + // line internal/php5/php5.y:6094 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8643,7 +8658,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6096 + // line internal/php5/php5.y:6111 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8659,7 +8674,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6110 + // line internal/php5/php5.y:6125 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8675,7 +8690,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6142 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8686,7 +8701,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6139 + // line internal/php5/php5.y:6154 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8694,7 +8709,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6145 + // line internal/php5/php5.y:6160 { yyVAL.list = yyDollar[1].list @@ -8702,7 +8717,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6151 + // line internal/php5/php5.y:6166 { yyVAL.list = nil @@ -8710,7 +8725,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6160 + // line internal/php5/php5.y:6175 { yyVAL.node = yyDollar[1].node @@ -8718,7 +8733,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6166 + // line internal/php5/php5.y:6181 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8732,7 +8747,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6196 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8747,7 +8762,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6194 + // line internal/php5/php5.y:6209 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8762,7 +8777,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6210 + // line internal/php5/php5.y:6225 { yyVAL.node = yyDollar[1].node @@ -8770,7 +8785,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6219 + // line internal/php5/php5.y:6234 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8785,7 +8800,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6232 + // line internal/php5/php5.y:6247 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8800,7 +8815,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6248 + // line internal/php5/php5.y:6263 { yyVAL.node = yyDollar[1].node @@ -8808,7 +8823,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6254 + // line internal/php5/php5.y:6269 { yyVAL.node = yyDollar[1].node @@ -8816,7 +8831,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6260 + // line internal/php5/php5.y:6275 { yyVAL.node = yyDollar[1].node @@ -8824,7 +8839,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6270 + // line internal/php5/php5.y:6285 { yyVAL.node = yyDollar[1].node @@ -8832,7 +8847,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6276 + // line internal/php5/php5.y:6291 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8846,7 +8861,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6288 + // line internal/php5/php5.y:6303 { yyVAL.node = yyDollar[1].node @@ -8854,7 +8869,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6297 + // line internal/php5/php5.y:6312 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8869,7 +8884,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6325 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8884,7 +8899,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6323 + // line internal/php5/php5.y:6338 { yyVAL.node = yyDollar[1].node @@ -8892,7 +8907,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6333 + // line internal/php5/php5.y:6348 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8908,7 +8923,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6347 + // line internal/php5/php5.y:6362 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8924,7 +8939,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6364 + // line internal/php5/php5.y:6379 { yyVAL.node = nil @@ -8932,7 +8947,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6370 + // line internal/php5/php5.y:6385 { yyVAL.node = yyDollar[1].node @@ -8940,7 +8955,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6380 + // line internal/php5/php5.y:6395 { yyVAL.list = yyDollar[1].list @@ -8948,7 +8963,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6386 + // line internal/php5/php5.y:6401 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8960,7 +8975,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6399 + // line internal/php5/php5.y:6414 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8976,7 +8991,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6413 + // line internal/php5/php5.y:6428 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8992,7 +9007,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6427 + // line internal/php5/php5.y:6442 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9004,7 +9019,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6440 + // line internal/php5/php5.y:6455 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9018,7 +9033,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6452 + // line internal/php5/php5.y:6467 { yyVAL.node = yyDollar[2].node @@ -9033,7 +9048,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6468 + // line internal/php5/php5.y:6483 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9048,7 +9063,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6481 + // line internal/php5/php5.y:6496 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9067,7 +9082,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6501 + // line internal/php5/php5.y:6516 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9082,7 +9097,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6514 + // line internal/php5/php5.y:6529 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9094,7 +9109,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6528 + // line internal/php5/php5.y:6543 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9108,7 +9123,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6540 + // line internal/php5/php5.y:6555 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9126,7 +9141,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6556 + // line internal/php5/php5.y:6571 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9134,7 +9149,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6566 + // line internal/php5/php5.y:6581 { yyVAL.list = []ast.Vertex{} @@ -9142,7 +9157,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6572 + // line internal/php5/php5.y:6587 { yyVAL.list = yyDollar[1].list @@ -9159,7 +9174,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6590 + // line internal/php5/php5.y:6605 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9176,7 +9191,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6605 + // line internal/php5/php5.y:6620 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9192,7 +9207,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6619 + // line internal/php5/php5.y:6634 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9208,7 +9223,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6633 + // line internal/php5/php5.y:6648 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9223,7 +9238,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6646 + // line internal/php5/php5.y:6661 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9243,7 +9258,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6664 + // line internal/php5/php5.y:6679 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9261,7 +9276,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6680 + // line internal/php5/php5.y:6695 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9280,7 +9295,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6697 + // line internal/php5/php5.y:6712 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9297,7 +9312,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6715 + // line internal/php5/php5.y:6730 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9305,7 +9320,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6721 + // line internal/php5/php5.y:6736 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9320,7 +9335,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6734 + // line internal/php5/php5.y:6749 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9328,7 +9343,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6740 + // line internal/php5/php5.y:6755 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9343,7 +9358,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6756 + // line internal/php5/php5.y:6771 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9359,7 +9374,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6770 + // line internal/php5/php5.y:6785 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9378,7 +9393,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6787 + // line internal/php5/php5.y:6802 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9399,7 +9414,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6806 + // line internal/php5/php5.y:6821 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9416,7 +9431,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6821 + // line internal/php5/php5.y:6836 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9435,7 +9450,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6838 + // line internal/php5/php5.y:6853 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9456,7 +9471,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6857 + // line internal/php5/php5.y:6872 { yyVAL.node = yyDollar[2].node @@ -9468,7 +9483,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6870 + // line internal/php5/php5.y:6885 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9482,7 +9497,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6882 + // line internal/php5/php5.y:6897 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9501,7 +9516,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6899 + // line internal/php5/php5.y:6914 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9517,7 +9532,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6916 + // line internal/php5/php5.y:6931 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9533,7 +9548,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6930 + // line internal/php5/php5.y:6945 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9549,7 +9564,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6944 + // line internal/php5/php5.y:6959 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -9565,7 +9580,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6958 + // line internal/php5/php5.y:6973 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9579,7 +9594,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6970 + // line internal/php5/php5.y:6985 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9593,7 +9608,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6982 + // line internal/php5/php5.y:6997 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -9609,7 +9624,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6996 + // line internal/php5/php5.y:7011 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9623,7 +9638,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7008 + // line internal/php5/php5.y:7023 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9637,7 +9652,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7023 + // line internal/php5/php5.y:7038 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9645,7 +9660,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7029 + // line internal/php5/php5.y:7044 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9656,7 +9671,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7041 + // line internal/php5/php5.y:7056 { yyVAL.node = yyDollar[1].node @@ -9664,7 +9679,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7047 + // line internal/php5/php5.y:7062 { yyVAL.node = yyDollar[1].node @@ -9672,7 +9687,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7056 + // line internal/php5/php5.y:7071 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9690,7 +9705,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7072 + // line internal/php5/php5.y:7087 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9708,7 +9723,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7091 + // line internal/php5/php5.y:7106 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9726,7 +9741,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7110 + // line internal/php5/php5.y:7125 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 23864be..d17ba27 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -930,24 +930,33 @@ unticked_statement: } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $2} stmts := &ast.StmtStmtList{ast.Node{}, $4} - $$ = &ast.StmtAltIf{ast.Node{}, $2, stmts, $5, $6} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + $$ = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, $5, $6} // save position + exprBrackets.GetNode().Position = position.NewNodePosition($2) stmts.GetNode().Position = position.NewNodeListPosition($4) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($3, $4) $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.GetNode().Tokens[token.OpenParenthesisToken]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) } if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $2.GetNode().Tokens[token.CloseParenthesisToken]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) + } + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.Tokens) + if $6 != nil { + yylex.(*Parser).setFreeFloating($6.(*ast.StmtAltElse).Stmt, token.End, append($7.Tokens, $8.Tokens...)) + } else if len($5) > 0 { + yylex.(*Parser).setFreeFloating($5[len($5)-1].(*ast.StmtAltElseIf).Stmt, token.End, append($7.Tokens, $8.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($7.Tokens, $8.Tokens...)) } - yylex.(*Parser).setFreeFloating($$, token.Cond, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $8.Tokens) yylex.(*Parser).setToken($$, token.SemiColon, $8.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2175,23 +2184,27 @@ new_elseif_list: } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} stmts := &ast.StmtStmtList{ast.Node{}, $5} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, $3, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} $$ = append($1, _elseIf) // save position + exprBrackets.GetNode().Position = position.NewNodePosition($3) stmts.GetNode().Position = position.NewNodeListPosition($5) + exprBrackets.GetNode().Position = position.NewTokenNodeListPosition($4, $5) _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.GetNode().Tokens[token.OpenParenthesisToken]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) } if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $3.GetNode().Tokens[token.CloseParenthesisToken]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) } - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2230,15 +2243,17 @@ new_else_single: | T_ELSE ':' inner_statement_list { stmts := &ast.StmtStmtList{ast.Node{}, $3} - $$ = &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + $$ = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} // save position stmts.GetNode().Position = position.NewNodeListPosition($3) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($2, $3) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Else, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 1cf81e7..0c50734 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5623 +// line internal/php7/php7.y:5636 // line yacctab:1 var yyExca = [...]int{ @@ -4422,46 +4422,54 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] // line internal/php7/php7.y:2039 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} - yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[3].node, stmts, nil, nil} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + yyVAL.node = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[6].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[5].token, yyDollar[6].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2056 + // line internal/php7/php7.y:2060 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[4].node, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} yyDollar[1].node.(*ast.StmtAltIf).ElseIf = append(yyDollar[1].node.(*ast.StmtAltIf).ElseIf, _elseIf) yyVAL.node = yyDollar[1].node // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[7].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[6].token, yyDollar[7].list) _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2079 + // line internal/php7/php7.y:2087 { yyVAL.node = yyDollar[1].node @@ -4469,39 +4477,44 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[3].token.Tokens) + altif := yyVAL.node.(*ast.StmtAltIf) + if len(altif.ElseIf) > 0 { + yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) + } yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2105 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} - _else := &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} yyDollar[1].node.(*ast.StmtAltIf).Else = _else yyVAL.node = yyDollar[1].node // save position stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) + stmtsBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) _else.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_else, token.Else, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2118 + // line internal/php7/php7.y:2131 { yyVAL.list = yyDollar[1].list @@ -4509,7 +4522,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2124 + // line internal/php7/php7.y:2137 { yyVAL.list = nil @@ -4517,7 +4530,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2146 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4525,7 +4538,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2139 + // line internal/php7/php7.y:2152 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4536,7 +4549,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2164 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4574,7 +4587,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2187 + // line internal/php7/php7.y:2200 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4613,7 +4626,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2227 + // line internal/php7/php7.y:2240 { yyVAL.node = nil @@ -4621,7 +4634,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2246 { yyVAL.node = yyDollar[1].node @@ -4629,7 +4642,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2242 + // line internal/php7/php7.y:2255 { yyVAL.node = yyDollar[1].node @@ -4637,7 +4650,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2248 + // line internal/php7/php7.y:2261 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4651,7 +4664,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2276 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4665,7 +4678,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2275 + // line internal/php7/php7.y:2288 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4679,7 +4692,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2287 + // line internal/php7/php7.y:2300 { yyVAL.node = yyDollar[1].node @@ -4687,7 +4700,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2296 + // line internal/php7/php7.y:2309 { yyVAL.node = nil @@ -4695,7 +4708,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2302 + // line internal/php7/php7.y:2315 { yyVAL.node = yyDollar[2].node @@ -4706,7 +4719,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2327 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4721,7 +4734,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2340 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4740,7 +4753,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2347 + // line internal/php7/php7.y:2360 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4748,7 +4761,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2353 + // line internal/php7/php7.y:2366 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4759,7 +4772,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2365 + // line internal/php7/php7.y:2378 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4773,7 +4786,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2377 + // line internal/php7/php7.y:2390 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4787,7 +4800,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2392 + // line internal/php7/php7.y:2405 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4798,7 +4811,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2401 + // line internal/php7/php7.y:2414 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4806,7 +4819,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2410 + // line internal/php7/php7.y:2423 { yyVAL.node = yyDollar[1].node @@ -4814,7 +4827,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2419 + // line internal/php7/php7.y:2432 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4825,7 +4838,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2428 + // line internal/php7/php7.y:2441 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4833,7 +4846,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2437 + // line internal/php7/php7.y:2450 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4851,7 +4864,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2453 + // line internal/php7/php7.y:2466 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4870,7 +4883,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2473 + // line internal/php7/php7.y:2486 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4878,7 +4891,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2479 + // line internal/php7/php7.y:2492 { yyVAL.list = []ast.Vertex{} @@ -4886,7 +4899,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2488 + // line internal/php7/php7.y:2501 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4902,7 +4915,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2515 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4923,7 +4936,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2521 + // line internal/php7/php7.y:2534 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4937,7 +4950,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2533 + // line internal/php7/php7.y:2546 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4970,7 +4983,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2567 + // line internal/php7/php7.y:2580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4978,7 +4991,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2573 + // line internal/php7/php7.y:2586 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4989,7 +5002,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2598 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5003,7 +5016,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5017,7 +5030,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2623 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5031,7 +5044,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2625 + // line internal/php7/php7.y:2638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5039,7 +5052,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2644 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5047,7 +5060,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2640 + // line internal/php7/php7.y:2653 { yyVAL.node = yyDollar[1].node @@ -5059,7 +5072,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2650 + // line internal/php7/php7.y:2663 { yyVAL.node = yyDollar[1].node @@ -5071,7 +5084,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2676 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5086,7 +5099,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2679 + // line internal/php7/php7.y:2692 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5104,7 +5117,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2695 + // line internal/php7/php7.y:2708 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5122,7 +5135,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2711 + // line internal/php7/php7.y:2724 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5140,7 +5153,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2727 + // line internal/php7/php7.y:2740 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5155,7 +5168,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2756 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5171,7 +5184,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2757 + // line internal/php7/php7.y:2770 { yyVAL.node = yyDollar[1].node @@ -5179,7 +5192,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2766 + // line internal/php7/php7.y:2779 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5197,7 +5210,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2785 + // line internal/php7/php7.y:2798 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5212,7 +5225,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2798 + // line internal/php7/php7.y:2811 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5227,7 +5240,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2814 + // line internal/php7/php7.y:2827 { yyVAL.list = yyDollar[1].list @@ -5235,7 +5248,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2820 + // line internal/php7/php7.y:2833 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5250,7 +5263,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2836 + // line internal/php7/php7.y:2849 { yyVAL.list = nil @@ -5258,7 +5271,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2842 + // line internal/php7/php7.y:2855 { yyVAL.list = yyDollar[1].list @@ -5266,7 +5279,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2851 + // line internal/php7/php7.y:2864 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5274,7 +5287,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2857 + // line internal/php7/php7.y:2870 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5282,7 +5295,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2866 + // line internal/php7/php7.y:2879 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5296,7 +5309,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2891 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5310,7 +5323,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2890 + // line internal/php7/php7.y:2903 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5324,7 +5337,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2902 + // line internal/php7/php7.y:2915 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5338,7 +5351,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2914 + // line internal/php7/php7.y:2927 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5352,7 +5365,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2926 + // line internal/php7/php7.y:2939 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5366,7 +5379,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2941 + // line internal/php7/php7.y:2954 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5377,7 +5390,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2950 + // line internal/php7/php7.y:2963 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5385,7 +5398,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2972 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5403,7 +5416,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2975 + // line internal/php7/php7.y:2988 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5422,7 +5435,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2995 + // line internal/php7/php7.y:3008 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5433,7 +5446,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3004 + // line internal/php7/php7.y:3017 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5441,7 +5454,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3026 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5458,7 +5471,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3044 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5475,7 +5488,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3049 + // line internal/php7/php7.y:3062 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5486,7 +5499,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3058 + // line internal/php7/php7.y:3071 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5494,7 +5507,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3067 + // line internal/php7/php7.y:3080 { yyVAL.node = yyDollar[1].node @@ -5502,7 +5515,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3076 + // line internal/php7/php7.y:3089 { yyVAL.list = nil @@ -5510,7 +5523,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3082 + // line internal/php7/php7.y:3095 { yyVAL.list = yyDollar[1].list @@ -5518,7 +5531,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3091 + // line internal/php7/php7.y:3104 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5529,7 +5542,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3100 + // line internal/php7/php7.y:3113 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5537,7 +5550,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3109 + // line internal/php7/php7.y:3122 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5557,7 +5570,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3130 + // line internal/php7/php7.y:3143 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5574,7 +5587,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5588,7 +5601,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3173 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5607,7 +5620,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3177 + // line internal/php7/php7.y:3190 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5625,7 +5638,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5653,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5656,7 +5669,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3220 + // line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5670,7 +5683,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3232 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5685,7 +5698,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5700,7 +5713,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5728,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5730,7 +5743,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5758,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5773,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5775,7 +5788,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5803,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5818,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5833,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5848,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5850,7 +5863,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5878,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5880,7 +5893,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3427 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5894,7 +5907,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3439 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5909,7 +5922,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3439 + // line internal/php7/php7.y:3452 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5923,7 +5936,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3451 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5938,7 +5951,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5953,7 +5966,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5968,7 +5981,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5983,7 +5996,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5998,7 +6011,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6013,7 +6026,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6028,7 +6041,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6043,7 +6056,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6058,7 +6071,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6073,7 +6086,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6088,7 +6101,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6103,7 +6116,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3620 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6118,7 +6131,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6133,7 +6146,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6148,7 +6161,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6163,7 +6176,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6178,7 +6191,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6192,7 +6205,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3684 + // line internal/php7/php7.y:3697 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6206,7 +6219,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3696 + // line internal/php7/php7.y:3709 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6220,7 +6233,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3721 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6234,7 +6247,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6249,7 +6262,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6264,7 +6277,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6279,7 +6292,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3772 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6295,7 +6308,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3773 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6310,7 +6323,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6325,7 +6338,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6340,7 +6353,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6355,7 +6368,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6370,7 +6383,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3851 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6385,7 +6398,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3864 { yyVAL.node = yyDollar[2].node @@ -6397,7 +6410,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3861 + // line internal/php7/php7.y:3874 { yyVAL.node = yyDollar[1].node @@ -6405,7 +6418,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3867 + // line internal/php7/php7.y:3880 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6421,7 +6434,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6437,7 +6450,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3895 + // line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6452,7 +6465,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3921 { yyVAL.node = yyDollar[1].node @@ -6460,7 +6473,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3914 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6475,7 +6488,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6490,7 +6503,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6505,7 +6518,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6520,7 +6533,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6535,7 +6548,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6550,7 +6563,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3992 + // line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6565,7 +6578,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4005 + // line internal/php7/php7.y:4018 { var e *ast.ExprExit if yyDollar[2].node != nil { @@ -6594,7 +6607,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4032 + // line internal/php7/php7.y:4045 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6608,7 +6621,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4044 + // line internal/php7/php7.y:4057 { yyVAL.node = yyDollar[1].node @@ -6616,7 +6629,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4050 + // line internal/php7/php7.y:4063 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6630,7 +6643,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4062 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6644,7 +6657,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4074 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6658,7 +6671,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4099 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6672,7 +6685,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4098 + // line internal/php7/php7.y:4111 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6687,7 +6700,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4111 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6701,7 +6714,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4123 + // line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node @@ -6709,7 +6722,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4129 + // line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[2].node @@ -6732,7 +6745,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4152 + // line internal/php7/php7.y:4165 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6765,7 +6778,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4181 + // line internal/php7/php7.y:4194 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6793,19 +6806,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4213 + // line internal/php7/php7.y:4226 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4217 + // line internal/php7/php7.y:4230 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4224 + // line internal/php7/php7.y:4237 { yyVAL.ClosureUse = nil @@ -6813,7 +6826,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4243 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6829,7 +6842,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4260 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6840,7 +6853,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4256 + // line internal/php7/php7.y:4269 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6848,7 +6861,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4265 + // line internal/php7/php7.y:4278 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6864,7 +6877,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4279 + // line internal/php7/php7.y:4292 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6883,7 +6896,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4299 + // line internal/php7/php7.y:4312 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6896,21 +6909,6 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4311 - { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 386: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4324 { @@ -6923,11 +6921,26 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 386: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4337 + { + yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} + + // save position + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4337 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6941,7 +6954,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4352 + // line internal/php7/php7.y:4365 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6955,7 +6968,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4364 + // line internal/php7/php7.y:4377 { yyVAL.node = yyDollar[1].node @@ -6963,7 +6976,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4373 + // line internal/php7/php7.y:4386 { yyVAL.node = yyDollar[1].node @@ -6971,7 +6984,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4379 + // line internal/php7/php7.y:4392 { yyVAL.node = yyDollar[1].node @@ -6979,7 +6992,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4401 { yyVAL.node = nil @@ -6987,7 +7000,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4394 + // line internal/php7/php7.y:4407 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -7002,7 +7015,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4410 + // line internal/php7/php7.y:4423 { yyVAL.list = []ast.Vertex{} @@ -7010,7 +7023,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4416 + // line internal/php7/php7.y:4429 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7022,7 +7035,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4426 + // line internal/php7/php7.y:4439 { yyVAL.list = yyDollar[1].list @@ -7030,7 +7043,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4448 { yyVAL.node = nil @@ -7038,7 +7051,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4441 + // line internal/php7/php7.y:4454 { yyVAL.node = yyDollar[1].node @@ -7046,7 +7059,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4450 + // line internal/php7/php7.y:4463 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7062,7 +7075,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4464 + // line internal/php7/php7.y:4477 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7077,7 +7090,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4490 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7091,7 +7104,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4505 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7105,7 +7118,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4504 + // line internal/php7/php7.y:4517 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7119,7 +7132,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4516 + // line internal/php7/php7.y:4529 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7133,7 +7146,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4528 + // line internal/php7/php7.y:4541 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7147,7 +7160,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4540 + // line internal/php7/php7.y:4553 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7161,7 +7174,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4552 + // line internal/php7/php7.y:4565 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7175,7 +7188,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4564 + // line internal/php7/php7.y:4577 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7189,7 +7202,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4576 + // line internal/php7/php7.y:4589 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7203,7 +7216,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4588 + // line internal/php7/php7.y:4601 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7217,7 +7230,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4613 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7231,7 +7244,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4612 + // line internal/php7/php7.y:4625 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7247,7 +7260,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4626 + // line internal/php7/php7.y:4639 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7261,7 +7274,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4638 + // line internal/php7/php7.y:4651 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7275,7 +7288,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4650 + // line internal/php7/php7.y:4663 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7289,7 +7302,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4675 { yyVAL.node = yyDollar[1].node @@ -7297,7 +7310,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4668 + // line internal/php7/php7.y:4681 { yyVAL.node = yyDollar[1].node @@ -7305,7 +7318,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4677 + // line internal/php7/php7.y:4690 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7319,7 +7332,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4689 + // line internal/php7/php7.y:4702 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7337,7 +7350,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4705 + // line internal/php7/php7.y:4718 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7355,7 +7368,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4724 + // line internal/php7/php7.y:4737 { yyVAL.node = yyDollar[1].node @@ -7363,7 +7376,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4730 + // line internal/php7/php7.y:4743 { yyVAL.node = yyDollar[1].node @@ -7371,7 +7384,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4739 + // line internal/php7/php7.y:4752 { yyVAL.node = nil @@ -7379,7 +7392,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4745 + // line internal/php7/php7.y:4758 { yyVAL.node = yyDollar[1].node @@ -7387,7 +7400,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4754 + // line internal/php7/php7.y:4767 { yyVAL.node = yyDollar[1].node @@ -7395,7 +7408,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4763 + // line internal/php7/php7.y:4776 { yyVAL.node = yyDollar[1].node @@ -7403,7 +7416,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4769 + // line internal/php7/php7.y:4782 { yyVAL.node = yyDollar[2].node @@ -7415,7 +7428,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4779 + // line internal/php7/php7.y:4792 { yyVAL.node = yyDollar[1].node @@ -7423,7 +7436,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4801 { yyVAL.node = yyDollar[1].node @@ -7431,7 +7444,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4794 + // line internal/php7/php7.y:4807 { yyVAL.node = yyDollar[2].node @@ -7443,7 +7456,7 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4804 + // line internal/php7/php7.y:4817 { yyVAL.node = yyDollar[1].node @@ -7451,28 +7464,13 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4826 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4819 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4832 { @@ -7487,7 +7485,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 435: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4845 { @@ -7502,9 +7500,24 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 436: + case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4858 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4871 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7519,7 +7532,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4871 + // line internal/php7/php7.y:4884 { yyVAL.node = yyDollar[1].node @@ -7527,7 +7540,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4880 + // line internal/php7/php7.y:4893 { yyVAL.node = yyDollar[1].node @@ -7535,7 +7548,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4886 + // line internal/php7/php7.y:4899 { yyVAL.node = yyDollar[1].node @@ -7543,7 +7556,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4892 + // line internal/php7/php7.y:4905 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7558,7 +7571,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4921 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7574,7 +7587,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4922 + // line internal/php7/php7.y:4935 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7590,7 +7603,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4936 + // line internal/php7/php7.y:4949 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7603,21 +7616,6 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: - yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4951 - { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 445: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4964 { @@ -7630,32 +7628,32 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 445: + yyDollar = yyS[yypt-3 : yypt+1] + // line internal/php7/php7.y:4977 + { + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4980 + // line internal/php7/php7.y:4993 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4986 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 448: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4999 { @@ -7668,11 +7666,26 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 448: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:5012 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5012 + // line internal/php7/php7.y:5025 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7687,7 +7700,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5025 + // line internal/php7/php7.y:5038 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7702,7 +7715,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5038 + // line internal/php7/php7.y:5051 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7717,7 +7730,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5054 + // line internal/php7/php7.y:5067 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7731,7 +7744,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5066 + // line internal/php7/php7.y:5079 { yyVAL.node = yyDollar[2].node @@ -7743,7 +7756,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5076 + // line internal/php7/php7.y:5089 { yyVAL.node = yyDollar[1].node @@ -7751,7 +7764,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5085 + // line internal/php7/php7.y:5098 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7765,7 +7778,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5097 + // line internal/php7/php7.y:5110 { yyVAL.node = yyDollar[2].node @@ -7777,7 +7790,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5107 + // line internal/php7/php7.y:5120 { yyVAL.node = yyDollar[1].node @@ -7785,7 +7798,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5116 + // line internal/php7/php7.y:5129 { yyVAL.list = yyDollar[1].list @@ -7793,7 +7806,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5125 + // line internal/php7/php7.y:5138 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7801,7 +7814,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5131 + // line internal/php7/php7.y:5144 { yyVAL.node = yyDollar[1].node @@ -7809,7 +7822,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5140 + // line internal/php7/php7.y:5153 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7824,7 +7837,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5153 + // line internal/php7/php7.y:5166 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7836,7 +7849,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5166 + // line internal/php7/php7.y:5179 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7851,7 +7864,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5179 + // line internal/php7/php7.y:5192 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7865,7 +7878,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5191 + // line internal/php7/php7.y:5204 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7883,7 +7896,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5207 + // line internal/php7/php7.y:5220 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7899,7 +7912,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5221 + // line internal/php7/php7.y:5234 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7913,7 +7926,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5233 + // line internal/php7/php7.y:5246 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7934,7 +7947,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5252 + // line internal/php7/php7.y:5265 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7953,7 +7966,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5272 + // line internal/php7/php7.y:5285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7961,7 +7974,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5278 + // line internal/php7/php7.y:5291 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7976,7 +7989,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5291 + // line internal/php7/php7.y:5304 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7984,7 +7997,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5297 + // line internal/php7/php7.y:5310 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7999,7 +8012,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5313 + // line internal/php7/php7.y:5326 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8015,7 +8028,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5327 + // line internal/php7/php7.y:5340 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8034,7 +8047,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5344 + // line internal/php7/php7.y:5357 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8055,7 +8068,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5363 + // line internal/php7/php7.y:5376 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8072,7 +8085,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5378 + // line internal/php7/php7.y:5391 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8091,7 +8104,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5395 + // line internal/php7/php7.y:5408 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8112,7 +8125,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5414 + // line internal/php7/php7.y:5427 { yyVAL.node = yyDollar[2].node @@ -8124,7 +8137,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5427 + // line internal/php7/php7.y:5440 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8138,7 +8151,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5439 + // line internal/php7/php7.y:5452 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8157,7 +8170,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5456 + // line internal/php7/php7.y:5469 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8185,7 +8198,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5482 + // line internal/php7/php7.y:5495 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8201,7 +8214,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5499 + // line internal/php7/php7.y:5512 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8221,7 +8234,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5517 + // line internal/php7/php7.y:5530 { yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} @@ -8237,7 +8250,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5531 + // line internal/php7/php7.y:5544 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8251,7 +8264,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5543 + // line internal/php7/php7.y:5556 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8265,7 +8278,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5555 + // line internal/php7/php7.y:5568 { yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} @@ -8281,7 +8294,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5569 + // line internal/php7/php7.y:5582 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8295,7 +8308,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5581 + // line internal/php7/php7.y:5594 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8309,7 +8322,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5596 + // line internal/php7/php7.y:5609 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8317,7 +8330,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5602 + // line internal/php7/php7.y:5615 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8328,7 +8341,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5614 + // line internal/php7/php7.y:5627 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 4a2af09..e125503 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2037,38 +2037,46 @@ if_stmt: alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} stmts := &ast.StmtStmtList{ast.Node{}, $6} - $$ = &ast.StmtAltIf{ast.Node{}, $3, stmts, nil, nil} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + $$ = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) stmts.GetNode().Position = position.NewNodeListPosition($6) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($5, $6) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $4} stmts := &ast.StmtStmtList{ast.Node{}, $7} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, $4, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} $1.(*ast.StmtAltIf).ElseIf = append($1.(*ast.StmtAltIf).ElseIf, _elseIf) $$ = $1 // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($3, $5) stmts.GetNode().Position = position.NewNodeListPosition($7) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($6, $7) _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $7) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Cond, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2083,8 +2091,12 @@ alt_if_stmt: $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $3.Tokens) + altif := $$.(*ast.StmtAltIf) + if len(altif.ElseIf) > 0 { + yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append($2.Tokens, $3.Tokens...)) + } else { + yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append($2.Tokens, $3.Tokens...)) + } yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -2092,21 +2104,22 @@ alt_if_stmt: | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { stmts := &ast.StmtStmtList{ast.Node{}, $4} - _else := &ast.StmtAltElse{ast.Node{}, stmts} + stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} + _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} $1.(*ast.StmtAltIf).Else = _else $$ = $1 // save position stmts.GetNode().Position = position.NewNodeListPosition($4) + stmtsBrackets.GetNode().Position = position.NewTokensPosition($3, $5) _else.GetNode().Position = position.NewTokenNodeListPosition($2, $4) $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_else, token.Else, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($5.Tokens, $6.Tokens...)) yylex.(*Parser).setToken($$, token.SemiColon, $6.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index c8eaabf..a7f5529 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -40,3 +40,29 @@ func (v *FilterParserNodes) StmtUseDeclaration(n *ast.StmtUseDeclaration) { n.Alias = nn.Child } } + +func (v *FilterParserNodes) StmtAltIf(n *ast.StmtAltIf) { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } + + if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { + n.Stmt = nn.Child + } +} + +func (v *FilterParserNodes) StmtAltElseIf(n *ast.StmtAltElseIf) { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } + + if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { + n.Stmt = nn.Child + } +} + +func (v *FilterParserNodes) StmtAltElse(n *ast.StmtAltElse) { + if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { + n.Stmt = nn.Child + } +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index e269a6d..64a32c9 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1967,16 +1967,32 @@ func (p *Printer) printStmtAltElseIf(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "elseif") - p.printFreeFloating(nn, token.ElseIf) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") - if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { - p.printNodes(s) + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + + p.Print(nn.Cond) + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } + + stmtList, _ := nn.Stmt.(*ast.StmtStmtList) + brackets, ok := nn.Stmt.(*ast.ParserBrackets) + if ok { + p.printFreeFloating(brackets, token.Start) + stmtList = brackets.Child.(*ast.StmtStmtList) + } else { + io.WriteString(p.w, ":") + } + + p.printFreeFloating(stmtList, token.Stmts) + p.printNodes(stmtList.Stmts) + p.printFreeFloating(stmtList, token.End) + + if ok { + p.printFreeFloating(brackets, token.End) } p.printFreeFloating(nn, token.End) @@ -1987,11 +2003,22 @@ func (p *Printer) printStmtAltElse(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "else") - p.printFreeFloating(nn, token.Else) - io.WriteString(p.w, ":") - if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { - p.printNodes(s) + stmtList, _ := nn.Stmt.(*ast.StmtStmtList) + brackets, ok := nn.Stmt.(*ast.ParserBrackets) + if ok { + p.printFreeFloating(brackets, token.Start) + stmtList = brackets.Child.(*ast.StmtStmtList) + } else { + io.WriteString(p.w, ":") + } + + p.printFreeFloating(stmtList, token.Stmts) + p.printNodes(stmtList.Stmts) + p.printFreeFloating(stmtList, token.End) + + if ok { + p.printFreeFloating(brackets, token.End) } p.printFreeFloating(nn, token.End) @@ -2083,16 +2110,33 @@ func (p *Printer) printStmtAltIf(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "if") - p.printFreeFloating(nn, token.If) - io.WriteString(p.w, "(") - p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + + p.Print(nn.Cond) + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } + + stmtList, _ := nn.Stmt.(*ast.StmtStmtList) + brackets, ok := nn.Stmt.(*ast.ParserBrackets) + if ok { + p.printFreeFloating(brackets, token.Start) + stmtList = brackets.Child.(*ast.StmtStmtList) + } else { + io.WriteString(p.w, ":") + } + + p.printFreeFloating(stmtList, token.Stmts) + p.printNodes(stmtList.Stmts) + p.printFreeFloating(stmtList, token.End) + + if ok { + p.printFreeFloating(brackets, token.End) + } for _, elseif := range nn.ElseIf { p.Print(elseif) @@ -2102,9 +2146,10 @@ func (p *Printer) printStmtAltIf(n ast.Vertex) { p.Print(nn.Else) } - p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "endif") - p.printFreeFloating(nn, token.AltEnd) + if !ok { + io.WriteString(p.w, "endif") + } + p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { io.WriteString(p.w, ";") From 394092269ad298c1160d46a9253aa2f53fed4cfb Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 9 Aug 2020 22:40:55 +0200 Subject: [PATCH 044/140] [refactoring] store expr parenthesis --- internal/php5/parser_test.go | 14 +- internal/php5/php5.go | 1103 ++++++++++------------ internal/php5/php5.y | 139 +-- internal/php5/php5_test.go | 4 +- internal/php7/parser_test.go | 4 +- internal/php7/php7.go | 903 +++++++++--------- internal/php7/php7.y | 107 ++- internal/php7/php7_test.go | 12 +- pkg/ast/visitor/filter_parser_nodes.go | 1207 +++++++++++++++++++++++- pkg/printer/printer.go | 122 ++- pkg/token/position.go | 10 - pkg/token/position_string.go | 76 +- 12 files changed, 2411 insertions(+), 1290 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 6d72de0..a33aa36 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -5819,7 +5819,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { } func TestStmtExpression(t *testing.T) { - src := ` 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.If, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) - delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) - } - if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) - delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:932 + // line internal/php5/php5.y:926 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - yyVAL.node = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, yyDollar[5].list, yyDollar[6].node} + yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmtsBrackets, yyDollar[5].list, yyDollar[6].node} // save position - exprBrackets.GetNode().Position = position.NewNodePosition(yyDollar[2].node) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[3].token, yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) - delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) - } - if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) - delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.Tokens) if yyDollar[6].node != nil { yylex.(*Parser).setFreeFloating(yyDollar[6].node.(*ast.StmtAltElse).Stmt, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) @@ -3062,7 +3044,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:965 + // line internal/php5/php5.y:951 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3078,20 +3060,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.While, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) - delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) - } - if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) - delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:990 + // line internal/php5/php5.y:970 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3101,22 +3075,14 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - if len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.While, yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) - delete(yyDollar[4].node.GetNode().Tokens, token.OpenParenthesisToken) - } - if len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[4].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) - delete(yyDollar[4].node.GetNode().Tokens, token.CloseParenthesisToken) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyDollar[4].node, token.End, yyDollar[5].token.Tokens) yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1011 + // line internal/php5/php5.y:985 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3145,7 +3111,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1038 + // line internal/php5/php5.y:1012 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3163,20 +3129,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Switch, yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) - delete(yyDollar[2].node.GetNode().Tokens, token.OpenParenthesisToken) - } - if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) - delete(yyDollar[2].node.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1065 + // line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3192,7 +3150,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1079 + // line internal/php5/php5.y:1047 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3208,7 +3166,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1093 + // line internal/php5/php5.y:1061 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3224,7 +3182,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1107 + // line internal/php5/php5.y:1075 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3240,7 +3198,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1121 + // line internal/php5/php5.y:1089 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3256,7 +3214,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1135 + // line internal/php5/php5.y:1103 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3272,7 +3230,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1149 + // line internal/php5/php5.y:1117 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3288,7 +3246,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1163 + // line internal/php5/php5.y:1131 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3304,7 +3262,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1177 + // line internal/php5/php5.y:1145 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3320,7 +3278,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1191 + // line internal/php5/php5.y:1159 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3336,7 +3294,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1173 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3353,7 +3311,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1220 + // line internal/php5/php5.y:1188 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3367,7 +3325,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1232 + // line internal/php5/php5.y:1200 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3383,7 +3341,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1246 + // line internal/php5/php5.y:1214 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3401,7 +3359,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1262 + // line internal/php5/php5.y:1230 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3444,7 +3402,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1302 + // line internal/php5/php5.y:1270 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3487,7 +3445,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1342 + // line internal/php5/php5.y:1310 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3504,7 +3462,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1357 + // line internal/php5/php5.y:1325 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3519,7 +3477,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1370 + // line internal/php5/php5.y:1338 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3539,7 +3497,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1388 + // line internal/php5/php5.y:1356 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3555,7 +3513,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1402 + // line internal/php5/php5.y:1370 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3574,7 +3532,7 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1422 + // line internal/php5/php5.y:1390 { yyVAL.list = []ast.Vertex{} @@ -3582,7 +3540,7 @@ yydefault: } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1428 + // line internal/php5/php5.y:1396 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3606,7 +3564,7 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1453 + // line internal/php5/php5.y:1421 { yyVAL.node = nil @@ -3614,7 +3572,7 @@ yydefault: } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1459 + // line internal/php5/php5.y:1427 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3630,7 +3588,7 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1476 + // line internal/php5/php5.y:1444 { yyVAL.list = yyDollar[1].list @@ -3638,7 +3596,7 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1482 + // line internal/php5/php5.y:1450 { yyVAL.list = []ast.Vertex{} @@ -3646,7 +3604,7 @@ yydefault: } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1491 + // line internal/php5/php5.y:1459 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3654,7 +3612,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1465 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3662,7 +3620,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1506 + // line internal/php5/php5.y:1474 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3685,7 +3643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1530 + // line internal/php5/php5.y:1498 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3693,7 +3651,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1536 + // line internal/php5/php5.y:1504 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3704,7 +3662,7 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1548 + // line internal/php5/php5.y:1516 { yyVAL.node = yyDollar[1].node @@ -3712,7 +3670,7 @@ yydefault: } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1525 { yyVAL.node = yyDollar[1].node @@ -3720,7 +3678,7 @@ yydefault: } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1566 + // line internal/php5/php5.y:1534 { yyVAL.node = yyDollar[1].node @@ -3728,31 +3686,31 @@ yydefault: } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1575 + // line internal/php5/php5.y:1543 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1547 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1586 + // line internal/php5/php5.y:1554 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1590 + // line internal/php5/php5.y:1558 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1597 + // line internal/php5/php5.y:1565 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3778,7 +3736,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1624 + // line internal/php5/php5.y:1592 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3808,7 +3766,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1652 + // line internal/php5/php5.y:1620 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3827,7 +3785,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1673 + // line internal/php5/php5.y:1641 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3841,7 +3799,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1685 + // line internal/php5/php5.y:1653 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3858,7 +3816,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1700 + // line internal/php5/php5.y:1668 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3872,7 +3830,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1712 + // line internal/php5/php5.y:1680 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3889,7 +3847,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1730 + // line internal/php5/php5.y:1698 { yyVAL.ClassExtends = nil @@ -3897,7 +3855,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1736 + // line internal/php5/php5.y:1704 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3911,13 +3869,13 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1751 + // line internal/php5/php5.y:1719 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1758 + // line internal/php5/php5.y:1726 { yyVAL.InterfaceExtends = nil @@ -3925,7 +3883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1764 + // line internal/php5/php5.y:1732 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3939,7 +3897,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1779 + // line internal/php5/php5.y:1747 { yyVAL.ClassImplements = nil @@ -3947,7 +3905,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1785 + // line internal/php5/php5.y:1753 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3961,7 +3919,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1800 + // line internal/php5/php5.y:1768 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3969,7 +3927,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1806 + // line internal/php5/php5.y:1774 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3980,7 +3938,7 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1818 + // line internal/php5/php5.y:1786 { yyVAL.node = nil @@ -3988,7 +3946,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1824 + // line internal/php5/php5.y:1792 { yyVAL.node = yyDollar[2].node @@ -3999,7 +3957,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1836 + // line internal/php5/php5.y:1804 { yyVAL.node = yyDollar[1].node @@ -4007,7 +3965,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1842 + // line internal/php5/php5.y:1810 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4021,7 +3979,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1854 + // line internal/php5/php5.y:1822 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4037,7 +3995,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1871 + // line internal/php5/php5.y:1839 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4048,7 +4006,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1880 + // line internal/php5/php5.y:1848 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4067,7 +4025,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1900 + // line internal/php5/php5.y:1868 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4078,7 +4036,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1909 + // line internal/php5/php5.y:1877 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4097,7 +4055,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1930 + // line internal/php5/php5.y:1898 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4108,7 +4066,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1939 + // line internal/php5/php5.y:1907 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4127,7 +4085,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1960 + // line internal/php5/php5.y:1928 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4145,7 +4103,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1976 + // line internal/php5/php5.y:1944 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4164,7 +4122,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1997 + // line internal/php5/php5.y:1965 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4181,7 +4139,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2012 + // line internal/php5/php5.y:1980 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4199,7 +4157,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2028 + // line internal/php5/php5.y:1996 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4218,7 +4176,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2045 + // line internal/php5/php5.y:2013 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4239,7 +4197,7 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2068 + // line internal/php5/php5.y:2036 { yyVAL.list = []ast.Vertex{} @@ -4247,7 +4205,7 @@ yydefault: } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2074 + // line internal/php5/php5.y:2042 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4264,7 +4222,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2089 + // line internal/php5/php5.y:2057 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4281,19 +4239,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2108 + // line internal/php5/php5.y:2076 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2112 + // line internal/php5/php5.y:2080 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2120 + // line internal/php5/php5.y:2088 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4304,7 +4262,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2129 + // line internal/php5/php5.y:2097 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4323,7 +4281,7 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2151 + // line internal/php5/php5.y:2119 { yyVAL.list = nil @@ -4331,7 +4289,7 @@ yydefault: } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2157 + // line internal/php5/php5.y:2125 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4341,20 +4299,12 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken])-1]) - delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) - } - if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken][:len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken])-1]) - delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2180 + // line internal/php5/php5.y:2142 { yyVAL.list = nil @@ -4362,37 +4312,27 @@ yydefault: } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2186 + // line internal/php5/php5.y:2148 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmtsBrackets} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - exprBrackets.GetNode().Position = position.NewNodePosition(yyDollar[3].node) stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) - exprBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[4].token, yyDollar[5].list) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[4].token, yyDollar[5].list) _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - if len(yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].node.GetNode().Tokens[token.OpenParenthesisToken]) - delete(yyDollar[3].node.GetNode().Tokens, token.OpenParenthesisToken) - } - if len(yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[3].node.GetNode().Tokens[token.CloseParenthesisToken]) - delete(yyDollar[3].node.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2216 + // line internal/php5/php5.y:2170 { yyVAL.node = nil @@ -4400,7 +4340,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2222 + // line internal/php5/php5.y:2176 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4414,7 +4354,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2238 + // line internal/php5/php5.y:2192 { yyVAL.node = nil @@ -4422,7 +4362,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2244 + // line internal/php5/php5.y:2198 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4441,7 +4381,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2265 + // line internal/php5/php5.y:2219 { yyVAL.list = yyDollar[1].list @@ -4449,7 +4389,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2271 + // line internal/php5/php5.y:2225 { yyVAL.list = nil @@ -4457,7 +4397,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2280 + // line internal/php5/php5.y:2234 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4465,7 +4405,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2286 + // line internal/php5/php5.y:2240 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4476,7 +4416,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2298 + // line internal/php5/php5.y:2252 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4514,7 +4454,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2334 + // line internal/php5/php5.y:2288 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4553,7 +4493,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2375 + // line internal/php5/php5.y:2329 { yyVAL.node = nil @@ -4561,7 +4501,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2381 + // line internal/php5/php5.y:2335 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4575,7 +4515,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2393 + // line internal/php5/php5.y:2347 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4589,7 +4529,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2405 + // line internal/php5/php5.y:2359 { yyVAL.node = yyDollar[1].node @@ -4597,7 +4537,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2415 + // line internal/php5/php5.y:2369 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4612,7 +4552,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2428 + // line internal/php5/php5.y:2382 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4627,7 +4567,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2441 + // line internal/php5/php5.y:2395 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4644,7 +4584,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2460 + // line internal/php5/php5.y:2414 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4652,7 +4592,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2466 + // line internal/php5/php5.y:2420 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4663,7 +4603,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2432 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4677,7 +4617,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2490 + // line internal/php5/php5.y:2444 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4691,7 +4631,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2502 + // line internal/php5/php5.y:2456 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4705,7 +4645,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2514 + // line internal/php5/php5.y:2468 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4719,7 +4659,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2529 + // line internal/php5/php5.y:2483 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4730,7 +4670,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2538 + // line internal/php5/php5.y:2492 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4738,7 +4678,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2548 + // line internal/php5/php5.y:2502 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4754,7 +4694,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2562 + // line internal/php5/php5.y:2516 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4768,7 +4708,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2574 + // line internal/php5/php5.y:2528 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4784,7 +4724,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2592 + // line internal/php5/php5.y:2546 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4804,7 +4744,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2610 + // line internal/php5/php5.y:2564 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4825,7 +4765,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2629 + // line internal/php5/php5.y:2583 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4844,7 +4784,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2646 + // line internal/php5/php5.y:2600 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4864,7 +4804,7 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2668 + // line internal/php5/php5.y:2622 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4872,7 +4812,7 @@ yydefault: } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2674 + // line internal/php5/php5.y:2628 { yyVAL.list = []ast.Vertex{} @@ -4880,7 +4820,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2684 + // line internal/php5/php5.y:2638 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4896,7 +4836,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2698 + // line internal/php5/php5.y:2652 { yyVAL.node = yyDollar[1].node @@ -4911,7 +4851,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2711 + // line internal/php5/php5.y:2665 { yyVAL.node = yyDollar[1].node @@ -4919,7 +4859,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2717 + // line internal/php5/php5.y:2671 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4952,7 +4892,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2751 + // line internal/php5/php5.y:2705 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4966,7 +4906,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2766 + // line internal/php5/php5.y:2720 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4974,7 +4914,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2772 + // line internal/php5/php5.y:2726 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4985,7 +4925,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2784 + // line internal/php5/php5.y:2738 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4999,7 +4939,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2796 + // line internal/php5/php5.y:2750 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5013,7 +4953,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2811 + // line internal/php5/php5.y:2765 { yyVAL.list = nil @@ -5021,7 +4961,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2817 + // line internal/php5/php5.y:2771 { yyVAL.list = yyDollar[1].list @@ -5029,7 +4969,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2826 + // line internal/php5/php5.y:2780 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5037,7 +4977,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2832 + // line internal/php5/php5.y:2786 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5045,7 +4985,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2841 + // line internal/php5/php5.y:2795 { yyVAL.node = yyDollar[1].node @@ -5057,7 +4997,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2851 + // line internal/php5/php5.y:2805 { yyVAL.node = yyDollar[1].node @@ -5069,7 +5009,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2864 + // line internal/php5/php5.y:2818 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5084,7 +5024,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2880 + // line internal/php5/php5.y:2834 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5092,7 +5032,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2886 + // line internal/php5/php5.y:2840 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5103,7 +5043,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2898 + // line internal/php5/php5.y:2852 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5119,7 +5059,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2912 + // line internal/php5/php5.y:2866 { yyVAL.node = yyDollar[1].node @@ -5127,7 +5067,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2921 + // line internal/php5/php5.y:2875 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5145,7 +5085,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2940 + // line internal/php5/php5.y:2894 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5163,7 +5103,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2956 + // line internal/php5/php5.y:2910 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5178,7 +5118,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2972 + // line internal/php5/php5.y:2926 { yyVAL.node = nil @@ -5186,7 +5126,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2978 + // line internal/php5/php5.y:2932 { yyVAL.node = yyDollar[1].node @@ -5194,7 +5134,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2987 + // line internal/php5/php5.y:2941 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5209,7 +5149,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3000 + // line internal/php5/php5.y:2954 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5224,7 +5164,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3016 + // line internal/php5/php5.y:2970 { yyVAL.list = yyDollar[1].list @@ -5232,7 +5172,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3022 + // line internal/php5/php5.y:2976 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5247,7 +5187,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3038 + // line internal/php5/php5.y:2992 { yyVAL.list = nil @@ -5255,7 +5195,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3044 + // line internal/php5/php5.y:2998 { yyVAL.list = yyDollar[1].list @@ -5263,7 +5203,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3053 + // line internal/php5/php5.y:3007 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5271,7 +5211,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3059 + // line internal/php5/php5.y:3013 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5279,7 +5219,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3068 + // line internal/php5/php5.y:3022 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5293,7 +5233,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3034 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5307,7 +5247,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3092 + // line internal/php5/php5.y:3046 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5321,7 +5261,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3058 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5335,7 +5275,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3116 + // line internal/php5/php5.y:3070 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5349,7 +5289,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3082 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5363,7 +5303,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3143 + // line internal/php5/php5.y:3097 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5383,7 +5323,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3161 + // line internal/php5/php5.y:3115 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5404,7 +5344,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3180 + // line internal/php5/php5.y:3134 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5423,7 +5363,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3197 + // line internal/php5/php5.y:3151 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5443,7 +5383,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3218 + // line internal/php5/php5.y:3172 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5466,7 +5406,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3239 + // line internal/php5/php5.y:3193 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5486,7 +5426,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3260 + // line internal/php5/php5.y:3214 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5497,7 +5437,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3269 + // line internal/php5/php5.y:3223 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5505,7 +5445,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3279 + // line internal/php5/php5.y:3233 { yyVAL.list = nil @@ -5513,7 +5453,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3285 + // line internal/php5/php5.y:3239 { yyVAL.list = yyDollar[1].list @@ -5521,7 +5461,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3294 + // line internal/php5/php5.y:3248 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5532,7 +5472,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3303 + // line internal/php5/php5.y:3257 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5540,7 +5480,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3312 + // line internal/php5/php5.y:3266 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5548,7 +5488,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3318 + // line internal/php5/php5.y:3272 { yyVAL.list = yyDollar[1].list @@ -5556,7 +5496,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3327 + // line internal/php5/php5.y:3281 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5572,7 +5512,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3341 + // line internal/php5/php5.y:3295 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5588,7 +5528,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3358 + // line internal/php5/php5.y:3312 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -5596,7 +5536,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3364 + // line internal/php5/php5.y:3318 { yyVAL.list = yyDollar[1].list @@ -5604,7 +5544,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3324 { yyVAL.list = yyDollar[1].list @@ -5612,7 +5552,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3379 + // line internal/php5/php5.y:3333 { yyVAL.list = nil @@ -5620,7 +5560,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3385 + // line internal/php5/php5.y:3339 { yyVAL.list = yyDollar[1].list @@ -5628,7 +5568,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3394 + // line internal/php5/php5.y:3348 { if yyDollar[3].node != nil { @@ -5646,7 +5586,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3413 + // line internal/php5/php5.y:3367 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5665,7 +5605,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3430 + // line internal/php5/php5.y:3384 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5620,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3443 + // line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5696,7 +5636,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3457 + // line internal/php5/php5.y:3411 { var _new *ast.ExprNew @@ -5725,7 +5665,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3484 + // line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5739,7 +5679,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3496 + // line internal/php5/php5.y:3450 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5693,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3508 + // line internal/php5/php5.y:3462 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5708,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3521 + // line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5783,7 +5723,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3534 + // line internal/php5/php5.y:3488 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5798,7 +5738,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3547 + // line internal/php5/php5.y:3501 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5753,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3560 + // line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5828,7 +5768,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3573 + // line internal/php5/php5.y:3527 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5783,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3586 + // line internal/php5/php5.y:3540 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5798,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3599 + // line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5873,7 +5813,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3612 + // line internal/php5/php5.y:3566 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5888,7 +5828,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3625 + // line internal/php5/php5.y:3579 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5903,7 +5843,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3638 + // line internal/php5/php5.y:3592 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5918,7 +5858,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3651 + // line internal/php5/php5.y:3605 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5933,7 +5873,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3664 + // line internal/php5/php5.y:3618 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5947,7 +5887,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3676 + // line internal/php5/php5.y:3630 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5962,7 +5902,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3689 + // line internal/php5/php5.y:3643 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5976,7 +5916,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3701 + // line internal/php5/php5.y:3655 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5991,7 +5931,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3714 + // line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6006,7 +5946,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6021,7 +5961,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3740 + // line internal/php5/php5.y:3694 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6036,7 +5976,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3707 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6051,7 +5991,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3766 + // line internal/php5/php5.y:3720 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6066,7 +6006,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3779 + // line internal/php5/php5.y:3733 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6081,7 +6021,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3792 + // line internal/php5/php5.y:3746 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6096,7 +6036,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3805 + // line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6111,7 +6051,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3818 + // line internal/php5/php5.y:3772 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6126,7 +6066,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3831 + // line internal/php5/php5.y:3785 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6141,7 +6081,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3844 + // line internal/php5/php5.y:3798 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6156,7 +6096,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3857 + // line internal/php5/php5.y:3811 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6171,7 +6111,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3870 + // line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6186,7 +6126,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3883 + // line internal/php5/php5.y:3837 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6201,7 +6141,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3896 + // line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6216,7 +6156,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3909 + // line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6231,7 +6171,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3922 + // line internal/php5/php5.y:3876 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6245,7 +6185,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3934 + // line internal/php5/php5.y:3888 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6259,7 +6199,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3946 + // line internal/php5/php5.y:3900 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6273,7 +6213,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3958 + // line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6287,7 +6227,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3970 + // line internal/php5/php5.y:3924 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6302,7 +6242,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3983 + // line internal/php5/php5.y:3937 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6317,7 +6257,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3996 + // line internal/php5/php5.y:3950 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6332,7 +6272,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4009 + // line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6348,7 +6288,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4023 + // line internal/php5/php5.y:3977 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6363,7 +6303,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4036 + // line internal/php5/php5.y:3990 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6378,7 +6318,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4049 + // line internal/php5/php5.y:4003 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6393,7 +6333,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4062 + // line internal/php5/php5.y:4016 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6408,7 +6348,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4075 + // line internal/php5/php5.y:4029 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6423,20 +6363,15 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4088 + // line internal/php5/php5.y:4042 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).setFreeFloatingTokens(yyDollar[1].node, token.Start, append(yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[1].node.GetNode().Tokens[token.Start]...)) - delete(yyDollar[1].node.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[1].node, token.End, append(yyDollar[1].node.GetNode().Tokens[token.End], yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]...)) - delete(yyDollar[1].node.GetNode().Tokens, token.CloseParenthesisToken) } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4097 + // line internal/php5/php5.y:4048 { yyVAL.node = yyDollar[1].node @@ -6444,7 +6379,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4103 + // line internal/php5/php5.y:4054 { yyVAL.node = yyDollar[2].node @@ -6478,7 +6413,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4135 + // line internal/php5/php5.y:4086 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6494,7 +6429,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4149 + // line internal/php5/php5.y:4100 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6510,7 +6445,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4163 + // line internal/php5/php5.y:4114 { yyVAL.node = yyDollar[1].node @@ -6518,7 +6453,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4169 + // line internal/php5/php5.y:4120 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6533,7 +6468,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4182 + // line internal/php5/php5.y:4133 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6548,7 +6483,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4195 + // line internal/php5/php5.y:4146 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6563,7 +6498,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4159 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6578,7 +6513,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4221 + // line internal/php5/php5.y:4172 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6593,7 +6528,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4234 + // line internal/php5/php5.y:4185 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6608,7 +6543,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4247 + // line internal/php5/php5.y:4198 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6623,17 +6558,16 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4260 + // line internal/php5/php5.y:4211 { - e := yyDollar[2].node.(*ast.ExprExit) - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { - e.Die = true + yyVAL.node.(*ast.ExprExit).Die = true } // save position - if yyDollar[2].node.GetNode().Position == nil { + if yyDollar[2].node == nil { yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) } else { yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) @@ -6646,7 +6580,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4281 + // line internal/php5/php5.y:4231 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6660,7 +6594,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4293 + // line internal/php5/php5.y:4243 { yyVAL.node = yyDollar[1].node @@ -6668,7 +6602,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4299 + // line internal/php5/php5.y:4249 { yyVAL.node = yyDollar[1].node @@ -6676,7 +6610,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4305 + // line internal/php5/php5.y:4255 { yyVAL.node = yyDollar[1].node @@ -6684,7 +6618,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4311 + // line internal/php5/php5.y:4261 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6698,7 +6632,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4323 + // line internal/php5/php5.y:4273 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6712,7 +6646,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4335 + // line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6726,7 +6660,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4347 + // line internal/php5/php5.y:4297 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6755,7 +6689,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4373 + // line internal/php5/php5.y:4323 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6785,7 +6719,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4403 + // line internal/php5/php5.y:4353 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6799,7 +6733,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4415 + // line internal/php5/php5.y:4365 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6813,7 +6747,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4427 + // line internal/php5/php5.y:4377 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6828,7 +6762,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4440 + // line internal/php5/php5.y:4390 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6843,7 +6777,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4456 + // line internal/php5/php5.y:4406 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6858,7 +6792,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4469 + // line internal/php5/php5.y:4419 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6873,7 +6807,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4482 + // line internal/php5/php5.y:4432 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6891,7 +6825,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4448 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6906,7 +6840,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4514 + // line internal/php5/php5.y:4464 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6922,7 +6856,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4528 + // line internal/php5/php5.y:4478 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6937,13 +6871,13 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4544 + // line internal/php5/php5.y:4494 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4551 + // line internal/php5/php5.y:4501 { yyVAL.ClosureUse = nil @@ -6951,7 +6885,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4557 + // line internal/php5/php5.y:4507 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6967,7 +6901,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4574 + // line internal/php5/php5.y:4524 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6985,7 +6919,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4590 + // line internal/php5/php5.y:4540 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7006,7 +6940,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4559 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7023,7 +6957,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4624 + // line internal/php5/php5.y:4574 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7043,7 +6977,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4645 + // line internal/php5/php5.y:4595 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -7056,7 +6990,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4656 + // line internal/php5/php5.y:4606 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7073,7 +7007,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4671 + // line internal/php5/php5.y:4621 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7089,7 +7023,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4685 + // line internal/php5/php5.y:4635 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7104,7 +7038,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4698 + // line internal/php5/php5.y:4648 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7119,7 +7053,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4711 + // line internal/php5/php5.y:4661 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7134,7 +7068,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4674 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7149,7 +7083,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4737 + // line internal/php5/php5.y:4687 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7163,7 +7097,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4752 + // line internal/php5/php5.y:4702 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7177,7 +7111,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4764 + // line internal/php5/php5.y:4714 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7188,7 +7122,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4773 + // line internal/php5/php5.y:4723 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7203,7 +7137,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4736 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7217,7 +7151,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4801 + // line internal/php5/php5.y:4751 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -7228,7 +7162,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4810 + // line internal/php5/php5.y:4760 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7243,7 +7177,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4773 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7257,7 +7191,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4838 + // line internal/php5/php5.y:4788 { yyVAL.node = yyDollar[1].node @@ -7265,7 +7199,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4844 + // line internal/php5/php5.y:4794 { yyVAL.node = yyDollar[1].node @@ -7273,7 +7207,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4853 + // line internal/php5/php5.y:4803 { yyVAL.node = yyDollar[1].node @@ -7316,7 +7250,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4894 + // line internal/php5/php5.y:4844 { yyVAL.node = yyDollar[1].node @@ -7324,7 +7258,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4904 + // line internal/php5/php5.y:4854 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -7332,7 +7266,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4860 { yyVAL.list = []ast.Vertex{} @@ -7340,7 +7274,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4920 + // line internal/php5/php5.y:4870 { yyVAL.list = yyDollar[2].list @@ -7351,51 +7285,38 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4882 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} + yyVAL.node = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4888 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, nil} + yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} // save position yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Exit, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4951 + // line internal/php5/php5.y:4901 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[1].node} - - // save position - if bytes.Compare(yylex.(*Parser).currentToken.Value, []byte(")")) == 0 { - yyVAL.node.GetNode().Position = position.NewTokenPosition(yylex.(*Parser).currentToken) - } else { - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - } + yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Exit, yyDollar[1].node.GetNode().Tokens[token.OpenParenthesisToken]) - delete(yyDollar[1].node.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[1].node.GetNode().Tokens[token.CloseParenthesisToken]) - delete(yyDollar[1].node.GetNode().Tokens, token.CloseParenthesisToken) } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4971 + // line internal/php5/php5.y:4910 { yyVAL.list = []ast.Vertex{} @@ -7403,7 +7324,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4977 + // line internal/php5/php5.y:4916 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7415,7 +7336,7 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4987 + // line internal/php5/php5.y:4926 { yyVAL.list = yyDollar[1].list @@ -7423,7 +7344,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:4935 { yyVAL.node = nil @@ -7431,7 +7352,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5002 + // line internal/php5/php5.y:4941 { yyVAL.node = yyDollar[1].node @@ -7439,7 +7360,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5011 + // line internal/php5/php5.y:4950 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7453,7 +7374,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5023 + // line internal/php5/php5.y:4962 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7467,7 +7388,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5035 + // line internal/php5/php5.y:4974 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7481,7 +7402,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5047 + // line internal/php5/php5.y:4986 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7495,7 +7416,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5059 + // line internal/php5/php5.y:4998 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7509,7 +7430,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5071 + // line internal/php5/php5.y:5010 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7523,7 +7444,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5083 + // line internal/php5/php5.y:5022 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7537,7 +7458,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5095 + // line internal/php5/php5.y:5034 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7551,7 +7472,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5107 + // line internal/php5/php5.y:5046 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7565,7 +7486,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5119 + // line internal/php5/php5.y:5058 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7579,7 +7500,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5131 + // line internal/php5/php5.y:5070 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7595,7 +7516,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5145 + // line internal/php5/php5.y:5084 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7609,7 +7530,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5160 + // line internal/php5/php5.y:5099 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7627,7 +7548,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5179 + // line internal/php5/php5.y:5118 { yyVAL.node = yyDollar[1].node @@ -7635,7 +7556,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5127 { yyVAL.node = yyDollar[1].node @@ -7643,7 +7564,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5194 + // line internal/php5/php5.y:5133 { yyVAL.node = yyDollar[1].node @@ -7651,7 +7572,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5200 + // line internal/php5/php5.y:5139 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7664,7 +7585,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5150 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7681,7 +7602,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5226 + // line internal/php5/php5.y:5165 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7697,7 +7618,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5240 + // line internal/php5/php5.y:5179 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7713,7 +7634,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5254 + // line internal/php5/php5.y:5193 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7728,7 +7649,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5267 + // line internal/php5/php5.y:5206 { yyVAL.node = yyDollar[1].node @@ -7736,7 +7657,7 @@ yydefault: } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5273 + // line internal/php5/php5.y:5212 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7750,7 +7671,7 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5285 + // line internal/php5/php5.y:5224 { yyVAL.node = yyDollar[1].node @@ -7758,7 +7679,7 @@ yydefault: } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5294 + // line internal/php5/php5.y:5233 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7773,7 +7694,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5246 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7788,7 +7709,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5259 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7803,7 +7724,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5333 + // line internal/php5/php5.y:5272 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7818,7 +7739,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5346 + // line internal/php5/php5.y:5285 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7833,7 +7754,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5359 + // line internal/php5/php5.y:5298 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7848,7 +7769,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5372 + // line internal/php5/php5.y:5311 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7863,7 +7784,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5385 + // line internal/php5/php5.y:5324 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7877,7 +7798,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5397 + // line internal/php5/php5.y:5336 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7891,7 +7812,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5348 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7906,7 +7827,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5422 + // line internal/php5/php5.y:5361 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7921,7 +7842,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5374 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7936,7 +7857,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5387 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7951,7 +7872,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5461 + // line internal/php5/php5.y:5400 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7966,7 +7887,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5474 + // line internal/php5/php5.y:5413 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7981,7 +7902,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5487 + // line internal/php5/php5.y:5426 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7996,7 +7917,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5439 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8011,7 +7932,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5513 + // line internal/php5/php5.y:5452 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8026,7 +7947,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5465 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,7 +7962,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5539 + // line internal/php5/php5.y:5478 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8056,7 +7977,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5552 + // line internal/php5/php5.y:5491 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8071,7 +7992,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5565 + // line internal/php5/php5.y:5504 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8086,7 +8007,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5578 + // line internal/php5/php5.y:5517 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8101,7 +8022,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5530 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8117,7 +8038,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5544 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8132,7 +8053,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5618 + // line internal/php5/php5.y:5557 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8147,7 +8068,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5631 + // line internal/php5/php5.y:5570 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8162,7 +8083,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5644 + // line internal/php5/php5.y:5583 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8177,7 +8098,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5657 + // line internal/php5/php5.y:5596 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8193,7 +8114,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5671 + // line internal/php5/php5.y:5610 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8209,7 +8130,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5685 + // line internal/php5/php5.y:5624 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8223,7 +8144,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5697 + // line internal/php5/php5.y:5636 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8237,7 +8158,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5709 + // line internal/php5/php5.y:5648 { yyVAL.node = yyDollar[2].node @@ -8249,7 +8170,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5722 + // line internal/php5/php5.y:5661 { yyVAL.node = yyDollar[1].node @@ -8257,7 +8178,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5728 + // line internal/php5/php5.y:5667 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8270,7 +8191,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5739 + // line internal/php5/php5.y:5678 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8287,7 +8208,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5754 + // line internal/php5/php5.y:5693 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8303,7 +8224,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5771 + // line internal/php5/php5.y:5710 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8319,7 +8240,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5785 + // line internal/php5/php5.y:5724 { yyVAL.node = yyDollar[1].node @@ -8327,7 +8248,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5791 + // line internal/php5/php5.y:5730 { yyVAL.node = yyDollar[1].node @@ -8335,7 +8256,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5797 + // line internal/php5/php5.y:5736 { yyVAL.node = yyDollar[1].node @@ -8343,7 +8264,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5803 + // line internal/php5/php5.y:5742 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8357,7 +8278,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5815 + // line internal/php5/php5.y:5754 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8371,7 +8292,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5827 + // line internal/php5/php5.y:5766 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8385,7 +8306,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5842 + // line internal/php5/php5.y:5781 { yyVAL.list = nil @@ -8393,7 +8314,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5848 + // line internal/php5/php5.y:5787 { yyVAL.list = yyDollar[1].list @@ -8406,19 +8327,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5862 + // line internal/php5/php5.y:5801 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5866 + // line internal/php5/php5.y:5805 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5873 + // line internal/php5/php5.y:5812 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8435,7 +8356,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5888 + // line internal/php5/php5.y:5827 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8451,7 +8372,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5902 + // line internal/php5/php5.y:5841 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8467,7 +8388,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5916 + // line internal/php5/php5.y:5855 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8482,7 +8403,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5932 + // line internal/php5/php5.y:5871 { yyVAL.node = yyDollar[1].node @@ -8490,7 +8411,7 @@ yydefault: } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5938 + // line internal/php5/php5.y:5877 { yyVAL.node = yyDollar[1].node @@ -8498,43 +8419,37 @@ yydefault: } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5947 + // line internal/php5/php5.y:5886 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} + + // save position + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.Start, append(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[2].node.GetNode().Tokens[token.Start]...)) - } - if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) - } - yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.OpenParenthesisToken, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.CloseParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5963 + // line internal/php5/php5.y:5899 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} + + // save position + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - if len(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.Start, append(yyDollar[2].node.GetNode().Tokens[token.OpenParenthesisToken], yyDollar[2].node.GetNode().Tokens[token.Start]...)) - } - if len(yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[2].node, token.End, append(yyDollar[2].node.GetNode().Tokens[token.End], yyDollar[2].node.GetNode().Tokens[token.CloseParenthesisToken]...)) - } - yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.OpenParenthesisToken, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[2].node, token.CloseParenthesisToken, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5983 + // line internal/php5/php5.y:5916 { yyVAL.node = yyDollar[1].node @@ -8542,7 +8457,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5993 + // line internal/php5/php5.y:5926 { yyVAL.node = yyDollar[1].node @@ -8550,7 +8465,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6002 + // line internal/php5/php5.y:5935 { yyVAL.node = yyDollar[1].node @@ -8558,7 +8473,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6011 + // line internal/php5/php5.y:5944 { yyVAL.node = yyDollar[1].node @@ -8618,7 +8533,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6069 + // line internal/php5/php5.y:6002 { yyVAL.node = yyDollar[1].node @@ -8626,7 +8541,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6078 + // line internal/php5/php5.y:6011 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) @@ -8634,7 +8549,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6084 + // line internal/php5/php5.y:6017 { yyVAL.list = []ast.Vertex{} @@ -8642,7 +8557,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6094 + // line internal/php5/php5.y:6027 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8658,7 +8573,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6111 + // line internal/php5/php5.y:6044 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8674,7 +8589,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6125 + // line internal/php5/php5.y:6058 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8690,7 +8605,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6142 + // line internal/php5/php5.y:6075 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8701,7 +8616,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6154 + // line internal/php5/php5.y:6087 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8709,7 +8624,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6160 + // line internal/php5/php5.y:6093 { yyVAL.list = yyDollar[1].list @@ -8717,7 +8632,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6166 + // line internal/php5/php5.y:6099 { yyVAL.list = nil @@ -8725,7 +8640,7 @@ yydefault: } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6175 + // line internal/php5/php5.y:6108 { yyVAL.node = yyDollar[1].node @@ -8733,7 +8648,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6114 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8747,7 +8662,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6196 + // line internal/php5/php5.y:6129 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8762,7 +8677,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6209 + // line internal/php5/php5.y:6142 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8777,7 +8692,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6225 + // line internal/php5/php5.y:6158 { yyVAL.node = yyDollar[1].node @@ -8785,7 +8700,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6234 + // line internal/php5/php5.y:6167 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8800,7 +8715,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6247 + // line internal/php5/php5.y:6180 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8815,7 +8730,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6263 + // line internal/php5/php5.y:6196 { yyVAL.node = yyDollar[1].node @@ -8823,7 +8738,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6269 + // line internal/php5/php5.y:6202 { yyVAL.node = yyDollar[1].node @@ -8831,7 +8746,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6275 + // line internal/php5/php5.y:6208 { yyVAL.node = yyDollar[1].node @@ -8839,7 +8754,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6285 + // line internal/php5/php5.y:6218 { yyVAL.node = yyDollar[1].node @@ -8847,7 +8762,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6291 + // line internal/php5/php5.y:6224 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8861,7 +8776,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6303 + // line internal/php5/php5.y:6236 { yyVAL.node = yyDollar[1].node @@ -8869,7 +8784,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6312 + // line internal/php5/php5.y:6245 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8884,7 +8799,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6325 + // line internal/php5/php5.y:6258 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8899,7 +8814,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6338 + // line internal/php5/php5.y:6271 { yyVAL.node = yyDollar[1].node @@ -8907,7 +8822,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6348 + // line internal/php5/php5.y:6281 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8923,7 +8838,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6362 + // line internal/php5/php5.y:6295 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8939,7 +8854,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6379 + // line internal/php5/php5.y:6312 { yyVAL.node = nil @@ -8947,7 +8862,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6385 + // line internal/php5/php5.y:6318 { yyVAL.node = yyDollar[1].node @@ -8955,7 +8870,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6395 + // line internal/php5/php5.y:6328 { yyVAL.list = yyDollar[1].list @@ -8963,7 +8878,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6401 + // line internal/php5/php5.y:6334 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8975,7 +8890,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6414 + // line internal/php5/php5.y:6347 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8991,7 +8906,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6428 + // line internal/php5/php5.y:6361 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -9007,7 +8922,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6442 + // line internal/php5/php5.y:6375 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -9019,7 +8934,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6455 + // line internal/php5/php5.y:6388 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -9033,7 +8948,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6467 + // line internal/php5/php5.y:6400 { yyVAL.node = yyDollar[2].node @@ -9048,7 +8963,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6483 + // line internal/php5/php5.y:6416 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -9063,7 +8978,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6496 + // line internal/php5/php5.y:6429 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -9082,7 +8997,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6516 + // line internal/php5/php5.y:6449 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9097,7 +9012,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6529 + // line internal/php5/php5.y:6462 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -9109,7 +9024,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6543 + // line internal/php5/php5.y:6476 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9123,7 +9038,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6555 + // line internal/php5/php5.y:6488 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9141,7 +9056,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6571 + // line internal/php5/php5.y:6504 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -9149,7 +9064,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6581 + // line internal/php5/php5.y:6514 { yyVAL.list = []ast.Vertex{} @@ -9157,7 +9072,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6587 + // line internal/php5/php5.y:6520 { yyVAL.list = yyDollar[1].list @@ -9174,7 +9089,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6605 + // line internal/php5/php5.y:6538 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9191,7 +9106,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6620 + // line internal/php5/php5.y:6553 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9207,7 +9122,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6634 + // line internal/php5/php5.y:6567 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9223,7 +9138,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6648 + // line internal/php5/php5.y:6581 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9238,7 +9153,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6661 + // line internal/php5/php5.y:6594 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9258,7 +9173,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6679 + // line internal/php5/php5.y:6612 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9276,7 +9191,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6695 + // line internal/php5/php5.y:6628 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9295,7 +9210,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6712 + // line internal/php5/php5.y:6645 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9312,7 +9227,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6730 + // line internal/php5/php5.y:6663 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -9320,7 +9235,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6736 + // line internal/php5/php5.y:6669 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9335,7 +9250,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6749 + // line internal/php5/php5.y:6682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9343,7 +9258,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6755 + // line internal/php5/php5.y:6688 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9358,7 +9273,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6771 + // line internal/php5/php5.y:6704 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9374,7 +9289,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6785 + // line internal/php5/php5.y:6718 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9393,7 +9308,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6802 + // line internal/php5/php5.y:6735 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9414,7 +9329,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6821 + // line internal/php5/php5.y:6754 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9431,7 +9346,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6836 + // line internal/php5/php5.y:6769 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9450,7 +9365,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6853 + // line internal/php5/php5.y:6786 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9471,7 +9386,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6872 + // line internal/php5/php5.y:6805 { yyVAL.node = yyDollar[2].node @@ -9483,7 +9398,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6885 + // line internal/php5/php5.y:6818 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9497,7 +9412,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6897 + // line internal/php5/php5.y:6830 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9516,7 +9431,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6914 + // line internal/php5/php5.y:6847 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9532,7 +9447,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6931 + // line internal/php5/php5.y:6864 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9548,39 +9463,43 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6945 + // line internal/php5/php5.y:6878 { - yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6959 + // line internal/php5/php5.y:6894 { - yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6973 + // line internal/php5/php5.y:6910 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9594,7 +9513,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6985 + // line internal/php5/php5.y:6922 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9608,23 +9527,25 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6997 + // line internal/php5/php5.y:6934 { - yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7011 + // line internal/php5/php5.y:6950 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9638,7 +9559,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:7023 + // line internal/php5/php5.y:6962 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9652,7 +9573,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7038 + // line internal/php5/php5.y:6977 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -9660,7 +9581,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7044 + // line internal/php5/php5.y:6983 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9671,7 +9592,7 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7056 + // line internal/php5/php5.y:6995 { yyVAL.node = yyDollar[1].node @@ -9679,7 +9600,7 @@ yydefault: } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7062 + // line internal/php5/php5.y:7001 { yyVAL.node = yyDollar[1].node @@ -9687,7 +9608,7 @@ yydefault: } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7071 + // line internal/php5/php5.y:7010 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9705,7 +9626,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7087 + // line internal/php5/php5.y:7026 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9723,7 +9644,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7106 + // line internal/php5/php5.y:7045 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9741,7 +9662,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7125 + // line internal/php5/php5.y:7064 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d17ba27..63b1661 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -919,36 +919,22 @@ unticked_statement: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.If, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) - } - if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $2} stmts := &ast.StmtStmtList{ast.Node{}, $4} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - $$ = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, $5, $6} + $$ = &ast.StmtAltIf{ast.Node{}, $2, stmtsBrackets, $5, $6} // save position - exprBrackets.GetNode().Position = position.NewNodePosition($2) stmts.GetNode().Position = position.NewNodeListPosition($4) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($3, $4) $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.GetNode().Tokens[token.OpenParenthesisToken]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) - } - if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $2.GetNode().Tokens[token.CloseParenthesisToken]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.Tokens) if $6 != nil { yylex.(*Parser).setFreeFloating($6.(*ast.StmtAltElse).Stmt, token.End, append($7.Tokens, $8.Tokens...)) @@ -977,12 +963,6 @@ unticked_statement: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.While, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) - } - if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -996,13 +976,7 @@ unticked_statement: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - if len($4.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.While, $4.GetNode().Tokens[token.OpenParenthesisToken][:len($4.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($4.GetNode().Tokens, token.OpenParenthesisToken) - } - if len($4.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.GetNode().Tokens[token.CloseParenthesisToken][:len($4.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($4.GetNode().Tokens, token.CloseParenthesisToken) - } - yylex.(*Parser).setFreeFloating($$, token.Cond, $5.Tokens) + yylex.(*Parser).setFreeFloating($4, token.End, $5.Tokens) yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1052,12 +1026,6 @@ unticked_statement: // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.Switch, $2.GetNode().Tokens[token.OpenParenthesisToken][:len($2.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($2.GetNode().Tokens, token.OpenParenthesisToken) - } - if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.GetNode().Tokens[token.CloseParenthesisToken][:len($2.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($2.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2163,12 +2131,6 @@ elseif_list: // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.ElseIf, $3.GetNode().Tokens[token.OpenParenthesisToken][:len($3.GetNode().Tokens[token.OpenParenthesisToken])-1]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) - } - if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(_elseIf, token.Expr, $3.GetNode().Tokens[token.CloseParenthesisToken][:len($3.GetNode().Tokens[token.CloseParenthesisToken])-1]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -2184,26 +2146,18 @@ new_elseif_list: } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} stmts := &ast.StmtStmtList{ast.Node{}, $5} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} + _elseIf := &ast.StmtAltElseIf{ast.Node{}, $3, stmtsBrackets} $$ = append($1, _elseIf) // save position - exprBrackets.GetNode().Position = position.NewNodePosition($3) stmts.GetNode().Position = position.NewNodeListPosition($5) - exprBrackets.GetNode().Position = position.NewTokenNodeListPosition($4, $5) + stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($4, $5) _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - if len($3.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.GetNode().Tokens[token.OpenParenthesisToken]); delete($3.GetNode().Tokens, token.OpenParenthesisToken) - } - if len($3.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $3.GetNode().Tokens[token.CloseParenthesisToken]); delete($3.GetNode().Tokens, token.CloseParenthesisToken) - } yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -4089,9 +4043,6 @@ expr_without_variable: $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - yylex.(*Parser).setFreeFloatingTokens($1, token.Start, append($1.GetNode().Tokens[token.OpenParenthesisToken], $1.GetNode().Tokens[token.Start]...)); delete($1.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloatingTokens($1, token.End, append($1.GetNode().Tokens[token.End], $1.GetNode().Tokens[token.CloseParenthesisToken]...)); delete($1.GetNode().Tokens, token.CloseParenthesisToken) } | new_expr { @@ -4258,15 +4209,14 @@ expr_without_variable: } | T_EXIT exit_expr { - e := $2.(*ast.ExprExit) - $$ = $2 + $$ = &ast.ExprExit{ast.Node{}, false, $2} if (bytes.EqualFold($1.Value, []byte("die"))) { - e.Die = true + $$.(*ast.ExprExit).Die = true } // save position - if $2.GetNode().Position == nil { + if $2 == nil { $$.GetNode().Position = position.NewTokenPosition($1) } else { $$.GetNode().Position = position.NewTokenNodePosition($1, $2) @@ -4930,39 +4880,28 @@ dynamic_class_name_variable_property: exit_expr: /* empty */ { - $$ = &ast.ExprExit{ast.Node{}, false, nil}; + $$ = nil yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' ')' { - $$ = &ast.ExprExit{ast.Node{}, false, nil}; + $$ = &ast.ParserBrackets{ast.Node{}, nil} // save position $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Exit, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | parenthesis_expr { - $$ = &ast.ExprExit{ast.Node{}, false, $1}; - - // save position - if bytes.Compare(yylex.(*Parser).currentToken.Value, []byte(")")) == 0 { - $$.GetNode().Position = position.NewTokenPosition(yylex.(*Parser).currentToken) - } else { - $$.GetNode().Position = position.NewNodePosition($1) - } + $$ = $1 yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Exit, $1.GetNode().Tokens[token.OpenParenthesisToken]); delete($1.GetNode().Tokens, token.OpenParenthesisToken) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $1.GetNode().Tokens[token.CloseParenthesisToken]); delete($1.GetNode().Tokens, token.CloseParenthesisToken) } ; @@ -5945,33 +5884,27 @@ expr: parenthesis_expr: '(' expr ')' { - $$ = $2 + $$ = &ast.ParserBrackets{ast.Node{}, $2} + + // save position + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, token.Start, append($2.GetNode().Tokens[token.OpenParenthesisToken], $2.GetNode().Tokens[token.Start]...)) - } - if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) - } - yylex.(*Parser).setFreeFloatingTokens($2, token.OpenParenthesisToken, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($2, token.CloseParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' yield_expr ')' { - $$ = $2 + $$ = &ast.ParserBrackets{ast.Node{}, $2} + + // save position + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - if len($2.GetNode().Tokens[token.OpenParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, token.Start, append($2.GetNode().Tokens[token.OpenParenthesisToken], $2.GetNode().Tokens[token.Start]...)) - } - if len($2.GetNode().Tokens[token.CloseParenthesisToken]) > 0 { - yylex.(*Parser).setFreeFloating($2, token.End, append($2.GetNode().Tokens[token.End], $2.GetNode().Tokens[token.CloseParenthesisToken]...)) - } - yylex.(*Parser).setFreeFloatingTokens($2, token.OpenParenthesisToken, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($2, token.CloseParenthesisToken, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6943,29 +6876,33 @@ internal_functions_in_yacc: } | T_EMPTY '(' variable ')' { - $$ = &ast.ExprEmpty{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EMPTY '(' expr ')' { - $$ = &ast.ExprEmpty{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -6995,15 +6932,17 @@ internal_functions_in_yacc: } | T_EVAL '(' expr ')' { - $$ = &ast.ExprEval{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + $$ = &ast.ExprEval{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 07cbd58..b1a1ada 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -10048,7 +10048,7 @@ func TestPhp5(t *testing.T) { StartLine: 175, EndLine: 175, StartPos: 3593, - EndPos: 3601, + EndPos: 3602, }, }, Expr: &ast.ExprVariable{ @@ -12426,7 +12426,7 @@ func TestPhp5(t *testing.T) { StartLine: 223, EndLine: 223, StartPos: 4168, - EndPos: 4176, + EndPos: 4177, }, }, Expr: &ast.ExprVariable{ diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 99ac89f..9ef81b7 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -15577,7 +15577,7 @@ func TestExprClone_Brackets(t *testing.T) { StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 11, + EndPos: 12, }, }, Expr: &ast.ExprVariable{ @@ -19422,7 +19422,7 @@ func TestExprPrint(t *testing.T) { StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 11, + EndPos: 12, }, }, Expr: &ast.ExprVariable{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 0c50734..89954b6 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5636 +// line internal/php7/php7.y:5653 // line yacctab:1 var yyExca = [...]int{ @@ -3310,47 +3310,51 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php7/php7.y:995 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: - n.Cond = yyDollar[3].node + n.Cond = exprBrackets case *ast.StmtAltWhile: - n.Cond = yyDollar[3].node + n.Cond = exprBrackets } yyVAL.node = yyDollar[5].node // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1016 + // line internal/php7/php7.y:1019 { - yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[5].node} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[5].node} + yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[6].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.While, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[7].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[7].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1033 + // line internal/php7/php7.y:1037 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3379,13 +3383,15 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1060 + // line internal/php7/php7.y:1064 { + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: - n.Cond = yyDollar[3].node + n.Cond = exprBrackets case *ast.StmtAltSwitch: - n.Cond = yyDollar[3].node + n.Cond = exprBrackets default: panic("unexpected node type") } @@ -3393,18 +3399,19 @@ yydefault: yyVAL.node = yyDollar[5].node // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Switch, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1083 + // line internal/php7/php7.y:1090 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3420,7 +3427,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1097 + // line internal/php7/php7.y:1104 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3436,7 +3443,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1111 + // line internal/php7/php7.y:1118 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3452,7 +3459,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1132 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3468,7 +3475,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1139 + // line internal/php7/php7.y:1146 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3484,7 +3491,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1153 + // line internal/php7/php7.y:1160 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3501,7 +3508,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1168 + // line internal/php7/php7.y:1175 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3515,7 +3522,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1180 + // line internal/php7/php7.y:1187 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3531,7 +3538,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1194 + // line internal/php7/php7.y:1201 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3553,7 +3560,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1214 + // line internal/php7/php7.y:1221 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3579,7 +3586,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1239 + // line internal/php7/php7.y:1246 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3608,7 +3615,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1273 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3625,7 +3632,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1281 + // line internal/php7/php7.y:1288 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3640,7 +3647,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1294 + // line internal/php7/php7.y:1301 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3659,7 +3666,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1311 + // line internal/php7/php7.y:1318 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3675,7 +3682,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1325 + // line internal/php7/php7.y:1332 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3694,7 +3701,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1342 + // line internal/php7/php7.y:1349 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3711,7 +3718,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1359 + // line internal/php7/php7.y:1366 { yyVAL.list = []ast.Vertex{} @@ -3719,7 +3726,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1365 + // line internal/php7/php7.y:1372 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3743,7 +3750,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1389 + // line internal/php7/php7.y:1396 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3751,7 +3758,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1395 + // line internal/php7/php7.y:1402 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3762,7 +3769,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1407 + // line internal/php7/php7.y:1414 { yyVAL.node = nil @@ -3770,7 +3777,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1413 + // line internal/php7/php7.y:1420 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3786,7 +3793,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1430 + // line internal/php7/php7.y:1437 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3794,7 +3801,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1436 + // line internal/php7/php7.y:1443 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3805,7 +3812,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1448 + // line internal/php7/php7.y:1455 { yyVAL.node = yyDollar[1].node @@ -3813,7 +3820,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1457 + // line internal/php7/php7.y:1464 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3845,31 +3852,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1490 + // line internal/php7/php7.y:1497 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1494 + // line internal/php7/php7.y:1501 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1501 + // line internal/php7/php7.y:1508 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1505 + // line internal/php7/php7.y:1512 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1512 + // line internal/php7/php7.y:1519 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3889,7 +3896,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1530 + // line internal/php7/php7.y:1537 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3908,7 +3915,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1550 + // line internal/php7/php7.y:1557 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -3916,7 +3923,7 @@ yydefault: } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1556 + // line internal/php7/php7.y:1563 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3924,7 +3931,7 @@ yydefault: } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1565 + // line internal/php7/php7.y:1572 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3938,7 +3945,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1577 + // line internal/php7/php7.y:1584 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3952,7 +3959,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1592 + // line internal/php7/php7.y:1599 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3971,7 +3978,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1612 + // line internal/php7/php7.y:1619 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3990,7 +3997,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1632 + // line internal/php7/php7.y:1639 { yyVAL.ClassExtends = nil @@ -3998,7 +4005,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1638 + // line internal/php7/php7.y:1645 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -4012,7 +4019,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1653 + // line internal/php7/php7.y:1660 { yyVAL.InterfaceExtends = nil @@ -4020,7 +4027,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1666 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4034,7 +4041,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1674 + // line internal/php7/php7.y:1681 { yyVAL.ClassImplements = nil @@ -4042,7 +4049,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1680 + // line internal/php7/php7.y:1687 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4056,7 +4063,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1695 + // line internal/php7/php7.y:1702 { yyVAL.node = yyDollar[1].node @@ -4064,7 +4071,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1701 + // line internal/php7/php7.y:1708 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4078,7 +4085,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1713 + // line internal/php7/php7.y:1720 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4094,7 +4101,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1727 + // line internal/php7/php7.y:1734 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4109,7 +4116,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1743 + // line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4120,7 +4127,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1752 + // line internal/php7/php7.y:1759 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4139,7 +4146,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1772 + // line internal/php7/php7.y:1779 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -4150,7 +4157,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1781 + // line internal/php7/php7.y:1788 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4169,7 +4176,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1801 + // line internal/php7/php7.y:1808 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -4180,7 +4187,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1810 + // line internal/php7/php7.y:1817 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4199,7 +4206,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1830 + // line internal/php7/php7.y:1837 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4216,7 +4223,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1845 + // line internal/php7/php7.y:1852 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4234,7 +4241,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1861 + // line internal/php7/php7.y:1868 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4253,7 +4260,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1878 + // line internal/php7/php7.y:1885 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4274,7 +4281,7 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1900 + // line internal/php7/php7.y:1907 { yyVAL.list = []ast.Vertex{} @@ -4282,7 +4289,7 @@ yydefault: } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1906 + // line internal/php7/php7.y:1913 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4299,7 +4306,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1921 + // line internal/php7/php7.y:1928 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4316,19 +4323,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1939 + // line internal/php7/php7.y:1946 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1943 + // line internal/php7/php7.y:1950 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1950 + // line internal/php7/php7.y:1957 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4339,7 +4346,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1959 + // line internal/php7/php7.y:1966 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4358,43 +4365,47 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1986 { - yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[3].node, yyDollar[5].node, nil, nil} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.If, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1993 + // line internal/php7/php7.y:2002 { - _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[4].node, yyDollar[6].node} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} + _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) yyVAL.node = yyDollar[1].node // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) _elseIf.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2014 + // line internal/php7/php7.y:2025 { yyVAL.node = yyDollar[1].node @@ -4402,7 +4413,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2020 + // line internal/php7/php7.y:2031 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4420,7 +4431,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2039 + // line internal/php7/php7.y:2050 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} @@ -4443,7 +4454,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2060 + // line internal/php7/php7.y:2071 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} @@ -4469,7 +4480,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2098 { yyVAL.node = yyDollar[1].node @@ -4489,7 +4500,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2105 + // line internal/php7/php7.y:2116 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4514,7 +4525,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2131 + // line internal/php7/php7.y:2142 { yyVAL.list = yyDollar[1].list @@ -4522,7 +4533,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2137 + // line internal/php7/php7.y:2148 { yyVAL.list = nil @@ -4530,7 +4541,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2146 + // line internal/php7/php7.y:2157 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4538,7 +4549,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2152 + // line internal/php7/php7.y:2163 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4549,7 +4560,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2164 + // line internal/php7/php7.y:2175 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4587,7 +4598,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2211 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4626,7 +4637,7 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2240 + // line internal/php7/php7.y:2251 { yyVAL.node = nil @@ -4634,7 +4645,7 @@ yydefault: } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2246 + // line internal/php7/php7.y:2257 { yyVAL.node = yyDollar[1].node @@ -4642,7 +4653,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2255 + // line internal/php7/php7.y:2266 { yyVAL.node = yyDollar[1].node @@ -4650,7 +4661,7 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2261 + // line internal/php7/php7.y:2272 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4664,7 +4675,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2276 + // line internal/php7/php7.y:2287 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4678,7 +4689,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2299 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4692,7 +4703,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2311 { yyVAL.node = yyDollar[1].node @@ -4700,7 +4711,7 @@ yydefault: } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2309 + // line internal/php7/php7.y:2320 { yyVAL.node = nil @@ -4708,7 +4719,7 @@ yydefault: } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2315 + // line internal/php7/php7.y:2326 { yyVAL.node = yyDollar[2].node @@ -4719,7 +4730,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2338 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4734,7 +4745,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2340 + // line internal/php7/php7.y:2351 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4753,7 +4764,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2360 + // line internal/php7/php7.y:2371 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4761,7 +4772,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2377 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4772,7 +4783,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2378 + // line internal/php7/php7.y:2389 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4786,7 +4797,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2390 + // line internal/php7/php7.y:2401 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4800,7 +4811,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2405 + // line internal/php7/php7.y:2416 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4811,7 +4822,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2414 + // line internal/php7/php7.y:2425 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4819,7 +4830,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2423 + // line internal/php7/php7.y:2434 { yyVAL.node = yyDollar[1].node @@ -4827,7 +4838,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2432 + // line internal/php7/php7.y:2443 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4838,7 +4849,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2441 + // line internal/php7/php7.y:2452 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4846,7 +4857,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2450 + // line internal/php7/php7.y:2461 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4864,7 +4875,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2466 + // line internal/php7/php7.y:2477 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4883,7 +4894,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2486 + // line internal/php7/php7.y:2497 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -4891,7 +4902,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2492 + // line internal/php7/php7.y:2503 { yyVAL.list = []ast.Vertex{} @@ -4899,7 +4910,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2501 + // line internal/php7/php7.y:2512 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4915,7 +4926,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2526 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4936,7 +4947,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2534 + // line internal/php7/php7.y:2545 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4950,7 +4961,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2546 + // line internal/php7/php7.y:2557 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4983,7 +4994,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2580 + // line internal/php7/php7.y:2591 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -4991,7 +5002,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2586 + // line internal/php7/php7.y:2597 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5002,7 +5013,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2609 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5016,7 +5027,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2622 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -5030,7 +5041,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2623 + // line internal/php7/php7.y:2634 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -5044,7 +5055,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2649 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5052,7 +5063,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2644 + // line internal/php7/php7.y:2655 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5060,7 +5071,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2664 { yyVAL.node = yyDollar[1].node @@ -5072,7 +5083,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2674 { yyVAL.node = yyDollar[1].node @@ -5084,7 +5095,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2676 + // line internal/php7/php7.y:2687 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5099,7 +5110,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2692 + // line internal/php7/php7.y:2703 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5117,7 +5128,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2708 + // line internal/php7/php7.y:2719 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5135,7 +5146,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2724 + // line internal/php7/php7.y:2735 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5153,7 +5164,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2751 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5168,7 +5179,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2767 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5184,7 +5195,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2781 { yyVAL.node = yyDollar[1].node @@ -5192,7 +5203,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2790 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5210,7 +5221,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2798 + // line internal/php7/php7.y:2809 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5225,7 +5236,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2811 + // line internal/php7/php7.y:2822 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5240,7 +5251,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2827 + // line internal/php7/php7.y:2838 { yyVAL.list = yyDollar[1].list @@ -5248,7 +5259,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2833 + // line internal/php7/php7.y:2844 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5263,7 +5274,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2849 + // line internal/php7/php7.y:2860 { yyVAL.list = nil @@ -5271,7 +5282,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2866 { yyVAL.list = yyDollar[1].list @@ -5279,7 +5290,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2864 + // line internal/php7/php7.y:2875 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5287,7 +5298,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2881 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -5295,7 +5306,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2879 + // line internal/php7/php7.y:2890 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5309,7 +5320,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2891 + // line internal/php7/php7.y:2902 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5323,7 +5334,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2903 + // line internal/php7/php7.y:2914 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5337,7 +5348,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2926 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5351,7 +5362,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2938 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5365,7 +5376,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2939 + // line internal/php7/php7.y:2950 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5379,7 +5390,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2965 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5390,7 +5401,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2963 + // line internal/php7/php7.y:2974 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5398,7 +5409,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2972 + // line internal/php7/php7.y:2983 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5416,7 +5427,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2999 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5435,7 +5446,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3008 + // line internal/php7/php7.y:3019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5446,7 +5457,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3028 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5454,7 +5465,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3037 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5471,7 +5482,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3044 + // line internal/php7/php7.y:3055 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5488,7 +5499,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3073 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5499,7 +5510,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3082 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5507,7 +5518,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3091 { yyVAL.node = yyDollar[1].node @@ -5515,7 +5526,7 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3100 { yyVAL.list = nil @@ -5523,7 +5534,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3106 { yyVAL.list = yyDollar[1].list @@ -5531,7 +5542,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3115 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5542,7 +5553,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3124 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -5550,7 +5561,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3133 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5570,7 +5581,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3143 + // line internal/php7/php7.y:3154 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5587,7 +5598,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3158 + // line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5601,7 +5612,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3173 + // line internal/php7/php7.y:3184 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5620,7 +5631,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3190 + // line internal/php7/php7.y:3201 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5638,7 +5649,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3217 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5664,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3230 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5669,7 +5680,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3233 + // line internal/php7/php7.y:3244 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5683,7 +5694,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3256 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5698,7 +5709,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,7 +5724,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3282 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5739,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3295 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,7 +5754,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3308 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5769,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5784,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3334 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5788,7 +5799,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3347 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5814,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3360 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5829,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3373 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5844,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3375 + // line internal/php7/php7.y:3386 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5859,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3399 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5863,7 +5874,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3412 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5889,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5893,7 +5904,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3427 + // line internal/php7/php7.y:3438 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5907,7 +5918,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3439 + // line internal/php7/php7.y:3450 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5922,7 +5933,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3452 + // line internal/php7/php7.y:3463 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5936,7 +5947,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3475 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5951,7 +5962,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5966,7 +5977,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5981,7 +5992,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3514 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5996,7 +6007,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3527 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6011,7 +6022,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3540 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6026,7 +6037,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3553 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6041,7 +6052,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3566 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6056,7 +6067,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3579 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6071,7 +6082,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3592 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6086,7 +6097,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6101,7 +6112,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3618 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6116,7 +6127,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3631 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6131,7 +6142,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3633 + // line internal/php7/php7.y:3644 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6146,7 +6157,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3657 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6161,7 +6172,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3670 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6176,7 +6187,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3683 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6191,7 +6202,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3685 + // line internal/php7/php7.y:3696 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6205,7 +6216,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3697 + // line internal/php7/php7.y:3708 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6219,7 +6230,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3709 + // line internal/php7/php7.y:3720 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6233,7 +6244,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3732 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6247,7 +6258,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3744 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6262,7 +6273,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3757 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6277,7 +6288,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3770 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6292,7 +6303,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3772 + // line internal/php7/php7.y:3783 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6308,7 +6319,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3797 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6323,7 +6334,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3810 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6338,7 +6349,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3823 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6353,7 +6364,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3836 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6368,7 +6379,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3849 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6383,7 +6394,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3862 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6398,19 +6409,22 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3864 + // line internal/php7/php7.y:3875 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} + + // save position + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3888 { yyVAL.node = yyDollar[1].node @@ -6418,7 +6432,7 @@ yydefault: } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6434,7 +6448,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3894 + // line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6450,7 +6464,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3922 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6465,7 +6479,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3935 { yyVAL.node = yyDollar[1].node @@ -6473,7 +6487,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3941 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6488,7 +6502,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3954 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6503,7 +6517,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6518,7 +6532,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3980 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6533,7 +6547,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3993 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6548,7 +6562,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3992 + // line internal/php7/php7.y:4006 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6563,7 +6577,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4005 + // line internal/php7/php7.y:4019 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6578,19 +6592,12 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4032 { - var e *ast.ExprExit - if yyDollar[2].node != nil { - e = yyDollar[2].node.(*ast.ExprExit) - } else { - e = &ast.ExprExit{ast.Node{}, false, nil} - } - - yyVAL.node = e + yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { - e.Die = true + yyVAL.node.(*ast.ExprExit).Die = true } // save position @@ -6607,7 +6614,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4045 + // line internal/php7/php7.y:4052 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6621,7 +6628,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4064 { yyVAL.node = yyDollar[1].node @@ -6629,7 +6636,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4070 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6643,7 +6650,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6657,7 +6664,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4094 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6671,7 +6678,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4099 + // line internal/php7/php7.y:4106 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6685,7 +6692,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4111 + // line internal/php7/php7.y:4118 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6700,7 +6707,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4124 + // line internal/php7/php7.y:4131 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6714,7 +6721,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node @@ -6722,7 +6729,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4149 { yyVAL.node = yyDollar[2].node @@ -6745,7 +6752,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6778,7 +6785,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4194 + // line internal/php7/php7.y:4201 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6806,19 +6813,19 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4226 + // line internal/php7/php7.y:4233 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4237 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4237 + // line internal/php7/php7.y:4244 { yyVAL.ClosureUse = nil @@ -6826,7 +6833,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4243 + // line internal/php7/php7.y:4250 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6842,7 +6849,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4267 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6853,7 +6860,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4276 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -6861,7 +6868,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4278 + // line internal/php7/php7.y:4285 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6877,7 +6884,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4292 + // line internal/php7/php7.y:4299 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6896,7 +6903,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4312 + // line internal/php7/php7.y:4319 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6910,7 +6917,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4324 + // line internal/php7/php7.y:4331 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6925,7 +6932,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4337 + // line internal/php7/php7.y:4344 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6940,7 +6947,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4350 + // line internal/php7/php7.y:4357 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6954,7 +6961,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4365 + // line internal/php7/php7.y:4372 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6968,7 +6975,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4377 + // line internal/php7/php7.y:4384 { yyVAL.node = yyDollar[1].node @@ -6976,7 +6983,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4386 + // line internal/php7/php7.y:4393 { yyVAL.node = yyDollar[1].node @@ -6984,7 +6991,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4392 + // line internal/php7/php7.y:4399 { yyVAL.node = yyDollar[1].node @@ -6992,7 +6999,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4401 + // line internal/php7/php7.y:4408 { yyVAL.node = nil @@ -7000,22 +7007,22 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4407 + // line internal/php7/php7.y:4414 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} + yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} // save position yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Exit, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4423 + // line internal/php7/php7.y:4430 { yyVAL.list = []ast.Vertex{} @@ -7023,7 +7030,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4429 + // line internal/php7/php7.y:4436 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -7035,7 +7042,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4439 + // line internal/php7/php7.y:4446 { yyVAL.list = yyDollar[1].list @@ -7043,7 +7050,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4448 + // line internal/php7/php7.y:4455 { yyVAL.node = nil @@ -7051,7 +7058,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4454 + // line internal/php7/php7.y:4461 { yyVAL.node = yyDollar[1].node @@ -7059,7 +7066,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4463 + // line internal/php7/php7.y:4470 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7075,7 +7082,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4484 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7090,7 +7097,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4497 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7104,7 +7111,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4505 + // line internal/php7/php7.y:4512 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7118,7 +7125,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4524 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7132,7 +7139,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4536 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7146,7 +7153,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4541 + // line internal/php7/php7.y:4548 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7160,7 +7167,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4553 + // line internal/php7/php7.y:4560 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7174,7 +7181,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4565 + // line internal/php7/php7.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7188,7 +7195,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4577 + // line internal/php7/php7.y:4584 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7202,7 +7209,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4589 + // line internal/php7/php7.y:4596 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7216,7 +7223,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4601 + // line internal/php7/php7.y:4608 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7230,7 +7237,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4620 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7244,7 +7251,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4632 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7260,7 +7267,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4639 + // line internal/php7/php7.y:4646 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7274,7 +7281,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4658 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7288,7 +7295,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4670 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7302,7 +7309,7 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4675 + // line internal/php7/php7.y:4682 { yyVAL.node = yyDollar[1].node @@ -7310,7 +7317,7 @@ yydefault: } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4681 + // line internal/php7/php7.y:4688 { yyVAL.node = yyDollar[1].node @@ -7318,7 +7325,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4690 + // line internal/php7/php7.y:4697 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7332,7 +7339,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4702 + // line internal/php7/php7.y:4709 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7350,7 +7357,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4718 + // line internal/php7/php7.y:4725 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7368,7 +7375,7 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4737 + // line internal/php7/php7.y:4744 { yyVAL.node = yyDollar[1].node @@ -7376,7 +7383,7 @@ yydefault: } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4750 { yyVAL.node = yyDollar[1].node @@ -7384,7 +7391,7 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4752 + // line internal/php7/php7.y:4759 { yyVAL.node = nil @@ -7392,7 +7399,7 @@ yydefault: } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4758 + // line internal/php7/php7.y:4765 { yyVAL.node = yyDollar[1].node @@ -7400,7 +7407,7 @@ yydefault: } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4767 + // line internal/php7/php7.y:4774 { yyVAL.node = yyDollar[1].node @@ -7408,7 +7415,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4776 + // line internal/php7/php7.y:4783 { yyVAL.node = yyDollar[1].node @@ -7416,19 +7423,22 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4782 + // line internal/php7/php7.y:4789 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} + + // save position + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4792 + // line internal/php7/php7.y:4802 { yyVAL.node = yyDollar[1].node @@ -7436,7 +7446,7 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4801 + // line internal/php7/php7.y:4811 { yyVAL.node = yyDollar[1].node @@ -7444,19 +7454,22 @@ yydefault: } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4807 + // line internal/php7/php7.y:4817 { - yyVAL.node = yyDollar[2].node + yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} + + // save position + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4817 + // line internal/php7/php7.y:4830 { yyVAL.node = yyDollar[1].node @@ -7464,28 +7477,13 @@ yydefault: } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4826 + // line internal/php7/php7.y:4839 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4832 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4845 { @@ -7500,7 +7498,7 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 435: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4858 { @@ -7515,9 +7513,24 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } - case 436: + case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4871 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:4884 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7532,7 +7545,7 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4884 + // line internal/php7/php7.y:4897 { yyVAL.node = yyDollar[1].node @@ -7540,7 +7553,7 @@ yydefault: } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4893 + // line internal/php7/php7.y:4906 { yyVAL.node = yyDollar[1].node @@ -7548,7 +7561,7 @@ yydefault: } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4899 + // line internal/php7/php7.y:4912 { yyVAL.node = yyDollar[1].node @@ -7556,7 +7569,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4905 + // line internal/php7/php7.y:4918 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7571,7 +7584,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4921 + // line internal/php7/php7.y:4934 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7587,7 +7600,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4935 + // line internal/php7/php7.y:4948 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7603,7 +7616,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4949 + // line internal/php7/php7.y:4962 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7616,21 +7629,6 @@ yydefault: yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: - yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4964 - { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 445: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4977 { @@ -7643,32 +7641,32 @@ yydefault: yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 445: + yyDollar = yyS[yypt-3 : yypt+1] + // line internal/php7/php7.y:4990 + { + yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + + // save comments + yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4993 + // line internal/php7/php7.y:5006 { yyVAL.node = yyDollar[1].node yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4999 - { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) - } - case 448: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:5012 { @@ -7681,11 +7679,26 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + } + case 448: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:5025 + { + yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} + + // save position + yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5025 + // line internal/php7/php7.y:5038 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7700,7 +7713,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5038 + // line internal/php7/php7.y:5051 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7715,7 +7728,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5051 + // line internal/php7/php7.y:5064 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7730,7 +7743,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5067 + // line internal/php7/php7.y:5080 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7744,7 +7757,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5079 + // line internal/php7/php7.y:5092 { yyVAL.node = yyDollar[2].node @@ -7756,7 +7769,7 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5089 + // line internal/php7/php7.y:5102 { yyVAL.node = yyDollar[1].node @@ -7764,7 +7777,7 @@ yydefault: } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5098 + // line internal/php7/php7.y:5111 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7778,7 +7791,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5110 + // line internal/php7/php7.y:5123 { yyVAL.node = yyDollar[2].node @@ -7790,7 +7803,7 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5120 + // line internal/php7/php7.y:5133 { yyVAL.node = yyDollar[1].node @@ -7798,7 +7811,7 @@ yydefault: } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5129 + // line internal/php7/php7.y:5142 { yyVAL.list = yyDollar[1].list @@ -7806,7 +7819,7 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5138 + // line internal/php7/php7.y:5151 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} @@ -7814,7 +7827,7 @@ yydefault: } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5144 + // line internal/php7/php7.y:5157 { yyVAL.node = yyDollar[1].node @@ -7822,7 +7835,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5153 + // line internal/php7/php7.y:5166 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7837,7 +7850,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5166 + // line internal/php7/php7.y:5179 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7849,7 +7862,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5179 + // line internal/php7/php7.y:5192 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7864,7 +7877,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5192 + // line internal/php7/php7.y:5205 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7878,7 +7891,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5204 + // line internal/php7/php7.y:5217 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7896,7 +7909,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5220 + // line internal/php7/php7.y:5233 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7912,7 +7925,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5234 + // line internal/php7/php7.y:5247 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7926,7 +7939,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5246 + // line internal/php7/php7.y:5259 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7947,7 +7960,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5265 + // line internal/php7/php7.y:5278 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7966,7 +7979,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5285 + // line internal/php7/php7.y:5298 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -7974,7 +7987,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5291 + // line internal/php7/php7.y:5304 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7989,7 +8002,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5304 + // line internal/php7/php7.y:5317 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -7997,7 +8010,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5310 + // line internal/php7/php7.y:5323 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8012,7 +8025,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5326 + // line internal/php7/php7.y:5339 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8028,7 +8041,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5340 + // line internal/php7/php7.y:5353 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8047,7 +8060,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5357 + // line internal/php7/php7.y:5370 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8068,7 +8081,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5376 + // line internal/php7/php7.y:5389 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8085,7 +8098,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5391 + // line internal/php7/php7.y:5404 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8104,7 +8117,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5408 + // line internal/php7/php7.y:5421 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8125,7 +8138,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5427 + // line internal/php7/php7.y:5440 { yyVAL.node = yyDollar[2].node @@ -8137,7 +8150,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5440 + // line internal/php7/php7.y:5453 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8151,7 +8164,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5452 + // line internal/php7/php7.y:5465 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8170,7 +8183,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5469 + // line internal/php7/php7.y:5482 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8198,7 +8211,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5495 + // line internal/php7/php7.y:5508 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8214,7 +8227,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5512 + // line internal/php7/php7.y:5525 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8234,23 +8247,25 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5530 + // line internal/php7/php7.y:5543 { - yyVAL.node = &ast.ExprEmpty{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Empty, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5544 + // line internal/php7/php7.y:5559 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8264,7 +8279,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5556 + // line internal/php7/php7.y:5571 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8278,23 +8293,25 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5568 + // line internal/php7/php7.y:5583 { - yyVAL.node = &ast.ExprEval{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Eval, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5582 + // line internal/php7/php7.y:5599 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8308,7 +8325,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5594 + // line internal/php7/php7.y:5611 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8322,7 +8339,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5609 + // line internal/php7/php7.y:5626 { yyVAL.list = []ast.Vertex{yyDollar[1].node} @@ -8330,7 +8347,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5615 + // line internal/php7/php7.y:5632 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8341,7 +8358,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5627 + // line internal/php7/php7.y:5644 { yyVAL.node = yyDollar[1].node diff --git a/internal/php7/php7.y b/internal/php7/php7.y index e125503..d43148c 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -993,38 +993,42 @@ statement: } | T_WHILE '(' expr ')' while_statement { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + switch n := $5.(type) { case *ast.StmtWhile : - n.Cond = $3 + n.Cond = exprBrackets case *ast.StmtAltWhile : - n.Cond = $3 + n.Cond = exprBrackets } $$ = $5 // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.While, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DO statement T_WHILE '(' expr ')' ';' { - $$ = &ast.StmtDo{ast.Node{}, $2, $5} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $5} + $$ = &ast.StmtDo{ast.Node{}, $2, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($4, $6) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.While, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $7.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append($6.Tokens, $7.Tokens...)) yylex.(*Parser).setToken($$, token.SemiColon, $7.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) @@ -1058,11 +1062,13 @@ statement: } | T_SWITCH '(' expr ')' switch_case_list { + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + switch n := $5.(type) { case *ast.StmtSwitch: - n.Cond = $3 + n.Cond = exprBrackets case *ast.StmtAltSwitch: - n.Cond = $3 + n.Cond = exprBrackets default: panic("unexpected node type") } @@ -1070,12 +1076,13 @@ statement: $$ = $5 // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Switch, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -1977,33 +1984,37 @@ while_statement: if_stmt_without_else: T_IF '(' expr ')' statement { - $$ = &ast.StmtIf{ast.Node{}, $3, $5, nil, nil} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + $$ = &ast.StmtIf{ast.Node{}, exprBrackets, $5, nil, nil} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.If, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | if_stmt_without_else T_ELSEIF '(' expr ')' statement { - _elseIf := &ast.StmtElseIf{ast.Node{}, $4, $6} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $4} + _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, $6} $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, _elseIf) $$ = $1 // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($3, $5) _elseIf.GetNode().Position = position.NewTokenNodePosition($2, $6) $$.GetNode().Position = position.NewNodesPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.ElseIf, $3.Tokens) - yylex.(*Parser).setFreeFloating(_elseIf, token.Expr, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -3862,11 +3873,14 @@ expr_without_variable: } | '(' expr ')' { - $$ = $2; + $$ = &ast.ParserBrackets{ast.Node{}, $2} + + // save position + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4016,17 +4030,10 @@ expr_without_variable: } | T_EXIT exit_expr { - var e *ast.ExprExit; - if $2 != nil { - e = $2.(*ast.ExprExit) - } else { - e = &ast.ExprExit{ast.Node{}, false, nil} - } - - $$ = e + $$ = &ast.ExprExit{ast.Node{}, false, $2} if (bytes.EqualFold($1.Value, []byte("die"))) { - e.Die = true + $$.(*ast.ExprExit).Die = true } // save position @@ -4405,14 +4412,14 @@ exit_expr: } | '(' optional_expr ')' { - $$ = &ast.ExprExit{ast.Node{}, false, $2}; + $$ = &ast.ParserBrackets{ast.Node{}, $2} // save position $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Exit, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $3.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4780,11 +4787,14 @@ dereferencable: } | '(' expr ')' { - $$ = $2; + $$ = &ast.ParserBrackets{ast.Node{}, $2} + + // save position + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -4805,11 +4815,14 @@ callable_expr: } | '(' expr ')' { - $$ = $2; + $$ = &ast.ParserBrackets{ast.Node{}, $2} + + // save position + $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5528,15 +5541,17 @@ internal_functions_in_yacc: } | T_EMPTY '(' expr ')' { - $$ = &ast.ExprEmpty{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Empty, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } @@ -5566,15 +5581,17 @@ internal_functions_in_yacc: } | T_EVAL '(' expr ')' { - $$ = &ast.ExprEval{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + $$ = &ast.ExprEval{ast.Node{}, exprBrackets} // save position + exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Eval, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 49f450b..68364f5 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -11046,7 +11046,7 @@ func TestPhp7(t *testing.T) { StartLine: 187, EndLine: 187, StartPos: 3780, - EndPos: 3788, + EndPos: 3789, }, }, Expr: &ast.ExprVariable{ @@ -13123,7 +13123,7 @@ func TestPhp7(t *testing.T) { StartLine: 232, EndLine: 232, StartPos: 4298, - EndPos: 4306, + EndPos: 4307, }, }, Expr: &ast.ExprVariable{ @@ -18632,7 +18632,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 5518, + StartPos: 5517, EndPos: 5532, }, }, @@ -18641,7 +18641,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 332, EndLine: 332, - StartPos: 5518, + StartPos: 5517, EndPos: 5531, }, }, @@ -18696,7 +18696,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 5534, + StartPos: 5533, EndPos: 5545, }, }, @@ -18705,7 +18705,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 333, EndLine: 333, - StartPos: 5534, + StartPos: 5533, EndPos: 5544, }, }, diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index a7f5529..f1a5655 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -42,8 +42,12 @@ func (v *FilterParserNodes) StmtUseDeclaration(n *ast.StmtUseDeclaration) { } func (v *FilterParserNodes) StmtAltIf(n *ast.StmtAltIf) { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } } if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { @@ -52,8 +56,12 @@ func (v *FilterParserNodes) StmtAltIf(n *ast.StmtAltIf) { } func (v *FilterParserNodes) StmtAltElseIf(n *ast.StmtAltElseIf) { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } } if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { @@ -66,3 +74,1194 @@ func (v *FilterParserNodes) StmtAltElse(n *ast.StmtAltElse) { n.Stmt = nn.Child } } + +func (v *FilterParserNodes) StmtIf(n *ast.StmtIf) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtElseIf(n *ast.StmtElseIf) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtWhile(n *ast.StmtWhile) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtAltWhile(n *ast.StmtAltWhile) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtDo(n *ast.StmtDo) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtSwitch(n *ast.StmtSwitch) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtAltSwitch(n *ast.StmtAltSwitch) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprExit(n *ast.ExprExit) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtContinue(n *ast.StmtContinue) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtBreak(n *ast.StmtBreak) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprClone(n *ast.ExprClone) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprPrint(n *ast.ExprPrint) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtExpression(n *ast.StmtExpression) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtEcho(n *ast.StmtEcho) { + for k, v := range n.Exprs { + for { + if nn, ok := v.(*ast.ParserBrackets); ok { + v = nn.Child + } else { + break + } + } + + n.Exprs[k] = v + } +} + +func (v *FilterParserNodes) ExprIsset(n *ast.ExprIsset) { + for k, v := range n.Vars { + for { + if nn, ok := v.(*ast.ParserBrackets); ok { + v = nn.Child + } else { + break + } + } + + n.Vars[k] = v + } +} + +func (v *FilterParserNodes) StmtReturn(n *ast.StmtReturn) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtForeach(n *ast.StmtForeach) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtAltForeach(n *ast.StmtAltForeach) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprYield(n *ast.ExprYield) { + for { + if nn, ok := n.Key.(*ast.ParserBrackets); ok { + n.Key = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Value.(*ast.ParserBrackets); ok { + n.Value = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) Argument(n *ast.Argument) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtThrow(n *ast.StmtThrow) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtCase(n *ast.StmtCase) { + for { + if nn, ok := n.Cond.(*ast.ParserBrackets); ok { + n.Cond = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprVariable(n *ast.ExprVariable) { + for { + if nn, ok := n.VarName.(*ast.ParserBrackets); ok { + n.VarName = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) StmtFor(n *ast.StmtFor) { + for k, v := range n.Init { + for { + if nn, ok := v.(*ast.ParserBrackets); ok { + v = nn.Child + } else { + break + } + } + + n.Init[k] = v + } + + for k, v := range n.Cond { + for { + if nn, ok := v.(*ast.ParserBrackets); ok { + v = nn.Child + } else { + break + } + } + + n.Cond[k] = v + } + + for k, v := range n.Loop { + for { + if nn, ok := v.(*ast.ParserBrackets); ok { + v = nn.Child + } else { + break + } + } + + n.Loop[k] = v + } +} + +func (v *FilterParserNodes) ExprAssign(n *ast.ExprAssign) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignConcat(n *ast.ExprAssignConcat) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignDiv(n *ast.ExprAssignDiv) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignMinus(n *ast.ExprAssignMinus) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignMod(n *ast.ExprAssignMod) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignMul(n *ast.ExprAssignMul) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignPlus(n *ast.ExprAssignPlus) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignPow(n *ast.ExprAssignPow) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} +func (v *FilterParserNodes) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryConcat(n *ast.ExprBinaryConcat) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryDiv(n *ast.ExprBinaryDiv) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryEqual(n *ast.ExprBinaryEqual) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryGreater(n *ast.ExprBinaryGreater) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryMinus(n *ast.ExprBinaryMinus) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryMod(n *ast.ExprBinaryMod) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryMul(n *ast.ExprBinaryMul) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryPlus(n *ast.ExprBinaryPlus) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryPow(n *ast.ExprBinaryPow) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinarySmaller(n *ast.ExprBinarySmaller) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { + for { + if nn, ok := n.Left.(*ast.ParserBrackets); ok { + n.Left = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Right.(*ast.ParserBrackets); ok { + n.Right = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprUnaryMinus(n *ast.ExprUnaryMinus) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprUnaryPlus(n *ast.ExprUnaryPlus) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBooleanNot(n *ast.ExprBooleanNot) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprBitwiseNot(n *ast.ExprBitwiseNot) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprInstanceOf(n *ast.ExprInstanceOf) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprTernary(n *ast.ExprTernary) { + for { + if nn, ok := n.Condition.(*ast.ParserBrackets); ok { + n.Condition = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.IfTrue.(*ast.ParserBrackets); ok { + n.IfTrue = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.IfFalse.(*ast.ParserBrackets); ok { + n.IfFalse = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprCastArray(n *ast.ExprCastArray) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprCastBool(n *ast.ExprCastBool) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprCastDouble(n *ast.ExprCastDouble) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprCastInt(n *ast.ExprCastInt) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprCastObject(n *ast.ExprCastObject) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprCastString(n *ast.ExprCastString) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprCastUnset(n *ast.ExprCastUnset) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprErrorSuppress(n *ast.ExprErrorSuppress) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { + for { + if nn, ok := n.Dim.(*ast.ParserBrackets); ok { + n.Dim = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprArrayItem(n *ast.ExprArrayItem) { + for { + if nn, ok := n.Key.(*ast.ParserBrackets); ok { + n.Key = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Val.(*ast.ParserBrackets); ok { + n.Val = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprEmpty(n *ast.ExprEmpty) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprInclude(n *ast.ExprInclude) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprIncludeOnce(n *ast.ExprIncludeOnce) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprEval(n *ast.ExprEval) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprRequire(n *ast.ExprRequire) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprRequireOnce(n *ast.ExprRequireOnce) { + for { + if nn, ok := n.Expr.(*ast.ParserBrackets); ok { + n.Expr = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprPropertyFetch(n *ast.ExprPropertyFetch) { + for { + if nn, ok := n.Var.(*ast.ParserBrackets); ok { + n.Var = nn.Child + } else { + break + } + } + + for { + if nn, ok := n.Property.(*ast.ParserBrackets); ok { + n.Property = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprFunctionCall(n *ast.ExprFunctionCall) { + for { + if nn, ok := n.Function.(*ast.ParserBrackets); ok { + n.Function = nn.Child + } else { + break + } + } +} + +func (v *FilterParserNodes) ExprStaticCall(n *ast.ExprStaticCall) { + for { + if nn, ok := n.Call.(*ast.ParserBrackets); ok { + n.Call = nn.Child + } else { + break + } + } +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 64a32c9..3951b6f 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1530,11 +1530,16 @@ func (p *Printer) printExprEmpty(n ast.Vertex) { nn := n.(*ast.ExprEmpty) p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "empty") - p.printFreeFloating(nn, token.Empty) - io.WriteString(p.w, "(") + + if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } p.printFreeFloating(nn, token.End) } @@ -1551,12 +1556,18 @@ func (p *Printer) printExprErrorSuppress(n ast.Vertex) { func (p *Printer) printExprEval(n ast.Vertex) { nn := n.(*ast.ExprEval) p.printFreeFloating(nn, token.Start) + io.WriteString(p.w, "eval") - p.printFreeFloating(nn, token.Eval) - io.WriteString(p.w, "(") + + if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } p.printFreeFloating(nn, token.End) } @@ -1570,7 +1581,6 @@ func (p *Printer) printExprExit(n ast.Vertex) { } else { io.WriteString(p.w, "exit") } - p.printFreeFloating(nn, token.Exit) if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() && nn.GetNode().Tokens.IsEmpty() { io.WriteString(p.w, " ") @@ -2163,11 +2173,17 @@ func (p *Printer) printStmtAltSwitch(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "switch") - p.printFreeFloating(nn, token.Switch) - io.WriteString(p.w, "(") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } + p.printFreeFloating(nn, token.Cond) io.WriteString(p.w, ":") @@ -2192,11 +2208,17 @@ func (p *Printer) printStmtAltWhile(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "while") - p.printFreeFloating(nn, token.While) - io.WriteString(p.w, "(") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } + p.printFreeFloating(nn, token.Cond) io.WriteString(p.w, ":") @@ -2543,11 +2565,17 @@ func (p *Printer) printStmtDo(n ast.Vertex) { p.printFreeFloating(nn, token.Stmts) io.WriteString(p.w, "while") - p.printFreeFloating(nn, token.While) - io.WriteString(p.w, "(") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } + p.printFreeFloating(nn, token.Cond) p.printFreeFloating(nn, token.SemiColon) @@ -2587,11 +2615,16 @@ func (p *Printer) printStmtElseif(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "elseif") - p.printFreeFloating(nn, token.ElseIf) - io.WriteString(p.w, "(") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } p.Print(nn.Stmt) @@ -2794,11 +2827,16 @@ func (p *Printer) printStmtIf(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "if") - p.printFreeFloating(n, token.If) - io.WriteString(p.w, "(") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Cond) - p.printFreeFloating(n, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } p.Print(nn.Stmt) @@ -3020,11 +3058,16 @@ func (p *Printer) printStmtSwitch(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "switch") - p.printFreeFloating(nn, token.Switch) - io.WriteString(p.w, "(") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } p.printFreeFloating(nn.CaseList, token.Start) io.WriteString(p.w, "{") @@ -3292,11 +3335,16 @@ func (p *Printer) printStmtWhile(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "while") - p.printFreeFloating(nn, token.While) - io.WriteString(p.w, "(") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, "(") + } + p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ")") + + if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { + io.WriteString(p.w, ")") + } p.Print(nn.Stmt) diff --git a/pkg/token/position.go b/pkg/token/position.go index 329f8aa..2ea40d4 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -27,28 +27,19 @@ const ( Namespace Static - Class Use - While For - Switch Foreach Declare Label Finally List Default - If - ElseIf - Else Function Alias Equal - Exit Array Isset - Empty - Eval Echo Try Catch @@ -68,7 +59,6 @@ const ( AdaptationList LexicalVarList - OpenParenthesisToken CloseParenthesisToken ) diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go index 389ec94..ac7c7b5 100644 --- a/pkg/token/position_string.go +++ b/pkg/token/position_string.go @@ -30,52 +30,42 @@ func _() { _ = x[Cond-19] _ = x[Namespace-20] _ = x[Static-21] - _ = x[Class-22] - _ = x[Use-23] - _ = x[While-24] - _ = x[For-25] - _ = x[Switch-26] - _ = x[Foreach-27] - _ = x[Declare-28] - _ = x[Label-29] - _ = x[Finally-30] - _ = x[List-31] - _ = x[Default-32] - _ = x[If-33] - _ = x[ElseIf-34] - _ = x[Else-35] - _ = x[Function-36] - _ = x[Alias-37] - _ = x[Equal-38] - _ = x[Exit-39] - _ = x[Array-40] - _ = x[Isset-41] - _ = x[Empty-42] - _ = x[Eval-43] - _ = x[Echo-44] - _ = x[Try-45] - _ = x[Catch-46] - _ = x[Unset-47] - _ = x[Stmts-48] - _ = x[VarList-49] - _ = x[ConstList-50] - _ = x[NameList-51] - _ = x[ParamList-52] - _ = x[ModifierList-53] - _ = x[ArrayPairList-54] - _ = x[CaseListStart-55] - _ = x[CaseListEnd-56] - _ = x[PropertyList-57] - _ = x[ParameterList-58] - _ = x[AdaptationList-59] - _ = x[LexicalVarList-60] - _ = x[OpenParenthesisToken-61] - _ = x[CloseParenthesisToken-62] + _ = x[Use-22] + _ = x[For-23] + _ = x[Foreach-24] + _ = x[Declare-25] + _ = x[Label-26] + _ = x[Finally-27] + _ = x[List-28] + _ = x[Default-29] + _ = x[Function-30] + _ = x[Alias-31] + _ = x[Equal-32] + _ = x[Array-33] + _ = x[Isset-34] + _ = x[Echo-35] + _ = x[Try-36] + _ = x[Catch-37] + _ = x[Unset-38] + _ = x[Stmts-39] + _ = x[VarList-40] + _ = x[ConstList-41] + _ = x[NameList-42] + _ = x[ParamList-43] + _ = x[ModifierList-44] + _ = x[ArrayPairList-45] + _ = x[CaseListStart-46] + _ = x[CaseListEnd-47] + _ = x[PropertyList-48] + _ = x[ParameterList-49] + _ = x[AdaptationList-50] + _ = x[LexicalVarList-51] + _ = x[CloseParenthesisToken-52] } -const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticClassUseWhileForSwitchForeachDeclareLabelFinallyListDefaultIfElseIfElseFunctionAliasEqualExitArrayIssetEmptyEvalEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndPropertyListParameterListAdaptationListLexicalVarListOpenParenthesisTokenCloseParenthesisToken" +const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticUseForForeachDeclareLabelFinallyListDefaultFunctionAliasEqualArrayIssetEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndPropertyListParameterListAdaptationListLexicalVarListCloseParenthesisToken" -var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 144, 147, 152, 155, 161, 168, 175, 180, 187, 191, 198, 200, 206, 210, 218, 223, 228, 232, 237, 242, 247, 251, 255, 258, 263, 268, 273, 280, 289, 297, 306, 318, 331, 344, 355, 367, 380, 394, 408, 428, 449} +var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 142, 145, 152, 159, 164, 171, 175, 182, 190, 195, 200, 205, 210, 214, 217, 222, 227, 232, 239, 248, 256, 265, 277, 290, 303, 314, 326, 339, 353, 367, 388} func (i Position) String() string { if i < 0 || i >= Position(len(_Position_index)-1) { From 97747c5ac093dbc525b19a183b827d53c5e694fe Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 17 Aug 2020 20:31:04 +0300 Subject: [PATCH 045/140] [refactoring] remove scanner token --- internal/php5/parser.go | 31 +- internal/php5/parser_test.go | 774 ++++-- internal/php5/php5.go | 3351 ++++++++--------------- internal/php5/php5.y | 2314 +++++----------- internal/php5/php5_bench_test.go | 2 +- internal/php5/php5_test.go | 11 +- internal/php7/parser.go | 31 +- internal/php7/parser_test.go | 846 ++++-- internal/php7/php7.go | 2890 +++++++------------ internal/php7/php7.y | 1909 ++++--------- internal/php7/php7_bench_test.go | 2 +- internal/php7/php7_test.go | 11 +- internal/position/position.go | 16 +- internal/position/position_test.go | 54 +- internal/scanner/lexer.go | 56 +- internal/scanner/lexer_tokens.go | 145 - internal/scanner/scanner.go | 1984 +++++++------- internal/scanner/scanner.rl | 402 +-- internal/scanner/scanner_test.go | 1062 +++---- internal/scanner/token.go | 14 - internal/scanner/token_pool.go | 22 - internal/scanner/token_pool_test.go | 34 - internal/scanner/tokenid_string.go | 161 -- pkg/ast/node.go | 4 + pkg/ast/visitor/dump.go | 2 +- pkg/ast/visitor/dump_test.go | 4 +- pkg/ast/visitor/filter_tokens.go | 14 + pkg/parser/parser.go | 2 +- pkg/position/pool.go | 29 + pkg/printer/printer_parsed_php5_test.go | 2 +- pkg/printer/printer_parsed_php7_test.go | 4 +- pkg/printer/printer_test.go | 4 +- pkg/token/pool.go | 29 + pkg/token/pool_bench_test.go | 173 ++ pkg/token/position.go | 2 +- pkg/token/token.go | 13 +- 36 files changed, 6591 insertions(+), 9813 deletions(-) delete mode 100644 internal/scanner/lexer_tokens.go delete mode 100644 internal/scanner/token.go delete mode 100644 internal/scanner/token_pool.go delete mode 100644 internal/scanner/token_pool_test.go delete mode 100644 internal/scanner/tokenid_string.go create mode 100644 pkg/ast/visitor/filter_tokens.go create mode 100644 pkg/position/pool.go create mode 100644 pkg/token/pool.go create mode 100644 pkg/token/pool_bench_test.go diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 1fe5085..5b06343 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -12,7 +12,7 @@ import ( // Parser structure type Parser struct { Lexer *scanner.Lexer - currentToken *scanner.Token + currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) } @@ -40,8 +40,7 @@ func (p *Parser) Error(msg string) { return } - var pos = p.currentToken.Position - p.errHandlerFunc(errors.NewError(msg, &pos)) + p.errHandlerFunc(errors.NewError(msg, p.currentToken.Position)) } // Parse the php7 Parser entrypoint @@ -82,7 +81,7 @@ func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { delete(src.GetNode().Tokens, token.Start) } -func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []token.Token) { +func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []*token.Token) { if len(tokens) == 0 { return } @@ -98,7 +97,7 @@ func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []to } } -func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []token.Token) { +func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []*token.Token) { if len(tokens) == 0 { return } @@ -108,14 +107,14 @@ func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, token *dstCollection = make(token.Collection) } - (*dstCollection)[pos] = make([]token.Token, 0) + (*dstCollection)[pos] = make([]*token.Token, 0) for _, v := range tokens { (*dstCollection)[pos] = append((*dstCollection)[pos], v) } } -func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []token.Token) { +func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []*token.Token) { if len(tokens) == 0 { return } @@ -141,7 +140,7 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } if semiColon[0].Value[0] == ';' { - p.setFreeFloatingTokens(prevNode, token.SemiColon, []token.Token{ + p.setFreeFloatingTokens(prevNode, token.SemiColon, []*token.Token{ { ID: token.ID(';'), Value: semiColon[0].Value[0:1], @@ -155,28 +154,18 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. tlen = 3 } - phpCloseTag := []token.Token{} + phpCloseTag := []*token.Token{} if vlen-tlen > 1 { - phpCloseTag = append(phpCloseTag, token.Token{ + phpCloseTag = append(phpCloseTag, &token.Token{ ID: token.T_WHITESPACE, Value: semiColon[0].Value[1 : vlen-tlen], }) } - phpCloseTag = append(phpCloseTag, token.Token{ + phpCloseTag = append(phpCloseTag, &token.Token{ ID: T_CLOSE_TAG, Value: semiColon[0].Value[vlen-tlen:], }) p.setFreeFloatingTokens(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) } - -func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { - for i := 1; i < len(yyDollar); i++ { - if yyDollar[i].token != nil { - p.Lexer.ReturnTokenToPool(yyDollar[i].token) - } - yyDollar[i].token = nil - } - yyVAL.token = nil -} diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index a33aa36..bc6d43c 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -60,11 +60,12 @@ func TestIdentifier(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -844,11 +845,12 @@ func TestPhp5ArgumentNode(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1658,11 +1660,12 @@ func TestPhp5ParameterNode(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1681,11 +1684,12 @@ func TestCommentEndFile(t *testing.T) { Stmts: []ast.Vertex{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1760,11 +1764,12 @@ func TestName(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1837,11 +1842,12 @@ func TestFullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1914,11 +1920,12 @@ func TestRelative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1994,11 +2001,12 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2072,11 +2080,12 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2161,11 +2170,12 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2260,11 +2270,12 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2370,11 +2381,12 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2448,11 +2460,12 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2547,11 +2560,12 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2656,11 +2670,12 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2749,11 +2764,12 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2842,11 +2858,12 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2903,11 +2920,12 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2950,11 +2968,12 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3011,11 +3030,12 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3057,11 +3077,12 @@ func TestScalarMagicConstant(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3102,11 +3123,12 @@ func TestScalarNumber_LNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3147,11 +3169,12 @@ func TestScalarNumber_DNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3192,11 +3215,12 @@ func TestScalarNumber_Float(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3237,11 +3261,12 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3282,11 +3307,12 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3327,11 +3353,12 @@ func TestScalarNumber_HLNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3372,11 +3399,12 @@ func TestScalarNumber_HDNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3417,11 +3445,12 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3462,11 +3491,12 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3509,11 +3539,12 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3554,11 +3585,12 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3601,11 +3633,12 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3672,11 +3705,12 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3786,11 +3820,12 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3877,11 +3912,12 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4056,11 +4092,12 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4179,11 +4216,12 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4259,11 +4297,12 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4409,11 +4448,12 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4513,11 +4553,12 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4629,11 +4670,12 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4675,11 +4717,12 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4734,11 +4777,12 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4826,11 +4870,12 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4920,11 +4965,12 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5037,11 +5083,12 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5137,11 +5184,12 @@ func TestStmtConstList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5204,11 +5252,12 @@ func TestStmtContinue_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5282,11 +5331,12 @@ func TestStmtContinue_Light(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5360,11 +5410,12 @@ func TestStmtContinue(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5438,11 +5489,12 @@ func TestStmtDeclare(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5549,11 +5601,12 @@ func TestStmtDeclare_Stmts(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5629,11 +5682,12 @@ func TestStmtDeclare_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5685,11 +5739,12 @@ func TestStmtDo(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5753,11 +5808,12 @@ func TestStmtEcho(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5810,11 +5866,12 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5855,11 +5912,12 @@ func TestStmtExpression(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6052,11 +6110,12 @@ func TestStmtFor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6174,11 +6233,12 @@ func TestStmtFor_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6261,11 +6321,12 @@ func TestStmtForeach(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6338,11 +6399,12 @@ func TestStmtForeach_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6425,11 +6487,12 @@ func TestStmtForeach_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6533,11 +6596,12 @@ func TestStmtForeach_WithKey(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6631,11 +6695,12 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6749,11 +6814,12 @@ func TestStmtForeach_WithRef(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6879,11 +6945,12 @@ func TestStmtForeach_WithList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6926,11 +6993,12 @@ func TestStmtFunction(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6984,11 +7052,12 @@ func TestStmtFunction_Return(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7149,11 +7218,12 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7218,11 +7288,12 @@ func TestStmtFunction_Ref(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7275,11 +7346,12 @@ func TestStmtGlobal(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7437,11 +7509,12 @@ func TestStmtGlobal_Vars(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7503,11 +7576,12 @@ func TestStmtGotoLabel(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7537,11 +7611,12 @@ func TestStmtHaltCompiler(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7603,11 +7678,12 @@ func TestStmtIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7713,11 +7789,12 @@ func TestStmtIf_ElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7800,11 +7877,12 @@ func TestStmtIf_Else(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7973,11 +8051,12 @@ func TestStmtIf_ElseElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8156,11 +8235,12 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8201,11 +8281,12 @@ func TestStmtInlineHtml(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8247,11 +8328,12 @@ func TestStmtInterface(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8328,11 +8410,12 @@ func TestStmtInterface_Extend(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8432,11 +8515,12 @@ func TestStmtInterface_Extends(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8489,11 +8573,12 @@ func TestStmtNamespace(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8547,11 +8632,12 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8582,11 +8668,12 @@ func TestStmtNamespace_Anonymous(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8685,11 +8772,12 @@ func TestStmtProperty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8841,11 +8929,12 @@ func TestStmtProperty_Properties(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8997,11 +9086,12 @@ func TestStmtProperty_Properties2(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9064,11 +9154,12 @@ func TestStmtStaticVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9173,11 +9264,12 @@ func TestStmtStaticVar_Vars(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9282,11 +9374,12 @@ func TestStmtStaticVar_Vars2(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9410,11 +9503,12 @@ func TestStmtSwitch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9538,11 +9632,12 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9656,11 +9751,12 @@ func TestStmtSwitch_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9762,11 +9858,12 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9817,11 +9914,12 @@ func TestStmtThrow(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9863,11 +9961,12 @@ func TestStmtTrait(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9955,11 +10054,12 @@ func TestStmtTraitUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10070,11 +10170,12 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10185,11 +10286,12 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10344,11 +10446,12 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10514,11 +10617,12 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10798,11 +10902,12 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10836,11 +10941,12 @@ func TestStmtTry_Try(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10932,11 +11038,12 @@ func TestStmtTry_TryCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11085,11 +11192,12 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11192,11 +11300,12 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11400,11 +11509,12 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11457,11 +11567,12 @@ func TestStmtUnset(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11535,11 +11646,12 @@ func TestStmtUnset_Vars(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11614,11 +11726,12 @@ func TestStmtUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11693,11 +11806,12 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11783,11 +11897,12 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11895,11 +12010,12 @@ func TestStmtUse_List(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12018,11 +12134,12 @@ func TestStmtUse_ListAlias(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12151,11 +12268,12 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12306,11 +12424,12 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12440,11 +12559,12 @@ func TestStmtUse_ListConstType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12595,11 +12715,12 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12662,11 +12783,12 @@ func TestStmtBreak_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12740,11 +12862,12 @@ func TestStmtBreak_Light(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12818,11 +12941,12 @@ func TestStmtBreak(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12896,11 +13020,12 @@ func TestExprArrayDimFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12993,11 +13118,12 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13038,11 +13164,12 @@ func TestExprArray(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13105,11 +13232,12 @@ func TestExprArray_Item(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13225,11 +13353,12 @@ func TestExprArray_Items(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13290,11 +13419,12 @@ func TestExprBitwiseNot(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13355,11 +13485,12 @@ func TestExprBooleanNot(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13433,11 +13564,12 @@ func TestExprClassConstFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13499,11 +13631,12 @@ func TestExprClassConstFetch_Static(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13564,11 +13697,12 @@ func TestExprClone_Brackets(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13629,11 +13763,12 @@ func TestExprClone(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13676,11 +13811,12 @@ func TestExprClosure(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13851,11 +13987,12 @@ func TestExprClosure_Use(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14026,11 +14163,12 @@ func TestExprClosure_Use2(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14093,11 +14231,12 @@ func TestExprConstFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14160,11 +14299,12 @@ func TestExprConstFetch_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14227,11 +14367,12 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14292,11 +14433,12 @@ func TestExprEmpty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14357,11 +14499,12 @@ func TestExprErrorSuppress(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14422,11 +14565,12 @@ func TestExprEval(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14467,11 +14611,12 @@ func TestExprExit(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14512,11 +14657,12 @@ func TestExprExit_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14578,11 +14724,12 @@ func TestExprExit_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14623,11 +14770,12 @@ func TestExprDie(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14668,11 +14816,12 @@ func TestExprDie_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14734,11 +14883,12 @@ func TestExprDie_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14811,11 +14961,12 @@ func TestExprFunctionCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14888,11 +15039,12 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14990,11 +15142,12 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15110,11 +15263,12 @@ func TestExprFunctionCall_Var(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15243,11 +15397,12 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15308,11 +15463,12 @@ func TestExprPostDec(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15373,11 +15529,12 @@ func TestExprPostInc(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15438,11 +15595,12 @@ func TestExprPreDec(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15503,11 +15661,12 @@ func TestExprPreInc(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15568,11 +15727,12 @@ func TestExprInclude(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15633,11 +15793,12 @@ func TestExprInclude_Once(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15698,11 +15859,12 @@ func TestExprRequire(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15763,11 +15925,12 @@ func TestExprRequire_Once(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15851,11 +16014,12 @@ func TestExprInstanceOf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15939,11 +16103,12 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16027,11 +16192,12 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16094,11 +16260,12 @@ func TestExprIsset(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16182,11 +16349,12 @@ func TestExprIsset_Variables(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16258,11 +16426,12 @@ func TestExprList_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16366,11 +16535,12 @@ func TestExprList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16484,11 +16654,12 @@ func TestExprList_ArrayIndex(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16614,11 +16785,12 @@ func TestExprList_List(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16723,11 +16895,12 @@ func TestExprList_EmptyItem(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16834,11 +17007,12 @@ func TestExprList_EmptyItems(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16920,11 +17094,12 @@ func TestExprMethodCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16987,11 +17162,12 @@ func TestExprNew(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17064,11 +17240,12 @@ func TestExprNew_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17141,11 +17318,12 @@ func TestExprNew_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17206,11 +17384,12 @@ func TestExprPrint(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17282,11 +17461,12 @@ func TestExprPropertyFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17401,11 +17581,12 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17479,11 +17660,12 @@ func TestExprShellExec(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17524,11 +17706,12 @@ func TestExprShortArray(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17591,11 +17774,12 @@ func TestExprShortArray_Item(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17711,11 +17895,12 @@ func TestExprShortArray_Items(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17799,11 +17984,12 @@ func TestExprStaticCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17887,11 +18073,12 @@ func TestExprStaticCall_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17975,11 +18162,12 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18073,11 +18261,12 @@ func TestExprStaticCall_Var(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18169,11 +18358,12 @@ func TestExprStaticCall_VarVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18257,11 +18447,12 @@ func TestExprStaticPropertyFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18345,11 +18536,12 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18433,11 +18625,12 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18540,11 +18733,12 @@ func TestExprTernary(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18626,11 +18820,12 @@ func TestExprTernary_Simple(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18785,11 +18980,12 @@ func TestExprTernary_NestedTrue(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18944,11 +19140,12 @@ func TestExprTernary_NestedCond(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19009,11 +19206,12 @@ func TestExprUnaryMinus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19074,11 +19272,12 @@ func TestExprUnaryPlus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19129,11 +19328,12 @@ func TestExprVariable(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19194,11 +19394,12 @@ func TestExprVariable_Variable(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19238,11 +19439,12 @@ func TestExprYield(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19303,11 +19505,12 @@ func TestExprYield_Val(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19389,11 +19592,12 @@ func TestExprYield_KeyVal(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19444,11 +19648,12 @@ func TestExprYield_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19520,11 +19725,12 @@ func TestExprYield_KeyExpr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19608,11 +19814,12 @@ func TestExprAssign_Assign(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19694,11 +19901,12 @@ func TestExprAssign_Reference(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19792,11 +20000,12 @@ func TestExprAssign_ReferenceNew(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19935,11 +20144,12 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20021,11 +20231,12 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20107,11 +20318,12 @@ func TestExprAssign_BitwiseOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20193,11 +20405,12 @@ func TestExprAssign_BitwiseXor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20279,11 +20492,12 @@ func TestExprAssign_Concat(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20365,11 +20579,12 @@ func TestExprAssign_Div(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20451,11 +20666,12 @@ func TestExprAssign_Minus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20537,11 +20753,12 @@ func TestExprAssign_Mod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20623,11 +20840,12 @@ func TestExprAssign_Mul(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20709,11 +20927,12 @@ func TestExprAssign_Plus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20795,11 +21014,12 @@ func TestExprAssign_Pow(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20881,11 +21101,12 @@ func TestExprAssign_ShiftLeft(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20967,11 +21188,12 @@ func TestExprAssign_ShiftRight(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21055,11 +21277,12 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21141,11 +21364,12 @@ func TestExprBinary_BitwiseOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21227,11 +21451,12 @@ func TestExprBinary_BitwiseXor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21313,11 +21538,12 @@ func TestExprBinary_BooleanAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21399,11 +21625,12 @@ func TestExprBinary_BooleanOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21485,11 +21712,12 @@ func TestExprBinary_Concat(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21571,11 +21799,12 @@ func TestExprBinary_Div(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21657,11 +21886,12 @@ func TestExprBinary_Equal(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21743,11 +21973,12 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21829,11 +22060,12 @@ func TestExprBinary_Greater(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21915,11 +22147,12 @@ func TestExprBinary_Identical(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22001,11 +22234,12 @@ func TestExprBinary_LogicalAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22087,11 +22321,12 @@ func TestExprBinary_LogicalOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22173,11 +22408,12 @@ func TestExprBinary_LogicalXor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22259,11 +22495,12 @@ func TestExprBinary_Minus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22345,11 +22582,12 @@ func TestExprBinary_Mod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22431,11 +22669,12 @@ func TestExprBinary_Mul(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22517,11 +22756,12 @@ func TestExprBinary_NotEqual(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22603,11 +22843,12 @@ func TestExprBinary_NotIdentical(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22689,11 +22930,12 @@ func TestExprBinary_Plus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22775,11 +23017,12 @@ func TestExprBinary_Pow(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22861,11 +23104,12 @@ func TestExprBinary_ShiftLeft(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22947,11 +23191,12 @@ func TestExprBinary_ShiftRight(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23033,11 +23278,12 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23119,11 +23365,12 @@ func TestExprBinary_Smaller(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23186,11 +23433,12 @@ func TestExprCast_Array(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23251,11 +23499,12 @@ func TestExprCast_Bool(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23316,11 +23565,12 @@ func TestExprCast_BoolShort(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23381,11 +23631,12 @@ func TestExprCast_Double(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23446,11 +23697,12 @@ func TestExprCast_CastFloat(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23511,11 +23763,12 @@ func TestExprCast_Int(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23576,11 +23829,12 @@ func TestExprCast_IntShort(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23641,11 +23895,12 @@ func TestExprCast_Object(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23706,11 +23961,12 @@ func TestExprCast_String(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23771,11 +24027,12 @@ func TestExprCast_BinaryString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23836,10 +24093,11 @@ func TestExprCast_Unset(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 1134714..f05d452 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -12,16 +12,15 @@ import ( "strconv" "github.com/z7zmey/php-parser/internal/position" - "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php5/php5.y:16 +// line internal/php5/php5.y:15 type yySymType struct { yys int node ast.Vertex - token *scanner.Token + token *token.Token list []ast.Vertex simpleIndirectReference simpleIndirectReference @@ -347,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:7081 +// line internal/php5/php5.y:6059 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2316,18 +2315,16 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:277 +// line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:289 +// line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2337,20 +2334,16 @@ yydefault: if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:302 +// line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:311 +// line internal/php5/php5.y:303 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2359,13 +2352,11 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.SkippedTokens) } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:324 +// line internal/php5/php5.y:314 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2374,47 +2365,37 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.SkippedTokens) } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:341 +// line internal/php5/php5.y:329 { // error yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:348 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:354 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:360 +// line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:366 +// line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2422,14 +2403,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:379 +// line internal/php5/php5.y:357 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2439,15 +2418,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:395 +// line internal/php5/php5.y:371 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2457,15 +2434,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.SkippedTokens) } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:411 +// line internal/php5/php5.y:385 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2473,15 +2448,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:425 +// line internal/php5/php5.y:397 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, useList} @@ -2491,14 +2464,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:440 +// line internal/php5/php5.y:410 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} @@ -2512,15 +2483,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:460 +// line internal/php5/php5.y:428 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} @@ -2534,15 +2503,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:480 +// line internal/php5/php5.y:446 { yyVAL.node = yyDollar[1].node @@ -2550,33 +2517,27 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:496 +// line internal/php5/php5.y:460 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:505 +// line internal/php5/php5.y:467 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:514 +// line internal/php5/php5.y:474 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2584,12 +2545,10 @@ yydefault: // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:525 +// line internal/php5/php5.y:483 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2603,14 +2562,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:544 +// line internal/php5/php5.y:500 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2622,13 +2579,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:560 +// line internal/php5/php5.y:514 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2644,34 +2599,28 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:585 +// line internal/php5/php5.y:537 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:594 +// line internal/php5/php5.y:544 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:603 +// line internal/php5/php5.y:551 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2679,12 +2628,10 @@ yydefault: // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:614 +// line internal/php5/php5.y:560 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2698,14 +2645,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:633 +// line internal/php5/php5.y:577 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2717,13 +2662,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:649 +// line internal/php5/php5.y:591 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2739,34 +2682,28 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:674 +// line internal/php5/php5.y:614 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:683 +// line internal/php5/php5.y:621 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:692 +// line internal/php5/php5.y:628 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2774,12 +2711,10 @@ yydefault: // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:703 +// line internal/php5/php5.y:637 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -2793,14 +2728,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:722 +// line internal/php5/php5.y:654 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -2812,13 +2745,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:738 +// line internal/php5/php5.y:668 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} @@ -2834,15 +2765,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:763 +// line internal/php5/php5.y:691 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2857,15 +2786,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.SkippedTokens) } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:784 +// line internal/php5/php5.y:710 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2878,15 +2805,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, constList) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.SkippedTokens) } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:806 +// line internal/php5/php5.y:730 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2896,53 +2821,41 @@ yydefault: if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:819 +// line internal/php5/php5.y:741 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:829 +// line internal/php5/php5.y:749 { // error yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:836 +// line internal/php5/php5.y:754 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:842 +// line internal/php5/php5.y:758 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:848 +// line internal/php5/php5.y:762 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:854 +// line internal/php5/php5.y:766 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2950,22 +2863,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:871 +// line internal/php5/php5.y:781 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:877 +// line internal/php5/php5.y:785 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2975,14 +2884,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.SkippedTokens) } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:895 +// line internal/php5/php5.y:801 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2990,14 +2897,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:908 +// line internal/php5/php5.y:812 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -3011,13 +2916,11 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:926 +// line internal/php5/php5.y:828 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -3029,22 +2932,20 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.SkippedTokens) if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloating(yyDollar[6].node.(*ast.StmtAltElse).Stmt, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + yylex.(*Parser).setFreeFloating(yyDollar[6].node.(*ast.StmtAltElse).Stmt, token.End, append(yyDollar[7].token.SkippedTokens, yyDollar[8].token.SkippedTokens...)) } else if len(yyDollar[5].list) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtAltElseIf).Stmt, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + yylex.(*Parser).setFreeFloating(yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtAltElseIf).Stmt, token.End, append(yyDollar[7].token.SkippedTokens, yyDollar[8].token.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[7].token.Tokens, yyDollar[8].token.Tokens...)) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[7].token.SkippedTokens, yyDollar[8].token.SkippedTokens...)) } - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[8].token.SkippedTokens) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:951 +// line internal/php5/php5.y:851 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3059,13 +2960,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:970 +// line internal/php5/php5.y:868 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3073,16 +2972,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyDollar[4].node, token.End, yyDollar[5].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyDollar[4].node, token.End, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:985 +// line internal/php5/php5.y:881 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3101,17 +2998,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.SkippedTokens) } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1012 +// line internal/php5/php5.y:906 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3128,13 +3023,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1033 +// line internal/php5/php5.y:925 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3142,15 +3035,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1047 +// line internal/php5/php5.y:937 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3158,15 +3049,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1061 +// line internal/php5/php5.y:949 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3174,15 +3063,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1075 +// line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3190,15 +3077,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1089 +// line internal/php5/php5.y:973 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3206,15 +3091,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1103 +// line internal/php5/php5.y:985 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3222,15 +3105,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1117 +// line internal/php5/php5.y:997 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3238,15 +3119,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1131 +// line internal/php5/php5.y:1009 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3255,14 +3134,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1145 +// line internal/php5/php5.y:1021 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3270,15 +3147,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1159 +// line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3286,15 +3161,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1173 +// line internal/php5/php5.y:1045 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3302,16 +3175,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1188 +// line internal/php5/php5.y:1058 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3319,13 +3190,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1200 +// line internal/php5/php5.y:1068 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3334,14 +3203,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1214 +// line internal/php5/php5.y:1080 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3349,17 +3216,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1230 +// line internal/php5/php5.y:1094 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3389,20 +3254,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) if yyDollar[6].node != nil { yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.SkippedTokens) } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1270 +// line internal/php5/php5.y:1132 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3432,20 +3295,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) if yyDollar[6].node != nil { yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) delete(yyDollar[6].node.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.SkippedTokens) } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1310 +// line internal/php5/php5.y:1170 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3454,15 +3315,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.SkippedTokens) } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1325 +// line internal/php5/php5.y:1183 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3470,14 +3329,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1338 +// line internal/php5/php5.y:1194 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3489,15 +3346,13 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1356 +// line internal/php5/php5.y:1210 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3505,15 +3360,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1370 +// line internal/php5/php5.y:1222 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3523,24 +3376,20 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1390 +// line internal/php5/php5.y:1240 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1396 +// line internal/php5/php5.y:1244 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3553,26 +3402,22 @@ yydefault: catchNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.SkippedTokens) } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1421 +// line internal/php5/php5.y:1267 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1427 +// line internal/php5/php5.y:1271 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3580,47 +3425,37 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1444 +// line internal/php5/php5.y:1286 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1450 +// line internal/php5/php5.y:1290 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1459 +// line internal/php5/php5.y:1297 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1465 +// line internal/php5/php5.y:1301 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1474 +// line internal/php5/php5.y:1308 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3632,85 +3467,73 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.SkippedTokens) } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1498 +// line internal/php5/php5.y:1330 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1504 +// line internal/php5/php5.y:1334 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1516 +// line internal/php5/php5.y:1344 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1525 +// line internal/php5/php5.y:1351 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1534 +// line internal/php5/php5.y:1358 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1543 +// line internal/php5/php5.y:1365 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1547 +// line internal/php5/php5.y:1369 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1554 +// line internal/php5/php5.y:1376 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1558 +// line internal/php5/php5.y:1380 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1565 +// line internal/php5/php5.y:1387 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3720,23 +3543,21 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1592 +// line internal/php5/php5.y:1412 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3758,15 +3579,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.SkippedTokens) } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1620 +// line internal/php5/php5.y:1438 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3776,16 +3595,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.SkippedTokens) } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1641 +// line internal/php5/php5.y:1457 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3793,13 +3610,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1653 +// line internal/php5/php5.y:1467 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3809,14 +3624,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1668 +// line internal/php5/php5.y:1480 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3824,13 +3637,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1680 +// line internal/php5/php5.y:1490 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3840,22 +3651,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1698 +// line internal/php5/php5.y:1506 { yyVAL.ClassExtends = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1704 +// line internal/php5/php5.y:1510 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3863,27 +3670,23 @@ yydefault: yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.SkippedTokens) } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1719 +// line internal/php5/php5.y:1523 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1726 +// line internal/php5/php5.y:1530 { yyVAL.InterfaceExtends = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1732 +// line internal/php5/php5.y:1534 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3891,21 +3694,17 @@ yydefault: yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.SkippedTokens) } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1747 +// line internal/php5/php5.y:1547 { yyVAL.ClassImplements = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1753 +// line internal/php5/php5.y:1551 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3913,59 +3712,47 @@ yydefault: yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.SkippedTokens) } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1768 +// line internal/php5/php5.y:1564 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1774 +// line internal/php5/php5.y:1568 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1786 +// line internal/php5/php5.y:1578 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1792 +// line internal/php5/php5.y:1582 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.SkippedTokens) } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1804 +// line internal/php5/php5.y:1592 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1810 +// line internal/php5/php5.y:1596 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3973,13 +3760,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1822 +// line internal/php5/php5.y:1606 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3987,26 +3772,22 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1839 +// line internal/php5/php5.y:1621 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1848 +// line internal/php5/php5.y:1628 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4016,27 +3797,23 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1868 +// line internal/php5/php5.y:1646 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1877 +// line internal/php5/php5.y:1653 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4046,27 +3823,23 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1898 +// line internal/php5/php5.y:1672 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1907 +// line internal/php5/php5.y:1679 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4076,16 +3849,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1928 +// line internal/php5/php5.y:1698 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -4096,14 +3867,12 @@ yydefault: constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.SkippedTokens) } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1944 +// line internal/php5/php5.y:1712 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4114,15 +3883,13 @@ yydefault: constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.SkippedTokens) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1965 +// line internal/php5/php5.y:1731 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4132,14 +3899,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1980 +// line internal/php5/php5.y:1744 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4149,15 +3914,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1996 +// line internal/php5/php5.y:1758 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4167,16 +3930,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2013 +// line internal/php5/php5.y:1773 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4187,25 +3948,21 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2036 +// line internal/php5/php5.y:1794 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2042 +// line internal/php5/php5.y:1798 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4214,15 +3971,13 @@ yydefault: _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.SkippedTokens) } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2057 +// line internal/php5/php5.y:1811 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4231,38 +3986,34 @@ yydefault: _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.SkippedTokens) } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2076 +// line internal/php5/php5.y:1828 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2080 +// line internal/php5/php5.y:1832 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2088 +// line internal/php5/php5.y:1840 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2097 +// line internal/php5/php5.y:1847 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4272,24 +4023,20 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2119 +// line internal/php5/php5.y:1867 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2125 +// line internal/php5/php5.y:1871 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4298,21 +4045,17 @@ yydefault: _elseIf.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2142 +// line internal/php5/php5.y:1886 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2148 +// line internal/php5/php5.y:1890 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4325,22 +4068,18 @@ yydefault: _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[4].token.SkippedTokens) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2170 +// line internal/php5/php5.y:1910 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2176 +// line internal/php5/php5.y:1914 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4348,21 +4087,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2192 +// line internal/php5/php5.y:1928 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2198 +// line internal/php5/php5.y:1932 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4374,49 +4109,39 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[2].token.SkippedTokens) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2219 +// line internal/php5/php5.y:1951 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2225 +// line internal/php5/php5.y:1955 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2234 +// line internal/php5/php5.y:1962 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2240 +// line internal/php5/php5.y:1966 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2252 +// line internal/php5/php5.y:1976 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4424,18 +4149,18 @@ yydefault: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) if yyDollar[3].token != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } if yyDollar[2].token != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, nil} @@ -4449,12 +4174,10 @@ yydefault: } else { yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2288 +// line internal/php5/php5.y:2010 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4462,19 +4185,19 @@ yydefault: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.SkippedTokens) if yyDollar[3].token != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } if yyDollar[2].token != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, yyDollar[6].node} @@ -4488,20 +4211,16 @@ yydefault: } else { yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2329 +// line internal/php5/php5.y:2049 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2335 +// line internal/php5/php5.y:2053 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4509,13 +4228,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2347 +// line internal/php5/php5.y:2063 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4523,21 +4240,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2359 +// line internal/php5/php5.y:2073 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2369 +// line internal/php5/php5.y:2081 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4545,14 +4258,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.SkippedTokens) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2382 +// line internal/php5/php5.y:2092 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4560,14 +4271,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2395 +// line internal/php5/php5.y:2103 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4577,33 +4286,27 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2414 +// line internal/php5/php5.y:2120 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2420 +// line internal/php5/php5.y:2124 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2432 +// line internal/php5/php5.y:2134 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4612,12 +4315,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2444 +// line internal/php5/php5.y:2144 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4626,12 +4327,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2456 +// line internal/php5/php5.y:2154 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4639,13 +4338,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2468 +// line internal/php5/php5.y:2164 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4653,32 +4350,26 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2483 +// line internal/php5/php5.y:2177 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2492 +// line internal/php5/php5.y:2184 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2502 +// line internal/php5/php5.y:2192 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4688,13 +4379,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2516 +// line internal/php5/php5.y:2204 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4702,13 +4391,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2528 +// line internal/php5/php5.y:2214 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4716,15 +4403,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.SkippedTokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.SkippedTokens...)) } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2546 +// line internal/php5/php5.y:2230 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4737,14 +4422,12 @@ yydefault: staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.SkippedTokens) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2564 +// line internal/php5/php5.y:2246 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4757,15 +4440,13 @@ yydefault: staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.SkippedTokens) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2583 +// line internal/php5/php5.y:2263 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4778,13 +4459,11 @@ yydefault: staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.SkippedTokens) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2600 +// line internal/php5/php5.y:2278 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4797,30 +4476,24 @@ yydefault: staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.SkippedTokens) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2622 +// line internal/php5/php5.y:2298 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2628 +// line internal/php5/php5.y:2302 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2638 +// line internal/php5/php5.y:2310 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4829,14 +4502,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2652 +// line internal/php5/php5.y:2322 { yyVAL.node = yyDollar[1].node @@ -4844,22 +4515,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2665 +// line internal/php5/php5.y:2333 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2671 +// line internal/php5/php5.y:2337 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4875,24 +4542,22 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.SkippedTokens) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.SkippedTokens) } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2705 +// line internal/php5/php5.y:2369 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4900,116 +4565,94 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2720 +// line internal/php5/php5.y:2382 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2726 +// line internal/php5/php5.y:2386 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2738 +// line internal/php5/php5.y:2396 { yyVAL.node = &ast.StmtNop{ast.Node{}} yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2750 +// line internal/php5/php5.y:2406 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.SkippedTokens) } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2765 +// line internal/php5/php5.y:2419 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2771 +// line internal/php5/php5.y:2423 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2780 +// line internal/php5/php5.y:2430 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2786 +// line internal/php5/php5.y:2434 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2795 +// line internal/php5/php5.y:2441 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2805 +// line internal/php5/php5.y:2449 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2818 +// line internal/php5/php5.y:2460 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5018,32 +4661,26 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2834 +// line internal/php5/php5.y:2474 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2840 +// line internal/php5/php5.y:2478 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2852 +// line internal/php5/php5.y:2488 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5053,21 +4690,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2866 +// line internal/php5/php5.y:2500 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2875 +// line internal/php5/php5.y:2507 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5078,14 +4711,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.SkippedTokens) } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2894 +// line internal/php5/php5.y:2524 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5096,14 +4727,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2910 +// line internal/php5/php5.y:2538 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5112,29 +4741,23 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2926 +// line internal/php5/php5.y:2552 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2932 +// line internal/php5/php5.y:2556 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2941 +// line internal/php5/php5.y:2563 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5142,14 +4765,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2954 +// line internal/php5/php5.y:2574 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5157,22 +4778,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2970 +// line internal/php5/php5.y:2588 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2976 +// line internal/php5/php5.y:2592 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5181,45 +4798,35 @@ yydefault: modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.SkippedTokens) } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2992 +// line internal/php5/php5.y:2606 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2998 +// line internal/php5/php5.y:2610 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3007 +// line internal/php5/php5.y:2617 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3013 +// line internal/php5/php5.y:2621 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3022 +// line internal/php5/php5.y:2628 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5227,13 +4834,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3034 +// line internal/php5/php5.y:2638 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5241,13 +4846,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3046 +// line internal/php5/php5.y:2648 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5255,13 +4858,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3058 +// line internal/php5/php5.y:2658 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5269,13 +4870,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3070 +// line internal/php5/php5.y:2668 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5283,13 +4882,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3082 +// line internal/php5/php5.y:2678 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5297,13 +4894,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3097 +// line internal/php5/php5.y:2691 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5316,14 +4911,12 @@ yydefault: property.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.SkippedTokens) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3115 +// line internal/php5/php5.y:2707 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5336,15 +4929,13 @@ yydefault: property.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.SkippedTokens) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3134 +// line internal/php5/php5.y:2724 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5357,13 +4948,11 @@ yydefault: property.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.SkippedTokens) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3151 +// line internal/php5/php5.y:2739 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5376,14 +4965,12 @@ yydefault: property.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.SkippedTokens) } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3172 +// line internal/php5/php5.y:2758 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5398,15 +4985,13 @@ yydefault: yyDollar[1].node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.SkippedTokens) } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3193 +// line internal/php5/php5.y:2777 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5418,85 +5003,67 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.SkippedTokens) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3214 +// line internal/php5/php5.y:2796 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3223 +// line internal/php5/php5.y:2803 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3233 +// line internal/php5/php5.y:2811 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3239 +// line internal/php5/php5.y:2815 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3248 +// line internal/php5/php5.y:2822 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3257 +// line internal/php5/php5.y:2829 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3266 +// line internal/php5/php5.y:2836 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3272 +// line internal/php5/php5.y:2840 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3281 +// line internal/php5/php5.y:2847 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5505,14 +5072,12 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3295 +// line internal/php5/php5.y:2859 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5521,54 +5086,42 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[3].token.SkippedTokens) } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3312 +// line internal/php5/php5.y:2874 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3318 +// line internal/php5/php5.y:2878 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3324 +// line internal/php5/php5.y:2882 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3333 +// line internal/php5/php5.y:2889 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3339 +// line internal/php5/php5.y:2893 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3348 +// line internal/php5/php5.y:2900 { if yyDollar[3].node != nil { @@ -5580,13 +5133,11 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3367 +// line internal/php5/php5.y:2917 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5596,16 +5147,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3384 +// line internal/php5/php5.y:2932 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,13 +5163,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3397 +// line internal/php5/php5.y:2943 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5629,14 +5176,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3411 +// line internal/php5/php5.y:2955 { var _new *ast.ExprNew @@ -5657,15 +5202,13 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.SkippedTokens) } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3438 +// line internal/php5/php5.y:2980 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5673,13 +5216,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3450 +// line internal/php5/php5.y:2990 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5687,13 +5228,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3462 +// line internal/php5/php5.y:3000 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,13 +5241,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3475 +// line internal/php5/php5.y:3011 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5717,13 +5254,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3488 +// line internal/php5/php5.y:3022 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,13 +5267,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3501 +// line internal/php5/php5.y:3033 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,13 +5280,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3514 +// line internal/php5/php5.y:3044 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5762,13 +5293,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3527 +// line internal/php5/php5.y:3055 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,13 +5306,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3540 +// line internal/php5/php5.y:3066 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,13 +5319,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3553 +// line internal/php5/php5.y:3077 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,13 +5332,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3566 +// line internal/php5/php5.y:3088 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,13 +5345,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3579 +// line internal/php5/php5.y:3099 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5837,13 +5358,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3592 +// line internal/php5/php5.y:3110 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,13 +5371,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3605 +// line internal/php5/php5.y:3121 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5867,13 +5384,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3618 +// line internal/php5/php5.y:3132 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5881,13 +5396,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3630 +// line internal/php5/php5.y:3142 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5896,13 +5409,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3643 +// line internal/php5/php5.y:3153 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5910,13 +5421,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3655 +// line internal/php5/php5.y:3163 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5925,13 +5434,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3668 +// line internal/php5/php5.y:3174 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5940,13 +5447,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3681 +// line internal/php5/php5.y:3185 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5955,13 +5460,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3694 +// line internal/php5/php5.y:3196 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5970,13 +5473,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3707 +// line internal/php5/php5.y:3207 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5985,13 +5486,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3720 +// line internal/php5/php5.y:3218 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6000,13 +5499,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3733 +// line internal/php5/php5.y:3229 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6015,13 +5512,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3746 +// line internal/php5/php5.y:3240 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6030,13 +5525,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3759 +// line internal/php5/php5.y:3251 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6045,13 +5538,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3772 +// line internal/php5/php5.y:3262 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6060,13 +5551,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3785 +// line internal/php5/php5.y:3273 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6075,13 +5564,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3798 +// line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6090,13 +5577,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3811 +// line internal/php5/php5.y:3295 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6105,13 +5590,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3824 +// line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6120,13 +5603,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3837 +// line internal/php5/php5.y:3317 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6135,13 +5616,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3850 +// line internal/php5/php5.y:3328 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6150,13 +5629,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3339 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6165,13 +5642,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3876 +// line internal/php5/php5.y:3350 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6179,13 +5654,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3888 +// line internal/php5/php5.y:3360 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6193,13 +5666,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3900 +// line internal/php5/php5.y:3370 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6207,13 +5678,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3912 +// line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6221,13 +5690,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3390 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6236,13 +5703,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3937 +// line internal/php5/php5.y:3401 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6251,13 +5716,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3950 +// line internal/php5/php5.y:3412 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6266,13 +5729,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3963 +// line internal/php5/php5.y:3423 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6281,14 +5742,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3977 +// line internal/php5/php5.y:3435 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6297,13 +5756,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3990 +// line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6312,13 +5769,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4003 +// line internal/php5/php5.y:3457 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6327,13 +5782,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4016 +// line internal/php5/php5.y:3468 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6342,13 +5795,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4029 +// line internal/php5/php5.y:3479 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6357,35 +5808,29 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4042 +// line internal/php5/php5.y:3490 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4048 +// line internal/php5/php5.y:3494 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4054 +// line internal/php5/php5.y:3498 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) for _, n := range yyDollar[4].list { switch nn := n.(type) { @@ -6408,12 +5853,10 @@ yydefault: // save position yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, n) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4086 +// line internal/php5/php5.y:3528 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6422,14 +5865,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.SkippedTokens) } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4100 +// line internal/php5/php5.y:3540 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6438,22 +5879,18 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.SkippedTokens) } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4114 +// line internal/php5/php5.y:3552 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4120 +// line internal/php5/php5.y:3556 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6461,14 +5898,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4133 +// line internal/php5/php5.y:3567 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6476,14 +5911,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4146 +// line internal/php5/php5.y:3578 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6491,14 +5924,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4159 +// line internal/php5/php5.y:3589 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6506,14 +5937,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4172 +// line internal/php5/php5.y:3600 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6521,14 +5950,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4185 +// line internal/php5/php5.y:3611 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6536,14 +5963,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4198 +// line internal/php5/php5.y:3622 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6551,14 +5976,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4211 +// line internal/php5/php5.y:3633 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6574,13 +5997,11 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4231 +// line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6588,37 +6009,29 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4243 +// line internal/php5/php5.y:3661 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4249 +// line internal/php5/php5.y:3665 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4255 +// line internal/php5/php5.y:3669 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4261 +// line internal/php5/php5.y:3673 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6626,13 +6039,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4273 +// line internal/php5/php5.y:3683 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6640,13 +6051,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4285 +// line internal/php5/php5.y:3693 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6654,13 +6063,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:4297 +// line internal/php5/php5.y:3703 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6668,28 +6075,26 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) // normalize if yyDollar[6].ClosureUse == nil { yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:4323 +// line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6697,29 +6102,27 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.SkippedTokens) if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.SkippedTokens) // normalize if yyDollar[7].ClosureUse == nil { yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4353 +// line internal/php5/php5.y:3755 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6727,13 +6130,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4365 +// line internal/php5/php5.y:3765 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6741,13 +6142,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4377 +// line internal/php5/php5.y:3775 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6755,14 +6154,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4390 +// line internal/php5/php5.y:3786 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6770,14 +6167,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4406 +// line internal/php5/php5.y:3800 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6785,14 +6180,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4419 +// line internal/php5/php5.y:3811 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6800,14 +6193,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4432 +// line internal/php5/php5.y:3822 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6817,15 +6208,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(str, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(str, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(str, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4448 +// line internal/php5/php5.y:3836 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6833,14 +6222,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4464 +// line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6848,15 +6235,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4478 +// line internal/php5/php5.y:3862 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6864,28 +6249,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4494 +// line internal/php5/php5.y:3876 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4501 +// line internal/php5/php5.y:3883 { yyVAL.ClosureUse = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4507 +// line internal/php5/php5.y:3887 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6893,15 +6274,13 @@ yydefault: yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.SkippedTokens) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4524 +// line internal/php5/php5.y:3902 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6912,14 +6291,12 @@ yydefault: variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4540 +// line internal/php5/php5.y:3916 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6932,15 +6309,13 @@ yydefault: reference.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4559 +// line internal/php5/php5.y:3933 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6951,13 +6326,11 @@ yydefault: variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4574 +// line internal/php5/php5.y:3946 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6970,14 +6343,12 @@ yydefault: reference.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4595 +// line internal/php5/php5.y:3965 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -6985,12 +6356,10 @@ yydefault: // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4606 +// line internal/php5/php5.y:3974 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -7000,14 +6369,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.SkippedTokens) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4621 +// line internal/php5/php5.y:3987 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -7017,13 +6384,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4635 +// line internal/php5/php5.y:3999 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7032,13 +6397,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4648 +// line internal/php5/php5.y:4010 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7047,13 +6410,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4661 +// line internal/php5/php5.y:4021 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7062,13 +6423,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4674 +// line internal/php5/php5.y:4032 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7077,13 +6436,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4687 +// line internal/php5/php5.y:4043 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -7092,12 +6449,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4702 +// line internal/php5/php5.y:4056 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7105,24 +6460,20 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4714 +// line internal/php5/php5.y:4066 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4723 +// line internal/php5/php5.y:4073 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7130,14 +6481,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4736 +// line internal/php5/php5.y:4084 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7145,24 +6494,20 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4751 +// line internal/php5/php5.y:4097 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4760 +// line internal/php5/php5.y:4104 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -7170,14 +6515,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4773 +// line internal/php5/php5.y:4115 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -7185,34 +6528,28 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4788 +// line internal/php5/php5.y:4128 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4794 +// line internal/php5/php5.y:4132 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4803 +// line internal/php5/php5.y:4139 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.SkippedTokens) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -7245,55 +6582,43 @@ yydefault: yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4844 +// line internal/php5/php5.y:4178 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4854 +// line internal/php5/php5.y:4186 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4860 +// line internal/php5/php5.y:4190 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4870 +// line internal/php5/php5.y:4198 { yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.SkippedTokens) } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4882 +// line internal/php5/php5.y:4208 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4888 +// line internal/php5/php5.y:4212 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} @@ -7301,66 +6626,52 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.SkippedTokens) } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4901 +// line internal/php5/php5.y:4223 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4910 +// line internal/php5/php5.y:4230 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4916 +// line internal/php5/php5.y:4234 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} // save position part.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4926 +// line internal/php5/php5.y:4242 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4935 +// line internal/php5/php5.y:4249 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4941 +// line internal/php5/php5.y:4253 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4950 +// line internal/php5/php5.y:4260 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7368,13 +6679,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4962 +// line internal/php5/php5.y:4270 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7382,13 +6691,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4974 +// line internal/php5/php5.y:4280 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7396,13 +6703,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4986 +// line internal/php5/php5.y:4290 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7410,13 +6715,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4998 +// line internal/php5/php5.y:4300 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7424,13 +6727,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5010 +// line internal/php5/php5.y:4310 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7438,13 +6739,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5022 +// line internal/php5/php5.y:4320 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7452,13 +6751,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5034 +// line internal/php5/php5.y:4330 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7466,13 +6763,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5046 +// line internal/php5/php5.y:4340 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7480,13 +6775,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5058 +// line internal/php5/php5.y:4350 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7494,13 +6787,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5070 +// line internal/php5/php5.y:4360 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7510,13 +6801,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5084 +// line internal/php5/php5.y:4372 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7524,13 +6813,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5099 +// line internal/php5/php5.y:4385 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7541,38 +6828,30 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5118 +// line internal/php5/php5.y:4402 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5127 +// line internal/php5/php5.y:4409 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5133 +// line internal/php5/php5.y:4413 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5139 +// line internal/php5/php5.y:4417 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7580,12 +6859,10 @@ yydefault: // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5150 +// line internal/php5/php5.y:4426 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7595,14 +6872,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5165 +// line internal/php5/php5.y:4439 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7612,13 +6887,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5179 +// line internal/php5/php5.y:4451 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7626,15 +6899,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5193 +// line internal/php5/php5.y:4463 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7642,22 +6913,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5206 +// line internal/php5/php5.y:4474 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5212 +// line internal/php5/php5.y:4478 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7665,21 +6932,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5224 +// line internal/php5/php5.y:4488 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5233 +// line internal/php5/php5.y:4495 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7687,14 +6950,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5246 +// line internal/php5/php5.y:4506 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7703,13 +6964,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5259 +// line internal/php5/php5.y:4517 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7718,13 +6977,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5272 +// line internal/php5/php5.y:4528 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7733,13 +6990,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5285 +// line internal/php5/php5.y:4539 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7748,13 +7003,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5298 +// line internal/php5/php5.y:4550 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7763,13 +7016,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5311 +// line internal/php5/php5.y:4561 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7778,13 +7029,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5324 +// line internal/php5/php5.y:4572 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7792,13 +7041,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5336 +// line internal/php5/php5.y:4582 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7806,13 +7053,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5348 +// line internal/php5/php5.y:4592 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7821,13 +7066,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5361 +// line internal/php5/php5.y:4603 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7836,13 +7079,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5374 +// line internal/php5/php5.y:4614 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7851,13 +7092,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5387 +// line internal/php5/php5.y:4625 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7866,13 +7105,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5400 +// line internal/php5/php5.y:4636 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7881,13 +7118,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5413 +// line internal/php5/php5.y:4647 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7896,13 +7131,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5426 +// line internal/php5/php5.y:4658 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7911,13 +7144,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5439 +// line internal/php5/php5.y:4669 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7926,13 +7157,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5452 +// line internal/php5/php5.y:4680 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7941,13 +7170,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5465 +// line internal/php5/php5.y:4691 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7956,13 +7183,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5478 +// line internal/php5/php5.y:4702 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7971,13 +7196,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5491 +// line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7986,13 +7209,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5504 +// line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8001,13 +7222,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5517 +// line internal/php5/php5.y:4735 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8016,13 +7235,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5530 +// line internal/php5/php5.y:4746 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8031,14 +7248,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5544 +// line internal/php5/php5.y:4758 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8047,13 +7262,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5557 +// line internal/php5/php5.y:4769 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8062,13 +7275,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5570 +// line internal/php5/php5.y:4780 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8077,13 +7288,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5583 +// line internal/php5/php5.y:4791 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8092,13 +7301,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5596 +// line internal/php5/php5.y:4802 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -8107,14 +7314,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.SkippedTokens) } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5610 +// line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -8123,14 +7328,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.SkippedTokens) } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5624 +// line internal/php5/php5.y:4826 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -8138,13 +7341,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5636 +// line internal/php5/php5.y:4836 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -8152,33 +7353,27 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5648 +// line internal/php5/php5.y:4846 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5661 +// line internal/php5/php5.y:4857 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5667 +// line internal/php5/php5.y:4861 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8186,12 +7381,10 @@ yydefault: // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5678 +// line internal/php5/php5.y:4870 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8201,14 +7394,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.SkippedTokens) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5693 +// line internal/php5/php5.y:4883 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -8218,13 +7409,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5710 +// line internal/php5/php5.y:4898 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8234,37 +7423,29 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5724 +// line internal/php5/php5.y:4910 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5730 +// line internal/php5/php5.y:4914 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5736 +// line internal/php5/php5.y:4918 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5742 +// line internal/php5/php5.y:4922 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -8272,13 +7453,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5754 +// line internal/php5/php5.y:4932 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -8286,13 +7465,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5766 +// line internal/php5/php5.y:4942 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -8300,46 +7477,40 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5781 +// line internal/php5/php5.y:4955 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5787 +// line internal/php5/php5.y:4959 { yyVAL.list = yyDollar[1].list // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5801 +// line internal/php5/php5.y:4971 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5805 +// line internal/php5/php5.y:4975 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5812 +// line internal/php5/php5.y:4982 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8348,15 +7519,13 @@ yydefault: arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5827 +// line internal/php5/php5.y:4995 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8365,14 +7534,12 @@ yydefault: arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5841 +// line internal/php5/php5.y:5007 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8382,13 +7549,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.SkippedTokens) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5855 +// line internal/php5/php5.y:5019 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8398,28 +7563,22 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5871 +// line internal/php5/php5.y:5033 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5877 +// line internal/php5/php5.y:5037 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5886 +// line internal/php5/php5.y:5044 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -8427,14 +7586,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5899 +// line internal/php5/php5.y:5055 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -8442,38 +7599,30 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5916 +// line internal/php5/php5.y:5070 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5926 +// line internal/php5/php5.y:5078 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5935 +// line internal/php5/php5.y:5085 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5944 +// line internal/php5/php5.y:5092 { yyVAL.node = yyDollar[1].node @@ -8483,7 +7632,7 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.SkippedTokens) for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -8528,36 +7677,28 @@ yydefault: yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6002 +// line internal/php5/php5.y:5148 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6011 +// line internal/php5/php5.y:5155 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6017 +// line internal/php5/php5.y:5159 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6027 +// line internal/php5/php5.y:5167 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8567,13 +7708,11 @@ yydefault: yyVAL.list = yyDollar[2].list // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.SkippedTokens) } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6044 +// line internal/php5/php5.y:5182 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8582,14 +7721,12 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6058 +// line internal/php5/php5.y:5194 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8598,57 +7735,45 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6075 +// line internal/php5/php5.y:5209 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6087 +// line internal/php5/php5.y:5219 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6093 +// line internal/php5/php5.y:5223 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6099 +// line internal/php5/php5.y:5227 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6108 +// line internal/php5/php5.y:5234 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6114 +// line internal/php5/php5.y:5238 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8657,12 +7782,10 @@ yydefault: } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6129 +// line internal/php5/php5.y:5251 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8671,13 +7794,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6142 +// line internal/php5/php5.y:5262 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8686,21 +7807,17 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6158 +// line internal/php5/php5.y:5276 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6167 +// line internal/php5/php5.y:5283 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8708,14 +7825,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6180 +// line internal/php5/php5.y:5294 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8723,46 +7838,36 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6196 +// line internal/php5/php5.y:5308 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6202 +// line internal/php5/php5.y:5312 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6208 +// line internal/php5/php5.y:5316 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6218 +// line internal/php5/php5.y:5324 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6224 +// line internal/php5/php5.y:5328 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8771,20 +7876,16 @@ yydefault: } yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6236 +// line internal/php5/php5.y:5338 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6245 +// line internal/php5/php5.y:5345 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8792,14 +7893,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6258 +// line internal/php5/php5.y:5356 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8807,22 +7906,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6271 +// line internal/php5/php5.y:5367 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6281 +// line internal/php5/php5.y:5375 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8832,13 +7927,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6295 +// line internal/php5/php5.y:5387 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8846,51 +7939,41 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.SkippedTokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.SkippedTokens...)) } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6312 +// line internal/php5/php5.y:5402 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6318 +// line internal/php5/php5.y:5406 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6328 +// line internal/php5/php5.y:5414 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6334 +// line internal/php5/php5.y:5418 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} // save position fetch.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6347 +// line internal/php5/php5.y:5429 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8899,14 +7982,12 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6361 +// line internal/php5/php5.y:5441 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8915,26 +7996,22 @@ yydefault: fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6375 +// line internal/php5/php5.y:5453 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} // save position fetch.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6388 +// line internal/php5/php5.y:5464 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8942,13 +8019,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6400 +// line internal/php5/php5.y:5474 { yyVAL.node = yyDollar[2].node @@ -8956,14 +8031,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6416 +// line internal/php5/php5.y:5488 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8972,13 +8045,11 @@ yydefault: n.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.SkippedTokens) } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6429 +// line internal/php5/php5.y:5499 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8991,13 +8062,11 @@ yydefault: n.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.SkippedTokens) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6449 +// line internal/php5/php5.y:5517 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -9006,25 +8075,21 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6462 +// line internal/php5/php5.y:5528 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} } else { yyVAL.list = []ast.Vertex{yyDollar[1].node} } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6476 +// line internal/php5/php5.y:5540 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -9033,12 +8098,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6488 +// line internal/php5/php5.y:5550 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -9048,31 +8111,25 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6504 +// line internal/php5/php5.y:5564 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:6514 +// line internal/php5/php5.y:5572 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6520 +// line internal/php5/php5.y:5576 { yyVAL.list = yyDollar[1].list @@ -9082,14 +8139,12 @@ yydefault: // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6538 +// line internal/php5/php5.y:5592 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9098,15 +8153,13 @@ yydefault: arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6553 +// line internal/php5/php5.y:5605 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -9115,14 +8168,12 @@ yydefault: arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6567 +// line internal/php5/php5.y:5617 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9132,13 +8183,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.SkippedTokens) } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6581 +// line internal/php5/php5.y:5629 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -9148,12 +8197,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6594 +// line internal/php5/php5.y:5640 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -9164,16 +8211,14 @@ yydefault: arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.SkippedTokens) } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6612 +// line internal/php5/php5.y:5656 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9184,14 +8229,12 @@ yydefault: arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.SkippedTokens) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6628 +// line internal/php5/php5.y:5670 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -9203,14 +8246,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.SkippedTokens) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6645 +// line internal/php5/php5.y:5685 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -9221,21 +8262,17 @@ yydefault: arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.SkippedTokens) } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6663 +// line internal/php5/php5.y:5701 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6669 +// line internal/php5/php5.y:5705 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -9244,21 +8281,17 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.SkippedTokens) } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6682 +// line internal/php5/php5.y:5716 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6688 +// line internal/php5/php5.y:5720 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -9267,13 +8300,11 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.SkippedTokens) } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6704 +// line internal/php5/php5.y:5734 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -9283,13 +8314,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6718 +// line internal/php5/php5.y:5746 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9301,14 +8330,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6735 +// line internal/php5/php5.y:5761 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9322,14 +8349,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.SkippedTokens) } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6754 +// line internal/php5/php5.y:5778 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -9339,14 +8364,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6769 +// line internal/php5/php5.y:5791 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -9358,14 +8381,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6786 +// line internal/php5/php5.y:5806 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -9377,28 +8398,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.SkippedTokens) } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6805 +// line internal/php5/php5.y:5823 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6818 +// line internal/php5/php5.y:5834 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -9406,13 +8423,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6830 +// line internal/php5/php5.y:5844 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -9425,13 +8440,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6847 +// line internal/php5/php5.y:5859 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -9441,13 +8454,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6864 +// line internal/php5/php5.y:5874 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -9455,15 +8466,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.SkippedTokens) } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6878 +// line internal/php5/php5.y:5886 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -9473,15 +8482,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6894 +// line internal/php5/php5.y:5900 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -9491,15 +8498,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6910 +// line internal/php5/php5.y:5914 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -9507,13 +8512,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6922 +// line internal/php5/php5.y:5924 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -9521,13 +8524,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6934 +// line internal/php5/php5.y:5934 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -9537,15 +8538,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6950 +// line internal/php5/php5.y:5948 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9553,13 +8552,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6962 +// line internal/php5/php5.y:5958 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9567,48 +8564,38 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6977 +// line internal/php5/php5.y:5971 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6983 +// line internal/php5/php5.y:5975 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6995 +// line internal/php5/php5.y:5985 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:7001 +// line internal/php5/php5.y:5989 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7010 +// line internal/php5/php5.y:5996 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9619,14 +8606,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7026 +// line internal/php5/php5.y:6010 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9637,14 +8622,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7045 +// line internal/php5/php5.y:6027 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9655,14 +8638,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:7064 +// line internal/php5/php5.y:6044 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -9673,10 +8654,8 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } } goto yystack /* stack new state and value */ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 63b1661..d328d44 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -5,17 +5,16 @@ import ( "bytes" "strconv" - "github.com/z7zmey/php-parser/internal/position" - "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/internal/position" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" ) %} %union{ node ast.Vertex - token *scanner.Token + token *token.Token list []ast.Vertex simpleIndirectReference simpleIndirectReference @@ -25,7 +24,6 @@ import ( ClosureUse *ast.ExprClosureUse } -%type $unk %token T_INCLUDE %token T_INCLUDE_ONCE %token T_EXIT @@ -278,9 +276,7 @@ start: yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) } ; @@ -295,14 +291,10 @@ top_statement_list: if $2 != nil { $$ = append($1, $2) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -316,9 +308,7 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.SkippedTokens) } | namespace_name T_NS_SEPARATOR T_STRING { @@ -329,10 +319,8 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.SkippedTokens) } ; @@ -341,26 +329,18 @@ top_statement: { // error $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_HALT_COMPILER '(' ')' ';' { @@ -370,10 +350,8 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) } | T_NAMESPACE namespace_name ';' { @@ -385,11 +363,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { @@ -401,11 +377,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.SkippedTokens) } | T_NAMESPACE '{' top_statement_list '}' { @@ -415,11 +389,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) } | T_USE use_declarations ';' { @@ -431,10 +403,8 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | T_USE T_FUNCTION use_function_declarations ';' { @@ -450,11 +420,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) } | T_USE T_CONST use_const_declarations ';' { @@ -470,11 +438,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) } | constant_declaration ';' { @@ -484,10 +450,8 @@ top_statement: $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } ; @@ -497,15 +461,11 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | use_declaration { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -518,8 +478,6 @@ use_declaration: // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -535,10 +493,8 @@ use_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -552,9 +508,7 @@ use_declaration: $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { @@ -572,11 +526,9 @@ use_declaration: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) } ; @@ -586,15 +538,11 @@ use_function_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | use_function_declaration { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -607,8 +555,6 @@ use_function_declaration: // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -624,10 +570,8 @@ use_function_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -641,9 +585,7 @@ use_function_declaration: $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { @@ -661,11 +603,9 @@ use_function_declaration: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) } ; @@ -675,15 +615,11 @@ use_const_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | use_const_declaration { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -696,8 +632,6 @@ use_const_declaration: // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -713,10 +647,8 @@ use_const_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -730,9 +662,7 @@ use_const_declaration: $$.GetNode().Position = position.NewTokenNodePosition($1, name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NS_SEPARATOR namespace_name T_AS T_STRING { @@ -750,11 +680,9 @@ use_const_declaration: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) } ; @@ -774,11 +702,9 @@ constant_declaration: $$.GetNode().Position = position.NewNodeNodeListPosition($1, constList.Consts) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.SkippedTokens) } | T_CONST T_STRING '=' static_scalar { @@ -793,11 +719,9 @@ constant_declaration: $$.GetNode().Position = position.NewTokenNodeListPosition($1, constList) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.SkippedTokens) } ; @@ -812,14 +736,10 @@ inner_statement_list: if $2 != nil { $$ = append($1, $2) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -829,26 +749,18 @@ inner_statement: { // error $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_HALT_COMPILER '(' ')' ';' { @@ -858,10 +770,8 @@ inner_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) } ; @@ -870,8 +780,6 @@ statement: unticked_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STRING ':' { @@ -883,10 +791,8 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.SkippedTokens) } ; @@ -899,10 +805,8 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) } | T_IF parenthesis_expr statement elseif_list else_single { @@ -918,9 +822,7 @@ unticked_statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { @@ -934,18 +836,16 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.SkippedTokens) if $6 != nil { - yylex.(*Parser).setFreeFloating($6.(*ast.StmtAltElse).Stmt, token.End, append($7.Tokens, $8.Tokens...)) + yylex.(*Parser).setFreeFloating($6.(*ast.StmtAltElse).Stmt, token.End, append($7.SkippedTokens, $8.SkippedTokens...)) } else if len($5) > 0 { - yylex.(*Parser).setFreeFloating($5[len($5)-1].(*ast.StmtAltElseIf).Stmt, token.End, append($7.Tokens, $8.Tokens...)) + yylex.(*Parser).setFreeFloating($5[len($5)-1].(*ast.StmtAltElseIf).Stmt, token.End, append($7.SkippedTokens, $8.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($7.Tokens, $8.Tokens...)) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($7.SkippedTokens, $8.SkippedTokens...)) } - yylex.(*Parser).setToken($$, token.SemiColon, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.SemiColon, $8.SkippedTokens) } | T_WHILE parenthesis_expr while_statement { @@ -962,9 +862,7 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_DO statement T_WHILE parenthesis_expr ';' { @@ -974,12 +872,10 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($4, token.End, $5.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($4, token.End, $5.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) } | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement { @@ -1000,13 +896,11 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.For, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.SkippedTokens) } | T_SWITCH parenthesis_expr switch_case_list { @@ -1025,9 +919,7 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_BREAK ';' { @@ -1037,11 +929,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | T_BREAK expr ';' { @@ -1051,11 +941,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_CONTINUE ';' { @@ -1065,11 +953,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | T_CONTINUE expr ';' { @@ -1079,11 +965,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_RETURN ';' { @@ -1093,11 +977,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | T_RETURN expr_without_variable ';' { @@ -1107,11 +989,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_RETURN variable ';' { @@ -1121,11 +1001,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | yield_expr ';' { @@ -1136,10 +1014,8 @@ unticked_statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | T_GLOBAL global_var_list ';' { @@ -1149,11 +1025,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_STATIC static_var_list ';' { @@ -1163,11 +1037,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_ECHO echo_expr_list ';' { @@ -1177,12 +1049,10 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Echo, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Echo, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_INLINE_HTML { @@ -1192,9 +1062,7 @@ unticked_statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | expr ';' { @@ -1205,10 +1073,8 @@ unticked_statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | T_UNSET '(' unset_variables ')' ';' { @@ -1218,13 +1084,11 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) } | T_FOREACH '(' variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { @@ -1256,15 +1120,13 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) if $6 != nil { yylex.(*Parser).setFreeFloatingTokens($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.SkippedTokens) } | T_FOREACH '(' expr_without_variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { @@ -1296,15 +1158,13 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) if $6 != nil { yylex.(*Parser).setFreeFloatingTokens($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $7.SkippedTokens) } | T_DECLARE '(' declare_list ')' declare_statement { @@ -1315,11 +1175,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.SkippedTokens) } | ';' { @@ -1329,10 +1187,8 @@ unticked_statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { @@ -1346,11 +1202,9 @@ unticked_statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) } | T_THROW expr ';' { @@ -1360,11 +1214,9 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_GOTO T_STRING ';' { @@ -1376,12 +1228,10 @@ unticked_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } ; @@ -1389,8 +1239,6 @@ catch_statement: /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { @@ -1405,14 +1253,12 @@ catch_statement: catchNode.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.Tokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.SkippedTokens) } ; @@ -1420,8 +1266,6 @@ finally_statement: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINALLY '{' inner_statement_list '}' { @@ -1431,11 +1275,9 @@ finally_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) } ; @@ -1443,14 +1285,10 @@ additional_catches: non_empty_additional_catches { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1458,14 +1296,10 @@ non_empty_additional_catches: additional_catch { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_additional_catches additional_catch { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1482,14 +1316,12 @@ additional_catch: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Catch, $2.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Catch, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Cond, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.SkippedTokens) } ; @@ -1497,17 +1329,13 @@ unset_variables: unset_variable { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | unset_variables ',' unset_variable { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -1515,8 +1343,6 @@ unset_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1524,8 +1350,6 @@ function_declaration_statement: unticked_function_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1533,8 +1357,6 @@ class_declaration_statement: unticked_class_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1571,19 +1393,17 @@ unticked_function_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Params, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Params, $7.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) } ; @@ -1610,11 +1430,9 @@ unticked_class_declaration_statement: $$.GetNode().Position = position.NewNodeTokenPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.SkippedTokens) } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { @@ -1626,12 +1444,10 @@ unticked_class_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.SkippedTokens) } ; @@ -1645,9 +1461,7 @@ class_entry_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_ABSTRACT T_CLASS { @@ -1659,10 +1473,8 @@ class_entry_type: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) } | T_TRAIT { @@ -1672,9 +1484,7 @@ class_entry_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FINAL T_CLASS { @@ -1686,10 +1496,8 @@ class_entry_type: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) } ; @@ -1697,8 +1505,6 @@ extends_from: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXTENDS fully_qualified_class_name { @@ -1708,9 +1514,7 @@ extends_from: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -1725,8 +1529,6 @@ interface_extends_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXTENDS interface_list { @@ -1736,9 +1538,7 @@ interface_extends_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -1746,8 +1546,6 @@ implements_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IMPLEMENTS interface_list { @@ -1757,9 +1555,7 @@ implements_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -1767,17 +1563,13 @@ interface_list: fully_qualified_class_name { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | interface_list ',' fully_qualified_class_name { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -1785,17 +1577,13 @@ foreach_optional_arg: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_DOUBLE_ARROW foreach_variable { $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($$, token.Key, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Key, $1.SkippedTokens) } ; @@ -1803,8 +1591,6 @@ foreach_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' variable { @@ -1814,9 +1600,7 @@ foreach_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_LIST '(' assignment_list ')' { @@ -1826,11 +1610,9 @@ foreach_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.List, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) } ; @@ -1841,8 +1623,6 @@ for_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOR ';' { @@ -1854,12 +1634,10 @@ for_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1870,8 +1648,6 @@ foreach_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOREACH ';' { @@ -1883,12 +1659,10 @@ foreach_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1900,8 +1674,6 @@ declare_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDDECLARE ';' { @@ -1913,12 +1685,10 @@ declare_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1935,10 +1705,8 @@ declare_list: constant.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(constant, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $2.SkippedTokens) } | declare_list ',' T_STRING '=' static_scalar { @@ -1951,11 +1719,9 @@ declare_list: constant.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.SkippedTokens) } ; @@ -1971,10 +1737,8 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) } | '{' ';' case_list '}' { @@ -1986,11 +1750,9 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) } | ':' case_list T_ENDSWITCH ';' { @@ -2002,12 +1764,10 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } | ':' ';' case_list T_ENDSWITCH ';' { @@ -2020,13 +1780,11 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) } ; @@ -2035,8 +1793,6 @@ case_list: /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | case_list T_CASE expr case_separator inner_statement_list { @@ -2047,11 +1803,9 @@ case_list: _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.Tokens) - yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.SkippedTokens) + yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.SkippedTokens) } | case_list T_DEFAULT case_separator inner_statement_list { @@ -2062,11 +1816,9 @@ case_list: _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.SkippedTokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.SkippedTokens) } ; @@ -2090,8 +1842,6 @@ while_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDWHILE ';' { @@ -2103,12 +1853,10 @@ while_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -2118,8 +1866,6 @@ elseif_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | elseif_list T_ELSEIF parenthesis_expr statement { @@ -2130,9 +1876,7 @@ elseif_list: _elseIf.GetNode().Position = position.NewTokenNodePosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) } ; @@ -2141,8 +1885,6 @@ new_elseif_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { @@ -2157,10 +1899,8 @@ new_elseif_list: _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $4.SkippedTokens) } ; @@ -2169,8 +1909,6 @@ else_single: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELSE statement { @@ -2180,9 +1918,7 @@ else_single: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -2191,8 +1927,6 @@ new_else_single: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELSE ':' inner_statement_list { @@ -2206,10 +1940,8 @@ new_else_single: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $2.SkippedTokens) } ; @@ -2218,14 +1950,10 @@ parameter_list: non_empty_parameter_list { $$ = $1; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2233,17 +1961,13 @@ non_empty_parameter_list: parameter { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_parameter_list ',' parameter { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2256,18 +1980,18 @@ parameter: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) if $3 != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } if $2 != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} @@ -2281,8 +2005,6 @@ parameter: } else { $$.GetNode().Position = position.NewTokenPosition($4) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar { @@ -2292,19 +2014,19 @@ parameter: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.End, $5.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) if $3 != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } if $2 != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} @@ -2318,8 +2040,6 @@ parameter: } else { $$.GetNode().Position = position.NewTokenNodePosition($4, $6) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2328,8 +2048,6 @@ optional_class_type: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ARRAY { @@ -2339,9 +2057,7 @@ optional_class_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_CALLABLE { @@ -2351,15 +2067,11 @@ optional_class_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | fully_qualified_class_name { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2373,10 +2085,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) } | '(' non_empty_function_call_parameter_list ')' { @@ -2386,10 +2096,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | '(' yield_expr ')' { @@ -2401,10 +2109,8 @@ function_call_parameter_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } ; @@ -2413,17 +2119,13 @@ non_empty_function_call_parameter_list: function_call_parameter { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_function_call_parameter_list ',' function_call_parameter { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2437,8 +2139,6 @@ function_call_parameter: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable { @@ -2449,8 +2149,6 @@ function_call_parameter: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' w_variable { @@ -2460,9 +2158,7 @@ function_call_parameter: $$.GetNode().Position = position.NewNodePosition($2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_ELLIPSIS expr { @@ -2472,9 +2168,7 @@ function_call_parameter: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -2484,15 +2178,11 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | global_var { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2508,9 +2198,7 @@ global_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '$' r_variable { @@ -2520,9 +2208,7 @@ global_var: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '$' '{' expr '}' { @@ -2532,11 +2218,9 @@ global_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.Tokens, $3.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.SkippedTokens, $3.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.SkippedTokens...)) } ; @@ -2555,10 +2239,8 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.SkippedTokens) } | static_var_list ',' T_VARIABLE '=' static_scalar { @@ -2573,11 +2255,9 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.SkippedTokens) } | T_VARIABLE { @@ -2592,9 +2272,7 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' static_scalar { @@ -2609,10 +2287,8 @@ static_var_list: staticVar.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.SkippedTokens) } ; @@ -2621,14 +2297,10 @@ class_statement_list: class_statement_list class_statement { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2643,10 +2315,8 @@ class_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | class_constant_declaration ';' { @@ -2656,16 +2326,12 @@ class_statement: $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | trait_use_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { @@ -2683,20 +2349,18 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.SkippedTokens) } if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.SkippedTokens) } ; @@ -2709,9 +2373,7 @@ trait_use_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -2719,17 +2381,13 @@ trait_list: fully_qualified_class_name { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_list ',' fully_qualified_class_name { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2741,10 +2399,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) } | '{' trait_adaptation_list '}' { @@ -2753,10 +2409,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.SkippedTokens) } ; @@ -2764,14 +2418,10 @@ trait_adaptation_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_trait_adaptation_list { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2779,14 +2429,10 @@ non_empty_trait_adaptation_list: trait_adaptation_statement { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_trait_adaptation_list trait_adaptation_statement { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2796,20 +2442,16 @@ trait_adaptation_statement: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | trait_alias ';' { $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } ; @@ -2823,9 +2465,7 @@ trait_precedence: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } ; @@ -2833,17 +2473,13 @@ trait_reference_list: fully_qualified_class_name { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_reference_list ',' fully_qualified_class_name { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2858,15 +2494,11 @@ trait_method_reference: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | trait_method_reference_fully_qualified { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2882,10 +2514,8 @@ trait_method_reference_fully_qualified: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.SkippedTokens) } ; @@ -2901,10 +2531,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) } | trait_method_reference T_AS member_modifier { @@ -2915,9 +2543,7 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } ; @@ -2925,14 +2551,10 @@ trait_modifiers: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | member_modifier { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2945,10 +2567,8 @@ method_body: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) } | '{' inner_statement_list '}' { @@ -2958,10 +2578,8 @@ method_body: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) } ; @@ -2969,8 +2587,6 @@ variable_modifiers: non_empty_member_modifiers { $$ = $1; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VAR { @@ -2981,9 +2597,7 @@ variable_modifiers: modifier.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.SkippedTokens) } ; @@ -2991,14 +2605,10 @@ method_modifiers: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_member_modifiers { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3006,14 +2616,10 @@ non_empty_member_modifiers: member_modifier { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_member_modifiers member_modifier { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3026,9 +2632,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_PROTECTED { @@ -3038,9 +2642,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_PRIVATE { @@ -3050,9 +2652,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_STATIC { @@ -3062,9 +2662,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_ABSTRACT { @@ -3074,9 +2672,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FINAL { @@ -3086,9 +2682,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -3106,10 +2700,8 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.SkippedTokens) } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { @@ -3124,11 +2716,9 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Var, $4.SkippedTokens) } | T_VARIABLE { @@ -3143,9 +2733,7 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(property, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' static_scalar { @@ -3160,10 +2748,8 @@ class_variable_declaration: property.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(property, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(property, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(property, token.Var, $2.SkippedTokens) } ; @@ -3183,11 +2769,9 @@ class_constant_declaration: $1.GetNode().Position = position.NewNodesPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $4.SkippedTokens) } | T_CONST T_STRING '=' static_scalar { @@ -3201,11 +2785,9 @@ class_constant_declaration: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(constant, token.Name, $3.SkippedTokens) } ; @@ -3215,15 +2797,11 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | expr { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3232,14 +2810,10 @@ for_expr: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_for_expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3249,15 +2823,11 @@ non_empty_for_expr: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | expr { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3265,14 +2835,10 @@ chaining_method_or_property: chaining_method_or_property variable_property { $$ = append($1, $2...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_property { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3286,10 +2852,8 @@ chaining_dereference: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | '[' dim_offset ']' { @@ -3300,10 +2864,8 @@ chaining_dereference: fetch.GetNode().Position = position.NewNodePosition($2) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $3.SkippedTokens) } ; @@ -3311,20 +2873,14 @@ chaining_instance_call: chaining_dereference chaining_method_or_property { $$ = append($1, $2...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | chaining_dereference { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | chaining_method_or_property { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3332,14 +2888,10 @@ instance_call: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | chaining_instance_call { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3356,9 +2908,7 @@ new_expr: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -3373,12 +2923,10 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) } | variable '=' expr { @@ -3389,9 +2937,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable '=' '&' variable { @@ -3402,10 +2948,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) } | variable '=' '&' T_NEW class_name_reference ctor_arguments { @@ -3428,11 +2972,9 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(_new, token.Start, $4.SkippedTokens) } | T_CLONE expr { @@ -3442,9 +2984,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | variable T_PLUS_EQUAL expr { @@ -3454,9 +2994,7 @@ expr_without_variable: $$.GetNode().Position = position.NewNodesPosition($1, $3) yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_MINUS_EQUAL expr { @@ -3467,9 +3005,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_MUL_EQUAL expr { @@ -3480,9 +3016,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_POW_EQUAL expr { @@ -3493,9 +3027,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_DIV_EQUAL expr { @@ -3506,9 +3038,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_CONCAT_EQUAL expr { @@ -3519,9 +3049,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_MOD_EQUAL expr { @@ -3532,9 +3060,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_AND_EQUAL expr { @@ -3545,9 +3071,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_OR_EQUAL expr { @@ -3558,9 +3082,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_XOR_EQUAL expr { @@ -3571,9 +3093,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_SL_EQUAL expr { @@ -3584,9 +3104,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_SR_EQUAL expr { @@ -3597,9 +3115,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | rw_variable T_INC { @@ -3610,9 +3126,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | T_INC rw_variable { @@ -3622,9 +3136,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | rw_variable T_DEC { @@ -3635,9 +3147,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | T_DEC rw_variable { @@ -3647,9 +3157,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | expr T_BOOLEAN_OR expr { @@ -3660,9 +3168,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_BOOLEAN_AND expr { @@ -3673,9 +3179,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_LOGICAL_OR expr { @@ -3686,9 +3190,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_LOGICAL_AND expr { @@ -3699,9 +3201,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_LOGICAL_XOR expr { @@ -3712,9 +3212,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '|' expr { @@ -3725,9 +3223,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '&' expr { @@ -3738,9 +3234,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '^' expr { @@ -3751,9 +3245,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '.' expr { @@ -3764,9 +3256,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '+' expr { @@ -3777,9 +3267,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '-' expr { @@ -3790,9 +3278,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '*' expr { @@ -3803,9 +3289,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_POW expr { @@ -3816,9 +3300,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '/' expr { @@ -3829,9 +3311,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '%' expr { @@ -3842,9 +3322,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_SL expr { @@ -3855,9 +3333,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_SR expr { @@ -3868,9 +3344,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | '+' expr %prec T_INC { @@ -3880,9 +3354,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '-' expr %prec T_INC { @@ -3892,9 +3364,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '!' expr { @@ -3904,9 +3374,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '~' expr { @@ -3916,9 +3384,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | expr T_IS_IDENTICAL expr { @@ -3929,9 +3395,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_NOT_IDENTICAL expr { @@ -3942,9 +3406,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_EQUAL expr { @@ -3955,9 +3417,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_NOT_EQUAL expr { @@ -3968,10 +3428,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.Equal, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | expr '<' expr { @@ -3982,9 +3440,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_SMALLER_OR_EQUAL expr { @@ -3995,9 +3451,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '>' expr { @@ -4008,9 +3462,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_GREATER_OR_EQUAL expr { @@ -4021,9 +3473,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_INSTANCEOF class_name_reference { @@ -4034,29 +3484,23 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | parenthesis_expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' new_expr ')' instance_call { $$ = $2 // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) for _, n := range($4) { switch nn := n.(type) { @@ -4079,8 +3523,6 @@ expr_without_variable: // save position $$.GetNode().Position = position.NewNodesPosition($$, n) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' expr ':' expr { @@ -4091,10 +3533,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.SkippedTokens) } | expr '?' ':' expr { @@ -4105,16 +3545,12 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.SkippedTokens) } | internal_functions_in_yacc { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INT_CAST expr { @@ -4124,10 +3560,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_DOUBLE_CAST expr { @@ -4137,10 +3571,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_STRING_CAST expr { @@ -4150,10 +3582,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_ARRAY_CAST expr { @@ -4163,10 +3593,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_OBJECT_CAST expr { @@ -4176,10 +3604,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_BOOL_CAST expr { @@ -4189,10 +3615,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_UNSET_CAST expr { @@ -4202,10 +3626,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_EXIT exit_expr { @@ -4223,9 +3645,7 @@ expr_without_variable: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '@' expr { @@ -4235,27 +3655,19 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | combined_scalar_offset { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | combined_scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '`' backticks_expr '`' { @@ -4265,9 +3677,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_PRINT expr { @@ -4277,9 +3687,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_YIELD { @@ -4289,9 +3697,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { @@ -4301,23 +3707,21 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) // normalize if $6 == nil { yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { @@ -4327,24 +3731,22 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $10) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Static, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Static, $2.SkippedTokens) if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.SkippedTokens) // normalize if $7 == nil { yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4357,9 +3759,7 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_YIELD variable { @@ -4369,9 +3769,7 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { @@ -4381,10 +3779,8 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) } | T_YIELD expr T_DOUBLE_ARROW variable { @@ -4394,10 +3790,8 @@ yield_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) } ; @@ -4410,10 +3804,8 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | combined_scalar_offset '[' dim_offset ']' { @@ -4423,10 +3815,8 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { @@ -4438,11 +3828,9 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition(str, $4) // save comments - yylex.(*Parser).setFreeFloating(str, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(str, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | general_constant '[' dim_offset ']' { @@ -4452,10 +3840,8 @@ combined_scalar_offset: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } ; @@ -4468,11 +3854,9 @@ combined_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) } | '[' array_pair_list ']' { @@ -4482,10 +3866,8 @@ combined_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) } ; @@ -4500,8 +3882,6 @@ lexical_vars: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE '(' lexical_var_list ')' { @@ -4511,11 +3891,9 @@ lexical_vars: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.SkippedTokens) } ; @@ -4531,10 +3909,8 @@ lexical_var_list: variable.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } | lexical_var_list ',' '&' T_VARIABLE { @@ -4549,11 +3925,9 @@ lexical_var_list: reference.GetNode().Position = position.NewTokensPosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) } | T_VARIABLE { @@ -4566,9 +3940,7 @@ lexical_var_list: variable.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | '&' T_VARIABLE { @@ -4583,10 +3955,8 @@ lexical_var_list: reference.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(reference, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } ; @@ -4599,8 +3969,6 @@ function_call: // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodesPosition(name, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { @@ -4612,10 +3980,8 @@ function_call: $$.GetNode().Position = position.NewNodesPosition(funcName, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name function_call_parameter_list { @@ -4627,9 +3993,7 @@ function_call: $$.GetNode().Position = position.NewNodesPosition(funcName, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { @@ -4640,9 +4004,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { @@ -4653,9 +4015,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { @@ -4666,9 +4026,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { @@ -4679,9 +4037,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_without_objects function_call_parameter_list { @@ -4692,8 +4048,6 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4706,9 +4060,7 @@ class_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | namespace_name { @@ -4716,8 +4068,6 @@ class_name: // save position $$.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -4727,10 +4077,8 @@ class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -4740,9 +4088,7 @@ class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -4753,8 +4099,6 @@ fully_qualified_class_name: // save position $$.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -4764,10 +4108,8 @@ fully_qualified_class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -4777,9 +4119,7 @@ fully_qualified_class_name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -4787,14 +4127,10 @@ class_name_reference: class_name { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dynamic_class_name_reference { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4804,7 +4140,7 @@ dynamic_class_name_reference: $$ = $1 // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.SkippedTokens) for _, n := range($3) { switch nn := n.(type) { @@ -4837,14 +4173,10 @@ dynamic_class_name_reference: yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | base_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4853,14 +4185,10 @@ dynamic_class_name_variable_properties: dynamic_class_name_variable_properties dynamic_class_name_variable_property { $$ = append($1, $2...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4871,9 +4199,7 @@ dynamic_class_name_variable_property: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.SkippedTokens) } ; @@ -4881,8 +4207,6 @@ exit_expr: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' ')' { @@ -4892,16 +4216,12 @@ exit_expr: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) } | parenthesis_expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4909,8 +4229,6 @@ backticks_expr: /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ENCAPSED_AND_WHITESPACE { @@ -4919,14 +4237,10 @@ backticks_expr: // save position part.GetNode().Position = position.NewTokenPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_list { $$ = $1; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4934,14 +4248,10 @@ ctor_arguments: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call_parameter_list { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4954,9 +4264,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_DNUMBER { @@ -4966,9 +4274,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_CONSTANT_ENCAPSED_STRING { @@ -4978,9 +4284,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_LINE { @@ -4990,9 +4294,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FILE { @@ -5002,9 +4304,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_DIR { @@ -5014,9 +4314,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_TRAIT_C { @@ -5026,9 +4324,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_METHOD_C { @@ -5038,9 +4334,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FUNC_C { @@ -5050,9 +4344,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NS_C { @@ -5062,9 +4354,7 @@ common_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -5076,9 +4366,7 @@ common_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_START_HEREDOC T_END_HEREDOC { @@ -5088,9 +4376,7 @@ common_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -5106,10 +4392,8 @@ static_class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; @@ -5117,8 +4401,6 @@ static_scalar: static_scalar_value { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5126,14 +4408,10 @@ static_scalar_value: common_scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_class_name_scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name { @@ -5143,8 +4421,6 @@ static_scalar_value: // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodePosition(name) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -5156,10 +4432,8 @@ static_scalar_value: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -5171,9 +4445,7 @@ static_scalar_value: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_ARRAY '(' static_array_pair_list ')' { @@ -5183,11 +4455,9 @@ static_scalar_value: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) } | '[' static_array_pair_list ']' { @@ -5197,16 +4467,12 @@ static_scalar_value: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) } | static_class_constant { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_CLASS_C { @@ -5216,15 +4482,11 @@ static_scalar_value: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | static_operation { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5237,10 +4499,8 @@ static_operation: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | static_scalar_value '+' static_scalar_value { @@ -5251,9 +4511,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '-' static_scalar_value { @@ -5264,9 +4522,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '*' static_scalar_value { @@ -5277,9 +4533,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_POW static_scalar_value { @@ -5290,9 +4544,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '/' static_scalar_value { @@ -5303,9 +4555,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '%' static_scalar_value { @@ -5316,9 +4566,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | '!' static_scalar_value { @@ -5328,9 +4576,7 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '~' static_scalar_value { @@ -5340,9 +4586,7 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | static_scalar_value '|' static_scalar_value { @@ -5353,9 +4597,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '&' static_scalar_value { @@ -5366,9 +4608,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '^' static_scalar_value { @@ -5379,9 +4619,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_SL static_scalar_value { @@ -5392,9 +4630,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_SR static_scalar_value { @@ -5405,9 +4641,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '.' static_scalar_value { @@ -5418,9 +4652,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_LOGICAL_XOR static_scalar_value { @@ -5431,9 +4663,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_LOGICAL_AND static_scalar_value { @@ -5444,9 +4674,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_LOGICAL_OR static_scalar_value { @@ -5457,9 +4685,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_BOOLEAN_AND static_scalar_value { @@ -5470,9 +4696,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_BOOLEAN_OR static_scalar_value { @@ -5483,9 +4707,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_IS_IDENTICAL static_scalar_value { @@ -5496,9 +4718,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { @@ -5509,9 +4729,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_IS_EQUAL static_scalar_value { @@ -5522,9 +4740,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { @@ -5535,10 +4751,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.Equal, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | static_scalar_value '<' static_scalar_value { @@ -5549,9 +4763,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '>' static_scalar_value { @@ -5562,9 +4774,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { @@ -5575,9 +4785,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { @@ -5588,9 +4796,7 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | static_scalar_value '?' ':' static_scalar_value { @@ -5601,10 +4807,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.SkippedTokens) } | static_scalar_value '?' static_scalar_value ':' static_scalar_value { @@ -5615,10 +4819,8 @@ static_operation: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.SkippedTokens) } | '+' static_scalar_value { @@ -5628,9 +4830,7 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '-' static_scalar_value { @@ -5640,19 +4840,15 @@ static_operation: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '(' static_scalar_value ')' { $$ = $2 // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) } ; @@ -5660,8 +4856,6 @@ general_constant: class_constant { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name { @@ -5671,8 +4865,6 @@ general_constant: // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodePosition(name) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -5684,10 +4876,8 @@ general_constant: $$.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -5699,9 +4889,7 @@ general_constant: $$.GetNode().Position = position.NewNodePosition(name) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -5716,27 +4904,19 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | general_constant { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name_scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | common_scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '"' encaps_list '"' { @@ -5746,9 +4926,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_START_HEREDOC encaps_list T_END_HEREDOC { @@ -5758,9 +4936,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_CLASS_C { @@ -5770,9 +4946,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -5780,8 +4954,6 @@ static_array_pair_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_static_array_pair_list possible_comma { @@ -5789,10 +4961,8 @@ static_array_pair_list: // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5817,11 +4987,9 @@ non_empty_static_array_pair_list: arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) } | non_empty_static_array_pair_list ',' static_scalar_value { @@ -5832,10 +5000,8 @@ non_empty_static_array_pair_list: arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { @@ -5847,9 +5013,7 @@ non_empty_static_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.SkippedTokens) } | static_scalar_value { @@ -5861,8 +5025,6 @@ non_empty_static_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5870,14 +5032,10 @@ expr: r_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr_without_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5890,10 +5048,8 @@ parenthesis_expr: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | '(' yield_expr ')' { @@ -5903,10 +5059,8 @@ parenthesis_expr: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } ; @@ -5915,8 +5069,6 @@ r_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5925,8 +5077,6 @@ w_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5934,8 +5084,6 @@ rw_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5950,7 +5098,7 @@ variable: } // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.Tokens) + yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.SkippedTokens) for _, n := range($3) { switch nn := n.(type) { @@ -5995,14 +5143,10 @@ variable: yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | base_variable_with_function_calls { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6010,14 +5154,10 @@ variable_properties: variable_properties variable_property { $$ = append($1, $2...) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6033,9 +5173,7 @@ variable_property: $$ = $2 // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.SkippedTokens) } ; @@ -6049,10 +5187,8 @@ array_method_dereference: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | method '[' dim_offset ']' { @@ -6063,10 +5199,8 @@ array_method_dereference: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } ; @@ -6077,8 +5211,6 @@ method: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6086,20 +5218,14 @@ method_or_not: method { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | array_method_dereference { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6107,8 +5233,6 @@ variable_without_objects: reference_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_indirect_reference reference_variable { @@ -6119,8 +5243,6 @@ variable_without_objects: } $$ = $1.all[0] - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6134,9 +5256,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { @@ -6147,9 +5267,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; @@ -6157,8 +5275,6 @@ variable_class_name: reference_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6171,10 +5287,8 @@ array_function_dereference: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | function_call '[' dim_offset ']' { @@ -6184,10 +5298,8 @@ array_function_dereference: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } ; @@ -6195,20 +5307,14 @@ base_variable_with_function_calls: base_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | array_function_dereference { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_call { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6217,8 +5323,6 @@ base_variable: reference_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | simple_indirect_reference reference_variable { @@ -6229,14 +5333,10 @@ base_variable: } $$ = $1.all[0] - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_member { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6249,10 +5349,8 @@ reference_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | reference_variable '{' expr '}' { @@ -6262,16 +5360,12 @@ reference_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | compound_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6287,9 +5381,7 @@ compound_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '$' '{' expr '}' { @@ -6299,11 +5391,9 @@ compound_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.Tokens, $3.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.SkippedTokens, $3.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.SkippedTokens...)) } ; @@ -6311,14 +5401,10 @@ dim_offset: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6327,8 +5413,6 @@ object_property: object_dim_list { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | variable_without_objects { @@ -6337,8 +5421,6 @@ object_property: // save position fetch.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6352,10 +5434,8 @@ object_dim_list: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | object_dim_list '{' expr '}' { @@ -6366,10 +5446,8 @@ object_dim_list: fetch.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | variable_name { @@ -6378,8 +5456,6 @@ object_dim_list: // save position fetch.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6392,9 +5468,7 @@ variable_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '{' expr '}' { @@ -6404,10 +5478,8 @@ variable_name: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) } ; @@ -6421,9 +5493,7 @@ simple_indirect_reference: n.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(n, token.Start, $1.SkippedTokens) } | simple_indirect_reference '$' { @@ -6438,9 +5508,7 @@ simple_indirect_reference: n.GetNode().Position = position.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(n, token.Start, $2.SkippedTokens) } ; @@ -6454,9 +5522,7 @@ assignment_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | assignment_list_element { @@ -6465,8 +5531,6 @@ assignment_list: } else { $$ = []ast.Vertex{$1} } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6481,8 +5545,6 @@ assignment_list_element: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_LIST '(' assignment_list ')' { @@ -6494,17 +5556,13 @@ assignment_list_element: $$.GetNode().Position = position.NewNodePosition(listNode) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) } | /* empty */ { $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6513,8 +5571,6 @@ array_pair_list: /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list possible_comma { @@ -6526,10 +5582,8 @@ array_pair_list: // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -6543,11 +5597,9 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) } | non_empty_array_pair_list ',' expr { @@ -6558,10 +5610,8 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW expr { @@ -6573,9 +5623,7 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.SkippedTokens) } | expr { @@ -6587,8 +5635,6 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { @@ -6601,12 +5647,10 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewNodesPosition($3, $6) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $5.SkippedTokens) } | non_empty_array_pair_list ',' '&' w_variable { @@ -6619,10 +5663,8 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewTokenNodePosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.SkippedTokens) } | expr T_DOUBLE_ARROW '&' w_variable { @@ -6636,10 +5678,8 @@ non_empty_array_pair_list: // save comments yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.SkippedTokens) } | '&' w_variable { @@ -6652,9 +5692,7 @@ non_empty_array_pair_list: arrayItem.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.SkippedTokens) } ; @@ -6662,8 +5700,6 @@ encaps_list: encaps_list encaps_var { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_list T_ENCAPSED_AND_WHITESPACE { @@ -6674,15 +5710,11 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.SkippedTokens) } | encaps_var { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ENCAPSED_AND_WHITESPACE encaps_var { @@ -6693,9 +5725,7 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.SkippedTokens) } ; @@ -6710,9 +5740,7 @@ encaps_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '[' encaps_var_offset ']' { @@ -6726,10 +5754,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { @@ -6745,10 +5771,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { @@ -6760,10 +5784,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { @@ -6777,10 +5799,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { @@ -6794,22 +5814,18 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setToken(variable, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(variable, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.SkippedTokens) } | T_CURLY_OPEN variable '}' { $$ = $2; // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } ; @@ -6822,9 +5838,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NUM_STRING { @@ -6839,9 +5853,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE { @@ -6853,9 +5865,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -6868,11 +5878,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $4.SkippedTokens) } | T_EMPTY '(' variable ')' { @@ -6884,11 +5892,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_EMPTY '(' expr ')' { @@ -6900,11 +5906,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_INCLUDE expr { @@ -6914,9 +5918,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_INCLUDE_ONCE expr { @@ -6926,9 +5928,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_EVAL '(' expr ')' { @@ -6940,11 +5940,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_REQUIRE expr { @@ -6954,9 +5952,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_REQUIRE_ONCE expr { @@ -6966,9 +5962,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -6976,17 +5970,13 @@ isset_variables: isset_variable { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | isset_variables ',' isset_variable { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -6994,14 +5984,10 @@ isset_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr_without_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -7017,10 +6003,8 @@ class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { @@ -7033,10 +6017,8 @@ class_constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; @@ -7052,10 +6034,8 @@ static_class_name_scalar: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; @@ -7071,10 +6051,8 @@ class_name_scalar: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; diff --git a/internal/php5/php5_bench_test.go b/internal/php5/php5_bench_test.go index 49efe90..3cbd675 100644 --- a/internal/php5/php5_bench_test.go +++ b/internal/php5/php5_bench_test.go @@ -414,7 +414,7 @@ CAD; ` for n := 0; n < b.N; n++ { - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() } diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index b1a1ada..051917b 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -22212,11 +22212,12 @@ func TestPhp5(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22351,11 +22352,12 @@ func TestPhp5Strings(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22579,11 +22581,12 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", false, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22606,7 +22609,7 @@ func TestPhp5ControlCharsErrors(t *testing.T) { parserErrors = append(parserErrors, e) } - lexer := scanner.NewLexer([]byte(src), "5.6", false, errorHandlerFunc) + lexer := scanner.NewLexer([]byte(src), "5.6", errorHandlerFunc) php5parser := php5.NewParser(lexer, errorHandlerFunc) php5parser.Parse() assert.DeepEqual(t, expected, parserErrors) diff --git a/internal/php7/parser.go b/internal/php7/parser.go index a910f9c..32f3fa5 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -12,7 +12,7 @@ import ( // Parser structure type Parser struct { Lexer *scanner.Lexer - currentToken *scanner.Token + currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) } @@ -39,8 +39,7 @@ func (p *Parser) Error(msg string) { return } - var pos = p.currentToken.Position - p.errHandlerFunc(errors.NewError(msg, &pos)) + p.errHandlerFunc(errors.NewError(msg, p.currentToken.Position)) } // Parse the php7 Parser entrypoint @@ -82,7 +81,7 @@ func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { delete(src.GetNode().Tokens, token.Start) } -func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []token.Token) { +func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []*token.Token) { if len(tokens) == 0 { return } @@ -98,7 +97,7 @@ func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []to } } -func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []token.Token) { +func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []*token.Token) { if len(tokens) == 0 { return } @@ -108,14 +107,14 @@ func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, token *dstCollection = make(token.Collection) } - (*dstCollection)[pos] = make([]token.Token, 0) + (*dstCollection)[pos] = make([]*token.Token, 0) for _, v := range tokens { (*dstCollection)[pos] = append((*dstCollection)[pos], v) } } -func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []token.Token) { +func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []*token.Token) { if len(tokens) == 0 { return } @@ -141,7 +140,7 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. } if semiColon[0].Value[0] == ';' { - p.setFreeFloatingTokens(prevNode, token.SemiColon, []token.Token{ + p.setFreeFloatingTokens(prevNode, token.SemiColon, []*token.Token{ { ID: token.ID(';'), Value: semiColon[0].Value[0:1], @@ -155,28 +154,18 @@ func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast. tlen = 3 } - phpCloseTag := []token.Token{} + phpCloseTag := []*token.Token{} if vlen-tlen > 1 { - phpCloseTag = append(phpCloseTag, token.Token{ + phpCloseTag = append(phpCloseTag, &token.Token{ ID: token.T_WHITESPACE, Value: semiColon[0].Value[1 : vlen-tlen], }) } - phpCloseTag = append(phpCloseTag, token.Token{ + phpCloseTag = append(phpCloseTag, &token.Token{ ID: T_CLOSE_TAG, Value: semiColon[0].Value[vlen-tlen:], }) p.setFreeFloatingTokens(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) } - -func (p *Parser) returnTokenToPool(yyDollar []yySymType, yyVAL *yySymType) { - for i := 1; i < len(yyDollar); i++ { - if yyDollar[i].token != nil { - p.Lexer.ReturnTokenToPool(yyDollar[i].token) - } - yyDollar[i].token = nil - } - yyVAL.token = nil -} diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 9ef81b7..d909c98 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -60,11 +60,12 @@ func TestIdentifier(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -955,11 +956,12 @@ func TestPhp7ArgumentNode(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1809,11 +1811,12 @@ func TestPhp7ParameterNode(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1832,11 +1835,12 @@ func TestCommentEndFile(t *testing.T) { Stmts: []ast.Vertex{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1911,11 +1915,12 @@ func TestName(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -1988,11 +1993,12 @@ func TestFullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2065,11 +2071,12 @@ func TestRelative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2145,11 +2152,12 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2223,11 +2231,12 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2312,11 +2321,12 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2411,11 +2421,12 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2521,11 +2532,12 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2599,11 +2611,12 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2698,11 +2711,12 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2807,11 +2821,12 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2900,11 +2915,12 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2993,11 +3009,12 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3054,11 +3071,12 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3101,11 +3119,12 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3162,11 +3181,12 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3208,11 +3228,12 @@ func TestScalarMagicConstant(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3253,11 +3274,12 @@ func TestScalarNumber_LNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3298,11 +3320,12 @@ func TestScalarNumber_DNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3343,11 +3366,12 @@ func TestScalarNumber_Float(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3388,11 +3412,12 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3433,11 +3458,12 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3478,11 +3504,12 @@ func TestScalarNumber_HLNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3523,11 +3550,12 @@ func TestScalarNumber_HDNumber(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3568,11 +3596,12 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3613,11 +3642,12 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3660,11 +3690,12 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3705,11 +3736,12 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3752,11 +3784,12 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3823,11 +3856,12 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -3937,11 +3971,12 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4028,11 +4063,12 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4207,11 +4243,12 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4343,11 +4380,12 @@ func TestStmtClassConstList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4466,11 +4504,12 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4546,11 +4585,12 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4696,11 +4736,12 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4823,11 +4864,12 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -4939,11 +4981,12 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5067,11 +5110,12 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5113,11 +5157,12 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5172,11 +5217,12 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5264,11 +5310,12 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5358,11 +5405,12 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5475,11 +5523,12 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5631,11 +5680,12 @@ func TestStmtClass_AnonimousClass(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5731,11 +5781,12 @@ func TestStmtConstList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5798,11 +5849,12 @@ func TestStmtContinue_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5876,11 +5928,12 @@ func TestStmtContinue_Light(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -5954,11 +6007,12 @@ func TestStmtContinue(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6032,11 +6086,12 @@ func TestStmtDeclare(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6143,11 +6198,12 @@ func TestStmtDeclare_Stmts(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6223,11 +6279,12 @@ func TestStmtDeclare_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6279,11 +6336,12 @@ func TestStmtDo(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6347,11 +6405,12 @@ func TestStmtEcho(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6404,11 +6463,12 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6449,11 +6509,12 @@ func TestStmtExpression(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6646,11 +6707,12 @@ func TestStmtFor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6768,11 +6830,12 @@ func TestStmtFor_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6855,11 +6918,12 @@ func TestStmtForeach(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6932,11 +6996,12 @@ func TestStmtForeach_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7019,11 +7084,12 @@ func TestStmtForeach_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7127,11 +7193,12 @@ func TestStmtForeach_WithKey(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7225,11 +7292,12 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7343,11 +7411,12 @@ func TestStmtForeach_WithRef(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7473,11 +7542,12 @@ func TestStmtForeach_WithList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7520,11 +7590,12 @@ func TestStmtFunction(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7578,11 +7649,12 @@ func TestStmtFunction_Return(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7743,11 +7815,12 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7812,11 +7885,12 @@ func TestStmtFunction_Ref(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7882,11 +7956,12 @@ func TestStmtFunction_ReturnType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7939,11 +8014,12 @@ func TestStmtGlobal(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8101,11 +8177,12 @@ func TestStmtGlobal_Vars(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8167,11 +8244,12 @@ func TestStmtGotoLabel(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8201,11 +8279,12 @@ func TestStmtHaltCompiler(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8267,11 +8346,12 @@ func TestStmtIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8377,11 +8457,12 @@ func TestStmtIf_ElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8464,11 +8545,12 @@ func TestStmtIf_Else(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8637,11 +8719,12 @@ func TestStmtIf_ElseElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8820,11 +8903,12 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8865,11 +8949,12 @@ func TestStmtInlineHtml(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8911,11 +8996,12 @@ func TestStmtInterface(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8992,11 +9078,12 @@ func TestStmtInterface_Extend(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9096,11 +9183,12 @@ func TestStmtInterface_Extends(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9153,11 +9241,12 @@ func TestStmtNamespace(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9211,11 +9300,12 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9246,11 +9336,12 @@ func TestStmtNamespace_Anonymous(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9349,11 +9440,12 @@ func TestStmtProperty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9505,11 +9597,12 @@ func TestStmtProperty_Properties(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9661,11 +9754,12 @@ func TestStmtProperty_Properties2(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9787,11 +9881,12 @@ func TestStmtProperty_PropertyType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9854,11 +9949,12 @@ func TestStmtStaticVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -9963,11 +10059,12 @@ func TestStmtStaticVar_Vars(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10072,11 +10169,12 @@ func TestStmtStaticVar_Vars2(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10200,11 +10298,12 @@ func TestStmtSwitch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10328,11 +10427,12 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10446,11 +10546,12 @@ func TestStmtSwitch_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10552,11 +10653,12 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10607,11 +10709,12 @@ func TestStmtThrow(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10653,11 +10756,12 @@ func TestStmtTrait(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10745,11 +10849,12 @@ func TestStmtTraitUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10860,11 +10965,12 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -10975,11 +11081,12 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11134,11 +11241,12 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11304,11 +11412,12 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11588,11 +11697,12 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11626,11 +11736,12 @@ func TestStmtTry_Try(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11722,11 +11833,12 @@ func TestStmtTry_TryCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11841,11 +11953,12 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -11994,11 +12107,12 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12101,11 +12215,12 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12309,11 +12424,12 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12366,11 +12482,12 @@ func TestStmtUnset(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12444,11 +12561,12 @@ func TestStmtUnset_Vars(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12522,11 +12640,12 @@ func TestStmtUnset_TrailingComma(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12601,11 +12720,12 @@ func TestStmtUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12680,11 +12800,12 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12770,11 +12891,12 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -12882,11 +13004,12 @@ func TestStmtUse_List(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13005,11 +13128,12 @@ func TestStmtUse_ListAlias(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13138,11 +13262,12 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13293,11 +13418,12 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13427,11 +13553,12 @@ func TestStmtUse_ListConstType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13582,11 +13709,12 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13727,11 +13855,12 @@ func TestStmtUse_GroupUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13883,11 +14012,12 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14049,11 +14179,12 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14215,11 +14346,12 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14402,11 +14534,12 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14469,11 +14602,12 @@ func TestStmtBreak_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14547,11 +14681,12 @@ func TestStmtBreak_Light(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14625,11 +14760,12 @@ func TestStmtBreak(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14703,11 +14839,12 @@ func TestExprArrayDimFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14800,11 +14937,12 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14845,11 +14983,12 @@ func TestExprArray(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14912,11 +15051,12 @@ func TestExprArray_Item(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15032,11 +15172,12 @@ func TestExprArray_Items(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15110,11 +15251,12 @@ func TestExprArray_ItemUnpack(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15177,11 +15319,12 @@ func TestExprArrowFunction(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15267,11 +15410,12 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15332,11 +15476,12 @@ func TestExprBitwiseNot(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15397,11 +15542,12 @@ func TestExprBooleanNot(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15475,11 +15621,12 @@ func TestExprClassConstFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15541,11 +15688,12 @@ func TestExprClassConstFetch_Static(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15606,11 +15754,12 @@ func TestExprClone_Brackets(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15671,11 +15820,12 @@ func TestExprClone(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15718,11 +15868,12 @@ func TestExprClosure(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15893,11 +16044,12 @@ func TestExprClosure_Use(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16068,11 +16220,12 @@ func TestExprClosure_Use2(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16138,11 +16291,12 @@ func TestExprClosure_ReturnType(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16205,11 +16359,12 @@ func TestExprConstFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16272,11 +16427,12 @@ func TestExprConstFetch_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16339,11 +16495,12 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16404,11 +16561,12 @@ func TestExprEmpty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16469,11 +16627,12 @@ func TestExprErrorSuppress(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16534,11 +16693,12 @@ func TestExprEval(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16579,11 +16739,12 @@ func TestExprExit(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16624,11 +16785,12 @@ func TestExprExit_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16690,11 +16852,12 @@ func TestExprExit_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16735,11 +16898,12 @@ func TestExprDie(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16780,11 +16944,12 @@ func TestExprDie_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16846,11 +17011,12 @@ func TestExprDie_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16923,11 +17089,12 @@ func TestExprFunctionCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17000,11 +17167,12 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17102,11 +17270,12 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17222,11 +17391,12 @@ func TestExprFunctionCall_Var(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17355,11 +17525,12 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17420,11 +17591,12 @@ func TestExprPostDec(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17485,11 +17657,12 @@ func TestExprPostInc(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17550,11 +17723,12 @@ func TestExprPreDec(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17615,11 +17789,12 @@ func TestExprPreInc(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17680,11 +17855,12 @@ func TestExprInclude(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17745,11 +17921,12 @@ func TestExprInclude_Once(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17810,11 +17987,12 @@ func TestExprRequire(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17875,11 +18053,12 @@ func TestExprRequire_Once(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17963,11 +18142,12 @@ func TestExprInstanceOf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18051,11 +18231,12 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18139,11 +18320,12 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18206,11 +18388,12 @@ func TestExprIsset(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18294,11 +18477,12 @@ func TestExprIsset_Variables(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18370,11 +18554,12 @@ func TestExprList_Empty(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18478,11 +18663,12 @@ func TestExprList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18596,11 +18782,12 @@ func TestExprList_ArrayIndex(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18726,11 +18913,12 @@ func TestExprList_List(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18835,11 +19023,12 @@ func TestExprList_EmptyItem(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18946,11 +19135,12 @@ func TestExprList_EmptyItems(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19032,11 +19222,12 @@ func TestExprMethodCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19099,11 +19290,12 @@ func TestExprNew(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19176,11 +19368,12 @@ func TestExprNew_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19253,11 +19446,12 @@ func TestExprNew_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19386,11 +19580,12 @@ func TestExprNew_Anonymous(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19451,11 +19646,12 @@ func TestExprPrint(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19527,11 +19723,12 @@ func TestExprPropertyFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19646,11 +19843,12 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19724,11 +19922,12 @@ func TestExprShellExec(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19769,11 +19968,12 @@ func TestExprShortArray(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19836,11 +20036,12 @@ func TestExprShortArray_Item(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19956,11 +20157,12 @@ func TestExprShortArray_Items(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20064,11 +20266,12 @@ func TestExprShortList(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20182,11 +20385,12 @@ func TestExprShortList_ArrayIndex(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20312,11 +20516,12 @@ func TestExprShortList_List(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20400,11 +20605,12 @@ func TestExprStaticCall(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20488,11 +20694,12 @@ func TestExprStaticCall_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20576,11 +20783,12 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20674,11 +20882,12 @@ func TestExprStaticCall_Var(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20770,11 +20979,12 @@ func TestExprStaticCall_VarVar(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20858,11 +21068,12 @@ func TestExprStaticPropertyFetch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -20946,11 +21157,12 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21034,11 +21246,12 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21141,11 +21354,12 @@ func TestExprTernary(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21227,11 +21441,12 @@ func TestExprTernary_Simple(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21386,11 +21601,12 @@ func TestExprTernary_NestedTrue(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21545,11 +21761,12 @@ func TestExprTernary_NestedCond(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21610,11 +21827,12 @@ func TestExprUnaryMinus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21675,11 +21893,12 @@ func TestExprUnaryPlus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21730,11 +21949,12 @@ func TestExprVariable(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21795,11 +22015,12 @@ func TestExprVariable_Variable(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21839,11 +22060,12 @@ func TestExprYield(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21904,11 +22126,12 @@ func TestExprYield_Val(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21990,11 +22213,12 @@ func TestExprYield_KeyVal(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22045,11 +22269,12 @@ func TestExprYield_Expr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22121,11 +22346,12 @@ func TestExprYield_KeyExpr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22186,11 +22412,12 @@ func TestExprYieldFrom(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22274,11 +22501,12 @@ func TestExprAssign_Assign(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22360,11 +22588,12 @@ func TestExprAssign_Reference(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22458,11 +22687,12 @@ func TestExprAssign_ReferenceNew(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22601,11 +22831,12 @@ func TestExprAssign_ReferenceArgs(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22687,11 +22918,12 @@ func TestExprAssign_BitwiseAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22773,11 +23005,12 @@ func TestExprAssign_BitwiseOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22859,11 +23092,12 @@ func TestExprAssign_BitwiseXor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22945,11 +23179,12 @@ func TestExprAssign_Concat(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23031,11 +23266,12 @@ func TestExprAssign_Div(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23117,11 +23353,12 @@ func TestExprAssign_Minus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23203,11 +23440,12 @@ func TestExprAssign_Mod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23289,11 +23527,12 @@ func TestExprAssign_Mul(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23375,11 +23614,12 @@ func TestExprAssign_Plus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23461,11 +23701,12 @@ func TestExprAssign_Pow(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23547,11 +23788,12 @@ func TestExprAssign_ShiftLeft(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23633,11 +23875,12 @@ func TestExprAssign_ShiftRight(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23719,11 +23962,12 @@ func TestExprAssign_Coalesce(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23807,11 +24051,12 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23893,11 +24138,12 @@ func TestExprBinary_BitwiseOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -23979,11 +24225,12 @@ func TestExprBinary_BitwiseXor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24065,11 +24312,12 @@ func TestExprBinary_BooleanAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24151,11 +24399,12 @@ func TestExprBinary_BooleanOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24237,11 +24486,12 @@ func TestExprBinary_Coalesce(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24323,11 +24573,12 @@ func TestExprBinary_Concat(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24409,11 +24660,12 @@ func TestExprBinary_Div(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24495,11 +24747,12 @@ func TestExprBinary_Equal(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24581,11 +24834,12 @@ func TestExprBinary_GreaterOrEqual(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24667,11 +24921,12 @@ func TestExprBinary_Greater(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24753,11 +25008,12 @@ func TestExprBinary_Identical(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24839,11 +25095,12 @@ func TestExprBinary_LogicalAnd(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -24925,11 +25182,12 @@ func TestExprBinary_LogicalOr(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25011,11 +25269,12 @@ func TestExprBinary_LogicalXor(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25097,11 +25356,12 @@ func TestExprBinary_Minus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25183,11 +25443,12 @@ func TestExprBinary_Mod(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25269,11 +25530,12 @@ func TestExprBinary_Mul(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25355,11 +25617,12 @@ func TestExprBinary_NotEqual(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25441,11 +25704,12 @@ func TestExprBinary_NotIdentical(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25527,11 +25791,12 @@ func TestExprBinary_Plus(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25613,11 +25878,12 @@ func TestExprBinary_Pow(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25699,11 +25965,12 @@ func TestExprBinary_ShiftLeft(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25785,11 +26052,12 @@ func TestExprBinary_ShiftRight(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25871,11 +26139,12 @@ func TestExprBinary_SmallerOrEqual(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -25957,11 +26226,12 @@ func TestExprBinary_Smaller(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26043,11 +26313,12 @@ func TestExprBinary_Spaceship(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26110,11 +26381,12 @@ func TestExprCast_Array(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26175,11 +26447,12 @@ func TestExprCast_Bool(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26240,11 +26513,12 @@ func TestExprCast_BoolShort(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26305,11 +26579,12 @@ func TestExprCast_Double(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26370,11 +26645,12 @@ func TestExprCast_CastFloat(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26435,11 +26711,12 @@ func TestExprCast_Int(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26500,11 +26777,12 @@ func TestExprCast_IntShort(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26565,11 +26843,12 @@ func TestExprCast_Object(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26630,11 +26909,12 @@ func TestExprCast_String(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26695,11 +26975,12 @@ func TestExprCast_BinaryString(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -26760,10 +27041,11 @@ func TestExprCast_Unset(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 89954b6..7ed02ea 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -12,16 +12,16 @@ import ( "strconv" "github.com/z7zmey/php-parser/internal/position" - "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php7/php7.y:16 +// line internal/php7/php7.y:15 type yySymType struct { yys int node ast.Vertex - token *scanner.Token + token *token.Token + tkn *token.Token list []ast.Vertex ClassExtends *ast.StmtClassExtends @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5653 +// line internal/php7/php7.y:4838 // line yacctab:1 var yyExca = [...]int{ @@ -2113,482 +2113,480 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 +// line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} // save position yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:326 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:330 +// line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:337 +// line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2598,20 +2596,16 @@ yydefault: if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:350 +// line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:359 +// line internal/php7/php7.y:352 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2620,13 +2614,11 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.SkippedTokens) } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:372 +// line internal/php7/php7.y:363 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2635,25 +2627,21 @@ yydefault: namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.SkippedTokens) } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:389 +// line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} // save position yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:398 +// line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -2661,14 +2649,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:411 +// line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -2676,62 +2662,48 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:426 +// line internal/php7/php7.y:409 { // error yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:433 +// line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:439 +// line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:445 +// line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:451 +// line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:457 +// line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:463 +// line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2739,14 +2711,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:476 +// line internal/php7/php7.y:445 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2756,16 +2726,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:493 +// line internal/php7/php7.y:460 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2775,16 +2743,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.SkippedTokens) } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:510 +// line internal/php7/php7.y:475 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2792,15 +2758,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:524 +// line internal/php7/php7.y:487 { yyVAL.node = &ast.StmtUse{ast.Node{}, yyDollar[2].node} @@ -2808,14 +2772,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:537 +// line internal/php7/php7.y:498 { useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, yyDollar[3].node} yyVAL.node = &ast.StmtUse{ast.Node{}, useType} @@ -2825,14 +2787,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:552 +// line internal/php7/php7.y:511 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtUse{ast.Node{}, useList} @@ -2842,14 +2802,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:567 +// line internal/php7/php7.y:524 { useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, useList} @@ -2861,14 +2819,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:584 +// line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2876,15 +2832,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:601 +// line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2892,13 +2846,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:613 +// line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2906,13 +2858,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:628 +// line internal/php7/php7.y:577 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} @@ -2929,17 +2879,15 @@ yydefault: // save comments if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.SkippedTokens) } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:653 +// line internal/php7/php7.y:600 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} @@ -2957,19 +2905,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.SkippedTokens) } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:684 +// line internal/php7/php7.y:629 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} @@ -2986,17 +2932,15 @@ yydefault: // save comments if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.SkippedTokens) } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:709 +// line internal/php7/php7.y:652 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} @@ -3014,107 +2958,89 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.SkippedTokens) } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:740 +// line internal/php7/php7.y:681 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:744 +// line internal/php7/php7.y:685 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:751 +// line internal/php7/php7.y:692 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:760 +// line internal/php7/php7.y:699 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:769 +// line internal/php7/php7.y:706 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:778 +// line internal/php7/php7.y:713 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:787 +// line internal/php7/php7.y:720 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:796 +// line internal/php7/php7.y:727 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:805 +// line internal/php7/php7.y:734 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:811 +// line internal/php7/php7.y:738 { yyVAL.node = &ast.StmtUseType{ast.Node{}, yyDollar[1].node, yyDollar[2].node} // save position yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:823 +// line internal/php7/php7.y:748 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} @@ -3122,12 +3048,10 @@ yydefault: // save position name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:834 +// line internal/php7/php7.y:757 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} @@ -3141,22 +3065,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:856 +// line internal/php7/php7.y:777 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:862 +// line internal/php7/php7.y:781 { yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, yyDollar[2].node} @@ -3165,32 +3085,26 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:878 +// line internal/php7/php7.y:795 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:887 +// line internal/php7/php7.y:802 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:896 +// line internal/php7/php7.y:809 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3200,69 +3114,53 @@ yydefault: if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:909 +// line internal/php7/php7.y:820 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:918 +// line internal/php7/php7.y:827 { // error yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:925 +// line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:931 +// line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:937 +// line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:943 +// line internal/php7/php7.y:844 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:949 +// line internal/php7/php7.y:848 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:955 +// line internal/php7/php7.y:852 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3270,14 +3168,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.Tokens, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:970 +// line internal/php7/php7.y:865 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3285,30 +3181,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:983 +// line internal/php7/php7.y:876 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:989 +// line internal/php7/php7.y:880 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:995 +// line internal/php7/php7.y:884 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3326,15 +3216,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1019 +// line internal/php7/php7.y:906 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[5].node} yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} @@ -3344,17 +3232,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append(yyDollar[6].token.Tokens, yyDollar[7].token.Tokens...)) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[7].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append(yyDollar[6].token.SkippedTokens, yyDollar[7].token.SkippedTokens...)) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[7].token.SkippedTokens) } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1037 +// line internal/php7/php7.y:922 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3373,17 +3259,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.SkippedTokens) } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1064 +// line internal/php7/php7.y:947 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3403,15 +3287,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1090 +// line internal/php7/php7.y:971 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3419,15 +3301,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1104 +// line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3435,15 +3315,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1118 +// line internal/php7/php7.y:995 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3451,15 +3329,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1132 +// line internal/php7/php7.y:1007 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3467,15 +3343,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1146 +// line internal/php7/php7.y:1019 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3483,15 +3357,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1160 +// line internal/php7/php7.y:1031 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3499,16 +3371,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1175 +// line internal/php7/php7.y:1044 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3516,13 +3386,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1187 +// line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3531,14 +3399,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1201 +// line internal/php7/php7.y:1066 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3546,21 +3412,19 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.SkippedTokens) if yyDollar[4].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, yyDollar[5].token.Tokens...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.SkippedTokens, yyDollar[5].token.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.SkippedTokens) } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1221 +// line internal/php7/php7.y:1084 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3577,16 +3441,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.SkippedTokens) } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1246 +// line internal/php7/php7.y:1106 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3605,17 +3467,15 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.SkippedTokens) } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1273 +// line internal/php7/php7.y:1131 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3624,15 +3484,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.SkippedTokens) } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1288 +// line internal/php7/php7.y:1144 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3640,14 +3498,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1301 +// line internal/php7/php7.y:1155 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3658,15 +3514,13 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1318 +// line internal/php7/php7.y:1170 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3674,15 +3528,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1332 +// line internal/php7/php7.y:1182 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3692,16 +3544,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1349 +// line internal/php7/php7.y:1197 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3711,22 +3561,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.SkippedTokens) } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1366 +// line internal/php7/php7.y:1212 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1372 +// line internal/php7/php7.y:1216 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3739,45 +3585,37 @@ yydefault: catch.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.SkippedTokens) } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1396 +// line internal/php7/php7.y:1238 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1402 +// line internal/php7/php7.y:1242 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1414 +// line internal/php7/php7.y:1252 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1420 +// line internal/php7/php7.y:1256 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3785,42 +3623,34 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1437 +// line internal/php7/php7.y:1271 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1443 +// line internal/php7/php7.y:1275 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1455 +// line internal/php7/php7.y:1285 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1464 +// line internal/php7/php7.y:1292 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3830,53 +3660,51 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.SkippedTokens) // normalize if yyDollar[8].node == nil { yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1497 +// line internal/php7/php7.y:1323 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1501 +// line internal/php7/php7.y:1327 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1508 +// line internal/php7/php7.y:1334 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1512 +// line internal/php7/php7.y:1338 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1519 +// line internal/php7/php7.y:1345 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3887,16 +3715,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1537 +// line internal/php7/php7.y:1361 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3906,32 +3732,26 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.SkippedTokens) } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1557 +// line internal/php7/php7.y:1379 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1563 +// line internal/php7/php7.y:1383 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1572 +// line internal/php7/php7.y:1390 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3939,13 +3759,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1584 +// line internal/php7/php7.y:1400 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3953,13 +3771,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1599 +// line internal/php7/php7.y:1413 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3969,16 +3785,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.SkippedTokens) } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1619 +// line internal/php7/php7.y:1431 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3988,24 +3802,20 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.SkippedTokens) } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1639 +// line internal/php7/php7.y:1449 { yyVAL.ClassExtends = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1645 +// line internal/php7/php7.y:1453 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -4013,21 +3823,17 @@ yydefault: yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.SkippedTokens) } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1660 +// line internal/php7/php7.y:1466 { yyVAL.InterfaceExtends = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1666 +// line internal/php7/php7.y:1470 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -4035,21 +3841,17 @@ yydefault: yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.SkippedTokens) } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1681 +// line internal/php7/php7.y:1483 { yyVAL.ClassImplements = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1687 +// line internal/php7/php7.y:1487 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -4057,21 +3859,17 @@ yydefault: yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.SkippedTokens) } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1702 +// line internal/php7/php7.y:1500 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1708 +// line internal/php7/php7.y:1504 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -4079,13 +3877,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1720 +// line internal/php7/php7.y:1514 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -4093,15 +3889,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1734 +// line internal/php7/php7.y:1526 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -4109,25 +3903,21 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save commentsc - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1750 +// line internal/php7/php7.y:1540 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1759 +// line internal/php7/php7.y:1547 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -4137,27 +3927,23 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1779 +// line internal/php7/php7.y:1565 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1788 +// line internal/php7/php7.y:1572 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -4167,27 +3953,23 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1808 +// line internal/php7/php7.y:1590 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1817 +// line internal/php7/php7.y:1597 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -4197,16 +3979,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1837 +// line internal/php7/php7.y:1615 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4216,14 +3996,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1852 +// line internal/php7/php7.y:1628 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4233,15 +4011,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1868 +// line internal/php7/php7.y:1642 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4251,16 +4027,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1885 +// line internal/php7/php7.y:1657 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4271,25 +4045,21 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1907 +// line internal/php7/php7.y:1677 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1913 +// line internal/php7/php7.y:1681 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4298,15 +4068,13 @@ yydefault: _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.Tokens)) - yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.SkippedTokens)) + yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.SkippedTokens) } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1928 +// line internal/php7/php7.y:1694 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4315,38 +4083,34 @@ yydefault: _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.Tokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.SkippedTokens) } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1946 +// line internal/php7/php7.y:1710 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1950 +// line internal/php7/php7.y:1714 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1957 +// line internal/php7/php7.y:1721 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} // save position yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1966 +// line internal/php7/php7.y:1728 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4356,16 +4120,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1986 +// line internal/php7/php7.y:1746 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} @@ -4375,15 +4137,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2002 +// line internal/php7/php7.y:1760 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} @@ -4397,23 +4157,19 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.SkippedTokens) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2025 +// line internal/php7/php7.y:1781 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2031 +// line internal/php7/php7.y:1785 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4425,13 +4181,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.SkippedTokens) } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2050 +// line internal/php7/php7.y:1802 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} @@ -4445,16 +4199,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[5].token.SkippedTokens) } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:2071 +// line internal/php7/php7.y:1821 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} @@ -4471,16 +4223,14 @@ yydefault: _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[6].token.SkippedTokens) } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2098 +// line internal/php7/php7.y:1846 { yyVAL.node = yyDollar[1].node @@ -4490,17 +4240,15 @@ yydefault: // save comments altif := yyVAL.node.(*ast.StmtAltIf) if len(altif.ElseIf) > 0 { - yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) + yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append(yyDollar[2].token.SkippedTokens, yyDollar[3].token.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append(yyDollar[2].token.Tokens, yyDollar[3].token.Tokens...)) + yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append(yyDollar[2].token.SkippedTokens, yyDollar[3].token.SkippedTokens...)) } - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2116 +// line internal/php7/php7.y:1862 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4516,51 +4264,41 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[5].token.Tokens, yyDollar[6].token.Tokens...)) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[5].token.SkippedTokens, yyDollar[6].token.SkippedTokens...)) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.SkippedTokens) } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2142 +// line internal/php7/php7.y:1886 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2148 +// line internal/php7/php7.y:1890 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2157 +// line internal/php7/php7.y:1897 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2163 +// line internal/php7/php7.y:1901 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2175 +// line internal/php7/php7.y:1911 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4568,18 +4306,18 @@ yydefault: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) if yyDollar[3].token != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } if yyDollar[2].token != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, nil} @@ -4593,12 +4331,10 @@ yydefault: } else { yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2211 +// line internal/php7/php7.y:1945 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4606,19 +4342,19 @@ yydefault: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.SkippedTokens) if yyDollar[3].token != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } if yyDollar[2].token != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, yyDollar[6].node} @@ -4632,36 +4368,28 @@ yydefault: } else { yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2251 +// line internal/php7/php7.y:1983 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2257 +// line internal/php7/php7.y:1987 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2266 +// line internal/php7/php7.y:1994 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2272 +// line internal/php7/php7.y:1998 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4669,13 +4397,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2287 +// line internal/php7/php7.y:2011 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4683,13 +4409,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2299 +// line internal/php7/php7.y:2021 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4697,40 +4421,32 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2311 +// line internal/php7/php7.y:2031 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2320 +// line internal/php7/php7.y:2038 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2326 +// line internal/php7/php7.y:2042 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2338 +// line internal/php7/php7.y:2052 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4738,14 +4454,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.SkippedTokens) } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2351 +// line internal/php7/php7.y:2063 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4753,37 +4467,31 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[3].token.Tokens, yyDollar[4].token.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2371 +// line internal/php7/php7.y:2081 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2377 +// line internal/php7/php7.y:2085 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2389 +// line internal/php7/php7.y:2095 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4792,12 +4500,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2401 +// line internal/php7/php7.y:2105 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4805,59 +4511,47 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2416 +// line internal/php7/php7.y:2118 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2425 +// line internal/php7/php7.y:2125 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2434 +// line internal/php7/php7.y:2132 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2443 +// line internal/php7/php7.y:2139 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2452 +// line internal/php7/php7.y:2146 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2461 +// line internal/php7/php7.y:2153 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4869,13 +4563,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2477 +// line internal/php7/php7.y:2167 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4887,30 +4579,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2497 +// line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2503 +// line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2512 +// line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4919,14 +4605,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2526 +// line internal/php7/php7.y:2208 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4936,18 +4620,16 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2545 +// line internal/php7/php7.y:2225 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4955,13 +4637,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2557 +// line internal/php7/php7.y:2235 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4977,125 +4657,105 @@ yydefault: // save comments if len(yyDollar[1].list) > 0 { yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.SkippedTokens) } if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.SkippedTokens) } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2591 +// line internal/php7/php7.y:2267 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2597 +// line internal/php7/php7.y:2271 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2609 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ast.Node{}} yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2622 +// line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.SkippedTokens) } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2634 +// line internal/php7/php7.y:2301 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.SkippedTokens) } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2649 +// line internal/php7/php7.y:2314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2655 +// line internal/php7/php7.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2664 +// line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2674 +// line internal/php7/php7.y:2333 { yyVAL.node = yyDollar[1].node // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2687 +// line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -5104,13 +4764,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2703 +// line internal/php7/php7.y:2358 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5121,14 +4779,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2719 +// line internal/php7/php7.y:2372 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -5139,14 +4795,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2735 +// line internal/php7/php7.y:2386 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -5157,14 +4811,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2751 +// line internal/php7/php7.y:2400 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -5173,13 +4825,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2767 +// line internal/php7/php7.y:2414 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -5189,21 +4839,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2781 +// line internal/php7/php7.y:2426 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2790 +// line internal/php7/php7.y:2433 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -5214,14 +4860,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.SkippedTokens) } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2809 +// line internal/php7/php7.y:2450 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -5229,14 +4873,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2822 +// line internal/php7/php7.y:2461 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -5244,22 +4886,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2838 +// line internal/php7/php7.y:2475 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2844 +// line internal/php7/php7.y:2479 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -5268,45 +4906,35 @@ yydefault: modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.SkippedTokens) } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2860 +// line internal/php7/php7.y:2493 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2866 +// line internal/php7/php7.y:2497 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2504 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2881 +// line internal/php7/php7.y:2508 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2890 +// line internal/php7/php7.y:2515 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5314,13 +4942,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2902 +// line internal/php7/php7.y:2525 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5328,13 +4954,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2914 +// line internal/php7/php7.y:2535 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5342,13 +4966,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2926 +// line internal/php7/php7.y:2545 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5356,13 +4978,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2938 +// line internal/php7/php7.y:2555 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5370,13 +4990,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2950 +// line internal/php7/php7.y:2565 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5384,32 +5002,26 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2965 +// line internal/php7/php7.y:2578 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2974 +// line internal/php7/php7.y:2585 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2983 +// line internal/php7/php7.y:2592 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5421,13 +5033,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2999 +// line internal/php7/php7.y:2606 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5439,33 +5049,27 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3019 +// line internal/php7/php7.y:2624 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3028 +// line internal/php7/php7.y:2631 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3037 +// line internal/php7/php7.y:2638 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5475,14 +5079,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3055 +// line internal/php7/php7.y:2654 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5492,76 +5094,60 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3073 +// line internal/php7/php7.y:2670 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3082 +// line internal/php7/php7.y:2677 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3091 +// line internal/php7/php7.y:2684 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3100 +// line internal/php7/php7.y:2691 { yyVAL.list = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3106 +// line internal/php7/php7.y:2695 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3115 +// line internal/php7/php7.y:2702 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3124 +// line internal/php7/php7.y:2709 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:3133 +// line internal/php7/php7.y:2716 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5573,15 +5159,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.SkippedTokens) } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3154 +// line internal/php7/php7.y:2735 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5592,13 +5176,11 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3169 +// line internal/php7/php7.y:2748 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5606,13 +5188,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3184 +// line internal/php7/php7.y:2761 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5622,16 +5202,14 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3201 +// line internal/php7/php7.y:2776 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5641,15 +5219,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.SkippedTokens) } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3217 +// line internal/php7/php7.y:2790 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5658,13 +5234,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3230 +// line internal/php7/php7.y:2801 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5673,14 +5247,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3244 +// line internal/php7/php7.y:2813 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5688,13 +5260,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3256 +// line internal/php7/php7.y:2823 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,13 +5273,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3269 +// line internal/php7/php7.y:2834 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5718,13 +5286,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3282 +// line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5733,13 +5299,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3295 +// line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5748,13 +5312,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3308 +// line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5763,13 +5325,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3321 +// line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,13 +5338,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3334 +// line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,13 +5351,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3347 +// line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,13 +5364,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3360 +// line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5823,13 +5377,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3373 +// line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5838,13 +5390,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3386 +// line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5853,13 +5403,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3399 +// line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5868,13 +5416,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3412 +// line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5883,13 +5429,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3425 +// line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5898,13 +5442,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3438 +// line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5912,13 +5454,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3450 +// line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5927,13 +5467,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3463 +// line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5941,13 +5479,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3475 +// line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5956,13 +5492,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3488 +// line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5971,13 +5505,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3501 +// line internal/php7/php7.y:3030 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5986,13 +5518,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3514 +// line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6001,13 +5531,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3527 +// line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6016,13 +5544,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3540 +// line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6031,13 +5557,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3553 +// line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6046,13 +5570,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3566 +// line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6061,13 +5583,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3579 +// line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6076,13 +5596,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3592 +// line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6091,13 +5609,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3605 +// line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6106,13 +5622,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3618 +// line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6121,13 +5635,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3631 +// line internal/php7/php7.y:3140 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6136,13 +5648,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3644 +// line internal/php7/php7.y:3151 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6151,13 +5661,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3657 +// line internal/php7/php7.y:3162 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6166,13 +5674,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3670 +// line internal/php7/php7.y:3173 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6181,13 +5687,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3683 +// line internal/php7/php7.y:3184 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6196,13 +5700,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3696 +// line internal/php7/php7.y:3195 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -6210,13 +5712,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3708 +// line internal/php7/php7.y:3205 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -6224,13 +5724,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3720 +// line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -6238,13 +5736,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3732 +// line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -6252,13 +5748,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3744 +// line internal/php7/php7.y:3235 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6267,13 +5761,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3757 +// line internal/php7/php7.y:3246 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6282,13 +5774,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3770 +// line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6297,13 +5787,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3783 +// line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6312,14 +5800,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3797 +// line internal/php7/php7.y:3280 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6328,13 +5814,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3810 +// line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6343,13 +5827,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3823 +// line internal/php7/php7.y:3302 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6358,13 +5840,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3836 +// line internal/php7/php7.y:3313 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6373,13 +5853,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3849 +// line internal/php7/php7.y:3324 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6388,13 +5866,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3862 +// line internal/php7/php7.y:3335 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6403,13 +5879,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3875 +// line internal/php7/php7.y:3346 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6417,22 +5891,18 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3888 +// line internal/php7/php7.y:3357 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3894 +// line internal/php7/php7.y:3361 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6441,14 +5911,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.SkippedTokens) } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3908 +// line internal/php7/php7.y:3373 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6457,14 +5925,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.SkippedTokens) } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3922 +// line internal/php7/php7.y:3385 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6473,21 +5939,17 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3935 +// line internal/php7/php7.y:3396 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3941 +// line internal/php7/php7.y:3400 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6495,14 +5957,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3954 +// line internal/php7/php7.y:3411 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6510,14 +5970,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3967 +// line internal/php7/php7.y:3422 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6525,14 +5983,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3980 +// line internal/php7/php7.y:3433 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6540,14 +5996,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3993 +// line internal/php7/php7.y:3444 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6555,14 +6009,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4006 +// line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6570,14 +6022,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4019 +// line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6585,14 +6035,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4032 +// line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6608,13 +6056,11 @@ yydefault: } // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4052 +// line internal/php7/php7.y:3495 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6622,21 +6068,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4064 +// line internal/php7/php7.y:3505 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4070 +// line internal/php7/php7.y:3509 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6644,13 +6086,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4082 +// line internal/php7/php7.y:3519 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6658,13 +6098,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4094 +// line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6672,13 +6110,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4106 +// line internal/php7/php7.y:3539 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6686,13 +6122,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4118 +// line internal/php7/php7.y:3549 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6700,14 +6134,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4131 +// line internal/php7/php7.y:3560 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6715,21 +6147,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4143 +// line internal/php7/php7.y:3570 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4149 +// line internal/php7/php7.y:3574 { yyVAL.node = yyDollar[2].node @@ -6746,13 +6174,11 @@ yydefault: // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Static, yyVAL.node.GetNode().Tokens[token.Start]) delete(yyVAL.node.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:4172 +// line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6760,16 +6186,16 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.SkippedTokens) // normalize if yyDollar[8].node == nil { @@ -6780,12 +6206,10 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVarList]) delete(yyVAL.node.GetNode().Tokens, token.LexicalVarList) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:4201 +// line internal/php7/php7.y:3622 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6793,47 +6217,43 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.SkippedTokens) // normalize if yyDollar[6].node == nil { yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) delete(yyVAL.node.GetNode().Tokens, token.ReturnType) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4233 +// line internal/php7/php7.y:3652 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4237 +// line internal/php7/php7.y:3656 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4244 +// line internal/php7/php7.y:3663 { yyVAL.ClosureUse = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4250 +// line internal/php7/php7.y:3667 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6841,34 +6261,28 @@ yydefault: yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.SkippedTokens) } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4267 +// line internal/php7/php7.y:3682 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4276 +// line internal/php7/php7.y:3689 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4285 +// line internal/php7/php7.y:3696 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6878,13 +6292,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4299 +// line internal/php7/php7.y:3708 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6896,14 +6308,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4319 +// line internal/php7/php7.y:3726 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6912,12 +6322,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4331 +// line internal/php7/php7.y:3736 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6926,13 +6334,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4344 +// line internal/php7/php7.y:3747 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6941,13 +6347,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4357 +// line internal/php7/php7.y:3758 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6956,12 +6360,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4372 +// line internal/php7/php7.y:3771 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6969,45 +6371,35 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4384 +// line internal/php7/php7.y:3781 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4393 +// line internal/php7/php7.y:3788 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4399 +// line internal/php7/php7.y:3792 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4408 +// line internal/php7/php7.y:3799 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4414 +// line internal/php7/php7.y:3803 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7015,58 +6407,46 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4430 +// line internal/php7/php7.y:3817 { yyVAL.list = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4436 +// line internal/php7/php7.y:3821 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} // save position part.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4446 +// line internal/php7/php7.y:3829 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4455 +// line internal/php7/php7.y:3836 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4461 +// line internal/php7/php7.y:3840 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4470 +// line internal/php7/php7.y:3847 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7074,15 +6454,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4484 +// line internal/php7/php7.y:3859 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7090,14 +6468,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4497 +// line internal/php7/php7.y:3870 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7105,13 +6481,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4512 +// line internal/php7/php7.y:3883 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7119,13 +6493,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4524 +// line internal/php7/php7.y:3893 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -7133,13 +6505,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4536 +// line internal/php7/php7.y:3903 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7147,13 +6517,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4548 +// line internal/php7/php7.y:3913 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7161,13 +6529,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4560 +// line internal/php7/php7.y:3923 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7175,13 +6541,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4572 +// line internal/php7/php7.y:3933 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7189,13 +6553,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4584 +// line internal/php7/php7.y:3943 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7203,13 +6565,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4596 +// line internal/php7/php7.y:3953 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7217,13 +6577,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4608 +// line internal/php7/php7.y:3963 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7231,13 +6589,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4620 +// line internal/php7/php7.y:3973 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7245,13 +6601,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4632 +// line internal/php7/php7.y:3983 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7261,13 +6615,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4646 +// line internal/php7/php7.y:3995 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7275,13 +6627,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4658 +// line internal/php7/php7.y:4005 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7289,13 +6639,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4670 +// line internal/php7/php7.y:4015 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7303,29 +6651,23 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4682 +// line internal/php7/php7.y:4025 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4688 +// line internal/php7/php7.y:4029 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4697 +// line internal/php7/php7.y:4036 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -7334,12 +6676,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4709 +// line internal/php7/php7.y:4046 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7350,14 +6690,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4725 +// line internal/php7/php7.y:4060 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -7368,62 +6706,48 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4744 +// line internal/php7/php7.y:4077 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4750 +// line internal/php7/php7.y:4081 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4759 +// line internal/php7/php7.y:4088 { yyVAL.node = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4765 +// line internal/php7/php7.y:4092 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4774 +// line internal/php7/php7.y:4099 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4783 +// line internal/php7/php7.y:4106 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4789 +// line internal/php7/php7.y:4110 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7431,30 +6755,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4802 +// line internal/php7/php7.y:4121 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4811 +// line internal/php7/php7.y:4128 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4817 +// line internal/php7/php7.y:4132 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7462,30 +6780,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4830 +// line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4839 +// line internal/php7/php7.y:4150 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4845 +// line internal/php7/php7.y:4154 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7493,14 +6805,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4858 +// line internal/php7/php7.y:4165 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7508,14 +6818,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4871 +// line internal/php7/php7.y:4176 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7523,14 +6831,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4884 +// line internal/php7/php7.y:4187 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -7539,37 +6845,29 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4897 +// line internal/php7/php7.y:4198 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4906 +// line internal/php7/php7.y:4205 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4912 +// line internal/php7/php7.y:4209 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4918 +// line internal/php7/php7.y:4213 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7578,13 +6876,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4934 +// line internal/php7/php7.y:4227 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7594,13 +6890,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4948 +// line internal/php7/php7.y:4239 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7608,15 +6902,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.Tokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.SkippedTokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.SkippedTokens...)) } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4962 +// line internal/php7/php7.y:4251 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7624,13 +6916,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4977 +// line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7639,13 +6929,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4990 +// line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7654,21 +6942,17 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5006 +// line internal/php7/php7.y:4289 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5012 +// line internal/php7/php7.y:4293 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7676,14 +6960,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5025 +// line internal/php7/php7.y:4304 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7691,14 +6973,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5038 +// line internal/php7/php7.y:4315 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7707,13 +6987,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5051 +// line internal/php7/php7.y:4326 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7722,13 +7000,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5064 +// line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7737,13 +7013,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5080 +// line internal/php7/php7.y:4351 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7751,33 +7025,27 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5092 +// line internal/php7/php7.y:4361 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5102 +// line internal/php7/php7.y:4369 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5111 +// line internal/php7/php7.y:4376 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7785,57 +7053,45 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5123 +// line internal/php7/php7.y:4386 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.Tokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5133 +// line internal/php7/php7.y:4394 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5142 +// line internal/php7/php7.y:4401 { yyVAL.list = yyDollar[1].list - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:5151 +// line internal/php7/php7.y:4408 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5157 +// line internal/php7/php7.y:4412 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5166 +// line internal/php7/php7.y:4419 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7844,25 +7100,21 @@ yydefault: yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5179 +// line internal/php7/php7.y:4430 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} } else { yyVAL.list = []ast.Vertex{yyDollar[1].node} } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5192 +// line internal/php7/php7.y:4441 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7871,13 +7123,11 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5205 +// line internal/php7/php7.y:4452 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7886,12 +7136,10 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5217 +// line internal/php7/php7.y:4462 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7902,14 +7150,12 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.SkippedTokens) } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5233 +// line internal/php7/php7.y:4476 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7919,13 +7165,11 @@ yydefault: reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5247 +// line internal/php7/php7.y:4488 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7933,13 +7177,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5259 +// line internal/php7/php7.y:4498 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7951,16 +7193,14 @@ yydefault: // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.SkippedTokens) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5278 +// line internal/php7/php7.y:4515 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7971,23 +7211,19 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5298 +// line internal/php7/php7.y:4533 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5304 +// line internal/php7/php7.y:4537 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7996,21 +7232,17 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.SkippedTokens) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5317 +// line internal/php7/php7.y:4548 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5323 +// line internal/php7/php7.y:4552 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8019,13 +7251,11 @@ yydefault: encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.SkippedTokens) } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5339 +// line internal/php7/php7.y:4566 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8035,13 +7265,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5353 +// line internal/php7/php7.y:4578 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8053,14 +7281,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5370 +// line internal/php7/php7.y:4593 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8074,14 +7300,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.SkippedTokens) } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5389 +// line internal/php7/php7.y:4610 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8091,14 +7315,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5404 +// line internal/php7/php7.y:4623 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8110,14 +7332,12 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:5421 +// line internal/php7/php7.y:4638 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8129,28 +7349,24 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments - yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.SkippedTokens) } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5440 +// line internal/php7/php7.y:4655 { yyVAL.node = yyDollar[2].node // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5453 +// line internal/php7/php7.y:4666 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8158,13 +7374,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5465 +// line internal/php7/php7.y:4676 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8177,13 +7391,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5482 +// line internal/php7/php7.y:4691 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -8205,13 +7417,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5508 +// line internal/php7/php7.y:4715 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8221,13 +7431,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:5525 +// line internal/php7/php7.y:4730 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8235,19 +7443,17 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.SkippedTokens) if yyDollar[4].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.Tokens) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.Tokens, yyDollar[5].token.Tokens...)) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.SkippedTokens, yyDollar[5].token.SkippedTokens...)) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5543 +// line internal/php7/php7.y:4746 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8257,15 +7463,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5559 +// line internal/php7/php7.y:4760 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8273,13 +7477,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5571 +// line internal/php7/php7.y:4770 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8287,13 +7489,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:5583 +// line internal/php7/php7.y:4780 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -8303,15 +7503,13 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5599 +// line internal/php7/php7.y:4794 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8319,13 +7517,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:5611 +// line internal/php7/php7.y:4804 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8333,36 +7529,28 @@ yydefault: yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5626 +// line internal/php7/php7.y:4817 { yyVAL.list = []ast.Vertex{yyDollar[1].node} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5632 +// line internal/php7/php7.y:4821 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5644 +// line internal/php7/php7.y:4831 { yyVAL.node = yyDollar[1].node - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } } goto yystack /* stack new state and value */ diff --git a/internal/php7/php7.y b/internal/php7/php7.y index d43148c..23503c6 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -5,17 +5,17 @@ import ( "bytes" "strconv" - "github.com/z7zmey/php-parser/internal/position" - "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/internal/position" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" ) %} %union{ node ast.Vertex - token *scanner.Token + token *token.Token + tkn *token.Token list []ast.Vertex ClassExtends *ast.StmtClassExtends @@ -24,7 +24,6 @@ import ( ClosureUse *ast.ExprClosureUse } -%type $unk %token T_INCLUDE %token T_INCLUDE_ONCE %token T_EXIT @@ -297,9 +296,7 @@ start: // save position yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) } ; @@ -343,14 +340,10 @@ top_statement_list: if $2 != nil { $$ = append($1, $2) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -364,9 +357,7 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.SkippedTokens) } | namespace_name T_NS_SEPARATOR T_STRING { @@ -377,10 +368,8 @@ namespace_name: namePart.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.SkippedTokens) } ; @@ -391,8 +380,6 @@ name: // save position $$.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { @@ -402,10 +389,8 @@ name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name { @@ -415,9 +400,7 @@ name: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -426,38 +409,26 @@ top_statement: { // error $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | interface_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_HALT_COMPILER '(' ')' ';' { @@ -467,10 +438,8 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) } | T_NAMESPACE namespace_name ';' { @@ -482,12 +451,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_NAMESPACE namespace_name '{' top_statement_list '}' { @@ -499,12 +466,10 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.SkippedTokens) } | T_NAMESPACE '{' top_statement_list '}' { @@ -514,11 +479,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) } | T_USE mixed_group_use_declaration ';' { @@ -528,10 +491,8 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | T_USE use_type group_use_declaration ';' { @@ -543,10 +504,8 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) } | T_USE use_declarations ';' { @@ -558,10 +517,8 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | T_USE use_type use_declarations ';' { @@ -575,10 +532,8 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) } | T_CONST const_list ';' { @@ -588,11 +543,9 @@ top_statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } ; @@ -605,9 +558,7 @@ use_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_CONST { @@ -617,9 +568,7 @@ use_type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -641,13 +590,11 @@ group_use_declaration: // save comments if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { @@ -667,15 +614,13 @@ group_use_declaration: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.SkippedTokens) if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.SkippedTokens) } ; @@ -697,13 +642,11 @@ mixed_group_use_declaration: // save comments if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { @@ -723,15 +666,13 @@ mixed_group_use_declaration: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.SkippedTokens) if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.Tokens) + yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.SkippedTokens) } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.Tokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.Tokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.SkippedTokens) + yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.SkippedTokens) } ; @@ -752,15 +693,11 @@ inline_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | inline_use_declaration { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -770,15 +707,11 @@ unprefixed_use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | unprefixed_use_declaration { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -788,15 +721,11 @@ use_declarations: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | use_declaration { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -804,8 +733,6 @@ inline_use_declaration: unprefixed_use_declaration { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | use_type unprefixed_use_declaration { @@ -813,8 +740,6 @@ inline_use_declaration: // save position $$.GetNode().Position = position.NewNodesPosition($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -827,8 +752,6 @@ unprefixed_use_declaration: // save position name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodePosition(name) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | namespace_name T_AS T_STRING { @@ -844,10 +767,8 @@ unprefixed_use_declaration: $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } ; @@ -855,8 +776,6 @@ use_declaration: unprefixed_use_declaration { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_NS_SEPARATOR unprefixed_use_declaration { @@ -867,9 +786,7 @@ use_declaration: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -879,15 +796,11 @@ const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | const_decl { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -902,14 +815,10 @@ inner_statement_list: if $2 != nil { $$ = append($1, $2) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -918,38 +827,26 @@ inner_statement: { // error $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | function_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | interface_declaration_statement { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_HALT_COMPILER '(' ')' ';' { @@ -959,10 +856,8 @@ inner_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.Tokens, append($3.Tokens, $4.Tokens...)...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) } statement: @@ -974,22 +869,16 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) } | if_stmt { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | alt_if_stmt { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_WHILE '(' expr ')' while_statement { @@ -1009,11 +898,9 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_DO statement T_WHILE '(' expr ')' ';' { @@ -1025,13 +912,11 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $4.Tokens) - yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append($6.Tokens, $7.Tokens...)) - yylex.(*Parser).setToken($$, token.SemiColon, $7.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append($6.SkippedTokens, $7.SkippedTokens...)) + yylex.(*Parser).setToken($$, token.SemiColon, $7.SkippedTokens) } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement { @@ -1052,13 +937,11 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.For, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.For, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.SkippedTokens) } | T_SWITCH '(' expr ')' switch_case_list { @@ -1080,11 +963,9 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_BREAK optional_expr ';' { @@ -1094,11 +975,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_CONTINUE optional_expr ';' { @@ -1108,11 +987,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_RETURN optional_expr ';' { @@ -1122,11 +999,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_GLOBAL global_var_list ';' { @@ -1136,11 +1011,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_STATIC static_var_list ';' { @@ -1150,11 +1023,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_ECHO echo_expr_list ';' { @@ -1164,12 +1035,10 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Echo, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Echo, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_INLINE_HTML { @@ -1179,9 +1048,7 @@ statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | expr ';' { @@ -1192,10 +1059,8 @@ statement: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | T_UNSET '(' unset_variables possible_comma ')' ';' { @@ -1205,17 +1070,15 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Unset, $2.SkippedTokens) if $4 != nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, $5.Tokens...)) + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.SkippedTokens, $5.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $6.SkippedTokens) } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement { @@ -1234,13 +1097,10 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $6.Tokens) - - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $6.SkippedTokens) } | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement { @@ -1261,13 +1121,11 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Key, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Key, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $8.SkippedTokens) } | T_DECLARE '(' const_list ')' declare_statement { @@ -1278,11 +1136,9 @@ statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Declare, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.SkippedTokens) } | ';' { @@ -1292,10 +1148,8 @@ statement: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { @@ -1308,11 +1162,9 @@ statement: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Try, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) } | T_THROW expr ';' { @@ -1322,11 +1174,9 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_GOTO T_STRING ';' { @@ -1338,12 +1188,10 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(label, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $3.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_STRING ':' { @@ -1355,18 +1203,14 @@ statement: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Label, $2.SkippedTokens) } catch_list: /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' { @@ -1381,31 +1225,25 @@ catch_list: catch.GetNode().Position = position.NewTokensPosition($2, $9) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $5.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Var, $6.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.Tokens) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(catch, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Var, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.SkippedTokens) + yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.SkippedTokens) } ; catch_name_list: name { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | catch_name_list '|' name { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -1413,8 +1251,6 @@ finally_statement: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FINALLY '{' inner_statement_list '}' { @@ -1424,11 +1260,9 @@ finally_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Finally, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) } ; @@ -1436,17 +1270,13 @@ unset_variables: unset_variable { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | unset_variables ',' unset_variable { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -1454,8 +1284,6 @@ unset_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1471,24 +1299,22 @@ function_declaration_statement: // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.SkippedTokens) // normalize if $8 == nil { yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1526,12 +1352,10 @@ class_declaration_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $7.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $7.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { @@ -1543,12 +1367,10 @@ class_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.SkippedTokens) } ; @@ -1556,14 +1378,10 @@ class_modifiers: class_modifier { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_modifiers class_modifier { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -1576,9 +1394,7 @@ class_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FINAL { @@ -1588,9 +1404,7 @@ class_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -1605,12 +1419,10 @@ trait_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.SkippedTokens) } ; @@ -1625,12 +1437,10 @@ interface_declaration_statement: $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.SkippedTokens) } ; @@ -1638,8 +1448,6 @@ extends_from: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXTENDS name { @@ -1649,9 +1457,7 @@ extends_from: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -1659,8 +1465,6 @@ interface_extends_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EXTENDS name_list { @@ -1670,9 +1474,7 @@ interface_extends_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -1680,8 +1482,6 @@ implements_list: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_IMPLEMENTS name_list { @@ -1691,9 +1491,7 @@ implements_list: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -1701,8 +1499,6 @@ foreach_variable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '&' variable { @@ -1712,9 +1508,7 @@ foreach_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_LIST '(' array_pair_list ')' { @@ -1724,11 +1518,9 @@ foreach_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.List, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) } | '[' array_pair_list ']' { @@ -1738,10 +1530,8 @@ foreach_variable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save commentsc - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) } ; @@ -1752,8 +1542,6 @@ for_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOR ';' { @@ -1765,12 +1553,10 @@ for_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1781,8 +1567,6 @@ foreach_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDFOREACH ';' { @@ -1794,12 +1578,10 @@ foreach_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1810,8 +1592,6 @@ declare_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDDECLARE ';' { @@ -1823,12 +1603,10 @@ declare_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1843,10 +1621,8 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) } | '{' ';' case_list '}' { @@ -1858,11 +1634,9 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) } | ':' case_list T_ENDSWITCH ';' { @@ -1874,12 +1648,10 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } | ':' ';' case_list T_ENDSWITCH ';' { @@ -1892,13 +1664,11 @@ switch_case_list: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.Tokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) } ; @@ -1906,8 +1676,6 @@ case_list: /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | case_list T_CASE expr case_separator inner_statement_list { @@ -1918,11 +1686,9 @@ case_list: _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.Tokens)) - yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_case, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.SkippedTokens)) + yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.SkippedTokens) } | case_list T_DEFAULT case_separator inner_statement_list { @@ -1933,11 +1699,9 @@ case_list: _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.Tokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_default, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(_default, token.Default, $3.SkippedTokens) + yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.SkippedTokens) } ; @@ -1959,8 +1723,6 @@ while_statement: // save position $$.GetNode().Position = position.NewNodePosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' inner_statement_list T_ENDWHILE ';' { @@ -1972,12 +1734,10 @@ while_statement: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1992,11 +1752,9 @@ if_stmt_without_else: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | if_stmt_without_else T_ELSEIF '(' expr ')' statement { @@ -2012,11 +1770,9 @@ if_stmt_without_else: $$.GetNode().Position = position.NewNodesPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.SkippedTokens) } ; @@ -2024,8 +1780,6 @@ if_stmt: if_stmt_without_else %prec T_NOELSE { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | if_stmt_without_else T_ELSE statement { @@ -2039,9 +1793,7 @@ if_stmt: $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.SkippedTokens) } ; @@ -2060,12 +1812,10 @@ alt_if_stmt_without_else: $$.GetNode().Position = position.NewTokenNodeListPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $5.SkippedTokens) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { @@ -2084,12 +1834,10 @@ alt_if_stmt_without_else: _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $7) // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $6.SkippedTokens) } ; @@ -2104,13 +1852,11 @@ alt_if_stmt: // save comments altif := $$.(*ast.StmtAltIf) if len(altif.ElseIf) > 0 { - yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append($2.Tokens, $3.Tokens...)) + yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append($2.SkippedTokens, $3.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append($2.Tokens, $3.Tokens...)) + yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append($2.SkippedTokens, $3.SkippedTokens...)) } - yylex.(*Parser).setToken($$, token.SemiColon, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { @@ -2128,12 +1874,10 @@ alt_if_stmt: $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($5.Tokens, $6.Tokens...)) - yylex.(*Parser).setToken($$, token.SemiColon, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(_else, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($5.SkippedTokens, $6.SkippedTokens...)) + yylex.(*Parser).setToken($$, token.SemiColon, $6.SkippedTokens) } ; @@ -2141,14 +1885,10 @@ parameter_list: non_empty_parameter_list { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2156,17 +1896,13 @@ non_empty_parameter_list: parameter { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_parameter_list ',' parameter { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2179,18 +1915,18 @@ parameter: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) if $3 != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } if $2 != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} @@ -2204,8 +1940,6 @@ parameter: } else { $$.GetNode().Position = position.NewTokenPosition($4) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | optional_type is_reference is_variadic T_VARIABLE '=' expr { @@ -2215,19 +1949,19 @@ parameter: var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.End, $5.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) if $3 != nil { variable = &ast.Variadic{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } if $2 != nil { variable = &ast.Reference{ast.Node{}, variable} variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} @@ -2241,8 +1975,6 @@ parameter: } else { $$.GetNode().Position = position.NewTokenNodePosition($4, $6) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2250,14 +1982,10 @@ optional_type: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | type_expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2265,8 +1993,6 @@ type_expr: type { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '?' type { @@ -2276,9 +2002,7 @@ type_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -2291,9 +2015,7 @@ type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_CALLABLE { @@ -2303,15 +2025,11 @@ type: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | name { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2319,17 +2037,13 @@ return_type: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | ':' type_expr { $$ = $2; // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) } ; @@ -2342,10 +2056,8 @@ argument_list: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) } | '(' non_empty_argument_list possible_comma ')' { @@ -2355,14 +2067,12 @@ argument_list: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) if $3 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($3.Tokens, $4.Tokens...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($3.SkippedTokens, $4.SkippedTokens...)) } else { - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.Tokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2370,17 +2080,13 @@ non_empty_argument_list: argument { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_argument_list ',' argument { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2394,8 +2100,6 @@ argument: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ELLIPSIS expr { @@ -2405,9 +2109,7 @@ argument: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -2417,15 +2119,11 @@ global_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | global_var { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2433,8 +2131,6 @@ global_var: simple_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2444,15 +2140,11 @@ static_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | static_var { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2469,9 +2161,7 @@ static_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' expr { @@ -2485,10 +2175,8 @@ static_var: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } ; @@ -2496,14 +2184,10 @@ class_statement_list: class_statement_list class_statement { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2517,10 +2201,8 @@ class_statement: // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } | method_modifiers T_CONST class_const_list ';' { @@ -2532,14 +2214,12 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } | T_USE name_list trait_adaptations { @@ -2549,9 +2229,7 @@ class_statement: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { @@ -2569,20 +2247,18 @@ class_statement: // save comments if len($1) > 0 { yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $2.SkippedTokens) } if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.SkippedTokens) } ; @@ -2590,17 +2266,13 @@ name_list: name { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | name_list ',' name { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2612,11 +2284,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) - - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) } | '{' '}' { @@ -2625,10 +2294,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.SkippedTokens) } | '{' trait_adaptation_list '}' { @@ -2637,10 +2304,8 @@ trait_adaptations: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.SkippedTokens) } ; @@ -2648,14 +2313,10 @@ trait_adaptation_list: trait_adaptation { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | trait_adaptation_list trait_adaptation { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2665,20 +2326,16 @@ trait_adaptation: $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.NameList, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | trait_alias ';' { $$ = $1; // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Alias, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } ; @@ -2692,9 +2349,7 @@ trait_precedence: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } ; @@ -2710,10 +2365,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } | trait_method_reference T_AS reserved_non_modifiers { @@ -2726,10 +2379,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } | trait_method_reference T_AS member_modifier identifier { @@ -2742,10 +2393,8 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) } | trait_method_reference T_AS member_modifier { @@ -2756,9 +2405,7 @@ trait_alias: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } ; @@ -2773,15 +2420,11 @@ trait_method_reference: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | absolute_trait_method_reference { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2797,10 +2440,8 @@ absolute_trait_method_reference: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $2.SkippedTokens) } ; @@ -2813,10 +2454,8 @@ method_body: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) } | '{' inner_statement_list '}' { @@ -2826,10 +2465,8 @@ method_body: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) } ; @@ -2837,8 +2474,6 @@ variable_modifiers: non_empty_member_modifiers { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_VAR { @@ -2849,9 +2484,7 @@ variable_modifiers: modifier.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.SkippedTokens) } ; @@ -2859,14 +2492,10 @@ method_modifiers: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_member_modifiers { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2874,14 +2503,10 @@ non_empty_member_modifiers: member_modifier { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_member_modifiers member_modifier { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2894,9 +2519,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_PROTECTED { @@ -2906,9 +2529,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_PRIVATE { @@ -2918,9 +2539,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_STATIC { @@ -2930,9 +2549,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_ABSTRACT { @@ -2942,9 +2559,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FINAL { @@ -2954,9 +2569,7 @@ member_modifier: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -2966,15 +2579,11 @@ property_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | property { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -2991,9 +2600,7 @@ property: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' expr backup_doc_comment { @@ -3007,10 +2614,8 @@ property: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } ; @@ -3020,15 +2625,11 @@ class_const_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | class_const_decl { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3043,10 +2644,8 @@ class_const_decl: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; @@ -3061,10 +2660,8 @@ const_decl: $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; @@ -3074,15 +2671,11 @@ echo_expr_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | echo_expr { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3090,8 +2683,6 @@ echo_expr: expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3099,14 +2690,10 @@ for_exprs: /* empty */ { $$ = nil; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | non_empty_for_exprs { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3116,15 +2703,11 @@ non_empty_for_exprs: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | expr { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -3141,11 +2724,9 @@ anonymous_class: $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Name, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.SkippedTokens) } ; @@ -3161,9 +2742,7 @@ new_expr: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NEW anonymous_class { @@ -3173,9 +2752,7 @@ new_expr: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -3190,12 +2767,10 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) } | '[' array_pair_list ']' '=' expr { @@ -3207,11 +2782,9 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Var, $4.SkippedTokens) } | variable '=' expr { @@ -3222,9 +2795,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable '=' '&' expr { @@ -3235,10 +2806,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) } | T_CLONE expr { @@ -3248,9 +2817,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | variable T_PLUS_EQUAL expr { @@ -3261,9 +2828,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_MINUS_EQUAL expr { @@ -3274,9 +2839,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_MUL_EQUAL expr { @@ -3287,9 +2850,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_POW_EQUAL expr { @@ -3300,9 +2861,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_DIV_EQUAL expr { @@ -3313,9 +2872,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_CONCAT_EQUAL expr { @@ -3326,9 +2883,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_MOD_EQUAL expr { @@ -3339,9 +2894,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_AND_EQUAL expr { @@ -3352,9 +2905,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_OR_EQUAL expr { @@ -3365,9 +2916,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_XOR_EQUAL expr { @@ -3378,9 +2927,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_SL_EQUAL expr { @@ -3391,9 +2938,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_SR_EQUAL expr { @@ -3404,9 +2949,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_COALESCE_EQUAL expr { @@ -3417,9 +2960,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | variable T_INC { @@ -3430,9 +2971,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | T_INC variable { @@ -3442,9 +2981,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | variable T_DEC { @@ -3455,9 +2992,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | T_DEC variable { @@ -3467,9 +3002,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | expr T_BOOLEAN_OR expr { @@ -3480,9 +3013,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_BOOLEAN_AND expr { @@ -3493,9 +3024,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_LOGICAL_OR expr { @@ -3506,9 +3035,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_LOGICAL_AND expr { @@ -3519,9 +3046,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_LOGICAL_XOR expr { @@ -3532,9 +3057,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '|' expr { @@ -3545,9 +3068,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '&' expr { @@ -3558,9 +3079,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '^' expr { @@ -3571,9 +3090,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '.' expr { @@ -3584,9 +3101,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '+' expr { @@ -3597,9 +3112,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '-' expr { @@ -3610,9 +3123,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '*' expr { @@ -3623,9 +3134,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_POW expr { @@ -3636,9 +3145,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '/' expr { @@ -3649,9 +3156,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '%' expr { @@ -3662,9 +3167,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_SL expr { @@ -3675,9 +3178,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_SR expr { @@ -3688,9 +3189,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | '+' expr %prec T_INC { @@ -3700,9 +3199,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '-' expr %prec T_INC { @@ -3712,9 +3209,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '!' expr { @@ -3724,9 +3219,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '~' expr { @@ -3736,9 +3229,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | expr T_IS_IDENTICAL expr { @@ -3749,9 +3240,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_NOT_IDENTICAL expr { @@ -3762,9 +3251,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_EQUAL expr { @@ -3775,9 +3262,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_NOT_EQUAL expr { @@ -3788,10 +3273,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setToken($$, token.Equal, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | expr '<' expr { @@ -3802,9 +3285,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_SMALLER_OR_EQUAL expr { @@ -3815,9 +3296,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '>' expr { @@ -3828,9 +3307,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_IS_GREATER_OR_EQUAL expr { @@ -3841,9 +3318,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_SPACESHIP expr { @@ -3854,9 +3329,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr T_INSTANCEOF class_name_reference { @@ -3867,9 +3340,7 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | '(' expr ')' { @@ -3879,16 +3350,12 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | new_expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr '?' expr ':' expr { @@ -3899,10 +3366,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.True, $4.SkippedTokens) } | expr '?' ':' expr { @@ -3913,10 +3378,8 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.True, $3.SkippedTokens) } | expr T_COALESCE expr { @@ -3927,15 +3390,11 @@ expr_without_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | internal_functions_in_yacc { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_INT_CAST expr { @@ -3945,10 +3404,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_DOUBLE_CAST expr { @@ -3958,10 +3415,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_STRING_CAST expr { @@ -3971,10 +3426,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_ARRAY_CAST expr { @@ -3984,10 +3437,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_OBJECT_CAST expr { @@ -3997,10 +3448,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_BOOL_CAST expr { @@ -4010,10 +3459,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_UNSET_CAST expr { @@ -4023,10 +3470,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setToken($$, token.Cast, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) } | T_EXIT exit_expr { @@ -4044,9 +3489,7 @@ expr_without_variable: } // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '@' expr { @@ -4056,15 +3499,11 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '`' backticks_expr '`' { @@ -4074,9 +3513,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_PRINT expr { @@ -4086,9 +3523,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_YIELD { @@ -4098,9 +3533,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_YIELD expr { @@ -4110,9 +3543,7 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_YIELD expr T_DOUBLE_ARROW expr { @@ -4122,10 +3553,8 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) } | T_YIELD_FROM expr { @@ -4135,15 +3564,11 @@ expr_without_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | inline_function { $$ = $1; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_STATIC inline_function { @@ -4161,9 +3586,7 @@ expr_without_variable: // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Static, $$.GetNode().Tokens[token.Start]); delete($$.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens); - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens); } ; @@ -4176,16 +3599,16 @@ inline_function: $$.GetNode().Position = position.NewTokensPosition($1, $11) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.SkippedTokens) // normalize if $8 == nil { @@ -4194,8 +3617,6 @@ inline_function: if $7 == nil { yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVarList]); delete($$.GetNode().Tokens, token.LexicalVarList) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr { @@ -4205,22 +3626,20 @@ inline_function: $$.GetNode().Position = position.NewTokenNodePosition($1, $9) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.SkippedTokens) }; - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.Tokens) + yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.SkippedTokens) // normalize if $6 == nil { yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) }; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4243,8 +3662,6 @@ lexical_vars: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_USE '(' lexical_var_list ')' { @@ -4254,11 +3671,9 @@ lexical_vars: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Use, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.SkippedTokens) } ; @@ -4268,15 +3683,11 @@ lexical_var_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | lexical_var { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4291,9 +3702,7 @@ lexical_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '&' T_VARIABLE { @@ -4307,10 +3716,8 @@ lexical_var: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } ; @@ -4324,8 +3731,6 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { @@ -4336,9 +3741,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { @@ -4349,9 +3752,7 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | callable_expr argument_list { @@ -4362,8 +3763,6 @@ function_call: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4376,15 +3775,11 @@ class_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | name { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4392,14 +3787,10 @@ class_name_reference: class_name { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4407,8 +3798,6 @@ exit_expr: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' optional_expr ')' { @@ -4418,10 +3807,8 @@ exit_expr: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } ; @@ -4429,8 +3816,6 @@ backticks_expr: /* empty */ { $$ = []ast.Vertex{} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ENCAPSED_AND_WHITESPACE { @@ -4439,14 +3824,10 @@ backticks_expr: // save position part.GetNode().Position = position.NewTokenPosition($1) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_list { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4454,14 +3835,10 @@ ctor_arguments: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | argument_list { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4474,11 +3851,9 @@ dereferencable_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Array, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) } | '[' array_pair_list ']' { @@ -4488,10 +3863,8 @@ dereferencable_scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) } | T_CONSTANT_ENCAPSED_STRING { @@ -4501,9 +3874,7 @@ dereferencable_scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -4516,9 +3887,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_DNUMBER { @@ -4528,9 +3897,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_LINE { @@ -4540,9 +3907,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FILE { @@ -4552,9 +3917,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_DIR { @@ -4564,9 +3927,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_TRAIT_C { @@ -4576,9 +3937,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_METHOD_C { @@ -4588,9 +3947,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_FUNC_C { @@ -4600,9 +3957,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NS_C { @@ -4612,9 +3967,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_CLASS_C { @@ -4624,9 +3977,7 @@ scalar: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -4638,9 +3989,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_START_HEREDOC T_END_HEREDOC { @@ -4650,9 +3999,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '"' encaps_list '"' { @@ -4662,9 +4009,7 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_START_HEREDOC encaps_list T_END_HEREDOC { @@ -4674,21 +4019,15 @@ scalar: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | dereferencable_scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | constant { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4702,8 +4041,6 @@ constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { @@ -4716,10 +4053,8 @@ constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { @@ -4732,10 +4067,8 @@ constant: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; @@ -4743,14 +4076,10 @@ expr: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr_without_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4758,14 +4087,10 @@ optional_expr: /* empty */ { $$ = nil - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4773,8 +4098,6 @@ variable_class_name: dereferencable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4782,8 +4105,6 @@ dereferencable: variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' expr ')' { @@ -4793,16 +4114,12 @@ dereferencable: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | dereferencable_scalar { $$ = $1; - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4810,8 +4127,6 @@ callable_expr: callable_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | '(' expr ')' { @@ -4821,16 +4136,12 @@ callable_expr: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | dereferencable_scalar { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4838,8 +4149,6 @@ callable_variable: simple_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable '[' optional_expr ']' { @@ -4849,10 +4158,8 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | constant '[' optional_expr ']' { @@ -4862,10 +4169,8 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | dereferencable '{' expr '}' { @@ -4875,10 +4180,8 @@ callable_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | dereferencable T_OBJECT_OPERATOR property_name argument_list { @@ -4889,15 +4192,11 @@ callable_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | function_call { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -4905,14 +4204,10 @@ variable: callable_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | static_member { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | dereferencable T_OBJECT_OPERATOR property_name { @@ -4923,9 +4218,7 @@ variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } ; @@ -4940,9 +4233,7 @@ simple_variable: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '$' '{' expr '}' { @@ -4952,11 +4243,9 @@ simple_variable: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.Tokens, $3.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.SkippedTokens, $3.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.SkippedTokens...)) } | '$' simple_variable { @@ -4966,9 +4255,7 @@ simple_variable: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -4982,9 +4269,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -4995,9 +4280,7 @@ static_member: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; @@ -5005,8 +4288,6 @@ new_variable: simple_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | new_variable '[' optional_expr ']' { @@ -5016,10 +4297,8 @@ new_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | new_variable '{' expr '}' { @@ -5029,10 +4308,8 @@ new_variable: $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | new_variable T_OBJECT_OPERATOR property_name { @@ -5043,9 +4320,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -5056,9 +4331,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -5069,9 +4342,7 @@ new_variable: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } ; @@ -5084,25 +4355,19 @@ member_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '{' expr '}' { $$ = $2; // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) } | simple_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5115,25 +4380,19 @@ property_name: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '{' expr '}' { $$ = $2; // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.Tokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.Tokens...)) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) } | simple_variable { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5141,8 +4400,6 @@ array_pair_list: non_empty_array_pair_list { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5150,14 +4407,10 @@ possible_array_pair: /* empty */ { $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | array_pair { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5171,9 +4424,7 @@ non_empty_array_pair_list: $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } | possible_array_pair { @@ -5182,8 +4433,6 @@ non_empty_array_pair_list: } else { $$ = []ast.Vertex{$1} } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; @@ -5197,9 +4446,7 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr { @@ -5210,8 +4457,6 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | expr T_DOUBLE_ARROW '&' variable { @@ -5224,10 +4469,8 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(reference, token.Start, $3.SkippedTokens) } | '&' variable { @@ -5239,9 +4482,7 @@ array_pair: reference.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_ELLIPSIS expr { @@ -5251,9 +4492,7 @@ array_pair: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { @@ -5267,12 +4506,10 @@ array_pair: // save comments yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $4.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.SkippedTokens) } | T_LIST '(' array_pair_list ')' { @@ -5285,11 +4522,9 @@ array_pair: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.Tokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) } ; @@ -5297,8 +4532,6 @@ encaps_list: encaps_list encaps_var { $$ = append($1, $2) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | encaps_list T_ENCAPSED_AND_WHITESPACE { @@ -5309,15 +4542,11 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($2) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.SkippedTokens) } | encaps_var { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_ENCAPSED_AND_WHITESPACE encaps_var { @@ -5328,9 +4557,7 @@ encaps_list: encapsed.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.SkippedTokens) } ; @@ -5345,9 +4572,7 @@ encaps_var: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '[' encaps_var_offset ']' { @@ -5361,10 +4586,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { @@ -5380,10 +4603,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $2.Tokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { @@ -5395,10 +4616,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { @@ -5412,10 +4631,8 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { @@ -5429,22 +4646,18 @@ encaps_var: $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments - yylex.(*Parser).setToken(variable, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken(variable, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.SkippedTokens) } | T_CURLY_OPEN variable '}' { $$ = $2; // save comments - yylex.(*Parser).setToken($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } ; @@ -5457,9 +4670,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NUM_STRING { @@ -5474,9 +4685,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '-' T_NUM_STRING { @@ -5500,9 +4709,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE { @@ -5514,9 +4721,7 @@ encaps_var_offset: $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -5529,15 +4734,13 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.Tokens) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating($$, token.Isset, $2.SkippedTokens) if $4 == nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.Tokens) + yylex.(*Parser).setFreeFloating($$, token.VarList, $5.SkippedTokens) } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.Tokens, $5.Tokens...)) + yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.SkippedTokens, $5.SkippedTokens...)) } - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | T_EMPTY '(' expr ')' { @@ -5549,11 +4752,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_INCLUDE expr { @@ -5563,9 +4764,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_INCLUDE_ONCE expr { @@ -5575,9 +4774,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_EVAL '(' expr ')' { @@ -5589,11 +4786,9 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.Tokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_REQUIRE expr { @@ -5603,9 +4798,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_REQUIRE_ONCE expr { @@ -5615,9 +4808,7 @@ internal_functions_in_yacc: $$.GetNode().Position = position.NewTokenNodePosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -5625,17 +4816,13 @@ isset_variables: isset_variable { $$ = []ast.Vertex{$1} - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } | isset_variables ',' isset_variable { $$ = append($1, $3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.Tokens) - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) + yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -5643,8 +4830,6 @@ isset_variable: expr { $$ = $1 - - yylex.(*Parser).returnTokenToPool(yyDollar, &yyVAL) } ; diff --git a/internal/php7/php7_bench_test.go b/internal/php7/php7_bench_test.go index 558c54b..d5f2636 100644 --- a/internal/php7/php7_bench_test.go +++ b/internal/php7/php7_bench_test.go @@ -382,7 +382,7 @@ CAD; ` for n := 0; n < b.N; n++ { - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 68364f5..8d52038 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -19595,11 +19595,12 @@ func TestPhp7(t *testing.T) { }, } - lexer := scanner.NewLexer(src, "7.4", false, nil) + lexer := scanner.NewLexer(src, "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19734,11 +19735,12 @@ func TestPhp5Strings(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19962,11 +19964,12 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", false, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) + traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19989,7 +19992,7 @@ func TestPhp7ControlCharsErrors(t *testing.T) { parserErrors = append(parserErrors, e) } - lexer := scanner.NewLexer([]byte(src), "7.4", false, errorHandlerFunc) + lexer := scanner.NewLexer([]byte(src), "7.4", errorHandlerFunc) php7parser := php7.NewParser(lexer, errorHandlerFunc) php7parser.Parse() assert.DeepEqual(t, expected, parserErrors) diff --git a/internal/position/position.go b/internal/position/position.go index cbcc309..2603826 100644 --- a/internal/position/position.go +++ b/internal/position/position.go @@ -1,9 +1,9 @@ package position import ( - "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" ) type startPos struct { @@ -95,7 +95,7 @@ func NewNodePosition(n ast.Vertex) *position.Position { } // NewTokenPosition returns new Position -func NewTokenPosition(t *scanner.Token) *position.Position { +func NewTokenPosition(t *token.Token) *position.Position { return &position.Position{ StartLine: t.Position.StartLine, EndLine: t.Position.EndLine, @@ -105,7 +105,7 @@ func NewTokenPosition(t *scanner.Token) *position.Position { } // NewTokensPosition returns new Position -func NewTokensPosition(startToken *scanner.Token, endToken *scanner.Token) *position.Position { +func NewTokensPosition(startToken *token.Token, endToken *token.Token) *position.Position { return &position.Position{ StartLine: startToken.Position.StartLine, EndLine: endToken.Position.EndLine, @@ -115,7 +115,7 @@ func NewTokensPosition(startToken *scanner.Token, endToken *scanner.Token) *posi } // NewTokenNodePosition returns new Position -func NewTokenNodePosition(t *scanner.Token, n ast.Vertex) *position.Position { +func NewTokenNodePosition(t *token.Token, n ast.Vertex) *position.Position { return &position.Position{ StartLine: t.Position.StartLine, EndLine: getNodeEndPos(n).endLine, @@ -125,7 +125,7 @@ func NewTokenNodePosition(t *scanner.Token, n ast.Vertex) *position.Position { } // NewNodeTokenPosition returns new Position -func NewNodeTokenPosition(n ast.Vertex, t *scanner.Token) *position.Position { +func NewNodeTokenPosition(n ast.Vertex, t *token.Token) *position.Position { return &position.Position{ StartLine: getNodeStartPos(n).startLine, EndLine: t.Position.EndLine, @@ -145,7 +145,7 @@ func NewNodesPosition(startNode ast.Vertex, endNode ast.Vertex) *position.Positi } // NewNodeListTokenPosition returns new Position -func NewNodeListTokenPosition(list []ast.Vertex, t *scanner.Token) *position.Position { +func NewNodeListTokenPosition(list []ast.Vertex, t *token.Token) *position.Position { return &position.Position{ StartLine: getListStartPos(list).startLine, EndLine: t.Position.EndLine, @@ -155,7 +155,7 @@ func NewNodeListTokenPosition(list []ast.Vertex, t *scanner.Token) *position.Pos } // NewTokenNodeListPosition returns new Position -func NewTokenNodeListPosition(t *scanner.Token, list []ast.Vertex) *position.Position { +func NewTokenNodeListPosition(t *token.Token, list []ast.Vertex) *position.Position { return &position.Position{ StartLine: t.Position.StartLine, EndLine: getListEndPos(list).endLine, @@ -185,7 +185,7 @@ func NewNodeListNodePosition(list []ast.Vertex, n ast.Vertex) *position.Position } // NewOptionalListTokensPosition returns new Position -func NewOptionalListTokensPosition(list []ast.Vertex, t *scanner.Token, endToken *scanner.Token) *position.Position { +func NewOptionalListTokensPosition(list []ast.Vertex, t *token.Token, endToken *token.Token) *position.Position { if list == nil { return &position.Position{ StartLine: t.Position.StartLine, diff --git a/internal/position/position_test.go b/internal/position/position_test.go index f932f2d..1fd6c83 100644 --- a/internal/position/position_test.go +++ b/internal/position/position_test.go @@ -5,15 +5,15 @@ import ( "testing" builder "github.com/z7zmey/php-parser/internal/position" - "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" ) func TestNewTokenPosition(t *testing.T) { - tkn := &scanner.Token{ + tkn := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 0, @@ -29,18 +29,18 @@ func TestNewTokenPosition(t *testing.T) { } func TestNewTokensPosition(t *testing.T) { - token1 := &scanner.Token{ + token1 := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 0, EndPos: 3, }, } - token2 := &scanner.Token{ + token2 := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 4, @@ -71,9 +71,9 @@ func TestNewNodePosition(t *testing.T) { } func TestNewTokenNodePosition(t *testing.T) { - tkn := &scanner.Token{ + tkn := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 0, @@ -108,9 +108,9 @@ func TestNewNodeTokenPosition(t *testing.T) { }, } - tkn := &scanner.Token{ + tkn := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 10, @@ -202,9 +202,9 @@ func TestNewNodeListTokenPosition(t *testing.T) { }, } - tkn := &scanner.Token{ + tkn := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 3, EndLine: 3, StartPos: 20, @@ -218,9 +218,9 @@ func TestNewNodeListTokenPosition(t *testing.T) { } func TestNewTokenNodeListPosition(t *testing.T) { - tkn := &scanner.Token{ + tkn := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 0, @@ -332,18 +332,18 @@ func TestNewNodeListNodePosition(t *testing.T) { } func TestNewOptionalListTokensPosition(t *testing.T) { - token1 := &scanner.Token{ + token1 := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 0, EndPos: 3, }, } - token2 := &scanner.Token{ + token2 := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 4, @@ -378,18 +378,18 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { }, } - token1 := &scanner.Token{ + token1 := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 27, EndPos: 29, }, } - token2 := &scanner.Token{ + token2 := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 30, @@ -426,9 +426,9 @@ func TestNilNodeListPos(t *testing.T) { } func TestNilNodeListTokenPos(t *testing.T) { - token := &scanner.Token{ + token := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 0, @@ -459,9 +459,9 @@ func TestEmptyNodeListPos(t *testing.T) { } func TestEmptyNodeListTokenPos(t *testing.T) { - token := &scanner.Token{ + token := &token.Token{ Value: []byte(`foo`), - Position: position.Position{ + Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 0, diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 7456961..b21ff7c 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -13,31 +13,32 @@ import ( type Lexer struct { data []byte phpVersion string - withTokens bool errHandlerFunc func(*errors.Error) + sts, ste int p, pe, cs int ts, te, act int stack []int top int heredocLabel []byte - tokenPool *TokenPool + tokenPool *token.Pool + positionPool *position.Pool newLines NewLines } -func NewLexer(data []byte, phpVersion string, withTokens bool, errHandlerFunc func(*errors.Error)) *Lexer { +func NewLexer(data []byte, phpVersion string, errHandlerFunc func(*errors.Error)) *Lexer { lex := &Lexer{ data: data, phpVersion: phpVersion, - withTokens: withTokens, errHandlerFunc: errHandlerFunc, pe: len(data), stack: make([]int, 0), - tokenPool: &TokenPool{}, - newLines: NewLines{make([]int, 0, 128)}, + tokenPool: token.NewPool(position.DefaultBlockSize), + positionPool: position.NewPool(position.DefaultBlockSize), + newLines: NewLines{make([]int, 0, 128)}, } initLexer(lex) @@ -45,26 +46,37 @@ func NewLexer(data []byte, phpVersion string, withTokens bool, errHandlerFunc fu return lex } -func (lex *Lexer) ReturnTokenToPool(t *Token) { - lex.tokenPool.Put(t) +func (lex *Lexer) setTokenPosition(token *token.Token) { + pos := lex.positionPool.Get() + + pos.StartLine = lex.newLines.GetLine(lex.ts) + pos.EndLine = lex.newLines.GetLine(lex.te - 1) + pos.StartPos = lex.ts + pos.EndPos = lex.te + + token.Position = pos } -func (lex *Lexer) setTokenPosition(token *Token) { - token.Position.StartLine = lex.newLines.GetLine(lex.ts) - token.Position.EndLine = lex.newLines.GetLine(lex.te - 1) - token.Position.StartPos = lex.ts - token.Position.EndPos = lex.te -} - -func (lex *Lexer) addHiddenToken(t *Token, id TokenID, ps, pe int) { - if !lex.withTokens { - return +func (lex *Lexer) addSkippedToken(t *token.Token, id token.ID, ps, pe int) { + if lex.sts == 0 { + lex.sts = lex.ts } - t.Tokens = append(t.Tokens, token.Token{ - ID: token.ID(id), - Value: lex.data[ps:pe], - }) + lex.ste = lex.te + + // TODO remove after parser refactoring + + skippedTkn := lex.tokenPool.Get() + skippedTkn.ID = id + skippedTkn.Value = lex.data[ps:pe] + + lex.setTokenPosition(skippedTkn) + + if t.SkippedTokens == nil { + t.SkippedTokens = make([]*token.Token, 0, 2) + } + + t.SkippedTokens = append(t.SkippedTokens, skippedTkn) } func (lex *Lexer) isNotStringVar() bool { diff --git a/internal/scanner/lexer_tokens.go b/internal/scanner/lexer_tokens.go deleted file mode 100644 index bd54024..0000000 --- a/internal/scanner/lexer_tokens.go +++ /dev/null @@ -1,145 +0,0 @@ -package scanner - -type TokenID int - -//go:generate stringer -type=TokenID -output ./tokenid_string.go -const ( - T_INCLUDE TokenID = iota + 57346 - T_INCLUDE_ONCE - T_EXIT - T_IF - T_LNUMBER - T_DNUMBER - T_STRING - T_STRING_VARNAME - T_VARIABLE - T_NUM_STRING - T_INLINE_HTML - T_CHARACTER - T_BAD_CHARACTER - T_ENCAPSED_AND_WHITESPACE - T_CONSTANT_ENCAPSED_STRING - T_ECHO - T_DO - T_WHILE - T_ENDWHILE - T_FOR - T_ENDFOR - T_FOREACH - T_ENDFOREACH - T_DECLARE - T_ENDDECLARE - T_AS - T_SWITCH - T_ENDSWITCH - T_CASE - T_DEFAULT - T_BREAK - T_CONTINUE - T_GOTO - T_FUNCTION - T_FN - T_CONST - T_RETURN - T_TRY - T_CATCH - T_FINALLY - T_THROW - T_USE - T_INSTEADOF - T_GLOBAL - T_VAR - T_UNSET - T_ISSET - T_EMPTY - T_HALT_COMPILER - T_CLASS - T_TRAIT - T_INTERFACE - T_EXTENDS - T_IMPLEMENTS - T_OBJECT_OPERATOR - T_DOUBLE_ARROW - T_LIST - T_ARRAY - T_CALLABLE - T_CLASS_C - T_TRAIT_C - T_METHOD_C - T_FUNC_C - T_LINE - T_FILE - T_COMMENT - T_DOC_COMMENT - T_OPEN_TAG - T_OPEN_TAG_WITH_ECHO - T_CLOSE_TAG - T_WHITESPACE - T_START_HEREDOC - T_END_HEREDOC - T_DOLLAR_OPEN_CURLY_BRACES - T_CURLY_OPEN - T_PAAMAYIM_NEKUDOTAYIM - T_NAMESPACE - T_NS_C - T_DIR - T_NS_SEPARATOR - T_ELLIPSIS - T_EVAL - T_REQUIRE - T_REQUIRE_ONCE - T_LOGICAL_OR - T_LOGICAL_XOR - T_LOGICAL_AND - T_INSTANCEOF - T_NEW - T_CLONE - T_ELSEIF - T_ELSE - T_ENDIF - T_PRINT - T_YIELD - T_STATIC - T_ABSTRACT - T_FINAL - T_PRIVATE - T_PROTECTED - T_PUBLIC - T_INC - T_DEC - T_YIELD_FROM - T_INT_CAST - T_DOUBLE_CAST - T_STRING_CAST - T_ARRAY_CAST - T_OBJECT_CAST - T_BOOL_CAST - T_UNSET_CAST - T_COALESCE - T_SPACESHIP - T_NOELSE - T_PLUS_EQUAL - T_MINUS_EQUAL - T_MUL_EQUAL - T_POW_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_COALESCE_EQUAL - T_BOOLEAN_OR - T_BOOLEAN_AND - T_POW - T_SL - T_SR - T_IS_IDENTICAL - T_IS_NOT_IDENTICAL - T_IS_EQUAL - T_IS_NOT_EQUAL - T_IS_SMALLER_OR_EQUAL - T_IS_GREATER_OR_EQUAL -) diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index c6ebf1c..f90db23 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -5,9 +5,11 @@ import ( "fmt" "strconv" "strings" + + "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/scanner/scanner.go:13 +// line internal/scanner/scanner.go:15 const lexer_start int = 113 const lexer_first_final int = 113 const lexer_error int = 0 @@ -29,11 +31,11 @@ const lexer_en_halt_compiller_close_parenthesis int = 522 const lexer_en_halt_compiller_close_semicolon int = 526 const lexer_en_halt_compiller_end int = 530 -// line internal/scanner/scanner.rl:15 +// line internal/scanner/scanner.rl:17 func initLexer(lex *Lexer) { - // line internal/scanner/scanner.go:41 + // line internal/scanner/scanner.go:43 { lex.cs = lexer_start lex.top = 0 @@ -42,23 +44,24 @@ func initLexer(lex *Lexer) { lex.act = 0 } - // line internal/scanner/scanner.rl:19 + // line internal/scanner/scanner.rl:21 } -func (lex *Lexer) Lex() *Token { +func (lex *Lexer) Lex() *token.Token { eof := lex.pe - var tok TokenID + var tok token.ID - token := lex.tokenPool.Get() - token.Tokens = token.Tokens[:0] - token.Value = lex.data[0:0] + tkn := lex.tokenPool.Get() + + lex.sts = 0 + lex.ste = 0 lblStart := 0 lblEnd := 0 _, _ = lblStart, lblEnd - // line internal/scanner/scanner.go:67 + // line internal/scanner/scanner.go:70 { var _widec int16 if (lex.p) == (lex.pe) { @@ -2215,7 +2218,7 @@ func (lex *Lexer) Lex() *Token { goto st_out tr0: lex.cs = 113 - // line internal/scanner/scanner.rl:129 + // line internal/scanner/scanner.rl:132 (lex.p) = (lex.te) - 1 { lex.cs = 116 @@ -2224,7 +2227,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr169: lex.cs = 113 - // line internal/scanner/scanner.rl:129 + // line internal/scanner/scanner.rl:132 lex.te = (lex.p) + 1 { lex.cs = 116 @@ -2233,7 +2236,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr171: lex.cs = 113 - // line internal/scanner/scanner.rl:129 + // line internal/scanner/scanner.rl:132 lex.te = (lex.p) (lex.p)-- { @@ -2242,13 +2245,13 @@ func (lex *Lexer) Lex() *Token { } goto _again tr172: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:126 + // line internal/scanner/scanner.rl:129 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) } goto st113 st113: @@ -2262,7 +2265,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2271 + // line internal/scanner/scanner.go:2274 if lex.data[(lex.p)] == 35 { goto tr170 } @@ -2277,13 +2280,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof114 } st_case_114: - // line internal/scanner/scanner.go:2286 + // line internal/scanner/scanner.go:2289 if lex.data[(lex.p)] == 33 { goto st1 } goto tr171 tr3: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2299,7 +2302,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof1 } st_case_1: - // line internal/scanner/scanner.go:2308 + // line internal/scanner/scanner.go:2311 switch lex.data[(lex.p)] { case 10: goto tr2 @@ -2308,7 +2311,7 @@ func (lex *Lexer) Lex() *Token { } goto st1 tr2: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2324,35 +2327,35 @@ func (lex *Lexer) Lex() *Token { goto _test_eof115 } st_case_115: - // line internal/scanner/scanner.go:2333 + // line internal/scanner/scanner.go:2336 goto tr172 tr4: lex.cs = 116 - // line internal/scanner/scanner.rl:142 + // line internal/scanner/scanner.rl:145 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) lex.cs = 123 } goto _again tr7: lex.cs = 116 - // line internal/scanner/scanner.rl:146 + // line internal/scanner/scanner.rl:149 lex.te = (lex.p) + 1 { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 123 } goto _again tr177: - // line internal/scanner/scanner.rl:136 + // line internal/scanner/scanner.rl:139 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("<") - lex.setTokenPosition(token) - tok = T_INLINE_HTML + lex.setTokenPosition(tkn) + tok = token.T_INLINE_HTML { (lex.p)++ lex.cs = 116 @@ -2361,15 +2364,15 @@ func (lex *Lexer) Lex() *Token { } goto st116 tr179: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:136 + // line internal/scanner/scanner.rl:139 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("<") - lex.setTokenPosition(token) - tok = T_INLINE_HTML + lex.setTokenPosition(tkn) + tok = token.T_INLINE_HTML { (lex.p)++ lex.cs = 116 @@ -2379,21 +2382,21 @@ func (lex *Lexer) Lex() *Token { goto st116 tr185: lex.cs = 116 - // line internal/scanner/scanner.rl:142 + // line internal/scanner/scanner.rl:145 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) lex.cs = 123 } goto _again tr186: lex.cs = 116 - // line internal/scanner/scanner.rl:151 + // line internal/scanner/scanner.rl:154 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_ECHO + lex.setTokenPosition(tkn) + tok = token.T_ECHO lex.cs = 123 { (lex.p)++ @@ -2403,14 +2406,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr188: lex.cs = 116 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:146 + // line internal/scanner/scanner.rl:149 lex.te = (lex.p) (lex.p)-- { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 123 } goto _again @@ -2425,7 +2428,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2423 + // line internal/scanner/scanner.go:2426 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2436,7 +2439,7 @@ func (lex *Lexer) Lex() *Token { } goto st117 tr175: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2448,13 +2451,13 @@ func (lex *Lexer) Lex() *Token { goto st117 tr180: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st117 tr182: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2470,7 +2473,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof117 } st_case_117: - // line internal/scanner/scanner.go:2468 + // line internal/scanner/scanner.go:2471 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2481,7 +2484,7 @@ func (lex *Lexer) Lex() *Token { } goto st117 tr174: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2493,9 +2496,9 @@ func (lex *Lexer) Lex() *Token { goto st118 tr181: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2511,7 +2514,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof118 } st_case_118: - // line internal/scanner/scanner.go:2509 + // line internal/scanner/scanner.go:2512 switch lex.data[(lex.p)] { case 10: goto tr181 @@ -2522,7 +2525,7 @@ func (lex *Lexer) Lex() *Token { } goto tr180 tr183: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st119 st119: @@ -2530,7 +2533,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof119 } st_case_119: - // line internal/scanner/scanner.go:2528 + // line internal/scanner/scanner.go:2531 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2568,7 +2571,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof121 } st_case_121: - // line internal/scanner/scanner.go:2566 + // line internal/scanner/scanner.go:2569 switch lex.data[(lex.p)] { case 61: goto tr186 @@ -2619,7 +2622,7 @@ func (lex *Lexer) Lex() *Token { } goto tr4 tr8: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2635,10 +2638,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof122 } st_case_122: - // line internal/scanner/scanner.go:2633 + // line internal/scanner/scanner.go:2636 goto tr188 tr9: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2654,16 +2657,16 @@ func (lex *Lexer) Lex() *Token { goto _test_eof5 } st_case_5: - // line internal/scanner/scanner.go:2652 + // line internal/scanner/scanner.go:2655 if lex.data[(lex.p)] == 10 { goto tr8 } goto tr4 tr10: - // line internal/scanner/scanner.rl:160 + // line internal/scanner/scanner.rl:163 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st123 tr12: @@ -2673,8 +2676,8 @@ func (lex *Lexer) Lex() *Token { case 10: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ goto _out @@ -2688,16 +2691,16 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, 2, 0) if err == nil { - lex.setTokenPosition(token) - tok = T_LNUMBER + lex.setTokenPosition(tkn) + tok = token.T_LNUMBER { (lex.p)++ goto _out } } - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ goto _out @@ -2716,16 +2719,16 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, base, 0) if err == nil { - lex.setTokenPosition(token) - tok = T_LNUMBER + lex.setTokenPosition(tkn) + tok = token.T_LNUMBER { (lex.p)++ goto _out } } - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ goto _out @@ -2739,16 +2742,16 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, 16, 0) if err == nil { - lex.setTokenPosition(token) - tok = T_LNUMBER + lex.setTokenPosition(tkn) + tok = token.T_LNUMBER { (lex.p)++ goto _out } } - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ goto _out @@ -2757,8 +2760,8 @@ func (lex *Lexer) Lex() *Token { case 14: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ABSTRACT + lex.setTokenPosition(tkn) + tok = token.T_ABSTRACT { (lex.p)++ goto _out @@ -2767,8 +2770,8 @@ func (lex *Lexer) Lex() *Token { case 15: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ARRAY + lex.setTokenPosition(tkn) + tok = token.T_ARRAY { (lex.p)++ goto _out @@ -2777,8 +2780,8 @@ func (lex *Lexer) Lex() *Token { case 16: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_AS + lex.setTokenPosition(tkn) + tok = token.T_AS { (lex.p)++ goto _out @@ -2787,8 +2790,8 @@ func (lex *Lexer) Lex() *Token { case 17: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_BREAK + lex.setTokenPosition(tkn) + tok = token.T_BREAK { (lex.p)++ goto _out @@ -2797,8 +2800,8 @@ func (lex *Lexer) Lex() *Token { case 18: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CALLABLE + lex.setTokenPosition(tkn) + tok = token.T_CALLABLE { (lex.p)++ goto _out @@ -2807,8 +2810,8 @@ func (lex *Lexer) Lex() *Token { case 19: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CASE + lex.setTokenPosition(tkn) + tok = token.T_CASE { (lex.p)++ goto _out @@ -2817,8 +2820,8 @@ func (lex *Lexer) Lex() *Token { case 20: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CATCH + lex.setTokenPosition(tkn) + tok = token.T_CATCH { (lex.p)++ goto _out @@ -2827,8 +2830,8 @@ func (lex *Lexer) Lex() *Token { case 21: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CLASS + lex.setTokenPosition(tkn) + tok = token.T_CLASS { (lex.p)++ goto _out @@ -2837,8 +2840,8 @@ func (lex *Lexer) Lex() *Token { case 22: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CLONE + lex.setTokenPosition(tkn) + tok = token.T_CLONE { (lex.p)++ goto _out @@ -2847,8 +2850,8 @@ func (lex *Lexer) Lex() *Token { case 23: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CONST + lex.setTokenPosition(tkn) + tok = token.T_CONST { (lex.p)++ goto _out @@ -2857,8 +2860,8 @@ func (lex *Lexer) Lex() *Token { case 24: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CONTINUE + lex.setTokenPosition(tkn) + tok = token.T_CONTINUE { (lex.p)++ goto _out @@ -2867,8 +2870,8 @@ func (lex *Lexer) Lex() *Token { case 25: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DECLARE + lex.setTokenPosition(tkn) + tok = token.T_DECLARE { (lex.p)++ goto _out @@ -2877,8 +2880,8 @@ func (lex *Lexer) Lex() *Token { case 26: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DEFAULT + lex.setTokenPosition(tkn) + tok = token.T_DEFAULT { (lex.p)++ goto _out @@ -2887,8 +2890,8 @@ func (lex *Lexer) Lex() *Token { case 27: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DO + lex.setTokenPosition(tkn) + tok = token.T_DO { (lex.p)++ goto _out @@ -2897,8 +2900,8 @@ func (lex *Lexer) Lex() *Token { case 28: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ECHO + lex.setTokenPosition(tkn) + tok = token.T_ECHO { (lex.p)++ goto _out @@ -2907,8 +2910,8 @@ func (lex *Lexer) Lex() *Token { case 30: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ELSEIF + lex.setTokenPosition(tkn) + tok = token.T_ELSEIF { (lex.p)++ goto _out @@ -2917,8 +2920,8 @@ func (lex *Lexer) Lex() *Token { case 31: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_EMPTY + lex.setTokenPosition(tkn) + tok = token.T_EMPTY { (lex.p)++ goto _out @@ -2927,8 +2930,8 @@ func (lex *Lexer) Lex() *Token { case 32: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENDDECLARE + lex.setTokenPosition(tkn) + tok = token.T_ENDDECLARE { (lex.p)++ goto _out @@ -2937,8 +2940,8 @@ func (lex *Lexer) Lex() *Token { case 34: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENDFOREACH + lex.setTokenPosition(tkn) + tok = token.T_ENDFOREACH { (lex.p)++ goto _out @@ -2947,8 +2950,8 @@ func (lex *Lexer) Lex() *Token { case 35: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENDIF + lex.setTokenPosition(tkn) + tok = token.T_ENDIF { (lex.p)++ goto _out @@ -2957,8 +2960,8 @@ func (lex *Lexer) Lex() *Token { case 36: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENDSWITCH + lex.setTokenPosition(tkn) + tok = token.T_ENDSWITCH { (lex.p)++ goto _out @@ -2967,8 +2970,8 @@ func (lex *Lexer) Lex() *Token { case 37: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENDWHILE + lex.setTokenPosition(tkn) + tok = token.T_ENDWHILE { (lex.p)++ goto _out @@ -2977,8 +2980,8 @@ func (lex *Lexer) Lex() *Token { case 38: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_EVAL + lex.setTokenPosition(tkn) + tok = token.T_EVAL { (lex.p)++ goto _out @@ -2987,8 +2990,8 @@ func (lex *Lexer) Lex() *Token { case 39: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_EXIT + lex.setTokenPosition(tkn) + tok = token.T_EXIT { (lex.p)++ goto _out @@ -2997,8 +3000,8 @@ func (lex *Lexer) Lex() *Token { case 40: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_EXTENDS + lex.setTokenPosition(tkn) + tok = token.T_EXTENDS { (lex.p)++ goto _out @@ -3007,8 +3010,8 @@ func (lex *Lexer) Lex() *Token { case 42: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_FINALLY + lex.setTokenPosition(tkn) + tok = token.T_FINALLY { (lex.p)++ goto _out @@ -3017,8 +3020,8 @@ func (lex *Lexer) Lex() *Token { case 44: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_FOREACH + lex.setTokenPosition(tkn) + tok = token.T_FOREACH { (lex.p)++ goto _out @@ -3027,8 +3030,8 @@ func (lex *Lexer) Lex() *Token { case 45: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_FUNCTION + lex.setTokenPosition(tkn) + tok = token.T_FUNCTION { (lex.p)++ goto _out @@ -3037,8 +3040,8 @@ func (lex *Lexer) Lex() *Token { case 46: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_FN + lex.setTokenPosition(tkn) + tok = token.T_FN { (lex.p)++ goto _out @@ -3047,8 +3050,8 @@ func (lex *Lexer) Lex() *Token { case 47: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_GLOBAL + lex.setTokenPosition(tkn) + tok = token.T_GLOBAL { (lex.p)++ goto _out @@ -3057,8 +3060,8 @@ func (lex *Lexer) Lex() *Token { case 48: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_GOTO + lex.setTokenPosition(tkn) + tok = token.T_GOTO { (lex.p)++ goto _out @@ -3067,8 +3070,8 @@ func (lex *Lexer) Lex() *Token { case 49: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_IF + lex.setTokenPosition(tkn) + tok = token.T_IF { (lex.p)++ goto _out @@ -3077,8 +3080,8 @@ func (lex *Lexer) Lex() *Token { case 50: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ISSET + lex.setTokenPosition(tkn) + tok = token.T_ISSET { (lex.p)++ goto _out @@ -3087,8 +3090,8 @@ func (lex *Lexer) Lex() *Token { case 51: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_IMPLEMENTS + lex.setTokenPosition(tkn) + tok = token.T_IMPLEMENTS { (lex.p)++ goto _out @@ -3097,8 +3100,8 @@ func (lex *Lexer) Lex() *Token { case 52: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_INSTANCEOF + lex.setTokenPosition(tkn) + tok = token.T_INSTANCEOF { (lex.p)++ goto _out @@ -3107,8 +3110,8 @@ func (lex *Lexer) Lex() *Token { case 53: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_INSTEADOF + lex.setTokenPosition(tkn) + tok = token.T_INSTEADOF { (lex.p)++ goto _out @@ -3117,8 +3120,8 @@ func (lex *Lexer) Lex() *Token { case 54: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_INTERFACE + lex.setTokenPosition(tkn) + tok = token.T_INTERFACE { (lex.p)++ goto _out @@ -3127,8 +3130,8 @@ func (lex *Lexer) Lex() *Token { case 55: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_LIST + lex.setTokenPosition(tkn) + tok = token.T_LIST { (lex.p)++ goto _out @@ -3137,8 +3140,8 @@ func (lex *Lexer) Lex() *Token { case 56: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_NAMESPACE + lex.setTokenPosition(tkn) + tok = token.T_NAMESPACE { (lex.p)++ goto _out @@ -3147,8 +3150,8 @@ func (lex *Lexer) Lex() *Token { case 57: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_PRIVATE + lex.setTokenPosition(tkn) + tok = token.T_PRIVATE { (lex.p)++ goto _out @@ -3157,8 +3160,8 @@ func (lex *Lexer) Lex() *Token { case 58: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_PUBLIC + lex.setTokenPosition(tkn) + tok = token.T_PUBLIC { (lex.p)++ goto _out @@ -3167,8 +3170,8 @@ func (lex *Lexer) Lex() *Token { case 59: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_PRINT + lex.setTokenPosition(tkn) + tok = token.T_PRINT { (lex.p)++ goto _out @@ -3177,8 +3180,8 @@ func (lex *Lexer) Lex() *Token { case 60: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_PROTECTED + lex.setTokenPosition(tkn) + tok = token.T_PROTECTED { (lex.p)++ goto _out @@ -3187,8 +3190,8 @@ func (lex *Lexer) Lex() *Token { case 61: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_RETURN + lex.setTokenPosition(tkn) + tok = token.T_RETURN { (lex.p)++ goto _out @@ -3197,8 +3200,8 @@ func (lex *Lexer) Lex() *Token { case 62: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_STATIC + lex.setTokenPosition(tkn) + tok = token.T_STATIC { (lex.p)++ goto _out @@ -3207,8 +3210,8 @@ func (lex *Lexer) Lex() *Token { case 63: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_SWITCH + lex.setTokenPosition(tkn) + tok = token.T_SWITCH { (lex.p)++ goto _out @@ -3217,8 +3220,8 @@ func (lex *Lexer) Lex() *Token { case 64: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_THROW + lex.setTokenPosition(tkn) + tok = token.T_THROW { (lex.p)++ goto _out @@ -3227,8 +3230,8 @@ func (lex *Lexer) Lex() *Token { case 65: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_TRAIT + lex.setTokenPosition(tkn) + tok = token.T_TRAIT { (lex.p)++ goto _out @@ -3237,8 +3240,8 @@ func (lex *Lexer) Lex() *Token { case 66: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_TRY + lex.setTokenPosition(tkn) + tok = token.T_TRY { (lex.p)++ goto _out @@ -3247,8 +3250,8 @@ func (lex *Lexer) Lex() *Token { case 67: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_UNSET + lex.setTokenPosition(tkn) + tok = token.T_UNSET { (lex.p)++ goto _out @@ -3257,8 +3260,8 @@ func (lex *Lexer) Lex() *Token { case 68: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_USE + lex.setTokenPosition(tkn) + tok = token.T_USE { (lex.p)++ goto _out @@ -3267,8 +3270,8 @@ func (lex *Lexer) Lex() *Token { case 69: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_VAR + lex.setTokenPosition(tkn) + tok = token.T_VAR { (lex.p)++ goto _out @@ -3277,8 +3280,8 @@ func (lex *Lexer) Lex() *Token { case 70: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_WHILE + lex.setTokenPosition(tkn) + tok = token.T_WHILE { (lex.p)++ goto _out @@ -3287,8 +3290,8 @@ func (lex *Lexer) Lex() *Token { case 71: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_YIELD_FROM + lex.setTokenPosition(tkn) + tok = token.T_YIELD_FROM { (lex.p)++ goto _out @@ -3297,8 +3300,8 @@ func (lex *Lexer) Lex() *Token { case 74: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_INCLUDE_ONCE + lex.setTokenPosition(tkn) + tok = token.T_INCLUDE_ONCE { (lex.p)++ goto _out @@ -3307,8 +3310,8 @@ func (lex *Lexer) Lex() *Token { case 76: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_REQUIRE_ONCE + lex.setTokenPosition(tkn) + tok = token.T_REQUIRE_ONCE { (lex.p)++ goto _out @@ -3317,8 +3320,8 @@ func (lex *Lexer) Lex() *Token { case 77: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_CLASS_C + lex.setTokenPosition(tkn) + tok = token.T_CLASS_C { (lex.p)++ goto _out @@ -3327,8 +3330,8 @@ func (lex *Lexer) Lex() *Token { case 78: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DIR + lex.setTokenPosition(tkn) + tok = token.T_DIR { (lex.p)++ goto _out @@ -3337,8 +3340,8 @@ func (lex *Lexer) Lex() *Token { case 79: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_FILE + lex.setTokenPosition(tkn) + tok = token.T_FILE { (lex.p)++ goto _out @@ -3347,8 +3350,8 @@ func (lex *Lexer) Lex() *Token { case 80: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_FUNC_C + lex.setTokenPosition(tkn) + tok = token.T_FUNC_C { (lex.p)++ goto _out @@ -3357,8 +3360,8 @@ func (lex *Lexer) Lex() *Token { case 81: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_LINE + lex.setTokenPosition(tkn) + tok = token.T_LINE { (lex.p)++ goto _out @@ -3367,8 +3370,8 @@ func (lex *Lexer) Lex() *Token { case 82: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_NS_C + lex.setTokenPosition(tkn) + tok = token.T_NS_C { (lex.p)++ goto _out @@ -3377,8 +3380,8 @@ func (lex *Lexer) Lex() *Token { case 83: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_METHOD_C + lex.setTokenPosition(tkn) + tok = token.T_METHOD_C { (lex.p)++ goto _out @@ -3387,8 +3390,8 @@ func (lex *Lexer) Lex() *Token { case 84: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_TRAIT_C + lex.setTokenPosition(tkn) + tok = token.T_TRAIT_C { (lex.p)++ goto _out @@ -3397,8 +3400,8 @@ func (lex *Lexer) Lex() *Token { case 85: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_HALT_COMPILER + lex.setTokenPosition(tkn) + tok = token.T_HALT_COMPILER lex.cs = 518 { (lex.p)++ @@ -3408,8 +3411,8 @@ func (lex *Lexer) Lex() *Token { case 86: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_NEW + lex.setTokenPosition(tkn) + tok = token.T_NEW { (lex.p)++ goto _out @@ -3418,8 +3421,8 @@ func (lex *Lexer) Lex() *Token { case 87: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_LOGICAL_AND + lex.setTokenPosition(tkn) + tok = token.T_LOGICAL_AND { (lex.p)++ goto _out @@ -3428,8 +3431,8 @@ func (lex *Lexer) Lex() *Token { case 88: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_LOGICAL_OR + lex.setTokenPosition(tkn) + tok = token.T_LOGICAL_OR { (lex.p)++ goto _out @@ -3438,8 +3441,8 @@ func (lex *Lexer) Lex() *Token { case 89: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_LOGICAL_XOR + lex.setTokenPosition(tkn) + tok = token.T_LOGICAL_XOR { (lex.p)++ goto _out @@ -3448,8 +3451,8 @@ func (lex *Lexer) Lex() *Token { case 118: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_SL + lex.setTokenPosition(tkn) + tok = token.T_SL { (lex.p)++ goto _out @@ -3458,8 +3461,8 @@ func (lex *Lexer) Lex() *Token { case 135: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_STRING + lex.setTokenPosition(tkn) + tok = token.T_STRING { (lex.p)++ goto _out @@ -3468,8 +3471,8 @@ func (lex *Lexer) Lex() *Token { case 140: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = TokenID(int('"')) + lex.setTokenPosition(tkn) + tok = token.ID(int('"')) lex.cs = 493 { (lex.p)++ @@ -3480,11 +3483,11 @@ func (lex *Lexer) Lex() *Token { goto _again tr15: - // line internal/scanner/scanner.rl:350 + // line internal/scanner/scanner.rl:351 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_CONSTANT_ENCAPSED_STRING + lex.setTokenPosition(tkn) + tok = token.T_CONSTANT_ENCAPSED_STRING { (lex.p)++ lex.cs = 123 @@ -3493,7 +3496,7 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr19: - // line internal/scanner/scanner.rl:373 + // line internal/scanner/scanner.rl:374 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] @@ -3501,13 +3504,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr23: - // line internal/scanner/scanner.rl:335 + // line internal/scanner/scanner.rl:338 (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.setTokenPosition(tkn) + tok = token.ID(int(lex.data[lex.ts])) { (lex.p)++ lex.cs = 123 @@ -3516,11 +3517,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr38: - // line internal/scanner/scanner.rl:310 + // line internal/scanner/scanner.rl:313 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_ARRAY_CAST + lex.setTokenPosition(tkn) + tok = token.T_ARRAY_CAST { (lex.p)++ lex.cs = 123 @@ -3529,11 +3530,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr45: - // line internal/scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:318 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_STRING_CAST + lex.setTokenPosition(tkn) + tok = token.T_STRING_CAST { (lex.p)++ lex.cs = 123 @@ -3542,11 +3543,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr49: - // line internal/scanner/scanner.rl:311 + // line internal/scanner/scanner.rl:314 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_BOOL_CAST + lex.setTokenPosition(tkn) + tok = token.T_BOOL_CAST { (lex.p)++ lex.cs = 123 @@ -3555,11 +3556,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr57: - // line internal/scanner/scanner.rl:312 + // line internal/scanner/scanner.rl:315 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_DOUBLE_CAST + lex.setTokenPosition(tkn) + tok = token.T_DOUBLE_CAST { (lex.p)++ lex.cs = 123 @@ -3568,11 +3569,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr64: - // line internal/scanner/scanner.rl:313 + // line internal/scanner/scanner.rl:316 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_INT_CAST + lex.setTokenPosition(tkn) + tok = token.T_INT_CAST { (lex.p)++ lex.cs = 123 @@ -3581,11 +3582,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr73: - // line internal/scanner/scanner.rl:314 + // line internal/scanner/scanner.rl:317 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_OBJECT_CAST + lex.setTokenPosition(tkn) + tok = token.T_OBJECT_CAST { (lex.p)++ lex.cs = 123 @@ -3594,11 +3595,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr84: - // line internal/scanner/scanner.rl:316 + // line internal/scanner/scanner.rl:319 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_UNSET_CAST + lex.setTokenPosition(tkn) + tok = token.T_UNSET_CAST { (lex.p)++ lex.cs = 123 @@ -3607,11 +3608,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr85: - // line internal/scanner/scanner.rl:278 + // line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_ELLIPSIS + lex.setTokenPosition(tkn) + tok = token.T_ELLIPSIS { (lex.p)++ lex.cs = 123 @@ -3620,11 +3621,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr88: - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:167 (lex.p) = (lex.te) - 1 { - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ lex.cs = 123 @@ -3633,7 +3634,7 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr98: - // line internal/scanner/scanner.rl:322 + // line internal/scanner/scanner.rl:325 lex.te = (lex.p) + 1 { isDocComment := false @@ -3642,14 +3643,14 @@ func (lex *Lexer) Lex() *Token { } if isDocComment { - lex.addHiddenToken(token, T_DOC_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) } } goto st123 tr99: - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:178 (lex.p) = (lex.te) - 1 { base := 10 @@ -3661,8 +3662,8 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, base, 0) if err == nil { - lex.setTokenPosition(token) - tok = T_LNUMBER + lex.setTokenPosition(tkn) + tok = token.T_LNUMBER { (lex.p)++ lex.cs = 123 @@ -3670,8 +3671,8 @@ func (lex *Lexer) Lex() *Token { } } - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ lex.cs = 123 @@ -3681,11 +3682,11 @@ func (lex *Lexer) Lex() *Token { goto st123 tr112: lex.cs = 123 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:165 (lex.p) = (lex.te) - 1 { - lex.setTokenPosition(token) - tok = TokenID(int(';')) + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) lex.cs = 116 { (lex.p)++ @@ -3695,11 +3696,11 @@ func (lex *Lexer) Lex() *Token { goto _again tr128: lex.cs = 123 - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:164 (lex.p) = (lex.te) - 1 { - lex.setTokenPosition(token) - tok = TokenID(int(';')) + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) lex.cs = 116 { (lex.p)++ @@ -3708,11 +3709,11 @@ func (lex *Lexer) Lex() *Token { } goto _again tr130: - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:347 (lex.p) = (lex.te) - 1 { - lex.setTokenPosition(token) - tok = T_STRING + lex.setTokenPosition(tkn) + tok = token.T_STRING { (lex.p)++ lex.cs = 123 @@ -3721,11 +3722,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr132: - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:262 (lex.p) = (lex.te) - 1 { - lex.setTokenPosition(token) - tok = T_YIELD + lex.setTokenPosition(tkn) + tok = token.T_YIELD { (lex.p)++ lex.cs = 123 @@ -3734,11 +3735,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr143: - // line internal/scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:261 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_YIELD_FROM + lex.setTokenPosition(tkn) + tok = token.T_YIELD_FROM { (lex.p)++ lex.cs = 123 @@ -3747,7 +3748,7 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr189: - // line internal/scanner/scanner.rl:373 + // line internal/scanner/scanner.rl:374 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3755,13 +3756,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr200: - // line internal/scanner/scanner.rl:335 + // line internal/scanner/scanner.rl:338 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.setTokenPosition(tkn) + tok = token.ID(int(lex.data[lex.ts])) { (lex.p)++ lex.cs = 123 @@ -3770,11 +3769,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr234: - // line internal/scanner/scanner.rl:277 + // line internal/scanner/scanner.rl:280 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_NS_SEPARATOR + lex.setTokenPosition(tkn) + tok = token.T_NS_SEPARATOR { (lex.p)++ lex.cs = 123 @@ -3784,11 +3783,11 @@ func (lex *Lexer) Lex() *Token { goto st123 tr237: lex.cs = 123 - // line internal/scanner/scanner.rl:370 + // line internal/scanner/scanner.rl:371 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int('`')) + lex.setTokenPosition(tkn) + tok = token.ID(int('`')) lex.cs = 487 { (lex.p)++ @@ -3797,45 +3796,45 @@ func (lex *Lexer) Lex() *Token { } goto _again tr238: - // line internal/scanner/scanner.rl:343 + // line internal/scanner/scanner.rl:344 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int('{')) + lex.setTokenPosition(tkn) + tok = token.ID(int('{')) lex.call(123, 123) goto _out } goto st123 tr240: - // line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:345 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int('}')) + lex.setTokenPosition(tkn) + tok = token.ID(int('}')) lex.ret(1) goto _out } goto st123 tr241: - // line internal/scanner/scanner.rl:160 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st123 tr243: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:160 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st123 tr247: - // line internal/scanner/scanner.rl:373 + // line internal/scanner/scanner.rl:374 lex.te = (lex.p) (lex.p)-- { @@ -3844,14 +3843,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr248: - // line internal/scanner/scanner.rl:335 + // line internal/scanner/scanner.rl:338 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.setTokenPosition(tkn) + tok = token.ID(int(lex.data[lex.ts])) { (lex.p)++ lex.cs = 123 @@ -3860,12 +3857,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr250: - // line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_IS_NOT_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_IS_NOT_EQUAL { (lex.p)++ lex.cs = 123 @@ -3874,11 +3871,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr251: - // line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_IS_NOT_IDENTICAL + lex.setTokenPosition(tkn) + tok = token.T_IS_NOT_IDENTICAL { (lex.p)++ lex.cs = 123 @@ -3888,12 +3885,12 @@ func (lex *Lexer) Lex() *Token { goto st123 tr252: lex.cs = 123 - // line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:372 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = TokenID(int('"')) + lex.setTokenPosition(tkn) + tok = token.ID(int('"')) lex.cs = 493 { (lex.p)++ @@ -3902,32 +3899,32 @@ func (lex *Lexer) Lex() *Token { } goto _again tr253: - // line internal/scanner/scanner.rl:318 + // line internal/scanner/scanner.rl:321 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) } goto st123 tr256: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:318 + // line internal/scanner/scanner.rl:321 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) } goto st123 tr261: - // line internal/scanner/scanner.rl:345 + // line internal/scanner/scanner.rl:346 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_VARIABLE + lex.setTokenPosition(tkn) + tok = token.T_VARIABLE { (lex.p)++ lex.cs = 123 @@ -3936,11 +3933,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr262: - // line internal/scanner/scanner.rl:291 + // line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_MOD_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_MOD_EQUAL { (lex.p)++ lex.cs = 123 @@ -3949,11 +3946,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr263: - // line internal/scanner/scanner.rl:280 + // line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_BOOLEAN_AND + lex.setTokenPosition(tkn) + tok = token.T_BOOLEAN_AND { (lex.p)++ lex.cs = 123 @@ -3962,11 +3959,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr264: - // line internal/scanner/scanner.rl:282 + // line internal/scanner/scanner.rl:285 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_AND_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_AND_EQUAL { (lex.p)++ lex.cs = 123 @@ -3975,11 +3972,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr266: - // line internal/scanner/scanner.rl:285 + // line internal/scanner/scanner.rl:288 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_MUL_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_MUL_EQUAL { (lex.p)++ lex.cs = 123 @@ -3988,12 +3985,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr267: - // line internal/scanner/scanner.rl:304 + // line internal/scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_POW + lex.setTokenPosition(tkn) + tok = token.T_POW { (lex.p)++ lex.cs = 123 @@ -4002,11 +3999,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr268: - // line internal/scanner/scanner.rl:286 + // line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_POW_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_POW_EQUAL { (lex.p)++ lex.cs = 123 @@ -4015,11 +4012,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr269: - // line internal/scanner/scanner.rl:293 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_INC + lex.setTokenPosition(tkn) + tok = token.T_INC { (lex.p)++ lex.cs = 123 @@ -4028,11 +4025,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr270: - // line internal/scanner/scanner.rl:288 + // line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_PLUS_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_PLUS_EQUAL { (lex.p)++ lex.cs = 123 @@ -4041,11 +4038,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr271: - // line internal/scanner/scanner.rl:292 + // line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_DEC + lex.setTokenPosition(tkn) + tok = token.T_DEC { (lex.p)++ lex.cs = 123 @@ -4054,11 +4051,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr272: - // line internal/scanner/scanner.rl:289 + // line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_MINUS_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_MINUS_EQUAL { (lex.p)++ lex.cs = 123 @@ -4068,11 +4065,11 @@ func (lex *Lexer) Lex() *Token { goto st123 tr273: lex.cs = 123 - // line internal/scanner/scanner.rl:348 + // line internal/scanner/scanner.rl:349 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_OBJECT_OPERATOR + lex.setTokenPosition(tkn) + tok = token.T_OBJECT_OPERATOR lex.cs = 470 { (lex.p)++ @@ -4081,11 +4078,11 @@ func (lex *Lexer) Lex() *Token { } goto _again tr275: - // line internal/scanner/scanner.rl:284 + // line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_CONCAT_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_CONCAT_EQUAL { (lex.p)++ lex.cs = 123 @@ -4094,12 +4091,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr276: - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:167 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ lex.cs = 123 @@ -4108,11 +4105,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr279: - // line internal/scanner/scanner.rl:287 + // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_DIV_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_DIV_EQUAL { (lex.p)++ lex.cs = 123 @@ -4121,7 +4118,7 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr280: - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:178 lex.te = (lex.p) (lex.p)-- { @@ -4134,8 +4131,8 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, base, 0) if err == nil { - lex.setTokenPosition(token) - tok = T_LNUMBER + lex.setTokenPosition(tkn) + tok = token.T_LNUMBER { (lex.p)++ lex.cs = 123 @@ -4143,8 +4140,8 @@ func (lex *Lexer) Lex() *Token { } } - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ lex.cs = 123 @@ -4153,7 +4150,7 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr285: - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:168 lex.te = (lex.p) (lex.p)-- { @@ -4161,8 +4158,8 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, 2, 0) if err == nil { - lex.setTokenPosition(token) - tok = T_LNUMBER + lex.setTokenPosition(tkn) + tok = token.T_LNUMBER { (lex.p)++ lex.cs = 123 @@ -4170,8 +4167,8 @@ func (lex *Lexer) Lex() *Token { } } - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ lex.cs = 123 @@ -4180,7 +4177,7 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr286: - // line internal/scanner/scanner.rl:190 + // line internal/scanner/scanner.rl:193 lex.te = (lex.p) (lex.p)-- { @@ -4188,8 +4185,8 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, 16, 0) if err == nil { - lex.setTokenPosition(token) - tok = T_LNUMBER + lex.setTokenPosition(tkn) + tok = token.T_LNUMBER { (lex.p)++ lex.cs = 123 @@ -4197,8 +4194,8 @@ func (lex *Lexer) Lex() *Token { } } - lex.setTokenPosition(token) - tok = T_DNUMBER + lex.setTokenPosition(tkn) + tok = token.T_DNUMBER { (lex.p)++ lex.cs = 123 @@ -4207,11 +4204,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr287: - // line internal/scanner/scanner.rl:279 + // line internal/scanner/scanner.rl:282 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_PAAMAYIM_NEKUDOTAYIM + lex.setTokenPosition(tkn) + tok = token.T_PAAMAYIM_NEKUDOTAYIM { (lex.p)++ lex.cs = 123 @@ -4221,12 +4218,12 @@ func (lex *Lexer) Lex() *Token { goto st123 tr288: lex.cs = 123 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = TokenID(int(';')) + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) lex.cs = 116 { (lex.p)++ @@ -4236,14 +4233,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr290: lex.cs = 123 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = TokenID(int(';')) + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) lex.cs = 116 { (lex.p)++ @@ -4252,11 +4249,11 @@ func (lex *Lexer) Lex() *Token { } goto _again tr293: - // line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_IS_NOT_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_IS_NOT_EQUAL { (lex.p)++ lex.cs = 123 @@ -4265,12 +4262,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr294: - // line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:308 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_SL + lex.setTokenPosition(tkn) + tok = token.T_SL { (lex.p)++ lex.cs = 123 @@ -4279,11 +4276,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr295: - // line internal/scanner/scanner.rl:300 + // line internal/scanner/scanner.rl:303 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_SL_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_SL_EQUAL { (lex.p)++ lex.cs = 123 @@ -4293,15 +4290,15 @@ func (lex *Lexer) Lex() *Token { goto st123 tr296: lex.cs = 123 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:356 + // line internal/scanner/scanner.rl:357 lex.te = (lex.p) (lex.p)-- { lex.heredocLabel = lex.data[lblStart:lblEnd] - lex.setTokenPosition(token) - tok = T_START_HEREDOC + lex.setTokenPosition(tkn) + tok = token.T_START_HEREDOC if lex.isHeredocEnd(lex.p + 1) { lex.cs = 499 @@ -4317,12 +4314,12 @@ func (lex *Lexer) Lex() *Token { } goto _again tr297: - // line internal/scanner/scanner.rl:303 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_IS_SMALLER_OR_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_IS_SMALLER_OR_EQUAL { (lex.p)++ lex.cs = 123 @@ -4331,11 +4328,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr298: - // line internal/scanner/scanner.rl:295 + // line internal/scanner/scanner.rl:298 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_SPACESHIP + lex.setTokenPosition(tkn) + tok = token.T_SPACESHIP { (lex.p)++ lex.cs = 123 @@ -4344,11 +4341,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr300: - // line internal/scanner/scanner.rl:294 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_DOUBLE_ARROW + lex.setTokenPosition(tkn) + tok = token.T_DOUBLE_ARROW { (lex.p)++ lex.cs = 123 @@ -4357,12 +4354,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr301: - // line internal/scanner/scanner.rl:298 + // line internal/scanner/scanner.rl:301 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_IS_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_IS_EQUAL { (lex.p)++ lex.cs = 123 @@ -4371,11 +4368,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr302: - // line internal/scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_IS_IDENTICAL + lex.setTokenPosition(tkn) + tok = token.T_IS_IDENTICAL { (lex.p)++ lex.cs = 123 @@ -4384,11 +4381,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr303: - // line internal/scanner/scanner.rl:302 + // line internal/scanner/scanner.rl:305 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_IS_GREATER_OR_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_IS_GREATER_OR_EQUAL { (lex.p)++ lex.cs = 123 @@ -4397,12 +4394,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr305: - // line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:309 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_SR + lex.setTokenPosition(tkn) + tok = token.T_SR { (lex.p)++ lex.cs = 123 @@ -4411,11 +4408,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr306: - // line internal/scanner/scanner.rl:301 + // line internal/scanner/scanner.rl:304 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_SR_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_SR_EQUAL { (lex.p)++ lex.cs = 123 @@ -4425,12 +4422,12 @@ func (lex *Lexer) Lex() *Token { goto st123 tr309: lex.cs = 123 - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:164 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = TokenID(int(';')) + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) lex.cs = 116 { (lex.p)++ @@ -4440,14 +4437,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr311: lex.cs = 123 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:164 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = TokenID(int(';')) + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) lex.cs = 116 { (lex.p)++ @@ -4456,12 +4453,12 @@ func (lex *Lexer) Lex() *Token { } goto _again tr312: - // line internal/scanner/scanner.rl:307 + // line internal/scanner/scanner.rl:310 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_COALESCE + lex.setTokenPosition(tkn) + tok = token.T_COALESCE { (lex.p)++ lex.cs = 123 @@ -4470,11 +4467,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr313: - // line internal/scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_COALESCE_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_COALESCE_EQUAL { (lex.p)++ lex.cs = 123 @@ -4483,12 +4480,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr314: - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:347 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_STRING + lex.setTokenPosition(tkn) + tok = token.T_STRING { (lex.p)++ lex.cs = 123 @@ -4497,12 +4494,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr394: - // line internal/scanner/scanner.rl:216 + // line internal/scanner/scanner.rl:219 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ELSE + lex.setTokenPosition(tkn) + tok = token.T_ELSE { (lex.p)++ lex.cs = 123 @@ -4511,12 +4508,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr414: - // line internal/scanner/scanner.rl:220 + // line internal/scanner/scanner.rl:223 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENDFOR + lex.setTokenPosition(tkn) + tok = token.T_ENDFOR { (lex.p)++ lex.cs = 123 @@ -4525,12 +4522,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr443: - // line internal/scanner/scanner.rl:228 + // line internal/scanner/scanner.rl:231 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_FINAL + lex.setTokenPosition(tkn) + tok = token.T_FINAL { (lex.p)++ lex.cs = 123 @@ -4539,12 +4536,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr447: - // line internal/scanner/scanner.rl:230 + // line internal/scanner/scanner.rl:233 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_FOR + lex.setTokenPosition(tkn) + tok = token.T_FOR { (lex.p)++ lex.cs = 123 @@ -4553,12 +4550,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr479: - // line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:263 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_INCLUDE + lex.setTokenPosition(tkn) + tok = token.T_INCLUDE { (lex.p)++ lex.cs = 123 @@ -4567,12 +4564,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr547: - // line internal/scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:265 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_REQUIRE + lex.setTokenPosition(tkn) + tok = token.T_REQUIRE { (lex.p)++ lex.cs = 123 @@ -4581,12 +4578,12 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr593: - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:262 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_YIELD + lex.setTokenPosition(tkn) + tok = token.T_YIELD { (lex.p)++ lex.cs = 123 @@ -4595,11 +4592,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr598: - // line internal/scanner/scanner.rl:290 + // line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_XOR_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_XOR_EQUAL { (lex.p)++ lex.cs = 123 @@ -4608,11 +4605,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr672: - // line internal/scanner/scanner.rl:283 + // line internal/scanner/scanner.rl:286 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_OR_EQUAL + lex.setTokenPosition(tkn) + tok = token.T_OR_EQUAL { (lex.p)++ lex.cs = 123 @@ -4621,11 +4618,11 @@ func (lex *Lexer) Lex() *Token { } goto st123 tr673: - // line internal/scanner/scanner.rl:281 + // line internal/scanner/scanner.rl:284 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_BOOLEAN_OR + lex.setTokenPosition(tkn) + tok = token.T_BOOLEAN_OR { (lex.p)++ lex.cs = 123 @@ -4644,7 +4641,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:3509 + // line internal/scanner/scanner.go:3506 switch lex.data[(lex.p)] { case 10: goto tr11 @@ -4829,7 +4826,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st124 st124: @@ -4837,7 +4834,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof124 } st_case_124: - // line internal/scanner/scanner.go:3702 + // line internal/scanner/scanner.go:3699 switch lex.data[(lex.p)] { case 10: goto tr11 @@ -4854,7 +4851,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4869,9 +4866,9 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4887,7 +4884,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof125 } st_case_125: - // line internal/scanner/scanner.go:3752 + // line internal/scanner/scanner.go:3749 switch lex.data[(lex.p)] { case 10: goto tr245 @@ -4901,7 +4898,7 @@ func (lex *Lexer) Lex() *Token { } goto tr243 tr242: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4913,9 +4910,9 @@ func (lex *Lexer) Lex() *Token { goto st6 tr246: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4931,13 +4928,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof6 } st_case_6: - // line internal/scanner/scanner.go:3796 + // line internal/scanner/scanner.go:3793 if lex.data[(lex.p)] == 10 { goto tr11 } goto tr10 tr191: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4953,7 +4950,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof126 } st_case_126: - // line internal/scanner/scanner.go:3818 + // line internal/scanner/scanner.go:3815 if lex.data[(lex.p)] == 10 { goto tr11 } @@ -4980,7 +4977,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:372 lex.act = 140 goto st129 st129: @@ -4988,7 +4985,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof129 } st_case_129: - // line internal/scanner/scanner.go:3853 + // line internal/scanner/scanner.go:3850 switch lex.data[(lex.p)] { case 10: goto tr14 @@ -5005,7 +5002,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr14: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5021,7 +5018,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof7 } st_case_7: - // line internal/scanner/scanner.go:3886 + // line internal/scanner/scanner.go:3883 switch lex.data[(lex.p)] { case 10: goto tr14 @@ -5098,7 +5095,7 @@ func (lex *Lexer) Lex() *Token { } goto st7 tr255: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5110,13 +5107,13 @@ func (lex *Lexer) Lex() *Token { goto st130 tr257: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st130 tr259: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5132,7 +5129,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof130 } st_case_130: - // line internal/scanner/scanner.go:3997 + // line internal/scanner/scanner.go:3994 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5182,7 +5179,7 @@ func (lex *Lexer) Lex() *Token { } goto tr253 tr254: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5194,9 +5191,9 @@ func (lex *Lexer) Lex() *Token { goto st131 tr258: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5212,7 +5209,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof131 } st_case_131: - // line internal/scanner/scanner.go:4077 + // line internal/scanner/scanner.go:4074 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5339,7 +5336,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof136 } st_case_136: - // line internal/scanner/scanner.go:4204 + // line internal/scanner/scanner.go:4201 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5352,7 +5349,7 @@ func (lex *Lexer) Lex() *Token { } goto st11 tr21: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5368,7 +5365,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:4233 + // line internal/scanner/scanner.go:4230 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5402,7 +5399,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof137 } st_case_137: - // line internal/scanner/scanner.go:4267 + // line internal/scanner/scanner.go:4264 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6250,7 +6247,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:5115 + // line internal/scanner/scanner.go:5112 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6274,7 +6271,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:167 lex.act = 10 goto st143 st143: @@ -6282,7 +6279,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:5147 + // line internal/scanner/scanner.go:5144 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6323,7 +6320,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:167 lex.act = 10 goto st144 st144: @@ -6331,7 +6328,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5196 + // line internal/scanner/scanner.go:5193 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6358,7 +6355,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5223 + // line internal/scanner/scanner.go:5220 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6369,7 +6366,7 @@ func (lex *Lexer) Lex() *Token { } goto tr248 tr92: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6381,13 +6378,13 @@ func (lex *Lexer) Lex() *Token { goto st71 tr94: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st71 tr96: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6403,7 +6400,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5268 + // line internal/scanner/scanner.go:5265 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6414,7 +6411,7 @@ func (lex *Lexer) Lex() *Token { } goto st71 tr91: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6426,9 +6423,9 @@ func (lex *Lexer) Lex() *Token { goto st72 tr95: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6444,7 +6441,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5309 + // line internal/scanner/scanner.go:5306 switch lex.data[(lex.p)] { case 10: goto tr95 @@ -6455,7 +6452,7 @@ func (lex *Lexer) Lex() *Token { } goto tr94 tr97: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st73 st73: @@ -6463,7 +6460,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5328 + // line internal/scanner/scanner.go:5325 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6479,7 +6476,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:178 lex.act = 12 goto st146 st146: @@ -6487,7 +6484,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5352 + // line internal/scanner/scanner.go:5349 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6510,7 +6507,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:167 lex.act = 10 goto st147 st147: @@ -6518,7 +6515,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5383 + // line internal/scanner/scanner.go:5380 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6533,7 +6530,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:178 lex.act = 12 goto st148 st148: @@ -6541,7 +6538,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5406 + // line internal/scanner/scanner.go:5403 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6578,7 +6575,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:168 lex.act = 11 goto st149 st149: @@ -6586,7 +6583,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof149 } st_case_149: - // line internal/scanner/scanner.go:5451 + // line internal/scanner/scanner.go:5448 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6616,7 +6613,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:190 + // line internal/scanner/scanner.rl:193 lex.act = 13 goto st150 st150: @@ -6624,7 +6621,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5489 + // line internal/scanner/scanner.go:5486 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6660,7 +6657,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof152 } st_case_152: - // line internal/scanner/scanner.go:5525 + // line internal/scanner/scanner.go:5522 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6676,7 +6673,7 @@ func (lex *Lexer) Lex() *Token { } goto tr248 tr107: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st77 st77: @@ -6684,7 +6681,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5549 + // line internal/scanner/scanner.go:5546 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6700,7 +6697,7 @@ func (lex *Lexer) Lex() *Token { } goto tr23 tr104: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6712,9 +6709,9 @@ func (lex *Lexer) Lex() *Token { goto st78 tr108: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6730,7 +6727,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5595 + // line internal/scanner/scanner.go:5592 switch lex.data[(lex.p)] { case 10: goto tr108 @@ -6746,7 +6743,7 @@ func (lex *Lexer) Lex() *Token { } goto tr23 tr105: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6758,9 +6755,9 @@ func (lex *Lexer) Lex() *Token { goto st79 tr109: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6776,13 +6773,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5641 + // line internal/scanner/scanner.go:5638 if lex.data[(lex.p)] == 10 { goto tr104 } goto tr23 tr110: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st80 st80: @@ -6790,7 +6787,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5655 + // line internal/scanner/scanner.go:5652 if lex.data[(lex.p)] == 62 { goto tr111 } @@ -6805,7 +6802,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof153 } st_case_153: - // line internal/scanner/scanner.go:5670 + // line internal/scanner/scanner.go:5667 switch lex.data[(lex.p)] { case 10: goto tr113 @@ -6814,7 +6811,7 @@ func (lex *Lexer) Lex() *Token { } goto tr288 tr113: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6830,10 +6827,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5695 + // line internal/scanner/scanner.go:5692 goto tr290 tr289: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6849,7 +6846,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof81 } st_case_81: - // line internal/scanner/scanner.go:5714 + // line internal/scanner/scanner.go:5711 if lex.data[(lex.p)] == 10 { goto tr113 } @@ -6872,7 +6869,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:308 lex.act = 118 goto st156 st156: @@ -6880,7 +6877,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof156 } st_case_156: - // line internal/scanner/scanner.go:5745 + // line internal/scanner/scanner.go:5742 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6940,7 +6937,7 @@ func (lex *Lexer) Lex() *Token { } goto tr118 tr118: - // line internal/scanner/scanner.rl:35 + // line internal/scanner/scanner.rl:38 lblStart = lex.p goto st84 st84: @@ -6948,7 +6945,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5813 + // line internal/scanner/scanner.go:5810 switch lex.data[(lex.p)] { case 34: goto tr119 @@ -6974,7 +6971,7 @@ func (lex *Lexer) Lex() *Token { } goto st84 tr119: - // line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:39 lblEnd = lex.p goto st85 st85: @@ -6982,7 +6979,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5847 + // line internal/scanner/scanner.go:5844 switch lex.data[(lex.p)] { case 10: goto tr121 @@ -6991,7 +6988,7 @@ func (lex *Lexer) Lex() *Token { } goto tr12 tr121: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7003,9 +7000,9 @@ func (lex *Lexer) Lex() *Token { goto st157 tr125: - // line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:39 lblEnd = lex.p - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7021,10 +7018,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof157 } st_case_157: - // line internal/scanner/scanner.go:5886 + // line internal/scanner/scanner.go:5883 goto tr296 tr122: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7036,9 +7033,9 @@ func (lex *Lexer) Lex() *Token { goto st86 tr126: - // line internal/scanner/scanner.rl:36 + // line internal/scanner/scanner.rl:39 lblEnd = lex.p - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7054,7 +7051,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5919 + // line internal/scanner/scanner.go:5916 if lex.data[(lex.p)] == 10 { goto tr121 } @@ -7081,7 +7078,7 @@ func (lex *Lexer) Lex() *Token { } goto tr123 tr123: - // line internal/scanner/scanner.rl:35 + // line internal/scanner/scanner.rl:38 lblStart = lex.p goto st88 st88: @@ -7089,7 +7086,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5954 + // line internal/scanner/scanner.go:5951 switch lex.data[(lex.p)] { case 39: goto tr119 @@ -7115,7 +7112,7 @@ func (lex *Lexer) Lex() *Token { } goto st88 tr117: - // line internal/scanner/scanner.rl:35 + // line internal/scanner/scanner.rl:38 lblStart = lex.p goto st89 st89: @@ -7123,7 +7120,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5988 + // line internal/scanner/scanner.go:5985 switch lex.data[(lex.p)] { case 10: goto tr125 @@ -7223,7 +7220,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof164 } st_case_164: - // line internal/scanner/scanner.go:6088 + // line internal/scanner/scanner.go:6085 switch lex.data[(lex.p)] { case 10: goto tr129 @@ -7232,7 +7229,7 @@ func (lex *Lexer) Lex() *Token { } goto tr309 tr129: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7248,10 +7245,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof165 } st_case_165: - // line internal/scanner/scanner.go:6113 + // line internal/scanner/scanner.go:6110 goto tr311 tr310: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7267,7 +7264,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof90 } st_case_90: - // line internal/scanner/scanner.go:6132 + // line internal/scanner/scanner.go:6129 if lex.data[(lex.p)] == 10 { goto tr129 } @@ -7328,490 +7325,490 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:347 lex.act = 135 goto st168 tr318: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:203 + // line internal/scanner/scanner.rl:206 lex.act = 16 goto st168 tr324: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:201 + // line internal/scanner/scanner.rl:204 lex.act = 14 goto st168 tr325: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:274 + // line internal/scanner/scanner.rl:277 lex.act = 87 goto st168 tr328: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:202 + // line internal/scanner/scanner.rl:205 lex.act = 15 goto st168 tr333: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:204 + // line internal/scanner/scanner.rl:207 lex.act = 17 goto st168 tr345: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:205 + // line internal/scanner/scanner.rl:208 lex.act = 18 goto st168 tr346: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:206 + // line internal/scanner/scanner.rl:209 lex.act = 19 goto st168 tr348: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:207 + // line internal/scanner/scanner.rl:210 lex.act = 20 goto st168 tr355: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:232 + // line internal/scanner/scanner.rl:235 lex.act = 45 goto st168 tr359: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:208 + // line internal/scanner/scanner.rl:211 lex.act = 21 goto st168 tr361: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:209 + // line internal/scanner/scanner.rl:212 lex.act = 22 goto st168 tr365: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:210 + // line internal/scanner/scanner.rl:213 lex.act = 23 goto st168 tr369: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:211 + // line internal/scanner/scanner.rl:214 lex.act = 24 goto st168 tr372: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:214 + // line internal/scanner/scanner.rl:217 lex.act = 27 goto st168 tr378: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:212 + // line internal/scanner/scanner.rl:215 lex.act = 25 goto st168 tr382: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:213 + // line internal/scanner/scanner.rl:216 lex.act = 26 goto st168 tr383: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:226 + // line internal/scanner/scanner.rl:229 lex.act = 39 goto st168 tr391: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:215 + // line internal/scanner/scanner.rl:218 lex.act = 28 goto st168 tr396: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:217 + // line internal/scanner/scanner.rl:220 lex.act = 30 goto st168 tr399: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:218 + // line internal/scanner/scanner.rl:221 lex.act = 31 goto st168 tr411: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:219 + // line internal/scanner/scanner.rl:222 lex.act = 32 goto st168 tr418: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:221 + // line internal/scanner/scanner.rl:224 lex.act = 34 goto st168 tr419: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:222 + // line internal/scanner/scanner.rl:225 lex.act = 35 goto st168 tr424: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:223 + // line internal/scanner/scanner.rl:226 lex.act = 36 goto st168 tr428: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:224 + // line internal/scanner/scanner.rl:227 lex.act = 37 goto st168 tr430: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:225 + // line internal/scanner/scanner.rl:228 lex.act = 38 goto st168 tr436: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:227 + // line internal/scanner/scanner.rl:230 lex.act = 40 goto st168 tr438: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:233 + // line internal/scanner/scanner.rl:236 lex.act = 46 goto st168 tr445: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:229 + // line internal/scanner/scanner.rl:232 lex.act = 42 goto st168 tr451: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:231 + // line internal/scanner/scanner.rl:234 lex.act = 44 goto st168 tr457: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:234 + // line internal/scanner/scanner.rl:237 lex.act = 47 goto st168 tr459: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:235 + // line internal/scanner/scanner.rl:238 lex.act = 48 goto st168 tr460: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:236 + // line internal/scanner/scanner.rl:239 lex.act = 49 goto st168 tr471: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:238 + // line internal/scanner/scanner.rl:241 lex.act = 51 goto st168 tr484: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:264 lex.act = 74 goto st168 tr492: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:239 + // line internal/scanner/scanner.rl:242 lex.act = 52 goto st168 tr496: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:240 + // line internal/scanner/scanner.rl:243 lex.act = 53 goto st168 tr502: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:241 + // line internal/scanner/scanner.rl:244 lex.act = 54 goto st168 tr505: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:237 + // line internal/scanner/scanner.rl:240 lex.act = 50 goto st168 tr508: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:242 + // line internal/scanner/scanner.rl:245 lex.act = 55 goto st168 tr517: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:243 + // line internal/scanner/scanner.rl:246 lex.act = 56 goto st168 tr518: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:273 + // line internal/scanner/scanner.rl:276 lex.act = 86 goto st168 tr519: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:275 + // line internal/scanner/scanner.rl:278 lex.act = 88 goto st168 tr526: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:246 + // line internal/scanner/scanner.rl:249 lex.act = 59 goto st168 tr529: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:244 + // line internal/scanner/scanner.rl:247 lex.act = 57 goto st168 tr535: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:247 + // line internal/scanner/scanner.rl:250 lex.act = 60 goto st168 tr539: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:245 + // line internal/scanner/scanner.rl:248 lex.act = 58 goto st168 tr552: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:263 + // line internal/scanner/scanner.rl:266 lex.act = 76 goto st168 tr555: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:248 + // line internal/scanner/scanner.rl:251 lex.act = 61 goto st168 tr561: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:249 + // line internal/scanner/scanner.rl:252 lex.act = 62 goto st168 tr565: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:250 + // line internal/scanner/scanner.rl:253 lex.act = 63 goto st168 tr570: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:251 + // line internal/scanner/scanner.rl:254 lex.act = 64 goto st168 tr572: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:253 + // line internal/scanner/scanner.rl:256 lex.act = 66 goto st168 tr574: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:252 + // line internal/scanner/scanner.rl:255 lex.act = 65 goto st168 tr579: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:254 + // line internal/scanner/scanner.rl:257 lex.act = 67 goto st168 tr580: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:255 + // line internal/scanner/scanner.rl:258 lex.act = 68 goto st168 tr582: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:256 + // line internal/scanner/scanner.rl:259 lex.act = 69 goto st168 tr586: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:257 + // line internal/scanner/scanner.rl:260 lex.act = 70 goto st168 tr588: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:276 + // line internal/scanner/scanner.rl:279 lex.act = 89 goto st168 tr597: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:261 lex.act = 71 goto st168 tr613: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:264 + // line internal/scanner/scanner.rl:267 lex.act = 77 goto st168 tr617: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:265 + // line internal/scanner/scanner.rl:268 lex.act = 78 goto st168 tr623: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:266 + // line internal/scanner/scanner.rl:269 lex.act = 79 goto st168 tr631: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:267 + // line internal/scanner/scanner.rl:270 lex.act = 80 goto st168 tr643: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:272 + // line internal/scanner/scanner.rl:275 lex.act = 85 goto st168 tr648: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:271 lex.act = 81 goto st168 tr655: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:273 lex.act = 83 goto st168 tr665: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:272 lex.act = 82 goto st168 tr671: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:274 lex.act = 84 goto st168 st168: @@ -7819,7 +7816,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof168 } st_case_168: - // line internal/scanner/scanner.go:6684 + // line internal/scanner/scanner.go:6681 if lex.data[(lex.p)] == 96 { goto tr12 } @@ -8155,7 +8152,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:347 lex.act = 135 goto st179 st179: @@ -8163,7 +8160,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof179 } st_case_179: - // line internal/scanner/scanner.go:7028 + // line internal/scanner/scanner.go:7025 switch lex.data[(lex.p)] { case 34: goto st7 @@ -15157,7 +15154,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof399 } st_case_399: - // line internal/scanner/scanner.go:14022 + // line internal/scanner/scanner.go:14019 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15200,7 +15197,7 @@ func (lex *Lexer) Lex() *Token { } goto tr220 tr137: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st93 st93: @@ -15208,7 +15205,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:14073 + // line internal/scanner/scanner.go:14070 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15226,7 +15223,7 @@ func (lex *Lexer) Lex() *Token { } goto tr132 tr134: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15238,9 +15235,9 @@ func (lex *Lexer) Lex() *Token { goto st94 tr138: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15256,7 +15253,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:14121 + // line internal/scanner/scanner.go:14118 switch lex.data[(lex.p)] { case 10: goto tr138 @@ -15274,7 +15271,7 @@ func (lex *Lexer) Lex() *Token { } goto tr132 tr135: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15286,9 +15283,9 @@ func (lex *Lexer) Lex() *Token { goto st95 tr139: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15304,13 +15301,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:14169 + // line internal/scanner/scanner.go:14166 if lex.data[(lex.p)] == 10 { goto tr134 } goto tr132 tr140: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st96 st96: @@ -15318,7 +15315,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:14183 + // line internal/scanner/scanner.go:14180 switch lex.data[(lex.p)] { case 82: goto st97 @@ -17422,14 +17419,14 @@ func (lex *Lexer) Lex() *Token { } goto tr248 tr144: - // line internal/scanner/scanner.rl:380 + // line internal/scanner/scanner.rl:381 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st470 tr674: - // line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17439,25 +17436,25 @@ func (lex *Lexer) Lex() *Token { } goto st470 tr679: - // line internal/scanner/scanner.rl:380 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st470 tr681: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:380 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st470 tr685: - // line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:384 lex.te = (lex.p) (lex.p)-- { @@ -17468,11 +17465,11 @@ func (lex *Lexer) Lex() *Token { } goto st470 tr686: - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:382 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_OBJECT_OPERATOR + lex.setTokenPosition(tkn) + tok = token.T_OBJECT_OPERATOR { (lex.p)++ lex.cs = 470 @@ -17482,12 +17479,12 @@ func (lex *Lexer) Lex() *Token { goto st470 tr687: lex.cs = 470 - // line internal/scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:383 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_STRING + lex.setTokenPosition(tkn) + tok = token.T_STRING lex.cs = 123 { (lex.p)++ @@ -17506,7 +17503,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16339 + // line internal/scanner/scanner.go:16336 switch lex.data[(lex.p)] { case 10: goto tr145 @@ -17551,7 +17548,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st471 st471: @@ -17559,7 +17556,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof471 } st_case_471: - // line internal/scanner/scanner.go:16392 + // line internal/scanner/scanner.go:16389 switch lex.data[(lex.p)] { case 10: goto tr145 @@ -17576,7 +17573,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17591,9 +17588,9 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17609,7 +17606,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof472 } st_case_472: - // line internal/scanner/scanner.go:16442 + // line internal/scanner/scanner.go:16439 switch lex.data[(lex.p)] { case 10: goto tr683 @@ -17623,7 +17620,7 @@ func (lex *Lexer) Lex() *Token { } goto tr681 tr680: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17635,9 +17632,9 @@ func (lex *Lexer) Lex() *Token { goto st99 tr684: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17653,13 +17650,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:16486 + // line internal/scanner/scanner.go:16483 if lex.data[(lex.p)] == 10 { goto tr145 } goto tr144 tr676: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17675,7 +17672,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof473 } st_case_473: - // line internal/scanner/scanner.go:16508 + // line internal/scanner/scanner.go:16505 if lex.data[(lex.p)] == 10 { goto tr145 } @@ -17729,8 +17726,8 @@ func (lex *Lexer) Lex() *Token { { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE lex.cs = 499 { (lex.p)++ @@ -17742,14 +17739,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr692: lex.cs = 476 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:387 + // line internal/scanner/scanner.rl:388 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE lex.cs = 499 { (lex.p)++ @@ -17759,12 +17756,12 @@ func (lex *Lexer) Lex() *Token { goto _again tr696: lex.cs = 476 - // line internal/scanner/scanner.rl:387 + // line internal/scanner/scanner.rl:388 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE lex.cs = 499 { (lex.p)++ @@ -17786,7 +17783,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16605 + // line internal/scanner/scanner.go:16602 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17843,16 +17840,16 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:387 + // line internal/scanner/scanner.rl:388 lex.act = 146 goto st477 tr693: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:387 + // line internal/scanner/scanner.rl:388 lex.act = 146 goto st477 st477: @@ -17860,7 +17857,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof477 } st_case_477: - // line internal/scanner/scanner.go:16679 + // line internal/scanner/scanner.go:16676 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17910,7 +17907,7 @@ func (lex *Lexer) Lex() *Token { } goto tr691 tr689: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17922,9 +17919,9 @@ func (lex *Lexer) Lex() *Token { goto st478 tr694: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17940,7 +17937,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof478 } st_case_478: - // line internal/scanner/scanner.go:16759 + // line internal/scanner/scanner.go:16756 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17990,7 +17987,7 @@ func (lex *Lexer) Lex() *Token { } goto tr692 tr690: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18002,9 +17999,9 @@ func (lex *Lexer) Lex() *Token { goto st479 tr695: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18020,7 +18017,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof479 } st_case_479: - // line internal/scanner/scanner.go:16839 + // line internal/scanner/scanner.go:16836 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18070,18 +18067,18 @@ func (lex *Lexer) Lex() *Token { } goto tr696 tr146: - // line internal/scanner/scanner.rl:396 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) + 1 { lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN + lex.setTokenPosition(tkn) + tok = token.T_CURLY_OPEN lex.call(480, 123) goto _out } goto st480 tr704: - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:399 lex.te = (lex.p) (lex.p)-- { @@ -18097,11 +18094,11 @@ func (lex *Lexer) Lex() *Token { } goto st480 tr705: - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:398 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.setTokenPosition(tkn) + tok = token.T_DOLLAR_OPEN_CURLY_BRACES lex.call(480, 516) goto _out } @@ -18114,16 +18111,16 @@ func (lex *Lexer) Lex() *Token { { (lex.p) = (lex.te) - 1 lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN + lex.setTokenPosition(tkn) + tok = token.T_CURLY_OPEN lex.call(480, 123) goto _out } case 148: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.setTokenPosition(tkn) + tok = token.T_DOLLAR_OPEN_CURLY_BRACES lex.call(480, 516) goto _out } @@ -18131,8 +18128,8 @@ func (lex *Lexer) Lex() *Token { { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { lex.cs = 499 @@ -18147,14 +18144,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr707: lex.cs = 480 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:399 + // line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { lex.cs = 499 @@ -18167,12 +18164,12 @@ func (lex *Lexer) Lex() *Token { goto _again tr711: lex.cs = 480 - // line internal/scanner/scanner.rl:399 + // line internal/scanner/scanner.rl:400 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { lex.cs = 499 @@ -18194,7 +18191,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16971 + // line internal/scanner/scanner.go:16968 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18273,30 +18270,30 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:399 + // line internal/scanner/scanner.rl:400 lex.act = 150 goto st482 tr708: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:399 + // line internal/scanner/scanner.rl:400 lex.act = 150 goto st482 tr712: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:398 lex.act = 148 goto st482 tr713: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:396 + // line internal/scanner/scanner.rl:397 lex.act = 147 goto st482 st482: @@ -18304,7 +18301,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof482 } st_case_482: - // line internal/scanner/scanner.go:17081 + // line internal/scanner/scanner.go:17078 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18354,7 +18351,7 @@ func (lex *Lexer) Lex() *Token { } goto tr706 tr700: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18366,9 +18363,9 @@ func (lex *Lexer) Lex() *Token { goto st483 tr709: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18384,7 +18381,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof483 } st_case_483: - // line internal/scanner/scanner.go:17161 + // line internal/scanner/scanner.go:17158 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18434,7 +18431,7 @@ func (lex *Lexer) Lex() *Token { } goto tr707 tr701: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18446,9 +18443,9 @@ func (lex *Lexer) Lex() *Token { goto st484 tr710: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18464,7 +18461,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof484 } st_case_484: - // line internal/scanner/scanner.go:17241 + // line internal/scanner/scanner.go:17238 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18628,7 +18625,7 @@ func (lex *Lexer) Lex() *Token { } goto tr711 tr148: - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:414 lex.te = (lex.p) + 1 { lex.ungetCnt(2) @@ -18643,33 +18640,33 @@ func (lex *Lexer) Lex() *Token { } goto st487 tr149: - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:413 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.setTokenPosition(tkn) + tok = token.T_DOLLAR_OPEN_CURLY_BRACES lex.call(487, 516) goto _out } goto st487 tr150: - // line internal/scanner/scanner.rl:411 + // line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN + lex.setTokenPosition(tkn) + tok = token.T_CURLY_OPEN lex.call(487, 123) goto _out } goto st487 tr715: lex.cs = 487 - // line internal/scanner/scanner.rl:414 + // line internal/scanner/scanner.rl:415 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int('`')) + lex.setTokenPosition(tkn) + tok = token.ID(int('`')) lex.cs = 123 { (lex.p)++ @@ -18685,16 +18682,16 @@ func (lex *Lexer) Lex() *Token { { (lex.p) = (lex.te) - 1 lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN + lex.setTokenPosition(tkn) + tok = token.T_CURLY_OPEN lex.call(487, 123) goto _out } case 152: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.setTokenPosition(tkn) + tok = token.T_DOLLAR_OPEN_CURLY_BRACES lex.call(487, 516) goto _out } @@ -18714,8 +18711,8 @@ func (lex *Lexer) Lex() *Token { case 154: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = TokenID(int('`')) + lex.setTokenPosition(tkn) + tok = token.ID(int('`')) lex.cs = 123 { (lex.p)++ @@ -18726,8 +18723,8 @@ func (lex *Lexer) Lex() *Token { { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ goto _out @@ -18737,14 +18734,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr724: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ lex.cs = 487 @@ -18753,12 +18750,12 @@ func (lex *Lexer) Lex() *Token { } goto st487 tr728: - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:416 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ lex.cs = 487 @@ -18777,7 +18774,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17484 + // line internal/scanner/scanner.go:17481 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18875,44 +18872,44 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:416 lex.act = 155 goto st488 tr721: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:414 + // line internal/scanner/scanner.rl:415 lex.act = 154 goto st488 tr725: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:416 lex.act = 155 goto st488 tr729: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:414 lex.act = 153 goto st488 tr730: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:413 lex.act = 152 goto st488 tr731: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:411 + // line internal/scanner/scanner.rl:412 lex.act = 151 goto st488 st488: @@ -18920,7 +18917,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof488 } st_case_488: - // line internal/scanner/scanner.go:17627 + // line internal/scanner/scanner.go:17624 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18970,7 +18967,7 @@ func (lex *Lexer) Lex() *Token { } goto tr723 tr718: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18982,9 +18979,9 @@ func (lex *Lexer) Lex() *Token { goto st489 tr726: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19000,7 +18997,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof489 } st_case_489: - // line internal/scanner/scanner.go:17707 + // line internal/scanner/scanner.go:17704 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19050,7 +19047,7 @@ func (lex *Lexer) Lex() *Token { } goto tr724 tr719: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19062,9 +19059,9 @@ func (lex *Lexer) Lex() *Token { goto st490 tr727: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19080,7 +19077,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof490 } st_case_490: - // line internal/scanner/scanner.go:17787 + // line internal/scanner/scanner.go:17784 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19285,7 +19282,7 @@ func (lex *Lexer) Lex() *Token { } goto tr728 tr151: - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) + 1 { lex.ungetCnt(2) @@ -19300,33 +19297,33 @@ func (lex *Lexer) Lex() *Token { } goto st493 tr152: - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.setTokenPosition(tkn) + tok = token.T_DOLLAR_OPEN_CURLY_BRACES lex.call(493, 516) goto _out } goto st493 tr153: - // line internal/scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN + lex.setTokenPosition(tkn) + tok = token.T_CURLY_OPEN lex.call(493, 123) goto _out } goto st493 tr732: lex.cs = 493 - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:427 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int('"')) + lex.setTokenPosition(tkn) + tok = token.ID(int('"')) lex.cs = 123 { (lex.p)++ @@ -19342,16 +19339,16 @@ func (lex *Lexer) Lex() *Token { { (lex.p) = (lex.te) - 1 lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_CURLY_OPEN + lex.setTokenPosition(tkn) + tok = token.T_CURLY_OPEN lex.call(493, 123) goto _out } case 157: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_DOLLAR_OPEN_CURLY_BRACES + lex.setTokenPosition(tkn) + tok = token.T_DOLLAR_OPEN_CURLY_BRACES lex.call(493, 516) goto _out } @@ -19371,8 +19368,8 @@ func (lex *Lexer) Lex() *Token { case 159: { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = TokenID(int('"')) + lex.setTokenPosition(tkn) + tok = token.ID(int('"')) lex.cs = 123 { (lex.p)++ @@ -19383,8 +19380,8 @@ func (lex *Lexer) Lex() *Token { { (lex.p) = (lex.te) - 1 - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ goto _out @@ -19394,14 +19391,14 @@ func (lex *Lexer) Lex() *Token { goto _again tr742: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ lex.cs = 493 @@ -19410,12 +19407,12 @@ func (lex *Lexer) Lex() *Token { } goto st493 tr746: - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:428 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ lex.cs = 493 @@ -19434,7 +19431,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18071 + // line internal/scanner/scanner.go:18068 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19532,44 +19529,44 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:428 lex.act = 160 goto st494 tr738: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:427 lex.act = 159 goto st494 tr743: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:428 lex.act = 160 goto st494 tr747: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:426 lex.act = 158 goto st494 tr748: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:425 lex.act = 157 goto st494 tr749: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:424 lex.act = 156 goto st494 st494: @@ -19577,7 +19574,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof494 } st_case_494: - // line internal/scanner/scanner.go:18214 + // line internal/scanner/scanner.go:18211 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19627,7 +19624,7 @@ func (lex *Lexer) Lex() *Token { } goto tr741 tr736: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19639,9 +19636,9 @@ func (lex *Lexer) Lex() *Token { goto st495 tr744: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19657,7 +19654,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof495 } st_case_495: - // line internal/scanner/scanner.go:18294 + // line internal/scanner/scanner.go:18291 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19707,7 +19704,7 @@ func (lex *Lexer) Lex() *Token { } goto tr742 tr737: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19719,9 +19716,9 @@ func (lex *Lexer) Lex() *Token { goto st496 tr745: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19737,7 +19734,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof496 } st_case_496: - // line internal/scanner/scanner.go:18374 + // line internal/scanner/scanner.go:18371 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19943,12 +19940,12 @@ func (lex *Lexer) Lex() *Token { goto tr746 tr751: lex.cs = 499 - // line internal/scanner/scanner.rl:435 + // line internal/scanner/scanner.rl:436 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_END_HEREDOC + lex.setTokenPosition(tkn) + tok = token.T_END_HEREDOC lex.cs = 123 { (lex.p)++ @@ -19967,7 +19964,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18601 + // line internal/scanner/scanner.go:18598 if lex.data[(lex.p)] == 96 { goto st0 } @@ -20011,7 +20008,7 @@ func (lex *Lexer) Lex() *Token { } goto st500 tr154: - // line internal/scanner/scanner.rl:454 + // line internal/scanner/scanner.rl:455 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -20023,12 +20020,12 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr155: - // line internal/scanner/scanner.rl:451 + // line internal/scanner/scanner.rl:452 lex.te = (lex.p) + 1 { lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_OBJECT_OPERATOR + lex.setTokenPosition(tkn) + tok = token.T_OBJECT_OPERATOR { (lex.p)++ lex.cs = 501 @@ -20037,7 +20034,7 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr752: - // line internal/scanner/scanner.rl:454 + // line internal/scanner/scanner.rl:455 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20049,17 +20046,17 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr756: - // line internal/scanner/scanner.rl:453 + // line internal/scanner/scanner.rl:454 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int('[')) + lex.setTokenPosition(tkn) + tok = token.ID(int('[')) lex.call(501, 506) goto _out } goto st501 tr757: - // line internal/scanner/scanner.rl:454 + // line internal/scanner/scanner.rl:455 lex.te = (lex.p) (lex.p)-- { @@ -20072,12 +20069,12 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr759: - // line internal/scanner/scanner.rl:450 + // line internal/scanner/scanner.rl:451 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_VARIABLE + lex.setTokenPosition(tkn) + tok = token.T_VARIABLE { (lex.p)++ lex.cs = 501 @@ -20086,12 +20083,12 @@ func (lex *Lexer) Lex() *Token { } goto st501 tr761: - // line internal/scanner/scanner.rl:452 + // line internal/scanner/scanner.rl:453 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_STRING + lex.setTokenPosition(tkn) + tok = token.T_STRING { (lex.p)++ lex.cs = 501 @@ -20110,7 +20107,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18693 + // line internal/scanner/scanner.go:18690 switch lex.data[(lex.p)] { case 36: goto st502 @@ -20191,7 +20188,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof504 } st_case_504: - // line internal/scanner/scanner.go:18774 + // line internal/scanner/scanner.go:18771 if lex.data[(lex.p)] == 62 { goto st105 } @@ -20244,11 +20241,11 @@ func (lex *Lexer) Lex() *Token { } goto st505 tr156: - // line internal/scanner/scanner.rl:458 + // line internal/scanner/scanner.rl:459 (lex.p) = (lex.te) - 1 { - lex.setTokenPosition(token) - tok = T_NUM_STRING + lex.setTokenPosition(tkn) + tok = token.T_NUM_STRING { (lex.p)++ lex.cs = 506 @@ -20257,7 +20254,7 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr762: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:465 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -20265,21 +20262,21 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr763: - // line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE lex.ret(2) goto _out } goto st506 tr766: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int(lex.data[lex.ts])) + lex.setTokenPosition(tkn) + tok = token.ID(int(lex.data[lex.ts])) { (lex.p)++ lex.cs = 506 @@ -20288,30 +20285,30 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr770: - // line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:464 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int(']')) + lex.setTokenPosition(tkn) + tok = token.ID(int(']')) lex.ret(2) goto _out } goto st506 tr771: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_ENCAPSED_AND_WHITESPACE + lex.setTokenPosition(tkn) + tok = token.T_ENCAPSED_AND_WHITESPACE lex.ret(2) goto _out } goto st506 tr772: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:465 lex.te = (lex.p) (lex.p)-- { @@ -20320,12 +20317,12 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr773: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = TokenID(int(lex.data[lex.ts])) + lex.setTokenPosition(tkn) + tok = token.ID(int(lex.data[lex.ts])) { (lex.p)++ lex.cs = 506 @@ -20334,12 +20331,12 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr775: - // line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_VARIABLE + lex.setTokenPosition(tkn) + tok = token.T_VARIABLE { (lex.p)++ lex.cs = 506 @@ -20348,12 +20345,12 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr776: - // line internal/scanner/scanner.rl:458 + // line internal/scanner/scanner.rl:459 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_NUM_STRING + lex.setTokenPosition(tkn) + tok = token.T_NUM_STRING { (lex.p)++ lex.cs = 506 @@ -20362,12 +20359,12 @@ func (lex *Lexer) Lex() *Token { } goto st506 tr780: - // line internal/scanner/scanner.rl:460 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) (lex.p)-- { - lex.setTokenPosition(token) - tok = T_STRING + lex.setTokenPosition(tkn) + tok = token.T_STRING { (lex.p)++ lex.cs = 506 @@ -20386,7 +20383,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18906 + // line internal/scanner/scanner.go:18903 switch lex.data[(lex.p)] { case 10: goto tr764 @@ -20452,7 +20449,7 @@ func (lex *Lexer) Lex() *Token { } goto st515 tr764: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20468,10 +20465,10 @@ func (lex *Lexer) Lex() *Token { goto _test_eof507 } st_case_507: - // line internal/scanner/scanner.go:18988 + // line internal/scanner/scanner.go:18985 goto tr771 tr765: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20487,7 +20484,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:19007 + // line internal/scanner/scanner.go:19004 if lex.data[(lex.p)] == 10 { goto tr764 } @@ -20549,7 +20546,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof511 } st_case_511: - // line internal/scanner/scanner.go:19069 + // line internal/scanner/scanner.go:19066 switch lex.data[(lex.p)] { case 95: goto st106 @@ -20572,7 +20569,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof512 } st_case_512: - // line internal/scanner/scanner.go:19092 + // line internal/scanner/scanner.go:19089 if lex.data[(lex.p)] == 95 { goto st106 } @@ -20608,7 +20605,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof513 } st_case_513: - // line internal/scanner/scanner.go:19128 + // line internal/scanner/scanner.go:19125 if lex.data[(lex.p)] == 95 { goto st107 } @@ -20644,7 +20641,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof514 } st_case_514: - // line internal/scanner/scanner.go:19164 + // line internal/scanner/scanner.go:19161 if lex.data[(lex.p)] == 95 { goto st108 } @@ -20689,7 +20686,7 @@ func (lex *Lexer) Lex() *Token { goto st515 tr160: lex.cs = 516 - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:473 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -20698,12 +20695,12 @@ func (lex *Lexer) Lex() *Token { goto _again tr162: lex.cs = 516 - // line internal/scanner/scanner.rl:471 + // line internal/scanner/scanner.rl:472 lex.te = (lex.p) + 1 { lex.ungetCnt(1) - lex.setTokenPosition(token) - tok = T_STRING_VARNAME + lex.setTokenPosition(tkn) + tok = token.T_STRING_VARNAME lex.cs = 123 { (lex.p)++ @@ -20713,7 +20710,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr781: lex.cs = 516 - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20722,7 +20719,7 @@ func (lex *Lexer) Lex() *Token { goto _again tr783: lex.cs = 516 - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:473 lex.te = (lex.p) (lex.p)-- { @@ -20741,7 +20738,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19243 + // line internal/scanner/scanner.go:19240 if lex.data[(lex.p)] == 96 { goto tr781 } @@ -20768,7 +20765,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof517 } st_case_517: - // line internal/scanner/scanner.go:19270 + // line internal/scanner/scanner.go:19267 switch lex.data[(lex.p)] { case 91: goto tr162 @@ -20827,15 +20824,15 @@ func (lex *Lexer) Lex() *Token { } goto st109 tr163: - // line internal/scanner/scanner.rl:476 + // line internal/scanner/scanner.rl:477 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st518 tr784: lex.cs = 518 - // line internal/scanner/scanner.rl:478 + // line internal/scanner/scanner.rl:479 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20844,11 +20841,11 @@ func (lex *Lexer) Lex() *Token { goto _again tr787: lex.cs = 518 - // line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:478 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int('(')) + lex.setTokenPosition(tkn) + tok = token.ID(int('(')) lex.cs = 522 { (lex.p)++ @@ -20857,26 +20854,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr788: - // line internal/scanner/scanner.rl:476 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st518 tr790: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:476 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st518 tr794: lex.cs = 518 - // line internal/scanner/scanner.rl:478 + // line internal/scanner/scanner.rl:479 lex.te = (lex.p) (lex.p)-- { @@ -20895,7 +20892,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19377 + // line internal/scanner/scanner.go:19374 switch lex.data[(lex.p)] { case 10: goto tr164 @@ -20919,7 +20916,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st519 st519: @@ -20927,7 +20924,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof519 } st_case_519: - // line internal/scanner/scanner.go:19409 + // line internal/scanner/scanner.go:19406 switch lex.data[(lex.p)] { case 10: goto tr164 @@ -20944,7 +20941,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20959,9 +20956,9 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20977,7 +20974,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof520 } st_case_520: - // line internal/scanner/scanner.go:19459 + // line internal/scanner/scanner.go:19456 switch lex.data[(lex.p)] { case 10: goto tr792 @@ -20991,7 +20988,7 @@ func (lex *Lexer) Lex() *Token { } goto tr790 tr789: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21003,9 +21000,9 @@ func (lex *Lexer) Lex() *Token { goto st110 tr793: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21021,13 +21018,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:19503 + // line internal/scanner/scanner.go:19500 if lex.data[(lex.p)] == 10 { goto tr164 } goto tr163 tr786: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21043,21 +21040,21 @@ func (lex *Lexer) Lex() *Token { goto _test_eof521 } st_case_521: - // line internal/scanner/scanner.go:19525 + // line internal/scanner/scanner.go:19522 if lex.data[(lex.p)] == 10 { goto tr164 } goto tr794 tr165: - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:483 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st522 tr795: lex.cs = 522 - // line internal/scanner/scanner.rl:484 + // line internal/scanner/scanner.rl:485 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -21066,11 +21063,11 @@ func (lex *Lexer) Lex() *Token { goto _again tr798: lex.cs = 522 - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:484 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int(')')) + lex.setTokenPosition(tkn) + tok = token.ID(int(')')) lex.cs = 526 { (lex.p)++ @@ -21079,26 +21076,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr799: - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st522 tr801: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st522 tr805: lex.cs = 522 - // line internal/scanner/scanner.rl:484 + // line internal/scanner/scanner.rl:485 lex.te = (lex.p) (lex.p)-- { @@ -21117,7 +21114,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19579 + // line internal/scanner/scanner.go:19576 switch lex.data[(lex.p)] { case 10: goto tr166 @@ -21141,7 +21138,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st523 st523: @@ -21149,7 +21146,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof523 } st_case_523: - // line internal/scanner/scanner.go:19611 + // line internal/scanner/scanner.go:19608 switch lex.data[(lex.p)] { case 10: goto tr166 @@ -21166,7 +21163,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21181,9 +21178,9 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21199,7 +21196,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof524 } st_case_524: - // line internal/scanner/scanner.go:19661 + // line internal/scanner/scanner.go:19658 switch lex.data[(lex.p)] { case 10: goto tr803 @@ -21213,7 +21210,7 @@ func (lex *Lexer) Lex() *Token { } goto tr801 tr800: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21225,9 +21222,9 @@ func (lex *Lexer) Lex() *Token { goto st111 tr804: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21243,13 +21240,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof111 } st_case_111: - // line internal/scanner/scanner.go:19705 + // line internal/scanner/scanner.go:19702 if lex.data[(lex.p)] == 10 { goto tr166 } goto tr165 tr797: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21265,21 +21262,21 @@ func (lex *Lexer) Lex() *Token { goto _test_eof525 } st_case_525: - // line internal/scanner/scanner.go:19727 + // line internal/scanner/scanner.go:19724 if lex.data[(lex.p)] == 10 { goto tr166 } goto tr805 tr167: - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:489 (lex.p) = (lex.te) - 1 { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st526 tr806: lex.cs = 526 - // line internal/scanner/scanner.rl:490 + // line internal/scanner/scanner.rl:491 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -21288,11 +21285,11 @@ func (lex *Lexer) Lex() *Token { goto _again tr809: lex.cs = 526 - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:490 lex.te = (lex.p) + 1 { - lex.setTokenPosition(token) - tok = TokenID(int(';')) + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) lex.cs = 530 { (lex.p)++ @@ -21301,26 +21298,26 @@ func (lex *Lexer) Lex() *Token { } goto _again tr810: - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st526 tr812: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st526 tr816: lex.cs = 526 - // line internal/scanner/scanner.rl:490 + // line internal/scanner/scanner.rl:491 lex.te = (lex.p) (lex.p)-- { @@ -21339,7 +21336,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19781 + // line internal/scanner/scanner.go:19778 switch lex.data[(lex.p)] { case 10: goto tr168 @@ -21363,7 +21360,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 goto st527 st527: @@ -21371,7 +21368,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof527 } st_case_527: - // line internal/scanner/scanner.go:19813 + // line internal/scanner/scanner.go:19810 switch lex.data[(lex.p)] { case 10: goto tr168 @@ -21388,7 +21385,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21403,9 +21400,9 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21421,7 +21418,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof528 } st_case_528: - // line internal/scanner/scanner.go:19863 + // line internal/scanner/scanner.go:19860 switch lex.data[(lex.p)] { case 10: goto tr814 @@ -21435,7 +21432,7 @@ func (lex *Lexer) Lex() *Token { } goto tr812 tr811: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21447,9 +21444,9 @@ func (lex *Lexer) Lex() *Token { goto st112 tr815: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21465,13 +21462,13 @@ func (lex *Lexer) Lex() *Token { goto _test_eof112 } st_case_112: - // line internal/scanner/scanner.go:19907 + // line internal/scanner/scanner.go:19904 if lex.data[(lex.p)] == 10 { goto tr168 } goto tr167 tr808: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21487,7 +21484,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof529 } st_case_529: - // line internal/scanner/scanner.go:19929 + // line internal/scanner/scanner.go:19926 if lex.data[(lex.p)] == 10 { goto tr168 } @@ -21504,27 +21501,27 @@ func (lex *Lexer) Lex() *Token { case 186: { (lex.p) = (lex.te) - 1 - lex.addHiddenToken(token, T_HALT_COMPILER, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) } } goto st530 tr821: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:495 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_HALT_COMPILER, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) } goto st530 tr825: - // line internal/scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:495 lex.te = (lex.p) (lex.p)-- { - lex.addHiddenToken(token, T_HALT_COMPILER, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) } goto st530 st530: @@ -21541,7 +21538,7 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19973 + // line internal/scanner/scanner.go:19970 switch lex.data[(lex.p)] { case 10: goto tr818 @@ -21553,16 +21550,16 @@ func (lex *Lexer) Lex() *Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:495 lex.act = 186 goto st531 tr822: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:494 + // line internal/scanner/scanner.rl:495 lex.act = 186 goto st531 st531: @@ -21570,7 +21567,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof531 } st_case_531: - // line internal/scanner/scanner.go:20002 + // line internal/scanner/scanner.go:19999 switch lex.data[(lex.p)] { case 10: goto tr818 @@ -21579,7 +21576,7 @@ func (lex *Lexer) Lex() *Token { } goto tr817 tr818: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21591,9 +21588,9 @@ func (lex *Lexer) Lex() *Token { goto st532 tr823: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21609,7 +21606,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof532 } st_case_532: - // line internal/scanner/scanner.go:20041 + // line internal/scanner/scanner.go:20038 switch lex.data[(lex.p)] { case 10: goto tr823 @@ -21618,7 +21615,7 @@ func (lex *Lexer) Lex() *Token { } goto tr822 tr819: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21630,9 +21627,9 @@ func (lex *Lexer) Lex() *Token { goto st533 tr824: - // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:57 - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:41 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21648,7 +21645,7 @@ func (lex *Lexer) Lex() *Token { goto _test_eof533 } st_case_533: - // line internal/scanner/scanner.go:20080 + // line internal/scanner/scanner.go:20077 switch lex.data[(lex.p)] { case 10: goto tr818 @@ -24294,11 +24291,12 @@ func (lex *Lexer) Lex() *Token { } } - // line internal/scanner/scanner.rl:498 + // line internal/scanner/scanner.rl:499 - token.Value = lex.data[lex.ts:lex.te] - token.ID = tok - lex.addHiddenToken(token, tok, lex.ts, lex.te) + tkn.Value = lex.data[lex.ts:lex.te] + tkn.ID = token.ID(tok) + tkn.Skipped = lex.data[lex.sts:lex.ste] + lex.addSkippedToken(tkn, tok, lex.ts, lex.te) - return token + return tkn } diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index cd29221..18874ae 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -4,6 +4,8 @@ import ( "fmt" "strconv" "strings" + + "github.com/z7zmey/php-parser/pkg/token" ) %%{ @@ -18,13 +20,14 @@ func initLexer(lex *Lexer) { %% write init; } -func (lex *Lexer) Lex() *Token { +func (lex *Lexer) Lex() *token.Token { eof := lex.pe - var tok TokenID + var tok token.ID - token := lex.tokenPool.Get() - token.Tokens = token.Tokens[:0] - token.Value = lex.data[0:0] + tkn := lex.tokenPool.Get() + + lex.sts = 0 + lex.ste = 0 lblStart := 0 lblEnd := 0 @@ -124,7 +127,7 @@ func (lex *Lexer) Lex() *Token { main := |* "#!" any* :>> newline => { - lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) }; any => { fnext html; @@ -135,42 +138,42 @@ func (lex *Lexer) Lex() *Token { html := |* any_line+ -- ' { lex.ungetStr("<") - lex.setTokenPosition(token) - tok = T_INLINE_HTML; + lex.setTokenPosition(tkn) + tok = token.T_INLINE_HTML; fbreak; }; ' { - lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) fnext php; }; ' { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addHiddenToken(token, T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) fnext php; }; ' { - lex.setTokenPosition(token); - tok = T_ECHO; + lex.setTokenPosition(tkn); + tok = token.T_ECHO; fnext php; fbreak; }; *|; php := |* - whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, 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;}; + whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + '?>' newline? => {lex.setTokenPosition(tkn); tok = token.ID(int(';')); fnext html; fbreak;}; + ';' whitespace_line* '?>' newline? => {lex.setTokenPosition(tkn); tok = token.ID(int(';')); fnext html; fbreak;}; - (dnum | exponent_dnum) => {lex.setTokenPosition(token); tok = T_DNUMBER; fbreak;}; + (dnum | exponent_dnum) => {lex.setTokenPosition(tkn); tok = token.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(tkn); tok = token.T_LNUMBER; fbreak; } - lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; + lex.setTokenPosition(tkn); tok = token.T_DNUMBER; fbreak; }; lnum => { base := 10 @@ -182,142 +185,142 @@ func (lex *Lexer) Lex() *Token { _, err := strconv.ParseInt(s, base, 0) if err == nil { - lex.setTokenPosition(token); tok = T_LNUMBER; fbreak; + lex.setTokenPosition(tkn); tok = token.T_LNUMBER; fbreak; } - lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; + lex.setTokenPosition(tkn); tok = token.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(tkn); tok = token.T_LNUMBER; fbreak; } - lex.setTokenPosition(token); tok = T_DNUMBER; fbreak; + lex.setTokenPosition(tkn); tok = token.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;}; + 'abstract'i => {lex.setTokenPosition(tkn); tok = token.T_ABSTRACT; fbreak;}; + 'array'i => {lex.setTokenPosition(tkn); tok = token.T_ARRAY; fbreak;}; + 'as'i => {lex.setTokenPosition(tkn); tok = token.T_AS; fbreak;}; + 'break'i => {lex.setTokenPosition(tkn); tok = token.T_BREAK; fbreak;}; + 'callable'i => {lex.setTokenPosition(tkn); tok = token.T_CALLABLE; fbreak;}; + 'case'i => {lex.setTokenPosition(tkn); tok = token.T_CASE; fbreak;}; + 'catch'i => {lex.setTokenPosition(tkn); tok = token.T_CATCH; fbreak;}; + 'class'i => {lex.setTokenPosition(tkn); tok = token.T_CLASS; fbreak;}; + 'clone'i => {lex.setTokenPosition(tkn); tok = token.T_CLONE; fbreak;}; + 'const'i => {lex.setTokenPosition(tkn); tok = token.T_CONST; fbreak;}; + 'continue'i => {lex.setTokenPosition(tkn); tok = token.T_CONTINUE; fbreak;}; + 'declare'i => {lex.setTokenPosition(tkn); tok = token.T_DECLARE; fbreak;}; + 'default'i => {lex.setTokenPosition(tkn); tok = token.T_DEFAULT; fbreak;}; + 'do'i => {lex.setTokenPosition(tkn); tok = token.T_DO; fbreak;}; + 'echo'i => {lex.setTokenPosition(tkn); tok = token.T_ECHO; fbreak;}; + 'else'i => {lex.setTokenPosition(tkn); tok = token.T_ELSE; fbreak;}; + 'elseif'i => {lex.setTokenPosition(tkn); tok = token.T_ELSEIF; fbreak;}; + 'empty'i => {lex.setTokenPosition(tkn); tok = token.T_EMPTY; fbreak;}; + 'enddeclare'i => {lex.setTokenPosition(tkn); tok = token.T_ENDDECLARE; fbreak;}; + 'endfor'i => {lex.setTokenPosition(tkn); tok = token.T_ENDFOR; fbreak;}; + 'endforeach'i => {lex.setTokenPosition(tkn); tok = token.T_ENDFOREACH; fbreak;}; + 'endif'i => {lex.setTokenPosition(tkn); tok = token.T_ENDIF; fbreak;}; + 'endswitch'i => {lex.setTokenPosition(tkn); tok = token.T_ENDSWITCH; fbreak;}; + 'endwhile'i => {lex.setTokenPosition(tkn); tok = token.T_ENDWHILE; fbreak;}; + 'eval'i => {lex.setTokenPosition(tkn); tok = token.T_EVAL; fbreak;}; + 'exit'i | 'die'i => {lex.setTokenPosition(tkn); tok = token.T_EXIT; fbreak;}; + 'extends'i => {lex.setTokenPosition(tkn); tok = token.T_EXTENDS; fbreak;}; + 'final'i => {lex.setTokenPosition(tkn); tok = token.T_FINAL; fbreak;}; + 'finally'i => {lex.setTokenPosition(tkn); tok = token.T_FINALLY; fbreak;}; + 'for'i => {lex.setTokenPosition(tkn); tok = token.T_FOR; fbreak;}; + 'foreach'i => {lex.setTokenPosition(tkn); tok = token.T_FOREACH; fbreak;}; + 'function'i | 'cfunction'i => {lex.setTokenPosition(tkn); tok = token.T_FUNCTION; fbreak;}; + 'fn'i => {lex.setTokenPosition(tkn); tok = token.T_FN; fbreak;}; + 'global'i => {lex.setTokenPosition(tkn); tok = token.T_GLOBAL; fbreak;}; + 'goto'i => {lex.setTokenPosition(tkn); tok = token.T_GOTO; fbreak;}; + 'if'i => {lex.setTokenPosition(tkn); tok = token.T_IF; fbreak;}; + 'isset'i => {lex.setTokenPosition(tkn); tok = token.T_ISSET; fbreak;}; + 'implements'i => {lex.setTokenPosition(tkn); tok = token.T_IMPLEMENTS; fbreak;}; + 'instanceof'i => {lex.setTokenPosition(tkn); tok = token.T_INSTANCEOF; fbreak;}; + 'insteadof'i => {lex.setTokenPosition(tkn); tok = token.T_INSTEADOF; fbreak;}; + 'interface'i => {lex.setTokenPosition(tkn); tok = token.T_INTERFACE; fbreak;}; + 'list'i => {lex.setTokenPosition(tkn); tok = token.T_LIST; fbreak;}; + 'namespace'i => {lex.setTokenPosition(tkn); tok = token.T_NAMESPACE; fbreak;}; + 'private'i => {lex.setTokenPosition(tkn); tok = token.T_PRIVATE; fbreak;}; + 'public'i => {lex.setTokenPosition(tkn); tok = token.T_PUBLIC; fbreak;}; + 'print'i => {lex.setTokenPosition(tkn); tok = token.T_PRINT; fbreak;}; + 'protected'i => {lex.setTokenPosition(tkn); tok = token.T_PROTECTED; fbreak;}; + 'return'i => {lex.setTokenPosition(tkn); tok = token.T_RETURN; fbreak;}; + 'static'i => {lex.setTokenPosition(tkn); tok = token.T_STATIC; fbreak;}; + 'switch'i => {lex.setTokenPosition(tkn); tok = token.T_SWITCH; fbreak;}; + 'throw'i => {lex.setTokenPosition(tkn); tok = token.T_THROW; fbreak;}; + 'trait'i => {lex.setTokenPosition(tkn); tok = token.T_TRAIT; fbreak;}; + 'try'i => {lex.setTokenPosition(tkn); tok = token.T_TRY; fbreak;}; + 'unset'i => {lex.setTokenPosition(tkn); tok = token.T_UNSET; fbreak;}; + 'use'i => {lex.setTokenPosition(tkn); tok = token.T_USE; fbreak;}; + 'var'i => {lex.setTokenPosition(tkn); tok = token.T_VAR; fbreak;}; + 'while'i => {lex.setTokenPosition(tkn); tok = token.T_WHILE; fbreak;}; + 'yield'i whitespace_line* 'from'i => {lex.setTokenPosition(tkn); tok = token.T_YIELD_FROM; fbreak;}; + 'yield'i => {lex.setTokenPosition(tkn); tok = token.T_YIELD; fbreak;}; + 'include'i => {lex.setTokenPosition(tkn); tok = token.T_INCLUDE; fbreak;}; + 'include_once'i => {lex.setTokenPosition(tkn); tok = token.T_INCLUDE_ONCE; fbreak;}; + 'require'i => {lex.setTokenPosition(tkn); tok = token.T_REQUIRE; fbreak;}; + 'require_once'i => {lex.setTokenPosition(tkn); tok = token.T_REQUIRE_ONCE; fbreak;}; + '__CLASS__'i => {lex.setTokenPosition(tkn); tok = token.T_CLASS_C; fbreak;}; + '__DIR__'i => {lex.setTokenPosition(tkn); tok = token.T_DIR; fbreak;}; + '__FILE__'i => {lex.setTokenPosition(tkn); tok = token.T_FILE; fbreak;}; + '__FUNCTION__'i => {lex.setTokenPosition(tkn); tok = token.T_FUNC_C; fbreak;}; + '__LINE__'i => {lex.setTokenPosition(tkn); tok = token.T_LINE; fbreak;}; + '__NAMESPACE__'i => {lex.setTokenPosition(tkn); tok = token.T_NS_C; fbreak;}; + '__METHOD__'i => {lex.setTokenPosition(tkn); tok = token.T_METHOD_C; fbreak;}; + '__TRAIT__'i => {lex.setTokenPosition(tkn); tok = token.T_TRAIT_C; fbreak;}; + '__halt_compiler'i => {lex.setTokenPosition(tkn); tok = token.T_HALT_COMPILER; fnext halt_compiller_open_parenthesis; fbreak;}; + 'new'i => {lex.setTokenPosition(tkn); tok = token.T_NEW; fbreak;}; + 'and'i => {lex.setTokenPosition(tkn); tok = token.T_LOGICAL_AND; fbreak;}; + 'or'i => {lex.setTokenPosition(tkn); tok = token.T_LOGICAL_OR; fbreak;}; + 'xor'i => {lex.setTokenPosition(tkn); tok = token.T_LOGICAL_XOR; fbreak;}; + '\\' => {lex.setTokenPosition(tkn); tok = token.T_NS_SEPARATOR; fbreak;}; + '...' => {lex.setTokenPosition(tkn); tok = token.T_ELLIPSIS; fbreak;}; + '::' => {lex.setTokenPosition(tkn); tok = token.T_PAAMAYIM_NEKUDOTAYIM; fbreak;}; + '&&' => {lex.setTokenPosition(tkn); tok = token.T_BOOLEAN_AND; fbreak;}; + '||' => {lex.setTokenPosition(tkn); tok = token.T_BOOLEAN_OR; fbreak;}; + '&=' => {lex.setTokenPosition(tkn); tok = token.T_AND_EQUAL; fbreak;}; + '|=' => {lex.setTokenPosition(tkn); tok = token.T_OR_EQUAL; fbreak;}; + '.=' => {lex.setTokenPosition(tkn); tok = token.T_CONCAT_EQUAL; fbreak;}; + '*=' => {lex.setTokenPosition(tkn); tok = token.T_MUL_EQUAL; fbreak;}; + '**=' => {lex.setTokenPosition(tkn); tok = token.T_POW_EQUAL; fbreak;}; + '/=' => {lex.setTokenPosition(tkn); tok = token.T_DIV_EQUAL; fbreak;}; + '+=' => {lex.setTokenPosition(tkn); tok = token.T_PLUS_EQUAL; fbreak;}; + '-=' => {lex.setTokenPosition(tkn); tok = token.T_MINUS_EQUAL; fbreak;}; + '^=' => {lex.setTokenPosition(tkn); tok = token.T_XOR_EQUAL; fbreak;}; + '%=' => {lex.setTokenPosition(tkn); tok = token.T_MOD_EQUAL; fbreak;}; + '--' => {lex.setTokenPosition(tkn); tok = token.T_DEC; fbreak;}; + '++' => {lex.setTokenPosition(tkn); tok = token.T_INC; fbreak;}; + '=>' => {lex.setTokenPosition(tkn); tok = token.T_DOUBLE_ARROW; fbreak;}; + '<=>' => {lex.setTokenPosition(tkn); tok = token.T_SPACESHIP; fbreak;}; + '!=' | '<>' => {lex.setTokenPosition(tkn); tok = token.T_IS_NOT_EQUAL; fbreak;}; + '!==' => {lex.setTokenPosition(tkn); tok = token.T_IS_NOT_IDENTICAL; fbreak;}; + '==' => {lex.setTokenPosition(tkn); tok = token.T_IS_EQUAL; fbreak;}; + '===' => {lex.setTokenPosition(tkn); tok = token.T_IS_IDENTICAL; fbreak;}; + '<<=' => {lex.setTokenPosition(tkn); tok = token.T_SL_EQUAL; fbreak;}; + '>>=' => {lex.setTokenPosition(tkn); tok = token.T_SR_EQUAL; fbreak;}; + '>=' => {lex.setTokenPosition(tkn); tok = token.T_IS_GREATER_OR_EQUAL; fbreak;}; + '<=' => {lex.setTokenPosition(tkn); tok = token.T_IS_SMALLER_OR_EQUAL; fbreak;}; + '**' => {lex.setTokenPosition(tkn); tok = token.T_POW; fbreak;}; + '<<' => {lex.setTokenPosition(tkn); tok = token.T_SL; fbreak;}; + '>>' => {lex.setTokenPosition(tkn); tok = token.T_SR; fbreak;}; + '??' => {lex.setTokenPosition(tkn); tok = token.T_COALESCE; fbreak;}; + '??=' => {lex.setTokenPosition(tkn); tok = token.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;}; + '(' whitespace* 'array'i whitespace* ')' => {lex.setTokenPosition(tkn); tok = token.T_ARRAY_CAST; fbreak;}; + '(' whitespace* ('bool'i|'boolean'i) whitespace* ')' => {lex.setTokenPosition(tkn); tok = token.T_BOOL_CAST; fbreak;}; + '(' whitespace* ('real'i|'double'i|'float'i) whitespace* ')' => {lex.setTokenPosition(tkn); tok = token.T_DOUBLE_CAST; fbreak;}; + '(' whitespace* ('int'i|'integer'i) whitespace* ')' => {lex.setTokenPosition(tkn); tok = token.T_INT_CAST; fbreak;}; + '(' whitespace* 'object'i whitespace* ')' => {lex.setTokenPosition(tkn); tok = token.T_OBJECT_CAST; fbreak;}; + '(' whitespace* ('string'i|'binary'i) whitespace* ')' => {lex.setTokenPosition(tkn); tok = token.T_STRING_CAST; fbreak;}; + '(' whitespace* 'unset'i whitespace* ')' => {lex.setTokenPosition(tkn); tok = token.T_UNSET_CAST; fbreak;}; ('#' | '//') any_line* when is_not_comment_end => { lex.ungetStr("?>") - lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) }; '/*' any_line* :>> '*/' { isDocComment := false; @@ -326,37 +329,35 @@ func (lex *Lexer) Lex() *Token { } if isDocComment { - lex.addHiddenToken(token, T_DOC_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addHiddenToken(token, T_COMMENT, lex.ts, lex.te) + lex.addSkippedToken(tkn, token.T_COMMENT, 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])); + lex.setTokenPosition(tkn); + tok = token.ID(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); goto _out;}; - "$" varname => { lex.setTokenPosition(token); tok = T_VARIABLE; fbreak; }; - varname => { lex.setTokenPosition(token); tok = T_STRING; fbreak; }; + "{" => { lex.setTokenPosition(tkn); tok = token.ID(int('{')); lex.call(ftargs, fentry(php)); goto _out; }; + "}" => { lex.setTokenPosition(tkn); tok = token.ID(int('}')); lex.ret(1); goto _out;}; + "$" varname => { lex.setTokenPosition(tkn); tok = token.T_VARIABLE; fbreak; }; + varname => { lex.setTokenPosition(tkn); tok = token.T_STRING; fbreak; }; - "->" => { lex.setTokenPosition(token); tok = T_OBJECT_OPERATOR; fnext property; fbreak; }; + "->" => { lex.setTokenPosition(tkn); tok = token.T_OBJECT_OPERATOR; fnext property; fbreak; }; constant_string => { - lex.setTokenPosition(token); - tok = T_CONSTANT_ENCAPSED_STRING; + lex.setTokenPosition(tkn); + tok = token.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; + lex.setTokenPosition(tkn); + tok = token.T_START_HEREDOC; if lex.isHeredocEnd(lex.p+1) { fnext heredoc_end; @@ -367,8 +368,8 @@ func (lex *Lexer) Lex() *Token { } fbreak; }; - "`" => {lex.setTokenPosition(token); tok = TokenID(int('`')); fnext backqote; fbreak;}; - '"' => {lex.setTokenPosition(token); tok = TokenID(int('"')); fnext template_string; fbreak;}; + "`" => {lex.setTokenPosition(tkn); tok = token.ID(int('`')); fnext backqote; fbreak;}; + '"' => {lex.setTokenPosition(tkn); tok = token.ID(int('"')); fnext template_string; fbreak;}; any_line => { c := lex.data[lex.p] @@ -377,28 +378,28 @@ func (lex *Lexer) Lex() *Token { *|; property := |* - whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te)}; - "->" => {lex.setTokenPosition(token); tok = T_OBJECT_OPERATOR; fbreak;}; - varname => {lex.setTokenPosition(token); tok = T_STRING; fnext php; fbreak;}; + whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + "->" => {lex.setTokenPosition(tkn); tok = token.T_OBJECT_OPERATOR; fbreak;}; + varname => {lex.setTokenPosition(tkn); tok = token.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; + lex.setTokenPosition(tkn); + tok = token.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); lex.setTokenPosition(tkn); tok = token.T_CURLY_OPEN; lex.call(ftargs, fentry(php)); goto _out;}; + "${" => {lex.setTokenPosition(tkn); tok = token.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; + lex.setTokenPosition(tkn); + tok = token.T_ENCAPSED_AND_WHITESPACE; if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { fnext heredoc_end; @@ -408,59 +409,59 @@ func (lex *Lexer) Lex() *Token { *|; 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); lex.setTokenPosition(tkn); tok = token.T_CURLY_OPEN; lex.call(ftargs, fentry(php)); goto _out;}; + "${" => {lex.setTokenPosition(tkn); tok = token.T_DOLLAR_OPEN_CURLY_BRACES; lex.call(ftargs, fentry(string_var_name)); goto _out;}; "$" varname_first => {lex.ungetCnt(2); fcall string_var;}; - '`' => {lex.setTokenPosition(token); tok = TokenID(int('`')); fnext php; fbreak;}; + '`' => {lex.setTokenPosition(tkn); tok = token.ID(int('`')); fnext php; fbreak;}; any_line* when is_not_backqoute_end_or_var => { - lex.setTokenPosition(token); - tok = T_ENCAPSED_AND_WHITESPACE; + lex.setTokenPosition(tkn); + tok = token.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); lex.setTokenPosition(tkn); tok = token.T_CURLY_OPEN; lex.call(ftargs, fentry(php)); goto _out;}; + "${" => {lex.setTokenPosition(tkn); tok = token.T_DOLLAR_OPEN_CURLY_BRACES; lex.call(ftargs, fentry(string_var_name)); goto _out;}; "$" varname_first => {lex.ungetCnt(2); fcall string_var;}; - '"' => {lex.setTokenPosition(token); tok = TokenID(int('"')); fnext php; fbreak;}; + '"' => {lex.setTokenPosition(tkn); tok = token.ID(int('"')); fnext php; fbreak;}; any_line* when is_not_string_end_or_var => { - lex.setTokenPosition(token); - tok = T_ENCAPSED_AND_WHITESPACE; + lex.setTokenPosition(tkn); + tok = token.T_ENCAPSED_AND_WHITESPACE; fbreak; }; *|; heredoc_end := |* varname -- ";" => { - lex.setTokenPosition(token); - tok = T_END_HEREDOC; + lex.setTokenPosition(tkn); + tok = token.T_END_HEREDOC; fnext php; fbreak; }; varname => { - lex.setTokenPosition(token); - tok = T_END_HEREDOC; + lex.setTokenPosition(tkn); + tok = token.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;}; + '$' varname => {lex.setTokenPosition(tkn); tok = token.T_VARIABLE; fbreak;}; + '->' varname_first => {lex.ungetCnt(1); lex.setTokenPosition(tkn); tok = token.T_OBJECT_OPERATOR; fbreak;}; + varname => {lex.setTokenPosition(tkn); tok = token.T_STRING; fbreak;}; + '[' => {lex.setTokenPosition(tkn); tok = token.ID(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;}; + lnum | hnum | bnum => {lex.setTokenPosition(tkn); tok = token.T_NUM_STRING; fbreak;}; + '$' varname => {lex.setTokenPosition(tkn); tok = token.T_VARIABLE; fbreak;}; + varname => {lex.setTokenPosition(tkn); tok = token.T_STRING; fbreak;}; + whitespace_line | [\\'#] => {lex.setTokenPosition(tkn); tok = token.T_ENCAPSED_AND_WHITESPACE; lex.ret(2); goto _out;}; + operators > (svi, 1) => {lex.setTokenPosition(tkn); tok = token.ID(int(lex.data[lex.ts])); fbreak;}; + ']' > (svi, 2) => {lex.setTokenPosition(tkn); tok = token.ID(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)); @@ -468,38 +469,39 @@ func (lex *Lexer) Lex() *Token { *|; string_var_name := |* - varname ("[" | "}") => {lex.ungetCnt(1); lex.setTokenPosition(token); tok = T_STRING_VARNAME; fnext php; fbreak;}; + varname ("[" | "}") => {lex.ungetCnt(1); lex.setTokenPosition(tkn); tok = token.T_STRING_VARNAME; fnext php; fbreak;}; any => {lex.ungetCnt(1); fnext php;}; *|; halt_compiller_open_parenthesis := |* - whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te)}; - "(" => {lex.setTokenPosition(token); tok = TokenID(int('(')); fnext halt_compiller_close_parenthesis; fbreak;}; + whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + "(" => {lex.setTokenPosition(tkn); tok = token.ID(int('(')); fnext halt_compiller_close_parenthesis; fbreak;}; any => {lex.ungetCnt(1); fnext php;}; *|; halt_compiller_close_parenthesis := |* - whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te)}; - ")" => {lex.setTokenPosition(token); tok = TokenID(int(')')); fnext halt_compiller_close_semicolon; fbreak;}; + whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + ")" => {lex.setTokenPosition(tkn); tok = token.ID(int(')')); fnext halt_compiller_close_semicolon; fbreak;}; any => {lex.ungetCnt(1); fnext php;}; *|; halt_compiller_close_semicolon := |* - whitespace_line* => {lex.addHiddenToken(token, T_WHITESPACE, lex.ts, lex.te)}; - ";" => {lex.setTokenPosition(token); tok = TokenID(int(';')); fnext halt_compiller_end; fbreak;}; + whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + ";" => {lex.setTokenPosition(tkn); tok = token.ID(int(';')); fnext halt_compiller_end; fbreak;}; any => {lex.ungetCnt(1); fnext php;}; *|; halt_compiller_end := |* - any_line* => { lex.addHiddenToken(token, T_HALT_COMPILER, lex.ts, lex.te); }; + any_line* => { lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te); }; *|; write exec; }%% - token.Value = lex.data[lex.ts:lex.te] - token.ID = tok - lex.addHiddenToken(token, tok, lex.ts, lex.te); + tkn.Value = lex.data[lex.ts:lex.te] + tkn.ID = token.ID(tok) + tkn.SkippedString = lex.data[lex.sts:lex.ste] + lex.addSkippedToken(tkn, tok, lex.ts, lex.te); - return token + return tkn } \ No newline at end of file diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 530f972..465c40a 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -1,12 +1,12 @@ package scanner import ( - "github.com/z7zmey/php-parser/pkg/errors" - "github.com/z7zmey/php-parser/pkg/position" + "gotest.tools/assert" "testing" + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" - "gotest.tools/assert" ) func TestTokens(t *testing.T) { @@ -186,175 +186,174 @@ func TestTokens(t *testing.T) { ` expected := []string{ - T_INLINE_HTML.String(), - TokenID(int(';')).String(), - T_INLINE_HTML.String(), - T_ECHO.String(), - TokenID(int(';')).String(), - T_INLINE_HTML.String(), + token.T_INLINE_HTML.String(), + token.ID(int(';')).String(), + token.T_INLINE_HTML.String(), + token.T_ECHO.String(), + token.ID(int(';')).String(), + token.T_INLINE_HTML.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(), + token.T_ABSTRACT.String(), + token.T_ARRAY.String(), + token.T_AS.String(), + token.T_BREAK.String(), + token.T_CALLABLE.String(), + token.T_CASE.String(), + token.T_CATCH.String(), + token.T_CLASS.String(), + token.T_CLONE.String(), + token.T_CONST.String(), + token.T_CONTINUE.String(), + token.T_DECLARE.String(), + token.T_DEFAULT.String(), + token.T_DO.String(), + token.T_ECHO.String(), + token.T_ELSE.String(), + token.T_ELSEIF.String(), + token.T_EMPTY.String(), + token.T_ENDDECLARE.String(), + token.T_ENDFOR.String(), + token.T_ENDFOREACH.String(), + token.T_ENDIF.String(), + token.T_ENDSWITCH.String(), + token.T_ENDWHILE.String(), + token.T_EVAL.String(), + token.T_EXIT.String(), + token.T_EXTENDS.String(), + token.T_FINAL.String(), + token.T_FINALLY.String(), + token.T_FOR.String(), + token.T_FOREACH.String(), + token.T_FUNCTION.String(), + token.T_FUNCTION.String(), + token.T_GLOBAL.String(), + token.T_GOTO.String(), + token.T_IF.String(), + token.T_ISSET.String(), + token.T_IMPLEMENTS.String(), + token.T_INSTANCEOF.String(), + token.T_INSTEADOF.String(), + token.T_INTERFACE.String(), + token.T_LIST.String(), + token.T_NAMESPACE.String(), + token.T_PRIVATE.String(), + token.T_PUBLIC.String(), + token.T_PRINT.String(), + token.T_PROTECTED.String(), + token.T_RETURN.String(), + token.T_STATIC.String(), + token.T_SWITCH.String(), + token.T_THROW.String(), + token.T_TRAIT.String(), + token.T_TRY.String(), + token.T_UNSET.String(), + token.T_USE.String(), + token.T_VAR.String(), + token.T_WHILE.String(), + token.T_YIELD_FROM.String(), + token.T_YIELD.String(), + token.T_INCLUDE.String(), + token.T_INCLUDE_ONCE.String(), + token.T_REQUIRE.String(), + token.T_REQUIRE_ONCE.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(), + token.T_CLASS_C.String(), + token.T_DIR.String(), + token.T_FILE.String(), + token.T_FUNC_C.String(), + token.T_LINE.String(), + token.T_NS_C.String(), + token.T_METHOD_C.String(), + token.T_TRAIT_C.String(), + token.T_HALT_COMPILER.String(), - T_NEW.String(), - T_LOGICAL_AND.String(), - T_LOGICAL_OR.String(), - T_LOGICAL_XOR.String(), + token.T_NEW.String(), + token.T_LOGICAL_AND.String(), + token.T_LOGICAL_OR.String(), + token.T_LOGICAL_XOR.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(), + token.T_NS_SEPARATOR.String(), + token.T_ELLIPSIS.String(), + token.T_PAAMAYIM_NEKUDOTAYIM.String(), + token.T_BOOLEAN_AND.String(), + token.T_BOOLEAN_OR.String(), + token.T_AND_EQUAL.String(), + token.T_OR_EQUAL.String(), + token.T_CONCAT_EQUAL.String(), + token.T_MUL_EQUAL.String(), + token.T_POW_EQUAL.String(), + token.T_DIV_EQUAL.String(), + token.T_PLUS_EQUAL.String(), + token.T_MINUS_EQUAL.String(), + token.T_XOR_EQUAL.String(), + token.T_MOD_EQUAL.String(), + token.T_DEC.String(), + token.T_INC.String(), + token.T_DOUBLE_ARROW.String(), + token.T_SPACESHIP.String(), + token.T_IS_NOT_EQUAL.String(), + token.T_IS_NOT_EQUAL.String(), + token.T_IS_NOT_IDENTICAL.String(), + token.T_IS_EQUAL.String(), + token.T_IS_IDENTICAL.String(), + token.T_SL_EQUAL.String(), + token.T_SR_EQUAL.String(), + token.T_IS_GREATER_OR_EQUAL.String(), + token.T_IS_SMALLER_OR_EQUAL.String(), + token.T_POW.String(), + token.T_SL.String(), + token.T_SR.String(), + token.T_COALESCE.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(), + token.ID(int(';')).String(), + token.ID(int(':')).String(), + token.ID(int(',')).String(), + token.ID(int('.')).String(), + token.ID(int('[')).String(), + token.ID(int(']')).String(), + token.ID(int('(')).String(), + token.ID(int(')')).String(), + token.ID(int('|')).String(), + token.ID(int('/')).String(), + token.ID(int('^')).String(), + token.ID(int('&')).String(), + token.ID(int('+')).String(), + token.ID(int('-')).String(), + token.ID(int('*')).String(), + token.ID(int('=')).String(), + token.ID(int('%')).String(), + token.ID(int('!')).String(), + token.ID(int('~')).String(), + token.ID(int('$')).String(), + token.ID(int('<')).String(), + token.ID(int('>')).String(), + token.ID(int('?')).String(), + token.ID(int('@')).String(), + token.ID(int('{')).String(), + token.ID(int('}')).String(), - T_VARIABLE.String(), - T_STRING.String(), + token.T_VARIABLE.String(), + token.T_STRING.String(), - T_OBJECT_OPERATOR.String(), - T_OBJECT_OPERATOR.String(), - T_STRING.String(), + token.T_OBJECT_OPERATOR.String(), + token.T_OBJECT_OPERATOR.String(), + token.T_STRING.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(), + token.T_ARRAY_CAST.String(), + token.T_BOOL_CAST.String(), + token.T_BOOL_CAST.String(), + token.T_DOUBLE_CAST.String(), + token.T_DOUBLE_CAST.String(), + token.T_DOUBLE_CAST.String(), + token.T_INT_CAST.String(), + token.T_INT_CAST.String(), + token.T_OBJECT_CAST.String(), + token.T_STRING_CAST.String(), + token.T_STRING_CAST.String(), + token.T_UNSET_CAST.String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -381,15 +380,14 @@ func TestShebang(t *testing.T) { "\n", } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} tkn := lexer.Lex() - assert.Equal(t, tkn.ID, T_DNUMBER) + assert.Equal(t, tkn.ID, token.T_DNUMBER) - l := len(tkn.Tokens) - for _, tt := range tkn.Tokens[:l-1] { + l := len(tkn.SkippedTokens) + for _, tt := range tkn.SkippedTokens[:l-1] { actual = append(actual, string(tt.Value)) } @@ -402,15 +400,14 @@ func TestShebangHtml(t *testing.T) { 0.1 ` - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) tkn := lexer.Lex() - assert.Equal(t, tkn.ID, T_INLINE_HTML) - assert.Equal(t, string(tkn.Tokens[0].Value), "#!/usr/bin/env php\n") + assert.Equal(t, tkn.ID, token.T_INLINE_HTML) + assert.Equal(t, string(tkn.SkippedTokens[0].Value), "#!/usr/bin/env php\n") tkn = lexer.Lex() - assert.Equal(t, tkn.ID, T_DNUMBER) + assert.Equal(t, tkn.ID, token.T_DNUMBER) } func TestNumberTokens(t *testing.T) { @@ -434,26 +431,25 @@ func TestNumberTokens(t *testing.T) { ` expected := []string{ - T_DNUMBER.String(), - T_DNUMBER.String(), - T_DNUMBER.String(), - T_DNUMBER.String(), + token.T_DNUMBER.String(), + token.T_DNUMBER.String(), + token.T_DNUMBER.String(), + token.T_DNUMBER.String(), - T_LNUMBER.String(), - T_DNUMBER.String(), + token.T_LNUMBER.String(), + token.T_DNUMBER.String(), - T_LNUMBER.String(), - T_DNUMBER.String(), + token.T_LNUMBER.String(), + token.T_DNUMBER.String(), - T_LNUMBER.String(), - T_LNUMBER.String(), + token.T_LNUMBER.String(), + token.T_LNUMBER.String(), - T_DNUMBER.String(), - T_DNUMBER.String(), + token.T_DNUMBER.String(), + token.T_DNUMBER.String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -490,27 +486,26 @@ func TestConstantStrings(t *testing.T) { ` expected := []string{ - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -547,16 +542,16 @@ func TestSingleQuoteStringTokens(t *testing.T) { ` expected := []string{ - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), - T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -591,67 +586,66 @@ func TestTeplateStringTokens(t *testing.T) { ` expected := []string{ - TokenID(int('"')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('}')).String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('}')).String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('}')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_DOLLAR_OPEN_CURLY_BRACES.String(), - T_STRING_VARNAME.String(), - TokenID(int('}')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('}')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_DOLLAR_OPEN_CURLY_BRACES.String(), + token.T_STRING_VARNAME.String(), + token.ID(int('}')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('}')).String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('}')).String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('"')).String(), - TokenID(int('"')).String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('"')).String(), + token.ID(int('"')).String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('"')).String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -682,67 +676,66 @@ func TestBackquoteStringTokens(t *testing.T) { ` expected := []string{ - TokenID(int('`')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('}')).String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('}')).String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('}')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_DOLLAR_OPEN_CURLY_BRACES.String(), - T_STRING_VARNAME.String(), - TokenID(int('}')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('}')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_DOLLAR_OPEN_CURLY_BRACES.String(), + token.T_STRING_VARNAME.String(), + token.ID(int('}')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('}')).String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('}')).String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('`')).String(), - TokenID(int('`')).String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - TokenID(int('`')).String(), + token.ID(int('`')).String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.ID(int('`')).String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -782,61 +775,60 @@ CAT; ` expected := []string{ - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - T_OBJECT_OPERATOR.String(), - T_STRING.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('[')).String(), - T_NUM_STRING.String(), - TokenID(int(']')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('[')).String(), - T_NUM_STRING.String(), - TokenID(int(']')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('[')).String(), - T_NUM_STRING.String(), - TokenID(int(']')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('[')).String(), - T_STRING.String(), - TokenID(int(']')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - TokenID(int('[')).String(), - T_VARIABLE.String(), - TokenID(int(']')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('}')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_DOLLAR_OPEN_CURLY_BRACES.String(), - T_STRING_VARNAME.String(), - TokenID(int('}')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.T_OBJECT_OPERATOR.String(), + token.T_STRING.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('[')).String(), + token.T_NUM_STRING.String(), + token.ID(int(']')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('[')).String(), + token.T_NUM_STRING.String(), + token.ID(int(']')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('[')).String(), + token.T_NUM_STRING.String(), + token.ID(int(']')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('[')).String(), + token.T_STRING.String(), + token.ID(int(']')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.ID(int('[')).String(), + token.T_VARIABLE.String(), + token.ID(int(']')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('}')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_DOLLAR_OPEN_CURLY_BRACES.String(), + token.T_STRING_VARNAME.String(), + token.ID(int('}')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -875,41 +867,40 @@ CAT ` expected := []string{ - T_START_HEREDOC.String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), - T_START_HEREDOC.String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), - T_START_HEREDOC.String(), - T_VARIABLE.String(), - T_VARIABLE.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), + token.T_START_HEREDOC.String(), + token.T_VARIABLE.String(), + token.T_VARIABLE.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -934,21 +925,20 @@ CAT; expected := []string{ - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_CURLY_OPEN.String(), - T_VARIABLE.String(), - TokenID(int('[')).String(), - T_CONSTANT_ENCAPSED_STRING.String(), - TokenID(int(']')).String(), - TokenID(int('}')).String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_CURLY_OPEN.String(), + token.T_VARIABLE.String(), + token.ID(int('[')).String(), + token.T_CONSTANT_ENCAPSED_STRING.String(), + token.ID(int(']')).String(), + token.ID(int('}')).String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -971,15 +961,14 @@ func TestHereDocTokens73(t *testing.T) { expected := []string{ - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(',')).String(), - T_VARIABLE.String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(',')).String(), + token.T_VARIABLE.String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -1002,15 +991,14 @@ CAT;` expected := []string{ - T_START_HEREDOC.String(), - T_ENCAPSED_AND_WHITESPACE.String(), - T_END_HEREDOC.String(), - TokenID(int(';')).String(), + token.T_START_HEREDOC.String(), + token.T_ENCAPSED_AND_WHITESPACE.String(), + token.T_END_HEREDOC.String(), + token.ID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) + lexer := NewLexer([]byte(src), "7.4", nil) lexer.phpVersion = "7.2" - lexer.withTokens = true actual := []string{} for { @@ -1032,17 +1020,16 @@ func TestInlineHtmlNopTokens(t *testing.T) { ` expected := []string{ - T_VARIABLE.String(), - TokenID(int(';')).String(), - T_INLINE_HTML.String(), + token.T_VARIABLE.String(), + token.ID(int(';')).String(), + token.T_INLINE_HTML.String(), - T_VARIABLE.String(), - TokenID(int(';')).String(), - T_INLINE_HTML.String(), + token.T_VARIABLE.String(), + token.ID(int(';')).String(), + token.T_INLINE_HTML.String(), } - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) actual := []string{} for { @@ -1061,11 +1048,11 @@ func TestStringTokensAfterVariable(t *testing.T) { src := ` test` - expected := []token.Token{ + expected := []*token.Token{ { ID: token.T_OPEN_TAG, Value: []byte(" bar ( '' ) ;` - lexer := NewLexer([]byte(src), "7.4", false, nil) - lexer.withTokens = true + lexer := NewLexer([]byte(src), "7.4", nil) - expected := []token.Token{ + expected := []*token.Token{ { ID: token.T_OPEN_TAG, Value: []byte("= 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/pkg/ast/node.go b/pkg/ast/node.go index 81f6ef4..85b494a 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -16,6 +16,10 @@ func (n *Node) GetNode() *Node { return n } +func (n *Node) GetPosition() *position.Position { + return n.Position +} + // Root node type Root struct { Node diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 312b888..67bbaac 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -121,7 +121,7 @@ func (v *Dump) printNode(n *ast.Node) { key := token.Position(k) v.printIndent(v.indent + 2) - v.print("token." + key.String() + ": []token.Token{\n") + v.print("token." + key.String() + ": []*token.Token{\n") for _, tkn := range n.Tokens[key] { v.printIndent(v.indent + 3) diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index cc9a387..0ccdc27 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -13,7 +13,7 @@ func ExampleDump() { stxTree := &ast.Root{ Node: ast.Node{ Tokens: token.Collection{ - token.Start: []token.Token{ + token.Start: []*token.Token{ { ID: token.T_WHITESPACE, Value: []byte(" "), @@ -44,7 +44,7 @@ func ExampleDump() { //&ast.Root{ // Node: ast.Node{ // Tokens: token.Collection{ - // token.Start: []token.Token{ + // token.Start: []*token.Token{ // { // ID: token.T_WHITESPACE, // Value: []byte(" "), diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go new file mode 100644 index 0000000..c69a3f6 --- /dev/null +++ b/pkg/ast/visitor/filter_tokens.go @@ -0,0 +1,14 @@ +package visitor + +import ( + "github.com/z7zmey/php-parser/pkg/ast" +) + +type FilterTokens struct { + Null +} + +func (v *FilterTokens) EnterNode(n ast.Vertex) bool { + n.GetNode().Tokens = nil + return true +} diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index 67974fd..a50d09e 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -29,7 +29,7 @@ func Parse(src []byte, ver string, cfg Config) (ast.Vertex, error) { return nil, err } - lexer := scanner.NewLexer(src, ver, cfg.WithTokens, cfg.ErrorHandlerFunc) + lexer := scanner.NewLexer(src, ver, cfg.ErrorHandlerFunc) if r == -1 { parser = php5.NewParser(lexer, cfg.ErrorHandlerFunc) diff --git a/pkg/position/pool.go b/pkg/position/pool.go new file mode 100644 index 0000000..ad26891 --- /dev/null +++ b/pkg/position/pool.go @@ -0,0 +1,29 @@ +package position + +const DefaultBlockSize = 1024 + +type Pool struct { + block []Position + off int +} + +func NewPool(blockSize int) *Pool { + return &Pool{ + block: make([]Position, blockSize), + } +} + +func (p *Pool) Get() *Position { + if len(p.block) == 0 { + return nil + } + + if len(p.block) == p.off { + p.block = make([]Position, len(p.block)) + p.off = 0 + } + + p.off++ + + return &p.block[p.off-1] +} diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 24b5acd..2745542 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -12,7 +12,7 @@ import ( ) func parsePhp5(src string) ast.Vertex { - lexer := scanner.NewLexer([]byte(src), "5.6", true, nil) + lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() diff --git a/pkg/printer/printer_parsed_php7_test.go b/pkg/printer/printer_parsed_php7_test.go index 317ea02..5978f5d 100644 --- a/pkg/printer/printer_parsed_php7_test.go +++ b/pkg/printer/printer_parsed_php7_test.go @@ -29,7 +29,7 @@ abstract class Bar extends Baz // parse - lexer := scanner.NewLexer([]byte(src), "7.4", true, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() @@ -61,7 +61,7 @@ abstract class Bar extends Baz } func parse(src string) ast.Vertex { - lexer := scanner.NewLexer([]byte(src), "7.4", true, nil) + lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() diff --git a/pkg/printer/printer_test.go b/pkg/printer/printer_test.go index 8e85ac0..8e6d4e0 100644 --- a/pkg/printer/printer_test.go +++ b/pkg/printer/printer_test.go @@ -75,7 +75,7 @@ func TestPrinterPrintFileInlineHtml(t *testing.T) { Expr: &ast.ExprVariable{ Node: ast.Node{ Tokens: token.Collection{ - token.Start: []token.Token{ + token.Start: []*token.Token{ { ID: token.ID('$'), Value: []byte("$"), @@ -93,7 +93,7 @@ func TestPrinterPrintFileInlineHtml(t *testing.T) { Expr: &ast.ExprVariable{ Node: ast.Node{ Tokens: token.Collection{ - token.Start: []token.Token{ + token.Start: []*token.Token{ { ID: token.ID('$'), Value: []byte("$"), diff --git a/pkg/token/pool.go b/pkg/token/pool.go new file mode 100644 index 0000000..02c88ee --- /dev/null +++ b/pkg/token/pool.go @@ -0,0 +1,29 @@ +package token + +const DefaultBlockSize = 1024 + +type Pool struct { + block []Token + off int +} + +func NewPool(blockSize int) *Pool { + return &Pool{ + block: make([]Token, blockSize), + } +} + +func (p *Pool) Get() *Token { + if len(p.block) == 0 { + return nil + } + + if len(p.block) == p.off { + p.block = make([]Token, len(p.block)) + p.off = 0 + } + + p.off++ + + return &p.block[p.off-1] +} diff --git a/pkg/token/pool_bench_test.go b/pkg/token/pool_bench_test.go new file mode 100644 index 0000000..f6b3faf --- /dev/null +++ b/pkg/token/pool_bench_test.go @@ -0,0 +1,173 @@ +package token + +import ( + "testing" +) + +const amount = 100000 + +func BenchmarkPlain(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + + for i := 0; i < amount; i++ { + buf = append(buf, &Token{}) + } + } +} + +func BenchmarkSlice128(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 128) + + for i := 0; i < amount; i++ { + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkSlice512(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 512) + + for i := 0; i < amount; i++ { + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkSlice1024(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 1024) + + for i := 0; i < amount; i++ { + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkSlice2048(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 2048) + + for i := 0; i < amount; i++ { + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkBlockAppend128(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 128) + + for i := 0; i < amount; i++ { + if len(slc) == 128 { + slc = make([]Token, 0, 128) + } + + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkBlockAppend512(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 512) + + for i := 0; i < amount; i++ { + if len(slc) == 512 { + slc = make([]Token, 0, 512) + } + + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkBlockAppend1024(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 1024) + + for i := 0; i < amount; i++ { + if len(slc) == 1024 { + slc = make([]Token, 0, 1024) + } + + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkBlockAppend2048(b *testing.B) { + for n := 0; n < b.N; n++ { + buf := make([]*Token, 0, amount) + slc := make([]Token, 0, 2048) + + for i := 0; i < amount; i++ { + if len(slc) == 2048 { + slc = make([]Token, 0, 2048) + } + + slc = append(slc, Token{}) + buf = append(buf, &slc[len(slc)-1]) + } + } +} + +func BenchmarkPool128(b *testing.B) { + for n := 0; n < b.N; n++ { + pool := NewPool(128) + buf := make([]*Token, 0, amount) + + for i := 0; i < amount; i++ { + buf = append(buf, pool.Get()) + } + } +} + +func BenchmarkPool512(b *testing.B) { + for n := 0; n < b.N; n++ { + pool := NewPool(512) + buf := make([]*Token, 0, amount) + + for i := 0; i < amount; i++ { + buf = append(buf, pool.Get()) + } + } +} + +func BenchmarkPool1024(b *testing.B) { + for n := 0; n < b.N; n++ { + pool := NewPool(1024) + buf := make([]*Token, 0, amount) + + for i := 0; i < amount; i++ { + buf = append(buf, pool.Get()) + } + } +} + +func BenchmarkPool2048(b *testing.B) { + for n := 0; n < b.N; n++ { + pool := NewPool(2048) + buf := make([]*Token, 0, amount) + + for i := 0; i < amount; i++ { + buf = append(buf, pool.Get()) + } + } +} diff --git a/pkg/token/position.go b/pkg/token/position.go index 2ea40d4..cd76285 100644 --- a/pkg/token/position.go +++ b/pkg/token/position.go @@ -62,7 +62,7 @@ const ( CloseParenthesisToken ) -type Collection map[Position][]Token +type Collection map[Position][]*Token func (c Collection) IsEmpty() bool { for _, v := range c { diff --git a/pkg/token/token.go b/pkg/token/token.go index c1fa07e..b36c85f 100644 --- a/pkg/token/token.go +++ b/pkg/token/token.go @@ -1,5 +1,7 @@ package token +import "github.com/z7zmey/php-parser/pkg/position" + //go:generate stringer -type=ID -output ./token_string.go type ID int @@ -145,6 +147,13 @@ const ( ) type Token struct { - ID ID - Value []byte + ID ID + Value []byte + Position *position.Position + SkippedTokens []*Token + Skipped []byte +} + +func (t *Token) GetPosition() *position.Position { + return t.Position } From 767187ff853ee2e8dd59e9c7adea6ad52a9c30f8 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 22 Aug 2020 16:59:26 +0300 Subject: [PATCH 046/140] [refactoring] update ast structure for "Use" and "GroupUse" nodes --- internal/php5/parser_test.go | 873 +++++------ internal/php5/php5.go | 1457 +++++++++--------- internal/php5/php5.y | 415 ++--- internal/php5/php5_test.go | 872 +++++------ internal/php7/parser_test.go | 1589 ++++++++----------- internal/php7/php7.go | 1278 ++++++++-------- internal/php7/php7.y | 290 ++-- internal/php7/php7_test.go | 1590 ++++++++------------ pkg/ast/ast.go | 4 +- pkg/ast/node.go | 53 +- pkg/ast/traverser/dfs.go | 56 +- pkg/ast/visitor/dump.go | 50 +- pkg/ast/visitor/filter_parser_nodes.go | 28 - pkg/ast/visitor/filter_tokens.go | 21 + pkg/ast/visitor/namespace_resolver.go | 60 +- pkg/ast/visitor/namespace_resolver_test.go | 141 +- pkg/ast/visitor/null.go | 10 +- pkg/printer/pretty_printer.go | 48 +- pkg/printer/pretty_printer_test.go | 83 +- pkg/printer/printer.go | 119 +- pkg/printer/printer_parsed_php5_test.go | 3 +- pkg/printer/printer_parsed_php7_test.go | 6 +- pkg/printer/printer_test.go | 89 +- 23 files changed, 4134 insertions(+), 5001 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index bc6d43c..6ab5b7a 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -11677,17 +11677,17 @@ func TestStmtUse(t *testing.T) { EndPos: 11, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11696,27 +11696,17 @@ func TestStmtUse(t *testing.T) { EndPos: 10, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -11757,46 +11747,36 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 12, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 11, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 11, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 7, + StartPos: 8, EndPos: 11, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -11837,59 +11817,49 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 19, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 18, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 18, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 7, + StartPos: 8, + EndPos: 11, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, EndPos: 18, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 18, - }, - }, - Value: []byte("Bar"), - }, + Value: []byte("Bar"), }, }, }, @@ -11928,17 +11898,17 @@ func TestStmtUse_List(t *testing.T) { EndPos: 16, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 15, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11947,31 +11917,31 @@ func TestStmtUse_List(t *testing.T) { EndPos: 10, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -11980,27 +11950,17 @@ func TestStmtUse_List(t *testing.T) { EndPos: 15, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, }, @@ -12041,17 +12001,17 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 23, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 22, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12060,73 +12020,63 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 10, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 22, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, + EndPos: 15, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, EndPos: 22, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, - }, - }, - Value: []byte("Baz"), - }, + Value: []byte("Baz"), }, }, }, @@ -12165,46 +12115,38 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 26, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 25, + EndPos: 15, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 15, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 25, + EndPos: 19, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12213,31 +12155,31 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 19, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 21, - EndPos: 25, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 25, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 25, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12246,19 +12188,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 25, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 25, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -12299,46 +12229,38 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 40, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 39, + EndPos: 15, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 15, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 39, + EndPos: 26, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 26, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12347,42 +12269,42 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 19, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 39, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 39, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 32, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12391,33 +12313,21 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 32, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 32, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 36, - EndPos: 39, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 36, + EndPos: 39, + }, + }, + Value: []byte("bar"), + }, }, }, }, @@ -12455,47 +12365,38 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 23, }, }, - - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 22, + EndPos: 12, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 12, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 22, + EndPos: 16, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12504,31 +12405,31 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 16, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 22, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 22, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12537,19 +12438,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 22, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -12590,46 +12479,38 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 37, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 36, + EndPos: 12, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 12, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 36, + EndPos: 23, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 23, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12638,42 +12519,42 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 16, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 20, - EndPos: 23, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 36, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 23, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 36, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12682,33 +12563,21 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 29, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 36, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 36, + }, + }, + Value: []byte("bar"), + }, }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index f05d452..a1be3c0 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6059 +// line internal/php5/php5.y:6088 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:275 + // line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2324,7 +2324,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:285 + // line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2337,13 +2337,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:296 + // line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:303 + // line internal/php5/php5.y:303 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2356,7 +2356,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:314 + // line internal/php5/php5.y:314 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2370,32 +2370,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:329 + // line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:346 + // line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2408,7 +2408,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:357 + // line internal/php5/php5.y:357 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2424,7 +2424,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:371 + // line internal/php5/php5.y:371 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2440,7 +2440,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:385 + // line internal/php5/php5.y:385 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2454,62 +2454,58 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:397 + // line internal/php5/php5.y:397 { - useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, useList} - - // save position - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + UseTkn: yyDollar[1].token, + UseDeclarations: yyDollar[2].list, + SemiColonTkn: yyDollar[3].token, + } } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:410 + // line internal/php5/php5.y:408 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} - useType := &ast.StmtUseType{ast.Node{}, identifier, useList} - yyVAL.node = &ast.StmtUse{ast.Node{}, useType} - - // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) - useType.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, useList) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + UseTkn: yyDollar[1].token, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + Value: yyDollar[2].token.Value, + }, + UseDeclarations: yyDollar[3].list, + SemiColonTkn: yyDollar[4].token, + } } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:428 + // line internal/php5/php5.y:425 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} - useType := &ast.StmtUseType{ast.Node{}, identifier, useList} - yyVAL.node = &ast.StmtUse{ast.Node{}, useType} - - // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) - useType.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, useList) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + UseTkn: yyDollar[1].token, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + Value: yyDollar[2].token.Value, + }, + UseDeclarations: yyDollar[3].list, + SemiColonTkn: yyDollar[4].token, + } } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:446 + // line internal/php5/php5.y:442 { yyVAL.node = yyDollar[1].node @@ -2522,256 +2518,289 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:460 + // line internal/php5/php5.y:456 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:467 + // line internal/php5/php5.y:462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:474 + // line internal/php5/php5.y:469 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + } } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:483 + // line internal/php5/php5.y:483 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + } } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:500 + // line internal/php5/php5.y:504 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} - yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + } } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:514 + // line internal/php5/php5.y:519 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} - yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + NsSeparatorTkn: yyDollar[1].token, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + AsTkn: yyDollar[3].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + Value: yyDollar[4].token.Value, + }, + } } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:537 + // line internal/php5/php5.y:544 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:544 + // line internal/php5/php5.y:550 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:551 + // line internal/php5/php5.y:557 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + } } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:560 + // line internal/php5/php5.y:571 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + } } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:577 + // line internal/php5/php5.y:592 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} - yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + } } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:591 + // line internal/php5/php5.y:607 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} - yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + NsSeparatorTkn: yyDollar[1].token, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + AsTkn: yyDollar[3].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + Value: yyDollar[4].token.Value, + }, + } } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:614 + // line internal/php5/php5.y:632 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:621 + // line internal/php5/php5.y:638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:628 + // line internal/php5/php5.y:645 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + } } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:637 + // line internal/php5/php5.y:659 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + } } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:654 + // line internal/php5/php5.y:680 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} - yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - useDeclaration.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + } } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:668 + // line internal/php5/php5.y:695 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} - yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - useDeclaration.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + NsSeparatorTkn: yyDollar[1].token, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + AsTkn: yyDollar[3].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + Value: yyDollar[4].token.Value, + }, + } } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:691 + // line internal/php5/php5.y:720 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2792,7 +2821,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:710 + // line internal/php5/php5.y:739 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2811,7 +2840,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:730 + // line internal/php5/php5.y:759 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2824,38 +2853,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:741 + // line internal/php5/php5.y:770 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:749 + // line internal/php5/php5.y:778 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:754 + // line internal/php5/php5.y:783 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:758 + // line internal/php5/php5.y:787 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:762 + // line internal/php5/php5.y:791 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:766 + // line internal/php5/php5.y:795 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2868,13 +2897,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:781 + // line internal/php5/php5.y:810 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:785 + // line internal/php5/php5.y:814 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2889,7 +2918,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:801 + // line internal/php5/php5.y:830 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2902,7 +2931,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:812 + // line internal/php5/php5.y:841 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -2920,7 +2949,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:828 + // line internal/php5/php5.y:857 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -2945,7 +2974,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:851 + // line internal/php5/php5.y:880 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -2964,7 +2993,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:868 + // line internal/php5/php5.y:897 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -2979,7 +3008,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:881 + // line internal/php5/php5.y:910 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3006,7 +3035,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:906 + // line internal/php5/php5.y:935 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3027,7 +3056,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:925 + // line internal/php5/php5.y:954 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3041,7 +3070,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:937 + // line internal/php5/php5.y:966 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3055,7 +3084,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:949 + // line internal/php5/php5.y:978 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3069,7 +3098,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:961 + // line internal/php5/php5.y:990 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3083,7 +3112,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:973 + // line internal/php5/php5.y:1002 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3097,7 +3126,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:985 + // line internal/php5/php5.y:1014 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3111,7 +3140,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:997 + // line internal/php5/php5.y:1026 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3125,7 +3154,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1009 + // line internal/php5/php5.y:1038 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3139,7 +3168,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1021 + // line internal/php5/php5.y:1050 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3153,7 +3182,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1033 + // line internal/php5/php5.y:1062 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3167,7 +3196,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1045 + // line internal/php5/php5.y:1074 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3182,7 +3211,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1058 + // line internal/php5/php5.y:1087 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3194,7 +3223,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1068 + // line internal/php5/php5.y:1097 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3208,7 +3237,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1080 + // line internal/php5/php5.y:1109 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3224,7 +3253,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1094 + // line internal/php5/php5.y:1123 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3265,7 +3294,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1132 + // line internal/php5/php5.y:1161 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3306,7 +3335,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1170 + // line internal/php5/php5.y:1199 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3321,7 +3350,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1183 + // line internal/php5/php5.y:1212 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3334,7 +3363,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1194 + // line internal/php5/php5.y:1223 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3352,7 +3381,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1210 + // line internal/php5/php5.y:1239 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3366,7 +3395,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1222 + // line internal/php5/php5.y:1251 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3383,13 +3412,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1240 + // line internal/php5/php5.y:1269 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1244 + // line internal/php5/php5.y:1273 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3411,13 +3440,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1267 + // line internal/php5/php5.y:1296 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1271 + // line internal/php5/php5.y:1300 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3431,31 +3460,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1286 + // line internal/php5/php5.y:1315 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1290 + // line internal/php5/php5.y:1319 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1297 + // line internal/php5/php5.y:1326 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1301 + // line internal/php5/php5.y:1330 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1308 + // line internal/php5/php5.y:1337 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3476,13 +3505,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1330 + // line internal/php5/php5.y:1359 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1334 + // line internal/php5/php5.y:1363 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3491,49 +3520,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1344 + // line internal/php5/php5.y:1373 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1351 + // line internal/php5/php5.y:1380 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1358 + // line internal/php5/php5.y:1387 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1365 + // line internal/php5/php5.y:1394 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1398 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1376 + // line internal/php5/php5.y:1405 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1409 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1387 + // line internal/php5/php5.y:1416 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3557,7 +3586,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1412 + // line internal/php5/php5.y:1441 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3585,7 +3614,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1438 + // line internal/php5/php5.y:1467 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3602,7 +3631,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1457 + // line internal/php5/php5.y:1486 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3614,7 +3643,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1467 + // line internal/php5/php5.y:1496 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3629,7 +3658,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1480 + // line internal/php5/php5.y:1509 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3641,7 +3670,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1490 + // line internal/php5/php5.y:1519 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3656,13 +3685,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1506 + // line internal/php5/php5.y:1535 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1510 + // line internal/php5/php5.y:1539 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3674,19 +3703,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1552 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1530 + // line internal/php5/php5.y:1559 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1534 + // line internal/php5/php5.y:1563 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3698,13 +3727,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1547 + // line internal/php5/php5.y:1576 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1551 + // line internal/php5/php5.y:1580 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3716,13 +3745,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1564 + // line internal/php5/php5.y:1593 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1597 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3731,13 +3760,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1578 + // line internal/php5/php5.y:1607 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1582 + // line internal/php5/php5.y:1611 { yyVAL.node = yyDollar[2].node @@ -3746,13 +3775,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1592 + // line internal/php5/php5.y:1621 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1596 + // line internal/php5/php5.y:1625 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3764,7 +3793,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1606 + // line internal/php5/php5.y:1635 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3778,7 +3807,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1621 + // line internal/php5/php5.y:1650 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3787,7 +3816,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1628 + // line internal/php5/php5.y:1657 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3804,7 +3833,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1646 + // line internal/php5/php5.y:1675 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3813,7 +3842,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1653 + // line internal/php5/php5.y:1682 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3830,7 +3859,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1672 + // line internal/php5/php5.y:1701 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3839,7 +3868,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1679 + // line internal/php5/php5.y:1708 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3856,7 +3885,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1698 + // line internal/php5/php5.y:1727 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -3872,7 +3901,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1712 + // line internal/php5/php5.y:1741 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -3889,7 +3918,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1760 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3904,7 +3933,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1744 + // line internal/php5/php5.y:1773 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3920,7 +3949,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1758 + // line internal/php5/php5.y:1787 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -3937,7 +3966,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1802 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -3956,13 +3985,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1794 + // line internal/php5/php5.y:1823 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1798 + // line internal/php5/php5.y:1827 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -3977,7 +4006,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1840 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -3992,19 +4021,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1828 + // line internal/php5/php5.y:1857 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1832 + // line internal/php5/php5.y:1861 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1840 + // line internal/php5/php5.y:1869 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4013,7 +4042,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1876 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4030,13 +4059,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1867 + // line internal/php5/php5.y:1896 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1871 + // line internal/php5/php5.y:1900 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4049,13 +4078,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1886 + // line internal/php5/php5.y:1915 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1890 + // line internal/php5/php5.y:1919 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4073,13 +4102,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1910 + // line internal/php5/php5.y:1939 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1914 + // line internal/php5/php5.y:1943 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4091,13 +4120,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1928 + // line internal/php5/php5.y:1957 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1932 + // line internal/php5/php5.y:1961 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4114,25 +4143,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1951 + // line internal/php5/php5.y:1980 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1955 + // line internal/php5/php5.y:1984 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1962 + // line internal/php5/php5.y:1991 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1966 + // line internal/php5/php5.y:1995 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4141,7 +4170,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1976 + // line internal/php5/php5.y:2005 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4177,7 +4206,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2010 + // line internal/php5/php5.y:2039 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4214,13 +4243,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2049 + // line internal/php5/php5.y:2078 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2053 + // line internal/php5/php5.y:2082 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4232,7 +4261,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2063 + // line internal/php5/php5.y:2092 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4244,13 +4273,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2073 + // line internal/php5/php5.y:2102 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2081 + // line internal/php5/php5.y:2110 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4263,7 +4292,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2092 + // line internal/php5/php5.y:2121 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4276,7 +4305,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2103 + // line internal/php5/php5.y:2132 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4291,13 +4320,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2120 + // line internal/php5/php5.y:2149 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2153 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4306,7 +4335,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2134 + // line internal/php5/php5.y:2163 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4318,7 +4347,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2144 + // line internal/php5/php5.y:2173 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4330,7 +4359,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2154 + // line internal/php5/php5.y:2183 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4342,7 +4371,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2164 + // line internal/php5/php5.y:2193 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4354,7 +4383,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2206 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4363,13 +4392,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2184 + // line internal/php5/php5.y:2213 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2192 + // line internal/php5/php5.y:2221 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4383,7 +4412,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2204 + // line internal/php5/php5.y:2233 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4395,7 +4424,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2214 + // line internal/php5/php5.y:2243 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4409,7 +4438,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2230 + // line internal/php5/php5.y:2259 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4427,7 +4456,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2246 + // line internal/php5/php5.y:2275 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4446,7 +4475,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2263 + // line internal/php5/php5.y:2292 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4463,7 +4492,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2278 + // line internal/php5/php5.y:2307 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4481,19 +4510,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2298 + // line internal/php5/php5.y:2327 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2302 + // line internal/php5/php5.y:2331 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2310 + // line internal/php5/php5.y:2339 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4507,7 +4536,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2322 + // line internal/php5/php5.y:2351 { yyVAL.node = yyDollar[1].node @@ -4520,13 +4549,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2333 + // line internal/php5/php5.y:2362 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2337 + // line internal/php5/php5.y:2366 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4557,7 +4586,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2369 + // line internal/php5/php5.y:2398 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4569,13 +4598,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2382 + // line internal/php5/php5.y:2411 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2386 + // line internal/php5/php5.y:2415 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4584,7 +4613,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2396 + // line internal/php5/php5.y:2425 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4596,7 +4625,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2406 + // line internal/php5/php5.y:2435 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4608,31 +4637,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2419 + // line internal/php5/php5.y:2448 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2423 + // line internal/php5/php5.y:2452 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2430 + // line internal/php5/php5.y:2459 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2434 + // line internal/php5/php5.y:2463 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2441 + // line internal/php5/php5.y:2470 { yyVAL.node = yyDollar[1].node @@ -4642,7 +4671,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2449 + // line internal/php5/php5.y:2478 { yyVAL.node = yyDollar[1].node @@ -4652,7 +4681,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2460 + // line internal/php5/php5.y:2489 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4665,13 +4694,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2474 + // line internal/php5/php5.y:2503 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2507 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4680,7 +4709,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2488 + // line internal/php5/php5.y:2517 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4694,13 +4723,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2529 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2507 + // line internal/php5/php5.y:2536 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4716,7 +4745,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2524 + // line internal/php5/php5.y:2553 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4732,7 +4761,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2538 + // line internal/php5/php5.y:2567 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4745,19 +4774,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2552 + // line internal/php5/php5.y:2581 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2556 + // line internal/php5/php5.y:2585 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2563 + // line internal/php5/php5.y:2592 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4770,7 +4799,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2574 + // line internal/php5/php5.y:2603 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4783,13 +4812,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2588 + // line internal/php5/php5.y:2617 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2592 + // line internal/php5/php5.y:2621 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4802,31 +4831,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2606 + // line internal/php5/php5.y:2635 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2610 + // line internal/php5/php5.y:2639 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2617 + // line internal/php5/php5.y:2646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2621 + // line internal/php5/php5.y:2650 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2628 + // line internal/php5/php5.y:2657 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4838,7 +4867,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2638 + // line internal/php5/php5.y:2667 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4850,7 +4879,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2648 + // line internal/php5/php5.y:2677 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4862,7 +4891,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2687 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4874,7 +4903,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2668 + // line internal/php5/php5.y:2697 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4886,7 +4915,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2707 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4898,7 +4927,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2691 + // line internal/php5/php5.y:2720 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4916,7 +4945,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2707 + // line internal/php5/php5.y:2736 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4935,7 +4964,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2724 + // line internal/php5/php5.y:2753 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4952,7 +4981,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2739 + // line internal/php5/php5.y:2768 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4970,7 +4999,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2758 + // line internal/php5/php5.y:2787 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -4991,7 +5020,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2777 + // line internal/php5/php5.y:2806 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5009,7 +5038,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2796 + // line internal/php5/php5.y:2825 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5018,25 +5047,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2803 + // line internal/php5/php5.y:2832 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2811 + // line internal/php5/php5.y:2840 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2815 + // line internal/php5/php5.y:2844 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2822 + // line internal/php5/php5.y:2851 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5045,25 +5074,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2829 + // line internal/php5/php5.y:2858 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2836 + // line internal/php5/php5.y:2865 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2840 + // line internal/php5/php5.y:2869 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2876 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5077,7 +5106,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2859 + // line internal/php5/php5.y:2888 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5091,37 +5120,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2874 + // line internal/php5/php5.y:2903 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2878 + // line internal/php5/php5.y:2907 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2882 + // line internal/php5/php5.y:2911 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2889 + // line internal/php5/php5.y:2918 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2893 + // line internal/php5/php5.y:2922 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2900 + // line internal/php5/php5.y:2929 { if yyDollar[3].node != nil { @@ -5137,7 +5166,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2917 + // line internal/php5/php5.y:2946 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5154,7 +5183,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2932 + // line internal/php5/php5.y:2961 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5167,7 +5196,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2943 + // line internal/php5/php5.y:2972 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5181,7 +5210,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2955 + // line internal/php5/php5.y:2984 { var _new *ast.ExprNew @@ -5208,7 +5237,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2980 + // line internal/php5/php5.y:3009 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5220,7 +5249,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2990 + // line internal/php5/php5.y:3019 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5232,7 +5261,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3000 + // line internal/php5/php5.y:3029 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5245,7 +5274,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3011 + // line internal/php5/php5.y:3040 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5258,7 +5287,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3022 + // line internal/php5/php5.y:3051 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5271,7 +5300,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3033 + // line internal/php5/php5.y:3062 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5284,7 +5313,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3044 + // line internal/php5/php5.y:3073 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5297,7 +5326,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3055 + // line internal/php5/php5.y:3084 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5310,7 +5339,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3066 + // line internal/php5/php5.y:3095 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5323,7 +5352,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3077 + // line internal/php5/php5.y:3106 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5336,7 +5365,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3088 + // line internal/php5/php5.y:3117 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5349,7 +5378,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3099 + // line internal/php5/php5.y:3128 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5362,7 +5391,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3110 + // line internal/php5/php5.y:3139 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5375,7 +5404,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3121 + // line internal/php5/php5.y:3150 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5388,7 +5417,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3132 + // line internal/php5/php5.y:3161 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5400,7 +5429,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3142 + // line internal/php5/php5.y:3171 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5413,7 +5442,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3153 + // line internal/php5/php5.y:3182 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5425,7 +5454,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3163 + // line internal/php5/php5.y:3192 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5438,7 +5467,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3174 + // line internal/php5/php5.y:3203 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5451,7 +5480,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3185 + // line internal/php5/php5.y:3214 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5464,7 +5493,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3196 + // line internal/php5/php5.y:3225 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5477,7 +5506,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3207 + // line internal/php5/php5.y:3236 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5490,7 +5519,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3218 + // line internal/php5/php5.y:3247 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5503,7 +5532,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3229 + // line internal/php5/php5.y:3258 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5516,7 +5545,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3240 + // line internal/php5/php5.y:3269 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5529,7 +5558,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3251 + // line internal/php5/php5.y:3280 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5542,7 +5571,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3262 + // line internal/php5/php5.y:3291 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5555,7 +5584,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3302 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5568,7 +5597,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3284 + // line internal/php5/php5.y:3313 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5581,7 +5610,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5594,7 +5623,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3306 + // line internal/php5/php5.y:3335 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5607,7 +5636,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3317 + // line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5620,7 +5649,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3357 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5633,7 +5662,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3339 + // line internal/php5/php5.y:3368 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5646,7 +5675,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3350 + // line internal/php5/php5.y:3379 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5658,7 +5687,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3360 + // line internal/php5/php5.y:3389 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5670,7 +5699,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5682,7 +5711,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3409 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5694,7 +5723,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3390 + // line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5707,7 +5736,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3401 + // line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5720,7 +5749,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3412 + // line internal/php5/php5.y:3441 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5733,7 +5762,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3423 + // line internal/php5/php5.y:3452 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,7 +5776,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3435 + // line internal/php5/php5.y:3464 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5789,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3446 + // line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5802,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3457 + // line internal/php5/php5.y:3486 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5786,7 +5815,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3468 + // line internal/php5/php5.y:3497 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5828,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3479 + // line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,19 +5841,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3490 + // line internal/php5/php5.y:3519 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3494 + // line internal/php5/php5.y:3523 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3498 + // line internal/php5/php5.y:3527 { yyVAL.node = yyDollar[2].node @@ -5856,7 +5885,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3528 + // line internal/php5/php5.y:3557 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5870,7 +5899,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3540 + // line internal/php5/php5.y:3569 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5884,13 +5913,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3552 + // line internal/php5/php5.y:3581 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3556 + // line internal/php5/php5.y:3585 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5903,7 +5932,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3567 + // line internal/php5/php5.y:3596 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5916,7 +5945,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3578 + // line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5929,7 +5958,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3589 + // line internal/php5/php5.y:3618 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5942,7 +5971,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3600 + // line internal/php5/php5.y:3629 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5955,7 +5984,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3611 + // line internal/php5/php5.y:3640 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5968,7 +5997,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3622 + // line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -5981,7 +6010,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3633 + // line internal/php5/php5.y:3662 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6001,7 +6030,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3651 + // line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6013,25 +6042,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3661 + // line internal/php5/php5.y:3690 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3665 + // line internal/php5/php5.y:3694 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3669 + // line internal/php5/php5.y:3698 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3673 + // line internal/php5/php5.y:3702 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6043,7 +6072,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3683 + // line internal/php5/php5.y:3712 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6055,7 +6084,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3693 + // line internal/php5/php5.y:3722 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6067,7 +6096,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3703 + // line internal/php5/php5.y:3732 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6094,7 +6123,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3756 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6122,7 +6151,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3755 + // line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6134,7 +6163,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3765 + // line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6146,7 +6175,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3775 + // line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6159,7 +6188,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3786 + // line internal/php5/php5.y:3815 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6172,7 +6201,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3800 + // line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6185,7 +6214,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3811 + // line internal/php5/php5.y:3840 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6198,7 +6227,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3822 + // line internal/php5/php5.y:3851 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6214,7 +6243,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3836 + // line internal/php5/php5.y:3865 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6227,7 +6256,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3850 + // line internal/php5/php5.y:3879 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6241,7 +6270,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3862 + // line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6254,19 +6283,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3876 + // line internal/php5/php5.y:3905 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3883 + // line internal/php5/php5.y:3912 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3887 + // line internal/php5/php5.y:3916 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6280,7 +6309,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3902 + // line internal/php5/php5.y:3931 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6296,7 +6325,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3916 + // line internal/php5/php5.y:3945 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6315,7 +6344,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3933 + // line internal/php5/php5.y:3962 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6330,7 +6359,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3946 + // line internal/php5/php5.y:3975 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6348,7 +6377,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3965 + // line internal/php5/php5.y:3994 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} @@ -6359,7 +6388,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3974 + // line internal/php5/php5.y:4003 { funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} @@ -6374,7 +6403,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3987 + // line internal/php5/php5.y:4016 { funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} @@ -6388,7 +6417,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3999 + // line internal/php5/php5.y:4028 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6401,7 +6430,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4010 + // line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6414,7 +6443,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4021 + // line internal/php5/php5.y:4050 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6427,7 +6456,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4032 + // line internal/php5/php5.y:4061 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6440,7 +6469,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4043 + // line internal/php5/php5.y:4072 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6452,7 +6481,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4056 + // line internal/php5/php5.y:4085 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6464,7 +6493,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4066 + // line internal/php5/php5.y:4095 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -6473,7 +6502,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4073 + // line internal/php5/php5.y:4102 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -6486,7 +6515,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4084 + // line internal/php5/php5.y:4113 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -6498,7 +6527,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4097 + // line internal/php5/php5.y:4126 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -6507,7 +6536,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4133 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -6520,7 +6549,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4115 + // line internal/php5/php5.y:4144 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -6532,19 +6561,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4128 + // line internal/php5/php5.y:4157 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4132 + // line internal/php5/php5.y:4161 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4139 + // line internal/php5/php5.y:4168 { yyVAL.node = yyDollar[1].node @@ -6585,25 +6614,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4178 + // line internal/php5/php5.y:4207 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4186 + // line internal/php5/php5.y:4215 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4190 + // line internal/php5/php5.y:4219 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4198 + // line internal/php5/php5.y:4227 { yyVAL.list = yyDollar[2].list @@ -6612,13 +6641,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4237 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4212 + // line internal/php5/php5.y:4241 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} @@ -6631,19 +6660,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4223 + // line internal/php5/php5.y:4252 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4230 + // line internal/php5/php5.y:4259 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4234 + // line internal/php5/php5.y:4263 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6653,25 +6682,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4271 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4249 + // line internal/php5/php5.y:4278 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4253 + // line internal/php5/php5.y:4282 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4260 + // line internal/php5/php5.y:4289 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6683,7 +6712,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4270 + // line internal/php5/php5.y:4299 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6695,7 +6724,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4280 + // line internal/php5/php5.y:4309 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6707,7 +6736,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4290 + // line internal/php5/php5.y:4319 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6719,7 +6748,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4300 + // line internal/php5/php5.y:4329 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6731,7 +6760,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4310 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6743,7 +6772,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4349 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6755,7 +6784,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4330 + // line internal/php5/php5.y:4359 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6767,7 +6796,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4369 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6779,7 +6808,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4350 + // line internal/php5/php5.y:4379 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6791,7 +6820,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4360 + // line internal/php5/php5.y:4389 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6805,7 +6834,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4372 + // line internal/php5/php5.y:4401 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6817,7 +6846,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4385 + // line internal/php5/php5.y:4414 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6833,25 +6862,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4402 + // line internal/php5/php5.y:4431 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4409 + // line internal/php5/php5.y:4438 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4413 + // line internal/php5/php5.y:4442 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4417 + // line internal/php5/php5.y:4446 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -6862,7 +6891,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4426 + // line internal/php5/php5.y:4455 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -6877,7 +6906,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4439 + // line internal/php5/php5.y:4468 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -6891,7 +6920,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4451 + // line internal/php5/php5.y:4480 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6905,7 +6934,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4463 + // line internal/php5/php5.y:4492 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6918,13 +6947,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4474 + // line internal/php5/php5.y:4503 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4478 + // line internal/php5/php5.y:4507 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6936,13 +6965,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4488 + // line internal/php5/php5.y:4517 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4495 + // line internal/php5/php5.y:4524 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6955,7 +6984,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4506 + // line internal/php5/php5.y:4535 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6968,7 +6997,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4517 + // line internal/php5/php5.y:4546 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6981,7 +7010,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4528 + // line internal/php5/php5.y:4557 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6994,7 +7023,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4539 + // line internal/php5/php5.y:4568 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7007,7 +7036,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4550 + // line internal/php5/php5.y:4579 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7020,7 +7049,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4561 + // line internal/php5/php5.y:4590 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7033,7 +7062,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4572 + // line internal/php5/php5.y:4601 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7045,7 +7074,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4582 + // line internal/php5/php5.y:4611 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7057,7 +7086,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4592 + // line internal/php5/php5.y:4621 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7070,7 +7099,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4603 + // line internal/php5/php5.y:4632 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7083,7 +7112,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4614 + // line internal/php5/php5.y:4643 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7096,7 +7125,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4625 + // line internal/php5/php5.y:4654 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7109,7 +7138,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4636 + // line internal/php5/php5.y:4665 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7122,7 +7151,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4647 + // line internal/php5/php5.y:4676 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7135,7 +7164,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4658 + // line internal/php5/php5.y:4687 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7148,7 +7177,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7161,7 +7190,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4680 + // line internal/php5/php5.y:4709 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7174,7 +7203,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4720 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7187,7 +7216,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4702 + // line internal/php5/php5.y:4731 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7200,7 +7229,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4742 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7213,7 +7242,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4753 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7226,7 +7255,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7239,7 +7268,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4746 + // line internal/php5/php5.y:4775 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7253,7 +7282,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4758 + // line internal/php5/php5.y:4787 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7266,7 +7295,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4769 + // line internal/php5/php5.y:4798 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7279,7 +7308,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4780 + // line internal/php5/php5.y:4809 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7292,7 +7321,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4791 + // line internal/php5/php5.y:4820 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7305,7 +7334,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4802 + // line internal/php5/php5.y:4831 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7319,7 +7348,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4814 + // line internal/php5/php5.y:4843 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7333,7 +7362,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4826 + // line internal/php5/php5.y:4855 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7345,7 +7374,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4836 + // line internal/php5/php5.y:4865 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7357,7 +7386,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4875 { yyVAL.node = yyDollar[2].node @@ -7367,13 +7396,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4857 + // line internal/php5/php5.y:4886 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4861 + // line internal/php5/php5.y:4890 { name := &ast.NameName{ast.Node{}, yyDollar[1].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7384,7 +7413,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4899 { name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7399,7 +7428,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4883 + // line internal/php5/php5.y:4912 { name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} @@ -7413,7 +7442,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4898 + // line internal/php5/php5.y:4927 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7427,25 +7456,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4939 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4914 + // line internal/php5/php5.y:4943 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4918 + // line internal/php5/php5.y:4947 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4922 + // line internal/php5/php5.y:4951 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7457,7 +7486,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4961 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7469,7 +7498,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4971 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7481,13 +7510,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4955 + // line internal/php5/php5.y:4984 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4959 + // line internal/php5/php5.y:4988 { yyVAL.list = yyDollar[1].list @@ -7498,19 +7527,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4971 + // line internal/php5/php5.y:5000 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4975 + // line internal/php5/php5.y:5004 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4982 + // line internal/php5/php5.y:5011 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7525,7 +7554,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4995 + // line internal/php5/php5.y:5024 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7539,7 +7568,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5007 + // line internal/php5/php5.y:5036 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7553,7 +7582,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5019 + // line internal/php5/php5.y:5048 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7566,19 +7595,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5033 + // line internal/php5/php5.y:5062 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5037 + // line internal/php5/php5.y:5066 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5073 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7591,7 +7620,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5055 + // line internal/php5/php5.y:5084 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7604,25 +7633,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5070 + // line internal/php5/php5.y:5099 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5078 + // line internal/php5/php5.y:5107 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5085 + // line internal/php5/php5.y:5114 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5121 { yyVAL.node = yyDollar[1].node @@ -7680,25 +7709,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5177 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5184 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5159 + // line internal/php5/php5.y:5188 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5167 + // line internal/php5/php5.y:5196 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7712,7 +7741,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5182 + // line internal/php5/php5.y:5211 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7726,7 +7755,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5194 + // line internal/php5/php5.y:5223 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7740,7 +7769,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5209 + // line internal/php5/php5.y:5238 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7749,31 +7778,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5219 + // line internal/php5/php5.y:5248 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5223 + // line internal/php5/php5.y:5252 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5227 + // line internal/php5/php5.y:5256 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5234 + // line internal/php5/php5.y:5263 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5238 + // line internal/php5/php5.y:5267 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7785,7 +7814,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5251 + // line internal/php5/php5.y:5280 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7798,7 +7827,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5262 + // line internal/php5/php5.y:5291 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7811,13 +7840,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5276 + // line internal/php5/php5.y:5305 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5283 + // line internal/php5/php5.y:5312 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7830,7 +7859,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5294 + // line internal/php5/php5.y:5323 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7843,31 +7872,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5337 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5312 + // line internal/php5/php5.y:5341 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5316 + // line internal/php5/php5.y:5345 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5324 + // line internal/php5/php5.y:5353 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5328 + // line internal/php5/php5.y:5357 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7879,13 +7908,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5338 + // line internal/php5/php5.y:5367 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5345 + // line internal/php5/php5.y:5374 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7898,7 +7927,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5356 + // line internal/php5/php5.y:5385 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7911,13 +7940,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5367 + // line internal/php5/php5.y:5396 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5375 + // line internal/php5/php5.y:5404 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7931,7 +7960,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5387 + // line internal/php5/php5.y:5416 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7945,25 +7974,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5431 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5406 + // line internal/php5/php5.y:5435 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5414 + // line internal/php5/php5.y:5443 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5418 + // line internal/php5/php5.y:5447 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -7973,7 +8002,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5429 + // line internal/php5/php5.y:5458 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7987,7 +8016,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5441 + // line internal/php5/php5.y:5470 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8001,7 +8030,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5453 + // line internal/php5/php5.y:5482 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8011,7 +8040,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5464 + // line internal/php5/php5.y:5493 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8023,7 +8052,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5474 + // line internal/php5/php5.y:5503 { yyVAL.node = yyDollar[2].node @@ -8036,7 +8065,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5488 + // line internal/php5/php5.y:5517 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8049,7 +8078,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5499 + // line internal/php5/php5.y:5528 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8066,7 +8095,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5517 + // line internal/php5/php5.y:5546 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8079,7 +8108,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5528 + // line internal/php5/php5.y:5557 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8089,7 +8118,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5540 + // line internal/php5/php5.y:5569 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8101,7 +8130,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5579 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8117,19 +8146,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5564 + // line internal/php5/php5.y:5593 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5572 + // line internal/php5/php5.y:5601 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5605 { yyVAL.list = yyDollar[1].list @@ -8144,7 +8173,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5621 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8159,7 +8188,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5634 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8173,7 +8202,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5617 + // line internal/php5/php5.y:5646 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8187,7 +8216,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5658 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8200,7 +8229,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5640 + // line internal/php5/php5.y:5669 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8218,7 +8247,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5656 + // line internal/php5/php5.y:5685 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8234,7 +8263,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5670 + // line internal/php5/php5.y:5699 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8251,7 +8280,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5685 + // line internal/php5/php5.y:5714 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8266,13 +8295,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5701 + // line internal/php5/php5.y:5730 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5705 + // line internal/php5/php5.y:5734 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8285,13 +8314,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5716 + // line internal/php5/php5.y:5745 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5720 + // line internal/php5/php5.y:5749 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8304,7 +8333,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5734 + // line internal/php5/php5.y:5763 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8318,7 +8347,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5746 + // line internal/php5/php5.y:5775 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8335,7 +8364,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5761 + // line internal/php5/php5.y:5790 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8354,7 +8383,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5778 + // line internal/php5/php5.y:5807 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8369,7 +8398,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5791 + // line internal/php5/php5.y:5820 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8386,7 +8415,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5806 + // line internal/php5/php5.y:5835 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8405,7 +8434,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5823 + // line internal/php5/php5.y:5852 { yyVAL.node = yyDollar[2].node @@ -8415,7 +8444,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5834 + // line internal/php5/php5.y:5863 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8427,7 +8456,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5844 + // line internal/php5/php5.y:5873 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8444,7 +8473,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5859 + // line internal/php5/php5.y:5888 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8458,7 +8487,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5874 + // line internal/php5/php5.y:5903 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8472,7 +8501,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5886 + // line internal/php5/php5.y:5915 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8488,7 +8517,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5900 + // line internal/php5/php5.y:5929 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8504,7 +8533,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5914 + // line internal/php5/php5.y:5943 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8516,7 +8545,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5924 + // line internal/php5/php5.y:5953 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8528,7 +8557,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5934 + // line internal/php5/php5.y:5963 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -8544,7 +8573,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5948 + // line internal/php5/php5.y:5977 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8556,7 +8585,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5958 + // line internal/php5/php5.y:5987 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8568,13 +8597,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5971 + // line internal/php5/php5.y:6000 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5975 + // line internal/php5/php5.y:6004 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8583,19 +8612,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5985 + // line internal/php5/php5.y:6014 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5989 + // line internal/php5/php5.y:6018 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5996 + // line internal/php5/php5.y:6025 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8611,7 +8640,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6010 + // line internal/php5/php5.y:6039 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8627,7 +8656,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6027 + // line internal/php5/php5.y:6056 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8643,7 +8672,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6044 + // line internal/php5/php5.y:6073 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d328d44..a462f00 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -395,52 +395,48 @@ top_statement: } | T_USE use_declarations ';' { - useList := &ast.StmtUseList{ast.Node{}, $2} - $$ = &ast.StmtUse{ast.Node{}, useList} - - // save position - useList.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + UseTkn: $1, + UseDeclarations: $2, + SemiColonTkn: $3, + } } | T_USE T_FUNCTION use_function_declarations ';' { - identifier := &ast.Identifier{ast.Node{}, $2.Value} - useList := &ast.StmtUseList{ast.Node{}, $3} - useType := &ast.StmtUseType{ast.Node{}, identifier, useList} - $$ = &ast.StmtUse{ast.Node{}, useType} - - // save position - identifier.GetNode().Position = position.NewTokenPosition($2) - useList.GetNode().Position = position.NewNodeListPosition($3) - useType.GetNode().Position = position.NewTokenNodePosition($2, useList) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) + $$ = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + UseTkn: $1, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + Value: $2.Value, + }, + UseDeclarations: $3, + SemiColonTkn: $4, + } } | T_USE T_CONST use_const_declarations ';' { - identifier := &ast.Identifier{ast.Node{}, $2.Value} - useList := &ast.StmtUseList{ast.Node{}, $3} - useType := &ast.StmtUseType{ast.Node{}, identifier, useList} - $$ = &ast.StmtUse{ast.Node{}, useType} - - // save position - identifier.GetNode().Position = position.NewTokenPosition($2) - useList.GetNode().Position = position.NewNodeListPosition($3) - useType.GetNode().Position = position.NewTokenNodePosition($2, useList) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating(identifier, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) + $$ = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + UseTkn: $1, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + Value: $2.Value, + }, + UseDeclarations: $3, + SemiColonTkn: $4, + } } | constant_declaration ';' { @@ -458,10 +454,9 @@ top_statement: use_declarations: use_declarations ',' use_declaration { - $$ = append($1, $3) + $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | use_declaration { @@ -472,73 +467,84 @@ use_declarations: use_declaration: namespace_name { - name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - $$.GetNode().Position = position.NewNodeListPosition($1) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + } } | namespace_name T_AS T_STRING { - name := &ast.NameName{ast.Node{}, $1} - alias := &ast.Identifier{ast.Node{}, $3.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - alias.GetNode().Position = position.NewTokenPosition($3) - asAlias.GetNode().Position = position.NewTokensPosition($2, $3) - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $3), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + } } | T_NS_SEPARATOR namespace_name { - name := &ast.NameName{ast.Node{}, $2} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} - $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) - $$.GetNode().Position = position.NewTokenNodePosition($1, name) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + } } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - name := &ast.NameName{ast.Node{}, $2} - alias := &ast.Identifier{ast.Node{}, $4.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} - $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - alias.GetNode().Position = position.NewTokenPosition($4) - asAlias.GetNode().Position = position.NewTokensPosition($3, $4) - useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + NsSeparatorTkn: $1, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + AsTkn: $3, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + Value: $4.Value, + }, + } } ; use_function_declarations: use_function_declarations ',' use_function_declaration { - $$ = append($1, $3) + $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | use_function_declaration { @@ -549,73 +555,84 @@ use_function_declarations: use_function_declaration: namespace_name { - name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - $$.GetNode().Position = position.NewNodeListPosition($1) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + } } | namespace_name T_AS T_STRING { - name := &ast.NameName{ast.Node{}, $1} - alias := &ast.Identifier{ast.Node{}, $3.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - alias.GetNode().Position = position.NewTokenPosition($3) - asAlias.GetNode().Position = position.NewTokensPosition($2, $3) - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $3), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + } } | T_NS_SEPARATOR namespace_name { - name := &ast.NameName{ast.Node{}, $2} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} - $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) - $$.GetNode().Position = position.NewTokenNodePosition($1, name) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + } } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - name := &ast.NameName{ast.Node{}, $2} - alias := &ast.Identifier{ast.Node{}, $4.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} - $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - alias.GetNode().Position = position.NewTokenPosition($4) - asAlias.GetNode().Position = position.NewTokensPosition($3, $4) - useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + NsSeparatorTkn: $1, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + AsTkn: $3, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + Value: $4.Value, + }, + } } ; use_const_declarations: use_const_declarations ',' use_const_declaration { - $$ = append($1, $3) + $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | use_const_declaration { @@ -626,63 +643,75 @@ use_const_declarations: use_const_declaration: namespace_name { - name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - $$.GetNode().Position = position.NewNodeListPosition($1) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + } } | namespace_name T_AS T_STRING { - name := &ast.NameName{ast.Node{}, $1} - alias := &ast.Identifier{ast.Node{}, $3.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - alias.GetNode().Position = position.NewTokenPosition($3) - asAlias.GetNode().Position = position.NewTokensPosition($2, $3) - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $3), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + } } | T_NS_SEPARATOR namespace_name { - name := &ast.NameName{ast.Node{}, $2} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, nil} - $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - useDeclaration.GetNode().Position = position.NewTokenNodePosition($1, name) - $$.GetNode().Position = position.NewTokenNodePosition($1, name) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + } } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - name := &ast.NameName{ast.Node{}, $2} - alias := &ast.Identifier{ast.Node{}, $4.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - useDeclaration := &ast.StmtUseDeclaration{ast.Node{}, name, alias} - $$ = &ast.ParserNsSeparator{ast.Node{}, useDeclaration} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - alias.GetNode().Position = position.NewTokenPosition($4) - asAlias.GetNode().Position = position.NewTokensPosition($3, $4) - useDeclaration.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + NsSeparatorTkn: $1, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + AsTkn: $3, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + Value: $4.Value, + }, + } } ; diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 051917b..d802b19 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -8536,17 +8536,17 @@ func TestPhp5(t *testing.T) { EndPos: 3289, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3285, + EndPos: 3288, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 154, @@ -8555,27 +8555,17 @@ func TestPhp5(t *testing.T) { EndPos: 3288, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 154, + EndLine: 154, + StartPos: 3285, + EndPos: 3288, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -8591,46 +8581,36 @@ func TestPhp5(t *testing.T) { EndPos: 3299, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3294, - EndPos: 3298, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3294, + EndPos: 3298, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 155, EndLine: 155, - StartPos: 3294, + StartPos: 3295, EndPos: 3298, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3295, - EndPos: 3298, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3295, - EndPos: 3298, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 155, + EndLine: 155, + StartPos: 3295, + EndPos: 3298, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -8646,59 +8626,49 @@ func TestPhp5(t *testing.T) { EndPos: 3316, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3304, - EndPos: 3315, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3304, + EndPos: 3315, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 156, EndLine: 156, - StartPos: 3304, + StartPos: 3305, + EndPos: 3308, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3305, + EndPos: 3308, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 156, + EndLine: 156, + StartPos: 3312, EndPos: 3315, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3305, - EndPos: 3308, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3305, - EndPos: 3308, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3312, - EndPos: 3315, - }, - }, - Value: []byte("Bar"), - }, + Value: []byte("Bar"), }, }, }, @@ -8712,17 +8682,17 @@ func TestPhp5(t *testing.T) { EndPos: 3330, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3329, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3321, + EndPos: 3324, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 157, @@ -8731,31 +8701,31 @@ func TestPhp5(t *testing.T) { EndPos: 3324, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3324, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3324, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3321, + EndPos: 3324, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3326, + EndPos: 3329, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 157, @@ -8764,27 +8734,17 @@ func TestPhp5(t *testing.T) { EndPos: 3329, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3329, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3329, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 157, + EndLine: 157, + StartPos: 3326, + EndPos: 3329, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, }, @@ -8800,17 +8760,17 @@ func TestPhp5(t *testing.T) { EndPos: 3351, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3350, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3335, + EndPos: 3338, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 158, @@ -8819,73 +8779,63 @@ func TestPhp5(t *testing.T) { EndPos: 3338, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3338, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3338, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3335, + EndPos: 3338, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3340, + EndPos: 3350, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 158, EndLine: 158, StartPos: 3340, + EndPos: 3343, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3340, + EndPos: 3343, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 158, + EndLine: 158, + StartPos: 3347, EndPos: 3350, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3340, - EndPos: 3343, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3340, - EndPos: 3343, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3347, - EndPos: 3350, - }, - }, - Value: []byte("Baz"), - }, + Value: []byte("Baz"), }, }, }, @@ -8899,46 +8849,38 @@ func TestPhp5(t *testing.T) { EndPos: 3375, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, StartPos: 3356, - EndPos: 3374, + EndPos: 3364, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3356, - EndPos: 3364, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, EndLine: 159, StartPos: 3365, - EndPos: 3374, + EndPos: 3368, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3365, - EndPos: 3368, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3365, + EndPos: 3368, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, @@ -8947,31 +8889,31 @@ func TestPhp5(t *testing.T) { EndPos: 3368, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3365, - EndPos: 3368, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3370, - EndPos: 3374, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3370, + EndPos: 3374, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 159, + EndLine: 159, + StartPos: 3371, + EndPos: 3374, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 159, @@ -8980,19 +8922,7 @@ func TestPhp5(t *testing.T) { EndPos: 3374, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3371, - EndPos: 3374, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -9008,46 +8938,38 @@ func TestPhp5(t *testing.T) { EndPos: 3413, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, StartPos: 3380, - EndPos: 3412, + EndPos: 3388, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3380, - EndPos: 3388, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, EndLine: 160, StartPos: 3389, - EndPos: 3412, + EndPos: 3399, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3389, - EndPos: 3399, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3389, + EndPos: 3392, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, @@ -9056,42 +8978,42 @@ func TestPhp5(t *testing.T) { EndPos: 3392, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3389, - EndPos: 3392, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3396, - EndPos: 3399, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3401, - EndPos: 3412, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3396, + EndPos: 3399, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3401, + EndPos: 3412, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3402, + EndPos: 3405, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 160, @@ -9100,33 +9022,21 @@ func TestPhp5(t *testing.T) { EndPos: 3405, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3402, - EndPos: 3405, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3409, - EndPos: 3412, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 160, + EndLine: 160, + StartPos: 3409, + EndPos: 3412, + }, + }, + Value: []byte("bar"), + }, }, }, }, @@ -9139,46 +9049,38 @@ func TestPhp5(t *testing.T) { EndPos: 3434, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, StartPos: 3418, - EndPos: 3433, + EndPos: 3423, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3418, - EndPos: 3423, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, EndLine: 161, StartPos: 3424, - EndPos: 3433, + EndPos: 3427, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3424, - EndPos: 3427, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3424, + EndPos: 3427, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9187,31 +9089,31 @@ func TestPhp5(t *testing.T) { EndPos: 3427, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3424, - EndPos: 3427, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3429, - EndPos: 3433, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3429, + EndPos: 3433, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3430, + EndPos: 3433, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9220,19 +9122,7 @@ func TestPhp5(t *testing.T) { EndPos: 3433, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3430, - EndPos: 3433, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -9248,46 +9138,38 @@ func TestPhp5(t *testing.T) { EndPos: 3469, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, StartPos: 3439, - EndPos: 3468, + EndPos: 3444, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3439, - EndPos: 3444, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, StartPos: 3445, - EndPos: 3468, + EndPos: 3455, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3445, - EndPos: 3455, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3445, + EndPos: 3448, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, @@ -9296,42 +9178,42 @@ func TestPhp5(t *testing.T) { EndPos: 3448, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3445, - EndPos: 3448, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3452, - EndPos: 3455, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3457, - EndPos: 3468, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3452, + EndPos: 3455, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3457, + EndPos: 3468, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3458, + EndPos: 3461, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, @@ -9340,33 +9222,21 @@ func TestPhp5(t *testing.T) { EndPos: 3461, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3458, - EndPos: 3461, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3465, - EndPos: 3468, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3465, + EndPos: 3468, + }, + }, + Value: []byte("bar"), + }, }, }, }, diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index d909c98..b33e201 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -12671,17 +12671,17 @@ func TestStmtUse(t *testing.T) { EndPos: 11, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12690,27 +12690,17 @@ func TestStmtUse(t *testing.T) { EndPos: 10, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -12751,46 +12741,36 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 12, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 11, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 11, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 7, + StartPos: 8, EndPos: 11, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -12831,59 +12811,49 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 19, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 18, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 18, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 7, + StartPos: 8, + EndPos: 11, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 11, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, EndPos: 18, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 11, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 18, - }, - }, - Value: []byte("Bar"), - }, + Value: []byte("Bar"), }, }, }, @@ -12922,17 +12892,17 @@ func TestStmtUse_List(t *testing.T) { EndPos: 16, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 15, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12941,31 +12911,31 @@ func TestStmtUse_List(t *testing.T) { EndPos: 10, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12974,27 +12944,17 @@ func TestStmtUse_List(t *testing.T) { EndPos: 15, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, }, @@ -13035,17 +12995,17 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 23, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 22, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13054,73 +13014,63 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 10, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 22, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, + EndPos: 15, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, EndPos: 22, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, - }, - }, - Value: []byte("Baz"), - }, + Value: []byte("Baz"), }, }, }, @@ -13159,46 +13109,38 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 26, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 25, + EndPos: 15, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 15, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 25, + EndPos: 19, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13207,31 +13149,31 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 19, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 21, - EndPos: 25, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 25, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 25, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13240,19 +13182,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 25, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 25, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -13293,46 +13223,38 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 40, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 39, + EndPos: 15, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 15, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, - EndPos: 39, + EndPos: 26, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 26, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13341,42 +13263,42 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 19, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 39, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 39, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 32, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13385,33 +13307,21 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 32, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 32, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 36, - EndPos: 39, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 36, + EndPos: 39, + }, + }, + Value: []byte("bar"), + }, }, }, }, @@ -13449,47 +13359,38 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 23, }, }, - - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 22, + EndPos: 12, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 12, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 22, + EndPos: 16, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13498,31 +13399,31 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 16, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 22, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 22, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 22, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13531,19 +13432,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 22, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 22, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -13584,46 +13473,38 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 37, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 36, + EndPos: 12, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 12, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, - EndPos: 36, + EndPos: 23, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 23, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13632,42 +13513,42 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 16, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 20, - EndPos: 23, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 36, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 23, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 36, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13676,33 +13557,21 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 29, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 36, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 36, + }, + }, + Value: []byte("bar"), + }, }, }, }, @@ -13731,7 +13600,7 @@ func TestStmtUse_GroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13740,58 +13609,50 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 22, }, }, - UseList: &ast.StmtGroupUseList{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 21, + EndPos: 10, }, }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, - UseList: &ast.StmtUseList{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, - EndPos: 20, + EndPos: 15, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13800,31 +13661,31 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 15, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 20, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 20, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 20, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13833,19 +13694,7 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 20, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 20, - }, - }, - Value: []byte("Baz"), - }, - }, + Value: []byte("Baz"), }, }, }, @@ -13877,7 +13726,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13886,58 +13735,50 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 30, }, }, - UseList: &ast.StmtGroupUseList{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 29, + EndPos: 10, }, }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, - UseList: &ast.StmtUseList{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, - EndPos: 28, + EndPos: 15, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 15, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13946,31 +13787,31 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 15, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 15, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 28, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 28, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 20, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -13979,33 +13820,21 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 20, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 20, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 28, - }, - }, - Value: []byte("quux"), + Value: []byte("Baz"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 28, + }, + }, + Value: []byte("quux"), + }, }, }, }, @@ -14034,7 +13863,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14043,36 +13872,28 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 31, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 30, + EndPos: 15, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 15, - }, + Value: []byte("function"), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, }, - Value: []byte("function"), }, - Use: &ast.StmtGroupUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 30, - }, - }, - Prefix: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14081,31 +13902,31 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 19, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 19, - }, - }, - Value: []byte("Foo"), - }, + Value: []byte("Foo"), + }, + }, + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 24, }, }, - UseList: &ast.StmtUseList{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 21, - EndPos: 29, + EndPos: 24, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14114,31 +13935,31 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 24, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 21, - EndPos: 24, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 21, - EndPos: 24, - }, - }, - Value: []byte("Bar"), - }, - }, - }, + Value: []byte("Bar"), }, - &ast.StmtUseDeclaration{ + }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 29, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14147,29 +13968,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 29, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 29, - }, - }, - Value: []byte("Baz"), - }, - }, - }, + Value: []byte("Baz"), }, }, }, @@ -14201,7 +14000,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14210,36 +14009,28 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 28, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 27, + EndPos: 12, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 12, - }, + Value: []byte("const"), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 16, }, - Value: []byte("const"), }, - Use: &ast.StmtGroupUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 27, - }, - }, - Prefix: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14248,31 +14039,31 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 16, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 13, - EndPos: 16, - }, - }, - Value: []byte("Foo"), - }, + Value: []byte("Foo"), + }, + }, + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 21, }, }, - UseList: &ast.StmtUseList{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 18, - EndPos: 26, + EndPos: 21, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14281,31 +14072,31 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 21, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 21, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 21, - }, - }, - Value: []byte("Bar"), - }, - }, - }, + Value: []byte("Bar"), }, - &ast.StmtUseDeclaration{ + }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14314,29 +14105,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 26, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, - }, - }, - Value: []byte("Baz"), - }, - }, - }, + Value: []byte("Baz"), }, }, }, @@ -14368,7 +14137,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14377,69 +14146,61 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 37, }, }, - UseList: &ast.StmtGroupUseList{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, - EndPos: 36, + EndPos: 10, }, }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 7, - EndPos: 10, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, - UseList: &ast.StmtUseList{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, - EndPos: 35, + EndPos: 21, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseType{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 21, - }, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 17, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 12, - EndPos: 17, - }, - }, - Value: []byte("const"), + }, + Value: []byte("const"), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 21, }, - Use: &ast.StmtUseDeclaration{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14448,52 +14209,42 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 21, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 21, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 21, - }, - }, - Value: []byte("Bar"), - }, - }, - }, + Value: []byte("Bar"), }, }, - &ast.StmtUseType{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 35, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 35, + }, + }, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 31, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 31, - }, - }, - Value: []byte("function"), + }, + Value: []byte("function"), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 32, + EndPos: 35, }, - Use: &ast.StmtUseDeclaration{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14502,29 +14253,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 35, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 32, - EndPos: 35, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 32, - EndPos: 35, - }, - }, - Value: []byte("Baz"), - }, - }, - }, + Value: []byte("Baz"), }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 7ed02ea..2e0a57b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4838 +// line internal/php7/php7.y:4820 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:293 + // line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:323 + // line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:327 + // line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:334 + // line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:345 + // line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:352 + // line internal/php7/php7.y:352 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{namePart} @@ -2618,7 +2618,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:363 + // line internal/php7/php7.y:363 { namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} yyVAL.list = append(yyDollar[1].list, namePart) @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:378 + // line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:385 + // line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:396 + // line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:409 + // line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:414 + // line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:418 + // line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:422 + // line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:426 + // line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:430 + // line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:434 + // line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:445 + // line internal/php7/php7.y:445 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} @@ -2733,7 +2733,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:460 + // line internal/php7/php7.y:460 { name := &ast.NameName{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} @@ -2750,7 +2750,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:475 + // line internal/php7/php7.y:475 { yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} @@ -2764,67 +2764,59 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:487 + // line internal/php7/php7.y:487 { - yyVAL.node = &ast.StmtUse{ast.Node{}, yyDollar[2].node} + use := yyDollar[2].node.(*ast.StmtGroupUse) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + use.Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + use.UseTkn = yyDollar[1].token + use.SemiColonTkn = yyDollar[3].token - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:498 + // line internal/php7/php7.y:497 { - useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, yyDollar[3].node} - yyVAL.node = &ast.StmtUse{ast.Node{}, useType} + use := yyDollar[3].node.(*ast.StmtGroupUse) - // save position - useType.GetNode().Position = position.NewNodesPosition(yyDollar[2].node, yyDollar[3].node) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + use.Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + use.UseTkn = yyDollar[1].token + use.Type = yyDollar[2].node + use.SemiColonTkn = yyDollar[4].token - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) + yyVAL.node = yyDollar[3].node } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:511 + // line internal/php7/php7.y:508 { - useList := &ast.StmtUseList{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtUse{ast.Node{}, useList} - - // save position - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + UseTkn: yyDollar[1].token, + UseDeclarations: yyDollar[2].list, + SemiColonTkn: yyDollar[3].token, + } } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:524 + // line internal/php7/php7.y:519 { - useList := &ast.StmtUseList{ast.Node{}, yyDollar[3].list} - useType := &ast.StmtUseType{ast.Node{}, yyDollar[2].node, useList} - yyVAL.node = &ast.StmtUse{ast.Node{}, useType} - - // save position - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) - useType.GetNode().Position = position.NewNodesPosition(yyDollar[2].node, useList) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + UseTkn: yyDollar[1].token, + Type: yyDollar[2].node, + UseDeclarations: yyDollar[3].list, + SemiColonTkn: yyDollar[4].token, + } } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:539 + // line internal/php7/php7.y:531 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2838,7 +2830,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:554 + // line internal/php7/php7.y:546 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2850,7 +2842,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:564 + // line internal/php7/php7.y:556 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2862,234 +2854,224 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:577 + // line internal/php7/php7.y:569 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) - useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) - useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[6].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) - - // save comments - if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.SkippedTokens) + if len(yyDollar[4].list) > 0 { + yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token + } + + yyVAL.node = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + NsSeparatorTkn: yyDollar[2].token, + OpenCurlyBracketTkn: yyDollar[3].token, + UseDeclarations: yyDollar[4].list, + CloseCurlyBracketTkn: yyDollar[6].token, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.SkippedTokens) } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:600 + // line internal/php7/php7.y:591 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} - useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} + yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) - useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[7].token) - useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[7].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) - - // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.SkippedTokens) + yyVAL.node = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), + }, + LeadingNsSeparatorTkn: yyDollar[1].token, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + NsSeparatorTkn: yyDollar[3].token, + OpenCurlyBracketTkn: yyDollar[4].token, + UseDeclarations: yyDollar[5].list, + CloseCurlyBracketTkn: yyDollar[7].token, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.SkippedTokens) } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:629 + // line internal/php7/php7.y:615 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - useList := &ast.StmtUseList{ast.Node{}, yyDollar[4].list} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} + yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) - useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) - useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[6].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token) - - // save comments - if yyDollar[5].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[5].token.SkippedTokens) + yyVAL.node = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + NsSeparatorTkn: yyDollar[2].token, + OpenCurlyBracketTkn: yyDollar[3].token, + UseDeclarations: yyDollar[4].list, + CloseCurlyBracketTkn: yyDollar[6].token, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[2].token.SkippedTokens) } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:652 + // line internal/php7/php7.y:635 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} - useList := &ast.StmtUseList{ast.Node{}, yyDollar[5].list} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - yyVAL.node = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} + yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, name) - useList.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) - useListBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[7].token) - useListNsSeparator.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[7].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) - - // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[6].token != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, yyDollar[6].token.SkippedTokens) + yyVAL.node = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), + }, + LeadingNsSeparatorTkn: yyDollar[1].token, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + NsSeparatorTkn: yyDollar[3].token, + OpenCurlyBracketTkn: yyDollar[4].token, + UseDeclarations: yyDollar[5].list, + CloseCurlyBracketTkn: yyDollar[7].token, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, yyDollar[7].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, yyDollar[3].token.SkippedTokens) } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:681 + // line internal/php7/php7.y:659 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:685 + // line internal/php7/php7.y:663 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:692 + // line internal/php7/php7.y:670 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:699 + // line internal/php7/php7.y:676 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:706 + // line internal/php7/php7.y:683 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:713 + // line internal/php7/php7.y:689 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:720 + // line internal/php7/php7.y:696 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:727 + // line internal/php7/php7.y:702 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:734 + // line internal/php7/php7.y:709 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:738 + // line internal/php7/php7.y:713 { - yyVAL.node = &ast.StmtUseType{ast.Node{}, yyDollar[1].node, yyDollar[2].node} + decl := yyDollar[2].node.(*ast.StmtUseDeclaration) + decl.Type = yyDollar[1].node + decl.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) + yyVAL.node = yyDollar[2].node } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:748 + // line internal/php7/php7.y:724 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - yyVAL.node.GetNode().Position = position.NewNodePosition(name) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + } } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:757 + // line internal/php7/php7.y:738 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} - alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - yyVAL.node = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - asAlias.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + } } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:777 + // line internal/php7/php7.y:762 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:781 + // line internal/php7/php7.y:766 { - yyVAL.node = &ast.ParserNsSeparator{ast.Node{}, yyDollar[2].node} + decl := yyDollar[2].node.(*ast.StmtUseDeclaration) + decl.NsSeparatorTkn = yyDollar[1].token + decl.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - // save position - yyDollar[2].node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:795 + // line internal/php7/php7.y:777 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3098,13 +3080,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:802 + // line internal/php7/php7.y:784 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:791 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3117,50 +3099,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:820 + // line internal/php7/php7.y:802 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:827 + // line internal/php7/php7.y:809 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:832 + // line internal/php7/php7.y:814 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:836 + // line internal/php7/php7.y:818 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:840 + // line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:844 + // line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:848 + // line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:852 + // line internal/php7/php7.y:834 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3173,7 +3155,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:865 + // line internal/php7/php7.y:847 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3186,19 +3168,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:876 + // line internal/php7/php7.y:858 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:880 + // line internal/php7/php7.y:862 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:884 + // line internal/php7/php7.y:866 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3222,7 +3204,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:906 + // line internal/php7/php7.y:888 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[5].node} yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} @@ -3240,7 +3222,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:922 + // line internal/php7/php7.y:904 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3267,7 +3249,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:947 + // line internal/php7/php7.y:929 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3293,7 +3275,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:971 + // line internal/php7/php7.y:953 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3307,7 +3289,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:983 + // line internal/php7/php7.y:965 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3321,7 +3303,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:995 + // line internal/php7/php7.y:977 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3335,7 +3317,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1007 + // line internal/php7/php7.y:989 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3349,7 +3331,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1019 + // line internal/php7/php7.y:1001 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3363,7 +3345,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1031 + // line internal/php7/php7.y:1013 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3378,7 +3360,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1044 + // line internal/php7/php7.y:1026 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3390,7 +3372,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1054 + // line internal/php7/php7.y:1036 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3404,7 +3386,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1066 + // line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3424,7 +3406,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1084 + // line internal/php7/php7.y:1066 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3448,7 +3430,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1106 + // line internal/php7/php7.y:1088 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3475,7 +3457,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1131 + // line internal/php7/php7.y:1113 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3490,7 +3472,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1144 + // line internal/php7/php7.y:1126 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3503,7 +3485,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1155 + // line internal/php7/php7.y:1137 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3520,7 +3502,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1170 + // line internal/php7/php7.y:1152 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3534,7 +3516,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1182 + // line internal/php7/php7.y:1164 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3551,7 +3533,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1197 + // line internal/php7/php7.y:1179 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3566,13 +3548,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1212 + // line internal/php7/php7.y:1194 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1216 + // line internal/php7/php7.y:1198 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3594,13 +3576,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1238 + // line internal/php7/php7.y:1220 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1242 + // line internal/php7/php7.y:1224 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3609,13 +3591,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1234 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1238 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3629,13 +3611,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1271 + // line internal/php7/php7.y:1253 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1275 + // line internal/php7/php7.y:1257 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3644,13 +3626,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1267 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1292 + // line internal/php7/php7.y:1274 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3680,31 +3662,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1323 + // line internal/php7/php7.y:1305 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1327 + // line internal/php7/php7.y:1309 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1334 + // line internal/php7/php7.y:1316 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1338 + // line internal/php7/php7.y:1320 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1345 + // line internal/php7/php7.y:1327 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3722,7 +3704,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1361 + // line internal/php7/php7.y:1343 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3739,19 +3721,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1379 + // line internal/php7/php7.y:1361 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1383 + // line internal/php7/php7.y:1365 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1390 + // line internal/php7/php7.y:1372 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3763,7 +3745,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1400 + // line internal/php7/php7.y:1382 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3775,7 +3757,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1413 + // line internal/php7/php7.y:1395 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3792,7 +3774,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1431 + // line internal/php7/php7.y:1413 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3809,13 +3791,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1449 + // line internal/php7/php7.y:1431 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1453 + // line internal/php7/php7.y:1435 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3827,13 +3809,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1466 + // line internal/php7/php7.y:1448 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1470 + // line internal/php7/php7.y:1452 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3845,13 +3827,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1465 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1487 + // line internal/php7/php7.y:1469 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3863,13 +3845,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1500 + // line internal/php7/php7.y:1482 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1504 + // line internal/php7/php7.y:1486 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3881,7 +3863,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1514 + // line internal/php7/php7.y:1496 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3895,7 +3877,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1526 + // line internal/php7/php7.y:1508 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3908,7 +3890,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1540 + // line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3917,7 +3899,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1547 + // line internal/php7/php7.y:1529 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3934,7 +3916,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1565 + // line internal/php7/php7.y:1547 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3943,7 +3925,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1554 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3960,7 +3942,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1590 + // line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3969,7 +3951,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1597 + // line internal/php7/php7.y:1579 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3986,7 +3968,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1615 + // line internal/php7/php7.y:1597 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4001,7 +3983,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1628 + // line internal/php7/php7.y:1610 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4017,7 +3999,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1642 + // line internal/php7/php7.y:1624 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4034,7 +4016,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1657 + // line internal/php7/php7.y:1639 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4053,13 +4035,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1677 + // line internal/php7/php7.y:1659 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1681 + // line internal/php7/php7.y:1663 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4074,7 +4056,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1694 + // line internal/php7/php7.y:1676 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4089,19 +4071,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1710 + // line internal/php7/php7.y:1692 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1714 + // line internal/php7/php7.y:1696 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1721 + // line internal/php7/php7.y:1703 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4110,7 +4092,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1728 + // line internal/php7/php7.y:1710 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4127,7 +4109,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1746 + // line internal/php7/php7.y:1728 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} @@ -4143,7 +4125,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1760 + // line internal/php7/php7.y:1742 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} @@ -4163,13 +4145,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1781 + // line internal/php7/php7.y:1763 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1785 + // line internal/php7/php7.y:1767 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4185,7 +4167,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1802 + // line internal/php7/php7.y:1784 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} @@ -4206,7 +4188,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1821 + // line internal/php7/php7.y:1803 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} @@ -4230,7 +4212,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1846 + // line internal/php7/php7.y:1828 { yyVAL.node = yyDollar[1].node @@ -4248,7 +4230,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1862 + // line internal/php7/php7.y:1844 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4271,25 +4253,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1886 + // line internal/php7/php7.y:1868 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1890 + // line internal/php7/php7.y:1872 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1897 + // line internal/php7/php7.y:1879 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1901 + // line internal/php7/php7.y:1883 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4298,7 +4280,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1911 + // line internal/php7/php7.y:1893 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4334,7 +4316,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1945 + // line internal/php7/php7.y:1927 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4371,25 +4353,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1983 + // line internal/php7/php7.y:1965 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1987 + // line internal/php7/php7.y:1969 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1994 + // line internal/php7/php7.y:1976 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1998 + // line internal/php7/php7.y:1980 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4401,7 +4383,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 + // line internal/php7/php7.y:1993 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4413,7 +4395,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2021 + // line internal/php7/php7.y:2003 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4425,19 +4407,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2031 + // line internal/php7/php7.y:2013 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2038 + // line internal/php7/php7.y:2020 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2024 { yyVAL.node = yyDollar[2].node @@ -4446,7 +4428,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2052 + // line internal/php7/php7.y:2034 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4459,7 +4441,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2063 + // line internal/php7/php7.y:2045 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4476,13 +4458,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2081 + // line internal/php7/php7.y:2063 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2067 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4491,7 +4473,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2095 + // line internal/php7/php7.y:2077 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4503,7 +4485,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2105 + // line internal/php7/php7.y:2087 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4515,7 +4497,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2118 + // line internal/php7/php7.y:2100 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4524,19 +4506,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2125 + // line internal/php7/php7.y:2107 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2132 + // line internal/php7/php7.y:2114 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2139 + // line internal/php7/php7.y:2121 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4545,13 +4527,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2146 + // line internal/php7/php7.y:2128 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2153 + // line internal/php7/php7.y:2135 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4567,7 +4549,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2167 + // line internal/php7/php7.y:2149 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4584,19 +4566,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2185 + // line internal/php7/php7.y:2167 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2171 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2196 + // line internal/php7/php7.y:2178 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4610,7 +4592,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2208 + // line internal/php7/php7.y:2190 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4629,7 +4611,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2225 + // line internal/php7/php7.y:2207 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4641,7 +4623,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2235 + // line internal/php7/php7.y:2217 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4672,13 +4654,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2267 + // line internal/php7/php7.y:2249 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2271 + // line internal/php7/php7.y:2253 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4687,7 +4669,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2263 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4699,7 +4681,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2291 + // line internal/php7/php7.y:2273 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4711,7 +4693,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2301 + // line internal/php7/php7.y:2283 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4723,19 +4705,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2296 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2318 + // line internal/php7/php7.y:2300 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2325 + // line internal/php7/php7.y:2307 { yyVAL.node = yyDollar[1].node @@ -4745,7 +4727,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2315 { yyVAL.node = yyDollar[1].node @@ -4755,7 +4737,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2344 + // line internal/php7/php7.y:2326 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4768,7 +4750,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2358 + // line internal/php7/php7.y:2340 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4784,7 +4766,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2372 + // line internal/php7/php7.y:2354 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4800,7 +4782,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2386 + // line internal/php7/php7.y:2368 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4816,7 +4798,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2400 + // line internal/php7/php7.y:2382 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4829,7 +4811,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2414 + // line internal/php7/php7.y:2396 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4843,13 +4825,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2426 + // line internal/php7/php7.y:2408 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2433 + // line internal/php7/php7.y:2415 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4865,7 +4847,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2450 + // line internal/php7/php7.y:2432 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4878,7 +4860,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2461 + // line internal/php7/php7.y:2443 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4891,13 +4873,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2475 + // line internal/php7/php7.y:2457 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2479 + // line internal/php7/php7.y:2461 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4910,31 +4892,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2493 + // line internal/php7/php7.y:2475 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2497 + // line internal/php7/php7.y:2479 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2504 + // line internal/php7/php7.y:2486 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2508 + // line internal/php7/php7.y:2490 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2497 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4946,7 +4928,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2525 + // line internal/php7/php7.y:2507 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4958,7 +4940,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2535 + // line internal/php7/php7.y:2517 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4970,7 +4952,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2545 + // line internal/php7/php7.y:2527 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4982,7 +4964,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2555 + // line internal/php7/php7.y:2537 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4994,7 +4976,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2565 + // line internal/php7/php7.y:2547 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5006,7 +4988,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2578 + // line internal/php7/php7.y:2560 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5015,13 +4997,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2567 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2592 + // line internal/php7/php7.y:2574 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5037,7 +5019,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2606 + // line internal/php7/php7.y:2588 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5054,7 +5036,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2624 + // line internal/php7/php7.y:2606 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5063,13 +5045,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2613 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2620 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5084,7 +5066,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2654 + // line internal/php7/php7.y:2636 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5099,7 +5081,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2670 + // line internal/php7/php7.y:2652 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5108,31 +5090,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2677 + // line internal/php7/php7.y:2659 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2684 + // line internal/php7/php7.y:2666 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2673 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2695 + // line internal/php7/php7.y:2677 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2702 + // line internal/php7/php7.y:2684 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5141,13 +5123,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2709 + // line internal/php7/php7.y:2691 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2716 + // line internal/php7/php7.y:2698 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5165,7 +5147,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2735 + // line internal/php7/php7.y:2717 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5180,7 +5162,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2748 + // line internal/php7/php7.y:2730 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5192,7 +5174,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2743 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5209,7 +5191,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2776 + // line internal/php7/php7.y:2758 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5225,7 +5207,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2790 + // line internal/php7/php7.y:2772 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5238,7 +5220,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2801 + // line internal/php7/php7.y:2783 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5252,7 +5234,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2813 + // line internal/php7/php7.y:2795 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5264,7 +5246,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2823 + // line internal/php7/php7.y:2805 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5277,7 +5259,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2834 + // line internal/php7/php7.y:2816 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5290,7 +5272,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2827 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5303,7 +5285,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2838 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5316,7 +5298,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2849 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5329,7 +5311,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2860 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5342,7 +5324,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2871 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5355,7 +5337,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2882 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5368,7 +5350,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2893 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5381,7 +5363,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2904 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5394,7 +5376,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2915 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5407,7 +5389,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 + // line internal/php7/php7.y:2926 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5420,7 +5402,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2937 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5433,7 +5415,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2966 + // line internal/php7/php7.y:2948 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5446,7 +5428,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2959 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5458,7 +5440,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2987 + // line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5471,7 +5453,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2998 + // line internal/php7/php7.y:2980 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5483,7 +5465,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3008 + // line internal/php7/php7.y:2990 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5496,7 +5478,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3019 + // line internal/php7/php7.y:3001 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5509,7 +5491,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3030 + // line internal/php7/php7.y:3012 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5522,7 +5504,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3023 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5535,7 +5517,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3052 + // line internal/php7/php7.y:3034 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5548,7 +5530,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 + // line internal/php7/php7.y:3045 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5561,7 +5543,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 + // line internal/php7/php7.y:3056 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5574,7 +5556,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 + // line internal/php7/php7.y:3067 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5569,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 + // line internal/php7/php7.y:3078 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5600,7 +5582,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 + // line internal/php7/php7.y:3089 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5613,7 +5595,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 + // line internal/php7/php7.y:3100 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5626,7 +5608,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3129 + // line internal/php7/php7.y:3111 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5639,7 +5621,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3140 + // line internal/php7/php7.y:3122 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5652,7 +5634,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3151 + // line internal/php7/php7.y:3133 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5647,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3162 + // line internal/php7/php7.y:3144 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5678,7 +5660,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3173 + // line internal/php7/php7.y:3155 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5691,7 +5673,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3184 + // line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5686,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3195 + // line internal/php7/php7.y:3177 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5716,7 +5698,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3205 + // line internal/php7/php7.y:3187 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5728,7 +5710,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5740,7 +5722,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3225 + // line internal/php7/php7.y:3207 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5752,7 +5734,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3235 + // line internal/php7/php7.y:3217 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5747,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3246 + // line internal/php7/php7.y:3228 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5760,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3257 + // line internal/php7/php7.y:3239 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5791,7 +5773,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3268 + // line internal/php7/php7.y:3250 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5787,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3280 + // line internal/php7/php7.y:3262 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5800,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3291 + // line internal/php7/php7.y:3273 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5813,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3302 + // line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5826,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3313 + // line internal/php7/php7.y:3295 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,7 +5839,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3324 + // line internal/php7/php7.y:3306 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5870,7 +5852,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3335 + // line internal/php7/php7.y:3317 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5883,7 +5865,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3346 + // line internal/php7/php7.y:3328 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -5896,13 +5878,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3357 + // line internal/php7/php7.y:3339 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3361 + // line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5916,7 +5898,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3373 + // line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5930,7 +5912,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3385 + // line internal/php7/php7.y:3367 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5943,13 +5925,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3396 + // line internal/php7/php7.y:3378 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3400 + // line internal/php7/php7.y:3382 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5962,7 +5944,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3411 + // line internal/php7/php7.y:3393 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5975,7 +5957,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3422 + // line internal/php7/php7.y:3404 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5988,7 +5970,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3433 + // line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6001,7 +5983,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3444 + // line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6014,7 +5996,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3455 + // line internal/php7/php7.y:3437 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6027,7 +6009,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3466 + // line internal/php7/php7.y:3448 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6040,7 +6022,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3459 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6060,7 +6042,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3495 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6072,13 +6054,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3487 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3491 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6090,7 +6072,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3519 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6102,7 +6084,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3511 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6114,7 +6096,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3539 + // line internal/php7/php7.y:3521 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6126,7 +6108,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3549 + // line internal/php7/php7.y:3531 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6139,7 +6121,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3560 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6151,13 +6133,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3570 + // line internal/php7/php7.y:3552 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3574 + // line internal/php7/php7.y:3556 { yyVAL.node = yyDollar[2].node @@ -6178,7 +6160,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3595 + // line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6209,7 +6191,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3622 + // line internal/php7/php7.y:3604 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6235,25 +6217,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3652 + // line internal/php7/php7.y:3634 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3656 + // line internal/php7/php7.y:3638 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3663 + // line internal/php7/php7.y:3645 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3667 + // line internal/php7/php7.y:3649 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6267,7 +6249,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3682 + // line internal/php7/php7.y:3664 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6276,13 +6258,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3689 + // line internal/php7/php7.y:3671 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3696 + // line internal/php7/php7.y:3678 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6296,7 +6278,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3690 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6313,7 +6295,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3726 + // line internal/php7/php7.y:3708 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6325,7 +6307,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3718 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6338,7 +6320,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3747 + // line internal/php7/php7.y:3729 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6351,7 +6333,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3758 + // line internal/php7/php7.y:3740 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6363,7 +6345,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3771 + // line internal/php7/php7.y:3753 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6375,31 +6357,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3763 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3770 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3792 + // line internal/php7/php7.y:3774 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3781 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3803 + // line internal/php7/php7.y:3785 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6412,13 +6394,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3817 + // line internal/php7/php7.y:3799 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3821 + // line internal/php7/php7.y:3803 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6428,25 +6410,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3811 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3836 + // line internal/php7/php7.y:3818 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3840 + // line internal/php7/php7.y:3822 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3829 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6460,7 +6442,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3841 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6473,7 +6455,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3852 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6485,7 +6467,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3883 + // line internal/php7/php7.y:3865 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6497,7 +6479,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3893 + // line internal/php7/php7.y:3875 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6509,7 +6491,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3903 + // line internal/php7/php7.y:3885 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6521,7 +6503,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3913 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6533,7 +6515,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3923 + // line internal/php7/php7.y:3905 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6545,7 +6527,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6557,7 +6539,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3943 + // line internal/php7/php7.y:3925 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6569,7 +6551,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3935 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6581,7 +6563,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3963 + // line internal/php7/php7.y:3945 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6593,7 +6575,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3973 + // line internal/php7/php7.y:3955 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6605,7 +6587,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3983 + // line internal/php7/php7.y:3965 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6619,7 +6601,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3995 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6631,7 +6613,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4005 + // line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6643,7 +6625,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4015 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6655,19 +6637,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4025 + // line internal/php7/php7.y:4007 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4011 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4018 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6679,7 +6661,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4046 + // line internal/php7/php7.y:4028 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6695,7 +6677,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4060 + // line internal/php7/php7.y:4042 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6711,43 +6693,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4077 + // line internal/php7/php7.y:4059 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4081 + // line internal/php7/php7.y:4063 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4088 + // line internal/php7/php7.y:4070 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4092 + // line internal/php7/php7.y:4074 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4099 + // line internal/php7/php7.y:4081 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4106 + // line internal/php7/php7.y:4088 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4110 + // line internal/php7/php7.y:4092 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6760,19 +6742,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4121 + // line internal/php7/php7.y:4103 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4128 + // line internal/php7/php7.y:4110 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4132 + // line internal/php7/php7.y:4114 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6785,19 +6767,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4143 + // line internal/php7/php7.y:4125 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4150 + // line internal/php7/php7.y:4132 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4136 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6810,7 +6792,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4147 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6823,7 +6805,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4158 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6836,7 +6818,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4169 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6849,25 +6831,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4198 + // line internal/php7/php7.y:4180 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4205 + // line internal/php7/php7.y:4187 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4191 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4213 + // line internal/php7/php7.y:4195 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6880,7 +6862,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4227 + // line internal/php7/php7.y:4209 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6894,7 +6876,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4221 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6908,7 +6890,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4233 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6920,7 +6902,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4264 + // line internal/php7/php7.y:4246 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6933,7 +6915,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4257 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6946,13 +6928,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4289 + // line internal/php7/php7.y:4271 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6965,7 +6947,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4286 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6978,7 +6960,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4315 + // line internal/php7/php7.y:4297 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6991,7 +6973,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4326 + // line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7004,7 +6986,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4337 + // line internal/php7/php7.y:4319 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7017,7 +6999,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4351 + // line internal/php7/php7.y:4333 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7029,7 +7011,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4361 + // line internal/php7/php7.y:4343 { yyVAL.node = yyDollar[2].node @@ -7039,13 +7021,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4369 + // line internal/php7/php7.y:4351 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4376 + // line internal/php7/php7.y:4358 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7057,7 +7039,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4386 + // line internal/php7/php7.y:4368 { yyVAL.node = yyDollar[2].node @@ -7067,31 +7049,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4394 + // line internal/php7/php7.y:4376 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4401 + // line internal/php7/php7.y:4383 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4408 + // line internal/php7/php7.y:4390 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4412 + // line internal/php7/php7.y:4394 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4419 + // line internal/php7/php7.y:4401 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7104,7 +7086,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4430 + // line internal/php7/php7.y:4412 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7114,7 +7096,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4441 + // line internal/php7/php7.y:4423 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7127,7 +7109,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4452 + // line internal/php7/php7.y:4434 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7139,7 +7121,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4444 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7155,7 +7137,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4476 + // line internal/php7/php7.y:4458 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7169,7 +7151,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4488 + // line internal/php7/php7.y:4470 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7181,7 +7163,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4498 + // line internal/php7/php7.y:4480 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7200,7 +7182,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4515 + // line internal/php7/php7.y:4497 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7217,13 +7199,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4533 + // line internal/php7/php7.y:4515 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4537 + // line internal/php7/php7.y:4519 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7236,13 +7218,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4548 + // line internal/php7/php7.y:4530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4552 + // line internal/php7/php7.y:4534 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7255,7 +7237,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4566 + // line internal/php7/php7.y:4548 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7269,7 +7251,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4578 + // line internal/php7/php7.y:4560 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7286,7 +7268,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4593 + // line internal/php7/php7.y:4575 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7305,7 +7287,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4610 + // line internal/php7/php7.y:4592 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7320,7 +7302,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4623 + // line internal/php7/php7.y:4605 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7337,7 +7319,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4638 + // line internal/php7/php7.y:4620 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7356,7 +7338,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4655 + // line internal/php7/php7.y:4637 { yyVAL.node = yyDollar[2].node @@ -7366,7 +7348,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4666 + // line internal/php7/php7.y:4648 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7378,7 +7360,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4676 + // line internal/php7/php7.y:4658 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7395,7 +7377,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4691 + // line internal/php7/php7.y:4673 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7421,7 +7403,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4715 + // line internal/php7/php7.y:4697 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7435,7 +7417,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4730 + // line internal/php7/php7.y:4712 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7453,7 +7435,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4746 + // line internal/php7/php7.y:4728 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -7469,7 +7451,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4760 + // line internal/php7/php7.y:4742 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7481,7 +7463,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4770 + // line internal/php7/php7.y:4752 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7493,7 +7475,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4780 + // line internal/php7/php7.y:4762 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -7509,7 +7491,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4794 + // line internal/php7/php7.y:4776 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7521,7 +7503,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4804 + // line internal/php7/php7.y:4786 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7533,13 +7515,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4817 + // line internal/php7/php7.y:4799 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4821 + // line internal/php7/php7.y:4803 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7548,7 +7530,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 23503c6..f6589cd 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -485,55 +485,47 @@ top_statement: } | T_USE mixed_group_use_declaration ';' { - $$ = &ast.StmtUse{ast.Node{}, $2} + use := $2.(*ast.StmtGroupUse) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) + use.Node.Position = position.NewTokensPosition($1, $3) + use.UseTkn = $1 + use.SemiColonTkn = $3 - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = $2 } | T_USE use_type group_use_declaration ';' { - useType := &ast.StmtUseType{ast.Node{}, $2, $3} - $$ = &ast.StmtUse{ast.Node{}, useType} + use := $3.(*ast.StmtGroupUse) - // save position - useType.GetNode().Position = position.NewNodesPosition($2, $3) - $$.GetNode().Position = position.NewTokensPosition($1, $4) + use.Node.Position = position.NewTokensPosition($1, $4) + use.UseTkn = $1 + use.Type = $2 + use.SemiColonTkn = $4 - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) + $$ = $3 } | T_USE use_declarations ';' { - useList := &ast.StmtUseList{ast.Node{}, $2} - $$ = &ast.StmtUse{ast.Node{}, useList} - - // save position - useList.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + UseTkn: $1, + UseDeclarations: $2, + SemiColonTkn: $3, + } } | T_USE use_type use_declarations ';' { - useList := &ast.StmtUseList{ast.Node{}, $3} - useType := &ast.StmtUseType{ast.Node{}, $2, useList} - $$ = &ast.StmtUse{ast.Node{}, useType} - - // save position - useList.GetNode().Position = position.NewNodeListPosition($3) - useType.GetNode().Position = position.NewNodesPosition($2, useList) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) + $$ = &ast.StmtUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + UseTkn: $1, + Type: $2, + UseDeclarations: $3, + SemiColonTkn: $4, + } } | T_CONST const_list ';' { @@ -575,104 +567,90 @@ use_type: group_use_declaration: namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { - name := &ast.NameName{ast.Node{}, $1} - useList := &ast.StmtUseList{ast.Node{}, $4} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - useList.GetNode().Position = position.NewNodeListPosition($4) - useListBrackets.GetNode().Position = position.NewTokensPosition($3, $6) - useListNsSeparator.GetNode().Position = position.NewTokensPosition($2, $6) - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) - - // save comments - if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.SkippedTokens) + if len($4) > 0 { + $4[len($4)-1].(*ast.StmtUseDeclaration).CommaTkn = $5 + } + + $$ = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $6), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + NsSeparatorTkn: $2, + OpenCurlyBracketTkn: $3, + UseDeclarations: $4, + CloseCurlyBracketTkn: $6, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { - name := &ast.NameName{ast.Node{}, $2} - prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} - useList := &ast.StmtUseList{ast.Node{}, $5} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - $$ = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} + $5[len($5)-1].(*ast.StmtUseDeclaration).CommaTkn = $6 - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition($1, name) - useList.GetNode().Position = position.NewNodeListPosition($5) - useListBrackets.GetNode().Position = position.NewTokensPosition($4, $7) - useListNsSeparator.GetNode().Position = position.NewTokensPosition($3, $7) - $$.GetNode().Position = position.NewTokensPosition($1, $7) - - // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.SkippedTokens) - if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.SkippedTokens) + $$ = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $7), + }, + LeadingNsSeparatorTkn: $1, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + NsSeparatorTkn: $3, + OpenCurlyBracketTkn: $4, + UseDeclarations: $5, + CloseCurlyBracketTkn: $7, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.SkippedTokens) } ; mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - name := &ast.NameName{ast.Node{}, $1} - useList := &ast.StmtUseList{ast.Node{}, $4} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - $$ = &ast.StmtGroupUseList{ast.Node{}, name, useListNsSeparator} + $4[len($4)-1].(*ast.StmtUseDeclaration).CommaTkn = $5 - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - useList.GetNode().Position = position.NewNodeListPosition($4) - useListBrackets.GetNode().Position = position.NewTokensPosition($3, $6) - useListNsSeparator.GetNode().Position = position.NewTokensPosition($2, $6) - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $6) - - // save comments - if $5 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $5.SkippedTokens) + $$ = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $6), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + NsSeparatorTkn: $2, + OpenCurlyBracketTkn: $3, + UseDeclarations: $4, + CloseCurlyBracketTkn: $6, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - name := &ast.NameName{ast.Node{}, $2} - prefixNsSeparator := &ast.ParserNsSeparator{ast.Node{}, name} - useList := &ast.StmtUseList{ast.Node{}, $5} - useListBrackets := &ast.ParserBrackets{ast.Node{}, useList} - useListNsSeparator := &ast.ParserNsSeparator{ast.Node{}, useListBrackets} - $$ = &ast.StmtGroupUseList{ast.Node{}, prefixNsSeparator, useListNsSeparator} + $5[len($5)-1].(*ast.StmtUseDeclaration).CommaTkn = $6 - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - prefixNsSeparator.GetNode().Position = position.NewTokenNodePosition($1, name) - useList.GetNode().Position = position.NewNodeListPosition($5) - useListBrackets.GetNode().Position = position.NewTokensPosition($4, $7) - useListNsSeparator.GetNode().Position = position.NewTokensPosition($3, $7) - $$.GetNode().Position = position.NewTokensPosition($1, $7) - - // save comments - yylex.(*Parser).setFreeFloating(prefixNsSeparator, token.Start, $1.SkippedTokens) - if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens(useList, token.End, $6.SkippedTokens) + $$ = &ast.StmtGroupUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $7), + }, + LeadingNsSeparatorTkn: $1, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + NsSeparatorTkn: $3, + OpenCurlyBracketTkn: $4, + UseDeclarations: $5, + CloseCurlyBracketTkn: $7, } - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.Start, $4.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(useListBrackets, token.End, $7.SkippedTokens) - yylex.(*Parser).setFreeFloating(useListNsSeparator, token.Start, $3.SkippedTokens) } ; @@ -690,10 +668,9 @@ possible_comma: inline_use_declarations: inline_use_declarations ',' inline_use_declaration { - $$ = append($1, $3) + $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | inline_use_declaration { @@ -704,10 +681,9 @@ inline_use_declarations: unprefixed_use_declarations: unprefixed_use_declarations ',' unprefixed_use_declaration { - $$ = append($1, $3) + $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | unprefixed_use_declaration { @@ -718,10 +694,9 @@ unprefixed_use_declarations: use_declarations: use_declarations ',' use_declaration { - $$ = append($1, $3) + $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | use_declaration { @@ -736,39 +711,49 @@ inline_use_declaration: } | use_type unprefixed_use_declaration { - $$ = &ast.StmtUseType{ast.Node{}, $1, $2} + decl := $2.(*ast.StmtUseDeclaration) + decl.Type = $1 + decl.Node.Position = position.NewNodesPosition($1, $2) - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $2) + $$ = $2 } ; unprefixed_use_declaration: namespace_name { - name := &ast.NameName{ast.Node{}, $1} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - $$.GetNode().Position = position.NewNodePosition(name) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + } } | namespace_name T_AS T_STRING { - name := &ast.NameName{ast.Node{}, $1} - alias := &ast.Identifier{ast.Node{}, $3.Value} - asAlias := &ast.ParserAs{ast.Node{}, alias} - $$ = &ast.StmtUseDeclaration{ast.Node{}, name, asAlias} - - // save position - name.GetNode().Position = position.NewNodeListPosition($1) - alias.GetNode().Position = position.NewTokenPosition($3) - asAlias.GetNode().Position = position.NewTokensPosition($2, $3) - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(asAlias, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) + $$ = &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $3), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + } } ; @@ -779,14 +764,11 @@ use_declaration: } | T_NS_SEPARATOR unprefixed_use_declaration { - $$ = &ast.ParserNsSeparator{ast.Node{}, $2} + decl := $2.(*ast.StmtUseDeclaration) + decl.NsSeparatorTkn = $1 + decl.Node.Position = position.NewTokenNodePosition($1, $2) - // save position - $2.GetNode().Position = position.NewTokenNodePosition($1, $2) - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = $2 } ; diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 8d52038..00d02cc 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -9024,17 +9024,17 @@ func TestPhp7(t *testing.T) { EndPos: 3370, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3366, + EndPos: 3369, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 161, @@ -9043,27 +9043,17 @@ func TestPhp7(t *testing.T) { EndPos: 3369, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 161, + EndLine: 161, + StartPos: 3366, + EndPos: 3369, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -9079,46 +9069,36 @@ func TestPhp7(t *testing.T) { EndPos: 3380, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3375, - EndPos: 3379, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3375, + EndPos: 3379, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 162, EndLine: 162, - StartPos: 3375, + StartPos: 3376, EndPos: 3379, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3376, - EndPos: 3379, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3376, - EndPos: 3379, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 162, + EndLine: 162, + StartPos: 3376, + EndPos: 3379, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, @@ -9134,59 +9114,49 @@ func TestPhp7(t *testing.T) { EndPos: 3397, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3385, - EndPos: 3396, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3385, + EndPos: 3396, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 163, EndLine: 163, - StartPos: 3385, + StartPos: 3386, + EndPos: 3389, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3386, + EndPos: 3389, + }, + }, + Value: []byte("Foo"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 163, + EndLine: 163, + StartPos: 3393, EndPos: 3396, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3386, - EndPos: 3389, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3386, - EndPos: 3389, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3393, - EndPos: 3396, - }, - }, - Value: []byte("Bar"), - }, + Value: []byte("Bar"), }, }, }, @@ -9200,17 +9170,17 @@ func TestPhp7(t *testing.T) { EndPos: 3411, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3410, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3402, + EndPos: 3405, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 164, @@ -9219,31 +9189,31 @@ func TestPhp7(t *testing.T) { EndPos: 3405, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3405, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3405, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3402, + EndPos: 3405, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3407, + EndPos: 3410, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 164, @@ -9252,27 +9222,17 @@ func TestPhp7(t *testing.T) { EndPos: 3410, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3407, - EndPos: 3410, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3407, - EndPos: 3410, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 164, + EndLine: 164, + StartPos: 3407, + EndPos: 3410, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, }, @@ -9288,17 +9248,17 @@ func TestPhp7(t *testing.T) { EndPos: 3432, }, }, - UseList: &ast.StmtUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3431, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3416, + EndPos: 3419, + }, }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 165, @@ -9307,73 +9267,63 @@ func TestPhp7(t *testing.T) { EndPos: 3419, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3419, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3419, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3416, + EndPos: 3419, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, }, - &ast.StmtUseDeclaration{ + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3421, + EndPos: 3431, + }, + }, + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 165, EndLine: 165, StartPos: 3421, + EndPos: 3424, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3421, + EndPos: 3424, + }, + }, + Value: []byte("Bar"), + }, + }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 165, + EndLine: 165, + StartPos: 3428, EndPos: 3431, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3421, - EndPos: 3424, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3421, - EndPos: 3424, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3428, - EndPos: 3431, - }, - }, - Value: []byte("Baz"), - }, + Value: []byte("Baz"), }, }, }, @@ -9387,46 +9337,38 @@ func TestPhp7(t *testing.T) { EndPos: 3456, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, EndLine: 166, StartPos: 3437, - EndPos: 3455, + EndPos: 3445, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3437, - EndPos: 3445, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, EndLine: 166, StartPos: 3446, - EndPos: 3455, + EndPos: 3449, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3446, - EndPos: 3449, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3446, + EndPos: 3449, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, @@ -9435,31 +9377,31 @@ func TestPhp7(t *testing.T) { EndPos: 3449, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3446, - EndPos: 3449, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3451, - EndPos: 3455, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3451, + EndPos: 3455, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 166, + EndLine: 166, + StartPos: 3452, + EndPos: 3455, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 166, @@ -9468,19 +9410,7 @@ func TestPhp7(t *testing.T) { EndPos: 3455, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3452, - EndPos: 3455, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -9496,46 +9426,38 @@ func TestPhp7(t *testing.T) { EndPos: 3494, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, EndLine: 167, StartPos: 3461, - EndPos: 3493, + EndPos: 3469, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3461, - EndPos: 3469, - }, - }, - Value: []byte("function"), - }, - Use: &ast.StmtUseList{ + Value: []byte("function"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, EndLine: 167, StartPos: 3470, - EndPos: 3493, + EndPos: 3480, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3470, - EndPos: 3480, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3470, + EndPos: 3473, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, @@ -9544,42 +9466,42 @@ func TestPhp7(t *testing.T) { EndPos: 3473, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3470, - EndPos: 3473, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3477, - EndPos: 3480, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3482, - EndPos: 3493, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3477, + EndPos: 3480, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3482, + EndPos: 3493, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3483, + EndPos: 3486, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 167, @@ -9588,33 +9510,21 @@ func TestPhp7(t *testing.T) { EndPos: 3486, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3483, - EndPos: 3486, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3490, - EndPos: 3493, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 167, + EndLine: 167, + StartPos: 3490, + EndPos: 3493, + }, + }, + Value: []byte("bar"), + }, }, }, }, @@ -9627,46 +9537,38 @@ func TestPhp7(t *testing.T) { EndPos: 3515, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3499, - EndPos: 3514, + EndPos: 3504, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3499, - EndPos: 3504, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, EndLine: 168, StartPos: 3505, - EndPos: 3514, + EndPos: 3508, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3505, - EndPos: 3508, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3505, + EndPos: 3508, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, @@ -9675,31 +9577,31 @@ func TestPhp7(t *testing.T) { EndPos: 3508, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3505, - EndPos: 3508, - }, - }, - Value: []byte("Foo"), - }, - }, + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3510, - EndPos: 3514, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3510, + EndPos: 3514, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 168, + EndLine: 168, + StartPos: 3511, + EndPos: 3514, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 168, @@ -9708,19 +9610,7 @@ func TestPhp7(t *testing.T) { EndPos: 3514, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3511, - EndPos: 3514, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, }, @@ -9736,46 +9626,38 @@ func TestPhp7(t *testing.T) { EndPos: 3550, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, StartPos: 3520, - EndPos: 3549, + EndPos: 3525, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3520, - EndPos: 3525, - }, - }, - Value: []byte("const"), - }, - Use: &ast.StmtUseList{ + Value: []byte("const"), + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, EndLine: 169, StartPos: 3526, - EndPos: 3549, + EndPos: 3536, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3536, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3526, + EndPos: 3529, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, @@ -9784,42 +9666,42 @@ func TestPhp7(t *testing.T) { EndPos: 3529, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3529, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3533, - EndPos: 3536, - }, - }, - Value: []byte("foo"), + Value: []byte("Foo"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3538, - EndPos: 3549, - }, + }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3533, + EndPos: 3536, }, - Use: &ast.NameName{ + }, + Value: []byte("foo"), + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3538, + EndPos: 3549, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3539, + EndPos: 3542, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 169, @@ -9828,37 +9710,25 @@ func TestPhp7(t *testing.T) { EndPos: 3542, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3539, - EndPos: 3542, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3546, - EndPos: 3549, - }, - }, - Value: []byte("bar"), + Value: []byte("Bar"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 169, + EndLine: 169, + StartPos: 3546, + EndPos: 3549, + }, + }, + Value: []byte("bar"), + }, }, }, }, - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, @@ -9867,58 +9737,50 @@ func TestPhp7(t *testing.T) { EndPos: 3572, }, }, - UseList: &ast.StmtGroupUseList{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, EndLine: 171, - StartPos: 3556, - EndPos: 3571, + StartPos: 3557, + EndPos: 3560, }, }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3557, - EndPos: 3560, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3557, - EndPos: 3560, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3557, + EndPos: 3560, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, - UseList: &ast.StmtUseList{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, EndLine: 171, StartPos: 3562, - EndPos: 3570, + EndPos: 3565, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3562, - EndPos: 3565, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3562, + EndPos: 3565, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, @@ -9927,31 +9789,31 @@ func TestPhp7(t *testing.T) { EndPos: 3565, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3562, - EndPos: 3565, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3567, - EndPos: 3570, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3567, + EndPos: 3570, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 171, + EndLine: 171, + StartPos: 3567, + EndPos: 3570, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 171, @@ -9960,26 +9822,14 @@ func TestPhp7(t *testing.T) { EndPos: 3570, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3567, - EndPos: 3570, - }, - }, - Value: []byte("Baz"), - }, - }, + Value: []byte("Baz"), }, }, }, }, }, }, - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, @@ -9988,58 +9838,50 @@ func TestPhp7(t *testing.T) { EndPos: 3600, }, }, - UseList: &ast.StmtGroupUseList{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, EndLine: 172, StartPos: 3577, - EndPos: 3599, + EndPos: 3580, }, }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3577, - EndPos: 3580, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3577, - EndPos: 3580, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3577, + EndPos: 3580, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, - UseList: &ast.StmtUseList{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, EndLine: 172, StartPos: 3582, - EndPos: 3598, + EndPos: 3585, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3582, - EndPos: 3585, - }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3582, + EndPos: 3585, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, @@ -10048,31 +9890,31 @@ func TestPhp7(t *testing.T) { EndPos: 3585, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3582, - EndPos: 3585, - }, - }, - Value: []byte("Bar"), - }, - }, + Value: []byte("Bar"), }, }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3587, - EndPos: 3598, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3587, + EndPos: 3598, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3587, + EndPos: 3590, }, - Use: &ast.NameName{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 172, @@ -10081,37 +9923,25 @@ func TestPhp7(t *testing.T) { EndPos: 3590, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3587, - EndPos: 3590, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3594, - EndPos: 3598, - }, - }, - Value: []byte("quux"), + Value: []byte("Baz"), }, }, }, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 172, + EndLine: 172, + StartPos: 3594, + EndPos: 3598, + }, + }, + Value: []byte("quux"), + }, }, }, }, - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -10120,36 +9950,28 @@ func TestPhp7(t *testing.T) { EndPos: 3629, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, EndLine: 173, StartPos: 3605, - EndPos: 3628, + EndPos: 3613, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3605, - EndPos: 3613, - }, + Value: []byte("function"), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3614, + EndPos: 3617, }, - Value: []byte("function"), }, - Use: &ast.StmtGroupUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3614, - EndPos: 3628, - }, - }, - Prefix: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -10158,31 +9980,31 @@ func TestPhp7(t *testing.T) { EndPos: 3617, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3614, - EndPos: 3617, - }, - }, - Value: []byte("Foo"), - }, + Value: []byte("Foo"), + }, + }, + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3619, + EndPos: 3622, }, }, - UseList: &ast.StmtUseList{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, EndLine: 173, StartPos: 3619, - EndPos: 3627, + EndPos: 3622, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -10191,31 +10013,31 @@ func TestPhp7(t *testing.T) { EndPos: 3622, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3619, - EndPos: 3622, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3619, - EndPos: 3622, - }, - }, - Value: []byte("Bar"), - }, - }, - }, + Value: []byte("Bar"), }, - &ast.StmtUseDeclaration{ + }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3624, + EndPos: 3627, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 173, + EndLine: 173, + StartPos: 3624, + EndPos: 3627, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 173, @@ -10224,36 +10046,14 @@ func TestPhp7(t *testing.T) { EndPos: 3627, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3624, - EndPos: 3627, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3624, - EndPos: 3627, - }, - }, - Value: []byte("Baz"), - }, - }, - }, + Value: []byte("Baz"), }, }, }, }, }, }, - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10262,36 +10062,28 @@ func TestPhp7(t *testing.T) { EndPos: 3656, }, }, - UseList: &ast.StmtUseType{ + Type: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, EndLine: 174, StartPos: 3634, - EndPos: 3655, + EndPos: 3639, }, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3634, - EndPos: 3639, - }, + Value: []byte("const"), + }, + Prefix: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3641, + EndPos: 3644, }, - Value: []byte("const"), }, - Use: &ast.StmtGroupUseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3640, - EndPos: 3655, - }, - }, - Prefix: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10300,31 +10092,31 @@ func TestPhp7(t *testing.T) { EndPos: 3644, }, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3641, - EndPos: 3644, - }, - }, - Value: []byte("Foo"), - }, + Value: []byte("Foo"), + }, + }, + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3646, + EndPos: 3649, }, }, - UseList: &ast.StmtUseList{ + Use: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, EndLine: 174, StartPos: 3646, - EndPos: 3654, + EndPos: 3649, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10333,31 +10125,31 @@ func TestPhp7(t *testing.T) { EndPos: 3649, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3646, - EndPos: 3649, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3646, - EndPos: 3649, - }, - }, - Value: []byte("Bar"), - }, - }, - }, + Value: []byte("Bar"), }, - &ast.StmtUseDeclaration{ + }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3651, + EndPos: 3654, + }, + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 174, + EndLine: 174, + StartPos: 3651, + EndPos: 3654, + }, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 174, @@ -10366,36 +10158,14 @@ func TestPhp7(t *testing.T) { EndPos: 3654, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3651, - EndPos: 3654, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3651, - EndPos: 3654, - }, - }, - Value: []byte("Baz"), - }, - }, - }, + Value: []byte("Baz"), }, }, }, }, }, }, - &ast.StmtUse{ + &ast.StmtGroupUse{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, @@ -10404,69 +10174,61 @@ func TestPhp7(t *testing.T) { EndPos: 3691, }, }, - UseList: &ast.StmtGroupUseList{ + Prefix: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, EndLine: 175, StartPos: 3661, - EndPos: 3690, + EndPos: 3664, }, }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3661, - EndPos: 3664, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3661, - EndPos: 3664, - }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3661, + EndPos: 3664, }, - Value: []byte("Foo"), }, + Value: []byte("Foo"), }, }, - UseList: &ast.StmtUseList{ + }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, EndLine: 175, StartPos: 3666, - EndPos: 3689, + EndPos: 3675, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseType{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3666, - EndPos: 3675, - }, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3666, + EndPos: 3671, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3666, - EndPos: 3671, - }, - }, - Value: []byte("const"), + }, + Value: []byte("const"), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3672, + EndPos: 3675, }, - Use: &ast.StmtUseDeclaration{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, @@ -10475,52 +10237,42 @@ func TestPhp7(t *testing.T) { EndPos: 3675, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3672, - EndPos: 3675, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3672, - EndPos: 3675, - }, - }, - Value: []byte("Bar"), - }, - }, - }, + Value: []byte("Bar"), }, }, - &ast.StmtUseType{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3677, - EndPos: 3689, - }, + }, + }, + &ast.StmtUseDeclaration{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3677, + EndPos: 3689, + }, + }, + Type: &ast.Identifier{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3677, + EndPos: 3685, }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3677, - EndPos: 3685, - }, - }, - Value: []byte("function"), + }, + Value: []byte("function"), + }, + Use: &ast.NameName{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 175, + EndLine: 175, + StartPos: 3686, + EndPos: 3689, }, - Use: &ast.StmtUseDeclaration{ + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ Node: ast.Node{ Position: &position.Position{ StartLine: 175, @@ -10529,29 +10281,7 @@ func TestPhp7(t *testing.T) { EndPos: 3689, }, }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3686, - EndPos: 3689, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3686, - EndPos: 3689, - }, - }, - Value: []byte("Baz"), - }, - }, - }, + Value: []byte("Baz"), }, }, }, diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 4259f92..2da9b8e 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -84,10 +84,8 @@ type NodeVisitor interface { StmtTry(n *StmtTry) StmtUnset(n *StmtUnset) StmtUse(n *StmtUse) - StmtGroupUseList(n *StmtGroupUseList) - StmtUseList(n *StmtUseList) + StmtGroupUse(n *StmtGroupUse) StmtUseDeclaration(n *StmtUseDeclaration) - StmtUseType(n *StmtUseType) StmtWhile(n *StmtWhile) ExprArray(n *ExprArray) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 85b494a..d7dd01d 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -796,56 +796,49 @@ func (n *StmtUnset) Accept(v NodeVisitor) { // StmtUse node type StmtUse struct { Node - UseList Vertex + UseTkn *token.Token + Type Vertex + UseDeclarations []Vertex + SemiColonTkn *token.Token } func (n *StmtUse) Accept(v NodeVisitor) { v.StmtUse(n) } -// StmtGroupUseList node -type StmtGroupUseList struct { +// StmtGroupUse node +type StmtGroupUse struct { Node - Prefix Vertex - UseList Vertex + UseTkn *token.Token + Type Vertex + LeadingNsSeparatorTkn *token.Token + Prefix Vertex + NsSeparatorTkn *token.Token + OpenCurlyBracketTkn *token.Token + UseDeclarations []Vertex + CloseCurlyBracketTkn *token.Token + SemiColonTkn *token.Token } -func (n *StmtGroupUseList) Accept(v NodeVisitor) { - v.StmtGroupUseList(n) -} - -// StmtUseList node -type StmtUseList struct { - Node - UseDeclarations []Vertex -} - -func (n *StmtUseList) Accept(v NodeVisitor) { - v.StmtUseList(n) +func (n *StmtGroupUse) Accept(v NodeVisitor) { + v.StmtGroupUse(n) } // StmtUseDeclaration node type StmtUseDeclaration struct { Node - Use Vertex - Alias Vertex + Type Vertex + NsSeparatorTkn *token.Token + Use Vertex + AsTkn *token.Token + Alias Vertex + CommaTkn *token.Token } func (n *StmtUseDeclaration) Accept(v NodeVisitor) { v.StmtUseDeclaration(n) } -// StmtUseType node -type StmtUseType struct { - Node - Type Vertex - Use Vertex -} - -func (n *StmtUseType) Accept(v NodeVisitor) { - v.StmtUseType(n) -} - // StmtWhile node type StmtWhile struct { Node diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 03ebbad..20eecf3 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1150,35 +1150,35 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - if nn.UseList != nil { - t.visitor.Enter("UseList", true) - t.Traverse(nn.UseList) - t.visitor.Leave("UseList", true) + if nn.Type != nil { + t.visitor.Enter("Type", true) + t.Traverse(nn.Type) + t.visitor.Leave("Type", true) } - case *ast.StmtGroupUseList: + if nn.UseDeclarations != nil { + t.visitor.Enter("UseDeclarations", false) + for _, c := range nn.UseDeclarations { + t.Traverse(c) + } + t.visitor.Leave("UseDeclarations", false) + } + case *ast.StmtGroupUse: if nn == nil { return } if !t.visitor.EnterNode(nn) { return } + if nn.Type != nil { + t.visitor.Enter("Type", true) + t.Traverse(nn.Type) + t.visitor.Leave("Type", true) + } if nn.Prefix != nil { t.visitor.Enter("Prefix", true) t.Traverse(nn.Prefix) t.visitor.Leave("Prefix", true) } - if nn.UseList != nil { - t.visitor.Enter("UseList", true) - t.Traverse(nn.UseList) - t.visitor.Leave("UseList", true) - } - case *ast.StmtUseList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } if nn.UseDeclarations != nil { t.visitor.Enter("UseDeclarations", false) for _, c := range nn.UseDeclarations { @@ -1187,23 +1187,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.visitor.Leave("UseDeclarations", false) } case *ast.StmtUseDeclaration: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Use != nil { - t.visitor.Enter("Use", true) - t.Traverse(nn.Use) - t.visitor.Leave("Use", true) - } - if nn.Alias != nil { - t.visitor.Enter("Alias", true) - t.Traverse(nn.Alias) - t.visitor.Leave("Alias", true) - } - case *ast.StmtUseType: if nn == nil { return } @@ -1220,6 +1203,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Use) t.visitor.Leave("Use", true) } + if nn.Alias != nil { + t.visitor.Enter("Alias", true) + t.Traverse(nn.Alias) + t.visitor.Leave("Alias", true) + } case *ast.StmtWhile: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 67bbaac..61deec6 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -169,6 +169,28 @@ func (v *Dump) printNode(n *ast.Node) { v.print("},\n") } +func (v *Dump) printToken(key string, t *token.Token) { + if t == nil { + return + } + + v.printIndent(v.indent) + v.print(key) + v.print(": &token.Token{\n") + + v.printIndent(v.indent + 1) + v.print("ID: token." + t.ID.String() + ",\n") + + v.printIndent(v.indent + 1) + v.print("Value: []byte(" + strconv.Quote(string(t.Value)) + "),\n") + + v.printIndent(v.indent + 1) + v.print("Skipped: []byte(" + strconv.Quote(string(t.Skipped)) + "),\n") + + v.printIndent(v.indent) + v.print("},\n") +} + func (v *Dump) Root(n *ast.Root) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Root{\n") @@ -588,30 +610,30 @@ func (v *Dump) StmtUse(n *ast.StmtUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUse{\n") v.printNode(n.GetNode()) + v.printToken("UseTkn", n.UseTkn) + v.printToken("SemiColonTkn", n.SemiColonTkn) + } -func (v *Dump) StmtGroupUseList(n *ast.StmtGroupUseList) { +func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtGroupUseList{\n") - v.printNode(n.GetNode()) -} - -func (v *Dump) StmtUseList(n *ast.StmtUseList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtUseList{\n") + v.print("&ast.StmtGroupUse{\n") v.printNode(n.GetNode()) + v.printToken("UseTkn", n.UseTkn) + v.printToken("LeadingNsSeparatorTkn", n.LeadingNsSeparatorTkn) + v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) + v.printToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.printToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + v.printToken("SemiColonTkn", n.SemiColonTkn) } func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUseDeclaration{\n") v.printNode(n.GetNode()) -} - -func (v *Dump) StmtUseType(n *ast.StmtUseType) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtUseType{\n") - v.printNode(n.GetNode()) + v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) + v.printToken("AsTkn", n.AsTkn) + v.printToken("CommaTkn", n.CommaTkn) } func (v *Dump) StmtWhile(n *ast.StmtWhile) { diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index f1a5655..4df410a 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -13,34 +13,6 @@ func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { return true } -func (v *FilterParserNodes) StmtGroupUseList(n *ast.StmtGroupUseList) { - if nn, ok := n.Prefix.(*ast.ParserNsSeparator); ok { - n.Prefix = nn.Child - } - - if nn, ok := n.UseList.(*ast.ParserNsSeparator); ok { - n.UseList = nn.Child - } - - if nn, ok := n.UseList.(*ast.ParserBrackets); ok { - n.UseList = nn.Child - } -} - -func (v *FilterParserNodes) StmtUseList(n *ast.StmtUseList) { - for k, v := range n.UseDeclarations { - if nn, ok := v.(*ast.ParserNsSeparator); ok { - n.UseDeclarations[k] = nn.Child - } - } -} - -func (v *FilterParserNodes) StmtUseDeclaration(n *ast.StmtUseDeclaration) { - if nn, ok := n.Alias.(*ast.ParserAs); ok { - n.Alias = nn.Child - } -} - func (v *FilterParserNodes) StmtAltIf(n *ast.StmtAltIf) { for { if nn, ok := n.Cond.(*ast.ParserBrackets); ok { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index c69a3f6..7101b86 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -10,5 +10,26 @@ type FilterTokens struct { func (v *FilterTokens) EnterNode(n ast.Vertex) bool { n.GetNode().Tokens = nil + n.Accept(v) return true } + +func (v *FilterTokens) StmtUse(n *ast.StmtUse) { + n.UseTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtGroupUse(n *ast.StmtGroupUse) { + n.UseTkn = nil + n.LeadingNsSeparatorTkn = nil + n.NsSeparatorTkn = nil + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + n.NsSeparatorTkn = nil + n.AsTkn = nil + n.CommaTkn = nil +} diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index 65f0f54..34c92c7 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -13,9 +13,7 @@ type NamespaceResolver struct { Namespace *Namespace ResolvedNames map[ast.Vertex]string - goDeep bool - useType string - usePrefix []ast.Vertex + goDeep bool } // NewNamespaceResolver NamespaceResolver type constructor @@ -47,28 +45,28 @@ func (nsr *NamespaceResolver) StmtNamespace(n *ast.StmtNamespace) { } } -func (nsr *NamespaceResolver) StmtUseType(n *ast.StmtUseType) { +func (nsr *NamespaceResolver) StmtUse(n *ast.StmtUse) { + useType := "" if n.Type != nil { - nsr.useType = string(n.Type.(*ast.Identifier).Value) + useType = string(n.Type.(*ast.Identifier).Value) } + + for _, nn := range n.UseDeclarations { + nsr.AddAlias(useType, nn, nil) + } + + nsr.goDeep = false } -func (nsr *NamespaceResolver) StmtGroupUseList(n *ast.StmtGroupUseList) { - if n.Prefix != nil { - nsr.usePrefix = n.Prefix.(*ast.NameName).Parts - } -} - -func (nsr *NamespaceResolver) StmtUseDeclaration(n *ast.StmtUseDeclaration) { - useNameParts := n.Use.(*ast.NameName).Parts - var alias string - if n.Alias == nil { - alias = string(useNameParts[len(useNameParts)-1].(*ast.NameNamePart).Value) - } else { - alias = string(n.Alias.(*ast.Identifier).Value) +func (nsr *NamespaceResolver) StmtGroupUse(n *ast.StmtGroupUse) { + useType := "" + if n.Type != nil { + useType = string(n.Type.(*ast.Identifier).Value) } - nsr.Namespace.AddAlias(nsr.useType, concatNameParts(nsr.usePrefix, useNameParts), alias) + for _, nn := range n.UseDeclarations { + nsr.AddAlias(useType, nn, n.Prefix.(*ast.NameName).Parts) + } nsr.goDeep = false } @@ -215,10 +213,26 @@ func (nsr *NamespaceResolver) LeaveNode(n ast.Vertex) { if nn.Stmts != nil { nsr.Namespace = NewNamespace("") } - case *ast.StmtUseType: - nsr.useType = "" - case *ast.StmtGroupUseList: - nsr.usePrefix = nil + } +} + +// AddAlias adds a new alias +func (nsr *NamespaceResolver) AddAlias(useType string, nn ast.Vertex, prefix []ast.Vertex) { + switch use := nn.(type) { + case *ast.StmtUseDeclaration: + if use.Type != nil { + useType = string(use.Type.(*ast.Identifier).Value) + } + + useNameParts := use.Use.(*ast.NameName).Parts + var alias string + if use.Alias == nil { + alias = string(useNameParts[len(useNameParts)-1].(*ast.NameNamePart).Value) + } else { + alias = string(use.Alias.(*ast.Identifier).Value) + } + + nsr.Namespace.AddAlias(useType, concatNameParts(prefix, useNameParts), alias) } } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 22eb8bc..34a31f7 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -17,11 +17,9 @@ func TestResolveStaticCall(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -51,11 +49,9 @@ func TestResolveStaticPropertyFetch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -84,11 +80,9 @@ func TestResolveClassConstFetch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -117,11 +111,9 @@ func TestResolveNew(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -150,11 +142,9 @@ func TestResolveInstanceOf(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -186,14 +176,13 @@ func TestResolveInstanceCatch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, &ast.StmtUseDeclaration{ - Use: nameDE, - Alias: &ast.Identifier{Value: []byte("F")}, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, + }, + &ast.StmtUseDeclaration{ + Use: nameDE, + Alias: &ast.Identifier{Value: []byte("F")}, }, }, }, @@ -232,14 +221,10 @@ func TestResolveFunctionCall(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseType{ - Type: &ast.Identifier{Value: []byte("function")}, - Use: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, - }, + Type: &ast.Identifier{Value: []byte("function")}, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -268,14 +253,10 @@ func TestResolveConstFetch(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseType{ - Type: &ast.Identifier{Value: []byte("const")}, - Use: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, - }, + Type: &ast.Identifier{Value: []byte("const")}, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -305,39 +286,25 @@ func TestResolveGroupUse(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseList: &ast.StmtGroupUseList{ - Prefix: nameAB, - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseType{ - Type: &ast.Identifier{Value: []byte("Function")}, - Use: &ast.StmtUseDeclaration{ - Use: nameF, - }, - }, - &ast.StmtUseType{ - Type: &ast.Identifier{Value: []byte("const")}, - Use: &ast.StmtUseDeclaration{ - Use: nameC, - }, - }, - }, + &ast.StmtGroupUse{ + Prefix: nameAB, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Type: &ast.Identifier{Value: []byte("Function")}, + Use: nameF, + }, + &ast.StmtUseDeclaration{ + Type: &ast.Identifier{Value: []byte("const")}, + Use: nameC, }, }, }, - &ast.StmtUse{ - UseList: &ast.StmtUseType{ - Type: &ast.Identifier{Value: []byte("Function")}, - Use: &ast.StmtGroupUseList{ - Prefix: nameBD, - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameE, - }, - }, - }, + &ast.StmtGroupUse{ + Prefix: nameBD, + Type: &ast.Identifier{Value: []byte("Function")}, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameE, }, }, }, @@ -381,11 +348,9 @@ func TestResolveTraitUse(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAB, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAB, }, }, }, @@ -704,11 +669,9 @@ func TestResolveNamespaces(t *testing.T) { NamespaceName: namespaceCD, Stmts: []ast.Vertex{ &ast.StmtUse{ - UseList: &ast.StmtUseList{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: nameAC, - }, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: nameAC, }, }, }, diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 033a77f..291d8f9 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -282,11 +282,7 @@ func (v *Null) StmtUse(_ *ast.StmtUse) { // do nothing } -func (v *Null) StmtGroupUseList(_ *ast.StmtGroupUseList) { - // do nothing -} - -func (v *Null) StmtUseList(_ *ast.StmtUseList) { +func (v *Null) StmtGroupUse(_ *ast.StmtGroupUse) { // do nothing } @@ -294,10 +290,6 @@ func (v *Null) StmtUseDeclaration(_ *ast.StmtUseDeclaration) { // do nothing } -func (v *Null) StmtUseType(_ *ast.StmtUseType) { - // do nothing -} - func (v *Null) StmtWhile(_ *ast.StmtWhile) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 71a89a8..1aab5d1 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -399,14 +399,10 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { p.printStmtUnset(n) case *ast.StmtUse: p.printStmtUse(n) - case *ast.StmtGroupUseList: - p.printStmtGroupUseList(n) - case *ast.StmtUseList: - p.printStmtUseList(n) + case *ast.StmtGroupUse: + p.printStmtGroupUse(n) case *ast.StmtUseDeclaration: p.printStmtUseDeclaration(n) - case *ast.StmtUseType: - p.printStmtUseType(n) case *ast.StmtWhile: p.printStmtWhile(n) } @@ -2139,30 +2135,41 @@ func (p *PrettyPrinter) printStmtUse(n ast.Vertex) { io.WriteString(p.w, "use ") - p.Print(nn.UseList) + if nn.Type != nil { + p.Print(nn.Type) + io.WriteString(p.w, " ") + } + + p.joinPrint(", ", nn.UseDeclarations) io.WriteString(p.w, ";") } -func (p *PrettyPrinter) printStmtGroupUseList(n ast.Vertex) { - nn := n.(*ast.StmtGroupUseList) +func (p *PrettyPrinter) printStmtGroupUse(n ast.Vertex) { + nn := n.(*ast.StmtGroupUse) + + io.WriteString(p.w, "use ") + + if nn.Type != nil { + p.Print(nn.Type) + io.WriteString(p.w, " ") + } p.Print(nn.Prefix) io.WriteString(p.w, "\\{") - p.Print(nn.UseList) - io.WriteString(p.w, "}") -} - -func (p *PrettyPrinter) printStmtUseList(n ast.Vertex) { - nn := n.(*ast.StmtUseList) - p.joinPrint(", ", nn.UseDeclarations) + io.WriteString(p.w, "}") } func (p *PrettyPrinter) printStmtUseDeclaration(n ast.Vertex) { nn := n.(*ast.StmtUseDeclaration) + if nn.Type != nil { + p.Print(nn.Type) + io.WriteString(p.w, " ") + } + p.Print(nn.Use) if nn.Alias != nil { @@ -2171,15 +2178,6 @@ func (p *PrettyPrinter) printStmtUseDeclaration(n ast.Vertex) { } } -func (p *PrettyPrinter) printStmtUseType(n ast.Vertex) { - nn := n.(*ast.StmtUseType) - - p.Print(nn.Type) - io.WriteString(p.w, " ") - - p.Print(nn.Use) -} - func (p *PrettyPrinter) printStmtWhile(n ast.Vertex) { nn := n.(*ast.StmtWhile) diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index 72f4988..199bc2f 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -3954,39 +3954,7 @@ func TestPrintUse(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtUse{ - UseList: &ast.StmtUseList{}, - }) - - expected := `use ;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtGroupUseList(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtGroupUseList{ - Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - UseList: &ast.StmtUseList{}, - }) - - expected := `Foo\{}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtUseList(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtUseList{ + Type: &ast.Identifier{Value: []byte("function")}, UseDeclarations: []ast.Vertex{ &ast.StmtUseDeclaration{ Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, @@ -3998,7 +3966,33 @@ func TestPrintStmtUseList(t *testing.T) { }, }) - expected := `Foo as Bar, Baz` + expected := `use function Foo as Bar, Baz;` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrintStmtGroupUse(t *testing.T) { + o := bytes.NewBufferString("") + + p := printer.NewPrettyPrinter(o, " ") + p.Print(&ast.StmtGroupUse{ + Type: &ast.Identifier{Value: []byte("function")}, + Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + UseDeclarations: []ast.Vertex{ + &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Alias: &ast.Identifier{Value: []byte("Bar")}, + }, + &ast.StmtUseDeclaration{ + Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + }, + }, + }) + + expected := `use function Foo\{Foo as Bar, Baz}` actual := o.String() if expected != actual { @@ -4011,30 +4005,11 @@ func TestPrintUseDeclaration(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtUseDeclaration{ + Type: &ast.Identifier{Value: []byte("function")}, Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Alias: &ast.Identifier{Value: []byte("Bar")}, }) - expected := `Foo as Bar` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintUseType(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtUseType{ - Type: &ast.Identifier{Value: []byte("function")}, - Use: &ast.StmtUseDeclaration{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Alias: &ast.Identifier{Value: []byte("Bar")}, - }, - }) - expected := `function Foo as Bar` actual := o.String() diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 3951b6f..8d73f1b 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -76,6 +76,23 @@ func (p *Printer) printFreeFloatingOrDefault(n ast.Vertex, pos token.Position, d } } +func (p *Printer) printToken(t *token.Token, def string) { + if t != nil { + p.w.Write(t.Skipped) + p.w.Write(t.Value) + p.bufStart = "" + return + } + + if def != "" { + p.w.Write([]byte(p.bufStart)) + p.bufStart = "" + + p.w.Write([]byte(def)) + return + } +} + func (p *Printer) printFreeFloating(n ast.Vertex, pos token.Position) { if n == nil { return @@ -87,7 +104,7 @@ func (p *Printer) printFreeFloating(n ast.Vertex, pos token.Position) { } func (p *Printer) printNode(n ast.Vertex) { - switch n.(type) { + switch n := n.(type) { // node @@ -438,14 +455,10 @@ func (p *Printer) printNode(n ast.Vertex) { p.printStmtUnset(n) case *ast.StmtUse: p.printStmtUse(n) - case *ast.StmtGroupUseList: - p.printStmtGroupUseList(n) - case *ast.StmtUseList: - p.printStmtUseList(n) + case *ast.StmtGroupUse: + p.printStmtGroupUse(n) case *ast.StmtUseDeclaration: p.printStmtUseDeclaration(n) - case *ast.StmtUseType: - p.printStmtUseType(n) case *ast.StmtWhile: p.printStmtWhile(n) case *ast.ParserAs: @@ -3260,74 +3273,66 @@ func (p *Printer) printStmtUnset(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtUse(n ast.Vertex) { - nn := n.(*ast.StmtUse) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "use") +func (p *Printer) printStmtUse(n *ast.StmtUse) { + p.printToken(n.UseTkn, "use") p.bufStart = " " - p.Print(nn.UseList) + p.Print(n.Type) - p.printFreeFloatingOrDefault(nn, token.End, ";") + p.bufStart = " " + p.joinPrint(",", n.UseDeclarations) + + p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtGroupUseList(n ast.Vertex) { - nn := n.(*ast.StmtGroupUseList) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtGroupUse(n *ast.StmtGroupUse) { + p.printToken(n.UseTkn, "use") - p.Print(nn.Prefix) + p.bufStart = " " + p.Print(n.Type) - if _, ok := nn.UseList.(*ast.ParserNsSeparator); !ok { - io.WriteString(p.w, "\\{") - } + p.bufStart = " " + p.printToken(n.LeadingNsSeparatorTkn, "") - p.Print(nn.UseList) + p.Print(n.Prefix) + p.printToken(n.NsSeparatorTkn, "\\") + p.printToken(n.OpenCurlyBracketTkn, "{") - if _, ok := nn.UseList.(*ast.ParserNsSeparator); !ok { - io.WriteString(p.w, "}") - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtUseList(n ast.Vertex) { - nn := n.(*ast.StmtUseList) - p.printFreeFloating(nn, token.Start) - - p.joinPrint(",", nn.UseDeclarations) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtUseDeclaration(n ast.Vertex) { - nn := n.(*ast.StmtUseDeclaration) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Use) - - if nn.Alias != nil { - if _, ok := nn.Alias.(*ast.ParserAs); !ok { - io.WriteString(p.w, " as") + for k, v := range n.UseDeclarations { + p.Print(v) + var def string + if k != len(n.UseDeclarations)-1 { + def = "," + } + if decl, ok := v.(*ast.StmtUseDeclaration); ok { + p.printToken(decl.CommaTkn, def) } - - p.bufStart = " " - p.Print(nn.Alias) } - p.printFreeFloating(nn, token.End) + p.printToken(n.CloseCurlyBracketTkn, "}") + p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtUseType(n ast.Vertex) { - nn := n.(*ast.StmtUseType) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtUseDeclaration(n *ast.StmtUseDeclaration) { + p.Print(n.Type) - p.Print(nn.Type) + if n.Type != nil { + p.bufStart = " " + } + + p.printToken(n.NsSeparatorTkn, "") + + p.Print(n.Use) + + if n.Alias == nil { + return + } p.bufStart = " " - p.Print(nn.Use) + p.printToken(n.AsTkn, "as") - p.printFreeFloating(nn, token.End) + p.bufStart = " " + p.Print(n.Alias) } func (p *Printer) printStmtWhile(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 2745542..60cdc39 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -1308,7 +1308,8 @@ func TestParseAndPrintPhp5Unset(t *testing.T) { } func TestParseAndPrintPhp5UseList(t *testing.T) { - src := ` Date: Mon, 24 Aug 2020 14:20:20 +0300 Subject: [PATCH 047/140] [refactoring] update ast structure of "name" nodes --- internal/php5/parser_test.go | 4 +- internal/php5/php5.go | 1356 ++++++++++---------- internal/php5/php5.y | 308 +++-- internal/php5/php5_test.go | 6 +- internal/php7/parser_test.go | 4 +- internal/php7/php7.go | 1010 ++++++++------- internal/php7/php7.y | 164 +-- internal/php7/php7_test.go | 6 +- pkg/ast/node.go | 24 +- pkg/ast/traverser/dfs.go | 8 +- pkg/ast/visitor/filter_tokens.go | 27 + pkg/ast/visitor/namespace_resolver.go | 4 +- pkg/ast/visitor/namespace_resolver_test.go | 14 +- pkg/printer/pretty_printer.go | 4 +- pkg/printer/pretty_printer_test.go | 6 +- pkg/printer/printer.go | 143 +-- pkg/printer/printer_parsed_php5_test.go | 35 +- pkg/printer/printer_parsed_php7_test.go | 39 +- pkg/printer/printer_test.go | 6 +- 19 files changed, 1659 insertions(+), 1509 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 6ab5b7a..ab1446d 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -8546,7 +8546,7 @@ func TestStmtNamespace(t *testing.T) { EndPos: 17, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -8604,7 +8604,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { EndPos: 19, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index a1be3c0..b074c96 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6088 +// line internal/php5/php5.y:6126 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:275 +// line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2324,7 +2324,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:285 +// line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2337,65 +2337,65 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:296 +// line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:303 +// line internal/php5/php5.y:303 { - namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{namePart} - - // save position - namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.list = []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + } } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:314 +// line internal/php5/php5.y:315 { - namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} - yyVAL.list = append(yyDollar[1].list, namePart) - - // save position - namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token), + }, + NsSeparatorTkn: yyDollar[2].token, + StringTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }) } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:329 +// line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:346 +// line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2408,53 +2408,59 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:357 +// line internal/php5/php5.y:357 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + NsTkn: yyDollar[1].token, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + SemiColonTkn: yyDollar[3].token, + } } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:371 +// line internal/php5/php5.y:373 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.SkippedTokens) + yyVAL.node = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + }, + NsTkn: yyDollar[1].token, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + OpenCurlyBracket: yyDollar[3].token, + Stmts: yyDollar[4].list, + CloseCurlyBracket: yyDollar[5].token, + } } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:385 +// line internal/php5/php5.y:391 { - yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + NsTkn: yyDollar[1].token, + OpenCurlyBracket: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracket: yyDollar[4].token, + } } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:397 +// line internal/php5/php5.y:403 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2467,7 +2473,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:408 +// line internal/php5/php5.y:414 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2486,7 +2492,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:425 +// line internal/php5/php5.y:431 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2505,7 +2511,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:442 +// line internal/php5/php5.y:448 { yyVAL.node = yyDollar[1].node @@ -2518,7 +2524,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:456 +// line internal/php5/php5.y:462 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2526,13 +2532,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:462 +// line internal/php5/php5.y:468 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:469 +// line internal/php5/php5.y:475 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2548,7 +2554,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:483 +// line internal/php5/php5.y:489 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2571,7 +2577,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:504 +// line internal/php5/php5.y:510 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2588,7 +2594,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:519 +// line internal/php5/php5.y:525 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2612,7 +2618,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:544 +// line internal/php5/php5.y:550 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2620,13 +2626,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:550 +// line internal/php5/php5.y:556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:557 +// line internal/php5/php5.y:563 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2642,7 +2648,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:571 +// line internal/php5/php5.y:577 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2665,7 +2671,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:592 +// line internal/php5/php5.y:598 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2682,7 +2688,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:607 +// line internal/php5/php5.y:613 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2706,7 +2712,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:632 +// line internal/php5/php5.y:638 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2714,13 +2720,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:638 +// line internal/php5/php5.y:644 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:645 +// line internal/php5/php5.y:651 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2736,7 +2742,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:659 +// line internal/php5/php5.y:665 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2759,7 +2765,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:680 +// line internal/php5/php5.y:686 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2776,7 +2782,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:695 +// line internal/php5/php5.y:701 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2800,7 +2806,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:720 +// line internal/php5/php5.y:726 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2821,7 +2827,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:739 +// line internal/php5/php5.y:745 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2840,7 +2846,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:759 +// line internal/php5/php5.y:765 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2853,38 +2859,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:770 +// line internal/php5/php5.y:776 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:778 +// line internal/php5/php5.y:784 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:783 +// line internal/php5/php5.y:789 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:787 +// line internal/php5/php5.y:793 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:791 +// line internal/php5/php5.y:797 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:795 +// line internal/php5/php5.y:801 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2897,13 +2903,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:810 +// line internal/php5/php5.y:816 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:814 +// line internal/php5/php5.y:820 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2918,7 +2924,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:830 +// line internal/php5/php5.y:836 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2931,7 +2937,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:841 +// line internal/php5/php5.y:847 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -2949,7 +2955,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:857 +// line internal/php5/php5.y:863 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -2974,7 +2980,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:880 +// line internal/php5/php5.y:886 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -2993,7 +2999,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:897 +// line internal/php5/php5.y:903 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3008,7 +3014,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:910 +// line internal/php5/php5.y:916 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3035,7 +3041,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:935 +// line internal/php5/php5.y:941 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3056,7 +3062,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:954 +// line internal/php5/php5.y:960 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3070,7 +3076,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:966 +// line internal/php5/php5.y:972 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3084,7 +3090,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:978 +// line internal/php5/php5.y:984 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3098,7 +3104,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:990 +// line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3112,7 +3118,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1002 +// line internal/php5/php5.y:1008 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3126,7 +3132,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1014 +// line internal/php5/php5.y:1020 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3140,7 +3146,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1026 +// line internal/php5/php5.y:1032 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3154,7 +3160,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1038 +// line internal/php5/php5.y:1044 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3168,7 +3174,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1050 +// line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3182,7 +3188,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1062 +// line internal/php5/php5.y:1068 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3196,7 +3202,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1074 +// line internal/php5/php5.y:1080 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3211,7 +3217,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1087 +// line internal/php5/php5.y:1093 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3223,7 +3229,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1097 +// line internal/php5/php5.y:1103 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3237,7 +3243,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1109 +// line internal/php5/php5.y:1115 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3253,7 +3259,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1123 +// line internal/php5/php5.y:1129 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3294,7 +3300,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1161 +// line internal/php5/php5.y:1167 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3335,7 +3341,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1199 +// line internal/php5/php5.y:1205 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3350,7 +3356,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1212 +// line internal/php5/php5.y:1218 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3363,7 +3369,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1223 +// line internal/php5/php5.y:1229 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3381,7 +3387,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1239 +// line internal/php5/php5.y:1245 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3395,7 +3401,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1251 +// line internal/php5/php5.y:1257 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3412,13 +3418,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1269 +// line internal/php5/php5.y:1275 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1273 +// line internal/php5/php5.y:1279 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3440,13 +3446,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1296 +// line internal/php5/php5.y:1302 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1300 +// line internal/php5/php5.y:1306 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3460,31 +3466,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1315 +// line internal/php5/php5.y:1321 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1319 +// line internal/php5/php5.y:1325 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1326 +// line internal/php5/php5.y:1332 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1330 +// line internal/php5/php5.y:1336 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1337 +// line internal/php5/php5.y:1343 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3505,13 +3511,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1359 +// line internal/php5/php5.y:1365 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1363 +// line internal/php5/php5.y:1369 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3520,49 +3526,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1373 +// line internal/php5/php5.y:1379 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1380 +// line internal/php5/php5.y:1386 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1387 +// line internal/php5/php5.y:1393 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1394 +// line internal/php5/php5.y:1400 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1398 +// line internal/php5/php5.y:1404 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1405 +// line internal/php5/php5.y:1411 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1409 +// line internal/php5/php5.y:1415 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1416 +// line internal/php5/php5.y:1422 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3586,7 +3592,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1441 +// line internal/php5/php5.y:1447 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3614,7 +3620,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1467 +// line internal/php5/php5.y:1473 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3631,7 +3637,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1486 +// line internal/php5/php5.y:1492 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3643,7 +3649,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1496 +// line internal/php5/php5.y:1502 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3658,7 +3664,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1509 +// line internal/php5/php5.y:1515 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3670,7 +3676,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1519 +// line internal/php5/php5.y:1525 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3685,13 +3691,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1535 +// line internal/php5/php5.y:1541 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1539 +// line internal/php5/php5.y:1545 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3703,19 +3709,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1552 +// line internal/php5/php5.y:1558 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1559 +// line internal/php5/php5.y:1565 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1563 +// line internal/php5/php5.y:1569 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3727,13 +3733,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1576 +// line internal/php5/php5.y:1582 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1580 +// line internal/php5/php5.y:1586 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3745,28 +3751,33 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1593 +// line internal/php5/php5.y:1599 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1597 +// line internal/php5/php5.y:1603 { + switch n := lastNode(yyDollar[1].list).(type) { + case *ast.NameName: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameFullyQualified: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameRelative: + n.ListSeparatorTkn = yyDollar[2].token + } yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1607 +// line internal/php5/php5.y:1615 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1611 +// line internal/php5/php5.y:1619 { yyVAL.node = yyDollar[2].node @@ -3775,13 +3786,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1621 +// line internal/php5/php5.y:1629 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1625 +// line internal/php5/php5.y:1633 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3793,7 +3804,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1635 +// line internal/php5/php5.y:1643 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3807,7 +3818,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1650 +// line internal/php5/php5.y:1658 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3816,7 +3827,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1657 +// line internal/php5/php5.y:1665 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3833,7 +3844,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1675 +// line internal/php5/php5.y:1683 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3842,7 +3853,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1682 +// line internal/php5/php5.y:1690 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3859,7 +3870,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1701 +// line internal/php5/php5.y:1709 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3868,7 +3879,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1708 +// line internal/php5/php5.y:1716 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3885,7 +3896,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1727 +// line internal/php5/php5.y:1735 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -3901,7 +3912,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1741 +// line internal/php5/php5.y:1749 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -3918,7 +3929,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1760 +// line internal/php5/php5.y:1768 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3933,7 +3944,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1773 +// line internal/php5/php5.y:1781 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3949,7 +3960,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1787 +// line internal/php5/php5.y:1795 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -3966,7 +3977,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1802 +// line internal/php5/php5.y:1810 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -3985,13 +3996,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1823 +// line internal/php5/php5.y:1831 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1827 +// line internal/php5/php5.y:1835 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4006,7 +4017,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1840 +// line internal/php5/php5.y:1848 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4021,19 +4032,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1857 +// line internal/php5/php5.y:1865 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1861 +// line internal/php5/php5.y:1869 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1869 +// line internal/php5/php5.y:1877 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4042,7 +4053,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1876 +// line internal/php5/php5.y:1884 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4059,13 +4070,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1896 +// line internal/php5/php5.y:1904 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1900 +// line internal/php5/php5.y:1908 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4078,13 +4089,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1915 +// line internal/php5/php5.y:1923 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1919 +// line internal/php5/php5.y:1927 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4102,13 +4113,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1939 +// line internal/php5/php5.y:1947 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1943 +// line internal/php5/php5.y:1951 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4120,13 +4131,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1957 +// line internal/php5/php5.y:1965 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1961 +// line internal/php5/php5.y:1969 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4143,25 +4154,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1980 +// line internal/php5/php5.y:1988 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1984 +// line internal/php5/php5.y:1992 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1991 +// line internal/php5/php5.y:1999 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1995 +// line internal/php5/php5.y:2003 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4170,7 +4181,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2005 +// line internal/php5/php5.y:2013 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4206,7 +4217,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2039 +// line internal/php5/php5.y:2047 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4243,13 +4254,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2078 +// line internal/php5/php5.y:2086 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2082 +// line internal/php5/php5.y:2090 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4261,7 +4272,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2092 +// line internal/php5/php5.y:2100 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4273,13 +4284,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2102 +// line internal/php5/php5.y:2110 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2110 +// line internal/php5/php5.y:2118 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4292,7 +4303,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2121 +// line internal/php5/php5.y:2129 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4305,7 +4316,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2132 +// line internal/php5/php5.y:2140 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4320,13 +4331,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2149 +// line internal/php5/php5.y:2157 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2153 +// line internal/php5/php5.y:2161 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4335,7 +4346,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2163 +// line internal/php5/php5.y:2171 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4347,7 +4358,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2173 +// line internal/php5/php5.y:2181 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4359,7 +4370,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2183 +// line internal/php5/php5.y:2191 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4371,7 +4382,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2193 +// line internal/php5/php5.y:2201 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4383,7 +4394,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2206 +// line internal/php5/php5.y:2214 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4392,13 +4403,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2213 +// line internal/php5/php5.y:2221 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2221 +// line internal/php5/php5.y:2229 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4412,7 +4423,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2233 +// line internal/php5/php5.y:2241 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4424,7 +4435,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2243 +// line internal/php5/php5.y:2251 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4438,7 +4449,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2259 +// line internal/php5/php5.y:2267 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4456,7 +4467,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2275 +// line internal/php5/php5.y:2283 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4475,7 +4486,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2292 +// line internal/php5/php5.y:2300 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4492,7 +4503,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2307 +// line internal/php5/php5.y:2315 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4510,19 +4521,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2327 +// line internal/php5/php5.y:2335 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2331 +// line internal/php5/php5.y:2339 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2339 +// line internal/php5/php5.y:2347 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4536,7 +4547,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2351 +// line internal/php5/php5.y:2359 { yyVAL.node = yyDollar[1].node @@ -4549,13 +4560,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2362 +// line internal/php5/php5.y:2370 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2366 +// line internal/php5/php5.y:2374 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4586,7 +4597,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2398 +// line internal/php5/php5.y:2406 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4598,22 +4609,27 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2411 +// line internal/php5/php5.y:2419 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2415 +// line internal/php5/php5.y:2423 { + switch n := lastNode(yyDollar[1].list).(type) { + case *ast.NameName: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameFullyQualified: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameRelative: + n.ListSeparatorTkn = yyDollar[2].token + } yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2425 +// line internal/php5/php5.y:2435 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4625,7 +4641,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2435 +// line internal/php5/php5.y:2445 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4637,31 +4653,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2448 +// line internal/php5/php5.y:2458 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2452 +// line internal/php5/php5.y:2462 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2459 +// line internal/php5/php5.y:2469 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2463 +// line internal/php5/php5.y:2473 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2470 +// line internal/php5/php5.y:2480 { yyVAL.node = yyDollar[1].node @@ -4671,7 +4687,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2478 +// line internal/php5/php5.y:2488 { yyVAL.node = yyDollar[1].node @@ -4681,7 +4697,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2489 +// line internal/php5/php5.y:2499 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4694,13 +4710,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2503 +// line internal/php5/php5.y:2513 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2507 +// line internal/php5/php5.y:2517 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4709,7 +4725,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2517 +// line internal/php5/php5.y:2527 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4723,13 +4739,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2529 +// line internal/php5/php5.y:2539 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2536 +// line internal/php5/php5.y:2546 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4745,7 +4761,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2553 +// line internal/php5/php5.y:2563 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4761,7 +4777,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2567 +// line internal/php5/php5.y:2577 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4774,19 +4790,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2581 +// line internal/php5/php5.y:2591 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2595 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2592 +// line internal/php5/php5.y:2602 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4799,7 +4815,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2603 +// line internal/php5/php5.y:2613 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4812,13 +4828,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2617 +// line internal/php5/php5.y:2627 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2621 +// line internal/php5/php5.y:2631 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4831,31 +4847,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2635 +// line internal/php5/php5.y:2645 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2639 +// line internal/php5/php5.y:2649 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2646 +// line internal/php5/php5.y:2656 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2650 +// line internal/php5/php5.y:2660 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2657 +// line internal/php5/php5.y:2667 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4867,7 +4883,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2667 +// line internal/php5/php5.y:2677 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4879,7 +4895,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2677 +// line internal/php5/php5.y:2687 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4891,7 +4907,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2687 +// line internal/php5/php5.y:2697 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4903,7 +4919,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2697 +// line internal/php5/php5.y:2707 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4915,7 +4931,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2707 +// line internal/php5/php5.y:2717 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4927,7 +4943,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2720 +// line internal/php5/php5.y:2730 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4945,7 +4961,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2736 +// line internal/php5/php5.y:2746 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4964,7 +4980,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2753 +// line internal/php5/php5.y:2763 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4981,7 +4997,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2768 +// line internal/php5/php5.y:2778 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4999,7 +5015,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2787 +// line internal/php5/php5.y:2797 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5020,7 +5036,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2806 +// line internal/php5/php5.y:2816 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5038,7 +5054,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2825 +// line internal/php5/php5.y:2835 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5047,25 +5063,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2832 +// line internal/php5/php5.y:2842 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2840 +// line internal/php5/php5.y:2850 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2844 +// line internal/php5/php5.y:2854 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2851 +// line internal/php5/php5.y:2861 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5074,25 +5090,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2858 +// line internal/php5/php5.y:2868 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2865 +// line internal/php5/php5.y:2875 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2869 +// line internal/php5/php5.y:2879 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2876 +// line internal/php5/php5.y:2886 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5106,7 +5122,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2888 +// line internal/php5/php5.y:2898 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5120,37 +5136,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2903 +// line internal/php5/php5.y:2913 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2907 +// line internal/php5/php5.y:2917 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2911 +// line internal/php5/php5.y:2921 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2918 +// line internal/php5/php5.y:2928 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2922 +// line internal/php5/php5.y:2932 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2929 +// line internal/php5/php5.y:2939 { if yyDollar[3].node != nil { @@ -5166,7 +5182,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2946 +// line internal/php5/php5.y:2956 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5183,7 +5199,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2961 +// line internal/php5/php5.y:2971 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5196,7 +5212,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2972 +// line internal/php5/php5.y:2982 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5210,7 +5226,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2984 +// line internal/php5/php5.y:2994 { var _new *ast.ExprNew @@ -5237,7 +5253,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3009 +// line internal/php5/php5.y:3019 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5249,7 +5265,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3019 +// line internal/php5/php5.y:3029 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5261,7 +5277,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3029 +// line internal/php5/php5.y:3039 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5274,7 +5290,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3040 +// line internal/php5/php5.y:3050 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5287,7 +5303,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3051 +// line internal/php5/php5.y:3061 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5300,7 +5316,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3062 +// line internal/php5/php5.y:3072 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5313,7 +5329,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3073 +// line internal/php5/php5.y:3083 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5326,7 +5342,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3084 +// line internal/php5/php5.y:3094 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5339,7 +5355,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3095 +// line internal/php5/php5.y:3105 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5352,7 +5368,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3106 +// line internal/php5/php5.y:3116 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5365,7 +5381,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3117 +// line internal/php5/php5.y:3127 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5378,7 +5394,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3128 +// line internal/php5/php5.y:3138 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5391,7 +5407,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3139 +// line internal/php5/php5.y:3149 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5404,7 +5420,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3150 +// line internal/php5/php5.y:3160 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5417,7 +5433,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3161 +// line internal/php5/php5.y:3171 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5429,7 +5445,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3171 +// line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5442,7 +5458,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3182 +// line internal/php5/php5.y:3192 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5454,7 +5470,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3202 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5467,7 +5483,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3203 +// line internal/php5/php5.y:3213 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5480,7 +5496,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3214 +// line internal/php5/php5.y:3224 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5493,7 +5509,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3225 +// line internal/php5/php5.y:3235 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5506,7 +5522,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3236 +// line internal/php5/php5.y:3246 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5519,7 +5535,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3247 +// line internal/php5/php5.y:3257 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5532,7 +5548,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3258 +// line internal/php5/php5.y:3268 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5545,7 +5561,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3269 +// line internal/php5/php5.y:3279 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5558,7 +5574,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3280 +// line internal/php5/php5.y:3290 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5571,7 +5587,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3291 +// line internal/php5/php5.y:3301 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5584,7 +5600,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3302 +// line internal/php5/php5.y:3312 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5597,7 +5613,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3313 +// line internal/php5/php5.y:3323 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5610,7 +5626,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3324 +// line internal/php5/php5.y:3334 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5623,7 +5639,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3335 +// line internal/php5/php5.y:3345 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5636,7 +5652,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3346 +// line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5649,7 +5665,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3357 +// line internal/php5/php5.y:3367 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5662,7 +5678,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3368 +// line internal/php5/php5.y:3378 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5675,7 +5691,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3379 +// line internal/php5/php5.y:3389 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5687,7 +5703,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3389 +// line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5699,7 +5715,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3399 +// line internal/php5/php5.y:3409 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5711,7 +5727,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3409 +// line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5723,7 +5739,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3419 +// line internal/php5/php5.y:3429 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5736,7 +5752,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3430 +// line internal/php5/php5.y:3440 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5749,7 +5765,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3441 +// line internal/php5/php5.y:3451 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5762,7 +5778,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3452 +// line internal/php5/php5.y:3462 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5776,7 +5792,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3464 +// line internal/php5/php5.y:3474 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5789,7 +5805,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3475 +// line internal/php5/php5.y:3485 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5802,7 +5818,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3486 +// line internal/php5/php5.y:3496 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5815,7 +5831,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3497 +// line internal/php5/php5.y:3507 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5828,7 +5844,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3508 +// line internal/php5/php5.y:3518 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5841,19 +5857,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3519 +// line internal/php5/php5.y:3529 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3523 +// line internal/php5/php5.y:3533 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3527 +// line internal/php5/php5.y:3537 { yyVAL.node = yyDollar[2].node @@ -5885,7 +5901,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3557 +// line internal/php5/php5.y:3567 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5899,7 +5915,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3579 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5913,13 +5929,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3581 +// line internal/php5/php5.y:3591 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3585 +// line internal/php5/php5.y:3595 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5932,7 +5948,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3596 +// line internal/php5/php5.y:3606 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5945,7 +5961,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3607 +// line internal/php5/php5.y:3617 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5958,7 +5974,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3618 +// line internal/php5/php5.y:3628 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5971,7 +5987,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3629 +// line internal/php5/php5.y:3639 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5984,7 +6000,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3640 +// line internal/php5/php5.y:3650 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5997,7 +6013,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3651 +// line internal/php5/php5.y:3661 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6010,7 +6026,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3662 +// line internal/php5/php5.y:3672 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6030,7 +6046,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3680 +// line internal/php5/php5.y:3690 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6042,25 +6058,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3690 +// line internal/php5/php5.y:3700 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3694 +// line internal/php5/php5.y:3704 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3698 +// line internal/php5/php5.y:3708 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3702 +// line internal/php5/php5.y:3712 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6072,7 +6088,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3712 +// line internal/php5/php5.y:3722 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6084,7 +6100,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3722 +// line internal/php5/php5.y:3732 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6096,7 +6112,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3732 +// line internal/php5/php5.y:3742 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6123,7 +6139,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3756 +// line internal/php5/php5.y:3766 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6151,7 +6167,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3784 +// line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6163,7 +6179,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3794 +// line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6175,7 +6191,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3804 +// line internal/php5/php5.y:3814 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6188,7 +6204,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3815 +// line internal/php5/php5.y:3825 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6201,7 +6217,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3829 +// line internal/php5/php5.y:3839 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6214,7 +6230,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3840 +// line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6227,7 +6243,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3851 +// line internal/php5/php5.y:3861 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6243,7 +6259,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3865 +// line internal/php5/php5.y:3875 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6256,7 +6272,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3879 +// line internal/php5/php5.y:3889 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6270,7 +6286,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3891 +// line internal/php5/php5.y:3901 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6283,19 +6299,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3905 +// line internal/php5/php5.y:3915 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3912 +// line internal/php5/php5.y:3922 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3916 +// line internal/php5/php5.y:3926 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6309,7 +6325,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3931 +// line internal/php5/php5.y:3941 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6325,7 +6341,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3945 +// line internal/php5/php5.y:3955 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6344,7 +6360,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3962 +// line internal/php5/php5.y:3972 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6359,7 +6375,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3975 +// line internal/php5/php5.y:3985 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6377,47 +6393,55 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3994 +// line internal/php5/php5.y:4004 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} + name := &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + } yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[2].node) } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4003 +// line internal/php5/php5.y:4017 { - funcName := &ast.NameRelative{ast.Node{}, yyDollar[3].list} - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[4].node.(*ast.ArgumentList)} + name := &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + } + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[4].node.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, yyDollar[2].token.SkippedTokens) + yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[4].node) } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4016 +// line internal/php5/php5.y:4032 { - funcName := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, funcName, yyDollar[3].node.(*ast.ArgumentList)} + name := &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + } + yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[3].node.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewNodesPosition(funcName, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[3].node) } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4028 +// line internal/php5/php5.y:4046 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6430,7 +6454,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4057 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6443,7 +6467,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4050 +// line internal/php5/php5.y:4068 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6456,7 +6480,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4061 +// line internal/php5/php5.y:4079 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6469,7 +6493,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4072 +// line internal/php5/php5.y:4090 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6481,7 +6505,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4085 +// line internal/php5/php5.y:4103 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6493,87 +6517,91 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4095 +// line internal/php5/php5.y:4113 { - yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node = &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + } } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4102 +// line internal/php5/php5.y:4122 { - yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + } } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4113 +// line internal/php5/php5.y:4133 { - yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + } } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4126 +// line internal/php5/php5.y:4146 { - yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node = &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + } } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4133 +// line internal/php5/php5.y:4155 { - yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + } } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4144 +// line internal/php5/php5.y:4166 { - yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + } } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4179 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4161 +// line internal/php5/php5.y:4183 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4168 +// line internal/php5/php5.y:4190 { yyVAL.node = yyDollar[1].node @@ -6614,25 +6642,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4207 +// line internal/php5/php5.y:4229 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4215 +// line internal/php5/php5.y:4237 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4219 +// line internal/php5/php5.y:4241 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4227 +// line internal/php5/php5.y:4249 { yyVAL.list = yyDollar[2].list @@ -6641,13 +6669,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4237 +// line internal/php5/php5.y:4259 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4241 +// line internal/php5/php5.y:4263 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} @@ -6660,19 +6688,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4252 +// line internal/php5/php5.y:4274 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4259 +// line internal/php5/php5.y:4281 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4263 +// line internal/php5/php5.y:4285 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6682,25 +6710,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4271 +// line internal/php5/php5.y:4293 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4278 +// line internal/php5/php5.y:4300 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4282 +// line internal/php5/php5.y:4304 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4289 +// line internal/php5/php5.y:4311 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6712,7 +6740,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4299 +// line internal/php5/php5.y:4321 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6724,7 +6752,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4309 +// line internal/php5/php5.y:4331 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6736,7 +6764,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4319 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6748,7 +6776,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4329 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6760,7 +6788,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4339 +// line internal/php5/php5.y:4361 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6772,7 +6800,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4349 +// line internal/php5/php5.y:4371 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6784,7 +6812,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4359 +// line internal/php5/php5.y:4381 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6796,7 +6824,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4369 +// line internal/php5/php5.y:4391 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6808,7 +6836,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4379 +// line internal/php5/php5.y:4401 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6820,7 +6848,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4389 +// line internal/php5/php5.y:4411 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6834,7 +6862,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4401 +// line internal/php5/php5.y:4423 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6846,7 +6874,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4414 +// line internal/php5/php5.y:4436 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6862,65 +6890,73 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4431 +// line internal/php5/php5.y:4453 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4438 +// line internal/php5/php5.y:4460 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4442 +// line internal/php5/php5.y:4464 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4446 +// line internal/php5/php5.y:4468 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} + name := &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + } yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4455 +// line internal/php5/php5.y:4481 { - name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} + name := &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + } yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4468 +// line internal/php5/php5.y:4496 { - name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} + name := &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + } yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4480 +// line internal/php5/php5.y:4510 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6934,7 +6970,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4492 +// line internal/php5/php5.y:4522 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6947,13 +6983,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4503 +// line internal/php5/php5.y:4533 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4507 +// line internal/php5/php5.y:4537 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6965,13 +7001,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4517 +// line internal/php5/php5.y:4547 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4554 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6984,7 +7020,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4565 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6997,7 +7033,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4546 +// line internal/php5/php5.y:4576 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7010,7 +7046,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4557 +// line internal/php5/php5.y:4587 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7023,7 +7059,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4568 +// line internal/php5/php5.y:4598 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7036,7 +7072,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4579 +// line internal/php5/php5.y:4609 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7049,7 +7085,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4590 +// line internal/php5/php5.y:4620 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7062,7 +7098,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4601 +// line internal/php5/php5.y:4631 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7074,7 +7110,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4611 +// line internal/php5/php5.y:4641 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7086,7 +7122,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4621 +// line internal/php5/php5.y:4651 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7099,7 +7135,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4632 +// line internal/php5/php5.y:4662 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7112,7 +7148,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4643 +// line internal/php5/php5.y:4673 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7125,7 +7161,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4654 +// line internal/php5/php5.y:4684 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7138,7 +7174,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4665 +// line internal/php5/php5.y:4695 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7151,7 +7187,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4676 +// line internal/php5/php5.y:4706 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7164,7 +7200,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4687 +// line internal/php5/php5.y:4717 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7177,7 +7213,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4698 +// line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7190,7 +7226,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4709 +// line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7203,7 +7239,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4720 +// line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7216,7 +7252,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4731 +// line internal/php5/php5.y:4761 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7229,7 +7265,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4742 +// line internal/php5/php5.y:4772 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7242,7 +7278,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4753 +// line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7255,7 +7291,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4764 +// line internal/php5/php5.y:4794 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7268,7 +7304,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4775 +// line internal/php5/php5.y:4805 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7282,7 +7318,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4787 +// line internal/php5/php5.y:4817 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7295,7 +7331,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4798 +// line internal/php5/php5.y:4828 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7308,7 +7344,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4809 +// line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7321,7 +7357,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4820 +// line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7334,7 +7370,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4831 +// line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7348,7 +7384,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4843 +// line internal/php5/php5.y:4873 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7362,7 +7398,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4855 +// line internal/php5/php5.y:4885 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7374,7 +7410,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4865 +// line internal/php5/php5.y:4895 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7386,7 +7422,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4875 +// line internal/php5/php5.y:4905 { yyVAL.node = yyDollar[2].node @@ -7396,53 +7432,61 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4886 +// line internal/php5/php5.y:4916 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4890 +// line internal/php5/php5.y:4920 { - name := &ast.NameName{ast.Node{}, yyDollar[1].list} + name := &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + } yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4899 +// line internal/php5/php5.y:4933 { - name := &ast.NameRelative{ast.Node{}, yyDollar[3].list} + name := &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + } yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Namespace, yyDollar[2].token.SkippedTokens) } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4912 +// line internal/php5/php5.y:4948 { - name := &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} + name := &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + } yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewNodePosition(name) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4927 +// line internal/php5/php5.y:4965 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7456,25 +7500,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4939 +// line internal/php5/php5.y:4977 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4943 +// line internal/php5/php5.y:4981 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4947 +// line internal/php5/php5.y:4985 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4951 +// line internal/php5/php5.y:4989 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7486,7 +7530,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4961 +// line internal/php5/php5.y:4999 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7498,7 +7542,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4971 +// line internal/php5/php5.y:5009 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7510,13 +7554,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4984 +// line internal/php5/php5.y:5022 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4988 +// line internal/php5/php5.y:5026 { yyVAL.list = yyDollar[1].list @@ -7527,19 +7571,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5000 +// line internal/php5/php5.y:5038 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5004 +// line internal/php5/php5.y:5042 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5049 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7554,7 +7598,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5024 +// line internal/php5/php5.y:5062 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7568,7 +7612,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5036 +// line internal/php5/php5.y:5074 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7582,7 +7626,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5048 +// line internal/php5/php5.y:5086 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7595,19 +7639,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5062 +// line internal/php5/php5.y:5100 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5066 +// line internal/php5/php5.y:5104 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5073 +// line internal/php5/php5.y:5111 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7620,7 +7664,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5084 +// line internal/php5/php5.y:5122 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7633,25 +7677,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5099 +// line internal/php5/php5.y:5137 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5107 +// line internal/php5/php5.y:5145 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5114 +// line internal/php5/php5.y:5152 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5121 +// line internal/php5/php5.y:5159 { yyVAL.node = yyDollar[1].node @@ -7709,25 +7753,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5177 +// line internal/php5/php5.y:5215 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5184 +// line internal/php5/php5.y:5222 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5188 +// line internal/php5/php5.y:5226 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5196 +// line internal/php5/php5.y:5234 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7741,7 +7785,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5211 +// line internal/php5/php5.y:5249 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7755,7 +7799,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5223 +// line internal/php5/php5.y:5261 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7769,7 +7813,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5238 +// line internal/php5/php5.y:5276 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7778,31 +7822,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5248 +// line internal/php5/php5.y:5286 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5252 +// line internal/php5/php5.y:5290 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5256 +// line internal/php5/php5.y:5294 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5263 +// line internal/php5/php5.y:5301 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5267 +// line internal/php5/php5.y:5305 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7814,7 +7858,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5280 +// line internal/php5/php5.y:5318 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7827,7 +7871,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5291 +// line internal/php5/php5.y:5329 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7840,13 +7884,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5305 +// line internal/php5/php5.y:5343 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5312 +// line internal/php5/php5.y:5350 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7859,7 +7903,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5323 +// line internal/php5/php5.y:5361 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7872,31 +7916,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5337 +// line internal/php5/php5.y:5375 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5341 +// line internal/php5/php5.y:5379 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5345 +// line internal/php5/php5.y:5383 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5353 +// line internal/php5/php5.y:5391 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5357 +// line internal/php5/php5.y:5395 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7908,13 +7952,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5367 +// line internal/php5/php5.y:5405 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5374 +// line internal/php5/php5.y:5412 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7927,7 +7971,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5385 +// line internal/php5/php5.y:5423 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7940,13 +7984,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5396 +// line internal/php5/php5.y:5434 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5404 +// line internal/php5/php5.y:5442 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7960,7 +8004,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5416 +// line internal/php5/php5.y:5454 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7974,25 +8018,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5431 +// line internal/php5/php5.y:5469 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5435 +// line internal/php5/php5.y:5473 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5443 +// line internal/php5/php5.y:5481 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5447 +// line internal/php5/php5.y:5485 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8002,7 +8046,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5458 +// line internal/php5/php5.y:5496 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8016,7 +8060,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5470 +// line internal/php5/php5.y:5508 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8030,7 +8074,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5482 +// line internal/php5/php5.y:5520 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8040,7 +8084,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5493 +// line internal/php5/php5.y:5531 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8052,7 +8096,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5503 +// line internal/php5/php5.y:5541 { yyVAL.node = yyDollar[2].node @@ -8065,7 +8109,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5517 +// line internal/php5/php5.y:5555 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8078,7 +8122,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5528 +// line internal/php5/php5.y:5566 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8095,7 +8139,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5546 +// line internal/php5/php5.y:5584 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8108,7 +8152,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5557 +// line internal/php5/php5.y:5595 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8118,7 +8162,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5569 +// line internal/php5/php5.y:5607 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8130,7 +8174,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5579 +// line internal/php5/php5.y:5617 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8146,19 +8190,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5593 +// line internal/php5/php5.y:5631 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5601 +// line internal/php5/php5.y:5639 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5605 +// line internal/php5/php5.y:5643 { yyVAL.list = yyDollar[1].list @@ -8173,7 +8217,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5621 +// line internal/php5/php5.y:5659 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8188,7 +8232,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5634 +// line internal/php5/php5.y:5672 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8202,7 +8246,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5646 +// line internal/php5/php5.y:5684 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8216,7 +8260,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5658 +// line internal/php5/php5.y:5696 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8229,7 +8273,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5669 +// line internal/php5/php5.y:5707 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8247,7 +8291,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5685 +// line internal/php5/php5.y:5723 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8263,7 +8307,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5699 +// line internal/php5/php5.y:5737 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8280,7 +8324,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5714 +// line internal/php5/php5.y:5752 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8295,13 +8339,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5730 +// line internal/php5/php5.y:5768 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5734 +// line internal/php5/php5.y:5772 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8314,13 +8358,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5745 +// line internal/php5/php5.y:5783 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5749 +// line internal/php5/php5.y:5787 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8333,7 +8377,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5763 +// line internal/php5/php5.y:5801 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8347,7 +8391,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5775 +// line internal/php5/php5.y:5813 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8364,7 +8408,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5790 +// line internal/php5/php5.y:5828 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8383,7 +8427,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5807 +// line internal/php5/php5.y:5845 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8398,7 +8442,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5820 +// line internal/php5/php5.y:5858 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8415,7 +8459,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5835 +// line internal/php5/php5.y:5873 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8434,7 +8478,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5852 +// line internal/php5/php5.y:5890 { yyVAL.node = yyDollar[2].node @@ -8444,7 +8488,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5863 +// line internal/php5/php5.y:5901 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8456,7 +8500,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5873 +// line internal/php5/php5.y:5911 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8473,7 +8517,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5888 +// line internal/php5/php5.y:5926 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8487,7 +8531,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5903 +// line internal/php5/php5.y:5941 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8501,7 +8545,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5915 +// line internal/php5/php5.y:5953 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8517,7 +8561,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5929 +// line internal/php5/php5.y:5967 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8533,7 +8577,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5943 +// line internal/php5/php5.y:5981 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8545,7 +8589,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5953 +// line internal/php5/php5.y:5991 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8557,7 +8601,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5963 +// line internal/php5/php5.y:6001 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -8573,7 +8617,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5977 +// line internal/php5/php5.y:6015 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8585,7 +8629,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5987 +// line internal/php5/php5.y:6025 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8597,13 +8641,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6000 +// line internal/php5/php5.y:6038 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6004 +// line internal/php5/php5.y:6042 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8612,19 +8656,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6014 +// line internal/php5/php5.y:6052 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6018 +// line internal/php5/php5.y:6056 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6025 +// line internal/php5/php5.y:6063 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8640,7 +8684,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6039 +// line internal/php5/php5.y:6077 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8656,7 +8700,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6056 +// line internal/php5/php5.y:6094 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8672,7 +8716,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6073 +// line internal/php5/php5.y:6111 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index a462f00..668b080 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -301,26 +301,26 @@ top_statement_list: namespace_name: T_STRING { - namePart := &ast.NameNamePart{ast.Node{}, $1.Value} - $$ = []ast.Vertex{namePart} - - // save position - namePart.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.SkippedTokens) + $$ = []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + }, + } } | namespace_name T_NS_SEPARATOR T_STRING { - namePart := &ast.NameNamePart{ast.Node{}, $3.Value} - $$ = append($1, namePart) - - // save position - namePart.GetNode().Position = position.NewTokenPosition($3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.SkippedTokens) + $$ = append($1, &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $3), + }, + NsSeparatorTkn: $2, + StringTkn: $3, + Value: $3.Value, + }) } ; @@ -355,43 +355,49 @@ top_statement: } | T_NAMESPACE namespace_name ';' { - name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtNamespace{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + NsTkn: $1, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + SemiColonTkn: $3, + } } | T_NAMESPACE namespace_name '{' top_statement_list '}' { - name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtNamespace{ast.Node{}, name, $4} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.SkippedTokens) + $$ = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $5), + }, + NsTkn: $1, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + OpenCurlyBracket: $3, + Stmts: $4, + CloseCurlyBracket: $5, + } } | T_NAMESPACE '{' top_statement_list '}' { - $$ = &ast.StmtNamespace{ast.Node{}, nil, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) + $$ = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + NsTkn: $1, + OpenCurlyBracket: $2, + Stmts: $3, + CloseCurlyBracket: $4, + } } | T_USE use_declarations ';' { @@ -1595,10 +1601,12 @@ interface_list: } | interface_list ',' fully_qualified_class_name { + switch n := lastNode($1).(type) { + case *ast.NameName: n.ListSeparatorTkn = $2 + case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 + case *ast.NameRelative: n.ListSeparatorTkn = $2 + } $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2413,10 +2421,12 @@ trait_list: } | trait_list ',' fully_qualified_class_name { + switch n := lastNode($1).(type) { + case *ast.NameName: n.ListSeparatorTkn = $2 + case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 + case *ast.NameRelative: n.ListSeparatorTkn = $2 + } $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -3992,37 +4002,45 @@ lexical_var_list: function_call: namespace_name function_call_parameter_list { - name := &ast.NameName{ast.Node{}, $1} + name := &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + } $$ = &ast.ExprFunctionCall{ast.Node{}, name, $2.(*ast.ArgumentList)} // save position - name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodesPosition(name, $2) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { - funcName := &ast.NameRelative{ast.Node{}, $3} - $$ = &ast.ExprFunctionCall{ast.Node{}, funcName, $4.(*ast.ArgumentList)} + name := &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + } + $$ = &ast.ExprFunctionCall{ast.Node{}, name, $4.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = position.NewTokenNodeListPosition($1, $3) - $$.GetNode().Position = position.NewNodesPosition(funcName, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(funcName, token.Namespace, $2.SkippedTokens) + $$.GetNode().Position = position.NewNodesPosition(name, $4) } | T_NS_SEPARATOR namespace_name function_call_parameter_list { - funcName := &ast.NameFullyQualified{ast.Node{}, $2} - $$ = &ast.ExprFunctionCall{ast.Node{}, funcName, $3.(*ast.ArgumentList)} + name := &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + } + $$ = &ast.ExprFunctionCall{ast.Node{}, name, $3.(*ast.ArgumentList)} // save position - funcName.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - $$.GetNode().Position = position.NewNodesPosition(funcName, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$.GetNode().Position = position.NewNodesPosition(name, $3) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { @@ -4093,62 +4111,66 @@ class_name: } | namespace_name { - $$ = &ast.NameName{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeListPosition($1) + $$ = &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - $$ = &ast.NameRelative{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) + $$ = &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + } } | T_NS_SEPARATOR namespace_name { - $$ = &ast.NameFullyQualified{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + } } ; fully_qualified_class_name: namespace_name { - $$ = &ast.NameName{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeListPosition($1) + $$ = &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - $$ = &ast.NameRelative{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) + $$ = &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + } } | T_NS_SEPARATOR namespace_name { - $$ = &ast.NameFullyQualified{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + } } ; @@ -4444,37 +4466,45 @@ static_scalar_value: } | namespace_name { - name := &ast.NameName{ast.Node{}, $1} + name := &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + } $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodePosition(name) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - name := &ast.NameRelative{ast.Node{}, $3} + name := &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + } $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition($1, $3) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name { - name := &ast.NameFullyQualified{ast.Node{}, $2} + name := &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + } $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition($1, $2) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_ARRAY '(' static_array_pair_list ')' { @@ -4888,37 +4918,45 @@ general_constant: } | namespace_name { - name := &ast.NameName{ast.Node{}, $1} + name := &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + } $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewNodeListPosition($1) $$.GetNode().Position = position.NewNodePosition(name) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - name := &ast.NameRelative{ast.Node{}, $3} + name := &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + } $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition($1, $3) $$.GetNode().Position = position.NewNodePosition(name) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Namespace, $2.SkippedTokens) } | T_NS_SEPARATOR namespace_name { - name := &ast.NameFullyQualified{ast.Node{}, $2} + name := &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + } $$ = &ast.ExprConstFetch{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenNodeListPosition($1, $2) $$.GetNode().Position = position.NewNodePosition(name) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index d802b19..a8b3fcb 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -6290,7 +6290,7 @@ func TestPhp5(t *testing.T) { EndPos: 2376, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 109, @@ -6323,7 +6323,7 @@ func TestPhp5(t *testing.T) { EndPos: 2397, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 110, @@ -6349,7 +6349,7 @@ func TestPhp5(t *testing.T) { Position: &position.Position{ StartLine: 110, EndLine: 110, - StartPos: 2391, + StartPos: 2390, EndPos: 2394, }, }, diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index b33e201..4cb66c8 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -9214,7 +9214,7 @@ func TestStmtNamespace(t *testing.T) { EndPos: 17, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -9272,7 +9272,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { EndPos: 19, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 2e0a57b..e818e2c 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4820 +// line internal/php7/php7.y:4830 // line yacctab:1 var yyExca = [...]int{ @@ -2607,103 +2607,105 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:352 { - namePart := &ast.NameNamePart{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{namePart} - - // save position - namePart.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.list = []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + } } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:363 + // line internal/php7/php7.y:364 { - namePart := &ast.NameNamePart{ast.Node{}, yyDollar[3].token.Value} - yyVAL.list = append(yyDollar[1].list, namePart) - - // save position - namePart.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token), + }, + NsSeparatorTkn: yyDollar[2].token, + StringTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }) } case 83: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:378 { - yyVAL.node = &ast.NameName{ast.Node{}, yyDollar[1].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) + yyVAL.node = &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + } } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:385 + // line internal/php7/php7.y:387 { - yyVAL.node = &ast.NameRelative{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + } } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:396 + // line internal/php7/php7.y:398 { - yyVAL.node = &ast.NameFullyQualified{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + } } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:409 + // line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:414 + // line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:418 + // line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:422 + // line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:426 + // line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:430 + // line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:434 + // line internal/php7/php7.y:436 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -2716,55 +2718,59 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:445 + // line internal/php7/php7.y:447 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + NsTkn: yyDollar[1].token, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + SemiColonTkn: yyDollar[3].token, + } } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:460 + // line internal/php7/php7.y:463 { - name := &ast.NameName{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtNamespace{ast.Node{}, name, yyDollar[4].list} - - // save position - name.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).MoveFreeFloating(yyDollar[2].list[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[5].token.SkippedTokens) + yyVAL.node = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + }, + NsTkn: yyDollar[1].token, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Parts: yyDollar[2].list, + }, + OpenCurlyBracket: yyDollar[3].token, + Stmts: yyDollar[4].list, + CloseCurlyBracket: yyDollar[5].token, + } } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:475 + // line internal/php7/php7.y:481 { - yyVAL.node = &ast.StmtNamespace{ast.Node{}, nil, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Namespace, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + NsTkn: yyDollar[1].token, + OpenCurlyBracket: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracket: yyDollar[4].token, + } } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:487 + // line internal/php7/php7.y:493 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2776,7 +2782,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:497 + // line internal/php7/php7.y:503 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2789,7 +2795,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:508 + // line internal/php7/php7.y:514 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2802,7 +2808,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:519 + // line internal/php7/php7.y:525 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2816,7 +2822,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:531 + // line internal/php7/php7.y:537 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2830,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:546 + // line internal/php7/php7.y:552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2842,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:556 + // line internal/php7/php7.y:562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2854,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:569 + // line internal/php7/php7.y:575 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2878,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:591 + // line internal/php7/php7.y:597 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2901,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:615 + // line internal/php7/php7.y:621 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2923,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:635 + // line internal/php7/php7.y:641 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2946,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:659 + // line internal/php7/php7.y:665 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:663 + // line internal/php7/php7.y:669 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:670 + // line internal/php7/php7.y:676 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2966,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:676 + // line internal/php7/php7.y:682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:683 + // line internal/php7/php7.y:689 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2980,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:689 + // line internal/php7/php7.y:695 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:696 + // line internal/php7/php7.y:702 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2994,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:702 + // line internal/php7/php7.y:708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:709 + // line internal/php7/php7.y:715 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:713 + // line internal/php7/php7.y:719 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3016,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:724 + // line internal/php7/php7.y:730 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3032,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:738 + // line internal/php7/php7.y:744 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3055,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:762 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:766 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3071,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:777 + // line internal/php7/php7.y:783 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3080,13 +3086,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:784 + // line internal/php7/php7.y:790 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:791 + // line internal/php7/php7.y:797 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3099,50 +3105,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:802 + // line internal/php7/php7.y:808 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:809 + // line internal/php7/php7.y:815 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:814 + // line internal/php7/php7.y:820 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:818 + // line internal/php7/php7.y:824 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:822 + // line internal/php7/php7.y:828 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:826 + // line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:830 + // line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:834 + // line internal/php7/php7.y:840 { yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} @@ -3155,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:847 + // line internal/php7/php7.y:853 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3168,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:858 + // line internal/php7/php7.y:864 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:862 + // line internal/php7/php7.y:868 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:866 + // line internal/php7/php7.y:872 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3204,7 +3210,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:888 + // line internal/php7/php7.y:894 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[5].node} yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} @@ -3222,7 +3228,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:904 + // line internal/php7/php7.y:910 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3249,7 +3255,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:929 + // line internal/php7/php7.y:935 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3275,7 +3281,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:953 + // line internal/php7/php7.y:959 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3289,7 +3295,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:965 + // line internal/php7/php7.y:971 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3303,7 +3309,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:977 + // line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3317,7 +3323,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:989 + // line internal/php7/php7.y:995 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3331,7 +3337,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1001 + // line internal/php7/php7.y:1007 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3345,7 +3351,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1013 + // line internal/php7/php7.y:1019 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3360,7 +3366,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1026 + // line internal/php7/php7.y:1032 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3372,7 +3378,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1036 + // line internal/php7/php7.y:1042 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3386,7 +3392,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3406,7 +3412,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1066 + // line internal/php7/php7.y:1072 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3430,7 +3436,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1088 + // line internal/php7/php7.y:1094 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3457,7 +3463,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1113 + // line internal/php7/php7.y:1119 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3472,7 +3478,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1126 + // line internal/php7/php7.y:1132 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3485,7 +3491,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1137 + // line internal/php7/php7.y:1143 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3502,7 +3508,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1152 + // line internal/php7/php7.y:1158 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3516,7 +3522,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1164 + // line internal/php7/php7.y:1170 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3533,7 +3539,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1179 + // line internal/php7/php7.y:1185 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3548,13 +3554,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1194 + // line internal/php7/php7.y:1200 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1198 + // line internal/php7/php7.y:1204 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3576,28 +3582,33 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1220 + // line internal/php7/php7.y:1226 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1224 + // line internal/php7/php7.y:1230 { + switch n := lastNode(yyDollar[1].list).(type) { + case *ast.NameName: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameFullyQualified: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameRelative: + n.ListSeparatorTkn = yyDollar[2].token + } yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1234 + // line internal/php7/php7.y:1242 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1238 + // line internal/php7/php7.y:1246 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3611,13 +3622,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1253 + // line internal/php7/php7.y:1261 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1257 + // line internal/php7/php7.y:1265 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3626,13 +3637,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1267 + // line internal/php7/php7.y:1275 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1274 + // line internal/php7/php7.y:1282 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3662,31 +3673,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1305 + // line internal/php7/php7.y:1313 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1317 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1324 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1320 + // line internal/php7/php7.y:1328 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1327 + // line internal/php7/php7.y:1335 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3704,7 +3715,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1351 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3721,19 +3732,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1361 + // line internal/php7/php7.y:1369 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1365 + // line internal/php7/php7.y:1373 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1372 + // line internal/php7/php7.y:1380 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3745,7 +3756,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1382 + // line internal/php7/php7.y:1390 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3757,7 +3768,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1395 + // line internal/php7/php7.y:1403 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3774,7 +3785,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1413 + // line internal/php7/php7.y:1421 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3791,13 +3802,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1431 + // line internal/php7/php7.y:1439 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1435 + // line internal/php7/php7.y:1443 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3809,13 +3820,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1448 + // line internal/php7/php7.y:1456 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1452 + // line internal/php7/php7.y:1460 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3827,13 +3838,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1465 + // line internal/php7/php7.y:1473 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1469 + // line internal/php7/php7.y:1477 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3845,13 +3856,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1490 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1486 + // line internal/php7/php7.y:1494 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3863,7 +3874,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1496 + // line internal/php7/php7.y:1504 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3877,7 +3888,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1508 + // line internal/php7/php7.y:1516 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3890,7 +3901,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1530 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3899,7 +3910,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1529 + // line internal/php7/php7.y:1537 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3916,7 +3927,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1547 + // line internal/php7/php7.y:1555 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3925,7 +3936,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1554 + // line internal/php7/php7.y:1562 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3942,7 +3953,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1580 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3951,7 +3962,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1579 + // line internal/php7/php7.y:1587 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3968,7 +3979,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1597 + // line internal/php7/php7.y:1605 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3983,7 +3994,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1610 + // line internal/php7/php7.y:1618 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3999,7 +4010,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1632 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4016,7 +4027,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1639 + // line internal/php7/php7.y:1647 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4035,13 +4046,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1667 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1671 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4056,7 +4067,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1676 + // line internal/php7/php7.y:1684 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4071,19 +4082,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1692 + // line internal/php7/php7.y:1700 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1704 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1703 + // line internal/php7/php7.y:1711 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4092,7 +4103,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1710 + // line internal/php7/php7.y:1718 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4109,7 +4120,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1728 + // line internal/php7/php7.y:1736 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} @@ -4125,7 +4136,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1742 + // line internal/php7/php7.y:1750 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} @@ -4145,13 +4156,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1763 + // line internal/php7/php7.y:1771 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1767 + // line internal/php7/php7.y:1775 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4167,7 +4178,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1784 + // line internal/php7/php7.y:1792 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} @@ -4188,7 +4199,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1803 + // line internal/php7/php7.y:1811 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} @@ -4212,7 +4223,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1836 { yyVAL.node = yyDollar[1].node @@ -4230,7 +4241,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1852 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4253,25 +4264,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1868 + // line internal/php7/php7.y:1876 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1872 + // line internal/php7/php7.y:1880 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1879 + // line internal/php7/php7.y:1887 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1883 + // line internal/php7/php7.y:1891 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4280,7 +4291,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1893 + // line internal/php7/php7.y:1901 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4316,7 +4327,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1927 + // line internal/php7/php7.y:1935 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4353,25 +4364,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1965 + // line internal/php7/php7.y:1973 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1969 + // line internal/php7/php7.y:1977 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1976 + // line internal/php7/php7.y:1984 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1980 + // line internal/php7/php7.y:1988 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4383,7 +4394,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1993 + // line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4395,7 +4406,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2003 + // line internal/php7/php7.y:2011 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4407,19 +4418,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2013 + // line internal/php7/php7.y:2021 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2020 + // line internal/php7/php7.y:2028 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2024 + // line internal/php7/php7.y:2032 { yyVAL.node = yyDollar[2].node @@ -4428,7 +4439,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2034 + // line internal/php7/php7.y:2042 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4441,7 +4452,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2045 + // line internal/php7/php7.y:2053 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4458,13 +4469,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2063 + // line internal/php7/php7.y:2071 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2067 + // line internal/php7/php7.y:2075 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4473,7 +4484,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2077 + // line internal/php7/php7.y:2085 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4485,7 +4496,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2095 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4497,7 +4508,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2100 + // line internal/php7/php7.y:2108 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4506,19 +4517,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2115 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2122 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2121 + // line internal/php7/php7.y:2129 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4527,13 +4538,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2128 + // line internal/php7/php7.y:2136 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2135 + // line internal/php7/php7.y:2143 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4549,7 +4560,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2149 + // line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4566,19 +4577,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2167 + // line internal/php7/php7.y:2175 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2171 + // line internal/php7/php7.y:2179 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2178 + // line internal/php7/php7.y:2186 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4592,7 +4603,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2190 + // line internal/php7/php7.y:2198 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4611,7 +4622,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2215 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4623,7 +4634,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2217 + // line internal/php7/php7.y:2225 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4654,22 +4665,27 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2249 + // line internal/php7/php7.y:2257 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2253 + // line internal/php7/php7.y:2261 { + switch n := lastNode(yyDollar[1].list).(type) { + case *ast.NameName: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameFullyQualified: + n.ListSeparatorTkn = yyDollar[2].token + case *ast.NameRelative: + n.ListSeparatorTkn = yyDollar[2].token + } yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2273 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4681,7 +4697,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2273 + // line internal/php7/php7.y:2283 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4693,7 +4709,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2283 + // line internal/php7/php7.y:2293 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4705,19 +4721,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2296 + // line internal/php7/php7.y:2306 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2310 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2307 + // line internal/php7/php7.y:2317 { yyVAL.node = yyDollar[1].node @@ -4727,7 +4743,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2315 + // line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4737,7 +4753,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2326 + // line internal/php7/php7.y:2336 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4750,7 +4766,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2340 + // line internal/php7/php7.y:2350 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4766,7 +4782,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2354 + // line internal/php7/php7.y:2364 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4782,7 +4798,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2368 + // line internal/php7/php7.y:2378 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4798,7 +4814,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2382 + // line internal/php7/php7.y:2392 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4811,7 +4827,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2396 + // line internal/php7/php7.y:2406 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4825,13 +4841,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2418 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2415 + // line internal/php7/php7.y:2425 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4847,7 +4863,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2432 + // line internal/php7/php7.y:2442 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4860,7 +4876,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2443 + // line internal/php7/php7.y:2453 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4873,13 +4889,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2457 + // line internal/php7/php7.y:2467 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2461 + // line internal/php7/php7.y:2471 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4892,41 +4908,29 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2475 + // line internal/php7/php7.y:2485 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2479 + // line internal/php7/php7.y:2489 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2486 + // line internal/php7/php7.y:2496 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2490 + // line internal/php7/php7.y:2500 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2497 - { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - } - case 273: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2507 { @@ -4938,7 +4942,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } - case 274: + case 273: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2517 { @@ -4950,7 +4954,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } - case 275: + case 274: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2527 { @@ -4962,7 +4966,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } - case 276: + case 275: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2537 { @@ -4974,7 +4978,7 @@ yydefault: // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } - case 277: + case 276: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2547 { @@ -4983,12 +4987,24 @@ yydefault: // save position yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + // save comments + yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + } + case 277: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php7/php7.y:2557 + { + yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + + // save position + yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2560 + // line internal/php7/php7.y:2570 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4997,13 +5013,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2567 + // line internal/php7/php7.y:2577 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2574 + // line internal/php7/php7.y:2584 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5019,7 +5035,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2588 + // line internal/php7/php7.y:2598 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5036,7 +5052,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2606 + // line internal/php7/php7.y:2616 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5045,13 +5061,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2613 + // line internal/php7/php7.y:2623 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2620 + // line internal/php7/php7.y:2630 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5066,7 +5082,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2636 + // line internal/php7/php7.y:2646 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5081,7 +5097,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2652 + // line internal/php7/php7.y:2662 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5090,31 +5106,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2659 + // line internal/php7/php7.y:2669 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2666 + // line internal/php7/php7.y:2676 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2673 + // line internal/php7/php7.y:2683 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2677 + // line internal/php7/php7.y:2687 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2684 + // line internal/php7/php7.y:2694 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5123,13 +5139,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2701 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2698 + // line internal/php7/php7.y:2708 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5147,7 +5163,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2717 + // line internal/php7/php7.y:2727 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5162,7 +5178,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2730 + // line internal/php7/php7.y:2740 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5174,7 +5190,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2753 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5191,7 +5207,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2758 + // line internal/php7/php7.y:2768 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5207,7 +5223,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2772 + // line internal/php7/php7.y:2782 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5220,7 +5236,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2783 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5234,7 +5250,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2795 + // line internal/php7/php7.y:2805 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5246,7 +5262,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2805 + // line internal/php7/php7.y:2815 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5259,7 +5275,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2816 + // line internal/php7/php7.y:2826 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5272,7 +5288,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2827 + // line internal/php7/php7.y:2837 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5285,7 +5301,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2838 + // line internal/php7/php7.y:2848 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5298,7 +5314,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2849 + // line internal/php7/php7.y:2859 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5311,7 +5327,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2860 + // line internal/php7/php7.y:2870 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5324,7 +5340,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2871 + // line internal/php7/php7.y:2881 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5337,7 +5353,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2882 + // line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5350,7 +5366,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2893 + // line internal/php7/php7.y:2903 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5363,7 +5379,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2904 + // line internal/php7/php7.y:2914 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5376,7 +5392,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2925 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5389,7 +5405,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2926 + // line internal/php7/php7.y:2936 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5402,7 +5418,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2937 + // line internal/php7/php7.y:2947 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5415,7 +5431,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2948 + // line internal/php7/php7.y:2958 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5428,7 +5444,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5440,7 +5456,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2979 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5453,7 +5469,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2980 + // line internal/php7/php7.y:2990 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5465,7 +5481,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2990 + // line internal/php7/php7.y:3000 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5478,7 +5494,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3001 + // line internal/php7/php7.y:3011 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5491,7 +5507,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3012 + // line internal/php7/php7.y:3022 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5504,7 +5520,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3033 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5517,7 +5533,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3034 + // line internal/php7/php7.y:3044 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5530,7 +5546,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3045 + // line internal/php7/php7.y:3055 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5543,7 +5559,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3056 + // line internal/php7/php7.y:3066 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5556,7 +5572,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3067 + // line internal/php7/php7.y:3077 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5569,7 +5585,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3078 + // line internal/php7/php7.y:3088 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5582,7 +5598,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3089 + // line internal/php7/php7.y:3099 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5595,7 +5611,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3100 + // line internal/php7/php7.y:3110 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5608,7 +5624,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3111 + // line internal/php7/php7.y:3121 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5637,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3132 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5650,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3133 + // line internal/php7/php7.y:3143 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5663,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3144 + // line internal/php7/php7.y:3154 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5676,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3155 + // line internal/php7/php7.y:3165 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5689,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3176 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5702,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3177 + // line internal/php7/php7.y:3187 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5698,7 +5714,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3187 + // line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5710,7 +5726,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3197 + // line internal/php7/php7.y:3207 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5722,7 +5738,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3207 + // line internal/php7/php7.y:3217 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5734,7 +5750,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3217 + // line internal/php7/php7.y:3227 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,7 +5763,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3228 + // line internal/php7/php7.y:3238 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5776,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3239 + // line internal/php7/php7.y:3249 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5789,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3250 + // line internal/php7/php7.y:3260 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5787,7 +5803,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3262 + // line internal/php7/php7.y:3272 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5800,7 +5816,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3273 + // line internal/php7/php7.y:3283 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5829,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3294 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5842,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3295 + // line internal/php7/php7.y:3305 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5855,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3306 + // line internal/php7/php7.y:3316 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5868,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3317 + // line internal/php7/php7.y:3327 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5881,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3328 + // line internal/php7/php7.y:3338 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -5878,13 +5894,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3339 + // line internal/php7/php7.y:3349 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3343 + // line internal/php7/php7.y:3353 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5898,7 +5914,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5912,7 +5928,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3367 + // line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5925,13 +5941,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3378 + // line internal/php7/php7.y:3388 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3382 + // line internal/php7/php7.y:3392 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5944,7 +5960,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3393 + // line internal/php7/php7.y:3403 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5957,7 +5973,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3404 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5970,7 +5986,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3415 + // line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5983,7 +5999,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3436 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5996,7 +6012,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3437 + // line internal/php7/php7.y:3447 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6009,7 +6025,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3448 + // line internal/php7/php7.y:3458 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6022,7 +6038,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3459 + // line internal/php7/php7.y:3469 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6042,7 +6058,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6054,13 +6070,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3487 + // line internal/php7/php7.y:3497 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3491 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6072,7 +6088,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3511 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6084,7 +6100,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3511 + // line internal/php7/php7.y:3521 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6096,7 +6112,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3521 + // line internal/php7/php7.y:3531 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6108,7 +6124,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3531 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6121,7 +6137,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3552 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6133,13 +6149,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3552 + // line internal/php7/php7.y:3562 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3556 + // line internal/php7/php7.y:3566 { yyVAL.node = yyDollar[2].node @@ -6160,7 +6176,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3577 + // line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6191,7 +6207,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3604 + // line internal/php7/php7.y:3614 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6217,25 +6233,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3634 + // line internal/php7/php7.y:3644 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3638 + // line internal/php7/php7.y:3648 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3645 + // line internal/php7/php7.y:3655 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3649 + // line internal/php7/php7.y:3659 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6249,7 +6265,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3664 + // line internal/php7/php7.y:3674 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6258,13 +6274,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3671 + // line internal/php7/php7.y:3681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3678 + // line internal/php7/php7.y:3688 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6278,7 +6294,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3690 + // line internal/php7/php7.y:3700 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6295,7 +6311,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3718 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6307,7 +6323,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3718 + // line internal/php7/php7.y:3728 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6320,7 +6336,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3729 + // line internal/php7/php7.y:3739 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6333,7 +6349,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3740 + // line internal/php7/php7.y:3750 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6345,7 +6361,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3763 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6357,31 +6373,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3763 + // line internal/php7/php7.y:3773 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3770 + // line internal/php7/php7.y:3780 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3774 + // line internal/php7/php7.y:3784 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3791 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3785 + // line internal/php7/php7.y:3795 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6394,13 +6410,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3809 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3803 + // line internal/php7/php7.y:3813 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6410,25 +6426,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3811 + // line internal/php7/php7.y:3821 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3828 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3822 + // line internal/php7/php7.y:3832 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3839 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6442,7 +6458,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3851 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6455,7 +6471,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3862 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6467,7 +6483,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3865 + // line internal/php7/php7.y:3875 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6479,7 +6495,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3885 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6491,7 +6507,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6503,7 +6519,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3895 + // line internal/php7/php7.y:3905 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6515,7 +6531,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3905 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6527,7 +6543,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3915 + // line internal/php7/php7.y:3925 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6539,7 +6555,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3925 + // line internal/php7/php7.y:3935 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6551,7 +6567,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3935 + // line internal/php7/php7.y:3945 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6563,7 +6579,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3945 + // line internal/php7/php7.y:3955 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6575,7 +6591,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3955 + // line internal/php7/php7.y:3965 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6587,7 +6603,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3965 + // line internal/php7/php7.y:3975 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6601,7 +6617,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6613,7 +6629,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3987 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6625,7 +6641,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3997 + // line internal/php7/php7.y:4007 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6637,19 +6653,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4007 + // line internal/php7/php7.y:4017 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4011 + // line internal/php7/php7.y:4021 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4028 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6661,7 +6677,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4028 + // line internal/php7/php7.y:4038 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6677,7 +6693,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4052 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6693,43 +6709,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4059 + // line internal/php7/php7.y:4069 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4073 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4070 + // line internal/php7/php7.y:4080 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4074 + // line internal/php7/php7.y:4084 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4081 + // line internal/php7/php7.y:4091 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4088 + // line internal/php7/php7.y:4098 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4092 + // line internal/php7/php7.y:4102 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6742,19 +6758,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4103 + // line internal/php7/php7.y:4113 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4110 + // line internal/php7/php7.y:4120 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4114 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6767,19 +6783,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4125 + // line internal/php7/php7.y:4135 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4132 + // line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4146 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6792,7 +6808,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4147 + // line internal/php7/php7.y:4157 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6805,7 +6821,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4158 + // line internal/php7/php7.y:4168 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6818,7 +6834,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4179 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6831,25 +6847,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4180 + // line internal/php7/php7.y:4190 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4197 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4191 + // line internal/php7/php7.y:4201 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4195 + // line internal/php7/php7.y:4205 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6862,7 +6878,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4219 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6876,7 +6892,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4231 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6890,7 +6906,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4233 + // line internal/php7/php7.y:4243 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6902,7 +6918,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4246 + // line internal/php7/php7.y:4256 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6915,7 +6931,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4257 + // line internal/php7/php7.y:4267 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6928,13 +6944,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4271 + // line internal/php7/php7.y:4281 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4285 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6947,7 +6963,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4286 + // line internal/php7/php7.y:4296 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6960,7 +6976,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4297 + // line internal/php7/php7.y:4307 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6973,7 +6989,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4308 + // line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6986,7 +7002,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4319 + // line internal/php7/php7.y:4329 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6999,7 +7015,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4343 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7011,7 +7027,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4343 + // line internal/php7/php7.y:4353 { yyVAL.node = yyDollar[2].node @@ -7021,13 +7037,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4351 + // line internal/php7/php7.y:4361 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4358 + // line internal/php7/php7.y:4368 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7039,7 +7055,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4378 { yyVAL.node = yyDollar[2].node @@ -7049,31 +7065,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4376 + // line internal/php7/php7.y:4386 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4383 + // line internal/php7/php7.y:4393 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4390 + // line internal/php7/php7.y:4400 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4394 + // line internal/php7/php7.y:4404 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4401 + // line internal/php7/php7.y:4411 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7086,7 +7102,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4412 + // line internal/php7/php7.y:4422 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7096,7 +7112,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4423 + // line internal/php7/php7.y:4433 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7109,7 +7125,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4434 + // line internal/php7/php7.y:4444 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7121,7 +7137,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4444 + // line internal/php7/php7.y:4454 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7137,7 +7153,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4458 + // line internal/php7/php7.y:4468 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7151,7 +7167,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4480 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7163,7 +7179,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4480 + // line internal/php7/php7.y:4490 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7182,7 +7198,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4497 + // line internal/php7/php7.y:4507 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7199,13 +7215,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4515 + // line internal/php7/php7.y:4525 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4519 + // line internal/php7/php7.y:4529 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7218,13 +7234,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4530 + // line internal/php7/php7.y:4540 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4534 + // line internal/php7/php7.y:4544 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7237,7 +7253,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4548 + // line internal/php7/php7.y:4558 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7251,7 +7267,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4560 + // line internal/php7/php7.y:4570 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7268,7 +7284,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4575 + // line internal/php7/php7.y:4585 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7287,7 +7303,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4592 + // line internal/php7/php7.y:4602 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7302,7 +7318,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4605 + // line internal/php7/php7.y:4615 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7319,7 +7335,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4620 + // line internal/php7/php7.y:4630 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7338,7 +7354,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4637 + // line internal/php7/php7.y:4647 { yyVAL.node = yyDollar[2].node @@ -7348,7 +7364,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4648 + // line internal/php7/php7.y:4658 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7360,7 +7376,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4658 + // line internal/php7/php7.y:4668 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7377,7 +7393,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4673 + // line internal/php7/php7.y:4683 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7403,7 +7419,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4697 + // line internal/php7/php7.y:4707 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7417,7 +7433,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4712 + // line internal/php7/php7.y:4722 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7435,7 +7451,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4728 + // line internal/php7/php7.y:4738 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -7451,7 +7467,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4752 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7463,7 +7479,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4752 + // line internal/php7/php7.y:4762 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7475,7 +7491,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4762 + // line internal/php7/php7.y:4772 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -7491,7 +7507,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4776 + // line internal/php7/php7.y:4786 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7503,7 +7519,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4786 + // line internal/php7/php7.y:4796 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7515,13 +7531,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4799 + // line internal/php7/php7.y:4809 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4803 + // line internal/php7/php7.y:4813 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7530,7 +7546,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4823 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index f6589cd..33c558c 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -350,57 +350,59 @@ top_statement_list: namespace_name: T_STRING { - namePart := &ast.NameNamePart{ast.Node{}, $1.Value} - $$ = []ast.Vertex{namePart} - - // save position - namePart.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(namePart, token.Start, $1.SkippedTokens) + $$ = []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + }, + } } | namespace_name T_NS_SEPARATOR T_STRING { - namePart := &ast.NameNamePart{ast.Node{}, $3.Value} - $$ = append($1, namePart) - - // save position - namePart.GetNode().Position = position.NewTokenPosition($3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(namePart, token.Start, $3.SkippedTokens) + $$ = append($1, &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $3), + }, + NsSeparatorTkn: $2, + StringTkn: $3, + Value: $3.Value, + }) } ; name: namespace_name { - $$ = &ast.NameName{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeListPosition($1) + $$ = &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + } } - | T_NAMESPACE T_NS_SEPARATOR namespace_name + | T_NAMESPACE T_NS_SEPARATOR namespace_name { - $$ = &ast.NameRelative{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) + $$ = &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + } } - | T_NS_SEPARATOR namespace_name + | T_NS_SEPARATOR namespace_name { - $$ = &ast.NameFullyQualified{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + } } ; @@ -443,45 +445,49 @@ top_statement: } | T_NAMESPACE namespace_name ';' { - name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtNamespace{ast.Node{}, name, nil} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + NsTkn: $1, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + SemiColonTkn: $3, + } } | T_NAMESPACE namespace_name '{' top_statement_list '}' { - name := &ast.NameName{ast.Node{}, $2} - $$ = &ast.StmtNamespace{ast.Node{}, name, $4} - - // save position - name.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).MoveFreeFloating($2[0], name) - yylex.(*Parser).setFreeFloating(name, token.End, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $5.SkippedTokens) + $$ = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $5), + }, + NsTkn: $1, + Name: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Parts: $2, + }, + OpenCurlyBracket: $3, + Stmts: $4, + CloseCurlyBracket: $5, + } } | T_NAMESPACE '{' top_statement_list '}' { - $$ = &ast.StmtNamespace{ast.Node{}, nil, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Namespace, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) + $$ = &ast.StmtNamespace{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + NsTkn: $1, + OpenCurlyBracket: $2, + Stmts: $3, + CloseCurlyBracket: $4, + } } | T_USE mixed_group_use_declaration ';' { @@ -1222,10 +1228,12 @@ catch_name_list: } | catch_name_list '|' name { + switch n := lastNode($1).(type) { + case *ast.NameName: n.ListSeparatorTkn = $2 + case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 + case *ast.NameRelative: n.ListSeparatorTkn = $2 + } $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; @@ -2251,10 +2259,12 @@ name_list: } | name_list ',' name { + switch n := lastNode($1).(type) { + case *ast.NameName: n.ListSeparatorTkn = $2 + case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 + case *ast.NameRelative: n.ListSeparatorTkn = $2 + } $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) } ; diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 00d02cc..d717743 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -6962,7 +6962,7 @@ func TestPhp7(t *testing.T) { EndPos: 2525, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 115, @@ -6995,7 +6995,7 @@ func TestPhp7(t *testing.T) { EndPos: 2542, }, }, - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Node: ast.Node{ Position: &position.Position{ StartLine: 116, @@ -17695,7 +17695,7 @@ func TestPhp7(t *testing.T) { Position: &position.Position{ StartLine: 318, EndLine: 318, - StartPos: 5212, + StartPos: 5211, EndPos: 5215, }, }, diff --git a/pkg/ast/node.go b/pkg/ast/node.go index d7dd01d..d64da63 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -603,8 +603,12 @@ func (n *StmtLabel) Accept(v NodeVisitor) { // StmtNamespace node type StmtNamespace struct { Node - NamespaceName Vertex - Stmts []Vertex + NsTkn *token.Token + Name Vertex + OpenCurlyBracket *token.Token + Stmts []Vertex + CloseCurlyBracket *token.Token + SemiColonTkn *token.Token } func (n *StmtNamespace) Accept(v NodeVisitor) { @@ -1840,7 +1844,8 @@ func (n *ExprBinarySpaceship) Accept(v NodeVisitor) { type NameName struct { Node - Parts []Vertex + Parts []Vertex + ListSeparatorTkn *token.Token } func (n *NameName) Accept(v NodeVisitor) { @@ -1849,7 +1854,9 @@ func (n *NameName) Accept(v NodeVisitor) { type NameFullyQualified struct { Node - Parts []Vertex + NsSeparatorTkn *token.Token + Parts []Vertex + ListSeparatorTkn *token.Token } func (n *NameFullyQualified) Accept(v NodeVisitor) { @@ -1858,7 +1865,10 @@ func (n *NameFullyQualified) Accept(v NodeVisitor) { type NameRelative struct { Node - Parts []Vertex + NsTkn *token.Token + NsSeparatorTkn *token.Token + Parts []Vertex + ListSeparatorTkn *token.Token } func (n *NameRelative) Accept(v NodeVisitor) { @@ -1867,7 +1877,9 @@ func (n *NameRelative) Accept(v NodeVisitor) { type NameNamePart struct { Node - Value []byte + NsSeparatorTkn *token.Token + StringTkn *token.Token + Value []byte } func (n *NameNamePart) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 20eecf3..7e41a44 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -845,10 +845,10 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - if nn.NamespaceName != nil { - t.visitor.Enter("NamespaceName", true) - t.Traverse(nn.NamespaceName) - t.visitor.Leave("NamespaceName", true) + if nn.Name != nil { + t.visitor.Enter("Name", true) + t.Traverse(nn.Name) + t.visitor.Leave("Name", true) } if nn.Stmts != nil { t.visitor.Enter("Stmts", false) diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 7101b86..adba189 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -33,3 +33,30 @@ func (v *FilterTokens) StmtUseDeclaration(n *ast.StmtUseDeclaration) { n.AsTkn = nil n.CommaTkn = nil } + +func (v *FilterTokens) NameNamePart(n *ast.NameNamePart) { + n.NsSeparatorTkn = nil + n.StringTkn = nil +} + +func (v *FilterTokens) NameName(n *ast.NameName) { + n.ListSeparatorTkn = nil +} + +func (v *FilterTokens) NameFullyQualified(n *ast.NameFullyQualified) { + n.NsSeparatorTkn = nil + n.ListSeparatorTkn = nil +} + +func (v *FilterTokens) NameRelative(n *ast.NameRelative) { + n.NsTkn = nil + n.NsSeparatorTkn = nil + n.ListSeparatorTkn = nil +} + +func (v *FilterTokens) StmtNamespace(n *ast.StmtNamespace) { + n.NsTkn = nil + n.OpenCurlyBracket = nil + n.CloseCurlyBracket = nil + n.SemiColonTkn = nil +} diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index 34c92c7..fb5659d 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -37,10 +37,10 @@ func (nsr *NamespaceResolver) EnterNode(n ast.Vertex) bool { } func (nsr *NamespaceResolver) StmtNamespace(n *ast.StmtNamespace) { - if n.NamespaceName == nil { + if n.Name == nil { nsr.Namespace = NewNamespace("") } else { - NSParts := n.NamespaceName.(*ast.NameName).Parts + NSParts := n.Name.(*ast.NameName).Parts nsr.Namespace = NewNamespace(concatNameParts(NSParts)) } } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 34a31f7..5b01ecc 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -605,7 +605,7 @@ func TestResolveConstantsName(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: nameAB, + Name: nameAB, }, &ast.StmtConstList{ Consts: []ast.Vertex{ @@ -649,7 +649,7 @@ func TestResolveNamespaces(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: namespaceAB, + Name: namespaceAB, }, &ast.StmtConstList{ Consts: []ast.Vertex{ @@ -666,7 +666,7 @@ func TestResolveNamespaces(t *testing.T) { Stmts: []ast.Vertex{}, }, &ast.StmtNamespace{ - NamespaceName: namespaceCD, + Name: namespaceCD, Stmts: []ast.Vertex{ &ast.StmtUse{ UseDeclarations: []ast.Vertex{ @@ -749,7 +749,7 @@ func TestDoNotResolveReservedConstants(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: namespaceName, + Name: namespaceName, }, &ast.StmtExpression{ Expr: &ast.ExprConstFetch{ @@ -877,7 +877,7 @@ func TestDoNotResolveReservedNames(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Parts: []ast.Vertex{ &ast.NameNamePart{Value: []byte("Foo")}, }, @@ -955,7 +955,7 @@ func TestDoNotResolveReservedSpecialNames(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Parts: []ast.Vertex{ &ast.NameNamePart{Value: []byte("Foo")}, }, @@ -1007,7 +1007,7 @@ func TestResolvePropertyTypeName(t *testing.T) { stmts := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Parts: []ast.Vertex{ &ast.NameNamePart{Value: []byte("Foo")}, }, diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 1aab5d1..fca19fd 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1931,9 +1931,9 @@ func (p *PrettyPrinter) printStmtNamespace(n ast.Vertex) { io.WriteString(p.w, "namespace") - if nn.NamespaceName != nil { + if nn.Name != nil { io.WriteString(p.w, " ") - p.Print(nn.NamespaceName) + p.Print(nn.Name) } if nn.Stmts != nil { diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index 199bc2f..c457cb8 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -22,7 +22,7 @@ abstract class Bar extends Baz rootNode := &ast.Root{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: &ast.NameName{ + Name: &ast.NameName{ Parts: []ast.Vertex{ &ast.NameNamePart{Value: []byte("Foo")}, }, @@ -3454,7 +3454,7 @@ func TestPrintNamespace(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtNamespace{ - NamespaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, }) expected := `namespace Foo;` @@ -3472,7 +3472,7 @@ func TestPrintNamespaceWithStmts(t *testing.T) { p.Print(&ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - NamespaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 8d73f1b..0e8a0dd 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -55,6 +55,16 @@ func (p *Printer) joinPrint(glue string, nn []ast.Vertex) { } } +func (p *Printer) joinPrintRefactored(glue string, nn []ast.Vertex) { + for k, n := range nn { + if k > 0 { + p.bufStart = glue + } + + p.Print(n) + } +} + func (p *Printer) printNodes(nn []ast.Vertex) { for _, n := range nn { p.Print(n) @@ -558,50 +568,36 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { // name -func (p *Printer) printNameNamePart(n ast.Vertex) { - nn := n.(*ast.NameNamePart) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - io.WriteString(p.w, string(nn.Value)) - - p.printFreeFloating(nn, token.End) +func (p *Printer) printNameNamePart(n *ast.NameNamePart) { + p.printToken(n.NsSeparatorTkn, "") + p.printToken(n.StringTkn, string(n.Value)) } -func (p *Printer) printNameName(n ast.Vertex) { - nn := n.(*ast.NameName) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printNameName(n *ast.NameName) { + p.printFreeFloating(n, token.Start) - p.joinPrint("\\", nn.Parts) + p.joinPrintRefactored("\\", n.Parts) - p.printFreeFloating(nn, token.End) + p.printToken(n.ListSeparatorTkn, "") } -func (p *Printer) printNameFullyQualified(n ast.Vertex) { - nn := n.(*ast.NameFullyQualified) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" +func (p *Printer) printNameFullyQualified(n *ast.NameFullyQualified) { + p.printFreeFloating(n, token.Start) + p.printToken(n.NsSeparatorTkn, "\\") - io.WriteString(p.w, "\\") - p.joinPrint("\\", nn.Parts) + p.joinPrintRefactored("\\", n.Parts) - p.printFreeFloating(nn, token.End) + p.printToken(n.ListSeparatorTkn, "") } -func (p *Printer) printNameRelative(n ast.Vertex) { - nn := n.(*ast.NameRelative) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" +func (p *Printer) printNameRelative(n *ast.NameRelative) { + p.printFreeFloating(n, token.Start) + p.printToken(n.NsTkn, "namespace") + p.printToken(n.NsSeparatorTkn, "\\") - io.WriteString(p.w, "namespace") - p.printFreeFloating(nn, token.Namespace) + p.joinPrintRefactored("\\", n.Parts) - for _, part := range nn.Parts { - io.WriteString(p.w, "\\") - p.Print(part) - } - - p.printFreeFloating(nn, token.End) + p.printToken(n.ListSeparatorTkn, "") } // scalar @@ -2299,7 +2295,9 @@ func (p *Printer) printStmtCatch(n ast.Vertex) { io.WriteString(p.w, "catch") p.printFreeFloating(nn, token.Catch) io.WriteString(p.w, "(") - p.joinPrint("|", nn.Types) + + p.joinPrintRefactored("|", nn.Types) + p.Print(nn.Var) p.printFreeFloating(nn, token.Var) io.WriteString(p.w, ")") @@ -2409,10 +2407,9 @@ func (p *Printer) printStmtClass(n ast.Vertex) { io.WriteString(p.w, " ") } io.WriteString(p.w, "implements") - if nn.Implements.InterfaceNames[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Implements.InterfaceNames) + p.bufStart = " " + p.joinPrintRefactored(",", nn.Implements.InterfaceNames) + } p.printFreeFloating(nn, token.Name) @@ -2896,10 +2893,8 @@ func (p *Printer) printStmtInterface(n ast.Vertex) { io.WriteString(p.w, " ") } io.WriteString(p.w, "extends") - if nn.Extends.InterfaceNames[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Extends.InterfaceNames) + p.bufStart = " " + p.joinPrintRefactored(",", nn.Extends.InterfaceNames) } p.printFreeFloating(nn, token.Name) @@ -2923,32 +2918,28 @@ func (p *Printer) printStmtLabel(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtNamespace(n ast.Vertex) { - nn := n.(*ast.StmtNamespace) - p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "namespace") +func (p *Printer) printStmtNamespace(n *ast.StmtNamespace) { + p.printToken(n.NsTkn, "namespace") - if nn.NamespaceName != nil { - if nn.NamespaceName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.NamespaceName) + if n.Name != nil { + p.bufStart = " " + p.Print(n.Name) } - if nn.Stmts != nil { - p.printFreeFloating(nn, token.Namespace) - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") - } else { - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } + if n.Stmts != nil { + p.printToken(n.OpenCurlyBracket, "{") + p.printNodes(n.Stmts) + p.printToken(n.CloseCurlyBracket, "}") + return } - p.printFreeFloating(nn, token.End) + if n.OpenCurlyBracket != nil { + p.printToken(n.OpenCurlyBracket, "{") + p.printToken(n.CloseCurlyBracket, "}") + return + } + + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtNop(n ast.Vertex) { @@ -3202,10 +3193,8 @@ func (p *Printer) printStmtTraitUse(n ast.Vertex) { p.printFreeFloating(nn, token.Start) io.WriteString(p.w, "use") - if nn.Traits[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Traits) + p.bufStart = " " + p.joinPrintRefactored(",", nn.Traits) p.Print(nn.TraitAdaptationList) @@ -3276,11 +3265,13 @@ func (p *Printer) printStmtUnset(n ast.Vertex) { func (p *Printer) printStmtUse(n *ast.StmtUse) { p.printToken(n.UseTkn, "use") - p.bufStart = " " - p.Print(n.Type) + if n.Type != nil { + p.bufStart = " " + p.Print(n.Type) + } p.bufStart = " " - p.joinPrint(",", n.UseDeclarations) + p.joinPrintRefactored(",", n.UseDeclarations) p.printToken(n.SemiColonTkn, ";") } @@ -3298,16 +3289,7 @@ func (p *Printer) printStmtGroupUse(n *ast.StmtGroupUse) { p.printToken(n.NsSeparatorTkn, "\\") p.printToken(n.OpenCurlyBracketTkn, "{") - for k, v := range n.UseDeclarations { - p.Print(v) - var def string - if k != len(n.UseDeclarations)-1 { - def = "," - } - if decl, ok := v.(*ast.StmtUseDeclaration); ok { - p.printToken(decl.CommaTkn, def) - } - } + p.joinPrintRefactored(",", n.UseDeclarations) p.printToken(n.CloseCurlyBracketTkn, "}") p.printToken(n.SemiColonTkn, ";") @@ -3325,6 +3307,7 @@ func (p *Printer) printStmtUseDeclaration(n *ast.StmtUseDeclaration) { p.Print(n.Use) if n.Alias == nil { + p.printToken(n.CommaTkn, "") return } @@ -3333,6 +3316,8 @@ func (p *Printer) printStmtUseDeclaration(n *ast.StmtUseDeclaration) { p.bufStart = " " p.Print(n.Alias) + + p.printToken(n.CommaTkn, "") } func (p *Printer) printStmtWhile(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 60cdc39..17cef65 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -45,8 +45,8 @@ func TestParseAndPrintPhp5Root(t *testing.T) { } func TestParseAndPrintPhp5Identifier(t *testing.T) { - - src := ` Date: Mon, 24 Aug 2020 21:41:06 +0300 Subject: [PATCH 048/140] [refactoring] update ast structure of "HaltCompiler" node --- internal/php5/php5.go | 1056 ++++++++++++----------- internal/php5/php5.y | 34 +- internal/php7/php7.go | 1022 +++++++++++----------- internal/php7/php7.y | 34 +- pkg/ast/node.go | 4 + pkg/ast/visitor/filter_tokens.go | 7 + pkg/printer/printer.go | 12 +- pkg/printer/printer_parsed_php5_test.go | 3 +- pkg/printer/printer_parsed_php7_test.go | 3 +- 9 files changed, 1097 insertions(+), 1078 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index b074c96..926e1be 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6126 +// line internal/php5/php5.y:6128 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2397,18 +2397,19 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:346 { - yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) + yyVAL.node = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + HaltCompilerTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + CloseParenthesisTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, + } } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:357 +// line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2426,7 +2427,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:373 +// line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2446,7 +2447,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:391 +// line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2460,7 +2461,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:403 +// line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2473,7 +2474,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:414 +// line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2492,7 +2493,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:431 +// line internal/php5/php5.y:432 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2511,7 +2512,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:448 +// line internal/php5/php5.y:449 { yyVAL.node = yyDollar[1].node @@ -2524,7 +2525,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:462 +// line internal/php5/php5.y:463 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2532,13 +2533,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:468 +// line internal/php5/php5.y:469 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:475 +// line internal/php5/php5.y:476 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2554,7 +2555,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:489 +// line internal/php5/php5.y:490 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2577,7 +2578,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:510 +// line internal/php5/php5.y:511 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2594,7 +2595,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:525 +// line internal/php5/php5.y:526 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2618,7 +2619,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:550 +// line internal/php5/php5.y:551 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2626,13 +2627,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:556 +// line internal/php5/php5.y:557 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:563 +// line internal/php5/php5.y:564 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2648,7 +2649,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:577 +// line internal/php5/php5.y:578 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2671,7 +2672,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:598 +// line internal/php5/php5.y:599 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2688,7 +2689,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:613 +// line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2712,7 +2713,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:638 +// line internal/php5/php5.y:639 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2720,13 +2721,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:644 +// line internal/php5/php5.y:645 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:651 +// line internal/php5/php5.y:652 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2742,7 +2743,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:665 +// line internal/php5/php5.y:666 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2765,7 +2766,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:686 +// line internal/php5/php5.y:687 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2782,7 +2783,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:701 +// line internal/php5/php5.y:702 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2806,7 +2807,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:726 +// line internal/php5/php5.y:727 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -2827,7 +2828,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:745 +// line internal/php5/php5.y:746 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -2846,7 +2847,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:765 +// line internal/php5/php5.y:766 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2859,57 +2860,58 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:776 +// line internal/php5/php5.y:777 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:784 +// line internal/php5/php5.y:785 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:789 +// line internal/php5/php5.y:790 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:793 +// line internal/php5/php5.y:794 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:797 +// line internal/php5/php5.y:798 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:801 +// line internal/php5/php5.y:802 { - yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) + yyVAL.node = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + HaltCompilerTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + CloseParenthesisTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, + } } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:816 +// line internal/php5/php5.y:818 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:820 +// line internal/php5/php5.y:822 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2924,7 +2926,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:836 +// line internal/php5/php5.y:838 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2937,7 +2939,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:847 +// line internal/php5/php5.y:849 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -2955,7 +2957,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:863 +// line internal/php5/php5.y:865 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -2980,7 +2982,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:886 +// line internal/php5/php5.y:888 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -2999,7 +3001,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:903 +// line internal/php5/php5.y:905 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3014,7 +3016,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:916 +// line internal/php5/php5.y:918 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3041,7 +3043,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:941 +// line internal/php5/php5.y:943 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3062,7 +3064,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:960 +// line internal/php5/php5.y:962 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3076,7 +3078,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:972 +// line internal/php5/php5.y:974 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3090,7 +3092,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:984 +// line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3104,7 +3106,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:996 +// line internal/php5/php5.y:998 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3118,7 +3120,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1008 +// line internal/php5/php5.y:1010 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3132,7 +3134,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1020 +// line internal/php5/php5.y:1022 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3146,7 +3148,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1032 +// line internal/php5/php5.y:1034 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3160,7 +3162,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1044 +// line internal/php5/php5.y:1046 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3174,7 +3176,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1056 +// line internal/php5/php5.y:1058 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3188,7 +3190,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1068 +// line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3202,7 +3204,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1080 +// line internal/php5/php5.y:1082 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3217,7 +3219,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1093 +// line internal/php5/php5.y:1095 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3229,7 +3231,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1103 +// line internal/php5/php5.y:1105 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3243,7 +3245,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1115 +// line internal/php5/php5.y:1117 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3259,7 +3261,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1129 +// line internal/php5/php5.y:1131 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3300,7 +3302,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1167 +// line internal/php5/php5.y:1169 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3341,7 +3343,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1205 +// line internal/php5/php5.y:1207 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3356,7 +3358,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1218 +// line internal/php5/php5.y:1220 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3369,7 +3371,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1229 +// line internal/php5/php5.y:1231 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3387,7 +3389,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1245 +// line internal/php5/php5.y:1247 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3401,7 +3403,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1257 +// line internal/php5/php5.y:1259 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3418,13 +3420,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1275 +// line internal/php5/php5.y:1277 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1279 +// line internal/php5/php5.y:1281 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3446,13 +3448,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1302 +// line internal/php5/php5.y:1304 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1306 +// line internal/php5/php5.y:1308 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3466,31 +3468,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1321 +// line internal/php5/php5.y:1323 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1325 +// line internal/php5/php5.y:1327 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1332 +// line internal/php5/php5.y:1334 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1336 +// line internal/php5/php5.y:1338 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1343 +// line internal/php5/php5.y:1345 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3511,13 +3513,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1365 +// line internal/php5/php5.y:1367 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1369 +// line internal/php5/php5.y:1371 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3526,49 +3528,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1379 +// line internal/php5/php5.y:1381 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1386 +// line internal/php5/php5.y:1388 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1393 +// line internal/php5/php5.y:1395 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1400 +// line internal/php5/php5.y:1402 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1404 +// line internal/php5/php5.y:1406 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1411 +// line internal/php5/php5.y:1413 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1415 +// line internal/php5/php5.y:1417 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1422 +// line internal/php5/php5.y:1424 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3592,7 +3594,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1447 +// line internal/php5/php5.y:1449 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3620,7 +3622,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1473 +// line internal/php5/php5.y:1475 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3637,7 +3639,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1492 +// line internal/php5/php5.y:1494 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3649,7 +3651,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1502 +// line internal/php5/php5.y:1504 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3664,7 +3666,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1515 +// line internal/php5/php5.y:1517 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3676,7 +3678,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1525 +// line internal/php5/php5.y:1527 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3691,13 +3693,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1541 +// line internal/php5/php5.y:1543 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1545 +// line internal/php5/php5.y:1547 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3709,19 +3711,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1558 +// line internal/php5/php5.y:1560 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1565 +// line internal/php5/php5.y:1567 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1569 +// line internal/php5/php5.y:1571 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3733,13 +3735,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1582 +// line internal/php5/php5.y:1584 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1586 +// line internal/php5/php5.y:1588 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3751,13 +3753,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1599 +// line internal/php5/php5.y:1601 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1603 +// line internal/php5/php5.y:1605 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3771,13 +3773,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1615 +// line internal/php5/php5.y:1617 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1619 +// line internal/php5/php5.y:1621 { yyVAL.node = yyDollar[2].node @@ -3786,13 +3788,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1629 +// line internal/php5/php5.y:1631 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1633 +// line internal/php5/php5.y:1635 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3804,7 +3806,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1643 +// line internal/php5/php5.y:1645 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3818,7 +3820,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1658 +// line internal/php5/php5.y:1660 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3827,7 +3829,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1665 +// line internal/php5/php5.y:1667 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3844,7 +3846,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1683 +// line internal/php5/php5.y:1685 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3853,7 +3855,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1690 +// line internal/php5/php5.y:1692 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3870,7 +3872,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1709 +// line internal/php5/php5.y:1711 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3879,7 +3881,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1716 +// line internal/php5/php5.y:1718 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3896,7 +3898,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1735 +// line internal/php5/php5.y:1737 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -3912,7 +3914,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1749 +// line internal/php5/php5.y:1751 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -3929,7 +3931,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1768 +// line internal/php5/php5.y:1770 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3944,7 +3946,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1781 +// line internal/php5/php5.y:1783 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3960,7 +3962,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1795 +// line internal/php5/php5.y:1797 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -3977,7 +3979,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1810 +// line internal/php5/php5.y:1812 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -3996,13 +3998,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1831 +// line internal/php5/php5.y:1833 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1835 +// line internal/php5/php5.y:1837 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4017,7 +4019,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1848 +// line internal/php5/php5.y:1850 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4032,19 +4034,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1865 +// line internal/php5/php5.y:1867 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1869 +// line internal/php5/php5.y:1871 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1877 +// line internal/php5/php5.y:1879 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4053,7 +4055,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1884 +// line internal/php5/php5.y:1886 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4070,13 +4072,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1904 +// line internal/php5/php5.y:1906 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1908 +// line internal/php5/php5.y:1910 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4089,13 +4091,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1923 +// line internal/php5/php5.y:1925 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1927 +// line internal/php5/php5.y:1929 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4113,13 +4115,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1947 +// line internal/php5/php5.y:1949 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1951 +// line internal/php5/php5.y:1953 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4131,13 +4133,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1965 +// line internal/php5/php5.y:1967 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1969 +// line internal/php5/php5.y:1971 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4154,25 +4156,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1988 +// line internal/php5/php5.y:1990 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1992 +// line internal/php5/php5.y:1994 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1999 +// line internal/php5/php5.y:2001 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2003 +// line internal/php5/php5.y:2005 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4181,7 +4183,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2013 +// line internal/php5/php5.y:2015 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4217,7 +4219,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2047 +// line internal/php5/php5.y:2049 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4254,13 +4256,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2086 +// line internal/php5/php5.y:2088 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2090 +// line internal/php5/php5.y:2092 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4272,7 +4274,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2100 +// line internal/php5/php5.y:2102 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4284,13 +4286,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2110 +// line internal/php5/php5.y:2112 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2118 +// line internal/php5/php5.y:2120 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4303,7 +4305,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2129 +// line internal/php5/php5.y:2131 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4316,7 +4318,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2140 +// line internal/php5/php5.y:2142 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4331,13 +4333,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2157 +// line internal/php5/php5.y:2159 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2161 +// line internal/php5/php5.y:2163 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4346,7 +4348,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2171 +// line internal/php5/php5.y:2173 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4358,7 +4360,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2181 +// line internal/php5/php5.y:2183 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4370,7 +4372,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2191 +// line internal/php5/php5.y:2193 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4382,7 +4384,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2201 +// line internal/php5/php5.y:2203 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4394,7 +4396,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2214 +// line internal/php5/php5.y:2216 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4403,13 +4405,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2221 +// line internal/php5/php5.y:2223 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2229 +// line internal/php5/php5.y:2231 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4423,7 +4425,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2241 +// line internal/php5/php5.y:2243 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4435,7 +4437,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2251 +// line internal/php5/php5.y:2253 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4449,7 +4451,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2267 +// line internal/php5/php5.y:2269 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4467,7 +4469,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2283 +// line internal/php5/php5.y:2285 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4486,7 +4488,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2300 +// line internal/php5/php5.y:2302 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4503,7 +4505,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2315 +// line internal/php5/php5.y:2317 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4521,19 +4523,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2335 +// line internal/php5/php5.y:2337 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2339 +// line internal/php5/php5.y:2341 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2347 +// line internal/php5/php5.y:2349 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4547,7 +4549,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2359 +// line internal/php5/php5.y:2361 { yyVAL.node = yyDollar[1].node @@ -4560,13 +4562,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2370 +// line internal/php5/php5.y:2372 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2374 +// line internal/php5/php5.y:2376 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4597,7 +4599,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2406 +// line internal/php5/php5.y:2408 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4609,13 +4611,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2419 +// line internal/php5/php5.y:2421 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2423 +// line internal/php5/php5.y:2425 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4629,7 +4631,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2435 +// line internal/php5/php5.y:2437 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4641,7 +4643,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2445 +// line internal/php5/php5.y:2447 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4653,31 +4655,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2458 +// line internal/php5/php5.y:2460 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2462 +// line internal/php5/php5.y:2464 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2469 +// line internal/php5/php5.y:2471 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2473 +// line internal/php5/php5.y:2475 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2480 +// line internal/php5/php5.y:2482 { yyVAL.node = yyDollar[1].node @@ -4687,7 +4689,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2488 +// line internal/php5/php5.y:2490 { yyVAL.node = yyDollar[1].node @@ -4697,7 +4699,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2499 +// line internal/php5/php5.y:2501 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4710,13 +4712,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2513 +// line internal/php5/php5.y:2515 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2517 +// line internal/php5/php5.y:2519 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4725,7 +4727,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2527 +// line internal/php5/php5.y:2529 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4739,13 +4741,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2541 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2546 +// line internal/php5/php5.y:2548 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4761,7 +4763,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2563 +// line internal/php5/php5.y:2565 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4777,7 +4779,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2577 +// line internal/php5/php5.y:2579 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4790,19 +4792,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2591 +// line internal/php5/php5.y:2593 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2595 +// line internal/php5/php5.y:2597 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2602 +// line internal/php5/php5.y:2604 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4815,7 +4817,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2613 +// line internal/php5/php5.y:2615 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4828,13 +4830,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2627 +// line internal/php5/php5.y:2629 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2631 +// line internal/php5/php5.y:2633 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4847,31 +4849,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2645 +// line internal/php5/php5.y:2647 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2649 +// line internal/php5/php5.y:2651 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2656 +// line internal/php5/php5.y:2658 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2660 +// line internal/php5/php5.y:2662 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2667 +// line internal/php5/php5.y:2669 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4883,7 +4885,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2677 +// line internal/php5/php5.y:2679 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4895,7 +4897,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2687 +// line internal/php5/php5.y:2689 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4907,7 +4909,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2697 +// line internal/php5/php5.y:2699 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4919,7 +4921,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2707 +// line internal/php5/php5.y:2709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4931,7 +4933,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2717 +// line internal/php5/php5.y:2719 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4943,7 +4945,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2730 +// line internal/php5/php5.y:2732 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4961,7 +4963,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2746 +// line internal/php5/php5.y:2748 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4980,7 +4982,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2763 +// line internal/php5/php5.y:2765 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4997,7 +4999,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2778 +// line internal/php5/php5.y:2780 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5015,7 +5017,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2797 +// line internal/php5/php5.y:2799 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} @@ -5036,7 +5038,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2816 +// line internal/php5/php5.y:2818 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} @@ -5054,7 +5056,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2835 +// line internal/php5/php5.y:2837 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5063,25 +5065,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2842 +// line internal/php5/php5.y:2844 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2850 +// line internal/php5/php5.y:2852 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2854 +// line internal/php5/php5.y:2856 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2861 +// line internal/php5/php5.y:2863 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5090,25 +5092,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2868 +// line internal/php5/php5.y:2870 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2875 +// line internal/php5/php5.y:2877 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2879 +// line internal/php5/php5.y:2881 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2886 +// line internal/php5/php5.y:2888 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5122,7 +5124,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2898 +// line internal/php5/php5.y:2900 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5136,37 +5138,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2913 +// line internal/php5/php5.y:2915 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2917 +// line internal/php5/php5.y:2919 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2921 +// line internal/php5/php5.y:2923 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2928 +// line internal/php5/php5.y:2930 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2932 +// line internal/php5/php5.y:2934 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2939 +// line internal/php5/php5.y:2941 { if yyDollar[3].node != nil { @@ -5182,7 +5184,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2956 +// line internal/php5/php5.y:2958 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5199,7 +5201,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2971 +// line internal/php5/php5.y:2973 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5212,7 +5214,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2982 +// line internal/php5/php5.y:2984 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5226,7 +5228,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2994 +// line internal/php5/php5.y:2996 { var _new *ast.ExprNew @@ -5253,7 +5255,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3019 +// line internal/php5/php5.y:3021 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5265,7 +5267,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3029 +// line internal/php5/php5.y:3031 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5277,7 +5279,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3039 +// line internal/php5/php5.y:3041 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5290,7 +5292,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3050 +// line internal/php5/php5.y:3052 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5303,7 +5305,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3061 +// line internal/php5/php5.y:3063 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5316,7 +5318,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3072 +// line internal/php5/php5.y:3074 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5329,7 +5331,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3085 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5342,7 +5344,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3094 +// line internal/php5/php5.y:3096 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5355,7 +5357,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3105 +// line internal/php5/php5.y:3107 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5368,7 +5370,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3116 +// line internal/php5/php5.y:3118 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5381,7 +5383,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3127 +// line internal/php5/php5.y:3129 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5394,7 +5396,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3138 +// line internal/php5/php5.y:3140 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5407,7 +5409,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3149 +// line internal/php5/php5.y:3151 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5420,7 +5422,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3160 +// line internal/php5/php5.y:3162 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5433,7 +5435,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3171 +// line internal/php5/php5.y:3173 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5445,7 +5447,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3181 +// line internal/php5/php5.y:3183 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5458,7 +5460,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5470,7 +5472,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3202 +// line internal/php5/php5.y:3204 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5483,7 +5485,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3213 +// line internal/php5/php5.y:3215 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5496,7 +5498,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3224 +// line internal/php5/php5.y:3226 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5509,7 +5511,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3235 +// line internal/php5/php5.y:3237 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5522,7 +5524,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3246 +// line internal/php5/php5.y:3248 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5535,7 +5537,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3257 +// line internal/php5/php5.y:3259 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5548,7 +5550,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3268 +// line internal/php5/php5.y:3270 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5561,7 +5563,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3279 +// line internal/php5/php5.y:3281 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5574,7 +5576,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3290 +// line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5589,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3301 +// line internal/php5/php5.y:3303 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5600,7 +5602,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3312 +// line internal/php5/php5.y:3314 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5613,7 +5615,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3323 +// line internal/php5/php5.y:3325 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5626,7 +5628,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3334 +// line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5639,7 +5641,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3345 +// line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5652,7 +5654,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3356 +// line internal/php5/php5.y:3358 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5667,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3367 +// line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5678,7 +5680,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3378 +// line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5691,7 +5693,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3389 +// line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5703,7 +5705,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3399 +// line internal/php5/php5.y:3401 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5715,7 +5717,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3409 +// line internal/php5/php5.y:3411 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5727,7 +5729,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3419 +// line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5739,7 +5741,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3429 +// line internal/php5/php5.y:3431 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5752,7 +5754,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3440 +// line internal/php5/php5.y:3442 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5767,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3451 +// line internal/php5/php5.y:3453 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5780,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3462 +// line internal/php5/php5.y:3464 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,7 +5794,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3474 +// line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5807,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3485 +// line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5820,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3496 +// line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5833,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3507 +// line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5846,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3518 +// line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,19 +5859,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3529 +// line internal/php5/php5.y:3531 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3533 +// line internal/php5/php5.y:3535 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3537 +// line internal/php5/php5.y:3539 { yyVAL.node = yyDollar[2].node @@ -5901,7 +5903,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3567 +// line internal/php5/php5.y:3569 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5915,7 +5917,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3579 +// line internal/php5/php5.y:3581 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5929,13 +5931,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3593 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3595 +// line internal/php5/php5.y:3597 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5948,7 +5950,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3606 +// line internal/php5/php5.y:3608 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5961,7 +5963,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3617 +// line internal/php5/php5.y:3619 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5974,7 +5976,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3628 +// line internal/php5/php5.y:3630 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5987,7 +5989,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3639 +// line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6000,7 +6002,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3650 +// line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6013,7 +6015,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3661 +// line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6026,7 +6028,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3672 +// line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6046,7 +6048,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3690 +// line internal/php5/php5.y:3692 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6058,25 +6060,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3700 +// line internal/php5/php5.y:3702 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3704 +// line internal/php5/php5.y:3706 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3708 +// line internal/php5/php5.y:3710 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3712 +// line internal/php5/php5.y:3714 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6088,7 +6090,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3722 +// line internal/php5/php5.y:3724 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6100,7 +6102,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3732 +// line internal/php5/php5.y:3734 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6112,7 +6114,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3742 +// line internal/php5/php5.y:3744 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6139,7 +6141,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3766 +// line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6167,7 +6169,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3794 +// line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6179,7 +6181,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3804 +// line internal/php5/php5.y:3806 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6191,7 +6193,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3814 +// line internal/php5/php5.y:3816 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6204,7 +6206,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3825 +// line internal/php5/php5.y:3827 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6217,7 +6219,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3839 +// line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6230,7 +6232,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3850 +// line internal/php5/php5.y:3852 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6243,7 +6245,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3861 +// line internal/php5/php5.y:3863 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6259,7 +6261,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3875 +// line internal/php5/php5.y:3877 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6272,7 +6274,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3889 +// line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6286,7 +6288,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3901 +// line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6299,19 +6301,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3915 +// line internal/php5/php5.y:3917 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3922 +// line internal/php5/php5.y:3924 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3926 +// line internal/php5/php5.y:3928 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6325,7 +6327,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3941 +// line internal/php5/php5.y:3943 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6341,7 +6343,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3955 +// line internal/php5/php5.y:3957 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6360,7 +6362,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3972 +// line internal/php5/php5.y:3974 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6375,7 +6377,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3985 +// line internal/php5/php5.y:3987 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6393,7 +6395,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4004 +// line internal/php5/php5.y:4006 { name := &ast.NameName{ Node: ast.Node{ @@ -6408,7 +6410,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4017 +// line internal/php5/php5.y:4019 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6425,7 +6427,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4032 +// line internal/php5/php5.y:4034 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6441,7 +6443,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4046 +// line internal/php5/php5.y:4048 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6454,7 +6456,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4057 +// line internal/php5/php5.y:4059 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6467,7 +6469,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4068 +// line internal/php5/php5.y:4070 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6480,7 +6482,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4079 +// line internal/php5/php5.y:4081 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6493,7 +6495,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4090 +// line internal/php5/php5.y:4092 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6505,7 +6507,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4103 +// line internal/php5/php5.y:4105 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6517,7 +6519,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4113 +// line internal/php5/php5.y:4115 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6528,7 +6530,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4122 +// line internal/php5/php5.y:4124 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6541,7 +6543,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4133 +// line internal/php5/php5.y:4135 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6553,7 +6555,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4146 +// line internal/php5/php5.y:4148 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6564,7 +6566,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4155 +// line internal/php5/php5.y:4157 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6577,7 +6579,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4166 +// line internal/php5/php5.y:4168 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6589,19 +6591,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4179 +// line internal/php5/php5.y:4181 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4183 +// line internal/php5/php5.y:4185 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4190 +// line internal/php5/php5.y:4192 { yyVAL.node = yyDollar[1].node @@ -6642,25 +6644,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4229 +// line internal/php5/php5.y:4231 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4237 +// line internal/php5/php5.y:4239 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4241 +// line internal/php5/php5.y:4243 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4249 +// line internal/php5/php5.y:4251 { yyVAL.list = yyDollar[2].list @@ -6669,13 +6671,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4259 +// line internal/php5/php5.y:4261 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4263 +// line internal/php5/php5.y:4265 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} @@ -6688,19 +6690,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4274 +// line internal/php5/php5.y:4276 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4281 +// line internal/php5/php5.y:4283 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4287 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6710,25 +6712,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4293 +// line internal/php5/php5.y:4295 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4300 +// line internal/php5/php5.y:4302 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4304 +// line internal/php5/php5.y:4306 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4311 +// line internal/php5/php5.y:4313 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6740,7 +6742,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4321 +// line internal/php5/php5.y:4323 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6752,7 +6754,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4331 +// line internal/php5/php5.y:4333 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6764,7 +6766,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4343 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6776,7 +6778,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4353 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6788,7 +6790,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4361 +// line internal/php5/php5.y:4363 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6800,7 +6802,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4371 +// line internal/php5/php5.y:4373 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6812,7 +6814,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4381 +// line internal/php5/php5.y:4383 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6824,7 +6826,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4391 +// line internal/php5/php5.y:4393 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6836,7 +6838,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4401 +// line internal/php5/php5.y:4403 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6848,7 +6850,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4411 +// line internal/php5/php5.y:4413 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6862,7 +6864,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4423 +// line internal/php5/php5.y:4425 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6874,7 +6876,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4436 +// line internal/php5/php5.y:4438 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6890,25 +6892,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4453 +// line internal/php5/php5.y:4455 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4460 +// line internal/php5/php5.y:4462 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4464 +// line internal/php5/php5.y:4466 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4468 +// line internal/php5/php5.y:4470 { name := &ast.NameName{ Node: ast.Node{ @@ -6923,7 +6925,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4483 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6940,7 +6942,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4496 +// line internal/php5/php5.y:4498 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6956,7 +6958,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4512 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6970,7 +6972,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4522 +// line internal/php5/php5.y:4524 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6983,13 +6985,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4533 +// line internal/php5/php5.y:4535 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4537 +// line internal/php5/php5.y:4539 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7001,13 +7003,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4547 +// line internal/php5/php5.y:4549 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4554 +// line internal/php5/php5.y:4556 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7020,7 +7022,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4565 +// line internal/php5/php5.y:4567 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7033,7 +7035,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4576 +// line internal/php5/php5.y:4578 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7046,7 +7048,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4587 +// line internal/php5/php5.y:4589 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7059,7 +7061,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4598 +// line internal/php5/php5.y:4600 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7072,7 +7074,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4609 +// line internal/php5/php5.y:4611 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7085,7 +7087,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4620 +// line internal/php5/php5.y:4622 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7098,7 +7100,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4631 +// line internal/php5/php5.y:4633 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7110,7 +7112,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4641 +// line internal/php5/php5.y:4643 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7122,7 +7124,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4651 +// line internal/php5/php5.y:4653 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7135,7 +7137,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4662 +// line internal/php5/php5.y:4664 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7148,7 +7150,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4673 +// line internal/php5/php5.y:4675 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7161,7 +7163,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4684 +// line internal/php5/php5.y:4686 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7174,7 +7176,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4695 +// line internal/php5/php5.y:4697 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7187,7 +7189,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4706 +// line internal/php5/php5.y:4708 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7200,7 +7202,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4717 +// line internal/php5/php5.y:4719 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7213,7 +7215,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4728 +// line internal/php5/php5.y:4730 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7226,7 +7228,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4739 +// line internal/php5/php5.y:4741 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7239,7 +7241,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4750 +// line internal/php5/php5.y:4752 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7252,7 +7254,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4761 +// line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7265,7 +7267,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4772 +// line internal/php5/php5.y:4774 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7278,7 +7280,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4783 +// line internal/php5/php5.y:4785 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7291,7 +7293,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4794 +// line internal/php5/php5.y:4796 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7304,7 +7306,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4805 +// line internal/php5/php5.y:4807 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7318,7 +7320,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4817 +// line internal/php5/php5.y:4819 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7331,7 +7333,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4828 +// line internal/php5/php5.y:4830 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7344,7 +7346,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4839 +// line internal/php5/php5.y:4841 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7357,7 +7359,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4850 +// line internal/php5/php5.y:4852 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7370,7 +7372,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4861 +// line internal/php5/php5.y:4863 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7384,7 +7386,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4873 +// line internal/php5/php5.y:4875 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7398,7 +7400,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4885 +// line internal/php5/php5.y:4887 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7410,7 +7412,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4895 +// line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7422,7 +7424,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4905 +// line internal/php5/php5.y:4907 { yyVAL.node = yyDollar[2].node @@ -7432,13 +7434,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4916 +// line internal/php5/php5.y:4918 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4920 +// line internal/php5/php5.y:4922 { name := &ast.NameName{ Node: ast.Node{ @@ -7453,7 +7455,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4933 +// line internal/php5/php5.y:4935 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7470,7 +7472,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4948 +// line internal/php5/php5.y:4950 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7486,7 +7488,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4965 +// line internal/php5/php5.y:4967 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7500,25 +7502,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4977 +// line internal/php5/php5.y:4979 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4981 +// line internal/php5/php5.y:4983 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4985 +// line internal/php5/php5.y:4987 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4989 +// line internal/php5/php5.y:4991 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7530,7 +7532,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4999 +// line internal/php5/php5.y:5001 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7542,7 +7544,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5009 +// line internal/php5/php5.y:5011 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7554,13 +7556,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5022 +// line internal/php5/php5.y:5024 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5026 +// line internal/php5/php5.y:5028 { yyVAL.list = yyDollar[1].list @@ -7571,19 +7573,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5038 +// line internal/php5/php5.y:5040 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5042 +// line internal/php5/php5.y:5044 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5049 +// line internal/php5/php5.y:5051 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7598,7 +7600,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5062 +// line internal/php5/php5.y:5064 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7612,7 +7614,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5074 +// line internal/php5/php5.y:5076 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7626,7 +7628,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5086 +// line internal/php5/php5.y:5088 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7639,19 +7641,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5100 +// line internal/php5/php5.y:5102 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5104 +// line internal/php5/php5.y:5106 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5111 +// line internal/php5/php5.y:5113 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7664,7 +7666,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5124 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7677,25 +7679,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5137 +// line internal/php5/php5.y:5139 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5145 +// line internal/php5/php5.y:5147 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5152 +// line internal/php5/php5.y:5154 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5159 +// line internal/php5/php5.y:5161 { yyVAL.node = yyDollar[1].node @@ -7753,25 +7755,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5215 +// line internal/php5/php5.y:5217 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5222 +// line internal/php5/php5.y:5224 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5226 +// line internal/php5/php5.y:5228 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5234 +// line internal/php5/php5.y:5236 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7785,7 +7787,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5249 +// line internal/php5/php5.y:5251 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7799,7 +7801,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5261 +// line internal/php5/php5.y:5263 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7813,7 +7815,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5276 +// line internal/php5/php5.y:5278 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7822,31 +7824,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5286 +// line internal/php5/php5.y:5288 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5290 +// line internal/php5/php5.y:5292 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5294 +// line internal/php5/php5.y:5296 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5301 +// line internal/php5/php5.y:5303 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5305 +// line internal/php5/php5.y:5307 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7858,7 +7860,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5318 +// line internal/php5/php5.y:5320 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7871,7 +7873,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5329 +// line internal/php5/php5.y:5331 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7884,13 +7886,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5343 +// line internal/php5/php5.y:5345 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5350 +// line internal/php5/php5.y:5352 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7903,7 +7905,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5361 +// line internal/php5/php5.y:5363 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7916,31 +7918,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5375 +// line internal/php5/php5.y:5377 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5379 +// line internal/php5/php5.y:5381 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5383 +// line internal/php5/php5.y:5385 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5391 +// line internal/php5/php5.y:5393 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5395 +// line internal/php5/php5.y:5397 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7952,13 +7954,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5405 +// line internal/php5/php5.y:5407 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5412 +// line internal/php5/php5.y:5414 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7971,7 +7973,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5423 +// line internal/php5/php5.y:5425 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7984,13 +7986,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5434 +// line internal/php5/php5.y:5436 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5442 +// line internal/php5/php5.y:5444 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8004,7 +8006,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5456 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8018,25 +8020,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5469 +// line internal/php5/php5.y:5471 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5473 +// line internal/php5/php5.y:5475 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5481 +// line internal/php5/php5.y:5483 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5485 +// line internal/php5/php5.y:5487 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8046,7 +8048,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5496 +// line internal/php5/php5.y:5498 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8060,7 +8062,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5508 +// line internal/php5/php5.y:5510 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8074,7 +8076,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5520 +// line internal/php5/php5.y:5522 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8084,7 +8086,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5531 +// line internal/php5/php5.y:5533 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8096,7 +8098,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5541 +// line internal/php5/php5.y:5543 { yyVAL.node = yyDollar[2].node @@ -8109,7 +8111,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5555 +// line internal/php5/php5.y:5557 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8122,7 +8124,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5566 +// line internal/php5/php5.y:5568 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8139,7 +8141,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5584 +// line internal/php5/php5.y:5586 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8152,7 +8154,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5595 +// line internal/php5/php5.y:5597 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8162,7 +8164,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5607 +// line internal/php5/php5.y:5609 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8174,7 +8176,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5617 +// line internal/php5/php5.y:5619 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8190,19 +8192,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5631 +// line internal/php5/php5.y:5633 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5639 +// line internal/php5/php5.y:5641 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5643 +// line internal/php5/php5.y:5645 { yyVAL.list = yyDollar[1].list @@ -8217,7 +8219,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5659 +// line internal/php5/php5.y:5661 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8232,7 +8234,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5672 +// line internal/php5/php5.y:5674 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8246,7 +8248,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5684 +// line internal/php5/php5.y:5686 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8260,7 +8262,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5696 +// line internal/php5/php5.y:5698 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8273,7 +8275,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5707 +// line internal/php5/php5.y:5709 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8291,7 +8293,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5723 +// line internal/php5/php5.y:5725 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8307,7 +8309,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5737 +// line internal/php5/php5.y:5739 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8324,7 +8326,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5752 +// line internal/php5/php5.y:5754 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8339,13 +8341,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5768 +// line internal/php5/php5.y:5770 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5774 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8358,13 +8360,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5783 +// line internal/php5/php5.y:5785 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5787 +// line internal/php5/php5.y:5789 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8377,7 +8379,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5801 +// line internal/php5/php5.y:5803 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8391,7 +8393,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5813 +// line internal/php5/php5.y:5815 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8408,7 +8410,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5828 +// line internal/php5/php5.y:5830 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8427,7 +8429,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5845 +// line internal/php5/php5.y:5847 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8442,7 +8444,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5858 +// line internal/php5/php5.y:5860 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8459,7 +8461,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5873 +// line internal/php5/php5.y:5875 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8478,7 +8480,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5890 +// line internal/php5/php5.y:5892 { yyVAL.node = yyDollar[2].node @@ -8488,7 +8490,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5901 +// line internal/php5/php5.y:5903 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8500,7 +8502,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5911 +// line internal/php5/php5.y:5913 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8517,7 +8519,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5926 +// line internal/php5/php5.y:5928 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8531,7 +8533,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5941 +// line internal/php5/php5.y:5943 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8545,7 +8547,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5953 +// line internal/php5/php5.y:5955 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8561,7 +8563,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5967 +// line internal/php5/php5.y:5969 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8577,7 +8579,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5981 +// line internal/php5/php5.y:5983 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8589,7 +8591,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5991 +// line internal/php5/php5.y:5993 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8601,7 +8603,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6001 +// line internal/php5/php5.y:6003 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -8617,7 +8619,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6015 +// line internal/php5/php5.y:6017 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8629,7 +8631,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6025 +// line internal/php5/php5.y:6027 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8641,13 +8643,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6038 +// line internal/php5/php5.y:6040 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6042 +// line internal/php5/php5.y:6044 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8656,19 +8658,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6052 +// line internal/php5/php5.y:6054 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6056 +// line internal/php5/php5.y:6058 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6063 +// line internal/php5/php5.y:6065 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8684,7 +8686,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6077 +// line internal/php5/php5.y:6079 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8700,7 +8702,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6094 +// line internal/php5/php5.y:6096 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8716,7 +8718,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6111 +// line internal/php5/php5.y:6113 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 668b080..5d11a5d 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -344,14 +344,15 @@ top_statement: } | T_HALT_COMPILER '(' ')' ';' { - $$ = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) + $$ = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + HaltCompilerTkn: $1, + OpenParenthesisTkn: $2, + CloseParenthesisTkn: $3, + SemiColonTkn: $4, + } } | T_NAMESPACE namespace_name ';' { @@ -799,14 +800,15 @@ inner_statement: } | T_HALT_COMPILER '(' ')' ';' { - $$ = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) + $$ = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + HaltCompilerTkn: $1, + OpenParenthesisTkn: $2, + CloseParenthesisTkn: $3, + SemiColonTkn: $4, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e818e2c..f9ec7d4 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4830 +// line internal/php7/php7.y:4832 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 +// line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:327 +// line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:334 +// line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:345 +// line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:352 +// line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:364 +// line internal/php7/php7.y:364 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:378 +// line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:387 +// line internal/php7/php7.y:387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:398 +// line internal/php7/php7.y:398 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,57 +2668,58 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:411 +// line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 +// line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:420 +// line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:424 +// line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:428 +// line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:432 +// line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:436 +// line internal/php7/php7.y:436 { - yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) + yyVAL.node = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + HaltCompilerTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + CloseParenthesisTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, + } } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:447 +// line internal/php7/php7.y:448 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2736,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:463 +// line internal/php7/php7.y:464 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2756,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:481 +// line internal/php7/php7.y:482 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2770,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:493 +// line internal/php7/php7.y:494 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2782,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:503 +// line internal/php7/php7.y:504 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2795,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:514 +// line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2808,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:525 +// line internal/php7/php7.y:526 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2822,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:537 +// line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} @@ -2836,7 +2837,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:552 +// line internal/php7/php7.y:553 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2849,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:562 +// line internal/php7/php7.y:563 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2861,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:575 +// line internal/php7/php7.y:576 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2885,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:597 +// line internal/php7/php7.y:598 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2908,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:621 +// line internal/php7/php7.y:622 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2930,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:641 +// line internal/php7/php7.y:642 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2953,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:665 +// line internal/php7/php7.y:666 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:669 +// line internal/php7/php7.y:670 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:676 +// line internal/php7/php7.y:677 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2973,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:682 +// line internal/php7/php7.y:683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:689 +// line internal/php7/php7.y:690 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2987,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:695 +// line internal/php7/php7.y:696 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:702 +// line internal/php7/php7.y:703 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3001,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:708 +// line internal/php7/php7.y:709 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:715 +// line internal/php7/php7.y:716 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:719 +// line internal/php7/php7.y:720 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3023,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:730 +// line internal/php7/php7.y:731 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3039,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:744 +// line internal/php7/php7.y:745 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3062,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:769 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:773 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3078,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:784 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3086,13 +3087,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:790 +// line internal/php7/php7.y:791 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:797 +// line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3105,63 +3106,64 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:808 +// line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:815 +// line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:820 +// line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:824 +// line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:828 +// line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:832 +// line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:836 +// line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:840 +// line internal/php7/php7.y:841 { - yyVAL.node = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[2].token.SkippedTokens, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)...)) + yyVAL.node = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + HaltCompilerTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + CloseParenthesisTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, + } } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:853 +// line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3174,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:864 +// line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:868 +// line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:872 +// line internal/php7/php7.y:874 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3210,7 +3212,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:894 +// line internal/php7/php7.y:896 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[5].node} yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} @@ -3228,7 +3230,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:910 +// line internal/php7/php7.y:912 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3255,7 +3257,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:935 +// line internal/php7/php7.y:937 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3281,7 +3283,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:959 +// line internal/php7/php7.y:961 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3295,7 +3297,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:971 +// line internal/php7/php7.y:973 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3309,7 +3311,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:983 +// line internal/php7/php7.y:985 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3323,7 +3325,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:995 +// line internal/php7/php7.y:997 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3337,7 +3339,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1007 +// line internal/php7/php7.y:1009 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3351,7 +3353,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1019 +// line internal/php7/php7.y:1021 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3366,7 +3368,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1032 +// line internal/php7/php7.y:1034 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3378,7 +3380,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1042 +// line internal/php7/php7.y:1044 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3392,7 +3394,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1054 +// line internal/php7/php7.y:1056 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3412,7 +3414,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1072 +// line internal/php7/php7.y:1074 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3436,7 +3438,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1094 +// line internal/php7/php7.y:1096 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3463,7 +3465,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1119 +// line internal/php7/php7.y:1121 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3478,7 +3480,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1132 +// line internal/php7/php7.y:1134 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3491,7 +3493,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1143 +// line internal/php7/php7.y:1145 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3508,7 +3510,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1158 +// line internal/php7/php7.y:1160 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3522,7 +3524,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1170 +// line internal/php7/php7.y:1172 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3539,7 +3541,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1185 +// line internal/php7/php7.y:1187 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3554,13 +3556,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1200 +// line internal/php7/php7.y:1202 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1204 +// line internal/php7/php7.y:1206 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3582,13 +3584,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1226 +// line internal/php7/php7.y:1228 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1230 +// line internal/php7/php7.y:1232 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3602,13 +3604,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1242 +// line internal/php7/php7.y:1244 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1246 +// line internal/php7/php7.y:1248 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3622,13 +3624,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1261 +// line internal/php7/php7.y:1263 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1265 +// line internal/php7/php7.y:1267 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3637,13 +3639,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1275 +// line internal/php7/php7.y:1277 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1282 +// line internal/php7/php7.y:1284 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3673,31 +3675,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1313 +// line internal/php7/php7.y:1315 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1317 +// line internal/php7/php7.y:1319 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1324 +// line internal/php7/php7.y:1326 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1328 +// line internal/php7/php7.y:1330 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1335 +// line internal/php7/php7.y:1337 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3715,7 +3717,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1351 +// line internal/php7/php7.y:1353 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3732,19 +3734,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1369 +// line internal/php7/php7.y:1371 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1373 +// line internal/php7/php7.y:1375 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1380 +// line internal/php7/php7.y:1382 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3756,7 +3758,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1390 +// line internal/php7/php7.y:1392 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3768,7 +3770,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1403 +// line internal/php7/php7.y:1405 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3785,7 +3787,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1421 +// line internal/php7/php7.y:1423 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3802,13 +3804,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1439 +// line internal/php7/php7.y:1441 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1443 +// line internal/php7/php7.y:1445 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3820,13 +3822,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1458 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1460 +// line internal/php7/php7.y:1462 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3838,13 +3840,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1473 +// line internal/php7/php7.y:1475 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1477 +// line internal/php7/php7.y:1479 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3856,13 +3858,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1490 +// line internal/php7/php7.y:1492 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1494 +// line internal/php7/php7.y:1496 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3874,7 +3876,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1504 +// line internal/php7/php7.y:1506 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3888,7 +3890,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1516 +// line internal/php7/php7.y:1518 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3901,7 +3903,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1530 +// line internal/php7/php7.y:1532 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3910,7 +3912,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1537 +// line internal/php7/php7.y:1539 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3927,7 +3929,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1555 +// line internal/php7/php7.y:1557 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3936,7 +3938,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1562 +// line internal/php7/php7.y:1564 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3953,7 +3955,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1580 +// line internal/php7/php7.y:1582 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3962,7 +3964,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1587 +// line internal/php7/php7.y:1589 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3979,7 +3981,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1605 +// line internal/php7/php7.y:1607 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3994,7 +3996,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1618 +// line internal/php7/php7.y:1620 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4010,7 +4012,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1632 +// line internal/php7/php7.y:1634 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4027,7 +4029,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1647 +// line internal/php7/php7.y:1649 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4046,13 +4048,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1667 +// line internal/php7/php7.y:1669 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1671 +// line internal/php7/php7.y:1673 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4067,7 +4069,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1684 +// line internal/php7/php7.y:1686 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4082,19 +4084,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1700 +// line internal/php7/php7.y:1702 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1704 +// line internal/php7/php7.y:1706 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1711 +// line internal/php7/php7.y:1713 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4103,7 +4105,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1718 +// line internal/php7/php7.y:1720 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4120,7 +4122,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1736 +// line internal/php7/php7.y:1738 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} @@ -4136,7 +4138,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1750 +// line internal/php7/php7.y:1752 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} @@ -4156,13 +4158,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1771 +// line internal/php7/php7.y:1773 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1775 +// line internal/php7/php7.y:1777 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4178,7 +4180,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1792 +// line internal/php7/php7.y:1794 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} @@ -4199,7 +4201,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1811 +// line internal/php7/php7.y:1813 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} @@ -4223,7 +4225,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1836 +// line internal/php7/php7.y:1838 { yyVAL.node = yyDollar[1].node @@ -4241,7 +4243,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1852 +// line internal/php7/php7.y:1854 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4264,25 +4266,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1876 +// line internal/php7/php7.y:1878 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1880 +// line internal/php7/php7.y:1882 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1887 +// line internal/php7/php7.y:1889 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1891 +// line internal/php7/php7.y:1893 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4291,7 +4293,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1901 +// line internal/php7/php7.y:1903 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4327,7 +4329,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1935 +// line internal/php7/php7.y:1937 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4364,25 +4366,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1973 +// line internal/php7/php7.y:1975 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1977 +// line internal/php7/php7.y:1979 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1984 +// line internal/php7/php7.y:1986 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1988 +// line internal/php7/php7.y:1990 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4394,7 +4396,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2001 +// line internal/php7/php7.y:2003 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4406,7 +4408,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2011 +// line internal/php7/php7.y:2013 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4418,19 +4420,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2021 +// line internal/php7/php7.y:2023 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2028 +// line internal/php7/php7.y:2030 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2032 +// line internal/php7/php7.y:2034 { yyVAL.node = yyDollar[2].node @@ -4439,7 +4441,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2042 +// line internal/php7/php7.y:2044 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4452,7 +4454,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2053 +// line internal/php7/php7.y:2055 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4469,13 +4471,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2071 +// line internal/php7/php7.y:2073 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2075 +// line internal/php7/php7.y:2077 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4484,7 +4486,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2085 +// line internal/php7/php7.y:2087 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4496,7 +4498,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2095 +// line internal/php7/php7.y:2097 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4508,7 +4510,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2108 +// line internal/php7/php7.y:2110 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4517,19 +4519,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2115 +// line internal/php7/php7.y:2117 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2122 +// line internal/php7/php7.y:2124 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2129 +// line internal/php7/php7.y:2131 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4538,13 +4540,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2136 +// line internal/php7/php7.y:2138 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2143 +// line internal/php7/php7.y:2145 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4560,7 +4562,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2157 +// line internal/php7/php7.y:2159 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4577,19 +4579,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2175 +// line internal/php7/php7.y:2177 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2179 +// line internal/php7/php7.y:2181 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2186 +// line internal/php7/php7.y:2188 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4603,7 +4605,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2198 +// line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} @@ -4622,7 +4624,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2215 +// line internal/php7/php7.y:2217 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4634,7 +4636,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2225 +// line internal/php7/php7.y:2227 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4665,13 +4667,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2257 +// line internal/php7/php7.y:2259 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2261 +// line internal/php7/php7.y:2263 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4685,7 +4687,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2273 +// line internal/php7/php7.y:2275 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4697,7 +4699,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2283 +// line internal/php7/php7.y:2285 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4709,7 +4711,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2293 +// line internal/php7/php7.y:2295 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4721,19 +4723,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2306 +// line internal/php7/php7.y:2308 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2310 +// line internal/php7/php7.y:2312 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2317 +// line internal/php7/php7.y:2319 { yyVAL.node = yyDollar[1].node @@ -4743,7 +4745,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2325 +// line internal/php7/php7.y:2327 { yyVAL.node = yyDollar[1].node @@ -4753,7 +4755,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2336 +// line internal/php7/php7.y:2338 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4766,7 +4768,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2350 +// line internal/php7/php7.y:2352 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4782,7 +4784,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2364 +// line internal/php7/php7.y:2366 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4798,7 +4800,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2378 +// line internal/php7/php7.y:2380 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4814,7 +4816,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2392 +// line internal/php7/php7.y:2394 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4827,7 +4829,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2406 +// line internal/php7/php7.y:2408 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4841,13 +4843,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2418 +// line internal/php7/php7.y:2420 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2425 +// line internal/php7/php7.y:2427 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4863,7 +4865,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2442 +// line internal/php7/php7.y:2444 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4876,7 +4878,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2453 +// line internal/php7/php7.y:2455 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4889,13 +4891,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2467 +// line internal/php7/php7.y:2469 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2471 +// line internal/php7/php7.y:2473 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4908,31 +4910,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2485 +// line internal/php7/php7.y:2487 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2491 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2496 +// line internal/php7/php7.y:2498 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2500 +// line internal/php7/php7.y:2502 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2507 +// line internal/php7/php7.y:2509 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4944,7 +4946,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2517 +// line internal/php7/php7.y:2519 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4956,7 +4958,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2527 +// line internal/php7/php7.y:2529 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4968,7 +4970,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2537 +// line internal/php7/php7.y:2539 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4980,7 +4982,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2547 +// line internal/php7/php7.y:2549 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4992,7 +4994,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2557 +// line internal/php7/php7.y:2559 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5004,7 +5006,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2570 +// line internal/php7/php7.y:2572 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5013,13 +5015,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2577 +// line internal/php7/php7.y:2579 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2584 +// line internal/php7/php7.y:2586 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5035,7 +5037,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2598 +// line internal/php7/php7.y:2600 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5052,7 +5054,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2616 +// line internal/php7/php7.y:2618 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5061,13 +5063,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2623 +// line internal/php7/php7.y:2625 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2632 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5082,7 +5084,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2646 +// line internal/php7/php7.y:2648 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} @@ -5097,7 +5099,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2662 +// line internal/php7/php7.y:2664 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5106,31 +5108,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2669 +// line internal/php7/php7.y:2671 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2676 +// line internal/php7/php7.y:2678 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2683 +// line internal/php7/php7.y:2685 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2687 +// line internal/php7/php7.y:2689 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2694 +// line internal/php7/php7.y:2696 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5139,13 +5141,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2701 +// line internal/php7/php7.y:2703 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2708 +// line internal/php7/php7.y:2710 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5163,7 +5165,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2727 +// line internal/php7/php7.y:2729 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5178,7 +5180,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2740 +// line internal/php7/php7.y:2742 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5190,7 +5192,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2753 +// line internal/php7/php7.y:2755 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5207,7 +5209,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2768 +// line internal/php7/php7.y:2770 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5223,7 +5225,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2782 +// line internal/php7/php7.y:2784 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5236,7 +5238,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2793 +// line internal/php7/php7.y:2795 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5250,7 +5252,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2805 +// line internal/php7/php7.y:2807 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5262,7 +5264,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2815 +// line internal/php7/php7.y:2817 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5275,7 +5277,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2826 +// line internal/php7/php7.y:2828 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5288,7 +5290,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2837 +// line internal/php7/php7.y:2839 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5301,7 +5303,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2848 +// line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5314,7 +5316,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2859 +// line internal/php7/php7.y:2861 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5327,7 +5329,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2870 +// line internal/php7/php7.y:2872 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5340,7 +5342,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2881 +// line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5353,7 +5355,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2892 +// line internal/php7/php7.y:2894 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5366,7 +5368,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2903 +// line internal/php7/php7.y:2905 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5379,7 +5381,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2914 +// line internal/php7/php7.y:2916 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5392,7 +5394,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2925 +// line internal/php7/php7.y:2927 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5405,7 +5407,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2936 +// line internal/php7/php7.y:2938 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5418,7 +5420,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2947 +// line internal/php7/php7.y:2949 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5431,7 +5433,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2958 +// line internal/php7/php7.y:2960 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5444,7 +5446,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2969 +// line internal/php7/php7.y:2971 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5456,7 +5458,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2979 +// line internal/php7/php7.y:2981 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5469,7 +5471,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2990 +// line internal/php7/php7.y:2992 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5481,7 +5483,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3000 +// line internal/php7/php7.y:3002 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5494,7 +5496,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3011 +// line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5507,7 +5509,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3022 +// line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5520,7 +5522,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3033 +// line internal/php7/php7.y:3035 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5533,7 +5535,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3044 +// line internal/php7/php7.y:3046 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5546,7 +5548,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3055 +// line internal/php7/php7.y:3057 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5559,7 +5561,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3066 +// line internal/php7/php7.y:3068 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5572,7 +5574,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3077 +// line internal/php7/php7.y:3079 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5585,7 +5587,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3088 +// line internal/php7/php7.y:3090 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5598,7 +5600,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3099 +// line internal/php7/php7.y:3101 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5611,7 +5613,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3110 +// line internal/php7/php7.y:3112 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5624,7 +5626,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3121 +// line internal/php7/php7.y:3123 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5637,7 +5639,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3132 +// line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5650,7 +5652,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3143 +// line internal/php7/php7.y:3145 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5663,7 +5665,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3154 +// line internal/php7/php7.y:3156 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5676,7 +5678,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3165 +// line internal/php7/php7.y:3167 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5691,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3176 +// line internal/php7/php7.y:3178 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5704,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3187 +// line internal/php7/php7.y:3189 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5714,7 +5716,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3197 +// line internal/php7/php7.y:3199 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5726,7 +5728,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3207 +// line internal/php7/php7.y:3209 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5738,7 +5740,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3217 +// line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5750,7 +5752,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3227 +// line internal/php7/php7.y:3229 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5763,7 +5765,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3238 +// line internal/php7/php7.y:3240 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5776,7 +5778,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3249 +// line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5789,7 +5791,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3260 +// line internal/php7/php7.y:3262 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5805,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3272 +// line internal/php7/php7.y:3274 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5816,7 +5818,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3283 +// line internal/php7/php7.y:3285 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5829,7 +5831,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3294 +// line internal/php7/php7.y:3296 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5842,7 +5844,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3305 +// line internal/php7/php7.y:3307 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5855,7 +5857,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3316 +// line internal/php7/php7.y:3318 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5868,7 +5870,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3327 +// line internal/php7/php7.y:3329 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5881,7 +5883,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3338 +// line internal/php7/php7.y:3340 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -5894,13 +5896,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3349 +// line internal/php7/php7.y:3351 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3353 +// line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5914,7 +5916,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3365 +// line internal/php7/php7.y:3367 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5928,7 +5930,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3377 +// line internal/php7/php7.y:3379 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5941,13 +5943,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3388 +// line internal/php7/php7.y:3390 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3392 +// line internal/php7/php7.y:3394 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5960,7 +5962,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3403 +// line internal/php7/php7.y:3405 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5973,7 +5975,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3414 +// line internal/php7/php7.y:3416 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5986,7 +5988,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3425 +// line internal/php7/php7.y:3427 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5999,7 +6001,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3436 +// line internal/php7/php7.y:3438 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6012,7 +6014,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3447 +// line internal/php7/php7.y:3449 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6025,7 +6027,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3458 +// line internal/php7/php7.y:3460 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6038,7 +6040,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3469 +// line internal/php7/php7.y:3471 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6058,7 +6060,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3487 +// line internal/php7/php7.y:3489 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6070,13 +6072,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3497 +// line internal/php7/php7.y:3499 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3501 +// line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6088,7 +6090,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3511 +// line internal/php7/php7.y:3513 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6100,7 +6102,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3521 +// line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6112,7 +6114,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3531 +// line internal/php7/php7.y:3533 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6124,7 +6126,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3541 +// line internal/php7/php7.y:3543 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6137,7 +6139,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3552 +// line internal/php7/php7.y:3554 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6149,13 +6151,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3562 +// line internal/php7/php7.y:3564 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3566 +// line internal/php7/php7.y:3568 { yyVAL.node = yyDollar[2].node @@ -6176,7 +6178,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3587 +// line internal/php7/php7.y:3589 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6207,7 +6209,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3614 +// line internal/php7/php7.y:3616 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6233,25 +6235,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3644 +// line internal/php7/php7.y:3646 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3648 +// line internal/php7/php7.y:3650 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3655 +// line internal/php7/php7.y:3657 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3659 +// line internal/php7/php7.y:3661 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6265,7 +6267,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3674 +// line internal/php7/php7.y:3676 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6274,13 +6276,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3681 +// line internal/php7/php7.y:3683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3688 +// line internal/php7/php7.y:3690 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6294,7 +6296,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3700 +// line internal/php7/php7.y:3702 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6311,7 +6313,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3718 +// line internal/php7/php7.y:3720 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6323,7 +6325,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3730 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6336,7 +6338,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3739 +// line internal/php7/php7.y:3741 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6349,7 +6351,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3750 +// line internal/php7/php7.y:3752 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6361,7 +6363,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3763 +// line internal/php7/php7.y:3765 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6373,31 +6375,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3773 +// line internal/php7/php7.y:3775 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3780 +// line internal/php7/php7.y:3782 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3784 +// line internal/php7/php7.y:3786 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3791 +// line internal/php7/php7.y:3793 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3795 +// line internal/php7/php7.y:3797 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6410,13 +6412,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3809 +// line internal/php7/php7.y:3811 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3813 +// line internal/php7/php7.y:3815 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6426,25 +6428,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3821 +// line internal/php7/php7.y:3823 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3828 +// line internal/php7/php7.y:3830 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3832 +// line internal/php7/php7.y:3834 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3839 +// line internal/php7/php7.y:3841 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6458,7 +6460,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3851 +// line internal/php7/php7.y:3853 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6471,7 +6473,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3862 +// line internal/php7/php7.y:3864 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6483,7 +6485,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3875 +// line internal/php7/php7.y:3877 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6495,7 +6497,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 +// line internal/php7/php7.y:3887 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6507,7 +6509,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3895 +// line internal/php7/php7.y:3897 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6519,7 +6521,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3905 +// line internal/php7/php7.y:3907 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6531,7 +6533,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3915 +// line internal/php7/php7.y:3917 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6543,7 +6545,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3925 +// line internal/php7/php7.y:3927 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6555,7 +6557,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3935 +// line internal/php7/php7.y:3937 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6567,7 +6569,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3945 +// line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6579,7 +6581,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3955 +// line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6591,7 +6593,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3965 +// line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6603,7 +6605,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3975 +// line internal/php7/php7.y:3977 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6617,7 +6619,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3987 +// line internal/php7/php7.y:3989 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6629,7 +6631,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3997 +// line internal/php7/php7.y:3999 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6641,7 +6643,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4007 +// line internal/php7/php7.y:4009 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6653,19 +6655,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4017 +// line internal/php7/php7.y:4019 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4021 +// line internal/php7/php7.y:4023 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4028 +// line internal/php7/php7.y:4030 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6677,7 +6679,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4038 +// line internal/php7/php7.y:4040 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6693,7 +6695,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4052 +// line internal/php7/php7.y:4054 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6709,43 +6711,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4069 +// line internal/php7/php7.y:4071 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4073 +// line internal/php7/php7.y:4075 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4080 +// line internal/php7/php7.y:4082 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4084 +// line internal/php7/php7.y:4086 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4091 +// line internal/php7/php7.y:4093 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4098 +// line internal/php7/php7.y:4100 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4102 +// line internal/php7/php7.y:4104 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6758,19 +6760,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4113 +// line internal/php7/php7.y:4115 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4120 +// line internal/php7/php7.y:4122 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4124 +// line internal/php7/php7.y:4126 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6783,19 +6785,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4135 +// line internal/php7/php7.y:4137 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4142 +// line internal/php7/php7.y:4144 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4146 +// line internal/php7/php7.y:4148 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6808,7 +6810,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4157 +// line internal/php7/php7.y:4159 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6821,7 +6823,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4170 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6834,7 +6836,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4179 +// line internal/php7/php7.y:4181 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6847,25 +6849,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4190 +// line internal/php7/php7.y:4192 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4197 +// line internal/php7/php7.y:4199 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4201 +// line internal/php7/php7.y:4203 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4205 +// line internal/php7/php7.y:4207 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6878,7 +6880,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4219 +// line internal/php7/php7.y:4221 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6892,7 +6894,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4231 +// line internal/php7/php7.y:4233 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6906,7 +6908,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4243 +// line internal/php7/php7.y:4245 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6918,7 +6920,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4256 +// line internal/php7/php7.y:4258 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6931,7 +6933,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4267 +// line internal/php7/php7.y:4269 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6944,13 +6946,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4281 +// line internal/php7/php7.y:4283 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4285 +// line internal/php7/php7.y:4287 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6963,7 +6965,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4296 +// line internal/php7/php7.y:4298 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6976,7 +6978,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4307 +// line internal/php7/php7.y:4309 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6989,7 +6991,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4318 +// line internal/php7/php7.y:4320 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7002,7 +7004,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4329 +// line internal/php7/php7.y:4331 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7015,7 +7017,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4343 +// line internal/php7/php7.y:4345 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7027,7 +7029,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4353 +// line internal/php7/php7.y:4355 { yyVAL.node = yyDollar[2].node @@ -7037,13 +7039,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4361 +// line internal/php7/php7.y:4363 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4368 +// line internal/php7/php7.y:4370 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7055,7 +7057,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4378 +// line internal/php7/php7.y:4380 { yyVAL.node = yyDollar[2].node @@ -7065,31 +7067,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4386 +// line internal/php7/php7.y:4388 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4393 +// line internal/php7/php7.y:4395 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4400 +// line internal/php7/php7.y:4402 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4404 +// line internal/php7/php7.y:4406 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4411 +// line internal/php7/php7.y:4413 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7102,7 +7104,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4422 +// line internal/php7/php7.y:4424 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7112,7 +7114,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4433 +// line internal/php7/php7.y:4435 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7125,7 +7127,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4444 +// line internal/php7/php7.y:4446 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7137,7 +7139,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4454 +// line internal/php7/php7.y:4456 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7153,7 +7155,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4468 +// line internal/php7/php7.y:4470 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7167,7 +7169,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4480 +// line internal/php7/php7.y:4482 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7179,7 +7181,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4490 +// line internal/php7/php7.y:4492 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7198,7 +7200,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4507 +// line internal/php7/php7.y:4509 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7215,13 +7217,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4525 +// line internal/php7/php7.y:4527 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4529 +// line internal/php7/php7.y:4531 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7234,13 +7236,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4540 +// line internal/php7/php7.y:4542 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4544 +// line internal/php7/php7.y:4546 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7253,7 +7255,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4558 +// line internal/php7/php7.y:4560 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7267,7 +7269,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4570 +// line internal/php7/php7.y:4572 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7284,7 +7286,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4585 +// line internal/php7/php7.y:4587 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7303,7 +7305,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4602 +// line internal/php7/php7.y:4604 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7318,7 +7320,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4615 +// line internal/php7/php7.y:4617 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7335,7 +7337,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4630 +// line internal/php7/php7.y:4632 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7354,7 +7356,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4647 +// line internal/php7/php7.y:4649 { yyVAL.node = yyDollar[2].node @@ -7364,7 +7366,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4658 +// line internal/php7/php7.y:4660 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7376,7 +7378,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4668 +// line internal/php7/php7.y:4670 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7393,7 +7395,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4683 +// line internal/php7/php7.y:4685 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7419,7 +7421,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4707 +// line internal/php7/php7.y:4709 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7433,7 +7435,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4722 +// line internal/php7/php7.y:4724 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7451,7 +7453,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4738 +// line internal/php7/php7.y:4740 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -7467,7 +7469,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4752 +// line internal/php7/php7.y:4754 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7479,7 +7481,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4762 +// line internal/php7/php7.y:4764 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7491,7 +7493,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4772 +// line internal/php7/php7.y:4774 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -7507,7 +7509,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4786 +// line internal/php7/php7.y:4788 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7519,7 +7521,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4796 +// line internal/php7/php7.y:4798 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7531,13 +7533,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4809 +// line internal/php7/php7.y:4811 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4813 +// line internal/php7/php7.y:4815 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7546,7 +7548,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4823 +// line internal/php7/php7.y:4825 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 33c558c..3013dfd 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -434,14 +434,15 @@ top_statement: } | T_HALT_COMPILER '(' ')' ';' { - $$ = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) + $$ = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + HaltCompilerTkn: $1, + OpenParenthesisTkn: $2, + CloseParenthesisTkn: $3, + SemiColonTkn: $4, + } } | T_NAMESPACE namespace_name ';' { @@ -838,14 +839,15 @@ inner_statement: } | T_HALT_COMPILER '(' ')' ';' { - $$ = &ast.StmtHaltCompiler{ast.Node{}} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($2.SkippedTokens, append($3.SkippedTokens, $4.SkippedTokens...)...)) + $$ = &ast.StmtHaltCompiler{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + HaltCompilerTkn: $1, + OpenParenthesisTkn: $2, + CloseParenthesisTkn: $3, + SemiColonTkn: $4, + } } statement: diff --git a/pkg/ast/node.go b/pkg/ast/node.go index d64da63..4b633fe 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -539,6 +539,10 @@ func (n *StmtGoto) Accept(v NodeVisitor) { // StmtHaltCompiler node type StmtHaltCompiler struct { Node + HaltCompilerTkn *token.Token + OpenParenthesisTkn *token.Token + CloseParenthesisTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtHaltCompiler) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index adba189..ff7f336 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -60,3 +60,10 @@ func (v *FilterTokens) StmtNamespace(n *ast.StmtNamespace) { n.CloseCurlyBracket = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtHaltCompiler(n *ast.StmtHaltCompiler) { + n.HaltCompilerTkn = nil + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 0e8a0dd..450f928 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2823,13 +2823,11 @@ func (p *Printer) printStmtGoto(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtHaltCompiler(n ast.Vertex) { - nn := n.(*ast.StmtHaltCompiler) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "__halt_compiler") - - p.printFreeFloatingOrDefault(nn, token.End, "();") +func (p *Printer) printStmtHaltCompiler(n *ast.StmtHaltCompiler) { + p.printToken(n.HaltCompilerTkn, "__halt_compiler") + p.printToken(n.OpenParenthesisTkn, "(") + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtIf(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 17cef65..a65bd6b 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -1049,7 +1049,8 @@ func TestParseAndPrintPhp5Goto(t *testing.T) { } func TestParseAndPrintPhp5HaltCompiler(t *testing.T) { - src := ` Date: Mon, 24 Aug 2020 23:28:44 +0300 Subject: [PATCH 049/140] [refactoring] update ast structure of "Constant" nodes --- internal/php5/parser_test.go | 16 +- internal/php5/php5.go | 1207 ++++++++++---------- internal/php5/php5.y | 199 ++-- internal/php5/php5_test.go | 16 +- internal/php7/parser_test.go | 20 +- internal/php7/php7.go | 1082 +++++++++--------- internal/php7/php7.y | 94 +- internal/php7/php7_test.go | 18 +- pkg/ast/node.go | 16 +- pkg/ast/traverser/dfs.go | 12 +- pkg/ast/visitor/filter_tokens.go | 15 + pkg/ast/visitor/namespace_resolver.go | 2 +- pkg/ast/visitor/namespace_resolver_test.go | 16 +- pkg/printer/pretty_printer.go | 2 +- pkg/printer/pretty_printer_test.go | 32 +- pkg/printer/printer.go | 78 +- pkg/printer/printer_parsed_php5_test.go | 5 +- pkg/printer/printer_parsed_php7_test.go | 5 +- pkg/printer/printer_test.go | 40 +- 19 files changed, 1457 insertions(+), 1418 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index ab1446d..52dc6df 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -4154,7 +4154,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { EndPos: 27, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -4186,7 +4186,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { EndPos: 36, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5124,7 +5124,7 @@ func TestStmtConstList(t *testing.T) { EndPos: 16, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5156,7 +5156,7 @@ func TestStmtConstList(t *testing.T) { EndPos: 25, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5451,7 +5451,7 @@ func TestStmtDeclare(t *testing.T) { EndPos: 18, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5530,7 +5530,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { EndPos: 18, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5562,7 +5562,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { EndPos: 34, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5642,7 +5642,7 @@ func TestStmtDeclare_Alt(t *testing.T) { EndPos: 18, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 926e1be..f836b8b 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6128 +// line internal/php5/php5.y:6155 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2514,18 +2514,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:449 { + yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token + yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) yyVAL.node = yyDollar[1].node - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:463 +// line internal/php5/php5.y:458 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2533,13 +2528,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:469 +// line internal/php5/php5.y:464 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:476 +// line internal/php5/php5.y:471 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2555,7 +2550,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:490 +// line internal/php5/php5.y:485 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2578,7 +2573,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:511 +// line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2595,7 +2590,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:526 +// line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2619,7 +2614,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:551 +// line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2627,13 +2622,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:557 +// line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:564 +// line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2649,7 +2644,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:578 +// line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2672,7 +2667,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:599 +// line internal/php5/php5.y:594 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2689,7 +2684,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:614 +// line internal/php5/php5.y:609 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2713,7 +2708,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:639 +// line internal/php5/php5.y:634 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2721,13 +2716,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:645 +// line internal/php5/php5.y:640 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:652 +// line internal/php5/php5.y:647 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2743,7 +2738,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:666 +// line internal/php5/php5.y:661 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2766,7 +2761,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:687 +// line internal/php5/php5.y:682 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2783,7 +2778,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:702 +// line internal/php5/php5.y:697 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2807,47 +2802,60 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:727 +// line internal/php5/php5.y:722 { - name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} constList := yyDollar[1].node.(*ast.StmtConstList) - lastConst := lastNode(constList.Consts) - constList.Consts = append(constList.Consts, constant) + constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + lastNode(constList.Consts).(*ast.StmtConstant).CommaTkn = yyDollar[2].token + constList.Consts = append(constList.Consts, &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, + }) + yyVAL.node = yyDollar[1].node - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) - yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, constList.Consts) - - // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:746 +// line internal/php5/php5.y:745 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} - constList := []ast.Vertex{constant} - yyVAL.node = &ast.StmtConstList{ast.Node{}, constList} + yyVAL.node = &ast.StmtConstList{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + }, + ConstTkn: yyDollar[1].token, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + Value: yyDollar[2].token.Value, + }, + EqualTkn: yyDollar[3].token, + Expr: yyDollar[4].node, + }, + }, + } - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, constList) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[2].token.SkippedTokens) } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:766 +// line internal/php5/php5.y:774 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2860,38 +2868,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:777 +// line internal/php5/php5.y:785 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:785 +// line internal/php5/php5.y:793 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:790 +// line internal/php5/php5.y:798 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:794 +// line internal/php5/php5.y:802 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:798 +// line internal/php5/php5.y:806 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:802 +// line internal/php5/php5.y:810 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2905,13 +2913,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:818 +// line internal/php5/php5.y:826 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:822 +// line internal/php5/php5.y:830 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2926,7 +2934,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:838 +// line internal/php5/php5.y:846 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -2939,7 +2947,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:849 +// line internal/php5/php5.y:857 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -2957,7 +2965,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:865 +// line internal/php5/php5.y:873 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -2982,7 +2990,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:888 +// line internal/php5/php5.y:896 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3001,7 +3009,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:905 +// line internal/php5/php5.y:913 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3016,7 +3024,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:918 +// line internal/php5/php5.y:926 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3043,7 +3051,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:943 +// line internal/php5/php5.y:951 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3064,7 +3072,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:962 +// line internal/php5/php5.y:970 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3078,7 +3086,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:974 +// line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3092,7 +3100,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:986 +// line internal/php5/php5.y:994 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3106,7 +3114,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:998 +// line internal/php5/php5.y:1006 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3120,7 +3128,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1010 +// line internal/php5/php5.y:1018 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3134,7 +3142,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1022 +// line internal/php5/php5.y:1030 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3148,7 +3156,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1034 +// line internal/php5/php5.y:1042 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3162,7 +3170,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1046 +// line internal/php5/php5.y:1054 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3176,7 +3184,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1058 +// line internal/php5/php5.y:1066 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3190,7 +3198,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1070 +// line internal/php5/php5.y:1078 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3204,7 +3212,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1082 +// line internal/php5/php5.y:1090 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3219,7 +3227,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1095 +// line internal/php5/php5.y:1103 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3231,7 +3239,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1105 +// line internal/php5/php5.y:1113 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3245,7 +3253,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1117 +// line internal/php5/php5.y:1125 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3261,7 +3269,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1131 +// line internal/php5/php5.y:1139 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3302,7 +3310,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1169 +// line internal/php5/php5.y:1177 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3343,7 +3351,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1207 +// line internal/php5/php5.y:1215 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3358,7 +3366,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1220 +// line internal/php5/php5.y:1228 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3371,7 +3379,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1231 +// line internal/php5/php5.y:1239 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3389,7 +3397,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1247 +// line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3403,7 +3411,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1259 +// line internal/php5/php5.y:1267 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3420,13 +3428,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1277 +// line internal/php5/php5.y:1285 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1281 +// line internal/php5/php5.y:1289 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3448,13 +3456,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1304 +// line internal/php5/php5.y:1312 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1308 +// line internal/php5/php5.y:1316 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3468,31 +3476,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1323 +// line internal/php5/php5.y:1331 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1327 +// line internal/php5/php5.y:1335 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1334 +// line internal/php5/php5.y:1342 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1338 +// line internal/php5/php5.y:1346 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1345 +// line internal/php5/php5.y:1353 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3513,13 +3521,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1367 +// line internal/php5/php5.y:1375 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1371 +// line internal/php5/php5.y:1379 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3528,49 +3536,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1381 +// line internal/php5/php5.y:1389 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1388 +// line internal/php5/php5.y:1396 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1395 +// line internal/php5/php5.y:1403 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1402 +// line internal/php5/php5.y:1410 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1406 +// line internal/php5/php5.y:1414 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1413 +// line internal/php5/php5.y:1421 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1417 +// line internal/php5/php5.y:1425 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1424 +// line internal/php5/php5.y:1432 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3594,7 +3602,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1449 +// line internal/php5/php5.y:1457 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3622,7 +3630,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1475 +// line internal/php5/php5.y:1483 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3639,7 +3647,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1494 +// line internal/php5/php5.y:1502 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3651,7 +3659,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1504 +// line internal/php5/php5.y:1512 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3666,7 +3674,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1517 +// line internal/php5/php5.y:1525 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3678,7 +3686,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1527 +// line internal/php5/php5.y:1535 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3693,13 +3701,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1543 +// line internal/php5/php5.y:1551 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1547 +// line internal/php5/php5.y:1555 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3711,19 +3719,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1560 +// line internal/php5/php5.y:1568 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1567 +// line internal/php5/php5.y:1575 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1571 +// line internal/php5/php5.y:1579 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3735,13 +3743,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1584 +// line internal/php5/php5.y:1592 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1588 +// line internal/php5/php5.y:1596 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3753,13 +3761,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1601 +// line internal/php5/php5.y:1609 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1605 +// line internal/php5/php5.y:1613 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3773,13 +3781,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1617 +// line internal/php5/php5.y:1625 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1621 +// line internal/php5/php5.y:1629 { yyVAL.node = yyDollar[2].node @@ -3788,13 +3796,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1631 +// line internal/php5/php5.y:1639 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1635 +// line internal/php5/php5.y:1643 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3806,7 +3814,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1645 +// line internal/php5/php5.y:1653 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3820,7 +3828,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1660 +// line internal/php5/php5.y:1668 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3829,7 +3837,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1667 +// line internal/php5/php5.y:1675 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3846,7 +3854,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1685 +// line internal/php5/php5.y:1693 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3855,7 +3863,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1692 +// line internal/php5/php5.y:1700 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3872,7 +3880,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1711 +// line internal/php5/php5.y:1719 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3881,7 +3889,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1718 +// line internal/php5/php5.y:1726 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3898,40 +3906,50 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1737 +// line internal/php5/php5.y:1745 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} - yyVAL.list = []ast.Vertex{constant} + yyVAL.list = []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Value: yyDollar[1].token.Value, + }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + }, + } - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.list).(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1751 +// line internal/php5/php5.y:1765 { - name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} - yyVAL.list = append(yyDollar[1].list, constant) + lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token + yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, + }) - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.list).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1770 +// line internal/php5/php5.y:1788 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3946,7 +3964,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1783 +// line internal/php5/php5.y:1801 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3962,7 +3980,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1797 +// line internal/php5/php5.y:1815 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -3979,7 +3997,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1812 +// line internal/php5/php5.y:1830 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -3998,13 +4016,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1833 +// line internal/php5/php5.y:1851 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1837 +// line internal/php5/php5.y:1855 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4019,7 +4037,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1850 +// line internal/php5/php5.y:1868 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4034,19 +4052,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1867 +// line internal/php5/php5.y:1885 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1871 +// line internal/php5/php5.y:1889 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1879 +// line internal/php5/php5.y:1897 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4055,7 +4073,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1886 +// line internal/php5/php5.y:1904 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4072,13 +4090,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1906 +// line internal/php5/php5.y:1924 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1910 +// line internal/php5/php5.y:1928 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4091,13 +4109,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1925 +// line internal/php5/php5.y:1943 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1929 +// line internal/php5/php5.y:1947 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4115,13 +4133,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1949 +// line internal/php5/php5.y:1967 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1953 +// line internal/php5/php5.y:1971 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4133,13 +4151,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1967 +// line internal/php5/php5.y:1985 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1971 +// line internal/php5/php5.y:1989 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4156,25 +4174,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1990 +// line internal/php5/php5.y:2008 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1994 +// line internal/php5/php5.y:2012 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2001 +// line internal/php5/php5.y:2019 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2005 +// line internal/php5/php5.y:2023 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4183,7 +4201,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2015 +// line internal/php5/php5.y:2033 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4219,7 +4237,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2049 +// line internal/php5/php5.y:2067 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4256,13 +4274,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2088 +// line internal/php5/php5.y:2106 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2092 +// line internal/php5/php5.y:2110 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4274,7 +4292,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2102 +// line internal/php5/php5.y:2120 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4286,13 +4304,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2112 +// line internal/php5/php5.y:2130 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2120 +// line internal/php5/php5.y:2138 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4305,7 +4323,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2131 +// line internal/php5/php5.y:2149 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4318,7 +4336,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2142 +// line internal/php5/php5.y:2160 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4333,13 +4351,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2159 +// line internal/php5/php5.y:2177 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2163 +// line internal/php5/php5.y:2181 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4348,7 +4366,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2173 +// line internal/php5/php5.y:2191 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4360,7 +4378,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2183 +// line internal/php5/php5.y:2201 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4372,7 +4390,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2193 +// line internal/php5/php5.y:2211 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4384,7 +4402,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2203 +// line internal/php5/php5.y:2221 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4396,7 +4414,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2216 +// line internal/php5/php5.y:2234 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4405,13 +4423,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2223 +// line internal/php5/php5.y:2241 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2231 +// line internal/php5/php5.y:2249 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4425,7 +4443,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2243 +// line internal/php5/php5.y:2261 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4437,7 +4455,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2253 +// line internal/php5/php5.y:2271 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4451,7 +4469,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2269 +// line internal/php5/php5.y:2287 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4469,7 +4487,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2285 +// line internal/php5/php5.y:2303 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4488,7 +4506,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2302 +// line internal/php5/php5.y:2320 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4505,7 +4523,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2317 +// line internal/php5/php5.y:2335 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4523,19 +4541,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2337 +// line internal/php5/php5.y:2355 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2341 +// line internal/php5/php5.y:2359 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2349 +// line internal/php5/php5.y:2367 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4549,26 +4567,21 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2361 +// line internal/php5/php5.y:2379 { + yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token + yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) yyVAL.node = yyDollar[1].node - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2372 +// line internal/php5/php5.y:2385 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2376 +// line internal/php5/php5.y:2389 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4599,7 +4612,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2408 +// line internal/php5/php5.y:2421 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4611,13 +4624,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2421 +// line internal/php5/php5.y:2434 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2425 +// line internal/php5/php5.y:2438 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4631,7 +4644,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2437 +// line internal/php5/php5.y:2450 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4643,7 +4656,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2447 +// line internal/php5/php5.y:2460 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4655,31 +4668,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2460 +// line internal/php5/php5.y:2473 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2464 +// line internal/php5/php5.y:2477 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2471 +// line internal/php5/php5.y:2484 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2475 +// line internal/php5/php5.y:2488 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2482 +// line internal/php5/php5.y:2495 { yyVAL.node = yyDollar[1].node @@ -4689,7 +4702,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2490 +// line internal/php5/php5.y:2503 { yyVAL.node = yyDollar[1].node @@ -4699,7 +4712,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2501 +// line internal/php5/php5.y:2514 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4712,13 +4725,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2515 +// line internal/php5/php5.y:2528 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2519 +// line internal/php5/php5.y:2532 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4727,7 +4740,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2529 +// line internal/php5/php5.y:2542 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4741,13 +4754,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2541 +// line internal/php5/php5.y:2554 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2548 +// line internal/php5/php5.y:2561 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4763,7 +4776,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2565 +// line internal/php5/php5.y:2578 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4779,7 +4792,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2579 +// line internal/php5/php5.y:2592 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4792,19 +4805,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2593 +// line internal/php5/php5.y:2606 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2597 +// line internal/php5/php5.y:2610 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2604 +// line internal/php5/php5.y:2617 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4817,7 +4830,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2615 +// line internal/php5/php5.y:2628 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4830,13 +4843,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2629 +// line internal/php5/php5.y:2642 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2633 +// line internal/php5/php5.y:2646 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4849,31 +4862,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2647 +// line internal/php5/php5.y:2660 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2651 +// line internal/php5/php5.y:2664 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2658 +// line internal/php5/php5.y:2671 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2662 +// line internal/php5/php5.y:2675 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2669 +// line internal/php5/php5.y:2682 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4885,7 +4898,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2679 +// line internal/php5/php5.y:2692 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4897,7 +4910,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2689 +// line internal/php5/php5.y:2702 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4909,7 +4922,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2699 +// line internal/php5/php5.y:2712 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4921,7 +4934,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2709 +// line internal/php5/php5.y:2722 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4933,7 +4946,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2719 +// line internal/php5/php5.y:2732 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4945,7 +4958,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2732 +// line internal/php5/php5.y:2745 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4963,7 +4976,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2748 +// line internal/php5/php5.y:2761 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4982,7 +4995,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2765 +// line internal/php5/php5.y:2778 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4999,7 +5012,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2780 +// line internal/php5/php5.y:2793 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5017,46 +5030,60 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2799 +// line internal/php5/php5.y:2812 { - name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} - constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[5].node} constList := yyDollar[1].node.(*ast.StmtClassConstList) - lastConst := lastNode(constList.Consts) - constList.Consts = append(constList.Consts, constant) + constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + lastNode(yyVAL.node.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).CommaTkn = yyDollar[2].token + constList.Consts = append(constList.Consts, &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, + }) + yyVAL.node = yyDollar[1].node - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) - yyDollar[1].node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2818 +// line internal/php5/php5.y:2835 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - constant := &ast.StmtConstant{ast.Node{}, name, yyDollar[4].node} - yyVAL.node = &ast.StmtClassConstList{ast.Node{}, nil, []ast.Vertex{constant}} + yyVAL.node = &ast.StmtClassConstList{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + }, + ConstTkn: yyDollar[1].token, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + Value: yyDollar[2].token.Value, + }, + EqualTkn: yyDollar[3].token, + Expr: yyDollar[4].node, + }, + }, + } - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - constant.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[2].token.SkippedTokens) } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2837 +// line internal/php5/php5.y:2864 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5065,25 +5092,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2844 +// line internal/php5/php5.y:2871 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2852 +// line internal/php5/php5.y:2879 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2856 +// line internal/php5/php5.y:2883 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2863 +// line internal/php5/php5.y:2890 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5092,25 +5119,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2870 +// line internal/php5/php5.y:2897 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2877 +// line internal/php5/php5.y:2904 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2881 +// line internal/php5/php5.y:2908 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2888 +// line internal/php5/php5.y:2915 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5124,7 +5151,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2900 +// line internal/php5/php5.y:2927 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5138,37 +5165,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2915 +// line internal/php5/php5.y:2942 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2919 +// line internal/php5/php5.y:2946 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2923 +// line internal/php5/php5.y:2950 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2930 +// line internal/php5/php5.y:2957 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2934 +// line internal/php5/php5.y:2961 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2941 +// line internal/php5/php5.y:2968 { if yyDollar[3].node != nil { @@ -5184,7 +5211,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2958 +// line internal/php5/php5.y:2985 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5201,7 +5228,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2973 +// line internal/php5/php5.y:3000 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5214,7 +5241,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2984 +// line internal/php5/php5.y:3011 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5228,7 +5255,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2996 +// line internal/php5/php5.y:3023 { var _new *ast.ExprNew @@ -5255,7 +5282,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3021 +// line internal/php5/php5.y:3048 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5267,7 +5294,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3031 +// line internal/php5/php5.y:3058 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5279,7 +5306,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3041 +// line internal/php5/php5.y:3068 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5319,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3052 +// line internal/php5/php5.y:3079 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5305,7 +5332,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3063 +// line internal/php5/php5.y:3090 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5345,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3074 +// line internal/php5/php5.y:3101 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5358,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3085 +// line internal/php5/php5.y:3112 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5371,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3096 +// line internal/php5/php5.y:3123 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5384,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3107 +// line internal/php5/php5.y:3134 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5397,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3118 +// line internal/php5/php5.y:3145 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5410,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3129 +// line internal/php5/php5.y:3156 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5423,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3140 +// line internal/php5/php5.y:3167 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5436,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3151 +// line internal/php5/php5.y:3178 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5449,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3162 +// line internal/php5/php5.y:3189 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5435,7 +5462,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3173 +// line internal/php5/php5.y:3200 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5447,7 +5474,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3183 +// line internal/php5/php5.y:3210 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5460,7 +5487,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3194 +// line internal/php5/php5.y:3221 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5472,7 +5499,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3204 +// line internal/php5/php5.y:3231 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5485,7 +5512,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3215 +// line internal/php5/php5.y:3242 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5498,7 +5525,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3226 +// line internal/php5/php5.y:3253 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5511,7 +5538,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3237 +// line internal/php5/php5.y:3264 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5551,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3248 +// line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5564,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3259 +// line internal/php5/php5.y:3286 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5577,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3270 +// line internal/php5/php5.y:3297 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5590,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3281 +// line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5603,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3292 +// line internal/php5/php5.y:3319 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5616,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3303 +// line internal/php5/php5.y:3330 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5629,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3314 +// line internal/php5/php5.y:3341 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5642,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3325 +// line internal/php5/php5.y:3352 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5655,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3336 +// line internal/php5/php5.y:3363 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5668,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3347 +// line internal/php5/php5.y:3374 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5681,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3358 +// line internal/php5/php5.y:3385 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5694,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3369 +// line internal/php5/php5.y:3396 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5707,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3380 +// line internal/php5/php5.y:3407 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5720,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3391 +// line internal/php5/php5.y:3418 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5705,7 +5732,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3401 +// line internal/php5/php5.y:3428 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5717,7 +5744,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3411 +// line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5729,7 +5756,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3421 +// line internal/php5/php5.y:3448 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5741,7 +5768,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3431 +// line internal/php5/php5.y:3458 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5754,7 +5781,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3442 +// line internal/php5/php5.y:3469 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5794,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3453 +// line internal/php5/php5.y:3480 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5807,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3464 +// line internal/php5/php5.y:3491 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5821,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3476 +// line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5834,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3487 +// line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5847,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3498 +// line internal/php5/php5.y:3525 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5860,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3509 +// line internal/php5/php5.y:3536 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5873,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3520 +// line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,19 +5886,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3531 +// line internal/php5/php5.y:3558 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3535 +// line internal/php5/php5.y:3562 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3539 +// line internal/php5/php5.y:3566 { yyVAL.node = yyDollar[2].node @@ -5903,7 +5930,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3596 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5917,7 +5944,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3581 +// line internal/php5/php5.y:3608 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5931,13 +5958,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3593 +// line internal/php5/php5.y:3620 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3597 +// line internal/php5/php5.y:3624 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5950,7 +5977,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3608 +// line internal/php5/php5.y:3635 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5963,7 +5990,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3619 +// line internal/php5/php5.y:3646 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5976,7 +6003,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3630 +// line internal/php5/php5.y:3657 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5989,7 +6016,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3641 +// line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6002,7 +6029,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3652 +// line internal/php5/php5.y:3679 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6042,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3663 +// line internal/php5/php5.y:3690 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6055,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3674 +// line internal/php5/php5.y:3701 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6048,7 +6075,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3692 +// line internal/php5/php5.y:3719 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6060,25 +6087,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3702 +// line internal/php5/php5.y:3729 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3706 +// line internal/php5/php5.y:3733 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3710 +// line internal/php5/php5.y:3737 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3714 +// line internal/php5/php5.y:3741 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6090,7 +6117,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3724 +// line internal/php5/php5.y:3751 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6102,7 +6129,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3734 +// line internal/php5/php5.y:3761 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6114,7 +6141,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3744 +// line internal/php5/php5.y:3771 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6141,7 +6168,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3768 +// line internal/php5/php5.y:3795 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6169,7 +6196,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3796 +// line internal/php5/php5.y:3823 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6181,7 +6208,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3806 +// line internal/php5/php5.y:3833 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6193,7 +6220,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3816 +// line internal/php5/php5.y:3843 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6206,7 +6233,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3827 +// line internal/php5/php5.y:3854 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6219,7 +6246,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3868 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6232,7 +6259,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3879 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6245,7 +6272,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3890 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6261,7 +6288,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3877 +// line internal/php5/php5.y:3904 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6274,7 +6301,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3891 +// line internal/php5/php5.y:3918 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6288,7 +6315,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3903 +// line internal/php5/php5.y:3930 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6301,19 +6328,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3917 +// line internal/php5/php5.y:3944 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3951 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3928 +// line internal/php5/php5.y:3955 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6327,7 +6354,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3943 +// line internal/php5/php5.y:3970 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6343,7 +6370,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3957 +// line internal/php5/php5.y:3984 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6362,7 +6389,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3974 +// line internal/php5/php5.y:4001 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6377,7 +6404,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3987 +// line internal/php5/php5.y:4014 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6395,7 +6422,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4006 +// line internal/php5/php5.y:4033 { name := &ast.NameName{ Node: ast.Node{ @@ -6410,7 +6437,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4019 +// line internal/php5/php5.y:4046 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6427,7 +6454,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4034 +// line internal/php5/php5.y:4061 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6443,7 +6470,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4048 +// line internal/php5/php5.y:4075 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6456,7 +6483,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4059 +// line internal/php5/php5.y:4086 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6469,7 +6496,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4070 +// line internal/php5/php5.y:4097 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6482,7 +6509,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4081 +// line internal/php5/php5.y:4108 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6495,7 +6522,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4092 +// line internal/php5/php5.y:4119 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6507,7 +6534,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4105 +// line internal/php5/php5.y:4132 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6519,7 +6546,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4115 +// line internal/php5/php5.y:4142 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6530,7 +6557,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4124 +// line internal/php5/php5.y:4151 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6543,7 +6570,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4135 +// line internal/php5/php5.y:4162 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6555,7 +6582,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4148 +// line internal/php5/php5.y:4175 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6566,7 +6593,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4184 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6579,7 +6606,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4168 +// line internal/php5/php5.y:4195 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6591,19 +6618,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4181 +// line internal/php5/php5.y:4208 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4185 +// line internal/php5/php5.y:4212 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4192 +// line internal/php5/php5.y:4219 { yyVAL.node = yyDollar[1].node @@ -6644,25 +6671,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4231 +// line internal/php5/php5.y:4258 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4239 +// line internal/php5/php5.y:4266 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4243 +// line internal/php5/php5.y:4270 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4251 +// line internal/php5/php5.y:4278 { yyVAL.list = yyDollar[2].list @@ -6671,13 +6698,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4261 +// line internal/php5/php5.y:4288 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4265 +// line internal/php5/php5.y:4292 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} @@ -6690,19 +6717,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4276 +// line internal/php5/php5.y:4303 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4283 +// line internal/php5/php5.y:4310 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4287 +// line internal/php5/php5.y:4314 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6712,25 +6739,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4295 +// line internal/php5/php5.y:4322 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4302 +// line internal/php5/php5.y:4329 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4306 +// line internal/php5/php5.y:4333 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4313 +// line internal/php5/php5.y:4340 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6742,7 +6769,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4323 +// line internal/php5/php5.y:4350 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6754,7 +6781,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4333 +// line internal/php5/php5.y:4360 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6766,7 +6793,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4343 +// line internal/php5/php5.y:4370 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6778,7 +6805,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4353 +// line internal/php5/php5.y:4380 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6790,7 +6817,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4390 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6802,7 +6829,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4373 +// line internal/php5/php5.y:4400 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6814,7 +6841,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4383 +// line internal/php5/php5.y:4410 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6826,7 +6853,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4393 +// line internal/php5/php5.y:4420 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6838,7 +6865,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4403 +// line internal/php5/php5.y:4430 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6850,7 +6877,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4413 +// line internal/php5/php5.y:4440 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6864,7 +6891,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4425 +// line internal/php5/php5.y:4452 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6876,7 +6903,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4438 +// line internal/php5/php5.y:4465 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6892,25 +6919,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4455 +// line internal/php5/php5.y:4482 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4462 +// line internal/php5/php5.y:4489 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4466 +// line internal/php5/php5.y:4493 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4470 +// line internal/php5/php5.y:4497 { name := &ast.NameName{ Node: ast.Node{ @@ -6925,7 +6952,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4483 +// line internal/php5/php5.y:4510 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6942,7 +6969,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4498 +// line internal/php5/php5.y:4525 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6958,7 +6985,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4512 +// line internal/php5/php5.y:4539 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6972,7 +6999,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4551 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6985,13 +7012,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4562 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4539 +// line internal/php5/php5.y:4566 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7003,13 +7030,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4549 +// line internal/php5/php5.y:4576 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4556 +// line internal/php5/php5.y:4583 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7022,7 +7049,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4567 +// line internal/php5/php5.y:4594 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7035,7 +7062,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4578 +// line internal/php5/php5.y:4605 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7048,7 +7075,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4589 +// line internal/php5/php5.y:4616 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7061,7 +7088,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4600 +// line internal/php5/php5.y:4627 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7074,7 +7101,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4611 +// line internal/php5/php5.y:4638 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7087,7 +7114,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4649 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7100,7 +7127,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4633 +// line internal/php5/php5.y:4660 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7112,7 +7139,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4643 +// line internal/php5/php5.y:4670 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7124,7 +7151,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4653 +// line internal/php5/php5.y:4680 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7137,7 +7164,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4664 +// line internal/php5/php5.y:4691 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7150,7 +7177,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4675 +// line internal/php5/php5.y:4702 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7163,7 +7190,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4686 +// line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7176,7 +7203,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4697 +// line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7189,7 +7216,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4708 +// line internal/php5/php5.y:4735 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7202,7 +7229,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4719 +// line internal/php5/php5.y:4746 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7215,7 +7242,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4730 +// line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7228,7 +7255,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4741 +// line internal/php5/php5.y:4768 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7241,7 +7268,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4752 +// line internal/php5/php5.y:4779 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7254,7 +7281,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4763 +// line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7267,7 +7294,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4774 +// line internal/php5/php5.y:4801 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7280,7 +7307,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4785 +// line internal/php5/php5.y:4812 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7293,7 +7320,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4796 +// line internal/php5/php5.y:4823 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7306,7 +7333,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4834 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7320,7 +7347,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4819 +// line internal/php5/php5.y:4846 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7333,7 +7360,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4830 +// line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7346,7 +7373,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4841 +// line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7359,7 +7386,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4852 +// line internal/php5/php5.y:4879 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7372,7 +7399,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4863 +// line internal/php5/php5.y:4890 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7386,7 +7413,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4875 +// line internal/php5/php5.y:4902 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7400,7 +7427,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4887 +// line internal/php5/php5.y:4914 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7412,7 +7439,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4897 +// line internal/php5/php5.y:4924 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7424,7 +7451,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4907 +// line internal/php5/php5.y:4934 { yyVAL.node = yyDollar[2].node @@ -7434,13 +7461,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4918 +// line internal/php5/php5.y:4945 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4922 +// line internal/php5/php5.y:4949 { name := &ast.NameName{ Node: ast.Node{ @@ -7455,7 +7482,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4935 +// line internal/php5/php5.y:4962 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7472,7 +7499,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4950 +// line internal/php5/php5.y:4977 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7488,7 +7515,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4967 +// line internal/php5/php5.y:4994 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7502,25 +7529,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4979 +// line internal/php5/php5.y:5006 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4983 +// line internal/php5/php5.y:5010 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4987 +// line internal/php5/php5.y:5014 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4991 +// line internal/php5/php5.y:5018 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7532,7 +7559,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5001 +// line internal/php5/php5.y:5028 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7544,7 +7571,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5038 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7556,13 +7583,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5024 +// line internal/php5/php5.y:5051 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5028 +// line internal/php5/php5.y:5055 { yyVAL.list = yyDollar[1].list @@ -7573,19 +7600,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5040 +// line internal/php5/php5.y:5067 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5044 +// line internal/php5/php5.y:5071 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5051 +// line internal/php5/php5.y:5078 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7600,7 +7627,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5064 +// line internal/php5/php5.y:5091 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7614,7 +7641,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5076 +// line internal/php5/php5.y:5103 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7628,7 +7655,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5088 +// line internal/php5/php5.y:5115 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7641,19 +7668,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5102 +// line internal/php5/php5.y:5129 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5106 +// line internal/php5/php5.y:5133 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5113 +// line internal/php5/php5.y:5140 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7666,7 +7693,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5124 +// line internal/php5/php5.y:5151 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7679,25 +7706,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5139 +// line internal/php5/php5.y:5166 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5147 +// line internal/php5/php5.y:5174 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5154 +// line internal/php5/php5.y:5181 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5161 +// line internal/php5/php5.y:5188 { yyVAL.node = yyDollar[1].node @@ -7755,25 +7782,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5244 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5224 +// line internal/php5/php5.y:5251 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5228 +// line internal/php5/php5.y:5255 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5236 +// line internal/php5/php5.y:5263 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7787,7 +7814,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5251 +// line internal/php5/php5.y:5278 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7801,7 +7828,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5263 +// line internal/php5/php5.y:5290 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7815,7 +7842,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5278 +// line internal/php5/php5.y:5305 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7824,31 +7851,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5288 +// line internal/php5/php5.y:5315 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5292 +// line internal/php5/php5.y:5319 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5296 +// line internal/php5/php5.y:5323 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5303 +// line internal/php5/php5.y:5330 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5307 +// line internal/php5/php5.y:5334 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7860,7 +7887,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5320 +// line internal/php5/php5.y:5347 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7873,7 +7900,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5331 +// line internal/php5/php5.y:5358 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7886,13 +7913,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5345 +// line internal/php5/php5.y:5372 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5352 +// line internal/php5/php5.y:5379 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7905,7 +7932,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5363 +// line internal/php5/php5.y:5390 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7918,31 +7945,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5377 +// line internal/php5/php5.y:5404 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5381 +// line internal/php5/php5.y:5408 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5385 +// line internal/php5/php5.y:5412 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5393 +// line internal/php5/php5.y:5420 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5397 +// line internal/php5/php5.y:5424 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7954,13 +7981,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5407 +// line internal/php5/php5.y:5434 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5414 +// line internal/php5/php5.y:5441 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7973,7 +8000,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5425 +// line internal/php5/php5.y:5452 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7986,13 +8013,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5463 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5444 +// line internal/php5/php5.y:5471 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8006,7 +8033,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5456 +// line internal/php5/php5.y:5483 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8020,25 +8047,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5471 +// line internal/php5/php5.y:5498 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5475 +// line internal/php5/php5.y:5502 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5483 +// line internal/php5/php5.y:5510 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5487 +// line internal/php5/php5.y:5514 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8048,7 +8075,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5498 +// line internal/php5/php5.y:5525 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8062,7 +8089,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5510 +// line internal/php5/php5.y:5537 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8076,7 +8103,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5522 +// line internal/php5/php5.y:5549 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8086,7 +8113,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5533 +// line internal/php5/php5.y:5560 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8098,7 +8125,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5543 +// line internal/php5/php5.y:5570 { yyVAL.node = yyDollar[2].node @@ -8111,7 +8138,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5557 +// line internal/php5/php5.y:5584 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8124,7 +8151,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5568 +// line internal/php5/php5.y:5595 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8141,7 +8168,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5586 +// line internal/php5/php5.y:5613 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8154,7 +8181,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5597 +// line internal/php5/php5.y:5624 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8164,7 +8191,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5609 +// line internal/php5/php5.y:5636 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8176,7 +8203,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5619 +// line internal/php5/php5.y:5646 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8192,19 +8219,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5633 +// line internal/php5/php5.y:5660 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5641 +// line internal/php5/php5.y:5668 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5645 +// line internal/php5/php5.y:5672 { yyVAL.list = yyDollar[1].list @@ -8219,7 +8246,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5661 +// line internal/php5/php5.y:5688 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8234,7 +8261,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5674 +// line internal/php5/php5.y:5701 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8248,7 +8275,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5686 +// line internal/php5/php5.y:5713 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8262,7 +8289,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5698 +// line internal/php5/php5.y:5725 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8275,7 +8302,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5709 +// line internal/php5/php5.y:5736 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8293,7 +8320,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5725 +// line internal/php5/php5.y:5752 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8309,7 +8336,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5766 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8326,7 +8353,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5754 +// line internal/php5/php5.y:5781 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8341,13 +8368,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5770 +// line internal/php5/php5.y:5797 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5774 +// line internal/php5/php5.y:5801 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8360,13 +8387,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5785 +// line internal/php5/php5.y:5812 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5789 +// line internal/php5/php5.y:5816 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8379,7 +8406,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5803 +// line internal/php5/php5.y:5830 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8393,7 +8420,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5815 +// line internal/php5/php5.y:5842 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8410,7 +8437,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5830 +// line internal/php5/php5.y:5857 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8429,7 +8456,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5847 +// line internal/php5/php5.y:5874 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8444,7 +8471,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5860 +// line internal/php5/php5.y:5887 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8461,7 +8488,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5875 +// line internal/php5/php5.y:5902 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8480,7 +8507,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5892 +// line internal/php5/php5.y:5919 { yyVAL.node = yyDollar[2].node @@ -8490,7 +8517,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5903 +// line internal/php5/php5.y:5930 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8502,7 +8529,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5913 +// line internal/php5/php5.y:5940 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8519,7 +8546,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5928 +// line internal/php5/php5.y:5955 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8533,7 +8560,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5943 +// line internal/php5/php5.y:5970 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8547,7 +8574,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5955 +// line internal/php5/php5.y:5982 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8563,7 +8590,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5969 +// line internal/php5/php5.y:5996 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8579,7 +8606,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5983 +// line internal/php5/php5.y:6010 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8591,7 +8618,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5993 +// line internal/php5/php5.y:6020 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8603,7 +8630,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6003 +// line internal/php5/php5.y:6030 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -8619,7 +8646,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6017 +// line internal/php5/php5.y:6044 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8631,7 +8658,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6027 +// line internal/php5/php5.y:6054 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8643,13 +8670,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6040 +// line internal/php5/php5.y:6067 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6044 +// line internal/php5/php5.y:6071 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8658,19 +8685,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6054 +// line internal/php5/php5.y:6081 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6058 +// line internal/php5/php5.y:6085 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6065 +// line internal/php5/php5.y:6092 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8686,7 +8713,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6079 +// line internal/php5/php5.y:6106 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8702,7 +8729,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6096 +// line internal/php5/php5.y:6123 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8718,7 +8745,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6113 +// line internal/php5/php5.y:6140 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 5d11a5d..181e9a4 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -447,14 +447,9 @@ top_statement: } | constant_declaration ';' { + $1.(*ast.StmtConstList).SemiColonTkn = $2 + $1.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition($1, $2) $$ = $1 - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Stmts, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } ; @@ -725,39 +720,52 @@ use_const_declaration: constant_declaration: constant_declaration ',' T_STRING '=' static_scalar { - name := &ast.Identifier{ast.Node{}, $3.Value} - constant := &ast.StmtConstant{ast.Node{}, name, $5} constList := $1.(*ast.StmtConstList) - lastConst := lastNode(constList.Consts) - constList.Consts = append(constList.Consts, constant) + constList.Node.Position = position.NewNodesPosition($1, $5) + lastNode(constList.Consts).(*ast.StmtConstant).CommaTkn = $2 + constList.Consts = append(constList.Consts, &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $5), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + EqualTkn: $4, + Expr: $5, + }) + $$ = $1 - // save position - name.GetNode().Position = position.NewTokenPosition($3) - constant.GetNode().Position = position.NewTokenNodePosition($3, $5) - $$.GetNode().Position = position.NewNodeNodeListPosition($1, constList.Consts) - - // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) } | T_CONST T_STRING '=' static_scalar { - name := &ast.Identifier{ast.Node{}, $2.Value} - constant := &ast.StmtConstant{ast.Node{}, name, $4} - constList := []ast.Vertex{constant} - $$ = &ast.StmtConstList{ast.Node{}, constList} + $$ = &ast.StmtConstList{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $4), + }, + ConstTkn: $1, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($2, $4), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + Value: $2.Value, + }, + EqualTkn: $3, + Expr: $4, + }, + }, + } - // save position - name.GetNode().Position = position.NewTokenPosition($2) - constant.GetNode().Position = position.NewTokenNodePosition($2, $4) - $$.GetNode().Position = position.NewTokenNodeListPosition($1, constList) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, $2.SkippedTokens) } ; @@ -1735,32 +1743,42 @@ declare_statement: declare_list: T_STRING '=' static_scalar { - name := &ast.Identifier{ast.Node{}, $1.Value} - constant := &ast.StmtConstant{ast.Node{}, name, $3} - $$ = []ast.Vertex{constant} + $$ = []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Value: $1.Value, + }, + EqualTkn: $2, + Expr: $3, + }, + } - // save position - name.GetNode().Position = position.NewTokenPosition($1) - constant.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(constant, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode($$).(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) } | declare_list ',' T_STRING '=' static_scalar { - name := &ast.Identifier{ast.Node{}, $3.Value} - constant := &ast.StmtConstant{ast.Node{}, name, $5} - $$ = append($1, constant) + lastNode($1).(*ast.StmtConstant).CommaTkn = $2 + $$ = append($1, &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $5), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + EqualTkn: $4, + Expr: $5, + }) - // save position - name.GetNode().Position = position.NewTokenPosition($3) - constant.GetNode().Position = position.NewTokenNodePosition($3, $5) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode($$).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) } ; @@ -2359,14 +2377,9 @@ class_statement: } | class_constant_declaration ';' { + $1.(*ast.StmtClassConstList).SemiColonTkn = $2 + $1.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition($1, $2) $$ = $1 - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.ConstList, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) } | trait_use_statement { @@ -2797,38 +2810,52 @@ class_variable_declaration: class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar { - name := &ast.Identifier{ast.Node{}, $3.Value} - constant := &ast.StmtConstant{ast.Node{}, name, $5} constList := $1.(*ast.StmtClassConstList) - lastConst := lastNode(constList.Consts) - constList.Consts = append(constList.Consts, constant) + constList.Node.Position = position.NewNodesPosition($1, $5) + lastNode($$.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).CommaTkn = $2 + constList.Consts = append(constList.Consts, &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $5), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + EqualTkn: $4, + Expr: $5, + }) + $$ = $1 - // save position - name.GetNode().Position = position.NewTokenPosition($3) - constant.GetNode().Position = position.NewTokenNodePosition($3, $5) - $1.GetNode().Position = position.NewNodesPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating(lastConst, token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) } | T_CONST T_STRING '=' static_scalar { - name := &ast.Identifier{ast.Node{}, $2.Value} - constant := &ast.StmtConstant{ast.Node{}, name, $4} - $$ = &ast.StmtClassConstList{ast.Node{}, nil, []ast.Vertex{constant}} + $$ = &ast.StmtClassConstList{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $4), + }, + ConstTkn: $1, + Consts: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($2, $4), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + Value: $2.Value, + }, + EqualTkn: $3, + Expr: $4, + }, + }, + } - // save position - name.GetNode().Position = position.NewTokenPosition($2) - constant.GetNode().Position = position.NewTokenNodePosition($2, $4) - $$.GetNode().Position = position.NewTokenNodePosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(constant, token.Name, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, $2.SkippedTokens) } ; diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index a8b3fcb..ad42cb2 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -3134,7 +3134,7 @@ func TestPhp5(t *testing.T) { EndPos: 1071, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 58, @@ -3166,7 +3166,7 @@ func TestPhp5(t *testing.T) { EndPos: 1080, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 58, @@ -3793,7 +3793,7 @@ func TestPhp5(t *testing.T) { EndPos: 1409, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 67, @@ -3825,7 +3825,7 @@ func TestPhp5(t *testing.T) { EndPos: 1418, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 67, @@ -4020,7 +4020,7 @@ func TestPhp5(t *testing.T) { EndPos: 1512, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 71, @@ -4074,7 +4074,7 @@ func TestPhp5(t *testing.T) { EndPos: 1530, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 72, @@ -4106,7 +4106,7 @@ func TestPhp5(t *testing.T) { EndPos: 1546, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 72, @@ -4162,7 +4162,7 @@ func TestPhp5(t *testing.T) { EndPos: 1566, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 73, diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 4cb66c8..b0e66dd 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -4318,7 +4318,7 @@ func TestStmtClassConstList(t *testing.T) { EndPos: 34, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -4350,7 +4350,7 @@ func TestStmtClassConstList(t *testing.T) { EndPos: 43, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -4442,7 +4442,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { EndPos: 27, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -4474,7 +4474,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { EndPos: 36, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5721,7 +5721,7 @@ func TestStmtConstList(t *testing.T) { EndPos: 16, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -5753,7 +5753,7 @@ func TestStmtConstList(t *testing.T) { EndPos: 25, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -6048,7 +6048,7 @@ func TestStmtDeclare(t *testing.T) { EndPos: 18, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -6127,7 +6127,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { EndPos: 18, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -6159,7 +6159,7 @@ func TestStmtDeclare_Stmts(t *testing.T) { EndPos: 34, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -6239,7 +6239,7 @@ func TestStmtDeclare_Alt(t *testing.T) { EndPos: 18, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index f9ec7d4..39c7876 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4832 +// line internal/php7/php7.y:4834 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:293 + // line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:323 + // line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:327 + // line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:334 + // line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:345 + // line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:352 + // line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:364 + // line internal/php7/php7.y:364 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:378 + // line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:387 + // line internal/php7/php7.y:387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:398 + // line internal/php7/php7.y:398 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:411 + // line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:416 + // line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:420 + // line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:424 + // line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:428 + // line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:432 + // line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:436 + // line internal/php7/php7.y:436 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:448 + // line internal/php7/php7.y:448 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:464 + // line internal/php7/php7.y:464 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:482 + // line internal/php7/php7.y:482 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:494 + // line internal/php7/php7.y:494 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:504 + // line internal/php7/php7.y:504 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:515 + // line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:526 + // line internal/php7/php7.y:526 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,21 +2823,20 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:538 + // line internal/php7/php7.y:538 { - yyVAL.node = &ast.StmtConstList{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtConstList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ConstTkn: yyDollar[1].token, + Consts: yyDollar[2].list, + SemiColonTkn: yyDollar[3].token, + } } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:553 + // line internal/php7/php7.y:552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2849,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:563 + // line internal/php7/php7.y:562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2861,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:576 + // line internal/php7/php7.y:575 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2885,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:598 + // line internal/php7/php7.y:597 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2908,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:622 + // line internal/php7/php7.y:621 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2930,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:642 + // line internal/php7/php7.y:641 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2953,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:666 + // line internal/php7/php7.y:665 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:670 + // line internal/php7/php7.y:669 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:677 + // line internal/php7/php7.y:676 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2973,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:683 + // line internal/php7/php7.y:682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:690 + // line internal/php7/php7.y:689 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2987,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:696 + // line internal/php7/php7.y:695 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:703 + // line internal/php7/php7.y:702 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3001,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:709 + // line internal/php7/php7.y:708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:716 + // line internal/php7/php7.y:715 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:720 + // line internal/php7/php7.y:719 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3023,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:731 + // line internal/php7/php7.y:730 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3039,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:745 + // line internal/php7/php7.y:744 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3062,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:769 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:773 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3078,22 +3077,21 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:784 + // line internal/php7/php7.y:783 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:791 + // line internal/php7/php7.y:789 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:798 + // line internal/php7/php7.y:796 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:807 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:816 + // line internal/php7/php7.y:814 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:821 + // line internal/php7/php7.y:819 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:823 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:827 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:831 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:835 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:839 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:855 + // line internal/php7/php7.y:853 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -3176,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:866 + // line internal/php7/php7.y:864 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:868 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:872 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3212,7 +3210,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:896 + // line internal/php7/php7.y:894 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[5].node} yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} @@ -3230,7 +3228,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:912 + // line internal/php7/php7.y:910 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3257,7 +3255,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:937 + // line internal/php7/php7.y:935 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} @@ -3283,7 +3281,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:961 + // line internal/php7/php7.y:959 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3297,7 +3295,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:973 + // line internal/php7/php7.y:971 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3311,7 +3309,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:985 + // line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3325,7 +3323,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:997 + // line internal/php7/php7.y:995 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3339,7 +3337,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1009 + // line internal/php7/php7.y:1007 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3353,7 +3351,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1021 + // line internal/php7/php7.y:1019 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3368,7 +3366,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1034 + // line internal/php7/php7.y:1032 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3380,7 +3378,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1044 + // line internal/php7/php7.y:1042 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3394,7 +3392,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1056 + // line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3414,7 +3412,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1072 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3438,7 +3436,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1096 + // line internal/php7/php7.y:1094 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3465,7 +3463,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1121 + // line internal/php7/php7.y:1119 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3480,7 +3478,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1134 + // line internal/php7/php7.y:1132 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3493,7 +3491,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1145 + // line internal/php7/php7.y:1143 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3510,7 +3508,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1160 + // line internal/php7/php7.y:1158 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3524,7 +3522,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1172 + // line internal/php7/php7.y:1170 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3541,7 +3539,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1187 + // line internal/php7/php7.y:1185 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3556,13 +3554,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1200 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1206 + // line internal/php7/php7.y:1204 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3584,13 +3582,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1228 + // line internal/php7/php7.y:1226 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1232 + // line internal/php7/php7.y:1230 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3604,13 +3602,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1244 + // line internal/php7/php7.y:1242 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1248 + // line internal/php7/php7.y:1246 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3624,13 +3622,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1263 + // line internal/php7/php7.y:1261 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1267 + // line internal/php7/php7.y:1265 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3639,13 +3637,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1277 + // line internal/php7/php7.y:1275 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1284 + // line internal/php7/php7.y:1282 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3675,31 +3673,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1315 + // line internal/php7/php7.y:1313 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1319 + // line internal/php7/php7.y:1317 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1326 + // line internal/php7/php7.y:1324 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1330 + // line internal/php7/php7.y:1328 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1337 + // line internal/php7/php7.y:1335 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3717,7 +3715,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1353 + // line internal/php7/php7.y:1351 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3734,19 +3732,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1371 + // line internal/php7/php7.y:1369 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1375 + // line internal/php7/php7.y:1373 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1382 + // line internal/php7/php7.y:1380 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3758,7 +3756,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1390 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3770,7 +3768,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1403 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3787,7 +3785,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1421 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3804,13 +3802,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1439 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1445 + // line internal/php7/php7.y:1443 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3822,13 +3820,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1458 + // line internal/php7/php7.y:1456 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1462 + // line internal/php7/php7.y:1460 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3840,13 +3838,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1475 + // line internal/php7/php7.y:1473 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1479 + // line internal/php7/php7.y:1477 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3858,13 +3856,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1490 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1496 + // line internal/php7/php7.y:1494 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3876,7 +3874,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1506 + // line internal/php7/php7.y:1504 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3890,7 +3888,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1518 + // line internal/php7/php7.y:1516 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3903,7 +3901,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1532 + // line internal/php7/php7.y:1530 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3912,7 +3910,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1537 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} @@ -3929,7 +3927,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1557 + // line internal/php7/php7.y:1555 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3938,7 +3936,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1564 + // line internal/php7/php7.y:1562 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} @@ -3955,7 +3953,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1582 + // line internal/php7/php7.y:1580 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3964,7 +3962,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1589 + // line internal/php7/php7.y:1587 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} @@ -3981,7 +3979,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1607 + // line internal/php7/php7.y:1605 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3996,7 +3994,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1620 + // line internal/php7/php7.y:1618 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4012,7 +4010,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1634 + // line internal/php7/php7.y:1632 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4029,7 +4027,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1649 + // line internal/php7/php7.y:1647 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4048,13 +4046,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1669 + // line internal/php7/php7.y:1667 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1673 + // line internal/php7/php7.y:1671 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4069,7 +4067,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1686 + // line internal/php7/php7.y:1684 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4084,19 +4082,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1702 + // line internal/php7/php7.y:1700 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1706 + // line internal/php7/php7.y:1704 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1713 + // line internal/php7/php7.y:1711 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4105,7 +4103,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1720 + // line internal/php7/php7.y:1718 { stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} @@ -4122,7 +4120,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1738 + // line internal/php7/php7.y:1736 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} @@ -4138,7 +4136,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1752 + // line internal/php7/php7.y:1750 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} @@ -4158,13 +4156,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1773 + // line internal/php7/php7.y:1771 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1777 + // line internal/php7/php7.y:1775 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4180,7 +4178,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1794 + // line internal/php7/php7.y:1792 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} @@ -4201,7 +4199,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1813 + // line internal/php7/php7.y:1811 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} @@ -4225,7 +4223,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1838 + // line internal/php7/php7.y:1836 { yyVAL.node = yyDollar[1].node @@ -4243,7 +4241,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1854 + // line internal/php7/php7.y:1852 { stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} @@ -4266,25 +4264,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1878 + // line internal/php7/php7.y:1876 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1882 + // line internal/php7/php7.y:1880 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1889 + // line internal/php7/php7.y:1887 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1893 + // line internal/php7/php7.y:1891 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4293,7 +4291,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1903 + // line internal/php7/php7.y:1901 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4329,7 +4327,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1937 + // line internal/php7/php7.y:1935 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4366,25 +4364,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1975 + // line internal/php7/php7.y:1973 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1977 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1986 + // line internal/php7/php7.y:1984 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1990 + // line internal/php7/php7.y:1988 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4396,7 +4394,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2003 + // line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4408,7 +4406,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2013 + // line internal/php7/php7.y:2011 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4420,19 +4418,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2023 + // line internal/php7/php7.y:2021 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2030 + // line internal/php7/php7.y:2028 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2034 + // line internal/php7/php7.y:2032 { yyVAL.node = yyDollar[2].node @@ -4441,7 +4439,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2044 + // line internal/php7/php7.y:2042 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4454,7 +4452,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2053 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4471,13 +4469,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2073 + // line internal/php7/php7.y:2071 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2077 + // line internal/php7/php7.y:2075 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4486,7 +4484,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2085 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4498,7 +4496,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2097 + // line internal/php7/php7.y:2095 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4510,7 +4508,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2108 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4519,19 +4517,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2115 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2124 + // line internal/php7/php7.y:2122 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2131 + // line internal/php7/php7.y:2129 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4540,13 +4538,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2138 + // line internal/php7/php7.y:2136 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2145 + // line internal/php7/php7.y:2143 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4562,7 +4560,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2159 + // line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4579,19 +4577,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2177 + // line internal/php7/php7.y:2175 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2181 + // line internal/php7/php7.y:2179 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2188 + // line internal/php7/php7.y:2186 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4605,26 +4603,21 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2198 { - yyVAL.node = &ast.StmtClassConstList{ast.Node{}, yyDollar[1].list, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token) - - // save comments - if len(yyDollar[1].list) > 0 { - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtClassConstList{ + Node: ast.Node{ + Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), + }, + Modifiers: yyDollar[1].list, + ConstTkn: yyDollar[2].token, + Consts: yyDollar[3].list, + SemiColonTkn: yyDollar[4].token, } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2217 + // line internal/php7/php7.y:2210 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4636,7 +4629,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2227 + // line internal/php7/php7.y:2220 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4667,13 +4660,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2259 + // line internal/php7/php7.y:2252 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2256 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4687,7 +4680,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2275 + // line internal/php7/php7.y:2268 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4699,7 +4692,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2278 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4711,7 +4704,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2295 + // line internal/php7/php7.y:2288 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4723,19 +4716,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2308 + // line internal/php7/php7.y:2301 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2305 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2319 + // line internal/php7/php7.y:2312 { yyVAL.node = yyDollar[1].node @@ -4745,7 +4738,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2320 { yyVAL.node = yyDollar[1].node @@ -4755,7 +4748,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2338 + // line internal/php7/php7.y:2331 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4768,7 +4761,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2352 + // line internal/php7/php7.y:2345 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4784,7 +4777,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2359 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4800,7 +4793,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2380 + // line internal/php7/php7.y:2373 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4816,7 +4809,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2394 + // line internal/php7/php7.y:2387 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4829,7 +4822,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2401 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4843,13 +4836,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2413 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2427 + // line internal/php7/php7.y:2420 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4865,7 +4858,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2437 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4878,7 +4871,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2455 + // line internal/php7/php7.y:2448 { yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} @@ -4891,13 +4884,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2469 + // line internal/php7/php7.y:2462 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2473 + // line internal/php7/php7.y:2466 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4910,31 +4903,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2487 + // line internal/php7/php7.y:2480 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2491 + // line internal/php7/php7.y:2484 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2498 + // line internal/php7/php7.y:2491 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2495 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2509 + // line internal/php7/php7.y:2502 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4946,7 +4939,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2512 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4958,7 +4951,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2529 + // line internal/php7/php7.y:2522 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4970,7 +4963,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2539 + // line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4982,7 +4975,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2549 + // line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4994,7 +4987,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2559 + // line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5006,7 +4999,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2565 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5015,13 +5008,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2579 + // line internal/php7/php7.y:2572 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2586 + // line internal/php7/php7.y:2579 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5037,7 +5030,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2600 + // line internal/php7/php7.y:2593 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5054,52 +5047,61 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2618 + // line internal/php7/php7.y:2611 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2625 + // line internal/php7/php7.y:2617 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2632 + // line internal/php7/php7.y:2624 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} + yyVAL.node = &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Value: yyDollar[1].token.Value, + }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node.(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2648 + // line internal/php7/php7.y:2645 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - yyVAL.node = &ast.StmtConstant{ast.Node{}, name, yyDollar[3].node} + yyVAL.node = &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Value: yyDollar[1].token.Value, + }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } - // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(yyVAL.node.(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2664 + // line internal/php7/php7.y:2666 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5108,31 +5110,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2671 + // line internal/php7/php7.y:2673 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2678 + // line internal/php7/php7.y:2680 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2685 + // line internal/php7/php7.y:2687 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2689 + // line internal/php7/php7.y:2691 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2696 + // line internal/php7/php7.y:2698 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5141,13 +5143,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2703 + // line internal/php7/php7.y:2705 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2710 + // line internal/php7/php7.y:2712 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5165,7 +5167,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2731 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5180,7 +5182,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2742 + // line internal/php7/php7.y:2744 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5192,7 +5194,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2755 + // line internal/php7/php7.y:2757 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5209,7 +5211,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2772 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5225,7 +5227,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2784 + // line internal/php7/php7.y:2786 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5238,7 +5240,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2795 + // line internal/php7/php7.y:2797 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5252,7 +5254,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2807 + // line internal/php7/php7.y:2809 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5264,7 +5266,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2817 + // line internal/php7/php7.y:2819 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5277,7 +5279,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2828 + // line internal/php7/php7.y:2830 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5290,7 +5292,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2839 + // line internal/php7/php7.y:2841 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5303,7 +5305,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2850 + // line internal/php7/php7.y:2852 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5316,7 +5318,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2861 + // line internal/php7/php7.y:2863 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5329,7 +5331,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2872 + // line internal/php7/php7.y:2874 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5342,7 +5344,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2885 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5355,7 +5357,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2894 + // line internal/php7/php7.y:2896 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5368,7 +5370,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2905 + // line internal/php7/php7.y:2907 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5381,7 +5383,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2916 + // line internal/php7/php7.y:2918 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5394,7 +5396,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2929 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5407,7 +5409,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2938 + // line internal/php7/php7.y:2940 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5420,7 +5422,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2949 + // line internal/php7/php7.y:2951 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5433,7 +5435,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2960 + // line internal/php7/php7.y:2962 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5446,7 +5448,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2971 + // line internal/php7/php7.y:2973 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5458,7 +5460,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2981 + // line internal/php7/php7.y:2983 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5471,7 +5473,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2992 + // line internal/php7/php7.y:2994 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5483,7 +5485,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3002 + // line internal/php7/php7.y:3004 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5496,7 +5498,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3015 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5509,7 +5511,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3024 + // line internal/php7/php7.y:3026 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5522,7 +5524,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3037 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5535,7 +5537,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3046 + // line internal/php7/php7.y:3048 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5548,7 +5550,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3057 + // line internal/php7/php7.y:3059 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5561,7 +5563,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3070 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5574,7 +5576,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3079 + // line internal/php7/php7.y:3081 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5589,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3090 + // line internal/php7/php7.y:3092 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5600,7 +5602,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3103 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5613,7 +5615,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3112 + // line internal/php7/php7.y:3114 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5626,7 +5628,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3123 + // line internal/php7/php7.y:3125 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5639,7 +5641,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3136 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5652,7 +5654,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3147 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5667,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3156 + // line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5678,7 +5680,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3167 + // line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5691,7 +5693,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3178 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5706,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3189 + // line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5716,7 +5718,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3199 + // line internal/php7/php7.y:3201 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5728,7 +5730,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3209 + // line internal/php7/php7.y:3211 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5740,7 +5742,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5752,7 +5754,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3229 + // line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5767,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3240 + // line internal/php7/php7.y:3242 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5780,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3253 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5791,7 +5793,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3262 + // line internal/php7/php7.y:3264 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5807,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3274 + // line internal/php7/php7.y:3276 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5820,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3285 + // line internal/php7/php7.y:3287 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5833,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3296 + // line internal/php7/php7.y:3298 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5846,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3307 + // line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,7 +5859,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3318 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5870,7 +5872,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3329 + // line internal/php7/php7.y:3331 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5883,7 +5885,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3340 + // line internal/php7/php7.y:3342 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -5896,13 +5898,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3351 + // line internal/php7/php7.y:3353 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3357 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5916,7 +5918,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3367 + // line internal/php7/php7.y:3369 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5930,7 +5932,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3379 + // line internal/php7/php7.y:3381 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5943,13 +5945,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3390 + // line internal/php7/php7.y:3392 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3394 + // line internal/php7/php7.y:3396 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5962,7 +5964,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3405 + // line internal/php7/php7.y:3407 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5975,7 +5977,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3416 + // line internal/php7/php7.y:3418 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5988,7 +5990,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3427 + // line internal/php7/php7.y:3429 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6001,7 +6003,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3438 + // line internal/php7/php7.y:3440 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6014,7 +6016,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3449 + // line internal/php7/php7.y:3451 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6027,7 +6029,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3460 + // line internal/php7/php7.y:3462 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6040,7 +6042,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3471 + // line internal/php7/php7.y:3473 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6060,7 +6062,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3489 + // line internal/php7/php7.y:3491 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6072,13 +6074,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3499 + // line internal/php7/php7.y:3501 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3505 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6090,7 +6092,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3513 + // line internal/php7/php7.y:3515 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6102,7 +6104,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3523 + // line internal/php7/php7.y:3525 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6114,7 +6116,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3533 + // line internal/php7/php7.y:3535 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6126,7 +6128,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3543 + // line internal/php7/php7.y:3545 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6139,7 +6141,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3554 + // line internal/php7/php7.y:3556 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6151,13 +6153,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3564 + // line internal/php7/php7.y:3566 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3570 { yyVAL.node = yyDollar[2].node @@ -6178,7 +6180,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3589 + // line internal/php7/php7.y:3591 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6209,7 +6211,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3616 + // line internal/php7/php7.y:3618 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6235,25 +6237,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3648 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3650 + // line internal/php7/php7.y:3652 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3657 + // line internal/php7/php7.y:3659 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3661 + // line internal/php7/php7.y:3663 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6267,7 +6269,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3676 + // line internal/php7/php7.y:3678 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6276,13 +6278,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3683 + // line internal/php7/php7.y:3685 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3690 + // line internal/php7/php7.y:3692 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6296,7 +6298,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3702 + // line internal/php7/php7.y:3704 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6313,7 +6315,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3722 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6325,7 +6327,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3730 + // line internal/php7/php7.y:3732 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6338,7 +6340,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3741 + // line internal/php7/php7.y:3743 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6351,7 +6353,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3752 + // line internal/php7/php7.y:3754 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6363,7 +6365,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3765 + // line internal/php7/php7.y:3767 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6375,31 +6377,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3775 + // line internal/php7/php7.y:3777 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3782 + // line internal/php7/php7.y:3784 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3788 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3793 + // line internal/php7/php7.y:3795 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3797 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6412,13 +6414,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3811 + // line internal/php7/php7.y:3813 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3815 + // line internal/php7/php7.y:3817 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6428,25 +6430,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3823 + // line internal/php7/php7.y:3825 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3830 + // line internal/php7/php7.y:3832 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3834 + // line internal/php7/php7.y:3836 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3843 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6460,7 +6462,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3855 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6473,7 +6475,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3864 + // line internal/php7/php7.y:3866 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6485,7 +6487,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3877 + // line internal/php7/php7.y:3879 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6497,7 +6499,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3887 + // line internal/php7/php7.y:3889 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6509,7 +6511,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3897 + // line internal/php7/php7.y:3899 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6521,7 +6523,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3907 + // line internal/php7/php7.y:3909 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6533,7 +6535,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3917 + // line internal/php7/php7.y:3919 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6545,7 +6547,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6557,7 +6559,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3937 + // line internal/php7/php7.y:3939 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6569,7 +6571,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3947 + // line internal/php7/php7.y:3949 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6581,7 +6583,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3957 + // line internal/php7/php7.y:3959 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6593,7 +6595,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3967 + // line internal/php7/php7.y:3969 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6605,7 +6607,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3979 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6619,7 +6621,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3989 + // line internal/php7/php7.y:3991 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6631,7 +6633,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3999 + // line internal/php7/php7.y:4001 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6643,7 +6645,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4009 + // line internal/php7/php7.y:4011 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6655,19 +6657,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4019 + // line internal/php7/php7.y:4021 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4023 + // line internal/php7/php7.y:4025 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4030 + // line internal/php7/php7.y:4032 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6679,7 +6681,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4040 + // line internal/php7/php7.y:4042 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6695,7 +6697,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4056 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6711,43 +6713,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4071 + // line internal/php7/php7.y:4073 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4077 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4082 + // line internal/php7/php7.y:4084 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4088 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4093 + // line internal/php7/php7.y:4095 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4100 + // line internal/php7/php7.y:4102 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4104 + // line internal/php7/php7.y:4106 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6760,19 +6762,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4115 + // line internal/php7/php7.y:4117 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4122 + // line internal/php7/php7.y:4124 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4126 + // line internal/php7/php7.y:4128 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6785,19 +6787,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4137 + // line internal/php7/php7.y:4139 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4144 + // line internal/php7/php7.y:4146 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4148 + // line internal/php7/php7.y:4150 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6810,7 +6812,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4159 + // line internal/php7/php7.y:4161 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6823,7 +6825,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4170 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6836,7 +6838,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4181 + // line internal/php7/php7.y:4183 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6849,25 +6851,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4192 + // line internal/php7/php7.y:4194 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4199 + // line internal/php7/php7.y:4201 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4203 + // line internal/php7/php7.y:4205 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4207 + // line internal/php7/php7.y:4209 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6880,7 +6882,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4223 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6894,7 +6896,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4233 + // line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6908,7 +6910,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4245 + // line internal/php7/php7.y:4247 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6920,7 +6922,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4258 + // line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6933,7 +6935,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4271 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6946,13 +6948,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4283 + // line internal/php7/php7.y:4285 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4287 + // line internal/php7/php7.y:4289 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6965,7 +6967,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4300 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6978,7 +6980,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4309 + // line internal/php7/php7.y:4311 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6991,7 +6993,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4320 + // line internal/php7/php7.y:4322 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7004,7 +7006,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4331 + // line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7017,7 +7019,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4345 + // line internal/php7/php7.y:4347 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7029,7 +7031,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4355 + // line internal/php7/php7.y:4357 { yyVAL.node = yyDollar[2].node @@ -7039,13 +7041,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4363 + // line internal/php7/php7.y:4365 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4370 + // line internal/php7/php7.y:4372 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7057,7 +7059,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4380 + // line internal/php7/php7.y:4382 { yyVAL.node = yyDollar[2].node @@ -7067,31 +7069,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4390 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4395 + // line internal/php7/php7.y:4397 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4402 + // line internal/php7/php7.y:4404 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4406 + // line internal/php7/php7.y:4408 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4415 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7104,7 +7106,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4424 + // line internal/php7/php7.y:4426 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7114,7 +7116,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4437 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7127,7 +7129,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4446 + // line internal/php7/php7.y:4448 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7139,7 +7141,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4456 + // line internal/php7/php7.y:4458 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7155,7 +7157,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4472 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7169,7 +7171,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4482 + // line internal/php7/php7.y:4484 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7181,7 +7183,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4494 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7200,7 +7202,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4509 + // line internal/php7/php7.y:4511 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7217,13 +7219,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4527 + // line internal/php7/php7.y:4529 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4531 + // line internal/php7/php7.y:4533 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7236,13 +7238,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4542 + // line internal/php7/php7.y:4544 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4546 + // line internal/php7/php7.y:4548 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7255,7 +7257,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4560 + // line internal/php7/php7.y:4562 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7269,7 +7271,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4572 + // line internal/php7/php7.y:4574 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7286,7 +7288,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4587 + // line internal/php7/php7.y:4589 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7305,7 +7307,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4604 + // line internal/php7/php7.y:4606 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7320,7 +7322,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4617 + // line internal/php7/php7.y:4619 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7337,7 +7339,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4632 + // line internal/php7/php7.y:4634 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7356,7 +7358,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4649 + // line internal/php7/php7.y:4651 { yyVAL.node = yyDollar[2].node @@ -7366,7 +7368,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4660 + // line internal/php7/php7.y:4662 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7378,7 +7380,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4670 + // line internal/php7/php7.y:4672 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7395,7 +7397,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4685 + // line internal/php7/php7.y:4687 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7421,7 +7423,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4709 + // line internal/php7/php7.y:4711 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7435,7 +7437,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4724 + // line internal/php7/php7.y:4726 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7453,7 +7455,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4740 + // line internal/php7/php7.y:4742 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -7469,7 +7471,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4754 + // line internal/php7/php7.y:4756 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7481,7 +7483,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4766 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7493,7 +7495,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4774 + // line internal/php7/php7.y:4776 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -7509,7 +7511,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4790 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7521,7 +7523,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4798 + // line internal/php7/php7.y:4800 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7533,13 +7535,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4811 + // line internal/php7/php7.y:4813 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4815 + // line internal/php7/php7.y:4817 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7548,7 +7550,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4825 + // line internal/php7/php7.y:4827 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 3013dfd..ab3d550 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -536,15 +536,14 @@ top_statement: } | T_CONST const_list ';' { - $$ = &ast.StmtConstList{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtConstList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ConstTkn: $1, + Consts: $2, + SemiColonTkn: $3, + } } ; @@ -782,10 +781,9 @@ use_declaration: const_list: const_list ',' const_decl { - $$ = append($1, $3) + lastNode($1).(*ast.StmtConstant).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | const_decl { @@ -2198,20 +2196,15 @@ class_statement: } | method_modifiers T_CONST class_const_list ';' { - $$ = &ast.StmtClassConstList{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewOptionalListTokensPosition($1, $2, $4) - - // save comments - if len($1) > 0 { - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.SkippedTokens) + $$ = &ast.StmtClassConstList{ + Node: ast.Node{ + Position: position.NewOptionalListTokensPosition($1, $2, $4), + }, + Modifiers: $1, + ConstTkn: $2, + Consts: $3, + SemiColonTkn: $4, } - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } | T_USE name_list trait_adaptations { @@ -2616,10 +2609,9 @@ property: class_const_list: class_const_list ',' class_const_decl { - $$ = append($1, $3) + lastNode($1).(*ast.StmtConstant).CommaTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = append($1, $3) } | class_const_decl { @@ -2630,32 +2622,42 @@ class_const_list: class_const_decl: identifier '=' expr backup_doc_comment { - name := &ast.Identifier{ast.Node{}, $1.Value} - $$ = &ast.StmtConstant{ast.Node{}, name, $3} + $$ = &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Value: $1.Value, + }, + EqualTkn: $2, + Expr: $3, + } - // save position - name.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$.(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) } ; const_decl: T_STRING '=' expr backup_doc_comment { - name := &ast.Identifier{ast.Node{}, $1.Value} - $$ = &ast.StmtConstant{ast.Node{}, name, $3} + $$ = &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Value: $1.Value, + }, + EqualTkn: $2, + Expr: $3, + } - // save position - name.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating($$.(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) } ; diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index d717743..8f474fa 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -3919,7 +3919,7 @@ func TestPhp7(t *testing.T) { EndPos: 1322, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 70, @@ -3951,7 +3951,7 @@ func TestPhp7(t *testing.T) { EndPos: 1331, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 70, @@ -4018,7 +4018,7 @@ func TestPhp7(t *testing.T) { EndPos: 1359, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 71, @@ -4050,7 +4050,7 @@ func TestPhp7(t *testing.T) { EndPos: 1368, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 71, @@ -4732,7 +4732,7 @@ func TestPhp7(t *testing.T) { EndPos: 1693, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 81, @@ -4764,7 +4764,7 @@ func TestPhp7(t *testing.T) { EndPos: 1702, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 81, @@ -4959,7 +4959,7 @@ func TestPhp7(t *testing.T) { EndPos: 1796, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 85, @@ -5013,7 +5013,7 @@ func TestPhp7(t *testing.T) { EndPos: 1814, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 86, @@ -5069,7 +5069,7 @@ func TestPhp7(t *testing.T) { EndPos: 1834, }, }, - ConstantName: &ast.Identifier{ + Name: &ast.Identifier{ Node: ast.Node{ Position: &position.Position{ StartLine: 87, diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 4b633fe..038dc46 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -318,8 +318,10 @@ func (n *StmtClass) Accept(v NodeVisitor) { // StmtClassConstList node type StmtClassConstList struct { Node - Modifiers []Vertex - Consts []Vertex + Modifiers []Vertex + ConstTkn *token.Token + Consts []Vertex + SemiColonTkn *token.Token } func (n *StmtClassConstList) Accept(v NodeVisitor) { @@ -364,7 +366,9 @@ func (n *StmtClassMethod) Accept(v NodeVisitor) { // StmtConstList node type StmtConstList struct { Node - Consts []Vertex + ConstTkn *token.Token + Consts []Vertex + SemiColonTkn *token.Token } func (n *StmtConstList) Accept(v NodeVisitor) { @@ -374,8 +378,10 @@ func (n *StmtConstList) Accept(v NodeVisitor) { // StmtConstant node type StmtConstant struct { Node - ConstantName Vertex - Expr Vertex + Name Vertex + EqualTkn *token.Token + Expr Vertex + CommaTkn *token.Token } func (n *StmtConstant) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 7e41a44..3d9d5a5 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -487,10 +487,10 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - if nn.ConstantName != nil { - t.visitor.Enter("ConstantName", true) - t.Traverse(nn.ConstantName) - t.visitor.Leave("ConstantName", true) + if nn.Name != nil { + t.visitor.Enter("Name", true) + t.Traverse(nn.Name) + t.visitor.Leave("Name", true) } if nn.Expr != nil { t.visitor.Enter("Expr", true) @@ -1334,9 +1334,9 @@ func (t *DFS) Traverse(n ast.Vertex) { t.visitor.Leave("Class", true) } if nn.ConstantName != nil { - t.visitor.Enter("ConstantName", true) + t.visitor.Enter("Name", true) t.Traverse(nn.ConstantName) - t.visitor.Leave("ConstantName", true) + t.visitor.Leave("Name", true) } case *ast.ExprClone: if nn == nil { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index ff7f336..5cd2215 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -67,3 +67,18 @@ func (v *FilterTokens) StmtHaltCompiler(n *ast.StmtHaltCompiler) { n.CloseParenthesisTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtConstList(n *ast.StmtConstList) { + n.ConstTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtClassConstList(n *ast.StmtClassConstList) { + n.ConstTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtConstant(n *ast.StmtConstant) { + n.EqualTkn = nil + n.CommaTkn = nil +} diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index fb5659d..3eac4a1 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -141,7 +141,7 @@ func (nsr *NamespaceResolver) StmtPropertyList(n *ast.StmtPropertyList) { func (nsr *NamespaceResolver) StmtConstList(n *ast.StmtConstList) { for _, constant := range n.Consts { - nsr.AddNamespacedName(constant, string(constant.(*ast.StmtConstant).ConstantName.(*ast.Identifier).Value)) + nsr.AddNamespacedName(constant, string(constant.(*ast.StmtConstant).Name.(*ast.Identifier).Value)) } } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 5b01ecc..8e84e88 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -594,12 +594,12 @@ func TestResolveConstantsName(t *testing.T) { nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} constantB := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("B")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + Name: &ast.Identifier{Value: []byte("B")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } constantC := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("C")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + Name: &ast.Identifier{Value: []byte("C")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } stxTree := &ast.StmtStmtList{ @@ -638,12 +638,12 @@ func TestResolveNamespaces(t *testing.T) { relativeNameCE := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("E")}}} constantB := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("B")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + Name: &ast.Identifier{Value: []byte("B")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } constantC := &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("C")}, - Expr: &ast.ScalarLnumber{Value: []byte("1")}, + Name: &ast.Identifier{Value: []byte("C")}, + Expr: &ast.ScalarLnumber{Value: []byte("1")}, } stxTree := &ast.StmtStmtList{ diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index fca19fd..cd5d20f 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1603,7 +1603,7 @@ func (p *PrettyPrinter) printStmtClassConstList(n ast.Vertex) { func (p *PrettyPrinter) printStmtConstant(n ast.Vertex) { nn := n.(*ast.StmtConstant) - p.Print(nn.ConstantName) + p.Print(nn.Name) io.WriteString(p.w, " = ") p.Print(nn.Expr) } diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index c457cb8..343703b 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -2530,8 +2530,8 @@ func TestPrintStmtClass(t *testing.T) { Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, Consts: []ast.Vertex{ &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, + Name: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, }, @@ -2585,8 +2585,8 @@ func TestPrintStmtAnonymousClass(t *testing.T) { Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, Consts: []ast.Vertex{ &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, + Name: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, }, @@ -2616,12 +2616,12 @@ func TestPrintStmtClassConstList(t *testing.T) { Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, Consts: []ast.Vertex{ &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'a'")}, + Name: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'a'")}, }, &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("BAR")}, - Expr: &ast.ScalarString{Value: []byte("'b'")}, + Name: &ast.Identifier{Value: []byte("BAR")}, + Expr: &ast.ScalarString{Value: []byte("'b'")}, }, }, }) @@ -2639,8 +2639,8 @@ func TestPrintStmtConstant(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'BAR'")}, + Name: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'BAR'")}, }) expected := "FOO = 'BAR'" @@ -2676,8 +2676,8 @@ func TestPrintStmtDeclareStmts(t *testing.T) { &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, + Name: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, Stmt: &ast.StmtStmtList{ @@ -2710,8 +2710,8 @@ func TestPrintStmtDeclareExpr(t *testing.T) { &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, + Name: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, @@ -2737,8 +2737,8 @@ func TestPrintStmtDeclareNop(t *testing.T) { p.Print(&ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ - ConstantName: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, + Name: &ast.Identifier{Value: []byte("FOO")}, + Expr: &ast.ScalarString{Value: []byte("'bar'")}, }, }, Stmt: &ast.StmtNop{}, diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 450f928..f87cd9b 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2421,69 +2421,27 @@ func (p *Printer) printStmtClass(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtClassConstList(n ast.Vertex) { - nn := n.(*ast.StmtClassConstList) - p.printFreeFloating(nn, token.Start) - - if nn.Modifiers != nil { - for k, m := range nn.Modifiers { - if k > 0 && m.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(m) - } - - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - } - p.printFreeFloating(nn, token.ModifierList) - io.WriteString(p.w, "const") - - if nn.Consts[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Consts) - p.printFreeFloating(nn, token.ConstList) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtClassConstList(n *ast.StmtClassConstList) { + p.joinPrintRefactored(" ", n.Modifiers) + p.bufStart = " " + p.printToken(n.ConstTkn, "const") + p.bufStart = " " + p.joinPrintRefactored(",", n.Consts) + p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtConstList(n ast.Vertex) { - nn := n.(*ast.StmtConstList) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "const") - - if nn.Consts[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.joinPrint(",", nn.Consts) - p.printFreeFloating(nn, token.Stmts) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtConstList(n *ast.StmtConstList) { + p.printToken(n.ConstTkn, "const") + p.bufStart = " " + p.joinPrintRefactored(",", n.Consts) + p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtConstant(n ast.Vertex) { - nn := n.(*ast.StmtConstant) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.ConstantName) - p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "=") - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtConstant(n *ast.StmtConstant) { + p.Print(n.Name) + p.printToken(n.EqualTkn, "=") + p.Print(n.Expr) + p.printToken(n.CommaTkn, "") } func (p *Printer) printStmtContinue(n ast.Vertex) { @@ -2515,7 +2473,7 @@ func (p *Printer) printStmtDeclare(n ast.Vertex) { io.WriteString(p.w, "declare") p.printFreeFloating(nn, token.Declare) io.WriteString(p.w, "(") - p.joinPrint(",", nn.Consts) + p.joinPrintRefactored(",", nn.Consts) p.printFreeFloating(nn, token.ConstList) io.WriteString(p.w, ")") diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index a65bd6b..5c14c0f 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -896,7 +896,8 @@ func TestParseAndPrintPhp5ClassConstList(t *testing.T) { } func TestParseAndPrintPhp5ConstList(t *testing.T) { - src := ` Date: Wed, 2 Sep 2020 22:58:19 +0300 Subject: [PATCH 050/140] [refactoring] update ast structure of "StmtList" nodes --- internal/php5/php5.go | 1130 ++++++++++++----------- internal/php5/php5.y | 88 +- internal/php7/php7.go | 698 +++++++------- internal/php7/php7.y | 88 +- pkg/ast/node.go | 4 +- pkg/ast/visitor/filter_tokens.go | 5 + pkg/printer/printer.go | 15 +- pkg/printer/printer_parsed_php5_test.go | 3 +- pkg/printer/printer_parsed_php7_test.go | 3 +- 9 files changed, 1075 insertions(+), 959 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index f836b8b..caf5d74 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6155 +// line internal/php5/php5.y:6183 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:275 + // line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2324,7 +2324,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:285 + // line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2337,13 +2337,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:296 + // line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:303 + // line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2357,7 +2357,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:315 + // line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2370,32 +2370,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:329 + // line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:346 + // line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2409,7 +2409,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:358 + // line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2427,7 +2427,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:374 + // line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2447,7 +2447,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:392 + // line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2461,7 +2461,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:404 + // line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2474,7 +2474,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:415 + // line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2493,7 +2493,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:432 + // line internal/php5/php5.y:432 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2512,7 +2512,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:449 + // line internal/php5/php5.y:449 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2520,7 +2520,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:458 + // line internal/php5/php5.y:458 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2528,13 +2528,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:464 + // line internal/php5/php5.y:464 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:471 + // line internal/php5/php5.y:471 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2550,7 +2550,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:485 + // line internal/php5/php5.y:485 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2573,7 +2573,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:506 + // line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2590,7 +2590,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:521 + // line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2614,7 +2614,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:546 + // line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2622,13 +2622,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:552 + // line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:559 + // line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:573 + // line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2667,7 +2667,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:594 + // line internal/php5/php5.y:594 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2684,7 +2684,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:609 + // line internal/php5/php5.y:609 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2708,7 +2708,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:634 + // line internal/php5/php5.y:634 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2716,13 +2716,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:640 + // line internal/php5/php5.y:640 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:647 + // line internal/php5/php5.y:647 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:661 + // line internal/php5/php5.y:661 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2761,7 +2761,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:682 + // line internal/php5/php5.y:682 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2778,7 +2778,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:697 + // line internal/php5/php5.y:697 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2802,7 +2802,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:722 + // line internal/php5/php5.y:722 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2827,7 +2827,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:745 + // line internal/php5/php5.y:745 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2855,7 +2855,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:774 + // line internal/php5/php5.y:774 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2868,38 +2868,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:785 + // line internal/php5/php5.y:785 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:793 + // line internal/php5/php5.y:793 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:798 + // line internal/php5/php5.y:798 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:802 + // line internal/php5/php5.y:802 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:806 + // line internal/php5/php5.y:806 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:810 + // line internal/php5/php5.y:810 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2913,13 +2913,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:826 + // line internal/php5/php5.y:826 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:830 + // line internal/php5/php5.y:830 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2934,20 +2934,20 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:846 + // line internal/php5/php5.y:846 { - yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenCurlyBracket: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracket: yyDollar[3].token, + } } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:857 + // line internal/php5/php5.y:857 { yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} @@ -2965,14 +2965,18 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:873 + // line internal/php5/php5.y:873 { - stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[4].list), + }, + Stmts: yyDollar[4].list, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmtsBrackets, yyDollar[5].list, yyDollar[6].node} // save position - stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[3].token, yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) @@ -2990,7 +2994,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:896 + // line internal/php5/php5.y:900 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3009,7 +3013,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:913 + // line internal/php5/php5.y:917 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3024,7 +3028,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:926 + // line internal/php5/php5.y:930 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3051,7 +3055,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:951 + // line internal/php5/php5.y:955 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3072,7 +3076,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:970 + // line internal/php5/php5.y:974 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3086,7 +3090,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:982 + // line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3100,7 +3104,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:994 + // line internal/php5/php5.y:998 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3114,7 +3118,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1006 + // line internal/php5/php5.y:1010 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3128,7 +3132,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1018 + // line internal/php5/php5.y:1022 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3142,7 +3146,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1030 + // line internal/php5/php5.y:1034 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3156,7 +3160,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1042 + // line internal/php5/php5.y:1046 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3170,7 +3174,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1054 + // line internal/php5/php5.y:1058 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3184,7 +3188,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1066 + // line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3198,7 +3202,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1078 + // line internal/php5/php5.y:1082 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3212,7 +3216,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1090 + // line internal/php5/php5.y:1094 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3227,7 +3231,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1103 + // line internal/php5/php5.y:1107 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3239,7 +3243,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1113 + // line internal/php5/php5.y:1117 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3253,7 +3257,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1125 + // line internal/php5/php5.y:1129 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3269,7 +3273,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1139 + // line internal/php5/php5.y:1143 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3310,7 +3314,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1177 + // line internal/php5/php5.y:1181 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3351,7 +3355,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1215 + // line internal/php5/php5.y:1219 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3366,7 +3370,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1228 + // line internal/php5/php5.y:1232 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3379,7 +3383,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1239 + // line internal/php5/php5.y:1243 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3397,7 +3401,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1255 + // line internal/php5/php5.y:1259 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3411,7 +3415,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1267 + // line internal/php5/php5.y:1271 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3428,13 +3432,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1285 + // line internal/php5/php5.y:1289 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1289 + // line internal/php5/php5.y:1293 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3456,13 +3460,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1312 + // line internal/php5/php5.y:1316 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1316 + // line internal/php5/php5.y:1320 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3476,31 +3480,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1335 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1335 + // line internal/php5/php5.y:1339 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1342 + // line internal/php5/php5.y:1346 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1346 + // line internal/php5/php5.y:1350 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1353 + // line internal/php5/php5.y:1357 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3521,13 +3525,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1375 + // line internal/php5/php5.y:1379 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1383 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3536,49 +3540,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1389 + // line internal/php5/php5.y:1393 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1396 + // line internal/php5/php5.y:1400 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1403 + // line internal/php5/php5.y:1407 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1410 + // line internal/php5/php5.y:1414 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1414 + // line internal/php5/php5.y:1418 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1421 + // line internal/php5/php5.y:1425 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1425 + // line internal/php5/php5.y:1429 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1432 + // line internal/php5/php5.y:1436 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3602,7 +3606,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1457 + // line internal/php5/php5.y:1461 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3630,7 +3634,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1483 + // line internal/php5/php5.y:1487 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3647,7 +3651,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1502 + // line internal/php5/php5.y:1506 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3659,7 +3663,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1512 + // line internal/php5/php5.y:1516 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3674,7 +3678,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1525 + // line internal/php5/php5.y:1529 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3686,7 +3690,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1535 + // line internal/php5/php5.y:1539 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3701,13 +3705,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1551 + // line internal/php5/php5.y:1555 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1555 + // line internal/php5/php5.y:1559 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3719,19 +3723,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1572 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1575 + // line internal/php5/php5.y:1579 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1583 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3743,13 +3747,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1592 + // line internal/php5/php5.y:1596 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1596 + // line internal/php5/php5.y:1600 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3761,13 +3765,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1609 + // line internal/php5/php5.y:1613 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1613 + // line internal/php5/php5.y:1617 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3781,13 +3785,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1625 + // line internal/php5/php5.y:1629 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1629 + // line internal/php5/php5.y:1633 { yyVAL.node = yyDollar[2].node @@ -3796,13 +3800,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1639 + // line internal/php5/php5.y:1643 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1643 + // line internal/php5/php5.y:1647 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3814,7 +3818,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1653 + // line internal/php5/php5.y:1657 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3828,7 +3832,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1668 + // line internal/php5/php5.y:1672 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3837,13 +3841,17 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1675 + // line internal/php5/php5.y:1679 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -3854,7 +3862,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1693 + // line internal/php5/php5.y:1701 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3863,13 +3871,17 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1700 + // line internal/php5/php5.y:1708 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -3880,7 +3892,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1719 + // line internal/php5/php5.y:1731 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3889,13 +3901,17 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1726 + // line internal/php5/php5.y:1738 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -3906,7 +3922,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1745 + // line internal/php5/php5.y:1761 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3928,7 +3944,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1765 + // line internal/php5/php5.y:1781 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3949,7 +3965,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1788 + // line internal/php5/php5.y:1804 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3964,7 +3980,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1801 + // line internal/php5/php5.y:1817 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3980,7 +3996,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1815 + // line internal/php5/php5.y:1831 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -3997,7 +4013,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1830 + // line internal/php5/php5.y:1846 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4016,13 +4032,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1851 + // line internal/php5/php5.y:1867 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1855 + // line internal/php5/php5.y:1871 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4037,7 +4053,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1868 + // line internal/php5/php5.y:1884 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4052,19 +4068,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1885 + // line internal/php5/php5.y:1901 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1905 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1897 + // line internal/php5/php5.y:1913 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4073,13 +4089,17 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1904 + // line internal/php5/php5.y:1920 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -4090,13 +4110,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1924 + // line internal/php5/php5.y:1944 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1928 + // line internal/php5/php5.y:1948 { _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} yyVAL.list = append(yyDollar[1].list, _elseIf) @@ -4109,21 +4129,25 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1943 + // line internal/php5/php5.y:1963 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1947 + // line internal/php5/php5.y:1967 { - stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[5].list} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[5].list), + }, + Stmts: yyDollar[5].list, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmtsBrackets} yyVAL.list = append(yyDollar[1].list, _elseIf) // save position - stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[5].list) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[4].token, yyDollar[5].list) _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) @@ -4133,13 +4157,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1991 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1971 + // line internal/php5/php5.y:1995 { yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} @@ -4151,20 +4175,24 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1985 + // line internal/php5/php5.y:2009 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1989 + // line internal/php5/php5.y:2013 { - stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[3].list} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[3].list), + }, + Stmts: yyDollar[3].list, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} // save position - stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[3].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) @@ -4174,25 +4202,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2008 + // line internal/php5/php5.y:2036 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2012 + // line internal/php5/php5.y:2040 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2047 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2023 + // line internal/php5/php5.y:2051 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4201,7 +4229,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2033 + // line internal/php5/php5.y:2061 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4237,7 +4265,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2067 + // line internal/php5/php5.y:2095 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4274,13 +4302,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2106 + // line internal/php5/php5.y:2134 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2110 + // line internal/php5/php5.y:2138 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4292,7 +4320,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2120 + // line internal/php5/php5.y:2148 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4304,13 +4332,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2130 + // line internal/php5/php5.y:2158 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2138 + // line internal/php5/php5.y:2166 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4323,7 +4351,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2149 + // line internal/php5/php5.y:2177 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4336,7 +4364,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2160 + // line internal/php5/php5.y:2188 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4351,13 +4379,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2205 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2181 + // line internal/php5/php5.y:2209 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4366,7 +4394,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2219 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4378,7 +4406,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2201 + // line internal/php5/php5.y:2229 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4390,7 +4418,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2239 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4402,7 +4430,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2221 + // line internal/php5/php5.y:2249 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4414,7 +4442,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2234 + // line internal/php5/php5.y:2262 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4423,13 +4451,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2241 + // line internal/php5/php5.y:2269 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2249 + // line internal/php5/php5.y:2277 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4443,7 +4471,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2261 + // line internal/php5/php5.y:2289 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4455,7 +4483,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2271 + // line internal/php5/php5.y:2299 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4469,7 +4497,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2287 + // line internal/php5/php5.y:2315 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4487,7 +4515,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2303 + // line internal/php5/php5.y:2331 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4506,7 +4534,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2320 + // line internal/php5/php5.y:2348 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4523,7 +4551,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2335 + // line internal/php5/php5.y:2363 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4541,19 +4569,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2355 + // line internal/php5/php5.y:2383 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2359 + // line internal/php5/php5.y:2387 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2367 + // line internal/php5/php5.y:2395 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4567,7 +4595,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2379 + // line internal/php5/php5.y:2407 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4575,13 +4603,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2385 + // line internal/php5/php5.y:2413 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2389 + // line internal/php5/php5.y:2417 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4612,7 +4640,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2421 + // line internal/php5/php5.y:2449 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4624,13 +4652,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2434 + // line internal/php5/php5.y:2462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2438 + // line internal/php5/php5.y:2466 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4644,7 +4672,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2450 + // line internal/php5/php5.y:2478 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4656,7 +4684,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2460 + // line internal/php5/php5.y:2488 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4668,31 +4696,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2473 + // line internal/php5/php5.y:2501 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2477 + // line internal/php5/php5.y:2505 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2484 + // line internal/php5/php5.y:2512 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2488 + // line internal/php5/php5.y:2516 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2495 + // line internal/php5/php5.y:2523 { yyVAL.node = yyDollar[1].node @@ -4702,7 +4730,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2503 + // line internal/php5/php5.y:2531 { yyVAL.node = yyDollar[1].node @@ -4712,7 +4740,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2514 + // line internal/php5/php5.y:2542 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4725,13 +4753,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2528 + // line internal/php5/php5.y:2556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2532 + // line internal/php5/php5.y:2560 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4740,7 +4768,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2542 + // line internal/php5/php5.y:2570 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4754,13 +4782,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2554 + // line internal/php5/php5.y:2582 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2561 + // line internal/php5/php5.y:2589 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4776,7 +4804,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2606 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4792,7 +4820,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2592 + // line internal/php5/php5.y:2620 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4805,19 +4833,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2606 + // line internal/php5/php5.y:2634 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2610 + // line internal/php5/php5.y:2638 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2617 + // line internal/php5/php5.y:2645 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4830,26 +4858,26 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2628 + // line internal/php5/php5.y:2656 { - yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenCurlyBracket: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracket: yyDollar[3].token, + } } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2642 + // line internal/php5/php5.y:2670 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2646 + // line internal/php5/php5.y:2674 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4862,31 +4890,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2660 + // line internal/php5/php5.y:2688 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2664 + // line internal/php5/php5.y:2692 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2671 + // line internal/php5/php5.y:2699 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2675 + // line internal/php5/php5.y:2703 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2682 + // line internal/php5/php5.y:2710 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4898,7 +4926,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2692 + // line internal/php5/php5.y:2720 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4910,7 +4938,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2702 + // line internal/php5/php5.y:2730 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4922,7 +4950,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2712 + // line internal/php5/php5.y:2740 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4934,7 +4962,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2722 + // line internal/php5/php5.y:2750 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4946,7 +4974,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2732 + // line internal/php5/php5.y:2760 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4958,7 +4986,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2745 + // line internal/php5/php5.y:2773 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4976,7 +5004,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2761 + // line internal/php5/php5.y:2789 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4995,7 +5023,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2806 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5012,7 +5040,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2793 + // line internal/php5/php5.y:2821 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5030,7 +5058,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2812 + // line internal/php5/php5.y:2840 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5055,7 +5083,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2835 + // line internal/php5/php5.y:2863 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5083,7 +5111,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2864 + // line internal/php5/php5.y:2892 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5092,25 +5120,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2871 + // line internal/php5/php5.y:2899 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2879 + // line internal/php5/php5.y:2907 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2911 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2890 + // line internal/php5/php5.y:2918 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5119,25 +5147,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2897 + // line internal/php5/php5.y:2925 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2904 + // line internal/php5/php5.y:2932 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2908 + // line internal/php5/php5.y:2936 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2915 + // line internal/php5/php5.y:2943 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5151,7 +5179,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2927 + // line internal/php5/php5.y:2955 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5165,37 +5193,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2942 + // line internal/php5/php5.y:2970 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2946 + // line internal/php5/php5.y:2974 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2950 + // line internal/php5/php5.y:2978 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2957 + // line internal/php5/php5.y:2985 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2961 + // line internal/php5/php5.y:2989 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2996 { if yyDollar[3].node != nil { @@ -5211,7 +5239,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2985 + // line internal/php5/php5.y:3013 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5228,7 +5256,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3000 + // line internal/php5/php5.y:3028 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5241,7 +5269,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3011 + // line internal/php5/php5.y:3039 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5255,7 +5283,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3051 { var _new *ast.ExprNew @@ -5282,7 +5310,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3048 + // line internal/php5/php5.y:3076 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5294,7 +5322,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3058 + // line internal/php5/php5.y:3086 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5306,7 +5334,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3068 + // line internal/php5/php5.y:3096 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5319,7 +5347,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3079 + // line internal/php5/php5.y:3107 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5360,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3090 + // line internal/php5/php5.y:3118 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5373,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3101 + // line internal/php5/php5.y:3129 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5386,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3112 + // line internal/php5/php5.y:3140 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5399,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3123 + // line internal/php5/php5.y:3151 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5412,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3134 + // line internal/php5/php5.y:3162 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5397,7 +5425,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3145 + // line internal/php5/php5.y:3173 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5410,7 +5438,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3156 + // line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5423,7 +5451,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3167 + // line internal/php5/php5.y:3195 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5464,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3178 + // line internal/php5/php5.y:3206 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5477,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3189 + // line internal/php5/php5.y:3217 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5462,7 +5490,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3200 + // line internal/php5/php5.y:3228 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5474,7 +5502,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3210 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5487,7 +5515,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3221 + // line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5499,7 +5527,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3231 + // line internal/php5/php5.y:3259 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5512,7 +5540,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3242 + // line internal/php5/php5.y:3270 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5525,7 +5553,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3253 + // line internal/php5/php5.y:3281 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5538,7 +5566,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3264 + // line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5579,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3275 + // line internal/php5/php5.y:3303 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5564,7 +5592,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3286 + // line internal/php5/php5.y:3314 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5577,7 +5605,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3297 + // line internal/php5/php5.y:3325 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5590,7 +5618,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3308 + // line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5603,7 +5631,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3319 + // line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5616,7 +5644,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3330 + // line internal/php5/php5.y:3358 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5629,7 +5657,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3341 + // line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5642,7 +5670,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3352 + // line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5655,7 +5683,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3363 + // line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5668,7 +5696,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3374 + // line internal/php5/php5.y:3402 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5681,7 +5709,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3385 + // line internal/php5/php5.y:3413 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5694,7 +5722,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3396 + // line internal/php5/php5.y:3424 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5707,7 +5735,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3407 + // line internal/php5/php5.y:3435 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5720,7 +5748,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3418 + // line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5732,7 +5760,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3428 + // line internal/php5/php5.y:3456 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5744,7 +5772,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3438 + // line internal/php5/php5.y:3466 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5756,7 +5784,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3448 + // line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5768,7 +5796,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3458 + // line internal/php5/php5.y:3486 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5781,7 +5809,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3469 + // line internal/php5/php5.y:3497 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5822,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3480 + // line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5835,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3491 + // line internal/php5/php5.y:3519 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5849,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3503 + // line internal/php5/php5.y:3531 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5834,7 +5862,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3514 + // line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5847,7 +5875,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3525 + // line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5860,7 +5888,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3536 + // line internal/php5/php5.y:3564 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5873,7 +5901,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3547 + // line internal/php5/php5.y:3575 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5886,19 +5914,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3558 + // line internal/php5/php5.y:3586 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3562 + // line internal/php5/php5.y:3590 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3566 + // line internal/php5/php5.y:3594 { yyVAL.node = yyDollar[2].node @@ -5930,7 +5958,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3596 + // line internal/php5/php5.y:3624 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5944,7 +5972,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3608 + // line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5958,13 +5986,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3620 + // line internal/php5/php5.y:3648 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3624 + // line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5977,7 +6005,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3635 + // line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5990,7 +6018,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3646 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6003,7 +6031,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3657 + // line internal/php5/php5.y:3685 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6016,7 +6044,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3668 + // line internal/php5/php5.y:3696 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6029,7 +6057,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3679 + // line internal/php5/php5.y:3707 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6042,7 +6070,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3690 + // line internal/php5/php5.y:3718 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6055,7 +6083,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3701 + // line internal/php5/php5.y:3729 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6075,7 +6103,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3719 + // line internal/php5/php5.y:3747 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6087,25 +6115,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3729 + // line internal/php5/php5.y:3757 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3733 + // line internal/php5/php5.y:3761 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3765 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3741 + // line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6117,7 +6145,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3751 + // line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6129,7 +6157,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3761 + // line internal/php5/php5.y:3789 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6141,7 +6169,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3771 + // line internal/php5/php5.y:3799 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6168,7 +6196,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3795 + // line internal/php5/php5.y:3823 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6196,7 +6224,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3823 + // line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6208,7 +6236,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3833 + // line internal/php5/php5.y:3861 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6220,7 +6248,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3843 + // line internal/php5/php5.y:3871 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6233,7 +6261,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3854 + // line internal/php5/php5.y:3882 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6246,7 +6274,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3868 + // line internal/php5/php5.y:3896 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6259,7 +6287,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3879 + // line internal/php5/php5.y:3907 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6272,7 +6300,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3890 + // line internal/php5/php5.y:3918 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6288,7 +6316,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3904 + // line internal/php5/php5.y:3932 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6301,7 +6329,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3918 + // line internal/php5/php5.y:3946 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6315,7 +6343,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3930 + // line internal/php5/php5.y:3958 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6328,19 +6356,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3944 + // line internal/php5/php5.y:3972 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3951 + // line internal/php5/php5.y:3979 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3955 + // line internal/php5/php5.y:3983 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6354,7 +6382,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3970 + // line internal/php5/php5.y:3998 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6370,7 +6398,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3984 + // line internal/php5/php5.y:4012 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6389,7 +6417,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4001 + // line internal/php5/php5.y:4029 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6404,7 +6432,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4014 + // line internal/php5/php5.y:4042 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6422,7 +6450,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4033 + // line internal/php5/php5.y:4061 { name := &ast.NameName{ Node: ast.Node{ @@ -6437,7 +6465,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4046 + // line internal/php5/php5.y:4074 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6454,7 +6482,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4061 + // line internal/php5/php5.y:4089 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6470,7 +6498,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4075 + // line internal/php5/php5.y:4103 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6483,7 +6511,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4086 + // line internal/php5/php5.y:4114 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6496,7 +6524,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4097 + // line internal/php5/php5.y:4125 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6509,7 +6537,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4108 + // line internal/php5/php5.y:4136 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6522,7 +6550,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4119 + // line internal/php5/php5.y:4147 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6534,7 +6562,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4132 + // line internal/php5/php5.y:4160 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6546,7 +6574,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4142 + // line internal/php5/php5.y:4170 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6557,7 +6585,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4179 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6570,7 +6598,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4162 + // line internal/php5/php5.y:4190 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6582,7 +6610,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4175 + // line internal/php5/php5.y:4203 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6593,7 +6621,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4184 + // line internal/php5/php5.y:4212 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6606,7 +6634,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4195 + // line internal/php5/php5.y:4223 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6618,19 +6646,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4236 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4212 + // line internal/php5/php5.y:4240 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4219 + // line internal/php5/php5.y:4247 { yyVAL.node = yyDollar[1].node @@ -6671,25 +6699,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4258 + // line internal/php5/php5.y:4286 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4270 + // line internal/php5/php5.y:4298 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4306 { yyVAL.list = yyDollar[2].list @@ -6698,13 +6726,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4288 + // line internal/php5/php5.y:4316 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4292 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} @@ -6717,19 +6745,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4303 + // line internal/php5/php5.y:4331 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4310 + // line internal/php5/php5.y:4338 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4314 + // line internal/php5/php5.y:4342 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6739,25 +6767,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4322 + // line internal/php5/php5.y:4350 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4357 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4333 + // line internal/php5/php5.y:4361 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4368 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6769,7 +6797,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4350 + // line internal/php5/php5.y:4378 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6781,7 +6809,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4360 + // line internal/php5/php5.y:4388 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6793,7 +6821,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4370 + // line internal/php5/php5.y:4398 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6805,7 +6833,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4380 + // line internal/php5/php5.y:4408 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6817,7 +6845,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4390 + // line internal/php5/php5.y:4418 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6829,7 +6857,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4400 + // line internal/php5/php5.y:4428 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6841,7 +6869,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4410 + // line internal/php5/php5.y:4438 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6853,7 +6881,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4448 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6865,7 +6893,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4430 + // line internal/php5/php5.y:4458 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6877,7 +6905,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4440 + // line internal/php5/php5.y:4468 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6891,7 +6919,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4452 + // line internal/php5/php5.y:4480 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6903,7 +6931,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4465 + // line internal/php5/php5.y:4493 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6919,25 +6947,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4482 + // line internal/php5/php5.y:4510 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4489 + // line internal/php5/php5.y:4517 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4493 + // line internal/php5/php5.y:4521 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4497 + // line internal/php5/php5.y:4525 { name := &ast.NameName{ Node: ast.Node{ @@ -6952,7 +6980,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4510 + // line internal/php5/php5.y:4538 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6969,7 +6997,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4553 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6985,7 +7013,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4539 + // line internal/php5/php5.y:4567 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6999,7 +7027,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4551 + // line internal/php5/php5.y:4579 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7012,13 +7040,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4590 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4566 + // line internal/php5/php5.y:4594 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7030,13 +7058,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4576 + // line internal/php5/php5.y:4604 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4583 + // line internal/php5/php5.y:4611 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7049,7 +7077,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4622 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7062,7 +7090,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4605 + // line internal/php5/php5.y:4633 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7075,7 +7103,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4616 + // line internal/php5/php5.y:4644 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7088,7 +7116,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4627 + // line internal/php5/php5.y:4655 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7101,7 +7129,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4638 + // line internal/php5/php5.y:4666 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7114,7 +7142,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4649 + // line internal/php5/php5.y:4677 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7127,7 +7155,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4660 + // line internal/php5/php5.y:4688 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7139,7 +7167,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4670 + // line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7151,7 +7179,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4680 + // line internal/php5/php5.y:4708 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7164,7 +7192,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4719 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7177,7 +7205,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4702 + // line internal/php5/php5.y:4730 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7190,7 +7218,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4741 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7203,7 +7231,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4752 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7216,7 +7244,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7229,7 +7257,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4746 + // line internal/php5/php5.y:4774 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7242,7 +7270,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4785 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7255,7 +7283,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4768 + // line internal/php5/php5.y:4796 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7268,7 +7296,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4779 + // line internal/php5/php5.y:4807 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7281,7 +7309,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4818 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7294,7 +7322,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4801 + // line internal/php5/php5.y:4829 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7307,7 +7335,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4812 + // line internal/php5/php5.y:4840 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7320,7 +7348,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4851 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7333,7 +7361,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4834 + // line internal/php5/php5.y:4862 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7347,7 +7375,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4874 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7360,7 +7388,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4857 + // line internal/php5/php5.y:4885 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7373,7 +7401,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4896 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7386,7 +7414,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4907 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7399,7 +7427,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4890 + // line internal/php5/php5.y:4918 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7413,7 +7441,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4902 + // line internal/php5/php5.y:4930 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7427,7 +7455,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4914 + // line internal/php5/php5.y:4942 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7439,7 +7467,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4924 + // line internal/php5/php5.y:4952 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7451,7 +7479,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4934 + // line internal/php5/php5.y:4962 { yyVAL.node = yyDollar[2].node @@ -7461,13 +7489,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4945 + // line internal/php5/php5.y:4973 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4949 + // line internal/php5/php5.y:4977 { name := &ast.NameName{ Node: ast.Node{ @@ -7482,7 +7510,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4962 + // line internal/php5/php5.y:4990 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7499,7 +7527,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4977 + // line internal/php5/php5.y:5005 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7515,7 +7543,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4994 + // line internal/php5/php5.y:5022 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7529,25 +7557,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5006 + // line internal/php5/php5.y:5034 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5010 + // line internal/php5/php5.y:5038 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5014 + // line internal/php5/php5.y:5042 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5018 + // line internal/php5/php5.y:5046 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7559,7 +7587,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5028 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7571,7 +7599,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5038 + // line internal/php5/php5.y:5066 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7583,13 +7611,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5051 + // line internal/php5/php5.y:5079 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5055 + // line internal/php5/php5.y:5083 { yyVAL.list = yyDollar[1].list @@ -7600,19 +7628,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5067 + // line internal/php5/php5.y:5095 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5071 + // line internal/php5/php5.y:5099 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5078 + // line internal/php5/php5.y:5106 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7627,7 +7655,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5119 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7641,7 +7669,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5103 + // line internal/php5/php5.y:5131 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7655,7 +7683,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5115 + // line internal/php5/php5.y:5143 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7668,19 +7696,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5157 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5133 + // line internal/php5/php5.y:5161 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5140 + // line internal/php5/php5.y:5168 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7693,7 +7721,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5151 + // line internal/php5/php5.y:5179 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -7706,25 +7734,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5166 + // line internal/php5/php5.y:5194 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5174 + // line internal/php5/php5.y:5202 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5181 + // line internal/php5/php5.y:5209 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5216 { yyVAL.node = yyDollar[1].node @@ -7782,25 +7810,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5244 + // line internal/php5/php5.y:5272 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5251 + // line internal/php5/php5.y:5279 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5255 + // line internal/php5/php5.y:5283 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5263 + // line internal/php5/php5.y:5291 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7814,7 +7842,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5306 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7828,7 +7856,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5290 + // line internal/php5/php5.y:5318 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7842,7 +7870,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5305 + // line internal/php5/php5.y:5333 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7851,31 +7879,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5315 + // line internal/php5/php5.y:5343 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5319 + // line internal/php5/php5.y:5347 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5323 + // line internal/php5/php5.y:5351 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5330 + // line internal/php5/php5.y:5358 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5334 + // line internal/php5/php5.y:5362 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7887,7 +7915,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5347 + // line internal/php5/php5.y:5375 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7900,7 +7928,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5386 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7913,13 +7941,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5372 + // line internal/php5/php5.y:5400 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5379 + // line internal/php5/php5.y:5407 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7932,7 +7960,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5390 + // line internal/php5/php5.y:5418 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7945,31 +7973,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5404 + // line internal/php5/php5.y:5432 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5408 + // line internal/php5/php5.y:5436 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5412 + // line internal/php5/php5.y:5440 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5420 + // line internal/php5/php5.y:5448 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5424 + // line internal/php5/php5.y:5452 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7981,13 +8009,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5434 + // line internal/php5/php5.y:5462 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5441 + // line internal/php5/php5.y:5469 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8000,7 +8028,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5452 + // line internal/php5/php5.y:5480 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8013,13 +8041,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5463 + // line internal/php5/php5.y:5491 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5471 + // line internal/php5/php5.y:5499 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8033,7 +8061,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5483 + // line internal/php5/php5.y:5511 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8047,25 +8075,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5498 + // line internal/php5/php5.y:5526 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5502 + // line internal/php5/php5.y:5530 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5538 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5514 + // line internal/php5/php5.y:5542 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8075,7 +8103,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5525 + // line internal/php5/php5.y:5553 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8089,7 +8117,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5537 + // line internal/php5/php5.y:5565 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8103,7 +8131,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5549 + // line internal/php5/php5.y:5577 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8113,7 +8141,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5588 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8125,7 +8153,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5570 + // line internal/php5/php5.y:5598 { yyVAL.node = yyDollar[2].node @@ -8138,7 +8166,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5584 + // line internal/php5/php5.y:5612 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8151,7 +8179,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5595 + // line internal/php5/php5.y:5623 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8168,7 +8196,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5613 + // line internal/php5/php5.y:5641 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8181,7 +8209,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5624 + // line internal/php5/php5.y:5652 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8191,7 +8219,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5636 + // line internal/php5/php5.y:5664 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8203,7 +8231,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5646 + // line internal/php5/php5.y:5674 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8219,19 +8247,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5660 + // line internal/php5/php5.y:5688 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5668 + // line internal/php5/php5.y:5696 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5672 + // line internal/php5/php5.y:5700 { yyVAL.list = yyDollar[1].list @@ -8246,7 +8274,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5688 + // line internal/php5/php5.y:5716 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8261,7 +8289,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5701 + // line internal/php5/php5.y:5729 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8275,7 +8303,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5713 + // line internal/php5/php5.y:5741 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8289,7 +8317,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5725 + // line internal/php5/php5.y:5753 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8302,7 +8330,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5736 + // line internal/php5/php5.y:5764 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8320,7 +8348,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5752 + // line internal/php5/php5.y:5780 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8336,7 +8364,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5766 + // line internal/php5/php5.y:5794 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8353,7 +8381,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5781 + // line internal/php5/php5.y:5809 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8368,13 +8396,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5797 + // line internal/php5/php5.y:5825 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5801 + // line internal/php5/php5.y:5829 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8387,13 +8415,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5812 + // line internal/php5/php5.y:5840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5816 + // line internal/php5/php5.y:5844 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8406,7 +8434,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5830 + // line internal/php5/php5.y:5858 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8420,7 +8448,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5842 + // line internal/php5/php5.y:5870 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8437,7 +8465,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5857 + // line internal/php5/php5.y:5885 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8456,7 +8484,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5874 + // line internal/php5/php5.y:5902 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8471,7 +8499,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5887 + // line internal/php5/php5.y:5915 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8488,7 +8516,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5902 + // line internal/php5/php5.y:5930 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8507,7 +8535,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5919 + // line internal/php5/php5.y:5947 { yyVAL.node = yyDollar[2].node @@ -8517,7 +8545,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5930 + // line internal/php5/php5.y:5958 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8529,7 +8557,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5940 + // line internal/php5/php5.y:5968 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8546,7 +8574,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5955 + // line internal/php5/php5.y:5983 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8560,7 +8588,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5970 + // line internal/php5/php5.y:5998 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8574,7 +8602,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5982 + // line internal/php5/php5.y:6010 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8590,7 +8618,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5996 + // line internal/php5/php5.y:6024 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -8606,7 +8634,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6010 + // line internal/php5/php5.y:6038 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8618,7 +8646,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6020 + // line internal/php5/php5.y:6048 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8630,7 +8658,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6030 + // line internal/php5/php5.y:6058 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -8646,7 +8674,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6044 + // line internal/php5/php5.y:6072 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8658,7 +8686,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6054 + // line internal/php5/php5.y:6082 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8670,13 +8698,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6067 + // line internal/php5/php5.y:6095 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6071 + // line internal/php5/php5.y:6099 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8685,19 +8713,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6081 + // line internal/php5/php5.y:6109 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6085 + // line internal/php5/php5.y:6113 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6092 + // line internal/php5/php5.y:6120 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8713,7 +8741,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6106 + // line internal/php5/php5.y:6134 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8729,7 +8757,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6123 + // line internal/php5/php5.y:6151 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8745,7 +8773,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6140 + // line internal/php5/php5.y:6168 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 181e9a4..05a8884 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -844,14 +844,14 @@ statement: unticked_statement: '{' inner_statement_list '}' { - $$ = &ast.StmtStmtList{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + $$ = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenCurlyBracket: $1, + Stmts: $2, + CloseCurlyBracket: $3, + } } | T_IF parenthesis_expr statement elseif_list else_single { @@ -871,12 +871,16 @@ unticked_statement: } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { - stmts := &ast.StmtStmtList{ast.Node{}, $4} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($4), + }, + Stmts: $4, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} $$ = &ast.StmtAltIf{ast.Node{}, $2, stmtsBrackets, $5, $6} // save position - stmts.GetNode().Position = position.NewNodeListPosition($4) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($3, $4) $$.GetNode().Position = position.NewTokensPosition($1, $8) @@ -1673,11 +1677,15 @@ for_statement: } | ':' inner_statement_list T_ENDFOR ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1698,11 +1706,15 @@ foreach_statement: } | ':' inner_statement_list T_ENDFOREACH ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1724,11 +1736,15 @@ declare_statement: } | ':' inner_statement_list T_ENDDECLARE ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1902,11 +1918,15 @@ while_statement: } | ':' inner_statement_list T_ENDWHILE ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1945,13 +1965,17 @@ new_elseif_list: } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { - stmts := &ast.StmtStmtList{ast.Node{}, $5} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($5), + }, + Stmts: $5, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} _elseIf := &ast.StmtAltElseIf{ast.Node{}, $3, stmtsBrackets} $$ = append($1, _elseIf) // save position - stmts.GetNode().Position = position.NewNodeListPosition($5) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($4, $5) _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) @@ -1987,12 +2011,16 @@ new_else_single: } | T_ELSE ':' inner_statement_list { - stmts := &ast.StmtStmtList{ast.Node{}, $3} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($3), + }, + Stmts: $3, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} $$ = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} // save position - stmts.GetNode().Position = position.NewNodeListPosition($3) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($2, $3) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) @@ -2626,14 +2654,14 @@ method_body: } | '{' inner_statement_list '}' { - $$ = &ast.StmtStmtList{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + $$ = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenCurlyBracket: $1, + Stmts: $2, + CloseCurlyBracket: $3, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 39c7876..bfc8970 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4834 +// line internal/php7/php7.y:4862 // line yacctab:1 var yyExca = [...]int{ @@ -3163,14 +3163,14 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:853 { - yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenCurlyBracket: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracket: yyDollar[3].token, + } } case 133: yyDollar = yyS[yypt-1 : yypt+1] @@ -3912,11 +3912,15 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:1537 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -3927,7 +3931,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1555 + // line internal/php7/php7.y:1559 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3936,13 +3940,17 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1562 + // line internal/php7/php7.y:1566 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -3953,7 +3961,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1580 + // line internal/php7/php7.y:1588 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3962,13 +3970,17 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1587 + // line internal/php7/php7.y:1595 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -3979,7 +3991,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1605 + // line internal/php7/php7.y:1617 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3994,7 +4006,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1618 + // line internal/php7/php7.y:1630 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4010,7 +4022,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1632 + // line internal/php7/php7.y:1644 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4027,7 +4039,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1647 + // line internal/php7/php7.y:1659 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4046,13 +4058,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1667 + // line internal/php7/php7.y:1679 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1671 + // line internal/php7/php7.y:1683 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4067,7 +4079,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1684 + // line internal/php7/php7.y:1696 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4082,19 +4094,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1700 + // line internal/php7/php7.y:1712 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1704 + // line internal/php7/php7.y:1716 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1711 + // line internal/php7/php7.y:1723 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4103,13 +4115,17 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1718 + // line internal/php7/php7.y:1730 { - stmtList := &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + } yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -4120,7 +4136,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1736 + // line internal/php7/php7.y:1752 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} @@ -4136,7 +4152,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1750 + // line internal/php7/php7.y:1766 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} @@ -4156,13 +4172,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1771 + // line internal/php7/php7.y:1787 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1775 + // line internal/php7/php7.y:1791 { _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} yyDollar[1].node.(*ast.StmtIf).Else = _else @@ -4178,16 +4194,20 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1792 + // line internal/php7/php7.y:1808 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} - stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[6].list} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[6].list), + }, + Stmts: yyDollar[6].list, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} yyVAL.node = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} // save position exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[6].list) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[5].token, yyDollar[6].list) yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) @@ -4199,10 +4219,15 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1811 + // line internal/php7/php7.y:1831 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} - stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[7].list} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[7].list), + }, + Stmts: yyDollar[7].list, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} yyDollar[1].node.(*ast.StmtAltIf).ElseIf = append(yyDollar[1].node.(*ast.StmtAltIf).ElseIf, _elseIf) @@ -4211,7 +4236,6 @@ yydefault: // save position exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) - stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[7].list) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[6].token, yyDollar[7].list) _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) @@ -4223,7 +4247,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1836 + // line internal/php7/php7.y:1860 { yyVAL.node = yyDollar[1].node @@ -4241,9 +4265,14 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1852 + // line internal/php7/php7.y:1876 { - stmts := &ast.StmtStmtList{ast.Node{}, yyDollar[4].list} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[4].list), + }, + Stmts: yyDollar[4].list, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} yyDollar[1].node.(*ast.StmtAltIf).Else = _else @@ -4251,7 +4280,6 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - stmts.GetNode().Position = position.NewNodeListPosition(yyDollar[4].list) stmtsBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) _else.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) @@ -4264,25 +4292,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1876 + // line internal/php7/php7.y:1904 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1880 + // line internal/php7/php7.y:1908 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1887 + // line internal/php7/php7.y:1915 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1891 + // line internal/php7/php7.y:1919 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4291,7 +4319,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1901 + // line internal/php7/php7.y:1929 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4327,7 +4355,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1963 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4364,25 +4392,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1973 + // line internal/php7/php7.y:2001 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1977 + // line internal/php7/php7.y:2005 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1984 + // line internal/php7/php7.y:2012 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1988 + // line internal/php7/php7.y:2016 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4394,7 +4422,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2001 + // line internal/php7/php7.y:2029 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4406,7 +4434,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2039 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4418,19 +4446,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2021 + // line internal/php7/php7.y:2049 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2028 + // line internal/php7/php7.y:2056 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2060 { yyVAL.node = yyDollar[2].node @@ -4439,7 +4467,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2070 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4452,7 +4480,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2081 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4469,13 +4497,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2099 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2075 + // line internal/php7/php7.y:2103 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4484,7 +4512,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2113 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4496,7 +4524,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2095 + // line internal/php7/php7.y:2123 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4508,7 +4536,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2108 + // line internal/php7/php7.y:2136 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4517,19 +4545,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2115 + // line internal/php7/php7.y:2143 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2122 + // line internal/php7/php7.y:2150 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2129 + // line internal/php7/php7.y:2157 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4538,13 +4566,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2136 + // line internal/php7/php7.y:2164 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2143 + // line internal/php7/php7.y:2171 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4560,7 +4588,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2157 + // line internal/php7/php7.y:2185 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4577,19 +4605,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2175 + // line internal/php7/php7.y:2203 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2179 + // line internal/php7/php7.y:2207 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2186 + // line internal/php7/php7.y:2214 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4603,7 +4631,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2198 + // line internal/php7/php7.y:2226 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4617,7 +4645,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2210 + // line internal/php7/php7.y:2238 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4629,7 +4657,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2220 + // line internal/php7/php7.y:2248 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4660,13 +4688,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2252 + // line internal/php7/php7.y:2280 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2256 + // line internal/php7/php7.y:2284 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4680,7 +4708,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2268 + // line internal/php7/php7.y:2296 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4692,7 +4720,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2278 + // line internal/php7/php7.y:2306 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4704,7 +4732,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2316 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4716,19 +4744,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2301 + // line internal/php7/php7.y:2329 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2305 + // line internal/php7/php7.y:2333 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2340 { yyVAL.node = yyDollar[1].node @@ -4738,7 +4766,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2320 + // line internal/php7/php7.y:2348 { yyVAL.node = yyDollar[1].node @@ -4748,7 +4776,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2331 + // line internal/php7/php7.y:2359 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4761,7 +4789,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2345 + // line internal/php7/php7.y:2373 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4777,7 +4805,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2359 + // line internal/php7/php7.y:2387 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4793,7 +4821,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2373 + // line internal/php7/php7.y:2401 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4809,7 +4837,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2387 + // line internal/php7/php7.y:2415 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4822,7 +4850,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2401 + // line internal/php7/php7.y:2429 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4836,13 +4864,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2413 + // line internal/php7/php7.y:2441 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2448 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4858,7 +4886,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2437 + // line internal/php7/php7.y:2465 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4871,26 +4899,26 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2448 + // line internal/php7/php7.y:2476 { - yyVAL.node = &ast.StmtStmtList{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenCurlyBracket: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracket: yyDollar[3].token, + } } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2490 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2466 + // line internal/php7/php7.y:2494 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4903,31 +4931,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2480 + // line internal/php7/php7.y:2508 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2484 + // line internal/php7/php7.y:2512 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2491 + // line internal/php7/php7.y:2519 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2495 + // line internal/php7/php7.y:2523 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2530 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4939,7 +4967,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2540 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4951,7 +4979,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2550 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4963,7 +4991,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2532 + // line internal/php7/php7.y:2560 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4975,7 +5003,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2542 + // line internal/php7/php7.y:2570 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4987,7 +5015,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2552 + // line internal/php7/php7.y:2580 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4999,7 +5027,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2565 + // line internal/php7/php7.y:2593 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5008,13 +5036,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2600 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2579 + // line internal/php7/php7.y:2607 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5030,7 +5058,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2593 + // line internal/php7/php7.y:2621 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5047,7 +5075,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2639 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5055,13 +5083,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2617 + // line internal/php7/php7.y:2645 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2624 + // line internal/php7/php7.y:2652 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5081,7 +5109,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2645 + // line internal/php7/php7.y:2673 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5101,7 +5129,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2666 + // line internal/php7/php7.y:2694 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5110,31 +5138,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2673 + // line internal/php7/php7.y:2701 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2680 + // line internal/php7/php7.y:2708 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2687 + // line internal/php7/php7.y:2715 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2719 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2698 + // line internal/php7/php7.y:2726 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5143,13 +5171,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2705 + // line internal/php7/php7.y:2733 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2712 + // line internal/php7/php7.y:2740 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5167,7 +5195,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2759 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5182,7 +5210,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2744 + // line internal/php7/php7.y:2772 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5194,7 +5222,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2757 + // line internal/php7/php7.y:2785 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5211,7 +5239,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2772 + // line internal/php7/php7.y:2800 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5227,7 +5255,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2786 + // line internal/php7/php7.y:2814 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5240,7 +5268,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2797 + // line internal/php7/php7.y:2825 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5254,7 +5282,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2809 + // line internal/php7/php7.y:2837 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5266,7 +5294,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2819 + // line internal/php7/php7.y:2847 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5279,7 +5307,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2830 + // line internal/php7/php7.y:2858 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5320,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2841 + // line internal/php7/php7.y:2869 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5305,7 +5333,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2880 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5346,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2863 + // line internal/php7/php7.y:2891 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5359,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2874 + // line internal/php7/php7.y:2902 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5372,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2885 + // line internal/php7/php7.y:2913 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5385,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2896 + // line internal/php7/php7.y:2924 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5398,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2907 + // line internal/php7/php7.y:2935 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5411,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2918 + // line internal/php7/php7.y:2946 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5424,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2929 + // line internal/php7/php7.y:2957 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5437,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2940 + // line internal/php7/php7.y:2968 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5450,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2951 + // line internal/php7/php7.y:2979 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5463,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2962 + // line internal/php7/php7.y:2990 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5448,7 +5476,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2973 + // line internal/php7/php7.y:3001 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5460,7 +5488,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2983 + // line internal/php7/php7.y:3011 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5473,7 +5501,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2994 + // line internal/php7/php7.y:3022 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5485,7 +5513,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3004 + // line internal/php7/php7.y:3032 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5498,7 +5526,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3015 + // line internal/php7/php7.y:3043 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5511,7 +5539,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3054 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5552,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3037 + // line internal/php7/php7.y:3065 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5565,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3048 + // line internal/php7/php7.y:3076 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5578,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3059 + // line internal/php7/php7.y:3087 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5591,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3070 + // line internal/php7/php7.y:3098 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5604,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3081 + // line internal/php7/php7.y:3109 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5617,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3092 + // line internal/php7/php7.y:3120 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5630,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3103 + // line internal/php7/php7.y:3131 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5643,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3114 + // line internal/php7/php7.y:3142 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5656,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3125 + // line internal/php7/php7.y:3153 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5669,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3136 + // line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5682,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3147 + // line internal/php7/php7.y:3175 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5695,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3158 + // line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5708,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3169 + // line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5721,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3180 + // line internal/php7/php7.y:3208 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5734,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3191 + // line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5718,7 +5746,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3201 + // line internal/php7/php7.y:3229 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5730,7 +5758,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3211 + // line internal/php7/php7.y:3239 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5742,7 +5770,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3221 + // line internal/php7/php7.y:3249 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5754,7 +5782,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3231 + // line internal/php7/php7.y:3259 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5795,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3242 + // line internal/php7/php7.y:3270 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5808,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3253 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5821,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3264 + // line internal/php7/php7.y:3292 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5835,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3276 + // line internal/php7/php7.y:3304 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5848,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3287 + // line internal/php7/php7.y:3315 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5861,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3298 + // line internal/php7/php7.y:3326 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5874,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3309 + // line internal/php7/php7.y:3337 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5887,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3320 + // line internal/php7/php7.y:3348 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5900,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3331 + // line internal/php7/php7.y:3359 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5913,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3342 + // line internal/php7/php7.y:3370 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -5898,13 +5926,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3353 + // line internal/php7/php7.y:3381 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3357 + // line internal/php7/php7.y:3385 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5918,7 +5946,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3369 + // line internal/php7/php7.y:3397 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5932,7 +5960,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3381 + // line internal/php7/php7.y:3409 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5945,13 +5973,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3392 + // line internal/php7/php7.y:3420 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3396 + // line internal/php7/php7.y:3424 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5964,7 +5992,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3407 + // line internal/php7/php7.y:3435 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5977,7 +6005,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3418 + // line internal/php7/php7.y:3446 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5990,7 +6018,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3429 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6003,7 +6031,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3440 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6016,7 +6044,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3451 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6029,7 +6057,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3462 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6042,7 +6070,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3473 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6062,7 +6090,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3491 + // line internal/php7/php7.y:3519 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6074,13 +6102,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3529 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3533 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6092,7 +6120,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3515 + // line internal/php7/php7.y:3543 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6104,7 +6132,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3553 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6116,7 +6144,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3535 + // line internal/php7/php7.y:3563 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6128,7 +6156,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3545 + // line internal/php7/php7.y:3573 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6141,7 +6169,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3556 + // line internal/php7/php7.y:3584 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6153,13 +6181,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3566 + // line internal/php7/php7.y:3594 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3570 + // line internal/php7/php7.y:3598 { yyVAL.node = yyDollar[2].node @@ -6180,7 +6208,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3591 + // line internal/php7/php7.y:3619 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6211,7 +6239,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3618 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6237,25 +6265,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3648 + // line internal/php7/php7.y:3676 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3652 + // line internal/php7/php7.y:3680 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3687 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3663 + // line internal/php7/php7.y:3691 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6269,7 +6297,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3678 + // line internal/php7/php7.y:3706 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6278,13 +6306,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3685 + // line internal/php7/php7.y:3713 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3692 + // line internal/php7/php7.y:3720 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6298,7 +6326,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3704 + // line internal/php7/php7.y:3732 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6315,7 +6343,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3722 + // line internal/php7/php7.y:3750 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6327,7 +6355,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3732 + // line internal/php7/php7.y:3760 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6340,7 +6368,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3743 + // line internal/php7/php7.y:3771 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6353,7 +6381,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3754 + // line internal/php7/php7.y:3782 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6365,7 +6393,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3767 + // line internal/php7/php7.y:3795 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6377,31 +6405,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3777 + // line internal/php7/php7.y:3805 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3784 + // line internal/php7/php7.y:3812 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3816 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3795 + // line internal/php7/php7.y:3823 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3827 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6414,13 +6442,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3813 + // line internal/php7/php7.y:3841 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3817 + // line internal/php7/php7.y:3845 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6430,25 +6458,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3853 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3832 + // line internal/php7/php7.y:3860 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3836 + // line internal/php7/php7.y:3864 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3843 + // line internal/php7/php7.y:3871 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6462,7 +6490,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3855 + // line internal/php7/php7.y:3883 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6475,7 +6503,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3866 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6487,7 +6515,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3879 + // line internal/php7/php7.y:3907 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6499,7 +6527,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3889 + // line internal/php7/php7.y:3917 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6511,7 +6539,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3899 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6523,7 +6551,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3909 + // line internal/php7/php7.y:3937 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6535,7 +6563,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3919 + // line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6547,7 +6575,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6559,7 +6587,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3939 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6571,7 +6599,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3949 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6583,7 +6611,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6595,7 +6623,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3969 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6607,7 +6635,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:4007 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6621,7 +6649,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3991 + // line internal/php7/php7.y:4019 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6633,7 +6661,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4001 + // line internal/php7/php7.y:4029 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6645,7 +6673,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4011 + // line internal/php7/php7.y:4039 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6657,19 +6685,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4021 + // line internal/php7/php7.y:4049 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4025 + // line internal/php7/php7.y:4053 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4032 + // line internal/php7/php7.y:4060 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6681,7 +6709,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4070 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6697,7 +6725,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4056 + // line internal/php7/php7.y:4084 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6713,43 +6741,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4073 + // line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4077 + // line internal/php7/php7.y:4105 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4112 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4088 + // line internal/php7/php7.y:4116 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4095 + // line internal/php7/php7.y:4123 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4102 + // line internal/php7/php7.y:4130 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4106 + // line internal/php7/php7.y:4134 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6762,19 +6790,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4117 + // line internal/php7/php7.y:4145 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4124 + // line internal/php7/php7.y:4152 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4128 + // line internal/php7/php7.y:4156 { yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} @@ -6787,19 +6815,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4139 + // line internal/php7/php7.y:4167 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4146 + // line internal/php7/php7.y:4174 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4150 + // line internal/php7/php7.y:4178 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6812,7 +6840,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4161 + // line internal/php7/php7.y:4189 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6825,7 +6853,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4200 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6838,7 +6866,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4183 + // line internal/php7/php7.y:4211 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6851,25 +6879,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4194 + // line internal/php7/php7.y:4222 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4201 + // line internal/php7/php7.y:4229 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4205 + // line internal/php7/php7.y:4233 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4237 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6882,7 +6910,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4223 + // line internal/php7/php7.y:4251 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6896,7 +6924,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4235 + // line internal/php7/php7.y:4263 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6910,7 +6938,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6922,7 +6950,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4288 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6935,7 +6963,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4271 + // line internal/php7/php7.y:4299 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6948,13 +6976,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4313 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4289 + // line internal/php7/php7.y:4317 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6967,7 +6995,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4300 + // line internal/php7/php7.y:4328 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6980,7 +7008,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4311 + // line internal/php7/php7.y:4339 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6993,7 +7021,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4322 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7006,7 +7034,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4361 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7019,7 +7047,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4347 + // line internal/php7/php7.y:4375 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7031,7 +7059,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4357 + // line internal/php7/php7.y:4385 { yyVAL.node = yyDollar[2].node @@ -7041,13 +7069,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4365 + // line internal/php7/php7.y:4393 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4372 + // line internal/php7/php7.y:4400 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7059,7 +7087,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4382 + // line internal/php7/php7.y:4410 { yyVAL.node = yyDollar[2].node @@ -7069,31 +7097,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4390 + // line internal/php7/php7.y:4418 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4397 + // line internal/php7/php7.y:4425 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4404 + // line internal/php7/php7.y:4432 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4408 + // line internal/php7/php7.y:4436 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4415 + // line internal/php7/php7.y:4443 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7106,7 +7134,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4426 + // line internal/php7/php7.y:4454 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7116,7 +7144,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4437 + // line internal/php7/php7.y:4465 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7129,7 +7157,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4448 + // line internal/php7/php7.y:4476 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7141,7 +7169,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4458 + // line internal/php7/php7.y:4486 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7157,7 +7185,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4472 + // line internal/php7/php7.y:4500 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7171,7 +7199,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4512 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7183,7 +7211,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4494 + // line internal/php7/php7.y:4522 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7202,7 +7230,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4539 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7219,13 +7247,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4557 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4533 + // line internal/php7/php7.y:4561 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7238,13 +7266,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4544 + // line internal/php7/php7.y:4572 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4548 + // line internal/php7/php7.y:4576 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7257,7 +7285,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4562 + // line internal/php7/php7.y:4590 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7271,7 +7299,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4602 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7288,7 +7316,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4589 + // line internal/php7/php7.y:4617 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7307,7 +7335,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4606 + // line internal/php7/php7.y:4634 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7322,7 +7350,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4619 + // line internal/php7/php7.y:4647 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7339,7 +7367,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4634 + // line internal/php7/php7.y:4662 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7358,7 +7386,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4679 { yyVAL.node = yyDollar[2].node @@ -7368,7 +7396,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4690 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7380,7 +7408,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4672 + // line internal/php7/php7.y:4700 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7397,7 +7425,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4687 + // line internal/php7/php7.y:4715 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7423,7 +7451,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4711 + // line internal/php7/php7.y:4739 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7437,7 +7465,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4726 + // line internal/php7/php7.y:4754 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7455,7 +7483,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4770 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} @@ -7471,7 +7499,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4756 + // line internal/php7/php7.y:4784 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7483,7 +7511,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4766 + // line internal/php7/php7.y:4794 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7495,7 +7523,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4776 + // line internal/php7/php7.y:4804 { exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} @@ -7511,7 +7539,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4790 + // line internal/php7/php7.y:4818 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7523,7 +7551,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4800 + // line internal/php7/php7.y:4828 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7535,13 +7563,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4841 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4817 + // line internal/php7/php7.y:4845 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7550,7 +7578,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4827 + // line internal/php7/php7.y:4855 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index ab3d550..a1ca1c7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -851,14 +851,14 @@ inner_statement: statement: '{' inner_statement_list '}' { - $$ = &ast.StmtStmtList{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + $$ = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenCurlyBracket: $1, + Stmts: $2, + CloseCurlyBracket: $3, + } } | if_stmt { @@ -1535,11 +1535,15 @@ for_statement: } | ':' inner_statement_list T_ENDFOR ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1560,11 +1564,15 @@ foreach_statement: } | ':' inner_statement_list T_ENDFOREACH ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1585,11 +1593,15 @@ declare_statement: } | ':' inner_statement_list T_ENDDECLARE ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1716,11 +1728,15 @@ while_statement: } | ':' inner_statement_list T_ENDWHILE ';' { - stmtList := &ast.StmtStmtList{ast.Node{}, $2} + stmtList := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + } $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} // save position - stmtList.GetNode().Position = position.NewNodeListPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -1791,13 +1807,17 @@ alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} - stmts := &ast.StmtStmtList{ast.Node{}, $6} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($6), + }, + Stmts: $6, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} $$ = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} // save position exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) - stmts.GetNode().Position = position.NewNodeListPosition($6) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($5, $6) $$.GetNode().Position = position.NewTokenNodeListPosition($1, $6) @@ -1810,7 +1830,12 @@ alt_if_stmt_without_else: | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { exprBrackets := &ast.ParserBrackets{ast.Node{}, $4} - stmts := &ast.StmtStmtList{ast.Node{}, $7} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($7), + }, + Stmts: $7, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} $1.(*ast.StmtAltIf).ElseIf = append($1.(*ast.StmtAltIf).ElseIf, _elseIf) @@ -1819,7 +1844,6 @@ alt_if_stmt_without_else: // save position exprBrackets.GetNode().Position = position.NewTokensPosition($3, $5) - stmts.GetNode().Position = position.NewNodeListPosition($7) stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($6, $7) _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $7) @@ -1850,7 +1874,12 @@ alt_if_stmt: } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { - stmts := &ast.StmtStmtList{ast.Node{}, $4} + stmts := &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($4), + }, + Stmts: $4, + } stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} $1.(*ast.StmtAltIf).Else = _else @@ -1858,7 +1887,6 @@ alt_if_stmt: $$ = $1 // save position - stmts.GetNode().Position = position.NewNodeListPosition($4) stmtsBrackets.GetNode().Position = position.NewTokensPosition($3, $5) _else.GetNode().Position = position.NewTokenNodeListPosition($2, $4) $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) @@ -2446,14 +2474,14 @@ method_body: } | '{' inner_statement_list '}' { - $$ = &ast.StmtStmtList{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) + $$ = &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenCurlyBracket: $1, + Stmts: $2, + CloseCurlyBracket: $3, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 038dc46..2013eee 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -691,7 +691,9 @@ func (n *StmtStaticVar) Accept(v NodeVisitor) { // StmtStmtList node type StmtStmtList struct { Node - Stmts []Vertex + OpenCurlyBracket *token.Token + Stmts []Vertex + CloseCurlyBracket *token.Token } func (n *StmtStmtList) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 5cd2215..b368d8a 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -82,3 +82,8 @@ func (v *FilterTokens) StmtConstant(n *ast.StmtConstant) { n.EqualTkn = nil n.CommaTkn = nil } + +func (v *FilterTokens) StmtStmtList(n *ast.StmtStmtList) { + n.OpenCurlyBracket = nil + n.CloseCurlyBracket = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index f87cd9b..4d1c2aa 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2530,6 +2530,7 @@ func (p *Printer) printStmtDo(n ast.Vertex) { } p.Print(nn.Stmt) + p.printFreeFloating(nn, token.Stmts) io.WriteString(p.w, "while") @@ -3001,16 +3002,10 @@ func (p *Printer) printStmtStatic(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtStmtList(n ast.Vertex) { - nn := n.(*ast.StmtStmtList) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "{") - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtStmtList(n *ast.StmtStmtList) { + p.printToken(n.OpenCurlyBracket, "{") + p.printNodes(n.Stmts) + p.printToken(n.CloseCurlyBracket, "}") } func (p *Printer) printStmtSwitch(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 5c14c0f..cd835d9 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -1211,7 +1211,8 @@ func TestParseAndPrintPhp5StaticVar(t *testing.T) { } func TestParseAndPrintPhp5StmtList(t *testing.T) { - src := ` Date: Thu, 3 Sep 2020 22:18:06 +0300 Subject: [PATCH 051/140] [refactoring] update ast structure of "If", "ElseIf", "Else" nodes --- internal/php5/parser_test.go | 27 +- internal/php5/php5.go | 1160 +++++++++++---------- internal/php5/php5.y | 214 ++-- internal/php5/php5_test.go | 27 +- internal/php7/parser_test.go | 27 +- internal/php7/php7.go | 1261 ++++++++++++----------- internal/php7/php7.y | 273 ++--- internal/php7/php7_test.go | 27 +- pkg/ast/ast.go | 3 - pkg/ast/node.go | 67 +- pkg/ast/traverser/dfs.go | 58 -- pkg/ast/visitor/dump.go | 33 +- pkg/ast/visitor/filter_parser_nodes.go | 54 - pkg/ast/visitor/filter_tokens.go | 26 + pkg/ast/visitor/null.go | 12 - pkg/printer/pretty_printer.go | 27 +- pkg/printer/pretty_printer_test.go | 24 +- pkg/printer/printer.go | 236 ++--- pkg/printer/printer_parsed_php5_test.go | 6 +- pkg/printer/printer_parsed_php7_test.go | 6 +- pkg/printer/printer_test.go | 26 +- 21 files changed, 1777 insertions(+), 1817 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 52dc6df..0a8d776 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -3660,7 +3660,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -3669,6 +3669,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { EndPos: 23, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3731,7 +3732,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -3740,6 +3741,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: 38, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3773,7 +3775,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, @@ -3782,6 +3784,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3846,7 +3849,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -3855,6 +3858,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { EndPos: 31, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3887,7 +3891,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, Stmts: []ast.Vertex{}, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, @@ -3896,6 +3900,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ @@ -3940,7 +3945,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -3949,6 +3954,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 61, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3982,7 +3988,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, @@ -3991,6 +3997,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -4024,7 +4031,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, @@ -4033,6 +4040,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -4067,7 +4075,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, }, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, @@ -4076,6 +4084,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index caf5d74..953db89 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6183 +// line internal/php5/php5.y:6215 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2949,52 +2949,55 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php5/php5.y:857 { - yyVAL.node = &ast.StmtIf{ast.Node{}, yyDollar[2].node, yyDollar[3].node, yyDollar[4].list, yyDollar[5].node} - - // save position + pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + pos = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) } else if len(yyDollar[4].list) > 0 { - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list) - } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + pos = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list) } - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtIf{ + Node: ast.Node{ + Position: pos, + }, + IfTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, + Cond: yyDollar[2].node.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn, + Stmt: yyDollar[3].node, + ElseIf: yyDollar[4].list, + Else: yyDollar[5].node, + } } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:873 + // line internal/php5/php5.y:879 { - stmts := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtIf{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[4].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), }, - Stmts: yyDollar[4].list, + Alt: true, + IfTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, + Cond: yyDollar[2].node.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn, + ColonTkn: yyDollar[3].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[4].list), + }, + Stmts: yyDollar[4].list, + }, + ElseIf: yyDollar[5].list, + Else: yyDollar[6].node, + EndIfTkn: yyDollar[7].token, + SemiColonTkn: yyDollar[8].token, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - yyVAL.node = &ast.StmtAltIf{ast.Node{}, yyDollar[2].node, stmtsBrackets, yyDollar[5].list, yyDollar[6].node} - - // save position - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[3].token, yyDollar[4].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.SkippedTokens) - if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloating(yyDollar[6].node.(*ast.StmtAltElse).Stmt, token.End, append(yyDollar[7].token.SkippedTokens, yyDollar[8].token.SkippedTokens...)) - } else if len(yyDollar[5].list) > 0 { - yylex.(*Parser).setFreeFloating(yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtAltElseIf).Stmt, token.End, append(yyDollar[7].token.SkippedTokens, yyDollar[8].token.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[7].token.SkippedTokens, yyDollar[8].token.SkippedTokens...)) - } - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[8].token.SkippedTokens) } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:900 + // line internal/php5/php5.y:903 { switch n := yyDollar[3].node.(type) { case *ast.StmtWhile: @@ -3013,7 +3016,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:917 + // line internal/php5/php5.y:920 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3028,7 +3031,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:930 + // line internal/php5/php5.y:933 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3055,7 +3058,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:955 + // line internal/php5/php5.y:958 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3076,7 +3079,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:974 + // line internal/php5/php5.y:977 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3090,7 +3093,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:986 + // line internal/php5/php5.y:989 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3104,7 +3107,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:998 + // line internal/php5/php5.y:1001 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3118,7 +3121,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1010 + // line internal/php5/php5.y:1013 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3132,7 +3135,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1022 + // line internal/php5/php5.y:1025 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3146,7 +3149,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1034 + // line internal/php5/php5.y:1037 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3160,7 +3163,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1046 + // line internal/php5/php5.y:1049 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3174,7 +3177,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1058 + // line internal/php5/php5.y:1061 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3188,7 +3191,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1070 + // line internal/php5/php5.y:1073 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3202,7 +3205,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1082 + // line internal/php5/php5.y:1085 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3216,7 +3219,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1094 + // line internal/php5/php5.y:1097 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3231,7 +3234,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1107 + // line internal/php5/php5.y:1110 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3243,7 +3246,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1117 + // line internal/php5/php5.y:1120 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3257,7 +3260,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1129 + // line internal/php5/php5.y:1132 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3273,7 +3276,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1143 + // line internal/php5/php5.y:1146 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3314,7 +3317,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1181 + // line internal/php5/php5.y:1184 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3355,7 +3358,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1219 + // line internal/php5/php5.y:1222 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3370,7 +3373,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1232 + // line internal/php5/php5.y:1235 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3383,7 +3386,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1243 + // line internal/php5/php5.y:1246 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3401,7 +3404,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1259 + // line internal/php5/php5.y:1262 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3415,7 +3418,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1271 + // line internal/php5/php5.y:1274 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3432,13 +3435,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1289 + // line internal/php5/php5.y:1292 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1293 + // line internal/php5/php5.y:1296 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3460,13 +3463,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1316 + // line internal/php5/php5.y:1319 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1320 + // line internal/php5/php5.y:1323 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3480,31 +3483,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1335 + // line internal/php5/php5.y:1338 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1339 + // line internal/php5/php5.y:1342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1346 + // line internal/php5/php5.y:1349 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1350 + // line internal/php5/php5.y:1353 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1357 + // line internal/php5/php5.y:1360 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3525,13 +3528,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1382 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1383 + // line internal/php5/php5.y:1386 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3540,49 +3543,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1396 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1400 + // line internal/php5/php5.y:1403 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1407 + // line internal/php5/php5.y:1410 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1414 + // line internal/php5/php5.y:1417 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1418 + // line internal/php5/php5.y:1421 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1425 + // line internal/php5/php5.y:1428 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1429 + // line internal/php5/php5.y:1432 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1436 + // line internal/php5/php5.y:1439 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3606,7 +3609,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1461 + // line internal/php5/php5.y:1464 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3634,7 +3637,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1487 + // line internal/php5/php5.y:1490 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3651,7 +3654,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1506 + // line internal/php5/php5.y:1509 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3663,7 +3666,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1516 + // line internal/php5/php5.y:1519 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3678,7 +3681,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1529 + // line internal/php5/php5.y:1532 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3690,7 +3693,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1539 + // line internal/php5/php5.y:1542 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3705,13 +3708,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1555 + // line internal/php5/php5.y:1558 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1559 + // line internal/php5/php5.y:1562 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3723,19 +3726,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1575 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1582 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1583 + // line internal/php5/php5.y:1586 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3747,13 +3750,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1596 + // line internal/php5/php5.y:1599 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1600 + // line internal/php5/php5.y:1603 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3765,13 +3768,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1613 + // line internal/php5/php5.y:1616 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1617 + // line internal/php5/php5.y:1620 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3785,13 +3788,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1629 + // line internal/php5/php5.y:1632 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1633 + // line internal/php5/php5.y:1636 { yyVAL.node = yyDollar[2].node @@ -3800,13 +3803,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1643 + // line internal/php5/php5.y:1646 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1647 + // line internal/php5/php5.y:1650 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3818,7 +3821,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1657 + // line internal/php5/php5.y:1660 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3832,7 +3835,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1672 + // line internal/php5/php5.y:1675 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3841,7 +3844,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1679 + // line internal/php5/php5.y:1682 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3862,7 +3865,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1701 + // line internal/php5/php5.y:1704 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3871,7 +3874,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1708 + // line internal/php5/php5.y:1711 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3892,7 +3895,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1734 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3901,7 +3904,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1738 + // line internal/php5/php5.y:1741 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3922,7 +3925,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1761 + // line internal/php5/php5.y:1764 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3944,7 +3947,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1781 + // line internal/php5/php5.y:1784 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3965,7 +3968,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1804 + // line internal/php5/php5.y:1807 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3980,7 +3983,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1820 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3996,7 +3999,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1831 + // line internal/php5/php5.y:1834 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4013,7 +4016,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1846 + // line internal/php5/php5.y:1849 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4032,13 +4035,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1867 + // line internal/php5/php5.y:1870 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1871 + // line internal/php5/php5.y:1874 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4053,7 +4056,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1884 + // line internal/php5/php5.y:1887 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4068,19 +4071,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1901 + // line internal/php5/php5.y:1904 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1905 + // line internal/php5/php5.y:1908 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1913 + // line internal/php5/php5.y:1916 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4089,7 +4092,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1920 + // line internal/php5/php5.y:1923 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -4110,117 +4113,117 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1944 + // line internal/php5/php5.y:1947 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1948 + // line internal/php5/php5.y:1951 { - _elseIf := &ast.StmtElseIf{ast.Node{}, yyDollar[3].node, yyDollar[4].node} - yyVAL.list = append(yyDollar[1].list, _elseIf) - - // save position - _elseIf.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), + }, + ElseIfTkn: yyDollar[2].token, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, + Cond: yyDollar[3].node.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).CloseBracketTkn, + Stmt: yyDollar[4].node, + }) } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1963 + // line internal/php5/php5.y:1968 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1972 { - stmts := &ast.StmtStmtList{ + yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[5].list), + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), }, - Stmts: yyDollar[5].list, - } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, yyDollar[3].node, stmtsBrackets} - yyVAL.list = append(yyDollar[1].list, _elseIf) - - // save position - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[4].token, yyDollar[5].list) - _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[4].token.SkippedTokens) + Alt: true, + ElseIfTkn: yyDollar[2].token, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, + Cond: yyDollar[3].node.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).CloseBracketTkn, + ColonTkn: yyDollar[4].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[5].list), + }, + Stmts: yyDollar[5].list, + }, + }) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1991 + // line internal/php5/php5.y:1996 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1995 + // line internal/php5/php5.y:2000 { - yyVAL.node = &ast.StmtElse{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtElse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + ElseTkn: yyDollar[1].token, + Stmt: yyDollar[2].node, + } } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2009 + // line internal/php5/php5.y:2014 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2013 + // line internal/php5/php5.y:2018 { - stmts := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtElse{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + Alt: true, + ElseTkn: yyDollar[1].token, + ColonTkn: yyDollar[2].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[3].list), + }, + Stmts: yyDollar[3].list, }, - Stmts: yyDollar[3].list, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - yyVAL.node = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} - - // save position - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[3].list) - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[2].token.SkippedTokens) } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2036 + // line internal/php5/php5.y:2039 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2040 + // line internal/php5/php5.y:2043 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2047 + // line internal/php5/php5.y:2050 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2051 + // line internal/php5/php5.y:2054 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4229,7 +4232,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2061 + // line internal/php5/php5.y:2064 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4265,7 +4268,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2095 + // line internal/php5/php5.y:2098 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4302,13 +4305,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2134 + // line internal/php5/php5.y:2137 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2138 + // line internal/php5/php5.y:2141 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4320,7 +4323,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2148 + // line internal/php5/php5.y:2151 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4332,13 +4335,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2158 + // line internal/php5/php5.y:2161 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2166 + // line internal/php5/php5.y:2169 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4351,7 +4354,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2180 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4364,7 +4367,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2188 + // line internal/php5/php5.y:2191 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4379,13 +4382,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2205 + // line internal/php5/php5.y:2208 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2209 + // line internal/php5/php5.y:2212 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4394,7 +4397,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2219 + // line internal/php5/php5.y:2222 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4406,7 +4409,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2229 + // line internal/php5/php5.y:2232 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4418,7 +4421,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2239 + // line internal/php5/php5.y:2242 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4430,7 +4433,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2249 + // line internal/php5/php5.y:2252 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4442,7 +4445,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2262 + // line internal/php5/php5.y:2265 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4451,13 +4454,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2269 + // line internal/php5/php5.y:2272 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2277 + // line internal/php5/php5.y:2280 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4471,7 +4474,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2289 + // line internal/php5/php5.y:2292 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4483,7 +4486,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2299 + // line internal/php5/php5.y:2302 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4497,7 +4500,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2315 + // line internal/php5/php5.y:2318 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4515,7 +4518,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2331 + // line internal/php5/php5.y:2334 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4534,7 +4537,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2348 + // line internal/php5/php5.y:2351 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4551,7 +4554,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2363 + // line internal/php5/php5.y:2366 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4569,19 +4572,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2383 + // line internal/php5/php5.y:2386 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2387 + // line internal/php5/php5.y:2390 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2395 + // line internal/php5/php5.y:2398 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4595,7 +4598,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2407 + // line internal/php5/php5.y:2410 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4603,13 +4606,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2413 + // line internal/php5/php5.y:2416 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2417 + // line internal/php5/php5.y:2420 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4640,7 +4643,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2449 + // line internal/php5/php5.y:2452 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4652,13 +4655,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2462 + // line internal/php5/php5.y:2465 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2466 + // line internal/php5/php5.y:2469 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4672,7 +4675,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2481 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4684,7 +4687,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2488 + // line internal/php5/php5.y:2491 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4696,31 +4699,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2501 + // line internal/php5/php5.y:2504 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2505 + // line internal/php5/php5.y:2508 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2512 + // line internal/php5/php5.y:2515 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2516 + // line internal/php5/php5.y:2519 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2523 + // line internal/php5/php5.y:2526 { yyVAL.node = yyDollar[1].node @@ -4730,7 +4733,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2531 + // line internal/php5/php5.y:2534 { yyVAL.node = yyDollar[1].node @@ -4740,7 +4743,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2542 + // line internal/php5/php5.y:2545 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4753,13 +4756,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2556 + // line internal/php5/php5.y:2559 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2560 + // line internal/php5/php5.y:2563 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4768,7 +4771,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2570 + // line internal/php5/php5.y:2573 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4782,13 +4785,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2582 + // line internal/php5/php5.y:2585 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2589 + // line internal/php5/php5.y:2592 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4804,7 +4807,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2606 + // line internal/php5/php5.y:2609 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4820,7 +4823,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2620 + // line internal/php5/php5.y:2623 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4833,19 +4836,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2634 + // line internal/php5/php5.y:2637 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2638 + // line internal/php5/php5.y:2641 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2645 + // line internal/php5/php5.y:2648 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4858,7 +4861,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2656 + // line internal/php5/php5.y:2659 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4871,13 +4874,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2670 + // line internal/php5/php5.y:2673 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2674 + // line internal/php5/php5.y:2677 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4890,31 +4893,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2688 + // line internal/php5/php5.y:2691 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2692 + // line internal/php5/php5.y:2695 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2699 + // line internal/php5/php5.y:2702 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2703 + // line internal/php5/php5.y:2706 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2710 + // line internal/php5/php5.y:2713 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4926,7 +4929,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2720 + // line internal/php5/php5.y:2723 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4938,7 +4941,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2730 + // line internal/php5/php5.y:2733 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4950,7 +4953,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2740 + // line internal/php5/php5.y:2743 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4962,7 +4965,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2750 + // line internal/php5/php5.y:2753 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4974,7 +4977,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2760 + // line internal/php5/php5.y:2763 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4986,7 +4989,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2773 + // line internal/php5/php5.y:2776 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5004,7 +5007,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2789 + // line internal/php5/php5.y:2792 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5023,7 +5026,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2806 + // line internal/php5/php5.y:2809 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5040,7 +5043,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2821 + // line internal/php5/php5.y:2824 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5058,7 +5061,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2840 + // line internal/php5/php5.y:2843 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5083,7 +5086,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2863 + // line internal/php5/php5.y:2866 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5111,7 +5114,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2892 + // line internal/php5/php5.y:2895 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5120,25 +5123,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2899 + // line internal/php5/php5.y:2902 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2907 + // line internal/php5/php5.y:2910 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2911 + // line internal/php5/php5.y:2914 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2918 + // line internal/php5/php5.y:2921 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5147,25 +5150,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2928 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2932 + // line internal/php5/php5.y:2935 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2936 + // line internal/php5/php5.y:2939 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2943 + // line internal/php5/php5.y:2946 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5179,7 +5182,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2955 + // line internal/php5/php5.y:2958 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5193,37 +5196,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2970 + // line internal/php5/php5.y:2973 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2974 + // line internal/php5/php5.y:2977 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2978 + // line internal/php5/php5.y:2981 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2985 + // line internal/php5/php5.y:2988 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2989 + // line internal/php5/php5.y:2992 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2996 + // line internal/php5/php5.y:2999 { if yyDollar[3].node != nil { @@ -5239,7 +5242,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3013 + // line internal/php5/php5.y:3016 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5256,7 +5259,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3031 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5269,7 +5272,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3039 + // line internal/php5/php5.y:3042 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5283,7 +5286,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3051 + // line internal/php5/php5.y:3054 { var _new *ast.ExprNew @@ -5310,7 +5313,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3076 + // line internal/php5/php5.y:3079 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5322,7 +5325,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3086 + // line internal/php5/php5.y:3089 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5334,7 +5337,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3096 + // line internal/php5/php5.y:3099 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5347,7 +5350,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3107 + // line internal/php5/php5.y:3110 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5360,7 +5363,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3118 + // line internal/php5/php5.y:3121 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5373,7 +5376,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3129 + // line internal/php5/php5.y:3132 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5386,7 +5389,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3143 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5399,7 +5402,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3151 + // line internal/php5/php5.y:3154 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5412,7 +5415,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3162 + // line internal/php5/php5.y:3165 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5425,7 +5428,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3173 + // line internal/php5/php5.y:3176 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5438,7 +5441,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3184 + // line internal/php5/php5.y:3187 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5451,7 +5454,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3195 + // line internal/php5/php5.y:3198 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5464,7 +5467,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3206 + // line internal/php5/php5.y:3209 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5477,7 +5480,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3217 + // line internal/php5/php5.y:3220 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5490,7 +5493,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3228 + // line internal/php5/php5.y:3231 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5502,7 +5505,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3241 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5515,7 +5518,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3249 + // line internal/php5/php5.y:3252 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5527,7 +5530,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3259 + // line internal/php5/php5.y:3262 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5540,7 +5543,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3270 + // line internal/php5/php5.y:3273 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5553,7 +5556,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3281 + // line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5566,7 +5569,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3292 + // line internal/php5/php5.y:3295 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5579,7 +5582,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3303 + // line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5592,7 +5595,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3314 + // line internal/php5/php5.y:3317 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5605,7 +5608,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3325 + // line internal/php5/php5.y:3328 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5618,7 +5621,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3336 + // line internal/php5/php5.y:3339 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5631,7 +5634,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3347 + // line internal/php5/php5.y:3350 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5644,7 +5647,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3358 + // line internal/php5/php5.y:3361 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5657,7 +5660,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3369 + // line internal/php5/php5.y:3372 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5670,7 +5673,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3383 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5683,7 +5686,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3394 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5696,7 +5699,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3402 + // line internal/php5/php5.y:3405 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5709,7 +5712,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3413 + // line internal/php5/php5.y:3416 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5722,7 +5725,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3427 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5735,7 +5738,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3435 + // line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5748,7 +5751,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3446 + // line internal/php5/php5.y:3449 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5760,7 +5763,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3456 + // line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5772,7 +5775,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3466 + // line internal/php5/php5.y:3469 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5784,7 +5787,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3476 + // line internal/php5/php5.y:3479 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5796,7 +5799,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3486 + // line internal/php5/php5.y:3489 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5812,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3497 + // line internal/php5/php5.y:3500 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,7 +5825,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3508 + // line internal/php5/php5.y:3511 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5838,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3519 + // line internal/php5/php5.y:3522 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5849,7 +5852,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3531 + // line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5862,7 +5865,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3542 + // line internal/php5/php5.y:3545 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5875,7 +5878,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3553 + // line internal/php5/php5.y:3556 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5888,7 +5891,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3564 + // line internal/php5/php5.y:3567 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5901,7 +5904,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3575 + // line internal/php5/php5.y:3578 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5914,19 +5917,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3586 + // line internal/php5/php5.y:3589 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3590 + // line internal/php5/php5.y:3593 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3594 + // line internal/php5/php5.y:3597 { yyVAL.node = yyDollar[2].node @@ -5958,7 +5961,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3624 + // line internal/php5/php5.y:3627 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5972,7 +5975,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3636 + // line internal/php5/php5.y:3639 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5986,13 +5989,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3648 + // line internal/php5/php5.y:3651 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3652 + // line internal/php5/php5.y:3655 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6005,7 +6008,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3663 + // line internal/php5/php5.y:3666 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6018,7 +6021,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3677 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6031,7 +6034,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3685 + // line internal/php5/php5.y:3688 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6044,7 +6047,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3699 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6057,7 +6060,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3707 + // line internal/php5/php5.y:3710 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6070,7 +6073,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3718 + // line internal/php5/php5.y:3721 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6083,7 +6086,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3729 + // line internal/php5/php5.y:3732 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6103,7 +6106,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3747 + // line internal/php5/php5.y:3750 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6115,25 +6118,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3757 + // line internal/php5/php5.y:3760 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3761 + // line internal/php5/php5.y:3764 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3765 + // line internal/php5/php5.y:3768 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3769 + // line internal/php5/php5.y:3772 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6145,7 +6148,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3779 + // line internal/php5/php5.y:3782 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6157,7 +6160,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3789 + // line internal/php5/php5.y:3792 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6169,7 +6172,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3799 + // line internal/php5/php5.y:3802 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6196,7 +6199,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3823 + // line internal/php5/php5.y:3826 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6224,7 +6227,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3854 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6236,7 +6239,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3861 + // line internal/php5/php5.y:3864 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6248,7 +6251,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3871 + // line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6261,7 +6264,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3882 + // line internal/php5/php5.y:3885 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6274,7 +6277,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3896 + // line internal/php5/php5.y:3899 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6287,7 +6290,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3907 + // line internal/php5/php5.y:3910 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6300,7 +6303,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3918 + // line internal/php5/php5.y:3921 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6316,7 +6319,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3932 + // line internal/php5/php5.y:3935 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6329,7 +6332,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3946 + // line internal/php5/php5.y:3949 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6343,7 +6346,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3958 + // line internal/php5/php5.y:3961 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6356,19 +6359,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3972 + // line internal/php5/php5.y:3975 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3979 + // line internal/php5/php5.y:3982 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3983 + // line internal/php5/php5.y:3986 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6382,7 +6385,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3998 + // line internal/php5/php5.y:4001 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6398,7 +6401,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4012 + // line internal/php5/php5.y:4015 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6417,7 +6420,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4029 + // line internal/php5/php5.y:4032 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6432,7 +6435,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4042 + // line internal/php5/php5.y:4045 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6450,7 +6453,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4061 + // line internal/php5/php5.y:4064 { name := &ast.NameName{ Node: ast.Node{ @@ -6465,7 +6468,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4074 + // line internal/php5/php5.y:4077 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6482,7 +6485,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4089 + // line internal/php5/php5.y:4092 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6498,7 +6501,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4103 + // line internal/php5/php5.y:4106 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6511,7 +6514,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4114 + // line internal/php5/php5.y:4117 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6524,7 +6527,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4125 + // line internal/php5/php5.y:4128 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6537,7 +6540,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4136 + // line internal/php5/php5.y:4139 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6550,7 +6553,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4147 + // line internal/php5/php5.y:4150 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6562,7 +6565,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4160 + // line internal/php5/php5.y:4163 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6574,7 +6577,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4170 + // line internal/php5/php5.y:4173 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6585,7 +6588,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4179 + // line internal/php5/php5.y:4182 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6598,7 +6601,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4190 + // line internal/php5/php5.y:4193 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6610,7 +6613,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4203 + // line internal/php5/php5.y:4206 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6621,7 +6624,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4212 + // line internal/php5/php5.y:4215 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6634,7 +6637,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4223 + // line internal/php5/php5.y:4226 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6646,19 +6649,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4236 + // line internal/php5/php5.y:4239 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4240 + // line internal/php5/php5.y:4243 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4247 + // line internal/php5/php5.y:4250 { yyVAL.node = yyDollar[1].node @@ -6699,25 +6702,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4286 + // line internal/php5/php5.y:4289 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4294 + // line internal/php5/php5.y:4297 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4298 + // line internal/php5/php5.y:4301 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4306 + // line internal/php5/php5.y:4309 { yyVAL.list = yyDollar[2].list @@ -6726,18 +6729,21 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4316 + // line internal/php5/php5.y:4319 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4323 { - yyVAL.node = &ast.ParserBrackets{ast.Node{}, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + OpenBracketTkn: yyDollar[1].token, + CloseBracketTkn: yyDollar[2].token, + } // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) @@ -6745,19 +6751,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4331 + // line internal/php5/php5.y:4337 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4338 + // line internal/php5/php5.y:4344 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4342 + // line internal/php5/php5.y:4348 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6767,25 +6773,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4350 + // line internal/php5/php5.y:4356 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4357 + // line internal/php5/php5.y:4363 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4361 + // line internal/php5/php5.y:4367 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4368 + // line internal/php5/php5.y:4374 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6797,7 +6803,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4378 + // line internal/php5/php5.y:4384 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6809,7 +6815,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4388 + // line internal/php5/php5.y:4394 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6821,7 +6827,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4398 + // line internal/php5/php5.y:4404 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6833,7 +6839,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4408 + // line internal/php5/php5.y:4414 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6845,7 +6851,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4418 + // line internal/php5/php5.y:4424 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6857,7 +6863,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4428 + // line internal/php5/php5.y:4434 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6869,7 +6875,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4438 + // line internal/php5/php5.y:4444 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6881,7 +6887,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4448 + // line internal/php5/php5.y:4454 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6893,7 +6899,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4458 + // line internal/php5/php5.y:4464 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6905,7 +6911,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4468 + // line internal/php5/php5.y:4474 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6919,7 +6925,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4480 + // line internal/php5/php5.y:4486 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6931,7 +6937,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4493 + // line internal/php5/php5.y:4499 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6947,25 +6953,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4510 + // line internal/php5/php5.y:4516 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4517 + // line internal/php5/php5.y:4523 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4527 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4531 { name := &ast.NameName{ Node: ast.Node{ @@ -6980,7 +6986,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4538 + // line internal/php5/php5.y:4544 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6997,7 +7003,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4553 + // line internal/php5/php5.y:4559 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7013,7 +7019,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4567 + // line internal/php5/php5.y:4573 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7027,7 +7033,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4579 + // line internal/php5/php5.y:4585 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7040,13 +7046,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4590 + // line internal/php5/php5.y:4596 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4600 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7058,13 +7064,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4604 + // line internal/php5/php5.y:4610 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4611 + // line internal/php5/php5.y:4617 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7083,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4622 + // line internal/php5/php5.y:4628 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7090,7 +7096,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4633 + // line internal/php5/php5.y:4639 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7109,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4644 + // line internal/php5/php5.y:4650 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7116,7 +7122,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4655 + // line internal/php5/php5.y:4661 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7129,7 +7135,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4666 + // line internal/php5/php5.y:4672 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7142,7 +7148,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4677 + // line internal/php5/php5.y:4683 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7155,7 +7161,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4688 + // line internal/php5/php5.y:4694 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7167,7 +7173,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4698 + // line internal/php5/php5.y:4704 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7179,7 +7185,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4708 + // line internal/php5/php5.y:4714 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7192,7 +7198,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4719 + // line internal/php5/php5.y:4725 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7205,7 +7211,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4730 + // line internal/php5/php5.y:4736 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7218,7 +7224,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4741 + // line internal/php5/php5.y:4747 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7231,7 +7237,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4752 + // line internal/php5/php5.y:4758 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7244,7 +7250,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4763 + // line internal/php5/php5.y:4769 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7257,7 +7263,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4774 + // line internal/php5/php5.y:4780 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7270,7 +7276,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4785 + // line internal/php5/php5.y:4791 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7283,7 +7289,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4796 + // line internal/php5/php5.y:4802 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7302,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4807 + // line internal/php5/php5.y:4813 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7315,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4818 + // line internal/php5/php5.y:4824 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7328,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4829 + // line internal/php5/php5.y:4835 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7335,7 +7341,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4840 + // line internal/php5/php5.y:4846 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7348,7 +7354,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4851 + // line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7361,7 +7367,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4862 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7381,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4874 + // line internal/php5/php5.y:4880 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7394,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4885 + // line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7401,7 +7407,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4896 + // line internal/php5/php5.y:4902 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7414,7 +7420,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4907 + // line internal/php5/php5.y:4913 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7427,7 +7433,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4918 + // line internal/php5/php5.y:4924 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7441,7 +7447,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7455,7 +7461,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4948 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7467,7 +7473,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4952 + // line internal/php5/php5.y:4958 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7479,7 +7485,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4962 + // line internal/php5/php5.y:4968 { yyVAL.node = yyDollar[2].node @@ -7489,13 +7495,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4973 + // line internal/php5/php5.y:4979 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4977 + // line internal/php5/php5.y:4983 { name := &ast.NameName{ Node: ast.Node{ @@ -7510,7 +7516,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4990 + // line internal/php5/php5.y:4996 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7527,7 +7533,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5005 + // line internal/php5/php5.y:5011 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7543,7 +7549,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5022 + // line internal/php5/php5.y:5028 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7557,25 +7563,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5034 + // line internal/php5/php5.y:5040 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5038 + // line internal/php5/php5.y:5044 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5042 + // line internal/php5/php5.y:5048 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5046 + // line internal/php5/php5.y:5052 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7587,7 +7593,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5062 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7599,7 +7605,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5072 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7611,13 +7617,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5079 + // line internal/php5/php5.y:5085 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5083 + // line internal/php5/php5.y:5089 { yyVAL.list = yyDollar[1].list @@ -7628,19 +7634,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5095 + // line internal/php5/php5.y:5101 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5099 + // line internal/php5/php5.y:5105 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5112 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7655,7 +7661,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5119 + // line internal/php5/php5.y:5125 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7669,7 +7675,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5131 + // line internal/php5/php5.y:5137 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7683,7 +7689,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5143 + // line internal/php5/php5.y:5149 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7696,24 +7702,28 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5157 + // line internal/php5/php5.y:5163 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5161 + // line internal/php5/php5.y:5167 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5168 + // line internal/php5/php5.y:5174 { - yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) @@ -7721,12 +7731,16 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5179 + // line internal/php5/php5.y:5189 { - yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) @@ -7734,25 +7748,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5194 + // line internal/php5/php5.y:5208 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5202 + // line internal/php5/php5.y:5216 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5209 + // line internal/php5/php5.y:5223 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5216 + // line internal/php5/php5.y:5230 { yyVAL.node = yyDollar[1].node @@ -7810,25 +7824,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5272 + // line internal/php5/php5.y:5286 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5279 + // line internal/php5/php5.y:5293 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5283 + // line internal/php5/php5.y:5297 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5291 + // line internal/php5/php5.y:5305 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7842,7 +7856,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5306 + // line internal/php5/php5.y:5320 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7856,7 +7870,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5318 + // line internal/php5/php5.y:5332 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7870,7 +7884,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5333 + // line internal/php5/php5.y:5347 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7879,31 +7893,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5343 + // line internal/php5/php5.y:5357 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5347 + // line internal/php5/php5.y:5361 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5351 + // line internal/php5/php5.y:5365 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5372 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5362 + // line internal/php5/php5.y:5376 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7915,7 +7929,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5375 + // line internal/php5/php5.y:5389 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7928,7 +7942,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5400 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7941,13 +7955,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5400 + // line internal/php5/php5.y:5414 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5407 + // line internal/php5/php5.y:5421 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7960,7 +7974,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5418 + // line internal/php5/php5.y:5432 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7973,31 +7987,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5432 + // line internal/php5/php5.y:5446 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5436 + // line internal/php5/php5.y:5450 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5440 + // line internal/php5/php5.y:5454 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5462 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5452 + // line internal/php5/php5.y:5466 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8009,13 +8023,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5462 + // line internal/php5/php5.y:5476 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5469 + // line internal/php5/php5.y:5483 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8028,7 +8042,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5480 + // line internal/php5/php5.y:5494 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,13 +8055,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5491 + // line internal/php5/php5.y:5505 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5499 + // line internal/php5/php5.y:5513 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8061,7 +8075,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5525 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8075,25 +8089,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5540 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5530 + // line internal/php5/php5.y:5544 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5538 + // line internal/php5/php5.y:5552 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5542 + // line internal/php5/php5.y:5556 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8103,7 +8117,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5553 + // line internal/php5/php5.y:5567 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8117,7 +8131,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5565 + // line internal/php5/php5.y:5579 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8131,7 +8145,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5577 + // line internal/php5/php5.y:5591 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8141,7 +8155,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5588 + // line internal/php5/php5.y:5602 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8153,7 +8167,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5598 + // line internal/php5/php5.y:5612 { yyVAL.node = yyDollar[2].node @@ -8166,7 +8180,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5612 + // line internal/php5/php5.y:5626 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8179,7 +8193,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5623 + // line internal/php5/php5.y:5637 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8196,7 +8210,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5655 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8209,7 +8223,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5652 + // line internal/php5/php5.y:5666 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8219,7 +8233,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5664 + // line internal/php5/php5.y:5678 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8231,7 +8245,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5674 + // line internal/php5/php5.y:5688 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8247,19 +8261,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5688 + // line internal/php5/php5.y:5702 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5696 + // line internal/php5/php5.y:5710 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5700 + // line internal/php5/php5.y:5714 { yyVAL.list = yyDollar[1].list @@ -8274,7 +8288,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5716 + // line internal/php5/php5.y:5730 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8289,7 +8303,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5729 + // line internal/php5/php5.y:5743 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8303,7 +8317,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5741 + // line internal/php5/php5.y:5755 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8317,7 +8331,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5753 + // line internal/php5/php5.y:5767 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8330,7 +8344,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5778 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8348,7 +8362,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5780 + // line internal/php5/php5.y:5794 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8364,7 +8378,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5794 + // line internal/php5/php5.y:5808 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8381,7 +8395,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5809 + // line internal/php5/php5.y:5823 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8396,13 +8410,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5825 + // line internal/php5/php5.y:5839 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5829 + // line internal/php5/php5.y:5843 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8415,13 +8429,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5840 + // line internal/php5/php5.y:5854 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5844 + // line internal/php5/php5.y:5858 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8434,7 +8448,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5858 + // line internal/php5/php5.y:5872 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8448,7 +8462,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5870 + // line internal/php5/php5.y:5884 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8465,7 +8479,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5885 + // line internal/php5/php5.y:5899 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8484,7 +8498,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5902 + // line internal/php5/php5.y:5916 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8499,7 +8513,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5915 + // line internal/php5/php5.y:5929 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8516,7 +8530,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5930 + // line internal/php5/php5.y:5944 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8535,7 +8549,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5947 + // line internal/php5/php5.y:5961 { yyVAL.node = yyDollar[2].node @@ -8545,7 +8559,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5958 + // line internal/php5/php5.y:5972 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8557,7 +8571,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5968 + // line internal/php5/php5.y:5982 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8574,7 +8588,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5983 + // line internal/php5/php5.y:5997 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8588,7 +8602,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5998 + // line internal/php5/php5.y:6012 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8602,13 +8616,19 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6010 + // line internal/php5/php5.y:6024 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -8618,13 +8638,19 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6024 + // line internal/php5/php5.y:6044 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -8634,7 +8660,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6038 + // line internal/php5/php5.y:6064 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8646,7 +8672,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6048 + // line internal/php5/php5.y:6074 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8658,13 +8684,19 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6058 + // line internal/php5/php5.y:6084 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -8674,7 +8706,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6072 + // line internal/php5/php5.y:6104 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8686,7 +8718,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6082 + // line internal/php5/php5.y:6114 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8698,13 +8730,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6095 + // line internal/php5/php5.y:6127 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6099 + // line internal/php5/php5.y:6131 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8713,19 +8745,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6109 + // line internal/php5/php5.y:6141 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6113 + // line internal/php5/php5.y:6145 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6120 + // line internal/php5/php5.y:6152 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8741,7 +8773,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6134 + // line internal/php5/php5.y:6166 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8757,7 +8789,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6151 + // line internal/php5/php5.y:6183 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8773,7 +8805,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6168 + // line internal/php5/php5.y:6200 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 05a8884..38a0d87 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -855,46 +855,49 @@ unticked_statement: } | T_IF parenthesis_expr statement elseif_list else_single { - $$ = &ast.StmtIf{ast.Node{}, $2, $3, $4, $5} - - // save position + pos := position.NewTokenNodePosition($1, $3) if $5 != nil { - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) + pos = position.NewTokenNodePosition($1, $5) } else if len($4) > 0 { - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $4) - } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) + pos = position.NewTokenNodeListPosition($1, $4) } - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtIf{ + Node: ast.Node{ + Position: pos, + }, + IfTkn: $1, + OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, + Cond: $2.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, + Stmt: $3, + ElseIf: $4, + Else: $5, + } } | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { - stmts := &ast.StmtStmtList{ + $$ = &ast.StmtIf{ Node: ast.Node{ - Position: position.NewNodeListPosition($4), + Position: position.NewTokensPosition($1, $8), }, - Stmts: $4, + Alt: true, + IfTkn: $1, + OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, + Cond: $2.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, + ColonTkn: $3, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($4), + }, + Stmts: $4, + }, + ElseIf: $5, + Else: $6, + EndIfTkn: $7, + SemiColonTkn: $8, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - $$ = &ast.StmtAltIf{ast.Node{}, $2, stmtsBrackets, $5, $6} - - // save position - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($3, $4) - $$.GetNode().Position = position.NewTokensPosition($1, $8) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.SkippedTokens) - if $6 != nil { - yylex.(*Parser).setFreeFloating($6.(*ast.StmtAltElse).Stmt, token.End, append($7.SkippedTokens, $8.SkippedTokens...)) - } else if len($5) > 0 { - yylex.(*Parser).setFreeFloating($5[len($5)-1].(*ast.StmtAltElseIf).Stmt, token.End, append($7.SkippedTokens, $8.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($7.SkippedTokens, $8.SkippedTokens...)) - } - yylex.(*Parser).setToken($$, token.SemiColon, $8.SkippedTokens) } | T_WHILE parenthesis_expr while_statement { @@ -1946,14 +1949,16 @@ elseif_list: } | elseif_list T_ELSEIF parenthesis_expr statement { - _elseIf := &ast.StmtElseIf{ast.Node{}, $3, $4} - $$ = append($1, _elseIf) - - // save position - _elseIf.GetNode().Position = position.NewTokenNodePosition($2, $4) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) + $$ = append($1, &ast.StmtElseIf{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($2, $4), + }, + ElseIfTkn: $2, + OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, + Cond: $3.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, + Stmt: $4, + }) } ; @@ -1965,23 +1970,23 @@ new_elseif_list: } | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { - stmts := &ast.StmtStmtList{ + $$ = append($1, &ast.StmtElseIf{ Node: ast.Node{ - Position: position.NewNodeListPosition($5), + Position: position.NewTokenNodeListPosition($2, $5), }, - Stmts: $5, - } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, $3, stmtsBrackets} - $$ = append($1, _elseIf) - - // save position - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($4, $5) - _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $5) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $4.SkippedTokens) + Alt: true, + ElseIfTkn: $2, + OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, + Cond: $3.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, + ColonTkn: $4, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($5), + }, + Stmts: $5, + }, + }) } ; @@ -1993,13 +1998,13 @@ else_single: } | T_ELSE statement { - $$ = &ast.StmtElse{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtElse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + ElseTkn: $1, + Stmt: $2, + } } ; @@ -2011,22 +2016,20 @@ new_else_single: } | T_ELSE ':' inner_statement_list { - stmts := &ast.StmtStmtList{ + $$ = &ast.StmtElse{ Node: ast.Node{ - Position: position.NewNodeListPosition($3), + Position: position.NewTokenNodeListPosition($1, $3), + }, + Alt: true, + ElseTkn: $1, + ColonTkn: $2, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($3), + }, + Stmts: $3, }, - Stmts: $3, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - $$ = &ast.StmtAltElse{ast.Node{}, stmtsBrackets} - - // save position - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($2, $3) - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $2.SkippedTokens) } ; @@ -4318,10 +4321,13 @@ exit_expr: } | '(' ')' { - $$ = &ast.ParserBrackets{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenBracketTkn: $1, + CloseBracketTkn: $2, + } // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) @@ -5166,10 +5172,14 @@ expr: parenthesis_expr: '(' expr ')' { - $$ = &ast.ParserBrackets{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) @@ -5177,10 +5187,14 @@ parenthesis_expr: } | '(' yield_expr ')' { - $$ = &ast.ParserBrackets{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) @@ -6008,11 +6022,17 @@ internal_functions_in_yacc: } | T_EMPTY '(' variable ')' { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + } $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -6022,11 +6042,17 @@ internal_functions_in_yacc: } | T_EMPTY '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + } $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -6056,11 +6082,17 @@ internal_functions_in_yacc: } | T_EVAL '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + } $$ = &ast.ExprEval{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index ad42cb2..535f8c7 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -2603,7 +2603,7 @@ func TestPhp5(t *testing.T) { }, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 41, @@ -2612,6 +2612,7 @@ func TestPhp5(t *testing.T) { EndPos: 867, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -2645,7 +2646,7 @@ func TestPhp5(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 43, @@ -2654,6 +2655,7 @@ func TestPhp5(t *testing.T) { EndPos: 897, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -2687,7 +2689,7 @@ func TestPhp5(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 44, @@ -2696,6 +2698,7 @@ func TestPhp5(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -2731,7 +2734,7 @@ func TestPhp5(t *testing.T) { }, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 46, @@ -2740,6 +2743,7 @@ func TestPhp5(t *testing.T) { EndPos: 920, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -2772,7 +2776,7 @@ func TestPhp5(t *testing.T) { }, Stmts: []ast.Vertex{}, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 47, @@ -2781,6 +2785,7 @@ func TestPhp5(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ @@ -2794,7 +2799,7 @@ func TestPhp5(t *testing.T) { }, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 49, @@ -2803,6 +2808,7 @@ func TestPhp5(t *testing.T) { EndPos: 969, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -2836,7 +2842,7 @@ func TestPhp5(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 50, @@ -2845,6 +2851,7 @@ func TestPhp5(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -2878,7 +2885,7 @@ func TestPhp5(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 51, @@ -2887,6 +2894,7 @@ func TestPhp5(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -2921,7 +2929,7 @@ func TestPhp5(t *testing.T) { }, }, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 52, @@ -2930,6 +2938,7 @@ func TestPhp5(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index b0e66dd..67ce06a 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -3811,7 +3811,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -3820,6 +3820,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { EndPos: 23, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3882,7 +3883,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -3891,6 +3892,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: 38, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3924,7 +3926,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, @@ -3933,6 +3935,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3997,7 +4000,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -4006,6 +4009,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { EndPos: 31, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -4038,7 +4042,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, Stmts: []ast.Vertex{}, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, @@ -4047,6 +4051,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ @@ -4091,7 +4096,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -4100,6 +4105,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: 61, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -4133,7 +4139,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, @@ -4142,6 +4148,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -4175,7 +4182,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, @@ -4184,6 +4191,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -4218,7 +4226,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, }, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, @@ -4227,6 +4235,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index bfc8970..e1a071b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4862 +// line internal/php7/php7.y:4889 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 +// line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:327 +// line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:334 +// line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:345 +// line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:352 +// line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:364 +// line internal/php7/php7.y:364 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:378 +// line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:387 +// line internal/php7/php7.y:387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:398 +// line internal/php7/php7.y:398 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:411 +// line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 +// line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:420 +// line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:424 +// line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:428 +// line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:432 +// line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:436 +// line internal/php7/php7.y:436 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:448 +// line internal/php7/php7.y:448 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:464 +// line internal/php7/php7.y:464 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:482 +// line internal/php7/php7.y:482 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:494 +// line internal/php7/php7.y:494 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:504 +// line internal/php7/php7.y:504 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:515 +// line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:526 +// line internal/php7/php7.y:526 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:538 +// line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2836,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:552 +// line internal/php7/php7.y:552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:562 +// line internal/php7/php7.y:562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:575 +// line internal/php7/php7.y:575 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:597 +// line internal/php7/php7.y:597 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:621 +// line internal/php7/php7.y:621 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:641 +// line internal/php7/php7.y:641 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:665 +// line internal/php7/php7.y:665 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:669 +// line internal/php7/php7.y:669 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:676 +// line internal/php7/php7.y:676 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:682 +// line internal/php7/php7.y:682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:689 +// line internal/php7/php7.y:689 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:695 +// line internal/php7/php7.y:695 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:702 +// line internal/php7/php7.y:702 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:708 +// line internal/php7/php7.y:708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:715 +// line internal/php7/php7.y:715 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:719 +// line internal/php7/php7.y:719 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:730 +// line internal/php7/php7.y:730 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:744 +// line internal/php7/php7.y:744 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:783 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -3085,13 +3085,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 +// line internal/php7/php7.y:789 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:796 +// line internal/php7/php7.y:796 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:807 +// line internal/php7/php7.y:807 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:814 +// line internal/php7/php7.y:814 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:819 +// line internal/php7/php7.y:819 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:823 +// line internal/php7/php7.y:823 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:827 +// line internal/php7/php7.y:827 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:831 +// line internal/php7/php7.y:831 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:835 +// line internal/php7/php7.y:835 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:839 +// line internal/php7/php7.y:839 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:853 +// line internal/php7/php7.y:853 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,21 +3174,28 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:864 +// line internal/php7/php7.y:864 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:868 +// line internal/php7/php7.y:868 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:872 +// line internal/php7/php7.y:872 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } switch n := yyDollar[5].node.(type) { case *ast.StmtWhile: @@ -3200,7 +3207,6 @@ yydefault: yyVAL.node = yyDollar[5].node // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments @@ -3210,13 +3216,19 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:894 +// line internal/php7/php7.y:900 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[5].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[4].token, yyDollar[6].token), + }, + OpenBracketTkn: yyDollar[4].token, + Child: yyDollar[5].node, + CloseBracketTkn: yyDollar[6].token, + } yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[4].token, yyDollar[6].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments @@ -3228,7 +3240,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:910 +// line internal/php7/php7.y:922 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3255,9 +3267,16 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:935 +// line internal/php7/php7.y:947 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } switch n := yyDollar[5].node.(type) { case *ast.StmtSwitch: @@ -3281,7 +3300,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:959 +// line internal/php7/php7.y:978 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3295,7 +3314,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:971 +// line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3309,7 +3328,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:983 +// line internal/php7/php7.y:1002 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3323,7 +3342,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:995 +// line internal/php7/php7.y:1014 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3337,7 +3356,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1007 +// line internal/php7/php7.y:1026 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3351,7 +3370,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1019 +// line internal/php7/php7.y:1038 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3366,7 +3385,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1032 +// line internal/php7/php7.y:1051 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3378,7 +3397,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1042 +// line internal/php7/php7.y:1061 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3392,7 +3411,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1054 +// line internal/php7/php7.y:1073 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3412,7 +3431,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1072 +// line internal/php7/php7.y:1091 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3436,7 +3455,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1094 +// line internal/php7/php7.y:1113 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3463,7 +3482,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1119 +// line internal/php7/php7.y:1138 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3478,7 +3497,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1132 +// line internal/php7/php7.y:1151 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3491,7 +3510,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1143 +// line internal/php7/php7.y:1162 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3508,7 +3527,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1158 +// line internal/php7/php7.y:1177 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3522,7 +3541,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1170 +// line internal/php7/php7.y:1189 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3539,7 +3558,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1185 +// line internal/php7/php7.y:1204 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3554,13 +3573,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1200 +// line internal/php7/php7.y:1219 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1204 +// line internal/php7/php7.y:1223 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3582,13 +3601,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1226 +// line internal/php7/php7.y:1245 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1230 +// line internal/php7/php7.y:1249 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3602,13 +3621,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1242 +// line internal/php7/php7.y:1261 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1246 +// line internal/php7/php7.y:1265 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3622,13 +3641,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1261 +// line internal/php7/php7.y:1280 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1265 +// line internal/php7/php7.y:1284 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3637,13 +3656,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1275 +// line internal/php7/php7.y:1294 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1282 +// line internal/php7/php7.y:1301 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3673,31 +3692,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1313 +// line internal/php7/php7.y:1332 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1317 +// line internal/php7/php7.y:1336 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1324 +// line internal/php7/php7.y:1343 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1328 +// line internal/php7/php7.y:1347 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1335 +// line internal/php7/php7.y:1354 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3715,7 +3734,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1351 +// line internal/php7/php7.y:1370 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3732,19 +3751,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1369 +// line internal/php7/php7.y:1388 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1373 +// line internal/php7/php7.y:1392 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1380 +// line internal/php7/php7.y:1399 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3756,7 +3775,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1390 +// line internal/php7/php7.y:1409 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3768,7 +3787,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1403 +// line internal/php7/php7.y:1422 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3785,7 +3804,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1421 +// line internal/php7/php7.y:1440 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3802,13 +3821,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1439 +// line internal/php7/php7.y:1458 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1443 +// line internal/php7/php7.y:1462 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3820,13 +3839,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1475 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1460 +// line internal/php7/php7.y:1479 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3838,13 +3857,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1473 +// line internal/php7/php7.y:1492 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1477 +// line internal/php7/php7.y:1496 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3856,13 +3875,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1490 +// line internal/php7/php7.y:1509 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1494 +// line internal/php7/php7.y:1513 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3874,7 +3893,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1504 +// line internal/php7/php7.y:1523 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3888,7 +3907,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1516 +// line internal/php7/php7.y:1535 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3901,7 +3920,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1530 +// line internal/php7/php7.y:1549 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3910,7 +3929,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1537 +// line internal/php7/php7.y:1556 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3931,7 +3950,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1559 +// line internal/php7/php7.y:1578 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3940,7 +3959,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1566 +// line internal/php7/php7.y:1585 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3961,7 +3980,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1588 +// line internal/php7/php7.y:1607 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3970,7 +3989,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1595 +// line internal/php7/php7.y:1614 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3991,7 +4010,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1617 +// line internal/php7/php7.y:1636 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4006,7 +4025,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1630 +// line internal/php7/php7.y:1649 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4022,7 +4041,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1644 +// line internal/php7/php7.y:1663 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4039,7 +4058,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1659 +// line internal/php7/php7.y:1678 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4058,13 +4077,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1679 +// line internal/php7/php7.y:1698 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1683 +// line internal/php7/php7.y:1702 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4079,7 +4098,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1696 +// line internal/php7/php7.y:1715 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4094,19 +4113,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1712 +// line internal/php7/php7.y:1731 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1716 +// line internal/php7/php7.y:1735 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1723 +// line internal/php7/php7.y:1742 { yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} @@ -4115,7 +4134,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1730 +// line internal/php7/php7.y:1749 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -4136,181 +4155,161 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1752 +// line internal/php7/php7.y:1771 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} - yyVAL.node = &ast.StmtIf{ast.Node{}, exprBrackets, yyDollar[5].node, nil, nil} - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtIf{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), + }, + IfTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Cond: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, + Stmt: yyDollar[5].node, + } } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1766 +// line internal/php7/php7.y:1784 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} - _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, yyDollar[6].node} - yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, _elseIf) + yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), + }, + ElseIfTkn: yyDollar[2].token, + OpenParenthesisTkn: yyDollar[3].token, + Cond: yyDollar[4].node, + CloseParenthesisTkn: yyDollar[5].token, + Stmt: yyDollar[6].node, + }) + + yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) - _elseIf.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.SkippedTokens) } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1787 +// line internal/php7/php7.y:1804 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1791 +// line internal/php7/php7.y:1808 { - _else := &ast.StmtElse{ast.Node{}, yyDollar[3].node} - yyDollar[1].node.(*ast.StmtIf).Else = _else + yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), + }, + ElseTkn: yyDollar[2].token, + Stmt: yyDollar[3].node, + } + + yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yyVAL.node = yyDollar[1].node - - // save position - _else.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node) - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.SkippedTokens) } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1808 +// line internal/php7/php7.y:1825 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} - stmts := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtIf{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[6].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), + }, + Alt: true, + IfTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Cond: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, + ColonTkn: yyDollar[5].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[6].list), + }, + Stmts: yyDollar[6].list, }, - Stmts: yyDollar[6].list, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - yyVAL.node = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[5].token, yyDollar[6].list) - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[5].token.SkippedTokens) } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1831 +// line internal/php7/php7.y:1845 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[4].node} - stmts := &ast.StmtStmtList{ + yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[7].list), + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), }, - Stmts: yyDollar[7].list, - } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} - yyDollar[1].node.(*ast.StmtAltIf).ElseIf = append(yyDollar[1].node.(*ast.StmtAltIf).ElseIf, _elseIf) + Alt: true, + ElseIfTkn: yyDollar[2].token, + OpenParenthesisTkn: yyDollar[3].token, + Cond: yyDollar[4].node, + CloseParenthesisTkn: yyDollar[5].token, + ColonTkn: yyDollar[6].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[7].list), + }, + Stmts: yyDollar[7].list, + }, + }) yyVAL.node = yyDollar[1].node - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[6].token, yyDollar[7].list) - _elseIf.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[6].token.SkippedTokens) } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1860 +// line internal/php7/php7.y:1870 { + yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token + yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token + yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + yyVAL.node = yyDollar[1].node - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - altif := yyVAL.node.(*ast.StmtAltIf) - if len(altif.ElseIf) > 0 { - yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append(yyDollar[2].token.SkippedTokens, yyDollar[3].token.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append(yyDollar[2].token.SkippedTokens, yyDollar[3].token.SkippedTokens...)) - } - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1876 +// line internal/php7/php7.y:1878 { - stmts := &ast.StmtStmtList{ + yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[4].list), + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), + }, + Alt: true, + ElseTkn: yyDollar[2].token, + ColonTkn: yyDollar[3].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[4].list), + }, + Stmts: yyDollar[4].list, }, - Stmts: yyDollar[4].list, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} - yyDollar[1].node.(*ast.StmtAltIf).Else = _else + yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[5].token + yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[6].token + yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) yyVAL.node = yyDollar[1].node - - // save position - stmtsBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[5].token) - _else.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) - - // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append(yyDollar[5].token.SkippedTokens, yyDollar[6].token.SkippedTokens...)) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.SkippedTokens) } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1904 +// line internal/php7/php7.y:1903 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1908 +// line internal/php7/php7.y:1907 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1915 +// line internal/php7/php7.y:1914 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1919 +// line internal/php7/php7.y:1918 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4319,7 +4318,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1929 +// line internal/php7/php7.y:1928 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4355,7 +4354,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1963 +// line internal/php7/php7.y:1962 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4392,25 +4391,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2001 +// line internal/php7/php7.y:2000 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2005 +// line internal/php7/php7.y:2004 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2012 +// line internal/php7/php7.y:2011 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2016 +// line internal/php7/php7.y:2015 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4422,7 +4421,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2029 +// line internal/php7/php7.y:2028 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4434,7 +4433,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2039 +// line internal/php7/php7.y:2038 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4446,19 +4445,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2049 +// line internal/php7/php7.y:2048 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2056 +// line internal/php7/php7.y:2055 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2060 +// line internal/php7/php7.y:2059 { yyVAL.node = yyDollar[2].node @@ -4467,7 +4466,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2070 +// line internal/php7/php7.y:2069 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4480,7 +4479,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2081 +// line internal/php7/php7.y:2080 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4497,13 +4496,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2099 +// line internal/php7/php7.y:2098 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2103 +// line internal/php7/php7.y:2102 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4512,7 +4511,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2113 +// line internal/php7/php7.y:2112 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4524,7 +4523,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2123 +// line internal/php7/php7.y:2122 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4536,7 +4535,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2136 +// line internal/php7/php7.y:2135 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4545,19 +4544,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2143 +// line internal/php7/php7.y:2142 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2150 +// line internal/php7/php7.y:2149 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2157 +// line internal/php7/php7.y:2156 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4566,13 +4565,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2164 +// line internal/php7/php7.y:2163 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2171 +// line internal/php7/php7.y:2170 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4588,7 +4587,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2185 +// line internal/php7/php7.y:2184 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4605,19 +4604,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2203 +// line internal/php7/php7.y:2202 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2207 +// line internal/php7/php7.y:2206 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2214 +// line internal/php7/php7.y:2213 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4631,7 +4630,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2226 +// line internal/php7/php7.y:2225 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4645,7 +4644,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2238 +// line internal/php7/php7.y:2237 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4657,7 +4656,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2248 +// line internal/php7/php7.y:2247 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4688,13 +4687,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2280 +// line internal/php7/php7.y:2279 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2284 +// line internal/php7/php7.y:2283 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4708,7 +4707,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2296 +// line internal/php7/php7.y:2295 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4720,7 +4719,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2306 +// line internal/php7/php7.y:2305 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4732,7 +4731,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2316 +// line internal/php7/php7.y:2315 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4744,19 +4743,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2329 +// line internal/php7/php7.y:2328 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2333 +// line internal/php7/php7.y:2332 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2340 +// line internal/php7/php7.y:2339 { yyVAL.node = yyDollar[1].node @@ -4766,7 +4765,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2348 +// line internal/php7/php7.y:2347 { yyVAL.node = yyDollar[1].node @@ -4776,7 +4775,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2359 +// line internal/php7/php7.y:2358 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4789,7 +4788,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2373 +// line internal/php7/php7.y:2372 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4805,7 +4804,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2387 +// line internal/php7/php7.y:2386 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4821,7 +4820,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2401 +// line internal/php7/php7.y:2400 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4837,7 +4836,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2415 +// line internal/php7/php7.y:2414 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4850,7 +4849,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2429 +// line internal/php7/php7.y:2428 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4864,13 +4863,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2440 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2448 +// line internal/php7/php7.y:2447 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4886,7 +4885,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2465 +// line internal/php7/php7.y:2464 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4899,7 +4898,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2476 +// line internal/php7/php7.y:2475 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4912,13 +4911,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2490 +// line internal/php7/php7.y:2489 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2494 +// line internal/php7/php7.y:2493 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4931,31 +4930,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2508 +// line internal/php7/php7.y:2507 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2512 +// line internal/php7/php7.y:2511 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2519 +// line internal/php7/php7.y:2518 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2523 +// line internal/php7/php7.y:2522 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2530 +// line internal/php7/php7.y:2529 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4967,7 +4966,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2540 +// line internal/php7/php7.y:2539 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4979,7 +4978,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2550 +// line internal/php7/php7.y:2549 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4991,7 +4990,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2560 +// line internal/php7/php7.y:2559 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5003,7 +5002,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2570 +// line internal/php7/php7.y:2569 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5015,7 +5014,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2580 +// line internal/php7/php7.y:2579 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5027,7 +5026,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2593 +// line internal/php7/php7.y:2592 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5036,13 +5035,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2600 +// line internal/php7/php7.y:2599 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2607 +// line internal/php7/php7.y:2606 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5058,7 +5057,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2621 +// line internal/php7/php7.y:2620 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5075,7 +5074,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2639 +// line internal/php7/php7.y:2638 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5083,13 +5082,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2645 +// line internal/php7/php7.y:2644 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2652 +// line internal/php7/php7.y:2651 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5109,7 +5108,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2673 +// line internal/php7/php7.y:2672 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5129,7 +5128,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2694 +// line internal/php7/php7.y:2693 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5138,31 +5137,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2701 +// line internal/php7/php7.y:2700 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2708 +// line internal/php7/php7.y:2707 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2715 +// line internal/php7/php7.y:2714 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2719 +// line internal/php7/php7.y:2718 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2726 +// line internal/php7/php7.y:2725 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5171,13 +5170,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2733 +// line internal/php7/php7.y:2732 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2740 +// line internal/php7/php7.y:2739 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5195,7 +5194,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2759 +// line internal/php7/php7.y:2758 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5210,7 +5209,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2772 +// line internal/php7/php7.y:2771 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5222,7 +5221,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2785 +// line internal/php7/php7.y:2784 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5239,7 +5238,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2800 +// line internal/php7/php7.y:2799 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5255,7 +5254,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2814 +// line internal/php7/php7.y:2813 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5268,7 +5267,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2825 +// line internal/php7/php7.y:2824 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5282,7 +5281,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2837 +// line internal/php7/php7.y:2836 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5294,7 +5293,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2847 +// line internal/php7/php7.y:2846 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5307,7 +5306,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2858 +// line internal/php7/php7.y:2857 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5320,7 +5319,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2869 +// line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5333,7 +5332,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2880 +// line internal/php7/php7.y:2879 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5346,7 +5345,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2891 +// line internal/php7/php7.y:2890 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5359,7 +5358,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2902 +// line internal/php7/php7.y:2901 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5372,7 +5371,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2913 +// line internal/php7/php7.y:2912 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5385,7 +5384,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2924 +// line internal/php7/php7.y:2923 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5398,7 +5397,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2935 +// line internal/php7/php7.y:2934 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5411,7 +5410,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2946 +// line internal/php7/php7.y:2945 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5424,7 +5423,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2957 +// line internal/php7/php7.y:2956 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5437,7 +5436,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2968 +// line internal/php7/php7.y:2967 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5450,7 +5449,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2979 +// line internal/php7/php7.y:2978 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5463,7 +5462,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2990 +// line internal/php7/php7.y:2989 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5476,7 +5475,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3001 +// line internal/php7/php7.y:3000 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5488,7 +5487,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3011 +// line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5501,7 +5500,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3022 +// line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5513,7 +5512,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3032 +// line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5526,7 +5525,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3043 +// line internal/php7/php7.y:3042 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5539,7 +5538,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3054 +// line internal/php7/php7.y:3053 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5552,7 +5551,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3065 +// line internal/php7/php7.y:3064 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5565,7 +5564,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3076 +// line internal/php7/php7.y:3075 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5578,7 +5577,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3087 +// line internal/php7/php7.y:3086 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5591,7 +5590,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3098 +// line internal/php7/php7.y:3097 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5604,7 +5603,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3109 +// line internal/php7/php7.y:3108 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5617,7 +5616,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3120 +// line internal/php7/php7.y:3119 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5630,7 +5629,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3131 +// line internal/php7/php7.y:3130 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5643,7 +5642,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3142 +// line internal/php7/php7.y:3141 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5656,7 +5655,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3153 +// line internal/php7/php7.y:3152 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5669,7 +5668,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3164 +// line internal/php7/php7.y:3163 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5682,7 +5681,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3175 +// line internal/php7/php7.y:3174 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5695,7 +5694,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3186 +// line internal/php7/php7.y:3185 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5708,7 +5707,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3197 +// line internal/php7/php7.y:3196 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5721,7 +5720,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3208 +// line internal/php7/php7.y:3207 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5733,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3219 +// line internal/php7/php7.y:3218 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5746,7 +5745,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3229 +// line internal/php7/php7.y:3228 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5758,7 +5757,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3239 +// line internal/php7/php7.y:3238 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5770,7 +5769,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3249 +// line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5782,7 +5781,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3259 +// line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5795,7 +5794,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3270 +// line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,7 +5807,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3281 +// line internal/php7/php7.y:3280 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5820,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3292 +// line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5834,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3304 +// line internal/php7/php7.y:3303 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5847,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3315 +// line internal/php7/php7.y:3314 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5861,7 +5860,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3326 +// line internal/php7/php7.y:3325 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5874,7 +5873,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3337 +// line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5887,7 +5886,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3348 +// line internal/php7/php7.y:3347 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5900,7 +5899,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3359 +// line internal/php7/php7.y:3358 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5913,12 +5912,16 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3370 +// line internal/php7/php7.y:3369 { - yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) @@ -5926,13 +5929,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3381 +// line internal/php7/php7.y:3384 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3385 +// line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5946,7 +5949,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3397 +// line internal/php7/php7.y:3400 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5960,7 +5963,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3409 +// line internal/php7/php7.y:3412 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5973,13 +5976,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3420 +// line internal/php7/php7.y:3423 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3424 +// line internal/php7/php7.y:3427 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5992,7 +5995,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3435 +// line internal/php7/php7.y:3438 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6005,7 +6008,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3446 +// line internal/php7/php7.y:3449 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6018,7 +6021,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3457 +// line internal/php7/php7.y:3460 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6031,7 +6034,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3468 +// line internal/php7/php7.y:3471 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6044,7 +6047,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3479 +// line internal/php7/php7.y:3482 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6057,7 +6060,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3490 +// line internal/php7/php7.y:3493 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6070,7 +6073,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3501 +// line internal/php7/php7.y:3504 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6090,7 +6093,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3519 +// line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6102,13 +6105,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3529 +// line internal/php7/php7.y:3532 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3533 +// line internal/php7/php7.y:3536 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6120,7 +6123,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3543 +// line internal/php7/php7.y:3546 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6132,7 +6135,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3553 +// line internal/php7/php7.y:3556 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6144,7 +6147,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3563 +// line internal/php7/php7.y:3566 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6156,7 +6159,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3573 +// line internal/php7/php7.y:3576 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6169,7 +6172,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3584 +// line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6181,13 +6184,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3594 +// line internal/php7/php7.y:3597 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3598 +// line internal/php7/php7.y:3601 { yyVAL.node = yyDollar[2].node @@ -6208,7 +6211,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3619 +// line internal/php7/php7.y:3622 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6239,7 +6242,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3646 +// line internal/php7/php7.y:3649 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6265,25 +6268,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3676 +// line internal/php7/php7.y:3679 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3680 +// line internal/php7/php7.y:3683 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3687 +// line internal/php7/php7.y:3690 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3691 +// line internal/php7/php7.y:3694 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6297,7 +6300,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3706 +// line internal/php7/php7.y:3709 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6306,13 +6309,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3713 +// line internal/php7/php7.y:3716 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3720 +// line internal/php7/php7.y:3723 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6326,7 +6329,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3732 +// line internal/php7/php7.y:3735 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6343,7 +6346,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3750 +// line internal/php7/php7.y:3753 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6355,7 +6358,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3760 +// line internal/php7/php7.y:3763 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6368,7 +6371,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3771 +// line internal/php7/php7.y:3774 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6381,7 +6384,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3782 +// line internal/php7/php7.y:3785 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6393,7 +6396,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3795 +// line internal/php7/php7.y:3798 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6405,36 +6408,40 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3805 +// line internal/php7/php7.y:3808 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3812 +// line internal/php7/php7.y:3815 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3816 +// line internal/php7/php7.y:3819 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3823 +// line internal/php7/php7.y:3826 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3827 +// line internal/php7/php7.y:3830 { - yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) @@ -6442,13 +6449,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3841 +// line internal/php7/php7.y:3848 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3845 +// line internal/php7/php7.y:3852 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6458,25 +6465,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3853 +// line internal/php7/php7.y:3860 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3860 +// line internal/php7/php7.y:3867 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3864 +// line internal/php7/php7.y:3871 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3871 +// line internal/php7/php7.y:3878 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6490,7 +6497,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3883 +// line internal/php7/php7.y:3890 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6503,7 +6510,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3894 +// line internal/php7/php7.y:3901 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6515,7 +6522,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3907 +// line internal/php7/php7.y:3914 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6527,7 +6534,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3917 +// line internal/php7/php7.y:3924 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6539,7 +6546,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3927 +// line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6551,7 +6558,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3937 +// line internal/php7/php7.y:3944 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6563,7 +6570,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3947 +// line internal/php7/php7.y:3954 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6575,7 +6582,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3957 +// line internal/php7/php7.y:3964 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6587,7 +6594,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3967 +// line internal/php7/php7.y:3974 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6599,7 +6606,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3977 +// line internal/php7/php7.y:3984 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6611,7 +6618,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3987 +// line internal/php7/php7.y:3994 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6623,7 +6630,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3997 +// line internal/php7/php7.y:4004 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6635,7 +6642,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4007 +// line internal/php7/php7.y:4014 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6649,7 +6656,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4019 +// line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6661,7 +6668,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4029 +// line internal/php7/php7.y:4036 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6673,7 +6680,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4039 +// line internal/php7/php7.y:4046 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6685,19 +6692,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4049 +// line internal/php7/php7.y:4056 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4053 +// line internal/php7/php7.y:4060 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4060 +// line internal/php7/php7.y:4067 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6709,7 +6716,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4070 +// line internal/php7/php7.y:4077 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6725,7 +6732,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4084 +// line internal/php7/php7.y:4091 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6741,48 +6748,52 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4101 +// line internal/php7/php7.y:4108 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4105 +// line internal/php7/php7.y:4112 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4112 +// line internal/php7/php7.y:4119 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4116 +// line internal/php7/php7.y:4123 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4123 +// line internal/php7/php7.y:4130 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4130 +// line internal/php7/php7.y:4137 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4134 +// line internal/php7/php7.y:4141 { - yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) @@ -6790,24 +6801,28 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4145 +// line internal/php7/php7.y:4156 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4152 +// line internal/php7/php7.y:4163 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4156 +// line internal/php7/php7.y:4167 { - yyVAL.node = &ast.ParserBrackets{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } // save comments yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) @@ -6815,19 +6830,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4167 +// line internal/php7/php7.y:4182 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4174 +// line internal/php7/php7.y:4189 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4178 +// line internal/php7/php7.y:4193 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6840,7 +6855,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4189 +// line internal/php7/php7.y:4204 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6853,7 +6868,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4200 +// line internal/php7/php7.y:4215 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6866,7 +6881,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4211 +// line internal/php7/php7.y:4226 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6879,25 +6894,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4222 +// line internal/php7/php7.y:4237 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4229 +// line internal/php7/php7.y:4244 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4233 +// line internal/php7/php7.y:4248 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4237 +// line internal/php7/php7.y:4252 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6910,7 +6925,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4251 +// line internal/php7/php7.y:4266 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6924,7 +6939,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4263 +// line internal/php7/php7.y:4278 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6938,7 +6953,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4275 +// line internal/php7/php7.y:4290 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6950,7 +6965,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4288 +// line internal/php7/php7.y:4303 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6963,7 +6978,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4299 +// line internal/php7/php7.y:4314 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6976,13 +6991,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4313 +// line internal/php7/php7.y:4328 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4317 +// line internal/php7/php7.y:4332 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6995,7 +7010,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4328 +// line internal/php7/php7.y:4343 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7008,7 +7023,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4339 +// line internal/php7/php7.y:4354 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7021,7 +7036,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4350 +// line internal/php7/php7.y:4365 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,7 +7049,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4361 +// line internal/php7/php7.y:4376 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7047,7 +7062,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4375 +// line internal/php7/php7.y:4390 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7059,7 +7074,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4385 +// line internal/php7/php7.y:4400 { yyVAL.node = yyDollar[2].node @@ -7069,13 +7084,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4393 +// line internal/php7/php7.y:4408 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4400 +// line internal/php7/php7.y:4415 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7087,7 +7102,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4410 +// line internal/php7/php7.y:4425 { yyVAL.node = yyDollar[2].node @@ -7097,31 +7112,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4418 +// line internal/php7/php7.y:4433 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4425 +// line internal/php7/php7.y:4440 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4432 +// line internal/php7/php7.y:4447 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4436 +// line internal/php7/php7.y:4451 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4443 +// line internal/php7/php7.y:4458 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7134,7 +7149,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4454 +// line internal/php7/php7.y:4469 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7144,7 +7159,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4465 +// line internal/php7/php7.y:4480 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7157,7 +7172,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4476 +// line internal/php7/php7.y:4491 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7169,7 +7184,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4486 +// line internal/php7/php7.y:4501 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7185,7 +7200,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4500 +// line internal/php7/php7.y:4515 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7199,7 +7214,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4512 +// line internal/php7/php7.y:4527 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7211,7 +7226,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4522 +// line internal/php7/php7.y:4537 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7230,7 +7245,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4539 +// line internal/php7/php7.y:4554 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7247,13 +7262,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4557 +// line internal/php7/php7.y:4572 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4561 +// line internal/php7/php7.y:4576 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7266,13 +7281,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4572 +// line internal/php7/php7.y:4587 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4576 +// line internal/php7/php7.y:4591 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7285,7 +7300,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4590 +// line internal/php7/php7.y:4605 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7299,7 +7314,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4602 +// line internal/php7/php7.y:4617 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7316,7 +7331,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4617 +// line internal/php7/php7.y:4632 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7335,7 +7350,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4634 +// line internal/php7/php7.y:4649 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7350,7 +7365,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4647 +// line internal/php7/php7.y:4662 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7367,7 +7382,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4662 +// line internal/php7/php7.y:4677 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7386,7 +7401,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4679 +// line internal/php7/php7.y:4694 { yyVAL.node = yyDollar[2].node @@ -7396,7 +7411,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4690 +// line internal/php7/php7.y:4705 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7408,7 +7423,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4700 +// line internal/php7/php7.y:4715 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7425,7 +7440,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4715 +// line internal/php7/php7.y:4730 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7451,7 +7466,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4739 +// line internal/php7/php7.y:4754 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7465,7 +7480,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4754 +// line internal/php7/php7.y:4769 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7483,13 +7498,19 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4770 +// line internal/php7/php7.y:4785 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -7499,7 +7520,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4784 +// line internal/php7/php7.y:4805 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7511,7 +7532,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4794 +// line internal/php7/php7.y:4815 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7523,13 +7544,19 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4804 +// line internal/php7/php7.y:4825 { - exprBrackets := &ast.ParserBrackets{ast.Node{}, yyDollar[3].node} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) // save comments @@ -7539,7 +7566,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4818 +// line internal/php7/php7.y:4845 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7551,7 +7578,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4828 +// line internal/php7/php7.y:4855 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7563,13 +7590,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4841 +// line internal/php7/php7.y:4868 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4845 +// line internal/php7/php7.y:4872 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7578,7 +7605,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4855 +// line internal/php7/php7.y:4882 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index a1ca1c7..03fbb1e 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -870,7 +870,14 @@ statement: } | T_WHILE '(' expr ')' while_statement { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + } switch n := $5.(type) { case *ast.StmtWhile : @@ -882,7 +889,6 @@ statement: $$ = $5 // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments @@ -892,11 +898,17 @@ statement: } | T_DO statement T_WHILE '(' expr ')' ';' { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $5} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($4, $6), + }, + OpenBracketTkn: $4, + Child: $5, + CloseBracketTkn: $6, + } $$ = &ast.StmtDo{ast.Node{}, $2, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($4, $6) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments @@ -933,7 +945,14 @@ statement: } | T_SWITCH '(' expr ')' switch_case_list { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + } switch n := $5.(type) { case *ast.StmtSwitch: @@ -1750,35 +1769,33 @@ while_statement: if_stmt_without_else: T_IF '(' expr ')' statement { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} - $$ = &ast.StmtIf{ast.Node{}, exprBrackets, $5, nil, nil} - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) + $$ = &ast.StmtIf{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $5), + }, + IfTkn: $1, + OpenParenthesisTkn: $2, + Cond: $3, + CloseParenthesisTkn: $4, + Stmt: $5, + } } | if_stmt_without_else T_ELSEIF '(' expr ')' statement { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $4} - _elseIf := &ast.StmtElseIf{ast.Node{}, exprBrackets, $6} - $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, _elseIf) + $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($2, $6), + }, + ElseIfTkn: $2, + OpenParenthesisTkn: $3, + Cond: $4, + CloseParenthesisTkn: $5, + Stmt: $6, + }) + + $1.(*ast.StmtIf).Node.Position = position.NewNodesPosition($1, $6) $$ = $1 - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($3, $5) - _elseIf.GetNode().Position = position.NewTokenNodePosition($2, $6) - $$.GetNode().Position = position.NewNodesPosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.SkippedTokens) } ; @@ -1789,113 +1806,95 @@ if_stmt: } | if_stmt_without_else T_ELSE statement { - _else := &ast.StmtElse{ast.Node{}, $3} - $1.(*ast.StmtIf).Else = _else + $1.(*ast.StmtIf).Else = &ast.StmtElse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($2, $3), + }, + ElseTkn: $2, + Stmt: $3, + } + + $1.(*ast.StmtIf).Node.Position = position.NewNodesPosition($1, $3) $$ = $1 - - // save position - _else.GetNode().Position = position.NewTokenNodePosition($2, $3) - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.SkippedTokens) } ; alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} - stmts := &ast.StmtStmtList{ + $$ = &ast.StmtIf{ Node: ast.Node{ - Position: position.NewNodeListPosition($6), + Position: position.NewTokenNodeListPosition($1, $6), + }, + Alt: true, + IfTkn: $1, + OpenParenthesisTkn: $2, + Cond: $3, + CloseParenthesisTkn: $4, + ColonTkn: $5, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($6), + }, + Stmts: $6, }, - Stmts: $6, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - $$ = &ast.StmtAltIf{ast.Node{}, exprBrackets, stmtsBrackets, nil, nil} - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($5, $6) - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $5.SkippedTokens) } | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $4} - stmts := &ast.StmtStmtList{ + $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ - Position: position.NewNodeListPosition($7), + Position: position.NewTokenNodeListPosition($2, $7), }, - Stmts: $7, - } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _elseIf := &ast.StmtAltElseIf{ast.Node{}, exprBrackets, stmtsBrackets} - $1.(*ast.StmtAltIf).ElseIf = append($1.(*ast.StmtAltIf).ElseIf, _elseIf) + Alt: true, + ElseIfTkn: $2, + OpenParenthesisTkn: $3, + Cond: $4, + CloseParenthesisTkn: $5, + ColonTkn: $6, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($7), + }, + Stmts: $7, + }, + }) $$ = $1 - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($3, $5) - stmtsBrackets.GetNode().Position = position.NewTokenNodeListPosition($6, $7) - _elseIf.GetNode().Position = position.NewTokenNodeListPosition($2, $7) - - // save comments - yylex.(*Parser).setFreeFloating(_elseIf, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $5.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $6.SkippedTokens) } ; alt_if_stmt: alt_if_stmt_without_else T_ENDIF ';' { + $1.(*ast.StmtIf).EndIfTkn = $2 + $1.(*ast.StmtIf).SemiColonTkn = $3 + $1.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition($1, $3) + $$ = $1 - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - altif := $$.(*ast.StmtAltIf) - if len(altif.ElseIf) > 0 { - yylex.(*Parser).setFreeFloating(altif.ElseIf[len(altif.ElseIf)-1], token.End, append($2.SkippedTokens, $3.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloating(altif.Stmt, token.End, append($2.SkippedTokens, $3.SkippedTokens...)) - } - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { - stmts := &ast.StmtStmtList{ + $1.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ - Position: position.NewNodeListPosition($4), + Position: position.NewTokenNodeListPosition($2, $4), + }, + Alt: true, + ElseTkn: $2, + ColonTkn: $3, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($4), + }, + Stmts: $4, }, - Stmts: $4, } - stmtsBrackets := &ast.ParserBrackets{ast.Node{}, stmts} - _else := &ast.StmtAltElse{ast.Node{}, stmtsBrackets} - $1.(*ast.StmtAltIf).Else = _else + $1.(*ast.StmtIf).EndIfTkn = $5 + $1.(*ast.StmtIf).SemiColonTkn = $6 + $1.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition($1, $6) $$ = $1 - - // save position - stmtsBrackets.GetNode().Position = position.NewTokensPosition($3, $5) - _else.GetNode().Position = position.NewTokenNodeListPosition($2, $4) - $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating(_else, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(stmtsBrackets, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(stmtsBrackets, token.End, append($5.SkippedTokens, $6.SkippedTokens...)) - yylex.(*Parser).setToken($$, token.SemiColon, $6.SkippedTokens) } ; @@ -3368,10 +3367,14 @@ expr_without_variable: } | '(' expr ')' { - $$ = &ast.ParserBrackets{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) @@ -3825,10 +3828,14 @@ exit_expr: } | '(' optional_expr ')' { - $$ = &ast.ParserBrackets{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) @@ -4132,10 +4139,14 @@ dereferencable: } | '(' expr ')' { - $$ = &ast.ParserBrackets{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) @@ -4154,10 +4165,14 @@ callable_expr: } | '(' expr ')' { - $$ = &ast.ParserBrackets{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } // save comments yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) @@ -4768,11 +4783,17 @@ internal_functions_in_yacc: } | T_EMPTY '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + } $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments @@ -4802,11 +4823,17 @@ internal_functions_in_yacc: } | T_EVAL '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ast.Node{}, $3} + exprBrackets := &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + } $$ = &ast.ExprEval{ast.Node{}, exprBrackets} // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) // save comments diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 8f474fa..a12803b 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -3375,7 +3375,7 @@ func TestPhp7(t *testing.T) { }, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 53, @@ -3384,6 +3384,7 @@ func TestPhp7(t *testing.T) { EndPos: 1111, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3417,7 +3418,7 @@ func TestPhp7(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 55, @@ -3426,6 +3427,7 @@ func TestPhp7(t *testing.T) { EndPos: 1141, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3459,7 +3461,7 @@ func TestPhp7(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 56, @@ -3468,6 +3470,7 @@ func TestPhp7(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3503,7 +3506,7 @@ func TestPhp7(t *testing.T) { }, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 58, @@ -3512,6 +3515,7 @@ func TestPhp7(t *testing.T) { EndPos: 1164, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3544,7 +3548,7 @@ func TestPhp7(t *testing.T) { }, Stmts: []ast.Vertex{}, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 59, @@ -3553,6 +3557,7 @@ func TestPhp7(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ @@ -3566,7 +3571,7 @@ func TestPhp7(t *testing.T) { }, }, }, - &ast.StmtAltIf{ + &ast.StmtIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 61, @@ -3575,6 +3580,7 @@ func TestPhp7(t *testing.T) { EndPos: 1213, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3608,7 +3614,7 @@ func TestPhp7(t *testing.T) { Stmts: []ast.Vertex{}, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 62, @@ -3617,6 +3623,7 @@ func TestPhp7(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3650,7 +3657,7 @@ func TestPhp7(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ Node: ast.Node{ Position: &position.Position{ StartLine: 63, @@ -3659,6 +3666,7 @@ func TestPhp7(t *testing.T) { EndPos: -1, }, }, + Alt: true, Cond: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ @@ -3693,7 +3701,7 @@ func TestPhp7(t *testing.T) { }, }, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ Node: ast.Node{ Position: &position.Position{ StartLine: 64, @@ -3702,6 +3710,7 @@ func TestPhp7(t *testing.T) { EndPos: -1, }, }, + Alt: true, Stmt: &ast.StmtStmtList{ Node: ast.Node{ Position: &position.Position{ diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 2da9b8e..4b60110 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -27,11 +27,8 @@ type NodeVisitor interface { ArgumentList(n *ArgumentList) Argument(n *Argument) - StmtAltElse(n *StmtAltElse) - StmtAltElseIf(n *StmtAltElseIf) StmtAltFor(n *StmtAltFor) StmtAltForeach(n *StmtAltForeach) - StmtAltIf(n *StmtAltIf) StmtAltSwitch(n *StmtAltSwitch) StmtAltWhile(n *StmtAltWhile) StmtBreak(n *StmtBreak) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 2013eee..993b65b 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -175,27 +175,6 @@ func (n *ScalarString) Accept(v NodeVisitor) { v.ScalarString(n) } -// StmtAltElse node -type StmtAltElse struct { - Node - Stmt Vertex -} - -func (n *StmtAltElse) Accept(v NodeVisitor) { - v.StmtAltElse(n) -} - -// StmtAltElseIf node -type StmtAltElseIf struct { - Node - Cond Vertex - Stmt Vertex -} - -func (n *StmtAltElseIf) Accept(v NodeVisitor) { - v.StmtAltElseIf(n) -} - // StmtAltFor node type StmtAltFor struct { Node @@ -222,19 +201,6 @@ func (n *StmtAltForeach) Accept(v NodeVisitor) { v.StmtAltForeach(n) } -// StmtAltIf node -type StmtAltIf struct { - Node - Cond Vertex - Stmt Vertex - ElseIf []Vertex - Else Vertex -} - -func (n *StmtAltIf) Accept(v NodeVisitor) { - v.StmtAltIf(n) -} - // StmtAltSwitch node type StmtAltSwitch struct { Node @@ -444,7 +410,10 @@ func (n *StmtEcho) Accept(v NodeVisitor) { // StmtElse node type StmtElse struct { Node - Stmt Vertex + Alt bool + ElseTkn *token.Token + ColonTkn *token.Token + Stmt Vertex } func (n *StmtElse) Accept(v NodeVisitor) { @@ -454,8 +423,13 @@ func (n *StmtElse) Accept(v NodeVisitor) { // StmtElseIf node type StmtElseIf struct { Node - Cond Vertex - Stmt Vertex + Alt bool + ElseIfTkn *token.Token + OpenParenthesisTkn *token.Token + Cond Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + Stmt Vertex } func (n *StmtElseIf) Accept(v NodeVisitor) { @@ -558,10 +532,17 @@ func (n *StmtHaltCompiler) Accept(v NodeVisitor) { // StmtIf node type StmtIf struct { Node - Cond Vertex - Stmt Vertex - ElseIf []Vertex - Else Vertex + Alt bool + IfTkn *token.Token + OpenParenthesisTkn *token.Token + Cond Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + Stmt Vertex + ElseIf []Vertex + Else Vertex + EndIfTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtIf) Accept(v NodeVisitor) { @@ -1918,7 +1899,9 @@ func (n *ParserNsSeparator) Accept(v NodeVisitor) { type ParserBrackets struct { Node - Child Vertex + OpenBracketTkn *token.Token + Child Vertex + CloseBracketTkn *token.Token } func (n *ParserBrackets) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 3d9d5a5..89d6977 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -119,35 +119,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Expr) t.visitor.Leave("Expr", true) } - case *ast.StmtAltElse: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.StmtAltElseIf: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } case *ast.StmtAltFor: if nn == nil { return @@ -208,35 +179,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Stmt) t.visitor.Leave("Stmt", true) } - case *ast.StmtAltIf: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - if nn.ElseIf != nil { - t.visitor.Enter("ElseIf", false) - for _, c := range nn.ElseIf { - t.Traverse(c) - } - t.visitor.Leave("ElseIf", false) - } - if nn.Else != nil { - t.visitor.Enter("Else", true) - t.Traverse(nn.Else) - t.visitor.Leave("Else", true) - } case *ast.StmtAltSwitch: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 61deec6..874e88d 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -252,18 +252,6 @@ func (v *Dump) Argument(n *ast.Argument) { } } -func (v *Dump) StmtAltElse(n *ast.StmtAltElse) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtAltElse{\n") - v.printNode(n.GetNode()) -} - -func (v *Dump) StmtAltElseIf(n *ast.StmtAltElseIf) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtAltElseIf{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtAltFor(n *ast.StmtAltFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltFor{\n") @@ -276,12 +264,6 @@ func (v *Dump) StmtAltForeach(n *ast.StmtAltForeach) { v.printNode(n.GetNode()) } -func (v *Dump) StmtAltIf(n *ast.StmtAltIf) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtAltIf{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtAltSwitch(n *ast.StmtAltSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltSwitch{\n") @@ -404,12 +386,22 @@ func (v *Dump) StmtElse(n *ast.StmtElse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElse{\n") v.printNode(n.GetNode()) + + if n.Alt { + v.printIndent(v.indent) + v.print("Alt: true,\n") + } } func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElseIf{\n") v.printNode(n.GetNode()) + + if n.Alt { + v.printIndent(v.indent) + v.print("Alt: true,\n") + } } func (v *Dump) StmtExpression(n *ast.StmtExpression) { @@ -469,6 +461,11 @@ func (v *Dump) StmtIf(n *ast.StmtIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtIf{\n") v.printNode(n.GetNode()) + + if n.Alt { + v.printIndent(v.indent) + v.print("Alt: true,\n") + } } func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index 4df410a..859778f 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -13,60 +13,6 @@ func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { return true } -func (v *FilterParserNodes) StmtAltIf(n *ast.StmtAltIf) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } - - if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { - n.Stmt = nn.Child - } -} - -func (v *FilterParserNodes) StmtAltElseIf(n *ast.StmtAltElseIf) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } - - if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { - n.Stmt = nn.Child - } -} - -func (v *FilterParserNodes) StmtAltElse(n *ast.StmtAltElse) { - if nn, ok := n.Stmt.(*ast.ParserBrackets); ok { - n.Stmt = nn.Child - } -} - -func (v *FilterParserNodes) StmtIf(n *ast.StmtIf) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtElseIf(n *ast.StmtElseIf) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - func (v *FilterParserNodes) StmtWhile(n *ast.StmtWhile) { for { if nn, ok := n.Cond.(*ast.ParserBrackets); ok { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index b368d8a..a1df886 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -87,3 +87,29 @@ func (v *FilterTokens) StmtStmtList(n *ast.StmtStmtList) { n.OpenCurlyBracket = nil n.CloseCurlyBracket = nil } + +func (v *FilterTokens) StmtIf(n *ast.StmtIf) { + n.IfTkn = nil + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + n.ColonTkn = nil + n.EndIfTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtElseIf(n *ast.StmtElseIf) { + n.ElseIfTkn = nil + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + n.ColonTkn = nil +} + +func (v *FilterTokens) StmtElse(n *ast.StmtElse) { + n.ElseTkn = nil + n.ColonTkn = nil +} + +func (v *FilterTokens) ParserBrackets(n *ast.ParserBrackets) { + n.OpenBracketTkn = nil + n.CloseBracketTkn = nil +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 291d8f9..83c590d 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -54,14 +54,6 @@ func (v *Null) Argument(_ *ast.Argument) { // do nothing } -func (v *Null) StmtAltElse(_ *ast.StmtAltElse) { - // do nothing -} - -func (v *Null) StmtAltElseIf(_ *ast.StmtAltElseIf) { - // do nothing -} - func (v *Null) StmtAltFor(_ *ast.StmtAltFor) { // do nothing } @@ -70,10 +62,6 @@ func (v *Null) StmtAltForeach(_ *ast.StmtAltForeach) { // do nothing } -func (v *Null) StmtAltIf(_ *ast.StmtAltIf) { - // do nothing -} - func (v *Null) StmtAltSwitch(_ *ast.StmtAltSwitch) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index cd5d20f..b089a24 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -297,16 +297,10 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { // stmt - case *ast.StmtAltElseIf: - p.printStmtAltElseIf(n) - case *ast.StmtAltElse: - p.printStmtAltElse(n) case *ast.StmtAltFor: p.printStmtAltFor(n) case *ast.StmtAltForeach: p.printStmtAltForeach(n) - case *ast.StmtAltIf: - p.printStmtAltIf(n) case *ast.StmtAltSwitch: p.printStmtAltSwitch(n) case *ast.StmtAltWhile: @@ -1348,7 +1342,7 @@ func (p *PrettyPrinter) printExprYield(n ast.Vertex) { // smtm func (p *PrettyPrinter) printStmtAltElseIf(n ast.Vertex) { - nn := n.(*ast.StmtAltElseIf) + nn := n.(*ast.StmtElseIf) io.WriteString(p.w, "elseif (") p.Print(nn.Cond) @@ -1361,7 +1355,7 @@ func (p *PrettyPrinter) printStmtAltElseIf(n ast.Vertex) { } func (p *PrettyPrinter) printStmtAltElse(n ast.Vertex) { - nn := n.(*ast.StmtAltElse) + nn := n.(*ast.StmtElse) io.WriteString(p.w, "else :") @@ -1415,7 +1409,7 @@ func (p *PrettyPrinter) printStmtAltForeach(n ast.Vertex) { } func (p *PrettyPrinter) printStmtAltIf(n ast.Vertex) { - nn := n.(*ast.StmtAltIf) + nn := n.(*ast.StmtIf) io.WriteString(p.w, "if (") p.Print(nn.Cond) @@ -1687,6 +1681,11 @@ func (p *PrettyPrinter) printStmtEcho(n ast.Vertex) { func (p *PrettyPrinter) printStmtElseif(n ast.Vertex) { nn := n.(*ast.StmtElseIf) + if nn.Alt { + p.printStmtAltElseIf(nn) + return + } + io.WriteString(p.w, "elseif (") p.Print(nn.Cond) io.WriteString(p.w, ")") @@ -1710,6 +1709,11 @@ func (p *PrettyPrinter) printStmtElseif(n ast.Vertex) { func (p *PrettyPrinter) printStmtElse(n ast.Vertex) { nn := n.(*ast.StmtElse) + if nn.Alt { + p.printStmtAltElse(nn) + return + } + io.WriteString(p.w, "else") switch s := nn.Stmt.(type) { @@ -1854,6 +1858,11 @@ func (p *PrettyPrinter) printStmtHaltCompiler(n ast.Vertex) { func (p *PrettyPrinter) printStmtIf(n ast.Vertex) { nn := n.(*ast.StmtIf) + if nn.Alt { + p.printStmtAltIf(nn) + return + } + io.WriteString(p.w, "if (") p.Print(nn.Cond) io.WriteString(p.w, ")") diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index 343703b..f4a3188 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -2090,7 +2090,8 @@ func TestPrintAltElseIf(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtAltElseIf{ + p.Print(&ast.StmtElseIf{ + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -2112,7 +2113,8 @@ func TestPrintAltElseIfEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtAltElseIf{ + p.Print(&ast.StmtElseIf{ + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{}, }) @@ -2129,7 +2131,8 @@ func TestPrintAltElse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtAltElse{ + p.Print(&ast.StmtElse{ + Alt: true, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, @@ -2150,7 +2153,8 @@ func TestPrintAltElseEmpty(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtAltElse{ + p.Print(&ast.StmtElse{ + Alt: true, Stmt: &ast.StmtStmtList{}, }) @@ -2236,7 +2240,8 @@ func TestPrintAltIf(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtNamespace{ Stmts: []ast.Vertex{ - &ast.StmtAltIf{ + &ast.StmtIf{ + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -2244,7 +2249,8 @@ func TestPrintAltIf(t *testing.T) { }, }, ElseIf: []ast.Vertex{ - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -2252,12 +2258,14 @@ func TestPrintAltIf(t *testing.T) { }, }, }, - &ast.StmtAltElseIf{ + &ast.StmtElseIf{ + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, Stmt: &ast.StmtStmtList{}, }, }, - Else: &ast.StmtAltElse{ + Else: &ast.StmtElse{ + Alt: true, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4d1c2aa..afc80a8 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -359,16 +359,10 @@ func (p *Printer) printNode(n ast.Vertex) { // stmt - case *ast.StmtAltElseIf: - p.printStmtAltElseIf(n) - case *ast.StmtAltElse: - p.printStmtAltElse(n) case *ast.StmtAltFor: p.printStmtAltFor(n) case *ast.StmtAltForeach: p.printStmtAltForeach(n) - case *ast.StmtAltIf: - p.printStmtAltIf(n) case *ast.StmtAltSwitch: p.printStmtAltSwitch(n) case *ast.StmtAltWhile: @@ -1981,68 +1975,6 @@ func (p *Printer) printExprYield(n ast.Vertex) { // smtm -func (p *Printer) printStmtAltElseIf(n ast.Vertex) { - nn := n.(*ast.StmtAltElseIf) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "elseif") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") - } - - p.Print(nn.Cond) - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") - } - - stmtList, _ := nn.Stmt.(*ast.StmtStmtList) - brackets, ok := nn.Stmt.(*ast.ParserBrackets) - if ok { - p.printFreeFloating(brackets, token.Start) - stmtList = brackets.Child.(*ast.StmtStmtList) - } else { - io.WriteString(p.w, ":") - } - - p.printFreeFloating(stmtList, token.Stmts) - p.printNodes(stmtList.Stmts) - p.printFreeFloating(stmtList, token.End) - - if ok { - p.printFreeFloating(brackets, token.End) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtAltElse(n ast.Vertex) { - nn := n.(*ast.StmtAltElse) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "else") - - stmtList, _ := nn.Stmt.(*ast.StmtStmtList) - brackets, ok := nn.Stmt.(*ast.ParserBrackets) - if ok { - p.printFreeFloating(brackets, token.Start) - stmtList = brackets.Child.(*ast.StmtStmtList) - } else { - io.WriteString(p.w, ":") - } - - p.printFreeFloating(stmtList, token.Stmts) - p.printNodes(stmtList.Stmts) - p.printFreeFloating(stmtList, token.End) - - if ok { - p.printFreeFloating(brackets, token.End) - } - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printStmtAltFor(n ast.Vertex) { nn := n.(*ast.StmtAltFor) p.printFreeFloating(nn, token.Start) @@ -2124,59 +2056,6 @@ func (p *Printer) printStmtAltForeach(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtAltIf(n ast.Vertex) { - nn := n.(*ast.StmtAltIf) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "if") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") - } - - p.Print(nn.Cond) - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") - } - - stmtList, _ := nn.Stmt.(*ast.StmtStmtList) - brackets, ok := nn.Stmt.(*ast.ParserBrackets) - if ok { - p.printFreeFloating(brackets, token.Start) - stmtList = brackets.Child.(*ast.StmtStmtList) - } else { - io.WriteString(p.w, ":") - } - - p.printFreeFloating(stmtList, token.Stmts) - p.printNodes(stmtList.Stmts) - p.printFreeFloating(stmtList, token.End) - - if ok { - p.printFreeFloating(brackets, token.End) - } - - for _, elseif := range nn.ElseIf { - p.Print(elseif) - } - - if nn.Else != nil { - p.Print(nn.Else) - } - - if !ok { - io.WriteString(p.w, "endif") - } - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printStmtAltSwitch(n ast.Vertex) { nn := n.(*ast.StmtAltSwitch) p.printFreeFloating(nn, token.Start) @@ -2579,42 +2458,54 @@ func (p *Printer) printStmtEcho(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtElseif(n ast.Vertex) { - nn := n.(*ast.StmtElseIf) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "elseif") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") +func (p *Printer) printStmtElseif(n *ast.StmtElseIf) { + if n.Alt { + p.printStmtAltElseIf(n) + return } - p.Print(nn.Cond) + p.printToken(n.ElseIfTkn, "elseif") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") - } - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, token.End) + p.Print(n.Stmt) } -func (p *Printer) printStmtElse(n ast.Vertex) { - nn := n.(*ast.StmtElse) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtAltElseIf(n *ast.StmtElseIf) { + p.printToken(n.ElseIfTkn, "elseif") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.ColonTkn, ":") - io.WriteString(p.w, "else") + if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { + p.printNodes(stmtList.Stmts) + } else { + p.Print(n.Stmt) + } +} - if _, ok := nn.Stmt.(*ast.StmtStmtList); !ok { - if nn.Stmt.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } +func (p *Printer) printStmtElse(n *ast.StmtElse) { + if n.Alt { + p.printStmtAltElse(n) + return } - p.Print(nn.Stmt) + p.printToken(n.ElseTkn, "else") + p.bufStart = " " + p.Print(n.Stmt) +} - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtAltElse(n *ast.StmtElse) { + p.printToken(n.ElseTkn, "else") + p.printToken(n.ColonTkn, ":") + + if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { + p.printNodes(stmtList.Stmts) + } else { + p.Print(n.Stmt) + } } func (p *Printer) printStmtExpression(n ast.Vertex) { @@ -2789,33 +2680,40 @@ func (p *Printer) printStmtHaltCompiler(n *ast.StmtHaltCompiler) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtIf(n ast.Vertex) { - nn := n.(*ast.StmtIf) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "if") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") +func (p *Printer) printStmtIf(n *ast.StmtIf) { + if n.Alt { + p.printStmtAltIf(n) + return } - p.Print(nn.Cond) + p.printToken(n.IfTkn, "if") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") + p.Print(n.Stmt) + p.printNodes(n.ElseIf) + p.Print(n.Else) +} + +func (p *Printer) printStmtAltIf(n *ast.StmtIf) { + p.printToken(n.IfTkn, "if") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.ColonTkn, ":") + + if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { + p.printNodes(stmtList.Stmts) + } else { + p.Print(n.Stmt) } - p.Print(nn.Stmt) + p.printNodes(n.ElseIf) + p.Print(n.Else) - if nn.ElseIf != nil { - p.printNodes(nn.ElseIf) - } - - if nn.Else != nil { - p.Print(nn.Else) - } - - p.printFreeFloating(nn, token.End) + p.printToken(n.EndIfTkn, "endif") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtInlineHTML(n ast.Vertex) { @@ -2900,7 +2798,7 @@ func (p *Printer) printStmtNamespace(n *ast.StmtNamespace) { } func (p *Printer) printStmtNop(n ast.Vertex) { - p.printFreeFloating(n, token.Start) + p.printFreeFloatingOrDefault(n, token.Start, p.bufStart) p.printFreeFloating(n, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { io.WriteString(p.w, ";") diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index cd835d9..82dd9a2 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -743,7 +743,8 @@ func TestParseAndPrintPhp5Yield(t *testing.T) { // test stmt func TestParseAndPrintPhp5AltIf(t *testing.T) { - src := ` Date: Fri, 4 Sep 2020 10:33:47 +0300 Subject: [PATCH 052/140] [refactoring] update ast structure of "While" node --- internal/php5/parser_test.go | 3 +- internal/php5/php5.go | 1094 +++++++++++------------ internal/php5/php5.y | 52 +- internal/php5/php5_test.go | 3 +- internal/php7/parser_test.go | 3 +- internal/php7/php7.go | 781 ++++++++-------- internal/php7/php7.y | 63 +- internal/php7/php7_test.go | 3 +- pkg/ast/ast.go | 1 - pkg/ast/node.go | 22 +- pkg/ast/traverser/dfs.go | 17 - pkg/ast/visitor/dump.go | 11 +- pkg/ast/visitor/filter_parser_nodes.go | 20 - pkg/ast/visitor/filter_tokens.go | 9 + pkg/ast/visitor/null.go | 4 - pkg/printer/pretty_printer.go | 37 +- pkg/printer/pretty_printer_test.go | 15 +- pkg/printer/printer.go | 73 +- pkg/printer/printer_parsed_php5_test.go | 6 +- pkg/printer/printer_parsed_php7_test.go | 6 +- pkg/printer/printer_test.go | 5 +- 21 files changed, 1066 insertions(+), 1162 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 0a8d776..725f642 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -12762,7 +12762,7 @@ func TestStmtBreak(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltWhile{ + &ast.StmtWhile{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -12771,6 +12771,7 @@ func TestStmtBreak(t *testing.T) { EndPos: 34, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 953db89..d6165d2 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6215 +// line internal/php5/php5.y:6209 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:275 +// line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2324,7 +2324,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:285 +// line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2337,13 +2337,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:296 +// line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:303 +// line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2357,7 +2357,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:315 +// line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2370,32 +2370,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:329 +// line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:346 +// line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2409,7 +2409,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:358 +// line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2427,7 +2427,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:374 +// line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2447,7 +2447,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:392 +// line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2461,7 +2461,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:404 +// line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2474,7 +2474,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:415 +// line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2493,7 +2493,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:432 +// line internal/php5/php5.y:432 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2512,7 +2512,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:449 +// line internal/php5/php5.y:449 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2520,7 +2520,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:458 +// line internal/php5/php5.y:458 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2528,13 +2528,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:464 +// line internal/php5/php5.y:464 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:471 +// line internal/php5/php5.y:471 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2550,7 +2550,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:485 +// line internal/php5/php5.y:485 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2573,7 +2573,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:506 +// line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2590,7 +2590,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:521 +// line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2614,7 +2614,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:546 +// line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2622,13 +2622,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:552 +// line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:559 +// line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:573 +// line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2667,7 +2667,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:594 +// line internal/php5/php5.y:594 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2684,7 +2684,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:609 +// line internal/php5/php5.y:609 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2708,7 +2708,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:634 +// line internal/php5/php5.y:634 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2716,13 +2716,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:640 +// line internal/php5/php5.y:640 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:647 +// line internal/php5/php5.y:647 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:661 +// line internal/php5/php5.y:661 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2761,7 +2761,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:682 +// line internal/php5/php5.y:682 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2778,7 +2778,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:697 +// line internal/php5/php5.y:697 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2802,7 +2802,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:722 +// line internal/php5/php5.y:722 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2827,7 +2827,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:745 +// line internal/php5/php5.y:745 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2855,7 +2855,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:774 +// line internal/php5/php5.y:774 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2868,38 +2868,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:785 +// line internal/php5/php5.y:785 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:793 +// line internal/php5/php5.y:793 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:798 +// line internal/php5/php5.y:798 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:802 +// line internal/php5/php5.y:802 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:806 +// line internal/php5/php5.y:806 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:810 +// line internal/php5/php5.y:810 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2913,13 +2913,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:826 +// line internal/php5/php5.y:826 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:830 +// line internal/php5/php5.y:830 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2934,7 +2934,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:846 +// line internal/php5/php5.y:846 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2947,7 +2947,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:857 +// line internal/php5/php5.y:857 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2971,7 +2971,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:879 +// line internal/php5/php5.y:879 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -2997,26 +2997,19 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:903 +// line internal/php5/php5.y:903 { - switch n := yyDollar[3].node.(type) { - case *ast.StmtWhile: - n.Cond = yyDollar[2].node - case *ast.StmtAltWhile: - n.Cond = yyDollar[2].node - } + yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token + yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn + yyDollar[3].node.(*ast.StmtWhile).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child + yyDollar[3].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn + yyDollar[3].node.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:920 +// line internal/php5/php5.y:913 { yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -3031,7 +3024,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:933 +// line internal/php5/php5.y:926 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3058,7 +3051,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:958 +// line internal/php5/php5.y:951 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3079,7 +3072,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:977 +// line internal/php5/php5.y:970 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3093,7 +3086,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:989 +// line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3107,7 +3100,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1001 +// line internal/php5/php5.y:994 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3121,7 +3114,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1013 +// line internal/php5/php5.y:1006 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3135,7 +3128,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1025 +// line internal/php5/php5.y:1018 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3149,7 +3142,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1037 +// line internal/php5/php5.y:1030 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3163,7 +3156,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1049 +// line internal/php5/php5.y:1042 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3177,7 +3170,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1061 +// line internal/php5/php5.y:1054 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3191,7 +3184,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1073 +// line internal/php5/php5.y:1066 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3205,7 +3198,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1085 +// line internal/php5/php5.y:1078 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3219,7 +3212,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1097 +// line internal/php5/php5.y:1090 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3234,7 +3227,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1110 +// line internal/php5/php5.y:1103 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3246,7 +3239,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1120 +// line internal/php5/php5.y:1113 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3260,7 +3253,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1132 +// line internal/php5/php5.y:1125 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3276,7 +3269,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1146 +// line internal/php5/php5.y:1139 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3317,7 +3310,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1184 +// line internal/php5/php5.y:1177 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3358,7 +3351,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1222 +// line internal/php5/php5.y:1215 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3373,7 +3366,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1235 +// line internal/php5/php5.y:1228 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3386,7 +3379,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1246 +// line internal/php5/php5.y:1239 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3404,7 +3397,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1262 +// line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3418,7 +3411,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1274 +// line internal/php5/php5.y:1267 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3435,13 +3428,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1292 +// line internal/php5/php5.y:1285 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1296 +// line internal/php5/php5.y:1289 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3463,13 +3456,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1319 +// line internal/php5/php5.y:1312 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1323 +// line internal/php5/php5.y:1316 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3483,31 +3476,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1338 +// line internal/php5/php5.y:1331 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1342 +// line internal/php5/php5.y:1335 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1349 +// line internal/php5/php5.y:1342 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1353 +// line internal/php5/php5.y:1346 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1360 +// line internal/php5/php5.y:1353 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3528,13 +3521,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1382 +// line internal/php5/php5.y:1375 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1386 +// line internal/php5/php5.y:1379 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3543,49 +3536,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1396 +// line internal/php5/php5.y:1389 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1403 +// line internal/php5/php5.y:1396 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1410 +// line internal/php5/php5.y:1403 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1417 +// line internal/php5/php5.y:1410 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1421 +// line internal/php5/php5.y:1414 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1428 +// line internal/php5/php5.y:1421 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1432 +// line internal/php5/php5.y:1425 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1439 +// line internal/php5/php5.y:1432 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3609,7 +3602,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1464 +// line internal/php5/php5.y:1457 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3637,7 +3630,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1490 +// line internal/php5/php5.y:1483 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3654,7 +3647,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1509 +// line internal/php5/php5.y:1502 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3666,7 +3659,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1519 +// line internal/php5/php5.y:1512 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3681,7 +3674,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1532 +// line internal/php5/php5.y:1525 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3693,7 +3686,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1542 +// line internal/php5/php5.y:1535 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3708,13 +3701,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1558 +// line internal/php5/php5.y:1551 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1562 +// line internal/php5/php5.y:1555 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3726,19 +3719,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1575 +// line internal/php5/php5.y:1568 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1582 +// line internal/php5/php5.y:1575 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1586 +// line internal/php5/php5.y:1579 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3750,13 +3743,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1599 +// line internal/php5/php5.y:1592 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1603 +// line internal/php5/php5.y:1596 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3768,13 +3761,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1616 +// line internal/php5/php5.y:1609 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1620 +// line internal/php5/php5.y:1613 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3788,13 +3781,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1632 +// line internal/php5/php5.y:1625 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1636 +// line internal/php5/php5.y:1629 { yyVAL.node = yyDollar[2].node @@ -3803,13 +3796,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1646 +// line internal/php5/php5.y:1639 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1650 +// line internal/php5/php5.y:1643 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3821,7 +3814,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1660 +// line internal/php5/php5.y:1653 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3835,7 +3828,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1675 +// line internal/php5/php5.y:1668 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3844,7 +3837,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1682 +// line internal/php5/php5.y:1675 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3865,7 +3858,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1704 +// line internal/php5/php5.y:1697 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3874,7 +3867,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1711 +// line internal/php5/php5.y:1704 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3895,7 +3888,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1734 +// line internal/php5/php5.y:1727 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3904,7 +3897,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1741 +// line internal/php5/php5.y:1734 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3925,7 +3918,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1764 +// line internal/php5/php5.y:1757 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3947,7 +3940,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1784 +// line internal/php5/php5.y:1777 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3968,7 +3961,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1807 +// line internal/php5/php5.y:1800 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3983,7 +3976,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1820 +// line internal/php5/php5.y:1813 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3999,7 +3992,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1834 +// line internal/php5/php5.y:1827 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4016,7 +4009,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1849 +// line internal/php5/php5.y:1842 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4035,13 +4028,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1870 +// line internal/php5/php5.y:1863 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1874 +// line internal/php5/php5.y:1867 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4056,7 +4049,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1887 +// line internal/php5/php5.y:1880 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4071,55 +4064,56 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1904 +// line internal/php5/php5.y:1897 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1908 +// line internal/php5/php5.y:1901 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1916 +// line internal/php5/php5.y:1909 { - yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtWhile{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1923 +// line internal/php5/php5.y:1918 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndWhileTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1947 +// line internal/php5/php5.y:1941 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1951 +// line internal/php5/php5.y:1945 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4134,13 +4128,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1968 +// line internal/php5/php5.y:1962 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1972 +// line internal/php5/php5.y:1966 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4162,13 +4156,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1996 +// line internal/php5/php5.y:1990 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2000 +// line internal/php5/php5.y:1994 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4180,13 +4174,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2014 +// line internal/php5/php5.y:2008 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2018 +// line internal/php5/php5.y:2012 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4205,25 +4199,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2039 +// line internal/php5/php5.y:2033 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2043 +// line internal/php5/php5.y:2037 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2050 +// line internal/php5/php5.y:2044 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2054 +// line internal/php5/php5.y:2048 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4232,7 +4226,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2064 +// line internal/php5/php5.y:2058 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4268,7 +4262,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2098 +// line internal/php5/php5.y:2092 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4305,13 +4299,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2137 +// line internal/php5/php5.y:2131 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2141 +// line internal/php5/php5.y:2135 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4323,7 +4317,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2151 +// line internal/php5/php5.y:2145 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4335,13 +4329,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2161 +// line internal/php5/php5.y:2155 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2169 +// line internal/php5/php5.y:2163 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4354,7 +4348,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2180 +// line internal/php5/php5.y:2174 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4367,7 +4361,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2191 +// line internal/php5/php5.y:2185 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4382,13 +4376,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2208 +// line internal/php5/php5.y:2202 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2212 +// line internal/php5/php5.y:2206 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4397,7 +4391,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2222 +// line internal/php5/php5.y:2216 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4409,7 +4403,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2232 +// line internal/php5/php5.y:2226 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4421,7 +4415,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2242 +// line internal/php5/php5.y:2236 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4433,7 +4427,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2252 +// line internal/php5/php5.y:2246 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4445,7 +4439,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2265 +// line internal/php5/php5.y:2259 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4454,13 +4448,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2272 +// line internal/php5/php5.y:2266 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2280 +// line internal/php5/php5.y:2274 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4474,7 +4468,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2292 +// line internal/php5/php5.y:2286 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4486,7 +4480,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2302 +// line internal/php5/php5.y:2296 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4500,7 +4494,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2318 +// line internal/php5/php5.y:2312 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4518,7 +4512,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2334 +// line internal/php5/php5.y:2328 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4537,7 +4531,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2351 +// line internal/php5/php5.y:2345 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4554,7 +4548,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2366 +// line internal/php5/php5.y:2360 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4572,19 +4566,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2386 +// line internal/php5/php5.y:2380 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2390 +// line internal/php5/php5.y:2384 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2398 +// line internal/php5/php5.y:2392 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4598,7 +4592,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2410 +// line internal/php5/php5.y:2404 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4606,13 +4600,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2416 +// line internal/php5/php5.y:2410 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2420 +// line internal/php5/php5.y:2414 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4643,7 +4637,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2452 +// line internal/php5/php5.y:2446 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4655,13 +4649,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2465 +// line internal/php5/php5.y:2459 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2469 +// line internal/php5/php5.y:2463 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4675,7 +4669,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2481 +// line internal/php5/php5.y:2475 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4687,7 +4681,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2491 +// line internal/php5/php5.y:2485 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4699,31 +4693,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2504 +// line internal/php5/php5.y:2498 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2508 +// line internal/php5/php5.y:2502 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2515 +// line internal/php5/php5.y:2509 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2519 +// line internal/php5/php5.y:2513 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2526 +// line internal/php5/php5.y:2520 { yyVAL.node = yyDollar[1].node @@ -4733,7 +4727,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2534 +// line internal/php5/php5.y:2528 { yyVAL.node = yyDollar[1].node @@ -4743,7 +4737,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2545 +// line internal/php5/php5.y:2539 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4756,13 +4750,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2559 +// line internal/php5/php5.y:2553 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2563 +// line internal/php5/php5.y:2557 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4771,7 +4765,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2573 +// line internal/php5/php5.y:2567 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4785,13 +4779,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2579 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2592 +// line internal/php5/php5.y:2586 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4807,7 +4801,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2609 +// line internal/php5/php5.y:2603 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4823,7 +4817,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2623 +// line internal/php5/php5.y:2617 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4836,19 +4830,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2637 +// line internal/php5/php5.y:2631 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2641 +// line internal/php5/php5.y:2635 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2648 +// line internal/php5/php5.y:2642 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4861,7 +4855,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2653 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4874,13 +4868,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2673 +// line internal/php5/php5.y:2667 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2677 +// line internal/php5/php5.y:2671 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4893,31 +4887,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2691 +// line internal/php5/php5.y:2685 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2695 +// line internal/php5/php5.y:2689 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2702 +// line internal/php5/php5.y:2696 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2706 +// line internal/php5/php5.y:2700 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2713 +// line internal/php5/php5.y:2707 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4929,7 +4923,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2723 +// line internal/php5/php5.y:2717 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4941,7 +4935,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2733 +// line internal/php5/php5.y:2727 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4953,7 +4947,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2743 +// line internal/php5/php5.y:2737 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4965,7 +4959,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2753 +// line internal/php5/php5.y:2747 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4977,7 +4971,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2763 +// line internal/php5/php5.y:2757 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4989,7 +4983,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2776 +// line internal/php5/php5.y:2770 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5007,7 +5001,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2792 +// line internal/php5/php5.y:2786 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5026,7 +5020,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2809 +// line internal/php5/php5.y:2803 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5043,7 +5037,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2824 +// line internal/php5/php5.y:2818 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5061,7 +5055,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2843 +// line internal/php5/php5.y:2837 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5086,7 +5080,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2866 +// line internal/php5/php5.y:2860 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5114,7 +5108,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2895 +// line internal/php5/php5.y:2889 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5123,25 +5117,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2902 +// line internal/php5/php5.y:2896 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2910 +// line internal/php5/php5.y:2904 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2914 +// line internal/php5/php5.y:2908 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2921 +// line internal/php5/php5.y:2915 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5150,25 +5144,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2928 +// line internal/php5/php5.y:2922 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2935 +// line internal/php5/php5.y:2929 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2939 +// line internal/php5/php5.y:2933 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2946 +// line internal/php5/php5.y:2940 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5182,7 +5176,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2958 +// line internal/php5/php5.y:2952 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5196,37 +5190,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2973 +// line internal/php5/php5.y:2967 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2977 +// line internal/php5/php5.y:2971 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2981 +// line internal/php5/php5.y:2975 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2988 +// line internal/php5/php5.y:2982 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2992 +// line internal/php5/php5.y:2986 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2999 +// line internal/php5/php5.y:2993 { if yyDollar[3].node != nil { @@ -5242,7 +5236,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3016 +// line internal/php5/php5.y:3010 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5259,7 +5253,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3031 +// line internal/php5/php5.y:3025 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5272,7 +5266,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3042 +// line internal/php5/php5.y:3036 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5286,7 +5280,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3054 +// line internal/php5/php5.y:3048 { var _new *ast.ExprNew @@ -5313,7 +5307,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3079 +// line internal/php5/php5.y:3073 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5325,7 +5319,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3089 +// line internal/php5/php5.y:3083 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5337,7 +5331,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3099 +// line internal/php5/php5.y:3093 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5350,7 +5344,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3110 +// line internal/php5/php5.y:3104 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5363,7 +5357,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3121 +// line internal/php5/php5.y:3115 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5376,7 +5370,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3132 +// line internal/php5/php5.y:3126 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5389,7 +5383,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3143 +// line internal/php5/php5.y:3137 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5402,7 +5396,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3154 +// line internal/php5/php5.y:3148 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5415,7 +5409,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3165 +// line internal/php5/php5.y:3159 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5428,7 +5422,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3176 +// line internal/php5/php5.y:3170 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5441,7 +5435,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3187 +// line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5454,7 +5448,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3198 +// line internal/php5/php5.y:3192 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5467,7 +5461,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3209 +// line internal/php5/php5.y:3203 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5480,7 +5474,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3220 +// line internal/php5/php5.y:3214 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5493,7 +5487,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3231 +// line internal/php5/php5.y:3225 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5505,7 +5499,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3241 +// line internal/php5/php5.y:3235 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5518,7 +5512,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3252 +// line internal/php5/php5.y:3246 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5530,7 +5524,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3262 +// line internal/php5/php5.y:3256 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5543,7 +5537,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3273 +// line internal/php5/php5.y:3267 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5556,7 +5550,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3284 +// line internal/php5/php5.y:3278 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5569,7 +5563,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3295 +// line internal/php5/php5.y:3289 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5582,7 +5576,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3306 +// line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5595,7 +5589,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3317 +// line internal/php5/php5.y:3311 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5608,7 +5602,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3328 +// line internal/php5/php5.y:3322 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5615,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3339 +// line internal/php5/php5.y:3333 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5628,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3350 +// line internal/php5/php5.y:3344 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5641,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3361 +// line internal/php5/php5.y:3355 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5654,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3372 +// line internal/php5/php5.y:3366 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5667,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3383 +// line internal/php5/php5.y:3377 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5680,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3394 +// line internal/php5/php5.y:3388 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5699,7 +5693,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3405 +// line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5712,7 +5706,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5725,7 +5719,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3427 +// line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5738,7 +5732,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3438 +// line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5751,7 +5745,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3449 +// line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5763,7 +5757,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3459 +// line internal/php5/php5.y:3453 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5775,7 +5769,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3469 +// line internal/php5/php5.y:3463 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5787,7 +5781,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3479 +// line internal/php5/php5.y:3473 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5799,7 +5793,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3489 +// line internal/php5/php5.y:3483 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,7 +5806,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3500 +// line internal/php5/php5.y:3494 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5825,7 +5819,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3511 +// line internal/php5/php5.y:3505 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5838,7 +5832,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3522 +// line internal/php5/php5.y:3516 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5846,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3534 +// line internal/php5/php5.y:3528 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5859,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3545 +// line internal/php5/php5.y:3539 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5872,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3556 +// line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5891,7 +5885,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3567 +// line internal/php5/php5.y:3561 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5904,7 +5898,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3578 +// line internal/php5/php5.y:3572 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5917,19 +5911,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3589 +// line internal/php5/php5.y:3583 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3593 +// line internal/php5/php5.y:3587 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3597 +// line internal/php5/php5.y:3591 { yyVAL.node = yyDollar[2].node @@ -5961,7 +5955,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3627 +// line internal/php5/php5.y:3621 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5975,7 +5969,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3639 +// line internal/php5/php5.y:3633 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5989,13 +5983,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3651 +// line internal/php5/php5.y:3645 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3655 +// line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6008,7 +6002,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3666 +// line internal/php5/php5.y:3660 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6021,7 +6015,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3677 +// line internal/php5/php5.y:3671 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6034,7 +6028,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3688 +// line internal/php5/php5.y:3682 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6047,7 +6041,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3699 +// line internal/php5/php5.y:3693 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6060,7 +6054,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3710 +// line internal/php5/php5.y:3704 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6073,7 +6067,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3721 +// line internal/php5/php5.y:3715 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6086,7 +6080,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3732 +// line internal/php5/php5.y:3726 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6106,7 +6100,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3750 +// line internal/php5/php5.y:3744 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6118,25 +6112,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3760 +// line internal/php5/php5.y:3754 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3764 +// line internal/php5/php5.y:3758 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3768 +// line internal/php5/php5.y:3762 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3772 +// line internal/php5/php5.y:3766 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6148,7 +6142,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3782 +// line internal/php5/php5.y:3776 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6160,7 +6154,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3792 +// line internal/php5/php5.y:3786 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6172,7 +6166,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3802 +// line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6199,7 +6193,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3826 +// line internal/php5/php5.y:3820 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6227,7 +6221,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3854 +// line internal/php5/php5.y:3848 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6239,7 +6233,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3864 +// line internal/php5/php5.y:3858 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6251,7 +6245,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3874 +// line internal/php5/php5.y:3868 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6264,7 +6258,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3885 +// line internal/php5/php5.y:3879 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6277,7 +6271,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3899 +// line internal/php5/php5.y:3893 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6290,7 +6284,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3904 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6303,7 +6297,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3921 +// line internal/php5/php5.y:3915 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6319,7 +6313,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3935 +// line internal/php5/php5.y:3929 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6332,7 +6326,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3949 +// line internal/php5/php5.y:3943 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6346,7 +6340,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3961 +// line internal/php5/php5.y:3955 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6359,19 +6353,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3975 +// line internal/php5/php5.y:3969 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3976 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3986 +// line internal/php5/php5.y:3980 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6385,7 +6379,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4001 +// line internal/php5/php5.y:3995 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6401,7 +6395,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4015 +// line internal/php5/php5.y:4009 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6420,7 +6414,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4032 +// line internal/php5/php5.y:4026 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6435,7 +6429,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4045 +// line internal/php5/php5.y:4039 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6453,7 +6447,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4064 +// line internal/php5/php5.y:4058 { name := &ast.NameName{ Node: ast.Node{ @@ -6468,7 +6462,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4077 +// line internal/php5/php5.y:4071 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6485,7 +6479,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4092 +// line internal/php5/php5.y:4086 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6501,7 +6495,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4106 +// line internal/php5/php5.y:4100 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6514,7 +6508,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4117 +// line internal/php5/php5.y:4111 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6527,7 +6521,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4128 +// line internal/php5/php5.y:4122 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6540,7 +6534,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4139 +// line internal/php5/php5.y:4133 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6553,7 +6547,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4150 +// line internal/php5/php5.y:4144 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6565,7 +6559,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4163 +// line internal/php5/php5.y:4157 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6577,7 +6571,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4173 +// line internal/php5/php5.y:4167 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6588,7 +6582,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4182 +// line internal/php5/php5.y:4176 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6601,7 +6595,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4193 +// line internal/php5/php5.y:4187 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6613,7 +6607,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4206 +// line internal/php5/php5.y:4200 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6624,7 +6618,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4215 +// line internal/php5/php5.y:4209 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6637,7 +6631,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4226 +// line internal/php5/php5.y:4220 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6649,19 +6643,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4239 +// line internal/php5/php5.y:4233 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4243 +// line internal/php5/php5.y:4237 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4250 +// line internal/php5/php5.y:4244 { yyVAL.node = yyDollar[1].node @@ -6702,25 +6696,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4289 +// line internal/php5/php5.y:4283 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4297 +// line internal/php5/php5.y:4291 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4301 +// line internal/php5/php5.y:4295 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4309 +// line internal/php5/php5.y:4303 { yyVAL.list = yyDollar[2].list @@ -6729,13 +6723,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4319 +// line internal/php5/php5.y:4313 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4323 +// line internal/php5/php5.y:4317 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6751,19 +6745,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4337 +// line internal/php5/php5.y:4331 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4344 +// line internal/php5/php5.y:4338 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4348 +// line internal/php5/php5.y:4342 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6773,25 +6767,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4356 +// line internal/php5/php5.y:4350 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4357 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4367 +// line internal/php5/php5.y:4361 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4374 +// line internal/php5/php5.y:4368 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6803,7 +6797,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4384 +// line internal/php5/php5.y:4378 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6815,7 +6809,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4394 +// line internal/php5/php5.y:4388 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6827,7 +6821,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4404 +// line internal/php5/php5.y:4398 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6839,7 +6833,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4414 +// line internal/php5/php5.y:4408 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6851,7 +6845,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4424 +// line internal/php5/php5.y:4418 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6863,7 +6857,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4434 +// line internal/php5/php5.y:4428 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6875,7 +6869,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4444 +// line internal/php5/php5.y:4438 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6887,7 +6881,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4454 +// line internal/php5/php5.y:4448 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6899,7 +6893,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4464 +// line internal/php5/php5.y:4458 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6911,7 +6905,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4474 +// line internal/php5/php5.y:4468 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6925,7 +6919,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4486 +// line internal/php5/php5.y:4480 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6937,7 +6931,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4499 +// line internal/php5/php5.y:4493 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6953,25 +6947,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4516 +// line internal/php5/php5.y:4510 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4523 +// line internal/php5/php5.y:4517 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4527 +// line internal/php5/php5.y:4521 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4531 +// line internal/php5/php5.y:4525 { name := &ast.NameName{ Node: ast.Node{ @@ -6986,7 +6980,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4544 +// line internal/php5/php5.y:4538 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7003,7 +6997,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4559 +// line internal/php5/php5.y:4553 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7019,7 +7013,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4573 +// line internal/php5/php5.y:4567 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7033,7 +7027,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4585 +// line internal/php5/php5.y:4579 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7046,13 +7040,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4590 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4600 +// line internal/php5/php5.y:4594 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7064,13 +7058,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4610 +// line internal/php5/php5.y:4604 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4617 +// line internal/php5/php5.y:4611 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7083,7 +7077,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4628 +// line internal/php5/php5.y:4622 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7096,7 +7090,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4639 +// line internal/php5/php5.y:4633 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7109,7 +7103,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4650 +// line internal/php5/php5.y:4644 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7122,7 +7116,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4661 +// line internal/php5/php5.y:4655 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7135,7 +7129,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4672 +// line internal/php5/php5.y:4666 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7148,7 +7142,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4683 +// line internal/php5/php5.y:4677 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7161,7 +7155,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4694 +// line internal/php5/php5.y:4688 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7173,7 +7167,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4704 +// line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7185,7 +7179,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4714 +// line internal/php5/php5.y:4708 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7198,7 +7192,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4725 +// line internal/php5/php5.y:4719 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7211,7 +7205,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4736 +// line internal/php5/php5.y:4730 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7224,7 +7218,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4747 +// line internal/php5/php5.y:4741 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7237,7 +7231,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4758 +// line internal/php5/php5.y:4752 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7250,7 +7244,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4769 +// line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7263,7 +7257,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4780 +// line internal/php5/php5.y:4774 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7276,7 +7270,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4791 +// line internal/php5/php5.y:4785 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7289,7 +7283,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4802 +// line internal/php5/php5.y:4796 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7302,7 +7296,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4813 +// line internal/php5/php5.y:4807 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7315,7 +7309,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4824 +// line internal/php5/php5.y:4818 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7328,7 +7322,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4835 +// line internal/php5/php5.y:4829 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7341,7 +7335,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4846 +// line internal/php5/php5.y:4840 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7354,7 +7348,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4857 +// line internal/php5/php5.y:4851 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7367,7 +7361,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4868 +// line internal/php5/php5.y:4862 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7381,7 +7375,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4880 +// line internal/php5/php5.y:4874 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7394,7 +7388,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4891 +// line internal/php5/php5.y:4885 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7407,7 +7401,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4902 +// line internal/php5/php5.y:4896 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7420,7 +7414,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4913 +// line internal/php5/php5.y:4907 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7433,7 +7427,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4924 +// line internal/php5/php5.y:4918 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7447,7 +7441,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4936 +// line internal/php5/php5.y:4930 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7461,7 +7455,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4948 +// line internal/php5/php5.y:4942 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7473,7 +7467,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4958 +// line internal/php5/php5.y:4952 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7485,7 +7479,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4968 +// line internal/php5/php5.y:4962 { yyVAL.node = yyDollar[2].node @@ -7495,13 +7489,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4979 +// line internal/php5/php5.y:4973 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4983 +// line internal/php5/php5.y:4977 { name := &ast.NameName{ Node: ast.Node{ @@ -7516,7 +7510,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4996 +// line internal/php5/php5.y:4990 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7533,7 +7527,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5005 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7549,7 +7543,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5028 +// line internal/php5/php5.y:5022 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7563,25 +7557,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5040 +// line internal/php5/php5.y:5034 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 +// line internal/php5/php5.y:5038 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5048 +// line internal/php5/php5.y:5042 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5052 +// line internal/php5/php5.y:5046 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7593,7 +7587,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5062 +// line internal/php5/php5.y:5056 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7605,7 +7599,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5072 +// line internal/php5/php5.y:5066 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7617,13 +7611,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5085 +// line internal/php5/php5.y:5079 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5089 +// line internal/php5/php5.y:5083 { yyVAL.list = yyDollar[1].list @@ -7634,19 +7628,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5101 +// line internal/php5/php5.y:5095 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5105 +// line internal/php5/php5.y:5099 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5112 +// line internal/php5/php5.y:5106 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7661,7 +7655,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5125 +// line internal/php5/php5.y:5119 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7675,7 +7669,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5137 +// line internal/php5/php5.y:5131 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7689,7 +7683,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5149 +// line internal/php5/php5.y:5143 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7702,19 +7696,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5163 +// line internal/php5/php5.y:5157 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5167 +// line internal/php5/php5.y:5161 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5174 +// line internal/php5/php5.y:5168 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7731,7 +7725,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5189 +// line internal/php5/php5.y:5183 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7748,25 +7742,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5208 +// line internal/php5/php5.y:5202 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5216 +// line internal/php5/php5.y:5210 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5223 +// line internal/php5/php5.y:5217 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5230 +// line internal/php5/php5.y:5224 { yyVAL.node = yyDollar[1].node @@ -7824,25 +7818,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5286 +// line internal/php5/php5.y:5280 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5293 +// line internal/php5/php5.y:5287 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5297 +// line internal/php5/php5.y:5291 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5305 +// line internal/php5/php5.y:5299 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7856,7 +7850,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5320 +// line internal/php5/php5.y:5314 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7870,7 +7864,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5332 +// line internal/php5/php5.y:5326 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7884,7 +7878,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5347 +// line internal/php5/php5.y:5341 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7893,31 +7887,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5357 +// line internal/php5/php5.y:5351 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5361 +// line internal/php5/php5.y:5355 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5365 +// line internal/php5/php5.y:5359 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5372 +// line internal/php5/php5.y:5366 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5376 +// line internal/php5/php5.y:5370 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7929,7 +7923,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5389 +// line internal/php5/php5.y:5383 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7942,7 +7936,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5400 +// line internal/php5/php5.y:5394 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7955,13 +7949,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5414 +// line internal/php5/php5.y:5408 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5421 +// line internal/php5/php5.y:5415 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7974,7 +7968,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5432 +// line internal/php5/php5.y:5426 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7987,31 +7981,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5446 +// line internal/php5/php5.y:5440 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5450 +// line internal/php5/php5.y:5444 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5448 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5462 +// line internal/php5/php5.y:5456 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5466 +// line internal/php5/php5.y:5460 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8023,13 +8017,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5476 +// line internal/php5/php5.y:5470 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5483 +// line internal/php5/php5.y:5477 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8042,7 +8036,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5494 +// line internal/php5/php5.y:5488 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8055,13 +8049,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5505 +// line internal/php5/php5.y:5499 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5513 +// line internal/php5/php5.y:5507 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8075,7 +8069,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5525 +// line internal/php5/php5.y:5519 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8089,25 +8083,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5540 +// line internal/php5/php5.y:5534 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5544 +// line internal/php5/php5.y:5538 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5552 +// line internal/php5/php5.y:5546 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5556 +// line internal/php5/php5.y:5550 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8117,7 +8111,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5567 +// line internal/php5/php5.y:5561 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8131,7 +8125,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5579 +// line internal/php5/php5.y:5573 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8145,7 +8139,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5591 +// line internal/php5/php5.y:5585 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8155,7 +8149,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5602 +// line internal/php5/php5.y:5596 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8167,7 +8161,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5612 +// line internal/php5/php5.y:5606 { yyVAL.node = yyDollar[2].node @@ -8180,7 +8174,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5626 +// line internal/php5/php5.y:5620 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8193,7 +8187,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5637 +// line internal/php5/php5.y:5631 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8210,7 +8204,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5655 +// line internal/php5/php5.y:5649 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8223,7 +8217,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5666 +// line internal/php5/php5.y:5660 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8233,7 +8227,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5678 +// line internal/php5/php5.y:5672 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8245,7 +8239,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5688 +// line internal/php5/php5.y:5682 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8261,19 +8255,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5702 +// line internal/php5/php5.y:5696 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5710 +// line internal/php5/php5.y:5704 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5714 +// line internal/php5/php5.y:5708 { yyVAL.list = yyDollar[1].list @@ -8288,7 +8282,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5730 +// line internal/php5/php5.y:5724 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8303,7 +8297,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5743 +// line internal/php5/php5.y:5737 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8317,7 +8311,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5755 +// line internal/php5/php5.y:5749 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8331,7 +8325,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5767 +// line internal/php5/php5.y:5761 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8344,7 +8338,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5778 +// line internal/php5/php5.y:5772 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8362,7 +8356,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5794 +// line internal/php5/php5.y:5788 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8378,7 +8372,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5808 +// line internal/php5/php5.y:5802 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8395,7 +8389,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5823 +// line internal/php5/php5.y:5817 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8410,13 +8404,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5839 +// line internal/php5/php5.y:5833 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5843 +// line internal/php5/php5.y:5837 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8429,13 +8423,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5854 +// line internal/php5/php5.y:5848 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5858 +// line internal/php5/php5.y:5852 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8448,7 +8442,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5872 +// line internal/php5/php5.y:5866 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8462,7 +8456,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5884 +// line internal/php5/php5.y:5878 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8479,7 +8473,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5899 +// line internal/php5/php5.y:5893 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8498,7 +8492,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5916 +// line internal/php5/php5.y:5910 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8513,7 +8507,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5929 +// line internal/php5/php5.y:5923 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8530,7 +8524,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5944 +// line internal/php5/php5.y:5938 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8549,7 +8543,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5961 +// line internal/php5/php5.y:5955 { yyVAL.node = yyDollar[2].node @@ -8559,7 +8553,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5972 +// line internal/php5/php5.y:5966 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8571,7 +8565,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5982 +// line internal/php5/php5.y:5976 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8588,7 +8582,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5997 +// line internal/php5/php5.y:5991 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8602,7 +8596,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6012 +// line internal/php5/php5.y:6006 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8616,7 +8610,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6024 +// line internal/php5/php5.y:6018 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8638,7 +8632,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6044 +// line internal/php5/php5.y:6038 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8660,7 +8654,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6064 +// line internal/php5/php5.y:6058 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8672,7 +8666,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6074 +// line internal/php5/php5.y:6068 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8684,7 +8678,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6084 +// line internal/php5/php5.y:6078 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8706,7 +8700,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6104 +// line internal/php5/php5.y:6098 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8718,7 +8712,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6114 +// line internal/php5/php5.y:6108 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8730,13 +8724,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6127 +// line internal/php5/php5.y:6121 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6131 +// line internal/php5/php5.y:6125 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8745,19 +8739,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6141 +// line internal/php5/php5.y:6135 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6145 +// line internal/php5/php5.y:6139 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6152 +// line internal/php5/php5.y:6146 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8773,7 +8767,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6166 +// line internal/php5/php5.y:6160 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8789,7 +8783,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6183 +// line internal/php5/php5.y:6177 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8805,7 +8799,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6200 +// line internal/php5/php5.y:6194 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 38a0d87..b760bdc 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -901,20 +901,13 @@ unticked_statement: } | T_WHILE parenthesis_expr while_statement { - switch n := $3.(type) { - case *ast.StmtWhile : - n.Cond = $2 - case *ast.StmtAltWhile : - n.Cond = $2 - } + $3.(*ast.StmtWhile).WhileTkn = $1 + $3.(*ast.StmtWhile).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn + $3.(*ast.StmtWhile).Cond = $2.(*ast.ParserBrackets).Child + $3.(*ast.StmtWhile).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn + $3.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition($1, $3) $$ = $3 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_DO statement T_WHILE parenthesis_expr ';' { @@ -1914,29 +1907,30 @@ case_separator: while_statement: statement { - $$ = &ast.StmtWhile{ast.Node{}, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtWhile{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDWHILE ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtWhile{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndWhileTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 535f8c7..de9eb19 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -3049,7 +3049,7 @@ func TestPhp5(t *testing.T) { }, }, }, - &ast.StmtAltWhile{ + &ast.StmtWhile{ Node: ast.Node{ Position: &position.Position{ StartLine: 57, @@ -3058,6 +3058,7 @@ func TestPhp5(t *testing.T) { EndPos: 1046, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 67ce06a..8421ca1 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -14441,7 +14441,7 @@ func TestStmtBreak(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltWhile{ + &ast.StmtWhile{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -14450,6 +14450,7 @@ func TestStmtBreak(t *testing.T) { EndPos: 34, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e1a071b..323095b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4889 +// line internal/php7/php7.y:4872 // line yacctab:1 var yyExca = [...]int{ @@ -3188,35 +3188,17 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php7/php7.y:872 { - exprBrackets := &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - - switch n := yyDollar[5].node.(type) { - case *ast.StmtWhile: - n.Cond = exprBrackets - case *ast.StmtAltWhile: - n.Cond = exprBrackets - } + yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token + yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token + yyDollar[5].node.(*ast.StmtWhile).Cond = yyDollar[3].node + yyDollar[5].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[4].token + yyDollar[5].node.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:900 +// line internal/php7/php7.y:882 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -3240,7 +3222,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:922 +// line internal/php7/php7.y:904 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3267,7 +3249,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:947 +// line internal/php7/php7.y:929 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -3300,7 +3282,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:978 +// line internal/php7/php7.y:960 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3314,7 +3296,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:990 +// line internal/php7/php7.y:972 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3328,7 +3310,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1002 +// line internal/php7/php7.y:984 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3342,7 +3324,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1014 +// line internal/php7/php7.y:996 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3356,7 +3338,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1026 +// line internal/php7/php7.y:1008 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3370,7 +3352,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1038 +// line internal/php7/php7.y:1020 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3385,7 +3367,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1051 +// line internal/php7/php7.y:1033 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3397,7 +3379,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1061 +// line internal/php7/php7.y:1043 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3411,7 +3393,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1073 +// line internal/php7/php7.y:1055 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3431,7 +3413,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1091 +// line internal/php7/php7.y:1073 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3455,7 +3437,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1113 +// line internal/php7/php7.y:1095 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3482,7 +3464,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1138 +// line internal/php7/php7.y:1120 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3497,7 +3479,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1151 +// line internal/php7/php7.y:1133 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3510,7 +3492,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1162 +// line internal/php7/php7.y:1144 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3527,7 +3509,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1177 +// line internal/php7/php7.y:1159 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3541,7 +3523,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1189 +// line internal/php7/php7.y:1171 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3558,7 +3540,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1204 +// line internal/php7/php7.y:1186 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3573,13 +3555,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1219 +// line internal/php7/php7.y:1201 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1223 +// line internal/php7/php7.y:1205 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3601,13 +3583,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1245 +// line internal/php7/php7.y:1227 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1249 +// line internal/php7/php7.y:1231 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3621,13 +3603,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1261 +// line internal/php7/php7.y:1243 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1265 +// line internal/php7/php7.y:1247 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3641,13 +3623,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1280 +// line internal/php7/php7.y:1262 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1284 +// line internal/php7/php7.y:1266 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3656,13 +3638,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1294 +// line internal/php7/php7.y:1276 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1301 +// line internal/php7/php7.y:1283 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3692,31 +3674,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1332 +// line internal/php7/php7.y:1314 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1336 +// line internal/php7/php7.y:1318 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1343 +// line internal/php7/php7.y:1325 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1347 +// line internal/php7/php7.y:1329 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1354 +// line internal/php7/php7.y:1336 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3734,7 +3716,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1370 +// line internal/php7/php7.y:1352 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3751,19 +3733,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1388 +// line internal/php7/php7.y:1370 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1392 +// line internal/php7/php7.y:1374 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1399 +// line internal/php7/php7.y:1381 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3775,7 +3757,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1409 +// line internal/php7/php7.y:1391 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3787,7 +3769,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1422 +// line internal/php7/php7.y:1404 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3804,7 +3786,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1440 +// line internal/php7/php7.y:1422 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3821,13 +3803,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1458 +// line internal/php7/php7.y:1440 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1462 +// line internal/php7/php7.y:1444 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3839,13 +3821,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1475 +// line internal/php7/php7.y:1457 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1479 +// line internal/php7/php7.y:1461 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3857,13 +3839,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1492 +// line internal/php7/php7.y:1474 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1496 +// line internal/php7/php7.y:1478 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3875,13 +3857,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1509 +// line internal/php7/php7.y:1491 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1513 +// line internal/php7/php7.y:1495 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3893,7 +3875,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1523 +// line internal/php7/php7.y:1505 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3907,7 +3889,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1535 +// line internal/php7/php7.y:1517 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3920,7 +3902,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1549 +// line internal/php7/php7.y:1531 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3929,7 +3911,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1556 +// line internal/php7/php7.y:1538 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3950,7 +3932,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1578 +// line internal/php7/php7.y:1560 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3959,7 +3941,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1585 +// line internal/php7/php7.y:1567 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3980,7 +3962,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1607 +// line internal/php7/php7.y:1589 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3989,7 +3971,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1614 +// line internal/php7/php7.y:1596 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -4010,7 +3992,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1636 +// line internal/php7/php7.y:1618 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4025,7 +4007,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1649 +// line internal/php7/php7.y:1631 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4041,7 +4023,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1663 +// line internal/php7/php7.y:1645 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4058,7 +4040,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1678 +// line internal/php7/php7.y:1660 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4077,13 +4059,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1698 +// line internal/php7/php7.y:1680 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1702 +// line internal/php7/php7.y:1684 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4098,7 +4080,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1715 +// line internal/php7/php7.y:1697 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4113,49 +4095,50 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1731 +// line internal/php7/php7.y:1713 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1735 +// line internal/php7/php7.y:1717 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1742 +// line internal/php7/php7.y:1724 { - yyVAL.node = &ast.StmtWhile{ast.Node{}, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtWhile{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1749 +// line internal/php7/php7.y:1733 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndWhileTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1771 +// line internal/php7/php7.y:1754 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4170,7 +4153,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1784 +// line internal/php7/php7.y:1767 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4189,13 +4172,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1804 +// line internal/php7/php7.y:1787 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1808 +// line internal/php7/php7.y:1791 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4211,7 +4194,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1825 +// line internal/php7/php7.y:1808 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4233,7 +4216,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1845 +// line internal/php7/php7.y:1828 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4257,7 +4240,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1870 +// line internal/php7/php7.y:1853 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4267,7 +4250,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1878 +// line internal/php7/php7.y:1861 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4291,25 +4274,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1903 +// line internal/php7/php7.y:1886 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1907 +// line internal/php7/php7.y:1890 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1914 +// line internal/php7/php7.y:1897 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1918 +// line internal/php7/php7.y:1901 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4318,7 +4301,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1928 +// line internal/php7/php7.y:1911 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4354,7 +4337,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1962 +// line internal/php7/php7.y:1945 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4391,25 +4374,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2000 +// line internal/php7/php7.y:1983 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2004 +// line internal/php7/php7.y:1987 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 +// line internal/php7/php7.y:1994 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2015 +// line internal/php7/php7.y:1998 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4421,7 +4404,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2028 +// line internal/php7/php7.y:2011 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4433,7 +4416,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2038 +// line internal/php7/php7.y:2021 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4445,19 +4428,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2048 +// line internal/php7/php7.y:2031 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2055 +// line internal/php7/php7.y:2038 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2059 +// line internal/php7/php7.y:2042 { yyVAL.node = yyDollar[2].node @@ -4466,7 +4449,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2069 +// line internal/php7/php7.y:2052 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4479,7 +4462,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2080 +// line internal/php7/php7.y:2063 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4496,13 +4479,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2098 +// line internal/php7/php7.y:2081 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2102 +// line internal/php7/php7.y:2085 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4511,7 +4494,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2112 +// line internal/php7/php7.y:2095 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4523,7 +4506,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2122 +// line internal/php7/php7.y:2105 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4535,7 +4518,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2135 +// line internal/php7/php7.y:2118 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4544,19 +4527,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2142 +// line internal/php7/php7.y:2125 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2149 +// line internal/php7/php7.y:2132 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2156 +// line internal/php7/php7.y:2139 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4565,13 +4548,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2163 +// line internal/php7/php7.y:2146 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2170 +// line internal/php7/php7.y:2153 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4587,7 +4570,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2184 +// line internal/php7/php7.y:2167 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4604,19 +4587,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2202 +// line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2206 +// line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2213 +// line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4630,7 +4613,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2225 +// line internal/php7/php7.y:2208 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4644,7 +4627,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2237 +// line internal/php7/php7.y:2220 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4656,7 +4639,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2247 +// line internal/php7/php7.y:2230 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4687,13 +4670,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2279 +// line internal/php7/php7.y:2262 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2283 +// line internal/php7/php7.y:2266 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4707,7 +4690,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2295 +// line internal/php7/php7.y:2278 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4719,7 +4702,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2305 +// line internal/php7/php7.y:2288 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4731,7 +4714,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2315 +// line internal/php7/php7.y:2298 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4743,19 +4726,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2328 +// line internal/php7/php7.y:2311 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2332 +// line internal/php7/php7.y:2315 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2339 +// line internal/php7/php7.y:2322 { yyVAL.node = yyDollar[1].node @@ -4765,7 +4748,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2347 +// line internal/php7/php7.y:2330 { yyVAL.node = yyDollar[1].node @@ -4775,7 +4758,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2358 +// line internal/php7/php7.y:2341 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4788,7 +4771,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2372 +// line internal/php7/php7.y:2355 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4804,7 +4787,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2386 +// line internal/php7/php7.y:2369 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4820,7 +4803,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2400 +// line internal/php7/php7.y:2383 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4836,7 +4819,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2414 +// line internal/php7/php7.y:2397 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4849,7 +4832,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2428 +// line internal/php7/php7.y:2411 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4863,13 +4846,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2440 +// line internal/php7/php7.y:2423 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2447 +// line internal/php7/php7.y:2430 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4885,7 +4868,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2464 +// line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4898,7 +4881,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2475 +// line internal/php7/php7.y:2458 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4911,13 +4894,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2472 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2493 +// line internal/php7/php7.y:2476 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4930,31 +4913,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2507 +// line internal/php7/php7.y:2490 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2511 +// line internal/php7/php7.y:2494 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2518 +// line internal/php7/php7.y:2501 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2522 +// line internal/php7/php7.y:2505 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2529 +// line internal/php7/php7.y:2512 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4966,7 +4949,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2539 +// line internal/php7/php7.y:2522 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4978,7 +4961,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2549 +// line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4990,7 +4973,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2559 +// line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5002,7 +4985,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2569 +// line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5014,7 +4997,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2579 +// line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5026,7 +5009,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2592 +// line internal/php7/php7.y:2575 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5035,13 +5018,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2599 +// line internal/php7/php7.y:2582 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2606 +// line internal/php7/php7.y:2589 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5057,7 +5040,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2620 +// line internal/php7/php7.y:2603 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5074,7 +5057,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2638 +// line internal/php7/php7.y:2621 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5082,13 +5065,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2644 +// line internal/php7/php7.y:2627 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2651 +// line internal/php7/php7.y:2634 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5108,7 +5091,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2672 +// line internal/php7/php7.y:2655 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5128,7 +5111,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2693 +// line internal/php7/php7.y:2676 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5137,31 +5120,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2700 +// line internal/php7/php7.y:2683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2707 +// line internal/php7/php7.y:2690 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2697 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2718 +// line internal/php7/php7.y:2701 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2725 +// line internal/php7/php7.y:2708 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5170,13 +5153,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2732 +// line internal/php7/php7.y:2715 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2739 +// line internal/php7/php7.y:2722 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5194,7 +5177,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2758 +// line internal/php7/php7.y:2741 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5209,7 +5192,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2771 +// line internal/php7/php7.y:2754 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5221,7 +5204,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2784 +// line internal/php7/php7.y:2767 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5238,7 +5221,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2799 +// line internal/php7/php7.y:2782 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5254,7 +5237,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2813 +// line internal/php7/php7.y:2796 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5267,7 +5250,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2824 +// line internal/php7/php7.y:2807 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5281,7 +5264,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2836 +// line internal/php7/php7.y:2819 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5293,7 +5276,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2846 +// line internal/php7/php7.y:2829 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5306,7 +5289,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2857 +// line internal/php7/php7.y:2840 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5319,7 +5302,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2868 +// line internal/php7/php7.y:2851 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5315,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2879 +// line internal/php7/php7.y:2862 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5328,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2890 +// line internal/php7/php7.y:2873 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5341,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2901 +// line internal/php7/php7.y:2884 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5354,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2912 +// line internal/php7/php7.y:2895 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5367,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2923 +// line internal/php7/php7.y:2906 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5397,7 +5380,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2934 +// line internal/php7/php7.y:2917 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5410,7 +5393,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2945 +// line internal/php7/php7.y:2928 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5423,7 +5406,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2956 +// line internal/php7/php7.y:2939 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5419,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2967 +// line internal/php7/php7.y:2950 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5432,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2978 +// line internal/php7/php7.y:2961 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5462,7 +5445,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2989 +// line internal/php7/php7.y:2972 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5475,7 +5458,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3000 +// line internal/php7/php7.y:2983 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5487,7 +5470,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3010 +// line internal/php7/php7.y:2993 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5500,7 +5483,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3021 +// line internal/php7/php7.y:3004 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5512,7 +5495,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3031 +// line internal/php7/php7.y:3014 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5525,7 +5508,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3042 +// line internal/php7/php7.y:3025 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5538,7 +5521,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3053 +// line internal/php7/php7.y:3036 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5534,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3064 +// line internal/php7/php7.y:3047 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5564,7 +5547,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3075 +// line internal/php7/php7.y:3058 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5577,7 +5560,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3086 +// line internal/php7/php7.y:3069 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5590,7 +5573,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3097 +// line internal/php7/php7.y:3080 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5603,7 +5586,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3108 +// line internal/php7/php7.y:3091 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5616,7 +5599,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3119 +// line internal/php7/php7.y:3102 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5629,7 +5612,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3130 +// line internal/php7/php7.y:3113 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5642,7 +5625,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3141 +// line internal/php7/php7.y:3124 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5655,7 +5638,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3152 +// line internal/php7/php7.y:3135 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5668,7 +5651,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3163 +// line internal/php7/php7.y:3146 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5681,7 +5664,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3174 +// line internal/php7/php7.y:3157 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5694,7 +5677,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3185 +// line internal/php7/php7.y:3168 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5707,7 +5690,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3196 +// line internal/php7/php7.y:3179 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5720,7 +5703,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3207 +// line internal/php7/php7.y:3190 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5733,7 +5716,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3218 +// line internal/php7/php7.y:3201 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5745,7 +5728,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3228 +// line internal/php7/php7.y:3211 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5757,7 +5740,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3238 +// line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5769,7 +5752,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3248 +// line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5781,7 +5764,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3258 +// line internal/php7/php7.y:3241 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5777,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3252 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5790,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3280 +// line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5803,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3291 +// line internal/php7/php7.y:3274 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5834,7 +5817,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3303 +// line internal/php7/php7.y:3286 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5847,7 +5830,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3314 +// line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5860,7 +5843,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3325 +// line internal/php7/php7.y:3308 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5873,7 +5856,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3336 +// line internal/php7/php7.y:3319 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5886,7 +5869,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3347 +// line internal/php7/php7.y:3330 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5899,7 +5882,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3358 +// line internal/php7/php7.y:3341 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5912,7 +5895,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3369 +// line internal/php7/php7.y:3352 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5929,13 +5912,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3384 +// line internal/php7/php7.y:3367 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3388 +// line internal/php7/php7.y:3371 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5949,7 +5932,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3400 +// line internal/php7/php7.y:3383 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5963,7 +5946,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3412 +// line internal/php7/php7.y:3395 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5976,13 +5959,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3423 +// line internal/php7/php7.y:3406 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3427 +// line internal/php7/php7.y:3410 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5995,7 +5978,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3438 +// line internal/php7/php7.y:3421 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6008,7 +5991,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3449 +// line internal/php7/php7.y:3432 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6021,7 +6004,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3460 +// line internal/php7/php7.y:3443 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6034,7 +6017,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3471 +// line internal/php7/php7.y:3454 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6047,7 +6030,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3482 +// line internal/php7/php7.y:3465 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6060,7 +6043,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3493 +// line internal/php7/php7.y:3476 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6073,7 +6056,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3504 +// line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6093,7 +6076,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3522 +// line internal/php7/php7.y:3505 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6105,13 +6088,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3532 +// line internal/php7/php7.y:3515 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3536 +// line internal/php7/php7.y:3519 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6123,7 +6106,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3546 +// line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6135,7 +6118,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3556 +// line internal/php7/php7.y:3539 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6147,7 +6130,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3566 +// line internal/php7/php7.y:3549 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6159,7 +6142,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3576 +// line internal/php7/php7.y:3559 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6172,7 +6155,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3587 +// line internal/php7/php7.y:3570 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6184,13 +6167,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3597 +// line internal/php7/php7.y:3580 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3601 +// line internal/php7/php7.y:3584 { yyVAL.node = yyDollar[2].node @@ -6211,7 +6194,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3622 +// line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6242,7 +6225,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3649 +// line internal/php7/php7.y:3632 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6268,25 +6251,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3679 +// line internal/php7/php7.y:3662 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3683 +// line internal/php7/php7.y:3666 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3690 +// line internal/php7/php7.y:3673 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3694 +// line internal/php7/php7.y:3677 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6300,7 +6283,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3709 +// line internal/php7/php7.y:3692 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6309,13 +6292,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3716 +// line internal/php7/php7.y:3699 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3723 +// line internal/php7/php7.y:3706 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6329,7 +6312,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3735 +// line internal/php7/php7.y:3718 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6346,7 +6329,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3753 +// line internal/php7/php7.y:3736 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6358,7 +6341,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3763 +// line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6371,7 +6354,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3774 +// line internal/php7/php7.y:3757 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6384,7 +6367,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3785 +// line internal/php7/php7.y:3768 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6396,7 +6379,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3798 +// line internal/php7/php7.y:3781 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6408,31 +6391,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3808 +// line internal/php7/php7.y:3791 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3815 +// line internal/php7/php7.y:3798 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3819 +// line internal/php7/php7.y:3802 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3826 +// line internal/php7/php7.y:3809 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3830 +// line internal/php7/php7.y:3813 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6449,13 +6432,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3848 +// line internal/php7/php7.y:3831 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3852 +// line internal/php7/php7.y:3835 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6465,25 +6448,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3860 +// line internal/php7/php7.y:3843 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3867 +// line internal/php7/php7.y:3850 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3871 +// line internal/php7/php7.y:3854 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3878 +// line internal/php7/php7.y:3861 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6497,7 +6480,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3890 +// line internal/php7/php7.y:3873 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6510,7 +6493,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3901 +// line internal/php7/php7.y:3884 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6522,7 +6505,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3914 +// line internal/php7/php7.y:3897 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6534,7 +6517,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3924 +// line internal/php7/php7.y:3907 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6546,7 +6529,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3934 +// line internal/php7/php7.y:3917 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6558,7 +6541,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3944 +// line internal/php7/php7.y:3927 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6570,7 +6553,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3954 +// line internal/php7/php7.y:3937 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6582,7 +6565,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3964 +// line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6594,7 +6577,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3974 +// line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6606,7 +6589,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3984 +// line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6618,7 +6601,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3994 +// line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6630,7 +6613,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4004 +// line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6642,7 +6625,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4014 +// line internal/php7/php7.y:3997 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6656,7 +6639,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4026 +// line internal/php7/php7.y:4009 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6668,7 +6651,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4036 +// line internal/php7/php7.y:4019 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6680,7 +6663,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4046 +// line internal/php7/php7.y:4029 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6692,19 +6675,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4056 +// line internal/php7/php7.y:4039 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4060 +// line internal/php7/php7.y:4043 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4067 +// line internal/php7/php7.y:4050 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6716,7 +6699,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4077 +// line internal/php7/php7.y:4060 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6732,7 +6715,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4091 +// line internal/php7/php7.y:4074 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6748,43 +6731,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4108 +// line internal/php7/php7.y:4091 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4112 +// line internal/php7/php7.y:4095 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4119 +// line internal/php7/php7.y:4102 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4123 +// line internal/php7/php7.y:4106 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4130 +// line internal/php7/php7.y:4113 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4137 +// line internal/php7/php7.y:4120 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4141 +// line internal/php7/php7.y:4124 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6801,19 +6784,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4156 +// line internal/php7/php7.y:4139 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4163 +// line internal/php7/php7.y:4146 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4167 +// line internal/php7/php7.y:4150 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6830,19 +6813,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4165 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4189 +// line internal/php7/php7.y:4172 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4193 +// line internal/php7/php7.y:4176 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6855,7 +6838,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4204 +// line internal/php7/php7.y:4187 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6868,7 +6851,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4215 +// line internal/php7/php7.y:4198 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6881,7 +6864,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4226 +// line internal/php7/php7.y:4209 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6894,25 +6877,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4237 +// line internal/php7/php7.y:4220 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4227 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4248 +// line internal/php7/php7.y:4231 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4252 +// line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6925,7 +6908,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4266 +// line internal/php7/php7.y:4249 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6939,7 +6922,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4278 +// line internal/php7/php7.y:4261 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6953,7 +6936,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4290 +// line internal/php7/php7.y:4273 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6965,7 +6948,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4303 +// line internal/php7/php7.y:4286 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6978,7 +6961,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4314 +// line internal/php7/php7.y:4297 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6991,13 +6974,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4328 +// line internal/php7/php7.y:4311 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4332 +// line internal/php7/php7.y:4315 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7010,7 +6993,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4343 +// line internal/php7/php7.y:4326 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7023,7 +7006,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4354 +// line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7036,7 +7019,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4365 +// line internal/php7/php7.y:4348 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7049,7 +7032,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4376 +// line internal/php7/php7.y:4359 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7062,7 +7045,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4390 +// line internal/php7/php7.y:4373 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7074,7 +7057,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4400 +// line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[2].node @@ -7084,13 +7067,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4408 +// line internal/php7/php7.y:4391 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4415 +// line internal/php7/php7.y:4398 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7102,7 +7085,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4425 +// line internal/php7/php7.y:4408 { yyVAL.node = yyDollar[2].node @@ -7112,31 +7095,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4433 +// line internal/php7/php7.y:4416 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4440 +// line internal/php7/php7.y:4423 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4447 +// line internal/php7/php7.y:4430 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4451 +// line internal/php7/php7.y:4434 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4458 +// line internal/php7/php7.y:4441 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7149,7 +7132,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4452 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7159,7 +7142,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4480 +// line internal/php7/php7.y:4463 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7172,7 +7155,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4491 +// line internal/php7/php7.y:4474 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7184,7 +7167,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4501 +// line internal/php7/php7.y:4484 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7200,7 +7183,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4515 +// line internal/php7/php7.y:4498 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7214,7 +7197,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4527 +// line internal/php7/php7.y:4510 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7226,7 +7209,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4537 +// line internal/php7/php7.y:4520 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7245,7 +7228,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4554 +// line internal/php7/php7.y:4537 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7262,13 +7245,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4572 +// line internal/php7/php7.y:4555 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4576 +// line internal/php7/php7.y:4559 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7281,13 +7264,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4587 +// line internal/php7/php7.y:4570 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4591 +// line internal/php7/php7.y:4574 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7300,7 +7283,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4605 +// line internal/php7/php7.y:4588 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7314,7 +7297,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4617 +// line internal/php7/php7.y:4600 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7331,7 +7314,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4632 +// line internal/php7/php7.y:4615 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7350,7 +7333,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4649 +// line internal/php7/php7.y:4632 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7365,7 +7348,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4662 +// line internal/php7/php7.y:4645 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7382,7 +7365,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4677 +// line internal/php7/php7.y:4660 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7401,7 +7384,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4694 +// line internal/php7/php7.y:4677 { yyVAL.node = yyDollar[2].node @@ -7411,7 +7394,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4705 +// line internal/php7/php7.y:4688 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7423,7 +7406,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4715 +// line internal/php7/php7.y:4698 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7440,7 +7423,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4730 +// line internal/php7/php7.y:4713 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7466,7 +7449,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4754 +// line internal/php7/php7.y:4737 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7480,7 +7463,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4769 +// line internal/php7/php7.y:4752 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7498,7 +7481,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4785 +// line internal/php7/php7.y:4768 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7520,7 +7503,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4805 +// line internal/php7/php7.y:4788 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7532,7 +7515,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4815 +// line internal/php7/php7.y:4798 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7544,7 +7527,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4825 +// line internal/php7/php7.y:4808 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7566,7 +7549,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4845 +// line internal/php7/php7.y:4828 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7578,7 +7561,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4855 +// line internal/php7/php7.y:4838 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7590,13 +7573,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4868 +// line internal/php7/php7.y:4851 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4872 +// line internal/php7/php7.y:4855 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7605,7 +7588,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4882 +// line internal/php7/php7.y:4865 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 03fbb1e..bc12e9f 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -870,31 +870,13 @@ statement: } | T_WHILE '(' expr ')' while_statement { - exprBrackets := &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, - } - - switch n := $5.(type) { - case *ast.StmtWhile : - n.Cond = exprBrackets - case *ast.StmtAltWhile : - n.Cond = exprBrackets - } + $5.(*ast.StmtWhile).WhileTkn = $1 + $5.(*ast.StmtWhile).OpenParenthesisTkn = $2 + $5.(*ast.StmtWhile).Cond = $3 + $5.(*ast.StmtWhile).CloseParenthesisTkn = $4 + $5.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition($1, $5) $$ = $5 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_DO statement T_WHILE '(' expr ')' ';' { @@ -1740,29 +1722,30 @@ case_separator: while_statement: statement { - $$ = &ast.StmtWhile{ast.Node{}, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtWhile{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDWHILE ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtWhile{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndWhileTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtAltWhile{ast.Node{}, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index a12803b..2204bc8 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -3821,7 +3821,7 @@ func TestPhp7(t *testing.T) { }, }, }, - &ast.StmtAltWhile{ + &ast.StmtWhile{ Node: ast.Node{ Position: &position.Position{ StartLine: 69, @@ -3830,6 +3830,7 @@ func TestPhp7(t *testing.T) { EndPos: 1290, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 4b60110..cceb924 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -30,7 +30,6 @@ type NodeVisitor interface { StmtAltFor(n *StmtAltFor) StmtAltForeach(n *StmtAltForeach) StmtAltSwitch(n *StmtAltSwitch) - StmtAltWhile(n *StmtAltWhile) StmtBreak(n *StmtBreak) StmtCase(n *StmtCase) StmtCaseList(n *StmtCaseList) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 993b65b..80ca23e 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -212,17 +212,6 @@ func (n *StmtAltSwitch) Accept(v NodeVisitor) { v.StmtAltSwitch(n) } -// StmtAltWhile node -type StmtAltWhile struct { - Node - Cond Vertex - Stmt Vertex -} - -func (n *StmtAltWhile) Accept(v NodeVisitor) { - v.StmtAltWhile(n) -} - // StmtBreak node type StmtBreak struct { Node @@ -839,8 +828,15 @@ func (n *StmtUseDeclaration) Accept(v NodeVisitor) { // StmtWhile node type StmtWhile struct { Node - Cond Vertex - Stmt Vertex + Alt bool + WhileTkn *token.Token + OpenParenthesisTkn *token.Token + Cond Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + Stmt Vertex + EndWhileTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtWhile) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 89d6977..5903f24 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -196,23 +196,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.CaseList) t.visitor.Leave("CaseList", true) } - case *ast.StmtAltWhile: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } case *ast.StmtBreak: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 874e88d..c684ede 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -270,12 +270,6 @@ func (v *Dump) StmtAltSwitch(n *ast.StmtAltSwitch) { v.printNode(n.GetNode()) } -func (v *Dump) StmtAltWhile(n *ast.StmtAltWhile) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtAltWhile{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtBreak{\n") @@ -637,6 +631,11 @@ func (v *Dump) StmtWhile(n *ast.StmtWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtWhile{\n") v.printNode(n.GetNode()) + + if n.Alt { + v.printIndent(v.indent) + v.print("Alt: true,\n") + } } func (v *Dump) ExprArray(n *ast.ExprArray) { diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index 859778f..20ed98d 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -13,26 +13,6 @@ func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { return true } -func (v *FilterParserNodes) StmtWhile(n *ast.StmtWhile) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtAltWhile(n *ast.StmtAltWhile) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - func (v *FilterParserNodes) StmtDo(n *ast.StmtDo) { for { if nn, ok := n.Cond.(*ast.ParserBrackets); ok { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index a1df886..620b703 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -113,3 +113,12 @@ func (v *FilterTokens) ParserBrackets(n *ast.ParserBrackets) { n.OpenBracketTkn = nil n.CloseBracketTkn = nil } + +func (v *FilterTokens) StmtWhile(n *ast.StmtWhile) { + n.WhileTkn = nil + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + n.ColonTkn = nil + n.EndWhileTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 83c590d..4054486 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -66,10 +66,6 @@ func (v *Null) StmtAltSwitch(_ *ast.StmtAltSwitch) { // do nothing } -func (v *Null) StmtAltWhile(_ *ast.StmtAltWhile) { - // do nothing -} - func (v *Null) StmtBreak(_ *ast.StmtBreak) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index b089a24..c172f41 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -303,8 +303,6 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { p.printStmtAltForeach(n) case *ast.StmtAltSwitch: p.printStmtAltSwitch(n) - case *ast.StmtAltWhile: - p.printStmtAltWhile(n) case *ast.StmtBreak: p.printStmtBreak(n) case *ast.StmtCase: @@ -1450,21 +1448,6 @@ func (p *PrettyPrinter) printStmtAltSwitch(n ast.Vertex) { io.WriteString(p.w, "endswitch;") } -func (p *PrettyPrinter) printStmtAltWhile(n ast.Vertex) { - nn := n.(*ast.StmtAltWhile) - - io.WriteString(p.w, "while (") - p.Print(nn.Cond) - io.WriteString(p.w, ") :\n") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "endwhile;") -} - func (p *PrettyPrinter) printStmtBreak(n ast.Vertex) { nn := n.(*ast.StmtBreak) @@ -2190,6 +2173,11 @@ func (p *PrettyPrinter) printStmtUseDeclaration(n ast.Vertex) { func (p *PrettyPrinter) printStmtWhile(n ast.Vertex) { nn := n.(*ast.StmtWhile) + if nn.Alt { + p.printStmtAltWhile(nn) + return + } + io.WriteString(p.w, "while (") p.Print(nn.Cond) io.WriteString(p.w, ")") @@ -2209,3 +2197,18 @@ func (p *PrettyPrinter) printStmtWhile(n ast.Vertex) { p.indentDepth-- } } + +func (p *PrettyPrinter) printStmtAltWhile(n ast.Vertex) { + nn := n.(*ast.StmtWhile) + + io.WriteString(p.w, "while (") + p.Print(nn.Cond) + io.WriteString(p.w, ") :\n") + + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + + io.WriteString(p.w, "\n") + p.printIndent() + io.WriteString(p.w, "endwhile;") +} diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index f4a3188..6bb07ea 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -2091,7 +2091,7 @@ func TestPrintAltElseIf(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtElseIf{ - Alt: true, + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -2114,7 +2114,7 @@ func TestPrintAltElseIfEmpty(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtElseIf{ - Alt: true, + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{}, }) @@ -2154,7 +2154,7 @@ func TestPrintAltElseEmpty(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtElse{ - Alt: true, + Alt: true, Stmt: &ast.StmtStmtList{}, }) @@ -2241,7 +2241,7 @@ func TestPrintAltIf(t *testing.T) { p.Print(&ast.StmtNamespace{ Stmts: []ast.Vertex{ &ast.StmtIf{ - Alt: true, + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -2250,7 +2250,7 @@ func TestPrintAltIf(t *testing.T) { }, ElseIf: []ast.Vertex{ &ast.StmtElseIf{ - Alt: true, + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -2259,7 +2259,7 @@ func TestPrintAltIf(t *testing.T) { }, }, &ast.StmtElseIf{ - Alt: true, + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, Stmt: &ast.StmtStmtList{}, }, @@ -2342,7 +2342,8 @@ func TestPrintAltWhile(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtNamespace{ Stmts: []ast.Vertex{ - &ast.StmtAltWhile{ + &ast.StmtWhile{ + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index afc80a8..8275817 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -365,8 +365,6 @@ func (p *Printer) printNode(n ast.Vertex) { p.printStmtAltForeach(n) case *ast.StmtAltSwitch: p.printStmtAltSwitch(n) - case *ast.StmtAltWhile: - p.printStmtAltWhile(n) case *ast.StmtBreak: p.printStmtBreak(n) case *ast.StmtCase: @@ -2091,39 +2089,6 @@ func (p *Printer) printStmtAltSwitch(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtAltWhile(n ast.Vertex) { - nn := n.(*ast.StmtAltWhile) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "while") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") - } - - p.Print(nn.Cond) - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") - } - - p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, token.Stmts) - - io.WriteString(p.w, "endwhile") - p.printFreeFloating(nn, token.AltEnd) - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printStmtBreak(n ast.Vertex) { nn := n.(*ast.StmtBreak) p.printFreeFloating(nn, token.Start) @@ -3169,25 +3134,35 @@ func (p *Printer) printStmtUseDeclaration(n *ast.StmtUseDeclaration) { p.printToken(n.CommaTkn, "") } -func (p *Printer) printStmtWhile(n ast.Vertex) { - nn := n.(*ast.StmtWhile) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "while") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") +func (p *Printer) printStmtWhile(n *ast.StmtWhile) { + if n.Alt { + p.printStmtAltWhile(n) + return } - p.Print(nn.Cond) + p.printToken(n.WhileTkn, "while") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") + p.Print(n.Stmt) +} + +func (p *Printer) printStmtAltWhile(n *ast.StmtWhile) { + p.printToken(n.WhileTkn, "while") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.ColonTkn, ":") + + if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { + p.printNodes(stmtList.Stmts) + } else { + p.Print(n.Stmt) } - p.Print(nn.Stmt) - - p.printFreeFloating(nn, token.End) + p.printToken(n.EndWhileTkn, "endwhile") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printParserAs(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 82dd9a2..1af1e60 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -820,7 +820,8 @@ func TestParseAndPrintPhp5AltSwitch(t *testing.T) { } func TestParseAndPrintPhp5AltWhile(t *testing.T) { - src := ` Date: Fri, 4 Sep 2020 10:53:07 +0300 Subject: [PATCH 053/140] [refactoring] update ast structure of "Do" node --- internal/php5/php5.go | 962 ++++++++++++------------ internal/php5/php5.y | 22 +- internal/php7/php7.go | 741 +++++++++--------- internal/php7/php7.y | 25 +- pkg/ast/node.go | 9 +- pkg/ast/visitor/filter_parser_nodes.go | 10 - pkg/ast/visitor/filter_tokens.go | 8 + pkg/printer/pretty_printer_test.go | 2 +- pkg/printer/printer.go | 43 +- pkg/printer/printer_parsed_php5_test.go | 3 +- pkg/printer/printer_parsed_php7_test.go | 3 +- pkg/printer/printer_test.go | 2 +- 12 files changed, 900 insertions(+), 930 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index d6165d2..a5870d0 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6209 +// line internal/php5/php5.y:6211 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3011,20 +3011,22 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php5/php5.y:913 { - yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyDollar[4].node, token.End, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) + yyVAL.node = &ast.StmtDo{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + }, + DoTkn: yyDollar[1].token, + Stmt: yyDollar[2].node, + WhileTkn: yyDollar[3].token, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ParserBrackets).OpenBracketTkn, + Cond: yyDollar[4].node.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ParserBrackets).CloseBracketTkn, + SemiColonTkn: yyDollar[5].token, + } } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:926 +// line internal/php5/php5.y:928 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3051,7 +3053,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:951 +// line internal/php5/php5.y:953 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3072,7 +3074,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:970 +// line internal/php5/php5.y:972 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3086,7 +3088,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:982 +// line internal/php5/php5.y:984 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3100,7 +3102,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:994 +// line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3114,7 +3116,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1006 +// line internal/php5/php5.y:1008 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3128,7 +3130,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1018 +// line internal/php5/php5.y:1020 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3142,7 +3144,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1030 +// line internal/php5/php5.y:1032 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3156,7 +3158,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1042 +// line internal/php5/php5.y:1044 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3170,7 +3172,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1054 +// line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3184,7 +3186,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1066 +// line internal/php5/php5.y:1068 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3198,7 +3200,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1078 +// line internal/php5/php5.y:1080 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3212,7 +3214,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1090 +// line internal/php5/php5.y:1092 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3227,7 +3229,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1103 +// line internal/php5/php5.y:1105 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3239,7 +3241,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1113 +// line internal/php5/php5.y:1115 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3253,7 +3255,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1125 +// line internal/php5/php5.y:1127 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3269,7 +3271,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1139 +// line internal/php5/php5.y:1141 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3310,7 +3312,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1177 +// line internal/php5/php5.y:1179 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3351,7 +3353,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1215 +// line internal/php5/php5.y:1217 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3366,7 +3368,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1228 +// line internal/php5/php5.y:1230 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3379,7 +3381,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1239 +// line internal/php5/php5.y:1241 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3397,7 +3399,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1255 +// line internal/php5/php5.y:1257 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3411,7 +3413,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1267 +// line internal/php5/php5.y:1269 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3428,13 +3430,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1285 +// line internal/php5/php5.y:1287 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1289 +// line internal/php5/php5.y:1291 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3456,13 +3458,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1312 +// line internal/php5/php5.y:1314 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1316 +// line internal/php5/php5.y:1318 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3476,31 +3478,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1333 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1335 +// line internal/php5/php5.y:1337 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1342 +// line internal/php5/php5.y:1344 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1346 +// line internal/php5/php5.y:1348 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1353 +// line internal/php5/php5.y:1355 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3521,13 +3523,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1375 +// line internal/php5/php5.y:1377 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1379 +// line internal/php5/php5.y:1381 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3536,49 +3538,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1389 +// line internal/php5/php5.y:1391 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1396 +// line internal/php5/php5.y:1398 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1403 +// line internal/php5/php5.y:1405 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1410 +// line internal/php5/php5.y:1412 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1414 +// line internal/php5/php5.y:1416 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1421 +// line internal/php5/php5.y:1423 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1425 +// line internal/php5/php5.y:1427 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1432 +// line internal/php5/php5.y:1434 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3602,7 +3604,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1457 +// line internal/php5/php5.y:1459 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3630,7 +3632,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1483 +// line internal/php5/php5.y:1485 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3647,7 +3649,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1502 +// line internal/php5/php5.y:1504 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3659,7 +3661,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1512 +// line internal/php5/php5.y:1514 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3674,7 +3676,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1525 +// line internal/php5/php5.y:1527 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3686,7 +3688,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1535 +// line internal/php5/php5.y:1537 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3701,13 +3703,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1551 +// line internal/php5/php5.y:1553 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1555 +// line internal/php5/php5.y:1557 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3719,19 +3721,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1568 +// line internal/php5/php5.y:1570 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1575 +// line internal/php5/php5.y:1577 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1579 +// line internal/php5/php5.y:1581 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3743,13 +3745,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1592 +// line internal/php5/php5.y:1594 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1596 +// line internal/php5/php5.y:1598 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3761,13 +3763,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1609 +// line internal/php5/php5.y:1611 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1613 +// line internal/php5/php5.y:1615 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3781,13 +3783,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1625 +// line internal/php5/php5.y:1627 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1629 +// line internal/php5/php5.y:1631 { yyVAL.node = yyDollar[2].node @@ -3796,13 +3798,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1639 +// line internal/php5/php5.y:1641 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1643 +// line internal/php5/php5.y:1645 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3814,7 +3816,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1653 +// line internal/php5/php5.y:1655 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3828,7 +3830,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1668 +// line internal/php5/php5.y:1670 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3837,7 +3839,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1675 +// line internal/php5/php5.y:1677 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3858,7 +3860,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1697 +// line internal/php5/php5.y:1699 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3867,7 +3869,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1704 +// line internal/php5/php5.y:1706 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3888,7 +3890,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1727 +// line internal/php5/php5.y:1729 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3897,7 +3899,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1734 +// line internal/php5/php5.y:1736 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3918,7 +3920,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1757 +// line internal/php5/php5.y:1759 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3940,7 +3942,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1777 +// line internal/php5/php5.y:1779 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3961,7 +3963,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1800 +// line internal/php5/php5.y:1802 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3976,7 +3978,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1813 +// line internal/php5/php5.y:1815 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3992,7 +3994,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1827 +// line internal/php5/php5.y:1829 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4009,7 +4011,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1842 +// line internal/php5/php5.y:1844 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4028,13 +4030,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1863 +// line internal/php5/php5.y:1865 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1867 +// line internal/php5/php5.y:1869 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4049,7 +4051,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1880 +// line internal/php5/php5.y:1882 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4064,19 +4066,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1897 +// line internal/php5/php5.y:1899 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1901 +// line internal/php5/php5.y:1903 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1909 +// line internal/php5/php5.y:1911 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4087,7 +4089,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1918 +// line internal/php5/php5.y:1920 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4107,13 +4109,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1941 +// line internal/php5/php5.y:1943 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1945 +// line internal/php5/php5.y:1947 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4128,13 +4130,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1962 +// line internal/php5/php5.y:1964 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1966 +// line internal/php5/php5.y:1968 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4156,13 +4158,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1990 +// line internal/php5/php5.y:1992 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1994 +// line internal/php5/php5.y:1996 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4174,13 +4176,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2008 +// line internal/php5/php5.y:2010 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2012 +// line internal/php5/php5.y:2014 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4199,25 +4201,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2033 +// line internal/php5/php5.y:2035 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2037 +// line internal/php5/php5.y:2039 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2044 +// line internal/php5/php5.y:2046 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2048 +// line internal/php5/php5.y:2050 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4226,7 +4228,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2058 +// line internal/php5/php5.y:2060 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4262,7 +4264,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2092 +// line internal/php5/php5.y:2094 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4299,13 +4301,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2131 +// line internal/php5/php5.y:2133 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2135 +// line internal/php5/php5.y:2137 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4317,7 +4319,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2145 +// line internal/php5/php5.y:2147 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4329,13 +4331,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2155 +// line internal/php5/php5.y:2157 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2163 +// line internal/php5/php5.y:2165 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4348,7 +4350,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2174 +// line internal/php5/php5.y:2176 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4361,7 +4363,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2185 +// line internal/php5/php5.y:2187 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4376,13 +4378,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2202 +// line internal/php5/php5.y:2204 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2206 +// line internal/php5/php5.y:2208 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4391,7 +4393,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2216 +// line internal/php5/php5.y:2218 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4403,7 +4405,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2226 +// line internal/php5/php5.y:2228 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4415,7 +4417,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2236 +// line internal/php5/php5.y:2238 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4427,7 +4429,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2246 +// line internal/php5/php5.y:2248 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4439,7 +4441,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2259 +// line internal/php5/php5.y:2261 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4448,13 +4450,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2266 +// line internal/php5/php5.y:2268 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2274 +// line internal/php5/php5.y:2276 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4468,7 +4470,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2286 +// line internal/php5/php5.y:2288 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4480,7 +4482,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2296 +// line internal/php5/php5.y:2298 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4494,7 +4496,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2312 +// line internal/php5/php5.y:2314 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4512,7 +4514,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2328 +// line internal/php5/php5.y:2330 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4531,7 +4533,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2345 +// line internal/php5/php5.y:2347 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4548,7 +4550,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2360 +// line internal/php5/php5.y:2362 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4566,19 +4568,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2380 +// line internal/php5/php5.y:2382 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2384 +// line internal/php5/php5.y:2386 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2392 +// line internal/php5/php5.y:2394 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4592,7 +4594,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2404 +// line internal/php5/php5.y:2406 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4600,13 +4602,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2410 +// line internal/php5/php5.y:2412 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2414 +// line internal/php5/php5.y:2416 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4637,7 +4639,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2446 +// line internal/php5/php5.y:2448 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4649,13 +4651,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2459 +// line internal/php5/php5.y:2461 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2463 +// line internal/php5/php5.y:2465 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4669,7 +4671,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2475 +// line internal/php5/php5.y:2477 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4681,7 +4683,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2485 +// line internal/php5/php5.y:2487 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4693,31 +4695,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2498 +// line internal/php5/php5.y:2500 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2502 +// line internal/php5/php5.y:2504 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2509 +// line internal/php5/php5.y:2511 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2513 +// line internal/php5/php5.y:2515 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2520 +// line internal/php5/php5.y:2522 { yyVAL.node = yyDollar[1].node @@ -4727,7 +4729,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2528 +// line internal/php5/php5.y:2530 { yyVAL.node = yyDollar[1].node @@ -4737,7 +4739,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2541 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4750,13 +4752,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2553 +// line internal/php5/php5.y:2555 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2557 +// line internal/php5/php5.y:2559 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4765,7 +4767,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2567 +// line internal/php5/php5.y:2569 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4779,13 +4781,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2579 +// line internal/php5/php5.y:2581 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2586 +// line internal/php5/php5.y:2588 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4801,7 +4803,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2603 +// line internal/php5/php5.y:2605 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4817,7 +4819,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2617 +// line internal/php5/php5.y:2619 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4830,19 +4832,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2631 +// line internal/php5/php5.y:2633 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2635 +// line internal/php5/php5.y:2637 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2642 +// line internal/php5/php5.y:2644 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4855,7 +4857,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2653 +// line internal/php5/php5.y:2655 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4868,13 +4870,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2667 +// line internal/php5/php5.y:2669 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2671 +// line internal/php5/php5.y:2673 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4887,31 +4889,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2685 +// line internal/php5/php5.y:2687 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2689 +// line internal/php5/php5.y:2691 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2696 +// line internal/php5/php5.y:2698 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2700 +// line internal/php5/php5.y:2702 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2707 +// line internal/php5/php5.y:2709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4923,7 +4925,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2717 +// line internal/php5/php5.y:2719 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4935,7 +4937,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2727 +// line internal/php5/php5.y:2729 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4947,7 +4949,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2737 +// line internal/php5/php5.y:2739 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4959,7 +4961,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2747 +// line internal/php5/php5.y:2749 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4971,7 +4973,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2757 +// line internal/php5/php5.y:2759 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4983,7 +4985,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2770 +// line internal/php5/php5.y:2772 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5001,7 +5003,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2786 +// line internal/php5/php5.y:2788 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5020,7 +5022,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2803 +// line internal/php5/php5.y:2805 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5037,7 +5039,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2818 +// line internal/php5/php5.y:2820 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5055,7 +5057,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2837 +// line internal/php5/php5.y:2839 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5080,7 +5082,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2860 +// line internal/php5/php5.y:2862 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5108,7 +5110,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2889 +// line internal/php5/php5.y:2891 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5117,25 +5119,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2896 +// line internal/php5/php5.y:2898 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2904 +// line internal/php5/php5.y:2906 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2908 +// line internal/php5/php5.y:2910 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2915 +// line internal/php5/php5.y:2917 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5144,25 +5146,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2922 +// line internal/php5/php5.y:2924 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2929 +// line internal/php5/php5.y:2931 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2933 +// line internal/php5/php5.y:2935 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2940 +// line internal/php5/php5.y:2942 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5176,7 +5178,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2952 +// line internal/php5/php5.y:2954 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5190,37 +5192,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2967 +// line internal/php5/php5.y:2969 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2971 +// line internal/php5/php5.y:2973 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2975 +// line internal/php5/php5.y:2977 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2982 +// line internal/php5/php5.y:2984 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2986 +// line internal/php5/php5.y:2988 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2993 +// line internal/php5/php5.y:2995 { if yyDollar[3].node != nil { @@ -5236,7 +5238,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3010 +// line internal/php5/php5.y:3012 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5253,7 +5255,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3025 +// line internal/php5/php5.y:3027 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5266,7 +5268,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3036 +// line internal/php5/php5.y:3038 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5280,7 +5282,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3048 +// line internal/php5/php5.y:3050 { var _new *ast.ExprNew @@ -5307,7 +5309,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3073 +// line internal/php5/php5.y:3075 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5319,7 +5321,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3085 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5333,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3093 +// line internal/php5/php5.y:3095 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5346,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3104 +// line internal/php5/php5.y:3106 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5359,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3115 +// line internal/php5/php5.y:3117 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5372,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3126 +// line internal/php5/php5.y:3128 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5385,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3137 +// line internal/php5/php5.y:3139 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5398,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3148 +// line internal/php5/php5.y:3150 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5411,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3159 +// line internal/php5/php5.y:3161 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5424,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3170 +// line internal/php5/php5.y:3172 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5437,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3181 +// line internal/php5/php5.y:3183 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5450,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5463,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3203 +// line internal/php5/php5.y:3205 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5474,7 +5476,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3214 +// line internal/php5/php5.y:3216 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5487,7 +5489,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3225 +// line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5499,7 +5501,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3235 +// line internal/php5/php5.y:3237 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5512,7 +5514,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3246 +// line internal/php5/php5.y:3248 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5524,7 +5526,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3256 +// line internal/php5/php5.y:3258 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5539,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3267 +// line internal/php5/php5.y:3269 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5552,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3278 +// line internal/php5/php5.y:3280 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5565,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3289 +// line internal/php5/php5.y:3291 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5578,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3300 +// line internal/php5/php5.y:3302 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5591,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3311 +// line internal/php5/php5.y:3313 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5604,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3322 +// line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5617,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3333 +// line internal/php5/php5.y:3335 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5630,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3344 +// line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5643,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3355 +// line internal/php5/php5.y:3357 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5656,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3366 +// line internal/php5/php5.y:3368 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5669,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3377 +// line internal/php5/php5.y:3379 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5682,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3388 +// line internal/php5/php5.y:3390 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5695,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3399 +// line internal/php5/php5.y:3401 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5708,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3410 +// line internal/php5/php5.y:3412 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5721,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3421 +// line internal/php5/php5.y:3423 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5734,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3432 +// line internal/php5/php5.y:3434 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5747,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3443 +// line internal/php5/php5.y:3445 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5757,7 +5759,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3453 +// line internal/php5/php5.y:3455 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5769,7 +5771,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3463 +// line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5781,7 +5783,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3473 +// line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5793,7 +5795,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3483 +// line internal/php5/php5.y:3485 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5808,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3494 +// line internal/php5/php5.y:3496 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5821,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3505 +// line internal/php5/php5.y:3507 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5834,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3516 +// line internal/php5/php5.y:3518 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5848,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3528 +// line internal/php5/php5.y:3530 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5861,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3539 +// line internal/php5/php5.y:3541 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5874,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3550 +// line internal/php5/php5.y:3552 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5887,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3561 +// line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5898,7 +5900,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3572 +// line internal/php5/php5.y:3574 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5911,19 +5913,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3583 +// line internal/php5/php5.y:3585 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3587 +// line internal/php5/php5.y:3589 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3593 { yyVAL.node = yyDollar[2].node @@ -5955,7 +5957,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3621 +// line internal/php5/php5.y:3623 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5969,7 +5971,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3633 +// line internal/php5/php5.y:3635 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5983,13 +5985,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3645 +// line internal/php5/php5.y:3647 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3649 +// line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6002,7 +6004,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3660 +// line internal/php5/php5.y:3662 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6017,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3671 +// line internal/php5/php5.y:3673 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6030,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3682 +// line internal/php5/php5.y:3684 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6043,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3693 +// line internal/php5/php5.y:3695 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6054,7 +6056,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3704 +// line internal/php5/php5.y:3706 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6067,7 +6069,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3715 +// line internal/php5/php5.y:3717 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6080,7 +6082,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3726 +// line internal/php5/php5.y:3728 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6100,7 +6102,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3744 +// line internal/php5/php5.y:3746 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6112,25 +6114,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3754 +// line internal/php5/php5.y:3756 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3758 +// line internal/php5/php5.y:3760 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3762 +// line internal/php5/php5.y:3764 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3766 +// line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6142,7 +6144,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3776 +// line internal/php5/php5.y:3778 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6154,7 +6156,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3786 +// line internal/php5/php5.y:3788 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6166,7 +6168,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3796 +// line internal/php5/php5.y:3798 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6193,7 +6195,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3820 +// line internal/php5/php5.y:3822 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6221,7 +6223,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3848 +// line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6233,7 +6235,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3858 +// line internal/php5/php5.y:3860 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6245,7 +6247,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3868 +// line internal/php5/php5.y:3870 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6258,7 +6260,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3879 +// line internal/php5/php5.y:3881 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6271,7 +6273,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3893 +// line internal/php5/php5.y:3895 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6284,7 +6286,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3904 +// line internal/php5/php5.y:3906 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6297,7 +6299,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3915 +// line internal/php5/php5.y:3917 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6313,7 +6315,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3929 +// line internal/php5/php5.y:3931 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6326,7 +6328,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3943 +// line internal/php5/php5.y:3945 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6340,7 +6342,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3955 +// line internal/php5/php5.y:3957 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6353,19 +6355,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3969 +// line internal/php5/php5.y:3971 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3976 +// line internal/php5/php5.y:3978 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3980 +// line internal/php5/php5.y:3982 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6379,7 +6381,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3995 +// line internal/php5/php5.y:3997 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6395,7 +6397,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4009 +// line internal/php5/php5.y:4011 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6414,7 +6416,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4026 +// line internal/php5/php5.y:4028 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6429,7 +6431,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4041 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6447,7 +6449,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4058 +// line internal/php5/php5.y:4060 { name := &ast.NameName{ Node: ast.Node{ @@ -6462,7 +6464,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4071 +// line internal/php5/php5.y:4073 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6479,7 +6481,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4086 +// line internal/php5/php5.y:4088 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6495,7 +6497,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4100 +// line internal/php5/php5.y:4102 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6508,7 +6510,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4111 +// line internal/php5/php5.y:4113 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6521,7 +6523,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4122 +// line internal/php5/php5.y:4124 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6534,7 +6536,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4133 +// line internal/php5/php5.y:4135 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6547,7 +6549,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4144 +// line internal/php5/php5.y:4146 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6559,7 +6561,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4159 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6571,7 +6573,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4167 +// line internal/php5/php5.y:4169 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6582,7 +6584,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4176 +// line internal/php5/php5.y:4178 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6595,7 +6597,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4187 +// line internal/php5/php5.y:4189 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6607,7 +6609,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4200 +// line internal/php5/php5.y:4202 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6618,7 +6620,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4209 +// line internal/php5/php5.y:4211 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6631,7 +6633,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4220 +// line internal/php5/php5.y:4222 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6643,19 +6645,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4233 +// line internal/php5/php5.y:4235 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4237 +// line internal/php5/php5.y:4239 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4244 +// line internal/php5/php5.y:4246 { yyVAL.node = yyDollar[1].node @@ -6696,25 +6698,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4283 +// line internal/php5/php5.y:4285 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4291 +// line internal/php5/php5.y:4293 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4295 +// line internal/php5/php5.y:4297 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4303 +// line internal/php5/php5.y:4305 { yyVAL.list = yyDollar[2].list @@ -6723,13 +6725,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4313 +// line internal/php5/php5.y:4315 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4317 +// line internal/php5/php5.y:4319 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6745,19 +6747,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4331 +// line internal/php5/php5.y:4333 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4338 +// line internal/php5/php5.y:4340 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4342 +// line internal/php5/php5.y:4344 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6767,25 +6769,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4350 +// line internal/php5/php5.y:4352 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4357 +// line internal/php5/php5.y:4359 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4361 +// line internal/php5/php5.y:4363 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4368 +// line internal/php5/php5.y:4370 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6797,7 +6799,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4378 +// line internal/php5/php5.y:4380 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6809,7 +6811,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4388 +// line internal/php5/php5.y:4390 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6821,7 +6823,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4398 +// line internal/php5/php5.y:4400 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6833,7 +6835,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4408 +// line internal/php5/php5.y:4410 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6845,7 +6847,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4418 +// line internal/php5/php5.y:4420 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6857,7 +6859,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4428 +// line internal/php5/php5.y:4430 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6869,7 +6871,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4438 +// line internal/php5/php5.y:4440 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6881,7 +6883,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4448 +// line internal/php5/php5.y:4450 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6893,7 +6895,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4460 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6905,7 +6907,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4468 +// line internal/php5/php5.y:4470 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6919,7 +6921,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4480 +// line internal/php5/php5.y:4482 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6931,7 +6933,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4493 +// line internal/php5/php5.y:4495 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6947,25 +6949,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4512 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4517 +// line internal/php5/php5.y:4519 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4521 +// line internal/php5/php5.y:4523 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4525 +// line internal/php5/php5.y:4527 { name := &ast.NameName{ Node: ast.Node{ @@ -6980,7 +6982,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4538 +// line internal/php5/php5.y:4540 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6997,7 +6999,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4553 +// line internal/php5/php5.y:4555 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7013,7 +7015,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4567 +// line internal/php5/php5.y:4569 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7027,7 +7029,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4579 +// line internal/php5/php5.y:4581 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7040,13 +7042,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4590 +// line internal/php5/php5.y:4592 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4594 +// line internal/php5/php5.y:4596 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7058,13 +7060,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4604 +// line internal/php5/php5.y:4606 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4611 +// line internal/php5/php5.y:4613 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7079,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4624 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7090,7 +7092,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4633 +// line internal/php5/php5.y:4635 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7105,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4644 +// line internal/php5/php5.y:4646 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7116,7 +7118,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4655 +// line internal/php5/php5.y:4657 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7129,7 +7131,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4666 +// line internal/php5/php5.y:4668 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7142,7 +7144,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4677 +// line internal/php5/php5.y:4679 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7155,7 +7157,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4688 +// line internal/php5/php5.y:4690 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7167,7 +7169,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4698 +// line internal/php5/php5.y:4700 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7179,7 +7181,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4708 +// line internal/php5/php5.y:4710 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7192,7 +7194,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4719 +// line internal/php5/php5.y:4721 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7205,7 +7207,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4730 +// line internal/php5/php5.y:4732 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7218,7 +7220,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4741 +// line internal/php5/php5.y:4743 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7231,7 +7233,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4752 +// line internal/php5/php5.y:4754 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7244,7 +7246,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4763 +// line internal/php5/php5.y:4765 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7257,7 +7259,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4774 +// line internal/php5/php5.y:4776 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7270,7 +7272,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4785 +// line internal/php5/php5.y:4787 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7283,7 +7285,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4796 +// line internal/php5/php5.y:4798 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7298,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4809 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7311,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4818 +// line internal/php5/php5.y:4820 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7324,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4829 +// line internal/php5/php5.y:4831 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7335,7 +7337,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4840 +// line internal/php5/php5.y:4842 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7348,7 +7350,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4851 +// line internal/php5/php5.y:4853 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7361,7 +7363,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4862 +// line internal/php5/php5.y:4864 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7377,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4874 +// line internal/php5/php5.y:4876 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7390,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4885 +// line internal/php5/php5.y:4887 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7401,7 +7403,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4896 +// line internal/php5/php5.y:4898 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7414,7 +7416,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4907 +// line internal/php5/php5.y:4909 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7427,7 +7429,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4918 +// line internal/php5/php5.y:4920 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7441,7 +7443,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4930 +// line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7455,7 +7457,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4942 +// line internal/php5/php5.y:4944 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7467,7 +7469,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4952 +// line internal/php5/php5.y:4954 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7479,7 +7481,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4962 +// line internal/php5/php5.y:4964 { yyVAL.node = yyDollar[2].node @@ -7489,13 +7491,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4973 +// line internal/php5/php5.y:4975 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4977 +// line internal/php5/php5.y:4979 { name := &ast.NameName{ Node: ast.Node{ @@ -7510,7 +7512,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4990 +// line internal/php5/php5.y:4992 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7527,7 +7529,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5005 +// line internal/php5/php5.y:5007 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7543,7 +7545,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5022 +// line internal/php5/php5.y:5024 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7557,25 +7559,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5034 +// line internal/php5/php5.y:5036 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5038 +// line internal/php5/php5.y:5040 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5042 +// line internal/php5/php5.y:5044 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5046 +// line internal/php5/php5.y:5048 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7587,7 +7589,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5056 +// line internal/php5/php5.y:5058 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7599,7 +7601,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5066 +// line internal/php5/php5.y:5068 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7611,13 +7613,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5079 +// line internal/php5/php5.y:5081 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5083 +// line internal/php5/php5.y:5085 { yyVAL.list = yyDollar[1].list @@ -7628,19 +7630,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5095 +// line internal/php5/php5.y:5097 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5099 +// line internal/php5/php5.y:5101 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5106 +// line internal/php5/php5.y:5108 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7655,7 +7657,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5119 +// line internal/php5/php5.y:5121 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7669,7 +7671,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5131 +// line internal/php5/php5.y:5133 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7683,7 +7685,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5143 +// line internal/php5/php5.y:5145 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7696,19 +7698,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5157 +// line internal/php5/php5.y:5159 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5161 +// line internal/php5/php5.y:5163 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5168 +// line internal/php5/php5.y:5170 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7725,7 +7727,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5183 +// line internal/php5/php5.y:5185 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7742,25 +7744,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5202 +// line internal/php5/php5.y:5204 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5210 +// line internal/php5/php5.y:5212 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5219 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5224 +// line internal/php5/php5.y:5226 { yyVAL.node = yyDollar[1].node @@ -7818,25 +7820,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5280 +// line internal/php5/php5.y:5282 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5287 +// line internal/php5/php5.y:5289 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5291 +// line internal/php5/php5.y:5293 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5299 +// line internal/php5/php5.y:5301 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7850,7 +7852,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5314 +// line internal/php5/php5.y:5316 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7864,7 +7866,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5326 +// line internal/php5/php5.y:5328 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7878,7 +7880,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5341 +// line internal/php5/php5.y:5343 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7887,31 +7889,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5351 +// line internal/php5/php5.y:5353 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5355 +// line internal/php5/php5.y:5357 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5359 +// line internal/php5/php5.y:5361 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5366 +// line internal/php5/php5.y:5368 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5370 +// line internal/php5/php5.y:5372 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7923,7 +7925,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5383 +// line internal/php5/php5.y:5385 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7936,7 +7938,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5394 +// line internal/php5/php5.y:5396 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7949,13 +7951,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5408 +// line internal/php5/php5.y:5410 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5415 +// line internal/php5/php5.y:5417 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7968,7 +7970,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5426 +// line internal/php5/php5.y:5428 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7981,31 +7983,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5440 +// line internal/php5/php5.y:5442 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5444 +// line internal/php5/php5.y:5446 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5448 +// line internal/php5/php5.y:5450 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5456 +// line internal/php5/php5.y:5458 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5460 +// line internal/php5/php5.y:5462 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8017,13 +8019,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5470 +// line internal/php5/php5.y:5472 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5477 +// line internal/php5/php5.y:5479 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8036,7 +8038,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5488 +// line internal/php5/php5.y:5490 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8049,13 +8051,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5499 +// line internal/php5/php5.y:5501 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5507 +// line internal/php5/php5.y:5509 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8069,7 +8071,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5519 +// line internal/php5/php5.y:5521 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8083,25 +8085,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5534 +// line internal/php5/php5.y:5536 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5538 +// line internal/php5/php5.y:5540 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5546 +// line internal/php5/php5.y:5548 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5550 +// line internal/php5/php5.y:5552 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8111,7 +8113,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5561 +// line internal/php5/php5.y:5563 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8125,7 +8127,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5573 +// line internal/php5/php5.y:5575 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8139,7 +8141,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5585 +// line internal/php5/php5.y:5587 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8149,7 +8151,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5596 +// line internal/php5/php5.y:5598 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8161,7 +8163,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5606 +// line internal/php5/php5.y:5608 { yyVAL.node = yyDollar[2].node @@ -8174,7 +8176,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5620 +// line internal/php5/php5.y:5622 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8187,7 +8189,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5631 +// line internal/php5/php5.y:5633 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8204,7 +8206,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5649 +// line internal/php5/php5.y:5651 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8217,7 +8219,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5660 +// line internal/php5/php5.y:5662 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8227,7 +8229,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5672 +// line internal/php5/php5.y:5674 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8239,7 +8241,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5682 +// line internal/php5/php5.y:5684 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8255,19 +8257,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5696 +// line internal/php5/php5.y:5698 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5704 +// line internal/php5/php5.y:5706 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5708 +// line internal/php5/php5.y:5710 { yyVAL.list = yyDollar[1].list @@ -8282,7 +8284,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5724 +// line internal/php5/php5.y:5726 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8297,7 +8299,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5737 +// line internal/php5/php5.y:5739 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8311,7 +8313,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5749 +// line internal/php5/php5.y:5751 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8325,7 +8327,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5761 +// line internal/php5/php5.y:5763 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8338,7 +8340,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5774 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8356,7 +8358,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5788 +// line internal/php5/php5.y:5790 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8372,7 +8374,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5802 +// line internal/php5/php5.y:5804 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8389,7 +8391,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5817 +// line internal/php5/php5.y:5819 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8404,13 +8406,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5833 +// line internal/php5/php5.y:5835 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5837 +// line internal/php5/php5.y:5839 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8423,13 +8425,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5848 +// line internal/php5/php5.y:5850 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5852 +// line internal/php5/php5.y:5854 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8442,7 +8444,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5866 +// line internal/php5/php5.y:5868 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8456,7 +8458,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5878 +// line internal/php5/php5.y:5880 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8473,7 +8475,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5893 +// line internal/php5/php5.y:5895 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8492,7 +8494,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5910 +// line internal/php5/php5.y:5912 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8507,7 +8509,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5923 +// line internal/php5/php5.y:5925 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8524,7 +8526,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5938 +// line internal/php5/php5.y:5940 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8543,7 +8545,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5955 +// line internal/php5/php5.y:5957 { yyVAL.node = yyDollar[2].node @@ -8553,7 +8555,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5966 +// line internal/php5/php5.y:5968 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8565,7 +8567,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5976 +// line internal/php5/php5.y:5978 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8582,7 +8584,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5991 +// line internal/php5/php5.y:5993 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8596,7 +8598,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6006 +// line internal/php5/php5.y:6008 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8610,7 +8612,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6018 +// line internal/php5/php5.y:6020 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8632,7 +8634,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6038 +// line internal/php5/php5.y:6040 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8654,7 +8656,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6058 +// line internal/php5/php5.y:6060 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8666,7 +8668,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6068 +// line internal/php5/php5.y:6070 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8678,7 +8680,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6078 +// line internal/php5/php5.y:6080 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8700,7 +8702,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6098 +// line internal/php5/php5.y:6100 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8712,7 +8714,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6108 +// line internal/php5/php5.y:6110 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8724,13 +8726,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6121 +// line internal/php5/php5.y:6123 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6125 +// line internal/php5/php5.y:6127 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8739,19 +8741,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6135 +// line internal/php5/php5.y:6137 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6139 +// line internal/php5/php5.y:6141 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6146 +// line internal/php5/php5.y:6148 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8767,7 +8769,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6160 +// line internal/php5/php5.y:6162 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8783,7 +8785,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6177 +// line internal/php5/php5.y:6179 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8799,7 +8801,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6194 +// line internal/php5/php5.y:6196 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index b760bdc..c5e03a3 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -911,16 +911,18 @@ unticked_statement: } | T_DO statement T_WHILE parenthesis_expr ';' { - $$ = &ast.StmtDo{ast.Node{}, $2, $4} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($4, token.End, $5.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) + $$ = &ast.StmtDo{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $5), + }, + DoTkn: $1, + Stmt: $2, + WhileTkn: $3, + OpenParenthesisTkn: $4.(*ast.ParserBrackets).OpenBracketTkn, + Cond: $4.(*ast.ParserBrackets).Child, + CloseParenthesisTkn: $4.(*ast.ParserBrackets).CloseBracketTkn, + SemiColonTkn: $5, + } } | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 323095b..2862d9e 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4872 +// line internal/php7/php7.y:4865 // line yacctab:1 var yyExca = [...]int{ @@ -3200,29 +3200,22 @@ yydefault: yyDollar = yyS[yypt-7 : yypt+1] // line internal/php7/php7.y:882 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.StmtDo{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[4].token, yyDollar[6].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), }, - OpenBracketTkn: yyDollar[4].token, - Child: yyDollar[5].node, - CloseBracketTkn: yyDollar[6].token, + DoTkn: yyDollar[1].token, + Stmt: yyDollar[2].node, + WhileTkn: yyDollar[3].token, + OpenParenthesisTkn: yyDollar[4].token, + Cond: yyDollar[5].node, + CloseParenthesisTkn: yyDollar[6].token, + SemiColonTkn: yyDollar[7].token, } - yyVAL.node = &ast.StmtDo{ast.Node{}, yyDollar[2].node, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append(yyDollar[6].token.SkippedTokens, yyDollar[7].token.SkippedTokens...)) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[7].token.SkippedTokens) } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:904 +// line internal/php7/php7.y:897 { switch n := yyDollar[9].node.(type) { case *ast.StmtFor: @@ -3249,7 +3242,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:929 +// line internal/php7/php7.y:922 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -3282,7 +3275,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:960 +// line internal/php7/php7.y:953 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3296,7 +3289,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 +// line internal/php7/php7.y:965 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3310,7 +3303,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:984 +// line internal/php7/php7.y:977 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3324,7 +3317,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:996 +// line internal/php7/php7.y:989 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3338,7 +3331,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1008 +// line internal/php7/php7.y:1001 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3352,7 +3345,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1020 +// line internal/php7/php7.y:1013 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3367,7 +3360,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1033 +// line internal/php7/php7.y:1026 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3379,7 +3372,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1043 +// line internal/php7/php7.y:1036 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3393,7 +3386,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1055 +// line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3413,7 +3406,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1073 +// line internal/php7/php7.y:1066 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3437,7 +3430,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1095 +// line internal/php7/php7.y:1088 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3464,7 +3457,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1120 +// line internal/php7/php7.y:1113 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3479,7 +3472,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1133 +// line internal/php7/php7.y:1126 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3492,7 +3485,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1144 +// line internal/php7/php7.y:1137 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3509,7 +3502,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1159 +// line internal/php7/php7.y:1152 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3523,7 +3516,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1171 +// line internal/php7/php7.y:1164 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3540,7 +3533,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1186 +// line internal/php7/php7.y:1179 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3555,13 +3548,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1201 +// line internal/php7/php7.y:1194 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1205 +// line internal/php7/php7.y:1198 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3583,13 +3576,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1227 +// line internal/php7/php7.y:1220 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1231 +// line internal/php7/php7.y:1224 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3603,13 +3596,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1243 +// line internal/php7/php7.y:1236 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1247 +// line internal/php7/php7.y:1240 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3623,13 +3616,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1262 +// line internal/php7/php7.y:1255 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1266 +// line internal/php7/php7.y:1259 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3638,13 +3631,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1276 +// line internal/php7/php7.y:1269 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1283 +// line internal/php7/php7.y:1276 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3674,31 +3667,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1314 +// line internal/php7/php7.y:1307 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1318 +// line internal/php7/php7.y:1311 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1325 +// line internal/php7/php7.y:1318 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1329 +// line internal/php7/php7.y:1322 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1336 +// line internal/php7/php7.y:1329 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3716,7 +3709,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1352 +// line internal/php7/php7.y:1345 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3733,19 +3726,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1370 +// line internal/php7/php7.y:1363 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1374 +// line internal/php7/php7.y:1367 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1381 +// line internal/php7/php7.y:1374 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3757,7 +3750,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1391 +// line internal/php7/php7.y:1384 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3769,7 +3762,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1404 +// line internal/php7/php7.y:1397 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3786,7 +3779,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1422 +// line internal/php7/php7.y:1415 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3803,13 +3796,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1440 +// line internal/php7/php7.y:1433 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1444 +// line internal/php7/php7.y:1437 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3821,13 +3814,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1457 +// line internal/php7/php7.y:1450 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1461 +// line internal/php7/php7.y:1454 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3839,13 +3832,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1474 +// line internal/php7/php7.y:1467 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1478 +// line internal/php7/php7.y:1471 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3857,13 +3850,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1491 +// line internal/php7/php7.y:1484 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1495 +// line internal/php7/php7.y:1488 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3875,7 +3868,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1505 +// line internal/php7/php7.y:1498 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3889,7 +3882,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1517 +// line internal/php7/php7.y:1510 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3902,7 +3895,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1531 +// line internal/php7/php7.y:1524 { yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3911,7 +3904,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1538 +// line internal/php7/php7.y:1531 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3932,7 +3925,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1560 +// line internal/php7/php7.y:1553 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3941,7 +3934,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1567 +// line internal/php7/php7.y:1560 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3962,7 +3955,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1589 +// line internal/php7/php7.y:1582 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3971,7 +3964,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1596 +// line internal/php7/php7.y:1589 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3992,7 +3985,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1618 +// line internal/php7/php7.y:1611 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4007,7 +4000,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1631 +// line internal/php7/php7.y:1624 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4023,7 +4016,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1645 +// line internal/php7/php7.y:1638 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4040,7 +4033,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1660 +// line internal/php7/php7.y:1653 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4059,13 +4052,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1680 +// line internal/php7/php7.y:1673 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1684 +// line internal/php7/php7.y:1677 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4080,7 +4073,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1697 +// line internal/php7/php7.y:1690 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4095,19 +4088,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1713 +// line internal/php7/php7.y:1706 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1717 +// line internal/php7/php7.y:1710 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1724 +// line internal/php7/php7.y:1717 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4118,7 +4111,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1733 +// line internal/php7/php7.y:1726 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4138,7 +4131,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1754 +// line internal/php7/php7.y:1747 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4153,7 +4146,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1767 +// line internal/php7/php7.y:1760 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4172,13 +4165,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1787 +// line internal/php7/php7.y:1780 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1791 +// line internal/php7/php7.y:1784 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4194,7 +4187,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1808 +// line internal/php7/php7.y:1801 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4216,7 +4209,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1828 +// line internal/php7/php7.y:1821 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4240,7 +4233,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1853 +// line internal/php7/php7.y:1846 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4250,7 +4243,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1861 +// line internal/php7/php7.y:1854 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4274,25 +4267,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1886 +// line internal/php7/php7.y:1879 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1890 +// line internal/php7/php7.y:1883 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1897 +// line internal/php7/php7.y:1890 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1901 +// line internal/php7/php7.y:1894 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4301,7 +4294,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1911 +// line internal/php7/php7.y:1904 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4337,7 +4330,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1945 +// line internal/php7/php7.y:1938 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4374,25 +4367,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1983 +// line internal/php7/php7.y:1976 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1987 +// line internal/php7/php7.y:1980 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1994 +// line internal/php7/php7.y:1987 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1998 +// line internal/php7/php7.y:1991 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4404,7 +4397,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 +// line internal/php7/php7.y:2004 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4416,7 +4409,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2021 +// line internal/php7/php7.y:2014 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4428,19 +4421,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2031 +// line internal/php7/php7.y:2024 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2038 +// line internal/php7/php7.y:2031 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2042 +// line internal/php7/php7.y:2035 { yyVAL.node = yyDollar[2].node @@ -4449,7 +4442,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2052 +// line internal/php7/php7.y:2045 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4462,7 +4455,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2063 +// line internal/php7/php7.y:2056 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4479,13 +4472,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2081 +// line internal/php7/php7.y:2074 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2085 +// line internal/php7/php7.y:2078 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4494,7 +4487,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2095 +// line internal/php7/php7.y:2088 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4506,7 +4499,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2105 +// line internal/php7/php7.y:2098 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4518,7 +4511,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2118 +// line internal/php7/php7.y:2111 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4527,19 +4520,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2125 +// line internal/php7/php7.y:2118 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2132 +// line internal/php7/php7.y:2125 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2139 +// line internal/php7/php7.y:2132 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4548,13 +4541,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2146 +// line internal/php7/php7.y:2139 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2153 +// line internal/php7/php7.y:2146 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4570,7 +4563,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2167 +// line internal/php7/php7.y:2160 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4587,19 +4580,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2185 +// line internal/php7/php7.y:2178 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2189 +// line internal/php7/php7.y:2182 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2196 +// line internal/php7/php7.y:2189 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4613,7 +4606,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2208 +// line internal/php7/php7.y:2201 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4627,7 +4620,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2220 +// line internal/php7/php7.y:2213 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4639,7 +4632,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2230 +// line internal/php7/php7.y:2223 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4670,13 +4663,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2262 +// line internal/php7/php7.y:2255 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2266 +// line internal/php7/php7.y:2259 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4690,7 +4683,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2278 +// line internal/php7/php7.y:2271 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4702,7 +4695,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2288 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4714,7 +4707,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2298 +// line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4726,19 +4719,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2311 +// line internal/php7/php7.y:2304 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2315 +// line internal/php7/php7.y:2308 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2322 +// line internal/php7/php7.y:2315 { yyVAL.node = yyDollar[1].node @@ -4748,7 +4741,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2330 +// line internal/php7/php7.y:2323 { yyVAL.node = yyDollar[1].node @@ -4758,7 +4751,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2341 +// line internal/php7/php7.y:2334 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4771,7 +4764,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2355 +// line internal/php7/php7.y:2348 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4787,7 +4780,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2369 +// line internal/php7/php7.y:2362 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4803,7 +4796,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2383 +// line internal/php7/php7.y:2376 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4819,7 +4812,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2397 +// line internal/php7/php7.y:2390 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4832,7 +4825,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2411 +// line internal/php7/php7.y:2404 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4846,13 +4839,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2423 +// line internal/php7/php7.y:2416 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2430 +// line internal/php7/php7.y:2423 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4868,7 +4861,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2447 +// line internal/php7/php7.y:2440 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4881,7 +4874,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2458 +// line internal/php7/php7.y:2451 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4894,13 +4887,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2472 +// line internal/php7/php7.y:2465 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2476 +// line internal/php7/php7.y:2469 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4913,31 +4906,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2490 +// line internal/php7/php7.y:2483 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2494 +// line internal/php7/php7.y:2487 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2501 +// line internal/php7/php7.y:2494 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2505 +// line internal/php7/php7.y:2498 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2512 +// line internal/php7/php7.y:2505 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4949,7 +4942,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2522 +// line internal/php7/php7.y:2515 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4961,7 +4954,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2532 +// line internal/php7/php7.y:2525 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4973,7 +4966,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2542 +// line internal/php7/php7.y:2535 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4985,7 +4978,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2552 +// line internal/php7/php7.y:2545 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4997,7 +4990,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2562 +// line internal/php7/php7.y:2555 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5009,7 +5002,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2575 +// line internal/php7/php7.y:2568 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5018,13 +5011,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2589 +// line internal/php7/php7.y:2582 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5040,7 +5033,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2603 +// line internal/php7/php7.y:2596 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5057,7 +5050,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2621 +// line internal/php7/php7.y:2614 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5065,13 +5058,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2627 +// line internal/php7/php7.y:2620 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2634 +// line internal/php7/php7.y:2627 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5091,7 +5084,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2655 +// line internal/php7/php7.y:2648 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5111,7 +5104,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2676 +// line internal/php7/php7.y:2669 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5120,31 +5113,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2683 +// line internal/php7/php7.y:2676 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2690 +// line internal/php7/php7.y:2683 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2697 +// line internal/php7/php7.y:2690 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2701 +// line internal/php7/php7.y:2694 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2708 +// line internal/php7/php7.y:2701 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5153,13 +5146,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2715 +// line internal/php7/php7.y:2708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2722 +// line internal/php7/php7.y:2715 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5177,7 +5170,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2741 +// line internal/php7/php7.y:2734 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5192,7 +5185,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2754 +// line internal/php7/php7.y:2747 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5204,7 +5197,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2767 +// line internal/php7/php7.y:2760 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5221,7 +5214,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2782 +// line internal/php7/php7.y:2775 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5237,7 +5230,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2796 +// line internal/php7/php7.y:2789 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5250,7 +5243,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2807 +// line internal/php7/php7.y:2800 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5264,7 +5257,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2819 +// line internal/php7/php7.y:2812 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5276,7 +5269,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2829 +// line internal/php7/php7.y:2822 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5289,7 +5282,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2840 +// line internal/php7/php7.y:2833 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5302,7 +5295,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2851 +// line internal/php7/php7.y:2844 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5315,7 +5308,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2862 +// line internal/php7/php7.y:2855 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5328,7 +5321,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2873 +// line internal/php7/php7.y:2866 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5341,7 +5334,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2884 +// line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5354,7 +5347,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2895 +// line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5367,7 +5360,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2906 +// line internal/php7/php7.y:2899 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5380,7 +5373,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2917 +// line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5393,7 +5386,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2928 +// line internal/php7/php7.y:2921 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5406,7 +5399,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2939 +// line internal/php7/php7.y:2932 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5412,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2950 +// line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5432,7 +5425,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2961 +// line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5445,7 +5438,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2972 +// line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5458,7 +5451,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2983 +// line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5470,7 +5463,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2993 +// line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5483,7 +5476,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3004 +// line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5495,7 +5488,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3014 +// line internal/php7/php7.y:3007 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5508,7 +5501,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3025 +// line internal/php7/php7.y:3018 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5521,7 +5514,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3036 +// line internal/php7/php7.y:3029 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5534,7 +5527,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3047 +// line internal/php7/php7.y:3040 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5547,7 +5540,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3058 +// line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5560,7 +5553,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3069 +// line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5573,7 +5566,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3080 +// line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5586,7 +5579,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3091 +// line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5599,7 +5592,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3102 +// line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5612,7 +5605,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3113 +// line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5625,7 +5618,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3124 +// line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5638,7 +5631,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3135 +// line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5651,7 +5644,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3146 +// line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5664,7 +5657,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3157 +// line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5677,7 +5670,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3168 +// line internal/php7/php7.y:3161 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5690,7 +5683,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3179 +// line internal/php7/php7.y:3172 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,7 +5696,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3190 +// line internal/php7/php7.y:3183 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5716,7 +5709,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3201 +// line internal/php7/php7.y:3194 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5728,7 +5721,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3211 +// line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5740,7 +5733,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3221 +// line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5752,7 +5745,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3231 +// line internal/php7/php7.y:3224 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5764,7 +5757,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3241 +// line internal/php7/php7.y:3234 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,7 +5770,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3252 +// line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5783,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3263 +// line internal/php7/php7.y:3256 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5796,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3274 +// line internal/php7/php7.y:3267 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5817,7 +5810,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3286 +// line internal/php7/php7.y:3279 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5830,7 +5823,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3297 +// line internal/php7/php7.y:3290 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5836,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3308 +// line internal/php7/php7.y:3301 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5856,7 +5849,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3319 +// line internal/php7/php7.y:3312 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5869,7 +5862,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3330 +// line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5882,7 +5875,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3341 +// line internal/php7/php7.y:3334 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5895,7 +5888,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3352 +// line internal/php7/php7.y:3345 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5912,13 +5905,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3367 +// line internal/php7/php7.y:3360 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3371 +// line internal/php7/php7.y:3364 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5932,7 +5925,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3383 +// line internal/php7/php7.y:3376 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5946,7 +5939,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3395 +// line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5959,13 +5952,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3406 +// line internal/php7/php7.y:3399 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3410 +// line internal/php7/php7.y:3403 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5978,7 +5971,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3421 +// line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5991,7 +5984,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3432 +// line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6004,7 +5997,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3443 +// line internal/php7/php7.y:3436 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6017,7 +6010,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3454 +// line internal/php7/php7.y:3447 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6030,7 +6023,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3465 +// line internal/php7/php7.y:3458 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6043,7 +6036,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3476 +// line internal/php7/php7.y:3469 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6056,7 +6049,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3487 +// line internal/php7/php7.y:3480 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6076,7 +6069,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3505 +// line internal/php7/php7.y:3498 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6088,13 +6081,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3515 +// line internal/php7/php7.y:3508 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3519 +// line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6106,7 +6099,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3529 +// line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6118,7 +6111,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3539 +// line internal/php7/php7.y:3532 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6130,7 +6123,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3549 +// line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6142,7 +6135,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3559 +// line internal/php7/php7.y:3552 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6155,7 +6148,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3570 +// line internal/php7/php7.y:3563 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6167,13 +6160,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3580 +// line internal/php7/php7.y:3573 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3584 +// line internal/php7/php7.y:3577 { yyVAL.node = yyDollar[2].node @@ -6194,7 +6187,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3605 +// line internal/php7/php7.y:3598 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6225,7 +6218,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3632 +// line internal/php7/php7.y:3625 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6251,25 +6244,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3662 +// line internal/php7/php7.y:3655 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3666 +// line internal/php7/php7.y:3659 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3673 +// line internal/php7/php7.y:3666 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3677 +// line internal/php7/php7.y:3670 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6283,7 +6276,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3692 +// line internal/php7/php7.y:3685 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6292,13 +6285,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3699 +// line internal/php7/php7.y:3692 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3706 +// line internal/php7/php7.y:3699 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6312,7 +6305,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3718 +// line internal/php7/php7.y:3711 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6329,7 +6322,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3736 +// line internal/php7/php7.y:3729 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6341,7 +6334,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3746 +// line internal/php7/php7.y:3739 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6354,7 +6347,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3757 +// line internal/php7/php7.y:3750 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6367,7 +6360,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3768 +// line internal/php7/php7.y:3761 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6379,7 +6372,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3781 +// line internal/php7/php7.y:3774 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6391,31 +6384,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3791 +// line internal/php7/php7.y:3784 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3798 +// line internal/php7/php7.y:3791 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3802 +// line internal/php7/php7.y:3795 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3809 +// line internal/php7/php7.y:3802 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3813 +// line internal/php7/php7.y:3806 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6432,13 +6425,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3831 +// line internal/php7/php7.y:3824 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3835 +// line internal/php7/php7.y:3828 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6448,25 +6441,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3843 +// line internal/php7/php7.y:3836 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3850 +// line internal/php7/php7.y:3843 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3854 +// line internal/php7/php7.y:3847 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3861 +// line internal/php7/php7.y:3854 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6480,7 +6473,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3873 +// line internal/php7/php7.y:3866 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6493,7 +6486,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3884 +// line internal/php7/php7.y:3877 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6505,7 +6498,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3897 +// line internal/php7/php7.y:3890 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6517,7 +6510,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3907 +// line internal/php7/php7.y:3900 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6529,7 +6522,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3917 +// line internal/php7/php7.y:3910 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6541,7 +6534,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3927 +// line internal/php7/php7.y:3920 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6553,7 +6546,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3937 +// line internal/php7/php7.y:3930 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6565,7 +6558,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3947 +// line internal/php7/php7.y:3940 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6577,7 +6570,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3957 +// line internal/php7/php7.y:3950 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6589,7 +6582,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3967 +// line internal/php7/php7.y:3960 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6601,7 +6594,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3977 +// line internal/php7/php7.y:3970 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6613,7 +6606,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3987 +// line internal/php7/php7.y:3980 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6625,7 +6618,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3997 +// line internal/php7/php7.y:3990 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6639,7 +6632,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4009 +// line internal/php7/php7.y:4002 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6651,7 +6644,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4019 +// line internal/php7/php7.y:4012 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6663,7 +6656,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4029 +// line internal/php7/php7.y:4022 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6675,19 +6668,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4039 +// line internal/php7/php7.y:4032 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4043 +// line internal/php7/php7.y:4036 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4050 +// line internal/php7/php7.y:4043 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6699,7 +6692,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4060 +// line internal/php7/php7.y:4053 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6715,7 +6708,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4074 +// line internal/php7/php7.y:4067 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6731,43 +6724,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4091 +// line internal/php7/php7.y:4084 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4095 +// line internal/php7/php7.y:4088 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4102 +// line internal/php7/php7.y:4095 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4106 +// line internal/php7/php7.y:4099 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4113 +// line internal/php7/php7.y:4106 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4120 +// line internal/php7/php7.y:4113 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4124 +// line internal/php7/php7.y:4117 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6784,19 +6777,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4139 +// line internal/php7/php7.y:4132 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4146 +// line internal/php7/php7.y:4139 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4150 +// line internal/php7/php7.y:4143 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6813,19 +6806,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4165 +// line internal/php7/php7.y:4158 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4172 +// line internal/php7/php7.y:4165 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4176 +// line internal/php7/php7.y:4169 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6838,7 +6831,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4187 +// line internal/php7/php7.y:4180 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6851,7 +6844,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4198 +// line internal/php7/php7.y:4191 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6864,7 +6857,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4209 +// line internal/php7/php7.y:4202 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6877,25 +6870,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4220 +// line internal/php7/php7.y:4213 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4227 +// line internal/php7/php7.y:4220 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4231 +// line internal/php7/php7.y:4224 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4235 +// line internal/php7/php7.y:4228 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6908,7 +6901,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4249 +// line internal/php7/php7.y:4242 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6922,7 +6915,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4261 +// line internal/php7/php7.y:4254 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6936,7 +6929,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4273 +// line internal/php7/php7.y:4266 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6948,7 +6941,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4286 +// line internal/php7/php7.y:4279 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6961,7 +6954,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4297 +// line internal/php7/php7.y:4290 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6974,13 +6967,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4311 +// line internal/php7/php7.y:4304 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4315 +// line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6993,7 +6986,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4326 +// line internal/php7/php7.y:4319 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7006,7 +6999,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4337 +// line internal/php7/php7.y:4330 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7019,7 +7012,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4348 +// line internal/php7/php7.y:4341 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7032,7 +7025,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4359 +// line internal/php7/php7.y:4352 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7045,7 +7038,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4373 +// line internal/php7/php7.y:4366 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7057,7 +7050,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4383 +// line internal/php7/php7.y:4376 { yyVAL.node = yyDollar[2].node @@ -7067,13 +7060,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4391 +// line internal/php7/php7.y:4384 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4398 +// line internal/php7/php7.y:4391 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7085,7 +7078,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4408 +// line internal/php7/php7.y:4401 { yyVAL.node = yyDollar[2].node @@ -7095,31 +7088,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4416 +// line internal/php7/php7.y:4409 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4423 +// line internal/php7/php7.y:4416 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4430 +// line internal/php7/php7.y:4423 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4434 +// line internal/php7/php7.y:4427 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4441 +// line internal/php7/php7.y:4434 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7132,7 +7125,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4452 +// line internal/php7/php7.y:4445 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7142,7 +7135,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4463 +// line internal/php7/php7.y:4456 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7155,7 +7148,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4474 +// line internal/php7/php7.y:4467 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7167,7 +7160,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4484 +// line internal/php7/php7.y:4477 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7183,7 +7176,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4498 +// line internal/php7/php7.y:4491 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7197,7 +7190,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4510 +// line internal/php7/php7.y:4503 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7209,7 +7202,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4520 +// line internal/php7/php7.y:4513 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7228,7 +7221,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4537 +// line internal/php7/php7.y:4530 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7245,13 +7238,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4555 +// line internal/php7/php7.y:4548 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4559 +// line internal/php7/php7.y:4552 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7264,13 +7257,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4570 +// line internal/php7/php7.y:4563 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4574 +// line internal/php7/php7.y:4567 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7283,7 +7276,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4588 +// line internal/php7/php7.y:4581 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7297,7 +7290,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4600 +// line internal/php7/php7.y:4593 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7314,7 +7307,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4615 +// line internal/php7/php7.y:4608 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7333,7 +7326,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4632 +// line internal/php7/php7.y:4625 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7348,7 +7341,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4645 +// line internal/php7/php7.y:4638 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7365,7 +7358,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4660 +// line internal/php7/php7.y:4653 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7384,7 +7377,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4677 +// line internal/php7/php7.y:4670 { yyVAL.node = yyDollar[2].node @@ -7394,7 +7387,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4688 +// line internal/php7/php7.y:4681 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7406,7 +7399,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4698 +// line internal/php7/php7.y:4691 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7423,7 +7416,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4713 +// line internal/php7/php7.y:4706 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7449,7 +7442,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4737 +// line internal/php7/php7.y:4730 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7463,7 +7456,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4752 +// line internal/php7/php7.y:4745 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7481,7 +7474,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4768 +// line internal/php7/php7.y:4761 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7503,7 +7496,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4788 +// line internal/php7/php7.y:4781 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7515,7 +7508,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4798 +// line internal/php7/php7.y:4791 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7527,7 +7520,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4808 +// line internal/php7/php7.y:4801 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7549,7 +7542,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4828 +// line internal/php7/php7.y:4821 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7561,7 +7554,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4838 +// line internal/php7/php7.y:4831 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7573,13 +7566,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4851 +// line internal/php7/php7.y:4844 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4855 +// line internal/php7/php7.y:4848 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7588,7 +7581,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4865 +// line internal/php7/php7.y:4858 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index bc12e9f..e1914fe 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -880,25 +880,18 @@ statement: } | T_DO statement T_WHILE '(' expr ')' ';' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.StmtDo{ Node: ast.Node{ - Position: position.NewTokensPosition($4, $6), + Position: position.NewTokensPosition($1, $7), }, - OpenBracketTkn: $4, - Child: $5, - CloseBracketTkn: $6, + DoTkn: $1, + Stmt: $2, + WhileTkn: $3, + OpenParenthesisTkn: $4, + Cond: $5, + CloseParenthesisTkn: $6, + SemiColonTkn: $7, } - $$ = &ast.StmtDo{ast.Node{}, $2, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $7) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating(exprBrackets, token.End, append($6.SkippedTokens, $7.SkippedTokens...)) - yylex.(*Parser).setToken($$, token.SemiColon, $7.SkippedTokens) } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 80ca23e..017d979 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -378,8 +378,13 @@ func (n *StmtDefault) Accept(v NodeVisitor) { // StmtDo node type StmtDo struct { Node - Stmt Vertex - Cond Vertex + DoTkn *token.Token + Stmt Vertex + WhileTkn *token.Token + OpenParenthesisTkn *token.Token + Cond Vertex + CloseParenthesisTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtDo) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index 20ed98d..83f9cb2 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -13,16 +13,6 @@ func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { return true } -func (v *FilterParserNodes) StmtDo(n *ast.StmtDo) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - func (v *FilterParserNodes) StmtSwitch(n *ast.StmtSwitch) { for { if nn, ok := n.Cond.(*ast.ParserBrackets); ok { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 620b703..3d60dd5 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -122,3 +122,11 @@ func (v *FilterTokens) StmtWhile(n *ast.StmtWhile) { n.EndWhileTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtDo(n *ast.StmtDo) { + n.DoTkn = nil + n.WhileTkn = nil + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index 6bb07ea..a193202 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -2343,7 +2343,7 @@ func TestPrintAltWhile(t *testing.T) { p.Print(&ast.StmtNamespace{ Stmts: []ast.Vertex{ &ast.StmtWhile{ - Alt: true, + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 8275817..e678ae6 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2361,42 +2361,17 @@ func (p *Printer) printStmtDefault(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtDo(n ast.Vertex) { - nn := n.(*ast.StmtDo) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtDo(n *ast.StmtDo) { + p.printToken(n.DoTkn, "do") + p.bufStart = " " - io.WriteString(p.w, "do") + p.Print(n.Stmt) - if _, ok := nn.Stmt.(*ast.StmtStmtList); !ok { - if nn.Stmt.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - } - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, token.Stmts) - - io.WriteString(p.w, "while") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") - } - - p.Print(nn.Cond) - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") - } - - p.printFreeFloating(nn, token.Cond) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) + p.printToken(n.WhileTkn, "while") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtEcho(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 1af1e60..ce35495 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -945,7 +945,8 @@ func TestParseAndPrintPhp5Declare(t *testing.T) { } func TestParseAndPrintPhp5DoWhile(t *testing.T) { - src := ` Date: Fri, 4 Sep 2020 11:37:17 +0300 Subject: [PATCH 054/140] [refactoring] update ast structure of "For" node --- internal/php5/parser_test.go | 3 +- internal/php5/php5.go | 1002 +++++++++++------------ internal/php5/php5.y | 64 +- internal/php5/php5_test.go | 3 +- internal/php7/parser_test.go | 3 +- internal/php7/php7.go | 778 +++++++++--------- internal/php7/php7.y | 64 +- internal/php7/php7_test.go | 3 +- pkg/ast/ast.go | 1 - pkg/ast/node.go | 30 +- pkg/ast/traverser/dfs.go | 33 - pkg/ast/visitor/dump.go | 11 +- pkg/ast/visitor/filter_parser_nodes.go | 38 - pkg/ast/visitor/filter_tokens.go | 11 + pkg/ast/visitor/null.go | 4 - pkg/printer/pretty_printer.go | 45 +- pkg/printer/pretty_printer_test.go | 3 +- pkg/printer/printer.go | 86 +- pkg/printer/printer_parsed_php5_test.go | 6 +- pkg/printer/printer_parsed_php7_test.go | 6 +- pkg/printer/printer_test.go | 3 +- 21 files changed, 1041 insertions(+), 1156 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 725f642..1af3152 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -6141,7 +6141,7 @@ func TestStmtFor_Alt(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltFor{ + &ast.StmtFor{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -6150,6 +6150,7 @@ func TestStmtFor_Alt(t *testing.T) { EndPos: 33, }, }, + Alt: true, Cond: []ast.Vertex{ &ast.ExprBinarySmaller{ Node: ast.Node{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index a5870d0..90079ef 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6211 +// line internal/php5/php5.y:6201 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3028,32 +3028,21 @@ yydefault: yyDollar = yyS[yypt-9 : yypt+1] // line internal/php5/php5.y:928 { - switch n := yyDollar[9].node.(type) { - case *ast.StmtFor: - n.Init = yyDollar[3].list - n.Cond = yyDollar[5].list - n.Loop = yyDollar[7].list - case *ast.StmtAltFor: - n.Init = yyDollar[3].list - n.Cond = yyDollar[5].list - n.Loop = yyDollar[7].list - } + yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token + yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token + yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].list + yyDollar[9].node.(*ast.StmtFor).InitSemiColonTkn = yyDollar[4].token + yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].list + yyDollar[9].node.(*ast.StmtFor).CondSemiColonTkn = yyDollar[6].token + yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].list + yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token + yyDollar[9].node.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.SkippedTokens) } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:953 +// line internal/php5/php5.y:942 { switch n := yyDollar[3].node.(type) { case *ast.StmtSwitch: @@ -3074,7 +3063,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:972 +// line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3088,7 +3077,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:984 +// line internal/php5/php5.y:973 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3102,7 +3091,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:996 +// line internal/php5/php5.y:985 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3116,7 +3105,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1008 +// line internal/php5/php5.y:997 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3130,7 +3119,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1020 +// line internal/php5/php5.y:1009 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3144,7 +3133,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1032 +// line internal/php5/php5.y:1021 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3158,7 +3147,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1044 +// line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3172,7 +3161,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1056 +// line internal/php5/php5.y:1045 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3186,7 +3175,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1068 +// line internal/php5/php5.y:1057 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3200,7 +3189,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1080 +// line internal/php5/php5.y:1069 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3214,7 +3203,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1092 +// line internal/php5/php5.y:1081 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3229,7 +3218,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1105 +// line internal/php5/php5.y:1094 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3241,7 +3230,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1115 +// line internal/php5/php5.y:1104 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3255,7 +3244,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1127 +// line internal/php5/php5.y:1116 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3271,7 +3260,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1141 +// line internal/php5/php5.y:1130 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3312,7 +3301,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1179 +// line internal/php5/php5.y:1168 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3353,7 +3342,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1217 +// line internal/php5/php5.y:1206 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3368,7 +3357,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1230 +// line internal/php5/php5.y:1219 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3381,7 +3370,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1241 +// line internal/php5/php5.y:1230 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3399,7 +3388,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1257 +// line internal/php5/php5.y:1246 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3413,7 +3402,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1269 +// line internal/php5/php5.y:1258 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3430,13 +3419,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1287 +// line internal/php5/php5.y:1276 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1291 +// line internal/php5/php5.y:1280 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3458,13 +3447,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1314 +// line internal/php5/php5.y:1303 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1318 +// line internal/php5/php5.y:1307 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3478,31 +3467,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1333 +// line internal/php5/php5.y:1322 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1337 +// line internal/php5/php5.y:1326 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1344 +// line internal/php5/php5.y:1333 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1348 +// line internal/php5/php5.y:1337 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1355 +// line internal/php5/php5.y:1344 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3523,13 +3512,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1377 +// line internal/php5/php5.y:1366 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1381 +// line internal/php5/php5.y:1370 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3538,49 +3527,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1391 +// line internal/php5/php5.y:1380 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1398 +// line internal/php5/php5.y:1387 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1405 +// line internal/php5/php5.y:1394 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1412 +// line internal/php5/php5.y:1401 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1416 +// line internal/php5/php5.y:1405 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1423 +// line internal/php5/php5.y:1412 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1427 +// line internal/php5/php5.y:1416 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1434 +// line internal/php5/php5.y:1423 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3604,7 +3593,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1459 +// line internal/php5/php5.y:1448 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3632,7 +3621,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1485 +// line internal/php5/php5.y:1474 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3649,7 +3638,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1504 +// line internal/php5/php5.y:1493 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3661,7 +3650,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1514 +// line internal/php5/php5.y:1503 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3676,7 +3665,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1527 +// line internal/php5/php5.y:1516 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3688,7 +3677,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1537 +// line internal/php5/php5.y:1526 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3703,13 +3692,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1553 +// line internal/php5/php5.y:1542 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1557 +// line internal/php5/php5.y:1546 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3721,19 +3710,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1570 +// line internal/php5/php5.y:1559 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1577 +// line internal/php5/php5.y:1566 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1581 +// line internal/php5/php5.y:1570 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3745,13 +3734,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1594 +// line internal/php5/php5.y:1583 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1598 +// line internal/php5/php5.y:1587 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3763,13 +3752,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1611 +// line internal/php5/php5.y:1600 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1615 +// line internal/php5/php5.y:1604 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3783,13 +3772,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1627 +// line internal/php5/php5.y:1616 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1631 +// line internal/php5/php5.y:1620 { yyVAL.node = yyDollar[2].node @@ -3798,13 +3787,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1641 +// line internal/php5/php5.y:1630 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1645 +// line internal/php5/php5.y:1634 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3816,7 +3805,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1655 +// line internal/php5/php5.y:1644 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3830,37 +3819,38 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1670 +// line internal/php5/php5.y:1659 { - yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtFor{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1677 +// line internal/php5/php5.y:1668 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtFor{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndForTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1699 +// line internal/php5/php5.y:1689 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3869,7 +3859,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1706 +// line internal/php5/php5.y:1696 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3890,7 +3880,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1729 +// line internal/php5/php5.y:1719 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3899,7 +3889,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1736 +// line internal/php5/php5.y:1726 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3920,7 +3910,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1759 +// line internal/php5/php5.y:1749 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3942,7 +3932,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1779 +// line internal/php5/php5.y:1769 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3963,7 +3953,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1802 +// line internal/php5/php5.y:1792 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3978,7 +3968,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1815 +// line internal/php5/php5.y:1805 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -3994,7 +3984,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1829 +// line internal/php5/php5.y:1819 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4011,7 +4001,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1844 +// line internal/php5/php5.y:1834 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4030,13 +4020,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1865 +// line internal/php5/php5.y:1855 { yyVAL.list = []ast.Vertex{} } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1869 +// line internal/php5/php5.y:1859 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4051,7 +4041,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1882 +// line internal/php5/php5.y:1872 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4066,19 +4056,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1899 +// line internal/php5/php5.y:1889 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1903 +// line internal/php5/php5.y:1893 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1911 +// line internal/php5/php5.y:1901 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4089,7 +4079,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1920 +// line internal/php5/php5.y:1910 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4109,13 +4099,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1943 +// line internal/php5/php5.y:1933 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1947 +// line internal/php5/php5.y:1937 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4130,13 +4120,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1964 +// line internal/php5/php5.y:1954 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1968 +// line internal/php5/php5.y:1958 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4158,13 +4148,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1992 +// line internal/php5/php5.y:1982 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1996 +// line internal/php5/php5.y:1986 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4176,13 +4166,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2010 +// line internal/php5/php5.y:2000 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2014 +// line internal/php5/php5.y:2004 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4201,25 +4191,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2035 +// line internal/php5/php5.y:2025 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2039 +// line internal/php5/php5.y:2029 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2046 +// line internal/php5/php5.y:2036 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2050 +// line internal/php5/php5.y:2040 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4228,7 +4218,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2060 +// line internal/php5/php5.y:2050 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4264,7 +4254,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2094 +// line internal/php5/php5.y:2084 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4301,13 +4291,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2133 +// line internal/php5/php5.y:2123 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2137 +// line internal/php5/php5.y:2127 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4319,7 +4309,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2147 +// line internal/php5/php5.y:2137 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4331,13 +4321,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2157 +// line internal/php5/php5.y:2147 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2165 +// line internal/php5/php5.y:2155 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4350,7 +4340,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2176 +// line internal/php5/php5.y:2166 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4363,7 +4353,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2187 +// line internal/php5/php5.y:2177 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4378,13 +4368,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2204 +// line internal/php5/php5.y:2194 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2208 +// line internal/php5/php5.y:2198 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4393,7 +4383,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2218 +// line internal/php5/php5.y:2208 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4405,7 +4395,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2228 +// line internal/php5/php5.y:2218 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4417,7 +4407,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2238 +// line internal/php5/php5.y:2228 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4429,7 +4419,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2248 +// line internal/php5/php5.y:2238 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4441,7 +4431,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2261 +// line internal/php5/php5.y:2251 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4450,13 +4440,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2268 +// line internal/php5/php5.y:2258 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2276 +// line internal/php5/php5.y:2266 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4470,7 +4460,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2288 +// line internal/php5/php5.y:2278 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4482,7 +4472,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2298 +// line internal/php5/php5.y:2288 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4496,7 +4486,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2314 +// line internal/php5/php5.y:2304 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4514,7 +4504,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2330 +// line internal/php5/php5.y:2320 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4533,7 +4523,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2347 +// line internal/php5/php5.y:2337 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4550,7 +4540,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2362 +// line internal/php5/php5.y:2352 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4568,19 +4558,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2382 +// line internal/php5/php5.y:2372 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2386 +// line internal/php5/php5.y:2376 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2394 +// line internal/php5/php5.y:2384 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4594,7 +4584,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2406 +// line internal/php5/php5.y:2396 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4602,13 +4592,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2412 +// line internal/php5/php5.y:2402 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2416 +// line internal/php5/php5.y:2406 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4639,7 +4629,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2448 +// line internal/php5/php5.y:2438 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4651,13 +4641,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2461 +// line internal/php5/php5.y:2451 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2465 +// line internal/php5/php5.y:2455 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4671,7 +4661,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2477 +// line internal/php5/php5.y:2467 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4683,7 +4673,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2487 +// line internal/php5/php5.y:2477 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4695,31 +4685,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2500 +// line internal/php5/php5.y:2490 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2504 +// line internal/php5/php5.y:2494 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2511 +// line internal/php5/php5.y:2501 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2515 +// line internal/php5/php5.y:2505 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2522 +// line internal/php5/php5.y:2512 { yyVAL.node = yyDollar[1].node @@ -4729,7 +4719,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2530 +// line internal/php5/php5.y:2520 { yyVAL.node = yyDollar[1].node @@ -4739,7 +4729,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2541 +// line internal/php5/php5.y:2531 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4752,13 +4742,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2555 +// line internal/php5/php5.y:2545 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2559 +// line internal/php5/php5.y:2549 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4767,7 +4757,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2569 +// line internal/php5/php5.y:2559 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4781,13 +4771,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2581 +// line internal/php5/php5.y:2571 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2588 +// line internal/php5/php5.y:2578 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4803,7 +4793,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2605 +// line internal/php5/php5.y:2595 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4819,7 +4809,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2619 +// line internal/php5/php5.y:2609 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4832,19 +4822,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2633 +// line internal/php5/php5.y:2623 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2637 +// line internal/php5/php5.y:2627 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2644 +// line internal/php5/php5.y:2634 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4857,7 +4847,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2655 +// line internal/php5/php5.y:2645 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4870,13 +4860,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2669 +// line internal/php5/php5.y:2659 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2673 +// line internal/php5/php5.y:2663 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4889,31 +4879,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2687 +// line internal/php5/php5.y:2677 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2691 +// line internal/php5/php5.y:2681 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2698 +// line internal/php5/php5.y:2688 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2702 +// line internal/php5/php5.y:2692 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2709 +// line internal/php5/php5.y:2699 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4925,7 +4915,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2719 +// line internal/php5/php5.y:2709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4937,7 +4927,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2729 +// line internal/php5/php5.y:2719 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4949,7 +4939,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2739 +// line internal/php5/php5.y:2729 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4961,7 +4951,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2749 +// line internal/php5/php5.y:2739 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4973,7 +4963,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2759 +// line internal/php5/php5.y:2749 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4985,7 +4975,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2772 +// line internal/php5/php5.y:2762 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5003,7 +4993,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2788 +// line internal/php5/php5.y:2778 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5022,7 +5012,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2805 +// line internal/php5/php5.y:2795 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5039,7 +5029,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2820 +// line internal/php5/php5.y:2810 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5057,7 +5047,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2839 +// line internal/php5/php5.y:2829 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5082,7 +5072,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2862 +// line internal/php5/php5.y:2852 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5110,7 +5100,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2891 +// line internal/php5/php5.y:2881 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5119,25 +5109,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2898 +// line internal/php5/php5.y:2888 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2906 +// line internal/php5/php5.y:2896 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2910 +// line internal/php5/php5.y:2900 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2917 +// line internal/php5/php5.y:2907 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5146,25 +5136,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2924 +// line internal/php5/php5.y:2914 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2931 +// line internal/php5/php5.y:2921 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2935 +// line internal/php5/php5.y:2925 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2942 +// line internal/php5/php5.y:2932 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5178,7 +5168,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2954 +// line internal/php5/php5.y:2944 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5192,37 +5182,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2969 +// line internal/php5/php5.y:2959 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2973 +// line internal/php5/php5.y:2963 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2977 +// line internal/php5/php5.y:2967 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2984 +// line internal/php5/php5.y:2974 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2988 +// line internal/php5/php5.y:2978 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2995 +// line internal/php5/php5.y:2985 { if yyDollar[3].node != nil { @@ -5238,7 +5228,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3012 +// line internal/php5/php5.y:3002 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5255,7 +5245,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3027 +// line internal/php5/php5.y:3017 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5268,7 +5258,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3038 +// line internal/php5/php5.y:3028 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5282,7 +5272,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3050 +// line internal/php5/php5.y:3040 { var _new *ast.ExprNew @@ -5309,7 +5299,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3075 +// line internal/php5/php5.y:3065 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5321,7 +5311,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3085 +// line internal/php5/php5.y:3075 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5333,7 +5323,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3095 +// line internal/php5/php5.y:3085 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5346,7 +5336,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3106 +// line internal/php5/php5.y:3096 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5359,7 +5349,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3117 +// line internal/php5/php5.y:3107 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5372,7 +5362,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3128 +// line internal/php5/php5.y:3118 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5385,7 +5375,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3139 +// line internal/php5/php5.y:3129 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5398,7 +5388,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3150 +// line internal/php5/php5.y:3140 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5411,7 +5401,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3161 +// line internal/php5/php5.y:3151 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5424,7 +5414,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3172 +// line internal/php5/php5.y:3162 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5437,7 +5427,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3183 +// line internal/php5/php5.y:3173 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5450,7 +5440,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3194 +// line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5463,7 +5453,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3205 +// line internal/php5/php5.y:3195 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5476,7 +5466,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3216 +// line internal/php5/php5.y:3206 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5489,7 +5479,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3227 +// line internal/php5/php5.y:3217 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5501,7 +5491,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3237 +// line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5514,7 +5504,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3248 +// line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5526,7 +5516,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3258 +// line internal/php5/php5.y:3248 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5539,7 +5529,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3269 +// line internal/php5/php5.y:3259 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5552,7 +5542,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3280 +// line internal/php5/php5.y:3270 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5565,7 +5555,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3291 +// line internal/php5/php5.y:3281 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5578,7 +5568,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3302 +// line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5591,7 +5581,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3313 +// line internal/php5/php5.y:3303 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5604,7 +5594,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3324 +// line internal/php5/php5.y:3314 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5617,7 +5607,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3335 +// line internal/php5/php5.y:3325 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5630,7 +5620,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3346 +// line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5643,7 +5633,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3357 +// line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5656,7 +5646,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3368 +// line internal/php5/php5.y:3358 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5669,7 +5659,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3379 +// line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5682,7 +5672,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3390 +// line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5695,7 +5685,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3401 +// line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5708,7 +5698,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3412 +// line internal/php5/php5.y:3402 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5721,7 +5711,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3423 +// line internal/php5/php5.y:3413 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5724,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3434 +// line internal/php5/php5.y:3424 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,7 +5737,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3445 +// line internal/php5/php5.y:3435 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5759,7 +5749,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3455 +// line internal/php5/php5.y:3445 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5771,7 +5761,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3465 +// line internal/php5/php5.y:3455 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5783,7 +5773,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3475 +// line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5795,7 +5785,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3485 +// line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,7 +5798,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3496 +// line internal/php5/php5.y:3486 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5811,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3507 +// line internal/php5/php5.y:3497 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5834,7 +5824,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3518 +// line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5838,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3530 +// line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5861,7 +5851,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3541 +// line internal/php5/php5.y:3531 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5874,7 +5864,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3552 +// line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5887,7 +5877,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3563 +// line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5900,7 +5890,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3574 +// line internal/php5/php5.y:3564 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5913,19 +5903,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3585 +// line internal/php5/php5.y:3575 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3589 +// line internal/php5/php5.y:3579 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3593 +// line internal/php5/php5.y:3583 { yyVAL.node = yyDollar[2].node @@ -5957,7 +5947,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3623 +// line internal/php5/php5.y:3613 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5971,7 +5961,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3635 +// line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5985,13 +5975,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3647 +// line internal/php5/php5.y:3637 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3651 +// line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6004,7 +5994,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3662 +// line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6017,7 +6007,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3673 +// line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6030,7 +6020,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3684 +// line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6043,7 +6033,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3695 +// line internal/php5/php5.y:3685 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6056,7 +6046,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3706 +// line internal/php5/php5.y:3696 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6069,7 +6059,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3717 +// line internal/php5/php5.y:3707 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6082,7 +6072,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3728 +// line internal/php5/php5.y:3718 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6102,7 +6092,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3746 +// line internal/php5/php5.y:3736 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6114,25 +6104,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3756 +// line internal/php5/php5.y:3746 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3760 +// line internal/php5/php5.y:3750 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3764 +// line internal/php5/php5.y:3754 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3768 +// line internal/php5/php5.y:3758 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6144,7 +6134,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3778 +// line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6156,7 +6146,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3788 +// line internal/php5/php5.y:3778 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6168,7 +6158,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3798 +// line internal/php5/php5.y:3788 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6195,7 +6185,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3822 +// line internal/php5/php5.y:3812 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6223,7 +6213,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3850 +// line internal/php5/php5.y:3840 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6235,7 +6225,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3860 +// line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6247,7 +6237,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3870 +// line internal/php5/php5.y:3860 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6260,7 +6250,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3881 +// line internal/php5/php5.y:3871 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6273,7 +6263,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3895 +// line internal/php5/php5.y:3885 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6286,7 +6276,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3896 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6299,7 +6289,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3917 +// line internal/php5/php5.y:3907 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6315,7 +6305,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3931 +// line internal/php5/php5.y:3921 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6328,7 +6318,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3945 +// line internal/php5/php5.y:3935 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6342,7 +6332,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3957 +// line internal/php5/php5.y:3947 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6355,19 +6345,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3971 +// line internal/php5/php5.y:3961 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3978 +// line internal/php5/php5.y:3968 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3972 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6381,7 +6371,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3997 +// line internal/php5/php5.y:3987 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6397,7 +6387,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4011 +// line internal/php5/php5.y:4001 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6416,7 +6406,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4028 +// line internal/php5/php5.y:4018 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6431,7 +6421,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4041 +// line internal/php5/php5.y:4031 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6449,7 +6439,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4060 +// line internal/php5/php5.y:4050 { name := &ast.NameName{ Node: ast.Node{ @@ -6464,7 +6454,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4073 +// line internal/php5/php5.y:4063 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6481,7 +6471,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4088 +// line internal/php5/php5.y:4078 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6497,7 +6487,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4102 +// line internal/php5/php5.y:4092 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6510,7 +6500,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4113 +// line internal/php5/php5.y:4103 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6523,7 +6513,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4124 +// line internal/php5/php5.y:4114 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6536,7 +6526,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4135 +// line internal/php5/php5.y:4125 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6549,7 +6539,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4146 +// line internal/php5/php5.y:4136 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6561,7 +6551,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4159 +// line internal/php5/php5.y:4149 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6573,7 +6563,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4169 +// line internal/php5/php5.y:4159 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6584,7 +6574,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4178 +// line internal/php5/php5.y:4168 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6597,7 +6587,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4189 +// line internal/php5/php5.y:4179 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6609,7 +6599,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4202 +// line internal/php5/php5.y:4192 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6620,7 +6610,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4211 +// line internal/php5/php5.y:4201 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6633,7 +6623,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4222 +// line internal/php5/php5.y:4212 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6645,19 +6635,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4235 +// line internal/php5/php5.y:4225 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4239 +// line internal/php5/php5.y:4229 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4246 +// line internal/php5/php5.y:4236 { yyVAL.node = yyDollar[1].node @@ -6698,25 +6688,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4275 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4293 +// line internal/php5/php5.y:4283 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4297 +// line internal/php5/php5.y:4287 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4295 { yyVAL.list = yyDollar[2].list @@ -6725,13 +6715,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4315 +// line internal/php5/php5.y:4305 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4319 +// line internal/php5/php5.y:4309 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6747,19 +6737,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4333 +// line internal/php5/php5.y:4323 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4340 +// line internal/php5/php5.y:4330 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4344 +// line internal/php5/php5.y:4334 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6769,25 +6759,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4352 +// line internal/php5/php5.y:4342 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4359 +// line internal/php5/php5.y:4349 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4353 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4370 +// line internal/php5/php5.y:4360 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6799,7 +6789,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4380 +// line internal/php5/php5.y:4370 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6811,7 +6801,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4390 +// line internal/php5/php5.y:4380 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6823,7 +6813,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4400 +// line internal/php5/php5.y:4390 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6835,7 +6825,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4410 +// line internal/php5/php5.y:4400 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6847,7 +6837,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4420 +// line internal/php5/php5.y:4410 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6859,7 +6849,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4430 +// line internal/php5/php5.y:4420 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6871,7 +6861,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4440 +// line internal/php5/php5.y:4430 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6883,7 +6873,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4450 +// line internal/php5/php5.y:4440 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6895,7 +6885,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4460 +// line internal/php5/php5.y:4450 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6907,7 +6897,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4470 +// line internal/php5/php5.y:4460 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6921,7 +6911,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4482 +// line internal/php5/php5.y:4472 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6933,7 +6923,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4495 +// line internal/php5/php5.y:4485 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6949,25 +6939,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4512 +// line internal/php5/php5.y:4502 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4519 +// line internal/php5/php5.y:4509 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4523 +// line internal/php5/php5.y:4513 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4527 +// line internal/php5/php5.y:4517 { name := &ast.NameName{ Node: ast.Node{ @@ -6982,7 +6972,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4530 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6999,7 +6989,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4555 +// line internal/php5/php5.y:4545 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7015,7 +7005,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4569 +// line internal/php5/php5.y:4559 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7029,7 +7019,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4581 +// line internal/php5/php5.y:4571 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7042,13 +7032,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4592 +// line internal/php5/php5.y:4582 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4586 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7060,13 +7050,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4606 +// line internal/php5/php5.y:4596 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4613 +// line internal/php5/php5.y:4603 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7079,7 +7069,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4624 +// line internal/php5/php5.y:4614 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7092,7 +7082,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4635 +// line internal/php5/php5.y:4625 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7105,7 +7095,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4646 +// line internal/php5/php5.y:4636 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7118,7 +7108,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4657 +// line internal/php5/php5.y:4647 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7131,7 +7121,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4668 +// line internal/php5/php5.y:4658 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7144,7 +7134,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4679 +// line internal/php5/php5.y:4669 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7157,7 +7147,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4690 +// line internal/php5/php5.y:4680 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7169,7 +7159,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4700 +// line internal/php5/php5.y:4690 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7181,7 +7171,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4710 +// line internal/php5/php5.y:4700 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7194,7 +7184,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4721 +// line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7207,7 +7197,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4732 +// line internal/php5/php5.y:4722 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7220,7 +7210,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4743 +// line internal/php5/php5.y:4733 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7233,7 +7223,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4754 +// line internal/php5/php5.y:4744 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7246,7 +7236,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4765 +// line internal/php5/php5.y:4755 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7259,7 +7249,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4776 +// line internal/php5/php5.y:4766 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7272,7 +7262,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4787 +// line internal/php5/php5.y:4777 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7285,7 +7275,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4798 +// line internal/php5/php5.y:4788 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7298,7 +7288,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4809 +// line internal/php5/php5.y:4799 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7311,7 +7301,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4820 +// line internal/php5/php5.y:4810 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7324,7 +7314,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4831 +// line internal/php5/php5.y:4821 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7337,7 +7327,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4842 +// line internal/php5/php5.y:4832 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7350,7 +7340,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4853 +// line internal/php5/php5.y:4843 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7363,7 +7353,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4864 +// line internal/php5/php5.y:4854 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7377,7 +7367,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4876 +// line internal/php5/php5.y:4866 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7390,7 +7380,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4887 +// line internal/php5/php5.y:4877 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7403,7 +7393,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4898 +// line internal/php5/php5.y:4888 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7416,7 +7406,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4909 +// line internal/php5/php5.y:4899 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7429,7 +7419,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4920 +// line internal/php5/php5.y:4910 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7443,7 +7433,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4932 +// line internal/php5/php5.y:4922 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7457,7 +7447,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4944 +// line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7469,7 +7459,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4954 +// line internal/php5/php5.y:4944 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7481,7 +7471,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4964 +// line internal/php5/php5.y:4954 { yyVAL.node = yyDollar[2].node @@ -7491,13 +7481,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4975 +// line internal/php5/php5.y:4965 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4979 +// line internal/php5/php5.y:4969 { name := &ast.NameName{ Node: ast.Node{ @@ -7512,7 +7502,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4992 +// line internal/php5/php5.y:4982 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7529,7 +7519,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5007 +// line internal/php5/php5.y:4997 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7545,7 +7535,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5024 +// line internal/php5/php5.y:5014 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7559,25 +7549,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5036 +// line internal/php5/php5.y:5026 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5040 +// line internal/php5/php5.y:5030 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5044 +// line internal/php5/php5.y:5034 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5048 +// line internal/php5/php5.y:5038 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7589,7 +7579,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5058 +// line internal/php5/php5.y:5048 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7601,7 +7591,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5068 +// line internal/php5/php5.y:5058 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7613,13 +7603,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5081 +// line internal/php5/php5.y:5071 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5085 +// line internal/php5/php5.y:5075 { yyVAL.list = yyDollar[1].list @@ -7630,19 +7620,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5097 +// line internal/php5/php5.y:5087 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5101 +// line internal/php5/php5.y:5091 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5108 +// line internal/php5/php5.y:5098 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7657,7 +7647,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5121 +// line internal/php5/php5.y:5111 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7671,7 +7661,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5133 +// line internal/php5/php5.y:5123 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7685,7 +7675,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5145 +// line internal/php5/php5.y:5135 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7698,19 +7688,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5159 +// line internal/php5/php5.y:5149 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5163 +// line internal/php5/php5.y:5153 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5170 +// line internal/php5/php5.y:5160 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7727,7 +7717,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5185 +// line internal/php5/php5.y:5175 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7744,25 +7734,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5204 +// line internal/php5/php5.y:5194 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5212 +// line internal/php5/php5.y:5202 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5219 +// line internal/php5/php5.y:5209 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5226 +// line internal/php5/php5.y:5216 { yyVAL.node = yyDollar[1].node @@ -7820,25 +7810,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5282 +// line internal/php5/php5.y:5272 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5289 +// line internal/php5/php5.y:5279 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5293 +// line internal/php5/php5.y:5283 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5301 +// line internal/php5/php5.y:5291 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7852,7 +7842,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5316 +// line internal/php5/php5.y:5306 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7866,7 +7856,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5328 +// line internal/php5/php5.y:5318 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7880,7 +7870,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5343 +// line internal/php5/php5.y:5333 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7889,31 +7879,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5353 +// line internal/php5/php5.y:5343 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5357 +// line internal/php5/php5.y:5347 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5361 +// line internal/php5/php5.y:5351 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5368 +// line internal/php5/php5.y:5358 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5372 +// line internal/php5/php5.y:5362 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7925,7 +7915,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5385 +// line internal/php5/php5.y:5375 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7938,7 +7928,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5396 +// line internal/php5/php5.y:5386 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7951,13 +7941,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5410 +// line internal/php5/php5.y:5400 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5417 +// line internal/php5/php5.y:5407 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7970,7 +7960,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5428 +// line internal/php5/php5.y:5418 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7983,31 +7973,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5442 +// line internal/php5/php5.y:5432 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5446 +// line internal/php5/php5.y:5436 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5450 +// line internal/php5/php5.y:5440 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5458 +// line internal/php5/php5.y:5448 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5462 +// line internal/php5/php5.y:5452 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8019,13 +8009,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5472 +// line internal/php5/php5.y:5462 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5479 +// line internal/php5/php5.y:5469 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8038,7 +8028,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5490 +// line internal/php5/php5.y:5480 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8051,13 +8041,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5501 +// line internal/php5/php5.y:5491 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5509 +// line internal/php5/php5.y:5499 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8071,7 +8061,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5521 +// line internal/php5/php5.y:5511 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8085,25 +8075,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5536 +// line internal/php5/php5.y:5526 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5540 +// line internal/php5/php5.y:5530 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5548 +// line internal/php5/php5.y:5538 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5552 +// line internal/php5/php5.y:5542 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8113,7 +8103,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5563 +// line internal/php5/php5.y:5553 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8127,7 +8117,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5565 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8141,7 +8131,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5587 +// line internal/php5/php5.y:5577 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8151,7 +8141,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5598 +// line internal/php5/php5.y:5588 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8163,7 +8153,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5608 +// line internal/php5/php5.y:5598 { yyVAL.node = yyDollar[2].node @@ -8176,7 +8166,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5622 +// line internal/php5/php5.y:5612 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8189,7 +8179,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5633 +// line internal/php5/php5.y:5623 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8206,7 +8196,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5651 +// line internal/php5/php5.y:5641 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8219,7 +8209,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5662 +// line internal/php5/php5.y:5652 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8229,7 +8219,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5674 +// line internal/php5/php5.y:5664 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8241,7 +8231,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5684 +// line internal/php5/php5.y:5674 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8257,19 +8247,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5698 +// line internal/php5/php5.y:5688 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5706 +// line internal/php5/php5.y:5696 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5710 +// line internal/php5/php5.y:5700 { yyVAL.list = yyDollar[1].list @@ -8284,7 +8274,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5726 +// line internal/php5/php5.y:5716 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8299,7 +8289,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5729 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8313,7 +8303,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5751 +// line internal/php5/php5.y:5741 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8327,7 +8317,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5763 +// line internal/php5/php5.y:5753 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8340,7 +8330,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5774 +// line internal/php5/php5.y:5764 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8358,7 +8348,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5790 +// line internal/php5/php5.y:5780 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8374,7 +8364,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5804 +// line internal/php5/php5.y:5794 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8391,7 +8381,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5819 +// line internal/php5/php5.y:5809 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8406,13 +8396,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5835 +// line internal/php5/php5.y:5825 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5839 +// line internal/php5/php5.y:5829 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8425,13 +8415,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5850 +// line internal/php5/php5.y:5840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5854 +// line internal/php5/php5.y:5844 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8444,7 +8434,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5868 +// line internal/php5/php5.y:5858 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8458,7 +8448,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5880 +// line internal/php5/php5.y:5870 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8475,7 +8465,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5895 +// line internal/php5/php5.y:5885 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8494,7 +8484,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5912 +// line internal/php5/php5.y:5902 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8509,7 +8499,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5925 +// line internal/php5/php5.y:5915 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8526,7 +8516,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5940 +// line internal/php5/php5.y:5930 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8545,7 +8535,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5957 +// line internal/php5/php5.y:5947 { yyVAL.node = yyDollar[2].node @@ -8555,7 +8545,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5968 +// line internal/php5/php5.y:5958 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8567,7 +8557,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5978 +// line internal/php5/php5.y:5968 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8584,7 +8574,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5993 +// line internal/php5/php5.y:5983 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8598,7 +8588,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6008 +// line internal/php5/php5.y:5998 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8612,7 +8602,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6020 +// line internal/php5/php5.y:6010 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8634,7 +8624,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6040 +// line internal/php5/php5.y:6030 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8656,7 +8646,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6060 +// line internal/php5/php5.y:6050 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8668,7 +8658,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6070 +// line internal/php5/php5.y:6060 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8680,7 +8670,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6080 +// line internal/php5/php5.y:6070 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8702,7 +8692,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6100 +// line internal/php5/php5.y:6090 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8714,7 +8704,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6110 +// line internal/php5/php5.y:6100 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8726,13 +8716,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6123 +// line internal/php5/php5.y:6113 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6127 +// line internal/php5/php5.y:6117 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8741,19 +8731,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6137 +// line internal/php5/php5.y:6127 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6141 +// line internal/php5/php5.y:6131 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6148 +// line internal/php5/php5.y:6138 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8769,7 +8759,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6162 +// line internal/php5/php5.y:6152 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8785,7 +8775,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6179 +// line internal/php5/php5.y:6169 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8801,7 +8791,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6196 +// line internal/php5/php5.y:6186 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index c5e03a3..4bae606 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -926,28 +926,17 @@ unticked_statement: } | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement { - switch n := $9.(type) { - case *ast.StmtFor : - n.Init = $3 - n.Cond = $5 - n.Loop = $7 - case *ast.StmtAltFor : - n.Init = $3 - n.Cond = $5 - n.Loop = $7 - } + $9.(*ast.StmtFor).ForTkn = $1 + $9.(*ast.StmtFor).OpenParenthesisTkn = $2 + $9.(*ast.StmtFor).Init = $3 + $9.(*ast.StmtFor).InitSemiColonTkn = $4 + $9.(*ast.StmtFor).Cond = $5 + $9.(*ast.StmtFor).CondSemiColonTkn = $6 + $9.(*ast.StmtFor).Loop = $7 + $9.(*ast.StmtFor).CloseParenthesisTkn = $8 + $9.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition($1, $9) $$ = $9 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $9) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.For, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.SkippedTokens) } | T_SWITCH parenthesis_expr switch_case_list { @@ -1668,29 +1657,30 @@ foreach_variable: for_statement: statement { - $$ = &ast.StmtFor{ast.Node{}, nil, nil, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtFor{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDFOR ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtFor{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndForTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index de9eb19..1fdd0e7 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -4490,7 +4490,7 @@ func TestPhp5(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltFor{ + &ast.StmtFor{ Node: ast.Node{ Position: &position.Position{ StartLine: 78, @@ -4499,6 +4499,7 @@ func TestPhp5(t *testing.T) { EndPos: 1685, }, }, + Alt: true, Cond: []ast.Vertex{ &ast.ExprBinarySmaller{ Node: ast.Node{ diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 8421ca1..cfcf491 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -6738,7 +6738,7 @@ func TestStmtFor_Alt(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltFor{ + &ast.StmtFor{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -6747,6 +6747,7 @@ func TestStmtFor_Alt(t *testing.T) { EndPos: 33, }, }, + Alt: true, Cond: []ast.Vertex{ &ast.ExprBinarySmaller{ Node: ast.Node{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 2862d9e..80adf9a 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4865 +// line internal/php7/php7.y:4855 // line yacctab:1 var yyExca = [...]int{ @@ -3217,32 +3217,21 @@ yydefault: yyDollar = yyS[yypt-9 : yypt+1] // line internal/php7/php7.y:897 { - switch n := yyDollar[9].node.(type) { - case *ast.StmtFor: - n.Init = yyDollar[3].list - n.Cond = yyDollar[5].list - n.Loop = yyDollar[7].list - case *ast.StmtAltFor: - n.Init = yyDollar[3].list - n.Cond = yyDollar[5].list - n.Loop = yyDollar[7].list - } + yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token + yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token + yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].list + yyDollar[9].node.(*ast.StmtFor).InitSemiColonTkn = yyDollar[4].token + yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].list + yyDollar[9].node.(*ast.StmtFor).CondSemiColonTkn = yyDollar[6].token + yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].list + yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token + yyDollar[9].node.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.For, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.InitExpr, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CondExpr, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.IncExpr, yyDollar[8].token.SkippedTokens) } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:922 +// line internal/php7/php7.y:911 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -3275,7 +3264,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:953 +// line internal/php7/php7.y:942 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3289,7 +3278,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:965 +// line internal/php7/php7.y:954 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3303,7 +3292,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:977 +// line internal/php7/php7.y:966 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3317,7 +3306,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:989 +// line internal/php7/php7.y:978 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3331,7 +3320,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1001 +// line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3345,7 +3334,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1013 +// line internal/php7/php7.y:1002 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3360,7 +3349,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1026 +// line internal/php7/php7.y:1015 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3372,7 +3361,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1036 +// line internal/php7/php7.y:1025 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3386,7 +3375,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1048 +// line internal/php7/php7.y:1037 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3406,7 +3395,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1066 +// line internal/php7/php7.y:1055 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3430,7 +3419,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1088 +// line internal/php7/php7.y:1077 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3457,7 +3446,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1113 +// line internal/php7/php7.y:1102 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3472,7 +3461,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1126 +// line internal/php7/php7.y:1115 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3485,7 +3474,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1137 +// line internal/php7/php7.y:1126 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3502,7 +3491,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1152 +// line internal/php7/php7.y:1141 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3516,7 +3505,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1164 +// line internal/php7/php7.y:1153 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3533,7 +3522,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1179 +// line internal/php7/php7.y:1168 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3548,13 +3537,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1194 +// line internal/php7/php7.y:1183 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1198 +// line internal/php7/php7.y:1187 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3576,13 +3565,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1220 +// line internal/php7/php7.y:1209 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1224 +// line internal/php7/php7.y:1213 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3596,13 +3585,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1236 +// line internal/php7/php7.y:1225 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1240 +// line internal/php7/php7.y:1229 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3616,13 +3605,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1255 +// line internal/php7/php7.y:1244 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1259 +// line internal/php7/php7.y:1248 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3631,13 +3620,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1269 +// line internal/php7/php7.y:1258 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1276 +// line internal/php7/php7.y:1265 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3667,31 +3656,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1307 +// line internal/php7/php7.y:1296 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1311 +// line internal/php7/php7.y:1300 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1318 +// line internal/php7/php7.y:1307 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1322 +// line internal/php7/php7.y:1311 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1329 +// line internal/php7/php7.y:1318 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3709,7 +3698,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1345 +// line internal/php7/php7.y:1334 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3726,19 +3715,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1363 +// line internal/php7/php7.y:1352 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1367 +// line internal/php7/php7.y:1356 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1374 +// line internal/php7/php7.y:1363 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3750,7 +3739,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1384 +// line internal/php7/php7.y:1373 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3762,7 +3751,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1397 +// line internal/php7/php7.y:1386 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3779,7 +3768,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1415 +// line internal/php7/php7.y:1404 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3796,13 +3785,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1433 +// line internal/php7/php7.y:1422 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1437 +// line internal/php7/php7.y:1426 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3814,13 +3803,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1450 +// line internal/php7/php7.y:1439 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1454 +// line internal/php7/php7.y:1443 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3832,13 +3821,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1467 +// line internal/php7/php7.y:1456 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1471 +// line internal/php7/php7.y:1460 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3850,13 +3839,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1484 +// line internal/php7/php7.y:1473 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1488 +// line internal/php7/php7.y:1477 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3868,7 +3857,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1498 +// line internal/php7/php7.y:1487 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3882,7 +3871,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1510 +// line internal/php7/php7.y:1499 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3895,37 +3884,38 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1524 +// line internal/php7/php7.y:1513 { - yyVAL.node = &ast.StmtFor{ast.Node{}, nil, nil, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtFor{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1531 +// line internal/php7/php7.y:1522 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtFor{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndForTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1553 +// line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3934,7 +3924,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1560 +// line internal/php7/php7.y:1550 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3955,7 +3945,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1582 +// line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3964,7 +3954,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1589 +// line internal/php7/php7.y:1579 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3985,7 +3975,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1611 +// line internal/php7/php7.y:1601 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4000,7 +3990,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1624 +// line internal/php7/php7.y:1614 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} @@ -4016,7 +4006,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1638 +// line internal/php7/php7.y:1628 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} @@ -4033,7 +4023,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1653 +// line internal/php7/php7.y:1643 { caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} @@ -4052,13 +4042,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1673 +// line internal/php7/php7.y:1663 { yyVAL.list = []ast.Vertex{} } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1677 +// line internal/php7/php7.y:1667 { _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} yyVAL.list = append(yyDollar[1].list, _case) @@ -4073,7 +4063,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1690 +// line internal/php7/php7.y:1680 { _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} yyVAL.list = append(yyDollar[1].list, _default) @@ -4088,19 +4078,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1706 +// line internal/php7/php7.y:1696 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1710 +// line internal/php7/php7.y:1700 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1717 +// line internal/php7/php7.y:1707 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4111,7 +4101,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1726 +// line internal/php7/php7.y:1716 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4131,7 +4121,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1747 +// line internal/php7/php7.y:1737 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4146,7 +4136,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1760 +// line internal/php7/php7.y:1750 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4165,13 +4155,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1780 +// line internal/php7/php7.y:1770 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1784 +// line internal/php7/php7.y:1774 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4187,7 +4177,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1801 +// line internal/php7/php7.y:1791 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4209,7 +4199,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1821 +// line internal/php7/php7.y:1811 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4233,7 +4223,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1846 +// line internal/php7/php7.y:1836 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4243,7 +4233,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1854 +// line internal/php7/php7.y:1844 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4267,25 +4257,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1879 +// line internal/php7/php7.y:1869 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1883 +// line internal/php7/php7.y:1873 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1890 +// line internal/php7/php7.y:1880 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1894 +// line internal/php7/php7.y:1884 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4294,7 +4284,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1904 +// line internal/php7/php7.y:1894 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4330,7 +4320,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1938 +// line internal/php7/php7.y:1928 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4367,25 +4357,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1976 +// line internal/php7/php7.y:1966 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1980 +// line internal/php7/php7.y:1970 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1987 +// line internal/php7/php7.y:1977 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1991 +// line internal/php7/php7.y:1981 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4397,7 +4387,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2004 +// line internal/php7/php7.y:1994 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4409,7 +4399,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2014 +// line internal/php7/php7.y:2004 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4421,19 +4411,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2024 +// line internal/php7/php7.y:2014 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2031 +// line internal/php7/php7.y:2021 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2035 +// line internal/php7/php7.y:2025 { yyVAL.node = yyDollar[2].node @@ -4442,7 +4432,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2045 +// line internal/php7/php7.y:2035 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4455,7 +4445,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2056 +// line internal/php7/php7.y:2046 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4472,13 +4462,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2074 +// line internal/php7/php7.y:2064 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2078 +// line internal/php7/php7.y:2068 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4487,7 +4477,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2088 +// line internal/php7/php7.y:2078 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4499,7 +4489,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2098 +// line internal/php7/php7.y:2088 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4511,7 +4501,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2111 +// line internal/php7/php7.y:2101 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4520,19 +4510,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2118 +// line internal/php7/php7.y:2108 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2125 +// line internal/php7/php7.y:2115 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2132 +// line internal/php7/php7.y:2122 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4541,13 +4531,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2139 +// line internal/php7/php7.y:2129 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2146 +// line internal/php7/php7.y:2136 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4563,7 +4553,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2160 +// line internal/php7/php7.y:2150 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4580,19 +4570,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2178 +// line internal/php7/php7.y:2168 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2182 +// line internal/php7/php7.y:2172 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2189 +// line internal/php7/php7.y:2179 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4606,7 +4596,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2201 +// line internal/php7/php7.y:2191 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4620,7 +4610,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2213 +// line internal/php7/php7.y:2203 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4632,7 +4622,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2223 +// line internal/php7/php7.y:2213 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4663,13 +4653,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2255 +// line internal/php7/php7.y:2245 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2259 +// line internal/php7/php7.y:2249 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4683,7 +4673,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2271 +// line internal/php7/php7.y:2261 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4695,7 +4685,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2281 +// line internal/php7/php7.y:2271 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4707,7 +4697,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2291 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4719,19 +4709,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2304 +// line internal/php7/php7.y:2294 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2308 +// line internal/php7/php7.y:2298 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2315 +// line internal/php7/php7.y:2305 { yyVAL.node = yyDollar[1].node @@ -4741,7 +4731,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2323 +// line internal/php7/php7.y:2313 { yyVAL.node = yyDollar[1].node @@ -4751,7 +4741,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2334 +// line internal/php7/php7.y:2324 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4764,7 +4754,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2348 +// line internal/php7/php7.y:2338 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4780,7 +4770,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2362 +// line internal/php7/php7.y:2352 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4796,7 +4786,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2376 +// line internal/php7/php7.y:2366 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4812,7 +4802,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2390 +// line internal/php7/php7.y:2380 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4825,7 +4815,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2404 +// line internal/php7/php7.y:2394 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4839,13 +4829,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2416 +// line internal/php7/php7.y:2406 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2423 +// line internal/php7/php7.y:2413 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4861,7 +4851,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2440 +// line internal/php7/php7.y:2430 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4874,7 +4864,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2451 +// line internal/php7/php7.y:2441 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4887,13 +4877,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2465 +// line internal/php7/php7.y:2455 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2469 +// line internal/php7/php7.y:2459 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4906,31 +4896,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2483 +// line internal/php7/php7.y:2473 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2487 +// line internal/php7/php7.y:2477 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2494 +// line internal/php7/php7.y:2484 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2498 +// line internal/php7/php7.y:2488 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2505 +// line internal/php7/php7.y:2495 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4942,7 +4932,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2515 +// line internal/php7/php7.y:2505 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4954,7 +4944,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2525 +// line internal/php7/php7.y:2515 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4966,7 +4956,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2535 +// line internal/php7/php7.y:2525 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4978,7 +4968,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2545 +// line internal/php7/php7.y:2535 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4990,7 +4980,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2555 +// line internal/php7/php7.y:2545 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -5002,7 +4992,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2568 +// line internal/php7/php7.y:2558 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5011,13 +5001,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2575 +// line internal/php7/php7.y:2565 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2572 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5033,7 +5023,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2596 +// line internal/php7/php7.y:2586 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5050,7 +5040,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2614 +// line internal/php7/php7.y:2604 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5058,13 +5048,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2620 +// line internal/php7/php7.y:2610 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2627 +// line internal/php7/php7.y:2617 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5084,7 +5074,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2648 +// line internal/php7/php7.y:2638 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5104,7 +5094,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2669 +// line internal/php7/php7.y:2659 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5113,31 +5103,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2676 +// line internal/php7/php7.y:2666 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2683 +// line internal/php7/php7.y:2673 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2690 +// line internal/php7/php7.y:2680 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2694 +// line internal/php7/php7.y:2684 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2701 +// line internal/php7/php7.y:2691 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5146,13 +5136,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2708 +// line internal/php7/php7.y:2698 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2715 +// line internal/php7/php7.y:2705 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5170,7 +5160,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2734 +// line internal/php7/php7.y:2724 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5185,7 +5175,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2747 +// line internal/php7/php7.y:2737 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5197,7 +5187,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2760 +// line internal/php7/php7.y:2750 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5214,7 +5204,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2775 +// line internal/php7/php7.y:2765 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5230,7 +5220,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2789 +// line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5243,7 +5233,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2800 +// line internal/php7/php7.y:2790 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5257,7 +5247,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2812 +// line internal/php7/php7.y:2802 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5269,7 +5259,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2822 +// line internal/php7/php7.y:2812 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5282,7 +5272,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2833 +// line internal/php7/php7.y:2823 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5295,7 +5285,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2844 +// line internal/php7/php7.y:2834 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5308,7 +5298,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2855 +// line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5321,7 +5311,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2866 +// line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5334,7 +5324,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2877 +// line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5347,7 +5337,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2888 +// line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5360,7 +5350,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2899 +// line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5373,7 +5363,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2910 +// line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5386,7 +5376,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2921 +// line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5399,7 +5389,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2932 +// line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5412,7 +5402,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2943 +// line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5425,7 +5415,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2954 +// line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5438,7 +5428,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2965 +// line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5451,7 +5441,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2976 +// line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5463,7 +5453,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2986 +// line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5476,7 +5466,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2997 +// line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5488,7 +5478,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3007 +// line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5501,7 +5491,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3018 +// line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5514,7 +5504,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3029 +// line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5527,7 +5517,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3040 +// line internal/php7/php7.y:3030 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5540,7 +5530,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3051 +// line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5553,7 +5543,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3062 +// line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5566,7 +5556,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3073 +// line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5579,7 +5569,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3084 +// line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5592,7 +5582,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3095 +// line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5605,7 +5595,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3106 +// line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5618,7 +5608,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3117 +// line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5631,7 +5621,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3128 +// line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5644,7 +5634,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3139 +// line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5657,7 +5647,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3150 +// line internal/php7/php7.y:3140 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5670,7 +5660,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3161 +// line internal/php7/php7.y:3151 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5683,7 +5673,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3172 +// line internal/php7/php7.y:3162 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5696,7 +5686,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3183 +// line internal/php7/php7.y:3173 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5709,7 +5699,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3194 +// line internal/php7/php7.y:3184 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5721,7 +5711,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3204 +// line internal/php7/php7.y:3194 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5733,7 +5723,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3214 +// line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5745,7 +5735,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3224 +// line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5757,7 +5747,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3234 +// line internal/php7/php7.y:3224 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5770,7 +5760,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3245 +// line internal/php7/php7.y:3235 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5783,7 +5773,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3256 +// line internal/php7/php7.y:3246 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5796,7 +5786,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3267 +// line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5810,7 +5800,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3279 +// line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5823,7 +5813,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3290 +// line internal/php7/php7.y:3280 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5836,7 +5826,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3301 +// line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5849,7 +5839,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3312 +// line internal/php7/php7.y:3302 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5862,7 +5852,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3323 +// line internal/php7/php7.y:3313 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5875,7 +5865,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3334 +// line internal/php7/php7.y:3324 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5888,7 +5878,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3345 +// line internal/php7/php7.y:3335 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5905,13 +5895,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3360 +// line internal/php7/php7.y:3350 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3364 +// line internal/php7/php7.y:3354 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5925,7 +5915,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3376 +// line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5939,7 +5929,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3388 +// line internal/php7/php7.y:3378 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5952,13 +5942,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3399 +// line internal/php7/php7.y:3389 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3403 +// line internal/php7/php7.y:3393 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5971,7 +5961,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3414 +// line internal/php7/php7.y:3404 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5984,7 +5974,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3425 +// line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5997,7 +5987,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3436 +// line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6010,7 +6000,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3447 +// line internal/php7/php7.y:3437 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6023,7 +6013,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3458 +// line internal/php7/php7.y:3448 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6036,7 +6026,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3469 +// line internal/php7/php7.y:3459 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6049,7 +6039,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3480 +// line internal/php7/php7.y:3470 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6069,7 +6059,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3498 +// line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6081,13 +6071,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3508 +// line internal/php7/php7.y:3498 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3512 +// line internal/php7/php7.y:3502 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6099,7 +6089,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3522 +// line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6111,7 +6101,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3532 +// line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6123,7 +6113,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3542 +// line internal/php7/php7.y:3532 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6135,7 +6125,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3552 +// line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6148,7 +6138,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3563 +// line internal/php7/php7.y:3553 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6160,13 +6150,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3573 +// line internal/php7/php7.y:3563 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3577 +// line internal/php7/php7.y:3567 { yyVAL.node = yyDollar[2].node @@ -6187,7 +6177,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3598 +// line internal/php7/php7.y:3588 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6218,7 +6208,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3625 +// line internal/php7/php7.y:3615 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6244,25 +6234,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3655 +// line internal/php7/php7.y:3645 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3659 +// line internal/php7/php7.y:3649 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3666 +// line internal/php7/php7.y:3656 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3670 +// line internal/php7/php7.y:3660 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6276,7 +6266,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3685 +// line internal/php7/php7.y:3675 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6285,13 +6275,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3692 +// line internal/php7/php7.y:3682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3699 +// line internal/php7/php7.y:3689 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6305,7 +6295,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3711 +// line internal/php7/php7.y:3701 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6322,7 +6312,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3729 +// line internal/php7/php7.y:3719 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6334,7 +6324,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3739 +// line internal/php7/php7.y:3729 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6347,7 +6337,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3750 +// line internal/php7/php7.y:3740 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6360,7 +6350,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3761 +// line internal/php7/php7.y:3751 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6372,7 +6362,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3774 +// line internal/php7/php7.y:3764 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6384,31 +6374,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3784 +// line internal/php7/php7.y:3774 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3791 +// line internal/php7/php7.y:3781 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3795 +// line internal/php7/php7.y:3785 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3802 +// line internal/php7/php7.y:3792 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3806 +// line internal/php7/php7.y:3796 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6425,13 +6415,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3824 +// line internal/php7/php7.y:3814 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3828 +// line internal/php7/php7.y:3818 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6441,25 +6431,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3836 +// line internal/php7/php7.y:3826 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3843 +// line internal/php7/php7.y:3833 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3847 +// line internal/php7/php7.y:3837 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3854 +// line internal/php7/php7.y:3844 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6473,7 +6463,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3866 +// line internal/php7/php7.y:3856 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6486,7 +6476,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3877 +// line internal/php7/php7.y:3867 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6498,7 +6488,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3890 +// line internal/php7/php7.y:3880 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6510,7 +6500,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3900 +// line internal/php7/php7.y:3890 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6522,7 +6512,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3910 +// line internal/php7/php7.y:3900 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6534,7 +6524,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3920 +// line internal/php7/php7.y:3910 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6546,7 +6536,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3930 +// line internal/php7/php7.y:3920 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6558,7 +6548,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3940 +// line internal/php7/php7.y:3930 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6570,7 +6560,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3950 +// line internal/php7/php7.y:3940 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6582,7 +6572,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3960 +// line internal/php7/php7.y:3950 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6594,7 +6584,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3970 +// line internal/php7/php7.y:3960 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6606,7 +6596,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3980 +// line internal/php7/php7.y:3970 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6618,7 +6608,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3990 +// line internal/php7/php7.y:3980 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6632,7 +6622,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4002 +// line internal/php7/php7.y:3992 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6644,7 +6634,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4012 +// line internal/php7/php7.y:4002 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6656,7 +6646,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4022 +// line internal/php7/php7.y:4012 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6668,19 +6658,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4032 +// line internal/php7/php7.y:4022 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 +// line internal/php7/php7.y:4026 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4043 +// line internal/php7/php7.y:4033 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6692,7 +6682,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4053 +// line internal/php7/php7.y:4043 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6708,7 +6698,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4067 +// line internal/php7/php7.y:4057 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6724,43 +6714,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4084 +// line internal/php7/php7.y:4074 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4088 +// line internal/php7/php7.y:4078 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4095 +// line internal/php7/php7.y:4085 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4099 +// line internal/php7/php7.y:4089 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4106 +// line internal/php7/php7.y:4096 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4113 +// line internal/php7/php7.y:4103 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4117 +// line internal/php7/php7.y:4107 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6777,19 +6767,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4132 +// line internal/php7/php7.y:4122 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4139 +// line internal/php7/php7.y:4129 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4143 +// line internal/php7/php7.y:4133 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6806,19 +6796,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4158 +// line internal/php7/php7.y:4148 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4165 +// line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4169 +// line internal/php7/php7.y:4159 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6831,7 +6821,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4180 +// line internal/php7/php7.y:4170 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6844,7 +6834,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4191 +// line internal/php7/php7.y:4181 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6857,7 +6847,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4202 +// line internal/php7/php7.y:4192 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6870,25 +6860,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4213 +// line internal/php7/php7.y:4203 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4220 +// line internal/php7/php7.y:4210 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4224 +// line internal/php7/php7.y:4214 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4228 +// line internal/php7/php7.y:4218 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6901,7 +6891,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4242 +// line internal/php7/php7.y:4232 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6915,7 +6905,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4254 +// line internal/php7/php7.y:4244 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6929,7 +6919,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4266 +// line internal/php7/php7.y:4256 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6941,7 +6931,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4279 +// line internal/php7/php7.y:4269 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6954,7 +6944,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4290 +// line internal/php7/php7.y:4280 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6967,13 +6957,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4304 +// line internal/php7/php7.y:4294 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4308 +// line internal/php7/php7.y:4298 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6986,7 +6976,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4319 +// line internal/php7/php7.y:4309 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6999,7 +6989,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4330 +// line internal/php7/php7.y:4320 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7012,7 +7002,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4341 +// line internal/php7/php7.y:4331 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7025,7 +7015,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4352 +// line internal/php7/php7.y:4342 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7038,7 +7028,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4366 +// line internal/php7/php7.y:4356 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7050,7 +7040,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4376 +// line internal/php7/php7.y:4366 { yyVAL.node = yyDollar[2].node @@ -7060,13 +7050,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4384 +// line internal/php7/php7.y:4374 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4391 +// line internal/php7/php7.y:4381 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7078,7 +7068,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4401 +// line internal/php7/php7.y:4391 { yyVAL.node = yyDollar[2].node @@ -7088,31 +7078,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4409 +// line internal/php7/php7.y:4399 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4416 +// line internal/php7/php7.y:4406 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4423 +// line internal/php7/php7.y:4413 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4427 +// line internal/php7/php7.y:4417 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4434 +// line internal/php7/php7.y:4424 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7125,7 +7115,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4435 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7135,7 +7125,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4456 +// line internal/php7/php7.y:4446 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7148,7 +7138,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4467 +// line internal/php7/php7.y:4457 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7160,7 +7150,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4477 +// line internal/php7/php7.y:4467 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7176,7 +7166,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4491 +// line internal/php7/php7.y:4481 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7190,7 +7180,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4503 +// line internal/php7/php7.y:4493 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7202,7 +7192,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4513 +// line internal/php7/php7.y:4503 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7221,7 +7211,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4530 +// line internal/php7/php7.y:4520 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7238,13 +7228,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4548 +// line internal/php7/php7.y:4538 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4552 +// line internal/php7/php7.y:4542 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7257,13 +7247,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4563 +// line internal/php7/php7.y:4553 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4567 +// line internal/php7/php7.y:4557 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7276,7 +7266,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4581 +// line internal/php7/php7.y:4571 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7290,7 +7280,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4593 +// line internal/php7/php7.y:4583 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7307,7 +7297,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4608 +// line internal/php7/php7.y:4598 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7326,7 +7316,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4625 +// line internal/php7/php7.y:4615 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7341,7 +7331,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4638 +// line internal/php7/php7.y:4628 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7358,7 +7348,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4653 +// line internal/php7/php7.y:4643 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7377,7 +7367,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4670 +// line internal/php7/php7.y:4660 { yyVAL.node = yyDollar[2].node @@ -7387,7 +7377,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4681 +// line internal/php7/php7.y:4671 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7399,7 +7389,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4691 +// line internal/php7/php7.y:4681 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7416,7 +7406,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4706 +// line internal/php7/php7.y:4696 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7442,7 +7432,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4730 +// line internal/php7/php7.y:4720 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7456,7 +7446,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4745 +// line internal/php7/php7.y:4735 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7474,7 +7464,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4761 +// line internal/php7/php7.y:4751 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7496,7 +7486,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4781 +// line internal/php7/php7.y:4771 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7508,7 +7498,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4791 +// line internal/php7/php7.y:4781 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7520,7 +7510,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4801 +// line internal/php7/php7.y:4791 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7542,7 +7532,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4821 +// line internal/php7/php7.y:4811 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7554,7 +7544,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4831 +// line internal/php7/php7.y:4821 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7566,13 +7556,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4844 +// line internal/php7/php7.y:4834 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4848 +// line internal/php7/php7.y:4838 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7581,7 +7571,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4858 +// line internal/php7/php7.y:4848 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index e1914fe..0ecf1de 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -895,28 +895,17 @@ statement: } | T_FOR '(' for_exprs ';' for_exprs ';' for_exprs ')' for_statement { - switch n := $9.(type) { - case *ast.StmtFor : - n.Init = $3 - n.Cond = $5 - n.Loop = $7 - case *ast.StmtAltFor : - n.Init = $3 - n.Cond = $5 - n.Loop = $7 - } + $9.(*ast.StmtFor).ForTkn = $1 + $9.(*ast.StmtFor).OpenParenthesisTkn = $2 + $9.(*ast.StmtFor).Init = $3 + $9.(*ast.StmtFor).InitSemiColonTkn = $4 + $9.(*ast.StmtFor).Cond = $5 + $9.(*ast.StmtFor).CondSemiColonTkn = $6 + $9.(*ast.StmtFor).Loop = $7 + $9.(*ast.StmtFor).CloseParenthesisTkn = $8 + $9.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition($1, $9) $$ = $9 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $9) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.For, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.InitExpr, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.CondExpr, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.IncExpr, $8.SkippedTokens) } | T_SWITCH '(' expr ')' switch_case_list { @@ -1522,29 +1511,30 @@ foreach_variable: for_statement: statement { - $$ = &ast.StmtFor{ast.Node{}, nil, nil, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtFor{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDFOR ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtFor{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndForTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtAltFor{ast.Node{}, nil, nil, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 2204bc8..24499be 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -5397,7 +5397,7 @@ func TestPhp7(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltFor{ + &ast.StmtFor{ Node: ast.Node{ Position: &position.Position{ StartLine: 92, @@ -5406,6 +5406,7 @@ func TestPhp7(t *testing.T) { EndPos: 1959, }, }, + Alt: true, Cond: []ast.Vertex{ &ast.ExprBinarySmaller{ Node: ast.Node{ diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index cceb924..d86bf68 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -27,7 +27,6 @@ type NodeVisitor interface { ArgumentList(n *ArgumentList) Argument(n *Argument) - StmtAltFor(n *StmtAltFor) StmtAltForeach(n *StmtAltForeach) StmtAltSwitch(n *StmtAltSwitch) StmtBreak(n *StmtBreak) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 017d979..80685cd 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -175,19 +175,6 @@ func (n *ScalarString) Accept(v NodeVisitor) { v.ScalarString(n) } -// StmtAltFor node -type StmtAltFor struct { - Node - Init []Vertex - Cond []Vertex - Loop []Vertex - Stmt Vertex -} - -func (n *StmtAltFor) Accept(v NodeVisitor) { - v.StmtAltFor(n) -} - // StmtAltForeach node type StmtAltForeach struct { Node @@ -453,10 +440,19 @@ func (n *StmtFinally) Accept(v NodeVisitor) { // StmtFor node type StmtFor struct { Node - Init []Vertex - Cond []Vertex - Loop []Vertex - Stmt Vertex + Alt bool + ForTkn *token.Token + OpenParenthesisTkn *token.Token + Init []Vertex + InitSemiColonTkn *token.Token + Cond []Vertex + CondSemiColonTkn *token.Token + Loop []Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + Stmt Vertex + EndForTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtFor) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 5903f24..629d6ec 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -119,39 +119,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Expr) t.visitor.Leave("Expr", true) } - case *ast.StmtAltFor: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Init != nil { - t.visitor.Enter("Init", false) - for _, c := range nn.Init { - t.Traverse(c) - } - t.visitor.Leave("Init", false) - } - if nn.Cond != nil { - t.visitor.Enter("Cond", false) - for _, c := range nn.Cond { - t.Traverse(c) - } - t.visitor.Leave("Cond", false) - } - if nn.Loop != nil { - t.visitor.Enter("Loop", false) - for _, c := range nn.Loop { - t.Traverse(c) - } - t.visitor.Leave("Loop", false) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } case *ast.StmtAltForeach: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index c684ede..bd9cc4e 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -252,12 +252,6 @@ func (v *Dump) Argument(n *ast.Argument) { } } -func (v *Dump) StmtAltFor(n *ast.StmtAltFor) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtAltFor{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtAltForeach(n *ast.StmtAltForeach) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtAltForeach{\n") @@ -414,6 +408,11 @@ func (v *Dump) StmtFor(n *ast.StmtFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFor{\n") v.printNode(n.GetNode()) + + if n.Alt { + v.printIndent(v.indent) + v.print("Alt: true,\n") + } } func (v *Dump) StmtForeach(n *ast.StmtForeach) { diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index 83f9cb2..9160d72 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -209,44 +209,6 @@ func (v *FilterParserNodes) ExprVariable(n *ast.ExprVariable) { } } -func (v *FilterParserNodes) StmtFor(n *ast.StmtFor) { - for k, v := range n.Init { - for { - if nn, ok := v.(*ast.ParserBrackets); ok { - v = nn.Child - } else { - break - } - } - - n.Init[k] = v - } - - for k, v := range n.Cond { - for { - if nn, ok := v.(*ast.ParserBrackets); ok { - v = nn.Child - } else { - break - } - } - - n.Cond[k] = v - } - - for k, v := range n.Loop { - for { - if nn, ok := v.(*ast.ParserBrackets); ok { - v = nn.Child - } else { - break - } - } - - n.Loop[k] = v - } -} - func (v *FilterParserNodes) ExprAssign(n *ast.ExprAssign) { for { if nn, ok := n.Expr.(*ast.ParserBrackets); ok { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 3d60dd5..9ec8a3d 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -130,3 +130,14 @@ func (v *FilterTokens) StmtDo(n *ast.StmtDo) { n.CloseParenthesisTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtFor(n *ast.StmtFor) { + n.ForTkn = nil + n.OpenParenthesisTkn = nil + n.InitSemiColonTkn = nil + n.CondSemiColonTkn = nil + n.CloseParenthesisTkn = nil + n.ColonTkn = nil + n.EndForTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 4054486..7fd4992 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -54,10 +54,6 @@ func (v *Null) Argument(_ *ast.Argument) { // do nothing } -func (v *Null) StmtAltFor(_ *ast.StmtAltFor) { - // do nothing -} - func (v *Null) StmtAltForeach(_ *ast.StmtAltForeach) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index c172f41..1053b76 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -297,8 +297,6 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { // stmt - case *ast.StmtAltFor: - p.printStmtAltFor(n) case *ast.StmtAltForeach: p.printStmtAltForeach(n) case *ast.StmtAltSwitch: @@ -1363,25 +1361,6 @@ func (p *PrettyPrinter) printStmtAltElse(n ast.Vertex) { } } -func (p *PrettyPrinter) printStmtAltFor(n ast.Vertex) { - nn := n.(*ast.StmtAltFor) - - io.WriteString(p.w, "for (") - p.joinPrint(", ", nn.Init) - io.WriteString(p.w, "; ") - p.joinPrint(", ", nn.Cond) - io.WriteString(p.w, "; ") - p.joinPrint(", ", nn.Loop) - io.WriteString(p.w, ") :\n") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - - io.WriteString(p.w, "endfor;") -} - func (p *PrettyPrinter) printStmtAltForeach(n ast.Vertex) { nn := n.(*ast.StmtAltForeach) @@ -1736,6 +1715,11 @@ func (p *PrettyPrinter) printStmtFinally(n ast.Vertex) { func (p *PrettyPrinter) printStmtFor(n ast.Vertex) { nn := n.(*ast.StmtFor) + if nn.Alt { + p.printStmtAltFor(nn) + return + } + io.WriteString(p.w, "for (") p.joinPrint(", ", nn.Init) io.WriteString(p.w, "; ") @@ -1760,6 +1744,25 @@ func (p *PrettyPrinter) printStmtFor(n ast.Vertex) { } } +func (p *PrettyPrinter) printStmtAltFor(n ast.Vertex) { + nn := n.(*ast.StmtFor) + + io.WriteString(p.w, "for (") + p.joinPrint(", ", nn.Init) + io.WriteString(p.w, "; ") + p.joinPrint(", ", nn.Cond) + io.WriteString(p.w, "; ") + p.joinPrint(", ", nn.Loop) + io.WriteString(p.w, ") :\n") + + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + io.WriteString(p.w, "\n") + p.printIndent() + + io.WriteString(p.w, "endfor;") +} + func (p *PrettyPrinter) printStmtForeach(n ast.Vertex) { nn := n.(*ast.StmtForeach) diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index a193202..0eec375 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -2172,7 +2172,8 @@ func TestPrintAltFor(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtNamespace{ Stmts: []ast.Vertex{ - &ast.StmtAltFor{ + &ast.StmtFor{ + Alt: true, Init: []ast.Vertex{ &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, }, diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index e678ae6..b7ded2f 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -359,8 +359,6 @@ func (p *Printer) printNode(n ast.Vertex) { // stmt - case *ast.StmtAltFor: - p.printStmtAltFor(n) case *ast.StmtAltForeach: p.printStmtAltForeach(n) case *ast.StmtAltSwitch: @@ -1973,39 +1971,6 @@ func (p *Printer) printExprYield(n ast.Vertex) { // smtm -func (p *Printer) printStmtAltFor(n ast.Vertex) { - nn := n.(*ast.StmtAltFor) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "for") - p.printFreeFloating(nn, token.For) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Init) - p.printFreeFloating(nn, token.InitExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Cond) - p.printFreeFloating(nn, token.CondExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Loop) - p.printFreeFloating(nn, token.IncExpr) - io.WriteString(p.w, ")") - p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, token.Stmts) - - io.WriteString(p.w, "endfor") - p.printFreeFloating(nn, token.AltEnd) - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printStmtAltForeach(n ast.Vertex) { nn := n.(*ast.StmtAltForeach) p.printFreeFloating(nn, token.Start) @@ -2477,26 +2442,43 @@ func (p *Printer) printStmtFinally(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtFor(n ast.Vertex) { - nn := n.(*ast.StmtFor) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtFor(n *ast.StmtFor) { + if n.Alt { + p.printStmtAltFor(n) + return + } - io.WriteString(p.w, "for") - p.printFreeFloating(nn, token.For) - io.WriteString(p.w, "(") - p.joinPrint(",", nn.Init) - p.printFreeFloating(nn, token.InitExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Cond) - p.printFreeFloating(nn, token.CondExpr) - io.WriteString(p.w, ";") - p.joinPrint(",", nn.Loop) - p.printFreeFloating(nn, token.IncExpr) - io.WriteString(p.w, ")") + p.printToken(n.ForTkn, "for") + p.printToken(n.OpenParenthesisTkn, "(") + p.joinPrint(",", n.Init) + p.printToken(n.InitSemiColonTkn, ";") + p.joinPrint(",", n.Cond) + p.printToken(n.CondSemiColonTkn, ";") + p.joinPrint(",", n.Loop) + p.printToken(n.CloseParenthesisTkn, ")") - p.Print(nn.Stmt) + p.Print(n.Stmt) +} - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtAltFor(n *ast.StmtFor) { + p.printToken(n.ForTkn, "for") + p.printToken(n.OpenParenthesisTkn, "(") + p.joinPrint(",", n.Init) + p.printToken(n.InitSemiColonTkn, ";") + p.joinPrint(",", n.Cond) + p.printToken(n.CondSemiColonTkn, ";") + p.joinPrint(",", n.Loop) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.ColonTkn, ":") + + if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { + p.printNodes(stmtList.Stmts) + } else { + p.printNode(n.Stmt) + } + + p.printToken(n.EndForTkn, "endfor") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtForeach(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index ce35495..c607b65 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -762,7 +762,8 @@ func TestParseAndPrintPhp5AltIf(t *testing.T) { } func TestParseAndPrintPhp5AltFor(t *testing.T) { - src := ` Date: Sun, 6 Sep 2020 12:45:08 +0300 Subject: [PATCH 055/140] [refactoring] update ast structure of "Switch", "Case", "Default" nodes; remove "CaseList" node --- internal/php5/parser_test.go | 336 +++---- internal/php5/php5.go | 1185 +++++++++++------------ internal/php5/php5.y | 143 ++- internal/php5/php5_test.go | 336 +++---- internal/php7/parser_test.go | 336 +++---- internal/php7/php7.go | 867 ++++++++--------- internal/php7/php7.y | 155 ++- internal/php7/php7_test.go | 336 +++---- pkg/ast/ast.go | 2 - pkg/ast/node.go | 45 +- pkg/ast/traverser/dfs.go | 39 +- pkg/ast/visitor/dump.go | 17 +- pkg/ast/visitor/filter_parser_nodes.go | 20 - pkg/ast/visitor/filter_tokens.go | 22 + pkg/ast/visitor/null.go | 8 - pkg/printer/pretty_printer.go | 39 +- pkg/printer/pretty_printer_test.go | 47 +- pkg/printer/printer.go | 128 +-- pkg/printer/printer_parsed_php5_test.go | 6 +- pkg/printer/printer_parsed_php7_test.go | 6 +- pkg/printer/printer_test.go | 63 +- 21 files changed, 1882 insertions(+), 2254 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 1af3152..11e39da 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -9431,78 +9431,68 @@ func TestStmtSwitch(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 5, - StartPos: 17, - EndPos: 58, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 22, + EndPos: 36, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 22, - EndPos: 36, + StartPos: 27, + EndPos: 28, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 27, - EndPos: 28, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 30, - EndPos: 36, - }, + StartPos: 30, + EndPos: 36, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 40, + EndPos: 54, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 40, - EndPos: 54, + StartPos: 45, + EndPos: 46, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 45, - EndPos: 46, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 48, - EndPos: 54, - }, + StartPos: 48, + EndPos: 54, }, }, }, @@ -9560,78 +9550,68 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 5, - StartPos: 17, - EndPos: 59, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 23, + EndPos: 37, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 37, + StartPos: 28, + EndPos: 29, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 29, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 31, - EndPos: 37, - }, + StartPos: 31, + EndPos: 37, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 41, + EndPos: 55, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 41, - EndPos: 55, + StartPos: 46, + EndPos: 47, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 46, - EndPos: 47, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 49, - EndPos: 55, - }, + StartPos: 49, + EndPos: 55, }, }, }, @@ -9670,7 +9650,7 @@ func TestStmtSwitch_Alt(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -9679,6 +9659,7 @@ func TestStmtSwitch_Alt(t *testing.T) { EndPos: 65, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -9690,71 +9671,61 @@ func TestStmtSwitch_Alt(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: -1, - StartPos: 22, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: -1, + StartPos: 22, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, - EndLine: -1, - StartPos: 22, - EndPos: -1, + EndLine: 3, + StartPos: 27, + EndPos: 28, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 27, - EndPos: 28, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtDefault{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: -1, - StartPos: 33, - EndPos: -1, - }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtDefault{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: -1, + StartPos: 33, + EndPos: -1, }, - Stmts: []ast.Vertex{}, }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: -1, + StartPos: 45, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, - EndLine: -1, - StartPos: 45, - EndPos: -1, + EndLine: 5, + StartPos: 50, + EndPos: 51, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 50, - EndPos: 51, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, @@ -9788,7 +9759,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -9797,6 +9768,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { EndPos: 54, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -9808,60 +9780,50 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: -1, - StartPos: 23, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: -1, + StartPos: 23, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, - EndLine: -1, - StartPos: 23, - EndPos: -1, + EndLine: 3, + StartPos: 28, + EndPos: 29, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 29, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: -1, + StartPos: 34, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, - EndLine: -1, - StartPos: 34, - EndPos: -1, + EndLine: 4, + StartPos: 39, + EndPos: 40, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 39, - EndPos: 40, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 90079ef..86cad0f 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6201 +// line internal/php5/php5.y:6180 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:275 + // line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2324,7 +2324,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:285 + // line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2337,13 +2337,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:296 + // line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:303 + // line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2357,7 +2357,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:315 + // line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2370,32 +2370,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:329 + // line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:346 + // line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2409,7 +2409,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:358 + // line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2427,7 +2427,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:374 + // line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2447,7 +2447,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:392 + // line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2461,7 +2461,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:404 + // line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2474,7 +2474,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:415 + // line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2493,7 +2493,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:432 + // line internal/php5/php5.y:432 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2512,7 +2512,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:449 + // line internal/php5/php5.y:449 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2520,7 +2520,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:458 + // line internal/php5/php5.y:458 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2528,13 +2528,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:464 + // line internal/php5/php5.y:464 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:471 + // line internal/php5/php5.y:471 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2550,7 +2550,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:485 + // line internal/php5/php5.y:485 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2573,7 +2573,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:506 + // line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2590,7 +2590,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:521 + // line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2614,7 +2614,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:546 + // line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2622,13 +2622,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:552 + // line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:559 + // line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:573 + // line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2667,7 +2667,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:594 + // line internal/php5/php5.y:594 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2684,7 +2684,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:609 + // line internal/php5/php5.y:609 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2708,7 +2708,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:634 + // line internal/php5/php5.y:634 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2716,13 +2716,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:640 + // line internal/php5/php5.y:640 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:647 + // line internal/php5/php5.y:647 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:661 + // line internal/php5/php5.y:661 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2761,7 +2761,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:682 + // line internal/php5/php5.y:682 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2778,7 +2778,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:697 + // line internal/php5/php5.y:697 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2802,7 +2802,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:722 + // line internal/php5/php5.y:722 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2827,7 +2827,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:745 + // line internal/php5/php5.y:745 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2855,7 +2855,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:774 + // line internal/php5/php5.y:774 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2868,38 +2868,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:785 + // line internal/php5/php5.y:785 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:793 + // line internal/php5/php5.y:793 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:798 + // line internal/php5/php5.y:798 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:802 + // line internal/php5/php5.y:802 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:806 + // line internal/php5/php5.y:806 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:810 + // line internal/php5/php5.y:810 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2913,13 +2913,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:826 + // line internal/php5/php5.y:826 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:830 + // line internal/php5/php5.y:830 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2934,7 +2934,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:846 + // line internal/php5/php5.y:846 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2947,7 +2947,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:857 + // line internal/php5/php5.y:857 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2971,7 +2971,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:879 + // line internal/php5/php5.y:879 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -2997,7 +2997,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:903 + // line internal/php5/php5.y:903 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3009,7 +3009,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:913 + // line internal/php5/php5.y:913 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3026,7 +3026,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:928 + // line internal/php5/php5.y:928 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3042,28 +3042,19 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:942 + // line internal/php5/php5.y:942 { - switch n := yyDollar[3].node.(type) { - case *ast.StmtSwitch: - n.Cond = yyDollar[2].node - case *ast.StmtAltSwitch: - n.Cond = yyDollar[2].node - default: - panic("unexpected node type") - } + yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token + yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn + yyDollar[3].node.(*ast.StmtSwitch).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child + yyDollar[3].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn + yyDollar[3].node.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:961 + // line internal/php5/php5.y:952 { yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} @@ -3077,7 +3068,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:973 + // line internal/php5/php5.y:964 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3091,7 +3082,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:985 + // line internal/php5/php5.y:976 { yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} @@ -3105,7 +3096,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:997 + // line internal/php5/php5.y:988 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3119,7 +3110,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1009 + // line internal/php5/php5.y:1000 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3133,7 +3124,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1021 + // line internal/php5/php5.y:1012 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3147,7 +3138,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1033 + // line internal/php5/php5.y:1024 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3161,7 +3152,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1045 + // line internal/php5/php5.y:1036 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3175,7 +3166,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1057 + // line internal/php5/php5.y:1048 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3189,7 +3180,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1069 + // line internal/php5/php5.y:1060 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3203,7 +3194,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1081 + // line internal/php5/php5.y:1072 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3218,7 +3209,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1094 + // line internal/php5/php5.y:1085 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3230,7 +3221,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1104 + // line internal/php5/php5.y:1095 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3244,7 +3235,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1116 + // line internal/php5/php5.y:1107 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3260,7 +3251,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1130 + // line internal/php5/php5.y:1121 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3301,7 +3292,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1159 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3342,7 +3333,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1206 + // line internal/php5/php5.y:1197 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3357,7 +3348,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1219 + // line internal/php5/php5.y:1210 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3370,7 +3361,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1230 + // line internal/php5/php5.y:1221 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3388,7 +3379,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1246 + // line internal/php5/php5.y:1237 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3402,7 +3393,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1258 + // line internal/php5/php5.y:1249 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3419,13 +3410,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1276 + // line internal/php5/php5.y:1267 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1280 + // line internal/php5/php5.y:1271 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3447,13 +3438,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1303 + // line internal/php5/php5.y:1294 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1307 + // line internal/php5/php5.y:1298 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3467,31 +3458,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1322 + // line internal/php5/php5.y:1313 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1326 + // line internal/php5/php5.y:1317 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1324 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1337 + // line internal/php5/php5.y:1328 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1344 + // line internal/php5/php5.y:1335 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3512,13 +3503,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1366 + // line internal/php5/php5.y:1357 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1370 + // line internal/php5/php5.y:1361 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3527,49 +3518,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1371 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1387 + // line internal/php5/php5.y:1378 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1394 + // line internal/php5/php5.y:1385 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1401 + // line internal/php5/php5.y:1392 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1405 + // line internal/php5/php5.y:1396 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1412 + // line internal/php5/php5.y:1403 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1416 + // line internal/php5/php5.y:1407 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1423 + // line internal/php5/php5.y:1414 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3593,7 +3584,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1448 + // line internal/php5/php5.y:1439 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3621,7 +3612,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1465 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3638,7 +3629,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1493 + // line internal/php5/php5.y:1484 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3650,7 +3641,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1503 + // line internal/php5/php5.y:1494 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3665,7 +3656,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1516 + // line internal/php5/php5.y:1507 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3677,7 +3668,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1526 + // line internal/php5/php5.y:1517 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3692,13 +3683,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1542 + // line internal/php5/php5.y:1533 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1546 + // line internal/php5/php5.y:1537 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3710,19 +3701,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1559 + // line internal/php5/php5.y:1550 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1566 + // line internal/php5/php5.y:1557 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1570 + // line internal/php5/php5.y:1561 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3734,13 +3725,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1583 + // line internal/php5/php5.y:1574 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1587 + // line internal/php5/php5.y:1578 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3752,13 +3743,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1600 + // line internal/php5/php5.y:1591 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1604 + // line internal/php5/php5.y:1595 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3772,13 +3763,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1616 + // line internal/php5/php5.y:1607 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1620 + // line internal/php5/php5.y:1611 { yyVAL.node = yyDollar[2].node @@ -3787,13 +3778,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1630 + // line internal/php5/php5.y:1621 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1634 + // line internal/php5/php5.y:1625 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3805,7 +3796,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1644 + // line internal/php5/php5.y:1635 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3819,7 +3810,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1659 + // line internal/php5/php5.y:1650 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3830,7 +3821,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1668 + // line internal/php5/php5.y:1659 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3850,7 +3841,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1689 + // line internal/php5/php5.y:1680 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3859,7 +3850,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1696 + // line internal/php5/php5.y:1687 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3880,7 +3871,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1719 + // line internal/php5/php5.y:1710 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3889,7 +3880,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1726 + // line internal/php5/php5.y:1717 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3910,7 +3901,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1749 + // line internal/php5/php5.y:1740 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3932,7 +3923,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1769 + // line internal/php5/php5.y:1760 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3953,122 +3944,110 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1792 + // line internal/php5/php5.y:1783 { - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenCurlyBracketTkn: yyDollar[1].token, + CaseList: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, + } } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1805 + // line internal/php5/php5.y:1794 { - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} - yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + OpenCurlyBracketTkn: yyDollar[1].token, + CaseSeparatorTkn: yyDollar[2].token, + CaseList: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, + } } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1819 + // line internal/php5/php5.y:1806 { - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + Alt: true, + ColonTkn: yyDollar[1].token, + CaseList: yyDollar[2].list, + EndSwitchTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, + } } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1834 + // line internal/php5/php5.y:1819 { - - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} - yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + }, + Alt: true, + ColonTkn: yyDollar[1].token, + CaseSeparatorTkn: yyDollar[2].token, + CaseList: yyDollar[3].list, + EndSwitchTkn: yyDollar[4].token, + SemiColonTkn: yyDollar[5].token, + } } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1855 + // line internal/php5/php5.y:1837 { - yyVAL.list = []ast.Vertex{} + yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1859 + // line internal/php5/php5.y:1841 { - _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} - yyVAL.list = append(yyDollar[1].list, _case) - - // save position - _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) - - // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), + }, + CaseTkn: yyDollar[2].token, + Cond: yyDollar[3].node, + CaseSeparatorTkn: yyDollar[4].token, + Stmts: yyDollar[5].list, + }) } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1872 + // line internal/php5/php5.y:1853 { - _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} - yyVAL.list = append(yyDollar[1].list, _default) - - // save position - _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) - - // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), + }, + DefaultTkn: yyDollar[2].token, + CaseSeparatorTkn: yyDollar[3].token, + Stmts: yyDollar[4].list, + }) } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1868 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1893 + // line internal/php5/php5.y:1872 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1901 + // line internal/php5/php5.y:1880 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4079,7 +4058,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1910 + // line internal/php5/php5.y:1889 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4099,13 +4078,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1912 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1937 + // line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4120,13 +4099,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1954 + // line internal/php5/php5.y:1933 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1958 + // line internal/php5/php5.y:1937 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4148,13 +4127,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1982 + // line internal/php5/php5.y:1961 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1986 + // line internal/php5/php5.y:1965 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4166,13 +4145,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2000 + // line internal/php5/php5.y:1979 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2004 + // line internal/php5/php5.y:1983 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4191,25 +4170,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2025 + // line internal/php5/php5.y:2004 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2029 + // line internal/php5/php5.y:2008 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2036 + // line internal/php5/php5.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2040 + // line internal/php5/php5.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4218,7 +4197,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2050 + // line internal/php5/php5.y:2029 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4254,7 +4233,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2084 + // line internal/php5/php5.y:2063 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4291,13 +4270,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2123 + // line internal/php5/php5.y:2102 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2127 + // line internal/php5/php5.y:2106 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4309,7 +4288,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2137 + // line internal/php5/php5.y:2116 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4321,13 +4300,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2147 + // line internal/php5/php5.y:2126 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2155 + // line internal/php5/php5.y:2134 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4340,7 +4319,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2166 + // line internal/php5/php5.y:2145 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4353,7 +4332,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2156 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4368,13 +4347,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2194 + // line internal/php5/php5.y:2173 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2198 + // line internal/php5/php5.y:2177 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4383,7 +4362,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2208 + // line internal/php5/php5.y:2187 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4395,7 +4374,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2218 + // line internal/php5/php5.y:2197 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4407,7 +4386,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2228 + // line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4419,7 +4398,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2238 + // line internal/php5/php5.y:2217 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4431,7 +4410,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2251 + // line internal/php5/php5.y:2230 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4440,13 +4419,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2258 + // line internal/php5/php5.y:2237 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2266 + // line internal/php5/php5.y:2245 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4460,7 +4439,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2278 + // line internal/php5/php5.y:2257 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4472,7 +4451,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2288 + // line internal/php5/php5.y:2267 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4486,7 +4465,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2304 + // line internal/php5/php5.y:2283 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4504,7 +4483,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2320 + // line internal/php5/php5.y:2299 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4523,7 +4502,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2337 + // line internal/php5/php5.y:2316 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4540,7 +4519,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2352 + // line internal/php5/php5.y:2331 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4558,19 +4537,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2372 + // line internal/php5/php5.y:2351 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2376 + // line internal/php5/php5.y:2355 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2363 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4584,7 +4563,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2396 + // line internal/php5/php5.y:2375 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4592,13 +4571,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2402 + // line internal/php5/php5.y:2381 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2406 + // line internal/php5/php5.y:2385 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4629,7 +4608,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2438 + // line internal/php5/php5.y:2417 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4641,13 +4620,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2451 + // line internal/php5/php5.y:2430 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2455 + // line internal/php5/php5.y:2434 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4661,7 +4640,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2467 + // line internal/php5/php5.y:2446 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4673,7 +4652,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2477 + // line internal/php5/php5.y:2456 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4685,31 +4664,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2490 + // line internal/php5/php5.y:2469 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2494 + // line internal/php5/php5.y:2473 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2501 + // line internal/php5/php5.y:2480 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2505 + // line internal/php5/php5.y:2484 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2512 + // line internal/php5/php5.y:2491 { yyVAL.node = yyDollar[1].node @@ -4719,7 +4698,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2520 + // line internal/php5/php5.y:2499 { yyVAL.node = yyDollar[1].node @@ -4729,7 +4708,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2531 + // line internal/php5/php5.y:2510 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4742,13 +4721,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2545 + // line internal/php5/php5.y:2524 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2549 + // line internal/php5/php5.y:2528 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4757,7 +4736,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2559 + // line internal/php5/php5.y:2538 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4771,13 +4750,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2571 + // line internal/php5/php5.y:2550 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2557 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4793,7 +4772,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2595 + // line internal/php5/php5.y:2574 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4809,7 +4788,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2609 + // line internal/php5/php5.y:2588 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4822,19 +4801,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2623 + // line internal/php5/php5.y:2602 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2627 + // line internal/php5/php5.y:2606 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2634 + // line internal/php5/php5.y:2613 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4847,7 +4826,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2645 + // line internal/php5/php5.y:2624 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4860,13 +4839,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2659 + // line internal/php5/php5.y:2638 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2663 + // line internal/php5/php5.y:2642 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4879,31 +4858,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2677 + // line internal/php5/php5.y:2656 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2681 + // line internal/php5/php5.y:2660 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2688 + // line internal/php5/php5.y:2667 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2692 + // line internal/php5/php5.y:2671 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2699 + // line internal/php5/php5.y:2678 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4915,7 +4894,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2709 + // line internal/php5/php5.y:2688 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4927,7 +4906,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2719 + // line internal/php5/php5.y:2698 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4939,7 +4918,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2729 + // line internal/php5/php5.y:2708 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4951,7 +4930,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2739 + // line internal/php5/php5.y:2718 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4963,7 +4942,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2749 + // line internal/php5/php5.y:2728 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4975,7 +4954,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2762 + // line internal/php5/php5.y:2741 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4993,7 +4972,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2757 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5012,7 +4991,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2795 + // line internal/php5/php5.y:2774 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5029,7 +5008,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2810 + // line internal/php5/php5.y:2789 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5047,7 +5026,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2829 + // line internal/php5/php5.y:2808 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5072,7 +5051,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2852 + // line internal/php5/php5.y:2831 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5100,7 +5079,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2881 + // line internal/php5/php5.y:2860 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5109,25 +5088,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2888 + // line internal/php5/php5.y:2867 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2896 + // line internal/php5/php5.y:2875 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2900 + // line internal/php5/php5.y:2879 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2907 + // line internal/php5/php5.y:2886 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5136,25 +5115,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2914 + // line internal/php5/php5.y:2893 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2921 + // line internal/php5/php5.y:2900 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2904 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2932 + // line internal/php5/php5.y:2911 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5168,7 +5147,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2944 + // line internal/php5/php5.y:2923 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5182,37 +5161,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2959 + // line internal/php5/php5.y:2938 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2963 + // line internal/php5/php5.y:2942 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2967 + // line internal/php5/php5.y:2946 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2974 + // line internal/php5/php5.y:2953 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2978 + // line internal/php5/php5.y:2957 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2985 + // line internal/php5/php5.y:2964 { if yyDollar[3].node != nil { @@ -5228,7 +5207,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3002 + // line internal/php5/php5.y:2981 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5245,7 +5224,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3017 + // line internal/php5/php5.y:2996 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5258,7 +5237,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3007 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5272,7 +5251,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3040 + // line internal/php5/php5.y:3019 { var _new *ast.ExprNew @@ -5299,7 +5278,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3044 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5311,7 +5290,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3075 + // line internal/php5/php5.y:3054 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5323,7 +5302,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3085 + // line internal/php5/php5.y:3064 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5336,7 +5315,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3096 + // line internal/php5/php5.y:3075 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5349,7 +5328,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3107 + // line internal/php5/php5.y:3086 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5362,7 +5341,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3118 + // line internal/php5/php5.y:3097 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5375,7 +5354,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3129 + // line internal/php5/php5.y:3108 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5388,7 +5367,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3119 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5401,7 +5380,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3151 + // line internal/php5/php5.y:3130 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5414,7 +5393,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3162 + // line internal/php5/php5.y:3141 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5427,7 +5406,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3173 + // line internal/php5/php5.y:3152 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5440,7 +5419,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3184 + // line internal/php5/php5.y:3163 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5453,7 +5432,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3195 + // line internal/php5/php5.y:3174 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5466,7 +5445,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3206 + // line internal/php5/php5.y:3185 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5479,7 +5458,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3217 + // line internal/php5/php5.y:3196 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5491,7 +5470,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3227 + // line internal/php5/php5.y:3206 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5504,7 +5483,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3217 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5516,7 +5495,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3248 + // line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5529,7 +5508,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3259 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5542,7 +5521,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3270 + // line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5555,7 +5534,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3281 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5568,7 +5547,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3292 + // line internal/php5/php5.y:3271 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5581,7 +5560,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3303 + // line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5594,7 +5573,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3314 + // line internal/php5/php5.y:3293 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5607,7 +5586,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3325 + // line internal/php5/php5.y:3304 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5620,7 +5599,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3336 + // line internal/php5/php5.y:3315 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5633,7 +5612,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3347 + // line internal/php5/php5.y:3326 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5646,7 +5625,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3358 + // line internal/php5/php5.y:3337 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5659,7 +5638,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3369 + // line internal/php5/php5.y:3348 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5672,7 +5651,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3359 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5685,7 +5664,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3370 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5698,7 +5677,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3402 + // line internal/php5/php5.y:3381 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5711,7 +5690,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3413 + // line internal/php5/php5.y:3392 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5724,7 +5703,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3403 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5737,7 +5716,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3435 + // line internal/php5/php5.y:3414 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5749,7 +5728,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3445 + // line internal/php5/php5.y:3424 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5761,7 +5740,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3455 + // line internal/php5/php5.y:3434 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5773,7 +5752,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3465 + // line internal/php5/php5.y:3444 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5785,7 +5764,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3475 + // line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5798,7 +5777,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3486 + // line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5811,7 +5790,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3497 + // line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5803,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3508 + // line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5838,7 +5817,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3520 + // line internal/php5/php5.y:3499 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5851,7 +5830,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3531 + // line internal/php5/php5.y:3510 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5864,7 +5843,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3542 + // line internal/php5/php5.y:3521 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5877,7 +5856,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3553 + // line internal/php5/php5.y:3532 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5890,7 +5869,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3564 + // line internal/php5/php5.y:3543 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5903,19 +5882,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3575 + // line internal/php5/php5.y:3554 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3579 + // line internal/php5/php5.y:3558 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3583 + // line internal/php5/php5.y:3562 { yyVAL.node = yyDollar[2].node @@ -5947,7 +5926,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3613 + // line internal/php5/php5.y:3592 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5961,7 +5940,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3625 + // line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5975,13 +5954,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3637 + // line internal/php5/php5.y:3616 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3641 + // line internal/php5/php5.y:3620 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5994,7 +5973,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3652 + // line internal/php5/php5.y:3631 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6007,7 +5986,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3663 + // line internal/php5/php5.y:3642 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6020,7 +5999,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3653 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6033,7 +6012,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3685 + // line internal/php5/php5.y:3664 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6046,7 +6025,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3675 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6059,7 +6038,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3707 + // line internal/php5/php5.y:3686 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6072,7 +6051,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3718 + // line internal/php5/php5.y:3697 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6092,7 +6071,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3736 + // line internal/php5/php5.y:3715 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6104,25 +6083,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3746 + // line internal/php5/php5.y:3725 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3750 + // line internal/php5/php5.y:3729 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3754 + // line internal/php5/php5.y:3733 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3758 + // line internal/php5/php5.y:3737 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6134,7 +6113,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3768 + // line internal/php5/php5.y:3747 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6146,7 +6125,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3778 + // line internal/php5/php5.y:3757 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6158,7 +6137,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3788 + // line internal/php5/php5.y:3767 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6185,7 +6164,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3812 + // line internal/php5/php5.y:3791 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6213,7 +6192,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3840 + // line internal/php5/php5.y:3819 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6225,7 +6204,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3850 + // line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6237,7 +6216,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3860 + // line internal/php5/php5.y:3839 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6250,7 +6229,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3871 + // line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6263,7 +6242,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3885 + // line internal/php5/php5.y:3864 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6276,7 +6255,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3896 + // line internal/php5/php5.y:3875 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6289,7 +6268,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3907 + // line internal/php5/php5.y:3886 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6305,7 +6284,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3921 + // line internal/php5/php5.y:3900 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6318,7 +6297,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3935 + // line internal/php5/php5.y:3914 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6332,7 +6311,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3947 + // line internal/php5/php5.y:3926 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6345,19 +6324,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3961 + // line internal/php5/php5.y:3940 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3968 + // line internal/php5/php5.y:3947 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3972 + // line internal/php5/php5.y:3951 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6371,7 +6350,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3987 + // line internal/php5/php5.y:3966 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6387,7 +6366,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4001 + // line internal/php5/php5.y:3980 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6406,7 +6385,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4018 + // line internal/php5/php5.y:3997 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6421,7 +6400,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4031 + // line internal/php5/php5.y:4010 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6439,7 +6418,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4050 + // line internal/php5/php5.y:4029 { name := &ast.NameName{ Node: ast.Node{ @@ -6454,7 +6433,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4063 + // line internal/php5/php5.y:4042 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6471,7 +6450,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4078 + // line internal/php5/php5.y:4057 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6487,7 +6466,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4092 + // line internal/php5/php5.y:4071 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6500,7 +6479,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4103 + // line internal/php5/php5.y:4082 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6513,7 +6492,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4114 + // line internal/php5/php5.y:4093 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6526,7 +6505,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4125 + // line internal/php5/php5.y:4104 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6539,7 +6518,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4136 + // line internal/php5/php5.y:4115 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6551,7 +6530,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4149 + // line internal/php5/php5.y:4128 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6563,7 +6542,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4159 + // line internal/php5/php5.y:4138 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6574,7 +6553,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4168 + // line internal/php5/php5.y:4147 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6587,7 +6566,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4179 + // line internal/php5/php5.y:4158 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6599,7 +6578,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4192 + // line internal/php5/php5.y:4171 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6610,7 +6589,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4201 + // line internal/php5/php5.y:4180 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6623,7 +6602,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4212 + // line internal/php5/php5.y:4191 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6635,19 +6614,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4225 + // line internal/php5/php5.y:4204 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4229 + // line internal/php5/php5.y:4208 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4236 + // line internal/php5/php5.y:4215 { yyVAL.node = yyDollar[1].node @@ -6688,25 +6667,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4275 + // line internal/php5/php5.y:4254 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4283 + // line internal/php5/php5.y:4262 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4287 + // line internal/php5/php5.y:4266 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4295 + // line internal/php5/php5.y:4274 { yyVAL.list = yyDollar[2].list @@ -6715,13 +6694,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4305 + // line internal/php5/php5.y:4284 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4309 + // line internal/php5/php5.y:4288 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6737,19 +6716,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4323 + // line internal/php5/php5.y:4302 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4330 + // line internal/php5/php5.y:4309 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4334 + // line internal/php5/php5.y:4313 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6759,25 +6738,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4342 + // line internal/php5/php5.y:4321 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4349 + // line internal/php5/php5.y:4328 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4353 + // line internal/php5/php5.y:4332 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4360 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6789,7 +6768,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4370 + // line internal/php5/php5.y:4349 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6801,7 +6780,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4380 + // line internal/php5/php5.y:4359 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6813,7 +6792,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4390 + // line internal/php5/php5.y:4369 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6825,7 +6804,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4400 + // line internal/php5/php5.y:4379 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6837,7 +6816,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4410 + // line internal/php5/php5.y:4389 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6849,7 +6828,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4399 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6861,7 +6840,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4430 + // line internal/php5/php5.y:4409 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6873,7 +6852,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4440 + // line internal/php5/php5.y:4419 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6885,7 +6864,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4450 + // line internal/php5/php5.y:4429 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6897,7 +6876,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4460 + // line internal/php5/php5.y:4439 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6911,7 +6890,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4472 + // line internal/php5/php5.y:4451 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6923,7 +6902,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4485 + // line internal/php5/php5.y:4464 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6939,25 +6918,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4502 + // line internal/php5/php5.y:4481 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4509 + // line internal/php5/php5.y:4488 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4513 + // line internal/php5/php5.y:4492 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4517 + // line internal/php5/php5.y:4496 { name := &ast.NameName{ Node: ast.Node{ @@ -6972,7 +6951,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4530 + // line internal/php5/php5.y:4509 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6989,7 +6968,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4545 + // line internal/php5/php5.y:4524 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7005,7 +6984,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4559 + // line internal/php5/php5.y:4538 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7019,7 +6998,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4571 + // line internal/php5/php5.y:4550 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7032,13 +7011,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4582 + // line internal/php5/php5.y:4561 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4586 + // line internal/php5/php5.y:4565 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7050,13 +7029,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4596 + // line internal/php5/php5.y:4575 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4603 + // line internal/php5/php5.y:4582 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7069,7 +7048,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4614 + // line internal/php5/php5.y:4593 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7082,7 +7061,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4625 + // line internal/php5/php5.y:4604 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7095,7 +7074,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4636 + // line internal/php5/php5.y:4615 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7108,7 +7087,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4647 + // line internal/php5/php5.y:4626 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7121,7 +7100,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4658 + // line internal/php5/php5.y:4637 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7134,7 +7113,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4648 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7147,7 +7126,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4680 + // line internal/php5/php5.y:4659 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7159,7 +7138,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4690 + // line internal/php5/php5.y:4669 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7171,7 +7150,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4700 + // line internal/php5/php5.y:4679 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7184,7 +7163,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4711 + // line internal/php5/php5.y:4690 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7197,7 +7176,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4722 + // line internal/php5/php5.y:4701 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7210,7 +7189,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4733 + // line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7223,7 +7202,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4744 + // line internal/php5/php5.y:4723 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7236,7 +7215,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4755 + // line internal/php5/php5.y:4734 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7249,7 +7228,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4766 + // line internal/php5/php5.y:4745 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7262,7 +7241,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4777 + // line internal/php5/php5.y:4756 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7275,7 +7254,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4788 + // line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7288,7 +7267,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4799 + // line internal/php5/php5.y:4778 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7301,7 +7280,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4810 + // line internal/php5/php5.y:4789 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7314,7 +7293,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4821 + // line internal/php5/php5.y:4800 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7327,7 +7306,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4832 + // line internal/php5/php5.y:4811 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7340,7 +7319,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4843 + // line internal/php5/php5.y:4822 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7353,7 +7332,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4854 + // line internal/php5/php5.y:4833 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7367,7 +7346,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4866 + // line internal/php5/php5.y:4845 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7380,7 +7359,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4877 + // line internal/php5/php5.y:4856 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7393,7 +7372,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4888 + // line internal/php5/php5.y:4867 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7406,7 +7385,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4899 + // line internal/php5/php5.y:4878 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7419,7 +7398,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4889 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7433,7 +7412,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4922 + // line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7447,7 +7426,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4934 + // line internal/php5/php5.y:4913 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7459,7 +7438,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4944 + // line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7471,7 +7450,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4954 + // line internal/php5/php5.y:4933 { yyVAL.node = yyDollar[2].node @@ -7481,13 +7460,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4965 + // line internal/php5/php5.y:4944 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4969 + // line internal/php5/php5.y:4948 { name := &ast.NameName{ Node: ast.Node{ @@ -7502,7 +7481,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4982 + // line internal/php5/php5.y:4961 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7519,7 +7498,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4997 + // line internal/php5/php5.y:4976 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7535,7 +7514,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5014 + // line internal/php5/php5.y:4993 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7549,25 +7528,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5026 + // line internal/php5/php5.y:5005 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5030 + // line internal/php5/php5.y:5009 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5034 + // line internal/php5/php5.y:5013 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5038 + // line internal/php5/php5.y:5017 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7579,7 +7558,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5048 + // line internal/php5/php5.y:5027 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7591,7 +7570,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5058 + // line internal/php5/php5.y:5037 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7603,13 +7582,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5071 + // line internal/php5/php5.y:5050 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5075 + // line internal/php5/php5.y:5054 { yyVAL.list = yyDollar[1].list @@ -7620,19 +7599,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5087 + // line internal/php5/php5.y:5066 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5070 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5098 + // line internal/php5/php5.y:5077 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7647,7 +7626,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5111 + // line internal/php5/php5.y:5090 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7661,7 +7640,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5123 + // line internal/php5/php5.y:5102 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7675,7 +7654,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5135 + // line internal/php5/php5.y:5114 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7688,19 +7667,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5149 + // line internal/php5/php5.y:5128 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5153 + // line internal/php5/php5.y:5132 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5160 + // line internal/php5/php5.y:5139 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7717,7 +7696,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5175 + // line internal/php5/php5.y:5154 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7734,25 +7713,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5194 + // line internal/php5/php5.y:5173 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5202 + // line internal/php5/php5.y:5181 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5209 + // line internal/php5/php5.y:5188 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5216 + // line internal/php5/php5.y:5195 { yyVAL.node = yyDollar[1].node @@ -7810,25 +7789,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5272 + // line internal/php5/php5.y:5251 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5279 + // line internal/php5/php5.y:5258 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5283 + // line internal/php5/php5.y:5262 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5291 + // line internal/php5/php5.y:5270 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7842,7 +7821,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5306 + // line internal/php5/php5.y:5285 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7856,7 +7835,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5318 + // line internal/php5/php5.y:5297 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7870,7 +7849,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5333 + // line internal/php5/php5.y:5312 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7879,31 +7858,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5343 + // line internal/php5/php5.y:5322 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5347 + // line internal/php5/php5.y:5326 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5351 + // line internal/php5/php5.y:5330 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5337 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5362 + // line internal/php5/php5.y:5341 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7915,7 +7894,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5375 + // line internal/php5/php5.y:5354 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7928,7 +7907,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5365 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7941,13 +7920,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5400 + // line internal/php5/php5.y:5379 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5407 + // line internal/php5/php5.y:5386 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7960,7 +7939,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5418 + // line internal/php5/php5.y:5397 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7973,31 +7952,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5432 + // line internal/php5/php5.y:5411 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5436 + // line internal/php5/php5.y:5415 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5440 + // line internal/php5/php5.y:5419 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5427 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5452 + // line internal/php5/php5.y:5431 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8009,13 +7988,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5462 + // line internal/php5/php5.y:5441 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5469 + // line internal/php5/php5.y:5448 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8028,7 +8007,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5480 + // line internal/php5/php5.y:5459 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,13 +8020,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5491 + // line internal/php5/php5.y:5470 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5499 + // line internal/php5/php5.y:5478 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8061,7 +8040,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5490 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8075,25 +8054,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5505 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5530 + // line internal/php5/php5.y:5509 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5538 + // line internal/php5/php5.y:5517 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5542 + // line internal/php5/php5.y:5521 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8103,7 +8082,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5553 + // line internal/php5/php5.y:5532 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8117,7 +8096,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5565 + // line internal/php5/php5.y:5544 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8131,7 +8110,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5577 + // line internal/php5/php5.y:5556 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8141,7 +8120,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5588 + // line internal/php5/php5.y:5567 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8153,7 +8132,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5598 + // line internal/php5/php5.y:5577 { yyVAL.node = yyDollar[2].node @@ -8166,7 +8145,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5612 + // line internal/php5/php5.y:5591 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8179,7 +8158,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5623 + // line internal/php5/php5.y:5602 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8196,7 +8175,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5620 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8209,7 +8188,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5652 + // line internal/php5/php5.y:5631 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8219,7 +8198,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5664 + // line internal/php5/php5.y:5643 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8231,7 +8210,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5674 + // line internal/php5/php5.y:5653 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8247,19 +8226,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5688 + // line internal/php5/php5.y:5667 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5696 + // line internal/php5/php5.y:5675 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5700 + // line internal/php5/php5.y:5679 { yyVAL.list = yyDollar[1].list @@ -8274,7 +8253,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5716 + // line internal/php5/php5.y:5695 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8289,7 +8268,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5729 + // line internal/php5/php5.y:5708 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8303,7 +8282,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5741 + // line internal/php5/php5.y:5720 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8317,7 +8296,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5753 + // line internal/php5/php5.y:5732 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8330,7 +8309,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5743 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8348,7 +8327,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5780 + // line internal/php5/php5.y:5759 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8364,7 +8343,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5794 + // line internal/php5/php5.y:5773 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8381,7 +8360,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5809 + // line internal/php5/php5.y:5788 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8396,13 +8375,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5825 + // line internal/php5/php5.y:5804 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5829 + // line internal/php5/php5.y:5808 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8415,13 +8394,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5840 + // line internal/php5/php5.y:5819 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5844 + // line internal/php5/php5.y:5823 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8434,7 +8413,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5858 + // line internal/php5/php5.y:5837 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8448,7 +8427,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5870 + // line internal/php5/php5.y:5849 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8465,7 +8444,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5885 + // line internal/php5/php5.y:5864 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8484,7 +8463,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5902 + // line internal/php5/php5.y:5881 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8499,7 +8478,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5915 + // line internal/php5/php5.y:5894 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8516,7 +8495,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5930 + // line internal/php5/php5.y:5909 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8535,7 +8514,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5947 + // line internal/php5/php5.y:5926 { yyVAL.node = yyDollar[2].node @@ -8545,7 +8524,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5958 + // line internal/php5/php5.y:5937 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8557,7 +8536,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5968 + // line internal/php5/php5.y:5947 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8574,7 +8553,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5983 + // line internal/php5/php5.y:5962 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8588,7 +8567,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5998 + // line internal/php5/php5.y:5977 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8602,7 +8581,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6010 + // line internal/php5/php5.y:5989 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8624,7 +8603,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6030 + // line internal/php5/php5.y:6009 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8646,7 +8625,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6050 + // line internal/php5/php5.y:6029 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8658,7 +8637,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6060 + // line internal/php5/php5.y:6039 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8670,7 +8649,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6070 + // line internal/php5/php5.y:6049 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8692,7 +8671,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6090 + // line internal/php5/php5.y:6069 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8704,7 +8683,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6100 + // line internal/php5/php5.y:6079 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8716,13 +8695,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6113 + // line internal/php5/php5.y:6092 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6117 + // line internal/php5/php5.y:6096 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8731,19 +8710,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6106 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6131 + // line internal/php5/php5.y:6110 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6138 + // line internal/php5/php5.y:6117 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8759,7 +8738,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6152 + // line internal/php5/php5.y:6131 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8775,7 +8754,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6169 + // line internal/php5/php5.y:6148 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8791,7 +8770,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6186 + // line internal/php5/php5.y:6165 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 4bae606..cab691e 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -940,22 +940,13 @@ unticked_statement: } | T_SWITCH parenthesis_expr switch_case_list { - switch n := $3.(type) { - case *ast.StmtSwitch: - n.Cond = $2 - case *ast.StmtAltSwitch: - n.Cond = $2 - default: - panic("unexpected node type") - } + $3.(*ast.StmtSwitch).SwitchTkn = $1 + $3.(*ast.StmtSwitch).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn + $3.(*ast.StmtSwitch).Cond = $2.(*ast.ParserBrackets).Child + $3.(*ast.StmtSwitch).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn + $3.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition($1, $3) $$ = $3 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_BREAK ';' { @@ -1790,62 +1781,53 @@ declare_list: switch_case_list: '{' case_list '}' { - caseList := &ast.StmtCaseList{ast.Node{}, $2} - $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition($1, $3) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenCurlyBracketTkn: $1, + CaseList: $2, + CloseCurlyBracketTkn: $3, + } } | '{' ';' case_list '}' { - caseList := &ast.StmtCaseList{ast.Node{}, $3} - $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + OpenCurlyBracketTkn: $1, + CaseSeparatorTkn: $2, + CaseList: $3, + CloseCurlyBracketTkn: $4, + } } | ':' case_list T_ENDSWITCH ';' { - caseList := &ast.StmtCaseList{ast.Node{}, $2} - $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + Alt: true, + ColonTkn: $1, + CaseList: $2, + EndSwitchTkn: $3, + SemiColonTkn: $4, + } } | ':' ';' case_list T_ENDSWITCH ';' { - - caseList := &ast.StmtCaseList{ast.Node{}, $3} - $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition($3) - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $5), + }, + Alt: true, + ColonTkn: $1, + CaseSeparatorTkn: $2, + CaseList: $3, + EndSwitchTkn: $4, + SemiColonTkn: $5, + } } ; @@ -1853,33 +1835,30 @@ switch_case_list: case_list: /* empty */ { - $$ = []ast.Vertex{} + $$ = nil } | case_list T_CASE expr case_separator inner_statement_list { - _case := &ast.StmtCase{ast.Node{}, $3, $5} - $$ = append($1, _case) - - // save position - _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) - - // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, $4.SkippedTokens) - yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.SkippedTokens) + $$ = append($1, &ast.StmtCase{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($2, $5), + }, + CaseTkn: $2, + Cond: $3, + CaseSeparatorTkn: $4, + Stmts: $5, + }) } | case_list T_DEFAULT case_separator inner_statement_list { - _default := &ast.StmtDefault{ast.Node{}, $4} - $$ = append($1, _default) - - // save position - _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) - - // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.SkippedTokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.SkippedTokens) + $$ = append($1, &ast.StmtDefault{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($2, $4), + }, + DefaultTkn: $2, + CaseSeparatorTkn: $3, + Stmts: $4, + }) } ; diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 1fdd0e7..8537e6c 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -6894,7 +6894,7 @@ func TestPhp5(t *testing.T) { }, }, }, - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 118, @@ -6903,6 +6903,7 @@ func TestPhp5(t *testing.T) { EndPos: 2606, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -6914,75 +6915,65 @@ func TestPhp5(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: -1, - StartPos: 2563, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 119, + EndLine: -1, + StartPos: 2563, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 119, - EndLine: -1, - StartPos: 2563, - EndPos: -1, + EndLine: 119, + StartPos: 2568, + EndPos: 2569, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2568, - EndPos: 2569, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtDefault{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: -1, - StartPos: 2575, - EndPos: -1, - }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtDefault{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 120, + EndLine: -1, + StartPos: 2575, + EndPos: -1, }, - Stmts: []ast.Vertex{}, }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 121, + EndLine: -1, + StartPos: 2588, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 121, - EndLine: -1, - StartPos: 2588, - EndPos: -1, + EndLine: 121, + StartPos: 2593, + EndPos: 2594, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2593, - EndPos: 2594, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 124, @@ -6991,6 +6982,7 @@ func TestPhp5(t *testing.T) { EndPos: 2656, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -7002,60 +6994,50 @@ func TestPhp5(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 125, - EndLine: -1, - StartPos: 2626, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 125, + EndLine: -1, + StartPos: 2626, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 125, - EndLine: -1, - StartPos: 2626, - EndPos: -1, + EndLine: 125, + StartPos: 2631, + EndPos: 2632, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 125, - EndLine: 125, - StartPos: 2631, - EndPos: 2632, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 126, + EndLine: -1, + StartPos: 2638, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 126, - EndLine: -1, - StartPos: 2638, - EndPos: -1, + EndLine: 126, + StartPos: 2643, + EndPos: 2644, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 126, - EndLine: 126, - StartPos: 2643, - EndPos: 2644, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, @@ -7079,78 +7061,68 @@ func TestPhp5(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 129, - EndLine: 132, - StartPos: 2669, - EndPos: 2710, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 130, + EndLine: 130, + StartPos: 2675, + EndPos: 2689, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2675, - EndPos: 2689, + StartPos: 2680, + EndPos: 2681, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 130, EndLine: 130, - StartPos: 2680, - EndPos: 2681, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2683, - EndPos: 2689, - }, + StartPos: 2683, + EndPos: 2689, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 131, + EndLine: 131, + StartPos: 2694, + EndPos: 2708, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2694, - EndPos: 2708, + StartPos: 2699, + EndPos: 2700, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 131, EndLine: 131, - StartPos: 2699, - EndPos: 2700, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 131, - EndLine: 131, - StartPos: 2702, - EndPos: 2708, - }, + StartPos: 2702, + EndPos: 2708, }, }, }, @@ -7178,78 +7150,68 @@ func TestPhp5(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 134, - EndLine: 137, - StartPos: 2723, - EndPos: 2765, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 2730, + EndPos: 2744, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2730, - EndPos: 2744, + StartPos: 2735, + EndPos: 2736, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2735, - EndPos: 2736, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2738, - EndPos: 2744, - }, + StartPos: 2738, + EndPos: 2744, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 136, + EndLine: 136, + StartPos: 2749, + EndPos: 2763, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2749, - EndPos: 2763, + StartPos: 2754, + EndPos: 2755, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 136, EndLine: 136, - StartPos: 2754, - EndPos: 2755, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 2757, - EndPos: 2763, - }, + StartPos: 2757, + EndPos: 2763, }, }, }, diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index cfcf491..5efe233 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -10226,78 +10226,68 @@ func TestStmtSwitch(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 5, - StartPos: 17, - EndPos: 58, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 22, + EndPos: 36, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 22, - EndPos: 36, + StartPos: 27, + EndPos: 28, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 27, - EndPos: 28, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 30, - EndPos: 36, - }, + StartPos: 30, + EndPos: 36, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 40, + EndPos: 54, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 40, - EndPos: 54, + StartPos: 45, + EndPos: 46, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 45, - EndPos: 46, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 48, - EndPos: 54, - }, + StartPos: 48, + EndPos: 54, }, }, }, @@ -10355,78 +10345,68 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 5, - StartPos: 17, - EndPos: 59, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 23, + EndPos: 37, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 23, - EndPos: 37, + StartPos: 28, + EndPos: 29, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, EndLine: 3, - StartPos: 28, - EndPos: 29, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 31, - EndPos: 37, - }, + StartPos: 31, + EndPos: 37, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 41, + EndPos: 55, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 41, - EndPos: 55, + StartPos: 46, + EndPos: 47, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 46, - EndPos: 47, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 49, - EndPos: 55, - }, + StartPos: 49, + EndPos: 55, }, }, }, @@ -10465,7 +10445,7 @@ func TestStmtSwitch_Alt(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -10474,6 +10454,7 @@ func TestStmtSwitch_Alt(t *testing.T) { EndPos: 65, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -10485,71 +10466,61 @@ func TestStmtSwitch_Alt(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: -1, - StartPos: 22, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: -1, + StartPos: 22, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, - EndLine: -1, - StartPos: 22, - EndPos: -1, + EndLine: 3, + StartPos: 27, + EndPos: 28, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 27, - EndPos: 28, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtDefault{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: -1, - StartPos: 33, - EndPos: -1, - }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtDefault{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: -1, + StartPos: 33, + EndPos: -1, }, - Stmts: []ast.Vertex{}, }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: -1, + StartPos: 45, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 5, - EndLine: -1, - StartPos: 45, - EndPos: -1, + EndLine: 5, + StartPos: 50, + EndPos: 51, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 50, - EndPos: 51, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, @@ -10583,7 +10554,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 2, @@ -10592,6 +10563,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { EndPos: 54, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -10603,60 +10575,50 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: -1, - StartPos: 23, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 3, + EndLine: -1, + StartPos: 23, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 3, - EndLine: -1, - StartPos: 23, - EndPos: -1, + EndLine: 3, + StartPos: 28, + EndPos: 29, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 29, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: -1, + StartPos: 34, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 4, - EndLine: -1, - StartPos: 34, - EndPos: -1, + EndLine: 4, + StartPos: 39, + EndPos: 40, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 39, - EndPos: 40, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 80adf9a..90b1972 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4855 +// line internal/php7/php7.y:4822 // line yacctab:1 var yyExca = [...]int{ @@ -3233,38 +3233,17 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php7/php7.y:911 { - exprBrackets := &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - - switch n := yyDollar[5].node.(type) { - case *ast.StmtSwitch: - n.Cond = exprBrackets - case *ast.StmtAltSwitch: - n.Cond = exprBrackets - default: - panic("unexpected node type") - } + yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token + yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token + yyDollar[5].node.(*ast.StmtSwitch).Cond = yyDollar[3].node + yyDollar[5].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[4].token + yyDollar[5].node.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:942 +// line internal/php7/php7.y:921 { yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} @@ -3278,7 +3257,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:954 +// line internal/php7/php7.y:933 { yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} @@ -3292,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:966 +// line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3306,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:978 +// line internal/php7/php7.y:957 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3320,7 +3299,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:990 +// line internal/php7/php7.y:969 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3334,7 +3313,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1002 +// line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3349,7 +3328,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1015 +// line internal/php7/php7.y:994 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3361,7 +3340,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1025 +// line internal/php7/php7.y:1004 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3375,7 +3354,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1037 +// line internal/php7/php7.y:1016 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3395,7 +3374,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1055 +// line internal/php7/php7.y:1034 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3419,7 +3398,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1077 +// line internal/php7/php7.y:1056 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3446,7 +3425,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1102 +// line internal/php7/php7.y:1081 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3461,7 +3440,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1115 +// line internal/php7/php7.y:1094 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3474,7 +3453,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1126 +// line internal/php7/php7.y:1105 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3491,7 +3470,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1141 +// line internal/php7/php7.y:1120 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3505,7 +3484,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1153 +// line internal/php7/php7.y:1132 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3522,7 +3501,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1168 +// line internal/php7/php7.y:1147 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3537,13 +3516,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1183 +// line internal/php7/php7.y:1162 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1187 +// line internal/php7/php7.y:1166 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3565,13 +3544,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1209 +// line internal/php7/php7.y:1188 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1213 +// line internal/php7/php7.y:1192 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3585,13 +3564,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1225 +// line internal/php7/php7.y:1204 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1229 +// line internal/php7/php7.y:1208 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3605,13 +3584,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1244 +// line internal/php7/php7.y:1223 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1248 +// line internal/php7/php7.y:1227 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3620,13 +3599,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1258 +// line internal/php7/php7.y:1237 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1265 +// line internal/php7/php7.y:1244 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3656,31 +3635,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1296 +// line internal/php7/php7.y:1275 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1300 +// line internal/php7/php7.y:1279 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1307 +// line internal/php7/php7.y:1286 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1311 +// line internal/php7/php7.y:1290 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1318 +// line internal/php7/php7.y:1297 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3698,7 +3677,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1334 +// line internal/php7/php7.y:1313 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3715,19 +3694,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1352 +// line internal/php7/php7.y:1331 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1356 +// line internal/php7/php7.y:1335 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1363 +// line internal/php7/php7.y:1342 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3739,7 +3718,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1373 +// line internal/php7/php7.y:1352 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3751,7 +3730,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1386 +// line internal/php7/php7.y:1365 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3768,7 +3747,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1404 +// line internal/php7/php7.y:1383 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3785,13 +3764,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1422 +// line internal/php7/php7.y:1401 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1426 +// line internal/php7/php7.y:1405 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3803,13 +3782,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1439 +// line internal/php7/php7.y:1418 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1443 +// line internal/php7/php7.y:1422 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3821,13 +3800,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1435 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1460 +// line internal/php7/php7.y:1439 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3839,13 +3818,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1473 +// line internal/php7/php7.y:1452 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1477 +// line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3857,7 +3836,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1487 +// line internal/php7/php7.y:1466 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3871,7 +3850,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1499 +// line internal/php7/php7.y:1478 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3884,7 +3863,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1513 +// line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3895,7 +3874,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1522 +// line internal/php7/php7.y:1501 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3915,7 +3894,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1543 +// line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3924,7 +3903,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1550 +// line internal/php7/php7.y:1529 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3945,7 +3924,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1572 +// line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3954,7 +3933,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1579 +// line internal/php7/php7.y:1558 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3975,122 +3954,110 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1601 +// line internal/php7/php7.y:1580 { - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenCurlyBracketTkn: yyDollar[1].token, + CaseList: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, + } } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1614 +// line internal/php7/php7.y:1591 { - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} - yyVAL.node = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + OpenCurlyBracketTkn: yyDollar[1].token, + CaseSeparatorTkn: yyDollar[2].token, + CaseList: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, + } } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1628 +// line internal/php7/php7.y:1603 { - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[2].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + Alt: true, + ColonTkn: yyDollar[1].token, + CaseList: yyDollar[2].list, + EndSwitchTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, + } } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1643 +// line internal/php7/php7.y:1616 { - - caseList := &ast.StmtCaseList{ast.Node{}, yyDollar[3].list} - yyVAL.node = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition(yyDollar[3].list) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) + yyVAL.node = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + }, + Alt: true, + ColonTkn: yyDollar[1].token, + CaseSeparatorTkn: yyDollar[2].token, + CaseList: yyDollar[3].list, + EndSwitchTkn: yyDollar[4].token, + SemiColonTkn: yyDollar[5].token, + } } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1663 +// line internal/php7/php7.y:1633 { - yyVAL.list = []ast.Vertex{} + yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1667 +// line internal/php7/php7.y:1637 { - _case := &ast.StmtCase{ast.Node{}, yyDollar[3].node, yyDollar[5].list} - yyVAL.list = append(yyDollar[1].list, _case) - - // save position - _case.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list) - - // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append(yyDollar[4].token.SkippedTokens)) - yylex.(*Parser).setToken(_case, token.CaseSeparator, yyDollar[4].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), + }, + CaseTkn: yyDollar[2].token, + Cond: yyDollar[3].node, + CaseSeparatorTkn: yyDollar[4].token, + Stmts: yyDollar[5].list, + }) } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1680 +// line internal/php7/php7.y:1649 { - _default := &ast.StmtDefault{ast.Node{}, yyDollar[4].list} - yyVAL.list = append(yyDollar[1].list, _default) - - // save position - _default.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list) - - // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, yyDollar[3].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), + }, + DefaultTkn: yyDollar[2].token, + CaseSeparatorTkn: yyDollar[3].token, + Stmts: yyDollar[4].list, + }) } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1696 +// line internal/php7/php7.y:1663 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1700 +// line internal/php7/php7.y:1667 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1707 +// line internal/php7/php7.y:1674 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4101,7 +4068,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1716 +// line internal/php7/php7.y:1683 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4121,7 +4088,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1737 +// line internal/php7/php7.y:1704 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4136,7 +4103,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1750 +// line internal/php7/php7.y:1717 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4155,13 +4122,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1770 +// line internal/php7/php7.y:1737 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1774 +// line internal/php7/php7.y:1741 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4177,7 +4144,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1791 +// line internal/php7/php7.y:1758 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4199,7 +4166,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1811 +// line internal/php7/php7.y:1778 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4223,7 +4190,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1836 +// line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4233,7 +4200,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1844 +// line internal/php7/php7.y:1811 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4257,25 +4224,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1869 +// line internal/php7/php7.y:1836 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1873 +// line internal/php7/php7.y:1840 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1880 +// line internal/php7/php7.y:1847 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1884 +// line internal/php7/php7.y:1851 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4284,7 +4251,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1894 +// line internal/php7/php7.y:1861 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4320,7 +4287,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1928 +// line internal/php7/php7.y:1895 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4357,25 +4324,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1966 +// line internal/php7/php7.y:1933 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1970 +// line internal/php7/php7.y:1937 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1977 +// line internal/php7/php7.y:1944 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1981 +// line internal/php7/php7.y:1948 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4387,7 +4354,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1994 +// line internal/php7/php7.y:1961 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4399,7 +4366,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2004 +// line internal/php7/php7.y:1971 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4411,19 +4378,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2014 +// line internal/php7/php7.y:1981 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2021 +// line internal/php7/php7.y:1988 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2025 +// line internal/php7/php7.y:1992 { yyVAL.node = yyDollar[2].node @@ -4432,7 +4399,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2035 +// line internal/php7/php7.y:2002 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4445,7 +4412,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2046 +// line internal/php7/php7.y:2013 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4462,13 +4429,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2064 +// line internal/php7/php7.y:2031 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2068 +// line internal/php7/php7.y:2035 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4477,7 +4444,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2078 +// line internal/php7/php7.y:2045 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4489,7 +4456,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2088 +// line internal/php7/php7.y:2055 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4501,7 +4468,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2101 +// line internal/php7/php7.y:2068 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4510,19 +4477,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2108 +// line internal/php7/php7.y:2075 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2115 +// line internal/php7/php7.y:2082 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2122 +// line internal/php7/php7.y:2089 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4531,13 +4498,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2129 +// line internal/php7/php7.y:2096 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2136 +// line internal/php7/php7.y:2103 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4553,7 +4520,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2150 +// line internal/php7/php7.y:2117 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4570,19 +4537,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2168 +// line internal/php7/php7.y:2135 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2172 +// line internal/php7/php7.y:2139 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2179 +// line internal/php7/php7.y:2146 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4596,7 +4563,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2191 +// line internal/php7/php7.y:2158 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4610,7 +4577,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2203 +// line internal/php7/php7.y:2170 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4622,7 +4589,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2213 +// line internal/php7/php7.y:2180 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4653,13 +4620,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2245 +// line internal/php7/php7.y:2212 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2249 +// line internal/php7/php7.y:2216 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4673,7 +4640,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2261 +// line internal/php7/php7.y:2228 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4685,7 +4652,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2271 +// line internal/php7/php7.y:2238 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4697,7 +4664,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2281 +// line internal/php7/php7.y:2248 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4709,19 +4676,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2294 +// line internal/php7/php7.y:2261 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2298 +// line internal/php7/php7.y:2265 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2305 +// line internal/php7/php7.y:2272 { yyVAL.node = yyDollar[1].node @@ -4731,7 +4698,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2313 +// line internal/php7/php7.y:2280 { yyVAL.node = yyDollar[1].node @@ -4741,7 +4708,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2324 +// line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4754,7 +4721,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2338 +// line internal/php7/php7.y:2305 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4770,7 +4737,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2352 +// line internal/php7/php7.y:2319 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4786,7 +4753,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2366 +// line internal/php7/php7.y:2333 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4802,7 +4769,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2380 +// line internal/php7/php7.y:2347 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4815,7 +4782,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2394 +// line internal/php7/php7.y:2361 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4829,13 +4796,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2406 +// line internal/php7/php7.y:2373 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2413 +// line internal/php7/php7.y:2380 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4851,7 +4818,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2430 +// line internal/php7/php7.y:2397 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4864,7 +4831,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2408 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4877,13 +4844,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2455 +// line internal/php7/php7.y:2422 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2459 +// line internal/php7/php7.y:2426 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4896,31 +4863,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2473 +// line internal/php7/php7.y:2440 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2477 +// line internal/php7/php7.y:2444 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2484 +// line internal/php7/php7.y:2451 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2488 +// line internal/php7/php7.y:2455 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2495 +// line internal/php7/php7.y:2462 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4932,7 +4899,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2505 +// line internal/php7/php7.y:2472 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4944,7 +4911,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2515 +// line internal/php7/php7.y:2482 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4956,7 +4923,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2525 +// line internal/php7/php7.y:2492 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4968,7 +4935,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2535 +// line internal/php7/php7.y:2502 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4980,7 +4947,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2545 +// line internal/php7/php7.y:2512 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4992,7 +4959,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2558 +// line internal/php7/php7.y:2525 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5001,13 +4968,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2565 +// line internal/php7/php7.y:2532 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2572 +// line internal/php7/php7.y:2539 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5023,7 +4990,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2586 +// line internal/php7/php7.y:2553 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5040,7 +5007,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2604 +// line internal/php7/php7.y:2571 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5048,13 +5015,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2610 +// line internal/php7/php7.y:2577 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2617 +// line internal/php7/php7.y:2584 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5074,7 +5041,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2638 +// line internal/php7/php7.y:2605 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5094,7 +5061,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2659 +// line internal/php7/php7.y:2626 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5103,31 +5070,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2666 +// line internal/php7/php7.y:2633 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2673 +// line internal/php7/php7.y:2640 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2680 +// line internal/php7/php7.y:2647 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2684 +// line internal/php7/php7.y:2651 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2691 +// line internal/php7/php7.y:2658 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5136,13 +5103,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2698 +// line internal/php7/php7.y:2665 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2705 +// line internal/php7/php7.y:2672 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5160,7 +5127,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2724 +// line internal/php7/php7.y:2691 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5175,7 +5142,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2704 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5187,7 +5154,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2750 +// line internal/php7/php7.y:2717 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5204,7 +5171,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2765 +// line internal/php7/php7.y:2732 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5220,7 +5187,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 +// line internal/php7/php7.y:2746 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5233,7 +5200,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2790 +// line internal/php7/php7.y:2757 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5247,7 +5214,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2802 +// line internal/php7/php7.y:2769 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5259,7 +5226,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2812 +// line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5272,7 +5239,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2823 +// line internal/php7/php7.y:2790 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5285,7 +5252,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2834 +// line internal/php7/php7.y:2801 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5298,7 +5265,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2845 +// line internal/php7/php7.y:2812 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5311,7 +5278,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2856 +// line internal/php7/php7.y:2823 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5324,7 +5291,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2867 +// line internal/php7/php7.y:2834 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5337,7 +5304,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 +// line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5350,7 +5317,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 +// line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5363,7 +5330,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 +// line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5376,7 +5343,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 +// line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5389,7 +5356,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5402,7 +5369,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5415,7 +5382,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 +// line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5428,7 +5395,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2955 +// line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5441,7 +5408,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2966 +// line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5453,7 +5420,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2976 +// line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5466,7 +5433,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2987 +// line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5478,7 +5445,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2997 +// line internal/php7/php7.y:2964 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5491,7 +5458,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3008 +// line internal/php7/php7.y:2975 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5504,7 +5471,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3019 +// line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5517,7 +5484,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3030 +// line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5530,7 +5497,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3041 +// line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5543,7 +5510,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3052 +// line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5556,7 +5523,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 +// line internal/php7/php7.y:3030 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5569,7 +5536,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 +// line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5582,7 +5549,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 +// line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5595,7 +5562,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 +// line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5608,7 +5575,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 +// line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5588,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 +// line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5601,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3129 +// line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5614,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3140 +// line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5627,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3151 +// line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5640,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3162 +// line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5653,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3173 +// line internal/php7/php7.y:3140 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5699,7 +5666,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3184 +// line internal/php7/php7.y:3151 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5711,7 +5678,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3194 +// line internal/php7/php7.y:3161 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5723,7 +5690,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3204 +// line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5735,7 +5702,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3214 +// line internal/php7/php7.y:3181 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5747,7 +5714,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3224 +// line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5727,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3235 +// line internal/php7/php7.y:3202 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5740,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3246 +// line internal/php7/php7.y:3213 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5786,7 +5753,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3257 +// line internal/php7/php7.y:3224 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5800,7 +5767,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5780,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3280 +// line internal/php7/php7.y:3247 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5793,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3291 +// line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5806,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3302 +// line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5819,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3313 +// line internal/php7/php7.y:3280 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5832,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3324 +// line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5845,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3335 +// line internal/php7/php7.y:3302 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5895,13 +5862,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3350 +// line internal/php7/php7.y:3317 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3354 +// line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5915,7 +5882,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3366 +// line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5929,7 +5896,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3378 +// line internal/php7/php7.y:3345 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5942,13 +5909,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3389 +// line internal/php7/php7.y:3356 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3393 +// line internal/php7/php7.y:3360 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5961,7 +5928,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3404 +// line internal/php7/php7.y:3371 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5974,7 +5941,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3415 +// line internal/php7/php7.y:3382 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5987,7 +5954,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3426 +// line internal/php7/php7.y:3393 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6000,7 +5967,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3437 +// line internal/php7/php7.y:3404 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6013,7 +5980,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3448 +// line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6026,7 +5993,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3459 +// line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6039,7 +6006,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3470 +// line internal/php7/php7.y:3437 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6059,7 +6026,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3488 +// line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6071,13 +6038,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3498 +// line internal/php7/php7.y:3465 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3502 +// line internal/php7/php7.y:3469 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6089,7 +6056,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3512 +// line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6101,7 +6068,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3522 +// line internal/php7/php7.y:3489 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6113,7 +6080,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3532 +// line internal/php7/php7.y:3499 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6125,7 +6092,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3542 +// line internal/php7/php7.y:3509 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6138,7 +6105,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3553 +// line internal/php7/php7.y:3520 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6150,13 +6117,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3563 +// line internal/php7/php7.y:3530 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3567 +// line internal/php7/php7.y:3534 { yyVAL.node = yyDollar[2].node @@ -6177,7 +6144,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3588 +// line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6208,7 +6175,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3615 +// line internal/php7/php7.y:3582 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6234,25 +6201,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3645 +// line internal/php7/php7.y:3612 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3649 +// line internal/php7/php7.y:3616 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3656 +// line internal/php7/php7.y:3623 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3660 +// line internal/php7/php7.y:3627 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6266,7 +6233,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3675 +// line internal/php7/php7.y:3642 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6275,13 +6242,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3682 +// line internal/php7/php7.y:3649 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3689 +// line internal/php7/php7.y:3656 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6295,7 +6262,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3701 +// line internal/php7/php7.y:3668 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6312,7 +6279,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3719 +// line internal/php7/php7.y:3686 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6324,7 +6291,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3729 +// line internal/php7/php7.y:3696 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6337,7 +6304,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3740 +// line internal/php7/php7.y:3707 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6350,7 +6317,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3751 +// line internal/php7/php7.y:3718 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6362,7 +6329,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3764 +// line internal/php7/php7.y:3731 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6374,31 +6341,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3774 +// line internal/php7/php7.y:3741 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3781 +// line internal/php7/php7.y:3748 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3785 +// line internal/php7/php7.y:3752 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3792 +// line internal/php7/php7.y:3759 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3796 +// line internal/php7/php7.y:3763 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6415,13 +6382,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3814 +// line internal/php7/php7.y:3781 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3818 +// line internal/php7/php7.y:3785 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6431,25 +6398,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3826 +// line internal/php7/php7.y:3793 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3833 +// line internal/php7/php7.y:3800 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3837 +// line internal/php7/php7.y:3804 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3844 +// line internal/php7/php7.y:3811 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6463,7 +6430,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3856 +// line internal/php7/php7.y:3823 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6476,7 +6443,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3867 +// line internal/php7/php7.y:3834 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6488,7 +6455,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3880 +// line internal/php7/php7.y:3847 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6500,7 +6467,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3890 +// line internal/php7/php7.y:3857 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6512,7 +6479,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3900 +// line internal/php7/php7.y:3867 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6524,7 +6491,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3910 +// line internal/php7/php7.y:3877 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6536,7 +6503,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3920 +// line internal/php7/php7.y:3887 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6548,7 +6515,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3930 +// line internal/php7/php7.y:3897 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6560,7 +6527,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3940 +// line internal/php7/php7.y:3907 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6572,7 +6539,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3950 +// line internal/php7/php7.y:3917 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6584,7 +6551,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3960 +// line internal/php7/php7.y:3927 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6596,7 +6563,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3970 +// line internal/php7/php7.y:3937 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6608,7 +6575,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3980 +// line internal/php7/php7.y:3947 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6622,7 +6589,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3992 +// line internal/php7/php7.y:3959 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6634,7 +6601,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4002 +// line internal/php7/php7.y:3969 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6646,7 +6613,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4012 +// line internal/php7/php7.y:3979 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6658,19 +6625,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4022 +// line internal/php7/php7.y:3989 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4026 +// line internal/php7/php7.y:3993 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4033 +// line internal/php7/php7.y:4000 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6682,7 +6649,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4043 +// line internal/php7/php7.y:4010 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6698,7 +6665,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4057 +// line internal/php7/php7.y:4024 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6714,43 +6681,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4074 +// line internal/php7/php7.y:4041 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4078 +// line internal/php7/php7.y:4045 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4085 +// line internal/php7/php7.y:4052 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4089 +// line internal/php7/php7.y:4056 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4096 +// line internal/php7/php7.y:4063 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4103 +// line internal/php7/php7.y:4070 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4107 +// line internal/php7/php7.y:4074 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6767,19 +6734,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4122 +// line internal/php7/php7.y:4089 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4129 +// line internal/php7/php7.y:4096 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4133 +// line internal/php7/php7.y:4100 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6796,19 +6763,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4148 +// line internal/php7/php7.y:4115 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4155 +// line internal/php7/php7.y:4122 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4159 +// line internal/php7/php7.y:4126 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6821,7 +6788,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4170 +// line internal/php7/php7.y:4137 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6834,7 +6801,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4181 +// line internal/php7/php7.y:4148 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6847,7 +6814,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4192 +// line internal/php7/php7.y:4159 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6860,25 +6827,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4203 +// line internal/php7/php7.y:4170 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4210 +// line internal/php7/php7.y:4177 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4214 +// line internal/php7/php7.y:4181 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4218 +// line internal/php7/php7.y:4185 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6891,7 +6858,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4232 +// line internal/php7/php7.y:4199 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6905,7 +6872,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4211 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6919,7 +6886,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4256 +// line internal/php7/php7.y:4223 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6931,7 +6898,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4269 +// line internal/php7/php7.y:4236 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6944,7 +6911,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4280 +// line internal/php7/php7.y:4247 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6957,13 +6924,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4294 +// line internal/php7/php7.y:4261 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4298 +// line internal/php7/php7.y:4265 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6976,7 +6943,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4309 +// line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6989,7 +6956,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4320 +// line internal/php7/php7.y:4287 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7002,7 +6969,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4331 +// line internal/php7/php7.y:4298 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7015,7 +6982,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4342 +// line internal/php7/php7.y:4309 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7028,7 +6995,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4356 +// line internal/php7/php7.y:4323 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7040,7 +7007,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4366 +// line internal/php7/php7.y:4333 { yyVAL.node = yyDollar[2].node @@ -7050,13 +7017,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4374 +// line internal/php7/php7.y:4341 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4348 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7068,7 +7035,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4391 +// line internal/php7/php7.y:4358 { yyVAL.node = yyDollar[2].node @@ -7078,31 +7045,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4399 +// line internal/php7/php7.y:4366 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4406 +// line internal/php7/php7.y:4373 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4413 +// line internal/php7/php7.y:4380 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4417 +// line internal/php7/php7.y:4384 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4424 +// line internal/php7/php7.y:4391 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7115,7 +7082,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4435 +// line internal/php7/php7.y:4402 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7125,7 +7092,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4446 +// line internal/php7/php7.y:4413 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7138,7 +7105,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4457 +// line internal/php7/php7.y:4424 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7150,7 +7117,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4467 +// line internal/php7/php7.y:4434 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7166,7 +7133,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4481 +// line internal/php7/php7.y:4448 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7180,7 +7147,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4493 +// line internal/php7/php7.y:4460 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7192,7 +7159,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4503 +// line internal/php7/php7.y:4470 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7211,7 +7178,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4520 +// line internal/php7/php7.y:4487 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7228,13 +7195,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4538 +// line internal/php7/php7.y:4505 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4542 +// line internal/php7/php7.y:4509 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7247,13 +7214,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4553 +// line internal/php7/php7.y:4520 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4557 +// line internal/php7/php7.y:4524 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7266,7 +7233,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4571 +// line internal/php7/php7.y:4538 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7280,7 +7247,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4583 +// line internal/php7/php7.y:4550 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7297,7 +7264,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4598 +// line internal/php7/php7.y:4565 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7316,7 +7283,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4615 +// line internal/php7/php7.y:4582 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7331,7 +7298,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4628 +// line internal/php7/php7.y:4595 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7348,7 +7315,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4643 +// line internal/php7/php7.y:4610 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7367,7 +7334,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4660 +// line internal/php7/php7.y:4627 { yyVAL.node = yyDollar[2].node @@ -7377,7 +7344,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4671 +// line internal/php7/php7.y:4638 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7389,7 +7356,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4681 +// line internal/php7/php7.y:4648 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7406,7 +7373,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4696 +// line internal/php7/php7.y:4663 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7432,7 +7399,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4720 +// line internal/php7/php7.y:4687 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7446,7 +7413,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4735 +// line internal/php7/php7.y:4702 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7464,7 +7431,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4751 +// line internal/php7/php7.y:4718 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7486,7 +7453,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4771 +// line internal/php7/php7.y:4738 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7498,7 +7465,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4781 +// line internal/php7/php7.y:4748 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7510,7 +7477,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4791 +// line internal/php7/php7.y:4758 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7532,7 +7499,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4811 +// line internal/php7/php7.y:4778 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7544,7 +7511,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4821 +// line internal/php7/php7.y:4788 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7556,13 +7523,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4834 +// line internal/php7/php7.y:4801 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4838 +// line internal/php7/php7.y:4805 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7571,7 +7538,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4848 +// line internal/php7/php7.y:4815 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 0ecf1de..9cf8c08 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -909,34 +909,13 @@ statement: } | T_SWITCH '(' expr ')' switch_case_list { - exprBrackets := &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, - } - - switch n := $5.(type) { - case *ast.StmtSwitch: - n.Cond = exprBrackets - case *ast.StmtAltSwitch: - n.Cond = exprBrackets - default: - panic("unexpected node type") - } + $5.(*ast.StmtSwitch).SwitchTkn = $1 + $5.(*ast.StmtSwitch).OpenParenthesisTkn = $2 + $5.(*ast.StmtSwitch).Cond = $3 + $5.(*ast.StmtSwitch).CloseParenthesisTkn = $4 + $5.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition($1, $5) $$ = $5 - - // save position - exprBrackets.GetNode().Position = position.NewTokensPosition($2, $4) - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_BREAK optional_expr ';' { @@ -1599,95 +1578,83 @@ declare_statement: switch_case_list: '{' case_list '}' { - caseList := &ast.StmtCaseList{ast.Node{}, $2} - $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition($1, $3) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenCurlyBracketTkn: $1, + CaseList: $2, + CloseCurlyBracketTkn: $3, + } } | '{' ';' case_list '}' { - caseList := &ast.StmtCaseList{ast.Node{}, $3} - $$ = &ast.StmtSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating(caseList, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + OpenCurlyBracketTkn: $1, + CaseSeparatorTkn: $2, + CaseList: $3, + CloseCurlyBracketTkn: $4, + } } | ':' case_list T_ENDSWITCH ';' { - caseList := &ast.StmtCaseList{ast.Node{}, $2} - $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + Alt: true, + ColonTkn: $1, + CaseList: $2, + EndSwitchTkn: $3, + SemiColonTkn: $4, + } } | ':' ';' case_list T_ENDSWITCH ';' { - - caseList := &ast.StmtCaseList{ast.Node{}, $3} - $$ = &ast.StmtAltSwitch{ast.Node{}, nil, caseList} - - // save position - caseList.GetNode().Position = position.NewNodeListPosition($3) - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(caseList, token.CaseListStart, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(caseList, token.CaseListEnd, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $5.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) + $$ = &ast.StmtSwitch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $5), + }, + Alt: true, + ColonTkn: $1, + CaseSeparatorTkn: $2, + CaseList: $3, + EndSwitchTkn: $4, + SemiColonTkn: $5, + } } ; case_list: /* empty */ { - $$ = []ast.Vertex{} + $$ = nil } | case_list T_CASE expr case_separator inner_statement_list { - _case := &ast.StmtCase{ast.Node{}, $3, $5} - $$ = append($1, _case) - - // save position - _case.GetNode().Position = position.NewTokenNodeListPosition($2, $5) - - // save comments - yylex.(*Parser).setFreeFloating(_case, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(_case, token.Expr, append($4.SkippedTokens)) - yylex.(*Parser).setToken(_case, token.CaseSeparator, $4.SkippedTokens) + $$ = append($1, &ast.StmtCase{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($2, $5), + }, + CaseTkn: $2, + Cond: $3, + CaseSeparatorTkn: $4, + Stmts: $5, + }) } | case_list T_DEFAULT case_separator inner_statement_list { - _default := &ast.StmtDefault{ast.Node{}, $4} - $$ = append($1, _default) - - // save position - _default.GetNode().Position = position.NewTokenNodeListPosition($2, $4) - - // save comments - yylex.(*Parser).setFreeFloating(_default, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(_default, token.Default, $3.SkippedTokens) - yylex.(*Parser).setToken(_default, token.CaseSeparator, $3.SkippedTokens) + $$ = append($1, &ast.StmtDefault{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($2, $4), + }, + DefaultTkn: $2, + CaseSeparatorTkn: $3, + Stmts: $4, + }) } ; diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 24499be..06528b4 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -7338,7 +7338,7 @@ func TestPhp7(t *testing.T) { }, }, }, - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 122, @@ -7347,6 +7347,7 @@ func TestPhp7(t *testing.T) { EndPos: 2694, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -7358,75 +7359,65 @@ func TestPhp7(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 123, - EndLine: -1, - StartPos: 2651, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 123, + EndLine: -1, + StartPos: 2651, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 123, - EndLine: -1, - StartPos: 2651, - EndPos: -1, + EndLine: 123, + StartPos: 2656, + EndPos: 2657, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 123, - EndLine: 123, - StartPos: 2656, - EndPos: 2657, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtDefault{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 124, - EndLine: -1, - StartPos: 2663, - EndPos: -1, - }, + Stmts: []ast.Vertex{}, + }, + &ast.StmtDefault{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 124, + EndLine: -1, + StartPos: 2663, + EndPos: -1, }, - Stmts: []ast.Vertex{}, }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 125, + EndLine: -1, + StartPos: 2676, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 125, - EndLine: -1, - StartPos: 2676, - EndPos: -1, + EndLine: 125, + StartPos: 2681, + EndPos: 2682, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 125, - EndLine: 125, - StartPos: 2681, - EndPos: 2682, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ Node: ast.Node{ Position: &position.Position{ StartLine: 128, @@ -7435,6 +7426,7 @@ func TestPhp7(t *testing.T) { EndPos: 2744, }, }, + Alt: true, Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ @@ -7446,60 +7438,50 @@ func TestPhp7(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 129, - EndLine: -1, - StartPos: 2714, - EndPos: -1, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 129, + EndLine: -1, + StartPos: 2714, + EndPos: -1, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 129, - EndLine: -1, - StartPos: 2714, - EndPos: -1, + EndLine: 129, + StartPos: 2719, + EndPos: 2720, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 129, - EndLine: 129, - StartPos: 2719, - EndPos: 2720, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("1"), }, - &ast.StmtCase{ + Stmts: []ast.Vertex{}, + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 130, + EndLine: -1, + StartPos: 2726, + EndPos: -1, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 130, - EndLine: -1, - StartPos: 2726, - EndPos: -1, + EndLine: 130, + StartPos: 2731, + EndPos: 2732, }, }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2731, - EndPos: 2732, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, + Value: []byte("2"), }, + Stmts: []ast.Vertex{}, }, }, }, @@ -7523,78 +7505,68 @@ func TestPhp7(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 133, - EndLine: 136, - StartPos: 2757, - EndPos: 2798, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 134, + EndLine: 134, + StartPos: 2763, + EndPos: 2777, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 2763, - EndPos: 2777, + StartPos: 2768, + EndPos: 2769, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 134, EndLine: 134, - StartPos: 2768, - EndPos: 2769, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 2771, - EndPos: 2777, - }, + StartPos: 2771, + EndPos: 2777, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 135, + EndLine: 135, + StartPos: 2782, + EndPos: 2796, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2782, - EndPos: 2796, + StartPos: 2787, + EndPos: 2788, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 135, EndLine: 135, - StartPos: 2787, - EndPos: 2788, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2790, - EndPos: 2796, - }, + StartPos: 2790, + EndPos: 2796, }, }, }, @@ -7622,78 +7594,68 @@ func TestPhp7(t *testing.T) { }, Value: []byte("1"), }, - CaseList: &ast.StmtCaseList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 138, - EndLine: 141, - StartPos: 2811, - EndPos: 2853, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 139, + EndLine: 139, + StartPos: 2818, + EndPos: 2832, + }, }, - }, - Cases: []ast.Vertex{ - &ast.StmtCase{ + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 2818, - EndPos: 2832, + StartPos: 2823, + EndPos: 2824, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("1"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 139, EndLine: 139, - StartPos: 2823, - EndPos: 2824, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 2826, - EndPos: 2832, - }, + StartPos: 2826, + EndPos: 2832, }, }, }, }, - &ast.StmtCase{ + }, + &ast.StmtCase{ + Node: ast.Node{ + Position: &position.Position{ + StartLine: 140, + EndLine: 140, + StartPos: 2837, + EndPos: 2851, + }, + }, + Cond: &ast.ScalarLnumber{ Node: ast.Node{ Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 2837, - EndPos: 2851, + StartPos: 2842, + EndPos: 2843, }, }, - Cond: &ast.ScalarLnumber{ + Value: []byte("2"), + }, + Stmts: []ast.Vertex{ + &ast.StmtBreak{ Node: ast.Node{ Position: &position.Position{ StartLine: 140, EndLine: 140, - StartPos: 2842, - EndPos: 2843, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2845, - EndPos: 2851, - }, + StartPos: 2845, + EndPos: 2851, }, }, }, diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index d86bf68..33713e7 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -28,10 +28,8 @@ type NodeVisitor interface { Argument(n *Argument) StmtAltForeach(n *StmtAltForeach) - StmtAltSwitch(n *StmtAltSwitch) StmtBreak(n *StmtBreak) StmtCase(n *StmtCase) - StmtCaseList(n *StmtCaseList) StmtCatch(n *StmtCatch) StmtClass(n *StmtClass) StmtClassConstList(n *StmtClassConstList) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 80685cd..26850a4 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -188,17 +188,6 @@ func (n *StmtAltForeach) Accept(v NodeVisitor) { v.StmtAltForeach(n) } -// StmtAltSwitch node -type StmtAltSwitch struct { - Node - Cond Vertex - CaseList *StmtCaseList -} - -func (n *StmtAltSwitch) Accept(v NodeVisitor) { - v.StmtAltSwitch(n) -} - // StmtBreak node type StmtBreak struct { Node @@ -212,24 +201,16 @@ func (n *StmtBreak) Accept(v NodeVisitor) { // StmtCase node type StmtCase struct { Node - Cond Vertex - Stmts []Vertex + CaseTkn *token.Token + Cond Vertex + CaseSeparatorTkn *token.Token + Stmts []Vertex } func (n *StmtCase) Accept(v NodeVisitor) { v.StmtCase(n) } -// StmtCaseList node -type StmtCaseList struct { - Node - Cases []Vertex -} - -func (n *StmtCaseList) Accept(v NodeVisitor) { - v.StmtCaseList(n) -} - // StmtCatch node type StmtCatch struct { Node @@ -355,7 +336,9 @@ func (n *StmtDeclare) Accept(v NodeVisitor) { // StmtDefault node type StmtDefault struct { Node - Stmts []Vertex + DefaultTkn *token.Token + CaseSeparatorTkn *token.Token + Stmts []Vertex } func (n *StmtDefault) Accept(v NodeVisitor) { @@ -674,8 +657,18 @@ func (n *StmtStmtList) Accept(v NodeVisitor) { // StmtSwitch node type StmtSwitch struct { Node - Cond Vertex - CaseList *StmtCaseList + Alt bool + SwitchTkn *token.Token + OpenParenthesisTkn *token.Token + Cond Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + OpenCurlyBracketTkn *token.Token + CaseSeparatorTkn *token.Token + CaseList []Vertex + CloseCurlyBracketTkn *token.Token + EndSwitchTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtSwitch) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 629d6ec..cca893c 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -146,23 +146,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Stmt) t.visitor.Leave("Stmt", true) } - case *ast.StmtAltSwitch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.CaseList != nil { - t.visitor.Enter("CaseList", true) - t.Traverse(nn.CaseList) - t.visitor.Leave("CaseList", true) - } case *ast.StmtBreak: if nn == nil { return @@ -194,20 +177,6 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Stmts", false) } - case *ast.StmtCaseList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cases != nil { - t.visitor.Enter("Cases", false) - for _, c := range nn.Cases { - t.Traverse(c) - } - t.visitor.Leave("Cases", false) - } case *ast.StmtCatch: if nn == nil { return @@ -869,9 +838,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.visitor.Leave("Cond", true) } if nn.CaseList != nil { - t.visitor.Enter("CaseList", true) - t.Traverse(nn.CaseList) - t.visitor.Leave("CaseList", true) + t.visitor.Enter("CaseList", false) + for _, c := range nn.CaseList { + t.Traverse(c) + } + t.visitor.Leave("CaseList", false) } case *ast.StmtThrow: if nn == nil { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index bd9cc4e..5569a60 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -258,12 +258,6 @@ func (v *Dump) StmtAltForeach(n *ast.StmtAltForeach) { v.printNode(n.GetNode()) } -func (v *Dump) StmtAltSwitch(n *ast.StmtAltSwitch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtAltSwitch{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtBreak{\n") @@ -276,12 +270,6 @@ func (v *Dump) StmtCase(n *ast.StmtCase) { v.printNode(n.GetNode()) } -func (v *Dump) StmtCaseList(n *ast.StmtCaseList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtCaseList{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtCatch(n *ast.StmtCatch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCatch{\n") @@ -540,6 +528,11 @@ func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtSwitch{\n") v.printNode(n.GetNode()) + + if n.Alt { + v.printIndent(v.indent) + v.print("Alt: true,\n") + } } func (v *Dump) StmtThrow(n *ast.StmtThrow) { diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index 9160d72..0d7ce76 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -13,26 +13,6 @@ func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { return true } -func (v *FilterParserNodes) StmtSwitch(n *ast.StmtSwitch) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtAltSwitch(n *ast.StmtAltSwitch) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - func (v *FilterParserNodes) ExprExit(n *ast.ExprExit) { for { if nn, ok := n.Expr.(*ast.ParserBrackets); ok { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 9ec8a3d..b59f05b 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -141,3 +141,25 @@ func (v *FilterTokens) StmtFor(n *ast.StmtFor) { n.EndForTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtSwitch(n *ast.StmtSwitch) { + n.SwitchTkn = nil + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + n.OpenCurlyBracketTkn = nil + n.CaseSeparatorTkn = nil + n.ColonTkn = nil + n.CloseCurlyBracketTkn = nil + n.EndSwitchTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtCase(n *ast.StmtCase) { + n.CaseTkn = nil + n.CaseSeparatorTkn = nil +} + +func (v *FilterTokens) StmtDefault(n *ast.StmtDefault) { + n.DefaultTkn = nil + n.CaseSeparatorTkn = nil +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 7fd4992..225a604 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -58,10 +58,6 @@ func (v *Null) StmtAltForeach(_ *ast.StmtAltForeach) { // do nothing } -func (v *Null) StmtAltSwitch(_ *ast.StmtAltSwitch) { - // do nothing -} - func (v *Null) StmtBreak(_ *ast.StmtBreak) { // do nothing } @@ -70,10 +66,6 @@ func (v *Null) StmtCase(_ *ast.StmtCase) { // do nothing } -func (v *Null) StmtCaseList(_ *ast.StmtCaseList) { - // do nothing -} - func (v *Null) StmtCatch(_ *ast.StmtCatch) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 1053b76..987655d 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -299,8 +299,6 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { case *ast.StmtAltForeach: p.printStmtAltForeach(n) - case *ast.StmtAltSwitch: - p.printStmtAltSwitch(n) case *ast.StmtBreak: p.printStmtBreak(n) case *ast.StmtCase: @@ -1412,21 +1410,6 @@ func (p *PrettyPrinter) printStmtAltIf(n ast.Vertex) { io.WriteString(p.w, "endif;") } -func (p *PrettyPrinter) printStmtAltSwitch(n ast.Vertex) { - nn := n.(*ast.StmtAltSwitch) - - io.WriteString(p.w, "switch (") - p.Print(nn.Cond) - io.WriteString(p.w, ") :\n") - - s := nn.CaseList.Cases - p.printNodes(s) - - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "endswitch;") -} - func (p *PrettyPrinter) printStmtBreak(n ast.Vertex) { nn := n.(*ast.StmtBreak) @@ -2005,17 +1988,37 @@ func (p *PrettyPrinter) printStmtStmtList(n ast.Vertex) { func (p *PrettyPrinter) printStmtSwitch(n ast.Vertex) { nn := n.(*ast.StmtSwitch) + if nn.Alt { + p.printStmtAltSwitch(n) + return + } + io.WriteString(p.w, "switch (") p.Print(nn.Cond) io.WriteString(p.w, ")") io.WriteString(p.w, " {\n") - p.printNodes(nn.CaseList.Cases) + p.printNodes(nn.CaseList) io.WriteString(p.w, "\n") p.printIndent() io.WriteString(p.w, "}") } +func (p *PrettyPrinter) printStmtAltSwitch(n ast.Vertex) { + nn := n.(*ast.StmtSwitch) + + io.WriteString(p.w, "switch (") + p.Print(nn.Cond) + io.WriteString(p.w, ") :\n") + + s := nn.CaseList + p.printNodes(s) + + io.WriteString(p.w, "\n") + p.printIndent() + io.WriteString(p.w, "endswitch;") +} + func (p *PrettyPrinter) printStmtThrow(n ast.Vertex) { nn := n.(*ast.StmtThrow) diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index 0eec375..54fcdd0 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -2300,21 +2300,20 @@ func TestPrintStmtAltSwitch(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtNamespace{ Stmts: []ast.Vertex{ - &ast.StmtAltSwitch{ + &ast.StmtSwitch{ + Alt: true, Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - CaseList: &ast.StmtCaseList{ - Cases: []ast.Vertex{ - &ast.StmtCase{ - Cond: &ast.ScalarString{Value: []byte("'a'")}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'a'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, - &ast.StmtCase{ - Cond: &ast.ScalarString{Value: []byte("'b'")}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, + }, + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'b'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }, @@ -3682,19 +3681,17 @@ func TestPrintStmtSwitch(t *testing.T) { Stmts: []ast.Vertex{ &ast.StmtSwitch{ Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - CaseList: &ast.StmtCaseList{ - Cases: []ast.Vertex{ - &ast.StmtCase{ - Cond: &ast.ScalarString{Value: []byte("'a'")}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, + CaseList: []ast.Vertex{ + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'a'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, }, - &ast.StmtCase{ - Cond: &ast.ScalarString{Value: []byte("'b'")}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, + }, + &ast.StmtCase{ + Cond: &ast.ScalarString{Value: []byte("'b'")}, + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, }, }, }, diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index b7ded2f..5064d70 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -361,8 +361,6 @@ func (p *Printer) printNode(n ast.Vertex) { case *ast.StmtAltForeach: p.printStmtAltForeach(n) - case *ast.StmtAltSwitch: - p.printStmtAltSwitch(n) case *ast.StmtBreak: p.printStmtBreak(n) case *ast.StmtCase: @@ -2019,41 +2017,6 @@ func (p *Printer) printStmtAltForeach(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtAltSwitch(n ast.Vertex) { - nn := n.(*ast.StmtAltSwitch) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "switch") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") - } - - p.Print(nn.Cond) - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") - } - - p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") - - p.printFreeFloating(nn.CaseList, token.Start) - p.printFreeFloating(nn.CaseList, token.CaseListStart) - p.printNodes(nn.CaseList.Cases) - p.printFreeFloating(nn.CaseList, token.CaseListEnd) - p.printFreeFloating(nn.CaseList, token.End) - - io.WriteString(p.w, "endswitch") - p.printFreeFloating(nn, token.AltEnd) - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printStmtBreak(n ast.Vertex) { nn := n.(*ast.StmtBreak) p.printFreeFloating(nn, token.Start) @@ -2075,26 +2038,12 @@ func (p *Printer) printStmtBreak(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtCase(n ast.Vertex) { - nn := n.(*ast.StmtCase) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "case") - if nn.Cond.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Cond) - p.printFreeFloating(nn, token.Expr) - p.printFreeFloating(nn, token.CaseSeparator) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ":") - } - - if len(nn.Stmts) > 0 { - p.printNodes(nn.Stmts) - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtCase(n *ast.StmtCase) { + p.printToken(n.CaseTkn, "case") + p.bufStart = " " + p.Print(n.Cond) + p.printToken(n.CaseSeparatorTkn, ":") + p.printNodes(n.Stmts) } func (p *Printer) printStmtCatch(n ast.Vertex) { @@ -2308,22 +2257,10 @@ func (p *Printer) printStmtDeclare(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtDefault(n ast.Vertex) { - nn := n.(*ast.StmtDefault) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "default") - p.printFreeFloating(nn, token.Default) - p.printFreeFloating(nn, token.CaseSeparator) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ":") - } - - if len(nn.Stmts) > 0 { - p.printNodes(nn.Stmts) - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtDefault(n *ast.StmtDefault) { + p.printToken(n.DefaultTkn, "default") + p.printToken(n.CaseSeparatorTkn, ":") + p.printNodes(n.Stmts) } func (p *Printer) printStmtDo(n *ast.StmtDo) { @@ -2828,31 +2765,32 @@ func (p *Printer) printStmtStmtList(n *ast.StmtStmtList) { p.printToken(n.CloseCurlyBracket, "}") } -func (p *Printer) printStmtSwitch(n ast.Vertex) { - nn := n.(*ast.StmtSwitch) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "switch") - - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") +func (p *Printer) printStmtSwitch(n *ast.StmtSwitch) { + if n.Alt { + p.printStmtAltSwitch(n) + return } - p.Print(nn.Cond) + p.printToken(n.SwitchTkn, "switch") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.OpenCurlyBracketTkn, "{") + p.printToken(n.CaseSeparatorTkn, "") + p.printNodes(n.CaseList) + p.printToken(n.CloseCurlyBracketTkn, "}") +} - if _, ok := nn.Cond.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") - } - - p.printFreeFloating(nn.CaseList, token.Start) - io.WriteString(p.w, "{") - p.printFreeFloating(nn.CaseList, token.CaseListStart) - p.printNodes(nn.CaseList.Cases) - p.printFreeFloating(nn.CaseList, token.CaseListEnd) - io.WriteString(p.w, "}") - p.printFreeFloating(nn.CaseList, token.End) - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtAltSwitch(n *ast.StmtSwitch) { + p.printToken(n.SwitchTkn, "switch") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Cond) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.ColonTkn, ":") + p.printToken(n.CaseSeparatorTkn, "") + p.printNodes(n.CaseList) + p.printToken(n.EndSwitchTkn, "endswitch") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtThrow(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index c607b65..2ea9ea4 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -791,7 +791,8 @@ func TestParseAndPrintPhp5AltForeach(t *testing.T) { } func TestParseAndPrintPhp5AltSwitch(t *testing.T) { - src := ` Date: Sun, 6 Sep 2020 13:02:13 +0300 Subject: [PATCH 056/140] [refactoring] update ast structure of "Break", "Continue" nodes --- internal/php5/php5.go | 1000 +++++++++++----------- internal/php5/php5.y | 66 +- internal/php7/php7.go | 1022 +++++++++++------------ internal/php7/php7.y | 34 +- pkg/ast/node.go | 8 +- pkg/ast/visitor/filter_tokens.go | 10 + pkg/printer/printer.go | 45 +- pkg/printer/printer_parsed_php5_test.go | 6 +- pkg/printer/printer_parsed_php7_test.go | 6 +- 9 files changed, 1089 insertions(+), 1108 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 86cad0f..c43d502 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6180 +// line internal/php5/php5.y:6174 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3056,61 +3056,55 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:952 { - yyVAL.node = &ast.StmtBreak{ast.Node{}, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtBreak{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + BreakTkn: yyDollar[1].token, + SemiColonTkn: yyDollar[2].token, + } } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:964 + // line internal/php5/php5.y:962 { - yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtBreak{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + BreakTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:976 + // line internal/php5/php5.y:973 { - yyVAL.node = &ast.StmtContinue{ast.Node{}, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtContinue{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + ContinueTkn: yyDollar[1].token, + SemiColonTkn: yyDollar[2].token, + } } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:988 + // line internal/php5/php5.y:983 { - yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtContinue{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ContinueTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1000 + // line internal/php5/php5.y:994 { yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} @@ -3124,7 +3118,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1012 + // line internal/php5/php5.y:1006 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3138,7 +3132,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1024 + // line internal/php5/php5.y:1018 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3152,7 +3146,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1036 + // line internal/php5/php5.y:1030 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3166,7 +3160,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1048 + // line internal/php5/php5.y:1042 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3180,7 +3174,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1060 + // line internal/php5/php5.y:1054 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3194,7 +3188,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1072 + // line internal/php5/php5.y:1066 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3209,7 +3203,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1085 + // line internal/php5/php5.y:1079 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3221,7 +3215,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1095 + // line internal/php5/php5.y:1089 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3235,7 +3229,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1107 + // line internal/php5/php5.y:1101 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3251,7 +3245,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1121 + // line internal/php5/php5.y:1115 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3292,7 +3286,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1159 + // line internal/php5/php5.y:1153 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3333,7 +3327,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1197 + // line internal/php5/php5.y:1191 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3348,7 +3342,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1210 + // line internal/php5/php5.y:1204 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3361,7 +3355,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1221 + // line internal/php5/php5.y:1215 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3379,7 +3373,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1237 + // line internal/php5/php5.y:1231 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3393,7 +3387,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1249 + // line internal/php5/php5.y:1243 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3410,13 +3404,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1267 + // line internal/php5/php5.y:1261 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1271 + // line internal/php5/php5.y:1265 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3438,13 +3432,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1294 + // line internal/php5/php5.y:1288 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1298 + // line internal/php5/php5.y:1292 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3458,31 +3452,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1313 + // line internal/php5/php5.y:1307 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1317 + // line internal/php5/php5.y:1311 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1324 + // line internal/php5/php5.y:1318 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1328 + // line internal/php5/php5.y:1322 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1335 + // line internal/php5/php5.y:1329 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3503,13 +3497,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1357 + // line internal/php5/php5.y:1351 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1355 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3518,49 +3512,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1371 + // line internal/php5/php5.y:1365 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1378 + // line internal/php5/php5.y:1372 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1385 + // line internal/php5/php5.y:1379 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1392 + // line internal/php5/php5.y:1386 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1396 + // line internal/php5/php5.y:1390 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1403 + // line internal/php5/php5.y:1397 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1407 + // line internal/php5/php5.y:1401 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1414 + // line internal/php5/php5.y:1408 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3584,7 +3578,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1439 + // line internal/php5/php5.y:1433 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3612,7 +3606,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1465 + // line internal/php5/php5.y:1459 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3629,7 +3623,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1484 + // line internal/php5/php5.y:1478 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3641,7 +3635,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1494 + // line internal/php5/php5.y:1488 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3656,7 +3650,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1507 + // line internal/php5/php5.y:1501 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3668,7 +3662,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1517 + // line internal/php5/php5.y:1511 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3683,13 +3677,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1533 + // line internal/php5/php5.y:1527 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1537 + // line internal/php5/php5.y:1531 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3701,19 +3695,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1544 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1551 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1561 + // line internal/php5/php5.y:1555 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3725,13 +3719,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1574 + // line internal/php5/php5.y:1568 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1578 + // line internal/php5/php5.y:1572 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3743,13 +3737,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1591 + // line internal/php5/php5.y:1585 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1595 + // line internal/php5/php5.y:1589 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3763,13 +3757,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1607 + // line internal/php5/php5.y:1601 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1611 + // line internal/php5/php5.y:1605 { yyVAL.node = yyDollar[2].node @@ -3778,13 +3772,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1621 + // line internal/php5/php5.y:1615 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1625 + // line internal/php5/php5.y:1619 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3796,7 +3790,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1635 + // line internal/php5/php5.y:1629 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3810,7 +3804,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1650 + // line internal/php5/php5.y:1644 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3821,7 +3815,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1659 + // line internal/php5/php5.y:1653 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3841,7 +3835,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1680 + // line internal/php5/php5.y:1674 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3850,7 +3844,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1687 + // line internal/php5/php5.y:1681 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3871,7 +3865,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1710 + // line internal/php5/php5.y:1704 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3880,7 +3874,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1717 + // line internal/php5/php5.y:1711 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3901,7 +3895,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1740 + // line internal/php5/php5.y:1734 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3923,7 +3917,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1760 + // line internal/php5/php5.y:1754 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3944,7 +3938,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1783 + // line internal/php5/php5.y:1777 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3957,7 +3951,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1794 + // line internal/php5/php5.y:1788 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,7 +3965,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1806 + // line internal/php5/php5.y:1800 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,7 +3980,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1819 + // line internal/php5/php5.y:1813 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4002,13 +3996,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1837 + // line internal/php5/php5.y:1831 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1841 + // line internal/php5/php5.y:1835 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4022,7 +4016,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1853 + // line internal/php5/php5.y:1847 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4035,19 +4029,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1868 + // line internal/php5/php5.y:1862 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1872 + // line internal/php5/php5.y:1866 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1880 + // line internal/php5/php5.y:1874 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4052,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1883 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4078,13 +4072,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1912 + // line internal/php5/php5.y:1906 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1916 + // line internal/php5/php5.y:1910 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4099,13 +4093,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1927 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1937 + // line internal/php5/php5.y:1931 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4127,13 +4121,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1961 + // line internal/php5/php5.y:1955 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1965 + // line internal/php5/php5.y:1959 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4145,13 +4139,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1979 + // line internal/php5/php5.y:1973 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1983 + // line internal/php5/php5.y:1977 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4170,25 +4164,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2004 + // line internal/php5/php5.y:1998 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2008 + // line internal/php5/php5.y:2002 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2015 + // line internal/php5/php5.y:2009 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2013 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4197,7 +4191,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2029 + // line internal/php5/php5.y:2023 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4233,7 +4227,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2063 + // line internal/php5/php5.y:2057 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4270,13 +4264,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2102 + // line internal/php5/php5.y:2096 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2106 + // line internal/php5/php5.y:2100 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4288,7 +4282,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2116 + // line internal/php5/php5.y:2110 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4300,13 +4294,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2126 + // line internal/php5/php5.y:2120 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2134 + // line internal/php5/php5.y:2128 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4319,7 +4313,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2145 + // line internal/php5/php5.y:2139 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4332,7 +4326,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2156 + // line internal/php5/php5.y:2150 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4347,13 +4341,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2173 + // line internal/php5/php5.y:2167 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2171 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4362,7 +4356,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2187 + // line internal/php5/php5.y:2181 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4374,7 +4368,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2191 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4386,7 +4380,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2201 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4398,7 +4392,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2217 + // line internal/php5/php5.y:2211 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4410,7 +4404,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2230 + // line internal/php5/php5.y:2224 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4419,13 +4413,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2237 + // line internal/php5/php5.y:2231 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2245 + // line internal/php5/php5.y:2239 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4439,7 +4433,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2257 + // line internal/php5/php5.y:2251 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4451,7 +4445,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2267 + // line internal/php5/php5.y:2261 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4465,7 +4459,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2283 + // line internal/php5/php5.y:2277 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4483,7 +4477,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2299 + // line internal/php5/php5.y:2293 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4502,7 +4496,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2316 + // line internal/php5/php5.y:2310 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4519,7 +4513,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2331 + // line internal/php5/php5.y:2325 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4537,19 +4531,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2351 + // line internal/php5/php5.y:2345 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2355 + // line internal/php5/php5.y:2349 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2363 + // line internal/php5/php5.y:2357 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4563,7 +4557,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2375 + // line internal/php5/php5.y:2369 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4571,13 +4565,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2381 + // line internal/php5/php5.y:2375 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2385 + // line internal/php5/php5.y:2379 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4608,7 +4602,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2417 + // line internal/php5/php5.y:2411 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4620,13 +4614,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2430 + // line internal/php5/php5.y:2424 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2434 + // line internal/php5/php5.y:2428 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4640,7 +4634,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2440 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4652,7 +4646,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2456 + // line internal/php5/php5.y:2450 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4664,31 +4658,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2469 + // line internal/php5/php5.y:2463 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2473 + // line internal/php5/php5.y:2467 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2480 + // line internal/php5/php5.y:2474 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2484 + // line internal/php5/php5.y:2478 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2491 + // line internal/php5/php5.y:2485 { yyVAL.node = yyDollar[1].node @@ -4698,7 +4692,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2499 + // line internal/php5/php5.y:2493 { yyVAL.node = yyDollar[1].node @@ -4708,7 +4702,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2510 + // line internal/php5/php5.y:2504 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4721,13 +4715,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2524 + // line internal/php5/php5.y:2518 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2528 + // line internal/php5/php5.y:2522 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4736,7 +4730,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2538 + // line internal/php5/php5.y:2532 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4750,13 +4744,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2550 + // line internal/php5/php5.y:2544 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2557 + // line internal/php5/php5.y:2551 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4772,7 +4766,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2574 + // line internal/php5/php5.y:2568 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4788,7 +4782,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2588 + // line internal/php5/php5.y:2582 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4801,19 +4795,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2602 + // line internal/php5/php5.y:2596 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2606 + // line internal/php5/php5.y:2600 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2613 + // line internal/php5/php5.y:2607 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4826,7 +4820,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2624 + // line internal/php5/php5.y:2618 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4839,13 +4833,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2638 + // line internal/php5/php5.y:2632 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2642 + // line internal/php5/php5.y:2636 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4858,31 +4852,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2656 + // line internal/php5/php5.y:2650 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2660 + // line internal/php5/php5.y:2654 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2667 + // line internal/php5/php5.y:2661 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2671 + // line internal/php5/php5.y:2665 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2672 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4894,7 +4888,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2688 + // line internal/php5/php5.y:2682 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4906,7 +4900,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2698 + // line internal/php5/php5.y:2692 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4918,7 +4912,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2702 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4930,7 +4924,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2718 + // line internal/php5/php5.y:2712 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4942,7 +4936,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2728 + // line internal/php5/php5.y:2722 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4954,7 +4948,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2741 + // line internal/php5/php5.y:2735 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4972,7 +4966,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2751 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4991,7 +4985,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2774 + // line internal/php5/php5.y:2768 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5008,7 +5002,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2789 + // line internal/php5/php5.y:2783 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5026,7 +5020,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2808 + // line internal/php5/php5.y:2802 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5051,7 +5045,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2831 + // line internal/php5/php5.y:2825 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5079,7 +5073,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2860 + // line internal/php5/php5.y:2854 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5088,25 +5082,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2867 + // line internal/php5/php5.y:2861 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2875 + // line internal/php5/php5.y:2869 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2879 + // line internal/php5/php5.y:2873 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2886 + // line internal/php5/php5.y:2880 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5115,25 +5109,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2893 + // line internal/php5/php5.y:2887 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2900 + // line internal/php5/php5.y:2894 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2904 + // line internal/php5/php5.y:2898 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2911 + // line internal/php5/php5.y:2905 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5147,7 +5141,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2923 + // line internal/php5/php5.y:2917 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5161,37 +5155,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2938 + // line internal/php5/php5.y:2932 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2942 + // line internal/php5/php5.y:2936 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2946 + // line internal/php5/php5.y:2940 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2953 + // line internal/php5/php5.y:2947 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2957 + // line internal/php5/php5.y:2951 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2964 + // line internal/php5/php5.y:2958 { if yyDollar[3].node != nil { @@ -5207,7 +5201,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2981 + // line internal/php5/php5.y:2975 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5224,7 +5218,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2996 + // line internal/php5/php5.y:2990 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5237,7 +5231,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3007 + // line internal/php5/php5.y:3001 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5251,7 +5245,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3019 + // line internal/php5/php5.y:3013 { var _new *ast.ExprNew @@ -5278,7 +5272,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3044 + // line internal/php5/php5.y:3038 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5290,7 +5284,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3048 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5302,7 +5296,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3064 + // line internal/php5/php5.y:3058 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5315,7 +5309,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3075 + // line internal/php5/php5.y:3069 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5328,7 +5322,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3086 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5341,7 +5335,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3097 + // line internal/php5/php5.y:3091 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5354,7 +5348,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3108 + // line internal/php5/php5.y:3102 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5367,7 +5361,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3119 + // line internal/php5/php5.y:3113 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5380,7 +5374,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3130 + // line internal/php5/php5.y:3124 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5393,7 +5387,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3141 + // line internal/php5/php5.y:3135 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5406,7 +5400,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3152 + // line internal/php5/php5.y:3146 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5413,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3163 + // line internal/php5/php5.y:3157 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5432,7 +5426,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3174 + // line internal/php5/php5.y:3168 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5445,7 +5439,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3185 + // line internal/php5/php5.y:3179 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5458,7 +5452,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3196 + // line internal/php5/php5.y:3190 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5470,7 +5464,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3206 + // line internal/php5/php5.y:3200 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5483,7 +5477,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3217 + // line internal/php5/php5.y:3211 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5495,7 +5489,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3227 + // line internal/php5/php5.y:3221 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5508,7 +5502,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3232 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5521,7 +5515,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3249 + // line internal/php5/php5.y:3243 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5534,7 +5528,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3260 + // line internal/php5/php5.y:3254 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5547,7 +5541,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3271 + // line internal/php5/php5.y:3265 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5560,7 +5554,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3282 + // line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5573,7 +5567,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3293 + // line internal/php5/php5.y:3287 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5586,7 +5580,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3304 + // line internal/php5/php5.y:3298 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5599,7 +5593,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3315 + // line internal/php5/php5.y:3309 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5612,7 +5606,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3326 + // line internal/php5/php5.y:3320 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5625,7 +5619,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3337 + // line internal/php5/php5.y:3331 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5638,7 +5632,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3348 + // line internal/php5/php5.y:3342 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5651,7 +5645,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3359 + // line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5664,7 +5658,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3364 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5677,7 +5671,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3381 + // line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5690,7 +5684,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3392 + // line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,7 +5697,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3403 + // line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5716,7 +5710,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3414 + // line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5728,7 +5722,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3418 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5740,7 +5734,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3428 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5752,7 +5746,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3444 + // line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5764,7 +5758,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3454 + // line internal/php5/php5.y:3448 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,7 +5771,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3465 + // line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5784,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3476 + // line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5797,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3487 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5817,7 +5811,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3499 + // line internal/php5/php5.y:3493 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5830,7 +5824,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3510 + // line internal/php5/php5.y:3504 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5837,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3521 + // line internal/php5/php5.y:3515 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5856,7 +5850,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3532 + // line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5869,7 +5863,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3543 + // line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5882,19 +5876,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3554 + // line internal/php5/php5.y:3548 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3558 + // line internal/php5/php5.y:3552 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3562 + // line internal/php5/php5.y:3556 { yyVAL.node = yyDollar[2].node @@ -5926,7 +5920,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3592 + // line internal/php5/php5.y:3586 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5940,7 +5934,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3604 + // line internal/php5/php5.y:3598 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5954,13 +5948,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3616 + // line internal/php5/php5.y:3610 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3620 + // line internal/php5/php5.y:3614 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5973,7 +5967,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3631 + // line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5986,7 +5980,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3642 + // line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5999,7 +5993,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3653 + // line internal/php5/php5.y:3647 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6012,7 +6006,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3664 + // line internal/php5/php5.y:3658 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6025,7 +6019,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3675 + // line internal/php5/php5.y:3669 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6038,7 +6032,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3686 + // line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6051,7 +6045,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3697 + // line internal/php5/php5.y:3691 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6071,7 +6065,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3715 + // line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6083,25 +6077,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3725 + // line internal/php5/php5.y:3719 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3729 + // line internal/php5/php5.y:3723 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3733 + // line internal/php5/php5.y:3727 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3731 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6113,7 +6107,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3747 + // line internal/php5/php5.y:3741 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6125,7 +6119,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3757 + // line internal/php5/php5.y:3751 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6137,7 +6131,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3767 + // line internal/php5/php5.y:3761 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6164,7 +6158,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3791 + // line internal/php5/php5.y:3785 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6192,7 +6186,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3819 + // line internal/php5/php5.y:3813 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6204,7 +6198,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3829 + // line internal/php5/php5.y:3823 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6216,7 +6210,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3839 + // line internal/php5/php5.y:3833 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6229,7 +6223,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3850 + // line internal/php5/php5.y:3844 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6242,7 +6236,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3864 + // line internal/php5/php5.y:3858 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6255,7 +6249,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3875 + // line internal/php5/php5.y:3869 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6268,7 +6262,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3886 + // line internal/php5/php5.y:3880 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6284,7 +6278,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3900 + // line internal/php5/php5.y:3894 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6297,7 +6291,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3914 + // line internal/php5/php5.y:3908 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6311,7 +6305,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3926 + // line internal/php5/php5.y:3920 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6324,19 +6318,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3940 + // line internal/php5/php5.y:3934 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3947 + // line internal/php5/php5.y:3941 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3951 + // line internal/php5/php5.y:3945 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6350,7 +6344,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3966 + // line internal/php5/php5.y:3960 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6366,7 +6360,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3980 + // line internal/php5/php5.y:3974 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6385,7 +6379,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3997 + // line internal/php5/php5.y:3991 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6400,7 +6394,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4010 + // line internal/php5/php5.y:4004 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6418,7 +6412,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4029 + // line internal/php5/php5.y:4023 { name := &ast.NameName{ Node: ast.Node{ @@ -6433,7 +6427,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4042 + // line internal/php5/php5.y:4036 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6450,7 +6444,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4057 + // line internal/php5/php5.y:4051 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6466,7 +6460,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4071 + // line internal/php5/php5.y:4065 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6479,7 +6473,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4082 + // line internal/php5/php5.y:4076 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6492,7 +6486,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4093 + // line internal/php5/php5.y:4087 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6505,7 +6499,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4098 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6518,7 +6512,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4115 + // line internal/php5/php5.y:4109 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6530,7 +6524,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4128 + // line internal/php5/php5.y:4122 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6542,7 +6536,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4138 + // line internal/php5/php5.y:4132 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6553,7 +6547,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4147 + // line internal/php5/php5.y:4141 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6566,7 +6560,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4158 + // line internal/php5/php5.y:4152 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6578,7 +6572,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4171 + // line internal/php5/php5.y:4165 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6589,7 +6583,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4180 + // line internal/php5/php5.y:4174 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6602,7 +6596,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4191 + // line internal/php5/php5.y:4185 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6614,19 +6608,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4204 + // line internal/php5/php5.y:4198 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4202 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4215 + // line internal/php5/php5.y:4209 { yyVAL.node = yyDollar[1].node @@ -6667,25 +6661,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4254 + // line internal/php5/php5.y:4248 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4262 + // line internal/php5/php5.y:4256 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4260 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4274 + // line internal/php5/php5.y:4268 { yyVAL.list = yyDollar[2].list @@ -6694,13 +6688,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4278 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4288 + // line internal/php5/php5.y:4282 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6716,19 +6710,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4302 + // line internal/php5/php5.y:4296 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4309 + // line internal/php5/php5.y:4303 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4313 + // line internal/php5/php5.y:4307 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6738,25 +6732,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4315 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4328 + // line internal/php5/php5.y:4322 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4332 + // line internal/php5/php5.y:4326 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4333 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6768,7 +6762,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4349 + // line internal/php5/php5.y:4343 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6780,7 +6774,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4359 + // line internal/php5/php5.y:4353 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6792,7 +6786,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4369 + // line internal/php5/php5.y:4363 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6804,7 +6798,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4379 + // line internal/php5/php5.y:4373 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6816,7 +6810,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4383 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6828,7 +6822,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4399 + // line internal/php5/php5.y:4393 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6840,7 +6834,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4409 + // line internal/php5/php5.y:4403 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6852,7 +6846,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4413 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6864,7 +6858,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4429 + // line internal/php5/php5.y:4423 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6876,7 +6870,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4439 + // line internal/php5/php5.y:4433 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6890,7 +6884,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4451 + // line internal/php5/php5.y:4445 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6902,7 +6896,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4464 + // line internal/php5/php5.y:4458 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6918,25 +6912,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4481 + // line internal/php5/php5.y:4475 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4488 + // line internal/php5/php5.y:4482 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4492 + // line internal/php5/php5.y:4486 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4496 + // line internal/php5/php5.y:4490 { name := &ast.NameName{ Node: ast.Node{ @@ -6951,7 +6945,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4509 + // line internal/php5/php5.y:4503 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6968,7 +6962,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4524 + // line internal/php5/php5.y:4518 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6984,7 +6978,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4538 + // line internal/php5/php5.y:4532 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6998,7 +6992,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4550 + // line internal/php5/php5.y:4544 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7011,13 +7005,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4561 + // line internal/php5/php5.y:4555 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4565 + // line internal/php5/php5.y:4559 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7029,13 +7023,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4575 + // line internal/php5/php5.y:4569 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4582 + // line internal/php5/php5.y:4576 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7048,7 +7042,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4587 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7061,7 +7055,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4604 + // line internal/php5/php5.y:4598 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7074,7 +7068,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4615 + // line internal/php5/php5.y:4609 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7087,7 +7081,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4626 + // line internal/php5/php5.y:4620 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7100,7 +7094,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4637 + // line internal/php5/php5.y:4631 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7113,7 +7107,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4648 + // line internal/php5/php5.y:4642 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7126,7 +7120,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4659 + // line internal/php5/php5.y:4653 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7138,7 +7132,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4663 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7150,7 +7144,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4679 + // line internal/php5/php5.y:4673 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7163,7 +7157,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4690 + // line internal/php5/php5.y:4684 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7176,7 +7170,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4701 + // line internal/php5/php5.y:4695 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7189,7 +7183,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4712 + // line internal/php5/php5.y:4706 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7202,7 +7196,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4723 + // line internal/php5/php5.y:4717 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7215,7 +7209,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4734 + // line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7228,7 +7222,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4745 + // line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7241,7 +7235,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4756 + // line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7254,7 +7248,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4767 + // line internal/php5/php5.y:4761 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7267,7 +7261,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4778 + // line internal/php5/php5.y:4772 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7280,7 +7274,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4789 + // line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7293,7 +7287,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4800 + // line internal/php5/php5.y:4794 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7306,7 +7300,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4811 + // line internal/php5/php5.y:4805 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7319,7 +7313,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4822 + // line internal/php5/php5.y:4816 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7332,7 +7326,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4833 + // line internal/php5/php5.y:4827 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7346,7 +7340,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4845 + // line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7359,7 +7353,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4856 + // line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7372,7 +7366,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4867 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7385,7 +7379,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4878 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7398,7 +7392,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4889 + // line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7412,7 +7406,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4901 + // line internal/php5/php5.y:4895 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7426,7 +7420,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4913 + // line internal/php5/php5.y:4907 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7438,7 +7432,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4917 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7450,7 +7444,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4933 + // line internal/php5/php5.y:4927 { yyVAL.node = yyDollar[2].node @@ -7460,13 +7454,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4944 + // line internal/php5/php5.y:4938 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4948 + // line internal/php5/php5.y:4942 { name := &ast.NameName{ Node: ast.Node{ @@ -7481,7 +7475,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4961 + // line internal/php5/php5.y:4955 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7498,7 +7492,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4976 + // line internal/php5/php5.y:4970 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7514,7 +7508,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4993 + // line internal/php5/php5.y:4987 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7528,25 +7522,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5005 + // line internal/php5/php5.y:4999 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5003 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5013 + // line internal/php5/php5.y:5007 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5017 + // line internal/php5/php5.y:5011 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7558,7 +7552,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5027 + // line internal/php5/php5.y:5021 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7570,7 +7564,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5037 + // line internal/php5/php5.y:5031 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7582,13 +7576,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5050 + // line internal/php5/php5.y:5044 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5054 + // line internal/php5/php5.y:5048 { yyVAL.list = yyDollar[1].list @@ -7599,19 +7593,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5060 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5070 + // line internal/php5/php5.y:5064 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5077 + // line internal/php5/php5.y:5071 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7626,7 +7620,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5090 + // line internal/php5/php5.y:5084 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7640,7 +7634,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5102 + // line internal/php5/php5.y:5096 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7654,7 +7648,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5114 + // line internal/php5/php5.y:5108 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7667,19 +7661,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5128 + // line internal/php5/php5.y:5122 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5132 + // line internal/php5/php5.y:5126 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5139 + // line internal/php5/php5.y:5133 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7696,7 +7690,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5154 + // line internal/php5/php5.y:5148 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7713,25 +7707,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5173 + // line internal/php5/php5.y:5167 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5181 + // line internal/php5/php5.y:5175 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5182 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5195 + // line internal/php5/php5.y:5189 { yyVAL.node = yyDollar[1].node @@ -7789,25 +7783,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5251 + // line internal/php5/php5.y:5245 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5258 + // line internal/php5/php5.y:5252 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5262 + // line internal/php5/php5.y:5256 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5270 + // line internal/php5/php5.y:5264 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7821,7 +7815,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5285 + // line internal/php5/php5.y:5279 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7835,7 +7829,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5297 + // line internal/php5/php5.y:5291 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7849,7 +7843,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5312 + // line internal/php5/php5.y:5306 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7858,31 +7852,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5322 + // line internal/php5/php5.y:5316 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5326 + // line internal/php5/php5.y:5320 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5330 + // line internal/php5/php5.y:5324 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5337 + // line internal/php5/php5.y:5331 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5341 + // line internal/php5/php5.y:5335 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7894,7 +7888,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5354 + // line internal/php5/php5.y:5348 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7907,7 +7901,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5365 + // line internal/php5/php5.y:5359 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7920,13 +7914,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5379 + // line internal/php5/php5.y:5373 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5380 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7939,7 +7933,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5397 + // line internal/php5/php5.y:5391 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7952,31 +7946,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5411 + // line internal/php5/php5.y:5405 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5415 + // line internal/php5/php5.y:5409 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5419 + // line internal/php5/php5.y:5413 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5427 + // line internal/php5/php5.y:5421 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5431 + // line internal/php5/php5.y:5425 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7988,13 +7982,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5441 + // line internal/php5/php5.y:5435 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5442 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8007,7 +8001,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5459 + // line internal/php5/php5.y:5453 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8020,13 +8014,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5470 + // line internal/php5/php5.y:5464 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5478 + // line internal/php5/php5.y:5472 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8040,7 +8034,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5490 + // line internal/php5/php5.y:5484 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8054,25 +8048,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5505 + // line internal/php5/php5.y:5499 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5509 + // line internal/php5/php5.y:5503 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5517 + // line internal/php5/php5.y:5511 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5515 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8082,7 +8076,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5532 + // line internal/php5/php5.y:5526 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8096,7 +8090,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5544 + // line internal/php5/php5.y:5538 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8110,7 +8104,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5556 + // line internal/php5/php5.y:5550 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8120,7 +8114,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5561 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8132,7 +8126,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5577 + // line internal/php5/php5.y:5571 { yyVAL.node = yyDollar[2].node @@ -8145,7 +8139,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5585 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8158,7 +8152,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5602 + // line internal/php5/php5.y:5596 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8175,7 +8169,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5620 + // line internal/php5/php5.y:5614 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8188,7 +8182,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5631 + // line internal/php5/php5.y:5625 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8198,7 +8192,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5643 + // line internal/php5/php5.y:5637 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8210,7 +8204,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5653 + // line internal/php5/php5.y:5647 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8226,19 +8220,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5667 + // line internal/php5/php5.y:5661 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5675 + // line internal/php5/php5.y:5669 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5679 + // line internal/php5/php5.y:5673 { yyVAL.list = yyDollar[1].list @@ -8253,7 +8247,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5695 + // line internal/php5/php5.y:5689 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8268,7 +8262,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5708 + // line internal/php5/php5.y:5702 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8282,7 +8276,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5720 + // line internal/php5/php5.y:5714 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8296,7 +8290,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5732 + // line internal/php5/php5.y:5726 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8309,7 +8303,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5743 + // line internal/php5/php5.y:5737 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8327,7 +8321,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5753 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8343,7 +8337,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5773 + // line internal/php5/php5.y:5767 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8360,7 +8354,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5788 + // line internal/php5/php5.y:5782 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8375,13 +8369,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5804 + // line internal/php5/php5.y:5798 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5808 + // line internal/php5/php5.y:5802 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8394,13 +8388,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5819 + // line internal/php5/php5.y:5813 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5823 + // line internal/php5/php5.y:5817 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8413,7 +8407,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5837 + // line internal/php5/php5.y:5831 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8427,7 +8421,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5849 + // line internal/php5/php5.y:5843 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8444,7 +8438,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5864 + // line internal/php5/php5.y:5858 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8463,7 +8457,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5881 + // line internal/php5/php5.y:5875 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8478,7 +8472,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5894 + // line internal/php5/php5.y:5888 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8495,7 +8489,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5909 + // line internal/php5/php5.y:5903 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8514,7 +8508,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5926 + // line internal/php5/php5.y:5920 { yyVAL.node = yyDollar[2].node @@ -8524,7 +8518,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5937 + // line internal/php5/php5.y:5931 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8536,7 +8530,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5947 + // line internal/php5/php5.y:5941 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8553,7 +8547,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5962 + // line internal/php5/php5.y:5956 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8567,7 +8561,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5977 + // line internal/php5/php5.y:5971 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8581,7 +8575,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5989 + // line internal/php5/php5.y:5983 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8603,7 +8597,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6009 + // line internal/php5/php5.y:6003 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8625,7 +8619,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6029 + // line internal/php5/php5.y:6023 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8637,7 +8631,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6039 + // line internal/php5/php5.y:6033 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8649,7 +8643,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6049 + // line internal/php5/php5.y:6043 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8671,7 +8665,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6069 + // line internal/php5/php5.y:6063 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8683,7 +8677,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6079 + // line internal/php5/php5.y:6073 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8695,13 +8689,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6092 + // line internal/php5/php5.y:6086 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6096 + // line internal/php5/php5.y:6090 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8710,19 +8704,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6106 + // line internal/php5/php5.y:6100 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6110 + // line internal/php5/php5.y:6104 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6117 + // line internal/php5/php5.y:6111 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8738,7 +8732,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6131 + // line internal/php5/php5.y:6125 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8754,7 +8748,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6148 + // line internal/php5/php5.y:6142 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8770,7 +8764,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6165 + // line internal/php5/php5.y:6159 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index cab691e..355007f 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -950,51 +950,45 @@ unticked_statement: } | T_BREAK ';' { - $$ = &ast.StmtBreak{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = &ast.StmtBreak{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + BreakTkn: $1, + SemiColonTkn: $2, + } } | T_BREAK expr ';' { - $$ = &ast.StmtBreak{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtBreak{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + BreakTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_CONTINUE ';' { - $$ = &ast.StmtContinue{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = &ast.StmtContinue{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + ContinueTkn: $1, + SemiColonTkn: $2, + } } | T_CONTINUE expr ';' { - $$ = &ast.StmtContinue{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtContinue{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ContinueTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_RETURN ';' { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 90b1972..d34558c 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4822 +// line internal/php7/php7.y:4820 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:293 + // line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:323 + // line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:327 + // line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:334 + // line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:345 + // line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:352 + // line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:364 + // line internal/php7/php7.y:364 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:378 + // line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:387 + // line internal/php7/php7.y:387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:398 + // line internal/php7/php7.y:398 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:411 + // line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:416 + // line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:420 + // line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:424 + // line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:428 + // line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:432 + // line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:436 + // line internal/php7/php7.y:436 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:448 + // line internal/php7/php7.y:448 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:464 + // line internal/php7/php7.y:464 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:482 + // line internal/php7/php7.y:482 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:494 + // line internal/php7/php7.y:494 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:504 + // line internal/php7/php7.y:504 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:515 + // line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:526 + // line internal/php7/php7.y:526 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:538 + // line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2836,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:552 + // line internal/php7/php7.y:552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:562 + // line internal/php7/php7.y:562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:575 + // line internal/php7/php7.y:575 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:597 + // line internal/php7/php7.y:597 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:621 + // line internal/php7/php7.y:621 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:641 + // line internal/php7/php7.y:641 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:665 + // line internal/php7/php7.y:665 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:669 + // line internal/php7/php7.y:669 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:676 + // line internal/php7/php7.y:676 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:682 + // line internal/php7/php7.y:682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:689 + // line internal/php7/php7.y:689 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:695 + // line internal/php7/php7.y:695 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:702 + // line internal/php7/php7.y:702 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:708 + // line internal/php7/php7.y:708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:715 + // line internal/php7/php7.y:715 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:719 + // line internal/php7/php7.y:719 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:730 + // line internal/php7/php7.y:730 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:744 + // line internal/php7/php7.y:744 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:768 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:772 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:783 + // line internal/php7/php7.y:783 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -3085,13 +3085,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:789 + // line internal/php7/php7.y:789 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:796 + // line internal/php7/php7.y:796 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:807 + // line internal/php7/php7.y:807 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:814 + // line internal/php7/php7.y:814 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:819 + // line internal/php7/php7.y:819 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:823 + // line internal/php7/php7.y:823 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:827 + // line internal/php7/php7.y:827 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:831 + // line internal/php7/php7.y:831 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:835 + // line internal/php7/php7.y:835 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:839 + // line internal/php7/php7.y:839 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:853 + // line internal/php7/php7.y:853 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:864 + // line internal/php7/php7.y:864 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:868 + // line internal/php7/php7.y:868 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:872 + // line internal/php7/php7.y:872 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3198,7 +3198,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:882 + // line internal/php7/php7.y:882 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3215,7 +3215,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:897 + // line internal/php7/php7.y:897 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3231,7 +3231,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:911 + // line internal/php7/php7.y:911 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3243,35 +3243,33 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:921 + // line internal/php7/php7.y:921 { - yyVAL.node = &ast.StmtBreak{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtBreak{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + BreakTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:933 + // line internal/php7/php7.y:932 { - yyVAL.node = &ast.StmtContinue{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtContinue{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ContinueTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:945 + // line internal/php7/php7.y:943 { yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} @@ -3285,7 +3283,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:957 + // line internal/php7/php7.y:955 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3299,7 +3297,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:969 + // line internal/php7/php7.y:967 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3313,7 +3311,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:981 + // line internal/php7/php7.y:979 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3328,7 +3326,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:994 + // line internal/php7/php7.y:992 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3340,7 +3338,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1004 + // line internal/php7/php7.y:1002 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3354,7 +3352,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1016 + // line internal/php7/php7.y:1014 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3374,7 +3372,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1034 + // line internal/php7/php7.y:1032 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3398,7 +3396,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1056 + // line internal/php7/php7.y:1054 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3425,7 +3423,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1081 + // line internal/php7/php7.y:1079 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3440,7 +3438,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1094 + // line internal/php7/php7.y:1092 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3453,7 +3451,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1105 + // line internal/php7/php7.y:1103 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3470,7 +3468,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1118 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3484,7 +3482,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1132 + // line internal/php7/php7.y:1130 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3501,7 +3499,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1147 + // line internal/php7/php7.y:1145 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3516,13 +3514,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1162 + // line internal/php7/php7.y:1160 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1166 + // line internal/php7/php7.y:1164 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3544,13 +3542,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1188 + // line internal/php7/php7.y:1186 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1192 + // line internal/php7/php7.y:1190 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3564,13 +3562,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1204 + // line internal/php7/php7.y:1202 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1208 + // line internal/php7/php7.y:1206 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3584,13 +3582,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1223 + // line internal/php7/php7.y:1221 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1227 + // line internal/php7/php7.y:1225 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3599,13 +3597,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1237 + // line internal/php7/php7.y:1235 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1244 + // line internal/php7/php7.y:1242 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3635,31 +3633,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1275 + // line internal/php7/php7.y:1273 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1279 + // line internal/php7/php7.y:1277 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1286 + // line internal/php7/php7.y:1284 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1290 + // line internal/php7/php7.y:1288 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1297 + // line internal/php7/php7.y:1295 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3677,7 +3675,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1311 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3694,19 +3692,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1331 + // line internal/php7/php7.y:1329 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1335 + // line internal/php7/php7.y:1333 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1342 + // line internal/php7/php7.y:1340 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3718,7 +3716,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1352 + // line internal/php7/php7.y:1350 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3730,7 +3728,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1365 + // line internal/php7/php7.y:1363 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3747,7 +3745,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1383 + // line internal/php7/php7.y:1381 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3764,13 +3762,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1401 + // line internal/php7/php7.y:1399 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1403 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3782,13 +3780,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1418 + // line internal/php7/php7.y:1416 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1422 + // line internal/php7/php7.y:1420 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3800,13 +3798,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1435 + // line internal/php7/php7.y:1433 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1439 + // line internal/php7/php7.y:1437 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3818,13 +3816,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1452 + // line internal/php7/php7.y:1450 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1454 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3836,7 +3834,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1466 + // line internal/php7/php7.y:1464 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3850,7 +3848,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1478 + // line internal/php7/php7.y:1476 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3863,7 +3861,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1490 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3874,7 +3872,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1501 + // line internal/php7/php7.y:1499 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3894,7 +3892,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1520 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3903,7 +3901,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1529 + // line internal/php7/php7.y:1527 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3924,7 +3922,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1549 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3933,7 +3931,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1558 + // line internal/php7/php7.y:1556 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3954,7 +3952,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1580 + // line internal/php7/php7.y:1578 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3967,7 +3965,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1591 + // line internal/php7/php7.y:1589 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3981,7 +3979,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1603 + // line internal/php7/php7.y:1601 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3996,7 +3994,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1616 + // line internal/php7/php7.y:1614 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4012,13 +4010,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1633 + // line internal/php7/php7.y:1631 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1637 + // line internal/php7/php7.y:1635 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4032,7 +4030,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1649 + // line internal/php7/php7.y:1647 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4045,19 +4043,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1661 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1667 + // line internal/php7/php7.y:1665 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1674 + // line internal/php7/php7.y:1672 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4068,7 +4066,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1683 + // line internal/php7/php7.y:1681 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4088,7 +4086,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1704 + // line internal/php7/php7.y:1702 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4103,7 +4101,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1717 + // line internal/php7/php7.y:1715 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4122,13 +4120,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1737 + // line internal/php7/php7.y:1735 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1741 + // line internal/php7/php7.y:1739 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4144,7 +4142,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1758 + // line internal/php7/php7.y:1756 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4166,7 +4164,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1778 + // line internal/php7/php7.y:1776 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4190,7 +4188,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1803 + // line internal/php7/php7.y:1801 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4200,7 +4198,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1811 + // line internal/php7/php7.y:1809 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4224,25 +4222,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1836 + // line internal/php7/php7.y:1834 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1838 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1847 + // line internal/php7/php7.y:1845 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1851 + // line internal/php7/php7.y:1849 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4251,7 +4249,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1861 + // line internal/php7/php7.y:1859 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4287,7 +4285,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1895 + // line internal/php7/php7.y:1893 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4324,25 +4322,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1933 + // line internal/php7/php7.y:1931 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1937 + // line internal/php7/php7.y:1935 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1944 + // line internal/php7/php7.y:1942 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1948 + // line internal/php7/php7.y:1946 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4354,7 +4352,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1961 + // line internal/php7/php7.y:1959 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4366,7 +4364,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1971 + // line internal/php7/php7.y:1969 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4378,19 +4376,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1981 + // line internal/php7/php7.y:1979 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1988 + // line internal/php7/php7.y:1986 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1992 + // line internal/php7/php7.y:1990 { yyVAL.node = yyDollar[2].node @@ -4399,7 +4397,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2002 + // line internal/php7/php7.y:2000 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4412,7 +4410,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2013 + // line internal/php7/php7.y:2011 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4429,13 +4427,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2031 + // line internal/php7/php7.y:2029 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2035 + // line internal/php7/php7.y:2033 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4444,7 +4442,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2045 + // line internal/php7/php7.y:2043 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4456,7 +4454,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2053 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4468,7 +4466,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2068 + // line internal/php7/php7.y:2066 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4477,19 +4475,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2075 + // line internal/php7/php7.y:2073 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2082 + // line internal/php7/php7.y:2080 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2089 + // line internal/php7/php7.y:2087 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4498,13 +4496,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2096 + // line internal/php7/php7.y:2094 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2103 + // line internal/php7/php7.y:2101 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4520,7 +4518,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2115 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4537,19 +4535,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2135 + // line internal/php7/php7.y:2133 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2139 + // line internal/php7/php7.y:2137 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2146 + // line internal/php7/php7.y:2144 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4563,7 +4561,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2158 + // line internal/php7/php7.y:2156 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4577,7 +4575,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2170 + // line internal/php7/php7.y:2168 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4589,7 +4587,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2180 + // line internal/php7/php7.y:2178 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4620,13 +4618,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2210 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2216 + // line internal/php7/php7.y:2214 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4640,7 +4638,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2228 + // line internal/php7/php7.y:2226 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4652,7 +4650,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2238 + // line internal/php7/php7.y:2236 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4664,7 +4662,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2248 + // line internal/php7/php7.y:2246 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4676,19 +4674,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2261 + // line internal/php7/php7.y:2259 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2263 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2270 { yyVAL.node = yyDollar[1].node @@ -4698,7 +4696,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2280 + // line internal/php7/php7.y:2278 { yyVAL.node = yyDollar[1].node @@ -4708,7 +4706,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2291 + // line internal/php7/php7.y:2289 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4721,7 +4719,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2305 + // line internal/php7/php7.y:2303 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4737,7 +4735,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2319 + // line internal/php7/php7.y:2317 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4753,7 +4751,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2331 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4769,7 +4767,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2347 + // line internal/php7/php7.y:2345 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4782,7 +4780,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2361 + // line internal/php7/php7.y:2359 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4796,13 +4794,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2373 + // line internal/php7/php7.y:2371 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2380 + // line internal/php7/php7.y:2378 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4818,7 +4816,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2397 + // line internal/php7/php7.y:2395 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4831,7 +4829,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2406 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4844,13 +4842,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2422 + // line internal/php7/php7.y:2420 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2426 + // line internal/php7/php7.y:2424 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4863,31 +4861,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2440 + // line internal/php7/php7.y:2438 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2442 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2451 + // line internal/php7/php7.y:2449 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2455 + // line internal/php7/php7.y:2453 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2460 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4899,7 +4897,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2472 + // line internal/php7/php7.y:2470 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4911,7 +4909,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2482 + // line internal/php7/php7.y:2480 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4923,7 +4921,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2492 + // line internal/php7/php7.y:2490 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4935,7 +4933,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2500 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4947,7 +4945,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2510 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4959,7 +4957,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2525 + // line internal/php7/php7.y:2523 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4968,13 +4966,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2532 + // line internal/php7/php7.y:2530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2539 + // line internal/php7/php7.y:2537 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4990,7 +4988,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2553 + // line internal/php7/php7.y:2551 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5007,7 +5005,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2571 + // line internal/php7/php7.y:2569 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5015,13 +5013,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2577 + // line internal/php7/php7.y:2575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2584 + // line internal/php7/php7.y:2582 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5041,7 +5039,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2605 + // line internal/php7/php7.y:2603 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5061,7 +5059,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2626 + // line internal/php7/php7.y:2624 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5070,31 +5068,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2633 + // line internal/php7/php7.y:2631 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2640 + // line internal/php7/php7.y:2638 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2647 + // line internal/php7/php7.y:2645 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2651 + // line internal/php7/php7.y:2649 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2658 + // line internal/php7/php7.y:2656 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5103,13 +5101,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2665 + // line internal/php7/php7.y:2663 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2672 + // line internal/php7/php7.y:2670 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5127,7 +5125,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2689 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5142,7 +5140,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2704 + // line internal/php7/php7.y:2702 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5154,7 +5152,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2717 + // line internal/php7/php7.y:2715 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5171,7 +5169,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2732 + // line internal/php7/php7.y:2730 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5187,7 +5185,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2746 + // line internal/php7/php7.y:2744 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5200,7 +5198,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2757 + // line internal/php7/php7.y:2755 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5214,7 +5212,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2769 + // line internal/php7/php7.y:2767 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5226,7 +5224,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2777 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5239,7 +5237,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2790 + // line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5252,7 +5250,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2801 + // line internal/php7/php7.y:2799 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5265,7 +5263,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2812 + // line internal/php7/php7.y:2810 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5278,7 +5276,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2823 + // line internal/php7/php7.y:2821 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5291,7 +5289,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2834 + // line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5304,7 +5302,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2843 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5317,7 +5315,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2854 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5330,7 +5328,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5343,7 +5341,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2876 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5356,7 +5354,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2887 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5369,7 +5367,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2898 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5382,7 +5380,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2909 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5395,7 +5393,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2920 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5408,7 +5406,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2931 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5420,7 +5418,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2943 + // line internal/php7/php7.y:2941 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5433,7 +5431,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2952 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5445,7 +5443,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2964 + // line internal/php7/php7.y:2962 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5458,7 +5456,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2975 + // line internal/php7/php7.y:2973 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5471,7 +5469,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2986 + // line internal/php7/php7.y:2984 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5484,7 +5482,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2997 + // line internal/php7/php7.y:2995 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5497,7 +5495,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3008 + // line internal/php7/php7.y:3006 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5510,7 +5508,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3019 + // line internal/php7/php7.y:3017 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5523,7 +5521,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3030 + // line internal/php7/php7.y:3028 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5534,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3039 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5547,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3052 + // line internal/php7/php7.y:3050 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5560,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 + // line internal/php7/php7.y:3061 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5573,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 + // line internal/php7/php7.y:3072 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5588,7 +5586,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 + // line internal/php7/php7.y:3083 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5601,7 +5599,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 + // line internal/php7/php7.y:3094 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5612,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5625,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 + // line internal/php7/php7.y:3116 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5638,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3129 + // line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5651,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3140 + // line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5664,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3151 + // line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5678,7 +5676,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3161 + // line internal/php7/php7.y:3159 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5690,7 +5688,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3171 + // line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5702,7 +5700,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3181 + // line internal/php7/php7.y:3179 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5714,7 +5712,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3191 + // line internal/php7/php7.y:3189 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5727,7 +5725,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3202 + // line internal/php7/php7.y:3200 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5740,7 +5738,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3213 + // line internal/php7/php7.y:3211 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5751,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3224 + // line internal/php7/php7.y:3222 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5765,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3236 + // line internal/php7/php7.y:3234 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5778,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3247 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5791,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3256 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5804,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3269 + // line internal/php7/php7.y:3267 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5817,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3280 + // line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5830,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3291 + // line internal/php7/php7.y:3289 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5843,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3302 + // line internal/php7/php7.y:3300 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5862,13 +5860,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3317 + // line internal/php7/php7.y:3315 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3321 + // line internal/php7/php7.y:3319 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5882,7 +5880,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3333 + // line internal/php7/php7.y:3331 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5896,7 +5894,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3345 + // line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5909,13 +5907,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3356 + // line internal/php7/php7.y:3354 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3360 + // line internal/php7/php7.y:3358 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5928,7 +5926,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3371 + // line internal/php7/php7.y:3369 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5941,7 +5939,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3382 + // line internal/php7/php7.y:3380 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5954,7 +5952,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3393 + // line internal/php7/php7.y:3391 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5967,7 +5965,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3404 + // line internal/php7/php7.y:3402 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5980,7 +5978,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3415 + // line internal/php7/php7.y:3413 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5993,7 +5991,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3424 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6006,7 +6004,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3437 + // line internal/php7/php7.y:3435 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6026,7 +6024,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3455 + // line internal/php7/php7.y:3453 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6038,13 +6036,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3465 + // line internal/php7/php7.y:3463 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3469 + // line internal/php7/php7.y:3467 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6056,7 +6054,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3479 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6068,7 +6066,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3489 + // line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6080,7 +6078,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3499 + // line internal/php7/php7.y:3497 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6092,7 +6090,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3507 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6105,7 +6103,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3520 + // line internal/php7/php7.y:3518 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6117,13 +6115,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3530 + // line internal/php7/php7.y:3528 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3534 + // line internal/php7/php7.y:3532 { yyVAL.node = yyDollar[2].node @@ -6144,7 +6142,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3553 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6175,7 +6173,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3582 + // line internal/php7/php7.y:3580 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6201,25 +6199,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3612 + // line internal/php7/php7.y:3610 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3616 + // line internal/php7/php7.y:3614 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3623 + // line internal/php7/php7.y:3621 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3627 + // line internal/php7/php7.y:3625 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6233,7 +6231,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3642 + // line internal/php7/php7.y:3640 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6242,13 +6240,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3649 + // line internal/php7/php7.y:3647 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3656 + // line internal/php7/php7.y:3654 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6262,7 +6260,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3668 + // line internal/php7/php7.y:3666 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6279,7 +6277,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3686 + // line internal/php7/php7.y:3684 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6291,7 +6289,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3696 + // line internal/php7/php7.y:3694 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6304,7 +6302,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3707 + // line internal/php7/php7.y:3705 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6317,7 +6315,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3718 + // line internal/php7/php7.y:3716 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6329,7 +6327,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3731 + // line internal/php7/php7.y:3729 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6341,31 +6339,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3741 + // line internal/php7/php7.y:3739 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3748 + // line internal/php7/php7.y:3746 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3752 + // line internal/php7/php7.y:3750 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3757 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3763 + // line internal/php7/php7.y:3761 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6382,13 +6380,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3779 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3785 + // line internal/php7/php7.y:3783 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6398,25 +6396,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3793 + // line internal/php7/php7.y:3791 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3800 + // line internal/php7/php7.y:3798 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3804 + // line internal/php7/php7.y:3802 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3811 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6430,7 +6428,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3823 + // line internal/php7/php7.y:3821 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6443,7 +6441,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3834 + // line internal/php7/php7.y:3832 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6455,7 +6453,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3845 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6467,7 +6465,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3857 + // line internal/php7/php7.y:3855 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6479,7 +6477,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3867 + // line internal/php7/php7.y:3865 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6491,7 +6489,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3877 + // line internal/php7/php7.y:3875 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6503,7 +6501,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3887 + // line internal/php7/php7.y:3885 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6515,7 +6513,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3897 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6527,7 +6525,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3907 + // line internal/php7/php7.y:3905 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6539,7 +6537,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3917 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6551,7 +6549,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3925 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6563,7 +6561,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3937 + // line internal/php7/php7.y:3935 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6575,7 +6573,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3947 + // line internal/php7/php7.y:3945 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6589,7 +6587,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6601,7 +6599,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3969 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6613,7 +6611,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6625,19 +6623,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3989 + // line internal/php7/php7.y:3987 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3993 + // line internal/php7/php7.y:3991 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4000 + // line internal/php7/php7.y:3998 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6649,7 +6647,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4010 + // line internal/php7/php7.y:4008 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6665,7 +6663,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4024 + // line internal/php7/php7.y:4022 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6681,43 +6679,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4041 + // line internal/php7/php7.y:4039 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4045 + // line internal/php7/php7.y:4043 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4052 + // line internal/php7/php7.y:4050 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4056 + // line internal/php7/php7.y:4054 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4063 + // line internal/php7/php7.y:4061 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4070 + // line internal/php7/php7.y:4068 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4074 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6734,19 +6732,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4089 + // line internal/php7/php7.y:4087 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4096 + // line internal/php7/php7.y:4094 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4100 + // line internal/php7/php7.y:4098 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6763,19 +6761,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4115 + // line internal/php7/php7.y:4113 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4122 + // line internal/php7/php7.y:4120 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4126 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6788,7 +6786,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4137 + // line internal/php7/php7.y:4135 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6801,7 +6799,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4148 + // line internal/php7/php7.y:4146 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6814,7 +6812,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4159 + // line internal/php7/php7.y:4157 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6827,25 +6825,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4170 + // line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4177 + // line internal/php7/php7.y:4175 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4181 + // line internal/php7/php7.y:4179 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4185 + // line internal/php7/php7.y:4183 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6858,7 +6856,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4199 + // line internal/php7/php7.y:4197 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6872,7 +6870,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4211 + // line internal/php7/php7.y:4209 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6886,7 +6884,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4223 + // line internal/php7/php7.y:4221 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6898,7 +6896,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4234 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6911,7 +6909,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4245 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6924,13 +6922,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4261 + // line internal/php7/php7.y:4259 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4265 + // line internal/php7/php7.y:4263 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6943,7 +6941,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4276 + // line internal/php7/php7.y:4274 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6956,7 +6954,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4287 + // line internal/php7/php7.y:4285 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6969,7 +6967,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4296 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6982,7 +6980,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4309 + // line internal/php7/php7.y:4307 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6995,7 +6993,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4323 + // line internal/php7/php7.y:4321 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7007,7 +7005,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4331 { yyVAL.node = yyDollar[2].node @@ -7017,13 +7015,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4341 + // line internal/php7/php7.y:4339 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4348 + // line internal/php7/php7.y:4346 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7035,7 +7033,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4358 + // line internal/php7/php7.y:4356 { yyVAL.node = yyDollar[2].node @@ -7045,31 +7043,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4366 + // line internal/php7/php7.y:4364 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4373 + // line internal/php7/php7.y:4371 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4380 + // line internal/php7/php7.y:4378 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4384 + // line internal/php7/php7.y:4382 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4391 + // line internal/php7/php7.y:4389 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7082,7 +7080,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4402 + // line internal/php7/php7.y:4400 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7092,7 +7090,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7105,7 +7103,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4424 + // line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7117,7 +7115,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4434 + // line internal/php7/php7.y:4432 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7133,7 +7131,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4448 + // line internal/php7/php7.y:4446 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7147,7 +7145,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4460 + // line internal/php7/php7.y:4458 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7159,7 +7157,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4468 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7178,7 +7176,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4487 + // line internal/php7/php7.y:4485 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7195,13 +7193,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4505 + // line internal/php7/php7.y:4503 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4509 + // line internal/php7/php7.y:4507 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7214,13 +7212,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4520 + // line internal/php7/php7.y:4518 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4524 + // line internal/php7/php7.y:4522 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7233,7 +7231,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4536 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7247,7 +7245,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4550 + // line internal/php7/php7.y:4548 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7264,7 +7262,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4565 + // line internal/php7/php7.y:4563 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7283,7 +7281,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4582 + // line internal/php7/php7.y:4580 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7298,7 +7296,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4593 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7315,7 +7313,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4610 + // line internal/php7/php7.y:4608 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7334,7 +7332,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4627 + // line internal/php7/php7.y:4625 { yyVAL.node = yyDollar[2].node @@ -7344,7 +7342,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4638 + // line internal/php7/php7.y:4636 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7356,7 +7354,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4648 + // line internal/php7/php7.y:4646 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7373,7 +7371,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4661 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7399,7 +7397,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4687 + // line internal/php7/php7.y:4685 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7413,7 +7411,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4702 + // line internal/php7/php7.y:4700 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7431,7 +7429,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4718 + // line internal/php7/php7.y:4716 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7453,7 +7451,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4738 + // line internal/php7/php7.y:4736 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7465,7 +7463,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4748 + // line internal/php7/php7.y:4746 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7477,7 +7475,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4758 + // line internal/php7/php7.y:4756 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7499,7 +7497,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4778 + // line internal/php7/php7.y:4776 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7511,7 +7509,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4786 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7523,13 +7521,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4801 + // line internal/php7/php7.y:4799 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4805 + // line internal/php7/php7.y:4803 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7538,7 +7536,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4815 + // line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 9cf8c08..d3cfde3 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -919,27 +919,25 @@ statement: } | T_BREAK optional_expr ';' { - $$ = &ast.StmtBreak{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtBreak{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + BreakTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_CONTINUE optional_expr ';' { - $$ = &ast.StmtContinue{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtContinue{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ContinueTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_RETURN optional_expr ';' { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 26850a4..2ed7187 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -191,7 +191,9 @@ func (n *StmtAltForeach) Accept(v NodeVisitor) { // StmtBreak node type StmtBreak struct { Node - Expr Vertex + BreakTkn *token.Token + Expr Vertex + SemiColonTkn *token.Token } func (n *StmtBreak) Accept(v NodeVisitor) { @@ -314,7 +316,9 @@ func (n *StmtConstant) Accept(v NodeVisitor) { // StmtContinue node type StmtContinue struct { Node - Expr Vertex + ContinueTkn *token.Token + Expr Vertex + SemiColonTkn *token.Token } func (n *StmtContinue) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index b59f05b..4cc6a27 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -163,3 +163,13 @@ func (v *FilterTokens) StmtDefault(n *ast.StmtDefault) { n.DefaultTkn = nil n.CaseSeparatorTkn = nil } + +func (v *FilterTokens) StmtBreak(n *ast.StmtBreak) { + n.BreakTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtContinue(n *ast.StmtContinue) { + n.ContinueTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 5064d70..3380c90 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2017,25 +2017,15 @@ func (p *Printer) printStmtAltForeach(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtBreak(n ast.Vertex) { - nn := n.(*ast.StmtBreak) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtBreak(n *ast.StmtBreak) { + p.printToken(n.BreakTkn, "break") - io.WriteString(p.w, "break") - if nn.Expr != nil { - if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - } - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + if n.Expr != nil { + p.bufStart = " " } - p.printFreeFloating(nn, token.End) + p.Print(n.Expr) + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtCase(n *ast.StmtCase) { @@ -2202,26 +2192,15 @@ func (p *Printer) printStmtConstant(n *ast.StmtConstant) { p.printToken(n.CommaTkn, "") } -func (p *Printer) printStmtContinue(n ast.Vertex) { - nn := n.(*ast.StmtContinue) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtContinue(n *ast.StmtContinue) { + p.printToken(n.ContinueTkn, "continue") - io.WriteString(p.w, "continue") - - if nn.Expr != nil { - if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - p.Print(nn.Expr) - } - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + if n.Expr != nil { + p.bufStart = " " } - p.printFreeFloating(nn, token.End) + p.Print(n.Expr) + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtDeclare(n ast.Vertex) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 2ea9ea4..d5b2c0b 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -837,7 +837,8 @@ func TestParseAndPrintPhp5AltWhile(t *testing.T) { } func TestParseAndPrintPhp5Break(t *testing.T) { - src := ` Date: Sun, 6 Sep 2020 13:09:00 +0300 Subject: [PATCH 057/140] [refactoring] update ast structure of "Return" node --- internal/php5/php5.go | 976 +++++++++++++++---------------- internal/php5/php5.y | 50 +- internal/php7/php7.go | 723 ++++++++++++----------- internal/php7/php7.y | 17 +- pkg/ast/node.go | 4 +- pkg/ast/visitor/filter_tokens.go | 5 + pkg/printer/printer.go | 18 +- 7 files changed, 892 insertions(+), 901 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index c43d502..d7d7936 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6174 +// line internal/php5/php5.y:6170 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3106,47 +3106,43 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:994 { - yyVAL.node = &ast.StmtReturn{ast.Node{}, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + ReturnTkn: yyDollar[1].token, + SemiColonTkn: yyDollar[2].token, + } } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1006 + // line internal/php5/php5.y:1004 { - yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ReturnTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1018 + // line internal/php5/php5.y:1015 { - yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ReturnTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1030 + // line internal/php5/php5.y:1026 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3160,7 +3156,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1042 + // line internal/php5/php5.y:1038 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3174,7 +3170,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1054 + // line internal/php5/php5.y:1050 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3188,7 +3184,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1066 + // line internal/php5/php5.y:1062 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3203,7 +3199,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1079 + // line internal/php5/php5.y:1075 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3215,7 +3211,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1089 + // line internal/php5/php5.y:1085 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3229,7 +3225,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1101 + // line internal/php5/php5.y:1097 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3245,7 +3241,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1115 + // line internal/php5/php5.y:1111 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3286,7 +3282,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1153 + // line internal/php5/php5.y:1149 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3327,7 +3323,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1191 + // line internal/php5/php5.y:1187 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3342,7 +3338,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1204 + // line internal/php5/php5.y:1200 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3355,7 +3351,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1215 + // line internal/php5/php5.y:1211 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3373,7 +3369,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1231 + // line internal/php5/php5.y:1227 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3387,7 +3383,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1243 + // line internal/php5/php5.y:1239 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3404,13 +3400,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1261 + // line internal/php5/php5.y:1257 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1265 + // line internal/php5/php5.y:1261 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3432,13 +3428,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1288 + // line internal/php5/php5.y:1284 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1292 + // line internal/php5/php5.y:1288 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3452,31 +3448,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1307 + // line internal/php5/php5.y:1303 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1311 + // line internal/php5/php5.y:1307 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1318 + // line internal/php5/php5.y:1314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1322 + // line internal/php5/php5.y:1318 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1329 + // line internal/php5/php5.y:1325 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3497,13 +3493,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1351 + // line internal/php5/php5.y:1347 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1351 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3512,49 +3508,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1365 + // line internal/php5/php5.y:1361 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1372 + // line internal/php5/php5.y:1368 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1375 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1386 + // line internal/php5/php5.y:1382 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1390 + // line internal/php5/php5.y:1386 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1397 + // line internal/php5/php5.y:1393 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1401 + // line internal/php5/php5.y:1397 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1408 + // line internal/php5/php5.y:1404 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3578,7 +3574,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1433 + // line internal/php5/php5.y:1429 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3606,7 +3602,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1459 + // line internal/php5/php5.y:1455 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3623,7 +3619,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1478 + // line internal/php5/php5.y:1474 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3635,7 +3631,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1488 + // line internal/php5/php5.y:1484 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3650,7 +3646,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1501 + // line internal/php5/php5.y:1497 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3662,7 +3658,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1511 + // line internal/php5/php5.y:1507 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3677,13 +3673,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1527 + // line internal/php5/php5.y:1523 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1531 + // line internal/php5/php5.y:1527 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3695,19 +3691,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1544 + // line internal/php5/php5.y:1540 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1551 + // line internal/php5/php5.y:1547 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1555 + // line internal/php5/php5.y:1551 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3719,13 +3715,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1564 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1568 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3737,13 +3733,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1585 + // line internal/php5/php5.y:1581 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1589 + // line internal/php5/php5.y:1585 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3757,13 +3753,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1601 + // line internal/php5/php5.y:1597 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1605 + // line internal/php5/php5.y:1601 { yyVAL.node = yyDollar[2].node @@ -3772,13 +3768,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1615 + // line internal/php5/php5.y:1611 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1619 + // line internal/php5/php5.y:1615 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3790,7 +3786,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1629 + // line internal/php5/php5.y:1625 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3804,7 +3800,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1644 + // line internal/php5/php5.y:1640 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3815,7 +3811,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1653 + // line internal/php5/php5.y:1649 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3835,7 +3831,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1674 + // line internal/php5/php5.y:1670 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3844,7 +3840,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1681 + // line internal/php5/php5.y:1677 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3865,7 +3861,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1704 + // line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3874,7 +3870,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1711 + // line internal/php5/php5.y:1707 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3895,7 +3891,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1734 + // line internal/php5/php5.y:1730 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3917,7 +3913,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1754 + // line internal/php5/php5.y:1750 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3938,7 +3934,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1777 + // line internal/php5/php5.y:1773 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3951,7 +3947,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1788 + // line internal/php5/php5.y:1784 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3965,7 +3961,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1800 + // line internal/php5/php5.y:1796 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3980,7 +3976,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1813 + // line internal/php5/php5.y:1809 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3996,13 +3992,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1831 + // line internal/php5/php5.y:1827 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1835 + // line internal/php5/php5.y:1831 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4016,7 +4012,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1843 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4029,19 +4025,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1862 + // line internal/php5/php5.y:1858 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1866 + // line internal/php5/php5.y:1862 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1874 + // line internal/php5/php5.y:1870 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4052,7 +4048,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1883 + // line internal/php5/php5.y:1879 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4072,13 +4068,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1906 + // line internal/php5/php5.y:1902 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1910 + // line internal/php5/php5.y:1906 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4093,13 +4089,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1927 + // line internal/php5/php5.y:1923 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1931 + // line internal/php5/php5.y:1927 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4121,13 +4117,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1955 + // line internal/php5/php5.y:1951 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1959 + // line internal/php5/php5.y:1955 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4139,13 +4135,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1973 + // line internal/php5/php5.y:1969 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1977 + // line internal/php5/php5.y:1973 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4164,25 +4160,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1998 + // line internal/php5/php5.y:1994 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2002 + // line internal/php5/php5.y:1998 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2009 + // line internal/php5/php5.y:2005 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2013 + // line internal/php5/php5.y:2009 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4191,7 +4187,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2023 + // line internal/php5/php5.y:2019 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4227,7 +4223,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2057 + // line internal/php5/php5.y:2053 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4264,13 +4260,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2096 + // line internal/php5/php5.y:2092 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2100 + // line internal/php5/php5.y:2096 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4282,7 +4278,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2110 + // line internal/php5/php5.y:2106 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4294,13 +4290,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2120 + // line internal/php5/php5.y:2116 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2128 + // line internal/php5/php5.y:2124 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4313,7 +4309,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2139 + // line internal/php5/php5.y:2135 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4326,7 +4322,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2150 + // line internal/php5/php5.y:2146 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4341,13 +4337,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2167 + // line internal/php5/php5.y:2163 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2171 + // line internal/php5/php5.y:2167 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4356,7 +4352,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2181 + // line internal/php5/php5.y:2177 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4368,7 +4364,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2187 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4380,7 +4376,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2201 + // line internal/php5/php5.y:2197 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4392,7 +4388,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4404,7 +4400,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2224 + // line internal/php5/php5.y:2220 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4413,13 +4409,13 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2231 + // line internal/php5/php5.y:2227 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2239 + // line internal/php5/php5.y:2235 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4433,7 +4429,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2251 + // line internal/php5/php5.y:2247 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4445,7 +4441,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2261 + // line internal/php5/php5.y:2257 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4459,7 +4455,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2277 + // line internal/php5/php5.y:2273 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4477,7 +4473,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2293 + // line internal/php5/php5.y:2289 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4496,7 +4492,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2310 + // line internal/php5/php5.y:2306 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4513,7 +4509,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2325 + // line internal/php5/php5.y:2321 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4531,19 +4527,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2345 + // line internal/php5/php5.y:2341 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2349 + // line internal/php5/php5.y:2345 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2357 + // line internal/php5/php5.y:2353 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4557,7 +4553,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2369 + // line internal/php5/php5.y:2365 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4565,13 +4561,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2375 + // line internal/php5/php5.y:2371 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2379 + // line internal/php5/php5.y:2375 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4602,7 +4598,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2411 + // line internal/php5/php5.y:2407 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4614,13 +4610,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2424 + // line internal/php5/php5.y:2420 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2428 + // line internal/php5/php5.y:2424 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4634,7 +4630,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2440 + // line internal/php5/php5.y:2436 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4646,7 +4642,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2450 + // line internal/php5/php5.y:2446 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4658,31 +4654,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2459 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2467 + // line internal/php5/php5.y:2463 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2474 + // line internal/php5/php5.y:2470 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2474 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2485 + // line internal/php5/php5.y:2481 { yyVAL.node = yyDollar[1].node @@ -4692,7 +4688,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2493 + // line internal/php5/php5.y:2489 { yyVAL.node = yyDollar[1].node @@ -4702,7 +4698,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2504 + // line internal/php5/php5.y:2500 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4715,13 +4711,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2518 + // line internal/php5/php5.y:2514 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2522 + // line internal/php5/php5.y:2518 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4730,7 +4726,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2532 + // line internal/php5/php5.y:2528 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4744,13 +4740,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2544 + // line internal/php5/php5.y:2540 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2551 + // line internal/php5/php5.y:2547 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4766,7 +4762,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2564 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4782,7 +4778,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2582 + // line internal/php5/php5.y:2578 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4795,19 +4791,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2596 + // line internal/php5/php5.y:2592 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2596 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2607 + // line internal/php5/php5.y:2603 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4820,7 +4816,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2618 + // line internal/php5/php5.y:2614 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4833,13 +4829,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2632 + // line internal/php5/php5.y:2628 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2636 + // line internal/php5/php5.y:2632 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4852,31 +4848,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2650 + // line internal/php5/php5.y:2646 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2650 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2661 + // line internal/php5/php5.y:2657 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2665 + // line internal/php5/php5.y:2661 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2672 + // line internal/php5/php5.y:2668 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4888,7 +4884,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2682 + // line internal/php5/php5.y:2678 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4900,7 +4896,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2692 + // line internal/php5/php5.y:2688 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4912,7 +4908,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2702 + // line internal/php5/php5.y:2698 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4924,7 +4920,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2712 + // line internal/php5/php5.y:2708 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4936,7 +4932,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2722 + // line internal/php5/php5.y:2718 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4948,7 +4944,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2735 + // line internal/php5/php5.y:2731 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4966,7 +4962,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2751 + // line internal/php5/php5.y:2747 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4985,7 +4981,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2768 + // line internal/php5/php5.y:2764 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5002,7 +4998,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2783 + // line internal/php5/php5.y:2779 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5020,7 +5016,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2802 + // line internal/php5/php5.y:2798 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5045,7 +5041,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2825 + // line internal/php5/php5.y:2821 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5073,7 +5069,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2854 + // line internal/php5/php5.y:2850 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5082,25 +5078,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2861 + // line internal/php5/php5.y:2857 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2869 + // line internal/php5/php5.y:2865 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2873 + // line internal/php5/php5.y:2869 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2880 + // line internal/php5/php5.y:2876 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5109,25 +5105,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2887 + // line internal/php5/php5.y:2883 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2894 + // line internal/php5/php5.y:2890 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2898 + // line internal/php5/php5.y:2894 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2905 + // line internal/php5/php5.y:2901 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5141,7 +5137,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2917 + // line internal/php5/php5.y:2913 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5155,37 +5151,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2932 + // line internal/php5/php5.y:2928 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2936 + // line internal/php5/php5.y:2932 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2940 + // line internal/php5/php5.y:2936 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2947 + // line internal/php5/php5.y:2943 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2951 + // line internal/php5/php5.y:2947 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2958 + // line internal/php5/php5.y:2954 { if yyDollar[3].node != nil { @@ -5201,7 +5197,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2975 + // line internal/php5/php5.y:2971 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5218,7 +5214,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2990 + // line internal/php5/php5.y:2986 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5231,7 +5227,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3001 + // line internal/php5/php5.y:2997 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5245,7 +5241,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3013 + // line internal/php5/php5.y:3009 { var _new *ast.ExprNew @@ -5272,7 +5268,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3038 + // line internal/php5/php5.y:3034 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5284,7 +5280,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3048 + // line internal/php5/php5.y:3044 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5296,7 +5292,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3058 + // line internal/php5/php5.y:3054 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5309,7 +5305,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3069 + // line internal/php5/php5.y:3065 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5322,7 +5318,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3076 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5335,7 +5331,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3091 + // line internal/php5/php5.y:3087 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5348,7 +5344,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3102 + // line internal/php5/php5.y:3098 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5361,7 +5357,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3109 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5374,7 +5370,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3124 + // line internal/php5/php5.y:3120 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5387,7 +5383,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3135 + // line internal/php5/php5.y:3131 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5400,7 +5396,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3146 + // line internal/php5/php5.y:3142 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5413,7 +5409,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3157 + // line internal/php5/php5.y:3153 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5426,7 +5422,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3168 + // line internal/php5/php5.y:3164 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5439,7 +5435,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3179 + // line internal/php5/php5.y:3175 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5452,7 +5448,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3190 + // line internal/php5/php5.y:3186 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5464,7 +5460,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3200 + // line internal/php5/php5.y:3196 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5477,7 +5473,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3211 + // line internal/php5/php5.y:3207 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5489,7 +5485,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3221 + // line internal/php5/php5.y:3217 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5502,7 +5498,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3232 + // line internal/php5/php5.y:3228 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5515,7 +5511,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3243 + // line internal/php5/php5.y:3239 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5528,7 +5524,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3250 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5541,7 +5537,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3265 + // line internal/php5/php5.y:3261 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5554,7 +5550,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3272 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5567,7 +5563,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3287 + // line internal/php5/php5.y:3283 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5580,7 +5576,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3298 + // line internal/php5/php5.y:3294 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5593,7 +5589,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3309 + // line internal/php5/php5.y:3305 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5606,7 +5602,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3320 + // line internal/php5/php5.y:3316 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5619,7 +5615,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3327 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5632,7 +5628,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3342 + // line internal/php5/php5.y:3338 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5645,7 +5641,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3353 + // line internal/php5/php5.y:3349 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5658,7 +5654,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3364 + // line internal/php5/php5.y:3360 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5671,7 +5667,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3375 + // line internal/php5/php5.y:3371 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5684,7 +5680,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3386 + // line internal/php5/php5.y:3382 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5697,7 +5693,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3397 + // line internal/php5/php5.y:3393 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5710,7 +5706,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3408 + // line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5722,7 +5718,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3418 + // line internal/php5/php5.y:3414 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5734,7 +5730,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3428 + // line internal/php5/php5.y:3424 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5746,7 +5742,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3438 + // line internal/php5/php5.y:3434 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5758,7 +5754,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3448 + // line internal/php5/php5.y:3444 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5771,7 +5767,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3459 + // line internal/php5/php5.y:3455 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5784,7 +5780,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3470 + // line internal/php5/php5.y:3466 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5797,7 +5793,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3477 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5811,7 +5807,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3493 + // line internal/php5/php5.y:3489 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5820,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3504 + // line internal/php5/php5.y:3500 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5837,7 +5833,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3515 + // line internal/php5/php5.y:3511 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5850,7 +5846,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3526 + // line internal/php5/php5.y:3522 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5863,7 +5859,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3537 + // line internal/php5/php5.y:3533 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5876,19 +5872,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3548 + // line internal/php5/php5.y:3544 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3552 + // line internal/php5/php5.y:3548 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3556 + // line internal/php5/php5.y:3552 { yyVAL.node = yyDollar[2].node @@ -5920,7 +5916,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3586 + // line internal/php5/php5.y:3582 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5934,7 +5930,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3598 + // line internal/php5/php5.y:3594 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5948,13 +5944,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3610 + // line internal/php5/php5.y:3606 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3614 + // line internal/php5/php5.y:3610 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5967,7 +5963,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3625 + // line internal/php5/php5.y:3621 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5980,7 +5976,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3636 + // line internal/php5/php5.y:3632 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5993,7 +5989,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3647 + // line internal/php5/php5.y:3643 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6006,7 +6002,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3658 + // line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6019,7 +6015,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3669 + // line internal/php5/php5.y:3665 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6032,7 +6028,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3680 + // line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6045,7 +6041,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3691 + // line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6065,7 +6061,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3709 + // line internal/php5/php5.y:3705 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6077,25 +6073,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3719 + // line internal/php5/php5.y:3715 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3723 + // line internal/php5/php5.y:3719 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3723 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3731 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6107,7 +6103,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3741 + // line internal/php5/php5.y:3737 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6119,7 +6115,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3751 + // line internal/php5/php5.y:3747 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6131,7 +6127,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3761 + // line internal/php5/php5.y:3757 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6158,7 +6154,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3785 + // line internal/php5/php5.y:3781 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6186,7 +6182,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3813 + // line internal/php5/php5.y:3809 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6198,7 +6194,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3823 + // line internal/php5/php5.y:3819 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6210,7 +6206,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3833 + // line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6223,7 +6219,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3844 + // line internal/php5/php5.y:3840 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6236,7 +6232,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3858 + // line internal/php5/php5.y:3854 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6249,7 +6245,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3869 + // line internal/php5/php5.y:3865 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6262,7 +6258,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3880 + // line internal/php5/php5.y:3876 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6278,7 +6274,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3894 + // line internal/php5/php5.y:3890 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6291,7 +6287,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3908 + // line internal/php5/php5.y:3904 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6305,7 +6301,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3920 + // line internal/php5/php5.y:3916 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6318,19 +6314,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3934 + // line internal/php5/php5.y:3930 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3941 + // line internal/php5/php5.y:3937 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3945 + // line internal/php5/php5.y:3941 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6344,7 +6340,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3960 + // line internal/php5/php5.y:3956 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6360,7 +6356,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3974 + // line internal/php5/php5.y:3970 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6379,7 +6375,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3991 + // line internal/php5/php5.y:3987 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6394,7 +6390,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4004 + // line internal/php5/php5.y:4000 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6412,7 +6408,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4023 + // line internal/php5/php5.y:4019 { name := &ast.NameName{ Node: ast.Node{ @@ -6427,7 +6423,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4036 + // line internal/php5/php5.y:4032 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6444,7 +6440,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4051 + // line internal/php5/php5.y:4047 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6460,7 +6456,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4065 + // line internal/php5/php5.y:4061 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6473,7 +6469,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4076 + // line internal/php5/php5.y:4072 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6486,7 +6482,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4087 + // line internal/php5/php5.y:4083 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6499,7 +6495,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4098 + // line internal/php5/php5.y:4094 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6512,7 +6508,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4109 + // line internal/php5/php5.y:4105 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6524,7 +6520,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4122 + // line internal/php5/php5.y:4118 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6536,7 +6532,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4132 + // line internal/php5/php5.y:4128 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6547,7 +6543,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4141 + // line internal/php5/php5.y:4137 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6560,7 +6556,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4152 + // line internal/php5/php5.y:4148 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6572,7 +6568,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4165 + // line internal/php5/php5.y:4161 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6583,7 +6579,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4174 + // line internal/php5/php5.y:4170 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6596,7 +6592,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4185 + // line internal/php5/php5.y:4181 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6608,19 +6604,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4198 + // line internal/php5/php5.y:4194 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4202 + // line internal/php5/php5.y:4198 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4209 + // line internal/php5/php5.y:4205 { yyVAL.node = yyDollar[1].node @@ -6661,25 +6657,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4248 + // line internal/php5/php5.y:4244 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4256 + // line internal/php5/php5.y:4252 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4260 + // line internal/php5/php5.y:4256 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4268 + // line internal/php5/php5.y:4264 { yyVAL.list = yyDollar[2].list @@ -6688,13 +6684,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4274 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4282 + // line internal/php5/php5.y:4278 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6710,19 +6706,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4296 + // line internal/php5/php5.y:4292 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4303 + // line internal/php5/php5.y:4299 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4307 + // line internal/php5/php5.y:4303 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6732,25 +6728,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4315 + // line internal/php5/php5.y:4311 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4322 + // line internal/php5/php5.y:4318 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4326 + // line internal/php5/php5.y:4322 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4333 + // line internal/php5/php5.y:4329 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6762,7 +6758,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4343 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6774,7 +6770,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4353 + // line internal/php5/php5.y:4349 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6786,7 +6782,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4363 + // line internal/php5/php5.y:4359 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6798,7 +6794,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4373 + // line internal/php5/php5.y:4369 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6810,7 +6806,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4383 + // line internal/php5/php5.y:4379 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6822,7 +6818,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4393 + // line internal/php5/php5.y:4389 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6834,7 +6830,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4403 + // line internal/php5/php5.y:4399 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6846,7 +6842,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4413 + // line internal/php5/php5.y:4409 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6858,7 +6854,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4423 + // line internal/php5/php5.y:4419 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6870,7 +6866,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4433 + // line internal/php5/php5.y:4429 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6884,7 +6880,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4445 + // line internal/php5/php5.y:4441 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6896,7 +6892,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4458 + // line internal/php5/php5.y:4454 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6912,25 +6908,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4475 + // line internal/php5/php5.y:4471 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4482 + // line internal/php5/php5.y:4478 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4482 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4490 + // line internal/php5/php5.y:4486 { name := &ast.NameName{ Node: ast.Node{ @@ -6945,7 +6941,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4503 + // line internal/php5/php5.y:4499 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6962,7 +6958,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4518 + // line internal/php5/php5.y:4514 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6978,7 +6974,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6992,7 +6988,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4544 + // line internal/php5/php5.y:4540 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7005,13 +7001,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4555 + // line internal/php5/php5.y:4551 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4559 + // line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7023,13 +7019,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4569 + // line internal/php5/php5.y:4565 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4576 + // line internal/php5/php5.y:4572 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7042,7 +7038,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4587 + // line internal/php5/php5.y:4583 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7055,7 +7051,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4598 + // line internal/php5/php5.y:4594 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7068,7 +7064,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4605 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7081,7 +7077,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4620 + // line internal/php5/php5.y:4616 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7094,7 +7090,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4631 + // line internal/php5/php5.y:4627 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7107,7 +7103,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4642 + // line internal/php5/php5.y:4638 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7120,7 +7116,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4653 + // line internal/php5/php5.y:4649 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7132,7 +7128,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4663 + // line internal/php5/php5.y:4659 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7144,7 +7140,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4673 + // line internal/php5/php5.y:4669 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7157,7 +7153,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4684 + // line internal/php5/php5.y:4680 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7170,7 +7166,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4695 + // line internal/php5/php5.y:4691 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7183,7 +7179,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4706 + // line internal/php5/php5.y:4702 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7196,7 +7192,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4717 + // line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7209,7 +7205,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4728 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7222,7 +7218,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4739 + // line internal/php5/php5.y:4735 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7235,7 +7231,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4750 + // line internal/php5/php5.y:4746 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7248,7 +7244,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4761 + // line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7261,7 +7257,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4772 + // line internal/php5/php5.y:4768 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7274,7 +7270,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4783 + // line internal/php5/php5.y:4779 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7287,7 +7283,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4794 + // line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7300,7 +7296,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4805 + // line internal/php5/php5.y:4801 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7313,7 +7309,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4816 + // line internal/php5/php5.y:4812 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7326,7 +7322,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4827 + // line internal/php5/php5.y:4823 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7340,7 +7336,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4839 + // line internal/php5/php5.y:4835 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7353,7 +7349,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4850 + // line internal/php5/php5.y:4846 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7366,7 +7362,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4861 + // line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7379,7 +7375,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4872 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7392,7 +7388,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4883 + // line internal/php5/php5.y:4879 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7406,7 +7402,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4895 + // line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7420,7 +7416,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4907 + // line internal/php5/php5.y:4903 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7432,7 +7428,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4913 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7444,7 +7440,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4927 + // line internal/php5/php5.y:4923 { yyVAL.node = yyDollar[2].node @@ -7454,13 +7450,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4934 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4938 { name := &ast.NameName{ Node: ast.Node{ @@ -7475,7 +7471,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4955 + // line internal/php5/php5.y:4951 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7492,7 +7488,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4970 + // line internal/php5/php5.y:4966 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7508,7 +7504,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4987 + // line internal/php5/php5.y:4983 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7522,25 +7518,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4999 + // line internal/php5/php5.y:4995 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5003 + // line internal/php5/php5.y:4999 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5007 + // line internal/php5/php5.y:5003 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5011 + // line internal/php5/php5.y:5007 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7552,7 +7548,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5017 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7564,7 +7560,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5031 + // line internal/php5/php5.y:5027 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7576,13 +7572,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5040 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5048 + // line internal/php5/php5.y:5044 { yyVAL.list = yyDollar[1].list @@ -7593,19 +7589,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5060 + // line internal/php5/php5.y:5056 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5064 + // line internal/php5/php5.y:5060 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5071 + // line internal/php5/php5.y:5067 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7620,7 +7616,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5084 + // line internal/php5/php5.y:5080 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7634,7 +7630,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5096 + // line internal/php5/php5.y:5092 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7648,7 +7644,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5108 + // line internal/php5/php5.y:5104 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7661,19 +7657,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5118 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5126 + // line internal/php5/php5.y:5122 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5133 + // line internal/php5/php5.y:5129 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7690,7 +7686,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5144 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7707,25 +7703,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5167 + // line internal/php5/php5.y:5163 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5175 + // line internal/php5/php5.y:5171 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5182 + // line internal/php5/php5.y:5178 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5189 + // line internal/php5/php5.y:5185 { yyVAL.node = yyDollar[1].node @@ -7783,25 +7779,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5245 + // line internal/php5/php5.y:5241 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5248 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5256 + // line internal/php5/php5.y:5252 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5264 + // line internal/php5/php5.y:5260 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7815,7 +7811,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5279 + // line internal/php5/php5.y:5275 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7829,7 +7825,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5291 + // line internal/php5/php5.y:5287 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7843,7 +7839,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5306 + // line internal/php5/php5.y:5302 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7852,31 +7848,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5316 + // line internal/php5/php5.y:5312 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5316 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5324 + // line internal/php5/php5.y:5320 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5331 + // line internal/php5/php5.y:5327 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5335 + // line internal/php5/php5.y:5331 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7888,7 +7884,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5348 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7901,7 +7897,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5359 + // line internal/php5/php5.y:5355 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7914,13 +7910,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5373 + // line internal/php5/php5.y:5369 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5380 + // line internal/php5/php5.y:5376 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7933,7 +7929,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5391 + // line internal/php5/php5.y:5387 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7946,31 +7942,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5405 + // line internal/php5/php5.y:5401 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5405 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5413 + // line internal/php5/php5.y:5409 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5417 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5425 + // line internal/php5/php5.y:5421 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7982,13 +7978,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5431 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5442 + // line internal/php5/php5.y:5438 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8001,7 +7997,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5453 + // line internal/php5/php5.y:5449 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8014,13 +8010,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5464 + // line internal/php5/php5.y:5460 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5468 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8034,7 +8030,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5484 + // line internal/php5/php5.y:5480 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8048,25 +8044,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5499 + // line internal/php5/php5.y:5495 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5503 + // line internal/php5/php5.y:5499 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5507 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5515 + // line internal/php5/php5.y:5511 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8076,7 +8072,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5522 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8090,7 +8086,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5538 + // line internal/php5/php5.y:5534 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8104,7 +8100,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5546 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8114,7 +8110,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5561 + // line internal/php5/php5.y:5557 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8126,7 +8122,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5571 + // line internal/php5/php5.y:5567 { yyVAL.node = yyDollar[2].node @@ -8139,7 +8135,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5585 + // line internal/php5/php5.y:5581 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8152,7 +8148,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5596 + // line internal/php5/php5.y:5592 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8169,7 +8165,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5614 + // line internal/php5/php5.y:5610 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8182,7 +8178,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5625 + // line internal/php5/php5.y:5621 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8192,7 +8188,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5637 + // line internal/php5/php5.y:5633 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8204,7 +8200,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5647 + // line internal/php5/php5.y:5643 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8220,19 +8216,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5661 + // line internal/php5/php5.y:5657 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5669 + // line internal/php5/php5.y:5665 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5673 + // line internal/php5/php5.y:5669 { yyVAL.list = yyDollar[1].list @@ -8247,7 +8243,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5689 + // line internal/php5/php5.y:5685 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8262,7 +8258,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5702 + // line internal/php5/php5.y:5698 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8276,7 +8272,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5714 + // line internal/php5/php5.y:5710 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8290,7 +8286,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5726 + // line internal/php5/php5.y:5722 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8303,7 +8299,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5737 + // line internal/php5/php5.y:5733 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8321,7 +8317,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5753 + // line internal/php5/php5.y:5749 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8337,7 +8333,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5767 + // line internal/php5/php5.y:5763 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8354,7 +8350,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5782 + // line internal/php5/php5.y:5778 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8369,13 +8365,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5798 + // line internal/php5/php5.y:5794 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5802 + // line internal/php5/php5.y:5798 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8388,13 +8384,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5813 + // line internal/php5/php5.y:5809 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5817 + // line internal/php5/php5.y:5813 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8407,7 +8403,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5831 + // line internal/php5/php5.y:5827 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8421,7 +8417,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5843 + // line internal/php5/php5.y:5839 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8438,7 +8434,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5858 + // line internal/php5/php5.y:5854 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8457,7 +8453,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5875 + // line internal/php5/php5.y:5871 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8472,7 +8468,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5888 + // line internal/php5/php5.y:5884 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8489,7 +8485,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5903 + // line internal/php5/php5.y:5899 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8508,7 +8504,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5920 + // line internal/php5/php5.y:5916 { yyVAL.node = yyDollar[2].node @@ -8518,7 +8514,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5931 + // line internal/php5/php5.y:5927 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8530,7 +8526,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5941 + // line internal/php5/php5.y:5937 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8547,7 +8543,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5956 + // line internal/php5/php5.y:5952 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8561,7 +8557,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5971 + // line internal/php5/php5.y:5967 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8575,7 +8571,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5983 + // line internal/php5/php5.y:5979 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8597,7 +8593,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6003 + // line internal/php5/php5.y:5999 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8619,7 +8615,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6023 + // line internal/php5/php5.y:6019 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8631,7 +8627,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6033 + // line internal/php5/php5.y:6029 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8643,7 +8639,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6043 + // line internal/php5/php5.y:6039 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8665,7 +8661,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6063 + // line internal/php5/php5.y:6059 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8677,7 +8673,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6073 + // line internal/php5/php5.y:6069 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8689,13 +8685,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6082 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6090 + // line internal/php5/php5.y:6086 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8704,19 +8700,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6100 + // line internal/php5/php5.y:6096 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6104 + // line internal/php5/php5.y:6100 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6111 + // line internal/php5/php5.y:6107 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8732,7 +8728,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6125 + // line internal/php5/php5.y:6121 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8748,7 +8744,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6142 + // line internal/php5/php5.y:6138 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8764,7 +8760,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6159 + // line internal/php5/php5.y:6155 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 355007f..be091ce 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -992,39 +992,35 @@ unticked_statement: } | T_RETURN ';' { - $$ = &ast.StmtReturn{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + ReturnTkn: $1, + SemiColonTkn: $2, + } } | T_RETURN expr_without_variable ';' { - $$ = &ast.StmtReturn{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ReturnTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_RETURN variable ';' { - $$ = &ast.StmtReturn{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ReturnTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | yield_expr ';' { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index d34558c..7ce01b9 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4820 +// line internal/php7/php7.y:4819 // line yacctab:1 var yyExca = [...]int{ @@ -3271,19 +3271,18 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:943 { - yyVAL.node = &ast.StmtReturn{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ReturnTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:955 + // line internal/php7/php7.y:954 { yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} @@ -3297,7 +3296,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:967 + // line internal/php7/php7.y:966 { yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} @@ -3311,7 +3310,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:979 + // line internal/php7/php7.y:978 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3326,7 +3325,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:992 + // line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3338,7 +3337,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1002 + // line internal/php7/php7.y:1001 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3352,7 +3351,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1014 + // line internal/php7/php7.y:1013 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3372,7 +3371,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1032 + // line internal/php7/php7.y:1031 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3396,7 +3395,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1054 + // line internal/php7/php7.y:1053 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3423,7 +3422,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1079 + // line internal/php7/php7.y:1078 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3438,7 +3437,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1092 + // line internal/php7/php7.y:1091 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3451,7 +3450,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1103 + // line internal/php7/php7.y:1102 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3468,7 +3467,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1118 + // line internal/php7/php7.y:1117 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3482,7 +3481,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1130 + // line internal/php7/php7.y:1129 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3499,7 +3498,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1145 + // line internal/php7/php7.y:1144 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3514,13 +3513,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1160 + // line internal/php7/php7.y:1159 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1164 + // line internal/php7/php7.y:1163 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3542,13 +3541,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1186 + // line internal/php7/php7.y:1185 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1190 + // line internal/php7/php7.y:1189 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3562,13 +3561,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1201 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1206 + // line internal/php7/php7.y:1205 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3582,13 +3581,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1221 + // line internal/php7/php7.y:1220 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1225 + // line internal/php7/php7.y:1224 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3597,13 +3596,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1235 + // line internal/php7/php7.y:1234 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1242 + // line internal/php7/php7.y:1241 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3633,31 +3632,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1273 + // line internal/php7/php7.y:1272 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1277 + // line internal/php7/php7.y:1276 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1284 + // line internal/php7/php7.y:1283 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1288 + // line internal/php7/php7.y:1287 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1295 + // line internal/php7/php7.y:1294 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3675,7 +3674,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1311 + // line internal/php7/php7.y:1310 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3692,19 +3691,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1329 + // line internal/php7/php7.y:1328 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1333 + // line internal/php7/php7.y:1332 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1340 + // line internal/php7/php7.y:1339 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3716,7 +3715,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1350 + // line internal/php7/php7.y:1349 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3728,7 +3727,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1363 + // line internal/php7/php7.y:1362 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3745,7 +3744,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1380 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3762,13 +3761,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1399 + // line internal/php7/php7.y:1398 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1403 + // line internal/php7/php7.y:1402 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3780,13 +3779,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1416 + // line internal/php7/php7.y:1415 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1420 + // line internal/php7/php7.y:1419 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3798,13 +3797,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1433 + // line internal/php7/php7.y:1432 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1436 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3816,13 +3815,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1450 + // line internal/php7/php7.y:1449 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1454 + // line internal/php7/php7.y:1453 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3834,7 +3833,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1464 + // line internal/php7/php7.y:1463 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3848,7 +3847,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1476 + // line internal/php7/php7.y:1475 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3861,7 +3860,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1490 + // line internal/php7/php7.y:1489 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3872,7 +3871,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1499 + // line internal/php7/php7.y:1498 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3892,7 +3891,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1520 + // line internal/php7/php7.y:1519 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3901,7 +3900,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1527 + // line internal/php7/php7.y:1526 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3922,7 +3921,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1549 + // line internal/php7/php7.y:1548 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3931,7 +3930,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1556 + // line internal/php7/php7.y:1555 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3952,7 +3951,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1578 + // line internal/php7/php7.y:1577 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3965,7 +3964,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1589 + // line internal/php7/php7.y:1588 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3979,7 +3978,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1601 + // line internal/php7/php7.y:1600 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3994,7 +3993,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1614 + // line internal/php7/php7.y:1613 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4010,13 +4009,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1631 + // line internal/php7/php7.y:1630 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1635 + // line internal/php7/php7.y:1634 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4030,7 +4029,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1647 + // line internal/php7/php7.y:1646 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4043,19 +4042,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1661 + // line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1665 + // line internal/php7/php7.y:1664 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1672 + // line internal/php7/php7.y:1671 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4066,7 +4065,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1681 + // line internal/php7/php7.y:1680 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4086,7 +4085,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1702 + // line internal/php7/php7.y:1701 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4101,7 +4100,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1715 + // line internal/php7/php7.y:1714 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4120,13 +4119,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1735 + // line internal/php7/php7.y:1734 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1739 + // line internal/php7/php7.y:1738 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4142,7 +4141,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1756 + // line internal/php7/php7.y:1755 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4164,7 +4163,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1776 + // line internal/php7/php7.y:1775 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4188,7 +4187,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1801 + // line internal/php7/php7.y:1800 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4198,7 +4197,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1809 + // line internal/php7/php7.y:1808 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4222,25 +4221,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1834 + // line internal/php7/php7.y:1833 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1838 + // line internal/php7/php7.y:1837 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1845 + // line internal/php7/php7.y:1844 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1849 + // line internal/php7/php7.y:1848 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4249,7 +4248,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1859 + // line internal/php7/php7.y:1858 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4285,7 +4284,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1893 + // line internal/php7/php7.y:1892 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4322,25 +4321,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1931 + // line internal/php7/php7.y:1930 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1934 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1942 + // line internal/php7/php7.y:1941 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1946 + // line internal/php7/php7.y:1945 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4352,7 +4351,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1959 + // line internal/php7/php7.y:1958 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4364,7 +4363,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1969 + // line internal/php7/php7.y:1968 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4376,19 +4375,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1978 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1986 + // line internal/php7/php7.y:1985 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1990 + // line internal/php7/php7.y:1989 { yyVAL.node = yyDollar[2].node @@ -4397,7 +4396,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2000 + // line internal/php7/php7.y:1999 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4410,7 +4409,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2010 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4427,13 +4426,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2029 + // line internal/php7/php7.y:2028 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2033 + // line internal/php7/php7.y:2032 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4442,7 +4441,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2043 + // line internal/php7/php7.y:2042 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4454,7 +4453,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2052 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4466,7 +4465,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2066 + // line internal/php7/php7.y:2065 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4475,19 +4474,19 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2073 + // line internal/php7/php7.y:2072 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2080 + // line internal/php7/php7.y:2079 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2086 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4496,13 +4495,13 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2094 + // line internal/php7/php7.y:2093 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2101 + // line internal/php7/php7.y:2100 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4518,7 +4517,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2115 + // line internal/php7/php7.y:2114 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4535,19 +4534,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2132 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2137 + // line internal/php7/php7.y:2136 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2144 + // line internal/php7/php7.y:2143 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4561,7 +4560,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2156 + // line internal/php7/php7.y:2155 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4575,7 +4574,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2168 + // line internal/php7/php7.y:2167 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4587,7 +4586,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2178 + // line internal/php7/php7.y:2177 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4618,13 +4617,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2210 + // line internal/php7/php7.y:2209 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2214 + // line internal/php7/php7.y:2213 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4638,7 +4637,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2226 + // line internal/php7/php7.y:2225 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4650,7 +4649,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2236 + // line internal/php7/php7.y:2235 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4662,7 +4661,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2246 + // line internal/php7/php7.y:2245 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4674,19 +4673,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2259 + // line internal/php7/php7.y:2258 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2262 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2269 { yyVAL.node = yyDollar[1].node @@ -4696,7 +4695,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2278 + // line internal/php7/php7.y:2277 { yyVAL.node = yyDollar[1].node @@ -4706,7 +4705,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2289 + // line internal/php7/php7.y:2288 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4719,7 +4718,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2303 + // line internal/php7/php7.y:2302 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4735,7 +4734,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2317 + // line internal/php7/php7.y:2316 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4751,7 +4750,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2331 + // line internal/php7/php7.y:2330 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4767,7 +4766,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2345 + // line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4780,7 +4779,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2359 + // line internal/php7/php7.y:2358 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4794,13 +4793,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2371 + // line internal/php7/php7.y:2370 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2378 + // line internal/php7/php7.y:2377 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4816,7 +4815,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2395 + // line internal/php7/php7.y:2394 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4829,7 +4828,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2406 + // line internal/php7/php7.y:2405 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4842,13 +4841,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2419 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2424 + // line internal/php7/php7.y:2423 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4861,31 +4860,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2437 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2442 + // line internal/php7/php7.y:2441 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2449 + // line internal/php7/php7.y:2448 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2453 + // line internal/php7/php7.y:2452 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2460 + // line internal/php7/php7.y:2459 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4897,7 +4896,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2470 + // line internal/php7/php7.y:2469 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4909,7 +4908,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2480 + // line internal/php7/php7.y:2479 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4921,7 +4920,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2490 + // line internal/php7/php7.y:2489 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4933,7 +4932,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2500 + // line internal/php7/php7.y:2499 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4945,7 +4944,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2510 + // line internal/php7/php7.y:2509 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4957,7 +4956,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2523 + // line internal/php7/php7.y:2522 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4966,13 +4965,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2530 + // line internal/php7/php7.y:2529 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2537 + // line internal/php7/php7.y:2536 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4988,7 +4987,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2551 + // line internal/php7/php7.y:2550 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5005,7 +5004,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2569 + // line internal/php7/php7.y:2568 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5013,13 +5012,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2575 + // line internal/php7/php7.y:2574 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2582 + // line internal/php7/php7.y:2581 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5039,7 +5038,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2603 + // line internal/php7/php7.y:2602 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5059,7 +5058,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2624 + // line internal/php7/php7.y:2623 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5068,31 +5067,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2630 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2637 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2645 + // line internal/php7/php7.y:2644 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2649 + // line internal/php7/php7.y:2648 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2655 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5101,13 +5100,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2662 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2670 + // line internal/php7/php7.y:2669 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5125,7 +5124,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2689 + // line internal/php7/php7.y:2688 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5140,7 +5139,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2702 + // line internal/php7/php7.y:2701 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5152,7 +5151,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2715 + // line internal/php7/php7.y:2714 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5169,7 +5168,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2730 + // line internal/php7/php7.y:2729 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5185,7 +5184,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2744 + // line internal/php7/php7.y:2743 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5198,7 +5197,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2755 + // line internal/php7/php7.y:2754 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5212,7 +5211,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2767 + // line internal/php7/php7.y:2766 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5224,7 +5223,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2777 + // line internal/php7/php7.y:2776 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5237,7 +5236,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2787 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5250,7 +5249,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2799 + // line internal/php7/php7.y:2798 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5263,7 +5262,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2810 + // line internal/php7/php7.y:2809 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5276,7 +5275,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2821 + // line internal/php7/php7.y:2820 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5289,7 +5288,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2832 + // line internal/php7/php7.y:2831 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5302,7 +5301,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2843 + // line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5315,7 +5314,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2854 + // line internal/php7/php7.y:2853 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5328,7 +5327,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2865 + // line internal/php7/php7.y:2864 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5341,7 +5340,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2876 + // line internal/php7/php7.y:2875 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5354,7 +5353,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2887 + // line internal/php7/php7.y:2886 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5367,7 +5366,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2898 + // line internal/php7/php7.y:2897 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5380,7 +5379,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2909 + // line internal/php7/php7.y:2908 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5393,7 +5392,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2920 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5406,7 +5405,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2931 + // line internal/php7/php7.y:2930 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5418,7 +5417,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2941 + // line internal/php7/php7.y:2940 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5431,7 +5430,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2952 + // line internal/php7/php7.y:2951 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5443,7 +5442,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2962 + // line internal/php7/php7.y:2961 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5456,7 +5455,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2973 + // line internal/php7/php7.y:2972 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5469,7 +5468,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2984 + // line internal/php7/php7.y:2983 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5482,7 +5481,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2995 + // line internal/php7/php7.y:2994 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5495,7 +5494,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3006 + // line internal/php7/php7.y:3005 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5508,7 +5507,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3016 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5521,7 +5520,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3028 + // line internal/php7/php7.y:3027 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5534,7 +5533,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3039 + // line internal/php7/php7.y:3038 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5547,7 +5546,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3049 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5560,7 +5559,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3061 + // line internal/php7/php7.y:3060 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5573,7 +5572,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3072 + // line internal/php7/php7.y:3071 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5586,7 +5585,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3082 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5599,7 +5598,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3094 + // line internal/php7/php7.y:3093 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5612,7 +5611,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3104 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5625,7 +5624,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3116 + // line internal/php7/php7.y:3115 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5638,7 +5637,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3126 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5651,7 +5650,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3138 + // line internal/php7/php7.y:3137 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5664,7 +5663,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3148 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5676,7 +5675,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3159 + // line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5688,7 +5687,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3169 + // line internal/php7/php7.y:3168 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5700,7 +5699,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3179 + // line internal/php7/php7.y:3178 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5712,7 +5711,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3189 + // line internal/php7/php7.y:3188 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5725,7 +5724,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3200 + // line internal/php7/php7.y:3199 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5738,7 +5737,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3211 + // line internal/php7/php7.y:3210 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5751,7 +5750,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3222 + // line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5764,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3234 + // line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5777,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3244 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5791,7 +5790,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3256 + // line internal/php7/php7.y:3255 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5804,7 +5803,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3267 + // line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5817,7 +5816,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3278 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5830,7 +5829,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3289 + // line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5842,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3300 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5860,13 +5859,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3315 + // line internal/php7/php7.y:3314 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3319 + // line internal/php7/php7.y:3318 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5880,7 +5879,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3331 + // line internal/php7/php7.y:3330 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5894,7 +5893,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3343 + // line internal/php7/php7.y:3342 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5907,13 +5906,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3354 + // line internal/php7/php7.y:3353 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3358 + // line internal/php7/php7.y:3357 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5926,7 +5925,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3369 + // line internal/php7/php7.y:3368 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5939,7 +5938,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3380 + // line internal/php7/php7.y:3379 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5952,7 +5951,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3391 + // line internal/php7/php7.y:3390 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5965,7 +5964,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3402 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5978,7 +5977,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3413 + // line internal/php7/php7.y:3412 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5991,7 +5990,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3424 + // line internal/php7/php7.y:3423 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6004,7 +6003,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3435 + // line internal/php7/php7.y:3434 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6024,7 +6023,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3452 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6036,13 +6035,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3463 + // line internal/php7/php7.y:3462 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3467 + // line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6054,7 +6053,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3476 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6066,7 +6065,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3487 + // line internal/php7/php7.y:3486 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6078,7 +6077,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3497 + // line internal/php7/php7.y:3496 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6090,7 +6089,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3507 + // line internal/php7/php7.y:3506 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6103,7 +6102,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3518 + // line internal/php7/php7.y:3517 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6115,13 +6114,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3528 + // line internal/php7/php7.y:3527 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3532 + // line internal/php7/php7.y:3531 { yyVAL.node = yyDollar[2].node @@ -6142,7 +6141,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3553 + // line internal/php7/php7.y:3552 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6173,7 +6172,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3580 + // line internal/php7/php7.y:3579 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6199,25 +6198,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3609 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3614 + // line internal/php7/php7.y:3613 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3620 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3625 + // line internal/php7/php7.y:3624 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6231,7 +6230,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3640 + // line internal/php7/php7.y:3639 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6240,13 +6239,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3647 + // line internal/php7/php7.y:3646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3654 + // line internal/php7/php7.y:3653 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6260,7 +6259,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3666 + // line internal/php7/php7.y:3665 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6277,7 +6276,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3684 + // line internal/php7/php7.y:3683 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6289,7 +6288,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3693 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6302,7 +6301,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3705 + // line internal/php7/php7.y:3704 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6315,7 +6314,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3716 + // line internal/php7/php7.y:3715 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6327,7 +6326,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3729 + // line internal/php7/php7.y:3728 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6339,31 +6338,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3739 + // line internal/php7/php7.y:3738 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3745 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3750 + // line internal/php7/php7.y:3749 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3757 + // line internal/php7/php7.y:3756 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3761 + // line internal/php7/php7.y:3760 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6380,13 +6379,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3779 + // line internal/php7/php7.y:3778 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3783 + // line internal/php7/php7.y:3782 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6396,25 +6395,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3791 + // line internal/php7/php7.y:3790 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3798 + // line internal/php7/php7.y:3797 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3802 + // line internal/php7/php7.y:3801 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3808 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6428,7 +6427,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3821 + // line internal/php7/php7.y:3820 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6441,7 +6440,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3832 + // line internal/php7/php7.y:3831 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6453,7 +6452,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3845 + // line internal/php7/php7.y:3844 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6465,7 +6464,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3855 + // line internal/php7/php7.y:3854 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6477,7 +6476,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3865 + // line internal/php7/php7.y:3864 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6489,7 +6488,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3874 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6501,7 +6500,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 + // line internal/php7/php7.y:3884 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6513,7 +6512,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3895 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6525,7 +6524,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3905 + // line internal/php7/php7.y:3904 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6537,7 +6536,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3915 + // line internal/php7/php7.y:3914 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6549,7 +6548,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3925 + // line internal/php7/php7.y:3924 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6561,7 +6560,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3935 + // line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6573,7 +6572,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3945 + // line internal/php7/php7.y:3944 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6587,7 +6586,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3957 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6599,7 +6598,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3967 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6611,7 +6610,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6623,19 +6622,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3987 + // line internal/php7/php7.y:3986 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3991 + // line internal/php7/php7.y:3990 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3998 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6647,7 +6646,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4008 + // line internal/php7/php7.y:4007 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6663,7 +6662,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4022 + // line internal/php7/php7.y:4021 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6679,43 +6678,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4039 + // line internal/php7/php7.y:4038 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4043 + // line internal/php7/php7.y:4042 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4050 + // line internal/php7/php7.y:4049 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4053 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4061 + // line internal/php7/php7.y:4060 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4068 + // line internal/php7/php7.y:4067 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4071 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6732,19 +6731,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4086 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4094 + // line internal/php7/php7.y:4093 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4098 + // line internal/php7/php7.y:4097 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6761,19 +6760,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4113 + // line internal/php7/php7.y:4112 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4120 + // line internal/php7/php7.y:4119 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4124 + // line internal/php7/php7.y:4123 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6786,7 +6785,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4135 + // line internal/php7/php7.y:4134 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6799,7 +6798,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4146 + // line internal/php7/php7.y:4145 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6812,7 +6811,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4157 + // line internal/php7/php7.y:4156 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6825,25 +6824,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4168 + // line internal/php7/php7.y:4167 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4175 + // line internal/php7/php7.y:4174 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4179 + // line internal/php7/php7.y:4178 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4183 + // line internal/php7/php7.y:4182 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6856,7 +6855,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4196 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6870,7 +6869,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4208 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6884,7 +6883,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4220 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6896,7 +6895,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4234 + // line internal/php7/php7.y:4233 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6909,7 +6908,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4245 + // line internal/php7/php7.y:4244 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6922,13 +6921,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4259 + // line internal/php7/php7.y:4258 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4263 + // line internal/php7/php7.y:4262 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6941,7 +6940,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4274 + // line internal/php7/php7.y:4273 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6954,7 +6953,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4284 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6967,7 +6966,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4296 + // line internal/php7/php7.y:4295 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6980,7 +6979,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4307 + // line internal/php7/php7.y:4306 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6993,7 +6992,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4321 + // line internal/php7/php7.y:4320 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7005,7 +7004,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4331 + // line internal/php7/php7.y:4330 { yyVAL.node = yyDollar[2].node @@ -7015,13 +7014,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4339 + // line internal/php7/php7.y:4338 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4346 + // line internal/php7/php7.y:4345 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7033,7 +7032,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4356 + // line internal/php7/php7.y:4355 { yyVAL.node = yyDollar[2].node @@ -7043,31 +7042,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4364 + // line internal/php7/php7.y:4363 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4371 + // line internal/php7/php7.y:4370 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4378 + // line internal/php7/php7.y:4377 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4382 + // line internal/php7/php7.y:4381 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4388 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7080,7 +7079,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4400 + // line internal/php7/php7.y:4399 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7090,7 +7089,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4410 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7102,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4422 + // line internal/php7/php7.y:4421 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7115,7 +7114,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4432 + // line internal/php7/php7.y:4431 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7131,7 +7130,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4446 + // line internal/php7/php7.y:4445 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7145,7 +7144,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4458 + // line internal/php7/php7.y:4457 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7157,7 +7156,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4468 + // line internal/php7/php7.y:4467 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7176,7 +7175,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4485 + // line internal/php7/php7.y:4484 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7193,13 +7192,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4503 + // line internal/php7/php7.y:4502 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4507 + // line internal/php7/php7.y:4506 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7212,13 +7211,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4518 + // line internal/php7/php7.y:4517 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4522 + // line internal/php7/php7.y:4521 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7231,7 +7230,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4536 + // line internal/php7/php7.y:4535 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7245,7 +7244,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4548 + // line internal/php7/php7.y:4547 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7262,7 +7261,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4563 + // line internal/php7/php7.y:4562 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7281,7 +7280,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4580 + // line internal/php7/php7.y:4579 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7296,7 +7295,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4593 + // line internal/php7/php7.y:4592 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7313,7 +7312,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4608 + // line internal/php7/php7.y:4607 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7332,7 +7331,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4624 { yyVAL.node = yyDollar[2].node @@ -7342,7 +7341,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4636 + // line internal/php7/php7.y:4635 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7354,7 +7353,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4645 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7371,7 +7370,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4661 + // line internal/php7/php7.y:4660 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7397,7 +7396,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4685 + // line internal/php7/php7.y:4684 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7411,7 +7410,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4700 + // line internal/php7/php7.y:4699 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7429,7 +7428,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4716 + // line internal/php7/php7.y:4715 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7451,7 +7450,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4736 + // line internal/php7/php7.y:4735 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7463,7 +7462,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4746 + // line internal/php7/php7.y:4745 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7475,7 +7474,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4756 + // line internal/php7/php7.y:4755 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7497,7 +7496,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4776 + // line internal/php7/php7.y:4775 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7509,7 +7508,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4786 + // line internal/php7/php7.y:4785 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7521,13 +7520,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4799 + // line internal/php7/php7.y:4798 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4803 + // line internal/php7/php7.y:4802 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7536,7 +7535,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4813 + // line internal/php7/php7.y:4812 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index d3cfde3..45741de 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -941,15 +941,14 @@ statement: } | T_RETURN optional_expr ';' { - $$ = &ast.StmtReturn{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtReturn{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ReturnTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_GLOBAL global_var_list ';' { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 2ed7187..1bed711 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -618,7 +618,9 @@ func (n *StmtPropertyList) Accept(v NodeVisitor) { // StmtReturn node type StmtReturn struct { Node - Expr Vertex + ReturnTkn *token.Token + Expr Vertex + SemiColonTkn *token.Token } func (n *StmtReturn) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 4cc6a27..91f6ddd 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -173,3 +173,8 @@ func (v *FilterTokens) StmtContinue(n *ast.StmtContinue) { n.ContinueTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtReturn(n *ast.StmtReturn) { + n.ReturnTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 3380c90..469a837 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2690,21 +2690,15 @@ func (p *Printer) printStmtProperty(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtReturn(n ast.Vertex) { - nn := n.(*ast.StmtReturn) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtReturn(n *ast.StmtReturn) { + p.printToken(n.ReturnTkn, "return") - io.WriteString(p.w, "return") - p.bufStart = " " - p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + if n.Expr != nil { + p.bufStart = " " } + p.Print(n.Expr) - p.printFreeFloating(nn, token.End) + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtStaticVar(n ast.Vertex) { From 3f12ada3114cd2a1477d8e7573709a33bc1176ad Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Wed, 9 Sep 2020 22:53:51 +0300 Subject: [PATCH 058/140] [refactoring] update ast structure of "Static", "Global" and "StaticVar" nodes --- internal/php5/php5.go | 1158 +++++++++++---------- internal/php5/php5.y | 110 +- internal/php7/php7.go | 1270 ++++++++++++----------- internal/php7/php7.y | 78 +- pkg/ast/node.go | 15 +- pkg/ast/visitor/filter_tokens.go | 16 + pkg/printer/printer.go | 74 +- pkg/printer/printer_parsed_php5_test.go | 9 +- pkg/printer/printer_parsed_php7_test.go | 6 +- pkg/printer/printer_test.go | 4 +- 10 files changed, 1416 insertions(+), 1324 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index d7d7936..8f17274 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6170 +// line internal/php5/php5.y:6196 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -707,9 +707,9 @@ var yyAct = [...]int{ 448, 839, 944, 836, 566, 231, 948, 231, 1006, 949, 531, 842, 1005, 449, 725, 39, 232, 843, 232, 192, 841, 39, 394, 946, 260, 261, 389, 164, 341, 698, - 538, 519, 929, 290, 460, 973, 161, 157, 318, 314, - 519, 127, 403, 575, 401, 335, 945, 519, 519, 519, - 519, 519, 1009, 343, 939, 231, 528, 608, 531, 997, + 538, 519, 929, 290, 460, 973, 318, 314, 127, 403, + 519, 575, 401, 335, 945, 1009, 343, 519, 519, 519, + 519, 519, 939, 157, 161, 231, 528, 608, 531, 997, 970, 179, 182, 183, 991, 969, 232, 968, 189, 191, 967, 848, 849, 850, 847, 846, 845, 519, 838, 837, 835, 40, 177, 176, 568, 169, 171, 170, 192, 15, @@ -1606,9 +1606,9 @@ var yyPgo = [...]int{ 7, 1135, 52, 43, 42, 1134, 1132, 1131, 31, 1128, 1121, 4, 1120, 1119, 1114, 16, 1111, 1110, 1109, 1108, 48, 5, 1100, 1097, 1095, 1090, 1089, 2, 1087, 607, - 1086, 18, 202, 1084, 1083, 1082, 12, 1076, 1075, 6, - 19, 1074, 1073, 1072, 9, 50, 0, 1071, 1069, 1068, - 117, 1067, 1066, 599, 1064, 1063, 62, 8, 1062, 1060, + 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 12, 1074, + 1073, 6, 19, 1072, 1071, 1069, 9, 50, 0, 1068, + 1067, 1066, 117, 599, 1064, 1063, 62, 8, 1062, 1060, 1059, 1058, 14, 47, 1057, 1056, 1052, 1044, 1042, 1038, 3, 1034, 23, 1033, 1031, 1027, 35, 1026, 1022, 1019, 1018, 1014, 1008, 1002, 25, 1001, 1000, 999, 24, 996, @@ -1617,26 +1617,26 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 95, 95, 96, 96, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 97, 97, - 6, 6, 6, 6, 98, 98, 7, 7, 7, 7, - 99, 99, 8, 8, 8, 8, 55, 55, 100, 100, + 0, 151, 97, 97, 98, 98, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 99, 99, + 6, 6, 6, 6, 100, 100, 7, 7, 7, 7, + 101, 101, 8, 8, 8, 8, 55, 55, 102, 102, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 117, 117, 60, 60, 118, 118, 119, 119, 61, 115, 115, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 91, 91, 2, 93, 93, 92, 92, 126, 126, 90, - 90, 89, 89, 89, 87, 87, 86, 86, 59, 59, - 116, 116, 84, 84, 84, 84, 113, 113, 113, 4, - 4, 88, 88, 109, 109, 110, 110, 56, 56, 57, + 93, 93, 2, 95, 95, 94, 94, 126, 126, 92, + 92, 91, 91, 91, 89, 89, 88, 88, 59, 59, + 116, 116, 86, 86, 86, 86, 113, 113, 113, 4, + 4, 90, 90, 109, 109, 110, 110, 56, 56, 57, 57, 120, 120, 121, 121, 65, 65, 64, 64, 64, - 64, 82, 82, 82, 127, 127, 70, 70, 70, 70, - 101, 101, 29, 29, 29, 102, 102, 102, 102, 122, - 122, 67, 67, 67, 67, 69, 128, 128, 83, 83, + 64, 84, 84, 84, 127, 127, 70, 70, 70, 70, + 82, 82, 29, 29, 29, 81, 81, 81, 81, 122, + 122, 67, 67, 67, 67, 69, 128, 128, 85, 85, 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 85, 85, 123, 123, + 75, 74, 73, 73, 76, 76, 87, 87, 123, 123, 124, 124, 132, 132, 77, 77, 77, 77, 77, 77, 125, 125, 125, 125, 68, 68, 114, 114, 112, 112, 111, 111, 138, 138, 136, 136, 137, 137, 137, 139, @@ -1648,11 +1648,11 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 94, 94, 108, + 49, 49, 49, 49, 48, 48, 1, 96, 96, 108, 108, 108, 108, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, - 133, 81, 81, 9, 9, 9, 9, 9, 9, 9, + 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 30, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, @@ -1729,7 +1729,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -95, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -97, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1739,99 +1739,99 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -96, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -98, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -96, 144, 83, 10, -97, 37, 39, - -6, -96, 83, 146, 160, 147, 10, -100, -50, 148, + 159, 12, 148, -98, 144, 83, 10, -99, 37, 39, + -6, -98, 83, 146, 160, 147, 10, -102, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, - 146, -16, 146, -17, -21, -16, 146, -101, -29, 12, - 159, -102, -1, 12, -114, -16, 146, 131, 132, 88, + 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, + 159, -81, -1, 12, -114, -16, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -96, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -98, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, 148, -50, -16, 150, 150, -133, 17, -103, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -96, 80, 83, + 77, 78, -16, 58, -45, -13, -43, -98, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, -16, 150, -103, 17, 17, 76, -103, 150, 148, -106, - -105, -16, 153, 150, 150, 83, -82, 148, -96, 79, - 150, 144, -12, 159, 79, -82, 144, 149, 146, 144, - -95, -96, 146, 160, -98, -7, -96, 83, -99, -8, - -96, 83, 29, -96, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -88, -27, 147, 21, -149, - -112, -111, -16, -84, 144, 147, 146, 146, 146, 146, + -105, -16, 153, 150, 150, 83, -84, 148, -98, 79, + 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, + -97, -98, 146, 160, -100, -7, -98, 83, -101, -8, + -98, 83, 29, -98, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -90, -27, 147, 21, -149, + -112, -111, -16, -86, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -115, - -58, -21, -21, -17, -116, 10, -100, 146, 146, 10, - 148, -91, 56, -93, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -116, 10, -102, 146, 146, 10, + 148, -93, 56, -95, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -107, -40, -21, 60, 83, -96, 79, 79, 149, 149, + -107, -40, -21, 60, 83, -98, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -81, -82, 79, 83, -96, 58, -12, 79, + 10, 144, -83, -84, 79, 83, -98, 58, -12, 79, -104, -38, -21, -17, -21, -16, -16, -15, 142, 76, 76, -15, -106, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -127, -52, -70, -17, -21, 153, 84, - -82, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -95, 145, -82, -6, 146, 160, 29, -96, - 146, 160, 29, -96, 10, 29, 162, -30, -79, -9, - -33, -96, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -109, -100, - -100, -50, 146, 160, -113, 146, -113, 146, -29, -16, + -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, + -16, 146, -97, 145, -84, -6, 146, 160, 29, -98, + 146, 160, 29, -98, 10, 29, 162, -30, -79, -9, + -33, -98, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -109, -102, + -102, -50, 146, 160, -113, 146, -113, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -120, -121, -65, -64, 61, - 62, -47, -96, 80, 83, -92, 57, -47, 144, -126, - -47, -17, -21, -21, 92, 149, 160, 148, -96, -139, + 62, -47, -98, 80, 83, -94, 57, -47, 144, -126, + -47, -17, -21, -21, 92, 149, 160, 148, -98, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -82, 150, 144, -12, -16, -42, -96, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -98, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, - 153, 151, 151, 149, 160, 149, -19, -16, -82, -82, - 151, 145, -82, -82, 145, 145, -7, 10, 29, -8, + 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, + 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -96, 148, -134, -135, -79, 17, 79, -79, + 152, 83, -98, 148, -134, -135, -79, 17, 79, -79, -79, -79, -79, -79, 149, -56, 94, 95, -110, 22, 146, -112, -16, 145, 32, 33, -113, 31, -113, 145, - 162, -120, -16, 146, -58, -89, -21, 153, 60, -89, + 162, -120, -16, 146, -58, -91, -21, 153, 60, -91, -59, -27, 147, 10, -30, -117, 42, -120, 149, 160, - -149, 83, -96, 144, -126, -122, 160, -45, 162, -40, + -149, 83, -98, 144, -126, -122, 160, -45, 162, -40, -107, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -96, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -98, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -90, 59, -21, 148, - -90, -100, 162, -60, 43, 148, 149, -94, 45, -65, - -150, 84, -96, -122, 145, -67, -123, -68, -69, -124, + 146, 145, 146, 31, -30, 149, -92, 59, -21, 148, + -92, -102, 162, -60, 43, 148, 149, -96, 45, -65, + -150, 84, -98, -122, 145, -67, -123, -68, -69, -124, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, - 101, -47, -81, -16, 149, -15, 151, -141, 151, -140, + 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, 147, 149, -79, -79, -27, 96, -50, 147, -112, -4, - -100, 146, -94, 149, -89, -107, 149, 28, -30, 144, + -102, 146, -96, 149, -91, -107, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -125, 12, 146, 160, -1, -77, 10, -128, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -100, 149, -100, 144, -86, - -27, 147, 149, -86, 146, -100, 12, -100, -100, -108, - 12, 153, 162, 146, 160, 162, 10, -149, 162, -83, - 160, 146, 144, -79, -100, -87, -27, 147, -100, -100, + -19, -79, 59, 146, 147, -102, 149, -102, 144, -88, + -27, 147, 149, -88, 146, -102, 12, -102, -102, -108, + 12, 153, 162, 146, 160, 162, 10, -149, 162, -85, + 160, 146, 144, -79, -102, -89, -27, 147, -102, -102, 145, 149, 145, 145, 149, 160, 12, -30, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -100, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -102, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -100, 12, -30, -120, -131, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -118, -119, -61, 42, -85, - 146, 144, -47, -61, 148, -100, -47, 145, 12, 149, - 144, -100, 145, + 146, -102, 12, -30, -120, -131, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -118, -119, -61, 42, -87, + 146, 144, -47, -61, 148, -102, -47, 145, 12, 149, + 144, -102, 145, } var yyDef = [...]int{ @@ -3158,33 +3158,27 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1038 { - yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1050 + // line internal/php5/php5.y:1047 { - yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtStatic).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1062 + // line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3199,7 +3193,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1075 + // line internal/php5/php5.y:1069 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3211,7 +3205,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1085 + // line internal/php5/php5.y:1079 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3225,7 +3219,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1097 + // line internal/php5/php5.y:1091 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3241,7 +3235,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1111 + // line internal/php5/php5.y:1105 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3282,7 +3276,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1149 + // line internal/php5/php5.y:1143 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3323,7 +3317,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1187 + // line internal/php5/php5.y:1181 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3338,7 +3332,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1200 + // line internal/php5/php5.y:1194 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3351,7 +3345,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3369,7 +3363,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1227 + // line internal/php5/php5.y:1221 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3383,7 +3377,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1239 + // line internal/php5/php5.y:1233 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3400,13 +3394,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1257 + // line internal/php5/php5.y:1251 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1261 + // line internal/php5/php5.y:1255 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3428,13 +3422,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1284 + // line internal/php5/php5.y:1278 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1288 + // line internal/php5/php5.y:1282 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3448,31 +3442,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1303 + // line internal/php5/php5.y:1297 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1307 + // line internal/php5/php5.y:1301 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1314 + // line internal/php5/php5.y:1308 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1318 + // line internal/php5/php5.y:1312 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1325 + // line internal/php5/php5.y:1319 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3493,13 +3487,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1347 + // line internal/php5/php5.y:1341 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1351 + // line internal/php5/php5.y:1345 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3508,49 +3502,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1368 + // line internal/php5/php5.y:1362 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1375 + // line internal/php5/php5.y:1369 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1382 + // line internal/php5/php5.y:1376 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1386 + // line internal/php5/php5.y:1380 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1387 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1397 + // line internal/php5/php5.y:1391 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1404 + // line internal/php5/php5.y:1398 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3574,7 +3568,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1429 + // line internal/php5/php5.y:1423 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3602,7 +3596,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1455 + // line internal/php5/php5.y:1449 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3619,7 +3613,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1468 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3631,7 +3625,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1484 + // line internal/php5/php5.y:1478 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3646,7 +3640,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1491 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3658,7 +3652,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1507 + // line internal/php5/php5.y:1501 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3673,13 +3667,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1517 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1527 + // line internal/php5/php5.y:1521 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3691,19 +3685,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1540 + // line internal/php5/php5.y:1534 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1547 + // line internal/php5/php5.y:1541 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1551 + // line internal/php5/php5.y:1545 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3715,13 +3709,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1564 + // line internal/php5/php5.y:1558 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1562 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3733,13 +3727,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1581 + // line internal/php5/php5.y:1575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1585 + // line internal/php5/php5.y:1579 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3753,13 +3747,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1597 + // line internal/php5/php5.y:1591 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1601 + // line internal/php5/php5.y:1595 { yyVAL.node = yyDollar[2].node @@ -3768,13 +3762,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1611 + // line internal/php5/php5.y:1605 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1615 + // line internal/php5/php5.y:1609 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3786,7 +3780,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1625 + // line internal/php5/php5.y:1619 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3800,7 +3794,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1640 + // line internal/php5/php5.y:1634 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3811,7 +3805,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1649 + // line internal/php5/php5.y:1643 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3831,7 +3825,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1670 + // line internal/php5/php5.y:1664 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3840,7 +3834,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1677 + // line internal/php5/php5.y:1671 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3861,7 +3855,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1700 + // line internal/php5/php5.y:1694 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3870,7 +3864,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1707 + // line internal/php5/php5.y:1701 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3891,7 +3885,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1730 + // line internal/php5/php5.y:1724 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3913,7 +3907,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1750 + // line internal/php5/php5.y:1744 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3934,7 +3928,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1767 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3947,7 +3941,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1784 + // line internal/php5/php5.y:1778 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3961,7 +3955,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1796 + // line internal/php5/php5.y:1790 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3976,7 +3970,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1809 + // line internal/php5/php5.y:1803 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3992,13 +3986,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1827 + // line internal/php5/php5.y:1821 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1831 + // line internal/php5/php5.y:1825 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4012,7 +4006,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1843 + // line internal/php5/php5.y:1837 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4025,19 +4019,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1858 + // line internal/php5/php5.y:1852 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1862 + // line internal/php5/php5.y:1856 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1870 + // line internal/php5/php5.y:1864 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4048,7 +4042,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1879 + // line internal/php5/php5.y:1873 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4068,13 +4062,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1902 + // line internal/php5/php5.y:1896 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1906 + // line internal/php5/php5.y:1900 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4089,13 +4083,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1923 + // line internal/php5/php5.y:1917 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1927 + // line internal/php5/php5.y:1921 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4117,13 +4111,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1951 + // line internal/php5/php5.y:1945 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1955 + // line internal/php5/php5.y:1949 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4135,13 +4129,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1969 + // line internal/php5/php5.y:1963 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1973 + // line internal/php5/php5.y:1967 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4160,25 +4154,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1994 + // line internal/php5/php5.y:1988 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1998 + // line internal/php5/php5.y:1992 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2005 + // line internal/php5/php5.y:1999 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2009 + // line internal/php5/php5.y:2003 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4187,7 +4181,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2013 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4223,7 +4217,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2053 + // line internal/php5/php5.y:2047 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4260,13 +4254,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2092 + // line internal/php5/php5.y:2086 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2096 + // line internal/php5/php5.y:2090 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4278,7 +4272,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2106 + // line internal/php5/php5.y:2100 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4290,13 +4284,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2116 + // line internal/php5/php5.y:2110 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2118 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4309,7 +4303,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2135 + // line internal/php5/php5.y:2129 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4322,7 +4316,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2146 + // line internal/php5/php5.y:2140 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4337,13 +4331,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2163 + // line internal/php5/php5.y:2157 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2167 + // line internal/php5/php5.y:2161 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4352,7 +4346,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2171 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4364,7 +4358,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2187 + // line internal/php5/php5.y:2181 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4376,7 +4370,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2191 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4388,7 +4382,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2201 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4400,22 +4394,24 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2220 + // line internal/php5/php5.y:2214 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2227 + // line internal/php5/php5.y:2221 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtGlobal{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2235 + // line internal/php5/php5.y:2231 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4429,7 +4425,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2243 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4441,7 +4437,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2257 + // line internal/php5/php5.y:2253 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4455,91 +4451,121 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2273 + // line internal/php5/php5.y:2269 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - yyVAL.list = append(yyDollar[1].list, staticVar) + + yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Var: variable, + }) + yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) + + yyVAL.node = yyDollar[1].node // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2289 + // line internal/php5/php5.y:2291 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[5].node} - yyVAL.list = append(yyDollar[1].list, staticVar) + + yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + }, + Var: variable, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, + }) + yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) + + yyVAL.node = yyDollar[1].node // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[4].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2306 + // line internal/php5/php5.y:2315 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - yyVAL.list = []ast.Vertex{staticVar} + + yyVAL.node = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Var: variable, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - staticVar.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2321 + // line internal/php5/php5.y:2338 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} - yyVAL.list = []ast.Vertex{staticVar} + + yyVAL.node = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Var: variable, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - staticVar.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2341 + // line internal/php5/php5.y:2367 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2345 + // line internal/php5/php5.y:2371 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2353 + // line internal/php5/php5.y:2379 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4553,7 +4579,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2365 + // line internal/php5/php5.y:2391 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4561,13 +4587,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2371 + // line internal/php5/php5.y:2397 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2375 + // line internal/php5/php5.y:2401 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4598,7 +4624,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2407 + // line internal/php5/php5.y:2433 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4610,13 +4636,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2420 + // line internal/php5/php5.y:2446 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2424 + // line internal/php5/php5.y:2450 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4630,7 +4656,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2436 + // line internal/php5/php5.y:2462 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4642,7 +4668,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2472 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4654,31 +4680,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2459 + // line internal/php5/php5.y:2485 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2489 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2470 + // line internal/php5/php5.y:2496 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2474 + // line internal/php5/php5.y:2500 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2481 + // line internal/php5/php5.y:2507 { yyVAL.node = yyDollar[1].node @@ -4688,7 +4714,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2489 + // line internal/php5/php5.y:2515 { yyVAL.node = yyDollar[1].node @@ -4698,7 +4724,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2526 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4711,13 +4737,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2514 + // line internal/php5/php5.y:2540 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2518 + // line internal/php5/php5.y:2544 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4726,7 +4752,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2528 + // line internal/php5/php5.y:2554 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4740,13 +4766,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2540 + // line internal/php5/php5.y:2566 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2573 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4762,7 +4788,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2564 + // line internal/php5/php5.y:2590 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4778,7 +4804,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2604 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4791,19 +4817,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2592 + // line internal/php5/php5.y:2618 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2596 + // line internal/php5/php5.y:2622 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2603 + // line internal/php5/php5.y:2629 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4816,7 +4842,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2614 + // line internal/php5/php5.y:2640 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4829,13 +4855,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2628 + // line internal/php5/php5.y:2654 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2632 + // line internal/php5/php5.y:2658 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4848,31 +4874,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2646 + // line internal/php5/php5.y:2672 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2650 + // line internal/php5/php5.y:2676 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2657 + // line internal/php5/php5.y:2683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2661 + // line internal/php5/php5.y:2687 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2668 + // line internal/php5/php5.y:2694 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4884,7 +4910,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2704 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4896,7 +4922,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2688 + // line internal/php5/php5.y:2714 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4908,7 +4934,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2698 + // line internal/php5/php5.y:2724 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4920,7 +4946,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2734 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4932,7 +4958,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2718 + // line internal/php5/php5.y:2744 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4944,7 +4970,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2731 + // line internal/php5/php5.y:2757 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4962,7 +4988,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2747 + // line internal/php5/php5.y:2773 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4981,7 +5007,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2764 + // line internal/php5/php5.y:2790 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4998,7 +5024,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2805 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5016,7 +5042,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2798 + // line internal/php5/php5.y:2824 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5041,7 +5067,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2821 + // line internal/php5/php5.y:2847 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5069,7 +5095,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2850 + // line internal/php5/php5.y:2876 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5078,25 +5104,25 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2857 + // line internal/php5/php5.y:2883 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2865 + // line internal/php5/php5.y:2891 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2869 + // line internal/php5/php5.y:2895 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2902 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5105,25 +5131,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2909 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2890 + // line internal/php5/php5.y:2916 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2894 + // line internal/php5/php5.y:2920 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2901 + // line internal/php5/php5.y:2927 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5137,7 +5163,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2913 + // line internal/php5/php5.y:2939 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5151,37 +5177,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2928 + // line internal/php5/php5.y:2954 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2932 + // line internal/php5/php5.y:2958 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2936 + // line internal/php5/php5.y:2962 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2943 + // line internal/php5/php5.y:2969 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2947 + // line internal/php5/php5.y:2973 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2954 + // line internal/php5/php5.y:2980 { if yyDollar[3].node != nil { @@ -5197,7 +5223,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2971 + // line internal/php5/php5.y:2997 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5214,7 +5240,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2986 + // line internal/php5/php5.y:3012 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5227,7 +5253,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2997 + // line internal/php5/php5.y:3023 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5241,7 +5267,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3009 + // line internal/php5/php5.y:3035 { var _new *ast.ExprNew @@ -5268,7 +5294,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3034 + // line internal/php5/php5.y:3060 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5280,7 +5306,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3044 + // line internal/php5/php5.y:3070 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5318,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5305,7 +5331,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3091 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5344,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3076 + // line internal/php5/php5.y:3102 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5357,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3087 + // line internal/php5/php5.y:3113 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5370,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3098 + // line internal/php5/php5.y:3124 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5383,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3109 + // line internal/php5/php5.y:3135 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5396,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3120 + // line internal/php5/php5.y:3146 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5409,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3131 + // line internal/php5/php5.y:3157 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5422,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3142 + // line internal/php5/php5.y:3168 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5435,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3153 + // line internal/php5/php5.y:3179 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5448,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3164 + // line internal/php5/php5.y:3190 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5461,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3175 + // line internal/php5/php5.y:3201 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5448,7 +5474,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3186 + // line internal/php5/php5.y:3212 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5460,7 +5486,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3196 + // line internal/php5/php5.y:3222 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5473,7 +5499,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3207 + // line internal/php5/php5.y:3233 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5485,7 +5511,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3217 + // line internal/php5/php5.y:3243 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5498,7 +5524,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3228 + // line internal/php5/php5.y:3254 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5511,7 +5537,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3239 + // line internal/php5/php5.y:3265 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5550,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3250 + // line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5563,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3261 + // line internal/php5/php5.y:3287 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5576,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3272 + // line internal/php5/php5.y:3298 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5589,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3283 + // line internal/php5/php5.y:3309 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5602,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3294 + // line internal/php5/php5.y:3320 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5615,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3305 + // line internal/php5/php5.y:3331 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5628,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3316 + // line internal/php5/php5.y:3342 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5641,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3327 + // line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5654,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3338 + // line internal/php5/php5.y:3364 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5667,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3349 + // line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5680,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3360 + // line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5693,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3371 + // line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5706,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3382 + // line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5719,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3393 + // line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5732,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3404 + // line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5718,7 +5744,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3414 + // line internal/php5/php5.y:3440 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5730,7 +5756,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3450 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5742,7 +5768,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3460 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5754,7 +5780,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3444 + // line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5793,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3455 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5806,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3466 + // line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5819,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3477 + // line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5833,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3489 + // line internal/php5/php5.y:3515 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5846,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3500 + // line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5859,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3511 + // line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5872,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3522 + // line internal/php5/php5.y:3548 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5885,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3533 + // line internal/php5/php5.y:3559 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,19 +5898,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3544 + // line internal/php5/php5.y:3570 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3548 + // line internal/php5/php5.y:3574 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3552 + // line internal/php5/php5.y:3578 { yyVAL.node = yyDollar[2].node @@ -5916,7 +5942,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3582 + // line internal/php5/php5.y:3608 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5930,7 +5956,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3594 + // line internal/php5/php5.y:3620 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5944,13 +5970,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3606 + // line internal/php5/php5.y:3632 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3610 + // line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5963,7 +5989,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3621 + // line internal/php5/php5.y:3647 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5976,7 +6002,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3632 + // line internal/php5/php5.y:3658 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5989,7 +6015,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3643 + // line internal/php5/php5.y:3669 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6002,7 +6028,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3654 + // line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6041,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3665 + // line internal/php5/php5.y:3691 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6054,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3676 + // line internal/php5/php5.y:3702 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6067,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3687 + // line internal/php5/php5.y:3713 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6061,7 +6087,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3705 + // line internal/php5/php5.y:3731 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6073,25 +6099,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3715 + // line internal/php5/php5.y:3741 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3719 + // line internal/php5/php5.y:3745 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3723 + // line internal/php5/php5.y:3749 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6103,7 +6129,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3763 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6115,7 +6141,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3747 + // line internal/php5/php5.y:3773 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6127,7 +6153,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3757 + // line internal/php5/php5.y:3783 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6154,7 +6180,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3781 + // line internal/php5/php5.y:3807 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6182,7 +6208,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3809 + // line internal/php5/php5.y:3835 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6194,7 +6220,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3819 + // line internal/php5/php5.y:3845 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6206,7 +6232,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3829 + // line internal/php5/php5.y:3855 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6219,7 +6245,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3840 + // line internal/php5/php5.y:3866 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6232,7 +6258,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3854 + // line internal/php5/php5.y:3880 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6245,7 +6271,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3865 + // line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6258,7 +6284,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3876 + // line internal/php5/php5.y:3902 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6274,7 +6300,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3890 + // line internal/php5/php5.y:3916 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6287,7 +6313,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3904 + // line internal/php5/php5.y:3930 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6301,7 +6327,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3916 + // line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6314,19 +6340,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3930 + // line internal/php5/php5.y:3956 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3937 + // line internal/php5/php5.y:3963 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3941 + // line internal/php5/php5.y:3967 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6340,7 +6366,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3956 + // line internal/php5/php5.y:3982 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6356,7 +6382,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3970 + // line internal/php5/php5.y:3996 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6375,7 +6401,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3987 + // line internal/php5/php5.y:4013 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6390,7 +6416,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4000 + // line internal/php5/php5.y:4026 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6408,7 +6434,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4019 + // line internal/php5/php5.y:4045 { name := &ast.NameName{ Node: ast.Node{ @@ -6423,7 +6449,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4032 + // line internal/php5/php5.y:4058 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6440,7 +6466,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4073 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6456,7 +6482,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4061 + // line internal/php5/php5.y:4087 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6469,7 +6495,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4072 + // line internal/php5/php5.y:4098 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6482,7 +6508,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4083 + // line internal/php5/php5.y:4109 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6495,7 +6521,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4094 + // line internal/php5/php5.y:4120 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6508,7 +6534,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4105 + // line internal/php5/php5.y:4131 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6520,7 +6546,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4118 + // line internal/php5/php5.y:4144 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6532,7 +6558,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4128 + // line internal/php5/php5.y:4154 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6543,7 +6569,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4137 + // line internal/php5/php5.y:4163 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6556,7 +6582,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4148 + // line internal/php5/php5.y:4174 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6568,7 +6594,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4161 + // line internal/php5/php5.y:4187 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6579,7 +6605,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4170 + // line internal/php5/php5.y:4196 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6592,7 +6618,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4181 + // line internal/php5/php5.y:4207 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6604,19 +6630,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4194 + // line internal/php5/php5.y:4220 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4198 + // line internal/php5/php5.y:4224 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4205 + // line internal/php5/php5.y:4231 { yyVAL.node = yyDollar[1].node @@ -6657,25 +6683,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4244 + // line internal/php5/php5.y:4270 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4252 + // line internal/php5/php5.y:4278 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4256 + // line internal/php5/php5.y:4282 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4264 + // line internal/php5/php5.y:4290 { yyVAL.list = yyDollar[2].list @@ -6684,13 +6710,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4274 + // line internal/php5/php5.y:4300 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4304 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6706,19 +6732,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4292 + // line internal/php5/php5.y:4318 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4299 + // line internal/php5/php5.y:4325 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4303 + // line internal/php5/php5.y:4329 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6728,25 +6754,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4311 + // line internal/php5/php5.y:4337 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4318 + // line internal/php5/php5.y:4344 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4322 + // line internal/php5/php5.y:4348 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4355 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6758,7 +6784,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4365 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6770,7 +6796,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4349 + // line internal/php5/php5.y:4375 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6782,7 +6808,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4359 + // line internal/php5/php5.y:4385 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6794,7 +6820,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4369 + // line internal/php5/php5.y:4395 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6806,7 +6832,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4379 + // line internal/php5/php5.y:4405 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6818,7 +6844,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4415 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6830,7 +6856,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4399 + // line internal/php5/php5.y:4425 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6842,7 +6868,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4409 + // line internal/php5/php5.y:4435 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6854,7 +6880,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4445 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6866,7 +6892,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4429 + // line internal/php5/php5.y:4455 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6880,7 +6906,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4441 + // line internal/php5/php5.y:4467 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6892,7 +6918,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4454 + // line internal/php5/php5.y:4480 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6908,25 +6934,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4471 + // line internal/php5/php5.y:4497 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4478 + // line internal/php5/php5.y:4504 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4482 + // line internal/php5/php5.y:4508 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4512 { name := &ast.NameName{ Node: ast.Node{ @@ -6941,7 +6967,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4499 + // line internal/php5/php5.y:4525 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6958,7 +6984,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4514 + // line internal/php5/php5.y:4540 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6974,7 +7000,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4528 + // line internal/php5/php5.y:4554 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6988,7 +7014,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4540 + // line internal/php5/php5.y:4566 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7001,13 +7027,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4551 + // line internal/php5/php5.y:4577 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4555 + // line internal/php5/php5.y:4581 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7019,13 +7045,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4565 + // line internal/php5/php5.y:4591 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4572 + // line internal/php5/php5.y:4598 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7038,7 +7064,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4583 + // line internal/php5/php5.y:4609 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7051,7 +7077,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4620 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7064,7 +7090,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4605 + // line internal/php5/php5.y:4631 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7103,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4616 + // line internal/php5/php5.y:4642 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7090,7 +7116,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4627 + // line internal/php5/php5.y:4653 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7129,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4638 + // line internal/php5/php5.y:4664 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7116,7 +7142,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4649 + // line internal/php5/php5.y:4675 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7128,7 +7154,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4659 + // line internal/php5/php5.y:4685 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7140,7 +7166,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4695 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7153,7 +7179,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4680 + // line internal/php5/php5.y:4706 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7166,7 +7192,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4717 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7179,7 +7205,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4702 + // line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7192,7 +7218,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7205,7 +7231,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7218,7 +7244,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4761 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7231,7 +7257,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4746 + // line internal/php5/php5.y:4772 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7244,7 +7270,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7257,7 +7283,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4768 + // line internal/php5/php5.y:4794 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7270,7 +7296,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4779 + // line internal/php5/php5.y:4805 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7283,7 +7309,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4816 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7322,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4801 + // line internal/php5/php5.y:4827 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7335,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4812 + // line internal/php5/php5.y:4838 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7348,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4849 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7336,7 +7362,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4835 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7349,7 +7375,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7362,7 +7388,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4857 + // line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7401,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7414,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4905 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7402,7 +7428,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4917 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7416,7 +7442,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4903 + // line internal/php5/php5.y:4929 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7428,7 +7454,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4913 + // line internal/php5/php5.y:4939 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7440,7 +7466,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4949 { yyVAL.node = yyDollar[2].node @@ -7450,13 +7476,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4934 + // line internal/php5/php5.y:4960 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4964 { name := &ast.NameName{ Node: ast.Node{ @@ -7471,7 +7497,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4951 + // line internal/php5/php5.y:4977 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7488,7 +7514,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4966 + // line internal/php5/php5.y:4992 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7504,7 +7530,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4983 + // line internal/php5/php5.y:5009 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7518,25 +7544,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4995 + // line internal/php5/php5.y:5021 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4999 + // line internal/php5/php5.y:5025 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5003 + // line internal/php5/php5.y:5029 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5007 + // line internal/php5/php5.y:5033 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7548,7 +7574,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5017 + // line internal/php5/php5.y:5043 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7560,7 +7586,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5027 + // line internal/php5/php5.y:5053 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7572,13 +7598,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5040 + // line internal/php5/php5.y:5066 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5070 { yyVAL.list = yyDollar[1].list @@ -7589,19 +7615,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5082 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5060 + // line internal/php5/php5.y:5086 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5067 + // line internal/php5/php5.y:5093 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7616,7 +7642,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5106 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7630,7 +7656,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5118 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7644,7 +7670,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5130 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7657,19 +7683,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5118 + // line internal/php5/php5.y:5144 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5148 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5155 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7686,7 +7712,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5170 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7703,25 +7729,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5163 + // line internal/php5/php5.y:5189 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5171 + // line internal/php5/php5.y:5197 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5178 + // line internal/php5/php5.y:5204 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5185 + // line internal/php5/php5.y:5211 { yyVAL.node = yyDollar[1].node @@ -7779,25 +7805,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5241 + // line internal/php5/php5.y:5267 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5248 + // line internal/php5/php5.y:5274 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5278 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5260 + // line internal/php5/php5.y:5286 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7811,7 +7837,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5301 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7825,7 +7851,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5287 + // line internal/php5/php5.y:5313 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7839,7 +7865,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5328 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7848,31 +7874,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5312 + // line internal/php5/php5.y:5338 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5316 + // line internal/php5/php5.y:5342 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5346 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5327 + // line internal/php5/php5.y:5353 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5331 + // line internal/php5/php5.y:5357 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7884,7 +7910,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7897,7 +7923,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5355 + // line internal/php5/php5.y:5381 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7910,13 +7936,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5395 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5376 + // line internal/php5/php5.y:5402 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7929,7 +7955,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5387 + // line internal/php5/php5.y:5413 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7942,31 +7968,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5401 + // line internal/php5/php5.y:5427 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5405 + // line internal/php5/php5.y:5431 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5435 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5417 + // line internal/php5/php5.y:5443 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5447 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7978,13 +8004,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5431 + // line internal/php5/php5.y:5457 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5438 + // line internal/php5/php5.y:5464 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7997,7 +8023,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5449 + // line internal/php5/php5.y:5475 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8010,13 +8036,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5460 + // line internal/php5/php5.y:5486 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5468 + // line internal/php5/php5.y:5494 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8030,7 +8056,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5480 + // line internal/php5/php5.y:5506 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8044,25 +8070,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5495 + // line internal/php5/php5.y:5521 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5499 + // line internal/php5/php5.y:5525 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5507 + // line internal/php5/php5.y:5533 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5537 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8072,7 +8098,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5522 + // line internal/php5/php5.y:5548 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8086,7 +8112,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5534 + // line internal/php5/php5.y:5560 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8100,7 +8126,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5572 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8110,7 +8136,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5557 + // line internal/php5/php5.y:5583 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8122,7 +8148,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5593 { yyVAL.node = yyDollar[2].node @@ -8135,7 +8161,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5581 + // line internal/php5/php5.y:5607 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8148,7 +8174,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5618 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8165,7 +8191,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5610 + // line internal/php5/php5.y:5636 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8178,7 +8204,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5621 + // line internal/php5/php5.y:5647 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8188,7 +8214,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5633 + // line internal/php5/php5.y:5659 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8200,7 +8226,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5643 + // line internal/php5/php5.y:5669 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8216,19 +8242,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5657 + // line internal/php5/php5.y:5683 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5665 + // line internal/php5/php5.y:5691 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5669 + // line internal/php5/php5.y:5695 { yyVAL.list = yyDollar[1].list @@ -8243,7 +8269,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5685 + // line internal/php5/php5.y:5711 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8258,7 +8284,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5698 + // line internal/php5/php5.y:5724 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8272,7 +8298,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5710 + // line internal/php5/php5.y:5736 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8286,7 +8312,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5722 + // line internal/php5/php5.y:5748 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8299,7 +8325,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5733 + // line internal/php5/php5.y:5759 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8317,7 +8343,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5749 + // line internal/php5/php5.y:5775 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8333,7 +8359,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5763 + // line internal/php5/php5.y:5789 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8350,7 +8376,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5778 + // line internal/php5/php5.y:5804 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8365,13 +8391,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5794 + // line internal/php5/php5.y:5820 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5798 + // line internal/php5/php5.y:5824 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8384,13 +8410,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5809 + // line internal/php5/php5.y:5835 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5813 + // line internal/php5/php5.y:5839 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8403,7 +8429,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5827 + // line internal/php5/php5.y:5853 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8417,7 +8443,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5839 + // line internal/php5/php5.y:5865 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8434,7 +8460,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5854 + // line internal/php5/php5.y:5880 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8453,7 +8479,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5871 + // line internal/php5/php5.y:5897 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8468,7 +8494,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5884 + // line internal/php5/php5.y:5910 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8485,7 +8511,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5925 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8504,7 +8530,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5916 + // line internal/php5/php5.y:5942 { yyVAL.node = yyDollar[2].node @@ -8514,7 +8540,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5927 + // line internal/php5/php5.y:5953 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8526,7 +8552,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5937 + // line internal/php5/php5.y:5963 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8543,7 +8569,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5952 + // line internal/php5/php5.y:5978 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8557,7 +8583,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5967 + // line internal/php5/php5.y:5993 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8571,7 +8597,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5979 + // line internal/php5/php5.y:6005 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8593,7 +8619,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5999 + // line internal/php5/php5.y:6025 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8615,7 +8641,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6019 + // line internal/php5/php5.y:6045 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8627,7 +8653,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6029 + // line internal/php5/php5.y:6055 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8639,7 +8665,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6039 + // line internal/php5/php5.y:6065 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8661,7 +8687,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6059 + // line internal/php5/php5.y:6085 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8673,7 +8699,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6069 + // line internal/php5/php5.y:6095 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8685,13 +8711,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6082 + // line internal/php5/php5.y:6108 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6112 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8700,19 +8726,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6096 + // line internal/php5/php5.y:6122 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6100 + // line internal/php5/php5.y:6126 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6107 + // line internal/php5/php5.y:6133 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8728,7 +8754,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6121 + // line internal/php5/php5.y:6147 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8744,7 +8770,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6138 + // line internal/php5/php5.y:6164 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8760,7 +8786,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6155 + // line internal/php5/php5.y:6181 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index be091ce..a912b40 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -239,7 +239,7 @@ import ( %type optional_class_type parameter class_entry_type class_statement class_constant_declaration %type trait_use_statement function_call_parameter trait_adaptation_statement trait_precedence trait_alias %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method -%type static_scalar_value static_operation +%type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list %type trait_adaptations %type switch_case_list @@ -253,7 +253,7 @@ import ( %type lexical_vars %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations -%type inner_statement_list global_var_list static_var_list encaps_list isset_variables non_empty_array_pair_list +%type inner_statement_list encaps_list isset_variables non_empty_array_pair_list %type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list echo_expr_list unset_variables declare_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list @@ -1036,27 +1036,21 @@ unticked_statement: } | T_GLOBAL global_var_list ';' { - $$ = &ast.StmtGlobal{ast.Node{}, $2} + $2.(*ast.StmtGlobal).GlobalTkn = $1 + $2.(*ast.StmtGlobal).SemiColonTkn = $3 + $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) + $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_STATIC static_var_list ';' { - $$ = &ast.StmtStatic{ast.Node{}, $2} + $2.(*ast.StmtStatic).StaticTkn = $1 + $2.(*ast.StmtStatic).SemiColonTkn = $3 + $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) + $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_ECHO echo_expr_list ';' { @@ -2218,14 +2212,16 @@ function_call_parameter: global_var_list: global_var_list ',' global_var { - $$ = append($1, $3) + $1.(*ast.StmtGlobal).Vars = append($1.(*ast.StmtGlobal).Vars, $3) + $1.(*ast.StmtGlobal).SeparatorTkns = append($1.(*ast.StmtGlobal).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | global_var { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtGlobal{ + Vars: []ast.Vertex{$1}, + } } ; @@ -2273,65 +2269,95 @@ static_var_list: { identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - $$ = append($1, staticVar) + + $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Var: variable, + }) + $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) + + $$ = $1 // save position identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) - staticVar.GetNode().Position = position.NewTokenPosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } | static_var_list ',' T_VARIABLE '=' static_scalar { identifier := &ast.Identifier{ast.Node{}, $3.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $5} - $$ = append($1, staticVar) + + $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $5), + }, + Var: variable, + EqualTkn: $4, + Expr: $5, + }) + $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) + + $$ = $1 // save position identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) - staticVar.GetNode().Position = position.NewTokenNodePosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $4.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } | T_VARIABLE { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, nil} - $$ = []ast.Vertex{staticVar} + + $$ = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Var: variable, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - staticVar.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' static_scalar { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - staticVar := &ast.StmtStaticVar{ast.Node{}, variable, $3} - $$ = []ast.Vertex{staticVar} + + $$ = &ast.StmtStatic{ + Vars: []ast.Vertex{ + &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Var: variable, + EqualTkn: $2, + Expr: $3, + }, + }, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - staticVar.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating(staticVar, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(staticVar, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 7ce01b9..e26b9a2 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4819 +// line internal/php7/php7.y:4827 // line yacctab:1 var yyExca = [...]int{ @@ -631,13 +631,13 @@ var yyAct = [...]int{ 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, 189, 744, 632, 855, 260, 261, 235, 539, 238, 225, 859, 283, 260, 261, 528, 865, 371, 108, 879, 877, - 890, 891, 886, 147, 838, 144, 892, 893, 328, 885, - 151, 730, 841, 853, 676, 897, 898, 830, 255, 872, - 796, 385, 786, 896, 903, 656, 852, 905, 934, 662, - 845, 227, 43, 42, 886, 908, 904, 902, 260, 261, - 16, 885, 15, 606, 271, 49, 48, 110, 50, 84, - 82, 72, 252, 62, 269, 61, 906, 918, 884, 883, - 882, 881, 742, 45, 734, 673, 315, 928, 926, 922, + 890, 891, 886, 838, 328, 151, 892, 893, 841, 885, + 676, 730, 830, 853, 255, 897, 898, 796, 385, 872, + 656, 852, 786, 896, 903, 934, 662, 905, 845, 227, + 43, 42, 16, 15, 886, 908, 904, 902, 260, 261, + 606, 885, 271, 49, 48, 110, 50, 84, 82, 72, + 252, 62, 269, 61, 884, 883, 906, 918, 882, 881, + 742, 147, 144, 45, 734, 673, 315, 928, 926, 922, 789, 924, 925, 586, 120, 929, 302, 3, 441, 768, 930, 707, 919, 640, 920, 933, 0, 4, 937, 89, 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, @@ -1426,14 +1426,14 @@ var yyPgo = [...]int{ 0, 931, 929, 14, 8, 928, 4, 29, 13, 927, 11, 44, 78, 71, 52, 48, 926, 26, 924, 83, 21, 82, 916, 0, 84, 915, 914, 42, 190, 32, - 19, 38, 913, 79, 73, 912, 5, 911, 910, 909, - 908, 15, 62, 905, 904, 100, 87, 274, 903, 902, - 901, 6, 900, 86, 41, 899, 56, 49, 898, 897, - 896, 895, 894, 99, 893, 892, 890, 883, 10, 882, - 881, 46, 39, 40, 2, 16, 705, 43, 85, 880, - 879, 878, 12, 876, 875, 555, 50, 37, 871, 870, - 9, 762, 20, 553, 868, 18, 867, 864, 862, 88, - 860, 36, 858, 855, 25, 33, 854, 853, 45, 848, + 19, 38, 913, 912, 79, 911, 73, 910, 5, 909, + 908, 905, 904, 15, 62, 903, 902, 100, 87, 274, + 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, + 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, + 10, 880, 879, 46, 39, 40, 2, 16, 705, 43, + 85, 878, 876, 875, 12, 871, 870, 555, 50, 37, + 868, 867, 9, 762, 20, 553, 864, 18, 862, 860, + 858, 88, 855, 36, 854, 25, 33, 853, 45, 848, 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } @@ -1447,28 +1447,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, - 117, 95, 95, 10, 10, 10, 9, 9, 9, 9, + 117, 97, 97, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 91, 91, 16, 16, 18, 18, 7, 7, 105, - 105, 104, 104, 111, 111, 17, 17, 20, 20, 19, - 19, 99, 99, 118, 118, 22, 22, 22, 22, 22, + 9, 93, 93, 16, 16, 18, 18, 7, 7, 106, + 106, 105, 105, 111, 111, 17, 17, 20, 20, 19, + 19, 101, 101, 118, 118, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 97, 97, 96, 96, + 11, 11, 11, 11, 11, 11, 99, 99, 98, 98, 26, 26, 110, 110, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 76, 76, 14, 15, 86, 86, - 88, 88, 87, 87, 92, 92, 92, 92, 83, 83, - 82, 82, 25, 25, 80, 80, 80, 80, 108, 108, - 108, 8, 8, 84, 84, 67, 67, 65, 65, 69, - 69, 66, 66, 119, 119, 120, 120, 29, 29, 30, - 30, 75, 75, 73, 73, 73, 74, 74, 77, 77, - 116, 116, 31, 31, 103, 103, 33, 107, 107, 34, - 34, 121, 121, 35, 35, 35, 35, 125, 125, 79, - 79, 79, 109, 109, 36, 36, 37, 38, 38, 38, - 38, 40, 40, 39, 81, 81, 123, 123, 122, 122, - 124, 124, 90, 90, 90, 90, 90, 90, 106, 106, - 41, 41, 98, 98, 68, 21, 100, 100, 42, 101, - 101, 102, 102, 44, 43, 43, 32, 32, 32, 32, + 13, 13, 126, 126, 78, 78, 14, 15, 88, 88, + 90, 90, 89, 89, 94, 94, 94, 94, 85, 85, + 84, 84, 25, 25, 82, 82, 82, 82, 108, 108, + 108, 8, 8, 86, 86, 69, 69, 67, 67, 71, + 71, 68, 68, 119, 119, 120, 120, 29, 29, 30, + 30, 77, 77, 75, 75, 75, 76, 76, 79, 79, + 116, 116, 31, 31, 33, 33, 34, 35, 35, 36, + 36, 121, 121, 37, 37, 37, 37, 125, 125, 81, + 81, 81, 109, 109, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 83, 83, 123, 123, 122, 122, + 124, 124, 92, 92, 92, 92, 92, 92, 107, 107, + 43, 43, 100, 100, 70, 21, 102, 102, 44, 103, + 103, 104, 104, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1476,19 +1476,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 85, 85, 128, 3, 3, 89, 89, - 112, 112, 51, 51, 52, 52, 52, 52, 45, 45, - 46, 46, 49, 49, 94, 94, 94, 78, 78, 56, - 56, 56, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 57, 57, - 57, 23, 23, 24, 24, 55, 58, 58, 58, 59, - 59, 59, 60, 60, 60, 60, 60, 60, 28, 28, - 28, 47, 47, 47, 61, 61, 62, 62, 62, 62, - 62, 62, 53, 53, 53, 54, 54, 54, 115, 71, - 71, 114, 114, 70, 70, 70, 70, 70, 70, 70, - 93, 93, 93, 93, 63, 63, 63, 63, 63, 63, - 63, 64, 64, 64, 64, 48, 48, 48, 48, 48, - 48, 48, 113, 113, 72, + 32, 32, 32, 87, 87, 128, 3, 3, 91, 91, + 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, + 48, 48, 51, 51, 96, 96, 96, 80, 80, 58, + 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, + 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, + 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, + 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, + 64, 64, 55, 55, 55, 56, 56, 56, 115, 73, + 73, 114, 114, 72, 72, 72, 72, 72, 72, 72, + 95, 95, 95, 95, 65, 65, 65, 65, 65, 65, + 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, + 50, 50, 113, 113, 74, } var yyR2 = [...]int{ @@ -1546,49 +1546,49 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -65, -66, 21, 20, 23, + 52, 80, 45, 39, 144, -67, -68, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -67, -69, -28, -32, -76, 7, -60, -61, - -58, 60, 150, 93, 105, 106, 155, 154, 156, 157, - 148, -43, -48, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -50, 143, 97, 98, 107, -85, 100, 101, - -47, -57, -52, -45, -55, -56, 92, 50, 51, 4, + 54, 55, -69, -71, -28, -32, -78, 7, -62, -63, + -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, + 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, + 6, 158, -52, 143, 97, 98, 107, -87, 100, 101, + -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -59, 61, 18, -95, 83, 148, 83, -95, 144, 10, - -18, -91, -111, -95, 83, 37, 39, -19, -20, -99, + -61, 61, 18, -97, 83, 148, 83, -97, 144, 10, + -18, -93, -111, -97, 83, 37, 39, -19, -20, -101, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -103, -33, -47, -107, -85, -34, - 12, -100, -42, -23, 146, 131, 132, 88, 90, 89, + -23, 99, -24, -24, -33, -34, -49, -35, -87, -36, + 12, -102, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -76, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -78, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -115, -114, -71, -70, -23, 153, - 84, 60, -23, -28, -57, 148, -56, 99, 150, -28, + 150, 144, 58, 148, -115, -114, -73, -72, -23, 153, + 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -49, 148, -23, -94, 17, -93, -63, 12, - 77, 78, -23, -23, -23, 150, 79, 79, -46, -44, - -45, -62, 53, -10, -47, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -93, -93, 17, -3, 144, -47, - -77, 148, -77, 148, 83, -95, 149, -95, 146, 144, - -117, 146, -16, -111, -95, 83, 146, 160, 83, 29, - -95, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -101, -102, -23, + -23, -23, -51, 148, -23, -96, 17, -95, -65, 12, + 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, + -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, + -23, -23, 17, 76, -95, -95, 17, -3, 144, -49, + -79, 148, -79, 148, 83, -97, 149, -97, 146, 144, + -117, 146, -16, -111, -97, 83, 146, 160, 83, 29, + -97, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -103, -104, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -46, -23, 147, - -23, -110, -27, -28, -23, -99, -118, 146, 146, 10, - -128, 10, -86, 56, -128, -88, 56, 148, -11, 148, + -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, + -23, -110, -27, -28, -23, -101, -118, 146, 146, 10, + -128, 10, -88, 56, -128, -90, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, - -54, 10, 144, -47, -115, 151, 160, 59, -28, -23, - 148, -23, -115, 149, -24, 143, -63, -63, 17, 150, - 58, -23, 11, -28, 59, -24, -53, -6, -47, 144, + -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, + 148, -23, -115, 149, -24, 143, -65, -65, 17, 150, + 58, -23, 11, -28, 59, -24, -55, -6, -49, 144, 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, 6, 7, 94, 95, 96, 19, 20, 21, 22, 23, @@ -1596,49 +1596,49 @@ var yyChk = [...]int{ 45, 46, 47, 48, 49, 50, 51, 35, 36, 37, 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, - 66, 65, 67, 68, 82, 81, 38, -53, -6, -47, - -78, -77, 79, 150, 144, 58, 79, -78, -113, -72, + 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, + -80, -79, 79, 150, 144, 58, 79, -80, -113, -74, -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -95, -19, 83, -95, 144, 10, 83, -21, -23, - 148, 149, 148, 146, 160, 149, -33, -34, -23, -42, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -86, - -87, 57, -10, 144, -128, -125, -10, -23, -23, -118, - -23, 149, 151, 145, -77, -23, 149, 162, -71, -23, - 153, 60, -115, 149, 151, 149, -64, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -77, -23, - -77, -47, -24, -23, -54, -47, -86, -7, 160, 149, - 149, -119, -120, -29, -30, -75, -73, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -105, - -17, -20, -91, 144, -128, 149, -84, -11, 147, -23, - -101, -23, -80, 144, 147, -23, 149, -27, -92, -28, - 153, 60, 150, -25, -11, 147, -97, 148, -119, -87, + 83, -97, -19, 83, -97, 144, 10, 83, -21, -23, + 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -88, + -89, 57, -10, 144, -128, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -79, -23, 149, 162, -73, -23, + 153, 60, -115, 149, 151, 149, -66, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -23, 151, -79, -23, + -79, -49, -24, -23, -56, -49, -88, -7, 160, 149, + 149, -119, -120, -29, -30, -77, -75, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -106, + -17, -20, -93, 144, -128, 149, -86, -11, 147, -23, + -103, -23, -82, 144, 147, -23, 149, -27, -94, -28, + 153, 60, 150, -25, -11, 147, -99, 148, -119, -89, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -87, 149, -72, 149, 160, -1, 153, -73, - 149, -31, -104, -20, 144, -7, 160, -20, -105, 146, + 151, 145, -89, 149, -74, 149, 160, -1, 153, -75, + 149, -31, -105, -20, 144, -7, 160, -20, -106, 146, -118, 149, 146, -108, 146, -108, 146, 146, 149, 59, -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -35, -123, -122, 45, -124, 48, -90, 104, + 144, 145, -37, -123, -122, 45, -124, 48, -92, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -128, -74, 147, -29, -2, 84, - -7, 160, -104, 145, -17, -7, 22, 146, -101, 145, - 32, 33, -108, 31, -108, -82, -11, 147, -92, -28, - -115, 151, 28, 148, 144, 149, -89, 45, 144, -121, - -30, 39, 37, -125, -90, 145, -118, 149, 145, 144, - -128, -75, 12, 145, -20, -7, 145, 146, 149, -23, + -118, -23, -115, 151, -128, -76, 147, -29, -2, 84, + -7, 160, -105, 145, -17, -7, 22, 146, -103, 145, + 32, 33, -108, 31, -108, -84, -11, 147, -94, -28, + -115, 151, 28, 148, 144, 149, -91, 45, 144, -121, + -30, 39, 37, -125, -92, 145, -118, 149, 145, 144, + -128, -77, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -96, -10, -118, -74, -74, 148, -121, 145, -106, -41, - 12, -98, -68, -6, -3, -79, 146, 144, -121, 59, - 162, 145, -83, -11, 147, -8, -118, 146, 26, -82, - 12, 161, 145, 144, 144, -112, -51, 12, 153, 145, + -98, -10, -118, -76, -76, 148, -121, 145, -107, -43, + 12, -100, -70, -6, -3, -81, 146, 144, -121, 59, + 162, 145, -85, -11, 147, -8, -118, 146, 26, -84, + 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -109, - -36, -37, -38, -39, -40, -10, -6, 80, 10, 145, + -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -41, -23, -68, -23, -128, 145, -36, 146, - 146, 46, 29, 79, 24, 144, 145, 145, -51, -128, - -128, 148, -125, 10, -4, -90, -6, 146, -118, -119, - -6, 145, 149, -74, -81, 146, 144, -118, 145, + 160, 12, -43, -23, -70, -23, -128, 145, -38, 146, + 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, + -128, 148, -125, 10, -4, -92, -6, 146, -118, -119, + -6, 145, 149, -76, -83, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 +// line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 +// line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:327 +// line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:334 +// line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:345 +// line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:352 +// line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:364 +// line internal/php7/php7.y:364 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:378 +// line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:387 +// line internal/php7/php7.y:387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:398 +// line internal/php7/php7.y:398 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:411 +// line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 +// line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:420 +// line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:424 +// line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:428 +// line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:432 +// line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:436 +// line internal/php7/php7.y:436 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:448 +// line internal/php7/php7.y:448 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:464 +// line internal/php7/php7.y:464 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:482 +// line internal/php7/php7.y:482 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:494 +// line internal/php7/php7.y:494 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:504 +// line internal/php7/php7.y:504 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:515 +// line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:526 +// line internal/php7/php7.y:526 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:538 +// line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2836,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:552 +// line internal/php7/php7.y:552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:562 +// line internal/php7/php7.y:562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:575 +// line internal/php7/php7.y:575 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:597 +// line internal/php7/php7.y:597 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:621 +// line internal/php7/php7.y:621 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:641 +// line internal/php7/php7.y:641 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:665 +// line internal/php7/php7.y:665 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:669 +// line internal/php7/php7.y:669 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:676 +// line internal/php7/php7.y:676 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:682 +// line internal/php7/php7.y:682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:689 +// line internal/php7/php7.y:689 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:695 +// line internal/php7/php7.y:695 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:702 +// line internal/php7/php7.y:702 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:708 +// line internal/php7/php7.y:708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:715 +// line internal/php7/php7.y:715 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:719 +// line internal/php7/php7.y:719 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:730 +// line internal/php7/php7.y:730 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:744 +// line internal/php7/php7.y:744 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:783 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -3085,13 +3085,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 +// line internal/php7/php7.y:789 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:796 +// line internal/php7/php7.y:796 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:807 +// line internal/php7/php7.y:807 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:814 +// line internal/php7/php7.y:814 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:819 +// line internal/php7/php7.y:819 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:823 +// line internal/php7/php7.y:823 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:827 +// line internal/php7/php7.y:827 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:831 +// line internal/php7/php7.y:831 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:835 +// line internal/php7/php7.y:835 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:839 +// line internal/php7/php7.y:839 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:853 +// line internal/php7/php7.y:853 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:864 +// line internal/php7/php7.y:864 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:868 +// line internal/php7/php7.y:868 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:872 +// line internal/php7/php7.y:872 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3198,7 +3198,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:882 +// line internal/php7/php7.y:882 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3215,7 +3215,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:897 +// line internal/php7/php7.y:897 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3231,7 +3231,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:911 +// line internal/php7/php7.y:911 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3243,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:921 +// line internal/php7/php7.y:921 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3256,7 +3256,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:932 +// line internal/php7/php7.y:932 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3269,7 +3269,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:943 +// line internal/php7/php7.y:943 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3282,35 +3282,29 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:954 +// line internal/php7/php7.y:954 { - yyVAL.node = &ast.StmtGlobal{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:966 +// line internal/php7/php7.y:963 { - yyVAL.node = &ast.StmtStatic{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) + yyDollar[2].node.(*ast.StmtStatic).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:978 +// line internal/php7/php7.y:972 { yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} @@ -3325,7 +3319,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:991 +// line internal/php7/php7.y:985 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3337,7 +3331,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1001 +// line internal/php7/php7.y:995 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3351,7 +3345,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1013 +// line internal/php7/php7.y:1007 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3371,7 +3365,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1031 +// line internal/php7/php7.y:1025 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3395,7 +3389,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1053 +// line internal/php7/php7.y:1047 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3422,7 +3416,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1078 +// line internal/php7/php7.y:1072 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3437,7 +3431,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1091 +// line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3450,7 +3444,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1102 +// line internal/php7/php7.y:1096 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3467,7 +3461,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1117 +// line internal/php7/php7.y:1111 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3481,7 +3475,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1129 +// line internal/php7/php7.y:1123 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3498,7 +3492,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1144 +// line internal/php7/php7.y:1138 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3513,13 +3507,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1159 +// line internal/php7/php7.y:1153 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1163 +// line internal/php7/php7.y:1157 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3541,13 +3535,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1185 +// line internal/php7/php7.y:1179 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1189 +// line internal/php7/php7.y:1183 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3561,13 +3555,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1201 +// line internal/php7/php7.y:1195 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1205 +// line internal/php7/php7.y:1199 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3581,13 +3575,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1220 +// line internal/php7/php7.y:1214 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1224 +// line internal/php7/php7.y:1218 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3596,13 +3590,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1234 +// line internal/php7/php7.y:1228 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1241 +// line internal/php7/php7.y:1235 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3632,31 +3626,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1272 +// line internal/php7/php7.y:1266 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1276 +// line internal/php7/php7.y:1270 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1283 +// line internal/php7/php7.y:1277 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1287 +// line internal/php7/php7.y:1281 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1294 +// line internal/php7/php7.y:1288 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3674,7 +3668,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1310 +// line internal/php7/php7.y:1304 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3691,19 +3685,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1328 +// line internal/php7/php7.y:1322 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1332 +// line internal/php7/php7.y:1326 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1339 +// line internal/php7/php7.y:1333 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3715,7 +3709,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1349 +// line internal/php7/php7.y:1343 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3727,7 +3721,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1362 +// line internal/php7/php7.y:1356 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3744,7 +3738,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1380 +// line internal/php7/php7.y:1374 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3761,13 +3755,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1398 +// line internal/php7/php7.y:1392 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1402 +// line internal/php7/php7.y:1396 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3779,13 +3773,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1415 +// line internal/php7/php7.y:1409 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1419 +// line internal/php7/php7.y:1413 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3797,13 +3791,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1432 +// line internal/php7/php7.y:1426 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1436 +// line internal/php7/php7.y:1430 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3815,13 +3809,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1449 +// line internal/php7/php7.y:1443 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1453 +// line internal/php7/php7.y:1447 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3833,7 +3827,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1463 +// line internal/php7/php7.y:1457 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3847,7 +3841,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1475 +// line internal/php7/php7.y:1469 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3860,7 +3854,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1489 +// line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3871,7 +3865,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1498 +// line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3891,7 +3885,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1519 +// line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3900,7 +3894,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1526 +// line internal/php7/php7.y:1520 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3921,7 +3915,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1548 +// line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3930,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1555 +// line internal/php7/php7.y:1549 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3951,7 +3945,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1577 +// line internal/php7/php7.y:1571 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3964,7 +3958,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1588 +// line internal/php7/php7.y:1582 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3978,7 +3972,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1600 +// line internal/php7/php7.y:1594 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3993,7 +3987,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1613 +// line internal/php7/php7.y:1607 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4009,13 +4003,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1630 +// line internal/php7/php7.y:1624 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1634 +// line internal/php7/php7.y:1628 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4029,7 +4023,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1646 +// line internal/php7/php7.y:1640 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4042,19 +4036,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1660 +// line internal/php7/php7.y:1654 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1664 +// line internal/php7/php7.y:1658 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1671 +// line internal/php7/php7.y:1665 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4065,7 +4059,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1680 +// line internal/php7/php7.y:1674 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4085,7 +4079,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1701 +// line internal/php7/php7.y:1695 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4100,7 +4094,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1714 +// line internal/php7/php7.y:1708 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4119,13 +4113,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1734 +// line internal/php7/php7.y:1728 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1738 +// line internal/php7/php7.y:1732 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4141,7 +4135,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1755 +// line internal/php7/php7.y:1749 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4163,7 +4157,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1775 +// line internal/php7/php7.y:1769 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4187,7 +4181,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1800 +// line internal/php7/php7.y:1794 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4197,7 +4191,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1808 +// line internal/php7/php7.y:1802 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4221,25 +4215,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1833 +// line internal/php7/php7.y:1827 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1837 +// line internal/php7/php7.y:1831 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1844 +// line internal/php7/php7.y:1838 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1848 +// line internal/php7/php7.y:1842 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4248,7 +4242,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1858 +// line internal/php7/php7.y:1852 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4284,7 +4278,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1892 +// line internal/php7/php7.y:1886 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4321,25 +4315,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1930 +// line internal/php7/php7.y:1924 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1934 +// line internal/php7/php7.y:1928 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1941 +// line internal/php7/php7.y:1935 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1945 +// line internal/php7/php7.y:1939 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4351,7 +4345,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1958 +// line internal/php7/php7.y:1952 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4363,7 +4357,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1968 +// line internal/php7/php7.y:1962 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4375,19 +4369,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1978 +// line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1985 +// line internal/php7/php7.y:1979 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1989 +// line internal/php7/php7.y:1983 { yyVAL.node = yyDollar[2].node @@ -4396,7 +4390,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1999 +// line internal/php7/php7.y:1993 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4409,7 +4403,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2010 +// line internal/php7/php7.y:2004 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4426,13 +4420,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2028 +// line internal/php7/php7.y:2022 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2032 +// line internal/php7/php7.y:2026 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4441,7 +4435,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2042 +// line internal/php7/php7.y:2036 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4453,7 +4447,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2052 +// line internal/php7/php7.y:2046 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4465,88 +4459,102 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2065 +// line internal/php7/php7.y:2059 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2072 +// line internal/php7/php7.y:2066 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtGlobal{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2079 +// line internal/php7/php7.y:2075 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2086 +// line internal/php7/php7.y:2082 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2093 +// line internal/php7/php7.y:2089 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtStatic{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2100 +// line internal/php7/php7.y:2098 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, nil} + + yyVAL.node = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Var: variable, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2114 +// line internal/php7/php7.y:2117 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtStaticVar{ast.Node{}, variable, yyDollar[3].node} + yyVAL.node = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Var: variable, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2132 +// line internal/php7/php7.y:2140 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2136 +// line internal/php7/php7.y:2144 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2143 +// line internal/php7/php7.y:2151 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4560,7 +4568,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2155 +// line internal/php7/php7.y:2163 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4574,7 +4582,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2167 +// line internal/php7/php7.y:2175 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4586,7 +4594,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2177 +// line internal/php7/php7.y:2185 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4617,13 +4625,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2209 +// line internal/php7/php7.y:2217 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2213 +// line internal/php7/php7.y:2221 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4637,7 +4645,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2225 +// line internal/php7/php7.y:2233 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4649,7 +4657,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2235 +// line internal/php7/php7.y:2243 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4661,7 +4669,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2245 +// line internal/php7/php7.y:2253 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4673,19 +4681,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2258 +// line internal/php7/php7.y:2266 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2262 +// line internal/php7/php7.y:2270 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2269 +// line internal/php7/php7.y:2277 { yyVAL.node = yyDollar[1].node @@ -4695,7 +4703,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2277 +// line internal/php7/php7.y:2285 { yyVAL.node = yyDollar[1].node @@ -4705,7 +4713,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2288 +// line internal/php7/php7.y:2296 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4718,7 +4726,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2302 +// line internal/php7/php7.y:2310 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4734,7 +4742,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2316 +// line internal/php7/php7.y:2324 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4750,7 +4758,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2330 +// line internal/php7/php7.y:2338 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4766,7 +4774,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2344 +// line internal/php7/php7.y:2352 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4779,7 +4787,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2358 +// line internal/php7/php7.y:2366 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4793,13 +4801,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2370 +// line internal/php7/php7.y:2378 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2377 +// line internal/php7/php7.y:2385 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4815,7 +4823,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2394 +// line internal/php7/php7.y:2402 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4828,7 +4836,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2405 +// line internal/php7/php7.y:2413 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4841,13 +4849,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2419 +// line internal/php7/php7.y:2427 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2423 +// line internal/php7/php7.y:2431 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4860,31 +4868,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2437 +// line internal/php7/php7.y:2445 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2449 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2448 +// line internal/php7/php7.y:2456 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2452 +// line internal/php7/php7.y:2460 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2459 +// line internal/php7/php7.y:2467 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4896,7 +4904,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2469 +// line internal/php7/php7.y:2477 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4908,7 +4916,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2479 +// line internal/php7/php7.y:2487 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4920,7 +4928,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2497 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4932,7 +4940,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2499 +// line internal/php7/php7.y:2507 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4944,7 +4952,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2509 +// line internal/php7/php7.y:2517 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4956,7 +4964,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2522 +// line internal/php7/php7.y:2530 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4965,13 +4973,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2529 +// line internal/php7/php7.y:2537 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2536 +// line internal/php7/php7.y:2544 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4987,7 +4995,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2550 +// line internal/php7/php7.y:2558 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5004,7 +5012,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2568 +// line internal/php7/php7.y:2576 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5012,13 +5020,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2574 +// line internal/php7/php7.y:2582 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2581 +// line internal/php7/php7.y:2589 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5038,7 +5046,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2602 +// line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5058,7 +5066,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2623 +// line internal/php7/php7.y:2631 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5067,31 +5075,31 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2637 +// line internal/php7/php7.y:2645 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2644 +// line internal/php7/php7.y:2652 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2648 +// line internal/php7/php7.y:2656 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2655 +// line internal/php7/php7.y:2663 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5100,13 +5108,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2662 +// line internal/php7/php7.y:2670 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2669 +// line internal/php7/php7.y:2677 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5124,7 +5132,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2688 +// line internal/php7/php7.y:2696 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5139,7 +5147,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2701 +// line internal/php7/php7.y:2709 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5151,7 +5159,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2722 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5168,7 +5176,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2729 +// line internal/php7/php7.y:2737 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5184,7 +5192,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2743 +// line internal/php7/php7.y:2751 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5197,7 +5205,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2754 +// line internal/php7/php7.y:2762 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5211,7 +5219,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2766 +// line internal/php7/php7.y:2774 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5223,7 +5231,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2776 +// line internal/php7/php7.y:2784 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5236,7 +5244,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2787 +// line internal/php7/php7.y:2795 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5249,7 +5257,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2798 +// line internal/php7/php7.y:2806 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5262,7 +5270,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2809 +// line internal/php7/php7.y:2817 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5275,7 +5283,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2820 +// line internal/php7/php7.y:2828 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5288,7 +5296,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2831 +// line internal/php7/php7.y:2839 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5301,7 +5309,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2842 +// line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5314,7 +5322,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2853 +// line internal/php7/php7.y:2861 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5327,7 +5335,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2864 +// line internal/php7/php7.y:2872 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5340,7 +5348,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5353,7 +5361,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2886 +// line internal/php7/php7.y:2894 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5366,7 +5374,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2897 +// line internal/php7/php7.y:2905 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5379,7 +5387,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2908 +// line internal/php7/php7.y:2916 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5392,7 +5400,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2919 +// line internal/php7/php7.y:2927 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5405,7 +5413,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2930 +// line internal/php7/php7.y:2938 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5417,7 +5425,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2940 +// line internal/php7/php7.y:2948 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5430,7 +5438,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2951 +// line internal/php7/php7.y:2959 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5442,7 +5450,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2961 +// line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5455,7 +5463,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2972 +// line internal/php7/php7.y:2980 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5468,7 +5476,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2983 +// line internal/php7/php7.y:2991 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5481,7 +5489,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2994 +// line internal/php7/php7.y:3002 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5494,7 +5502,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3005 +// line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5507,7 +5515,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3016 +// line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5520,7 +5528,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3027 +// line internal/php7/php7.y:3035 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5533,7 +5541,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3038 +// line internal/php7/php7.y:3046 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5546,7 +5554,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3049 +// line internal/php7/php7.y:3057 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5559,7 +5567,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3060 +// line internal/php7/php7.y:3068 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5572,7 +5580,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3071 +// line internal/php7/php7.y:3079 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5585,7 +5593,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3082 +// line internal/php7/php7.y:3090 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5598,7 +5606,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3093 +// line internal/php7/php7.y:3101 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5611,7 +5619,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 +// line internal/php7/php7.y:3112 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5624,7 +5632,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3115 +// line internal/php7/php7.y:3123 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5637,7 +5645,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3126 +// line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5650,7 +5658,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3137 +// line internal/php7/php7.y:3145 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5663,7 +5671,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3148 +// line internal/php7/php7.y:3156 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5675,7 +5683,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3158 +// line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5687,7 +5695,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3168 +// line internal/php7/php7.y:3176 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5699,7 +5707,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3178 +// line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5711,7 +5719,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3188 +// line internal/php7/php7.y:3196 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5724,7 +5732,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3199 +// line internal/php7/php7.y:3207 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5737,7 +5745,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3210 +// line internal/php7/php7.y:3218 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5750,7 +5758,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3221 +// line internal/php7/php7.y:3229 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5772,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3233 +// line internal/php7/php7.y:3241 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,7 +5785,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3244 +// line internal/php7/php7.y:3252 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5798,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3255 +// line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5811,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3266 +// line internal/php7/php7.y:3274 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5816,7 +5824,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3277 +// line internal/php7/php7.y:3285 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5829,7 +5837,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3288 +// line internal/php7/php7.y:3296 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5842,7 +5850,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3299 +// line internal/php7/php7.y:3307 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5859,13 +5867,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3314 +// line internal/php7/php7.y:3322 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3318 +// line internal/php7/php7.y:3326 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5879,7 +5887,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3330 +// line internal/php7/php7.y:3338 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5893,7 +5901,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3342 +// line internal/php7/php7.y:3350 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5906,13 +5914,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3353 +// line internal/php7/php7.y:3361 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3357 +// line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5925,7 +5933,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3368 +// line internal/php7/php7.y:3376 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5938,7 +5946,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3379 +// line internal/php7/php7.y:3387 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5951,7 +5959,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3390 +// line internal/php7/php7.y:3398 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5964,7 +5972,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3401 +// line internal/php7/php7.y:3409 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5977,7 +5985,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3412 +// line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5990,7 +5998,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3423 +// line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6003,7 +6011,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3434 +// line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6023,7 +6031,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3452 +// line internal/php7/php7.y:3460 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6035,13 +6043,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3462 +// line internal/php7/php7.y:3470 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3466 +// line internal/php7/php7.y:3474 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6053,7 +6061,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3476 +// line internal/php7/php7.y:3484 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6065,7 +6073,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3486 +// line internal/php7/php7.y:3494 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6077,7 +6085,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3496 +// line internal/php7/php7.y:3504 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6089,7 +6097,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3506 +// line internal/php7/php7.y:3514 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6102,7 +6110,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3517 +// line internal/php7/php7.y:3525 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6114,13 +6122,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3527 +// line internal/php7/php7.y:3535 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3531 +// line internal/php7/php7.y:3539 { yyVAL.node = yyDollar[2].node @@ -6141,7 +6149,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3552 +// line internal/php7/php7.y:3560 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6172,7 +6180,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3579 +// line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6198,25 +6206,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3609 +// line internal/php7/php7.y:3617 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3613 +// line internal/php7/php7.y:3621 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3620 +// line internal/php7/php7.y:3628 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3624 +// line internal/php7/php7.y:3632 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6230,7 +6238,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3639 +// line internal/php7/php7.y:3647 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6239,13 +6247,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3646 +// line internal/php7/php7.y:3654 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3653 +// line internal/php7/php7.y:3661 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6259,7 +6267,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3665 +// line internal/php7/php7.y:3673 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6276,7 +6284,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3683 +// line internal/php7/php7.y:3691 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6288,7 +6296,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3693 +// line internal/php7/php7.y:3701 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6301,7 +6309,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3704 +// line internal/php7/php7.y:3712 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6314,7 +6322,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3715 +// line internal/php7/php7.y:3723 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6326,7 +6334,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3736 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6338,31 +6346,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3738 +// line internal/php7/php7.y:3746 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3745 +// line internal/php7/php7.y:3753 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3749 +// line internal/php7/php7.y:3757 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3756 +// line internal/php7/php7.y:3764 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3760 +// line internal/php7/php7.y:3768 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6379,13 +6387,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3778 +// line internal/php7/php7.y:3786 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3782 +// line internal/php7/php7.y:3790 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6395,25 +6403,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3790 +// line internal/php7/php7.y:3798 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3797 +// line internal/php7/php7.y:3805 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3801 +// line internal/php7/php7.y:3809 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3808 +// line internal/php7/php7.y:3816 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6427,7 +6435,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3820 +// line internal/php7/php7.y:3828 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6440,7 +6448,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3831 +// line internal/php7/php7.y:3839 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6452,7 +6460,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3844 +// line internal/php7/php7.y:3852 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6464,7 +6472,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3854 +// line internal/php7/php7.y:3862 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6476,7 +6484,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3864 +// line internal/php7/php7.y:3872 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6488,7 +6496,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3874 +// line internal/php7/php7.y:3882 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6500,7 +6508,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3884 +// line internal/php7/php7.y:3892 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6512,7 +6520,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3894 +// line internal/php7/php7.y:3902 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6524,7 +6532,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3904 +// line internal/php7/php7.y:3912 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6536,7 +6544,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3914 +// line internal/php7/php7.y:3922 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6548,7 +6556,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3924 +// line internal/php7/php7.y:3932 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6560,7 +6568,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3934 +// line internal/php7/php7.y:3942 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6572,7 +6580,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3944 +// line internal/php7/php7.y:3952 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6586,7 +6594,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3956 +// line internal/php7/php7.y:3964 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6598,7 +6606,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3966 +// line internal/php7/php7.y:3974 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6610,7 +6618,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3976 +// line internal/php7/php7.y:3984 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6622,19 +6630,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3986 +// line internal/php7/php7.y:3994 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3990 +// line internal/php7/php7.y:3998 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3997 +// line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6646,7 +6654,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4007 +// line internal/php7/php7.y:4015 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6662,7 +6670,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4021 +// line internal/php7/php7.y:4029 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6678,43 +6686,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4038 +// line internal/php7/php7.y:4046 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4042 +// line internal/php7/php7.y:4050 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4049 +// line internal/php7/php7.y:4057 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4053 +// line internal/php7/php7.y:4061 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4060 +// line internal/php7/php7.y:4068 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4067 +// line internal/php7/php7.y:4075 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4071 +// line internal/php7/php7.y:4079 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6731,19 +6739,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4086 +// line internal/php7/php7.y:4094 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4093 +// line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4097 +// line internal/php7/php7.y:4105 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6760,19 +6768,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4112 +// line internal/php7/php7.y:4120 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4119 +// line internal/php7/php7.y:4127 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4123 +// line internal/php7/php7.y:4131 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6785,7 +6793,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4134 +// line internal/php7/php7.y:4142 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6798,7 +6806,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4145 +// line internal/php7/php7.y:4153 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6811,7 +6819,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4156 +// line internal/php7/php7.y:4164 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6824,25 +6832,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4167 +// line internal/php7/php7.y:4175 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4174 +// line internal/php7/php7.y:4182 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4178 +// line internal/php7/php7.y:4186 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4190 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6855,7 +6863,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4196 +// line internal/php7/php7.y:4204 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6869,7 +6877,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4208 +// line internal/php7/php7.y:4216 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6883,7 +6891,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4220 +// line internal/php7/php7.y:4228 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6895,7 +6903,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4233 +// line internal/php7/php7.y:4241 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6908,7 +6916,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4252 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6921,13 +6929,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4258 +// line internal/php7/php7.y:4266 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4262 +// line internal/php7/php7.y:4270 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6940,7 +6948,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4273 +// line internal/php7/php7.y:4281 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6953,7 +6961,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4284 +// line internal/php7/php7.y:4292 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6966,7 +6974,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4295 +// line internal/php7/php7.y:4303 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6979,7 +6987,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4306 +// line internal/php7/php7.y:4314 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6992,7 +7000,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4320 +// line internal/php7/php7.y:4328 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7004,7 +7012,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4330 +// line internal/php7/php7.y:4338 { yyVAL.node = yyDollar[2].node @@ -7014,13 +7022,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4338 +// line internal/php7/php7.y:4346 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4345 +// line internal/php7/php7.y:4353 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7032,7 +7040,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4355 +// line internal/php7/php7.y:4363 { yyVAL.node = yyDollar[2].node @@ -7042,31 +7050,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4363 +// line internal/php7/php7.y:4371 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4370 +// line internal/php7/php7.y:4378 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4377 +// line internal/php7/php7.y:4385 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4389 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4388 +// line internal/php7/php7.y:4396 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7079,7 +7087,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4399 +// line internal/php7/php7.y:4407 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7089,7 +7097,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4410 +// line internal/php7/php7.y:4418 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7102,7 +7110,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4421 +// line internal/php7/php7.y:4429 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7114,7 +7122,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4431 +// line internal/php7/php7.y:4439 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7130,7 +7138,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4453 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7144,7 +7152,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4457 +// line internal/php7/php7.y:4465 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7156,7 +7164,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4467 +// line internal/php7/php7.y:4475 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7175,7 +7183,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4484 +// line internal/php7/php7.y:4492 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7192,13 +7200,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4502 +// line internal/php7/php7.y:4510 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4506 +// line internal/php7/php7.y:4514 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7211,13 +7219,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4517 +// line internal/php7/php7.y:4525 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4521 +// line internal/php7/php7.y:4529 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7230,7 +7238,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4535 +// line internal/php7/php7.y:4543 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7244,7 +7252,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4547 +// line internal/php7/php7.y:4555 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7261,7 +7269,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4562 +// line internal/php7/php7.y:4570 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7280,7 +7288,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4579 +// line internal/php7/php7.y:4587 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7295,7 +7303,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4592 +// line internal/php7/php7.y:4600 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7312,7 +7320,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4607 +// line internal/php7/php7.y:4615 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7331,7 +7339,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4624 +// line internal/php7/php7.y:4632 { yyVAL.node = yyDollar[2].node @@ -7341,7 +7349,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4635 +// line internal/php7/php7.y:4643 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7353,7 +7361,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4645 +// line internal/php7/php7.y:4653 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7370,7 +7378,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4660 +// line internal/php7/php7.y:4668 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7396,7 +7404,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4684 +// line internal/php7/php7.y:4692 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7410,7 +7418,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4699 +// line internal/php7/php7.y:4707 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7428,7 +7436,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4715 +// line internal/php7/php7.y:4723 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7450,7 +7458,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4735 +// line internal/php7/php7.y:4743 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7462,7 +7470,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4745 +// line internal/php7/php7.y:4753 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7474,7 +7482,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4755 +// line internal/php7/php7.y:4763 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7496,7 +7504,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4775 +// line internal/php7/php7.y:4783 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7508,7 +7516,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4785 +// line internal/php7/php7.y:4793 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7520,13 +7528,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4798 +// line internal/php7/php7.y:4806 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4802 +// line internal/php7/php7.y:4810 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7535,7 +7543,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4812 +// line internal/php7/php7.y:4820 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 45741de..a095f9a 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -241,8 +241,8 @@ import ( %type const_decl inner_statement %type expr optional_expr %type declare_statement finally_statement unset_variable variable -%type parameter optional_type argument expr_without_variable global_var -%type static_var class_statement trait_adaptation trait_precedence trait_alias +%type parameter optional_type argument expr_without_variable global_var_list global_var +%type static_var_list static_var class_statement trait_adaptation trait_precedence trait_alias %type absolute_trait_method_reference trait_method_reference property echo_expr %type new_expr anonymous_class class_name class_name_reference simple_variable %type internal_functions_in_yacc @@ -275,8 +275,8 @@ import ( %type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list -%type const_list echo_expr_list for_exprs non_empty_for_exprs global_var_list -%type unprefixed_use_declarations inline_use_declarations property_list static_var_list +%type const_list echo_expr_list for_exprs non_empty_for_exprs +%type unprefixed_use_declarations inline_use_declarations property_list %type case_list trait_adaptation_list unset_variables %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list %type array_pair_list non_empty_argument_list top_statement_list @@ -952,27 +952,21 @@ statement: } | T_GLOBAL global_var_list ';' { - $$ = &ast.StmtGlobal{ast.Node{}, $2} + $2.(*ast.StmtGlobal).GlobalTkn = $1 + $2.(*ast.StmtGlobal).SemiColonTkn = $3 + $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) + $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_STATIC static_var_list ';' { - $$ = &ast.StmtStatic{ast.Node{}, $2} + $2.(*ast.StmtStatic).StaticTkn = $1 + $2.(*ast.StmtStatic).SemiColonTkn = $3 + $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) + $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_ECHO echo_expr_list ';' { @@ -2063,14 +2057,16 @@ argument: global_var_list: global_var_list ',' global_var { - $$ = append($1, $3) + $1.(*ast.StmtGlobal).Vars = append($1.(*ast.StmtGlobal).Vars, $3) + $1.(*ast.StmtGlobal).SeparatorTkns = append($1.(*ast.StmtGlobal).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | global_var { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtGlobal{ + Vars: []ast.Vertex{$1}, + } } ; @@ -2084,14 +2080,16 @@ global_var: static_var_list: static_var_list ',' static_var { - $$ = append($1, $3) + $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, $3) + $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | static_var { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtStatic{ + Vars: []ast.Vertex{$1}, + } } ; @@ -2100,30 +2098,40 @@ static_var: { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtStaticVar{ast.Node{}, variable, nil} + + $$ = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Var: variable, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenPosition($1) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' expr { identifier := &ast.Identifier{ast.Node{}, $1.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtStaticVar{ast.Node{}, variable, $3} + $$ = &ast.StmtStaticVar{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Var: variable, + EqualTkn: $2, + Expr: $3, + } // save position identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 1bed711..1aa3120 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -476,7 +476,10 @@ func (n *StmtFunction) Accept(v NodeVisitor) { // StmtGlobal node type StmtGlobal struct { Node - Vars []Vertex + GlobalTkn *token.Token + Vars []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtGlobal) Accept(v NodeVisitor) { @@ -630,7 +633,10 @@ func (n *StmtReturn) Accept(v NodeVisitor) { // StmtStatic node type StmtStatic struct { Node - Vars []Vertex + StaticTkn *token.Token + Vars []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtStatic) Accept(v NodeVisitor) { @@ -640,8 +646,9 @@ func (n *StmtStatic) Accept(v NodeVisitor) { // StmtStaticVar node type StmtStaticVar struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *StmtStaticVar) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 91f6ddd..c0f9ef5 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -178,3 +178,19 @@ func (v *FilterTokens) StmtReturn(n *ast.StmtReturn) { n.ReturnTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtGlobal(n *ast.StmtGlobal) { + n.GlobalTkn = nil + n.SeparatorTkns = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtStatic(n *ast.StmtStatic) { + n.StaticTkn = nil + n.SeparatorTkns = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtStaticVar(n *ast.StmtStaticVar) { + n.EqualTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 469a837..e7da279 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -65,6 +65,26 @@ func (p *Printer) joinPrintRefactored(glue string, nn []ast.Vertex) { } } +func (p *Printer) printSeparatedList(nodeList []ast.Vertex, separatorList []*token.Token, def string) { + var separators []*token.Token + + if cap(separatorList) >= len(nodeList) { + separators = separatorList[:len(nodeList)] + } else { + separators = make([]*token.Token, len(nodeList)) + copy(separators, separatorList) + } + + for k, n := range nodeList { + p.Print(n) + if k < len(nodeList)-1 { + p.printToken(separators[k], def) + } else { + p.printToken(separators[k], "") + } + } +} + func (p *Printer) printNodes(nn []ast.Vertex) { for _, n := range nn { p.Print(n) @@ -2476,20 +2496,11 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtGlobal(n ast.Vertex) { - nn := n.(*ast.StmtGlobal) - p.printFreeFloating(nn, token.Start) - - io.WriteString(p.w, "global") - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, token.VarList) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtGlobal(n *ast.StmtGlobal) { + p.printToken(n.GlobalTkn, "global") + p.bufStart = " " + p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtGoto(n ast.Vertex) { @@ -2701,35 +2712,20 @@ func (p *Printer) printStmtReturn(n *ast.StmtReturn) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtStaticVar(n ast.Vertex) { - nn := n.(*ast.StmtStaticVar) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtStaticVar(n *ast.StmtStaticVar) { + p.Print(n.Var) - p.Print(nn.Var) - - if nn.Expr != nil { - p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") - p.Print(nn.Expr) + if n.Expr != nil { + p.printToken(n.EqualTkn, "=") + p.Print(n.Expr) } - - p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtStatic(n ast.Vertex) { - nn := n.(*ast.StmtStatic) - p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "static") - - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, token.VarList) - - p.printFreeFloating(nn, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtStatic(n *ast.StmtStatic) { + p.printToken(n.StaticTkn, "static") + p.bufStart = " " + p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtStmtList(n *ast.StmtStmtList) { diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index d5b2c0b..8a2ee8d 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -1036,7 +1036,8 @@ func TestParseAndPrintPhp5Function(t *testing.T) { } func TestParseAndPrintPhp5Global(t *testing.T) { - src := ` Date: Thu, 10 Sep 2020 23:11:08 +0300 Subject: [PATCH 059/140] [refactoring] update ast structure of "Echo" node --- internal/php5/php5.go | 1088 +++++++++++---------- internal/php5/php5.y | 28 +- internal/php7/php7.go | 1152 +++++++++++------------ internal/php7/php7.y | 30 +- internal/scanner/lexer.go | 2 +- internal/scanner/scanner.go | 6 +- internal/scanner/scanner.rl | 8 +- pkg/ast/node.go | 5 +- pkg/ast/visitor/filter_tokens.go | 6 + pkg/printer/printer.go | 592 ++++++------ pkg/printer/printer_parsed_php5_test.go | 87 +- pkg/printer/printer_parsed_php7_test.go | 91 +- pkg/printer/printer_test.go | 40 +- 13 files changed, 1521 insertions(+), 1614 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8f17274..5392ff0 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6196 +// line internal/php5/php5.y:6192 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -706,10 +706,10 @@ var yyAct = [...]int{ 920, 39, 903, 920, 260, 261, 483, 896, 260, 261, 448, 839, 944, 836, 566, 231, 948, 231, 1006, 949, 531, 842, 1005, 449, 725, 39, 232, 843, 232, 192, - 841, 39, 394, 946, 260, 261, 389, 164, 341, 698, - 538, 519, 929, 290, 460, 973, 318, 314, 127, 403, - 519, 575, 401, 335, 945, 1009, 343, 519, 519, 519, - 519, 519, 939, 157, 161, 231, 528, 608, 531, 997, + 841, 39, 394, 946, 260, 261, 389, 341, 698, 538, + 929, 519, 290, 460, 318, 973, 314, 127, 403, 575, + 519, 401, 335, 945, 1009, 343, 939, 519, 519, 519, + 519, 519, 164, 157, 161, 231, 528, 608, 531, 997, 970, 179, 182, 183, 991, 969, 232, 968, 189, 191, 967, 848, 849, 850, 847, 846, 845, 519, 838, 837, 835, 40, 177, 176, 568, 169, 171, 170, 192, 15, @@ -1606,10 +1606,10 @@ var yyPgo = [...]int{ 7, 1135, 52, 43, 42, 1134, 1132, 1131, 31, 1128, 1121, 4, 1120, 1119, 1114, 16, 1111, 1110, 1109, 1108, 48, 5, 1100, 1097, 1095, 1090, 1089, 2, 1087, 607, - 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 12, 1074, - 1073, 6, 19, 1072, 1071, 1069, 9, 50, 0, 1068, - 1067, 1066, 117, 599, 1064, 1063, 62, 8, 1062, 1060, - 1059, 1058, 14, 47, 1057, 1056, 1052, 1044, 1042, 1038, + 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 1074, 12, + 1073, 1072, 6, 19, 1071, 1069, 1068, 9, 50, 0, + 1067, 1066, 1064, 117, 599, 1063, 1062, 62, 8, 1060, + 1059, 1058, 1057, 14, 47, 1056, 1052, 1044, 1042, 1038, 3, 1034, 23, 1033, 1031, 1027, 35, 1026, 1022, 1019, 1018, 1014, 1008, 1002, 25, 1001, 1000, 999, 24, 996, 15, 17, 993, 34, 992, 991, 986, 984, 177, 13, @@ -1617,29 +1617,29 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 97, 97, 98, 98, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 99, 99, - 6, 6, 6, 6, 100, 100, 7, 7, 7, 7, - 101, 101, 8, 8, 8, 8, 55, 55, 102, 102, + 0, 151, 98, 98, 99, 99, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 100, 100, + 6, 6, 6, 6, 101, 101, 7, 7, 7, 7, + 102, 102, 8, 8, 8, 8, 55, 55, 103, 103, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 117, 117, 60, 60, 118, 118, 119, 119, 61, 115, 115, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 93, 93, 2, 95, 95, 94, 94, 126, 126, 92, - 92, 91, 91, 91, 89, 89, 88, 88, 59, 59, - 116, 116, 86, 86, 86, 86, 113, 113, 113, 4, - 4, 90, 90, 109, 109, 110, 110, 56, 56, 57, + 94, 94, 2, 96, 96, 95, 95, 126, 126, 93, + 93, 92, 92, 92, 90, 90, 89, 89, 59, 59, + 116, 116, 87, 87, 87, 87, 114, 114, 114, 4, + 4, 91, 91, 110, 110, 111, 111, 56, 56, 57, 57, 120, 120, 121, 121, 65, 65, 64, 64, 64, 64, 84, 84, 84, 127, 127, 70, 70, 70, 70, 82, 82, 29, 29, 29, 81, 81, 81, 81, 122, - 122, 67, 67, 67, 67, 69, 128, 128, 85, 85, + 122, 67, 67, 67, 67, 69, 128, 128, 86, 86, 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 87, 87, 123, 123, + 75, 74, 73, 73, 76, 76, 88, 88, 123, 123, 124, 124, 132, 132, 77, 77, 77, 77, 77, 77, - 125, 125, 125, 125, 68, 68, 114, 114, 112, 112, - 111, 111, 138, 138, 136, 136, 137, 137, 137, 139, + 125, 125, 125, 125, 68, 68, 85, 85, 113, 113, + 112, 112, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1648,8 +1648,8 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 96, 96, 108, - 108, 108, 108, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 97, 97, 109, + 109, 109, 109, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1664,11 +1664,11 @@ var yyR1 = [...]int{ 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 107, 107, 40, 40, - 40, 106, 106, 105, 105, 105, 105, 105, 105, 105, - 105, 103, 103, 103, 103, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 108, 108, 40, 40, + 40, 107, 107, 106, 106, 106, 106, 106, 106, 106, + 106, 104, 104, 104, 104, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 104, 104, 38, 38, 32, 32, 33, + 39, 39, 39, 105, 105, 38, 38, 32, 32, 33, 34, } var yyR2 = [...]int{ @@ -1729,7 +1729,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -97, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -98, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1739,99 +1739,99 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -98, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -99, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -98, 144, 83, 10, -99, 37, 39, - -6, -98, 83, 146, 160, 147, 10, -102, -50, 148, + 159, 12, 148, -99, 144, 83, 10, -100, 37, 39, + -6, -99, 83, 146, 160, 147, 10, -103, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, - 159, -81, -1, 12, -114, -16, 146, 131, 132, 88, + 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -98, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -99, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -133, 17, -103, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -98, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -104, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -99, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -103, 17, 17, 76, -103, 150, 148, -106, - -105, -16, 153, 150, 150, 83, -84, 148, -98, 79, + -16, 150, -104, 17, 17, 76, -104, 150, 148, -107, + -106, -16, 153, 150, 150, 83, -84, 148, -99, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -97, -98, 146, 160, -100, -7, -98, 83, -101, -8, - -98, 83, 29, -98, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -90, -27, 147, 21, -149, - -112, -111, -16, -86, 144, 147, 146, 146, 146, 146, + -98, -99, 146, 160, -101, -7, -99, 83, -102, -8, + -99, 83, 29, -99, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -91, -27, 147, 21, -149, + -113, -112, -16, -87, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -115, - -58, -21, -21, -17, -116, 10, -102, 146, 146, 10, - 148, -93, 56, -95, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -116, 10, -103, 146, 146, 10, + 148, -94, 56, -96, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -107, -40, -21, 60, 83, -98, 79, 79, 149, 149, + -108, -40, -21, 60, 83, -99, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -98, 58, -12, 79, - -104, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -106, 151, -3, 160, 59, -19, -21, -15, + 10, 144, -83, -84, 79, 83, -99, 58, -12, 79, + -105, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -107, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -127, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -97, 145, -84, -6, 146, 160, 29, -98, - 146, 160, 29, -98, 10, 29, 162, -30, -79, -9, - -33, -98, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -109, -102, - -102, -50, 146, 160, -113, 146, -113, 146, -29, -16, + -16, 146, -98, 145, -84, -6, 146, 160, 29, -99, + 146, 160, 29, -99, 10, 29, 162, -30, -79, -9, + -33, -99, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -110, -103, + -103, -50, 146, 160, -114, 146, -114, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -120, -121, -65, -64, 61, - 62, -47, -98, 80, 83, -94, 57, -47, 144, -126, - -47, -17, -21, -21, 92, 149, 160, 148, -98, -139, + 62, -47, -99, 80, 83, -95, 57, -47, 144, -126, + -47, -17, -21, -21, 92, 149, 160, 148, -99, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -98, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -99, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -98, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -110, 22, - 146, -112, -16, 145, 32, 33, -113, 31, -113, 145, - 162, -120, -16, 146, -58, -91, -21, 153, 60, -91, + 152, 83, -99, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -111, 22, + 146, -113, -16, 145, 32, 33, -114, 31, -114, 145, + 162, -120, -16, 146, -58, -92, -21, 153, 60, -92, -59, -27, 147, 10, -30, -117, 42, -120, 149, 160, - -149, 83, -98, 144, -126, -122, 160, -45, 162, -40, - -107, 150, -138, -140, -15, -143, 151, -16, -147, 150, + -149, 83, -99, 144, -126, -122, 160, -45, 162, -40, + -108, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -98, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -99, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -92, 59, -21, 148, - -92, -102, 162, -60, 43, 148, 149, -96, 45, -65, - -150, 84, -98, -122, 145, -67, -123, -68, -69, -124, + 146, 145, 146, 31, -30, 149, -93, 59, -21, 148, + -93, -103, 162, -60, 43, 148, 149, -97, 45, -65, + -150, 84, -99, -122, 145, -67, -123, -68, -69, -124, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -112, -4, - -102, 146, -96, 149, -91, -107, 149, 28, -30, 144, + 147, 149, -79, -79, -27, 96, -50, 147, -113, -4, + -103, 146, -97, 149, -92, -108, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -125, 12, 146, 160, -1, -77, 10, -128, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -102, 149, -102, 144, -88, - -27, 147, 149, -88, 146, -102, 12, -102, -102, -108, - 12, 153, 162, 146, 160, 162, 10, -149, 162, -85, - 160, 146, 144, -79, -102, -89, -27, 147, -102, -102, + -19, -79, 59, 146, 147, -103, 149, -103, 144, -89, + -27, 147, 149, -89, 146, -103, 12, -103, -103, -109, + 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, + 160, 146, 144, -79, -103, -90, -27, 147, -103, -103, 145, 149, 145, 145, 149, 160, 12, -30, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -102, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -103, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -102, 12, -30, -120, -131, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -118, -119, -61, 42, -87, - 146, 144, -47, -61, 148, -102, -47, 145, 12, 149, - 144, -102, 145, + 146, -103, 12, -30, -120, -131, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -118, -119, -61, 42, -88, + 146, 144, -47, -61, 148, -103, -47, 145, 12, 149, + 144, -103, 145, } var yyDef = [...]int{ @@ -3180,20 +3180,15 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1056 { - yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtEcho).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1069 + // line internal/php5/php5.y:1064 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3205,7 +3200,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1079 + // line internal/php5/php5.y:1074 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3219,7 +3214,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1091 + // line internal/php5/php5.y:1086 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3235,7 +3230,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1105 + // line internal/php5/php5.y:1100 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3276,7 +3271,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1143 + // line internal/php5/php5.y:1138 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3317,7 +3312,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1181 + // line internal/php5/php5.y:1176 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3332,7 +3327,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1194 + // line internal/php5/php5.y:1189 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3345,7 +3340,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1200 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3363,7 +3358,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1221 + // line internal/php5/php5.y:1216 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3377,7 +3372,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1233 + // line internal/php5/php5.y:1228 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3394,13 +3389,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1251 + // line internal/php5/php5.y:1246 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1255 + // line internal/php5/php5.y:1250 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3422,13 +3417,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1278 + // line internal/php5/php5.y:1273 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1282 + // line internal/php5/php5.y:1277 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3442,31 +3437,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1297 + // line internal/php5/php5.y:1292 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1301 + // line internal/php5/php5.y:1296 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1308 + // line internal/php5/php5.y:1303 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1312 + // line internal/php5/php5.y:1307 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1319 + // line internal/php5/php5.y:1314 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3487,13 +3482,13 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1341 + // line internal/php5/php5.y:1336 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1345 + // line internal/php5/php5.y:1340 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3502,49 +3497,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1350 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1357 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1364 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1376 + // line internal/php5/php5.y:1371 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1375 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1387 + // line internal/php5/php5.y:1382 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1391 + // line internal/php5/php5.y:1386 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1398 + // line internal/php5/php5.y:1393 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3568,7 +3563,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1423 + // line internal/php5/php5.y:1418 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3596,7 +3591,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1449 + // line internal/php5/php5.y:1444 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3613,7 +3608,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1468 + // line internal/php5/php5.y:1463 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3625,7 +3620,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1478 + // line internal/php5/php5.y:1473 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3640,7 +3635,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1491 + // line internal/php5/php5.y:1486 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3652,7 +3647,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1501 + // line internal/php5/php5.y:1496 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3667,13 +3662,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1517 + // line internal/php5/php5.y:1512 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1521 + // line internal/php5/php5.y:1516 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3685,19 +3680,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1534 + // line internal/php5/php5.y:1529 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1541 + // line internal/php5/php5.y:1536 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1545 + // line internal/php5/php5.y:1540 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3709,13 +3704,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1558 + // line internal/php5/php5.y:1553 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1562 + // line internal/php5/php5.y:1557 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3727,13 +3722,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1575 + // line internal/php5/php5.y:1570 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1574 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3747,13 +3742,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1591 + // line internal/php5/php5.y:1586 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1595 + // line internal/php5/php5.y:1590 { yyVAL.node = yyDollar[2].node @@ -3762,13 +3757,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1605 + // line internal/php5/php5.y:1600 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1609 + // line internal/php5/php5.y:1604 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3780,7 +3775,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1619 + // line internal/php5/php5.y:1614 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3794,7 +3789,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1634 + // line internal/php5/php5.y:1629 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3805,7 +3800,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1643 + // line internal/php5/php5.y:1638 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3825,7 +3820,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1664 + // line internal/php5/php5.y:1659 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3834,7 +3829,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1671 + // line internal/php5/php5.y:1666 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3855,7 +3850,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1694 + // line internal/php5/php5.y:1689 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3864,7 +3859,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1701 + // line internal/php5/php5.y:1696 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3885,7 +3880,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1724 + // line internal/php5/php5.y:1719 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3907,7 +3902,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1744 + // line internal/php5/php5.y:1739 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3928,7 +3923,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1767 + // line internal/php5/php5.y:1762 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3941,7 +3936,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1778 + // line internal/php5/php5.y:1773 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3955,7 +3950,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1790 + // line internal/php5/php5.y:1785 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3965,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1803 + // line internal/php5/php5.y:1798 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,13 +3981,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1821 + // line internal/php5/php5.y:1816 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1825 + // line internal/php5/php5.y:1820 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4006,7 +4001,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1837 + // line internal/php5/php5.y:1832 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4019,19 +4014,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1852 + // line internal/php5/php5.y:1847 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1856 + // line internal/php5/php5.y:1851 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1864 + // line internal/php5/php5.y:1859 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4042,7 +4037,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1868 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4062,13 +4057,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1896 + // line internal/php5/php5.y:1891 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1900 + // line internal/php5/php5.y:1895 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4083,13 +4078,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1917 + // line internal/php5/php5.y:1912 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1921 + // line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4106,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1945 + // line internal/php5/php5.y:1940 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1949 + // line internal/php5/php5.y:1944 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4129,13 +4124,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1963 + // line internal/php5/php5.y:1958 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1962 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4154,25 +4149,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1988 + // line internal/php5/php5.y:1983 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1992 + // line internal/php5/php5.y:1987 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1999 + // line internal/php5/php5.y:1994 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2003 + // line internal/php5/php5.y:1998 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4181,7 +4176,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2013 + // line internal/php5/php5.y:2008 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4217,7 +4212,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2047 + // line internal/php5/php5.y:2042 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4254,13 +4249,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2086 + // line internal/php5/php5.y:2081 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2090 + // line internal/php5/php5.y:2085 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4272,7 +4267,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2100 + // line internal/php5/php5.y:2095 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4284,13 +4279,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2110 + // line internal/php5/php5.y:2105 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2118 + // line internal/php5/php5.y:2113 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4303,7 +4298,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2129 + // line internal/php5/php5.y:2124 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4316,7 +4311,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2140 + // line internal/php5/php5.y:2135 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4331,13 +4326,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2157 + // line internal/php5/php5.y:2152 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2161 + // line internal/php5/php5.y:2156 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4346,7 +4341,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2171 + // line internal/php5/php5.y:2166 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4358,7 +4353,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2181 + // line internal/php5/php5.y:2176 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4370,7 +4365,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2186 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4382,7 +4377,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2201 + // line internal/php5/php5.y:2196 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4394,7 +4389,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2214 + // line internal/php5/php5.y:2209 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4403,7 +4398,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2221 + // line internal/php5/php5.y:2216 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4411,7 +4406,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2231 + // line internal/php5/php5.y:2226 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4425,7 +4420,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2243 + // line internal/php5/php5.y:2238 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4437,7 +4432,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2253 + // line internal/php5/php5.y:2248 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4451,7 +4446,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2269 + // line internal/php5/php5.y:2264 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4475,7 +4470,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2291 + // line internal/php5/php5.y:2286 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4501,7 +4496,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2315 + // line internal/php5/php5.y:2310 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4526,7 +4521,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2338 + // line internal/php5/php5.y:2333 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4553,19 +4548,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2367 + // line internal/php5/php5.y:2362 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2371 + // line internal/php5/php5.y:2366 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2379 + // line internal/php5/php5.y:2374 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4579,7 +4574,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2391 + // line internal/php5/php5.y:2386 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4587,13 +4582,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2397 + // line internal/php5/php5.y:2392 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2401 + // line internal/php5/php5.y:2396 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4624,7 +4619,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2433 + // line internal/php5/php5.y:2428 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4636,13 +4631,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2441 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2450 + // line internal/php5/php5.y:2445 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4656,7 +4651,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2462 + // line internal/php5/php5.y:2457 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4668,7 +4663,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2472 + // line internal/php5/php5.y:2467 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4680,31 +4675,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2485 + // line internal/php5/php5.y:2480 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2489 + // line internal/php5/php5.y:2484 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2496 + // line internal/php5/php5.y:2491 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2495 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2507 + // line internal/php5/php5.y:2502 { yyVAL.node = yyDollar[1].node @@ -4714,7 +4709,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2515 + // line internal/php5/php5.y:2510 { yyVAL.node = yyDollar[1].node @@ -4724,7 +4719,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2526 + // line internal/php5/php5.y:2521 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4737,13 +4732,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2540 + // line internal/php5/php5.y:2535 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2544 + // line internal/php5/php5.y:2539 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4752,7 +4747,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2554 + // line internal/php5/php5.y:2549 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4766,13 +4761,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2566 + // line internal/php5/php5.y:2561 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2573 + // line internal/php5/php5.y:2568 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4788,7 +4783,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2590 + // line internal/php5/php5.y:2585 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4804,7 +4799,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2604 + // line internal/php5/php5.y:2599 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4817,19 +4812,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2618 + // line internal/php5/php5.y:2613 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2622 + // line internal/php5/php5.y:2617 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2629 + // line internal/php5/php5.y:2624 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4842,7 +4837,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2640 + // line internal/php5/php5.y:2635 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4855,13 +4850,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2649 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2653 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4874,31 +4869,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2672 + // line internal/php5/php5.y:2667 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2676 + // line internal/php5/php5.y:2671 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2683 + // line internal/php5/php5.y:2678 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2687 + // line internal/php5/php5.y:2682 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2694 + // line internal/php5/php5.y:2689 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4910,7 +4905,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2704 + // line internal/php5/php5.y:2699 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4922,7 +4917,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2714 + // line internal/php5/php5.y:2709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4934,7 +4929,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2724 + // line internal/php5/php5.y:2719 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4946,7 +4941,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2734 + // line internal/php5/php5.y:2729 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4958,7 +4953,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2744 + // line internal/php5/php5.y:2739 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4970,7 +4965,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2752 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4988,7 +4983,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2773 + // line internal/php5/php5.y:2768 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5007,7 +5002,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2790 + // line internal/php5/php5.y:2785 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5024,7 +5019,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2805 + // line internal/php5/php5.y:2800 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5042,7 +5037,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2824 + // line internal/php5/php5.y:2819 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5067,7 +5062,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2842 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5095,34 +5090,36 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2871 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2878 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtEcho{ + Exprs: []ast.Vertex{yyDollar[1].node}, + } } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2891 + // line internal/php5/php5.y:2888 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2895 + // line internal/php5/php5.y:2892 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2902 + // line internal/php5/php5.y:2899 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5131,25 +5128,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2909 + // line internal/php5/php5.y:2906 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2916 + // line internal/php5/php5.y:2913 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2920 + // line internal/php5/php5.y:2917 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2927 + // line internal/php5/php5.y:2924 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5163,7 +5160,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2939 + // line internal/php5/php5.y:2936 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5177,37 +5174,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2954 + // line internal/php5/php5.y:2951 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2958 + // line internal/php5/php5.y:2955 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2962 + // line internal/php5/php5.y:2959 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2969 + // line internal/php5/php5.y:2966 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2973 + // line internal/php5/php5.y:2970 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2980 + // line internal/php5/php5.y:2977 { if yyDollar[3].node != nil { @@ -5223,7 +5220,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2997 + // line internal/php5/php5.y:2994 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5240,7 +5237,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3012 + // line internal/php5/php5.y:3009 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5253,7 +5250,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3020 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5267,7 +5264,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3035 + // line internal/php5/php5.y:3032 { var _new *ast.ExprNew @@ -5294,7 +5291,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3060 + // line internal/php5/php5.y:3057 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5306,7 +5303,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3070 + // line internal/php5/php5.y:3067 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5315,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3077 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5328,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3091 + // line internal/php5/php5.y:3088 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5341,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3102 + // line internal/php5/php5.y:3099 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5354,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3110 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5367,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3124 + // line internal/php5/php5.y:3121 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5380,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3135 + // line internal/php5/php5.y:3132 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5393,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3146 + // line internal/php5/php5.y:3143 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5406,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3157 + // line internal/php5/php5.y:3154 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5419,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3168 + // line internal/php5/php5.y:3165 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5432,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3179 + // line internal/php5/php5.y:3176 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5445,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3190 + // line internal/php5/php5.y:3187 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5458,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3201 + // line internal/php5/php5.y:3198 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5474,7 +5471,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3212 + // line internal/php5/php5.y:3209 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5486,7 +5483,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3222 + // line internal/php5/php5.y:3219 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5499,7 +5496,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3233 + // line internal/php5/php5.y:3230 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5511,7 +5508,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3243 + // line internal/php5/php5.y:3240 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5521,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3251 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5534,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3265 + // line internal/php5/php5.y:3262 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5547,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3273 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5560,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3287 + // line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5573,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3298 + // line internal/php5/php5.y:3295 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5586,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3309 + // line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5599,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3320 + // line internal/php5/php5.y:3317 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5612,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3328 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5623,12 +5620,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3342 + // line internal/php5/php5.y:3338 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5637,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3353 + // line internal/php5/php5.y:3349 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5650,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3364 + // line internal/php5/php5.y:3360 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5663,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3375 + // line internal/php5/php5.y:3371 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5676,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3386 + // line internal/php5/php5.y:3382 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5689,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3397 + // line internal/php5/php5.y:3393 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5702,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3408 + // line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5715,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3419 + // line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5728,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3430 + // line internal/php5/php5.y:3426 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5744,7 +5740,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3440 + // line internal/php5/php5.y:3436 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5756,7 +5752,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3450 + // line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5768,7 +5764,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3460 + // line internal/php5/php5.y:3456 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5780,7 +5776,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3470 + // line internal/php5/php5.y:3466 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5789,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3477 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5802,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3492 + // line internal/php5/php5.y:3488 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5815,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3503 + // line internal/php5/php5.y:3499 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5829,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3515 + // line internal/php5/php5.y:3511 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5842,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3526 + // line internal/php5/php5.y:3522 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5855,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3537 + // line internal/php5/php5.y:3533 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5868,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3548 + // line internal/php5/php5.y:3544 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5881,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3559 + // line internal/php5/php5.y:3555 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5898,19 +5894,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3570 + // line internal/php5/php5.y:3566 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3574 + // line internal/php5/php5.y:3570 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3578 + // line internal/php5/php5.y:3574 { yyVAL.node = yyDollar[2].node @@ -5942,7 +5938,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3608 + // line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5956,7 +5952,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3620 + // line internal/php5/php5.y:3616 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5970,13 +5966,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3632 + // line internal/php5/php5.y:3628 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3636 + // line internal/php5/php5.y:3632 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5989,7 +5985,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3647 + // line internal/php5/php5.y:3643 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6002,7 +5998,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3658 + // line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6011,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3669 + // line internal/php5/php5.y:3665 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6024,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3680 + // line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6037,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3691 + // line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6054,7 +6050,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3702 + // line internal/php5/php5.y:3698 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6067,7 +6063,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3713 + // line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6087,7 +6083,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3731 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6099,25 +6095,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3741 + // line internal/php5/php5.y:3737 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3745 + // line internal/php5/php5.y:3741 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3749 + // line internal/php5/php5.y:3745 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3749 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6129,7 +6125,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3763 + // line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6141,7 +6137,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3773 + // line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6153,7 +6149,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3783 + // line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6180,7 +6176,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3807 + // line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6208,7 +6204,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3835 + // line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6220,7 +6216,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3845 + // line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6232,7 +6228,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3855 + // line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6245,7 +6241,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3866 + // line internal/php5/php5.y:3862 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6258,7 +6254,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3880 + // line internal/php5/php5.y:3876 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6271,7 +6267,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3891 + // line internal/php5/php5.y:3887 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6284,7 +6280,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3902 + // line internal/php5/php5.y:3898 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6300,7 +6296,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3916 + // line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6313,7 +6309,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3930 + // line internal/php5/php5.y:3926 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6327,7 +6323,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3942 + // line internal/php5/php5.y:3938 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6340,19 +6336,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3956 + // line internal/php5/php5.y:3952 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3959 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3967 + // line internal/php5/php5.y:3963 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6366,7 +6362,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3982 + // line internal/php5/php5.y:3978 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6382,7 +6378,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3996 + // line internal/php5/php5.y:3992 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6401,7 +6397,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4013 + // line internal/php5/php5.y:4009 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6416,7 +6412,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4026 + // line internal/php5/php5.y:4022 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6434,7 +6430,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4045 + // line internal/php5/php5.y:4041 { name := &ast.NameName{ Node: ast.Node{ @@ -6449,7 +6445,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4058 + // line internal/php5/php5.y:4054 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6466,7 +6462,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4073 + // line internal/php5/php5.y:4069 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6482,7 +6478,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4087 + // line internal/php5/php5.y:4083 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6495,7 +6491,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4098 + // line internal/php5/php5.y:4094 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6508,7 +6504,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4109 + // line internal/php5/php5.y:4105 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6521,7 +6517,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4120 + // line internal/php5/php5.y:4116 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6534,7 +6530,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4131 + // line internal/php5/php5.y:4127 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6546,7 +6542,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4144 + // line internal/php5/php5.y:4140 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6558,7 +6554,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4154 + // line internal/php5/php5.y:4150 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6569,7 +6565,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4163 + // line internal/php5/php5.y:4159 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6582,7 +6578,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4174 + // line internal/php5/php5.y:4170 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6594,7 +6590,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4187 + // line internal/php5/php5.y:4183 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6605,7 +6601,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4196 + // line internal/php5/php5.y:4192 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6618,7 +6614,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4207 + // line internal/php5/php5.y:4203 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6630,19 +6626,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4220 + // line internal/php5/php5.y:4216 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4224 + // line internal/php5/php5.y:4220 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4231 + // line internal/php5/php5.y:4227 { yyVAL.node = yyDollar[1].node @@ -6683,25 +6679,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4270 + // line internal/php5/php5.y:4266 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4274 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4282 + // line internal/php5/php5.y:4278 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4290 + // line internal/php5/php5.y:4286 { yyVAL.list = yyDollar[2].list @@ -6710,13 +6706,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4300 + // line internal/php5/php5.y:4296 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4304 + // line internal/php5/php5.y:4300 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6732,19 +6728,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4318 + // line internal/php5/php5.y:4314 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4325 + // line internal/php5/php5.y:4321 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4325 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6754,25 +6750,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4337 + // line internal/php5/php5.y:4333 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4344 + // line internal/php5/php5.y:4340 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4348 + // line internal/php5/php5.y:4344 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4355 + // line internal/php5/php5.y:4351 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6784,7 +6780,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4365 + // line internal/php5/php5.y:4361 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6796,7 +6792,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4375 + // line internal/php5/php5.y:4371 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6808,7 +6804,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4385 + // line internal/php5/php5.y:4381 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6820,7 +6816,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4395 + // line internal/php5/php5.y:4391 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6832,7 +6828,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4405 + // line internal/php5/php5.y:4401 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6844,7 +6840,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4415 + // line internal/php5/php5.y:4411 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6856,7 +6852,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4425 + // line internal/php5/php5.y:4421 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6868,7 +6864,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4435 + // line internal/php5/php5.y:4431 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6880,7 +6876,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4445 + // line internal/php5/php5.y:4441 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6892,7 +6888,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4455 + // line internal/php5/php5.y:4451 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6906,7 +6902,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4467 + // line internal/php5/php5.y:4463 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6918,7 +6914,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4480 + // line internal/php5/php5.y:4476 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6934,25 +6930,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4497 + // line internal/php5/php5.y:4493 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4504 + // line internal/php5/php5.y:4500 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4508 + // line internal/php5/php5.y:4504 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4512 + // line internal/php5/php5.y:4508 { name := &ast.NameName{ Node: ast.Node{ @@ -6967,7 +6963,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4521 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6984,7 +6980,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4540 + // line internal/php5/php5.y:4536 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7000,7 +6996,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4554 + // line internal/php5/php5.y:4550 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7014,7 +7010,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4566 + // line internal/php5/php5.y:4562 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7027,13 +7023,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4577 + // line internal/php5/php5.y:4573 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4581 + // line internal/php5/php5.y:4577 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7045,13 +7041,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4591 + // line internal/php5/php5.y:4587 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4598 + // line internal/php5/php5.y:4594 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7064,7 +7060,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4605 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7073,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4620 + // line internal/php5/php5.y:4616 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7090,7 +7086,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4631 + // line internal/php5/php5.y:4627 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7099,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4642 + // line internal/php5/php5.y:4638 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7116,7 +7112,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4653 + // line internal/php5/php5.y:4649 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7129,7 +7125,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4664 + // line internal/php5/php5.y:4660 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7142,7 +7138,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4675 + // line internal/php5/php5.y:4671 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7154,7 +7150,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4685 + // line internal/php5/php5.y:4681 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7166,7 +7162,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4695 + // line internal/php5/php5.y:4691 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7179,7 +7175,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4706 + // line internal/php5/php5.y:4702 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7192,7 +7188,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4717 + // line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7205,7 +7201,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4728 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7218,7 +7214,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4739 + // line internal/php5/php5.y:4735 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7231,7 +7227,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4750 + // line internal/php5/php5.y:4746 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7244,7 +7240,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4761 + // line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7257,7 +7253,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4772 + // line internal/php5/php5.y:4768 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7270,7 +7266,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4783 + // line internal/php5/php5.y:4779 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7283,7 +7279,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4794 + // line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7292,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4805 + // line internal/php5/php5.y:4801 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7305,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4816 + // line internal/php5/php5.y:4812 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7318,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4827 + // line internal/php5/php5.y:4823 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7335,7 +7331,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4838 + // line internal/php5/php5.y:4834 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7348,7 +7344,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4849 + // line internal/php5/php5.y:4845 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7362,7 +7358,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4861 + // line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7371,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4872 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7384,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4883 + // line internal/php5/php5.y:4879 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7401,7 +7397,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4894 + // line internal/php5/php5.y:4890 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7414,7 +7410,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4905 + // line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7428,7 +7424,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4913 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7442,7 +7438,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4929 + // line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7454,7 +7450,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4939 + // line internal/php5/php5.y:4935 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7466,7 +7462,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4949 + // line internal/php5/php5.y:4945 { yyVAL.node = yyDollar[2].node @@ -7476,13 +7472,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4960 + // line internal/php5/php5.y:4956 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4960 { name := &ast.NameName{ Node: ast.Node{ @@ -7497,7 +7493,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4977 + // line internal/php5/php5.y:4973 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7514,7 +7510,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4992 + // line internal/php5/php5.y:4988 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7530,7 +7526,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5005 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7544,25 +7540,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5017 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5025 + // line internal/php5/php5.y:5021 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5029 + // line internal/php5/php5.y:5025 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5033 + // line internal/php5/php5.y:5029 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7574,7 +7570,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5043 + // line internal/php5/php5.y:5039 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7586,7 +7582,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5053 + // line internal/php5/php5.y:5049 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7598,13 +7594,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5062 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5070 + // line internal/php5/php5.y:5066 { yyVAL.list = yyDollar[1].list @@ -7615,19 +7611,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5082 + // line internal/php5/php5.y:5078 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5086 + // line internal/php5/php5.y:5082 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5093 + // line internal/php5/php5.y:5089 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7642,7 +7638,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5102 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7656,7 +7652,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5118 + // line internal/php5/php5.y:5114 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7670,7 +7666,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5130 + // line internal/php5/php5.y:5126 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7683,19 +7679,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5140 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5144 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5151 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7712,7 +7708,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5170 + // line internal/php5/php5.y:5166 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7729,25 +7725,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5189 + // line internal/php5/php5.y:5185 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5197 + // line internal/php5/php5.y:5193 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5204 + // line internal/php5/php5.y:5200 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5207 { yyVAL.node = yyDollar[1].node @@ -7805,25 +7801,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5267 + // line internal/php5/php5.y:5263 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5270 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5274 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5286 + // line internal/php5/php5.y:5282 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7837,7 +7833,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5301 + // line internal/php5/php5.y:5297 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7851,7 +7847,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5313 + // line internal/php5/php5.y:5309 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7865,7 +7861,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5328 + // line internal/php5/php5.y:5324 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7874,31 +7870,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5338 + // line internal/php5/php5.y:5334 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5342 + // line internal/php5/php5.y:5338 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5346 + // line internal/php5/php5.y:5342 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5353 + // line internal/php5/php5.y:5349 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5353 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7910,7 +7906,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5366 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7923,7 +7919,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5381 + // line internal/php5/php5.y:5377 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7936,13 +7932,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5395 + // line internal/php5/php5.y:5391 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5398 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7955,7 +7951,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5413 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7968,31 +7964,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5427 + // line internal/php5/php5.y:5423 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5431 + // line internal/php5/php5.y:5427 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5431 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5443 + // line internal/php5/php5.y:5439 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5447 + // line internal/php5/php5.y:5443 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8004,13 +8000,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5457 + // line internal/php5/php5.y:5453 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5464 + // line internal/php5/php5.y:5460 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8023,7 +8019,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5475 + // line internal/php5/php5.y:5471 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8036,13 +8032,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5486 + // line internal/php5/php5.y:5482 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5494 + // line internal/php5/php5.y:5490 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8056,7 +8052,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5502 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8070,25 +8066,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5517 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5525 + // line internal/php5/php5.y:5521 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5533 + // line internal/php5/php5.y:5529 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5537 + // line internal/php5/php5.y:5533 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8098,7 +8094,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5548 + // line internal/php5/php5.y:5544 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8112,7 +8108,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5556 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8126,7 +8122,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5572 + // line internal/php5/php5.y:5568 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8136,7 +8132,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5583 + // line internal/php5/php5.y:5579 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8148,7 +8144,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5593 + // line internal/php5/php5.y:5589 { yyVAL.node = yyDollar[2].node @@ -8161,7 +8157,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5603 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8174,7 +8170,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5618 + // line internal/php5/php5.y:5614 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8191,7 +8187,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5636 + // line internal/php5/php5.y:5632 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8204,7 +8200,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5647 + // line internal/php5/php5.y:5643 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8214,7 +8210,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5659 + // line internal/php5/php5.y:5655 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8226,7 +8222,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5669 + // line internal/php5/php5.y:5665 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8242,19 +8238,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5683 + // line internal/php5/php5.y:5679 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5691 + // line internal/php5/php5.y:5687 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5695 + // line internal/php5/php5.y:5691 { yyVAL.list = yyDollar[1].list @@ -8269,7 +8265,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5711 + // line internal/php5/php5.y:5707 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8284,7 +8280,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5724 + // line internal/php5/php5.y:5720 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8298,7 +8294,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5736 + // line internal/php5/php5.y:5732 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8312,7 +8308,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5748 + // line internal/php5/php5.y:5744 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8325,7 +8321,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5755 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8343,7 +8339,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5775 + // line internal/php5/php5.y:5771 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8359,7 +8355,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5789 + // line internal/php5/php5.y:5785 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8376,7 +8372,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5804 + // line internal/php5/php5.y:5800 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8391,13 +8387,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5820 + // line internal/php5/php5.y:5816 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5824 + // line internal/php5/php5.y:5820 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8410,13 +8406,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5835 + // line internal/php5/php5.y:5831 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5839 + // line internal/php5/php5.y:5835 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8429,7 +8425,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5853 + // line internal/php5/php5.y:5849 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8443,7 +8439,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5865 + // line internal/php5/php5.y:5861 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8460,7 +8456,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5880 + // line internal/php5/php5.y:5876 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8479,7 +8475,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5897 + // line internal/php5/php5.y:5893 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8494,7 +8490,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5910 + // line internal/php5/php5.y:5906 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8511,7 +8507,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5925 + // line internal/php5/php5.y:5921 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8530,7 +8526,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5942 + // line internal/php5/php5.y:5938 { yyVAL.node = yyDollar[2].node @@ -8540,7 +8536,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5953 + // line internal/php5/php5.y:5949 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8552,7 +8548,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5963 + // line internal/php5/php5.y:5959 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8569,7 +8565,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5978 + // line internal/php5/php5.y:5974 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8583,7 +8579,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5993 + // line internal/php5/php5.y:5989 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8597,7 +8593,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6005 + // line internal/php5/php5.y:6001 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8619,7 +8615,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6025 + // line internal/php5/php5.y:6021 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8641,7 +8637,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6045 + // line internal/php5/php5.y:6041 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8653,7 +8649,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6055 + // line internal/php5/php5.y:6051 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8665,7 +8661,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6065 + // line internal/php5/php5.y:6061 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8687,7 +8683,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6085 + // line internal/php5/php5.y:6081 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8699,7 +8695,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6095 + // line internal/php5/php5.y:6091 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8711,13 +8707,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6108 + // line internal/php5/php5.y:6104 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6112 + // line internal/php5/php5.y:6108 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8726,19 +8722,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6122 + // line internal/php5/php5.y:6118 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6126 + // line internal/php5/php5.y:6122 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6129 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8754,7 +8750,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6147 + // line internal/php5/php5.y:6143 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8770,7 +8766,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6164 + // line internal/php5/php5.y:6160 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8786,7 +8782,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6177 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index a912b40..343df17 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -240,7 +240,7 @@ import ( %type trait_use_statement function_call_parameter trait_adaptation_statement trait_precedence trait_alias %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method %type static_scalar_value static_operation static_var_list global_var_list -%type ctor_arguments function_call_parameter_list +%type ctor_arguments function_call_parameter_list echo_expr_list %type trait_adaptations %type switch_case_list %type method_body @@ -255,7 +255,7 @@ import ( %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations %type inner_statement_list encaps_list isset_variables non_empty_array_pair_list %type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr -%type for_expr case_list echo_expr_list unset_variables declare_list catch_statement additional_catches +%type for_expr case_list unset_variables declare_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers class_variable_declaration %type interface_list non_empty_function_call_parameter_list trait_list trait_adaptation_list non_empty_trait_adaptation_list @@ -1054,16 +1054,11 @@ unticked_statement: } | T_ECHO echo_expr_list ';' { - $$ = &ast.StmtEcho{ast.Node{}, $2} + $2.(*ast.StmtEcho).EchoTkn = $1 + $2.(*ast.StmtEcho).SemiColonTkn = $3 + $2.(*ast.StmtEcho).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Echo, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_INLINE_HTML { @@ -2874,14 +2869,16 @@ class_constant_declaration: echo_expr_list: echo_expr_list ',' expr { - $$ = append($1, $3) + $1.(*ast.StmtEcho).Exprs = append($1.(*ast.StmtEcho).Exprs, $3) + $1.(*ast.StmtEcho).SeparatorTkns = append($1.(*ast.StmtEcho).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | expr { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtEcho{ + Exprs: []ast.Vertex{$1}, + } } ; @@ -3335,7 +3332,6 @@ expr_without_variable: $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '+' expr diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e26b9a2..4734582 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4827 +// line internal/php7/php7.y:4821 // line yacctab:1 var yyExca = [...]int{ @@ -631,10 +631,10 @@ var yyAct = [...]int{ 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, 189, 744, 632, 855, 260, 261, 235, 539, 238, 225, 859, 283, 260, 261, 528, 865, 371, 108, 879, 877, - 890, 891, 886, 838, 328, 151, 892, 893, 841, 885, - 676, 730, 830, 853, 255, 897, 898, 796, 385, 872, - 656, 852, 786, 896, 903, 934, 662, 905, 845, 227, - 43, 42, 16, 15, 886, 908, 904, 902, 260, 261, + 890, 891, 886, 838, 328, 841, 892, 893, 676, 885, + 830, 730, 255, 853, 796, 897, 898, 385, 656, 872, + 852, 934, 786, 896, 903, 662, 845, 905, 227, 43, + 42, 16, 15, 151, 886, 908, 904, 902, 260, 261, 606, 885, 271, 49, 48, 110, 50, 84, 82, 72, 252, 62, 269, 61, 884, 883, 906, 918, 882, 881, 742, 147, 144, 45, 734, 673, 315, 928, 926, 922, @@ -1430,10 +1430,10 @@ var yyPgo = [...]int{ 908, 905, 904, 15, 62, 903, 902, 100, 87, 274, 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, - 10, 880, 879, 46, 39, 40, 2, 16, 705, 43, - 85, 878, 876, 875, 12, 871, 870, 555, 50, 37, - 868, 867, 9, 762, 20, 553, 864, 18, 862, 860, - 858, 88, 855, 36, 854, 25, 33, 853, 45, 848, + 880, 10, 879, 878, 46, 39, 40, 2, 16, 705, + 43, 85, 876, 875, 871, 12, 870, 868, 555, 50, + 37, 867, 864, 9, 762, 20, 553, 862, 18, 860, + 858, 855, 88, 36, 854, 25, 33, 853, 45, 848, 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } @@ -1447,27 +1447,27 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, - 117, 97, 97, 10, 10, 10, 9, 9, 9, 9, + 117, 98, 98, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 93, 93, 16, 16, 18, 18, 7, 7, 106, + 9, 94, 94, 16, 16, 18, 18, 7, 7, 106, 106, 105, 105, 111, 111, 17, 17, 20, 20, 19, - 19, 101, 101, 118, 118, 22, 22, 22, 22, 22, + 19, 102, 102, 118, 118, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 99, 99, 98, 98, + 11, 11, 11, 11, 11, 11, 100, 100, 99, 99, 26, 26, 110, 110, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 78, 78, 14, 15, 88, 88, - 90, 90, 89, 89, 94, 94, 94, 94, 85, 85, - 84, 84, 25, 25, 82, 82, 82, 82, 108, 108, - 108, 8, 8, 86, 86, 69, 69, 67, 67, 71, - 71, 68, 68, 119, 119, 120, 120, 29, 29, 30, - 30, 77, 77, 75, 75, 75, 76, 76, 79, 79, + 13, 13, 126, 126, 79, 79, 14, 15, 89, 89, + 91, 91, 90, 90, 95, 95, 95, 95, 86, 86, + 85, 85, 25, 25, 83, 83, 83, 83, 108, 108, + 108, 8, 8, 87, 87, 70, 70, 68, 68, 72, + 72, 69, 69, 119, 119, 120, 120, 29, 29, 30, + 30, 78, 78, 76, 76, 76, 77, 77, 80, 80, 116, 116, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 121, 121, 37, 37, 37, 37, 125, 125, 81, - 81, 81, 109, 109, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 83, 83, 123, 123, 122, 122, - 124, 124, 92, 92, 92, 92, 92, 92, 107, 107, - 43, 43, 100, 100, 70, 21, 102, 102, 44, 103, + 36, 121, 121, 37, 37, 37, 37, 125, 125, 82, + 82, 82, 109, 109, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 84, 84, 123, 123, 122, 122, + 124, 124, 93, 93, 93, 93, 93, 93, 107, 107, + 43, 43, 101, 101, 71, 21, 67, 67, 44, 103, 103, 104, 104, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1476,19 +1476,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 87, 87, 128, 3, 3, 91, 91, + 32, 32, 32, 88, 88, 128, 3, 3, 92, 92, 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 96, 96, 96, 80, 80, 58, + 48, 48, 51, 51, 97, 97, 97, 81, 81, 58, 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, - 64, 64, 55, 55, 55, 56, 56, 56, 115, 73, - 73, 114, 114, 72, 72, 72, 72, 72, 72, 72, - 95, 95, 95, 95, 65, 65, 65, 65, 65, 65, + 64, 64, 55, 55, 55, 56, 56, 56, 115, 74, + 74, 114, 114, 73, 73, 73, 73, 73, 73, 73, + 96, 96, 96, 96, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 113, 113, 74, + 50, 50, 113, 113, 75, } var yyR2 = [...]int{ @@ -1546,44 +1546,44 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -67, -68, 21, 20, 23, + 52, 80, 45, 39, 144, -68, -69, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -69, -71, -28, -32, -78, 7, -62, -63, + 54, 55, -70, -72, -28, -32, -79, 7, -62, -63, -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -52, 143, 97, 98, 107, -87, 100, 101, + 6, 158, -52, 143, 97, 98, 107, -88, 100, 101, -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -97, 83, 148, 83, -97, 144, 10, - -18, -93, -111, -97, 83, 37, 39, -19, -20, -101, + -61, 61, 18, -98, 83, 148, 83, -98, 144, 10, + -18, -94, -111, -98, 83, 37, 39, -19, -20, -102, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -87, -36, - 12, -102, -44, -23, 146, 131, 132, 88, 90, 89, + -23, 99, -24, -24, -33, -34, -49, -35, -88, -36, + 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -78, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -79, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -115, -114, -73, -72, -23, 153, + 150, 144, 58, 148, -115, -114, -74, -73, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -96, 17, -95, -65, 12, + -23, -23, -51, 148, -23, -97, 17, -96, -65, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -95, -95, 17, -3, 144, -49, - -79, 148, -79, 148, 83, -97, 149, -97, 146, 144, - -117, 146, -16, -111, -97, 83, 146, 160, 83, 29, - -97, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -23, -23, 17, 76, -96, -96, 17, -3, 144, -49, + -80, 148, -80, 148, 83, -98, 149, -98, 146, 144, + -117, 146, -16, -111, -98, 83, 146, 160, 83, 29, + -98, -20, 146, 160, 162, -22, 145, 2, -11, -12, -13, -14, -15, 52, -23, 21, -3, -103, -104, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -110, -27, -28, -23, -101, -118, 146, 146, 10, - -128, 10, -88, 56, -128, -90, 56, 148, -11, 148, + -23, -110, -27, -28, -23, -102, -118, 146, 146, 10, + -128, 10, -89, 56, -128, -91, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, @@ -1597,48 +1597,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -80, -79, 79, 150, 144, 58, 79, -80, -113, -74, + -81, -80, 79, 150, 144, 58, 79, -81, -113, -75, -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -97, -19, 83, -97, 144, 10, 83, -21, -23, + 83, -98, -19, 83, -98, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -88, - -89, 57, -10, 144, -128, -125, -10, -23, -23, -118, - -23, 149, 151, 145, -79, -23, 149, 162, -73, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -89, + -90, 57, -10, 144, -128, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -80, -23, 149, 162, -74, -23, 153, 60, -115, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -79, -23, - -79, -49, -24, -23, -56, -49, -88, -7, 160, 149, - 149, -119, -120, -29, -30, -77, -75, 152, 61, 62, + 12, 10, 145, 145, 150, 145, -23, 151, -80, -23, + -80, -49, -24, -23, -56, -49, -89, -7, 160, 149, + 149, -119, -120, -29, -30, -78, -76, 152, 61, 62, -10, 145, -7, 160, -23, 149, 145, 144, 83, -106, - -17, -20, -93, 144, -128, 149, -86, -11, 147, -23, - -103, -23, -82, 144, 147, -23, 149, -27, -94, -28, - 153, 60, 150, -25, -11, 147, -99, 148, -119, -89, + -17, -20, -94, 144, -128, 149, -87, -11, 147, -23, + -103, -23, -83, 144, 147, -23, 149, -27, -95, -28, + 153, 60, 150, -25, -11, 147, -100, 148, -119, -90, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -89, 149, -74, 149, 160, -1, 153, -75, + 151, 145, -90, 149, -75, 149, 160, -1, 153, -76, 149, -31, -105, -20, 144, -7, 160, -20, -106, 146, -118, 149, 146, -108, 146, -108, 146, 146, 149, 59, -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -37, -123, -122, 45, -124, 48, -92, 104, + 144, 145, -37, -123, -122, 45, -124, 48, -93, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -128, -76, 147, -29, -2, 84, + -118, -23, -115, 151, -128, -77, 147, -29, -2, 84, -7, 160, -105, 145, -17, -7, 22, 146, -103, 145, - 32, 33, -108, 31, -108, -84, -11, 147, -94, -28, - -115, 151, 28, 148, 144, 149, -91, 45, 144, -121, - -30, 39, 37, -125, -92, 145, -118, 149, 145, 144, - -128, -77, 12, 145, -20, -7, 145, 146, 149, -23, + 32, 33, -108, 31, -108, -85, -11, 147, -95, -28, + -115, 151, 28, 148, 144, 149, -92, 45, 144, -121, + -30, 39, 37, -125, -93, 145, -118, 149, 145, 144, + -128, -78, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -98, -10, -118, -76, -76, 148, -121, 145, -107, -43, - 12, -100, -70, -6, -3, -81, 146, 144, -121, 59, - 162, 145, -85, -11, 147, -8, -118, 146, 26, -84, + -99, -10, -118, -77, -77, 148, -121, 145, -107, -43, + 12, -101, -71, -6, -3, -82, 146, 144, -121, 59, + 162, 145, -86, -11, 147, -8, -118, 146, 26, -85, 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -109, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -43, -23, -70, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -71, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -125, 10, -4, -92, -6, 146, -118, -119, - -6, 145, 149, -76, -83, 146, 144, -118, 145, + -128, 148, -125, 10, -4, -93, -6, 146, -118, -119, + -6, 145, 149, -77, -84, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:293 + // line internal/php7/php7.y:293 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:318 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:323 + // line internal/php7/php7.y:323 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:327 + // line internal/php7/php7.y:327 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:334 + // line internal/php7/php7.y:334 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:345 + // line internal/php7/php7.y:345 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:352 + // line internal/php7/php7.y:352 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:364 + // line internal/php7/php7.y:364 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:378 + // line internal/php7/php7.y:378 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:387 + // line internal/php7/php7.y:387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:398 + // line internal/php7/php7.y:398 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:411 + // line internal/php7/php7.y:411 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:416 + // line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:420 + // line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:424 + // line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:428 + // line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:432 + // line internal/php7/php7.y:432 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:436 + // line internal/php7/php7.y:436 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:448 + // line internal/php7/php7.y:448 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:464 + // line internal/php7/php7.y:464 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:482 + // line internal/php7/php7.y:482 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:494 + // line internal/php7/php7.y:494 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:504 + // line internal/php7/php7.y:504 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:515 + // line internal/php7/php7.y:515 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:526 + // line internal/php7/php7.y:526 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:538 + // line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2836,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:552 + // line internal/php7/php7.y:552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:562 + // line internal/php7/php7.y:562 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:575 + // line internal/php7/php7.y:575 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:597 + // line internal/php7/php7.y:597 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:621 + // line internal/php7/php7.y:621 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:641 + // line internal/php7/php7.y:641 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:665 + // line internal/php7/php7.y:665 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:669 + // line internal/php7/php7.y:669 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:676 + // line internal/php7/php7.y:676 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:682 + // line internal/php7/php7.y:682 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:689 + // line internal/php7/php7.y:689 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:695 + // line internal/php7/php7.y:695 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:702 + // line internal/php7/php7.y:702 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:708 + // line internal/php7/php7.y:708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:715 + // line internal/php7/php7.y:715 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:719 + // line internal/php7/php7.y:719 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:730 + // line internal/php7/php7.y:730 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:744 + // line internal/php7/php7.y:744 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:768 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:772 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:783 + // line internal/php7/php7.y:783 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -3085,13 +3085,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:789 + // line internal/php7/php7.y:789 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:796 + // line internal/php7/php7.y:796 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:807 + // line internal/php7/php7.y:807 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:814 + // line internal/php7/php7.y:814 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:819 + // line internal/php7/php7.y:819 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:823 + // line internal/php7/php7.y:823 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:827 + // line internal/php7/php7.y:827 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:831 + // line internal/php7/php7.y:831 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:835 + // line internal/php7/php7.y:835 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:839 + // line internal/php7/php7.y:839 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:853 + // line internal/php7/php7.y:853 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:864 + // line internal/php7/php7.y:864 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:868 + // line internal/php7/php7.y:868 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:872 + // line internal/php7/php7.y:872 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3198,7 +3198,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:882 + // line internal/php7/php7.y:882 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3215,7 +3215,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:897 + // line internal/php7/php7.y:897 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3231,7 +3231,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:911 + // line internal/php7/php7.y:911 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3243,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:921 + // line internal/php7/php7.y:921 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3256,7 +3256,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:932 + // line internal/php7/php7.y:932 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3269,7 +3269,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:943 + // line internal/php7/php7.y:943 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3282,44 +3282,37 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:954 + // line internal/php7/php7.y:954 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) yyDollar[2].node.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:963 + // line internal/php7/php7.y:962 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) yyDollar[2].node.(*ast.StmtStatic).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:970 { - yyVAL.node = &ast.StmtEcho{ast.Node{}, yyDollar[2].list} + yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token + yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token + yyDollar[2].node.(*ast.StmtEcho).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Echo, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:985 + // line internal/php7/php7.y:978 { yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} @@ -3331,7 +3324,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:995 + // line internal/php7/php7.y:988 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3345,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1007 + // line internal/php7/php7.y:1000 { yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} @@ -3365,7 +3358,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1025 + // line internal/php7/php7.y:1018 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3389,7 +3382,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1047 + // line internal/php7/php7.y:1040 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3416,7 +3409,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1072 + // line internal/php7/php7.y:1065 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3431,7 +3424,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1078 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3444,7 +3437,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1096 + // line internal/php7/php7.y:1089 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3461,7 +3454,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1111 + // line internal/php7/php7.y:1104 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3475,7 +3468,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1123 + // line internal/php7/php7.y:1116 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3492,7 +3485,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1138 + // line internal/php7/php7.y:1131 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3507,13 +3500,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1153 + // line internal/php7/php7.y:1146 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1157 + // line internal/php7/php7.y:1150 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3535,13 +3528,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1179 + // line internal/php7/php7.y:1172 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1183 + // line internal/php7/php7.y:1176 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3555,13 +3548,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1195 + // line internal/php7/php7.y:1188 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1199 + // line internal/php7/php7.y:1192 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3575,13 +3568,13 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1214 + // line internal/php7/php7.y:1207 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1218 + // line internal/php7/php7.y:1211 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -3590,13 +3583,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1228 + // line internal/php7/php7.y:1221 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1235 + // line internal/php7/php7.y:1228 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3626,31 +3619,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1259 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1270 + // line internal/php7/php7.y:1263 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1277 + // line internal/php7/php7.y:1270 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1281 + // line internal/php7/php7.y:1274 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1288 + // line internal/php7/php7.y:1281 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3668,7 +3661,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1304 + // line internal/php7/php7.y:1297 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3685,19 +3678,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1322 + // line internal/php7/php7.y:1315 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1326 + // line internal/php7/php7.y:1319 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1333 + // line internal/php7/php7.y:1326 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3709,7 +3702,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1336 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3721,7 +3714,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1356 + // line internal/php7/php7.y:1349 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3738,7 +3731,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1374 + // line internal/php7/php7.y:1367 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3755,13 +3748,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1385 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1396 + // line internal/php7/php7.y:1389 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3773,13 +3766,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1409 + // line internal/php7/php7.y:1402 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1413 + // line internal/php7/php7.y:1406 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3791,13 +3784,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1426 + // line internal/php7/php7.y:1419 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1430 + // line internal/php7/php7.y:1423 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3809,13 +3802,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1443 + // line internal/php7/php7.y:1436 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1447 + // line internal/php7/php7.y:1440 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3827,7 +3820,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1457 + // line internal/php7/php7.y:1450 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3841,7 +3834,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1469 + // line internal/php7/php7.y:1462 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3854,7 +3847,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1476 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3865,7 +3858,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1485 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3885,7 +3878,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1513 + // line internal/php7/php7.y:1506 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3894,7 +3887,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1520 + // line internal/php7/php7.y:1513 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3915,7 +3908,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1535 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3924,7 +3917,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1549 + // line internal/php7/php7.y:1542 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3945,7 +3938,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1571 + // line internal/php7/php7.y:1564 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3951,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1582 + // line internal/php7/php7.y:1575 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3972,7 +3965,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1594 + // line internal/php7/php7.y:1587 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3987,7 +3980,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1607 + // line internal/php7/php7.y:1600 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4003,13 +3996,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1617 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1628 + // line internal/php7/php7.y:1621 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4023,7 +4016,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1640 + // line internal/php7/php7.y:1633 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4036,19 +4029,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1647 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1658 + // line internal/php7/php7.y:1651 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1665 + // line internal/php7/php7.y:1658 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4059,7 +4052,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1674 + // line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4079,7 +4072,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1695 + // line internal/php7/php7.y:1688 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4094,7 +4087,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1708 + // line internal/php7/php7.y:1701 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4113,13 +4106,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1728 + // line internal/php7/php7.y:1721 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1732 + // line internal/php7/php7.y:1725 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4135,7 +4128,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1749 + // line internal/php7/php7.y:1742 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4157,7 +4150,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1769 + // line internal/php7/php7.y:1762 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4181,7 +4174,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1794 + // line internal/php7/php7.y:1787 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4191,7 +4184,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1802 + // line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4215,25 +4208,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1827 + // line internal/php7/php7.y:1820 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1831 + // line internal/php7/php7.y:1824 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1838 + // line internal/php7/php7.y:1831 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1842 + // line internal/php7/php7.y:1835 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4242,7 +4235,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1852 + // line internal/php7/php7.y:1845 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4278,7 +4271,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1886 + // line internal/php7/php7.y:1879 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4315,25 +4308,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1924 + // line internal/php7/php7.y:1917 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1928 + // line internal/php7/php7.y:1921 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1928 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1939 + // line internal/php7/php7.y:1932 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4345,7 +4338,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1952 + // line internal/php7/php7.y:1945 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4357,7 +4350,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1962 + // line internal/php7/php7.y:1955 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4369,19 +4362,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1972 + // line internal/php7/php7.y:1965 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1972 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1983 + // line internal/php7/php7.y:1976 { yyVAL.node = yyDollar[2].node @@ -4390,7 +4383,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1993 + // line internal/php7/php7.y:1986 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4403,7 +4396,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2004 + // line internal/php7/php7.y:1997 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4420,13 +4413,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2026 + // line internal/php7/php7.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4435,7 +4428,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2036 + // line internal/php7/php7.y:2029 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4447,7 +4440,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2046 + // line internal/php7/php7.y:2039 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4459,7 +4452,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2052 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4468,7 +4461,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2066 + // line internal/php7/php7.y:2059 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4476,13 +4469,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2075 + // line internal/php7/php7.y:2068 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2082 + // line internal/php7/php7.y:2075 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4491,7 +4484,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2089 + // line internal/php7/php7.y:2082 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4499,7 +4492,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2091 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4520,7 +4513,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2110 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4542,19 +4535,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2140 + // line internal/php7/php7.y:2133 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2144 + // line internal/php7/php7.y:2137 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2144 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4568,7 +4561,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2163 + // line internal/php7/php7.y:2156 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4582,7 +4575,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2175 + // line internal/php7/php7.y:2168 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4594,7 +4587,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2185 + // line internal/php7/php7.y:2178 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4625,13 +4618,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2217 + // line internal/php7/php7.y:2210 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2214 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4645,7 +4638,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2226 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4657,7 +4650,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2236 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4669,7 +4662,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2253 + // line internal/php7/php7.y:2246 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4681,19 +4674,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2266 + // line internal/php7/php7.y:2259 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2263 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2277 + // line internal/php7/php7.y:2270 { yyVAL.node = yyDollar[1].node @@ -4703,7 +4696,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2278 { yyVAL.node = yyDollar[1].node @@ -4713,7 +4706,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2296 + // line internal/php7/php7.y:2289 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4726,7 +4719,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2310 + // line internal/php7/php7.y:2303 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4742,7 +4735,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2317 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4758,7 +4751,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2338 + // line internal/php7/php7.y:2331 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4774,7 +4767,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2352 + // line internal/php7/php7.y:2345 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4787,7 +4780,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2359 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4801,13 +4794,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2378 + // line internal/php7/php7.y:2371 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2385 + // line internal/php7/php7.y:2378 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4823,7 +4816,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2395 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4836,7 +4829,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2413 + // line internal/php7/php7.y:2406 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4849,13 +4842,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2427 + // line internal/php7/php7.y:2420 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2424 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4868,31 +4861,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2445 + // line internal/php7/php7.y:2438 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2449 + // line internal/php7/php7.y:2442 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2456 + // line internal/php7/php7.y:2449 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2460 + // line internal/php7/php7.y:2453 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2460 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4904,7 +4897,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2477 + // line internal/php7/php7.y:2470 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4916,7 +4909,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2487 + // line internal/php7/php7.y:2480 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4928,7 +4921,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2497 + // line internal/php7/php7.y:2490 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4940,7 +4933,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2507 + // line internal/php7/php7.y:2500 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4952,7 +4945,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2517 + // line internal/php7/php7.y:2510 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4964,7 +4957,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2530 + // line internal/php7/php7.y:2523 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4973,13 +4966,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2537 + // line internal/php7/php7.y:2530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2544 + // line internal/php7/php7.y:2537 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4995,7 +4988,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2558 + // line internal/php7/php7.y:2551 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5012,7 +5005,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2576 + // line internal/php7/php7.y:2569 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5020,13 +5013,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2582 + // line internal/php7/php7.y:2575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2589 + // line internal/php7/php7.y:2582 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5046,7 +5039,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2603 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5066,40 +5059,42 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2624 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2631 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtEcho{ + Exprs: []ast.Vertex{yyDollar[1].node}, + } } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2645 + // line internal/php7/php7.y:2640 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2652 + // line internal/php7/php7.y:2647 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2651 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2658 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5108,13 +5103,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2670 + // line internal/php7/php7.y:2665 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2677 + // line internal/php7/php7.y:2672 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5132,7 +5127,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2696 + // line internal/php7/php7.y:2691 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5147,7 +5142,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2709 + // line internal/php7/php7.y:2704 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5159,7 +5154,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2722 + // line internal/php7/php7.y:2717 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5176,7 +5171,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2737 + // line internal/php7/php7.y:2732 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5192,7 +5187,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2751 + // line internal/php7/php7.y:2746 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5205,7 +5200,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2762 + // line internal/php7/php7.y:2757 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5219,7 +5214,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2774 + // line internal/php7/php7.y:2769 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5231,7 +5226,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2784 + // line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5244,7 +5239,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2795 + // line internal/php7/php7.y:2790 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5257,7 +5252,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2801 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5270,7 +5265,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2817 + // line internal/php7/php7.y:2812 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5283,7 +5278,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2828 + // line internal/php7/php7.y:2823 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5296,7 +5291,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2839 + // line internal/php7/php7.y:2834 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5309,7 +5304,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2850 + // line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5322,7 +5317,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2861 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5335,7 +5330,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2872 + // line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5348,7 +5343,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5361,7 +5356,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2894 + // line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5374,7 +5369,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2905 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5387,7 +5382,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2916 + // line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5400,7 +5395,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5413,7 +5408,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2938 + // line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5425,7 +5420,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2948 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5438,7 +5433,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5450,7 +5445,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2964 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5463,7 +5458,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2980 + // line internal/php7/php7.y:2975 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5476,7 +5471,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2991 + // line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5489,7 +5484,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3002 + // line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5502,7 +5497,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5515,7 +5510,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3024 + // line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5528,7 +5523,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3030 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5541,7 +5536,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3046 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5554,7 +5549,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3057 + // line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,12 +5557,11 @@ yydefault: yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5580,7 +5574,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3079 + // line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5593,7 +5587,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3090 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5606,7 +5600,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5619,7 +5613,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3112 + // line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5632,7 +5626,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3123 + // line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5645,7 +5639,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5658,7 +5652,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5671,7 +5665,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3156 + // line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5683,7 +5677,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5695,7 +5689,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3176 + // line internal/php7/php7.y:3170 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5707,7 +5701,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5719,7 +5713,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3196 + // line internal/php7/php7.y:3190 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5726,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3207 + // line internal/php7/php7.y:3201 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5739,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3218 + // line internal/php7/php7.y:3212 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5752,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3229 + // line internal/php7/php7.y:3223 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5772,7 +5766,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3241 + // line internal/php7/php7.y:3235 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5785,7 +5779,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3252 + // line internal/php7/php7.y:3246 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5798,7 +5792,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3263 + // line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5811,7 +5805,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3274 + // line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5818,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3285 + // line internal/php7/php7.y:3279 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5837,7 +5831,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3296 + // line internal/php7/php7.y:3290 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5850,7 +5844,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3307 + // line internal/php7/php7.y:3301 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5867,13 +5861,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3322 + // line internal/php7/php7.y:3316 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3326 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5887,7 +5881,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3338 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5901,7 +5895,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3350 + // line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5914,13 +5908,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3361 + // line internal/php7/php7.y:3355 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3359 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5933,7 +5927,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3376 + // line internal/php7/php7.y:3370 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5946,7 +5940,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3381 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5959,7 +5953,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3398 + // line internal/php7/php7.y:3392 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5972,7 +5966,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3409 + // line internal/php7/php7.y:3403 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5985,7 +5979,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3414 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5998,7 +5992,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6011,7 +6005,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3436 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6031,7 +6025,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3460 + // line internal/php7/php7.y:3454 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6043,13 +6037,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3470 + // line internal/php7/php7.y:3464 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6061,7 +6055,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3484 + // line internal/php7/php7.y:3478 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6073,7 +6067,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3494 + // line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6085,7 +6079,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3504 + // line internal/php7/php7.y:3498 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6097,7 +6091,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3514 + // line internal/php7/php7.y:3508 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6110,7 +6104,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3519 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6122,13 +6116,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3535 + // line internal/php7/php7.y:3529 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3539 + // line internal/php7/php7.y:3533 { yyVAL.node = yyDollar[2].node @@ -6149,7 +6143,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3560 + // line internal/php7/php7.y:3554 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6180,7 +6174,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3587 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6206,25 +6200,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3617 + // line internal/php7/php7.y:3611 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3615 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3628 + // line internal/php7/php7.y:3622 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3632 + // line internal/php7/php7.y:3626 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6238,7 +6232,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3647 + // line internal/php7/php7.y:3641 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6247,13 +6241,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3654 + // line internal/php7/php7.y:3648 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3661 + // line internal/php7/php7.y:3655 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6267,7 +6261,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3673 + // line internal/php7/php7.y:3667 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6284,7 +6278,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3691 + // line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6296,7 +6290,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3701 + // line internal/php7/php7.y:3695 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6309,7 +6303,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3712 + // line internal/php7/php7.y:3706 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6322,7 +6316,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3723 + // line internal/php7/php7.y:3717 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6334,7 +6328,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3730 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6346,31 +6340,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3740 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3747 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3757 + // line internal/php7/php7.y:3751 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3764 + // line internal/php7/php7.y:3758 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3768 + // line internal/php7/php7.y:3762 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6387,13 +6381,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3780 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3790 + // line internal/php7/php7.y:3784 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6403,25 +6397,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3798 + // line internal/php7/php7.y:3792 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3805 + // line internal/php7/php7.y:3799 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3803 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3816 + // line internal/php7/php7.y:3810 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6435,7 +6429,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3828 + // line internal/php7/php7.y:3822 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6448,7 +6442,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3839 + // line internal/php7/php7.y:3833 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6460,7 +6454,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3846 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6472,7 +6466,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3862 + // line internal/php7/php7.y:3856 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6484,7 +6478,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3872 + // line internal/php7/php7.y:3866 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6496,7 +6490,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3876 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6508,7 +6502,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3886 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6520,7 +6514,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3902 + // line internal/php7/php7.y:3896 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6532,7 +6526,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3912 + // line internal/php7/php7.y:3906 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6544,7 +6538,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3916 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6556,7 +6550,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3932 + // line internal/php7/php7.y:3926 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6568,7 +6562,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3942 + // line internal/php7/php7.y:3936 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6580,7 +6574,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3946 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6594,7 +6588,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3964 + // line internal/php7/php7.y:3958 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6606,7 +6600,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3974 + // line internal/php7/php7.y:3968 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6618,7 +6612,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3984 + // line internal/php7/php7.y:3978 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6630,19 +6624,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3994 + // line internal/php7/php7.y:3988 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3998 + // line internal/php7/php7.y:3992 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4005 + // line internal/php7/php7.y:3999 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6654,7 +6648,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4015 + // line internal/php7/php7.y:4009 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6670,7 +6664,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4023 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6686,43 +6680,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4046 + // line internal/php7/php7.y:4040 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4050 + // line internal/php7/php7.y:4044 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4051 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4061 + // line internal/php7/php7.y:4055 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4068 + // line internal/php7/php7.y:4062 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4069 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4079 + // line internal/php7/php7.y:4073 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6739,19 +6733,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4094 + // line internal/php7/php7.y:4088 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4095 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4105 + // line internal/php7/php7.y:4099 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6768,19 +6762,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4120 + // line internal/php7/php7.y:4114 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4127 + // line internal/php7/php7.y:4121 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4131 + // line internal/php7/php7.y:4125 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6793,7 +6787,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4136 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6806,7 +6800,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4153 + // line internal/php7/php7.y:4147 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6819,7 +6813,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4164 + // line internal/php7/php7.y:4158 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6832,25 +6826,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4175 + // line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4182 + // line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4186 + // line internal/php7/php7.y:4180 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4190 + // line internal/php7/php7.y:4184 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6863,7 +6857,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4204 + // line internal/php7/php7.y:4198 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6877,7 +6871,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4216 + // line internal/php7/php7.y:4210 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6891,7 +6885,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4222 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6903,7 +6897,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4241 + // line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6916,7 +6910,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4252 + // line internal/php7/php7.y:4246 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6929,13 +6923,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4266 + // line internal/php7/php7.y:4260 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4270 + // line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6948,7 +6942,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6961,7 +6955,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4292 + // line internal/php7/php7.y:4286 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6974,7 +6968,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4303 + // line internal/php7/php7.y:4297 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6987,7 +6981,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7000,7 +6994,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4328 + // line internal/php7/php7.y:4322 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7012,7 +7006,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4338 + // line internal/php7/php7.y:4332 { yyVAL.node = yyDollar[2].node @@ -7022,13 +7016,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4346 + // line internal/php7/php7.y:4340 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4347 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7040,7 +7034,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4363 + // line internal/php7/php7.y:4357 { yyVAL.node = yyDollar[2].node @@ -7050,31 +7044,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4371 + // line internal/php7/php7.y:4365 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4378 + // line internal/php7/php7.y:4372 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4385 + // line internal/php7/php7.y:4379 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4396 + // line internal/php7/php7.y:4390 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7087,7 +7081,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4407 + // line internal/php7/php7.y:4401 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7097,7 +7091,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4418 + // line internal/php7/php7.y:4412 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7110,7 +7104,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4429 + // line internal/php7/php7.y:4423 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7122,7 +7116,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4439 + // line internal/php7/php7.y:4433 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7138,7 +7132,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4453 + // line internal/php7/php7.y:4447 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7152,7 +7146,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4465 + // line internal/php7/php7.y:4459 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7164,7 +7158,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4475 + // line internal/php7/php7.y:4469 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7183,7 +7177,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4486 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7200,13 +7194,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4510 + // line internal/php7/php7.y:4504 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4514 + // line internal/php7/php7.y:4508 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7219,13 +7213,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4525 + // line internal/php7/php7.y:4519 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4523 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7238,7 +7232,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4543 + // line internal/php7/php7.y:4537 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7252,7 +7246,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4555 + // line internal/php7/php7.y:4549 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7269,7 +7263,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4570 + // line internal/php7/php7.y:4564 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7288,7 +7282,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4587 + // line internal/php7/php7.y:4581 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7303,7 +7297,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4594 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7320,7 +7314,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4615 + // line internal/php7/php7.y:4609 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7339,7 +7333,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4632 + // line internal/php7/php7.y:4626 { yyVAL.node = yyDollar[2].node @@ -7349,7 +7343,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4643 + // line internal/php7/php7.y:4637 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7361,7 +7355,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4653 + // line internal/php7/php7.y:4647 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7378,7 +7372,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4668 + // line internal/php7/php7.y:4662 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7404,7 +7398,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4692 + // line internal/php7/php7.y:4686 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7418,7 +7412,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4707 + // line internal/php7/php7.y:4701 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7436,7 +7430,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4723 + // line internal/php7/php7.y:4717 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7458,7 +7452,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4737 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7470,7 +7464,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4753 + // line internal/php7/php7.y:4747 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7482,7 +7476,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4763 + // line internal/php7/php7.y:4757 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7504,7 +7498,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4783 + // line internal/php7/php7.y:4777 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7516,7 +7510,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4793 + // line internal/php7/php7.y:4787 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7528,13 +7522,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4806 + // line internal/php7/php7.y:4800 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4810 + // line internal/php7/php7.y:4804 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7543,7 +7537,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4820 + // line internal/php7/php7.y:4814 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index a095f9a..6f37de7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -249,7 +249,7 @@ import ( %type exit_expr scalar lexical_var function_call member_name property_name %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable -%type encaps_var encaps_var_offset +%type encaps_var encaps_var_offset echo_expr_list %type if_stmt %type alt_if_stmt %type if_stmt_without_else @@ -275,7 +275,7 @@ import ( %type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list -%type const_list echo_expr_list for_exprs non_empty_for_exprs +%type const_list for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations property_list %type case_list trait_adaptation_list unset_variables %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list @@ -954,7 +954,6 @@ statement: { $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 - $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) $$ = $2 @@ -963,23 +962,17 @@ statement: { $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 - $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) $$ = $2 } | T_ECHO echo_expr_list ';' { - $$ = &ast.StmtEcho{ast.Node{}, $2} + $2.(*ast.StmtEcho).EchoTkn = $1 + $2.(*ast.StmtEcho).SemiColonTkn = $3 + $2.(*ast.StmtEcho).Node.Position = position.NewTokensPosition($1, $3) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Echo, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = $2 } | T_INLINE_HTML { @@ -2629,14 +2622,16 @@ const_decl: echo_expr_list: echo_expr_list ',' echo_expr { - $$ = append($1, $3) + $1.(*ast.StmtEcho).Exprs = append($1.(*ast.StmtEcho).Exprs, $3) + $1.(*ast.StmtEcho).SeparatorTkns = append($1.(*ast.StmtEcho).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | echo_expr { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtEcho{ + Exprs: []ast.Vertex{$1}, + } } ; @@ -3061,7 +3056,6 @@ expr_without_variable: $$.GetNode().Position = position.NewNodesPosition($1, $3) // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | expr '+' expr diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index b21ff7c..7986acb 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -58,7 +58,7 @@ func (lex *Lexer) setTokenPosition(token *token.Token) { } func (lex *Lexer) addSkippedToken(t *token.Token, id token.ID, ps, pe int) { - if lex.sts == 0 { + if lex.sts == -1 { lex.sts = lex.ts } diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index f90db23..9f779e6 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -53,7 +53,7 @@ func (lex *Lexer) Lex() *token.Token { tkn := lex.tokenPool.Get() - lex.sts = 0 + lex.sts = -1 lex.ste = 0 lblStart := 0 @@ -24293,6 +24293,10 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:499 + if lex.sts == -1 { + lex.sts = 0 + } + tkn.Value = lex.data[lex.ts:lex.te] tkn.ID = token.ID(tok) tkn.Skipped = lex.data[lex.sts:lex.ste] diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index 18874ae..b3a0015 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -26,7 +26,7 @@ func (lex *Lexer) Lex() *token.Token { tkn := lex.tokenPool.Get() - lex.sts = 0 + lex.sts = -1 lex.ste = 0 lblStart := 0 @@ -498,9 +498,13 @@ func (lex *Lexer) Lex() *token.Token { write exec; }%% + if lex.sts == -1 { + lex.sts = 0 + } + tkn.Value = lex.data[lex.ts:lex.te] tkn.ID = token.ID(tok) - tkn.SkippedString = lex.data[lex.sts:lex.ste] + tkn.Skipped = lex.data[lex.sts:lex.ste] lex.addSkippedToken(tkn, tok, lex.ts, lex.te); return tkn diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 1aa3120..16aa214 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -368,7 +368,10 @@ func (n *StmtDo) Accept(v NodeVisitor) { // StmtEcho node type StmtEcho struct { Node - Exprs []Vertex + EchoTkn *token.Token + Exprs []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtEcho) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index c0f9ef5..ef9f1b3 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -194,3 +194,9 @@ func (v *FilterTokens) StmtStatic(n *ast.StmtStatic) { func (v *FilterTokens) StmtStaticVar(n *ast.StmtStaticVar) { n.EqualTkn = nil } + +func (v *FilterTokens) StmtEcho(n *ast.StmtEcho) { + n.EchoTkn = nil + n.SeparatorTkns = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index e7da279..20df694 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1,6 +1,7 @@ package printer import ( + "bytes" "io" "strings" @@ -16,9 +17,10 @@ const ( ) type Printer struct { - w io.Writer - s printerState - bufStart string + w io.Writer + s printerState + bufStart string + lastWrite []byte } // NewPrinter - Constructor for Printer @@ -32,12 +34,17 @@ func (p *Printer) SetState(s printerState) { p.s = s } +func (p *Printer) write(b []byte) { + p.lastWrite = b + p.w.Write(b) +} + func (p *Printer) Print(n ast.Vertex) { _, isRoot := n.(*ast.Root) _, isInlineHtml := n.(*ast.StmtInlineHtml) if p.s == HtmlState && !isInlineHtml && !isRoot { if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " 0 { - io.WriteString(p.w, glue) + p.write([]byte(glue)) } p.Print(n) @@ -97,28 +104,28 @@ func (p *Printer) printFreeFloatingOrDefault(n ast.Vertex, pos token.Position, d } if len(n.GetNode().Tokens[pos]) == 0 { - io.WriteString(p.w, def) + p.write([]byte(def)) return } for _, m := range n.GetNode().Tokens[pos] { - io.WriteString(p.w, string(m.Value)) + p.write(m.Value) } } func (p *Printer) printToken(t *token.Token, def string) { if t != nil { - p.w.Write(t.Skipped) - p.w.Write(t.Value) + p.write(t.Skipped) + p.write(t.Value) p.bufStart = "" return } if def != "" { - p.w.Write([]byte(p.bufStart)) + p.write([]byte(p.bufStart)) p.bufStart = "" - p.w.Write([]byte(def)) + p.write([]byte(def)) return } } @@ -129,7 +136,7 @@ func (p *Printer) printFreeFloating(n ast.Vertex, pos token.Position) { } for _, m := range n.GetNode().Tokens[pos] { - io.WriteString(p.w, string(m.Value)) + p.write(m.Value) } } @@ -503,7 +510,7 @@ func (p *Printer) printNodeIdentifier(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -512,7 +519,7 @@ func (p *Printer) printNodeReference(n ast.Vertex) { nn := n.(*ast.Reference) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -522,7 +529,7 @@ func (p *Printer) printNodeVariadic(n ast.Vertex) { nn := n.(*ast.Variadic) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "...") + p.write([]byte("...")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -539,7 +546,7 @@ func (p *Printer) printNodeParameter(n ast.Vertex) { p.Print(nn.Var) if nn.DefaultValue != nil { - io.WriteString(p.w, "=") + p.write([]byte("=")) p.Print(nn.DefaultValue) } @@ -550,7 +557,7 @@ func (p *Printer) printNodeNullable(n ast.Vertex) { nn := n.(*ast.Nullable) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "?") + p.write([]byte("?")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -561,12 +568,12 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.IsReference { - io.WriteString(p.w, "&") + p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) if nn.Variadic { - io.WriteString(p.w, "...") + p.write([]byte("...")) } p.Print(nn.Expr) @@ -615,7 +622,7 @@ func (p *Printer) printScalarLNumber(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -625,7 +632,7 @@ func (p *Printer) printScalarDNumber(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -635,7 +642,7 @@ func (p *Printer) printScalarString(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -645,7 +652,7 @@ func (p *Printer) printScalarEncapsedStringPart(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -655,7 +662,7 @@ func (p *Printer) printScalarEncapsed(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, "\"") + p.write([]byte("\"")) for _, part := range nn.Parts { switch part.(type) { case *ast.ExprArrayDimFetch: @@ -676,7 +683,7 @@ func (p *Printer) printScalarEncapsed(n ast.Vertex) { p.Print(part) } } - io.WriteString(p.w, "\"") + p.write([]byte("\"")) p.printFreeFloating(nn, token.End) } @@ -686,7 +693,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Label)) + p.write(nn.Label) for _, part := range nn.Parts { switch part.(type) { @@ -709,7 +716,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { } } - io.WriteString(p.w, strings.Trim(string(nn.Label), "<\"'\n")) + p.write([]byte(strings.Trim(string(nn.Label), "<\"'\n"))) p.printFreeFloating(nn, token.End) } @@ -719,7 +726,7 @@ func (p *Printer) printScalarMagicConstant(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -731,7 +738,7 @@ func (p *Printer) printAssign(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") + p.write([]byte("=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -742,9 +749,9 @@ func (p *Printer) printAssignReference(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") + p.write([]byte("=")) p.printFreeFloating(nn, token.Equal) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -755,8 +762,8 @@ func (p *Printer) printAssignBitwiseAnd(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "&") - io.WriteString(p.w, "=") + p.write([]byte("&")) + p.write([]byte("=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -767,7 +774,7 @@ func (p *Printer) printAssignBitwiseOr(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "|=") + p.write([]byte("|=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -778,7 +785,7 @@ func (p *Printer) printAssignBitwiseXor(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "^=") + p.write([]byte("^=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -789,7 +796,7 @@ func (p *Printer) printAssignCoalesce(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "??=") + p.write([]byte("??=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -800,7 +807,7 @@ func (p *Printer) printAssignConcat(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ".=") + p.write([]byte(".=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -811,7 +818,7 @@ func (p *Printer) printAssignDiv(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "/=") + p.write([]byte("/=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -822,7 +829,7 @@ func (p *Printer) printAssignMinus(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "-=") + p.write([]byte("-=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -833,7 +840,7 @@ func (p *Printer) printAssignMod(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "%=") + p.write([]byte("%=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -844,7 +851,7 @@ func (p *Printer) printAssignMul(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "*=") + p.write([]byte("*=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -855,7 +862,7 @@ func (p *Printer) printAssignPlus(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "+=") + p.write([]byte("+=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -866,7 +873,7 @@ func (p *Printer) printAssignPow(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "**=") + p.write([]byte("**=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -877,7 +884,7 @@ func (p *Printer) printAssignShiftLeft(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "<<=") + p.write([]byte("<<=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -888,7 +895,7 @@ func (p *Printer) printAssignShiftRight(n ast.Vertex) { p.printFreeFloating(nn, token.Start) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ">>=") + p.write([]byte(">>=")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -902,7 +909,7 @@ func (p *Printer) printBinaryBitwiseAnd(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -914,7 +921,7 @@ func (p *Printer) printBinaryBitwiseOr(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "|") + p.write([]byte("|")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -926,7 +933,7 @@ func (p *Printer) printBinaryBitwiseXor(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "^") + p.write([]byte("^")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -938,7 +945,7 @@ func (p *Printer) printBinaryBooleanAnd(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "&&") + p.write([]byte("&&")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -950,7 +957,7 @@ func (p *Printer) printBinaryBooleanOr(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "||") + p.write([]byte("||")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -962,7 +969,7 @@ func (p *Printer) printBinaryCoalesce(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "??") + p.write([]byte("??")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -974,7 +981,7 @@ func (p *Printer) printBinaryConcat(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ".") + p.write([]byte(".")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -986,7 +993,7 @@ func (p *Printer) printBinaryDiv(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "/") + p.write([]byte("/")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -998,7 +1005,7 @@ func (p *Printer) printBinaryEqual(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "==") + p.write([]byte("==")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1010,7 +1017,7 @@ func (p *Printer) printBinaryGreaterOrEqual(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ">=") + p.write([]byte(">=")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1022,7 +1029,7 @@ func (p *Printer) printBinaryGreater(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ">") + p.write([]byte(">")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1034,7 +1041,7 @@ func (p *Printer) printBinaryIdentical(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "===") + p.write([]byte("===")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1047,11 +1054,11 @@ func (p *Printer) printBinaryLogicalAnd(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "and") + p.write([]byte("and")) if nn.Right.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Right) @@ -1065,11 +1072,11 @@ func (p *Printer) printBinaryLogicalOr(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "or") + p.write([]byte("or")) if nn.Right.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Right) @@ -1083,11 +1090,11 @@ func (p *Printer) printBinaryLogicalXor(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "xor") + p.write([]byte("xor")) if nn.Right.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Right) @@ -1100,7 +1107,7 @@ func (p *Printer) printBinaryMinus(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "-") + p.write([]byte("-")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1112,7 +1119,7 @@ func (p *Printer) printBinaryMod(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "%") + p.write([]byte("%")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1124,7 +1131,7 @@ func (p *Printer) printBinaryMul(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "*") + p.write([]byte("*")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1138,7 +1145,7 @@ func (p *Printer) printBinaryNotEqual(n ast.Vertex) { p.printFreeFloating(nn, token.Expr) p.printFreeFloating(nn, token.Equal) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "!=") + p.write([]byte("!=")) } p.Print(nn.Right) @@ -1151,7 +1158,7 @@ func (p *Printer) printBinaryNotIdentical(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "!==") + p.write([]byte("!==")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1163,7 +1170,7 @@ func (p *Printer) printBinaryPlus(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "+") + p.write([]byte("+")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1175,7 +1182,7 @@ func (p *Printer) printBinaryPow(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "**") + p.write([]byte("**")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1187,7 +1194,7 @@ func (p *Printer) printBinaryShiftLeft(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<<") + p.write([]byte("<<")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1199,7 +1206,7 @@ func (p *Printer) printBinaryShiftRight(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, ">>") + p.write([]byte(">>")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1211,7 +1218,7 @@ func (p *Printer) printBinarySmallerOrEqual(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<=") + p.write([]byte("<=")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1223,7 +1230,7 @@ func (p *Printer) printBinarySmaller(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<") + p.write([]byte("<")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1235,7 +1242,7 @@ func (p *Printer) printBinarySpaceship(n ast.Vertex) { p.Print(nn.Left) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "<=>") + p.write([]byte("<=>")) p.Print(nn.Right) p.printFreeFloating(nn, token.End) @@ -1249,7 +1256,7 @@ func (p *Printer) printArray(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(array)") + p.write([]byte("(array)")) } p.Print(nn.Expr) @@ -1262,7 +1269,7 @@ func (p *Printer) printBool(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(boolean)") + p.write([]byte("(boolean)")) } p.Print(nn.Expr) @@ -1275,7 +1282,7 @@ func (p *Printer) printDouble(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(float)") + p.write([]byte("(float)")) } p.Print(nn.Expr) @@ -1288,7 +1295,7 @@ func (p *Printer) printInt(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(integer)") + p.write([]byte("(integer)")) } p.Print(nn.Expr) @@ -1301,7 +1308,7 @@ func (p *Printer) printObject(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(object)") + p.write([]byte("(object)")) } p.Print(nn.Expr) @@ -1314,7 +1321,7 @@ func (p *Printer) printString(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(string)") + p.write([]byte("(string)")) } p.Print(nn.Expr) @@ -1327,7 +1334,7 @@ func (p *Printer) printUnset(n ast.Vertex) { p.printFreeFloating(nn, token.Cast) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "(unset)") + p.write([]byte("(unset)")) } p.Print(nn.Expr) @@ -1342,12 +1349,12 @@ func (p *Printer) printExprArrayDimFetch(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "[") + p.write([]byte("[")) } p.Print(nn.Dim) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "]") + p.write([]byte("]")) } p.printFreeFloating(nn, token.End) } @@ -1358,12 +1365,12 @@ func (p *Printer) printExprArrayDimFetchWithoutLeadingDollar(n ast.Vertex) { p.printExprVariableWithoutLeadingDollar(nn.Var) p.printFreeFloating(nn, token.Var) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "[") + p.write([]byte("[")) } p.Print(nn.Dim) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "]") + p.write([]byte("]")) } p.printFreeFloating(nn, token.End) } @@ -1373,13 +1380,13 @@ func (p *Printer) printExprArrayItem(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Unpack { - io.WriteString(p.w, "...") + p.write([]byte("...")) } if nn.Key != nil { p.Print(nn.Key) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } p.Print(nn.Val) @@ -1390,12 +1397,12 @@ func (p *Printer) printExprArrayItem(n ast.Vertex) { func (p *Printer) printExprArray(n ast.Vertex) { nn := n.(*ast.ExprArray) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "array") + p.write([]byte("array")) p.printFreeFloating(nn, token.Array) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1405,25 +1412,25 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Static { - io.WriteString(p.w, "static") + p.write([]byte("static")) } p.printFreeFloating(nn, token.Static) if nn.Static && n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "fn") + p.write([]byte("fn")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { - io.WriteString(p.w, "&") + p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParameterList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { @@ -1432,9 +1439,9 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { } p.printFreeFloating(nn, token.ReturnType) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) - p.printNode(nn.Expr) + p.Print(nn.Expr) p.printFreeFloating(nn, token.End) } @@ -1442,7 +1449,7 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { func (p *Printer) printExprBitwiseNot(n ast.Vertex) { nn := n.(*ast.ExprBitwiseNot) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "~") + p.write([]byte("~")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) } @@ -1450,7 +1457,7 @@ func (p *Printer) printExprBitwiseNot(n ast.Vertex) { func (p *Printer) printExprBooleanNot(n ast.Vertex) { nn := n.(*ast.ExprBooleanNot) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "!") + p.write([]byte("!")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) } @@ -1461,7 +1468,7 @@ func (p *Printer) printExprClassConstFetch(n ast.Vertex) { p.Print(nn.Class) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) p.Print(nn.ConstantName) p.printFreeFloating(nn, token.End) @@ -1470,9 +1477,9 @@ func (p *Printer) printExprClassConstFetch(n ast.Vertex) { func (p *Printer) printExprClone(n ast.Vertex) { nn := n.(*ast.ExprClone) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "clone") + p.write([]byte("clone")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1481,12 +1488,12 @@ func (p *Printer) printExprClone(n ast.Vertex) { func (p *Printer) printExprClosureUse(n ast.Vertex) { nn := n.(*ast.ExprClosureUse) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "use") + p.write([]byte("use")) p.printFreeFloating(nn, token.Use) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Uses) p.printFreeFloating(nn, token.LexicalVarList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1496,25 +1503,25 @@ func (p *Printer) printExprClosure(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Static { - io.WriteString(p.w, "static") + p.write([]byte("static")) } p.printFreeFloating(nn, token.Static) if nn.Static && n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "function") + p.write([]byte("function")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { - io.WriteString(p.w, "&") + p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParameterList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ClosureUse != nil { @@ -1528,10 +1535,10 @@ func (p *Printer) printExprClosure(n ast.Vertex) { } p.printFreeFloating(nn, token.ReturnType) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -1546,16 +1553,16 @@ func (p *Printer) printExprConstFetch(n ast.Vertex) { func (p *Printer) printExprEmpty(n ast.Vertex) { nn := n.(*ast.ExprEmpty) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "empty") + p.write([]byte("empty")) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") + p.write([]byte("(")) } p.Print(nn.Expr) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") + p.write([]byte(")")) } p.printFreeFloating(nn, token.End) @@ -1564,7 +1571,7 @@ func (p *Printer) printExprEmpty(n ast.Vertex) { func (p *Printer) printExprErrorSuppress(n ast.Vertex) { nn := n.(*ast.ExprErrorSuppress) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "@") + p.write([]byte("@")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1574,16 +1581,16 @@ func (p *Printer) printExprEval(n ast.Vertex) { nn := n.(*ast.ExprEval) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "eval") + p.write([]byte("eval")) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, "(") + p.write([]byte("(")) } p.Print(nn.Expr) if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - io.WriteString(p.w, ")") + p.write([]byte(")")) } p.printFreeFloating(nn, token.End) @@ -1594,13 +1601,13 @@ func (p *Printer) printExprExit(n ast.Vertex) { p.printFreeFloating(nn, token.Start) if nn.Die { - io.WriteString(p.w, "die") + p.write([]byte("die")) } else { - io.WriteString(p.w, "exit") + p.write([]byte("exit")) } if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() && nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) @@ -1624,9 +1631,9 @@ func (p *Printer) printExprFunctionCall(n ast.Vertex) { func (p *Printer) printExprInclude(n ast.Vertex) { nn := n.(*ast.ExprInclude) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "include") + p.write([]byte("include")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1635,9 +1642,9 @@ func (p *Printer) printExprInclude(n ast.Vertex) { func (p *Printer) printExprIncludeOnce(n ast.Vertex) { nn := n.(*ast.ExprIncludeOnce) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "include_once") + p.write([]byte("include_once")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1650,10 +1657,10 @@ func (p *Printer) printExprInstanceOf(n ast.Vertex) { p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "instanceof") + p.write([]byte("instanceof")) p.bufStart = " " p.Print(nn.Class) @@ -1665,12 +1672,12 @@ func (p *Printer) printExprIsset(n ast.Vertex) { nn := n.(*ast.ExprIsset) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "isset") + p.write([]byte("isset")) p.printFreeFloating(nn, token.Isset) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Vars) p.printFreeFloating(nn, token.VarList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1679,12 +1686,12 @@ func (p *Printer) printExprList(n ast.Vertex) { nn := n.(*ast.ExprList) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "list") + p.write([]byte("list")) p.printFreeFloating(nn, token.List) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.End) } @@ -1695,7 +1702,7 @@ func (p *Printer) printExprMethodCall(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "->") + p.write([]byte("->")) p.Print(nn.Method) p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") @@ -1709,7 +1716,7 @@ func (p *Printer) printExprNew(n ast.Vertex) { nn := n.(*ast.ExprNew) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "new") + p.write([]byte("new")) p.bufStart = " " p.Print(nn.Class) @@ -1728,7 +1735,7 @@ func (p *Printer) printExprPostDec(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "--") + p.write([]byte("--")) p.printFreeFloating(nn, token.End) } @@ -1739,7 +1746,7 @@ func (p *Printer) printExprPostInc(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "++") + p.write([]byte("++")) p.printFreeFloating(nn, token.End) } @@ -1748,7 +1755,7 @@ func (p *Printer) printExprPreDec(n ast.Vertex) { nn := n.(*ast.ExprPreDec) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "--") + p.write([]byte("--")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -1758,7 +1765,7 @@ func (p *Printer) printExprPreInc(n ast.Vertex) { nn := n.(*ast.ExprPreInc) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "++") + p.write([]byte("++")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -1768,9 +1775,9 @@ func (p *Printer) printExprPrint(n ast.Vertex) { nn := n.(*ast.ExprPrint) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "print") + p.write([]byte("print")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1783,7 +1790,7 @@ func (p *Printer) printExprPropertyFetch(n ast.Vertex) { p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "->") + p.write([]byte("->")) p.Print(nn.Property) p.printFreeFloating(nn, token.End) @@ -1793,7 +1800,7 @@ func (p *Printer) printExprReference(n ast.Vertex) { nn := n.(*ast.ExprReference) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "&") + p.write([]byte("&")) p.Print(nn.Var) p.printFreeFloating(nn, token.End) @@ -1803,9 +1810,9 @@ func (p *Printer) printExprRequire(n ast.Vertex) { nn := n.(*ast.ExprRequire) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "require") + p.write([]byte("require")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1816,9 +1823,9 @@ func (p *Printer) printExprRequireOnce(n ast.Vertex) { nn := n.(*ast.ExprRequireOnce) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "require_once") + p.write([]byte("require_once")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1829,9 +1836,9 @@ func (p *Printer) printExprShellExec(n ast.Vertex) { nn := n.(*ast.ExprShellExec) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "`") + p.write([]byte("`")) p.joinPrint("", nn.Parts) - io.WriteString(p.w, "`") + p.write([]byte("`")) p.printFreeFloating(nn, token.End) } @@ -1840,10 +1847,10 @@ func (p *Printer) printExprShortArray(n ast.Vertex) { nn := n.(*ast.ExprShortArray) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "[") + p.write([]byte("[")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, "]") + p.write([]byte("]")) p.printFreeFloating(nn, token.End) } @@ -1852,10 +1859,10 @@ func (p *Printer) printExprShortList(n ast.Vertex) { nn := n.(*ast.ExprShortList) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "[") + p.write([]byte("[")) p.joinPrint(",", nn.Items) p.printFreeFloating(nn, token.ArrayPairList) - io.WriteString(p.w, "]") + p.write([]byte("]")) p.printFreeFloating(nn, token.End) } @@ -1866,7 +1873,7 @@ func (p *Printer) printExprStaticCall(n ast.Vertex) { p.Print(nn.Class) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) p.Print(nn.Call) p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") @@ -1882,7 +1889,7 @@ func (p *Printer) printExprStaticPropertyFetch(n ast.Vertex) { p.Print(nn.Class) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) p.Print(nn.Property) p.printFreeFloating(nn, token.End) @@ -1894,14 +1901,14 @@ func (p *Printer) printExprTernary(n ast.Vertex) { p.Print(nn.Condition) p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, "?") + p.write([]byte("?")) if nn.IfTrue != nil { p.Print(nn.IfTrue) } p.printFreeFloating(nn, token.True) - io.WriteString(p.w, ":") + p.write([]byte(":")) p.Print(nn.IfFalse) p.printFreeFloating(nn, token.End) @@ -1911,7 +1918,7 @@ func (p *Printer) printExprUnaryMinus(n ast.Vertex) { nn := n.(*ast.ExprUnaryMinus) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "-") + p.write([]byte("-")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1921,7 +1928,7 @@ func (p *Printer) printExprUnaryPlus(n ast.Vertex) { nn := n.(*ast.ExprUnaryPlus) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "+") + p.write([]byte("+")) p.Print(nn.Expr) p.printFreeFloating(nn, token.End) @@ -1933,7 +1940,7 @@ func (p *Printer) printExprVariable(n ast.Vertex) { p.bufStart = "" if _, ok := nn.VarName.(*ast.Identifier); !ok { - io.WriteString(p.w, "$") + p.write([]byte("$")) } p.Print(nn.VarName) @@ -1954,9 +1961,9 @@ func (p *Printer) printExprYieldFrom(n ast.Vertex) { nn := n.(*ast.ExprYieldFrom) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "yield from") + p.write([]byte("yield from")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) @@ -1967,18 +1974,18 @@ func (p *Printer) printExprYield(n ast.Vertex) { nn := n.(*ast.ExprYield) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "yield") + p.write([]byte("yield")) if nn.Key != nil { if nn.Key.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Key) p.printFreeFloating(nn, token.Expr) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } else { if nn.Value.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } @@ -1993,45 +2000,45 @@ func (p *Printer) printStmtAltForeach(n ast.Vertex) { nn := n.(*ast.StmtAltForeach) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "foreach") + p.write([]byte("foreach")) p.printFreeFloating(nn, token.Foreach) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "as") + p.write([]byte("as")) if nn.Key != nil { if nn.Key.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Key) p.printFreeFloating(nn, token.Key) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } else { if nn.Var.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") + p.write([]byte(":")) s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "endforeach") + p.write([]byte("endforeach")) p.printFreeFloating(nn, token.AltEnd) p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2060,20 +2067,20 @@ func (p *Printer) printStmtCatch(n ast.Vertex) { nn := n.(*ast.StmtCatch) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "catch") + p.write([]byte("catch")) p.printFreeFloating(nn, token.Catch) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrintRefactored("|", nn.Types) p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2085,37 +2092,37 @@ func (p *Printer) printStmtClassMethod(n ast.Vertex) { if nn.Modifiers != nil { for k, m := range nn.Modifiers { if k > 0 && m.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(m) } if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.printFreeFloating(nn, token.ModifierList) - io.WriteString(p.w, "function") + p.write([]byte("function")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "&") + p.write([]byte("&")) p.printFreeFloating(nn, token.Ampersand) } else { if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.MethodName) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParameterList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { @@ -2136,17 +2143,17 @@ func (p *Printer) printStmtClass(n ast.Vertex) { if nn.Modifiers != nil { for k, m := range nn.Modifiers { if k > 0 && m.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(m) } if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.printFreeFloating(nn, token.ModifierList) - io.WriteString(p.w, "class") + p.write([]byte("class")) if nn.ClassName != nil { p.bufStart = " " @@ -2162,9 +2169,9 @@ func (p *Printer) printStmtClass(n ast.Vertex) { if nn.Extends != nil { p.printFreeFloating(nn.Extends, token.Start) if nn.Extends.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "extends") + p.write([]byte("extends")) p.bufStart = " " p.Print(nn.Extends.ClassName) } @@ -2172,19 +2179,19 @@ func (p *Printer) printStmtClass(n ast.Vertex) { if nn.Implements != nil { p.printFreeFloating(nn.Implements, token.Start) if nn.Implements.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "implements") + p.write([]byte("implements")) p.bufStart = " " p.joinPrintRefactored(",", nn.Implements.InterfaceNames) } p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2227,27 +2234,27 @@ func (p *Printer) printStmtDeclare(n ast.Vertex) { nn := n.(*ast.StmtDeclare) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "declare") + p.write([]byte("declare")) p.printFreeFloating(nn, token.Declare) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrintRefactored(",", nn.Consts) p.printFreeFloating(nn, token.ConstList) - io.WriteString(p.w, ")") + p.write([]byte(")")) if nn.Alt { p.printFreeFloating(nn, token.Cond) - io.WriteString(p.w, ":") + p.write([]byte(":")) s := nn.Stmt.(*ast.StmtStmtList) p.printNodes(s.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "enddeclare") + p.write([]byte("enddeclare")) p.printFreeFloating(nn, token.AltEnd) p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } } else { p.Print(nn.Stmt) @@ -2275,28 +2282,11 @@ func (p *Printer) printStmtDo(n *ast.StmtDo) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtEcho(n ast.Vertex) { - nn := n.(*ast.StmtEcho) - - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "echo") - } - if nn.Exprs[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") - } - - p.printFreeFloating(nn, token.Start) - p.printFreeFloating(nn, token.Echo) - - p.joinPrint(",", nn.Exprs) - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtEcho(n *ast.StmtEcho) { + p.printToken(n.EchoTkn, "echo") + p.bufStart = " " + p.printSeparatedList(n.Exprs, n.SeparatorTkns, ",") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtElseif(n *ast.StmtElseIf) { @@ -2358,7 +2348,7 @@ func (p *Printer) printStmtExpression(n ast.Vertex) { p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2368,12 +2358,12 @@ func (p *Printer) printStmtFinally(n ast.Vertex) { nn := n.(*ast.StmtFinally) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "finally") + p.write([]byte("finally")) p.printFreeFloating(nn, token.Finally) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2410,7 +2400,7 @@ func (p *Printer) printStmtAltFor(n *ast.StmtFor) { if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { p.printNodes(stmtList.Stmts) } else { - p.printNode(n.Stmt) + p.Print(n.Stmt) } p.printToken(n.EndForTkn, "endfor") @@ -2421,34 +2411,34 @@ func (p *Printer) printStmtForeach(n ast.Vertex) { nn := n.(*ast.StmtForeach) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "foreach") + p.write([]byte("foreach")) p.printFreeFloating(nn, token.Foreach) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "as") + p.write([]byte("as")) if nn.Key != nil { if nn.Key.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Key) p.printFreeFloating(nn, token.Key) - io.WriteString(p.w, "=>") + p.write([]byte("=>")) } else { if nn.Var.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.Var) p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.Print(nn.Stmt) @@ -2459,27 +2449,27 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { nn := n.(*ast.StmtFunction) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "function") + p.write([]byte("function")) p.printFreeFloating(nn, token.Function) if nn.ReturnsRef { if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "&") + p.write([]byte("&")) } else { if nn.FunctionName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } } p.Print(nn.FunctionName) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Params) p.printFreeFloating(nn, token.ParamList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.Params) if nn.ReturnType != nil { @@ -2488,10 +2478,10 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { } p.printFreeFloating(nn, token.ReturnType) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2507,16 +2497,16 @@ func (p *Printer) printStmtGoto(n ast.Vertex) { nn := n.(*ast.StmtGoto) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "goto") + p.write([]byte("goto")) if nn.Label.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Label) p.printFreeFloating(nn, token.Label) p.printFreeFloating(nn, token.SemiColon) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2569,12 +2559,12 @@ func (p *Printer) printStmtInlineHTML(n ast.Vertex) { nn := n.(*ast.StmtInlineHtml) p.printFreeFloating(nn, token.Start) - if p.s == PhpState && nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, "?>") + if p.s == PhpState && !bytes.Contains(p.lastWrite, []byte("?>")) { + p.write([]byte("?>")) } p.SetState(HtmlState) - io.WriteString(p.w, string(nn.Value)) + p.write(nn.Value) p.printFreeFloating(nn, token.End) } @@ -2583,10 +2573,10 @@ func (p *Printer) printStmtInterface(n ast.Vertex) { nn := n.(*ast.StmtInterface) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "interface") + p.write([]byte("interface")) if nn.InterfaceName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.InterfaceName) @@ -2594,18 +2584,18 @@ func (p *Printer) printStmtInterface(n ast.Vertex) { if nn.Extends != nil { p.printFreeFloating(nn.Extends, token.Start) if nn.Extends.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "extends") + p.write([]byte("extends")) p.bufStart = " " p.joinPrintRefactored(",", nn.Extends.InterfaceNames) } p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2617,7 +2607,7 @@ func (p *Printer) printStmtLabel(n ast.Vertex) { p.Print(nn.LabelName) p.printFreeFloating(nn, token.Label) - io.WriteString(p.w, ":") + p.write([]byte(":")) p.printFreeFloating(nn, token.End) } @@ -2650,7 +2640,7 @@ func (p *Printer) printStmtNop(n ast.Vertex) { p.printFreeFloatingOrDefault(n, token.Start, p.bufStart) p.printFreeFloating(n, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(n, token.End) } @@ -2661,7 +2651,7 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { for k, m := range nn.Modifiers { if k > 0 && m.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(m) } @@ -2672,7 +2662,7 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { } if nn.Properties[0].GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.joinPrint(",", nn.Properties) @@ -2680,7 +2670,7 @@ func (p *Printer) printStmtPropertyList(n ast.Vertex) { p.printFreeFloating(n, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2694,7 +2684,7 @@ func (p *Printer) printStmtProperty(n ast.Vertex) { if nn.Expr != nil { p.printFreeFloating(nn, token.Var) - io.WriteString(p.w, "=") + p.write([]byte("=")) p.Print(nn.Expr) } @@ -2766,16 +2756,16 @@ func (p *Printer) printStmtThrow(n ast.Vertex) { nn := n.(*ast.StmtThrow) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "throw") + p.write([]byte("throw")) if nn.Expr.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Expr) p.printFreeFloating(nn, token.Expr) p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2785,10 +2775,10 @@ func (p *Printer) printStmtTraitAdaptationList(n ast.Vertex) { nn := n.(*ast.StmtTraitAdaptationList) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Adaptations) p.printFreeFloating(nn, token.AdaptationList) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2800,7 +2790,7 @@ func (p *Printer) printStmtTraitMethodRef(n ast.Vertex) { if nn.Trait != nil { p.Print(nn.Trait) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "::") + p.write([]byte("::")) } p.Print(nn.Method) @@ -2816,20 +2806,20 @@ func (p *Printer) printStmtTraitUseAlias(n ast.Vertex) { p.printFreeFloating(nn, token.Ref) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "as") + p.write([]byte("as")) if nn.Modifier != nil { if nn.Modifier.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Modifier) } if nn.Alias != nil { if nn.Alias.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.Alias) } @@ -2837,7 +2827,7 @@ func (p *Printer) printStmtTraitUseAlias(n ast.Vertex) { p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2850,17 +2840,17 @@ func (p *Printer) printStmtTraitUsePrecedence(n ast.Vertex) { p.Print(nn.Ref) p.printFreeFloating(nn, token.Ref) if nn.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } - io.WriteString(p.w, "insteadof") + p.write([]byte("insteadof")) p.bufStart = " " p.joinPrint(",", nn.Insteadof) p.printFreeFloating(nn, token.NameList) p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -2870,7 +2860,7 @@ func (p *Printer) printStmtTraitUse(n ast.Vertex) { nn := n.(*ast.StmtTraitUse) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "use") + p.write([]byte("use")) p.bufStart = " " p.joinPrintRefactored(",", nn.Traits) @@ -2883,17 +2873,17 @@ func (p *Printer) printStmtTrait(n ast.Vertex) { nn := n.(*ast.StmtTrait) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "trait") + p.write([]byte("trait")) if nn.TraitName.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, " ") + p.write([]byte(" ")) } p.Print(nn.TraitName) p.printFreeFloating(nn, token.Name) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) p.printFreeFloating(nn, token.End) } @@ -2902,12 +2892,12 @@ func (p *Printer) printStmtTry(n ast.Vertex) { nn := n.(*ast.StmtTry) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "try") + p.write([]byte("try")) p.printFreeFloating(nn, token.Try) - io.WriteString(p.w, "{") + p.write([]byte("{")) p.printNodes(nn.Stmts) p.printFreeFloating(nn, token.Stmts) - io.WriteString(p.w, "}") + p.write([]byte("}")) if nn.Catches != nil { p.printNodes(nn.Catches) @@ -2924,17 +2914,17 @@ func (p *Printer) printStmtUnset(n ast.Vertex) { nn := n.(*ast.StmtUnset) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "unset") + p.write([]byte("unset")) p.printFreeFloating(nn, token.Unset) - io.WriteString(p.w, "(") + p.write([]byte("(")) p.joinPrint(",", nn.Vars) p.printFreeFloating(nn, token.VarList) - io.WriteString(p.w, ")") + p.write([]byte(")")) p.printFreeFloating(nn, token.CloseParenthesisToken) p.printFreeFloating(nn, token.SemiColon) if n.GetNode().Tokens.IsEmpty() { - io.WriteString(p.w, ";") + p.write([]byte(";")) } p.printFreeFloating(nn, token.End) @@ -3033,7 +3023,7 @@ func (p *Printer) printParserAs(n ast.Vertex) { nn := n.(*ast.ParserAs) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "as") + p.write([]byte("as")) p.Print(nn.Child) p.printFreeFloating(nn, token.End) @@ -3043,7 +3033,7 @@ func (p *Printer) printParserNsSeparator(n ast.Vertex) { nn := n.(*ast.ParserNsSeparator) p.printFreeFloating(nn, token.Start) - io.WriteString(p.w, "\\") + p.write([]byte("\\")) p.Print(nn.Child) p.printFreeFloating(nn, token.End) diff --git a/pkg/printer/printer_parsed_php5_test.go b/pkg/printer/printer_parsed_php5_test.go index 8a2ee8d..75dfafa 100644 --- a/pkg/printer/printer_parsed_php5_test.go +++ b/pkg/printer/printer_parsed_php5_test.go @@ -45,7 +45,6 @@ func TestParseAndPrintPhp5Root(t *testing.T) { } func TestParseAndPrintPhp5Identifier(t *testing.T) { - // TODO: remove ; after HTML")}, - &ast.StmtExpression{ - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Tokens: token.Collection{ - token.Start: []*token.Token{ - { - ID: token.ID('$'), - Value: []byte("$"), - }, - }, - }, - }, - VarName: &ast.Identifier{ - Value: []byte("a"), + &ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ScalarString{ + Value: []byte(`"a"`), }, }, }, &ast.StmtInlineHtml{Value: []byte("
HTML
")}, - &ast.StmtExpression{ - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Tokens: token.Collection{ - token.Start: []*token.Token{ - { - ID: token.ID('$'), - Value: []byte("$"), - }, - }, - }, - }, - VarName: &ast.Identifier{ - Value: []byte("a"), + &ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ScalarString{ + Value: []byte(`"b"`), }, }, }, }, }) - expected := `
HTML
HTML
HTML
HTML
Date: Mon, 14 Sep 2020 16:36:01 +0300 Subject: [PATCH 060/140] [refactoring] update ast structure of "InlinHtml" node --- internal/php5/php5.go | 14 +++++++------- internal/php5/php5.y | 14 +++++++------- internal/php7/php7.go | 14 +++++++------- internal/php7/php7.y | 14 +++++++------- pkg/ast/node.go | 3 ++- pkg/ast/visitor/filter_tokens.go | 4 ++++ pkg/printer/printer.go | 9 ++------- 7 files changed, 36 insertions(+), 36 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 5392ff0..e87357e 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -3190,13 +3190,13 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:1064 { - yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + InlineHtmlTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 66: yyDollar = yyS[yypt-2 : yypt+1] diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 343df17..fb42de1 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1062,13 +1062,13 @@ unticked_statement: } | T_INLINE_HTML { - $$ = &ast.StmtInlineHtml{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + InlineHtmlTkn: $1, + Value: $1.Value, + } } | expr ';' { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 4734582..ab2cdc4 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -3314,13 +3314,13 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:978 { - yyVAL.node = &ast.StmtInlineHtml{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + InlineHtmlTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 146: yyDollar = yyS[yypt-2 : yypt+1] diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 6f37de7..613408f 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -976,13 +976,13 @@ statement: } | T_INLINE_HTML { - $$ = &ast.StmtInlineHtml{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtInlineHtml{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + InlineHtmlTkn: $1, + Value: $1.Value, + } } | expr ';' { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 16aa214..e83b438 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -535,7 +535,8 @@ func (n *StmtIf) Accept(v NodeVisitor) { // StmtInlineHtml node type StmtInlineHtml struct { Node - Value []byte + InlineHtmlTkn *token.Token + Value []byte } func (n *StmtInlineHtml) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index ef9f1b3..f3c440e 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -200,3 +200,7 @@ func (v *FilterTokens) StmtEcho(n *ast.StmtEcho) { n.SeparatorTkns = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtInlineHtml(n *ast.StmtInlineHtml) { + n.InlineHtmlTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 20df694..b35840d 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2555,18 +2555,13 @@ func (p *Printer) printStmtAltIf(n *ast.StmtIf) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtInlineHTML(n ast.Vertex) { - nn := n.(*ast.StmtInlineHtml) - p.printFreeFloating(nn, token.Start) - +func (p *Printer) printStmtInlineHTML(n *ast.StmtInlineHtml) { if p.s == PhpState && !bytes.Contains(p.lastWrite, []byte("?>")) { p.write([]byte("?>")) } p.SetState(HtmlState) - p.write(nn.Value) - - p.printFreeFloating(nn, token.End) + p.printToken(n.InlineHtmlTkn, string(n.Value)) } func (p *Printer) printStmtInterface(n ast.Vertex) { From 62fc16da974d43f12356ec476e67f3d6e537b096 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 14 Sep 2020 17:19:17 +0300 Subject: [PATCH 061/140] [refactoring] update ast structure of "Unset" node --- internal/php5/php5.go | 1080 ++++++++++++++-------------- internal/php5/php5.y | 30 +- internal/php7/php7.go | 1125 +++++++++++++++--------------- internal/php7/php7.y | 34 +- pkg/ast/node.go | 7 +- pkg/ast/visitor/filter_tokens.go | 9 + pkg/printer/printer.go | 24 +- 7 files changed, 1149 insertions(+), 1160 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index e87357e..324e992 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6192 +// line internal/php5/php5.y:6190 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -706,9 +706,9 @@ var yyAct = [...]int{ 920, 39, 903, 920, 260, 261, 483, 896, 260, 261, 448, 839, 944, 836, 566, 231, 948, 231, 1006, 949, 531, 842, 1005, 449, 725, 39, 232, 843, 232, 192, - 841, 39, 394, 946, 260, 261, 389, 341, 698, 538, - 929, 519, 290, 460, 318, 973, 314, 127, 403, 575, - 519, 401, 335, 945, 1009, 343, 939, 519, 519, 519, + 841, 39, 394, 946, 260, 261, 341, 698, 538, 929, + 290, 519, 460, 318, 314, 973, 127, 403, 575, 401, + 519, 335, 945, 1009, 343, 389, 939, 519, 519, 519, 519, 519, 164, 157, 161, 231, 528, 608, 531, 997, 970, 179, 182, 183, 991, 969, 232, 968, 189, 191, 967, 848, 849, 850, 847, 846, 845, 519, 838, 837, @@ -1606,10 +1606,10 @@ var yyPgo = [...]int{ 7, 1135, 52, 43, 42, 1134, 1132, 1131, 31, 1128, 1121, 4, 1120, 1119, 1114, 16, 1111, 1110, 1109, 1108, 48, 5, 1100, 1097, 1095, 1090, 1089, 2, 1087, 607, - 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 1074, 12, - 1073, 1072, 6, 19, 1071, 1069, 1068, 9, 50, 0, - 1067, 1066, 1064, 117, 599, 1063, 1062, 62, 8, 1060, - 1059, 1058, 1057, 14, 47, 1056, 1052, 1044, 1042, 1038, + 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 1074, 1073, + 12, 1072, 1071, 6, 19, 1069, 1068, 1067, 9, 50, + 0, 1066, 1064, 1063, 117, 599, 1062, 1060, 62, 8, + 1059, 1058, 1057, 1056, 14, 47, 1052, 1044, 1042, 1038, 3, 1034, 23, 1033, 1031, 1027, 35, 1026, 1022, 1019, 1018, 1014, 1008, 1002, 25, 1001, 1000, 999, 24, 996, 15, 17, 993, 34, 992, 991, 986, 984, 177, 13, @@ -1617,29 +1617,29 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 98, 98, 99, 99, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 100, 100, - 6, 6, 6, 6, 101, 101, 7, 7, 7, 7, - 102, 102, 8, 8, 8, 8, 55, 55, 103, 103, + 0, 151, 99, 99, 100, 100, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 101, 101, + 6, 6, 6, 6, 102, 102, 7, 7, 7, 7, + 103, 103, 8, 8, 8, 8, 55, 55, 104, 104, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 117, 117, 60, 60, 118, - 118, 119, 119, 61, 115, 115, 58, 53, 54, 149, + 118, 119, 119, 61, 87, 87, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 94, 94, 2, 96, 96, 95, 95, 126, 126, 93, - 93, 92, 92, 92, 90, 90, 89, 89, 59, 59, - 116, 116, 87, 87, 87, 87, 114, 114, 114, 4, - 4, 91, 91, 110, 110, 111, 111, 56, 56, 57, + 95, 95, 2, 97, 97, 96, 96, 126, 126, 94, + 94, 93, 93, 93, 91, 91, 90, 90, 59, 59, + 116, 116, 88, 88, 88, 88, 115, 115, 115, 4, + 4, 92, 92, 111, 111, 112, 112, 56, 56, 57, 57, 120, 120, 121, 121, 65, 65, 64, 64, 64, 64, 84, 84, 84, 127, 127, 70, 70, 70, 70, 82, 82, 29, 29, 29, 81, 81, 81, 81, 122, 122, 67, 67, 67, 67, 69, 128, 128, 86, 86, 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 88, 88, 123, 123, + 75, 74, 73, 73, 76, 76, 89, 89, 123, 123, 124, 124, 132, 132, 77, 77, 77, 77, 77, 77, - 125, 125, 125, 125, 68, 68, 85, 85, 113, 113, - 112, 112, 138, 138, 136, 136, 137, 137, 137, 139, + 125, 125, 125, 125, 68, 68, 85, 85, 114, 114, + 113, 113, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1648,8 +1648,8 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 97, 97, 109, - 109, 109, 109, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 98, 98, 110, + 110, 110, 110, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1664,11 +1664,11 @@ var yyR1 = [...]int{ 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 108, 108, 40, 40, - 40, 107, 107, 106, 106, 106, 106, 106, 106, 106, - 106, 104, 104, 104, 104, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 109, 109, 40, 40, + 40, 108, 108, 107, 107, 107, 107, 107, 107, 107, + 107, 105, 105, 105, 105, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 105, 105, 38, 38, 32, 32, 33, + 39, 39, 39, 106, 106, 38, 38, 32, 32, 33, 34, } var yyR2 = [...]int{ @@ -1729,7 +1729,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -98, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -99, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1739,10 +1739,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -99, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -100, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -99, 144, 83, 10, -100, 37, 39, - -6, -99, 83, 146, 160, 147, 10, -103, -50, 148, + 159, 12, 148, -100, 144, 83, 10, -101, 37, 39, + -6, -100, 83, 146, 160, 147, 10, -104, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1751,87 +1751,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -99, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -100, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -133, 17, -104, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -99, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -105, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -100, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -104, 17, 17, 76, -104, 150, 148, -107, - -106, -16, 153, 150, 150, 83, -84, 148, -99, 79, + -16, 150, -105, 17, 17, 76, -105, 150, 148, -108, + -107, -16, 153, 150, 150, 83, -84, 148, -100, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -98, -99, 146, 160, -101, -7, -99, 83, -102, -8, - -99, 83, 29, -99, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -91, -27, 147, 21, -149, - -113, -112, -16, -87, 144, 147, 146, 146, 146, 146, + -99, -100, 146, 160, -102, -7, -100, 83, -103, -8, + -100, 83, 29, -100, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -92, -27, 147, 21, -149, + -114, -113, -16, -88, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -45, -16, 147, -115, - -58, -21, -21, -17, -116, 10, -103, 146, 146, 10, - 148, -94, 56, -96, 56, 59, -16, 153, -16, -16, + -16, -16, -16, -16, -16, -16, -45, -16, 147, -87, + -58, -21, -21, -17, -116, 10, -104, 146, 146, 10, + 148, -95, 56, -97, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -108, -40, -21, 60, 83, -99, 79, 79, 149, 149, + -109, -40, -21, 60, 83, -100, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -99, 58, -12, 79, - -105, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -107, 151, -3, 160, 59, -19, -21, -15, + 10, 144, -83, -84, 79, 83, -100, 58, -12, 79, + -106, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -108, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -127, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -98, 145, -84, -6, 146, 160, 29, -99, - 146, 160, 29, -99, 10, 29, 162, -30, -79, -9, - -33, -99, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -110, -103, - -103, -50, 146, 160, -114, 146, -114, 146, -29, -16, + -16, 146, -99, 145, -84, -6, 146, 160, 29, -100, + 146, 160, 29, -100, 10, 29, 162, -30, -79, -9, + -33, -100, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -111, -104, + -104, -50, 146, 160, -115, 146, -115, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -120, -121, -65, -64, 61, - 62, -47, -99, 80, 83, -95, 57, -47, 144, -126, - -47, -17, -21, -21, 92, 149, 160, 148, -99, -139, + 62, -47, -100, 80, 83, -96, 57, -47, 144, -126, + -47, -17, -21, -21, 92, 149, 160, 148, -100, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -99, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -100, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -99, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -111, 22, - 146, -113, -16, 145, 32, 33, -114, 31, -114, 145, - 162, -120, -16, 146, -58, -92, -21, 153, 60, -92, + 152, 83, -100, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -112, 22, + 146, -114, -16, 145, 32, 33, -115, 31, -115, 145, + 162, -120, -16, 146, -58, -93, -21, 153, 60, -93, -59, -27, 147, 10, -30, -117, 42, -120, 149, 160, - -149, 83, -99, 144, -126, -122, 160, -45, 162, -40, - -108, 150, -138, -140, -15, -143, 151, -16, -147, 150, + -149, 83, -100, 144, -126, -122, 160, -45, 162, -40, + -109, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -99, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -100, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -93, 59, -21, 148, - -93, -103, 162, -60, 43, 148, 149, -97, 45, -65, - -150, 84, -99, -122, 145, -67, -123, -68, -69, -124, + 146, 145, 146, 31, -30, 149, -94, 59, -21, 148, + -94, -104, 162, -60, 43, 148, 149, -98, 45, -65, + -150, 84, -100, -122, 145, -67, -123, -68, -69, -124, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -113, -4, - -103, 146, -97, 149, -92, -108, 149, 28, -30, 144, + 147, 149, -79, -79, -27, 96, -50, 147, -114, -4, + -104, 146, -98, 149, -93, -109, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -125, 12, 146, 160, -1, -77, 10, -128, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -103, 149, -103, 144, -89, - -27, 147, 149, -89, 146, -103, 12, -103, -103, -109, + -19, -79, 59, 146, 147, -104, 149, -104, 144, -90, + -27, 147, 149, -90, 146, -104, 12, -104, -104, -110, 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, - 160, 146, 144, -79, -103, -90, -27, 147, -103, -103, + 160, 146, 144, -79, -104, -91, -27, 147, -104, -104, 145, 149, 145, 145, 149, 160, 12, -30, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -103, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -104, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -103, 12, -30, -120, -131, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -118, -119, -61, 42, -88, - 146, 144, -47, -61, 148, -103, -47, 145, 12, 149, - 144, -103, 145, + 146, -104, 12, -30, -120, -131, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -118, -119, -61, 42, -89, + 146, 144, -47, -61, 148, -104, -47, 145, 12, 149, + 144, -104, 145, } var yyDef = [...]int{ @@ -3216,21 +3216,17 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php5/php5.y:1086 { - yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} + yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token + yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token + yyDollar[3].node.(*ast.StmtUnset).CloseParenthesisTkn = yyDollar[4].token + yyDollar[3].node.(*ast.StmtUnset).SemiColonTkn = yyDollar[5].token + yyDollar[3].node.(*ast.StmtUnset).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[5].token.SkippedTokens) + yyVAL.node = yyDollar[3].node } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1100 + // line internal/php5/php5.y:1096 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3271,7 +3267,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1138 + // line internal/php5/php5.y:1134 { if yyDollar[6].node == nil { switch n := yyDollar[8].node.(type) { @@ -3312,7 +3308,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1176 + // line internal/php5/php5.y:1172 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3327,7 +3323,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1189 + // line internal/php5/php5.y:1185 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3340,7 +3336,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1200 + // line internal/php5/php5.y:1196 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3358,7 +3354,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1216 + // line internal/php5/php5.y:1212 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3372,7 +3368,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1228 + // line internal/php5/php5.y:1224 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3389,13 +3385,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1246 + // line internal/php5/php5.y:1242 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1250 + // line internal/php5/php5.y:1246 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3417,13 +3413,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1273 + // line internal/php5/php5.y:1269 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1277 + // line internal/php5/php5.y:1273 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3437,31 +3433,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1292 + // line internal/php5/php5.y:1288 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1296 + // line internal/php5/php5.y:1292 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1303 + // line internal/php5/php5.y:1299 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1307 + // line internal/php5/php5.y:1303 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1314 + // line internal/php5/php5.y:1310 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3482,64 +3478,66 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1336 + // line internal/php5/php5.y:1332 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtUnset{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1340 + // line internal/php5/php5.y:1338 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1350 + // line internal/php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1357 + // line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1364 + // line internal/php5/php5.y:1362 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1371 + // line internal/php5/php5.y:1369 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1375 + // line internal/php5/php5.y:1373 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1382 + // line internal/php5/php5.y:1380 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1386 + // line internal/php5/php5.y:1384 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1393 + // line internal/php5/php5.y:1391 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3563,7 +3561,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1418 + // line internal/php5/php5.y:1416 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3591,7 +3589,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1444 + // line internal/php5/php5.y:1442 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3608,7 +3606,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1463 + // line internal/php5/php5.y:1461 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3620,7 +3618,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1471 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3635,7 +3633,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1486 + // line internal/php5/php5.y:1484 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3647,7 +3645,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1496 + // line internal/php5/php5.y:1494 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3662,13 +3660,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1512 + // line internal/php5/php5.y:1510 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1516 + // line internal/php5/php5.y:1514 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3680,19 +3678,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1529 + // line internal/php5/php5.y:1527 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1536 + // line internal/php5/php5.y:1534 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1540 + // line internal/php5/php5.y:1538 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3704,13 +3702,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1553 + // line internal/php5/php5.y:1551 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1555 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3722,13 +3720,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1570 + // line internal/php5/php5.y:1568 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1574 + // line internal/php5/php5.y:1572 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3742,13 +3740,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1586 + // line internal/php5/php5.y:1584 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1590 + // line internal/php5/php5.y:1588 { yyVAL.node = yyDollar[2].node @@ -3757,13 +3755,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1600 + // line internal/php5/php5.y:1598 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1604 + // line internal/php5/php5.y:1602 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3775,7 +3773,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1614 + // line internal/php5/php5.y:1612 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3789,7 +3787,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1629 + // line internal/php5/php5.y:1627 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3800,7 +3798,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1638 + // line internal/php5/php5.y:1636 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3820,7 +3818,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1659 + // line internal/php5/php5.y:1657 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3829,7 +3827,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1666 + // line internal/php5/php5.y:1664 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3850,7 +3848,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1689 + // line internal/php5/php5.y:1687 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3859,7 +3857,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1696 + // line internal/php5/php5.y:1694 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3880,7 +3878,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1719 + // line internal/php5/php5.y:1717 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3902,7 +3900,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1739 + // line internal/php5/php5.y:1737 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3923,7 +3921,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1762 + // line internal/php5/php5.y:1760 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3936,7 +3934,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1771 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3950,7 +3948,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1785 + // line internal/php5/php5.y:1783 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3965,7 +3963,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1798 + // line internal/php5/php5.y:1796 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3981,13 +3979,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1816 + // line internal/php5/php5.y:1814 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1820 + // line internal/php5/php5.y:1818 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4001,7 +3999,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1832 + // line internal/php5/php5.y:1830 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4014,19 +4012,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1847 + // line internal/php5/php5.y:1845 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1851 + // line internal/php5/php5.y:1849 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1859 + // line internal/php5/php5.y:1857 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4037,7 +4035,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1868 + // line internal/php5/php5.y:1866 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,13 +4055,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1891 + // line internal/php5/php5.y:1889 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1895 + // line internal/php5/php5.y:1893 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4078,13 +4076,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1912 + // line internal/php5/php5.y:1910 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1916 + // line internal/php5/php5.y:1914 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4106,13 +4104,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1940 + // line internal/php5/php5.y:1938 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1944 + // line internal/php5/php5.y:1942 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4124,13 +4122,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1958 + // line internal/php5/php5.y:1956 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1962 + // line internal/php5/php5.y:1960 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4149,25 +4147,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1983 + // line internal/php5/php5.y:1981 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1987 + // line internal/php5/php5.y:1985 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1994 + // line internal/php5/php5.y:1992 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1998 + // line internal/php5/php5.y:1996 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4176,7 +4174,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2008 + // line internal/php5/php5.y:2006 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4212,7 +4210,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2042 + // line internal/php5/php5.y:2040 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4249,13 +4247,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2081 + // line internal/php5/php5.y:2079 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2085 + // line internal/php5/php5.y:2083 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4267,7 +4265,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2095 + // line internal/php5/php5.y:2093 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4279,13 +4277,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2105 + // line internal/php5/php5.y:2103 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2113 + // line internal/php5/php5.y:2111 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4298,7 +4296,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2122 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4311,7 +4309,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2135 + // line internal/php5/php5.y:2133 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4326,13 +4324,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2152 + // line internal/php5/php5.y:2150 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2156 + // line internal/php5/php5.y:2154 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4341,7 +4339,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2166 + // line internal/php5/php5.y:2164 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4353,7 +4351,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2176 + // line internal/php5/php5.y:2174 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4365,7 +4363,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2186 + // line internal/php5/php5.y:2184 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4377,7 +4375,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2196 + // line internal/php5/php5.y:2194 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4389,7 +4387,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2209 + // line internal/php5/php5.y:2207 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4398,7 +4396,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2216 + // line internal/php5/php5.y:2214 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4406,7 +4404,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2226 + // line internal/php5/php5.y:2224 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4420,7 +4418,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2238 + // line internal/php5/php5.y:2236 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4432,7 +4430,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2248 + // line internal/php5/php5.y:2246 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4446,7 +4444,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2264 + // line internal/php5/php5.y:2262 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4470,7 +4468,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2286 + // line internal/php5/php5.y:2284 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4496,7 +4494,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2310 + // line internal/php5/php5.y:2308 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4521,7 +4519,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2333 + // line internal/php5/php5.y:2331 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4548,19 +4546,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2362 + // line internal/php5/php5.y:2360 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2366 + // line internal/php5/php5.y:2364 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2374 + // line internal/php5/php5.y:2372 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4574,7 +4572,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2386 + // line internal/php5/php5.y:2384 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4582,13 +4580,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2392 + // line internal/php5/php5.y:2390 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2396 + // line internal/php5/php5.y:2394 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4619,7 +4617,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2428 + // line internal/php5/php5.y:2426 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4631,13 +4629,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2441 + // line internal/php5/php5.y:2439 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2445 + // line internal/php5/php5.y:2443 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4651,7 +4649,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2457 + // line internal/php5/php5.y:2455 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4663,7 +4661,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2467 + // line internal/php5/php5.y:2465 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4675,31 +4673,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2480 + // line internal/php5/php5.y:2478 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2484 + // line internal/php5/php5.y:2482 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2491 + // line internal/php5/php5.y:2489 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2495 + // line internal/php5/php5.y:2493 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2502 + // line internal/php5/php5.y:2500 { yyVAL.node = yyDollar[1].node @@ -4709,7 +4707,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2510 + // line internal/php5/php5.y:2508 { yyVAL.node = yyDollar[1].node @@ -4719,7 +4717,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2521 + // line internal/php5/php5.y:2519 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4732,13 +4730,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2535 + // line internal/php5/php5.y:2533 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2539 + // line internal/php5/php5.y:2537 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4747,7 +4745,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2549 + // line internal/php5/php5.y:2547 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4761,13 +4759,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2561 + // line internal/php5/php5.y:2559 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2566 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4783,7 +4781,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2585 + // line internal/php5/php5.y:2583 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4799,7 +4797,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2599 + // line internal/php5/php5.y:2597 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4812,19 +4810,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2613 + // line internal/php5/php5.y:2611 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2617 + // line internal/php5/php5.y:2615 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2624 + // line internal/php5/php5.y:2622 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4837,7 +4835,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2635 + // line internal/php5/php5.y:2633 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4850,13 +4848,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2649 + // line internal/php5/php5.y:2647 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2653 + // line internal/php5/php5.y:2651 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4869,31 +4867,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2667 + // line internal/php5/php5.y:2665 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2671 + // line internal/php5/php5.y:2669 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2676 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2682 + // line internal/php5/php5.y:2680 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2689 + // line internal/php5/php5.y:2687 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4905,7 +4903,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2699 + // line internal/php5/php5.y:2697 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4917,7 +4915,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2709 + // line internal/php5/php5.y:2707 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4929,7 +4927,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2719 + // line internal/php5/php5.y:2717 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4941,7 +4939,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2729 + // line internal/php5/php5.y:2727 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4953,7 +4951,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2739 + // line internal/php5/php5.y:2737 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4965,7 +4963,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2752 + // line internal/php5/php5.y:2750 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4983,7 +4981,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2768 + // line internal/php5/php5.y:2766 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5002,7 +5000,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2785 + // line internal/php5/php5.y:2783 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5019,7 +5017,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2800 + // line internal/php5/php5.y:2798 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5037,7 +5035,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2819 + // line internal/php5/php5.y:2817 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5062,7 +5060,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2842 + // line internal/php5/php5.y:2840 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5090,7 +5088,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2871 + // line internal/php5/php5.y:2869 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5099,7 +5097,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2878 + // line internal/php5/php5.y:2876 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5107,19 +5105,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2888 + // line internal/php5/php5.y:2886 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2892 + // line internal/php5/php5.y:2890 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2899 + // line internal/php5/php5.y:2897 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5128,25 +5126,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2906 + // line internal/php5/php5.y:2904 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2913 + // line internal/php5/php5.y:2911 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2917 + // line internal/php5/php5.y:2915 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2924 + // line internal/php5/php5.y:2922 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5160,7 +5158,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2936 + // line internal/php5/php5.y:2934 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5174,37 +5172,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2951 + // line internal/php5/php5.y:2949 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2955 + // line internal/php5/php5.y:2953 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2959 + // line internal/php5/php5.y:2957 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2966 + // line internal/php5/php5.y:2964 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2970 + // line internal/php5/php5.y:2968 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2977 + // line internal/php5/php5.y:2975 { if yyDollar[3].node != nil { @@ -5220,7 +5218,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2994 + // line internal/php5/php5.y:2992 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5237,7 +5235,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3009 + // line internal/php5/php5.y:3007 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5250,7 +5248,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3020 + // line internal/php5/php5.y:3018 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5264,7 +5262,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3032 + // line internal/php5/php5.y:3030 { var _new *ast.ExprNew @@ -5291,7 +5289,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3057 + // line internal/php5/php5.y:3055 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5303,7 +5301,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3067 + // line internal/php5/php5.y:3065 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5315,7 +5313,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3077 + // line internal/php5/php5.y:3075 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5328,7 +5326,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3088 + // line internal/php5/php5.y:3086 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5341,7 +5339,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3099 + // line internal/php5/php5.y:3097 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5354,7 +5352,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3110 + // line internal/php5/php5.y:3108 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5367,7 +5365,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3121 + // line internal/php5/php5.y:3119 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5380,7 +5378,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3132 + // line internal/php5/php5.y:3130 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5393,7 +5391,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3143 + // line internal/php5/php5.y:3141 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5406,7 +5404,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3154 + // line internal/php5/php5.y:3152 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5417,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3165 + // line internal/php5/php5.y:3163 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5432,7 +5430,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3176 + // line internal/php5/php5.y:3174 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5445,7 +5443,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3187 + // line internal/php5/php5.y:3185 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5458,7 +5456,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3198 + // line internal/php5/php5.y:3196 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5471,7 +5469,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3209 + // line internal/php5/php5.y:3207 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5483,7 +5481,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3219 + // line internal/php5/php5.y:3217 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5496,7 +5494,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3230 + // line internal/php5/php5.y:3228 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5508,7 +5506,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3240 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5521,7 +5519,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3251 + // line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5534,7 +5532,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3262 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5547,7 +5545,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3271 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5560,7 +5558,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3284 + // line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5573,7 +5571,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3293 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5586,7 +5584,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3306 + // line internal/php5/php5.y:3304 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5599,7 +5597,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3317 + // line internal/php5/php5.y:3315 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5612,7 +5610,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3326 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5624,7 +5622,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3338 + // line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5637,7 +5635,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3349 + // line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5650,7 +5648,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3360 + // line internal/php5/php5.y:3358 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5663,7 +5661,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3371 + // line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5676,7 +5674,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3382 + // line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5687,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3393 + // line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5700,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3404 + // line internal/php5/php5.y:3402 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5713,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3415 + // line internal/php5/php5.y:3413 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5726,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3426 + // line internal/php5/php5.y:3424 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5740,7 +5738,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3436 + // line internal/php5/php5.y:3434 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5752,7 +5750,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3446 + // line internal/php5/php5.y:3444 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5764,7 +5762,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3456 + // line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5776,7 +5774,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3466 + // line internal/php5/php5.y:3464 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5789,7 +5787,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3477 + // line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5802,7 +5800,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3488 + // line internal/php5/php5.y:3486 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5815,7 +5813,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3499 + // line internal/php5/php5.y:3497 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5829,7 +5827,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3511 + // line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5842,7 +5840,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3522 + // line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5855,7 +5853,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3533 + // line internal/php5/php5.y:3531 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5868,7 +5866,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3544 + // line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5881,7 +5879,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3555 + // line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5894,19 +5892,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3566 + // line internal/php5/php5.y:3564 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3570 + // line internal/php5/php5.y:3568 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3574 + // line internal/php5/php5.y:3572 { yyVAL.node = yyDollar[2].node @@ -5938,7 +5936,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3604 + // line internal/php5/php5.y:3602 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5952,7 +5950,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3616 + // line internal/php5/php5.y:3614 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5966,13 +5964,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3628 + // line internal/php5/php5.y:3626 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3632 + // line internal/php5/php5.y:3630 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5985,7 +5983,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3643 + // line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5998,7 +5996,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3654 + // line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6011,7 +6009,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3665 + // line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6024,7 +6022,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3676 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6037,7 +6035,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3687 + // line internal/php5/php5.y:3685 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6050,7 +6048,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3698 + // line internal/php5/php5.y:3696 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6063,7 +6061,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3709 + // line internal/php5/php5.y:3707 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6083,7 +6081,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3725 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6095,25 +6093,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3735 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3741 + // line internal/php5/php5.y:3739 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3745 + // line internal/php5/php5.y:3743 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3749 + // line internal/php5/php5.y:3747 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6125,7 +6123,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3759 + // line internal/php5/php5.y:3757 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6137,7 +6135,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3769 + // line internal/php5/php5.y:3767 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6149,7 +6147,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3779 + // line internal/php5/php5.y:3777 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6176,7 +6174,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3803 + // line internal/php5/php5.y:3801 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6204,7 +6202,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3831 + // line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6216,7 +6214,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3841 + // line internal/php5/php5.y:3839 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6228,7 +6226,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3849 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6241,7 +6239,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3862 + // line internal/php5/php5.y:3860 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6254,7 +6252,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3876 + // line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6267,7 +6265,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3887 + // line internal/php5/php5.y:3885 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6280,7 +6278,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3898 + // line internal/php5/php5.y:3896 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6296,7 +6294,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3912 + // line internal/php5/php5.y:3910 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6309,7 +6307,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3926 + // line internal/php5/php5.y:3924 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6323,7 +6321,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3938 + // line internal/php5/php5.y:3936 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6336,19 +6334,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3952 + // line internal/php5/php5.y:3950 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3959 + // line internal/php5/php5.y:3957 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3961 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6362,7 +6360,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3978 + // line internal/php5/php5.y:3976 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6378,7 +6376,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3992 + // line internal/php5/php5.y:3990 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6397,7 +6395,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4009 + // line internal/php5/php5.y:4007 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6412,7 +6410,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4022 + // line internal/php5/php5.y:4020 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6430,7 +6428,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4041 + // line internal/php5/php5.y:4039 { name := &ast.NameName{ Node: ast.Node{ @@ -6445,7 +6443,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4054 + // line internal/php5/php5.y:4052 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6462,7 +6460,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4069 + // line internal/php5/php5.y:4067 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6478,7 +6476,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4083 + // line internal/php5/php5.y:4081 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6491,7 +6489,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4094 + // line internal/php5/php5.y:4092 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6504,7 +6502,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4105 + // line internal/php5/php5.y:4103 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6517,7 +6515,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4116 + // line internal/php5/php5.y:4114 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6530,7 +6528,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4127 + // line internal/php5/php5.y:4125 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6542,7 +6540,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4140 + // line internal/php5/php5.y:4138 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6554,7 +6552,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4150 + // line internal/php5/php5.y:4148 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6565,7 +6563,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4159 + // line internal/php5/php5.y:4157 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6578,7 +6576,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4170 + // line internal/php5/php5.y:4168 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6590,7 +6588,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4183 + // line internal/php5/php5.y:4181 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6601,7 +6599,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4192 + // line internal/php5/php5.y:4190 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6614,7 +6612,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4203 + // line internal/php5/php5.y:4201 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6626,19 +6624,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4216 + // line internal/php5/php5.y:4214 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4220 + // line internal/php5/php5.y:4218 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4227 + // line internal/php5/php5.y:4225 { yyVAL.node = yyDollar[1].node @@ -6679,25 +6677,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4264 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4274 + // line internal/php5/php5.y:4272 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4276 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4286 + // line internal/php5/php5.y:4284 { yyVAL.list = yyDollar[2].list @@ -6706,13 +6704,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4296 + // line internal/php5/php5.y:4294 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4300 + // line internal/php5/php5.y:4298 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6728,19 +6726,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4314 + // line internal/php5/php5.y:4312 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4319 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4325 + // line internal/php5/php5.y:4323 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6750,25 +6748,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4333 + // line internal/php5/php5.y:4331 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4338 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4344 + // line internal/php5/php5.y:4342 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4351 + // line internal/php5/php5.y:4349 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6780,7 +6778,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4361 + // line internal/php5/php5.y:4359 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6792,7 +6790,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4371 + // line internal/php5/php5.y:4369 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6804,7 +6802,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4381 + // line internal/php5/php5.y:4379 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6816,7 +6814,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4391 + // line internal/php5/php5.y:4389 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6828,7 +6826,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4401 + // line internal/php5/php5.y:4399 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6840,7 +6838,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4411 + // line internal/php5/php5.y:4409 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6852,7 +6850,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4421 + // line internal/php5/php5.y:4419 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6864,7 +6862,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4431 + // line internal/php5/php5.y:4429 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6876,7 +6874,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4441 + // line internal/php5/php5.y:4439 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6888,7 +6886,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4451 + // line internal/php5/php5.y:4449 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6902,7 +6900,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4463 + // line internal/php5/php5.y:4461 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6914,7 +6912,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4476 + // line internal/php5/php5.y:4474 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6930,25 +6928,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4493 + // line internal/php5/php5.y:4491 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4500 + // line internal/php5/php5.y:4498 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4504 + // line internal/php5/php5.y:4502 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4508 + // line internal/php5/php5.y:4506 { name := &ast.NameName{ Node: ast.Node{ @@ -6963,7 +6961,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4519 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6980,7 +6978,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4536 + // line internal/php5/php5.y:4534 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6996,7 +6994,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4550 + // line internal/php5/php5.y:4548 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7010,7 +7008,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4560 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7023,13 +7021,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4573 + // line internal/php5/php5.y:4571 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4577 + // line internal/php5/php5.y:4575 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7041,13 +7039,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4587 + // line internal/php5/php5.y:4585 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4592 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7060,7 +7058,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4605 + // line internal/php5/php5.y:4603 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7073,7 +7071,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4616 + // line internal/php5/php5.y:4614 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7086,7 +7084,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4627 + // line internal/php5/php5.y:4625 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7099,7 +7097,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4638 + // line internal/php5/php5.y:4636 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7112,7 +7110,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4649 + // line internal/php5/php5.y:4647 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7125,7 +7123,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4660 + // line internal/php5/php5.y:4658 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7138,7 +7136,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4671 + // line internal/php5/php5.y:4669 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7150,7 +7148,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4681 + // line internal/php5/php5.y:4679 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7162,7 +7160,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4689 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7175,7 +7173,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4702 + // line internal/php5/php5.y:4700 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7188,7 +7186,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7201,7 +7199,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4722 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7214,7 +7212,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4733 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7227,7 +7225,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4746 + // line internal/php5/php5.y:4744 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7240,7 +7238,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4755 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7253,7 +7251,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4768 + // line internal/php5/php5.y:4766 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7266,7 +7264,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4779 + // line internal/php5/php5.y:4777 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7279,7 +7277,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4788 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7292,7 +7290,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4801 + // line internal/php5/php5.y:4799 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7305,7 +7303,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4812 + // line internal/php5/php5.y:4810 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7318,7 +7316,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4821 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7331,7 +7329,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4834 + // line internal/php5/php5.y:4832 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7344,7 +7342,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4845 + // line internal/php5/php5.y:4843 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7358,7 +7356,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4857 + // line internal/php5/php5.y:4855 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7371,7 +7369,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4866 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7384,7 +7382,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4877 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7397,7 +7395,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4890 + // line internal/php5/php5.y:4888 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7410,7 +7408,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4901 + // line internal/php5/php5.y:4899 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7424,7 +7422,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4913 + // line internal/php5/php5.y:4911 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7438,7 +7436,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4925 + // line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7450,7 +7448,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4935 + // line internal/php5/php5.y:4933 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7462,7 +7460,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4945 + // line internal/php5/php5.y:4943 { yyVAL.node = yyDollar[2].node @@ -7472,13 +7470,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4956 + // line internal/php5/php5.y:4954 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4960 + // line internal/php5/php5.y:4958 { name := &ast.NameName{ Node: ast.Node{ @@ -7493,7 +7491,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4973 + // line internal/php5/php5.y:4971 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7510,7 +7508,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4988 + // line internal/php5/php5.y:4986 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7526,7 +7524,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5005 + // line internal/php5/php5.y:5003 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7540,25 +7538,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5017 + // line internal/php5/php5.y:5015 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5019 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5025 + // line internal/php5/php5.y:5023 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5029 + // line internal/php5/php5.y:5027 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7570,7 +7568,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5039 + // line internal/php5/php5.y:5037 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7582,7 +7580,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5049 + // line internal/php5/php5.y:5047 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7594,13 +7592,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5062 + // line internal/php5/php5.y:5060 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5064 { yyVAL.list = yyDollar[1].list @@ -7611,19 +7609,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5078 + // line internal/php5/php5.y:5076 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5082 + // line internal/php5/php5.y:5080 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5089 + // line internal/php5/php5.y:5087 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7638,7 +7636,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5102 + // line internal/php5/php5.y:5100 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7652,7 +7650,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5114 + // line internal/php5/php5.y:5112 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7666,7 +7664,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5126 + // line internal/php5/php5.y:5124 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7679,19 +7677,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5140 + // line internal/php5/php5.y:5138 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5142 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5151 + // line internal/php5/php5.y:5149 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7708,7 +7706,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5166 + // line internal/php5/php5.y:5164 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7725,25 +7723,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5185 + // line internal/php5/php5.y:5183 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5193 + // line internal/php5/php5.y:5191 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5200 + // line internal/php5/php5.y:5198 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5207 + // line internal/php5/php5.y:5205 { yyVAL.node = yyDollar[1].node @@ -7801,25 +7799,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5263 + // line internal/php5/php5.y:5261 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5270 + // line internal/php5/php5.y:5268 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5272 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5282 + // line internal/php5/php5.y:5280 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7833,7 +7831,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5297 + // line internal/php5/php5.y:5295 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7847,7 +7845,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5309 + // line internal/php5/php5.y:5307 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7861,7 +7859,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5324 + // line internal/php5/php5.y:5322 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7870,31 +7868,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5334 + // line internal/php5/php5.y:5332 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5338 + // line internal/php5/php5.y:5336 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5342 + // line internal/php5/php5.y:5340 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5349 + // line internal/php5/php5.y:5347 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5353 + // line internal/php5/php5.y:5351 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7906,7 +7904,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5366 + // line internal/php5/php5.y:5364 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7919,7 +7917,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5377 + // line internal/php5/php5.y:5375 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7932,13 +7930,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5391 + // line internal/php5/php5.y:5389 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5398 + // line internal/php5/php5.y:5396 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7951,7 +7949,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5407 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7964,31 +7962,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5423 + // line internal/php5/php5.y:5421 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5427 + // line internal/php5/php5.y:5425 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5431 + // line internal/php5/php5.y:5429 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5439 + // line internal/php5/php5.y:5437 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5443 + // line internal/php5/php5.y:5441 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8000,13 +7998,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5453 + // line internal/php5/php5.y:5451 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5460 + // line internal/php5/php5.y:5458 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8019,7 +8017,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5471 + // line internal/php5/php5.y:5469 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8032,13 +8030,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5482 + // line internal/php5/php5.y:5480 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5490 + // line internal/php5/php5.y:5488 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8052,7 +8050,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5502 + // line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8066,25 +8064,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5517 + // line internal/php5/php5.y:5515 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5519 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5529 + // line internal/php5/php5.y:5527 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5533 + // line internal/php5/php5.y:5531 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8094,7 +8092,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5544 + // line internal/php5/php5.y:5542 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8108,7 +8106,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5556 + // line internal/php5/php5.y:5554 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8122,7 +8120,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5568 + // line internal/php5/php5.y:5566 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8132,7 +8130,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5579 + // line internal/php5/php5.y:5577 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8144,7 +8142,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5589 + // line internal/php5/php5.y:5587 { yyVAL.node = yyDollar[2].node @@ -8157,7 +8155,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5603 + // line internal/php5/php5.y:5601 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8170,7 +8168,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5614 + // line internal/php5/php5.y:5612 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8187,7 +8185,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5632 + // line internal/php5/php5.y:5630 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8200,7 +8198,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5643 + // line internal/php5/php5.y:5641 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8210,7 +8208,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5655 + // line internal/php5/php5.y:5653 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8222,7 +8220,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5665 + // line internal/php5/php5.y:5663 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8238,19 +8236,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5679 + // line internal/php5/php5.y:5677 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5687 + // line internal/php5/php5.y:5685 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5691 + // line internal/php5/php5.y:5689 { yyVAL.list = yyDollar[1].list @@ -8265,7 +8263,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5705 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8280,7 +8278,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5720 + // line internal/php5/php5.y:5718 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8294,7 +8292,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5732 + // line internal/php5/php5.y:5730 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8308,7 +8306,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5744 + // line internal/php5/php5.y:5742 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8321,7 +8319,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5755 + // line internal/php5/php5.y:5753 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8339,7 +8337,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5771 + // line internal/php5/php5.y:5769 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8355,7 +8353,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5785 + // line internal/php5/php5.y:5783 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8372,7 +8370,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5800 + // line internal/php5/php5.y:5798 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8387,13 +8385,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5816 + // line internal/php5/php5.y:5814 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5820 + // line internal/php5/php5.y:5818 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8406,13 +8404,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5831 + // line internal/php5/php5.y:5829 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5835 + // line internal/php5/php5.y:5833 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8425,7 +8423,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5849 + // line internal/php5/php5.y:5847 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8439,7 +8437,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5861 + // line internal/php5/php5.y:5859 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8456,7 +8454,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5876 + // line internal/php5/php5.y:5874 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8475,7 +8473,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5893 + // line internal/php5/php5.y:5891 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8490,7 +8488,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5906 + // line internal/php5/php5.y:5904 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8507,7 +8505,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5921 + // line internal/php5/php5.y:5919 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8526,7 +8524,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5938 + // line internal/php5/php5.y:5936 { yyVAL.node = yyDollar[2].node @@ -8536,7 +8534,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5949 + // line internal/php5/php5.y:5947 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8548,7 +8546,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5959 + // line internal/php5/php5.y:5957 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8565,7 +8563,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5974 + // line internal/php5/php5.y:5972 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8579,7 +8577,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5989 + // line internal/php5/php5.y:5987 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8593,7 +8591,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6001 + // line internal/php5/php5.y:5999 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8615,7 +8613,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6021 + // line internal/php5/php5.y:6019 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8637,7 +8635,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6041 + // line internal/php5/php5.y:6039 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8649,7 +8647,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6051 + // line internal/php5/php5.y:6049 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8661,7 +8659,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6061 + // line internal/php5/php5.y:6059 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8683,7 +8681,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6081 + // line internal/php5/php5.y:6079 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8695,7 +8693,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6091 + // line internal/php5/php5.y:6089 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8707,13 +8705,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6104 + // line internal/php5/php5.y:6102 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6108 + // line internal/php5/php5.y:6106 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8722,19 +8720,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6118 + // line internal/php5/php5.y:6116 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6122 + // line internal/php5/php5.y:6120 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6129 + // line internal/php5/php5.y:6127 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8750,7 +8748,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6143 + // line internal/php5/php5.y:6141 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8766,7 +8764,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6160 + // line internal/php5/php5.y:6158 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8782,7 +8780,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6177 + // line internal/php5/php5.y:6175 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index fb42de1..f599ddd 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -241,7 +241,7 @@ import ( %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method %type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list echo_expr_list -%type trait_adaptations +%type trait_adaptations unset_variables %type switch_case_list %type method_body %type foreach_statement for_statement while_statement @@ -255,7 +255,7 @@ import ( %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations %type inner_statement_list encaps_list isset_variables non_empty_array_pair_list %type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr -%type for_expr case_list unset_variables declare_list catch_statement additional_catches +%type for_expr case_list declare_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers class_variable_declaration %type interface_list non_empty_function_call_parameter_list trait_list trait_adaptation_list non_empty_trait_adaptation_list @@ -1084,17 +1084,13 @@ unticked_statement: } | T_UNSET '(' unset_variables ')' ';' { - $$ = &ast.StmtUnset{ast.Node{}, $3} + $3.(*ast.StmtUnset).UnsetTkn = $1 + $3.(*ast.StmtUnset).OpenParenthesisTkn = $2 + $3.(*ast.StmtUnset).CloseParenthesisTkn = $4 + $3.(*ast.StmtUnset).SemiColonTkn = $5 + $3.(*ast.StmtUnset).Node.Position = position.NewTokensPosition($1, $5) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $5.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $5.SkippedTokens) + $$ = $3 } | T_FOREACH '(' variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { @@ -1334,14 +1330,16 @@ additional_catch: unset_variables: unset_variable { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtUnset{ + Vars: []ast.Vertex{$1}, + } } | unset_variables ',' unset_variable { - $$ = append($1, $3) + $1.(*ast.StmtUnset).Vars = append($1.(*ast.StmtUnset).Vars, $3) + $1.(*ast.StmtUnset).SeparatorTkns = append($1.(*ast.StmtUnset).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index ab2cdc4..56d0fc9 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4821 +// line internal/php7/php7.y:4817 // line yacctab:1 var yyExca = [...]int{ @@ -630,9 +630,9 @@ var yyAct = [...]int{ 534, 260, 261, 135, 106, 196, 836, 844, 533, 260, 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, 189, 744, 632, 855, 260, 261, 235, 539, 238, 225, - 859, 283, 260, 261, 528, 865, 371, 108, 879, 877, - 890, 891, 886, 838, 328, 841, 892, 893, 676, 885, - 830, 730, 255, 853, 796, 897, 898, 385, 656, 872, + 859, 283, 260, 261, 528, 865, 879, 108, 838, 877, + 890, 891, 886, 328, 841, 676, 892, 893, 830, 885, + 255, 730, 796, 853, 385, 897, 898, 371, 656, 872, 852, 934, 786, 896, 903, 662, 845, 905, 227, 43, 42, 16, 15, 151, 886, 908, 904, 902, 260, 261, 606, 885, 271, 49, 48, 110, 50, 84, 82, 72, @@ -1431,9 +1431,9 @@ var yyPgo = [...]int{ 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, 880, 10, 879, 878, 46, 39, 40, 2, 16, 705, - 43, 85, 876, 875, 871, 12, 870, 868, 555, 50, - 37, 867, 864, 9, 762, 20, 553, 862, 18, 860, - 858, 855, 88, 36, 854, 25, 33, 853, 45, 848, + 43, 85, 876, 875, 871, 12, 870, 868, 555, 867, + 50, 37, 864, 862, 9, 762, 20, 553, 860, 18, + 858, 855, 854, 88, 36, 853, 25, 33, 848, 45, 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } @@ -1447,28 +1447,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, - 117, 98, 98, 10, 10, 10, 9, 9, 9, 9, + 117, 99, 99, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 94, 94, 16, 16, 18, 18, 7, 7, 106, - 106, 105, 105, 111, 111, 17, 17, 20, 20, 19, - 19, 102, 102, 118, 118, 22, 22, 22, 22, 22, + 9, 95, 95, 16, 16, 18, 18, 7, 7, 107, + 107, 106, 106, 111, 111, 17, 17, 20, 20, 19, + 19, 103, 103, 118, 118, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 100, 100, 99, 99, - 26, 26, 110, 110, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 79, 79, 14, 15, 89, 89, - 91, 91, 90, 90, 95, 95, 95, 95, 86, 86, - 85, 85, 25, 25, 83, 83, 83, 83, 108, 108, - 108, 8, 8, 87, 87, 70, 70, 68, 68, 72, + 11, 11, 11, 11, 11, 11, 101, 101, 100, 100, + 26, 26, 89, 89, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 79, 79, 14, 15, 90, 90, + 92, 92, 91, 91, 96, 96, 96, 96, 86, 86, + 85, 85, 25, 25, 83, 83, 83, 83, 109, 109, + 109, 8, 8, 87, 87, 70, 70, 68, 68, 72, 72, 69, 69, 119, 119, 120, 120, 29, 29, 30, 30, 78, 78, 76, 76, 76, 77, 77, 80, 80, 116, 116, 31, 31, 33, 33, 34, 35, 35, 36, 36, 121, 121, 37, 37, 37, 37, 125, 125, 82, - 82, 82, 109, 109, 38, 38, 39, 40, 40, 40, + 82, 82, 110, 110, 38, 38, 39, 40, 40, 40, 40, 42, 42, 41, 84, 84, 123, 123, 122, 122, - 124, 124, 93, 93, 93, 93, 93, 93, 107, 107, - 43, 43, 101, 101, 71, 21, 67, 67, 44, 103, - 103, 104, 104, 46, 45, 45, 32, 32, 32, 32, + 124, 124, 94, 94, 94, 94, 94, 94, 108, 108, + 43, 43, 102, 102, 71, 21, 67, 67, 44, 104, + 104, 105, 105, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1476,9 +1476,9 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 88, 88, 128, 3, 3, 92, 92, + 32, 32, 32, 88, 88, 128, 3, 3, 93, 93, 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 97, 97, 97, 81, 81, 58, + 48, 48, 51, 51, 98, 98, 98, 81, 81, 58, 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, @@ -1486,7 +1486,7 @@ var yyR1 = [...]int{ 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, 64, 64, 55, 55, 55, 56, 56, 56, 115, 74, 74, 114, 114, 73, 73, 73, 73, 73, 73, 73, - 96, 96, 96, 96, 65, 65, 65, 65, 65, 65, + 97, 97, 97, 97, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, 50, 50, 113, 113, 75, } @@ -1556,8 +1556,8 @@ var yyChk = [...]int{ -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -98, 83, 148, 83, -98, 144, 10, - -18, -94, -111, -98, 83, 37, 39, -19, -20, -102, + -61, 61, 18, -99, 83, 148, 83, -99, 144, 10, + -18, -95, -111, -99, 83, 37, 39, -19, -20, -103, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, -23, 99, -24, -24, -33, -34, -49, -35, -88, -36, 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, @@ -1570,20 +1570,20 @@ var yyChk = [...]int{ 150, 144, 58, 148, -115, -114, -74, -73, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -97, 17, -96, -65, 12, + -23, -23, -51, 148, -23, -98, 17, -97, -65, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -96, -96, 17, -3, 144, -49, - -80, 148, -80, 148, 83, -98, 149, -98, 146, 144, - -117, 146, -16, -111, -98, 83, 146, 160, 83, 29, - -98, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -103, -104, -23, + -23, -23, 17, 76, -97, -97, 17, -3, 144, -49, + -80, 148, -80, 148, 83, -99, 149, -99, 146, 144, + -117, 146, -16, -111, -99, 83, 146, 160, 83, 29, + -99, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -104, -105, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -110, -27, -28, -23, -102, -118, 146, 146, 10, - -128, 10, -89, 56, -128, -91, 56, 148, -11, 148, + -23, -89, -27, -28, -23, -103, -118, 146, 146, 10, + -128, 10, -90, 56, -128, -92, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, @@ -1600,44 +1600,44 @@ var yyChk = [...]int{ -81, -80, 79, 150, 144, 58, 79, -81, -113, -75, -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -98, -19, 83, -98, 144, 10, 83, -21, -23, + 83, -99, -19, 83, -99, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -89, - -90, 57, -10, 144, -128, -125, -10, -23, -23, -118, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -90, + -91, 57, -10, 144, -128, -125, -10, -23, -23, -118, -23, 149, 151, 145, -80, -23, 149, 162, -74, -23, 153, 60, -115, 149, 151, 149, -66, 10, 13, 154, 12, 10, 145, 145, 150, 145, -23, 151, -80, -23, - -80, -49, -24, -23, -56, -49, -89, -7, 160, 149, + -80, -49, -24, -23, -56, -49, -90, -7, 160, 149, 149, -119, -120, -29, -30, -78, -76, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -106, - -17, -20, -94, 144, -128, 149, -87, -11, 147, -23, - -103, -23, -83, 144, 147, -23, 149, -27, -95, -28, - 153, 60, 150, -25, -11, 147, -100, 148, -119, -90, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -107, + -17, -20, -95, 144, -128, 149, -87, -11, 147, -23, + -104, -23, -83, 144, 147, -23, 149, -27, -96, -28, + 153, 60, 150, -25, -11, 147, -101, 148, -119, -91, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -90, 149, -75, 149, 160, -1, 153, -76, - 149, -31, -105, -20, 144, -7, 160, -20, -106, 146, - -118, 149, 146, -108, 146, -108, 146, 146, 149, 59, + 151, 145, -91, 149, -75, 149, 160, -1, 153, -76, + 149, -31, -106, -20, 144, -7, 160, -20, -107, 146, + -118, 149, 146, -109, 146, -109, 146, 146, 149, 59, -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -37, -123, -122, 45, -124, 48, -93, 104, + 144, 145, -37, -123, -122, 45, -124, 48, -94, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, -118, -23, -115, 151, -128, -77, 147, -29, -2, 84, - -7, 160, -105, 145, -17, -7, 22, 146, -103, 145, - 32, 33, -108, 31, -108, -85, -11, 147, -95, -28, - -115, 151, 28, 148, 144, 149, -92, 45, 144, -121, - -30, 39, 37, -125, -93, 145, -118, 149, 145, 144, + -7, 160, -106, 145, -17, -7, 22, 146, -104, 145, + 32, 33, -109, 31, -109, -85, -11, 147, -96, -28, + -115, 151, 28, 148, 144, 149, -93, 45, 144, -121, + -30, 39, 37, -125, -94, 145, -118, 149, 145, 144, -128, -78, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -99, -10, -118, -77, -77, 148, -121, 145, -107, -43, - 12, -101, -71, -6, -3, -82, 146, 144, -121, 59, + -100, -10, -118, -77, -77, 148, -121, 145, -108, -43, + 12, -102, -71, -6, -3, -82, 146, 144, -121, 59, 162, 145, -86, -11, 147, -8, -118, 146, 26, -85, 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -109, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -110, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, 160, 12, -43, -23, -71, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -125, 10, -4, -93, -6, 146, -118, -119, + -128, 148, -125, 10, -4, -94, -6, 146, -118, -119, -6, 145, 149, -77, -84, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 +// line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:318 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:323 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:327 +// line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:334 +// line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:345 +// line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:352 +// line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:364 +// line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:378 +// line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:387 +// line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:398 +// line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:411 +// line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:420 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:424 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:428 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:432 +// line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:436 +// line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:448 +// line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:464 +// line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:482 +// line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:494 +// line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:504 +// line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:515 +// line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:526 +// line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:538 +// line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2836,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:552 +// line internal/php7/php7.y:553 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:562 +// line internal/php7/php7.y:563 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:575 +// line internal/php7/php7.y:576 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:597 +// line internal/php7/php7.y:598 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:621 +// line internal/php7/php7.y:622 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:641 +// line internal/php7/php7.y:642 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:665 +// line internal/php7/php7.y:666 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:669 +// line internal/php7/php7.y:670 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:676 +// line internal/php7/php7.y:677 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:682 +// line internal/php7/php7.y:683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:689 +// line internal/php7/php7.y:690 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:695 +// line internal/php7/php7.y:696 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:702 +// line internal/php7/php7.y:703 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:708 +// line internal/php7/php7.y:709 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:715 +// line internal/php7/php7.y:716 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:719 +// line internal/php7/php7.y:720 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:730 +// line internal/php7/php7.y:731 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:744 +// line internal/php7/php7.y:745 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:769 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:773 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:784 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -3085,13 +3085,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 +// line internal/php7/php7.y:790 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:796 +// line internal/php7/php7.y:797 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:807 +// line internal/php7/php7.y:808 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:814 +// line internal/php7/php7.y:815 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:819 +// line internal/php7/php7.y:820 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:823 +// line internal/php7/php7.y:824 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:827 +// line internal/php7/php7.y:828 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:831 +// line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:835 +// line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:839 +// line internal/php7/php7.y:840 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:853 +// line internal/php7/php7.y:854 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:864 +// line internal/php7/php7.y:865 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:868 +// line internal/php7/php7.y:869 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:872 +// line internal/php7/php7.y:873 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3198,7 +3198,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:882 +// line internal/php7/php7.y:883 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3215,7 +3215,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:897 +// line internal/php7/php7.y:898 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3231,7 +3231,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:911 +// line internal/php7/php7.y:912 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3243,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:921 +// line internal/php7/php7.y:922 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3256,7 +3256,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:932 +// line internal/php7/php7.y:933 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3269,7 +3269,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:943 +// line internal/php7/php7.y:944 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3282,7 +3282,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:954 +// line internal/php7/php7.y:955 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3292,7 +3292,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:962 +// line internal/php7/php7.y:963 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3302,7 +3302,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:970 +// line internal/php7/php7.y:971 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3312,7 +3312,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:978 +// line internal/php7/php7.y:979 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3324,7 +3324,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:988 +// line internal/php7/php7.y:989 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3338,27 +3338,20 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1000 +// line internal/php7/php7.y:1001 { - yyVAL.node = &ast.StmtUnset{ast.Node{}, yyDollar[3].list} + yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token + yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token + yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[4].token) + yyDollar[3].node.(*ast.StmtUnset).CloseParenthesisTkn = yyDollar[5].token + yyDollar[3].node.(*ast.StmtUnset).SemiColonTkn = yyDollar[6].token + yyDollar[3].node.(*ast.StmtUnset).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Unset, yyDollar[2].token.SkippedTokens) - if yyDollar[4].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.SkippedTokens, yyDollar[5].token.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.CloseParenthesisToken, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[6].token.SkippedTokens) + yyVAL.node = yyDollar[3].node } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1018 +// line internal/php7/php7.y:1012 { switch n := yyDollar[7].node.(type) { case *ast.StmtForeach: @@ -3382,7 +3375,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1040 +// line internal/php7/php7.y:1034 { switch n := yyDollar[9].node.(type) { case *ast.StmtForeach: @@ -3409,7 +3402,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1065 +// line internal/php7/php7.y:1059 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3424,7 +3417,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1078 +// line internal/php7/php7.y:1072 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3437,7 +3430,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1089 +// line internal/php7/php7.y:1083 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3454,7 +3447,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1104 +// line internal/php7/php7.y:1098 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3468,7 +3461,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1116 +// line internal/php7/php7.y:1110 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3485,7 +3478,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1131 +// line internal/php7/php7.y:1125 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3500,13 +3493,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1146 +// line internal/php7/php7.y:1140 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1150 +// line internal/php7/php7.y:1144 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3528,13 +3521,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1172 +// line internal/php7/php7.y:1166 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1176 +// line internal/php7/php7.y:1170 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3548,13 +3541,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1188 +// line internal/php7/php7.y:1182 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1192 +// line internal/php7/php7.y:1186 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3568,28 +3561,30 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1207 +// line internal/php7/php7.y:1201 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtUnset{ + Vars: []ast.Vertex{yyDollar[1].node}, + } } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1211 +// line internal/php7/php7.y:1207 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1221 +// line internal/php7/php7.y:1217 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1228 +// line internal/php7/php7.y:1224 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3619,31 +3614,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1259 +// line internal/php7/php7.y:1255 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1263 +// line internal/php7/php7.y:1259 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1270 +// line internal/php7/php7.y:1266 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1274 +// line internal/php7/php7.y:1270 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1281 +// line internal/php7/php7.y:1277 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3661,7 +3656,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1297 +// line internal/php7/php7.y:1293 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3678,19 +3673,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1315 +// line internal/php7/php7.y:1311 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1319 +// line internal/php7/php7.y:1315 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1326 +// line internal/php7/php7.y:1322 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3702,7 +3697,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1336 +// line internal/php7/php7.y:1332 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3714,7 +3709,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1349 +// line internal/php7/php7.y:1345 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3731,7 +3726,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1367 +// line internal/php7/php7.y:1363 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3748,13 +3743,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1385 +// line internal/php7/php7.y:1381 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1389 +// line internal/php7/php7.y:1385 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3766,13 +3761,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1402 +// line internal/php7/php7.y:1398 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1406 +// line internal/php7/php7.y:1402 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3784,13 +3779,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1419 +// line internal/php7/php7.y:1415 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1423 +// line internal/php7/php7.y:1419 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3802,13 +3797,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1436 +// line internal/php7/php7.y:1432 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1440 +// line internal/php7/php7.y:1436 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3820,7 +3815,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1450 +// line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3834,7 +3829,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1462 +// line internal/php7/php7.y:1458 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3847,7 +3842,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1476 +// line internal/php7/php7.y:1472 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3858,7 +3853,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1485 +// line internal/php7/php7.y:1481 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3878,7 +3873,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1506 +// line internal/php7/php7.y:1502 { yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} @@ -3887,7 +3882,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1513 +// line internal/php7/php7.y:1509 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3908,7 +3903,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1535 +// line internal/php7/php7.y:1531 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3917,7 +3912,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1542 +// line internal/php7/php7.y:1538 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3938,7 +3933,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1564 +// line internal/php7/php7.y:1560 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3951,7 +3946,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1575 +// line internal/php7/php7.y:1571 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3965,7 +3960,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1587 +// line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3980,7 +3975,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1600 +// line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3996,13 +3991,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1617 +// line internal/php7/php7.y:1613 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1621 +// line internal/php7/php7.y:1617 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4016,7 +4011,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1633 +// line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4029,19 +4024,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1647 +// line internal/php7/php7.y:1643 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1651 +// line internal/php7/php7.y:1647 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1658 +// line internal/php7/php7.y:1654 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4052,7 +4047,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1667 +// line internal/php7/php7.y:1663 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4072,7 +4067,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1688 +// line internal/php7/php7.y:1684 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4087,7 +4082,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1701 +// line internal/php7/php7.y:1697 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4106,13 +4101,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1721 +// line internal/php7/php7.y:1717 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1725 +// line internal/php7/php7.y:1721 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4128,7 +4123,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1742 +// line internal/php7/php7.y:1738 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4150,7 +4145,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1762 +// line internal/php7/php7.y:1758 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4174,7 +4169,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1787 +// line internal/php7/php7.y:1783 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4184,7 +4179,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1795 +// line internal/php7/php7.y:1791 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4208,25 +4203,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1820 +// line internal/php7/php7.y:1816 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1824 +// line internal/php7/php7.y:1820 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1831 +// line internal/php7/php7.y:1827 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1835 +// line internal/php7/php7.y:1831 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4235,7 +4230,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1845 +// line internal/php7/php7.y:1841 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4271,7 +4266,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1879 +// line internal/php7/php7.y:1875 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4308,25 +4303,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1917 +// line internal/php7/php7.y:1913 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1921 +// line internal/php7/php7.y:1917 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1928 +// line internal/php7/php7.y:1924 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1932 +// line internal/php7/php7.y:1928 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4338,7 +4333,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1945 +// line internal/php7/php7.y:1941 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4350,7 +4345,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1955 +// line internal/php7/php7.y:1951 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4362,19 +4357,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1965 +// line internal/php7/php7.y:1961 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1972 +// line internal/php7/php7.y:1968 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1976 +// line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[2].node @@ -4383,7 +4378,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1986 +// line internal/php7/php7.y:1982 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4396,7 +4391,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1997 +// line internal/php7/php7.y:1993 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4413,13 +4408,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2015 +// line internal/php7/php7.y:2011 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2019 +// line internal/php7/php7.y:2015 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4428,7 +4423,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2029 +// line internal/php7/php7.y:2025 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4440,7 +4435,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2039 +// line internal/php7/php7.y:2035 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4452,7 +4447,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2052 +// line internal/php7/php7.y:2048 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4461,7 +4456,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2059 +// line internal/php7/php7.y:2055 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4469,13 +4464,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2068 +// line internal/php7/php7.y:2064 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2075 +// line internal/php7/php7.y:2071 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4484,7 +4479,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2082 +// line internal/php7/php7.y:2078 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4492,7 +4487,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2091 +// line internal/php7/php7.y:2087 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4513,7 +4508,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2110 +// line internal/php7/php7.y:2106 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4535,19 +4530,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2133 +// line internal/php7/php7.y:2129 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2137 +// line internal/php7/php7.y:2133 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2144 +// line internal/php7/php7.y:2140 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4561,7 +4556,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2156 +// line internal/php7/php7.y:2152 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4575,7 +4570,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2168 +// line internal/php7/php7.y:2164 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4587,7 +4582,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2178 +// line internal/php7/php7.y:2174 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4618,13 +4613,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2210 +// line internal/php7/php7.y:2206 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2214 +// line internal/php7/php7.y:2210 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4638,7 +4633,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2226 +// line internal/php7/php7.y:2222 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4650,7 +4645,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2236 +// line internal/php7/php7.y:2232 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4662,7 +4657,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2246 +// line internal/php7/php7.y:2242 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4674,19 +4669,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2259 +// line internal/php7/php7.y:2255 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2263 +// line internal/php7/php7.y:2259 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2270 +// line internal/php7/php7.y:2266 { yyVAL.node = yyDollar[1].node @@ -4696,7 +4691,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2278 +// line internal/php7/php7.y:2274 { yyVAL.node = yyDollar[1].node @@ -4706,7 +4701,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2289 +// line internal/php7/php7.y:2285 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4719,7 +4714,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2303 +// line internal/php7/php7.y:2299 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4735,7 +4730,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2317 +// line internal/php7/php7.y:2313 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4751,7 +4746,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2331 +// line internal/php7/php7.y:2327 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4767,7 +4762,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2345 +// line internal/php7/php7.y:2341 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4780,7 +4775,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2359 +// line internal/php7/php7.y:2355 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4794,13 +4789,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2371 +// line internal/php7/php7.y:2367 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2378 +// line internal/php7/php7.y:2374 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4816,7 +4811,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2395 +// line internal/php7/php7.y:2391 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4829,7 +4824,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2406 +// line internal/php7/php7.y:2402 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4842,13 +4837,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2420 +// line internal/php7/php7.y:2416 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2424 +// line internal/php7/php7.y:2420 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4861,31 +4856,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2438 +// line internal/php7/php7.y:2434 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2442 +// line internal/php7/php7.y:2438 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2449 +// line internal/php7/php7.y:2445 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2453 +// line internal/php7/php7.y:2449 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2460 +// line internal/php7/php7.y:2456 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4897,7 +4892,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2470 +// line internal/php7/php7.y:2466 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4909,7 +4904,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2480 +// line internal/php7/php7.y:2476 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4921,7 +4916,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2490 +// line internal/php7/php7.y:2486 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4933,7 +4928,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2500 +// line internal/php7/php7.y:2496 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4945,7 +4940,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2510 +// line internal/php7/php7.y:2506 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4957,7 +4952,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2523 +// line internal/php7/php7.y:2519 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4966,13 +4961,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2530 +// line internal/php7/php7.y:2526 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2537 +// line internal/php7/php7.y:2533 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4988,7 +4983,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2551 +// line internal/php7/php7.y:2547 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5005,7 +5000,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2569 +// line internal/php7/php7.y:2565 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5013,13 +5008,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2575 +// line internal/php7/php7.y:2571 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2578 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5039,7 +5034,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2603 +// line internal/php7/php7.y:2599 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5059,7 +5054,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2624 +// line internal/php7/php7.y:2620 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5068,7 +5063,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2631 +// line internal/php7/php7.y:2627 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5076,25 +5071,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2640 +// line internal/php7/php7.y:2636 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2647 +// line internal/php7/php7.y:2643 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2651 +// line internal/php7/php7.y:2647 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2658 +// line internal/php7/php7.y:2654 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5103,13 +5098,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2665 +// line internal/php7/php7.y:2661 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2672 +// line internal/php7/php7.y:2668 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5127,7 +5122,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2691 +// line internal/php7/php7.y:2687 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5142,7 +5137,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2704 +// line internal/php7/php7.y:2700 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5154,7 +5149,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2717 +// line internal/php7/php7.y:2713 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5171,7 +5166,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2732 +// line internal/php7/php7.y:2728 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5187,7 +5182,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2746 +// line internal/php7/php7.y:2742 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5200,7 +5195,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2757 +// line internal/php7/php7.y:2753 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5214,7 +5209,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2769 +// line internal/php7/php7.y:2765 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5226,7 +5221,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2779 +// line internal/php7/php7.y:2775 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5239,7 +5234,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2790 +// line internal/php7/php7.y:2786 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5252,7 +5247,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2801 +// line internal/php7/php7.y:2797 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5265,7 +5260,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2812 +// line internal/php7/php7.y:2808 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5278,7 +5273,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2823 +// line internal/php7/php7.y:2819 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5291,7 +5286,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2834 +// line internal/php7/php7.y:2830 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5304,7 +5299,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2845 +// line internal/php7/php7.y:2841 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5317,7 +5312,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2856 +// line internal/php7/php7.y:2852 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5330,7 +5325,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2867 +// line internal/php7/php7.y:2863 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5343,7 +5338,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2878 +// line internal/php7/php7.y:2874 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5356,7 +5351,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2889 +// line internal/php7/php7.y:2885 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5369,7 +5364,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2900 +// line internal/php7/php7.y:2896 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5382,7 +5377,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2911 +// line internal/php7/php7.y:2907 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5395,7 +5390,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2918 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5408,7 +5403,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2929 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5420,7 +5415,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2943 +// line internal/php7/php7.y:2939 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5433,7 +5428,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2954 +// line internal/php7/php7.y:2950 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5445,7 +5440,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2964 +// line internal/php7/php7.y:2960 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5458,7 +5453,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2975 +// line internal/php7/php7.y:2971 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5471,7 +5466,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2986 +// line internal/php7/php7.y:2982 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5484,7 +5479,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2997 +// line internal/php7/php7.y:2993 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5497,7 +5492,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3008 +// line internal/php7/php7.y:3004 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5510,7 +5505,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3019 +// line internal/php7/php7.y:3015 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5523,7 +5518,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3030 +// line internal/php7/php7.y:3026 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5531,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3041 +// line internal/php7/php7.y:3037 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5544,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3052 +// line internal/php7/php7.y:3048 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5561,7 +5556,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3062 +// line internal/php7/php7.y:3058 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5574,7 +5569,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3073 +// line internal/php7/php7.y:3069 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5582,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3084 +// line internal/php7/php7.y:3080 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5600,7 +5595,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3095 +// line internal/php7/php7.y:3091 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5613,7 +5608,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3106 +// line internal/php7/php7.y:3102 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5626,7 +5621,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3117 +// line internal/php7/php7.y:3113 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5639,7 +5634,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3128 +// line internal/php7/php7.y:3124 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5652,7 +5647,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3139 +// line internal/php7/php7.y:3135 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5660,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3150 +// line internal/php7/php7.y:3146 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5677,7 +5672,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3160 +// line internal/php7/php7.y:3156 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5689,7 +5684,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3170 +// line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5701,7 +5696,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3180 +// line internal/php7/php7.y:3176 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5713,7 +5708,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3190 +// line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5726,7 +5721,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3201 +// line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5739,7 +5734,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3212 +// line internal/php7/php7.y:3208 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5752,7 +5747,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3223 +// line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5766,7 +5761,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3235 +// line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5779,7 +5774,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3246 +// line internal/php7/php7.y:3242 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,7 +5787,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3257 +// line internal/php7/php7.y:3253 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5800,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3268 +// line internal/php7/php7.y:3264 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5813,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3279 +// line internal/php7/php7.y:3275 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5826,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3290 +// line internal/php7/php7.y:3286 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5839,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3301 +// line internal/php7/php7.y:3297 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5861,13 +5856,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3316 +// line internal/php7/php7.y:3312 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3320 +// line internal/php7/php7.y:3316 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5881,7 +5876,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3332 +// line internal/php7/php7.y:3328 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5895,7 +5890,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3344 +// line internal/php7/php7.y:3340 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5908,13 +5903,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3355 +// line internal/php7/php7.y:3351 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3359 +// line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5927,7 +5922,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3370 +// line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5940,7 +5935,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3381 +// line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5953,7 +5948,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3392 +// line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5966,7 +5961,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3403 +// line internal/php7/php7.y:3399 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5979,7 +5974,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3414 +// line internal/php7/php7.y:3410 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5992,7 +5987,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3425 +// line internal/php7/php7.y:3421 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6005,7 +6000,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3436 +// line internal/php7/php7.y:3432 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6025,7 +6020,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3454 +// line internal/php7/php7.y:3450 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6037,13 +6032,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3464 +// line internal/php7/php7.y:3460 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3468 +// line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6055,7 +6050,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3478 +// line internal/php7/php7.y:3474 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6067,7 +6062,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3488 +// line internal/php7/php7.y:3484 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6079,7 +6074,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3498 +// line internal/php7/php7.y:3494 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6091,7 +6086,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3508 +// line internal/php7/php7.y:3504 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6104,7 +6099,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3519 +// line internal/php7/php7.y:3515 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6116,13 +6111,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3529 +// line internal/php7/php7.y:3525 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3533 +// line internal/php7/php7.y:3529 { yyVAL.node = yyDollar[2].node @@ -6143,7 +6138,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3554 +// line internal/php7/php7.y:3550 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6174,7 +6169,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3581 +// line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6200,25 +6195,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3611 +// line internal/php7/php7.y:3607 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3615 +// line internal/php7/php7.y:3611 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3622 +// line internal/php7/php7.y:3618 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3626 +// line internal/php7/php7.y:3622 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6232,7 +6227,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3641 +// line internal/php7/php7.y:3637 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6241,13 +6236,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3648 +// line internal/php7/php7.y:3644 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3655 +// line internal/php7/php7.y:3651 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6261,7 +6256,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3667 +// line internal/php7/php7.y:3663 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6278,7 +6273,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3685 +// line internal/php7/php7.y:3681 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6290,7 +6285,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3695 +// line internal/php7/php7.y:3691 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6303,7 +6298,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3706 +// line internal/php7/php7.y:3702 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6316,7 +6311,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3717 +// line internal/php7/php7.y:3713 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6328,7 +6323,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3730 +// line internal/php7/php7.y:3726 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6340,31 +6335,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3740 +// line internal/php7/php7.y:3736 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3747 +// line internal/php7/php7.y:3743 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3751 +// line internal/php7/php7.y:3747 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3758 +// line internal/php7/php7.y:3754 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3762 +// line internal/php7/php7.y:3758 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6381,13 +6376,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3780 +// line internal/php7/php7.y:3776 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3784 +// line internal/php7/php7.y:3780 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6397,25 +6392,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3792 +// line internal/php7/php7.y:3788 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3799 +// line internal/php7/php7.y:3795 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3803 +// line internal/php7/php7.y:3799 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3810 +// line internal/php7/php7.y:3806 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6429,7 +6424,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3822 +// line internal/php7/php7.y:3818 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6442,7 +6437,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3833 +// line internal/php7/php7.y:3829 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6454,7 +6449,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3846 +// line internal/php7/php7.y:3842 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6466,7 +6461,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3856 +// line internal/php7/php7.y:3852 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6478,7 +6473,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3866 +// line internal/php7/php7.y:3862 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6490,7 +6485,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3876 +// line internal/php7/php7.y:3872 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6502,7 +6497,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3886 +// line internal/php7/php7.y:3882 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6514,7 +6509,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3896 +// line internal/php7/php7.y:3892 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6526,7 +6521,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3906 +// line internal/php7/php7.y:3902 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6538,7 +6533,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3916 +// line internal/php7/php7.y:3912 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6550,7 +6545,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3926 +// line internal/php7/php7.y:3922 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6562,7 +6557,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3936 +// line internal/php7/php7.y:3932 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6574,7 +6569,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3946 +// line internal/php7/php7.y:3942 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6588,7 +6583,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3958 +// line internal/php7/php7.y:3954 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6600,7 +6595,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3968 +// line internal/php7/php7.y:3964 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6612,7 +6607,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3978 +// line internal/php7/php7.y:3974 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6624,19 +6619,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3988 +// line internal/php7/php7.y:3984 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3992 +// line internal/php7/php7.y:3988 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3999 +// line internal/php7/php7.y:3995 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6648,7 +6643,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4009 +// line internal/php7/php7.y:4005 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6664,7 +6659,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4023 +// line internal/php7/php7.y:4019 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6680,43 +6675,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4040 +// line internal/php7/php7.y:4036 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4044 +// line internal/php7/php7.y:4040 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4051 +// line internal/php7/php7.y:4047 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4055 +// line internal/php7/php7.y:4051 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4062 +// line internal/php7/php7.y:4058 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4069 +// line internal/php7/php7.y:4065 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4073 +// line internal/php7/php7.y:4069 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6733,19 +6728,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4088 +// line internal/php7/php7.y:4084 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4095 +// line internal/php7/php7.y:4091 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4099 +// line internal/php7/php7.y:4095 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6762,19 +6757,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4114 +// line internal/php7/php7.y:4110 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4121 +// line internal/php7/php7.y:4117 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4125 +// line internal/php7/php7.y:4121 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6787,7 +6782,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4136 +// line internal/php7/php7.y:4132 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6800,7 +6795,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4147 +// line internal/php7/php7.y:4143 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6813,7 +6808,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4158 +// line internal/php7/php7.y:4154 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6826,25 +6821,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4169 +// line internal/php7/php7.y:4165 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4176 +// line internal/php7/php7.y:4172 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4180 +// line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4184 +// line internal/php7/php7.y:4180 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6857,7 +6852,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4198 +// line internal/php7/php7.y:4194 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6871,7 +6866,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4210 +// line internal/php7/php7.y:4206 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6885,7 +6880,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4222 +// line internal/php7/php7.y:4218 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6897,7 +6892,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4235 +// line internal/php7/php7.y:4231 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6910,7 +6905,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4246 +// line internal/php7/php7.y:4242 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6923,13 +6918,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4260 +// line internal/php7/php7.y:4256 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4264 +// line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6942,7 +6937,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4275 +// line internal/php7/php7.y:4271 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6955,7 +6950,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4286 +// line internal/php7/php7.y:4282 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6968,7 +6963,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4297 +// line internal/php7/php7.y:4293 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6981,7 +6976,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4308 +// line internal/php7/php7.y:4304 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6994,7 +6989,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4322 +// line internal/php7/php7.y:4318 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7006,7 +7001,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4332 +// line internal/php7/php7.y:4328 { yyVAL.node = yyDollar[2].node @@ -7016,13 +7011,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4340 +// line internal/php7/php7.y:4336 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4347 +// line internal/php7/php7.y:4343 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7034,7 +7029,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4357 +// line internal/php7/php7.y:4353 { yyVAL.node = yyDollar[2].node @@ -7044,31 +7039,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4365 +// line internal/php7/php7.y:4361 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4372 +// line internal/php7/php7.y:4368 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4379 +// line internal/php7/php7.y:4375 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4383 +// line internal/php7/php7.y:4379 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4390 +// line internal/php7/php7.y:4386 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7081,7 +7076,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4401 +// line internal/php7/php7.y:4397 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7091,7 +7086,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4412 +// line internal/php7/php7.y:4408 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7104,7 +7099,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4423 +// line internal/php7/php7.y:4419 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7116,7 +7111,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4433 +// line internal/php7/php7.y:4429 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7132,7 +7127,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4447 +// line internal/php7/php7.y:4443 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7146,7 +7141,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4459 +// line internal/php7/php7.y:4455 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7158,7 +7153,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4465 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7177,7 +7172,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4486 +// line internal/php7/php7.y:4482 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7194,13 +7189,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4504 +// line internal/php7/php7.y:4500 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4508 +// line internal/php7/php7.y:4504 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7213,13 +7208,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4519 +// line internal/php7/php7.y:4515 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4523 +// line internal/php7/php7.y:4519 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7232,7 +7227,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4537 +// line internal/php7/php7.y:4533 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7246,7 +7241,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4549 +// line internal/php7/php7.y:4545 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7263,7 +7258,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4564 +// line internal/php7/php7.y:4560 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7282,7 +7277,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4581 +// line internal/php7/php7.y:4577 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7297,7 +7292,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4594 +// line internal/php7/php7.y:4590 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7314,7 +7309,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4609 +// line internal/php7/php7.y:4605 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7333,7 +7328,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4626 +// line internal/php7/php7.y:4622 { yyVAL.node = yyDollar[2].node @@ -7343,7 +7338,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4637 +// line internal/php7/php7.y:4633 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7355,7 +7350,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4647 +// line internal/php7/php7.y:4643 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7372,7 +7367,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4662 +// line internal/php7/php7.y:4658 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7398,7 +7393,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4686 +// line internal/php7/php7.y:4682 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7412,7 +7407,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4701 +// line internal/php7/php7.y:4697 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7430,7 +7425,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4717 +// line internal/php7/php7.y:4713 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7452,7 +7447,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4737 +// line internal/php7/php7.y:4733 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7464,7 +7459,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4747 +// line internal/php7/php7.y:4743 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7476,7 +7471,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4757 +// line internal/php7/php7.y:4753 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7498,7 +7493,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4777 +// line internal/php7/php7.y:4773 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7510,7 +7505,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4787 +// line internal/php7/php7.y:4783 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7522,13 +7517,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4800 +// line internal/php7/php7.y:4796 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4804 +// line internal/php7/php7.y:4800 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7537,7 +7532,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4814 +// line internal/php7/php7.y:4810 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 613408f..8a2dfb4 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -264,6 +264,7 @@ import ( %type method_body %type foreach_statement for_statement while_statement %type inline_function +%type unset_variables %type extends_from %type implements_list %type interface_extends_list @@ -277,7 +278,7 @@ import ( %type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list %type const_list for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations property_list -%type case_list trait_adaptation_list unset_variables +%type case_list trait_adaptation_list %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list %type array_pair_list non_empty_argument_list top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list @@ -998,21 +999,14 @@ statement: } | T_UNSET '(' unset_variables possible_comma ')' ';' { - $$ = &ast.StmtUnset{ast.Node{}, $3} + $3.(*ast.StmtUnset).UnsetTkn = $1 + $3.(*ast.StmtUnset).OpenParenthesisTkn = $2 + $3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4) + $3.(*ast.StmtUnset).CloseParenthesisTkn = $5 + $3.(*ast.StmtUnset).SemiColonTkn = $6 + $3.(*ast.StmtUnset).Node.Position = position.NewTokensPosition($1, $6) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Unset, $2.SkippedTokens) - if $4 != nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.SkippedTokens, $5.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.CloseParenthesisToken, $6.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $6.SkippedTokens) + $$ = $3 } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement { @@ -1205,14 +1199,16 @@ finally_statement: unset_variables: unset_variable { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtUnset{ + Vars: []ast.Vertex{$1}, + } } | unset_variables ',' unset_variable { - $$ = append($1, $3) + $1.(*ast.StmtUnset).Vars = append($1.(*ast.StmtUnset).Vars, $3) + $1.(*ast.StmtUnset).SeparatorTkns = append($1.(*ast.StmtUnset).SeparatorTkns, $2) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index e83b438..50235a7 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -783,7 +783,12 @@ func (n *StmtTry) Accept(v NodeVisitor) { // StmtUnset node type StmtUnset struct { Node - Vars []Vertex + UnsetTkn *token.Token + OpenParenthesisTkn *token.Token + Vars []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtUnset) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index f3c440e..d3ad950 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -204,3 +204,12 @@ func (v *FilterTokens) StmtEcho(n *ast.StmtEcho) { func (v *FilterTokens) StmtInlineHtml(n *ast.StmtInlineHtml) { n.InlineHtmlTkn = nil } + +func (v *FilterTokens) StmtUnset(n *ast.StmtUnset) { + n.UnsetTkn = nil + n.OpenParenthesisTkn = nil + n.SeparatorTkns = nil + n.CloseParenthesisTkn = nil + n.SemiColonTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index b35840d..0068785 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2905,24 +2905,12 @@ func (p *Printer) printStmtTry(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtUnset(n ast.Vertex) { - nn := n.(*ast.StmtUnset) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("unset")) - p.printFreeFloating(nn, token.Unset) - p.write([]byte("(")) - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, token.VarList) - p.write([]byte(")")) - p.printFreeFloating(nn, token.CloseParenthesisToken) - - p.printFreeFloating(nn, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtUnset(n *ast.StmtUnset) { + p.printToken(n.UnsetTkn, "unset") + p.printToken(n.OpenParenthesisTkn, "(") + p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtUse(n *ast.StmtUse) { From 69bc0af2bed3d06487fca47189d0efb24641f08d Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 14 Sep 2020 18:36:55 +0300 Subject: [PATCH 062/140] [refactoring] update ast structure of "Foreach" node --- internal/php5/parser_test.go | 3 +- internal/php5/php5.go | 1031 +++++++++++------------ internal/php5/php5.y | 123 +-- internal/php5/php5_test.go | 3 +- internal/php7/parser_test.go | 3 +- internal/php7/php7.go | 1076 ++++++++++++------------ internal/php7/php7.y | 88 +- internal/php7/php7_test.go | 3 +- pkg/ast/ast.go | 1 - pkg/ast/node.go | 30 +- pkg/ast/traverser/dfs.go | 27 - pkg/ast/visitor/dump.go | 6 - pkg/ast/visitor/filter_parser_nodes.go | 20 - pkg/ast/visitor/filter_tokens.go | 11 + pkg/ast/visitor/null.go | 4 - pkg/printer/pretty_printer.go | 55 +- pkg/printer/pretty_printer_test.go | 3 +- pkg/printer/printer.go | 118 +-- pkg/printer/printer_test.go | 3 +- 19 files changed, 1202 insertions(+), 1406 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 11e39da..0eb1d67 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -6431,7 +6431,7 @@ func TestStmtForeach_Alt(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltForeach{ + &ast.StmtForeach{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -6440,6 +6440,7 @@ func TestStmtForeach_Alt(t *testing.T) { EndPos: 35, }, }, + Alt: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 324e992..498f6b5 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6190 +// line internal/php5/php5.y:6151 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3228,87 +3228,45 @@ yydefault: yyDollar = yyS[yypt-8 : yypt+1] // line internal/php5/php5.y:1096 { + yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token + yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token + yyDollar[8].node.(*ast.StmtForeach).Expr = yyDollar[3].node + yyDollar[8].node.(*ast.StmtForeach).AsTkn = yyDollar[4].token if yyDollar[6].node == nil { - switch n := yyDollar[8].node.(type) { - case *ast.StmtForeach: - n.Expr = yyDollar[3].node - n.Var = yyDollar[5].node - case *ast.StmtAltForeach: - n.Expr = yyDollar[3].node - n.Var = yyDollar[5].node - } + yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[5].node } else { - switch n := yyDollar[8].node.(type) { - case *ast.StmtForeach: - n.Expr = yyDollar[3].node - n.Key = yyDollar[5].node - n.Var = yyDollar[6].node - case *ast.StmtAltForeach: - n.Expr = yyDollar[3].node - n.Key = yyDollar[5].node - n.Var = yyDollar[6].node - } + yyDollar[8].node.(*ast.StmtForeach).Key = yyDollar[5].node + yyDollar[8].node.(*ast.StmtForeach).DoubleArrowTkn = yyDollar[6].node.(*ast.StmtForeach).DoubleArrowTkn + yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[6].node.(*ast.StmtForeach).Var } + yyDollar[8].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[7].token + yyDollar[8].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) yyVAL.node = yyDollar[8].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) - if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) - delete(yyDollar[6].node.GetNode().Tokens, token.Key) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.SkippedTokens) } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1134 + // line internal/php5/php5.y:1114 { + yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token + yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token + yyDollar[8].node.(*ast.StmtForeach).Expr = yyDollar[3].node + yyDollar[8].node.(*ast.StmtForeach).AsTkn = yyDollar[4].token if yyDollar[6].node == nil { - switch n := yyDollar[8].node.(type) { - case *ast.StmtForeach: - n.Expr = yyDollar[3].node - n.Var = yyDollar[5].node - case *ast.StmtAltForeach: - n.Expr = yyDollar[3].node - n.Var = yyDollar[5].node - } + yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[5].node } else { - switch n := yyDollar[8].node.(type) { - case *ast.StmtForeach: - n.Expr = yyDollar[3].node - n.Key = yyDollar[5].node - n.Var = yyDollar[6].node - case *ast.StmtAltForeach: - n.Expr = yyDollar[3].node - n.Key = yyDollar[5].node - n.Var = yyDollar[6].node - } + yyDollar[8].node.(*ast.StmtForeach).Key = yyDollar[5].node + yyDollar[8].node.(*ast.StmtForeach).DoubleArrowTkn = yyDollar[6].node.(*ast.StmtForeach).DoubleArrowTkn + yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[6].node.(*ast.StmtForeach).Var } + yyDollar[8].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[7].token + yyDollar[8].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) - // save position yyVAL.node = yyDollar[8].node - - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) - if yyDollar[6].node != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Key, yyDollar[6].node.GetNode().Tokens[token.Key]) - delete(yyDollar[6].node.GetNode().Tokens, token.Key) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[7].token.SkippedTokens) } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1172 + // line internal/php5/php5.y:1132 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3323,7 +3281,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1185 + // line internal/php5/php5.y:1145 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3336,7 +3294,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1196 + // line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3354,7 +3312,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1212 + // line internal/php5/php5.y:1172 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3368,7 +3326,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1224 + // line internal/php5/php5.y:1184 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3385,13 +3343,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1242 + // line internal/php5/php5.y:1202 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1246 + // line internal/php5/php5.y:1206 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3413,13 +3371,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1269 + // line internal/php5/php5.y:1229 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1273 + // line internal/php5/php5.y:1233 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3433,31 +3391,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1288 + // line internal/php5/php5.y:1248 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1292 + // line internal/php5/php5.y:1252 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1299 + // line internal/php5/php5.y:1259 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1303 + // line internal/php5/php5.y:1263 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1310 + // line internal/php5/php5.y:1270 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3478,7 +3436,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1332 + // line internal/php5/php5.y:1292 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3486,7 +3444,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1338 + // line internal/php5/php5.y:1298 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3495,49 +3453,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1308 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1315 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1322 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1329 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1373 + // line internal/php5/php5.y:1333 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1340 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1384 + // line internal/php5/php5.y:1344 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1391 + // line internal/php5/php5.y:1351 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3561,7 +3519,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1416 + // line internal/php5/php5.y:1376 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3589,7 +3547,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1442 + // line internal/php5/php5.y:1402 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3606,7 +3564,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1461 + // line internal/php5/php5.y:1421 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3618,7 +3576,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1471 + // line internal/php5/php5.y:1431 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3633,7 +3591,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1484 + // line internal/php5/php5.y:1444 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3645,7 +3603,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1494 + // line internal/php5/php5.y:1454 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3660,13 +3618,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1510 + // line internal/php5/php5.y:1470 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1514 + // line internal/php5/php5.y:1474 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3678,19 +3636,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1527 + // line internal/php5/php5.y:1487 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1534 + // line internal/php5/php5.y:1494 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1538 + // line internal/php5/php5.y:1498 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3702,13 +3660,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1551 + // line internal/php5/php5.y:1511 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1555 + // line internal/php5/php5.y:1515 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3720,13 +3678,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1568 + // line internal/php5/php5.y:1528 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1532 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3740,28 +3698,28 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1584 + // line internal/php5/php5.y:1544 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1588 + // line internal/php5/php5.y:1548 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtForeach{ + DoubleArrowTkn: yyDollar[1].token, + Var: yyDollar[2].node, + } } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1598 + // line internal/php5/php5.y:1558 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1602 + // line internal/php5/php5.y:1562 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3773,7 +3731,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1612 + // line internal/php5/php5.y:1572 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3787,7 +3745,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1627 + // line internal/php5/php5.y:1587 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3798,7 +3756,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1636 + // line internal/php5/php5.y:1596 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3818,37 +3776,38 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1657 + // line internal/php5/php5.y:1617 { - yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtForeach{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1664 + // line internal/php5/php5.y:1626 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndForeachTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1687 + // line internal/php5/php5.y:1648 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3857,7 +3816,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1694 + // line internal/php5/php5.y:1655 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3878,7 +3837,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1717 + // line internal/php5/php5.y:1678 { yyVAL.list = []ast.Vertex{ &ast.StmtConstant{ @@ -3900,7 +3859,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1737 + // line internal/php5/php5.y:1698 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ @@ -3921,7 +3880,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1760 + // line internal/php5/php5.y:1721 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3934,7 +3893,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1771 + // line internal/php5/php5.y:1732 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3948,7 +3907,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1783 + // line internal/php5/php5.y:1744 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3963,7 +3922,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1796 + // line internal/php5/php5.y:1757 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3979,13 +3938,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1814 + // line internal/php5/php5.y:1775 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1818 + // line internal/php5/php5.y:1779 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3999,7 +3958,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1830 + // line internal/php5/php5.y:1791 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4012,19 +3971,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1845 + // line internal/php5/php5.y:1806 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1849 + // line internal/php5/php5.y:1810 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1857 + // line internal/php5/php5.y:1818 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4035,7 +3994,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1866 + // line internal/php5/php5.y:1827 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4055,13 +4014,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1850 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1893 + // line internal/php5/php5.y:1854 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4076,13 +4035,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1910 + // line internal/php5/php5.y:1871 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1914 + // line internal/php5/php5.y:1875 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4104,13 +4063,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1938 + // line internal/php5/php5.y:1899 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1942 + // line internal/php5/php5.y:1903 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4122,13 +4081,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1956 + // line internal/php5/php5.y:1917 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1960 + // line internal/php5/php5.y:1921 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4147,25 +4106,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1981 + // line internal/php5/php5.y:1942 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1985 + // line internal/php5/php5.y:1946 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1992 + // line internal/php5/php5.y:1953 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1996 + // line internal/php5/php5.y:1957 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4174,7 +4133,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2006 + // line internal/php5/php5.y:1967 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4210,7 +4169,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2040 + // line internal/php5/php5.y:2001 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4247,13 +4206,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2079 + // line internal/php5/php5.y:2040 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2083 + // line internal/php5/php5.y:2044 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4265,7 +4224,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2093 + // line internal/php5/php5.y:2054 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4277,13 +4236,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2103 + // line internal/php5/php5.y:2064 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2111 + // line internal/php5/php5.y:2072 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4296,7 +4255,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2122 + // line internal/php5/php5.y:2083 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4309,7 +4268,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2133 + // line internal/php5/php5.y:2094 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4324,13 +4283,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2150 + // line internal/php5/php5.y:2111 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2154 + // line internal/php5/php5.y:2115 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4339,7 +4298,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2164 + // line internal/php5/php5.y:2125 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4351,7 +4310,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2174 + // line internal/php5/php5.y:2135 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4363,7 +4322,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2184 + // line internal/php5/php5.y:2145 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4375,7 +4334,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2194 + // line internal/php5/php5.y:2155 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4387,7 +4346,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2168 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4396,7 +4355,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2214 + // line internal/php5/php5.y:2175 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4404,7 +4363,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2224 + // line internal/php5/php5.y:2185 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4418,7 +4377,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2236 + // line internal/php5/php5.y:2197 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4430,7 +4389,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2246 + // line internal/php5/php5.y:2207 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4444,7 +4403,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2262 + // line internal/php5/php5.y:2223 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4468,7 +4427,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2284 + // line internal/php5/php5.y:2245 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4494,7 +4453,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2308 + // line internal/php5/php5.y:2269 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4519,7 +4478,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2331 + // line internal/php5/php5.y:2292 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4546,19 +4505,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2360 + // line internal/php5/php5.y:2321 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2364 + // line internal/php5/php5.y:2325 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2372 + // line internal/php5/php5.y:2333 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4572,7 +4531,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2345 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4580,13 +4539,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2390 + // line internal/php5/php5.y:2351 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2394 + // line internal/php5/php5.y:2355 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4617,7 +4576,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2426 + // line internal/php5/php5.y:2387 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4629,13 +4588,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2439 + // line internal/php5/php5.y:2400 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2443 + // line internal/php5/php5.y:2404 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4649,7 +4608,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2455 + // line internal/php5/php5.y:2416 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4661,7 +4620,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2465 + // line internal/php5/php5.y:2426 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4673,31 +4632,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2439 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2482 + // line internal/php5/php5.y:2443 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2489 + // line internal/php5/php5.y:2450 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2493 + // line internal/php5/php5.y:2454 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2461 { yyVAL.node = yyDollar[1].node @@ -4707,7 +4666,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2508 + // line internal/php5/php5.y:2469 { yyVAL.node = yyDollar[1].node @@ -4717,7 +4676,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2519 + // line internal/php5/php5.y:2480 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4730,13 +4689,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2533 + // line internal/php5/php5.y:2494 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2537 + // line internal/php5/php5.y:2498 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4745,7 +4704,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2508 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4759,13 +4718,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2559 + // line internal/php5/php5.y:2520 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2566 + // line internal/php5/php5.y:2527 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4781,7 +4740,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2583 + // line internal/php5/php5.y:2544 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4797,7 +4756,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2597 + // line internal/php5/php5.y:2558 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4810,19 +4769,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2611 + // line internal/php5/php5.y:2572 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2615 + // line internal/php5/php5.y:2576 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2622 + // line internal/php5/php5.y:2583 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4835,7 +4794,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2633 + // line internal/php5/php5.y:2594 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4848,13 +4807,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2647 + // line internal/php5/php5.y:2608 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2651 + // line internal/php5/php5.y:2612 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4867,31 +4826,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2665 + // line internal/php5/php5.y:2626 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2669 + // line internal/php5/php5.y:2630 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2676 + // line internal/php5/php5.y:2637 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2680 + // line internal/php5/php5.y:2641 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2687 + // line internal/php5/php5.y:2648 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4903,7 +4862,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2697 + // line internal/php5/php5.y:2658 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4915,7 +4874,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2707 + // line internal/php5/php5.y:2668 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4927,7 +4886,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2717 + // line internal/php5/php5.y:2678 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4939,7 +4898,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2688 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4951,7 +4910,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2737 + // line internal/php5/php5.y:2698 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4963,7 +4922,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2750 + // line internal/php5/php5.y:2711 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4981,7 +4940,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2766 + // line internal/php5/php5.y:2727 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5000,7 +4959,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2783 + // line internal/php5/php5.y:2744 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5017,7 +4976,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2798 + // line internal/php5/php5.y:2759 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5035,7 +4994,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2817 + // line internal/php5/php5.y:2778 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5060,7 +5019,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2840 + // line internal/php5/php5.y:2801 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5088,7 +5047,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2869 + // line internal/php5/php5.y:2830 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5097,7 +5056,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2837 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5105,19 +5064,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2886 + // line internal/php5/php5.y:2847 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2890 + // line internal/php5/php5.y:2851 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2897 + // line internal/php5/php5.y:2858 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5126,25 +5085,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2904 + // line internal/php5/php5.y:2865 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2911 + // line internal/php5/php5.y:2872 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2915 + // line internal/php5/php5.y:2876 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2922 + // line internal/php5/php5.y:2883 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5158,7 +5117,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2934 + // line internal/php5/php5.y:2895 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5172,37 +5131,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2949 + // line internal/php5/php5.y:2910 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2953 + // line internal/php5/php5.y:2914 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2957 + // line internal/php5/php5.y:2918 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2964 + // line internal/php5/php5.y:2925 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2929 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2975 + // line internal/php5/php5.y:2936 { if yyDollar[3].node != nil { @@ -5218,7 +5177,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2992 + // line internal/php5/php5.y:2953 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5235,7 +5194,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3007 + // line internal/php5/php5.y:2968 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5248,7 +5207,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3018 + // line internal/php5/php5.y:2979 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5262,7 +5221,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3030 + // line internal/php5/php5.y:2991 { var _new *ast.ExprNew @@ -5289,7 +5248,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3055 + // line internal/php5/php5.y:3016 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5301,7 +5260,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3026 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5313,7 +5272,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3075 + // line internal/php5/php5.y:3036 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5326,7 +5285,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3086 + // line internal/php5/php5.y:3047 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5339,7 +5298,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3097 + // line internal/php5/php5.y:3058 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5352,7 +5311,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3108 + // line internal/php5/php5.y:3069 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5365,7 +5324,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3119 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5378,7 +5337,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3130 + // line internal/php5/php5.y:3091 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5391,7 +5350,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3141 + // line internal/php5/php5.y:3102 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5404,7 +5363,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3152 + // line internal/php5/php5.y:3113 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5417,7 +5376,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3163 + // line internal/php5/php5.y:3124 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5430,7 +5389,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3174 + // line internal/php5/php5.y:3135 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5443,7 +5402,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3185 + // line internal/php5/php5.y:3146 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5456,7 +5415,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3196 + // line internal/php5/php5.y:3157 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5469,7 +5428,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3207 + // line internal/php5/php5.y:3168 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5481,7 +5440,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3217 + // line internal/php5/php5.y:3178 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5494,7 +5453,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3228 + // line internal/php5/php5.y:3189 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5506,7 +5465,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3199 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5519,7 +5478,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3249 + // line internal/php5/php5.y:3210 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5532,7 +5491,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3260 + // line internal/php5/php5.y:3221 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5545,7 +5504,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3271 + // line internal/php5/php5.y:3232 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5558,7 +5517,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3282 + // line internal/php5/php5.y:3243 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5571,7 +5530,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3293 + // line internal/php5/php5.y:3254 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5584,7 +5543,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3304 + // line internal/php5/php5.y:3265 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5597,7 +5556,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3315 + // line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5610,7 +5569,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3326 + // line internal/php5/php5.y:3287 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5622,7 +5581,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3336 + // line internal/php5/php5.y:3297 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5635,7 +5594,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3347 + // line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5648,7 +5607,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3358 + // line internal/php5/php5.y:3319 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5661,7 +5620,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3369 + // line internal/php5/php5.y:3330 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5674,7 +5633,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3341 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5687,7 +5646,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3352 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5700,7 +5659,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3402 + // line internal/php5/php5.y:3363 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,7 +5672,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3413 + // line internal/php5/php5.y:3374 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5726,7 +5685,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3385 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5738,7 +5697,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3395 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5750,7 +5709,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3444 + // line internal/php5/php5.y:3405 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5762,7 +5721,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3454 + // line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5774,7 +5733,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3464 + // line internal/php5/php5.y:3425 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5787,7 +5746,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3475 + // line internal/php5/php5.y:3436 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5800,7 +5759,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3486 + // line internal/php5/php5.y:3447 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5772,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3497 + // line internal/php5/php5.y:3458 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5827,7 +5786,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3509 + // line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5840,7 +5799,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3520 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5853,7 +5812,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3531 + // line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5866,7 +5825,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3542 + // line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5879,7 +5838,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3553 + // line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5892,19 +5851,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3564 + // line internal/php5/php5.y:3525 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3568 + // line internal/php5/php5.y:3529 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3572 + // line internal/php5/php5.y:3533 { yyVAL.node = yyDollar[2].node @@ -5936,7 +5895,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3602 + // line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5950,7 +5909,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3614 + // line internal/php5/php5.y:3575 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5964,13 +5923,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3626 + // line internal/php5/php5.y:3587 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3630 + // line internal/php5/php5.y:3591 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5983,7 +5942,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3641 + // line internal/php5/php5.y:3602 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5996,7 +5955,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3652 + // line internal/php5/php5.y:3613 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6009,7 +5968,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3663 + // line internal/php5/php5.y:3624 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6022,7 +5981,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3635 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6035,7 +5994,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3685 + // line internal/php5/php5.y:3646 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6048,7 +6007,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3657 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6061,7 +6020,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3707 + // line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6081,7 +6040,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3725 + // line internal/php5/php5.y:3686 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6093,25 +6052,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3735 + // line internal/php5/php5.y:3696 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3739 + // line internal/php5/php5.y:3700 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3743 + // line internal/php5/php5.y:3704 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3747 + // line internal/php5/php5.y:3708 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6123,7 +6082,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3757 + // line internal/php5/php5.y:3718 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6135,7 +6094,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3767 + // line internal/php5/php5.y:3728 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6147,7 +6106,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3777 + // line internal/php5/php5.y:3738 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6174,7 +6133,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3801 + // line internal/php5/php5.y:3762 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6202,7 +6161,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3829 + // line internal/php5/php5.y:3790 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6214,7 +6173,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3839 + // line internal/php5/php5.y:3800 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6226,7 +6185,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3849 + // line internal/php5/php5.y:3810 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6239,7 +6198,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3860 + // line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6252,7 +6211,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3874 + // line internal/php5/php5.y:3835 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6265,7 +6224,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3885 + // line internal/php5/php5.y:3846 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6278,7 +6237,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3896 + // line internal/php5/php5.y:3857 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6294,7 +6253,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3910 + // line internal/php5/php5.y:3871 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6307,7 +6266,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3924 + // line internal/php5/php5.y:3885 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6321,7 +6280,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3936 + // line internal/php5/php5.y:3897 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6334,19 +6293,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3950 + // line internal/php5/php5.y:3911 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3957 + // line internal/php5/php5.y:3918 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3961 + // line internal/php5/php5.y:3922 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6360,7 +6319,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3976 + // line internal/php5/php5.y:3937 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6376,7 +6335,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3990 + // line internal/php5/php5.y:3951 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6395,7 +6354,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4007 + // line internal/php5/php5.y:3968 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6410,7 +6369,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4020 + // line internal/php5/php5.y:3981 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6428,7 +6387,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4039 + // line internal/php5/php5.y:4000 { name := &ast.NameName{ Node: ast.Node{ @@ -6443,7 +6402,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4052 + // line internal/php5/php5.y:4013 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6460,7 +6419,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4067 + // line internal/php5/php5.y:4028 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6476,7 +6435,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4081 + // line internal/php5/php5.y:4042 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6489,7 +6448,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4092 + // line internal/php5/php5.y:4053 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6502,7 +6461,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4103 + // line internal/php5/php5.y:4064 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6515,7 +6474,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4114 + // line internal/php5/php5.y:4075 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6528,7 +6487,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4125 + // line internal/php5/php5.y:4086 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6540,7 +6499,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4138 + // line internal/php5/php5.y:4099 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6552,7 +6511,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4148 + // line internal/php5/php5.y:4109 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6563,7 +6522,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4157 + // line internal/php5/php5.y:4118 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6576,7 +6535,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4168 + // line internal/php5/php5.y:4129 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6588,7 +6547,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4181 + // line internal/php5/php5.y:4142 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6599,7 +6558,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4190 + // line internal/php5/php5.y:4151 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6612,7 +6571,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4201 + // line internal/php5/php5.y:4162 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6624,19 +6583,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4214 + // line internal/php5/php5.y:4175 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4218 + // line internal/php5/php5.y:4179 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4225 + // line internal/php5/php5.y:4186 { yyVAL.node = yyDollar[1].node @@ -6677,25 +6636,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4264 + // line internal/php5/php5.y:4225 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4272 + // line internal/php5/php5.y:4233 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4276 + // line internal/php5/php5.y:4237 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4245 { yyVAL.list = yyDollar[2].list @@ -6704,13 +6663,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4294 + // line internal/php5/php5.y:4255 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4298 + // line internal/php5/php5.y:4259 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6726,19 +6685,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4312 + // line internal/php5/php5.y:4273 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4319 + // line internal/php5/php5.y:4280 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4323 + // line internal/php5/php5.y:4284 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6748,25 +6707,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4331 + // line internal/php5/php5.y:4292 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4338 + // line internal/php5/php5.y:4299 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4342 + // line internal/php5/php5.y:4303 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4349 + // line internal/php5/php5.y:4310 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6778,7 +6737,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4359 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6790,7 +6749,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4369 + // line internal/php5/php5.y:4330 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6802,7 +6761,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4379 + // line internal/php5/php5.y:4340 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6814,7 +6773,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4350 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6826,7 +6785,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4399 + // line internal/php5/php5.y:4360 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6838,7 +6797,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4409 + // line internal/php5/php5.y:4370 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6850,7 +6809,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4380 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6862,7 +6821,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4429 + // line internal/php5/php5.y:4390 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6874,7 +6833,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4439 + // line internal/php5/php5.y:4400 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6886,7 +6845,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4449 + // line internal/php5/php5.y:4410 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6900,7 +6859,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4461 + // line internal/php5/php5.y:4422 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6912,7 +6871,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4474 + // line internal/php5/php5.y:4435 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6928,25 +6887,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4491 + // line internal/php5/php5.y:4452 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4459 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4502 + // line internal/php5/php5.y:4463 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4506 + // line internal/php5/php5.y:4467 { name := &ast.NameName{ Node: ast.Node{ @@ -6961,7 +6920,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4519 + // line internal/php5/php5.y:4480 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6978,7 +6937,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4534 + // line internal/php5/php5.y:4495 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6994,7 +6953,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4548 + // line internal/php5/php5.y:4509 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7008,7 +6967,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4560 + // line internal/php5/php5.y:4521 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7021,13 +6980,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4571 + // line internal/php5/php5.y:4532 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4575 + // line internal/php5/php5.y:4536 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7039,13 +6998,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4585 + // line internal/php5/php5.y:4546 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4592 + // line internal/php5/php5.y:4553 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7058,7 +7017,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4603 + // line internal/php5/php5.y:4564 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7071,7 +7030,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4614 + // line internal/php5/php5.y:4575 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7084,7 +7043,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4625 + // line internal/php5/php5.y:4586 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7097,7 +7056,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4636 + // line internal/php5/php5.y:4597 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7110,7 +7069,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4647 + // line internal/php5/php5.y:4608 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7123,7 +7082,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4658 + // line internal/php5/php5.y:4619 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7136,7 +7095,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4630 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7148,7 +7107,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4679 + // line internal/php5/php5.y:4640 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7160,7 +7119,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4689 + // line internal/php5/php5.y:4650 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7173,7 +7132,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4700 + // line internal/php5/php5.y:4661 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7186,7 +7145,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4711 + // line internal/php5/php5.y:4672 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7199,7 +7158,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4722 + // line internal/php5/php5.y:4683 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7212,7 +7171,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4733 + // line internal/php5/php5.y:4694 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7225,7 +7184,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4744 + // line internal/php5/php5.y:4705 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7238,7 +7197,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4755 + // line internal/php5/php5.y:4716 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7251,7 +7210,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4766 + // line internal/php5/php5.y:4727 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7264,7 +7223,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4777 + // line internal/php5/php5.y:4738 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7277,7 +7236,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4788 + // line internal/php5/php5.y:4749 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7290,7 +7249,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4799 + // line internal/php5/php5.y:4760 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7303,7 +7262,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4810 + // line internal/php5/php5.y:4771 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7316,7 +7275,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4821 + // line internal/php5/php5.y:4782 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7329,7 +7288,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4832 + // line internal/php5/php5.y:4793 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7342,7 +7301,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4843 + // line internal/php5/php5.y:4804 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7356,7 +7315,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4855 + // line internal/php5/php5.y:4816 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7369,7 +7328,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4866 + // line internal/php5/php5.y:4827 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7382,7 +7341,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4877 + // line internal/php5/php5.y:4838 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7395,7 +7354,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4888 + // line internal/php5/php5.y:4849 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7408,7 +7367,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4899 + // line internal/php5/php5.y:4860 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7422,7 +7381,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4911 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7436,7 +7395,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4884 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7448,7 +7407,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4933 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7460,7 +7419,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4943 + // line internal/php5/php5.y:4904 { yyVAL.node = yyDollar[2].node @@ -7470,13 +7429,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4954 + // line internal/php5/php5.y:4915 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4958 + // line internal/php5/php5.y:4919 { name := &ast.NameName{ Node: ast.Node{ @@ -7491,7 +7450,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4971 + // line internal/php5/php5.y:4932 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7508,7 +7467,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4986 + // line internal/php5/php5.y:4947 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7524,7 +7483,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5003 + // line internal/php5/php5.y:4964 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7538,25 +7497,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5015 + // line internal/php5/php5.y:4976 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5019 + // line internal/php5/php5.y:4980 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5023 + // line internal/php5/php5.y:4984 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5027 + // line internal/php5/php5.y:4988 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7568,7 +7527,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5037 + // line internal/php5/php5.y:4998 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7580,7 +7539,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5047 + // line internal/php5/php5.y:5008 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7592,13 +7551,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5060 + // line internal/php5/php5.y:5021 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5064 + // line internal/php5/php5.y:5025 { yyVAL.list = yyDollar[1].list @@ -7609,19 +7568,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5076 + // line internal/php5/php5.y:5037 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5041 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5087 + // line internal/php5/php5.y:5048 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7636,7 +7595,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5100 + // line internal/php5/php5.y:5061 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7650,7 +7609,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5073 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7664,7 +7623,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5124 + // line internal/php5/php5.y:5085 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7677,19 +7636,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5138 + // line internal/php5/php5.y:5099 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5142 + // line internal/php5/php5.y:5103 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5149 + // line internal/php5/php5.y:5110 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7706,7 +7665,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5164 + // line internal/php5/php5.y:5125 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7723,25 +7682,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5183 + // line internal/php5/php5.y:5144 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5191 + // line internal/php5/php5.y:5152 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5198 + // line internal/php5/php5.y:5159 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5205 + // line internal/php5/php5.y:5166 { yyVAL.node = yyDollar[1].node @@ -7799,25 +7758,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5261 + // line internal/php5/php5.y:5222 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5268 + // line internal/php5/php5.y:5229 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5272 + // line internal/php5/php5.y:5233 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5280 + // line internal/php5/php5.y:5241 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7831,7 +7790,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5295 + // line internal/php5/php5.y:5256 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7845,7 +7804,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5268 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7859,7 +7818,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5322 + // line internal/php5/php5.y:5283 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7868,31 +7827,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5332 + // line internal/php5/php5.y:5293 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5336 + // line internal/php5/php5.y:5297 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5340 + // line internal/php5/php5.y:5301 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5347 + // line internal/php5/php5.y:5308 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5351 + // line internal/php5/php5.y:5312 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7904,7 +7863,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5364 + // line internal/php5/php5.y:5325 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7917,7 +7876,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5375 + // line internal/php5/php5.y:5336 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7930,13 +7889,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5389 + // line internal/php5/php5.y:5350 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5396 + // line internal/php5/php5.y:5357 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7949,7 +7908,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5407 + // line internal/php5/php5.y:5368 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7962,31 +7921,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5382 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5425 + // line internal/php5/php5.y:5386 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5429 + // line internal/php5/php5.y:5390 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5437 + // line internal/php5/php5.y:5398 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5441 + // line internal/php5/php5.y:5402 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7998,13 +7957,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5451 + // line internal/php5/php5.y:5412 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5458 + // line internal/php5/php5.y:5419 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8017,7 +7976,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5469 + // line internal/php5/php5.y:5430 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8030,13 +7989,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5480 + // line internal/php5/php5.y:5441 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5488 + // line internal/php5/php5.y:5449 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8050,7 +8009,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5461 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8064,25 +8023,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5515 + // line internal/php5/php5.y:5476 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5519 + // line internal/php5/php5.y:5480 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5527 + // line internal/php5/php5.y:5488 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5531 + // line internal/php5/php5.y:5492 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8092,7 +8051,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5542 + // line internal/php5/php5.y:5503 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8106,7 +8065,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5554 + // line internal/php5/php5.y:5515 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8120,7 +8079,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5566 + // line internal/php5/php5.y:5527 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8130,7 +8089,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5577 + // line internal/php5/php5.y:5538 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8142,7 +8101,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5587 + // line internal/php5/php5.y:5548 { yyVAL.node = yyDollar[2].node @@ -8155,7 +8114,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5601 + // line internal/php5/php5.y:5562 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8168,7 +8127,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5612 + // line internal/php5/php5.y:5573 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8185,7 +8144,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5630 + // line internal/php5/php5.y:5591 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8198,7 +8157,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5602 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8208,7 +8167,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5653 + // line internal/php5/php5.y:5614 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8220,7 +8179,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5663 + // line internal/php5/php5.y:5624 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8236,19 +8195,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5677 + // line internal/php5/php5.y:5638 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5685 + // line internal/php5/php5.y:5646 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5689 + // line internal/php5/php5.y:5650 { yyVAL.list = yyDollar[1].list @@ -8263,7 +8222,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5705 + // line internal/php5/php5.y:5666 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8278,7 +8237,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5718 + // line internal/php5/php5.y:5679 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8292,7 +8251,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5730 + // line internal/php5/php5.y:5691 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8306,7 +8265,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5742 + // line internal/php5/php5.y:5703 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8319,7 +8278,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5753 + // line internal/php5/php5.y:5714 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8337,7 +8296,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5769 + // line internal/php5/php5.y:5730 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8353,7 +8312,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5783 + // line internal/php5/php5.y:5744 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8370,7 +8329,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5798 + // line internal/php5/php5.y:5759 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8385,13 +8344,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5814 + // line internal/php5/php5.y:5775 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5818 + // line internal/php5/php5.y:5779 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8404,13 +8363,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5829 + // line internal/php5/php5.y:5790 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5833 + // line internal/php5/php5.y:5794 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8423,7 +8382,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5847 + // line internal/php5/php5.y:5808 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8437,7 +8396,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5859 + // line internal/php5/php5.y:5820 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8454,7 +8413,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5874 + // line internal/php5/php5.y:5835 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8473,7 +8432,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5891 + // line internal/php5/php5.y:5852 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8488,7 +8447,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5904 + // line internal/php5/php5.y:5865 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8505,7 +8464,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5919 + // line internal/php5/php5.y:5880 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8524,7 +8483,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5936 + // line internal/php5/php5.y:5897 { yyVAL.node = yyDollar[2].node @@ -8534,7 +8493,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5947 + // line internal/php5/php5.y:5908 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8546,7 +8505,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5957 + // line internal/php5/php5.y:5918 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8563,7 +8522,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5972 + // line internal/php5/php5.y:5933 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8577,7 +8536,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5987 + // line internal/php5/php5.y:5948 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8591,7 +8550,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5999 + // line internal/php5/php5.y:5960 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8613,7 +8572,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6019 + // line internal/php5/php5.y:5980 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8635,7 +8594,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6039 + // line internal/php5/php5.y:6000 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8647,7 +8606,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6049 + // line internal/php5/php5.y:6010 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8659,7 +8618,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6059 + // line internal/php5/php5.y:6020 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8681,7 +8640,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6079 + // line internal/php5/php5.y:6040 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8693,7 +8652,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6089 + // line internal/php5/php5.y:6050 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8705,13 +8664,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6102 + // line internal/php5/php5.y:6063 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6106 + // line internal/php5/php5.y:6067 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8720,19 +8679,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6116 + // line internal/php5/php5.y:6077 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6120 + // line internal/php5/php5.y:6081 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6088 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8748,7 +8707,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6141 + // line internal/php5/php5.y:6102 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8764,7 +8723,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6158 + // line internal/php5/php5.y:6119 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8780,7 +8739,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6175 + // line internal/php5/php5.y:6136 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index f599ddd..5fb516e 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1094,79 +1094,39 @@ unticked_statement: } | T_FOREACH '(' variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { + $8.(*ast.StmtForeach).ForeachTkn = $1 + $8.(*ast.StmtForeach).OpenParenthesisTkn = $2 + $8.(*ast.StmtForeach).Expr = $3 + $8.(*ast.StmtForeach).AsTkn = $4 if $6 == nil { - switch n := $8.(type) { - case *ast.StmtForeach : - n.Expr = $3 - n.Var = $5 - case *ast.StmtAltForeach : - n.Expr = $3 - n.Var = $5 - } + $8.(*ast.StmtForeach).Var = $5 } else { - switch n := $8.(type) { - case *ast.StmtForeach : - n.Expr = $3 - n.Key = $5 - n.Var = $6 - case *ast.StmtAltForeach : - n.Expr = $3 - n.Key = $5 - n.Var = $6 - } + $8.(*ast.StmtForeach).Key = $5 + $8.(*ast.StmtForeach).DoubleArrowTkn = $6.(*ast.StmtForeach).DoubleArrowTkn + $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } + $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 + $8.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $8) $$ = $8 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $8) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) - if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) - } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.SkippedTokens) } | T_FOREACH '(' expr_without_variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { + $8.(*ast.StmtForeach).ForeachTkn = $1 + $8.(*ast.StmtForeach).OpenParenthesisTkn = $2 + $8.(*ast.StmtForeach).Expr = $3 + $8.(*ast.StmtForeach).AsTkn = $4 if $6 == nil { - switch n := $8.(type) { - case *ast.StmtForeach : - n.Expr = $3 - n.Var = $5 - case *ast.StmtAltForeach : - n.Expr = $3 - n.Var = $5 - } + $8.(*ast.StmtForeach).Var = $5 } else { - switch n := $8.(type) { - case *ast.StmtForeach : - n.Expr = $3 - n.Key = $5 - n.Var = $6 - case *ast.StmtAltForeach : - n.Expr = $3 - n.Key = $5 - n.Var = $6 - } + $8.(*ast.StmtForeach).Key = $5 + $8.(*ast.StmtForeach).DoubleArrowTkn = $6.(*ast.StmtForeach).DoubleArrowTkn + $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } + $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 + $8.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $8) - // save position $$ = $8 - - $$.GetNode().Position = position.NewTokenNodePosition($1, $8) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) - if $6 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Key, $6.GetNode().Tokens[token.Key]); delete($6.GetNode().Tokens, token.Key) - } - yylex.(*Parser).setFreeFloating($$, token.Var, $7.SkippedTokens) } | T_DECLARE '(' declare_list ')' declare_statement { @@ -1586,10 +1546,10 @@ foreach_optional_arg: } | T_DOUBLE_ARROW foreach_variable { - $$ = $2 - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Key, $1.SkippedTokens) + $$ = &ast.StmtForeach{ + DoubleArrowTkn: $1, + Var: $2, + } } ; @@ -1655,29 +1615,30 @@ for_statement: foreach_statement: statement { - $$ = &ast.StmtForeach{ast.Node{}, nil, nil, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtForeach{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDFOREACH ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtForeach{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndForeachTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go index 8537e6c..406f860 100644 --- a/internal/php5/php5_test.go +++ b/internal/php5/php5_test.go @@ -4705,7 +4705,7 @@ func TestPhp5(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltForeach{ + &ast.StmtForeach{ Node: ast.Node{ Position: &position.Position{ StartLine: 81, @@ -4714,6 +4714,7 @@ func TestPhp5(t *testing.T) { EndPos: 1762, }, }, + Alt: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 5efe233..94835e1 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -7028,7 +7028,7 @@ func TestStmtForeach_Alt(t *testing.T) { }, }, Stmts: []ast.Vertex{ - &ast.StmtAltForeach{ + &ast.StmtForeach{ Node: ast.Node{ Position: &position.Position{ StartLine: 1, @@ -7037,6 +7037,7 @@ func TestStmtForeach_Alt(t *testing.T) { EndPos: 35, }, }, + Alt: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 56d0fc9..4b801a5 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4817 +// line internal/php7/php7.y:4797 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:294 + // line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:328 + // line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:335 + // line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:346 + // line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:353 + // line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:365 + // line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:379 + // line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:388 + // line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:399 + // line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:412 + // line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:437 + // line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:449 + // line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:465 + // line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:483 + // line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:495 + // line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:505 + // line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:516 + // line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:527 + // line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:539 + // line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2836,7 +2836,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:553 + // line internal/php7/php7.y:553 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2848,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:563 + // line internal/php7/php7.y:563 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2860,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:576 + // line internal/php7/php7.y:576 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2884,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:598 + // line internal/php7/php7.y:598 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2907,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:622 + // line internal/php7/php7.y:622 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2929,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:642 + // line internal/php7/php7.y:642 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2952,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:666 + // line internal/php7/php7.y:666 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:670 + // line internal/php7/php7.y:670 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:677 + // line internal/php7/php7.y:677 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2972,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:683 + // line internal/php7/php7.y:683 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:690 + // line internal/php7/php7.y:690 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2986,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:696 + // line internal/php7/php7.y:696 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:703 + // line internal/php7/php7.y:703 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3000,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:709 + // line internal/php7/php7.y:709 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:716 + // line internal/php7/php7.y:716 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:720 + // line internal/php7/php7.y:720 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3022,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:731 + // line internal/php7/php7.y:731 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3038,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:745 + // line internal/php7/php7.y:745 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:769 + // line internal/php7/php7.y:769 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:773 + // line internal/php7/php7.y:773 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:784 + // line internal/php7/php7.y:784 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -3085,13 +3085,13 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:790 + // line internal/php7/php7.y:790 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:797 + // line internal/php7/php7.y:797 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3104,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:808 + // line internal/php7/php7.y:808 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:815 + // line internal/php7/php7.y:815 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:820 + // line internal/php7/php7.y:820 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:824 + // line internal/php7/php7.y:824 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:828 + // line internal/php7/php7.y:828 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:832 + // line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:836 + // line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:840 + // line internal/php7/php7.y:840 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3161,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:854 + // line internal/php7/php7.y:854 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,19 +3174,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:865 + // line internal/php7/php7.y:865 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:869 + // line internal/php7/php7.y:869 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:873 + // line internal/php7/php7.y:873 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3198,7 +3198,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:883 + // line internal/php7/php7.y:883 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3215,7 +3215,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:898 + // line internal/php7/php7.y:898 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3231,7 +3231,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:912 + // line internal/php7/php7.y:912 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3243,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:922 + // line internal/php7/php7.y:922 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3256,7 +3256,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:933 + // line internal/php7/php7.y:933 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3269,7 +3269,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:944 + // line internal/php7/php7.y:944 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3282,7 +3282,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:955 + // line internal/php7/php7.y:955 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3292,7 +3292,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:963 + // line internal/php7/php7.y:963 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3302,7 +3302,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:971 + // line internal/php7/php7.y:971 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3312,7 +3312,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:979 + // line internal/php7/php7.y:979 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3324,7 +3324,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:989 + // line internal/php7/php7.y:989 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1001 + // line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,58 +3351,37 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1012 + // line internal/php7/php7.y:1012 { - switch n := yyDollar[7].node.(type) { - case *ast.StmtForeach: - n.Expr = yyDollar[3].node - n.Var = yyDollar[5].node - case *ast.StmtAltForeach: - n.Expr = yyDollar[3].node - n.Var = yyDollar[5].node - } + yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token + yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token + yyDollar[7].node.(*ast.StmtForeach).Expr = yyDollar[3].node + yyDollar[7].node.(*ast.StmtForeach).AsTkn = yyDollar[4].token + yyDollar[7].node.(*ast.StmtForeach).Var = yyDollar[5].node + yyDollar[7].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[6].token + yyDollar[7].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) yyVAL.node = yyDollar[7].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[6].token.SkippedTokens) } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1034 + // line internal/php7/php7.y:1024 { - switch n := yyDollar[9].node.(type) { - case *ast.StmtForeach: - n.Expr = yyDollar[3].node - n.Key = yyDollar[5].node - n.Var = yyDollar[7].node - case *ast.StmtAltForeach: - n.Expr = yyDollar[3].node - n.Key = yyDollar[5].node - n.Var = yyDollar[7].node - } + yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token + yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token + yyDollar[9].node.(*ast.StmtForeach).Expr = yyDollar[3].node + yyDollar[9].node.(*ast.StmtForeach).AsTkn = yyDollar[4].token + yyDollar[9].node.(*ast.StmtForeach).Key = yyDollar[5].node + yyDollar[9].node.(*ast.StmtForeach).DoubleArrowTkn = yyDollar[6].token + yyDollar[9].node.(*ast.StmtForeach).Var = yyDollar[7].node + yyDollar[9].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[8].token + yyDollar[9].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Foreach, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Key, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[8].token.SkippedTokens) } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1059 + // line internal/php7/php7.y:1038 { yyVAL.node = yyDollar[5].node yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list @@ -3417,7 +3396,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1072 + // line internal/php7/php7.y:1051 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3430,7 +3409,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1083 + // line internal/php7/php7.y:1062 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3447,7 +3426,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1098 + // line internal/php7/php7.y:1077 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3461,7 +3440,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1110 + // line internal/php7/php7.y:1089 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3478,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1104 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3493,13 +3472,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1140 + // line internal/php7/php7.y:1119 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1144 + // line internal/php7/php7.y:1123 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3521,13 +3500,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1166 + // line internal/php7/php7.y:1145 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1170 + // line internal/php7/php7.y:1149 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3541,13 +3520,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1182 + // line internal/php7/php7.y:1161 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1186 + // line internal/php7/php7.y:1165 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3561,7 +3540,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1201 + // line internal/php7/php7.y:1180 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3569,7 +3548,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1207 + // line internal/php7/php7.y:1186 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3578,13 +3557,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1217 + // line internal/php7/php7.y:1196 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1224 + // line internal/php7/php7.y:1203 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3614,31 +3593,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1255 + // line internal/php7/php7.y:1234 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1259 + // line internal/php7/php7.y:1238 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1245 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1270 + // line internal/php7/php7.y:1249 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1277 + // line internal/php7/php7.y:1256 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3656,7 +3635,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1293 + // line internal/php7/php7.y:1272 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3673,19 +3652,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1311 + // line internal/php7/php7.y:1290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1315 + // line internal/php7/php7.y:1294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1322 + // line internal/php7/php7.y:1301 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3697,7 +3676,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1332 + // line internal/php7/php7.y:1311 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3709,7 +3688,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1345 + // line internal/php7/php7.y:1324 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3726,7 +3705,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1363 + // line internal/php7/php7.y:1342 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3743,13 +3722,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1360 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1385 + // line internal/php7/php7.y:1364 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3761,13 +3740,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1398 + // line internal/php7/php7.y:1377 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1402 + // line internal/php7/php7.y:1381 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3779,13 +3758,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1415 + // line internal/php7/php7.y:1394 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1419 + // line internal/php7/php7.y:1398 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3797,13 +3776,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1432 + // line internal/php7/php7.y:1411 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1436 + // line internal/php7/php7.y:1415 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3815,7 +3794,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1425 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3829,7 +3808,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1458 + // line internal/php7/php7.y:1437 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3842,7 +3821,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1472 + // line internal/php7/php7.y:1451 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3853,7 +3832,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1481 + // line internal/php7/php7.y:1460 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3873,37 +3852,38 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1502 + // line internal/php7/php7.y:1481 { - yyVAL.node = &ast.StmtForeach{ast.Node{}, nil, nil, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtForeach{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1509 + // line internal/php7/php7.y:1490 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndForeachTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1531 + // line internal/php7/php7.y:1511 { yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} @@ -3912,7 +3892,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1538 + // line internal/php7/php7.y:1518 { stmtList := &ast.StmtStmtList{ Node: ast.Node{ @@ -3933,7 +3913,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1560 + // line internal/php7/php7.y:1540 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3946,7 +3926,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1571 + // line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3960,7 +3940,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1583 + // line internal/php7/php7.y:1563 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3975,7 +3955,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1596 + // line internal/php7/php7.y:1576 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3991,13 +3971,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1613 + // line internal/php7/php7.y:1593 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1617 + // line internal/php7/php7.y:1597 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4011,7 +3991,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1629 + // line internal/php7/php7.y:1609 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4024,19 +4004,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1643 + // line internal/php7/php7.y:1623 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1647 + // line internal/php7/php7.y:1627 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1634 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4047,7 +4027,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1643 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4067,7 +4047,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1684 + // line internal/php7/php7.y:1664 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4082,7 +4062,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1697 + // line internal/php7/php7.y:1677 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4101,13 +4081,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1717 + // line internal/php7/php7.y:1697 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1721 + // line internal/php7/php7.y:1701 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4123,7 +4103,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1738 + // line internal/php7/php7.y:1718 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4145,7 +4125,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1758 + // line internal/php7/php7.y:1738 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4169,7 +4149,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1783 + // line internal/php7/php7.y:1763 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4179,7 +4159,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1791 + // line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4203,25 +4183,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1816 + // line internal/php7/php7.y:1796 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1820 + // line internal/php7/php7.y:1800 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1827 + // line internal/php7/php7.y:1807 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1831 + // line internal/php7/php7.y:1811 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4230,7 +4210,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1841 + // line internal/php7/php7.y:1821 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4266,7 +4246,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1875 + // line internal/php7/php7.y:1855 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4303,25 +4283,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1913 + // line internal/php7/php7.y:1893 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1917 + // line internal/php7/php7.y:1897 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1924 + // line internal/php7/php7.y:1904 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1928 + // line internal/php7/php7.y:1908 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4333,7 +4313,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1941 + // line internal/php7/php7.y:1921 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4345,7 +4325,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1951 + // line internal/php7/php7.y:1931 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4357,19 +4337,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1961 + // line internal/php7/php7.y:1941 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1948 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1972 + // line internal/php7/php7.y:1952 { yyVAL.node = yyDollar[2].node @@ -4378,7 +4358,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1982 + // line internal/php7/php7.y:1962 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4391,7 +4371,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1993 + // line internal/php7/php7.y:1973 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4408,13 +4388,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 + // line internal/php7/php7.y:1991 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2015 + // line internal/php7/php7.y:1995 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4423,7 +4403,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2025 + // line internal/php7/php7.y:2005 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4435,7 +4415,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2035 + // line internal/php7/php7.y:2015 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4447,7 +4427,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2048 + // line internal/php7/php7.y:2028 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4456,7 +4436,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2035 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4464,13 +4444,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2064 + // line internal/php7/php7.y:2044 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2051 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4479,7 +4459,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2078 + // line internal/php7/php7.y:2058 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4487,7 +4467,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2067 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4508,7 +4488,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2106 + // line internal/php7/php7.y:2086 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4530,19 +4510,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2129 + // line internal/php7/php7.y:2109 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2113 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2140 + // line internal/php7/php7.y:2120 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4556,7 +4536,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2152 + // line internal/php7/php7.y:2132 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4570,7 +4550,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2164 + // line internal/php7/php7.y:2144 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4582,7 +4562,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2174 + // line internal/php7/php7.y:2154 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4613,13 +4593,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2206 + // line internal/php7/php7.y:2186 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2210 + // line internal/php7/php7.y:2190 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4633,7 +4613,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2202 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4645,7 +4625,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2232 + // line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4657,7 +4637,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2242 + // line internal/php7/php7.y:2222 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4669,19 +4649,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2255 + // line internal/php7/php7.y:2235 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2259 + // line internal/php7/php7.y:2239 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2266 + // line internal/php7/php7.y:2246 { yyVAL.node = yyDollar[1].node @@ -4691,7 +4671,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2274 + // line internal/php7/php7.y:2254 { yyVAL.node = yyDollar[1].node @@ -4701,7 +4681,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2265 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4714,7 +4694,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2299 + // line internal/php7/php7.y:2279 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4730,7 +4710,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2313 + // line internal/php7/php7.y:2293 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4746,7 +4726,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2307 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4762,7 +4742,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2341 + // line internal/php7/php7.y:2321 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4775,7 +4755,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2355 + // line internal/php7/php7.y:2335 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4789,13 +4769,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2367 + // line internal/php7/php7.y:2347 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2374 + // line internal/php7/php7.y:2354 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4811,7 +4791,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2391 + // line internal/php7/php7.y:2371 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4824,7 +4804,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2382 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4837,13 +4817,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2396 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2400 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4856,31 +4836,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2434 + // line internal/php7/php7.y:2414 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2418 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2445 + // line internal/php7/php7.y:2425 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2449 + // line internal/php7/php7.y:2429 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2456 + // line internal/php7/php7.y:2436 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4892,7 +4872,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2466 + // line internal/php7/php7.y:2446 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4904,7 +4884,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2456 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4916,7 +4896,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2486 + // line internal/php7/php7.y:2466 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4928,7 +4908,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2496 + // line internal/php7/php7.y:2476 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4940,7 +4920,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2506 + // line internal/php7/php7.y:2486 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4952,7 +4932,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2499 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4961,13 +4941,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2526 + // line internal/php7/php7.y:2506 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2533 + // line internal/php7/php7.y:2513 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4983,7 +4963,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2547 + // line internal/php7/php7.y:2527 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5000,7 +4980,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2565 + // line internal/php7/php7.y:2545 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5008,13 +4988,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2571 + // line internal/php7/php7.y:2551 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2578 + // line internal/php7/php7.y:2558 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5034,7 +5014,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2599 + // line internal/php7/php7.y:2579 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5054,7 +5034,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2620 + // line internal/php7/php7.y:2600 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5063,7 +5043,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2627 + // line internal/php7/php7.y:2607 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5071,25 +5051,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2636 + // line internal/php7/php7.y:2616 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2643 + // line internal/php7/php7.y:2623 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2647 + // line internal/php7/php7.y:2627 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2654 + // line internal/php7/php7.y:2634 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5098,13 +5078,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2661 + // line internal/php7/php7.y:2641 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2668 + // line internal/php7/php7.y:2648 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5122,7 +5102,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2687 + // line internal/php7/php7.y:2667 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5137,7 +5117,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2700 + // line internal/php7/php7.y:2680 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5149,7 +5129,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2713 + // line internal/php7/php7.y:2693 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5166,7 +5146,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2728 + // line internal/php7/php7.y:2708 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5182,7 +5162,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2742 + // line internal/php7/php7.y:2722 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5195,7 +5175,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2753 + // line internal/php7/php7.y:2733 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5209,7 +5189,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2765 + // line internal/php7/php7.y:2745 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5221,7 +5201,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2775 + // line internal/php7/php7.y:2755 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5234,7 +5214,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2786 + // line internal/php7/php7.y:2766 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5247,7 +5227,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2797 + // line internal/php7/php7.y:2777 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5260,7 +5240,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2808 + // line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5273,7 +5253,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2819 + // line internal/php7/php7.y:2799 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5286,7 +5266,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2830 + // line internal/php7/php7.y:2810 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5299,7 +5279,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2841 + // line internal/php7/php7.y:2821 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5312,7 +5292,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5325,7 +5305,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2863 + // line internal/php7/php7.y:2843 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5338,7 +5318,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2874 + // line internal/php7/php7.y:2854 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5351,7 +5331,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2885 + // line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5364,7 +5344,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2896 + // line internal/php7/php7.y:2876 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5377,7 +5357,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2907 + // line internal/php7/php7.y:2887 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5390,7 +5370,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2918 + // line internal/php7/php7.y:2898 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5403,7 +5383,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2929 + // line internal/php7/php7.y:2909 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5415,7 +5395,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2939 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5428,7 +5408,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2950 + // line internal/php7/php7.y:2930 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5440,7 +5420,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2960 + // line internal/php7/php7.y:2940 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5453,7 +5433,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2971 + // line internal/php7/php7.y:2951 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5466,7 +5446,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2982 + // line internal/php7/php7.y:2962 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5479,7 +5459,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2993 + // line internal/php7/php7.y:2973 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5492,7 +5472,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3004 + // line internal/php7/php7.y:2984 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5505,7 +5485,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3015 + // line internal/php7/php7.y:2995 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5518,7 +5498,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3006 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5531,7 +5511,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3037 + // line internal/php7/php7.y:3017 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5544,7 +5524,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3048 + // line internal/php7/php7.y:3028 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5556,7 +5536,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3058 + // line internal/php7/php7.y:3038 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5569,7 +5549,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3069 + // line internal/php7/php7.y:3049 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5582,7 +5562,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3060 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5595,7 +5575,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3091 + // line internal/php7/php7.y:3071 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5608,7 +5588,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3102 + // line internal/php7/php7.y:3082 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5601,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3093 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5614,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3124 + // line internal/php7/php7.y:3104 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5627,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3135 + // line internal/php7/php7.y:3115 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5640,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3146 + // line internal/php7/php7.y:3126 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5672,7 +5652,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3156 + // line internal/php7/php7.y:3136 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5684,7 +5664,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3146 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5696,7 +5676,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3176 + // line internal/php7/php7.y:3156 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5708,7 +5688,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5721,7 +5701,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3197 + // line internal/php7/php7.y:3177 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5714,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3208 + // line internal/php7/php7.y:3188 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,7 +5727,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3199 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5761,7 +5741,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3231 + // line internal/php7/php7.y:3211 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5774,7 +5754,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3242 + // line internal/php7/php7.y:3222 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5787,7 +5767,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3253 + // line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5800,7 +5780,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3264 + // line internal/php7/php7.y:3244 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5793,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3275 + // line internal/php7/php7.y:3255 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5806,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3286 + // line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5819,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3297 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5856,13 +5836,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3312 + // line internal/php7/php7.y:3292 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3316 + // line internal/php7/php7.y:3296 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5876,7 +5856,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3328 + // line internal/php7/php7.y:3308 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5890,7 +5870,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3340 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5903,13 +5883,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3351 + // line internal/php7/php7.y:3331 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3335 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5922,7 +5902,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3366 + // line internal/php7/php7.y:3346 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5935,7 +5915,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3377 + // line internal/php7/php7.y:3357 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5948,7 +5928,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3368 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5961,7 +5941,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3399 + // line internal/php7/php7.y:3379 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5974,7 +5954,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3410 + // line internal/php7/php7.y:3390 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5987,7 +5967,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3421 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6000,7 +5980,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3432 + // line internal/php7/php7.y:3412 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6020,7 +6000,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3450 + // line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6032,13 +6012,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3460 + // line internal/php7/php7.y:3440 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3444 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6050,7 +6030,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3454 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6062,7 +6042,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3484 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6074,7 +6054,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3494 + // line internal/php7/php7.y:3474 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6086,7 +6066,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3504 + // line internal/php7/php7.y:3484 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6099,7 +6079,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3515 + // line internal/php7/php7.y:3495 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6111,13 +6091,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3505 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3509 { yyVAL.node = yyDollar[2].node @@ -6138,7 +6118,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3550 + // line internal/php7/php7.y:3530 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6169,7 +6149,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3577 + // line internal/php7/php7.y:3557 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6195,25 +6175,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3587 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3611 + // line internal/php7/php7.y:3591 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3618 + // line internal/php7/php7.y:3598 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3622 + // line internal/php7/php7.y:3602 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6227,7 +6207,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3637 + // line internal/php7/php7.y:3617 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6236,13 +6216,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3644 + // line internal/php7/php7.y:3624 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3651 + // line internal/php7/php7.y:3631 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6256,7 +6236,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3663 + // line internal/php7/php7.y:3643 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6273,7 +6253,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3681 + // line internal/php7/php7.y:3661 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6285,7 +6265,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3691 + // line internal/php7/php7.y:3671 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6298,7 +6278,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3702 + // line internal/php7/php7.y:3682 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6311,7 +6291,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3713 + // line internal/php7/php7.y:3693 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6323,7 +6303,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3726 + // line internal/php7/php7.y:3706 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6335,31 +6315,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3716 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3743 + // line internal/php7/php7.y:3723 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3747 + // line internal/php7/php7.y:3727 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3754 + // line internal/php7/php7.y:3734 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3758 + // line internal/php7/php7.y:3738 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6376,13 +6356,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3776 + // line internal/php7/php7.y:3756 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3780 + // line internal/php7/php7.y:3760 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6392,25 +6372,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3768 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3795 + // line internal/php7/php7.y:3775 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3779 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3806 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6424,7 +6404,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3798 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6437,7 +6417,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6449,7 +6429,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3842 + // line internal/php7/php7.y:3822 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6461,7 +6441,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3832 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6473,7 +6453,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3862 + // line internal/php7/php7.y:3842 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6485,7 +6465,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3872 + // line internal/php7/php7.y:3852 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6497,7 +6477,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3862 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6509,7 +6489,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3872 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6521,7 +6501,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3902 + // line internal/php7/php7.y:3882 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6533,7 +6513,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3912 + // line internal/php7/php7.y:3892 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6545,7 +6525,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3902 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6557,7 +6537,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3932 + // line internal/php7/php7.y:3912 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6569,7 +6549,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3942 + // line internal/php7/php7.y:3922 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6583,7 +6563,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3954 + // line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6595,7 +6575,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3964 + // line internal/php7/php7.y:3944 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6607,7 +6587,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3974 + // line internal/php7/php7.y:3954 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6619,19 +6599,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3984 + // line internal/php7/php7.y:3964 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3988 + // line internal/php7/php7.y:3968 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3995 + // line internal/php7/php7.y:3975 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6643,7 +6623,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4005 + // line internal/php7/php7.y:3985 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6659,7 +6639,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4019 + // line internal/php7/php7.y:3999 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6675,43 +6655,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4016 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4040 + // line internal/php7/php7.y:4020 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4027 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4051 + // line internal/php7/php7.y:4031 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4058 + // line internal/php7/php7.y:4038 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4065 + // line internal/php7/php7.y:4045 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4069 + // line internal/php7/php7.y:4049 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6728,19 +6708,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4064 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4091 + // line internal/php7/php7.y:4071 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4095 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6757,19 +6737,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4110 + // line internal/php7/php7.y:4090 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4117 + // line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4121 + // line internal/php7/php7.y:4101 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6782,7 +6762,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4132 + // line internal/php7/php7.y:4112 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6795,7 +6775,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4143 + // line internal/php7/php7.y:4123 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6808,7 +6788,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4134 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6821,25 +6801,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4145 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4152 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4156 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4180 + // line internal/php7/php7.y:4160 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6852,7 +6832,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4194 + // line internal/php7/php7.y:4174 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6866,7 +6846,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4206 + // line internal/php7/php7.y:4186 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6880,7 +6860,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4218 + // line internal/php7/php7.y:4198 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6892,7 +6872,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4231 + // line internal/php7/php7.y:4211 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6905,7 +6885,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4222 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6918,13 +6898,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4256 + // line internal/php7/php7.y:4236 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4240 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6937,7 +6917,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4271 + // line internal/php7/php7.y:4251 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6950,7 +6930,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4282 + // line internal/php7/php7.y:4262 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6963,7 +6943,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4273 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6976,7 +6956,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4284 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6989,7 +6969,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4298 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7001,7 +6981,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4328 + // line internal/php7/php7.y:4308 { yyVAL.node = yyDollar[2].node @@ -7011,13 +6991,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4316 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4343 + // line internal/php7/php7.y:4323 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7029,7 +7009,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4333 { yyVAL.node = yyDollar[2].node @@ -7039,31 +7019,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4361 + // line internal/php7/php7.y:4341 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4348 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4375 + // line internal/php7/php7.y:4355 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4379 + // line internal/php7/php7.y:4359 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4386 + // line internal/php7/php7.y:4366 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7076,7 +7056,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4397 + // line internal/php7/php7.y:4377 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7086,7 +7066,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4408 + // line internal/php7/php7.y:4388 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7099,7 +7079,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4419 + // line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7111,7 +7091,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4429 + // line internal/php7/php7.y:4409 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7127,7 +7107,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4443 + // line internal/php7/php7.y:4423 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7141,7 +7121,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4455 + // line internal/php7/php7.y:4435 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7153,7 +7133,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4465 + // line internal/php7/php7.y:4445 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7172,7 +7152,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4482 + // line internal/php7/php7.y:4462 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7189,13 +7169,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4500 + // line internal/php7/php7.y:4480 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4504 + // line internal/php7/php7.y:4484 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7208,13 +7188,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4515 + // line internal/php7/php7.y:4495 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4519 + // line internal/php7/php7.y:4499 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7227,7 +7207,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4533 + // line internal/php7/php7.y:4513 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7241,7 +7221,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4545 + // line internal/php7/php7.y:4525 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7258,7 +7238,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4560 + // line internal/php7/php7.y:4540 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7277,7 +7257,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4577 + // line internal/php7/php7.y:4557 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7292,7 +7272,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4590 + // line internal/php7/php7.y:4570 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7309,7 +7289,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4605 + // line internal/php7/php7.y:4585 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7328,7 +7308,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4622 + // line internal/php7/php7.y:4602 { yyVAL.node = yyDollar[2].node @@ -7338,7 +7318,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4633 + // line internal/php7/php7.y:4613 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7350,7 +7330,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4643 + // line internal/php7/php7.y:4623 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7367,7 +7347,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4658 + // line internal/php7/php7.y:4638 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7393,7 +7373,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4682 + // line internal/php7/php7.y:4662 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7407,7 +7387,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4697 + // line internal/php7/php7.y:4677 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7425,7 +7405,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4713 + // line internal/php7/php7.y:4693 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7447,7 +7427,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4733 + // line internal/php7/php7.y:4713 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7459,7 +7439,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4743 + // line internal/php7/php7.y:4723 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7471,7 +7451,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4753 + // line internal/php7/php7.y:4733 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7493,7 +7473,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4773 + // line internal/php7/php7.y:4753 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7505,7 +7485,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4783 + // line internal/php7/php7.y:4763 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7517,13 +7497,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4796 + // line internal/php7/php7.y:4776 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4800 + // line internal/php7/php7.y:4780 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7532,7 +7512,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4810 + // line internal/php7/php7.y:4790 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 8a2dfb4..2d9825a 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1010,50 +1010,29 @@ statement: } | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement { - switch n := $7.(type) { - case *ast.StmtForeach : - n.Expr = $3 - n.Var = $5 - case *ast.StmtAltForeach : - n.Expr = $3 - n.Var = $5 - } + $7.(*ast.StmtForeach).ForeachTkn = $1 + $7.(*ast.StmtForeach).OpenParenthesisTkn = $2 + $7.(*ast.StmtForeach).Expr = $3 + $7.(*ast.StmtForeach).AsTkn = $4 + $7.(*ast.StmtForeach).Var = $5 + $7.(*ast.StmtForeach).CloseParenthesisTkn = $6 + $7.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $7) $$ = $7 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $7) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $6.SkippedTokens) } | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement { - switch n := $9.(type) { - case *ast.StmtForeach : - n.Expr = $3 - n.Key = $5 - n.Var = $7 - case *ast.StmtAltForeach : - n.Expr = $3 - n.Key = $5 - n.Var = $7 - } + $9.(*ast.StmtForeach).ForeachTkn = $1 + $9.(*ast.StmtForeach).OpenParenthesisTkn = $2 + $9.(*ast.StmtForeach).Expr = $3 + $9.(*ast.StmtForeach).AsTkn = $4 + $9.(*ast.StmtForeach).Key = $5 + $9.(*ast.StmtForeach).DoubleArrowTkn = $6 + $9.(*ast.StmtForeach).Var = $7 + $9.(*ast.StmtForeach).CloseParenthesisTkn = $8 + $9.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $9) $$ = $9 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $9) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Foreach, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Key, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $8.SkippedTokens) } | T_DECLARE '(' const_list ')' declare_statement { @@ -1500,29 +1479,30 @@ for_statement: foreach_statement: statement { - $$ = &ast.StmtForeach{ast.Node{}, nil, nil, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtForeach{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDFOREACH ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtForeach{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndForeachTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtAltForeach{ast.Node{}, nil, nil, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go index 06528b4..452a0a3 100644 --- a/internal/php7/php7_test.go +++ b/internal/php7/php7_test.go @@ -5590,7 +5590,7 @@ func TestPhp7(t *testing.T) { Stmts: []ast.Vertex{}, }, }, - &ast.StmtAltForeach{ + &ast.StmtForeach{ Node: ast.Node{ Position: &position.Position{ StartLine: 94, @@ -5599,6 +5599,7 @@ func TestPhp7(t *testing.T) { EndPos: 2014, }, }, + Alt: true, Expr: &ast.ExprVariable{ Node: ast.Node{ Position: &position.Position{ diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 33713e7..aa2170a 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -27,7 +27,6 @@ type NodeVisitor interface { ArgumentList(n *ArgumentList) Argument(n *Argument) - StmtAltForeach(n *StmtAltForeach) StmtBreak(n *StmtBreak) StmtCase(n *StmtCase) StmtCatch(n *StmtCatch) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 50235a7..516019f 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -175,19 +175,6 @@ func (n *ScalarString) Accept(v NodeVisitor) { v.ScalarString(n) } -// StmtAltForeach node -type StmtAltForeach struct { - Node - Expr Vertex - Key Vertex - Var Vertex - Stmt Vertex -} - -func (n *StmtAltForeach) Accept(v NodeVisitor) { - v.StmtAltForeach(n) -} - // StmtBreak node type StmtBreak struct { Node @@ -452,10 +439,19 @@ func (n *StmtFor) Accept(v NodeVisitor) { // StmtForeach node type StmtForeach struct { Node - Expr Vertex - Key Vertex - Var Vertex - Stmt Vertex + Alt bool + ForeachTkn *token.Token + OpenParenthesisTkn *token.Token + Expr Vertex + AsTkn *token.Token + Key Vertex + DoubleArrowTkn *token.Token + Var Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + Stmt Vertex + EndForeachTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtForeach) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index cca893c..615c682 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -119,33 +119,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Expr) t.visitor.Leave("Expr", true) } - case *ast.StmtAltForeach: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - if nn.Key != nil { - t.visitor.Enter("Key", true) - t.Traverse(nn.Key) - t.visitor.Leave("Key", true) - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } case *ast.StmtBreak: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 5569a60..de06927 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -252,12 +252,6 @@ func (v *Dump) Argument(n *ast.Argument) { } } -func (v *Dump) StmtAltForeach(n *ast.StmtAltForeach) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtAltForeach{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtBreak{\n") diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go index 0d7ce76..6ccd522 100644 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ b/pkg/ast/visitor/filter_parser_nodes.go @@ -111,26 +111,6 @@ func (v *FilterParserNodes) StmtReturn(n *ast.StmtReturn) { } } -func (v *FilterParserNodes) StmtForeach(n *ast.StmtForeach) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtAltForeach(n *ast.StmtAltForeach) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - func (v *FilterParserNodes) ExprYield(n *ast.ExprYield) { for { if nn, ok := n.Key.(*ast.ParserBrackets); ok { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index d3ad950..6c86b92 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -213,3 +213,14 @@ func (v *FilterTokens) StmtUnset(n *ast.StmtUnset) { n.SemiColonTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtForeach(n *ast.StmtForeach) { + n.ForeachTkn = nil + n.OpenParenthesisTkn = nil + n.AsTkn = nil + n.DoubleArrowTkn = nil + n.CloseParenthesisTkn = nil + n.ColonTkn = nil + n.EndForeachTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 225a604..582033e 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -54,10 +54,6 @@ func (v *Null) Argument(_ *ast.Argument) { // do nothing } -func (v *Null) StmtAltForeach(_ *ast.StmtAltForeach) { - // do nothing -} - func (v *Null) StmtBreak(_ *ast.StmtBreak) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 987655d..67d4571 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -297,8 +297,6 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { // stmt - case *ast.StmtAltForeach: - p.printStmtAltForeach(n) case *ast.StmtBreak: p.printStmtBreak(n) case *ast.StmtCase: @@ -1359,30 +1357,6 @@ func (p *PrettyPrinter) printStmtAltElse(n ast.Vertex) { } } -func (p *PrettyPrinter) printStmtAltForeach(n ast.Vertex) { - nn := n.(*ast.StmtAltForeach) - - io.WriteString(p.w, "foreach (") - p.Print(nn.Expr) - io.WriteString(p.w, " as ") - - if nn.Key != nil { - p.Print(nn.Key) - io.WriteString(p.w, " => ") - } - - p.Print(nn.Var) - - io.WriteString(p.w, ") :\n") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "endforeach;") -} - func (p *PrettyPrinter) printStmtAltIf(n ast.Vertex) { nn := n.(*ast.StmtIf) @@ -1749,6 +1723,11 @@ func (p *PrettyPrinter) printStmtAltFor(n ast.Vertex) { func (p *PrettyPrinter) printStmtForeach(n ast.Vertex) { nn := n.(*ast.StmtForeach) + if nn.Alt { + p.printStmtAltForeach(n) + return + } + io.WriteString(p.w, "foreach (") p.Print(nn.Expr) io.WriteString(p.w, " as ") @@ -1777,6 +1756,30 @@ func (p *PrettyPrinter) printStmtForeach(n ast.Vertex) { } } +func (p *PrettyPrinter) printStmtAltForeach(n ast.Vertex) { + nn := n.(*ast.StmtForeach) + + io.WriteString(p.w, "foreach (") + p.Print(nn.Expr) + io.WriteString(p.w, " as ") + + if nn.Key != nil { + p.Print(nn.Key) + io.WriteString(p.w, " => ") + } + + p.Print(nn.Var) + + io.WriteString(p.w, ") :\n") + + s := nn.Stmt.(*ast.StmtStmtList) + p.printNodes(s.Stmts) + + io.WriteString(p.w, "\n") + p.printIndent() + io.WriteString(p.w, "endforeach;") +} + func (p *PrettyPrinter) printStmtFunction(n ast.Vertex) { nn := n.(*ast.StmtFunction) diff --git a/pkg/printer/pretty_printer_test.go b/pkg/printer/pretty_printer_test.go index 54fcdd0..82ac6ef 100644 --- a/pkg/printer/pretty_printer_test.go +++ b/pkg/printer/pretty_printer_test.go @@ -2210,7 +2210,8 @@ func TestPrintAltForeach(t *testing.T) { p := printer.NewPrettyPrinter(o, " ") p.Print(&ast.StmtNamespace{ Stmts: []ast.Vertex{ - &ast.StmtAltForeach{ + &ast.StmtForeach{ + Alt: true, Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("key")}}, Var: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("val")}}}, diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 0068785..b808de1 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -386,8 +386,6 @@ func (p *Printer) printNode(n ast.Vertex) { // stmt - case *ast.StmtAltForeach: - p.printStmtAltForeach(n) case *ast.StmtBreak: p.printStmtBreak(n) case *ast.StmtCase: @@ -1996,54 +1994,6 @@ func (p *Printer) printExprYield(n ast.Vertex) { // smtm -func (p *Printer) printStmtAltForeach(n ast.Vertex) { - nn := n.(*ast.StmtAltForeach) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("foreach")) - p.printFreeFloating(nn, token.Foreach) - p.write([]byte("(")) - p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("as")) - - if nn.Key != nil { - if nn.Key.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Key) - p.printFreeFloating(nn, token.Key) - p.write([]byte("=>")) - } else { - if nn.Var.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - } - - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - - p.write([]byte(")")) - p.printFreeFloating(nn, token.Cond) - - p.write([]byte(":")) - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, token.Stmts) - - p.write([]byte("endforeach")) - p.printFreeFloating(nn, token.AltEnd) - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printStmtBreak(n *ast.StmtBreak) { p.printToken(n.BreakTkn, "break") @@ -2407,42 +2357,50 @@ func (p *Printer) printStmtAltFor(n *ast.StmtFor) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtForeach(n ast.Vertex) { - nn := n.(*ast.StmtForeach) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("foreach")) - p.printFreeFloating(nn, token.Foreach) - p.write([]byte("(")) - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) +func (p *Printer) printStmtForeach(n *ast.StmtForeach) { + if n.Alt { + p.printStmtAltForeach(n) + return } - p.write([]byte("as")) + p.printToken(n.ForeachTkn, "foreach") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Expr) + p.bufStart = " " + p.printToken(n.AsTkn, "as") + p.bufStart = " " + if n.Key != nil { + p.Print(n.Key) + p.printToken(n.DoubleArrowTkn, "=>") + } + p.Print(n.Var) + p.printToken(n.CloseParenthesisTkn, ")") + p.Print(n.Stmt) +} - if nn.Key != nil { - if nn.Key.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Key) - p.printFreeFloating(nn, token.Key) - p.write([]byte("=>")) +func (p *Printer) printStmtAltForeach(n *ast.StmtForeach) { + p.printToken(n.ForeachTkn, "foreach") + p.printToken(n.OpenParenthesisTkn, "(") + p.Print(n.Expr) + p.bufStart = " " + p.printToken(n.AsTkn, "as") + p.bufStart = " " + if n.Key != nil { + p.Print(n.Key) + p.printToken(n.DoubleArrowTkn, "=>") + } + p.Print(n.Var) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.ColonTkn, ":") + + if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { + p.printNodes(stmtList.Stmts) } else { - if nn.Var.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } + p.Print(n.Stmt) } - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte(")")) - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, token.End) + p.printToken(n.EndForeachTkn, "endforeach") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtFunction(n ast.Vertex) { diff --git a/pkg/printer/printer_test.go b/pkg/printer/printer_test.go index de97168..8956574 100644 --- a/pkg/printer/printer_test.go +++ b/pkg/printer/printer_test.go @@ -2667,7 +2667,8 @@ func TestPrinterPrintAltForeach(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o) - p.Print(&ast.StmtAltForeach{ + p.Print(&ast.StmtForeach{ + Alt: true, Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, From e78f0dc650016ffd19ebd4782b0cb0b73d93fcbc Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 14 Sep 2020 19:25:38 +0300 Subject: [PATCH 063/140] [refactoring] update ast structure of "Declare" and "ConstList" nodes --- internal/php5/php5.go | 1146 +++++++++++++++--------------- internal/php5/php5.y | 114 +-- internal/php7/php7.go | 987 ++++++++++++------------- internal/php7/php7.y | 71 +- pkg/ast/ast.go | 3 +- pkg/ast/node.go | 48 +- pkg/ast/traverser/dfs.go | 24 - pkg/ast/visitor/dump.go | 16 +- pkg/ast/visitor/filter_tokens.go | 11 + pkg/ast/visitor/null.go | 12 +- pkg/printer/printer.go | 74 +- 11 files changed, 1235 insertions(+), 1271 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 498f6b5..7492a95 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6151 +// line internal/php5/php5.y:6157 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -706,9 +706,9 @@ var yyAct = [...]int{ 920, 39, 903, 920, 260, 261, 483, 896, 260, 261, 448, 839, 944, 836, 566, 231, 948, 231, 1006, 949, 531, 842, 1005, 449, 725, 39, 232, 843, 232, 192, - 841, 39, 394, 946, 260, 261, 341, 698, 538, 929, - 290, 519, 460, 318, 314, 973, 127, 403, 575, 401, - 519, 335, 945, 1009, 343, 389, 939, 519, 519, 519, + 841, 39, 341, 946, 260, 261, 698, 538, 929, 290, + 460, 519, 318, 314, 127, 973, 403, 575, 401, 335, + 519, 945, 1009, 343, 394, 389, 939, 519, 519, 519, 519, 519, 164, 157, 161, 231, 528, 608, 531, 997, 970, 179, 182, 183, 991, 969, 232, 968, 189, 191, 967, 848, 849, 850, 847, 846, 845, 519, 838, 837, @@ -1607,9 +1607,9 @@ var yyPgo = [...]int{ 1121, 4, 1120, 1119, 1114, 16, 1111, 1110, 1109, 1108, 48, 5, 1100, 1097, 1095, 1090, 1089, 2, 1087, 607, 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 1074, 1073, - 12, 1072, 1071, 6, 19, 1069, 1068, 1067, 9, 50, - 0, 1066, 1064, 1063, 117, 599, 1062, 1060, 62, 8, - 1059, 1058, 1057, 1056, 14, 47, 1052, 1044, 1042, 1038, + 1072, 12, 1071, 1069, 6, 19, 1068, 1067, 1066, 9, + 50, 0, 1064, 1063, 1062, 117, 599, 1060, 1059, 62, + 8, 1058, 1057, 1056, 1052, 14, 47, 1044, 1042, 1038, 3, 1034, 23, 1033, 1031, 1027, 35, 1026, 1022, 1019, 1018, 1014, 1008, 1002, 25, 1001, 1000, 999, 24, 996, 15, 17, 993, 34, 992, 991, 986, 984, 177, 13, @@ -1617,29 +1617,29 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 99, 99, 100, 100, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 101, 101, - 6, 6, 6, 6, 102, 102, 7, 7, 7, 7, - 103, 103, 8, 8, 8, 8, 55, 55, 104, 104, + 0, 151, 100, 100, 101, 101, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 102, 102, + 6, 6, 6, 6, 103, 103, 7, 7, 7, 7, + 104, 104, 8, 8, 8, 8, 55, 55, 105, 105, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 117, 117, 60, 60, 118, 118, 119, 119, 61, 87, 87, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 95, 95, 2, 97, 97, 96, 96, 126, 126, 94, - 94, 93, 93, 93, 91, 91, 90, 90, 59, 59, - 116, 116, 88, 88, 88, 88, 115, 115, 115, 4, - 4, 92, 92, 111, 111, 112, 112, 56, 56, 57, + 96, 96, 2, 98, 98, 97, 97, 126, 126, 95, + 95, 94, 94, 94, 92, 92, 91, 91, 59, 59, + 88, 88, 89, 89, 89, 89, 116, 116, 116, 4, + 4, 93, 93, 112, 112, 113, 113, 56, 56, 57, 57, 120, 120, 121, 121, 65, 65, 64, 64, 64, 64, 84, 84, 84, 127, 127, 70, 70, 70, 70, 82, 82, 29, 29, 29, 81, 81, 81, 81, 122, 122, 67, 67, 67, 67, 69, 128, 128, 86, 86, 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 89, 89, 123, 123, + 75, 74, 73, 73, 76, 76, 90, 90, 123, 123, 124, 124, 132, 132, 77, 77, 77, 77, 77, 77, - 125, 125, 125, 125, 68, 68, 85, 85, 114, 114, - 113, 113, 138, 138, 136, 136, 137, 137, 137, 139, + 125, 125, 125, 125, 68, 68, 85, 85, 115, 115, + 114, 114, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1648,8 +1648,8 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 98, 98, 110, - 110, 110, 110, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 99, 99, 111, + 111, 111, 111, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1664,11 +1664,11 @@ var yyR1 = [...]int{ 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 109, 109, 40, 40, - 40, 108, 108, 107, 107, 107, 107, 107, 107, 107, - 107, 105, 105, 105, 105, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 110, 110, 40, 40, + 40, 109, 109, 108, 108, 108, 108, 108, 108, 108, + 108, 106, 106, 106, 106, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 106, 106, 38, 38, 32, 32, 33, + 39, 39, 39, 107, 107, 38, 38, 32, 32, 33, 34, } var yyR2 = [...]int{ @@ -1729,7 +1729,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -99, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -100, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1739,10 +1739,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -100, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -101, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -100, 144, 83, 10, -101, 37, 39, - -6, -100, 83, 146, 160, 147, 10, -104, -50, 148, + 159, 12, 148, -101, 144, 83, 10, -102, 37, 39, + -6, -101, 83, 146, 160, 147, 10, -105, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1751,87 +1751,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -100, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -101, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -133, 17, -105, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -100, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -106, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -101, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -105, 17, 17, 76, -105, 150, 148, -108, - -107, -16, 153, 150, 150, 83, -84, 148, -100, 79, + -16, 150, -106, 17, 17, 76, -106, 150, 148, -109, + -108, -16, 153, 150, 150, 83, -84, 148, -101, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -99, -100, 146, 160, -102, -7, -100, 83, -103, -8, - -100, 83, 29, -100, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -92, -27, 147, 21, -149, - -114, -113, -16, -88, 144, 147, 146, 146, 146, 146, + -100, -101, 146, 160, -103, -7, -101, 83, -104, -8, + -101, 83, 29, -101, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -93, -27, 147, 21, -149, + -115, -114, -16, -89, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -87, - -58, -21, -21, -17, -116, 10, -104, 146, 146, 10, - 148, -95, 56, -97, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -88, 10, -105, 146, 146, 10, + 148, -96, 56, -98, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -109, -40, -21, 60, 83, -100, 79, 79, 149, 149, + -110, -40, -21, 60, 83, -101, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -100, 58, -12, 79, - -106, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -108, 151, -3, 160, 59, -19, -21, -15, + 10, 144, -83, -84, 79, 83, -101, 58, -12, 79, + -107, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -109, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -127, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -99, 145, -84, -6, 146, 160, 29, -100, - 146, 160, 29, -100, 10, 29, 162, -30, -79, -9, - -33, -100, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -111, -104, - -104, -50, 146, 160, -115, 146, -115, 146, -29, -16, + -16, 146, -100, 145, -84, -6, 146, 160, 29, -101, + 146, 160, 29, -101, 10, 29, 162, -30, -79, -9, + -33, -101, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -112, -105, + -105, -50, 146, 160, -116, 146, -116, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -120, -121, -65, -64, 61, - 62, -47, -100, 80, 83, -96, 57, -47, 144, -126, - -47, -17, -21, -21, 92, 149, 160, 148, -100, -139, + 62, -47, -101, 80, 83, -97, 57, -47, 144, -126, + -47, -17, -21, -21, 92, 149, 160, 148, -101, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -100, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -101, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -100, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -112, 22, - 146, -114, -16, 145, 32, 33, -115, 31, -115, 145, - 162, -120, -16, 146, -58, -93, -21, 153, 60, -93, + 152, 83, -101, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -113, 22, + 146, -115, -16, 145, 32, 33, -116, 31, -116, 145, + 162, -120, -16, 146, -58, -94, -21, 153, 60, -94, -59, -27, 147, 10, -30, -117, 42, -120, 149, 160, - -149, 83, -100, 144, -126, -122, 160, -45, 162, -40, - -109, 150, -138, -140, -15, -143, 151, -16, -147, 150, + -149, 83, -101, 144, -126, -122, 160, -45, 162, -40, + -110, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -100, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -101, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -94, 59, -21, 148, - -94, -104, 162, -60, 43, 148, 149, -98, 45, -65, - -150, 84, -100, -122, 145, -67, -123, -68, -69, -124, + 146, 145, 146, 31, -30, 149, -95, 59, -21, 148, + -95, -105, 162, -60, 43, 148, 149, -99, 45, -65, + -150, 84, -101, -122, 145, -67, -123, -68, -69, -124, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -114, -4, - -104, 146, -98, 149, -93, -109, 149, 28, -30, 144, + 147, 149, -79, -79, -27, 96, -50, 147, -115, -4, + -105, 146, -99, 149, -94, -110, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -125, 12, 146, 160, -1, -77, 10, -128, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -104, 149, -104, 144, -90, - -27, 147, 149, -90, 146, -104, 12, -104, -104, -110, + -19, -79, 59, 146, 147, -105, 149, -105, 144, -91, + -27, 147, 149, -91, 146, -105, 12, -105, -105, -111, 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, - 160, 146, 144, -79, -104, -91, -27, 147, -104, -104, + 160, 146, 144, -79, -105, -92, -27, 147, -105, -105, 145, 149, 145, 145, 149, 160, 12, -30, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -104, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -105, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -104, 12, -30, -120, -131, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -118, -119, -61, 42, -89, - 146, 144, -47, -61, 148, -104, -47, 145, 12, 149, - 144, -104, 145, + 146, -105, 12, -30, -120, -131, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -118, -119, -61, 42, -90, + 146, 144, -47, -61, 148, -105, -47, 145, 12, 149, + 144, -105, 145, } var yyDef = [...]int{ @@ -2806,7 +2806,7 @@ yydefault: { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) - lastNode(constList.Consts).(*ast.StmtConstant).CommaTkn = yyDollar[2].token + constList.SeparatorTkns = append(constList.SeparatorTkns, yyDollar[2].token) constList.Consts = append(constList.Consts, &ast.StmtConstant{ Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -3268,20 +3268,18 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php5/php5.y:1132 { + yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token + yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token + yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items + yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token + yyDollar[5].node.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node = yyDollar[5].node - yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.SkippedTokens) } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1145 + // line internal/php5/php5.y:1143 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3294,7 +3292,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1156 + // line internal/php5/php5.y:1154 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3312,7 +3310,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1172 + // line internal/php5/php5.y:1170 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3326,7 +3324,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1184 + // line internal/php5/php5.y:1182 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3343,13 +3341,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1202 + // line internal/php5/php5.y:1200 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1206 + // line internal/php5/php5.y:1204 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3371,13 +3369,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1229 + // line internal/php5/php5.y:1227 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1233 + // line internal/php5/php5.y:1231 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3391,31 +3389,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1248 + // line internal/php5/php5.y:1246 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1252 + // line internal/php5/php5.y:1250 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1259 + // line internal/php5/php5.y:1257 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1263 + // line internal/php5/php5.y:1261 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1270 + // line internal/php5/php5.y:1268 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3436,7 +3434,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1292 + // line internal/php5/php5.y:1290 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3444,7 +3442,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1298 + // line internal/php5/php5.y:1296 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3453,49 +3451,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1308 + // line internal/php5/php5.y:1306 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1315 + // line internal/php5/php5.y:1313 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1322 + // line internal/php5/php5.y:1320 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1329 + // line internal/php5/php5.y:1327 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1331 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1340 + // line internal/php5/php5.y:1338 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1344 + // line internal/php5/php5.y:1342 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1351 + // line internal/php5/php5.y:1349 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3519,7 +3517,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1376 + // line internal/php5/php5.y:1374 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3547,7 +3545,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1402 + // line internal/php5/php5.y:1400 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3564,7 +3562,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1421 + // line internal/php5/php5.y:1419 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3576,7 +3574,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1431 + // line internal/php5/php5.y:1429 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3591,7 +3589,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1444 + // line internal/php5/php5.y:1442 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3603,7 +3601,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1454 + // line internal/php5/php5.y:1452 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3618,13 +3616,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1470 + // line internal/php5/php5.y:1468 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1474 + // line internal/php5/php5.y:1472 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3636,19 +3634,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1487 + // line internal/php5/php5.y:1485 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1494 + // line internal/php5/php5.y:1492 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1498 + // line internal/php5/php5.y:1496 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3660,13 +3658,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1511 + // line internal/php5/php5.y:1509 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1515 + // line internal/php5/php5.y:1513 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3678,13 +3676,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1528 + // line internal/php5/php5.y:1526 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1532 + // line internal/php5/php5.y:1530 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3698,13 +3696,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1544 + // line internal/php5/php5.y:1542 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1548 + // line internal/php5/php5.y:1546 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3713,13 +3711,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1558 + // line internal/php5/php5.y:1556 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1562 + // line internal/php5/php5.y:1560 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3731,7 +3729,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1572 + // line internal/php5/php5.y:1570 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3745,7 +3743,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1587 + // line internal/php5/php5.y:1585 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3756,7 +3754,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1596 + // line internal/php5/php5.y:1594 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3776,7 +3774,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1617 + // line internal/php5/php5.y:1615 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3787,7 +3785,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1626 + // line internal/php5/php5.y:1624 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3807,80 +3805,88 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1648 + // line internal/php5/php5.y:1646 { - yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtDeclare{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 119: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:1655 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndDeclareTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1678 + // line internal/php5/php5.y:1677 { - yyVAL.list = []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, - Name: &ast.Identifier{ + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtConstant{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - Value: yyDollar[1].token.Value, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Value: yyDollar[1].token.Value, + }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, }, - EqualTkn: yyDollar[2].token, - Expr: yyDollar[3].node, }, } - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.list).(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1698 + // line internal/php5/php5.y:1699 { - lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token - yyVAL.list = append(yyDollar[1].list, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), - }, - Name: &ast.Identifier{ + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( + yyDollar[1].node.(*ast.ParserSeparatedList).Items, + &ast.StmtConstant{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), }, - Value: yyDollar[3].token.Value, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + Value: yyDollar[3].token.Value, + }, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, }, - EqualTkn: yyDollar[4].token, - Expr: yyDollar[5].node, - }) + ) - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.list).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[1].node + + yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1721 + // line internal/php5/php5.y:1727 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3893,7 +3899,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1732 + // line internal/php5/php5.y:1738 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3907,7 +3913,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1744 + // line internal/php5/php5.y:1750 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3922,7 +3928,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1757 + // line internal/php5/php5.y:1763 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3938,13 +3944,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1775 + // line internal/php5/php5.y:1781 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1779 + // line internal/php5/php5.y:1785 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3958,7 +3964,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1791 + // line internal/php5/php5.y:1797 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -3971,19 +3977,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1806 + // line internal/php5/php5.y:1812 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1810 + // line internal/php5/php5.y:1816 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1818 + // line internal/php5/php5.y:1824 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -3994,7 +4000,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1827 + // line internal/php5/php5.y:1833 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4014,13 +4020,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1850 + // line internal/php5/php5.y:1856 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1854 + // line internal/php5/php5.y:1860 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4035,13 +4041,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1871 + // line internal/php5/php5.y:1877 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1875 + // line internal/php5/php5.y:1881 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4063,13 +4069,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1899 + // line internal/php5/php5.y:1905 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1903 + // line internal/php5/php5.y:1909 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4081,13 +4087,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1917 + // line internal/php5/php5.y:1923 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1921 + // line internal/php5/php5.y:1927 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4106,25 +4112,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1942 + // line internal/php5/php5.y:1948 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1946 + // line internal/php5/php5.y:1952 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1953 + // line internal/php5/php5.y:1959 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1957 + // line internal/php5/php5.y:1963 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4133,7 +4139,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1973 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4169,7 +4175,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2001 + // line internal/php5/php5.y:2007 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4206,13 +4212,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2040 + // line internal/php5/php5.y:2046 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2044 + // line internal/php5/php5.y:2050 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4224,7 +4230,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2054 + // line internal/php5/php5.y:2060 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4236,13 +4242,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2064 + // line internal/php5/php5.y:2070 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2072 + // line internal/php5/php5.y:2078 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4255,7 +4261,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2083 + // line internal/php5/php5.y:2089 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4268,7 +4274,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2094 + // line internal/php5/php5.y:2100 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4283,13 +4289,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2111 + // line internal/php5/php5.y:2117 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2115 + // line internal/php5/php5.y:2121 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4298,7 +4304,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2125 + // line internal/php5/php5.y:2131 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4310,7 +4316,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2135 + // line internal/php5/php5.y:2141 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4322,7 +4328,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2145 + // line internal/php5/php5.y:2151 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4334,7 +4340,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2155 + // line internal/php5/php5.y:2161 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4346,7 +4352,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2168 + // line internal/php5/php5.y:2174 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4355,7 +4361,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2175 + // line internal/php5/php5.y:2181 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4363,7 +4369,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2185 + // line internal/php5/php5.y:2191 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4377,7 +4383,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2203 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4389,7 +4395,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2213 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4403,7 +4409,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2223 + // line internal/php5/php5.y:2229 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4427,7 +4433,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2245 + // line internal/php5/php5.y:2251 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4453,7 +4459,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2269 + // line internal/php5/php5.y:2275 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4478,7 +4484,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2292 + // line internal/php5/php5.y:2298 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4505,19 +4511,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2321 + // line internal/php5/php5.y:2327 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2325 + // line internal/php5/php5.y:2331 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2333 + // line internal/php5/php5.y:2339 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4531,7 +4537,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2345 + // line internal/php5/php5.y:2351 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4539,13 +4545,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2351 + // line internal/php5/php5.y:2357 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2355 + // line internal/php5/php5.y:2361 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4576,7 +4582,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2387 + // line internal/php5/php5.y:2393 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4588,13 +4594,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2400 + // line internal/php5/php5.y:2406 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2404 + // line internal/php5/php5.y:2410 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4608,7 +4614,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2416 + // line internal/php5/php5.y:2422 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4620,7 +4626,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2426 + // line internal/php5/php5.y:2432 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4632,31 +4638,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2439 + // line internal/php5/php5.y:2445 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2443 + // line internal/php5/php5.y:2449 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2450 + // line internal/php5/php5.y:2456 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2454 + // line internal/php5/php5.y:2460 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2461 + // line internal/php5/php5.y:2467 { yyVAL.node = yyDollar[1].node @@ -4666,7 +4672,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2469 + // line internal/php5/php5.y:2475 { yyVAL.node = yyDollar[1].node @@ -4676,7 +4682,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2480 + // line internal/php5/php5.y:2486 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4689,13 +4695,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2494 + // line internal/php5/php5.y:2500 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2498 + // line internal/php5/php5.y:2504 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4704,7 +4710,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2508 + // line internal/php5/php5.y:2514 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4718,13 +4724,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2520 + // line internal/php5/php5.y:2526 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2527 + // line internal/php5/php5.y:2533 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4740,7 +4746,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2544 + // line internal/php5/php5.y:2550 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4756,7 +4762,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2558 + // line internal/php5/php5.y:2564 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4769,19 +4775,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2572 + // line internal/php5/php5.y:2578 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2576 + // line internal/php5/php5.y:2582 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2583 + // line internal/php5/php5.y:2589 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4794,7 +4800,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2594 + // line internal/php5/php5.y:2600 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4807,13 +4813,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2608 + // line internal/php5/php5.y:2614 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2612 + // line internal/php5/php5.y:2618 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4826,31 +4832,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2626 + // line internal/php5/php5.y:2632 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2630 + // line internal/php5/php5.y:2636 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2637 + // line internal/php5/php5.y:2643 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2641 + // line internal/php5/php5.y:2647 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2648 + // line internal/php5/php5.y:2654 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4862,7 +4868,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2664 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4874,7 +4880,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2668 + // line internal/php5/php5.y:2674 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4886,7 +4892,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2684 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4898,7 +4904,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2688 + // line internal/php5/php5.y:2694 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4910,7 +4916,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2698 + // line internal/php5/php5.y:2704 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4922,7 +4928,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2711 + // line internal/php5/php5.y:2717 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4940,7 +4946,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2733 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4959,7 +4965,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2744 + // line internal/php5/php5.y:2750 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4976,7 +4982,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2759 + // line internal/php5/php5.y:2765 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4994,7 +5000,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2784 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5019,7 +5025,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2801 + // line internal/php5/php5.y:2807 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5047,7 +5053,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2830 + // line internal/php5/php5.y:2836 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5056,7 +5062,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2837 + // line internal/php5/php5.y:2843 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5064,19 +5070,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2853 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2851 + // line internal/php5/php5.y:2857 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2858 + // line internal/php5/php5.y:2864 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5085,25 +5091,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2865 + // line internal/php5/php5.y:2871 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2872 + // line internal/php5/php5.y:2878 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2876 + // line internal/php5/php5.y:2882 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2889 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5117,7 +5123,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2895 + // line internal/php5/php5.y:2901 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5131,37 +5137,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2910 + // line internal/php5/php5.y:2916 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2914 + // line internal/php5/php5.y:2920 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2918 + // line internal/php5/php5.y:2924 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2931 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2929 + // line internal/php5/php5.y:2935 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2936 + // line internal/php5/php5.y:2942 { if yyDollar[3].node != nil { @@ -5177,7 +5183,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2953 + // line internal/php5/php5.y:2959 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5194,7 +5200,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2974 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5207,7 +5213,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2979 + // line internal/php5/php5.y:2985 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5221,7 +5227,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2991 + // line internal/php5/php5.y:2997 { var _new *ast.ExprNew @@ -5248,7 +5254,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3016 + // line internal/php5/php5.y:3022 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5260,7 +5266,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3026 + // line internal/php5/php5.y:3032 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5272,7 +5278,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3036 + // line internal/php5/php5.y:3042 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5285,7 +5291,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3047 + // line internal/php5/php5.y:3053 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5298,7 +5304,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3058 + // line internal/php5/php5.y:3064 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5311,7 +5317,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3069 + // line internal/php5/php5.y:3075 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5324,7 +5330,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3086 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5337,7 +5343,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3091 + // line internal/php5/php5.y:3097 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5350,7 +5356,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3102 + // line internal/php5/php5.y:3108 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5363,7 +5369,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3119 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5376,7 +5382,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3124 + // line internal/php5/php5.y:3130 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5389,7 +5395,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3135 + // line internal/php5/php5.y:3141 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5402,7 +5408,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3146 + // line internal/php5/php5.y:3152 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5415,7 +5421,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3157 + // line internal/php5/php5.y:3163 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5428,7 +5434,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3168 + // line internal/php5/php5.y:3174 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5440,7 +5446,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3178 + // line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5453,7 +5459,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3189 + // line internal/php5/php5.y:3195 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5465,7 +5471,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3199 + // line internal/php5/php5.y:3205 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5478,7 +5484,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3210 + // line internal/php5/php5.y:3216 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5491,7 +5497,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3221 + // line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5504,7 +5510,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3232 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5517,7 +5523,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3243 + // line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5530,7 +5536,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5543,7 +5549,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3265 + // line internal/php5/php5.y:3271 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5556,7 +5562,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5569,7 +5575,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3287 + // line internal/php5/php5.y:3293 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5581,7 +5587,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3297 + // line internal/php5/php5.y:3303 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5594,7 +5600,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3308 + // line internal/php5/php5.y:3314 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5607,7 +5613,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3319 + // line internal/php5/php5.y:3325 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5620,7 +5626,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3330 + // line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5633,7 +5639,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3341 + // line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5646,7 +5652,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3352 + // line internal/php5/php5.y:3358 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5659,7 +5665,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3363 + // line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5672,7 +5678,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3374 + // line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5685,7 +5691,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3385 + // line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5697,7 +5703,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3395 + // line internal/php5/php5.y:3401 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5709,7 +5715,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3405 + // line internal/php5/php5.y:3411 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5721,7 +5727,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3415 + // line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5733,7 +5739,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3425 + // line internal/php5/php5.y:3431 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5746,7 +5752,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3436 + // line internal/php5/php5.y:3442 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5759,7 +5765,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3447 + // line internal/php5/php5.y:3453 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5772,7 +5778,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3458 + // line internal/php5/php5.y:3464 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5786,7 +5792,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3470 + // line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5805,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,7 +5818,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3492 + // line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5825,7 +5831,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3503 + // line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5838,7 +5844,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3514 + // line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5851,19 +5857,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3525 + // line internal/php5/php5.y:3531 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3529 + // line internal/php5/php5.y:3535 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3533 + // line internal/php5/php5.y:3539 { yyVAL.node = yyDollar[2].node @@ -5895,7 +5901,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3569 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5909,7 +5915,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3575 + // line internal/php5/php5.y:3581 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5923,13 +5929,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3587 + // line internal/php5/php5.y:3593 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3591 + // line internal/php5/php5.y:3597 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5942,7 +5948,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3602 + // line internal/php5/php5.y:3608 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5955,7 +5961,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3613 + // line internal/php5/php5.y:3619 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5968,7 +5974,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3624 + // line internal/php5/php5.y:3630 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5981,7 +5987,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3635 + // line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5994,7 +6000,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3646 + // line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6007,7 +6013,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3657 + // line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6020,7 +6026,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3668 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6040,7 +6046,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3686 + // line internal/php5/php5.y:3692 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6052,25 +6058,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3702 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3700 + // line internal/php5/php5.y:3706 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3704 + // line internal/php5/php5.y:3710 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3708 + // line internal/php5/php5.y:3714 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6082,7 +6088,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3718 + // line internal/php5/php5.y:3724 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6094,7 +6100,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3728 + // line internal/php5/php5.y:3734 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6106,7 +6112,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3738 + // line internal/php5/php5.y:3744 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6133,7 +6139,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3762 + // line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6161,7 +6167,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3790 + // line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6173,7 +6179,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3800 + // line internal/php5/php5.y:3806 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6185,7 +6191,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3810 + // line internal/php5/php5.y:3816 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6198,7 +6204,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3821 + // line internal/php5/php5.y:3827 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6211,7 +6217,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3835 + // line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6224,7 +6230,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3846 + // line internal/php5/php5.y:3852 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6237,7 +6243,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3857 + // line internal/php5/php5.y:3863 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6253,7 +6259,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3871 + // line internal/php5/php5.y:3877 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6266,7 +6272,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3885 + // line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6280,7 +6286,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3897 + // line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6293,19 +6299,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3911 + // line internal/php5/php5.y:3917 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3918 + // line internal/php5/php5.y:3924 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3922 + // line internal/php5/php5.y:3928 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6319,7 +6325,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3937 + // line internal/php5/php5.y:3943 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6335,7 +6341,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3951 + // line internal/php5/php5.y:3957 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6354,7 +6360,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3968 + // line internal/php5/php5.y:3974 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6369,7 +6375,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3981 + // line internal/php5/php5.y:3987 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6387,7 +6393,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4000 + // line internal/php5/php5.y:4006 { name := &ast.NameName{ Node: ast.Node{ @@ -6402,7 +6408,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4013 + // line internal/php5/php5.y:4019 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6419,7 +6425,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4028 + // line internal/php5/php5.y:4034 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6435,7 +6441,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4042 + // line internal/php5/php5.y:4048 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6448,7 +6454,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4053 + // line internal/php5/php5.y:4059 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6461,7 +6467,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4064 + // line internal/php5/php5.y:4070 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6474,7 +6480,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4075 + // line internal/php5/php5.y:4081 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6487,7 +6493,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4086 + // line internal/php5/php5.y:4092 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6499,7 +6505,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4099 + // line internal/php5/php5.y:4105 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6511,7 +6517,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4109 + // line internal/php5/php5.y:4115 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6522,7 +6528,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4118 + // line internal/php5/php5.y:4124 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6535,7 +6541,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4129 + // line internal/php5/php5.y:4135 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6547,7 +6553,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4142 + // line internal/php5/php5.y:4148 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6558,7 +6564,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4157 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6571,7 +6577,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4162 + // line internal/php5/php5.y:4168 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6583,19 +6589,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4175 + // line internal/php5/php5.y:4181 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4179 + // line internal/php5/php5.y:4185 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4186 + // line internal/php5/php5.y:4192 { yyVAL.node = yyDollar[1].node @@ -6636,25 +6642,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4225 + // line internal/php5/php5.y:4231 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4233 + // line internal/php5/php5.y:4239 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4237 + // line internal/php5/php5.y:4243 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4245 + // line internal/php5/php5.y:4251 { yyVAL.list = yyDollar[2].list @@ -6663,13 +6669,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4255 + // line internal/php5/php5.y:4261 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4259 + // line internal/php5/php5.y:4265 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6685,19 +6691,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4273 + // line internal/php5/php5.y:4279 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4280 + // line internal/php5/php5.y:4286 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4290 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6707,25 +6713,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4292 + // line internal/php5/php5.y:4298 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4299 + // line internal/php5/php5.y:4305 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4303 + // line internal/php5/php5.y:4309 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4310 + // line internal/php5/php5.y:4316 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6737,7 +6743,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4326 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6749,7 +6755,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4330 + // line internal/php5/php5.y:4336 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6761,7 +6767,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4346 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6773,7 +6779,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4350 + // line internal/php5/php5.y:4356 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6785,7 +6791,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4360 + // line internal/php5/php5.y:4366 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6797,7 +6803,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4370 + // line internal/php5/php5.y:4376 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6809,7 +6815,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4380 + // line internal/php5/php5.y:4386 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6821,7 +6827,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4390 + // line internal/php5/php5.y:4396 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6833,7 +6839,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4400 + // line internal/php5/php5.y:4406 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6845,7 +6851,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4410 + // line internal/php5/php5.y:4416 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6859,7 +6865,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4422 + // line internal/php5/php5.y:4428 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6871,7 +6877,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4435 + // line internal/php5/php5.y:4441 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6887,25 +6893,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4452 + // line internal/php5/php5.y:4458 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4459 + // line internal/php5/php5.y:4465 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4463 + // line internal/php5/php5.y:4469 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4467 + // line internal/php5/php5.y:4473 { name := &ast.NameName{ Node: ast.Node{ @@ -6920,7 +6926,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4480 + // line internal/php5/php5.y:4486 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6937,7 +6943,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4495 + // line internal/php5/php5.y:4501 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6953,7 +6959,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4509 + // line internal/php5/php5.y:4515 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6967,7 +6973,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4527 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6980,13 +6986,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4538 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4536 + // line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6998,13 +7004,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4546 + // line internal/php5/php5.y:4552 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4553 + // line internal/php5/php5.y:4559 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7017,7 +7023,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4564 + // line internal/php5/php5.y:4570 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7030,7 +7036,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4575 + // line internal/php5/php5.y:4581 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7043,7 +7049,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4586 + // line internal/php5/php5.y:4592 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7056,7 +7062,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4597 + // line internal/php5/php5.y:4603 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7069,7 +7075,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4608 + // line internal/php5/php5.y:4614 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7082,7 +7088,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4619 + // line internal/php5/php5.y:4625 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7095,7 +7101,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4630 + // line internal/php5/php5.y:4636 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7107,7 +7113,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4640 + // line internal/php5/php5.y:4646 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7119,7 +7125,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4650 + // line internal/php5/php5.y:4656 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7132,7 +7138,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4661 + // line internal/php5/php5.y:4667 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7145,7 +7151,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4672 + // line internal/php5/php5.y:4678 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7158,7 +7164,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4683 + // line internal/php5/php5.y:4689 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7171,7 +7177,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4694 + // line internal/php5/php5.y:4700 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7184,7 +7190,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4705 + // line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7197,7 +7203,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4716 + // line internal/php5/php5.y:4722 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7210,7 +7216,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4727 + // line internal/php5/php5.y:4733 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7223,7 +7229,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4738 + // line internal/php5/php5.y:4744 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7236,7 +7242,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4749 + // line internal/php5/php5.y:4755 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7249,7 +7255,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4760 + // line internal/php5/php5.y:4766 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7262,7 +7268,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4771 + // line internal/php5/php5.y:4777 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7275,7 +7281,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4782 + // line internal/php5/php5.y:4788 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7288,7 +7294,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4793 + // line internal/php5/php5.y:4799 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7301,7 +7307,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4804 + // line internal/php5/php5.y:4810 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7315,7 +7321,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4816 + // line internal/php5/php5.y:4822 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7328,7 +7334,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4827 + // line internal/php5/php5.y:4833 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7341,7 +7347,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4838 + // line internal/php5/php5.y:4844 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7354,7 +7360,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4849 + // line internal/php5/php5.y:4855 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7367,7 +7373,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4860 + // line internal/php5/php5.y:4866 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7381,7 +7387,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4872 + // line internal/php5/php5.y:4878 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7395,7 +7401,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4884 + // line internal/php5/php5.y:4890 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7407,7 +7413,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4894 + // line internal/php5/php5.y:4900 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7419,7 +7425,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4904 + // line internal/php5/php5.y:4910 { yyVAL.node = yyDollar[2].node @@ -7429,13 +7435,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4915 + // line internal/php5/php5.y:4921 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4919 + // line internal/php5/php5.y:4925 { name := &ast.NameName{ Node: ast.Node{ @@ -7450,7 +7456,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4938 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7467,7 +7473,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4953 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7483,7 +7489,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4970 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7497,25 +7503,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4976 + // line internal/php5/php5.y:4982 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4980 + // line internal/php5/php5.y:4986 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4984 + // line internal/php5/php5.y:4990 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4988 + // line internal/php5/php5.y:4994 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7527,7 +7533,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4998 + // line internal/php5/php5.y:5004 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7539,7 +7545,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5014 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7551,13 +7557,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5027 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5025 + // line internal/php5/php5.y:5031 { yyVAL.list = yyDollar[1].list @@ -7568,19 +7574,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5037 + // line internal/php5/php5.y:5043 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5041 + // line internal/php5/php5.y:5047 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5048 + // line internal/php5/php5.y:5054 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7595,7 +7601,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5061 + // line internal/php5/php5.y:5067 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7609,7 +7615,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5073 + // line internal/php5/php5.y:5079 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7623,7 +7629,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5085 + // line internal/php5/php5.y:5091 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7636,19 +7642,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5099 + // line internal/php5/php5.y:5105 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5103 + // line internal/php5/php5.y:5109 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5110 + // line internal/php5/php5.y:5116 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7665,7 +7671,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5125 + // line internal/php5/php5.y:5131 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7682,25 +7688,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5150 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5152 + // line internal/php5/php5.y:5158 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5159 + // line internal/php5/php5.y:5165 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5166 + // line internal/php5/php5.y:5172 { yyVAL.node = yyDollar[1].node @@ -7758,25 +7764,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5222 + // line internal/php5/php5.y:5228 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5229 + // line internal/php5/php5.y:5235 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5233 + // line internal/php5/php5.y:5239 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5241 + // line internal/php5/php5.y:5247 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7790,7 +7796,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5256 + // line internal/php5/php5.y:5262 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7804,7 +7810,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5268 + // line internal/php5/php5.y:5274 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7818,7 +7824,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5283 + // line internal/php5/php5.y:5289 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7827,31 +7833,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5293 + // line internal/php5/php5.y:5299 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5297 + // line internal/php5/php5.y:5303 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5301 + // line internal/php5/php5.y:5307 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5314 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5312 + // line internal/php5/php5.y:5318 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7863,7 +7869,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5325 + // line internal/php5/php5.y:5331 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7876,7 +7882,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5336 + // line internal/php5/php5.y:5342 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7889,13 +7895,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5350 + // line internal/php5/php5.y:5356 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5363 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7908,7 +7914,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5368 + // line internal/php5/php5.y:5374 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7921,31 +7927,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5388 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5392 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5390 + // line internal/php5/php5.y:5396 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5398 + // line internal/php5/php5.y:5404 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5408 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7957,13 +7963,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5412 + // line internal/php5/php5.y:5418 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5419 + // line internal/php5/php5.y:5425 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7976,7 +7982,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5430 + // line internal/php5/php5.y:5436 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7989,13 +7995,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5441 + // line internal/php5/php5.y:5447 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5449 + // line internal/php5/php5.y:5455 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8009,7 +8015,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5461 + // line internal/php5/php5.y:5467 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8023,25 +8029,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5476 + // line internal/php5/php5.y:5482 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5480 + // line internal/php5/php5.y:5486 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5488 + // line internal/php5/php5.y:5494 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5492 + // line internal/php5/php5.y:5498 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8051,7 +8057,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5503 + // line internal/php5/php5.y:5509 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8065,7 +8071,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5515 + // line internal/php5/php5.y:5521 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8079,7 +8085,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5527 + // line internal/php5/php5.y:5533 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8089,7 +8095,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5538 + // line internal/php5/php5.y:5544 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8101,7 +8107,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5548 + // line internal/php5/php5.y:5554 { yyVAL.node = yyDollar[2].node @@ -8114,7 +8120,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5568 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8127,7 +8133,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5573 + // line internal/php5/php5.y:5579 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8144,7 +8150,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5597 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8157,7 +8163,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5602 + // line internal/php5/php5.y:5608 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8167,7 +8173,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5614 + // line internal/php5/php5.y:5620 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8179,7 +8185,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5624 + // line internal/php5/php5.y:5630 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8195,19 +8201,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5638 + // line internal/php5/php5.y:5644 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5646 + // line internal/php5/php5.y:5652 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5650 + // line internal/php5/php5.y:5656 { yyVAL.list = yyDollar[1].list @@ -8222,7 +8228,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5666 + // line internal/php5/php5.y:5672 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8237,7 +8243,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5679 + // line internal/php5/php5.y:5685 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8251,7 +8257,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5691 + // line internal/php5/php5.y:5697 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8265,7 +8271,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5703 + // line internal/php5/php5.y:5709 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8278,7 +8284,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5714 + // line internal/php5/php5.y:5720 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8296,7 +8302,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5730 + // line internal/php5/php5.y:5736 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8312,7 +8318,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5744 + // line internal/php5/php5.y:5750 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8329,7 +8335,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5765 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8344,13 +8350,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5775 + // line internal/php5/php5.y:5781 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5779 + // line internal/php5/php5.y:5785 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8363,13 +8369,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5790 + // line internal/php5/php5.y:5796 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5794 + // line internal/php5/php5.y:5800 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8382,7 +8388,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5808 + // line internal/php5/php5.y:5814 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8396,7 +8402,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5820 + // line internal/php5/php5.y:5826 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8413,7 +8419,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5835 + // line internal/php5/php5.y:5841 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8432,7 +8438,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5852 + // line internal/php5/php5.y:5858 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8447,7 +8453,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5865 + // line internal/php5/php5.y:5871 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8464,7 +8470,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5880 + // line internal/php5/php5.y:5886 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8483,7 +8489,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5897 + // line internal/php5/php5.y:5903 { yyVAL.node = yyDollar[2].node @@ -8493,7 +8499,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5908 + // line internal/php5/php5.y:5914 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8505,7 +8511,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5918 + // line internal/php5/php5.y:5924 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8522,7 +8528,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5933 + // line internal/php5/php5.y:5939 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8536,7 +8542,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5948 + // line internal/php5/php5.y:5954 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8550,7 +8556,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5960 + // line internal/php5/php5.y:5966 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8572,7 +8578,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5980 + // line internal/php5/php5.y:5986 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8594,7 +8600,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6000 + // line internal/php5/php5.y:6006 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8606,7 +8612,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6010 + // line internal/php5/php5.y:6016 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8618,7 +8624,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6020 + // line internal/php5/php5.y:6026 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8640,7 +8646,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6040 + // line internal/php5/php5.y:6046 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8652,7 +8658,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6050 + // line internal/php5/php5.y:6056 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8664,13 +8670,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6063 + // line internal/php5/php5.y:6069 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6067 + // line internal/php5/php5.y:6073 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8679,19 +8685,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6077 + // line internal/php5/php5.y:6083 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6081 + // line internal/php5/php5.y:6087 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6088 + // line internal/php5/php5.y:6094 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8707,7 +8713,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6102 + // line internal/php5/php5.y:6108 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8723,7 +8729,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6119 + // line internal/php5/php5.y:6125 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8739,7 +8745,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6136 + // line internal/php5/php5.y:6142 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 5fb516e..53276ee 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -241,7 +241,7 @@ import ( %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method %type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list echo_expr_list -%type trait_adaptations unset_variables +%type trait_adaptations unset_variables declare_list %type switch_case_list %type method_body %type foreach_statement for_statement while_statement @@ -255,7 +255,7 @@ import ( %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations %type inner_statement_list encaps_list isset_variables non_empty_array_pair_list %type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr -%type for_expr case_list declare_list catch_statement additional_catches +%type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers class_variable_declaration %type interface_list non_empty_function_call_parameter_list trait_list trait_adaptation_list non_empty_trait_adaptation_list @@ -722,7 +722,7 @@ constant_declaration: { constList := $1.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition($1, $5) - lastNode(constList.Consts).(*ast.StmtConstant).CommaTkn = $2 + constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ Node: ast.Node{ Position: position.NewTokenNodePosition($3, $5), @@ -1130,16 +1130,14 @@ unticked_statement: } | T_DECLARE '(' declare_list ')' declare_statement { + $5.(*ast.StmtDeclare).DeclareTkn = $1 + $5.(*ast.StmtDeclare).OpenParenthesisTkn = $2 + $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items + $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns + $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 + $5.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition($1, $5) + $$ = $5 - $$.(*ast.StmtDeclare).Consts = $3 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.SkippedTokens) } | ';' { @@ -1646,29 +1644,30 @@ foreach_statement: declare_statement: statement { - $$ = &ast.StmtDeclare{ast.Node{}, false, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtDeclare{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDDECLARE ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtDeclare{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndDeclareTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; @@ -1676,42 +1675,49 @@ declare_statement: declare_list: T_STRING '=' static_scalar { - $$ = []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), }, - Value: $1.Value, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Value: $1.Value, + }, + EqualTkn: $2, + Expr: $3, }, - EqualTkn: $2, - Expr: $3, }, } - yylex.(*Parser).setFreeFloating(lastNode($$).(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) + yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) } | declare_list ',' T_STRING '=' static_scalar { - lastNode($1).(*ast.StmtConstant).CommaTkn = $2 - $$ = append($1, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append( + $1.(*ast.ParserSeparatedList).Items, + &ast.StmtConstant{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $5), }, - Value: $3.Value, + Name: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + Value: $3.Value, + }, + EqualTkn: $4, + Expr: $5, }, - EqualTkn: $4, - Expr: $5, - }) + ) - yylex.(*Parser).setFreeFloating(lastNode($$).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) + $$ = $1 + + yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 4b801a5..6ecb7f7 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4797 +// line internal/php7/php7.y:4800 // line yacctab:1 var yyExca = [...]int{ @@ -1429,11 +1429,11 @@ var yyPgo = [...]int{ 19, 38, 913, 912, 79, 911, 73, 910, 5, 909, 908, 905, 904, 15, 62, 903, 902, 100, 87, 274, 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, - 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, - 880, 10, 879, 878, 46, 39, 40, 2, 16, 705, - 43, 85, 876, 875, 871, 12, 870, 868, 555, 867, - 50, 37, 864, 862, 9, 762, 20, 553, 860, 18, - 858, 855, 854, 88, 36, 853, 25, 33, 848, 45, + 896, 895, 894, 893, 892, 99, 890, 883, 882, 88, + 881, 880, 10, 879, 878, 46, 39, 40, 2, 16, + 705, 43, 85, 876, 875, 871, 12, 870, 868, 555, + 867, 50, 37, 864, 862, 9, 762, 20, 553, 860, + 18, 858, 855, 854, 36, 853, 25, 33, 848, 45, 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } @@ -1447,27 +1447,27 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, - 117, 99, 99, 10, 10, 10, 9, 9, 9, 9, + 117, 100, 100, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 95, 95, 16, 16, 18, 18, 7, 7, 107, + 9, 96, 96, 16, 16, 18, 18, 7, 7, 107, 107, 106, 106, 111, 111, 17, 17, 20, 20, 19, - 19, 103, 103, 118, 118, 22, 22, 22, 22, 22, + 19, 69, 69, 118, 118, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 101, 101, 100, 100, - 26, 26, 89, 89, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 79, 79, 14, 15, 90, 90, - 92, 92, 91, 91, 96, 96, 96, 96, 86, 86, - 85, 85, 25, 25, 83, 83, 83, 83, 109, 109, - 109, 8, 8, 87, 87, 70, 70, 68, 68, 72, - 72, 69, 69, 119, 119, 120, 120, 29, 29, 30, - 30, 78, 78, 76, 76, 76, 77, 77, 80, 80, + 11, 11, 11, 11, 11, 11, 102, 102, 101, 101, + 26, 26, 90, 90, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 80, 80, 14, 15, 91, 91, + 93, 93, 92, 92, 97, 97, 97, 97, 87, 87, + 86, 86, 25, 25, 84, 84, 84, 84, 109, 109, + 109, 8, 8, 88, 88, 71, 71, 68, 68, 73, + 73, 70, 70, 119, 119, 120, 120, 29, 29, 30, + 30, 79, 79, 77, 77, 77, 78, 78, 81, 81, 116, 116, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 121, 121, 37, 37, 37, 37, 125, 125, 82, - 82, 82, 110, 110, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 84, 84, 123, 123, 122, 122, - 124, 124, 94, 94, 94, 94, 94, 94, 108, 108, - 43, 43, 102, 102, 71, 21, 67, 67, 44, 104, + 36, 121, 121, 37, 37, 37, 37, 125, 125, 83, + 83, 83, 110, 110, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 85, 85, 123, 123, 122, 122, + 124, 124, 95, 95, 95, 95, 95, 95, 108, 108, + 43, 43, 103, 103, 72, 21, 67, 67, 44, 104, 104, 105, 105, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1476,19 +1476,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 88, 88, 128, 3, 3, 93, 93, + 32, 32, 32, 89, 89, 128, 3, 3, 94, 94, 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 98, 98, 98, 81, 81, 58, + 48, 48, 51, 51, 99, 99, 99, 82, 82, 58, 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, - 64, 64, 55, 55, 55, 56, 56, 56, 115, 74, - 74, 114, 114, 73, 73, 73, 73, 73, 73, 73, - 97, 97, 97, 97, 65, 65, 65, 65, 65, 65, + 64, 64, 55, 55, 55, 56, 56, 56, 115, 75, + 75, 114, 114, 74, 74, 74, 74, 74, 74, 74, + 98, 98, 98, 98, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 113, 113, 75, + 50, 50, 113, 113, 76, } var yyR2 = [...]int{ @@ -1546,44 +1546,44 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -68, -69, 21, 20, 23, + 52, 80, 45, 39, 144, -68, -70, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -70, -72, -28, -32, -79, 7, -62, -63, + 54, 55, -71, -73, -28, -32, -80, 7, -62, -63, -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -52, 143, 97, 98, 107, -88, 100, 101, + 6, 158, -52, 143, 97, 98, 107, -89, 100, 101, -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -99, 83, 148, 83, -99, 144, 10, - -18, -95, -111, -99, 83, 37, 39, -19, -20, -103, + -61, 61, 18, -100, 83, 148, 83, -100, 144, 10, + -18, -96, -111, -100, 83, 37, 39, -19, -20, -69, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -88, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -89, -36, 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -79, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -80, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -115, -114, -74, -73, -23, 153, + 150, 144, 58, 148, -115, -114, -75, -74, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -98, 17, -97, -65, 12, + -23, -23, -51, 148, -23, -99, 17, -98, -65, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -97, -97, 17, -3, 144, -49, - -80, 148, -80, 148, 83, -99, 149, -99, 146, 144, - -117, 146, -16, -111, -99, 83, 146, 160, 83, 29, - -99, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -23, -23, 17, 76, -98, -98, 17, -3, 144, -49, + -81, 148, -81, 148, 83, -100, 149, -100, 146, 144, + -117, 146, -16, -111, -100, 83, 146, 160, 83, 29, + -100, -20, 146, 160, 162, -22, 145, 2, -11, -12, -13, -14, -15, 52, -23, 21, -3, -104, -105, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -89, -27, -28, -23, -103, -118, 146, 146, 10, - -128, 10, -90, 56, -128, -92, 56, 148, -11, 148, + -23, -90, -27, -28, -23, -69, -118, 146, 146, 10, + -128, 10, -91, 56, -128, -93, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, @@ -1597,48 +1597,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -81, -80, 79, 150, 144, 58, 79, -81, -113, -75, + -82, -81, 79, 150, 144, 58, 79, -82, -113, -76, -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -99, -19, 83, -99, 144, 10, 83, -21, -23, + 83, -100, -19, 83, -100, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -90, - -91, 57, -10, 144, -128, -125, -10, -23, -23, -118, - -23, 149, 151, 145, -80, -23, 149, 162, -74, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -91, + -92, 57, -10, 144, -128, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -81, -23, 149, 162, -75, -23, 153, 60, -115, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -80, -23, - -80, -49, -24, -23, -56, -49, -90, -7, 160, 149, - 149, -119, -120, -29, -30, -78, -76, 152, 61, 62, + 12, 10, 145, 145, 150, 145, -23, 151, -81, -23, + -81, -49, -24, -23, -56, -49, -91, -7, 160, 149, + 149, -119, -120, -29, -30, -79, -77, 152, 61, 62, -10, 145, -7, 160, -23, 149, 145, 144, 83, -107, - -17, -20, -95, 144, -128, 149, -87, -11, 147, -23, - -104, -23, -83, 144, 147, -23, 149, -27, -96, -28, - 153, 60, 150, -25, -11, 147, -101, 148, -119, -91, + -17, -20, -96, 144, -128, 149, -88, -11, 147, -23, + -104, -23, -84, 144, 147, -23, 149, -27, -97, -28, + 153, 60, 150, -25, -11, 147, -102, 148, -119, -92, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -91, 149, -75, 149, 160, -1, 153, -76, + 151, 145, -92, 149, -76, 149, 160, -1, 153, -77, 149, -31, -106, -20, 144, -7, 160, -20, -107, 146, -118, 149, 146, -109, 146, -109, 146, 146, 149, 59, -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -37, -123, -122, 45, -124, 48, -94, 104, + 144, 145, -37, -123, -122, 45, -124, 48, -95, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -128, -77, 147, -29, -2, 84, + -118, -23, -115, 151, -128, -78, 147, -29, -2, 84, -7, 160, -106, 145, -17, -7, 22, 146, -104, 145, - 32, 33, -109, 31, -109, -85, -11, 147, -96, -28, - -115, 151, 28, 148, 144, 149, -93, 45, 144, -121, - -30, 39, 37, -125, -94, 145, -118, 149, 145, 144, - -128, -78, 12, 145, -20, -7, 145, 146, 149, -23, + 32, 33, -109, 31, -109, -86, -11, 147, -97, -28, + -115, 151, 28, 148, 144, 149, -94, 45, 144, -121, + -30, 39, 37, -125, -95, 145, -118, 149, 145, 144, + -128, -79, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -100, -10, -118, -77, -77, 148, -121, 145, -108, -43, - 12, -102, -71, -6, -3, -82, 146, 144, -121, 59, - 162, 145, -86, -11, 147, -8, -118, 146, 26, -85, + -101, -10, -118, -78, -78, 148, -121, 145, -108, -43, + 12, -103, -72, -6, -3, -83, 146, 144, -121, 59, + 162, 145, -87, -11, 147, -8, -118, 146, 26, -86, 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -110, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -43, -23, -71, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -72, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -125, 10, -4, -94, -6, 146, -118, -119, - -6, 145, 149, -77, -84, 146, 144, -118, 145, + -128, 148, -125, 10, -4, -95, -6, 146, -118, -119, + -6, 145, 149, -78, -85, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2829,14 +2829,15 @@ yydefault: Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, - ConstTkn: yyDollar[1].token, - Consts: yyDollar[2].list, - SemiColonTkn: yyDollar[3].token, + ConstTkn: yyDollar[1].token, + Consts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[3].token, } } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:553 + // line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2848,7 +2849,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:563 + // line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2860,7 +2861,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:576 + // line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2884,7 +2885,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:598 + // line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2907,7 +2908,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:622 + // line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2929,7 +2930,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:642 + // line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2952,19 +2953,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:666 + // line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:670 + // line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:677 + // line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2972,13 +2973,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:683 + // line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:690 + // line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2986,13 +2987,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:696 + // line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:703 + // line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3000,19 +3001,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:709 + // line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:716 + // line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:720 + // line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3022,7 +3023,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:731 + // line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3038,7 +3039,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:745 + // line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3062,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:769 + // line internal/php7/php7.y:770 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:773 + // line internal/php7/php7.y:774 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,21 +3078,24 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:784 + // line internal/php7/php7.y:785 { - lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:790 + // line internal/php7/php7.y:792 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:797 + // line internal/php7/php7.y:801 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3104,50 +3108,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:808 + // line internal/php7/php7.y:812 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:815 + // line internal/php7/php7.y:819 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:820 + // line internal/php7/php7.y:824 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:824 + // line internal/php7/php7.y:828 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:828 + // line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:832 + // line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:836 + // line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:840 + // line internal/php7/php7.y:844 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3161,7 +3165,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:854 + // line internal/php7/php7.y:858 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3174,19 +3178,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:865 + // line internal/php7/php7.y:869 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:869 + // line internal/php7/php7.y:873 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:873 + // line internal/php7/php7.y:877 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3198,7 +3202,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:883 + // line internal/php7/php7.y:887 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3215,7 +3219,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:898 + // line internal/php7/php7.y:902 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3231,7 +3235,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:912 + // line internal/php7/php7.y:916 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3247,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:922 + // line internal/php7/php7.y:926 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3256,7 +3260,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:933 + // line internal/php7/php7.y:937 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3269,7 +3273,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:944 + // line internal/php7/php7.y:948 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3282,7 +3286,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:955 + // line internal/php7/php7.y:959 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3292,7 +3296,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:963 + // line internal/php7/php7.y:967 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3302,7 +3306,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:971 + // line internal/php7/php7.y:975 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3312,7 +3316,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:979 + // line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3324,7 +3328,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:989 + // line internal/php7/php7.y:993 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3338,7 +3342,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1001 + // line internal/php7/php7.y:1005 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3355,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1012 + // line internal/php7/php7.y:1016 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3369,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1024 + // line internal/php7/php7.y:1028 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,22 +3385,20 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1038 + // line internal/php7/php7.y:1042 { + yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token + yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token + yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items + yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token + yyDollar[5].node.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyVAL.node = yyDollar[5].node - yyVAL.node.(*ast.StmtDeclare).Consts = yyDollar[3].list - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Declare, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ConstList, yyDollar[4].token.SkippedTokens) } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1051 + // line internal/php7/php7.y:1053 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -3409,7 +3411,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1062 + // line internal/php7/php7.y:1064 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3426,7 +3428,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1077 + // line internal/php7/php7.y:1079 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3440,7 +3442,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1089 + // line internal/php7/php7.y:1091 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3457,7 +3459,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1104 + // line internal/php7/php7.y:1106 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3472,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1119 + // line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1123 + // line internal/php7/php7.y:1125 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3500,13 +3502,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1145 + // line internal/php7/php7.y:1147 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1149 + // line internal/php7/php7.y:1151 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3520,13 +3522,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1163 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1165 + // line internal/php7/php7.y:1167 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3540,7 +3542,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1180 + // line internal/php7/php7.y:1182 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3548,7 +3550,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1186 + // line internal/php7/php7.y:1188 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3557,13 +3559,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1198 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1203 + // line internal/php7/php7.y:1205 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3593,31 +3595,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1234 + // line internal/php7/php7.y:1236 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1238 + // line internal/php7/php7.y:1240 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1245 + // line internal/php7/php7.y:1247 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1249 + // line internal/php7/php7.y:1251 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1258 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3635,7 +3637,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1272 + // line internal/php7/php7.y:1274 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3652,19 +3654,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1290 + // line internal/php7/php7.y:1292 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1294 + // line internal/php7/php7.y:1296 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1301 + // line internal/php7/php7.y:1303 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3676,7 +3678,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1311 + // line internal/php7/php7.y:1313 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3688,7 +3690,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1324 + // line internal/php7/php7.y:1326 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3705,7 +3707,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1342 + // line internal/php7/php7.y:1344 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3722,13 +3724,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1360 + // line internal/php7/php7.y:1362 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1364 + // line internal/php7/php7.y:1366 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3740,13 +3742,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1377 + // line internal/php7/php7.y:1379 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1383 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3758,13 +3760,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1394 + // line internal/php7/php7.y:1396 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1398 + // line internal/php7/php7.y:1400 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3776,13 +3778,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1411 + // line internal/php7/php7.y:1413 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1415 + // line internal/php7/php7.y:1417 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3794,7 +3796,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1425 + // line internal/php7/php7.y:1427 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3808,7 +3810,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1439 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3821,7 +3823,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1451 + // line internal/php7/php7.y:1453 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3832,7 +3834,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1460 + // line internal/php7/php7.y:1462 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3852,7 +3854,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1481 + // line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3863,7 +3865,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1490 + // line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3883,37 +3885,38 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1511 + // line internal/php7/php7.y:1513 { - yyVAL.node = &ast.StmtDeclare{ast.Node{}, false, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.StmtDeclare{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Stmt: yyDollar[1].node, + } } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1518 + // line internal/php7/php7.y:1522 { - stmtList := &ast.StmtStmtList{ + yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - Stmts: yyDollar[2].list, + Alt: true, + ColonTkn: yyDollar[1].token, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[2].list), + }, + Stmts: yyDollar[2].list, + }, + EndDeclareTkn: yyDollar[3].token, + SemiColonTkn: yyDollar[4].token, } - yyVAL.node = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AltEnd, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1540 + // line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3926,7 +3929,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1554 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3940,7 +3943,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1563 + // line internal/php7/php7.y:1566 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3955,7 +3958,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1576 + // line internal/php7/php7.y:1579 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,13 +3974,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1593 + // line internal/php7/php7.y:1596 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1597 + // line internal/php7/php7.y:1600 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3991,7 +3994,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1609 + // line internal/php7/php7.y:1612 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4004,19 +4007,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1623 + // line internal/php7/php7.y:1626 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1627 + // line internal/php7/php7.y:1630 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1634 + // line internal/php7/php7.y:1637 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4027,7 +4030,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1643 + // line internal/php7/php7.y:1646 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4047,7 +4050,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1664 + // line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4062,7 +4065,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1677 + // line internal/php7/php7.y:1680 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4081,13 +4084,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1697 + // line internal/php7/php7.y:1700 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1701 + // line internal/php7/php7.y:1704 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4103,7 +4106,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1718 + // line internal/php7/php7.y:1721 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4125,7 +4128,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1738 + // line internal/php7/php7.y:1741 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4149,7 +4152,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1763 + // line internal/php7/php7.y:1766 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4159,7 +4162,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1771 + // line internal/php7/php7.y:1774 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4183,25 +4186,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1799 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1800 + // line internal/php7/php7.y:1803 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1807 + // line internal/php7/php7.y:1810 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1811 + // line internal/php7/php7.y:1814 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4210,7 +4213,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1821 + // line internal/php7/php7.y:1824 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4246,7 +4249,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1855 + // line internal/php7/php7.y:1858 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4283,25 +4286,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1893 + // line internal/php7/php7.y:1896 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1897 + // line internal/php7/php7.y:1900 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1904 + // line internal/php7/php7.y:1907 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1908 + // line internal/php7/php7.y:1911 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4313,7 +4316,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1921 + // line internal/php7/php7.y:1924 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4325,7 +4328,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1931 + // line internal/php7/php7.y:1934 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4337,19 +4340,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1941 + // line internal/php7/php7.y:1944 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1948 + // line internal/php7/php7.y:1951 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1952 + // line internal/php7/php7.y:1955 { yyVAL.node = yyDollar[2].node @@ -4358,7 +4361,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1962 + // line internal/php7/php7.y:1965 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4371,7 +4374,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1973 + // line internal/php7/php7.y:1976 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4388,13 +4391,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1991 + // line internal/php7/php7.y:1994 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1995 + // line internal/php7/php7.y:1998 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4403,7 +4406,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2005 + // line internal/php7/php7.y:2008 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4415,7 +4418,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2015 + // line internal/php7/php7.y:2018 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4427,7 +4430,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2028 + // line internal/php7/php7.y:2031 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4436,7 +4439,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2035 + // line internal/php7/php7.y:2038 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4444,13 +4447,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2044 + // line internal/php7/php7.y:2047 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2051 + // line internal/php7/php7.y:2054 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4459,7 +4462,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2058 + // line internal/php7/php7.y:2061 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4467,7 +4470,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2067 + // line internal/php7/php7.y:2070 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4488,7 +4491,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2086 + // line internal/php7/php7.y:2089 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4510,19 +4513,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2109 + // line internal/php7/php7.y:2112 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2113 + // line internal/php7/php7.y:2116 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2120 + // line internal/php7/php7.y:2123 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4536,7 +4539,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2132 + // line internal/php7/php7.y:2135 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4550,7 +4553,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2144 + // line internal/php7/php7.y:2147 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4562,7 +4565,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2154 + // line internal/php7/php7.y:2157 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4593,13 +4596,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2186 + // line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2190 + // line internal/php7/php7.y:2193 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4613,7 +4616,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2202 + // line internal/php7/php7.y:2205 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4625,7 +4628,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2215 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4637,7 +4640,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2225 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4649,19 +4652,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2235 + // line internal/php7/php7.y:2238 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2239 + // line internal/php7/php7.y:2242 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2246 + // line internal/php7/php7.y:2249 { yyVAL.node = yyDollar[1].node @@ -4671,7 +4674,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2254 + // line internal/php7/php7.y:2257 { yyVAL.node = yyDollar[1].node @@ -4681,7 +4684,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2268 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4694,7 +4697,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2279 + // line internal/php7/php7.y:2282 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4710,7 +4713,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2293 + // line internal/php7/php7.y:2296 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4726,7 +4729,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2307 + // line internal/php7/php7.y:2310 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4742,7 +4745,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2321 + // line internal/php7/php7.y:2324 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4755,7 +4758,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2335 + // line internal/php7/php7.y:2338 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4769,13 +4772,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2347 + // line internal/php7/php7.y:2350 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2354 + // line internal/php7/php7.y:2357 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4791,7 +4794,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2371 + // line internal/php7/php7.y:2374 { yyVAL.node = &ast.StmtNop{ast.Node{}} @@ -4804,7 +4807,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2382 + // line internal/php7/php7.y:2385 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4817,13 +4820,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2396 + // line internal/php7/php7.y:2399 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2400 + // line internal/php7/php7.y:2403 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4836,31 +4839,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2414 + // line internal/php7/php7.y:2417 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2418 + // line internal/php7/php7.y:2421 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2428 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2429 + // line internal/php7/php7.y:2432 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2436 + // line internal/php7/php7.y:2439 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4872,7 +4875,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2446 + // line internal/php7/php7.y:2449 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4884,7 +4887,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2456 + // line internal/php7/php7.y:2459 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4896,7 +4899,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2466 + // line internal/php7/php7.y:2469 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4908,7 +4911,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2479 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4920,7 +4923,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2486 + // line internal/php7/php7.y:2489 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4932,7 +4935,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2499 + // line internal/php7/php7.y:2502 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4941,13 +4944,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2506 + // line internal/php7/php7.y:2509 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2513 + // line internal/php7/php7.y:2516 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4963,7 +4966,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2527 + // line internal/php7/php7.y:2530 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4980,7 +4983,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2545 + // line internal/php7/php7.y:2548 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -4988,13 +4991,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2551 + // line internal/php7/php7.y:2554 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2558 + // line internal/php7/php7.y:2561 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5014,7 +5017,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2579 + // line internal/php7/php7.y:2582 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5034,7 +5037,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2600 + // line internal/php7/php7.y:2603 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5043,7 +5046,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2607 + // line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5051,25 +5054,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2616 + // line internal/php7/php7.y:2619 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2623 + // line internal/php7/php7.y:2626 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2627 + // line internal/php7/php7.y:2630 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2634 + // line internal/php7/php7.y:2637 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5078,13 +5081,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2641 + // line internal/php7/php7.y:2644 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2648 + // line internal/php7/php7.y:2651 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5102,7 +5105,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2667 + // line internal/php7/php7.y:2670 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5117,7 +5120,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2680 + // line internal/php7/php7.y:2683 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5129,7 +5132,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2693 + // line internal/php7/php7.y:2696 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5146,7 +5149,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2708 + // line internal/php7/php7.y:2711 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5162,7 +5165,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2722 + // line internal/php7/php7.y:2725 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5175,7 +5178,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2733 + // line internal/php7/php7.y:2736 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5189,7 +5192,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2745 + // line internal/php7/php7.y:2748 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5201,7 +5204,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2755 + // line internal/php7/php7.y:2758 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5214,7 +5217,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2766 + // line internal/php7/php7.y:2769 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5227,7 +5230,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2777 + // line internal/php7/php7.y:2780 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5240,7 +5243,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2791 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5253,7 +5256,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2799 + // line internal/php7/php7.y:2802 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5266,7 +5269,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2810 + // line internal/php7/php7.y:2813 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5279,7 +5282,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2821 + // line internal/php7/php7.y:2824 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5295,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2832 + // line internal/php7/php7.y:2835 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5305,7 +5308,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2843 + // line internal/php7/php7.y:2846 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5321,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2854 + // line internal/php7/php7.y:2857 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5334,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2865 + // line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5347,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2876 + // line internal/php7/php7.y:2879 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5360,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2887 + // line internal/php7/php7.y:2890 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5373,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2898 + // line internal/php7/php7.y:2901 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5383,7 +5386,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2909 + // line internal/php7/php7.y:2912 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5395,7 +5398,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2919 + // line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5408,7 +5411,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2930 + // line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5420,7 +5423,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2940 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5433,7 +5436,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2951 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5446,7 +5449,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2962 + // line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5459,7 +5462,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2973 + // line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5472,7 +5475,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2984 + // line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5485,7 +5488,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2995 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5498,7 +5501,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3006 + // line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5511,7 +5514,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5527,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3028 + // line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5539,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3038 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5552,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3049 + // line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5565,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3060 + // line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5578,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5588,7 +5591,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3082 + // line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5601,7 +5604,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3093 + // line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5617,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5630,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3115 + // line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5643,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3126 + // line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5652,7 +5655,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3136 + // line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5664,7 +5667,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3146 + // line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5676,7 +5679,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3156 + // line internal/php7/php7.y:3159 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5688,7 +5691,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5701,7 +5704,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3177 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5714,7 +5717,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3188 + // line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5727,7 +5730,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3199 + // line internal/php7/php7.y:3202 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5741,7 +5744,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3211 + // line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5754,7 +5757,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3222 + // line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5770,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3233 + // line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5783,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3244 + // line internal/php7/php7.y:3247 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5796,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3255 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5809,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3266 + // line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5822,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3280 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5836,13 +5839,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3292 + // line internal/php7/php7.y:3295 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3296 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5856,7 +5859,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3308 + // line internal/php7/php7.y:3311 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5870,7 +5873,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3320 + // line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5883,13 +5886,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3331 + // line internal/php7/php7.y:3334 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3335 + // line internal/php7/php7.y:3338 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5902,7 +5905,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3346 + // line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5915,7 +5918,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3357 + // line internal/php7/php7.y:3360 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5928,7 +5931,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3368 + // line internal/php7/php7.y:3371 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5941,7 +5944,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3379 + // line internal/php7/php7.y:3382 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5954,7 +5957,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3390 + // line internal/php7/php7.y:3393 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5967,7 +5970,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3404 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -5980,7 +5983,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3412 + // line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6000,7 +6003,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3433 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6012,13 +6015,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3440 + // line internal/php7/php7.y:3443 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3444 + // line internal/php7/php7.y:3447 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6030,7 +6033,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3454 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6042,7 +6045,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3467 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6054,7 +6057,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6066,7 +6069,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3484 + // line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6079,7 +6082,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3495 + // line internal/php7/php7.y:3498 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6091,13 +6094,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3508 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3512 { yyVAL.node = yyDollar[2].node @@ -6118,7 +6121,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3530 + // line internal/php7/php7.y:3533 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6149,7 +6152,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3557 + // line internal/php7/php7.y:3560 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6175,25 +6178,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3587 + // line internal/php7/php7.y:3590 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3591 + // line internal/php7/php7.y:3594 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3598 + // line internal/php7/php7.y:3601 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3602 + // line internal/php7/php7.y:3605 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6207,7 +6210,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3617 + // line internal/php7/php7.y:3620 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6216,13 +6219,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3624 + // line internal/php7/php7.y:3627 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3631 + // line internal/php7/php7.y:3634 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6236,7 +6239,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3643 + // line internal/php7/php7.y:3646 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6253,7 +6256,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3661 + // line internal/php7/php7.y:3664 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6265,7 +6268,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3671 + // line internal/php7/php7.y:3674 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6278,7 +6281,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3682 + // line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6291,7 +6294,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3693 + // line internal/php7/php7.y:3696 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6303,7 +6306,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3706 + // line internal/php7/php7.y:3709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6315,31 +6318,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3716 + // line internal/php7/php7.y:3719 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3723 + // line internal/php7/php7.y:3726 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3727 + // line internal/php7/php7.y:3730 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3734 + // line internal/php7/php7.y:3737 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3738 + // line internal/php7/php7.y:3741 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6356,13 +6359,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3756 + // line internal/php7/php7.y:3759 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3760 + // line internal/php7/php7.y:3763 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6372,25 +6375,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3768 + // line internal/php7/php7.y:3771 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3775 + // line internal/php7/php7.y:3778 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3779 + // line internal/php7/php7.y:3782 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3789 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6404,7 +6407,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3798 + // line internal/php7/php7.y:3801 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6417,7 +6420,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6429,7 +6432,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3822 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6441,7 +6444,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3832 + // line internal/php7/php7.y:3835 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6453,7 +6456,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3842 + // line internal/php7/php7.y:3845 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6465,7 +6468,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3855 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6477,7 +6480,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3862 + // line internal/php7/php7.y:3865 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6489,7 +6492,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3872 + // line internal/php7/php7.y:3875 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6501,7 +6504,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3885 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6513,7 +6516,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6525,7 +6528,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3902 + // line internal/php7/php7.y:3905 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6537,7 +6540,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3912 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6549,7 +6552,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3925 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6563,7 +6566,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3934 + // line internal/php7/php7.y:3937 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6575,7 +6578,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3944 + // line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6587,7 +6590,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3954 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6599,19 +6602,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3964 + // line internal/php7/php7.y:3967 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3968 + // line internal/php7/php7.y:3971 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3975 + // line internal/php7/php7.y:3978 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6623,7 +6626,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3985 + // line internal/php7/php7.y:3988 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6639,7 +6642,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3999 + // line internal/php7/php7.y:4002 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6655,43 +6658,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4019 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4020 + // line internal/php7/php7.y:4023 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4027 + // line internal/php7/php7.y:4030 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4031 + // line internal/php7/php7.y:4034 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4038 + // line internal/php7/php7.y:4041 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4045 + // line internal/php7/php7.y:4048 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4049 + // line internal/php7/php7.y:4052 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6708,19 +6711,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4064 + // line internal/php7/php7.y:4067 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4071 + // line internal/php7/php7.y:4074 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4078 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6737,19 +6740,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4090 + // line internal/php7/php7.y:4093 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4100 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4104 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6762,7 +6765,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4112 + // line internal/php7/php7.y:4115 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6775,7 +6778,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4123 + // line internal/php7/php7.y:4126 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6788,7 +6791,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4134 + // line internal/php7/php7.y:4137 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6801,25 +6804,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4145 + // line internal/php7/php7.y:4148 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4152 + // line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4156 + // line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4160 + // line internal/php7/php7.y:4163 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6832,7 +6835,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4174 + // line internal/php7/php7.y:4177 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6846,7 +6849,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4186 + // line internal/php7/php7.y:4189 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6860,7 +6863,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4198 + // line internal/php7/php7.y:4201 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6872,7 +6875,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4211 + // line internal/php7/php7.y:4214 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6885,7 +6888,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4222 + // line internal/php7/php7.y:4225 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6898,13 +6901,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4239 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4240 + // line internal/php7/php7.y:4243 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6917,7 +6920,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4254 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6930,7 +6933,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4262 + // line internal/php7/php7.y:4265 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6943,7 +6946,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4273 + // line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6956,7 +6959,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4284 + // line internal/php7/php7.y:4287 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6969,7 +6972,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4301 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6981,7 +6984,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4308 + // line internal/php7/php7.y:4311 { yyVAL.node = yyDollar[2].node @@ -6991,13 +6994,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4316 + // line internal/php7/php7.y:4319 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4323 + // line internal/php7/php7.y:4326 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7009,7 +7012,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4336 { yyVAL.node = yyDollar[2].node @@ -7019,31 +7022,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4341 + // line internal/php7/php7.y:4344 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4348 + // line internal/php7/php7.y:4351 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4355 + // line internal/php7/php7.y:4358 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4359 + // line internal/php7/php7.y:4362 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4366 + // line internal/php7/php7.y:4369 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7056,7 +7059,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4377 + // line internal/php7/php7.y:4380 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7066,7 +7069,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4391 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7079,7 +7082,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4399 + // line internal/php7/php7.y:4402 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7091,7 +7094,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4409 + // line internal/php7/php7.y:4412 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7107,7 +7110,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4423 + // line internal/php7/php7.y:4426 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7121,7 +7124,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4438 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7133,7 +7136,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4445 + // line internal/php7/php7.y:4448 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7152,7 +7155,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4465 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7169,13 +7172,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4480 + // line internal/php7/php7.y:4483 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4487 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7188,13 +7191,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4498 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4499 + // line internal/php7/php7.y:4502 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7207,7 +7210,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4513 + // line internal/php7/php7.y:4516 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7221,7 +7224,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4525 + // line internal/php7/php7.y:4528 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7238,7 +7241,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4540 + // line internal/php7/php7.y:4543 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7257,7 +7260,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4557 + // line internal/php7/php7.y:4560 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7272,7 +7275,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4570 + // line internal/php7/php7.y:4573 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7289,7 +7292,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4585 + // line internal/php7/php7.y:4588 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7308,7 +7311,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4602 + // line internal/php7/php7.y:4605 { yyVAL.node = yyDollar[2].node @@ -7318,7 +7321,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4616 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7330,7 +7333,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4623 + // line internal/php7/php7.y:4626 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7347,7 +7350,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4638 + // line internal/php7/php7.y:4641 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7373,7 +7376,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4665 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7387,7 +7390,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4677 + // line internal/php7/php7.y:4680 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7405,7 +7408,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4693 + // line internal/php7/php7.y:4696 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7427,7 +7430,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4713 + // line internal/php7/php7.y:4716 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7439,7 +7442,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4723 + // line internal/php7/php7.y:4726 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7451,7 +7454,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4733 + // line internal/php7/php7.y:4736 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7473,7 +7476,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4753 + // line internal/php7/php7.y:4756 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7485,7 +7488,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4763 + // line internal/php7/php7.y:4766 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7497,13 +7500,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4776 + // line internal/php7/php7.y:4779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4780 + // line internal/php7/php7.y:4783 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7512,7 +7515,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4790 + // line internal/php7/php7.y:4793 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 2d9825a..79efe9d 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -250,7 +250,7 @@ import ( %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list -%type if_stmt +%type if_stmt const_list %type alt_if_stmt %type if_stmt_without_else %type class_const_decl @@ -276,7 +276,7 @@ import ( %type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list -%type const_list for_exprs non_empty_for_exprs +%type for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations property_list %type case_list trait_adaptation_list %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list @@ -541,9 +541,10 @@ top_statement: Node: ast.Node{ Position: position.NewTokensPosition($1, $3), }, - ConstTkn: $1, - Consts: $2, - SemiColonTkn: $3, + ConstTkn: $1, + Consts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $3, } } ; @@ -782,13 +783,16 @@ use_declaration: const_list: const_list ',' const_decl { - lastNode($1).(*ast.StmtConstant).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | const_decl { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; @@ -1036,16 +1040,14 @@ statement: } | T_DECLARE '(' const_list ')' declare_statement { + $5.(*ast.StmtDeclare).DeclareTkn = $1 + $5.(*ast.StmtDeclare).OpenParenthesisTkn = $2 + $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items + $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns + $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 + $5.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition($1, $5) + $$ = $5 - $$.(*ast.StmtDeclare).Consts = $3 - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Declare, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ConstList, $4.SkippedTokens) } | ';' { @@ -1509,29 +1511,30 @@ foreach_statement: declare_statement: statement { - $$ = &ast.StmtDeclare{ast.Node{}, false, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.StmtDeclare{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Stmt: $1, + } } | ':' inner_statement_list T_ENDDECLARE ';' { - stmtList := &ast.StmtStmtList{ + $$ = &ast.StmtDeclare{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewTokensPosition($1, $4), }, - Stmts: $2, + Alt: true, + ColonTkn: $1, + Stmt: &ast.StmtStmtList{ + Node: ast.Node{ + Position: position.NewNodeListPosition($2), + }, + Stmts: $2, + }, + EndDeclareTkn: $3, + SemiColonTkn: $4, } - $$ = &ast.StmtDeclare{ast.Node{}, true, nil, stmtList} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Cond, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AltEnd, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) } ; diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index aa2170a..7e02236 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -189,7 +189,6 @@ type NodeVisitor interface { NameRelative(n *NameRelative) NameNamePart(n *NameNamePart) - ParserAs(n *ParserAs) - ParserNsSeparator(n *ParserNsSeparator) ParserBrackets(n *ParserBrackets) + ParserSeparatedList(n *ParserSeparatedList) } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 516019f..845c124 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -278,9 +278,10 @@ func (n *StmtClassMethod) Accept(v NodeVisitor) { // StmtConstList node type StmtConstList struct { Node - ConstTkn *token.Token - Consts []Vertex - SemiColonTkn *token.Token + ConstTkn *token.Token + Consts []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtConstList) Accept(v NodeVisitor) { @@ -315,9 +316,16 @@ func (n *StmtContinue) Accept(v NodeVisitor) { // StmtDeclare node type StmtDeclare struct { Node - Alt bool - Consts []Vertex - Stmt Vertex + Alt bool + DeclareTkn *token.Token + OpenParenthesisTkn *token.Token + Consts []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + Stmt Vertex + EndDeclareTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtDeclare) Accept(v NodeVisitor) { @@ -1887,24 +1895,6 @@ func (n *NameNamePart) Accept(v NodeVisitor) { v.NameNamePart(n) } -type ParserAs struct { - Node - Child Vertex -} - -func (n *ParserAs) Accept(v NodeVisitor) { - v.ParserAs(n) -} - -type ParserNsSeparator struct { - Node - Child Vertex -} - -func (n *ParserNsSeparator) Accept(v NodeVisitor) { - v.ParserNsSeparator(n) -} - type ParserBrackets struct { Node OpenBracketTkn *token.Token @@ -1915,3 +1905,13 @@ type ParserBrackets struct { func (n *ParserBrackets) Accept(v NodeVisitor) { v.ParserBrackets(n) } + +type ParserSeparatedList struct { + Node + Items []Vertex + SeparatorTkns []*token.Token +} + +func (n *ParserSeparatedList) Accept(v NodeVisitor) { + v.ParserSeparatedList(n) +} diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 615c682..b9189a0 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -2607,30 +2607,6 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - case *ast.ParserAs: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Child != nil { - t.visitor.Enter("Child", true) - t.Traverse(nn.Child) - t.visitor.Leave("Child", true) - } - case *ast.ParserNsSeparator: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Child != nil { - t.visitor.Enter("Child", true) - t.Traverse(nn.Child) - t.visitor.Leave("Child", true) - } case *ast.ParserBrackets: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index de06927..d8160c1 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -1293,20 +1293,12 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) } -func (v *Dump) ParserAs(n *ast.ParserAs) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ParserAs{\n") - v.printNode(n.GetNode()) -} - -func (v *Dump) ParserNsSeparator(n *ast.ParserNsSeparator) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ParserNsSeparator{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ParserBrackets{\n") v.printNode(n.GetNode()) } + +func (v *Dump) ParserSeparatedList(n *ast.ParserSeparatedList) { + // do nothing +} diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 6c86b92..63fc40e 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -70,6 +70,7 @@ func (v *FilterTokens) StmtHaltCompiler(n *ast.StmtHaltCompiler) { func (v *FilterTokens) StmtConstList(n *ast.StmtConstList) { n.ConstTkn = nil + n.SeparatorTkns = nil n.SemiColonTkn = nil } @@ -224,3 +225,13 @@ func (v *FilterTokens) StmtForeach(n *ast.StmtForeach) { n.EndForeachTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtDeclare(n *ast.StmtDeclare) { + n.DeclareTkn = nil + n.OpenParenthesisTkn = nil + n.SeparatorTkns = nil + n.CloseParenthesisTkn = nil + n.ColonTkn = nil + n.EndDeclareTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 582033e..f5e1467 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -674,14 +674,10 @@ func (v *Null) NameNamePart(_ *ast.NameNamePart) { // do nothing } -func (v *Null) ParserAs(_ *ast.ParserAs) { - // do nothing -} - -func (v *Null) ParserNsSeparator(_ *ast.ParserNsSeparator) { - // do nothing -} - func (v *Null) ParserBrackets(_ *ast.ParserBrackets) { // do nothing } + +func (v *Null) ParserSeparatedList(_ *ast.ParserSeparatedList) { + // do nothing +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index b808de1..9195d83 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -484,10 +484,6 @@ func (p *Printer) printNode(n ast.Vertex) { p.printStmtUseDeclaration(n) case *ast.StmtWhile: p.printStmtWhile(n) - case *ast.ParserAs: - p.printParserAs(n) - case *ast.ParserNsSeparator: - p.printParserNsSeparator(n) case *ast.ParserBrackets: p.printParserBrackets(n) } @@ -2158,7 +2154,7 @@ func (p *Printer) printStmtClassConstList(n *ast.StmtClassConstList) { func (p *Printer) printStmtConstList(n *ast.StmtConstList) { p.printToken(n.ConstTkn, "const") p.bufStart = " " - p.joinPrintRefactored(",", n.Consts) + p.printSeparatedList(n.Consts, n.SeparatorTkns, ",") p.printToken(n.SemiColonTkn, ";") } @@ -2180,37 +2176,33 @@ func (p *Printer) printStmtContinue(n *ast.StmtContinue) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtDeclare(n ast.Vertex) { - nn := n.(*ast.StmtDeclare) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtDeclare(n *ast.StmtDeclare) { + if n.Alt { + p.printStmtAltDeclare(n) + return + } + p.printToken(n.DeclareTkn, "declare") + p.printToken(n.OpenParenthesisTkn, "(") + p.printSeparatedList(n.Consts, n.SeparatorTkns, ",") + p.printToken(n.CloseParenthesisTkn, ")") + p.Print(n.Stmt) +} - p.write([]byte("declare")) - p.printFreeFloating(nn, token.Declare) - p.write([]byte("(")) - p.joinPrintRefactored(",", nn.Consts) - p.printFreeFloating(nn, token.ConstList) - p.write([]byte(")")) +func (p *Printer) printStmtAltDeclare(n *ast.StmtDeclare) { + p.printToken(n.DeclareTkn, "declare") + p.printToken(n.OpenParenthesisTkn, "(") + p.printSeparatedList(n.Consts, n.SeparatorTkns, ",") + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.ColonTkn, ":") - if nn.Alt { - p.printFreeFloating(nn, token.Cond) - p.write([]byte(":")) - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - p.printFreeFloating(nn, token.Stmts) - - p.write([]byte("enddeclare")) - p.printFreeFloating(nn, token.AltEnd) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } + if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { + p.printNodes(stmtList.Stmts) } else { - p.Print(nn.Stmt) + p.Print(n.Stmt) } - p.printFreeFloating(nn, token.End) + p.printToken(n.EndDeclareTkn, "enddeclare") + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtDefault(n *ast.StmtDefault) { @@ -2960,26 +2952,6 @@ func (p *Printer) printStmtAltWhile(n *ast.StmtWhile) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printParserAs(n ast.Vertex) { - nn := n.(*ast.ParserAs) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("as")) - p.Print(nn.Child) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printParserNsSeparator(n ast.Vertex) { - nn := n.(*ast.ParserNsSeparator) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("\\")) - p.Print(nn.Child) - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printParserBrackets(n ast.Vertex) { nn := n.(*ast.ParserBrackets) p.printFreeFloating(nn, token.Start) From 33af1df9c486af274f8e0ccd227ec7506e7e1589 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 14 Sep 2020 19:34:02 +0300 Subject: [PATCH 064/140] [refactoring] update ast structure of "Nop" node --- internal/php5/php5.go | 1083 +++++++++++++++--------------- internal/php5/php5.y | 41 +- internal/php7/php7.go | 1029 ++++++++++++++-------------- internal/php7/php7.y | 41 +- pkg/ast/node.go | 1 + pkg/ast/visitor/filter_tokens.go | 4 + pkg/printer/printer.go | 9 +- 7 files changed, 1094 insertions(+), 1114 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 7492a95..8e6d434 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6157 +// line internal/php5/php5.y:6152 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2315,7 +2315,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:275 +// line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2324,7 +2324,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:285 +// line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2337,13 +2337,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:296 +// line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:303 +// line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2357,7 +2357,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:315 +// line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2370,32 +2370,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:329 +// line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:346 +// line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2409,7 +2409,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:358 +// line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2427,7 +2427,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:374 +// line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2447,7 +2447,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:392 +// line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2461,7 +2461,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:404 +// line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2474,7 +2474,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:415 +// line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2493,7 +2493,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:432 +// line internal/php5/php5.y:432 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2512,7 +2512,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:449 +// line internal/php5/php5.y:449 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2520,7 +2520,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:458 +// line internal/php5/php5.y:458 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2528,13 +2528,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:464 +// line internal/php5/php5.y:464 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:471 +// line internal/php5/php5.y:471 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2550,7 +2550,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:485 +// line internal/php5/php5.y:485 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2573,7 +2573,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:506 +// line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2590,7 +2590,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:521 +// line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2614,7 +2614,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:546 +// line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2622,13 +2622,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:552 +// line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:559 +// line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:573 +// line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2667,7 +2667,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:594 +// line internal/php5/php5.y:594 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2684,7 +2684,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:609 +// line internal/php5/php5.y:609 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2708,7 +2708,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:634 +// line internal/php5/php5.y:634 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2716,13 +2716,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:640 +// line internal/php5/php5.y:640 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:647 +// line internal/php5/php5.y:647 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:661 +// line internal/php5/php5.y:661 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2761,7 +2761,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:682 +// line internal/php5/php5.y:682 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2778,7 +2778,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:697 +// line internal/php5/php5.y:697 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2802,7 +2802,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:722 +// line internal/php5/php5.y:722 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2827,7 +2827,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:745 +// line internal/php5/php5.y:745 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2855,7 +2855,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:774 +// line internal/php5/php5.y:774 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2868,38 +2868,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:785 +// line internal/php5/php5.y:785 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:793 +// line internal/php5/php5.y:793 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:798 +// line internal/php5/php5.y:798 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:802 +// line internal/php5/php5.y:802 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:806 +// line internal/php5/php5.y:806 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:810 +// line internal/php5/php5.y:810 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2913,13 +2913,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:826 +// line internal/php5/php5.y:826 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:830 +// line internal/php5/php5.y:830 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -2934,7 +2934,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:846 +// line internal/php5/php5.y:846 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2947,7 +2947,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:857 +// line internal/php5/php5.y:857 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2971,7 +2971,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:879 +// line internal/php5/php5.y:879 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -2997,7 +2997,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:903 +// line internal/php5/php5.y:903 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3009,7 +3009,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:913 +// line internal/php5/php5.y:913 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3026,7 +3026,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:928 +// line internal/php5/php5.y:928 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3042,7 +3042,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:942 +// line internal/php5/php5.y:942 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3054,7 +3054,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:952 +// line internal/php5/php5.y:952 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3066,7 +3066,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:962 +// line internal/php5/php5.y:962 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3079,7 +3079,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:973 +// line internal/php5/php5.y:973 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3091,7 +3091,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:983 +// line internal/php5/php5.y:983 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3104,7 +3104,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:994 +// line internal/php5/php5.y:994 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3116,7 +3116,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1004 +// line internal/php5/php5.y:1004 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3129,7 +3129,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1015 +// line internal/php5/php5.y:1015 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3142,7 +3142,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1026 +// line internal/php5/php5.y:1026 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3156,7 +3156,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1038 +// line internal/php5/php5.y:1038 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3167,7 +3167,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1047 +// line internal/php5/php5.y:1047 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3178,7 +3178,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1056 +// line internal/php5/php5.y:1056 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3188,7 +3188,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1064 +// line internal/php5/php5.y:1064 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3200,7 +3200,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1074 +// line internal/php5/php5.y:1074 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3214,7 +3214,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1086 +// line internal/php5/php5.y:1086 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3226,7 +3226,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1096 +// line internal/php5/php5.y:1096 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3246,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1114 +// line internal/php5/php5.y:1114 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3266,7 +3266,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1132 +// line internal/php5/php5.y:1132 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3279,20 +3279,18 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1143 +// line internal/php5/php5.y:1143 { - yyVAL.node = &ast.StmtNop{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + SemiColonTkn: yyDollar[1].token, + } } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1154 +// line internal/php5/php5.y:1152 { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3310,7 +3308,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1170 +// line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3324,7 +3322,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1182 +// line internal/php5/php5.y:1180 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3341,13 +3339,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1200 +// line internal/php5/php5.y:1198 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1204 +// line internal/php5/php5.y:1202 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3369,13 +3367,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1227 +// line internal/php5/php5.y:1225 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1231 +// line internal/php5/php5.y:1229 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3389,31 +3387,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1246 +// line internal/php5/php5.y:1244 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1250 +// line internal/php5/php5.y:1248 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1257 +// line internal/php5/php5.y:1255 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1261 +// line internal/php5/php5.y:1259 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1268 +// line internal/php5/php5.y:1266 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3434,7 +3432,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1290 +// line internal/php5/php5.y:1288 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3442,7 +3440,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1296 +// line internal/php5/php5.y:1294 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3451,49 +3449,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1306 +// line internal/php5/php5.y:1304 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1313 +// line internal/php5/php5.y:1311 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1320 +// line internal/php5/php5.y:1318 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1327 +// line internal/php5/php5.y:1325 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1329 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1338 +// line internal/php5/php5.y:1336 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1342 +// line internal/php5/php5.y:1340 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1349 +// line internal/php5/php5.y:1347 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3517,7 +3515,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1374 +// line internal/php5/php5.y:1372 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3545,7 +3543,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1400 +// line internal/php5/php5.y:1398 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3562,7 +3560,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1419 +// line internal/php5/php5.y:1417 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3574,7 +3572,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1429 +// line internal/php5/php5.y:1427 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3589,7 +3587,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1442 +// line internal/php5/php5.y:1440 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3601,7 +3599,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1452 +// line internal/php5/php5.y:1450 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3616,13 +3614,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1468 +// line internal/php5/php5.y:1466 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1472 +// line internal/php5/php5.y:1470 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3634,19 +3632,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1485 +// line internal/php5/php5.y:1483 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1492 +// line internal/php5/php5.y:1490 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1496 +// line internal/php5/php5.y:1494 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3658,13 +3656,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1509 +// line internal/php5/php5.y:1507 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1513 +// line internal/php5/php5.y:1511 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3676,13 +3674,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1526 +// line internal/php5/php5.y:1524 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1530 +// line internal/php5/php5.y:1528 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3696,13 +3694,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1542 +// line internal/php5/php5.y:1540 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1546 +// line internal/php5/php5.y:1544 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3711,13 +3709,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1556 +// line internal/php5/php5.y:1554 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1560 +// line internal/php5/php5.y:1558 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3729,7 +3727,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1570 +// line internal/php5/php5.y:1568 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3743,7 +3741,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1585 +// line internal/php5/php5.y:1583 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3754,7 +3752,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1594 +// line internal/php5/php5.y:1592 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3774,7 +3772,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1615 +// line internal/php5/php5.y:1613 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3785,7 +3783,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1624 +// line internal/php5/php5.y:1622 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3805,7 +3803,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1646 +// line internal/php5/php5.y:1644 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3816,7 +3814,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1655 +// line internal/php5/php5.y:1653 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3836,7 +3834,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1677 +// line internal/php5/php5.y:1675 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3860,7 +3858,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1699 +// line internal/php5/php5.y:1697 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3886,7 +3884,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1727 +// line internal/php5/php5.y:1725 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3899,7 +3897,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1738 +// line internal/php5/php5.y:1736 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3913,7 +3911,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1750 +// line internal/php5/php5.y:1748 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3928,7 +3926,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1763 +// line internal/php5/php5.y:1761 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3944,13 +3942,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1781 +// line internal/php5/php5.y:1779 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1785 +// line internal/php5/php5.y:1783 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3964,7 +3962,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1797 +// line internal/php5/php5.y:1795 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -3977,19 +3975,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1812 +// line internal/php5/php5.y:1810 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1816 +// line internal/php5/php5.y:1814 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1824 +// line internal/php5/php5.y:1822 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4000,7 +3998,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1833 +// line internal/php5/php5.y:1831 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4020,13 +4018,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1856 +// line internal/php5/php5.y:1854 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1860 +// line internal/php5/php5.y:1858 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4041,13 +4039,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1877 +// line internal/php5/php5.y:1875 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1881 +// line internal/php5/php5.y:1879 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4069,13 +4067,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1905 +// line internal/php5/php5.y:1903 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1909 +// line internal/php5/php5.y:1907 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4087,13 +4085,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1923 +// line internal/php5/php5.y:1921 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1927 +// line internal/php5/php5.y:1925 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4112,25 +4110,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1948 +// line internal/php5/php5.y:1946 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1952 +// line internal/php5/php5.y:1950 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1959 +// line internal/php5/php5.y:1957 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1963 +// line internal/php5/php5.y:1961 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4139,7 +4137,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1973 +// line internal/php5/php5.y:1971 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4175,7 +4173,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2007 +// line internal/php5/php5.y:2005 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4212,13 +4210,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2046 +// line internal/php5/php5.y:2044 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2050 +// line internal/php5/php5.y:2048 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4230,7 +4228,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2060 +// line internal/php5/php5.y:2058 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4242,13 +4240,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2070 +// line internal/php5/php5.y:2068 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2078 +// line internal/php5/php5.y:2076 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4261,7 +4259,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2089 +// line internal/php5/php5.y:2087 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4274,7 +4272,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2100 +// line internal/php5/php5.y:2098 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4289,13 +4287,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2117 +// line internal/php5/php5.y:2115 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2121 +// line internal/php5/php5.y:2119 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4304,7 +4302,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2131 +// line internal/php5/php5.y:2129 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4316,7 +4314,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2141 +// line internal/php5/php5.y:2139 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4328,7 +4326,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2151 +// line internal/php5/php5.y:2149 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4340,7 +4338,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2161 +// line internal/php5/php5.y:2159 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4352,7 +4350,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2174 +// line internal/php5/php5.y:2172 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4361,7 +4359,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2181 +// line internal/php5/php5.y:2179 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4369,7 +4367,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2191 +// line internal/php5/php5.y:2189 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4383,7 +4381,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2203 +// line internal/php5/php5.y:2201 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4395,7 +4393,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2213 +// line internal/php5/php5.y:2211 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4409,7 +4407,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2229 +// line internal/php5/php5.y:2227 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4433,7 +4431,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2251 +// line internal/php5/php5.y:2249 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4459,7 +4457,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2275 +// line internal/php5/php5.y:2273 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4484,7 +4482,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2298 +// line internal/php5/php5.y:2296 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4511,19 +4509,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2327 +// line internal/php5/php5.y:2325 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2331 +// line internal/php5/php5.y:2329 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2339 +// line internal/php5/php5.y:2337 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4537,7 +4535,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2351 +// line internal/php5/php5.y:2349 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4545,13 +4543,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2357 +// line internal/php5/php5.y:2355 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2361 +// line internal/php5/php5.y:2359 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4582,7 +4580,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2393 +// line internal/php5/php5.y:2391 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4594,13 +4592,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2406 +// line internal/php5/php5.y:2404 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2410 +// line internal/php5/php5.y:2408 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4614,19 +4612,18 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2422 +// line internal/php5/php5.y:2420 { - yyVAL.node = &ast.StmtNop{ast.Node{}} - - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + SemiColonTkn: yyDollar[1].token, + } } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2432 +// line internal/php5/php5.y:2429 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4638,31 +4635,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2445 +// line internal/php5/php5.y:2442 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2449 +// line internal/php5/php5.y:2446 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2456 +// line internal/php5/php5.y:2453 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2460 +// line internal/php5/php5.y:2457 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2467 +// line internal/php5/php5.y:2464 { yyVAL.node = yyDollar[1].node @@ -4672,7 +4669,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2475 +// line internal/php5/php5.y:2472 { yyVAL.node = yyDollar[1].node @@ -4682,7 +4679,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2486 +// line internal/php5/php5.y:2483 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4695,13 +4692,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2500 +// line internal/php5/php5.y:2497 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2504 +// line internal/php5/php5.y:2501 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4710,7 +4707,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2514 +// line internal/php5/php5.y:2511 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4724,13 +4721,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2526 +// line internal/php5/php5.y:2523 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2533 +// line internal/php5/php5.y:2530 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4746,7 +4743,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2550 +// line internal/php5/php5.y:2547 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4762,7 +4759,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2564 +// line internal/php5/php5.y:2561 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4775,32 +4772,30 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2578 +// line internal/php5/php5.y:2575 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2582 +// line internal/php5/php5.y:2579 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2589 +// line internal/php5/php5.y:2586 { - yyVAL.node = &ast.StmtNop{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + SemiColonTkn: yyDollar[1].token, + } } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2600 +// line internal/php5/php5.y:2595 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4813,13 +4808,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2614 +// line internal/php5/php5.y:2609 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2618 +// line internal/php5/php5.y:2613 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4832,31 +4827,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2632 +// line internal/php5/php5.y:2627 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2636 +// line internal/php5/php5.y:2631 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2643 +// line internal/php5/php5.y:2638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2647 +// line internal/php5/php5.y:2642 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2654 +// line internal/php5/php5.y:2649 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4868,7 +4863,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2664 +// line internal/php5/php5.y:2659 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4880,7 +4875,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2674 +// line internal/php5/php5.y:2669 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4892,7 +4887,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2684 +// line internal/php5/php5.y:2679 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4904,7 +4899,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2694 +// line internal/php5/php5.y:2689 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4916,7 +4911,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2704 +// line internal/php5/php5.y:2699 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4928,7 +4923,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2717 +// line internal/php5/php5.y:2712 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4946,7 +4941,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2733 +// line internal/php5/php5.y:2728 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4965,7 +4960,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2750 +// line internal/php5/php5.y:2745 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4982,7 +4977,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2765 +// line internal/php5/php5.y:2760 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5000,7 +4995,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2784 +// line internal/php5/php5.y:2779 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5025,7 +5020,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2807 +// line internal/php5/php5.y:2802 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5053,7 +5048,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2836 +// line internal/php5/php5.y:2831 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5062,7 +5057,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2843 +// line internal/php5/php5.y:2838 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5070,19 +5065,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2853 +// line internal/php5/php5.y:2848 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2857 +// line internal/php5/php5.y:2852 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2864 +// line internal/php5/php5.y:2859 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5091,25 +5086,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2871 +// line internal/php5/php5.y:2866 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2878 +// line internal/php5/php5.y:2873 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2882 +// line internal/php5/php5.y:2877 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2889 +// line internal/php5/php5.y:2884 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5123,7 +5118,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2901 +// line internal/php5/php5.y:2896 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5137,37 +5132,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2916 +// line internal/php5/php5.y:2911 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2920 +// line internal/php5/php5.y:2915 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2924 +// line internal/php5/php5.y:2919 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2931 +// line internal/php5/php5.y:2926 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2935 +// line internal/php5/php5.y:2930 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2942 +// line internal/php5/php5.y:2937 { if yyDollar[3].node != nil { @@ -5183,7 +5178,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2959 +// line internal/php5/php5.y:2954 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5200,7 +5195,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2974 +// line internal/php5/php5.y:2969 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5213,7 +5208,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2985 +// line internal/php5/php5.y:2980 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5227,7 +5222,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2997 +// line internal/php5/php5.y:2992 { var _new *ast.ExprNew @@ -5254,7 +5249,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3022 +// line internal/php5/php5.y:3017 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5266,7 +5261,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3032 +// line internal/php5/php5.y:3027 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5278,7 +5273,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3042 +// line internal/php5/php5.y:3037 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5291,7 +5286,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3053 +// line internal/php5/php5.y:3048 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5304,7 +5299,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3064 +// line internal/php5/php5.y:3059 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5317,7 +5312,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3075 +// line internal/php5/php5.y:3070 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5330,7 +5325,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3086 +// line internal/php5/php5.y:3081 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5343,7 +5338,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3097 +// line internal/php5/php5.y:3092 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5356,7 +5351,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3108 +// line internal/php5/php5.y:3103 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5369,7 +5364,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3114 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5382,7 +5377,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3130 +// line internal/php5/php5.y:3125 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5395,7 +5390,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3141 +// line internal/php5/php5.y:3136 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5408,7 +5403,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3152 +// line internal/php5/php5.y:3147 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5421,7 +5416,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3163 +// line internal/php5/php5.y:3158 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5434,7 +5429,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3174 +// line internal/php5/php5.y:3169 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5446,7 +5441,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3184 +// line internal/php5/php5.y:3179 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5459,7 +5454,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3195 +// line internal/php5/php5.y:3190 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5471,7 +5466,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3205 +// line internal/php5/php5.y:3200 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5484,7 +5479,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3216 +// line internal/php5/php5.y:3211 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5497,7 +5492,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3227 +// line internal/php5/php5.y:3222 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5510,7 +5505,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3238 +// line internal/php5/php5.y:3233 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5523,7 +5518,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3249 +// line internal/php5/php5.y:3244 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5531,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3260 +// line internal/php5/php5.y:3255 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5544,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3271 +// line internal/php5/php5.y:3266 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5557,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3282 +// line internal/php5/php5.y:3277 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5570,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3293 +// line internal/php5/php5.y:3288 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5582,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3303 +// line internal/php5/php5.y:3298 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5600,7 +5595,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3314 +// line internal/php5/php5.y:3309 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5613,7 +5608,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3325 +// line internal/php5/php5.y:3320 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5626,7 +5621,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3336 +// line internal/php5/php5.y:3331 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5639,7 +5634,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3347 +// line internal/php5/php5.y:3342 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5652,7 +5647,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3358 +// line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5660,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3369 +// line internal/php5/php5.y:3364 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5678,7 +5673,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3380 +// line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5691,7 +5686,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3391 +// line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5703,7 +5698,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3401 +// line internal/php5/php5.y:3396 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5715,7 +5710,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3411 +// line internal/php5/php5.y:3406 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5727,7 +5722,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3421 +// line internal/php5/php5.y:3416 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5739,7 +5734,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3431 +// line internal/php5/php5.y:3426 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5752,7 +5747,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3442 +// line internal/php5/php5.y:3437 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5760,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3453 +// line internal/php5/php5.y:3448 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5773,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3464 +// line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,7 +5787,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3476 +// line internal/php5/php5.y:3471 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5800,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3487 +// line internal/php5/php5.y:3482 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5813,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3498 +// line internal/php5/php5.y:3493 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5826,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3509 +// line internal/php5/php5.y:3504 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5839,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3520 +// line internal/php5/php5.y:3515 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,19 +5852,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3531 +// line internal/php5/php5.y:3526 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3535 +// line internal/php5/php5.y:3530 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3539 +// line internal/php5/php5.y:3534 { yyVAL.node = yyDollar[2].node @@ -5901,7 +5896,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3564 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5915,7 +5910,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3581 +// line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5929,13 +5924,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3593 +// line internal/php5/php5.y:3588 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3597 +// line internal/php5/php5.y:3592 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5948,7 +5943,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3608 +// line internal/php5/php5.y:3603 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5961,7 +5956,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3619 +// line internal/php5/php5.y:3614 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5974,7 +5969,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3630 +// line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5987,7 +5982,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3641 +// line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6000,7 +5995,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3652 +// line internal/php5/php5.y:3647 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6013,7 +6008,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3663 +// line internal/php5/php5.y:3658 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6026,7 +6021,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3674 +// line internal/php5/php5.y:3669 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6046,7 +6041,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3692 +// line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6058,25 +6053,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3702 +// line internal/php5/php5.y:3697 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3706 +// line internal/php5/php5.y:3701 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3710 +// line internal/php5/php5.y:3705 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3714 +// line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6088,7 +6083,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3724 +// line internal/php5/php5.y:3719 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6100,7 +6095,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3734 +// line internal/php5/php5.y:3729 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6112,7 +6107,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3744 +// line internal/php5/php5.y:3739 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6139,7 +6134,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3768 +// line internal/php5/php5.y:3763 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6167,7 +6162,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3796 +// line internal/php5/php5.y:3791 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6179,7 +6174,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3806 +// line internal/php5/php5.y:3801 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6191,7 +6186,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3816 +// line internal/php5/php5.y:3811 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6204,7 +6199,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3827 +// line internal/php5/php5.y:3822 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6217,7 +6212,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3836 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6230,7 +6225,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3847 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6243,7 +6238,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3858 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6259,7 +6254,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3877 +// line internal/php5/php5.y:3872 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6272,7 +6267,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3891 +// line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6286,7 +6281,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3903 +// line internal/php5/php5.y:3898 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6299,19 +6294,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3917 +// line internal/php5/php5.y:3912 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3919 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3928 +// line internal/php5/php5.y:3923 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6325,7 +6320,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3943 +// line internal/php5/php5.y:3938 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6341,7 +6336,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3957 +// line internal/php5/php5.y:3952 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6360,7 +6355,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3974 +// line internal/php5/php5.y:3969 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6375,7 +6370,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3987 +// line internal/php5/php5.y:3982 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6393,7 +6388,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4006 +// line internal/php5/php5.y:4001 { name := &ast.NameName{ Node: ast.Node{ @@ -6408,7 +6403,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4019 +// line internal/php5/php5.y:4014 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6425,7 +6420,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4034 +// line internal/php5/php5.y:4029 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6441,7 +6436,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4048 +// line internal/php5/php5.y:4043 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6454,7 +6449,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4059 +// line internal/php5/php5.y:4054 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6467,7 +6462,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4070 +// line internal/php5/php5.y:4065 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6480,7 +6475,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4081 +// line internal/php5/php5.y:4076 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6493,7 +6488,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4092 +// line internal/php5/php5.y:4087 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6505,7 +6500,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4105 +// line internal/php5/php5.y:4100 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6517,7 +6512,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4115 +// line internal/php5/php5.y:4110 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6528,7 +6523,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4124 +// line internal/php5/php5.y:4119 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6541,7 +6536,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4135 +// line internal/php5/php5.y:4130 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6553,7 +6548,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4148 +// line internal/php5/php5.y:4143 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6564,7 +6559,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4152 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6577,7 +6572,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4168 +// line internal/php5/php5.y:4163 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6589,19 +6584,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4181 +// line internal/php5/php5.y:4176 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4185 +// line internal/php5/php5.y:4180 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4192 +// line internal/php5/php5.y:4187 { yyVAL.node = yyDollar[1].node @@ -6642,25 +6637,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4231 +// line internal/php5/php5.y:4226 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4239 +// line internal/php5/php5.y:4234 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4243 +// line internal/php5/php5.y:4238 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4251 +// line internal/php5/php5.y:4246 { yyVAL.list = yyDollar[2].list @@ -6669,13 +6664,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4261 +// line internal/php5/php5.y:4256 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4265 +// line internal/php5/php5.y:4260 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6691,19 +6686,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4279 +// line internal/php5/php5.y:4274 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4286 +// line internal/php5/php5.y:4281 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4290 +// line internal/php5/php5.y:4285 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6713,25 +6708,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4298 +// line internal/php5/php5.y:4293 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4300 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4309 +// line internal/php5/php5.y:4304 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4316 +// line internal/php5/php5.y:4311 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6743,7 +6738,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4326 +// line internal/php5/php5.y:4321 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6755,7 +6750,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4336 +// line internal/php5/php5.y:4331 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6767,7 +6762,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4346 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6779,7 +6774,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4356 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6791,7 +6786,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4366 +// line internal/php5/php5.y:4361 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6803,7 +6798,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4376 +// line internal/php5/php5.y:4371 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6815,7 +6810,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4386 +// line internal/php5/php5.y:4381 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6827,7 +6822,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4396 +// line internal/php5/php5.y:4391 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6839,7 +6834,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4406 +// line internal/php5/php5.y:4401 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6851,7 +6846,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4416 +// line internal/php5/php5.y:4411 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6865,7 +6860,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4428 +// line internal/php5/php5.y:4423 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6877,7 +6872,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4441 +// line internal/php5/php5.y:4436 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6893,25 +6888,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4453 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4465 +// line internal/php5/php5.y:4460 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4469 +// line internal/php5/php5.y:4464 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4473 +// line internal/php5/php5.y:4468 { name := &ast.NameName{ Node: ast.Node{ @@ -6926,7 +6921,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4486 +// line internal/php5/php5.y:4481 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6943,7 +6938,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4496 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6959,7 +6954,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4515 +// line internal/php5/php5.y:4510 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6973,7 +6968,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4527 +// line internal/php5/php5.y:4522 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6986,13 +6981,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4538 +// line internal/php5/php5.y:4533 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4542 +// line internal/php5/php5.y:4537 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7004,13 +6999,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4552 +// line internal/php5/php5.y:4547 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4559 +// line internal/php5/php5.y:4554 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7023,7 +7018,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4570 +// line internal/php5/php5.y:4565 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7036,7 +7031,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4581 +// line internal/php5/php5.y:4576 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7049,7 +7044,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4592 +// line internal/php5/php5.y:4587 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7062,7 +7057,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4603 +// line internal/php5/php5.y:4598 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7075,7 +7070,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4614 +// line internal/php5/php5.y:4609 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7088,7 +7083,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4625 +// line internal/php5/php5.y:4620 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7101,7 +7096,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4636 +// line internal/php5/php5.y:4631 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7113,7 +7108,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4646 +// line internal/php5/php5.y:4641 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7125,7 +7120,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4656 +// line internal/php5/php5.y:4651 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7138,7 +7133,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4667 +// line internal/php5/php5.y:4662 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7151,7 +7146,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4678 +// line internal/php5/php5.y:4673 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7164,7 +7159,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4689 +// line internal/php5/php5.y:4684 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7177,7 +7172,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4700 +// line internal/php5/php5.y:4695 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7190,7 +7185,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4711 +// line internal/php5/php5.y:4706 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7203,7 +7198,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4722 +// line internal/php5/php5.y:4717 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7216,7 +7211,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4733 +// line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7229,7 +7224,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4744 +// line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7242,7 +7237,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4755 +// line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7255,7 +7250,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4766 +// line internal/php5/php5.y:4761 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7268,7 +7263,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4777 +// line internal/php5/php5.y:4772 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7281,7 +7276,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4788 +// line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7294,7 +7289,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4799 +// line internal/php5/php5.y:4794 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7307,7 +7302,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4810 +// line internal/php5/php5.y:4805 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7321,7 +7316,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4822 +// line internal/php5/php5.y:4817 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7334,7 +7329,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4833 +// line internal/php5/php5.y:4828 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7347,7 +7342,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4844 +// line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7360,7 +7355,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4855 +// line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7373,7 +7368,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4866 +// line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7387,7 +7382,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4878 +// line internal/php5/php5.y:4873 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7401,7 +7396,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4890 +// line internal/php5/php5.y:4885 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7413,7 +7408,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4900 +// line internal/php5/php5.y:4895 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7425,7 +7420,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4910 +// line internal/php5/php5.y:4905 { yyVAL.node = yyDollar[2].node @@ -7435,13 +7430,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4921 +// line internal/php5/php5.y:4916 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4925 +// line internal/php5/php5.y:4920 { name := &ast.NameName{ Node: ast.Node{ @@ -7456,7 +7451,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4938 +// line internal/php5/php5.y:4933 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7473,7 +7468,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4953 +// line internal/php5/php5.y:4948 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7489,7 +7484,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4970 +// line internal/php5/php5.y:4965 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7503,25 +7498,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4982 +// line internal/php5/php5.y:4977 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4986 +// line internal/php5/php5.y:4981 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4990 +// line internal/php5/php5.y:4985 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4994 +// line internal/php5/php5.y:4989 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7533,7 +7528,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5004 +// line internal/php5/php5.y:4999 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7545,7 +7540,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5014 +// line internal/php5/php5.y:5009 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7557,13 +7552,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5027 +// line internal/php5/php5.y:5022 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5031 +// line internal/php5/php5.y:5026 { yyVAL.list = yyDollar[1].list @@ -7574,19 +7569,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5043 +// line internal/php5/php5.y:5038 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5047 +// line internal/php5/php5.y:5042 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5054 +// line internal/php5/php5.y:5049 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7601,7 +7596,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5067 +// line internal/php5/php5.y:5062 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7615,7 +7610,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5079 +// line internal/php5/php5.y:5074 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7629,7 +7624,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5091 +// line internal/php5/php5.y:5086 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7642,19 +7637,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5105 +// line internal/php5/php5.y:5100 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5109 +// line internal/php5/php5.y:5104 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5116 +// line internal/php5/php5.y:5111 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7671,7 +7666,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5131 +// line internal/php5/php5.y:5126 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7688,25 +7683,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5150 +// line internal/php5/php5.y:5145 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5158 +// line internal/php5/php5.y:5153 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5165 +// line internal/php5/php5.y:5160 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5172 +// line internal/php5/php5.y:5167 { yyVAL.node = yyDollar[1].node @@ -7764,25 +7759,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5228 +// line internal/php5/php5.y:5223 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5235 +// line internal/php5/php5.y:5230 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5239 +// line internal/php5/php5.y:5234 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5247 +// line internal/php5/php5.y:5242 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7796,7 +7791,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5262 +// line internal/php5/php5.y:5257 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7810,7 +7805,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5274 +// line internal/php5/php5.y:5269 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7824,7 +7819,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5289 +// line internal/php5/php5.y:5284 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7833,31 +7828,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5299 +// line internal/php5/php5.y:5294 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5303 +// line internal/php5/php5.y:5298 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5307 +// line internal/php5/php5.y:5302 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5314 +// line internal/php5/php5.y:5309 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5318 +// line internal/php5/php5.y:5313 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7869,7 +7864,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5331 +// line internal/php5/php5.y:5326 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7882,7 +7877,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5342 +// line internal/php5/php5.y:5337 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7895,13 +7890,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5356 +// line internal/php5/php5.y:5351 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5363 +// line internal/php5/php5.y:5358 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7914,7 +7909,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5374 +// line internal/php5/php5.y:5369 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7927,31 +7922,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5388 +// line internal/php5/php5.y:5383 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5392 +// line internal/php5/php5.y:5387 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5396 +// line internal/php5/php5.y:5391 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5404 +// line internal/php5/php5.y:5399 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5408 +// line internal/php5/php5.y:5403 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7963,13 +7958,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5418 +// line internal/php5/php5.y:5413 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5425 +// line internal/php5/php5.y:5420 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7982,7 +7977,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5431 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7995,13 +7990,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5447 +// line internal/php5/php5.y:5442 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5455 +// line internal/php5/php5.y:5450 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8015,7 +8010,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5467 +// line internal/php5/php5.y:5462 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8029,25 +8024,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5482 +// line internal/php5/php5.y:5477 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5486 +// line internal/php5/php5.y:5481 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5494 +// line internal/php5/php5.y:5489 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5498 +// line internal/php5/php5.y:5493 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8057,7 +8052,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5509 +// line internal/php5/php5.y:5504 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8071,7 +8066,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5521 +// line internal/php5/php5.y:5516 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8085,7 +8080,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5533 +// line internal/php5/php5.y:5528 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8095,7 +8090,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5544 +// line internal/php5/php5.y:5539 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8107,7 +8102,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5554 +// line internal/php5/php5.y:5549 { yyVAL.node = yyDollar[2].node @@ -8120,7 +8115,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5568 +// line internal/php5/php5.y:5563 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8133,7 +8128,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5579 +// line internal/php5/php5.y:5574 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8150,7 +8145,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5597 +// line internal/php5/php5.y:5592 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8163,7 +8158,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5608 +// line internal/php5/php5.y:5603 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8173,7 +8168,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5620 +// line internal/php5/php5.y:5615 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8185,7 +8180,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5630 +// line internal/php5/php5.y:5625 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8201,19 +8196,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5644 +// line internal/php5/php5.y:5639 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5652 +// line internal/php5/php5.y:5647 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5656 +// line internal/php5/php5.y:5651 { yyVAL.list = yyDollar[1].list @@ -8228,7 +8223,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5672 +// line internal/php5/php5.y:5667 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8243,7 +8238,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5685 +// line internal/php5/php5.y:5680 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8257,7 +8252,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5697 +// line internal/php5/php5.y:5692 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8271,7 +8266,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5709 +// line internal/php5/php5.y:5704 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8284,7 +8279,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5720 +// line internal/php5/php5.y:5715 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8302,7 +8297,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5736 +// line internal/php5/php5.y:5731 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8318,7 +8313,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5750 +// line internal/php5/php5.y:5745 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8335,7 +8330,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5765 +// line internal/php5/php5.y:5760 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8350,13 +8345,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5781 +// line internal/php5/php5.y:5776 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5785 +// line internal/php5/php5.y:5780 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8369,13 +8364,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5796 +// line internal/php5/php5.y:5791 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5800 +// line internal/php5/php5.y:5795 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8388,7 +8383,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5814 +// line internal/php5/php5.y:5809 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8402,7 +8397,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5826 +// line internal/php5/php5.y:5821 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8419,7 +8414,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5841 +// line internal/php5/php5.y:5836 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8438,7 +8433,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5858 +// line internal/php5/php5.y:5853 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8453,7 +8448,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5871 +// line internal/php5/php5.y:5866 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8470,7 +8465,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5886 +// line internal/php5/php5.y:5881 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8489,7 +8484,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5903 +// line internal/php5/php5.y:5898 { yyVAL.node = yyDollar[2].node @@ -8499,7 +8494,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5914 +// line internal/php5/php5.y:5909 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8511,7 +8506,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5924 +// line internal/php5/php5.y:5919 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8528,7 +8523,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5939 +// line internal/php5/php5.y:5934 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8542,7 +8537,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5954 +// line internal/php5/php5.y:5949 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8556,7 +8551,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5966 +// line internal/php5/php5.y:5961 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8578,7 +8573,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5986 +// line internal/php5/php5.y:5981 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8600,7 +8595,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6006 +// line internal/php5/php5.y:6001 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8612,7 +8607,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6016 +// line internal/php5/php5.y:6011 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8624,7 +8619,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6026 +// line internal/php5/php5.y:6021 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8646,7 +8641,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6046 +// line internal/php5/php5.y:6041 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8658,7 +8653,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6056 +// line internal/php5/php5.y:6051 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8670,13 +8665,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6069 +// line internal/php5/php5.y:6064 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6073 +// line internal/php5/php5.y:6068 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8685,19 +8680,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6083 +// line internal/php5/php5.y:6078 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6087 +// line internal/php5/php5.y:6082 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6094 +// line internal/php5/php5.y:6089 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8713,7 +8708,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6108 +// line internal/php5/php5.y:6103 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8729,7 +8724,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6125 +// line internal/php5/php5.y:6120 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8745,7 +8740,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6142 +// line internal/php5/php5.y:6137 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 53276ee..0c3d768 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1141,14 +1141,12 @@ unticked_statement: } | ';' { - $$ = &ast.StmtNop{ast.Node{}, } - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) + $$ = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + SemiColonTkn: $1, + } } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { @@ -2420,13 +2418,12 @@ trait_list: trait_adaptations: ';' { - $$ = &ast.StmtNop{ast.Node{}, } - - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) + $$ = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + SemiColonTkn: $1, + } } | '{' trait_adaptation_list '}' { @@ -2587,14 +2584,12 @@ trait_modifiers: method_body: ';' /* abstract method */ { - $$ = &ast.StmtNop{ast.Node{}, } - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) + $$ = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + SemiColonTkn: $1, + } } | '{' inner_statement_list '}' { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 6ecb7f7..5c6b024 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4800 +// line internal/php7/php7.y:4795 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 +// line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:328 +// line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:335 +// line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:346 +// line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:353 +// line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:365 +// line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:379 +// line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:388 +// line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:399 +// line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 +// line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:433 +// line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:437 +// line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:449 +// line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:465 +// line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:483 +// line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:495 +// line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:505 +// line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:516 +// line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:527 +// line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:539 +// line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2837,7 +2837,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:554 +// line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2849,7 +2849,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:564 +// line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2861,7 +2861,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:577 +// line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2885,7 +2885,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:599 +// line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2908,7 +2908,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:623 +// line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2930,7 +2930,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:643 +// line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2953,19 +2953,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:667 +// line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:671 +// line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:678 +// line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2973,13 +2973,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:684 +// line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:691 +// line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2987,13 +2987,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:697 +// line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:704 +// line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3001,19 +3001,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:710 +// line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:717 +// line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:721 +// line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3023,7 +3023,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:732 +// line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3039,7 +3039,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:746 +// line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3062,13 +3062,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:770 +// line internal/php7/php7.y:770 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:774 +// line internal/php7/php7.y:774 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3078,7 +3078,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:785 +// line internal/php7/php7.y:785 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3087,7 +3087,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:792 +// line internal/php7/php7.y:792 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3095,7 +3095,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:801 +// line internal/php7/php7.y:801 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3108,50 +3108,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:812 +// line internal/php7/php7.y:812 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:819 +// line internal/php7/php7.y:819 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:824 +// line internal/php7/php7.y:824 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:828 +// line internal/php7/php7.y:828 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:832 +// line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:836 +// line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:840 +// line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:844 +// line internal/php7/php7.y:844 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3165,7 +3165,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:858 +// line internal/php7/php7.y:858 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3178,19 +3178,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:869 +// line internal/php7/php7.y:869 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:873 +// line internal/php7/php7.y:873 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:877 +// line internal/php7/php7.y:877 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3202,7 +3202,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:887 +// line internal/php7/php7.y:887 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3219,7 +3219,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:902 +// line internal/php7/php7.y:902 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3235,7 +3235,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:916 +// line internal/php7/php7.y:916 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3247,7 +3247,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:926 +// line internal/php7/php7.y:926 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3260,7 +3260,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:937 +// line internal/php7/php7.y:937 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3273,7 +3273,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:948 +// line internal/php7/php7.y:948 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3286,7 +3286,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:959 +// line internal/php7/php7.y:959 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3296,7 +3296,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:967 +// line internal/php7/php7.y:967 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3306,7 +3306,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:975 +// line internal/php7/php7.y:975 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3316,7 +3316,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:983 +// line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3328,7 +3328,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:993 +// line internal/php7/php7.y:993 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3342,7 +3342,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1005 +// line internal/php7/php7.y:1005 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3355,7 +3355,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1016 +// line internal/php7/php7.y:1016 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3369,7 +3369,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1028 +// line internal/php7/php7.y:1028 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3385,7 +3385,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1042 +// line internal/php7/php7.y:1042 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3398,20 +3398,18 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1053 +// line internal/php7/php7.y:1053 { - yyVAL.node = &ast.StmtNop{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + SemiColonTkn: yyDollar[1].token, + } } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1064 +// line internal/php7/php7.y:1062 { if yyDollar[6].node == nil { yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} @@ -3428,7 +3426,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1079 +// line internal/php7/php7.y:1077 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3442,7 +3440,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1091 +// line internal/php7/php7.y:1089 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3459,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1106 +// line internal/php7/php7.y:1104 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3474,13 +3472,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1121 +// line internal/php7/php7.y:1119 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1125 +// line internal/php7/php7.y:1123 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3502,13 +3500,13 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1147 +// line internal/php7/php7.y:1145 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1151 +// line internal/php7/php7.y:1149 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3522,13 +3520,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1163 +// line internal/php7/php7.y:1161 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1167 +// line internal/php7/php7.y:1165 { yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} @@ -3542,7 +3540,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1182 +// line internal/php7/php7.y:1180 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3550,7 +3548,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1188 +// line internal/php7/php7.y:1186 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3559,13 +3557,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1198 +// line internal/php7/php7.y:1196 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1205 +// line internal/php7/php7.y:1203 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3595,31 +3593,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1236 +// line internal/php7/php7.y:1234 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1240 +// line internal/php7/php7.y:1238 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1247 +// line internal/php7/php7.y:1245 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1251 +// line internal/php7/php7.y:1249 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1258 +// line internal/php7/php7.y:1256 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3637,7 +3635,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1274 +// line internal/php7/php7.y:1272 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3654,19 +3652,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1292 +// line internal/php7/php7.y:1290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1296 +// line internal/php7/php7.y:1294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1303 +// line internal/php7/php7.y:1301 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3678,7 +3676,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1313 +// line internal/php7/php7.y:1311 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3690,7 +3688,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1326 +// line internal/php7/php7.y:1324 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3707,7 +3705,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1344 +// line internal/php7/php7.y:1342 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3724,13 +3722,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1362 +// line internal/php7/php7.y:1360 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1366 +// line internal/php7/php7.y:1364 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3742,13 +3740,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1379 +// line internal/php7/php7.y:1377 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1383 +// line internal/php7/php7.y:1381 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3760,13 +3758,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1396 +// line internal/php7/php7.y:1394 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1400 +// line internal/php7/php7.y:1398 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3778,13 +3776,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1413 +// line internal/php7/php7.y:1411 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1417 +// line internal/php7/php7.y:1415 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3796,7 +3794,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1427 +// line internal/php7/php7.y:1425 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3810,7 +3808,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1439 +// line internal/php7/php7.y:1437 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3823,7 +3821,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1453 +// line internal/php7/php7.y:1451 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3834,7 +3832,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1462 +// line internal/php7/php7.y:1460 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3854,7 +3852,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1483 +// line internal/php7/php7.y:1481 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3865,7 +3863,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1492 +// line internal/php7/php7.y:1490 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3885,7 +3883,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1513 +// line internal/php7/php7.y:1511 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3896,7 +3894,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1522 +// line internal/php7/php7.y:1520 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3916,7 +3914,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1543 +// line internal/php7/php7.y:1541 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3929,7 +3927,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1554 +// line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3943,7 +3941,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1566 +// line internal/php7/php7.y:1564 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3956,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1579 +// line internal/php7/php7.y:1577 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3974,13 +3972,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1596 +// line internal/php7/php7.y:1594 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1600 +// line internal/php7/php7.y:1598 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3994,7 +3992,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1612 +// line internal/php7/php7.y:1610 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4007,19 +4005,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1626 +// line internal/php7/php7.y:1624 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1630 +// line internal/php7/php7.y:1628 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1637 +// line internal/php7/php7.y:1635 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4030,7 +4028,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1646 +// line internal/php7/php7.y:1644 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4050,7 +4048,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1667 +// line internal/php7/php7.y:1665 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4065,7 +4063,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1680 +// line internal/php7/php7.y:1678 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4084,13 +4082,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1700 +// line internal/php7/php7.y:1698 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1704 +// line internal/php7/php7.y:1702 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4106,7 +4104,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1721 +// line internal/php7/php7.y:1719 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4128,7 +4126,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1741 +// line internal/php7/php7.y:1739 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4152,7 +4150,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1766 +// line internal/php7/php7.y:1764 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4162,7 +4160,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1774 +// line internal/php7/php7.y:1772 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4186,25 +4184,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1799 +// line internal/php7/php7.y:1797 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1803 +// line internal/php7/php7.y:1801 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1810 +// line internal/php7/php7.y:1808 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1814 +// line internal/php7/php7.y:1812 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4213,7 +4211,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1824 +// line internal/php7/php7.y:1822 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4249,7 +4247,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1858 +// line internal/php7/php7.y:1856 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4286,25 +4284,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1896 +// line internal/php7/php7.y:1894 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1900 +// line internal/php7/php7.y:1898 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1907 +// line internal/php7/php7.y:1905 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1911 +// line internal/php7/php7.y:1909 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4316,7 +4314,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1924 +// line internal/php7/php7.y:1922 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4328,7 +4326,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1934 +// line internal/php7/php7.y:1932 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4340,19 +4338,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1944 +// line internal/php7/php7.y:1942 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1951 +// line internal/php7/php7.y:1949 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1955 +// line internal/php7/php7.y:1953 { yyVAL.node = yyDollar[2].node @@ -4361,7 +4359,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1965 +// line internal/php7/php7.y:1963 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4374,7 +4372,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1976 +// line internal/php7/php7.y:1974 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4391,13 +4389,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1994 +// line internal/php7/php7.y:1992 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1998 +// line internal/php7/php7.y:1996 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4406,7 +4404,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2008 +// line internal/php7/php7.y:2006 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4418,7 +4416,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2018 +// line internal/php7/php7.y:2016 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4430,7 +4428,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2031 +// line internal/php7/php7.y:2029 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4439,7 +4437,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2038 +// line internal/php7/php7.y:2036 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4447,13 +4445,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2047 +// line internal/php7/php7.y:2045 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2054 +// line internal/php7/php7.y:2052 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4462,7 +4460,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2061 +// line internal/php7/php7.y:2059 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4470,7 +4468,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2070 +// line internal/php7/php7.y:2068 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4491,7 +4489,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2089 +// line internal/php7/php7.y:2087 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4513,19 +4511,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2112 +// line internal/php7/php7.y:2110 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2116 +// line internal/php7/php7.y:2114 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2123 +// line internal/php7/php7.y:2121 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4539,7 +4537,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2135 +// line internal/php7/php7.y:2133 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4553,7 +4551,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2147 +// line internal/php7/php7.y:2145 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4565,7 +4563,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2157 +// line internal/php7/php7.y:2155 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4596,13 +4594,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2189 +// line internal/php7/php7.y:2187 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2193 +// line internal/php7/php7.y:2191 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4616,19 +4614,18 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2205 +// line internal/php7/php7.y:2203 { - yyVAL.node = &ast.StmtNop{ast.Node{}} - - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + SemiColonTkn: yyDollar[1].token, + } } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2215 +// line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4640,7 +4637,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2225 +// line internal/php7/php7.y:2222 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4652,19 +4649,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2238 +// line internal/php7/php7.y:2235 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2242 +// line internal/php7/php7.y:2239 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2249 +// line internal/php7/php7.y:2246 { yyVAL.node = yyDollar[1].node @@ -4674,7 +4671,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2257 +// line internal/php7/php7.y:2254 { yyVAL.node = yyDollar[1].node @@ -4684,7 +4681,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2268 +// line internal/php7/php7.y:2265 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4697,7 +4694,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2282 +// line internal/php7/php7.y:2279 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4713,7 +4710,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2296 +// line internal/php7/php7.y:2293 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4729,7 +4726,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2310 +// line internal/php7/php7.y:2307 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4745,7 +4742,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2324 +// line internal/php7/php7.y:2321 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4758,7 +4755,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2338 +// line internal/php7/php7.y:2335 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4772,13 +4769,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2350 +// line internal/php7/php7.y:2347 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2357 +// line internal/php7/php7.y:2354 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4794,20 +4791,18 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2374 +// line internal/php7/php7.y:2371 { - yyVAL.node = &ast.StmtNop{ast.Node{}} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + SemiColonTkn: yyDollar[1].token, + } } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2385 +// line internal/php7/php7.y:2380 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4820,13 +4815,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2399 +// line internal/php7/php7.y:2394 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2403 +// line internal/php7/php7.y:2398 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4839,31 +4834,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2417 +// line internal/php7/php7.y:2412 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2421 +// line internal/php7/php7.y:2416 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2428 +// line internal/php7/php7.y:2423 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2432 +// line internal/php7/php7.y:2427 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2439 +// line internal/php7/php7.y:2434 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4875,7 +4870,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2449 +// line internal/php7/php7.y:2444 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4887,7 +4882,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2459 +// line internal/php7/php7.y:2454 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4899,7 +4894,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2469 +// line internal/php7/php7.y:2464 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4911,7 +4906,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2479 +// line internal/php7/php7.y:2474 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4923,7 +4918,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2484 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4935,7 +4930,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2502 +// line internal/php7/php7.y:2497 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4944,13 +4939,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2509 +// line internal/php7/php7.y:2504 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2516 +// line internal/php7/php7.y:2511 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4966,7 +4961,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2530 +// line internal/php7/php7.y:2525 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4983,7 +4978,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2548 +// line internal/php7/php7.y:2543 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -4991,13 +4986,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2554 +// line internal/php7/php7.y:2549 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2561 +// line internal/php7/php7.y:2556 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5017,7 +5012,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2577 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5037,7 +5032,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2603 +// line internal/php7/php7.y:2598 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5046,7 +5041,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2610 +// line internal/php7/php7.y:2605 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5054,25 +5049,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2619 +// line internal/php7/php7.y:2614 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2626 +// line internal/php7/php7.y:2621 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2625 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2637 +// line internal/php7/php7.y:2632 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5081,13 +5076,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2644 +// line internal/php7/php7.y:2639 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2651 +// line internal/php7/php7.y:2646 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5105,7 +5100,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2670 +// line internal/php7/php7.y:2665 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5120,7 +5115,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2683 +// line internal/php7/php7.y:2678 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5132,7 +5127,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2696 +// line internal/php7/php7.y:2691 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5149,7 +5144,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2711 +// line internal/php7/php7.y:2706 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5165,7 +5160,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2725 +// line internal/php7/php7.y:2720 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5178,7 +5173,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2736 +// line internal/php7/php7.y:2731 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5192,7 +5187,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2748 +// line internal/php7/php7.y:2743 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5204,7 +5199,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2758 +// line internal/php7/php7.y:2753 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5217,7 +5212,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2769 +// line internal/php7/php7.y:2764 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5230,7 +5225,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2780 +// line internal/php7/php7.y:2775 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5243,7 +5238,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2791 +// line internal/php7/php7.y:2786 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5256,7 +5251,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2802 +// line internal/php7/php7.y:2797 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5269,7 +5264,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2813 +// line internal/php7/php7.y:2808 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5282,7 +5277,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2824 +// line internal/php7/php7.y:2819 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5295,7 +5290,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2835 +// line internal/php7/php7.y:2830 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5308,7 +5303,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2846 +// line internal/php7/php7.y:2841 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5321,7 +5316,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2857 +// line internal/php7/php7.y:2852 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5334,7 +5329,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2868 +// line internal/php7/php7.y:2863 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5347,7 +5342,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2879 +// line internal/php7/php7.y:2874 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5360,7 +5355,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2890 +// line internal/php7/php7.y:2885 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5373,7 +5368,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2901 +// line internal/php7/php7.y:2896 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5386,7 +5381,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2912 +// line internal/php7/php7.y:2907 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5398,7 +5393,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2917 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5411,7 +5406,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2928 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5423,7 +5418,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2943 +// line internal/php7/php7.y:2938 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5431,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2954 +// line internal/php7/php7.y:2949 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5444,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2965 +// line internal/php7/php7.y:2960 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5462,7 +5457,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2976 +// line internal/php7/php7.y:2971 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5475,7 +5470,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2987 +// line internal/php7/php7.y:2982 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5488,7 +5483,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2998 +// line internal/php7/php7.y:2993 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5501,7 +5496,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3009 +// line internal/php7/php7.y:3004 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5514,7 +5509,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3020 +// line internal/php7/php7.y:3015 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5527,7 +5522,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3031 +// line internal/php7/php7.y:3026 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5539,7 +5534,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3041 +// line internal/php7/php7.y:3036 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5552,7 +5547,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3052 +// line internal/php7/php7.y:3047 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5565,7 +5560,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3063 +// line internal/php7/php7.y:3058 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5578,7 +5573,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3074 +// line internal/php7/php7.y:3069 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5591,7 +5586,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3085 +// line internal/php7/php7.y:3080 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5604,7 +5599,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3096 +// line internal/php7/php7.y:3091 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5617,7 +5612,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3107 +// line internal/php7/php7.y:3102 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5630,7 +5625,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3118 +// line internal/php7/php7.y:3113 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5643,7 +5638,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3129 +// line internal/php7/php7.y:3124 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5655,7 +5650,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3139 +// line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5667,7 +5662,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3149 +// line internal/php7/php7.y:3144 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5679,7 +5674,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3159 +// line internal/php7/php7.y:3154 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5691,7 +5686,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3169 +// line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5699,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3180 +// line internal/php7/php7.y:3175 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5717,7 +5712,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3191 +// line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5730,7 +5725,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3202 +// line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5744,7 +5739,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3214 +// line internal/php7/php7.y:3209 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5757,7 +5752,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3225 +// line internal/php7/php7.y:3220 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5770,7 +5765,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3236 +// line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5783,7 +5778,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3247 +// line internal/php7/php7.y:3242 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5796,7 +5791,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3258 +// line internal/php7/php7.y:3253 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5804,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3264 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,7 +5817,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3280 +// line internal/php7/php7.y:3275 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5839,13 +5834,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3295 +// line internal/php7/php7.y:3290 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3299 +// line internal/php7/php7.y:3294 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5859,7 +5854,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3311 +// line internal/php7/php7.y:3306 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5873,7 +5868,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3323 +// line internal/php7/php7.y:3318 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5886,13 +5881,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3334 +// line internal/php7/php7.y:3329 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3338 +// line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5905,7 +5900,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3349 +// line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5918,7 +5913,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3360 +// line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5931,7 +5926,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3371 +// line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5944,7 +5939,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3382 +// line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5957,7 +5952,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3393 +// line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5970,7 +5965,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3404 +// line internal/php7/php7.y:3399 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -5983,7 +5978,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3415 +// line internal/php7/php7.y:3410 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6003,7 +5998,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3433 +// line internal/php7/php7.y:3428 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6015,13 +6010,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3443 +// line internal/php7/php7.y:3438 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3447 +// line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6033,7 +6028,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3457 +// line internal/php7/php7.y:3452 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6045,7 +6040,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3467 +// line internal/php7/php7.y:3462 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6057,7 +6052,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3477 +// line internal/php7/php7.y:3472 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6069,7 +6064,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3487 +// line internal/php7/php7.y:3482 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6082,7 +6077,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3498 +// line internal/php7/php7.y:3493 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6094,13 +6089,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3508 +// line internal/php7/php7.y:3503 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3512 +// line internal/php7/php7.y:3507 { yyVAL.node = yyDollar[2].node @@ -6121,7 +6116,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3533 +// line internal/php7/php7.y:3528 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6152,7 +6147,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3560 +// line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6178,25 +6173,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3590 +// line internal/php7/php7.y:3585 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3594 +// line internal/php7/php7.y:3589 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3601 +// line internal/php7/php7.y:3596 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3605 +// line internal/php7/php7.y:3600 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6210,7 +6205,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3620 +// line internal/php7/php7.y:3615 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6219,13 +6214,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3627 +// line internal/php7/php7.y:3622 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3634 +// line internal/php7/php7.y:3629 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6239,7 +6234,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3646 +// line internal/php7/php7.y:3641 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6256,7 +6251,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3664 +// line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6268,7 +6263,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3674 +// line internal/php7/php7.y:3669 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6281,7 +6276,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3685 +// line internal/php7/php7.y:3680 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6294,7 +6289,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3696 +// line internal/php7/php7.y:3691 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6306,7 +6301,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3709 +// line internal/php7/php7.y:3704 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6318,31 +6313,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3719 +// line internal/php7/php7.y:3714 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3726 +// line internal/php7/php7.y:3721 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3730 +// line internal/php7/php7.y:3725 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3737 +// line internal/php7/php7.y:3732 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3741 +// line internal/php7/php7.y:3736 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6359,13 +6354,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3759 +// line internal/php7/php7.y:3754 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3763 +// line internal/php7/php7.y:3758 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6375,25 +6370,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3771 +// line internal/php7/php7.y:3766 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3778 +// line internal/php7/php7.y:3773 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3782 +// line internal/php7/php7.y:3777 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3789 +// line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6407,7 +6402,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3801 +// line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6420,7 +6415,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3812 +// line internal/php7/php7.y:3807 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6432,7 +6427,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3825 +// line internal/php7/php7.y:3820 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6444,7 +6439,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3835 +// line internal/php7/php7.y:3830 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6456,7 +6451,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3845 +// line internal/php7/php7.y:3840 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6468,7 +6463,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3855 +// line internal/php7/php7.y:3850 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6480,7 +6475,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3865 +// line internal/php7/php7.y:3860 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6492,7 +6487,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3875 +// line internal/php7/php7.y:3870 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6504,7 +6499,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 +// line internal/php7/php7.y:3880 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6516,7 +6511,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3895 +// line internal/php7/php7.y:3890 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6528,7 +6523,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3905 +// line internal/php7/php7.y:3900 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6540,7 +6535,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3915 +// line internal/php7/php7.y:3910 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6552,7 +6547,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3925 +// line internal/php7/php7.y:3920 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6566,7 +6561,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3937 +// line internal/php7/php7.y:3932 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6578,7 +6573,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3947 +// line internal/php7/php7.y:3942 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6590,7 +6585,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3957 +// line internal/php7/php7.y:3952 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6602,19 +6597,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3967 +// line internal/php7/php7.y:3962 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3971 +// line internal/php7/php7.y:3966 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3978 +// line internal/php7/php7.y:3973 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6626,7 +6621,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3988 +// line internal/php7/php7.y:3983 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6642,7 +6637,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4002 +// line internal/php7/php7.y:3997 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6658,43 +6653,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4019 +// line internal/php7/php7.y:4014 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4023 +// line internal/php7/php7.y:4018 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4030 +// line internal/php7/php7.y:4025 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4034 +// line internal/php7/php7.y:4029 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4041 +// line internal/php7/php7.y:4036 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4048 +// line internal/php7/php7.y:4043 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4052 +// line internal/php7/php7.y:4047 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6711,19 +6706,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4067 +// line internal/php7/php7.y:4062 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4074 +// line internal/php7/php7.y:4069 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4078 +// line internal/php7/php7.y:4073 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6740,19 +6735,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4093 +// line internal/php7/php7.y:4088 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4100 +// line internal/php7/php7.y:4095 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4104 +// line internal/php7/php7.y:4099 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6765,7 +6760,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4115 +// line internal/php7/php7.y:4110 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6778,7 +6773,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4126 +// line internal/php7/php7.y:4121 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6791,7 +6786,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4137 +// line internal/php7/php7.y:4132 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6804,25 +6799,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4148 +// line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4155 +// line internal/php7/php7.y:4150 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4159 +// line internal/php7/php7.y:4154 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4163 +// line internal/php7/php7.y:4158 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6835,7 +6830,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4177 +// line internal/php7/php7.y:4172 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6849,7 +6844,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4189 +// line internal/php7/php7.y:4184 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6863,7 +6858,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4201 +// line internal/php7/php7.y:4196 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6875,7 +6870,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4214 +// line internal/php7/php7.y:4209 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6888,7 +6883,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4225 +// line internal/php7/php7.y:4220 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6901,13 +6896,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4239 +// line internal/php7/php7.y:4234 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4243 +// line internal/php7/php7.y:4238 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6920,7 +6915,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4254 +// line internal/php7/php7.y:4249 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6933,7 +6928,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4265 +// line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6946,7 +6941,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4276 +// line internal/php7/php7.y:4271 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6959,7 +6954,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4287 +// line internal/php7/php7.y:4282 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6972,7 +6967,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4301 +// line internal/php7/php7.y:4296 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6984,7 +6979,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4311 +// line internal/php7/php7.y:4306 { yyVAL.node = yyDollar[2].node @@ -6994,13 +6989,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4319 +// line internal/php7/php7.y:4314 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4326 +// line internal/php7/php7.y:4321 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7012,7 +7007,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4336 +// line internal/php7/php7.y:4331 { yyVAL.node = yyDollar[2].node @@ -7022,31 +7017,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4344 +// line internal/php7/php7.y:4339 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4351 +// line internal/php7/php7.y:4346 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4358 +// line internal/php7/php7.y:4353 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4362 +// line internal/php7/php7.y:4357 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4369 +// line internal/php7/php7.y:4364 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7059,7 +7054,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4380 +// line internal/php7/php7.y:4375 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7069,7 +7064,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4391 +// line internal/php7/php7.y:4386 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7082,7 +7077,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4402 +// line internal/php7/php7.y:4397 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7094,7 +7089,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4412 +// line internal/php7/php7.y:4407 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7110,7 +7105,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4426 +// line internal/php7/php7.y:4421 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7124,7 +7119,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4438 +// line internal/php7/php7.y:4433 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7136,7 +7131,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4448 +// line internal/php7/php7.y:4443 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7155,7 +7150,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4465 +// line internal/php7/php7.y:4460 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7172,13 +7167,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4483 +// line internal/php7/php7.y:4478 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4487 +// line internal/php7/php7.y:4482 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7191,13 +7186,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4498 +// line internal/php7/php7.y:4493 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4502 +// line internal/php7/php7.y:4497 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7210,7 +7205,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4516 +// line internal/php7/php7.y:4511 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7224,7 +7219,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4528 +// line internal/php7/php7.y:4523 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7241,7 +7236,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4543 +// line internal/php7/php7.y:4538 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7260,7 +7255,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4560 +// line internal/php7/php7.y:4555 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7275,7 +7270,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4573 +// line internal/php7/php7.y:4568 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7292,7 +7287,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4588 +// line internal/php7/php7.y:4583 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7311,7 +7306,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4605 +// line internal/php7/php7.y:4600 { yyVAL.node = yyDollar[2].node @@ -7321,7 +7316,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4616 +// line internal/php7/php7.y:4611 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7333,7 +7328,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4626 +// line internal/php7/php7.y:4621 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7350,7 +7345,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4641 +// line internal/php7/php7.y:4636 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7376,7 +7371,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4665 +// line internal/php7/php7.y:4660 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7390,7 +7385,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4680 +// line internal/php7/php7.y:4675 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7408,7 +7403,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4696 +// line internal/php7/php7.y:4691 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7430,7 +7425,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4716 +// line internal/php7/php7.y:4711 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7442,7 +7437,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4726 +// line internal/php7/php7.y:4721 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7454,7 +7449,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4736 +// line internal/php7/php7.y:4731 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7476,7 +7471,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4756 +// line internal/php7/php7.y:4751 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7488,7 +7483,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4766 +// line internal/php7/php7.y:4761 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7500,13 +7495,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4779 +// line internal/php7/php7.y:4774 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4783 +// line internal/php7/php7.y:4778 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7515,7 +7510,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4793 +// line internal/php7/php7.y:4788 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 79efe9d..969ed05 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1051,14 +1051,12 @@ statement: } | ';' { - $$ = &ast.StmtNop{ast.Node{}, } - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) + $$ = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + SemiColonTkn: $1, + } } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { @@ -2203,13 +2201,12 @@ name_list: trait_adaptations: ';' { - $$ = &ast.StmtNop{ast.Node{}, } - - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) + $$ = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + SemiColonTkn: $1, + } } | '{' '}' { @@ -2372,14 +2369,12 @@ absolute_trait_method_reference: method_body: ';' /* abstract method */ { - $$ = &ast.StmtNop{ast.Node{}, } - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $1.SkippedTokens) + $$ = &ast.StmtNop{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + SemiColonTkn: $1, + } } | '{' inner_statement_list '}' { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 845c124..b16ad15 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -597,6 +597,7 @@ func (n *StmtNamespace) Accept(v NodeVisitor) { // StmtNop node type StmtNop struct { Node + SemiColonTkn *token.Token } func (n *StmtNop) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 63fc40e..fc28ce8 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -235,3 +235,7 @@ func (v *FilterTokens) StmtDeclare(n *ast.StmtDeclare) { n.EndDeclareTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtNop(n *ast.StmtNop) { + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 9195d83..07318bd 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2581,13 +2581,8 @@ func (p *Printer) printStmtNamespace(n *ast.StmtNamespace) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtNop(n ast.Vertex) { - p.printFreeFloatingOrDefault(n, token.Start, p.bufStart) - p.printFreeFloating(n, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - p.printFreeFloating(n, token.End) +func (p *Printer) printStmtNop(n *ast.StmtNop) { + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtPropertyList(n ast.Vertex) { From 80aa32838665a5d3c2e41ae8999df2c16781c209 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 14 Sep 2020 20:15:50 +0300 Subject: [PATCH 065/140] [refactoring] update ast structure of "Try", "Catch" and "Finally" nodes --- internal/php5/php5.go | 973 ++++++++++++------------ internal/php5/php5.y | 75 +- internal/php7/php7.go | 1203 +++++++++++++++--------------- internal/php7/php7.y | 76 +- pkg/ast/node.go | 26 +- pkg/ast/visitor/filter_tokens.go | 21 + pkg/printer/printer.go | 71 +- 7 files changed, 1244 insertions(+), 1201 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8e6d434..6527ca8 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6152 +// line internal/php5/php5.y:6165 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3292,23 +3292,24 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] // line internal/php5/php5.y:1152 { - yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} + yyVAL.node = &ast.StmtTry{ + TryTkn: yyDollar[1].token, + OpenCurlyBracket: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracket: yyDollar[4].token, + Catches: yyDollar[5].list, + Finally: yyDollar[6].node, + } - // save position if yyDollar[6].node == nil { yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) } else { yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) } - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1168 +// line internal/php5/php5.y:1169 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3322,7 +3323,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1180 +// line internal/php5/php5.y:1181 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3339,100 +3340,112 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1198 +// line internal/php5/php5.y:1199 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1202 +// line internal/php5/php5.y:1203 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - catchNode := &ast.StmtCatch{ast.Node{}, []ast.Vertex{yyDollar[3].node}, variable, yyDollar[7].list} - yyVAL.list = append([]ast.Vertex{catchNode}, yyDollar[9].list...) + catch := &ast.StmtCatch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + }, + CatchTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Types: []ast.Vertex{yyDollar[3].node}, + Var: variable, + CloseParenthesisTkn: yyDollar[5].token, + OpenCurlyBracketTkn: yyDollar[6].token, + Stmts: yyDollar[7].list, + CloseCurlyBracketTkn: yyDollar[8].token, + } + yyVAL.list = append([]ast.Vertex{catch}, yyDollar[9].list...) // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - catchNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, yyDollar[8].token.SkippedTokens) } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1225 +// line internal/php5/php5.y:1232 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1229 +// line internal/php5/php5.y:1236 { - yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtFinally{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + FinallyTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, + } } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1244 +// line internal/php5/php5.y:1251 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1248 +// line internal/php5/php5.y:1255 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1255 +// line internal/php5/php5.y:1262 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1259 +// line internal/php5/php5.y:1266 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1266 +// line internal/php5/php5.y:1273 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtCatch{ast.Node{}, []ast.Vertex{yyDollar[3].node}, variable, yyDollar[7].list} + yyVAL.node = &ast.StmtCatch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + }, + CatchTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Types: []ast.Vertex{yyDollar[3].node}, + Var: variable, + CloseParenthesisTkn: yyDollar[5].token, + OpenCurlyBracketTkn: yyDollar[6].token, + Stmts: yyDollar[7].list, + CloseCurlyBracketTkn: yyDollar[8].token, + } // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Catch, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.SkippedTokens) } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1288 +// line internal/php5/php5.y:1301 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3440,7 +3453,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1294 +// line internal/php5/php5.y:1307 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3449,49 +3462,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1304 +// line internal/php5/php5.y:1317 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1311 +// line internal/php5/php5.y:1324 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1318 +// line internal/php5/php5.y:1331 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1325 +// line internal/php5/php5.y:1338 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1329 +// line internal/php5/php5.y:1342 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1336 +// line internal/php5/php5.y:1349 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1340 +// line internal/php5/php5.y:1353 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1347 +// line internal/php5/php5.y:1360 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3515,7 +3528,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1372 +// line internal/php5/php5.y:1385 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3543,7 +3556,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1398 +// line internal/php5/php5.y:1411 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3560,7 +3573,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1417 +// line internal/php5/php5.y:1430 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3572,7 +3585,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1427 +// line internal/php5/php5.y:1440 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3587,7 +3600,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1440 +// line internal/php5/php5.y:1453 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3599,7 +3612,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1450 +// line internal/php5/php5.y:1463 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3614,13 +3627,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1466 +// line internal/php5/php5.y:1479 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1470 +// line internal/php5/php5.y:1483 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3632,19 +3645,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1483 +// line internal/php5/php5.y:1496 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1490 +// line internal/php5/php5.y:1503 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1494 +// line internal/php5/php5.y:1507 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3656,13 +3669,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1507 +// line internal/php5/php5.y:1520 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1511 +// line internal/php5/php5.y:1524 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3674,13 +3687,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1524 +// line internal/php5/php5.y:1537 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1528 +// line internal/php5/php5.y:1541 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3694,13 +3707,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1540 +// line internal/php5/php5.y:1553 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1544 +// line internal/php5/php5.y:1557 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3709,13 +3722,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1554 +// line internal/php5/php5.y:1567 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1558 +// line internal/php5/php5.y:1571 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3727,7 +3740,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1568 +// line internal/php5/php5.y:1581 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3741,7 +3754,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1583 +// line internal/php5/php5.y:1596 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3752,7 +3765,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1592 +// line internal/php5/php5.y:1605 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3772,7 +3785,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1613 +// line internal/php5/php5.y:1626 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3783,7 +3796,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1622 +// line internal/php5/php5.y:1635 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3803,7 +3816,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1644 +// line internal/php5/php5.y:1657 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3814,7 +3827,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1653 +// line internal/php5/php5.y:1666 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3834,7 +3847,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1675 +// line internal/php5/php5.y:1688 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3858,7 +3871,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1697 +// line internal/php5/php5.y:1710 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3884,7 +3897,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1725 +// line internal/php5/php5.y:1738 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3897,7 +3910,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1736 +// line internal/php5/php5.y:1749 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3911,7 +3924,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1748 +// line internal/php5/php5.y:1761 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3926,7 +3939,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1761 +// line internal/php5/php5.y:1774 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3942,13 +3955,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1779 +// line internal/php5/php5.y:1792 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1783 +// line internal/php5/php5.y:1796 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3962,7 +3975,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1795 +// line internal/php5/php5.y:1808 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -3975,19 +3988,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1810 +// line internal/php5/php5.y:1823 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1814 +// line internal/php5/php5.y:1827 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1822 +// line internal/php5/php5.y:1835 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -3998,7 +4011,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1831 +// line internal/php5/php5.y:1844 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4018,13 +4031,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1854 +// line internal/php5/php5.y:1867 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1858 +// line internal/php5/php5.y:1871 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4039,13 +4052,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1875 +// line internal/php5/php5.y:1888 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1879 +// line internal/php5/php5.y:1892 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4067,13 +4080,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1903 +// line internal/php5/php5.y:1916 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1907 +// line internal/php5/php5.y:1920 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4085,13 +4098,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1921 +// line internal/php5/php5.y:1934 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1925 +// line internal/php5/php5.y:1938 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4110,25 +4123,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1946 +// line internal/php5/php5.y:1959 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1950 +// line internal/php5/php5.y:1963 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1957 +// line internal/php5/php5.y:1970 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1961 +// line internal/php5/php5.y:1974 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4137,7 +4150,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1971 +// line internal/php5/php5.y:1984 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4173,7 +4186,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2005 +// line internal/php5/php5.y:2018 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4210,13 +4223,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2044 +// line internal/php5/php5.y:2057 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2048 +// line internal/php5/php5.y:2061 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4228,7 +4241,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2058 +// line internal/php5/php5.y:2071 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4240,13 +4253,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2068 +// line internal/php5/php5.y:2081 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2076 +// line internal/php5/php5.y:2089 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4259,7 +4272,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2087 +// line internal/php5/php5.y:2100 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4272,7 +4285,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2098 +// line internal/php5/php5.y:2111 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4287,13 +4300,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2115 +// line internal/php5/php5.y:2128 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2119 +// line internal/php5/php5.y:2132 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4302,7 +4315,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2129 +// line internal/php5/php5.y:2142 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4314,7 +4327,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2139 +// line internal/php5/php5.y:2152 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4326,7 +4339,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2149 +// line internal/php5/php5.y:2162 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4338,7 +4351,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2159 +// line internal/php5/php5.y:2172 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4350,7 +4363,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2172 +// line internal/php5/php5.y:2185 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4359,7 +4372,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2179 +// line internal/php5/php5.y:2192 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4367,7 +4380,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2189 +// line internal/php5/php5.y:2202 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4381,7 +4394,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2201 +// line internal/php5/php5.y:2214 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4393,7 +4406,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2211 +// line internal/php5/php5.y:2224 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4407,7 +4420,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2227 +// line internal/php5/php5.y:2240 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4431,7 +4444,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2249 +// line internal/php5/php5.y:2262 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4457,7 +4470,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2273 +// line internal/php5/php5.y:2286 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4482,7 +4495,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2296 +// line internal/php5/php5.y:2309 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4509,19 +4522,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2325 +// line internal/php5/php5.y:2338 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2329 +// line internal/php5/php5.y:2342 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2337 +// line internal/php5/php5.y:2350 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4535,7 +4548,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2349 +// line internal/php5/php5.y:2362 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4543,13 +4556,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2355 +// line internal/php5/php5.y:2368 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2359 +// line internal/php5/php5.y:2372 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4580,7 +4593,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2391 +// line internal/php5/php5.y:2404 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4592,13 +4605,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2404 +// line internal/php5/php5.y:2417 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2408 +// line internal/php5/php5.y:2421 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4612,7 +4625,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2420 +// line internal/php5/php5.y:2433 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4623,7 +4636,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2429 +// line internal/php5/php5.y:2442 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4635,31 +4648,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2442 +// line internal/php5/php5.y:2455 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2446 +// line internal/php5/php5.y:2459 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2453 +// line internal/php5/php5.y:2466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2457 +// line internal/php5/php5.y:2470 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2464 +// line internal/php5/php5.y:2477 { yyVAL.node = yyDollar[1].node @@ -4669,7 +4682,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2472 +// line internal/php5/php5.y:2485 { yyVAL.node = yyDollar[1].node @@ -4679,7 +4692,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2483 +// line internal/php5/php5.y:2496 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4692,13 +4705,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2497 +// line internal/php5/php5.y:2510 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2501 +// line internal/php5/php5.y:2514 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4707,7 +4720,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2511 +// line internal/php5/php5.y:2524 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4721,13 +4734,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2523 +// line internal/php5/php5.y:2536 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2530 +// line internal/php5/php5.y:2543 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4743,7 +4756,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2547 +// line internal/php5/php5.y:2560 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4759,7 +4772,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2561 +// line internal/php5/php5.y:2574 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4772,19 +4785,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2575 +// line internal/php5/php5.y:2588 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2579 +// line internal/php5/php5.y:2592 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2586 +// line internal/php5/php5.y:2599 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4795,7 +4808,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2595 +// line internal/php5/php5.y:2608 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4808,13 +4821,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2609 +// line internal/php5/php5.y:2622 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2613 +// line internal/php5/php5.y:2626 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4827,31 +4840,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2627 +// line internal/php5/php5.y:2640 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2631 +// line internal/php5/php5.y:2644 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2638 +// line internal/php5/php5.y:2651 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2642 +// line internal/php5/php5.y:2655 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2649 +// line internal/php5/php5.y:2662 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4863,7 +4876,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2672 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4875,7 +4888,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2669 +// line internal/php5/php5.y:2682 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4887,7 +4900,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2679 +// line internal/php5/php5.y:2692 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4899,7 +4912,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2689 +// line internal/php5/php5.y:2702 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4911,7 +4924,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2699 +// line internal/php5/php5.y:2712 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4923,7 +4936,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2725 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4941,7 +4954,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2728 +// line internal/php5/php5.y:2741 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4960,7 +4973,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2745 +// line internal/php5/php5.y:2758 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4977,7 +4990,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2760 +// line internal/php5/php5.y:2773 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4995,7 +5008,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2779 +// line internal/php5/php5.y:2792 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5020,7 +5033,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2802 +// line internal/php5/php5.y:2815 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5048,7 +5061,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2831 +// line internal/php5/php5.y:2844 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5057,7 +5070,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2838 +// line internal/php5/php5.y:2851 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5065,19 +5078,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2848 +// line internal/php5/php5.y:2861 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2852 +// line internal/php5/php5.y:2865 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2859 +// line internal/php5/php5.y:2872 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5086,25 +5099,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2866 +// line internal/php5/php5.y:2879 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2873 +// line internal/php5/php5.y:2886 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2877 +// line internal/php5/php5.y:2890 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2884 +// line internal/php5/php5.y:2897 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5118,7 +5131,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2896 +// line internal/php5/php5.y:2909 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5132,37 +5145,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2911 +// line internal/php5/php5.y:2924 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2915 +// line internal/php5/php5.y:2928 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2919 +// line internal/php5/php5.y:2932 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2926 +// line internal/php5/php5.y:2939 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2930 +// line internal/php5/php5.y:2943 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2937 +// line internal/php5/php5.y:2950 { if yyDollar[3].node != nil { @@ -5178,7 +5191,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2954 +// line internal/php5/php5.y:2967 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5195,7 +5208,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2969 +// line internal/php5/php5.y:2982 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5208,7 +5221,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2980 +// line internal/php5/php5.y:2993 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5222,7 +5235,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2992 +// line internal/php5/php5.y:3005 { var _new *ast.ExprNew @@ -5249,7 +5262,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3017 +// line internal/php5/php5.y:3030 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5261,7 +5274,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3027 +// line internal/php5/php5.y:3040 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5273,7 +5286,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3037 +// line internal/php5/php5.y:3050 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5286,7 +5299,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3048 +// line internal/php5/php5.y:3061 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5299,7 +5312,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3059 +// line internal/php5/php5.y:3072 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5312,7 +5325,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3070 +// line internal/php5/php5.y:3083 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5325,7 +5338,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3081 +// line internal/php5/php5.y:3094 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5338,7 +5351,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3092 +// line internal/php5/php5.y:3105 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5351,7 +5364,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3103 +// line internal/php5/php5.y:3116 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5364,7 +5377,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3114 +// line internal/php5/php5.y:3127 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5377,7 +5390,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3125 +// line internal/php5/php5.y:3138 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5390,7 +5403,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3136 +// line internal/php5/php5.y:3149 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5403,7 +5416,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3147 +// line internal/php5/php5.y:3160 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5416,7 +5429,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3158 +// line internal/php5/php5.y:3171 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5429,7 +5442,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3169 +// line internal/php5/php5.y:3182 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5441,7 +5454,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3179 +// line internal/php5/php5.y:3192 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5454,7 +5467,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3190 +// line internal/php5/php5.y:3203 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5466,7 +5479,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3200 +// line internal/php5/php5.y:3213 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5479,7 +5492,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3211 +// line internal/php5/php5.y:3224 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5492,7 +5505,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3222 +// line internal/php5/php5.y:3235 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5505,7 +5518,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3233 +// line internal/php5/php5.y:3246 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5518,7 +5531,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3244 +// line internal/php5/php5.y:3257 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5531,7 +5544,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3255 +// line internal/php5/php5.y:3268 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5544,7 +5557,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3266 +// line internal/php5/php5.y:3279 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5557,7 +5570,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3277 +// line internal/php5/php5.y:3290 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5570,7 +5583,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3288 +// line internal/php5/php5.y:3301 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5582,7 +5595,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3298 +// line internal/php5/php5.y:3311 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5595,7 +5608,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3309 +// line internal/php5/php5.y:3322 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5608,7 +5621,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3320 +// line internal/php5/php5.y:3333 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5634,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3331 +// line internal/php5/php5.y:3344 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5647,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3342 +// line internal/php5/php5.y:3355 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5660,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3353 +// line internal/php5/php5.y:3366 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5673,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3364 +// line internal/php5/php5.y:3377 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5686,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3375 +// line internal/php5/php5.y:3388 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5699,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3386 +// line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5698,7 +5711,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3396 +// line internal/php5/php5.y:3409 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5710,7 +5723,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3406 +// line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5722,7 +5735,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3429 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5734,7 +5747,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3426 +// line internal/php5/php5.y:3439 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,7 +5760,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3437 +// line internal/php5/php5.y:3450 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5773,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3448 +// line internal/php5/php5.y:3461 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5786,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3459 +// line internal/php5/php5.y:3472 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5787,7 +5800,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3471 +// line internal/php5/php5.y:3484 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5800,7 +5813,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3482 +// line internal/php5/php5.y:3495 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5826,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3493 +// line internal/php5/php5.y:3506 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5839,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3504 +// line internal/php5/php5.y:3517 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5852,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3515 +// line internal/php5/php5.y:3528 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,19 +5865,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3526 +// line internal/php5/php5.y:3539 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3530 +// line internal/php5/php5.y:3543 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3534 +// line internal/php5/php5.y:3547 { yyVAL.node = yyDollar[2].node @@ -5896,7 +5909,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3564 +// line internal/php5/php5.y:3577 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5910,7 +5923,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3576 +// line internal/php5/php5.y:3589 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5924,13 +5937,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3588 +// line internal/php5/php5.y:3601 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3592 +// line internal/php5/php5.y:3605 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5943,7 +5956,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3603 +// line internal/php5/php5.y:3616 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5956,7 +5969,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3614 +// line internal/php5/php5.y:3627 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5969,7 +5982,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3625 +// line internal/php5/php5.y:3638 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5982,7 +5995,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3636 +// line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5995,7 +6008,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3647 +// line internal/php5/php5.y:3660 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6008,7 +6021,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3658 +// line internal/php5/php5.y:3671 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6021,7 +6034,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3669 +// line internal/php5/php5.y:3682 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6041,7 +6054,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3687 +// line internal/php5/php5.y:3700 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6053,25 +6066,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3697 +// line internal/php5/php5.y:3710 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3701 +// line internal/php5/php5.y:3714 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3705 +// line internal/php5/php5.y:3718 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3709 +// line internal/php5/php5.y:3722 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6083,7 +6096,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3719 +// line internal/php5/php5.y:3732 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6095,7 +6108,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3729 +// line internal/php5/php5.y:3742 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6107,7 +6120,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3739 +// line internal/php5/php5.y:3752 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6134,7 +6147,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3763 +// line internal/php5/php5.y:3776 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6162,7 +6175,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3791 +// line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6174,7 +6187,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3801 +// line internal/php5/php5.y:3814 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6186,7 +6199,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3811 +// line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6199,7 +6212,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3822 +// line internal/php5/php5.y:3835 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6212,7 +6225,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3836 +// line internal/php5/php5.y:3849 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6225,7 +6238,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3847 +// line internal/php5/php5.y:3860 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6238,7 +6251,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3858 +// line internal/php5/php5.y:3871 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6254,7 +6267,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3872 +// line internal/php5/php5.y:3885 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6267,7 +6280,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3886 +// line internal/php5/php5.y:3899 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6281,7 +6294,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3898 +// line internal/php5/php5.y:3911 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6294,19 +6307,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3912 +// line internal/php5/php5.y:3925 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3919 +// line internal/php5/php5.y:3932 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3923 +// line internal/php5/php5.y:3936 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6320,7 +6333,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3938 +// line internal/php5/php5.y:3951 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6336,7 +6349,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3952 +// line internal/php5/php5.y:3965 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6355,7 +6368,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3969 +// line internal/php5/php5.y:3982 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6370,7 +6383,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3995 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6388,7 +6401,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4001 +// line internal/php5/php5.y:4014 { name := &ast.NameName{ Node: ast.Node{ @@ -6403,7 +6416,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4014 +// line internal/php5/php5.y:4027 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6420,7 +6433,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4029 +// line internal/php5/php5.y:4042 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6436,7 +6449,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4043 +// line internal/php5/php5.y:4056 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6449,7 +6462,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4054 +// line internal/php5/php5.y:4067 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6462,7 +6475,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4065 +// line internal/php5/php5.y:4078 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6475,7 +6488,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4076 +// line internal/php5/php5.y:4089 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6488,7 +6501,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4087 +// line internal/php5/php5.y:4100 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6500,7 +6513,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4100 +// line internal/php5/php5.y:4113 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6512,7 +6525,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4110 +// line internal/php5/php5.y:4123 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6523,7 +6536,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4119 +// line internal/php5/php5.y:4132 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6536,7 +6549,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4130 +// line internal/php5/php5.y:4143 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6548,7 +6561,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4143 +// line internal/php5/php5.y:4156 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6559,7 +6572,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4152 +// line internal/php5/php5.y:4165 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6572,7 +6585,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4163 +// line internal/php5/php5.y:4176 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6584,19 +6597,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4176 +// line internal/php5/php5.y:4189 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4180 +// line internal/php5/php5.y:4193 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4187 +// line internal/php5/php5.y:4200 { yyVAL.node = yyDollar[1].node @@ -6637,25 +6650,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4226 +// line internal/php5/php5.y:4239 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4234 +// line internal/php5/php5.y:4247 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4238 +// line internal/php5/php5.y:4251 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4246 +// line internal/php5/php5.y:4259 { yyVAL.list = yyDollar[2].list @@ -6664,13 +6677,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4256 +// line internal/php5/php5.y:4269 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4260 +// line internal/php5/php5.y:4273 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6686,19 +6699,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4274 +// line internal/php5/php5.y:4287 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4281 +// line internal/php5/php5.y:4294 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4298 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6708,25 +6721,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4293 +// line internal/php5/php5.y:4306 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4300 +// line internal/php5/php5.y:4313 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4304 +// line internal/php5/php5.y:4317 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4311 +// line internal/php5/php5.y:4324 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6738,7 +6751,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4321 +// line internal/php5/php5.y:4334 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6750,7 +6763,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4331 +// line internal/php5/php5.y:4344 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6762,7 +6775,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4354 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6774,7 +6787,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4364 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6786,7 +6799,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4361 +// line internal/php5/php5.y:4374 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6798,7 +6811,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4371 +// line internal/php5/php5.y:4384 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6810,7 +6823,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4381 +// line internal/php5/php5.y:4394 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6822,7 +6835,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4391 +// line internal/php5/php5.y:4404 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6834,7 +6847,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4401 +// line internal/php5/php5.y:4414 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6846,7 +6859,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4411 +// line internal/php5/php5.y:4424 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6860,7 +6873,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4423 +// line internal/php5/php5.y:4436 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6872,7 +6885,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4436 +// line internal/php5/php5.y:4449 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6888,25 +6901,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4453 +// line internal/php5/php5.y:4466 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4460 +// line internal/php5/php5.y:4473 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4464 +// line internal/php5/php5.y:4477 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4468 +// line internal/php5/php5.y:4481 { name := &ast.NameName{ Node: ast.Node{ @@ -6921,7 +6934,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4494 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6938,7 +6951,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4496 +// line internal/php5/php5.y:4509 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6954,7 +6967,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4523 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6968,7 +6981,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4522 +// line internal/php5/php5.y:4535 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6981,13 +6994,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4533 +// line internal/php5/php5.y:4546 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4537 +// line internal/php5/php5.y:4550 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6999,13 +7012,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4547 +// line internal/php5/php5.y:4560 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4554 +// line internal/php5/php5.y:4567 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7018,7 +7031,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4565 +// line internal/php5/php5.y:4578 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7031,7 +7044,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4576 +// line internal/php5/php5.y:4589 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7044,7 +7057,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4587 +// line internal/php5/php5.y:4600 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7057,7 +7070,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4598 +// line internal/php5/php5.y:4611 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7070,7 +7083,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4609 +// line internal/php5/php5.y:4622 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7083,7 +7096,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4620 +// line internal/php5/php5.y:4633 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7096,7 +7109,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4631 +// line internal/php5/php5.y:4644 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7108,7 +7121,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4641 +// line internal/php5/php5.y:4654 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7120,7 +7133,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4651 +// line internal/php5/php5.y:4664 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7133,7 +7146,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4662 +// line internal/php5/php5.y:4675 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7146,7 +7159,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4673 +// line internal/php5/php5.y:4686 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7159,7 +7172,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4684 +// line internal/php5/php5.y:4697 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7172,7 +7185,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4695 +// line internal/php5/php5.y:4708 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7185,7 +7198,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4706 +// line internal/php5/php5.y:4719 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7198,7 +7211,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4717 +// line internal/php5/php5.y:4730 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7211,7 +7224,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4728 +// line internal/php5/php5.y:4741 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7224,7 +7237,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4739 +// line internal/php5/php5.y:4752 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7237,7 +7250,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4750 +// line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7250,7 +7263,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4761 +// line internal/php5/php5.y:4774 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7263,7 +7276,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4772 +// line internal/php5/php5.y:4785 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7276,7 +7289,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4783 +// line internal/php5/php5.y:4796 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7289,7 +7302,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4794 +// line internal/php5/php5.y:4807 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7302,7 +7315,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4805 +// line internal/php5/php5.y:4818 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7316,7 +7329,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4817 +// line internal/php5/php5.y:4830 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7329,7 +7342,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4828 +// line internal/php5/php5.y:4841 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7342,7 +7355,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4839 +// line internal/php5/php5.y:4852 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7355,7 +7368,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4850 +// line internal/php5/php5.y:4863 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7368,7 +7381,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4861 +// line internal/php5/php5.y:4874 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7382,7 +7395,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4873 +// line internal/php5/php5.y:4886 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7396,7 +7409,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4885 +// line internal/php5/php5.y:4898 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7408,7 +7421,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4895 +// line internal/php5/php5.y:4908 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7420,7 +7433,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4905 +// line internal/php5/php5.y:4918 { yyVAL.node = yyDollar[2].node @@ -7430,13 +7443,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4916 +// line internal/php5/php5.y:4929 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4920 +// line internal/php5/php5.y:4933 { name := &ast.NameName{ Node: ast.Node{ @@ -7451,7 +7464,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4933 +// line internal/php5/php5.y:4946 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7468,7 +7481,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4948 +// line internal/php5/php5.y:4961 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7484,7 +7497,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4965 +// line internal/php5/php5.y:4978 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7498,25 +7511,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4977 +// line internal/php5/php5.y:4990 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4981 +// line internal/php5/php5.y:4994 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4985 +// line internal/php5/php5.y:4998 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4989 +// line internal/php5/php5.y:5002 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7528,7 +7541,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4999 +// line internal/php5/php5.y:5012 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7540,7 +7553,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5009 +// line internal/php5/php5.y:5022 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7552,13 +7565,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5022 +// line internal/php5/php5.y:5035 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5026 +// line internal/php5/php5.y:5039 { yyVAL.list = yyDollar[1].list @@ -7569,19 +7582,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5038 +// line internal/php5/php5.y:5051 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5042 +// line internal/php5/php5.y:5055 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5049 +// line internal/php5/php5.y:5062 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7596,7 +7609,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5062 +// line internal/php5/php5.y:5075 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7610,7 +7623,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5074 +// line internal/php5/php5.y:5087 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7624,7 +7637,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5086 +// line internal/php5/php5.y:5099 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7637,19 +7650,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5100 +// line internal/php5/php5.y:5113 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5104 +// line internal/php5/php5.y:5117 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5111 +// line internal/php5/php5.y:5124 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7666,7 +7679,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5126 +// line internal/php5/php5.y:5139 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7683,25 +7696,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5145 +// line internal/php5/php5.y:5158 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5153 +// line internal/php5/php5.y:5166 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5160 +// line internal/php5/php5.y:5173 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5167 +// line internal/php5/php5.y:5180 { yyVAL.node = yyDollar[1].node @@ -7759,25 +7772,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5223 +// line internal/php5/php5.y:5236 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5230 +// line internal/php5/php5.y:5243 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5234 +// line internal/php5/php5.y:5247 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5242 +// line internal/php5/php5.y:5255 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7791,7 +7804,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5257 +// line internal/php5/php5.y:5270 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7805,7 +7818,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5269 +// line internal/php5/php5.y:5282 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7819,7 +7832,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5284 +// line internal/php5/php5.y:5297 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7828,31 +7841,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5294 +// line internal/php5/php5.y:5307 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5298 +// line internal/php5/php5.y:5311 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5302 +// line internal/php5/php5.y:5315 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5309 +// line internal/php5/php5.y:5322 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5313 +// line internal/php5/php5.y:5326 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7864,7 +7877,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5326 +// line internal/php5/php5.y:5339 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7877,7 +7890,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5337 +// line internal/php5/php5.y:5350 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7890,13 +7903,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5351 +// line internal/php5/php5.y:5364 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5358 +// line internal/php5/php5.y:5371 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7909,7 +7922,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5369 +// line internal/php5/php5.y:5382 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7922,31 +7935,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5383 +// line internal/php5/php5.y:5396 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5387 +// line internal/php5/php5.y:5400 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5391 +// line internal/php5/php5.y:5404 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5399 +// line internal/php5/php5.y:5412 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5403 +// line internal/php5/php5.y:5416 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7958,13 +7971,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5413 +// line internal/php5/php5.y:5426 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5420 +// line internal/php5/php5.y:5433 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7977,7 +7990,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5431 +// line internal/php5/php5.y:5444 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7990,13 +8003,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5442 +// line internal/php5/php5.y:5455 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5450 +// line internal/php5/php5.y:5463 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8010,7 +8023,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5462 +// line internal/php5/php5.y:5475 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8024,25 +8037,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5477 +// line internal/php5/php5.y:5490 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5481 +// line internal/php5/php5.y:5494 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5489 +// line internal/php5/php5.y:5502 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5493 +// line internal/php5/php5.y:5506 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8052,7 +8065,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5504 +// line internal/php5/php5.y:5517 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8066,7 +8079,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5516 +// line internal/php5/php5.y:5529 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8080,7 +8093,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5528 +// line internal/php5/php5.y:5541 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8090,7 +8103,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5539 +// line internal/php5/php5.y:5552 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8102,7 +8115,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5549 +// line internal/php5/php5.y:5562 { yyVAL.node = yyDollar[2].node @@ -8115,7 +8128,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5563 +// line internal/php5/php5.y:5576 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8128,7 +8141,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5574 +// line internal/php5/php5.y:5587 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8145,7 +8158,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5592 +// line internal/php5/php5.y:5605 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8158,7 +8171,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5603 +// line internal/php5/php5.y:5616 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8168,7 +8181,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5615 +// line internal/php5/php5.y:5628 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8180,7 +8193,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5625 +// line internal/php5/php5.y:5638 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8196,19 +8209,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5639 +// line internal/php5/php5.y:5652 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5647 +// line internal/php5/php5.y:5660 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5651 +// line internal/php5/php5.y:5664 { yyVAL.list = yyDollar[1].list @@ -8223,7 +8236,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5667 +// line internal/php5/php5.y:5680 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8238,7 +8251,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5680 +// line internal/php5/php5.y:5693 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8252,7 +8265,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5692 +// line internal/php5/php5.y:5705 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8266,7 +8279,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5704 +// line internal/php5/php5.y:5717 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8279,7 +8292,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5715 +// line internal/php5/php5.y:5728 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8297,7 +8310,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5731 +// line internal/php5/php5.y:5744 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8313,7 +8326,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5745 +// line internal/php5/php5.y:5758 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8330,7 +8343,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5760 +// line internal/php5/php5.y:5773 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8345,13 +8358,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5776 +// line internal/php5/php5.y:5789 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5780 +// line internal/php5/php5.y:5793 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8364,13 +8377,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5791 +// line internal/php5/php5.y:5804 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5795 +// line internal/php5/php5.y:5808 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8383,7 +8396,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5809 +// line internal/php5/php5.y:5822 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8397,7 +8410,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5821 +// line internal/php5/php5.y:5834 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8414,7 +8427,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5836 +// line internal/php5/php5.y:5849 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8433,7 +8446,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5853 +// line internal/php5/php5.y:5866 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8448,7 +8461,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5866 +// line internal/php5/php5.y:5879 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8465,7 +8478,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5881 +// line internal/php5/php5.y:5894 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8484,7 +8497,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5898 +// line internal/php5/php5.y:5911 { yyVAL.node = yyDollar[2].node @@ -8494,7 +8507,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5909 +// line internal/php5/php5.y:5922 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8506,7 +8519,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5919 +// line internal/php5/php5.y:5932 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8523,7 +8536,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5934 +// line internal/php5/php5.y:5947 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8537,7 +8550,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5949 +// line internal/php5/php5.y:5962 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8551,7 +8564,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5961 +// line internal/php5/php5.y:5974 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8573,7 +8586,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5981 +// line internal/php5/php5.y:5994 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8595,7 +8608,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6001 +// line internal/php5/php5.y:6014 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8607,7 +8620,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6011 +// line internal/php5/php5.y:6024 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8619,7 +8632,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6021 +// line internal/php5/php5.y:6034 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8641,7 +8654,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6041 +// line internal/php5/php5.y:6054 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8653,7 +8666,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6051 +// line internal/php5/php5.y:6064 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8665,13 +8678,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6064 +// line internal/php5/php5.y:6077 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6068 +// line internal/php5/php5.y:6081 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8680,19 +8693,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6078 +// line internal/php5/php5.y:6091 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6082 +// line internal/php5/php5.y:6095 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6089 +// line internal/php5/php5.y:6102 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8708,7 +8721,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6103 +// line internal/php5/php5.y:6116 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8724,7 +8737,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6120 +// line internal/php5/php5.y:6133 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8740,7 +8753,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6137 +// line internal/php5/php5.y:6150 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 0c3d768..21c19ac 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1150,19 +1150,20 @@ unticked_statement: } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { - $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} + $$ = &ast.StmtTry{ + TryTkn: $1, + OpenCurlyBracket: $2, + Stmts: $3, + CloseCurlyBracket: $4, + Catches: $5, + Finally: $6, + } - // save position if $6 == nil { $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) } else { $$.GetNode().Position = position.NewTokenNodePosition($1, $6) } - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) } | T_THROW expr ';' { @@ -1202,21 +1203,27 @@ catch_statement: { identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - catchNode := &ast.StmtCatch{ast.Node{}, []ast.Vertex{$3}, variable, $7} - $$ = append([]ast.Vertex{catchNode}, $9...) + catch := &ast.StmtCatch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $8), + }, + CatchTkn: $1, + OpenParenthesisTkn: $2, + Types: []ast.Vertex{$3}, + Var: variable, + CloseParenthesisTkn: $5, + OpenCurlyBracketTkn: $6, + Stmts: $7, + CloseCurlyBracketTkn: $8, + } + $$ = append([]ast.Vertex{catch}, $9...) // save position identifier.GetNode().Position = position.NewTokenPosition($4) variable.GetNode().Position = position.NewTokenPosition($4) - catchNode.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating(catchNode, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Catch, $2.SkippedTokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Var, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Cond, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating(catchNode, token.Stmts, $8.SkippedTokens) } ; @@ -1227,15 +1234,15 @@ finally_statement: } | T_FINALLY '{' inner_statement_list '}' { - $$ = &ast.StmtFinally{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) + $$ = &ast.StmtFinally{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + FinallyTkn: $1, + OpenCurlyBracketTkn: $2, + Stmts: $3, + CloseCurlyBracketTkn: $4, + } } ; @@ -1266,20 +1273,26 @@ additional_catch: { identifier := &ast.Identifier{ast.Node{}, $4.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtCatch{ast.Node{}, []ast.Vertex{$3}, variable, $7} + $$ = &ast.StmtCatch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $8), + }, + CatchTkn: $1, + OpenParenthesisTkn: $2, + Types: []ast.Vertex{$3}, + Var: variable, + CloseParenthesisTkn: $5, + OpenCurlyBracketTkn: $6, + Stmts: $7, + CloseCurlyBracketTkn: $8, + } // save position identifier.GetNode().Position = position.NewTokenPosition($4) variable.GetNode().Position = position.NewTokenPosition($4) - $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Catch, $2.SkippedTokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Cond, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 5c6b024..5c94ada 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4795 +// line internal/php7/php7.y:4801 // line yacctab:1 var yyExca = [...]int{ @@ -631,10 +631,10 @@ var yyAct = [...]int{ 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, 189, 744, 632, 855, 260, 261, 235, 539, 238, 225, 859, 283, 260, 261, 528, 865, 879, 108, 838, 877, - 890, 891, 886, 328, 841, 676, 892, 893, 830, 885, - 255, 730, 796, 853, 385, 897, 898, 371, 656, 872, - 852, 934, 786, 896, 903, 662, 845, 905, 227, 43, - 42, 16, 15, 151, 886, 908, 904, 902, 260, 261, + 890, 891, 886, 328, 841, 676, 892, 893, 255, 885, + 796, 730, 385, 853, 371, 897, 898, 656, 852, 872, + 934, 662, 786, 896, 903, 845, 227, 905, 43, 42, + 16, 15, 830, 151, 886, 908, 904, 902, 260, 261, 606, 885, 271, 49, 48, 110, 50, 84, 82, 72, 252, 62, 269, 61, 884, 883, 906, 918, 882, 881, 742, 147, 144, 45, 734, 673, 315, 928, 926, 922, @@ -1429,11 +1429,11 @@ var yyPgo = [...]int{ 19, 38, 913, 912, 79, 911, 73, 910, 5, 909, 908, 905, 904, 15, 62, 903, 902, 100, 87, 274, 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, - 896, 895, 894, 893, 892, 99, 890, 883, 882, 88, - 881, 880, 10, 879, 878, 46, 39, 40, 2, 16, - 705, 43, 85, 876, 875, 871, 12, 870, 868, 555, - 867, 50, 37, 864, 862, 9, 762, 20, 553, 860, - 18, 858, 855, 854, 36, 853, 25, 33, 848, 45, + 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, + 88, 880, 879, 10, 878, 876, 46, 39, 40, 2, + 16, 705, 43, 85, 875, 871, 870, 12, 868, 867, + 555, 864, 50, 37, 862, 860, 9, 762, 20, 553, + 858, 18, 855, 854, 36, 853, 25, 33, 848, 45, 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } @@ -1447,27 +1447,27 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, - 117, 100, 100, 10, 10, 10, 9, 9, 9, 9, + 117, 101, 101, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 96, 96, 16, 16, 18, 18, 7, 7, 107, + 9, 97, 97, 16, 16, 18, 18, 7, 7, 107, 107, 106, 106, 111, 111, 17, 17, 20, 20, 19, - 19, 69, 69, 118, 118, 22, 22, 22, 22, 22, + 19, 70, 70, 118, 118, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 102, 102, 101, 101, - 26, 26, 90, 90, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 80, 80, 14, 15, 91, 91, - 93, 93, 92, 92, 97, 97, 97, 97, 87, 87, - 86, 86, 25, 25, 84, 84, 84, 84, 109, 109, - 109, 8, 8, 88, 88, 71, 71, 68, 68, 73, - 73, 70, 70, 119, 119, 120, 120, 29, 29, 30, - 30, 79, 79, 77, 77, 77, 78, 78, 81, 81, + 11, 11, 11, 11, 11, 11, 102, 102, 68, 68, + 26, 26, 91, 91, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 81, 81, 14, 15, 92, 92, + 94, 94, 93, 93, 98, 98, 98, 98, 88, 88, + 87, 87, 25, 25, 85, 85, 85, 85, 109, 109, + 109, 8, 8, 89, 89, 72, 72, 69, 69, 74, + 74, 71, 71, 119, 119, 120, 120, 29, 29, 30, + 30, 80, 80, 78, 78, 78, 79, 79, 82, 82, 116, 116, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 121, 121, 37, 37, 37, 37, 125, 125, 83, - 83, 83, 110, 110, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 85, 85, 123, 123, 122, 122, - 124, 124, 95, 95, 95, 95, 95, 95, 108, 108, - 43, 43, 103, 103, 72, 21, 67, 67, 44, 104, + 36, 121, 121, 37, 37, 37, 37, 125, 125, 84, + 84, 84, 110, 110, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 86, 86, 123, 123, 122, 122, + 124, 124, 96, 96, 96, 96, 96, 96, 108, 108, + 43, 43, 103, 103, 73, 21, 67, 67, 44, 104, 104, 105, 105, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1476,19 +1476,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 89, 89, 128, 3, 3, 94, 94, + 32, 32, 32, 90, 90, 128, 3, 3, 95, 95, 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 99, 99, 99, 82, 82, 58, + 48, 48, 51, 51, 100, 100, 100, 83, 83, 58, 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, - 64, 64, 55, 55, 55, 56, 56, 56, 115, 75, - 75, 114, 114, 74, 74, 74, 74, 74, 74, 74, - 98, 98, 98, 98, 65, 65, 65, 65, 65, 65, + 64, 64, 55, 55, 55, 56, 56, 56, 115, 76, + 76, 114, 114, 75, 75, 75, 75, 75, 75, 75, + 99, 99, 99, 99, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 113, 113, 76, + 50, 50, 113, 113, 77, } var yyR2 = [...]int{ @@ -1546,44 +1546,44 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -68, -70, 21, 20, 23, + 52, 80, 45, 39, 144, -69, -71, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -71, -73, -28, -32, -80, 7, -62, -63, + 54, 55, -72, -74, -28, -32, -81, 7, -62, -63, -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -52, 143, 97, 98, 107, -89, 100, 101, + 6, 158, -52, 143, 97, 98, 107, -90, 100, 101, -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -100, 83, 148, 83, -100, 144, 10, - -18, -96, -111, -100, 83, 37, 39, -19, -20, -69, + -61, 61, 18, -101, 83, 148, 83, -101, 144, 10, + -18, -97, -111, -101, 83, 37, 39, -19, -20, -70, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -89, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -90, -36, 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -80, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -81, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -115, -114, -75, -74, -23, 153, + 150, 144, 58, 148, -115, -114, -76, -75, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -99, 17, -98, -65, 12, + -23, -23, -51, 148, -23, -100, 17, -99, -65, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -98, -98, 17, -3, 144, -49, - -81, 148, -81, 148, 83, -100, 149, -100, 146, 144, - -117, 146, -16, -111, -100, 83, 146, 160, 83, 29, - -100, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -23, -23, 17, 76, -99, -99, 17, -3, 144, -49, + -82, 148, -82, 148, 83, -101, 149, -101, 146, 144, + -117, 146, -16, -111, -101, 83, 146, 160, 83, 29, + -101, -20, 146, 160, 162, -22, 145, 2, -11, -12, -13, -14, -15, 52, -23, 21, -3, -104, -105, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -90, -27, -28, -23, -69, -118, 146, 146, 10, - -128, 10, -91, 56, -128, -93, 56, 148, -11, 148, + -23, -91, -27, -28, -23, -70, -118, 146, 146, 10, + -128, 10, -92, 56, -128, -94, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, @@ -1597,48 +1597,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -82, -81, 79, 150, 144, 58, 79, -82, -113, -76, + -83, -82, 79, 150, 144, 58, 79, -83, -113, -77, -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -100, -19, 83, -100, 144, 10, 83, -21, -23, + 83, -101, -19, 83, -101, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -91, - -92, 57, -10, 144, -128, -125, -10, -23, -23, -118, - -23, 149, 151, 145, -81, -23, 149, 162, -75, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -92, + -93, 57, -10, 144, -128, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -82, -23, 149, 162, -76, -23, 153, 60, -115, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -81, -23, - -81, -49, -24, -23, -56, -49, -91, -7, 160, 149, - 149, -119, -120, -29, -30, -79, -77, 152, 61, 62, + 12, 10, 145, 145, 150, 145, -23, 151, -82, -23, + -82, -49, -24, -23, -56, -49, -92, -7, 160, 149, + 149, -119, -120, -29, -30, -80, -78, 152, 61, 62, -10, 145, -7, 160, -23, 149, 145, 144, 83, -107, - -17, -20, -96, 144, -128, 149, -88, -11, 147, -23, - -104, -23, -84, 144, 147, -23, 149, -27, -97, -28, - 153, 60, 150, -25, -11, 147, -102, 148, -119, -92, + -17, -20, -97, 144, -128, 149, -89, -11, 147, -23, + -104, -23, -85, 144, 147, -23, 149, -27, -98, -28, + 153, 60, 150, -25, -11, 147, -102, 148, -119, -93, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -92, 149, -76, 149, 160, -1, 153, -77, + 151, 145, -93, 149, -77, 149, 160, -1, 153, -78, 149, -31, -106, -20, 144, -7, 160, -20, -107, 146, -118, 149, 146, -109, 146, -109, 146, 146, 149, 59, -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -37, -123, -122, 45, -124, 48, -95, 104, + 144, 145, -37, -123, -122, 45, -124, 48, -96, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -128, -78, 147, -29, -2, 84, + -118, -23, -115, 151, -128, -79, 147, -29, -2, 84, -7, 160, -106, 145, -17, -7, 22, 146, -104, 145, - 32, 33, -109, 31, -109, -86, -11, 147, -97, -28, - -115, 151, 28, 148, 144, 149, -94, 45, 144, -121, - -30, 39, 37, -125, -95, 145, -118, 149, 145, 144, - -128, -79, 12, 145, -20, -7, 145, 146, 149, -23, + 32, 33, -109, 31, -109, -87, -11, 147, -98, -28, + -115, 151, 28, 148, 144, 149, -95, 45, 144, -121, + -30, 39, 37, -125, -96, 145, -118, 149, 145, 144, + -128, -80, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -101, -10, -118, -78, -78, 148, -121, 145, -108, -43, - 12, -103, -72, -6, -3, -83, 146, 144, -121, 59, - 162, 145, -87, -11, 147, -8, -118, 146, 26, -86, + -68, -10, -118, -79, -79, 148, -121, 145, -108, -43, + 12, -103, -73, -6, -3, -84, 146, 144, -121, 59, + 162, 145, -88, -11, 147, -8, -118, 146, 26, -87, 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -110, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -43, -23, -72, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -73, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -125, 10, -4, -95, -6, 146, -118, -119, - -6, 145, 149, -78, -85, 146, 144, -118, 145, + -128, 148, -125, 10, -4, -96, -6, 146, -118, -119, + -6, 145, 149, -79, -86, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:294 + // line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:328 + // line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:335 + // line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:346 + // line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:353 + // line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:365 + // line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:379 + // line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:388 + // line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:399 + // line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:412 + // line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:437 + // line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:449 + // line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:465 + // line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:483 + // line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:495 + // line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:505 + // line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:516 + // line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:527 + // line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:539 + // line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2837,7 +2837,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:554 + // line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2849,7 +2849,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:564 + // line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2861,7 +2861,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:577 + // line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2885,7 +2885,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:599 + // line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2908,7 +2908,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:623 + // line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2930,7 +2930,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:643 + // line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2953,19 +2953,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:671 + // line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:678 + // line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2973,13 +2973,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:684 + // line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:691 + // line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2987,13 +2987,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:697 + // line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:704 + // line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3001,19 +3001,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:710 + // line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:721 + // line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3023,7 +3023,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:732 + // line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3039,7 +3039,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:746 + // line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3062,13 +3062,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:770 + // line internal/php7/php7.y:770 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:774 + // line internal/php7/php7.y:774 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3078,7 +3078,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:785 + // line internal/php7/php7.y:785 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3087,7 +3087,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:792 + // line internal/php7/php7.y:792 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3095,7 +3095,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:801 + // line internal/php7/php7.y:801 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3108,50 +3108,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:812 + // line internal/php7/php7.y:812 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:819 + // line internal/php7/php7.y:819 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:824 + // line internal/php7/php7.y:824 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:828 + // line internal/php7/php7.y:828 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:832 + // line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:836 + // line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:840 + // line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:844 + // line internal/php7/php7.y:844 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3165,7 +3165,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:858 + // line internal/php7/php7.y:858 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3178,19 +3178,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:869 + // line internal/php7/php7.y:869 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:873 + // line internal/php7/php7.y:873 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:877 + // line internal/php7/php7.y:877 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3202,7 +3202,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:887 + // line internal/php7/php7.y:887 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3219,7 +3219,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:902 + // line internal/php7/php7.y:902 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3235,7 +3235,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:916 + // line internal/php7/php7.y:916 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3247,7 +3247,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:926 + // line internal/php7/php7.y:926 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3260,7 +3260,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:937 + // line internal/php7/php7.y:937 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3273,7 +3273,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:948 + // line internal/php7/php7.y:948 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3286,7 +3286,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:959 + // line internal/php7/php7.y:959 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3296,7 +3296,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:967 + // line internal/php7/php7.y:967 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3306,7 +3306,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:975 + // line internal/php7/php7.y:975 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3316,7 +3316,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:983 + // line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3328,7 +3328,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:993 + // line internal/php7/php7.y:993 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3342,7 +3342,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1005 + // line internal/php7/php7.y:1005 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3355,7 +3355,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1016 + // line internal/php7/php7.y:1016 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3369,7 +3369,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1028 + // line internal/php7/php7.y:1028 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3385,7 +3385,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1042 + // line internal/php7/php7.y:1042 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3398,7 +3398,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1053 + // line internal/php7/php7.y:1053 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3409,24 +3409,26 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1062 + // line internal/php7/php7.y:1062 { - if yyDollar[6].node == nil { - yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) - } else { - yyVAL.node = &ast.StmtTry{ast.Node{}, yyDollar[3].list, yyDollar[5].list, yyDollar[6].node} - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + yyVAL.node = &ast.StmtTry{ + TryTkn: yyDollar[1].token, + OpenCurlyBracket: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracket: yyDollar[4].token, + Catches: yyDollar[5].list, + Finally: yyDollar[6].node, } - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Try, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) + if yyDollar[6].node == nil { + yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) + } else { + yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + } } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1077 + // line internal/php7/php7.y:1079 { yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} @@ -3440,7 +3442,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1089 + // line internal/php7/php7.y:1091 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3457,7 +3459,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1104 + // line internal/php7/php7.y:1106 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3472,75 +3474,76 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1119 + // line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1123 + // line internal/php7/php7.y:1125 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - catch := &ast.StmtCatch{ast.Node{}, yyDollar[4].list, variable, yyDollar[8].list} + + catch := yyDollar[4].node.(*ast.StmtCatch) + catch.CatchTkn = yyDollar[2].token + catch.OpenParenthesisTkn = yyDollar[3].token + catch.Var = variable + catch.CloseParenthesisTkn = yyDollar[6].token + catch.OpenCurlyBracketTkn = yyDollar[7].token + catch.Stmts = yyDollar[8].list + catch.CloseCurlyBracketTkn = yyDollar[9].token + catch.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) + yyVAL.list = append(yyDollar[1].list, catch) // save position identifier.GetNode().Position = position.NewTokenPosition(yyDollar[5].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[5].token) - catch.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Catch, yyDollar[3].token.SkippedTokens) yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Var, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Cond, yyDollar[7].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, yyDollar[9].token.SkippedTokens) } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1145 + // line internal/php7/php7.y:1151 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.StmtCatch{ + Types: []ast.Vertex{yyDollar[1].node}, + } } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1149 + // line internal/php7/php7.y:1157 { - switch n := lastNode(yyDollar[1].list).(type) { - case *ast.NameName: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameFullyQualified: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameRelative: - n.ListSeparatorTkn = yyDollar[2].token - } - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) + + yyVAL.node = yyDollar[1].node } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1167 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1165 + // line internal/php7/php7.y:1171 { - yyVAL.node = &ast.StmtFinally{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Finally, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtFinally{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + FinallyTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, + } } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1180 + // line internal/php7/php7.y:1186 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3548,7 +3551,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1186 + // line internal/php7/php7.y:1192 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3557,13 +3560,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1202 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1203 + // line internal/php7/php7.y:1209 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3593,31 +3596,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1234 + // line internal/php7/php7.y:1240 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1238 + // line internal/php7/php7.y:1244 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1245 + // line internal/php7/php7.y:1251 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1249 + // line internal/php7/php7.y:1255 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1262 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3635,7 +3638,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1272 + // line internal/php7/php7.y:1278 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3652,19 +3655,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1290 + // line internal/php7/php7.y:1296 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1294 + // line internal/php7/php7.y:1300 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1301 + // line internal/php7/php7.y:1307 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3676,7 +3679,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1311 + // line internal/php7/php7.y:1317 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3688,7 +3691,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1324 + // line internal/php7/php7.y:1330 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3705,7 +3708,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1342 + // line internal/php7/php7.y:1348 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3722,13 +3725,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1360 + // line internal/php7/php7.y:1366 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1364 + // line internal/php7/php7.y:1370 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3740,13 +3743,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1377 + // line internal/php7/php7.y:1383 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1381 + // line internal/php7/php7.y:1387 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3758,13 +3761,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1394 + // line internal/php7/php7.y:1400 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1398 + // line internal/php7/php7.y:1404 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3776,13 +3779,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1411 + // line internal/php7/php7.y:1417 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1415 + // line internal/php7/php7.y:1421 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3794,7 +3797,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1425 + // line internal/php7/php7.y:1431 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3808,7 +3811,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1443 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3821,7 +3824,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1451 + // line internal/php7/php7.y:1457 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3832,7 +3835,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1460 + // line internal/php7/php7.y:1466 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3852,7 +3855,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1481 + // line internal/php7/php7.y:1487 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3863,7 +3866,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1490 + // line internal/php7/php7.y:1496 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3883,7 +3886,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1511 + // line internal/php7/php7.y:1517 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3894,7 +3897,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1520 + // line internal/php7/php7.y:1526 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3914,7 +3917,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1541 + // line internal/php7/php7.y:1547 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3927,7 +3930,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1552 + // line internal/php7/php7.y:1558 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3941,7 +3944,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1564 + // line internal/php7/php7.y:1570 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3959,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1577 + // line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3972,13 +3975,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1594 + // line internal/php7/php7.y:1600 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1598 + // line internal/php7/php7.y:1604 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3992,7 +3995,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1610 + // line internal/php7/php7.y:1616 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4005,19 +4008,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1630 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1628 + // line internal/php7/php7.y:1634 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1635 + // line internal/php7/php7.y:1641 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4028,7 +4031,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1644 + // line internal/php7/php7.y:1650 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4048,7 +4051,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1665 + // line internal/php7/php7.y:1671 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4063,7 +4066,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1678 + // line internal/php7/php7.y:1684 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4082,13 +4085,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1698 + // line internal/php7/php7.y:1704 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1702 + // line internal/php7/php7.y:1708 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4104,7 +4107,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1719 + // line internal/php7/php7.y:1725 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4126,7 +4129,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1739 + // line internal/php7/php7.y:1745 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4150,7 +4153,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1764 + // line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4160,7 +4163,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1772 + // line internal/php7/php7.y:1778 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4184,25 +4187,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1797 + // line internal/php7/php7.y:1803 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1801 + // line internal/php7/php7.y:1807 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1808 + // line internal/php7/php7.y:1814 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1812 + // line internal/php7/php7.y:1818 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4211,7 +4214,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1822 + // line internal/php7/php7.y:1828 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4247,7 +4250,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1856 + // line internal/php7/php7.y:1862 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4284,25 +4287,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1894 + // line internal/php7/php7.y:1900 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1898 + // line internal/php7/php7.y:1904 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1905 + // line internal/php7/php7.y:1911 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1909 + // line internal/php7/php7.y:1915 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4314,7 +4317,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1922 + // line internal/php7/php7.y:1928 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4326,7 +4329,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1932 + // line internal/php7/php7.y:1938 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4338,19 +4341,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1942 + // line internal/php7/php7.y:1948 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1949 + // line internal/php7/php7.y:1955 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1953 + // line internal/php7/php7.y:1959 { yyVAL.node = yyDollar[2].node @@ -4359,7 +4362,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1963 + // line internal/php7/php7.y:1969 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4372,7 +4375,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1974 + // line internal/php7/php7.y:1980 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4389,13 +4392,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1992 + // line internal/php7/php7.y:1998 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1996 + // line internal/php7/php7.y:2002 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4404,7 +4407,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2006 + // line internal/php7/php7.y:2012 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4416,7 +4419,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2016 + // line internal/php7/php7.y:2022 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4428,7 +4431,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2029 + // line internal/php7/php7.y:2035 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4437,7 +4440,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2036 + // line internal/php7/php7.y:2042 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4445,13 +4448,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2045 + // line internal/php7/php7.y:2051 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2052 + // line internal/php7/php7.y:2058 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4460,7 +4463,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2065 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4468,7 +4471,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2068 + // line internal/php7/php7.y:2074 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4489,7 +4492,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2087 + // line internal/php7/php7.y:2093 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4511,19 +4514,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2116 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2120 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2121 + // line internal/php7/php7.y:2127 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4537,7 +4540,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2139 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4551,7 +4554,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2145 + // line internal/php7/php7.y:2151 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4563,7 +4566,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2155 + // line internal/php7/php7.y:2161 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4594,13 +4597,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2187 + // line internal/php7/php7.y:2193 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2191 + // line internal/php7/php7.y:2197 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4614,7 +4617,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2203 + // line internal/php7/php7.y:2209 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4625,7 +4628,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2218 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4637,7 +4640,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2228 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4649,19 +4652,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2235 + // line internal/php7/php7.y:2241 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2239 + // line internal/php7/php7.y:2245 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2246 + // line internal/php7/php7.y:2252 { yyVAL.node = yyDollar[1].node @@ -4671,7 +4674,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2254 + // line internal/php7/php7.y:2260 { yyVAL.node = yyDollar[1].node @@ -4681,7 +4684,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2271 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4694,7 +4697,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2279 + // line internal/php7/php7.y:2285 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4710,7 +4713,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2293 + // line internal/php7/php7.y:2299 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4726,7 +4729,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2307 + // line internal/php7/php7.y:2313 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4742,7 +4745,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2321 + // line internal/php7/php7.y:2327 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4755,7 +4758,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2335 + // line internal/php7/php7.y:2341 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4769,13 +4772,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2347 + // line internal/php7/php7.y:2353 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2354 + // line internal/php7/php7.y:2360 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4791,7 +4794,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2371 + // line internal/php7/php7.y:2377 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4802,7 +4805,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2380 + // line internal/php7/php7.y:2386 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4815,13 +4818,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2394 + // line internal/php7/php7.y:2400 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2398 + // line internal/php7/php7.y:2404 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4834,31 +4837,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2412 + // line internal/php7/php7.y:2418 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2422 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2423 + // line internal/php7/php7.y:2429 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2427 + // line internal/php7/php7.y:2433 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2434 + // line internal/php7/php7.y:2440 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4870,7 +4873,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2450 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4882,7 +4885,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2454 + // line internal/php7/php7.y:2460 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4894,7 +4897,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2464 + // line internal/php7/php7.y:2470 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4906,7 +4909,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2474 + // line internal/php7/php7.y:2480 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4918,7 +4921,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2484 + // line internal/php7/php7.y:2490 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4930,7 +4933,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2497 + // line internal/php7/php7.y:2503 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4939,13 +4942,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2504 + // line internal/php7/php7.y:2510 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2511 + // line internal/php7/php7.y:2517 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4961,7 +4964,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2525 + // line internal/php7/php7.y:2531 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4978,7 +4981,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2543 + // line internal/php7/php7.y:2549 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -4986,13 +4989,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2549 + // line internal/php7/php7.y:2555 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2556 + // line internal/php7/php7.y:2562 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5012,7 +5015,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2577 + // line internal/php7/php7.y:2583 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5032,7 +5035,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2604 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5041,7 +5044,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2605 + // line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5049,25 +5052,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2614 + // line internal/php7/php7.y:2620 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2621 + // line internal/php7/php7.y:2627 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2625 + // line internal/php7/php7.y:2631 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2632 + // line internal/php7/php7.y:2638 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5076,13 +5079,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2639 + // line internal/php7/php7.y:2645 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2646 + // line internal/php7/php7.y:2652 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5100,7 +5103,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2665 + // line internal/php7/php7.y:2671 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5115,7 +5118,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2678 + // line internal/php7/php7.y:2684 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5127,7 +5130,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2697 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5144,7 +5147,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2706 + // line internal/php7/php7.y:2712 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5160,7 +5163,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2726 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5173,7 +5176,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2737 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5187,7 +5190,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2749 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5199,7 +5202,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2753 + // line internal/php7/php7.y:2759 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5212,7 +5215,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2764 + // line internal/php7/php7.y:2770 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5225,7 +5228,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2775 + // line internal/php7/php7.y:2781 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5238,7 +5241,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2786 + // line internal/php7/php7.y:2792 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5251,7 +5254,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2797 + // line internal/php7/php7.y:2803 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5264,7 +5267,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2808 + // line internal/php7/php7.y:2814 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5277,7 +5280,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2819 + // line internal/php7/php7.y:2825 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5290,7 +5293,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2830 + // line internal/php7/php7.y:2836 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5303,7 +5306,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2841 + // line internal/php7/php7.y:2847 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5316,7 +5319,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2858 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5329,7 +5332,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2863 + // line internal/php7/php7.y:2869 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5342,7 +5345,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2874 + // line internal/php7/php7.y:2880 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5355,7 +5358,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2885 + // line internal/php7/php7.y:2891 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5368,7 +5371,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2896 + // line internal/php7/php7.y:2902 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5381,7 +5384,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2907 + // line internal/php7/php7.y:2913 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5393,7 +5396,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2917 + // line internal/php7/php7.y:2923 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5406,7 +5409,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2928 + // line internal/php7/php7.y:2934 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5418,7 +5421,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2938 + // line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5431,7 +5434,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2949 + // line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5444,7 +5447,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2960 + // line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5457,7 +5460,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2971 + // line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5470,7 +5473,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2982 + // line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5483,7 +5486,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2993 + // line internal/php7/php7.y:2999 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5496,7 +5499,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3004 + // line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5509,7 +5512,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3015 + // line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5522,7 +5525,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3032 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5534,7 +5537,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3036 + // line internal/php7/php7.y:3042 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5547,7 +5550,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3047 + // line internal/php7/php7.y:3053 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5560,7 +5563,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3058 + // line internal/php7/php7.y:3064 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5573,7 +5576,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3069 + // line internal/php7/php7.y:3075 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5586,7 +5589,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3080 + // line internal/php7/php7.y:3086 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5599,7 +5602,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3091 + // line internal/php7/php7.y:3097 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5612,7 +5615,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3102 + // line internal/php7/php7.y:3108 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5625,7 +5628,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3119 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5638,7 +5641,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3124 + // line internal/php7/php7.y:3130 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5650,7 +5653,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3140 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5662,7 +5665,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3144 + // line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5674,7 +5677,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3154 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5686,7 +5689,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3164 + // line internal/php7/php7.y:3170 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5699,7 +5702,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3175 + // line internal/php7/php7.y:3181 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5712,7 +5715,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3192 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5725,7 +5728,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3197 + // line internal/php7/php7.y:3203 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5739,7 +5742,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3209 + // line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5752,7 +5755,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3220 + // line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5768,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3231 + // line internal/php7/php7.y:3237 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5781,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3242 + // line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5791,7 +5794,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3253 + // line internal/php7/php7.y:3259 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5804,7 +5807,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3264 + // line internal/php7/php7.y:3270 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5817,7 +5820,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3275 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5834,13 +5837,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3290 + // line internal/php7/php7.y:3296 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3294 + // line internal/php7/php7.y:3300 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5854,7 +5857,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3306 + // line internal/php7/php7.y:3312 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5868,7 +5871,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3318 + // line internal/php7/php7.y:3324 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5881,13 +5884,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3329 + // line internal/php7/php7.y:3335 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3333 + // line internal/php7/php7.y:3339 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5900,7 +5903,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3344 + // line internal/php7/php7.y:3350 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5913,7 +5916,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3361 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5926,7 +5929,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3366 + // line internal/php7/php7.y:3372 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5939,7 +5942,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3377 + // line internal/php7/php7.y:3383 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5952,7 +5955,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3394 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5965,7 +5968,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3399 + // line internal/php7/php7.y:3405 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -5978,7 +5981,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3410 + // line internal/php7/php7.y:3416 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -5998,7 +6001,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3428 + // line internal/php7/php7.y:3434 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6010,13 +6013,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3438 + // line internal/php7/php7.y:3444 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3448 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6028,7 +6031,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3452 + // line internal/php7/php7.y:3458 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6040,7 +6043,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3462 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6052,7 +6055,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3472 + // line internal/php7/php7.y:3478 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6064,7 +6067,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3482 + // line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6077,7 +6080,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3493 + // line internal/php7/php7.y:3499 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6089,13 +6092,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3509 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3507 + // line internal/php7/php7.y:3513 { yyVAL.node = yyDollar[2].node @@ -6116,7 +6119,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3528 + // line internal/php7/php7.y:3534 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6147,7 +6150,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6173,25 +6176,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3585 + // line internal/php7/php7.y:3591 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3589 + // line internal/php7/php7.y:3595 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3596 + // line internal/php7/php7.y:3602 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3600 + // line internal/php7/php7.y:3606 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6205,7 +6208,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3615 + // line internal/php7/php7.y:3621 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6214,13 +6217,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3622 + // line internal/php7/php7.y:3628 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3629 + // line internal/php7/php7.y:3635 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6234,7 +6237,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3641 + // line internal/php7/php7.y:3647 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6251,7 +6254,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3665 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6263,7 +6266,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3669 + // line internal/php7/php7.y:3675 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6276,7 +6279,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3680 + // line internal/php7/php7.y:3686 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6289,7 +6292,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3691 + // line internal/php7/php7.y:3697 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6301,7 +6304,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3704 + // line internal/php7/php7.y:3710 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6313,31 +6316,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3714 + // line internal/php7/php7.y:3720 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3727 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3725 + // line internal/php7/php7.y:3731 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3732 + // line internal/php7/php7.y:3738 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3742 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6354,13 +6357,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3754 + // line internal/php7/php7.y:3760 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3758 + // line internal/php7/php7.y:3764 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6370,25 +6373,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3766 + // line internal/php7/php7.y:3772 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3773 + // line internal/php7/php7.y:3779 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3777 + // line internal/php7/php7.y:3783 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3784 + // line internal/php7/php7.y:3790 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6402,7 +6405,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3796 + // line internal/php7/php7.y:3802 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6415,7 +6418,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3807 + // line internal/php7/php7.y:3813 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6427,7 +6430,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3820 + // line internal/php7/php7.y:3826 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6439,7 +6442,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3830 + // line internal/php7/php7.y:3836 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6451,7 +6454,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3840 + // line internal/php7/php7.y:3846 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6463,7 +6466,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3850 + // line internal/php7/php7.y:3856 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6475,7 +6478,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3860 + // line internal/php7/php7.y:3866 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6487,7 +6490,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3876 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6499,7 +6502,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3886 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6511,7 +6514,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3890 + // line internal/php7/php7.y:3896 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6523,7 +6526,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3906 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6535,7 +6538,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3910 + // line internal/php7/php7.y:3916 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6547,7 +6550,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3920 + // line internal/php7/php7.y:3926 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6561,7 +6564,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3932 + // line internal/php7/php7.y:3938 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6573,7 +6576,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3942 + // line internal/php7/php7.y:3948 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6585,7 +6588,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3958 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6597,19 +6600,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3962 + // line internal/php7/php7.y:3968 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3972 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3973 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6621,7 +6624,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3983 + // line internal/php7/php7.y:3989 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6637,7 +6640,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3997 + // line internal/php7/php7.y:4003 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6653,43 +6656,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4014 + // line internal/php7/php7.y:4020 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4024 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4025 + // line internal/php7/php7.y:4031 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4035 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4042 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4043 + // line internal/php7/php7.y:4049 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4053 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6706,19 +6709,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4062 + // line internal/php7/php7.y:4068 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4069 + // line internal/php7/php7.y:4075 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4073 + // line internal/php7/php7.y:4079 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6735,19 +6738,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4088 + // line internal/php7/php7.y:4094 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4095 + // line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4099 + // line internal/php7/php7.y:4105 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6760,7 +6763,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4110 + // line internal/php7/php7.y:4116 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6773,7 +6776,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4121 + // line internal/php7/php7.y:4127 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6786,7 +6789,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4132 + // line internal/php7/php7.y:4138 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6799,25 +6802,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4143 + // line internal/php7/php7.y:4149 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4150 + // line internal/php7/php7.y:4156 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4160 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4158 + // line internal/php7/php7.y:4164 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6830,7 +6833,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4178 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6844,7 +6847,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4184 + // line internal/php7/php7.y:4190 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6858,7 +6861,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4196 + // line internal/php7/php7.y:4202 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6870,7 +6873,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4215 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6883,7 +6886,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4220 + // line internal/php7/php7.y:4226 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6896,13 +6899,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4234 + // line internal/php7/php7.y:4240 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4238 + // line internal/php7/php7.y:4244 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6915,7 +6918,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4249 + // line internal/php7/php7.y:4255 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6928,7 +6931,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4266 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6941,7 +6944,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4271 + // line internal/php7/php7.y:4277 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6954,7 +6957,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4282 + // line internal/php7/php7.y:4288 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6967,7 +6970,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4296 + // line internal/php7/php7.y:4302 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6979,7 +6982,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4306 + // line internal/php7/php7.y:4312 { yyVAL.node = yyDollar[2].node @@ -6989,13 +6992,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4320 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4321 + // line internal/php7/php7.y:4327 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7007,7 +7010,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4331 + // line internal/php7/php7.y:4337 { yyVAL.node = yyDollar[2].node @@ -7017,31 +7020,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4339 + // line internal/php7/php7.y:4345 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4346 + // line internal/php7/php7.y:4352 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4359 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4357 + // line internal/php7/php7.y:4363 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4364 + // line internal/php7/php7.y:4370 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7054,7 +7057,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4375 + // line internal/php7/php7.y:4381 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7064,7 +7067,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4386 + // line internal/php7/php7.y:4392 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7080,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4397 + // line internal/php7/php7.y:4403 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7089,7 +7092,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4407 + // line internal/php7/php7.y:4413 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7105,7 +7108,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4421 + // line internal/php7/php7.y:4427 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7119,7 +7122,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4433 + // line internal/php7/php7.y:4439 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7131,7 +7134,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4443 + // line internal/php7/php7.y:4449 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7150,7 +7153,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4460 + // line internal/php7/php7.y:4466 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7167,13 +7170,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4478 + // line internal/php7/php7.y:4484 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4482 + // line internal/php7/php7.y:4488 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7186,13 +7189,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4493 + // line internal/php7/php7.y:4499 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4497 + // line internal/php7/php7.y:4503 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7205,7 +7208,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4517 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7219,7 +7222,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4523 + // line internal/php7/php7.y:4529 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7236,7 +7239,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4544 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7255,7 +7258,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4555 + // line internal/php7/php7.y:4561 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7270,7 +7273,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4568 + // line internal/php7/php7.y:4574 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7287,7 +7290,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4583 + // line internal/php7/php7.y:4589 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7306,7 +7309,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4606 { yyVAL.node = yyDollar[2].node @@ -7316,7 +7319,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4611 + // line internal/php7/php7.y:4617 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7328,7 +7331,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4621 + // line internal/php7/php7.y:4627 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7345,7 +7348,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4636 + // line internal/php7/php7.y:4642 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7371,7 +7374,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4660 + // line internal/php7/php7.y:4666 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7385,7 +7388,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4675 + // line internal/php7/php7.y:4681 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7403,7 +7406,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4691 + // line internal/php7/php7.y:4697 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7425,7 +7428,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4711 + // line internal/php7/php7.y:4717 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7437,7 +7440,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4721 + // line internal/php7/php7.y:4727 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7449,7 +7452,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4731 + // line internal/php7/php7.y:4737 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7471,7 +7474,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4751 + // line internal/php7/php7.y:4757 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7483,7 +7486,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4761 + // line internal/php7/php7.y:4767 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7495,13 +7498,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4774 + // line internal/php7/php7.y:4780 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4778 + // line internal/php7/php7.y:4784 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7510,7 +7513,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4794 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 969ed05..a679f14 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -249,7 +249,7 @@ import ( %type exit_expr scalar lexical_var function_call member_name property_name %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable -%type encaps_var encaps_var_offset echo_expr_list +%type encaps_var encaps_var_offset echo_expr_list catch_name_list %type if_stmt const_list %type alt_if_stmt %type if_stmt_without_else @@ -275,7 +275,7 @@ import ( %type foreach_variable -%type encaps_list backticks_expr namespace_name catch_name_list catch_list class_const_list +%type encaps_list backticks_expr namespace_name catch_list class_const_list %type for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations property_list %type case_list trait_adaptation_list @@ -1060,18 +1060,20 @@ statement: } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { - if $6 == nil { - $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) - } else { - $$ = &ast.StmtTry{ast.Node{}, $3, $5, $6} - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) + $$ = &ast.StmtTry{ + TryTkn: $1, + OpenCurlyBracket: $2, + Stmts: $3, + CloseCurlyBracket: $4, + Catches: $5, + Finally: $6, } - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Try, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) + if $6 == nil { + $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) + } else { + $$.GetNode().Position = position.NewTokenNodePosition($1, $6) + } } | T_THROW expr ';' { @@ -1123,36 +1125,40 @@ catch_list: { identifier := &ast.Identifier{ast.Node{}, $5.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} - catch := &ast.StmtCatch{ast.Node{}, $4, variable, $8} + + catch := $4.(*ast.StmtCatch) + catch.CatchTkn = $2 + catch.OpenParenthesisTkn = $3 + catch.Var = variable + catch.CloseParenthesisTkn = $6 + catch.OpenCurlyBracketTkn = $7 + catch.Stmts = $8 + catch.CloseCurlyBracketTkn = $9 + catch.GetNode().Position = position.NewTokensPosition($2, $9) + $$ = append($1, catch) // save position identifier.GetNode().Position = position.NewTokenPosition($5) variable.GetNode().Position = position.NewTokenPosition($5) - catch.GetNode().Position = position.NewTokensPosition($2, $9) // save comments - yylex.(*Parser).setFreeFloating(catch, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Catch, $3.SkippedTokens) yylex.(*Parser).setFreeFloating(variable, token.Start, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Var, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Cond, $7.SkippedTokens) - yylex.(*Parser).setFreeFloating(catch, token.Stmts, $9.SkippedTokens) } ; catch_name_list: name { - $$ = []ast.Vertex{$1} + $$ = &ast.StmtCatch{ + Types: []ast.Vertex{$1}, + } } | catch_name_list '|' name { - switch n := lastNode($1).(type) { - case *ast.NameName: n.ListSeparatorTkn = $2 - case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 - case *ast.NameRelative: n.ListSeparatorTkn = $2 - } - $$ = append($1, $3) + $1.(*ast.StmtCatch).SeparatorTkns = append($1.(*ast.StmtCatch).SeparatorTkns, $2) + $1.(*ast.StmtCatch).Types = append($1.(*ast.StmtCatch).Types, $3) + + $$ = $1 } ; @@ -1163,15 +1169,15 @@ finally_statement: } | T_FINALLY '{' inner_statement_list '}' { - $$ = &ast.StmtFinally{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Finally, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $4.SkippedTokens) + $$ = &ast.StmtFinally{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + FinallyTkn: $1, + OpenCurlyBracketTkn: $2, + Stmts: $3, + CloseCurlyBracketTkn: $4, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index b16ad15..0479183 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -203,9 +203,15 @@ func (n *StmtCase) Accept(v NodeVisitor) { // StmtCatch node type StmtCatch struct { Node - Types []Vertex - Var Vertex - Stmts []Vertex + CatchTkn *token.Token + OpenParenthesisTkn *token.Token + Types []Vertex + SeparatorTkns []*token.Token + Var Vertex + CloseParenthesisTkn *token.Token + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtCatch) Accept(v NodeVisitor) { @@ -415,7 +421,10 @@ func (n *StmtExpression) Accept(v NodeVisitor) { // StmtFinally node type StmtFinally struct { Node - Stmts []Vertex + FinallyTkn *token.Token + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtFinally) Accept(v NodeVisitor) { @@ -776,9 +785,12 @@ func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { // StmtTry node type StmtTry struct { Node - Stmts []Vertex - Catches []Vertex - Finally Vertex + TryTkn *token.Token + OpenCurlyBracket *token.Token + Stmts []Vertex + CloseCurlyBracket *token.Token + Catches []Vertex + Finally Vertex } func (n *StmtTry) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index fc28ce8..83a3410 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -239,3 +239,24 @@ func (v *FilterTokens) StmtDeclare(n *ast.StmtDeclare) { func (v *FilterTokens) StmtNop(n *ast.StmtNop) { n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtTry(n *ast.StmtTry) { + n.TryTkn = nil + n.OpenCurlyBracket = nil + n.CloseCurlyBracket = nil +} + +func (v *FilterTokens) StmtCatch(n *ast.StmtCatch) { + n.CatchTkn = nil + n.OpenParenthesisTkn = nil + n.SeparatorTkns = nil + n.CloseParenthesisTkn = nil + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil +} + +func (v *FilterTokens) StmtFinally(n *ast.StmtFinally) { + n.FinallyTkn = nil + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 07318bd..fab6102 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2009,26 +2009,15 @@ func (p *Printer) printStmtCase(n *ast.StmtCase) { p.printNodes(n.Stmts) } -func (p *Printer) printStmtCatch(n ast.Vertex) { - nn := n.(*ast.StmtCatch) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("catch")) - p.printFreeFloating(nn, token.Catch) - p.write([]byte("(")) - - p.joinPrintRefactored("|", nn.Types) - - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte(")")) - p.printFreeFloating(nn, token.Cond) - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtCatch(n *ast.StmtCatch) { + p.printToken(n.CatchTkn, "catch") + p.printToken(n.OpenParenthesisTkn, "(") + p.printSeparatedList(n.Types, n.SeparatorTkns, "|") + p.Print(n.Var) + p.printToken(n.CloseParenthesisTkn, ")") + p.printToken(n.OpenCurlyBracketTkn, "{") + p.printNodes(n.Stmts) + p.printToken(n.CloseCurlyBracketTkn, "}") } func (p *Printer) printStmtClassMethod(n ast.Vertex) { @@ -2296,18 +2285,11 @@ func (p *Printer) printStmtExpression(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtFinally(n ast.Vertex) { - nn := n.(*ast.StmtFinally) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("finally")) - p.printFreeFloating(nn, token.Finally) - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtFinally(n *ast.StmtFinally) { + p.printToken(n.FinallyTkn, "finally") + p.printToken(n.OpenCurlyBracketTkn, "{") + p.printNodes(n.Stmts) + p.printToken(n.CloseCurlyBracketTkn, "}") } func (p *Printer) printStmtFor(n *ast.StmtFor) { @@ -2828,26 +2810,19 @@ func (p *Printer) printStmtTrait(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtTry(n ast.Vertex) { - nn := n.(*ast.StmtTry) - p.printFreeFloating(nn, token.Start) +func (p *Printer) printStmtTry(n *ast.StmtTry) { + p.printToken(n.TryTkn, "try") + p.printToken(n.OpenCurlyBracket, "{") + p.printNodes(n.Stmts) + p.printToken(n.CloseCurlyBracket, "}") - p.write([]byte("try")) - p.printFreeFloating(nn, token.Try) - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - if nn.Catches != nil { - p.printNodes(nn.Catches) + if n.Catches != nil { + p.printNodes(n.Catches) } - if nn.Finally != nil { - p.Print(nn.Finally) + if n.Finally != nil { + p.Print(n.Finally) } - - p.printFreeFloating(nn, token.End) } func (p *Printer) printStmtUnset(n *ast.StmtUnset) { From 48aaa7cc474dddfc530a83acca44032b0ccf1daa Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Thu, 17 Sep 2020 16:37:34 +0300 Subject: [PATCH 066/140] [refactoring] update ast structure of "Throw" node --- internal/php5/php5.go | 913 ++++++++++++++------------- internal/php5/php5.y | 17 +- internal/php7/php7.go | 1005 +++++++++++++++--------------- internal/php7/php7.y | 17 +- pkg/ast/node.go | 4 +- pkg/ast/visitor/filter_tokens.go | 5 + pkg/printer/printer.go | 22 +- 7 files changed, 987 insertions(+), 996 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 6527ca8..f819223 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6165 +// line internal/php5/php5.y:6164 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3311,19 +3311,18 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1169 { - yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtThrow{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ThrowTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1181 +// line internal/php5/php5.y:1180 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3340,13 +3339,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1199 +// line internal/php5/php5.y:1198 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1203 +// line internal/php5/php5.y:1202 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3374,13 +3373,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1232 +// line internal/php5/php5.y:1231 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1236 +// line internal/php5/php5.y:1235 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3394,31 +3393,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1251 +// line internal/php5/php5.y:1250 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1255 +// line internal/php5/php5.y:1254 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1262 +// line internal/php5/php5.y:1261 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1266 +// line internal/php5/php5.y:1265 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1273 +// line internal/php5/php5.y:1272 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3445,7 +3444,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1301 +// line internal/php5/php5.y:1300 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3453,7 +3452,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1307 +// line internal/php5/php5.y:1306 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3462,49 +3461,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1317 +// line internal/php5/php5.y:1316 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1324 +// line internal/php5/php5.y:1323 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1330 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1338 +// line internal/php5/php5.y:1337 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1342 +// line internal/php5/php5.y:1341 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1349 +// line internal/php5/php5.y:1348 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1353 +// line internal/php5/php5.y:1352 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1360 +// line internal/php5/php5.y:1359 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3528,7 +3527,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1385 +// line internal/php5/php5.y:1384 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3556,7 +3555,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1411 +// line internal/php5/php5.y:1410 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3573,7 +3572,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1430 +// line internal/php5/php5.y:1429 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3585,7 +3584,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1440 +// line internal/php5/php5.y:1439 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3600,7 +3599,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1453 +// line internal/php5/php5.y:1452 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3612,7 +3611,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1463 +// line internal/php5/php5.y:1462 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3627,13 +3626,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1479 +// line internal/php5/php5.y:1478 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1483 +// line internal/php5/php5.y:1482 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3645,19 +3644,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1496 +// line internal/php5/php5.y:1495 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1503 +// line internal/php5/php5.y:1502 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1507 +// line internal/php5/php5.y:1506 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3669,13 +3668,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1520 +// line internal/php5/php5.y:1519 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1524 +// line internal/php5/php5.y:1523 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3687,13 +3686,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1537 +// line internal/php5/php5.y:1536 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1541 +// line internal/php5/php5.y:1540 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3707,13 +3706,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1553 +// line internal/php5/php5.y:1552 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1557 +// line internal/php5/php5.y:1556 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3722,13 +3721,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1567 +// line internal/php5/php5.y:1566 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1571 +// line internal/php5/php5.y:1570 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3740,7 +3739,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1581 +// line internal/php5/php5.y:1580 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3754,7 +3753,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1596 +// line internal/php5/php5.y:1595 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3765,7 +3764,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1605 +// line internal/php5/php5.y:1604 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3785,7 +3784,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1626 +// line internal/php5/php5.y:1625 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3796,7 +3795,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1635 +// line internal/php5/php5.y:1634 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3816,7 +3815,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1657 +// line internal/php5/php5.y:1656 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3827,7 +3826,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1666 +// line internal/php5/php5.y:1665 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3847,7 +3846,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1688 +// line internal/php5/php5.y:1687 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3871,7 +3870,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1710 +// line internal/php5/php5.y:1709 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3897,7 +3896,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1738 +// line internal/php5/php5.y:1737 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3910,7 +3909,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1749 +// line internal/php5/php5.y:1748 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3924,7 +3923,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1761 +// line internal/php5/php5.y:1760 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3939,7 +3938,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1774 +// line internal/php5/php5.y:1773 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3955,13 +3954,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1792 +// line internal/php5/php5.y:1791 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1796 +// line internal/php5/php5.y:1795 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3975,7 +3974,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1808 +// line internal/php5/php5.y:1807 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -3988,19 +3987,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1823 +// line internal/php5/php5.y:1822 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1827 +// line internal/php5/php5.y:1826 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1835 +// line internal/php5/php5.y:1834 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4011,7 +4010,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1844 +// line internal/php5/php5.y:1843 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4031,13 +4030,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1867 +// line internal/php5/php5.y:1866 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1871 +// line internal/php5/php5.y:1870 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4052,13 +4051,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1888 +// line internal/php5/php5.y:1887 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1892 +// line internal/php5/php5.y:1891 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4080,13 +4079,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1916 +// line internal/php5/php5.y:1915 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1920 +// line internal/php5/php5.y:1919 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4098,13 +4097,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1934 +// line internal/php5/php5.y:1933 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1938 +// line internal/php5/php5.y:1937 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4123,25 +4122,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1959 +// line internal/php5/php5.y:1958 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1963 +// line internal/php5/php5.y:1962 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1970 +// line internal/php5/php5.y:1969 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1974 +// line internal/php5/php5.y:1973 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4150,7 +4149,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1984 +// line internal/php5/php5.y:1983 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4186,7 +4185,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2018 +// line internal/php5/php5.y:2017 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4223,13 +4222,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2057 +// line internal/php5/php5.y:2056 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2061 +// line internal/php5/php5.y:2060 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4241,7 +4240,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2071 +// line internal/php5/php5.y:2070 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4253,13 +4252,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2081 +// line internal/php5/php5.y:2080 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2089 +// line internal/php5/php5.y:2088 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4272,7 +4271,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2100 +// line internal/php5/php5.y:2099 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4285,7 +4284,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2111 +// line internal/php5/php5.y:2110 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4300,13 +4299,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2128 +// line internal/php5/php5.y:2127 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2132 +// line internal/php5/php5.y:2131 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4315,7 +4314,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2142 +// line internal/php5/php5.y:2141 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4327,7 +4326,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2152 +// line internal/php5/php5.y:2151 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4339,7 +4338,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2162 +// line internal/php5/php5.y:2161 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4351,7 +4350,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2172 +// line internal/php5/php5.y:2171 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4363,7 +4362,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2185 +// line internal/php5/php5.y:2184 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4372,7 +4371,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2192 +// line internal/php5/php5.y:2191 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4380,7 +4379,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2202 +// line internal/php5/php5.y:2201 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4394,7 +4393,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2214 +// line internal/php5/php5.y:2213 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4406,7 +4405,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2224 +// line internal/php5/php5.y:2223 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4420,7 +4419,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2240 +// line internal/php5/php5.y:2239 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4444,7 +4443,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2262 +// line internal/php5/php5.y:2261 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4470,7 +4469,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2286 +// line internal/php5/php5.y:2285 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4495,7 +4494,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2309 +// line internal/php5/php5.y:2308 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4522,19 +4521,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2338 +// line internal/php5/php5.y:2337 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2342 +// line internal/php5/php5.y:2341 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2350 +// line internal/php5/php5.y:2349 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4548,7 +4547,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2362 +// line internal/php5/php5.y:2361 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4556,13 +4555,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2368 +// line internal/php5/php5.y:2367 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2372 +// line internal/php5/php5.y:2371 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4593,7 +4592,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2404 +// line internal/php5/php5.y:2403 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4605,13 +4604,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2417 +// line internal/php5/php5.y:2416 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2421 +// line internal/php5/php5.y:2420 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4625,7 +4624,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2433 +// line internal/php5/php5.y:2432 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4636,7 +4635,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2442 +// line internal/php5/php5.y:2441 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4648,31 +4647,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2455 +// line internal/php5/php5.y:2454 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2459 +// line internal/php5/php5.y:2458 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2466 +// line internal/php5/php5.y:2465 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2470 +// line internal/php5/php5.y:2469 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2477 +// line internal/php5/php5.y:2476 { yyVAL.node = yyDollar[1].node @@ -4682,7 +4681,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2485 +// line internal/php5/php5.y:2484 { yyVAL.node = yyDollar[1].node @@ -4692,7 +4691,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2496 +// line internal/php5/php5.y:2495 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4705,13 +4704,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2510 +// line internal/php5/php5.y:2509 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2514 +// line internal/php5/php5.y:2513 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4720,7 +4719,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2524 +// line internal/php5/php5.y:2523 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4734,13 +4733,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2536 +// line internal/php5/php5.y:2535 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2543 +// line internal/php5/php5.y:2542 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4756,7 +4755,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2560 +// line internal/php5/php5.y:2559 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4772,7 +4771,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2574 +// line internal/php5/php5.y:2573 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4785,19 +4784,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2588 +// line internal/php5/php5.y:2587 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2592 +// line internal/php5/php5.y:2591 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2599 +// line internal/php5/php5.y:2598 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4808,7 +4807,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2608 +// line internal/php5/php5.y:2607 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4821,13 +4820,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2622 +// line internal/php5/php5.y:2621 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2626 +// line internal/php5/php5.y:2625 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4840,31 +4839,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2640 +// line internal/php5/php5.y:2639 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2644 +// line internal/php5/php5.y:2643 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2651 +// line internal/php5/php5.y:2650 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2655 +// line internal/php5/php5.y:2654 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2662 +// line internal/php5/php5.y:2661 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4876,7 +4875,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2672 +// line internal/php5/php5.y:2671 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4888,7 +4887,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2682 +// line internal/php5/php5.y:2681 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4900,7 +4899,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2692 +// line internal/php5/php5.y:2691 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4912,7 +4911,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2702 +// line internal/php5/php5.y:2701 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4924,7 +4923,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2711 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4936,7 +4935,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2725 +// line internal/php5/php5.y:2724 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4954,7 +4953,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2741 +// line internal/php5/php5.y:2740 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4973,7 +4972,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2758 +// line internal/php5/php5.y:2757 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4990,7 +4989,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2773 +// line internal/php5/php5.y:2772 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5008,7 +5007,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2792 +// line internal/php5/php5.y:2791 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5033,7 +5032,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2815 +// line internal/php5/php5.y:2814 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5061,7 +5060,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2844 +// line internal/php5/php5.y:2843 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5070,7 +5069,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2851 +// line internal/php5/php5.y:2850 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5078,19 +5077,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2861 +// line internal/php5/php5.y:2860 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2865 +// line internal/php5/php5.y:2864 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2872 +// line internal/php5/php5.y:2871 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5099,25 +5098,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2879 +// line internal/php5/php5.y:2878 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2886 +// line internal/php5/php5.y:2885 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2890 +// line internal/php5/php5.y:2889 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2897 +// line internal/php5/php5.y:2896 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5131,7 +5130,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2909 +// line internal/php5/php5.y:2908 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5145,37 +5144,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2924 +// line internal/php5/php5.y:2923 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2928 +// line internal/php5/php5.y:2927 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2932 +// line internal/php5/php5.y:2931 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2939 +// line internal/php5/php5.y:2938 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2943 +// line internal/php5/php5.y:2942 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2950 +// line internal/php5/php5.y:2949 { if yyDollar[3].node != nil { @@ -5191,7 +5190,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2967 +// line internal/php5/php5.y:2966 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5208,7 +5207,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2982 +// line internal/php5/php5.y:2981 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5221,7 +5220,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2993 +// line internal/php5/php5.y:2992 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5235,7 +5234,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3005 +// line internal/php5/php5.y:3004 { var _new *ast.ExprNew @@ -5262,7 +5261,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3030 +// line internal/php5/php5.y:3029 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5274,7 +5273,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3040 +// line internal/php5/php5.y:3039 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5286,7 +5285,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3050 +// line internal/php5/php5.y:3049 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5299,7 +5298,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3061 +// line internal/php5/php5.y:3060 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5312,7 +5311,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3072 +// line internal/php5/php5.y:3071 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5325,7 +5324,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3082 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5338,7 +5337,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3094 +// line internal/php5/php5.y:3093 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5351,7 +5350,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3105 +// line internal/php5/php5.y:3104 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5364,7 +5363,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3116 +// line internal/php5/php5.y:3115 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5377,7 +5376,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3127 +// line internal/php5/php5.y:3126 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5390,7 +5389,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3138 +// line internal/php5/php5.y:3137 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5403,7 +5402,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3149 +// line internal/php5/php5.y:3148 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5416,7 +5415,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3160 +// line internal/php5/php5.y:3159 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5429,7 +5428,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3171 +// line internal/php5/php5.y:3170 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5442,7 +5441,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3182 +// line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5454,7 +5453,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3191 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5467,7 +5466,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3203 +// line internal/php5/php5.y:3202 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5479,7 +5478,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3213 +// line internal/php5/php5.y:3212 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5492,7 +5491,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3224 +// line internal/php5/php5.y:3223 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5505,7 +5504,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3235 +// line internal/php5/php5.y:3234 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5518,7 +5517,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3246 +// line internal/php5/php5.y:3245 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5531,7 +5530,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3257 +// line internal/php5/php5.y:3256 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5544,7 +5543,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3268 +// line internal/php5/php5.y:3267 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5557,7 +5556,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3279 +// line internal/php5/php5.y:3278 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5570,7 +5569,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3290 +// line internal/php5/php5.y:3289 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5583,7 +5582,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3301 +// line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5595,7 +5594,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3311 +// line internal/php5/php5.y:3310 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5608,7 +5607,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3322 +// line internal/php5/php5.y:3321 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5620,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3333 +// line internal/php5/php5.y:3332 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5633,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3344 +// line internal/php5/php5.y:3343 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5646,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3355 +// line internal/php5/php5.y:3354 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5659,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3366 +// line internal/php5/php5.y:3365 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5672,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3377 +// line internal/php5/php5.y:3376 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5685,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3388 +// line internal/php5/php5.y:3387 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5699,7 +5698,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3399 +// line internal/php5/php5.y:3398 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5711,7 +5710,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3409 +// line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5723,7 +5722,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3419 +// line internal/php5/php5.y:3418 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5735,7 +5734,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3429 +// line internal/php5/php5.y:3428 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5747,7 +5746,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3439 +// line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5759,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3450 +// line internal/php5/php5.y:3449 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5772,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3461 +// line internal/php5/php5.y:3460 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5786,7 +5785,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3472 +// line internal/php5/php5.y:3471 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5800,7 +5799,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3484 +// line internal/php5/php5.y:3483 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5812,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3495 +// line internal/php5/php5.y:3494 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5825,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3506 +// line internal/php5/php5.y:3505 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5838,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3517 +// line internal/php5/php5.y:3516 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5851,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3528 +// line internal/php5/php5.y:3527 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,19 +5864,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3539 +// line internal/php5/php5.y:3538 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3543 +// line internal/php5/php5.y:3542 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3547 +// line internal/php5/php5.y:3546 { yyVAL.node = yyDollar[2].node @@ -5909,7 +5908,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3577 +// line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5923,7 +5922,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3589 +// line internal/php5/php5.y:3588 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5937,13 +5936,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3601 +// line internal/php5/php5.y:3600 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3605 +// line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5956,7 +5955,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3616 +// line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5969,7 +5968,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3627 +// line internal/php5/php5.y:3626 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5982,7 +5981,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3638 +// line internal/php5/php5.y:3637 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5995,7 +5994,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3649 +// line internal/php5/php5.y:3648 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6008,7 +6007,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3660 +// line internal/php5/php5.y:3659 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6021,7 +6020,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3671 +// line internal/php5/php5.y:3670 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6034,7 +6033,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3682 +// line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6054,7 +6053,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3700 +// line internal/php5/php5.y:3699 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6066,25 +6065,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3710 +// line internal/php5/php5.y:3709 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3714 +// line internal/php5/php5.y:3713 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3718 +// line internal/php5/php5.y:3717 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3722 +// line internal/php5/php5.y:3721 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6096,7 +6095,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3732 +// line internal/php5/php5.y:3731 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6108,7 +6107,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3742 +// line internal/php5/php5.y:3741 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6120,7 +6119,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3752 +// line internal/php5/php5.y:3751 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6147,7 +6146,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3776 +// line internal/php5/php5.y:3775 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6175,7 +6174,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3804 +// line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6187,7 +6186,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3814 +// line internal/php5/php5.y:3813 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6199,7 +6198,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3824 +// line internal/php5/php5.y:3823 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6212,7 +6211,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3835 +// line internal/php5/php5.y:3834 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6225,7 +6224,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3849 +// line internal/php5/php5.y:3848 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6238,7 +6237,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3860 +// line internal/php5/php5.y:3859 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6251,7 +6250,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3871 +// line internal/php5/php5.y:3870 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6267,7 +6266,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3885 +// line internal/php5/php5.y:3884 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6280,7 +6279,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3899 +// line internal/php5/php5.y:3898 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6294,7 +6293,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3911 +// line internal/php5/php5.y:3910 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6307,19 +6306,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3925 +// line internal/php5/php5.y:3924 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3932 +// line internal/php5/php5.y:3931 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3936 +// line internal/php5/php5.y:3935 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6333,7 +6332,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3951 +// line internal/php5/php5.y:3950 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6349,7 +6348,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3965 +// line internal/php5/php5.y:3964 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6368,7 +6367,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3981 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6383,7 +6382,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3995 +// line internal/php5/php5.y:3994 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6401,7 +6400,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4014 +// line internal/php5/php5.y:4013 { name := &ast.NameName{ Node: ast.Node{ @@ -6416,7 +6415,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4027 +// line internal/php5/php5.y:4026 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6433,7 +6432,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4042 +// line internal/php5/php5.y:4041 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6449,7 +6448,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4056 +// line internal/php5/php5.y:4055 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6462,7 +6461,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4067 +// line internal/php5/php5.y:4066 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6475,7 +6474,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4078 +// line internal/php5/php5.y:4077 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6488,7 +6487,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4089 +// line internal/php5/php5.y:4088 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6501,7 +6500,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4100 +// line internal/php5/php5.y:4099 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6513,7 +6512,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4113 +// line internal/php5/php5.y:4112 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6525,7 +6524,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4123 +// line internal/php5/php5.y:4122 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6536,7 +6535,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4132 +// line internal/php5/php5.y:4131 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6549,7 +6548,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4143 +// line internal/php5/php5.y:4142 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6561,7 +6560,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4156 +// line internal/php5/php5.y:4155 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6572,7 +6571,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4165 +// line internal/php5/php5.y:4164 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6585,7 +6584,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4176 +// line internal/php5/php5.y:4175 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6597,19 +6596,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4189 +// line internal/php5/php5.y:4188 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4193 +// line internal/php5/php5.y:4192 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4200 +// line internal/php5/php5.y:4199 { yyVAL.node = yyDollar[1].node @@ -6650,25 +6649,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4239 +// line internal/php5/php5.y:4238 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4247 +// line internal/php5/php5.y:4246 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4251 +// line internal/php5/php5.y:4250 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4259 +// line internal/php5/php5.y:4258 { yyVAL.list = yyDollar[2].list @@ -6677,13 +6676,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4269 +// line internal/php5/php5.y:4268 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4273 +// line internal/php5/php5.y:4272 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6699,19 +6698,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4287 +// line internal/php5/php5.y:4286 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4294 +// line internal/php5/php5.y:4293 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4298 +// line internal/php5/php5.y:4297 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6721,25 +6720,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4306 +// line internal/php5/php5.y:4305 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4313 +// line internal/php5/php5.y:4312 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4317 +// line internal/php5/php5.y:4316 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4324 +// line internal/php5/php5.y:4323 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6751,7 +6750,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4334 +// line internal/php5/php5.y:4333 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6763,7 +6762,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4344 +// line internal/php5/php5.y:4343 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6775,7 +6774,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4354 +// line internal/php5/php5.y:4353 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6787,7 +6786,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4364 +// line internal/php5/php5.y:4363 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6799,7 +6798,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4374 +// line internal/php5/php5.y:4373 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6811,7 +6810,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4384 +// line internal/php5/php5.y:4383 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6823,7 +6822,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4394 +// line internal/php5/php5.y:4393 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6835,7 +6834,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4404 +// line internal/php5/php5.y:4403 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6847,7 +6846,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4414 +// line internal/php5/php5.y:4413 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6859,7 +6858,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4424 +// line internal/php5/php5.y:4423 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6873,7 +6872,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4436 +// line internal/php5/php5.y:4435 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6885,7 +6884,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4449 +// line internal/php5/php5.y:4448 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6901,25 +6900,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4466 +// line internal/php5/php5.y:4465 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4473 +// line internal/php5/php5.y:4472 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4477 +// line internal/php5/php5.y:4476 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4480 { name := &ast.NameName{ Node: ast.Node{ @@ -6934,7 +6933,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4494 +// line internal/php5/php5.y:4493 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6951,7 +6950,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4509 +// line internal/php5/php5.y:4508 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6967,7 +6966,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4523 +// line internal/php5/php5.y:4522 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6981,7 +6980,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4534 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6994,13 +6993,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4546 +// line internal/php5/php5.y:4545 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4550 +// line internal/php5/php5.y:4549 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7012,13 +7011,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4560 +// line internal/php5/php5.y:4559 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4567 +// line internal/php5/php5.y:4566 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7031,7 +7030,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4578 +// line internal/php5/php5.y:4577 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7044,7 +7043,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4589 +// line internal/php5/php5.y:4588 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7057,7 +7056,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4600 +// line internal/php5/php5.y:4599 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7070,7 +7069,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4611 +// line internal/php5/php5.y:4610 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7083,7 +7082,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4621 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7096,7 +7095,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4633 +// line internal/php5/php5.y:4632 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7109,7 +7108,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4644 +// line internal/php5/php5.y:4643 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7121,7 +7120,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4654 +// line internal/php5/php5.y:4653 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7133,7 +7132,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4664 +// line internal/php5/php5.y:4663 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7146,7 +7145,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4675 +// line internal/php5/php5.y:4674 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7159,7 +7158,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4686 +// line internal/php5/php5.y:4685 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7172,7 +7171,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4697 +// line internal/php5/php5.y:4696 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7185,7 +7184,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4708 +// line internal/php5/php5.y:4707 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7198,7 +7197,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4719 +// line internal/php5/php5.y:4718 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7211,7 +7210,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4730 +// line internal/php5/php5.y:4729 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7224,7 +7223,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4741 +// line internal/php5/php5.y:4740 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7237,7 +7236,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4752 +// line internal/php5/php5.y:4751 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7250,7 +7249,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4763 +// line internal/php5/php5.y:4762 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7263,7 +7262,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4774 +// line internal/php5/php5.y:4773 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7276,7 +7275,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4785 +// line internal/php5/php5.y:4784 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7289,7 +7288,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4796 +// line internal/php5/php5.y:4795 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7302,7 +7301,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4806 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7315,7 +7314,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4818 +// line internal/php5/php5.y:4817 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7329,7 +7328,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4830 +// line internal/php5/php5.y:4829 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7342,7 +7341,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4841 +// line internal/php5/php5.y:4840 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7355,7 +7354,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4852 +// line internal/php5/php5.y:4851 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7368,7 +7367,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4863 +// line internal/php5/php5.y:4862 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7381,7 +7380,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4874 +// line internal/php5/php5.y:4873 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7395,7 +7394,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4886 +// line internal/php5/php5.y:4885 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7409,7 +7408,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4898 +// line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7421,7 +7420,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4908 +// line internal/php5/php5.y:4907 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7433,7 +7432,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4918 +// line internal/php5/php5.y:4917 { yyVAL.node = yyDollar[2].node @@ -7443,13 +7442,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4929 +// line internal/php5/php5.y:4928 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4933 +// line internal/php5/php5.y:4932 { name := &ast.NameName{ Node: ast.Node{ @@ -7464,7 +7463,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4946 +// line internal/php5/php5.y:4945 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7481,7 +7480,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4961 +// line internal/php5/php5.y:4960 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7497,7 +7496,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4978 +// line internal/php5/php5.y:4977 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7511,25 +7510,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4990 +// line internal/php5/php5.y:4989 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4994 +// line internal/php5/php5.y:4993 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4998 +// line internal/php5/php5.y:4997 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5002 +// line internal/php5/php5.y:5001 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7541,7 +7540,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5012 +// line internal/php5/php5.y:5011 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7553,7 +7552,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5022 +// line internal/php5/php5.y:5021 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7565,13 +7564,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5035 +// line internal/php5/php5.y:5034 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5039 +// line internal/php5/php5.y:5038 { yyVAL.list = yyDollar[1].list @@ -7582,19 +7581,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5051 +// line internal/php5/php5.y:5050 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5055 +// line internal/php5/php5.y:5054 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5062 +// line internal/php5/php5.y:5061 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7609,7 +7608,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5075 +// line internal/php5/php5.y:5074 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7623,7 +7622,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5087 +// line internal/php5/php5.y:5086 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7637,7 +7636,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5099 +// line internal/php5/php5.y:5098 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7650,19 +7649,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5113 +// line internal/php5/php5.y:5112 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5117 +// line internal/php5/php5.y:5116 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5124 +// line internal/php5/php5.y:5123 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7679,7 +7678,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5139 +// line internal/php5/php5.y:5138 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7696,25 +7695,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5158 +// line internal/php5/php5.y:5157 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5166 +// line internal/php5/php5.y:5165 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5173 +// line internal/php5/php5.y:5172 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5180 +// line internal/php5/php5.y:5179 { yyVAL.node = yyDollar[1].node @@ -7772,25 +7771,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5236 +// line internal/php5/php5.y:5235 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5243 +// line internal/php5/php5.y:5242 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5247 +// line internal/php5/php5.y:5246 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5255 +// line internal/php5/php5.y:5254 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7804,7 +7803,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5270 +// line internal/php5/php5.y:5269 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7818,7 +7817,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5282 +// line internal/php5/php5.y:5281 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7832,7 +7831,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5297 +// line internal/php5/php5.y:5296 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7841,31 +7840,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5307 +// line internal/php5/php5.y:5306 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5311 +// line internal/php5/php5.y:5310 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5315 +// line internal/php5/php5.y:5314 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5322 +// line internal/php5/php5.y:5321 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5326 +// line internal/php5/php5.y:5325 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7877,7 +7876,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5339 +// line internal/php5/php5.y:5338 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7890,7 +7889,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5350 +// line internal/php5/php5.y:5349 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7903,13 +7902,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5364 +// line internal/php5/php5.y:5363 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5371 +// line internal/php5/php5.y:5370 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7922,7 +7921,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5382 +// line internal/php5/php5.y:5381 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7935,31 +7934,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5396 +// line internal/php5/php5.y:5395 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5400 +// line internal/php5/php5.y:5399 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5404 +// line internal/php5/php5.y:5403 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5412 +// line internal/php5/php5.y:5411 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5416 +// line internal/php5/php5.y:5415 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7971,13 +7970,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5426 +// line internal/php5/php5.y:5425 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5433 +// line internal/php5/php5.y:5432 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7990,7 +7989,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5444 +// line internal/php5/php5.y:5443 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8003,13 +8002,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5455 +// line internal/php5/php5.y:5454 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5463 +// line internal/php5/php5.y:5462 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8023,7 +8022,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5475 +// line internal/php5/php5.y:5474 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8037,25 +8036,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5490 +// line internal/php5/php5.y:5489 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5494 +// line internal/php5/php5.y:5493 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5502 +// line internal/php5/php5.y:5501 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5506 +// line internal/php5/php5.y:5505 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8065,7 +8064,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5517 +// line internal/php5/php5.y:5516 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8079,7 +8078,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5529 +// line internal/php5/php5.y:5528 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8093,7 +8092,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5541 +// line internal/php5/php5.y:5540 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8103,7 +8102,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5552 +// line internal/php5/php5.y:5551 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8115,7 +8114,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5562 +// line internal/php5/php5.y:5561 { yyVAL.node = yyDollar[2].node @@ -8128,7 +8127,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5576 +// line internal/php5/php5.y:5575 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8141,7 +8140,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5587 +// line internal/php5/php5.y:5586 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8158,7 +8157,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5605 +// line internal/php5/php5.y:5604 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8171,7 +8170,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5616 +// line internal/php5/php5.y:5615 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8181,7 +8180,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5628 +// line internal/php5/php5.y:5627 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8193,7 +8192,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5638 +// line internal/php5/php5.y:5637 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8209,19 +8208,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5652 +// line internal/php5/php5.y:5651 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5660 +// line internal/php5/php5.y:5659 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5663 { yyVAL.list = yyDollar[1].list @@ -8236,7 +8235,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5680 +// line internal/php5/php5.y:5679 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8251,7 +8250,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5693 +// line internal/php5/php5.y:5692 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8265,7 +8264,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5705 +// line internal/php5/php5.y:5704 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8279,7 +8278,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5717 +// line internal/php5/php5.y:5716 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8292,7 +8291,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5728 +// line internal/php5/php5.y:5727 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8310,7 +8309,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5744 +// line internal/php5/php5.y:5743 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8326,7 +8325,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5758 +// line internal/php5/php5.y:5757 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8343,7 +8342,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5773 +// line internal/php5/php5.y:5772 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8358,13 +8357,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5789 +// line internal/php5/php5.y:5788 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5793 +// line internal/php5/php5.y:5792 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8377,13 +8376,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5804 +// line internal/php5/php5.y:5803 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5808 +// line internal/php5/php5.y:5807 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8396,7 +8395,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5822 +// line internal/php5/php5.y:5821 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8410,7 +8409,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5834 +// line internal/php5/php5.y:5833 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8427,7 +8426,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5849 +// line internal/php5/php5.y:5848 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8446,7 +8445,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5866 +// line internal/php5/php5.y:5865 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8461,7 +8460,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5879 +// line internal/php5/php5.y:5878 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8478,7 +8477,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5894 +// line internal/php5/php5.y:5893 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8497,7 +8496,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5911 +// line internal/php5/php5.y:5910 { yyVAL.node = yyDollar[2].node @@ -8507,7 +8506,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5922 +// line internal/php5/php5.y:5921 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8519,7 +8518,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5932 +// line internal/php5/php5.y:5931 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8536,7 +8535,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5947 +// line internal/php5/php5.y:5946 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8550,7 +8549,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5962 +// line internal/php5/php5.y:5961 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8564,7 +8563,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5974 +// line internal/php5/php5.y:5973 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8586,7 +8585,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5994 +// line internal/php5/php5.y:5993 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8608,7 +8607,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6014 +// line internal/php5/php5.y:6013 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8620,7 +8619,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6024 +// line internal/php5/php5.y:6023 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8632,7 +8631,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6034 +// line internal/php5/php5.y:6033 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8654,7 +8653,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6054 +// line internal/php5/php5.y:6053 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8666,7 +8665,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6064 +// line internal/php5/php5.y:6063 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8678,13 +8677,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6077 +// line internal/php5/php5.y:6076 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6081 +// line internal/php5/php5.y:6080 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8693,19 +8692,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6091 +// line internal/php5/php5.y:6090 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6095 +// line internal/php5/php5.y:6094 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6102 +// line internal/php5/php5.y:6101 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8721,7 +8720,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6116 +// line internal/php5/php5.y:6115 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8737,7 +8736,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6133 +// line internal/php5/php5.y:6132 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8753,7 +8752,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6150 +// line internal/php5/php5.y:6149 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 21c19ac..cdd7bc5 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1167,15 +1167,14 @@ unticked_statement: } | T_THROW expr ';' { - $$ = &ast.StmtThrow{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtThrow{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ThrowTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_GOTO T_STRING ';' { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 5c94ada..f784230 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4801 +// line internal/php7/php7.y:4800 // line yacctab:1 var yyExca = [...]int{ @@ -2113,7 +2113,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 +// line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2124,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:328 +// line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:335 +// line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2599,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:346 +// line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:353 +// line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2619,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:365 +// line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2632,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:379 +// line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2643,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:388 +// line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:399 +// line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2668,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 +// line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:433 +// line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:437 +// line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2719,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:449 +// line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:465 +// line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2757,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:483 +// line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2771,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:495 +// line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2783,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:505 +// line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2796,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:516 +// line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2809,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:527 +// line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2823,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:539 +// line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2837,7 +2837,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:554 +// line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2849,7 +2849,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:564 +// line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -2861,7 +2861,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:577 +// line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2885,7 +2885,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:599 +// line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2908,7 +2908,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:623 +// line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2930,7 +2930,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:643 +// line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2953,19 +2953,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:667 +// line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:671 +// line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:678 +// line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2973,13 +2973,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:684 +// line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:691 +// line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2987,13 +2987,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:697 +// line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:704 +// line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3001,19 +3001,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:710 +// line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:717 +// line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:721 +// line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3023,7 +3023,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:732 +// line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3039,7 +3039,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:746 +// line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3062,13 +3062,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:770 +// line internal/php7/php7.y:770 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:774 +// line internal/php7/php7.y:774 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3078,7 +3078,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:785 +// line internal/php7/php7.y:785 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3087,7 +3087,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:792 +// line internal/php7/php7.y:792 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3095,7 +3095,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:801 +// line internal/php7/php7.y:801 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3108,50 +3108,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:812 +// line internal/php7/php7.y:812 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:819 +// line internal/php7/php7.y:819 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:824 +// line internal/php7/php7.y:824 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:828 +// line internal/php7/php7.y:828 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:832 +// line internal/php7/php7.y:832 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:836 +// line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:840 +// line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:844 +// line internal/php7/php7.y:844 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3165,7 +3165,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:858 +// line internal/php7/php7.y:858 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3178,19 +3178,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:869 +// line internal/php7/php7.y:869 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:873 +// line internal/php7/php7.y:873 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:877 +// line internal/php7/php7.y:877 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3202,7 +3202,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:887 +// line internal/php7/php7.y:887 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3219,7 +3219,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:902 +// line internal/php7/php7.y:902 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3235,7 +3235,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:916 +// line internal/php7/php7.y:916 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3247,7 +3247,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:926 +// line internal/php7/php7.y:926 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3260,7 +3260,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:937 +// line internal/php7/php7.y:937 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3273,7 +3273,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:948 +// line internal/php7/php7.y:948 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3286,7 +3286,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:959 +// line internal/php7/php7.y:959 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3296,7 +3296,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:967 +// line internal/php7/php7.y:967 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3306,7 +3306,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:975 +// line internal/php7/php7.y:975 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3316,7 +3316,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:983 +// line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3328,7 +3328,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:993 +// line internal/php7/php7.y:993 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3342,7 +3342,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1005 +// line internal/php7/php7.y:1005 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3355,7 +3355,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1016 +// line internal/php7/php7.y:1016 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3369,7 +3369,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1028 +// line internal/php7/php7.y:1028 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3385,7 +3385,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1042 +// line internal/php7/php7.y:1042 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3398,7 +3398,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1053 +// line internal/php7/php7.y:1053 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3409,7 +3409,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1062 +// line internal/php7/php7.y:1062 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3428,21 +3428,20 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1079 +// line internal/php7/php7.y:1079 { - yyVAL.node = &ast.StmtThrow{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtThrow{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + ThrowTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + SemiColonTkn: yyDollar[3].token, + } } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1091 +// line internal/php7/php7.y:1090 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtGoto{ast.Node{}, label} @@ -3459,7 +3458,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1106 +// line internal/php7/php7.y:1105 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ast.Node{}, label} @@ -3474,13 +3473,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1121 +// line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1125 +// line internal/php7/php7.y:1124 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3506,7 +3505,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1151 +// line internal/php7/php7.y:1150 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3514,7 +3513,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1157 +// line internal/php7/php7.y:1156 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3523,13 +3522,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1167 +// line internal/php7/php7.y:1166 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1171 +// line internal/php7/php7.y:1170 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3543,7 +3542,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1186 +// line internal/php7/php7.y:1185 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3551,7 +3550,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1192 +// line internal/php7/php7.y:1191 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3560,13 +3559,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1202 +// line internal/php7/php7.y:1201 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1209 +// line internal/php7/php7.y:1208 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3596,31 +3595,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1240 +// line internal/php7/php7.y:1239 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1244 +// line internal/php7/php7.y:1243 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1251 +// line internal/php7/php7.y:1250 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1255 +// line internal/php7/php7.y:1254 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1262 +// line internal/php7/php7.y:1261 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3638,7 +3637,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1278 +// line internal/php7/php7.y:1277 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3655,19 +3654,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1296 +// line internal/php7/php7.y:1295 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1300 +// line internal/php7/php7.y:1299 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1307 +// line internal/php7/php7.y:1306 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3679,7 +3678,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1317 +// line internal/php7/php7.y:1316 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3691,7 +3690,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1330 +// line internal/php7/php7.y:1329 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3708,7 +3707,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1348 +// line internal/php7/php7.y:1347 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3725,13 +3724,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1366 +// line internal/php7/php7.y:1365 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1370 +// line internal/php7/php7.y:1369 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3743,13 +3742,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1383 +// line internal/php7/php7.y:1382 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1387 +// line internal/php7/php7.y:1386 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3761,13 +3760,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1400 +// line internal/php7/php7.y:1399 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1404 +// line internal/php7/php7.y:1403 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3779,13 +3778,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1417 +// line internal/php7/php7.y:1416 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1421 +// line internal/php7/php7.y:1420 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3797,7 +3796,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1431 +// line internal/php7/php7.y:1430 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3811,7 +3810,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1443 +// line internal/php7/php7.y:1442 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3824,7 +3823,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1457 +// line internal/php7/php7.y:1456 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3835,7 +3834,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1466 +// line internal/php7/php7.y:1465 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3855,7 +3854,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1487 +// line internal/php7/php7.y:1486 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3866,7 +3865,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1496 +// line internal/php7/php7.y:1495 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3886,7 +3885,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1517 +// line internal/php7/php7.y:1516 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3897,7 +3896,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1526 +// line internal/php7/php7.y:1525 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3917,7 +3916,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1547 +// line internal/php7/php7.y:1546 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3930,7 +3929,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1558 +// line internal/php7/php7.y:1557 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3944,7 +3943,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1570 +// line internal/php7/php7.y:1569 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3959,7 +3958,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1583 +// line internal/php7/php7.y:1582 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3975,13 +3974,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1600 +// line internal/php7/php7.y:1599 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1604 +// line internal/php7/php7.y:1603 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3995,7 +3994,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1616 +// line internal/php7/php7.y:1615 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4008,19 +4007,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1630 +// line internal/php7/php7.y:1629 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1634 +// line internal/php7/php7.y:1633 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1641 +// line internal/php7/php7.y:1640 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4031,7 +4030,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1650 +// line internal/php7/php7.y:1649 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4051,7 +4050,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1671 +// line internal/php7/php7.y:1670 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4066,7 +4065,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1684 +// line internal/php7/php7.y:1683 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4085,13 +4084,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1704 +// line internal/php7/php7.y:1703 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1708 +// line internal/php7/php7.y:1707 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4107,7 +4106,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1725 +// line internal/php7/php7.y:1724 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4129,7 +4128,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1745 +// line internal/php7/php7.y:1744 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4153,7 +4152,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1770 +// line internal/php7/php7.y:1769 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4163,7 +4162,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1778 +// line internal/php7/php7.y:1777 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4187,25 +4186,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1803 +// line internal/php7/php7.y:1802 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1807 +// line internal/php7/php7.y:1806 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1814 +// line internal/php7/php7.y:1813 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1818 +// line internal/php7/php7.y:1817 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4214,7 +4213,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1828 +// line internal/php7/php7.y:1827 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4250,7 +4249,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1862 +// line internal/php7/php7.y:1861 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4287,25 +4286,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1900 +// line internal/php7/php7.y:1899 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1904 +// line internal/php7/php7.y:1903 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1911 +// line internal/php7/php7.y:1910 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1915 +// line internal/php7/php7.y:1914 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4317,7 +4316,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1928 +// line internal/php7/php7.y:1927 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4329,7 +4328,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1938 +// line internal/php7/php7.y:1937 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4341,19 +4340,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1948 +// line internal/php7/php7.y:1947 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1955 +// line internal/php7/php7.y:1954 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1959 +// line internal/php7/php7.y:1958 { yyVAL.node = yyDollar[2].node @@ -4362,7 +4361,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1969 +// line internal/php7/php7.y:1968 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4375,7 +4374,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1980 +// line internal/php7/php7.y:1979 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4392,13 +4391,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1998 +// line internal/php7/php7.y:1997 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2002 +// line internal/php7/php7.y:2001 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4407,7 +4406,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2012 +// line internal/php7/php7.y:2011 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4419,7 +4418,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2022 +// line internal/php7/php7.y:2021 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4431,7 +4430,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2035 +// line internal/php7/php7.y:2034 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4440,7 +4439,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2042 +// line internal/php7/php7.y:2041 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4448,13 +4447,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2051 +// line internal/php7/php7.y:2050 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2058 +// line internal/php7/php7.y:2057 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4463,7 +4462,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2065 +// line internal/php7/php7.y:2064 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4471,7 +4470,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2074 +// line internal/php7/php7.y:2073 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4492,7 +4491,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2093 +// line internal/php7/php7.y:2092 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4514,19 +4513,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2116 +// line internal/php7/php7.y:2115 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2120 +// line internal/php7/php7.y:2119 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2127 +// line internal/php7/php7.y:2126 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4540,7 +4539,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2139 +// line internal/php7/php7.y:2138 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4554,7 +4553,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2151 +// line internal/php7/php7.y:2150 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4566,7 +4565,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2161 +// line internal/php7/php7.y:2160 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4597,13 +4596,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2193 +// line internal/php7/php7.y:2192 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2197 +// line internal/php7/php7.y:2196 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4617,7 +4616,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2209 +// line internal/php7/php7.y:2208 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4628,7 +4627,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2218 +// line internal/php7/php7.y:2217 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4640,7 +4639,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2228 +// line internal/php7/php7.y:2227 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4652,19 +4651,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2241 +// line internal/php7/php7.y:2240 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2245 +// line internal/php7/php7.y:2244 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2252 +// line internal/php7/php7.y:2251 { yyVAL.node = yyDollar[1].node @@ -4674,7 +4673,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2260 +// line internal/php7/php7.y:2259 { yyVAL.node = yyDollar[1].node @@ -4684,7 +4683,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2271 +// line internal/php7/php7.y:2270 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4697,7 +4696,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2285 +// line internal/php7/php7.y:2284 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4713,7 +4712,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2299 +// line internal/php7/php7.y:2298 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4729,7 +4728,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2313 +// line internal/php7/php7.y:2312 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4745,7 +4744,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2327 +// line internal/php7/php7.y:2326 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4758,7 +4757,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2341 +// line internal/php7/php7.y:2340 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4772,13 +4771,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2353 +// line internal/php7/php7.y:2352 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2360 +// line internal/php7/php7.y:2359 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4794,7 +4793,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2377 +// line internal/php7/php7.y:2376 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4805,7 +4804,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2386 +// line internal/php7/php7.y:2385 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4818,13 +4817,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2400 +// line internal/php7/php7.y:2399 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2404 +// line internal/php7/php7.y:2403 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4837,31 +4836,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2418 +// line internal/php7/php7.y:2417 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2422 +// line internal/php7/php7.y:2421 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2429 +// line internal/php7/php7.y:2428 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2433 +// line internal/php7/php7.y:2432 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2440 +// line internal/php7/php7.y:2439 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4873,7 +4872,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2450 +// line internal/php7/php7.y:2449 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4885,7 +4884,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2460 +// line internal/php7/php7.y:2459 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4897,7 +4896,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2470 +// line internal/php7/php7.y:2469 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4909,7 +4908,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2480 +// line internal/php7/php7.y:2479 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4921,7 +4920,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2490 +// line internal/php7/php7.y:2489 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4933,7 +4932,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2503 +// line internal/php7/php7.y:2502 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4942,13 +4941,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2510 +// line internal/php7/php7.y:2509 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2517 +// line internal/php7/php7.y:2516 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4964,7 +4963,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2531 +// line internal/php7/php7.y:2530 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4981,7 +4980,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2549 +// line internal/php7/php7.y:2548 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -4989,13 +4988,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2555 +// line internal/php7/php7.y:2554 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2562 +// line internal/php7/php7.y:2561 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5015,7 +5014,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2583 +// line internal/php7/php7.y:2582 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5035,7 +5034,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2604 +// line internal/php7/php7.y:2603 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5044,7 +5043,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2611 +// line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5052,25 +5051,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2620 +// line internal/php7/php7.y:2619 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2627 +// line internal/php7/php7.y:2626 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2631 +// line internal/php7/php7.y:2630 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2638 +// line internal/php7/php7.y:2637 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5079,13 +5078,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2645 +// line internal/php7/php7.y:2644 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2652 +// line internal/php7/php7.y:2651 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5103,7 +5102,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2671 +// line internal/php7/php7.y:2670 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5118,7 +5117,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2684 +// line internal/php7/php7.y:2683 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5130,7 +5129,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2697 +// line internal/php7/php7.y:2696 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5147,7 +5146,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2712 +// line internal/php7/php7.y:2711 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5163,7 +5162,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2726 +// line internal/php7/php7.y:2725 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5176,7 +5175,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2736 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5190,7 +5189,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2749 +// line internal/php7/php7.y:2748 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5202,7 +5201,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2759 +// line internal/php7/php7.y:2758 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5215,7 +5214,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2770 +// line internal/php7/php7.y:2769 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5228,7 +5227,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2781 +// line internal/php7/php7.y:2780 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5241,7 +5240,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2792 +// line internal/php7/php7.y:2791 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5254,7 +5253,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2803 +// line internal/php7/php7.y:2802 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5267,7 +5266,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2814 +// line internal/php7/php7.y:2813 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5280,7 +5279,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2825 +// line internal/php7/php7.y:2824 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5293,7 +5292,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2836 +// line internal/php7/php7.y:2835 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5306,7 +5305,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2847 +// line internal/php7/php7.y:2846 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5319,7 +5318,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2858 +// line internal/php7/php7.y:2857 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5331,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2869 +// line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5344,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2880 +// line internal/php7/php7.y:2879 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5357,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2891 +// line internal/php7/php7.y:2890 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5370,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2902 +// line internal/php7/php7.y:2901 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5384,7 +5383,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2913 +// line internal/php7/php7.y:2912 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5396,7 +5395,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2923 +// line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5409,7 +5408,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2934 +// line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5421,7 +5420,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2944 +// line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5434,7 +5433,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2955 +// line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5447,7 +5446,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2966 +// line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5460,7 +5459,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2977 +// line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5473,7 +5472,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2988 +// line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5486,7 +5485,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2999 +// line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5499,7 +5498,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3010 +// line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5512,7 +5511,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3021 +// line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5525,7 +5524,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3032 +// line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5536,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3042 +// line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5549,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3053 +// line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5562,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3064 +// line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5575,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3075 +// line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5588,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3086 +// line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5601,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3097 +// line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5614,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3108 +// line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5627,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3119 +// line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5640,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3130 +// line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5653,7 +5652,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3140 +// line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5665,7 +5664,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3150 +// line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5677,7 +5676,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3160 +// line internal/php7/php7.y:3159 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5689,7 +5688,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3170 +// line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5701,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3181 +// line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5714,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3192 +// line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5727,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3203 +// line internal/php7/php7.y:3202 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5742,7 +5741,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3215 +// line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5755,7 +5754,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3226 +// line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5767,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3237 +// line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5781,7 +5780,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3248 +// line internal/php7/php7.y:3247 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5793,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3259 +// line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5806,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3270 +// line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5819,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3281 +// line internal/php7/php7.y:3280 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5837,13 +5836,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3296 +// line internal/php7/php7.y:3295 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3300 +// line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5857,7 +5856,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3312 +// line internal/php7/php7.y:3311 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5871,7 +5870,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3324 +// line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,13 +5883,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3335 +// line internal/php7/php7.y:3334 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3339 +// line internal/php7/php7.y:3338 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5903,7 +5902,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3350 +// line internal/php7/php7.y:3349 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5916,7 +5915,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3361 +// line internal/php7/php7.y:3360 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5929,7 +5928,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3372 +// line internal/php7/php7.y:3371 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5942,7 +5941,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3383 +// line internal/php7/php7.y:3382 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5955,7 +5954,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3394 +// line internal/php7/php7.y:3393 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5968,7 +5967,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3405 +// line internal/php7/php7.y:3404 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -5981,7 +5980,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3416 +// line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6001,7 +6000,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3434 +// line internal/php7/php7.y:3433 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6013,13 +6012,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3444 +// line internal/php7/php7.y:3443 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3448 +// line internal/php7/php7.y:3447 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6031,7 +6030,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3458 +// line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6043,7 +6042,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3468 +// line internal/php7/php7.y:3467 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6055,7 +6054,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3478 +// line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6067,7 +6066,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3488 +// line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6080,7 +6079,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3499 +// line internal/php7/php7.y:3498 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6092,13 +6091,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3509 +// line internal/php7/php7.y:3508 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3513 +// line internal/php7/php7.y:3512 { yyVAL.node = yyDollar[2].node @@ -6119,7 +6118,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3534 +// line internal/php7/php7.y:3533 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6150,7 +6149,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3561 +// line internal/php7/php7.y:3560 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6176,25 +6175,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3591 +// line internal/php7/php7.y:3590 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3595 +// line internal/php7/php7.y:3594 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3602 +// line internal/php7/php7.y:3601 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3606 +// line internal/php7/php7.y:3605 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6208,7 +6207,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3621 +// line internal/php7/php7.y:3620 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6217,13 +6216,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3628 +// line internal/php7/php7.y:3627 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3635 +// line internal/php7/php7.y:3634 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6237,7 +6236,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3647 +// line internal/php7/php7.y:3646 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6254,7 +6253,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3665 +// line internal/php7/php7.y:3664 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6266,7 +6265,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3675 +// line internal/php7/php7.y:3674 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6279,7 +6278,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3686 +// line internal/php7/php7.y:3685 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6292,7 +6291,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3697 +// line internal/php7/php7.y:3696 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6304,7 +6303,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3710 +// line internal/php7/php7.y:3709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6316,31 +6315,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3720 +// line internal/php7/php7.y:3719 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3727 +// line internal/php7/php7.y:3726 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3731 +// line internal/php7/php7.y:3730 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3738 +// line internal/php7/php7.y:3737 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3742 +// line internal/php7/php7.y:3741 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6357,13 +6356,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3760 +// line internal/php7/php7.y:3759 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3764 +// line internal/php7/php7.y:3763 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6373,25 +6372,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3772 +// line internal/php7/php7.y:3771 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3779 +// line internal/php7/php7.y:3778 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3783 +// line internal/php7/php7.y:3782 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3790 +// line internal/php7/php7.y:3789 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6405,7 +6404,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3802 +// line internal/php7/php7.y:3801 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6418,7 +6417,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3813 +// line internal/php7/php7.y:3812 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6430,7 +6429,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3826 +// line internal/php7/php7.y:3825 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6442,7 +6441,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3836 +// line internal/php7/php7.y:3835 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6454,7 +6453,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3846 +// line internal/php7/php7.y:3845 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6466,7 +6465,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3856 +// line internal/php7/php7.y:3855 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6478,7 +6477,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3866 +// line internal/php7/php7.y:3865 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6490,7 +6489,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3876 +// line internal/php7/php7.y:3875 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6502,7 +6501,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3886 +// line internal/php7/php7.y:3885 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6514,7 +6513,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3896 +// line internal/php7/php7.y:3895 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6526,7 +6525,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3906 +// line internal/php7/php7.y:3905 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6538,7 +6537,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3916 +// line internal/php7/php7.y:3915 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6550,7 +6549,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3926 +// line internal/php7/php7.y:3925 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6564,7 +6563,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3938 +// line internal/php7/php7.y:3937 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6576,7 +6575,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3948 +// line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6588,7 +6587,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3958 +// line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6600,19 +6599,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3968 +// line internal/php7/php7.y:3967 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3972 +// line internal/php7/php7.y:3971 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3979 +// line internal/php7/php7.y:3978 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6624,7 +6623,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3989 +// line internal/php7/php7.y:3988 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6640,7 +6639,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4003 +// line internal/php7/php7.y:4002 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6656,43 +6655,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4020 +// line internal/php7/php7.y:4019 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4024 +// line internal/php7/php7.y:4023 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4031 +// line internal/php7/php7.y:4030 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4035 +// line internal/php7/php7.y:4034 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4042 +// line internal/php7/php7.y:4041 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4049 +// line internal/php7/php7.y:4048 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4053 +// line internal/php7/php7.y:4052 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6709,19 +6708,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4068 +// line internal/php7/php7.y:4067 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4075 +// line internal/php7/php7.y:4074 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4079 +// line internal/php7/php7.y:4078 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6738,19 +6737,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4094 +// line internal/php7/php7.y:4093 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4101 +// line internal/php7/php7.y:4100 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4105 +// line internal/php7/php7.y:4104 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6763,7 +6762,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4116 +// line internal/php7/php7.y:4115 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6776,7 +6775,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4127 +// line internal/php7/php7.y:4126 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6789,7 +6788,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4138 +// line internal/php7/php7.y:4137 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6802,25 +6801,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4149 +// line internal/php7/php7.y:4148 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4156 +// line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4160 +// line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4164 +// line internal/php7/php7.y:4163 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6833,7 +6832,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4178 +// line internal/php7/php7.y:4177 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6847,7 +6846,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4190 +// line internal/php7/php7.y:4189 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6861,7 +6860,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4202 +// line internal/php7/php7.y:4201 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6873,7 +6872,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4215 +// line internal/php7/php7.y:4214 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6886,7 +6885,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4226 +// line internal/php7/php7.y:4225 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6899,13 +6898,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4240 +// line internal/php7/php7.y:4239 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4243 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6918,7 +6917,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4255 +// line internal/php7/php7.y:4254 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6931,7 +6930,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4266 +// line internal/php7/php7.y:4265 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6944,7 +6943,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4277 +// line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6957,7 +6956,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4288 +// line internal/php7/php7.y:4287 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6970,7 +6969,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4302 +// line internal/php7/php7.y:4301 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6982,7 +6981,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4312 +// line internal/php7/php7.y:4311 { yyVAL.node = yyDollar[2].node @@ -6992,13 +6991,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4320 +// line internal/php7/php7.y:4319 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4327 +// line internal/php7/php7.y:4326 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7010,7 +7009,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4337 +// line internal/php7/php7.y:4336 { yyVAL.node = yyDollar[2].node @@ -7020,31 +7019,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4345 +// line internal/php7/php7.y:4344 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4352 +// line internal/php7/php7.y:4351 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4359 +// line internal/php7/php7.y:4358 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4363 +// line internal/php7/php7.y:4362 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4370 +// line internal/php7/php7.y:4369 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7057,7 +7056,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4380 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7067,7 +7066,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4392 +// line internal/php7/php7.y:4391 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7080,7 +7079,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4403 +// line internal/php7/php7.y:4402 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7092,7 +7091,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4413 +// line internal/php7/php7.y:4412 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7108,7 +7107,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4427 +// line internal/php7/php7.y:4426 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7122,7 +7121,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4439 +// line internal/php7/php7.y:4438 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7134,7 +7133,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4449 +// line internal/php7/php7.y:4448 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7153,7 +7152,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4466 +// line internal/php7/php7.y:4465 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7170,13 +7169,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4484 +// line internal/php7/php7.y:4483 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4488 +// line internal/php7/php7.y:4487 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7189,13 +7188,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4499 +// line internal/php7/php7.y:4498 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4503 +// line internal/php7/php7.y:4502 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7208,7 +7207,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4517 +// line internal/php7/php7.y:4516 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7222,7 +7221,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4529 +// line internal/php7/php7.y:4528 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7239,7 +7238,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4544 +// line internal/php7/php7.y:4543 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7258,7 +7257,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4561 +// line internal/php7/php7.y:4560 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7273,7 +7272,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4574 +// line internal/php7/php7.y:4573 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7290,7 +7289,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4589 +// line internal/php7/php7.y:4588 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7309,7 +7308,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4606 +// line internal/php7/php7.y:4605 { yyVAL.node = yyDollar[2].node @@ -7319,7 +7318,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4617 +// line internal/php7/php7.y:4616 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7331,7 +7330,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4627 +// line internal/php7/php7.y:4626 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7348,7 +7347,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4642 +// line internal/php7/php7.y:4641 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7374,7 +7373,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4666 +// line internal/php7/php7.y:4665 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7388,7 +7387,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4681 +// line internal/php7/php7.y:4680 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7406,7 +7405,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4697 +// line internal/php7/php7.y:4696 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7428,7 +7427,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4717 +// line internal/php7/php7.y:4716 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7440,7 +7439,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4727 +// line internal/php7/php7.y:4726 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7452,7 +7451,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4737 +// line internal/php7/php7.y:4736 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7474,7 +7473,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4757 +// line internal/php7/php7.y:4756 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7486,7 +7485,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4767 +// line internal/php7/php7.y:4766 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7498,13 +7497,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4780 +// line internal/php7/php7.y:4779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4784 +// line internal/php7/php7.y:4783 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7513,7 +7512,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4794 +// line internal/php7/php7.y:4793 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index a679f14..920dc76 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1077,15 +1077,14 @@ statement: } | T_THROW expr ';' { - $$ = &ast.StmtThrow{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtThrow{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + ThrowTkn: $1, + Expr: $2, + SemiColonTkn: $3, + } } | T_GOTO T_STRING ';' { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 0479183..e459723 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -709,7 +709,9 @@ func (n *StmtSwitch) Accept(v NodeVisitor) { // StmtThrow node type StmtThrow struct { Node - Expr Vertex + ThrowTkn *token.Token + Expr Vertex + SemiColonTkn *token.Token } func (n *StmtThrow) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 83a3410..62f7700 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -260,3 +260,8 @@ func (v *FilterTokens) StmtFinally(n *ast.StmtFinally) { n.OpenCurlyBracketTkn = nil n.CloseCurlyBracketTkn = nil } + +func (v *FilterTokens) StmtThrow(n *ast.StmtThrow) { + n.ThrowTkn = nil + n.SemiColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index fab6102..0ade2a0 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2674,23 +2674,11 @@ func (p *Printer) printStmtAltSwitch(n *ast.StmtSwitch) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtThrow(n ast.Vertex) { - nn := n.(*ast.StmtThrow) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("throw")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtThrow(n *ast.StmtThrow) { + p.printToken(n.ThrowTkn, "throw") + p.bufStart = " " + p.Print(n.Expr) + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtTraitAdaptationList(n ast.Vertex) { From 94aa9cf8291096235f7a92d11981fa59271e44c3 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Thu, 17 Sep 2020 16:49:54 +0300 Subject: [PATCH 067/140] [refactoring] update ast structure of "Goto" and "Label" nodes --- internal/php5/php5.go | 976 ++++++++++++++++--------------- internal/php5/php5.y | 26 +- internal/php7/php7.go | 706 +++++++++++----------- internal/php7/php7.y | 26 +- pkg/ast/node.go | 5 +- pkg/ast/visitor/filter_tokens.go | 9 + pkg/printer/printer.go | 35 +- 7 files changed, 904 insertions(+), 879 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index f819223..2e1bb38 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6164 +// line internal/php5/php5.y:6172 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2922,19 +2922,23 @@ yydefault: // line internal/php5/php5.y:830 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - yyVAL.node = &ast.StmtLabel{ast.Node{}, label} + yyVAL.node = &ast.StmtLabel{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + LabelName: label, + ColonTkn: yyDollar[2].token, + } // save position label.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[1].token.SkippedTokens) } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:846 +// line internal/php5/php5.y:850 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2947,7 +2951,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:857 +// line internal/php5/php5.y:861 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2971,7 +2975,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:879 +// line internal/php5/php5.y:883 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -2997,7 +3001,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:903 +// line internal/php5/php5.y:907 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3009,7 +3013,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:913 +// line internal/php5/php5.y:917 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3026,7 +3030,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:928 +// line internal/php5/php5.y:932 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3042,7 +3046,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:942 +// line internal/php5/php5.y:946 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3054,7 +3058,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:952 +// line internal/php5/php5.y:956 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3066,7 +3070,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:962 +// line internal/php5/php5.y:966 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3079,7 +3083,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:973 +// line internal/php5/php5.y:977 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3091,7 +3095,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:983 +// line internal/php5/php5.y:987 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3104,7 +3108,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:994 +// line internal/php5/php5.y:998 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3116,7 +3120,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1004 +// line internal/php5/php5.y:1008 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3129,7 +3133,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1015 +// line internal/php5/php5.y:1019 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3142,7 +3146,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1026 +// line internal/php5/php5.y:1030 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3156,7 +3160,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1038 +// line internal/php5/php5.y:1042 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3167,7 +3171,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1047 +// line internal/php5/php5.y:1051 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3178,7 +3182,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1056 +// line internal/php5/php5.y:1060 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3188,7 +3192,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1064 +// line internal/php5/php5.y:1068 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3200,7 +3204,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1074 +// line internal/php5/php5.y:1078 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3214,7 +3218,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1086 +// line internal/php5/php5.y:1090 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3226,7 +3230,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1096 +// line internal/php5/php5.y:1100 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3250,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1114 +// line internal/php5/php5.y:1118 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3266,7 +3270,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1132 +// line internal/php5/php5.y:1136 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3279,7 +3283,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1143 +// line internal/php5/php5.y:1147 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3290,7 +3294,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1152 +// line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3309,7 +3313,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1169 +// line internal/php5/php5.y:1173 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3322,30 +3326,34 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1180 +// line internal/php5/php5.y:1184 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.StmtGoto{ast.Node{}, label} + + yyVAL.node = &ast.StmtGoto{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + GotoTkn: yyDollar[1].token, + Label: label, + SemiColonTkn: yyDollar[3].token, + } // save position label.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1198 +// line internal/php5/php5.y:1206 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1202 +// line internal/php5/php5.y:1210 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3373,13 +3381,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1231 +// line internal/php5/php5.y:1239 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1235 +// line internal/php5/php5.y:1243 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3393,31 +3401,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1250 +// line internal/php5/php5.y:1258 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1254 +// line internal/php5/php5.y:1262 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1261 +// line internal/php5/php5.y:1269 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1265 +// line internal/php5/php5.y:1273 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1272 +// line internal/php5/php5.y:1280 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3444,7 +3452,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1300 +// line internal/php5/php5.y:1308 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3452,7 +3460,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1306 +// line internal/php5/php5.y:1314 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3461,49 +3469,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1316 +// line internal/php5/php5.y:1324 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1323 +// line internal/php5/php5.y:1331 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1330 +// line internal/php5/php5.y:1338 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1337 +// line internal/php5/php5.y:1345 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1341 +// line internal/php5/php5.y:1349 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1348 +// line internal/php5/php5.y:1356 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1352 +// line internal/php5/php5.y:1360 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1359 +// line internal/php5/php5.y:1367 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} @@ -3527,7 +3535,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1384 +// line internal/php5/php5.y:1392 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} switch n := yyDollar[1].node.(type) { @@ -3555,7 +3563,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1410 +// line internal/php5/php5.y:1418 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} @@ -3572,7 +3580,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1429 +// line internal/php5/php5.y:1437 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3584,7 +3592,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1439 +// line internal/php5/php5.y:1447 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3599,7 +3607,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1452 +// line internal/php5/php5.y:1460 { yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} @@ -3611,7 +3619,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1462 +// line internal/php5/php5.y:1470 { classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} @@ -3626,13 +3634,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1478 +// line internal/php5/php5.y:1486 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1482 +// line internal/php5/php5.y:1490 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3644,19 +3652,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1495 +// line internal/php5/php5.y:1503 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1502 +// line internal/php5/php5.y:1510 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1506 +// line internal/php5/php5.y:1514 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3668,13 +3676,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1519 +// line internal/php5/php5.y:1527 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1523 +// line internal/php5/php5.y:1531 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3686,13 +3694,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1536 +// line internal/php5/php5.y:1544 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1540 +// line internal/php5/php5.y:1548 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3706,13 +3714,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1552 +// line internal/php5/php5.y:1560 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1556 +// line internal/php5/php5.y:1564 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3721,13 +3729,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1566 +// line internal/php5/php5.y:1574 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1570 +// line internal/php5/php5.y:1578 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3739,7 +3747,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1580 +// line internal/php5/php5.y:1588 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3753,7 +3761,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1595 +// line internal/php5/php5.y:1603 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3764,7 +3772,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1604 +// line internal/php5/php5.y:1612 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3784,7 +3792,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1625 +// line internal/php5/php5.y:1633 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3795,7 +3803,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1634 +// line internal/php5/php5.y:1642 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3815,7 +3823,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1656 +// line internal/php5/php5.y:1664 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3826,7 +3834,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1665 +// line internal/php5/php5.y:1673 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3846,7 +3854,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1687 +// line internal/php5/php5.y:1695 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3870,7 +3878,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1709 +// line internal/php5/php5.y:1717 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3896,7 +3904,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1737 +// line internal/php5/php5.y:1745 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3909,7 +3917,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1748 +// line internal/php5/php5.y:1756 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3923,7 +3931,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1760 +// line internal/php5/php5.y:1768 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3938,7 +3946,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1773 +// line internal/php5/php5.y:1781 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3954,13 +3962,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1791 +// line internal/php5/php5.y:1799 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1795 +// line internal/php5/php5.y:1803 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3974,7 +3982,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1807 +// line internal/php5/php5.y:1815 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -3987,19 +3995,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1822 +// line internal/php5/php5.y:1830 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1826 +// line internal/php5/php5.y:1834 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1834 +// line internal/php5/php5.y:1842 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4010,7 +4018,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1843 +// line internal/php5/php5.y:1851 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4030,13 +4038,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1866 +// line internal/php5/php5.y:1874 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1870 +// line internal/php5/php5.y:1878 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4051,13 +4059,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1887 +// line internal/php5/php5.y:1895 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1891 +// line internal/php5/php5.y:1899 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4079,13 +4087,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1915 +// line internal/php5/php5.y:1923 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1919 +// line internal/php5/php5.y:1927 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4097,13 +4105,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1933 +// line internal/php5/php5.y:1941 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1937 +// line internal/php5/php5.y:1945 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4122,25 +4130,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1958 +// line internal/php5/php5.y:1966 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1962 +// line internal/php5/php5.y:1970 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1969 +// line internal/php5/php5.y:1977 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1973 +// line internal/php5/php5.y:1981 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4149,7 +4157,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1983 +// line internal/php5/php5.y:1991 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4185,7 +4193,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2017 +// line internal/php5/php5.y:2025 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4222,13 +4230,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2056 +// line internal/php5/php5.y:2064 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2060 +// line internal/php5/php5.y:2068 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4240,7 +4248,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2070 +// line internal/php5/php5.y:2078 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4252,13 +4260,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2080 +// line internal/php5/php5.y:2088 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2088 +// line internal/php5/php5.y:2096 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4271,7 +4279,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2099 +// line internal/php5/php5.y:2107 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4284,7 +4292,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2110 +// line internal/php5/php5.y:2118 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4299,13 +4307,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2127 +// line internal/php5/php5.y:2135 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2131 +// line internal/php5/php5.y:2139 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4314,7 +4322,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2141 +// line internal/php5/php5.y:2149 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4326,7 +4334,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2151 +// line internal/php5/php5.y:2159 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4338,7 +4346,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2161 +// line internal/php5/php5.y:2169 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4350,7 +4358,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2171 +// line internal/php5/php5.y:2179 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4362,7 +4370,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2184 +// line internal/php5/php5.y:2192 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4371,7 +4379,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2191 +// line internal/php5/php5.y:2199 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4379,7 +4387,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2201 +// line internal/php5/php5.y:2209 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -4393,7 +4401,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2213 +// line internal/php5/php5.y:2221 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4405,7 +4413,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2223 +// line internal/php5/php5.y:2231 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4419,7 +4427,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2239 +// line internal/php5/php5.y:2247 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4443,7 +4451,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2261 +// line internal/php5/php5.y:2269 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4469,7 +4477,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2285 +// line internal/php5/php5.y:2293 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4494,7 +4502,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2308 +// line internal/php5/php5.y:2316 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4521,19 +4529,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2337 +// line internal/php5/php5.y:2345 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2341 +// line internal/php5/php5.y:2349 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2349 +// line internal/php5/php5.y:2357 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4547,7 +4555,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2361 +// line internal/php5/php5.y:2369 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4555,13 +4563,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2367 +// line internal/php5/php5.y:2375 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2371 +// line internal/php5/php5.y:2379 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} @@ -4592,7 +4600,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2403 +// line internal/php5/php5.y:2411 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4604,13 +4612,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2416 +// line internal/php5/php5.y:2424 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2420 +// line internal/php5/php5.y:2428 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4624,7 +4632,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2432 +// line internal/php5/php5.y:2440 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4635,7 +4643,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2441 +// line internal/php5/php5.y:2449 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4647,31 +4655,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2454 +// line internal/php5/php5.y:2462 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2458 +// line internal/php5/php5.y:2466 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2465 +// line internal/php5/php5.y:2473 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2469 +// line internal/php5/php5.y:2477 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2476 +// line internal/php5/php5.y:2484 { yyVAL.node = yyDollar[1].node @@ -4681,7 +4689,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2484 +// line internal/php5/php5.y:2492 { yyVAL.node = yyDollar[1].node @@ -4691,7 +4699,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2495 +// line internal/php5/php5.y:2503 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4704,13 +4712,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2509 +// line internal/php5/php5.y:2517 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2513 +// line internal/php5/php5.y:2521 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4719,7 +4727,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2523 +// line internal/php5/php5.y:2531 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4733,13 +4741,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2535 +// line internal/php5/php5.y:2543 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2542 +// line internal/php5/php5.y:2550 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4755,7 +4763,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2559 +// line internal/php5/php5.y:2567 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4771,7 +4779,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2573 +// line internal/php5/php5.y:2581 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4784,19 +4792,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2587 +// line internal/php5/php5.y:2595 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2591 +// line internal/php5/php5.y:2599 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2598 +// line internal/php5/php5.y:2606 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4807,7 +4815,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2607 +// line internal/php5/php5.y:2615 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4820,13 +4828,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2621 +// line internal/php5/php5.y:2629 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2625 +// line internal/php5/php5.y:2633 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4839,31 +4847,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2639 +// line internal/php5/php5.y:2647 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2643 +// line internal/php5/php5.y:2651 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2650 +// line internal/php5/php5.y:2658 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2654 +// line internal/php5/php5.y:2662 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2661 +// line internal/php5/php5.y:2669 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4875,7 +4883,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2671 +// line internal/php5/php5.y:2679 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4887,7 +4895,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2681 +// line internal/php5/php5.y:2689 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4899,7 +4907,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2691 +// line internal/php5/php5.y:2699 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4911,7 +4919,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2701 +// line internal/php5/php5.y:2709 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4923,7 +4931,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2711 +// line internal/php5/php5.y:2719 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4935,7 +4943,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2724 +// line internal/php5/php5.y:2732 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4953,7 +4961,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2740 +// line internal/php5/php5.y:2748 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4972,7 +4980,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2757 +// line internal/php5/php5.y:2765 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4989,7 +4997,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2772 +// line internal/php5/php5.y:2780 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -5007,7 +5015,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2791 +// line internal/php5/php5.y:2799 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5032,7 +5040,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2814 +// line internal/php5/php5.y:2822 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5060,7 +5068,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2843 +// line internal/php5/php5.y:2851 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5069,7 +5077,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2850 +// line internal/php5/php5.y:2858 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5077,19 +5085,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2860 +// line internal/php5/php5.y:2868 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2864 +// line internal/php5/php5.y:2872 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2871 +// line internal/php5/php5.y:2879 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5098,25 +5106,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2878 +// line internal/php5/php5.y:2886 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2885 +// line internal/php5/php5.y:2893 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2889 +// line internal/php5/php5.y:2897 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2896 +// line internal/php5/php5.y:2904 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5130,7 +5138,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2908 +// line internal/php5/php5.y:2916 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5144,37 +5152,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2923 +// line internal/php5/php5.y:2931 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2927 +// line internal/php5/php5.y:2935 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2931 +// line internal/php5/php5.y:2939 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2938 +// line internal/php5/php5.y:2946 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2942 +// line internal/php5/php5.y:2950 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2949 +// line internal/php5/php5.y:2957 { if yyDollar[3].node != nil { @@ -5190,7 +5198,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2966 +// line internal/php5/php5.y:2974 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5207,7 +5215,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2981 +// line internal/php5/php5.y:2989 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5220,7 +5228,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2992 +// line internal/php5/php5.y:3000 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5234,7 +5242,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3004 +// line internal/php5/php5.y:3012 { var _new *ast.ExprNew @@ -5261,7 +5269,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3029 +// line internal/php5/php5.y:3037 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5273,7 +5281,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3039 +// line internal/php5/php5.y:3047 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5285,7 +5293,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3049 +// line internal/php5/php5.y:3057 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5298,7 +5306,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3060 +// line internal/php5/php5.y:3068 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5311,7 +5319,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3071 +// line internal/php5/php5.y:3079 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5324,7 +5332,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3082 +// line internal/php5/php5.y:3090 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5337,7 +5345,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3093 +// line internal/php5/php5.y:3101 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5350,7 +5358,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3104 +// line internal/php5/php5.y:3112 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5363,7 +5371,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3115 +// line internal/php5/php5.y:3123 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5376,7 +5384,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3126 +// line internal/php5/php5.y:3134 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5389,7 +5397,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3137 +// line internal/php5/php5.y:3145 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5402,7 +5410,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3148 +// line internal/php5/php5.y:3156 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5415,7 +5423,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3159 +// line internal/php5/php5.y:3167 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5428,7 +5436,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3170 +// line internal/php5/php5.y:3178 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5441,7 +5449,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3181 +// line internal/php5/php5.y:3189 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5453,7 +5461,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3191 +// line internal/php5/php5.y:3199 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5466,7 +5474,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3202 +// line internal/php5/php5.y:3210 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5478,7 +5486,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3212 +// line internal/php5/php5.y:3220 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5491,7 +5499,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3223 +// line internal/php5/php5.y:3231 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5504,7 +5512,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3234 +// line internal/php5/php5.y:3242 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5517,7 +5525,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3245 +// line internal/php5/php5.y:3253 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5530,7 +5538,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3256 +// line internal/php5/php5.y:3264 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5543,7 +5551,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3267 +// line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5556,7 +5564,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3278 +// line internal/php5/php5.y:3286 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5569,7 +5577,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3289 +// line internal/php5/php5.y:3297 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5582,7 +5590,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3300 +// line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5594,7 +5602,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3310 +// line internal/php5/php5.y:3318 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5607,7 +5615,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3321 +// line internal/php5/php5.y:3329 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5620,7 +5628,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3332 +// line internal/php5/php5.y:3340 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5633,7 +5641,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3343 +// line internal/php5/php5.y:3351 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5646,7 +5654,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3354 +// line internal/php5/php5.y:3362 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5659,7 +5667,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3365 +// line internal/php5/php5.y:3373 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5672,7 +5680,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3376 +// line internal/php5/php5.y:3384 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5685,7 +5693,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3387 +// line internal/php5/php5.y:3395 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5698,7 +5706,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3398 +// line internal/php5/php5.y:3406 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5710,7 +5718,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3408 +// line internal/php5/php5.y:3416 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5722,7 +5730,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3418 +// line internal/php5/php5.y:3426 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5734,7 +5742,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3428 +// line internal/php5/php5.y:3436 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5746,7 +5754,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3438 +// line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5759,7 +5767,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3449 +// line internal/php5/php5.y:3457 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5772,7 +5780,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3460 +// line internal/php5/php5.y:3468 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5785,7 +5793,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3471 +// line internal/php5/php5.y:3479 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5807,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3483 +// line internal/php5/php5.y:3491 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,7 +5820,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3494 +// line internal/php5/php5.y:3502 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5825,7 +5833,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3505 +// line internal/php5/php5.y:3513 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5838,7 +5846,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3516 +// line internal/php5/php5.y:3524 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5851,7 +5859,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3527 +// line internal/php5/php5.y:3535 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5864,19 +5872,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3538 +// line internal/php5/php5.y:3546 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3542 +// line internal/php5/php5.y:3550 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3546 +// line internal/php5/php5.y:3554 { yyVAL.node = yyDollar[2].node @@ -5908,7 +5916,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3576 +// line internal/php5/php5.y:3584 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5922,7 +5930,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3588 +// line internal/php5/php5.y:3596 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5936,13 +5944,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3600 +// line internal/php5/php5.y:3608 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3604 +// line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5955,7 +5963,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3615 +// line internal/php5/php5.y:3623 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5968,7 +5976,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3626 +// line internal/php5/php5.y:3634 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5981,7 +5989,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3637 +// line internal/php5/php5.y:3645 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5994,7 +6002,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3648 +// line internal/php5/php5.y:3656 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6007,7 +6015,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3659 +// line internal/php5/php5.y:3667 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6020,7 +6028,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3670 +// line internal/php5/php5.y:3678 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6033,7 +6041,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3681 +// line internal/php5/php5.y:3689 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6053,7 +6061,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3699 +// line internal/php5/php5.y:3707 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6065,25 +6073,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3709 +// line internal/php5/php5.y:3717 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3713 +// line internal/php5/php5.y:3721 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3717 +// line internal/php5/php5.y:3725 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3721 +// line internal/php5/php5.y:3729 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6095,7 +6103,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3731 +// line internal/php5/php5.y:3739 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6107,7 +6115,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3741 +// line internal/php5/php5.y:3749 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6119,7 +6127,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3751 +// line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6146,7 +6154,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3775 +// line internal/php5/php5.y:3783 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6174,7 +6182,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3803 +// line internal/php5/php5.y:3811 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6186,7 +6194,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3813 +// line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6198,7 +6206,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3823 +// line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6211,7 +6219,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3834 +// line internal/php5/php5.y:3842 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6224,7 +6232,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3848 +// line internal/php5/php5.y:3856 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6237,7 +6245,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3859 +// line internal/php5/php5.y:3867 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6250,7 +6258,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3870 +// line internal/php5/php5.y:3878 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6266,7 +6274,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3884 +// line internal/php5/php5.y:3892 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6279,7 +6287,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3898 +// line internal/php5/php5.y:3906 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6293,7 +6301,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3918 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6306,19 +6314,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3932 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3931 +// line internal/php5/php5.y:3939 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3935 +// line internal/php5/php5.y:3943 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6332,7 +6340,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3950 +// line internal/php5/php5.y:3958 { identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6348,7 +6356,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3964 +// line internal/php5/php5.y:3972 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6367,7 +6375,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3981 +// line internal/php5/php5.y:3989 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6382,7 +6390,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3994 +// line internal/php5/php5.y:4002 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6400,7 +6408,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4013 +// line internal/php5/php5.y:4021 { name := &ast.NameName{ Node: ast.Node{ @@ -6415,7 +6423,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4026 +// line internal/php5/php5.y:4034 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6432,7 +6440,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4041 +// line internal/php5/php5.y:4049 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6448,7 +6456,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4055 +// line internal/php5/php5.y:4063 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6461,7 +6469,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4066 +// line internal/php5/php5.y:4074 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6474,7 +6482,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4077 +// line internal/php5/php5.y:4085 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6487,7 +6495,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4088 +// line internal/php5/php5.y:4096 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6500,7 +6508,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4099 +// line internal/php5/php5.y:4107 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6512,7 +6520,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4112 +// line internal/php5/php5.y:4120 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6524,7 +6532,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4122 +// line internal/php5/php5.y:4130 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6535,7 +6543,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4131 +// line internal/php5/php5.y:4139 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6548,7 +6556,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4142 +// line internal/php5/php5.y:4150 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6560,7 +6568,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4155 +// line internal/php5/php5.y:4163 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6571,7 +6579,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4164 +// line internal/php5/php5.y:4172 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6584,7 +6592,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4175 +// line internal/php5/php5.y:4183 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6596,19 +6604,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4188 +// line internal/php5/php5.y:4196 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4192 +// line internal/php5/php5.y:4200 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4199 +// line internal/php5/php5.y:4207 { yyVAL.node = yyDollar[1].node @@ -6649,25 +6657,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4238 +// line internal/php5/php5.y:4246 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4246 +// line internal/php5/php5.y:4254 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4250 +// line internal/php5/php5.y:4258 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4258 +// line internal/php5/php5.y:4266 { yyVAL.list = yyDollar[2].list @@ -6676,13 +6684,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4268 +// line internal/php5/php5.y:4276 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4272 +// line internal/php5/php5.y:4280 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6698,19 +6706,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4286 +// line internal/php5/php5.y:4294 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4293 +// line internal/php5/php5.y:4301 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4297 +// line internal/php5/php5.y:4305 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6720,25 +6728,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4313 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4312 +// line internal/php5/php5.y:4320 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4316 +// line internal/php5/php5.y:4324 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4323 +// line internal/php5/php5.y:4331 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6750,7 +6758,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4333 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6762,7 +6770,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4343 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6774,7 +6782,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4353 +// line internal/php5/php5.y:4361 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6786,7 +6794,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4371 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6798,7 +6806,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4373 +// line internal/php5/php5.y:4381 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6810,7 +6818,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4383 +// line internal/php5/php5.y:4391 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6822,7 +6830,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4393 +// line internal/php5/php5.y:4401 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6834,7 +6842,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4403 +// line internal/php5/php5.y:4411 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6846,7 +6854,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4413 +// line internal/php5/php5.y:4421 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6858,7 +6866,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4423 +// line internal/php5/php5.y:4431 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6872,7 +6880,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4435 +// line internal/php5/php5.y:4443 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6884,7 +6892,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4448 +// line internal/php5/php5.y:4456 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6900,25 +6908,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4465 +// line internal/php5/php5.y:4473 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4472 +// line internal/php5/php5.y:4480 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4476 +// line internal/php5/php5.y:4484 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4480 +// line internal/php5/php5.y:4488 { name := &ast.NameName{ Node: ast.Node{ @@ -6933,7 +6941,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4493 +// line internal/php5/php5.y:4501 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6950,7 +6958,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4508 +// line internal/php5/php5.y:4516 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6966,7 +6974,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4522 +// line internal/php5/php5.y:4530 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6980,7 +6988,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4534 +// line internal/php5/php5.y:4542 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6993,13 +7001,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4545 +// line internal/php5/php5.y:4553 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4549 +// line internal/php5/php5.y:4557 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7011,13 +7019,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4559 +// line internal/php5/php5.y:4567 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4566 +// line internal/php5/php5.y:4574 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7030,7 +7038,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4577 +// line internal/php5/php5.y:4585 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7043,7 +7051,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4588 +// line internal/php5/php5.y:4596 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7056,7 +7064,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4599 +// line internal/php5/php5.y:4607 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7069,7 +7077,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4610 +// line internal/php5/php5.y:4618 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7082,7 +7090,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4621 +// line internal/php5/php5.y:4629 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7095,7 +7103,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4632 +// line internal/php5/php5.y:4640 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7108,7 +7116,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4643 +// line internal/php5/php5.y:4651 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7120,7 +7128,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4653 +// line internal/php5/php5.y:4661 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7132,7 +7140,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4663 +// line internal/php5/php5.y:4671 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7145,7 +7153,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4674 +// line internal/php5/php5.y:4682 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7158,7 +7166,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4685 +// line internal/php5/php5.y:4693 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7171,7 +7179,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4696 +// line internal/php5/php5.y:4704 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7184,7 +7192,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4707 +// line internal/php5/php5.y:4715 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7197,7 +7205,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4718 +// line internal/php5/php5.y:4726 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7210,7 +7218,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4729 +// line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7223,7 +7231,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4740 +// line internal/php5/php5.y:4748 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7236,7 +7244,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4751 +// line internal/php5/php5.y:4759 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7249,7 +7257,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4762 +// line internal/php5/php5.y:4770 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7262,7 +7270,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4773 +// line internal/php5/php5.y:4781 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7275,7 +7283,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4784 +// line internal/php5/php5.y:4792 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7288,7 +7296,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4803 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7301,7 +7309,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4806 +// line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7314,7 +7322,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4817 +// line internal/php5/php5.y:4825 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7328,7 +7336,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4829 +// line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7341,7 +7349,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4840 +// line internal/php5/php5.y:4848 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7354,7 +7362,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4851 +// line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7367,7 +7375,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4862 +// line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7380,7 +7388,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4873 +// line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7394,7 +7402,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4885 +// line internal/php5/php5.y:4893 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7408,7 +7416,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4897 +// line internal/php5/php5.y:4905 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7420,7 +7428,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4907 +// line internal/php5/php5.y:4915 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7432,7 +7440,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4917 +// line internal/php5/php5.y:4925 { yyVAL.node = yyDollar[2].node @@ -7442,13 +7450,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4928 +// line internal/php5/php5.y:4936 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4932 +// line internal/php5/php5.y:4940 { name := &ast.NameName{ Node: ast.Node{ @@ -7463,7 +7471,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4945 +// line internal/php5/php5.y:4953 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7480,7 +7488,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4960 +// line internal/php5/php5.y:4968 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7496,7 +7504,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4977 +// line internal/php5/php5.y:4985 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7510,25 +7518,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4989 +// line internal/php5/php5.y:4997 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4993 +// line internal/php5/php5.y:5001 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4997 +// line internal/php5/php5.y:5005 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5001 +// line internal/php5/php5.y:5009 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7540,7 +7548,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5019 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7552,7 +7560,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5021 +// line internal/php5/php5.y:5029 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7564,13 +7572,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5034 +// line internal/php5/php5.y:5042 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5038 +// line internal/php5/php5.y:5046 { yyVAL.list = yyDollar[1].list @@ -7581,19 +7589,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5050 +// line internal/php5/php5.y:5058 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5054 +// line internal/php5/php5.y:5062 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5061 +// line internal/php5/php5.y:5069 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7608,7 +7616,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5074 +// line internal/php5/php5.y:5082 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7622,7 +7630,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5086 +// line internal/php5/php5.y:5094 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7636,7 +7644,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5098 +// line internal/php5/php5.y:5106 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7649,19 +7657,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5112 +// line internal/php5/php5.y:5120 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5116 +// line internal/php5/php5.y:5124 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5123 +// line internal/php5/php5.y:5131 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7678,7 +7686,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5138 +// line internal/php5/php5.y:5146 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7695,25 +7703,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5157 +// line internal/php5/php5.y:5165 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5165 +// line internal/php5/php5.y:5173 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5172 +// line internal/php5/php5.y:5180 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5179 +// line internal/php5/php5.y:5187 { yyVAL.node = yyDollar[1].node @@ -7771,25 +7779,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5235 +// line internal/php5/php5.y:5243 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5242 +// line internal/php5/php5.y:5250 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5246 +// line internal/php5/php5.y:5254 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5254 +// line internal/php5/php5.y:5262 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7803,7 +7811,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5269 +// line internal/php5/php5.y:5277 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7817,7 +7825,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5281 +// line internal/php5/php5.y:5289 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7831,7 +7839,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5296 +// line internal/php5/php5.y:5304 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7840,31 +7848,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5306 +// line internal/php5/php5.y:5314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5310 +// line internal/php5/php5.y:5318 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5314 +// line internal/php5/php5.y:5322 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5321 +// line internal/php5/php5.y:5329 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5325 +// line internal/php5/php5.y:5333 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7876,7 +7884,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5338 +// line internal/php5/php5.y:5346 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7889,7 +7897,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5349 +// line internal/php5/php5.y:5357 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7902,13 +7910,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5363 +// line internal/php5/php5.y:5371 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5370 +// line internal/php5/php5.y:5378 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7921,7 +7929,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5381 +// line internal/php5/php5.y:5389 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7934,31 +7942,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5395 +// line internal/php5/php5.y:5403 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5399 +// line internal/php5/php5.y:5407 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5403 +// line internal/php5/php5.y:5411 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5411 +// line internal/php5/php5.y:5419 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5415 +// line internal/php5/php5.y:5423 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7970,13 +7978,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5425 +// line internal/php5/php5.y:5433 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5432 +// line internal/php5/php5.y:5440 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7989,7 +7997,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5443 +// line internal/php5/php5.y:5451 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8002,13 +8010,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5462 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5462 +// line internal/php5/php5.y:5470 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8022,7 +8030,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5474 +// line internal/php5/php5.y:5482 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8036,25 +8044,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5489 +// line internal/php5/php5.y:5497 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5493 +// line internal/php5/php5.y:5501 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5501 +// line internal/php5/php5.y:5509 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5505 +// line internal/php5/php5.y:5513 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8064,7 +8072,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5516 +// line internal/php5/php5.y:5524 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8078,7 +8086,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5528 +// line internal/php5/php5.y:5536 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8092,7 +8100,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5540 +// line internal/php5/php5.y:5548 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8102,7 +8110,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5551 +// line internal/php5/php5.y:5559 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -8114,7 +8122,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5561 +// line internal/php5/php5.y:5569 { yyVAL.node = yyDollar[2].node @@ -8127,7 +8135,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5583 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8140,7 +8148,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5586 +// line internal/php5/php5.y:5594 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8157,7 +8165,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5604 +// line internal/php5/php5.y:5612 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8170,7 +8178,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5615 +// line internal/php5/php5.y:5623 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8180,7 +8188,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5627 +// line internal/php5/php5.y:5635 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8192,7 +8200,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5637 +// line internal/php5/php5.y:5645 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8208,19 +8216,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5651 +// line internal/php5/php5.y:5659 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5659 +// line internal/php5/php5.y:5667 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5663 +// line internal/php5/php5.y:5671 { yyVAL.list = yyDollar[1].list @@ -8235,7 +8243,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5679 +// line internal/php5/php5.y:5687 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8250,7 +8258,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5692 +// line internal/php5/php5.y:5700 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8264,7 +8272,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5704 +// line internal/php5/php5.y:5712 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8278,7 +8286,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5716 +// line internal/php5/php5.y:5724 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8291,7 +8299,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5727 +// line internal/php5/php5.y:5735 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8309,7 +8317,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5743 +// line internal/php5/php5.y:5751 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8325,7 +8333,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5757 +// line internal/php5/php5.y:5765 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8342,7 +8350,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5780 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8357,13 +8365,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5788 +// line internal/php5/php5.y:5796 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5792 +// line internal/php5/php5.y:5800 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8376,13 +8384,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5803 +// line internal/php5/php5.y:5811 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5807 +// line internal/php5/php5.y:5815 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8395,7 +8403,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5821 +// line internal/php5/php5.y:5829 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -8409,7 +8417,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5833 +// line internal/php5/php5.y:5841 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8426,7 +8434,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5848 +// line internal/php5/php5.y:5856 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8445,7 +8453,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5865 +// line internal/php5/php5.y:5873 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8460,7 +8468,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5878 +// line internal/php5/php5.y:5886 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -8477,7 +8485,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5893 +// line internal/php5/php5.y:5901 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -8496,7 +8504,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5910 +// line internal/php5/php5.y:5918 { yyVAL.node = yyDollar[2].node @@ -8506,7 +8514,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5921 +// line internal/php5/php5.y:5929 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8518,7 +8526,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5931 +// line internal/php5/php5.y:5939 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8535,7 +8543,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5946 +// line internal/php5/php5.y:5954 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -8549,7 +8557,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5961 +// line internal/php5/php5.y:5969 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8563,7 +8571,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5973 +// line internal/php5/php5.y:5981 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8585,7 +8593,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5993 +// line internal/php5/php5.y:6001 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8607,7 +8615,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6013 +// line internal/php5/php5.y:6021 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8619,7 +8627,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6023 +// line internal/php5/php5.y:6031 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8631,7 +8639,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6033 +// line internal/php5/php5.y:6041 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8653,7 +8661,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6053 +// line internal/php5/php5.y:6061 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8665,7 +8673,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6063 +// line internal/php5/php5.y:6071 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8677,13 +8685,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6076 +// line internal/php5/php5.y:6084 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6080 +// line internal/php5/php5.y:6088 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8692,19 +8700,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6090 +// line internal/php5/php5.y:6098 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6094 +// line internal/php5/php5.y:6102 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6101 +// line internal/php5/php5.y:6109 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8720,7 +8728,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6115 +// line internal/php5/php5.y:6123 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8736,7 +8744,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6132 +// line internal/php5/php5.y:6140 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -8752,7 +8760,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6149 +// line internal/php5/php5.y:6157 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} diff --git a/internal/php5/php5.y b/internal/php5/php5.y index cdd7bc5..47d2df6 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -829,15 +829,19 @@ statement: | T_STRING ':' { label := &ast.Identifier{ast.Node{}, $1.Value} - $$ = &ast.StmtLabel{ast.Node{}, label} + $$ = &ast.StmtLabel{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + LabelName: label, + ColonTkn: $2, + } // save position label.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $1.SkippedTokens) } ; @@ -1179,17 +1183,21 @@ unticked_statement: | T_GOTO T_STRING ';' { label := &ast.Identifier{ast.Node{}, $2.Value} - $$ = &ast.StmtGoto{ast.Node{}, label} + + $$ = &ast.StmtGoto{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + GotoTkn: $1, + Label: label, + SemiColonTkn: $3, + } // save position label.GetNode().Position = position.NewTokenPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) yylex.(*Parser).setFreeFloating(label, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index f784230..cde883b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -346,7 +346,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4800 +// line internal/php7/php7.y:4808 // line yacctab:1 var yyExca = [...]int{ @@ -3444,42 +3444,50 @@ yydefault: // line internal/php7/php7.y:1090 { label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.StmtGoto{ast.Node{}, label} + + yyVAL.node = &ast.StmtGoto{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + GotoTkn: yyDollar[1].token, + Label: label, + SemiColonTkn: yyDollar[3].token, + } // save position label.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1105 +// line internal/php7/php7.y:1109 { label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - yyVAL.node = &ast.StmtLabel{ast.Node{}, label} + yyVAL.node = &ast.StmtLabel{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + LabelName: label, + ColonTkn: yyDollar[2].token, + } // save position label.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Label, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[1].token.SkippedTokens) } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1120 +// line internal/php7/php7.y:1128 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1124 +// line internal/php7/php7.y:1132 { identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -3505,7 +3513,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1150 +// line internal/php7/php7.y:1158 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3513,7 +3521,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1156 +// line internal/php7/php7.y:1164 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3522,13 +3530,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1166 +// line internal/php7/php7.y:1174 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1170 +// line internal/php7/php7.y:1178 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3542,7 +3550,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1185 +// line internal/php7/php7.y:1193 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3550,7 +3558,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1191 +// line internal/php7/php7.y:1199 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3559,13 +3567,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1201 +// line internal/php7/php7.y:1209 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1208 +// line internal/php7/php7.y:1216 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} @@ -3595,31 +3603,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1239 +// line internal/php7/php7.y:1247 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1243 +// line internal/php7/php7.y:1251 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1250 +// line internal/php7/php7.y:1258 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1254 +// line internal/php7/php7.y:1262 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1261 +// line internal/php7/php7.y:1269 { name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} @@ -3637,7 +3645,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1277 +// line internal/php7/php7.y:1285 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -3654,19 +3662,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1295 +// line internal/php7/php7.y:1303 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1299 +// line internal/php7/php7.y:1307 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1306 +// line internal/php7/php7.y:1314 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3678,7 +3686,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1316 +// line internal/php7/php7.y:1324 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -3690,7 +3698,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1329 +// line internal/php7/php7.y:1337 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} @@ -3707,7 +3715,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1347 +// line internal/php7/php7.y:1355 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} @@ -3724,13 +3732,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1365 +// line internal/php7/php7.y:1373 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1369 +// line internal/php7/php7.y:1377 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3742,13 +3750,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1382 +// line internal/php7/php7.y:1390 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1386 +// line internal/php7/php7.y:1394 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3760,13 +3768,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1399 +// line internal/php7/php7.y:1407 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1403 +// line internal/php7/php7.y:1411 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3778,13 +3786,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1416 +// line internal/php7/php7.y:1424 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1420 +// line internal/php7/php7.y:1428 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3796,7 +3804,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1430 +// line internal/php7/php7.y:1438 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3810,7 +3818,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1442 +// line internal/php7/php7.y:1450 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3823,7 +3831,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1464 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3834,7 +3842,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1465 +// line internal/php7/php7.y:1473 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3854,7 +3862,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1486 +// line internal/php7/php7.y:1494 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3865,7 +3873,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1495 +// line internal/php7/php7.y:1503 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3885,7 +3893,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1516 +// line internal/php7/php7.y:1524 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3896,7 +3904,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1525 +// line internal/php7/php7.y:1533 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3916,7 +3924,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1546 +// line internal/php7/php7.y:1554 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3929,7 +3937,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1557 +// line internal/php7/php7.y:1565 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3943,7 +3951,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1569 +// line internal/php7/php7.y:1577 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3966,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1582 +// line internal/php7/php7.y:1590 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3974,13 +3982,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1599 +// line internal/php7/php7.y:1607 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1603 +// line internal/php7/php7.y:1611 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3994,7 +4002,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1615 +// line internal/php7/php7.y:1623 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4007,19 +4015,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1629 +// line internal/php7/php7.y:1637 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1633 +// line internal/php7/php7.y:1641 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1640 +// line internal/php7/php7.y:1648 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4030,7 +4038,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1649 +// line internal/php7/php7.y:1657 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4050,7 +4058,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1670 +// line internal/php7/php7.y:1678 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4065,7 +4073,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1683 +// line internal/php7/php7.y:1691 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4084,13 +4092,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1703 +// line internal/php7/php7.y:1711 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1707 +// line internal/php7/php7.y:1715 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4106,7 +4114,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1724 +// line internal/php7/php7.y:1732 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4128,7 +4136,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1744 +// line internal/php7/php7.y:1752 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4152,7 +4160,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1769 +// line internal/php7/php7.y:1777 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4162,7 +4170,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1777 +// line internal/php7/php7.y:1785 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4186,25 +4194,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1802 +// line internal/php7/php7.y:1810 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1806 +// line internal/php7/php7.y:1814 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1813 +// line internal/php7/php7.y:1821 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1817 +// line internal/php7/php7.y:1825 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4213,7 +4221,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1827 +// line internal/php7/php7.y:1835 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4249,7 +4257,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1861 +// line internal/php7/php7.y:1869 { identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) @@ -4286,25 +4294,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1899 +// line internal/php7/php7.y:1907 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1903 +// line internal/php7/php7.y:1911 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1910 +// line internal/php7/php7.y:1918 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1914 +// line internal/php7/php7.y:1922 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4316,7 +4324,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1927 +// line internal/php7/php7.y:1935 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4328,7 +4336,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1937 +// line internal/php7/php7.y:1945 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4340,19 +4348,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1947 +// line internal/php7/php7.y:1955 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1954 +// line internal/php7/php7.y:1962 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1958 +// line internal/php7/php7.y:1966 { yyVAL.node = yyDollar[2].node @@ -4361,7 +4369,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1968 +// line internal/php7/php7.y:1976 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4374,7 +4382,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1979 +// line internal/php7/php7.y:1987 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4391,13 +4399,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1997 +// line internal/php7/php7.y:2005 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2001 +// line internal/php7/php7.y:2009 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4406,7 +4414,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 +// line internal/php7/php7.y:2019 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4418,7 +4426,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2021 +// line internal/php7/php7.y:2029 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4430,7 +4438,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2034 +// line internal/php7/php7.y:2042 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4439,7 +4447,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2041 +// line internal/php7/php7.y:2049 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4447,13 +4455,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2050 +// line internal/php7/php7.y:2058 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2057 +// line internal/php7/php7.y:2065 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4462,7 +4470,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2064 +// line internal/php7/php7.y:2072 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4470,7 +4478,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2073 +// line internal/php7/php7.y:2081 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4491,7 +4499,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2092 +// line internal/php7/php7.y:2100 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4513,19 +4521,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2115 +// line internal/php7/php7.y:2123 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2119 +// line internal/php7/php7.y:2127 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2126 +// line internal/php7/php7.y:2134 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4539,7 +4547,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2138 +// line internal/php7/php7.y:2146 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4553,7 +4561,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2150 +// line internal/php7/php7.y:2158 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4565,7 +4573,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2160 +// line internal/php7/php7.y:2168 { name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} @@ -4596,13 +4604,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2192 +// line internal/php7/php7.y:2200 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2196 +// line internal/php7/php7.y:2204 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4616,7 +4624,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2208 +// line internal/php7/php7.y:2216 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4627,7 +4635,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2217 +// line internal/php7/php7.y:2225 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4639,7 +4647,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2227 +// line internal/php7/php7.y:2235 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4651,19 +4659,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2240 +// line internal/php7/php7.y:2248 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2244 +// line internal/php7/php7.y:2252 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2251 +// line internal/php7/php7.y:2259 { yyVAL.node = yyDollar[1].node @@ -4673,7 +4681,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2259 +// line internal/php7/php7.y:2267 { yyVAL.node = yyDollar[1].node @@ -4683,7 +4691,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2270 +// line internal/php7/php7.y:2278 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4696,7 +4704,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2284 +// line internal/php7/php7.y:2292 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4712,7 +4720,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2298 +// line internal/php7/php7.y:2306 { alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} @@ -4728,7 +4736,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2312 +// line internal/php7/php7.y:2320 { alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} @@ -4744,7 +4752,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2326 +// line internal/php7/php7.y:2334 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4757,7 +4765,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2340 +// line internal/php7/php7.y:2348 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} @@ -4771,13 +4779,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2352 +// line internal/php7/php7.y:2360 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2359 +// line internal/php7/php7.y:2367 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} @@ -4793,7 +4801,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2376 +// line internal/php7/php7.y:2384 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4804,7 +4812,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2385 +// line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4817,13 +4825,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2399 +// line internal/php7/php7.y:2407 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2403 +// line internal/php7/php7.y:2411 { modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{modifier} @@ -4836,31 +4844,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2417 +// line internal/php7/php7.y:2425 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2421 +// line internal/php7/php7.y:2429 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2428 +// line internal/php7/php7.y:2436 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2432 +// line internal/php7/php7.y:2440 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2439 +// line internal/php7/php7.y:2447 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4872,7 +4880,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2449 +// line internal/php7/php7.y:2457 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4884,7 +4892,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2459 +// line internal/php7/php7.y:2467 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4896,7 +4904,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2469 +// line internal/php7/php7.y:2477 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4908,7 +4916,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2479 +// line internal/php7/php7.y:2487 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4920,7 +4928,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2497 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -4932,7 +4940,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2502 +// line internal/php7/php7.y:2510 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4941,13 +4949,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2509 +// line internal/php7/php7.y:2517 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2516 +// line internal/php7/php7.y:2524 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4963,7 +4971,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2530 +// line internal/php7/php7.y:2538 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -4980,7 +4988,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2548 +// line internal/php7/php7.y:2556 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -4988,13 +4996,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2554 +// line internal/php7/php7.y:2562 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2561 +// line internal/php7/php7.y:2569 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5014,7 +5022,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2590 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5034,7 +5042,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2603 +// line internal/php7/php7.y:2611 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5043,7 +5051,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2610 +// line internal/php7/php7.y:2618 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5051,25 +5059,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2619 +// line internal/php7/php7.y:2627 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2626 +// line internal/php7/php7.y:2634 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2638 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2637 +// line internal/php7/php7.y:2645 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5078,13 +5086,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2644 +// line internal/php7/php7.y:2652 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2651 +// line internal/php7/php7.y:2659 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5102,7 +5110,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2670 +// line internal/php7/php7.y:2678 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5117,7 +5125,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2683 +// line internal/php7/php7.y:2691 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5129,7 +5137,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2696 +// line internal/php7/php7.y:2704 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5146,7 +5154,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2711 +// line internal/php7/php7.y:2719 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5162,7 +5170,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2725 +// line internal/php7/php7.y:2733 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5175,7 +5183,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2736 +// line internal/php7/php7.y:2744 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5189,7 +5197,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2748 +// line internal/php7/php7.y:2756 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5201,7 +5209,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2758 +// line internal/php7/php7.y:2766 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5214,7 +5222,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2769 +// line internal/php7/php7.y:2777 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5227,7 +5235,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2780 +// line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5240,7 +5248,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2791 +// line internal/php7/php7.y:2799 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5253,7 +5261,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2802 +// line internal/php7/php7.y:2810 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5266,7 +5274,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2813 +// line internal/php7/php7.y:2821 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5279,7 +5287,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2824 +// line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5300,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2835 +// line internal/php7/php7.y:2843 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5305,7 +5313,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2846 +// line internal/php7/php7.y:2854 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5326,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2857 +// line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5339,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2868 +// line internal/php7/php7.y:2876 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5352,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2879 +// line internal/php7/php7.y:2887 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5365,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2890 +// line internal/php7/php7.y:2898 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5378,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2901 +// line internal/php7/php7.y:2909 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5383,7 +5391,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2912 +// line internal/php7/php7.y:2920 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5395,7 +5403,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2930 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5408,7 +5416,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2941 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5420,7 +5428,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2943 +// line internal/php7/php7.y:2951 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5433,7 +5441,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2954 +// line internal/php7/php7.y:2962 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5446,7 +5454,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2965 +// line internal/php7/php7.y:2973 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5459,7 +5467,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2976 +// line internal/php7/php7.y:2984 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5472,7 +5480,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2987 +// line internal/php7/php7.y:2995 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5485,7 +5493,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2998 +// line internal/php7/php7.y:3006 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5498,7 +5506,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3009 +// line internal/php7/php7.y:3017 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5511,7 +5519,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3020 +// line internal/php7/php7.y:3028 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5532,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3031 +// line internal/php7/php7.y:3039 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5544,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3041 +// line internal/php7/php7.y:3049 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5557,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3052 +// line internal/php7/php7.y:3060 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5570,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 +// line internal/php7/php7.y:3071 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5583,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 +// line internal/php7/php7.y:3082 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5588,7 +5596,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 +// line internal/php7/php7.y:3093 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5601,7 +5609,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 +// line internal/php7/php7.y:3104 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5622,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 +// line internal/php7/php7.y:3115 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5635,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 +// line internal/php7/php7.y:3126 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5648,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3129 +// line internal/php7/php7.y:3137 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5652,7 +5660,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3139 +// line internal/php7/php7.y:3147 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5664,7 +5672,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3149 +// line internal/php7/php7.y:3157 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5676,7 +5684,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3159 +// line internal/php7/php7.y:3167 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5688,7 +5696,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3169 +// line internal/php7/php7.y:3177 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5701,7 +5709,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3180 +// line internal/php7/php7.y:3188 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5714,7 +5722,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3191 +// line internal/php7/php7.y:3199 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5727,7 +5735,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3202 +// line internal/php7/php7.y:3210 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5741,7 +5749,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3214 +// line internal/php7/php7.y:3222 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5754,7 +5762,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3225 +// line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5775,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3236 +// line internal/php7/php7.y:3244 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5788,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3247 +// line internal/php7/php7.y:3255 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5801,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3258 +// line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5814,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5827,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3280 +// line internal/php7/php7.y:3288 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5836,13 +5844,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3295 +// line internal/php7/php7.y:3303 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3299 +// line internal/php7/php7.y:3307 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5856,7 +5864,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3311 +// line internal/php7/php7.y:3319 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5870,7 +5878,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3323 +// line internal/php7/php7.y:3331 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5883,13 +5891,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3334 +// line internal/php7/php7.y:3342 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3338 +// line internal/php7/php7.y:3346 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5902,7 +5910,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3349 +// line internal/php7/php7.y:3357 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5915,7 +5923,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3360 +// line internal/php7/php7.y:3368 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5928,7 +5936,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3371 +// line internal/php7/php7.y:3379 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5941,7 +5949,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3382 +// line internal/php7/php7.y:3390 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5954,7 +5962,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3393 +// line internal/php7/php7.y:3401 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5967,7 +5975,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3404 +// line internal/php7/php7.y:3412 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -5980,7 +5988,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3415 +// line internal/php7/php7.y:3423 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6000,7 +6008,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3433 +// line internal/php7/php7.y:3441 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6012,13 +6020,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3443 +// line internal/php7/php7.y:3451 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3447 +// line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6030,7 +6038,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3457 +// line internal/php7/php7.y:3465 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6042,7 +6050,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3467 +// line internal/php7/php7.y:3475 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6054,7 +6062,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3477 +// line internal/php7/php7.y:3485 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6066,7 +6074,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3487 +// line internal/php7/php7.y:3495 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6079,7 +6087,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3498 +// line internal/php7/php7.y:3506 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6091,13 +6099,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3508 +// line internal/php7/php7.y:3516 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3512 +// line internal/php7/php7.y:3520 { yyVAL.node = yyDollar[2].node @@ -6118,7 +6126,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3533 +// line internal/php7/php7.y:3541 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6149,7 +6157,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3560 +// line internal/php7/php7.y:3568 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6175,25 +6183,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3590 +// line internal/php7/php7.y:3598 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3594 +// line internal/php7/php7.y:3602 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3601 +// line internal/php7/php7.y:3609 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3605 +// line internal/php7/php7.y:3613 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6207,7 +6215,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3620 +// line internal/php7/php7.y:3628 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6216,13 +6224,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3627 +// line internal/php7/php7.y:3635 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3634 +// line internal/php7/php7.y:3642 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -6236,7 +6244,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3646 +// line internal/php7/php7.y:3654 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -6253,7 +6261,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3664 +// line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6265,7 +6273,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3674 +// line internal/php7/php7.y:3682 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6278,7 +6286,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3685 +// line internal/php7/php7.y:3693 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6291,7 +6299,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3696 +// line internal/php7/php7.y:3704 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6303,7 +6311,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3709 +// line internal/php7/php7.y:3717 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6315,31 +6323,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3719 +// line internal/php7/php7.y:3727 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3726 +// line internal/php7/php7.y:3734 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3730 +// line internal/php7/php7.y:3738 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3737 +// line internal/php7/php7.y:3745 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3741 +// line internal/php7/php7.y:3749 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6356,13 +6364,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3759 +// line internal/php7/php7.y:3767 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3763 +// line internal/php7/php7.y:3771 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6372,25 +6380,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3771 +// line internal/php7/php7.y:3779 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3778 +// line internal/php7/php7.y:3786 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3782 +// line internal/php7/php7.y:3790 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3789 +// line internal/php7/php7.y:3797 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6404,7 +6412,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3801 +// line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6417,7 +6425,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3812 +// line internal/php7/php7.y:3820 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6429,7 +6437,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3825 +// line internal/php7/php7.y:3833 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6441,7 +6449,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3835 +// line internal/php7/php7.y:3843 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6453,7 +6461,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3845 +// line internal/php7/php7.y:3853 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6465,7 +6473,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3855 +// line internal/php7/php7.y:3863 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6477,7 +6485,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3865 +// line internal/php7/php7.y:3873 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6489,7 +6497,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3875 +// line internal/php7/php7.y:3883 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6501,7 +6509,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3885 +// line internal/php7/php7.y:3893 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6513,7 +6521,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3895 +// line internal/php7/php7.y:3903 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6525,7 +6533,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3905 +// line internal/php7/php7.y:3913 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6537,7 +6545,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3915 +// line internal/php7/php7.y:3923 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6549,7 +6557,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3925 +// line internal/php7/php7.y:3933 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6563,7 +6571,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3937 +// line internal/php7/php7.y:3945 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6575,7 +6583,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3947 +// line internal/php7/php7.y:3955 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6587,7 +6595,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3957 +// line internal/php7/php7.y:3965 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6599,19 +6607,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3967 +// line internal/php7/php7.y:3975 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3971 +// line internal/php7/php7.y:3979 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3978 +// line internal/php7/php7.y:3986 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6623,7 +6631,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3988 +// line internal/php7/php7.y:3996 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6639,7 +6647,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4002 +// line internal/php7/php7.y:4010 { target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} @@ -6655,43 +6663,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4019 +// line internal/php7/php7.y:4027 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4023 +// line internal/php7/php7.y:4031 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4030 +// line internal/php7/php7.y:4038 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4034 +// line internal/php7/php7.y:4042 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4041 +// line internal/php7/php7.y:4049 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4048 +// line internal/php7/php7.y:4056 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4052 +// line internal/php7/php7.y:4060 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6708,19 +6716,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4067 +// line internal/php7/php7.y:4075 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4074 +// line internal/php7/php7.y:4082 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4078 +// line internal/php7/php7.y:4086 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6737,19 +6745,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4093 +// line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4100 +// line internal/php7/php7.y:4108 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4104 +// line internal/php7/php7.y:4112 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6762,7 +6770,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4115 +// line internal/php7/php7.y:4123 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6775,7 +6783,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4126 +// line internal/php7/php7.y:4134 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6788,7 +6796,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4137 +// line internal/php7/php7.y:4145 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6801,25 +6809,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4148 +// line internal/php7/php7.y:4156 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4155 +// line internal/php7/php7.y:4163 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4159 +// line internal/php7/php7.y:4167 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4163 +// line internal/php7/php7.y:4171 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6832,7 +6840,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4177 +// line internal/php7/php7.y:4185 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -6846,7 +6854,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4189 +// line internal/php7/php7.y:4197 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6860,7 +6868,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4201 +// line internal/php7/php7.y:4209 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6872,7 +6880,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4214 +// line internal/php7/php7.y:4222 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6885,7 +6893,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4225 +// line internal/php7/php7.y:4233 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6898,13 +6906,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4239 +// line internal/php7/php7.y:4247 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4243 +// line internal/php7/php7.y:4251 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6917,7 +6925,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4254 +// line internal/php7/php7.y:4262 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6930,7 +6938,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4265 +// line internal/php7/php7.y:4273 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6943,7 +6951,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4276 +// line internal/php7/php7.y:4284 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6956,7 +6964,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4287 +// line internal/php7/php7.y:4295 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6969,7 +6977,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4301 +// line internal/php7/php7.y:4309 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -6981,7 +6989,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4311 +// line internal/php7/php7.y:4319 { yyVAL.node = yyDollar[2].node @@ -6991,13 +6999,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4319 +// line internal/php7/php7.y:4327 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4326 +// line internal/php7/php7.y:4334 { yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} @@ -7009,7 +7017,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4336 +// line internal/php7/php7.y:4344 { yyVAL.node = yyDollar[2].node @@ -7019,31 +7027,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4344 +// line internal/php7/php7.y:4352 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4351 +// line internal/php7/php7.y:4359 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4358 +// line internal/php7/php7.y:4366 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4362 +// line internal/php7/php7.y:4370 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4369 +// line internal/php7/php7.y:4377 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7056,7 +7064,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4380 +// line internal/php7/php7.y:4388 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7066,7 +7074,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4391 +// line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7079,7 +7087,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4402 +// line internal/php7/php7.y:4410 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7091,7 +7099,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4412 +// line internal/php7/php7.y:4420 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7107,7 +7115,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4426 +// line internal/php7/php7.y:4434 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7121,7 +7129,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4438 +// line internal/php7/php7.y:4446 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7133,7 +7141,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4448 +// line internal/php7/php7.y:4456 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7152,7 +7160,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4465 +// line internal/php7/php7.y:4473 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7169,13 +7177,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4483 +// line internal/php7/php7.y:4491 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4487 +// line internal/php7/php7.y:4495 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7188,13 +7196,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4498 +// line internal/php7/php7.y:4506 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4502 +// line internal/php7/php7.y:4510 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7207,7 +7215,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4516 +// line internal/php7/php7.y:4524 { name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, name} @@ -7221,7 +7229,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4528 +// line internal/php7/php7.y:4536 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7238,7 +7246,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4543 +// line internal/php7/php7.y:4551 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7257,7 +7265,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4560 +// line internal/php7/php7.y:4568 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7272,7 +7280,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4573 +// line internal/php7/php7.y:4581 { name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, name} @@ -7289,7 +7297,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4588 +// line internal/php7/php7.y:4596 { identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} variable := &ast.ExprVariable{ast.Node{}, identifier} @@ -7308,7 +7316,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4605 +// line internal/php7/php7.y:4613 { yyVAL.node = yyDollar[2].node @@ -7318,7 +7326,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4616 +// line internal/php7/php7.y:4624 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7330,7 +7338,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4626 +// line internal/php7/php7.y:4634 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7347,7 +7355,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4641 +// line internal/php7/php7.y:4649 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7373,7 +7381,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4665 +// line internal/php7/php7.y:4673 { identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} @@ -7387,7 +7395,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4680 +// line internal/php7/php7.y:4688 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7405,7 +7413,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4696 +// line internal/php7/php7.y:4704 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7427,7 +7435,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4716 +// line internal/php7/php7.y:4724 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7439,7 +7447,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4726 +// line internal/php7/php7.y:4734 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7451,7 +7459,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4736 +// line internal/php7/php7.y:4744 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7473,7 +7481,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4756 +// line internal/php7/php7.y:4764 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7485,7 +7493,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4766 +// line internal/php7/php7.y:4774 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7497,13 +7505,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4779 +// line internal/php7/php7.y:4787 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4783 +// line internal/php7/php7.y:4791 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7512,7 +7520,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4793 +// line internal/php7/php7.y:4801 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 920dc76..e4709aa 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1089,30 +1089,38 @@ statement: | T_GOTO T_STRING ';' { label := &ast.Identifier{ast.Node{}, $2.Value} - $$ = &ast.StmtGoto{ast.Node{}, label} + + $$ = &ast.StmtGoto{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + GotoTkn: $1, + Label: label, + SemiColonTkn: $3, + } // save position label.GetNode().Position = position.NewTokenPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) yylex.(*Parser).setFreeFloating(label, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) } | T_STRING ':' { label := &ast.Identifier{ast.Node{}, $1.Value} - $$ = &ast.StmtLabel{ast.Node{}, label} + $$ = &ast.StmtLabel{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + LabelName: label, + ColonTkn: $2, + } // save position label.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Label, $2.SkippedTokens) + yylex.(*Parser).setFreeFloating(label, token.Start, $1.SkippedTokens) } catch_list: diff --git a/pkg/ast/node.go b/pkg/ast/node.go index e459723..7882623 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -505,7 +505,9 @@ func (n *StmtGlobal) Accept(v NodeVisitor) { // StmtGoto node type StmtGoto struct { Node - Label Vertex + GotoTkn *token.Token + Label Vertex + SemiColonTkn *token.Token } func (n *StmtGoto) Accept(v NodeVisitor) { @@ -582,6 +584,7 @@ func (n *StmtInterfaceExtends) Accept(v NodeVisitor) { type StmtLabel struct { Node LabelName Vertex + ColonTkn *token.Token } func (n *StmtLabel) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go index 62f7700..579bb8d 100644 --- a/pkg/ast/visitor/filter_tokens.go +++ b/pkg/ast/visitor/filter_tokens.go @@ -265,3 +265,12 @@ func (v *FilterTokens) StmtThrow(n *ast.StmtThrow) { n.ThrowTkn = nil n.SemiColonTkn = nil } + +func (v *FilterTokens) StmtGoto(n *ast.StmtGoto) { + n.GotoTkn = nil + n.SemiColonTkn = nil +} + +func (v *FilterTokens) StmtLabel(n *ast.StmtLabel) { + n.ColonTkn = nil +} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 0ade2a0..2dd68a4 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2425,23 +2425,11 @@ func (p *Printer) printStmtGlobal(n *ast.StmtGlobal) { p.printToken(n.SemiColonTkn, ";") } -func (p *Printer) printStmtGoto(n ast.Vertex) { - nn := n.(*ast.StmtGoto) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("goto")) - if nn.Label.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Label) - p.printFreeFloating(nn, token.Label) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtGoto(n *ast.StmtGoto) { + p.printToken(n.GotoTkn, "goto") + p.bufStart = " " + p.Print(n.Label) + p.printToken(n.SemiColonTkn, ";") } func (p *Printer) printStmtHaltCompiler(n *ast.StmtHaltCompiler) { @@ -2527,16 +2515,9 @@ func (p *Printer) printStmtInterface(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printStmtLabel(n ast.Vertex) { - nn := n.(*ast.StmtLabel) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.LabelName) - p.printFreeFloating(nn, token.Label) - - p.write([]byte(":")) - - p.printFreeFloating(nn, token.End) +func (p *Printer) printStmtLabel(n *ast.StmtLabel) { + p.Print(n.LabelName) + p.printToken(n.ColonTkn, ":") } func (p *Printer) printStmtNamespace(n *ast.StmtNamespace) { From bf3ae74d5640e3ca95f0f0106e84509faa2c8027 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 22:02:36 +0200 Subject: [PATCH 068/140] [refactoring] update ast structure of "Identifier" --- internal/php5/php5.go | 1653 +++++++++++++++++++++++------------------ internal/php5/php5.y | 620 ++++++++++------ internal/php7/php7.go | 1566 ++++++++++++++++++++------------------ internal/php7/php7.y | 559 ++++++++------ pkg/ast/node.go | 3 +- 5 files changed, 2533 insertions(+), 1868 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 2e1bb38..e4b1646 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,13 +340,14 @@ var yyToknames = [...]string{ "'>'", "'.'", } + var yyStatenames = [...]string{} const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6172 +// line internal/php5/php5.y:6370 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -600,7 +601,6 @@ const yyPrivate = 57344 const yyLast = 8877 var yyAct = [...]int{ - 102, 571, 844, 565, 1007, 966, 715, 61, 420, 827, 123, 131, 919, 200, 340, 594, 567, 607, 452, 816, 461, 808, 474, 735, 592, 684, 138, 140, 421, 142, @@ -1490,8 +1490,8 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 536, 0, 525, 0, 0, 0, 535, 534, 532, 533, } -var yyPact = [...]int{ +var yyPact = [...]int{ -1000, -1000, 2298, -1000, -1000, -1000, -1000, -1000, 336, 543, 613, 174, -1000, 348, -1000, -1000, 971, -1000, 276, 276, 5446, 332, 276, 6794, 6682, 6570, 396, 166, 802, 6906, @@ -1596,8 +1596,8 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, 632, 2614, 823, -1000, 102, 423, -1000, 2456, -1000, } -var yyPgo = [...]int{ +var yyPgo = [...]int{ 0, 29, 1183, 22, 21, 1177, 49, 41, 39, 544, 1176, 1175, 164, 217, 228, 180, 1362, 64, 134, 59, 781, 1399, 1172, 33, 1171, 1170, 1169, 136, 1157, 40, @@ -1615,8 +1615,8 @@ var yyPgo = [...]int{ 15, 17, 993, 34, 992, 991, 986, 984, 177, 13, 983, 902, } -var yyR1 = [...]int{ +var yyR1 = [...]int{ 0, 151, 100, 100, 101, 101, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 102, 102, 6, 6, 6, 6, 103, 103, 7, 7, 7, 7, @@ -1671,8 +1671,8 @@ var yyR1 = [...]int{ 39, 39, 39, 107, 107, 38, 38, 32, 32, 33, 34, } -var yyR2 = [...]int{ +var yyR2 = [...]int{ 0, 1, 2, 0, 1, 3, 1, 1, 1, 1, 4, 3, 5, 4, 3, 4, 4, 2, 3, 1, 1, 3, 2, 4, 3, 1, 1, 3, 2, 4, @@ -1727,8 +1727,8 @@ var yyR2 = [...]int{ 4, 2, 2, 1, 3, 1, 1, 3, 3, 3, 3, } -var yyChk = [...]int{ +var yyChk = [...]int{ -1000, -151, -100, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, @@ -1833,8 +1833,8 @@ var yyChk = [...]int{ 146, 144, -47, -61, 148, -105, -47, 145, 12, 149, 144, -105, 145, } -var yyDef = [...]int{ +var yyDef = [...]int{ 3, -2, -2, 2, 6, 7, 8, 9, 0, 0, 0, 0, 45, 4, 87, 88, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, @@ -1939,8 +1939,8 @@ var yyDef = [...]int{ 196, 39, 188, 82, 0, 0, 0, 197, 0, 0, 39, 0, 83, } -var yyTok1 = [...]int{ +var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -1955,8 +1955,8 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 144, 161, 145, 157, } -var yyTok2 = [...]int{ +var yyTok2 = [...]int{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, @@ -1972,6 +1972,7 @@ var yyTok2 = [...]int{ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, } + var yyTok3 = [...]int{ 0, } @@ -2485,7 +2486,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[2].token), }, - Value: yyDollar[2].token.Value, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, UseDeclarations: yyDollar[3].list, SemiColonTkn: yyDollar[4].token, @@ -2493,7 +2495,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:432 +// line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2504,7 +2506,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[2].token), }, - Value: yyDollar[2].token.Value, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, UseDeclarations: yyDollar[3].list, SemiColonTkn: yyDollar[4].token, @@ -2512,7 +2515,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:449 +// line internal/php5/php5.y:451 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2520,7 +2523,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:458 +// line internal/php5/php5.y:460 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2528,13 +2531,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:464 +// line internal/php5/php5.y:466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:471 +// line internal/php5/php5.y:473 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2550,7 +2553,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:485 +// line internal/php5/php5.y:487 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2567,13 +2570,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Value: yyDollar[3].token.Value, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, } } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:506 +// line internal/php5/php5.y:509 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2590,7 +2594,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:521 +// line internal/php5/php5.y:524 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2608,13 +2612,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), }, - Value: yyDollar[4].token.Value, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, }, } } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:546 +// line internal/php5/php5.y:550 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2622,13 +2627,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:552 +// line internal/php5/php5.y:556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:559 +// line internal/php5/php5.y:563 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2644,7 +2649,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:573 +// line internal/php5/php5.y:577 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2661,13 +2666,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Value: yyDollar[3].token.Value, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, } } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:594 +// line internal/php5/php5.y:599 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2684,7 +2690,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:609 +// line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2702,13 +2708,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), }, - Value: yyDollar[4].token.Value, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, }, } } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:634 +// line internal/php5/php5.y:640 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2716,13 +2723,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:640 +// line internal/php5/php5.y:646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:647 +// line internal/php5/php5.y:653 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2738,7 +2745,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:661 +// line internal/php5/php5.y:667 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2755,13 +2762,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Value: yyDollar[3].token.Value, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, } } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:682 +// line internal/php5/php5.y:689 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2778,7 +2786,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:697 +// line internal/php5/php5.y:704 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2796,13 +2804,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), }, - Value: yyDollar[4].token.Value, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, }, } } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:722 +// line internal/php5/php5.y:730 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2815,7 +2824,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Value: yyDollar[3].token.Value, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, EqualTkn: yyDollar[4].token, Expr: yyDollar[5].node, @@ -2827,7 +2837,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:745 +// line internal/php5/php5.y:754 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2843,7 +2853,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[2].token), }, - Value: yyDollar[2].token.Value, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, EqualTkn: yyDollar[3].token, Expr: yyDollar[4].node, @@ -2855,7 +2866,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:774 +// line internal/php5/php5.y:784 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2868,38 +2879,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:785 +// line internal/php5/php5.y:795 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:793 +// line internal/php5/php5.y:803 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:798 +// line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:802 +// line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:806 +// line internal/php5/php5.y:816 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:810 +// line internal/php5/php5.y:820 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2913,32 +2924,31 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:826 +// line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:830 +// line internal/php5/php5.y:840 { - label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), }, - LabelName: label, - ColonTkn: yyDollar[2].token, + LabelName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + ColonTkn: yyDollar[2].token, } - - // save position - label.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[1].token.SkippedTokens) } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:850 +// line internal/php5/php5.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2951,7 +2961,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:861 +// line internal/php5/php5.y:870 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2975,7 +2985,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:883 +// line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3001,7 +3011,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:907 +// line internal/php5/php5.y:916 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3013,7 +3023,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:917 +// line internal/php5/php5.y:926 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3030,7 +3040,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:932 +// line internal/php5/php5.y:941 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3046,7 +3056,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:946 +// line internal/php5/php5.y:955 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3058,7 +3068,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:956 +// line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3070,7 +3080,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:966 +// line internal/php5/php5.y:975 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3083,7 +3093,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:977 +// line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3095,7 +3105,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:987 +// line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3108,7 +3118,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:998 +// line internal/php5/php5.y:1007 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3120,7 +3130,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1008 +// line internal/php5/php5.y:1017 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3133,7 +3143,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1019 +// line internal/php5/php5.y:1028 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3146,7 +3156,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1030 +// line internal/php5/php5.y:1039 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3160,7 +3170,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1042 +// line internal/php5/php5.y:1051 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3171,7 +3181,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1051 +// line internal/php5/php5.y:1060 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3182,7 +3192,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1060 +// line internal/php5/php5.y:1069 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3192,7 +3202,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1068 +// line internal/php5/php5.y:1077 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3204,7 +3214,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1078 +// line internal/php5/php5.y:1087 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3218,7 +3228,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1090 +// line internal/php5/php5.y:1099 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3230,7 +3240,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1100 +// line internal/php5/php5.y:1109 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3250,7 +3260,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1118 +// line internal/php5/php5.y:1127 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3270,7 +3280,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1136 +// line internal/php5/php5.y:1145 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3283,7 +3293,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1147 +// line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3294,7 +3304,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1156 +// line internal/php5/php5.y:1165 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3313,7 +3323,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1173 +// line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3326,36 +3336,40 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1184 +// line internal/php5/php5.y:1193 { - label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, - GotoTkn: yyDollar[1].token, - Label: label, + GotoTkn: yyDollar[1].token, + Label: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, SemiColonTkn: yyDollar[3].token, } - - // save position - label.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.SkippedTokens) } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1206 +// line internal/php5/php5.y:1213 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1210 +// line internal/php5/php5.y:1217 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3373,7 +3387,6 @@ yydefault: yyVAL.list = append([]ast.Vertex{catch}, yyDollar[9].list...) // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) // save comments @@ -3381,13 +3394,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1239 +// line internal/php5/php5.y:1251 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1243 +// line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3401,33 +3414,39 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1258 +// line internal/php5/php5.y:1270 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1262 +// line internal/php5/php5.y:1274 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1269 +// line internal/php5/php5.y:1281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1273 +// line internal/php5/php5.y:1285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1280 +// line internal/php5/php5.y:1292 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3444,7 +3463,6 @@ yydefault: } // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) // save comments @@ -3452,7 +3470,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1308 +// line internal/php5/php5.y:1325 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3460,7 +3478,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1314 +// line internal/php5/php5.y:1331 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3469,75 +3487,82 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1324 +// line internal/php5/php5.y:1341 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1338 +// line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1345 +// line internal/php5/php5.y:1362 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1349 +// line internal/php5/php5.y:1366 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1356 +// line internal/php5/php5.y:1373 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1360 +// line internal/php5/php5.y:1377 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1367 +// line internal/php5/php5.y:1384 { - name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[2].token != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1392 +// line internal/php5/php5.y:1410 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } switch n := yyDollar[1].node.(type) { case *ast.StmtClass: n.ClassName = name @@ -3553,34 +3578,36 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.SkippedTokens) } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1418 +// line internal/php5/php5.y:1440 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.SkippedTokens) } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1437 +// line internal/php5/php5.y:1463 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3592,13 +3619,18 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1447 +// line internal/php5/php5.y:1473 { - classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + classModifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments @@ -3607,25 +3639,30 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1460 +// line internal/php5/php5.y:1491 { - yyVAL.node = &ast.StmtTrait{ast.Node{}, nil, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1470 +// line internal/php5/php5.y:1501 { - classModifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + classModifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments @@ -3634,13 +3671,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1486 +// line internal/php5/php5.y:1522 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1490 +// line internal/php5/php5.y:1526 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3652,19 +3689,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1503 +// line internal/php5/php5.y:1539 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1510 +// line internal/php5/php5.y:1546 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1514 +// line internal/php5/php5.y:1550 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3676,13 +3713,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1527 +// line internal/php5/php5.y:1563 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1531 +// line internal/php5/php5.y:1567 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3694,13 +3731,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1544 +// line internal/php5/php5.y:1580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1548 +// line internal/php5/php5.y:1584 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3714,13 +3751,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1560 +// line internal/php5/php5.y:1596 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1564 +// line internal/php5/php5.y:1600 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3729,13 +3766,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1574 +// line internal/php5/php5.y:1610 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1578 +// line internal/php5/php5.y:1614 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3747,7 +3784,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1588 +// line internal/php5/php5.y:1624 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3761,7 +3798,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1603 +// line internal/php5/php5.y:1639 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3772,7 +3809,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1612 +// line internal/php5/php5.y:1648 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3792,7 +3829,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1633 +// line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3803,7 +3840,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1642 +// line internal/php5/php5.y:1678 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3823,7 +3860,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1664 +// line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3834,7 +3871,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1673 +// line internal/php5/php5.y:1709 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3854,7 +3891,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1695 +// line internal/php5/php5.y:1731 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3866,7 +3903,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - Value: yyDollar[1].token.Value, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, }, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -3878,7 +3916,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1717 +// line internal/php5/php5.y:1754 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3891,7 +3929,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Value: yyDollar[3].token.Value, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, EqualTkn: yyDollar[4].token, Expr: yyDollar[5].node, @@ -3904,7 +3943,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1745 +// line internal/php5/php5.y:1783 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3917,7 +3956,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1756 +// line internal/php5/php5.y:1794 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3931,7 +3970,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1768 +// line internal/php5/php5.y:1806 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3946,7 +3985,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1781 +// line internal/php5/php5.y:1819 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3962,13 +4001,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1799 +// line internal/php5/php5.y:1837 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1803 +// line internal/php5/php5.y:1841 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -3982,7 +4021,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1815 +// line internal/php5/php5.y:1853 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -3995,19 +4034,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1830 +// line internal/php5/php5.y:1868 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1834 +// line internal/php5/php5.y:1872 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1842 +// line internal/php5/php5.y:1880 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4018,7 +4057,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1851 +// line internal/php5/php5.y:1889 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4038,13 +4077,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1874 +// line internal/php5/php5.y:1912 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1878 +// line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4059,13 +4098,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1895 +// line internal/php5/php5.y:1933 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1899 +// line internal/php5/php5.y:1937 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4087,13 +4126,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1923 +// line internal/php5/php5.y:1961 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1927 +// line internal/php5/php5.y:1965 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4105,13 +4144,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1941 +// line internal/php5/php5.y:1979 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1945 +// line internal/php5/php5.y:1983 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4130,25 +4169,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1966 +// line internal/php5/php5.y:2004 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1970 +// line internal/php5/php5.y:2008 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1977 +// line internal/php5/php5.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1981 +// line internal/php5/php5.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4157,10 +4196,15 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1991 +// line internal/php5/php5.y:2029 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -4193,10 +4237,15 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2025 +// line internal/php5/php5.y:2068 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -4230,43 +4279,43 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2064 +// line internal/php5/php5.y:2112 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2068 +// line internal/php5/php5.y:2116 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2078 +// line internal/php5/php5.y:2126 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2088 +// line internal/php5/php5.y:2136 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2096 +// line internal/php5/php5.y:2144 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4279,7 +4328,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2107 +// line internal/php5/php5.y:2155 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4292,7 +4341,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2118 +// line internal/php5/php5.y:2166 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4307,13 +4356,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2135 +// line internal/php5/php5.y:2183 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2139 +// line internal/php5/php5.y:2187 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4322,7 +4371,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2149 +// line internal/php5/php5.y:2197 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4334,7 +4383,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2159 +// line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4346,7 +4395,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2169 +// line internal/php5/php5.y:2217 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4358,7 +4407,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2179 +// line internal/php5/php5.y:2227 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4370,7 +4419,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2192 +// line internal/php5/php5.y:2240 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4379,7 +4428,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2199 +// line internal/php5/php5.y:2247 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4387,13 +4436,18 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2209 +// line internal/php5/php5.y:2257 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -4401,7 +4455,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2221 +// line internal/php5/php5.y:2274 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4413,7 +4467,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2231 +// line internal/php5/php5.y:2284 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4427,9 +4481,15 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2247 +// line internal/php5/php5.y:2300 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ @@ -4443,7 +4503,6 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments @@ -4451,9 +4510,15 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2269 +// line internal/php5/php5.y:2327 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ @@ -4469,7 +4534,6 @@ yydefault: yyVAL.node = yyDollar[1].node // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments @@ -4477,9 +4541,15 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2293 +// line internal/php5/php5.y:2356 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStatic{ @@ -4494,7 +4564,6 @@ yydefault: } // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -4502,9 +4571,15 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2316 +// line internal/php5/php5.y:2384 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStatic{ @@ -4521,7 +4596,6 @@ yydefault: } // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -4529,19 +4603,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2345 +// line internal/php5/php5.y:2418 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2349 +// line internal/php5/php5.y:2422 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2357 +// line internal/php5/php5.y:2430 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4555,7 +4629,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2369 +// line internal/php5/php5.y:2442 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4563,19 +4637,24 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2375 +// line internal/php5/php5.y:2448 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2379 +// line internal/php5/php5.y:2452 { - name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].list == nil { yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) } else { @@ -4600,7 +4679,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2411 +// line internal/php5/php5.y:2489 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4612,13 +4691,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2424 +// line internal/php5/php5.y:2502 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2428 +// line internal/php5/php5.y:2506 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4632,7 +4711,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2440 +// line internal/php5/php5.y:2518 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4643,7 +4722,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2449 +// line internal/php5/php5.y:2527 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4655,31 +4734,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2462 +// line internal/php5/php5.y:2540 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2466 +// line internal/php5/php5.y:2544 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2473 +// line internal/php5/php5.y:2551 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2477 +// line internal/php5/php5.y:2555 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2484 +// line internal/php5/php5.y:2562 { yyVAL.node = yyDollar[1].node @@ -4689,7 +4768,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2492 +// line internal/php5/php5.y:2570 { yyVAL.node = yyDollar[1].node @@ -4699,7 +4778,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2503 +// line internal/php5/php5.y:2581 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4712,13 +4791,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2517 +// line internal/php5/php5.y:2595 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2521 +// line internal/php5/php5.y:2599 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4727,13 +4806,18 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2531 +// line internal/php5/php5.y:2609 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -4741,45 +4825,53 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2543 +// line internal/php5/php5.y:2626 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2550 +// line internal/php5/php5.y:2633 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.SkippedTokens) } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2567 +// line internal/php5/php5.y:2654 { - alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} // save position - alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2581 +// line internal/php5/php5.y:2672 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4792,19 +4884,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2595 +// line internal/php5/php5.y:2686 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2599 +// line internal/php5/php5.y:2690 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2606 +// line internal/php5/php5.y:2697 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4815,7 +4907,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2615 +// line internal/php5/php5.y:2706 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4828,130 +4920,136 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2629 +// line internal/php5/php5.y:2720 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2633 +// line internal/php5/php5.y:2724 { - modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{modifier} - - // save position - modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.list = []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + } } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2647 +// line internal/php5/php5.y:2739 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2651 +// line internal/php5/php5.y:2743 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2658 +// line internal/php5/php5.y:2750 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2662 +// line internal/php5/php5.y:2754 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2669 +// line internal/php5/php5.y:2761 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2679 +// line internal/php5/php5.y:2771 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2689 +// line internal/php5/php5.y:2781 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2699 +// line internal/php5/php5.y:2791 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2709 +// line internal/php5/php5.y:2801 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2719 +// line internal/php5/php5.y:2811 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2732 +// line internal/php5/php5.y:2824 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} yyVAL.list = append(yyDollar[1].list, property) // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) property.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) @@ -4961,15 +5059,20 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2748 +// line internal/php5/php5.y:2845 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, property) // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) property.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) @@ -4980,15 +5083,20 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2765 +// line internal/php5/php5.y:2867 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} yyVAL.list = []ast.Vertex{property} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) property.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) @@ -4997,15 +5105,20 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2780 +// line internal/php5/php5.y:2887 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} yyVAL.list = []ast.Vertex{property} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) property.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) @@ -5015,7 +5128,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2799 +// line internal/php5/php5.y:2911 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5028,7 +5141,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Value: yyDollar[3].token.Value, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, EqualTkn: yyDollar[4].token, Expr: yyDollar[5].node, @@ -5040,7 +5154,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2822 +// line internal/php5/php5.y:2935 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5056,7 +5170,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[2].token), }, - Value: yyDollar[2].token.Value, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, EqualTkn: yyDollar[3].token, Expr: yyDollar[4].node, @@ -5068,7 +5183,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2851 +// line internal/php5/php5.y:2965 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5077,7 +5192,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2858 +// line internal/php5/php5.y:2972 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5085,19 +5200,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2868 +// line internal/php5/php5.y:2982 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2872 +// line internal/php5/php5.y:2986 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2879 +// line internal/php5/php5.y:2993 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5106,25 +5221,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2886 +// line internal/php5/php5.y:3000 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2893 +// line internal/php5/php5.y:3007 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2897 +// line internal/php5/php5.y:3011 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2904 +// line internal/php5/php5.y:3018 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5138,7 +5253,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2916 +// line internal/php5/php5.y:3030 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5152,37 +5267,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2931 +// line internal/php5/php5.y:3045 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2935 +// line internal/php5/php5.y:3049 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2939 +// line internal/php5/php5.y:3053 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2946 +// line internal/php5/php5.y:3060 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2950 +// line internal/php5/php5.y:3064 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2957 +// line internal/php5/php5.y:3071 { if yyDollar[3].node != nil { @@ -5198,7 +5313,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2974 +// line internal/php5/php5.y:3088 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5215,7 +5330,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2989 +// line internal/php5/php5.y:3103 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5228,7 +5343,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3000 +// line internal/php5/php5.y:3114 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5242,7 +5357,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3012 +// line internal/php5/php5.y:3126 { var _new *ast.ExprNew @@ -5269,7 +5384,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3037 +// line internal/php5/php5.y:3151 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5281,7 +5396,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3047 +// line internal/php5/php5.y:3161 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5293,7 +5408,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3057 +// line internal/php5/php5.y:3171 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5306,7 +5421,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3068 +// line internal/php5/php5.y:3182 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5319,7 +5434,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3079 +// line internal/php5/php5.y:3193 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5447,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3090 +// line internal/php5/php5.y:3204 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5460,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3101 +// line internal/php5/php5.y:3215 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5473,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3112 +// line internal/php5/php5.y:3226 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5486,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3123 +// line internal/php5/php5.y:3237 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5499,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3134 +// line internal/php5/php5.y:3248 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5397,7 +5512,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3145 +// line internal/php5/php5.y:3259 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5410,7 +5525,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3156 +// line internal/php5/php5.y:3270 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5423,7 +5538,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3167 +// line internal/php5/php5.y:3281 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5551,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3178 +// line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5449,7 +5564,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3189 +// line internal/php5/php5.y:3303 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5461,7 +5576,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3199 +// line internal/php5/php5.y:3313 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5474,7 +5589,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3210 +// line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5486,7 +5601,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3220 +// line internal/php5/php5.y:3334 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5499,7 +5614,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3231 +// line internal/php5/php5.y:3345 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5512,7 +5627,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3242 +// line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5525,7 +5640,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3253 +// line internal/php5/php5.y:3367 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5538,7 +5653,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3264 +// line internal/php5/php5.y:3378 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5666,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3275 +// line internal/php5/php5.y:3389 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5564,7 +5679,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3286 +// line internal/php5/php5.y:3400 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5577,7 +5692,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3297 +// line internal/php5/php5.y:3411 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5590,7 +5705,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3308 +// line internal/php5/php5.y:3422 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5717,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3318 +// line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5730,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3329 +// line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5743,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3340 +// line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5756,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3351 +// line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5769,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3362 +// line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5782,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3373 +// line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5795,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3384 +// line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5808,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3395 +// line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5821,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3406 +// line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5718,7 +5833,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3530 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5730,7 +5845,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3426 +// line internal/php5/php5.y:3540 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5742,7 +5857,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3436 +// line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5754,7 +5869,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3446 +// line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5882,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3457 +// line internal/php5/php5.y:3571 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5895,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3468 +// line internal/php5/php5.y:3582 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5908,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3479 +// line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5922,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3491 +// line internal/php5/php5.y:3605 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5935,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3502 +// line internal/php5/php5.y:3616 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5948,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3513 +// line internal/php5/php5.y:3627 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5961,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3524 +// line internal/php5/php5.y:3638 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5974,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3535 +// line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,19 +5987,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3546 +// line internal/php5/php5.y:3660 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3550 +// line internal/php5/php5.y:3664 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3554 +// line internal/php5/php5.y:3668 { yyVAL.node = yyDollar[2].node @@ -5916,7 +6031,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3584 +// line internal/php5/php5.y:3698 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5930,7 +6045,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3596 +// line internal/php5/php5.y:3710 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5944,13 +6059,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3608 +// line internal/php5/php5.y:3722 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3612 +// line internal/php5/php5.y:3726 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5963,7 +6078,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3623 +// line internal/php5/php5.y:3737 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5976,7 +6091,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3634 +// line internal/php5/php5.y:3748 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5989,7 +6104,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3645 +// line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6002,7 +6117,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3656 +// line internal/php5/php5.y:3770 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6130,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3667 +// line internal/php5/php5.y:3781 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6143,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3678 +// line internal/php5/php5.y:3792 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6156,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3689 +// line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6061,7 +6176,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3707 +// line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6073,25 +6188,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3717 +// line internal/php5/php5.y:3831 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3721 +// line internal/php5/php5.y:3835 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3725 +// line internal/php5/php5.y:3839 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3729 +// line internal/php5/php5.y:3843 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6103,7 +6218,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3739 +// line internal/php5/php5.y:3853 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6115,7 +6230,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3749 +// line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6127,7 +6242,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3759 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6154,7 +6269,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3783 +// line internal/php5/php5.y:3897 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6182,7 +6297,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3811 +// line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6194,7 +6309,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3821 +// line internal/php5/php5.y:3935 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6206,7 +6321,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3831 +// line internal/php5/php5.y:3945 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6219,7 +6334,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3842 +// line internal/php5/php5.y:3956 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6232,7 +6347,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3856 +// line internal/php5/php5.y:3970 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6245,7 +6360,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3867 +// line internal/php5/php5.y:3981 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6258,7 +6373,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3878 +// line internal/php5/php5.y:3992 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6274,7 +6389,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3892 +// line internal/php5/php5.y:4006 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6287,7 +6402,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3906 +// line internal/php5/php5.y:4020 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6301,7 +6416,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3918 +// line internal/php5/php5.y:4032 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6314,19 +6429,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3932 +// line internal/php5/php5.y:4046 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3939 +// line internal/php5/php5.y:4053 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3943 +// line internal/php5/php5.y:4057 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6340,14 +6455,19 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3958 +// line internal/php5/php5.y:4072 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.list = append(yyDollar[1].list, variable) // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) // save comments @@ -6356,15 +6476,20 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3972 +// line internal/php5/php5.y:4091 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} yyVAL.list = append(yyDollar[1].list, reference) // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) reference.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) @@ -6375,14 +6500,19 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3989 +// line internal/php5/php5.y:4113 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.list = []ast.Vertex{variable} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -6390,15 +6520,20 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4002 +// line internal/php5/php5.y:4131 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} yyVAL.list = []ast.Vertex{reference} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) reference.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) @@ -6408,7 +6543,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4021 +// line internal/php5/php5.y:4155 { name := &ast.NameName{ Node: ast.Node{ @@ -6423,7 +6558,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4034 +// line internal/php5/php5.y:4168 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6440,7 +6575,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4049 +// line internal/php5/php5.y:4183 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6456,7 +6591,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4063 +// line internal/php5/php5.y:4197 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6469,7 +6604,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4074 +// line internal/php5/php5.y:4208 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6482,7 +6617,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4085 +// line internal/php5/php5.y:4219 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6495,7 +6630,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4096 +// line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6508,7 +6643,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4107 +// line internal/php5/php5.y:4241 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6520,19 +6655,19 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4120 +// line internal/php5/php5.y:4254 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4130 +// line internal/php5/php5.y:4264 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6543,7 +6678,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4139 +// line internal/php5/php5.y:4273 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6556,7 +6691,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4150 +// line internal/php5/php5.y:4284 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6568,7 +6703,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4163 +// line internal/php5/php5.y:4297 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6579,7 +6714,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4172 +// line internal/php5/php5.y:4306 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6592,7 +6727,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4183 +// line internal/php5/php5.y:4317 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6604,19 +6739,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4196 +// line internal/php5/php5.y:4330 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4200 +// line internal/php5/php5.y:4334 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4207 +// line internal/php5/php5.y:4341 { yyVAL.node = yyDollar[1].node @@ -6657,25 +6792,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4246 +// line internal/php5/php5.y:4380 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4254 +// line internal/php5/php5.y:4388 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4258 +// line internal/php5/php5.y:4392 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4266 +// line internal/php5/php5.y:4400 { yyVAL.list = yyDollar[2].list @@ -6684,13 +6819,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4276 +// line internal/php5/php5.y:4410 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4280 +// line internal/php5/php5.y:4414 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6706,19 +6841,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4294 +// line internal/php5/php5.y:4428 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4301 +// line internal/php5/php5.y:4435 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4439 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6728,25 +6863,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4313 +// line internal/php5/php5.y:4447 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4320 +// line internal/php5/php5.y:4454 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4324 +// line internal/php5/php5.y:4458 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4331 +// line internal/php5/php5.y:4465 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6758,7 +6893,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4475 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6770,7 +6905,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4485 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6782,7 +6917,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4361 +// line internal/php5/php5.y:4495 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6794,7 +6929,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4371 +// line internal/php5/php5.y:4505 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6806,7 +6941,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4381 +// line internal/php5/php5.y:4515 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6818,7 +6953,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4391 +// line internal/php5/php5.y:4525 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6830,7 +6965,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4401 +// line internal/php5/php5.y:4535 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6842,7 +6977,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4411 +// line internal/php5/php5.y:4545 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6854,7 +6989,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4421 +// line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6866,7 +7001,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4431 +// line internal/php5/php5.y:4565 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6880,7 +7015,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4443 +// line internal/php5/php5.y:4577 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6892,41 +7027,45 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4456 +// line internal/php5/php5.y:4590 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4473 +// line internal/php5/php5.y:4611 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4480 +// line internal/php5/php5.y:4618 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4484 +// line internal/php5/php5.y:4622 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4488 +// line internal/php5/php5.y:4626 { name := &ast.NameName{ Node: ast.Node{ @@ -6941,7 +7080,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4639 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6958,7 +7097,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4516 +// line internal/php5/php5.y:4654 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6974,7 +7113,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4530 +// line internal/php5/php5.y:4668 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6988,7 +7127,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4542 +// line internal/php5/php5.y:4680 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7001,13 +7140,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4553 +// line internal/php5/php5.y:4691 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4557 +// line internal/php5/php5.y:4695 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7019,13 +7158,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4567 +// line internal/php5/php5.y:4705 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4574 +// line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7038,7 +7177,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4585 +// line internal/php5/php5.y:4723 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7051,7 +7190,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4734 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7064,7 +7203,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4607 +// line internal/php5/php5.y:4745 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7216,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4618 +// line internal/php5/php5.y:4756 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7090,7 +7229,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4629 +// line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7103,7 +7242,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4640 +// line internal/php5/php5.y:4778 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7116,7 +7255,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4651 +// line internal/php5/php5.y:4789 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7128,7 +7267,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4661 +// line internal/php5/php5.y:4799 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7140,7 +7279,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4671 +// line internal/php5/php5.y:4809 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7153,7 +7292,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4682 +// line internal/php5/php5.y:4820 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7166,7 +7305,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4693 +// line internal/php5/php5.y:4831 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7179,7 +7318,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4704 +// line internal/php5/php5.y:4842 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7192,7 +7331,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4715 +// line internal/php5/php5.y:4853 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7205,7 +7344,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4726 +// line internal/php5/php5.y:4864 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7218,7 +7357,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4737 +// line internal/php5/php5.y:4875 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7231,7 +7370,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4748 +// line internal/php5/php5.y:4886 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7244,7 +7383,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4759 +// line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7257,7 +7396,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4770 +// line internal/php5/php5.y:4908 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7270,7 +7409,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4781 +// line internal/php5/php5.y:4919 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7283,7 +7422,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4792 +// line internal/php5/php5.y:4930 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7435,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4803 +// line internal/php5/php5.y:4941 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7448,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4814 +// line internal/php5/php5.y:4952 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7461,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4825 +// line internal/php5/php5.y:4963 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7336,7 +7475,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4837 +// line internal/php5/php5.y:4975 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7349,7 +7488,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4848 +// line internal/php5/php5.y:4986 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7362,7 +7501,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4859 +// line internal/php5/php5.y:4997 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7514,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4870 +// line internal/php5/php5.y:5008 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7527,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4881 +// line internal/php5/php5.y:5019 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7402,7 +7541,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:4893 +// line internal/php5/php5.y:5031 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7416,7 +7555,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4905 +// line internal/php5/php5.y:5043 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7428,7 +7567,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4915 +// line internal/php5/php5.y:5053 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7440,7 +7579,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4925 +// line internal/php5/php5.y:5063 { yyVAL.node = yyDollar[2].node @@ -7450,13 +7589,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4936 +// line internal/php5/php5.y:5074 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4940 +// line internal/php5/php5.y:5078 { name := &ast.NameName{ Node: ast.Node{ @@ -7471,7 +7610,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4953 +// line internal/php5/php5.y:5091 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7488,7 +7627,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4968 +// line internal/php5/php5.y:5106 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7504,13 +7643,18 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4985 +// line internal/php5/php5.y:5123 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -7518,25 +7662,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4997 +// line internal/php5/php5.y:5140 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5001 +// line internal/php5/php5.y:5144 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5005 +// line internal/php5/php5.y:5148 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5009 +// line internal/php5/php5.y:5152 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7548,7 +7692,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5019 +// line internal/php5/php5.y:5162 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7560,7 +7704,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5029 +// line internal/php5/php5.y:5172 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7572,13 +7716,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5042 +// line internal/php5/php5.y:5185 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5046 +// line internal/php5/php5.y:5189 { yyVAL.list = yyDollar[1].list @@ -7589,19 +7733,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5058 +// line internal/php5/php5.y:5201 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5062 +// line internal/php5/php5.y:5205 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5069 +// line internal/php5/php5.y:5212 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7616,7 +7760,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5082 +// line internal/php5/php5.y:5225 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7630,7 +7774,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5094 +// line internal/php5/php5.y:5237 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7644,7 +7788,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5106 +// line internal/php5/php5.y:5249 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7657,19 +7801,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5120 +// line internal/php5/php5.y:5263 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5124 +// line internal/php5/php5.y:5267 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5131 +// line internal/php5/php5.y:5274 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7686,7 +7830,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5146 +// line internal/php5/php5.y:5289 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7703,25 +7847,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5165 +// line internal/php5/php5.y:5308 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5173 +// line internal/php5/php5.y:5316 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5180 +// line internal/php5/php5.y:5323 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5187 +// line internal/php5/php5.y:5330 { yyVAL.node = yyDollar[1].node @@ -7779,25 +7923,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5243 +// line internal/php5/php5.y:5386 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5250 +// line internal/php5/php5.y:5393 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5254 +// line internal/php5/php5.y:5397 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5262 +// line internal/php5/php5.y:5405 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7811,7 +7955,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5277 +// line internal/php5/php5.y:5420 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7825,7 +7969,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5289 +// line internal/php5/php5.y:5432 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7839,7 +7983,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5304 +// line internal/php5/php5.y:5447 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7848,31 +7992,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5314 +// line internal/php5/php5.y:5457 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5318 +// line internal/php5/php5.y:5461 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5322 +// line internal/php5/php5.y:5465 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5329 +// line internal/php5/php5.y:5472 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5333 +// line internal/php5/php5.y:5476 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7884,7 +8028,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5346 +// line internal/php5/php5.y:5489 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7897,7 +8041,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5357 +// line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7910,13 +8054,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5371 +// line internal/php5/php5.y:5514 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5378 +// line internal/php5/php5.y:5521 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7929,7 +8073,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5389 +// line internal/php5/php5.y:5532 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7942,31 +8086,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5403 +// line internal/php5/php5.y:5546 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5407 +// line internal/php5/php5.y:5550 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5411 +// line internal/php5/php5.y:5554 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5419 +// line internal/php5/php5.y:5562 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5423 +// line internal/php5/php5.y:5566 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -7978,13 +8122,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5433 +// line internal/php5/php5.y:5576 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5440 +// line internal/php5/php5.y:5583 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7997,7 +8141,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5451 +// line internal/php5/php5.y:5594 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8010,19 +8154,24 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5462 +// line internal/php5/php5.y:5605 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5470 +// line internal/php5/php5.y:5613 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -8030,7 +8179,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5482 +// line internal/php5/php5.y:5630 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8044,25 +8193,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5497 +// line internal/php5/php5.y:5645 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5501 +// line internal/php5/php5.y:5649 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5509 +// line internal/php5/php5.y:5657 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5513 +// line internal/php5/php5.y:5661 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8072,7 +8221,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5524 +// line internal/php5/php5.y:5672 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8086,7 +8235,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5536 +// line internal/php5/php5.y:5684 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8100,7 +8249,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5548 +// line internal/php5/php5.y:5696 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8110,19 +8259,19 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5559 +// line internal/php5/php5.y:5707 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5569 +// line internal/php5/php5.y:5717 { yyVAL.node = yyDollar[2].node @@ -8135,7 +8284,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5583 +// line internal/php5/php5.y:5731 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8148,7 +8297,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5594 +// line internal/php5/php5.y:5742 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8165,7 +8314,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5612 +// line internal/php5/php5.y:5760 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8178,7 +8327,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5623 +// line internal/php5/php5.y:5771 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8188,7 +8337,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5635 +// line internal/php5/php5.y:5783 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8200,7 +8349,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5645 +// line internal/php5/php5.y:5793 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8216,19 +8365,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5659 +// line internal/php5/php5.y:5807 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5667 +// line internal/php5/php5.y:5815 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5671 +// line internal/php5/php5.y:5819 { yyVAL.list = yyDollar[1].list @@ -8243,7 +8392,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5687 +// line internal/php5/php5.y:5835 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8258,7 +8407,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5700 +// line internal/php5/php5.y:5848 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8272,7 +8421,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5712 +// line internal/php5/php5.y:5860 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8286,7 +8435,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5724 +// line internal/php5/php5.y:5872 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8299,7 +8448,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5735 +// line internal/php5/php5.y:5883 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8317,7 +8466,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5751 +// line internal/php5/php5.y:5899 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8333,7 +8482,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5765 +// line internal/php5/php5.y:5913 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8350,7 +8499,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5780 +// line internal/php5/php5.y:5928 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8365,13 +8514,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5796 +// line internal/php5/php5.y:5944 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5800 +// line internal/php5/php5.y:5948 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8384,13 +8533,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5811 +// line internal/php5/php5.y:5959 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5815 +// line internal/php5/php5.y:5963 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8403,13 +8552,18 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5829 +// line internal/php5/php5.y:5977 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -8417,14 +8571,19 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5841 +// line internal/php5/php5.y:5994 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -8434,26 +8593,35 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5856 +// line internal/php5/php5.y:6014 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + fetch := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - fetch.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.SkippedTokens) } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5873 +// line internal/php5/php5.y:6040 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8468,15 +8636,20 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5886 +// line internal/php5/php5.y:6053 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, name} yyVAL.node = variable // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments @@ -8485,14 +8658,19 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5901 +// line internal/php5/php5.y:6073 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) @@ -8504,7 +8682,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5918 +// line internal/php5/php5.y:6095 { yyVAL.node = yyDollar[2].node @@ -8514,7 +8692,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5929 +// line internal/php5/php5.y:6106 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8526,7 +8704,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5939 +// line internal/php5/php5.y:6116 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8543,13 +8721,18 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5954 +// line internal/php5/php5.y:6131 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -8557,7 +8740,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5969 +// line internal/php5/php5.y:6151 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8571,7 +8754,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5981 +// line internal/php5/php5.y:6163 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8593,7 +8776,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6001 +// line internal/php5/php5.y:6183 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8615,7 +8798,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6021 +// line internal/php5/php5.y:6203 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8627,7 +8810,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6031 +// line internal/php5/php5.y:6213 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8639,7 +8822,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6041 +// line internal/php5/php5.y:6223 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8661,7 +8844,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6061 +// line internal/php5/php5.y:6243 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8673,7 +8856,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6071 +// line internal/php5/php5.y:6253 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8685,13 +8868,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6084 +// line internal/php5/php5.y:6266 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6088 +// line internal/php5/php5.y:6270 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8700,79 +8883,95 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6098 +// line internal/php5/php5.y:6280 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6102 +// line internal/php5/php5.y:6284 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6109 +// line internal/php5/php5.y:6291 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6123 +// line internal/php5/php5.y:6309 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6140 +// line internal/php5/php5.y:6330 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6157 +// line internal/php5/php5.y:6351 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } } goto yystack /* stack new state and value */ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 47d2df6..22a845a 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -422,7 +422,8 @@ top_statement: Node: ast.Node{ Position: position.NewTokenPosition($2), }, - Value: $2.Value, + IdentifierTkn: $2, + Value: $2.Value, }, UseDeclarations: $3, SemiColonTkn: $4, @@ -439,7 +440,8 @@ top_statement: Node: ast.Node{ Position: position.NewTokenPosition($2), }, - Value: $2.Value, + IdentifierTkn: $2, + Value: $2.Value, }, UseDeclarations: $3, SemiColonTkn: $4, @@ -498,7 +500,8 @@ use_declaration: Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Value: $3.Value, + IdentifierTkn: $3, + Value: $3.Value, }, } } @@ -535,7 +538,8 @@ use_declaration: Node: ast.Node{ Position: position.NewTokenPosition($4), }, - Value: $4.Value, + IdentifierTkn: $4, + Value: $4.Value, }, } } @@ -586,7 +590,8 @@ use_function_declaration: Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Value: $3.Value, + IdentifierTkn: $3, + Value: $3.Value, }, } } @@ -623,7 +628,8 @@ use_function_declaration: Node: ast.Node{ Position: position.NewTokenPosition($4), }, - Value: $4.Value, + IdentifierTkn: $4, + Value: $4.Value, }, } } @@ -674,7 +680,8 @@ use_const_declaration: Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Value: $3.Value, + IdentifierTkn: $3, + Value: $3.Value, }, } } @@ -711,7 +718,8 @@ use_const_declaration: Node: ast.Node{ Position: position.NewTokenPosition($4), }, - Value: $4.Value, + IdentifierTkn: $4, + Value: $4.Value, }, } } @@ -731,7 +739,8 @@ constant_declaration: Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Value: $3.Value, + IdentifierTkn: $3, + Value: $3.Value, }, EqualTkn: $4, Expr: $5, @@ -757,7 +766,8 @@ constant_declaration: Node: ast.Node{ Position: position.NewTokenPosition($2), }, - Value: $2.Value, + IdentifierTkn: $2, + Value: $2.Value, }, EqualTkn: $3, Expr: $4, @@ -828,20 +838,19 @@ statement: } | T_STRING ':' { - label := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.StmtLabel{ Node: ast.Node{ Position: position.NewTokensPosition($1, $2), }, - LabelName: label, + LabelName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, ColonTkn: $2, } - - // save position - label.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, $1.SkippedTokens) } ; @@ -1182,22 +1191,20 @@ unticked_statement: } | T_GOTO T_STRING ';' { - label := &ast.Identifier{ast.Node{}, $2.Value} - $$ = &ast.StmtGoto{ Node: ast.Node{ Position: position.NewTokensPosition($1, $3), }, - GotoTkn: $1, - Label: label, + GotoTkn: $1, + Label: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, SemiColonTkn: $3, } - - // save position - label.GetNode().Position = position.NewTokenPosition($2) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, $2.SkippedTokens) } ; @@ -1208,7 +1215,13 @@ catch_statement: } | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { - identifier := &ast.Identifier{ast.Node{}, $4.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} catch := &ast.StmtCatch{ Node: ast.Node{ @@ -1226,7 +1239,6 @@ catch_statement: $$ = append([]ast.Vertex{catch}, $9...) // save position - identifier.GetNode().Position = position.NewTokenPosition($4) variable.GetNode().Position = position.NewTokenPosition($4) // save comments @@ -1278,7 +1290,13 @@ non_empty_additional_catches: additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { - identifier := &ast.Identifier{ast.Node{}, $4.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtCatch{ Node: ast.Node{ @@ -1295,7 +1313,6 @@ additional_catch: } // save position - identifier.GetNode().Position = position.NewTokenPosition($4) variable.GetNode().Position = position.NewTokenPosition($4) // save comments @@ -1365,22 +1382,23 @@ is_variadic: unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $3.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $5, nil, $8} // save position - name.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewTokensPosition($1, $9) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) if $2 != nil { yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Params, $7.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) @@ -1390,7 +1408,13 @@ unticked_function_declaration_statement: unticked_class_declaration_statement: class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $2.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } switch n := $1.(type) { case *ast.StmtClass : n.ClassName = name @@ -1406,26 +1430,28 @@ unticked_class_declaration_statement: $$ = $1 // save position - name.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewNodeTokenPosition($1, $7) // save comments - yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.SkippedTokens) } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $2.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } $$ = &ast.StmtInterface{ast.Node{}, name, $3, $5} // save position - name.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.SkippedTokens) } @@ -1445,11 +1471,16 @@ class_entry_type: } | T_ABSTRACT T_CLASS { - classModifier := &ast.Identifier{ast.Node{}, $1.Value} + classModifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments @@ -1458,21 +1489,26 @@ class_entry_type: } | T_TRAIT { - $$ = &ast.StmtTrait{ast.Node{}, nil, nil} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_FINAL T_CLASS { - classModifier := &ast.Identifier{ast.Node{}, $1.Value} + classModifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} // save position - classModifier.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments @@ -1703,7 +1739,8 @@ declare_list: Node: ast.Node{ Position: position.NewTokenPosition($1), }, - Value: $1.Value, + IdentifierTkn: $1, + Value: $1.Value, }, EqualTkn: $2, Expr: $3, @@ -1726,7 +1763,8 @@ declare_list: Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Value: $3.Value, + IdentifierTkn: $3, + Value: $3.Value, }, EqualTkn: $4, Expr: $5, @@ -1989,8 +2027,13 @@ non_empty_parameter_list: parameter: optional_class_type is_reference is_variadic T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $4.Value} - identifier.GetNode().Position = position.NewTokenPosition($4) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -2023,8 +2066,13 @@ parameter: } | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, $4.Value} - identifier.GetNode().Position = position.NewTokenPosition($4) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -2066,23 +2114,23 @@ optional_class_type: } | T_ARRAY { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_CALLABLE { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | fully_qualified_class_name { @@ -2207,11 +2255,16 @@ global_var_list: global_var: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -2245,7 +2298,13 @@ global_var: static_var_list: static_var_list ',' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $3.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ @@ -2259,7 +2318,6 @@ static_var_list: $$ = $1 // save position - identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) // save comments @@ -2267,7 +2325,13 @@ static_var_list: } | static_var_list ',' T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, $3.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ @@ -2283,7 +2347,6 @@ static_var_list: $$ = $1 // save position - identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) // save comments @@ -2291,7 +2354,13 @@ static_var_list: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStatic{ @@ -2306,7 +2375,6 @@ static_var_list: } // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -2314,7 +2382,13 @@ static_var_list: } | T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStatic{ @@ -2331,7 +2405,6 @@ static_var_list: } // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -2377,11 +2450,16 @@ class_statement: } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { - name := &ast.Identifier{ast.Node{}, $4.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $6, nil, $8} // save position - name.GetNode().Position = position.NewTokenPosition($4) if $1 == nil { $$.GetNode().Position = position.NewTokenNodePosition($2, $8) } else { @@ -2529,11 +2607,16 @@ trait_reference_list: trait_method_reference: T_STRING { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -2548,34 +2631,42 @@ trait_method_reference: trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.SkippedTokens) } ; trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { - alias := &ast.Identifier{ast.Node{}, $4.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} // save position - alias.GetNode().Position = position.NewTokenPosition($4) $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) } | trait_method_reference T_AS member_modifier { @@ -2631,14 +2722,15 @@ variable_modifiers: } | T_VAR { - modifier := &ast.Identifier{ast.Node{}, $1.Value} - $$ = []ast.Vertex{modifier} - - // save position - modifier.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.SkippedTokens) + $$ = []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + } } ; @@ -2667,76 +2759,81 @@ non_empty_member_modifiers: member_modifier: T_PUBLIC { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_PROTECTED { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_PRIVATE { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_STATIC { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_ABSTRACT { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_FINAL { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } ; class_variable_declaration: class_variable_declaration ',' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $3.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} $$ = append($1, property) // save position - identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) property.GetNode().Position = position.NewTokenPosition($3) @@ -2746,13 +2843,18 @@ class_variable_declaration: } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, $3.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, $5} $$ = append($1, property) // save position - identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) property.GetNode().Position = position.NewTokenNodePosition($3, $5) @@ -2763,13 +2865,18 @@ class_variable_declaration: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, nil} $$ = []ast.Vertex{property} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) property.GetNode().Position = position.NewTokenPosition($1) @@ -2778,13 +2885,18 @@ class_variable_declaration: } | T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} property := &ast.StmtProperty{ast.Node{}, variable, $3} $$ = []ast.Vertex{property} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) property.GetNode().Position = position.NewTokenNodePosition($1, $3) @@ -2808,7 +2920,8 @@ class_constant_declaration: Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Value: $3.Value, + IdentifierTkn: $3, + Value: $3.Value, }, EqualTkn: $4, Expr: $5, @@ -2834,7 +2947,8 @@ class_constant_declaration: Node: ast.Node{ Position: position.NewTokenPosition($2), }, - Value: $2.Value, + IdentifierTkn: $2, + Value: $2.Value, }, EqualTkn: $3, Expr: $4, @@ -3956,12 +4070,17 @@ lexical_vars: lexical_var_list: lexical_var_list ',' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $3.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = append($1, variable) // save position - identifier.GetNode().Position = position.NewTokenPosition($3) variable.GetNode().Position = position.NewTokenPosition($3) // save comments @@ -3970,13 +4089,18 @@ lexical_var_list: } | lexical_var_list ',' '&' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $4.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} $$ = append($1, reference) // save position - identifier.GetNode().Position = position.NewTokenPosition($4) variable.GetNode().Position = position.NewTokenPosition($4) reference.GetNode().Position = position.NewTokensPosition($3, $4) @@ -3987,12 +4111,17 @@ lexical_var_list: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = []ast.Vertex{variable} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -4000,13 +4129,18 @@ lexical_var_list: } | '&' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $2.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} reference := &ast.ExprReference{ast.Node{}, variable} $$ = []ast.Vertex{reference} // save position - identifier.GetNode().Position = position.NewTokenPosition($2) variable.GetNode().Position = position.NewTokenPosition($2) reference.GetNode().Position = position.NewTokensPosition($1, $2) @@ -4118,13 +4252,13 @@ function_call: class_name: T_STATIC { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | namespace_name { @@ -4454,17 +4588,21 @@ common_scalar: static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; @@ -4983,11 +5121,16 @@ general_constant: scalar: T_STRING_VARNAME { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -5468,11 +5611,16 @@ reference_variable: compound_variable: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -5557,13 +5705,13 @@ object_dim_list: variable_name: T_STRING { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | '{' expr '}' { @@ -5827,11 +5975,16 @@ encaps_list: encaps_var: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -5839,12 +5992,17 @@ encaps_var: } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokensPosition($1, $4) @@ -5854,20 +6012,29 @@ encaps_var: } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ast.Node{}, $3.Value} + fetch := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - fetch.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { @@ -5884,13 +6051,18 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - name := &ast.Identifier{ast.Node{}, $2.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } variable := &ast.ExprVariable{ast.Node{}, name} $$ = variable // save position - name.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments @@ -5899,12 +6071,17 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { - identifier := &ast.Identifier{ast.Node{}, $2.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} // save position - identifier.GetNode().Position = position.NewTokenPosition($2) variable.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $6) @@ -5952,11 +6129,16 @@ encaps_var_offset: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -6107,65 +6289,81 @@ isset_variable: class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index cde883b..3af3c85 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -340,13 +340,14 @@ var yyToknames = [...]string{ "'>'", "'.'", } + var yyStatenames = [...]string{} const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4808 +// line internal/php7/php7.y:4941 // line yacctab:1 var yyExca = [...]int{ @@ -545,7 +546,6 @@ const yyPrivate = 57344 const yyLast = 7766 var yyAct = [...]int{ - 28, 132, 765, 631, 843, 880, 866, 585, 442, 748, 842, 109, 785, 820, 191, 839, 635, 682, 113, 634, 668, 128, 140, 140, 140, 712, 650, 153, 380, 572, @@ -1324,8 +1324,8 @@ var yyAct = [...]int{ 0, 0, 0, 0, 235, 0, 672, 0, 0, 670, 0, 0, 0, 0, 0, 108, } -var yyPact = [...]int{ +var yyPact = [...]int{ -1000, -1000, 1251, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 264, 483, 651, 766, -1000, -1000, -1000, 262, 4342, 261, 259, 5524, 5524, 5524, 183, 776, 5524, -1000, 6743, 258, @@ -1421,8 +1421,8 @@ var yyPact = [...]int{ -1000, 285, -40, -1000, -1000, 7446, -1000, -1000, 1567, 103, -1000, -1000, 269, 283, -1000, -1000, -1000, 1409, -1000, } -var yyPgo = [...]int{ +var yyPgo = [...]int{ 0, 931, 929, 14, 8, 928, 4, 29, 13, 927, 11, 44, 78, 71, 52, 48, 926, 26, 924, 83, 21, 82, 916, 0, 84, 915, 914, 42, 190, 32, @@ -1437,8 +1437,8 @@ var yyPgo = [...]int{ 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } -var yyR1 = [...]int{ +var yyR1 = [...]int{ 0, 127, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -1490,8 +1490,8 @@ var yyR1 = [...]int{ 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, 50, 50, 113, 113, 77, } -var yyR2 = [...]int{ +var yyR2 = [...]int{ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1543,8 +1543,8 @@ var yyR2 = [...]int{ 3, 1, 1, 2, 1, 5, 4, 2, 2, 4, 2, 2, 1, 3, 1, } -var yyChk = [...]int{ +var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, 52, 80, 45, 39, 144, -69, -71, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, @@ -1640,8 +1640,8 @@ var yyChk = [...]int{ -128, 148, -125, 10, -4, -96, -6, 146, -118, -119, -6, 145, 149, -79, -86, 146, 144, -118, 145, } -var yyDef = [...]int{ +var yyDef = [...]int{ 80, -2, -2, 79, 86, 87, 88, 89, 90, 91, 0, 0, 0, 0, 124, 133, 134, 0, 0, 0, 0, 423, 423, 423, 0, 388, 0, 145, 0, 0, @@ -1737,8 +1737,8 @@ var yyDef = [...]int{ 284, -2, 256, 257, 258, 260, 263, 189, 0, 0, 259, 157, 226, 0, 246, 264, 124, 0, 265, } -var yyTok1 = [...]int{ +var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -1753,8 +1753,8 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 144, 161, 145, 157, } -var yyTok2 = [...]int{ +var yyTok2 = [...]int{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, @@ -1770,6 +1770,7 @@ var yyTok2 = [...]int{ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, } + var yyTok3 = [...]int{ 0, } @@ -2113,7 +2114,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:294 + // line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2124,469 +2125,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:328 + // line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:335 + // line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2599,13 +2600,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:346 + // line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:353 + // line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2619,7 +2620,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:365 + // line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2632,7 +2633,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:379 + // line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2643,7 +2644,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:388 + // line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2656,7 +2657,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:399 + // line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2668,44 +2669,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:412 + // line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:437 + // line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2719,7 +2720,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:449 + // line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2738,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:465 + // line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2757,7 +2758,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:483 + // line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2771,7 +2772,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:495 + // line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2783,7 +2784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:505 + // line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2796,7 +2797,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:516 + // line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2809,7 +2810,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:527 + // line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2823,7 +2824,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:539 + // line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2837,31 +2838,31 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:554 + // line internal/php7/php7.y:554 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:564 + // line internal/php7/php7.y:564 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:577 + // line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2885,7 +2886,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:599 + // line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2908,7 +2909,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:623 + // line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2930,7 +2931,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:643 + // line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2953,19 +2954,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:671 + // line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:678 + // line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2973,13 +2974,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:684 + // line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:691 + // line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2987,13 +2988,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:697 + // line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:704 + // line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3001,19 +3002,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:710 + // line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:721 + // line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3023,7 +3024,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:732 + // line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3039,7 +3040,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:746 + // line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3056,19 +3057,20 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Value: yyDollar[3].token.Value, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, } } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:770 + // line internal/php7/php7.y:771 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:774 + // line internal/php7/php7.y:775 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3078,7 +3080,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:785 + // line internal/php7/php7.y:786 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3087,7 +3089,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:792 + // line internal/php7/php7.y:793 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3095,7 +3097,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:801 + // line internal/php7/php7.y:802 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3108,50 +3110,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:812 + // line internal/php7/php7.y:813 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:819 + // line internal/php7/php7.y:820 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:824 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:828 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:832 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:836 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:840 + // line internal/php7/php7.y:841 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:844 + // line internal/php7/php7.y:845 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3165,7 +3167,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:858 + // line internal/php7/php7.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3178,19 +3180,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:869 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:873 + // line internal/php7/php7.y:874 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:877 + // line internal/php7/php7.y:878 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3202,7 +3204,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:887 + // line internal/php7/php7.y:888 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3219,7 +3221,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:902 + // line internal/php7/php7.y:903 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3235,7 +3237,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:916 + // line internal/php7/php7.y:917 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3247,7 +3249,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:926 + // line internal/php7/php7.y:927 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3260,7 +3262,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:937 + // line internal/php7/php7.y:938 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3273,7 +3275,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:948 + // line internal/php7/php7.y:949 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3286,7 +3288,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:959 + // line internal/php7/php7.y:960 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3296,7 +3298,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:967 + // line internal/php7/php7.y:968 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3306,7 +3308,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:975 + // line internal/php7/php7.y:976 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3316,7 +3318,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:983 + // line internal/php7/php7.y:984 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3328,7 +3330,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:993 + // line internal/php7/php7.y:994 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3342,7 +3344,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1005 + // line internal/php7/php7.y:1006 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3355,7 +3357,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1016 + // line internal/php7/php7.y:1017 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3369,7 +3371,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1028 + // line internal/php7/php7.y:1029 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3385,7 +3387,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1042 + // line internal/php7/php7.y:1043 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3398,7 +3400,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1053 + // line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3409,7 +3411,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1062 + // line internal/php7/php7.y:1063 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3428,7 +3430,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1079 + // line internal/php7/php7.y:1080 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3441,55 +3443,58 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1090 + // line internal/php7/php7.y:1091 { - label := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, - GotoTkn: yyDollar[1].token, - Label: label, + GotoTkn: yyDollar[1].token, + Label: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, SemiColonTkn: yyDollar[3].token, } - - // save position - label.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[2].token.SkippedTokens) } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1109 + // line internal/php7/php7.y:1108 { - label := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), }, - LabelName: label, - ColonTkn: yyDollar[2].token, + LabelName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + ColonTkn: yyDollar[2].token, } - - // save position - label.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, yyDollar[1].token.SkippedTokens) } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1128 + // line internal/php7/php7.y:1126 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1132 + // line internal/php7/php7.y:1130 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[5].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[5].token), + }, + IdentifierTkn: yyDollar[5].token, + Value: yyDollar[5].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} catch := yyDollar[4].node.(*ast.StmtCatch) @@ -3505,7 +3510,6 @@ yydefault: yyVAL.list = append(yyDollar[1].list, catch) // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[5].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[5].token) // save comments @@ -3513,7 +3517,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1158 + // line internal/php7/php7.y:1161 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3521,7 +3525,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1164 + // line internal/php7/php7.y:1167 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3530,13 +3534,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1174 + // line internal/php7/php7.y:1177 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1178 + // line internal/php7/php7.y:1181 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3550,7 +3554,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1193 + // line internal/php7/php7.y:1196 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3558,7 +3562,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1199 + // line internal/php7/php7.y:1202 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3567,30 +3571,31 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1209 + // line internal/php7/php7.y:1212 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1216 + // line internal/php7/php7.y:1219 { - name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) if yyDollar[2].token != nil { yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.SkippedTokens) @@ -3603,142 +3608,156 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1247 + // line internal/php7/php7.y:1251 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1251 + // line internal/php7/php7.y:1255 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1258 + // line internal/php7/php7.y:1262 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1262 + // line internal/php7/php7.y:1266 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1269 + // line internal/php7/php7.y:1273 { - name := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[7].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1292 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.SkippedTokens) } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1303 + // line internal/php7/php7.y:1313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1307 + // line internal/php7/php7.y:1317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1314 + // line internal/php7/php7.y:1324 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1324 + // line internal/php7/php7.y:1334 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1337 + // line internal/php7/php7.y:1347 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.SkippedTokens) } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1355 + // line internal/php7/php7.y:1369 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.SkippedTokens) } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1373 + // line internal/php7/php7.y:1391 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1377 + // line internal/php7/php7.y:1395 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3750,13 +3769,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1390 + // line internal/php7/php7.y:1408 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1394 + // line internal/php7/php7.y:1412 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3768,13 +3787,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1407 + // line internal/php7/php7.y:1425 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1411 + // line internal/php7/php7.y:1429 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3786,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1424 + // line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1428 + // line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3804,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1438 + // line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3818,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1450 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3831,7 +3850,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1464 + // line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3842,7 +3861,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1473 + // line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3862,7 +3881,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1494 + // line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3873,7 +3892,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1503 + // line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3893,7 +3912,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1524 + // line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3904,7 +3923,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1533 + // line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3924,7 +3943,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1554 + // line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3937,7 +3956,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1565 + // line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3951,7 +3970,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1577 + // line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3966,7 +3985,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1590 + // line internal/php7/php7.y:1608 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3982,13 +4001,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1607 + // line internal/php7/php7.y:1625 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1611 + // line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4002,7 +4021,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1623 + // line internal/php7/php7.y:1641 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4015,19 +4034,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1637 + // line internal/php7/php7.y:1655 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1659 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1648 + // line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4038,7 +4057,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1657 + // line internal/php7/php7.y:1675 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4077,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1678 + // line internal/php7/php7.y:1696 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4073,7 +4092,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1691 + // line internal/php7/php7.y:1709 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4092,13 +4111,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1711 + // line internal/php7/php7.y:1729 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1715 + // line internal/php7/php7.y:1733 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4114,7 +4133,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1732 + // line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4136,7 +4155,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1752 + // line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4160,7 +4179,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1777 + // line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4170,7 +4189,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1785 + // line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4194,25 +4213,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1810 + // line internal/php7/php7.y:1828 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1814 + // line internal/php7/php7.y:1832 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1821 + // line internal/php7/php7.y:1839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1825 + // line internal/php7/php7.y:1843 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4221,10 +4240,15 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1835 + // line internal/php7/php7.y:1853 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -4257,10 +4281,15 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1869 + // line internal/php7/php7.y:1892 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -4294,25 +4323,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1907 + // line internal/php7/php7.y:1935 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1911 + // line internal/php7/php7.y:1939 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1918 + // line internal/php7/php7.y:1946 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1922 + // line internal/php7/php7.y:1950 { yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} @@ -4324,43 +4353,43 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1963 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1945 + // line internal/php7/php7.y:1973 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1955 + // line internal/php7/php7.y:1983 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1962 + // line internal/php7/php7.y:1990 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1966 + // line internal/php7/php7.y:1994 { yyVAL.node = yyDollar[2].node @@ -4369,7 +4398,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1976 + // line internal/php7/php7.y:2004 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4382,7 +4411,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1987 + // line internal/php7/php7.y:2015 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4399,13 +4428,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2005 + // line internal/php7/php7.y:2033 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2009 + // line internal/php7/php7.y:2037 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4414,7 +4443,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2019 + // line internal/php7/php7.y:2047 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4426,7 +4455,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2029 + // line internal/php7/php7.y:2057 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4438,7 +4467,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2070 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4447,7 +4476,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2049 + // line internal/php7/php7.y:2077 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4455,13 +4484,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2058 + // line internal/php7/php7.y:2086 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2065 + // line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4470,7 +4499,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2072 + // line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4478,9 +4507,15 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2081 + // line internal/php7/php7.y:2109 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ @@ -4491,7 +4526,6 @@ yydefault: } // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -4499,9 +4533,15 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2100 + // line internal/php7/php7.y:2133 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4513,7 +4553,6 @@ yydefault: } // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -4521,19 +4560,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2123 + // line internal/php7/php7.y:2161 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2127 + // line internal/php7/php7.y:2165 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2134 + // line internal/php7/php7.y:2172 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4547,7 +4586,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2146 + // line internal/php7/php7.y:2184 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4561,7 +4600,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2158 + // line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4573,13 +4612,18 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2168 + // line internal/php7/php7.y:2206 { - name := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].list == nil { yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) } else { @@ -4599,18 +4643,17 @@ yydefault: yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.SkippedTokens) } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2242 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2204 + // line internal/php7/php7.y:2246 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4624,7 +4667,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2216 + // line internal/php7/php7.y:2258 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4635,7 +4678,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2225 + // line internal/php7/php7.y:2267 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4647,7 +4690,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2235 + // line internal/php7/php7.y:2277 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4659,19 +4702,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2248 + // line internal/php7/php7.y:2290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2252 + // line internal/php7/php7.y:2294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2259 + // line internal/php7/php7.y:2301 { yyVAL.node = yyDollar[1].node @@ -4681,7 +4724,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2267 + // line internal/php7/php7.y:2309 { yyVAL.node = yyDollar[1].node @@ -4691,7 +4734,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2278 + // line internal/php7/php7.y:2320 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4704,55 +4747,67 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2292 + // line internal/php7/php7.y:2334 { - alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} // save position - alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2306 + // line internal/php7/php7.y:2352 { - alias := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} // save position - alias.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[3].token.SkippedTokens) } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2320 + // line internal/php7/php7.y:2370 { - alias := &ast.Identifier{ast.Node{}, yyDollar[4].token.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + } yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} // save position - alias.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, yyDollar[4].token.SkippedTokens) } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2334 + // line internal/php7/php7.y:2388 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4765,13 +4820,18 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2348 + // line internal/php7/php7.y:2402 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -4779,29 +4839,33 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2360 + // line internal/php7/php7.y:2419 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2367 + // line internal/php7/php7.y:2426 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[2].token.SkippedTokens) } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2384 + // line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4812,7 +4876,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2456 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4825,122 +4889,123 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2407 + // line internal/php7/php7.y:2470 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2474 { - modifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{modifier} - - // save position - modifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.list = []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + } } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2489 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2429 + // line internal/php7/php7.y:2493 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2436 + // line internal/php7/php7.y:2500 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2440 + // line internal/php7/php7.y:2504 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2511 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2457 + // line internal/php7/php7.y:2521 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2531 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2477 + // line internal/php7/php7.y:2541 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2487 + // line internal/php7/php7.y:2551 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2497 + // line internal/php7/php7.y:2561 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2510 + // line internal/php7/php7.y:2574 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4949,20 +5014,25 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2517 + // line internal/php7/php7.y:2581 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2524 + // line internal/php7/php7.y:2588 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, nil} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) @@ -4971,14 +5041,19 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2538 + // line internal/php7/php7.y:2607 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) @@ -4988,7 +5063,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2556 + // line internal/php7/php7.y:2630 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -4996,13 +5071,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2636 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2569 + // line internal/php7/php7.y:2643 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5012,7 +5087,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - Value: yyDollar[1].token.Value, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, }, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5022,7 +5098,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2590 + // line internal/php7/php7.y:2665 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5032,7 +5108,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - Value: yyDollar[1].token.Value, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, }, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5042,7 +5119,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2687 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5051,7 +5128,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2618 + // line internal/php7/php7.y:2694 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5059,25 +5136,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2627 + // line internal/php7/php7.y:2703 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2634 + // line internal/php7/php7.y:2710 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2714 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2645 + // line internal/php7/php7.y:2721 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5086,13 +5163,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2652 + // line internal/php7/php7.y:2728 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2659 + // line internal/php7/php7.y:2735 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5110,7 +5187,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2678 + // line internal/php7/php7.y:2754 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5125,7 +5202,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2767 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5137,7 +5214,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2704 + // line internal/php7/php7.y:2780 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5154,7 +5231,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2719 + // line internal/php7/php7.y:2795 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5170,7 +5247,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2733 + // line internal/php7/php7.y:2809 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5183,7 +5260,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2744 + // line internal/php7/php7.y:2820 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5197,7 +5274,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5209,7 +5286,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2766 + // line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5222,7 +5299,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2777 + // line internal/php7/php7.y:2853 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5235,7 +5312,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2864 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5248,7 +5325,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2799 + // line internal/php7/php7.y:2875 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5261,7 +5338,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2810 + // line internal/php7/php7.y:2886 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5274,7 +5351,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2821 + // line internal/php7/php7.y:2897 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5287,7 +5364,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2832 + // line internal/php7/php7.y:2908 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5300,7 +5377,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2843 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5313,7 +5390,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2854 + // line internal/php7/php7.y:2930 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5326,7 +5403,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2865 + // line internal/php7/php7.y:2941 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5339,7 +5416,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2876 + // line internal/php7/php7.y:2952 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5352,7 +5429,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2887 + // line internal/php7/php7.y:2963 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5365,7 +5442,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2898 + // line internal/php7/php7.y:2974 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5378,7 +5455,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2909 + // line internal/php7/php7.y:2985 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5391,7 +5468,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2920 + // line internal/php7/php7.y:2996 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5403,7 +5480,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2930 + // line internal/php7/php7.y:3006 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5416,7 +5493,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2941 + // line internal/php7/php7.y:3017 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5428,7 +5505,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2951 + // line internal/php7/php7.y:3027 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5441,7 +5518,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2962 + // line internal/php7/php7.y:3038 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5454,7 +5531,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2973 + // line internal/php7/php7.y:3049 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5467,7 +5544,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2984 + // line internal/php7/php7.y:3060 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5480,7 +5557,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2995 + // line internal/php7/php7.y:3071 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5493,7 +5570,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3006 + // line internal/php7/php7.y:3082 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5506,7 +5583,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3017 + // line internal/php7/php7.y:3093 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5519,7 +5596,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3028 + // line internal/php7/php7.y:3104 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5532,7 +5609,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3039 + // line internal/php7/php7.y:3115 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5544,7 +5621,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3049 + // line internal/php7/php7.y:3125 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5557,7 +5634,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3060 + // line internal/php7/php7.y:3136 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5570,7 +5647,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3147 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5583,7 +5660,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3082 + // line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5596,7 +5673,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3093 + // line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5609,7 +5686,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5622,7 +5699,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3115 + // line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5635,7 +5712,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3126 + // line internal/php7/php7.y:3202 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5648,7 +5725,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3137 + // line internal/php7/php7.y:3213 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5660,7 +5737,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3147 + // line internal/php7/php7.y:3223 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5672,7 +5749,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3157 + // line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5684,7 +5761,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3167 + // line internal/php7/php7.y:3243 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5696,7 +5773,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3177 + // line internal/php7/php7.y:3253 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5709,7 +5786,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3188 + // line internal/php7/php7.y:3264 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5722,7 +5799,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3199 + // line internal/php7/php7.y:3275 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5735,7 +5812,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3210 + // line internal/php7/php7.y:3286 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5749,7 +5826,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3222 + // line internal/php7/php7.y:3298 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5762,7 +5839,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3233 + // line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5775,7 +5852,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3244 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5788,7 +5865,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3255 + // line internal/php7/php7.y:3331 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5801,7 +5878,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3266 + // line internal/php7/php7.y:3342 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5814,7 +5891,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3353 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5827,7 +5904,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3288 + // line internal/php7/php7.y:3364 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5844,13 +5921,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3303 + // line internal/php7/php7.y:3379 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3307 + // line internal/php7/php7.y:3383 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5864,7 +5941,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3319 + // line internal/php7/php7.y:3395 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5878,7 +5955,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3331 + // line internal/php7/php7.y:3407 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5891,13 +5968,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3342 + // line internal/php7/php7.y:3418 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3346 + // line internal/php7/php7.y:3422 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5910,7 +5987,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3357 + // line internal/php7/php7.y:3433 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -5923,7 +6000,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3368 + // line internal/php7/php7.y:3444 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -5936,7 +6013,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3379 + // line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -5949,7 +6026,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3390 + // line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -5962,7 +6039,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3401 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -5975,7 +6052,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3412 + // line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -5988,7 +6065,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3423 + // line internal/php7/php7.y:3499 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6008,7 +6085,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3441 + // line internal/php7/php7.y:3517 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6020,13 +6097,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3451 + // line internal/php7/php7.y:3527 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3455 + // line internal/php7/php7.y:3531 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6038,7 +6115,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3465 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6050,7 +6127,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3475 + // line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6062,7 +6139,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3485 + // line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6074,7 +6151,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3495 + // line internal/php7/php7.y:3571 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6087,7 +6164,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3506 + // line internal/php7/php7.y:3582 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6099,13 +6176,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3592 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3520 + // line internal/php7/php7.y:3596 { yyVAL.node = yyDollar[2].node @@ -6126,7 +6203,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3541 + // line internal/php7/php7.y:3617 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6157,7 +6234,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3644 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6183,25 +6260,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3598 + // line internal/php7/php7.y:3674 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3602 + // line internal/php7/php7.y:3678 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3609 + // line internal/php7/php7.y:3685 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3613 + // line internal/php7/php7.y:3689 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6215,7 +6292,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3628 + // line internal/php7/php7.y:3704 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6224,19 +6301,24 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3635 + // line internal/php7/php7.y:3711 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3642 + // line internal/php7/php7.y:3718 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -6244,14 +6326,19 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3654 + // line internal/php7/php7.y:3735 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprReference{ast.Node{}, variable} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) @@ -6261,7 +6348,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3758 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6273,7 +6360,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3682 + // line internal/php7/php7.y:3768 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6286,7 +6373,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3693 + // line internal/php7/php7.y:3779 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6299,7 +6386,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3704 + // line internal/php7/php7.y:3790 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6311,43 +6398,43 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3717 + // line internal/php7/php7.y:3803 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3727 + // line internal/php7/php7.y:3813 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3734 + // line internal/php7/php7.y:3820 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3738 + // line internal/php7/php7.y:3824 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3745 + // line internal/php7/php7.y:3831 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3749 + // line internal/php7/php7.y:3835 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6364,13 +6451,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3767 + // line internal/php7/php7.y:3853 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3771 + // line internal/php7/php7.y:3857 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6380,25 +6467,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3779 + // line internal/php7/php7.y:3865 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3872 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3790 + // line internal/php7/php7.y:3876 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3797 + // line internal/php7/php7.y:3883 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6412,7 +6499,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6425,7 +6512,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3820 + // line internal/php7/php7.y:3906 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6437,7 +6524,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3833 + // line internal/php7/php7.y:3919 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6449,7 +6536,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3843 + // line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6461,7 +6548,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3939 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6473,7 +6560,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3949 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6485,7 +6572,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3873 + // line internal/php7/php7.y:3959 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6497,7 +6584,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3883 + // line internal/php7/php7.y:3969 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6509,7 +6596,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3893 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6521,7 +6608,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3903 + // line internal/php7/php7.y:3989 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6533,7 +6620,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3913 + // line internal/php7/php7.y:3999 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6545,7 +6632,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3923 + // line internal/php7/php7.y:4009 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6557,7 +6644,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3933 + // line internal/php7/php7.y:4019 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6571,7 +6658,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3945 + // line internal/php7/php7.y:4031 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6583,7 +6670,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3955 + // line internal/php7/php7.y:4041 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6595,7 +6682,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3965 + // line internal/php7/php7.y:4051 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6607,19 +6694,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3975 + // line internal/php7/php7.y:4061 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3979 + // line internal/php7/php7.y:4065 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3986 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6631,75 +6718,83 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3996 + // line internal/php7/php7.y:4082 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4010 + // line internal/php7/php7.y:4100 { - target := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} // save position - target.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, yyDollar[3].token.SkippedTokens) } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4027 + // line internal/php7/php7.y:4121 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4031 + // line internal/php7/php7.y:4125 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4038 + // line internal/php7/php7.y:4132 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4049 + // line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4056 + // line internal/php7/php7.y:4150 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4060 + // line internal/php7/php7.y:4154 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6716,19 +6811,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4082 + // line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4180 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6745,19 +6840,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4195 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4202 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4112 + // line internal/php7/php7.y:4206 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6770,7 +6865,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4123 + // line internal/php7/php7.y:4217 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6783,7 +6878,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4134 + // line internal/php7/php7.y:4228 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6796,7 +6891,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4145 + // line internal/php7/php7.y:4239 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6809,25 +6904,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4156 + // line internal/php7/php7.y:4250 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4163 + // line internal/php7/php7.y:4257 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4167 + // line internal/php7/php7.y:4261 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4171 + // line internal/php7/php7.y:4265 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6840,13 +6935,18 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4185 + // line internal/php7/php7.y:4279 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -6854,7 +6954,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4296 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6868,7 +6968,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6880,7 +6980,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4222 + // line internal/php7/php7.y:4321 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6893,7 +6993,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4233 + // line internal/php7/php7.y:4332 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6906,13 +7006,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4346 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6925,7 +7025,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4262 + // line internal/php7/php7.y:4361 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6938,7 +7038,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4273 + // line internal/php7/php7.y:4372 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6951,7 +7051,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4284 + // line internal/php7/php7.y:4383 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6964,7 +7064,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4295 + // line internal/php7/php7.y:4394 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6977,19 +7077,19 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4309 + // line internal/php7/php7.y:4408 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4319 + // line internal/php7/php7.y:4418 { yyVAL.node = yyDollar[2].node @@ -6999,25 +7099,25 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4327 + // line internal/php7/php7.y:4426 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4334 + // line internal/php7/php7.y:4433 { - yyVAL.node = &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4344 + // line internal/php7/php7.y:4443 { yyVAL.node = yyDollar[2].node @@ -7027,31 +7127,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4352 + // line internal/php7/php7.y:4451 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4359 + // line internal/php7/php7.y:4458 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4366 + // line internal/php7/php7.y:4465 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4370 + // line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4377 + // line internal/php7/php7.y:4476 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7064,7 +7164,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4487 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7074,7 +7174,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4399 + // line internal/php7/php7.y:4498 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7087,7 +7187,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4410 + // line internal/php7/php7.y:4509 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7099,7 +7199,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4420 + // line internal/php7/php7.y:4519 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7115,7 +7215,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4434 + // line internal/php7/php7.y:4533 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7129,7 +7229,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4446 + // line internal/php7/php7.y:4545 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7141,7 +7241,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4456 + // line internal/php7/php7.y:4555 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7160,7 +7260,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4473 + // line internal/php7/php7.y:4572 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7177,13 +7277,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4491 + // line internal/php7/php7.y:4590 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4594 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7196,13 +7296,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4506 + // line internal/php7/php7.y:4605 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4510 + // line internal/php7/php7.y:4609 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7215,13 +7315,18 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4524 + // line internal/php7/php7.y:4623 { - name := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -7229,14 +7334,19 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4536 + // line internal/php7/php7.y:4640 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -7246,26 +7356,35 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4551 + // line internal/php7/php7.y:4660 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ast.Node{}, yyDollar[3].token.Value} + fetch := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - fetch.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, yyDollar[3].token.SkippedTokens) } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4568 + // line internal/php7/php7.y:4686 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7280,15 +7399,20 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4581 + // line internal/php7/php7.y:4699 { - name := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, name} yyVAL.node = variable // save position - name.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) // save comments @@ -7297,14 +7421,19 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4596 + // line internal/php7/php7.y:4719 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[2].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) @@ -7316,7 +7445,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4741 { yyVAL.node = yyDollar[2].node @@ -7326,7 +7455,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4624 + // line internal/php7/php7.y:4752 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7338,7 +7467,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4634 + // line internal/php7/php7.y:4762 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7355,7 +7484,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4649 + // line internal/php7/php7.y:4777 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7381,13 +7510,18 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4673 + // line internal/php7/php7.y:4801 { - identifier := &ast.Identifier{ast.Node{}, yyDollar[1].token.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) // save comments @@ -7395,7 +7529,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4688 + // line internal/php7/php7.y:4821 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7413,7 +7547,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4704 + // line internal/php7/php7.y:4837 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7435,7 +7569,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4724 + // line internal/php7/php7.y:4857 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7447,7 +7581,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4734 + // line internal/php7/php7.y:4867 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7459,7 +7593,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4744 + // line internal/php7/php7.y:4877 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7481,7 +7615,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4897 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7493,7 +7627,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4774 + // line internal/php7/php7.y:4907 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7505,13 +7639,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4787 + // line internal/php7/php7.y:4920 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4791 + // line internal/php7/php7.y:4924 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7520,7 +7654,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4801 + // line internal/php7/php7.y:4934 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index e4709aa..72ec026 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -552,23 +552,23 @@ top_statement: use_type: T_FUNCTION { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_CONST { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } ; @@ -759,7 +759,8 @@ unprefixed_use_declaration: Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Value: $3.Value, + IdentifierTkn: $3, + Value: $3.Value, }, } } @@ -1088,39 +1089,36 @@ statement: } | T_GOTO T_STRING ';' { - label := &ast.Identifier{ast.Node{}, $2.Value} - $$ = &ast.StmtGoto{ Node: ast.Node{ Position: position.NewTokensPosition($1, $3), }, - GotoTkn: $1, - Label: label, + GotoTkn: $1, + Label: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, SemiColonTkn: $3, } - - // save position - label.GetNode().Position = position.NewTokenPosition($2) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, $2.SkippedTokens) } | T_STRING ':' { - label := &ast.Identifier{ast.Node{}, $1.Value} $$ = &ast.StmtLabel{ Node: ast.Node{ Position: position.NewTokensPosition($1, $2), }, - LabelName: label, - ColonTkn: $2, + LabelName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + ColonTkn: $2, } - - // save position - label.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(label, token.Start, $1.SkippedTokens) } catch_list: @@ -1130,7 +1128,13 @@ catch_list: } | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' { - identifier := &ast.Identifier{ast.Node{}, $5.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($5), + }, + IdentifierTkn: $5, + Value: $5.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} catch := $4.(*ast.StmtCatch) @@ -1146,7 +1150,6 @@ catch_list: $$ = append($1, catch) // save position - identifier.GetNode().Position = position.NewTokenPosition($5) variable.GetNode().Position = position.NewTokenPosition($5) // save comments @@ -1214,11 +1217,16 @@ unset_variable: function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $3.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $6, $8, $10} // save position - name.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewTokensPosition($1, $11) @@ -1226,11 +1234,7 @@ function_declaration_statement: yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) if $2 != nil { yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.SkippedTokens) @@ -1267,33 +1271,39 @@ is_variadic: class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $3.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.StmtClass{ast.Node{}, name, $1, nil, $4, $5, $8} // save position - name.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewOptionalListTokensPosition($1, $2, $9) // save comments yylex.(*Parser).MoveFreeFloating($1[0], $$) yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $7.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $2.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } $$ = &ast.StmtClass{ast.Node{}, name, nil, nil, $3, $4, $7} // save position - name.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $8) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.SkippedTokens) } ; @@ -1312,39 +1322,43 @@ class_modifiers: class_modifier: T_ABSTRACT { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_FINAL { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } ; trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $2.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } $$ = &ast.StmtTrait{ast.Node{}, name, $5} // save position - name.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $6) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.SkippedTokens) } @@ -1353,16 +1367,20 @@ trait_declaration_statement: interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ast.Node{}, $2.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } $$ = &ast.StmtInterface{ast.Node{}, name, $3, $6} // save position - name.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $7) // save comments yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(name, token.Start, $2.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.SkippedTokens) } @@ -1833,8 +1851,13 @@ non_empty_parameter_list: parameter: optional_type is_reference is_variadic T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $4.Value} - identifier.GetNode().Position = position.NewTokenPosition($4) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -1867,8 +1890,13 @@ parameter: } | optional_type is_reference is_variadic T_VARIABLE '=' expr { - identifier := &ast.Identifier{ast.Node{}, $4.Value} - identifier.GetNode().Position = position.NewTokenPosition($4) + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } var variable ast.Vertex variable = &ast.ExprVariable{ast.Node{}, identifier} @@ -1933,23 +1961,23 @@ type_expr: type: T_ARRAY { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_CALLABLE { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | name { @@ -2079,7 +2107,13 @@ static_var_list: static_var: T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStaticVar{ @@ -2090,7 +2124,6 @@ static_var: } // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -2098,7 +2131,13 @@ static_var: } | T_VARIABLE '=' expr { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStaticVar{ Node: ast.Node{ @@ -2110,7 +2149,6 @@ static_var: } // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -2166,11 +2204,16 @@ class_statement: } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { - name := &ast.Identifier{ast.Node{}, $4.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $7, $9, $10} // save position - name.GetNode().Position = position.NewTokenPosition($4) if $1 == nil { $$.GetNode().Position = position.NewTokenNodePosition($2, $10) } else { @@ -2190,7 +2233,6 @@ class_statement: yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) } - yylex.(*Parser).setFreeFloating($$, token.Name, $6.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.SkippedTokens) } ; @@ -2290,45 +2332,57 @@ trait_precedence: trait_alias: trait_method_reference T_AS T_STRING { - alias := &ast.Identifier{ast.Node{}, $3.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} // save position - alias.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } | trait_method_reference T_AS reserved_non_modifiers { - alias := &ast.Identifier{ast.Node{}, $3.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} // save position - alias.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $3.SkippedTokens) } | trait_method_reference T_AS member_modifier identifier { - alias := &ast.Identifier{ast.Node{}, $4.Value} + alias := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + } $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} // save position - alias.GetNode().Position = position.NewTokenPosition($4) $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(alias, token.Start, $4.SkippedTokens) } | trait_method_reference T_AS member_modifier { @@ -2346,11 +2400,16 @@ trait_alias: trait_method_reference: identifier { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -2365,17 +2424,21 @@ trait_method_reference: absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $2.SkippedTokens) } ; @@ -2409,14 +2472,15 @@ variable_modifiers: } | T_VAR { - modifier := &ast.Identifier{ast.Node{}, $1.Value} - $$ = []ast.Vertex{modifier} - - // save position - modifier.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(modifier, token.Start, $1.SkippedTokens) + $$ = []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + } } ; @@ -2445,63 +2509,63 @@ non_empty_member_modifiers: member_modifier: T_PUBLIC { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_PROTECTED { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_PRIVATE { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_STATIC { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_ABSTRACT { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | T_FINAL { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } ; @@ -2522,12 +2586,17 @@ property_list: property: T_VARIABLE backup_doc_comment { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtProperty{ast.Node{}, variable, nil} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) @@ -2536,12 +2605,17 @@ property: } | T_VARIABLE '=' expr backup_doc_comment { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtProperty{ast.Node{}, variable, $3} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenNodePosition($1, $3) @@ -2575,7 +2649,8 @@ class_const_decl: Node: ast.Node{ Position: position.NewTokenPosition($1), }, - Value: $1.Value, + IdentifierTkn: $1, + Value: $1.Value, }, EqualTkn: $2, Expr: $3, @@ -2596,7 +2671,8 @@ const_decl: Node: ast.Node{ Position: position.NewTokenPosition($1), }, - Value: $1.Value, + IdentifierTkn: $1, + Value: $1.Value, }, EqualTkn: $2, Expr: $3, @@ -3640,11 +3716,16 @@ lexical_var_list: lexical_var: T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -3652,12 +3733,17 @@ lexical_var: } | '&' T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $2.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprReference{ast.Node{}, variable} // save position - identifier.GetNode().Position = position.NewTokenPosition($2) variable.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $2) @@ -3715,13 +3801,13 @@ function_call: class_name: T_STATIC { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | name { @@ -3994,31 +4080,39 @@ constant: } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := &ast.Identifier{ast.Node{}, $3.Value} + target := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} // save position - target.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(target, token.Start, $3.SkippedTokens) } ; @@ -4183,11 +4277,16 @@ variable: simple_variable: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -4307,13 +4406,13 @@ new_variable: member_name: identifier { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | '{' expr '}' { @@ -4332,13 +4431,13 @@ member_name: property_name: T_STRING { - $$ = &ast.Identifier{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } } | '{' expr '}' { @@ -4522,11 +4621,16 @@ encaps_list: encaps_var: T_VARIABLE { - name := &ast.Identifier{ast.Node{}, $1.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, name} // save position - name.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments @@ -4534,12 +4638,17 @@ encaps_var: } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokensPosition($1, $4) @@ -4549,20 +4658,29 @@ encaps_var: } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ast.Node{}, $3.Value} + fetch := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + } $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) variable.GetNode().Position = position.NewTokenPosition($1) - fetch.GetNode().Position = position.NewTokenPosition($3) $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(fetch, token.Start, $3.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { @@ -4579,13 +4697,18 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - name := &ast.Identifier{ast.Node{}, $2.Value} + name := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } variable := &ast.ExprVariable{ast.Node{}, name} $$ = variable // save position - name.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $3) // save comments @@ -4594,12 +4717,17 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { - identifier := &ast.Identifier{ast.Node{}, $2.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} // save position - identifier.GetNode().Position = position.NewTokenPosition($2) variable.GetNode().Position = position.NewTokenPosition($2) $$.GetNode().Position = position.NewTokensPosition($1, $6) @@ -4671,11 +4799,16 @@ encaps_var_offset: } | T_VARIABLE { - identifier := &ast.Identifier{ast.Node{}, $1.Value} + identifier := &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprVariable{ast.Node{}, identifier} // save position - identifier.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewTokenPosition($1) // save comments diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 7882623..d792bea 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -75,7 +75,8 @@ func (n *Parameter) Accept(v NodeVisitor) { // Identifier node type Identifier struct { Node - Value []byte + IdentifierTkn *token.Token + Value []byte } func (n *Identifier) Accept(v NodeVisitor) { From 43ace92875b4610155a23b16645fb3097606c6e5 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 22:07:58 +0200 Subject: [PATCH 069/140] [refactoring] update ast structure of "Nullable" --- internal/php5/php5.go | 1040 ++++++++++++++++++++--------------------- internal/php7/php7.go | 1000 +++++++++++++++++++-------------------- internal/php7/php7.y | 14 +- pkg/ast/node.go | 3 +- 4 files changed, 1029 insertions(+), 1028 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index e4b1646..56f92ea 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2316,7 +2316,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:275 + // line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2325,7 +2325,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:285 + // line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2338,13 +2338,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:296 + // line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:303 + // line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2358,7 +2358,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:315 + // line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2371,32 +2371,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:329 + // line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:346 + // line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2410,7 +2410,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:358 + // line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2428,7 +2428,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:374 + // line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2448,7 +2448,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:392 + // line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2462,7 +2462,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:404 + // line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2475,7 +2475,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:415 + // line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2495,7 +2495,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:433 + // line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2515,7 +2515,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:451 + // line internal/php5/php5.y:451 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2523,7 +2523,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:460 + // line internal/php5/php5.y:460 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2531,13 +2531,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:466 + // line internal/php5/php5.y:466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:473 + // line internal/php5/php5.y:473 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2553,7 +2553,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:487 + // line internal/php5/php5.y:487 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2577,7 +2577,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:509 + // line internal/php5/php5.y:509 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2594,7 +2594,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:524 + // line internal/php5/php5.y:524 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2619,7 +2619,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:550 + // line internal/php5/php5.y:550 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2627,13 +2627,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:556 + // line internal/php5/php5.y:556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:563 + // line internal/php5/php5.y:563 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2649,7 +2649,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:577 + // line internal/php5/php5.y:577 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2673,7 +2673,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:599 + // line internal/php5/php5.y:599 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2690,7 +2690,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:614 + // line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2715,7 +2715,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:640 + // line internal/php5/php5.y:640 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2723,13 +2723,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:646 + // line internal/php5/php5.y:646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:653 + // line internal/php5/php5.y:653 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2745,7 +2745,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:667 + // line internal/php5/php5.y:667 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:689 + // line internal/php5/php5.y:689 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2786,7 +2786,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:704 + // line internal/php5/php5.y:704 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2811,7 +2811,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:730 + // line internal/php5/php5.y:730 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2837,7 +2837,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:754 + // line internal/php5/php5.y:754 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2866,7 +2866,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:784 + // line internal/php5/php5.y:784 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2879,38 +2879,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:795 + // line internal/php5/php5.y:795 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:803 + // line internal/php5/php5.y:803 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:808 + // line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:812 + // line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:820 + // line internal/php5/php5.y:820 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2924,13 +2924,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:836 + // line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:840 + // line internal/php5/php5.y:840 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2948,7 +2948,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:859 + // line internal/php5/php5.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2961,7 +2961,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:870 + // line internal/php5/php5.y:870 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2985,7 +2985,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:892 + // line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3011,7 +3011,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:916 + // line internal/php5/php5.y:916 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3023,7 +3023,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:926 + // line internal/php5/php5.y:926 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3040,7 +3040,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:941 + // line internal/php5/php5.y:941 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3056,7 +3056,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:955 + // line internal/php5/php5.y:955 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3068,7 +3068,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:965 + // line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3080,7 +3080,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:975 + // line internal/php5/php5.y:975 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3093,7 +3093,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:986 + // line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3105,7 +3105,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:996 + // line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3118,7 +3118,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1007 + // line internal/php5/php5.y:1007 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3130,7 +3130,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1017 + // line internal/php5/php5.y:1017 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3143,7 +3143,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1028 + // line internal/php5/php5.y:1028 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3156,7 +3156,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1039 + // line internal/php5/php5.y:1039 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3170,7 +3170,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1051 + // line internal/php5/php5.y:1051 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3181,7 +3181,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1060 + // line internal/php5/php5.y:1060 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3192,7 +3192,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1069 + // line internal/php5/php5.y:1069 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3202,7 +3202,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1077 + // line internal/php5/php5.y:1077 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3214,7 +3214,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1087 + // line internal/php5/php5.y:1087 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3228,7 +3228,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1099 + // line internal/php5/php5.y:1099 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3240,7 +3240,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1109 + // line internal/php5/php5.y:1109 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3260,7 +3260,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1127 + // line internal/php5/php5.y:1127 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3280,7 +3280,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1145 + // line internal/php5/php5.y:1145 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3293,7 +3293,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1156 + // line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3304,7 +3304,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1165 + // line internal/php5/php5.y:1165 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3323,7 +3323,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3336,7 +3336,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1193 + // line internal/php5/php5.y:1193 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3355,13 +3355,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1213 + // line internal/php5/php5.y:1213 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1217 + // line internal/php5/php5.y:1217 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3394,13 +3394,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1251 + // line internal/php5/php5.y:1251 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1255 + // line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3414,31 +3414,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1270 + // line internal/php5/php5.y:1270 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1274 + // line internal/php5/php5.y:1274 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1281 + // line internal/php5/php5.y:1281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1285 + // line internal/php5/php5.y:1285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1292 + // line internal/php5/php5.y:1292 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3470,7 +3470,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1325 + // line internal/php5/php5.y:1325 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3478,7 +3478,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1331 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3487,49 +3487,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1341 + // line internal/php5/php5.y:1341 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1362 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1366 + // line internal/php5/php5.y:1366 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1373 + // line internal/php5/php5.y:1373 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1377 + // line internal/php5/php5.y:1377 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1384 + // line internal/php5/php5.y:1384 { name := &ast.Identifier{ Node: ast.Node{ @@ -3554,7 +3554,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1410 + // line internal/php5/php5.y:1410 { name := &ast.Identifier{ Node: ast.Node{ @@ -3586,7 +3586,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1440 + // line internal/php5/php5.y:1440 { name := &ast.Identifier{ Node: ast.Node{ @@ -3607,7 +3607,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1463 + // line internal/php5/php5.y:1463 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3619,7 +3619,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1473 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3639,7 +3639,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1491 + // line internal/php5/php5.y:1491 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3651,7 +3651,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1501 + // line internal/php5/php5.y:1501 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3671,13 +3671,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1522 + // line internal/php5/php5.y:1522 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1526 + // line internal/php5/php5.y:1526 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3689,19 +3689,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1539 + // line internal/php5/php5.y:1539 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1546 + // line internal/php5/php5.y:1546 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1550 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3713,13 +3713,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1563 + // line internal/php5/php5.y:1563 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1567 + // line internal/php5/php5.y:1567 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3731,13 +3731,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1580 + // line internal/php5/php5.y:1580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1584 + // line internal/php5/php5.y:1584 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3751,13 +3751,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1596 + // line internal/php5/php5.y:1596 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1600 + // line internal/php5/php5.y:1600 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3766,13 +3766,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1610 + // line internal/php5/php5.y:1610 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1614 + // line internal/php5/php5.y:1614 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3784,7 +3784,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1624 + // line internal/php5/php5.y:1624 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3798,7 +3798,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1639 + // line internal/php5/php5.y:1639 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3809,7 +3809,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1648 + // line internal/php5/php5.y:1648 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3829,7 +3829,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1669 + // line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3840,7 +3840,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1678 + // line internal/php5/php5.y:1678 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3860,7 +3860,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1700 + // line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3871,7 +3871,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1709 + // line internal/php5/php5.y:1709 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3891,7 +3891,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1731 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3916,7 +3916,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1754 + // line internal/php5/php5.y:1754 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3943,7 +3943,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1783 + // line internal/php5/php5.y:1783 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3956,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1794 + // line internal/php5/php5.y:1794 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1806 + // line internal/php5/php5.y:1806 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3985,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1819 + // line internal/php5/php5.y:1819 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4001,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1837 + // line internal/php5/php5.y:1837 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1841 + // line internal/php5/php5.y:1841 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4021,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1853 + // line internal/php5/php5.y:1853 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4034,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1868 + // line internal/php5/php5.y:1868 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1872 + // line internal/php5/php5.y:1872 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1880 + // line internal/php5/php5.y:1880 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4057,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1889 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,13 +4077,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1912 + // line internal/php5/php5.y:1912 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1916 + // line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4098,13 +4098,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1933 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1937 + // line internal/php5/php5.y:1937 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4126,13 +4126,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1961 + // line internal/php5/php5.y:1961 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1965 + // line internal/php5/php5.y:1965 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4144,13 +4144,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1979 + // line internal/php5/php5.y:1979 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1983 + // line internal/php5/php5.y:1983 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4169,25 +4169,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2004 + // line internal/php5/php5.y:2004 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2008 + // line internal/php5/php5.y:2008 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2015 + // line internal/php5/php5.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4196,7 +4196,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2029 + // line internal/php5/php5.y:2029 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4237,7 +4237,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2068 + // line internal/php5/php5.y:2068 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4279,13 +4279,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2112 + // line internal/php5/php5.y:2112 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2116 + // line internal/php5/php5.y:2116 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4297,7 +4297,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2126 + // line internal/php5/php5.y:2126 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4309,13 +4309,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2136 + // line internal/php5/php5.y:2136 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2144 + // line internal/php5/php5.y:2144 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4328,7 +4328,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2155 + // line internal/php5/php5.y:2155 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4341,7 +4341,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2166 + // line internal/php5/php5.y:2166 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4356,13 +4356,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2183 + // line internal/php5/php5.y:2183 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2187 + // line internal/php5/php5.y:2187 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4371,7 +4371,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2197 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4383,7 +4383,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4395,7 +4395,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2217 + // line internal/php5/php5.y:2217 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4407,7 +4407,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2227 + // line internal/php5/php5.y:2227 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4419,7 +4419,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2240 + // line internal/php5/php5.y:2240 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4428,7 +4428,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2247 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4436,7 +4436,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2257 + // line internal/php5/php5.y:2257 { name := &ast.Identifier{ Node: ast.Node{ @@ -4455,7 +4455,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2274 + // line internal/php5/php5.y:2274 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4467,7 +4467,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2284 + // line internal/php5/php5.y:2284 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4481,7 +4481,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2300 + // line internal/php5/php5.y:2300 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4510,7 +4510,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2327 + // line internal/php5/php5.y:2327 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4541,7 +4541,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2356 + // line internal/php5/php5.y:2356 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4571,7 +4571,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2384 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4603,19 +4603,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2418 + // line internal/php5/php5.y:2418 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2422 + // line internal/php5/php5.y:2422 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2430 + // line internal/php5/php5.y:2430 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4629,7 +4629,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2442 + // line internal/php5/php5.y:2442 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4637,13 +4637,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2448 + // line internal/php5/php5.y:2448 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2452 + // line internal/php5/php5.y:2452 { name := &ast.Identifier{ Node: ast.Node{ @@ -4679,7 +4679,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2489 + // line internal/php5/php5.y:2489 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4691,13 +4691,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2502 + // line internal/php5/php5.y:2502 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2506 + // line internal/php5/php5.y:2506 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4711,7 +4711,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2518 + // line internal/php5/php5.y:2518 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4722,7 +4722,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2527 + // line internal/php5/php5.y:2527 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4734,31 +4734,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2540 + // line internal/php5/php5.y:2540 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2544 + // line internal/php5/php5.y:2544 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2551 + // line internal/php5/php5.y:2551 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2555 + // line internal/php5/php5.y:2555 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2562 + // line internal/php5/php5.y:2562 { yyVAL.node = yyDollar[1].node @@ -4768,7 +4768,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2570 + // line internal/php5/php5.y:2570 { yyVAL.node = yyDollar[1].node @@ -4778,7 +4778,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2581 + // line internal/php5/php5.y:2581 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4791,13 +4791,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2595 + // line internal/php5/php5.y:2595 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2599 + // line internal/php5/php5.y:2599 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4806,7 +4806,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2609 + // line internal/php5/php5.y:2609 { name := &ast.Identifier{ Node: ast.Node{ @@ -4825,13 +4825,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2626 + // line internal/php5/php5.y:2626 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2633 + // line internal/php5/php5.y:2633 { target := &ast.Identifier{ Node: ast.Node{ @@ -4851,7 +4851,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2654 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4871,7 +4871,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2672 + // line internal/php5/php5.y:2672 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4884,19 +4884,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2686 + // line internal/php5/php5.y:2686 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2690 + // line internal/php5/php5.y:2690 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2697 + // line internal/php5/php5.y:2697 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4907,7 +4907,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2706 + // line internal/php5/php5.y:2706 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4920,13 +4920,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2720 + // line internal/php5/php5.y:2720 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2724 + // line internal/php5/php5.y:2724 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4940,31 +4940,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2739 + // line internal/php5/php5.y:2739 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2743 + // line internal/php5/php5.y:2743 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2750 + // line internal/php5/php5.y:2750 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2754 + // line internal/php5/php5.y:2754 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2761 + // line internal/php5/php5.y:2761 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4976,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2771 + // line internal/php5/php5.y:2771 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +4988,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2781 + // line internal/php5/php5.y:2781 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +5000,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2791 + // line internal/php5/php5.y:2791 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +5012,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2801 + // line internal/php5/php5.y:2801 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,7 +5024,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2811 + // line internal/php5/php5.y:2811 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5036,7 +5036,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2824 + // line internal/php5/php5.y:2824 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5059,7 +5059,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2845 + // line internal/php5/php5.y:2845 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5083,7 +5083,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2867 + // line internal/php5/php5.y:2867 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5105,7 +5105,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2887 + // line internal/php5/php5.y:2887 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5128,7 +5128,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2911 + // line internal/php5/php5.y:2911 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5154,7 +5154,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2935 + // line internal/php5/php5.y:2935 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5183,7 +5183,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2965 + // line internal/php5/php5.y:2965 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5192,7 +5192,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2972 + // line internal/php5/php5.y:2972 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5200,19 +5200,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2982 + // line internal/php5/php5.y:2982 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2986 + // line internal/php5/php5.y:2986 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2993 + // line internal/php5/php5.y:2993 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5221,25 +5221,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3000 + // line internal/php5/php5.y:3000 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3007 + // line internal/php5/php5.y:3007 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3011 + // line internal/php5/php5.y:3011 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3018 + // line internal/php5/php5.y:3018 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5253,7 +5253,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3030 + // line internal/php5/php5.y:3030 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5267,37 +5267,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3045 + // line internal/php5/php5.y:3045 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3049 + // line internal/php5/php5.y:3049 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3053 + // line internal/php5/php5.y:3053 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3060 + // line internal/php5/php5.y:3060 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3064 + // line internal/php5/php5.y:3064 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3071 { if yyDollar[3].node != nil { @@ -5313,7 +5313,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3088 + // line internal/php5/php5.y:3088 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5330,7 +5330,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3103 + // line internal/php5/php5.y:3103 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5343,7 +5343,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3114 + // line internal/php5/php5.y:3114 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5357,7 +5357,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3126 + // line internal/php5/php5.y:3126 { var _new *ast.ExprNew @@ -5384,7 +5384,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3151 + // line internal/php5/php5.y:3151 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5396,7 +5396,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3161 + // line internal/php5/php5.y:3161 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5408,7 +5408,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3171 + // line internal/php5/php5.y:3171 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5421,7 +5421,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3182 + // line internal/php5/php5.y:3182 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5434,7 +5434,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3193 + // line internal/php5/php5.y:3193 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5447,7 +5447,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3204 + // line internal/php5/php5.y:3204 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5460,7 +5460,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3215 + // line internal/php5/php5.y:3215 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5473,7 +5473,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3226 + // line internal/php5/php5.y:3226 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5486,7 +5486,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3237 + // line internal/php5/php5.y:3237 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5499,7 +5499,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3248 + // line internal/php5/php5.y:3248 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5512,7 +5512,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3259 + // line internal/php5/php5.y:3259 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5525,7 +5525,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3270 + // line internal/php5/php5.y:3270 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5538,7 +5538,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3281 + // line internal/php5/php5.y:3281 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5551,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3292 + // line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5564,7 +5564,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3303 + // line internal/php5/php5.y:3303 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5576,7 +5576,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3313 + // line internal/php5/php5.y:3313 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5589,7 +5589,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3324 + // line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5601,7 +5601,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3334 + // line internal/php5/php5.y:3334 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5614,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3345 + // line internal/php5/php5.y:3345 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5627,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3356 + // line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5640,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3367 + // line internal/php5/php5.y:3367 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5653,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3378 + // line internal/php5/php5.y:3378 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5666,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3389 + // line internal/php5/php5.y:3389 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5679,7 +5679,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3400 + // line internal/php5/php5.y:3400 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5692,7 +5692,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3411 + // line internal/php5/php5.y:3411 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5705,7 +5705,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3422 + // line internal/php5/php5.y:3422 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5717,7 +5717,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3432 + // line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5730,7 +5730,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3443 + // line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,7 +5743,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3454 + // line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5756,7 +5756,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3465 + // line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5769,7 +5769,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3476 + // line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5782,7 +5782,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3487 + // line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5795,7 +5795,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3498 + // line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,7 +5808,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3509 + // line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5821,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3520 + // line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5833,7 +5833,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3530 + // line internal/php5/php5.y:3530 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5845,7 +5845,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3540 + // line internal/php5/php5.y:3540 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5857,7 +5857,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3550 + // line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5869,7 +5869,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3560 + // line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5882,7 +5882,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3571 + // line internal/php5/php5.y:3571 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5895,7 +5895,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3582 + // line internal/php5/php5.y:3582 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5908,7 +5908,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3593 + // line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5922,7 +5922,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3605 + // line internal/php5/php5.y:3605 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5935,7 +5935,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3616 + // line internal/php5/php5.y:3616 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5948,7 +5948,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3627 + // line internal/php5/php5.y:3627 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5961,7 +5961,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3638 + // line internal/php5/php5.y:3638 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5974,7 +5974,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3649 + // line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5987,19 +5987,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3660 + // line internal/php5/php5.y:3660 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3664 + // line internal/php5/php5.y:3664 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3668 + // line internal/php5/php5.y:3668 { yyVAL.node = yyDollar[2].node @@ -6031,7 +6031,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3698 + // line internal/php5/php5.y:3698 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6045,7 +6045,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3710 + // line internal/php5/php5.y:3710 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6059,13 +6059,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3722 + // line internal/php5/php5.y:3722 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3726 + // line internal/php5/php5.y:3726 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6078,7 +6078,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3737 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6091,7 +6091,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3748 + // line internal/php5/php5.y:3748 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6104,7 +6104,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3759 + // line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6117,7 +6117,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3770 + // line internal/php5/php5.y:3770 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6130,7 +6130,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3781 + // line internal/php5/php5.y:3781 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6143,7 +6143,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3792 + // line internal/php5/php5.y:3792 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6156,7 +6156,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3803 + // line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6176,7 +6176,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3821 + // line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6188,25 +6188,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3831 + // line internal/php5/php5.y:3831 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3835 + // line internal/php5/php5.y:3835 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3839 + // line internal/php5/php5.y:3839 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3843 + // line internal/php5/php5.y:3843 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6218,7 +6218,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3853 + // line internal/php5/php5.y:3853 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6230,7 +6230,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3863 + // line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6242,7 +6242,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6269,7 +6269,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3897 + // line internal/php5/php5.y:3897 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6297,7 +6297,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3925 + // line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6309,7 +6309,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3935 + // line internal/php5/php5.y:3935 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6321,7 +6321,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3945 + // line internal/php5/php5.y:3945 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6334,7 +6334,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3956 + // line internal/php5/php5.y:3956 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6347,7 +6347,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3970 + // line internal/php5/php5.y:3970 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6360,7 +6360,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3981 + // line internal/php5/php5.y:3981 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6373,7 +6373,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3992 + // line internal/php5/php5.y:3992 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6389,7 +6389,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4006 + // line internal/php5/php5.y:4006 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6402,7 +6402,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4020 + // line internal/php5/php5.y:4020 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6416,7 +6416,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4032 + // line internal/php5/php5.y:4032 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6429,19 +6429,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4046 + // line internal/php5/php5.y:4046 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4053 + // line internal/php5/php5.y:4053 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4057 + // line internal/php5/php5.y:4057 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6455,7 +6455,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4072 + // line internal/php5/php5.y:4072 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6476,7 +6476,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4091 + // line internal/php5/php5.y:4091 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6500,7 +6500,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4113 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6520,7 +6520,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4131 + // line internal/php5/php5.y:4131 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6543,7 +6543,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4155 + // line internal/php5/php5.y:4155 { name := &ast.NameName{ Node: ast.Node{ @@ -6558,7 +6558,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4168 + // line internal/php5/php5.y:4168 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6575,7 +6575,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4183 + // line internal/php5/php5.y:4183 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6591,7 +6591,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4197 + // line internal/php5/php5.y:4197 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6604,7 +6604,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4208 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6617,7 +6617,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4219 + // line internal/php5/php5.y:4219 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6630,7 +6630,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4230 + // line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6643,7 +6643,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4241 + // line internal/php5/php5.y:4241 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6655,7 +6655,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4254 + // line internal/php5/php5.y:4254 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6667,7 +6667,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4264 + // line internal/php5/php5.y:4264 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6678,7 +6678,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4273 + // line internal/php5/php5.y:4273 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6691,7 +6691,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4284 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6703,7 +6703,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4297 + // line internal/php5/php5.y:4297 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6714,7 +6714,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4306 + // line internal/php5/php5.y:4306 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6727,7 +6727,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4317 + // line internal/php5/php5.y:4317 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6739,19 +6739,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4330 + // line internal/php5/php5.y:4330 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4334 + // line internal/php5/php5.y:4334 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4341 + // line internal/php5/php5.y:4341 { yyVAL.node = yyDollar[1].node @@ -6792,25 +6792,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4380 + // line internal/php5/php5.y:4380 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4388 + // line internal/php5/php5.y:4388 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4392 + // line internal/php5/php5.y:4392 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4400 + // line internal/php5/php5.y:4400 { yyVAL.list = yyDollar[2].list @@ -6819,13 +6819,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4410 + // line internal/php5/php5.y:4410 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4414 + // line internal/php5/php5.y:4414 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6841,19 +6841,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4428 + // line internal/php5/php5.y:4428 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4435 + // line internal/php5/php5.y:4435 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4439 + // line internal/php5/php5.y:4439 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6863,25 +6863,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4447 + // line internal/php5/php5.y:4447 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4454 + // line internal/php5/php5.y:4454 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4458 + // line internal/php5/php5.y:4458 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4465 + // line internal/php5/php5.y:4465 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6893,7 +6893,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4475 + // line internal/php5/php5.y:4475 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6905,7 +6905,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4485 + // line internal/php5/php5.y:4485 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6917,7 +6917,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4495 + // line internal/php5/php5.y:4495 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6929,7 +6929,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4505 + // line internal/php5/php5.y:4505 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6941,7 +6941,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4515 + // line internal/php5/php5.y:4515 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6953,7 +6953,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4525 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6965,7 +6965,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4535 + // line internal/php5/php5.y:4535 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6977,7 +6977,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4545 + // line internal/php5/php5.y:4545 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6989,7 +6989,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4555 + // line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7001,7 +7001,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4565 + // line internal/php5/php5.y:4565 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7015,7 +7015,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4577 + // line internal/php5/php5.y:4577 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7027,7 +7027,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4590 + // line internal/php5/php5.y:4590 { target := &ast.Identifier{ Node: ast.Node{ @@ -7047,25 +7047,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4611 + // line internal/php5/php5.y:4611 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4618 + // line internal/php5/php5.y:4618 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4622 + // line internal/php5/php5.y:4622 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4626 + // line internal/php5/php5.y:4626 { name := &ast.NameName{ Node: ast.Node{ @@ -7080,7 +7080,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4639 + // line internal/php5/php5.y:4639 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7097,7 +7097,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4654 + // line internal/php5/php5.y:4654 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7113,7 +7113,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4668 + // line internal/php5/php5.y:4668 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7127,7 +7127,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4680 + // line internal/php5/php5.y:4680 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7140,13 +7140,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4691 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4695 + // line internal/php5/php5.y:4695 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7158,13 +7158,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4705 + // line internal/php5/php5.y:4705 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4712 + // line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7177,7 +7177,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4723 + // line internal/php5/php5.y:4723 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7190,7 +7190,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4734 + // line internal/php5/php5.y:4734 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7203,7 +7203,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4745 + // line internal/php5/php5.y:4745 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7216,7 +7216,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4756 + // line internal/php5/php5.y:4756 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7229,7 +7229,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4767 + // line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7242,7 +7242,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4778 + // line internal/php5/php5.y:4778 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7255,7 +7255,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4789 + // line internal/php5/php5.y:4789 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7267,7 +7267,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4799 + // line internal/php5/php5.y:4799 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7279,7 +7279,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4809 + // line internal/php5/php5.y:4809 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7292,7 +7292,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4820 + // line internal/php5/php5.y:4820 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7305,7 +7305,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4831 + // line internal/php5/php5.y:4831 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7318,7 +7318,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4842 + // line internal/php5/php5.y:4842 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7331,7 +7331,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4853 + // line internal/php5/php5.y:4853 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7344,7 +7344,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4864 + // line internal/php5/php5.y:4864 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7357,7 +7357,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4875 + // line internal/php5/php5.y:4875 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7370,7 +7370,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4886 + // line internal/php5/php5.y:4886 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7383,7 +7383,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4897 + // line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7396,7 +7396,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4908 + // line internal/php5/php5.y:4908 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7409,7 +7409,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4919 + // line internal/php5/php5.y:4919 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7422,7 +7422,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4930 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7435,7 +7435,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4941 + // line internal/php5/php5.y:4941 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7448,7 +7448,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4952 + // line internal/php5/php5.y:4952 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7461,7 +7461,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4963 + // line internal/php5/php5.y:4963 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7475,7 +7475,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4975 + // line internal/php5/php5.y:4975 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7488,7 +7488,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4986 + // line internal/php5/php5.y:4986 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7501,7 +7501,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4997 + // line internal/php5/php5.y:4997 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7514,7 +7514,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5008 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7527,7 +7527,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5019 + // line internal/php5/php5.y:5019 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7541,7 +7541,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5031 + // line internal/php5/php5.y:5031 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7555,7 +7555,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5043 + // line internal/php5/php5.y:5043 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7567,7 +7567,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5053 + // line internal/php5/php5.y:5053 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7579,7 +7579,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5063 + // line internal/php5/php5.y:5063 { yyVAL.node = yyDollar[2].node @@ -7589,13 +7589,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5074 + // line internal/php5/php5.y:5074 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5078 + // line internal/php5/php5.y:5078 { name := &ast.NameName{ Node: ast.Node{ @@ -7610,7 +7610,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5091 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7627,7 +7627,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5106 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7643,7 +7643,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5123 + // line internal/php5/php5.y:5123 { name := &ast.Identifier{ Node: ast.Node{ @@ -7662,25 +7662,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5140 + // line internal/php5/php5.y:5140 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5144 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5148 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5152 + // line internal/php5/php5.y:5152 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7692,7 +7692,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5162 + // line internal/php5/php5.y:5162 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7704,7 +7704,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5172 + // line internal/php5/php5.y:5172 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7716,13 +7716,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5185 + // line internal/php5/php5.y:5185 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5189 + // line internal/php5/php5.y:5189 { yyVAL.list = yyDollar[1].list @@ -7733,19 +7733,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5201 + // line internal/php5/php5.y:5201 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5205 + // line internal/php5/php5.y:5205 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5212 + // line internal/php5/php5.y:5212 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7760,7 +7760,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5225 + // line internal/php5/php5.y:5225 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7774,7 +7774,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5237 + // line internal/php5/php5.y:5237 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7788,7 +7788,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5249 + // line internal/php5/php5.y:5249 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7801,19 +7801,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5263 + // line internal/php5/php5.y:5263 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5267 + // line internal/php5/php5.y:5267 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5274 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7830,7 +7830,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5289 + // line internal/php5/php5.y:5289 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7847,25 +7847,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5308 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5316 + // line internal/php5/php5.y:5316 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5323 + // line internal/php5/php5.y:5323 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5330 + // line internal/php5/php5.y:5330 { yyVAL.node = yyDollar[1].node @@ -7923,25 +7923,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5386 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5393 + // line internal/php5/php5.y:5393 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5397 + // line internal/php5/php5.y:5397 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5405 + // line internal/php5/php5.y:5405 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7955,7 +7955,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5420 + // line internal/php5/php5.y:5420 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7969,7 +7969,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5432 + // line internal/php5/php5.y:5432 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7983,7 +7983,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5447 + // line internal/php5/php5.y:5447 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7992,31 +7992,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5457 + // line internal/php5/php5.y:5457 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5461 + // line internal/php5/php5.y:5461 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5465 + // line internal/php5/php5.y:5465 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5472 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5476 + // line internal/php5/php5.y:5476 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8028,7 +8028,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5489 + // line internal/php5/php5.y:5489 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,7 +8041,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8054,13 +8054,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5514 + // line internal/php5/php5.y:5514 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5521 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8073,7 +8073,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5532 + // line internal/php5/php5.y:5532 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8086,31 +8086,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5546 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5550 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5554 + // line internal/php5/php5.y:5554 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5562 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5566 + // line internal/php5/php5.y:5566 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8122,13 +8122,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5576 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5583 + // line internal/php5/php5.y:5583 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8141,7 +8141,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5594 + // line internal/php5/php5.y:5594 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8154,13 +8154,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5605 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5613 + // line internal/php5/php5.y:5613 { name := &ast.Identifier{ Node: ast.Node{ @@ -8179,7 +8179,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5630 + // line internal/php5/php5.y:5630 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8193,25 +8193,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5645 + // line internal/php5/php5.y:5645 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5649 + // line internal/php5/php5.y:5649 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5657 + // line internal/php5/php5.y:5657 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5661 + // line internal/php5/php5.y:5661 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8221,7 +8221,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5672 + // line internal/php5/php5.y:5672 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8235,7 +8235,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5684 + // line internal/php5/php5.y:5684 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8249,7 +8249,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5696 + // line internal/php5/php5.y:5696 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8259,7 +8259,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5707 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8271,7 +8271,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5717 + // line internal/php5/php5.y:5717 { yyVAL.node = yyDollar[2].node @@ -8284,7 +8284,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5731 + // line internal/php5/php5.y:5731 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8297,7 +8297,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5742 + // line internal/php5/php5.y:5742 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8314,7 +8314,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5760 + // line internal/php5/php5.y:5760 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8327,7 +8327,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5771 + // line internal/php5/php5.y:5771 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8337,7 +8337,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5783 + // line internal/php5/php5.y:5783 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8349,7 +8349,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5793 + // line internal/php5/php5.y:5793 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8365,19 +8365,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5807 + // line internal/php5/php5.y:5807 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5815 + // line internal/php5/php5.y:5815 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5819 + // line internal/php5/php5.y:5819 { yyVAL.list = yyDollar[1].list @@ -8392,7 +8392,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5835 + // line internal/php5/php5.y:5835 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8407,7 +8407,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5848 + // line internal/php5/php5.y:5848 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8421,7 +8421,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5860 + // line internal/php5/php5.y:5860 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8435,7 +8435,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5872 + // line internal/php5/php5.y:5872 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8448,7 +8448,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5883 + // line internal/php5/php5.y:5883 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8466,7 +8466,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5899 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8482,7 +8482,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5913 + // line internal/php5/php5.y:5913 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8499,7 +8499,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5928 + // line internal/php5/php5.y:5928 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8514,13 +8514,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5944 + // line internal/php5/php5.y:5944 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5948 + // line internal/php5/php5.y:5948 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8533,13 +8533,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5959 + // line internal/php5/php5.y:5959 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5963 + // line internal/php5/php5.y:5963 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8552,7 +8552,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5977 + // line internal/php5/php5.y:5977 { name := &ast.Identifier{ Node: ast.Node{ @@ -8571,7 +8571,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5994 + // line internal/php5/php5.y:5994 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8593,7 +8593,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6014 + // line internal/php5/php5.y:6014 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8621,7 +8621,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6040 + // line internal/php5/php5.y:6040 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8636,7 +8636,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6053 + // line internal/php5/php5.y:6053 { name := &ast.Identifier{ Node: ast.Node{ @@ -8658,7 +8658,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6073 + // line internal/php5/php5.y:6073 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8682,7 +8682,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6095 + // line internal/php5/php5.y:6095 { yyVAL.node = yyDollar[2].node @@ -8692,7 +8692,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6106 + // line internal/php5/php5.y:6106 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8704,7 +8704,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6116 + // line internal/php5/php5.y:6116 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8721,7 +8721,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6131 + // line internal/php5/php5.y:6131 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8740,7 +8740,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6151 + // line internal/php5/php5.y:6151 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8754,7 +8754,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6163 + // line internal/php5/php5.y:6163 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8776,7 +8776,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6183 + // line internal/php5/php5.y:6183 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8798,7 +8798,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6203 + // line internal/php5/php5.y:6203 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8810,7 +8810,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6213 + // line internal/php5/php5.y:6213 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8822,7 +8822,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6223 + // line internal/php5/php5.y:6223 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8844,7 +8844,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6243 + // line internal/php5/php5.y:6243 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8856,7 +8856,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6253 + // line internal/php5/php5.y:6253 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8868,13 +8868,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6266 + // line internal/php5/php5.y:6266 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6270 + // line internal/php5/php5.y:6270 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8883,19 +8883,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6280 + // line internal/php5/php5.y:6280 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6284 + // line internal/php5/php5.y:6284 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6291 + // line internal/php5/php5.y:6291 { target := &ast.Identifier{ Node: ast.Node{ @@ -8915,7 +8915,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6309 + // line internal/php5/php5.y:6309 { target := &ast.Identifier{ Node: ast.Node{ @@ -8935,7 +8935,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6330 + // line internal/php5/php5.y:6330 { target := &ast.Identifier{ Node: ast.Node{ @@ -8955,7 +8955,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6351 + // line internal/php5/php5.y:6351 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 3af3c85..4876d91 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2114,7 +2114,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 +// line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2125,469 +2125,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:328 +// line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:335 +// line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2600,13 +2600,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:346 +// line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:353 +// line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2620,7 +2620,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:365 +// line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2633,7 +2633,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:379 +// line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:388 +// line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2657,7 +2657,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:399 +// line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2669,44 +2669,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 +// line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:433 +// line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:437 +// line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2720,7 +2720,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:449 +// line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:465 +// line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2758,7 +2758,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:483 +// line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2772,7 +2772,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:495 +// line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2784,7 +2784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:505 +// line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2797,7 +2797,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:516 +// line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2810,7 +2810,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:527 +// line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2824,7 +2824,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:539 +// line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2838,7 +2838,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:554 +// line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2850,7 +2850,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:564 +// line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2862,7 +2862,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:577 +// line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2886,7 +2886,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:599 +// line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2909,7 +2909,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:623 +// line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2931,7 +2931,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:643 +// line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2954,19 +2954,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:667 +// line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:671 +// line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:678 +// line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2974,13 +2974,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:684 +// line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:691 +// line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2988,13 +2988,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:697 +// line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:704 +// line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3002,19 +3002,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:710 +// line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:717 +// line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:721 +// line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3024,7 +3024,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:732 +// line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3040,7 +3040,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:746 +// line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3064,13 +3064,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:771 +// line internal/php7/php7.y:771 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:775 +// line internal/php7/php7.y:775 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3080,7 +3080,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:786 +// line internal/php7/php7.y:786 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3089,7 +3089,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:793 +// line internal/php7/php7.y:793 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3097,7 +3097,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:802 +// line internal/php7/php7.y:802 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3110,50 +3110,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:813 +// line internal/php7/php7.y:813 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:820 +// line internal/php7/php7.y:820 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:825 +// line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:829 +// line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:833 +// line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 +// line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:841 +// line internal/php7/php7.y:841 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:845 +// line internal/php7/php7.y:845 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3167,7 +3167,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:859 +// line internal/php7/php7.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3180,19 +3180,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 +// line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:874 +// line internal/php7/php7.y:874 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:878 +// line internal/php7/php7.y:878 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3204,7 +3204,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:888 +// line internal/php7/php7.y:888 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3221,7 +3221,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:903 +// line internal/php7/php7.y:903 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3237,7 +3237,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:917 +// line internal/php7/php7.y:917 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3249,7 +3249,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:927 +// line internal/php7/php7.y:927 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3262,7 +3262,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:938 +// line internal/php7/php7.y:938 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3275,7 +3275,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:949 +// line internal/php7/php7.y:949 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3288,7 +3288,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:960 +// line internal/php7/php7.y:960 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3298,7 +3298,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:968 +// line internal/php7/php7.y:968 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3308,7 +3308,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:976 +// line internal/php7/php7.y:976 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3318,7 +3318,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:984 +// line internal/php7/php7.y:984 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3330,7 +3330,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:994 +// line internal/php7/php7.y:994 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3344,7 +3344,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1006 +// line internal/php7/php7.y:1006 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3357,7 +3357,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1017 +// line internal/php7/php7.y:1017 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3371,7 +3371,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1029 +// line internal/php7/php7.y:1029 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3387,7 +3387,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1043 +// line internal/php7/php7.y:1043 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3400,7 +3400,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1054 +// line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3411,7 +3411,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1063 +// line internal/php7/php7.y:1063 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3430,7 +3430,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1080 +// line internal/php7/php7.y:1080 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3443,7 +3443,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1091 +// line internal/php7/php7.y:1091 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3462,7 +3462,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1108 +// line internal/php7/php7.y:1108 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3480,13 +3480,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1126 +// line internal/php7/php7.y:1126 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1130 +// line internal/php7/php7.y:1130 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3517,7 +3517,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1161 +// line internal/php7/php7.y:1161 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3525,7 +3525,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1167 +// line internal/php7/php7.y:1167 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3534,13 +3534,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1177 +// line internal/php7/php7.y:1177 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1181 +// line internal/php7/php7.y:1181 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3554,7 +3554,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1196 +// line internal/php7/php7.y:1196 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3562,7 +3562,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1202 +// line internal/php7/php7.y:1202 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3571,13 +3571,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1212 +// line internal/php7/php7.y:1212 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1219 +// line internal/php7/php7.y:1219 { name := &ast.Identifier{ Node: ast.Node{ @@ -3608,31 +3608,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1251 +// line internal/php7/php7.y:1251 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1255 +// line internal/php7/php7.y:1255 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1262 +// line internal/php7/php7.y:1262 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1266 +// line internal/php7/php7.y:1266 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1273 +// line internal/php7/php7.y:1273 { name := &ast.Identifier{ Node: ast.Node{ @@ -3653,7 +3653,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1292 +// line internal/php7/php7.y:1292 { name := &ast.Identifier{ Node: ast.Node{ @@ -3673,19 +3673,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1313 +// line internal/php7/php7.y:1313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1317 +// line internal/php7/php7.y:1317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1324 +// line internal/php7/php7.y:1324 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3697,7 +3697,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1334 +// line internal/php7/php7.y:1334 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3709,7 +3709,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1347 +// line internal/php7/php7.y:1347 { name := &ast.Identifier{ Node: ast.Node{ @@ -3730,7 +3730,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1369 +// line internal/php7/php7.y:1369 { name := &ast.Identifier{ Node: ast.Node{ @@ -3751,13 +3751,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1391 +// line internal/php7/php7.y:1391 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1395 +// line internal/php7/php7.y:1395 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3769,13 +3769,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1408 +// line internal/php7/php7.y:1408 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1412 +// line internal/php7/php7.y:1412 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3787,13 +3787,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1425 +// line internal/php7/php7.y:1425 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1429 +// line internal/php7/php7.y:1429 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3805,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1442 +// line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1446 +// line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1468 +// line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3850,7 +3850,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1482 +// line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3861,7 +3861,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1491 +// line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3881,7 +3881,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1512 +// line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3892,7 +3892,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1521 +// line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3912,7 +3912,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1542 +// line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3923,7 +3923,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1551 +// line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3943,7 +3943,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1572 +// line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3956,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1583 +// line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1595 +// line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3985,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1608 +// line internal/php7/php7.y:1608 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4001,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1625 +// line internal/php7/php7.y:1625 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1629 +// line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4021,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1641 +// line internal/php7/php7.y:1641 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4034,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1655 +// line internal/php7/php7.y:1655 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1659 +// line internal/php7/php7.y:1659 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1666 +// line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4057,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1675 +// line internal/php7/php7.y:1675 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4077,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1696 +// line internal/php7/php7.y:1696 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4092,7 +4092,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1709 +// line internal/php7/php7.y:1709 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4111,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1729 +// line internal/php7/php7.y:1729 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1733 +// line internal/php7/php7.y:1733 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4133,7 +4133,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1750 +// line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4155,7 +4155,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1770 +// line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4179,7 +4179,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1795 +// line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4189,7 +4189,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1803 +// line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4213,25 +4213,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1828 +// line internal/php7/php7.y:1828 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1832 +// line internal/php7/php7.y:1832 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1839 +// line internal/php7/php7.y:1839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1843 +// line internal/php7/php7.y:1843 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4240,7 +4240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1853 +// line internal/php7/php7.y:1853 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4281,7 +4281,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1892 +// line internal/php7/php7.y:1892 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4323,37 +4323,37 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1935 +// line internal/php7/php7.y:1935 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1939 +// line internal/php7/php7.y:1939 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1946 +// line internal/php7/php7.y:1946 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1950 +// line internal/php7/php7.y:1950 { - yyVAL.node = &ast.Nullable{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Nullable{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + QuestionTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1963 +// line internal/php7/php7.y:1963 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4365,7 +4365,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1973 +// line internal/php7/php7.y:1973 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4377,19 +4377,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1983 +// line internal/php7/php7.y:1983 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1990 +// line internal/php7/php7.y:1990 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1994 +// line internal/php7/php7.y:1994 { yyVAL.node = yyDollar[2].node @@ -4398,7 +4398,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2004 +// line internal/php7/php7.y:2004 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4411,7 +4411,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2015 +// line internal/php7/php7.y:2015 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4428,13 +4428,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2033 +// line internal/php7/php7.y:2033 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2037 +// line internal/php7/php7.y:2037 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4443,7 +4443,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2047 +// line internal/php7/php7.y:2047 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4455,7 +4455,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2057 +// line internal/php7/php7.y:2057 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4467,7 +4467,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2070 +// line internal/php7/php7.y:2070 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4476,7 +4476,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2077 +// line internal/php7/php7.y:2077 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4484,13 +4484,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2086 +// line internal/php7/php7.y:2086 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2093 +// line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4499,7 +4499,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2100 +// line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4507,7 +4507,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2109 +// line internal/php7/php7.y:2109 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4533,7 +4533,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2133 +// line internal/php7/php7.y:2133 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4560,19 +4560,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2161 +// line internal/php7/php7.y:2161 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2165 +// line internal/php7/php7.y:2165 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2172 +// line internal/php7/php7.y:2172 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4586,7 +4586,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2184 +// line internal/php7/php7.y:2184 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4600,7 +4600,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2196 +// line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4612,7 +4612,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2206 +// line internal/php7/php7.y:2206 { name := &ast.Identifier{ Node: ast.Node{ @@ -4647,13 +4647,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2242 +// line internal/php7/php7.y:2242 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2246 +// line internal/php7/php7.y:2246 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4667,7 +4667,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2258 +// line internal/php7/php7.y:2258 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4678,7 +4678,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2267 +// line internal/php7/php7.y:2267 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4690,7 +4690,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2277 +// line internal/php7/php7.y:2277 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4702,19 +4702,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2290 +// line internal/php7/php7.y:2290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2294 +// line internal/php7/php7.y:2294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2301 +// line internal/php7/php7.y:2301 { yyVAL.node = yyDollar[1].node @@ -4724,7 +4724,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2309 +// line internal/php7/php7.y:2309 { yyVAL.node = yyDollar[1].node @@ -4734,7 +4734,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2320 +// line internal/php7/php7.y:2320 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4747,7 +4747,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2334 +// line internal/php7/php7.y:2334 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4767,7 +4767,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2352 +// line internal/php7/php7.y:2352 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4787,7 +4787,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2370 +// line internal/php7/php7.y:2370 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4807,7 +4807,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2388 +// line internal/php7/php7.y:2388 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4820,7 +4820,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2402 +// line internal/php7/php7.y:2402 { name := &ast.Identifier{ Node: ast.Node{ @@ -4839,13 +4839,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2419 +// line internal/php7/php7.y:2419 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2426 +// line internal/php7/php7.y:2426 { target := &ast.Identifier{ Node: ast.Node{ @@ -4865,7 +4865,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2447 +// line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4876,7 +4876,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2456 +// line internal/php7/php7.y:2456 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4889,13 +4889,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2470 +// line internal/php7/php7.y:2470 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2474 +// line internal/php7/php7.y:2474 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4909,31 +4909,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2489 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2493 +// line internal/php7/php7.y:2493 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2500 +// line internal/php7/php7.y:2500 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2504 +// line internal/php7/php7.y:2504 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2511 +// line internal/php7/php7.y:2511 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4945,7 +4945,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2521 +// line internal/php7/php7.y:2521 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4957,7 +4957,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2531 +// line internal/php7/php7.y:2531 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4969,7 +4969,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2541 +// line internal/php7/php7.y:2541 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4981,7 +4981,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2551 +// line internal/php7/php7.y:2551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4993,7 +4993,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2561 +// line internal/php7/php7.y:2561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5005,7 +5005,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2574 +// line internal/php7/php7.y:2574 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5014,13 +5014,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2581 +// line internal/php7/php7.y:2581 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2588 +// line internal/php7/php7.y:2588 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5041,7 +5041,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2607 +// line internal/php7/php7.y:2607 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5063,7 +5063,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2630 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5071,13 +5071,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2636 +// line internal/php7/php7.y:2636 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2643 +// line internal/php7/php7.y:2643 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5098,7 +5098,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2665 +// line internal/php7/php7.y:2665 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5119,7 +5119,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2687 +// line internal/php7/php7.y:2687 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5128,7 +5128,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2694 +// line internal/php7/php7.y:2694 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5136,25 +5136,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2703 +// line internal/php7/php7.y:2703 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2710 +// line internal/php7/php7.y:2710 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2714 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2721 +// line internal/php7/php7.y:2721 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5163,13 +5163,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2728 +// line internal/php7/php7.y:2728 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2735 +// line internal/php7/php7.y:2735 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5187,7 +5187,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2754 +// line internal/php7/php7.y:2754 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5202,7 +5202,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2767 +// line internal/php7/php7.y:2767 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5214,7 +5214,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2780 +// line internal/php7/php7.y:2780 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5231,7 +5231,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2795 +// line internal/php7/php7.y:2795 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5247,7 +5247,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2809 +// line internal/php7/php7.y:2809 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5260,7 +5260,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2820 +// line internal/php7/php7.y:2820 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5274,7 +5274,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2832 +// line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5286,7 +5286,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2842 +// line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5299,7 +5299,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2853 +// line internal/php7/php7.y:2853 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5312,7 +5312,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2864 +// line internal/php7/php7.y:2864 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5325,7 +5325,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2875 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5338,7 +5338,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2886 +// line internal/php7/php7.y:2886 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5351,7 +5351,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2897 +// line internal/php7/php7.y:2897 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5364,7 +5364,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2908 +// line internal/php7/php7.y:2908 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5377,7 +5377,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2919 +// line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5390,7 +5390,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2930 +// line internal/php7/php7.y:2930 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5403,7 +5403,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2941 +// line internal/php7/php7.y:2941 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5416,7 +5416,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2952 +// line internal/php7/php7.y:2952 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5429,7 +5429,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2963 +// line internal/php7/php7.y:2963 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5442,7 +5442,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2974 +// line internal/php7/php7.y:2974 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5455,7 +5455,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2985 +// line internal/php7/php7.y:2985 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5468,7 +5468,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2996 +// line internal/php7/php7.y:2996 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5480,7 +5480,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3006 +// line internal/php7/php7.y:3006 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5493,7 +5493,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3017 +// line internal/php7/php7.y:3017 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5505,7 +5505,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3027 +// line internal/php7/php7.y:3027 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5518,7 +5518,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3038 +// line internal/php7/php7.y:3038 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5531,7 +5531,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3049 +// line internal/php7/php7.y:3049 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5544,7 +5544,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3060 +// line internal/php7/php7.y:3060 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5557,7 +5557,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3071 +// line internal/php7/php7.y:3071 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5570,7 +5570,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3082 +// line internal/php7/php7.y:3082 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5583,7 +5583,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3093 +// line internal/php7/php7.y:3093 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5596,7 +5596,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 +// line internal/php7/php7.y:3104 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5609,7 +5609,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3115 +// line internal/php7/php7.y:3115 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5621,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3125 +// line internal/php7/php7.y:3125 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5634,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3136 +// line internal/php7/php7.y:3136 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5647,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3147 +// line internal/php7/php7.y:3147 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5660,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3158 +// line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5673,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3169 +// line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5686,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3180 +// line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5699,7 +5699,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3191 +// line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5712,7 +5712,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3202 +// line internal/php7/php7.y:3202 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5725,7 +5725,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3213 +// line internal/php7/php7.y:3213 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5737,7 +5737,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3223 +// line internal/php7/php7.y:3223 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5749,7 +5749,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3233 +// line internal/php7/php7.y:3233 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5761,7 +5761,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3243 +// line internal/php7/php7.y:3243 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5773,7 +5773,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3253 +// line internal/php7/php7.y:3253 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5786,7 +5786,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3264 +// line internal/php7/php7.y:3264 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5799,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3275 +// line internal/php7/php7.y:3275 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,7 +5812,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3286 +// line internal/php7/php7.y:3286 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5826,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3298 +// line internal/php7/php7.y:3298 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5839,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3309 +// line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5852,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3320 +// line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5865,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3331 +// line internal/php7/php7.y:3331 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5878,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3342 +// line internal/php7/php7.y:3342 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5891,7 +5891,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3353 +// line internal/php7/php7.y:3353 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5904,7 +5904,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3364 +// line internal/php7/php7.y:3364 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5921,13 +5921,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3379 +// line internal/php7/php7.y:3379 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3383 +// line internal/php7/php7.y:3383 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5941,7 +5941,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3395 +// line internal/php7/php7.y:3395 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5955,7 +5955,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3407 +// line internal/php7/php7.y:3407 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5968,13 +5968,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3418 +// line internal/php7/php7.y:3418 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3422 +// line internal/php7/php7.y:3422 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5987,7 +5987,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3433 +// line internal/php7/php7.y:3433 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6000,7 +6000,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3444 +// line internal/php7/php7.y:3444 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6013,7 +6013,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3455 +// line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6026,7 +6026,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3466 +// line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6039,7 +6039,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3477 +// line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6052,7 +6052,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3488 +// line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6065,7 +6065,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3499 +// line internal/php7/php7.y:3499 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6085,7 +6085,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3517 +// line internal/php7/php7.y:3517 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6097,13 +6097,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3527 +// line internal/php7/php7.y:3527 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3531 +// line internal/php7/php7.y:3531 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6115,7 +6115,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3541 +// line internal/php7/php7.y:3541 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6127,7 +6127,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3551 +// line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6139,7 +6139,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3561 +// line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6151,7 +6151,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3571 +// line internal/php7/php7.y:3571 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6164,7 +6164,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3582 +// line internal/php7/php7.y:3582 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6176,13 +6176,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3592 +// line internal/php7/php7.y:3592 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3596 +// line internal/php7/php7.y:3596 { yyVAL.node = yyDollar[2].node @@ -6203,7 +6203,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3617 +// line internal/php7/php7.y:3617 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6234,7 +6234,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3644 +// line internal/php7/php7.y:3644 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6260,25 +6260,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3674 +// line internal/php7/php7.y:3674 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3678 +// line internal/php7/php7.y:3678 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3685 +// line internal/php7/php7.y:3685 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3689 +// line internal/php7/php7.y:3689 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6292,7 +6292,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3704 +// line internal/php7/php7.y:3704 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6301,13 +6301,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3711 +// line internal/php7/php7.y:3711 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3718 +// line internal/php7/php7.y:3718 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6326,7 +6326,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3735 +// line internal/php7/php7.y:3735 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6348,7 +6348,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3758 +// line internal/php7/php7.y:3758 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6360,7 +6360,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3768 +// line internal/php7/php7.y:3768 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6373,7 +6373,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3779 +// line internal/php7/php7.y:3779 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6386,7 +6386,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3790 +// line internal/php7/php7.y:3790 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6398,7 +6398,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3803 +// line internal/php7/php7.y:3803 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6410,31 +6410,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3813 +// line internal/php7/php7.y:3813 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3820 +// line internal/php7/php7.y:3820 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3824 +// line internal/php7/php7.y:3824 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3831 +// line internal/php7/php7.y:3831 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3835 +// line internal/php7/php7.y:3835 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6451,13 +6451,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3853 +// line internal/php7/php7.y:3853 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3857 +// line internal/php7/php7.y:3857 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6467,25 +6467,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3865 +// line internal/php7/php7.y:3865 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3872 +// line internal/php7/php7.y:3872 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3876 +// line internal/php7/php7.y:3876 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3883 +// line internal/php7/php7.y:3883 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6499,7 +6499,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3895 +// line internal/php7/php7.y:3895 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6512,7 +6512,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3906 +// line internal/php7/php7.y:3906 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6524,7 +6524,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3919 +// line internal/php7/php7.y:3919 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6536,7 +6536,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3929 +// line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6548,7 +6548,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3939 +// line internal/php7/php7.y:3939 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6560,7 +6560,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3949 +// line internal/php7/php7.y:3949 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6572,7 +6572,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3959 +// line internal/php7/php7.y:3959 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6584,7 +6584,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3969 +// line internal/php7/php7.y:3969 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6596,7 +6596,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3979 +// line internal/php7/php7.y:3979 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6608,7 +6608,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3989 +// line internal/php7/php7.y:3989 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6620,7 +6620,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3999 +// line internal/php7/php7.y:3999 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6632,7 +6632,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4009 +// line internal/php7/php7.y:4009 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6644,7 +6644,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4019 +// line internal/php7/php7.y:4019 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6658,7 +6658,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4031 +// line internal/php7/php7.y:4031 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6670,7 +6670,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4041 +// line internal/php7/php7.y:4041 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6682,7 +6682,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4051 +// line internal/php7/php7.y:4051 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6694,19 +6694,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4061 +// line internal/php7/php7.y:4061 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4065 +// line internal/php7/php7.y:4065 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4072 +// line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6718,7 +6718,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4082 +// line internal/php7/php7.y:4082 { target := &ast.Identifier{ Node: ast.Node{ @@ -6738,7 +6738,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4100 +// line internal/php7/php7.y:4100 { target := &ast.Identifier{ Node: ast.Node{ @@ -6758,43 +6758,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4121 +// line internal/php7/php7.y:4121 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4125 +// line internal/php7/php7.y:4125 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4132 +// line internal/php7/php7.y:4132 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4136 +// line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4143 +// line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4150 +// line internal/php7/php7.y:4150 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4154 +// line internal/php7/php7.y:4154 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6811,19 +6811,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4169 +// line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4176 +// line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4180 +// line internal/php7/php7.y:4180 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6840,19 +6840,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4195 +// line internal/php7/php7.y:4195 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4202 +// line internal/php7/php7.y:4202 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4206 +// line internal/php7/php7.y:4206 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6865,7 +6865,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4217 +// line internal/php7/php7.y:4217 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6878,7 +6878,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4228 +// line internal/php7/php7.y:4228 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6891,7 +6891,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4239 +// line internal/php7/php7.y:4239 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6904,25 +6904,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4250 +// line internal/php7/php7.y:4250 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4257 +// line internal/php7/php7.y:4257 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4261 +// line internal/php7/php7.y:4261 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4265 +// line internal/php7/php7.y:4265 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6935,7 +6935,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4279 +// line internal/php7/php7.y:4279 { name := &ast.Identifier{ Node: ast.Node{ @@ -6954,7 +6954,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4296 +// line internal/php7/php7.y:4296 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6968,7 +6968,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4308 +// line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6980,7 +6980,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4321 +// line internal/php7/php7.y:4321 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6993,7 +6993,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4332 +// line internal/php7/php7.y:4332 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7006,13 +7006,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4346 +// line internal/php7/php7.y:4346 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4350 +// line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7025,7 +7025,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4361 +// line internal/php7/php7.y:4361 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7038,7 +7038,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4372 +// line internal/php7/php7.y:4372 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7051,7 +7051,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4383 +// line internal/php7/php7.y:4383 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7064,7 +7064,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4394 +// line internal/php7/php7.y:4394 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7077,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4408 +// line internal/php7/php7.y:4408 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7089,7 +7089,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4418 +// line internal/php7/php7.y:4418 { yyVAL.node = yyDollar[2].node @@ -7099,13 +7099,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4426 +// line internal/php7/php7.y:4426 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4433 +// line internal/php7/php7.y:4433 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7117,7 +7117,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4443 +// line internal/php7/php7.y:4443 { yyVAL.node = yyDollar[2].node @@ -7127,31 +7127,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4451 +// line internal/php7/php7.y:4451 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4458 +// line internal/php7/php7.y:4458 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4465 +// line internal/php7/php7.y:4465 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4476 +// line internal/php7/php7.y:4476 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7164,7 +7164,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4487 +// line internal/php7/php7.y:4487 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7174,7 +7174,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4498 +// line internal/php7/php7.y:4498 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7187,7 +7187,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4509 +// line internal/php7/php7.y:4509 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7199,7 +7199,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4519 +// line internal/php7/php7.y:4519 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7215,7 +7215,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4533 +// line internal/php7/php7.y:4533 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7229,7 +7229,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4545 +// line internal/php7/php7.y:4545 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7241,7 +7241,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4555 +// line internal/php7/php7.y:4555 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7260,7 +7260,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4572 +// line internal/php7/php7.y:4572 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7277,13 +7277,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4590 +// line internal/php7/php7.y:4590 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4594 +// line internal/php7/php7.y:4594 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7296,13 +7296,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4605 +// line internal/php7/php7.y:4605 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4609 +// line internal/php7/php7.y:4609 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7315,7 +7315,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4623 +// line internal/php7/php7.y:4623 { name := &ast.Identifier{ Node: ast.Node{ @@ -7334,7 +7334,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4640 +// line internal/php7/php7.y:4640 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7356,7 +7356,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4660 +// line internal/php7/php7.y:4660 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7384,7 +7384,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4686 +// line internal/php7/php7.y:4686 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7399,7 +7399,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4699 +// line internal/php7/php7.y:4699 { name := &ast.Identifier{ Node: ast.Node{ @@ -7421,7 +7421,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4719 +// line internal/php7/php7.y:4719 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7445,7 +7445,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4741 +// line internal/php7/php7.y:4741 { yyVAL.node = yyDollar[2].node @@ -7455,7 +7455,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4752 +// line internal/php7/php7.y:4752 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7467,7 +7467,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4762 +// line internal/php7/php7.y:4762 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7484,7 +7484,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4777 +// line internal/php7/php7.y:4777 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7510,7 +7510,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4801 +// line internal/php7/php7.y:4801 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7529,7 +7529,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4821 +// line internal/php7/php7.y:4821 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7547,7 +7547,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4837 +// line internal/php7/php7.y:4837 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7569,7 +7569,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4857 +// line internal/php7/php7.y:4857 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7581,7 +7581,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4867 +// line internal/php7/php7.y:4867 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7593,7 +7593,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4877 +// line internal/php7/php7.y:4877 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7615,7 +7615,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4897 +// line internal/php7/php7.y:4897 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7627,7 +7627,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4907 +// line internal/php7/php7.y:4907 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7639,13 +7639,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4920 +// line internal/php7/php7.y:4920 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4924 +// line internal/php7/php7.y:4924 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7654,7 +7654,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4934 +// line internal/php7/php7.y:4934 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 72ec026..0bfff99 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1948,13 +1948,13 @@ type_expr: } | '?' type { - $$ = &ast.Nullable{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Nullable{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + QuestionTkn: $1, + Expr: $2, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index d792bea..eaf4930 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -33,7 +33,8 @@ func (n *Root) Accept(v NodeVisitor) { // Nullable node type Nullable struct { Node - Expr Vertex + QuestionTkn *token.Token + Expr Vertex } func (n *Nullable) Accept(v NodeVisitor) { From ddb9f3b985f47fc5e2078562b026511c8d4ffa89 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 22:14:26 +0200 Subject: [PATCH 070/140] [refactoring] update ast structure of parameter "Variadic" and "Reference" nodes --- internal/php5/php5.go | 1082 +++++++++++++++++++++-------------------- internal/php5/php5.y | 40 +- internal/php7/php7.go | 594 +++++++++++----------- internal/php7/php7.y | 40 +- pkg/ast/node.go | 6 +- 5 files changed, 914 insertions(+), 848 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 56f92ea..ad07c76 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6370 +// line internal/php5/php5.y:6386 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2316,7 +2316,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:275 +// line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2325,7 +2325,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:285 +// line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2338,13 +2338,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:296 +// line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:303 +// line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2358,7 +2358,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:315 +// line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2371,32 +2371,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:329 +// line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:346 +// line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2410,7 +2410,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:358 +// line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2428,7 +2428,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:374 +// line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2448,7 +2448,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:392 +// line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2462,7 +2462,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:404 +// line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2475,7 +2475,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:415 +// line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2495,7 +2495,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:433 +// line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2515,7 +2515,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:451 +// line internal/php5/php5.y:451 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2523,7 +2523,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:460 +// line internal/php5/php5.y:460 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2531,13 +2531,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:466 +// line internal/php5/php5.y:466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:473 +// line internal/php5/php5.y:473 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2553,7 +2553,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:487 +// line internal/php5/php5.y:487 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2577,7 +2577,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:509 +// line internal/php5/php5.y:509 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2594,7 +2594,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:524 +// line internal/php5/php5.y:524 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2619,7 +2619,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:550 +// line internal/php5/php5.y:550 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2627,13 +2627,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:556 +// line internal/php5/php5.y:556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:563 +// line internal/php5/php5.y:563 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2649,7 +2649,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:577 +// line internal/php5/php5.y:577 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2673,7 +2673,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:599 +// line internal/php5/php5.y:599 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2690,7 +2690,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:614 +// line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2715,7 +2715,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:640 +// line internal/php5/php5.y:640 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2723,13 +2723,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:646 +// line internal/php5/php5.y:646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:653 +// line internal/php5/php5.y:653 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2745,7 +2745,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:667 +// line internal/php5/php5.y:667 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:689 +// line internal/php5/php5.y:689 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2786,7 +2786,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:704 +// line internal/php5/php5.y:704 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2811,7 +2811,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:730 +// line internal/php5/php5.y:730 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2837,7 +2837,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:754 +// line internal/php5/php5.y:754 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2866,7 +2866,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:784 +// line internal/php5/php5.y:784 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2879,38 +2879,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:795 +// line internal/php5/php5.y:795 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:803 +// line internal/php5/php5.y:803 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:808 +// line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:812 +// line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:816 +// line internal/php5/php5.y:816 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:820 +// line internal/php5/php5.y:820 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2924,13 +2924,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:836 +// line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:840 +// line internal/php5/php5.y:840 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2948,7 +2948,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:859 +// line internal/php5/php5.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2961,7 +2961,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:870 +// line internal/php5/php5.y:870 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2985,7 +2985,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:892 +// line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3011,7 +3011,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:916 +// line internal/php5/php5.y:916 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3023,7 +3023,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:926 +// line internal/php5/php5.y:926 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3040,7 +3040,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:941 +// line internal/php5/php5.y:941 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3056,7 +3056,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:955 +// line internal/php5/php5.y:955 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3068,7 +3068,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:965 +// line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3080,7 +3080,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:975 +// line internal/php5/php5.y:975 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3093,7 +3093,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:986 +// line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3105,7 +3105,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:996 +// line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3118,7 +3118,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1007 +// line internal/php5/php5.y:1007 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3130,7 +3130,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1017 +// line internal/php5/php5.y:1017 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3143,7 +3143,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1028 +// line internal/php5/php5.y:1028 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3156,7 +3156,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1039 +// line internal/php5/php5.y:1039 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3170,7 +3170,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1051 +// line internal/php5/php5.y:1051 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3181,7 +3181,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1060 +// line internal/php5/php5.y:1060 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3192,7 +3192,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1069 +// line internal/php5/php5.y:1069 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3202,7 +3202,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1077 +// line internal/php5/php5.y:1077 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3214,7 +3214,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1087 +// line internal/php5/php5.y:1087 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3228,7 +3228,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1099 +// line internal/php5/php5.y:1099 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3240,7 +3240,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1109 +// line internal/php5/php5.y:1109 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3260,7 +3260,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1127 +// line internal/php5/php5.y:1127 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3280,7 +3280,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1145 +// line internal/php5/php5.y:1145 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3293,7 +3293,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1156 +// line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3304,7 +3304,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1165 +// line internal/php5/php5.y:1165 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3323,7 +3323,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1182 +// line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3336,7 +3336,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1193 +// line internal/php5/php5.y:1193 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3355,13 +3355,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1213 +// line internal/php5/php5.y:1213 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1217 +// line internal/php5/php5.y:1217 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3394,13 +3394,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1251 +// line internal/php5/php5.y:1251 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1255 +// line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3414,31 +3414,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1270 +// line internal/php5/php5.y:1270 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1274 +// line internal/php5/php5.y:1274 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1281 +// line internal/php5/php5.y:1281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1285 +// line internal/php5/php5.y:1285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1292 +// line internal/php5/php5.y:1292 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3470,7 +3470,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1325 +// line internal/php5/php5.y:1325 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3478,7 +3478,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1331 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3487,49 +3487,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1341 +// line internal/php5/php5.y:1341 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1348 +// line internal/php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1355 +// line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1362 +// line internal/php5/php5.y:1362 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1366 +// line internal/php5/php5.y:1366 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1373 +// line internal/php5/php5.y:1373 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1377 +// line internal/php5/php5.y:1377 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1384 +// line internal/php5/php5.y:1384 { name := &ast.Identifier{ Node: ast.Node{ @@ -3554,7 +3554,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1410 +// line internal/php5/php5.y:1410 { name := &ast.Identifier{ Node: ast.Node{ @@ -3586,7 +3586,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1440 +// line internal/php5/php5.y:1440 { name := &ast.Identifier{ Node: ast.Node{ @@ -3607,7 +3607,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1463 +// line internal/php5/php5.y:1463 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3619,7 +3619,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1473 +// line internal/php5/php5.y:1473 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3639,7 +3639,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1491 +// line internal/php5/php5.y:1491 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3651,7 +3651,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1501 +// line internal/php5/php5.y:1501 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3671,13 +3671,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1522 +// line internal/php5/php5.y:1522 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1526 +// line internal/php5/php5.y:1526 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3689,19 +3689,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1539 +// line internal/php5/php5.y:1539 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1546 +// line internal/php5/php5.y:1546 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1550 +// line internal/php5/php5.y:1550 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3713,13 +3713,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1563 +// line internal/php5/php5.y:1563 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1567 +// line internal/php5/php5.y:1567 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3731,13 +3731,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1580 +// line internal/php5/php5.y:1580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1584 +// line internal/php5/php5.y:1584 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3751,13 +3751,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1596 +// line internal/php5/php5.y:1596 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1600 +// line internal/php5/php5.y:1600 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3766,13 +3766,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1610 +// line internal/php5/php5.y:1610 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1614 +// line internal/php5/php5.y:1614 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3784,7 +3784,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1624 +// line internal/php5/php5.y:1624 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3798,7 +3798,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1639 +// line internal/php5/php5.y:1639 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3809,7 +3809,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1648 +// line internal/php5/php5.y:1648 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3829,7 +3829,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1669 +// line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3840,7 +3840,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1678 +// line internal/php5/php5.y:1678 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3860,7 +3860,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1700 +// line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3871,7 +3871,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1709 +// line internal/php5/php5.y:1709 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3891,7 +3891,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1731 +// line internal/php5/php5.y:1731 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3916,7 +3916,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1754 +// line internal/php5/php5.y:1754 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3943,7 +3943,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1783 +// line internal/php5/php5.y:1783 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3956,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1794 +// line internal/php5/php5.y:1794 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1806 +// line internal/php5/php5.y:1806 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3985,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1819 +// line internal/php5/php5.y:1819 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4001,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1837 +// line internal/php5/php5.y:1837 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1841 +// line internal/php5/php5.y:1841 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4021,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1853 +// line internal/php5/php5.y:1853 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4034,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1868 +// line internal/php5/php5.y:1868 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1872 +// line internal/php5/php5.y:1872 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1880 +// line internal/php5/php5.y:1880 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4057,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1889 +// line internal/php5/php5.y:1889 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,13 +4077,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1912 +// line internal/php5/php5.y:1912 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1916 +// line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4098,13 +4098,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1933 +// line internal/php5/php5.y:1933 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1937 +// line internal/php5/php5.y:1937 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4126,13 +4126,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1961 +// line internal/php5/php5.y:1961 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1965 +// line internal/php5/php5.y:1965 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4144,13 +4144,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1979 +// line internal/php5/php5.y:1979 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1983 +// line internal/php5/php5.y:1983 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4169,25 +4169,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2004 +// line internal/php5/php5.y:2004 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2008 +// line internal/php5/php5.y:2008 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2015 +// line internal/php5/php5.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2019 +// line internal/php5/php5.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4196,7 +4196,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2029 +// line internal/php5/php5.y:2029 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4212,15 +4212,23 @@ yydefault: yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) if yyDollar[3].token != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), + }, + VariadicTkn: yyDollar[3].token, + Var: variable, + } } if yyDollar[2].token != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + AmpersandTkn: yyDollar[2].token, + Var: variable, + } } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, nil} @@ -4237,7 +4245,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2068 +// line internal/php5/php5.y:2076 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4254,15 +4262,23 @@ yydefault: yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.SkippedTokens) if yyDollar[3].token != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), + }, + VariadicTkn: yyDollar[3].token, + Var: variable, + } } if yyDollar[2].token != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + AmpersandTkn: yyDollar[2].token, + Var: variable, + } } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, yyDollar[6].node} @@ -4279,13 +4295,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2112 +// line internal/php5/php5.y:2128 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2116 +// line internal/php5/php5.y:2132 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4297,7 +4313,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2126 +// line internal/php5/php5.y:2142 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4309,13 +4325,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2136 +// line internal/php5/php5.y:2152 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2144 +// line internal/php5/php5.y:2160 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4328,7 +4344,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2155 +// line internal/php5/php5.y:2171 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4341,7 +4357,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2166 +// line internal/php5/php5.y:2182 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4356,13 +4372,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2183 +// line internal/php5/php5.y:2199 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2187 +// line internal/php5/php5.y:2203 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4371,7 +4387,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2197 +// line internal/php5/php5.y:2213 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4383,7 +4399,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2207 +// line internal/php5/php5.y:2223 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4395,7 +4411,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2217 +// line internal/php5/php5.y:2233 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4407,7 +4423,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2227 +// line internal/php5/php5.y:2243 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4419,7 +4435,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2240 +// line internal/php5/php5.y:2256 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4428,7 +4444,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2247 +// line internal/php5/php5.y:2263 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4436,7 +4452,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2257 +// line internal/php5/php5.y:2273 { name := &ast.Identifier{ Node: ast.Node{ @@ -4455,7 +4471,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2274 +// line internal/php5/php5.y:2290 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4467,7 +4483,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2284 +// line internal/php5/php5.y:2300 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4481,7 +4497,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2300 +// line internal/php5/php5.y:2316 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4510,7 +4526,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2327 +// line internal/php5/php5.y:2343 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4541,7 +4557,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2356 +// line internal/php5/php5.y:2372 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4571,7 +4587,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2384 +// line internal/php5/php5.y:2400 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4603,19 +4619,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2418 +// line internal/php5/php5.y:2434 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2422 +// line internal/php5/php5.y:2438 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2430 +// line internal/php5/php5.y:2446 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4629,7 +4645,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2442 +// line internal/php5/php5.y:2458 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4637,13 +4653,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2448 +// line internal/php5/php5.y:2464 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2452 +// line internal/php5/php5.y:2468 { name := &ast.Identifier{ Node: ast.Node{ @@ -4679,7 +4695,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2489 +// line internal/php5/php5.y:2505 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4691,13 +4707,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2502 +// line internal/php5/php5.y:2518 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2506 +// line internal/php5/php5.y:2522 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4711,7 +4727,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2518 +// line internal/php5/php5.y:2534 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4722,7 +4738,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2527 +// line internal/php5/php5.y:2543 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4734,31 +4750,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2540 +// line internal/php5/php5.y:2556 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2544 +// line internal/php5/php5.y:2560 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2551 +// line internal/php5/php5.y:2567 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2555 +// line internal/php5/php5.y:2571 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2562 +// line internal/php5/php5.y:2578 { yyVAL.node = yyDollar[1].node @@ -4768,7 +4784,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2570 +// line internal/php5/php5.y:2586 { yyVAL.node = yyDollar[1].node @@ -4778,7 +4794,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2581 +// line internal/php5/php5.y:2597 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4791,13 +4807,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2595 +// line internal/php5/php5.y:2611 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2599 +// line internal/php5/php5.y:2615 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4806,7 +4822,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2609 +// line internal/php5/php5.y:2625 { name := &ast.Identifier{ Node: ast.Node{ @@ -4825,13 +4841,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2626 +// line internal/php5/php5.y:2642 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2633 +// line internal/php5/php5.y:2649 { target := &ast.Identifier{ Node: ast.Node{ @@ -4851,7 +4867,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2654 +// line internal/php5/php5.y:2670 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4871,7 +4887,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2672 +// line internal/php5/php5.y:2688 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4884,19 +4900,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2686 +// line internal/php5/php5.y:2702 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2690 +// line internal/php5/php5.y:2706 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2697 +// line internal/php5/php5.y:2713 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4907,7 +4923,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2706 +// line internal/php5/php5.y:2722 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4920,13 +4936,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2720 +// line internal/php5/php5.y:2736 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2724 +// line internal/php5/php5.y:2740 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4940,31 +4956,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2739 +// line internal/php5/php5.y:2755 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2743 +// line internal/php5/php5.y:2759 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2750 +// line internal/php5/php5.y:2766 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2754 +// line internal/php5/php5.y:2770 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2761 +// line internal/php5/php5.y:2777 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4992,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2771 +// line internal/php5/php5.y:2787 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +5004,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2781 +// line internal/php5/php5.y:2797 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +5016,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2791 +// line internal/php5/php5.y:2807 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +5028,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2801 +// line internal/php5/php5.y:2817 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,7 +5040,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2811 +// line internal/php5/php5.y:2827 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5036,7 +5052,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2824 +// line internal/php5/php5.y:2840 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5059,7 +5075,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2845 +// line internal/php5/php5.y:2861 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5083,7 +5099,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2867 +// line internal/php5/php5.y:2883 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5105,7 +5121,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2887 +// line internal/php5/php5.y:2903 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5128,7 +5144,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2911 +// line internal/php5/php5.y:2927 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5154,7 +5170,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2935 +// line internal/php5/php5.y:2951 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5183,7 +5199,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2965 +// line internal/php5/php5.y:2981 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5192,7 +5208,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2972 +// line internal/php5/php5.y:2988 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5200,19 +5216,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2982 +// line internal/php5/php5.y:2998 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2986 +// line internal/php5/php5.y:3002 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2993 +// line internal/php5/php5.y:3009 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5221,25 +5237,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3000 +// line internal/php5/php5.y:3016 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3007 +// line internal/php5/php5.y:3023 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3011 +// line internal/php5/php5.y:3027 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3018 +// line internal/php5/php5.y:3034 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5253,7 +5269,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3030 +// line internal/php5/php5.y:3046 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5267,37 +5283,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3045 +// line internal/php5/php5.y:3061 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3049 +// line internal/php5/php5.y:3065 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3053 +// line internal/php5/php5.y:3069 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3060 +// line internal/php5/php5.y:3076 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3064 +// line internal/php5/php5.y:3080 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3071 +// line internal/php5/php5.y:3087 { if yyDollar[3].node != nil { @@ -5313,7 +5329,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3088 +// line internal/php5/php5.y:3104 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5330,7 +5346,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3103 +// line internal/php5/php5.y:3119 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5343,7 +5359,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3114 +// line internal/php5/php5.y:3130 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5357,7 +5373,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3126 +// line internal/php5/php5.y:3142 { var _new *ast.ExprNew @@ -5384,7 +5400,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3151 +// line internal/php5/php5.y:3167 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5396,7 +5412,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3161 +// line internal/php5/php5.y:3177 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5408,7 +5424,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3171 +// line internal/php5/php5.y:3187 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5421,7 +5437,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3182 +// line internal/php5/php5.y:3198 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5434,7 +5450,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3193 +// line internal/php5/php5.y:3209 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5447,7 +5463,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3204 +// line internal/php5/php5.y:3220 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5460,7 +5476,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3215 +// line internal/php5/php5.y:3231 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5473,7 +5489,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3226 +// line internal/php5/php5.y:3242 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5486,7 +5502,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3237 +// line internal/php5/php5.y:3253 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5499,7 +5515,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3248 +// line internal/php5/php5.y:3264 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5512,7 +5528,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3259 +// line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5525,7 +5541,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3270 +// line internal/php5/php5.y:3286 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5538,7 +5554,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3281 +// line internal/php5/php5.y:3297 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5567,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3292 +// line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5564,7 +5580,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3303 +// line internal/php5/php5.y:3319 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5576,7 +5592,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3313 +// line internal/php5/php5.y:3329 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5589,7 +5605,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3324 +// line internal/php5/php5.y:3340 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5601,7 +5617,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3334 +// line internal/php5/php5.y:3350 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5630,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3345 +// line internal/php5/php5.y:3361 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5643,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3356 +// line internal/php5/php5.y:3372 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5656,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3367 +// line internal/php5/php5.y:3383 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5669,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3378 +// line internal/php5/php5.y:3394 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5682,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3389 +// line internal/php5/php5.y:3405 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5679,7 +5695,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3400 +// line internal/php5/php5.y:3416 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5692,7 +5708,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3411 +// line internal/php5/php5.y:3427 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5705,7 +5721,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3422 +// line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5717,7 +5733,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3432 +// line internal/php5/php5.y:3448 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5730,7 +5746,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3443 +// line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,7 +5759,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3454 +// line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5756,7 +5772,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3465 +// line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5769,7 +5785,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3476 +// line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5782,7 +5798,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3487 +// line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5795,7 +5811,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3498 +// line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,7 +5824,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3509 +// line internal/php5/php5.y:3525 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5837,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3520 +// line internal/php5/php5.y:3536 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5833,7 +5849,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3530 +// line internal/php5/php5.y:3546 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5845,7 +5861,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3540 +// line internal/php5/php5.y:3556 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5857,7 +5873,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3550 +// line internal/php5/php5.y:3566 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5869,7 +5885,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3560 +// line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5882,7 +5898,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3571 +// line internal/php5/php5.y:3587 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5895,7 +5911,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3582 +// line internal/php5/php5.y:3598 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5908,7 +5924,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3593 +// line internal/php5/php5.y:3609 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5922,7 +5938,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3605 +// line internal/php5/php5.y:3621 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5935,7 +5951,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3616 +// line internal/php5/php5.y:3632 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5948,7 +5964,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3627 +// line internal/php5/php5.y:3643 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5961,7 +5977,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3638 +// line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5974,7 +5990,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3649 +// line internal/php5/php5.y:3665 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5987,19 +6003,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3660 +// line internal/php5/php5.y:3676 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3664 +// line internal/php5/php5.y:3680 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3668 +// line internal/php5/php5.y:3684 { yyVAL.node = yyDollar[2].node @@ -6031,7 +6047,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3698 +// line internal/php5/php5.y:3714 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6045,7 +6061,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3710 +// line internal/php5/php5.y:3726 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6059,13 +6075,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3722 +// line internal/php5/php5.y:3738 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3726 +// line internal/php5/php5.y:3742 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6078,7 +6094,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3737 +// line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6091,7 +6107,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3748 +// line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6104,7 +6120,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3759 +// line internal/php5/php5.y:3775 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6117,7 +6133,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3770 +// line internal/php5/php5.y:3786 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6130,7 +6146,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3781 +// line internal/php5/php5.y:3797 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6143,7 +6159,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3792 +// line internal/php5/php5.y:3808 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6156,7 +6172,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3803 +// line internal/php5/php5.y:3819 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6176,7 +6192,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3821 +// line internal/php5/php5.y:3837 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6188,25 +6204,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3831 +// line internal/php5/php5.y:3847 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3835 +// line internal/php5/php5.y:3851 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3839 +// line internal/php5/php5.y:3855 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3843 +// line internal/php5/php5.y:3859 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6218,7 +6234,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3853 +// line internal/php5/php5.y:3869 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6230,7 +6246,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3879 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6242,7 +6258,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3873 +// line internal/php5/php5.y:3889 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6269,7 +6285,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3897 +// line internal/php5/php5.y:3913 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6297,7 +6313,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3925 +// line internal/php5/php5.y:3941 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6309,7 +6325,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3935 +// line internal/php5/php5.y:3951 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6321,7 +6337,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3945 +// line internal/php5/php5.y:3961 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6334,7 +6350,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3956 +// line internal/php5/php5.y:3972 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6347,7 +6363,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3970 +// line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6360,7 +6376,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3981 +// line internal/php5/php5.y:3997 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6373,7 +6389,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3992 +// line internal/php5/php5.y:4008 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6389,7 +6405,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4006 +// line internal/php5/php5.y:4022 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6402,7 +6418,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4020 +// line internal/php5/php5.y:4036 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6416,7 +6432,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4032 +// line internal/php5/php5.y:4048 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6429,19 +6445,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4046 +// line internal/php5/php5.y:4062 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4053 +// line internal/php5/php5.y:4069 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4057 +// line internal/php5/php5.y:4073 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6455,7 +6471,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4072 +// line internal/php5/php5.y:4088 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6476,7 +6492,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4091 +// line internal/php5/php5.y:4107 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6500,7 +6516,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4113 +// line internal/php5/php5.y:4129 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6520,7 +6536,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4131 +// line internal/php5/php5.y:4147 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6543,7 +6559,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4155 +// line internal/php5/php5.y:4171 { name := &ast.NameName{ Node: ast.Node{ @@ -6558,7 +6574,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4168 +// line internal/php5/php5.y:4184 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6575,7 +6591,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4183 +// line internal/php5/php5.y:4199 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6591,7 +6607,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4197 +// line internal/php5/php5.y:4213 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6604,7 +6620,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4208 +// line internal/php5/php5.y:4224 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6617,7 +6633,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4219 +// line internal/php5/php5.y:4235 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6630,7 +6646,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4230 +// line internal/php5/php5.y:4246 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6643,7 +6659,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4241 +// line internal/php5/php5.y:4257 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6655,7 +6671,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4254 +// line internal/php5/php5.y:4270 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6667,7 +6683,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4264 +// line internal/php5/php5.y:4280 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6678,7 +6694,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4273 +// line internal/php5/php5.y:4289 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6691,7 +6707,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4284 +// line internal/php5/php5.y:4300 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6703,7 +6719,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4297 +// line internal/php5/php5.y:4313 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6714,7 +6730,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4306 +// line internal/php5/php5.y:4322 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6727,7 +6743,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4317 +// line internal/php5/php5.y:4333 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6739,19 +6755,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4330 +// line internal/php5/php5.y:4346 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4334 +// line internal/php5/php5.y:4350 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4357 { yyVAL.node = yyDollar[1].node @@ -6792,25 +6808,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4380 +// line internal/php5/php5.y:4396 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4388 +// line internal/php5/php5.y:4404 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4392 +// line internal/php5/php5.y:4408 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4400 +// line internal/php5/php5.y:4416 { yyVAL.list = yyDollar[2].list @@ -6819,13 +6835,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4410 +// line internal/php5/php5.y:4426 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4414 +// line internal/php5/php5.y:4430 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6841,19 +6857,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4428 +// line internal/php5/php5.y:4444 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4435 +// line internal/php5/php5.y:4451 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4439 +// line internal/php5/php5.y:4455 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6863,25 +6879,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4447 +// line internal/php5/php5.y:4463 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4454 +// line internal/php5/php5.y:4470 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4474 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4465 +// line internal/php5/php5.y:4481 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6893,7 +6909,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4475 +// line internal/php5/php5.y:4491 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6905,7 +6921,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4485 +// line internal/php5/php5.y:4501 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6917,7 +6933,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4495 +// line internal/php5/php5.y:4511 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6929,7 +6945,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4505 +// line internal/php5/php5.y:4521 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6941,7 +6957,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4515 +// line internal/php5/php5.y:4531 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6953,7 +6969,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4525 +// line internal/php5/php5.y:4541 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6965,7 +6981,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4551 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6977,7 +6993,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4545 +// line internal/php5/php5.y:4561 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6989,7 +7005,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4555 +// line internal/php5/php5.y:4571 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7001,7 +7017,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4565 +// line internal/php5/php5.y:4581 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7015,7 +7031,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4577 +// line internal/php5/php5.y:4593 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7027,7 +7043,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4590 +// line internal/php5/php5.y:4606 { target := &ast.Identifier{ Node: ast.Node{ @@ -7047,25 +7063,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4611 +// line internal/php5/php5.y:4627 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4618 +// line internal/php5/php5.y:4634 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4638 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4626 +// line internal/php5/php5.y:4642 { name := &ast.NameName{ Node: ast.Node{ @@ -7080,7 +7096,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4639 +// line internal/php5/php5.y:4655 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7097,7 +7113,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4654 +// line internal/php5/php5.y:4670 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7113,7 +7129,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4668 +// line internal/php5/php5.y:4684 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7127,7 +7143,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4680 +// line internal/php5/php5.y:4696 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7140,13 +7156,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4691 +// line internal/php5/php5.y:4707 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4695 +// line internal/php5/php5.y:4711 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7158,13 +7174,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4705 +// line internal/php5/php5.y:4721 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4712 +// line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7177,7 +7193,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4723 +// line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7190,7 +7206,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4734 +// line internal/php5/php5.y:4750 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7203,7 +7219,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4745 +// line internal/php5/php5.y:4761 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7216,7 +7232,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4756 +// line internal/php5/php5.y:4772 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7229,7 +7245,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4767 +// line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7242,7 +7258,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4778 +// line internal/php5/php5.y:4794 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7255,7 +7271,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4789 +// line internal/php5/php5.y:4805 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7267,7 +7283,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4799 +// line internal/php5/php5.y:4815 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7279,7 +7295,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4809 +// line internal/php5/php5.y:4825 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7292,7 +7308,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4820 +// line internal/php5/php5.y:4836 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7305,7 +7321,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4831 +// line internal/php5/php5.y:4847 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7318,7 +7334,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4842 +// line internal/php5/php5.y:4858 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7331,7 +7347,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4853 +// line internal/php5/php5.y:4869 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7344,7 +7360,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4864 +// line internal/php5/php5.y:4880 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7357,7 +7373,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4875 +// line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7370,7 +7386,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4886 +// line internal/php5/php5.y:4902 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7383,7 +7399,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4897 +// line internal/php5/php5.y:4913 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7396,7 +7412,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4908 +// line internal/php5/php5.y:4924 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7409,7 +7425,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4919 +// line internal/php5/php5.y:4935 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7422,7 +7438,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4930 +// line internal/php5/php5.y:4946 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7435,7 +7451,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4941 +// line internal/php5/php5.y:4957 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7448,7 +7464,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4952 +// line internal/php5/php5.y:4968 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7461,7 +7477,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4963 +// line internal/php5/php5.y:4979 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7475,7 +7491,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4975 +// line internal/php5/php5.y:4991 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7488,7 +7504,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4986 +// line internal/php5/php5.y:5002 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7501,7 +7517,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4997 +// line internal/php5/php5.y:5013 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7514,7 +7530,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5008 +// line internal/php5/php5.y:5024 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7527,7 +7543,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5019 +// line internal/php5/php5.y:5035 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7541,7 +7557,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5031 +// line internal/php5/php5.y:5047 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7555,7 +7571,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5043 +// line internal/php5/php5.y:5059 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7567,7 +7583,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5053 +// line internal/php5/php5.y:5069 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7579,7 +7595,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5063 +// line internal/php5/php5.y:5079 { yyVAL.node = yyDollar[2].node @@ -7589,13 +7605,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5074 +// line internal/php5/php5.y:5090 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5078 +// line internal/php5/php5.y:5094 { name := &ast.NameName{ Node: ast.Node{ @@ -7610,7 +7626,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5091 +// line internal/php5/php5.y:5107 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7627,7 +7643,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5106 +// line internal/php5/php5.y:5122 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7643,7 +7659,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5123 +// line internal/php5/php5.y:5139 { name := &ast.Identifier{ Node: ast.Node{ @@ -7662,25 +7678,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5140 +// line internal/php5/php5.y:5156 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5144 +// line internal/php5/php5.y:5160 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5148 +// line internal/php5/php5.y:5164 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5152 +// line internal/php5/php5.y:5168 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7692,7 +7708,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5162 +// line internal/php5/php5.y:5178 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7704,7 +7720,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5172 +// line internal/php5/php5.y:5188 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7716,13 +7732,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5185 +// line internal/php5/php5.y:5201 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5189 +// line internal/php5/php5.y:5205 { yyVAL.list = yyDollar[1].list @@ -7733,19 +7749,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5201 +// line internal/php5/php5.y:5217 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5205 +// line internal/php5/php5.y:5221 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5212 +// line internal/php5/php5.y:5228 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7760,7 +7776,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5225 +// line internal/php5/php5.y:5241 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7774,7 +7790,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5237 +// line internal/php5/php5.y:5253 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7788,7 +7804,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5249 +// line internal/php5/php5.y:5265 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7801,19 +7817,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5263 +// line internal/php5/php5.y:5279 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5267 +// line internal/php5/php5.y:5283 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5274 +// line internal/php5/php5.y:5290 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7830,7 +7846,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5289 +// line internal/php5/php5.y:5305 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7847,25 +7863,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5308 +// line internal/php5/php5.y:5324 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5316 +// line internal/php5/php5.y:5332 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5323 +// line internal/php5/php5.y:5339 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5330 +// line internal/php5/php5.y:5346 { yyVAL.node = yyDollar[1].node @@ -7923,25 +7939,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5386 +// line internal/php5/php5.y:5402 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5393 +// line internal/php5/php5.y:5409 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5397 +// line internal/php5/php5.y:5413 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5405 +// line internal/php5/php5.y:5421 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7955,7 +7971,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5420 +// line internal/php5/php5.y:5436 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7969,7 +7985,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5432 +// line internal/php5/php5.y:5448 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7983,7 +7999,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5447 +// line internal/php5/php5.y:5463 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -7992,31 +8008,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5457 +// line internal/php5/php5.y:5473 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5461 +// line internal/php5/php5.y:5477 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5465 +// line internal/php5/php5.y:5481 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5472 +// line internal/php5/php5.y:5488 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5476 +// line internal/php5/php5.y:5492 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8028,7 +8044,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5489 +// line internal/php5/php5.y:5505 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8041,7 +8057,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5500 +// line internal/php5/php5.y:5516 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8054,13 +8070,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5514 +// line internal/php5/php5.y:5530 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5521 +// line internal/php5/php5.y:5537 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8073,7 +8089,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5532 +// line internal/php5/php5.y:5548 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8086,31 +8102,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5546 +// line internal/php5/php5.y:5562 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5550 +// line internal/php5/php5.y:5566 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5554 +// line internal/php5/php5.y:5570 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5562 +// line internal/php5/php5.y:5578 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5566 +// line internal/php5/php5.y:5582 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8122,13 +8138,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5576 +// line internal/php5/php5.y:5592 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5583 +// line internal/php5/php5.y:5599 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8141,7 +8157,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5594 +// line internal/php5/php5.y:5610 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8154,13 +8170,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5605 +// line internal/php5/php5.y:5621 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5613 +// line internal/php5/php5.y:5629 { name := &ast.Identifier{ Node: ast.Node{ @@ -8179,7 +8195,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5630 +// line internal/php5/php5.y:5646 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8193,25 +8209,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5645 +// line internal/php5/php5.y:5661 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5649 +// line internal/php5/php5.y:5665 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5657 +// line internal/php5/php5.y:5673 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5661 +// line internal/php5/php5.y:5677 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8221,7 +8237,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5672 +// line internal/php5/php5.y:5688 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8235,7 +8251,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5684 +// line internal/php5/php5.y:5700 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8249,7 +8265,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5696 +// line internal/php5/php5.y:5712 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8259,7 +8275,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5707 +// line internal/php5/php5.y:5723 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8271,7 +8287,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5717 +// line internal/php5/php5.y:5733 { yyVAL.node = yyDollar[2].node @@ -8284,7 +8300,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5731 +// line internal/php5/php5.y:5747 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8297,7 +8313,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5742 +// line internal/php5/php5.y:5758 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8314,7 +8330,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5760 +// line internal/php5/php5.y:5776 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8327,7 +8343,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5771 +// line internal/php5/php5.y:5787 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8337,7 +8353,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5783 +// line internal/php5/php5.y:5799 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8349,7 +8365,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5793 +// line internal/php5/php5.y:5809 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8365,19 +8381,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5807 +// line internal/php5/php5.y:5823 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5815 +// line internal/php5/php5.y:5831 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5819 +// line internal/php5/php5.y:5835 { yyVAL.list = yyDollar[1].list @@ -8392,7 +8408,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5835 +// line internal/php5/php5.y:5851 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8407,7 +8423,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5848 +// line internal/php5/php5.y:5864 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8421,7 +8437,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5860 +// line internal/php5/php5.y:5876 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8435,7 +8451,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5872 +// line internal/php5/php5.y:5888 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8448,7 +8464,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5883 +// line internal/php5/php5.y:5899 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8466,7 +8482,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5899 +// line internal/php5/php5.y:5915 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8482,7 +8498,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5913 +// line internal/php5/php5.y:5929 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8499,7 +8515,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5928 +// line internal/php5/php5.y:5944 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8514,13 +8530,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5944 +// line internal/php5/php5.y:5960 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5948 +// line internal/php5/php5.y:5964 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8533,13 +8549,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5959 +// line internal/php5/php5.y:5975 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5963 +// line internal/php5/php5.y:5979 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8552,7 +8568,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5977 +// line internal/php5/php5.y:5993 { name := &ast.Identifier{ Node: ast.Node{ @@ -8571,7 +8587,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5994 +// line internal/php5/php5.y:6010 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8593,7 +8609,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6014 +// line internal/php5/php5.y:6030 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8621,7 +8637,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6040 +// line internal/php5/php5.y:6056 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8636,7 +8652,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6053 +// line internal/php5/php5.y:6069 { name := &ast.Identifier{ Node: ast.Node{ @@ -8658,7 +8674,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6073 +// line internal/php5/php5.y:6089 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8682,7 +8698,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6095 +// line internal/php5/php5.y:6111 { yyVAL.node = yyDollar[2].node @@ -8692,7 +8708,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6106 +// line internal/php5/php5.y:6122 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8704,7 +8720,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6116 +// line internal/php5/php5.y:6132 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8721,7 +8737,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6131 +// line internal/php5/php5.y:6147 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8740,7 +8756,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6151 +// line internal/php5/php5.y:6167 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8754,7 +8770,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6163 +// line internal/php5/php5.y:6179 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8776,7 +8792,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6183 +// line internal/php5/php5.y:6199 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8798,7 +8814,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6203 +// line internal/php5/php5.y:6219 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8810,7 +8826,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6213 +// line internal/php5/php5.y:6229 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8822,7 +8838,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6223 +// line internal/php5/php5.y:6239 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8844,7 +8860,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6243 +// line internal/php5/php5.y:6259 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8856,7 +8872,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6253 +// line internal/php5/php5.y:6269 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8868,13 +8884,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6266 +// line internal/php5/php5.y:6282 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6270 +// line internal/php5/php5.y:6286 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8883,19 +8899,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6280 +// line internal/php5/php5.y:6296 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6284 +// line internal/php5/php5.y:6300 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6291 +// line internal/php5/php5.y:6307 { target := &ast.Identifier{ Node: ast.Node{ @@ -8915,7 +8931,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6309 +// line internal/php5/php5.y:6325 { target := &ast.Identifier{ Node: ast.Node{ @@ -8935,7 +8951,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6330 +// line internal/php5/php5.y:6346 { target := &ast.Identifier{ Node: ast.Node{ @@ -8955,7 +8971,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6351 +// line internal/php5/php5.y:6367 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 22a845a..d801635 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2041,15 +2041,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} @@ -2081,15 +2089,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 4876d91..a3ed309 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4941 +// line internal/php7/php7.y:4957 // line yacctab:1 var yyExca = [...]int{ @@ -4256,15 +4256,23 @@ yydefault: yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) if yyDollar[3].token != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), + }, + VariadicTkn: yyDollar[3].token, + Var: variable, + } } if yyDollar[2].token != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + AmpersandTkn: yyDollar[2].token, + Var: variable, + } } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, nil} @@ -4281,7 +4289,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1892 +// line internal/php7/php7.y:1900 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4298,15 +4306,23 @@ yydefault: yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.SkippedTokens) if yyDollar[3].token != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), + }, + VariadicTkn: yyDollar[3].token, + Var: variable, + } } if yyDollar[2].token != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + AmpersandTkn: yyDollar[2].token, + Var: variable, + } } yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, yyDollar[6].node} @@ -4323,25 +4339,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1935 +// line internal/php7/php7.y:1951 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1939 +// line internal/php7/php7.y:1955 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1946 +// line internal/php7/php7.y:1962 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1950 +// line internal/php7/php7.y:1966 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4353,7 +4369,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1963 +// line internal/php7/php7.y:1979 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4365,7 +4381,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1973 +// line internal/php7/php7.y:1989 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4377,19 +4393,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1983 +// line internal/php7/php7.y:1999 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1990 +// line internal/php7/php7.y:2006 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1994 +// line internal/php7/php7.y:2010 { yyVAL.node = yyDollar[2].node @@ -4398,7 +4414,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2004 +// line internal/php7/php7.y:2020 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4411,7 +4427,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2015 +// line internal/php7/php7.y:2031 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4428,13 +4444,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2033 +// line internal/php7/php7.y:2049 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2037 +// line internal/php7/php7.y:2053 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4443,7 +4459,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2047 +// line internal/php7/php7.y:2063 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4455,7 +4471,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2057 +// line internal/php7/php7.y:2073 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4467,7 +4483,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2070 +// line internal/php7/php7.y:2086 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4476,7 +4492,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2077 +// line internal/php7/php7.y:2093 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4484,13 +4500,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2086 +// line internal/php7/php7.y:2102 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2093 +// line internal/php7/php7.y:2109 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4499,7 +4515,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2100 +// line internal/php7/php7.y:2116 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4507,7 +4523,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2109 +// line internal/php7/php7.y:2125 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4533,7 +4549,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2133 +// line internal/php7/php7.y:2149 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4560,19 +4576,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2161 +// line internal/php7/php7.y:2177 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2165 +// line internal/php7/php7.y:2181 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2172 +// line internal/php7/php7.y:2188 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4586,7 +4602,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2184 +// line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4600,7 +4616,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2196 +// line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4612,7 +4628,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2206 +// line internal/php7/php7.y:2222 { name := &ast.Identifier{ Node: ast.Node{ @@ -4647,13 +4663,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2242 +// line internal/php7/php7.y:2258 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2246 +// line internal/php7/php7.y:2262 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4667,7 +4683,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2258 +// line internal/php7/php7.y:2274 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4678,7 +4694,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2267 +// line internal/php7/php7.y:2283 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4690,7 +4706,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2277 +// line internal/php7/php7.y:2293 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4702,19 +4718,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2290 +// line internal/php7/php7.y:2306 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2294 +// line internal/php7/php7.y:2310 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2301 +// line internal/php7/php7.y:2317 { yyVAL.node = yyDollar[1].node @@ -4724,7 +4740,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2309 +// line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4734,7 +4750,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2320 +// line internal/php7/php7.y:2336 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4747,7 +4763,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2334 +// line internal/php7/php7.y:2350 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4767,7 +4783,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2352 +// line internal/php7/php7.y:2368 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4787,7 +4803,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2370 +// line internal/php7/php7.y:2386 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4807,7 +4823,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2388 +// line internal/php7/php7.y:2404 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4820,7 +4836,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2402 +// line internal/php7/php7.y:2418 { name := &ast.Identifier{ Node: ast.Node{ @@ -4839,13 +4855,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2419 +// line internal/php7/php7.y:2435 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2426 +// line internal/php7/php7.y:2442 { target := &ast.Identifier{ Node: ast.Node{ @@ -4865,7 +4881,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2447 +// line internal/php7/php7.y:2463 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4876,7 +4892,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2456 +// line internal/php7/php7.y:2472 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4889,13 +4905,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2470 +// line internal/php7/php7.y:2486 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2474 +// line internal/php7/php7.y:2490 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4909,31 +4925,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2489 +// line internal/php7/php7.y:2505 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2493 +// line internal/php7/php7.y:2509 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2500 +// line internal/php7/php7.y:2516 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2504 +// line internal/php7/php7.y:2520 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2511 +// line internal/php7/php7.y:2527 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4945,7 +4961,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2521 +// line internal/php7/php7.y:2537 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4957,7 +4973,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2531 +// line internal/php7/php7.y:2547 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4969,7 +4985,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2541 +// line internal/php7/php7.y:2557 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4981,7 +4997,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2551 +// line internal/php7/php7.y:2567 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4993,7 +5009,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2561 +// line internal/php7/php7.y:2577 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5005,7 +5021,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2574 +// line internal/php7/php7.y:2590 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5014,13 +5030,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2581 +// line internal/php7/php7.y:2597 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2588 +// line internal/php7/php7.y:2604 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5041,7 +5057,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2607 +// line internal/php7/php7.y:2623 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5063,7 +5079,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2646 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5071,13 +5087,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2636 +// line internal/php7/php7.y:2652 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2643 +// line internal/php7/php7.y:2659 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5098,7 +5114,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2665 +// line internal/php7/php7.y:2681 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5119,7 +5135,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2687 +// line internal/php7/php7.y:2703 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5128,7 +5144,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2694 +// line internal/php7/php7.y:2710 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5136,25 +5152,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2703 +// line internal/php7/php7.y:2719 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2710 +// line internal/php7/php7.y:2726 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2730 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2721 +// line internal/php7/php7.y:2737 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5163,13 +5179,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2728 +// line internal/php7/php7.y:2744 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2735 +// line internal/php7/php7.y:2751 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5187,7 +5203,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2754 +// line internal/php7/php7.y:2770 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5202,7 +5218,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2767 +// line internal/php7/php7.y:2783 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5214,7 +5230,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2780 +// line internal/php7/php7.y:2796 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5231,7 +5247,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2795 +// line internal/php7/php7.y:2811 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5247,7 +5263,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2809 +// line internal/php7/php7.y:2825 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5260,7 +5276,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2820 +// line internal/php7/php7.y:2836 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5274,7 +5290,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2832 +// line internal/php7/php7.y:2848 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5286,7 +5302,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2842 +// line internal/php7/php7.y:2858 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5299,7 +5315,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2853 +// line internal/php7/php7.y:2869 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5312,7 +5328,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2864 +// line internal/php7/php7.y:2880 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5325,7 +5341,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2891 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5338,7 +5354,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2886 +// line internal/php7/php7.y:2902 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5351,7 +5367,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2897 +// line internal/php7/php7.y:2913 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5364,7 +5380,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2908 +// line internal/php7/php7.y:2924 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5377,7 +5393,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2919 +// line internal/php7/php7.y:2935 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5390,7 +5406,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2930 +// line internal/php7/php7.y:2946 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5403,7 +5419,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2941 +// line internal/php7/php7.y:2957 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5416,7 +5432,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2952 +// line internal/php7/php7.y:2968 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5429,7 +5445,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2963 +// line internal/php7/php7.y:2979 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5442,7 +5458,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2974 +// line internal/php7/php7.y:2990 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5455,7 +5471,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2985 +// line internal/php7/php7.y:3001 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5468,7 +5484,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2996 +// line internal/php7/php7.y:3012 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5480,7 +5496,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3006 +// line internal/php7/php7.y:3022 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5493,7 +5509,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3017 +// line internal/php7/php7.y:3033 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5505,7 +5521,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3027 +// line internal/php7/php7.y:3043 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5518,7 +5534,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3038 +// line internal/php7/php7.y:3054 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5531,7 +5547,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3049 +// line internal/php7/php7.y:3065 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5544,7 +5560,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3060 +// line internal/php7/php7.y:3076 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5557,7 +5573,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3071 +// line internal/php7/php7.y:3087 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5570,7 +5586,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3082 +// line internal/php7/php7.y:3098 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5583,7 +5599,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3093 +// line internal/php7/php7.y:3109 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5596,7 +5612,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3104 +// line internal/php7/php7.y:3120 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5609,7 +5625,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3115 +// line internal/php7/php7.y:3131 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5621,7 +5637,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3125 +// line internal/php7/php7.y:3141 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5634,7 +5650,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3136 +// line internal/php7/php7.y:3152 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5647,7 +5663,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3147 +// line internal/php7/php7.y:3163 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5660,7 +5676,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3158 +// line internal/php7/php7.y:3174 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5673,7 +5689,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3169 +// line internal/php7/php7.y:3185 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5702,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3180 +// line internal/php7/php7.y:3196 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5699,7 +5715,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3191 +// line internal/php7/php7.y:3207 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5712,7 +5728,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3202 +// line internal/php7/php7.y:3218 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5725,7 +5741,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3213 +// line internal/php7/php7.y:3229 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5737,7 +5753,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3223 +// line internal/php7/php7.y:3239 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5749,7 +5765,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3233 +// line internal/php7/php7.y:3249 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5761,7 +5777,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3243 +// line internal/php7/php7.y:3259 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5773,7 +5789,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3253 +// line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5786,7 +5802,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3264 +// line internal/php7/php7.y:3280 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5815,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3275 +// line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,7 +5828,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3286 +// line internal/php7/php7.y:3302 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5842,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3298 +// line internal/php7/php7.y:3314 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5855,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3309 +// line internal/php7/php7.y:3325 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5868,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3320 +// line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5881,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3331 +// line internal/php7/php7.y:3347 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5894,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3342 +// line internal/php7/php7.y:3358 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5891,7 +5907,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3353 +// line internal/php7/php7.y:3369 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5904,7 +5920,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3364 +// line internal/php7/php7.y:3380 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5921,13 +5937,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3379 +// line internal/php7/php7.y:3395 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3383 +// line internal/php7/php7.y:3399 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5941,7 +5957,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3395 +// line internal/php7/php7.y:3411 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5955,7 +5971,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3407 +// line internal/php7/php7.y:3423 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5968,13 +5984,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3418 +// line internal/php7/php7.y:3434 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3422 +// line internal/php7/php7.y:3438 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -5987,7 +6003,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3433 +// line internal/php7/php7.y:3449 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6000,7 +6016,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3444 +// line internal/php7/php7.y:3460 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6013,7 +6029,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3455 +// line internal/php7/php7.y:3471 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6026,7 +6042,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3466 +// line internal/php7/php7.y:3482 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6039,7 +6055,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3477 +// line internal/php7/php7.y:3493 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6052,7 +6068,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3488 +// line internal/php7/php7.y:3504 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6065,7 +6081,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3499 +// line internal/php7/php7.y:3515 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6085,7 +6101,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3517 +// line internal/php7/php7.y:3533 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6097,13 +6113,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3527 +// line internal/php7/php7.y:3543 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3531 +// line internal/php7/php7.y:3547 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6115,7 +6131,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3541 +// line internal/php7/php7.y:3557 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6127,7 +6143,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3551 +// line internal/php7/php7.y:3567 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6139,7 +6155,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3561 +// line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6151,7 +6167,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3571 +// line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6164,7 +6180,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3582 +// line internal/php7/php7.y:3598 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6176,13 +6192,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3592 +// line internal/php7/php7.y:3608 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3596 +// line internal/php7/php7.y:3612 { yyVAL.node = yyDollar[2].node @@ -6203,7 +6219,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3617 +// line internal/php7/php7.y:3633 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6234,7 +6250,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3644 +// line internal/php7/php7.y:3660 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6260,25 +6276,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3674 +// line internal/php7/php7.y:3690 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3678 +// line internal/php7/php7.y:3694 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3685 +// line internal/php7/php7.y:3701 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3689 +// line internal/php7/php7.y:3705 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6292,7 +6308,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3704 +// line internal/php7/php7.y:3720 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6301,13 +6317,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3711 +// line internal/php7/php7.y:3727 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3718 +// line internal/php7/php7.y:3734 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6326,7 +6342,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3735 +// line internal/php7/php7.y:3751 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6348,7 +6364,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3758 +// line internal/php7/php7.y:3774 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6360,7 +6376,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3768 +// line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6373,7 +6389,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3779 +// line internal/php7/php7.y:3795 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6386,7 +6402,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3790 +// line internal/php7/php7.y:3806 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6398,7 +6414,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3803 +// line internal/php7/php7.y:3819 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6410,31 +6426,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3813 +// line internal/php7/php7.y:3829 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3820 +// line internal/php7/php7.y:3836 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3824 +// line internal/php7/php7.y:3840 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3831 +// line internal/php7/php7.y:3847 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3835 +// line internal/php7/php7.y:3851 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6451,13 +6467,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3853 +// line internal/php7/php7.y:3869 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3857 +// line internal/php7/php7.y:3873 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6467,25 +6483,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3865 +// line internal/php7/php7.y:3881 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3872 +// line internal/php7/php7.y:3888 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3876 +// line internal/php7/php7.y:3892 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3883 +// line internal/php7/php7.y:3899 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6499,7 +6515,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3895 +// line internal/php7/php7.y:3911 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6512,7 +6528,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3906 +// line internal/php7/php7.y:3922 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6524,7 +6540,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3919 +// line internal/php7/php7.y:3935 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6536,7 +6552,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3929 +// line internal/php7/php7.y:3945 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6548,7 +6564,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3939 +// line internal/php7/php7.y:3955 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6560,7 +6576,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3949 +// line internal/php7/php7.y:3965 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6572,7 +6588,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3959 +// line internal/php7/php7.y:3975 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6584,7 +6600,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3969 +// line internal/php7/php7.y:3985 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6596,7 +6612,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3979 +// line internal/php7/php7.y:3995 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6608,7 +6624,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3989 +// line internal/php7/php7.y:4005 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6620,7 +6636,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3999 +// line internal/php7/php7.y:4015 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6632,7 +6648,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4009 +// line internal/php7/php7.y:4025 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6644,7 +6660,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4019 +// line internal/php7/php7.y:4035 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6658,7 +6674,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4031 +// line internal/php7/php7.y:4047 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6670,7 +6686,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4041 +// line internal/php7/php7.y:4057 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6682,7 +6698,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4051 +// line internal/php7/php7.y:4067 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6694,19 +6710,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4061 +// line internal/php7/php7.y:4077 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4065 +// line internal/php7/php7.y:4081 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4072 +// line internal/php7/php7.y:4088 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6718,7 +6734,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4082 +// line internal/php7/php7.y:4098 { target := &ast.Identifier{ Node: ast.Node{ @@ -6738,7 +6754,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4100 +// line internal/php7/php7.y:4116 { target := &ast.Identifier{ Node: ast.Node{ @@ -6758,43 +6774,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4121 +// line internal/php7/php7.y:4137 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4125 +// line internal/php7/php7.y:4141 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4132 +// line internal/php7/php7.y:4148 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4136 +// line internal/php7/php7.y:4152 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4143 +// line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4150 +// line internal/php7/php7.y:4166 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4154 +// line internal/php7/php7.y:4170 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6811,19 +6827,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4169 +// line internal/php7/php7.y:4185 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4176 +// line internal/php7/php7.y:4192 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4180 +// line internal/php7/php7.y:4196 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6840,19 +6856,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4195 +// line internal/php7/php7.y:4211 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4202 +// line internal/php7/php7.y:4218 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4206 +// line internal/php7/php7.y:4222 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6865,7 +6881,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4217 +// line internal/php7/php7.y:4233 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6878,7 +6894,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4228 +// line internal/php7/php7.y:4244 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6891,7 +6907,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4239 +// line internal/php7/php7.y:4255 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6904,25 +6920,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4250 +// line internal/php7/php7.y:4266 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4257 +// line internal/php7/php7.y:4273 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4261 +// line internal/php7/php7.y:4277 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4265 +// line internal/php7/php7.y:4281 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6935,7 +6951,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4279 +// line internal/php7/php7.y:4295 { name := &ast.Identifier{ Node: ast.Node{ @@ -6954,7 +6970,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4296 +// line internal/php7/php7.y:4312 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6968,7 +6984,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4308 +// line internal/php7/php7.y:4324 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6980,7 +6996,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4321 +// line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6993,7 +7009,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4332 +// line internal/php7/php7.y:4348 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7006,13 +7022,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4346 +// line internal/php7/php7.y:4362 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4350 +// line internal/php7/php7.y:4366 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7025,7 +7041,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4361 +// line internal/php7/php7.y:4377 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7038,7 +7054,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4372 +// line internal/php7/php7.y:4388 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7051,7 +7067,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4383 +// line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7064,7 +7080,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4394 +// line internal/php7/php7.y:4410 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7077,7 +7093,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4408 +// line internal/php7/php7.y:4424 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7089,7 +7105,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4418 +// line internal/php7/php7.y:4434 { yyVAL.node = yyDollar[2].node @@ -7099,13 +7115,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4426 +// line internal/php7/php7.y:4442 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4433 +// line internal/php7/php7.y:4449 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7117,7 +7133,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4443 +// line internal/php7/php7.y:4459 { yyVAL.node = yyDollar[2].node @@ -7127,31 +7143,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4451 +// line internal/php7/php7.y:4467 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4458 +// line internal/php7/php7.y:4474 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4465 +// line internal/php7/php7.y:4481 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4485 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4476 +// line internal/php7/php7.y:4492 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7164,7 +7180,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4487 +// line internal/php7/php7.y:4503 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7174,7 +7190,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4498 +// line internal/php7/php7.y:4514 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7187,7 +7203,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4509 +// line internal/php7/php7.y:4525 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7199,7 +7215,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4519 +// line internal/php7/php7.y:4535 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7215,7 +7231,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4533 +// line internal/php7/php7.y:4549 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7229,7 +7245,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4545 +// line internal/php7/php7.y:4561 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7241,7 +7257,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4555 +// line internal/php7/php7.y:4571 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7260,7 +7276,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4572 +// line internal/php7/php7.y:4588 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7277,13 +7293,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4590 +// line internal/php7/php7.y:4606 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4594 +// line internal/php7/php7.y:4610 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7296,13 +7312,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4605 +// line internal/php7/php7.y:4621 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4609 +// line internal/php7/php7.y:4625 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7315,7 +7331,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4623 +// line internal/php7/php7.y:4639 { name := &ast.Identifier{ Node: ast.Node{ @@ -7334,7 +7350,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4640 +// line internal/php7/php7.y:4656 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7356,7 +7372,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4660 +// line internal/php7/php7.y:4676 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7384,7 +7400,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4686 +// line internal/php7/php7.y:4702 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7399,7 +7415,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4699 +// line internal/php7/php7.y:4715 { name := &ast.Identifier{ Node: ast.Node{ @@ -7421,7 +7437,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4719 +// line internal/php7/php7.y:4735 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7445,7 +7461,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4741 +// line internal/php7/php7.y:4757 { yyVAL.node = yyDollar[2].node @@ -7455,7 +7471,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4752 +// line internal/php7/php7.y:4768 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7467,7 +7483,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4762 +// line internal/php7/php7.y:4778 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7484,7 +7500,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4777 +// line internal/php7/php7.y:4793 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7510,7 +7526,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4801 +// line internal/php7/php7.y:4817 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7529,7 +7545,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4821 +// line internal/php7/php7.y:4837 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7547,7 +7563,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4837 +// line internal/php7/php7.y:4853 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7569,7 +7585,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4857 +// line internal/php7/php7.y:4873 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7581,7 +7597,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4867 +// line internal/php7/php7.y:4883 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7593,7 +7609,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4877 +// line internal/php7/php7.y:4893 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7615,7 +7631,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4897 +// line internal/php7/php7.y:4913 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7627,7 +7643,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4907 +// line internal/php7/php7.y:4923 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7639,13 +7655,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4920 +// line internal/php7/php7.y:4936 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4924 +// line internal/php7/php7.y:4940 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7654,7 +7670,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4934 +// line internal/php7/php7.y:4950 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 0bfff99..602859b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1865,15 +1865,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} @@ -1905,15 +1913,23 @@ parameter: yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) if $3 != nil { - variable = &ast.Variadic{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($3, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + variable = &ast.Variadic{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $4), + }, + VariadicTkn: $3, + Var: variable, + } } if $2 != nil { - variable = &ast.Reference{ast.Node{}, variable} - variable.GetNode().Position = position.NewTokensPosition($2, $4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) + variable = &ast.Reference{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + AmpersandTkn: $2, + Var: variable, + } } $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} diff --git a/pkg/ast/node.go b/pkg/ast/node.go index eaf4930..5242bf6 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -44,7 +44,8 @@ func (n *Nullable) Accept(v NodeVisitor) { // Reference node type Reference struct { Node - Var Vertex + AmpersandTkn *token.Token + Var Vertex } func (n *Reference) Accept(v NodeVisitor) { @@ -54,7 +55,8 @@ func (n *Reference) Accept(v NodeVisitor) { // Variadic node type Variadic struct { Node - Var Vertex + VariadicTkn *token.Token + Var Vertex } func (n *Variadic) Accept(v NodeVisitor) { From 73d819eb6cf81db444595c23417ae45e4635dbf5 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 22:25:37 +0200 Subject: [PATCH 071/140] [refactoring] update ast structure of parameter "Parameter" node --- internal/php5/php5.go | 2726 +++++++++++++++++++++-------------------- internal/php5/php5.y | 42 +- internal/php7/php7.go | 594 ++++----- internal/php7/php7.y | 40 +- pkg/ast/node.go | 1 + 5 files changed, 1731 insertions(+), 1672 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index ad07c76..199faec 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6386 +// line internal/php5/php5.y:6398 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -598,1022 +598,1032 @@ var yyExca = [...]int{ const yyPrivate = 57344 -const yyLast = 8877 +const yyLast = 8973 var yyAct = [...]int{ - 102, 571, 844, 565, 1007, 966, 715, 61, 420, 827, - 123, 131, 919, 200, 340, 594, 567, 607, 452, 816, - 461, 808, 474, 735, 592, 684, 138, 140, 421, 142, - 145, 390, 39, 98, 444, 579, 264, 517, 118, 319, - 158, 315, 331, 330, 447, 7, 6, 544, 485, 130, - 2, 979, 26, 960, 938, 935, 228, 228, 162, 477, - 932, 942, 289, 941, 44, 670, 658, 664, 665, 672, - 673, 674, 675, 678, 679, 822, 738, 940, 658, 1003, - 251, 267, 710, 654, 258, 562, 662, 656, 655, 516, - 153, 658, 664, 665, 661, 654, 663, 657, 659, 660, - 676, 677, 666, 358, 298, 325, 736, 204, 654, 657, - 659, 660, 656, 655, 270, 794, 241, 137, 977, 729, - 954, 933, 657, 659, 660, 543, 311, 666, 475, 316, - 320, 955, 192, 323, 43, 934, 329, 922, 854, 5, - 898, 126, 450, 121, 121, 499, 192, 121, 586, 586, - 121, 658, 664, 665, 899, 633, 339, 141, 678, 679, - 619, 228, 201, 930, 114, 121, 634, 39, 654, 750, - 585, 620, 656, 655, 179, 310, 357, 115, 159, 162, - 432, 586, 657, 659, 660, 676, 677, 666, 179, 182, - 183, 192, 241, 267, 908, 228, 907, 905, 510, 493, - 862, 121, 296, 749, 506, 178, 180, 181, 192, 177, - 176, 229, 511, 856, 230, 792, 560, 104, 507, 178, - 180, 181, 746, 228, 175, 640, 270, 561, 117, 386, - 233, 425, 168, 179, 182, 183, 184, 185, 186, 187, - 189, 191, 494, 359, 595, 271, 126, 632, 121, 631, - 179, 1019, 625, 173, 177, 176, 624, 360, 272, 978, - 393, 172, 228, 174, 178, 180, 181, 188, 190, 175, - 456, 177, 176, 231, 231, 333, 451, 336, 556, 451, - 302, 178, 180, 181, 232, 232, 175, 355, 658, 557, - 120, 120, 350, 228, 120, 352, 423, 120, 265, 597, - 596, 356, 446, 241, 931, 654, 351, 473, 294, 273, - 312, 126, 303, 121, 131, 396, 229, 301, 509, 230, - 133, 305, 513, 300, 313, 160, 521, 604, 595, 126, - 440, 121, 605, 451, 134, 233, 741, 293, 492, 463, - 39, 436, 437, 498, 491, 287, 541, 281, 120, 497, - 484, 472, 612, 7, 6, 658, 254, 271, 611, 521, - 502, 718, 486, 505, 253, 1002, 951, 437, 436, 436, - 272, 437, 654, 916, 886, 883, 656, 655, 231, 871, - 826, 229, 815, 295, 230, 399, 657, 659, 660, 232, - 728, 666, 548, 546, 694, 120, 552, 635, 626, 229, - 233, 572, 230, 572, 577, 572, 580, 430, 228, 428, - 265, 584, 231, 126, 307, 121, 1014, 981, 233, 893, - 593, 273, 439, 232, 139, 588, 39, 297, 448, 825, - 126, 819, 121, 810, 809, 434, 683, 458, 587, 564, - 231, 449, 551, 400, 537, 288, 344, 5, 297, 345, - 295, 232, 539, 278, 717, 540, 616, 275, 274, 250, - 120, 222, 467, 196, 448, 492, 498, 453, 471, 448, - 581, 491, 497, 195, 479, 480, 194, 449, 120, 231, - 144, 495, 449, 229, 122, 1011, 230, 1010, 1000, 228, - 232, 914, 617, 615, 877, 135, 446, 990, 618, 985, - 268, 490, 233, 269, 704, 705, 984, 924, 316, 913, - 231, 309, 320, 308, 504, 881, 812, 521, 806, 233, - 805, 232, 799, 400, 682, 713, 521, 704, 705, 700, - 547, 545, 39, 521, 521, 521, 521, 521, 542, 501, - 398, 348, 156, 531, 91, 7, 6, 353, 636, 646, - 982, 649, 572, 126, 653, 711, 906, 701, 228, 228, - 228, 606, 120, 521, 435, 572, 719, 1020, 727, 39, - 39, 976, 918, 892, 891, 732, 531, 572, 580, 120, - 889, 733, 730, 578, 306, 267, 197, 228, 228, 714, - 179, 448, 448, 706, 875, 708, 740, 224, 225, 257, - 724, 192, 803, 804, 449, 449, 831, 518, 743, 696, - 697, 295, 734, 126, 613, 739, 742, 811, 270, 448, - 731, 737, 448, 126, 448, 231, 125, 681, 490, 228, - 745, 228, 449, 455, 446, 449, 232, 449, 424, 5, - 703, 755, 126, 179, 125, 988, 688, 610, 259, 459, - 128, 651, 129, 438, 126, 521, 521, 521, 521, 521, + 102, 571, 1007, 565, 420, 966, 844, 715, 808, 607, + 123, 131, 919, 200, 827, 735, 567, 684, 452, 594, + 461, 816, 474, 592, 61, 579, 421, 319, 390, 142, + 340, 98, 39, 315, 517, 264, 114, 444, 447, 2, + 130, 289, 329, 138, 140, 5, 331, 145, 485, 7, + 158, 330, 544, 658, 6, 979, 228, 228, 162, 477, + 960, 192, 938, 141, 493, 935, 121, 942, 26, 941, + 654, 932, 44, 822, 738, 710, 562, 516, 450, 358, + 121, 267, 954, 940, 657, 659, 660, 325, 658, 664, + 665, 432, 933, 955, 898, 678, 679, 251, 153, 43, + 922, 1003, 854, 179, 298, 654, 934, 494, 899, 656, + 655, 586, 270, 586, 633, 204, 619, 271, 736, 657, + 659, 660, 676, 677, 666, 634, 311, 620, 794, 316, + 320, 258, 241, 323, 178, 180, 181, 585, 658, 664, + 665, 672, 673, 674, 675, 678, 679, 729, 586, 510, + 543, 560, 302, 475, 121, 654, 339, 201, 662, 656, + 655, 228, 561, 511, 310, 121, 556, 39, 118, 657, + 659, 660, 676, 677, 666, 908, 357, 557, 506, 162, + 359, 333, 115, 336, 159, 1019, 907, 977, 355, 658, + 664, 665, 507, 267, 360, 228, 930, 905, 451, 499, + 51, 121, 356, 192, 350, 312, 654, 595, 241, 1002, + 656, 655, 451, 120, 862, 658, 133, 104, 351, 313, + 657, 659, 660, 228, 270, 666, 154, 120, 386, 271, + 134, 425, 654, 301, 126, 856, 121, 792, 126, 300, + 121, 746, 192, 205, 640, 179, 182, 183, 184, 185, + 186, 187, 189, 191, 632, 631, 227, 227, 625, 624, + 352, 597, 228, 272, 604, 173, 177, 176, 393, 605, + 456, 596, 595, 231, 231, 174, 178, 180, 181, 188, + 190, 175, 473, 612, 179, 182, 183, 750, 718, 611, + 440, 749, 951, 228, 294, 126, 293, 121, 265, 741, + 448, 120, 287, 916, 229, 177, 176, 230, 229, 458, + 281, 230, 303, 254, 131, 178, 180, 181, 509, 241, + 175, 253, 513, 233, 914, 886, 521, 233, 978, 883, + 472, 160, 871, 451, 826, 815, 448, 931, 491, 728, + 39, 448, 295, 497, 694, 423, 434, 463, 120, 502, + 635, 626, 430, 5, 505, 428, 307, 7, 126, 521, + 121, 354, 6, 541, 593, 229, 484, 1014, 230, 981, + 486, 399, 126, 467, 121, 272, 1000, 893, 231, 471, + 877, 717, 439, 120, 233, 479, 480, 120, 436, 437, + 139, 137, 495, 552, 297, 391, 392, 825, 546, 819, + 683, 572, 548, 572, 577, 572, 580, 297, 228, 587, + 265, 564, 231, 551, 437, 436, 436, 658, 437, 810, + 809, 990, 400, 422, 537, 588, 39, 344, 229, 288, + 345, 230, 446, 135, 654, 278, 295, 275, 656, 655, + 231, 192, 229, 274, 120, 230, 449, 233, 657, 659, + 660, 250, 222, 666, 584, 126, 616, 121, 196, 195, + 194, 233, 443, 448, 448, 491, 497, 144, 492, 122, + 1011, 985, 1010, 498, 984, 462, 464, 924, 581, 231, + 704, 705, 449, 179, 913, 881, 613, 449, 812, 228, + 806, 448, 353, 478, 448, 617, 448, 309, 487, 308, + 805, 704, 705, 799, 177, 176, 713, 120, 316, 400, + 231, 700, 320, 547, 178, 180, 181, 521, 545, 175, + 542, 120, 501, 398, 682, 268, 521, 348, 269, 156, + 982, 906, 39, 521, 521, 521, 521, 521, 606, 649, + 1020, 646, 976, 531, 233, 5, 918, 892, 636, 7, + 891, 653, 572, 889, 6, 711, 733, 126, 228, 228, + 228, 578, 306, 521, 197, 572, 435, 719, 727, 39, + 39, 179, 875, 701, 831, 732, 531, 572, 580, 988, + 192, 651, 730, 224, 225, 267, 714, 228, 228, 396, + 803, 804, 740, 811, 295, 492, 498, 724, 706, 731, + 708, 681, 734, 721, 120, 455, 582, 424, 583, 449, + 449, 125, 743, 739, 703, 742, 270, 696, 697, 257, + 737, 271, 179, 615, 688, 231, 446, 126, 618, 228, + 125, 228, 448, 745, 459, 295, 454, 449, 648, 427, + 449, 755, 449, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 790, 759, 521, 463, 321, 124, 757, 454, - 758, 648, 282, 286, 638, 639, 132, 721, 972, 486, - 642, 643, 427, 426, 800, 295, 231, 515, 793, 791, - 126, 521, 573, 260, 261, 574, 512, 232, 228, 848, - 849, 850, 847, 846, 845, 508, 304, 317, 322, 299, - 572, 469, 832, 126, 531, 687, 62, 572, 851, 820, - 817, 865, 595, 531, 457, 295, 829, 263, 814, 271, - 531, 531, 531, 531, 531, 576, 852, 833, 743, 404, - 448, 295, 272, 857, 859, 402, 796, 259, 573, 208, - 295, 574, 438, 449, 744, 231, 231, 231, 468, 295, - 531, 54, 295, 132, 569, 570, 232, 232, 232, 521, - 259, 504, 751, 207, 285, 521, 521, 986, 828, 1008, - 239, 842, 265, 573, 231, 231, 574, 843, 824, 797, - 841, 876, 726, 273, 163, 232, 232, 45, 228, 987, - 228, 878, 559, 521, 884, 882, 572, 890, 885, 879, - 338, 470, 260, 261, 801, 1018, 992, 226, 234, 45, - 821, 958, 956, 901, 572, 904, 231, 926, 231, 897, - 259, 39, 894, 259, 469, 260, 261, 232, 284, 232, - 888, 848, 849, 850, 847, 846, 845, 550, 228, 900, - 519, 521, 531, 531, 531, 531, 531, 531, 531, 531, + 521, 521, 790, 759, 521, 744, 426, 209, 757, 478, + 758, 124, 295, 463, 848, 849, 850, 847, 846, 845, + 321, 791, 304, 751, 259, 299, 231, 486, 793, 438, + 126, 521, 282, 286, 469, 817, 865, 595, 228, 515, + 126, 800, 62, 687, 126, 512, 539, 508, 126, 540, + 572, 322, 832, 457, 531, 263, 576, 572, 851, 404, + 801, 820, 972, 531, 402, 814, 829, 208, 259, 833, + 531, 531, 531, 531, 531, 857, 852, 207, 391, 716, + 716, 986, 743, 824, 446, 126, 828, 272, 859, 260, + 261, 569, 570, 295, 796, 231, 231, 231, 449, 295, + 531, 295, 285, 317, 1008, 295, 239, 422, 422, 521, + 573, 726, 128, 574, 129, 521, 521, 132, 573, 45, + 842, 574, 265, 987, 231, 231, 843, 163, 559, 841, + 54, 338, 573, 260, 261, 574, 879, 797, 228, 1018, + 228, 462, 992, 521, 885, 884, 572, 890, 876, 478, + 882, 478, 45, 855, 468, 487, 958, 878, 132, 956, + 926, 860, 861, 874, 572, 904, 231, 901, 231, 897, + 894, 39, 813, 704, 705, 259, 599, 888, 601, 600, + 848, 849, 850, 847, 846, 845, 226, 234, 228, 900, + 550, 521, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 923, - 909, 531, 1, 519, 446, 1004, 599, 895, 601, 600, - 39, 999, 961, 521, 937, 260, 261, 285, 260, 261, - 936, 902, 855, 813, 704, 705, 880, 910, 531, 126, - 860, 861, 761, 521, 760, 231, 521, 874, 723, 521, - 453, 572, 963, 572, 971, 39, 232, 39, 610, 707, - 704, 705, 652, 650, 647, 39, 602, 39, 39, 259, - 514, 521, 481, 259, 438, 395, 572, 971, 283, 324, - 957, 983, 203, 959, 39, 202, 962, 199, 39, 39, - 521, 136, 572, 830, 748, 994, 754, 572, 996, 259, - 998, 864, 445, 609, 256, 915, 589, 917, 980, 590, - 591, 685, 255, 39, 572, 1012, 531, 925, 840, 927, - 928, 1013, 531, 531, 995, 572, 1016, 993, 965, 964, - 920, 39, 903, 920, 260, 261, 483, 896, 260, 261, - 448, 839, 944, 836, 566, 231, 948, 231, 1006, 949, - 531, 842, 1005, 449, 725, 39, 232, 843, 232, 192, - 841, 39, 341, 946, 260, 261, 698, 538, 929, 290, - 460, 519, 318, 314, 127, 973, 403, 575, 401, 335, - 519, 945, 1009, 343, 394, 389, 939, 519, 519, 519, - 519, 519, 164, 157, 161, 231, 528, 608, 531, 997, - 970, 179, 182, 183, 991, 969, 232, 968, 189, 191, - 967, 848, 849, 850, 847, 846, 845, 519, 838, 837, - 835, 40, 177, 176, 568, 169, 171, 170, 192, 15, - 14, 823, 178, 180, 181, 188, 190, 175, 720, 1015, - 531, 802, 695, 686, 11, 249, 75, 76, 1021, 116, - 689, 690, 691, 692, 693, 266, 64, 834, 89, 598, - 531, 90, 520, 531, 101, 74, 531, 12, 167, 168, - 179, 182, 183, 184, 185, 186, 187, 189, 191, 326, - 100, 99, 79, 810, 809, 119, 526, 3, 531, 193, - 173, 177, 176, 41, 0, 0, 0, 0, 172, 0, - 174, 178, 180, 181, 188, 190, 175, 531, 0, 519, - 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, - 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, - 519, 519, 519, 519, 519, 519, 0, 0, 519, 0, + 1004, 531, 448, 909, 999, 961, 895, 707, 704, 705, + 39, 259, 936, 521, 937, 902, 438, 126, 818, 469, + 260, 261, 761, 1, 760, 259, 920, 910, 531, 920, + 284, 723, 259, 652, 650, 231, 521, 438, 647, 521, + 91, 572, 963, 572, 971, 39, 602, 39, 514, 481, + 395, 324, 203, 202, 199, 39, 136, 39, 39, 946, + 830, 521, 748, 754, 864, 445, 572, 971, 609, 589, + 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, + 521, 259, 572, 591, 685, 994, 283, 572, 996, 285, + 260, 261, 255, 840, 998, 980, 995, 260, 261, 965, + 964, 903, 483, 39, 572, 1012, 531, 896, 839, 1013, + 836, 566, 531, 531, 993, 572, 1016, 518, 716, 1006, + 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, + 679, 1005, 725, 259, 446, 231, 31, 231, 256, 654, + 531, 341, 296, 656, 655, 39, 260, 261, 449, 698, + 538, 39, 929, 657, 659, 660, 676, 677, 666, 290, + 147, 151, 155, 460, 318, 314, 165, 127, 478, 403, + 575, 401, 335, 945, 198, 1009, 343, 394, 389, 206, + 939, 164, 157, 161, 528, 231, 608, 997, 531, 970, + 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, + 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, + 252, 835, 40, 568, 821, 262, 15, 14, 823, 720, + 276, 277, 802, 279, 280, 695, 11, 249, 75, 76, + 531, 116, 266, 64, 291, 89, 671, 670, 658, 664, + 665, 672, 673, 674, 675, 678, 679, 598, 90, 520, + 101, 74, 12, 531, 326, 654, 531, 680, 662, 656, + 655, 305, 100, 99, 79, 119, 661, 526, 663, 657, + 659, 660, 676, 677, 666, 3, 240, 41, 531, 117, + 842, 342, 0, 0, 0, 0, 843, 0, 0, 841, + 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, + 880, 0, 0, 0, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 0, + 387, 0, 155, 0, 0, 232, 232, 0, 0, 0, + 848, 849, 850, 847, 846, 845, 406, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 0, + 273, 0, 0, 0, 0, 0, 519, 0, 0, 915, + 0, 917, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 925, 0, 927, 928, 0, 834, 240, 0, 0, + 433, 433, 0, 0, 0, 0, 0, 441, 0, 519, + 0, 0, 0, 0, 0, 0, 944, 453, 0, 0, + 948, 155, 465, 949, 0, 466, 0, 0, 433, 0, + 0, 0, 0, 0, 433, 291, 0, 0, 0, 0, + 433, 433, 0, 0, 155, 0, 0, 433, 496, 973, + 232, 490, 0, 500, 670, 658, 664, 665, 672, 673, + 674, 675, 678, 679, 504, 0, 0, 0, 0, 0, + 0, 0, 654, 0, 0, 662, 656, 655, 991, 0, + 0, 0, 273, 661, 232, 663, 657, 659, 660, 676, + 677, 666, 0, 669, 667, 668, 0, 0, 0, 0, + 549, 0, 0, 0, 0, 0, 0, 553, 0, 0, + 0, 0, 232, 1015, 0, 0, 0, 0, 0, 0, + 0, 0, 1021, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 555, 671, 670, 658, 664, + 665, 672, 673, 674, 675, 678, 679, 0, 0, 0, + 0, 232, 155, 0, 0, 654, 868, 680, 662, 656, + 655, 0, 0, 0, 0, 0, 661, 519, 663, 657, + 659, 660, 676, 677, 666, 0, 519, 0, 490, 0, + 0, 0, 232, 519, 519, 519, 519, 519, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 610, 614, 658, + 664, 665, 672, 673, 674, 675, 678, 679, 0, 0, + 0, 0, 0, 519, 0, 0, 654, 0, 0, 662, + 656, 655, 627, 629, 0, 0, 0, 661, 0, 663, + 657, 659, 660, 676, 677, 666, 637, 0, 0, 0, + 0, 0, 0, 0, 638, 639, 0, 0, 0, 0, + 642, 643, 0, 686, 0, 0, 0, 0, 0, 0, + 689, 690, 691, 692, 693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, - 667, 668, 0, 0, 0, 519, 0, 0, 0, 0, - 0, 0, 762, 763, 764, 765, 766, 767, 768, 769, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, + 702, 0, 0, 0, 0, 0, 0, 232, 0, 0, + 0, 712, 0, 0, 0, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 0, 0, 519, 0, 0, 0, 0, 0, + 433, 504, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 747, 0, 0, 0, 0, 0, 433, 752, + 0, 519, 0, 0, 0, 0, 0, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 232, 170, + 192, 155, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 789, 0, - 0, 686, 671, 670, 658, 664, 665, 672, 673, 674, - 675, 678, 679, 0, 169, 171, 170, 192, 870, 0, - 0, 654, 0, 680, 662, 656, 655, 0, 0, 0, - 0, 0, 661, 0, 663, 657, 659, 660, 676, 677, - 666, 0, 0, 519, 0, 0, 0, 0, 0, 519, - 519, 0, 0, 0, 0, 0, 0, 167, 168, 179, - 182, 183, 184, 185, 186, 187, 189, 191, 0, 0, - 0, 863, 31, 0, 0, 0, 0, 519, 193, 173, - 177, 176, 0, 0, 0, 0, 0, 172, 0, 174, - 178, 180, 181, 188, 190, 175, 147, 151, 155, 0, - 0, 0, 165, 0, 0, 0, 869, 0, 0, 51, - 198, 0, 872, 873, 0, 206, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 519, 223, 0, 0, 0, - 235, 236, 237, 238, 0, 154, 240, 0, 242, 243, - 244, 245, 246, 247, 248, 0, 252, 0, 0, 0, - 0, 262, 205, 0, 0, 0, 276, 277, 0, 279, - 280, 0, 0, 0, 0, 227, 227, 519, 0, 0, - 291, 0, 0, 671, 670, 658, 664, 665, 672, 673, - 674, 675, 678, 679, 0, 0, 0, 519, 911, 0, - 519, 0, 654, 519, 680, 662, 656, 655, 0, 0, - 0, 0, 0, 661, 0, 663, 657, 659, 660, 676, - 677, 666, 240, 0, 0, 519, 0, 342, 0, 0, + 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, + 167, 168, 179, 182, 183, 184, 185, 186, 187, 189, + 191, 0, 0, 0, 0, 0, 0, 0, 0, 519, + 0, 193, 173, 177, 176, 519, 519, 232, 232, 232, + 172, 807, 174, 178, 180, 181, 188, 190, 175, 0, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 0, 519, 273, 0, 232, 232, 0, 0, + 0, 169, 171, 170, 192, 853, 0, 0, 433, 0, + 453, 621, 0, 0, 0, 0, 433, 433, 610, 0, + 0, 0, 0, 866, 209, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 869, 0, 232, 0, + 232, 519, 872, 873, 167, 168, 179, 182, 183, 184, + 185, 186, 187, 189, 191, 0, 0, 0, 0, 810, + 809, 0, 0, 0, 0, 193, 173, 177, 176, 0, + 0, 0, 0, 342, 172, 0, 174, 178, 180, 181, + 188, 190, 175, 519, 0, 0, 0, 0, 0, 0, + 658, 664, 665, 672, 673, 674, 675, 678, 679, 0, + 0, 0, 0, 0, 0, 0, 519, 654, 0, 519, + 662, 656, 655, 0, 0, 0, 0, 0, 911, 0, + 663, 657, 659, 660, 676, 677, 666, 232, 0, 0, + 0, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 943, 0, 0, 0, 519, 0, 0, 0, 0, 0, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 0, 387, 0, 155, 0, - 354, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 406, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 391, 392, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 912, 0, 0, 0, 0, - 0, 0, 0, 240, 0, 0, 433, 433, 0, 0, - 0, 0, 422, 441, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 669, 667, 668, 155, 465, 0, - 0, 466, 0, 0, 433, 0, 0, 0, 0, 0, - 433, 291, 0, 0, 0, 0, 433, 433, 0, 0, - 155, 443, 0, 433, 496, 0, 0, 0, 0, 500, - 0, 0, 0, 0, 462, 464, 0, 671, 670, 658, - 664, 665, 672, 673, 674, 675, 678, 679, 0, 0, - 0, 0, 478, 0, 0, 0, 654, 487, 680, 662, - 656, 655, 0, 0, 0, 0, 0, 661, 0, 663, - 657, 659, 660, 676, 677, 666, 549, 0, 0, 0, - 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 83, - 84, 72, 18, 105, 106, 13, 88, 121, 0, 30, - 0, 555, 0, 95, 29, 20, 19, 0, 21, 0, - 33, 0, 34, 0, 0, 22, 0, 0, 155, 23, + 519, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 943, 83, 84, 72, 18, 105, 106, 13, 88, 121, + 0, 30, 0, 0, 0, 95, 29, 20, 19, 0, + 21, 0, 33, 0, 34, 0, 0, 22, 0, 0, + 0, 23, 24, 38, 45, 558, 16, 25, 36, 957, + 0, 37, 10, 0, 27, 0, 32, 81, 82, 8, + 46, 48, 50, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 232, 0, 232, + 0, 0, 93, 0, 0, 0, 0, 9, 113, 109, + 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 42, 28, 47, 49, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 0, 0, 0, 0, 232, 0, 0, + 0, 0, 0, 0, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 0, 0, 0, 92, + 77, 17, 645, 35, 0, 63, 0, 97, 0, 0, + 0, 58, 57, 59, 60, 73, 120, 4, 0, 83, + 84, 72, 18, 105, 106, 13, 88, 121, 209, 30, + 0, 0, 0, 95, 29, 20, 19, 0, 21, 0, + 33, 0, 34, 0, 0, 22, 0, 0, 0, 23, 24, 38, 45, 0, 16, 25, 36, 0, 0, 37, 10, 0, 27, 0, 32, 81, 82, 8, 46, 48, 50, 0, 0, 0, 0, 52, 96, 0, 94, 110, - 111, 112, 107, 108, 0, 582, 0, 583, 0, 0, - 93, 0, 0, 0, 614, 9, 113, 109, 103, 0, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 9, 113, 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, 0, - 0, 0, 78, 42, 28, 47, 49, 0, 627, 629, + 0, 0, 78, 42, 28, 47, 49, 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, - 0, 0, 637, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 658, 664, 665, 672, 673, - 674, 675, 678, 679, 0, 0, 0, 92, 77, 17, - 645, 35, 654, 63, 0, 97, 656, 655, 478, 58, - 57, 59, 60, 73, 120, 0, 657, 659, 660, 676, - 677, 666, 0, 192, 0, 342, 702, 658, 664, 665, - 672, 673, 674, 675, 678, 679, 0, 712, 0, 0, - 0, 0, 0, 0, 654, 0, 0, 662, 656, 655, - 0, 0, 0, 0, 0, 661, 0, 663, 657, 659, - 660, 676, 677, 666, 0, 179, 182, 183, 184, 185, - 186, 187, 189, 191, 0, 0, 433, 391, 716, 716, - 669, 667, 668, 0, 0, 173, 177, 176, 747, 0, - 0, 0, 0, 0, 433, 752, 178, 180, 181, 188, - 190, 175, 0, 155, 0, 0, 422, 422, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 169, - 171, 170, 192, 671, 670, 658, 664, 665, 672, 673, - 674, 675, 678, 679, 0, 0, 0, 0, 0, 0, - 462, 0, 654, 868, 680, 662, 656, 655, 478, 0, - 478, 0, 0, 661, 487, 663, 657, 659, 660, 676, - 677, 666, 167, 168, 179, 182, 183, 184, 185, 186, - 187, 189, 191, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 858, 193, 173, 177, 176, 807, 0, 0, - 0, 0, 172, 0, 174, 178, 180, 181, 188, 190, - 175, 0, 0, 0, 0, 0, 0, 0, 0, 658, - 664, 665, 672, 673, 674, 675, 678, 679, 0, 0, - 0, 853, 0, 0, 433, 0, 654, 0, 0, 662, - 656, 655, 433, 433, 0, 0, 0, 818, 0, 866, - 657, 659, 660, 676, 677, 666, 0, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 0, - 0, 0, 4, 0, 83, 84, 72, 18, 105, 106, - 13, 88, 121, 0, 30, 349, 0, 0, 95, 29, - 20, 19, 0, 21, 0, 33, 0, 34, 0, 342, - 22, 209, 0, 0, 23, 24, 38, 45, 0, 16, - 25, 36, 0, 0, 37, 10, 0, 27, 0, 32, - 81, 82, 8, 46, 48, 50, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 716, 0, 422, - 9, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 42, 28, - 47, 49, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 478, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 17, + 503, 35, 0, 63, 0, 97, 0, 0, 0, 58, + 57, 59, 60, 73, 120, 4, 0, 83, 84, 72, + 18, 105, 106, 13, 88, 121, 0, 30, 0, 0, + 0, 95, 29, 20, 19, 0, 21, 0, 33, 0, + 34, 0, 0, 22, 0, 0, 0, 23, 24, 38, + 45, 0, 16, 25, 36, 0, 0, 37, 10, 0, + 27, 0, 32, 81, 82, 8, 46, 48, 50, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 9, 113, 109, 103, 0, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 42, 28, 47, 49, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 92, 77, 17, 503, 35, 0, 63, 0, - 97, 0, 0, 0, 58, 57, 59, 60, 73, 120, - 4, 621, 83, 84, 72, 18, 105, 106, 13, 88, - 121, 0, 30, 0, 209, 0, 95, 29, 20, 19, - 0, 21, 0, 33, 0, 34, 558, 0, 22, 0, - 0, 0, 23, 24, 38, 45, 0, 16, 25, 36, - 0, 0, 37, 10, 0, 27, 0, 32, 81, 82, - 8, 46, 48, 50, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 9, 113, - 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 42, 28, 47, 49, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 0, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 0, - 92, 77, 17, 0, 35, 0, 63, 0, 97, 0, - 0, 0, 58, 57, 59, 60, 73, 120, 328, 209, - 83, 84, 72, 18, 105, 106, 13, 88, 121, 0, - 30, 209, 0, 0, 95, 29, 20, 19, 0, 21, - 0, 33, 0, 34, 0, 0, 22, 0, 0, 0, - 23, 24, 38, 45, 0, 0, 25, 36, 0, 0, - 37, 0, 0, 27, 0, 32, 81, 82, 332, 46, - 48, 50, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 42, 28, 47, 49, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 17, 1022, 35, 0, 63, 0, 97, 0, 0, 0, - 58, 57, 59, 60, 73, 120, 328, 0, 83, 84, - 72, 18, 105, 106, 13, 88, 121, 0, 30, 0, - 0, 0, 95, 29, 20, 19, 0, 21, 0, 33, - 0, 34, 0, 0, 22, 0, 0, 0, 23, 24, - 38, 45, 0, 0, 25, 36, 0, 0, 37, 0, - 0, 27, 0, 32, 81, 82, 332, 46, 48, 50, - 0, 0, 0, 0, 52, 96, 0, 94, 110, 111, - 112, 107, 108, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 143, 113, 109, 103, 0, 85, - 86, 87, 0, 0, 0, 0, 80, 53, 0, 0, - 0, 78, 42, 28, 47, 49, 0, 0, 0, 55, - 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, + 220, 221, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 77, 17, 349, 35, + 0, 63, 0, 97, 0, 0, 0, 58, 57, 59, + 60, 73, 120, 328, 209, 83, 84, 72, 18, 105, + 106, 13, 88, 121, 0, 30, 0, 0, 0, 95, + 29, 20, 19, 0, 21, 0, 33, 0, 34, 0, + 0, 22, 0, 0, 0, 23, 24, 38, 45, 0, + 0, 25, 36, 0, 0, 37, 0, 0, 27, 0, + 32, 81, 82, 332, 46, 48, 50, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 0, 0, 0, 78, 42, + 28, 47, 49, 0, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 77, 17, 1017, - 35, 0, 63, 0, 97, 0, 0, 0, 58, 57, - 59, 60, 73, 120, 328, 0, 83, 84, 72, 18, - 105, 106, 13, 88, 121, 0, 30, 0, 0, 0, - 95, 29, 20, 19, 0, 21, 0, 33, 0, 34, - 0, 0, 22, 0, 0, 0, 23, 24, 38, 45, - 0, 0, 25, 36, 0, 0, 37, 0, 0, 27, - 0, 32, 81, 82, 332, 46, 48, 50, 0, 0, - 0, 0, 52, 96, 0, 94, 110, 111, 112, 107, - 108, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 143, 113, 109, 103, 0, 85, 86, 87, - 0, 0, 0, 0, 80, 53, 0, 0, 0, 78, - 42, 28, 47, 49, 0, 0, 0, 55, 56, 0, - 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, + 0, 0, 0, 92, 77, 17, 1022, 35, 0, 63, + 0, 97, 0, 0, 0, 58, 57, 59, 60, 73, + 120, 328, 0, 83, 84, 72, 18, 105, 106, 13, + 88, 121, 0, 30, 0, 0, 0, 95, 29, 20, + 19, 0, 21, 0, 33, 0, 34, 0, 0, 22, + 0, 0, 0, 23, 24, 38, 45, 0, 0, 25, + 36, 0, 0, 37, 0, 0, 27, 0, 32, 81, + 82, 332, 46, 48, 50, 0, 0, 0, 0, 52, + 96, 0, 94, 110, 111, 112, 107, 108, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 143, + 113, 109, 103, 0, 85, 86, 87, 0, 0, 0, + 0, 80, 53, 0, 0, 0, 78, 42, 28, 47, + 49, 0, 0, 0, 55, 56, 0, 65, 66, 67, + 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 77, 17, 1001, 35, 0, - 63, 0, 97, 0, 0, 0, 58, 57, 59, 60, - 73, 120, 328, 0, 83, 84, 72, 18, 105, 106, - 13, 88, 121, 0, 30, 0, 0, 0, 95, 29, - 20, 19, 0, 21, 989, 33, 0, 34, 0, 0, - 22, 0, 0, 0, 23, 24, 38, 45, 0, 0, - 25, 36, 0, 0, 37, 0, 0, 27, 0, 32, - 81, 82, 332, 46, 48, 50, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 143, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 42, 28, - 47, 49, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, + 0, 92, 77, 17, 1017, 35, 0, 63, 0, 97, + 0, 0, 0, 58, 57, 59, 60, 73, 120, 328, + 0, 83, 84, 72, 18, 105, 106, 13, 88, 121, + 0, 30, 0, 0, 0, 95, 29, 20, 19, 0, + 21, 0, 33, 0, 34, 0, 0, 22, 0, 0, + 0, 23, 24, 38, 45, 0, 0, 25, 36, 0, + 0, 37, 0, 0, 27, 0, 32, 81, 82, 332, + 46, 48, 50, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 143, 113, 109, + 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 42, 28, 47, 49, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 77, 17, 1001, 35, 0, 63, 0, 97, 0, 0, + 0, 58, 57, 59, 60, 73, 120, 328, 0, 83, + 84, 72, 18, 105, 106, 13, 88, 121, 0, 30, + 0, 0, 0, 95, 29, 20, 19, 0, 21, 989, + 33, 0, 34, 0, 0, 22, 0, 0, 0, 23, + 24, 38, 45, 0, 0, 25, 36, 0, 0, 37, + 0, 0, 27, 0, 32, 81, 82, 332, 46, 48, + 50, 0, 0, 0, 0, 52, 96, 0, 94, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 143, 113, 109, 103, 0, + 85, 86, 87, 0, 0, 0, 0, 80, 53, 0, + 0, 0, 78, 42, 28, 47, 49, 0, 0, 0, + 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 77, 17, 0, 35, 0, 63, 0, - 97, 0, 0, 0, 58, 57, 59, 60, 73, 120, - 328, 0, 83, 84, 72, 18, 105, 106, 13, 88, - 121, 0, 30, 0, 0, 0, 95, 29, 20, 19, - 0, 21, 0, 33, 975, 34, 0, 0, 22, 0, - 0, 0, 23, 24, 38, 45, 0, 0, 25, 36, - 0, 0, 37, 0, 0, 27, 0, 32, 81, 82, - 332, 46, 48, 50, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 143, 113, - 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 42, 28, 47, 49, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 17, + 0, 35, 0, 63, 0, 97, 0, 0, 0, 58, + 57, 59, 60, 73, 120, 328, 0, 83, 84, 72, + 18, 105, 106, 13, 88, 121, 0, 30, 0, 0, + 0, 95, 29, 20, 19, 0, 21, 0, 33, 975, + 34, 0, 0, 22, 0, 0, 0, 23, 24, 38, + 45, 0, 0, 25, 36, 0, 0, 37, 0, 0, + 27, 0, 32, 81, 82, 332, 46, 48, 50, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 143, 113, 109, 103, 0, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 42, 28, 47, 49, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 77, 17, 0, 35, 0, 63, 0, 97, 0, - 0, 0, 58, 57, 59, 60, 73, 120, 328, 0, - 83, 84, 72, 18, 105, 106, 13, 88, 121, 0, - 30, 0, 0, 0, 95, 29, 20, 19, 0, 21, - 0, 33, 0, 34, 0, 0, 22, 0, 0, 0, - 23, 24, 38, 45, 0, 0, 25, 36, 0, 0, - 37, 0, 0, 27, 0, 32, 81, 82, 332, 46, - 48, 50, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 42, 28, 47, 49, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 17, 974, 35, 0, 63, 0, 97, 0, 0, 0, - 58, 57, 59, 60, 73, 120, 328, 0, 83, 84, - 72, 18, 105, 106, 13, 88, 121, 0, 30, 0, - 0, 0, 95, 29, 20, 19, 0, 21, 0, 33, - 0, 34, 0, 0, 22, 0, 0, 0, 23, 24, - 38, 45, 0, 0, 25, 36, 0, 0, 37, 0, - 0, 27, 0, 32, 81, 82, 332, 46, 48, 50, - 0, 0, 0, 0, 52, 96, 0, 94, 110, 111, - 112, 107, 108, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 143, 113, 109, 103, 0, 85, - 86, 87, 0, 0, 0, 0, 80, 53, 0, 0, - 0, 78, 42, 28, 47, 49, 0, 0, 0, 55, - 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, + 0, 0, 0, 0, 0, 92, 77, 17, 0, 35, + 0, 63, 0, 97, 0, 0, 0, 58, 57, 59, + 60, 73, 120, 328, 0, 83, 84, 72, 18, 105, + 106, 13, 88, 121, 0, 30, 0, 0, 0, 95, + 29, 20, 19, 0, 21, 0, 33, 0, 34, 0, + 0, 22, 0, 0, 0, 23, 24, 38, 45, 0, + 0, 25, 36, 0, 0, 37, 0, 0, 27, 0, + 32, 81, 82, 332, 46, 48, 50, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 0, 0, 0, 78, 42, + 28, 47, 49, 0, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 77, 17, 953, - 35, 0, 63, 0, 97, 0, 0, 0, 58, 57, - 59, 60, 73, 120, 328, 0, 83, 84, 72, 18, - 105, 106, 13, 88, 121, 0, 30, 0, 0, 0, - 95, 29, 20, 19, 0, 21, 0, 33, 0, 34, - 0, 0, 22, 0, 0, 0, 23, 24, 38, 45, - 0, 0, 25, 36, 0, 0, 37, 0, 0, 27, - 0, 32, 81, 82, 332, 46, 48, 50, 0, 0, - 0, 0, 52, 96, 0, 94, 110, 111, 112, 107, - 108, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 143, 113, 109, 103, 0, 85, 86, 87, - 0, 0, 0, 0, 80, 53, 0, 0, 0, 78, - 42, 28, 47, 49, 0, 0, 0, 55, 56, 0, - 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, + 0, 0, 0, 92, 77, 17, 974, 35, 0, 63, + 0, 97, 0, 0, 0, 58, 57, 59, 60, 73, + 120, 328, 0, 83, 84, 72, 18, 105, 106, 13, + 88, 121, 0, 30, 0, 0, 0, 95, 29, 20, + 19, 0, 21, 0, 33, 0, 34, 0, 0, 22, + 0, 0, 0, 23, 24, 38, 45, 0, 0, 25, + 36, 0, 0, 37, 0, 0, 27, 0, 32, 81, + 82, 332, 46, 48, 50, 0, 0, 0, 0, 52, + 96, 0, 94, 110, 111, 112, 107, 108, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 143, + 113, 109, 103, 0, 85, 86, 87, 0, 0, 0, + 0, 80, 53, 0, 0, 0, 78, 42, 28, 47, + 49, 0, 0, 0, 55, 56, 0, 65, 66, 67, + 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 77, 17, 952, 35, 0, - 63, 0, 97, 0, 0, 0, 58, 57, 59, 60, - 73, 120, 328, 0, 83, 84, 72, 18, 105, 106, - 13, 88, 121, 0, 30, 0, 0, 0, 95, 29, - 20, 19, 0, 21, 0, 33, 0, 34, 0, 0, - 22, 0, 0, 0, 23, 24, 38, 45, 0, 0, - 25, 36, 0, 0, 37, 0, 0, 27, 0, 32, - 81, 82, 332, 46, 48, 50, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 143, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 42, 28, - 47, 49, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, + 0, 92, 77, 17, 953, 35, 0, 63, 0, 97, + 0, 0, 0, 58, 57, 59, 60, 73, 120, 328, + 0, 83, 84, 72, 18, 105, 106, 13, 88, 121, + 0, 30, 0, 0, 0, 95, 29, 20, 19, 0, + 21, 0, 33, 0, 34, 0, 0, 22, 0, 0, + 0, 23, 24, 38, 45, 0, 0, 25, 36, 0, + 0, 37, 0, 0, 27, 0, 32, 81, 82, 332, + 46, 48, 50, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 143, 113, 109, + 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 42, 28, 47, 49, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 77, 17, 952, 35, 0, 63, 0, 97, 0, 0, + 0, 58, 57, 59, 60, 73, 120, 328, 0, 83, + 84, 72, 18, 105, 106, 13, 88, 121, 0, 30, + 0, 0, 0, 95, 29, 20, 19, 0, 21, 0, + 33, 0, 34, 0, 0, 22, 0, 0, 0, 23, + 24, 38, 45, 0, 0, 25, 36, 0, 0, 37, + 0, 0, 27, 0, 32, 81, 82, 332, 46, 48, + 50, 0, 0, 0, 0, 52, 96, 0, 94, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 143, 113, 109, 103, 0, + 85, 86, 87, 0, 0, 0, 0, 80, 53, 0, + 0, 0, 78, 42, 28, 47, 49, 0, 0, 0, + 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 77, 17, 950, 35, 0, 63, 0, - 97, 0, 0, 0, 58, 57, 59, 60, 73, 120, - 328, 0, 83, 84, 72, 18, 105, 106, 13, 88, - 121, 0, 30, 0, 0, 0, 95, 29, 20, 19, - 0, 21, 0, 33, 0, 34, 887, 0, 22, 0, - 0, 0, 23, 24, 38, 45, 0, 0, 25, 36, - 0, 0, 37, 0, 0, 27, 0, 32, 81, 82, - 332, 46, 48, 50, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 143, 113, - 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 42, 28, 47, 49, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 17, + 950, 35, 0, 63, 0, 97, 0, 0, 0, 58, + 57, 59, 60, 73, 120, 328, 0, 83, 84, 72, + 18, 105, 106, 13, 88, 121, 0, 30, 0, 0, + 0, 95, 29, 20, 19, 0, 21, 0, 33, 0, + 34, 887, 0, 22, 0, 0, 0, 23, 24, 38, + 45, 0, 0, 25, 36, 0, 0, 37, 0, 0, + 27, 0, 32, 81, 82, 332, 46, 48, 50, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 143, 113, 109, 103, 0, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 42, 28, 47, 49, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 77, 17, 0, 35, 0, 63, 0, 97, 0, - 0, 0, 58, 57, 59, 60, 73, 120, 328, 0, - 83, 84, 72, 18, 105, 106, 13, 88, 121, 0, - 30, 0, 0, 0, 95, 29, 20, 19, 699, 21, - 0, 33, 0, 34, 0, 0, 22, 0, 0, 0, - 23, 24, 38, 45, 0, 0, 25, 36, 0, 0, - 37, 0, 0, 27, 0, 32, 81, 82, 332, 46, - 48, 50, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 42, 28, 47, 49, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 17, 0, 35, 0, 63, 0, 97, 0, 0, 0, - 58, 57, 59, 60, 73, 120, 328, 0, 83, 84, - 72, 18, 105, 106, 13, 88, 121, 0, 30, 0, - 0, 0, 95, 29, 20, 19, 0, 21, 0, 33, - 0, 34, 0, 0, 22, 0, 0, 0, 23, 24, - 38, 45, 0, 0, 25, 36, 0, 0, 37, 0, - 0, 27, 0, 32, 81, 82, 332, 46, 48, 50, - 0, 0, 0, 0, 52, 96, 0, 94, 110, 111, - 112, 107, 108, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 143, 113, 109, 103, 0, 85, - 86, 87, 0, 0, 0, 0, 80, 53, 0, 0, - 0, 78, 42, 28, 47, 49, 0, 0, 0, 55, - 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, + 0, 0, 0, 0, 0, 92, 77, 17, 0, 35, + 0, 63, 0, 97, 0, 0, 0, 58, 57, 59, + 60, 73, 120, 328, 0, 83, 84, 72, 18, 105, + 106, 13, 88, 121, 0, 30, 0, 0, 0, 95, + 29, 20, 19, 699, 21, 0, 33, 0, 34, 0, + 0, 22, 0, 0, 0, 23, 24, 38, 45, 0, + 0, 25, 36, 0, 0, 37, 0, 0, 27, 0, + 32, 81, 82, 332, 46, 48, 50, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 0, 0, 0, 78, 42, + 28, 47, 49, 0, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 77, 17, 563, - 35, 0, 63, 0, 97, 0, 0, 0, 58, 57, - 59, 60, 73, 120, 328, 0, 83, 84, 72, 18, - 105, 106, 13, 88, 121, 0, 30, 0, 0, 0, - 95, 29, 20, 19, 0, 21, 0, 33, 0, 34, - 0, 0, 22, 0, 0, 0, 23, 24, 38, 45, - 0, 0, 25, 36, 0, 0, 37, 0, 0, 27, - 0, 32, 81, 82, 332, 46, 48, 50, 0, 0, - 0, 0, 52, 96, 0, 94, 110, 111, 112, 107, - 108, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 143, 113, 109, 103, 0, 85, 86, 87, - 0, 0, 0, 0, 80, 53, 0, 0, 0, 78, - 42, 28, 47, 49, 0, 0, 0, 55, 56, 0, - 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, + 0, 0, 0, 92, 77, 17, 0, 35, 0, 63, + 0, 97, 0, 0, 0, 58, 57, 59, 60, 73, + 120, 328, 0, 83, 84, 72, 18, 105, 106, 13, + 88, 121, 0, 30, 0, 0, 0, 95, 29, 20, + 19, 0, 21, 0, 33, 0, 34, 0, 0, 22, + 0, 0, 0, 23, 24, 38, 45, 0, 0, 25, + 36, 0, 0, 37, 0, 0, 27, 0, 32, 81, + 82, 332, 46, 48, 50, 0, 0, 0, 0, 52, + 96, 0, 94, 110, 111, 112, 107, 108, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 143, + 113, 109, 103, 0, 85, 86, 87, 0, 0, 0, + 0, 80, 53, 0, 0, 0, 78, 42, 28, 47, + 49, 0, 0, 0, 55, 56, 0, 65, 66, 67, + 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 77, 17, 327, 35, 0, - 63, 0, 97, 0, 0, 0, 58, 57, 59, 60, - 73, 120, 328, 0, 83, 84, 72, 18, 105, 106, - 13, 88, 121, 0, 30, 0, 0, 0, 95, 29, - 20, 19, 0, 21, 0, 33, 0, 34, 0, 0, - 22, 0, 0, 0, 23, 24, 38, 45, 0, 0, - 25, 36, 0, 0, 37, 0, 0, 27, 0, 32, - 81, 82, 332, 46, 48, 50, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 143, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 42, 28, - 47, 49, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, + 0, 92, 77, 17, 563, 35, 0, 63, 0, 97, + 0, 0, 0, 58, 57, 59, 60, 73, 120, 328, + 0, 83, 84, 72, 18, 105, 106, 13, 88, 121, + 0, 30, 0, 0, 0, 95, 29, 20, 19, 0, + 21, 0, 33, 0, 34, 0, 0, 22, 0, 0, + 0, 23, 24, 38, 45, 0, 0, 25, 36, 0, + 0, 37, 0, 0, 27, 0, 32, 81, 82, 332, + 46, 48, 50, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 143, 113, 109, + 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 42, 28, 47, 49, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 77, 17, 327, 35, 0, 63, 0, 97, 0, 0, + 0, 58, 57, 59, 60, 73, 120, 328, 0, 83, + 84, 72, 18, 105, 106, 13, 88, 121, 0, 30, + 0, 0, 0, 95, 29, 20, 19, 0, 21, 0, + 33, 0, 34, 0, 0, 22, 0, 0, 0, 23, + 24, 38, 45, 0, 0, 25, 36, 0, 0, 37, + 0, 0, 27, 0, 32, 81, 82, 332, 46, 48, + 50, 0, 0, 0, 0, 52, 96, 0, 94, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 143, 113, 109, 103, 0, + 85, 86, 87, 0, 0, 0, 0, 80, 53, 0, + 0, 0, 78, 42, 28, 47, 49, 0, 0, 0, + 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 77, 17, 0, 35, 0, 63, 0, - 97, 0, 0, 0, 58, 57, 59, 60, 73, 120, - 83, 84, 72, 18, 105, 106, 13, 88, 121, 0, - 30, 0, 0, 0, 95, 29, 20, 19, 0, 21, - 0, 33, 0, 34, 0, 0, 22, 0, 0, 0, - 23, 24, 38, 45, 0, 0, 25, 36, 0, 0, - 37, 0, 0, 27, 0, 32, 81, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 42, 28, 0, 0, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 17, + 0, 35, 0, 63, 0, 97, 0, 0, 0, 58, + 57, 59, 60, 73, 120, 83, 84, 72, 18, 105, + 106, 13, 88, 121, 0, 30, 0, 0, 0, 95, + 29, 20, 19, 0, 21, 0, 33, 0, 34, 0, + 0, 22, 0, 0, 0, 23, 24, 38, 45, 0, + 0, 25, 36, 0, 0, 37, 0, 0, 27, 0, + 32, 81, 82, 192, 0, 0, 0, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 179, 182, 183, 78, 42, + 28, 0, 189, 191, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 177, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 178, 180, 181, 188, + 190, 175, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 77, 17, 0, 35, 947, 63, + 0, 97, 0, 0, 0, 58, 57, 59, 60, 73, + 120, 83, 84, 72, 18, 105, 106, 13, 88, 121, + 0, 30, 0, 0, 0, 95, 29, 20, 19, 0, + 21, 0, 33, 0, 34, 0, 0, 22, 0, 0, + 0, 23, 24, 38, 45, 0, 0, 25, 36, 0, + 0, 37, 0, 0, 27, 0, 32, 81, 82, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 143, 113, 109, + 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 42, 28, 0, 0, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 17, 0, 35, 947, 63, 0, 97, 0, 0, 0, - 58, 57, 59, 60, 73, 120, 83, 84, 72, 18, - 105, 106, 13, 88, 121, 0, 30, 0, 0, 0, - 95, 29, 20, 19, 0, 21, 0, 33, 0, 34, - 0, 0, 22, 0, 0, 0, 23, 24, 38, 45, - 0, 0, 25, 36, 0, 0, 37, 0, 0, 27, - 0, 32, 81, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 96, 0, 94, 110, 111, 112, 107, - 108, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 143, 113, 109, 103, 0, 85, 86, 87, - 0, 0, 0, 0, 80, 53, 0, 0, 0, 78, - 42, 28, 0, 0, 0, 0, 0, 55, 56, 0, - 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 77, 17, 0, 35, 921, 63, 0, 97, 0, 0, + 0, 58, 57, 59, 60, 73, 120, 83, 84, 72, + 18, 105, 106, 13, 88, 121, 0, 30, 0, 0, + 0, 95, 29, 20, 19, 0, 21, 0, 33, 0, + 34, 0, 0, 22, 0, 0, 0, 23, 24, 38, + 45, 0, 0, 25, 36, 0, 0, 37, 0, 0, + 27, 0, 32, 81, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 143, 113, 109, 103, 0, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 42, 28, 0, 0, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 77, 17, 0, 35, 921, - 63, 0, 97, 0, 0, 0, 58, 57, 59, 60, - 73, 120, 83, 84, 72, 18, 105, 106, 13, 88, - 121, 0, 30, 0, 0, 0, 95, 29, 20, 19, - 0, 21, 0, 33, 0, 34, 0, 0, 22, 0, - 0, 0, 23, 24, 38, 45, 0, 0, 25, 36, - 0, 0, 37, 0, 0, 27, 0, 32, 81, 82, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 143, 113, - 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 42, 28, 0, 0, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 77, 17, 0, 35, + 722, 63, 0, 97, 0, 0, 0, 58, 57, 59, + 60, 73, 120, 83, 84, 72, 18, 105, 106, 13, + 88, 121, 0, 30, 0, 0, 0, 95, 29, 20, + 19, 0, 21, 0, 33, 0, 34, 0, 0, 22, + 0, 0, 0, 23, 24, 38, 45, 0, 0, 25, + 36, 0, 0, 37, 0, 0, 27, 0, 32, 81, + 82, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 96, 0, 94, 110, 111, 112, 107, 108, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 143, + 113, 109, 103, 0, 85, 86, 87, 0, 0, 0, + 0, 80, 53, 0, 0, 0, 78, 42, 28, 0, + 0, 0, 0, 0, 55, 56, 0, 65, 66, 67, + 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 77, 17, 0, 35, 722, 63, 0, 97, 0, - 0, 0, 58, 57, 59, 60, 73, 120, 83, 84, - 72, 18, 105, 106, 13, 88, 121, 0, 30, 0, - 0, 0, 95, 29, 20, 19, 0, 21, 0, 33, - 0, 34, 0, 0, 22, 0, 0, 0, 23, 24, - 38, 45, 0, 0, 25, 36, 0, 0, 37, 0, - 0, 27, 0, 32, 81, 82, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 96, 0, 94, 110, 111, - 112, 107, 108, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 143, 113, 109, 103, 0, 85, - 86, 87, 0, 0, 0, 0, 80, 53, 0, 0, - 0, 78, 42, 28, 0, 0, 0, 0, 0, 55, - 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, + 0, 92, 77, 17, 0, 35, 337, 63, 0, 97, + 0, 0, 0, 58, 57, 59, 60, 73, 120, 83, + 84, 72, 18, 105, 106, 13, 88, 121, 0, 30, + 0, 0, 0, 95, 29, 20, 19, 0, 21, 0, + 33, 0, 34, 0, 0, 22, 0, 0, 0, 23, + 24, 38, 45, 0, 0, 25, 36, 0, 0, 37, + 0, 0, 27, 0, 32, 81, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 96, 0, 94, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 143, 113, 109, 103, 0, + 85, 86, 87, 0, 0, 0, 0, 80, 53, 0, + 0, 0, 78, 42, 28, 0, 0, 0, 0, 0, + 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 77, 17, 0, - 35, 337, 63, 0, 97, 0, 0, 0, 58, 57, - 59, 60, 73, 120, 83, 84, 72, 18, 105, 106, - 13, 88, 121, 0, 30, 0, 0, 0, 95, 29, - 20, 19, 0, 21, 0, 33, 0, 34, 0, 0, - 22, 0, 0, 0, 23, 24, 38, 45, 0, 0, - 25, 36, 0, 0, 37, 0, 0, 27, 0, 32, - 81, 82, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 143, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 42, 28, - 0, 0, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 17, + 0, 35, 334, 63, 0, 97, 0, 0, 0, 58, + 57, 59, 60, 73, 120, 83, 84, 72, 18, 105, + 106, 13, 88, 121, 0, 30, 0, 0, 0, 95, + 29, 20, 19, 0, 21, 0, 33, 0, 34, 0, + 0, 22, 0, 0, 0, 23, 24, 38, 45, 0, + 0, 25, 36, 0, 0, 37, 0, 0, 27, 0, + 32, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 0, 0, 0, 78, 42, + 28, 0, 0, 0, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 0, 83, 84, 72, + 0, 105, 106, 126, 88, 121, 0, 0, 0, 0, + 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 77, 17, 0, 35, 0, 63, + 45, 97, 0, 0, 0, 58, 57, 59, 60, 73, + 120, 0, 0, 81, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 143, 113, 109, 103, 489, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 42, 149, 0, 0, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 0, + 0, 83, 84, 72, 0, 105, 106, 126, 88, 121, + 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 77, 0, 0, 0, + 0, 63, 482, 97, 45, 0, 488, 58, 57, 59, + 60, 73, 120, 0, 0, 0, 0, 81, 82, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 143, 113, 109, + 103, 489, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 148, 149, 0, 0, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 83, 84, 72, 0, 105, 106, 126, + 88, 121, 0, 0, 0, 0, 0, 95, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 77, 0, 0, 0, 0, 63, 45, 97, 0, 0, + 488, 58, 57, 59, 60, 73, 120, 0, 0, 81, + 82, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 96, 0, 94, 110, 111, 112, 107, 108, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 143, + 113, 109, 103, 0, 85, 86, 87, 0, 0, 0, + 0, 80, 53, 0, 0, 0, 78, 148, 149, 0, + 0, 0, 0, 0, 55, 56, 0, 65, 66, 67, + 68, 69, 70, 71, 0, 83, 84, 72, 0, 105, + 106, 126, 88, 121, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 77, 0, 0, 0, 0, 63, 45, 97, + 0, 0, 867, 58, 57, 59, 60, 73, 120, 0, + 0, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 0, 0, 0, 78, 148, + 149, 0, 0, 0, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 0, 83, 84, 72, + 0, 105, 106, 126, 88, 121, 0, 0, 0, 0, + 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 77, 0, 0, 0, 0, 63, + 45, 97, 0, 0, 630, 58, 57, 59, 60, 73, + 120, 0, 0, 81, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 143, 113, 109, 103, 0, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 148, 149, 0, 0, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 83, + 84, 72, 0, 105, 106, 126, 88, 121, 0, 0, + 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 77, 0, 0, 0, + 0, 63, 45, 97, 0, 0, 628, 58, 57, 59, + 60, 73, 120, 0, 0, 81, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 96, 0, 94, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 143, 113, 109, 103, 0, + 85, 86, 87, 0, 0, 0, 0, 80, 53, 0, + 0, 0, 78, 148, 149, 0, 0, 0, 0, 0, + 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, + 0, 83, 84, 72, 0, 105, 106, 126, 88, 121, + 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 0, + 0, 0, 0, 63, 45, 97, 0, 0, 292, 58, + 57, 59, 60, 73, 120, 0, 0, 81, 82, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 143, 113, 109, + 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 42, 149, 0, 0, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 0, 0, 83, 84, 72, 0, 105, + 106, 126, 88, 121, 0, 0, 0, 0, 0, 95, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 77, 0, 0, 0, 0, 63, 431, 97, 45, 0, + 0, 58, 57, 59, 60, 73, 120, 0, 0, 0, + 0, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 0, 0, 0, 78, 148, + 149, 0, 0, 0, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 0, 83, 84, 72, + 0, 105, 106, 126, 88, 121, 0, 0, 0, 0, + 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 77, 0, 0, 0, 0, 63, + 45, 97, 0, 0, 407, 58, 57, 59, 60, 73, + 120, 0, 0, 81, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 143, 113, 109, 103, 0, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 148, 149, 0, 0, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 83, + 84, 72, 0, 105, 106, 126, 88, 121, 0, 0, + 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 77, 0, 0, 0, + 388, 63, 45, 97, 0, 0, 0, 58, 57, 59, + 60, 73, 120, 0, 0, 81, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 96, 0, 94, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 143, 113, 109, 103, 0, + 85, 86, 87, 0, 0, 0, 0, 80, 53, 0, + 0, 0, 78, 148, 149, 0, 0, 0, 0, 0, + 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, + 0, 83, 84, 72, 0, 105, 106, 126, 88, 121, + 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 0, + 0, 152, 0, 63, 45, 97, 0, 0, 0, 58, + 57, 59, 60, 73, 120, 0, 0, 81, 82, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 96, 0, + 94, 110, 111, 112, 107, 108, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 0, 0, 143, 113, 109, + 103, 0, 85, 86, 87, 0, 0, 0, 0, 80, + 53, 0, 0, 0, 78, 148, 149, 0, 0, 0, + 0, 0, 55, 56, 0, 65, 66, 67, 68, 69, + 70, 71, 0, 83, 84, 72, 0, 105, 106, 126, + 88, 121, 0, 0, 0, 0, 0, 95, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 77, 0, 0, 150, 0, 63, 45, 97, 0, 0, + 0, 58, 57, 59, 60, 73, 120, 0, 0, 81, + 82, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 96, 0, 94, 110, 111, 112, 107, 108, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 0, 0, 143, + 113, 109, 103, 0, 85, 86, 87, 0, 0, 0, + 0, 80, 53, 0, 0, 0, 78, 148, 149, 0, + 0, 0, 0, 0, 55, 56, 0, 65, 66, 67, + 68, 69, 70, 71, 0, 83, 84, 72, 0, 105, + 106, 126, 88, 121, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 77, 17, 0, 35, 334, 63, 0, - 97, 0, 0, 0, 58, 57, 59, 60, 73, 120, - 83, 84, 72, 18, 105, 106, 13, 88, 121, 0, - 30, 0, 0, 0, 95, 29, 20, 19, 0, 21, - 0, 33, 0, 34, 0, 0, 22, 0, 0, 0, - 23, 24, 38, 45, 0, 0, 25, 36, 0, 0, - 37, 0, 0, 27, 0, 32, 81, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 42, 28, 0, 0, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 83, 84, 72, 0, 105, 106, 126, 88, - 121, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 17, 0, 35, 0, 63, 45, 97, 0, 0, 0, - 58, 57, 59, 60, 73, 120, 0, 0, 81, 82, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 143, 113, - 109, 103, 489, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 42, 149, 0, 0, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 0, 0, 83, 84, 72, 0, - 105, 106, 126, 88, 121, 0, 0, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 77, 0, 0, 0, 0, 63, 482, 97, 45, - 0, 488, 58, 57, 59, 60, 73, 120, 0, 0, - 0, 0, 81, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 96, 0, 94, 110, 111, 112, 107, - 108, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 143, 113, 109, 103, 489, 85, 86, 87, - 0, 0, 0, 0, 80, 53, 0, 0, 0, 78, - 148, 149, 0, 0, 0, 0, 0, 55, 56, 0, - 65, 66, 67, 68, 69, 70, 71, 0, 83, 84, - 72, 0, 105, 106, 126, 88, 121, 0, 0, 0, - 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 77, 0, 0, 0, 0, - 63, 45, 97, 0, 0, 488, 58, 57, 59, 60, - 73, 120, 0, 0, 81, 82, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 96, 0, 94, 110, 111, - 112, 107, 108, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 143, 113, 109, 103, 0, 85, - 86, 87, 0, 0, 0, 0, 80, 53, 0, 0, - 0, 78, 148, 149, 0, 0, 0, 0, 0, 55, - 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, - 83, 84, 72, 0, 105, 106, 126, 88, 121, 0, - 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 77, 0, 0, - 0, 0, 63, 45, 97, 0, 0, 867, 58, 57, - 59, 60, 73, 120, 0, 0, 81, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 148, 149, 0, 0, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 83, 84, 72, 0, 105, 106, 126, 88, - 121, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 0, 0, 0, 0, 63, 45, 97, 0, 0, 630, - 58, 57, 59, 60, 73, 120, 0, 0, 81, 82, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 143, 113, - 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 148, 149, 0, 0, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 83, 84, 72, 0, 105, 106, - 126, 88, 121, 0, 0, 0, 0, 0, 95, 0, + 0, 92, 77, 0, 0, 146, 0, 63, 45, 97, + 0, 0, 0, 58, 57, 59, 60, 73, 120, 0, + 0, 81, 82, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 96, 0, 94, 110, 111, 112, 107, 108, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, + 0, 143, 113, 109, 103, 0, 85, 86, 87, 0, + 0, 0, 0, 80, 53, 0, 0, 0, 78, 148, + 149, 0, 0, 0, 0, 0, 55, 56, 0, 65, + 66, 67, 68, 69, 70, 71, 0, 83, 84, 72, + 0, 105, 106, 126, 442, 121, 0, 0, 0, 0, + 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 77, 0, 0, 0, 0, 63, + 45, 97, 0, 0, 0, 58, 57, 59, 60, 73, + 120, 0, 0, 81, 82, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 96, 0, 94, 110, 111, 112, + 107, 108, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 0, 0, 143, 113, 109, 103, 0, 85, 86, + 87, 0, 0, 0, 0, 80, 53, 0, 0, 0, + 78, 148, 149, 0, 0, 0, 0, 0, 55, 56, + 0, 65, 66, 67, 68, 69, 70, 71, 0, 83, + 84, 72, 0, 105, 106, 126, 88, 121, 0, 0, + 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 92, 77, 0, 0, 0, + 0, 63, 45, 97, 0, 0, 0, 58, 57, 59, + 60, 73, 120, 0, 0, 81, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 96, 0, 94, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 143, 113, 109, 103, 0, + 85, 86, 87, 912, 0, 0, 0, 80, 53, 0, + 0, 0, 78, 42, 149, 0, 0, 0, 0, 0, + 55, 56, 0, 65, 66, 67, 68, 69, 70, 71, + 0, 0, 669, 667, 668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 77, 0, 0, 0, 0, 63, 45, 97, 0, - 0, 628, 58, 57, 59, 60, 73, 120, 0, 0, - 81, 82, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 143, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 148, 149, - 0, 0, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 83, 84, 72, 0, - 105, 106, 126, 88, 121, 0, 0, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 77, 0, 0, 0, 0, 63, 45, - 97, 0, 0, 292, 58, 57, 59, 60, 73, 120, - 0, 0, 81, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 96, 0, 94, 110, 111, 112, 107, - 108, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 143, 113, 109, 103, 0, 85, 86, 87, - 0, 0, 0, 0, 80, 53, 0, 0, 0, 78, - 42, 149, 0, 0, 0, 0, 0, 55, 56, 0, - 65, 66, 67, 68, 69, 70, 71, 0, 0, 0, - 83, 84, 72, 0, 105, 106, 126, 88, 121, 0, - 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 77, 0, 0, 0, 0, - 63, 431, 97, 45, 0, 0, 58, 57, 59, 60, - 73, 120, 0, 0, 0, 0, 81, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 148, 149, 0, 0, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 83, 84, 72, 0, 105, 106, 126, 88, - 121, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 0, 0, 0, 0, 63, 45, 97, 0, 0, 407, - 58, 57, 59, 60, 73, 120, 0, 0, 81, 82, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 143, 113, - 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 148, 149, 0, 0, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 83, 84, 72, 0, 105, 106, - 126, 88, 121, 0, 0, 0, 0, 0, 95, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 77, 0, 0, 0, 388, 63, 45, 97, 0, - 0, 0, 58, 57, 59, 60, 73, 120, 0, 0, - 81, 82, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 143, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 148, 149, - 0, 0, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 83, 84, 72, 0, - 105, 106, 126, 88, 121, 0, 0, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 77, 0, 0, 152, 0, 63, 45, - 97, 0, 0, 0, 58, 57, 59, 60, 73, 120, - 0, 0, 81, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 96, 0, 94, 110, 111, 112, 107, - 108, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 143, 113, 109, 103, 0, 85, 86, 87, - 0, 0, 0, 0, 80, 53, 0, 0, 0, 78, - 148, 149, 0, 0, 0, 0, 0, 55, 56, 0, - 65, 66, 67, 68, 69, 70, 71, 0, 83, 84, - 72, 0, 105, 106, 126, 88, 121, 0, 0, 0, - 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 92, 77, 0, 0, 150, 0, - 63, 45, 97, 0, 0, 0, 58, 57, 59, 60, - 73, 120, 0, 0, 81, 82, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 96, 0, 94, 110, 111, - 112, 107, 108, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 143, 113, 109, 103, 0, 85, - 86, 87, 0, 0, 0, 0, 80, 53, 0, 0, - 0, 78, 148, 149, 0, 0, 0, 0, 0, 55, - 56, 0, 65, 66, 67, 68, 69, 70, 71, 0, - 83, 84, 72, 0, 105, 106, 126, 88, 121, 0, - 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 92, 77, 0, 0, - 146, 0, 63, 45, 97, 0, 0, 0, 58, 57, - 59, 60, 73, 120, 0, 0, 81, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 96, 0, 94, - 110, 111, 112, 107, 108, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 143, 113, 109, 103, - 0, 85, 86, 87, 0, 0, 0, 0, 80, 53, - 0, 0, 0, 78, 148, 149, 0, 0, 0, 0, - 0, 55, 56, 0, 65, 66, 67, 68, 69, 70, - 71, 0, 83, 84, 72, 0, 105, 106, 126, 442, - 121, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 92, 77, - 0, 0, 0, 0, 63, 45, 97, 0, 0, 0, - 58, 57, 59, 60, 73, 120, 0, 0, 81, 82, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 96, - 0, 94, 110, 111, 112, 107, 108, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 0, 0, 143, 113, - 109, 103, 0, 85, 86, 87, 0, 0, 0, 0, - 80, 53, 0, 0, 0, 78, 148, 149, 0, 0, - 0, 0, 0, 55, 56, 0, 65, 66, 67, 68, - 69, 70, 71, 0, 83, 84, 72, 0, 105, 106, - 126, 88, 121, 0, 0, 0, 0, 0, 95, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92, 77, 0, 0, 0, 0, 63, 45, 97, 0, - 0, 0, 58, 57, 59, 60, 73, 120, 0, 0, - 81, 82, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 96, 0, 94, 110, 111, 112, 107, 108, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, - 143, 113, 109, 103, 0, 85, 86, 87, 0, 0, - 0, 0, 80, 53, 0, 0, 0, 78, 42, 149, - 0, 0, 0, 0, 0, 55, 56, 0, 65, 66, - 67, 68, 69, 70, 71, 0, 0, 669, 667, 668, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 77, 795, 0, 0, 0, 63, 0, - 97, 0, 0, 0, 58, 57, 59, 60, 73, 120, - 671, 670, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 0, 0, 669, 667, 668, 0, 0, 798, 654, - 0, 680, 662, 656, 655, 0, 0, 0, 0, 0, - 661, 0, 663, 657, 659, 660, 676, 677, 666, 756, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 671, 670, 658, 664, - 665, 672, 673, 674, 675, 678, 679, 0, 169, 171, - 170, 192, 0, 0, 0, 654, 0, 680, 662, 656, - 655, 0, 0, 0, 0, 0, 661, 0, 663, 657, - 659, 660, 676, 677, 666, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 169, 171, 170, - 192, 167, 168, 179, 182, 183, 184, 185, 186, 187, - 189, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 173, 177, 176, 0, 0, 0, 0, - 0, 172, 0, 174, 178, 180, 181, 188, 190, 175, - 167, 168, 179, 182, 183, 184, 185, 186, 187, 189, - 191, 0, 0, 0, 753, 169, 171, 170, 192, 0, - 0, 193, 173, 177, 176, 0, 0, 0, 0, 0, - 172, 0, 174, 178, 180, 181, 188, 190, 175, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 169, 171, 170, 192, 167, 168, - 179, 182, 183, 184, 185, 186, 187, 189, 191, 0, - 0, 0, 709, 0, 0, 0, 0, 0, 0, 193, - 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, - 174, 178, 180, 181, 188, 190, 175, 167, 168, 179, - 182, 183, 184, 185, 186, 187, 189, 191, 0, 0, - 0, 644, 169, 171, 170, 192, 0, 0, 193, 173, - 177, 176, 0, 0, 0, 0, 0, 172, 0, 174, - 178, 180, 181, 188, 190, 175, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 169, 171, 170, 192, 167, 168, 179, 182, 183, - 184, 185, 186, 187, 189, 191, 0, 0, 0, 641, - 0, 0, 0, 0, 0, 0, 193, 173, 177, 176, - 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, - 181, 188, 190, 175, 167, 168, 179, 182, 183, 184, - 185, 186, 187, 189, 191, 169, 171, 170, 192, 0, - 0, 0, 623, 0, 0, 193, 173, 177, 176, 0, - 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, - 188, 190, 175, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 169, 171, 170, 192, 167, 168, - 179, 182, 183, 184, 185, 186, 187, 189, 191, 0, - 0, 0, 0, 0, 0, 0, 622, 0, 0, 193, - 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, - 174, 178, 180, 181, 188, 190, 175, 167, 168, 179, - 182, 183, 184, 185, 186, 187, 189, 191, 0, 0, - 0, 603, 169, 171, 170, 192, 0, 0, 193, 173, - 177, 176, 476, 0, 0, 0, 0, 172, 0, 174, - 178, 180, 181, 188, 190, 175, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 169, 171, 170, 192, 167, 168, 179, 182, 183, - 184, 185, 186, 187, 189, 191, 0, 0, 0, 0, - 0, 554, 0, 0, 0, 0, 193, 173, 177, 176, - 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, - 181, 188, 190, 175, 167, 168, 179, 182, 183, 184, - 185, 186, 187, 189, 191, 169, 171, 170, 192, 0, - 0, 0, 0, 0, 0, 193, 173, 177, 176, 0, - 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, - 188, 190, 175, 405, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 167, 168, - 179, 182, 183, 184, 185, 186, 187, 189, 191, 0, - 0, 0, 169, 171, 170, 192, 429, 0, 0, 193, - 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, - 174, 178, 180, 181, 188, 190, 175, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 169, 171, 170, 192, 167, 168, 179, 182, 183, - 184, 185, 186, 187, 189, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 193, 173, 177, 176, - 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, - 181, 188, 190, 175, 167, 168, 179, 182, 183, 184, - 185, 186, 187, 189, 191, 169, 171, 170, 192, 397, - 0, 0, 0, 0, 0, 193, 173, 177, 176, 0, - 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, - 188, 190, 175, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 169, 171, 170, 192, 167, 168, - 179, 182, 183, 184, 185, 186, 187, 189, 191, 0, - 0, 0, 0, 347, 0, 0, 0, 0, 0, 193, - 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, - 174, 178, 180, 181, 188, 190, 175, 167, 168, 179, - 182, 183, 184, 185, 186, 187, 189, 191, 169, 171, - 170, 192, 346, 0, 0, 0, 0, 0, 193, 173, - 177, 176, 0, 0, 0, 0, 0, 172, 0, 174, - 178, 180, 181, 188, 190, 175, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 669, 667, 668, - 0, 167, 168, 179, 182, 183, 184, 185, 186, 187, - 189, 191, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 193, 173, 177, 176, 0, 0, 0, 0, - 0, 172, 0, 174, 178, 180, 181, 188, 190, 175, - 671, 670, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 169, 171, 170, 192, 0, 0, 0, 0, 654, - 0, 680, 662, 656, 655, 0, 0, 0, 0, 0, - 661, 0, 663, 657, 659, 660, 676, 677, 666, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 667, 668, 0, 167, 168, 179, 182, 183, 184, - 185, 186, 187, 189, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 173, 177, 176, 0, - 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, - 188, 190, 175, 671, 670, 658, 664, 665, 672, 673, - 674, 675, 678, 679, 171, 170, 192, 0, 0, 0, - 0, 0, 654, 0, 680, 662, 656, 655, 0, 0, - 0, 0, 0, 661, 0, 663, 657, 659, 660, 676, - 677, 666, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 668, 0, 167, 168, 179, 182, - 183, 184, 185, 186, 187, 189, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 173, 177, - 176, 0, 0, 0, 0, 0, 172, 0, 174, 178, - 180, 181, 188, 190, 175, 671, 670, 658, 664, 665, - 672, 673, 674, 675, 678, 679, 170, 192, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 77, 0, + 0, 0, 0, 63, 0, 97, 0, 0, 0, 58, + 57, 59, 60, 73, 120, 671, 670, 658, 664, 665, + 672, 673, 674, 675, 678, 679, 669, 667, 668, 0, 0, 0, 0, 0, 654, 0, 680, 662, 656, 655, 0, 0, 0, 0, 0, 661, 0, 663, 657, 659, 660, 676, 677, 666, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 192, 167, 168, 179, + 0, 0, 0, 0, 0, 169, 171, 170, 192, 671, + 670, 658, 664, 665, 672, 673, 674, 675, 678, 679, + 0, 0, 0, 0, 0, 870, 0, 0, 654, 0, + 680, 662, 656, 655, 0, 0, 0, 0, 0, 661, + 0, 663, 657, 659, 660, 676, 677, 666, 167, 168, + 179, 182, 183, 184, 185, 186, 187, 189, 191, 0, + 0, 0, 863, 169, 171, 170, 192, 0, 0, 193, + 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, + 174, 178, 180, 181, 188, 190, 175, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 669, 667, 668, 0, 167, 168, 179, 182, + 183, 184, 185, 186, 187, 189, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 858, 193, 173, 177, + 176, 795, 0, 0, 0, 0, 172, 0, 174, 178, + 180, 181, 188, 190, 175, 671, 670, 658, 664, 665, + 672, 673, 674, 675, 678, 679, 0, 0, 0, 0, + 669, 667, 668, 798, 654, 0, 680, 662, 656, 655, + 756, 0, 0, 0, 0, 661, 0, 663, 657, 659, + 660, 676, 677, 666, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, + 171, 170, 192, 671, 670, 658, 664, 665, 672, 673, + 674, 675, 678, 679, 0, 0, 0, 0, 0, 0, + 0, 0, 654, 0, 680, 662, 656, 655, 0, 0, + 0, 0, 0, 661, 0, 663, 657, 659, 660, 676, + 677, 666, 167, 168, 179, 182, 183, 184, 185, 186, + 187, 189, 191, 169, 171, 170, 192, 0, 0, 0, + 0, 0, 0, 193, 173, 177, 176, 0, 0, 0, + 0, 0, 172, 0, 174, 178, 180, 181, 188, 190, + 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 169, 171, 170, 192, 167, 168, 179, 182, + 183, 184, 185, 186, 187, 189, 191, 0, 0, 0, + 753, 0, 0, 0, 0, 0, 0, 193, 173, 177, + 176, 0, 0, 0, 0, 0, 172, 0, 174, 178, + 180, 181, 188, 190, 175, 167, 168, 179, 182, 183, + 184, 185, 186, 187, 189, 191, 0, 0, 0, 709, + 169, 171, 170, 192, 0, 0, 193, 173, 177, 176, + 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, + 181, 188, 190, 175, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, + 171, 170, 192, 167, 168, 179, 182, 183, 184, 185, + 186, 187, 189, 191, 0, 0, 0, 644, 0, 0, + 0, 0, 0, 0, 193, 173, 177, 176, 0, 0, + 0, 0, 0, 172, 0, 174, 178, 180, 181, 188, + 190, 175, 167, 168, 179, 182, 183, 184, 185, 186, + 187, 189, 191, 0, 0, 0, 641, 169, 171, 170, + 192, 0, 0, 193, 173, 177, 176, 0, 0, 0, + 0, 0, 172, 0, 174, 178, 180, 181, 188, 190, + 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 169, 171, 170, 192, + 167, 168, 179, 182, 183, 184, 185, 186, 187, 189, + 191, 0, 0, 0, 0, 0, 0, 0, 623, 0, + 0, 193, 173, 177, 176, 0, 0, 0, 0, 0, + 172, 0, 174, 178, 180, 181, 188, 190, 175, 167, + 168, 179, 182, 183, 184, 185, 186, 187, 189, 191, + 169, 171, 170, 192, 0, 0, 0, 622, 0, 0, + 193, 173, 177, 176, 0, 0, 0, 0, 0, 172, + 0, 174, 178, 180, 181, 188, 190, 175, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, + 171, 170, 192, 167, 168, 179, 182, 183, 184, 185, + 186, 187, 189, 191, 0, 0, 0, 603, 0, 0, + 0, 0, 0, 0, 193, 173, 177, 176, 0, 0, + 476, 0, 0, 172, 0, 174, 178, 180, 181, 188, + 190, 175, 167, 168, 179, 182, 183, 184, 185, 186, + 187, 189, 191, 0, 0, 0, 0, 0, 554, 169, + 171, 170, 192, 193, 173, 177, 176, 0, 0, 0, + 0, 0, 172, 0, 174, 178, 180, 181, 188, 190, + 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 169, 171, + 170, 192, 167, 168, 179, 182, 183, 184, 185, 186, + 187, 189, 191, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 193, 173, 177, 176, 0, 0, 0, + 0, 0, 172, 0, 174, 178, 180, 181, 188, 190, + 175, 167, 168, 179, 182, 183, 184, 185, 186, 187, + 189, 191, 405, 0, 0, 0, 0, 0, 0, 429, + 0, 0, 193, 173, 177, 176, 0, 0, 0, 0, + 0, 172, 0, 174, 178, 180, 181, 188, 190, 175, + 0, 169, 171, 170, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 169, 171, 170, 192, 167, 168, 179, 182, 183, 184, + 185, 186, 187, 189, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 193, 173, 177, 176, 0, + 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, + 188, 190, 175, 167, 168, 179, 182, 183, 184, 185, + 186, 187, 189, 191, 169, 171, 170, 192, 397, 0, + 0, 0, 0, 0, 193, 173, 177, 176, 0, 0, + 0, 0, 0, 172, 0, 174, 178, 180, 181, 188, + 190, 175, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 169, 171, 170, 192, 167, 168, 179, 182, 183, 184, 185, 186, 187, 189, 191, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 173, + 0, 0, 347, 0, 0, 0, 0, 0, 193, 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, 188, 190, 175, 167, 168, 179, 182, - 183, 184, 185, 186, 187, 189, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 193, 173, 177, + 183, 184, 185, 186, 187, 189, 191, 169, 171, 170, + 192, 346, 0, 0, 0, 0, 0, 193, 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, 174, 178, - 180, 181, 188, 190, 175, 671, 670, 658, 664, 665, - 672, 673, 674, 675, 678, 679, 192, 0, 0, 0, - 0, 0, 0, 0, 654, 0, 0, 662, 656, 655, - 0, 0, 0, 0, 0, 661, 0, 663, 657, 659, - 660, 676, 677, 666, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 167, 168, 179, 182, - 183, 184, 185, 186, 187, 189, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 173, 177, - 176, 0, 0, 0, 0, 0, 172, 0, 174, 178, - 180, 181, 188, 190, 175, 179, 182, 183, 184, 185, - 186, 187, 189, 191, 0, 0, 0, 0, 0, 0, + 180, 181, 188, 190, 175, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 169, 171, 170, 192, + 167, 168, 179, 182, 183, 184, 185, 186, 187, 189, + 191, 0, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 193, 173, 177, 176, 0, 0, 0, 0, 0, + 172, 0, 174, 178, 180, 181, 188, 190, 175, 167, + 168, 179, 182, 183, 184, 185, 186, 187, 189, 191, + 669, 667, 668, 0, 0, 0, 0, 0, 0, 0, + 193, 173, 177, 176, 0, 0, 0, 0, 0, 172, + 0, 174, 178, 180, 181, 188, 190, 175, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 667, 668, 0, 671, 670, 658, 664, 665, 672, 673, + 674, 675, 678, 679, 0, 0, 0, 0, 0, 0, + 0, 0, 654, 0, 680, 662, 656, 655, 0, 0, + 0, 0, 0, 661, 0, 663, 657, 659, 660, 676, + 677, 666, 671, 670, 658, 664, 665, 672, 673, 674, + 675, 678, 679, 171, 170, 192, 0, 0, 0, 0, + 0, 654, 0, 680, 662, 656, 655, 0, 0, 0, + 0, 0, 661, 0, 663, 657, 659, 660, 676, 677, + 666, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 668, 0, 167, 168, 179, 182, 183, + 184, 185, 186, 187, 189, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 193, 173, 177, 176, + 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, + 181, 188, 190, 175, 671, 670, 658, 664, 665, 672, + 673, 674, 675, 678, 679, 192, 0, 0, 0, 0, + 0, 0, 0, 654, 0, 680, 662, 656, 655, 0, + 0, 0, 0, 0, 661, 0, 663, 657, 659, 660, + 676, 677, 666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 168, 179, 182, 183, + 184, 185, 186, 187, 189, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 193, 173, 177, 176, + 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, + 181, 188, 190, 175, 671, 670, 658, 664, 665, 672, + 673, 674, 675, 678, 679, 192, 0, 0, 0, 0, + 0, 0, 0, 654, 0, 0, 662, 656, 655, 0, + 0, 0, 0, 0, 661, 0, 663, 657, 659, 660, + 676, 677, 666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192, 0, 167, 168, 179, 182, 183, + 184, 185, 186, 187, 189, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 173, 177, 176, + 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, + 181, 188, 190, 175, 168, 179, 182, 183, 184, 185, + 186, 187, 189, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 177, 176, 0, 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, 188, - 190, 175, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 192, 0, 0, 0, 0, 0, 0, 0, 654, - 0, 0, 662, 656, 655, 0, 0, 0, 0, 0, - 0, 0, 663, 657, 659, 660, 676, 677, 666, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, - 0, 0, 0, 179, 182, 183, 184, 185, 186, 187, - 189, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 190, 175, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 192, 0, 0, 0, 0, 179, 182, 183, 184, + 185, 186, 187, 189, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 173, 177, 176, 0, + 0, 0, 0, 0, 172, 0, 174, 178, 180, 181, + 188, 190, 175, 179, 182, 183, 184, 185, 186, 187, + 189, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 177, 176, 0, 0, 0, 0, - 0, 0, 0, 174, 178, 180, 181, 188, 190, 175, - 179, 182, 183, 184, 185, 186, 187, 189, 191, 105, - 106, 126, 0, 0, 0, 0, 0, 0, 0, 529, - 0, 177, 176, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 180, 181, 188, 190, 175, 105, 106, 126, - 0, 0, 0, 0, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 178, 180, 181, 188, 190, 175, + 105, 106, 126, 0, 0, 0, 0, 0, 0, 0, + 529, 0, 0, 0, 179, 182, 183, 184, 185, 186, + 187, 189, 191, 105, 106, 126, 0, 0, 0, 0, + 0, 0, 0, 529, 0, 177, 176, 0, 0, 0, + 0, 0, 0, 0, 0, 178, 180, 181, 188, 190, + 175, 0, 0, 524, 0, 527, 110, 111, 112, 107, + 108, 0, 0, 0, 0, 0, 0, 530, 0, 0, + 0, 0, 522, 113, 109, 523, 524, 0, 527, 110, + 111, 112, 107, 108, 0, 0, 0, 0, 0, 0, + 530, 233, 0, 0, 0, 522, 113, 109, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 524, 0, 527, 110, 111, 112, 107, 108, - 0, 0, 0, 0, 0, 0, 530, 0, 0, 0, - 0, 522, 113, 109, 523, 0, 0, 0, 0, 0, - 524, 0, 527, 110, 111, 112, 107, 108, 0, 0, - 233, 0, 0, 0, 530, 0, 0, 0, 0, 522, - 113, 109, 523, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 233, 0, + 0, 0, 0, 0, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 788, 536, - 0, 525, 0, 0, 0, 535, 534, 532, 533, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, + 536, 0, 525, 0, 0, 0, 535, 534, 532, 533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 536, 0, 525, - 0, 0, 0, 535, 534, 532, 533, + 0, 0, 0, 536, 0, 525, 0, 0, 0, 535, + 534, 532, 533, } var yyPact = [...]int{ - -1000, -1000, 2298, -1000, -1000, -1000, -1000, -1000, 336, 543, - 613, 174, -1000, 348, -1000, -1000, 971, -1000, 276, 276, - 5446, 332, 276, 6794, 6682, 6570, 396, 166, 802, 6906, - -1000, 7990, 328, 325, 315, -1000, 442, 6906, 967, 9, - 965, 962, 6906, -1000, -1000, -1000, -1000, 740, -1000, 716, - -1000, 2309, 313, 6906, 492, 131, 131, 6906, 6906, 6906, - 6906, -1000, -1000, 7130, -1000, 6906, 6906, 6906, 6906, 6906, - 6906, 6906, 311, 6906, -1000, 214, 206, 977, 6906, 689, - 420, 310, 309, 6906, 6906, 305, 6906, 6906, -1000, 197, - -1000, -1000, 951, 841, -1000, 195, 297, 6120, -1000, 187, - 158, -1000, 300, 919, 650, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 173, 153, -1000, 647, 279, -1000, - 440, -1000, 265, 367, -1000, 919, -1000, 164, 644, 603, - -1000, 699, 919, -1000, 959, -1000, -57, 4352, 5290, 7130, - 5134, 809, 9, 561, 6906, 302, -1000, 7936, -1000, 780, - -1000, 7897, -1000, 395, 2009, 8083, -1000, 146, -1000, -1000, - 403, 141, 9, -59, 97, 8083, -1000, 6906, 6906, 6906, - 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, - 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, - 6906, 6906, 420, 6458, 131, 6906, 955, -1000, 7843, 394, - 375, -1000, 709, 703, -1000, 2309, 7804, -1000, -1000, 6346, - 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, 6906, - 6906, 6906, 236, -1000, -1000, -1000, -1000, -1000, 300, 555, - 919, 624, 623, -1000, -1000, 457, 457, 510, 457, 260, - 7747, 258, 457, 457, 457, 457, 457, 457, 457, -1000, - 6232, -1000, 457, 6906, 6906, 421, 838, 947, -1000, 272, - 7018, 131, 8305, 132, 279, 610, -1000, 528, 550, 919, - 686, 173, 153, 570, 6906, 6906, 8083, 8083, 6906, 8083, - 8083, 6906, 636, 838, 778, -1000, 755, 6906, 6120, 156, - -32, 7693, 131, 6906, 6906, 952, -1000, 5558, 300, 189, - 6906, 6906, 173, 440, 135, -1000, 6906, 393, -1000, -1000, - 2140, 300, -1000, 700, 58, -1000, 696, 919, 52, -1000, - 687, 919, 950, 678, -73, 8719, -1000, -1000, -1000, -1000, - -1000, -1000, 296, -1000, -1000, -1000, -1000, -1000, 276, 295, - 392, -35, 8083, -1000, 385, 384, -1000, -1000, -1000, -1000, - -1000, 166, -1000, 6906, -1000, -1000, 855, 294, 8719, -1000, - 6906, 100, 8432, 8175, 8305, 8266, 8520, 8557, 1812, 41, - 41, 41, 510, 457, 510, 510, 117, 117, 958, 958, - 958, 958, 55, 55, 55, 55, -1000, 7654, 6906, 129, - -1000, -1000, 2297, 793, 67, -77, 4194, -1000, -1000, 291, - 723, 698, 632, 439, 632, 6906, 8305, 319, 8305, 8305, - 8305, 8305, 8305, 8305, 8305, 8305, 8305, 8305, 8305, 8305, - 21, -1000, -1000, 290, 919, 300, 132, 132, 270, -1000, - -1000, -1000, 149, 8083, 148, -1000, -1000, -1000, -1000, 896, - 946, 7596, 182, 416, 279, 208, -1000, -1000, 173, 153, - -1000, 6906, -1000, -1000, 138, 919, 528, 132, 173, 138, - 11, -1000, 2309, -1000, 2152, 7557, 7503, 105, -1000, -1000, - -1000, 101, 249, -1000, -1000, 6008, 5896, -1000, -1000, 98, - 96, -1000, -1000, 6, 248, -1000, -1000, 2309, 131, 6906, - -1000, 279, 279, -1000, -1000, 74, 7464, 279, 279, -1000, - 7406, -1000, 1735, -1000, -1000, -1000, -1000, 644, 944, 662, - -1000, 603, 943, 622, -1000, 942, 8719, -1000, 8029, -1000, - -1000, 528, 544, 919, 288, 8719, -1000, -1000, -1000, -1000, - 718, 567, 8719, 8719, 8719, 8719, 8719, 245, 515, 4510, - 4036, 383, 6906, 6906, 495, -1000, 918, -1000, -1000, 7367, - -80, 723, -1000, 8083, 6906, 8395, 379, 131, 301, 301, - 4978, 928, 8719, 770, 723, 241, -41, -1000, 9, -1000, - -1000, -1000, 528, 537, 919, 437, 632, -1000, -1000, -54, - -1000, -1000, 2309, -1000, 420, -86, 236, 236, 300, -1000, - -1000, 186, 684, 6906, -1000, 132, -1000, -1000, 71, -1000, - -1000, -1000, -1000, -1000, -1000, 6906, -1000, -1000, 53, 19, - -1000, 6906, 6906, 173, 7309, -1000, 528, -1000, -1000, -1000, - 6906, -1000, -1000, -1000, -1000, -1000, -1000, 7270, 131, 8083, - 131, -1000, -1000, -1000, 5672, -1000, -1000, 8083, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 924, -1000, - -1000, 922, -1000, -1000, 8719, 8719, 8719, 8719, 8719, 8719, - 8719, 8719, 8719, 8719, 8719, 8719, 8719, 8719, 8719, 8719, - 8719, 8719, 8719, 8719, 8719, 8719, 8719, 8719, 8719, 8719, - 8691, 919, 528, 8719, 64, -45, 7215, 655, 756, 155, - 155, -55, -55, 7159, 376, -1000, 276, 5446, 508, 374, - -1000, 372, 8083, -1000, 6906, 287, 472, 370, 892, -1000, - 8719, 233, 8395, -1000, -1000, 681, -1000, 131, 283, 681, - -1000, -1000, -1000, -87, -1000, 765, 281, 231, 753, 723, - 522, 919, 528, -1000, -54, 1002, 632, 279, 6906, -1000, - -11, 6906, 684, -1000, 62, 279, -1000, 1911, 684, 6906, - 6906, 49, 1216, -1000, 683, -1000, 5784, -1000, -1000, -1000, - -1000, -1000, 1872, -55, -55, 155, 155, 155, 155, 8469, - 1732, 1956, 222, 222, -55, 8214, 1332, 8122, 1774, -67, - 18, 18, 18, 18, -42, -42, -42, -42, 8719, 1161, - 528, 230, -1000, -1000, 8719, 8719, -1000, -1000, -1000, -1000, - 5446, -1000, 498, 276, 347, -1000, 6906, 1027, -1000, -1000, - -1000, -1000, -1000, 369, -1000, 753, 226, 301, -1000, 236, - 225, 3878, 8719, -1000, 436, 632, 430, 429, 271, -1000, - 840, -1000, 528, 762, -1000, -1000, 837, -6, -1000, 780, - 620, -1000, 911, 632, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 8305, -1000, 46, -1000, -1000, 411, -1000, - 45, 43, -1000, -1000, -1000, 132, 8083, 131, -1000, 8344, - 8719, -1000, 1546, 8029, -1000, 363, 344, -1000, 224, -1000, - 4510, -1000, 428, 4822, -1000, -12, 4822, 361, -1000, -1000, - 835, -1000, -1000, 151, -102, -1000, -25, -107, -1000, 910, - 9, -1000, -108, -83, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 8344, 8719, -1000, -1000, 4510, 4666, 4510, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 3720, 217, 3562, 3404, -29, - -1000, 830, 8719, -1000, 829, 8719, -109, 902, 8719, -1000, - 632, -1000, 688, 8029, 4510, -1000, -1000, -1000, 3246, 3088, - -1000, 427, -1000, -1000, -1000, 106, -1000, -1000, -111, -1000, - 8719, 269, -1000, -1000, 405, 688, -1000, 360, 353, 751, - 790, 566, -1000, 2930, -1000, 351, -1000, -1000, 824, 8719, - -1000, 723, -1000, -1000, -1000, -1000, 632, 620, 901, 342, - -1000, 2772, -1000, -1000, 216, -81, -1000, 895, -1000, -1000, - -1000, 757, 341, 632, -1000, -1000, 757, -1000, 268, -1000, - -1000, -1000, -1000, -1000, 632, 2614, 823, -1000, 102, 423, - -1000, 2456, -1000, + -1000, -1000, 2243, -1000, -1000, -1000, -1000, -1000, 321, 547, + 755, 70, -1000, 286, -1000, -1000, 946, -1000, 242, 242, + 5391, 319, 242, 6739, 6627, 6515, 383, 172, 795, 6851, + -1000, 8139, 312, 311, 310, -1000, 420, 6851, 944, 4, + 943, 942, 6851, -1000, -1000, -1000, -1000, 704, -1000, 694, + -1000, 525, 304, 6851, 478, 224, 224, 6851, 6851, 6851, + 6851, -1000, -1000, 7075, -1000, 6851, 6851, 6851, 6851, 6851, + 6851, 6851, 303, 6851, -1000, 171, 163, 1021, 6851, 677, + 445, 295, 289, 6851, 6851, 287, 6851, 6851, -1000, 160, + -1000, -1000, 969, 913, -1000, 152, 281, 6065, -1000, 146, + 144, -1000, 259, 907, 626, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 89, 153, -1000, 623, 246, -1000, + 418, -1000, 207, 353, -1000, 907, -1000, 59, 700, 617, + -1000, 702, 907, -1000, 941, -1000, -75, 4297, 5235, 7075, + 5079, 790, 4, 528, 6851, 283, -1000, 8085, -1000, 762, + -1000, 8046, -1000, 381, 2242, 8178, -1000, 58, -1000, -1000, + 348, 42, 4, -83, 34, 8178, -1000, 6851, 6851, 6851, + 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, + 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, + 6851, 6851, 445, 6403, 224, 6851, 940, -1000, 7992, 377, + 361, -1000, 688, 683, -1000, 525, 7953, -1000, -1000, 6291, + 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, 6851, + 6851, 6851, 285, -1000, -1000, -1000, -1000, -1000, 259, 524, + 907, 607, 560, -1000, -1000, 438, 438, 489, 438, 206, + 7870, 203, 438, 438, 438, 438, 438, 438, 438, -1000, + 6177, -1000, 438, 6851, 6851, 423, 736, 920, -1000, 232, + 6963, 224, 8414, 68, 246, 557, -1000, 511, 522, 907, + 675, 89, 153, 555, 6851, 6851, 8178, 8178, 6851, 8178, + 8178, 6851, 692, 736, 843, -1000, 899, 6851, 6065, 131, + -7, 7831, 224, 6851, 6851, 939, -1000, 5503, 259, 54, + 6851, 6851, 89, 418, 189, -1000, 6851, 376, -1000, -1000, + 2085, 259, -1000, 714, 32, -1000, 698, 907, 3, -1000, + 696, 907, 938, 690, -85, 8815, -1000, -1000, -1000, -1000, + -1000, -1000, 276, -1000, -1000, -1000, -1000, -1000, 242, 274, + 374, -10, 8178, -1000, 372, 367, -1000, -1000, -1000, -1000, + -1000, 172, -1000, 6851, -1000, -1000, 858, 265, 8815, -1000, + 6851, 8542, 8593, 8324, 8414, 1579, 112, 8681, 8630, -30, + -30, -30, 489, 438, 489, 489, 350, 350, 4572, 4572, + 4572, 4572, 151, 151, 151, 151, -1000, 7771, 6851, 17, + -1000, -1000, 1936, 779, 2, -86, 4139, -1000, -1000, 263, + 710, 679, 718, 417, 718, 6851, 8414, 362, 8414, 8414, + 8414, 8414, 8414, 8414, 8414, 8414, 8414, 8414, 8414, 8414, + -12, -1000, -1000, 261, 907, 259, 68, 68, 214, -1000, + -1000, -1000, 120, 8178, 110, -1000, -1000, -1000, -1000, 846, + 936, 7732, 119, 393, 246, 139, -1000, -1000, 89, 153, + -1000, 6851, -1000, -1000, 142, 907, 511, 68, 89, 142, + -33, -1000, 525, -1000, 1632, 7678, 7639, 108, -1000, -1000, + -1000, 107, 202, -1000, -1000, 5953, 5841, -1000, -1000, 104, + 103, -1000, -1000, -35, 201, -1000, -1000, 525, 224, 6851, + -1000, 246, 246, -1000, -1000, 93, 7581, 246, 246, -1000, + 7542, -1000, 1927, -1000, -1000, -1000, -1000, 700, 928, 609, + -1000, 617, 924, 552, -1000, 923, 8815, -1000, 8232, -1000, + -1000, 511, 518, 907, 252, 8815, -1000, -1000, -1000, -1000, + 706, 545, 8815, 8815, 8815, 8815, 8815, 195, 523, 4455, + 3981, 365, 6851, 6851, 469, -1000, 876, -1000, -1000, 7484, + -87, 710, -1000, 8178, 6851, 8504, 360, 224, 228, 228, + 4923, 921, 8815, 749, 710, 190, -13, -1000, 4, -1000, + -1000, -1000, 511, 516, 907, 412, 718, -1000, -1000, -42, + -1000, -1000, 525, -1000, 445, -88, 285, 285, 259, -1000, + -1000, 149, 659, 6851, -1000, 68, -1000, -1000, 90, -1000, + -1000, -1000, -1000, -1000, -1000, 6851, -1000, -1000, 141, 137, + -1000, 6851, 6851, 89, 7445, -1000, 511, -1000, -1000, -1000, + 6851, -1000, -1000, -1000, -1000, -1000, -1000, 7391, 224, 8178, + 224, -1000, -1000, -1000, 5617, -1000, -1000, 8178, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 914, -1000, + -1000, 912, -1000, -1000, 8815, 8815, 8815, 8815, 8815, 8815, + 8815, 8815, 8815, 8815, 8815, 8815, 8815, 8815, 8815, 8815, + 8815, 8815, 8815, 8815, 8815, 8815, 8815, 8815, 8815, 8815, + 8792, 907, 511, 8815, 86, -32, 7352, 638, 764, 82, + 82, -80, -80, 7294, 357, -1000, 242, 5391, 496, 354, + -1000, 344, 8178, -1000, 6851, 273, 448, 342, 821, -1000, + 8815, 186, 8504, -1000, -1000, 656, -1000, 224, 251, 656, + -1000, -1000, -1000, -89, -1000, 720, 249, 185, 721, 710, + 490, 907, 511, -1000, -42, 1141, 718, 246, 6851, -1000, + -47, 6851, 659, -1000, 84, 246, -1000, 7255, 659, 6851, + 6851, 63, 7197, -1000, 658, -1000, 5729, -1000, -1000, -1000, + -1000, -1000, 1295, -80, -80, 82, 82, 82, 82, 1727, + 889, 5, 284, 284, -80, 8363, 1005, 8271, 1356, 1212, + -45, -45, -45, -45, 56, 56, 56, 56, 8815, 7158, + 511, 183, -1000, -1000, 8815, 8815, -1000, -1000, -1000, -1000, + 5391, -1000, 476, 242, 233, -1000, 6851, 1683, -1000, -1000, + -1000, -1000, -1000, 339, -1000, 721, 180, 228, -1000, 285, + 176, 3823, 8815, -1000, 409, 718, 406, 403, 229, -1000, + 838, -1000, 511, 761, -1000, -1000, 837, -52, -1000, 762, + 595, -1000, 905, 718, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 8414, -1000, 46, -1000, -1000, 386, -1000, + 35, 24, -1000, -1000, -1000, 68, 8178, 224, -1000, 8453, + 8815, -1000, 7104, 8232, -1000, 338, 177, -1000, 154, -1000, + 4455, -1000, 402, 4767, -1000, -49, 4767, 331, -1000, -1000, + 828, -1000, -1000, 184, -91, -1000, -54, -97, -1000, 902, + 4, -1000, -100, -77, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 8453, 8815, -1000, -1000, 4455, 4611, 4455, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 3665, 143, 3507, 3349, -67, + -1000, 827, 6851, -1000, 824, 8815, -102, 895, 8815, -1000, + 718, -1000, 732, 8232, 4455, -1000, -1000, -1000, 3191, 3033, + -1000, 398, -1000, -1000, -1000, 175, -1000, 8178, -107, -1000, + 8815, 221, -1000, -1000, 385, 732, -1000, 328, 325, 715, + 774, 500, -1000, 2875, -1000, 275, -1000, -1000, 810, 8815, + -1000, 710, -1000, -1000, -1000, -1000, 718, 595, 894, 230, + -1000, 2717, -1000, -1000, 60, -59, -1000, 890, -1000, -1000, + -1000, 742, 326, 718, -1000, -1000, 742, -1000, 219, -1000, + -1000, -1000, -1000, -1000, 718, 2559, 807, -1000, 36, 396, + -1000, 2401, -1000, } var yyPgo = [...]int{ - 0, 29, 1183, 22, 21, 1177, 49, 41, 39, 544, - 1176, 1175, 164, 217, 228, 180, 1362, 64, 134, 59, - 781, 1399, 1172, 33, 1171, 1170, 1169, 136, 1157, 40, - 37, 1155, 1154, 1152, 1151, 84, 1149, 1148, 20, 1146, - 28, 44, 38, 1145, 736, 36, 1139, 1, 1137, 1136, - 7, 1135, 52, 43, 42, 1134, 1132, 1131, 31, 1128, - 1121, 4, 1120, 1119, 1114, 16, 1111, 1110, 1109, 1108, - 48, 5, 1100, 1097, 1095, 1090, 1089, 2, 1087, 607, - 1086, 1084, 1083, 18, 202, 1082, 1076, 1075, 1074, 1073, - 1072, 12, 1071, 1069, 6, 19, 1068, 1067, 1066, 9, - 50, 0, 1064, 1063, 1062, 117, 599, 1060, 1059, 62, - 8, 1058, 1057, 1056, 1052, 14, 47, 1044, 1042, 1038, - 3, 1034, 23, 1033, 1031, 1027, 35, 1026, 1022, 1019, - 1018, 1014, 1008, 1002, 25, 1001, 1000, 999, 24, 996, - 15, 17, 993, 34, 992, 991, 986, 984, 177, 13, - 983, 902, + 0, 29, 1177, 22, 8, 1175, 40, 33, 27, 940, + 1167, 1165, 36, 217, 1179, 91, 1036, 72, 99, 59, + 810, 200, 1164, 31, 1163, 1162, 1154, 42, 1152, 50, + 34, 1151, 1150, 1149, 1148, 131, 1147, 1135, 20, 1133, + 26, 38, 168, 1132, 722, 35, 1131, 1, 1129, 1128, + 24, 1127, 68, 51, 46, 1126, 1125, 1122, 28, 1119, + 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, + 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, + 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, + 1075, 12, 1073, 1072, 7, 21, 1071, 1070, 1069, 14, + 39, 0, 1067, 1065, 1064, 391, 619, 1063, 1059, 41, + 4, 1052, 1050, 1049, 1041, 30, 52, 1032, 1031, 1019, + 3, 1011, 15, 1010, 1008, 1007, 25, 1002, 1001, 1000, + 999, 996, 993, 992, 17, 984, 983, 972, 23, 969, + 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, + 960, 923, } var yyR1 = [...]int{ @@ -1824,7 +1834,7 @@ var yyChk = [...]int{ -27, 147, 149, -91, 146, -105, 12, -105, -105, -111, 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, 160, 146, 144, -79, -105, -92, -27, 147, -105, -105, - 145, 149, 145, 145, 149, 160, 12, -30, 12, -30, + 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, -75, -47, 10, -105, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, @@ -4231,21 +4241,26 @@ yydefault: } } - yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, nil} - + pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + pos = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) + pos = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - } else { - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + pos = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + } + + yyVAL.node = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: yyDollar[1].node, + Var: variable, } } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2076 +// line internal/php5/php5.y:2081 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4281,27 +4296,34 @@ yydefault: } } - yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, yyDollar[6].node} - + pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + pos = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + pos = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) - } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) + pos = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) + } + + yyVAL.node = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: yyDollar[1].node, + Var: variable, + EqualTkn: yyDollar[5].token, + DefaultValue: yyDollar[6].node, } } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2128 +// line internal/php5/php5.y:2140 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2132 +// line internal/php5/php5.y:2144 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4313,7 +4335,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2142 +// line internal/php5/php5.y:2154 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4325,13 +4347,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2152 +// line internal/php5/php5.y:2164 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2160 +// line internal/php5/php5.y:2172 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4344,7 +4366,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2171 +// line internal/php5/php5.y:2183 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4357,7 +4379,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2182 +// line internal/php5/php5.y:2194 { arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} @@ -4372,13 +4394,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2199 +// line internal/php5/php5.y:2211 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2203 +// line internal/php5/php5.y:2215 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4387,7 +4409,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2213 +// line internal/php5/php5.y:2225 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4399,7 +4421,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2223 +// line internal/php5/php5.y:2235 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4411,7 +4433,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2233 +// line internal/php5/php5.y:2245 { yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} @@ -4423,7 +4445,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2243 +// line internal/php5/php5.y:2255 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4435,7 +4457,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2256 +// line internal/php5/php5.y:2268 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4444,7 +4466,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2263 +// line internal/php5/php5.y:2275 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4452,7 +4474,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2273 +// line internal/php5/php5.y:2285 { name := &ast.Identifier{ Node: ast.Node{ @@ -4471,7 +4493,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2290 +// line internal/php5/php5.y:2302 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4483,7 +4505,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2300 +// line internal/php5/php5.y:2312 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4497,7 +4519,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2316 +// line internal/php5/php5.y:2328 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4526,7 +4548,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2343 +// line internal/php5/php5.y:2355 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4557,7 +4579,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2372 +// line internal/php5/php5.y:2384 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4587,7 +4609,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2400 +// line internal/php5/php5.y:2412 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4619,19 +4641,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2434 +// line internal/php5/php5.y:2446 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2438 +// line internal/php5/php5.y:2450 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2446 +// line internal/php5/php5.y:2458 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4645,7 +4667,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2458 +// line internal/php5/php5.y:2470 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4653,13 +4675,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2464 +// line internal/php5/php5.y:2476 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2468 +// line internal/php5/php5.y:2480 { name := &ast.Identifier{ Node: ast.Node{ @@ -4695,7 +4717,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2505 +// line internal/php5/php5.y:2517 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4707,13 +4729,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2518 +// line internal/php5/php5.y:2530 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2522 +// line internal/php5/php5.y:2534 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4727,7 +4749,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2534 +// line internal/php5/php5.y:2546 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4738,7 +4760,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2543 +// line internal/php5/php5.y:2555 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4750,31 +4772,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2556 +// line internal/php5/php5.y:2568 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2560 +// line internal/php5/php5.y:2572 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2567 +// line internal/php5/php5.y:2579 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2571 +// line internal/php5/php5.y:2583 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2578 +// line internal/php5/php5.y:2590 { yyVAL.node = yyDollar[1].node @@ -4784,7 +4806,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2586 +// line internal/php5/php5.y:2598 { yyVAL.node = yyDollar[1].node @@ -4794,7 +4816,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2597 +// line internal/php5/php5.y:2609 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4807,13 +4829,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2611 +// line internal/php5/php5.y:2623 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2615 +// line internal/php5/php5.y:2627 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4822,7 +4844,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2625 +// line internal/php5/php5.y:2637 { name := &ast.Identifier{ Node: ast.Node{ @@ -4841,13 +4863,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2642 +// line internal/php5/php5.y:2654 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2649 +// line internal/php5/php5.y:2661 { target := &ast.Identifier{ Node: ast.Node{ @@ -4867,7 +4889,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2670 +// line internal/php5/php5.y:2682 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4887,7 +4909,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2688 +// line internal/php5/php5.y:2700 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4900,19 +4922,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2702 +// line internal/php5/php5.y:2714 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2706 +// line internal/php5/php5.y:2718 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2713 +// line internal/php5/php5.y:2725 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4923,7 +4945,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2722 +// line internal/php5/php5.y:2734 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4936,13 +4958,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2736 +// line internal/php5/php5.y:2748 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2740 +// line internal/php5/php5.y:2752 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4956,31 +4978,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2755 +// line internal/php5/php5.y:2767 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2759 +// line internal/php5/php5.y:2771 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2766 +// line internal/php5/php5.y:2778 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2770 +// line internal/php5/php5.y:2782 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2777 +// line internal/php5/php5.y:2789 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4992,7 +5014,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2787 +// line internal/php5/php5.y:2799 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5004,7 +5026,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2797 +// line internal/php5/php5.y:2809 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5016,7 +5038,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2807 +// line internal/php5/php5.y:2819 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5028,7 +5050,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2817 +// line internal/php5/php5.y:2829 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5040,7 +5062,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2827 +// line internal/php5/php5.y:2839 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5052,7 +5074,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2840 +// line internal/php5/php5.y:2852 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5075,7 +5097,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2861 +// line internal/php5/php5.y:2873 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5099,7 +5121,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2883 +// line internal/php5/php5.y:2895 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5121,7 +5143,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2903 +// line internal/php5/php5.y:2915 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5144,7 +5166,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2927 +// line internal/php5/php5.y:2939 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5170,7 +5192,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2951 +// line internal/php5/php5.y:2963 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5199,7 +5221,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2981 +// line internal/php5/php5.y:2993 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5208,7 +5230,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2988 +// line internal/php5/php5.y:3000 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5216,19 +5238,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2998 +// line internal/php5/php5.y:3010 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3002 +// line internal/php5/php5.y:3014 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3009 +// line internal/php5/php5.y:3021 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5237,25 +5259,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3016 +// line internal/php5/php5.y:3028 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3023 +// line internal/php5/php5.y:3035 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3027 +// line internal/php5/php5.y:3039 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3034 +// line internal/php5/php5.y:3046 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5269,7 +5291,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3046 +// line internal/php5/php5.y:3058 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5283,37 +5305,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3061 +// line internal/php5/php5.y:3073 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3065 +// line internal/php5/php5.y:3077 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3069 +// line internal/php5/php5.y:3081 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3076 +// line internal/php5/php5.y:3088 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3080 +// line internal/php5/php5.y:3092 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3087 +// line internal/php5/php5.y:3099 { if yyDollar[3].node != nil { @@ -5329,7 +5351,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3104 +// line internal/php5/php5.y:3116 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5346,7 +5368,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3131 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5359,7 +5381,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3130 +// line internal/php5/php5.y:3142 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5373,7 +5395,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3142 +// line internal/php5/php5.y:3154 { var _new *ast.ExprNew @@ -5400,7 +5422,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3167 +// line internal/php5/php5.y:3179 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5412,7 +5434,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3177 +// line internal/php5/php5.y:3189 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5424,7 +5446,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3187 +// line internal/php5/php5.y:3199 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5437,7 +5459,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3198 +// line internal/php5/php5.y:3210 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5450,7 +5472,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3209 +// line internal/php5/php5.y:3221 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5463,7 +5485,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3220 +// line internal/php5/php5.y:3232 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5476,7 +5498,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3231 +// line internal/php5/php5.y:3243 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5489,7 +5511,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3242 +// line internal/php5/php5.y:3254 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5502,7 +5524,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3253 +// line internal/php5/php5.y:3265 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5515,7 +5537,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3264 +// line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5528,7 +5550,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3275 +// line internal/php5/php5.y:3287 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5541,7 +5563,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3286 +// line internal/php5/php5.y:3298 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5554,7 +5576,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3297 +// line internal/php5/php5.y:3309 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5567,7 +5589,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3308 +// line internal/php5/php5.y:3320 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5580,7 +5602,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3319 +// line internal/php5/php5.y:3331 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5592,7 +5614,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3329 +// line internal/php5/php5.y:3341 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5605,7 +5627,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3340 +// line internal/php5/php5.y:3352 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5617,7 +5639,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3350 +// line internal/php5/php5.y:3362 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5630,7 +5652,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3361 +// line internal/php5/php5.y:3373 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5643,7 +5665,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3372 +// line internal/php5/php5.y:3384 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5656,7 +5678,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3383 +// line internal/php5/php5.y:3395 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5669,7 +5691,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3394 +// line internal/php5/php5.y:3406 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5682,7 +5704,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3405 +// line internal/php5/php5.y:3417 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5695,7 +5717,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3428 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5708,7 +5730,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3427 +// line internal/php5/php5.y:3439 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5721,7 +5743,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3438 +// line internal/php5/php5.y:3450 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5733,7 +5755,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3448 +// line internal/php5/php5.y:3460 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5746,7 +5768,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3459 +// line internal/php5/php5.y:3471 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5759,7 +5781,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3470 +// line internal/php5/php5.y:3482 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5772,7 +5794,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3481 +// line internal/php5/php5.y:3493 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5785,7 +5807,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3492 +// line internal/php5/php5.y:3504 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5798,7 +5820,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3503 +// line internal/php5/php5.y:3515 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5811,7 +5833,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3514 +// line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5824,7 +5846,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3525 +// line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5837,7 +5859,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3536 +// line internal/php5/php5.y:3548 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5849,7 +5871,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3546 +// line internal/php5/php5.y:3558 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5861,7 +5883,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3556 +// line internal/php5/php5.y:3568 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5873,7 +5895,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3566 +// line internal/php5/php5.y:3578 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5885,7 +5907,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3576 +// line internal/php5/php5.y:3588 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5898,7 +5920,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3587 +// line internal/php5/php5.y:3599 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5911,7 +5933,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3598 +// line internal/php5/php5.y:3610 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5924,7 +5946,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3609 +// line internal/php5/php5.y:3621 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5938,7 +5960,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3621 +// line internal/php5/php5.y:3633 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5951,7 +5973,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3632 +// line internal/php5/php5.y:3644 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5964,7 +5986,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3643 +// line internal/php5/php5.y:3655 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5977,7 +5999,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3654 +// line internal/php5/php5.y:3666 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5990,7 +6012,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3665 +// line internal/php5/php5.y:3677 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6003,19 +6025,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3676 +// line internal/php5/php5.y:3688 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3680 +// line internal/php5/php5.y:3692 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3684 +// line internal/php5/php5.y:3696 { yyVAL.node = yyDollar[2].node @@ -6047,7 +6069,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3714 +// line internal/php5/php5.y:3726 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6061,7 +6083,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3726 +// line internal/php5/php5.y:3738 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6075,13 +6097,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3738 +// line internal/php5/php5.y:3750 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3742 +// line internal/php5/php5.y:3754 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6094,7 +6116,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3753 +// line internal/php5/php5.y:3765 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6107,7 +6129,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3764 +// line internal/php5/php5.y:3776 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6120,7 +6142,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3775 +// line internal/php5/php5.y:3787 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6133,7 +6155,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3786 +// line internal/php5/php5.y:3798 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6146,7 +6168,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3797 +// line internal/php5/php5.y:3809 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6159,7 +6181,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3808 +// line internal/php5/php5.y:3820 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6172,7 +6194,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3819 +// line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6192,7 +6214,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3837 +// line internal/php5/php5.y:3849 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6204,25 +6226,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3847 +// line internal/php5/php5.y:3859 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3851 +// line internal/php5/php5.y:3863 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3855 +// line internal/php5/php5.y:3867 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3859 +// line internal/php5/php5.y:3871 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6234,7 +6256,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3869 +// line internal/php5/php5.y:3881 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6246,7 +6268,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3879 +// line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6258,7 +6280,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3889 +// line internal/php5/php5.y:3901 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6285,7 +6307,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3913 +// line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6313,7 +6335,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3941 +// line internal/php5/php5.y:3953 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6325,7 +6347,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3951 +// line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6337,7 +6359,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3961 +// line internal/php5/php5.y:3973 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6350,7 +6372,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3972 +// line internal/php5/php5.y:3984 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6363,7 +6385,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3986 +// line internal/php5/php5.y:3998 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6376,7 +6398,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3997 +// line internal/php5/php5.y:4009 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6389,7 +6411,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4008 +// line internal/php5/php5.y:4020 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6405,7 +6427,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4022 +// line internal/php5/php5.y:4034 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6418,7 +6440,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4036 +// line internal/php5/php5.y:4048 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6432,7 +6454,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4048 +// line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6445,19 +6467,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4062 +// line internal/php5/php5.y:4074 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4069 +// line internal/php5/php5.y:4081 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4073 +// line internal/php5/php5.y:4085 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6471,7 +6493,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4088 +// line internal/php5/php5.y:4100 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6492,7 +6514,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4107 +// line internal/php5/php5.y:4119 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6516,7 +6538,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4129 +// line internal/php5/php5.y:4141 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6536,7 +6558,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4147 +// line internal/php5/php5.y:4159 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6559,7 +6581,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4171 +// line internal/php5/php5.y:4183 { name := &ast.NameName{ Node: ast.Node{ @@ -6574,7 +6596,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4184 +// line internal/php5/php5.y:4196 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6591,7 +6613,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4199 +// line internal/php5/php5.y:4211 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6607,7 +6629,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4213 +// line internal/php5/php5.y:4225 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6620,7 +6642,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4224 +// line internal/php5/php5.y:4236 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6633,7 +6655,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4235 +// line internal/php5/php5.y:4247 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6646,7 +6668,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4246 +// line internal/php5/php5.y:4258 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6659,7 +6681,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4257 +// line internal/php5/php5.y:4269 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6671,7 +6693,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4270 +// line internal/php5/php5.y:4282 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6683,7 +6705,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4280 +// line internal/php5/php5.y:4292 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6694,7 +6716,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4289 +// line internal/php5/php5.y:4301 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6707,7 +6729,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4300 +// line internal/php5/php5.y:4312 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6719,7 +6741,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4313 +// line internal/php5/php5.y:4325 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6730,7 +6752,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4322 +// line internal/php5/php5.y:4334 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6743,7 +6765,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4333 +// line internal/php5/php5.y:4345 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6755,19 +6777,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4346 +// line internal/php5/php5.y:4358 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4350 +// line internal/php5/php5.y:4362 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4357 +// line internal/php5/php5.y:4369 { yyVAL.node = yyDollar[1].node @@ -6808,25 +6830,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4396 +// line internal/php5/php5.y:4408 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4404 +// line internal/php5/php5.y:4416 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4408 +// line internal/php5/php5.y:4420 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4416 +// line internal/php5/php5.y:4428 { yyVAL.list = yyDollar[2].list @@ -6835,13 +6857,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4426 +// line internal/php5/php5.y:4438 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4430 +// line internal/php5/php5.y:4442 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6857,19 +6879,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4444 +// line internal/php5/php5.y:4456 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4451 +// line internal/php5/php5.y:4463 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4455 +// line internal/php5/php5.y:4467 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6879,25 +6901,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4463 +// line internal/php5/php5.y:4475 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4470 +// line internal/php5/php5.y:4482 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4474 +// line internal/php5/php5.y:4486 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4493 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6909,7 +6931,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4491 +// line internal/php5/php5.y:4503 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6921,7 +6943,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4513 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6933,7 +6955,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4511 +// line internal/php5/php5.y:4523 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6945,7 +6967,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4521 +// line internal/php5/php5.y:4533 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6957,7 +6979,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4531 +// line internal/php5/php5.y:4543 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6969,7 +6991,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4541 +// line internal/php5/php5.y:4553 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6981,7 +7003,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4551 +// line internal/php5/php5.y:4563 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6993,7 +7015,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4561 +// line internal/php5/php5.y:4573 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7005,7 +7027,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4571 +// line internal/php5/php5.y:4583 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7017,7 +7039,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4581 +// line internal/php5/php5.y:4593 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7031,7 +7053,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4593 +// line internal/php5/php5.y:4605 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7043,7 +7065,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4606 +// line internal/php5/php5.y:4618 { target := &ast.Identifier{ Node: ast.Node{ @@ -7063,25 +7085,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4627 +// line internal/php5/php5.y:4639 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4634 +// line internal/php5/php5.y:4646 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4638 +// line internal/php5/php5.y:4650 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4642 +// line internal/php5/php5.y:4654 { name := &ast.NameName{ Node: ast.Node{ @@ -7096,7 +7118,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4655 +// line internal/php5/php5.y:4667 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7113,7 +7135,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4670 +// line internal/php5/php5.y:4682 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7129,7 +7151,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4684 +// line internal/php5/php5.y:4696 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7143,7 +7165,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4696 +// line internal/php5/php5.y:4708 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7156,13 +7178,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4707 +// line internal/php5/php5.y:4719 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4711 +// line internal/php5/php5.y:4723 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7174,13 +7196,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4721 +// line internal/php5/php5.y:4733 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4728 +// line internal/php5/php5.y:4740 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7193,7 +7215,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4739 +// line internal/php5/php5.y:4751 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7206,7 +7228,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4750 +// line internal/php5/php5.y:4762 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7219,7 +7241,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4761 +// line internal/php5/php5.y:4773 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7232,7 +7254,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4772 +// line internal/php5/php5.y:4784 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7245,7 +7267,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4783 +// line internal/php5/php5.y:4795 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7258,7 +7280,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4794 +// line internal/php5/php5.y:4806 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7271,7 +7293,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4805 +// line internal/php5/php5.y:4817 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7283,7 +7305,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4815 +// line internal/php5/php5.y:4827 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7295,7 +7317,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4825 +// line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7308,7 +7330,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4836 +// line internal/php5/php5.y:4848 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7321,7 +7343,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4847 +// line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7334,7 +7356,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4858 +// line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7347,7 +7369,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4869 +// line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7360,7 +7382,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4880 +// line internal/php5/php5.y:4892 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7373,7 +7395,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4891 +// line internal/php5/php5.y:4903 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7386,7 +7408,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4902 +// line internal/php5/php5.y:4914 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7399,7 +7421,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4913 +// line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7412,7 +7434,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4924 +// line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7425,7 +7447,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4935 +// line internal/php5/php5.y:4947 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7438,7 +7460,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4946 +// line internal/php5/php5.y:4958 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7451,7 +7473,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4957 +// line internal/php5/php5.y:4969 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7464,7 +7486,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4968 +// line internal/php5/php5.y:4980 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7477,7 +7499,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4979 +// line internal/php5/php5.y:4991 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7491,7 +7513,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4991 +// line internal/php5/php5.y:5003 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7504,7 +7526,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5002 +// line internal/php5/php5.y:5014 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7517,7 +7539,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5013 +// line internal/php5/php5.y:5025 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7530,7 +7552,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5024 +// line internal/php5/php5.y:5036 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7543,7 +7565,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5035 +// line internal/php5/php5.y:5047 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7557,7 +7579,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5047 +// line internal/php5/php5.y:5059 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7571,7 +7593,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5059 +// line internal/php5/php5.y:5071 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7583,7 +7605,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5069 +// line internal/php5/php5.y:5081 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7595,7 +7617,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5079 +// line internal/php5/php5.y:5091 { yyVAL.node = yyDollar[2].node @@ -7605,13 +7627,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5090 +// line internal/php5/php5.y:5102 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5094 +// line internal/php5/php5.y:5106 { name := &ast.NameName{ Node: ast.Node{ @@ -7626,7 +7648,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5107 +// line internal/php5/php5.y:5119 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7643,7 +7665,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5134 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7659,7 +7681,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5139 +// line internal/php5/php5.y:5151 { name := &ast.Identifier{ Node: ast.Node{ @@ -7678,25 +7700,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5156 +// line internal/php5/php5.y:5168 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5160 +// line internal/php5/php5.y:5172 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5164 +// line internal/php5/php5.y:5176 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5168 +// line internal/php5/php5.y:5180 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7708,7 +7730,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5178 +// line internal/php5/php5.y:5190 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7720,7 +7742,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5188 +// line internal/php5/php5.y:5200 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7732,13 +7754,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5201 +// line internal/php5/php5.y:5213 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5205 +// line internal/php5/php5.y:5217 { yyVAL.list = yyDollar[1].list @@ -7749,19 +7771,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5229 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5221 +// line internal/php5/php5.y:5233 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5228 +// line internal/php5/php5.y:5240 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7776,7 +7798,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5241 +// line internal/php5/php5.y:5253 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7790,7 +7812,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5253 +// line internal/php5/php5.y:5265 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7804,7 +7826,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5265 +// line internal/php5/php5.y:5277 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7817,19 +7839,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5279 +// line internal/php5/php5.y:5291 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5283 +// line internal/php5/php5.y:5295 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5290 +// line internal/php5/php5.y:5302 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7846,7 +7868,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5305 +// line internal/php5/php5.y:5317 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7863,25 +7885,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5324 +// line internal/php5/php5.y:5336 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5332 +// line internal/php5/php5.y:5344 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5339 +// line internal/php5/php5.y:5351 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5346 +// line internal/php5/php5.y:5358 { yyVAL.node = yyDollar[1].node @@ -7939,25 +7961,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5402 +// line internal/php5/php5.y:5414 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5409 +// line internal/php5/php5.y:5421 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5413 +// line internal/php5/php5.y:5425 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5421 +// line internal/php5/php5.y:5433 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7971,7 +7993,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5448 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -7985,7 +8007,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5448 +// line internal/php5/php5.y:5460 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -7999,7 +8021,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5463 +// line internal/php5/php5.y:5475 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8008,31 +8030,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5473 +// line internal/php5/php5.y:5485 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5477 +// line internal/php5/php5.y:5489 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5481 +// line internal/php5/php5.y:5493 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5488 +// line internal/php5/php5.y:5500 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5492 +// line internal/php5/php5.y:5504 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8044,7 +8066,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5505 +// line internal/php5/php5.y:5517 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8057,7 +8079,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5516 +// line internal/php5/php5.y:5528 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8070,13 +8092,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5530 +// line internal/php5/php5.y:5542 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5537 +// line internal/php5/php5.y:5549 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8089,7 +8111,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5548 +// line internal/php5/php5.y:5560 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8102,31 +8124,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5562 +// line internal/php5/php5.y:5574 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5566 +// line internal/php5/php5.y:5578 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5570 +// line internal/php5/php5.y:5582 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5578 +// line internal/php5/php5.y:5590 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5582 +// line internal/php5/php5.y:5594 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8138,13 +8160,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5592 +// line internal/php5/php5.y:5604 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5599 +// line internal/php5/php5.y:5611 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8157,7 +8179,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5622 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8170,13 +8192,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5621 +// line internal/php5/php5.y:5633 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5629 +// line internal/php5/php5.y:5641 { name := &ast.Identifier{ Node: ast.Node{ @@ -8195,7 +8217,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5646 +// line internal/php5/php5.y:5658 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8209,25 +8231,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5661 +// line internal/php5/php5.y:5673 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5665 +// line internal/php5/php5.y:5677 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5673 +// line internal/php5/php5.y:5685 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5677 +// line internal/php5/php5.y:5689 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8237,20 +8259,6 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5688 - { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} - yyVAL.list = append(yyDollar[1].list, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) - } - case 470: - yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5700 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} @@ -8263,9 +8271,23 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } + case 470: + yyDollar = yyS[yypt-4 : yypt+1] +// line internal/php5/php5.y:5712 + { + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + yyVAL.list = append(yyDollar[1].list, fetch) + + // save position + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) + } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5712 +// line internal/php5/php5.y:5724 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8275,7 +8297,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5723 +// line internal/php5/php5.y:5735 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8287,7 +8309,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5733 +// line internal/php5/php5.y:5745 { yyVAL.node = yyDollar[2].node @@ -8300,7 +8322,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5747 +// line internal/php5/php5.y:5759 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8313,7 +8335,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5758 +// line internal/php5/php5.y:5770 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8330,7 +8352,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5776 +// line internal/php5/php5.y:5788 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8343,7 +8365,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5787 +// line internal/php5/php5.y:5799 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8353,7 +8375,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5799 +// line internal/php5/php5.y:5811 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8365,7 +8387,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5809 +// line internal/php5/php5.y:5821 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8381,19 +8403,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5823 +// line internal/php5/php5.y:5835 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5831 +// line internal/php5/php5.y:5843 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5835 +// line internal/php5/php5.y:5847 { yyVAL.list = yyDollar[1].list @@ -8408,7 +8430,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5851 +// line internal/php5/php5.y:5863 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8423,7 +8445,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5864 +// line internal/php5/php5.y:5876 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8437,7 +8459,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5876 +// line internal/php5/php5.y:5888 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8451,7 +8473,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5888 +// line internal/php5/php5.y:5900 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8464,7 +8486,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5899 +// line internal/php5/php5.y:5911 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8482,7 +8504,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5915 +// line internal/php5/php5.y:5927 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8498,7 +8520,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5929 +// line internal/php5/php5.y:5941 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8515,7 +8537,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5944 +// line internal/php5/php5.y:5956 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8530,13 +8552,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5960 +// line internal/php5/php5.y:5972 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5964 +// line internal/php5/php5.y:5976 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8549,13 +8571,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5975 +// line internal/php5/php5.y:5987 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5979 +// line internal/php5/php5.y:5991 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8568,7 +8590,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5993 +// line internal/php5/php5.y:6005 { name := &ast.Identifier{ Node: ast.Node{ @@ -8587,7 +8609,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6010 +// line internal/php5/php5.y:6022 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8609,7 +8631,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6030 +// line internal/php5/php5.y:6042 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8637,7 +8659,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6056 +// line internal/php5/php5.y:6068 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8652,7 +8674,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6069 +// line internal/php5/php5.y:6081 { name := &ast.Identifier{ Node: ast.Node{ @@ -8674,7 +8696,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6089 +// line internal/php5/php5.y:6101 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8698,7 +8720,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6111 +// line internal/php5/php5.y:6123 { yyVAL.node = yyDollar[2].node @@ -8708,7 +8730,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6122 +// line internal/php5/php5.y:6134 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8720,7 +8742,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6132 +// line internal/php5/php5.y:6144 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8737,7 +8759,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6147 +// line internal/php5/php5.y:6159 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8756,7 +8778,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6167 +// line internal/php5/php5.y:6179 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8770,7 +8792,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6179 +// line internal/php5/php5.y:6191 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8792,7 +8814,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6199 +// line internal/php5/php5.y:6211 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8814,7 +8836,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6219 +// line internal/php5/php5.y:6231 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8826,7 +8848,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6229 +// line internal/php5/php5.y:6241 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8838,7 +8860,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6239 +// line internal/php5/php5.y:6251 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8860,7 +8882,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6259 +// line internal/php5/php5.y:6271 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8872,7 +8894,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6269 +// line internal/php5/php5.y:6281 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8884,13 +8906,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6282 +// line internal/php5/php5.y:6294 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6286 +// line internal/php5/php5.y:6298 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8899,19 +8921,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6296 +// line internal/php5/php5.y:6308 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6300 +// line internal/php5/php5.y:6312 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6307 +// line internal/php5/php5.y:6319 { target := &ast.Identifier{ Node: ast.Node{ @@ -8931,7 +8953,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6325 +// line internal/php5/php5.y:6337 { target := &ast.Identifier{ Node: ast.Node{ @@ -8951,7 +8973,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6346 +// line internal/php5/php5.y:6358 { target := &ast.Identifier{ Node: ast.Node{ @@ -8971,7 +8993,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6367 +// line internal/php5/php5.y:6379 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d801635..0e7e6fa 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2060,19 +2060,24 @@ parameter: } } - $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} - + pos := position.NewTokenPosition($4) if $1 != nil { - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) + pos = position.NewNodeTokenPosition($1, $4) } else if $2 != nil { - $$.GetNode().Position = position.NewTokensPosition($2, $4) + pos = position.NewTokensPosition($2, $4) } else if $3 != nil { - $$.GetNode().Position = position.NewTokensPosition($3, $4) - } else { - $$.GetNode().Position = position.NewTokenPosition($4) + pos = position.NewTokensPosition($3, $4) + } + + $$ = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: $1, + Var: variable, } } - | optional_class_type is_reference is_variadic T_VARIABLE '=' static_scalar + | optional_class_type is_reference is_variadic T_VARIABLE '=' expr { identifier := &ast.Identifier{ Node: ast.Node{ @@ -2108,16 +2113,23 @@ parameter: } } - $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} - + pos := position.NewTokenNodePosition($4, $6) if $1 != nil { - $$.GetNode().Position = position.NewNodesPosition($1, $6) + pos = position.NewNodesPosition($1, $6) } else if $2 != nil { - $$.GetNode().Position = position.NewTokenNodePosition($2, $6) + pos = position.NewTokenNodePosition($2, $6) } else if $3 != nil { - $$.GetNode().Position = position.NewTokenNodePosition($3, $6) - } else { - $$.GetNode().Position = position.NewTokenNodePosition($4, $6) + pos = position.NewTokenNodePosition($3, $6) + } + + $$ = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: $1, + Var: variable, + EqualTkn: $5, + DefaultValue: $6, } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index a3ed309..62c54a9 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4957 +// line internal/php7/php7.y:4969 // line yacctab:1 var yyExca = [...]int{ @@ -4275,21 +4275,26 @@ yydefault: } } - yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, nil} - + pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + pos = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) + pos = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) - } else { - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) + pos = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + } + + yyVAL.node = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: yyDollar[1].node, + Var: variable, } } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1900 +// line internal/php7/php7.y:1905 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4325,39 +4330,46 @@ yydefault: } } - yyVAL.node = &ast.Parameter{ast.Node{}, yyDollar[1].node, variable, yyDollar[6].node} - + pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + pos = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + pos = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) - } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) + pos = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) + } + + yyVAL.node = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: yyDollar[1].node, + Var: variable, + EqualTkn: yyDollar[5].token, + DefaultValue: yyDollar[6].node, } } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1951 +// line internal/php7/php7.y:1963 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1955 +// line internal/php7/php7.y:1967 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1962 +// line internal/php7/php7.y:1974 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1966 +// line internal/php7/php7.y:1978 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4369,7 +4381,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1979 +// line internal/php7/php7.y:1991 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4381,7 +4393,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1989 +// line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4393,19 +4405,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1999 +// line internal/php7/php7.y:2011 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2006 +// line internal/php7/php7.y:2018 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2010 +// line internal/php7/php7.y:2022 { yyVAL.node = yyDollar[2].node @@ -4414,7 +4426,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2020 +// line internal/php7/php7.y:2032 { yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} @@ -4427,7 +4439,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2031 +// line internal/php7/php7.y:2043 { yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} @@ -4444,13 +4456,13 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2049 +// line internal/php7/php7.y:2061 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2053 +// line internal/php7/php7.y:2065 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4459,7 +4471,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2063 +// line internal/php7/php7.y:2075 { yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} @@ -4471,7 +4483,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2073 +// line internal/php7/php7.y:2085 { yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} @@ -4483,7 +4495,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2086 +// line internal/php7/php7.y:2098 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4492,7 +4504,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2093 +// line internal/php7/php7.y:2105 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4500,13 +4512,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2102 +// line internal/php7/php7.y:2114 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2109 +// line internal/php7/php7.y:2121 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4515,7 +4527,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2116 +// line internal/php7/php7.y:2128 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4523,7 +4535,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2125 +// line internal/php7/php7.y:2137 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4549,7 +4561,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2149 +// line internal/php7/php7.y:2161 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4576,19 +4588,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2177 +// line internal/php7/php7.y:2189 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2181 +// line internal/php7/php7.y:2193 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2188 +// line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4602,7 +4614,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2200 +// line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4616,7 +4628,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2212 +// line internal/php7/php7.y:2224 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4628,7 +4640,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2222 +// line internal/php7/php7.y:2234 { name := &ast.Identifier{ Node: ast.Node{ @@ -4663,13 +4675,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2258 +// line internal/php7/php7.y:2270 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2262 +// line internal/php7/php7.y:2274 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4683,7 +4695,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2274 +// line internal/php7/php7.y:2286 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4694,7 +4706,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2283 +// line internal/php7/php7.y:2295 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4706,7 +4718,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2293 +// line internal/php7/php7.y:2305 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4718,19 +4730,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2306 +// line internal/php7/php7.y:2318 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2310 +// line internal/php7/php7.y:2322 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2317 +// line internal/php7/php7.y:2329 { yyVAL.node = yyDollar[1].node @@ -4740,7 +4752,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2325 +// line internal/php7/php7.y:2337 { yyVAL.node = yyDollar[1].node @@ -4750,7 +4762,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2336 +// line internal/php7/php7.y:2348 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4763,7 +4775,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2350 +// line internal/php7/php7.y:2362 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4783,7 +4795,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2368 +// line internal/php7/php7.y:2380 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4803,7 +4815,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2386 +// line internal/php7/php7.y:2398 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4823,7 +4835,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2404 +// line internal/php7/php7.y:2416 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4836,7 +4848,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2418 +// line internal/php7/php7.y:2430 { name := &ast.Identifier{ Node: ast.Node{ @@ -4855,13 +4867,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2435 +// line internal/php7/php7.y:2447 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2442 +// line internal/php7/php7.y:2454 { target := &ast.Identifier{ Node: ast.Node{ @@ -4881,7 +4893,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2463 +// line internal/php7/php7.y:2475 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4892,7 +4904,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2472 +// line internal/php7/php7.y:2484 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4905,13 +4917,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2486 +// line internal/php7/php7.y:2498 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2490 +// line internal/php7/php7.y:2502 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4925,31 +4937,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2505 +// line internal/php7/php7.y:2517 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2509 +// line internal/php7/php7.y:2521 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2516 +// line internal/php7/php7.y:2528 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2520 +// line internal/php7/php7.y:2532 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2527 +// line internal/php7/php7.y:2539 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4961,7 +4973,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2537 +// line internal/php7/php7.y:2549 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4973,7 +4985,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2547 +// line internal/php7/php7.y:2559 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4985,7 +4997,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2557 +// line internal/php7/php7.y:2569 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4997,7 +5009,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2567 +// line internal/php7/php7.y:2579 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5009,7 +5021,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2577 +// line internal/php7/php7.y:2589 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5021,7 +5033,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2590 +// line internal/php7/php7.y:2602 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5030,13 +5042,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2597 +// line internal/php7/php7.y:2609 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2604 +// line internal/php7/php7.y:2616 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5057,7 +5069,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2623 +// line internal/php7/php7.y:2635 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5079,7 +5091,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2646 +// line internal/php7/php7.y:2658 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5087,13 +5099,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2652 +// line internal/php7/php7.y:2664 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2659 +// line internal/php7/php7.y:2671 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5114,7 +5126,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2681 +// line internal/php7/php7.y:2693 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5135,7 +5147,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2703 +// line internal/php7/php7.y:2715 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5144,7 +5156,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2710 +// line internal/php7/php7.y:2722 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5152,25 +5164,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2719 +// line internal/php7/php7.y:2731 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2726 +// line internal/php7/php7.y:2738 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2730 +// line internal/php7/php7.y:2742 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2749 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5179,13 +5191,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2744 +// line internal/php7/php7.y:2756 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2751 +// line internal/php7/php7.y:2763 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5203,7 +5215,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2770 +// line internal/php7/php7.y:2782 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5218,7 +5230,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2783 +// line internal/php7/php7.y:2795 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5230,7 +5242,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2796 +// line internal/php7/php7.y:2808 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5247,7 +5259,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2811 +// line internal/php7/php7.y:2823 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5263,7 +5275,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2825 +// line internal/php7/php7.y:2837 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5276,7 +5288,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2836 +// line internal/php7/php7.y:2848 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5290,7 +5302,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2848 +// line internal/php7/php7.y:2860 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5302,7 +5314,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2858 +// line internal/php7/php7.y:2870 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5315,7 +5327,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2869 +// line internal/php7/php7.y:2881 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5328,7 +5340,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2880 +// line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5341,7 +5353,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2891 +// line internal/php7/php7.y:2903 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5354,7 +5366,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2902 +// line internal/php7/php7.y:2914 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5367,7 +5379,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2913 +// line internal/php7/php7.y:2925 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5380,7 +5392,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2924 +// line internal/php7/php7.y:2936 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5393,7 +5405,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2935 +// line internal/php7/php7.y:2947 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5406,7 +5418,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2946 +// line internal/php7/php7.y:2958 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5431,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2957 +// line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5432,7 +5444,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2968 +// line internal/php7/php7.y:2980 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5445,7 +5457,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2979 +// line internal/php7/php7.y:2991 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5458,7 +5470,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2990 +// line internal/php7/php7.y:3002 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5471,7 +5483,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3001 +// line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5484,7 +5496,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3012 +// line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5496,7 +5508,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3022 +// line internal/php7/php7.y:3034 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5509,7 +5521,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3033 +// line internal/php7/php7.y:3045 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5521,7 +5533,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3043 +// line internal/php7/php7.y:3055 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5534,7 +5546,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3054 +// line internal/php7/php7.y:3066 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5547,7 +5559,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3065 +// line internal/php7/php7.y:3077 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5560,7 +5572,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3076 +// line internal/php7/php7.y:3088 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5573,7 +5585,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3087 +// line internal/php7/php7.y:3099 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5586,7 +5598,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3098 +// line internal/php7/php7.y:3110 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5599,7 +5611,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3109 +// line internal/php7/php7.y:3121 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5612,7 +5624,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3120 +// line internal/php7/php7.y:3132 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5625,7 +5637,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3131 +// line internal/php7/php7.y:3143 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5637,7 +5649,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3141 +// line internal/php7/php7.y:3153 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5650,7 +5662,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3152 +// line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5663,7 +5675,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3163 +// line internal/php7/php7.y:3175 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5676,7 +5688,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3174 +// line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5701,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3185 +// line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5714,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3196 +// line internal/php7/php7.y:3208 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5727,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3207 +// line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5740,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3218 +// line internal/php7/php7.y:3230 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5741,7 +5753,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3229 +// line internal/php7/php7.y:3241 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5753,7 +5765,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3239 +// line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5765,7 +5777,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3249 +// line internal/php7/php7.y:3261 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5777,7 +5789,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3259 +// line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5789,7 +5801,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5802,7 +5814,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3280 +// line internal/php7/php7.y:3292 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5815,7 +5827,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3291 +// line internal/php7/php7.y:3303 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5828,7 +5840,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3302 +// line internal/php7/php7.y:3314 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5842,7 +5854,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3314 +// line internal/php7/php7.y:3326 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5855,7 +5867,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3325 +// line internal/php7/php7.y:3337 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5868,7 +5880,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3336 +// line internal/php7/php7.y:3348 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5881,7 +5893,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3347 +// line internal/php7/php7.y:3359 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5894,7 +5906,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3358 +// line internal/php7/php7.y:3370 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5907,7 +5919,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3369 +// line internal/php7/php7.y:3381 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5920,7 +5932,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3380 +// line internal/php7/php7.y:3392 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5937,13 +5949,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3395 +// line internal/php7/php7.y:3407 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3399 +// line internal/php7/php7.y:3411 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5957,7 +5969,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3411 +// line internal/php7/php7.y:3423 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5971,7 +5983,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3423 +// line internal/php7/php7.y:3435 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5984,13 +5996,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3434 +// line internal/php7/php7.y:3446 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3438 +// line internal/php7/php7.y:3450 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6003,7 +6015,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3449 +// line internal/php7/php7.y:3461 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6016,7 +6028,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3460 +// line internal/php7/php7.y:3472 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6029,7 +6041,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3471 +// line internal/php7/php7.y:3483 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6042,7 +6054,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3482 +// line internal/php7/php7.y:3494 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6055,7 +6067,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3493 +// line internal/php7/php7.y:3505 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6068,7 +6080,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3504 +// line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6081,7 +6093,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3515 +// line internal/php7/php7.y:3527 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6101,7 +6113,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3533 +// line internal/php7/php7.y:3545 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6113,13 +6125,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3543 +// line internal/php7/php7.y:3555 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3547 +// line internal/php7/php7.y:3559 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6131,7 +6143,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3557 +// line internal/php7/php7.y:3569 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6143,7 +6155,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3567 +// line internal/php7/php7.y:3579 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6155,7 +6167,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3577 +// line internal/php7/php7.y:3589 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6167,7 +6179,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3587 +// line internal/php7/php7.y:3599 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6180,7 +6192,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3598 +// line internal/php7/php7.y:3610 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6192,13 +6204,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3608 +// line internal/php7/php7.y:3620 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3612 +// line internal/php7/php7.y:3624 { yyVAL.node = yyDollar[2].node @@ -6219,7 +6231,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3633 +// line internal/php7/php7.y:3645 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6250,7 +6262,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3660 +// line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6276,25 +6288,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3690 +// line internal/php7/php7.y:3702 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3694 +// line internal/php7/php7.y:3706 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3701 +// line internal/php7/php7.y:3713 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3705 +// line internal/php7/php7.y:3717 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6308,7 +6320,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3720 +// line internal/php7/php7.y:3732 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6317,13 +6329,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3727 +// line internal/php7/php7.y:3739 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3734 +// line internal/php7/php7.y:3746 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6342,7 +6354,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3751 +// line internal/php7/php7.y:3763 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6364,7 +6376,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3774 +// line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6376,7 +6388,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3784 +// line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6389,7 +6401,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3795 +// line internal/php7/php7.y:3807 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6402,7 +6414,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3806 +// line internal/php7/php7.y:3818 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6414,7 +6426,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3819 +// line internal/php7/php7.y:3831 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6426,31 +6438,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3829 +// line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3836 +// line internal/php7/php7.y:3848 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3840 +// line internal/php7/php7.y:3852 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3847 +// line internal/php7/php7.y:3859 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3851 +// line internal/php7/php7.y:3863 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6467,13 +6479,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3869 +// line internal/php7/php7.y:3881 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3873 +// line internal/php7/php7.y:3885 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6483,25 +6495,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3881 +// line internal/php7/php7.y:3893 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3888 +// line internal/php7/php7.y:3900 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3892 +// line internal/php7/php7.y:3904 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3899 +// line internal/php7/php7.y:3911 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6515,7 +6527,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3911 +// line internal/php7/php7.y:3923 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6528,7 +6540,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3922 +// line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6540,7 +6552,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3935 +// line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6552,7 +6564,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3945 +// line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6564,7 +6576,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3955 +// line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6576,7 +6588,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3965 +// line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6588,7 +6600,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3975 +// line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6600,7 +6612,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3985 +// line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6612,7 +6624,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3995 +// line internal/php7/php7.y:4007 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6624,7 +6636,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4005 +// line internal/php7/php7.y:4017 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6636,7 +6648,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4015 +// line internal/php7/php7.y:4027 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6648,7 +6660,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4025 +// line internal/php7/php7.y:4037 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6660,7 +6672,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4035 +// line internal/php7/php7.y:4047 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6674,7 +6686,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4047 +// line internal/php7/php7.y:4059 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6686,7 +6698,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4057 +// line internal/php7/php7.y:4069 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6698,7 +6710,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4067 +// line internal/php7/php7.y:4079 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6710,19 +6722,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4077 +// line internal/php7/php7.y:4089 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4081 +// line internal/php7/php7.y:4093 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4088 +// line internal/php7/php7.y:4100 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6734,7 +6746,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4098 +// line internal/php7/php7.y:4110 { target := &ast.Identifier{ Node: ast.Node{ @@ -6754,7 +6766,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4116 +// line internal/php7/php7.y:4128 { target := &ast.Identifier{ Node: ast.Node{ @@ -6774,43 +6786,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4137 +// line internal/php7/php7.y:4149 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4141 +// line internal/php7/php7.y:4153 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4148 +// line internal/php7/php7.y:4160 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4152 +// line internal/php7/php7.y:4164 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4159 +// line internal/php7/php7.y:4171 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4166 +// line internal/php7/php7.y:4178 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4170 +// line internal/php7/php7.y:4182 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6827,19 +6839,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4185 +// line internal/php7/php7.y:4197 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4192 +// line internal/php7/php7.y:4204 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4196 +// line internal/php7/php7.y:4208 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6856,19 +6868,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4211 +// line internal/php7/php7.y:4223 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4218 +// line internal/php7/php7.y:4230 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4222 +// line internal/php7/php7.y:4234 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6881,7 +6893,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4233 +// line internal/php7/php7.y:4245 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6894,7 +6906,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4256 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6907,7 +6919,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4255 +// line internal/php7/php7.y:4267 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6920,25 +6932,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4266 +// line internal/php7/php7.y:4278 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4273 +// line internal/php7/php7.y:4285 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4277 +// line internal/php7/php7.y:4289 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4281 +// line internal/php7/php7.y:4293 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6951,7 +6963,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4295 +// line internal/php7/php7.y:4307 { name := &ast.Identifier{ Node: ast.Node{ @@ -6970,7 +6982,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4312 +// line internal/php7/php7.y:4324 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6984,7 +6996,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4324 +// line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6996,7 +7008,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4337 +// line internal/php7/php7.y:4349 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7009,7 +7021,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4348 +// line internal/php7/php7.y:4360 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7022,13 +7034,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4362 +// line internal/php7/php7.y:4374 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4366 +// line internal/php7/php7.y:4378 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7041,7 +7053,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4377 +// line internal/php7/php7.y:4389 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7054,7 +7066,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4388 +// line internal/php7/php7.y:4400 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7067,7 +7079,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4399 +// line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7080,7 +7092,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4410 +// line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7093,7 +7105,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4424 +// line internal/php7/php7.y:4436 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7105,7 +7117,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4434 +// line internal/php7/php7.y:4446 { yyVAL.node = yyDollar[2].node @@ -7115,13 +7127,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4442 +// line internal/php7/php7.y:4454 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4449 +// line internal/php7/php7.y:4461 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7133,7 +7145,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4459 +// line internal/php7/php7.y:4471 { yyVAL.node = yyDollar[2].node @@ -7143,31 +7155,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4467 +// line internal/php7/php7.y:4479 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4474 +// line internal/php7/php7.y:4486 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4481 +// line internal/php7/php7.y:4493 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4485 +// line internal/php7/php7.y:4497 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4492 +// line internal/php7/php7.y:4504 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7180,7 +7192,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4503 +// line internal/php7/php7.y:4515 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7190,7 +7202,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4514 +// line internal/php7/php7.y:4526 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7203,7 +7215,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4525 +// line internal/php7/php7.y:4537 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7215,7 +7227,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4535 +// line internal/php7/php7.y:4547 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7231,7 +7243,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4549 +// line internal/php7/php7.y:4561 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7245,7 +7257,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4561 +// line internal/php7/php7.y:4573 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7257,7 +7269,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4571 +// line internal/php7/php7.y:4583 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7276,7 +7288,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4588 +// line internal/php7/php7.y:4600 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7293,13 +7305,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4606 +// line internal/php7/php7.y:4618 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4610 +// line internal/php7/php7.y:4622 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7312,13 +7324,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4621 +// line internal/php7/php7.y:4633 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4625 +// line internal/php7/php7.y:4637 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7331,7 +7343,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4639 +// line internal/php7/php7.y:4651 { name := &ast.Identifier{ Node: ast.Node{ @@ -7350,7 +7362,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4656 +// line internal/php7/php7.y:4668 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7372,7 +7384,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4676 +// line internal/php7/php7.y:4688 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7400,7 +7412,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4702 +// line internal/php7/php7.y:4714 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7415,7 +7427,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4715 +// line internal/php7/php7.y:4727 { name := &ast.Identifier{ Node: ast.Node{ @@ -7437,7 +7449,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4735 +// line internal/php7/php7.y:4747 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7461,7 +7473,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4757 +// line internal/php7/php7.y:4769 { yyVAL.node = yyDollar[2].node @@ -7471,7 +7483,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4768 +// line internal/php7/php7.y:4780 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7483,7 +7495,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4778 +// line internal/php7/php7.y:4790 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7500,7 +7512,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4793 +// line internal/php7/php7.y:4805 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7526,7 +7538,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4817 +// line internal/php7/php7.y:4829 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7545,7 +7557,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4837 +// line internal/php7/php7.y:4849 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7563,7 +7575,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4853 +// line internal/php7/php7.y:4865 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7585,7 +7597,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4873 +// line internal/php7/php7.y:4885 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7597,7 +7609,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4883 +// line internal/php7/php7.y:4895 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7609,7 +7621,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4893 +// line internal/php7/php7.y:4905 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7631,7 +7643,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4913 +// line internal/php7/php7.y:4925 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7643,7 +7655,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4923 +// line internal/php7/php7.y:4935 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7655,13 +7667,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4936 +// line internal/php7/php7.y:4948 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4940 +// line internal/php7/php7.y:4952 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7670,7 +7682,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4950 +// line internal/php7/php7.y:4962 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 602859b..586a9aa 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1884,16 +1884,21 @@ parameter: } } - $$ = &ast.Parameter{ast.Node{}, $1, variable, nil} - + pos := position.NewTokenPosition($4) if $1 != nil { - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) + pos = position.NewNodeTokenPosition($1, $4) } else if $2 != nil { - $$.GetNode().Position = position.NewTokensPosition($2, $4) + pos = position.NewTokensPosition($2, $4) } else if $3 != nil { - $$.GetNode().Position = position.NewTokensPosition($3, $4) - } else { - $$.GetNode().Position = position.NewTokenPosition($4) + pos = position.NewTokensPosition($3, $4) + } + + $$ = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: $1, + Var: variable, } } | optional_type is_reference is_variadic T_VARIABLE '=' expr @@ -1932,16 +1937,23 @@ parameter: } } - $$ = &ast.Parameter{ast.Node{}, $1, variable, $6} - + pos := position.NewTokenNodePosition($4, $6) if $1 != nil { - $$.GetNode().Position = position.NewNodesPosition($1, $6) + pos = position.NewNodesPosition($1, $6) } else if $2 != nil { - $$.GetNode().Position = position.NewTokenNodePosition($2, $6) + pos = position.NewTokenNodePosition($2, $6) } else if $3 != nil { - $$.GetNode().Position = position.NewTokenNodePosition($3, $6) - } else { - $$.GetNode().Position = position.NewTokenNodePosition($4, $6) + pos = position.NewTokenNodePosition($3, $6) + } + + $$ = &ast.Parameter{ + Node: ast.Node{ + Position: pos, + }, + Type: $1, + Var: variable, + EqualTkn: $5, + DefaultValue: $6, } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 5242bf6..8d4b885 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -68,6 +68,7 @@ type Parameter struct { Node Type Vertex Var Vertex + EqualTkn *token.Token DefaultValue Vertex } From 7e2965f53b0f48b94d03ccace652839f65eaf2b1 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 22:57:27 +0200 Subject: [PATCH 072/140] [refactoring] update ast structure of "Argument" and "ArgumentList" nodes --- internal/php5/php5.go | 1330 +++++++++++++++++---------------- internal/php5/php5.y | 120 +-- internal/php7/php7.go | 1233 +++++++++++++++--------------- internal/php7/php7.y | 73 +- pkg/ast/node.go | 11 +- pkg/ast/visitor/dump.go | 10 - pkg/printer/pretty_printer.go | 4 +- pkg/printer/printer.go | 4 +- 8 files changed, 1386 insertions(+), 1399 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 199faec..1e89fea 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6398 +// line internal/php5/php5.y:6400 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -701,14 +701,14 @@ var yyAct = [...]int{ 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, 521, 259, 572, 591, 685, 994, 283, 572, 996, 285, 260, 261, 255, 840, 998, 980, 995, 260, 261, 965, - 964, 903, 483, 39, 572, 1012, 531, 896, 839, 1013, - 836, 566, 531, 531, 993, 572, 1016, 518, 716, 1006, + 964, 903, 896, 39, 572, 1012, 531, 839, 836, 1013, + 566, 1006, 531, 531, 993, 572, 1016, 518, 716, 1005, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 1005, 725, 259, 446, 231, 31, 231, 256, 654, - 531, 341, 296, 656, 655, 39, 260, 261, 449, 698, - 538, 39, 929, 657, 659, 660, 676, 677, 666, 290, - 147, 151, 155, 460, 318, 314, 165, 127, 478, 403, - 575, 401, 335, 945, 198, 1009, 343, 394, 389, 206, + 679, 725, 341, 259, 446, 231, 31, 231, 256, 654, + 531, 698, 296, 656, 655, 39, 260, 261, 449, 538, + 929, 39, 290, 657, 659, 660, 676, 677, 666, 460, + 147, 151, 155, 318, 314, 127, 165, 403, 478, 575, + 401, 335, 945, 1009, 198, 483, 343, 394, 389, 206, 939, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, @@ -1617,39 +1617,39 @@ var yyPgo = [...]int{ 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, - 1075, 12, 1073, 1072, 7, 21, 1071, 1070, 1069, 14, - 39, 0, 1067, 1065, 1064, 391, 619, 1063, 1059, 41, - 4, 1052, 1050, 1049, 1041, 30, 52, 1032, 1031, 1019, - 3, 1011, 15, 1010, 1008, 1007, 25, 1002, 1001, 1000, + 1075, 1073, 12, 1072, 1071, 7, 21, 1070, 1069, 1067, + 14, 39, 0, 1065, 1064, 1063, 391, 619, 1059, 1052, + 41, 4, 1050, 1049, 1041, 1032, 30, 52, 1031, 1019, + 1011, 3, 1010, 15, 1008, 1007, 1002, 25, 1001, 1000, 999, 996, 993, 992, 17, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, 960, 923, } var yyR1 = [...]int{ - 0, 151, 100, 100, 101, 101, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 102, 102, - 6, 6, 6, 6, 103, 103, 7, 7, 7, 7, - 104, 104, 8, 8, 8, 8, 55, 55, 105, 105, + 0, 151, 101, 101, 102, 102, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 103, 103, + 6, 6, 6, 6, 104, 104, 7, 7, 7, 7, + 105, 105, 8, 8, 8, 8, 55, 55, 106, 106, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 117, 117, 60, 60, 118, - 118, 119, 119, 61, 87, 87, 58, 53, 54, 149, + 28, 28, 28, 28, 28, 118, 118, 60, 60, 119, + 119, 120, 120, 61, 87, 87, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 96, 96, 2, 98, 98, 97, 97, 126, 126, 95, - 95, 94, 94, 94, 92, 92, 91, 91, 59, 59, - 88, 88, 89, 89, 89, 89, 116, 116, 116, 4, - 4, 93, 93, 112, 112, 113, 113, 56, 56, 57, - 57, 120, 120, 121, 121, 65, 65, 64, 64, 64, - 64, 84, 84, 84, 127, 127, 70, 70, 70, 70, - 82, 82, 29, 29, 29, 81, 81, 81, 81, 122, - 122, 67, 67, 67, 67, 69, 128, 128, 86, 86, + 97, 97, 2, 99, 99, 98, 98, 127, 127, 96, + 96, 95, 95, 95, 93, 93, 92, 92, 59, 59, + 88, 88, 89, 89, 89, 89, 117, 117, 117, 4, + 4, 94, 94, 113, 113, 114, 114, 56, 56, 57, + 57, 121, 121, 122, 122, 65, 65, 64, 64, 64, + 64, 84, 84, 84, 90, 90, 70, 70, 70, 70, + 82, 82, 29, 29, 29, 81, 81, 81, 81, 123, + 123, 67, 67, 67, 67, 69, 128, 128, 86, 86, 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 90, 90, 123, 123, - 124, 124, 132, 132, 77, 77, 77, 77, 77, 77, - 125, 125, 125, 125, 68, 68, 85, 85, 115, 115, - 114, 114, 138, 138, 136, 136, 137, 137, 137, 139, + 75, 74, 73, 73, 76, 76, 91, 91, 124, 124, + 125, 125, 132, 132, 77, 77, 77, 77, 77, 77, + 126, 126, 126, 126, 68, 68, 85, 85, 116, 116, + 115, 115, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1658,8 +1658,8 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 99, 99, 111, - 111, 111, 111, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 100, 100, 112, + 112, 112, 112, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1674,11 +1674,11 @@ var yyR1 = [...]int{ 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 110, 110, 40, 40, - 40, 109, 109, 108, 108, 108, 108, 108, 108, 108, - 108, 106, 106, 106, 106, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 111, 111, 40, 40, + 40, 110, 110, 109, 109, 109, 109, 109, 109, 109, + 109, 107, 107, 107, 107, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 107, 107, 38, 38, 32, 32, 33, + 39, 39, 39, 108, 108, 38, 38, 32, 32, 33, 34, } @@ -1739,7 +1739,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -100, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -101, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1749,10 +1749,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -101, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -102, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -101, 144, 83, 10, -102, 37, 39, - -6, -101, 83, 146, 160, 147, 10, -105, -50, 148, + 159, 12, 148, -102, 144, 83, 10, -103, 37, 39, + -6, -102, 83, 146, 160, 147, 10, -106, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1761,87 +1761,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -101, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -102, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -133, 17, -106, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -101, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -107, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -102, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -106, 17, 17, 76, -106, 150, 148, -109, - -108, -16, 153, 150, 150, 83, -84, 148, -101, 79, + -16, 150, -107, 17, 17, 76, -107, 150, 148, -110, + -109, -16, 153, 150, 150, 83, -84, 148, -102, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -100, -101, 146, 160, -103, -7, -101, 83, -104, -8, - -101, 83, 29, -101, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -93, -27, 147, 21, -149, - -115, -114, -16, -89, 144, 147, 146, 146, 146, 146, + -101, -102, 146, 160, -104, -7, -102, 83, -105, -8, + -102, 83, 29, -102, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -94, -27, 147, 21, -149, + -116, -115, -16, -89, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -87, - -58, -21, -21, -17, -88, 10, -105, 146, 146, 10, - 148, -96, 56, -98, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -88, 10, -106, 146, 146, 10, + 148, -97, 56, -99, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -110, -40, -21, 60, 83, -101, 79, 79, 149, 149, + -111, -40, -21, 60, 83, -102, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -101, 58, -12, 79, - -107, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -109, 151, -3, 160, 59, -19, -21, -15, - -15, 10, 149, -127, -52, -70, -17, -21, 153, 84, + 10, 144, -83, -84, 79, 83, -102, 58, -12, 79, + -108, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -110, 151, -3, 160, 59, -19, -21, -15, + -15, 10, 149, -90, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -100, 145, -84, -6, 146, 160, 29, -101, - 146, 160, 29, -101, 10, 29, 162, -30, -79, -9, - -33, -101, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -112, -105, - -105, -50, 146, 160, -116, 146, -116, 146, -29, -16, + -16, 146, -101, 145, -84, -6, 146, 160, 29, -102, + 146, 160, 29, -102, 10, 29, 162, -30, -79, -9, + -33, -102, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -113, -106, + -106, -50, 146, 160, -117, 146, -117, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, - 149, 160, 162, 145, 148, -120, -121, -65, -64, 61, - 62, -47, -101, 80, 83, -97, 57, -47, 144, -126, - -47, -17, -21, -21, 92, 149, 160, 148, -101, -139, + 149, 160, 162, 145, 148, -121, -122, -65, -64, 61, + 62, -47, -102, 80, 83, -98, 57, -47, 144, -127, + -47, -17, -21, -21, 92, 149, 160, 148, -102, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -101, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -102, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -101, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -113, 22, - 146, -115, -16, 145, 32, 33, -116, 31, -116, 145, - 162, -120, -16, 146, -58, -94, -21, 153, 60, -94, - -59, -27, 147, 10, -30, -117, 42, -120, 149, 160, - -149, 83, -101, 144, -126, -122, 160, -45, 162, -40, - -110, 150, -138, -140, -15, -143, 151, -16, -147, 150, + 152, 83, -102, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -114, 22, + 146, -116, -16, 145, 32, 33, -117, 31, -117, 145, + 162, -121, -16, 146, -58, -95, -21, 153, 60, -95, + -59, -27, 147, 10, -30, -118, 42, -121, 149, 160, + -149, 83, -102, 144, -127, -123, 160, -45, 162, -40, + -111, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -101, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -102, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -95, 59, -21, 148, - -95, -105, 162, -60, 43, 148, 149, -99, 45, -65, - -150, 84, -101, -122, 145, -67, -123, -68, -69, -124, + 146, 145, 146, 31, -30, 149, -96, 59, -21, 148, + -96, -106, 162, -60, 43, 148, 149, -100, 45, -65, + -150, 84, -102, -123, 145, -67, -124, -68, -69, -125, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -115, -4, - -105, 146, -99, 149, -94, -110, 149, 28, -30, 144, - -47, 144, 144, 148, 12, 145, -125, 12, 146, 160, + 147, 149, -79, -79, -27, 96, -50, 147, -116, -4, + -106, 146, -100, 149, -95, -111, 149, 28, -30, 144, + -47, 144, 144, 148, 12, 145, -126, 12, 146, 160, -1, -77, 10, -128, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -105, 149, -105, 144, -91, - -27, 147, 149, -91, 146, -105, 12, -105, -105, -111, + -19, -79, 59, 146, 147, -106, 149, -106, 144, -92, + -27, 147, 149, -92, 146, -106, 12, -106, -106, -112, 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, - 160, 146, 144, -79, -105, -92, -27, 147, -105, -105, + 160, 146, 144, -79, -106, -93, -27, 147, -106, -106, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -105, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -106, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -105, 12, -30, -120, -131, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -118, -119, -61, 42, -90, - 146, 144, -47, -61, 148, -105, -47, 145, 12, 149, - 144, -105, 145, + 146, -106, 12, -30, -121, -131, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -119, -120, -61, 42, -91, + 146, 144, -47, -61, 148, -106, -47, 145, 12, 149, + 144, -106, 145, } var yyDef = [...]int{ @@ -2326,7 +2326,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:275 + // line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2335,7 +2335,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:285 + // line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2348,13 +2348,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:296 + // line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:303 + // line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2368,7 +2368,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:315 + // line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2381,32 +2381,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:329 + // line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:346 + // line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2420,7 +2420,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:358 + // line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2438,7 +2438,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:374 + // line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2458,7 +2458,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:392 + // line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2472,7 +2472,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:404 + // line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2485,7 +2485,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:415 + // line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2505,7 +2505,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:433 + // line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2525,7 +2525,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:451 + // line internal/php5/php5.y:451 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2533,7 +2533,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:460 + // line internal/php5/php5.y:460 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2541,13 +2541,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:466 + // line internal/php5/php5.y:466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:473 + // line internal/php5/php5.y:473 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2563,7 +2563,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:487 + // line internal/php5/php5.y:487 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2587,7 +2587,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:509 + // line internal/php5/php5.y:509 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2604,7 +2604,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:524 + // line internal/php5/php5.y:524 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:550 + // line internal/php5/php5.y:550 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2637,13 +2637,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:556 + // line internal/php5/php5.y:556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:563 + // line internal/php5/php5.y:563 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2659,7 +2659,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:577 + // line internal/php5/php5.y:577 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2683,7 +2683,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:599 + // line internal/php5/php5.y:599 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2700,7 +2700,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:614 + // line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2725,7 +2725,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:640 + // line internal/php5/php5.y:640 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2733,13 +2733,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:646 + // line internal/php5/php5.y:646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:653 + // line internal/php5/php5.y:653 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:667 + // line internal/php5/php5.y:667 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2779,7 +2779,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:689 + // line internal/php5/php5.y:689 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2796,7 +2796,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:704 + // line internal/php5/php5.y:704 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:730 + // line internal/php5/php5.y:730 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2847,7 +2847,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:754 + // line internal/php5/php5.y:754 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2876,7 +2876,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:784 + // line internal/php5/php5.y:784 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2889,38 +2889,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:795 + // line internal/php5/php5.y:795 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:803 + // line internal/php5/php5.y:803 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:808 + // line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:812 + // line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:820 + // line internal/php5/php5.y:820 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2934,13 +2934,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:836 + // line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:840 + // line internal/php5/php5.y:840 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2958,7 +2958,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:859 + // line internal/php5/php5.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2971,7 +2971,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:870 + // line internal/php5/php5.y:870 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2995,7 +2995,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:892 + // line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3021,7 +3021,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:916 + // line internal/php5/php5.y:916 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3033,7 +3033,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:926 + // line internal/php5/php5.y:926 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3050,7 +3050,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:941 + // line internal/php5/php5.y:941 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3066,7 +3066,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:955 + // line internal/php5/php5.y:955 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3078,7 +3078,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:965 + // line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3090,7 +3090,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:975 + // line internal/php5/php5.y:975 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3103,7 +3103,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:986 + // line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3115,7 +3115,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:996 + // line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3128,7 +3128,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1007 + // line internal/php5/php5.y:1007 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3140,7 +3140,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1017 + // line internal/php5/php5.y:1017 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3153,7 +3153,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1028 + // line internal/php5/php5.y:1028 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3166,7 +3166,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1039 + // line internal/php5/php5.y:1039 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3180,7 +3180,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1051 + // line internal/php5/php5.y:1051 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3191,7 +3191,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1060 + // line internal/php5/php5.y:1060 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3202,7 +3202,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1069 + // line internal/php5/php5.y:1069 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3212,7 +3212,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1077 + // line internal/php5/php5.y:1077 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3224,7 +3224,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1087 + // line internal/php5/php5.y:1087 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3238,7 +3238,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1099 + // line internal/php5/php5.y:1099 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3250,7 +3250,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1109 + // line internal/php5/php5.y:1109 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3270,7 +3270,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1127 + // line internal/php5/php5.y:1127 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3290,7 +3290,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1145 + // line internal/php5/php5.y:1145 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3303,7 +3303,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1156 + // line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3314,7 +3314,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1165 + // line internal/php5/php5.y:1165 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3333,7 +3333,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3346,7 +3346,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1193 + // line internal/php5/php5.y:1193 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3365,13 +3365,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1213 + // line internal/php5/php5.y:1213 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1217 + // line internal/php5/php5.y:1217 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3404,13 +3404,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1251 + // line internal/php5/php5.y:1251 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1255 + // line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3424,31 +3424,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1270 + // line internal/php5/php5.y:1270 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1274 + // line internal/php5/php5.y:1274 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1281 + // line internal/php5/php5.y:1281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1285 + // line internal/php5/php5.y:1285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1292 + // line internal/php5/php5.y:1292 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3480,7 +3480,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1325 + // line internal/php5/php5.y:1325 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3488,7 +3488,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1331 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3497,49 +3497,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1341 + // line internal/php5/php5.y:1341 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1362 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1366 + // line internal/php5/php5.y:1366 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1373 + // line internal/php5/php5.y:1373 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1377 + // line internal/php5/php5.y:1377 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1384 + // line internal/php5/php5.y:1384 { name := &ast.Identifier{ Node: ast.Node{ @@ -3564,7 +3564,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1410 + // line internal/php5/php5.y:1410 { name := &ast.Identifier{ Node: ast.Node{ @@ -3596,7 +3596,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1440 + // line internal/php5/php5.y:1440 { name := &ast.Identifier{ Node: ast.Node{ @@ -3617,7 +3617,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1463 + // line internal/php5/php5.y:1463 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3629,7 +3629,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1473 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3649,7 +3649,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1491 + // line internal/php5/php5.y:1491 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3661,7 +3661,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1501 + // line internal/php5/php5.y:1501 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3681,13 +3681,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1522 + // line internal/php5/php5.y:1522 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1526 + // line internal/php5/php5.y:1526 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3699,19 +3699,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1539 + // line internal/php5/php5.y:1539 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1546 + // line internal/php5/php5.y:1546 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1550 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3723,13 +3723,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1563 + // line internal/php5/php5.y:1563 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1567 + // line internal/php5/php5.y:1567 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3741,13 +3741,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1580 + // line internal/php5/php5.y:1580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1584 + // line internal/php5/php5.y:1584 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3761,13 +3761,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1596 + // line internal/php5/php5.y:1596 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1600 + // line internal/php5/php5.y:1600 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3776,13 +3776,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1610 + // line internal/php5/php5.y:1610 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1614 + // line internal/php5/php5.y:1614 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3794,7 +3794,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1624 + // line internal/php5/php5.y:1624 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3808,7 +3808,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1639 + // line internal/php5/php5.y:1639 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3819,7 +3819,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1648 + // line internal/php5/php5.y:1648 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3839,7 +3839,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1669 + // line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3850,7 +3850,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1678 + // line internal/php5/php5.y:1678 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3870,7 +3870,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1700 + // line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3881,7 +3881,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1709 + // line internal/php5/php5.y:1709 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3901,7 +3901,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1731 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3926,7 +3926,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1754 + // line internal/php5/php5.y:1754 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3953,7 +3953,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1783 + // line internal/php5/php5.y:1783 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3966,7 +3966,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1794 + // line internal/php5/php5.y:1794 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3980,7 +3980,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1806 + // line internal/php5/php5.y:1806 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3995,7 +3995,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1819 + // line internal/php5/php5.y:1819 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4011,13 +4011,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1837 + // line internal/php5/php5.y:1837 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1841 + // line internal/php5/php5.y:1841 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4031,7 +4031,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1853 + // line internal/php5/php5.y:1853 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4044,19 +4044,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1868 + // line internal/php5/php5.y:1868 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1872 + // line internal/php5/php5.y:1872 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1880 + // line internal/php5/php5.y:1880 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4067,7 +4067,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1889 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4087,13 +4087,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1912 + // line internal/php5/php5.y:1912 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1916 + // line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4108,13 +4108,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1933 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1937 + // line internal/php5/php5.y:1937 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4136,13 +4136,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1961 + // line internal/php5/php5.y:1961 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1965 + // line internal/php5/php5.y:1965 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4154,13 +4154,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1979 + // line internal/php5/php5.y:1979 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1983 + // line internal/php5/php5.y:1983 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4179,25 +4179,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2004 + // line internal/php5/php5.y:2004 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2008 + // line internal/php5/php5.y:2008 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2015 + // line internal/php5/php5.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4206,7 +4206,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2029 + // line internal/php5/php5.y:2029 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4260,7 +4260,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2081 + // line internal/php5/php5.y:2081 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4317,13 +4317,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2140 + // line internal/php5/php5.y:2140 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2144 + // line internal/php5/php5.y:2144 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4335,7 +4335,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2154 + // line internal/php5/php5.y:2154 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4347,117 +4347,119 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2164 + // line internal/php5/php5.y:2164 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2172 + // line internal/php5/php5.y:2172 { - yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + CloseParenthesisTkn: yyDollar[2].token, + } } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2183 + // line internal/php5/php5.y:2182 { - yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} + argumentList := yyDollar[2].node.(*ast.ArgumentList) + argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + argumentList.OpenParenthesisTkn = yyDollar[1].token + argumentList.CloseParenthesisTkn = yyDollar[3].token - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = argumentList } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2194 + // line internal/php5/php5.y:2191 { - arg := &ast.Argument{ast.Node{}, false, false, yyDollar[2].node} - yyVAL.node = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} - - // save position - arg.GetNode().Position = position.NewNodePosition(yyDollar[2].node) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[2].node), + }, + Expr: yyDollar[2].node, + }, + }, + CloseParenthesisTkn: yyDollar[3].token, + } } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2213 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ArgumentList{ + Arguments: []ast.Vertex{yyDollar[1].node}, + } } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2215 + // line internal/php5/php5.y:2219 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2225 + // line internal/php5/php5.y:2229 { - yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Expr: yyDollar[1].node, + } } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2235 + // line internal/php5/php5.y:2238 { - yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Expr: yyDollar[1].node, + } } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2245 + // line internal/php5/php5.y:2247 { - yyVAL.node = &ast.Argument{ast.Node{}, false, true, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + AmpersandTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2255 + // line internal/php5/php5.y:2257 { - yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + VariadicTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2268 + // line internal/php5/php5.y:2270 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4466,7 +4468,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2275 + // line internal/php5/php5.y:2277 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4474,7 +4476,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2285 + // line internal/php5/php5.y:2287 { name := &ast.Identifier{ Node: ast.Node{ @@ -4493,7 +4495,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2302 + // line internal/php5/php5.y:2304 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4505,7 +4507,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2312 + // line internal/php5/php5.y:2314 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4519,7 +4521,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2328 + // line internal/php5/php5.y:2330 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4548,7 +4550,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2355 + // line internal/php5/php5.y:2357 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4579,7 +4581,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2386 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4609,7 +4611,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2412 + // line internal/php5/php5.y:2414 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4641,19 +4643,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2448 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2450 + // line internal/php5/php5.y:2452 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2458 + // line internal/php5/php5.y:2460 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4667,7 +4669,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2470 + // line internal/php5/php5.y:2472 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4675,13 +4677,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2476 + // line internal/php5/php5.y:2478 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2480 + // line internal/php5/php5.y:2482 { name := &ast.Identifier{ Node: ast.Node{ @@ -4717,7 +4719,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2517 + // line internal/php5/php5.y:2519 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4729,13 +4731,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2530 + // line internal/php5/php5.y:2532 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2534 + // line internal/php5/php5.y:2536 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4749,7 +4751,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2546 + // line internal/php5/php5.y:2548 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4760,7 +4762,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2555 + // line internal/php5/php5.y:2557 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4772,31 +4774,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2570 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2572 + // line internal/php5/php5.y:2574 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2579 + // line internal/php5/php5.y:2581 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2583 + // line internal/php5/php5.y:2585 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2590 + // line internal/php5/php5.y:2592 { yyVAL.node = yyDollar[1].node @@ -4806,7 +4808,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2598 + // line internal/php5/php5.y:2600 { yyVAL.node = yyDollar[1].node @@ -4816,7 +4818,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2609 + // line internal/php5/php5.y:2611 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4829,13 +4831,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2623 + // line internal/php5/php5.y:2625 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2627 + // line internal/php5/php5.y:2629 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4844,7 +4846,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2637 + // line internal/php5/php5.y:2639 { name := &ast.Identifier{ Node: ast.Node{ @@ -4863,13 +4865,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2656 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2661 + // line internal/php5/php5.y:2663 { target := &ast.Identifier{ Node: ast.Node{ @@ -4889,7 +4891,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2682 + // line internal/php5/php5.y:2684 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4909,7 +4911,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2700 + // line internal/php5/php5.y:2702 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4922,19 +4924,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2714 + // line internal/php5/php5.y:2716 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2718 + // line internal/php5/php5.y:2720 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2725 + // line internal/php5/php5.y:2727 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4945,7 +4947,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2734 + // line internal/php5/php5.y:2736 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4958,13 +4960,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2748 + // line internal/php5/php5.y:2750 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2752 + // line internal/php5/php5.y:2754 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4978,31 +4980,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2767 + // line internal/php5/php5.y:2769 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2771 + // line internal/php5/php5.y:2773 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2780 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2782 + // line internal/php5/php5.y:2784 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2789 + // line internal/php5/php5.y:2791 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5014,7 +5016,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2799 + // line internal/php5/php5.y:2801 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5026,7 +5028,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2809 + // line internal/php5/php5.y:2811 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5038,7 +5040,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2819 + // line internal/php5/php5.y:2821 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5050,7 +5052,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2829 + // line internal/php5/php5.y:2831 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5062,7 +5064,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2839 + // line internal/php5/php5.y:2841 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5074,7 +5076,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2852 + // line internal/php5/php5.y:2854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5097,7 +5099,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2873 + // line internal/php5/php5.y:2875 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5121,7 +5123,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2895 + // line internal/php5/php5.y:2897 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5143,7 +5145,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2915 + // line internal/php5/php5.y:2917 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5166,7 +5168,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2939 + // line internal/php5/php5.y:2941 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5192,7 +5194,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2963 + // line internal/php5/php5.y:2965 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5221,7 +5223,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2993 + // line internal/php5/php5.y:2995 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5230,7 +5232,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3000 + // line internal/php5/php5.y:3002 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5238,19 +5240,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3010 + // line internal/php5/php5.y:3012 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3014 + // line internal/php5/php5.y:3016 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3021 + // line internal/php5/php5.y:3023 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5259,25 +5261,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3030 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3035 + // line internal/php5/php5.y:3037 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3039 + // line internal/php5/php5.y:3041 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3046 + // line internal/php5/php5.y:3048 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5291,7 +5293,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3058 + // line internal/php5/php5.y:3060 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5305,37 +5307,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3073 + // line internal/php5/php5.y:3075 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3077 + // line internal/php5/php5.y:3079 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3081 + // line internal/php5/php5.y:3083 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3088 + // line internal/php5/php5.y:3090 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3092 + // line internal/php5/php5.y:3094 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3099 + // line internal/php5/php5.y:3101 { if yyDollar[3].node != nil { @@ -5351,7 +5353,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3116 + // line internal/php5/php5.y:3118 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5368,7 +5370,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3131 + // line internal/php5/php5.y:3133 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5381,7 +5383,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3142 + // line internal/php5/php5.y:3144 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5395,7 +5397,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3154 + // line internal/php5/php5.y:3156 { var _new *ast.ExprNew @@ -5422,7 +5424,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3179 + // line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5434,7 +5436,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3189 + // line internal/php5/php5.y:3191 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5446,7 +5448,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3199 + // line internal/php5/php5.y:3201 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5459,7 +5461,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3210 + // line internal/php5/php5.y:3212 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5472,7 +5474,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3221 + // line internal/php5/php5.y:3223 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5485,7 +5487,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3232 + // line internal/php5/php5.y:3234 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5498,7 +5500,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3243 + // line internal/php5/php5.y:3245 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5511,7 +5513,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3254 + // line internal/php5/php5.y:3256 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5524,7 +5526,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3265 + // line internal/php5/php5.y:3267 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5539,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3278 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5552,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3287 + // line internal/php5/php5.y:3289 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5565,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3298 + // line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5578,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3309 + // line internal/php5/php5.y:3311 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5591,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3320 + // line internal/php5/php5.y:3322 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5602,7 +5604,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3333 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5614,7 +5616,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3341 + // line internal/php5/php5.y:3343 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5627,7 +5629,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3352 + // line internal/php5/php5.y:3354 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5639,7 +5641,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3362 + // line internal/php5/php5.y:3364 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5652,7 +5654,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3373 + // line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5667,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3384 + // line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5678,7 +5680,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3395 + // line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5691,7 +5693,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3406 + // line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5706,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3417 + // line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5717,7 +5719,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3428 + // line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5730,7 +5732,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3439 + // line internal/php5/php5.y:3441 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,7 +5745,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3450 + // line internal/php5/php5.y:3452 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5755,7 +5757,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3460 + // line internal/php5/php5.y:3462 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5770,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3471 + // line internal/php5/php5.y:3473 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5781,7 +5783,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3482 + // line internal/php5/php5.y:3484 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5794,7 +5796,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3493 + // line internal/php5/php5.y:3495 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5809,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3504 + // line internal/php5/php5.y:3506 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5822,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3515 + // line internal/php5/php5.y:3517 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5835,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3526 + // line internal/php5/php5.y:3528 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5846,7 +5848,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3537 + // line internal/php5/php5.y:3539 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5861,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3548 + // line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5871,7 +5873,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3558 + // line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5883,7 +5885,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3568 + // line internal/php5/php5.y:3570 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5895,7 +5897,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3578 + // line internal/php5/php5.y:3580 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5907,7 +5909,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3588 + // line internal/php5/php5.y:3590 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5920,7 +5922,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3599 + // line internal/php5/php5.y:3601 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5933,7 +5935,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3610 + // line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5946,7 +5948,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3621 + // line internal/php5/php5.y:3623 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5960,7 +5962,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3633 + // line internal/php5/php5.y:3635 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5973,7 +5975,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3644 + // line internal/php5/php5.y:3646 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5986,7 +5988,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3655 + // line internal/php5/php5.y:3657 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5999,7 +6001,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3666 + // line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6012,7 +6014,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3677 + // line internal/php5/php5.y:3679 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6025,19 +6027,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3688 + // line internal/php5/php5.y:3690 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3694 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3698 { yyVAL.node = yyDollar[2].node @@ -6069,7 +6071,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3726 + // line internal/php5/php5.y:3728 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6083,7 +6085,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3738 + // line internal/php5/php5.y:3740 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6097,13 +6099,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3750 + // line internal/php5/php5.y:3752 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3754 + // line internal/php5/php5.y:3756 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6116,7 +6118,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3765 + // line internal/php5/php5.y:3767 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6129,7 +6131,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3776 + // line internal/php5/php5.y:3778 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6142,7 +6144,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3787 + // line internal/php5/php5.y:3789 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6155,7 +6157,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3798 + // line internal/php5/php5.y:3800 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6168,7 +6170,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3809 + // line internal/php5/php5.y:3811 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6181,7 +6183,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3820 + // line internal/php5/php5.y:3822 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6194,7 +6196,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3831 + // line internal/php5/php5.y:3833 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6214,7 +6216,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3849 + // line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6226,25 +6228,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3859 + // line internal/php5/php5.y:3861 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3863 + // line internal/php5/php5.y:3865 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3867 + // line internal/php5/php5.y:3869 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3871 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6256,7 +6258,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3881 + // line internal/php5/php5.y:3883 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6268,7 +6270,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3891 + // line internal/php5/php5.y:3893 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6280,7 +6282,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3901 + // line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6307,7 +6309,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3925 + // line internal/php5/php5.y:3927 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6335,7 +6337,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3953 + // line internal/php5/php5.y:3955 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6347,7 +6349,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3965 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6359,7 +6361,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3973 + // line internal/php5/php5.y:3975 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6372,7 +6374,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3984 + // line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6385,7 +6387,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3998 + // line internal/php5/php5.y:4000 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6398,7 +6400,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4009 + // line internal/php5/php5.y:4011 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6411,7 +6413,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4020 + // line internal/php5/php5.y:4022 { str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} @@ -6427,7 +6429,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4034 + // line internal/php5/php5.y:4036 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6440,7 +6442,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4048 + // line internal/php5/php5.y:4050 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6454,7 +6456,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4060 + // line internal/php5/php5.y:4062 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6467,19 +6469,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4074 + // line internal/php5/php5.y:4076 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4081 + // line internal/php5/php5.y:4083 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4085 + // line internal/php5/php5.y:4087 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6493,7 +6495,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4100 + // line internal/php5/php5.y:4102 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6514,7 +6516,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4119 + // line internal/php5/php5.y:4121 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6538,7 +6540,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4141 + // line internal/php5/php5.y:4143 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6558,7 +6560,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4159 + // line internal/php5/php5.y:4161 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6581,7 +6583,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4183 + // line internal/php5/php5.y:4185 { name := &ast.NameName{ Node: ast.Node{ @@ -6596,7 +6598,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4196 + // line internal/php5/php5.y:4198 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6613,7 +6615,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4211 + // line internal/php5/php5.y:4213 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6629,7 +6631,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4225 + // line internal/php5/php5.y:4227 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6642,7 +6644,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4236 + // line internal/php5/php5.y:4238 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6655,7 +6657,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4247 + // line internal/php5/php5.y:4249 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6668,7 +6670,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4258 + // line internal/php5/php5.y:4260 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6681,7 +6683,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4269 + // line internal/php5/php5.y:4271 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6693,7 +6695,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4282 + // line internal/php5/php5.y:4284 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6705,7 +6707,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4292 + // line internal/php5/php5.y:4294 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6716,7 +6718,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4301 + // line internal/php5/php5.y:4303 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6729,7 +6731,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4312 + // line internal/php5/php5.y:4314 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6741,7 +6743,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4325 + // line internal/php5/php5.y:4327 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6752,7 +6754,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4334 + // line internal/php5/php5.y:4336 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6765,7 +6767,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4345 + // line internal/php5/php5.y:4347 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6777,19 +6779,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4358 + // line internal/php5/php5.y:4360 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4362 + // line internal/php5/php5.y:4364 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4369 + // line internal/php5/php5.y:4371 { yyVAL.node = yyDollar[1].node @@ -6830,25 +6832,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4408 + // line internal/php5/php5.y:4410 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4416 + // line internal/php5/php5.y:4418 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4422 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4428 + // line internal/php5/php5.y:4430 { yyVAL.list = yyDollar[2].list @@ -6857,13 +6859,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4438 + // line internal/php5/php5.y:4440 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4442 + // line internal/php5/php5.y:4444 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6879,19 +6881,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4456 + // line internal/php5/php5.y:4458 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4463 + // line internal/php5/php5.y:4465 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4467 + // line internal/php5/php5.y:4469 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6901,25 +6903,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4475 + // line internal/php5/php5.y:4477 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4482 + // line internal/php5/php5.y:4484 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4488 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4493 + // line internal/php5/php5.y:4495 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6931,7 +6933,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4503 + // line internal/php5/php5.y:4505 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6943,7 +6945,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4513 + // line internal/php5/php5.y:4515 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6955,7 +6957,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4523 + // line internal/php5/php5.y:4525 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6967,7 +6969,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4533 + // line internal/php5/php5.y:4535 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6979,7 +6981,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4543 + // line internal/php5/php5.y:4545 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6991,7 +6993,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4553 + // line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7003,7 +7005,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4563 + // line internal/php5/php5.y:4565 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7015,7 +7017,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4573 + // line internal/php5/php5.y:4575 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7027,7 +7029,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4583 + // line internal/php5/php5.y:4585 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7039,7 +7041,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4595 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -7053,7 +7055,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4605 + // line internal/php5/php5.y:4607 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -7065,7 +7067,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4618 + // line internal/php5/php5.y:4620 { target := &ast.Identifier{ Node: ast.Node{ @@ -7085,25 +7087,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4639 + // line internal/php5/php5.y:4641 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4648 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4650 + // line internal/php5/php5.y:4652 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4654 + // line internal/php5/php5.y:4656 { name := &ast.NameName{ Node: ast.Node{ @@ -7118,7 +7120,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4667 + // line internal/php5/php5.y:4669 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7135,7 +7137,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4682 + // line internal/php5/php5.y:4684 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7151,7 +7153,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4696 + // line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7165,7 +7167,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4708 + // line internal/php5/php5.y:4710 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7178,13 +7180,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4719 + // line internal/php5/php5.y:4721 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4723 + // line internal/php5/php5.y:4725 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7196,13 +7198,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4733 + // line internal/php5/php5.y:4735 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4740 + // line internal/php5/php5.y:4742 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7215,7 +7217,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4751 + // line internal/php5/php5.y:4753 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7228,7 +7230,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4762 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7241,7 +7243,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4773 + // line internal/php5/php5.y:4775 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7254,7 +7256,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4784 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7267,7 +7269,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4795 + // line internal/php5/php5.y:4797 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7280,7 +7282,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4806 + // line internal/php5/php5.y:4808 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7293,7 +7295,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4817 + // line internal/php5/php5.y:4819 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7305,7 +7307,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4827 + // line internal/php5/php5.y:4829 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7317,7 +7319,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4837 + // line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7330,7 +7332,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4848 + // line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7343,7 +7345,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4859 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7356,7 +7358,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7369,7 +7371,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4881 + // line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7382,7 +7384,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4892 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7395,7 +7397,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4903 + // line internal/php5/php5.y:4905 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7408,7 +7410,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4914 + // line internal/php5/php5.y:4916 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7421,7 +7423,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4925 + // line internal/php5/php5.y:4927 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7434,7 +7436,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4938 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7447,7 +7449,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4949 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7460,7 +7462,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4958 + // line internal/php5/php5.y:4960 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7473,7 +7475,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4969 + // line internal/php5/php5.y:4971 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7486,7 +7488,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4980 + // line internal/php5/php5.y:4982 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7499,7 +7501,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4991 + // line internal/php5/php5.y:4993 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7513,7 +7515,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5003 + // line internal/php5/php5.y:5005 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7526,7 +7528,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5014 + // line internal/php5/php5.y:5016 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7539,7 +7541,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5025 + // line internal/php5/php5.y:5027 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7552,7 +7554,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5036 + // line internal/php5/php5.y:5038 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7565,7 +7567,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5047 + // line internal/php5/php5.y:5049 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7579,7 +7581,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5059 + // line internal/php5/php5.y:5061 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7593,7 +7595,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5071 + // line internal/php5/php5.y:5073 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7605,7 +7607,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5081 + // line internal/php5/php5.y:5083 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7617,7 +7619,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5093 { yyVAL.node = yyDollar[2].node @@ -7627,13 +7629,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5102 + // line internal/php5/php5.y:5104 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5108 { name := &ast.NameName{ Node: ast.Node{ @@ -7648,7 +7650,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5119 + // line internal/php5/php5.y:5121 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7665,7 +7667,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5134 + // line internal/php5/php5.y:5136 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7681,7 +7683,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5151 + // line internal/php5/php5.y:5153 { name := &ast.Identifier{ Node: ast.Node{ @@ -7700,25 +7702,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5168 + // line internal/php5/php5.y:5170 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5172 + // line internal/php5/php5.y:5174 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5176 + // line internal/php5/php5.y:5178 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5180 + // line internal/php5/php5.y:5182 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -7730,7 +7732,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5190 + // line internal/php5/php5.y:5192 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -7742,7 +7744,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5200 + // line internal/php5/php5.y:5202 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7754,13 +7756,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5213 + // line internal/php5/php5.y:5215 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5217 + // line internal/php5/php5.y:5219 { yyVAL.list = yyDollar[1].list @@ -7771,19 +7773,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5229 + // line internal/php5/php5.y:5231 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5233 + // line internal/php5/php5.y:5235 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5240 + // line internal/php5/php5.y:5242 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7798,7 +7800,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5253 + // line internal/php5/php5.y:5255 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7812,7 +7814,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5265 + // line internal/php5/php5.y:5267 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7826,7 +7828,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5277 + // line internal/php5/php5.y:5279 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7839,19 +7841,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5291 + // line internal/php5/php5.y:5293 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5295 + // line internal/php5/php5.y:5297 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5304 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7868,7 +7870,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5317 + // line internal/php5/php5.y:5319 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7885,25 +7887,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5336 + // line internal/php5/php5.y:5338 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5346 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5351 + // line internal/php5/php5.y:5353 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5360 { yyVAL.node = yyDollar[1].node @@ -7961,25 +7963,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5414 + // line internal/php5/php5.y:5416 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5421 + // line internal/php5/php5.y:5423 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5425 + // line internal/php5/php5.y:5427 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5435 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7993,7 +7995,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5450 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8007,7 +8009,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5460 + // line internal/php5/php5.y:5462 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8021,7 +8023,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5475 + // line internal/php5/php5.y:5477 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8030,31 +8032,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5487 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5489 + // line internal/php5/php5.y:5491 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5493 + // line internal/php5/php5.y:5495 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5502 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5504 + // line internal/php5/php5.y:5506 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8066,7 +8068,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5517 + // line internal/php5/php5.y:5519 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8079,7 +8081,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5528 + // line internal/php5/php5.y:5530 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8092,13 +8094,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5542 + // line internal/php5/php5.y:5544 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5549 + // line internal/php5/php5.y:5551 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8111,7 +8113,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5562 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8124,31 +8126,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5574 + // line internal/php5/php5.y:5576 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5578 + // line internal/php5/php5.y:5580 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5582 + // line internal/php5/php5.y:5584 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5590 + // line internal/php5/php5.y:5592 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5594 + // line internal/php5/php5.y:5596 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8160,13 +8162,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5604 + // line internal/php5/php5.y:5606 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5611 + // line internal/php5/php5.y:5613 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8179,7 +8181,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5622 + // line internal/php5/php5.y:5624 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8192,13 +8194,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5633 + // line internal/php5/php5.y:5635 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5643 { name := &ast.Identifier{ Node: ast.Node{ @@ -8217,7 +8219,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5658 + // line internal/php5/php5.y:5660 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8231,25 +8233,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5673 + // line internal/php5/php5.y:5675 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5677 + // line internal/php5/php5.y:5679 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5685 + // line internal/php5/php5.y:5687 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5689 + // line internal/php5/php5.y:5691 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8259,7 +8261,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5700 + // line internal/php5/php5.y:5702 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8273,7 +8275,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5712 + // line internal/php5/php5.y:5714 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8287,7 +8289,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5724 + // line internal/php5/php5.y:5726 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8297,7 +8299,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5735 + // line internal/php5/php5.y:5737 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8309,7 +8311,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5745 + // line internal/php5/php5.y:5747 { yyVAL.node = yyDollar[2].node @@ -8322,7 +8324,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5761 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8335,7 +8337,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5770 + // line internal/php5/php5.y:5772 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8352,7 +8354,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5788 + // line internal/php5/php5.y:5790 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8365,7 +8367,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5799 + // line internal/php5/php5.y:5801 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8375,7 +8377,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5811 + // line internal/php5/php5.y:5813 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8387,7 +8389,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5821 + // line internal/php5/php5.y:5823 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8403,19 +8405,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5835 + // line internal/php5/php5.y:5837 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5843 + // line internal/php5/php5.y:5845 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5847 + // line internal/php5/php5.y:5849 { yyVAL.list = yyDollar[1].list @@ -8430,7 +8432,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5863 + // line internal/php5/php5.y:5865 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8445,7 +8447,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5876 + // line internal/php5/php5.y:5878 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8459,7 +8461,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5888 + // line internal/php5/php5.y:5890 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8473,7 +8475,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5900 + // line internal/php5/php5.y:5902 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8486,7 +8488,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5911 + // line internal/php5/php5.y:5913 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8504,7 +8506,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5927 + // line internal/php5/php5.y:5929 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8520,7 +8522,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5941 + // line internal/php5/php5.y:5943 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8537,7 +8539,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5956 + // line internal/php5/php5.y:5958 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8552,13 +8554,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5972 + // line internal/php5/php5.y:5974 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5976 + // line internal/php5/php5.y:5978 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -8571,13 +8573,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5987 + // line internal/php5/php5.y:5989 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5991 + // line internal/php5/php5.y:5993 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -8590,7 +8592,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6005 + // line internal/php5/php5.y:6007 { name := &ast.Identifier{ Node: ast.Node{ @@ -8609,7 +8611,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6022 + // line internal/php5/php5.y:6024 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8631,7 +8633,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6042 + // line internal/php5/php5.y:6044 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8659,7 +8661,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6068 + // line internal/php5/php5.y:6070 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8674,7 +8676,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6081 + // line internal/php5/php5.y:6083 { name := &ast.Identifier{ Node: ast.Node{ @@ -8696,7 +8698,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6101 + // line internal/php5/php5.y:6103 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8720,7 +8722,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6123 + // line internal/php5/php5.y:6125 { yyVAL.node = yyDollar[2].node @@ -8730,7 +8732,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6134 + // line internal/php5/php5.y:6136 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8742,7 +8744,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6144 + // line internal/php5/php5.y:6146 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8759,7 +8761,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6159 + // line internal/php5/php5.y:6161 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8778,7 +8780,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6179 + // line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8792,7 +8794,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6191 + // line internal/php5/php5.y:6193 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8814,7 +8816,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6211 + // line internal/php5/php5.y:6213 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8836,7 +8838,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6231 + // line internal/php5/php5.y:6233 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8848,7 +8850,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6241 + // line internal/php5/php5.y:6243 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8860,7 +8862,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6251 + // line internal/php5/php5.y:6253 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8882,7 +8884,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6271 + // line internal/php5/php5.y:6273 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8894,7 +8896,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6281 + // line internal/php5/php5.y:6283 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8906,13 +8908,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6294 + // line internal/php5/php5.y:6296 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6298 + // line internal/php5/php5.y:6300 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8921,19 +8923,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6308 + // line internal/php5/php5.y:6310 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6312 + // line internal/php5/php5.y:6314 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6319 + // line internal/php5/php5.y:6321 { target := &ast.Identifier{ Node: ast.Node{ @@ -8953,7 +8955,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6337 + // line internal/php5/php5.y:6339 { target := &ast.Identifier{ Node: ast.Node{ @@ -8973,7 +8975,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6358 + // line internal/php5/php5.y:6360 { target := &ast.Identifier{ Node: ast.Node{ @@ -8993,7 +8995,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6379 + // line internal/php5/php5.y:6381 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 0e7e6fa..f905e1d 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -242,7 +242,7 @@ import ( %type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list echo_expr_list %type trait_adaptations unset_variables declare_list -%type switch_case_list +%type switch_case_list non_empty_function_call_parameter_list %type method_body %type foreach_statement for_statement while_statement %type foreach_variable foreach_optional_arg @@ -258,7 +258,7 @@ import ( %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers class_variable_declaration -%type interface_list non_empty_function_call_parameter_list trait_list trait_adaptation_list non_empty_trait_adaptation_list +%type interface_list trait_list trait_adaptation_list non_empty_trait_adaptation_list %type trait_reference_list non_empty_member_modifiers backticks_expr static_array_pair_list non_empty_static_array_pair_list %type chaining_dereference chaining_instance_call chaining_method_or_property instance_call variable_property @@ -2170,38 +2170,40 @@ optional_class_type: function_call_parameter_list: '(' ')' { - $$ = &ast.ArgumentList{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) + $$ = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenParenthesisTkn: $1, + CloseParenthesisTkn: $2, + } } | '(' non_empty_function_call_parameter_list ')' { - $$ = &ast.ArgumentList{ast.Node{}, $2} + argumentList := $2.(*ast.ArgumentList) + argumentList.Position = position.NewTokensPosition($1, $3) + argumentList.OpenParenthesisTkn = $1 + argumentList.CloseParenthesisTkn = $3 - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = argumentList } | '(' yield_expr ')' { - arg := &ast.Argument{ast.Node{}, false, false, $2} - $$ = &ast.ArgumentList{ast.Node{}, []ast.Vertex{arg}} - - // save position - arg.GetNode().Position = position.NewNodePosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenParenthesisTkn: $1, + Arguments: []ast.Vertex{ + &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($2), + }, + Expr: $2, + }, + }, + CloseParenthesisTkn: $3, + } } ; @@ -2209,57 +2211,57 @@ function_call_parameter_list: non_empty_function_call_parameter_list: function_call_parameter { - $$ = []ast.Vertex{$1} + $$ = &ast.ArgumentList{ + Arguments: []ast.Vertex{$1}, + } } | non_empty_function_call_parameter_list ',' function_call_parameter { - $$ = append($1, $3) + $1.(*ast.ArgumentList).SeparatorTkns = append($1.(*ast.ArgumentList).SeparatorTkns, $2) + $1.(*ast.ArgumentList).Arguments = append($1.(*ast.ArgumentList).Arguments, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; function_call_parameter: expr_without_variable { - $$ = &ast.Argument{ast.Node{}, false, false, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Expr: $1, + } } | variable { - $$ = &ast.Argument{ast.Node{}, false, false, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Expr: $1, + } } | '&' w_variable { - $$ = &ast.Argument{ast.Node{}, false, true, $2} - - // save position - $$.GetNode().Position = position.NewNodePosition($2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + AmpersandTkn: $1, + Expr: $2, + } } | T_ELLIPSIS expr { - $$ = &ast.Argument{ast.Node{}, true, false, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + VariadicTkn: $1, + Expr: $2, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 62c54a9..a66ce92 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4969 +// line internal/php7/php7.y:4964 // line yacctab:1 var yyExca = [...]int{ @@ -629,12 +629,12 @@ var yyAct = [...]int{ 413, 625, 815, 746, 379, 831, 825, 780, 781, 197, 534, 260, 261, 135, 106, 196, 836, 844, 533, 260, 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, - 189, 744, 632, 855, 260, 261, 235, 539, 238, 225, - 859, 283, 260, 261, 528, 865, 879, 108, 838, 877, - 890, 891, 886, 328, 841, 676, 892, 893, 255, 885, - 796, 730, 385, 853, 371, 897, 898, 656, 852, 872, - 934, 662, 786, 896, 903, 845, 227, 905, 43, 42, - 16, 15, 830, 151, 886, 908, 904, 902, 260, 261, + 189, 744, 632, 855, 260, 261, 235, 225, 238, 528, + 859, 283, 260, 261, 865, 879, 838, 108, 328, 877, + 890, 891, 886, 841, 676, 255, 892, 893, 796, 885, + 385, 730, 371, 853, 656, 897, 898, 852, 934, 872, + 662, 845, 786, 896, 903, 227, 43, 905, 42, 16, + 539, 15, 830, 151, 886, 908, 904, 902, 260, 261, 606, 885, 271, 49, 48, 110, 50, 84, 82, 72, 252, 62, 269, 61, 884, 883, 906, 918, 882, 881, 742, 147, 144, 45, 734, 673, 315, 928, 926, 922, @@ -1430,11 +1430,11 @@ var yyPgo = [...]int{ 908, 905, 904, 15, 62, 903, 902, 100, 87, 274, 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, - 88, 880, 879, 10, 878, 876, 46, 39, 40, 2, - 16, 705, 43, 85, 875, 871, 870, 12, 868, 867, - 555, 864, 50, 37, 862, 860, 9, 762, 20, 553, - 858, 18, 855, 854, 36, 853, 25, 33, 848, 45, - 846, 554, 845, 844, 839, 34, 837, 80, 1, 3, + 88, 880, 879, 878, 10, 876, 875, 46, 39, 40, + 2, 16, 705, 43, 85, 871, 870, 868, 12, 867, + 864, 555, 862, 50, 37, 860, 858, 9, 762, 20, + 553, 855, 18, 854, 853, 36, 848, 25, 33, 846, + 45, 845, 554, 844, 839, 837, 34, 80, 1, 3, 832, 17, 831, 821, 803, 7, 767, 752, 28, } @@ -1447,28 +1447,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, - 117, 101, 101, 10, 10, 10, 9, 9, 9, 9, + 117, 102, 102, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 97, 97, 16, 16, 18, 18, 7, 7, 107, - 107, 106, 106, 111, 111, 17, 17, 20, 20, 19, + 9, 98, 98, 16, 16, 18, 18, 7, 7, 108, + 108, 107, 107, 112, 112, 17, 17, 20, 20, 19, 19, 70, 70, 118, 118, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 102, 102, 68, 68, - 26, 26, 91, 91, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 81, 81, 14, 15, 92, 92, - 94, 94, 93, 93, 98, 98, 98, 98, 88, 88, - 87, 87, 25, 25, 85, 85, 85, 85, 109, 109, - 109, 8, 8, 89, 89, 72, 72, 69, 69, 74, - 74, 71, 71, 119, 119, 120, 120, 29, 29, 30, - 30, 80, 80, 78, 78, 78, 79, 79, 82, 82, - 116, 116, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 121, 121, 37, 37, 37, 37, 125, 125, 84, - 84, 84, 110, 110, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 86, 86, 123, 123, 122, 122, - 124, 124, 96, 96, 96, 96, 96, 96, 108, 108, - 43, 43, 103, 103, 73, 21, 67, 67, 44, 104, - 104, 105, 105, 46, 45, 45, 32, 32, 32, 32, + 11, 11, 11, 11, 11, 11, 103, 103, 68, 68, + 26, 26, 92, 92, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 82, 82, 14, 15, 93, 93, + 95, 95, 94, 94, 99, 99, 99, 99, 89, 89, + 88, 88, 25, 25, 86, 86, 86, 86, 110, 110, + 110, 8, 8, 90, 90, 73, 73, 69, 69, 75, + 75, 72, 72, 119, 119, 120, 120, 29, 29, 30, + 30, 81, 81, 79, 79, 79, 80, 80, 83, 83, + 71, 71, 31, 31, 33, 33, 34, 35, 35, 36, + 36, 121, 121, 37, 37, 37, 37, 125, 125, 85, + 85, 85, 111, 111, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 87, 87, 123, 123, 122, 122, + 124, 124, 97, 97, 97, 97, 97, 97, 109, 109, + 43, 43, 104, 104, 74, 21, 67, 67, 44, 105, + 105, 106, 106, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1476,19 +1476,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 90, 90, 128, 3, 3, 95, 95, - 112, 112, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 100, 100, 100, 83, 83, 58, + 32, 32, 32, 91, 91, 128, 3, 3, 96, 96, + 113, 113, 53, 53, 54, 54, 54, 54, 47, 47, + 48, 48, 51, 51, 101, 101, 101, 84, 84, 58, 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, - 64, 64, 55, 55, 55, 56, 56, 56, 115, 76, - 76, 114, 114, 75, 75, 75, 75, 75, 75, 75, - 99, 99, 99, 99, 65, 65, 65, 65, 65, 65, + 64, 64, 55, 55, 55, 56, 56, 56, 116, 77, + 77, 115, 115, 76, 76, 76, 76, 76, 76, 76, + 100, 100, 100, 100, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 113, 113, 77, + 50, 50, 114, 114, 78, } var yyR2 = [...]int{ @@ -1546,48 +1546,48 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -69, -71, 21, 20, 23, + 52, 80, 45, 39, 144, -69, -72, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -72, -74, -28, -32, -81, 7, -62, -63, + 54, 55, -73, -75, -28, -32, -82, 7, -62, -63, -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -52, 143, 97, 98, 107, -90, 100, 101, + 6, 158, -52, 143, 97, 98, 107, -91, 100, 101, -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -101, 83, 148, 83, -101, 144, 10, - -18, -97, -111, -101, 83, 37, 39, -19, -20, -70, + -61, 61, 18, -102, 83, 148, 83, -102, 144, 10, + -18, -98, -112, -102, 83, 37, 39, -19, -20, -70, -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -90, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -91, -36, 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -81, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -82, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -115, -114, -76, -75, -23, 153, + 150, 144, 58, 148, -116, -115, -77, -76, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -100, 17, -99, -65, 12, + -23, -23, -51, 148, -23, -101, 17, -100, -65, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -99, -99, 17, -3, 144, -49, - -82, 148, -82, 148, 83, -101, 149, -101, 146, 144, - -117, 146, -16, -111, -101, 83, 146, 160, 83, 29, - -101, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -104, -105, -23, + -23, -23, 17, 76, -100, -100, 17, -3, 144, -49, + -83, 148, -83, 148, 83, -102, 149, -102, 146, 144, + -117, 146, -16, -112, -102, 83, 146, 160, 83, 29, + -102, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -105, -106, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -91, -27, -28, -23, -70, -118, 146, 146, 10, - -128, 10, -92, 56, -128, -94, 56, 148, -11, 148, + -23, -92, -27, -28, -23, -70, -118, 146, 146, 10, + -128, 10, -93, 56, -128, -95, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, - -56, 10, 144, -49, -115, 151, 160, 59, -28, -23, - 148, -23, -115, 149, -24, 143, -65, -65, 17, 150, + -56, 10, 144, -49, -116, 151, 160, 59, -28, -23, + 148, -23, -116, 149, -24, 143, -65, -65, 17, 150, 58, -23, 11, -28, 59, -24, -55, -6, -49, 144, 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, @@ -1597,48 +1597,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -83, -82, 79, 150, 144, 58, 79, -83, -113, -77, - -23, -23, -23, 76, 76, 142, 148, -23, 149, -116, - -31, -23, 84, -115, 10, 146, -117, 145, 146, 146, - 83, -101, -19, 83, -101, 144, 10, 83, -21, -23, + -84, -83, 79, 150, 144, 58, 79, -84, -114, -78, + -23, -23, -23, 76, 76, 142, 148, -23, 149, -71, + -31, -23, 84, -116, 10, 146, -117, 145, 146, 146, + 83, -102, -19, 83, -102, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -92, - -93, 57, -10, 144, -128, -125, -10, -23, -23, -118, - -23, 149, 151, 145, -82, -23, 149, 162, -76, -23, - 153, 60, -115, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -82, -23, - -82, -49, -24, -23, -56, -49, -92, -7, 160, 149, - 149, -119, -120, -29, -30, -80, -78, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -107, - -17, -20, -97, 144, -128, 149, -89, -11, 147, -23, - -104, -23, -85, 144, 147, -23, 149, -27, -98, -28, - 153, 60, 150, -25, -11, 147, -102, 148, -119, -93, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -93, + -94, 57, -10, 144, -128, -125, -10, -23, -23, -118, + -23, 149, 151, 145, -83, -23, 149, 162, -77, -23, + 153, 60, -116, 149, 151, 149, -66, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -23, 151, -83, -23, + -83, -49, -24, -23, -56, -49, -93, -7, 160, 149, + 149, -119, -120, -29, -30, -81, -79, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -108, + -17, -20, -98, 144, -128, 149, -90, -11, 147, -23, + -105, -23, -86, 144, 147, -23, 149, -27, -99, -28, + 153, 60, 150, -25, -11, 147, -103, 148, -119, -94, -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -93, 149, -77, 149, 160, -1, 153, -78, - 149, -31, -106, -20, 144, -7, 160, -20, -107, 146, - -118, 149, 146, -109, 146, -109, 146, 146, 149, 59, - -28, 148, -115, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -37, -123, -122, 45, -124, 48, -96, 104, + 151, 145, -94, 149, -78, 149, 160, -1, 153, -79, + 149, -31, -107, -20, 144, -7, 160, -20, -108, 146, + -118, 149, 146, -110, 146, -110, 146, 146, 149, 59, + -28, 148, -116, -118, -26, 42, 43, -119, 149, -128, + 144, 145, -37, -123, -122, 45, -124, 48, -97, 104, 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -115, 151, -128, -79, 147, -29, -2, 84, - -7, 160, -106, 145, -17, -7, 22, 146, -104, 145, - 32, 33, -109, 31, -109, -87, -11, 147, -98, -28, - -115, 151, 28, 148, 144, 149, -95, 45, 144, -121, - -30, 39, 37, -125, -96, 145, -118, 149, 145, 144, - -128, -80, 12, 145, -20, -7, 145, 146, 149, -23, + -118, -23, -116, 151, -128, -80, 147, -29, -2, 84, + -7, 160, -107, 145, -17, -7, 22, 146, -105, 145, + 32, 33, -110, 31, -110, -88, -11, 147, -99, -28, + -116, 151, 28, 148, 144, 149, -96, 45, 144, -121, + -30, 39, 37, -125, -97, 145, -118, 149, 145, 144, + -128, -81, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -68, -10, -118, -79, -79, 148, -121, 145, -108, -43, - 12, -103, -73, -6, -3, -84, 146, 144, -121, 59, - 162, 145, -88, -11, 147, -8, -118, 146, 26, -87, - 12, 161, 145, 144, 144, -112, -53, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -110, + -68, -10, -118, -80, -80, 148, -121, 145, -109, -43, + 12, -104, -74, -6, -3, -85, 146, 144, -121, 59, + 162, 145, -89, -11, 147, -8, -118, 146, 26, -88, + 12, 161, 145, 144, 144, -113, -53, 12, 153, 145, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -111, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -43, -23, -73, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -74, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -125, 10, -4, -96, -6, 146, -118, -119, - -6, 145, 149, -79, -86, 146, 144, -118, 145, + -128, 148, -125, 10, -4, -97, -6, 146, -118, -119, + -6, 145, 149, -80, -87, 146, 144, -118, 145, } var yyDef = [...]int{ @@ -2114,7 +2114,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:294 + // line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2125,469 +2125,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:328 + // line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:335 + // line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2600,13 +2600,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:346 + // line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:353 + // line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2620,7 +2620,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:365 + // line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2633,7 +2633,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:379 + // line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:388 + // line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2657,7 +2657,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:399 + // line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2669,44 +2669,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:412 + // line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:437 + // line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2720,7 +2720,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:449 + // line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:465 + // line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2758,7 +2758,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:483 + // line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2772,7 +2772,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:495 + // line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2784,7 +2784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:505 + // line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2797,7 +2797,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:516 + // line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2810,7 +2810,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:527 + // line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2824,7 +2824,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:539 + // line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2838,7 +2838,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:554 + // line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2850,7 +2850,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:564 + // line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2862,7 +2862,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:577 + // line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2886,7 +2886,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:599 + // line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2909,7 +2909,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:623 + // line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2931,7 +2931,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:643 + // line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2954,19 +2954,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:671 + // line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:678 + // line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2974,13 +2974,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:684 + // line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:691 + // line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2988,13 +2988,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:697 + // line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:704 + // line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3002,19 +3002,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:710 + // line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:721 + // line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3024,7 +3024,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:732 + // line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3040,7 +3040,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:746 + // line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3064,13 +3064,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:771 + // line internal/php7/php7.y:771 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:775 + // line internal/php7/php7.y:775 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3080,7 +3080,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:786 + // line internal/php7/php7.y:786 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3089,7 +3089,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:793 + // line internal/php7/php7.y:793 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3097,7 +3097,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:802 + // line internal/php7/php7.y:802 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3110,50 +3110,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:813 + // line internal/php7/php7.y:813 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:820 + // line internal/php7/php7.y:820 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:845 + // line internal/php7/php7.y:845 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3167,7 +3167,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:859 + // line internal/php7/php7.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3180,19 +3180,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:874 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:878 + // line internal/php7/php7.y:878 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3204,7 +3204,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:888 + // line internal/php7/php7.y:888 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3221,7 +3221,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:903 + // line internal/php7/php7.y:903 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3237,7 +3237,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:917 + // line internal/php7/php7.y:917 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3249,7 +3249,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:927 + // line internal/php7/php7.y:927 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3262,7 +3262,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:938 + // line internal/php7/php7.y:938 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3275,7 +3275,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:949 + // line internal/php7/php7.y:949 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3288,7 +3288,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:960 + // line internal/php7/php7.y:960 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3298,7 +3298,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:968 + // line internal/php7/php7.y:968 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3308,7 +3308,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:976 + // line internal/php7/php7.y:976 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3318,7 +3318,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:984 + // line internal/php7/php7.y:984 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3330,7 +3330,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:994 + // line internal/php7/php7.y:994 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3344,7 +3344,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1006 + // line internal/php7/php7.y:1006 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3357,7 +3357,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1017 + // line internal/php7/php7.y:1017 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3371,7 +3371,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1029 + // line internal/php7/php7.y:1029 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3387,7 +3387,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1043 + // line internal/php7/php7.y:1043 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3400,7 +3400,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1054 + // line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3411,7 +3411,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1063 + // line internal/php7/php7.y:1063 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3430,7 +3430,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1080 + // line internal/php7/php7.y:1080 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3443,7 +3443,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1091 + // line internal/php7/php7.y:1091 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3462,7 +3462,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1108 + // line internal/php7/php7.y:1108 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3480,13 +3480,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1126 + // line internal/php7/php7.y:1126 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1130 + // line internal/php7/php7.y:1130 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3517,7 +3517,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1161 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3525,7 +3525,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1167 + // line internal/php7/php7.y:1167 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3534,13 +3534,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1177 + // line internal/php7/php7.y:1177 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1181 + // line internal/php7/php7.y:1181 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3554,7 +3554,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1196 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3562,7 +3562,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1202 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3571,13 +3571,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1212 + // line internal/php7/php7.y:1212 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1219 + // line internal/php7/php7.y:1219 { name := &ast.Identifier{ Node: ast.Node{ @@ -3608,31 +3608,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1251 + // line internal/php7/php7.y:1251 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1255 + // line internal/php7/php7.y:1255 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1262 + // line internal/php7/php7.y:1262 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1266 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1273 + // line internal/php7/php7.y:1273 { name := &ast.Identifier{ Node: ast.Node{ @@ -3653,7 +3653,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1292 + // line internal/php7/php7.y:1292 { name := &ast.Identifier{ Node: ast.Node{ @@ -3673,19 +3673,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1317 + // line internal/php7/php7.y:1317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1324 + // line internal/php7/php7.y:1324 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3697,7 +3697,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1334 + // line internal/php7/php7.y:1334 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3709,7 +3709,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1347 + // line internal/php7/php7.y:1347 { name := &ast.Identifier{ Node: ast.Node{ @@ -3730,7 +3730,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1369 + // line internal/php7/php7.y:1369 { name := &ast.Identifier{ Node: ast.Node{ @@ -3751,13 +3751,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1391 + // line internal/php7/php7.y:1391 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1395 + // line internal/php7/php7.y:1395 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3769,13 +3769,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1408 + // line internal/php7/php7.y:1408 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1412 + // line internal/php7/php7.y:1412 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3787,13 +3787,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1425 + // line internal/php7/php7.y:1425 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1429 + // line internal/php7/php7.y:1429 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3805,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1442 + // line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3850,7 +3850,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3861,7 +3861,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1491 + // line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3881,7 +3881,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1512 + // line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3892,7 +3892,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1521 + // line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3912,7 +3912,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3923,7 +3923,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3943,7 +3943,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3956,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1583 + // line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1595 + // line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3985,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1608 + // line internal/php7/php7.y:1608 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4001,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1625 + // line internal/php7/php7.y:1625 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1629 + // line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4021,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1641 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4034,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1655 + // line internal/php7/php7.y:1655 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1659 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4057,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1675 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4077,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1696 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4092,7 +4092,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1709 + // line internal/php7/php7.y:1709 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4111,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1729 + // line internal/php7/php7.y:1729 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1733 + // line internal/php7/php7.y:1733 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4133,7 +4133,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1750 + // line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4155,7 +4155,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1770 + // line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4179,7 +4179,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1795 + // line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4189,7 +4189,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1803 + // line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4213,25 +4213,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1828 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1832 + // line internal/php7/php7.y:1832 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1839 + // line internal/php7/php7.y:1839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1843 + // line internal/php7/php7.y:1843 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4240,7 +4240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1853 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4294,7 +4294,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1905 + // line internal/php7/php7.y:1905 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4351,25 +4351,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1963 + // line internal/php7/php7.y:1963 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1967 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1974 + // line internal/php7/php7.y:1974 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1978 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4381,7 +4381,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1991 + // line internal/php7/php7.y:1991 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4393,7 +4393,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2001 + // line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4405,19 +4405,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2011 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2018 + // line internal/php7/php7.y:2018 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2022 { yyVAL.node = yyDollar[2].node @@ -4426,76 +4426,71 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2032 { - yyVAL.node = &ast.ArgumentList{ast.Node{}, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + CloseParenthesisTkn: yyDollar[2].token, + } } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2043 + // line internal/php7/php7.y:2042 { - yyVAL.node = &ast.ArgumentList{ast.Node{}, yyDollar[2].list} + argumentList := yyDollar[2].node.(*ast.ArgumentList) + argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + argumentList.OpenParenthesisTkn = yyDollar[1].token + argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, yyDollar[3].token) + argumentList.CloseParenthesisTkn = yyDollar[4].token - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[3].token != nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyDollar[3].token.SkippedTokens, yyDollar[4].token.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[4].token.SkippedTokens) - } + yyVAL.node = argumentList } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2061 + // line internal/php7/php7.y:2055 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ArgumentList{ + Arguments: []ast.Vertex{yyDollar[1].node}, + } } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2065 + // line internal/php7/php7.y:2061 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2075 + // line internal/php7/php7.y:2071 { - yyVAL.node = &ast.Argument{ast.Node{}, false, false, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Expr: yyDollar[1].node, + } } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2080 { - yyVAL.node = &ast.Argument{ast.Node{}, true, false, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + VariadicTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4504,7 +4499,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2105 + // line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4512,13 +4507,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2109 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2121 + // line internal/php7/php7.y:2116 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4527,7 +4522,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2128 + // line internal/php7/php7.y:2123 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4535,7 +4530,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2137 + // line internal/php7/php7.y:2132 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4561,7 +4556,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2161 + // line internal/php7/php7.y:2156 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4588,19 +4583,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2184 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2193 + // line internal/php7/php7.y:2188 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2195 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4614,7 +4609,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2207 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4628,7 +4623,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2224 + // line internal/php7/php7.y:2219 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4640,7 +4635,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2234 + // line internal/php7/php7.y:2229 { name := &ast.Identifier{ Node: ast.Node{ @@ -4675,13 +4670,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2265 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2274 + // line internal/php7/php7.y:2269 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4695,7 +4690,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2286 + // line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4706,7 +4701,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2295 + // line internal/php7/php7.y:2290 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4718,7 +4713,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2305 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4730,19 +4725,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2318 + // line internal/php7/php7.y:2313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2322 + // line internal/php7/php7.y:2317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2329 + // line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4752,7 +4747,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2337 + // line internal/php7/php7.y:2332 { yyVAL.node = yyDollar[1].node @@ -4762,7 +4757,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2348 + // line internal/php7/php7.y:2343 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4775,7 +4770,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2362 + // line internal/php7/php7.y:2357 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4795,7 +4790,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2380 + // line internal/php7/php7.y:2375 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4815,7 +4810,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2398 + // line internal/php7/php7.y:2393 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4835,7 +4830,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4848,7 +4843,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2430 + // line internal/php7/php7.y:2425 { name := &ast.Identifier{ Node: ast.Node{ @@ -4867,13 +4862,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2442 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2454 + // line internal/php7/php7.y:2449 { target := &ast.Identifier{ Node: ast.Node{ @@ -4893,7 +4888,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2475 + // line internal/php7/php7.y:2470 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4904,7 +4899,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2484 + // line internal/php7/php7.y:2479 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4917,13 +4912,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2498 + // line internal/php7/php7.y:2493 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2497 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4937,31 +4932,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2517 + // line internal/php7/php7.y:2512 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2521 + // line internal/php7/php7.y:2516 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2528 + // line internal/php7/php7.y:2523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2532 + // line internal/php7/php7.y:2527 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2539 + // line internal/php7/php7.y:2534 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4973,7 +4968,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2549 + // line internal/php7/php7.y:2544 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4985,7 +4980,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2559 + // line internal/php7/php7.y:2554 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4997,7 +4992,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2569 + // line internal/php7/php7.y:2564 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5009,7 +5004,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2579 + // line internal/php7/php7.y:2574 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5021,7 +5016,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2589 + // line internal/php7/php7.y:2584 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5033,7 +5028,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2602 + // line internal/php7/php7.y:2597 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5042,13 +5037,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2609 + // line internal/php7/php7.y:2604 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2616 + // line internal/php7/php7.y:2611 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5069,7 +5064,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2635 + // line internal/php7/php7.y:2630 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5091,7 +5086,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2658 + // line internal/php7/php7.y:2653 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5099,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2664 + // line internal/php7/php7.y:2659 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2671 + // line internal/php7/php7.y:2666 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5126,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2693 + // line internal/php7/php7.y:2688 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5147,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2715 + // line internal/php7/php7.y:2710 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5156,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2722 + // line internal/php7/php7.y:2717 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5164,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2726 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2738 + // line internal/php7/php7.y:2733 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2742 + // line internal/php7/php7.y:2737 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2749 + // line internal/php7/php7.y:2744 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5191,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2751 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2763 + // line internal/php7/php7.y:2758 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5215,7 +5210,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2782 + // line internal/php7/php7.y:2777 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5230,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2795 + // line internal/php7/php7.y:2790 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5242,7 +5237,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2808 + // line internal/php7/php7.y:2803 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5259,7 +5254,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2823 + // line internal/php7/php7.y:2818 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5275,7 +5270,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2837 + // line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5288,7 +5283,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2848 + // line internal/php7/php7.y:2843 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5302,7 +5297,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2860 + // line internal/php7/php7.y:2855 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5314,7 +5309,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5327,7 +5322,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2881 + // line internal/php7/php7.y:2876 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5340,7 +5335,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2892 + // line internal/php7/php7.y:2887 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5353,7 +5348,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2903 + // line internal/php7/php7.y:2898 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5366,7 +5361,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2914 + // line internal/php7/php7.y:2909 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5379,7 +5374,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2925 + // line internal/php7/php7.y:2920 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5392,7 +5387,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2936 + // line internal/php7/php7.y:2931 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5405,7 +5400,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2947 + // line internal/php7/php7.y:2942 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5418,7 +5413,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2958 + // line internal/php7/php7.y:2953 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5431,7 +5426,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2964 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5444,7 +5439,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2980 + // line internal/php7/php7.y:2975 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5457,7 +5452,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2991 + // line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5470,7 +5465,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3002 + // line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5483,7 +5478,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5496,7 +5491,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3024 + // line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5508,7 +5503,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3034 + // line internal/php7/php7.y:3029 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5521,7 +5516,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3045 + // line internal/php7/php7.y:3040 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5533,7 +5528,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3055 + // line internal/php7/php7.y:3050 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5546,7 +5541,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3066 + // line internal/php7/php7.y:3061 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5559,7 +5554,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3077 + // line internal/php7/php7.y:3072 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5572,7 +5567,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3088 + // line internal/php7/php7.y:3083 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5585,7 +5580,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3099 + // line internal/php7/php7.y:3094 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5598,7 +5593,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3110 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5611,7 +5606,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3121 + // line internal/php7/php7.y:3116 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5624,7 +5619,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3132 + // line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5637,7 +5632,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3143 + // line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5649,7 +5644,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3153 + // line internal/php7/php7.y:3148 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5662,7 +5657,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3164 + // line internal/php7/php7.y:3159 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5675,7 +5670,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3175 + // line internal/php7/php7.y:3170 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5688,7 +5683,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3181 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5701,7 +5696,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3197 + // line internal/php7/php7.y:3192 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5714,7 +5709,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3208 + // line internal/php7/php7.y:3203 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5727,7 +5722,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5740,7 +5735,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3230 + // line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5748,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3241 + // line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5765,7 +5760,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3246 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5777,7 +5772,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3261 + // line internal/php7/php7.y:3256 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5789,7 +5784,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5801,7 +5796,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3281 + // line internal/php7/php7.y:3276 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5814,7 +5809,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3292 + // line internal/php7/php7.y:3287 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5827,7 +5822,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3303 + // line internal/php7/php7.y:3298 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5840,7 +5835,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3314 + // line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5854,7 +5849,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3326 + // line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5867,7 +5862,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3337 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5880,7 +5875,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3348 + // line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5893,7 +5888,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3359 + // line internal/php7/php7.y:3354 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5906,7 +5901,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3370 + // line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5919,7 +5914,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3381 + // line internal/php7/php7.y:3376 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5932,7 +5927,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3392 + // line internal/php7/php7.y:3387 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5949,13 +5944,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3407 + // line internal/php7/php7.y:3402 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3411 + // line internal/php7/php7.y:3406 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5969,7 +5964,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3423 + // line internal/php7/php7.y:3418 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5983,7 +5978,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3435 + // line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5996,13 +5991,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3446 + // line internal/php7/php7.y:3441 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3450 + // line internal/php7/php7.y:3445 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6010,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3461 + // line internal/php7/php7.y:3456 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6023,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3472 + // line internal/php7/php7.y:3467 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6036,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3483 + // line internal/php7/php7.y:3478 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6054,7 +6049,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3494 + // line internal/php7/php7.y:3489 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6067,7 +6062,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3500 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6080,7 +6075,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3511 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6093,7 +6088,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3527 + // line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6113,7 +6108,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3545 + // line internal/php7/php7.y:3540 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6125,13 +6120,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3550 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3559 + // line internal/php7/php7.y:3554 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6143,7 +6138,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3569 + // line internal/php7/php7.y:3564 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6155,7 +6150,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3579 + // line internal/php7/php7.y:3574 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6167,7 +6162,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3589 + // line internal/php7/php7.y:3584 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6179,7 +6174,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3599 + // line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6192,7 +6187,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6204,13 +6199,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3615 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3624 + // line internal/php7/php7.y:3619 { yyVAL.node = yyDollar[2].node @@ -6231,7 +6226,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3645 + // line internal/php7/php7.y:3640 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6262,7 +6257,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3667 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6288,25 +6283,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3702 + // line internal/php7/php7.y:3697 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3706 + // line internal/php7/php7.y:3701 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3713 + // line internal/php7/php7.y:3708 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3717 + // line internal/php7/php7.y:3712 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6320,7 +6315,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3732 + // line internal/php7/php7.y:3727 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6329,13 +6324,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3739 + // line internal/php7/php7.y:3734 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3741 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6354,7 +6349,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3763 + // line internal/php7/php7.y:3758 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6376,7 +6371,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3781 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6388,7 +6383,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3796 + // line internal/php7/php7.y:3791 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6401,7 +6396,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3807 + // line internal/php7/php7.y:3802 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6414,7 +6409,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3813 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6426,7 +6421,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3831 + // line internal/php7/php7.y:3826 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6438,31 +6433,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3836 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3848 + // line internal/php7/php7.y:3843 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3847 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3854 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3858 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6479,13 +6474,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3876 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3885 + // line internal/php7/php7.y:3880 { part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{part} @@ -6495,25 +6490,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3893 + // line internal/php7/php7.y:3888 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3895 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3904 + // line internal/php7/php7.y:3899 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3911 + // line internal/php7/php7.y:3906 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6527,7 +6522,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3923 + // line internal/php7/php7.y:3918 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6540,7 +6535,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3934 + // line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6552,7 +6547,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3947 + // line internal/php7/php7.y:3942 { yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6564,7 +6559,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3957 + // line internal/php7/php7.y:3952 { yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} @@ -6576,7 +6571,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3967 + // line internal/php7/php7.y:3962 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6588,7 +6583,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3972 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6600,7 +6595,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3987 + // line internal/php7/php7.y:3982 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6612,7 +6607,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3997 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6624,7 +6619,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4007 + // line internal/php7/php7.y:4002 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6636,7 +6631,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4017 + // line internal/php7/php7.y:4012 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6648,7 +6643,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4027 + // line internal/php7/php7.y:4022 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6660,7 +6655,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4037 + // line internal/php7/php7.y:4032 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6672,7 +6667,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4042 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} @@ -6686,7 +6681,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4059 + // line internal/php7/php7.y:4054 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} @@ -6698,7 +6693,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4069 + // line internal/php7/php7.y:4064 { yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} @@ -6710,7 +6705,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4079 + // line internal/php7/php7.y:4074 { yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} @@ -6722,19 +6717,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4089 + // line internal/php7/php7.y:4084 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4093 + // line internal/php7/php7.y:4088 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4100 + // line internal/php7/php7.y:4095 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6746,7 +6741,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4110 + // line internal/php7/php7.y:4105 { target := &ast.Identifier{ Node: ast.Node{ @@ -6766,7 +6761,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4128 + // line internal/php7/php7.y:4123 { target := &ast.Identifier{ Node: ast.Node{ @@ -6786,43 +6781,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4149 + // line internal/php7/php7.y:4144 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4153 + // line internal/php7/php7.y:4148 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4160 + // line internal/php7/php7.y:4155 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4164 + // line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4171 + // line internal/php7/php7.y:4166 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4178 + // line internal/php7/php7.y:4173 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4182 + // line internal/php7/php7.y:4177 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6839,19 +6834,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4192 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4204 + // line internal/php7/php7.y:4199 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4208 + // line internal/php7/php7.y:4203 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6868,19 +6863,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4223 + // line internal/php7/php7.y:4218 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4225 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4234 + // line internal/php7/php7.y:4229 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6893,7 +6888,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4245 + // line internal/php7/php7.y:4240 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6906,7 +6901,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4256 + // line internal/php7/php7.y:4251 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6919,7 +6914,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4267 + // line internal/php7/php7.y:4262 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6932,25 +6927,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4278 + // line internal/php7/php7.y:4273 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4280 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4289 + // line internal/php7/php7.y:4284 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4288 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6963,7 +6958,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4307 + // line internal/php7/php7.y:4302 { name := &ast.Identifier{ Node: ast.Node{ @@ -6982,7 +6977,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4324 + // line internal/php7/php7.y:4319 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6996,7 +6991,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4331 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7008,7 +7003,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4349 + // line internal/php7/php7.y:4344 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7021,7 +7016,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4360 + // line internal/php7/php7.y:4355 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,13 +7029,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4374 + // line internal/php7/php7.y:4369 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4378 + // line internal/php7/php7.y:4373 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7053,7 +7048,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4384 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7066,7 +7061,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4400 + // line internal/php7/php7.y:4395 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7079,7 +7074,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4406 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7092,7 +7087,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4422 + // line internal/php7/php7.y:4417 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7105,7 +7100,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4436 + // line internal/php7/php7.y:4431 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7117,7 +7112,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4446 + // line internal/php7/php7.y:4441 { yyVAL.node = yyDollar[2].node @@ -7127,13 +7122,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4454 + // line internal/php7/php7.y:4449 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4461 + // line internal/php7/php7.y:4456 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7145,7 +7140,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4471 + // line internal/php7/php7.y:4466 { yyVAL.node = yyDollar[2].node @@ -7155,31 +7150,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4479 + // line internal/php7/php7.y:4474 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4486 + // line internal/php7/php7.y:4481 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4493 + // line internal/php7/php7.y:4488 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4497 + // line internal/php7/php7.y:4492 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4504 + // line internal/php7/php7.y:4499 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7192,7 +7187,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4515 + // line internal/php7/php7.y:4510 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7202,7 +7197,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4526 + // line internal/php7/php7.y:4521 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7215,7 +7210,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4537 + // line internal/php7/php7.y:4532 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7227,7 +7222,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4547 + // line internal/php7/php7.y:4542 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7243,7 +7238,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4561 + // line internal/php7/php7.y:4556 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7257,7 +7252,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4573 + // line internal/php7/php7.y:4568 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7269,7 +7264,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4583 + // line internal/php7/php7.y:4578 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7288,7 +7283,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4600 + // line internal/php7/php7.y:4595 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7305,13 +7300,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4618 + // line internal/php7/php7.y:4613 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4622 + // line internal/php7/php7.y:4617 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} yyVAL.list = append(yyDollar[1].list, encapsed) @@ -7324,13 +7319,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4633 + // line internal/php7/php7.y:4628 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4637 + // line internal/php7/php7.y:4632 { encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} @@ -7343,7 +7338,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4646 { name := &ast.Identifier{ Node: ast.Node{ @@ -7362,7 +7357,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4668 + // line internal/php7/php7.y:4663 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7384,7 +7379,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4688 + // line internal/php7/php7.y:4683 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7412,7 +7407,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4714 + // line internal/php7/php7.y:4709 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7427,7 +7422,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4727 + // line internal/php7/php7.y:4722 { name := &ast.Identifier{ Node: ast.Node{ @@ -7449,7 +7444,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4747 + // line internal/php7/php7.y:4742 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7473,7 +7468,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4769 + // line internal/php7/php7.y:4764 { yyVAL.node = yyDollar[2].node @@ -7483,7 +7478,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4780 + // line internal/php7/php7.y:4775 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7495,7 +7490,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4790 + // line internal/php7/php7.y:4785 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7512,7 +7507,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4805 + // line internal/php7/php7.y:4800 { var lnumber *ast.ScalarLnumber // TODO: add option to handle 64 bit integer @@ -7538,7 +7533,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4829 + // line internal/php7/php7.y:4824 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7557,7 +7552,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4849 + // line internal/php7/php7.y:4844 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7575,7 +7570,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4865 + // line internal/php7/php7.y:4860 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7597,7 +7592,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4885 + // line internal/php7/php7.y:4880 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7609,7 +7604,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4895 + // line internal/php7/php7.y:4890 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7621,7 +7616,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4905 + // line internal/php7/php7.y:4900 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7643,7 +7638,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4925 + // line internal/php7/php7.y:4920 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7655,7 +7650,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4935 + // line internal/php7/php7.y:4930 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7667,13 +7662,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4948 + // line internal/php7/php7.y:4943 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4952 + // line internal/php7/php7.y:4947 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7682,7 +7677,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4962 + // line internal/php7/php7.y:4957 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 586a9aa..b246064 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -250,7 +250,7 @@ import ( %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list -%type if_stmt const_list +%type if_stmt const_list non_empty_argument_list %type alt_if_stmt %type if_stmt_without_else %type class_const_decl @@ -280,7 +280,7 @@ import ( %type unprefixed_use_declarations inline_use_declarations property_list %type case_list trait_adaptation_list %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list -%type array_pair_list non_empty_argument_list top_statement_list +%type array_pair_list top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list %type method_modifiers variable_modifiers %type non_empty_member_modifiers name_list class_modifiers @@ -2030,66 +2030,61 @@ return_type: argument_list: '(' ')' { - $$ = &ast.ArgumentList{ast.Node{}, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) + $$ = &ast.ArgumentList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenParenthesisTkn: $1, + CloseParenthesisTkn: $2, + } } | '(' non_empty_argument_list possible_comma ')' { - $$ = &ast.ArgumentList{ast.Node{}, $2} + argumentList := $2.(*ast.ArgumentList) + argumentList.Position = position.NewTokensPosition($1, $4) + argumentList.OpenParenthesisTkn = $1 + argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3) + argumentList.CloseParenthesisTkn = $4 - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - if $3 != nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($3.SkippedTokens, $4.SkippedTokens...)) - } else { - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $4.SkippedTokens) - } + $$ = argumentList } ; non_empty_argument_list: argument { - $$ = []ast.Vertex{$1} + $$ = &ast.ArgumentList{ + Arguments: []ast.Vertex{$1}, + } } | non_empty_argument_list ',' argument { - $$ = append($1, $3) + $1.(*ast.ArgumentList).SeparatorTkns = append($1.(*ast.ArgumentList).SeparatorTkns, $2) + $1.(*ast.ArgumentList).Arguments = append($1.(*ast.ArgumentList).Arguments, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; argument: expr { - $$ = &ast.Argument{ast.Node{}, false, false, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Expr: $1, + } } | T_ELLIPSIS expr { - $$ = &ast.Argument{ast.Node{}, true, false, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.Argument{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + VariadicTkn: $1, + Expr: $2, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 8d4b885..9cc59f4 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -90,7 +90,10 @@ func (n *Identifier) Accept(v NodeVisitor) { // ArgumentList node type ArgumentList struct { Node - Arguments []Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token } func (n *ArgumentList) Accept(v NodeVisitor) { @@ -100,9 +103,9 @@ func (n *ArgumentList) Accept(v NodeVisitor) { // Argument node type Argument struct { Node - Variadic bool - IsReference bool - Expr Vertex + VariadicTkn *token.Token + AmpersandTkn *token.Token + Expr Vertex } func (n *Argument) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index d8160c1..7e11d72 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -240,16 +240,6 @@ func (v *Dump) Argument(n *ast.Argument) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Argument{\n") v.printNode(n.GetNode()) - - if n.Variadic { - v.printIndent(v.indent) - v.print("Variadic: true,\n") - } - - if n.IsReference { - v.printIndent(v.indent) - v.print("IsReference: true,\n") - } } func (v *Dump) StmtBreak(n *ast.StmtBreak) { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 67d4571..6caa793 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -465,11 +465,11 @@ func (p *PrettyPrinter) printNodeNullable(n ast.Vertex) { func (p *PrettyPrinter) printNodeArgument(n ast.Vertex) { nn := n.(*ast.Argument) - if nn.IsReference { + if nn.AmpersandTkn != nil { io.WriteString(p.w, "&") } - if nn.Variadic { + if nn.VariadicTkn != nil { io.WriteString(p.w, "...") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 2dd68a4..7f5fae5 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -561,12 +561,12 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { nn := n.(*ast.Argument) p.printFreeFloating(nn, token.Start) - if nn.IsReference { + if nn.AmpersandTkn != nil { p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) - if nn.Variadic { + if nn.VariadicTkn != nil { p.write([]byte("...")) } From e3ad9747f472a8b67d879926f0877d52c61182be Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 23:08:30 +0200 Subject: [PATCH 073/140] [refactoring] update ast structure of "Lnumber" and "Dnumber" nodes --- internal/php5/php5.go | 72 ++++++++++++++++++++++------------------- internal/php5/php5.y | 36 ++++++++++++--------- internal/php7/php7.go | 75 +++++++++++++++++++++++-------------------- internal/php7/php7.y | 49 ++++++++++++++++------------ pkg/ast/node.go | 6 ++-- 5 files changed, 133 insertions(+), 105 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 1e89fea..51b160f 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6400 +// line internal/php5/php5.y:6406 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -6923,25 +6923,25 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:4495 { - yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + NumberTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 354: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:4505 { - yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarDnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + NumberTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 355: yyDollar = yyS[yypt-1 : yypt+1] @@ -8748,7 +8748,13 @@ yydefault: { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { - yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + NumberTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } else { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} } @@ -8761,7 +8767,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6161 + // line internal/php5/php5.y:6167 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8780,7 +8786,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6187 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8794,7 +8800,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6193 + // line internal/php5/php5.y:6199 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8816,7 +8822,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6213 + // line internal/php5/php5.y:6219 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8838,7 +8844,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6233 + // line internal/php5/php5.y:6239 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8850,7 +8856,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6243 + // line internal/php5/php5.y:6249 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8862,7 +8868,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6253 + // line internal/php5/php5.y:6259 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8884,7 +8890,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6273 + // line internal/php5/php5.y:6279 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8896,7 +8902,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6283 + // line internal/php5/php5.y:6289 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8908,13 +8914,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6296 + // line internal/php5/php5.y:6302 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6300 + // line internal/php5/php5.y:6306 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8923,19 +8929,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6316 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6314 + // line internal/php5/php5.y:6320 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6321 + // line internal/php5/php5.y:6327 { target := &ast.Identifier{ Node: ast.Node{ @@ -8955,7 +8961,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6339 + // line internal/php5/php5.y:6345 { target := &ast.Identifier{ Node: ast.Node{ @@ -8975,7 +8981,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6360 + // line internal/php5/php5.y:6366 { target := &ast.Identifier{ Node: ast.Node{ @@ -8995,7 +9001,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6381 + // line internal/php5/php5.y:6387 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index f905e1d..e529812 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -4493,23 +4493,23 @@ ctor_arguments: common_scalar: T_LNUMBER { - $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + NumberTkn: $1, + Value: $1.Value, + } } | T_DNUMBER { - $$ = &ast.ScalarDnumber{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarDnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + NumberTkn: $1, + Value: $1.Value, + } } | T_CONSTANT_ENCAPSED_STRING { @@ -6146,7 +6146,13 @@ encaps_var_offset: { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { - $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} + $$ = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + NumberTkn: $1, + Value: $1.Value, + } } else { $$ = &ast.ScalarString{ast.Node{}, $1.Value} } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index a66ce92..1ee2e1f 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4964 +// line internal/php7/php7.y:4971 // line yacctab:1 var yyExca = [...]int{ @@ -6549,25 +6549,25 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:3942 { - yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + NumberTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 403: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:3952 { - yyVAL.node = &ast.ScalarDnumber{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarDnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + NumberTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 404: yyDollar = yyS[yypt-1 : yypt+1] @@ -7494,7 +7494,13 @@ yydefault: { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { - yyVAL.node = &ast.ScalarLnumber{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + NumberTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } else { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} } @@ -7507,15 +7513,19 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4800 + // line internal/php7/php7.y:4806 { - var lnumber *ast.ScalarLnumber - // TODO: add option to handle 64 bit integer _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil if isInt { - lnumber = &ast.ScalarLnumber{ast.Node{}, yyDollar[2].token.Value} + lnumber := &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + NumberTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, lnumber} } else { yyDollar[2].token.Value = append([]byte("-"), yyDollar[2].token.Value...) @@ -7523,9 +7533,6 @@ yydefault: } // save position - if isInt { - lnumber.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - } yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) // save comments @@ -7533,7 +7540,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4824 + // line internal/php7/php7.y:4831 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7552,7 +7559,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4844 + // line internal/php7/php7.y:4851 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7570,7 +7577,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4860 + // line internal/php7/php7.y:4867 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7592,7 +7599,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4880 + // line internal/php7/php7.y:4887 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7604,7 +7611,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4890 + // line internal/php7/php7.y:4897 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7616,7 +7623,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4900 + // line internal/php7/php7.y:4907 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7638,7 +7645,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4920 + // line internal/php7/php7.y:4927 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7650,7 +7657,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4930 + // line internal/php7/php7.y:4937 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7662,13 +7669,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4943 + // line internal/php7/php7.y:4950 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4947 + // line internal/php7/php7.y:4954 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7677,7 +7684,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4957 + // line internal/php7/php7.y:4964 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index b246064..d171ae7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3940,23 +3940,23 @@ dereferencable_scalar: scalar: T_LNUMBER { - $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + NumberTkn: $1, + Value: $1.Value, + } } | T_DNUMBER { - $$ = &ast.ScalarDnumber{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarDnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + NumberTkn: $1, + Value: $1.Value, + } } | T_LINE { @@ -4785,7 +4785,13 @@ encaps_var_offset: { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { - $$ = &ast.ScalarLnumber{ast.Node{}, $1.Value} + $$ = &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + NumberTkn: $1, + Value: $1.Value, + } } else { $$ = &ast.ScalarString{ast.Node{}, $1.Value} } @@ -4798,13 +4804,17 @@ encaps_var_offset: } | '-' T_NUM_STRING { - var lnumber *ast.ScalarLnumber - // TODO: add option to handle 64 bit integer _, err := strconv.Atoi(string($2.Value)); isInt := err == nil if isInt { - lnumber = &ast.ScalarLnumber{ast.Node{}, $2.Value} + lnumber := &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + NumberTkn: $2, + Value: $2.Value, + } $$ = &ast.ExprUnaryMinus{ast.Node{}, lnumber} } else { $2.Value = append([]byte("-"), $2.Value...) @@ -4812,9 +4822,6 @@ encaps_var_offset: } // save position - if isInt { - lnumber.GetNode().Position = position.NewTokensPosition($1, $2) - } $$.GetNode().Position = position.NewTokensPosition($1, $2) // save comments diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 9cc59f4..5e6e373 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -115,7 +115,8 @@ func (n *Argument) Accept(v NodeVisitor) { // ScalarDnumber node type ScalarDnumber struct { Node - Value []byte + NumberTkn *token.Token + Value []byte } func (n *ScalarDnumber) Accept(v NodeVisitor) { @@ -156,7 +157,8 @@ func (n *ScalarHeredoc) Accept(v NodeVisitor) { // ScalarLnumber node type ScalarLnumber struct { Node - Value []byte + NumberTkn *token.Token + Value []byte } func (n *ScalarLnumber) Accept(v NodeVisitor) { From e6a23dfa3a58902963b03e615f79623087632229 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 23:36:45 +0200 Subject: [PATCH 074/140] [refactoring] update ast structure of "Encapsed", "EncapsedStringPart" and "Heredoc" nodes --- internal/php5/php5.go | 463 ++++++++++++++++++---------------- internal/php5/php5.y | 119 +++++---- internal/php7/php7.go | 319 ++++++++++++----------- internal/php7/php7.y | 119 +++++---- pkg/ast/node.go | 12 +- pkg/ast/visitor/dump.go | 3 - pkg/printer/pretty_printer.go | 4 +- pkg/printer/printer.go | 4 +- 8 files changed, 556 insertions(+), 487 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 51b160f..51ae856 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6406 +// line internal/php5/php5.y:6423 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -6895,33 +6895,37 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:4469 { - part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{part} - - // save position - part.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.list = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + EncapsedStrTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + } } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4477 + // line internal/php5/php5.y:4481 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4484 + // line internal/php5/php5.y:4488 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4488 + // line internal/php5/php5.y:4492 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4495 + // line internal/php5/php5.y:4499 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6933,7 +6937,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4505 + // line internal/php5/php5.y:4509 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6945,7 +6949,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4515 + // line internal/php5/php5.y:4519 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6957,7 +6961,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4529 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6969,7 +6973,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4535 + // line internal/php5/php5.y:4539 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6981,7 +6985,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4545 + // line internal/php5/php5.y:4549 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6993,7 +6997,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4555 + // line internal/php5/php5.y:4559 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7005,7 +7009,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4565 + // line internal/php5/php5.y:4569 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7017,7 +7021,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4575 + // line internal/php5/php5.y:4579 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7029,7 +7033,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4585 + // line internal/php5/php5.y:4589 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7041,33 +7045,40 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4595 + // line internal/php5/php5.y:4599 { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenHeredocTkn: yyDollar[1].token, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + EncapsedStrTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + }, + CloseHeredocTkn: yyDollar[3].token, + } } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4607 + // line internal/php5/php5.y:4618 { - yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + OpenHeredocTkn: yyDollar[1].token, + CloseHeredocTkn: yyDollar[2].token, + } } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4620 + // line internal/php5/php5.y:4631 { target := &ast.Identifier{ Node: ast.Node{ @@ -7087,25 +7098,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4641 + // line internal/php5/php5.y:4652 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4648 + // line internal/php5/php5.y:4659 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4652 + // line internal/php5/php5.y:4663 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4656 + // line internal/php5/php5.y:4667 { name := &ast.NameName{ Node: ast.Node{ @@ -7120,7 +7131,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4680 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7137,7 +7148,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4684 + // line internal/php5/php5.y:4695 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7153,7 +7164,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4698 + // line internal/php5/php5.y:4709 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7167,7 +7178,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4710 + // line internal/php5/php5.y:4721 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7180,13 +7191,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4721 + // line internal/php5/php5.y:4732 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4725 + // line internal/php5/php5.y:4736 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7198,13 +7209,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4746 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4742 + // line internal/php5/php5.y:4753 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7217,7 +7228,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4753 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7230,7 +7241,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4764 + // line internal/php5/php5.y:4775 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7243,7 +7254,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4775 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7256,7 +7267,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4797 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7269,7 +7280,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4797 + // line internal/php5/php5.y:4808 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7282,7 +7293,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4808 + // line internal/php5/php5.y:4819 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7295,7 +7306,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4819 + // line internal/php5/php5.y:4830 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7307,7 +7318,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4829 + // line internal/php5/php5.y:4840 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7319,7 +7330,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4839 + // line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7332,7 +7343,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4850 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7345,7 +7356,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4861 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7358,7 +7369,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4872 + // line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7371,7 +7382,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4883 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7384,7 +7395,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4894 + // line internal/php5/php5.y:4905 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7397,7 +7408,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4905 + // line internal/php5/php5.y:4916 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7410,7 +7421,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4916 + // line internal/php5/php5.y:4927 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7423,7 +7434,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4927 + // line internal/php5/php5.y:4938 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7436,7 +7447,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4938 + // line internal/php5/php5.y:4949 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7449,7 +7460,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4949 + // line internal/php5/php5.y:4960 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7462,7 +7473,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4960 + // line internal/php5/php5.y:4971 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7475,7 +7486,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4971 + // line internal/php5/php5.y:4982 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7488,7 +7499,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4982 + // line internal/php5/php5.y:4993 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7501,7 +7512,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4993 + // line internal/php5/php5.y:5004 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7515,7 +7526,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5005 + // line internal/php5/php5.y:5016 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7528,7 +7539,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5016 + // line internal/php5/php5.y:5027 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7541,7 +7552,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5027 + // line internal/php5/php5.y:5038 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7554,7 +7565,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5038 + // line internal/php5/php5.y:5049 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7567,7 +7578,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5049 + // line internal/php5/php5.y:5060 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7581,7 +7592,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5061 + // line internal/php5/php5.y:5072 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7595,7 +7606,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5073 + // line internal/php5/php5.y:5084 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7607,7 +7618,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5083 + // line internal/php5/php5.y:5094 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7619,7 +7630,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5093 + // line internal/php5/php5.y:5104 { yyVAL.node = yyDollar[2].node @@ -7629,13 +7640,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5115 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5108 + // line internal/php5/php5.y:5119 { name := &ast.NameName{ Node: ast.Node{ @@ -7650,7 +7661,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5121 + // line internal/php5/php5.y:5132 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7667,7 +7678,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5136 + // line internal/php5/php5.y:5147 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7683,7 +7694,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5153 + // line internal/php5/php5.y:5164 { name := &ast.Identifier{ Node: ast.Node{ @@ -7702,49 +7713,51 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5170 + // line internal/php5/php5.y:5181 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5174 + // line internal/php5/php5.y:5185 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5178 + // line internal/php5/php5.y:5189 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5182 + // line internal/php5/php5.y:5193 { - yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenQoteTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseQoteTkn: yyDollar[1].token, + } } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5192 + // line internal/php5/php5.y:5204 { - yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenHeredocTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseHeredocTkn: yyDollar[3].token, + } } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5202 + // line internal/php5/php5.y:5215 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -7756,13 +7769,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5215 + // line internal/php5/php5.y:5228 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5219 + // line internal/php5/php5.y:5232 { yyVAL.list = yyDollar[1].list @@ -7773,19 +7786,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5231 + // line internal/php5/php5.y:5244 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5235 + // line internal/php5/php5.y:5248 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5242 + // line internal/php5/php5.y:5255 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7800,7 +7813,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5255 + // line internal/php5/php5.y:5268 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7814,7 +7827,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5267 + // line internal/php5/php5.y:5280 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7828,7 +7841,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5279 + // line internal/php5/php5.y:5292 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7841,19 +7854,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5293 + // line internal/php5/php5.y:5306 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5297 + // line internal/php5/php5.y:5310 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5304 + // line internal/php5/php5.y:5317 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7870,7 +7883,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5319 + // line internal/php5/php5.y:5332 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7887,25 +7900,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5338 + // line internal/php5/php5.y:5351 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5346 + // line internal/php5/php5.y:5359 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5353 + // line internal/php5/php5.y:5366 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5360 + // line internal/php5/php5.y:5373 { yyVAL.node = yyDollar[1].node @@ -7963,25 +7976,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5416 + // line internal/php5/php5.y:5429 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5423 + // line internal/php5/php5.y:5436 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5427 + // line internal/php5/php5.y:5440 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5448 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7995,7 +8008,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5450 + // line internal/php5/php5.y:5463 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8009,7 +8022,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5462 + // line internal/php5/php5.y:5475 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8023,7 +8036,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5477 + // line internal/php5/php5.y:5490 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8032,31 +8045,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5487 + // line internal/php5/php5.y:5500 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5491 + // line internal/php5/php5.y:5504 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5495 + // line internal/php5/php5.y:5508 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5502 + // line internal/php5/php5.y:5515 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5519 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8068,7 +8081,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5519 + // line internal/php5/php5.y:5532 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8081,7 +8094,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5530 + // line internal/php5/php5.y:5543 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8094,13 +8107,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5544 + // line internal/php5/php5.y:5557 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5551 + // line internal/php5/php5.y:5564 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8113,7 +8126,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5575 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8126,31 +8139,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5589 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5580 + // line internal/php5/php5.y:5593 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5584 + // line internal/php5/php5.y:5597 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5605 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5596 + // line internal/php5/php5.y:5609 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8162,13 +8175,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5606 + // line internal/php5/php5.y:5619 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5613 + // line internal/php5/php5.y:5626 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8181,7 +8194,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5624 + // line internal/php5/php5.y:5637 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8194,13 +8207,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5635 + // line internal/php5/php5.y:5648 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5643 + // line internal/php5/php5.y:5656 { name := &ast.Identifier{ Node: ast.Node{ @@ -8219,7 +8232,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5660 + // line internal/php5/php5.y:5673 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8233,25 +8246,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5675 + // line internal/php5/php5.y:5688 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5679 + // line internal/php5/php5.y:5692 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5687 + // line internal/php5/php5.y:5700 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5691 + // line internal/php5/php5.y:5704 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8261,7 +8274,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5702 + // line internal/php5/php5.y:5715 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8275,7 +8288,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5714 + // line internal/php5/php5.y:5727 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8289,7 +8302,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5726 + // line internal/php5/php5.y:5739 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8299,7 +8312,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5737 + // line internal/php5/php5.y:5750 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8311,7 +8324,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5747 + // line internal/php5/php5.y:5760 { yyVAL.node = yyDollar[2].node @@ -8324,7 +8337,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5761 + // line internal/php5/php5.y:5774 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8337,7 +8350,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5772 + // line internal/php5/php5.y:5785 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8354,7 +8367,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5790 + // line internal/php5/php5.y:5803 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8367,7 +8380,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5801 + // line internal/php5/php5.y:5814 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8377,7 +8390,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5813 + // line internal/php5/php5.y:5826 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8389,7 +8402,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5823 + // line internal/php5/php5.y:5836 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8405,19 +8418,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5837 + // line internal/php5/php5.y:5850 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5845 + // line internal/php5/php5.y:5858 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5849 + // line internal/php5/php5.y:5862 { yyVAL.list = yyDollar[1].list @@ -8432,7 +8445,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5865 + // line internal/php5/php5.y:5878 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8447,7 +8460,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5878 + // line internal/php5/php5.y:5891 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8461,7 +8474,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5890 + // line internal/php5/php5.y:5903 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8475,7 +8488,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5902 + // line internal/php5/php5.y:5915 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8488,7 +8501,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5913 + // line internal/php5/php5.y:5926 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8506,7 +8519,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5929 + // line internal/php5/php5.y:5942 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8522,7 +8535,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5943 + // line internal/php5/php5.y:5956 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8539,7 +8552,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5958 + // line internal/php5/php5.y:5971 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8554,45 +8567,49 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5974 + // line internal/php5/php5.y:5987 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5978 + // line internal/php5/php5.y:5991 { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} - yyVAL.list = append(yyDollar[1].list, encapsed) - - // save position - encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.SkippedTokens) + yyVAL.list = append( + yyDollar[1].list, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + EncapsedStrTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + ) } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5989 + // line internal/php5/php5.y:6004 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5993 + // line internal/php5/php5.y:6008 { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.list = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + EncapsedStrTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + yyDollar[2].node, + } } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6007 + // line internal/php5/php5.y:6024 { name := &ast.Identifier{ Node: ast.Node{ @@ -8611,7 +8628,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6024 + // line internal/php5/php5.y:6041 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8633,7 +8650,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6044 + // line internal/php5/php5.y:6061 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8661,7 +8678,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6070 + // line internal/php5/php5.y:6087 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8676,7 +8693,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6083 + // line internal/php5/php5.y:6100 { name := &ast.Identifier{ Node: ast.Node{ @@ -8698,7 +8715,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6103 + // line internal/php5/php5.y:6120 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8722,7 +8739,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6125 + // line internal/php5/php5.y:6142 { yyVAL.node = yyDollar[2].node @@ -8732,7 +8749,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6136 + // line internal/php5/php5.y:6153 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -8744,7 +8761,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6146 + // line internal/php5/php5.y:6163 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8767,7 +8784,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6167 + // line internal/php5/php5.y:6184 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8786,7 +8803,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6187 + // line internal/php5/php5.y:6204 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8800,7 +8817,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6199 + // line internal/php5/php5.y:6216 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8822,7 +8839,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6219 + // line internal/php5/php5.y:6236 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8844,7 +8861,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6239 + // line internal/php5/php5.y:6256 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8856,7 +8873,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6249 + // line internal/php5/php5.y:6266 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8868,7 +8885,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6259 + // line internal/php5/php5.y:6276 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8890,7 +8907,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6279 + // line internal/php5/php5.y:6296 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8902,7 +8919,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6289 + // line internal/php5/php5.y:6306 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8914,13 +8931,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6302 + // line internal/php5/php5.y:6319 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6306 + // line internal/php5/php5.y:6323 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8929,19 +8946,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6316 + // line internal/php5/php5.y:6333 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6320 + // line internal/php5/php5.y:6337 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6327 + // line internal/php5/php5.y:6344 { target := &ast.Identifier{ Node: ast.Node{ @@ -8961,7 +8978,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6345 + // line internal/php5/php5.y:6362 { target := &ast.Identifier{ Node: ast.Node{ @@ -8981,7 +8998,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6366 + // line internal/php5/php5.y:6383 { target := &ast.Identifier{ Node: ast.Node{ @@ -9001,7 +9018,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6387 + // line internal/php5/php5.y:6404 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index e529812..383a19d 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -4467,11 +4467,15 @@ backticks_expr: } | T_ENCAPSED_AND_WHITESPACE { - part := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} - $$ = []ast.Vertex{part} - - // save position - part.GetNode().Position = position.NewTokenPosition($1) + $$ = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + EncapsedStrTkn: $1, + Value: $1.Value, + }, + } } | encaps_list { @@ -4593,25 +4597,32 @@ common_scalar: } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} - $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, []ast.Vertex{encapsed}} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenHeredocTkn: $1, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + EncapsedStrTkn: $2, + Value: $2.Value, + }, + }, + CloseHeredocTkn: $3, + } } | T_START_HEREDOC T_END_HEREDOC { - $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenHeredocTkn: $1, + CloseHeredocTkn: $2, + } } ; @@ -5180,23 +5191,25 @@ scalar: } | '"' encaps_list '"' { - $$ = &ast.ScalarEncapsed{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenQoteTkn: $1, + Parts: $2, + CloseQoteTkn: $1, + } } | T_START_HEREDOC encaps_list T_END_HEREDOC { - $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenHeredocTkn: $1, + Parts: $2, + CloseHeredocTkn: $3, + } } | T_CLASS_C { @@ -5976,14 +5989,16 @@ encaps_list: } | encaps_list T_ENCAPSED_AND_WHITESPACE { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} - $$ = append($1, encapsed) - - // save position - encapsed.GetNode().Position = position.NewTokenPosition($2) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.SkippedTokens) + $$ = append( + $1, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + EncapsedStrTkn: $2, + Value: $2.Value, + }, + ) } | encaps_var { @@ -5991,14 +6006,16 @@ encaps_list: } | T_ENCAPSED_AND_WHITESPACE encaps_var { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} - $$ = []ast.Vertex{encapsed, $2} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.SkippedTokens) + $$ = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + EncapsedStrTkn: $1, + Value: $1.Value, + }, + $2, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 1ee2e1f..0ae49e3 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4971 +// line internal/php7/php7.y:4988 // line yacctab:1 var yyExca = [...]int{ @@ -6482,33 +6482,37 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:3880 { - part := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{part} - - // save position - part.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + yyVAL.list = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + EncapsedStrTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + } } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3888 + // line internal/php7/php7.y:3892 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3895 + // line internal/php7/php7.y:3899 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3899 + // line internal/php7/php7.y:3903 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3906 + // line internal/php7/php7.y:3910 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6522,7 +6526,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3918 + // line internal/php7/php7.y:3922 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6535,7 +6539,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3933 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -6547,7 +6551,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3942 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6559,7 +6563,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6571,7 +6575,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3962 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6583,7 +6587,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3972 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6595,7 +6599,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3982 + // line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6607,7 +6611,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3992 + // line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6619,7 +6623,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4002 + // line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6631,7 +6635,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4012 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6643,7 +6647,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4022 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6655,7 +6659,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4032 + // line internal/php7/php7.y:4036 { yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} @@ -6667,69 +6671,78 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4046 { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} - yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, []ast.Vertex{encapsed}} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenHeredocTkn: yyDollar[1].token, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + EncapsedStrTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + }, + CloseHeredocTkn: yyDollar[3].token, + } } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4065 { - yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + OpenHeredocTkn: yyDollar[1].token, + CloseHeredocTkn: yyDollar[2].token, + } } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4064 + // line internal/php7/php7.y:4075 { - yyVAL.node = &ast.ScalarEncapsed{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenQoteTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseQoteTkn: yyDollar[1].token, + } } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4074 + // line internal/php7/php7.y:4086 { - yyVAL.node = &ast.ScalarHeredoc{ast.Node{}, yyDollar[1].token.Value, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenHeredocTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseHeredocTkn: yyDollar[3].token, + } } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4088 + // line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4095 + // line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6741,7 +6754,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4105 + // line internal/php7/php7.y:4118 { target := &ast.Identifier{ Node: ast.Node{ @@ -6761,7 +6774,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4123 + // line internal/php7/php7.y:4136 { target := &ast.Identifier{ Node: ast.Node{ @@ -6781,43 +6794,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4144 + // line internal/php7/php7.y:4157 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4148 + // line internal/php7/php7.y:4161 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4155 + // line internal/php7/php7.y:4168 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4159 + // line internal/php7/php7.y:4172 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4166 + // line internal/php7/php7.y:4179 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4173 + // line internal/php7/php7.y:4186 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4177 + // line internal/php7/php7.y:4190 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6834,19 +6847,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4192 + // line internal/php7/php7.y:4205 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4199 + // line internal/php7/php7.y:4212 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4203 + // line internal/php7/php7.y:4216 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6863,19 +6876,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4218 + // line internal/php7/php7.y:4231 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4225 + // line internal/php7/php7.y:4238 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4229 + // line internal/php7/php7.y:4242 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6888,7 +6901,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4240 + // line internal/php7/php7.y:4253 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6901,7 +6914,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6914,7 +6927,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4262 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6927,25 +6940,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4273 + // line internal/php7/php7.y:4286 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4280 + // line internal/php7/php7.y:4293 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4284 + // line internal/php7/php7.y:4297 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4288 + // line internal/php7/php7.y:4301 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6958,7 +6971,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4302 + // line internal/php7/php7.y:4315 { name := &ast.Identifier{ Node: ast.Node{ @@ -6977,7 +6990,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4319 + // line internal/php7/php7.y:4332 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6991,7 +7004,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4331 + // line internal/php7/php7.y:4344 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7003,7 +7016,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4344 + // line internal/php7/php7.y:4357 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7016,7 +7029,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4355 + // line internal/php7/php7.y:4368 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7029,13 +7042,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4369 + // line internal/php7/php7.y:4382 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4373 + // line internal/php7/php7.y:4386 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7048,7 +7061,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4384 + // line internal/php7/php7.y:4397 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7061,7 +7074,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4395 + // line internal/php7/php7.y:4408 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7074,7 +7087,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4406 + // line internal/php7/php7.y:4419 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7087,7 +7100,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4417 + // line internal/php7/php7.y:4430 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7100,7 +7113,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4431 + // line internal/php7/php7.y:4444 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7112,7 +7125,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4441 + // line internal/php7/php7.y:4454 { yyVAL.node = yyDollar[2].node @@ -7122,13 +7135,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4449 + // line internal/php7/php7.y:4462 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4456 + // line internal/php7/php7.y:4469 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7140,7 +7153,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4466 + // line internal/php7/php7.y:4479 { yyVAL.node = yyDollar[2].node @@ -7150,31 +7163,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4474 + // line internal/php7/php7.y:4487 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4481 + // line internal/php7/php7.y:4494 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4488 + // line internal/php7/php7.y:4501 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4505 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4499 + // line internal/php7/php7.y:4512 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7187,7 +7200,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4510 + // line internal/php7/php7.y:4523 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7197,7 +7210,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4521 + // line internal/php7/php7.y:4534 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7210,7 +7223,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4532 + // line internal/php7/php7.y:4545 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7222,7 +7235,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4542 + // line internal/php7/php7.y:4555 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7238,7 +7251,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4556 + // line internal/php7/php7.y:4569 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7252,7 +7265,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4568 + // line internal/php7/php7.y:4581 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7264,7 +7277,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4578 + // line internal/php7/php7.y:4591 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7283,7 +7296,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4608 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7300,45 +7313,49 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4626 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4617 + // line internal/php7/php7.y:4630 { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[2].token.Value} - yyVAL.list = append(yyDollar[1].list, encapsed) - - // save position - encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[2].token.SkippedTokens) + yyVAL.list = append( + yyDollar[1].list, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + EncapsedStrTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + ) } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4628 + // line internal/php7/php7.y:4643 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4632 + // line internal/php7/php7.y:4647 { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, yyDollar[1].token.Value} - yyVAL.list = []ast.Vertex{encapsed, yyDollar[2].node} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.list = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + EncapsedStrTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + yyDollar[2].node, + } } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4663 { name := &ast.Identifier{ Node: ast.Node{ @@ -7357,7 +7374,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4680 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7379,7 +7396,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4683 + // line internal/php7/php7.y:4700 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7407,7 +7424,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4709 + // line internal/php7/php7.y:4726 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7422,7 +7439,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4722 + // line internal/php7/php7.y:4739 { name := &ast.Identifier{ Node: ast.Node{ @@ -7444,7 +7461,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4759 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7468,7 +7485,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4781 { yyVAL.node = yyDollar[2].node @@ -7478,7 +7495,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4775 + // line internal/php7/php7.y:4792 { yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} @@ -7490,7 +7507,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4785 + // line internal/php7/php7.y:4802 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7513,7 +7530,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4806 + // line internal/php7/php7.y:4823 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7540,7 +7557,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4848 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7559,7 +7576,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4851 + // line internal/php7/php7.y:4868 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7577,7 +7594,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4867 + // line internal/php7/php7.y:4884 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7599,7 +7616,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4887 + // line internal/php7/php7.y:4904 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7611,7 +7628,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4897 + // line internal/php7/php7.y:4914 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7623,7 +7640,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4907 + // line internal/php7/php7.y:4924 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7645,7 +7662,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4927 + // line internal/php7/php7.y:4944 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7657,7 +7674,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4937 + // line internal/php7/php7.y:4954 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7669,13 +7686,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4967 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4954 + // line internal/php7/php7.y:4971 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7684,7 +7701,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4964 + // line internal/php7/php7.y:4981 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index d171ae7..f896af8 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3878,11 +3878,15 @@ backticks_expr: } | T_ENCAPSED_AND_WHITESPACE { - part := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} - $$ = []ast.Vertex{part} - - // save position - part.GetNode().Position = position.NewTokenPosition($1) + $$ = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + EncapsedStrTkn: $1, + Value: $1.Value, + }, + } } | encaps_list { @@ -4040,45 +4044,54 @@ scalar: } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} - $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, []ast.Vertex{encapsed}} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenHeredocTkn: $1, + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + EncapsedStrTkn: $2, + Value: $2.Value, + }, + }, + CloseHeredocTkn: $3, + } } | T_START_HEREDOC T_END_HEREDOC { - $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenHeredocTkn: $1, + CloseHeredocTkn: $2, + } } | '"' encaps_list '"' { - $$ = &ast.ScalarEncapsed{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarEncapsed{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenQoteTkn: $1, + Parts: $2, + CloseQoteTkn: $1, + } } | T_START_HEREDOC encaps_list T_END_HEREDOC { - $$ = &ast.ScalarHeredoc{ast.Node{}, $1.Value, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarHeredoc{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenHeredocTkn: $1, + Parts: $2, + CloseHeredocTkn: $3, + } } | dereferencable_scalar { @@ -4615,14 +4628,16 @@ encaps_list: } | encaps_list T_ENCAPSED_AND_WHITESPACE { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $2.Value} - $$ = append($1, encapsed) - - // save position - encapsed.GetNode().Position = position.NewTokenPosition($2) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $2.SkippedTokens) + $$ = append( + $1, + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + EncapsedStrTkn: $2, + Value: $2.Value, + }, + ) } | encaps_var { @@ -4630,14 +4645,16 @@ encaps_list: } | T_ENCAPSED_AND_WHITESPACE encaps_var { - encapsed := &ast.ScalarEncapsedStringPart{ast.Node{}, $1.Value} - $$ = []ast.Vertex{encapsed, $2} - - // save position - encapsed.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(encapsed, token.Start, $1.SkippedTokens) + $$ = []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + EncapsedStrTkn: $1, + Value: $1.Value, + }, + $2, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 5e6e373..a1b04f4 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -126,7 +126,9 @@ func (n *ScalarDnumber) Accept(v NodeVisitor) { // ScalarEncapsed node type ScalarEncapsed struct { Node - Parts []Vertex + OpenQoteTkn *token.Token + Parts []Vertex + CloseQoteTkn *token.Token } func (n *ScalarEncapsed) Accept(v NodeVisitor) { @@ -136,7 +138,8 @@ func (n *ScalarEncapsed) Accept(v NodeVisitor) { // ScalarEncapsedStringPart node type ScalarEncapsedStringPart struct { Node - Value []byte + EncapsedStrTkn *token.Token + Value []byte } func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { @@ -146,8 +149,9 @@ func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { // ScalarHeredoc node type ScalarHeredoc struct { Node - Label []byte - Parts []Vertex + OpenHeredocTkn *token.Token + Parts []Vertex + CloseHeredocTkn *token.Token } func (n *ScalarHeredoc) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 7e11d72..15c3226 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -1224,9 +1224,6 @@ func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarHeredoc{\n") v.printNode(n.GetNode()) - - v.printIndent(v.indent) - v.print(fmt.Sprintf("Label: %q,\n", n.Label)) } func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 6caa793..b1e411f 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -558,7 +558,7 @@ func (p *PrettyPrinter) printScalarEncapsed(n ast.Vertex) { func (p *PrettyPrinter) printScalarHeredoc(n ast.Vertex) { nn := n.(*ast.ScalarHeredoc) - io.WriteString(p.w, string(nn.Label)) + io.WriteString(p.w, string(nn.OpenHeredocTkn.Value)) for _, part := range nn.Parts { switch part.(type) { @@ -571,7 +571,7 @@ func (p *PrettyPrinter) printScalarHeredoc(n ast.Vertex) { } } - io.WriteString(p.w, strings.Trim(string(nn.Label), "<\"'\n")) + io.WriteString(p.w, strings.Trim(string(nn.OpenHeredocTkn.Value), "<\"'\n")) } func (p *PrettyPrinter) printScalarMagicConstant(n ast.Vertex) { diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 7f5fae5..4925c35 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -687,7 +687,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) p.bufStart = "" - p.write(nn.Label) + p.write(nn.OpenHeredocTkn.Value) for _, part := range nn.Parts { switch part.(type) { @@ -710,7 +710,7 @@ func (p *Printer) printScalarHeredoc(n ast.Vertex) { } } - p.write([]byte(strings.Trim(string(nn.Label), "<\"'\n"))) + p.write([]byte(strings.Trim(string(nn.OpenHeredocTkn.Value), "<\"'\n"))) p.printFreeFloating(nn, token.End) } From 3bda40e8ce866c7574c84f8883553cc72aa97d01 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 20 Nov 2020 23:53:58 +0200 Subject: [PATCH 075/140] [refactoring] update ast structure of "MagicConstant" and "String" nodes --- internal/php5/php5.go | 1214 +++++++++++++++++++++-------------------- internal/php5/php5.y | 172 +++--- internal/php7/php7.go | 1159 +++++++++++++++++++-------------------- internal/php7/php7.y | 171 +++--- pkg/ast/node.go | 7 +- 5 files changed, 1374 insertions(+), 1349 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 51ae856..704561a 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6423 +// line internal/php5/php5.y:6433 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2326,7 +2326,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:275 +// line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2335,7 +2335,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:285 +// line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2348,13 +2348,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:296 +// line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:303 +// line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2368,7 +2368,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:315 +// line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2381,32 +2381,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:329 +// line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:346 +// line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2420,7 +2420,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:358 +// line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2438,7 +2438,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:374 +// line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2458,7 +2458,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:392 +// line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2472,7 +2472,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:404 +// line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2485,7 +2485,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:415 +// line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2505,7 +2505,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:433 +// line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2525,7 +2525,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:451 +// line internal/php5/php5.y:451 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2533,7 +2533,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:460 +// line internal/php5/php5.y:460 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2541,13 +2541,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:466 +// line internal/php5/php5.y:466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:473 +// line internal/php5/php5.y:473 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2563,7 +2563,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:487 +// line internal/php5/php5.y:487 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2587,7 +2587,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:509 +// line internal/php5/php5.y:509 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2604,7 +2604,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:524 +// line internal/php5/php5.y:524 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:550 +// line internal/php5/php5.y:550 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2637,13 +2637,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:556 +// line internal/php5/php5.y:556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:563 +// line internal/php5/php5.y:563 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2659,7 +2659,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:577 +// line internal/php5/php5.y:577 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2683,7 +2683,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:599 +// line internal/php5/php5.y:599 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2700,7 +2700,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:614 +// line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2725,7 +2725,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:640 +// line internal/php5/php5.y:640 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2733,13 +2733,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:646 +// line internal/php5/php5.y:646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:653 +// line internal/php5/php5.y:653 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:667 +// line internal/php5/php5.y:667 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2779,7 +2779,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:689 +// line internal/php5/php5.y:689 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2796,7 +2796,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:704 +// line internal/php5/php5.y:704 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:730 +// line internal/php5/php5.y:730 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2847,7 +2847,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:754 +// line internal/php5/php5.y:754 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2876,7 +2876,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:784 +// line internal/php5/php5.y:784 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2889,38 +2889,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:795 +// line internal/php5/php5.y:795 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:803 +// line internal/php5/php5.y:803 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:808 +// line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:812 +// line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:816 +// line internal/php5/php5.y:816 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:820 +// line internal/php5/php5.y:820 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2934,13 +2934,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:836 +// line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:840 +// line internal/php5/php5.y:840 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2958,7 +2958,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:859 +// line internal/php5/php5.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2971,7 +2971,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:870 +// line internal/php5/php5.y:870 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2995,7 +2995,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:892 +// line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3021,7 +3021,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:916 +// line internal/php5/php5.y:916 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3033,7 +3033,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:926 +// line internal/php5/php5.y:926 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3050,7 +3050,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:941 +// line internal/php5/php5.y:941 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3066,7 +3066,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:955 +// line internal/php5/php5.y:955 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3078,7 +3078,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:965 +// line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3090,7 +3090,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:975 +// line internal/php5/php5.y:975 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3103,7 +3103,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:986 +// line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3115,7 +3115,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:996 +// line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3128,7 +3128,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1007 +// line internal/php5/php5.y:1007 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3140,7 +3140,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1017 +// line internal/php5/php5.y:1017 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3153,7 +3153,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1028 +// line internal/php5/php5.y:1028 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3166,7 +3166,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1039 +// line internal/php5/php5.y:1039 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3180,7 +3180,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1051 +// line internal/php5/php5.y:1051 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3191,7 +3191,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1060 +// line internal/php5/php5.y:1060 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3202,7 +3202,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1069 +// line internal/php5/php5.y:1069 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3212,7 +3212,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1077 +// line internal/php5/php5.y:1077 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3224,7 +3224,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1087 +// line internal/php5/php5.y:1087 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3238,7 +3238,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1099 +// line internal/php5/php5.y:1099 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3250,7 +3250,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1109 +// line internal/php5/php5.y:1109 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3270,7 +3270,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1127 +// line internal/php5/php5.y:1127 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3290,7 +3290,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1145 +// line internal/php5/php5.y:1145 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3303,7 +3303,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1156 +// line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3314,7 +3314,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1165 +// line internal/php5/php5.y:1165 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3333,7 +3333,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1182 +// line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3346,7 +3346,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1193 +// line internal/php5/php5.y:1193 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3365,13 +3365,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1213 +// line internal/php5/php5.y:1213 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1217 +// line internal/php5/php5.y:1217 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3404,13 +3404,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1251 +// line internal/php5/php5.y:1251 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1255 +// line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3424,31 +3424,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1270 +// line internal/php5/php5.y:1270 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1274 +// line internal/php5/php5.y:1274 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1281 +// line internal/php5/php5.y:1281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1285 +// line internal/php5/php5.y:1285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1292 +// line internal/php5/php5.y:1292 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3480,7 +3480,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1325 +// line internal/php5/php5.y:1325 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3488,7 +3488,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1331 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3497,49 +3497,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1341 +// line internal/php5/php5.y:1341 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1348 +// line internal/php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1355 +// line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1362 +// line internal/php5/php5.y:1362 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1366 +// line internal/php5/php5.y:1366 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1373 +// line internal/php5/php5.y:1373 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1377 +// line internal/php5/php5.y:1377 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1384 +// line internal/php5/php5.y:1384 { name := &ast.Identifier{ Node: ast.Node{ @@ -3564,7 +3564,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1410 +// line internal/php5/php5.y:1410 { name := &ast.Identifier{ Node: ast.Node{ @@ -3596,7 +3596,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1440 +// line internal/php5/php5.y:1440 { name := &ast.Identifier{ Node: ast.Node{ @@ -3617,7 +3617,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1463 +// line internal/php5/php5.y:1463 { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} @@ -3629,7 +3629,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1473 +// line internal/php5/php5.y:1473 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3649,7 +3649,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1491 +// line internal/php5/php5.y:1491 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3661,7 +3661,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1501 +// line internal/php5/php5.y:1501 { classModifier := &ast.Identifier{ Node: ast.Node{ @@ -3681,13 +3681,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1522 +// line internal/php5/php5.y:1522 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1526 +// line internal/php5/php5.y:1526 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3699,19 +3699,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1539 +// line internal/php5/php5.y:1539 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1546 +// line internal/php5/php5.y:1546 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1550 +// line internal/php5/php5.y:1550 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3723,13 +3723,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1563 +// line internal/php5/php5.y:1563 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1567 +// line internal/php5/php5.y:1567 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3741,13 +3741,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1580 +// line internal/php5/php5.y:1580 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1584 +// line internal/php5/php5.y:1584 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3761,13 +3761,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1596 +// line internal/php5/php5.y:1596 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1600 +// line internal/php5/php5.y:1600 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3776,13 +3776,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1610 +// line internal/php5/php5.y:1610 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1614 +// line internal/php5/php5.y:1614 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3794,7 +3794,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1624 +// line internal/php5/php5.y:1624 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3808,7 +3808,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1639 +// line internal/php5/php5.y:1639 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3819,7 +3819,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1648 +// line internal/php5/php5.y:1648 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3839,7 +3839,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1669 +// line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3850,7 +3850,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1678 +// line internal/php5/php5.y:1678 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3870,7 +3870,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1700 +// line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3881,7 +3881,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1709 +// line internal/php5/php5.y:1709 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3901,7 +3901,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1731 +// line internal/php5/php5.y:1731 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3926,7 +3926,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1754 +// line internal/php5/php5.y:1754 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3953,7 +3953,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1783 +// line internal/php5/php5.y:1783 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3966,7 +3966,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1794 +// line internal/php5/php5.y:1794 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3980,7 +3980,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1806 +// line internal/php5/php5.y:1806 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3995,7 +3995,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1819 +// line internal/php5/php5.y:1819 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4011,13 +4011,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1837 +// line internal/php5/php5.y:1837 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1841 +// line internal/php5/php5.y:1841 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4031,7 +4031,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1853 +// line internal/php5/php5.y:1853 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4044,19 +4044,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1868 +// line internal/php5/php5.y:1868 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1872 +// line internal/php5/php5.y:1872 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1880 +// line internal/php5/php5.y:1880 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4067,7 +4067,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1889 +// line internal/php5/php5.y:1889 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4087,13 +4087,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1912 +// line internal/php5/php5.y:1912 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1916 +// line internal/php5/php5.y:1916 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4108,13 +4108,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1933 +// line internal/php5/php5.y:1933 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1937 +// line internal/php5/php5.y:1937 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4136,13 +4136,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1961 +// line internal/php5/php5.y:1961 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1965 +// line internal/php5/php5.y:1965 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4154,13 +4154,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1979 +// line internal/php5/php5.y:1979 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1983 +// line internal/php5/php5.y:1983 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4179,25 +4179,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2004 +// line internal/php5/php5.y:2004 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2008 +// line internal/php5/php5.y:2008 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2015 +// line internal/php5/php5.y:2015 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2019 +// line internal/php5/php5.y:2019 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4206,7 +4206,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2029 +// line internal/php5/php5.y:2029 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4260,7 +4260,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2081 +// line internal/php5/php5.y:2081 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4317,13 +4317,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2140 +// line internal/php5/php5.y:2140 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2144 +// line internal/php5/php5.y:2144 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4335,7 +4335,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2154 +// line internal/php5/php5.y:2154 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4347,13 +4347,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2164 +// line internal/php5/php5.y:2164 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2172 +// line internal/php5/php5.y:2172 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4365,7 +4365,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2182 +// line internal/php5/php5.y:2182 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4376,7 +4376,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2191 +// line internal/php5/php5.y:2191 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4396,7 +4396,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2213 +// line internal/php5/php5.y:2213 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4404,7 +4404,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2219 +// line internal/php5/php5.y:2219 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4413,7 +4413,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2229 +// line internal/php5/php5.y:2229 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4424,7 +4424,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2238 +// line internal/php5/php5.y:2238 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4435,7 +4435,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2247 +// line internal/php5/php5.y:2247 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4447,7 +4447,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2257 +// line internal/php5/php5.y:2257 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4459,7 +4459,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2270 +// line internal/php5/php5.y:2270 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4468,7 +4468,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2277 +// line internal/php5/php5.y:2277 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4476,7 +4476,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2287 +// line internal/php5/php5.y:2287 { name := &ast.Identifier{ Node: ast.Node{ @@ -4495,7 +4495,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2304 +// line internal/php5/php5.y:2304 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4507,7 +4507,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2314 +// line internal/php5/php5.y:2314 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4521,7 +4521,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2330 +// line internal/php5/php5.y:2330 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4550,7 +4550,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2357 +// line internal/php5/php5.y:2357 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4581,7 +4581,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2386 +// line internal/php5/php5.y:2386 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4611,7 +4611,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2414 +// line internal/php5/php5.y:2414 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4643,19 +4643,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2448 +// line internal/php5/php5.y:2448 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2452 +// line internal/php5/php5.y:2452 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2460 +// line internal/php5/php5.y:2460 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4669,7 +4669,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2472 +// line internal/php5/php5.y:2472 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4677,13 +4677,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2478 +// line internal/php5/php5.y:2478 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2482 +// line internal/php5/php5.y:2482 { name := &ast.Identifier{ Node: ast.Node{ @@ -4719,7 +4719,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2519 +// line internal/php5/php5.y:2519 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4731,13 +4731,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2532 +// line internal/php5/php5.y:2532 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2536 +// line internal/php5/php5.y:2536 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4751,7 +4751,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2548 +// line internal/php5/php5.y:2548 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4762,7 +4762,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2557 +// line internal/php5/php5.y:2557 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4774,31 +4774,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2570 +// line internal/php5/php5.y:2570 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2574 +// line internal/php5/php5.y:2574 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2581 +// line internal/php5/php5.y:2581 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2585 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2592 +// line internal/php5/php5.y:2592 { yyVAL.node = yyDollar[1].node @@ -4808,7 +4808,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2600 +// line internal/php5/php5.y:2600 { yyVAL.node = yyDollar[1].node @@ -4818,7 +4818,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2611 +// line internal/php5/php5.y:2611 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4831,13 +4831,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2625 +// line internal/php5/php5.y:2625 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2629 +// line internal/php5/php5.y:2629 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4846,7 +4846,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2639 +// line internal/php5/php5.y:2639 { name := &ast.Identifier{ Node: ast.Node{ @@ -4865,13 +4865,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2656 +// line internal/php5/php5.y:2656 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2663 +// line internal/php5/php5.y:2663 { target := &ast.Identifier{ Node: ast.Node{ @@ -4891,7 +4891,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2684 +// line internal/php5/php5.y:2684 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4911,7 +4911,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2702 +// line internal/php5/php5.y:2702 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4924,19 +4924,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2716 +// line internal/php5/php5.y:2716 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2720 +// line internal/php5/php5.y:2720 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2727 +// line internal/php5/php5.y:2727 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4947,7 +4947,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2736 +// line internal/php5/php5.y:2736 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4960,13 +4960,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2750 +// line internal/php5/php5.y:2750 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2754 +// line internal/php5/php5.y:2754 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4980,31 +4980,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2769 +// line internal/php5/php5.y:2769 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2773 +// line internal/php5/php5.y:2773 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2780 +// line internal/php5/php5.y:2780 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2784 +// line internal/php5/php5.y:2784 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2791 +// line internal/php5/php5.y:2791 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5016,7 +5016,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2801 +// line internal/php5/php5.y:2801 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5028,7 +5028,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2811 +// line internal/php5/php5.y:2811 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5040,7 +5040,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2821 +// line internal/php5/php5.y:2821 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5052,7 +5052,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2831 +// line internal/php5/php5.y:2831 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5064,7 +5064,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2841 +// line internal/php5/php5.y:2841 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5076,7 +5076,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2854 +// line internal/php5/php5.y:2854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5099,7 +5099,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2875 +// line internal/php5/php5.y:2875 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5123,7 +5123,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2897 +// line internal/php5/php5.y:2897 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5145,7 +5145,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2917 +// line internal/php5/php5.y:2917 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5168,7 +5168,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2941 +// line internal/php5/php5.y:2941 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5194,7 +5194,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2965 +// line internal/php5/php5.y:2965 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5223,7 +5223,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2995 +// line internal/php5/php5.y:2995 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5232,7 +5232,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3002 +// line internal/php5/php5.y:3002 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5240,19 +5240,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3012 +// line internal/php5/php5.y:3012 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3016 +// line internal/php5/php5.y:3016 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3023 +// line internal/php5/php5.y:3023 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5261,25 +5261,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3030 +// line internal/php5/php5.y:3030 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3037 +// line internal/php5/php5.y:3037 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3041 +// line internal/php5/php5.y:3041 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3048 +// line internal/php5/php5.y:3048 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5293,7 +5293,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3060 +// line internal/php5/php5.y:3060 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5307,37 +5307,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3075 +// line internal/php5/php5.y:3075 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3079 +// line internal/php5/php5.y:3079 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3083 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3090 +// line internal/php5/php5.y:3090 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3094 +// line internal/php5/php5.y:3094 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3101 +// line internal/php5/php5.y:3101 { if yyDollar[3].node != nil { @@ -5353,7 +5353,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3118 +// line internal/php5/php5.y:3118 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5370,7 +5370,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3133 +// line internal/php5/php5.y:3133 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5383,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3144 +// line internal/php5/php5.y:3144 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5397,7 +5397,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3156 +// line internal/php5/php5.y:3156 { var _new *ast.ExprNew @@ -5424,7 +5424,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3181 +// line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5436,7 +5436,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3191 +// line internal/php5/php5.y:3191 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5448,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3201 +// line internal/php5/php5.y:3201 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5461,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3212 +// line internal/php5/php5.y:3212 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5474,7 +5474,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3223 +// line internal/php5/php5.y:3223 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5487,7 +5487,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3234 +// line internal/php5/php5.y:3234 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5500,7 +5500,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3245 +// line internal/php5/php5.y:3245 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5513,7 +5513,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3256 +// line internal/php5/php5.y:3256 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5526,7 +5526,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3267 +// line internal/php5/php5.y:3267 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5539,7 +5539,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3278 +// line internal/php5/php5.y:3278 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5552,7 +5552,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3289 +// line internal/php5/php5.y:3289 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5565,7 +5565,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3300 +// line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5578,7 +5578,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3311 +// line internal/php5/php5.y:3311 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5591,7 +5591,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3322 +// line internal/php5/php5.y:3322 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5604,7 +5604,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3333 +// line internal/php5/php5.y:3333 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5616,7 +5616,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3343 +// line internal/php5/php5.y:3343 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5629,7 +5629,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3354 +// line internal/php5/php5.y:3354 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5641,7 +5641,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3364 +// line internal/php5/php5.y:3364 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5654,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3375 +// line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5667,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3386 +// line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5680,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3397 +// line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5693,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3408 +// line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5706,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3419 +// line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5719,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3430 +// line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5732,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3441 +// line internal/php5/php5.y:3441 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5745,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3452 +// line internal/php5/php5.y:3452 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5757,7 +5757,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3462 +// line internal/php5/php5.y:3462 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5770,7 +5770,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3473 +// line internal/php5/php5.y:3473 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5783,7 +5783,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3484 +// line internal/php5/php5.y:3484 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5796,7 +5796,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3495 +// line internal/php5/php5.y:3495 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5809,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3506 +// line internal/php5/php5.y:3506 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,7 +5822,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3517 +// line internal/php5/php5.y:3517 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5835,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3528 +// line internal/php5/php5.y:3528 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5848,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3539 +// line internal/php5/php5.y:3539 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5861,7 +5861,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3550 +// line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5873,7 +5873,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3560 +// line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5885,7 +5885,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3570 +// line internal/php5/php5.y:3570 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5897,7 +5897,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3580 +// line internal/php5/php5.y:3580 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5909,7 +5909,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3590 +// line internal/php5/php5.y:3590 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5922,7 +5922,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3601 +// line internal/php5/php5.y:3601 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5935,7 +5935,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3612 +// line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5948,7 +5948,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3623 +// line internal/php5/php5.y:3623 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5962,7 +5962,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3635 +// line internal/php5/php5.y:3635 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5975,7 +5975,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3646 +// line internal/php5/php5.y:3646 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5988,7 +5988,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3657 +// line internal/php5/php5.y:3657 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6001,7 +6001,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3668 +// line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6014,7 +6014,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3679 +// line internal/php5/php5.y:3679 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6027,19 +6027,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3690 +// line internal/php5/php5.y:3690 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3694 +// line internal/php5/php5.y:3694 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3698 +// line internal/php5/php5.y:3698 { yyVAL.node = yyDollar[2].node @@ -6071,7 +6071,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3728 +// line internal/php5/php5.y:3728 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6085,7 +6085,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3740 +// line internal/php5/php5.y:3740 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6099,13 +6099,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3752 +// line internal/php5/php5.y:3752 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3756 +// line internal/php5/php5.y:3756 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6118,7 +6118,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3767 +// line internal/php5/php5.y:3767 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6131,7 +6131,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3778 +// line internal/php5/php5.y:3778 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6144,7 +6144,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3789 +// line internal/php5/php5.y:3789 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6157,7 +6157,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3800 +// line internal/php5/php5.y:3800 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6170,7 +6170,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3811 +// line internal/php5/php5.y:3811 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6183,7 +6183,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3822 +// line internal/php5/php5.y:3822 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6196,7 +6196,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3833 +// line internal/php5/php5.y:3833 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6216,7 +6216,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3851 +// line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6228,25 +6228,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3861 +// line internal/php5/php5.y:3861 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3865 +// line internal/php5/php5.y:3865 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3869 +// line internal/php5/php5.y:3869 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3873 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6258,7 +6258,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3883 +// line internal/php5/php5.y:3883 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6270,7 +6270,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3893 +// line internal/php5/php5.y:3893 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6282,7 +6282,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3903 +// line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6309,7 +6309,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3927 +// line internal/php5/php5.y:3927 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6337,7 +6337,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3955 +// line internal/php5/php5.y:3955 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6349,7 +6349,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3965 +// line internal/php5/php5.y:3965 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6361,7 +6361,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3975 +// line internal/php5/php5.y:3975 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6374,7 +6374,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3986 +// line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6387,7 +6387,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4000 +// line internal/php5/php5.y:4000 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6400,7 +6400,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4011 +// line internal/php5/php5.y:4011 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6413,23 +6413,27 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4022 +// line internal/php5/php5.y:4022 { - str := &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} + str := &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} // save position - str.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(str, yyDollar[4].token) // save comments - yylex.(*Parser).setFreeFloating(str, token.Start, yyDollar[1].token.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4036 +// line internal/php5/php5.y:4040 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6442,7 +6446,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4050 +// line internal/php5/php5.y:4054 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6456,7 +6460,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4062 +// line internal/php5/php5.y:4066 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6469,19 +6473,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4076 +// line internal/php5/php5.y:4080 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4083 +// line internal/php5/php5.y:4087 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4087 +// line internal/php5/php5.y:4091 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6495,7 +6499,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4102 +// line internal/php5/php5.y:4106 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6516,7 +6520,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4121 +// line internal/php5/php5.y:4125 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6540,7 +6544,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4143 +// line internal/php5/php5.y:4147 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6560,7 +6564,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4161 +// line internal/php5/php5.y:4165 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6583,7 +6587,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4185 +// line internal/php5/php5.y:4189 { name := &ast.NameName{ Node: ast.Node{ @@ -6598,7 +6602,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4198 +// line internal/php5/php5.y:4202 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6615,7 +6619,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4213 +// line internal/php5/php5.y:4217 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6631,7 +6635,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4227 +// line internal/php5/php5.y:4231 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6644,7 +6648,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4238 +// line internal/php5/php5.y:4242 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6657,7 +6661,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4249 +// line internal/php5/php5.y:4253 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6670,7 +6674,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4260 +// line internal/php5/php5.y:4264 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6683,7 +6687,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4271 +// line internal/php5/php5.y:4275 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6695,7 +6699,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4284 +// line internal/php5/php5.y:4288 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6707,7 +6711,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4294 +// line internal/php5/php5.y:4298 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6718,7 +6722,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4303 +// line internal/php5/php5.y:4307 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6731,7 +6735,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4314 +// line internal/php5/php5.y:4318 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6743,7 +6747,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4327 +// line internal/php5/php5.y:4331 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6754,7 +6758,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4336 +// line internal/php5/php5.y:4340 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6767,7 +6771,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4347 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6779,19 +6783,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4360 +// line internal/php5/php5.y:4364 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4364 +// line internal/php5/php5.y:4368 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4371 +// line internal/php5/php5.y:4375 { yyVAL.node = yyDollar[1].node @@ -6832,25 +6836,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4410 +// line internal/php5/php5.y:4414 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4418 +// line internal/php5/php5.y:4422 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4422 +// line internal/php5/php5.y:4426 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4430 +// line internal/php5/php5.y:4434 { yyVAL.list = yyDollar[2].list @@ -6859,13 +6863,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4440 +// line internal/php5/php5.y:4444 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4444 +// line internal/php5/php5.y:4448 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6881,19 +6885,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4462 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4465 +// line internal/php5/php5.y:4469 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4469 +// line internal/php5/php5.y:4473 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6907,25 +6911,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4485 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4488 +// line internal/php5/php5.y:4492 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4492 +// line internal/php5/php5.y:4496 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4499 +// line internal/php5/php5.y:4503 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6937,7 +6941,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4509 +// line internal/php5/php5.y:4513 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6949,103 +6953,103 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4519 +// line internal/php5/php5.y:4523 { - yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4529 +// line internal/php5/php5.y:4533 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4539 +// line internal/php5/php5.y:4543 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4549 +// line internal/php5/php5.y:4553 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4559 +// line internal/php5/php5.y:4563 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4569 +// line internal/php5/php5.y:4573 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4579 +// line internal/php5/php5.y:4583 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4589 +// line internal/php5/php5.y:4593 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4599 +// line internal/php5/php5.y:4603 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7066,7 +7070,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4618 +// line internal/php5/php5.y:4622 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7078,7 +7082,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4631 +// line internal/php5/php5.y:4635 { target := &ast.Identifier{ Node: ast.Node{ @@ -7098,25 +7102,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4652 +// line internal/php5/php5.y:4656 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4659 +// line internal/php5/php5.y:4663 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4663 +// line internal/php5/php5.y:4667 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4667 +// line internal/php5/php5.y:4671 { name := &ast.NameName{ Node: ast.Node{ @@ -7131,7 +7135,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4680 +// line internal/php5/php5.y:4684 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7148,7 +7152,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4695 +// line internal/php5/php5.y:4699 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7164,7 +7168,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4709 +// line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7178,7 +7182,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4721 +// line internal/php5/php5.y:4725 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7191,31 +7195,31 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4732 +// line internal/php5/php5.y:4736 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4736 +// line internal/php5/php5.y:4740 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4746 +// line internal/php5/php5.y:4750 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4753 +// line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7228,7 +7232,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4764 +// line internal/php5/php5.y:4768 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7241,7 +7245,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4775 +// line internal/php5/php5.y:4779 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7254,7 +7258,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4786 +// line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7267,7 +7271,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4797 +// line internal/php5/php5.y:4801 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7280,7 +7284,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4808 +// line internal/php5/php5.y:4812 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7293,7 +7297,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4819 +// line internal/php5/php5.y:4823 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7306,7 +7310,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4830 +// line internal/php5/php5.y:4834 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7318,7 +7322,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4840 +// line internal/php5/php5.y:4844 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7330,7 +7334,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4850 +// line internal/php5/php5.y:4854 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7343,7 +7347,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4861 +// line internal/php5/php5.y:4865 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7356,7 +7360,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4872 +// line internal/php5/php5.y:4876 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7369,7 +7373,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4883 +// line internal/php5/php5.y:4887 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7382,7 +7386,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4894 +// line internal/php5/php5.y:4898 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7395,7 +7399,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4905 +// line internal/php5/php5.y:4909 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7408,7 +7412,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4916 +// line internal/php5/php5.y:4920 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7421,7 +7425,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4927 +// line internal/php5/php5.y:4931 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7434,7 +7438,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4938 +// line internal/php5/php5.y:4942 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7447,7 +7451,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4949 +// line internal/php5/php5.y:4953 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7460,7 +7464,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4960 +// line internal/php5/php5.y:4964 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7473,7 +7477,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4971 +// line internal/php5/php5.y:4975 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7486,7 +7490,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4982 +// line internal/php5/php5.y:4986 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7499,7 +7503,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4993 +// line internal/php5/php5.y:4997 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7512,7 +7516,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5004 +// line internal/php5/php5.y:5008 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7526,7 +7530,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5016 +// line internal/php5/php5.y:5020 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7539,7 +7543,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5027 +// line internal/php5/php5.y:5031 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7552,7 +7556,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5038 +// line internal/php5/php5.y:5042 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7565,7 +7569,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5049 +// line internal/php5/php5.y:5053 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7578,7 +7582,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5060 +// line internal/php5/php5.y:5064 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7592,7 +7596,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5072 +// line internal/php5/php5.y:5076 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7606,7 +7610,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5084 +// line internal/php5/php5.y:5088 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7618,7 +7622,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5094 +// line internal/php5/php5.y:5098 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7630,7 +7634,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5104 +// line internal/php5/php5.y:5108 { yyVAL.node = yyDollar[2].node @@ -7640,13 +7644,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5115 +// line internal/php5/php5.y:5119 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5119 +// line internal/php5/php5.y:5123 { name := &ast.NameName{ Node: ast.Node{ @@ -7661,7 +7665,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5132 +// line internal/php5/php5.y:5136 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7678,7 +7682,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5147 +// line internal/php5/php5.y:5151 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7694,7 +7698,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5164 +// line internal/php5/php5.y:5168 { name := &ast.Identifier{ Node: ast.Node{ @@ -7713,25 +7717,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5181 +// line internal/php5/php5.y:5185 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5185 +// line internal/php5/php5.y:5189 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5189 +// line internal/php5/php5.y:5193 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5193 +// line internal/php5/php5.y:5197 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7744,7 +7748,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5204 +// line internal/php5/php5.y:5208 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7757,25 +7761,25 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5215 +// line internal/php5/php5.y:5219 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5228 +// line internal/php5/php5.y:5232 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5232 +// line internal/php5/php5.y:5236 { yyVAL.list = yyDollar[1].list @@ -7786,19 +7790,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5244 +// line internal/php5/php5.y:5248 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5248 +// line internal/php5/php5.y:5252 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5255 +// line internal/php5/php5.y:5259 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7813,7 +7817,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5268 +// line internal/php5/php5.y:5272 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7827,7 +7831,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5280 +// line internal/php5/php5.y:5284 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7841,7 +7845,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5292 +// line internal/php5/php5.y:5296 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7854,19 +7858,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5306 +// line internal/php5/php5.y:5310 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5310 +// line internal/php5/php5.y:5314 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5317 +// line internal/php5/php5.y:5321 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7883,7 +7887,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5332 +// line internal/php5/php5.y:5336 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7900,25 +7904,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5351 +// line internal/php5/php5.y:5355 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5359 +// line internal/php5/php5.y:5363 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5366 +// line internal/php5/php5.y:5370 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5373 +// line internal/php5/php5.y:5377 { yyVAL.node = yyDollar[1].node @@ -7976,25 +7980,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5429 +// line internal/php5/php5.y:5433 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5440 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5440 +// line internal/php5/php5.y:5444 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5448 +// line internal/php5/php5.y:5452 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8008,7 +8012,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5463 +// line internal/php5/php5.y:5467 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8022,7 +8026,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5475 +// line internal/php5/php5.y:5479 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8036,7 +8040,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5490 +// line internal/php5/php5.y:5494 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8045,31 +8049,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5500 +// line internal/php5/php5.y:5504 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5504 +// line internal/php5/php5.y:5508 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5508 +// line internal/php5/php5.y:5512 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5515 +// line internal/php5/php5.y:5519 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5519 +// line internal/php5/php5.y:5523 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8081,7 +8085,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5532 +// line internal/php5/php5.y:5536 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8094,7 +8098,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5543 +// line internal/php5/php5.y:5547 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8107,13 +8111,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5557 +// line internal/php5/php5.y:5561 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5564 +// line internal/php5/php5.y:5568 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8126,7 +8130,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5579 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8139,31 +8143,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5589 +// line internal/php5/php5.y:5593 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5593 +// line internal/php5/php5.y:5597 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5597 +// line internal/php5/php5.y:5601 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5605 +// line internal/php5/php5.y:5609 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5609 +// line internal/php5/php5.y:5613 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8175,13 +8179,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5619 +// line internal/php5/php5.y:5623 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5626 +// line internal/php5/php5.y:5630 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8194,7 +8198,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5637 +// line internal/php5/php5.y:5641 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8207,13 +8211,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5648 +// line internal/php5/php5.y:5652 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5656 +// line internal/php5/php5.y:5660 { name := &ast.Identifier{ Node: ast.Node{ @@ -8232,7 +8236,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5673 +// line internal/php5/php5.y:5677 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8246,25 +8250,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5688 +// line internal/php5/php5.y:5692 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5692 +// line internal/php5/php5.y:5696 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5700 +// line internal/php5/php5.y:5704 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5704 +// line internal/php5/php5.y:5708 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8274,7 +8278,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5715 +// line internal/php5/php5.y:5719 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8288,7 +8292,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5727 +// line internal/php5/php5.y:5731 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8302,7 +8306,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5743 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8312,7 +8316,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5750 +// line internal/php5/php5.y:5754 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8324,7 +8328,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5760 +// line internal/php5/php5.y:5764 { yyVAL.node = yyDollar[2].node @@ -8337,7 +8341,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5774 +// line internal/php5/php5.y:5778 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8350,7 +8354,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5785 +// line internal/php5/php5.y:5789 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8367,7 +8371,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5803 +// line internal/php5/php5.y:5807 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8380,7 +8384,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5814 +// line internal/php5/php5.y:5818 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8390,7 +8394,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5826 +// line internal/php5/php5.y:5830 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8402,7 +8406,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5836 +// line internal/php5/php5.y:5840 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8418,19 +8422,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5850 +// line internal/php5/php5.y:5854 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5858 +// line internal/php5/php5.y:5862 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5862 +// line internal/php5/php5.y:5866 { yyVAL.list = yyDollar[1].list @@ -8445,7 +8449,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5878 +// line internal/php5/php5.y:5882 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8460,7 +8464,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5891 +// line internal/php5/php5.y:5895 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8474,7 +8478,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5903 +// line internal/php5/php5.y:5907 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8488,7 +8492,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5915 +// line internal/php5/php5.y:5919 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8501,7 +8505,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5926 +// line internal/php5/php5.y:5930 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8519,7 +8523,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5942 +// line internal/php5/php5.y:5946 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8535,7 +8539,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5956 +// line internal/php5/php5.y:5960 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8552,7 +8556,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5971 +// line internal/php5/php5.y:5975 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8567,13 +8571,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5987 +// line internal/php5/php5.y:5991 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5991 +// line internal/php5/php5.y:5995 { yyVAL.list = append( yyDollar[1].list, @@ -8588,13 +8592,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6004 +// line internal/php5/php5.y:6008 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6008 +// line internal/php5/php5.y:6012 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8609,7 +8613,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6024 +// line internal/php5/php5.y:6028 { name := &ast.Identifier{ Node: ast.Node{ @@ -8628,7 +8632,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6041 +// line internal/php5/php5.y:6045 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8650,7 +8654,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6061 +// line internal/php5/php5.y:6065 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8678,7 +8682,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6087 +// line internal/php5/php5.y:6091 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8693,7 +8697,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6100 +// line internal/php5/php5.y:6104 { name := &ast.Identifier{ Node: ast.Node{ @@ -8715,7 +8719,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6120 +// line internal/php5/php5.y:6124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8739,7 +8743,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6142 +// line internal/php5/php5.y:6146 { yyVAL.node = yyDollar[2].node @@ -8749,19 +8753,19 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6153 +// line internal/php5/php5.y:6157 { - yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6163 +// line internal/php5/php5.y:6167 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8773,7 +8777,13 @@ yydefault: Value: yyDollar[1].token.Value, } } else { - yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } // save position @@ -8784,7 +8794,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6184 +// line internal/php5/php5.y:6194 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8803,7 +8813,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6204 +// line internal/php5/php5.y:6214 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8817,7 +8827,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6216 +// line internal/php5/php5.y:6226 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8839,7 +8849,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6236 +// line internal/php5/php5.y:6246 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8861,7 +8871,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6256 +// line internal/php5/php5.y:6266 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8873,7 +8883,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6266 +// line internal/php5/php5.y:6276 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8885,7 +8895,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6276 +// line internal/php5/php5.y:6286 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8907,7 +8917,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6296 +// line internal/php5/php5.y:6306 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8919,7 +8929,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6306 +// line internal/php5/php5.y:6316 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8931,13 +8941,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6319 +// line internal/php5/php5.y:6329 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6323 +// line internal/php5/php5.y:6333 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8946,19 +8956,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6333 +// line internal/php5/php5.y:6343 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6337 +// line internal/php5/php5.y:6347 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6344 +// line internal/php5/php5.y:6354 { target := &ast.Identifier{ Node: ast.Node{ @@ -8978,7 +8988,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6362 +// line internal/php5/php5.y:6372 { target := &ast.Identifier{ Node: ast.Node{ @@ -8998,7 +9008,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6383 +// line internal/php5/php5.y:6393 { target := &ast.Identifier{ Node: ast.Node{ @@ -9018,7 +9028,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6404 +// line internal/php5/php5.y:6414 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 383a19d..1674719 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -4020,15 +4020,19 @@ combined_scalar_offset: } | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { - str := &ast.ScalarString{ast.Node{}, $1.Value} + str := &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } $$ = &ast.ExprArrayDimFetch{ast.Node{}, str, $3} // save position - str.GetNode().Position = position.NewTokenPosition($1) $$.GetNode().Position = position.NewNodeTokenPosition(str, $4) // save comments - yylex.(*Parser).setFreeFloating(str, token.Start, $1.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } @@ -4517,83 +4521,83 @@ common_scalar: } | T_CONSTANT_ENCAPSED_STRING { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } | T_LINE { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_FILE { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_DIR { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_TRAIT_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_METHOD_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_FUNC_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_NS_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -4734,13 +4738,13 @@ static_scalar_value: } | T_CLASS_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | static_operation { @@ -5213,13 +5217,13 @@ scalar: } | T_CLASS_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } ; @@ -6151,13 +6155,13 @@ encaps_var: encaps_var_offset: T_STRING { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } | T_NUM_STRING { @@ -6171,7 +6175,13 @@ encaps_var_offset: Value: $1.Value, } } else { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } // save position diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 0ae49e3..c075510 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4988 +// line internal/php7/php7.y:4989 // line yacctab:1 var yyExca = [...]int{ @@ -2114,7 +2114,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 +// line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2125,469 +2125,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 +// line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 +// line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:328 +// line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:335 +// line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2600,13 +2600,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:346 +// line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:353 +// line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2620,7 +2620,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:365 +// line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2633,7 +2633,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:379 +// line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:388 +// line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2657,7 +2657,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:399 +// line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2669,44 +2669,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 +// line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:433 +// line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:437 +// line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2720,7 +2720,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:449 +// line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:465 +// line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2758,7 +2758,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:483 +// line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2772,7 +2772,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:495 +// line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2784,7 +2784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:505 +// line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2797,7 +2797,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:516 +// line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2810,7 +2810,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:527 +// line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2824,7 +2824,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:539 +// line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2838,7 +2838,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:554 +// line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2850,7 +2850,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:564 +// line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2862,7 +2862,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:577 +// line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2886,7 +2886,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:599 +// line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2909,7 +2909,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:623 +// line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2931,7 +2931,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:643 +// line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2954,19 +2954,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:667 +// line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:671 +// line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:678 +// line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2974,13 +2974,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:684 +// line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:691 +// line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2988,13 +2988,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:697 +// line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:704 +// line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3002,19 +3002,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:710 +// line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:717 +// line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:721 +// line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3024,7 +3024,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:732 +// line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3040,7 +3040,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:746 +// line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3064,13 +3064,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:771 +// line internal/php7/php7.y:771 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:775 +// line internal/php7/php7.y:775 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3080,7 +3080,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:786 +// line internal/php7/php7.y:786 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3089,7 +3089,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:793 +// line internal/php7/php7.y:793 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3097,7 +3097,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:802 +// line internal/php7/php7.y:802 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3110,50 +3110,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:813 +// line internal/php7/php7.y:813 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:820 +// line internal/php7/php7.y:820 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:825 +// line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:829 +// line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:833 +// line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 +// line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:841 +// line internal/php7/php7.y:841 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:845 +// line internal/php7/php7.y:845 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3167,7 +3167,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:859 +// line internal/php7/php7.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3180,19 +3180,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 +// line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:874 +// line internal/php7/php7.y:874 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:878 +// line internal/php7/php7.y:878 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3204,7 +3204,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:888 +// line internal/php7/php7.y:888 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3221,7 +3221,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:903 +// line internal/php7/php7.y:903 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3237,7 +3237,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:917 +// line internal/php7/php7.y:917 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3249,7 +3249,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:927 +// line internal/php7/php7.y:927 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3262,7 +3262,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:938 +// line internal/php7/php7.y:938 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3275,7 +3275,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:949 +// line internal/php7/php7.y:949 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3288,7 +3288,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:960 +// line internal/php7/php7.y:960 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3298,7 +3298,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:968 +// line internal/php7/php7.y:968 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3308,7 +3308,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:976 +// line internal/php7/php7.y:976 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3318,7 +3318,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:984 +// line internal/php7/php7.y:984 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3330,7 +3330,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:994 +// line internal/php7/php7.y:994 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3344,7 +3344,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1006 +// line internal/php7/php7.y:1006 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3357,7 +3357,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1017 +// line internal/php7/php7.y:1017 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3371,7 +3371,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1029 +// line internal/php7/php7.y:1029 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3387,7 +3387,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1043 +// line internal/php7/php7.y:1043 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3400,7 +3400,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1054 +// line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3411,7 +3411,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1063 +// line internal/php7/php7.y:1063 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3430,7 +3430,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1080 +// line internal/php7/php7.y:1080 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3443,7 +3443,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1091 +// line internal/php7/php7.y:1091 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3462,7 +3462,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1108 +// line internal/php7/php7.y:1108 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3480,13 +3480,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1126 +// line internal/php7/php7.y:1126 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1130 +// line internal/php7/php7.y:1130 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3517,7 +3517,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1161 +// line internal/php7/php7.y:1161 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3525,7 +3525,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1167 +// line internal/php7/php7.y:1167 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3534,13 +3534,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1177 +// line internal/php7/php7.y:1177 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1181 +// line internal/php7/php7.y:1181 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3554,7 +3554,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1196 +// line internal/php7/php7.y:1196 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3562,7 +3562,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1202 +// line internal/php7/php7.y:1202 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3571,13 +3571,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1212 +// line internal/php7/php7.y:1212 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1219 +// line internal/php7/php7.y:1219 { name := &ast.Identifier{ Node: ast.Node{ @@ -3608,31 +3608,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1251 +// line internal/php7/php7.y:1251 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1255 +// line internal/php7/php7.y:1255 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1262 +// line internal/php7/php7.y:1262 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1266 +// line internal/php7/php7.y:1266 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1273 +// line internal/php7/php7.y:1273 { name := &ast.Identifier{ Node: ast.Node{ @@ -3653,7 +3653,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1292 +// line internal/php7/php7.y:1292 { name := &ast.Identifier{ Node: ast.Node{ @@ -3673,19 +3673,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1313 +// line internal/php7/php7.y:1313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1317 +// line internal/php7/php7.y:1317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1324 +// line internal/php7/php7.y:1324 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3697,7 +3697,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1334 +// line internal/php7/php7.y:1334 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3709,7 +3709,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1347 +// line internal/php7/php7.y:1347 { name := &ast.Identifier{ Node: ast.Node{ @@ -3730,7 +3730,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1369 +// line internal/php7/php7.y:1369 { name := &ast.Identifier{ Node: ast.Node{ @@ -3751,13 +3751,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1391 +// line internal/php7/php7.y:1391 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1395 +// line internal/php7/php7.y:1395 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3769,13 +3769,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1408 +// line internal/php7/php7.y:1408 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1412 +// line internal/php7/php7.y:1412 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3787,13 +3787,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1425 +// line internal/php7/php7.y:1425 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1429 +// line internal/php7/php7.y:1429 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3805,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1442 +// line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1446 +// line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1468 +// line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3850,7 +3850,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1482 +// line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3861,7 +3861,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1491 +// line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3881,7 +3881,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1512 +// line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3892,7 +3892,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1521 +// line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3912,7 +3912,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1542 +// line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3923,7 +3923,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1551 +// line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3943,7 +3943,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1572 +// line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3956,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1583 +// line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1595 +// line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3985,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1608 +// line internal/php7/php7.y:1608 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4001,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1625 +// line internal/php7/php7.y:1625 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1629 +// line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4021,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1641 +// line internal/php7/php7.y:1641 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4034,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1655 +// line internal/php7/php7.y:1655 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1659 +// line internal/php7/php7.y:1659 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1666 +// line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4057,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1675 +// line internal/php7/php7.y:1675 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4077,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1696 +// line internal/php7/php7.y:1696 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4092,7 +4092,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1709 +// line internal/php7/php7.y:1709 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4111,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1729 +// line internal/php7/php7.y:1729 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1733 +// line internal/php7/php7.y:1733 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4133,7 +4133,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1750 +// line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4155,7 +4155,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1770 +// line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4179,7 +4179,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1795 +// line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4189,7 +4189,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1803 +// line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4213,25 +4213,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1828 +// line internal/php7/php7.y:1828 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1832 +// line internal/php7/php7.y:1832 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1839 +// line internal/php7/php7.y:1839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1843 +// line internal/php7/php7.y:1843 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4240,7 +4240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1853 +// line internal/php7/php7.y:1853 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4294,7 +4294,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1905 +// line internal/php7/php7.y:1905 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4351,25 +4351,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1963 +// line internal/php7/php7.y:1963 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1967 +// line internal/php7/php7.y:1967 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1974 +// line internal/php7/php7.y:1974 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1978 +// line internal/php7/php7.y:1978 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4381,7 +4381,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1991 +// line internal/php7/php7.y:1991 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4393,7 +4393,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2001 +// line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4405,19 +4405,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2011 +// line internal/php7/php7.y:2011 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2018 +// line internal/php7/php7.y:2018 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2022 +// line internal/php7/php7.y:2022 { yyVAL.node = yyDollar[2].node @@ -4426,7 +4426,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2032 +// line internal/php7/php7.y:2032 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4438,7 +4438,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2042 +// line internal/php7/php7.y:2042 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4450,7 +4450,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2055 +// line internal/php7/php7.y:2055 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4458,7 +4458,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2061 +// line internal/php7/php7.y:2061 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4467,7 +4467,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2071 +// line internal/php7/php7.y:2071 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4478,7 +4478,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2080 +// line internal/php7/php7.y:2080 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4490,7 +4490,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2093 +// line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4499,7 +4499,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2100 +// line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4507,13 +4507,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2109 +// line internal/php7/php7.y:2109 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2116 +// line internal/php7/php7.y:2116 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4522,7 +4522,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2123 +// line internal/php7/php7.y:2123 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4530,7 +4530,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2132 +// line internal/php7/php7.y:2132 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4556,7 +4556,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2156 +// line internal/php7/php7.y:2156 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4583,19 +4583,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2184 +// line internal/php7/php7.y:2184 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2188 +// line internal/php7/php7.y:2188 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2195 +// line internal/php7/php7.y:2195 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4609,7 +4609,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2207 +// line internal/php7/php7.y:2207 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4623,7 +4623,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2219 +// line internal/php7/php7.y:2219 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4635,7 +4635,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2229 +// line internal/php7/php7.y:2229 { name := &ast.Identifier{ Node: ast.Node{ @@ -4670,13 +4670,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2265 +// line internal/php7/php7.y:2265 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2269 +// line internal/php7/php7.y:2269 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4690,7 +4690,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2281 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4701,7 +4701,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2290 +// line internal/php7/php7.y:2290 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4713,7 +4713,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2300 +// line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4725,19 +4725,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2313 +// line internal/php7/php7.y:2313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2317 +// line internal/php7/php7.y:2317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2324 +// line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4747,7 +4747,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2332 +// line internal/php7/php7.y:2332 { yyVAL.node = yyDollar[1].node @@ -4757,7 +4757,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2343 +// line internal/php7/php7.y:2343 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4770,7 +4770,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2357 +// line internal/php7/php7.y:2357 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4790,7 +4790,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2375 +// line internal/php7/php7.y:2375 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4810,7 +4810,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2393 +// line internal/php7/php7.y:2393 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4830,7 +4830,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2411 +// line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4843,7 +4843,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2425 +// line internal/php7/php7.y:2425 { name := &ast.Identifier{ Node: ast.Node{ @@ -4862,13 +4862,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2442 +// line internal/php7/php7.y:2442 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2449 +// line internal/php7/php7.y:2449 { target := &ast.Identifier{ Node: ast.Node{ @@ -4888,7 +4888,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2470 +// line internal/php7/php7.y:2470 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4899,7 +4899,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2479 +// line internal/php7/php7.y:2479 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4912,13 +4912,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2493 +// line internal/php7/php7.y:2493 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2497 +// line internal/php7/php7.y:2497 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4932,31 +4932,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2512 +// line internal/php7/php7.y:2512 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2516 +// line internal/php7/php7.y:2516 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2523 +// line internal/php7/php7.y:2523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2527 +// line internal/php7/php7.y:2527 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2534 +// line internal/php7/php7.y:2534 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4968,7 +4968,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2544 +// line internal/php7/php7.y:2544 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4980,7 +4980,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2554 +// line internal/php7/php7.y:2554 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4992,7 +4992,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2564 +// line internal/php7/php7.y:2564 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5004,7 +5004,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2574 +// line internal/php7/php7.y:2574 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5016,7 +5016,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2584 +// line internal/php7/php7.y:2584 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5028,7 +5028,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2597 +// line internal/php7/php7.y:2597 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5037,13 +5037,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2604 +// line internal/php7/php7.y:2604 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2611 +// line internal/php7/php7.y:2611 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5064,7 +5064,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2630 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5086,7 +5086,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2653 +// line internal/php7/php7.y:2653 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2659 +// line internal/php7/php7.y:2659 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2666 +// line internal/php7/php7.y:2666 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2688 +// line internal/php7/php7.y:2688 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2710 +// line internal/php7/php7.y:2710 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2717 +// line internal/php7/php7.y:2717 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2726 +// line internal/php7/php7.y:2726 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2733 +// line internal/php7/php7.y:2733 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2737 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2744 +// line internal/php7/php7.y:2744 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2751 +// line internal/php7/php7.y:2751 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2758 +// line internal/php7/php7.y:2758 { if yyDollar[2].node != nil { yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} @@ -5210,7 +5210,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2777 +// line internal/php7/php7.y:2777 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5225,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2790 +// line internal/php7/php7.y:2790 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5237,7 +5237,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2803 +// line internal/php7/php7.y:2803 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5254,7 +5254,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2818 +// line internal/php7/php7.y:2818 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5270,7 +5270,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2832 +// line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5283,7 +5283,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2843 +// line internal/php7/php7.y:2843 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5297,7 +5297,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2855 +// line internal/php7/php7.y:2855 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5309,7 +5309,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2865 +// line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5322,7 +5322,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2876 +// line internal/php7/php7.y:2876 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5335,7 +5335,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2887 +// line internal/php7/php7.y:2887 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5348,7 +5348,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2898 +// line internal/php7/php7.y:2898 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5361,7 +5361,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2909 +// line internal/php7/php7.y:2909 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5374,7 +5374,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2920 +// line internal/php7/php7.y:2920 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5387,7 +5387,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2931 +// line internal/php7/php7.y:2931 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5400,7 +5400,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2942 +// line internal/php7/php7.y:2942 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5413,7 +5413,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2953 +// line internal/php7/php7.y:2953 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5426,7 +5426,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2964 +// line internal/php7/php7.y:2964 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5439,7 +5439,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2975 +// line internal/php7/php7.y:2975 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5452,7 +5452,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2986 +// line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5465,7 +5465,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2997 +// line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5478,7 +5478,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3008 +// line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5491,7 +5491,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3019 +// line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5503,7 +5503,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3029 +// line internal/php7/php7.y:3029 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5516,7 +5516,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3040 +// line internal/php7/php7.y:3040 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5528,7 +5528,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3050 +// line internal/php7/php7.y:3050 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5541,7 +5541,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3061 +// line internal/php7/php7.y:3061 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5554,7 +5554,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3072 +// line internal/php7/php7.y:3072 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5567,7 +5567,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3083 +// line internal/php7/php7.y:3083 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5580,7 +5580,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3094 +// line internal/php7/php7.y:3094 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5593,7 +5593,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3105 +// line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5606,7 +5606,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3116 +// line internal/php7/php7.y:3116 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5619,7 +5619,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3127 +// line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5632,7 +5632,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3138 +// line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5644,7 +5644,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3148 +// line internal/php7/php7.y:3148 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5657,7 +5657,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3159 +// line internal/php7/php7.y:3159 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5670,7 +5670,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3170 +// line internal/php7/php7.y:3170 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5683,7 +5683,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3181 +// line internal/php7/php7.y:3181 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5696,7 +5696,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3192 +// line internal/php7/php7.y:3192 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5709,7 +5709,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3203 +// line internal/php7/php7.y:3203 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5722,7 +5722,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3214 +// line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5735,7 +5735,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3225 +// line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5748,7 +5748,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3236 +// line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5760,7 +5760,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3246 +// line internal/php7/php7.y:3246 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5772,7 +5772,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3256 +// line internal/php7/php7.y:3256 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5784,7 +5784,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3266 +// line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5796,7 +5796,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3276 +// line internal/php7/php7.y:3276 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5809,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3287 +// line internal/php7/php7.y:3287 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,7 +5822,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3298 +// line internal/php7/php7.y:3298 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5835,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3309 +// line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5849,7 +5849,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3321 +// line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5862,7 +5862,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3332 +// line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5875,7 +5875,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3343 +// line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5888,7 +5888,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3354 +// line internal/php7/php7.y:3354 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5901,7 +5901,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3365 +// line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5914,7 +5914,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3376 +// line internal/php7/php7.y:3376 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5927,7 +5927,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3387 +// line internal/php7/php7.y:3387 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5944,13 +5944,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3402 +// line internal/php7/php7.y:3402 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3406 +// line internal/php7/php7.y:3406 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5964,7 +5964,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3418 +// line internal/php7/php7.y:3418 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5978,7 +5978,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3430 +// line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5991,13 +5991,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3441 +// line internal/php7/php7.y:3441 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3445 +// line internal/php7/php7.y:3445 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6010,7 +6010,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3456 +// line internal/php7/php7.y:3456 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6023,7 +6023,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3467 +// line internal/php7/php7.y:3467 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6036,7 +6036,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3478 +// line internal/php7/php7.y:3478 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6049,7 +6049,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3489 +// line internal/php7/php7.y:3489 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6062,7 +6062,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3500 +// line internal/php7/php7.y:3500 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6075,7 +6075,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3511 +// line internal/php7/php7.y:3511 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6088,7 +6088,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3522 +// line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6108,7 +6108,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3540 +// line internal/php7/php7.y:3540 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6120,13 +6120,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3550 +// line internal/php7/php7.y:3550 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3554 +// line internal/php7/php7.y:3554 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6138,7 +6138,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3564 +// line internal/php7/php7.y:3564 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6150,7 +6150,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3574 +// line internal/php7/php7.y:3574 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6162,7 +6162,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3584 +// line internal/php7/php7.y:3584 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6174,7 +6174,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3594 +// line internal/php7/php7.y:3594 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6187,7 +6187,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3605 +// line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6199,13 +6199,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3615 +// line internal/php7/php7.y:3615 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3619 +// line internal/php7/php7.y:3619 { yyVAL.node = yyDollar[2].node @@ -6226,7 +6226,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3640 +// line internal/php7/php7.y:3640 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6257,7 +6257,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3667 +// line internal/php7/php7.y:3667 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6283,25 +6283,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3697 +// line internal/php7/php7.y:3697 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3701 +// line internal/php7/php7.y:3701 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3708 +// line internal/php7/php7.y:3708 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3712 +// line internal/php7/php7.y:3712 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6315,7 +6315,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3727 +// line internal/php7/php7.y:3727 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6324,13 +6324,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3734 +// line internal/php7/php7.y:3734 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3741 +// line internal/php7/php7.y:3741 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6349,7 +6349,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3758 +// line internal/php7/php7.y:3758 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6371,7 +6371,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3781 +// line internal/php7/php7.y:3781 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6383,7 +6383,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3791 +// line internal/php7/php7.y:3791 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6396,7 +6396,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3802 +// line internal/php7/php7.y:3802 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6409,7 +6409,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3813 +// line internal/php7/php7.y:3813 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6421,7 +6421,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3826 +// line internal/php7/php7.y:3826 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6433,31 +6433,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3836 +// line internal/php7/php7.y:3836 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3843 +// line internal/php7/php7.y:3843 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3847 +// line internal/php7/php7.y:3847 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3854 +// line internal/php7/php7.y:3854 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3858 +// line internal/php7/php7.y:3858 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6474,13 +6474,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3876 +// line internal/php7/php7.y:3876 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3880 +// line internal/php7/php7.y:3880 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6494,25 +6494,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3892 +// line internal/php7/php7.y:3892 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3899 +// line internal/php7/php7.y:3899 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3903 +// line internal/php7/php7.y:3903 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3910 +// line internal/php7/php7.y:3910 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6526,7 +6526,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3922 +// line internal/php7/php7.y:3922 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6539,19 +6539,19 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3933 +// line internal/php7/php7.y:3933 { - yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3946 +// line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6563,7 +6563,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3956 +// line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6575,103 +6575,103 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3966 +// line internal/php7/php7.y:3966 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3976 +// line internal/php7/php7.y:3976 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3986 +// line internal/php7/php7.y:3986 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3996 +// line internal/php7/php7.y:3996 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4006 +// line internal/php7/php7.y:4006 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4016 +// line internal/php7/php7.y:4016 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4026 +// line internal/php7/php7.y:4026 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4036 +// line internal/php7/php7.y:4036 { - yyVAL.node = &ast.ScalarMagicConstant{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + MagicConstTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4046 +// line internal/php7/php7.y:4046 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6692,7 +6692,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4065 +// line internal/php7/php7.y:4065 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6704,7 +6704,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4075 +// line internal/php7/php7.y:4075 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6717,7 +6717,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4086 +// line internal/php7/php7.y:4086 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6730,19 +6730,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4097 +// line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4101 +// line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4108 +// line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6754,7 +6754,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4118 +// line internal/php7/php7.y:4118 { target := &ast.Identifier{ Node: ast.Node{ @@ -6774,7 +6774,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4136 +// line internal/php7/php7.y:4136 { target := &ast.Identifier{ Node: ast.Node{ @@ -6794,43 +6794,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4157 +// line internal/php7/php7.y:4157 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4161 +// line internal/php7/php7.y:4161 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4168 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4172 +// line internal/php7/php7.y:4172 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4179 +// line internal/php7/php7.y:4179 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4186 +// line internal/php7/php7.y:4186 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4190 +// line internal/php7/php7.y:4190 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6847,19 +6847,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4205 +// line internal/php7/php7.y:4205 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4212 +// line internal/php7/php7.y:4212 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4216 +// line internal/php7/php7.y:4216 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6876,19 +6876,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4231 +// line internal/php7/php7.y:4231 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4238 +// line internal/php7/php7.y:4238 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4242 +// line internal/php7/php7.y:4242 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6901,7 +6901,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4253 +// line internal/php7/php7.y:4253 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6914,7 +6914,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4264 +// line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6927,7 +6927,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4275 +// line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6940,25 +6940,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4286 +// line internal/php7/php7.y:4286 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4293 +// line internal/php7/php7.y:4293 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4297 +// line internal/php7/php7.y:4297 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4301 +// line internal/php7/php7.y:4301 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6971,7 +6971,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4315 +// line internal/php7/php7.y:4315 { name := &ast.Identifier{ Node: ast.Node{ @@ -6990,7 +6990,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4332 +// line internal/php7/php7.y:4332 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7004,7 +7004,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4344 +// line internal/php7/php7.y:4344 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7016,7 +7016,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4357 +// line internal/php7/php7.y:4357 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7029,7 +7029,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4368 +// line internal/php7/php7.y:4368 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7042,13 +7042,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4382 +// line internal/php7/php7.y:4382 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4386 +// line internal/php7/php7.y:4386 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7061,7 +7061,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4397 +// line internal/php7/php7.y:4397 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7074,7 +7074,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4408 +// line internal/php7/php7.y:4408 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7087,7 +7087,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4419 +// line internal/php7/php7.y:4419 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7100,7 +7100,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4430 +// line internal/php7/php7.y:4430 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7113,7 +7113,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4444 +// line internal/php7/php7.y:4444 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7125,7 +7125,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4454 +// line internal/php7/php7.y:4454 { yyVAL.node = yyDollar[2].node @@ -7135,13 +7135,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4462 +// line internal/php7/php7.y:4462 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4469 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7153,7 +7153,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4479 +// line internal/php7/php7.y:4479 { yyVAL.node = yyDollar[2].node @@ -7163,31 +7163,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4487 +// line internal/php7/php7.y:4487 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4494 +// line internal/php7/php7.y:4494 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4501 +// line internal/php7/php7.y:4501 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4505 +// line internal/php7/php7.y:4505 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4512 +// line internal/php7/php7.y:4512 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7200,7 +7200,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4523 +// line internal/php7/php7.y:4523 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7210,7 +7210,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4534 +// line internal/php7/php7.y:4534 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7223,7 +7223,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4545 +// line internal/php7/php7.y:4545 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7235,7 +7235,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4555 +// line internal/php7/php7.y:4555 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7251,7 +7251,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4569 +// line internal/php7/php7.y:4569 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7265,7 +7265,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4581 +// line internal/php7/php7.y:4581 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7277,7 +7277,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4591 +// line internal/php7/php7.y:4591 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7296,7 +7296,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4608 +// line internal/php7/php7.y:4608 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7313,13 +7313,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4626 +// line internal/php7/php7.y:4626 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4630 +// line internal/php7/php7.y:4630 { yyVAL.list = append( yyDollar[1].list, @@ -7334,13 +7334,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4643 +// line internal/php7/php7.y:4643 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4647 +// line internal/php7/php7.y:4647 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7355,7 +7355,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4663 +// line internal/php7/php7.y:4663 { name := &ast.Identifier{ Node: ast.Node{ @@ -7374,7 +7374,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4680 +// line internal/php7/php7.y:4680 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7396,7 +7396,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4700 +// line internal/php7/php7.y:4700 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7424,7 +7424,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4726 +// line internal/php7/php7.y:4726 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7439,7 +7439,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4739 +// line internal/php7/php7.y:4739 { name := &ast.Identifier{ Node: ast.Node{ @@ -7461,7 +7461,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4759 +// line internal/php7/php7.y:4759 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7485,7 +7485,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4781 +// line internal/php7/php7.y:4781 { yyVAL.node = yyDollar[2].node @@ -7495,19 +7495,19 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4792 +// line internal/php7/php7.y:4792 { - yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4802 +// line internal/php7/php7.y:4802 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7519,18 +7519,18 @@ yydefault: Value: yyDollar[1].token.Value, } } else { - yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[1].token.Value} + yyVAL.node = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } } - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4823 +// line internal/php7/php7.y:4823 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7544,20 +7544,21 @@ yydefault: Value: yyDollar[2].token.Value, } yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, lnumber} + yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) } else { - yyDollar[2].token.Value = append([]byte("-"), yyDollar[2].token.Value...) - yyVAL.node = &ast.ScalarString{ast.Node{}, yyDollar[2].token.Value} + yyVAL.node = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + MinusTkn: yyDollar[1].token, + StringTkn: yyDollar[2].token, + Value: append([]byte("-"), yyDollar[2].token.Value...), + } } - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4848 +// line internal/php7/php7.y:4849 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7576,7 +7577,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4868 +// line internal/php7/php7.y:4869 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7594,7 +7595,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4884 +// line internal/php7/php7.y:4885 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7616,7 +7617,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4904 +// line internal/php7/php7.y:4905 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7628,7 +7629,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4914 +// line internal/php7/php7.y:4915 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7640,7 +7641,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4924 +// line internal/php7/php7.y:4925 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7662,7 +7663,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4944 +// line internal/php7/php7.y:4945 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7674,7 +7675,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4954 +// line internal/php7/php7.y:4955 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7686,13 +7687,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4967 +// line internal/php7/php7.y:4968 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4971 +// line internal/php7/php7.y:4972 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7701,7 +7702,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4981 +// line internal/php7/php7.y:4982 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index f896af8..b98517d 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3931,13 +3931,13 @@ dereferencable_scalar: } | T_CONSTANT_ENCAPSED_STRING { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } ; @@ -3964,83 +3964,83 @@ scalar: } | T_LINE { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_FILE { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_DIR { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_TRAIT_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_METHOD_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_FUNC_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_NS_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_CLASS_C { - $$ = &ast.ScalarMagicConstant{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarMagicConstant{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + MagicConstTkn: $1, + Value: $1.Value, + } } | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { @@ -4790,13 +4790,13 @@ encaps_var: encaps_var_offset: T_STRING { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } | T_NUM_STRING { @@ -4810,14 +4810,14 @@ encaps_var_offset: Value: $1.Value, } } else { - $$ = &ast.ScalarString{ast.Node{}, $1.Value} + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + } } - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '-' T_NUM_STRING { @@ -4833,16 +4833,17 @@ encaps_var_offset: Value: $2.Value, } $$ = &ast.ExprUnaryMinus{ast.Node{}, lnumber} + $$.GetNode().Position = position.NewTokensPosition($1, $2) } else { - $2.Value = append([]byte("-"), $2.Value...) - $$ = &ast.ScalarString{ast.Node{}, $2.Value} + $$ = &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + MinusTkn: $1, + StringTkn: $2, + Value: append([]byte("-"), $2.Value...), + } } - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index a1b04f4..d395f57 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -172,7 +172,8 @@ func (n *ScalarLnumber) Accept(v NodeVisitor) { // ScalarMagicConstant node type ScalarMagicConstant struct { Node - Value []byte + MagicConstTkn *token.Token + Value []byte } func (n *ScalarMagicConstant) Accept(v NodeVisitor) { @@ -182,7 +183,9 @@ func (n *ScalarMagicConstant) Accept(v NodeVisitor) { // ScalarString node type ScalarString struct { Node - Value []byte + MinusTkn *token.Token + StringTkn *token.Token + Value []byte } func (n *ScalarString) Accept(v NodeVisitor) { From fe2e097d8f9bf3774720e8f4bb79b6cfd790d3b6 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 22 Nov 2020 02:03:39 +0200 Subject: [PATCH 076/140] [refactoring] update ast structure of "Class" and "Trait" nodes --- internal/php5/php5.go | 1153 +++++++++++++++++---------------- internal/php5/php5.y | 111 ++-- internal/php7/php7.go | 1093 +++++++++++++++---------------- internal/php7/php7.y | 105 +-- pkg/ast/node.go | 24 +- pkg/printer/pretty_printer.go | 2 +- pkg/printer/printer.go | 2 +- 7 files changed, 1257 insertions(+), 1233 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 704561a..ece4fad 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6433 +// line internal/php5/php5.y:6436 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2326,7 +2326,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:275 + // line internal/php5/php5.y:275 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2335,7 +2335,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:285 + // line internal/php5/php5.y:285 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2348,13 +2348,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:296 + // line internal/php5/php5.y:296 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:303 + // line internal/php5/php5.y:303 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2368,7 +2368,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:315 + // line internal/php5/php5.y:315 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2381,32 +2381,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:329 + // line internal/php5/php5.y:329 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:346 + // line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2420,7 +2420,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:358 + // line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2438,7 +2438,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:374 + // line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2458,7 +2458,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:392 + // line internal/php5/php5.y:392 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2472,7 +2472,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:404 + // line internal/php5/php5.y:404 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2485,7 +2485,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:415 + // line internal/php5/php5.y:415 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2505,7 +2505,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:433 + // line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2525,7 +2525,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:451 + // line internal/php5/php5.y:451 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2533,7 +2533,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:460 + // line internal/php5/php5.y:460 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2541,13 +2541,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:466 + // line internal/php5/php5.y:466 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:473 + // line internal/php5/php5.y:473 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2563,7 +2563,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:487 + // line internal/php5/php5.y:487 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2587,7 +2587,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:509 + // line internal/php5/php5.y:509 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2604,7 +2604,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:524 + // line internal/php5/php5.y:524 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:550 + // line internal/php5/php5.y:550 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2637,13 +2637,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:556 + // line internal/php5/php5.y:556 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:563 + // line internal/php5/php5.y:563 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2659,7 +2659,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:577 + // line internal/php5/php5.y:577 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2683,7 +2683,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:599 + // line internal/php5/php5.y:599 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2700,7 +2700,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:614 + // line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2725,7 +2725,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:640 + // line internal/php5/php5.y:640 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2733,13 +2733,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:646 + // line internal/php5/php5.y:646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:653 + // line internal/php5/php5.y:653 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:667 + // line internal/php5/php5.y:667 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2779,7 +2779,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:689 + // line internal/php5/php5.y:689 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2796,7 +2796,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:704 + // line internal/php5/php5.y:704 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:730 + // line internal/php5/php5.y:730 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2847,7 +2847,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:754 + // line internal/php5/php5.y:754 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2876,7 +2876,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:784 + // line internal/php5/php5.y:784 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2889,38 +2889,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:795 + // line internal/php5/php5.y:795 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:803 + // line internal/php5/php5.y:803 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:808 + // line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:812 + // line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:820 + // line internal/php5/php5.y:820 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2934,13 +2934,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:836 + // line internal/php5/php5.y:836 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:840 + // line internal/php5/php5.y:840 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2958,7 +2958,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:859 + // line internal/php5/php5.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2971,7 +2971,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:870 + // line internal/php5/php5.y:870 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2995,7 +2995,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:892 + // line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3021,7 +3021,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:916 + // line internal/php5/php5.y:916 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3033,7 +3033,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:926 + // line internal/php5/php5.y:926 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3050,7 +3050,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:941 + // line internal/php5/php5.y:941 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3066,7 +3066,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:955 + // line internal/php5/php5.y:955 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3078,7 +3078,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:965 + // line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3090,7 +3090,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:975 + // line internal/php5/php5.y:975 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3103,7 +3103,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:986 + // line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3115,7 +3115,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:996 + // line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3128,7 +3128,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1007 + // line internal/php5/php5.y:1007 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3140,7 +3140,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1017 + // line internal/php5/php5.y:1017 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3153,7 +3153,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1028 + // line internal/php5/php5.y:1028 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3166,7 +3166,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1039 + // line internal/php5/php5.y:1039 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3180,7 +3180,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1051 + // line internal/php5/php5.y:1051 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3191,7 +3191,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1060 + // line internal/php5/php5.y:1060 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3202,7 +3202,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1069 + // line internal/php5/php5.y:1069 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3212,7 +3212,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1077 + // line internal/php5/php5.y:1077 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3224,7 +3224,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1087 + // line internal/php5/php5.y:1087 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3238,7 +3238,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1099 + // line internal/php5/php5.y:1099 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3250,7 +3250,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1109 + // line internal/php5/php5.y:1109 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3270,7 +3270,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1127 + // line internal/php5/php5.y:1127 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3290,7 +3290,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1145 + // line internal/php5/php5.y:1145 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3303,7 +3303,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1156 + // line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3314,7 +3314,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1165 + // line internal/php5/php5.y:1165 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3333,7 +3333,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1182 + // line internal/php5/php5.y:1182 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3346,7 +3346,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1193 + // line internal/php5/php5.y:1193 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3365,13 +3365,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1213 + // line internal/php5/php5.y:1213 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1217 + // line internal/php5/php5.y:1217 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3404,13 +3404,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1251 + // line internal/php5/php5.y:1251 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1255 + // line internal/php5/php5.y:1255 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3424,31 +3424,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1270 + // line internal/php5/php5.y:1270 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1274 + // line internal/php5/php5.y:1274 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1281 + // line internal/php5/php5.y:1281 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1285 + // line internal/php5/php5.y:1285 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1292 + // line internal/php5/php5.y:1292 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3480,7 +3480,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1325 + // line internal/php5/php5.y:1325 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3488,7 +3488,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1331 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3497,49 +3497,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1341 + // line internal/php5/php5.y:1341 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1348 + // line internal/php5/php5.y:1348 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1355 + // line internal/php5/php5.y:1355 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1362 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1366 + // line internal/php5/php5.y:1366 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1373 + // line internal/php5/php5.y:1373 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1377 + // line internal/php5/php5.y:1377 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1384 + // line internal/php5/php5.y:1384 { name := &ast.Identifier{ Node: ast.Node{ @@ -3564,39 +3564,44 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1410 + // line internal/php5/php5.y:1410 { - name := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, - } switch n := yyDollar[1].node.(type) { case *ast.StmtClass: - n.ClassName = name - n.Stmts = yyDollar[6].list + n.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) + n.ClassName = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } n.Extends = yyDollar[3].ClassExtends n.Implements = yyDollar[4].ClassImplements - - case *ast.StmtTrait: - // TODO: is it possible that trait extend or implement - n.TraitName = name + n.OpenCurlyBracket = yyDollar[5].token n.Stmts = yyDollar[6].list + n.CloseCurlyBracket = yyDollar[7].token + case *ast.StmtTrait: + n.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) + n.TraitName = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + } + n.Extends = yyDollar[3].ClassExtends + n.Implements = yyDollar[4].ClassImplements + n.OpenCurlyBracket = yyDollar[5].token + n.Stmts = yyDollar[6].list + n.CloseCurlyBracket = yyDollar[7].token } + yyVAL.node = yyDollar[1].node - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.SkippedTokens) } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1440 + // line internal/php5/php5.y:1445 { name := &ast.Identifier{ Node: ast.Node{ @@ -3617,77 +3622,75 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1463 + // line internal/php5/php5.y:1468 { - yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtClass{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + ClassTkn: yyDollar[1].token, + } } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1477 { - classModifier := &ast.Identifier{ + yyVAL.node = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + ClassTkn: yyDollar[2].token, } - yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1491 + // line internal/php5/php5.y:1495 { - yyVAL.node = &ast.Identifier{ + yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + TraitTkn: yyDollar[1].token, } } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1501 + // line internal/php5/php5.y:1504 { - classModifier := &ast.Identifier{ + yyVAL.node = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + ClassTkn: yyDollar[2].token, } - yyVAL.node = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1522 + // line internal/php5/php5.y:1525 { yyVAL.ClassExtends = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1526 + // line internal/php5/php5.y:1529 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3699,19 +3702,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1539 + // line internal/php5/php5.y:1542 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1546 + // line internal/php5/php5.y:1549 { yyVAL.InterfaceExtends = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1553 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3723,13 +3726,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1563 + // line internal/php5/php5.y:1566 { yyVAL.ClassImplements = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1567 + // line internal/php5/php5.y:1570 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3741,13 +3744,13 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1580 + // line internal/php5/php5.y:1583 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1584 + // line internal/php5/php5.y:1587 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -3761,13 +3764,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1596 + // line internal/php5/php5.y:1599 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1600 + // line internal/php5/php5.y:1603 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3776,13 +3779,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1610 + // line internal/php5/php5.y:1613 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1614 + // line internal/php5/php5.y:1617 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3794,7 +3797,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1624 + // line internal/php5/php5.y:1627 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3808,7 +3811,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1639 + // line internal/php5/php5.y:1642 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3819,7 +3822,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1648 + // line internal/php5/php5.y:1651 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3839,7 +3842,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1669 + // line internal/php5/php5.y:1672 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3850,7 +3853,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1678 + // line internal/php5/php5.y:1681 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3870,7 +3873,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1700 + // line internal/php5/php5.y:1703 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3881,7 +3884,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1709 + // line internal/php5/php5.y:1712 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3901,7 +3904,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1734 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3926,7 +3929,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1754 + // line internal/php5/php5.y:1757 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3953,7 +3956,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1783 + // line internal/php5/php5.y:1786 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3966,7 +3969,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1794 + // line internal/php5/php5.y:1797 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3980,7 +3983,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1806 + // line internal/php5/php5.y:1809 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3995,7 +3998,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1819 + // line internal/php5/php5.y:1822 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4011,13 +4014,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1837 + // line internal/php5/php5.y:1840 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1841 + // line internal/php5/php5.y:1844 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4031,7 +4034,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1853 + // line internal/php5/php5.y:1856 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4044,19 +4047,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1868 + // line internal/php5/php5.y:1871 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1872 + // line internal/php5/php5.y:1875 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1880 + // line internal/php5/php5.y:1883 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4067,7 +4070,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1892 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4087,13 +4090,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1912 + // line internal/php5/php5.y:1915 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1916 + // line internal/php5/php5.y:1919 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4108,13 +4111,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1936 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1937 + // line internal/php5/php5.y:1940 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4136,13 +4139,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1961 + // line internal/php5/php5.y:1964 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1965 + // line internal/php5/php5.y:1968 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4154,13 +4157,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1979 + // line internal/php5/php5.y:1982 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1983 + // line internal/php5/php5.y:1986 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4179,25 +4182,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2004 + // line internal/php5/php5.y:2007 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2008 + // line internal/php5/php5.y:2011 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2015 + // line internal/php5/php5.y:2018 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2019 + // line internal/php5/php5.y:2022 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4206,7 +4209,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2029 + // line internal/php5/php5.y:2032 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4260,7 +4263,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2081 + // line internal/php5/php5.y:2084 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4317,13 +4320,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2140 + // line internal/php5/php5.y:2143 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2144 + // line internal/php5/php5.y:2147 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4335,7 +4338,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2154 + // line internal/php5/php5.y:2157 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4347,13 +4350,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2164 + // line internal/php5/php5.y:2167 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2172 + // line internal/php5/php5.y:2175 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4365,7 +4368,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2182 + // line internal/php5/php5.y:2185 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4376,7 +4379,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2194 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4396,7 +4399,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2213 + // line internal/php5/php5.y:2216 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4404,7 +4407,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2219 + // line internal/php5/php5.y:2222 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4413,7 +4416,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2229 + // line internal/php5/php5.y:2232 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4424,7 +4427,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2238 + // line internal/php5/php5.y:2241 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4435,7 +4438,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2250 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4447,7 +4450,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2257 + // line internal/php5/php5.y:2260 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4459,7 +4462,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2270 + // line internal/php5/php5.y:2273 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4468,7 +4471,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2277 + // line internal/php5/php5.y:2280 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4476,7 +4479,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2287 + // line internal/php5/php5.y:2290 { name := &ast.Identifier{ Node: ast.Node{ @@ -4495,7 +4498,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2304 + // line internal/php5/php5.y:2307 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4507,7 +4510,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2314 + // line internal/php5/php5.y:2317 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4521,7 +4524,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2330 + // line internal/php5/php5.y:2333 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4550,7 +4553,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2357 + // line internal/php5/php5.y:2360 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4581,7 +4584,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2386 + // line internal/php5/php5.y:2389 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4611,7 +4614,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2414 + // line internal/php5/php5.y:2417 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4643,19 +4646,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2448 + // line internal/php5/php5.y:2451 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2452 + // line internal/php5/php5.y:2455 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2460 + // line internal/php5/php5.y:2463 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4669,7 +4672,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2472 + // line internal/php5/php5.y:2475 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4677,13 +4680,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2481 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2482 + // line internal/php5/php5.y:2485 { name := &ast.Identifier{ Node: ast.Node{ @@ -4719,7 +4722,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2519 + // line internal/php5/php5.y:2522 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4731,13 +4734,13 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2532 + // line internal/php5/php5.y:2535 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2536 + // line internal/php5/php5.y:2539 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4751,7 +4754,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2548 + // line internal/php5/php5.y:2551 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4762,7 +4765,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2557 + // line internal/php5/php5.y:2560 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4774,31 +4777,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2570 + // line internal/php5/php5.y:2573 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2574 + // line internal/php5/php5.y:2577 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2581 + // line internal/php5/php5.y:2584 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2585 + // line internal/php5/php5.y:2588 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2592 + // line internal/php5/php5.y:2595 { yyVAL.node = yyDollar[1].node @@ -4808,7 +4811,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2603 { yyVAL.node = yyDollar[1].node @@ -4818,7 +4821,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2611 + // line internal/php5/php5.y:2614 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4831,13 +4834,13 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2625 + // line internal/php5/php5.y:2628 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2629 + // line internal/php5/php5.y:2632 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4846,7 +4849,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2639 + // line internal/php5/php5.y:2642 { name := &ast.Identifier{ Node: ast.Node{ @@ -4865,13 +4868,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2656 + // line internal/php5/php5.y:2659 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2663 + // line internal/php5/php5.y:2666 { target := &ast.Identifier{ Node: ast.Node{ @@ -4891,7 +4894,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2684 + // line internal/php5/php5.y:2687 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4911,7 +4914,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2702 + // line internal/php5/php5.y:2705 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4924,19 +4927,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2716 + // line internal/php5/php5.y:2719 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2720 + // line internal/php5/php5.y:2723 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2730 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4947,7 +4950,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2736 + // line internal/php5/php5.y:2739 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4960,13 +4963,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2750 + // line internal/php5/php5.y:2753 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2754 + // line internal/php5/php5.y:2757 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4980,31 +4983,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2769 + // line internal/php5/php5.y:2772 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2773 + // line internal/php5/php5.y:2776 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2780 + // line internal/php5/php5.y:2783 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2784 + // line internal/php5/php5.y:2787 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2791 + // line internal/php5/php5.y:2794 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5016,7 +5019,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2801 + // line internal/php5/php5.y:2804 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5028,7 +5031,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2811 + // line internal/php5/php5.y:2814 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5040,7 +5043,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2821 + // line internal/php5/php5.y:2824 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5052,7 +5055,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2831 + // line internal/php5/php5.y:2834 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5064,7 +5067,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2841 + // line internal/php5/php5.y:2844 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5076,7 +5079,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2854 + // line internal/php5/php5.y:2857 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5099,7 +5102,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2875 + // line internal/php5/php5.y:2878 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5123,7 +5126,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2897 + // line internal/php5/php5.y:2900 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5145,7 +5148,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2917 + // line internal/php5/php5.y:2920 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5168,7 +5171,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2941 + // line internal/php5/php5.y:2944 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5194,7 +5197,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2965 + // line internal/php5/php5.y:2968 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5223,7 +5226,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2995 + // line internal/php5/php5.y:2998 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5232,7 +5235,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3002 + // line internal/php5/php5.y:3005 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5240,19 +5243,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3012 + // line internal/php5/php5.y:3015 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3016 + // line internal/php5/php5.y:3019 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3026 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5261,25 +5264,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3030 + // line internal/php5/php5.y:3033 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3037 + // line internal/php5/php5.y:3040 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3041 + // line internal/php5/php5.y:3044 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3048 + // line internal/php5/php5.y:3051 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5293,7 +5296,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3060 + // line internal/php5/php5.y:3063 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5307,37 +5310,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3075 + // line internal/php5/php5.y:3078 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3079 + // line internal/php5/php5.y:3082 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3083 + // line internal/php5/php5.y:3086 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3090 + // line internal/php5/php5.y:3093 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3094 + // line internal/php5/php5.y:3097 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3101 + // line internal/php5/php5.y:3104 { if yyDollar[3].node != nil { @@ -5353,7 +5356,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3118 + // line internal/php5/php5.y:3121 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5370,7 +5373,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3133 + // line internal/php5/php5.y:3136 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5386,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3144 + // line internal/php5/php5.y:3147 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5397,7 +5400,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3156 + // line internal/php5/php5.y:3159 { var _new *ast.ExprNew @@ -5424,7 +5427,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3181 + // line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5436,7 +5439,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3191 + // line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5451,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3201 + // line internal/php5/php5.y:3204 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5464,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3212 + // line internal/php5/php5.y:3215 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5474,7 +5477,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3223 + // line internal/php5/php5.y:3226 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5487,7 +5490,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3234 + // line internal/php5/php5.y:3237 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5500,7 +5503,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3245 + // line internal/php5/php5.y:3248 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5513,7 +5516,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3256 + // line internal/php5/php5.y:3259 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5526,7 +5529,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3267 + // line internal/php5/php5.y:3270 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5539,7 +5542,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3278 + // line internal/php5/php5.y:3281 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5552,7 +5555,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3289 + // line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5565,7 +5568,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3300 + // line internal/php5/php5.y:3303 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5578,7 +5581,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3311 + // line internal/php5/php5.y:3314 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5591,7 +5594,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3322 + // line internal/php5/php5.y:3325 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5604,7 +5607,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3333 + // line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5616,7 +5619,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3343 + // line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5629,7 +5632,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3354 + // line internal/php5/php5.y:3357 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5641,7 +5644,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3364 + // line internal/php5/php5.y:3367 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5657,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3375 + // line internal/php5/php5.y:3378 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5670,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3386 + // line internal/php5/php5.y:3389 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5683,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3397 + // line internal/php5/php5.y:3400 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5696,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3408 + // line internal/php5/php5.y:3411 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5709,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3419 + // line internal/php5/php5.y:3422 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5722,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3430 + // line internal/php5/php5.y:3433 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5735,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3441 + // line internal/php5/php5.y:3444 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5748,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3452 + // line internal/php5/php5.y:3455 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5757,7 +5760,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3462 + // line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5770,7 +5773,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3473 + // line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5783,7 +5786,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3484 + // line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5796,7 +5799,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3495 + // line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5812,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3506 + // line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,7 +5825,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3517 + // line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5838,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3528 + // line internal/php5/php5.y:3531 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5851,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3539 + // line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5861,7 +5864,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3550 + // line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5873,7 +5876,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3560 + // line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5885,7 +5888,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3570 + // line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5897,7 +5900,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3580 + // line internal/php5/php5.y:3583 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5909,7 +5912,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3590 + // line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5922,7 +5925,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3601 + // line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5935,7 +5938,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3612 + // line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5948,7 +5951,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3623 + // line internal/php5/php5.y:3626 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5962,7 +5965,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3635 + // line internal/php5/php5.y:3638 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5975,7 +5978,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3646 + // line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5988,7 +5991,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3657 + // line internal/php5/php5.y:3660 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6001,7 +6004,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3668 + // line internal/php5/php5.y:3671 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6014,7 +6017,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3679 + // line internal/php5/php5.y:3682 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6027,19 +6030,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3690 + // line internal/php5/php5.y:3693 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3694 + // line internal/php5/php5.y:3697 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3698 + // line internal/php5/php5.y:3701 { yyVAL.node = yyDollar[2].node @@ -6071,7 +6074,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3728 + // line internal/php5/php5.y:3731 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6085,7 +6088,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3740 + // line internal/php5/php5.y:3743 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6099,13 +6102,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3752 + // line internal/php5/php5.y:3755 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3756 + // line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6118,7 +6121,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3767 + // line internal/php5/php5.y:3770 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6131,7 +6134,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3778 + // line internal/php5/php5.y:3781 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6144,7 +6147,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3789 + // line internal/php5/php5.y:3792 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6157,7 +6160,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3800 + // line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6170,7 +6173,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3811 + // line internal/php5/php5.y:3814 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6183,7 +6186,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3822 + // line internal/php5/php5.y:3825 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6196,7 +6199,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3833 + // line internal/php5/php5.y:3836 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6216,7 +6219,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3854 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6228,25 +6231,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3861 + // line internal/php5/php5.y:3864 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3865 + // line internal/php5/php5.y:3868 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3869 + // line internal/php5/php5.y:3872 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3876 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6258,7 +6261,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3883 + // line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6270,7 +6273,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3893 + // line internal/php5/php5.y:3896 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6282,7 +6285,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3903 + // line internal/php5/php5.y:3906 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6309,7 +6312,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3927 + // line internal/php5/php5.y:3930 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6337,7 +6340,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3955 + // line internal/php5/php5.y:3958 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6349,7 +6352,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3965 + // line internal/php5/php5.y:3968 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6361,7 +6364,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3975 + // line internal/php5/php5.y:3978 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6374,7 +6377,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3986 + // line internal/php5/php5.y:3989 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6387,7 +6390,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4000 + // line internal/php5/php5.y:4003 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6400,7 +6403,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4011 + // line internal/php5/php5.y:4014 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6413,7 +6416,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4022 + // line internal/php5/php5.y:4025 { str := &ast.ScalarString{ Node: ast.Node{ @@ -6433,7 +6436,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4040 + // line internal/php5/php5.y:4043 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6446,7 +6449,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4054 + // line internal/php5/php5.y:4057 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6460,7 +6463,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4066 + // line internal/php5/php5.y:4069 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6473,19 +6476,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4080 + // line internal/php5/php5.y:4083 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4087 + // line internal/php5/php5.y:4090 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4091 + // line internal/php5/php5.y:4094 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6499,7 +6502,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4106 + // line internal/php5/php5.y:4109 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6520,7 +6523,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4125 + // line internal/php5/php5.y:4128 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6544,7 +6547,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4147 + // line internal/php5/php5.y:4150 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6564,7 +6567,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4165 + // line internal/php5/php5.y:4168 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6587,7 +6590,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4189 + // line internal/php5/php5.y:4192 { name := &ast.NameName{ Node: ast.Node{ @@ -6602,7 +6605,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4202 + // line internal/php5/php5.y:4205 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6619,7 +6622,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4217 + // line internal/php5/php5.y:4220 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6635,7 +6638,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4231 + // line internal/php5/php5.y:4234 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6648,7 +6651,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4245 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6661,7 +6664,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4253 + // line internal/php5/php5.y:4256 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6674,7 +6677,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4264 + // line internal/php5/php5.y:4267 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6687,7 +6690,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4275 + // line internal/php5/php5.y:4278 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6699,7 +6702,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4288 + // line internal/php5/php5.y:4291 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6711,7 +6714,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4298 + // line internal/php5/php5.y:4301 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6722,7 +6725,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4307 + // line internal/php5/php5.y:4310 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6735,7 +6738,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4318 + // line internal/php5/php5.y:4321 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6747,7 +6750,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4331 + // line internal/php5/php5.y:4334 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6758,7 +6761,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4343 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6771,7 +6774,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4351 + // line internal/php5/php5.y:4354 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6783,19 +6786,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4364 + // line internal/php5/php5.y:4367 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4368 + // line internal/php5/php5.y:4371 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4375 + // line internal/php5/php5.y:4378 { yyVAL.node = yyDollar[1].node @@ -6836,25 +6839,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4414 + // line internal/php5/php5.y:4417 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4422 + // line internal/php5/php5.y:4425 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4426 + // line internal/php5/php5.y:4429 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4434 + // line internal/php5/php5.y:4437 { yyVAL.list = yyDollar[2].list @@ -6863,13 +6866,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4444 + // line internal/php5/php5.y:4447 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4448 + // line internal/php5/php5.y:4451 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6885,19 +6888,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4462 + // line internal/php5/php5.y:4465 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4469 + // line internal/php5/php5.y:4472 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4473 + // line internal/php5/php5.y:4476 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6911,25 +6914,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4485 + // line internal/php5/php5.y:4488 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4492 + // line internal/php5/php5.y:4495 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4496 + // line internal/php5/php5.y:4499 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4503 + // line internal/php5/php5.y:4506 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6941,7 +6944,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4513 + // line internal/php5/php5.y:4516 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6953,7 +6956,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4523 + // line internal/php5/php5.y:4526 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6965,7 +6968,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4533 + // line internal/php5/php5.y:4536 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6977,7 +6980,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4543 + // line internal/php5/php5.y:4546 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6989,7 +6992,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4553 + // line internal/php5/php5.y:4556 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7001,7 +7004,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4563 + // line internal/php5/php5.y:4566 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7013,7 +7016,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4573 + // line internal/php5/php5.y:4576 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7025,7 +7028,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4583 + // line internal/php5/php5.y:4586 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7037,7 +7040,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4596 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7049,7 +7052,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4603 + // line internal/php5/php5.y:4606 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7070,7 +7073,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4622 + // line internal/php5/php5.y:4625 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7082,7 +7085,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4635 + // line internal/php5/php5.y:4638 { target := &ast.Identifier{ Node: ast.Node{ @@ -7102,25 +7105,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4656 + // line internal/php5/php5.y:4659 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4663 + // line internal/php5/php5.y:4666 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4667 + // line internal/php5/php5.y:4670 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4671 + // line internal/php5/php5.y:4674 { name := &ast.NameName{ Node: ast.Node{ @@ -7135,7 +7138,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4684 + // line internal/php5/php5.y:4687 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7152,7 +7155,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4699 + // line internal/php5/php5.y:4702 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7168,7 +7171,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4716 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7182,7 +7185,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4725 + // line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7195,13 +7198,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4736 + // line internal/php5/php5.y:4739 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4740 + // line internal/php5/php5.y:4743 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7213,13 +7216,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4750 + // line internal/php5/php5.y:4753 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4760 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7232,7 +7235,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4768 + // line internal/php5/php5.y:4771 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7245,7 +7248,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4779 + // line internal/php5/php5.y:4782 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7258,7 +7261,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4793 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7271,7 +7274,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4801 + // line internal/php5/php5.y:4804 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7284,7 +7287,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4812 + // line internal/php5/php5.y:4815 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7297,7 +7300,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4823 + // line internal/php5/php5.y:4826 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7310,7 +7313,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4834 + // line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7322,7 +7325,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4844 + // line internal/php5/php5.y:4847 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7334,7 +7337,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4854 + // line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7347,7 +7350,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4865 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7360,7 +7363,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4876 + // line internal/php5/php5.y:4879 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7373,7 +7376,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4887 + // line internal/php5/php5.y:4890 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7386,7 +7389,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4898 + // line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7399,7 +7402,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4909 + // line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7412,7 +7415,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4920 + // line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7425,7 +7428,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4931 + // line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7438,7 +7441,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4945 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7451,7 +7454,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4953 + // line internal/php5/php5.y:4956 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7464,7 +7467,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4967 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7477,7 +7480,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4975 + // line internal/php5/php5.y:4978 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7490,7 +7493,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4986 + // line internal/php5/php5.y:4989 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7503,7 +7506,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4997 + // line internal/php5/php5.y:5000 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7516,7 +7519,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5011 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7530,7 +7533,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5023 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7543,7 +7546,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5031 + // line internal/php5/php5.y:5034 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7556,7 +7559,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5042 + // line internal/php5/php5.y:5045 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7569,7 +7572,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5053 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7582,7 +7585,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5064 + // line internal/php5/php5.y:5067 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7596,7 +7599,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5076 + // line internal/php5/php5.y:5079 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7610,7 +7613,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5088 + // line internal/php5/php5.y:5091 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7622,7 +7625,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5098 + // line internal/php5/php5.y:5101 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7634,7 +7637,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5108 + // line internal/php5/php5.y:5111 { yyVAL.node = yyDollar[2].node @@ -7644,13 +7647,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5119 + // line internal/php5/php5.y:5122 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5123 + // line internal/php5/php5.y:5126 { name := &ast.NameName{ Node: ast.Node{ @@ -7665,7 +7668,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5136 + // line internal/php5/php5.y:5139 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7682,7 +7685,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5151 + // line internal/php5/php5.y:5154 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7698,7 +7701,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5168 + // line internal/php5/php5.y:5171 { name := &ast.Identifier{ Node: ast.Node{ @@ -7717,25 +7720,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5185 + // line internal/php5/php5.y:5188 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5189 + // line internal/php5/php5.y:5192 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5193 + // line internal/php5/php5.y:5196 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5197 + // line internal/php5/php5.y:5200 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7748,7 +7751,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5208 + // line internal/php5/php5.y:5211 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7761,7 +7764,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5219 + // line internal/php5/php5.y:5222 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7773,13 +7776,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5232 + // line internal/php5/php5.y:5235 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5236 + // line internal/php5/php5.y:5239 { yyVAL.list = yyDollar[1].list @@ -7790,19 +7793,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5248 + // line internal/php5/php5.y:5251 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5255 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5259 + // line internal/php5/php5.y:5262 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7817,7 +7820,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5272 + // line internal/php5/php5.y:5275 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7831,7 +7834,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5284 + // line internal/php5/php5.y:5287 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7845,7 +7848,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5296 + // line internal/php5/php5.y:5299 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7858,19 +7861,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5310 + // line internal/php5/php5.y:5313 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5314 + // line internal/php5/php5.y:5317 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5321 + // line internal/php5/php5.y:5324 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7887,7 +7890,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5336 + // line internal/php5/php5.y:5339 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7904,25 +7907,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5355 + // line internal/php5/php5.y:5358 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5363 + // line internal/php5/php5.y:5366 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5370 + // line internal/php5/php5.y:5373 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5377 + // line internal/php5/php5.y:5380 { yyVAL.node = yyDollar[1].node @@ -7980,25 +7983,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5436 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5440 + // line internal/php5/php5.y:5443 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5444 + // line internal/php5/php5.y:5447 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5452 + // line internal/php5/php5.y:5455 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8012,7 +8015,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5467 + // line internal/php5/php5.y:5470 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8026,7 +8029,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5479 + // line internal/php5/php5.y:5482 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8040,7 +8043,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5494 + // line internal/php5/php5.y:5497 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8049,31 +8052,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5504 + // line internal/php5/php5.y:5507 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5508 + // line internal/php5/php5.y:5511 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5512 + // line internal/php5/php5.y:5515 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5519 + // line internal/php5/php5.y:5522 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5523 + // line internal/php5/php5.y:5526 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8085,7 +8088,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5536 + // line internal/php5/php5.y:5539 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8098,7 +8101,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5547 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8111,13 +8114,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5561 + // line internal/php5/php5.y:5564 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5568 + // line internal/php5/php5.y:5571 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8130,7 +8133,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5579 + // line internal/php5/php5.y:5582 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8143,31 +8146,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5593 + // line internal/php5/php5.y:5596 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5597 + // line internal/php5/php5.y:5600 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5601 + // line internal/php5/php5.y:5604 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5609 + // line internal/php5/php5.y:5612 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5613 + // line internal/php5/php5.y:5616 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8179,13 +8182,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5623 + // line internal/php5/php5.y:5626 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5630 + // line internal/php5/php5.y:5633 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8198,7 +8201,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5641 + // line internal/php5/php5.y:5644 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8211,13 +8214,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5652 + // line internal/php5/php5.y:5655 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5660 + // line internal/php5/php5.y:5663 { name := &ast.Identifier{ Node: ast.Node{ @@ -8236,7 +8239,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5677 + // line internal/php5/php5.y:5680 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8250,25 +8253,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5692 + // line internal/php5/php5.y:5695 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5696 + // line internal/php5/php5.y:5699 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5704 + // line internal/php5/php5.y:5707 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5708 + // line internal/php5/php5.y:5711 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8278,7 +8281,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5719 + // line internal/php5/php5.y:5722 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8292,7 +8295,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5731 + // line internal/php5/php5.y:5734 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8306,7 +8309,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5743 + // line internal/php5/php5.y:5746 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8316,7 +8319,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5754 + // line internal/php5/php5.y:5757 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8328,7 +8331,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5764 + // line internal/php5/php5.y:5767 { yyVAL.node = yyDollar[2].node @@ -8341,7 +8344,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5778 + // line internal/php5/php5.y:5781 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8354,7 +8357,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5789 + // line internal/php5/php5.y:5792 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8371,7 +8374,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5807 + // line internal/php5/php5.y:5810 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8384,7 +8387,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5818 + // line internal/php5/php5.y:5821 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8394,7 +8397,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5830 + // line internal/php5/php5.y:5833 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8406,7 +8409,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5840 + // line internal/php5/php5.y:5843 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8422,19 +8425,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5854 + // line internal/php5/php5.y:5857 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5862 + // line internal/php5/php5.y:5865 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5866 + // line internal/php5/php5.y:5869 { yyVAL.list = yyDollar[1].list @@ -8449,7 +8452,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5882 + // line internal/php5/php5.y:5885 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8464,7 +8467,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5895 + // line internal/php5/php5.y:5898 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8478,7 +8481,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5907 + // line internal/php5/php5.y:5910 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8492,7 +8495,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5919 + // line internal/php5/php5.y:5922 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8505,7 +8508,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5930 + // line internal/php5/php5.y:5933 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8523,7 +8526,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5946 + // line internal/php5/php5.y:5949 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8539,7 +8542,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5960 + // line internal/php5/php5.y:5963 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8556,7 +8559,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5975 + // line internal/php5/php5.y:5978 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8571,13 +8574,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5991 + // line internal/php5/php5.y:5994 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5995 + // line internal/php5/php5.y:5998 { yyVAL.list = append( yyDollar[1].list, @@ -8592,13 +8595,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6008 + // line internal/php5/php5.y:6011 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6012 + // line internal/php5/php5.y:6015 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8613,7 +8616,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6028 + // line internal/php5/php5.y:6031 { name := &ast.Identifier{ Node: ast.Node{ @@ -8632,7 +8635,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6045 + // line internal/php5/php5.y:6048 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8654,7 +8657,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6065 + // line internal/php5/php5.y:6068 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8682,7 +8685,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6091 + // line internal/php5/php5.y:6094 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8697,7 +8700,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6104 + // line internal/php5/php5.y:6107 { name := &ast.Identifier{ Node: ast.Node{ @@ -8719,7 +8722,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6124 + // line internal/php5/php5.y:6127 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8743,7 +8746,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6146 + // line internal/php5/php5.y:6149 { yyVAL.node = yyDollar[2].node @@ -8753,7 +8756,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6157 + // line internal/php5/php5.y:6160 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8765,7 +8768,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6167 + // line internal/php5/php5.y:6170 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8794,7 +8797,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6194 + // line internal/php5/php5.y:6197 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8813,7 +8816,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6214 + // line internal/php5/php5.y:6217 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8827,7 +8830,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6226 + // line internal/php5/php5.y:6229 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8849,7 +8852,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6246 + // line internal/php5/php5.y:6249 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8871,7 +8874,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6266 + // line internal/php5/php5.y:6269 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8883,7 +8886,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6276 + // line internal/php5/php5.y:6279 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8895,7 +8898,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6286 + // line internal/php5/php5.y:6289 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8917,7 +8920,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6306 + // line internal/php5/php5.y:6309 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8929,7 +8932,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6316 + // line internal/php5/php5.y:6319 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8941,13 +8944,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6329 + // line internal/php5/php5.y:6332 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6333 + // line internal/php5/php5.y:6336 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8956,19 +8959,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6343 + // line internal/php5/php5.y:6346 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6347 + // line internal/php5/php5.y:6350 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6354 + // line internal/php5/php5.y:6357 { target := &ast.Identifier{ Node: ast.Node{ @@ -8988,7 +8991,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6372 + // line internal/php5/php5.y:6375 { target := &ast.Identifier{ Node: ast.Node{ @@ -9008,7 +9011,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6393 + // line internal/php5/php5.y:6396 { target := &ast.Identifier{ Node: ast.Node{ @@ -9028,7 +9031,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6414 + // line internal/php5/php5.y:6417 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 1674719..67d3536 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1408,33 +1408,38 @@ unticked_function_declaration_statement: unticked_class_declaration_statement: class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}' { - name := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, - IdentifierTkn: $2, - Value: $2.Value, - } switch n := $1.(type) { case *ast.StmtClass : - n.ClassName = name - n.Stmts = $6 + n.Position = position.NewNodeTokenPosition($1, $7) + n.ClassName = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } n.Extends = $3 n.Implements = $4 - - case *ast.StmtTrait : - // TODO: is it possible that trait extend or implement - n.TraitName = name + n.OpenCurlyBracket = $5 n.Stmts = $6 + n.CloseCurlyBracket = $7 + case *ast.StmtTrait : + n.Position = position.NewNodeTokenPosition($1, $7) + n.TraitName = &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + } + n.Extends = $3 + n.Implements = $4 + n.OpenCurlyBracket = $5 + n.Stmts = $6 + n.CloseCurlyBracket = $7 } + $$ = $1 - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $7) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.SkippedTokens) } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { @@ -1461,59 +1466,57 @@ unticked_class_declaration_statement: class_entry_type: T_CLASS { - $$ = &ast.StmtClass{ast.Node{}, nil, nil, nil, nil, nil, nil} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtClass{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + ClassTkn: $1, + } } | T_ABSTRACT T_CLASS { - classModifier := &ast.Identifier{ + $$ = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokensPosition($1, $2), }, - IdentifierTkn: $1, - Value: $1.Value, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + ClassTkn: $2, } - $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) } | T_TRAIT { - $$ = &ast.Identifier{ + $$ = &ast.StmtTrait{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + TraitTkn: $1, } } | T_FINAL T_CLASS { - classModifier := &ast.Identifier{ + $$ = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokensPosition($1, $2), }, - IdentifierTkn: $1, - Value: $1.Value, + Modifiers: []ast.Vertex{ + &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + ClassTkn: $2, } - $$ = &ast.StmtClass{ast.Node{}, nil, []ast.Vertex{classModifier}, nil, nil, nil, nil} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index c075510..aa80680 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -347,7 +347,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4989 +// line internal/php7/php7.y:4994 // line yacctab:1 var yyExca = [...]int{ @@ -2114,7 +2114,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:294 + // line internal/php7/php7.y:294 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2125,469 +2125,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:309 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:311 + // line internal/php7/php7.y:311 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:328 + // line internal/php7/php7.y:328 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:335 + // line internal/php7/php7.y:335 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2600,13 +2600,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:346 + // line internal/php7/php7.y:346 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:353 + // line internal/php7/php7.y:353 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2620,7 +2620,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:365 + // line internal/php7/php7.y:365 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2633,7 +2633,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:379 + // line internal/php7/php7.y:379 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2644,7 +2644,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:388 + // line internal/php7/php7.y:388 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2657,7 +2657,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:399 + // line internal/php7/php7.y:399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2669,44 +2669,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:412 + // line internal/php7/php7.y:412 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:437 + // line internal/php7/php7.y:437 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2720,7 +2720,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:449 + // line internal/php7/php7.y:449 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2738,7 +2738,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:465 + // line internal/php7/php7.y:465 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2758,7 +2758,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:483 + // line internal/php7/php7.y:483 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2772,7 +2772,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:495 + // line internal/php7/php7.y:495 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2784,7 +2784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:505 + // line internal/php7/php7.y:505 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2797,7 +2797,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:516 + // line internal/php7/php7.y:516 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2810,7 +2810,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:527 + // line internal/php7/php7.y:527 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2824,7 +2824,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:539 + // line internal/php7/php7.y:539 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2838,7 +2838,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:554 + // line internal/php7/php7.y:554 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2850,7 +2850,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:564 + // line internal/php7/php7.y:564 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2862,7 +2862,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:577 + // line internal/php7/php7.y:577 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2886,7 +2886,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:599 + // line internal/php7/php7.y:599 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2909,7 +2909,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:623 + // line internal/php7/php7.y:623 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2931,7 +2931,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:643 + // line internal/php7/php7.y:643 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2954,19 +2954,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:671 + // line internal/php7/php7.y:671 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:678 + // line internal/php7/php7.y:678 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2974,13 +2974,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:684 + // line internal/php7/php7.y:684 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:691 + // line internal/php7/php7.y:691 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2988,13 +2988,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:697 + // line internal/php7/php7.y:697 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:704 + // line internal/php7/php7.y:704 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3002,19 +3002,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:710 + // line internal/php7/php7.y:710 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:721 + // line internal/php7/php7.y:721 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3024,7 +3024,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:732 + // line internal/php7/php7.y:732 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3040,7 +3040,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:746 + // line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3064,13 +3064,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:771 + // line internal/php7/php7.y:771 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:775 + // line internal/php7/php7.y:775 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3080,7 +3080,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:786 + // line internal/php7/php7.y:786 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3089,7 +3089,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:793 + // line internal/php7/php7.y:793 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3097,7 +3097,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:802 + // line internal/php7/php7.y:802 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3110,50 +3110,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:813 + // line internal/php7/php7.y:813 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:820 + // line internal/php7/php7.y:820 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:845 + // line internal/php7/php7.y:845 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3167,7 +3167,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:859 + // line internal/php7/php7.y:859 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3180,19 +3180,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:874 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:878 + // line internal/php7/php7.y:878 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3204,7 +3204,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:888 + // line internal/php7/php7.y:888 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3221,7 +3221,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:903 + // line internal/php7/php7.y:903 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3237,7 +3237,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:917 + // line internal/php7/php7.y:917 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3249,7 +3249,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:927 + // line internal/php7/php7.y:927 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3262,7 +3262,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:938 + // line internal/php7/php7.y:938 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3275,7 +3275,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:949 + // line internal/php7/php7.y:949 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3288,7 +3288,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:960 + // line internal/php7/php7.y:960 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3298,7 +3298,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:968 + // line internal/php7/php7.y:968 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3308,7 +3308,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:976 + // line internal/php7/php7.y:976 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3318,7 +3318,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:984 + // line internal/php7/php7.y:984 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3330,7 +3330,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:994 + // line internal/php7/php7.y:994 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3344,7 +3344,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1006 + // line internal/php7/php7.y:1006 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3357,7 +3357,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1017 + // line internal/php7/php7.y:1017 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3371,7 +3371,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1029 + // line internal/php7/php7.y:1029 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3387,7 +3387,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1043 + // line internal/php7/php7.y:1043 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3400,7 +3400,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1054 + // line internal/php7/php7.y:1054 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3411,7 +3411,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1063 + // line internal/php7/php7.y:1063 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3430,7 +3430,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1080 + // line internal/php7/php7.y:1080 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3443,7 +3443,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1091 + // line internal/php7/php7.y:1091 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3462,7 +3462,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1108 + // line internal/php7/php7.y:1108 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3480,13 +3480,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1126 + // line internal/php7/php7.y:1126 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1130 + // line internal/php7/php7.y:1130 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3517,7 +3517,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1161 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3525,7 +3525,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1167 + // line internal/php7/php7.y:1167 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3534,13 +3534,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1177 + // line internal/php7/php7.y:1177 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1181 + // line internal/php7/php7.y:1181 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3554,7 +3554,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1196 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3562,7 +3562,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1202 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3571,13 +3571,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1212 + // line internal/php7/php7.y:1212 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1219 + // line internal/php7/php7.y:1219 { name := &ast.Identifier{ Node: ast.Node{ @@ -3608,84 +3608,90 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1251 + // line internal/php7/php7.y:1251 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1255 + // line internal/php7/php7.y:1255 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1262 + // line internal/php7/php7.y:1262 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1266 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1273 + // line internal/php7/php7.y:1273 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, + Modifiers: yyDollar[1].list, + ClassTkn: yyDollar[2].token, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, + Extends: yyDollar[4].ClassExtends, + Implements: yyDollar[5].ClassImplements, + OpenCurlyBracket: yyDollar[7].token, + Stmts: yyDollar[8].list, + CloseCurlyBracket: yyDollar[9].token, } - yyVAL.node = &ast.StmtClass{ast.Node{}, name, yyDollar[1].list, nil, yyDollar[4].ClassExtends, yyDollar[5].ClassImplements, yyDollar[8].list} - - // save position - yyVAL.node.GetNode().Position = position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1292 + // line internal/php7/php7.y:1295 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, + ClassTkn: yyDollar[1].token, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + Extends: yyDollar[3].ClassExtends, + Implements: yyDollar[4].ClassImplements, + OpenCurlyBracket: yyDollar[6].token, + Stmts: yyDollar[7].list, + CloseCurlyBracket: yyDollar[8].token, } - yyVAL.node = &ast.StmtClass{ast.Node{}, name, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.SkippedTokens) } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1319 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1317 + // line internal/php7/php7.y:1323 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1324 + // line internal/php7/php7.y:1330 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3697,7 +3703,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1334 + // line internal/php7/php7.y:1340 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3709,28 +3715,28 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1347 + // line internal/php7/php7.y:1353 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, + TraitTkn: yyDollar[1].token, + TraitName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + OpenCurlyBracket: yyDollar[4].token, + Stmts: yyDollar[5].list, + CloseCurlyBracket: yyDollar[6].token, } - yyVAL.node = &ast.StmtTrait{ast.Node{}, name, yyDollar[5].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.SkippedTokens) } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1369 + // line internal/php7/php7.y:1375 { name := &ast.Identifier{ Node: ast.Node{ @@ -3751,13 +3757,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1391 + // line internal/php7/php7.y:1397 { yyVAL.ClassExtends = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1395 + // line internal/php7/php7.y:1401 { yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} @@ -3769,13 +3775,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1408 + // line internal/php7/php7.y:1414 { yyVAL.InterfaceExtends = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1412 + // line internal/php7/php7.y:1418 { yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} @@ -3787,13 +3793,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1425 + // line internal/php7/php7.y:1431 { yyVAL.ClassImplements = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1429 + // line internal/php7/php7.y:1435 { yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} @@ -3805,13 +3811,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1442 + // line internal/php7/php7.y:1448 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1452 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3829,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1462 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3837,7 +3843,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1474 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3850,7 +3856,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1488 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3861,7 +3867,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1491 + // line internal/php7/php7.y:1497 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3881,7 +3887,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1512 + // line internal/php7/php7.y:1518 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3892,7 +3898,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1521 + // line internal/php7/php7.y:1527 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3912,7 +3918,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1548 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3923,7 +3929,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1557 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3943,7 +3949,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1578 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3962,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1583 + // line internal/php7/php7.y:1589 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3976,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1595 + // line internal/php7/php7.y:1601 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3991,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1608 + // line internal/php7/php7.y:1614 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4007,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1625 + // line internal/php7/php7.y:1631 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1629 + // line internal/php7/php7.y:1635 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4027,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1647 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4040,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1655 + // line internal/php7/php7.y:1661 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1665 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1672 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4063,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1681 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4083,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1702 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4092,7 +4098,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1709 + // line internal/php7/php7.y:1715 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4117,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1729 + // line internal/php7/php7.y:1735 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1733 + // line internal/php7/php7.y:1739 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4133,7 +4139,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1750 + // line internal/php7/php7.y:1756 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4155,7 +4161,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1770 + // line internal/php7/php7.y:1776 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4179,7 +4185,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1795 + // line internal/php7/php7.y:1801 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4189,7 +4195,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1803 + // line internal/php7/php7.y:1809 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4213,25 +4219,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1834 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1832 + // line internal/php7/php7.y:1838 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1839 + // line internal/php7/php7.y:1845 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1843 + // line internal/php7/php7.y:1849 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4240,7 +4246,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1859 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4294,7 +4300,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1905 + // line internal/php7/php7.y:1911 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4351,25 +4357,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1963 + // line internal/php7/php7.y:1969 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1973 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1974 + // line internal/php7/php7.y:1980 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1984 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4381,7 +4387,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1991 + // line internal/php7/php7.y:1997 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4393,7 +4399,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2001 + // line internal/php7/php7.y:2007 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4405,19 +4411,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2017 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2018 + // line internal/php7/php7.y:2024 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2028 { yyVAL.node = yyDollar[2].node @@ -4426,7 +4432,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2038 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4438,7 +4444,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2048 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4450,7 +4456,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2061 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4458,7 +4464,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2061 + // line internal/php7/php7.y:2067 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4467,7 +4473,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2077 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4478,7 +4484,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2080 + // line internal/php7/php7.y:2086 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4490,7 +4496,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2099 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4499,7 +4505,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2100 + // line internal/php7/php7.y:2106 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4507,13 +4513,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2109 + // line internal/php7/php7.y:2115 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2116 + // line internal/php7/php7.y:2122 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4522,7 +4528,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2123 + // line internal/php7/php7.y:2129 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4530,7 +4536,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2132 + // line internal/php7/php7.y:2138 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4556,7 +4562,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2156 + // line internal/php7/php7.y:2162 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4583,19 +4589,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2184 + // line internal/php7/php7.y:2190 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2188 + // line internal/php7/php7.y:2194 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2195 + // line internal/php7/php7.y:2201 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4609,7 +4615,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2213 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4623,7 +4629,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2219 + // line internal/php7/php7.y:2225 { yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} @@ -4635,7 +4641,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2229 + // line internal/php7/php7.y:2235 { name := &ast.Identifier{ Node: ast.Node{ @@ -4670,13 +4676,13 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2271 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2269 + // line internal/php7/php7.y:2275 { switch n := lastNode(yyDollar[1].list).(type) { case *ast.NameName: @@ -4690,7 +4696,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2287 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4701,7 +4707,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2296 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4713,7 +4719,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2306 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4725,19 +4731,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2313 + // line internal/php7/php7.y:2319 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2317 + // line internal/php7/php7.y:2323 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2330 { yyVAL.node = yyDollar[1].node @@ -4747,7 +4753,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2332 + // line internal/php7/php7.y:2338 { yyVAL.node = yyDollar[1].node @@ -4757,7 +4763,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2343 + // line internal/php7/php7.y:2349 { yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} @@ -4770,7 +4776,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2357 + // line internal/php7/php7.y:2363 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4790,7 +4796,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2381 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4810,7 +4816,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2399 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4830,7 +4836,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2417 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4843,7 +4849,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2431 { name := &ast.Identifier{ Node: ast.Node{ @@ -4862,13 +4868,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2442 + // line internal/php7/php7.y:2448 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2449 + // line internal/php7/php7.y:2455 { target := &ast.Identifier{ Node: ast.Node{ @@ -4888,7 +4894,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2470 + // line internal/php7/php7.y:2476 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4899,7 +4905,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2479 + // line internal/php7/php7.y:2485 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4912,13 +4918,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2493 + // line internal/php7/php7.y:2499 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2497 + // line internal/php7/php7.y:2503 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4932,31 +4938,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2518 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2516 + // line internal/php7/php7.y:2522 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2523 + // line internal/php7/php7.y:2529 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2527 + // line internal/php7/php7.y:2533 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2534 + // line internal/php7/php7.y:2540 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4968,7 +4974,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2544 + // line internal/php7/php7.y:2550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4980,7 +4986,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2554 + // line internal/php7/php7.y:2560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4992,7 +4998,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2564 + // line internal/php7/php7.y:2570 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5004,7 +5010,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2574 + // line internal/php7/php7.y:2580 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5016,7 +5022,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2584 + // line internal/php7/php7.y:2590 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5028,7 +5034,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2597 + // line internal/php7/php7.y:2603 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5037,13 +5043,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2604 + // line internal/php7/php7.y:2610 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2617 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5064,7 +5070,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2630 + // line internal/php7/php7.y:2636 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5086,7 +5092,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2659 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5100,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2659 + // line internal/php7/php7.y:2665 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2666 + // line internal/php7/php7.y:2672 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5127,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2688 + // line internal/php7/php7.y:2694 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5148,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2710 + // line internal/php7/php7.y:2716 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5157,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2717 + // line internal/php7/php7.y:2723 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5165,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2726 + // line internal/php7/php7.y:2732 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2733 + // line internal/php7/php7.y:2739 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2737 + // line internal/php7/php7.y:2743 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2744 + // line internal/php7/php7.y:2750 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,31 +5192,30 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2751 + // line internal/php7/php7.y:2757 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2758 + // line internal/php7/php7.y:2764 { - if yyDollar[2].node != nil { - yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, yyDollar[2].node.(*ast.ArgumentList), yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} - } else { - yyVAL.node = &ast.StmtClass{ast.Node{}, nil, nil, nil, yyDollar[3].ClassExtends, yyDollar[4].ClassImplements, yyDollar[7].list} + yyVAL.node = &ast.StmtClass{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + }, + ClassTkn: yyDollar[1].token, + ArgumentList: yyDollar[2].node, + Extends: yyDollar[3].ClassExtends, + Implements: yyDollar[4].ClassImplements, + OpenCurlyBracket: yyDollar[6].token, + Stmts: yyDollar[7].list, + CloseCurlyBracket: yyDollar[8].token, } - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[8].token.SkippedTokens) } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2777 + // line internal/php7/php7.y:2782 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5225,7 +5230,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2790 + // line internal/php7/php7.y:2795 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5237,7 +5242,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2803 + // line internal/php7/php7.y:2808 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5254,7 +5259,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2818 + // line internal/php7/php7.y:2823 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5270,7 +5275,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2832 + // line internal/php7/php7.y:2837 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5283,7 +5288,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2843 + // line internal/php7/php7.y:2848 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5297,7 +5302,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2860 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5309,7 +5314,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2865 + // line internal/php7/php7.y:2870 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5322,7 +5327,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2876 + // line internal/php7/php7.y:2881 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5335,7 +5340,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2887 + // line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5348,7 +5353,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2898 + // line internal/php7/php7.y:2903 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5361,7 +5366,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2909 + // line internal/php7/php7.y:2914 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5374,7 +5379,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2920 + // line internal/php7/php7.y:2925 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5387,7 +5392,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2931 + // line internal/php7/php7.y:2936 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5400,7 +5405,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2942 + // line internal/php7/php7.y:2947 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5413,7 +5418,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2953 + // line internal/php7/php7.y:2958 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5426,7 +5431,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2964 + // line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5439,7 +5444,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2975 + // line internal/php7/php7.y:2980 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5452,7 +5457,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2986 + // line internal/php7/php7.y:2991 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5465,7 +5470,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2997 + // line internal/php7/php7.y:3002 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5478,7 +5483,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3008 + // line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5491,7 +5496,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3019 + // line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5503,7 +5508,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3029 + // line internal/php7/php7.y:3034 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5516,7 +5521,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3040 + // line internal/php7/php7.y:3045 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5528,7 +5533,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3055 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5541,7 +5546,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3061 + // line internal/php7/php7.y:3066 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5554,7 +5559,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3072 + // line internal/php7/php7.y:3077 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5567,7 +5572,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3088 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5580,7 +5585,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3094 + // line internal/php7/php7.y:3099 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5593,7 +5598,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3110 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5606,7 +5611,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3116 + // line internal/php7/php7.y:3121 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5619,7 +5624,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3132 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5632,7 +5637,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3138 + // line internal/php7/php7.y:3143 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5644,7 +5649,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3148 + // line internal/php7/php7.y:3153 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5657,7 +5662,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3159 + // line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5670,7 +5675,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3170 + // line internal/php7/php7.y:3175 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5683,7 +5688,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3181 + // line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5696,7 +5701,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3192 + // line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5709,7 +5714,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3203 + // line internal/php7/php7.y:3208 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5722,7 +5727,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3214 + // line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5735,7 +5740,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3225 + // line internal/php7/php7.y:3230 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5748,7 +5753,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3236 + // line internal/php7/php7.y:3241 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5760,7 +5765,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3246 + // line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5772,7 +5777,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3256 + // line internal/php7/php7.y:3261 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5784,7 +5789,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3266 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5796,7 +5801,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3276 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5809,7 +5814,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3287 + // line internal/php7/php7.y:3292 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5822,7 +5827,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3298 + // line internal/php7/php7.y:3303 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5835,7 +5840,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3309 + // line internal/php7/php7.y:3314 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5849,7 +5854,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3321 + // line internal/php7/php7.y:3326 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5862,7 +5867,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3332 + // line internal/php7/php7.y:3337 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5875,7 +5880,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3343 + // line internal/php7/php7.y:3348 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5888,7 +5893,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3354 + // line internal/php7/php7.y:3359 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5901,7 +5906,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3370 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5914,7 +5919,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3376 + // line internal/php7/php7.y:3381 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5927,7 +5932,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3392 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5944,13 +5949,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3402 + // line internal/php7/php7.y:3407 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3406 + // line internal/php7/php7.y:3411 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5964,7 +5969,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3418 + // line internal/php7/php7.y:3423 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5978,7 +5983,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3435 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5991,13 +5996,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3441 + // line internal/php7/php7.y:3446 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3445 + // line internal/php7/php7.y:3450 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6010,7 +6015,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3456 + // line internal/php7/php7.y:3461 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6023,7 +6028,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3467 + // line internal/php7/php7.y:3472 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6036,7 +6041,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3478 + // line internal/php7/php7.y:3483 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6049,7 +6054,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3489 + // line internal/php7/php7.y:3494 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6062,7 +6067,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3500 + // line internal/php7/php7.y:3505 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6075,7 +6080,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3511 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6088,7 +6093,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3522 + // line internal/php7/php7.y:3527 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6108,7 +6113,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3540 + // line internal/php7/php7.y:3545 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6120,13 +6125,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3550 + // line internal/php7/php7.y:3555 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3554 + // line internal/php7/php7.y:3559 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6138,7 +6143,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3564 + // line internal/php7/php7.y:3569 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6150,7 +6155,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3574 + // line internal/php7/php7.y:3579 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6162,7 +6167,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3584 + // line internal/php7/php7.y:3589 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6174,7 +6179,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3599 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6187,7 +6192,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3605 + // line internal/php7/php7.y:3610 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6199,13 +6204,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3615 + // line internal/php7/php7.y:3620 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3619 + // line internal/php7/php7.y:3624 { yyVAL.node = yyDollar[2].node @@ -6226,7 +6231,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3640 + // line internal/php7/php7.y:3645 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6257,7 +6262,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3667 + // line internal/php7/php7.y:3672 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6283,25 +6288,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3697 + // line internal/php7/php7.y:3702 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3701 + // line internal/php7/php7.y:3706 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3713 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3712 + // line internal/php7/php7.y:3717 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6315,7 +6320,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3727 + // line internal/php7/php7.y:3732 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6324,13 +6329,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3734 + // line internal/php7/php7.y:3739 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3741 + // line internal/php7/php7.y:3746 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6349,7 +6354,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3758 + // line internal/php7/php7.y:3763 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6371,7 +6376,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6383,7 +6388,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3791 + // line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6396,7 +6401,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3802 + // line internal/php7/php7.y:3807 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6409,7 +6414,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3813 + // line internal/php7/php7.y:3818 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6421,7 +6426,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3826 + // line internal/php7/php7.y:3831 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6433,31 +6438,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3836 + // line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3843 + // line internal/php7/php7.y:3848 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3852 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3854 + // line internal/php7/php7.y:3859 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3858 + // line internal/php7/php7.y:3863 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6474,13 +6479,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3876 + // line internal/php7/php7.y:3881 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3885 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6494,25 +6499,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3897 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3899 + // line internal/php7/php7.y:3904 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3903 + // line internal/php7/php7.y:3908 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3910 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6526,7 +6531,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6539,7 +6544,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3938 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6551,7 +6556,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3951 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6563,7 +6568,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3961 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6575,7 +6580,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3971 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6587,7 +6592,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3976 + // line internal/php7/php7.y:3981 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6599,7 +6604,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3986 + // line internal/php7/php7.y:3991 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6611,7 +6616,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3996 + // line internal/php7/php7.y:4001 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6623,7 +6628,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4006 + // line internal/php7/php7.y:4011 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6635,7 +6640,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4021 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6647,7 +6652,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4026 + // line internal/php7/php7.y:4031 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6659,7 +6664,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4041 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6671,7 +6676,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4046 + // line internal/php7/php7.y:4051 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6692,7 +6697,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4065 + // line internal/php7/php7.y:4070 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6704,7 +6709,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4080 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6717,7 +6722,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4091 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6730,19 +6735,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4102 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4106 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4113 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6754,7 +6759,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4118 + // line internal/php7/php7.y:4123 { target := &ast.Identifier{ Node: ast.Node{ @@ -6774,7 +6779,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4141 { target := &ast.Identifier{ Node: ast.Node{ @@ -6794,43 +6799,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4157 + // line internal/php7/php7.y:4162 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4161 + // line internal/php7/php7.y:4166 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4168 + // line internal/php7/php7.y:4173 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4177 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4179 + // line internal/php7/php7.y:4184 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4186 + // line internal/php7/php7.y:4191 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4190 + // line internal/php7/php7.y:4195 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6847,19 +6852,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4205 + // line internal/php7/php7.y:4210 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4212 + // line internal/php7/php7.y:4217 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4216 + // line internal/php7/php7.y:4221 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6876,19 +6881,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4231 + // line internal/php7/php7.y:4236 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4238 + // line internal/php7/php7.y:4243 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4247 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6901,7 +6906,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4253 + // line internal/php7/php7.y:4258 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6914,7 +6919,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4264 + // line internal/php7/php7.y:4269 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6927,7 +6932,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4280 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6940,25 +6945,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4286 + // line internal/php7/php7.y:4291 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4298 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4297 + // line internal/php7/php7.y:4302 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4301 + // line internal/php7/php7.y:4306 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6971,7 +6976,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4315 + // line internal/php7/php7.y:4320 { name := &ast.Identifier{ Node: ast.Node{ @@ -6990,7 +6995,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4332 + // line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7004,7 +7009,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4344 + // line internal/php7/php7.y:4349 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7016,7 +7021,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4357 + // line internal/php7/php7.y:4362 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7029,7 +7034,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4373 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7042,13 +7047,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4382 + // line internal/php7/php7.y:4387 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4386 + // line internal/php7/php7.y:4391 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7061,7 +7066,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4397 + // line internal/php7/php7.y:4402 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7074,7 +7079,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4408 + // line internal/php7/php7.y:4413 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7087,7 +7092,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4419 + // line internal/php7/php7.y:4424 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7100,7 +7105,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4430 + // line internal/php7/php7.y:4435 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7113,7 +7118,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4444 + // line internal/php7/php7.y:4449 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7125,7 +7130,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4454 + // line internal/php7/php7.y:4459 { yyVAL.node = yyDollar[2].node @@ -7135,13 +7140,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4467 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4469 + // line internal/php7/php7.y:4474 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7153,7 +7158,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4479 + // line internal/php7/php7.y:4484 { yyVAL.node = yyDollar[2].node @@ -7163,31 +7168,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4487 + // line internal/php7/php7.y:4492 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4494 + // line internal/php7/php7.y:4499 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4501 + // line internal/php7/php7.y:4506 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4505 + // line internal/php7/php7.y:4510 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4512 + // line internal/php7/php7.y:4517 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7200,7 +7205,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4523 + // line internal/php7/php7.y:4528 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7210,7 +7215,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4534 + // line internal/php7/php7.y:4539 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7223,7 +7228,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4545 + // line internal/php7/php7.y:4550 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7235,7 +7240,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4555 + // line internal/php7/php7.y:4560 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7251,7 +7256,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4569 + // line internal/php7/php7.y:4574 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7265,7 +7270,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4581 + // line internal/php7/php7.y:4586 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7277,7 +7282,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4591 + // line internal/php7/php7.y:4596 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7296,7 +7301,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4608 + // line internal/php7/php7.y:4613 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7313,13 +7318,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4626 + // line internal/php7/php7.y:4631 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4630 + // line internal/php7/php7.y:4635 { yyVAL.list = append( yyDollar[1].list, @@ -7334,13 +7339,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4643 + // line internal/php7/php7.y:4648 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4647 + // line internal/php7/php7.y:4652 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7355,7 +7360,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4668 { name := &ast.Identifier{ Node: ast.Node{ @@ -7374,7 +7379,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4680 + // line internal/php7/php7.y:4685 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7396,7 +7401,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4700 + // line internal/php7/php7.y:4705 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7424,7 +7429,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4726 + // line internal/php7/php7.y:4731 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7439,7 +7444,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4739 + // line internal/php7/php7.y:4744 { name := &ast.Identifier{ Node: ast.Node{ @@ -7461,7 +7466,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4759 + // line internal/php7/php7.y:4764 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7485,7 +7490,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4781 + // line internal/php7/php7.y:4786 { yyVAL.node = yyDollar[2].node @@ -7495,7 +7500,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4792 + // line internal/php7/php7.y:4797 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7507,7 +7512,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4802 + // line internal/php7/php7.y:4807 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7530,7 +7535,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4823 + // line internal/php7/php7.y:4828 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7558,7 +7563,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4849 + // line internal/php7/php7.y:4854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7577,7 +7582,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4869 + // line internal/php7/php7.y:4874 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7595,7 +7600,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4885 + // line internal/php7/php7.y:4890 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7617,7 +7622,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4905 + // line internal/php7/php7.y:4910 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7629,7 +7634,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4915 + // line internal/php7/php7.y:4920 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7641,7 +7646,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4925 + // line internal/php7/php7.y:4930 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7663,7 +7668,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4945 + // line internal/php7/php7.y:4950 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7675,7 +7680,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4955 + // line internal/php7/php7.y:4960 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7687,13 +7692,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4968 + // line internal/php7/php7.y:4973 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4972 + // line internal/php7/php7.y:4977 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7702,7 +7707,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4982 + // line internal/php7/php7.y:4987 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index b98517d..5577a10 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1271,40 +1271,46 @@ is_variadic: class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewOptionalListTokensPosition($1, $2, $9), }, - IdentifierTkn: $3, - Value: $3.Value, + Modifiers: $1, + ClassTkn: $2, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, + Extends: $4, + Implements: $5, + OpenCurlyBracket: $7, + Stmts: $8, + CloseCurlyBracket: $9, } - $$ = &ast.StmtClass{ast.Node{}, name, $1, nil, $4, $5, $8} - - // save position - $$.GetNode().Position = position.NewOptionalListTokensPosition($1, $2, $9) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtClass{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $8), }, - IdentifierTkn: $2, - Value: $2.Value, + ClassTkn: $1, + ClassName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + Extends: $3, + Implements: $4, + OpenCurlyBracket: $6, + Stmts: $7, + CloseCurlyBracket: $8, } - $$ = &ast.StmtClass{ast.Node{}, name, nil, nil, $3, $4, $7} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $8) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.SkippedTokens) } ; @@ -1345,22 +1351,22 @@ class_modifier: trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtTrait{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $6), }, - IdentifierTkn: $2, - Value: $2.Value, + TraitTkn: $1, + TraitName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + OpenCurlyBracket: $4, + Stmts: $5, + CloseCurlyBracket: $6, } - $$ = &ast.StmtTrait{ast.Node{}, name, $5} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.SkippedTokens) } ; @@ -2756,19 +2762,18 @@ non_empty_for_exprs: anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - if $2 != nil { - $$ = &ast.StmtClass{ast.Node{}, nil, nil, $2.(*ast.ArgumentList), $3, $4, $7} - } else { - $$ = &ast.StmtClass{ast.Node{}, nil, nil, nil, $3, $4, $7} + $$ = &ast.StmtClass{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $8), + }, + ClassTkn: $1, + ArgumentList: $2, + Extends: $3, + Implements: $4, + OpenCurlyBracket: $6, + Stmts: $7, + CloseCurlyBracket: $8, } - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $8) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $8.SkippedTokens) } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index d395f57..cb820b0 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -238,12 +238,15 @@ func (n *StmtCatch) Accept(v NodeVisitor) { // StmtClass node type StmtClass struct { Node - ClassName Vertex - Modifiers []Vertex - ArgumentList *ArgumentList - Extends *StmtClassExtends - Implements *StmtClassImplements - Stmts []Vertex + Modifiers []Vertex + ClassTkn *token.Token + ClassName Vertex + ArgumentList Vertex + Extends *StmtClassExtends + Implements *StmtClassImplements + OpenCurlyBracket *token.Token + Stmts []Vertex + CloseCurlyBracket *token.Token } func (n *StmtClass) Accept(v NodeVisitor) { @@ -741,8 +744,13 @@ func (n *StmtThrow) Accept(v NodeVisitor) { // StmtTrait node type StmtTrait struct { Node - TraitName Vertex - Stmts []Vertex + TraitTkn *token.Token + TraitName Vertex + Extends *StmtClassExtends + Implements *StmtClassImplements + OpenCurlyBracket *token.Token + Stmts []Vertex + CloseCurlyBracket *token.Token } func (n *StmtTrait) Accept(v NodeVisitor) { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index b1e411f..943cc10 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1476,7 +1476,7 @@ func (p *PrettyPrinter) printStmtClass(n ast.Vertex) { if nn.ArgumentList != nil { io.WriteString(p.w, "(") - p.joinPrint(", ", nn.ArgumentList.Arguments) + p.joinPrint(", ", nn.ArgumentList.(*ast.ArgumentList).Arguments) io.WriteString(p.w, ")") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4925c35..302773a 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2097,7 +2097,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) { if nn.ArgumentList != nil { p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) + p.joinPrint(",", nn.ArgumentList.(*ast.ArgumentList).Arguments) p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") } From 4c54c56af50e0656d1a273b28dc7f5f7a62faa83 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 22 Nov 2020 13:02:36 +0200 Subject: [PATCH 077/140] [refactoring] update ast structure of "ClassExtends", "ClassImplements", "InterfaceExtends", "StmtTraitUse" and "StmtTraitUsePrecedence" nodes --- internal/php5/php5.go | 1360 ++++++++++---------- internal/php5/php5.y | 131 +- internal/php7/php7.go | 1665 ++++++++++++------------- internal/php7/php7.y | 104 +- pkg/ast/node.go | 27 +- pkg/ast/traverser/dfs.go | 8 +- pkg/ast/visitor/namespace_resolver.go | 8 +- pkg/printer/pretty_printer.go | 8 +- pkg/printer/printer.go | 8 +- 9 files changed, 1665 insertions(+), 1654 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index ece4fad..d65f45d 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -24,10 +24,7 @@ type yySymType struct { list []ast.Vertex simpleIndirectReference simpleIndirectReference - ClassExtends *ast.StmtClassExtends - ClassImplements *ast.StmtClassImplements - InterfaceExtends *ast.StmtInterfaceExtends - ClosureUse *ast.ExprClosureUse + ClosureUse *ast.ExprClosureUse } const T_INCLUDE = 57346 @@ -347,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6436 +// line internal/php5/php5.y:6439 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -700,15 +697,15 @@ var yyAct = [...]int{ 830, 521, 748, 754, 864, 445, 572, 971, 609, 589, 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, 521, 259, 572, 591, 685, 994, 283, 572, 996, 285, - 260, 261, 255, 840, 998, 980, 995, 260, 261, 965, - 964, 903, 896, 39, 572, 1012, 531, 839, 836, 1013, - 566, 1006, 531, 531, 993, 572, 1016, 518, 716, 1005, + 260, 261, 255, 840, 998, 980, 965, 260, 261, 964, + 896, 839, 836, 39, 572, 1012, 531, 566, 1006, 1013, + 1005, 725, 531, 531, 993, 572, 1016, 518, 716, 341, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 725, 341, 259, 446, 231, 31, 231, 256, 654, - 531, 698, 296, 656, 655, 39, 260, 261, 449, 538, - 929, 39, 290, 657, 659, 660, 676, 677, 666, 460, - 147, 151, 155, 318, 314, 127, 165, 403, 478, 575, - 401, 335, 945, 1009, 198, 483, 343, 394, 389, 206, + 679, 698, 538, 259, 446, 231, 31, 231, 256, 654, + 531, 929, 296, 656, 655, 39, 260, 261, 449, 290, + 460, 39, 318, 657, 659, 660, 676, 677, 666, 314, + 147, 151, 155, 127, 403, 575, 165, 903, 478, 401, + 335, 945, 995, 1009, 198, 483, 343, 394, 389, 206, 939, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, @@ -1617,39 +1614,39 @@ var yyPgo = [...]int{ 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, - 1075, 1073, 12, 1072, 1071, 7, 21, 1070, 1069, 1067, - 14, 39, 0, 1065, 1064, 1063, 391, 619, 1059, 1052, - 41, 4, 1050, 1049, 1041, 1032, 30, 52, 1031, 1019, - 1011, 3, 1010, 15, 1008, 1007, 1002, 25, 1001, 1000, + 1075, 1073, 1072, 12, 1071, 1070, 7, 21, 1069, 25, + 1067, 1065, 1064, 14, 39, 0, 1063, 1059, 1052, 391, + 619, 1050, 1049, 41, 4, 1041, 1032, 1031, 1019, 30, + 52, 1011, 1010, 1008, 3, 1007, 15, 1002, 1001, 1000, 999, 996, 993, 992, 17, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, 960, 923, } var yyR1 = [...]int{ - 0, 151, 101, 101, 102, 102, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 103, 103, - 6, 6, 6, 6, 104, 104, 7, 7, 7, 7, - 105, 105, 8, 8, 8, 8, 55, 55, 106, 106, + 0, 151, 104, 104, 105, 105, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 106, 106, + 6, 6, 6, 6, 107, 107, 7, 7, 7, 7, + 108, 108, 8, 8, 8, 8, 55, 55, 109, 109, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 118, 118, 60, 60, 119, - 119, 120, 120, 61, 87, 87, 58, 53, 54, 149, + 28, 28, 28, 28, 28, 121, 121, 60, 60, 122, + 122, 123, 123, 61, 87, 87, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 97, 97, 2, 99, 99, 98, 98, 127, 127, 96, - 96, 95, 95, 95, 93, 93, 92, 92, 59, 59, - 88, 88, 89, 89, 89, 89, 117, 117, 117, 4, - 4, 94, 94, 113, 113, 114, 114, 56, 56, 57, - 57, 121, 121, 122, 122, 65, 65, 64, 64, 64, + 98, 98, 2, 102, 102, 101, 101, 99, 99, 97, + 97, 96, 96, 96, 94, 94, 93, 93, 59, 59, + 88, 88, 89, 89, 89, 89, 120, 120, 120, 4, + 4, 95, 95, 116, 116, 117, 117, 56, 56, 57, + 57, 124, 124, 125, 125, 65, 65, 64, 64, 64, 64, 84, 84, 84, 90, 90, 70, 70, 70, 70, - 82, 82, 29, 29, 29, 81, 81, 81, 81, 123, - 123, 67, 67, 67, 67, 69, 128, 128, 86, 86, - 129, 129, 130, 130, 71, 71, 72, 131, 131, 75, - 75, 74, 73, 73, 76, 76, 91, 91, 124, 124, - 125, 125, 132, 132, 77, 77, 77, 77, 77, 77, - 126, 126, 126, 126, 68, 68, 85, 85, 116, 116, - 115, 115, 138, 138, 136, 136, 137, 137, 137, 139, + 82, 82, 29, 29, 29, 81, 81, 81, 81, 126, + 126, 67, 67, 67, 67, 69, 100, 100, 86, 86, + 130, 130, 131, 131, 71, 71, 72, 92, 92, 75, + 75, 74, 73, 73, 76, 76, 91, 91, 127, 127, + 128, 128, 132, 132, 77, 77, 77, 77, 77, 77, + 129, 129, 129, 129, 68, 68, 85, 85, 119, 119, + 118, 118, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1658,8 +1655,8 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 100, 100, 112, - 112, 112, 112, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 103, 103, 115, + 115, 115, 115, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1674,11 +1671,11 @@ var yyR1 = [...]int{ 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 111, 111, 40, 40, - 40, 110, 110, 109, 109, 109, 109, 109, 109, 109, - 109, 107, 107, 107, 107, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 114, 114, 40, 40, + 40, 113, 113, 112, 112, 112, 112, 112, 112, 112, + 112, 110, 110, 110, 110, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 108, 108, 38, 38, 32, 32, 33, + 39, 39, 39, 111, 111, 38, 38, 32, 32, 33, 34, } @@ -1739,7 +1736,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -101, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -104, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1749,10 +1746,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -102, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -105, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -102, 144, 83, 10, -103, 37, 39, - -6, -102, 83, 146, 160, 147, 10, -106, -50, 148, + 159, 12, 148, -105, 144, 83, 10, -106, 37, 39, + -6, -105, 83, 146, 160, 147, 10, -109, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1761,87 +1758,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -102, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -105, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -133, 17, -107, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -102, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -110, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -105, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -107, 17, 17, 76, -107, 150, 148, -110, - -109, -16, 153, 150, 150, 83, -84, 148, -102, 79, + -16, 150, -110, 17, 17, 76, -110, 150, 148, -113, + -112, -16, 153, 150, 150, 83, -84, 148, -105, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -101, -102, 146, 160, -104, -7, -102, 83, -105, -8, - -102, 83, 29, -102, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -94, -27, 147, 21, -149, - -116, -115, -16, -89, 144, 147, 146, 146, 146, 146, + -104, -105, 146, 160, -107, -7, -105, 83, -108, -8, + -105, 83, 29, -105, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -95, -27, 147, 21, -149, + -119, -118, -16, -89, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -87, - -58, -21, -21, -17, -88, 10, -106, 146, 146, 10, - 148, -97, 56, -99, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -88, 10, -109, 146, 146, 10, + 148, -98, 56, -102, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -111, -40, -21, 60, 83, -102, 79, 79, 149, 149, + -114, -40, -21, 60, 83, -105, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -102, 58, -12, 79, - -108, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -110, 151, -3, 160, 59, -19, -21, -15, + 10, 144, -83, -84, 79, 83, -105, 58, -12, 79, + -111, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -113, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -90, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -101, 145, -84, -6, 146, 160, 29, -102, - 146, 160, 29, -102, 10, 29, 162, -30, -79, -9, - -33, -102, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -113, -106, - -106, -50, 146, 160, -117, 146, -117, 146, -29, -16, + -16, 146, -104, 145, -84, -6, 146, 160, 29, -105, + 146, 160, 29, -105, 10, 29, 162, -30, -79, -9, + -33, -105, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -116, -109, + -109, -50, 146, 160, -120, 146, -120, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, - 149, 160, 162, 145, 148, -121, -122, -65, -64, 61, - 62, -47, -102, 80, 83, -98, 57, -47, 144, -127, - -47, -17, -21, -21, 92, 149, 160, 148, -102, -139, + 149, 160, 162, 145, 148, -124, -125, -65, -64, 61, + 62, -47, -105, 80, 83, -101, 57, -47, 144, -99, + -47, -17, -21, -21, 92, 149, 160, 148, -105, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -102, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -105, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -102, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -114, 22, - 146, -116, -16, 145, 32, 33, -117, 31, -117, 145, - 162, -121, -16, 146, -58, -95, -21, 153, 60, -95, - -59, -27, 147, 10, -30, -118, 42, -121, 149, 160, - -149, 83, -102, 144, -127, -123, 160, -45, 162, -40, - -111, 150, -138, -140, -15, -143, 151, -16, -147, 150, + 152, 83, -105, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -117, 22, + 146, -119, -16, 145, 32, 33, -120, 31, -120, 145, + 162, -124, -16, 146, -58, -96, -21, 153, 60, -96, + -59, -27, 147, 10, -30, -121, 42, -124, 149, 160, + -149, 83, -105, 144, -99, -126, 160, -45, 162, -40, + -114, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -102, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -105, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -96, 59, -21, 148, - -96, -106, 162, -60, 43, 148, 149, -100, 45, -65, - -150, 84, -102, -123, 145, -67, -124, -68, -69, -125, + 146, 145, 146, 31, -30, 149, -97, 59, -21, 148, + -97, -109, 162, -60, 43, 148, 149, -103, 45, -65, + -150, 84, -105, -126, 145, -67, -127, -68, -69, -128, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -116, -4, - -106, 146, -100, 149, -95, -111, 149, 28, -30, 144, - -47, 144, 144, 148, 12, 145, -126, 12, 146, 160, - -1, -77, 10, -128, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -106, 149, -106, 144, -92, - -27, 147, 149, -92, 146, -106, 12, -106, -106, -112, + 147, 149, -79, -79, -27, 96, -50, 147, -119, -4, + -109, 146, -103, 149, -96, -114, 149, 28, -30, 144, + -47, 144, 144, 148, 12, 145, -129, 12, 146, 160, + -1, -77, 10, -100, -47, 151, 145, 151, 151, -143, + -19, -79, 59, 146, 147, -109, 149, -109, 144, -93, + -27, 147, 149, -93, 146, -109, 12, -109, -109, -115, 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, - 160, 146, 144, -79, -106, -93, -27, 147, -106, -106, + 160, 146, 144, -79, -109, -94, -27, 147, -109, -109, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, - 162, 10, -30, -47, -129, -130, -71, -72, -73, -74, - -75, -47, 10, -106, 145, 26, 144, 12, 153, 162, + 162, 10, -30, -47, -130, -131, -71, -72, -73, -74, + -75, -47, 10, -109, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -106, 12, -30, -121, -131, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -119, -120, -61, 42, -91, - 146, 144, -47, -61, 148, -106, -47, 145, 12, 149, - 144, -106, 145, + 146, -109, 12, -30, -124, -92, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -122, -123, -61, 42, -91, + 146, 144, -47, -61, 148, -109, -47, 145, 12, 149, + 144, -109, 145, } var yyDef = [...]int{ @@ -2326,7 +2323,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:275 +// line internal/php5/php5.y:271 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2335,7 +2332,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:285 +// line internal/php5/php5.y:281 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2348,13 +2345,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:296 +// line internal/php5/php5.y:292 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:303 +// line internal/php5/php5.y:299 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2368,7 +2365,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:315 +// line internal/php5/php5.y:311 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2381,32 +2378,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:329 +// line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:346 +// line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2420,7 +2417,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:358 +// line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2438,7 +2435,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:374 +// line internal/php5/php5.y:370 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2458,7 +2455,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:392 +// line internal/php5/php5.y:388 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2472,7 +2469,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:404 +// line internal/php5/php5.y:400 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2485,7 +2482,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:415 +// line internal/php5/php5.y:411 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2505,7 +2502,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:433 +// line internal/php5/php5.y:429 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2525,7 +2522,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:451 +// line internal/php5/php5.y:447 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2533,7 +2530,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:460 +// line internal/php5/php5.y:456 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2541,13 +2538,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:466 +// line internal/php5/php5.y:462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:473 +// line internal/php5/php5.y:469 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2563,7 +2560,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:487 +// line internal/php5/php5.y:483 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2587,7 +2584,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:509 +// line internal/php5/php5.y:505 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2604,7 +2601,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:524 +// line internal/php5/php5.y:520 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2629,7 +2626,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:550 +// line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2637,13 +2634,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:556 +// line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:563 +// line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2659,7 +2656,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:577 +// line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2683,7 +2680,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:599 +// line internal/php5/php5.y:595 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2700,7 +2697,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:614 +// line internal/php5/php5.y:610 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2725,7 +2722,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:640 +// line internal/php5/php5.y:636 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2733,13 +2730,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:646 +// line internal/php5/php5.y:642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:653 +// line internal/php5/php5.y:649 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2755,7 +2752,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:667 +// line internal/php5/php5.y:663 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2779,7 +2776,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:689 +// line internal/php5/php5.y:685 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2796,7 +2793,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:704 +// line internal/php5/php5.y:700 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2821,7 +2818,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:730 +// line internal/php5/php5.y:726 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2847,7 +2844,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:754 +// line internal/php5/php5.y:750 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2876,7 +2873,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:784 +// line internal/php5/php5.y:780 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2889,38 +2886,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:795 +// line internal/php5/php5.y:791 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:803 +// line internal/php5/php5.y:799 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:808 +// line internal/php5/php5.y:804 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:812 +// line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:816 +// line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:820 +// line internal/php5/php5.y:816 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2934,13 +2931,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:836 +// line internal/php5/php5.y:832 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:840 +// line internal/php5/php5.y:836 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2958,7 +2955,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:859 +// line internal/php5/php5.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2971,7 +2968,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:870 +// line internal/php5/php5.y:866 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2995,7 +2992,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:892 +// line internal/php5/php5.y:888 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3021,7 +3018,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:916 +// line internal/php5/php5.y:912 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3033,7 +3030,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:926 +// line internal/php5/php5.y:922 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3050,7 +3047,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:941 +// line internal/php5/php5.y:937 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3066,7 +3063,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:955 +// line internal/php5/php5.y:951 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3078,7 +3075,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:965 +// line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3090,7 +3087,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:975 +// line internal/php5/php5.y:971 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3103,7 +3100,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:986 +// line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3115,7 +3112,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:996 +// line internal/php5/php5.y:992 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3128,7 +3125,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1007 +// line internal/php5/php5.y:1003 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3140,7 +3137,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1017 +// line internal/php5/php5.y:1013 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3153,7 +3150,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1028 +// line internal/php5/php5.y:1024 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3166,7 +3163,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1039 +// line internal/php5/php5.y:1035 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3180,7 +3177,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1051 +// line internal/php5/php5.y:1047 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3191,7 +3188,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1060 +// line internal/php5/php5.y:1056 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3202,7 +3199,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1069 +// line internal/php5/php5.y:1065 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3212,7 +3209,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1077 +// line internal/php5/php5.y:1073 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3224,7 +3221,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1087 +// line internal/php5/php5.y:1083 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3238,7 +3235,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1099 +// line internal/php5/php5.y:1095 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3250,7 +3247,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1109 +// line internal/php5/php5.y:1105 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3270,7 +3267,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1127 +// line internal/php5/php5.y:1123 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3290,7 +3287,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1145 +// line internal/php5/php5.y:1141 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3303,7 +3300,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1156 +// line internal/php5/php5.y:1152 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3314,7 +3311,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1165 +// line internal/php5/php5.y:1161 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3333,7 +3330,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1182 +// line internal/php5/php5.y:1178 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3346,7 +3343,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1193 +// line internal/php5/php5.y:1189 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3365,13 +3362,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1213 +// line internal/php5/php5.y:1209 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1217 +// line internal/php5/php5.y:1213 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3404,13 +3401,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1251 +// line internal/php5/php5.y:1247 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1255 +// line internal/php5/php5.y:1251 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3424,31 +3421,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1270 +// line internal/php5/php5.y:1266 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1274 +// line internal/php5/php5.y:1270 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1281 +// line internal/php5/php5.y:1277 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1285 +// line internal/php5/php5.y:1281 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1292 +// line internal/php5/php5.y:1288 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3480,7 +3477,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1325 +// line internal/php5/php5.y:1321 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3488,7 +3485,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1327 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3497,49 +3494,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1341 +// line internal/php5/php5.y:1337 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1348 +// line internal/php5/php5.y:1344 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1355 +// line internal/php5/php5.y:1351 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1362 +// line internal/php5/php5.y:1358 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1366 +// line internal/php5/php5.y:1362 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1373 +// line internal/php5/php5.y:1369 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1377 +// line internal/php5/php5.y:1373 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1384 +// line internal/php5/php5.y:1380 { name := &ast.Identifier{ Node: ast.Node{ @@ -3564,7 +3561,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1410 +// line internal/php5/php5.y:1406 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3576,8 +3573,8 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } - n.Extends = yyDollar[3].ClassExtends - n.Implements = yyDollar[4].ClassImplements + n.Extends = yyDollar[3].node + n.Implements = yyDollar[4].node n.OpenCurlyBracket = yyDollar[5].token n.Stmts = yyDollar[6].list n.CloseCurlyBracket = yyDollar[7].token @@ -3590,8 +3587,8 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } - n.Extends = yyDollar[3].ClassExtends - n.Implements = yyDollar[4].ClassImplements + n.Extends = yyDollar[3].node + n.Implements = yyDollar[4].node n.OpenCurlyBracket = yyDollar[5].token n.Stmts = yyDollar[6].list n.CloseCurlyBracket = yyDollar[7].token @@ -3601,7 +3598,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1445 +// line internal/php5/php5.y:1441 { name := &ast.Identifier{ Node: ast.Node{ @@ -3610,7 +3607,7 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } - yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[5].list} + yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].node, yyDollar[5].list} // save position yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) @@ -3622,7 +3619,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1468 +// line internal/php5/php5.y:1464 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3633,7 +3630,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1477 +// line internal/php5/php5.y:1473 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3653,7 +3650,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1495 +// line internal/php5/php5.y:1491 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3664,7 +3661,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1504 +// line internal/php5/php5.y:1500 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3684,93 +3681,92 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1525 +// line internal/php5/php5.y:1521 { - yyVAL.ClassExtends = nil + yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1529 +// line internal/php5/php5.y:1525 { - yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtClassExtends{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + ExtendTkn: yyDollar[1].token, + ClassName: yyDollar[2].node, + } } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1542 +// line internal/php5/php5.y:1538 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1549 +// line internal/php5/php5.y:1545 { - yyVAL.InterfaceExtends = nil + yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1553 +// line internal/php5/php5.y:1549 { - yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + }, + ExtendsTkn: yyDollar[1].token, + InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + } } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1566 +// line internal/php5/php5.y:1563 { - yyVAL.ClassImplements = nil + yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1570 +// line internal/php5/php5.y:1567 { - yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtClassImplements{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + }, + ImplementsTkn: yyDollar[1].token, + InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + } } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1583 +// line internal/php5/php5.y:1581 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1587 +// line internal/php5/php5.y:1587 { - switch n := lastNode(yyDollar[1].list).(type) { - case *ast.NameName: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameFullyQualified: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameRelative: - n.ListSeparatorTkn = yyDollar[2].token - } - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + + yyVAL.node = yyDollar[1].node } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1599 +// line internal/php5/php5.y:1597 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1603 +// line internal/php5/php5.y:1601 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3779,13 +3775,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1613 +// line internal/php5/php5.y:1611 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1617 +// line internal/php5/php5.y:1615 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3797,7 +3793,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1627 +// line internal/php5/php5.y:1625 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3811,7 +3807,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1642 +// line internal/php5/php5.y:1640 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3822,7 +3818,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1651 +// line internal/php5/php5.y:1649 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3842,7 +3838,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1672 +// line internal/php5/php5.y:1670 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3853,7 +3849,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1681 +// line internal/php5/php5.y:1679 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3873,7 +3869,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1703 +// line internal/php5/php5.y:1701 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3884,7 +3880,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1712 +// line internal/php5/php5.y:1710 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3904,7 +3900,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1734 +// line internal/php5/php5.y:1732 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3929,7 +3925,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1757 +// line internal/php5/php5.y:1755 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3956,7 +3952,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1786 +// line internal/php5/php5.y:1784 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3969,7 +3965,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1797 +// line internal/php5/php5.y:1795 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3983,7 +3979,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1809 +// line internal/php5/php5.y:1807 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3998,7 +3994,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1822 +// line internal/php5/php5.y:1820 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4014,13 +4010,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1840 +// line internal/php5/php5.y:1838 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1844 +// line internal/php5/php5.y:1842 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4034,7 +4030,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1856 +// line internal/php5/php5.y:1854 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4047,19 +4043,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1871 +// line internal/php5/php5.y:1869 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1875 +// line internal/php5/php5.y:1873 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1883 +// line internal/php5/php5.y:1881 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4070,7 +4066,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1892 +// line internal/php5/php5.y:1890 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4090,13 +4086,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1915 +// line internal/php5/php5.y:1913 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1919 +// line internal/php5/php5.y:1917 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4107,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1936 +// line internal/php5/php5.y:1934 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1940 +// line internal/php5/php5.y:1938 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4139,13 +4135,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1964 +// line internal/php5/php5.y:1962 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1968 +// line internal/php5/php5.y:1966 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4157,13 +4153,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1982 +// line internal/php5/php5.y:1980 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1986 +// line internal/php5/php5.y:1984 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4182,25 +4178,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2007 +// line internal/php5/php5.y:2005 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2011 +// line internal/php5/php5.y:2009 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2018 +// line internal/php5/php5.y:2016 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2022 +// line internal/php5/php5.y:2020 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4209,7 +4205,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2032 +// line internal/php5/php5.y:2030 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4263,7 +4259,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2084 +// line internal/php5/php5.y:2082 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4320,13 +4316,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2143 +// line internal/php5/php5.y:2141 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2147 +// line internal/php5/php5.y:2145 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4338,7 +4334,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2157 +// line internal/php5/php5.y:2155 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4350,13 +4346,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2167 +// line internal/php5/php5.y:2165 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2175 +// line internal/php5/php5.y:2173 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4368,7 +4364,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2185 +// line internal/php5/php5.y:2183 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4379,7 +4375,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2194 +// line internal/php5/php5.y:2192 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4399,7 +4395,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2216 +// line internal/php5/php5.y:2214 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4407,7 +4403,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2222 +// line internal/php5/php5.y:2220 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4416,7 +4412,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2232 +// line internal/php5/php5.y:2230 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4427,7 +4423,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2241 +// line internal/php5/php5.y:2239 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4438,7 +4434,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2250 +// line internal/php5/php5.y:2248 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4450,7 +4446,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2260 +// line internal/php5/php5.y:2258 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4462,7 +4458,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2273 +// line internal/php5/php5.y:2271 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4471,7 +4467,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2280 +// line internal/php5/php5.y:2278 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4479,7 +4475,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2290 +// line internal/php5/php5.y:2288 { name := &ast.Identifier{ Node: ast.Node{ @@ -4498,7 +4494,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2307 +// line internal/php5/php5.y:2305 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4510,7 +4506,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2317 +// line internal/php5/php5.y:2315 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4524,7 +4520,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2333 +// line internal/php5/php5.y:2331 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4553,7 +4549,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2360 +// line internal/php5/php5.y:2358 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4584,7 +4580,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2389 +// line internal/php5/php5.y:2387 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4614,7 +4610,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2417 +// line internal/php5/php5.y:2415 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4646,19 +4642,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2451 +// line internal/php5/php5.y:2449 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2455 +// line internal/php5/php5.y:2453 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2463 +// line internal/php5/php5.y:2461 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4672,7 +4668,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2475 +// line internal/php5/php5.y:2473 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4680,13 +4676,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2481 +// line internal/php5/php5.y:2479 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2485 +// line internal/php5/php5.y:2483 { name := &ast.Identifier{ Node: ast.Node{ @@ -4722,39 +4718,38 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2522 +// line internal/php5/php5.y:2520 { - yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + UseTkn: yyDollar[1].token, + Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Adaptations: yyDollar[3].node, + } } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2535 +// line internal/php5/php5.y:2535 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2541 { - switch n := lastNode(yyDollar[1].list).(type) { - case *ast.NameName: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameFullyQualified: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameRelative: - n.ListSeparatorTkn = yyDollar[2].token - } - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + + yyVAL.node = yyDollar[1].node } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2551 +// line internal/php5/php5.y:2551 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4765,7 +4760,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2560 +// line internal/php5/php5.y:2560 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4777,31 +4772,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2573 +// line internal/php5/php5.y:2573 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2577 +// line internal/php5/php5.y:2577 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2584 +// line internal/php5/php5.y:2584 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2588 +// line internal/php5/php5.y:2588 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2595 +// line internal/php5/php5.y:2595 { yyVAL.node = yyDollar[1].node @@ -4811,7 +4806,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2603 +// line internal/php5/php5.y:2603 { yyVAL.node = yyDollar[1].node @@ -4821,35 +4816,38 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2614 +// line internal/php5/php5.y:2614 { - yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUsePrecedence{ + Node: ast.Node{ + Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + }, + Ref: yyDollar[1].node, + InsteadofTkn: yyDollar[2].token, + Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + } } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2628 +// line internal/php5/php5.y:2629 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2632 +// line internal/php5/php5.y:2635 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2642 +// line internal/php5/php5.y:2645 { name := &ast.Identifier{ Node: ast.Node{ @@ -4868,13 +4866,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2662 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2666 +// line internal/php5/php5.y:2669 { target := &ast.Identifier{ Node: ast.Node{ @@ -4894,7 +4892,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2687 +// line internal/php5/php5.y:2690 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4914,7 +4912,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2705 +// line internal/php5/php5.y:2708 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4927,19 +4925,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2719 +// line internal/php5/php5.y:2722 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2723 +// line internal/php5/php5.y:2726 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2730 +// line internal/php5/php5.y:2733 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4950,7 +4948,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2739 +// line internal/php5/php5.y:2742 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4963,13 +4961,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2753 +// line internal/php5/php5.y:2756 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2757 +// line internal/php5/php5.y:2760 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4983,31 +4981,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2772 +// line internal/php5/php5.y:2775 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2776 +// line internal/php5/php5.y:2779 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2783 +// line internal/php5/php5.y:2786 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2787 +// line internal/php5/php5.y:2790 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2794 +// line internal/php5/php5.y:2797 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5019,7 +5017,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2804 +// line internal/php5/php5.y:2807 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5031,7 +5029,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2814 +// line internal/php5/php5.y:2817 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5043,7 +5041,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2824 +// line internal/php5/php5.y:2827 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5055,7 +5053,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2834 +// line internal/php5/php5.y:2837 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5067,7 +5065,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2844 +// line internal/php5/php5.y:2847 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5079,7 +5077,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2857 +// line internal/php5/php5.y:2860 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5102,7 +5100,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2878 +// line internal/php5/php5.y:2881 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5126,7 +5124,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2900 +// line internal/php5/php5.y:2903 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5148,7 +5146,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2920 +// line internal/php5/php5.y:2923 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5171,7 +5169,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2944 +// line internal/php5/php5.y:2947 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5197,7 +5195,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2968 +// line internal/php5/php5.y:2971 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5226,7 +5224,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2998 +// line internal/php5/php5.y:3001 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5235,7 +5233,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3005 +// line internal/php5/php5.y:3008 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5243,19 +5241,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3015 +// line internal/php5/php5.y:3018 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3019 +// line internal/php5/php5.y:3022 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3026 +// line internal/php5/php5.y:3029 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5264,25 +5262,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3033 +// line internal/php5/php5.y:3036 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3040 +// line internal/php5/php5.y:3043 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3044 +// line internal/php5/php5.y:3047 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3051 +// line internal/php5/php5.y:3054 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5296,7 +5294,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3063 +// line internal/php5/php5.y:3066 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5310,37 +5308,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3078 +// line internal/php5/php5.y:3081 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3082 +// line internal/php5/php5.y:3085 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3086 +// line internal/php5/php5.y:3089 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3093 +// line internal/php5/php5.y:3096 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3097 +// line internal/php5/php5.y:3100 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3104 +// line internal/php5/php5.y:3107 { if yyDollar[3].node != nil { @@ -5356,7 +5354,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3121 +// line internal/php5/php5.y:3124 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5373,7 +5371,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3136 +// line internal/php5/php5.y:3139 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5386,7 +5384,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3147 +// line internal/php5/php5.y:3150 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5400,7 +5398,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3159 +// line internal/php5/php5.y:3162 { var _new *ast.ExprNew @@ -5427,7 +5425,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3184 +// line internal/php5/php5.y:3187 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5439,7 +5437,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3194 +// line internal/php5/php5.y:3197 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5451,7 +5449,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3204 +// line internal/php5/php5.y:3207 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5464,7 +5462,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3215 +// line internal/php5/php5.y:3218 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5477,7 +5475,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3226 +// line internal/php5/php5.y:3229 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5490,7 +5488,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3237 +// line internal/php5/php5.y:3240 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5503,7 +5501,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3248 +// line internal/php5/php5.y:3251 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5516,7 +5514,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3259 +// line internal/php5/php5.y:3262 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5529,7 +5527,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3270 +// line internal/php5/php5.y:3273 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5542,7 +5540,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3281 +// line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5555,7 +5553,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3292 +// line internal/php5/php5.y:3295 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5568,7 +5566,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3303 +// line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5581,7 +5579,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3314 +// line internal/php5/php5.y:3317 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5594,7 +5592,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3325 +// line internal/php5/php5.y:3328 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5607,7 +5605,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3336 +// line internal/php5/php5.y:3339 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5619,7 +5617,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3346 +// line internal/php5/php5.y:3349 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5632,7 +5630,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3357 +// line internal/php5/php5.y:3360 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5644,7 +5642,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3367 +// line internal/php5/php5.y:3370 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5657,7 +5655,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3378 +// line internal/php5/php5.y:3381 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5670,7 +5668,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3389 +// line internal/php5/php5.y:3392 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5683,7 +5681,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3400 +// line internal/php5/php5.y:3403 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5696,7 +5694,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3411 +// line internal/php5/php5.y:3414 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5709,7 +5707,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3422 +// line internal/php5/php5.y:3425 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5722,7 +5720,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3433 +// line internal/php5/php5.y:3436 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5735,7 +5733,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3444 +// line internal/php5/php5.y:3447 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5748,7 +5746,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3455 +// line internal/php5/php5.y:3458 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5760,7 +5758,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3465 +// line internal/php5/php5.y:3468 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5773,7 +5771,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3476 +// line internal/php5/php5.y:3479 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5786,7 +5784,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3487 +// line internal/php5/php5.y:3490 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5799,7 +5797,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3498 +// line internal/php5/php5.y:3501 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5812,7 +5810,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3509 +// line internal/php5/php5.y:3512 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5825,7 +5823,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3520 +// line internal/php5/php5.y:3523 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5838,7 +5836,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3531 +// line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5851,7 +5849,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3542 +// line internal/php5/php5.y:3545 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5864,7 +5862,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3553 +// line internal/php5/php5.y:3556 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5876,7 +5874,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3563 +// line internal/php5/php5.y:3566 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5888,7 +5886,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3573 +// line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5900,7 +5898,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3583 +// line internal/php5/php5.y:3586 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5912,7 +5910,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3593 +// line internal/php5/php5.y:3596 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5925,7 +5923,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3604 +// line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5938,7 +5936,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3615 +// line internal/php5/php5.y:3618 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5951,7 +5949,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3626 +// line internal/php5/php5.y:3629 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5965,7 +5963,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3638 +// line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5978,7 +5976,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3649 +// line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5991,7 +5989,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3660 +// line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6004,7 +6002,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3671 +// line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6017,7 +6015,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3682 +// line internal/php5/php5.y:3685 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6030,19 +6028,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3693 +// line internal/php5/php5.y:3696 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3697 +// line internal/php5/php5.y:3700 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3701 +// line internal/php5/php5.y:3704 { yyVAL.node = yyDollar[2].node @@ -6074,7 +6072,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3731 +// line internal/php5/php5.y:3734 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6088,7 +6086,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3743 +// line internal/php5/php5.y:3746 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6102,13 +6100,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3755 +// line internal/php5/php5.y:3758 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3759 +// line internal/php5/php5.y:3762 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6121,7 +6119,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3770 +// line internal/php5/php5.y:3773 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6134,7 +6132,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3781 +// line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6147,7 +6145,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3792 +// line internal/php5/php5.y:3795 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6160,7 +6158,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3803 +// line internal/php5/php5.y:3806 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6173,7 +6171,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3814 +// line internal/php5/php5.y:3817 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6186,7 +6184,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3825 +// line internal/php5/php5.y:3828 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6199,7 +6197,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3836 +// line internal/php5/php5.y:3839 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6219,7 +6217,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3854 +// line internal/php5/php5.y:3857 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6231,25 +6229,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3864 +// line internal/php5/php5.y:3867 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3868 +// line internal/php5/php5.y:3871 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3872 +// line internal/php5/php5.y:3875 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3876 +// line internal/php5/php5.y:3879 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6261,7 +6259,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3886 +// line internal/php5/php5.y:3889 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6273,7 +6271,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3896 +// line internal/php5/php5.y:3899 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6285,7 +6283,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3909 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} @@ -6312,7 +6310,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3930 +// line internal/php5/php5.y:3933 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} @@ -6340,7 +6338,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3958 +// line internal/php5/php5.y:3961 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6352,7 +6350,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3968 +// line internal/php5/php5.y:3971 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6364,7 +6362,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3978 +// line internal/php5/php5.y:3981 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6377,7 +6375,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3989 +// line internal/php5/php5.y:3992 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6390,7 +6388,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4003 +// line internal/php5/php5.y:4006 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6403,7 +6401,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4014 +// line internal/php5/php5.y:4017 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6416,7 +6414,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4025 +// line internal/php5/php5.y:4028 { str := &ast.ScalarString{ Node: ast.Node{ @@ -6436,7 +6434,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4043 +// line internal/php5/php5.y:4046 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6449,7 +6447,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4057 +// line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6463,7 +6461,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4069 +// line internal/php5/php5.y:4072 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6476,19 +6474,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4083 +// line internal/php5/php5.y:4086 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4090 +// line internal/php5/php5.y:4093 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4094 +// line internal/php5/php5.y:4097 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6502,7 +6500,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4109 +// line internal/php5/php5.y:4112 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6523,7 +6521,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4128 +// line internal/php5/php5.y:4131 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6547,7 +6545,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4150 +// line internal/php5/php5.y:4153 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6567,7 +6565,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4168 +// line internal/php5/php5.y:4171 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6590,7 +6588,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4192 +// line internal/php5/php5.y:4195 { name := &ast.NameName{ Node: ast.Node{ @@ -6605,7 +6603,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4205 +// line internal/php5/php5.y:4208 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6622,7 +6620,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4220 +// line internal/php5/php5.y:4223 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6638,7 +6636,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4234 +// line internal/php5/php5.y:4237 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6651,7 +6649,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4245 +// line internal/php5/php5.y:4248 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6664,7 +6662,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4256 +// line internal/php5/php5.y:4259 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6677,7 +6675,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4267 +// line internal/php5/php5.y:4270 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6690,7 +6688,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4278 +// line internal/php5/php5.y:4281 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6702,7 +6700,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4291 +// line internal/php5/php5.y:4294 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6714,7 +6712,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4301 +// line internal/php5/php5.y:4304 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6725,7 +6723,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4310 +// line internal/php5/php5.y:4313 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6738,7 +6736,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4321 +// line internal/php5/php5.y:4324 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6750,7 +6748,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4334 +// line internal/php5/php5.y:4337 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6761,7 +6759,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4343 +// line internal/php5/php5.y:4346 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6774,7 +6772,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4354 +// line internal/php5/php5.y:4357 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6786,19 +6784,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4367 +// line internal/php5/php5.y:4370 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4371 +// line internal/php5/php5.y:4374 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4378 +// line internal/php5/php5.y:4381 { yyVAL.node = yyDollar[1].node @@ -6839,25 +6837,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4417 +// line internal/php5/php5.y:4420 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4425 +// line internal/php5/php5.y:4428 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4429 +// line internal/php5/php5.y:4432 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4437 +// line internal/php5/php5.y:4440 { yyVAL.list = yyDollar[2].list @@ -6866,13 +6864,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4447 +// line internal/php5/php5.y:4450 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4451 +// line internal/php5/php5.y:4454 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6888,19 +6886,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4465 +// line internal/php5/php5.y:4468 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4472 +// line internal/php5/php5.y:4475 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4476 +// line internal/php5/php5.y:4479 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6914,25 +6912,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4488 +// line internal/php5/php5.y:4491 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4495 +// line internal/php5/php5.y:4498 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4499 +// line internal/php5/php5.y:4502 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4506 +// line internal/php5/php5.y:4509 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6944,7 +6942,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4516 +// line internal/php5/php5.y:4519 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6956,7 +6954,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4526 +// line internal/php5/php5.y:4529 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6968,7 +6966,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4536 +// line internal/php5/php5.y:4539 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6980,7 +6978,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4546 +// line internal/php5/php5.y:4549 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6992,7 +6990,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4556 +// line internal/php5/php5.y:4559 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7004,7 +7002,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4566 +// line internal/php5/php5.y:4569 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7016,7 +7014,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4576 +// line internal/php5/php5.y:4579 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7028,7 +7026,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4586 +// line internal/php5/php5.y:4589 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7040,7 +7038,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4599 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7052,7 +7050,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4606 +// line internal/php5/php5.y:4609 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7073,7 +7071,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4625 +// line internal/php5/php5.y:4628 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7085,7 +7083,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4638 +// line internal/php5/php5.y:4641 { target := &ast.Identifier{ Node: ast.Node{ @@ -7105,25 +7103,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4659 +// line internal/php5/php5.y:4662 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4666 +// line internal/php5/php5.y:4669 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4670 +// line internal/php5/php5.y:4673 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4674 +// line internal/php5/php5.y:4677 { name := &ast.NameName{ Node: ast.Node{ @@ -7138,7 +7136,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4687 +// line internal/php5/php5.y:4690 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7155,7 +7153,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4702 +// line internal/php5/php5.y:4705 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7171,7 +7169,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4716 +// line internal/php5/php5.y:4719 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7185,7 +7183,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4728 +// line internal/php5/php5.y:4731 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7198,13 +7196,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4739 +// line internal/php5/php5.y:4742 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4743 +// line internal/php5/php5.y:4746 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7216,13 +7214,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4753 +// line internal/php5/php5.y:4756 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4760 +// line internal/php5/php5.y:4763 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7235,7 +7233,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4771 +// line internal/php5/php5.y:4774 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7248,7 +7246,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4782 +// line internal/php5/php5.y:4785 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7261,7 +7259,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4793 +// line internal/php5/php5.y:4796 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7274,7 +7272,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4804 +// line internal/php5/php5.y:4807 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7287,7 +7285,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4815 +// line internal/php5/php5.y:4818 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7300,7 +7298,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4826 +// line internal/php5/php5.y:4829 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7313,7 +7311,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4837 +// line internal/php5/php5.y:4840 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7325,7 +7323,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4847 +// line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7337,7 +7335,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4857 +// line internal/php5/php5.y:4860 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7350,7 +7348,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4868 +// line internal/php5/php5.y:4871 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7363,7 +7361,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4879 +// line internal/php5/php5.y:4882 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7376,7 +7374,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4890 +// line internal/php5/php5.y:4893 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7389,7 +7387,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4901 +// line internal/php5/php5.y:4904 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7402,7 +7400,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4912 +// line internal/php5/php5.y:4915 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7415,7 +7413,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4923 +// line internal/php5/php5.y:4926 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7428,7 +7426,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4934 +// line internal/php5/php5.y:4937 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7441,7 +7439,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4945 +// line internal/php5/php5.y:4948 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7454,7 +7452,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4956 +// line internal/php5/php5.y:4959 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7467,7 +7465,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4967 +// line internal/php5/php5.y:4970 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7480,7 +7478,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4978 +// line internal/php5/php5.y:4981 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7493,7 +7491,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4989 +// line internal/php5/php5.y:4992 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7506,7 +7504,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5000 +// line internal/php5/php5.y:5003 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7519,7 +7517,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5014 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7533,7 +7531,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5023 +// line internal/php5/php5.y:5026 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7546,7 +7544,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5034 +// line internal/php5/php5.y:5037 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7559,7 +7557,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5045 +// line internal/php5/php5.y:5048 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7572,7 +7570,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5056 +// line internal/php5/php5.y:5059 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7585,7 +7583,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5067 +// line internal/php5/php5.y:5070 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7599,7 +7597,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5079 +// line internal/php5/php5.y:5082 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7613,7 +7611,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5091 +// line internal/php5/php5.y:5094 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7625,7 +7623,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5101 +// line internal/php5/php5.y:5104 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7637,7 +7635,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5111 +// line internal/php5/php5.y:5114 { yyVAL.node = yyDollar[2].node @@ -7647,13 +7645,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5125 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5126 +// line internal/php5/php5.y:5129 { name := &ast.NameName{ Node: ast.Node{ @@ -7668,7 +7666,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5139 +// line internal/php5/php5.y:5142 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7685,7 +7683,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5154 +// line internal/php5/php5.y:5157 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7701,7 +7699,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5171 +// line internal/php5/php5.y:5174 { name := &ast.Identifier{ Node: ast.Node{ @@ -7720,25 +7718,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5188 +// line internal/php5/php5.y:5191 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5192 +// line internal/php5/php5.y:5195 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5196 +// line internal/php5/php5.y:5199 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5200 +// line internal/php5/php5.y:5203 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7751,7 +7749,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5211 +// line internal/php5/php5.y:5214 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7764,7 +7762,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5222 +// line internal/php5/php5.y:5225 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7776,13 +7774,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5235 +// line internal/php5/php5.y:5238 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5239 +// line internal/php5/php5.y:5242 { yyVAL.list = yyDollar[1].list @@ -7793,19 +7791,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5251 +// line internal/php5/php5.y:5254 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5255 +// line internal/php5/php5.y:5258 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5262 +// line internal/php5/php5.y:5265 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7820,7 +7818,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5275 +// line internal/php5/php5.y:5278 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7834,7 +7832,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5287 +// line internal/php5/php5.y:5290 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7848,7 +7846,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5299 +// line internal/php5/php5.y:5302 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7861,19 +7859,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5313 +// line internal/php5/php5.y:5316 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5317 +// line internal/php5/php5.y:5320 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5324 +// line internal/php5/php5.y:5327 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7890,7 +7888,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5339 +// line internal/php5/php5.y:5342 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7907,25 +7905,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5358 +// line internal/php5/php5.y:5361 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5366 +// line internal/php5/php5.y:5369 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5373 +// line internal/php5/php5.y:5376 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5380 +// line internal/php5/php5.y:5383 { yyVAL.node = yyDollar[1].node @@ -7983,25 +7981,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5439 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5443 +// line internal/php5/php5.y:5446 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5447 +// line internal/php5/php5.y:5450 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5455 +// line internal/php5/php5.y:5458 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8015,7 +8013,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5470 +// line internal/php5/php5.y:5473 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8029,7 +8027,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5482 +// line internal/php5/php5.y:5485 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8043,7 +8041,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5497 +// line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8052,31 +8050,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5507 +// line internal/php5/php5.y:5510 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5511 +// line internal/php5/php5.y:5514 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5515 +// line internal/php5/php5.y:5518 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5522 +// line internal/php5/php5.y:5525 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5526 +// line internal/php5/php5.y:5529 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8088,7 +8086,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5539 +// line internal/php5/php5.y:5542 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8101,7 +8099,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5550 +// line internal/php5/php5.y:5553 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8114,13 +8112,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5564 +// line internal/php5/php5.y:5567 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5571 +// line internal/php5/php5.y:5574 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8133,7 +8131,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5582 +// line internal/php5/php5.y:5585 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8146,31 +8144,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5596 +// line internal/php5/php5.y:5599 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5600 +// line internal/php5/php5.y:5603 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5604 +// line internal/php5/php5.y:5607 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5612 +// line internal/php5/php5.y:5615 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5616 +// line internal/php5/php5.y:5619 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8182,13 +8180,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5626 +// line internal/php5/php5.y:5629 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5633 +// line internal/php5/php5.y:5636 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8201,7 +8199,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5644 +// line internal/php5/php5.y:5647 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8214,13 +8212,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5655 +// line internal/php5/php5.y:5658 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5663 +// line internal/php5/php5.y:5666 { name := &ast.Identifier{ Node: ast.Node{ @@ -8239,7 +8237,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5680 +// line internal/php5/php5.y:5683 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8253,25 +8251,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5695 +// line internal/php5/php5.y:5698 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5699 +// line internal/php5/php5.y:5702 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5707 +// line internal/php5/php5.y:5710 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5711 +// line internal/php5/php5.y:5714 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8281,7 +8279,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5722 +// line internal/php5/php5.y:5725 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8295,7 +8293,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5734 +// line internal/php5/php5.y:5737 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8309,7 +8307,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5746 +// line internal/php5/php5.y:5749 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8319,7 +8317,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5757 +// line internal/php5/php5.y:5760 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8331,7 +8329,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5767 +// line internal/php5/php5.y:5770 { yyVAL.node = yyDollar[2].node @@ -8344,7 +8342,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5781 +// line internal/php5/php5.y:5784 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8357,7 +8355,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5792 +// line internal/php5/php5.y:5795 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8374,7 +8372,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5810 +// line internal/php5/php5.y:5813 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8387,7 +8385,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5821 +// line internal/php5/php5.y:5824 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8397,7 +8395,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5833 +// line internal/php5/php5.y:5836 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8409,7 +8407,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5843 +// line internal/php5/php5.y:5846 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8425,19 +8423,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5857 +// line internal/php5/php5.y:5860 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5865 +// line internal/php5/php5.y:5868 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5869 +// line internal/php5/php5.y:5872 { yyVAL.list = yyDollar[1].list @@ -8452,7 +8450,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5885 +// line internal/php5/php5.y:5888 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8467,7 +8465,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5898 +// line internal/php5/php5.y:5901 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8481,7 +8479,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5910 +// line internal/php5/php5.y:5913 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8495,7 +8493,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5922 +// line internal/php5/php5.y:5925 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8508,7 +8506,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5933 +// line internal/php5/php5.y:5936 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8526,7 +8524,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5949 +// line internal/php5/php5.y:5952 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8542,7 +8540,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5963 +// line internal/php5/php5.y:5966 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8559,7 +8557,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5978 +// line internal/php5/php5.y:5981 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8574,13 +8572,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5994 +// line internal/php5/php5.y:5997 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5998 +// line internal/php5/php5.y:6001 { yyVAL.list = append( yyDollar[1].list, @@ -8595,13 +8593,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6011 +// line internal/php5/php5.y:6014 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6015 +// line internal/php5/php5.y:6018 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8616,7 +8614,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6031 +// line internal/php5/php5.y:6034 { name := &ast.Identifier{ Node: ast.Node{ @@ -8635,7 +8633,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6048 +// line internal/php5/php5.y:6051 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8657,7 +8655,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6068 +// line internal/php5/php5.y:6071 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8685,7 +8683,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6094 +// line internal/php5/php5.y:6097 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8700,7 +8698,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6107 +// line internal/php5/php5.y:6110 { name := &ast.Identifier{ Node: ast.Node{ @@ -8722,7 +8720,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6127 +// line internal/php5/php5.y:6130 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8746,7 +8744,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6149 +// line internal/php5/php5.y:6152 { yyVAL.node = yyDollar[2].node @@ -8756,7 +8754,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6160 +// line internal/php5/php5.y:6163 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8768,7 +8766,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6170 +// line internal/php5/php5.y:6173 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8797,7 +8795,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6197 +// line internal/php5/php5.y:6200 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8816,7 +8814,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6217 +// line internal/php5/php5.y:6220 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8830,7 +8828,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6229 +// line internal/php5/php5.y:6232 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8852,7 +8850,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6249 +// line internal/php5/php5.y:6252 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8874,7 +8872,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6269 +// line internal/php5/php5.y:6272 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8886,7 +8884,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6279 +// line internal/php5/php5.y:6282 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8898,7 +8896,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6289 +// line internal/php5/php5.y:6292 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8920,7 +8918,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6309 +// line internal/php5/php5.y:6312 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8932,7 +8930,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6319 +// line internal/php5/php5.y:6322 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8944,13 +8942,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6332 +// line internal/php5/php5.y:6335 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6336 +// line internal/php5/php5.y:6339 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8959,19 +8957,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6346 +// line internal/php5/php5.y:6349 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6350 +// line internal/php5/php5.y:6353 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6360 { target := &ast.Identifier{ Node: ast.Node{ @@ -8991,7 +8989,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6375 +// line internal/php5/php5.y:6378 { target := &ast.Identifier{ Node: ast.Node{ @@ -9011,7 +9009,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6396 +// line internal/php5/php5.y:6399 { target := &ast.Identifier{ Node: ast.Node{ @@ -9031,7 +9029,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6417 +// line internal/php5/php5.y:6420 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 67d3536..e5d4558 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -18,9 +18,6 @@ import ( list []ast.Vertex simpleIndirectReference simpleIndirectReference - ClassExtends *ast.StmtClassExtends - ClassImplements *ast.StmtClassImplements - InterfaceExtends *ast.StmtInterfaceExtends ClosureUse *ast.ExprClosureUse } @@ -243,13 +240,12 @@ import ( %type ctor_arguments function_call_parameter_list echo_expr_list %type trait_adaptations unset_variables declare_list %type switch_case_list non_empty_function_call_parameter_list -%type method_body +%type method_body trait_reference_list %type foreach_statement for_statement while_statement %type foreach_variable foreach_optional_arg - -%type extends_from -%type implements_list -%type interface_extends_list +%type extends_from interface_list trait_list +%type implements_list +%type interface_extends_list %type lexical_vars %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations @@ -258,8 +254,8 @@ import ( %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers class_variable_declaration -%type interface_list trait_list trait_adaptation_list non_empty_trait_adaptation_list -%type trait_reference_list non_empty_member_modifiers backticks_expr static_array_pair_list non_empty_static_array_pair_list +%type trait_adaptation_list non_empty_trait_adaptation_list +%type non_empty_member_modifiers backticks_expr static_array_pair_list non_empty_static_array_pair_list %type chaining_dereference chaining_instance_call chaining_method_or_property instance_call variable_property %type method_or_not array_method_dereference object_property object_dim_list dynamic_class_name_variable_property @@ -1527,13 +1523,13 @@ extends_from: } | T_EXTENDS fully_qualified_class_name { - $$ = &ast.StmtClassExtends{ast.Node{}, $2}; - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtClassExtends{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + ExtendTkn: $1, + ClassName: $2, + } } ; @@ -1551,13 +1547,14 @@ interface_extends_list: } | T_EXTENDS interface_list { - $$ = &ast.StmtInterfaceExtends{ast.Node{}, $2}; - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + }, + ExtendsTkn: $1, + InterfaceNames: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + }; } ; @@ -1568,29 +1565,30 @@ implements_list: } | T_IMPLEMENTS interface_list { - $$ = &ast.StmtClassImplements{ast.Node{}, $2}; - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtClassImplements{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + }, + ImplementsTkn: $1, + InterfaceNames: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + }; } ; interface_list: fully_qualified_class_name { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | interface_list ',' fully_qualified_class_name { - switch n := lastNode($1).(type) { - case *ast.NameName: n.ListSeparatorTkn = $2 - case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 - case *ast.NameRelative: n.ListSeparatorTkn = $2 - } - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + + $$ = $1 } ; @@ -2520,29 +2518,31 @@ class_statement: trait_use_statement: T_USE trait_list trait_adaptations { - $$ = &ast.StmtTraitUse{ast.Node{}, $2, $3} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtTraitUse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + UseTkn: $1, + Traits: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Adaptations: $3, + } } ; trait_list: fully_qualified_class_name { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | trait_list ',' fully_qualified_class_name { - switch n := lastNode($1).(type) { - case *ast.NameName: n.ListSeparatorTkn = $2 - case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 - case *ast.NameRelative: n.ListSeparatorTkn = $2 - } - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + + $$ = $1 } ; @@ -2612,28 +2612,31 @@ trait_adaptation_statement: trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { - $$ = &ast.StmtTraitUsePrecedence{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeNodeListPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + $$ = &ast.StmtTraitUsePrecedence{ + Node: ast.Node{ + Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + }, + Ref: $1, + InsteadofTkn: $2, + Insteadof: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + } } ; trait_reference_list: fully_qualified_class_name { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | trait_reference_list ',' fully_qualified_class_name { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index aa80680..0a0e9af 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -24,10 +24,7 @@ type yySymType struct { tkn *token.Token list []ast.Vertex - ClassExtends *ast.StmtClassExtends - ClassImplements *ast.StmtClassImplements - InterfaceExtends *ast.StmtInterfaceExtends - ClosureUse *ast.ExprClosureUse + ClosureUse *ast.ExprClosureUse } const T_INCLUDE = 57346 @@ -347,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4994 +// line internal/php7/php7.y:4996 // line yacctab:1 var yyExca = [...]int{ @@ -546,103 +543,103 @@ const yyPrivate = 57344 const yyLast = 7766 var yyAct = [...]int{ - 28, 132, 765, 631, 843, 880, 866, 585, 442, 748, - 842, 109, 785, 820, 191, 839, 635, 682, 113, 634, + 28, 132, 765, 631, 843, 880, 748, 442, 866, 839, + 585, 109, 842, 785, 820, 191, 635, 682, 113, 634, 668, 128, 140, 140, 140, 712, 650, 153, 380, 572, - 117, 123, 633, 649, 224, 188, 327, 580, 540, 529, - 636, 410, 372, 521, 318, 723, 226, 5, 322, 81, - 382, 9, 321, 228, 232, 8, 85, 240, 241, 242, - 243, 244, 152, 134, 245, 246, 247, 248, 249, 250, - 251, 320, 254, 149, 7, 262, 263, 264, 319, 145, - 2, 6, 130, 127, 139, 520, 436, 268, 129, 876, - 277, 278, 873, 280, 281, 850, 691, 597, 273, 258, - 83, 860, 338, 314, 234, 234, 899, 142, 143, 874, - 870, 236, 236, 847, 411, 846, 107, 900, 549, 575, - 684, 287, 339, 875, 871, 771, 716, 336, 334, 684, - 313, 312, 307, 295, 324, 297, 340, 306, 329, 330, - 304, 337, 335, 310, 706, 313, 311, 643, 628, 573, - 326, 307, 564, 290, 292, 181, 341, 342, 343, 344, + 117, 123, 633, 649, 224, 188, 327, 723, 540, 529, + 636, 410, 372, 521, 318, 382, 226, 5, 322, 81, + 152, 9, 321, 228, 232, 8, 85, 240, 241, 242, + 243, 244, 149, 134, 245, 246, 247, 248, 249, 250, + 251, 580, 254, 145, 127, 262, 263, 264, 320, 319, + 436, 7, 6, 130, 139, 520, 258, 129, 268, 876, + 277, 278, 873, 280, 281, 850, 860, 691, 273, 2, + 83, 847, 597, 846, 234, 234, 338, 142, 143, 314, + 899, 236, 236, 411, 874, 107, 870, 684, 575, 684, + 771, 900, 287, 549, 716, 706, 643, 339, 875, 313, + 871, 336, 628, 295, 324, 297, 334, 307, 329, 330, + 304, 340, 573, 310, 107, 337, 311, 564, 416, 107, + 335, 326, 867, 290, 292, 181, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 416, 368, 370, 192, 374, 270, 708, 376, - 44, 791, 222, 273, 119, 107, 107, 167, 700, 300, - 607, 696, 610, 608, 392, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 165, 164, - 407, 140, 409, 181, 228, 384, 867, 107, 166, 168, - 169, 419, 617, 163, 234, 604, 421, 272, 613, 228, - 119, 236, 107, 614, 388, 233, 239, 592, 412, 415, - 861, 265, 932, 921, 140, 895, 430, 828, 414, 181, - 827, 431, 818, 108, 136, 167, 140, 114, 807, 367, - 795, 437, 518, 422, 80, 375, 530, 531, 221, 234, - 532, 835, 270, 237, 220, 525, 236, 738, 728, 537, - 710, 705, 541, 703, 228, 119, 166, 168, 169, 146, - 695, 167, 170, 171, 666, 408, 526, 655, 177, 179, - 136, 234, 645, 114, 605, 559, 596, 793, 236, 296, - 822, 821, 165, 164, 551, 731, 554, 311, 543, 237, - 694, 927, 166, 168, 169, 176, 178, 163, 424, 568, - 677, 153, 108, 108, 609, 5, 638, 639, 429, 9, - 435, 291, 663, 8, 517, 664, 426, 427, 527, 288, - 578, 274, 425, 910, 562, 136, 560, 868, 114, 536, - 571, 524, 7, 420, 108, 373, 389, 523, 294, 6, - 546, 387, 426, 289, 427, 427, 426, 293, 587, 108, - 588, 552, 279, 589, 590, 582, 558, 276, 586, 275, - 253, 223, 219, 569, 186, 185, 184, 138, 577, 137, - 133, 567, 115, 595, 584, 566, 766, 228, 599, 758, - 418, 228, 391, 157, 159, 158, 181, 936, 190, 935, - 909, 851, 579, 780, 781, 616, 894, 637, 857, 299, - 619, 298, 181, 780, 781, 829, 824, 817, 777, 759, - 183, 180, 433, 727, 594, 602, 274, 726, 724, 722, - 719, 563, 548, 598, 545, 390, 155, 156, 167, 170, - 171, 172, 173, 174, 175, 177, 179, 378, 333, 332, - 618, 822, 821, 331, 167, 170, 171, 182, 161, 165, - 164, 301, 816, 119, 813, 808, 160, 413, 162, 166, - 168, 169, 176, 178, 163, 165, 164, 773, 615, 544, - 915, 544, 544, 217, 218, 166, 168, 169, 864, 863, - 163, 544, 809, 798, 140, 623, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 794, - 740, 438, 519, 644, 683, 167, 823, 583, 640, 187, - 198, 199, 181, 257, 122, 77, 779, 193, 627, 769, - 116, 620, 119, 659, 329, 661, 116, 624, 309, 642, - 203, 665, 554, 294, 554, 311, 913, 651, 626, 309, - 309, 148, 678, 745, 522, 267, 747, 259, 654, 681, - 640, 5, 428, 586, 167, 9, 266, 119, 692, 8, - 660, 200, 202, 201, 78, 79, 657, 119, 622, 680, - 146, 309, 119, 638, 639, 698, 667, 679, 7, 849, - 674, 729, 294, 234, 234, 6, 581, 118, 259, 530, - 236, 236, 136, 648, 557, 114, 688, 752, 753, 754, - 751, 750, 749, 714, 541, 653, 647, 383, 309, 640, - 234, 386, 260, 261, 911, 555, 797, 236, 284, 285, - 720, 119, 735, 736, 702, 550, 554, 136, 704, 713, - 114, 554, 554, 228, 717, 651, 303, 733, 709, 715, - 553, 737, 711, 889, 802, 305, 801, 718, 125, 640, - 126, 760, 761, 260, 261, 228, 756, 148, 119, 119, - 107, 755, 308, 135, 106, 46, 112, 732, 739, 912, - 725, 752, 753, 754, 751, 750, 749, 535, 640, 259, - 234, 325, 697, 329, 428, 840, 125, 236, 126, 762, - 757, 764, 228, 554, 124, 554, 713, 901, 651, 767, - 772, 812, 770, 774, 194, 150, 259, 119, 775, 111, - 788, 428, 1, 803, 259, 640, 804, 586, 799, 778, - 806, 611, 652, 800, 373, 669, 790, 38, 136, 259, - 782, 114, 784, 786, 286, 121, 131, 259, 640, 234, - 556, 819, 282, 811, 260, 261, 236, 237, 150, 826, - 554, 693, 544, 814, 810, 381, 832, 621, 833, 834, - 413, 625, 815, 746, 379, 831, 825, 780, 781, 197, - 534, 260, 261, 135, 106, 196, 836, 844, 533, 260, - 261, 743, 856, 259, 783, 780, 781, 848, 256, 195, - 189, 744, 632, 855, 260, 261, 235, 225, 238, 528, - 859, 283, 260, 261, 865, 879, 838, 108, 328, 877, - 890, 891, 886, 841, 676, 255, 892, 893, 796, 885, - 385, 730, 371, 853, 656, 897, 898, 852, 934, 872, - 662, 845, 786, 896, 903, 227, 43, 905, 42, 16, - 539, 15, 830, 151, 886, 908, 904, 902, 260, 261, - 606, 885, 271, 49, 48, 110, 50, 84, 82, 72, - 252, 62, 269, 61, 884, 883, 906, 918, 882, 881, - 742, 147, 144, 45, 734, 673, 315, 928, 926, 922, - 789, 924, 925, 586, 120, 929, 302, 3, 441, 768, - 930, 707, 919, 640, 920, 933, 0, 4, 937, 89, - 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, - 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, - 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, + 365, 366, 192, 368, 370, 312, 374, 270, 306, 376, + 708, 791, 607, 273, 610, 608, 44, 167, 700, 313, + 696, 617, 307, 604, 392, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 300, 592, + 407, 140, 409, 415, 228, 384, 265, 525, 166, 168, + 169, 419, 613, 430, 234, 932, 421, 614, 895, 228, + 828, 236, 80, 827, 388, 861, 818, 412, 526, 807, + 795, 233, 239, 738, 140, 728, 710, 181, 414, 705, + 222, 431, 108, 703, 695, 666, 140, 146, 655, 645, + 367, 437, 518, 422, 375, 605, 530, 531, 596, 234, + 532, 288, 270, 296, 921, 663, 236, 835, 664, 537, + 793, 108, 541, 868, 228, 731, 108, 822, 821, 167, + 170, 171, 694, 677, 119, 408, 177, 179, 291, 578, + 562, 234, 560, 524, 766, 559, 536, 758, 236, 523, + 165, 164, 420, 391, 551, 429, 554, 311, 543, 274, + 166, 168, 169, 176, 178, 163, 609, 389, 424, 568, + 387, 153, 293, 426, 427, 5, 221, 279, 517, 9, + 435, 289, 220, 8, 276, 638, 639, 275, 527, 181, + 253, 223, 219, 186, 185, 184, 138, 137, 294, 426, + 571, 427, 427, 426, 136, 133, 115, 114, 190, 7, + 6, 373, 552, 119, 927, 107, 181, 936, 587, 935, + 588, 569, 910, 589, 590, 582, 909, 558, 586, 546, + 567, 167, 170, 171, 894, 857, 829, 824, 577, 566, + 780, 781, 817, 595, 584, 780, 781, 228, 599, 777, + 759, 228, 165, 164, 274, 727, 418, 579, 167, 299, + 726, 298, 166, 168, 169, 616, 724, 163, 722, 719, + 619, 157, 159, 158, 181, 563, 637, 548, 545, 165, + 164, 390, 378, 136, 594, 602, 114, 333, 433, 166, + 168, 169, 332, 598, 163, 413, 331, 301, 183, 180, + 851, 119, 237, 816, 813, 808, 773, 615, 915, 745, + 618, 864, 747, 544, 155, 156, 167, 170, 171, 172, + 173, 174, 175, 177, 179, 863, 809, 425, 544, 822, + 821, 544, 798, 544, 794, 182, 161, 165, 164, 438, + 519, 740, 683, 119, 160, 107, 162, 166, 168, 169, + 176, 178, 163, 823, 140, 623, 583, 167, 779, 187, + 122, 119, 108, 752, 753, 754, 751, 750, 749, 769, + 257, 198, 199, 644, 116, 119, 259, 181, 640, 193, + 116, 428, 200, 202, 201, 77, 272, 294, 627, 913, + 309, 620, 522, 659, 329, 661, 267, 624, 266, 642, + 849, 665, 554, 626, 554, 311, 729, 651, 146, 889, + 309, 148, 678, 136, 745, 119, 114, 747, 654, 167, + 640, 5, 681, 586, 309, 9, 78, 79, 692, 8, + 660, 136, 237, 581, 114, 118, 657, 309, 622, 680, + 383, 260, 261, 119, 294, 698, 667, 714, 553, 386, + 674, 912, 911, 234, 234, 7, 6, 119, 259, 530, + 236, 236, 653, 428, 648, 647, 688, 555, 752, 753, + 754, 751, 750, 749, 541, 284, 285, 797, 557, 640, + 234, 679, 303, 325, 125, 697, 126, 236, 305, 840, + 720, 550, 108, 309, 638, 639, 554, 46, 704, 713, + 901, 554, 554, 228, 717, 651, 535, 733, 709, 715, + 259, 737, 711, 136, 869, 428, 114, 718, 802, 640, + 801, 760, 761, 260, 261, 228, 756, 148, 702, 119, + 124, 755, 725, 735, 736, 812, 194, 732, 739, 752, + 753, 754, 751, 750, 749, 135, 106, 308, 640, 259, + 234, 652, 259, 329, 286, 150, 125, 236, 126, 762, + 757, 764, 228, 554, 121, 554, 713, 119, 651, 767, + 772, 611, 770, 774, 534, 260, 261, 259, 775, 259, + 788, 150, 282, 804, 256, 640, 803, 586, 799, 778, + 806, 131, 782, 800, 784, 621, 790, 259, 413, 625, + 373, 669, 119, 786, 107, 556, 135, 106, 640, 234, + 112, 819, 544, 811, 260, 261, 236, 260, 261, 826, + 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, + 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, + 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, + 780, 781, 856, 111, 744, 632, 225, 848, 528, 865, + 879, 533, 260, 261, 855, 838, 328, 841, 676, 255, + 796, 859, 136, 385, 371, 114, 656, 852, 934, 877, + 890, 891, 886, 662, 845, 227, 892, 893, 43, 885, + 42, 237, 16, 853, 539, 897, 898, 730, 15, 872, + 830, 151, 786, 896, 903, 606, 271, 905, 49, 217, + 218, 902, 48, 110, 886, 908, 50, 84, 904, 82, + 72, 885, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 252, 906, 62, 269, 918, + 235, 61, 238, 884, 883, 882, 881, 928, 926, 925, + 924, 108, 922, 586, 742, 929, 789, 147, 144, 45, + 930, 734, 919, 640, 920, 933, 203, 4, 937, 89, + 90, 70, 47, 94, 95, 36, 673, 107, 315, 27, + 120, 302, 3, 112, 26, 18, 17, 441, 19, 768, + 30, 707, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, 13, 23, 33, 0, 0, 34, 12, 0, 24, 0, 29, 87, 88, 10, 39, 40, 41, 0, 0, 0, 0, 51, 111, 0, 103, 99, @@ -656,7 +653,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 105, 73, 14, 646, 32, 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, 108, 4, 0, 89, 90, 70, - 47, 94, 95, 36, 869, 107, 0, 27, 0, 0, + 47, 94, 95, 36, 837, 107, 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, 13, 23, 33, 0, 0, 34, 12, 0, @@ -672,7 +669,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 105, 73, 14, 547, 32, 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, 108, 4, 0, 89, 90, 70, 47, 94, - 95, 36, 837, 107, 0, 27, 0, 0, 0, 112, + 95, 36, 805, 107, 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, 13, 23, 33, 0, 0, 34, 12, 0, 24, 0, @@ -688,22 +685,22 @@ var yyAct = [...]int{ 0, 0, 0, 105, 73, 14, 0, 32, 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, 108, 317, 0, 89, 90, 70, 47, 94, 95, 36, - 805, 107, 0, 27, 0, 0, 0, 112, 26, 18, + 741, 107, 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, 0, 23, 33, 0, 0, 34, 0, 0, 24, 0, 29, 87, 88, 323, 39, 40, 41, 0, 0, 0, 0, 51, - 111, 0, 103, 99, 100, 101, 96, 97, 745, 0, - 0, 747, 0, 0, 104, 0, 0, 0, 0, 136, + 111, 0, 103, 99, 100, 101, 96, 97, 0, 0, + 0, 0, 0, 0, 104, 0, 0, 0, 0, 136, 102, 98, 114, 0, 91, 92, 93, 0, 0, 0, 0, 86, 53, 0, 0, 0, 74, 75, 25, 78, 79, 0, 0, 0, 54, 55, 76, 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, - 0, 0, 752, 753, 754, 751, 750, 749, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 73, 14, 938, 32, 0, 60, 0, 52, 0, 0, 0, 57, 56, 58, 59, 71, 108, 317, - 0, 89, 90, 70, 47, 94, 95, 36, 741, 107, + 0, 89, 90, 70, 47, 94, 95, 36, 0, 107, 0, 27, 0, 0, 0, 112, 26, 18, 17, 0, 19, 0, 30, 0, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, 0, 23, 33, 0, @@ -1327,49 +1324,49 @@ var yyAct = [...]int{ var yyPact = [...]int{ -1000, -1000, 1251, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 264, 483, 651, 766, -1000, -1000, -1000, 262, 4342, 261, - 259, 5524, 5524, 5524, 183, 776, 5524, -1000, 6743, 258, - 257, 256, -1000, 405, 5524, 820, 281, 32, 504, 819, - 805, 799, 456, 507, 408, -1000, -1000, 254, -1000, -1000, - 134, 253, 4726, 5524, 688, 688, 5524, 5524, 5524, 5524, + 228, 461, 617, 751, -1000, -1000, -1000, 227, 4342, 219, + 218, 5524, 5524, 5524, 132, 739, 5524, -1000, 6743, 217, + 216, 215, -1000, 385, 5524, 793, 231, 29, 496, 791, + 790, 785, 447, 458, 774, -1000, -1000, 214, -1000, -1000, + 202, 213, 4726, 5524, 762, 762, 5524, 5524, 5524, 5524, 5524, -1000, -1000, 5524, 5524, 5524, 5524, 5524, 5524, 5524, - 252, 5524, -1000, 811, 5524, 5524, 5524, -1000, -1000, -1000, - -1000, 101, -1000, 517, 506, -1000, 184, 251, 249, 5524, - 5524, 244, 5524, 5524, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 765, 757, 32, -1000, 215, 203, - 203, 239, -1000, 490, 737, 170, 737, 295, -1000, -1000, - 345, 602, -9, 619, 737, -1000, -1000, -1000, -1000, -15, - -1000, -59, 3147, 5524, 700, 32, 477, 5524, 5524, 337, - 6802, 666, 333, 332, -18, -1000, -1000, -19, -1000, -1000, - -60, -24, -1000, 6802, -1000, 5524, 5524, 5524, 5524, 5524, + 212, 5524, -1000, 737, 5524, 5524, 5524, -1000, -1000, -1000, + -1000, 76, -1000, 489, 487, -1000, 503, 209, 206, 5524, + 5524, 199, 5524, 5524, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 735, 707, 29, -1000, 137, 160, + 160, 194, -1000, 474, 727, 134, 727, 285, -1000, -1000, + 321, 575, 42, 634, 727, -1000, -1000, -1000, -1000, 39, + -1000, -53, 3147, 5524, 632, 29, 467, 5524, 5524, 320, + 6802, 678, 316, 311, -10, -1000, -1000, -15, -1000, -1000, + -56, -19, -1000, 6802, -1000, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, - 5524, 230, 5410, 5524, 688, 5524, 766, -1000, 6684, 331, - -1000, 794, -1000, 785, -1000, 591, -1000, 595, 233, 4342, - 228, 319, 275, 5296, 5524, 5524, 5524, 5524, 5524, 5524, + 5524, 373, 5410, 5524, 762, 5524, 751, -1000, 6684, 306, + -1000, 782, -1000, 781, -1000, 554, -1000, 563, 192, 4342, + 189, 305, 176, 5296, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, -1000, -1000, 5524, - 5524, 5524, 104, 4726, 98, 22, -1000, -1000, 6629, 688, - 5524, 225, -1000, -1000, 101, 5524, -1000, -1000, 4726, -1000, - 412, 412, 461, 412, 6561, 412, 412, 412, 412, 412, - 412, 412, -1000, 5524, 412, 219, 616, 707, -1000, 198, - 5182, 688, 7025, 6970, 7025, 5524, 3461, 3461, 203, -1000, - 505, 227, 203, -1000, -1000, 5524, 5524, 6802, 6802, 5524, - 6802, 6802, 742, -1000, 734, 575, 616, 221, 5524, -1000, - -1000, 4840, -1000, 4726, 782, 490, 318, 490, -1000, -1000, - 1093, -1000, 316, -28, 582, 737, -1000, 597, 511, 770, - 551, -1000, -1000, 766, 5524, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 218, 6506, 216, -1000, 315, -8, 6802, - 6451, -1000, -1000, -1000, -1000, 183, -1000, 733, 5524, -1000, - 5524, 7134, 7174, 6857, 7025, 6912, 7214, 7294, 7254, 132, - 132, 132, 461, 412, 461, 461, 64, 64, 168, 168, - 168, 168, 351, 351, 351, 351, 168, -1000, 6396, 5524, - 7080, -11, -1000, -1000, 6341, -30, 2989, -1000, -1000, -1000, - 212, 591, 569, 587, 403, -1000, 587, 5524, -1000, 5524, + 5524, 5524, 103, 4726, 72, -12, -1000, -1000, 6629, 762, + 5524, 174, -1000, -1000, 76, 5524, -1000, -1000, 4726, -1000, + 394, 394, 456, 394, 6561, 394, 394, 394, 394, 394, + 394, 394, -1000, 5524, 394, 354, 710, 616, -1000, 175, + 5182, 762, 7025, 6970, 7025, 5524, 3461, 3461, 160, -1000, + 483, 169, 160, -1000, -1000, 5524, 5524, 6802, 6802, 5524, + 6802, 6802, 755, -1000, 668, 534, 710, 168, 5524, -1000, + -1000, 4840, -1000, 4726, 772, 474, 302, 474, -1000, -1000, + 1093, -1000, 301, -23, 578, 727, -1000, 535, 493, 765, + 565, -1000, -1000, 751, 5524, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 164, 6506, 162, -1000, 299, -13, 6802, + 6451, -1000, -1000, -1000, -1000, 132, -1000, 713, 5524, -1000, + 5524, 7134, 7174, 6857, 7025, 6912, 7214, 7294, 7254, 64, + 64, 64, 456, 394, 456, 456, 295, 295, 166, 166, + 166, 166, 268, 268, 268, 268, 166, -1000, 6396, 5524, + 7080, -18, -1000, -1000, 6341, -31, 2989, -1000, -1000, -1000, + 161, 554, 546, 521, 382, -1000, 521, 5524, -1000, 5524, -1000, -1000, 7025, 5524, 7025, 7025, 7025, 7025, 7025, 7025, - 7025, 7025, 7025, 7025, 7025, 7025, 7025, 6286, 96, 6228, - 203, -1000, 5524, -1000, 167, -65, 4726, 5068, -1000, 6802, - 4726, 6173, 84, -1000, 165, -1000, -1000, -1000, -1000, 190, - 751, 6115, 93, 363, 5524, 81, 203, -1000, -1000, 5524, + 7025, 7025, 7025, 7025, 7025, 7025, 7025, 6286, 68, 6228, + 160, -1000, 5524, -1000, 129, -60, 4726, 5068, -1000, 6802, + 4726, 6173, 52, -1000, 126, -1000, -1000, -1000, -1000, 182, + 731, 6115, 87, 332, 5524, 50, 160, -1000, -1000, 5524, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1377,65 +1374,65 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 203, -1000, -1000, - -1000, -1000, 183, 5524, 5524, 104, 183, 591, -12, -1000, - 6802, 6060, 6005, -1000, -1000, -1000, 285, 5947, -1000, -13, - -1000, 6802, 5524, 163, -1000, -1000, 935, -1000, -1000, -1000, - 502, 550, -1000, 737, 539, 689, -1000, 501, -1000, 6802, - 158, 4186, 5524, 5524, 5524, 208, -1000, -1000, 6802, -1000, - 5524, 7080, 155, 688, 7606, 4030, -1000, 192, 285, 569, - -1000, 587, -1000, -1000, 400, -40, -1000, 5892, 5837, 2831, - 7294, 3874, -1000, -1000, -1000, 5779, -66, 5524, -1000, 6802, - 688, 182, 151, -1000, -1000, -1000, 50, -1000, -1000, 709, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 160, -1000, -1000, + -1000, -1000, 132, 5524, 5524, 103, 132, 554, -28, -1000, + 6802, 6060, 6005, -1000, -1000, -1000, 294, 5947, -1000, -34, + -1000, 6802, 5524, 120, -1000, -1000, 935, -1000, -1000, -1000, + 491, 551, -1000, 727, 531, 689, -1000, 488, -1000, 6802, + 119, 4186, 5524, 5524, 5524, 141, -1000, -1000, 6802, -1000, + 5524, 7080, 116, 762, 7606, 4030, -1000, 155, 294, 546, + -1000, 521, -1000, -1000, 368, -41, -1000, 5892, 5837, 2831, + 7294, 3874, -1000, -1000, -1000, 5779, -65, 5524, -1000, 6802, + 762, 154, 115, -1000, -1000, -1000, 49, -1000, -1000, 642, -1000, -1000, -1000, -1000, 5524, -1000, 7025, -1000, -1000, 5721, - -1000, -1000, 47, 5663, -1000, -1000, 569, 144, 5524, -1000, - -1000, 142, -16, -1000, 35, -1000, -1000, 552, -1000, -1000, - -1000, -1000, 141, 4954, 6802, -1000, -1000, 737, 499, -34, - -1000, -1000, 737, 689, -1000, 314, -1000, -1000, -1000, 5608, - 313, 6802, -1000, 312, 311, 7080, 307, -1000, 139, 562, - 688, 177, 4726, -1000, -1000, -1000, 620, 285, 138, -1000, - 396, -40, 1433, -1000, 587, 4342, 272, 303, -1000, -1000, - -1000, 5524, 7025, -1000, 4726, -66, -1000, -1000, 5553, -1000, - -1000, -1000, -1000, -1000, -1000, 269, 285, 475, -1000, -1000, - -1000, -1000, -35, -1000, 737, 362, 689, -1000, -34, -1000, - 2673, 302, 5524, 411, -1000, 793, -1000, -1000, 3562, 7606, - -1000, 4726, 40, 2515, -1000, 169, 395, 121, 611, 379, - -1000, -1000, -1000, 285, 647, 587, 612, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1275, -1000, -1000, -1000, -1000, - 3305, 7025, 119, 350, 378, -1000, 285, -1000, 729, -1000, - 349, 737, -35, -1000, -1000, 347, 301, -1000, 113, -1000, - 5524, 174, 401, 300, 775, -1000, -1000, -1000, 111, -1000, - 108, -1000, 299, 587, -1000, 269, 269, 133, -1000, 1117, - 713, 7446, 32, -31, -1000, -1000, 3305, -66, -1000, -1000, - 560, -1000, -67, -1000, -1000, 286, -1000, -1000, 3718, 335, - -1000, -1000, -1000, -1000, -1000, 292, 2357, 3562, -1000, -1000, - 89, -1000, 2199, 375, 374, 214, 959, -1000, -36, -1000, - -70, -37, -1000, -73, 7446, -1000, -1000, 4625, 538, 5524, - 5524, -1000, -1000, -1000, -1000, -1000, 3305, -1000, 290, -1000, - 106, 587, -1000, -1000, -1000, -43, -1000, -1000, 725, -1000, - -1000, 713, -1000, 5524, -1000, 7446, 5524, -1000, -1000, 4498, - -1000, 284, 217, 608, 680, 497, -1000, 477, -1000, -1000, - 7025, 6802, 2041, 3305, -1000, 366, -1000, 1883, 1725, -1000, - 214, -1000, -1000, 6802, -1000, 6802, 105, -1000, -1000, -1000, - -1000, 587, 7547, 7446, 185, -1000, -1000, -1000, -1000, -1000, - -1000, 285, -40, -1000, -1000, 7446, -1000, -1000, 1567, 103, - -1000, -1000, 269, 283, -1000, -1000, -1000, 1409, -1000, + -1000, -1000, 47, 5663, -1000, -1000, 546, 114, 5524, -1000, + -1000, 110, -35, -1000, 37, -1000, -1000, 603, -1000, -1000, + -1000, -1000, 107, 4954, 6802, -1000, -1000, 727, 473, -36, + -1000, -1000, 727, 689, -1000, 293, -1000, -1000, -1000, 5608, + 292, 6802, -1000, 290, 284, 7080, 279, -1000, 106, 517, + 762, 147, 4726, -1000, -1000, -1000, 661, 294, 104, -1000, + 367, -41, 1275, -1000, 521, 4342, 170, 274, -1000, -1000, + -1000, 5524, 7025, -1000, 4726, -65, -1000, -1000, 5553, -1000, + -1000, -1000, -1000, -1000, -1000, 167, 294, 455, -1000, -1000, + -1000, -1000, -40, -1000, 727, 331, 689, -1000, -36, -1000, + 2673, 273, 5524, 383, -1000, 788, -1000, -1000, 3562, 7606, + -1000, 4726, 40, 2515, -1000, 142, 360, 101, 602, 358, + -1000, -1000, -1000, 294, 651, 521, 610, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1117, -1000, -1000, -1000, -1000, + 3305, 7025, 100, 330, 352, -1000, 294, -1000, 693, -1000, + 329, 727, -40, -1000, -1000, 328, 266, -1000, 97, -1000, + 5524, 151, 378, 261, 775, -1000, -1000, -1000, 94, -1000, + 91, -1000, 260, 521, -1000, 167, 167, 139, -1000, 959, + 647, 7446, 29, -43, -1000, -1000, 3305, -65, -1000, -1000, + 511, -1000, -67, -1000, -1000, 325, -1000, -1000, 3718, 353, + -1000, -1000, -1000, -1000, -1000, 259, 2357, 3562, -1000, -1000, + 84, -1000, 2199, 351, 337, 140, 539, -1000, -30, -1000, + -70, -32, -1000, -73, 7446, -1000, -1000, 4625, 434, 5524, + 5524, -1000, -1000, -1000, -1000, -1000, 3305, -1000, 258, -1000, + 89, 521, -1000, -1000, -1000, -39, -1000, -1000, 658, -1000, + -1000, 647, -1000, 5524, -1000, 7446, 5524, -1000, -1000, 4498, + -1000, 250, 246, 576, 592, 480, -1000, 467, -1000, -1000, + 7025, 6802, 2041, 3305, -1000, 334, -1000, 1883, 1725, -1000, + 140, -1000, -1000, 6802, -1000, 6802, 136, -1000, -1000, -1000, + -1000, 521, 7547, 7446, 238, -1000, -1000, -1000, -1000, -1000, + -1000, 294, -41, -1000, -1000, 7446, -1000, -1000, 1567, 86, + -1000, -1000, 167, 243, -1000, -1000, -1000, 1409, -1000, } var yyPgo = [...]int{ - 0, 931, 929, 14, 8, 928, 4, 29, 13, 927, - 11, 44, 78, 71, 52, 48, 926, 26, 924, 83, - 21, 82, 916, 0, 84, 915, 914, 42, 190, 32, - 19, 38, 913, 912, 79, 911, 73, 910, 5, 909, - 908, 905, 904, 15, 62, 903, 902, 100, 87, 274, - 901, 900, 899, 6, 898, 86, 41, 897, 56, 49, - 896, 895, 894, 893, 892, 99, 890, 883, 882, 881, - 88, 880, 879, 878, 10, 876, 875, 46, 39, 40, - 2, 16, 705, 43, 85, 871, 870, 868, 12, 867, - 864, 555, 862, 50, 37, 860, 858, 9, 762, 20, - 553, 855, 18, 854, 853, 36, 848, 25, 33, 846, - 45, 845, 554, 844, 839, 837, 34, 80, 1, 3, - 832, 17, 831, 821, 803, 7, 767, 752, 28, + 0, 961, 959, 15, 7, 957, 4, 29, 14, 952, + 11, 44, 79, 78, 52, 48, 951, 26, 950, 74, + 21, 83, 948, 0, 84, 946, 931, 42, 196, 32, + 19, 38, 929, 928, 73, 927, 62, 924, 5, 916, + 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, + 907, 905, 890, 8, 889, 80, 41, 887, 56, 49, + 886, 883, 882, 878, 876, 86, 875, 871, 870, 10, + 868, 87, 864, 862, 860, 12, 858, 855, 46, 39, + 40, 2, 16, 667, 43, 85, 854, 853, 848, 13, + 847, 846, 555, 844, 45, 71, 843, 840, 6, 721, + 20, 540, 839, 18, 838, 837, 36, 836, 25, 33, + 835, 37, 830, 530, 829, 828, 826, 34, 99, 1, + 3, 825, 17, 824, 817, 810, 809, 804, 28, } var yyR1 = [...]int{ @@ -1446,29 +1443,29 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 6, 6, 117, - 117, 102, 102, 10, 10, 10, 9, 9, 9, 9, + 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, + 118, 103, 103, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 98, 98, 16, 16, 18, 18, 7, 7, 108, - 108, 107, 107, 112, 112, 17, 17, 20, 20, 19, - 19, 70, 70, 118, 118, 22, 22, 22, 22, 22, + 9, 99, 99, 16, 16, 18, 18, 7, 7, 109, + 109, 108, 108, 113, 113, 17, 17, 20, 20, 19, + 19, 71, 71, 119, 119, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 103, 103, 68, 68, - 26, 26, 92, 92, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 82, 82, 14, 15, 93, 93, - 95, 95, 94, 94, 99, 99, 99, 99, 89, 89, - 88, 88, 25, 25, 86, 86, 86, 86, 110, 110, - 110, 8, 8, 90, 90, 73, 73, 69, 69, 75, - 75, 72, 72, 119, 119, 120, 120, 29, 29, 30, - 30, 81, 81, 79, 79, 79, 80, 80, 83, 83, - 71, 71, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 121, 121, 37, 37, 37, 37, 125, 125, 85, - 85, 85, 111, 111, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 87, 87, 123, 123, 122, 122, - 124, 124, 97, 97, 97, 97, 97, 97, 109, 109, - 43, 43, 104, 104, 74, 21, 67, 67, 44, 105, - 105, 106, 106, 46, 45, 45, 32, 32, 32, 32, + 11, 11, 11, 11, 11, 11, 104, 104, 68, 68, + 26, 26, 93, 93, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 83, 83, 14, 15, 94, 94, + 96, 96, 95, 95, 100, 100, 100, 100, 90, 90, + 89, 89, 25, 25, 87, 87, 87, 87, 111, 111, + 111, 8, 8, 91, 91, 74, 74, 70, 70, 76, + 76, 73, 73, 120, 120, 121, 121, 29, 29, 30, + 30, 82, 82, 80, 80, 80, 81, 81, 84, 84, + 72, 72, 31, 31, 33, 33, 34, 35, 35, 36, + 36, 122, 122, 37, 37, 37, 37, 69, 69, 86, + 86, 86, 112, 112, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 88, 88, 124, 124, 123, 123, + 125, 125, 98, 98, 98, 98, 98, 98, 110, 110, + 43, 43, 105, 105, 75, 21, 67, 67, 44, 106, + 106, 107, 107, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1476,19 +1473,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 91, 91, 128, 3, 3, 96, 96, - 113, 113, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 101, 101, 101, 84, 84, 58, + 32, 32, 32, 92, 92, 128, 3, 3, 97, 97, + 114, 114, 53, 53, 54, 54, 54, 54, 47, 47, + 48, 48, 51, 51, 102, 102, 102, 85, 85, 58, 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, - 64, 64, 55, 55, 55, 56, 56, 56, 116, 77, - 77, 115, 115, 76, 76, 76, 76, 76, 76, 76, - 100, 100, 100, 100, 65, 65, 65, 65, 65, 65, + 64, 64, 55, 55, 55, 56, 56, 56, 117, 78, + 78, 116, 116, 77, 77, 77, 77, 77, 77, 77, + 101, 101, 101, 101, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 114, 114, 78, + 50, 50, 115, 115, 79, } var yyR2 = [...]int{ @@ -1545,49 +1542,49 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -127, -117, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -69, -72, 21, 20, 23, + -1000, -127, -118, -9, 2, -11, -12, -13, -14, -15, + 52, 80, 45, 39, 144, -70, -73, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -73, -75, -28, -32, -82, 7, -62, -63, + 54, 55, -74, -76, -28, -32, -83, 7, -62, -63, -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -52, 143, 97, 98, 107, -91, 100, 101, + 6, 158, -52, 143, 97, 98, 107, -92, 100, 101, -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -102, 83, 148, 83, -102, 144, 10, - -18, -98, -112, -102, 83, 37, 39, -19, -20, -70, - -21, 10, -118, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -91, -36, + -61, 61, 18, -103, 83, 148, 83, -103, 144, 10, + -18, -99, -113, -103, 83, 37, 39, -19, -20, -71, + -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, + -23, 99, -24, -24, -33, -34, -49, -35, -92, -36, 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -82, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -83, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -116, -115, -77, -76, -23, 153, + 150, 144, 58, 148, -117, -116, -78, -77, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -101, 17, -100, -65, 12, + -23, -23, -51, 148, -23, -102, 17, -101, -65, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -100, -100, 17, -3, 144, -49, - -83, 148, -83, 148, 83, -102, 149, -102, 146, 144, - -117, 146, -16, -112, -102, 83, 146, 160, 83, 29, - -102, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -105, -106, -23, + -23, -23, 17, 76, -101, -101, 17, -3, 144, -49, + -84, 148, -84, 148, 83, -103, 149, -103, 146, 144, + -118, 146, -16, -113, -103, 83, 146, 160, 83, 29, + -103, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -106, -107, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -92, -27, -28, -23, -70, -118, 146, 146, 10, - -128, 10, -93, 56, -128, -95, 56, 148, -11, 148, + -23, -93, -27, -28, -23, -71, -119, 146, 146, 10, + -128, 10, -94, 56, -128, -96, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, - -56, 10, 144, -49, -116, 151, 160, 59, -28, -23, - 148, -23, -116, 149, -24, 143, -65, -65, 17, 150, + -56, 10, 144, -49, -117, 151, 160, 59, -28, -23, + 148, -23, -117, 149, -24, 143, -65, -65, 17, 150, 58, -23, 11, -28, 59, -24, -55, -6, -49, 144, 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, @@ -1597,48 +1594,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -84, -83, 79, 150, 144, 58, 79, -84, -114, -78, - -23, -23, -23, 76, 76, 142, 148, -23, 149, -71, - -31, -23, 84, -116, 10, 146, -117, 145, 146, 146, - 83, -102, -19, 83, -102, 144, 10, 83, -21, -23, + -85, -84, 79, 150, 144, 58, 79, -85, -115, -79, + -23, -23, -23, 76, 76, 142, 148, -23, 149, -72, + -31, -23, 84, -117, 10, 146, -118, 145, 146, 146, + 83, -103, -19, 83, -103, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -93, - -94, 57, -10, 144, -128, -125, -10, -23, -23, -118, - -23, 149, 151, 145, -83, -23, 149, 162, -77, -23, - 153, 60, -116, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -83, -23, - -83, -49, -24, -23, -56, -49, -93, -7, 160, 149, - 149, -119, -120, -29, -30, -81, -79, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -108, - -17, -20, -98, 144, -128, 149, -90, -11, 147, -23, - -105, -23, -86, 144, 147, -23, 149, -27, -99, -28, - 153, 60, 150, -25, -11, 147, -103, 148, -119, -94, - -128, -125, -121, 144, 160, 149, 149, 96, -11, 147, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -94, + -95, 57, -10, 144, -128, -69, -10, -23, -23, -119, + -23, 149, 151, 145, -84, -23, 149, 162, -78, -23, + 153, 60, -117, 149, 151, 149, -66, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -23, 151, -84, -23, + -84, -49, -24, -23, -56, -49, -94, -7, 160, 149, + 149, -120, -121, -29, -30, -82, -80, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -109, + -17, -20, -99, 144, -128, 149, -91, -11, 147, -23, + -106, -23, -87, 144, 147, -23, 149, -27, -100, -28, + 153, 60, 150, -25, -11, 147, -104, 148, -120, -95, + -128, -69, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -94, 149, -78, 149, 160, -1, 153, -79, - 149, -31, -107, -20, 144, -7, 160, -20, -108, 146, - -118, 149, 146, -110, 146, -110, 146, 146, 149, 59, - -28, 148, -116, -118, -26, 42, 43, -119, 149, -128, - 144, 145, -37, -123, -122, 45, -124, 48, -97, 104, - 103, 102, 99, 100, 101, -121, -10, -11, 147, 146, - -118, -23, -116, 151, -128, -80, 147, -29, -2, 84, - -7, 160, -107, 145, -17, -7, 22, 146, -105, 145, - 32, 33, -110, 31, -110, -88, -11, 147, -99, -28, - -116, 151, 28, 148, 144, 149, -96, 45, 144, -121, - -30, 39, 37, -125, -97, 145, -118, 149, 145, 144, - -128, -81, 12, 145, -20, -7, 145, 146, 149, -23, - -8, 147, 146, 145, 146, 31, -118, 149, 149, 146, - -68, -10, -118, -80, -80, 148, -121, 145, -109, -43, - 12, -104, -74, -6, -3, -85, 146, 144, -121, 59, - 162, 145, -89, -11, 147, -8, -118, 146, 26, -88, - 12, 161, 145, 144, 144, -113, -53, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -111, + 151, 145, -95, 149, -79, 149, 160, -1, 153, -80, + 149, -31, -108, -20, 144, -7, 160, -20, -109, 146, + -119, 149, 146, -111, 146, -111, 146, 146, 149, 59, + -28, 148, -117, -119, -26, 42, 43, -120, 149, -128, + 144, 145, -37, -124, -123, 45, -125, 48, -98, 104, + 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, + -119, -23, -117, 151, -128, -81, 147, -29, -2, 84, + -7, 160, -108, 145, -17, -7, 22, 146, -106, 145, + 32, 33, -111, 31, -111, -89, -11, 147, -100, -28, + -117, 151, 28, 148, 144, 149, -97, 45, 144, -122, + -30, 39, 37, -69, -98, 145, -119, 149, 145, 144, + -128, -82, 12, 145, -20, -7, 145, 146, 149, -23, + -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, + -68, -10, -119, -81, -81, 148, -122, 145, -110, -43, + 12, -105, -75, -6, -3, -86, 146, 144, -122, 59, + 162, 145, -90, -11, 147, -8, -119, 146, 26, -89, + 12, 161, 145, 144, 144, -114, -53, 12, 153, 145, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -112, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, - -23, -23, -118, -118, 146, 149, -10, -118, -118, 149, - 160, 12, -43, -23, -74, -23, -128, 145, -38, 146, + -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, + 160, 12, -43, -23, -75, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -125, 10, -4, -97, -6, 146, -118, -119, - -6, 145, 149, -80, -87, 146, 144, -118, 145, + -128, 148, -69, 10, -4, -98, -6, 146, -119, -120, + -6, 145, 149, -81, -88, 146, 144, -119, 145, } var yyDef = [...]int{ @@ -2114,7 +2111,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:291 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2125,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:309 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:311 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:328 + // line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:335 + // line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2600,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:346 + // line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:353 + // line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2620,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:365 + // line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2633,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:379 + // line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2644,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:388 + // line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2657,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:399 + // line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2669,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 + // line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 + // line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 + // line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 + // line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 + // line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:433 + // line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:437 + // line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2720,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:449 + // line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2738,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:465 + // line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2758,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:483 + // line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2772,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:495 + // line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2784,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:505 + // line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2797,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:516 + // line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2810,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:527 + // line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2824,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:539 + // line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2838,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:554 + // line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2850,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:564 + // line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2862,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:577 + // line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2886,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:599 + // line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2909,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:623 + // line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2931,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:643 + // line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2954,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:667 + // line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:671 + // line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:678 + // line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2974,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:684 + // line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:691 + // line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2988,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:697 + // line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:704 + // line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -3002,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:710 + // line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:717 + // line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:721 + // line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3024,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:732 + // line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3040,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:746 + // line internal/php7/php7.y:743 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3064,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:771 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:775 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3080,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:786 + // line internal/php7/php7.y:783 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3089,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:793 + // line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3097,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:802 + // line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3110,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:813 + // line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:820 + // line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:825 + // line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:829 + // line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:833 + // line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 + // line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:841 + // line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:845 + // line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3167,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:859 + // line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3180,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 + // line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:874 + // line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:878 + // line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3204,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:888 + // line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3221,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:903 + // line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3237,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:917 + // line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3249,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:927 + // line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3262,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:938 + // line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3275,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:949 + // line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3288,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:960 + // line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3298,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:968 + // line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3308,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:976 + // line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3318,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:984 + // line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3330,7 +3327,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:994 + // line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3344,7 +3341,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1006 + // line internal/php7/php7.y:1003 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3357,7 +3354,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1017 + // line internal/php7/php7.y:1014 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3371,7 +3368,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1029 + // line internal/php7/php7.y:1026 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3387,7 +3384,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1043 + // line internal/php7/php7.y:1040 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3400,7 +3397,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1054 + // line internal/php7/php7.y:1051 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3411,7 +3408,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1063 + // line internal/php7/php7.y:1060 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3430,7 +3427,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1080 + // line internal/php7/php7.y:1077 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3443,7 +3440,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1091 + // line internal/php7/php7.y:1088 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3462,7 +3459,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1108 + // line internal/php7/php7.y:1105 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3480,13 +3477,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1126 + // line internal/php7/php7.y:1123 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1130 + // line internal/php7/php7.y:1127 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3517,7 +3514,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1158 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3525,7 +3522,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1167 + // line internal/php7/php7.y:1164 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3534,13 +3531,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1177 + // line internal/php7/php7.y:1174 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1181 + // line internal/php7/php7.y:1178 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3554,7 +3551,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1193 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3562,7 +3559,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1199 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3571,13 +3568,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1212 + // line internal/php7/php7.y:1209 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1219 + // line internal/php7/php7.y:1216 { name := &ast.Identifier{ Node: ast.Node{ @@ -3608,31 +3605,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1251 + // line internal/php7/php7.y:1248 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1255 + // line internal/php7/php7.y:1252 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1262 + // line internal/php7/php7.y:1259 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1263 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1273 + // line internal/php7/php7.y:1270 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,8 +3644,8 @@ yydefault: IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, - Extends: yyDollar[4].ClassExtends, - Implements: yyDollar[5].ClassImplements, + Extends: yyDollar[4].node, + Implements: yyDollar[5].node, OpenCurlyBracket: yyDollar[7].token, Stmts: yyDollar[8].list, CloseCurlyBracket: yyDollar[9].token, @@ -3656,7 +3653,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1295 + // line internal/php7/php7.y:1292 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3670,8 +3667,8 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - Extends: yyDollar[3].ClassExtends, - Implements: yyDollar[4].ClassImplements, + Extends: yyDollar[3].node, + Implements: yyDollar[4].node, OpenCurlyBracket: yyDollar[6].token, Stmts: yyDollar[7].list, CloseCurlyBracket: yyDollar[8].token, @@ -3679,19 +3676,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1319 + // line internal/php7/php7.y:1316 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1323 + // line internal/php7/php7.y:1320 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1330 + // line internal/php7/php7.y:1327 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3703,7 +3700,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1340 + // line internal/php7/php7.y:1337 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3715,7 +3712,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1353 + // line internal/php7/php7.y:1350 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3736,7 +3733,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1375 + // line internal/php7/php7.y:1372 { name := &ast.Identifier{ Node: ast.Node{ @@ -3745,7 +3742,7 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } - yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].InterfaceExtends, yyDollar[6].list} + yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].node, yyDollar[6].list} // save position yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) @@ -3757,67 +3754,69 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1397 + // line internal/php7/php7.y:1394 { - yyVAL.ClassExtends = nil + yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1401 + // line internal/php7/php7.y:1398 { - yyVAL.ClassExtends = &ast.StmtClassExtends{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.ClassExtends.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassExtends, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtClassExtends{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + ExtendTkn: yyDollar[1].token, + ClassName: yyDollar[2].node, + } } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1414 + // line internal/php7/php7.y:1411 { - yyVAL.InterfaceExtends = nil + yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1418 + // line internal/php7/php7.y:1415 { - yyVAL.InterfaceExtends = &ast.StmtInterfaceExtends{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.InterfaceExtends.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.InterfaceExtends, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + }, + ExtendsTkn: yyDollar[1].token, + InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + } } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1431 + // line internal/php7/php7.y:1429 { - yyVAL.ClassImplements = nil + yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1435 + // line internal/php7/php7.y:1433 { - yyVAL.ClassImplements = &ast.StmtClassImplements{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.ClassImplements.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClassImplements, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtClassImplements{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + }, + ImplementsTkn: yyDollar[1].token, + InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + } } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1448 + // line internal/php7/php7.y:1447 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1452 + // line internal/php7/php7.y:1451 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3829,7 +3828,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1462 + // line internal/php7/php7.y:1461 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3843,7 +3842,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1474 + // line internal/php7/php7.y:1473 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3856,7 +3855,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1487 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3867,7 +3866,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1497 + // line internal/php7/php7.y:1496 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3887,7 +3886,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1518 + // line internal/php7/php7.y:1517 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3898,7 +3897,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1527 + // line internal/php7/php7.y:1526 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3918,7 +3917,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1548 + // line internal/php7/php7.y:1547 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3929,7 +3928,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1557 + // line internal/php7/php7.y:1556 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3949,7 +3948,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1578 + // line internal/php7/php7.y:1577 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3962,7 +3961,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1589 + // line internal/php7/php7.y:1588 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3976,7 +3975,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1601 + // line internal/php7/php7.y:1600 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3991,7 +3990,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1614 + // line internal/php7/php7.y:1613 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4007,13 +4006,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1631 + // line internal/php7/php7.y:1630 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1635 + // line internal/php7/php7.y:1634 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4027,7 +4026,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1647 + // line internal/php7/php7.y:1646 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4040,19 +4039,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1661 + // line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1665 + // line internal/php7/php7.y:1664 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1672 + // line internal/php7/php7.y:1671 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4063,7 +4062,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1681 + // line internal/php7/php7.y:1680 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4083,7 +4082,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1702 + // line internal/php7/php7.y:1701 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4098,7 +4097,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1715 + // line internal/php7/php7.y:1714 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4117,13 +4116,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1735 + // line internal/php7/php7.y:1734 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1739 + // line internal/php7/php7.y:1738 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4139,7 +4138,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1756 + // line internal/php7/php7.y:1755 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4161,7 +4160,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1776 + // line internal/php7/php7.y:1775 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4185,7 +4184,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1801 + // line internal/php7/php7.y:1800 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4195,7 +4194,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1809 + // line internal/php7/php7.y:1808 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4219,25 +4218,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1834 + // line internal/php7/php7.y:1833 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1838 + // line internal/php7/php7.y:1837 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1845 + // line internal/php7/php7.y:1844 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1849 + // line internal/php7/php7.y:1848 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4246,7 +4245,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1859 + // line internal/php7/php7.y:1858 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4300,7 +4299,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1911 + // line internal/php7/php7.y:1910 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4357,25 +4356,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1969 + // line internal/php7/php7.y:1968 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1973 + // line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1980 + // line internal/php7/php7.y:1979 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1984 + // line internal/php7/php7.y:1983 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4387,7 +4386,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1997 + // line internal/php7/php7.y:1996 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4399,7 +4398,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2007 + // line internal/php7/php7.y:2006 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4411,19 +4410,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2017 + // line internal/php7/php7.y:2016 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2024 + // line internal/php7/php7.y:2023 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2028 + // line internal/php7/php7.y:2027 { yyVAL.node = yyDollar[2].node @@ -4432,7 +4431,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2038 + // line internal/php7/php7.y:2037 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4444,7 +4443,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2048 + // line internal/php7/php7.y:2047 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4456,7 +4455,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2061 + // line internal/php7/php7.y:2060 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4464,7 +4463,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2067 + // line internal/php7/php7.y:2066 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4473,7 +4472,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2077 + // line internal/php7/php7.y:2076 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4484,7 +4483,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2086 + // line internal/php7/php7.y:2085 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4496,7 +4495,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2099 + // line internal/php7/php7.y:2098 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4505,7 +4504,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2106 + // line internal/php7/php7.y:2105 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4513,13 +4512,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2115 + // line internal/php7/php7.y:2114 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2122 + // line internal/php7/php7.y:2121 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4528,7 +4527,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2129 + // line internal/php7/php7.y:2128 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4536,7 +4535,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2138 + // line internal/php7/php7.y:2137 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4562,7 +4561,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2162 + // line internal/php7/php7.y:2161 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4589,19 +4588,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2190 + // line internal/php7/php7.y:2189 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2194 + // line internal/php7/php7.y:2193 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2201 + // line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4615,7 +4614,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2213 + // line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4629,19 +4628,21 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2225 + // line internal/php7/php7.y:2224 { - yyVAL.node = &ast.StmtTraitUse{ast.Node{}, yyDollar[2].list, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + UseTkn: yyDollar[1].token, + Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Adaptations: yyDollar[3].node, + } } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2235 + // line internal/php7/php7.y:2236 { name := &ast.Identifier{ Node: ast.Node{ @@ -4676,27 +4677,24 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2271 + // line internal/php7/php7.y:2272 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2275 + // line internal/php7/php7.y:2278 { - switch n := lastNode(yyDollar[1].list).(type) { - case *ast.NameName: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameFullyQualified: - n.ListSeparatorTkn = yyDollar[2].token - case *ast.NameRelative: - n.ListSeparatorTkn = yyDollar[2].token - } - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + + yyVAL.node = yyDollar[1].node } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2287 + // line internal/php7/php7.y:2288 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4707,7 +4705,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2296 + // line internal/php7/php7.y:2297 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4719,7 +4717,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2306 + // line internal/php7/php7.y:2307 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4731,19 +4729,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2319 + // line internal/php7/php7.y:2320 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2323 + // line internal/php7/php7.y:2324 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2330 + // line internal/php7/php7.y:2331 { yyVAL.node = yyDollar[1].node @@ -4753,7 +4751,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2338 + // line internal/php7/php7.y:2339 { yyVAL.node = yyDollar[1].node @@ -4763,20 +4761,21 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2349 + // line internal/php7/php7.y:2350 { - yyVAL.node = &ast.StmtTraitUsePrecedence{ast.Node{}, yyDollar[1].node, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].list) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUsePrecedence{ + Node: ast.Node{ + Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + }, + Ref: yyDollar[1].node, + InsteadofTkn: yyDollar[2].token, + Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + } } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2363 + // line internal/php7/php7.y:2365 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4796,7 +4795,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2381 + // line internal/php7/php7.y:2383 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4816,7 +4815,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2399 + // line internal/php7/php7.y:2401 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4836,7 +4835,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2417 + // line internal/php7/php7.y:2419 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4849,7 +4848,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2433 { name := &ast.Identifier{ Node: ast.Node{ @@ -4868,13 +4867,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2448 + // line internal/php7/php7.y:2450 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2455 + // line internal/php7/php7.y:2457 { target := &ast.Identifier{ Node: ast.Node{ @@ -4894,7 +4893,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2478 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4905,7 +4904,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2485 + // line internal/php7/php7.y:2487 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4918,13 +4917,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2499 + // line internal/php7/php7.y:2501 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2503 + // line internal/php7/php7.y:2505 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4938,31 +4937,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2518 + // line internal/php7/php7.y:2520 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2524 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2529 + // line internal/php7/php7.y:2531 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2533 + // line internal/php7/php7.y:2535 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2540 + // line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4974,7 +4973,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2550 + // line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4986,7 +4985,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2560 + // line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4998,7 +4997,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2570 + // line internal/php7/php7.y:2572 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5010,7 +5009,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2580 + // line internal/php7/php7.y:2582 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5022,7 +5021,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2590 + // line internal/php7/php7.y:2592 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5034,7 +5033,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2603 + // line internal/php7/php7.y:2605 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5043,13 +5042,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2612 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2617 + // line internal/php7/php7.y:2619 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5070,7 +5069,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2636 + // line internal/php7/php7.y:2638 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5092,7 +5091,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2659 + // line internal/php7/php7.y:2661 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5100,13 +5099,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2665 + // line internal/php7/php7.y:2667 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2672 + // line internal/php7/php7.y:2674 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5127,7 +5126,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2694 + // line internal/php7/php7.y:2696 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5148,7 +5147,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2716 + // line internal/php7/php7.y:2718 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5157,7 +5156,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2723 + // line internal/php7/php7.y:2725 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5165,25 +5164,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2732 + // line internal/php7/php7.y:2734 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2739 + // line internal/php7/php7.y:2741 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2745 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2750 + // line internal/php7/php7.y:2752 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5192,13 +5191,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2757 + // line internal/php7/php7.y:2759 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2764 + // line internal/php7/php7.y:2766 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5206,8 +5205,8 @@ yydefault: }, ClassTkn: yyDollar[1].token, ArgumentList: yyDollar[2].node, - Extends: yyDollar[3].ClassExtends, - Implements: yyDollar[4].ClassImplements, + Extends: yyDollar[3].node, + Implements: yyDollar[4].node, OpenCurlyBracket: yyDollar[6].token, Stmts: yyDollar[7].list, CloseCurlyBracket: yyDollar[8].token, @@ -5215,7 +5214,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2782 + // line internal/php7/php7.y:2784 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5230,7 +5229,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2795 + // line internal/php7/php7.y:2797 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5242,7 +5241,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2808 + // line internal/php7/php7.y:2810 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5259,7 +5258,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2823 + // line internal/php7/php7.y:2825 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5275,7 +5274,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2837 + // line internal/php7/php7.y:2839 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5288,7 +5287,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2848 + // line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5302,7 +5301,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2860 + // line internal/php7/php7.y:2862 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5314,7 +5313,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2872 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5327,7 +5326,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2881 + // line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5340,7 +5339,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2892 + // line internal/php7/php7.y:2894 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5353,7 +5352,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2903 + // line internal/php7/php7.y:2905 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5366,7 +5365,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2914 + // line internal/php7/php7.y:2916 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5379,7 +5378,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2925 + // line internal/php7/php7.y:2927 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5392,7 +5391,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2936 + // line internal/php7/php7.y:2938 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5405,7 +5404,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2947 + // line internal/php7/php7.y:2949 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5418,7 +5417,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2958 + // line internal/php7/php7.y:2960 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5431,7 +5430,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2971 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5444,7 +5443,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2980 + // line internal/php7/php7.y:2982 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5457,7 +5456,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2991 + // line internal/php7/php7.y:2993 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5470,7 +5469,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3002 + // line internal/php7/php7.y:3004 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5483,7 +5482,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3015 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5496,7 +5495,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3024 + // line internal/php7/php7.y:3026 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5508,7 +5507,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3034 + // line internal/php7/php7.y:3036 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5521,7 +5520,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3045 + // line internal/php7/php7.y:3047 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5533,7 +5532,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3055 + // line internal/php7/php7.y:3057 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5546,7 +5545,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3066 + // line internal/php7/php7.y:3068 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5559,7 +5558,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3077 + // line internal/php7/php7.y:3079 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5572,7 +5571,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3088 + // line internal/php7/php7.y:3090 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5585,7 +5584,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3099 + // line internal/php7/php7.y:3101 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5598,7 +5597,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3110 + // line internal/php7/php7.y:3112 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5611,7 +5610,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3121 + // line internal/php7/php7.y:3123 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5624,7 +5623,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3132 + // line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5637,7 +5636,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3143 + // line internal/php7/php7.y:3145 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5649,7 +5648,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3153 + // line internal/php7/php7.y:3155 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5662,7 +5661,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3164 + // line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5675,7 +5674,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3175 + // line internal/php7/php7.y:3177 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5688,7 +5687,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3188 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5701,7 +5700,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3197 + // line internal/php7/php7.y:3199 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5714,7 +5713,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3208 + // line internal/php7/php7.y:3210 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5727,7 +5726,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5740,7 +5739,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3230 + // line internal/php7/php7.y:3232 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5752,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3241 + // line internal/php7/php7.y:3243 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5765,7 +5764,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3253 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5777,7 +5776,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3261 + // line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5789,7 +5788,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3273 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5801,7 +5800,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3281 + // line internal/php7/php7.y:3283 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5814,7 +5813,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3292 + // line internal/php7/php7.y:3294 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5827,7 +5826,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3303 + // line internal/php7/php7.y:3305 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5840,7 +5839,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3314 + // line internal/php7/php7.y:3316 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5854,7 +5853,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3326 + // line internal/php7/php7.y:3328 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5867,7 +5866,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3337 + // line internal/php7/php7.y:3339 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5880,7 +5879,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3348 + // line internal/php7/php7.y:3350 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5893,7 +5892,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3359 + // line internal/php7/php7.y:3361 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5906,7 +5905,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3370 + // line internal/php7/php7.y:3372 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5919,7 +5918,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3381 + // line internal/php7/php7.y:3383 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5932,7 +5931,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3392 + // line internal/php7/php7.y:3394 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5949,13 +5948,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3407 + // line internal/php7/php7.y:3409 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3411 + // line internal/php7/php7.y:3413 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5969,7 +5968,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3423 + // line internal/php7/php7.y:3425 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5983,7 +5982,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3435 + // line internal/php7/php7.y:3437 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5996,13 +5995,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3446 + // line internal/php7/php7.y:3448 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3450 + // line internal/php7/php7.y:3452 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6015,7 +6014,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3461 + // line internal/php7/php7.y:3463 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6027,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3472 + // line internal/php7/php7.y:3474 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6040,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3483 + // line internal/php7/php7.y:3485 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6054,7 +6053,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3494 + // line internal/php7/php7.y:3496 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6067,7 +6066,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3507 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6080,7 +6079,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3516 + // line internal/php7/php7.y:3518 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6093,7 +6092,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3527 + // line internal/php7/php7.y:3529 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6113,7 +6112,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3545 + // line internal/php7/php7.y:3547 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6125,13 +6124,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3557 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3559 + // line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6143,7 +6142,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3569 + // line internal/php7/php7.y:3571 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6155,7 +6154,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3579 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6167,7 +6166,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3589 + // line internal/php7/php7.y:3591 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6179,7 +6178,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3599 + // line internal/php7/php7.y:3601 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6192,7 +6191,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3612 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6204,13 +6203,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3622 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3624 + // line internal/php7/php7.y:3626 { yyVAL.node = yyDollar[2].node @@ -6231,7 +6230,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3645 + // line internal/php7/php7.y:3647 { yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} @@ -6262,7 +6261,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3674 { yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} @@ -6288,25 +6287,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3702 + // line internal/php7/php7.y:3704 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3706 + // line internal/php7/php7.y:3708 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3713 + // line internal/php7/php7.y:3715 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3717 + // line internal/php7/php7.y:3719 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6320,7 +6319,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3732 + // line internal/php7/php7.y:3734 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6329,13 +6328,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3739 + // line internal/php7/php7.y:3741 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3748 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6354,7 +6353,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3763 + // line internal/php7/php7.y:3765 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6376,7 +6375,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3786 + // line internal/php7/php7.y:3788 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6388,7 +6387,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3796 + // line internal/php7/php7.y:3798 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6401,7 +6400,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3807 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6414,7 +6413,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3820 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6426,7 +6425,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3831 + // line internal/php7/php7.y:3833 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6438,31 +6437,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3843 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3848 + // line internal/php7/php7.y:3850 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3854 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3861 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3865 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6479,13 +6478,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3883 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 + // line internal/php7/php7.y:3887 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6499,25 +6498,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3897 + // line internal/php7/php7.y:3899 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3904 + // line internal/php7/php7.y:3906 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3910 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3915 + // line internal/php7/php7.y:3917 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6531,7 +6530,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3929 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6544,7 +6543,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3938 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6556,7 +6555,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3951 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6568,7 +6567,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3961 + // line internal/php7/php7.y:3963 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6580,7 +6579,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3971 + // line internal/php7/php7.y:3973 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6592,7 +6591,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3981 + // line internal/php7/php7.y:3983 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6604,7 +6603,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3991 + // line internal/php7/php7.y:3993 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6616,7 +6615,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4001 + // line internal/php7/php7.y:4003 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6628,7 +6627,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4011 + // line internal/php7/php7.y:4013 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6640,7 +6639,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4021 + // line internal/php7/php7.y:4023 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6652,7 +6651,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4031 + // line internal/php7/php7.y:4033 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6664,7 +6663,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4041 + // line internal/php7/php7.y:4043 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6676,7 +6675,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4051 + // line internal/php7/php7.y:4053 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6697,7 +6696,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4070 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6709,7 +6708,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4080 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6722,7 +6721,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4091 + // line internal/php7/php7.y:4093 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6735,19 +6734,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4102 + // line internal/php7/php7.y:4104 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4106 + // line internal/php7/php7.y:4108 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4113 + // line internal/php7/php7.y:4115 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6759,7 +6758,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4123 + // line internal/php7/php7.y:4125 { target := &ast.Identifier{ Node: ast.Node{ @@ -6779,7 +6778,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4141 + // line internal/php7/php7.y:4143 { target := &ast.Identifier{ Node: ast.Node{ @@ -6799,43 +6798,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4162 + // line internal/php7/php7.y:4164 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4166 + // line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4173 + // line internal/php7/php7.y:4175 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4177 + // line internal/php7/php7.y:4179 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4184 + // line internal/php7/php7.y:4186 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4191 + // line internal/php7/php7.y:4193 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4195 + // line internal/php7/php7.y:4197 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6852,19 +6851,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4210 + // line internal/php7/php7.y:4212 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4217 + // line internal/php7/php7.y:4219 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4223 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6881,19 +6880,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4238 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4243 + // line internal/php7/php7.y:4245 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4249 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6906,7 +6905,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4258 + // line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6919,7 +6918,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4271 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6932,7 +6931,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4280 + // line internal/php7/php7.y:4282 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6945,25 +6944,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4291 + // line internal/php7/php7.y:4293 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4300 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4302 + // line internal/php7/php7.y:4304 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4306 + // line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6976,7 +6975,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4320 + // line internal/php7/php7.y:4322 { name := &ast.Identifier{ Node: ast.Node{ @@ -6995,7 +6994,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4337 + // line internal/php7/php7.y:4339 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7009,7 +7008,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4349 + // line internal/php7/php7.y:4351 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7021,7 +7020,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4362 + // line internal/php7/php7.y:4364 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,7 +7033,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4373 + // line internal/php7/php7.y:4375 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7047,13 +7046,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4387 + // line internal/php7/php7.y:4389 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4391 + // line internal/php7/php7.y:4393 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7066,7 +7065,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4402 + // line internal/php7/php7.y:4404 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7079,7 +7078,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4415 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7092,7 +7091,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4424 + // line internal/php7/php7.y:4426 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7105,7 +7104,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4437 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7118,7 +7117,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4449 + // line internal/php7/php7.y:4451 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7130,7 +7129,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4459 + // line internal/php7/php7.y:4461 { yyVAL.node = yyDollar[2].node @@ -7140,13 +7139,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4467 + // line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4474 + // line internal/php7/php7.y:4476 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7158,7 +7157,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4486 { yyVAL.node = yyDollar[2].node @@ -7168,31 +7167,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4494 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4499 + // line internal/php7/php7.y:4501 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4506 + // line internal/php7/php7.y:4508 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4510 + // line internal/php7/php7.y:4512 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4519 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7205,7 +7204,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4528 + // line internal/php7/php7.y:4530 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7215,7 +7214,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4539 + // line internal/php7/php7.y:4541 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7228,7 +7227,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4550 + // line internal/php7/php7.y:4552 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7240,7 +7239,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4560 + // line internal/php7/php7.y:4562 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7256,7 +7255,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4576 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7270,7 +7269,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4586 + // line internal/php7/php7.y:4588 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7282,7 +7281,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4596 + // line internal/php7/php7.y:4598 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7301,7 +7300,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4615 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7318,13 +7317,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4631 + // line internal/php7/php7.y:4633 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4635 + // line internal/php7/php7.y:4637 { yyVAL.list = append( yyDollar[1].list, @@ -7339,13 +7338,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4648 + // line internal/php7/php7.y:4650 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4652 + // line internal/php7/php7.y:4654 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7360,7 +7359,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4668 + // line internal/php7/php7.y:4670 { name := &ast.Identifier{ Node: ast.Node{ @@ -7379,7 +7378,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4685 + // line internal/php7/php7.y:4687 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7401,7 +7400,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4705 + // line internal/php7/php7.y:4707 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7429,7 +7428,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4731 + // line internal/php7/php7.y:4733 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7444,7 +7443,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4744 + // line internal/php7/php7.y:4746 { name := &ast.Identifier{ Node: ast.Node{ @@ -7466,7 +7465,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4766 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7490,7 +7489,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4786 + // line internal/php7/php7.y:4788 { yyVAL.node = yyDollar[2].node @@ -7500,7 +7499,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4797 + // line internal/php7/php7.y:4799 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7512,7 +7511,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4807 + // line internal/php7/php7.y:4809 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7535,7 +7534,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4828 + // line internal/php7/php7.y:4830 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7563,7 +7562,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4854 + // line internal/php7/php7.y:4856 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7582,7 +7581,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4874 + // line internal/php7/php7.y:4876 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7600,7 +7599,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4890 + // line internal/php7/php7.y:4892 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7622,7 +7621,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4910 + // line internal/php7/php7.y:4912 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7634,7 +7633,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4920 + // line internal/php7/php7.y:4922 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7646,7 +7645,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4930 + // line internal/php7/php7.y:4932 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7668,7 +7667,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4952 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7680,7 +7679,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4960 + // line internal/php7/php7.y:4962 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7692,13 +7691,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4973 + // line internal/php7/php7.y:4975 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4977 + // line internal/php7/php7.y:4979 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7707,7 +7706,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4987 + // line internal/php7/php7.y:4989 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 5577a10..58eed16 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -18,9 +18,6 @@ import ( tkn *token.Token list []ast.Vertex - ClassExtends *ast.StmtClassExtends - ClassImplements *ast.StmtClassImplements - InterfaceExtends *ast.StmtInterfaceExtends ClosureUse *ast.ExprClosureUse } @@ -249,7 +246,7 @@ import ( %type exit_expr scalar lexical_var function_call member_name property_name %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable -%type encaps_var encaps_var_offset echo_expr_list catch_name_list +%type encaps_var encaps_var_offset echo_expr_list catch_name_list name_list %type if_stmt const_list non_empty_argument_list %type alt_if_stmt %type if_stmt_without_else @@ -265,9 +262,9 @@ import ( %type foreach_statement for_statement while_statement %type inline_function %type unset_variables -%type extends_from -%type implements_list -%type interface_extends_list +%type extends_from +%type implements_list +%type interface_extends_list %type lexical_vars %type member_modifier @@ -283,7 +280,7 @@ import ( %type array_pair_list top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list %type method_modifiers variable_modifiers -%type non_empty_member_modifiers name_list class_modifiers +%type non_empty_member_modifiers class_modifiers %% @@ -1399,13 +1396,13 @@ extends_from: } | T_EXTENDS name { - $$ = &ast.StmtClassExtends{ast.Node{}, $2}; - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtClassExtends{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + ExtendTkn: $1, + ClassName: $2, + } } ; @@ -1416,13 +1413,14 @@ interface_extends_list: } | T_EXTENDS name_list { - $$ = &ast.StmtInterfaceExtends{ast.Node{}, $2}; - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtInterfaceExtends{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + }, + ExtendsTkn: $1, + InterfaceNames: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + }; } ; @@ -1433,13 +1431,14 @@ implements_list: } | T_IMPLEMENTS name_list { - $$ = &ast.StmtClassImplements{ast.Node{}, $2}; - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtClassImplements{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + }, + ImplementsTkn: $1, + InterfaceNames: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + }; } ; @@ -2223,13 +2222,15 @@ class_statement: } | T_USE name_list trait_adaptations { - $$ = &ast.StmtTraitUse{ast.Node{}, $2, $3} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.StmtTraitUse{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + UseTkn: $1, + Traits: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Adaptations: $3, + } } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { @@ -2269,16 +2270,16 @@ class_statement: name_list: name { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | name_list ',' name { - switch n := lastNode($1).(type) { - case *ast.NameName: n.ListSeparatorTkn = $2 - case *ast.NameFullyQualified: n.ListSeparatorTkn = $2 - case *ast.NameRelative: n.ListSeparatorTkn = $2 - } - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + + $$ = $1 } ; @@ -2347,14 +2348,15 @@ trait_adaptation: trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { - $$ = &ast.StmtTraitUsePrecedence{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeNodeListPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + $$ = &ast.StmtTraitUsePrecedence{ + Node: ast.Node{ + Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + }, + Ref: $1, + InsteadofTkn: $2, + Insteadof: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index cb820b0..3c64e3d 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -242,8 +242,8 @@ type StmtClass struct { ClassTkn *token.Token ClassName Vertex ArgumentList Vertex - Extends *StmtClassExtends - Implements *StmtClassImplements + Extends Vertex + Implements Vertex OpenCurlyBracket *token.Token Stmts []Vertex CloseCurlyBracket *token.Token @@ -269,6 +269,7 @@ func (n *StmtClassConstList) Accept(v NodeVisitor) { // StmtClassExtends node type StmtClassExtends struct { Node + ExtendTkn *token.Token ClassName Vertex } @@ -279,7 +280,9 @@ func (n *StmtClassExtends) Accept(v NodeVisitor) { // StmtClassImplements node type StmtClassImplements struct { Node + ImplementsTkn *token.Token InterfaceNames []Vertex + SeparatorTkns []*token.Token } func (n *StmtClassImplements) Accept(v NodeVisitor) { @@ -582,7 +585,7 @@ func (n *StmtInlineHtml) Accept(v NodeVisitor) { type StmtInterface struct { Node InterfaceName Vertex - Extends *StmtInterfaceExtends + Extends Vertex Stmts []Vertex } @@ -593,7 +596,9 @@ func (n *StmtInterface) Accept(v NodeVisitor) { // StmtInterfaceExtends node type StmtInterfaceExtends struct { Node + ExtendsTkn *token.Token InterfaceNames []Vertex + SeparatorTkns []*token.Token } func (n *StmtInterfaceExtends) Accept(v NodeVisitor) { @@ -746,8 +751,8 @@ type StmtTrait struct { Node TraitTkn *token.Token TraitName Vertex - Extends *StmtClassExtends - Implements *StmtClassImplements + Extends Vertex + Implements Vertex OpenCurlyBracket *token.Token Stmts []Vertex CloseCurlyBracket *token.Token @@ -781,8 +786,10 @@ func (n *StmtTraitMethodRef) Accept(v NodeVisitor) { // StmtTraitUse node type StmtTraitUse struct { Node - Traits []Vertex - TraitAdaptationList Vertex + UseTkn *token.Token + Traits []Vertex + SeparatorTkns []*token.Token + Adaptations Vertex } func (n *StmtTraitUse) Accept(v NodeVisitor) { @@ -804,8 +811,10 @@ func (n *StmtTraitUseAlias) Accept(v NodeVisitor) { // StmtTraitUsePrecedence node type StmtTraitUsePrecedence struct { Node - Ref Vertex - Insteadof []Vertex + Ref Vertex + InsteadofTkn *token.Token + Insteadof []Vertex + SeparatorTkns []*token.Token } func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index b9189a0..8a6cdec 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -893,10 +893,10 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Traits", false) } - if nn.TraitAdaptationList != nil { - t.visitor.Enter("TraitAdaptationList", true) - t.Traverse(nn.TraitAdaptationList) - t.visitor.Leave("TraitAdaptationList", true) + if nn.Adaptations != nil { + t.visitor.Enter("Adaptations", true) + t.Traverse(nn.Adaptations) + t.visitor.Leave("Adaptations", true) } case *ast.StmtTraitUseAlias: if nn == nil { diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index 3eac4a1..5bc82ca 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -73,11 +73,11 @@ func (nsr *NamespaceResolver) StmtGroupUse(n *ast.StmtGroupUse) { func (nsr *NamespaceResolver) StmtClass(n *ast.StmtClass) { if n.Extends != nil { - nsr.ResolveName(n.Extends.ClassName, "") + nsr.ResolveName(n.Extends.(*ast.StmtClassExtends).ClassName, "") } if n.Implements != nil { - for _, interfaceName := range n.Implements.InterfaceNames { + for _, interfaceName := range n.Implements.(*ast.StmtClassImplements).InterfaceNames { nsr.ResolveName(interfaceName, "") } } @@ -89,7 +89,7 @@ func (nsr *NamespaceResolver) StmtClass(n *ast.StmtClass) { func (nsr *NamespaceResolver) StmtInterface(n *ast.StmtInterface) { if n.Extends != nil { - for _, interfaceName := range n.Extends.InterfaceNames { + for _, interfaceName := range n.Extends.(*ast.StmtInterfaceExtends).InterfaceNames { nsr.ResolveName(interfaceName, "") } } @@ -184,7 +184,7 @@ func (nsr *NamespaceResolver) StmtTraitUse(n *ast.StmtTraitUse) { nsr.ResolveName(t, "") } - if adaptationList, ok := n.TraitAdaptationList.(*ast.StmtTraitAdaptationList); ok { + if adaptationList, ok := n.Adaptations.(*ast.StmtTraitAdaptationList); ok { for _, a := range adaptationList.Adaptations { switch aa := a.(type) { case *ast.StmtTraitUsePrecedence: diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 943cc10..65c4cf6 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1482,12 +1482,12 @@ func (p *PrettyPrinter) printStmtClass(n ast.Vertex) { if nn.Extends != nil { io.WriteString(p.w, " extends ") - p.Print(nn.Extends.ClassName) + p.Print(nn.Extends.(*ast.StmtClassExtends).ClassName) } if nn.Implements != nil { io.WriteString(p.w, " implements ") - p.joinPrint(", ", nn.Implements.InterfaceNames) + p.joinPrint(", ", nn.Implements.(*ast.StmtClassImplements).InterfaceNames) } io.WriteString(p.w, "\n") @@ -1888,7 +1888,7 @@ func (p *PrettyPrinter) printStmtInterface(n ast.Vertex) { if nn.Extends != nil { io.WriteString(p.w, " extends ") - p.joinPrint(", ", nn.Extends.InterfaceNames) + p.joinPrint(", ", nn.Extends.(*ast.StmtInterfaceExtends).InterfaceNames) } io.WriteString(p.w, "\n") @@ -2073,7 +2073,7 @@ func (p *PrettyPrinter) printStmtTraitUse(n ast.Vertex) { io.WriteString(p.w, "use ") p.joinPrint(", ", nn.Traits) - if adaptationList, ok := nn.TraitAdaptationList.(*ast.StmtTraitAdaptationList); ok { + if adaptationList, ok := nn.Adaptations.(*ast.StmtTraitAdaptationList); ok { adaptations := adaptationList.Adaptations io.WriteString(p.w, " {\n") p.printNodes(adaptations) diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 302773a..5848f39 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2108,7 +2108,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) { } p.write([]byte("extends")) p.bufStart = " " - p.Print(nn.Extends.ClassName) + p.Print(nn.Extends.(*ast.StmtClassExtends).ClassName) } if nn.Implements != nil { @@ -2118,7 +2118,7 @@ func (p *Printer) printStmtClass(n ast.Vertex) { } p.write([]byte("implements")) p.bufStart = " " - p.joinPrintRefactored(",", nn.Implements.InterfaceNames) + p.joinPrintRefactored(",", nn.Implements.(*ast.StmtClassImplements).InterfaceNames) } @@ -2503,7 +2503,7 @@ func (p *Printer) printStmtInterface(n ast.Vertex) { } p.write([]byte("extends")) p.bufStart = " " - p.joinPrintRefactored(",", nn.Extends.InterfaceNames) + p.joinPrintRefactored(",", nn.Extends.(*ast.StmtInterfaceExtends).InterfaceNames) } p.printFreeFloating(nn, token.Name) @@ -2755,7 +2755,7 @@ func (p *Printer) printStmtTraitUse(n ast.Vertex) { p.bufStart = " " p.joinPrintRefactored(",", nn.Traits) - p.Print(nn.TraitAdaptationList) + p.Print(nn.Adaptations) p.printFreeFloating(nn, token.End) } From 2d6ae3a9a27ef6d4dbcce80405d9a42a35cd639f Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 22 Nov 2020 14:26:24 +0200 Subject: [PATCH 078/140] [refactoring] update ast structure of "ClassMethod", "Function", "ArrowFunction" and "Closure" nodes --- internal/php5/php5.go | 1193 ++++++++++++++++----------------- internal/php5/php5.y | 149 ++-- internal/php7/php7.go | 847 +++++++++++------------ internal/php7/php7.y | 187 +++--- pkg/ast/node.go | 77 ++- pkg/ast/visitor/dump.go | 30 - pkg/printer/pretty_printer.go | 8 +- pkg/printer/printer.go | 16 +- 8 files changed, 1204 insertions(+), 1303 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index d65f45d..ce30db8 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6439 +// line internal/php5/php5.y:6418 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2323,7 +2323,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:271 + // line internal/php5/php5.y:271 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2332,7 +2332,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:281 + // line internal/php5/php5.y:281 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2345,13 +2345,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:292 + // line internal/php5/php5.y:292 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:299 + // line internal/php5/php5.y:299 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2365,7 +2365,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:311 + // line internal/php5/php5.y:311 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2378,32 +2378,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:325 + // line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:330 + // line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2417,7 +2417,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:354 + // line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2435,7 +2435,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:370 + // line internal/php5/php5.y:370 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2455,7 +2455,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:388 + // line internal/php5/php5.y:388 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2469,7 +2469,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:400 + // line internal/php5/php5.y:400 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2482,7 +2482,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:411 + // line internal/php5/php5.y:411 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2502,7 +2502,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:429 + // line internal/php5/php5.y:429 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2522,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:447 + // line internal/php5/php5.y:447 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2530,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:456 + // line internal/php5/php5.y:456 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2538,13 +2538,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:462 + // line internal/php5/php5.y:462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:469 + // line internal/php5/php5.y:469 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2560,7 +2560,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:483 + // line internal/php5/php5.y:483 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2584,7 +2584,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:505 + // line internal/php5/php5.y:505 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2601,7 +2601,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:520 + // line internal/php5/php5.y:520 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2626,7 +2626,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:546 + // line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2634,13 +2634,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:552 + // line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:559 + // line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:573 + // line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2680,7 +2680,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:595 + // line internal/php5/php5.y:595 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2697,7 +2697,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:610 + // line internal/php5/php5.y:610 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2722,7 +2722,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:636 + // line internal/php5/php5.y:636 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2730,13 +2730,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:642 + // line internal/php5/php5.y:642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:649 + // line internal/php5/php5.y:649 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2752,7 +2752,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:663 + // line internal/php5/php5.y:663 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2776,7 +2776,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:685 + // line internal/php5/php5.y:685 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2793,7 +2793,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:700 + // line internal/php5/php5.y:700 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2818,7 +2818,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:726 + // line internal/php5/php5.y:726 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2844,7 +2844,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:750 + // line internal/php5/php5.y:750 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2873,7 +2873,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:780 + // line internal/php5/php5.y:780 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2886,38 +2886,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:791 + // line internal/php5/php5.y:791 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:799 + // line internal/php5/php5.y:799 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:804 + // line internal/php5/php5.y:804 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:808 + // line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:812 + // line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2931,13 +2931,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:832 + // line internal/php5/php5.y:832 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:836 + // line internal/php5/php5.y:836 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2955,7 +2955,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:855 + // line internal/php5/php5.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2968,7 +2968,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:866 + // line internal/php5/php5.y:866 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2992,7 +2992,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:888 + // line internal/php5/php5.y:888 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3018,7 +3018,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:912 + // line internal/php5/php5.y:912 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3030,7 +3030,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:922 + // line internal/php5/php5.y:922 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3047,7 +3047,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:937 + // line internal/php5/php5.y:937 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3063,7 +3063,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:951 + // line internal/php5/php5.y:951 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3075,7 +3075,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:961 + // line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3087,7 +3087,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:971 + // line internal/php5/php5.y:971 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3100,7 +3100,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:982 + // line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3112,7 +3112,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:992 + // line internal/php5/php5.y:992 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3125,7 +3125,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1003 + // line internal/php5/php5.y:1003 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3137,7 +3137,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1013 + // line internal/php5/php5.y:1013 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3150,7 +3150,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1024 + // line internal/php5/php5.y:1024 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1035 + // line internal/php5/php5.y:1035 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3177,7 +3177,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1047 + // line internal/php5/php5.y:1047 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3188,7 +3188,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1056 + // line internal/php5/php5.y:1056 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3199,7 +3199,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1065 + // line internal/php5/php5.y:1065 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3209,7 +3209,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1073 + // line internal/php5/php5.y:1073 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3221,7 +3221,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1083 + // line internal/php5/php5.y:1083 { yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} @@ -3235,7 +3235,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1095 + // line internal/php5/php5.y:1095 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3247,7 +3247,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1105 + // line internal/php5/php5.y:1105 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3267,7 +3267,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1123 + // line internal/php5/php5.y:1123 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3287,7 +3287,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1141 + // line internal/php5/php5.y:1141 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3300,7 +3300,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1152 + // line internal/php5/php5.y:1152 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3311,7 +3311,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1161 + // line internal/php5/php5.y:1161 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3330,7 +3330,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1178 + // line internal/php5/php5.y:1178 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3343,7 +3343,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1189 + // line internal/php5/php5.y:1189 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3362,13 +3362,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1209 + // line internal/php5/php5.y:1209 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1213 + // line internal/php5/php5.y:1213 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3401,13 +3401,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1247 + // line internal/php5/php5.y:1247 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1251 + // line internal/php5/php5.y:1251 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3421,31 +3421,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1266 + // line internal/php5/php5.y:1266 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1270 + // line internal/php5/php5.y:1270 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1277 + // line internal/php5/php5.y:1277 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1281 + // line internal/php5/php5.y:1281 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1288 + // line internal/php5/php5.y:1288 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3477,7 +3477,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1321 + // line internal/php5/php5.y:1321 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3485,7 +3485,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1327 + // line internal/php5/php5.y:1327 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3494,74 +3494,74 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1337 + // line internal/php5/php5.y:1337 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1344 + // line internal/php5/php5.y:1344 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1351 + // line internal/php5/php5.y:1351 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1358 + // line internal/php5/php5.y:1358 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1362 + // line internal/php5/php5.y:1362 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1369 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1373 + // line internal/php5/php5.y:1373 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1380 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, + FunctionTkn: yyDollar[1].token, + AmpersandTkn: yyDollar[2].token, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, + OpenParenthesisTkn: yyDollar[4].token, + Params: yyDollar[5].list, + CloseParenthesisTkn: yyDollar[6].token, + OpenCurlyBracketTkn: yyDollar[7].token, + Stmts: yyDollar[8].list, + CloseCurlyBracketTkn: yyDollar[9].token, } - yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[5].list, nil, yyDollar[8].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Params, yyDollar[7].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1406 + // line internal/php5/php5.y:1406 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3598,7 +3598,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1441 + // line internal/php5/php5.y:1441 { name := &ast.Identifier{ Node: ast.Node{ @@ -3619,7 +3619,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1464 + // line internal/php5/php5.y:1464 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3630,7 +3630,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1473 + // line internal/php5/php5.y:1473 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3650,7 +3650,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1491 + // line internal/php5/php5.y:1491 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3661,7 +3661,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1500 + // line internal/php5/php5.y:1500 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3681,13 +3681,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1521 + // line internal/php5/php5.y:1521 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1525 + // line internal/php5/php5.y:1525 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3699,19 +3699,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1538 + // line internal/php5/php5.y:1538 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1545 + // line internal/php5/php5.y:1545 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1549 + // line internal/php5/php5.y:1549 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3724,13 +3724,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1563 + // line internal/php5/php5.y:1563 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1567 + // line internal/php5/php5.y:1567 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3743,7 +3743,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1581 + // line internal/php5/php5.y:1581 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3751,7 +3751,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1587 + // line internal/php5/php5.y:1587 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3760,13 +3760,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1597 + // line internal/php5/php5.y:1597 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1601 + // line internal/php5/php5.y:1601 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3775,13 +3775,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1611 + // line internal/php5/php5.y:1611 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1615 + // line internal/php5/php5.y:1615 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3793,7 +3793,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1625 + // line internal/php5/php5.y:1625 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3807,7 +3807,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1640 + // line internal/php5/php5.y:1640 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3818,7 +3818,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1649 + // line internal/php5/php5.y:1649 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3838,7 +3838,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1670 + // line internal/php5/php5.y:1670 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3849,7 +3849,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1679 + // line internal/php5/php5.y:1679 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3869,7 +3869,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1701 + // line internal/php5/php5.y:1701 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3880,7 +3880,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1710 + // line internal/php5/php5.y:1710 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3900,7 +3900,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1732 + // line internal/php5/php5.y:1732 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3925,7 +3925,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1755 + // line internal/php5/php5.y:1755 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3952,7 +3952,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1784 + // line internal/php5/php5.y:1784 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3965,7 +3965,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1795 + // line internal/php5/php5.y:1795 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3979,7 +3979,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1807 + // line internal/php5/php5.y:1807 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3994,7 +3994,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1820 + // line internal/php5/php5.y:1820 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4010,13 +4010,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1838 + // line internal/php5/php5.y:1838 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1842 + // line internal/php5/php5.y:1842 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4030,7 +4030,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1854 + // line internal/php5/php5.y:1854 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4043,19 +4043,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1869 + // line internal/php5/php5.y:1869 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1873 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1881 + // line internal/php5/php5.y:1881 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4066,7 +4066,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1890 + // line internal/php5/php5.y:1890 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4086,13 +4086,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1913 + // line internal/php5/php5.y:1913 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1917 + // line internal/php5/php5.y:1917 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4107,13 +4107,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1934 + // line internal/php5/php5.y:1934 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1938 + // line internal/php5/php5.y:1938 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4135,13 +4135,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1962 + // line internal/php5/php5.y:1962 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1966 + // line internal/php5/php5.y:1966 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4153,13 +4153,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1980 + // line internal/php5/php5.y:1980 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1984 + // line internal/php5/php5.y:1984 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4178,25 +4178,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2005 + // line internal/php5/php5.y:2005 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2009 + // line internal/php5/php5.y:2009 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2016 + // line internal/php5/php5.y:2016 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2020 + // line internal/php5/php5.y:2020 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4205,7 +4205,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2030 + // line internal/php5/php5.y:2030 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4259,7 +4259,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2082 + // line internal/php5/php5.y:2082 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4316,13 +4316,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2141 + // line internal/php5/php5.y:2141 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2145 + // line internal/php5/php5.y:2145 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4334,7 +4334,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2155 + // line internal/php5/php5.y:2155 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4346,13 +4346,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2165 + // line internal/php5/php5.y:2165 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2173 + // line internal/php5/php5.y:2173 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4364,7 +4364,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2183 + // line internal/php5/php5.y:2183 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4375,7 +4375,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2192 + // line internal/php5/php5.y:2192 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4395,7 +4395,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2214 + // line internal/php5/php5.y:2214 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4403,7 +4403,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2220 + // line internal/php5/php5.y:2220 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4412,7 +4412,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2230 + // line internal/php5/php5.y:2230 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4423,7 +4423,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2239 + // line internal/php5/php5.y:2239 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4434,7 +4434,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2248 + // line internal/php5/php5.y:2248 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4446,7 +4446,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2258 + // line internal/php5/php5.y:2258 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4458,7 +4458,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2271 + // line internal/php5/php5.y:2271 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4467,7 +4467,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2278 + // line internal/php5/php5.y:2278 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4475,7 +4475,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2288 + // line internal/php5/php5.y:2288 { name := &ast.Identifier{ Node: ast.Node{ @@ -4494,7 +4494,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2305 + // line internal/php5/php5.y:2305 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4506,7 +4506,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2315 + // line internal/php5/php5.y:2315 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4520,7 +4520,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2331 + // line internal/php5/php5.y:2331 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4549,7 +4549,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2358 + // line internal/php5/php5.y:2358 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4580,7 +4580,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2387 + // line internal/php5/php5.y:2387 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4610,7 +4610,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2415 + // line internal/php5/php5.y:2415 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4642,19 +4642,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2449 + // line internal/php5/php5.y:2449 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2453 + // line internal/php5/php5.y:2453 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2461 + // line internal/php5/php5.y:2461 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4668,7 +4668,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2473 + // line internal/php5/php5.y:2473 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4676,49 +4676,42 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2479 + // line internal/php5/php5.y:2479 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2483 + // line internal/php5/php5.y:2483 { - name := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - } - yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[6].list, nil, yyDollar[8].node} - - // save position - if yyDollar[1].list == nil { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) - } else { + pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) + if yyDollar[1].list != nil { yyVAL.node.GetNode().Position = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) } - // save comments - if len(yyDollar[1].list) > 0 { - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtClassMethod{ + Node: ast.Node{ + Position: pos, + }, + Modifiers: yyDollar[1].list, + FunctionTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + OpenParenthesisTkn: yyDollar[5].token, + Params: yyDollar[6].list, + CloseParenthesisTkn: yyDollar[7].token, + Stmt: yyDollar[8].node, } - if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[7].token.SkippedTokens) } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2520 + // line internal/php5/php5.y:2513 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4732,7 +4725,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2535 + // line internal/php5/php5.y:2528 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4740,7 +4733,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2541 + // line internal/php5/php5.y:2534 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4749,7 +4742,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2551 + // line internal/php5/php5.y:2544 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4760,7 +4753,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2560 + // line internal/php5/php5.y:2553 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4772,31 +4765,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2573 + // line internal/php5/php5.y:2566 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2577 + // line internal/php5/php5.y:2570 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2584 + // line internal/php5/php5.y:2577 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2588 + // line internal/php5/php5.y:2581 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2595 + // line internal/php5/php5.y:2588 { yyVAL.node = yyDollar[1].node @@ -4806,7 +4799,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2603 + // line internal/php5/php5.y:2596 { yyVAL.node = yyDollar[1].node @@ -4816,7 +4809,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2614 + // line internal/php5/php5.y:2607 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4830,7 +4823,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2629 + // line internal/php5/php5.y:2622 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4838,7 +4831,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2635 + // line internal/php5/php5.y:2628 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4847,7 +4840,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2645 + // line internal/php5/php5.y:2638 { name := &ast.Identifier{ Node: ast.Node{ @@ -4866,13 +4859,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2662 + // line internal/php5/php5.y:2655 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2669 + // line internal/php5/php5.y:2662 { target := &ast.Identifier{ Node: ast.Node{ @@ -4892,7 +4885,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2690 + // line internal/php5/php5.y:2683 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4912,7 +4905,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2701 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4925,19 +4918,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2722 + // line internal/php5/php5.y:2715 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2726 + // line internal/php5/php5.y:2719 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2733 + // line internal/php5/php5.y:2726 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4948,7 +4941,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2742 + // line internal/php5/php5.y:2735 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4961,13 +4954,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2756 + // line internal/php5/php5.y:2749 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2760 + // line internal/php5/php5.y:2753 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4981,31 +4974,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2775 + // line internal/php5/php5.y:2768 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2772 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2786 + // line internal/php5/php5.y:2779 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2790 + // line internal/php5/php5.y:2783 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2797 + // line internal/php5/php5.y:2790 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5017,7 +5010,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2807 + // line internal/php5/php5.y:2800 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5029,7 +5022,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2817 + // line internal/php5/php5.y:2810 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5041,7 +5034,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2827 + // line internal/php5/php5.y:2820 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5053,7 +5046,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2837 + // line internal/php5/php5.y:2830 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5065,7 +5058,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2840 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5077,7 +5070,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2860 + // line internal/php5/php5.y:2853 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5100,7 +5093,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2881 + // line internal/php5/php5.y:2874 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5124,7 +5117,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2903 + // line internal/php5/php5.y:2896 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5146,7 +5139,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2923 + // line internal/php5/php5.y:2916 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5169,7 +5162,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2947 + // line internal/php5/php5.y:2940 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5195,7 +5188,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2971 + // line internal/php5/php5.y:2964 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5224,7 +5217,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3001 + // line internal/php5/php5.y:2994 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5233,7 +5226,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3008 + // line internal/php5/php5.y:3001 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5241,19 +5234,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3018 + // line internal/php5/php5.y:3011 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3022 + // line internal/php5/php5.y:3015 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3029 + // line internal/php5/php5.y:3022 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5262,25 +5255,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3036 + // line internal/php5/php5.y:3029 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3043 + // line internal/php5/php5.y:3036 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3047 + // line internal/php5/php5.y:3040 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3047 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5294,7 +5287,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3066 + // line internal/php5/php5.y:3059 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5308,37 +5301,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3081 + // line internal/php5/php5.y:3074 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3085 + // line internal/php5/php5.y:3078 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3089 + // line internal/php5/php5.y:3082 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3096 + // line internal/php5/php5.y:3089 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3100 + // line internal/php5/php5.y:3093 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3107 + // line internal/php5/php5.y:3100 { if yyDollar[3].node != nil { @@ -5354,7 +5347,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3124 + // line internal/php5/php5.y:3117 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5371,7 +5364,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3139 + // line internal/php5/php5.y:3132 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5377,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3150 + // line internal/php5/php5.y:3143 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5398,7 +5391,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3162 + // line internal/php5/php5.y:3155 { var _new *ast.ExprNew @@ -5425,7 +5418,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3187 + // line internal/php5/php5.y:3180 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5437,7 +5430,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3197 + // line internal/php5/php5.y:3190 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5442,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3207 + // line internal/php5/php5.y:3200 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5462,7 +5455,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3218 + // line internal/php5/php5.y:3211 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5475,7 +5468,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3229 + // line internal/php5/php5.y:3222 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5488,7 +5481,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3240 + // line internal/php5/php5.y:3233 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5501,7 +5494,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3251 + // line internal/php5/php5.y:3244 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5514,7 +5507,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3262 + // line internal/php5/php5.y:3255 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5527,7 +5520,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3266 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5540,7 +5533,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3284 + // line internal/php5/php5.y:3277 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5553,7 +5546,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3288 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5566,7 +5559,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3306 + // line internal/php5/php5.y:3299 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5579,7 +5572,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3317 + // line internal/php5/php5.y:3310 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5592,7 +5585,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3321 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5605,7 +5598,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3339 + // line internal/php5/php5.y:3332 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5617,7 +5610,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3349 + // line internal/php5/php5.y:3342 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5630,7 +5623,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3360 + // line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5642,7 +5635,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3363 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5655,7 +5648,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3381 + // line internal/php5/php5.y:3374 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5668,7 +5661,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3392 + // line internal/php5/php5.y:3385 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5681,7 +5674,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3403 + // line internal/php5/php5.y:3396 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5694,7 +5687,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3414 + // line internal/php5/php5.y:3407 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5707,7 +5700,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3425 + // line internal/php5/php5.y:3418 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5720,7 +5713,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3436 + // line internal/php5/php5.y:3429 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5733,7 +5726,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3447 + // line internal/php5/php5.y:3440 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5746,7 +5739,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3458 + // line internal/php5/php5.y:3451 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5751,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3468 + // line internal/php5/php5.y:3461 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5771,7 +5764,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3479 + // line internal/php5/php5.y:3472 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5784,7 +5777,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3490 + // line internal/php5/php5.y:3483 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5797,7 +5790,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3501 + // line internal/php5/php5.y:3494 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5810,7 +5803,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3512 + // line internal/php5/php5.y:3505 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5823,7 +5816,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3523 + // line internal/php5/php5.y:3516 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5836,7 +5829,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3534 + // line internal/php5/php5.y:3527 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5849,7 +5842,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3545 + // line internal/php5/php5.y:3538 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5862,7 +5855,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3556 + // line internal/php5/php5.y:3549 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5874,7 +5867,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3566 + // line internal/php5/php5.y:3559 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5886,7 +5879,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3576 + // line internal/php5/php5.y:3569 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5898,7 +5891,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3586 + // line internal/php5/php5.y:3579 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5910,7 +5903,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3596 + // line internal/php5/php5.y:3589 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5923,7 +5916,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3607 + // line internal/php5/php5.y:3600 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5936,7 +5929,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3618 + // line internal/php5/php5.y:3611 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5949,7 +5942,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3629 + // line internal/php5/php5.y:3622 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5963,7 +5956,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3641 + // line internal/php5/php5.y:3634 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5976,7 +5969,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3652 + // line internal/php5/php5.y:3645 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5989,7 +5982,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3663 + // line internal/php5/php5.y:3656 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6002,7 +5995,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3667 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6015,7 +6008,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3685 + // line internal/php5/php5.y:3678 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6028,19 +6021,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3689 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3700 + // line internal/php5/php5.y:3693 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3704 + // line internal/php5/php5.y:3697 { yyVAL.node = yyDollar[2].node @@ -6072,7 +6065,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3734 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6086,7 +6079,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3746 + // line internal/php5/php5.y:3739 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6100,13 +6093,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3758 + // line internal/php5/php5.y:3751 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3762 + // line internal/php5/php5.y:3755 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6119,7 +6112,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3773 + // line internal/php5/php5.y:3766 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6132,7 +6125,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3784 + // line internal/php5/php5.y:3777 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6145,7 +6138,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3795 + // line internal/php5/php5.y:3788 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6158,7 +6151,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3806 + // line internal/php5/php5.y:3799 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6171,7 +6164,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3817 + // line internal/php5/php5.y:3810 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6184,7 +6177,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3828 + // line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6197,7 +6190,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3839 + // line internal/php5/php5.y:3832 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6217,7 +6210,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3857 + // line internal/php5/php5.y:3850 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6229,25 +6222,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3867 + // line internal/php5/php5.y:3860 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3871 + // line internal/php5/php5.y:3864 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3875 + // line internal/php5/php5.y:3868 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3879 + // line internal/php5/php5.y:3872 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6259,7 +6252,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3889 + // line internal/php5/php5.y:3882 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6271,7 +6264,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3899 + // line internal/php5/php5.y:3892 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6283,62 +6276,46 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3909 + // line internal/php5/php5.y:3902 { - yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].ClosureUse, nil, yyDollar[8].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[7].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[9].token.SkippedTokens) - - // normalize - if yyDollar[6].ClosureUse == nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) - delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) + yyVAL.node = &ast.ExprClosure{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), + }, + FunctionTkn: yyDollar[1].token, + AmpersandTkn: yyDollar[2].token, + OpenParenthesisTkn: yyDollar[3].token, + Params: yyDollar[4].list, + CloseParenthesisTkn: yyDollar[5].token, + ClosureUse: yyDollar[6].ClosureUse, + OpenCurlyBracketTkn: yyDollar[7].token, + Stmts: yyDollar[8].list, + CloseCurlyBracketTkn: yyDollar[9].token, } } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3933 + // line internal/php5/php5.y:3919 { - yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[3].token != nil, true, yyDollar[5].list, yyDollar[7].ClosureUse, nil, yyDollar[9].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Static, yyDollar[2].token.SkippedTokens) - if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.LexicalVars, yyDollar[8].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[10].token.SkippedTokens) - - // normalize - if yyDollar[7].ClosureUse == nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVars]) - delete(yyVAL.node.GetNode().Tokens, token.LexicalVars) + yyVAL.node = &ast.ExprClosure{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token), + }, + StaticTkn: yyDollar[1].token, + FunctionTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + OpenParenthesisTkn: yyDollar[4].token, + Params: yyDollar[5].list, + CloseParenthesisTkn: yyDollar[6].token, + ClosureUse: yyDollar[7].ClosureUse, + OpenCurlyBracketTkn: yyDollar[8].token, + Stmts: yyDollar[9].list, + CloseCurlyBracketTkn: yyDollar[10].token, } } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3961 + // line internal/php5/php5.y:3940 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6350,7 +6327,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3971 + // line internal/php5/php5.y:3950 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6362,7 +6339,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3981 + // line internal/php5/php5.y:3960 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6375,7 +6352,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3992 + // line internal/php5/php5.y:3971 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6388,7 +6365,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4006 + // line internal/php5/php5.y:3985 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6401,7 +6378,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4017 + // line internal/php5/php5.y:3996 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6414,7 +6391,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4028 + // line internal/php5/php5.y:4007 { str := &ast.ScalarString{ Node: ast.Node{ @@ -6434,7 +6411,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4046 + // line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6447,7 +6424,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4060 + // line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6461,7 +6438,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4072 + // line internal/php5/php5.y:4051 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6474,19 +6451,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4086 + // line internal/php5/php5.y:4065 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4093 + // line internal/php5/php5.y:4072 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4097 + // line internal/php5/php5.y:4076 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6500,7 +6477,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4112 + // line internal/php5/php5.y:4091 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6521,7 +6498,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4131 + // line internal/php5/php5.y:4110 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6545,7 +6522,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4153 + // line internal/php5/php5.y:4132 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6565,7 +6542,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4171 + // line internal/php5/php5.y:4150 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6588,7 +6565,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4195 + // line internal/php5/php5.y:4174 { name := &ast.NameName{ Node: ast.Node{ @@ -6603,7 +6580,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4187 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6620,7 +6597,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4223 + // line internal/php5/php5.y:4202 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6636,7 +6613,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4237 + // line internal/php5/php5.y:4216 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6649,7 +6626,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4248 + // line internal/php5/php5.y:4227 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6662,7 +6639,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4259 + // line internal/php5/php5.y:4238 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6675,7 +6652,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4270 + // line internal/php5/php5.y:4249 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6688,7 +6665,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4281 + // line internal/php5/php5.y:4260 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6700,7 +6677,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4294 + // line internal/php5/php5.y:4273 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6712,7 +6689,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4304 + // line internal/php5/php5.y:4283 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6723,7 +6700,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4313 + // line internal/php5/php5.y:4292 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6736,7 +6713,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4324 + // line internal/php5/php5.y:4303 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6748,7 +6725,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4337 + // line internal/php5/php5.y:4316 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6759,7 +6736,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4346 + // line internal/php5/php5.y:4325 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6772,7 +6749,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4357 + // line internal/php5/php5.y:4336 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6784,19 +6761,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4370 + // line internal/php5/php5.y:4349 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4374 + // line internal/php5/php5.y:4353 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4381 + // line internal/php5/php5.y:4360 { yyVAL.node = yyDollar[1].node @@ -6837,25 +6814,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4399 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4428 + // line internal/php5/php5.y:4407 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4432 + // line internal/php5/php5.y:4411 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4440 + // line internal/php5/php5.y:4419 { yyVAL.list = yyDollar[2].list @@ -6864,13 +6841,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4450 + // line internal/php5/php5.y:4429 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4454 + // line internal/php5/php5.y:4433 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6886,19 +6863,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4468 + // line internal/php5/php5.y:4447 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4475 + // line internal/php5/php5.y:4454 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4479 + // line internal/php5/php5.y:4458 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6912,25 +6889,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4491 + // line internal/php5/php5.y:4470 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4477 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4502 + // line internal/php5/php5.y:4481 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4509 + // line internal/php5/php5.y:4488 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6942,7 +6919,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4519 + // line internal/php5/php5.y:4498 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6954,7 +6931,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4529 + // line internal/php5/php5.y:4508 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6966,7 +6943,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4539 + // line internal/php5/php5.y:4518 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6978,7 +6955,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4549 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6990,7 +6967,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4559 + // line internal/php5/php5.y:4538 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7002,7 +6979,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4569 + // line internal/php5/php5.y:4548 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7014,7 +6991,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4579 + // line internal/php5/php5.y:4558 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7026,7 +7003,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4589 + // line internal/php5/php5.y:4568 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7038,7 +7015,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4599 + // line internal/php5/php5.y:4578 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7050,7 +7027,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4588 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7071,7 +7048,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4628 + // line internal/php5/php5.y:4607 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7083,7 +7060,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4641 + // line internal/php5/php5.y:4620 { target := &ast.Identifier{ Node: ast.Node{ @@ -7103,25 +7080,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4662 + // line internal/php5/php5.y:4641 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4669 + // line internal/php5/php5.y:4648 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4673 + // line internal/php5/php5.y:4652 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4677 + // line internal/php5/php5.y:4656 { name := &ast.NameName{ Node: ast.Node{ @@ -7136,7 +7113,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4690 + // line internal/php5/php5.y:4669 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7153,7 +7130,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4705 + // line internal/php5/php5.y:4684 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7169,7 +7146,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4719 + // line internal/php5/php5.y:4698 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7183,7 +7160,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4731 + // line internal/php5/php5.y:4710 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7196,13 +7173,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4742 + // line internal/php5/php5.y:4721 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4746 + // line internal/php5/php5.y:4725 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7214,13 +7191,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4756 + // line internal/php5/php5.y:4735 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4763 + // line internal/php5/php5.y:4742 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7233,7 +7210,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4774 + // line internal/php5/php5.y:4753 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7246,7 +7223,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4785 + // line internal/php5/php5.y:4764 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7259,7 +7236,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4796 + // line internal/php5/php5.y:4775 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7272,7 +7249,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4807 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7285,7 +7262,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4818 + // line internal/php5/php5.y:4797 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7298,7 +7275,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4829 + // line internal/php5/php5.y:4808 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7311,7 +7288,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4840 + // line internal/php5/php5.y:4819 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7323,7 +7300,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4850 + // line internal/php5/php5.y:4829 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7335,7 +7312,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4860 + // line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7348,7 +7325,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4871 + // line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7361,7 +7338,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4882 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7374,7 +7351,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4893 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7387,7 +7364,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4904 + // line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7400,7 +7377,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4915 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7413,7 +7390,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4926 + // line internal/php5/php5.y:4905 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7426,7 +7403,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4937 + // line internal/php5/php5.y:4916 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7439,7 +7416,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4948 + // line internal/php5/php5.y:4927 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7452,7 +7429,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4959 + // line internal/php5/php5.y:4938 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7465,7 +7442,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4970 + // line internal/php5/php5.y:4949 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7478,7 +7455,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4981 + // line internal/php5/php5.y:4960 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7491,7 +7468,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4992 + // line internal/php5/php5.y:4971 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7504,7 +7481,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5003 + // line internal/php5/php5.y:4982 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7517,7 +7494,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5014 + // line internal/php5/php5.y:4993 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7531,7 +7508,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5026 + // line internal/php5/php5.y:5005 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7544,7 +7521,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5037 + // line internal/php5/php5.y:5016 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7557,7 +7534,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5048 + // line internal/php5/php5.y:5027 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7570,7 +7547,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5059 + // line internal/php5/php5.y:5038 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7583,7 +7560,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5070 + // line internal/php5/php5.y:5049 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7597,7 +7574,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5082 + // line internal/php5/php5.y:5061 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7611,7 +7588,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5094 + // line internal/php5/php5.y:5073 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7623,7 +7600,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5083 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7635,7 +7612,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5114 + // line internal/php5/php5.y:5093 { yyVAL.node = yyDollar[2].node @@ -7645,13 +7622,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5125 + // line internal/php5/php5.y:5104 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5108 { name := &ast.NameName{ Node: ast.Node{ @@ -7666,7 +7643,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5142 + // line internal/php5/php5.y:5121 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7683,7 +7660,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5157 + // line internal/php5/php5.y:5136 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7699,7 +7676,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5174 + // line internal/php5/php5.y:5153 { name := &ast.Identifier{ Node: ast.Node{ @@ -7718,25 +7695,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5191 + // line internal/php5/php5.y:5170 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5195 + // line internal/php5/php5.y:5174 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5199 + // line internal/php5/php5.y:5178 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5203 + // line internal/php5/php5.y:5182 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7749,7 +7726,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5214 + // line internal/php5/php5.y:5193 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7762,7 +7739,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5225 + // line internal/php5/php5.y:5204 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7774,13 +7751,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5238 + // line internal/php5/php5.y:5217 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5242 + // line internal/php5/php5.y:5221 { yyVAL.list = yyDollar[1].list @@ -7791,19 +7768,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5254 + // line internal/php5/php5.y:5233 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5258 + // line internal/php5/php5.y:5237 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5265 + // line internal/php5/php5.y:5244 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7818,7 +7795,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5257 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7832,7 +7809,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5290 + // line internal/php5/php5.y:5269 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7846,7 +7823,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5281 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7859,19 +7836,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5316 + // line internal/php5/php5.y:5295 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5299 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5327 + // line internal/php5/php5.y:5306 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7888,7 +7865,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5342 + // line internal/php5/php5.y:5321 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7905,25 +7882,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5361 + // line internal/php5/php5.y:5340 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5348 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5376 + // line internal/php5/php5.y:5355 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5383 + // line internal/php5/php5.y:5362 { yyVAL.node = yyDollar[1].node @@ -7981,25 +7958,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5439 + // line internal/php5/php5.y:5418 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5446 + // line internal/php5/php5.y:5425 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5450 + // line internal/php5/php5.y:5429 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5458 + // line internal/php5/php5.y:5437 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8013,7 +7990,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5473 + // line internal/php5/php5.y:5452 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8027,7 +8004,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5464 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8041,7 +8018,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5479 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8050,31 +8027,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5489 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5514 + // line internal/php5/php5.y:5493 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5518 + // line internal/php5/php5.y:5497 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5525 + // line internal/php5/php5.y:5504 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5529 + // line internal/php5/php5.y:5508 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8086,7 +8063,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5542 + // line internal/php5/php5.y:5521 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8099,7 +8076,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5553 + // line internal/php5/php5.y:5532 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8112,13 +8089,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5546 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5574 + // line internal/php5/php5.y:5553 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8131,7 +8108,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5585 + // line internal/php5/php5.y:5564 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8144,31 +8121,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5599 + // line internal/php5/php5.y:5578 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5603 + // line internal/php5/php5.y:5582 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5586 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5615 + // line internal/php5/php5.y:5594 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5619 + // line internal/php5/php5.y:5598 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8180,13 +8157,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5608 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5636 + // line internal/php5/php5.y:5615 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8199,7 +8176,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5647 + // line internal/php5/php5.y:5626 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8212,13 +8189,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5658 + // line internal/php5/php5.y:5637 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5666 + // line internal/php5/php5.y:5645 { name := &ast.Identifier{ Node: ast.Node{ @@ -8237,7 +8214,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5683 + // line internal/php5/php5.y:5662 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8251,25 +8228,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5698 + // line internal/php5/php5.y:5677 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5702 + // line internal/php5/php5.y:5681 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5710 + // line internal/php5/php5.y:5689 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5714 + // line internal/php5/php5.y:5693 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8279,7 +8256,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5725 + // line internal/php5/php5.y:5704 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8293,7 +8270,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5737 + // line internal/php5/php5.y:5716 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8307,7 +8284,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5749 + // line internal/php5/php5.y:5728 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8317,7 +8294,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5760 + // line internal/php5/php5.y:5739 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8329,7 +8306,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5770 + // line internal/php5/php5.y:5749 { yyVAL.node = yyDollar[2].node @@ -8342,7 +8319,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5784 + // line internal/php5/php5.y:5763 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8355,7 +8332,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5795 + // line internal/php5/php5.y:5774 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8372,7 +8349,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5813 + // line internal/php5/php5.y:5792 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8385,7 +8362,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5824 + // line internal/php5/php5.y:5803 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8395,7 +8372,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5836 + // line internal/php5/php5.y:5815 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8407,7 +8384,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5846 + // line internal/php5/php5.y:5825 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8423,19 +8400,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5860 + // line internal/php5/php5.y:5839 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5868 + // line internal/php5/php5.y:5847 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5872 + // line internal/php5/php5.y:5851 { yyVAL.list = yyDollar[1].list @@ -8450,7 +8427,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5888 + // line internal/php5/php5.y:5867 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8465,7 +8442,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5901 + // line internal/php5/php5.y:5880 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8479,7 +8456,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5913 + // line internal/php5/php5.y:5892 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8493,7 +8470,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5925 + // line internal/php5/php5.y:5904 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8506,7 +8483,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5936 + // line internal/php5/php5.y:5915 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8524,7 +8501,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5952 + // line internal/php5/php5.y:5931 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8540,7 +8517,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5966 + // line internal/php5/php5.y:5945 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8557,7 +8534,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5981 + // line internal/php5/php5.y:5960 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8572,13 +8549,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5997 + // line internal/php5/php5.y:5976 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6001 + // line internal/php5/php5.y:5980 { yyVAL.list = append( yyDollar[1].list, @@ -8593,13 +8570,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6014 + // line internal/php5/php5.y:5993 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6018 + // line internal/php5/php5.y:5997 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8614,7 +8591,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6034 + // line internal/php5/php5.y:6013 { name := &ast.Identifier{ Node: ast.Node{ @@ -8633,7 +8610,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6051 + // line internal/php5/php5.y:6030 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8655,7 +8632,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6071 + // line internal/php5/php5.y:6050 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8683,7 +8660,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6097 + // line internal/php5/php5.y:6076 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8698,7 +8675,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6110 + // line internal/php5/php5.y:6089 { name := &ast.Identifier{ Node: ast.Node{ @@ -8720,7 +8697,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6130 + // line internal/php5/php5.y:6109 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8744,7 +8721,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6152 + // line internal/php5/php5.y:6131 { yyVAL.node = yyDollar[2].node @@ -8754,7 +8731,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6163 + // line internal/php5/php5.y:6142 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8766,7 +8743,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6173 + // line internal/php5/php5.y:6152 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8795,7 +8772,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6200 + // line internal/php5/php5.y:6179 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8814,7 +8791,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6220 + // line internal/php5/php5.y:6199 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8828,7 +8805,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6232 + // line internal/php5/php5.y:6211 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8850,7 +8827,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6252 + // line internal/php5/php5.y:6231 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8872,7 +8849,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6272 + // line internal/php5/php5.y:6251 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8884,7 +8861,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6282 + // line internal/php5/php5.y:6261 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8896,7 +8873,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6292 + // line internal/php5/php5.y:6271 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8918,7 +8895,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6312 + // line internal/php5/php5.y:6291 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8930,7 +8907,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6322 + // line internal/php5/php5.y:6301 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8942,13 +8919,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6335 + // line internal/php5/php5.y:6314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6339 + // line internal/php5/php5.y:6318 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8957,19 +8934,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6349 + // line internal/php5/php5.y:6328 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6353 + // line internal/php5/php5.y:6332 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6360 + // line internal/php5/php5.y:6339 { target := &ast.Identifier{ Node: ast.Node{ @@ -8989,7 +8966,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6378 + // line internal/php5/php5.y:6357 { target := &ast.Identifier{ Node: ast.Node{ @@ -9009,7 +8986,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6399 + // line internal/php5/php5.y:6378 { target := &ast.Identifier{ Node: ast.Node{ @@ -9029,7 +9006,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6420 + // line internal/php5/php5.y:6399 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index e5d4558..a3d1ea4 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1378,26 +1378,26 @@ is_variadic: unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtFunction{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewTokensPosition($1, $9), }, - IdentifierTkn: $3, - Value: $3.Value, + FunctionTkn: $1, + AmpersandTkn: $2, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, + OpenParenthesisTkn: $4, + Params: $5, + CloseParenthesisTkn: $6, + OpenCurlyBracketTkn: $7, + Stmts: $8, + CloseCurlyBracketTkn: $9, } - $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $5, nil, $8} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $9) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.ParamList, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Params, $7.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) } ; @@ -2481,37 +2481,30 @@ class_statement: } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { - name := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - } - $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $6, nil, $8} - - // save position - if $1 == nil { - $$.GetNode().Position = position.NewTokenNodePosition($2, $8) - } else { + pos := position.NewTokenNodePosition($2, $8) + if $1 != nil { $$.GetNode().Position = position.NewNodeListNodePosition($1, $8) } - // save comments - if len($1) > 0 { - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.SkippedTokens) + $$ = &ast.StmtClassMethod{ + Node: ast.Node{ + Position: pos, + }, + Modifiers: $1, + FunctionTkn: $2, + AmpersandTkn: $3, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + OpenParenthesisTkn: $5, + Params: $6, + CloseParenthesisTkn: $7, + Stmt: $8, } - if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $7.SkippedTokens) } ; @@ -3907,51 +3900,37 @@ expr_without_variable: } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = &ast.ExprClosure{ast.Node{}, $2 != nil, false, $4, $6, nil, $8} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $9) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $7.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $9.SkippedTokens) - - // normalize - if $6 == nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) + $$ = &ast.ExprClosure{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $9), + }, + FunctionTkn: $1, + AmpersandTkn: $2, + OpenParenthesisTkn: $3, + Params: $4, + CloseParenthesisTkn: $5, + ClosureUse: $6, + OpenCurlyBracketTkn: $7, + Stmts: $8, + CloseCurlyBracketTkn: $9, } } | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = &ast.ExprClosure{ast.Node{}, $3 != nil, true, $5, $7, nil, $9} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $10) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Static, $2.SkippedTokens) - if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVars, $8.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $10.SkippedTokens) - - // normalize - if $7 == nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVars]); delete($$.GetNode().Tokens, token.LexicalVars) + $$ = &ast.ExprClosure{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $10), + }, + StaticTkn: $1, + FunctionTkn: $2, + AmpersandTkn: $3, + OpenParenthesisTkn: $4, + Params: $5, + CloseParenthesisTkn: $6, + ClosureUse: $7, + OpenCurlyBracketTkn: $8, + Stmts: $9, + CloseCurlyBracketTkn: $10, } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 0a0e9af..5d03f1b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4996 +// line internal/php7/php7.y:4969 // line yacctab:1 var yyExca = [...]int{ @@ -3576,60 +3576,56 @@ yydefault: yyDollar = yyS[yypt-11 : yypt+1] // line internal/php7/php7.y:1216 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, - } - yyVAL.node = &ast.StmtFunction{ast.Node{}, yyDollar[2].token != nil, name, yyDollar[6].list, yyDollar[8].node, yyDollar[10].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParamList, yyDollar[7].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.SkippedTokens) - - // normalize - if yyDollar[8].node == nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) - delete(yyVAL.node.GetNode().Tokens, token.ReturnType) + FunctionTkn: yyDollar[1].token, + AmpersandTkn: yyDollar[2].token, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, + OpenParenthesisTkn: yyDollar[5].token, + Params: yyDollar[6].list, + CloseParenthesisTkn: yyDollar[7].token, + ColonTkn: yyDollar[8].node.(*ast.ReturnType).ColonTkn, + ReturnType: yyDollar[8].node.(*ast.ReturnType).Type, + OpenCurlyBracketTkn: yyDollar[9].token, + Stmts: yyDollar[10].list, + CloseCurlyBracketTkn: yyDollar[11].token, } } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1248 + // line internal/php7/php7.y:1244 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1248 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1259 + // line internal/php7/php7.y:1255 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1263 + // line internal/php7/php7.y:1259 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1270 + // line internal/php7/php7.y:1266 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3653,7 +3649,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1292 + // line internal/php7/php7.y:1288 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3676,19 +3672,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1312 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1320 + // line internal/php7/php7.y:1316 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1327 + // line internal/php7/php7.y:1323 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3700,7 +3696,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1337 + // line internal/php7/php7.y:1333 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3712,7 +3708,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1350 + // line internal/php7/php7.y:1346 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3733,7 +3729,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1372 + // line internal/php7/php7.y:1368 { name := &ast.Identifier{ Node: ast.Node{ @@ -3754,13 +3750,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1394 + // line internal/php7/php7.y:1390 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1398 + // line internal/php7/php7.y:1394 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3772,13 +3768,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1411 + // line internal/php7/php7.y:1407 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1415 + // line internal/php7/php7.y:1411 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3791,13 +3787,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1429 + // line internal/php7/php7.y:1425 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1433 + // line internal/php7/php7.y:1429 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3810,13 +3806,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1447 + // line internal/php7/php7.y:1443 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1451 + // line internal/php7/php7.y:1447 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3828,7 +3824,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1461 + // line internal/php7/php7.y:1457 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3842,7 +3838,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1473 + // line internal/php7/php7.y:1469 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3855,7 +3851,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1487 + // line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3866,7 +3862,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1496 + // line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3886,7 +3882,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1517 + // line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3897,7 +3893,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1526 + // line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3917,7 +3913,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1547 + // line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3928,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1556 + // line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3948,7 +3944,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1577 + // line internal/php7/php7.y:1573 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3961,7 +3957,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1588 + // line internal/php7/php7.y:1584 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3975,7 +3971,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1600 + // line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3990,7 +3986,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1613 + // line internal/php7/php7.y:1609 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4006,13 +4002,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1626 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1634 + // line internal/php7/php7.y:1630 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4026,7 +4022,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1646 + // line internal/php7/php7.y:1642 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4039,19 +4035,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1664 + // line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1671 + // line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4062,7 +4058,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1680 + // line internal/php7/php7.y:1676 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4082,7 +4078,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1701 + // line internal/php7/php7.y:1697 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4097,7 +4093,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1714 + // line internal/php7/php7.y:1710 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4116,13 +4112,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1734 + // line internal/php7/php7.y:1730 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1738 + // line internal/php7/php7.y:1734 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4138,7 +4134,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1755 + // line internal/php7/php7.y:1751 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4160,7 +4156,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1775 + // line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4184,7 +4180,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1800 + // line internal/php7/php7.y:1796 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4194,7 +4190,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1808 + // line internal/php7/php7.y:1804 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4218,25 +4214,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1833 + // line internal/php7/php7.y:1829 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1837 + // line internal/php7/php7.y:1833 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1848 + // line internal/php7/php7.y:1844 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4245,7 +4241,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1858 + // line internal/php7/php7.y:1854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4299,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1910 + // line internal/php7/php7.y:1906 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4356,25 +4352,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1964 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1972 + // line internal/php7/php7.y:1968 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1975 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1983 + // line internal/php7/php7.y:1979 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4386,7 +4382,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1996 + // line internal/php7/php7.y:1992 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4398,7 +4394,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2006 + // line internal/php7/php7.y:2002 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4410,28 +4406,28 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2016 + // line internal/php7/php7.y:2012 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2023 + // line internal/php7/php7.y:2019 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2027 + // line internal/php7/php7.y:2023 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) + yyVAL.node = &ast.ReturnType{ + ColonTkn: yyDollar[1].token, + Type: yyDollar[2].node, + } } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2037 + // line internal/php7/php7.y:2033 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4443,7 +4439,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2047 + // line internal/php7/php7.y:2043 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4455,7 +4451,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2060 + // line internal/php7/php7.y:2056 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4463,7 +4459,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2066 + // line internal/php7/php7.y:2062 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4472,7 +4468,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2076 + // line internal/php7/php7.y:2072 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4483,7 +4479,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2081 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4495,7 +4491,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2094 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4504,7 +4500,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2105 + // line internal/php7/php7.y:2101 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4512,13 +4508,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2110 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2121 + // line internal/php7/php7.y:2117 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4527,7 +4523,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2128 + // line internal/php7/php7.y:2124 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4535,7 +4531,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2137 + // line internal/php7/php7.y:2133 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4561,7 +4557,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2161 + // line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4588,19 +4584,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2193 + // line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4614,7 +4610,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2208 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4628,7 +4624,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2224 + // line internal/php7/php7.y:2220 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4642,42 +4638,38 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2236 + // line internal/php7/php7.y:2232 { - name := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - } - yyVAL.node = &ast.StmtClassMethod{ast.Node{}, yyDollar[3].token != nil, name, yyDollar[1].list, yyDollar[7].list, yyDollar[9].node, yyDollar[10].node} - - // save position - if yyDollar[1].list == nil { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) - } else { + pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) + if yyDollar[1].list != nil { yyVAL.node.GetNode().Position = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) } - // save comments - if len(yyDollar[1].list) > 0 { - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ModifierList, yyDollar[2].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtClassMethod{ + Node: ast.Node{ + Position: pos, + }, + Modifiers: yyDollar[1].list, + FunctionTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + OpenParenthesisTkn: yyDollar[6].token, + Params: yyDollar[7].list, + CloseParenthesisTkn: yyDollar[8].token, + ColonTkn: yyDollar[9].node.(*ast.ReturnType).ColonTkn, + ReturnType: yyDollar[9].node.(*ast.ReturnType).Type, + Stmt: yyDollar[10].node, } - if yyDollar[3].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[8].token.SkippedTokens) } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2264 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4685,7 +4677,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2278 + // line internal/php7/php7.y:2270 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4694,7 +4686,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2280 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4705,7 +4697,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2297 + // line internal/php7/php7.y:2289 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4717,7 +4709,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2307 + // line internal/php7/php7.y:2299 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4729,19 +4721,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2320 + // line internal/php7/php7.y:2312 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2316 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2331 + // line internal/php7/php7.y:2323 { yyVAL.node = yyDollar[1].node @@ -4751,7 +4743,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2339 + // line internal/php7/php7.y:2331 { yyVAL.node = yyDollar[1].node @@ -4761,7 +4753,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2350 + // line internal/php7/php7.y:2342 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4775,7 +4767,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2365 + // line internal/php7/php7.y:2357 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4795,7 +4787,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2383 + // line internal/php7/php7.y:2375 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4815,7 +4807,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2401 + // line internal/php7/php7.y:2393 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4835,7 +4827,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2419 + // line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4848,7 +4840,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2433 + // line internal/php7/php7.y:2425 { name := &ast.Identifier{ Node: ast.Node{ @@ -4867,13 +4859,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2450 + // line internal/php7/php7.y:2442 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2457 + // line internal/php7/php7.y:2449 { target := &ast.Identifier{ Node: ast.Node{ @@ -4893,7 +4885,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2478 + // line internal/php7/php7.y:2470 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4904,7 +4896,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2487 + // line internal/php7/php7.y:2479 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4917,13 +4909,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2501 + // line internal/php7/php7.y:2493 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2505 + // line internal/php7/php7.y:2497 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4937,31 +4929,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2520 + // line internal/php7/php7.y:2512 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2524 + // line internal/php7/php7.y:2516 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2523 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2535 + // line internal/php7/php7.y:2527 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2542 + // line internal/php7/php7.y:2534 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4973,7 +4965,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2552 + // line internal/php7/php7.y:2544 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4985,7 +4977,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2554 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4997,7 +4989,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2564 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5009,7 +5001,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2582 + // line internal/php7/php7.y:2574 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5021,7 +5013,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2592 + // line internal/php7/php7.y:2584 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5033,7 +5025,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2605 + // line internal/php7/php7.y:2597 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5042,13 +5034,13 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2612 + // line internal/php7/php7.y:2604 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2619 + // line internal/php7/php7.y:2611 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5069,7 +5061,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2630 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -5091,7 +5083,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2661 + // line internal/php7/php7.y:2653 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5099,13 +5091,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2667 + // line internal/php7/php7.y:2659 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2674 + // line internal/php7/php7.y:2666 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5126,7 +5118,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2696 + // line internal/php7/php7.y:2688 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5147,7 +5139,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2718 + // line internal/php7/php7.y:2710 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5156,7 +5148,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2725 + // line internal/php7/php7.y:2717 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5164,25 +5156,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2734 + // line internal/php7/php7.y:2726 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2741 + // line internal/php7/php7.y:2733 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2745 + // line internal/php7/php7.y:2737 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2752 + // line internal/php7/php7.y:2744 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5191,13 +5183,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2759 + // line internal/php7/php7.y:2751 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2766 + // line internal/php7/php7.y:2758 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5214,7 +5206,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2784 + // line internal/php7/php7.y:2776 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5229,7 +5221,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2797 + // line internal/php7/php7.y:2789 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5241,7 +5233,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2810 + // line internal/php7/php7.y:2802 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5258,7 +5250,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2825 + // line internal/php7/php7.y:2817 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5274,7 +5266,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2839 + // line internal/php7/php7.y:2831 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5287,7 +5279,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2850 + // line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5301,7 +5293,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2862 + // line internal/php7/php7.y:2854 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5313,7 +5305,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2872 + // line internal/php7/php7.y:2864 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5326,7 +5318,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2875 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5339,7 +5331,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2894 + // line internal/php7/php7.y:2886 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5352,7 +5344,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2905 + // line internal/php7/php7.y:2897 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5365,7 +5357,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2916 + // line internal/php7/php7.y:2908 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5378,7 +5370,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5391,7 +5383,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2938 + // line internal/php7/php7.y:2930 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5404,7 +5396,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2949 + // line internal/php7/php7.y:2941 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5417,7 +5409,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2960 + // line internal/php7/php7.y:2952 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5430,7 +5422,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2971 + // line internal/php7/php7.y:2963 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5443,7 +5435,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2982 + // line internal/php7/php7.y:2974 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5456,7 +5448,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2993 + // line internal/php7/php7.y:2985 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5469,7 +5461,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3004 + // line internal/php7/php7.y:2996 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5482,7 +5474,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3015 + // line internal/php7/php7.y:3007 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5495,7 +5487,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3018 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5507,7 +5499,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3036 + // line internal/php7/php7.y:3028 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5520,7 +5512,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3047 + // line internal/php7/php7.y:3039 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5532,7 +5524,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3057 + // line internal/php7/php7.y:3049 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5545,7 +5537,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3060 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5558,7 +5550,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3079 + // line internal/php7/php7.y:3071 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5571,7 +5563,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3090 + // line internal/php7/php7.y:3082 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5584,7 +5576,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3093 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5597,7 +5589,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3112 + // line internal/php7/php7.y:3104 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5610,7 +5602,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3123 + // line internal/php7/php7.y:3115 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5623,7 +5615,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3126 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5636,7 +5628,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3137 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5648,7 +5640,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3155 + // line internal/php7/php7.y:3147 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5661,7 +5653,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5674,7 +5666,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3177 + // line internal/php7/php7.y:3169 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5687,7 +5679,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3188 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5700,7 +5692,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3199 + // line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,7 +5705,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3210 + // line internal/php7/php7.y:3202 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5726,7 +5718,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3221 + // line internal/php7/php7.y:3213 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5739,7 +5731,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3232 + // line internal/php7/php7.y:3224 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5752,7 +5744,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3243 + // line internal/php7/php7.y:3235 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5764,7 +5756,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3253 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5776,7 +5768,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3263 + // line internal/php7/php7.y:3255 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5788,7 +5780,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3273 + // line internal/php7/php7.y:3265 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5800,7 +5792,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3283 + // line internal/php7/php7.y:3275 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5805,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3294 + // line internal/php7/php7.y:3286 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5818,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3305 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5831,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3316 + // line internal/php7/php7.y:3308 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5853,7 +5845,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3328 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5866,7 +5858,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3339 + // line internal/php7/php7.y:3331 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5879,7 +5871,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3350 + // line internal/php7/php7.y:3342 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5892,7 +5884,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3361 + // line internal/php7/php7.y:3353 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5905,7 +5897,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3372 + // line internal/php7/php7.y:3364 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5918,7 +5910,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3383 + // line internal/php7/php7.y:3375 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5931,7 +5923,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3394 + // line internal/php7/php7.y:3386 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5948,13 +5940,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3409 + // line internal/php7/php7.y:3401 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3413 + // line internal/php7/php7.y:3405 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5968,7 +5960,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3425 + // line internal/php7/php7.y:3417 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5982,7 +5974,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3437 + // line internal/php7/php7.y:3429 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5995,13 +5987,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3448 + // line internal/php7/php7.y:3440 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3452 + // line internal/php7/php7.y:3444 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6014,7 +6006,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3463 + // line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6027,7 +6019,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6040,7 +6032,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3485 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6053,7 +6045,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3496 + // line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6066,7 +6058,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3507 + // line internal/php7/php7.y:3499 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6079,7 +6071,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3518 + // line internal/php7/php7.y:3510 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6092,7 +6084,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3529 + // line internal/php7/php7.y:3521 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6112,7 +6104,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3547 + // line internal/php7/php7.y:3539 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6124,13 +6116,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3557 + // line internal/php7/php7.y:3549 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3561 + // line internal/php7/php7.y:3553 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6142,7 +6134,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3571 + // line internal/php7/php7.y:3563 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6154,7 +6146,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3573 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6166,7 +6158,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3591 + // line internal/php7/php7.y:3583 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6178,7 +6170,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3601 + // line internal/php7/php7.y:3593 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6191,7 +6183,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3612 + // line internal/php7/php7.y:3604 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6203,109 +6195,86 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3622 + // line internal/php7/php7.y:3614 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3626 + // line internal/php7/php7.y:3618 { - yyVAL.node = yyDollar[2].node - - switch n := yyVAL.node.(type) { + switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: - n.Static = true + n.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + n.StaticTkn = yyDollar[1].token case *ast.ExprArrowFunction: - n.Static = true + n.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + n.StaticTkn = yyDollar[1].token } - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Static, yyVAL.node.GetNode().Tokens[token.Start]) - delete(yyVAL.node.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = yyDollar[2].node } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3647 + // line internal/php7/php7.y:3634 { - yyVAL.node = &ast.ExprClosure{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[5].list, yyDollar[7].ClosureUse, yyDollar[8].node, yyDollar[10].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[4].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[4].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[6].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[9].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[11].token.SkippedTokens) - - // normalize - if yyDollar[8].node == nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.LexicalVars, yyVAL.node.GetNode().Tokens[token.ReturnType]) - delete(yyVAL.node.GetNode().Tokens, token.ReturnType) - } - if yyDollar[7].ClosureUse == nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.LexicalVarList]) - delete(yyVAL.node.GetNode().Tokens, token.LexicalVarList) + yyVAL.node = &ast.ExprClosure{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), + }, + FunctionTkn: yyDollar[1].token, + AmpersandTkn: yyDollar[2].token, + OpenParenthesisTkn: yyDollar[4].token, + Params: yyDollar[5].list, + CloseParenthesisTkn: yyDollar[6].token, + ClosureUse: yyDollar[7].ClosureUse, + ColonTkn: yyDollar[8].node.(*ast.ReturnType).ColonTkn, + ReturnType: yyDollar[8].node.(*ast.ReturnType).Type, + OpenCurlyBracketTkn: yyDollar[9].token, + Stmts: yyDollar[10].list, + CloseCurlyBracketTkn: yyDollar[11].token, } } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3674 + // line internal/php7/php7.y:3653 { - yyVAL.node = &ast.ExprArrowFunction{ast.Node{}, yyDollar[2].token != nil, false, yyDollar[4].list, yyDollar[6].node, yyDollar[9].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - if yyDollar[2].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[3].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Function, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ampersand, yyDollar[3].token.SkippedTokens) - } - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ParameterList, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ReturnType, yyDollar[8].token.SkippedTokens) - - // normalize - if yyDollar[6].node == nil { - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Params, yyVAL.node.GetNode().Tokens[token.ReturnType]) - delete(yyVAL.node.GetNode().Tokens, token.ReturnType) + yyVAL.node = &ast.ExprArrowFunction{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), + }, + FnTkn: yyDollar[1].token, + AmpersandTkn: yyDollar[2].token, + OpenParenthesisTkn: yyDollar[3].token, + Params: yyDollar[4].list, + CloseParenthesisTkn: yyDollar[5].token, + ColonTkn: yyDollar[6].node.(*ast.ReturnType).ColonTkn, + ReturnType: yyDollar[6].node.(*ast.ReturnType).Type, + DoubleArrowTkn: yyDollar[8].token, + Expr: yyDollar[9].node, } } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3704 + // line internal/php7/php7.y:3677 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3681 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3715 + // line internal/php7/php7.y:3688 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3719 + // line internal/php7/php7.y:3692 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6319,7 +6288,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3734 + // line internal/php7/php7.y:3707 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6328,13 +6297,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3741 + // line internal/php7/php7.y:3714 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3748 + // line internal/php7/php7.y:3721 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6353,7 +6322,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3765 + // line internal/php7/php7.y:3738 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6375,7 +6344,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3761 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6387,7 +6356,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3798 + // line internal/php7/php7.y:3771 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6400,7 +6369,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3782 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6413,7 +6382,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3820 + // line internal/php7/php7.y:3793 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6425,7 +6394,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3833 + // line internal/php7/php7.y:3806 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6437,31 +6406,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3843 + // line internal/php7/php7.y:3816 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3850 + // line internal/php7/php7.y:3823 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3854 + // line internal/php7/php7.y:3827 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3861 + // line internal/php7/php7.y:3834 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3865 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6478,13 +6447,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3883 + // line internal/php7/php7.y:3856 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3887 + // line internal/php7/php7.y:3860 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6498,25 +6467,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3899 + // line internal/php7/php7.y:3872 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3906 + // line internal/php7/php7.y:3879 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3910 + // line internal/php7/php7.y:3883 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3917 + // line internal/php7/php7.y:3890 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6530,7 +6499,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3902 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6543,7 +6512,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3940 + // line internal/php7/php7.y:3913 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6555,7 +6524,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3926 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6567,7 +6536,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3963 + // line internal/php7/php7.y:3936 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6579,7 +6548,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3973 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6591,7 +6560,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3983 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6603,7 +6572,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3993 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6615,7 +6584,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4003 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6627,7 +6596,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4013 + // line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6639,7 +6608,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4023 + // line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6651,7 +6620,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4033 + // line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6663,7 +6632,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4043 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6675,7 +6644,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4053 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6696,7 +6665,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4045 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6708,7 +6677,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4082 + // line internal/php7/php7.y:4055 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6721,7 +6690,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4093 + // line internal/php7/php7.y:4066 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6734,19 +6703,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4104 + // line internal/php7/php7.y:4077 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4081 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4115 + // line internal/php7/php7.y:4088 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6758,7 +6727,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4125 + // line internal/php7/php7.y:4098 { target := &ast.Identifier{ Node: ast.Node{ @@ -6778,7 +6747,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4143 + // line internal/php7/php7.y:4116 { target := &ast.Identifier{ Node: ast.Node{ @@ -6798,43 +6767,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4164 + // line internal/php7/php7.y:4137 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4168 + // line internal/php7/php7.y:4141 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4175 + // line internal/php7/php7.y:4148 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4179 + // line internal/php7/php7.y:4152 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4186 + // line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4193 + // line internal/php7/php7.y:4166 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4170 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6851,19 +6820,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4212 + // line internal/php7/php7.y:4185 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4219 + // line internal/php7/php7.y:4192 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4223 + // line internal/php7/php7.y:4196 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6880,19 +6849,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4238 + // line internal/php7/php7.y:4211 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4245 + // line internal/php7/php7.y:4218 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4249 + // line internal/php7/php7.y:4222 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6905,7 +6874,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4233 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6918,7 +6887,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4271 + // line internal/php7/php7.y:4244 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6931,7 +6900,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4282 + // line internal/php7/php7.y:4255 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6944,25 +6913,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4266 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4300 + // line internal/php7/php7.y:4273 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4277 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4308 + // line internal/php7/php7.y:4281 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6975,7 +6944,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4322 + // line internal/php7/php7.y:4295 { name := &ast.Identifier{ Node: ast.Node{ @@ -6994,7 +6963,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4339 + // line internal/php7/php7.y:4312 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7008,7 +6977,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4351 + // line internal/php7/php7.y:4324 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7020,7 +6989,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4364 + // line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7033,7 +7002,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4375 + // line internal/php7/php7.y:4348 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7046,13 +7015,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4362 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4393 + // line internal/php7/php7.y:4366 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7065,7 +7034,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4404 + // line internal/php7/php7.y:4377 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7078,7 +7047,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4415 + // line internal/php7/php7.y:4388 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7091,7 +7060,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4426 + // line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7104,7 +7073,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4437 + // line internal/php7/php7.y:4410 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7117,7 +7086,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4451 + // line internal/php7/php7.y:4424 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7129,7 +7098,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4461 + // line internal/php7/php7.y:4434 { yyVAL.node = yyDollar[2].node @@ -7139,13 +7108,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4469 + // line internal/php7/php7.y:4442 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4476 + // line internal/php7/php7.y:4449 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7157,7 +7126,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4486 + // line internal/php7/php7.y:4459 { yyVAL.node = yyDollar[2].node @@ -7167,31 +7136,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4494 + // line internal/php7/php7.y:4467 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4501 + // line internal/php7/php7.y:4474 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4508 + // line internal/php7/php7.y:4481 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4512 + // line internal/php7/php7.y:4485 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4519 + // line internal/php7/php7.y:4492 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7204,7 +7173,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4530 + // line internal/php7/php7.y:4503 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7214,7 +7183,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4541 + // line internal/php7/php7.y:4514 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7227,7 +7196,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4552 + // line internal/php7/php7.y:4525 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7239,7 +7208,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4562 + // line internal/php7/php7.y:4535 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7255,7 +7224,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4576 + // line internal/php7/php7.y:4549 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7269,7 +7238,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4588 + // line internal/php7/php7.y:4561 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7281,7 +7250,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4598 + // line internal/php7/php7.y:4571 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7300,7 +7269,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4615 + // line internal/php7/php7.y:4588 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7317,13 +7286,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4633 + // line internal/php7/php7.y:4606 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4637 + // line internal/php7/php7.y:4610 { yyVAL.list = append( yyDollar[1].list, @@ -7338,13 +7307,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4650 + // line internal/php7/php7.y:4623 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4654 + // line internal/php7/php7.y:4627 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7359,7 +7328,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4670 + // line internal/php7/php7.y:4643 { name := &ast.Identifier{ Node: ast.Node{ @@ -7378,7 +7347,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4687 + // line internal/php7/php7.y:4660 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7400,7 +7369,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4707 + // line internal/php7/php7.y:4680 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7428,7 +7397,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4733 + // line internal/php7/php7.y:4706 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7443,7 +7412,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4746 + // line internal/php7/php7.y:4719 { name := &ast.Identifier{ Node: ast.Node{ @@ -7465,7 +7434,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4766 + // line internal/php7/php7.y:4739 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7489,7 +7458,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4788 + // line internal/php7/php7.y:4761 { yyVAL.node = yyDollar[2].node @@ -7499,7 +7468,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4799 + // line internal/php7/php7.y:4772 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7511,7 +7480,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4809 + // line internal/php7/php7.y:4782 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7534,7 +7503,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4830 + // line internal/php7/php7.y:4803 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7562,7 +7531,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4856 + // line internal/php7/php7.y:4829 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7581,7 +7550,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4876 + // line internal/php7/php7.y:4849 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7599,7 +7568,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4892 + // line internal/php7/php7.y:4865 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7621,7 +7590,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4912 + // line internal/php7/php7.y:4885 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7633,7 +7602,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4922 + // line internal/php7/php7.y:4895 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7645,7 +7614,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4932 + // line internal/php7/php7.y:4905 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7667,7 +7636,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4952 + // line internal/php7/php7.y:4925 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7679,7 +7648,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4962 + // line internal/php7/php7.y:4935 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7691,13 +7660,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4975 + // line internal/php7/php7.y:4948 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4979 + // line internal/php7/php7.y:4952 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7706,7 +7675,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4989 + // line internal/php7/php7.y:4962 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 58eed16..c6bc108 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1214,31 +1214,27 @@ unset_variable: function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtFunction{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewTokensPosition($1, $11), }, - IdentifierTkn: $3, - Value: $3.Value, - } - $$ = &ast.StmtFunction{ast.Node{}, $2 != nil, name, $6, $8, $10} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $11) - - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - if $2 != nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.ParamList, $7.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.SkippedTokens) - - // normalize - if $8 == nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) + FunctionTkn: $1, + AmpersandTkn: $2, + FunctionName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, + OpenParenthesisTkn: $5, + Params: $6, + CloseParenthesisTkn: $7, + ColonTkn: $8.(*ast.ReturnType).ColonTkn, + ReturnType: $8.(*ast.ReturnType).Type, + OpenCurlyBracketTkn: $9, + Stmts: $10, + CloseCurlyBracketTkn: $11, } } ; @@ -2025,10 +2021,10 @@ return_type: } | ':' type_expr { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) + $$ = &ast.ReturnType{ + ColonTkn: $1, + Type: $2, + } } ; @@ -2234,36 +2230,32 @@ class_statement: } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { - name := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - } - $$ = &ast.StmtClassMethod{ast.Node{}, $3 != nil, name, $1, $7, $9, $10} - - // save position - if $1 == nil { - $$.GetNode().Position = position.NewTokenNodePosition($2, $10) - } else { + pos := position.NewTokenNodePosition($2, $10) + if $1 != nil { $$.GetNode().Position = position.NewNodeListNodePosition($1, $10) } - // save comments - if len($1) > 0 { - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.ModifierList, $2.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Start, $2.SkippedTokens) + $$ = &ast.StmtClassMethod{ + Node: ast.Node{ + Position: pos, + }, + Modifiers: $1, + FunctionTkn: $2, + AmpersandTkn: $3, + MethodName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + OpenParenthesisTkn: $6, + Params: $7, + CloseParenthesisTkn: $8, + ColonTkn: $9.(*ast.ReturnType).ColonTkn, + ReturnType: $9.(*ast.ReturnType).Type, + Stmt: $10, } - if $3 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $8.SkippedTokens) } ; @@ -3624,74 +3616,55 @@ expr_without_variable: } | T_STATIC inline_function { - $$ = $2; - - switch n := $$.(type) { + switch n := $2.(type) { case *ast.ExprClosure : - n.Static = true; + n.Position = position.NewTokenNodePosition($1, $2) + n.StaticTkn = $1; case *ast.ExprArrowFunction : - n.Static = true; + n.Position = position.NewTokenNodePosition($1, $2) + n.StaticTkn = $1; }; - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Static, $$.GetNode().Tokens[token.Start]); delete($$.GetNode().Tokens, token.Start) - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens); + $$ = $2 } ; inline_function: T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { - $$ = &ast.ExprClosure{ast.Node{}, $2 != nil, false, $5, $7, $8, $10} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $11) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $4.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $4.SkippedTokens) - } - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $6.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $9.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $11.SkippedTokens) - - // normalize - if $8 == nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.LexicalVars, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) - } - if $7 == nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.LexicalVarList]); delete($$.GetNode().Tokens, token.LexicalVarList) + $$ = &ast.ExprClosure{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $11), + }, + FunctionTkn: $1, + AmpersandTkn: $2, + OpenParenthesisTkn: $4, + Params: $5, + CloseParenthesisTkn: $6, + ClosureUse: $7, + ColonTkn: $8.(*ast.ReturnType).ColonTkn, + ReturnType: $8.(*ast.ReturnType).Type, + OpenCurlyBracketTkn: $9, + Stmts: $10, + CloseCurlyBracketTkn: $11, } } | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr { - $$ = &ast.ExprArrowFunction{ast.Node{}, $2 != nil, false, $4, $6, $9} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $9) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - if $2 == nil { - yylex.(*Parser).setFreeFloating($$, token.Function, $3.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.Function, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Ampersand, $3.SkippedTokens) - }; - yylex.(*Parser).setFreeFloating($$, token.ParameterList, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ReturnType, $8.SkippedTokens) - - // normalize - if $6 == nil { - yylex.(*Parser).setFreeFloatingTokens($$, token.Params, $$.GetNode().Tokens[token.ReturnType]); delete($$.GetNode().Tokens, token.ReturnType) - }; + $$ = &ast.ExprArrowFunction{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $9), + }, + FnTkn: $1, + AmpersandTkn: $2, + OpenParenthesisTkn: $3, + Params: $4, + CloseParenthesisTkn: $5, + ColonTkn: $6.(*ast.ReturnType).ColonTkn, + ReturnType: $6.(*ast.ReturnType).Type, + DoubleArrowTkn: $8, + Expr: $9, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 3c64e3d..fb50e7f 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -292,12 +292,16 @@ func (n *StmtClassImplements) Accept(v NodeVisitor) { // StmtClassMethod node type StmtClassMethod struct { Node - ReturnsRef bool - MethodName Vertex - Modifiers []Vertex - Params []Vertex - ReturnType Vertex - Stmt Vertex + Modifiers []Vertex + FunctionTkn *token.Token + AmpersandTkn *token.Token + MethodName Vertex + OpenParenthesisTkn *token.Token + Params []Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + ReturnType Vertex + Stmt Vertex } func (n *StmtClassMethod) Accept(v NodeVisitor) { @@ -501,11 +505,17 @@ func (n *StmtForeach) Accept(v NodeVisitor) { // StmtFunction node type StmtFunction struct { Node - ReturnsRef bool - FunctionName Vertex - Params []Vertex - ReturnType Vertex - Stmts []Vertex + FunctionTkn *token.Token + AmpersandTkn *token.Token + FunctionName Vertex + OpenParenthesisTkn *token.Token + Params []Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + ReturnType Vertex + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtFunction) Accept(v NodeVisitor) { @@ -951,11 +961,16 @@ func (n *ExprArrayItem) Accept(v NodeVisitor) { // ExprArrowFunction node type ExprArrowFunction struct { Node - ReturnsRef bool - Static bool - Params []Vertex - ReturnType Vertex - Expr Vertex + StaticTkn *token.Token + FnTkn *token.Token + AmpersandTkn *token.Token + OpenParenthesisTkn *token.Token + Params []Vertex + CloseParenthesisTkn *token.Token + ColonTkn *token.Token + ReturnType Vertex + DoubleArrowTkn *token.Token + Expr Vertex } func (n *ExprArrowFunction) Accept(v NodeVisitor) { @@ -1006,12 +1021,18 @@ func (n *ExprClone) Accept(v NodeVisitor) { // ExprClosure node type ExprClosure struct { Node - ReturnsRef bool - Static bool - Params []Vertex - ClosureUse *ExprClosureUse - ReturnType Vertex - Stmts []Vertex + StaticTkn *token.Token + FunctionTkn *token.Token + AmpersandTkn *token.Token + OpenParenthesisTkn *token.Token + Params []Vertex + CloseParenthesisTkn *token.Token + ClosureUse *ExprClosureUse + ColonTkn *token.Token + ReturnType Vertex + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *ExprClosure) Accept(v NodeVisitor) { @@ -1947,6 +1968,8 @@ func (n *NameNamePart) Accept(v NodeVisitor) { v.NameNamePart(n) } +// TODO: move to private section + type ParserBrackets struct { Node OpenBracketTkn *token.Token @@ -1967,3 +1990,13 @@ type ParserSeparatedList struct { func (n *ParserSeparatedList) Accept(v NodeVisitor) { v.ParserSeparatedList(n) } + +type ReturnType struct { + Node + ColonTkn *token.Token + Type Vertex +} + +func (n *ReturnType) Accept(v NodeVisitor) { + // do nothing +} diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 15c3226..6586d8c 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -288,11 +288,6 @@ func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassMethod{\n") v.printNode(n.GetNode()) - - if n.ReturnsRef { - v.printIndent(v.indent) - v.print("ReturnsRef: true,\n") - } } func (v *Dump) StmtConstList(n *ast.StmtConstList) { @@ -397,11 +392,6 @@ func (v *Dump) StmtFunction(n *ast.StmtFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFunction{\n") v.printNode(n.GetNode()) - - if n.ReturnsRef { - v.printIndent(v.indent) - v.print("ReturnsRef: true,\n") - } } func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { @@ -641,16 +631,6 @@ func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrowFunction{\n") v.printNode(n.GetNode()) - - if n.ReturnsRef { - v.printIndent(v.indent) - v.print("ReturnsRef: true,\n") - } - - if n.Static { - v.printIndent(v.indent) - v.print("Static: true,\n") - } } func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { @@ -681,16 +661,6 @@ func (v *Dump) ExprClosure(n *ast.ExprClosure) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosure{\n") v.printNode(n.GetNode()) - - if n.ReturnsRef { - v.printIndent(v.indent) - v.print("ReturnsRef: true,\n") - } - - if n.Static { - v.printIndent(v.indent) - v.print("Static: true,\n") - } } func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 65c4cf6..fdd297f 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1015,13 +1015,13 @@ func (p *PrettyPrinter) printExprClosureUse(n ast.Vertex) { func (p *PrettyPrinter) printExprClosure(n ast.Vertex) { nn := n.(*ast.ExprClosure) - if nn.Static { + if nn.StaticTkn != nil { io.WriteString(p.w, "static ") } io.WriteString(p.w, "function ") - if nn.ReturnsRef { + if nn.AmpersandTkn != nil { io.WriteString(p.w, "&") } @@ -1432,7 +1432,7 @@ func (p *PrettyPrinter) printStmtClassMethod(n ast.Vertex) { } io.WriteString(p.w, "function ") - if nn.ReturnsRef { + if nn.AmpersandTkn != nil { io.WriteString(p.w, "&") } @@ -1785,7 +1785,7 @@ func (p *PrettyPrinter) printStmtFunction(n ast.Vertex) { io.WriteString(p.w, "function ") - if nn.ReturnsRef { + if nn.AmpersandTkn != nil { io.WriteString(p.w, "&") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 5848f39..ea131e5 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1405,18 +1405,18 @@ func (p *Printer) printExprArrowFunction(n ast.Vertex) { nn := n.(*ast.ExprArrowFunction) p.printFreeFloating(nn, token.Start) - if nn.Static { + if nn.StaticTkn != nil { p.write([]byte("static")) } p.printFreeFloating(nn, token.Static) - if nn.Static && n.GetNode().Tokens.IsEmpty() { + if nn.StaticTkn != nil && n.GetNode().Tokens.IsEmpty() { p.write([]byte(" ")) } p.write([]byte("fn")) p.printFreeFloating(nn, token.Function) - if nn.ReturnsRef { + if nn.AmpersandTkn != nil { p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) @@ -1496,18 +1496,18 @@ func (p *Printer) printExprClosure(n ast.Vertex) { nn := n.(*ast.ExprClosure) p.printFreeFloating(nn, token.Start) - if nn.Static { + if nn.StaticTkn != nil { p.write([]byte("static")) } p.printFreeFloating(nn, token.Static) - if nn.Static && n.GetNode().Tokens.IsEmpty() { + if nn.StaticTkn != nil && n.GetNode().Tokens.IsEmpty() { p.write([]byte(" ")) } p.write([]byte("function")) p.printFreeFloating(nn, token.Function) - if nn.ReturnsRef { + if nn.AmpersandTkn != nil { p.write([]byte("&")) } p.printFreeFloating(nn, token.Ampersand) @@ -2040,7 +2040,7 @@ func (p *Printer) printStmtClassMethod(n ast.Vertex) { p.write([]byte("function")) p.printFreeFloating(nn, token.Function) - if nn.ReturnsRef { + if nn.AmpersandTkn != nil { if nn.GetNode().Tokens.IsEmpty() { p.write([]byte(" ")) } @@ -2384,7 +2384,7 @@ func (p *Printer) printStmtFunction(n ast.Vertex) { p.write([]byte("function")) p.printFreeFloating(nn, token.Function) - if nn.ReturnsRef { + if nn.AmpersandTkn != nil { if nn.GetNode().Tokens.IsEmpty() { p.write([]byte(" ")) } From 5bd63d90ba1e18037440e7f0fb95792200e03cf0 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 22 Nov 2020 18:54:13 +0200 Subject: [PATCH 079/140] [refactoring] update ast structure of "StmtExpression", "StmtInterface" and "StmtProperty" nodes --- internal/php5/php5.go | 1232 +++++++++++++++++++++-------------------- internal/php5/php5.y | 190 +++---- internal/php7/php7.go | 1087 ++++++++++++++++++------------------ internal/php7/php7.y | 99 ++-- pkg/ast/node.go | 17 +- 5 files changed, 1320 insertions(+), 1305 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index ce30db8..a65caae 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6418 +// line internal/php5/php5.y:6420 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2323,7 +2323,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:271 +// line internal/php5/php5.y:271 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2332,7 +2332,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:281 +// line internal/php5/php5.y:281 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2345,13 +2345,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:292 +// line internal/php5/php5.y:292 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:299 +// line internal/php5/php5.y:299 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2365,7 +2365,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:311 +// line internal/php5/php5.y:311 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2378,32 +2378,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:325 +// line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:330 +// line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2417,7 +2417,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:354 +// line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2435,7 +2435,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:370 +// line internal/php5/php5.y:370 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2455,7 +2455,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:388 +// line internal/php5/php5.y:388 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2469,7 +2469,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:400 +// line internal/php5/php5.y:400 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2482,7 +2482,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:411 +// line internal/php5/php5.y:411 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2502,7 +2502,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:429 +// line internal/php5/php5.y:429 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2522,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:447 +// line internal/php5/php5.y:447 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2530,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:456 +// line internal/php5/php5.y:456 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2538,13 +2538,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:462 +// line internal/php5/php5.y:462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:469 +// line internal/php5/php5.y:469 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2560,7 +2560,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:483 +// line internal/php5/php5.y:483 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2584,7 +2584,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:505 +// line internal/php5/php5.y:505 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2601,7 +2601,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:520 +// line internal/php5/php5.y:520 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2626,7 +2626,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:546 +// line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2634,13 +2634,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:552 +// line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:559 +// line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:573 +// line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2680,7 +2680,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:595 +// line internal/php5/php5.y:595 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2697,7 +2697,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:610 +// line internal/php5/php5.y:610 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2722,7 +2722,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:636 +// line internal/php5/php5.y:636 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2730,13 +2730,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:642 +// line internal/php5/php5.y:642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:649 +// line internal/php5/php5.y:649 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2752,7 +2752,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:663 +// line internal/php5/php5.y:663 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2776,7 +2776,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:685 +// line internal/php5/php5.y:685 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2793,7 +2793,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:700 +// line internal/php5/php5.y:700 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2818,7 +2818,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:726 +// line internal/php5/php5.y:726 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2844,7 +2844,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:750 +// line internal/php5/php5.y:750 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2873,7 +2873,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:780 +// line internal/php5/php5.y:780 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2886,38 +2886,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:791 +// line internal/php5/php5.y:791 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:799 +// line internal/php5/php5.y:799 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:804 +// line internal/php5/php5.y:804 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:808 +// line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:812 +// line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:816 +// line internal/php5/php5.y:816 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2931,13 +2931,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:832 +// line internal/php5/php5.y:832 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:836 +// line internal/php5/php5.y:836 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2955,7 +2955,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:855 +// line internal/php5/php5.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2968,7 +2968,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:866 +// line internal/php5/php5.y:866 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2992,7 +2992,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:888 +// line internal/php5/php5.y:888 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3018,7 +3018,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:912 +// line internal/php5/php5.y:912 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3030,7 +3030,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:922 +// line internal/php5/php5.y:922 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3047,7 +3047,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:937 +// line internal/php5/php5.y:937 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3063,7 +3063,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:951 +// line internal/php5/php5.y:951 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3075,7 +3075,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:961 +// line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3087,7 +3087,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:971 +// line internal/php5/php5.y:971 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3100,7 +3100,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:982 +// line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3112,7 +3112,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:992 +// line internal/php5/php5.y:992 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3125,7 +3125,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1003 +// line internal/php5/php5.y:1003 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3137,7 +3137,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1013 +// line internal/php5/php5.y:1013 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3150,7 +3150,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1024 +// line internal/php5/php5.y:1024 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3163,21 +3163,19 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1035 +// line internal/php5/php5.y:1035 { - yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtExpression{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + }, + Expr: yyDollar[1].node, + SemiColonTkn: yyDollar[2].token, + } } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1047 +// line internal/php5/php5.y:1045 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3188,7 +3186,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1056 +// line internal/php5/php5.y:1054 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3199,7 +3197,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1065 +// line internal/php5/php5.y:1063 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3209,7 +3207,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1073 +// line internal/php5/php5.y:1071 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3221,21 +3219,19 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1083 +// line internal/php5/php5.y:1081 { - yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtExpression{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + }, + Expr: yyDollar[1].node, + SemiColonTkn: yyDollar[2].token, + } } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1095 +// line internal/php5/php5.y:1091 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3247,7 +3243,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1105 +// line internal/php5/php5.y:1101 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3267,7 +3263,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1123 +// line internal/php5/php5.y:1119 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3287,7 +3283,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1141 +// line internal/php5/php5.y:1137 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3300,7 +3296,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1152 +// line internal/php5/php5.y:1148 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3311,7 +3307,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1161 +// line internal/php5/php5.y:1157 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3330,7 +3326,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1178 +// line internal/php5/php5.y:1174 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3343,7 +3339,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1189 +// line internal/php5/php5.y:1185 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3362,13 +3358,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1209 +// line internal/php5/php5.y:1205 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1213 +// line internal/php5/php5.y:1209 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3401,13 +3397,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1247 +// line internal/php5/php5.y:1243 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1251 +// line internal/php5/php5.y:1247 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3421,31 +3417,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1266 +// line internal/php5/php5.y:1262 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1270 +// line internal/php5/php5.y:1266 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1277 +// line internal/php5/php5.y:1273 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1281 +// line internal/php5/php5.y:1277 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1288 +// line internal/php5/php5.y:1284 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3477,7 +3473,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1321 +// line internal/php5/php5.y:1317 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3485,7 +3481,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1327 +// line internal/php5/php5.y:1323 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3494,49 +3490,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1337 +// line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1344 +// line internal/php5/php5.y:1340 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1351 +// line internal/php5/php5.y:1347 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1358 +// line internal/php5/php5.y:1354 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1362 +// line internal/php5/php5.y:1358 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1369 +// line internal/php5/php5.y:1365 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1373 +// line internal/php5/php5.y:1369 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1380 +// line internal/php5/php5.y:1376 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3561,7 +3557,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1406 +// line internal/php5/php5.y:1402 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3598,28 +3594,29 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1441 +// line internal/php5/php5.y:1437 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, + InterfaceTkn: yyDollar[1].token, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + Extends: yyDollar[3].node, + OpenCurlyBracketTkn: yyDollar[4].token, + Stmts: yyDollar[5].list, + CloseCurlyBracketTkn: yyDollar[6].token, } - yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].node, yyDollar[5].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[6].token.SkippedTokens) } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1464 +// line internal/php5/php5.y:1461 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3630,7 +3627,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1473 +// line internal/php5/php5.y:1470 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3650,7 +3647,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1491 +// line internal/php5/php5.y:1488 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3661,7 +3658,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1500 +// line internal/php5/php5.y:1497 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3681,13 +3678,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1521 +// line internal/php5/php5.y:1518 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1525 +// line internal/php5/php5.y:1522 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3699,19 +3696,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1538 +// line internal/php5/php5.y:1535 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1545 +// line internal/php5/php5.y:1542 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1549 +// line internal/php5/php5.y:1546 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3724,13 +3721,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1563 +// line internal/php5/php5.y:1560 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1567 +// line internal/php5/php5.y:1564 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3743,7 +3740,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1581 +// line internal/php5/php5.y:1578 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3751,7 +3748,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1587 +// line internal/php5/php5.y:1584 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3760,13 +3757,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1597 +// line internal/php5/php5.y:1594 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1601 +// line internal/php5/php5.y:1598 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3775,13 +3772,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1611 +// line internal/php5/php5.y:1608 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1615 +// line internal/php5/php5.y:1612 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3793,7 +3790,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1625 +// line internal/php5/php5.y:1622 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3807,7 +3804,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1640 +// line internal/php5/php5.y:1637 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3818,7 +3815,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1649 +// line internal/php5/php5.y:1646 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3838,7 +3835,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1670 +// line internal/php5/php5.y:1667 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3849,7 +3846,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1679 +// line internal/php5/php5.y:1676 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3869,7 +3866,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1701 +// line internal/php5/php5.y:1698 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3880,7 +3877,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1710 +// line internal/php5/php5.y:1707 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3900,7 +3897,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1732 +// line internal/php5/php5.y:1729 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3925,7 +3922,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1755 +// line internal/php5/php5.y:1752 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3952,7 +3949,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1784 +// line internal/php5/php5.y:1781 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3965,7 +3962,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1795 +// line internal/php5/php5.y:1792 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3979,7 +3976,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1807 +// line internal/php5/php5.y:1804 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3994,7 +3991,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1820 +// line internal/php5/php5.y:1817 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4010,13 +4007,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1838 +// line internal/php5/php5.y:1835 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1842 +// line internal/php5/php5.y:1839 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4030,7 +4027,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1854 +// line internal/php5/php5.y:1851 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4043,19 +4040,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1869 +// line internal/php5/php5.y:1866 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1873 +// line internal/php5/php5.y:1870 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1881 +// line internal/php5/php5.y:1878 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4066,7 +4063,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1890 +// line internal/php5/php5.y:1887 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4086,13 +4083,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1913 +// line internal/php5/php5.y:1910 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1917 +// line internal/php5/php5.y:1914 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4107,13 +4104,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1934 +// line internal/php5/php5.y:1931 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1938 +// line internal/php5/php5.y:1935 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4135,13 +4132,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1962 +// line internal/php5/php5.y:1959 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1966 +// line internal/php5/php5.y:1963 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4153,13 +4150,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1980 +// line internal/php5/php5.y:1977 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1984 +// line internal/php5/php5.y:1981 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4178,25 +4175,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2005 +// line internal/php5/php5.y:2002 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2009 +// line internal/php5/php5.y:2006 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2016 +// line internal/php5/php5.y:2013 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2020 +// line internal/php5/php5.y:2017 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4205,7 +4202,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2030 +// line internal/php5/php5.y:2027 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4259,7 +4256,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2082 +// line internal/php5/php5.y:2079 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4316,13 +4313,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2141 +// line internal/php5/php5.y:2138 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2145 +// line internal/php5/php5.y:2142 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4334,7 +4331,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2155 +// line internal/php5/php5.y:2152 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4346,13 +4343,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2165 +// line internal/php5/php5.y:2162 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2173 +// line internal/php5/php5.y:2170 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4364,7 +4361,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2183 +// line internal/php5/php5.y:2180 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4375,7 +4372,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2192 +// line internal/php5/php5.y:2189 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4395,7 +4392,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2214 +// line internal/php5/php5.y:2211 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4403,7 +4400,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2220 +// line internal/php5/php5.y:2217 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4412,7 +4409,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2230 +// line internal/php5/php5.y:2227 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4423,7 +4420,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2239 +// line internal/php5/php5.y:2236 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4434,7 +4431,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2248 +// line internal/php5/php5.y:2245 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4446,7 +4443,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2258 +// line internal/php5/php5.y:2255 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4458,7 +4455,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2271 +// line internal/php5/php5.y:2268 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4467,7 +4464,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2278 +// line internal/php5/php5.y:2275 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4475,7 +4472,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2288 +// line internal/php5/php5.y:2285 { name := &ast.Identifier{ Node: ast.Node{ @@ -4494,7 +4491,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2305 +// line internal/php5/php5.y:2302 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4506,7 +4503,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2315 +// line internal/php5/php5.y:2312 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4520,7 +4517,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2331 +// line internal/php5/php5.y:2328 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4549,7 +4546,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2358 +// line internal/php5/php5.y:2355 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4580,7 +4577,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2387 +// line internal/php5/php5.y:2384 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4610,7 +4607,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2415 +// line internal/php5/php5.y:2412 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4642,19 +4639,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2449 +// line internal/php5/php5.y:2446 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2453 +// line internal/php5/php5.y:2450 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2461 +// line internal/php5/php5.y:2458 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} @@ -4668,7 +4665,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2473 +// line internal/php5/php5.y:2470 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4676,13 +4673,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2479 +// line internal/php5/php5.y:2476 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2483 +// line internal/php5/php5.y:2480 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4711,7 +4708,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2513 +// line internal/php5/php5.y:2510 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4725,7 +4722,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2528 +// line internal/php5/php5.y:2525 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4733,7 +4730,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2534 +// line internal/php5/php5.y:2531 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4742,7 +4739,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2544 +// line internal/php5/php5.y:2541 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4753,7 +4750,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2553 +// line internal/php5/php5.y:2550 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4765,31 +4762,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2566 +// line internal/php5/php5.y:2563 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2570 +// line internal/php5/php5.y:2567 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2577 +// line internal/php5/php5.y:2574 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2581 +// line internal/php5/php5.y:2578 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2588 +// line internal/php5/php5.y:2585 { yyVAL.node = yyDollar[1].node @@ -4799,7 +4796,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2596 +// line internal/php5/php5.y:2593 { yyVAL.node = yyDollar[1].node @@ -4809,7 +4806,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2607 +// line internal/php5/php5.y:2604 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4823,7 +4820,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2622 +// line internal/php5/php5.y:2619 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4831,7 +4828,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2628 +// line internal/php5/php5.y:2625 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4840,7 +4837,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2638 +// line internal/php5/php5.y:2635 { name := &ast.Identifier{ Node: ast.Node{ @@ -4859,13 +4856,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2655 +// line internal/php5/php5.y:2652 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2662 +// line internal/php5/php5.y:2659 { target := &ast.Identifier{ Node: ast.Node{ @@ -4885,7 +4882,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2683 +// line internal/php5/php5.y:2680 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4905,7 +4902,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2701 +// line internal/php5/php5.y:2698 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4918,19 +4915,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2715 +// line internal/php5/php5.y:2712 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2719 +// line internal/php5/php5.y:2716 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2726 +// line internal/php5/php5.y:2723 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4941,7 +4938,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2735 +// line internal/php5/php5.y:2732 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4954,13 +4951,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2749 +// line internal/php5/php5.y:2746 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2753 +// line internal/php5/php5.y:2750 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4974,31 +4971,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2768 +// line internal/php5/php5.y:2765 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2772 +// line internal/php5/php5.y:2769 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2779 +// line internal/php5/php5.y:2776 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2783 +// line internal/php5/php5.y:2780 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2790 +// line internal/php5/php5.y:2787 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5010,7 +5007,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2800 +// line internal/php5/php5.y:2797 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5022,7 +5019,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2810 +// line internal/php5/php5.y:2807 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5034,7 +5031,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2820 +// line internal/php5/php5.y:2817 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5046,7 +5043,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2830 +// line internal/php5/php5.y:2827 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5058,7 +5055,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2840 +// line internal/php5/php5.y:2837 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5070,99 +5067,104 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2853 +// line internal/php5/php5.y:2850 { - identifier := &ast.Identifier{ + yyVAL.list = append(yyDollar[1].list, &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, nil} - yyVAL.list = append(yyDollar[1].list, property) - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - property.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.SkippedTokens) + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, + }, + }) } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2874 +// line internal/php5/php5.y:2870 { - identifier := &ast.Identifier{ + yyVAL.list = append(yyDollar[1].list, &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[5].node} - yyVAL.list = append(yyDollar[1].list, property) - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - property.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[4].token.SkippedTokens) + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, + }, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, + }) } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2896 +// line internal/php5/php5.y:2892 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + yyVAL.list = []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + Expr: nil, }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, nil} - yyVAL.list = []ast.Vertex{property} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - property.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[1].token.SkippedTokens) } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2916 +// line internal/php5/php5.y:2915 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + yyVAL.list = []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} - yyVAL.list = []ast.Vertex{property} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - property.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Var, yyDollar[2].token.SkippedTokens) } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2940 +// line internal/php5/php5.y:2942 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5188,7 +5190,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2964 +// line internal/php5/php5.y:2966 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5217,7 +5219,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2994 +// line internal/php5/php5.y:2996 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5226,7 +5228,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3001 +// line internal/php5/php5.y:3003 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5234,19 +5236,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3011 +// line internal/php5/php5.y:3013 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3015 +// line internal/php5/php5.y:3017 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3022 +// line internal/php5/php5.y:3024 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5255,25 +5257,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3029 +// line internal/php5/php5.y:3031 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3036 +// line internal/php5/php5.y:3038 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3040 +// line internal/php5/php5.y:3042 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3047 +// line internal/php5/php5.y:3049 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5287,7 +5289,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3059 +// line internal/php5/php5.y:3061 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5301,37 +5303,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3074 +// line internal/php5/php5.y:3076 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3078 +// line internal/php5/php5.y:3080 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3082 +// line internal/php5/php5.y:3084 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3089 +// line internal/php5/php5.y:3091 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3093 +// line internal/php5/php5.y:3095 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3100 +// line internal/php5/php5.y:3102 { if yyDollar[3].node != nil { @@ -5347,7 +5349,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3117 +// line internal/php5/php5.y:3119 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5364,7 +5366,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3132 +// line internal/php5/php5.y:3134 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5377,7 +5379,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3143 +// line internal/php5/php5.y:3145 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5391,7 +5393,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3155 +// line internal/php5/php5.y:3157 { var _new *ast.ExprNew @@ -5418,7 +5420,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3180 +// line internal/php5/php5.y:3182 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5430,7 +5432,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3190 +// line internal/php5/php5.y:3192 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5442,7 +5444,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3200 +// line internal/php5/php5.y:3202 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5455,7 +5457,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3211 +// line internal/php5/php5.y:3213 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5468,7 +5470,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3222 +// line internal/php5/php5.y:3224 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5481,7 +5483,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3233 +// line internal/php5/php5.y:3235 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5494,7 +5496,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3244 +// line internal/php5/php5.y:3246 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5507,7 +5509,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3255 +// line internal/php5/php5.y:3257 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5520,7 +5522,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3266 +// line internal/php5/php5.y:3268 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5533,7 +5535,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3277 +// line internal/php5/php5.y:3279 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5546,7 +5548,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3288 +// line internal/php5/php5.y:3290 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5559,7 +5561,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3299 +// line internal/php5/php5.y:3301 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5572,7 +5574,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3310 +// line internal/php5/php5.y:3312 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5585,7 +5587,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3321 +// line internal/php5/php5.y:3323 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5598,7 +5600,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3332 +// line internal/php5/php5.y:3334 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5610,7 +5612,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3342 +// line internal/php5/php5.y:3344 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5623,7 +5625,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3353 +// line internal/php5/php5.y:3355 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5635,7 +5637,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3363 +// line internal/php5/php5.y:3365 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5648,7 +5650,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3374 +// line internal/php5/php5.y:3376 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5661,7 +5663,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3385 +// line internal/php5/php5.y:3387 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5674,7 +5676,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3396 +// line internal/php5/php5.y:3398 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5687,7 +5689,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3407 +// line internal/php5/php5.y:3409 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5700,7 +5702,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3418 +// line internal/php5/php5.y:3420 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,7 +5715,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3429 +// line internal/php5/php5.y:3431 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5726,7 +5728,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3440 +// line internal/php5/php5.y:3442 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5739,7 +5741,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3451 +// line internal/php5/php5.y:3453 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5751,7 +5753,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3461 +// line internal/php5/php5.y:3463 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5766,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3472 +// line internal/php5/php5.y:3474 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,7 +5779,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3483 +// line internal/php5/php5.y:3485 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5790,7 +5792,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3494 +// line internal/php5/php5.y:3496 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5803,7 +5805,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3505 +// line internal/php5/php5.y:3507 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5816,7 +5818,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3516 +// line internal/php5/php5.y:3518 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5829,7 +5831,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3527 +// line internal/php5/php5.y:3529 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5842,7 +5844,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3538 +// line internal/php5/php5.y:3540 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5855,7 +5857,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3549 +// line internal/php5/php5.y:3551 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5867,7 +5869,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3559 +// line internal/php5/php5.y:3561 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5879,7 +5881,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3571 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5891,7 +5893,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3579 +// line internal/php5/php5.y:3581 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5903,7 +5905,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3589 +// line internal/php5/php5.y:3591 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5916,7 +5918,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3600 +// line internal/php5/php5.y:3602 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5929,7 +5931,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3611 +// line internal/php5/php5.y:3613 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5942,7 +5944,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3622 +// line internal/php5/php5.y:3624 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5956,7 +5958,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3634 +// line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5969,7 +5971,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3645 +// line internal/php5/php5.y:3647 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5982,7 +5984,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3656 +// line internal/php5/php5.y:3658 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5995,7 +5997,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3667 +// line internal/php5/php5.y:3669 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6008,7 +6010,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3678 +// line internal/php5/php5.y:3680 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6021,19 +6023,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3689 +// line internal/php5/php5.y:3691 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3693 +// line internal/php5/php5.y:3695 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3697 +// line internal/php5/php5.y:3699 { yyVAL.node = yyDollar[2].node @@ -6065,7 +6067,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3727 +// line internal/php5/php5.y:3729 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6079,7 +6081,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3739 +// line internal/php5/php5.y:3741 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6093,13 +6095,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3751 +// line internal/php5/php5.y:3753 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3755 +// line internal/php5/php5.y:3757 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6112,7 +6114,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3766 +// line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6125,7 +6127,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3777 +// line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6138,7 +6140,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3788 +// line internal/php5/php5.y:3790 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6151,7 +6153,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3799 +// line internal/php5/php5.y:3801 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6164,7 +6166,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3810 +// line internal/php5/php5.y:3812 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6177,7 +6179,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3821 +// line internal/php5/php5.y:3823 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6190,7 +6192,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3832 +// line internal/php5/php5.y:3834 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6210,7 +6212,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3850 +// line internal/php5/php5.y:3852 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6222,25 +6224,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3860 +// line internal/php5/php5.y:3862 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3864 +// line internal/php5/php5.y:3866 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3868 +// line internal/php5/php5.y:3870 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3872 +// line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6252,7 +6254,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3882 +// line internal/php5/php5.y:3884 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6264,7 +6266,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3892 +// line internal/php5/php5.y:3894 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6276,7 +6278,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3902 +// line internal/php5/php5.y:3904 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6295,7 +6297,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3919 +// line internal/php5/php5.y:3921 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6315,7 +6317,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3940 +// line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6327,7 +6329,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3950 +// line internal/php5/php5.y:3952 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6339,7 +6341,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3960 +// line internal/php5/php5.y:3962 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6352,7 +6354,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3971 +// line internal/php5/php5.y:3973 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6365,7 +6367,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3985 +// line internal/php5/php5.y:3987 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6378,7 +6380,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3996 +// line internal/php5/php5.y:3998 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6391,7 +6393,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4007 +// line internal/php5/php5.y:4009 { str := &ast.ScalarString{ Node: ast.Node{ @@ -6411,7 +6413,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4025 +// line internal/php5/php5.y:4027 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6424,7 +6426,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4041 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6438,7 +6440,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4051 +// line internal/php5/php5.y:4053 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6451,19 +6453,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4065 +// line internal/php5/php5.y:4067 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4072 +// line internal/php5/php5.y:4074 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4076 +// line internal/php5/php5.y:4078 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6477,7 +6479,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4091 +// line internal/php5/php5.y:4093 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6498,7 +6500,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4110 +// line internal/php5/php5.y:4112 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6522,7 +6524,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4132 +// line internal/php5/php5.y:4134 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6542,7 +6544,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4150 +// line internal/php5/php5.y:4152 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6565,7 +6567,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4174 +// line internal/php5/php5.y:4176 { name := &ast.NameName{ Node: ast.Node{ @@ -6580,7 +6582,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4187 +// line internal/php5/php5.y:4189 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6597,7 +6599,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4202 +// line internal/php5/php5.y:4204 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6613,7 +6615,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4216 +// line internal/php5/php5.y:4218 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6626,7 +6628,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4227 +// line internal/php5/php5.y:4229 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6639,7 +6641,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4238 +// line internal/php5/php5.y:4240 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6652,7 +6654,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4249 +// line internal/php5/php5.y:4251 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6665,7 +6667,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4260 +// line internal/php5/php5.y:4262 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6677,7 +6679,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4273 +// line internal/php5/php5.y:4275 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6689,7 +6691,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4283 +// line internal/php5/php5.y:4285 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6700,7 +6702,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4292 +// line internal/php5/php5.y:4294 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6713,7 +6715,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4303 +// line internal/php5/php5.y:4305 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6725,7 +6727,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4316 +// line internal/php5/php5.y:4318 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6736,7 +6738,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4325 +// line internal/php5/php5.y:4327 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6749,7 +6751,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4336 +// line internal/php5/php5.y:4338 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6761,19 +6763,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4349 +// line internal/php5/php5.y:4351 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4353 +// line internal/php5/php5.y:4355 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4360 +// line internal/php5/php5.y:4362 { yyVAL.node = yyDollar[1].node @@ -6814,25 +6816,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4399 +// line internal/php5/php5.y:4401 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4407 +// line internal/php5/php5.y:4409 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4411 +// line internal/php5/php5.y:4413 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4419 +// line internal/php5/php5.y:4421 { yyVAL.list = yyDollar[2].list @@ -6841,13 +6843,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4429 +// line internal/php5/php5.y:4431 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4433 +// line internal/php5/php5.y:4435 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6863,19 +6865,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4447 +// line internal/php5/php5.y:4449 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4454 +// line internal/php5/php5.y:4456 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4460 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6889,25 +6891,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4470 +// line internal/php5/php5.y:4472 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4477 +// line internal/php5/php5.y:4479 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4483 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4488 +// line internal/php5/php5.y:4490 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6919,7 +6921,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4498 +// line internal/php5/php5.y:4500 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6931,7 +6933,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4508 +// line internal/php5/php5.y:4510 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6943,7 +6945,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4518 +// line internal/php5/php5.y:4520 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6955,7 +6957,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4528 +// line internal/php5/php5.y:4530 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6967,7 +6969,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4538 +// line internal/php5/php5.y:4540 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6979,7 +6981,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4548 +// line internal/php5/php5.y:4550 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6991,7 +6993,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4558 +// line internal/php5/php5.y:4560 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7003,7 +7005,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4568 +// line internal/php5/php5.y:4570 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7015,7 +7017,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4578 +// line internal/php5/php5.y:4580 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7027,7 +7029,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4588 +// line internal/php5/php5.y:4590 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7048,7 +7050,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4607 +// line internal/php5/php5.y:4609 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7060,7 +7062,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4620 +// line internal/php5/php5.y:4622 { target := &ast.Identifier{ Node: ast.Node{ @@ -7080,25 +7082,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4641 +// line internal/php5/php5.y:4643 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4648 +// line internal/php5/php5.y:4650 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4652 +// line internal/php5/php5.y:4654 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4656 +// line internal/php5/php5.y:4658 { name := &ast.NameName{ Node: ast.Node{ @@ -7113,7 +7115,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4669 +// line internal/php5/php5.y:4671 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7130,7 +7132,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4684 +// line internal/php5/php5.y:4686 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7146,7 +7148,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4698 +// line internal/php5/php5.y:4700 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7160,7 +7162,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4710 +// line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7173,13 +7175,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4721 +// line internal/php5/php5.y:4723 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4725 +// line internal/php5/php5.y:4727 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7191,13 +7193,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4735 +// line internal/php5/php5.y:4737 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4742 +// line internal/php5/php5.y:4744 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7210,7 +7212,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4753 +// line internal/php5/php5.y:4755 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7223,7 +7225,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4764 +// line internal/php5/php5.y:4766 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7236,7 +7238,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4775 +// line internal/php5/php5.y:4777 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7249,7 +7251,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4786 +// line internal/php5/php5.y:4788 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7262,7 +7264,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4797 +// line internal/php5/php5.y:4799 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7275,7 +7277,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4808 +// line internal/php5/php5.y:4810 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7288,7 +7290,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4819 +// line internal/php5/php5.y:4821 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7300,7 +7302,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4829 +// line internal/php5/php5.y:4831 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7312,7 +7314,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4839 +// line internal/php5/php5.y:4841 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7325,7 +7327,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4850 +// line internal/php5/php5.y:4852 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7338,7 +7340,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4861 +// line internal/php5/php5.y:4863 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7351,7 +7353,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4872 +// line internal/php5/php5.y:4874 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7364,7 +7366,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4883 +// line internal/php5/php5.y:4885 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7377,7 +7379,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4894 +// line internal/php5/php5.y:4896 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7390,7 +7392,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4905 +// line internal/php5/php5.y:4907 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7403,7 +7405,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4916 +// line internal/php5/php5.y:4918 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7416,7 +7418,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4927 +// line internal/php5/php5.y:4929 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7429,7 +7431,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4938 +// line internal/php5/php5.y:4940 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7442,7 +7444,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4949 +// line internal/php5/php5.y:4951 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7455,7 +7457,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4960 +// line internal/php5/php5.y:4962 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7468,7 +7470,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4971 +// line internal/php5/php5.y:4973 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7481,7 +7483,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4982 +// line internal/php5/php5.y:4984 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7494,7 +7496,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4993 +// line internal/php5/php5.y:4995 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7508,7 +7510,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5005 +// line internal/php5/php5.y:5007 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7521,7 +7523,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5016 +// line internal/php5/php5.y:5018 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7534,7 +7536,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5027 +// line internal/php5/php5.y:5029 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7547,7 +7549,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5038 +// line internal/php5/php5.y:5040 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7560,7 +7562,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5049 +// line internal/php5/php5.y:5051 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7574,7 +7576,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5061 +// line internal/php5/php5.y:5063 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7588,7 +7590,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5073 +// line internal/php5/php5.y:5075 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7600,7 +7602,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5083 +// line internal/php5/php5.y:5085 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7612,7 +7614,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5093 +// line internal/php5/php5.y:5095 { yyVAL.node = yyDollar[2].node @@ -7622,13 +7624,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5104 +// line internal/php5/php5.y:5106 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5108 +// line internal/php5/php5.y:5110 { name := &ast.NameName{ Node: ast.Node{ @@ -7643,7 +7645,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5121 +// line internal/php5/php5.y:5123 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7660,7 +7662,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5136 +// line internal/php5/php5.y:5138 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7676,7 +7678,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5153 +// line internal/php5/php5.y:5155 { name := &ast.Identifier{ Node: ast.Node{ @@ -7695,25 +7697,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5170 +// line internal/php5/php5.y:5172 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5174 +// line internal/php5/php5.y:5176 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5178 +// line internal/php5/php5.y:5180 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5182 +// line internal/php5/php5.y:5184 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7726,7 +7728,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5193 +// line internal/php5/php5.y:5195 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7739,7 +7741,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5204 +// line internal/php5/php5.y:5206 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7751,13 +7753,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5219 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5221 +// line internal/php5/php5.y:5223 { yyVAL.list = yyDollar[1].list @@ -7768,19 +7770,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5233 +// line internal/php5/php5.y:5235 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5237 +// line internal/php5/php5.y:5239 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5244 +// line internal/php5/php5.y:5246 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7795,7 +7797,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5257 +// line internal/php5/php5.y:5259 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7809,7 +7811,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5269 +// line internal/php5/php5.y:5271 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7823,7 +7825,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5281 +// line internal/php5/php5.y:5283 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7836,19 +7838,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5295 +// line internal/php5/php5.y:5297 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5299 +// line internal/php5/php5.y:5301 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5306 +// line internal/php5/php5.y:5308 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7865,7 +7867,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5321 +// line internal/php5/php5.y:5323 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7882,25 +7884,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5340 +// line internal/php5/php5.y:5342 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5348 +// line internal/php5/php5.y:5350 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5355 +// line internal/php5/php5.y:5357 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5362 +// line internal/php5/php5.y:5364 { yyVAL.node = yyDollar[1].node @@ -7958,25 +7960,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5418 +// line internal/php5/php5.y:5420 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5425 +// line internal/php5/php5.y:5427 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5429 +// line internal/php5/php5.y:5431 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5437 +// line internal/php5/php5.y:5439 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7990,7 +7992,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5452 +// line internal/php5/php5.y:5454 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8004,7 +8006,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5464 +// line internal/php5/php5.y:5466 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8018,7 +8020,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5479 +// line internal/php5/php5.y:5481 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8027,31 +8029,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5489 +// line internal/php5/php5.y:5491 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5493 +// line internal/php5/php5.y:5495 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5497 +// line internal/php5/php5.y:5499 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5504 +// line internal/php5/php5.y:5506 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5508 +// line internal/php5/php5.y:5510 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8063,7 +8065,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5521 +// line internal/php5/php5.y:5523 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8076,7 +8078,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5532 +// line internal/php5/php5.y:5534 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8089,13 +8091,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5546 +// line internal/php5/php5.y:5548 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5553 +// line internal/php5/php5.y:5555 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8108,7 +8110,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5564 +// line internal/php5/php5.y:5566 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8121,31 +8123,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5578 +// line internal/php5/php5.y:5580 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5582 +// line internal/php5/php5.y:5584 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5586 +// line internal/php5/php5.y:5588 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5594 +// line internal/php5/php5.y:5596 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5598 +// line internal/php5/php5.y:5600 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8157,13 +8159,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5608 +// line internal/php5/php5.y:5610 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5615 +// line internal/php5/php5.y:5617 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8176,7 +8178,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5626 +// line internal/php5/php5.y:5628 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8189,13 +8191,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5637 +// line internal/php5/php5.y:5639 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5645 +// line internal/php5/php5.y:5647 { name := &ast.Identifier{ Node: ast.Node{ @@ -8214,7 +8216,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5662 +// line internal/php5/php5.y:5664 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8228,25 +8230,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5677 +// line internal/php5/php5.y:5679 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5681 +// line internal/php5/php5.y:5683 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5689 +// line internal/php5/php5.y:5691 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5693 +// line internal/php5/php5.y:5695 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8256,7 +8258,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5704 +// line internal/php5/php5.y:5706 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8270,7 +8272,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5716 +// line internal/php5/php5.y:5718 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8284,7 +8286,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5728 +// line internal/php5/php5.y:5730 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8294,7 +8296,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5741 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8306,7 +8308,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5749 +// line internal/php5/php5.y:5751 { yyVAL.node = yyDollar[2].node @@ -8319,7 +8321,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5763 +// line internal/php5/php5.y:5765 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8332,7 +8334,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5774 +// line internal/php5/php5.y:5776 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8349,7 +8351,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5792 +// line internal/php5/php5.y:5794 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8362,7 +8364,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5803 +// line internal/php5/php5.y:5805 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8372,7 +8374,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5815 +// line internal/php5/php5.y:5817 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8384,7 +8386,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5825 +// line internal/php5/php5.y:5827 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8400,19 +8402,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5839 +// line internal/php5/php5.y:5841 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5847 +// line internal/php5/php5.y:5849 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5851 +// line internal/php5/php5.y:5853 { yyVAL.list = yyDollar[1].list @@ -8427,7 +8429,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5867 +// line internal/php5/php5.y:5869 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8442,7 +8444,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5880 +// line internal/php5/php5.y:5882 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8456,7 +8458,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5892 +// line internal/php5/php5.y:5894 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8470,7 +8472,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5904 +// line internal/php5/php5.y:5906 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8483,7 +8485,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5915 +// line internal/php5/php5.y:5917 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8501,7 +8503,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5931 +// line internal/php5/php5.y:5933 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8517,7 +8519,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5945 +// line internal/php5/php5.y:5947 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8534,7 +8536,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5960 +// line internal/php5/php5.y:5962 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8549,13 +8551,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5976 +// line internal/php5/php5.y:5978 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5980 +// line internal/php5/php5.y:5982 { yyVAL.list = append( yyDollar[1].list, @@ -8570,13 +8572,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5993 +// line internal/php5/php5.y:5995 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5997 +// line internal/php5/php5.y:5999 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8591,7 +8593,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6013 +// line internal/php5/php5.y:6015 { name := &ast.Identifier{ Node: ast.Node{ @@ -8610,7 +8612,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6030 +// line internal/php5/php5.y:6032 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8632,7 +8634,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6050 +// line internal/php5/php5.y:6052 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8660,7 +8662,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6076 +// line internal/php5/php5.y:6078 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8675,7 +8677,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6089 +// line internal/php5/php5.y:6091 { name := &ast.Identifier{ Node: ast.Node{ @@ -8697,7 +8699,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6109 +// line internal/php5/php5.y:6111 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8721,7 +8723,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6131 +// line internal/php5/php5.y:6133 { yyVAL.node = yyDollar[2].node @@ -8731,7 +8733,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6142 +// line internal/php5/php5.y:6144 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8743,7 +8745,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6152 +// line internal/php5/php5.y:6154 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8772,7 +8774,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6179 +// line internal/php5/php5.y:6181 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8791,7 +8793,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6199 +// line internal/php5/php5.y:6201 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8805,7 +8807,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6211 +// line internal/php5/php5.y:6213 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8827,7 +8829,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6231 +// line internal/php5/php5.y:6233 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8849,7 +8851,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6251 +// line internal/php5/php5.y:6253 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8861,7 +8863,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6261 +// line internal/php5/php5.y:6263 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8873,7 +8875,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6271 +// line internal/php5/php5.y:6273 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8895,7 +8897,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6291 +// line internal/php5/php5.y:6293 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8907,7 +8909,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6301 +// line internal/php5/php5.y:6303 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8919,13 +8921,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6314 +// line internal/php5/php5.y:6316 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6318 +// line internal/php5/php5.y:6320 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8934,19 +8936,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6328 +// line internal/php5/php5.y:6330 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6332 +// line internal/php5/php5.y:6334 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6339 +// line internal/php5/php5.y:6341 { target := &ast.Identifier{ Node: ast.Node{ @@ -8966,7 +8968,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6359 { target := &ast.Identifier{ Node: ast.Node{ @@ -8986,7 +8988,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6378 +// line internal/php5/php5.y:6380 { target := &ast.Identifier{ Node: ast.Node{ @@ -9006,7 +9008,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6399 +// line internal/php5/php5.y:6401 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index a3d1ea4..96d22d7 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1033,15 +1033,13 @@ unticked_statement: } | yield_expr ';' { - $$ = &ast.StmtExpression{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = &ast.StmtExpression{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Expr: $1, + SemiColonTkn: $2, + } } | T_GLOBAL global_var_list ';' { @@ -1081,15 +1079,13 @@ unticked_statement: } | expr ';' { - $$ = &ast.StmtExpression{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = &ast.StmtExpression{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Expr: $1, + SemiColonTkn: $2, + } } | T_UNSET '(' unset_variables ')' ';' { @@ -1439,22 +1435,23 @@ unticked_class_declaration_statement: } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtInterface{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $6), }, - IdentifierTkn: $2, - Value: $2.Value, + InterfaceTkn: $1, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + Extends: $3, + OpenCurlyBracketTkn: $4, + Stmts: $5, + CloseCurlyBracketTkn: $6, } - $$ = &ast.StmtInterface{ast.Node{}, name, $3, $5} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $6.SkippedTokens) } ; @@ -2851,87 +2848,92 @@ member_modifier: class_variable_declaration: class_variable_declaration ',' T_VARIABLE { - identifier := &ast.Identifier{ + $$ = append($1, &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition($3), }, - IdentifierTkn: $3, - Value: $3.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, nil} - $$ = append($1, property) - - // save position - variable.GetNode().Position = position.NewTokenPosition($3) - property.GetNode().Position = position.NewTokenPosition($3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.SkippedTokens) + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, + }, + }) } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ + $$ = append($1, &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewTokenNodePosition($3, $5), }, - IdentifierTkn: $3, - Value: $3.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, $5} - $$ = append($1, property) - - // save position - variable.GetNode().Position = position.NewTokenPosition($3) - property.GetNode().Position = position.NewTokenNodePosition($3, $5) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Var, $4.SkippedTokens) + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, + }, + EqualTkn: $4, + Expr: $5, + }) } | T_VARIABLE { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), + $$ = []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + Expr: nil, }, - IdentifierTkn: $1, - Value: $1.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, nil} - $$ = []ast.Vertex{property} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - property.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), + $$ = []ast.Vertex{ + &ast.StmtProperty{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + EqualTkn: $2, + Expr: $3, }, - IdentifierTkn: $1, - Value: $1.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - property := &ast.StmtProperty{ast.Node{}, variable, $3} - $$ = []ast.Vertex{property} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - property.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(property, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(property, token.Var, $2.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 5d03f1b..3ef5b9f 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4969 +// line internal/php7/php7.y:4972 // line yacctab:1 var yyExca = [...]int{ @@ -2111,7 +2111,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:291 +// line internal/php7/php7.y:291 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2122,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:325 +// line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:332 +// line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:343 +// line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:350 +// line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:362 +// line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:376 +// line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:385 +// line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:396 +// line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:409 +// line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:414 +// line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:418 +// line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:422 +// line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:426 +// line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:430 +// line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:434 +// line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:446 +// line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:462 +// line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:480 +// line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:492 +// line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:502 +// line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:513 +// line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:524 +// line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:536 +// line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:551 +// line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:561 +// line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:574 +// line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:596 +// line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:620 +// line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:640 +// line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:664 +// line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:668 +// line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:675 +// line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:681 +// line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:688 +// line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:694 +// line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:701 +// line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:707 +// line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:714 +// line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:718 +// line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:729 +// line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:743 +// line internal/php7/php7.y:743 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:783 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:790 +// line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:799 +// line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:810 +// line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:817 +// line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:822 +// line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:826 +// line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:830 +// line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:834 +// line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:838 +// line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:842 +// line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:856 +// line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:867 +// line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:871 +// line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:875 +// line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:885 +// line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:900 +// line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:914 +// line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:924 +// line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:935 +// line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:946 +// line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:957 +// line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:965 +// line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:973 +// line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:981 +// line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,21 +3327,19 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:991 +// line internal/php7/php7.y:991 { - yyVAL.node = &ast.StmtExpression{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtExpression{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + }, + Expr: yyDollar[1].node, + SemiColonTkn: yyDollar[2].token, + } } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1003 +// line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3354,7 +3352,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1014 +// line internal/php7/php7.y:1012 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3368,7 +3366,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1026 +// line internal/php7/php7.y:1024 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3384,7 +3382,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1040 +// line internal/php7/php7.y:1038 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3397,7 +3395,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1051 +// line internal/php7/php7.y:1049 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3408,7 +3406,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1060 +// line internal/php7/php7.y:1058 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3427,7 +3425,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1077 +// line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3440,7 +3438,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1088 +// line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3459,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1105 +// line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3477,13 +3475,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1123 +// line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1127 +// line internal/php7/php7.y:1125 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3514,7 +3512,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1158 +// line internal/php7/php7.y:1156 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3522,7 +3520,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1164 +// line internal/php7/php7.y:1162 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3531,13 +3529,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1174 +// line internal/php7/php7.y:1172 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1178 +// line internal/php7/php7.y:1176 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3551,7 +3549,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1193 +// line internal/php7/php7.y:1191 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3559,7 +3557,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1199 +// line internal/php7/php7.y:1197 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3568,13 +3566,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1209 +// line internal/php7/php7.y:1207 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1216 +// line internal/php7/php7.y:1214 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3601,31 +3599,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1244 +// line internal/php7/php7.y:1242 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1248 +// line internal/php7/php7.y:1246 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1255 +// line internal/php7/php7.y:1253 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1259 +// line internal/php7/php7.y:1257 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1266 +// line internal/php7/php7.y:1264 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3649,7 +3647,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1288 +// line internal/php7/php7.y:1286 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3672,19 +3670,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1312 +// line internal/php7/php7.y:1310 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1316 +// line internal/php7/php7.y:1314 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1323 +// line internal/php7/php7.y:1321 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3696,7 +3694,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1333 +// line internal/php7/php7.y:1331 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3708,7 +3706,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1346 +// line internal/php7/php7.y:1344 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3729,34 +3727,35 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1368 +// line internal/php7/php7.y:1366 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, + InterfaceTkn: yyDollar[1].token, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + Extends: yyDollar[3].node, + OpenCurlyBracketTkn: yyDollar[5].token, + Stmts: yyDollar[6].list, + CloseCurlyBracketTkn: yyDollar[7].token, } - yyVAL.node = &ast.StmtInterface{ast.Node{}, name, yyDollar[3].node, yyDollar[6].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Stmts, yyDollar[7].token.SkippedTokens) } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1390 +// line internal/php7/php7.y:1389 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1394 +// line internal/php7/php7.y:1393 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3768,13 +3767,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1407 +// line internal/php7/php7.y:1406 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1411 +// line internal/php7/php7.y:1410 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3787,13 +3786,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1425 +// line internal/php7/php7.y:1424 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1429 +// line internal/php7/php7.y:1428 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3806,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1443 +// line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1447 +// line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3824,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1457 +// line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3838,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1469 +// line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3851,7 +3850,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1483 +// line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3862,7 +3861,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1492 +// line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3882,7 +3881,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1513 +// line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3893,7 +3892,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1522 +// line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3913,7 +3912,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1543 +// line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3924,7 +3923,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1552 +// line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3944,7 +3943,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1573 +// line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3957,7 +3956,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1584 +// line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,7 +3970,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1596 +// line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,7 +3985,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1609 +// line internal/php7/php7.y:1608 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4002,13 +4001,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1626 +// line internal/php7/php7.y:1625 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1630 +// line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4022,7 +4021,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1642 +// line internal/php7/php7.y:1641 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4035,19 +4034,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1656 +// line internal/php7/php7.y:1655 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1660 +// line internal/php7/php7.y:1659 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1667 +// line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4057,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1676 +// line internal/php7/php7.y:1675 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4078,7 +4077,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1697 +// line internal/php7/php7.y:1696 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4093,7 +4092,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1710 +// line internal/php7/php7.y:1709 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4111,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1730 +// line internal/php7/php7.y:1729 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1734 +// line internal/php7/php7.y:1733 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4134,7 +4133,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1751 +// line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4156,7 +4155,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1771 +// line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4180,7 +4179,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1796 +// line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4190,7 +4189,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1804 +// line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4214,25 +4213,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1829 +// line internal/php7/php7.y:1828 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1833 +// line internal/php7/php7.y:1832 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1840 +// line internal/php7/php7.y:1839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1844 +// line internal/php7/php7.y:1843 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4241,7 +4240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1854 +// line internal/php7/php7.y:1853 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4295,7 +4294,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1906 +// line internal/php7/php7.y:1905 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4352,25 +4351,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1964 +// line internal/php7/php7.y:1963 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1968 +// line internal/php7/php7.y:1967 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1975 +// line internal/php7/php7.y:1974 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1979 +// line internal/php7/php7.y:1978 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4382,7 +4381,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1992 +// line internal/php7/php7.y:1991 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4394,7 +4393,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2002 +// line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4406,19 +4405,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2012 +// line internal/php7/php7.y:2011 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2019 +// line internal/php7/php7.y:2018 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2023 +// line internal/php7/php7.y:2022 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4427,7 +4426,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2033 +// line internal/php7/php7.y:2032 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4439,7 +4438,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2043 +// line internal/php7/php7.y:2042 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4451,7 +4450,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2056 +// line internal/php7/php7.y:2055 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4459,7 +4458,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2062 +// line internal/php7/php7.y:2061 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4468,7 +4467,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2072 +// line internal/php7/php7.y:2071 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4479,7 +4478,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2081 +// line internal/php7/php7.y:2080 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4491,7 +4490,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2094 +// line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4500,7 +4499,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2101 +// line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4508,13 +4507,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2110 +// line internal/php7/php7.y:2109 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2117 +// line internal/php7/php7.y:2116 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4523,7 +4522,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2124 +// line internal/php7/php7.y:2123 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4531,7 +4530,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2133 +// line internal/php7/php7.y:2132 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4557,7 +4556,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2157 +// line internal/php7/php7.y:2156 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4584,19 +4583,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2185 +// line internal/php7/php7.y:2184 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2189 +// line internal/php7/php7.y:2188 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2196 +// line internal/php7/php7.y:2195 { yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} @@ -4610,7 +4609,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2208 +// line internal/php7/php7.y:2207 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4624,7 +4623,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2220 +// line internal/php7/php7.y:2219 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4638,7 +4637,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2232 +// line internal/php7/php7.y:2231 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4669,7 +4668,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2264 +// line internal/php7/php7.y:2263 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4677,7 +4676,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2270 +// line internal/php7/php7.y:2269 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4686,7 +4685,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2280 +// line internal/php7/php7.y:2279 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4697,7 +4696,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2289 +// line internal/php7/php7.y:2288 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} @@ -4709,7 +4708,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2299 +// line internal/php7/php7.y:2298 { yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} @@ -4721,19 +4720,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2312 +// line internal/php7/php7.y:2311 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2316 +// line internal/php7/php7.y:2315 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2323 +// line internal/php7/php7.y:2322 { yyVAL.node = yyDollar[1].node @@ -4743,7 +4742,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2331 +// line internal/php7/php7.y:2330 { yyVAL.node = yyDollar[1].node @@ -4753,7 +4752,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2342 +// line internal/php7/php7.y:2341 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4767,7 +4766,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2357 +// line internal/php7/php7.y:2356 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4787,7 +4786,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2375 +// line internal/php7/php7.y:2374 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4807,7 +4806,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2393 +// line internal/php7/php7.y:2392 { alias := &ast.Identifier{ Node: ast.Node{ @@ -4827,7 +4826,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2411 +// line internal/php7/php7.y:2410 { yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} @@ -4840,7 +4839,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2425 +// line internal/php7/php7.y:2424 { name := &ast.Identifier{ Node: ast.Node{ @@ -4859,13 +4858,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2442 +// line internal/php7/php7.y:2441 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2449 +// line internal/php7/php7.y:2448 { target := &ast.Identifier{ Node: ast.Node{ @@ -4885,7 +4884,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2470 +// line internal/php7/php7.y:2469 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4896,7 +4895,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2479 +// line internal/php7/php7.y:2478 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4909,13 +4908,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2493 +// line internal/php7/php7.y:2492 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2497 +// line internal/php7/php7.y:2496 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4929,31 +4928,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2512 +// line internal/php7/php7.y:2511 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2516 +// line internal/php7/php7.y:2515 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2523 +// line internal/php7/php7.y:2522 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2527 +// line internal/php7/php7.y:2526 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2534 +// line internal/php7/php7.y:2533 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4965,7 +4964,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2544 +// line internal/php7/php7.y:2543 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4977,7 +4976,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2554 +// line internal/php7/php7.y:2553 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4989,7 +4988,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2564 +// line internal/php7/php7.y:2563 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5001,7 +5000,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2574 +// line internal/php7/php7.y:2573 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5012,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2584 +// line internal/php7/php7.y:2583 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5025,7 +5024,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2597 +// line internal/php7/php7.y:2596 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5034,56 +5033,60 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2604 +// line internal/php7/php7.y:2603 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2611 +// line internal/php7/php7.y:2610 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + Expr: nil, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, nil} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2630 +// line internal/php7/php7.y:2631 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtProperty{ast.Node{}, variable, yyDollar[3].node} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2653 +// line internal/php7/php7.y:2656 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5091,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2659 +// line internal/php7/php7.y:2662 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2666 +// line internal/php7/php7.y:2669 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5118,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2688 +// line internal/php7/php7.y:2691 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5139,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2710 +// line internal/php7/php7.y:2713 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5148,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2717 +// line internal/php7/php7.y:2720 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5156,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2726 +// line internal/php7/php7.y:2729 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2733 +// line internal/php7/php7.y:2736 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2740 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2744 +// line internal/php7/php7.y:2747 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5183,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2751 +// line internal/php7/php7.y:2754 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2758 +// line internal/php7/php7.y:2761 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5206,7 +5209,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2776 +// line internal/php7/php7.y:2779 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5221,7 +5224,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2789 +// line internal/php7/php7.y:2792 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5233,7 +5236,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2802 +// line internal/php7/php7.y:2805 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5250,7 +5253,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2817 +// line internal/php7/php7.y:2820 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5266,7 +5269,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2831 +// line internal/php7/php7.y:2834 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5279,7 +5282,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2842 +// line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5293,7 +5296,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2854 +// line internal/php7/php7.y:2857 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5305,7 +5308,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2864 +// line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5318,7 +5321,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5334,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2886 +// line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5347,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2897 +// line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5360,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2908 +// line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5373,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2919 +// line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5386,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2930 +// line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5399,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2941 +// line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5412,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2952 +// line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5425,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2963 +// line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5438,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2974 +// line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5451,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2985 +// line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5464,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2996 +// line internal/php7/php7.y:2999 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5474,7 +5477,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3007 +// line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5487,7 +5490,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3018 +// line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5499,7 +5502,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3028 +// line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5512,7 +5515,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3039 +// line internal/php7/php7.y:3042 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5524,7 +5527,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3049 +// line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5537,7 +5540,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3060 +// line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5553,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3071 +// line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5566,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3082 +// line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5579,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3093 +// line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5592,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3104 +// line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5605,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3115 +// line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5618,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3126 +// line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5631,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3137 +// line internal/php7/php7.y:3140 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5643,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3147 +// line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5656,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3158 +// line internal/php7/php7.y:3161 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5669,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3169 +// line internal/php7/php7.y:3172 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5679,7 +5682,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3180 +// line internal/php7/php7.y:3183 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5692,7 +5695,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3191 +// line internal/php7/php7.y:3194 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5705,7 +5708,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3202 +// line internal/php7/php7.y:3205 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5718,7 +5721,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3213 +// line internal/php7/php7.y:3216 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5731,7 +5734,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3224 +// line internal/php7/php7.y:3227 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5744,7 +5747,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3235 +// line internal/php7/php7.y:3238 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5756,7 +5759,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3245 +// line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5768,7 +5771,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3255 +// line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5780,7 +5783,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3265 +// line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5792,7 +5795,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3275 +// line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5808,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3286 +// line internal/php7/php7.y:3289 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5821,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3297 +// line internal/php7/php7.y:3300 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5834,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3308 +// line internal/php7/php7.y:3311 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5848,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3320 +// line internal/php7/php7.y:3323 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5861,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3331 +// line internal/php7/php7.y:3334 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5871,7 +5874,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3342 +// line internal/php7/php7.y:3345 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5887,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3353 +// line internal/php7/php7.y:3356 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5900,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3364 +// line internal/php7/php7.y:3367 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5910,7 +5913,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3375 +// line internal/php7/php7.y:3378 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5923,7 +5926,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3386 +// line internal/php7/php7.y:3389 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5940,13 +5943,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3401 +// line internal/php7/php7.y:3404 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3405 +// line internal/php7/php7.y:3408 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5960,7 +5963,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3417 +// line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5974,7 +5977,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3429 +// line internal/php7/php7.y:3432 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5987,13 +5990,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3440 +// line internal/php7/php7.y:3443 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3444 +// line internal/php7/php7.y:3447 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6006,7 +6009,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3455 +// line internal/php7/php7.y:3458 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6019,7 +6022,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3466 +// line internal/php7/php7.y:3469 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6032,7 +6035,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3477 +// line internal/php7/php7.y:3480 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6045,7 +6048,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3488 +// line internal/php7/php7.y:3491 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6058,7 +6061,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3499 +// line internal/php7/php7.y:3502 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6071,7 +6074,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3510 +// line internal/php7/php7.y:3513 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6084,7 +6087,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3521 +// line internal/php7/php7.y:3524 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6104,7 +6107,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3539 +// line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6116,13 +6119,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3549 +// line internal/php7/php7.y:3552 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3553 +// line internal/php7/php7.y:3556 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6134,7 +6137,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3563 +// line internal/php7/php7.y:3566 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6146,7 +6149,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3573 +// line internal/php7/php7.y:3576 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6158,7 +6161,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3583 +// line internal/php7/php7.y:3586 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6170,7 +6173,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3593 +// line internal/php7/php7.y:3596 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6183,7 +6186,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3604 +// line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6195,13 +6198,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3614 +// line internal/php7/php7.y:3617 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3618 +// line internal/php7/php7.y:3621 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6216,7 +6219,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3634 +// line internal/php7/php7.y:3637 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6237,7 +6240,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3653 +// line internal/php7/php7.y:3656 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6256,25 +6259,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3677 +// line internal/php7/php7.y:3680 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3681 +// line internal/php7/php7.y:3684 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3688 +// line internal/php7/php7.y:3691 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3692 +// line internal/php7/php7.y:3695 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6288,7 +6291,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3707 +// line internal/php7/php7.y:3710 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6297,13 +6300,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3714 +// line internal/php7/php7.y:3717 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3721 +// line internal/php7/php7.y:3724 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6322,7 +6325,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3738 +// line internal/php7/php7.y:3741 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6344,7 +6347,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3761 +// line internal/php7/php7.y:3764 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6356,7 +6359,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3771 +// line internal/php7/php7.y:3774 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6369,7 +6372,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3782 +// line internal/php7/php7.y:3785 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6382,7 +6385,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3793 +// line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6394,7 +6397,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3806 +// line internal/php7/php7.y:3809 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6406,31 +6409,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3816 +// line internal/php7/php7.y:3819 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3823 +// line internal/php7/php7.y:3826 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3827 +// line internal/php7/php7.y:3830 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3834 +// line internal/php7/php7.y:3837 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3838 +// line internal/php7/php7.y:3841 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6447,13 +6450,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3856 +// line internal/php7/php7.y:3859 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3860 +// line internal/php7/php7.y:3863 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6467,25 +6470,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3872 +// line internal/php7/php7.y:3875 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3879 +// line internal/php7/php7.y:3882 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3883 +// line internal/php7/php7.y:3886 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3890 +// line internal/php7/php7.y:3893 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6499,7 +6502,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3902 +// line internal/php7/php7.y:3905 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6512,7 +6515,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3913 +// line internal/php7/php7.y:3916 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6524,7 +6527,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3926 +// line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6536,7 +6539,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3936 +// line internal/php7/php7.y:3939 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6548,7 +6551,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3946 +// line internal/php7/php7.y:3949 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6560,7 +6563,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3956 +// line internal/php7/php7.y:3959 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6572,7 +6575,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3966 +// line internal/php7/php7.y:3969 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6584,7 +6587,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3976 +// line internal/php7/php7.y:3979 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6596,7 +6599,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3986 +// line internal/php7/php7.y:3989 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6608,7 +6611,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3996 +// line internal/php7/php7.y:3999 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6620,7 +6623,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4006 +// line internal/php7/php7.y:4009 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6632,7 +6635,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4016 +// line internal/php7/php7.y:4019 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6644,7 +6647,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4026 +// line internal/php7/php7.y:4029 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6665,7 +6668,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4045 +// line internal/php7/php7.y:4048 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6677,7 +6680,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4055 +// line internal/php7/php7.y:4058 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6690,7 +6693,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4066 +// line internal/php7/php7.y:4069 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6703,19 +6706,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4077 +// line internal/php7/php7.y:4080 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4081 +// line internal/php7/php7.y:4084 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4088 +// line internal/php7/php7.y:4091 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6727,7 +6730,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4098 +// line internal/php7/php7.y:4101 { target := &ast.Identifier{ Node: ast.Node{ @@ -6747,7 +6750,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4116 +// line internal/php7/php7.y:4119 { target := &ast.Identifier{ Node: ast.Node{ @@ -6767,43 +6770,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4137 +// line internal/php7/php7.y:4140 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4141 +// line internal/php7/php7.y:4144 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4148 +// line internal/php7/php7.y:4151 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4152 +// line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4159 +// line internal/php7/php7.y:4162 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4166 +// line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4170 +// line internal/php7/php7.y:4173 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6820,19 +6823,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4185 +// line internal/php7/php7.y:4188 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4192 +// line internal/php7/php7.y:4195 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4196 +// line internal/php7/php7.y:4199 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6849,19 +6852,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4211 +// line internal/php7/php7.y:4214 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4218 +// line internal/php7/php7.y:4221 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4222 +// line internal/php7/php7.y:4225 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6874,7 +6877,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4233 +// line internal/php7/php7.y:4236 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6887,7 +6890,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4247 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6900,7 +6903,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4255 +// line internal/php7/php7.y:4258 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6913,25 +6916,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4266 +// line internal/php7/php7.y:4269 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4273 +// line internal/php7/php7.y:4276 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4277 +// line internal/php7/php7.y:4280 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4281 +// line internal/php7/php7.y:4284 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6944,7 +6947,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4295 +// line internal/php7/php7.y:4298 { name := &ast.Identifier{ Node: ast.Node{ @@ -6963,7 +6966,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4312 +// line internal/php7/php7.y:4315 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6977,7 +6980,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4324 +// line internal/php7/php7.y:4327 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6989,7 +6992,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4337 +// line internal/php7/php7.y:4340 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7002,7 +7005,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4348 +// line internal/php7/php7.y:4351 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7015,13 +7018,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4362 +// line internal/php7/php7.y:4365 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4366 +// line internal/php7/php7.y:4369 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,7 +7037,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4377 +// line internal/php7/php7.y:4380 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7047,7 +7050,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4388 +// line internal/php7/php7.y:4391 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7060,7 +7063,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4399 +// line internal/php7/php7.y:4402 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7073,7 +7076,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4410 +// line internal/php7/php7.y:4413 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7086,7 +7089,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4424 +// line internal/php7/php7.y:4427 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7098,7 +7101,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4434 +// line internal/php7/php7.y:4437 { yyVAL.node = yyDollar[2].node @@ -7108,13 +7111,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4442 +// line internal/php7/php7.y:4445 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4449 +// line internal/php7/php7.y:4452 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7126,7 +7129,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4459 +// line internal/php7/php7.y:4462 { yyVAL.node = yyDollar[2].node @@ -7136,31 +7139,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4467 +// line internal/php7/php7.y:4470 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4474 +// line internal/php7/php7.y:4477 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4481 +// line internal/php7/php7.y:4484 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4485 +// line internal/php7/php7.y:4488 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4492 +// line internal/php7/php7.y:4495 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7173,7 +7176,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4503 +// line internal/php7/php7.y:4506 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7183,7 +7186,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4514 +// line internal/php7/php7.y:4517 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7196,7 +7199,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4525 +// line internal/php7/php7.y:4528 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7208,7 +7211,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4535 +// line internal/php7/php7.y:4538 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7224,7 +7227,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4549 +// line internal/php7/php7.y:4552 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7238,7 +7241,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4561 +// line internal/php7/php7.y:4564 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7250,7 +7253,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4571 +// line internal/php7/php7.y:4574 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7269,7 +7272,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4588 +// line internal/php7/php7.y:4591 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7286,13 +7289,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4606 +// line internal/php7/php7.y:4609 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4610 +// line internal/php7/php7.y:4613 { yyVAL.list = append( yyDollar[1].list, @@ -7307,13 +7310,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4623 +// line internal/php7/php7.y:4626 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4627 +// line internal/php7/php7.y:4630 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7328,7 +7331,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4643 +// line internal/php7/php7.y:4646 { name := &ast.Identifier{ Node: ast.Node{ @@ -7347,7 +7350,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4660 +// line internal/php7/php7.y:4663 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7369,7 +7372,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4680 +// line internal/php7/php7.y:4683 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7397,7 +7400,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4706 +// line internal/php7/php7.y:4709 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7412,7 +7415,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4719 +// line internal/php7/php7.y:4722 { name := &ast.Identifier{ Node: ast.Node{ @@ -7434,7 +7437,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4739 +// line internal/php7/php7.y:4742 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7458,7 +7461,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4761 +// line internal/php7/php7.y:4764 { yyVAL.node = yyDollar[2].node @@ -7468,7 +7471,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4772 +// line internal/php7/php7.y:4775 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7480,7 +7483,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4782 +// line internal/php7/php7.y:4785 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7503,7 +7506,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4803 +// line internal/php7/php7.y:4806 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7531,7 +7534,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4829 +// line internal/php7/php7.y:4832 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7550,7 +7553,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4849 +// line internal/php7/php7.y:4852 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7568,7 +7571,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4865 +// line internal/php7/php7.y:4868 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7590,7 +7593,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4885 +// line internal/php7/php7.y:4888 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7602,7 +7605,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4895 +// line internal/php7/php7.y:4898 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7614,7 +7617,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4905 +// line internal/php7/php7.y:4908 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7636,7 +7639,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4925 +// line internal/php7/php7.y:4928 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7648,7 +7651,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4935 +// line internal/php7/php7.y:4938 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7660,13 +7663,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4948 +// line internal/php7/php7.y:4951 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4952 +// line internal/php7/php7.y:4955 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7675,7 +7678,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4962 +// line internal/php7/php7.y:4965 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index c6bc108..e8ed084 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -989,15 +989,13 @@ statement: } | expr ';' { - $$ = &ast.StmtExpression{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = &ast.StmtExpression{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Expr: $1, + SemiColonTkn: $2, + } } | T_UNSET '(' unset_variables possible_comma ')' ';' { @@ -1366,22 +1364,23 @@ trait_declaration_statement: interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { - name := &ast.Identifier{ + $$ = &ast.StmtInterface{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $7), }, - IdentifierTkn: $2, - Value: $2.Value, + InterfaceTkn: $1, + InterfaceName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + Extends: $3, + OpenCurlyBracketTkn: $5, + Stmts: $6, + CloseCurlyBracketTkn: $7, } - $$ = &ast.StmtInterface{ast.Node{}, name, $3, $6} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $7) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Name, $5.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Stmts, $7.SkippedTokens) } ; @@ -2609,42 +2608,46 @@ property_list: property: T_VARIABLE backup_doc_comment { - identifier := &ast.Identifier{ + $$ = &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + Expr: nil, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtProperty{ast.Node{}, variable, nil} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' expr backup_doc_comment { - identifier := &ast.Identifier{ + $$ = &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokenNodePosition($1, $3), }, - IdentifierTkn: $1, - Value: $1.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + EqualTkn: $2, + Expr: $3, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtProperty{ast.Node{}, variable, $3} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index fb50e7f..c6311fd 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -438,7 +438,8 @@ func (n *StmtElseIf) Accept(v NodeVisitor) { // StmtExpression node type StmtExpression struct { Node - Expr Vertex + Expr Vertex + SemiColonTkn *token.Token } func (n *StmtExpression) Accept(v NodeVisitor) { @@ -594,9 +595,12 @@ func (n *StmtInlineHtml) Accept(v NodeVisitor) { // StmtInterface node type StmtInterface struct { Node - InterfaceName Vertex - Extends Vertex - Stmts []Vertex + InterfaceTkn *token.Token + InterfaceName Vertex + Extends Vertex + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtInterface) Accept(v NodeVisitor) { @@ -654,8 +658,9 @@ func (n *StmtNop) Accept(v NodeVisitor) { // StmtProperty node type StmtProperty struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *StmtProperty) Accept(v NodeVisitor) { From 43f6fab862d4c00f221c05203361624d2374afce Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 29 Nov 2020 21:50:33 +0200 Subject: [PATCH 080/140] [refactoring] update ast structure of "StmtPropertyList", "StmtTraitAdaptationList", "StmtTraitMethodRef" and "StmtTraitUseAlias" nodes --- internal/php5/php5.go | 1070 +++++++++++++++++---------------- internal/php5/php5.y | 184 +++--- internal/php7/php7.go | 1323 ++++++++++++++++++++--------------------- internal/php7/php7.y | 189 +++--- pkg/ast/node.go | 18 +- 5 files changed, 1406 insertions(+), 1378 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index a65caae..e0f7066 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6432 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -698,15 +698,15 @@ var yyAct = [...]int{ 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, 521, 259, 572, 591, 685, 994, 283, 572, 996, 285, 260, 261, 255, 840, 998, 980, 965, 260, 261, 964, - 896, 839, 836, 39, 572, 1012, 531, 566, 1006, 1013, - 1005, 725, 531, 531, 993, 572, 1016, 518, 716, 341, + 839, 836, 566, 39, 572, 1012, 531, 1006, 1005, 1013, + 725, 341, 531, 531, 993, 572, 1016, 518, 716, 698, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 698, 538, 259, 446, 231, 31, 231, 256, 654, - 531, 929, 296, 656, 655, 39, 260, 261, 449, 290, - 460, 39, 318, 657, 659, 660, 676, 677, 666, 314, - 147, 151, 155, 127, 403, 575, 165, 903, 478, 401, - 335, 945, 995, 1009, 198, 483, 343, 394, 389, 206, - 939, 164, 157, 161, 528, 231, 608, 997, 531, 970, + 679, 538, 929, 259, 446, 231, 31, 231, 256, 654, + 531, 290, 296, 656, 655, 39, 260, 261, 449, 460, + 318, 39, 314, 657, 659, 660, 676, 677, 666, 127, + 147, 151, 155, 403, 575, 903, 165, 401, 478, 335, + 945, 995, 1009, 483, 198, 343, 394, 389, 939, 206, + 896, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, 252, 835, 40, 568, 821, 262, 15, 14, 823, 720, @@ -1614,39 +1614,39 @@ var yyPgo = [...]int{ 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, - 1075, 1073, 1072, 12, 1071, 1070, 7, 21, 1069, 25, - 1067, 1065, 1064, 14, 39, 0, 1063, 1059, 1052, 391, - 619, 1050, 1049, 41, 4, 1041, 1032, 1031, 1019, 30, - 52, 1011, 1010, 1008, 3, 1007, 15, 1002, 1001, 1000, + 1075, 1073, 1072, 1071, 12, 1070, 1069, 7, 21, 1067, + 25, 1065, 1064, 1063, 14, 39, 0, 1059, 1052, 1050, + 391, 619, 1049, 1041, 41, 4, 1032, 1031, 1019, 1011, + 30, 52, 1010, 1008, 1007, 3, 1002, 15, 1001, 1000, 999, 996, 993, 992, 17, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, 960, 923, } var yyR1 = [...]int{ - 0, 151, 104, 104, 105, 105, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 106, 106, - 6, 6, 6, 6, 107, 107, 7, 7, 7, 7, - 108, 108, 8, 8, 8, 8, 55, 55, 109, 109, + 0, 151, 105, 105, 106, 106, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 107, 107, + 6, 6, 6, 6, 108, 108, 7, 7, 7, 7, + 109, 109, 8, 8, 8, 8, 55, 55, 110, 110, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 121, 121, 60, 60, 122, - 122, 123, 123, 61, 87, 87, 58, 53, 54, 149, + 28, 28, 28, 28, 28, 122, 122, 60, 60, 123, + 123, 124, 124, 61, 88, 88, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 98, 98, 2, 102, 102, 101, 101, 99, 99, 97, - 97, 96, 96, 96, 94, 94, 93, 93, 59, 59, - 88, 88, 89, 89, 89, 89, 120, 120, 120, 4, - 4, 95, 95, 116, 116, 117, 117, 56, 56, 57, - 57, 124, 124, 125, 125, 65, 65, 64, 64, 64, - 64, 84, 84, 84, 90, 90, 70, 70, 70, 70, - 82, 82, 29, 29, 29, 81, 81, 81, 81, 126, - 126, 67, 67, 67, 67, 69, 100, 100, 86, 86, - 130, 130, 131, 131, 71, 71, 72, 92, 92, 75, - 75, 74, 73, 73, 76, 76, 91, 91, 127, 127, - 128, 128, 132, 132, 77, 77, 77, 77, 77, 77, - 129, 129, 129, 129, 68, 68, 85, 85, 119, 119, - 118, 118, 138, 138, 136, 136, 137, 137, 137, 139, + 99, 99, 2, 103, 103, 102, 102, 100, 100, 98, + 98, 97, 97, 97, 95, 95, 94, 94, 59, 59, + 89, 89, 90, 90, 90, 90, 121, 121, 121, 4, + 4, 96, 96, 117, 117, 118, 118, 56, 56, 57, + 57, 125, 125, 126, 126, 65, 65, 64, 64, 64, + 64, 84, 84, 84, 91, 91, 70, 70, 70, 70, + 82, 82, 29, 29, 29, 81, 81, 81, 81, 127, + 127, 67, 67, 67, 67, 69, 101, 101, 87, 87, + 130, 130, 131, 131, 71, 71, 72, 93, 93, 75, + 75, 74, 73, 73, 76, 76, 92, 92, 128, 128, + 129, 129, 132, 132, 77, 77, 77, 77, 77, 77, + 86, 86, 86, 86, 68, 68, 85, 85, 120, 120, + 119, 119, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1655,8 +1655,8 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 103, 103, 115, - 115, 115, 115, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 104, 104, 116, + 116, 116, 116, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1671,11 +1671,11 @@ var yyR1 = [...]int{ 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 114, 114, 40, 40, - 40, 113, 113, 112, 112, 112, 112, 112, 112, 112, - 112, 110, 110, 110, 110, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 115, 115, 40, 40, + 40, 114, 114, 113, 113, 113, 113, 113, 113, 113, + 113, 111, 111, 111, 111, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 111, 111, 38, 38, 32, 32, 33, + 39, 39, 39, 112, 112, 38, 38, 32, 32, 33, 34, } @@ -1736,7 +1736,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -104, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -105, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1746,10 +1746,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -105, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -106, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -105, 144, 83, 10, -106, 37, 39, - -6, -105, 83, 146, 160, 147, 10, -109, -50, 148, + 159, 12, 148, -106, 144, 83, 10, -107, 37, 39, + -6, -106, 83, 146, 160, 147, 10, -110, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1758,87 +1758,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -105, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -106, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -133, 17, -110, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -105, 80, 83, + 148, -50, -16, 150, 150, -133, 17, -111, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -106, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -110, 17, 17, 76, -110, 150, 148, -113, - -112, -16, 153, 150, 150, 83, -84, 148, -105, 79, + -16, 150, -111, 17, 17, 76, -111, 150, 148, -114, + -113, -16, 153, 150, 150, 83, -84, 148, -106, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -104, -105, 146, 160, -107, -7, -105, 83, -108, -8, - -105, 83, 29, -105, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -95, -27, 147, 21, -149, - -119, -118, -16, -89, 144, 147, 146, 146, 146, 146, + -105, -106, 146, 160, -108, -7, -106, 83, -109, -8, + -106, 83, 29, -106, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -96, -27, 147, 21, -149, + -120, -119, -16, -90, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -45, -16, 147, -87, - -58, -21, -21, -17, -88, 10, -109, 146, 146, 10, - 148, -98, 56, -102, 56, 59, -16, 153, -16, -16, + -16, -16, -16, -16, -16, -16, -45, -16, 147, -88, + -58, -21, -21, -17, -89, 10, -110, 146, 146, 10, + 148, -99, 56, -103, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -114, -40, -21, 60, 83, -105, 79, 79, 149, 149, + -115, -40, -21, 60, 83, -106, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -105, 58, -12, 79, - -111, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -113, 151, -3, 160, 59, -19, -21, -15, - -15, 10, 149, -90, -52, -70, -17, -21, 153, 84, + 10, 144, -83, -84, 79, 83, -106, 58, -12, 79, + -112, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -114, 151, -3, 160, 59, -19, -21, -15, + -15, 10, 149, -91, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -104, 145, -84, -6, 146, 160, 29, -105, - 146, 160, 29, -105, 10, 29, 162, -30, -79, -9, - -33, -105, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -116, -109, - -109, -50, 146, 160, -120, 146, -120, 146, -29, -16, + -16, 146, -105, 145, -84, -6, 146, 160, 29, -106, + 146, 160, 29, -106, 10, 29, 162, -30, -79, -9, + -33, -106, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -117, -110, + -110, -50, 146, 160, -121, 146, -121, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, - 149, 160, 162, 145, 148, -124, -125, -65, -64, 61, - 62, -47, -105, 80, 83, -101, 57, -47, 144, -99, - -47, -17, -21, -21, 92, 149, 160, 148, -105, -139, + 149, 160, 162, 145, 148, -125, -126, -65, -64, 61, + 62, -47, -106, 80, 83, -102, 57, -47, 144, -100, + -47, -17, -21, -21, 92, 149, 160, 148, -106, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -105, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -106, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -105, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -117, 22, - 146, -119, -16, 145, 32, 33, -120, 31, -120, 145, - 162, -124, -16, 146, -58, -96, -21, 153, 60, -96, - -59, -27, 147, 10, -30, -121, 42, -124, 149, 160, - -149, 83, -105, 144, -99, -126, 160, -45, 162, -40, - -114, 150, -138, -140, -15, -143, 151, -16, -147, 150, + 152, 83, -106, 148, -134, -135, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -118, 22, + 146, -120, -16, 145, 32, 33, -121, 31, -121, 145, + 162, -125, -16, 146, -58, -97, -21, 153, 60, -97, + -59, -27, 147, 10, -30, -122, 42, -125, 149, 160, + -149, 83, -106, 144, -100, -127, 160, -45, 162, -40, + -115, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -105, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -106, -134, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -97, 59, -21, 148, - -97, -109, 162, -60, 43, 148, 149, -103, 45, -65, - -150, 84, -105, -126, 145, -67, -127, -68, -69, -128, + 146, 145, 146, 31, -30, 149, -98, 59, -21, 148, + -98, -110, 162, -60, 43, 148, 149, -104, 45, -65, + -150, 84, -106, -127, 145, -67, -128, -68, -69, -129, -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -119, -4, - -109, 146, -103, 149, -96, -114, 149, 28, -30, 144, - -47, 144, 144, 148, 12, 145, -129, 12, 146, 160, - -1, -77, 10, -100, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -109, 149, -109, 144, -93, - -27, 147, 149, -93, 146, -109, 12, -109, -109, -115, - 12, 153, 162, 146, 160, 162, 10, -149, 162, -86, - 160, 146, 144, -79, -109, -94, -27, 147, -109, -109, + 147, 149, -79, -79, -27, 96, -50, 147, -120, -4, + -110, 146, -104, 149, -97, -115, 149, 28, -30, 144, + -47, 144, 144, 148, 12, 145, -86, 12, 146, 160, + -1, -77, 10, -101, -47, 151, 145, 151, 151, -143, + -19, -79, 59, 146, 147, -110, 149, -110, 144, -94, + -27, 147, 149, -94, 146, -110, 12, -110, -110, -116, + 12, 153, 162, 146, 160, 162, 10, -149, 162, -87, + 160, 146, 144, -79, -110, -95, -27, 147, -110, -110, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -130, -131, -71, -72, -73, -74, - -75, -47, 10, -109, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -110, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -109, 12, -30, -124, -92, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -122, -123, -61, 42, -91, - 146, 144, -47, -61, 148, -109, -47, 145, 12, 149, - 144, -109, 145, + 146, -110, 12, -30, -125, -93, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -123, -124, -61, 42, -92, + 146, 144, -47, -61, 148, -110, -47, 145, 12, 149, + 144, -110, 145, } var yyDef = [...]int{ @@ -4653,15 +4653,15 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2458 { - yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, nil, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + }, + Modifiers: yyDollar[1].list, + Properties: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[3].token, + } } case 172: yyDollar = yyS[yypt-2 : yypt+1] @@ -4752,41 +4752,42 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2550 { - yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + Adaptations: yyDollar[2].list, + CloseParenthesisTkn: yyDollar[3].token, + } } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2563 +// line internal/php5/php5.y:2564 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2567 +// line internal/php5/php5.y:2568 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2574 +// line internal/php5/php5.y:2575 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2578 +// line internal/php5/php5.y:2579 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2586 { yyVAL.node = yyDollar[1].node @@ -4796,7 +4797,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2593 +// line internal/php5/php5.y:2594 { yyVAL.node = yyDollar[1].node @@ -4806,7 +4807,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2604 +// line internal/php5/php5.y:2605 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4820,7 +4821,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2619 +// line internal/php5/php5.y:2620 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4828,7 +4829,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2625 +// line internal/php5/php5.y:2626 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4837,97 +4838,94 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2635 +// line internal/php5/php5.y:2636 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2652 +// line internal/php5/php5.y:2651 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2658 { - target := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Trait: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2680 +// line internal/php5/php5.y:2678 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2698 +// line internal/php5/php5.y:2696 { - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + } } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2710 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2716 +// line internal/php5/php5.y:2714 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2723 +// line internal/php5/php5.y:2721 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4938,7 +4936,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2732 +// line internal/php5/php5.y:2730 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4951,13 +4949,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2746 +// line internal/php5/php5.y:2744 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2750 +// line internal/php5/php5.y:2748 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4971,31 +4969,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2765 +// line internal/php5/php5.y:2763 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2769 +// line internal/php5/php5.y:2767 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2776 +// line internal/php5/php5.y:2774 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2780 +// line internal/php5/php5.y:2778 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2787 +// line internal/php5/php5.y:2785 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5007,7 +5005,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2797 +// line internal/php5/php5.y:2795 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5019,7 +5017,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2807 +// line internal/php5/php5.y:2805 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5031,7 +5029,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2817 +// line internal/php5/php5.y:2815 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5043,7 +5041,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2827 +// line internal/php5/php5.y:2825 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5055,7 +5053,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2837 +// line internal/php5/php5.y:2835 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5067,9 +5065,9 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2850 +// line internal/php5/php5.y:2848 { - yyVAL.list = append(yyDollar[1].list, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, @@ -5085,13 +5083,18 @@ yydefault: Value: yyDollar[3].token.Value, }, }, - }) + } + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, item) + + yyVAL.node = yyDollar[1].node } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2870 +// line internal/php5/php5.y:2873 { - yyVAL.list = append(yyDollar[1].list, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), }, @@ -5109,62 +5112,71 @@ yydefault: }, EqualTkn: yyDollar[4].token, Expr: yyDollar[5].node, - }) + } + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, item) + + yyVAL.node = yyDollar[1].node } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2892 +// line internal/php5/php5.y:2900 { - yyVAL.list = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, - Var: &ast.ExprVariable{ + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, }, + Expr: nil, }, - Expr: nil, }, } } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2915 +// line internal/php5/php5.y:2925 { - yyVAL.list = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, - Var: &ast.ExprVariable{ + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, }, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, }, - EqualTkn: yyDollar[2].token, - Expr: yyDollar[3].node, }, } } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2942 +// line internal/php5/php5.y:2954 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5190,7 +5202,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2966 +// line internal/php5/php5.y:2978 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5219,7 +5231,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2996 +// line internal/php5/php5.y:3008 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5228,7 +5240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3003 +// line internal/php5/php5.y:3015 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5236,19 +5248,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3013 +// line internal/php5/php5.y:3025 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3017 +// line internal/php5/php5.y:3029 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3024 +// line internal/php5/php5.y:3036 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5257,25 +5269,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3031 +// line internal/php5/php5.y:3043 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3038 +// line internal/php5/php5.y:3050 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3042 +// line internal/php5/php5.y:3054 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3049 +// line internal/php5/php5.y:3061 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5289,7 +5301,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3061 +// line internal/php5/php5.y:3073 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5303,37 +5315,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3076 +// line internal/php5/php5.y:3088 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3080 +// line internal/php5/php5.y:3092 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3084 +// line internal/php5/php5.y:3096 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3091 +// line internal/php5/php5.y:3103 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3095 +// line internal/php5/php5.y:3107 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3102 +// line internal/php5/php5.y:3114 { if yyDollar[3].node != nil { @@ -5349,7 +5361,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3131 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5366,7 +5378,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3134 +// line internal/php5/php5.y:3146 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5379,7 +5391,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3145 +// line internal/php5/php5.y:3157 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5393,7 +5405,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3157 +// line internal/php5/php5.y:3169 { var _new *ast.ExprNew @@ -5420,7 +5432,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3182 +// line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5432,7 +5444,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3204 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5444,7 +5456,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3202 +// line internal/php5/php5.y:3214 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5457,7 +5469,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3213 +// line internal/php5/php5.y:3225 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5470,7 +5482,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3224 +// line internal/php5/php5.y:3236 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5483,7 +5495,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3235 +// line internal/php5/php5.y:3247 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5496,7 +5508,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3246 +// line internal/php5/php5.y:3258 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5509,7 +5521,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3257 +// line internal/php5/php5.y:3269 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5522,7 +5534,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3268 +// line internal/php5/php5.y:3280 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5535,7 +5547,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3279 +// line internal/php5/php5.y:3291 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5548,7 +5560,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3290 +// line internal/php5/php5.y:3302 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5561,7 +5573,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3301 +// line internal/php5/php5.y:3313 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5574,7 +5586,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3312 +// line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5599,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3323 +// line internal/php5/php5.y:3335 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5600,7 +5612,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3334 +// line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5612,7 +5624,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3344 +// line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5625,7 +5637,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3355 +// line internal/php5/php5.y:3367 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5637,7 +5649,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3365 +// line internal/php5/php5.y:3377 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5650,7 +5662,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3376 +// line internal/php5/php5.y:3388 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5663,7 +5675,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3387 +// line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5676,7 +5688,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3398 +// line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5701,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3409 +// line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5714,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3420 +// line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5727,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3431 +// line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5740,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3442 +// line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5741,7 +5753,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3453 +// line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5765,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3463 +// line internal/php5/php5.y:3475 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5766,7 +5778,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3474 +// line internal/php5/php5.y:3486 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5779,7 +5791,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3485 +// line internal/php5/php5.y:3497 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,7 +5804,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3496 +// line internal/php5/php5.y:3508 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5817,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3507 +// line internal/php5/php5.y:3519 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5830,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3518 +// line internal/php5/php5.y:3530 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5843,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3529 +// line internal/php5/php5.y:3541 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5856,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3540 +// line internal/php5/php5.y:3552 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,7 +5869,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3551 +// line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5869,7 +5881,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3561 +// line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5881,7 +5893,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3571 +// line internal/php5/php5.y:3583 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5893,7 +5905,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3581 +// line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5905,7 +5917,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3603 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5918,7 +5930,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3602 +// line internal/php5/php5.y:3614 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5931,7 +5943,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3613 +// line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5944,7 +5956,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3624 +// line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5958,7 +5970,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3636 +// line internal/php5/php5.y:3648 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5971,7 +5983,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3647 +// line internal/php5/php5.y:3659 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5984,7 +5996,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3658 +// line internal/php5/php5.y:3670 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5997,7 +6009,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3669 +// line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6010,7 +6022,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3680 +// line internal/php5/php5.y:3692 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6023,19 +6035,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3691 +// line internal/php5/php5.y:3703 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3695 +// line internal/php5/php5.y:3707 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3699 +// line internal/php5/php5.y:3711 { yyVAL.node = yyDollar[2].node @@ -6067,7 +6079,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3729 +// line internal/php5/php5.y:3741 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6081,7 +6093,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3741 +// line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6095,13 +6107,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3753 +// line internal/php5/php5.y:3765 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3757 +// line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6114,7 +6126,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3768 +// line internal/php5/php5.y:3780 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6127,7 +6139,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3779 +// line internal/php5/php5.y:3791 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6140,7 +6152,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3790 +// line internal/php5/php5.y:3802 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6153,7 +6165,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3801 +// line internal/php5/php5.y:3813 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6166,7 +6178,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3812 +// line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6179,7 +6191,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3823 +// line internal/php5/php5.y:3835 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6192,7 +6204,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3834 +// line internal/php5/php5.y:3846 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6212,7 +6224,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3864 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6224,25 +6236,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3862 +// line internal/php5/php5.y:3874 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3866 +// line internal/php5/php5.y:3878 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3870 +// line internal/php5/php5.y:3882 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3874 +// line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6254,7 +6266,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3884 +// line internal/php5/php5.y:3896 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6266,7 +6278,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3894 +// line internal/php5/php5.y:3906 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6278,7 +6290,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3904 +// line internal/php5/php5.y:3916 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6297,7 +6309,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3921 +// line internal/php5/php5.y:3933 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6317,7 +6329,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3942 +// line internal/php5/php5.y:3954 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6329,7 +6341,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3952 +// line internal/php5/php5.y:3964 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6341,7 +6353,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3962 +// line internal/php5/php5.y:3974 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6354,7 +6366,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3973 +// line internal/php5/php5.y:3985 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6367,7 +6379,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3987 +// line internal/php5/php5.y:3999 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6380,7 +6392,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3998 +// line internal/php5/php5.y:4010 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6393,7 +6405,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4009 +// line internal/php5/php5.y:4021 { str := &ast.ScalarString{ Node: ast.Node{ @@ -6413,7 +6425,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4027 +// line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6426,7 +6438,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4041 +// line internal/php5/php5.y:4053 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6440,7 +6452,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4053 +// line internal/php5/php5.y:4065 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6453,19 +6465,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4067 +// line internal/php5/php5.y:4079 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4074 +// line internal/php5/php5.y:4086 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4078 +// line internal/php5/php5.y:4090 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6479,7 +6491,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4093 +// line internal/php5/php5.y:4105 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6500,7 +6512,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4112 +// line internal/php5/php5.y:4124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6524,7 +6536,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4134 +// line internal/php5/php5.y:4146 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6544,7 +6556,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4152 +// line internal/php5/php5.y:4164 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6567,7 +6579,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4176 +// line internal/php5/php5.y:4188 { name := &ast.NameName{ Node: ast.Node{ @@ -6582,7 +6594,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4189 +// line internal/php5/php5.y:4201 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6599,7 +6611,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4204 +// line internal/php5/php5.y:4216 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6615,7 +6627,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4218 +// line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6628,7 +6640,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4229 +// line internal/php5/php5.y:4241 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6641,7 +6653,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4240 +// line internal/php5/php5.y:4252 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6654,7 +6666,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4251 +// line internal/php5/php5.y:4263 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6667,7 +6679,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4262 +// line internal/php5/php5.y:4274 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6679,7 +6691,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4275 +// line internal/php5/php5.y:4287 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6691,7 +6703,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4297 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6702,7 +6714,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4294 +// line internal/php5/php5.y:4306 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6715,7 +6727,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4317 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6727,7 +6739,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4318 +// line internal/php5/php5.y:4330 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6738,7 +6750,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4327 +// line internal/php5/php5.y:4339 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6751,7 +6763,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4338 +// line internal/php5/php5.y:4350 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6763,19 +6775,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4363 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4355 +// line internal/php5/php5.y:4367 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4362 +// line internal/php5/php5.y:4374 { yyVAL.node = yyDollar[1].node @@ -6816,25 +6828,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4401 +// line internal/php5/php5.y:4413 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4409 +// line internal/php5/php5.y:4421 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4413 +// line internal/php5/php5.y:4425 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4421 +// line internal/php5/php5.y:4433 { yyVAL.list = yyDollar[2].list @@ -6843,13 +6855,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4431 +// line internal/php5/php5.y:4443 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4435 +// line internal/php5/php5.y:4447 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6865,19 +6877,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4449 +// line internal/php5/php5.y:4461 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4456 +// line internal/php5/php5.y:4468 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4460 +// line internal/php5/php5.y:4472 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6891,25 +6903,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4472 +// line internal/php5/php5.y:4484 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4479 +// line internal/php5/php5.y:4491 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4483 +// line internal/php5/php5.y:4495 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4490 +// line internal/php5/php5.y:4502 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6921,7 +6933,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4500 +// line internal/php5/php5.y:4512 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6933,7 +6945,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4522 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6945,7 +6957,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4520 +// line internal/php5/php5.y:4532 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6957,7 +6969,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4530 +// line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6969,7 +6981,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4552 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6981,7 +6993,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4550 +// line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6993,7 +7005,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4560 +// line internal/php5/php5.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7005,7 +7017,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4570 +// line internal/php5/php5.y:4582 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7017,7 +7029,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4580 +// line internal/php5/php5.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7029,7 +7041,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4590 +// line internal/php5/php5.y:4602 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7050,7 +7062,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4609 +// line internal/php5/php5.y:4621 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7062,7 +7074,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4634 { target := &ast.Identifier{ Node: ast.Node{ @@ -7082,25 +7094,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4643 +// line internal/php5/php5.y:4655 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4650 +// line internal/php5/php5.y:4662 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4654 +// line internal/php5/php5.y:4666 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4658 +// line internal/php5/php5.y:4670 { name := &ast.NameName{ Node: ast.Node{ @@ -7115,7 +7127,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4671 +// line internal/php5/php5.y:4683 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7132,7 +7144,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4686 +// line internal/php5/php5.y:4698 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7148,7 +7160,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4700 +// line internal/php5/php5.y:4712 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -7162,7 +7174,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4712 +// line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -7175,13 +7187,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4723 +// line internal/php5/php5.y:4735 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4727 +// line internal/php5/php5.y:4739 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7193,13 +7205,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4737 +// line internal/php5/php5.y:4749 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4744 +// line internal/php5/php5.y:4756 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7212,7 +7224,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4755 +// line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7225,7 +7237,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4766 +// line internal/php5/php5.y:4778 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7238,7 +7250,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4777 +// line internal/php5/php5.y:4789 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7251,7 +7263,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4788 +// line internal/php5/php5.y:4800 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7264,7 +7276,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4799 +// line internal/php5/php5.y:4811 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7277,7 +7289,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4810 +// line internal/php5/php5.y:4822 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7290,7 +7302,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4821 +// line internal/php5/php5.y:4833 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7302,7 +7314,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4831 +// line internal/php5/php5.y:4843 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7314,7 +7326,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4841 +// line internal/php5/php5.y:4853 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7327,7 +7339,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4852 +// line internal/php5/php5.y:4864 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7340,7 +7352,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4863 +// line internal/php5/php5.y:4875 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7353,7 +7365,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4874 +// line internal/php5/php5.y:4886 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7366,7 +7378,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4885 +// line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7379,7 +7391,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4896 +// line internal/php5/php5.y:4908 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7392,7 +7404,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4907 +// line internal/php5/php5.y:4919 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7405,7 +7417,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4918 +// line internal/php5/php5.y:4930 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7418,7 +7430,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4929 +// line internal/php5/php5.y:4941 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7431,7 +7443,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4940 +// line internal/php5/php5.y:4952 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7444,7 +7456,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4951 +// line internal/php5/php5.y:4963 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7457,7 +7469,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4962 +// line internal/php5/php5.y:4974 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7470,7 +7482,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4973 +// line internal/php5/php5.y:4985 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7483,7 +7495,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4984 +// line internal/php5/php5.y:4996 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7496,7 +7508,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4995 +// line internal/php5/php5.y:5007 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7510,7 +7522,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5007 +// line internal/php5/php5.y:5019 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7523,7 +7535,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5018 +// line internal/php5/php5.y:5030 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7536,7 +7548,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5029 +// line internal/php5/php5.y:5041 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7549,7 +7561,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5040 +// line internal/php5/php5.y:5052 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7562,7 +7574,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5051 +// line internal/php5/php5.y:5063 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7576,7 +7588,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5063 +// line internal/php5/php5.y:5075 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7590,7 +7602,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5075 +// line internal/php5/php5.y:5087 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7602,7 +7614,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5085 +// line internal/php5/php5.y:5097 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7614,7 +7626,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5095 +// line internal/php5/php5.y:5107 { yyVAL.node = yyDollar[2].node @@ -7624,13 +7636,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5106 +// line internal/php5/php5.y:5118 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5110 +// line internal/php5/php5.y:5122 { name := &ast.NameName{ Node: ast.Node{ @@ -7645,7 +7657,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5123 +// line internal/php5/php5.y:5135 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7662,7 +7674,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5138 +// line internal/php5/php5.y:5150 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7678,7 +7690,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5155 +// line internal/php5/php5.y:5167 { name := &ast.Identifier{ Node: ast.Node{ @@ -7697,25 +7709,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5172 +// line internal/php5/php5.y:5184 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5176 +// line internal/php5/php5.y:5188 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5180 +// line internal/php5/php5.y:5192 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5184 +// line internal/php5/php5.y:5196 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7728,7 +7740,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5195 +// line internal/php5/php5.y:5207 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7741,7 +7753,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5206 +// line internal/php5/php5.y:5218 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7753,13 +7765,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5219 +// line internal/php5/php5.y:5231 { yyVAL.list = nil } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5223 +// line internal/php5/php5.y:5235 { yyVAL.list = yyDollar[1].list @@ -7770,19 +7782,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5235 +// line internal/php5/php5.y:5247 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5239 +// line internal/php5/php5.y:5251 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5246 +// line internal/php5/php5.y:5258 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7797,7 +7809,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5259 +// line internal/php5/php5.y:5271 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -7811,7 +7823,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5271 +// line internal/php5/php5.y:5283 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7825,7 +7837,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5283 +// line internal/php5/php5.y:5295 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -7838,19 +7850,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5297 +// line internal/php5/php5.y:5309 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5301 +// line internal/php5/php5.y:5313 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5308 +// line internal/php5/php5.y:5320 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7867,7 +7879,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5323 +// line internal/php5/php5.y:5335 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7884,25 +7896,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5342 +// line internal/php5/php5.y:5354 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5350 +// line internal/php5/php5.y:5362 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5357 +// line internal/php5/php5.y:5369 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5364 +// line internal/php5/php5.y:5376 { yyVAL.node = yyDollar[1].node @@ -7960,25 +7972,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5420 +// line internal/php5/php5.y:5432 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5427 +// line internal/php5/php5.y:5439 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5431 +// line internal/php5/php5.y:5443 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5439 +// line internal/php5/php5.y:5451 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -7992,7 +8004,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5466 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8006,7 +8018,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5466 +// line internal/php5/php5.y:5478 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8020,7 +8032,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5481 +// line internal/php5/php5.y:5493 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8029,31 +8041,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5491 +// line internal/php5/php5.y:5503 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5495 +// line internal/php5/php5.y:5507 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5499 +// line internal/php5/php5.y:5511 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5506 +// line internal/php5/php5.y:5518 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5510 +// line internal/php5/php5.y:5522 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8065,7 +8077,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5523 +// line internal/php5/php5.y:5535 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8078,7 +8090,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5534 +// line internal/php5/php5.y:5546 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8091,13 +8103,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5548 +// line internal/php5/php5.y:5560 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5555 +// line internal/php5/php5.y:5567 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8110,7 +8122,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5566 +// line internal/php5/php5.y:5578 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8123,31 +8135,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5580 +// line internal/php5/php5.y:5592 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5584 +// line internal/php5/php5.y:5596 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5588 +// line internal/php5/php5.y:5600 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5596 +// line internal/php5/php5.y:5608 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5600 +// line internal/php5/php5.y:5612 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8159,13 +8171,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5622 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5617 +// line internal/php5/php5.y:5629 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8178,7 +8190,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5628 +// line internal/php5/php5.y:5640 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8191,13 +8203,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5639 +// line internal/php5/php5.y:5651 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5647 +// line internal/php5/php5.y:5659 { name := &ast.Identifier{ Node: ast.Node{ @@ -8216,7 +8228,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5676 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8230,25 +8242,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5679 +// line internal/php5/php5.y:5691 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5683 +// line internal/php5/php5.y:5695 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5691 +// line internal/php5/php5.y:5703 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5695 +// line internal/php5/php5.y:5707 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8258,20 +8270,6 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5706 - { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} - yyVAL.list = append(yyDollar[1].list, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) - } - case 470: - yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5718 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} @@ -8284,9 +8282,23 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } + case 470: + yyDollar = yyS[yypt-4 : yypt+1] +// line internal/php5/php5.y:5730 + { + fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + yyVAL.list = append(yyDollar[1].list, fetch) + + // save position + fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) + + // save comments + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) + } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5730 +// line internal/php5/php5.y:5742 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8296,7 +8308,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5741 +// line internal/php5/php5.y:5753 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8308,7 +8320,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5751 +// line internal/php5/php5.y:5763 { yyVAL.node = yyDollar[2].node @@ -8321,7 +8333,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5765 +// line internal/php5/php5.y:5777 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8334,7 +8346,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5776 +// line internal/php5/php5.y:5788 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8351,7 +8363,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5794 +// line internal/php5/php5.y:5806 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -8364,7 +8376,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5805 +// line internal/php5/php5.y:5817 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -8374,7 +8386,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5817 +// line internal/php5/php5.y:5829 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8386,7 +8398,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5827 +// line internal/php5/php5.y:5839 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} @@ -8402,19 +8414,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5841 +// line internal/php5/php5.y:5853 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5849 +// line internal/php5/php5.y:5861 { yyVAL.list = []ast.Vertex{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5853 +// line internal/php5/php5.y:5865 { yyVAL.list = yyDollar[1].list @@ -8429,7 +8441,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5869 +// line internal/php5/php5.y:5881 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8444,7 +8456,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5882 +// line internal/php5/php5.y:5894 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, arrayItem) @@ -8458,7 +8470,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5894 +// line internal/php5/php5.y:5906 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8472,7 +8484,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5906 +// line internal/php5/php5.y:5918 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{arrayItem} @@ -8485,7 +8497,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5917 +// line internal/php5/php5.y:5929 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} @@ -8503,7 +8515,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5933 +// line internal/php5/php5.y:5945 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8519,7 +8531,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5947 +// line internal/php5/php5.y:5959 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -8536,7 +8548,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5962 +// line internal/php5/php5.y:5974 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -8551,13 +8563,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5978 +// line internal/php5/php5.y:5990 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5982 +// line internal/php5/php5.y:5994 { yyVAL.list = append( yyDollar[1].list, @@ -8572,13 +8584,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5995 +// line internal/php5/php5.y:6007 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5999 +// line internal/php5/php5.y:6011 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8593,7 +8605,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6015 +// line internal/php5/php5.y:6027 { name := &ast.Identifier{ Node: ast.Node{ @@ -8612,7 +8624,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6032 +// line internal/php5/php5.y:6044 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8634,7 +8646,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6052 +// line internal/php5/php5.y:6064 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8662,7 +8674,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6078 +// line internal/php5/php5.y:6090 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8677,7 +8689,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6091 +// line internal/php5/php5.y:6103 { name := &ast.Identifier{ Node: ast.Node{ @@ -8699,7 +8711,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6111 +// line internal/php5/php5.y:6123 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8723,7 +8735,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6133 +// line internal/php5/php5.y:6145 { yyVAL.node = yyDollar[2].node @@ -8733,7 +8745,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6144 +// line internal/php5/php5.y:6156 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8745,7 +8757,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6154 +// line internal/php5/php5.y:6166 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8774,7 +8786,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6181 +// line internal/php5/php5.y:6193 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8793,7 +8805,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6201 +// line internal/php5/php5.y:6213 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8807,7 +8819,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6213 +// line internal/php5/php5.y:6225 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8829,7 +8841,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6233 +// line internal/php5/php5.y:6245 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8851,7 +8863,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6253 +// line internal/php5/php5.y:6265 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8863,7 +8875,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6263 +// line internal/php5/php5.y:6275 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8875,7 +8887,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6273 +// line internal/php5/php5.y:6285 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8897,7 +8909,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6293 +// line internal/php5/php5.y:6305 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8909,7 +8921,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6303 +// line internal/php5/php5.y:6315 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8921,13 +8933,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6316 +// line internal/php5/php5.y:6328 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6320 +// line internal/php5/php5.y:6332 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8936,19 +8948,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6330 +// line internal/php5/php5.y:6342 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6334 +// line internal/php5/php5.y:6346 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6341 +// line internal/php5/php5.y:6353 { target := &ast.Identifier{ Node: ast.Node{ @@ -8968,7 +8980,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6359 +// line internal/php5/php5.y:6371 { target := &ast.Identifier{ Node: ast.Node{ @@ -8988,7 +9000,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6380 +// line internal/php5/php5.y:6392 { target := &ast.Identifier{ Node: ast.Node{ @@ -9008,7 +9020,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6401 +// line internal/php5/php5.y:6413 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 96d22d7..19cb72b 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -237,7 +237,7 @@ import ( %type trait_use_statement function_call_parameter trait_adaptation_statement trait_precedence trait_alias %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method %type static_scalar_value static_operation static_var_list global_var_list -%type ctor_arguments function_call_parameter_list echo_expr_list +%type ctor_arguments function_call_parameter_list echo_expr_list class_variable_declaration %type trait_adaptations unset_variables declare_list %type switch_case_list non_empty_function_call_parameter_list %type method_body trait_reference_list @@ -253,7 +253,7 @@ import ( %type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list -%type class_statement_list variable_modifiers method_modifiers class_variable_declaration +%type class_statement_list variable_modifiers method_modifiers %type trait_adaptation_list non_empty_trait_adaptation_list %type non_empty_member_modifiers backticks_expr static_array_pair_list non_empty_static_array_pair_list @@ -2456,15 +2456,15 @@ class_statement_list: class_statement: variable_modifiers class_variable_declaration ';' { - $$ = &ast.StmtPropertyList{ast.Node{}, $1, nil, $2} - - // save position - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $3.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $3.SkippedTokens) + $$ = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $3), + }, + Modifiers: $1, + Properties: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $3, + } } | class_constant_declaration ';' { @@ -2548,13 +2548,14 @@ trait_adaptations: } | '{' trait_adaptation_list '}' { - $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} - - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.SkippedTokens) + $$ = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenParenthesisTkn: $1, + Adaptations: $2, + CloseParenthesisTkn: $3, + } } ; @@ -2633,20 +2634,18 @@ trait_reference_list: trait_method_reference: T_STRING { - name := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | trait_method_reference_fully_qualified { @@ -2657,53 +2656,52 @@ trait_method_reference: trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Trait: $1, + DoubleColonTkn: $2, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($4), + Position: position.NewNodeTokenPosition($1, $4), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, }, - IdentifierTkn: $4, - Value: $4.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS member_modifier { - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + $$ = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + } } ; @@ -2848,7 +2846,7 @@ member_modifier: class_variable_declaration: class_variable_declaration ',' T_VARIABLE { - $$ = append($1, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition($3), }, @@ -2864,11 +2862,16 @@ class_variable_declaration: Value: $3.Value, }, }, - }) + } + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, item) + + $$ = $1 } | class_variable_declaration ',' T_VARIABLE '=' static_scalar { - $$ = append($1, &ast.StmtProperty{ + item := &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenNodePosition($3, $5), }, @@ -2886,52 +2889,61 @@ class_variable_declaration: }, EqualTkn: $4, Expr: $5, - }) + } + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, item) + + $$ = $1 } | T_VARIABLE { - $$ = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, - Var: &ast.ExprVariable{ + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, }, + Expr: nil, }, - Expr: nil, }, } } | T_VARIABLE '=' static_scalar { - $$ = []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, - Var: &ast.ExprVariable{ + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.StmtProperty{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokenNodePosition($1, $3), }, - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, }, + EqualTkn: $2, + Expr: $3, }, - EqualTkn: $2, - Expr: $3, }, } } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 3ef5b9f..f1be513 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4972 +// line internal/php7/php7.y:4971 // line yacctab:1 var yyExca = [...]int{ @@ -626,10 +626,10 @@ var yyAct = [...]int{ 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, 780, 781, 856, 111, 744, 632, 225, 848, 528, 865, - 879, 533, 260, 261, 855, 838, 328, 841, 676, 255, - 796, 859, 136, 385, 371, 114, 656, 852, 934, 877, - 890, 891, 886, 662, 845, 227, 892, 893, 43, 885, - 42, 237, 16, 853, 539, 897, 898, 730, 15, 872, + 879, 533, 260, 261, 855, 328, 841, 676, 255, 796, + 385, 859, 136, 371, 656, 114, 852, 934, 662, 877, + 890, 891, 886, 845, 227, 43, 892, 893, 42, 885, + 16, 237, 838, 853, 539, 897, 898, 730, 15, 872, 830, 151, 786, 896, 903, 606, 271, 905, 49, 217, 218, 902, 48, 110, 886, 908, 50, 84, 904, 82, 72, 885, 204, 205, 206, 207, 208, 209, 210, 211, @@ -1427,11 +1427,11 @@ var yyPgo = [...]int{ 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, 907, 905, 890, 8, 889, 80, 41, 887, 56, 49, 886, 883, 882, 878, 876, 86, 875, 871, 870, 10, - 868, 87, 864, 862, 860, 12, 858, 855, 46, 39, - 40, 2, 16, 667, 43, 85, 854, 853, 848, 13, - 847, 846, 555, 844, 45, 71, 843, 840, 6, 721, - 20, 540, 839, 18, 838, 837, 36, 836, 25, 33, - 835, 37, 830, 530, 829, 828, 826, 34, 99, 1, + 868, 87, 864, 862, 860, 858, 12, 855, 854, 46, + 39, 40, 2, 16, 667, 43, 85, 853, 848, 847, + 13, 846, 844, 555, 843, 45, 71, 840, 839, 6, + 721, 20, 540, 838, 18, 837, 836, 36, 835, 25, + 33, 37, 830, 530, 829, 828, 826, 34, 99, 1, 3, 825, 17, 824, 817, 810, 809, 804, 28, } @@ -1444,28 +1444,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, - 118, 103, 103, 10, 10, 10, 9, 9, 9, 9, + 118, 104, 104, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 99, 99, 16, 16, 18, 18, 7, 7, 109, - 109, 108, 108, 113, 113, 17, 17, 20, 20, 19, + 9, 100, 100, 16, 16, 18, 18, 7, 7, 110, + 110, 109, 109, 113, 113, 17, 17, 20, 20, 19, 19, 71, 71, 119, 119, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 104, 104, 68, 68, - 26, 26, 93, 93, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 83, 83, 14, 15, 94, 94, - 96, 96, 95, 95, 100, 100, 100, 100, 90, 90, - 89, 89, 25, 25, 87, 87, 87, 87, 111, 111, - 111, 8, 8, 91, 91, 74, 74, 70, 70, 76, - 76, 73, 73, 120, 120, 121, 121, 29, 29, 30, - 30, 82, 82, 80, 80, 80, 81, 81, 84, 84, + 11, 11, 11, 11, 11, 11, 105, 105, 68, 68, + 26, 26, 94, 94, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 84, 84, 14, 15, 95, 95, + 97, 97, 96, 96, 101, 101, 101, 101, 91, 91, + 90, 90, 25, 25, 88, 88, 88, 88, 111, 111, + 111, 8, 8, 92, 92, 75, 75, 70, 70, 77, + 77, 74, 74, 120, 120, 121, 121, 29, 29, 30, + 30, 83, 83, 81, 81, 81, 82, 82, 85, 85, 72, 72, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 122, 122, 37, 37, 37, 37, 69, 69, 86, - 86, 86, 112, 112, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 88, 88, 124, 124, 123, 123, - 125, 125, 98, 98, 98, 98, 98, 98, 110, 110, - 43, 43, 105, 105, 75, 21, 67, 67, 44, 106, - 106, 107, 107, 46, 45, 45, 32, 32, 32, 32, + 36, 122, 122, 37, 37, 37, 37, 69, 69, 87, + 87, 87, 112, 112, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 89, 89, 124, 124, 123, 123, + 125, 125, 99, 99, 99, 99, 99, 99, 73, 73, + 43, 43, 106, 106, 76, 21, 67, 67, 44, 107, + 107, 108, 108, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1473,19 +1473,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 92, 92, 128, 3, 3, 97, 97, + 32, 32, 32, 93, 93, 128, 3, 3, 98, 98, 114, 114, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 102, 102, 102, 85, 85, 58, + 48, 48, 51, 51, 103, 103, 103, 86, 86, 58, 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, - 64, 64, 55, 55, 55, 56, 56, 56, 117, 78, - 78, 116, 116, 77, 77, 77, 77, 77, 77, 77, - 101, 101, 101, 101, 65, 65, 65, 65, 65, 65, + 64, 64, 55, 55, 55, 56, 56, 56, 117, 79, + 79, 116, 116, 78, 78, 78, 78, 78, 78, 78, + 102, 102, 102, 102, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 115, 115, 79, + 50, 50, 115, 115, 80, } var yyR2 = [...]int{ @@ -1543,44 +1543,44 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -118, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -70, -73, 21, 20, 23, + 52, 80, 45, 39, 144, -70, -74, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -74, -76, -28, -32, -83, 7, -62, -63, + 54, 55, -75, -77, -28, -32, -84, 7, -62, -63, -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -52, 143, 97, 98, 107, -92, 100, 101, + 6, 158, -52, 143, 97, 98, 107, -93, 100, 101, -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -103, 83, 148, 83, -103, 144, 10, - -18, -99, -113, -103, 83, 37, 39, -19, -20, -71, + -61, 61, 18, -104, 83, 148, 83, -104, 144, 10, + -18, -100, -113, -104, 83, 37, 39, -19, -20, -71, -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -92, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -93, -36, 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -83, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -84, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -117, -116, -78, -77, -23, 153, + 150, 144, 58, 148, -117, -116, -79, -78, -23, 153, 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -102, 17, -101, -65, 12, + -23, -23, -51, 148, -23, -103, 17, -102, -65, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -101, -101, 17, -3, 144, -49, - -84, 148, -84, 148, 83, -103, 149, -103, 146, 144, - -118, 146, -16, -113, -103, 83, 146, 160, 83, 29, - -103, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -106, -107, -23, + -23, -23, 17, 76, -102, -102, 17, -3, 144, -49, + -85, 148, -85, 148, 83, -104, 149, -104, 146, 144, + -118, 146, -16, -113, -104, 83, 146, 160, 83, 29, + -104, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -107, -108, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -93, -27, -28, -23, -71, -119, 146, 146, 10, - -128, 10, -94, 56, -128, -96, 56, 148, -11, 148, + -23, -94, -27, -28, -23, -71, -119, 146, 146, 10, + -128, 10, -95, 56, -128, -97, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -56, 10, 144, -49, -117, 151, 160, 59, -28, -23, @@ -1594,48 +1594,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -85, -84, 79, 150, 144, 58, 79, -85, -115, -79, + -86, -85, 79, 150, 144, 58, 79, -86, -115, -80, -23, -23, -23, 76, 76, 142, 148, -23, 149, -72, -31, -23, 84, -117, 10, 146, -118, 145, 146, 146, - 83, -103, -19, 83, -103, 144, 10, 83, -21, -23, + 83, -104, -19, 83, -104, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -94, - -95, 57, -10, 144, -128, -69, -10, -23, -23, -119, - -23, 149, 151, 145, -84, -23, 149, 162, -78, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -95, + -96, 57, -10, 144, -128, -69, -10, -23, -23, -119, + -23, 149, 151, 145, -85, -23, 149, 162, -79, -23, 153, 60, -117, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -84, -23, - -84, -49, -24, -23, -56, -49, -94, -7, 160, 149, - 149, -120, -121, -29, -30, -82, -80, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -109, - -17, -20, -99, 144, -128, 149, -91, -11, 147, -23, - -106, -23, -87, 144, 147, -23, 149, -27, -100, -28, - 153, 60, 150, -25, -11, 147, -104, 148, -120, -95, + 12, 10, 145, 145, 150, 145, -23, 151, -85, -23, + -85, -49, -24, -23, -56, -49, -95, -7, 160, 149, + 149, -120, -121, -29, -30, -83, -81, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -110, + -17, -20, -100, 144, -128, 149, -92, -11, 147, -23, + -107, -23, -88, 144, 147, -23, 149, -27, -101, -28, + 153, 60, 150, -25, -11, 147, -105, 148, -120, -96, -128, -69, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -95, 149, -79, 149, 160, -1, 153, -80, - 149, -31, -108, -20, 144, -7, 160, -20, -109, 146, + 151, 145, -96, 149, -80, 149, 160, -1, 153, -81, + 149, -31, -109, -20, 144, -7, 160, -20, -110, 146, -119, 149, 146, -111, 146, -111, 146, 146, 149, 59, -28, 148, -117, -119, -26, 42, 43, -120, 149, -128, - 144, 145, -37, -124, -123, 45, -125, 48, -98, 104, + 144, 145, -37, -124, -123, 45, -125, 48, -99, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -119, -23, -117, 151, -128, -81, 147, -29, -2, 84, - -7, 160, -108, 145, -17, -7, 22, 146, -106, 145, - 32, 33, -111, 31, -111, -89, -11, 147, -100, -28, - -117, 151, 28, 148, 144, 149, -97, 45, 144, -122, - -30, 39, 37, -69, -98, 145, -119, 149, 145, 144, - -128, -82, 12, 145, -20, -7, 145, 146, 149, -23, + -119, -23, -117, 151, -128, -82, 147, -29, -2, 84, + -7, 160, -109, 145, -17, -7, 22, 146, -107, 145, + 32, 33, -111, 31, -111, -90, -11, 147, -101, -28, + -117, 151, 28, 148, 144, 149, -98, 45, 144, -122, + -30, 39, 37, -69, -99, 145, -119, 149, 145, 144, + -128, -83, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, - -68, -10, -119, -81, -81, 148, -122, 145, -110, -43, - 12, -105, -75, -6, -3, -86, 146, 144, -122, 59, - 162, 145, -90, -11, 147, -8, -119, 146, 26, -89, + -68, -10, -119, -82, -82, 148, -122, 145, -73, -43, + 12, -106, -76, -6, -3, -87, 146, 144, -122, 59, + 162, 145, -91, -11, 147, -8, -119, 146, 26, -90, 12, 161, 145, 144, 144, -114, -53, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -112, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, - 160, 12, -43, -23, -75, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -76, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -69, 10, -4, -98, -6, 146, -119, -120, - -6, 145, 149, -81, -88, 146, 144, -119, 145, + -128, 148, -69, 10, -4, -99, -6, 146, -119, -120, + -6, 145, 149, -82, -89, 146, 144, -119, 145, } var yyDef = [...]int{ @@ -2111,7 +2111,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:291 + // line internal/php7/php7.y:291 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2122,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:325 + // line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:332 + // line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:343 + // line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:350 + // line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:362 + // line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:376 + // line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:385 + // line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:396 + // line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:409 + // line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:414 + // line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:418 + // line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:422 + // line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:426 + // line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:430 + // line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:434 + // line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:446 + // line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:462 + // line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:480 + // line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:492 + // line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:502 + // line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:513 + // line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:524 + // line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:536 + // line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:551 + // line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:561 + // line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:574 + // line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:596 + // line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:620 + // line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:640 + // line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:664 + // line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:668 + // line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:675 + // line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:681 + // line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:688 + // line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:694 + // line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:701 + // line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:707 + // line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:714 + // line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:718 + // line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:729 + // line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:743 + // line internal/php7/php7.y:743 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:768 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:772 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:783 + // line internal/php7/php7.y:783 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:790 + // line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:799 + // line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:810 + // line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:817 + // line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:822 + // line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:826 + // line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:830 + // line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:834 + // line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:838 + // line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:842 + // line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:856 + // line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:867 + // line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:871 + // line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:875 + // line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:885 + // line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:900 + // line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:914 + // line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:924 + // line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:935 + // line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:946 + // line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:957 + // line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:965 + // line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:973 + // line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:981 + // line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3327,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:991 + // line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3339,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1001 + // line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3352,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1012 + // line internal/php7/php7.y:1012 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3366,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1024 + // line internal/php7/php7.y:1024 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3382,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1038 + // line internal/php7/php7.y:1038 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3395,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1049 + // line internal/php7/php7.y:1049 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3406,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1058 + // line internal/php7/php7.y:1058 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3425,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1075 + // line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3438,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1086 + // line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1103 + // line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3475,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1121 + // line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1125 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3512,7 +3512,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1156 + // line internal/php7/php7.y:1156 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3520,7 +3520,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1162 + // line internal/php7/php7.y:1162 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3529,13 +3529,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1172 + // line internal/php7/php7.y:1172 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1176 + // line internal/php7/php7.y:1176 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3549,7 +3549,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1191 + // line internal/php7/php7.y:1191 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3557,7 +3557,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1197 + // line internal/php7/php7.y:1197 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3566,13 +3566,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1207 + // line internal/php7/php7.y:1207 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1214 + // line internal/php7/php7.y:1214 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3599,31 +3599,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1242 + // line internal/php7/php7.y:1242 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1246 + // line internal/php7/php7.y:1246 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1253 + // line internal/php7/php7.y:1253 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1257 + // line internal/php7/php7.y:1257 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1264 + // line internal/php7/php7.y:1264 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3647,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1286 + // line internal/php7/php7.y:1286 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3670,19 +3670,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1310 + // line internal/php7/php7.y:1310 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1314 + // line internal/php7/php7.y:1314 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1321 + // line internal/php7/php7.y:1321 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3694,7 +3694,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1331 + // line internal/php7/php7.y:1331 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3706,7 +3706,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1344 + // line internal/php7/php7.y:1344 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3727,7 +3727,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1366 + // line internal/php7/php7.y:1366 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3749,13 +3749,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1389 + // line internal/php7/php7.y:1389 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1393 + // line internal/php7/php7.y:1393 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3767,13 +3767,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1406 + // line internal/php7/php7.y:1406 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1410 + // line internal/php7/php7.y:1410 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3786,13 +3786,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1424 + // line internal/php7/php7.y:1424 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1428 + // line internal/php7/php7.y:1428 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3805,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1442 + // line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} @@ -3850,7 +3850,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3861,7 +3861,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1491 + // line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3881,7 +3881,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1512 + // line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3892,7 +3892,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1521 + // line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3912,7 +3912,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3923,7 +3923,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1551 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3943,7 +3943,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1572 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3956,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1583 + // line internal/php7/php7.y:1583 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1595 + // line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3985,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1608 + // line internal/php7/php7.y:1608 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4001,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1625 + // line internal/php7/php7.y:1625 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1629 + // line internal/php7/php7.y:1629 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4021,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1641 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4034,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1655 + // line internal/php7/php7.y:1655 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1659 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4057,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1675 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4077,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1696 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4092,7 +4092,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1709 + // line internal/php7/php7.y:1709 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4111,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1729 + // line internal/php7/php7.y:1729 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1733 + // line internal/php7/php7.y:1733 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4133,7 +4133,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1750 + // line internal/php7/php7.y:1750 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4155,7 +4155,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1770 + // line internal/php7/php7.y:1770 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4179,7 +4179,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1795 + // line internal/php7/php7.y:1795 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4189,7 +4189,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1803 + // line internal/php7/php7.y:1803 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4213,25 +4213,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1828 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1832 + // line internal/php7/php7.y:1832 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1839 + // line internal/php7/php7.y:1839 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1843 + // line internal/php7/php7.y:1843 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4240,7 +4240,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1853 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4294,7 +4294,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1905 + // line internal/php7/php7.y:1905 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4351,25 +4351,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1963 + // line internal/php7/php7.y:1963 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1967 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1974 + // line internal/php7/php7.y:1974 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1978 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4381,7 +4381,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1991 + // line internal/php7/php7.y:1991 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4393,7 +4393,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2001 + // line internal/php7/php7.y:2001 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4405,19 +4405,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2011 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2018 + // line internal/php7/php7.y:2018 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2022 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4426,7 +4426,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2032 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4438,7 +4438,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2042 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4450,7 +4450,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2055 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4458,7 +4458,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2061 + // line internal/php7/php7.y:2061 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4467,7 +4467,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2071 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4478,7 +4478,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2080 + // line internal/php7/php7.y:2080 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4490,7 +4490,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4499,7 +4499,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2100 + // line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4507,13 +4507,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2109 + // line internal/php7/php7.y:2109 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2116 + // line internal/php7/php7.y:2116 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4522,7 +4522,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2123 + // line internal/php7/php7.y:2123 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4530,7 +4530,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2132 + // line internal/php7/php7.y:2132 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4556,7 +4556,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2156 + // line internal/php7/php7.y:2156 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4583,33 +4583,34 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2184 + // line internal/php7/php7.y:2184 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2188 + // line internal/php7/php7.y:2188 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2195 + // line internal/php7/php7.y:2195 { - yyVAL.node = &ast.StmtPropertyList{ast.Node{}, yyDollar[1].list, yyDollar[2].node, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].list[0], yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.PropertyList, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), + }, + Modifiers: yyDollar[1].list, + Type: yyDollar[2].node, + Properties: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[4].token, + } } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2208 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4623,7 +4624,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2219 + // line internal/php7/php7.y:2220 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4637,7 +4638,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2231 + // line internal/php7/php7.y:2232 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4668,7 +4669,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2263 + // line internal/php7/php7.y:2264 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4676,7 +4677,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2269 + // line internal/php7/php7.y:2270 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4685,7 +4686,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2279 + // line internal/php7/php7.y:2280 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4696,43 +4697,44 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2289 { - yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, nil} - - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + CloseParenthesisTkn: yyDollar[2].token, + } } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2298 + // line internal/php7/php7.y:2299 { - yyVAL.node = &ast.StmtTraitAdaptationList{ast.Node{}, yyDollar[2].list} - - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.AdaptationList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenParenthesisTkn: yyDollar[1].token, + Adaptations: yyDollar[2].list, + CloseParenthesisTkn: yyDollar[3].token, + } } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2311 + // line internal/php7/php7.y:2313 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2315 + // line internal/php7/php7.y:2317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2322 + // line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4742,7 +4744,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2330 + // line internal/php7/php7.y:2332 { yyVAL.node = yyDollar[1].node @@ -4752,7 +4754,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2341 + // line internal/php7/php7.y:2343 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4766,125 +4768,120 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2356 + // line internal/php7/php7.y:2358 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2374 + // line internal/php7/php7.y:2375 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, nil, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2392 + // line internal/php7/php7.y:2392 { - alias := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, } - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, alias} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2410 + // line internal/php7/php7.y:2410 { - yyVAL.node = &ast.StmtTraitUseAlias{ast.Node{}, yyDollar[1].node, yyDollar[3].node, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Ref, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, + } } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2424 + // line internal/php7/php7.y:2424 { - name := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2441 + // line internal/php7/php7.y:2439 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2448 + // line internal/php7/php7.y:2446 { - target := &ast.Identifier{ + yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Trait: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.StmtTraitMethodRef{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2469 + // line internal/php7/php7.y:2466 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4895,7 +4892,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2478 + // line internal/php7/php7.y:2475 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4908,13 +4905,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2492 + // line internal/php7/php7.y:2489 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2496 + // line internal/php7/php7.y:2493 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4928,31 +4925,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2511 + // line internal/php7/php7.y:2508 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2512 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2519 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2526 + // line internal/php7/php7.y:2523 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2533 + // line internal/php7/php7.y:2530 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4964,7 +4961,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2543 + // line internal/php7/php7.y:2540 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4973,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2553 + // line internal/php7/php7.y:2550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +4985,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2563 + // line internal/php7/php7.y:2560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +4997,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2573 + // line internal/php7/php7.y:2570 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +5009,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2583 + // line internal/php7/php7.y:2580 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,22 +5021,24 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2596 + // line internal/php7/php7.y:2593 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2603 + // line internal/php7/php7.y:2600 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2609 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5062,7 +5061,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2630 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5086,7 +5085,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2655 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5093,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2662 + // line internal/php7/php7.y:2661 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2668 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5120,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2690 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5141,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2713 + // line internal/php7/php7.y:2712 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5150,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2719 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5158,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2728 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2736 + // line internal/php7/php7.y:2735 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2739 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2747 + // line internal/php7/php7.y:2746 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,13 +5185,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2754 + // line internal/php7/php7.y:2753 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2760 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5209,7 +5208,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2778 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5224,7 +5223,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2792 + // line internal/php7/php7.y:2791 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5236,7 +5235,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2805 + // line internal/php7/php7.y:2804 { listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} @@ -5253,7 +5252,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2820 + // line internal/php7/php7.y:2819 { shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} @@ -5269,7 +5268,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2834 + // line internal/php7/php7.y:2833 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5282,7 +5281,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2844 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5296,7 +5295,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2857 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5308,7 +5307,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2866 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5321,7 +5320,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5334,7 +5333,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5347,7 +5346,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2899 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5360,7 +5359,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5373,7 +5372,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2921 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5386,7 +5385,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2932 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5399,7 +5398,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5412,7 +5411,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5425,7 +5424,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2966 + // line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5438,7 +5437,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5451,7 +5450,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5464,7 +5463,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2999 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5477,7 +5476,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3010 + // line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5490,7 +5489,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3021 + // line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5502,7 +5501,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3030 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5515,7 +5514,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3042 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5527,7 +5526,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3052 + // line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5540,7 +5539,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 + // line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5553,7 +5552,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 + // line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5566,7 +5565,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5579,7 +5578,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5592,7 +5591,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 + // line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5605,7 +5604,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 + // line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5618,7 +5617,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3129 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5631,7 +5630,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3140 + // line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5643,7 +5642,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3150 + // line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5656,7 +5655,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3161 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5669,7 +5668,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3172 + // line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5682,7 +5681,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3183 + // line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5695,7 +5694,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3194 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5708,7 +5707,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3205 + // line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5721,7 +5720,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3216 + // line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5734,7 +5733,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3227 + // line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5747,7 +5746,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3238 + // line internal/php7/php7.y:3237 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5759,7 +5758,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3248 + // line internal/php7/php7.y:3247 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5771,7 +5770,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5783,7 +5782,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3268 + // line internal/php7/php7.y:3267 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5795,7 +5794,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3278 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5808,7 +5807,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3289 + // line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5821,7 +5820,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3300 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5834,7 +5833,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3311 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5848,7 +5847,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3322 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5861,7 +5860,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3334 + // line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5874,7 +5873,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3345 + // line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5887,7 +5886,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3356 + // line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5900,7 +5899,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3367 + // line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5913,7 +5912,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3378 + // line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5926,7 +5925,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3389 + // line internal/php7/php7.y:3388 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5943,13 +5942,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3404 + // line internal/php7/php7.y:3403 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3408 + // line internal/php7/php7.y:3407 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5963,7 +5962,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3419 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5977,7 +5976,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3432 + // line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5990,13 +5989,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3443 + // line internal/php7/php7.y:3442 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3447 + // line internal/php7/php7.y:3446 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6009,7 +6008,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3458 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6022,7 +6021,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3469 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6035,7 +6034,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3480 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6048,7 +6047,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3491 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6061,7 +6060,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3502 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6074,7 +6073,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3513 + // line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6087,7 +6086,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3524 + // line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6107,7 +6106,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6119,13 +6118,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3552 + // line internal/php7/php7.y:3551 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3556 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6137,7 +6136,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3566 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6149,7 +6148,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3576 + // line internal/php7/php7.y:3575 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6161,7 +6160,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3586 + // line internal/php7/php7.y:3585 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6173,7 +6172,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3596 + // line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6186,7 +6185,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3606 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6198,13 +6197,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3617 + // line internal/php7/php7.y:3616 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3620 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6219,7 +6218,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3637 + // line internal/php7/php7.y:3636 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6240,7 +6239,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3656 + // line internal/php7/php7.y:3655 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6259,25 +6258,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3680 + // line internal/php7/php7.y:3679 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3684 + // line internal/php7/php7.y:3683 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3691 + // line internal/php7/php7.y:3690 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3695 + // line internal/php7/php7.y:3694 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6291,7 +6290,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3710 + // line internal/php7/php7.y:3709 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6300,13 +6299,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3717 + // line internal/php7/php7.y:3716 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3724 + // line internal/php7/php7.y:3723 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6325,7 +6324,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3741 + // line internal/php7/php7.y:3740 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6347,7 +6346,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3764 + // line internal/php7/php7.y:3763 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6359,7 +6358,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3774 + // line internal/php7/php7.y:3773 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6372,7 +6371,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3785 + // line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6385,7 +6384,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3796 + // line internal/php7/php7.y:3795 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6397,7 +6396,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3808 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6409,31 +6408,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3819 + // line internal/php7/php7.y:3818 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3826 + // line internal/php7/php7.y:3825 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3830 + // line internal/php7/php7.y:3829 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3837 + // line internal/php7/php7.y:3836 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3840 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6450,13 +6449,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3858 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3862 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6470,25 +6469,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3874 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3881 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3886 + // line internal/php7/php7.y:3885 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3893 + // line internal/php7/php7.y:3892 { yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} @@ -6502,7 +6501,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3905 + // line internal/php7/php7.y:3904 { yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} @@ -6515,7 +6514,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3916 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6527,7 +6526,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3928 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6539,7 +6538,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3939 + // line internal/php7/php7.y:3938 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6551,7 +6550,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3949 + // line internal/php7/php7.y:3948 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6563,7 +6562,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3958 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6575,7 +6574,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3969 + // line internal/php7/php7.y:3968 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6587,7 +6586,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3978 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6599,7 +6598,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3989 + // line internal/php7/php7.y:3988 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6611,7 +6610,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3999 + // line internal/php7/php7.y:3998 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6623,7 +6622,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4009 + // line internal/php7/php7.y:4008 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6635,7 +6634,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4019 + // line internal/php7/php7.y:4018 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6647,7 +6646,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4028 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6668,7 +6667,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4047 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6680,7 +6679,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4058 + // line internal/php7/php7.y:4057 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6693,7 +6692,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4069 + // line internal/php7/php7.y:4068 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6706,19 +6705,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4080 + // line internal/php7/php7.y:4079 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4083 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4091 + // line internal/php7/php7.y:4090 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6730,7 +6729,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4100 { target := &ast.Identifier{ Node: ast.Node{ @@ -6750,7 +6749,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4119 + // line internal/php7/php7.y:4118 { target := &ast.Identifier{ Node: ast.Node{ @@ -6770,43 +6769,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4140 + // line internal/php7/php7.y:4139 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4144 + // line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4151 + // line internal/php7/php7.y:4150 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4155 + // line internal/php7/php7.y:4154 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4162 + // line internal/php7/php7.y:4161 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4173 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6823,19 +6822,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4188 + // line internal/php7/php7.y:4187 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4195 + // line internal/php7/php7.y:4194 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4199 + // line internal/php7/php7.y:4198 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6852,19 +6851,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4214 + // line internal/php7/php7.y:4213 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4220 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4225 + // line internal/php7/php7.y:4224 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6877,7 +6876,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6890,7 +6889,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4246 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6903,7 +6902,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4258 + // line internal/php7/php7.y:4257 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6916,25 +6915,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4268 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4276 + // line internal/php7/php7.y:4275 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4280 + // line internal/php7/php7.y:4279 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4284 + // line internal/php7/php7.y:4283 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6947,7 +6946,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4297 { name := &ast.Identifier{ Node: ast.Node{ @@ -6966,7 +6965,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4315 + // line internal/php7/php7.y:4314 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6980,7 +6979,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4327 + // line internal/php7/php7.y:4326 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6992,7 +6991,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4340 + // line internal/php7/php7.y:4339 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7005,7 +7004,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4351 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7018,13 +7017,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4365 + // line internal/php7/php7.y:4364 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4369 + // line internal/php7/php7.y:4368 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7037,7 +7036,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4380 + // line internal/php7/php7.y:4379 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7050,7 +7049,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4391 + // line internal/php7/php7.y:4390 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7063,7 +7062,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4402 + // line internal/php7/php7.y:4401 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7076,7 +7075,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4413 + // line internal/php7/php7.y:4412 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7089,7 +7088,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4427 + // line internal/php7/php7.y:4426 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7101,7 +7100,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4437 + // line internal/php7/php7.y:4436 { yyVAL.node = yyDollar[2].node @@ -7111,13 +7110,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 + // line internal/php7/php7.y:4444 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4452 + // line internal/php7/php7.y:4451 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7129,7 +7128,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4461 { yyVAL.node = yyDollar[2].node @@ -7139,31 +7138,31 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4476 { yyVAL.list = yyDollar[1].list } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4483 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4488 + // line internal/php7/php7.y:4487 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4494 { if len(yyDollar[1].list) == 0 { yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} @@ -7176,7 +7175,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4506 + // line internal/php7/php7.y:4505 { if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { yyVAL.list = []ast.Vertex{} @@ -7186,7 +7185,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4516 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7199,7 +7198,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4528 + // line internal/php7/php7.y:4527 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7211,7 +7210,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4537 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7227,7 +7226,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4552 + // line internal/php7/php7.y:4551 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7241,7 +7240,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4564 + // line internal/php7/php7.y:4563 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7253,7 +7252,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4573 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} @@ -7272,7 +7271,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4591 + // line internal/php7/php7.y:4590 { // TODO: Cannot use list() as standalone expression listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} @@ -7289,13 +7288,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4609 + // line internal/php7/php7.y:4608 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4613 + // line internal/php7/php7.y:4612 { yyVAL.list = append( yyDollar[1].list, @@ -7310,13 +7309,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4626 + // line internal/php7/php7.y:4625 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4630 + // line internal/php7/php7.y:4629 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7331,7 +7330,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4645 { name := &ast.Identifier{ Node: ast.Node{ @@ -7350,7 +7349,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4662 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7372,7 +7371,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4683 + // line internal/php7/php7.y:4682 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7400,7 +7399,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4709 + // line internal/php7/php7.y:4708 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7415,7 +7414,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4722 + // line internal/php7/php7.y:4721 { name := &ast.Identifier{ Node: ast.Node{ @@ -7437,7 +7436,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4741 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7461,7 +7460,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4764 + // line internal/php7/php7.y:4763 { yyVAL.node = yyDollar[2].node @@ -7471,7 +7470,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4775 + // line internal/php7/php7.y:4774 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7483,7 +7482,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4785 + // line internal/php7/php7.y:4784 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7506,7 +7505,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4806 + // line internal/php7/php7.y:4805 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7534,7 +7533,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4832 + // line internal/php7/php7.y:4831 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7553,7 +7552,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4852 + // line internal/php7/php7.y:4851 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7571,7 +7570,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4868 + // line internal/php7/php7.y:4867 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7593,7 +7592,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4888 + // line internal/php7/php7.y:4887 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7605,7 +7604,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4898 + // line internal/php7/php7.y:4897 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7617,7 +7616,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4907 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7639,7 +7638,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4928 + // line internal/php7/php7.y:4927 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7651,7 +7650,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4938 + // line internal/php7/php7.y:4937 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7663,13 +7662,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4951 + // line internal/php7/php7.y:4950 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4955 + // line internal/php7/php7.y:4954 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7678,7 +7677,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4965 + // line internal/php7/php7.y:4964 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index e8ed084..062068b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -247,7 +247,7 @@ import ( %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list name_list -%type if_stmt const_list non_empty_argument_list +%type if_stmt const_list non_empty_argument_list property_list %type alt_if_stmt %type if_stmt_without_else %type class_const_decl @@ -274,7 +274,7 @@ import ( %type encaps_list backticks_expr namespace_name catch_list class_const_list %type for_exprs non_empty_for_exprs -%type unprefixed_use_declarations inline_use_declarations property_list +%type unprefixed_use_declarations inline_use_declarations %type case_list trait_adaptation_list %type use_declarations lexical_var_list isset_variables non_empty_array_pair_list %type array_pair_list top_statement_list @@ -2193,15 +2193,16 @@ class_statement_list: class_statement: variable_modifiers optional_type property_list ';' { - $$ = &ast.StmtPropertyList{ast.Node{}, $1, $2, $3} - - // save position - $$.GetNode().Position = position.NewNodeListTokenPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1[0], $$) - yylex.(*Parser).setFreeFloating($$, token.PropertyList, $4.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $4.SkippedTokens) + $$ = &ast.StmtPropertyList{ + Node: ast.Node{ + Position: position.NewNodeListTokenPosition($1, $4), + }, + Modifiers: $1, + Type: $2, + Properties: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $4, + } } | method_modifiers T_CONST class_const_list ';' { @@ -2286,23 +2287,24 @@ trait_adaptations: } | '{' '}' { - $$ = &ast.StmtTraitAdaptationList{ast.Node{}, nil} - - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $2.SkippedTokens) + $$ = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + OpenParenthesisTkn: $1, + CloseParenthesisTkn: $2, + } } | '{' trait_adaptation_list '}' { - $$ = &ast.StmtTraitAdaptationList{ast.Node{}, $2} - - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.AdaptationList, $3.SkippedTokens) + $$ = &ast.StmtTraitAdaptationList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenParenthesisTkn: $1, + Adaptations: $2, + CloseParenthesisTkn: $3, + } } ; @@ -2354,88 +2356,84 @@ trait_precedence: trait_alias: trait_method_reference T_AS T_STRING { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS reserved_non_modifiers { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, nil, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS member_modifier identifier { - alias := &ast.Identifier{ + $$ = &ast.StmtTraitUseAlias{ Node: ast.Node{ - Position: position.NewTokenPosition($4), + Position: position.NewNodeTokenPosition($1, $4), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + Alias: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, }, - IdentifierTkn: $4, - Value: $4.Value, } - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, alias} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) } | trait_method_reference T_AS member_modifier { - $$ = &ast.StmtTraitUseAlias{ast.Node{}, $1, $3, nil} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Ref, $2.SkippedTokens) + $$ = &ast.StmtTraitUseAlias{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Ref: $1, + AsTkn: $2, + Modifier: $3, + } } ; trait_method_reference: identifier { - name := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, nil, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | absolute_trait_method_reference { @@ -2446,21 +2444,20 @@ trait_method_reference: absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := &ast.Identifier{ + $$ = &ast.StmtTraitMethodRef{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Trait: $1, + DoubleColonTkn: $2, + Method: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.StmtTraitMethodRef{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; @@ -2594,14 +2591,16 @@ member_modifier: property_list: property_list ',' property { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | property { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index c6311fd..de467de 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -670,9 +670,11 @@ func (n *StmtProperty) Accept(v NodeVisitor) { // StmtPropertyList node type StmtPropertyList struct { Node - Modifiers []Vertex - Type Vertex - Properties []Vertex + Modifiers []Vertex + Type Vertex + Properties []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtPropertyList) Accept(v NodeVisitor) { @@ -780,7 +782,9 @@ func (n *StmtTrait) Accept(v NodeVisitor) { // StmtTraitAdaptationList node type StmtTraitAdaptationList struct { Node - Adaptations []Vertex + OpenParenthesisTkn *token.Token + Adaptations []Vertex + CloseParenthesisTkn *token.Token } func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { @@ -790,8 +794,9 @@ func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { // StmtTraitMethodRef node type StmtTraitMethodRef struct { Node - Trait Vertex - Method Vertex + Trait Vertex + DoubleColonTkn *token.Token + Method Vertex } func (n *StmtTraitMethodRef) Accept(v NodeVisitor) { @@ -815,6 +820,7 @@ func (n *StmtTraitUse) Accept(v NodeVisitor) { type StmtTraitUseAlias struct { Node Ref Vertex + AsTkn *token.Token Modifier Vertex Alias Vertex } From 47b974a3a4b06eb7ed69763ef6eff5eeac006e98 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 30 Nov 2020 23:42:56 +0200 Subject: [PATCH 081/140] [refactoring] update ast structure of "array" and "list" nodes --- internal/php5/php5.go | 1472 +++++++++++++++++---------------- internal/php5/php5.y | 256 +++--- internal/php7/php7.go | 997 +++++++++++----------- internal/php7/php7.y | 167 ++-- pkg/ast/ast.go | 2 - pkg/ast/node.go | 32 +- pkg/ast/traverser/dfs.go | 28 - pkg/ast/visitor/dump.go | 12 - pkg/ast/visitor/null.go | 8 - pkg/printer/pretty_printer.go | 20 - pkg/printer/printer.go | 28 - 11 files changed, 1547 insertions(+), 1475 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index e0f7066..02fee28 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6432 +// line internal/php5/php5.y:6502 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -696,16 +696,16 @@ var yyAct = [...]int{ 395, 324, 203, 202, 199, 39, 136, 39, 39, 946, 830, 521, 748, 754, 864, 445, 572, 971, 609, 589, 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, - 521, 259, 572, 591, 685, 994, 283, 572, 996, 285, - 260, 261, 255, 840, 998, 980, 965, 260, 261, 964, - 839, 836, 566, 39, 572, 1012, 531, 1006, 1005, 1013, - 725, 341, 531, 531, 993, 572, 1016, 518, 716, 698, + 521, 259, 572, 591, 255, 994, 283, 572, 996, 285, + 260, 261, 840, 965, 998, 980, 964, 260, 261, 839, + 836, 566, 1006, 39, 572, 1012, 531, 1005, 725, 1013, + 341, 698, 531, 531, 993, 572, 1016, 518, 716, 538, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 538, 929, 259, 446, 231, 31, 231, 256, 654, - 531, 290, 296, 656, 655, 39, 260, 261, 449, 460, - 318, 39, 314, 657, 659, 660, 676, 677, 666, 127, - 147, 151, 155, 403, 575, 903, 165, 401, 478, 335, - 945, 995, 1009, 483, 198, 343, 394, 389, 939, 206, + 679, 929, 460, 259, 446, 231, 31, 231, 256, 654, + 531, 318, 296, 656, 655, 39, 260, 261, 449, 314, + 127, 39, 403, 657, 659, 660, 676, 677, 666, 575, + 147, 151, 155, 903, 401, 335, 165, 945, 478, 685, + 995, 1009, 483, 343, 198, 290, 394, 389, 939, 206, 896, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, @@ -1614,39 +1614,39 @@ var yyPgo = [...]int{ 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, - 1075, 1073, 1072, 1071, 12, 1070, 1069, 7, 21, 1067, - 25, 1065, 1064, 1063, 14, 39, 0, 1059, 1052, 1050, - 391, 619, 1049, 1041, 41, 4, 1032, 1031, 1019, 1011, - 30, 52, 1010, 1008, 1007, 3, 1002, 15, 1001, 1000, - 999, 996, 993, 992, 17, 984, 983, 972, 23, 969, + 1075, 41, 1073, 1072, 4, 1071, 1070, 17, 1069, 12, + 1067, 1065, 7, 21, 1064, 25, 1063, 1059, 1052, 14, + 39, 0, 1050, 1049, 1041, 391, 619, 1032, 1031, 1019, + 1011, 1010, 30, 52, 1008, 1007, 1002, 3, 1001, 15, + 1000, 999, 996, 993, 992, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, 960, 923, } var yyR1 = [...]int{ - 0, 151, 105, 105, 106, 106, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 107, 107, - 6, 6, 6, 6, 108, 108, 7, 7, 7, 7, - 109, 109, 8, 8, 8, 8, 55, 55, 110, 110, + 0, 151, 110, 110, 111, 111, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 112, 112, + 6, 6, 6, 6, 113, 113, 7, 7, 7, 7, + 114, 114, 8, 8, 8, 8, 55, 55, 115, 115, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 122, 122, 60, 60, 123, - 123, 124, 124, 61, 88, 88, 58, 53, 54, 149, + 28, 28, 28, 28, 28, 124, 124, 60, 60, 125, + 125, 126, 126, 61, 88, 88, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 99, 99, 2, 103, 103, 102, 102, 100, 100, 98, - 98, 97, 97, 97, 95, 95, 94, 94, 59, 59, - 89, 89, 90, 90, 90, 90, 121, 121, 121, 4, - 4, 96, 96, 117, 117, 118, 118, 56, 56, 57, - 57, 125, 125, 126, 126, 65, 65, 64, 64, 64, - 64, 84, 84, 84, 91, 91, 70, 70, 70, 70, - 82, 82, 29, 29, 29, 81, 81, 81, 81, 127, - 127, 67, 67, 67, 67, 69, 101, 101, 87, 87, - 130, 130, 131, 131, 71, 71, 72, 93, 93, 75, - 75, 74, 73, 73, 76, 76, 92, 92, 128, 128, - 129, 129, 132, 132, 77, 77, 77, 77, 77, 77, - 86, 86, 86, 86, 68, 68, 85, 85, 120, 120, - 119, 119, 138, 138, 136, 136, 137, 137, 137, 139, + 104, 104, 2, 108, 108, 107, 107, 105, 105, 103, + 103, 102, 102, 102, 100, 100, 99, 99, 59, 59, + 89, 89, 92, 92, 92, 92, 123, 123, 123, 4, + 4, 101, 101, 119, 119, 120, 120, 56, 56, 57, + 57, 127, 127, 128, 128, 65, 65, 64, 64, 64, + 64, 84, 84, 84, 93, 93, 70, 70, 70, 70, + 82, 82, 29, 29, 29, 81, 81, 81, 81, 129, + 129, 67, 67, 67, 67, 69, 106, 106, 87, 87, + 132, 132, 133, 133, 71, 71, 72, 96, 96, 75, + 75, 74, 73, 73, 76, 76, 95, 95, 130, 130, + 131, 131, 134, 134, 77, 77, 77, 77, 77, 77, + 86, 86, 86, 86, 68, 68, 85, 85, 122, 122, + 121, 121, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1655,27 +1655,27 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 104, 104, 116, - 116, 116, 116, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 109, 109, 118, + 118, 118, 118, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, - 43, 43, 146, 146, 145, 51, 51, 51, 133, 133, - 133, 83, 83, 9, 9, 9, 9, 9, 9, 9, + 43, 43, 146, 146, 145, 51, 51, 51, 135, 135, + 135, 83, 83, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 30, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 37, 37, 37, 37, 31, 31, 31, 31, 31, 31, - 31, 134, 134, 3, 3, 135, 135, 135, 135, 16, + 31, 97, 97, 3, 3, 98, 98, 98, 98, 16, 16, 50, 50, 18, 19, 20, 21, 21, 147, 147, 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 115, 115, 40, 40, - 40, 114, 114, 113, 113, 113, 113, 113, 113, 113, - 113, 111, 111, 111, 111, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 94, 94, 40, 40, + 40, 91, 91, 90, 90, 90, 90, 90, 90, 90, + 90, 116, 116, 116, 116, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 112, 112, 38, 38, 32, 32, 33, + 39, 39, 39, 117, 117, 38, 38, 32, 32, 33, 34, } @@ -1736,7 +1736,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -105, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -110, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1746,10 +1746,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -106, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -111, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -106, 144, 83, 10, -107, 37, 39, - -6, -106, 83, 146, 160, 147, 10, -110, -50, 148, + 159, 12, 148, -111, 144, 83, 10, -112, 37, 39, + -6, -111, 83, 146, 160, 147, 10, -115, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1758,87 +1758,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -106, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -111, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -133, 17, -111, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -106, 80, 83, + 148, -50, -16, 150, 150, -135, 17, -116, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -111, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -111, 17, 17, 76, -111, 150, 148, -114, - -113, -16, 153, 150, 150, 83, -84, 148, -106, 79, + -16, 150, -116, 17, 17, 76, -116, 150, 148, -91, + -90, -16, 153, 150, 150, 83, -84, 148, -111, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -105, -106, 146, 160, -108, -7, -106, 83, -109, -8, - -106, 83, 29, -106, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -96, -27, 147, 21, -149, - -120, -119, -16, -90, 144, 147, 146, 146, 146, 146, + -110, -111, 146, 160, -113, -7, -111, 83, -114, -8, + -111, 83, 29, -111, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -101, -27, 147, 21, -149, + -122, -121, -16, -92, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -88, - -58, -21, -21, -17, -89, 10, -110, 146, 146, 10, - 148, -99, 56, -103, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -89, 10, -115, 146, 146, 10, + 148, -104, 56, -108, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -115, -40, -21, 60, 83, -106, 79, 79, 149, 149, + -94, -40, -21, 60, 83, -111, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -106, 58, -12, 79, - -112, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -114, 151, -3, 160, 59, -19, -21, -15, - -15, 10, 149, -91, -52, -70, -17, -21, 153, 84, + 10, 144, -83, -84, 79, 83, -111, 58, -12, 79, + -117, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -91, 151, -3, 160, 59, -19, -21, -15, + -15, 10, 149, -93, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -105, 145, -84, -6, 146, 160, 29, -106, - 146, 160, 29, -106, 10, 29, 162, -30, -79, -9, - -33, -106, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -117, -110, - -110, -50, 146, 160, -121, 146, -121, 146, -29, -16, + -16, 146, -110, 145, -84, -6, 146, 160, 29, -111, + 146, 160, 29, -111, 10, 29, 162, -30, -79, -9, + -33, -111, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -119, -115, + -115, -50, 146, 160, -123, 146, -123, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, - 149, 160, 162, 145, 148, -125, -126, -65, -64, 61, - 62, -47, -106, 80, 83, -102, 57, -47, 144, -100, - -47, -17, -21, -21, 92, 149, 160, 148, -106, -139, + 149, 160, 162, 145, 148, -127, -128, -65, -64, 61, + 62, -47, -111, 80, 83, -107, 57, -47, 144, -105, + -47, -17, -21, -21, 92, 149, 160, 148, -111, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -106, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -111, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -106, 148, -134, -135, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -118, 22, - 146, -120, -16, 145, 32, 33, -121, 31, -121, 145, - 162, -125, -16, 146, -58, -97, -21, 153, 60, -97, - -59, -27, 147, 10, -30, -122, 42, -125, 149, 160, - -149, 83, -106, 144, -100, -127, 160, -45, 162, -40, - -115, 150, -138, -140, -15, -143, 151, -16, -147, 150, + 152, 83, -111, 148, -97, -98, -79, 17, 79, -79, + -79, -79, -79, -79, 149, -56, 94, 95, -120, 22, + 146, -122, -16, 145, 32, 33, -123, 31, -123, 145, + 162, -127, -16, 146, -58, -102, -21, 153, 60, -102, + -59, -27, 147, 10, -30, -124, 42, -127, 149, 160, + -149, 83, -111, 144, -105, -129, 160, -45, 162, -40, + -94, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -106, -134, 151, -3, 160, 59, 10, 53, 149, 146, + -111, -97, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -98, 59, -21, 148, - -98, -110, 162, -60, 43, 148, 149, -104, 45, -65, - -150, 84, -106, -127, 145, -67, -128, -68, -69, -129, - -132, 48, 39, 45, -77, 104, 103, 102, 99, 100, + 146, 145, 146, 31, -30, 149, -103, 59, -21, 148, + -103, -115, 162, -60, 43, 148, 149, -109, 45, -65, + -150, 84, -111, -129, 145, -67, -130, -68, -69, -131, + -134, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -120, -4, - -110, 146, -104, 149, -97, -115, 149, 28, -30, 144, + 147, 149, -79, -79, -27, 96, -50, 147, -122, -4, + -115, 146, -109, 149, -102, -94, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -86, 12, 146, 160, - -1, -77, 10, -101, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -110, 149, -110, 144, -94, - -27, 147, 149, -94, 146, -110, 12, -110, -110, -116, + -1, -77, 10, -106, -47, 151, 145, 151, 151, -143, + -19, -79, 59, 146, 147, -115, 149, -115, 144, -99, + -27, 147, 149, -99, 146, -115, 12, -115, -115, -118, 12, 153, 162, 146, 160, 162, 10, -149, 162, -87, - 160, 146, 144, -79, -110, -95, -27, 147, -110, -110, + 160, 146, 144, -79, -115, -100, -27, 147, -115, -115, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, - 162, 10, -30, -47, -130, -131, -71, -72, -73, -74, - -75, -47, 10, -110, 145, 26, 144, 12, 153, 162, + 162, 10, -30, -47, -132, -133, -71, -72, -73, -74, + -75, -47, 10, -115, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -110, 12, -30, -125, -93, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -123, -124, -61, 42, -92, - 146, 144, -47, -61, 148, -110, -47, 145, 12, 149, - 144, -110, 145, + 146, -115, 12, -30, -127, -96, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -125, -126, -61, 42, -95, + 146, 144, -47, -61, 148, -115, -47, 145, 12, 149, + 144, -115, 145, } var yyDef = [...]int{ @@ -2323,7 +2323,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:271 + // line internal/php5/php5.y:271 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2332,7 +2332,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:281 + // line internal/php5/php5.y:281 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2345,13 +2345,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:292 + // line internal/php5/php5.y:292 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:299 + // line internal/php5/php5.y:299 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2365,7 +2365,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:311 + // line internal/php5/php5.y:311 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2378,32 +2378,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:325 + // line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:330 + // line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2417,7 +2417,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:354 + // line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2435,7 +2435,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:370 + // line internal/php5/php5.y:370 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2455,7 +2455,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:388 + // line internal/php5/php5.y:388 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2469,7 +2469,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:400 + // line internal/php5/php5.y:400 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2482,7 +2482,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:411 + // line internal/php5/php5.y:411 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2502,7 +2502,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:429 + // line internal/php5/php5.y:429 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2522,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:447 + // line internal/php5/php5.y:447 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2530,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:456 + // line internal/php5/php5.y:456 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2538,13 +2538,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:462 + // line internal/php5/php5.y:462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:469 + // line internal/php5/php5.y:469 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2560,7 +2560,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:483 + // line internal/php5/php5.y:483 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2584,7 +2584,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:505 + // line internal/php5/php5.y:505 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2601,7 +2601,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:520 + // line internal/php5/php5.y:520 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2626,7 +2626,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:546 + // line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2634,13 +2634,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:552 + // line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:559 + // line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:573 + // line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2680,7 +2680,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:595 + // line internal/php5/php5.y:595 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2697,7 +2697,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:610 + // line internal/php5/php5.y:610 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2722,7 +2722,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:636 + // line internal/php5/php5.y:636 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2730,13 +2730,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:642 + // line internal/php5/php5.y:642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:649 + // line internal/php5/php5.y:649 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2752,7 +2752,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:663 + // line internal/php5/php5.y:663 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2776,7 +2776,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:685 + // line internal/php5/php5.y:685 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2793,7 +2793,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:700 + // line internal/php5/php5.y:700 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2818,7 +2818,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:726 + // line internal/php5/php5.y:726 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2844,7 +2844,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:750 + // line internal/php5/php5.y:750 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2873,7 +2873,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:780 + // line internal/php5/php5.y:780 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2886,38 +2886,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:791 + // line internal/php5/php5.y:791 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:799 + // line internal/php5/php5.y:799 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:804 + // line internal/php5/php5.y:804 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:808 + // line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:812 + // line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2931,13 +2931,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:832 + // line internal/php5/php5.y:832 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:836 + // line internal/php5/php5.y:836 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2955,7 +2955,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:855 + // line internal/php5/php5.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2968,7 +2968,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:866 + // line internal/php5/php5.y:866 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2992,7 +2992,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:888 + // line internal/php5/php5.y:888 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3018,7 +3018,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:912 + // line internal/php5/php5.y:912 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3030,7 +3030,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:922 + // line internal/php5/php5.y:922 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3047,7 +3047,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:937 + // line internal/php5/php5.y:937 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3063,7 +3063,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:951 + // line internal/php5/php5.y:951 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3075,7 +3075,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:961 + // line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3087,7 +3087,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:971 + // line internal/php5/php5.y:971 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3100,7 +3100,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:982 + // line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3112,7 +3112,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:992 + // line internal/php5/php5.y:992 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3125,7 +3125,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1003 + // line internal/php5/php5.y:1003 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3137,7 +3137,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1013 + // line internal/php5/php5.y:1013 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3150,7 +3150,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1024 + // line internal/php5/php5.y:1024 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1035 + // line internal/php5/php5.y:1035 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3175,7 +3175,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1045 + // line internal/php5/php5.y:1045 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3186,7 +3186,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1054 + // line internal/php5/php5.y:1054 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3197,7 +3197,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1063 + // line internal/php5/php5.y:1063 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3207,7 +3207,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1071 + // line internal/php5/php5.y:1071 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3219,7 +3219,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1081 + // line internal/php5/php5.y:1081 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3231,7 +3231,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1091 + // line internal/php5/php5.y:1091 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3243,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1101 + // line internal/php5/php5.y:1101 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3263,7 +3263,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1119 + // line internal/php5/php5.y:1119 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3283,7 +3283,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1137 + // line internal/php5/php5.y:1137 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3296,7 +3296,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1148 + // line internal/php5/php5.y:1148 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3307,7 +3307,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1157 + // line internal/php5/php5.y:1157 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3326,7 +3326,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1174 + // line internal/php5/php5.y:1174 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3339,7 +3339,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1185 + // line internal/php5/php5.y:1185 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3358,13 +3358,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1205 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1209 + // line internal/php5/php5.y:1209 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3397,13 +3397,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1243 + // line internal/php5/php5.y:1243 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1247 + // line internal/php5/php5.y:1247 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3417,31 +3417,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1262 + // line internal/php5/php5.y:1262 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1266 + // line internal/php5/php5.y:1266 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1273 + // line internal/php5/php5.y:1273 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1277 + // line internal/php5/php5.y:1277 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1284 + // line internal/php5/php5.y:1284 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3473,7 +3473,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1317 + // line internal/php5/php5.y:1317 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3481,7 +3481,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1323 + // line internal/php5/php5.y:1323 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3490,49 +3490,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1333 + // line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1340 + // line internal/php5/php5.y:1340 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1347 + // line internal/php5/php5.y:1347 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1354 + // line internal/php5/php5.y:1354 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1358 + // line internal/php5/php5.y:1358 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1365 + // line internal/php5/php5.y:1365 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1369 + // line internal/php5/php5.y:1369 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1376 + // line internal/php5/php5.y:1376 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3557,7 +3557,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1402 + // line internal/php5/php5.y:1402 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3594,7 +3594,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1437 + // line internal/php5/php5.y:1437 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3616,7 +3616,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1461 + // line internal/php5/php5.y:1461 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3627,7 +3627,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1470 + // line internal/php5/php5.y:1470 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3647,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1488 + // line internal/php5/php5.y:1488 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3658,7 +3658,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1497 + // line internal/php5/php5.y:1497 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3678,13 +3678,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1518 + // line internal/php5/php5.y:1518 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1522 + // line internal/php5/php5.y:1522 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3696,19 +3696,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1535 + // line internal/php5/php5.y:1535 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1542 + // line internal/php5/php5.y:1542 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1546 + // line internal/php5/php5.y:1546 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3721,13 +3721,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1560 + // line internal/php5/php5.y:1560 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1564 + // line internal/php5/php5.y:1564 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3740,7 +3740,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1578 + // line internal/php5/php5.y:1578 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3748,7 +3748,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1584 + // line internal/php5/php5.y:1584 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3757,13 +3757,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1594 + // line internal/php5/php5.y:1594 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1598 + // line internal/php5/php5.y:1598 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3772,13 +3772,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1608 + // line internal/php5/php5.y:1608 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1612 + // line internal/php5/php5.y:1612 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3790,21 +3790,29 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1622 + // line internal/php5/php5.y:1622 { - yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} + pairList := yyDollar[3].node.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1637 + // line internal/php5/php5.y:1645 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3815,7 +3823,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1646 + // line internal/php5/php5.y:1654 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3835,7 +3843,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1667 + // line internal/php5/php5.y:1675 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3846,7 +3854,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1676 + // line internal/php5/php5.y:1684 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3866,7 +3874,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1698 + // line internal/php5/php5.y:1706 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3877,7 +3885,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1707 + // line internal/php5/php5.y:1715 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3897,7 +3905,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1729 + // line internal/php5/php5.y:1737 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3922,7 +3930,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1760 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3949,7 +3957,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1781 + // line internal/php5/php5.y:1789 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3962,7 +3970,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1792 + // line internal/php5/php5.y:1800 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3976,7 +3984,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1804 + // line internal/php5/php5.y:1812 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3991,7 +3999,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1825 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4007,13 +4015,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1835 + // line internal/php5/php5.y:1843 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1839 + // line internal/php5/php5.y:1847 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4027,7 +4035,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1851 + // line internal/php5/php5.y:1859 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4040,19 +4048,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1866 + // line internal/php5/php5.y:1874 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1870 + // line internal/php5/php5.y:1878 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1878 + // line internal/php5/php5.y:1886 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4063,7 +4071,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1887 + // line internal/php5/php5.y:1895 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4083,13 +4091,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1910 + // line internal/php5/php5.y:1918 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1914 + // line internal/php5/php5.y:1922 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4104,13 +4112,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1931 + // line internal/php5/php5.y:1939 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1935 + // line internal/php5/php5.y:1943 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4132,13 +4140,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1959 + // line internal/php5/php5.y:1967 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1963 + // line internal/php5/php5.y:1971 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4150,13 +4158,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1977 + // line internal/php5/php5.y:1985 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1981 + // line internal/php5/php5.y:1989 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4175,25 +4183,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2002 + // line internal/php5/php5.y:2010 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2006 + // line internal/php5/php5.y:2014 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2013 + // line internal/php5/php5.y:2021 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2017 + // line internal/php5/php5.y:2025 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4202,7 +4210,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2027 + // line internal/php5/php5.y:2035 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4256,7 +4264,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2079 + // line internal/php5/php5.y:2087 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4313,13 +4321,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2138 + // line internal/php5/php5.y:2146 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2142 + // line internal/php5/php5.y:2150 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4331,7 +4339,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2152 + // line internal/php5/php5.y:2160 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4343,13 +4351,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2162 + // line internal/php5/php5.y:2170 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2170 + // line internal/php5/php5.y:2178 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4361,7 +4369,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2180 + // line internal/php5/php5.y:2188 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4372,7 +4380,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2189 + // line internal/php5/php5.y:2197 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4392,7 +4400,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2219 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4400,7 +4408,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2217 + // line internal/php5/php5.y:2225 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4409,7 +4417,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2227 + // line internal/php5/php5.y:2235 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4420,7 +4428,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2236 + // line internal/php5/php5.y:2244 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4431,7 +4439,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2245 + // line internal/php5/php5.y:2253 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4443,7 +4451,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2255 + // line internal/php5/php5.y:2263 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4455,7 +4463,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2268 + // line internal/php5/php5.y:2276 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4464,7 +4472,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2275 + // line internal/php5/php5.y:2283 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4472,7 +4480,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2285 + // line internal/php5/php5.y:2293 { name := &ast.Identifier{ Node: ast.Node{ @@ -4491,7 +4499,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2302 + // line internal/php5/php5.y:2310 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4503,7 +4511,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2312 + // line internal/php5/php5.y:2320 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4517,7 +4525,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2328 + // line internal/php5/php5.y:2336 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4546,7 +4554,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2355 + // line internal/php5/php5.y:2363 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4577,7 +4585,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2392 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4607,7 +4615,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2412 + // line internal/php5/php5.y:2420 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4639,19 +4647,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2454 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2450 + // line internal/php5/php5.y:2458 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2458 + // line internal/php5/php5.y:2466 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4665,7 +4673,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2470 + // line internal/php5/php5.y:2478 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4673,13 +4681,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2476 + // line internal/php5/php5.y:2484 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2480 + // line internal/php5/php5.y:2488 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4708,7 +4716,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2510 + // line internal/php5/php5.y:2518 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4722,7 +4730,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2525 + // line internal/php5/php5.y:2533 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4730,7 +4738,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2531 + // line internal/php5/php5.y:2539 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4739,7 +4747,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2541 + // line internal/php5/php5.y:2549 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4750,7 +4758,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2550 + // line internal/php5/php5.y:2558 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4763,31 +4771,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2564 + // line internal/php5/php5.y:2572 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2576 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2575 + // line internal/php5/php5.y:2583 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2579 + // line internal/php5/php5.y:2587 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2586 + // line internal/php5/php5.y:2594 { yyVAL.node = yyDollar[1].node @@ -4797,7 +4805,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2594 + // line internal/php5/php5.y:2602 { yyVAL.node = yyDollar[1].node @@ -4807,7 +4815,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2605 + // line internal/php5/php5.y:2613 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4821,7 +4829,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2620 + // line internal/php5/php5.y:2628 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4829,7 +4837,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2626 + // line internal/php5/php5.y:2634 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4838,7 +4846,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2636 + // line internal/php5/php5.y:2644 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4855,13 +4863,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2651 + // line internal/php5/php5.y:2659 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2666 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4880,7 +4888,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2686 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4900,7 +4908,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2696 + // line internal/php5/php5.y:2704 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4913,19 +4921,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2710 + // line internal/php5/php5.y:2718 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2714 + // line internal/php5/php5.y:2722 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2721 + // line internal/php5/php5.y:2729 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4936,7 +4944,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2730 + // line internal/php5/php5.y:2738 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4949,13 +4957,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2744 + // line internal/php5/php5.y:2752 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2748 + // line internal/php5/php5.y:2756 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4969,31 +4977,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2763 + // line internal/php5/php5.y:2771 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2767 + // line internal/php5/php5.y:2775 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2774 + // line internal/php5/php5.y:2782 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2786 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2785 + // line internal/php5/php5.y:2793 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5005,7 +5013,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2795 + // line internal/php5/php5.y:2803 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5017,7 +5025,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2805 + // line internal/php5/php5.y:2813 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5029,7 +5037,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2815 + // line internal/php5/php5.y:2823 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5041,7 +5049,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2825 + // line internal/php5/php5.y:2833 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5053,7 +5061,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2835 + // line internal/php5/php5.y:2843 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5065,7 +5073,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2848 + // line internal/php5/php5.y:2856 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5092,7 +5100,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2873 + // line internal/php5/php5.y:2881 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5121,7 +5129,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2900 + // line internal/php5/php5.y:2908 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5148,7 +5156,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2925 + // line internal/php5/php5.y:2933 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5176,7 +5184,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2954 + // line internal/php5/php5.y:2962 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5202,7 +5210,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2978 + // line internal/php5/php5.y:2986 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5231,7 +5239,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3008 + // line internal/php5/php5.y:3016 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5240,7 +5248,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3015 + // line internal/php5/php5.y:3023 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5248,19 +5256,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3025 + // line internal/php5/php5.y:3033 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3029 + // line internal/php5/php5.y:3037 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3036 + // line internal/php5/php5.y:3044 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5269,25 +5277,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3043 + // line internal/php5/php5.y:3051 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3050 + // line internal/php5/php5.y:3058 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3062 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3061 + // line internal/php5/php5.y:3069 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -5301,7 +5309,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3073 + // line internal/php5/php5.y:3081 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} yyVAL.list = []ast.Vertex{fetch} @@ -5315,37 +5323,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3088 + // line internal/php5/php5.y:3096 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3092 + // line internal/php5/php5.y:3100 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3096 + // line internal/php5/php5.y:3104 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3103 + // line internal/php5/php5.y:3111 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3107 + // line internal/php5/php5.y:3115 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3114 + // line internal/php5/php5.y:3122 { if yyDollar[3].node != nil { @@ -5361,9 +5369,25 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3131 + // line internal/php5/php5.y:3139 { - listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + pairList := yyDollar[3].node.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) + + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } + + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} // save position @@ -5378,7 +5402,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3146 + // line internal/php5/php5.y:3170 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5391,7 +5415,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3157 + // line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5405,7 +5429,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3169 + // line internal/php5/php5.y:3193 { var _new *ast.ExprNew @@ -5432,7 +5456,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3194 + // line internal/php5/php5.y:3218 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5444,7 +5468,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3204 + // line internal/php5/php5.y:3228 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5456,7 +5480,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3214 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5469,7 +5493,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3225 + // line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5482,7 +5506,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3236 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5495,7 +5519,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3247 + // line internal/php5/php5.y:3271 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5508,7 +5532,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3258 + // line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5521,7 +5545,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3269 + // line internal/php5/php5.y:3293 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5534,7 +5558,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3280 + // line internal/php5/php5.y:3304 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5547,7 +5571,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3291 + // line internal/php5/php5.y:3315 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5560,7 +5584,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3302 + // line internal/php5/php5.y:3326 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5573,7 +5597,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3313 + // line internal/php5/php5.y:3337 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5586,7 +5610,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3324 + // line internal/php5/php5.y:3348 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5599,7 +5623,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3335 + // line internal/php5/php5.y:3359 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5612,7 +5636,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3346 + // line internal/php5/php5.y:3370 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5624,7 +5648,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3356 + // line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5637,7 +5661,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3367 + // line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5649,7 +5673,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3377 + // line internal/php5/php5.y:3401 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5662,7 +5686,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3388 + // line internal/php5/php5.y:3412 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5675,7 +5699,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3399 + // line internal/php5/php5.y:3423 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5688,7 +5712,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3410 + // line internal/php5/php5.y:3434 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5701,7 +5725,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3421 + // line internal/php5/php5.y:3445 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5714,7 +5738,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3432 + // line internal/php5/php5.y:3456 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5727,7 +5751,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3443 + // line internal/php5/php5.y:3467 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5740,7 +5764,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3454 + // line internal/php5/php5.y:3478 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5753,7 +5777,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3465 + // line internal/php5/php5.y:3489 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,7 +5789,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3475 + // line internal/php5/php5.y:3499 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5778,7 +5802,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3486 + // line internal/php5/php5.y:3510 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5791,7 +5815,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3497 + // line internal/php5/php5.y:3521 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5804,7 +5828,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3508 + // line internal/php5/php5.y:3532 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5817,7 +5841,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3519 + // line internal/php5/php5.y:3543 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5830,7 +5854,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3530 + // line internal/php5/php5.y:3554 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5867,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3541 + // line internal/php5/php5.y:3565 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5856,7 +5880,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3552 + // line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5869,7 +5893,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3587 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5881,7 +5905,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3573 + // line internal/php5/php5.y:3597 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5893,7 +5917,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3583 + // line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5905,7 +5929,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3593 + // line internal/php5/php5.y:3617 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5917,7 +5941,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3603 + // line internal/php5/php5.y:3627 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5930,7 +5954,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3614 + // line internal/php5/php5.y:3638 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5943,7 +5967,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3625 + // line internal/php5/php5.y:3649 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5956,7 +5980,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3636 + // line internal/php5/php5.y:3660 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5970,7 +5994,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3648 + // line internal/php5/php5.y:3672 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5983,7 +6007,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3659 + // line internal/php5/php5.y:3683 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5996,7 +6020,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3670 + // line internal/php5/php5.y:3694 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6009,7 +6033,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3681 + // line internal/php5/php5.y:3705 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6022,7 +6046,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3716 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6035,19 +6059,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3703 + // line internal/php5/php5.y:3727 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3707 + // line internal/php5/php5.y:3731 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3711 + // line internal/php5/php5.y:3735 { yyVAL.node = yyDollar[2].node @@ -6079,7 +6103,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3741 + // line internal/php5/php5.y:3765 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6093,7 +6117,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3777 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6107,13 +6131,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3765 + // line internal/php5/php5.y:3789 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3769 + // line internal/php5/php5.y:3793 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6126,7 +6150,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3780 + // line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6139,7 +6163,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3791 + // line internal/php5/php5.y:3815 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6152,7 +6176,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3802 + // line internal/php5/php5.y:3826 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6165,7 +6189,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3813 + // line internal/php5/php5.y:3837 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6178,7 +6202,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3824 + // line internal/php5/php5.y:3848 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6191,7 +6215,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3835 + // line internal/php5/php5.y:3859 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6204,7 +6228,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3846 + // line internal/php5/php5.y:3870 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6224,7 +6248,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3864 + // line internal/php5/php5.y:3888 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6236,25 +6260,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3874 + // line internal/php5/php5.y:3898 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3878 + // line internal/php5/php5.y:3902 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3882 + // line internal/php5/php5.y:3906 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3886 + // line internal/php5/php5.y:3910 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6266,7 +6290,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3896 + // line internal/php5/php5.y:3920 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6278,7 +6302,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3906 + // line internal/php5/php5.y:3930 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6290,7 +6314,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3916 + // line internal/php5/php5.y:3940 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6309,7 +6333,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3933 + // line internal/php5/php5.y:3957 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6329,7 +6353,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3954 + // line internal/php5/php5.y:3978 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6341,7 +6365,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3964 + // line internal/php5/php5.y:3988 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6353,7 +6377,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3974 + // line internal/php5/php5.y:3998 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6366,7 +6390,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3985 + // line internal/php5/php5.y:4009 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6379,7 +6403,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3999 + // line internal/php5/php5.y:4023 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6392,7 +6416,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4010 + // line internal/php5/php5.y:4034 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6405,7 +6429,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4021 + // line internal/php5/php5.y:4045 { str := &ast.ScalarString{ Node: ast.Node{ @@ -6425,7 +6449,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4039 + // line internal/php5/php5.y:4063 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6438,46 +6462,48 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4053 + // line internal/php5/php5.y:4077 { - yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ArrayTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4065 + // line internal/php5/php5.y:4090 { - yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[3].token, + } } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4079 + // line internal/php5/php5.y:4105 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4086 + // line internal/php5/php5.y:4112 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4090 + // line internal/php5/php5.y:4116 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6491,7 +6517,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4105 + // line internal/php5/php5.y:4131 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6512,7 +6538,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4124 + // line internal/php5/php5.y:4150 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6536,7 +6562,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4146 + // line internal/php5/php5.y:4172 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6556,7 +6582,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4164 + // line internal/php5/php5.y:4190 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6579,7 +6605,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4188 + // line internal/php5/php5.y:4214 { name := &ast.NameName{ Node: ast.Node{ @@ -6594,7 +6620,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4201 + // line internal/php5/php5.y:4227 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6611,7 +6637,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4216 + // line internal/php5/php5.y:4242 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6627,7 +6653,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4230 + // line internal/php5/php5.y:4256 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6640,7 +6666,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4241 + // line internal/php5/php5.y:4267 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6653,7 +6679,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4252 + // line internal/php5/php5.y:4278 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6666,7 +6692,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4263 + // line internal/php5/php5.y:4289 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6679,7 +6705,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4274 + // line internal/php5/php5.y:4300 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6691,7 +6717,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4287 + // line internal/php5/php5.y:4313 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6703,7 +6729,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4297 + // line internal/php5/php5.y:4323 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6714,7 +6740,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4306 + // line internal/php5/php5.y:4332 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6727,7 +6753,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4317 + // line internal/php5/php5.y:4343 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6739,7 +6765,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4330 + // line internal/php5/php5.y:4356 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6750,7 +6776,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4365 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6763,7 +6789,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4350 + // line internal/php5/php5.y:4376 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6775,19 +6801,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4363 + // line internal/php5/php5.y:4389 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4367 + // line internal/php5/php5.y:4393 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4374 + // line internal/php5/php5.y:4400 { yyVAL.node = yyDollar[1].node @@ -6828,25 +6854,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4413 + // line internal/php5/php5.y:4439 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4421 + // line internal/php5/php5.y:4447 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4425 + // line internal/php5/php5.y:4451 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4433 + // line internal/php5/php5.y:4459 { yyVAL.list = yyDollar[2].list @@ -6855,13 +6881,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4443 + // line internal/php5/php5.y:4469 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4447 + // line internal/php5/php5.y:4473 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6877,19 +6903,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4461 + // line internal/php5/php5.y:4487 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4468 + // line internal/php5/php5.y:4494 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4472 + // line internal/php5/php5.y:4498 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6903,25 +6929,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4484 + // line internal/php5/php5.y:4510 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4491 + // line internal/php5/php5.y:4517 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4495 + // line internal/php5/php5.y:4521 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4502 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6933,7 +6959,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4512 + // line internal/php5/php5.y:4538 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6945,7 +6971,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4522 + // line internal/php5/php5.y:4548 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6957,7 +6983,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4558 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6969,7 +6995,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4542 + // line internal/php5/php5.y:4568 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6981,7 +7007,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4552 + // line internal/php5/php5.y:4578 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6993,7 +7019,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4588 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7005,7 +7031,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4572 + // line internal/php5/php5.y:4598 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7017,7 +7043,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4582 + // line internal/php5/php5.y:4608 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7029,7 +7055,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4592 + // line internal/php5/php5.y:4618 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7041,7 +7067,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4602 + // line internal/php5/php5.y:4628 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7062,7 +7088,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4621 + // line internal/php5/php5.y:4647 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7074,7 +7100,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4634 + // line internal/php5/php5.y:4660 { target := &ast.Identifier{ Node: ast.Node{ @@ -7094,25 +7120,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4655 + // line internal/php5/php5.y:4681 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4662 + // line internal/php5/php5.y:4688 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4666 + // line internal/php5/php5.y:4692 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4670 + // line internal/php5/php5.y:4696 { name := &ast.NameName{ Node: ast.Node{ @@ -7127,7 +7153,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4683 + // line internal/php5/php5.y:4709 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7144,7 +7170,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4698 + // line internal/php5/php5.y:4724 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7160,40 +7186,42 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4712 + // line internal/php5/php5.y:4738 { - yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ArrayTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4751 { - yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[3].token, + } } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4763 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4739 + // line internal/php5/php5.y:4767 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7205,13 +7233,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4749 + // line internal/php5/php5.y:4777 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4756 + // line internal/php5/php5.y:4784 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7224,7 +7252,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4767 + // line internal/php5/php5.y:4795 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7237,7 +7265,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4778 + // line internal/php5/php5.y:4806 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7250,7 +7278,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4789 + // line internal/php5/php5.y:4817 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7263,7 +7291,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4800 + // line internal/php5/php5.y:4828 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7276,7 +7304,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4811 + // line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7289,7 +7317,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4822 + // line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7302,7 +7330,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4833 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7314,7 +7342,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4843 + // line internal/php5/php5.y:4871 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7326,7 +7354,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4853 + // line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7339,7 +7367,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4864 + // line internal/php5/php5.y:4892 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7352,7 +7380,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4875 + // line internal/php5/php5.y:4903 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7365,7 +7393,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4886 + // line internal/php5/php5.y:4914 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7378,7 +7406,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4897 + // line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7391,7 +7419,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4908 + // line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7404,7 +7432,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4919 + // line internal/php5/php5.y:4947 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7417,7 +7445,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4958 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7430,7 +7458,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4941 + // line internal/php5/php5.y:4969 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7443,7 +7471,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4952 + // line internal/php5/php5.y:4980 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7456,7 +7484,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4963 + // line internal/php5/php5.y:4991 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7469,7 +7497,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4974 + // line internal/php5/php5.y:5002 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7482,7 +7510,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4985 + // line internal/php5/php5.y:5013 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7495,7 +7523,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5024 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7508,7 +7536,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5007 + // line internal/php5/php5.y:5035 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7522,7 +7550,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5019 + // line internal/php5/php5.y:5047 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7535,7 +7563,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5030 + // line internal/php5/php5.y:5058 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7548,7 +7576,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5041 + // line internal/php5/php5.y:5069 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7561,7 +7589,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5052 + // line internal/php5/php5.y:5080 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7574,7 +7602,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5063 + // line internal/php5/php5.y:5091 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7588,7 +7616,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5075 + // line internal/php5/php5.y:5103 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7602,7 +7630,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5087 + // line internal/php5/php5.y:5115 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7614,7 +7642,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5097 + // line internal/php5/php5.y:5125 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7626,7 +7654,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5107 + // line internal/php5/php5.y:5135 { yyVAL.node = yyDollar[2].node @@ -7636,13 +7664,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5118 + // line internal/php5/php5.y:5146 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5150 { name := &ast.NameName{ Node: ast.Node{ @@ -7657,7 +7685,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5135 + // line internal/php5/php5.y:5163 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7674,7 +7702,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5150 + // line internal/php5/php5.y:5178 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7690,7 +7718,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5167 + // line internal/php5/php5.y:5195 { name := &ast.Identifier{ Node: ast.Node{ @@ -7709,25 +7737,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5184 + // line internal/php5/php5.y:5212 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5216 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5192 + // line internal/php5/php5.y:5220 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5196 + // line internal/php5/php5.y:5224 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7740,7 +7768,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5207 + // line internal/php5/php5.y:5235 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7753,7 +7781,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5218 + // line internal/php5/php5.y:5246 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7765,68 +7793,77 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5231 + // line internal/php5/php5.y:5259 { - yyVAL.list = nil + yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5235 + // line internal/php5/php5.y:5263 { - yyVAL.list = yyDollar[1].list - - // save comments if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) } + + yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5247 + // line internal/php5/php5.y:5275 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5251 + // line internal/php5/php5.y:5279 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5258 + // line internal/php5/php5.y:5286 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} - yyVAL.list = append(yyDollar[1].list, arrayItem) + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + + yyVAL.node = yyDollar[1].node // save position arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5271 + // line internal/php5/php5.y:5302 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} - yyVAL.list = append(yyDollar[1].list, arrayItem) + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + + yyVAL.node = yyDollar[1].node // save position arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5283 + // line internal/php5/php5.y:5317 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} - yyVAL.list = []ast.Vertex{arrayItem} + + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) @@ -7837,10 +7874,13 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5295 + // line internal/php5/php5.y:5332 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} - yyVAL.list = []ast.Vertex{arrayItem} + + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[1].node) @@ -7850,19 +7890,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5309 + // line internal/php5/php5.y:5349 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5313 + // line internal/php5/php5.y:5353 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5320 + // line internal/php5/php5.y:5360 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7879,7 +7919,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5335 + // line internal/php5/php5.y:5375 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7896,25 +7936,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5354 + // line internal/php5/php5.y:5394 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5362 + // line internal/php5/php5.y:5402 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5409 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5376 + // line internal/php5/php5.y:5416 { yyVAL.node = yyDollar[1].node @@ -7972,25 +8012,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5432 + // line internal/php5/php5.y:5472 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5439 + // line internal/php5/php5.y:5479 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5443 + // line internal/php5/php5.y:5483 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5451 + // line internal/php5/php5.y:5491 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8004,7 +8044,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5466 + // line internal/php5/php5.y:5506 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8018,7 +8058,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5478 + // line internal/php5/php5.y:5518 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} @@ -8032,7 +8072,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5493 + // line internal/php5/php5.y:5533 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8041,31 +8081,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5503 + // line internal/php5/php5.y:5543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5507 + // line internal/php5/php5.y:5547 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5551 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5518 + // line internal/php5/php5.y:5558 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5522 + // line internal/php5/php5.y:5562 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8077,7 +8117,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5535 + // line internal/php5/php5.y:5575 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8090,7 +8130,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5586 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8103,13 +8143,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5600 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5607 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8122,7 +8162,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5578 + // line internal/php5/php5.y:5618 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8135,31 +8175,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5632 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5596 + // line internal/php5/php5.y:5636 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5600 + // line internal/php5/php5.y:5640 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5608 + // line internal/php5/php5.y:5648 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5612 + // line internal/php5/php5.y:5652 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8171,13 +8211,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5622 + // line internal/php5/php5.y:5662 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5669 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8190,7 +8230,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5640 + // line internal/php5/php5.y:5680 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8203,13 +8243,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5651 + // line internal/php5/php5.y:5691 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5659 + // line internal/php5/php5.y:5699 { name := &ast.Identifier{ Node: ast.Node{ @@ -8228,7 +8268,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5676 + // line internal/php5/php5.y:5716 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8242,25 +8282,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5691 + // line internal/php5/php5.y:5731 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5695 + // line internal/php5/php5.y:5735 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5703 + // line internal/php5/php5.y:5743 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5707 + // line internal/php5/php5.y:5747 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8270,7 +8310,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5718 + // line internal/php5/php5.y:5758 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8284,7 +8324,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5730 + // line internal/php5/php5.y:5770 { fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} yyVAL.list = append(yyDollar[1].list, fetch) @@ -8298,7 +8338,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5742 + // line internal/php5/php5.y:5782 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8308,7 +8348,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5753 + // line internal/php5/php5.y:5793 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8320,7 +8360,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5763 + // line internal/php5/php5.y:5803 { yyVAL.node = yyDollar[2].node @@ -8333,7 +8373,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5777 + // line internal/php5/php5.y:5817 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8346,7 +8386,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5788 + // line internal/php5/php5.y:5828 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8363,30 +8403,24 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5806 + // line internal/php5/php5.y:5846 { - if len(yyDollar[1].list) == 0 { - yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} - } + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5817 + // line internal/php5/php5.y:5853 { - if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { - yyVAL.list = []ast.Vertex{} - } else { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, } } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5829 + // line internal/php5/php5.y:5863 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -8398,9 +8432,25 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5839 + // line internal/php5/php5.y:5873 { - listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + pairList := yyDollar[3].node.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) + + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } + + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position @@ -8414,66 +8464,71 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5853 + // line internal/php5/php5.y:5903 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5861 + // line internal/php5/php5.y:5911 { - yyVAL.list = []ast.Vertex{} + yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5865 + // line internal/php5/php5.y:5915 { - yyVAL.list = yyDollar[1].list - if yyDollar[2].token != nil { - yyVAL.list = append(yyDollar[1].list, &ast.ExprArrayItem{ast.Node{}, false, nil, nil}) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) } - // save comments - if yyDollar[2].token != nil { - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - } + yyVAL.node = yyDollar[1].node } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5881 + // line internal/php5/php5.y:5927 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} - yyVAL.list = append(yyDollar[1].list, arrayItem) + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + + yyVAL.node = yyDollar[1].node // save position arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5894 + // line internal/php5/php5.y:5943 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} - yyVAL.list = append(yyDollar[1].list, arrayItem) + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + + yyVAL.node = yyDollar[1].node // save position arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5906 + // line internal/php5/php5.y:5958 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} - yyVAL.list = []ast.Vertex{arrayItem} + + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) @@ -8484,10 +8539,13 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5918 + // line internal/php5/php5.y:5973 { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} - yyVAL.list = []ast.Vertex{arrayItem} + + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[1].node) @@ -8497,45 +8555,54 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5929 + // line internal/php5/php5.y:5987 { reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} - yyVAL.list = append(yyDollar[1].list, arrayItem) + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + + yyVAL.node = yyDollar[1].node // save position reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node) arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.SkippedTokens) } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5945 + // line internal/php5/php5.y:6006 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - yyVAL.list = append(yyDollar[1].list, arrayItem) + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + + yyVAL.node = yyDollar[1].node // save position reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.SkippedTokens) } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5959 + // line internal/php5/php5.y:6023 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} - yyVAL.list = []ast.Vertex{arrayItem} + + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) @@ -8548,11 +8615,14 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5974 + // line internal/php5/php5.y:6041 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - yyVAL.list = []ast.Vertex{arrayItem} + + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) @@ -8563,13 +8633,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5990 + // line internal/php5/php5.y:6060 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5994 + // line internal/php5/php5.y:6064 { yyVAL.list = append( yyDollar[1].list, @@ -8584,13 +8654,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6007 + // line internal/php5/php5.y:6077 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6011 + // line internal/php5/php5.y:6081 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8605,7 +8675,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6027 + // line internal/php5/php5.y:6097 { name := &ast.Identifier{ Node: ast.Node{ @@ -8624,7 +8694,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6044 + // line internal/php5/php5.y:6114 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8646,7 +8716,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6064 + // line internal/php5/php5.y:6134 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8674,7 +8744,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6090 + // line internal/php5/php5.y:6160 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8689,7 +8759,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6103 + // line internal/php5/php5.y:6173 { name := &ast.Identifier{ Node: ast.Node{ @@ -8711,7 +8781,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6123 + // line internal/php5/php5.y:6193 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8735,7 +8805,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6145 + // line internal/php5/php5.y:6215 { yyVAL.node = yyDollar[2].node @@ -8745,7 +8815,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6156 + // line internal/php5/php5.y:6226 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8757,7 +8827,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6166 + // line internal/php5/php5.y:6236 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8786,7 +8856,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6193 + // line internal/php5/php5.y:6263 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8805,7 +8875,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6213 + // line internal/php5/php5.y:6283 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8819,7 +8889,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6225 + // line internal/php5/php5.y:6295 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8841,7 +8911,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6245 + // line internal/php5/php5.y:6315 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8863,7 +8933,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6265 + // line internal/php5/php5.y:6335 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8875,7 +8945,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6275 + // line internal/php5/php5.y:6345 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8887,7 +8957,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6285 + // line internal/php5/php5.y:6355 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8909,7 +8979,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6305 + // line internal/php5/php5.y:6375 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8921,7 +8991,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6315 + // line internal/php5/php5.y:6385 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -8933,13 +9003,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6328 + // line internal/php5/php5.y:6398 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6332 + // line internal/php5/php5.y:6402 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -8948,19 +9018,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6342 + // line internal/php5/php5.y:6412 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6346 + // line internal/php5/php5.y:6416 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6353 + // line internal/php5/php5.y:6423 { target := &ast.Identifier{ Node: ast.Node{ @@ -8980,7 +9050,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6371 + // line internal/php5/php5.y:6441 { target := &ast.Identifier{ Node: ast.Node{ @@ -9000,7 +9070,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6392 + // line internal/php5/php5.y:6462 { target := &ast.Identifier{ Node: ast.Node{ @@ -9020,7 +9090,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6413 + // line internal/php5/php5.y:6483 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 19cb72b..5a00d67 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -238,9 +238,9 @@ import ( %type trait_method_reference_fully_qualified trait_method_reference trait_modifiers member_modifier method %type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list echo_expr_list class_variable_declaration -%type trait_adaptations unset_variables declare_list -%type switch_case_list non_empty_function_call_parameter_list -%type method_body trait_reference_list +%type trait_adaptations unset_variables declare_list non_empty_array_pair_list array_pair_list +%type switch_case_list non_empty_function_call_parameter_list assignment_list +%type method_body trait_reference_list static_array_pair_list non_empty_static_array_pair_list %type foreach_statement for_statement while_statement %type foreach_variable foreach_optional_arg %type extends_from interface_list trait_list @@ -249,13 +249,13 @@ import ( %type lexical_vars %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations -%type inner_statement_list encaps_list isset_variables non_empty_array_pair_list -%type array_pair_list assignment_list lexical_var_list elseif_list new_elseif_list non_empty_for_expr +%type inner_statement_list encaps_list isset_variables +%type lexical_var_list elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers %type trait_adaptation_list non_empty_trait_adaptation_list -%type non_empty_member_modifiers backticks_expr static_array_pair_list non_empty_static_array_pair_list +%type non_empty_member_modifiers backticks_expr %type chaining_dereference chaining_instance_call chaining_method_or_property instance_call variable_property %type method_or_not array_method_dereference object_property object_dim_list dynamic_class_name_variable_property @@ -1620,15 +1620,23 @@ foreach_variable: } | T_LIST '(' assignment_list ')' { - $$ = &ast.ExprList{ast.Node{}, $3} + pairList := $3.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.List, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) + $$ = &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } } ; @@ -3129,7 +3137,23 @@ new_expr: expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { - listNode := &ast.ExprList{ast.Node{}, $3} + pairList := $3.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) + + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } + + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} // save position @@ -4051,26 +4075,28 @@ combined_scalar_offset: combined_scalar: T_ARRAY '(' array_pair_list ')' { - $$ = &ast.ExprArray{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) + $$ = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ArrayTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } } | '[' array_pair_list ']' { - $$ = &ast.ExprShortArray{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) + $$ = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Items: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $3, + } } ; @@ -4710,26 +4736,28 @@ static_scalar_value: } | T_ARRAY '(' static_array_pair_list ')' { - $$ = &ast.ExprArray{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) + $$ = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ArrayTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } } | '[' static_array_pair_list ']' { - $$ = &ast.ExprShortArray{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) + $$ = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Items: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $3, + } } | static_class_constant { @@ -5229,16 +5257,16 @@ scalar: static_array_pair_list: /* empty */ { - $$ = nil + $$ = &ast.ParserSeparatedList{} } | non_empty_static_array_pair_list possible_comma { - $$ = $1 - - // save comments if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) } + + $$ = $1 } ; @@ -5257,32 +5285,41 @@ non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, $5} - $$ = append($1, arrayItem) + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + + $$ = $1 // save position arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) } | non_empty_static_array_pair_list ',' static_scalar_value { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $3} - $$ = append($1, arrayItem) + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + + $$ = $1 // save position arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, $3} - $$ = []ast.Vertex{arrayItem} + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodesPosition($1, $3) @@ -5294,7 +5331,10 @@ non_empty_static_array_pair_list: | static_scalar_value { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $1} - $$ = []ast.Vertex{arrayItem} + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodePosition($1) @@ -5804,21 +5844,15 @@ simple_indirect_reference: assignment_list: assignment_list ',' assignment_list_element { - if len($1) == 0 { - $1 = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} - } + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | assignment_list_element { - if $1.(*ast.ExprArrayItem).Key == nil && $1.(*ast.ExprArrayItem).Val == nil { - $$ = []ast.Vertex{} - } else { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, } } ; @@ -5837,7 +5871,23 @@ assignment_list_element: } | T_LIST '(' assignment_list ')' { - listNode := &ast.ExprList{ast.Node{}, $3} + pairList := $3.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) + + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } + + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position @@ -5859,20 +5909,16 @@ assignment_list_element: array_pair_list: /* empty */ { - $$ = []ast.Vertex{} + $$ = &ast.ParserSeparatedList{} } | non_empty_array_pair_list possible_comma { + if $2 != nil { + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) + } + $$ = $1 - - if $2 != nil { - $$ = append($1, &ast.ExprArrayItem{ast.Node{}, false, nil, nil}) - } - - // save comments - if $2 != nil { - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - } } ; @@ -5880,32 +5926,41 @@ non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, $5} - $$ = append($1, arrayItem) + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + + $$ = $1 // save position arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) } | non_empty_array_pair_list ',' expr { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $3} - $$ = append($1, arrayItem) + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + + $$ = $1 // save position arrayItem.GetNode().Position = position.NewNodePosition($3) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) } | expr T_DOUBLE_ARROW expr { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, $3} - $$ = []ast.Vertex{arrayItem} + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodesPosition($1, $3) @@ -5917,7 +5972,10 @@ non_empty_array_pair_list: | expr { arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $1} - $$ = []ast.Vertex{arrayItem} + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position arrayItem.GetNode().Position = position.NewNodePosition($1) @@ -5929,14 +5987,17 @@ non_empty_array_pair_list: { reference := &ast.ExprReference{ast.Node{}, $6} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, reference} - $$ = append($1, arrayItem) + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + + $$ = $1 // save position reference.GetNode().Position = position.NewTokenNodePosition($5, $6) arrayItem.GetNode().Position = position.NewNodesPosition($3, $6) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).MoveFreeFloating($3, arrayItem) yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) yylex.(*Parser).setFreeFloating(reference, token.Start, $5.SkippedTokens) @@ -5945,21 +6006,27 @@ non_empty_array_pair_list: { reference := &ast.ExprReference{ast.Node{}, $4} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - $$ = append($1, arrayItem) + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + + $$ = $1 // save position reference.GetNode().Position = position.NewTokenNodePosition($3, $4) arrayItem.GetNode().Position = position.NewTokenNodePosition($3, $4) // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.SkippedTokens) } | expr T_DOUBLE_ARROW '&' w_variable { reference := &ast.ExprReference{ast.Node{}, $4} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, reference} - $$ = []ast.Vertex{arrayItem} + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position reference.GetNode().Position = position.NewTokenNodePosition($3, $4) @@ -5974,7 +6041,10 @@ non_empty_array_pair_list: { reference := &ast.ExprReference{ast.Node{}, $2} arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - $$ = []ast.Vertex{arrayItem} + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{arrayItem}, + } // save position reference.GetNode().Position = position.NewTokenNodePosition($1, $2) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index f1be513..ba1e751 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4971 +// line internal/php7/php7.y:4992 // line yacctab:1 var yyExca = [...]int{ @@ -625,15 +625,15 @@ var yyAct = [...]int{ 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, - 780, 781, 856, 111, 744, 632, 225, 848, 528, 865, - 879, 533, 260, 261, 855, 328, 841, 676, 255, 796, - 385, 859, 136, 371, 656, 114, 852, 934, 662, 877, - 890, 891, 886, 845, 227, 43, 892, 893, 42, 885, - 16, 237, 838, 853, 539, 897, 898, 730, 15, 872, - 830, 151, 786, 896, 903, 606, 271, 905, 49, 217, - 218, 902, 48, 110, 886, 908, 50, 84, 904, 82, - 72, 885, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 252, 906, 62, 269, 918, + 780, 781, 856, 111, 744, 632, 528, 848, 865, 879, + 328, 533, 260, 261, 855, 841, 676, 255, 796, 385, + 371, 859, 136, 656, 852, 114, 934, 662, 845, 877, + 890, 891, 886, 227, 43, 42, 892, 893, 16, 885, + 838, 237, 539, 853, 15, 897, 898, 730, 830, 872, + 151, 606, 786, 896, 903, 271, 49, 905, 48, 217, + 218, 902, 110, 50, 886, 908, 84, 82, 904, 72, + 252, 885, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 225, 906, 62, 269, 918, 235, 61, 238, 884, 883, 882, 881, 928, 926, 925, 924, 108, 922, 586, 742, 929, 789, 147, 144, 45, 930, 734, 919, 640, 920, 933, 203, 4, 937, 89, @@ -1425,13 +1425,13 @@ var yyPgo = [...]int{ 21, 83, 948, 0, 84, 946, 931, 42, 196, 32, 19, 38, 929, 928, 73, 927, 62, 924, 5, 916, 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, - 907, 905, 890, 8, 889, 80, 41, 887, 56, 49, - 886, 883, 882, 878, 876, 86, 875, 871, 870, 10, - 868, 87, 864, 862, 860, 858, 12, 855, 854, 46, - 39, 40, 2, 16, 667, 43, 85, 853, 848, 847, - 13, 846, 844, 555, 843, 45, 71, 840, 839, 6, - 721, 20, 540, 838, 18, 837, 836, 36, 835, 25, - 33, 37, 830, 530, 829, 828, 826, 34, 99, 1, + 907, 905, 34, 890, 889, 8, 887, 80, 41, 886, + 56, 49, 883, 882, 878, 876, 875, 86, 871, 870, + 868, 10, 864, 87, 862, 860, 858, 855, 12, 854, + 853, 46, 39, 40, 2, 16, 667, 43, 85, 848, + 847, 846, 13, 844, 843, 555, 840, 45, 71, 839, + 838, 6, 721, 20, 540, 837, 18, 836, 835, 36, + 830, 25, 33, 37, 829, 530, 828, 826, 99, 1, 3, 825, 17, 824, 817, 810, 809, 804, 28, } @@ -1444,28 +1444,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, - 118, 104, 104, 10, 10, 10, 9, 9, 9, 9, + 118, 106, 106, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 100, 100, 16, 16, 18, 18, 7, 7, 110, - 110, 109, 109, 113, 113, 17, 17, 20, 20, 19, - 19, 71, 71, 119, 119, 22, 22, 22, 22, 22, + 9, 102, 102, 16, 16, 18, 18, 7, 7, 112, + 112, 111, 111, 115, 115, 17, 17, 20, 20, 19, + 19, 73, 73, 119, 119, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 105, 105, 68, 68, - 26, 26, 94, 94, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 84, 84, 14, 15, 95, 95, - 97, 97, 96, 96, 101, 101, 101, 101, 91, 91, - 90, 90, 25, 25, 88, 88, 88, 88, 111, 111, - 111, 8, 8, 92, 92, 75, 75, 70, 70, 77, - 77, 74, 74, 120, 120, 121, 121, 29, 29, 30, - 30, 83, 83, 81, 81, 81, 82, 82, 85, 85, - 72, 72, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 122, 122, 37, 37, 37, 37, 69, 69, 87, - 87, 87, 112, 112, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 89, 89, 124, 124, 123, 123, - 125, 125, 99, 99, 99, 99, 99, 99, 73, 73, - 43, 43, 106, 106, 76, 21, 67, 67, 44, 107, - 107, 108, 108, 46, 45, 45, 32, 32, 32, 32, + 11, 11, 11, 11, 11, 11, 107, 107, 70, 70, + 26, 26, 96, 96, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 86, 86, 14, 15, 97, 97, + 99, 99, 98, 98, 103, 103, 103, 103, 93, 93, + 92, 92, 25, 25, 90, 90, 90, 90, 113, 113, + 113, 8, 8, 94, 94, 77, 77, 72, 72, 79, + 79, 76, 76, 120, 120, 121, 121, 29, 29, 30, + 30, 85, 85, 83, 83, 83, 84, 84, 87, 87, + 74, 74, 31, 31, 33, 33, 34, 35, 35, 36, + 36, 122, 122, 37, 37, 37, 37, 71, 71, 89, + 89, 89, 114, 114, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 91, 91, 124, 124, 123, 123, + 125, 125, 101, 101, 101, 101, 101, 101, 75, 75, + 43, 43, 108, 108, 78, 21, 69, 69, 44, 109, + 109, 110, 110, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1473,19 +1473,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 93, 93, 128, 3, 3, 98, 98, - 114, 114, 53, 53, 54, 54, 54, 54, 47, 47, - 48, 48, 51, 51, 103, 103, 103, 86, 86, 58, - 58, 58, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 59, 59, - 59, 23, 23, 24, 24, 57, 60, 60, 60, 61, - 61, 61, 62, 62, 62, 62, 62, 62, 28, 28, - 28, 49, 49, 49, 63, 63, 64, 64, 64, 64, - 64, 64, 55, 55, 55, 56, 56, 56, 117, 79, - 79, 116, 116, 78, 78, 78, 78, 78, 78, 78, - 102, 102, 102, 102, 65, 65, 65, 65, 65, 65, - 65, 66, 66, 66, 66, 50, 50, 50, 50, 50, - 50, 50, 115, 115, 80, + 32, 32, 32, 95, 95, 128, 3, 3, 100, 100, + 116, 116, 55, 55, 56, 56, 56, 56, 47, 47, + 48, 48, 53, 53, 105, 105, 105, 88, 88, 60, + 60, 60, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 61, 61, + 61, 23, 23, 24, 24, 59, 62, 62, 62, 63, + 63, 63, 64, 64, 64, 64, 64, 64, 28, 28, + 28, 49, 49, 49, 65, 65, 66, 66, 66, 66, + 66, 66, 57, 57, 57, 58, 58, 58, 52, 81, + 81, 51, 51, 80, 80, 80, 80, 80, 80, 80, + 104, 104, 104, 104, 67, 67, 67, 67, 67, 67, + 67, 68, 68, 68, 68, 50, 50, 50, 50, 50, + 50, 50, 117, 117, 82, } var yyR2 = [...]int{ @@ -1543,49 +1543,49 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -118, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -70, -74, 21, 20, 23, + 52, 80, 45, 39, 144, -72, -76, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -75, -77, -28, -32, -84, 7, -62, -63, - -60, 60, 150, 93, 105, 106, 155, 154, 156, 157, + 54, 55, -77, -79, -28, -32, -86, 7, -64, -65, + -62, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -52, 143, 97, 98, 107, -93, 100, 101, - -49, -59, -54, -47, -57, -58, 92, 50, 51, 4, + 6, 158, -54, 143, 97, 98, 107, -95, 100, 101, + -49, -61, -56, -47, -59, -60, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -61, 61, 18, -104, 83, 148, 83, -104, 144, 10, - -18, -100, -113, -104, 83, 37, 39, -19, -20, -71, + -63, 61, 18, -106, 83, 148, 83, -106, 144, 10, + -18, -102, -115, -106, 83, 37, 39, -19, -20, -73, -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -93, -36, - 12, -67, -44, -23, 146, 131, 132, 88, 90, 89, + -23, 99, -24, -24, -33, -34, -49, -35, -95, -36, + 12, -69, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -84, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -86, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -117, -116, -79, -78, -23, 153, - 84, 60, -23, -28, -59, 148, -58, 99, 150, -28, + 150, 144, 58, 148, -52, -51, -81, -80, -23, 153, + 84, 60, -23, -28, -61, 148, -60, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -51, 148, -23, -103, 17, -102, -65, 12, + -23, -23, -53, 148, -23, -105, 17, -104, -67, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, - -47, -64, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -102, -102, 17, -3, 144, -49, - -85, 148, -85, 148, 83, -104, 149, -104, 146, 144, - -118, 146, -16, -113, -104, 83, 146, 160, 83, 29, - -104, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -107, -108, -23, + -47, -66, 53, -10, -49, 148, 148, -23, -23, 148, + -23, -23, 17, 76, -104, -104, 17, -3, 144, -49, + -87, 148, -87, 148, 83, -106, 149, -106, 146, 144, + -118, 146, -16, -115, -106, 83, 146, 160, 83, 29, + -106, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -109, -110, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -94, -27, -28, -23, -71, -119, 146, 146, 10, - -128, 10, -95, 56, -128, -97, 56, 148, -11, 148, + -23, -96, -27, -28, -23, -73, -119, 146, 146, 10, + -128, 10, -97, 56, -128, -99, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, - -56, 10, 144, -49, -117, 151, 160, 59, -28, -23, - 148, -23, -117, 149, -24, 143, -65, -65, 17, 150, - 58, -23, 11, -28, 59, -24, -55, -6, -49, 144, + -58, 10, 144, -49, -52, 151, 160, 59, -28, -23, + 148, -23, -52, 149, -24, 143, -67, -67, 17, 150, + 58, -23, 11, -28, 59, -24, -57, -6, -49, 144, 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, 6, 7, 94, 95, 96, 19, 20, 21, 22, 23, @@ -1593,49 +1593,49 @@ var yyChk = [...]int{ 45, 46, 47, 48, 49, 50, 51, 35, 36, 37, 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, - 66, 65, 67, 68, 82, 81, 38, -55, -6, -49, - -86, -85, 79, 150, 144, 58, 79, -86, -115, -80, - -23, -23, -23, 76, 76, 142, 148, -23, 149, -72, - -31, -23, 84, -117, 10, 146, -118, 145, 146, 146, - 83, -104, -19, 83, -104, 144, 10, 83, -21, -23, + 66, 65, 67, 68, 82, 81, 38, -57, -6, -49, + -88, -87, 79, 150, 144, 58, 79, -88, -117, -82, + -23, -23, -23, 76, 76, 142, 148, -23, 149, -74, + -31, -23, 84, -52, 10, 146, -118, 145, 146, 146, + 83, -106, -19, 83, -106, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -95, - -96, 57, -10, 144, -128, -69, -10, -23, -23, -119, - -23, 149, 151, 145, -85, -23, 149, 162, -79, -23, - 153, 60, -117, 149, 151, 149, -66, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -85, -23, - -85, -49, -24, -23, -56, -49, -95, -7, 160, 149, - 149, -120, -121, -29, -30, -83, -81, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -110, - -17, -20, -100, 144, -128, 149, -92, -11, 147, -23, - -107, -23, -88, 144, 147, -23, 149, -27, -101, -28, - 153, 60, 150, -25, -11, 147, -105, 148, -120, -96, - -128, -69, -122, 144, 160, 149, 149, 96, -11, 147, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -97, + -98, 57, -10, 144, -128, -71, -10, -23, -23, -119, + -23, 149, 151, 145, -87, -23, 149, 162, -81, -23, + 153, 60, -52, 149, 151, 149, -68, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -23, 151, -87, -23, + -87, -49, -24, -23, -58, -49, -97, -7, 160, 149, + 149, -120, -121, -29, -30, -85, -83, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -112, + -17, -20, -102, 144, -128, 149, -94, -11, 147, -23, + -109, -23, -90, 144, 147, -23, 149, -27, -103, -28, + 153, 60, 150, -25, -11, 147, -107, 148, -120, -98, + -128, -71, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -96, 149, -80, 149, 160, -1, 153, -81, - 149, -31, -109, -20, 144, -7, 160, -20, -110, 146, - -119, 149, 146, -111, 146, -111, 146, 146, 149, 59, - -28, 148, -117, -119, -26, 42, 43, -120, 149, -128, - 144, 145, -37, -124, -123, 45, -125, 48, -99, 104, + 151, 145, -98, 149, -82, 149, 160, -1, 153, -83, + 149, -31, -111, -20, 144, -7, 160, -20, -112, 146, + -119, 149, 146, -113, 146, -113, 146, 146, 149, 59, + -28, 148, -52, -119, -26, 42, 43, -120, 149, -128, + 144, 145, -37, -124, -123, 45, -125, 48, -101, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -119, -23, -117, 151, -128, -82, 147, -29, -2, 84, - -7, 160, -109, 145, -17, -7, 22, 146, -107, 145, - 32, 33, -111, 31, -111, -90, -11, 147, -101, -28, - -117, 151, 28, 148, 144, 149, -98, 45, 144, -122, - -30, 39, 37, -69, -99, 145, -119, 149, 145, 144, - -128, -83, 12, 145, -20, -7, 145, 146, 149, -23, + -119, -23, -52, 151, -128, -84, 147, -29, -2, 84, + -7, 160, -111, 145, -17, -7, 22, 146, -109, 145, + 32, 33, -113, 31, -113, -92, -11, 147, -103, -28, + -52, 151, 28, 148, 144, 149, -100, 45, 144, -122, + -30, 39, 37, -71, -101, 145, -119, 149, 145, 144, + -128, -85, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, - -68, -10, -119, -82, -82, 148, -122, 145, -73, -43, - 12, -106, -76, -6, -3, -87, 146, 144, -122, 59, - 162, 145, -91, -11, 147, -8, -119, 146, 26, -90, - 12, 161, 145, 144, 144, -114, -53, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -112, + -70, -10, -119, -84, -84, 148, -122, 145, -75, -43, + 12, -108, -78, -6, -3, -89, 146, 144, -122, 59, + 162, 145, -93, -11, 147, -8, -119, 146, 26, -92, + 12, 161, 145, 144, 144, -116, -55, 12, 153, 145, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -114, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, - 160, 12, -43, -23, -76, -23, -128, 145, -38, 146, - 146, 46, 29, 79, 24, 144, 145, 145, -53, -128, - -128, 148, -69, 10, -4, -99, -6, 146, -119, -120, - -6, 145, 149, -82, -89, 146, 144, -119, 145, + 160, 12, -43, -23, -78, -23, -128, 145, -38, 146, + 146, 46, 29, 79, 24, 144, 145, 145, -55, -128, + -128, 148, -71, 10, -4, -101, -6, 146, -119, -120, + -6, 145, 149, -84, -91, 146, 144, -119, 145, } var yyDef = [...]int{ @@ -3825,32 +3825,34 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:1456 { - yyVAL.node = &ast.ExprList{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.List, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1469 { - yyVAL.node = &ast.ExprShortList{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save commentsc - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[3].token, + } } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1482 + // line internal/php7/php7.y:1484 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3861,7 +3863,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1491 + // line internal/php7/php7.y:1493 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3881,7 +3883,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1512 + // line internal/php7/php7.y:1514 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3892,7 +3894,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1521 + // line internal/php7/php7.y:1523 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3912,7 +3914,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1544 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3923,7 +3925,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1551 + // line internal/php7/php7.y:1553 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3943,7 +3945,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1572 + // line internal/php7/php7.y:1574 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3956,7 +3958,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1583 + // line internal/php7/php7.y:1585 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3972,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1595 + // line internal/php7/php7.y:1597 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3985,7 +3987,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1608 + // line internal/php7/php7.y:1610 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4001,13 +4003,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1625 + // line internal/php7/php7.y:1627 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1629 + // line internal/php7/php7.y:1631 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4021,7 +4023,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1643 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4034,19 +4036,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1655 + // line internal/php7/php7.y:1657 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1661 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1666 + // line internal/php7/php7.y:1668 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4057,7 +4059,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1677 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4079,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1696 + // line internal/php7/php7.y:1698 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4092,7 +4094,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1709 + // line internal/php7/php7.y:1711 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4113,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1729 + // line internal/php7/php7.y:1731 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1733 + // line internal/php7/php7.y:1735 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4133,7 +4135,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1750 + // line internal/php7/php7.y:1752 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4155,7 +4157,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1770 + // line internal/php7/php7.y:1772 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4179,7 +4181,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1795 + // line internal/php7/php7.y:1797 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4189,7 +4191,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1803 + // line internal/php7/php7.y:1805 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4213,25 +4215,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1830 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1832 + // line internal/php7/php7.y:1834 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1839 + // line internal/php7/php7.y:1841 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1843 + // line internal/php7/php7.y:1845 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4240,7 +4242,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1855 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4294,7 +4296,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1905 + // line internal/php7/php7.y:1907 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4351,25 +4353,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1963 + // line internal/php7/php7.y:1965 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1969 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1974 + // line internal/php7/php7.y:1976 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1980 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4381,7 +4383,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1991 + // line internal/php7/php7.y:1993 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4393,7 +4395,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2001 + // line internal/php7/php7.y:2003 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4405,19 +4407,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2013 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2018 + // line internal/php7/php7.y:2020 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2024 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4426,7 +4428,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2034 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4438,7 +4440,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2044 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4450,7 +4452,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2057 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4458,7 +4460,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2061 + // line internal/php7/php7.y:2063 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4467,7 +4469,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2073 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4478,7 +4480,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2080 + // line internal/php7/php7.y:2082 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4490,7 +4492,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2095 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4499,7 +4501,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2100 + // line internal/php7/php7.y:2102 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4507,13 +4509,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2109 + // line internal/php7/php7.y:2111 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2116 + // line internal/php7/php7.y:2118 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4522,7 +4524,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2123 + // line internal/php7/php7.y:2125 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4530,7 +4532,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2132 + // line internal/php7/php7.y:2134 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4556,7 +4558,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2156 + // line internal/php7/php7.y:2158 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4583,19 +4585,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2184 + // line internal/php7/php7.y:2186 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2188 + // line internal/php7/php7.y:2190 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2195 + // line internal/php7/php7.y:2197 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4610,7 +4612,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2208 + // line internal/php7/php7.y:2210 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4624,7 +4626,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2220 + // line internal/php7/php7.y:2222 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4638,7 +4640,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2232 + // line internal/php7/php7.y:2234 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4669,7 +4671,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2264 + // line internal/php7/php7.y:2266 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4677,7 +4679,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2272 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4686,7 +4688,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2280 + // line internal/php7/php7.y:2282 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4697,7 +4699,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2289 + // line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4709,7 +4711,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2299 + // line internal/php7/php7.y:2301 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4722,19 +4724,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2313 + // line internal/php7/php7.y:2315 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2317 + // line internal/php7/php7.y:2319 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2326 { yyVAL.node = yyDollar[1].node @@ -4744,7 +4746,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2332 + // line internal/php7/php7.y:2334 { yyVAL.node = yyDollar[1].node @@ -4754,7 +4756,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2343 + // line internal/php7/php7.y:2345 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4768,7 +4770,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2358 + // line internal/php7/php7.y:2360 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4787,7 +4789,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2377 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4806,7 +4808,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2392 + // line internal/php7/php7.y:2394 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4826,7 +4828,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2410 + // line internal/php7/php7.y:2412 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4839,7 +4841,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2424 + // line internal/php7/php7.y:2426 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4856,13 +4858,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2439 + // line internal/php7/php7.y:2441 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2446 + // line internal/php7/php7.y:2448 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4881,7 +4883,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2466 + // line internal/php7/php7.y:2468 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4892,7 +4894,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2475 + // line internal/php7/php7.y:2477 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4905,13 +4907,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2489 + // line internal/php7/php7.y:2491 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2493 + // line internal/php7/php7.y:2495 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4925,31 +4927,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2508 + // line internal/php7/php7.y:2510 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2514 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2521 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2523 + // line internal/php7/php7.y:2525 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2530 + // line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4961,7 +4963,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2540 + // line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4973,7 +4975,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2550 + // line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4985,7 +4987,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2560 + // line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4997,7 +4999,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2570 + // line internal/php7/php7.y:2572 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5009,7 +5011,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2580 + // line internal/php7/php7.y:2582 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5021,7 +5023,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2593 + // line internal/php7/php7.y:2595 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5030,7 +5032,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2600 + // line internal/php7/php7.y:2602 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5038,7 +5040,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2609 + // line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5061,7 +5063,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2630 + // line internal/php7/php7.y:2632 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5085,7 +5087,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2655 + // line internal/php7/php7.y:2657 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5093,13 +5095,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2661 + // line internal/php7/php7.y:2663 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2668 + // line internal/php7/php7.y:2670 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5120,7 +5122,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2690 + // line internal/php7/php7.y:2692 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5141,7 +5143,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2712 + // line internal/php7/php7.y:2714 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5150,7 +5152,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2719 + // line internal/php7/php7.y:2721 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5158,25 +5160,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2728 + // line internal/php7/php7.y:2730 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2735 + // line internal/php7/php7.y:2737 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2739 + // line internal/php7/php7.y:2741 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2746 + // line internal/php7/php7.y:2748 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5185,13 +5187,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2753 + // line internal/php7/php7.y:2755 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2760 + // line internal/php7/php7.y:2762 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5208,7 +5210,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2778 + // line internal/php7/php7.y:2780 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5223,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2791 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5235,40 +5237,50 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2804 + // line internal/php7/php7.y:2806 { - listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} // save position - listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2819 + // line internal/php7/php7.y:2826 { - shortList := &ast.ExprShortList{ast.Node{}, yyDollar[2].list} - yyVAL.node = &ast.ExprAssign{ast.Node{}, shortList, yyDollar[5].node} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[3].token, + } + yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[5].node} // save position - shortList.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, yyDollar[3].token.SkippedTokens) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.SkippedTokens) } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2833 + // line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5281,7 +5293,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2844 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5295,7 +5307,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5307,7 +5319,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2866 + // line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5320,7 +5332,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2877 + // line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5333,7 +5345,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2888 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5346,7 +5358,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2899 + // line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5359,7 +5371,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2910 + // line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5372,7 +5384,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2921 + // line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5385,7 +5397,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2932 + // line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5398,7 +5410,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2943 + // line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5411,7 +5423,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5424,7 +5436,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2965 + // line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5437,7 +5449,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2976 + // line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5450,7 +5462,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2987 + // line internal/php7/php7.y:2999 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5463,7 +5475,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2998 + // line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5476,7 +5488,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3009 + // line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5489,7 +5501,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3020 + // line internal/php7/php7.y:3032 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5501,7 +5513,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3030 + // line internal/php7/php7.y:3042 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5514,7 +5526,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3053 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5526,7 +5538,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3051 + // line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5539,7 +5551,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5552,7 +5564,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3073 + // line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5565,7 +5577,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3084 + // line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5578,7 +5590,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5591,7 +5603,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3106 + // line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5604,7 +5616,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3117 + // line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5617,7 +5629,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3128 + // line internal/php7/php7.y:3140 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5630,7 +5642,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3139 + // line internal/php7/php7.y:3151 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5642,7 +5654,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3161 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5655,7 +5667,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3172 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5668,7 +5680,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3171 + // line internal/php7/php7.y:3183 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5681,7 +5693,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3182 + // line internal/php7/php7.y:3194 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5694,7 +5706,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3205 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5707,7 +5719,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3204 + // line internal/php7/php7.y:3216 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5720,7 +5732,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3227 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5733,7 +5745,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3226 + // line internal/php7/php7.y:3238 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5746,7 +5758,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3237 + // line internal/php7/php7.y:3249 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5758,7 +5770,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3247 + // line internal/php7/php7.y:3259 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5770,7 +5782,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3257 + // line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5782,7 +5794,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3267 + // line internal/php7/php7.y:3279 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5794,7 +5806,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3289 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5807,7 +5819,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3288 + // line internal/php7/php7.y:3300 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5820,7 +5832,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3299 + // line internal/php7/php7.y:3311 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5833,7 +5845,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3322 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5847,7 +5859,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3322 + // line internal/php7/php7.y:3334 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5860,7 +5872,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3333 + // line internal/php7/php7.y:3345 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5873,7 +5885,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3344 + // line internal/php7/php7.y:3356 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5886,7 +5898,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3367 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5899,7 +5911,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3366 + // line internal/php7/php7.y:3378 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5912,7 +5924,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3377 + // line internal/php7/php7.y:3389 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5925,7 +5937,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3400 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5942,13 +5954,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3403 + // line internal/php7/php7.y:3415 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3407 + // line internal/php7/php7.y:3419 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5962,7 +5974,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3419 + // line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5976,7 +5988,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3443 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5989,13 +6001,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3454 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3446 + // line internal/php7/php7.y:3458 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6008,7 +6020,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3457 + // line internal/php7/php7.y:3469 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6021,7 +6033,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3468 + // line internal/php7/php7.y:3480 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6034,7 +6046,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3479 + // line internal/php7/php7.y:3491 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6047,7 +6059,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3502 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6060,7 +6072,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3513 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6073,7 +6085,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3512 + // line internal/php7/php7.y:3524 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6086,7 +6098,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3523 + // line internal/php7/php7.y:3535 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6106,7 +6118,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3541 + // line internal/php7/php7.y:3553 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6118,13 +6130,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3551 + // line internal/php7/php7.y:3563 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3567 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6136,7 +6148,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3565 + // line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6148,7 +6160,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3575 + // line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6160,7 +6172,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3585 + // line internal/php7/php7.y:3597 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6172,7 +6184,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3595 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6185,7 +6197,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3606 + // line internal/php7/php7.y:3618 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6197,13 +6209,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3616 + // line internal/php7/php7.y:3628 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3632 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6218,7 +6230,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3636 + // line internal/php7/php7.y:3648 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6239,7 +6251,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3655 + // line internal/php7/php7.y:3667 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6258,25 +6270,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3679 + // line internal/php7/php7.y:3691 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3683 + // line internal/php7/php7.y:3695 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3690 + // line internal/php7/php7.y:3702 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3706 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6290,7 +6302,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3709 + // line internal/php7/php7.y:3721 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6299,13 +6311,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3716 + // line internal/php7/php7.y:3728 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3723 + // line internal/php7/php7.y:3735 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6324,7 +6336,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3740 + // line internal/php7/php7.y:3752 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6346,7 +6358,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3763 + // line internal/php7/php7.y:3775 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6358,7 +6370,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3773 + // line internal/php7/php7.y:3785 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6371,7 +6383,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3784 + // line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6384,7 +6396,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3795 + // line internal/php7/php7.y:3807 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6396,7 +6408,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3808 + // line internal/php7/php7.y:3820 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6408,31 +6420,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3830 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3837 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3836 + // line internal/php7/php7.y:3848 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3840 + // line internal/php7/php7.y:3852 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6449,13 +6461,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3858 + // line internal/php7/php7.y:3870 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3862 + // line internal/php7/php7.y:3874 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6469,52 +6481,54 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3886 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3893 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 + // line internal/php7/php7.y:3897 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3904 { - yyVAL.node = &ast.ExprArray{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Array, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ArrayTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3904 + // line internal/php7/php7.y:3917 { - yyVAL.node = &ast.ExprShortArray{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.ArrayPairList, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[3].token, + } } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3915 + // line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6526,7 +6540,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3928 + // line internal/php7/php7.y:3942 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6538,7 +6552,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3938 + // line internal/php7/php7.y:3952 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6550,7 +6564,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3948 + // line internal/php7/php7.y:3962 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6562,7 +6576,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3958 + // line internal/php7/php7.y:3972 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6574,7 +6588,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3968 + // line internal/php7/php7.y:3982 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6586,7 +6600,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3978 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6598,7 +6612,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3988 + // line internal/php7/php7.y:4002 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6610,7 +6624,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3998 + // line internal/php7/php7.y:4012 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6622,7 +6636,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4008 + // line internal/php7/php7.y:4022 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6634,7 +6648,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4032 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6646,7 +6660,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4028 + // line internal/php7/php7.y:4042 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6667,7 +6681,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4061 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6679,7 +6693,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4071 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6692,7 +6706,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4068 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6705,19 +6719,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4079 + // line internal/php7/php7.y:4093 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4083 + // line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4090 + // line internal/php7/php7.y:4104 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6729,7 +6743,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4100 + // line internal/php7/php7.y:4114 { target := &ast.Identifier{ Node: ast.Node{ @@ -6749,7 +6763,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4118 + // line internal/php7/php7.y:4132 { target := &ast.Identifier{ Node: ast.Node{ @@ -6769,43 +6783,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4139 + // line internal/php7/php7.y:4153 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4143 + // line internal/php7/php7.y:4157 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4150 + // line internal/php7/php7.y:4164 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4161 + // line internal/php7/php7.y:4175 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4168 + // line internal/php7/php7.y:4182 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4186 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6822,19 +6836,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4201 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4194 + // line internal/php7/php7.y:4208 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4198 + // line internal/php7/php7.y:4212 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6851,19 +6865,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4213 + // line internal/php7/php7.y:4227 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4220 + // line internal/php7/php7.y:4234 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4224 + // line internal/php7/php7.y:4238 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6876,7 +6890,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4235 + // line internal/php7/php7.y:4249 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6889,7 +6903,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4246 + // line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6902,7 +6916,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4257 + // line internal/php7/php7.y:4271 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6915,25 +6929,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4268 + // line internal/php7/php7.y:4282 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4289 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4279 + // line internal/php7/php7.y:4293 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4283 + // line internal/php7/php7.y:4297 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6946,7 +6960,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4297 + // line internal/php7/php7.y:4311 { name := &ast.Identifier{ Node: ast.Node{ @@ -6965,7 +6979,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4328 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6979,7 +6993,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4326 + // line internal/php7/php7.y:4340 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -6991,7 +7005,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4339 + // line internal/php7/php7.y:4353 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7004,7 +7018,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4350 + // line internal/php7/php7.y:4364 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7017,13 +7031,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4364 + // line internal/php7/php7.y:4378 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4368 + // line internal/php7/php7.y:4382 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7036,7 +7050,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4379 + // line internal/php7/php7.y:4393 { yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7049,7 +7063,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4390 + // line internal/php7/php7.y:4404 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7062,7 +7076,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4401 + // line internal/php7/php7.y:4415 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7075,7 +7089,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4412 + // line internal/php7/php7.y:4426 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7088,7 +7102,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4426 + // line internal/php7/php7.y:4440 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7100,7 +7114,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4436 + // line internal/php7/php7.y:4450 { yyVAL.node = yyDollar[2].node @@ -7110,13 +7124,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4444 + // line internal/php7/php7.y:4458 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4451 + // line internal/php7/php7.y:4465 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7128,7 +7142,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4461 + // line internal/php7/php7.y:4475 { yyVAL.node = yyDollar[2].node @@ -7138,54 +7152,55 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4469 + // line internal/php7/php7.y:4483 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4476 + // line internal/php7/php7.y:4490 { - yyVAL.list = yyDollar[1].list + pairList := yyDollar[1].node.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) + + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } + + yyVAL.node = yyDollar[1].node } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4483 + // line internal/php7/php7.y:4504 { - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} + yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4487 + // line internal/php7/php7.y:4508 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4494 + // line internal/php7/php7.y:4515 { - if len(yyDollar[1].list) == 0 { - yyDollar[1].list = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} - } + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4505 + // line internal/php7/php7.y:4522 { - if yyDollar[1].node.(*ast.ExprArrayItem).Key == nil && yyDollar[1].node.(*ast.ExprArrayItem).Val == nil { - yyVAL.list = []ast.Vertex{} - } else { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, } } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4516 + // line internal/php7/php7.y:4531 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} @@ -7198,7 +7213,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4527 + // line internal/php7/php7.y:4542 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} @@ -7210,7 +7225,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4537 + // line internal/php7/php7.y:4552 { reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} @@ -7226,7 +7241,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4551 + // line internal/php7/php7.y:4566 { reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} @@ -7240,7 +7255,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4563 + // line internal/php7/php7.y:4578 { yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} @@ -7252,49 +7267,55 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4573 + // line internal/php7/php7.y:4588 { - // TODO: Cannot use list() as standalone expression - listNode := &ast.ExprList{ast.Node{}, yyDollar[5].list} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), + }, + ListTkn: yyDollar[3].token, + OpenBracketTkn: yyDollar[4].token, + Items: yyDollar[5].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[6].token, + } yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, listNode} // save position - listNode.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token) yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) // save comments yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[6].token.SkippedTokens) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4590 + // line internal/php7/php7.y:4609 { - // TODO: Cannot use list() as standalone expression - listNode := &ast.ExprList{ast.Node{}, yyDollar[3].list} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + } yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4608 + // line internal/php7/php7.y:4629 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4612 + // line internal/php7/php7.y:4633 { yyVAL.list = append( yyDollar[1].list, @@ -7309,13 +7330,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4646 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4629 + // line internal/php7/php7.y:4650 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7330,7 +7351,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4645 + // line internal/php7/php7.y:4666 { name := &ast.Identifier{ Node: ast.Node{ @@ -7349,7 +7370,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4683 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7371,7 +7392,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4682 + // line internal/php7/php7.y:4703 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7399,7 +7420,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4708 + // line internal/php7/php7.y:4729 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7414,7 +7435,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4721 + // line internal/php7/php7.y:4742 { name := &ast.Identifier{ Node: ast.Node{ @@ -7436,7 +7457,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4741 + // line internal/php7/php7.y:4762 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7460,7 +7481,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4763 + // line internal/php7/php7.y:4784 { yyVAL.node = yyDollar[2].node @@ -7470,7 +7491,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4774 + // line internal/php7/php7.y:4795 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7482,7 +7503,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4784 + // line internal/php7/php7.y:4805 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7505,7 +7526,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4805 + // line internal/php7/php7.y:4826 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7533,7 +7554,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4852 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7552,7 +7573,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4851 + // line internal/php7/php7.y:4872 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7570,7 +7591,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4867 + // line internal/php7/php7.y:4888 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7592,7 +7613,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4887 + // line internal/php7/php7.y:4908 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7604,7 +7625,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4897 + // line internal/php7/php7.y:4918 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7616,7 +7637,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4907 + // line internal/php7/php7.y:4928 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7638,7 +7659,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4927 + // line internal/php7/php7.y:4948 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7650,7 +7671,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4937 + // line internal/php7/php7.y:4958 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7662,13 +7683,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4971 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4954 + // line internal/php7/php7.y:4975 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7677,7 +7698,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4964 + // line internal/php7/php7.y:4985 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 062068b..4591ec7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -242,7 +242,7 @@ import ( %type static_var_list static_var class_statement trait_adaptation trait_precedence trait_alias %type absolute_trait_method_reference trait_method_reference property echo_expr %type new_expr anonymous_class class_name class_name_reference simple_variable -%type internal_functions_in_yacc +%type internal_functions_in_yacc non_empty_array_pair_list array_pair_list %type exit_expr scalar lexical_var function_call member_name property_name %type variable_class_name dereferencable_scalar constant dereferencable %type callable_expr callable_variable static_member new_variable @@ -276,8 +276,8 @@ import ( %type for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations %type case_list trait_adaptation_list -%type use_declarations lexical_var_list isset_variables non_empty_array_pair_list -%type array_pair_list top_statement_list +%type use_declarations lexical_var_list isset_variables +%type top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list %type method_modifiers variable_modifiers %type non_empty_member_modifiers class_modifiers @@ -1454,26 +1454,28 @@ foreach_variable: } | T_LIST '(' array_pair_list ')' { - $$ = &ast.ExprList{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.List, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) + $$ = &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } } | '[' array_pair_list ']' { - $$ = &ast.ExprShortList{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save commentsc - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) + $$ = &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Items: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $3, + } } ; @@ -2802,31 +2804,41 @@ new_expr: expr_without_variable: T_LIST '(' array_pair_list ')' '=' expr { - listNode := &ast.ExprList{ast.Node{}, $3} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} // save position - listNode.GetNode().Position = position.NewTokensPosition($1, $4) $$.GetNode().Position = position.NewTokenNodePosition($1, $6) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) } | '[' array_pair_list ']' '=' expr { - shortList := &ast.ExprShortList{ast.Node{}, $2} - $$ = &ast.ExprAssign{ast.Node{}, shortList, $5} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Items: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $3, + } + $$ = &ast.ExprAssign{ast.Node{}, listNode, $5} // save position - shortList.GetNode().Position = position.NewTokensPosition($1, $3) $$.GetNode().Position = position.NewTokenNodePosition($1, $5) // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(shortList, token.ArrayPairList, $3.SkippedTokens) yylex.(*Parser).setFreeFloating($$, token.Var, $4.SkippedTokens) } | variable '=' expr @@ -3890,26 +3902,28 @@ ctor_arguments: dereferencable_scalar: T_ARRAY '(' array_pair_list ')' { - $$ = &ast.ExprArray{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Array, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $4.SkippedTokens) + $$ = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ArrayTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } } | '[' array_pair_list ']' { - $$ = &ast.ExprShortArray{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.ArrayPairList, $3.SkippedTokens) + $$ = &ast.ExprArray{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Items: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $3, + } } | T_CONSTANT_ENCAPSED_STRING { @@ -4474,6 +4488,13 @@ property_name: array_pair_list: non_empty_array_pair_list { + pairList := $1.(*ast.ParserSeparatedList) + fistPair := pairList.Items[0].(*ast.ExprArrayItem) + + if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { + pairList.Items = nil + } + $$ = $1 } ; @@ -4481,7 +4502,7 @@ array_pair_list: possible_array_pair: /* empty */ { - $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} + $$ = &ast.ExprArrayItem{} } | array_pair { @@ -4492,21 +4513,15 @@ possible_array_pair: non_empty_array_pair_list: non_empty_array_pair_list ',' possible_array_pair { - if len($1) == 0 { - $1 = []ast.Vertex{&ast.ExprArrayItem{ast.Node{}, false, nil, nil}} - } + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | possible_array_pair { - if $1.(*ast.ExprArrayItem).Key == nil && $1.(*ast.ExprArrayItem).Val == nil { - $$ = []ast.Vertex{} - } else { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, } } ; @@ -4571,35 +4586,41 @@ array_pair: } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { - // TODO: Cannot use list() as standalone expression - listNode := &ast.ExprList{ast.Node{}, $5} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $6), + }, + ListTkn: $3, + OpenBracketTkn: $4, + Items: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $6, + } $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, listNode} // save position - listNode.GetNode().Position = position.NewTokensPosition($3, $6) $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) // save comments yylex.(*Parser).MoveFreeFloating($1, $$) yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $6.SkippedTokens) } | T_LIST '(' array_pair_list ')' { - // TODO: Cannot use list() as standalone expression - listNode := &ast.ExprList{ast.Node{}, $3} + listNode := &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + } $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} // save position - listNode.GetNode().Position = position.NewTokensPosition($1, $4) $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) } ; diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 7e02236..c0e84c2 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -113,8 +113,6 @@ type NodeVisitor interface { ExprRequire(n *ExprRequire) ExprRequireOnce(n *ExprRequireOnce) ExprShellExec(n *ExprShellExec) - ExprShortArray(n *ExprShortArray) - ExprShortList(n *ExprShortList) ExprStaticCall(n *ExprStaticCall) ExprStaticPropertyFetch(n *ExprStaticPropertyFetch) ExprTernary(n *ExprTernary) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index de467de..9322ae3 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -939,7 +939,11 @@ func (n *StmtWhile) Accept(v NodeVisitor) { // ExprArray node type ExprArray struct { Node - Items []Vertex + ArrayTkn *token.Token + OpenBracketTkn *token.Token + Items []Vertex + SeparatorTkns []*token.Token + CloseBracketTkn *token.Token } func (n *ExprArray) Accept(v NodeVisitor) { @@ -1166,7 +1170,11 @@ func (n *ExprIsset) Accept(v NodeVisitor) { // ExprList node type ExprList struct { Node - Items []Vertex + ListTkn *token.Token + OpenBracketTkn *token.Token + Items []Vertex + SeparatorTkns []*token.Token + CloseBracketTkn *token.Token } func (n *ExprList) Accept(v NodeVisitor) { @@ -1297,26 +1305,6 @@ func (n *ExprShellExec) Accept(v NodeVisitor) { v.ExprShellExec(n) } -// ExprShortArray node -type ExprShortArray struct { - Node - Items []Vertex -} - -func (n *ExprShortArray) Accept(v NodeVisitor) { - v.ExprShortArray(n) -} - -// ExprShortList node -type ExprShortList struct { - Node - Items []Vertex -} - -func (n *ExprShortList) Accept(v NodeVisitor) { - v.ExprShortList(n) -} - // ExprStaticCall node type ExprStaticCall struct { Node diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 8a6cdec..3da2562 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1543,34 +1543,6 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Parts", false) } - case *ast.ExprShortArray: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Items != nil { - t.visitor.Enter("Items", false) - for _, c := range nn.Items { - t.Traverse(c) - } - t.visitor.Leave("Items", false) - } - case *ast.ExprShortList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Items != nil { - t.visitor.Enter("Items", false) - for _, c := range nn.Items { - t.Traverse(c) - } - t.visitor.Leave("Items", false) - } case *ast.ExprStaticCall: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 6586d8c..45dc2c2 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -812,18 +812,6 @@ func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { v.printNode(n.GetNode()) } -func (v *Dump) ExprShortArray(n *ast.ExprShortArray) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprShortArray{\n") - v.printNode(n.GetNode()) -} - -func (v *Dump) ExprShortList(n *ast.ExprShortList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprShortList{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticCall{\n") diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index f5e1467..724f4a1 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -394,14 +394,6 @@ func (v *Null) ExprShellExec(_ *ast.ExprShellExec) { // do nothing } -func (v *Null) ExprShortArray(_ *ast.ExprShortArray) { - // do nothing -} - -func (v *Null) ExprShortList(_ *ast.ExprShortList) { - // do nothing -} - func (v *Null) ExprStaticCall(_ *ast.ExprStaticCall) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index fdd297f..4f51213 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -274,10 +274,6 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { p.printExprRequireOnce(n) case *ast.ExprShellExec: p.printExprShellExec(n) - case *ast.ExprShortArray: - p.printExprShortArray(n) - case *ast.ExprShortList: - p.printExprShortList(n) case *ast.ExprStaticCall: p.printExprStaticCall(n) case *ast.ExprStaticPropertyFetch: @@ -1240,22 +1236,6 @@ func (p *PrettyPrinter) printExprShellExec(n ast.Vertex) { io.WriteString(p.w, "`") } -func (p *PrettyPrinter) printExprShortArray(n ast.Vertex) { - nn := n.(*ast.ExprShortArray) - - io.WriteString(p.w, "[") - p.joinPrint(", ", nn.Items) - io.WriteString(p.w, "]") -} - -func (p *PrettyPrinter) printExprShortList(n ast.Vertex) { - nn := n.(*ast.ExprShortList) - - io.WriteString(p.w, "[") - p.joinPrint(", ", nn.Items) - io.WriteString(p.w, "]") -} - func (p *PrettyPrinter) printExprStaticCall(n ast.Vertex) { nn := n.(*ast.ExprStaticCall) diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index ea131e5..0080044 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -363,10 +363,6 @@ func (p *Printer) printNode(n ast.Vertex) { p.printExprRequireOnce(n) case *ast.ExprShellExec: p.printExprShellExec(n) - case *ast.ExprShortArray: - p.printExprShortArray(n) - case *ast.ExprShortList: - p.printExprShortList(n) case *ast.ExprStaticCall: p.printExprStaticCall(n) case *ast.ExprStaticPropertyFetch: @@ -1837,30 +1833,6 @@ func (p *Printer) printExprShellExec(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printExprShortArray(n ast.Vertex) { - nn := n.(*ast.ExprShortArray) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("[")) - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, token.ArrayPairList) - p.write([]byte("]")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprShortList(n ast.Vertex) { - nn := n.(*ast.ExprShortList) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("[")) - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, token.ArrayPairList) - p.write([]byte("]")) - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printExprStaticCall(n ast.Vertex) { nn := n.(*ast.ExprStaticCall) p.printFreeFloating(nn, token.Start) From 4b8d4317679420b45fefa677ab983ab09dce7e93 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 1 Dec 2020 00:42:45 +0200 Subject: [PATCH 082/140] [refactoring] update ast structure of "ArrayDimFetch" and "ArrayItem" nodes --- internal/php5/php5.go | 1198 ++++++++++++++++++------------------ internal/php5/php5.y | 604 +++++++++--------- internal/php7/php7.go | 1276 ++++++++++++++++++++------------------- internal/php7/php7.y | 288 ++++----- pkg/ast/node.go | 15 +- pkg/ast/visitor/dump.go | 5 - pkg/printer/printer.go | 2 +- 7 files changed, 1732 insertions(+), 1656 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 02fee28..15333e8 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6526 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -5297,63 +5297,67 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:3069 { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + Var: nil, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + yyVAL.list = append(yyDollar[1].list, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3081 + // line internal/php5/php5.y:3083 { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[2].node} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + Var: nil, + OpenBracketTkn: yyDollar[1].token, + Dim: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } + yyVAL.list = []ast.Vertex{fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[3].token.SkippedTokens) } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3096 + // line internal/php5/php5.y:3100 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3100 + // line internal/php5/php5.y:3104 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3108 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3111 + // line internal/php5/php5.y:3115 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3115 + // line internal/php5/php5.y:3119 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3122 + // line internal/php5/php5.y:3126 { if yyDollar[3].node != nil { @@ -5369,7 +5373,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3139 + // line internal/php5/php5.y:3143 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -5402,7 +5406,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3170 + // line internal/php5/php5.y:3174 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5415,7 +5419,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3181 + // line internal/php5/php5.y:3185 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5429,7 +5433,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3193 + // line internal/php5/php5.y:3197 { var _new *ast.ExprNew @@ -5456,7 +5460,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3218 + // line internal/php5/php5.y:3222 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5468,7 +5472,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3228 + // line internal/php5/php5.y:3232 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5480,7 +5484,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3242 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5493,7 +5497,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3249 + // line internal/php5/php5.y:3253 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5506,7 +5510,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3260 + // line internal/php5/php5.y:3264 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5519,7 +5523,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3271 + // line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5532,7 +5536,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3282 + // line internal/php5/php5.y:3286 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5545,7 +5549,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3293 + // line internal/php5/php5.y:3297 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5558,7 +5562,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3304 + // line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5571,7 +5575,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3315 + // line internal/php5/php5.y:3319 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5584,7 +5588,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3326 + // line internal/php5/php5.y:3330 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5597,7 +5601,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3337 + // line internal/php5/php5.y:3341 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5610,7 +5614,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3348 + // line internal/php5/php5.y:3352 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5623,7 +5627,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3359 + // line internal/php5/php5.y:3363 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5636,7 +5640,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3374 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5648,7 +5652,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3384 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5661,7 +5665,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3395 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5673,7 +5677,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3401 + // line internal/php5/php5.y:3405 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5686,7 +5690,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3412 + // line internal/php5/php5.y:3416 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5699,7 +5703,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3423 + // line internal/php5/php5.y:3427 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5712,7 +5716,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5725,7 +5729,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3445 + // line internal/php5/php5.y:3449 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5738,7 +5742,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3456 + // line internal/php5/php5.y:3460 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5751,7 +5755,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3467 + // line internal/php5/php5.y:3471 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5764,7 +5768,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3478 + // line internal/php5/php5.y:3482 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5777,7 +5781,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3489 + // line internal/php5/php5.y:3493 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5789,7 +5793,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3499 + // line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5802,7 +5806,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3510 + // line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5815,7 +5819,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3521 + // line internal/php5/php5.y:3525 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5828,7 +5832,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3532 + // line internal/php5/php5.y:3536 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5841,7 +5845,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3543 + // line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5854,7 +5858,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3554 + // line internal/php5/php5.y:3558 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5867,7 +5871,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3565 + // line internal/php5/php5.y:3569 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5880,7 +5884,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3576 + // line internal/php5/php5.y:3580 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5893,7 +5897,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3587 + // line internal/php5/php5.y:3591 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5905,7 +5909,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3597 + // line internal/php5/php5.y:3601 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5917,7 +5921,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3607 + // line internal/php5/php5.y:3611 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5929,7 +5933,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3617 + // line internal/php5/php5.y:3621 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5941,7 +5945,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3627 + // line internal/php5/php5.y:3631 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5954,7 +5958,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3638 + // line internal/php5/php5.y:3642 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5967,7 +5971,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3649 + // line internal/php5/php5.y:3653 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5980,7 +5984,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3660 + // line internal/php5/php5.y:3664 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5994,7 +5998,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3672 + // line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6007,7 +6011,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3683 + // line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6020,7 +6024,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3694 + // line internal/php5/php5.y:3698 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6033,7 +6037,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3705 + // line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6046,7 +6050,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3716 + // line internal/php5/php5.y:3720 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6059,19 +6063,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3731 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3731 + // line internal/php5/php5.y:3735 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3735 + // line internal/php5/php5.y:3739 { yyVAL.node = yyDollar[2].node @@ -6103,7 +6107,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3765 + // line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6117,7 +6121,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3777 + // line internal/php5/php5.y:3781 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6131,13 +6135,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3789 + // line internal/php5/php5.y:3793 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3793 + // line internal/php5/php5.y:3797 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6150,7 +6154,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3804 + // line internal/php5/php5.y:3808 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6163,7 +6167,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3815 + // line internal/php5/php5.y:3819 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6176,7 +6180,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3826 + // line internal/php5/php5.y:3830 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6189,7 +6193,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3837 + // line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6202,7 +6206,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3848 + // line internal/php5/php5.y:3852 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6215,7 +6219,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3859 + // line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6228,7 +6232,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3870 + // line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6248,7 +6252,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3888 + // line internal/php5/php5.y:3892 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6260,25 +6264,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3898 + // line internal/php5/php5.y:3902 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3902 + // line internal/php5/php5.y:3906 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3906 + // line internal/php5/php5.y:3910 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3910 + // line internal/php5/php5.y:3914 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6290,7 +6294,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3920 + // line internal/php5/php5.y:3924 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6302,7 +6306,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3930 + // line internal/php5/php5.y:3934 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6314,7 +6318,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3940 + // line internal/php5/php5.y:3944 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6333,7 +6337,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3957 + // line internal/php5/php5.y:3961 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6353,7 +6357,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3978 + // line internal/php5/php5.y:3982 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6365,7 +6369,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3988 + // line internal/php5/php5.y:3992 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6377,7 +6381,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3998 + // line internal/php5/php5.y:4002 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6390,7 +6394,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4009 + // line internal/php5/php5.y:4013 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6403,66 +6407,69 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4023 + // line internal/php5/php5.y:4027 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4034 + // line internal/php5/php5.y:4039 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4045 + // line internal/php5/php5.y:4051 { - str := &ast.ScalarString{ + yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - StringTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Var: &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, str, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(str, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4063 + // line internal/php5/php5.y:4069 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4077 + // line internal/php5/php5.y:4084 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6477,7 +6484,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4090 + // line internal/php5/php5.y:4097 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6491,19 +6498,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4105 + // line internal/php5/php5.y:4112 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4112 + // line internal/php5/php5.y:4119 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4116 + // line internal/php5/php5.y:4123 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6517,7 +6524,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4131 + // line internal/php5/php5.y:4138 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6538,7 +6545,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4150 + // line internal/php5/php5.y:4157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6562,7 +6569,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4172 + // line internal/php5/php5.y:4179 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6582,7 +6589,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4190 + // line internal/php5/php5.y:4197 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6605,7 +6612,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4214 + // line internal/php5/php5.y:4221 { name := &ast.NameName{ Node: ast.Node{ @@ -6620,7 +6627,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4227 + // line internal/php5/php5.y:4234 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6637,7 +6644,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4249 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6653,7 +6660,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4256 + // line internal/php5/php5.y:4263 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6666,7 +6673,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4267 + // line internal/php5/php5.y:4274 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6679,7 +6686,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6692,7 +6699,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4289 + // line internal/php5/php5.y:4296 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6705,7 +6712,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4300 + // line internal/php5/php5.y:4307 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6717,7 +6724,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4313 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6729,7 +6736,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4323 + // line internal/php5/php5.y:4330 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6740,7 +6747,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4332 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6753,7 +6760,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4343 + // line internal/php5/php5.y:4350 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6765,7 +6772,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4356 + // line internal/php5/php5.y:4363 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6776,7 +6783,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4365 + // line internal/php5/php5.y:4372 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6789,7 +6796,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4376 + // line internal/php5/php5.y:4383 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6801,19 +6808,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4396 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4393 + // line internal/php5/php5.y:4400 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4400 + // line internal/php5/php5.y:4407 { yyVAL.node = yyDollar[1].node @@ -6854,25 +6861,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4439 + // line internal/php5/php5.y:4446 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4447 + // line internal/php5/php5.y:4454 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4451 + // line internal/php5/php5.y:4458 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4459 + // line internal/php5/php5.y:4466 { yyVAL.list = yyDollar[2].list @@ -6881,13 +6888,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4469 + // line internal/php5/php5.y:4476 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4473 + // line internal/php5/php5.y:4480 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6903,19 +6910,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4487 + // line internal/php5/php5.y:4494 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4494 + // line internal/php5/php5.y:4501 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4505 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6929,25 +6936,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4510 + // line internal/php5/php5.y:4517 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4517 + // line internal/php5/php5.y:4524 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4528 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4528 + // line internal/php5/php5.y:4535 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6959,7 +6966,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4538 + // line internal/php5/php5.y:4545 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6971,7 +6978,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4548 + // line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6983,7 +6990,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4558 + // line internal/php5/php5.y:4565 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6995,7 +7002,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4568 + // line internal/php5/php5.y:4575 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7007,7 +7014,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4578 + // line internal/php5/php5.y:4585 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7019,7 +7026,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4588 + // line internal/php5/php5.y:4595 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7031,7 +7038,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4598 + // line internal/php5/php5.y:4605 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7043,7 +7050,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4608 + // line internal/php5/php5.y:4615 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7055,7 +7062,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4618 + // line internal/php5/php5.y:4625 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7067,7 +7074,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4628 + // line internal/php5/php5.y:4635 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7088,7 +7095,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4647 + // line internal/php5/php5.y:4654 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7100,7 +7107,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4660 + // line internal/php5/php5.y:4667 { target := &ast.Identifier{ Node: ast.Node{ @@ -7120,25 +7127,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4681 + // line internal/php5/php5.y:4688 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4688 + // line internal/php5/php5.y:4695 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4692 + // line internal/php5/php5.y:4699 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4696 + // line internal/php5/php5.y:4703 { name := &ast.NameName{ Node: ast.Node{ @@ -7153,7 +7160,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4709 + // line internal/php5/php5.y:4716 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7170,7 +7177,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4731 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7186,7 +7193,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4738 + // line internal/php5/php5.y:4745 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7201,7 +7208,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4751 + // line internal/php5/php5.y:4758 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7215,13 +7222,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4763 + // line internal/php5/php5.y:4770 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4767 + // line internal/php5/php5.y:4774 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7233,26 +7240,27 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4777 + // line internal/php5/php5.y:4784 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4784 + // line internal/php5/php5.y:4791 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4795 + // line internal/php5/php5.y:4803 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7265,7 +7273,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4806 + // line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7278,7 +7286,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4817 + // line internal/php5/php5.y:4825 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7291,7 +7299,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4828 + // line internal/php5/php5.y:4836 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7304,7 +7312,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4839 + // line internal/php5/php5.y:4847 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7317,7 +7325,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4850 + // line internal/php5/php5.y:4858 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7330,7 +7338,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4861 + // line internal/php5/php5.y:4869 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -7342,7 +7350,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4871 + // line internal/php5/php5.y:4879 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -7354,7 +7362,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4881 + // line internal/php5/php5.y:4889 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7367,7 +7375,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4892 + // line internal/php5/php5.y:4900 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7380,7 +7388,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4903 + // line internal/php5/php5.y:4911 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7393,7 +7401,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4914 + // line internal/php5/php5.y:4922 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7406,7 +7414,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4925 + // line internal/php5/php5.y:4933 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7419,7 +7427,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4944 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7432,7 +7440,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4955 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7445,7 +7453,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4958 + // line internal/php5/php5.y:4966 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7458,7 +7466,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4969 + // line internal/php5/php5.y:4977 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7471,7 +7479,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4980 + // line internal/php5/php5.y:4988 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7484,7 +7492,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4991 + // line internal/php5/php5.y:4999 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7497,7 +7505,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5002 + // line internal/php5/php5.y:5010 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7510,7 +7518,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5013 + // line internal/php5/php5.y:5021 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7523,7 +7531,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5024 + // line internal/php5/php5.y:5032 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7536,7 +7544,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5035 + // line internal/php5/php5.y:5043 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7550,7 +7558,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5047 + // line internal/php5/php5.y:5055 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7563,7 +7571,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5058 + // line internal/php5/php5.y:5066 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7576,7 +7584,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5069 + // line internal/php5/php5.y:5077 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7589,7 +7597,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5088 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7602,7 +7610,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5091 + // line internal/php5/php5.y:5099 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7616,7 +7624,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5103 + // line internal/php5/php5.y:5111 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7630,7 +7638,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5115 + // line internal/php5/php5.y:5123 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7642,7 +7650,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5125 + // line internal/php5/php5.y:5133 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7654,7 +7662,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5135 + // line internal/php5/php5.y:5143 { yyVAL.node = yyDollar[2].node @@ -7664,13 +7672,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5146 + // line internal/php5/php5.y:5154 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5150 + // line internal/php5/php5.y:5158 { name := &ast.NameName{ Node: ast.Node{ @@ -7685,7 +7693,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5163 + // line internal/php5/php5.y:5171 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7702,7 +7710,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5178 + // line internal/php5/php5.y:5186 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7718,7 +7726,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5195 + // line internal/php5/php5.y:5203 { name := &ast.Identifier{ Node: ast.Node{ @@ -7737,25 +7745,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5212 + // line internal/php5/php5.y:5220 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5216 + // line internal/php5/php5.y:5224 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5220 + // line internal/php5/php5.y:5228 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5224 + // line internal/php5/php5.y:5232 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7768,7 +7776,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5235 + // line internal/php5/php5.y:5243 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7781,7 +7789,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5246 + // line internal/php5/php5.y:5254 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7793,13 +7801,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5259 + // line internal/php5/php5.y:5267 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5263 + // line internal/php5/php5.y:5271 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7810,99 +7818,97 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5283 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5279 + // line internal/php5/php5.y:5287 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5286 + // line internal/php5/php5.y:5294 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), + }, + Key: yyDollar[3].node, + DoubleArrowTkn: yyDollar[4].token, + Val: yyDollar[5].node, + } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5310 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[3].node), + }, + Val: yyDollar[3].node, + } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node - - // save position - arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5317 + // line internal/php5/php5.y:5324 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} - yyVAL.node = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Key: yyDollar[1].node, + DoubleArrowTkn: yyDollar[2].token, + Val: yyDollar[3].node, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.SkippedTokens) } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5332 + // line internal/php5/php5.y:5339 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} - yyVAL.node = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Val: yyDollar[1].node, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5349 + // line internal/php5/php5.y:5355 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5353 + // line internal/php5/php5.y:5359 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5360 + // line internal/php5/php5.y:5366 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7919,7 +7925,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5375 + // line internal/php5/php5.y:5381 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7936,25 +7942,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5394 + // line internal/php5/php5.y:5400 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5408 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5415 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5416 + // line internal/php5/php5.y:5422 { yyVAL.node = yyDollar[1].node @@ -8012,25 +8018,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5478 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5479 + // line internal/php5/php5.y:5485 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5483 + // line internal/php5/php5.y:5489 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5491 + // line internal/php5/php5.y:5497 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8044,35 +8050,39 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5512 { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + Var: nil, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + yyVAL.list = append(yyDollar[1].list, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5518 + // line internal/php5/php5.y:5526 { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + Var: nil, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + yyVAL.list = []ast.Vertex{yyDollar[1].node, fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5533 + // line internal/php5/php5.y:5543 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8081,31 +8091,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5543 + // line internal/php5/php5.y:5553 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5547 + // line internal/php5/php5.y:5557 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5551 + // line internal/php5/php5.y:5561 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5558 + // line internal/php5/php5.y:5568 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5572 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8117,7 +8127,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5575 + // line internal/php5/php5.y:5585 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8130,7 +8140,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5586 + // line internal/php5/php5.y:5596 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8143,63 +8153,65 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5600 + // line internal/php5/php5.y:5610 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5617 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5618 + // line internal/php5/php5.y:5629 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5632 + // line internal/php5/php5.y:5644 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5636 + // line internal/php5/php5.y:5648 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5640 + // line internal/php5/php5.y:5652 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5648 + // line internal/php5/php5.y:5660 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5652 + // line internal/php5/php5.y:5664 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8211,45 +8223,47 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5662 + // line internal/php5/php5.y:5674 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5669 + // line internal/php5/php5.y:5681 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5680 + // line internal/php5/php5.y:5693 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5691 + // line internal/php5/php5.y:5705 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5699 + // line internal/php5/php5.y:5713 { name := &ast.Identifier{ Node: ast.Node{ @@ -8268,7 +8282,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5716 + // line internal/php5/php5.y:5730 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8282,25 +8296,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5731 + // line internal/php5/php5.y:5745 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5735 + // line internal/php5/php5.y:5749 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5743 + // line internal/php5/php5.y:5757 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5747 + // line internal/php5/php5.y:5761 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8310,35 +8324,39 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5758 + // line internal/php5/php5.y:5772 { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + Var: nil, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + yyVAL.list = append(yyDollar[1].list, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5770 + // line internal/php5/php5.y:5786 { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, yyDollar[3].node} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + Var: nil, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + yyVAL.list = append(yyDollar[1].list, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, yyDollar[4].token.SkippedTokens) } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5782 + // line internal/php5/php5.y:5800 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8348,7 +8366,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5793 + // line internal/php5/php5.y:5811 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8360,7 +8378,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5803 + // line internal/php5/php5.y:5821 { yyVAL.node = yyDollar[2].node @@ -8373,7 +8391,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5817 + // line internal/php5/php5.y:5835 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8386,7 +8404,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5828 + // line internal/php5/php5.y:5846 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8403,7 +8421,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5846 + // line internal/php5/php5.y:5864 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8412,7 +8430,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5853 + // line internal/php5/php5.y:5871 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8420,19 +8438,18 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5863 + // line internal/php5/php5.y:5881 { - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Val: yyDollar[1].node, + } } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5873 + // line internal/php5/php5.y:5890 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8441,42 +8458,37 @@ yydefault: pairList.Items = nil } - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - ListTkn: yyDollar[1].token, - OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[4].token, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + }, } - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} - - // save position - listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewNodePosition(listNode) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5903 + // line internal/php5/php5.y:5915 { - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} + yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5911 + // line internal/php5/php5.y:5923 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5915 + // line internal/php5/php5.y:5927 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8487,159 +8499,165 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5927 + // line internal/php5/php5.y:5939 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, yyDollar[5].node} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), + }, + Key: yyDollar[3].node, + DoubleArrowTkn: yyDollar[4].token, + Val: yyDollar[5].node, + } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5943 + // line internal/php5/php5.y:5955 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[3].node} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[3].node), + }, + Val: yyDollar[3].node, + } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node - - // save position - arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5958 + // line internal/php5/php5.y:5969 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} - yyVAL.node = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Key: yyDollar[1].node, + DoubleArrowTkn: yyDollar[2].token, + Val: yyDollar[3].node, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.SkippedTokens) } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5973 + // line internal/php5/php5.y:5984 { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} - yyVAL.node = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Val: yyDollar[1].node, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5987 + // line internal/php5/php5.y:5997 { - reference := &ast.ExprReference{ast.Node{}, yyDollar[6].node} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[3].node, reference} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), + }, + Key: yyDollar[3].node, + DoubleArrowTkn: yyDollar[4].token, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node), + }, + Var: yyDollar[6].node, + }, + } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node - - // save position - reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node) - arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[3].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[5].token.SkippedTokens) } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6006 + // line internal/php5/php5.y:6018 { - reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + }, + Var: yyDollar[4].node, + }, + } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node - - // save position - reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) - arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[3].token.SkippedTokens) } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6023 + // line internal/php5/php5.y:6037 { - reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} - yyVAL.node = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Key: yyDollar[1].node, + DoubleArrowTkn: yyDollar[2].token, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + }, + Var: yyDollar[4].node, + }, + }, + }, } - - // save position - reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) - arrayItem.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.SkippedTokens) } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6041 + // line internal/php5/php5.y:6057 { - reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - yyVAL.node = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + Var: yyDollar[2].node, + }, + }, + }, } - - // save position - reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - arrayItem.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, yyDollar[1].token.SkippedTokens) } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6060 + // line internal/php5/php5.y:6078 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6064 + // line internal/php5/php5.y:6082 { yyVAL.list = append( yyDollar[1].list, @@ -8654,13 +8672,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6077 + // line internal/php5/php5.y:6095 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6081 + // line internal/php5/php5.y:6099 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8675,7 +8693,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6097 + // line internal/php5/php5.y:6115 { name := &ast.Identifier{ Node: ast.Node{ @@ -8694,29 +8712,32 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6114 + // line internal/php5/php5.y:6132 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6134 + // line internal/php5/php5.y:6155 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8744,7 +8765,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6160 + // line internal/php5/php5.y:6181 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8759,7 +8780,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6173 + // line internal/php5/php5.y:6194 { name := &ast.Identifier{ Node: ast.Node{ @@ -8781,31 +8802,34 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6193 + // line internal/php5/php5.y:6214 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, + OpenCurlyBracketTkn: yyDollar[1].token, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + }, + OpenBracketTkn: yyDollar[3].token, + Dim: yyDollar[4].node, + CloseBracketTkn: yyDollar[5].token, + CloseCurlyBracketTkn: yyDollar[6].token, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) - - // save comments - yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.SkippedTokens) } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6215 + // line internal/php5/php5.y:6239 { yyVAL.node = yyDollar[2].node @@ -8815,7 +8839,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6226 + // line internal/php5/php5.y:6250 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8827,7 +8851,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6236 + // line internal/php5/php5.y:6260 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8856,7 +8880,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6263 + // line internal/php5/php5.y:6287 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8875,7 +8899,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6283 + // line internal/php5/php5.y:6307 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8889,7 +8913,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6295 + // line internal/php5/php5.y:6319 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8911,7 +8935,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6315 + // line internal/php5/php5.y:6339 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8933,7 +8957,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6335 + // line internal/php5/php5.y:6359 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8945,7 +8969,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6345 + // line internal/php5/php5.y:6369 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8957,7 +8981,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6355 + // line internal/php5/php5.y:6379 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8979,7 +9003,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6375 + // line internal/php5/php5.y:6399 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -8991,7 +9015,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6385 + // line internal/php5/php5.y:6409 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9003,13 +9027,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6398 + // line internal/php5/php5.y:6422 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6402 + // line internal/php5/php5.y:6426 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9018,19 +9042,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6412 + // line internal/php5/php5.y:6436 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6416 + // line internal/php5/php5.y:6440 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6423 + // line internal/php5/php5.y:6447 { target := &ast.Identifier{ Node: ast.Node{ @@ -9050,7 +9074,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6441 + // line internal/php5/php5.y:6465 { target := &ast.Identifier{ Node: ast.Node{ @@ -9070,7 +9094,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6462 + // line internal/php5/php5.y:6486 { target := &ast.Identifier{ Node: ast.Node{ @@ -9090,7 +9114,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6483 + // line internal/php5/php5.y:6507 { target := &ast.Identifier{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 5a00d67..6989c2c 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3067,27 +3067,31 @@ chaining_method_or_property: chaining_dereference: chaining_dereference '[' dim_offset ']' { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + Var: nil, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } + $$ = append($1, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition($3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | '[' dim_offset ']' { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $2} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + Var: nil, + OpenBracketTkn: $1, + Dim: $2, + CloseBracketTkn: $3, + } + $$ = []ast.Vertex{fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition($2) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $3.SkippedTokens) } ; @@ -4021,54 +4025,57 @@ yield_expr: combined_scalar_offset: combined_scalar '[' dim_offset ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | combined_scalar_offset '[' dim_offset ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { - str := &ast.ScalarString{ + $$ = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokensPosition($1, $4), }, - StringTkn: $1, - Value: $1.Value, + Var: &ast.ScalarString{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, + }, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, } - $$ = &ast.ExprArrayDimFetch{ast.Node{}, str, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition(str, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | general_constant '[' dim_offset ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } ; @@ -4782,14 +4789,15 @@ static_scalar_value: static_operation: static_scalar_value '[' static_scalar_value ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | static_scalar_value '+' static_scalar_value { @@ -5284,63 +5292,61 @@ possible_comma: non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, $5} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($3, $5), + }, + Key: $3, + DoubleArrowTkn: $4, + Val: $5, + } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) $$ = $1 - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) - - // save comments - yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) } | non_empty_static_array_pair_list ',' static_scalar_value { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $3} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition($3), + }, + Val: $3, + } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) $$ = $1 - - // save position - arrayItem.GetNode().Position = position.NewNodePosition($3) - - // save comments - yylex.(*Parser).MoveFreeFloating($3, arrayItem) } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, $3} - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Key: $1, + DoubleArrowTkn: $2, + Val: $3, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.SkippedTokens) } | static_scalar_value { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $1} - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Val: $1, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, arrayItem) } ; @@ -5504,27 +5510,31 @@ variable_property: array_method_dereference: array_method_dereference '[' dim_offset ']' { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + Var: nil, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } + $$ = append($1, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition($3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | method '[' dim_offset ']' { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + Var: nil, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } + $$ = []ast.Vertex{$1, fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition($3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } ; @@ -5605,25 +5615,27 @@ variable_class_name: array_function_dereference: array_function_dereference '[' dim_offset ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | function_call '[' dim_offset ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } ; @@ -5667,25 +5679,27 @@ base_variable: reference_variable: reference_variable '[' dim_offset ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | reference_variable '{' expr '}' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | compound_variable { @@ -5756,27 +5770,31 @@ object_property: object_dim_list: object_dim_list '[' dim_offset ']' { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + Var: nil, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } + $$ = append($1, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition($3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | object_dim_list '{' expr '}' { - fetch := &ast.ExprArrayDimFetch{ast.Node{}, nil, $3} + fetch := &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + Var: nil, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } + $$ = append($1, fetch) - - // save position - fetch.GetNode().Position = position.NewNodePosition($3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(fetch, token.Expr, $4.SkippedTokens) } | variable_name { @@ -5861,13 +5879,12 @@ assignment_list: assignment_list_element: variable { - $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Val: $1, + } } | T_LIST '(' assignment_list ')' { @@ -5878,30 +5895,25 @@ assignment_list_element: pairList.Items = nil } - listNode := &ast.ExprList{ + $$ = &ast.ExprArrayItem{ Node: ast.Node{ Position: position.NewTokensPosition($1, $4), }, - ListTkn: $1, - OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $4, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + }, } - $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} - - // save position - listNode.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewNodePosition(listNode) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) } | /* empty */ { - $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, nil} + $$ = &ast.ExprArrayItem{} } ; @@ -5925,133 +5937,139 @@ array_pair_list: non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, $5} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($3, $5), + }, + Key: $3, + DoubleArrowTkn: $4, + Val: $5, + } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) $$ = $1 - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition($3, $5) - - // save comments - yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) } | non_empty_array_pair_list ',' expr { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $3} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition($3), + }, + Val: $3, + } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) $$ = $1 - - // save position - arrayItem.GetNode().Position = position.NewNodePosition($3) - - // save comments - yylex.(*Parser).MoveFreeFloating($3, arrayItem) } | expr T_DOUBLE_ARROW expr { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, $3} - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Key: $1, + DoubleArrowTkn: $2, + Val: $3, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.SkippedTokens) } | expr { - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, $1} - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Val: $1, + }, + }, } - - // save position - arrayItem.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, arrayItem) } | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { - reference := &ast.ExprReference{ast.Node{}, $6} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $3, reference} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($3, $6), + }, + Key: $3, + DoubleArrowTkn: $4, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($5, $6), + }, + Var: $6, + }, + } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) $$ = $1 - - // save position - reference.GetNode().Position = position.NewTokenNodePosition($5, $6) - arrayItem.GetNode().Position = position.NewNodesPosition($3, $6) - - // save comments - yylex.(*Parser).MoveFreeFloating($3, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $5.SkippedTokens) } | non_empty_array_pair_list ',' '&' w_variable { - reference := &ast.ExprReference{ast.Node{}, $4} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} + arrayItem := &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $4), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $4), + }, + Var: $4, + }, + } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) $$ = $1 - - // save position - reference.GetNode().Position = position.NewTokenNodePosition($3, $4) - arrayItem.GetNode().Position = position.NewTokenNodePosition($3, $4) - - // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $3.SkippedTokens) } | expr T_DOUBLE_ARROW '&' w_variable { - reference := &ast.ExprReference{ast.Node{}, $4} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, $1, reference} - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Key: $1, + DoubleArrowTkn: $2, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $4), + }, + Var: $4, + }, + }, + }, } - - // save position - reference.GetNode().Position = position.NewTokenNodePosition($3, $4) - arrayItem.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, arrayItem) - yylex.(*Parser).setFreeFloating(arrayItem, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.SkippedTokens) } | '&' w_variable { - reference := &ast.ExprReference{ast.Node{}, $2} - arrayItem := &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{arrayItem}, + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + Var: $2, + }, + }, + }, } - - // save position - reference.GetNode().Position = position.NewTokenNodePosition($1, $2) - arrayItem.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating(arrayItem, token.Start, $1.SkippedTokens) } ; @@ -6112,23 +6130,26 @@ encaps_var: } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := &ast.Identifier{ + $$ = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokensPosition($1, $4), }, - IdentifierTkn: $1, - Value: $1.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { @@ -6191,25 +6212,28 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { - identifier := &ast.Identifier{ + $$ = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $6), }, - IdentifierTkn: $2, - Value: $2.Value, + OpenCurlyBracketTkn: $1, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + }, + OpenBracketTkn: $3, + Dim: $4, + CloseBracketTkn: $5, + CloseCurlyBracketTkn: $6, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} - - // save position - variable.GetNode().Position = position.NewTokenPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $6) - - // save comments - yylex.(*Parser).setToken(variable, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.SkippedTokens) } | T_CURLY_OPEN variable '}' { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index ba1e751..a4b4d5d 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4992 +// line internal/php7/php7.y:5006 // line yacctab:1 var yyExca = [...]int{ @@ -2111,7 +2111,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:291 +// line internal/php7/php7.y:291 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2122,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:325 +// line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:332 +// line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:343 +// line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:350 +// line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:362 +// line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:376 +// line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:385 +// line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:396 +// line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:409 +// line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:414 +// line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:418 +// line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:422 +// line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:426 +// line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:430 +// line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:434 +// line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:446 +// line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:462 +// line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:480 +// line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:492 +// line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:502 +// line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:513 +// line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:524 +// line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:536 +// line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:551 +// line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:561 +// line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:574 +// line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:596 +// line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:620 +// line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:640 +// line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:664 +// line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:668 +// line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:675 +// line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:681 +// line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:688 +// line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:694 +// line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:701 +// line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:707 +// line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:714 +// line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:718 +// line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:729 +// line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:743 +// line internal/php7/php7.y:743 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:783 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:790 +// line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:799 +// line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:810 +// line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:817 +// line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:822 +// line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:826 +// line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:830 +// line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:834 +// line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:838 +// line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:842 +// line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:856 +// line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:867 +// line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:871 +// line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:875 +// line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:885 +// line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:900 +// line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:914 +// line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:924 +// line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:935 +// line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:946 +// line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:957 +// line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:965 +// line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:973 +// line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:981 +// line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3327,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:991 +// line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3339,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1001 +// line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3352,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1012 +// line internal/php7/php7.y:1012 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3366,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1024 +// line internal/php7/php7.y:1024 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3382,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1038 +// line internal/php7/php7.y:1038 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3395,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1049 +// line internal/php7/php7.y:1049 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3406,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1058 +// line internal/php7/php7.y:1058 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3425,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1075 +// line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3438,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1086 +// line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1103 +// line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3475,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1121 +// line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1125 +// line internal/php7/php7.y:1125 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3512,7 +3512,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1156 +// line internal/php7/php7.y:1156 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3520,7 +3520,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1162 +// line internal/php7/php7.y:1162 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3529,13 +3529,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1172 +// line internal/php7/php7.y:1172 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1176 +// line internal/php7/php7.y:1176 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3549,7 +3549,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1191 +// line internal/php7/php7.y:1191 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3557,7 +3557,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1197 +// line internal/php7/php7.y:1197 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3566,13 +3566,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1207 +// line internal/php7/php7.y:1207 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1214 +// line internal/php7/php7.y:1214 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3599,31 +3599,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1242 +// line internal/php7/php7.y:1242 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1246 +// line internal/php7/php7.y:1246 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1253 +// line internal/php7/php7.y:1253 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1257 +// line internal/php7/php7.y:1257 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1264 +// line internal/php7/php7.y:1264 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3647,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1286 +// line internal/php7/php7.y:1286 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3670,19 +3670,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1310 +// line internal/php7/php7.y:1310 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1314 +// line internal/php7/php7.y:1314 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1321 +// line internal/php7/php7.y:1321 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3694,7 +3694,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1331 +// line internal/php7/php7.y:1331 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3706,7 +3706,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1344 +// line internal/php7/php7.y:1344 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3727,7 +3727,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1366 +// line internal/php7/php7.y:1366 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3749,13 +3749,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1389 +// line internal/php7/php7.y:1389 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1393 +// line internal/php7/php7.y:1393 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3767,13 +3767,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1406 +// line internal/php7/php7.y:1406 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1410 +// line internal/php7/php7.y:1410 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3786,13 +3786,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1424 +// line internal/php7/php7.y:1424 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1428 +// line internal/php7/php7.y:1428 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3805,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1442 +// line internal/php7/php7.y:1442 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1446 +// line internal/php7/php7.y:1446 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1456 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3838,7 +3838,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1469 +// line internal/php7/php7.y:1469 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3852,7 +3852,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1484 +// line internal/php7/php7.y:1484 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3863,7 +3863,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1493 +// line internal/php7/php7.y:1493 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3883,7 +3883,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1514 +// line internal/php7/php7.y:1514 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3894,7 +3894,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1523 +// line internal/php7/php7.y:1523 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3914,7 +3914,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1544 +// line internal/php7/php7.y:1544 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3925,7 +3925,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1553 +// line internal/php7/php7.y:1553 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3945,7 +3945,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1574 +// line internal/php7/php7.y:1574 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3958,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1585 +// line internal/php7/php7.y:1585 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3972,7 +3972,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1597 +// line internal/php7/php7.y:1597 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3987,7 +3987,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1610 +// line internal/php7/php7.y:1610 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4003,13 +4003,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1627 +// line internal/php7/php7.y:1627 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1631 +// line internal/php7/php7.y:1631 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4023,7 +4023,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1643 +// line internal/php7/php7.y:1643 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4036,19 +4036,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1657 +// line internal/php7/php7.y:1657 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1661 +// line internal/php7/php7.y:1661 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1668 +// line internal/php7/php7.y:1668 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4059,7 +4059,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1677 +// line internal/php7/php7.y:1677 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4079,7 +4079,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1698 +// line internal/php7/php7.y:1698 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4094,7 +4094,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1711 +// line internal/php7/php7.y:1711 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4113,13 +4113,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1731 +// line internal/php7/php7.y:1731 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1735 +// line internal/php7/php7.y:1735 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4135,7 +4135,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1752 +// line internal/php7/php7.y:1752 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4157,7 +4157,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1772 +// line internal/php7/php7.y:1772 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4181,7 +4181,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1797 +// line internal/php7/php7.y:1797 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4191,7 +4191,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1805 +// line internal/php7/php7.y:1805 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4215,25 +4215,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1830 +// line internal/php7/php7.y:1830 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1834 +// line internal/php7/php7.y:1834 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1841 +// line internal/php7/php7.y:1841 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1845 +// line internal/php7/php7.y:1845 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4242,7 +4242,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1855 +// line internal/php7/php7.y:1855 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4296,7 +4296,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1907 +// line internal/php7/php7.y:1907 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4353,25 +4353,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1965 +// line internal/php7/php7.y:1965 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1969 +// line internal/php7/php7.y:1969 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1976 +// line internal/php7/php7.y:1976 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1980 +// line internal/php7/php7.y:1980 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4383,7 +4383,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1993 +// line internal/php7/php7.y:1993 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4395,7 +4395,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2003 +// line internal/php7/php7.y:2003 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4407,19 +4407,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2013 +// line internal/php7/php7.y:2013 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2020 +// line internal/php7/php7.y:2020 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2024 +// line internal/php7/php7.y:2024 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4428,7 +4428,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2034 +// line internal/php7/php7.y:2034 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4440,7 +4440,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2044 +// line internal/php7/php7.y:2044 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4452,7 +4452,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2057 +// line internal/php7/php7.y:2057 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4460,7 +4460,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2063 +// line internal/php7/php7.y:2063 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4469,7 +4469,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2073 +// line internal/php7/php7.y:2073 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4480,7 +4480,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2082 +// line internal/php7/php7.y:2082 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4492,7 +4492,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2095 +// line internal/php7/php7.y:2095 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4501,7 +4501,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2102 +// line internal/php7/php7.y:2102 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4509,13 +4509,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2111 +// line internal/php7/php7.y:2111 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2118 +// line internal/php7/php7.y:2118 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4524,7 +4524,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2125 +// line internal/php7/php7.y:2125 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4532,7 +4532,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2134 +// line internal/php7/php7.y:2134 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4558,7 +4558,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2158 +// line internal/php7/php7.y:2158 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4585,19 +4585,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2186 +// line internal/php7/php7.y:2186 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2190 +// line internal/php7/php7.y:2190 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2197 +// line internal/php7/php7.y:2197 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4612,7 +4612,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2210 +// line internal/php7/php7.y:2210 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4626,7 +4626,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2222 +// line internal/php7/php7.y:2222 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4640,7 +4640,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2234 +// line internal/php7/php7.y:2234 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4671,7 +4671,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2266 +// line internal/php7/php7.y:2266 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4679,7 +4679,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2272 +// line internal/php7/php7.y:2272 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4688,7 +4688,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2282 +// line internal/php7/php7.y:2282 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4699,7 +4699,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2291 +// line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4711,7 +4711,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2301 +// line internal/php7/php7.y:2301 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4724,19 +4724,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2315 +// line internal/php7/php7.y:2315 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2319 +// line internal/php7/php7.y:2319 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2326 +// line internal/php7/php7.y:2326 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4746,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2334 +// line internal/php7/php7.y:2334 { yyVAL.node = yyDollar[1].node @@ -4756,7 +4756,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2345 +// line internal/php7/php7.y:2345 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4770,7 +4770,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2360 +// line internal/php7/php7.y:2360 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4789,7 +4789,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2377 +// line internal/php7/php7.y:2377 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4808,7 +4808,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2394 +// line internal/php7/php7.y:2394 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4828,7 +4828,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2412 +// line internal/php7/php7.y:2412 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4841,7 +4841,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2426 +// line internal/php7/php7.y:2426 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4858,13 +4858,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2441 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2448 +// line internal/php7/php7.y:2448 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4883,7 +4883,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2468 +// line internal/php7/php7.y:2468 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4894,7 +4894,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2477 +// line internal/php7/php7.y:2477 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4907,13 +4907,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2491 +// line internal/php7/php7.y:2491 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2495 +// line internal/php7/php7.y:2495 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4927,31 +4927,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2510 +// line internal/php7/php7.y:2510 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2514 +// line internal/php7/php7.y:2514 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2521 +// line internal/php7/php7.y:2521 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2525 +// line internal/php7/php7.y:2525 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2532 +// line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4963,7 +4963,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2542 +// line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4975,7 +4975,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2552 +// line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4987,7 +4987,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2562 +// line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4999,7 +4999,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2572 +// line internal/php7/php7.y:2572 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5011,7 +5011,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2582 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5023,7 +5023,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2595 +// line internal/php7/php7.y:2595 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5032,7 +5032,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2602 +// line internal/php7/php7.y:2602 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5040,7 +5040,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2611 +// line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5063,7 +5063,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2632 +// line internal/php7/php7.y:2632 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5087,7 +5087,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2657 +// line internal/php7/php7.y:2657 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5095,13 +5095,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2663 +// line internal/php7/php7.y:2663 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2670 +// line internal/php7/php7.y:2670 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5122,7 +5122,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2692 +// line internal/php7/php7.y:2692 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5143,7 +5143,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2714 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5152,7 +5152,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2721 +// line internal/php7/php7.y:2721 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5160,25 +5160,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2730 +// line internal/php7/php7.y:2730 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2737 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2741 +// line internal/php7/php7.y:2741 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2748 +// line internal/php7/php7.y:2748 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5187,13 +5187,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2755 +// line internal/php7/php7.y:2755 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2762 +// line internal/php7/php7.y:2762 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5210,7 +5210,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2780 +// line internal/php7/php7.y:2780 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5225,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2793 +// line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5237,7 +5237,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2806 +// line internal/php7/php7.y:2806 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5259,7 +5259,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2826 +// line internal/php7/php7.y:2826 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5280,7 +5280,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2845 +// line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5293,7 +5293,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2856 +// line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5307,7 +5307,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2868 +// line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} @@ -5319,7 +5319,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2878 +// line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5332,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2889 +// line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5345,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2900 +// line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5358,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2911 +// line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5371,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5384,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5397,7 +5397,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2944 +// line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5410,7 +5410,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2955 +// line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5423,7 +5423,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2966 +// line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5436,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2977 +// line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5449,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2988 +// line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5462,7 +5462,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2999 +// line internal/php7/php7.y:2999 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5475,7 +5475,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3010 +// line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5488,7 +5488,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3021 +// line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5501,7 +5501,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3032 +// line internal/php7/php7.y:3032 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5513,7 +5513,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3042 +// line internal/php7/php7.y:3042 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5526,7 +5526,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3053 +// line internal/php7/php7.y:3053 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5538,7 +5538,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3063 +// line internal/php7/php7.y:3063 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5551,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3074 +// line internal/php7/php7.y:3074 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5564,7 +5564,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3085 +// line internal/php7/php7.y:3085 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5577,7 +5577,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3096 +// line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5590,7 +5590,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3107 +// line internal/php7/php7.y:3107 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5603,7 +5603,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3118 +// line internal/php7/php7.y:3118 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5616,7 +5616,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3129 +// line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5629,7 +5629,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3140 +// line internal/php7/php7.y:3140 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5642,7 +5642,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3151 +// line internal/php7/php7.y:3151 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5654,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3161 +// line internal/php7/php7.y:3161 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5667,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3172 +// line internal/php7/php7.y:3172 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5680,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3183 +// line internal/php7/php7.y:3183 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5693,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3194 +// line internal/php7/php7.y:3194 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5706,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3205 +// line internal/php7/php7.y:3205 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5719,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3216 +// line internal/php7/php7.y:3216 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5732,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3227 +// line internal/php7/php7.y:3227 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5745,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3238 +// line internal/php7/php7.y:3238 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5758,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3249 +// line internal/php7/php7.y:3249 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5770,7 +5770,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3259 +// line internal/php7/php7.y:3259 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5782,7 +5782,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3269 { yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} @@ -5794,7 +5794,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3279 +// line internal/php7/php7.y:3279 { yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} @@ -5806,7 +5806,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3289 +// line internal/php7/php7.y:3289 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5819,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3300 +// line internal/php7/php7.y:3300 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5832,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3311 +// line internal/php7/php7.y:3311 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5845,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3322 +// line internal/php7/php7.y:3322 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5859,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3334 +// line internal/php7/php7.y:3334 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5872,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3345 +// line internal/php7/php7.y:3345 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5885,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3356 +// line internal/php7/php7.y:3356 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5898,7 +5898,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3367 +// line internal/php7/php7.y:3367 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5911,7 +5911,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3378 +// line internal/php7/php7.y:3378 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5924,7 +5924,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3389 +// line internal/php7/php7.y:3389 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5937,7 +5937,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3400 +// line internal/php7/php7.y:3400 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5954,13 +5954,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3415 +// line internal/php7/php7.y:3415 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3419 +// line internal/php7/php7.y:3419 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5974,7 +5974,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3431 +// line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5988,7 +5988,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3443 +// line internal/php7/php7.y:3443 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6001,13 +6001,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3454 +// line internal/php7/php7.y:3454 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3458 +// line internal/php7/php7.y:3458 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6020,7 +6020,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3469 +// line internal/php7/php7.y:3469 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6033,7 +6033,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3480 +// line internal/php7/php7.y:3480 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6046,7 +6046,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3491 +// line internal/php7/php7.y:3491 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6059,7 +6059,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3502 +// line internal/php7/php7.y:3502 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6072,7 +6072,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3513 +// line internal/php7/php7.y:3513 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6085,7 +6085,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3524 +// line internal/php7/php7.y:3524 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6098,7 +6098,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3535 +// line internal/php7/php7.y:3535 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6118,7 +6118,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3553 +// line internal/php7/php7.y:3553 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6130,13 +6130,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3563 +// line internal/php7/php7.y:3563 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3567 +// line internal/php7/php7.y:3567 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6148,7 +6148,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3577 +// line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6160,7 +6160,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3587 +// line internal/php7/php7.y:3587 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6172,7 +6172,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3597 +// line internal/php7/php7.y:3597 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6184,7 +6184,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3607 +// line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6197,7 +6197,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3618 +// line internal/php7/php7.y:3618 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6209,13 +6209,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3628 +// line internal/php7/php7.y:3628 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3632 +// line internal/php7/php7.y:3632 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6230,7 +6230,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3648 +// line internal/php7/php7.y:3648 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6251,7 +6251,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3667 +// line internal/php7/php7.y:3667 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6270,25 +6270,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3691 +// line internal/php7/php7.y:3691 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3695 +// line internal/php7/php7.y:3695 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3702 +// line internal/php7/php7.y:3702 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3706 +// line internal/php7/php7.y:3706 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6302,7 +6302,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3721 +// line internal/php7/php7.y:3721 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -6311,13 +6311,13 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3728 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3735 +// line internal/php7/php7.y:3735 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6336,7 +6336,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3752 +// line internal/php7/php7.y:3752 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6358,7 +6358,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3775 +// line internal/php7/php7.y:3775 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6370,7 +6370,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3785 +// line internal/php7/php7.y:3785 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6383,7 +6383,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3796 +// line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6396,7 +6396,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3807 +// line internal/php7/php7.y:3807 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6408,7 +6408,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3820 +// line internal/php7/php7.y:3820 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6420,31 +6420,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3830 +// line internal/php7/php7.y:3830 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3837 +// line internal/php7/php7.y:3837 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3841 +// line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3848 +// line internal/php7/php7.y:3848 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3852 +// line internal/php7/php7.y:3852 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6461,13 +6461,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3870 +// line internal/php7/php7.y:3870 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3874 +// line internal/php7/php7.y:3874 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6481,25 +6481,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3886 +// line internal/php7/php7.y:3886 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3893 +// line internal/php7/php7.y:3893 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3897 +// line internal/php7/php7.y:3897 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3904 +// line internal/php7/php7.y:3904 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6514,7 +6514,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3917 +// line internal/php7/php7.y:3917 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6528,7 +6528,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3929 +// line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6540,7 +6540,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3942 +// line internal/php7/php7.y:3942 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6552,7 +6552,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3952 +// line internal/php7/php7.y:3952 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6564,7 +6564,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3962 +// line internal/php7/php7.y:3962 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6576,7 +6576,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3972 +// line internal/php7/php7.y:3972 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6588,7 +6588,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3982 +// line internal/php7/php7.y:3982 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6600,7 +6600,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3992 +// line internal/php7/php7.y:3992 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6612,7 +6612,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4002 +// line internal/php7/php7.y:4002 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6624,7 +6624,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4012 +// line internal/php7/php7.y:4012 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6636,7 +6636,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4022 +// line internal/php7/php7.y:4022 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6648,7 +6648,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4032 +// line internal/php7/php7.y:4032 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6660,7 +6660,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4042 +// line internal/php7/php7.y:4042 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6681,7 +6681,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4061 +// line internal/php7/php7.y:4061 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6693,7 +6693,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4071 +// line internal/php7/php7.y:4071 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6706,7 +6706,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4082 +// line internal/php7/php7.y:4082 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6719,19 +6719,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4093 +// line internal/php7/php7.y:4093 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4097 +// line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4104 +// line internal/php7/php7.y:4104 { yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} @@ -6743,7 +6743,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4114 +// line internal/php7/php7.y:4114 { target := &ast.Identifier{ Node: ast.Node{ @@ -6763,7 +6763,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4132 +// line internal/php7/php7.y:4132 { target := &ast.Identifier{ Node: ast.Node{ @@ -6783,43 +6783,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4153 +// line internal/php7/php7.y:4153 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4157 +// line internal/php7/php7.y:4157 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4164 +// line internal/php7/php7.y:4164 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4175 +// line internal/php7/php7.y:4175 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4182 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4186 +// line internal/php7/php7.y:4186 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6836,19 +6836,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4201 +// line internal/php7/php7.y:4201 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4208 +// line internal/php7/php7.y:4208 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4212 +// line internal/php7/php7.y:4212 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6865,58 +6865,61 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4227 +// line internal/php7/php7.y:4227 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4234 +// line internal/php7/php7.y:4234 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4238 +// line internal/php7/php7.y:4238 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4249 +// line internal/php7/php7.y:4250 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4260 +// line internal/php7/php7.y:4262 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4271 +// line internal/php7/php7.y:4274 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6929,25 +6932,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4282 +// line internal/php7/php7.y:4285 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4289 +// line internal/php7/php7.y:4292 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4293 +// line internal/php7/php7.y:4296 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4297 +// line internal/php7/php7.y:4300 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6960,7 +6963,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4311 +// line internal/php7/php7.y:4314 { name := &ast.Identifier{ Node: ast.Node{ @@ -6979,7 +6982,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4328 +// line internal/php7/php7.y:4331 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6993,7 +6996,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4340 +// line internal/php7/php7.y:4343 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7005,7 +7008,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4353 +// line internal/php7/php7.y:4356 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7018,7 +7021,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4364 +// line internal/php7/php7.y:4367 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7031,39 +7034,41 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4378 +// line internal/php7/php7.y:4381 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4382 +// line internal/php7/php7.y:4385 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4393 +// line internal/php7/php7.y:4397 { - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4404 +// line internal/php7/php7.y:4409 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7076,7 +7081,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4415 +// line internal/php7/php7.y:4420 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7089,7 +7094,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4426 +// line internal/php7/php7.y:4431 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7102,7 +7107,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4440 +// line internal/php7/php7.y:4445 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7114,7 +7119,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4450 +// line internal/php7/php7.y:4455 { yyVAL.node = yyDollar[2].node @@ -7124,13 +7129,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4458 +// line internal/php7/php7.y:4463 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4465 +// line internal/php7/php7.y:4470 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7142,7 +7147,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4475 +// line internal/php7/php7.y:4480 { yyVAL.node = yyDollar[2].node @@ -7152,13 +7157,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4483 +// line internal/php7/php7.y:4488 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4490 +// line internal/php7/php7.y:4495 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7171,19 +7176,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4504 +// line internal/php7/php7.y:4509 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4508 +// line internal/php7/php7.y:4513 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4515 +// line internal/php7/php7.y:4520 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7192,7 +7197,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4522 +// line internal/php7/php7.y:4527 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7200,122 +7205,125 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4531 +// line internal/php7/php7.y:4536 { - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Key: yyDollar[1].node, + DoubleArrowTkn: yyDollar[2].token, + Val: yyDollar[3].node, + } } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4542 +// line internal/php7/php7.y:4547 { - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Val: yyDollar[1].node, + } } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4552 +// line internal/php7/php7.y:4556 { - reference := &ast.ExprReference{ast.Node{}, yyDollar[4].node} - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, reference} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Key: yyDollar[1].node, + DoubleArrowTkn: yyDollar[2].token, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + }, + Var: yyDollar[4].node, + }, + } } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4566 +// line internal/php7/php7.y:4572 { - reference := &ast.ExprReference{ast.Node{}, yyDollar[2].node} - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - reference.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + Var: yyDollar[2].node, + }, + } } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4578 +// line internal/php7/php7.y:4586 { - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, true, nil, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + EllipsisTkn: yyDollar[1].token, + Val: yyDollar[2].node, + } } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4588 +// line internal/php7/php7.y:4596 { - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), + }, + Key: yyDollar[1].node, + DoubleArrowTkn: yyDollar[2].token, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), + }, + ListTkn: yyDollar[3].token, + OpenBracketTkn: yyDollar[4].token, + Items: yyDollar[5].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[6].token, }, - ListTkn: yyDollar[3].token, - OpenBracketTkn: yyDollar[4].token, - Items: yyDollar[5].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[6].token, } - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, yyDollar[1].node, listNode} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4609 +// line internal/php7/php7.y:4616 { - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - ListTkn: yyDollar[1].token, - OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[4].token, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + }, } - yyVAL.node = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4629 +// line internal/php7/php7.y:4637 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4633 +// line internal/php7/php7.y:4641 { yyVAL.list = append( yyDollar[1].list, @@ -7330,13 +7338,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4646 +// line internal/php7/php7.y:4654 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4650 +// line internal/php7/php7.y:4658 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7351,7 +7359,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4666 +// line internal/php7/php7.y:4674 { name := &ast.Identifier{ Node: ast.Node{ @@ -7370,29 +7378,32 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4683 +// line internal/php7/php7.y:4691 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[3].node} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[4].token.SkippedTokens) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4703 +// line internal/php7/php7.y:4714 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7420,7 +7431,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4729 +// line internal/php7/php7.y:4740 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7435,7 +7446,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4742 +// line internal/php7/php7.y:4753 { name := &ast.Identifier{ Node: ast.Node{ @@ -7457,31 +7468,34 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4762 +// line internal/php7/php7.y:4773 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, + OpenCurlyBracketTkn: yyDollar[1].token, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + }, + OpenBracketTkn: yyDollar[3].token, + Dim: yyDollar[4].node, + CloseBracketTkn: yyDollar[5].token, + CloseCurlyBracketTkn: yyDollar[6].token, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.ExprArrayDimFetch{ast.Node{}, variable, yyDollar[4].node} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) - - // save comments - yylex.(*Parser).setToken(variable, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Var, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Expr, yyDollar[5].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[6].token.SkippedTokens) } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4784 +// line internal/php7/php7.y:4798 { yyVAL.node = yyDollar[2].node @@ -7491,7 +7505,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4795 +// line internal/php7/php7.y:4809 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7503,7 +7517,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4805 +// line internal/php7/php7.y:4819 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7526,7 +7540,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4826 +// line internal/php7/php7.y:4840 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7554,7 +7568,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4852 +// line internal/php7/php7.y:4866 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7573,7 +7587,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4872 +// line internal/php7/php7.y:4886 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7591,7 +7605,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4888 +// line internal/php7/php7.y:4902 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7613,7 +7627,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4908 +// line internal/php7/php7.y:4922 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7625,7 +7639,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4918 +// line internal/php7/php7.y:4932 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7637,7 +7651,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4928 +// line internal/php7/php7.y:4942 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7659,7 +7673,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4948 +// line internal/php7/php7.y:4962 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7671,7 +7685,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4958 +// line internal/php7/php7.y:4972 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7683,13 +7697,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4971 +// line internal/php7/php7.y:4985 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4975 +// line internal/php7/php7.y:4989 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7698,7 +7712,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4985 +// line internal/php7/php7.y:4999 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 4591ec7..ffe6f94 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -4236,36 +4236,39 @@ callable_variable: } | dereferencable '[' optional_expr ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | constant '[' optional_expr ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | dereferencable '{' expr '}' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | dereferencable T_OBJECT_OPERATOR property_name argument_list { @@ -4380,25 +4383,27 @@ new_variable: } | new_variable '[' optional_expr ']' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | new_variable '{' expr '}' { - $$ = &ast.ExprArrayDimFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) + $$ = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $4), + }, + Var: $1, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, + } } | new_variable T_OBJECT_OPERATOR property_name { @@ -4529,98 +4534,101 @@ non_empty_array_pair_list: array_pair: expr T_DOUBLE_ARROW expr { - $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Key: $1, + DoubleArrowTkn: $2, + Val: $3, + } } | expr { - $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Val: $1, + } } | expr T_DOUBLE_ARROW '&' variable { - reference := &ast.ExprReference{ast.Node{}, $4} - $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, reference} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - reference.GetNode().Position = position.NewTokenNodePosition($3, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.SkippedTokens) + $$ = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Key: $1, + DoubleArrowTkn: $2, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($3, $4), + }, + Var: $4, + }, + } } | '&' variable { - reference := &ast.ExprReference{ast.Node{}, $2} - $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, reference} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - reference.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + Val: &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + Var: $2, + }, + } } | T_ELLIPSIS expr { - $$ = &ast.ExprArrayItem{ast.Node{}, true, nil, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprArrayItem{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + EllipsisTkn: $1, + Val: $2, + } } | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { - listNode := &ast.ExprList{ + $$ = &ast.ExprArrayItem{ Node: ast.Node{ - Position: position.NewTokensPosition($3, $6), + Position: position.NewNodeTokenPosition($1, $6), + }, + Key: $1, + DoubleArrowTkn: $2, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($3, $6), + }, + ListTkn: $3, + OpenBracketTkn: $4, + Items: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $6, }, - ListTkn: $3, - OpenBracketTkn: $4, - Items: $5.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $6, } - $$ = &ast.ExprArrayItem{ast.Node{}, false, $1, listNode} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $6) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) } | T_LIST '(' array_pair_list ')' { - listNode := &ast.ExprList{ + $$ = &ast.ExprArrayItem{ Node: ast.Node{ Position: position.NewTokensPosition($1, $4), }, - ListTkn: $1, - OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $4, + Val: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + }, } - $$ = &ast.ExprArrayItem{ast.Node{}, false, nil, listNode} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) } ; @@ -4681,23 +4689,26 @@ encaps_var: } | T_VARIABLE '[' encaps_var_offset ']' { - identifier := &ast.Identifier{ + $$ = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokensPosition($1, $4), }, - IdentifierTkn: $1, - Value: $1.Value, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + OpenBracketTkn: $2, + Dim: $3, + CloseBracketTkn: $4, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $3} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $4.SkippedTokens) } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { @@ -4760,25 +4771,28 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { - identifier := &ast.Identifier{ + $$ = &ast.ExprArrayDimFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $6), }, - IdentifierTkn: $2, - Value: $2.Value, + OpenCurlyBracketTkn: $1, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + }, + OpenBracketTkn: $3, + Dim: $4, + CloseBracketTkn: $5, + CloseCurlyBracketTkn: $6, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.ExprArrayDimFetch{ast.Node{}, variable, $4} - - // save position - variable.GetNode().Position = position.NewTokenPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $6) - - // save comments - yylex.(*Parser).setToken(variable, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Var, $3.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.Expr, $5.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $6.SkippedTokens) } | T_CURLY_OPEN variable '}' { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 9322ae3..990171c 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -953,8 +953,12 @@ func (n *ExprArray) Accept(v NodeVisitor) { // ExprArrayDimFetch node type ExprArrayDimFetch struct { Node - Var Vertex - Dim Vertex + Var Vertex + OpenCurlyBracketTkn *token.Token + OpenBracketTkn *token.Token + Dim Vertex + CloseBracketTkn *token.Token + CloseCurlyBracketTkn *token.Token } func (n *ExprArrayDimFetch) Accept(v NodeVisitor) { @@ -964,9 +968,10 @@ func (n *ExprArrayDimFetch) Accept(v NodeVisitor) { // ExprArrayItem node type ExprArrayItem struct { Node - Unpack bool - Key Vertex - Val Vertex + EllipsisTkn *token.Token + Key Vertex + DoubleArrowTkn *token.Token + Val Vertex } func (n *ExprArrayItem) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 45dc2c2..5ae65a5 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -620,11 +620,6 @@ func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayItem{\n") v.printNode(n.GetNode()) - - if n.Unpack { - v.printIndent(v.indent) - v.print("Unpack: true,\n") - } } func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 0080044..4e86c48 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1369,7 +1369,7 @@ func (p *Printer) printExprArrayItem(n ast.Vertex) { nn := n.(*ast.ExprArrayItem) p.printFreeFloating(nn, token.Start) - if nn.Unpack { + if nn.EllipsisTkn != nil { p.write([]byte("...")) } From b90400d993e3792158d9964916113bb0b6f950c6 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 1 Dec 2020 09:51:47 +0200 Subject: [PATCH 083/140] [refactoring] update ast structure of "BitwiseNot", "BooleanNot", "ClassConstFetch" and "Clone" nodes --- internal/php5/php5.go | 1227 ++++++++++++++++++++--------------------- internal/php5/php5.y | 185 +++---- internal/php7/php7.go | 240 ++++---- internal/php7/php7.y | 88 ++- pkg/ast/node.go | 14 +- 5 files changed, 872 insertions(+), 882 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 15333e8..400b632 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6526 +// line internal/php5/php5.y:6521 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2323,7 +2323,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:271 +// line internal/php5/php5.y:271 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2332,7 +2332,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:281 +// line internal/php5/php5.y:281 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2345,13 +2345,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:292 +// line internal/php5/php5.y:292 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:299 +// line internal/php5/php5.y:299 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2365,7 +2365,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:311 +// line internal/php5/php5.y:311 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2378,32 +2378,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:325 +// line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:330 +// line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2417,7 +2417,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:354 +// line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2435,7 +2435,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:370 +// line internal/php5/php5.y:370 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2455,7 +2455,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:388 +// line internal/php5/php5.y:388 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2469,7 +2469,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:400 +// line internal/php5/php5.y:400 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2482,7 +2482,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:411 +// line internal/php5/php5.y:411 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2502,7 +2502,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:429 +// line internal/php5/php5.y:429 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2522,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:447 +// line internal/php5/php5.y:447 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2530,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:456 +// line internal/php5/php5.y:456 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2538,13 +2538,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:462 +// line internal/php5/php5.y:462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:469 +// line internal/php5/php5.y:469 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2560,7 +2560,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:483 +// line internal/php5/php5.y:483 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2584,7 +2584,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:505 +// line internal/php5/php5.y:505 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2601,7 +2601,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:520 +// line internal/php5/php5.y:520 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2626,7 +2626,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:546 +// line internal/php5/php5.y:546 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2634,13 +2634,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:552 +// line internal/php5/php5.y:552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:559 +// line internal/php5/php5.y:559 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2656,7 +2656,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:573 +// line internal/php5/php5.y:573 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2680,7 +2680,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:595 +// line internal/php5/php5.y:595 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2697,7 +2697,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:610 +// line internal/php5/php5.y:610 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2722,7 +2722,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:636 +// line internal/php5/php5.y:636 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2730,13 +2730,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:642 +// line internal/php5/php5.y:642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:649 +// line internal/php5/php5.y:649 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2752,7 +2752,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:663 +// line internal/php5/php5.y:663 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2776,7 +2776,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:685 +// line internal/php5/php5.y:685 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2793,7 +2793,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:700 +// line internal/php5/php5.y:700 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2818,7 +2818,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:726 +// line internal/php5/php5.y:726 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2844,7 +2844,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:750 +// line internal/php5/php5.y:750 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2873,7 +2873,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:780 +// line internal/php5/php5.y:780 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2886,38 +2886,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:791 +// line internal/php5/php5.y:791 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:799 +// line internal/php5/php5.y:799 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:804 +// line internal/php5/php5.y:804 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:808 +// line internal/php5/php5.y:808 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:812 +// line internal/php5/php5.y:812 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:816 +// line internal/php5/php5.y:816 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2931,13 +2931,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:832 +// line internal/php5/php5.y:832 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:836 +// line internal/php5/php5.y:836 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2955,7 +2955,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:855 +// line internal/php5/php5.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2968,7 +2968,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:866 +// line internal/php5/php5.y:866 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2992,7 +2992,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:888 +// line internal/php5/php5.y:888 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3018,7 +3018,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:912 +// line internal/php5/php5.y:912 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3030,7 +3030,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:922 +// line internal/php5/php5.y:922 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3047,7 +3047,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:937 +// line internal/php5/php5.y:937 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3063,7 +3063,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:951 +// line internal/php5/php5.y:951 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3075,7 +3075,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:961 +// line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3087,7 +3087,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:971 +// line internal/php5/php5.y:971 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3100,7 +3100,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:982 +// line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3112,7 +3112,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:992 +// line internal/php5/php5.y:992 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3125,7 +3125,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1003 +// line internal/php5/php5.y:1003 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3137,7 +3137,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1013 +// line internal/php5/php5.y:1013 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3150,7 +3150,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1024 +// line internal/php5/php5.y:1024 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1035 +// line internal/php5/php5.y:1035 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3175,7 +3175,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1045 +// line internal/php5/php5.y:1045 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3186,7 +3186,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1054 +// line internal/php5/php5.y:1054 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3197,7 +3197,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1063 +// line internal/php5/php5.y:1063 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3207,7 +3207,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1071 +// line internal/php5/php5.y:1071 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3219,7 +3219,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1081 +// line internal/php5/php5.y:1081 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3231,7 +3231,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1091 +// line internal/php5/php5.y:1091 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3243,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1101 +// line internal/php5/php5.y:1101 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3263,7 +3263,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1119 +// line internal/php5/php5.y:1119 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3283,7 +3283,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1137 +// line internal/php5/php5.y:1137 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3296,7 +3296,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1148 +// line internal/php5/php5.y:1148 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3307,7 +3307,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1157 +// line internal/php5/php5.y:1157 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3326,7 +3326,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1174 +// line internal/php5/php5.y:1174 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3339,7 +3339,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1185 +// line internal/php5/php5.y:1185 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3358,13 +3358,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1205 +// line internal/php5/php5.y:1205 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1209 +// line internal/php5/php5.y:1209 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3397,13 +3397,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1243 +// line internal/php5/php5.y:1243 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1247 +// line internal/php5/php5.y:1247 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3417,31 +3417,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1262 +// line internal/php5/php5.y:1262 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1266 +// line internal/php5/php5.y:1266 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1273 +// line internal/php5/php5.y:1273 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1277 +// line internal/php5/php5.y:1277 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1284 +// line internal/php5/php5.y:1284 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3473,7 +3473,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1317 +// line internal/php5/php5.y:1317 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3481,7 +3481,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1323 +// line internal/php5/php5.y:1323 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3490,49 +3490,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1333 +// line internal/php5/php5.y:1333 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1340 +// line internal/php5/php5.y:1340 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1347 +// line internal/php5/php5.y:1347 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1354 +// line internal/php5/php5.y:1354 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1358 +// line internal/php5/php5.y:1358 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1365 +// line internal/php5/php5.y:1365 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1369 +// line internal/php5/php5.y:1369 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1376 +// line internal/php5/php5.y:1376 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3557,7 +3557,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1402 +// line internal/php5/php5.y:1402 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3594,7 +3594,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1437 +// line internal/php5/php5.y:1437 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3616,7 +3616,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1461 +// line internal/php5/php5.y:1461 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3627,7 +3627,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1470 +// line internal/php5/php5.y:1470 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3647,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1488 +// line internal/php5/php5.y:1488 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3658,7 +3658,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1497 +// line internal/php5/php5.y:1497 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3678,13 +3678,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1518 +// line internal/php5/php5.y:1518 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1522 +// line internal/php5/php5.y:1522 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3696,19 +3696,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1535 +// line internal/php5/php5.y:1535 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1542 +// line internal/php5/php5.y:1542 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1546 +// line internal/php5/php5.y:1546 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3721,13 +3721,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1560 +// line internal/php5/php5.y:1560 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1564 +// line internal/php5/php5.y:1564 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3740,7 +3740,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1578 +// line internal/php5/php5.y:1578 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3748,7 +3748,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1584 +// line internal/php5/php5.y:1584 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3757,13 +3757,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1594 +// line internal/php5/php5.y:1594 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1598 +// line internal/php5/php5.y:1598 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3772,13 +3772,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1608 +// line internal/php5/php5.y:1608 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1612 +// line internal/php5/php5.y:1612 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3790,7 +3790,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1622 +// line internal/php5/php5.y:1622 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3812,7 +3812,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1645 +// line internal/php5/php5.y:1645 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3823,7 +3823,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1654 +// line internal/php5/php5.y:1654 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3843,7 +3843,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1675 +// line internal/php5/php5.y:1675 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3854,7 +3854,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1684 +// line internal/php5/php5.y:1684 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3874,7 +3874,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1706 +// line internal/php5/php5.y:1706 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3885,7 +3885,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1715 +// line internal/php5/php5.y:1715 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3905,7 +3905,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1737 +// line internal/php5/php5.y:1737 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3930,7 +3930,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1760 +// line internal/php5/php5.y:1760 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3957,7 +3957,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1789 +// line internal/php5/php5.y:1789 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3970,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1800 +// line internal/php5/php5.y:1800 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3984,7 +3984,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1812 +// line internal/php5/php5.y:1812 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3999,7 +3999,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1825 +// line internal/php5/php5.y:1825 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4015,13 +4015,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1843 +// line internal/php5/php5.y:1843 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1847 +// line internal/php5/php5.y:1847 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4035,7 +4035,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1859 +// line internal/php5/php5.y:1859 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4048,19 +4048,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1874 +// line internal/php5/php5.y:1874 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1878 +// line internal/php5/php5.y:1878 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1886 +// line internal/php5/php5.y:1886 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4071,7 +4071,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1895 +// line internal/php5/php5.y:1895 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4091,13 +4091,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1918 +// line internal/php5/php5.y:1918 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1922 +// line internal/php5/php5.y:1922 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4112,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1939 +// line internal/php5/php5.y:1939 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1943 +// line internal/php5/php5.y:1943 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4140,13 +4140,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1967 +// line internal/php5/php5.y:1967 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1971 +// line internal/php5/php5.y:1971 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4158,13 +4158,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1985 +// line internal/php5/php5.y:1985 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1989 +// line internal/php5/php5.y:1989 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4183,25 +4183,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2010 +// line internal/php5/php5.y:2010 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2014 +// line internal/php5/php5.y:2014 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2021 +// line internal/php5/php5.y:2021 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2025 +// line internal/php5/php5.y:2025 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4210,7 +4210,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2035 +// line internal/php5/php5.y:2035 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4264,7 +4264,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2087 +// line internal/php5/php5.y:2087 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4321,13 +4321,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2146 +// line internal/php5/php5.y:2146 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2150 +// line internal/php5/php5.y:2150 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4339,7 +4339,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2160 +// line internal/php5/php5.y:2160 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4351,13 +4351,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2170 +// line internal/php5/php5.y:2170 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2178 +// line internal/php5/php5.y:2178 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4369,7 +4369,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2188 +// line internal/php5/php5.y:2188 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4380,7 +4380,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2197 +// line internal/php5/php5.y:2197 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4400,7 +4400,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2219 +// line internal/php5/php5.y:2219 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4408,7 +4408,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2225 +// line internal/php5/php5.y:2225 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4417,7 +4417,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2235 +// line internal/php5/php5.y:2235 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4428,7 +4428,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2244 +// line internal/php5/php5.y:2244 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4439,7 +4439,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2253 +// line internal/php5/php5.y:2253 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4451,7 +4451,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2263 +// line internal/php5/php5.y:2263 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4463,7 +4463,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2276 +// line internal/php5/php5.y:2276 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4472,7 +4472,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2283 +// line internal/php5/php5.y:2283 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4480,7 +4480,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2293 +// line internal/php5/php5.y:2293 { name := &ast.Identifier{ Node: ast.Node{ @@ -4499,7 +4499,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2310 +// line internal/php5/php5.y:2310 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4511,7 +4511,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2320 +// line internal/php5/php5.y:2320 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4525,7 +4525,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2336 +// line internal/php5/php5.y:2336 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4554,7 +4554,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2363 +// line internal/php5/php5.y:2363 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4585,7 +4585,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2392 +// line internal/php5/php5.y:2392 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4615,7 +4615,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2420 +// line internal/php5/php5.y:2420 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4647,19 +4647,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2454 +// line internal/php5/php5.y:2454 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2458 +// line internal/php5/php5.y:2458 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2466 +// line internal/php5/php5.y:2466 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4673,7 +4673,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2478 +// line internal/php5/php5.y:2478 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4681,13 +4681,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2484 +// line internal/php5/php5.y:2484 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2488 +// line internal/php5/php5.y:2488 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4716,7 +4716,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2518 +// line internal/php5/php5.y:2518 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4730,7 +4730,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2533 +// line internal/php5/php5.y:2533 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4738,7 +4738,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2539 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4747,7 +4747,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2549 +// line internal/php5/php5.y:2549 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4758,7 +4758,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2558 +// line internal/php5/php5.y:2558 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4771,31 +4771,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2572 +// line internal/php5/php5.y:2572 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2576 +// line internal/php5/php5.y:2576 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2583 +// line internal/php5/php5.y:2583 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2587 +// line internal/php5/php5.y:2587 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2594 +// line internal/php5/php5.y:2594 { yyVAL.node = yyDollar[1].node @@ -4805,7 +4805,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2602 +// line internal/php5/php5.y:2602 { yyVAL.node = yyDollar[1].node @@ -4815,7 +4815,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2613 +// line internal/php5/php5.y:2613 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4829,7 +4829,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2628 +// line internal/php5/php5.y:2628 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4837,7 +4837,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2634 +// line internal/php5/php5.y:2634 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4846,7 +4846,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2644 +// line internal/php5/php5.y:2644 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4863,13 +4863,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2659 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2666 +// line internal/php5/php5.y:2666 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4888,7 +4888,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2686 +// line internal/php5/php5.y:2686 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4908,7 +4908,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2704 +// line internal/php5/php5.y:2704 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4921,19 +4921,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2718 +// line internal/php5/php5.y:2718 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2722 +// line internal/php5/php5.y:2722 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2729 +// line internal/php5/php5.y:2729 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4944,7 +4944,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2738 +// line internal/php5/php5.y:2738 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4957,13 +4957,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2752 +// line internal/php5/php5.y:2752 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2756 +// line internal/php5/php5.y:2756 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4977,31 +4977,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2771 +// line internal/php5/php5.y:2771 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2775 +// line internal/php5/php5.y:2775 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2782 +// line internal/php5/php5.y:2782 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2786 +// line internal/php5/php5.y:2786 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2793 +// line internal/php5/php5.y:2793 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5013,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2803 +// line internal/php5/php5.y:2803 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5025,7 +5025,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2813 +// line internal/php5/php5.y:2813 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5037,7 +5037,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2823 +// line internal/php5/php5.y:2823 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5049,7 +5049,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2833 +// line internal/php5/php5.y:2833 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5061,7 +5061,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2843 +// line internal/php5/php5.y:2843 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5073,7 +5073,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2856 +// line internal/php5/php5.y:2856 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5100,7 +5100,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2881 +// line internal/php5/php5.y:2881 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5129,7 +5129,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2908 +// line internal/php5/php5.y:2908 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5156,7 +5156,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2933 +// line internal/php5/php5.y:2933 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5184,7 +5184,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2962 +// line internal/php5/php5.y:2962 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5210,7 +5210,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2986 +// line internal/php5/php5.y:2986 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5239,7 +5239,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3016 +// line internal/php5/php5.y:3016 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5248,7 +5248,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3023 +// line internal/php5/php5.y:3023 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5256,19 +5256,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3033 +// line internal/php5/php5.y:3033 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3037 +// line internal/php5/php5.y:3037 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3044 +// line internal/php5/php5.y:3044 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5277,25 +5277,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3051 +// line internal/php5/php5.y:3051 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3058 +// line internal/php5/php5.y:3058 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3062 +// line internal/php5/php5.y:3062 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3069 +// line internal/php5/php5.y:3069 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5311,7 +5311,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3083 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5327,37 +5327,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3100 +// line internal/php5/php5.y:3100 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3104 +// line internal/php5/php5.y:3104 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3108 +// line internal/php5/php5.y:3108 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3115 +// line internal/php5/php5.y:3115 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3119 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3126 +// line internal/php5/php5.y:3126 { if yyDollar[3].node != nil { @@ -5373,7 +5373,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3143 +// line internal/php5/php5.y:3143 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -5406,7 +5406,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3174 +// line internal/php5/php5.y:3174 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5419,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3185 +// line internal/php5/php5.y:3185 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5433,7 +5433,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3197 +// line internal/php5/php5.y:3197 { var _new *ast.ExprNew @@ -5460,19 +5460,19 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3222 +// line internal/php5/php5.y:3222 { - yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprClone{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CloneTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3232 +// line internal/php5/php5.y:3232 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5484,7 +5484,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3242 +// line internal/php5/php5.y:3242 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5497,7 +5497,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3253 +// line internal/php5/php5.y:3253 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5510,7 +5510,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3264 +// line internal/php5/php5.y:3264 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5523,7 +5523,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3275 +// line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5536,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3286 +// line internal/php5/php5.y:3286 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5549,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3297 +// line internal/php5/php5.y:3297 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5562,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3308 +// line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5575,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3319 +// line internal/php5/php5.y:3319 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5588,7 +5588,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3330 +// line internal/php5/php5.y:3330 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5601,7 +5601,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3341 +// line internal/php5/php5.y:3341 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5614,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3352 +// line internal/php5/php5.y:3352 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5627,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3363 +// line internal/php5/php5.y:3363 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5640,7 +5640,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3374 +// line internal/php5/php5.y:3374 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5652,7 +5652,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3384 +// line internal/php5/php5.y:3384 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5665,7 +5665,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3395 +// line internal/php5/php5.y:3395 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5677,7 +5677,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3405 +// line internal/php5/php5.y:3405 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5690,7 +5690,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3416 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,7 +5703,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3427 +// line internal/php5/php5.y:3427 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5716,7 +5716,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3438 +// line internal/php5/php5.y:3438 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5729,7 +5729,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3449 +// line internal/php5/php5.y:3449 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5742,7 +5742,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3460 +// line internal/php5/php5.y:3460 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5755,7 +5755,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3471 +// line internal/php5/php5.y:3471 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5768,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3482 +// line internal/php5/php5.y:3482 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5781,7 +5781,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3493 +// line internal/php5/php5.y:3493 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5793,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3503 +// line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5806,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3514 +// line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5819,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3525 +// line internal/php5/php5.y:3525 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5832,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3536 +// line internal/php5/php5.y:3536 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5845,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3547 +// line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5858,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3558 +// line internal/php5/php5.y:3558 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5871,7 +5871,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3569 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5884,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3580 +// line internal/php5/php5.y:3580 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5897,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3591 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5909,7 +5909,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3601 +// line internal/php5/php5.y:3601 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5921,31 +5921,31 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3611 +// line internal/php5/php5.y:3611 { - yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprBooleanNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + ExclamationTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3621 +// line internal/php5/php5.y:3621 { - yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprBitwiseNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + TildaTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3631 +// line internal/php5/php5.y:3631 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5958,7 +5958,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3642 +// line internal/php5/php5.y:3642 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5971,7 +5971,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3653 +// line internal/php5/php5.y:3653 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5984,7 +5984,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3664 +// line internal/php5/php5.y:3664 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5998,7 +5998,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3676 +// line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6011,7 +6011,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3687 +// line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6024,7 +6024,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3698 +// line internal/php5/php5.y:3698 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6037,7 +6037,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3709 +// line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6050,7 +6050,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3720 +// line internal/php5/php5.y:3720 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6063,19 +6063,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3731 +// line internal/php5/php5.y:3731 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3735 +// line internal/php5/php5.y:3735 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3739 +// line internal/php5/php5.y:3739 { yyVAL.node = yyDollar[2].node @@ -6107,7 +6107,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3769 +// line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6121,7 +6121,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3781 +// line internal/php5/php5.y:3781 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6135,13 +6135,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3793 +// line internal/php5/php5.y:3793 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3797 +// line internal/php5/php5.y:3797 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6154,7 +6154,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3808 +// line internal/php5/php5.y:3808 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6167,7 +6167,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3819 +// line internal/php5/php5.y:3819 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6180,7 +6180,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3830 +// line internal/php5/php5.y:3830 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6193,7 +6193,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6206,7 +6206,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3852 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6219,7 +6219,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6232,7 +6232,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3874 +// line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} @@ -6252,7 +6252,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3892 +// line internal/php5/php5.y:3892 { yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} @@ -6264,25 +6264,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3902 +// line internal/php5/php5.y:3902 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3906 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3910 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3914 +// line internal/php5/php5.y:3914 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6294,7 +6294,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3924 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6306,7 +6306,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3934 +// line internal/php5/php5.y:3934 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6318,7 +6318,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3944 +// line internal/php5/php5.y:3944 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6337,7 +6337,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3961 +// line internal/php5/php5.y:3961 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6357,7 +6357,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3982 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6369,7 +6369,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3992 +// line internal/php5/php5.y:3992 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6381,7 +6381,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4002 +// line internal/php5/php5.y:4002 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6394,7 +6394,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4013 +// line internal/php5/php5.y:4013 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6407,7 +6407,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4027 +// line internal/php5/php5.y:4027 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6421,7 +6421,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6435,7 +6435,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4051 +// line internal/php5/php5.y:4051 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6455,7 +6455,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4069 +// line internal/php5/php5.y:4069 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6469,7 +6469,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4084 +// line internal/php5/php5.y:4084 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6484,7 +6484,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4097 +// line internal/php5/php5.y:4097 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6498,19 +6498,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4112 +// line internal/php5/php5.y:4112 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4119 +// line internal/php5/php5.y:4119 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4123 +// line internal/php5/php5.y:4123 { yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} @@ -6524,7 +6524,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4138 +// line internal/php5/php5.y:4138 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6545,7 +6545,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6569,7 +6569,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4179 +// line internal/php5/php5.y:4179 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6589,7 +6589,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4197 +// line internal/php5/php5.y:4197 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6612,7 +6612,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4221 +// line internal/php5/php5.y:4221 { name := &ast.NameName{ Node: ast.Node{ @@ -6627,7 +6627,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4234 +// line internal/php5/php5.y:4234 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6644,7 +6644,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4249 +// line internal/php5/php5.y:4249 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6660,7 +6660,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4263 +// line internal/php5/php5.y:4263 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6673,7 +6673,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4274 +// line internal/php5/php5.y:4274 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6686,7 +6686,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6699,7 +6699,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4296 +// line internal/php5/php5.y:4296 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6712,7 +6712,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4307 +// line internal/php5/php5.y:4307 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6724,7 +6724,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4320 +// line internal/php5/php5.y:4320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6736,7 +6736,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4330 +// line internal/php5/php5.y:4330 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6747,7 +6747,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4339 +// line internal/php5/php5.y:4339 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6760,7 +6760,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4350 +// line internal/php5/php5.y:4350 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6772,7 +6772,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4363 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6783,7 +6783,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4372 +// line internal/php5/php5.y:4372 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6796,7 +6796,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4383 +// line internal/php5/php5.y:4383 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6808,19 +6808,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4396 +// line internal/php5/php5.y:4396 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4400 +// line internal/php5/php5.y:4400 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4407 +// line internal/php5/php5.y:4407 { yyVAL.node = yyDollar[1].node @@ -6861,25 +6861,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4446 +// line internal/php5/php5.y:4446 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4454 +// line internal/php5/php5.y:4454 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4458 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4466 +// line internal/php5/php5.y:4466 { yyVAL.list = yyDollar[2].list @@ -6888,13 +6888,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4476 +// line internal/php5/php5.y:4476 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4480 +// line internal/php5/php5.y:4480 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6910,19 +6910,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4494 +// line internal/php5/php5.y:4494 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4501 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4505 +// line internal/php5/php5.y:4505 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6936,25 +6936,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4517 +// line internal/php5/php5.y:4517 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4524 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4528 +// line internal/php5/php5.y:4528 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4535 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6966,7 +6966,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4545 +// line internal/php5/php5.y:4545 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6978,7 +6978,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4555 +// line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6990,7 +6990,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4565 +// line internal/php5/php5.y:4565 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7002,7 +7002,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4575 +// line internal/php5/php5.y:4575 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7014,7 +7014,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4585 +// line internal/php5/php5.y:4585 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7026,7 +7026,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4595 +// line internal/php5/php5.y:4595 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7038,7 +7038,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4605 +// line internal/php5/php5.y:4605 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7050,7 +7050,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4615 +// line internal/php5/php5.y:4615 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7062,7 +7062,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4625 +// line internal/php5/php5.y:4625 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7074,7 +7074,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4635 +// line internal/php5/php5.y:4635 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7095,7 +7095,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4654 +// line internal/php5/php5.y:4654 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7107,45 +7107,44 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4667 +// line internal/php5/php5.y:4667 { - target := &ast.Identifier{ + yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4688 +// line internal/php5/php5.y:4687 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4695 +// line internal/php5/php5.y:4694 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4699 +// line internal/php5/php5.y:4698 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4703 +// line internal/php5/php5.y:4702 { name := &ast.NameName{ Node: ast.Node{ @@ -7160,7 +7159,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4716 +// line internal/php5/php5.y:4715 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7177,7 +7176,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4731 +// line internal/php5/php5.y:4730 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7193,7 +7192,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4745 +// line internal/php5/php5.y:4744 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7208,7 +7207,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4758 +// line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7222,13 +7221,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4770 +// line internal/php5/php5.y:4769 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4774 +// line internal/php5/php5.y:4773 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7240,13 +7239,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4784 +// line internal/php5/php5.y:4783 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4791 +// line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7260,7 +7259,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4803 +// line internal/php5/php5.y:4802 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7273,7 +7272,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4814 +// line internal/php5/php5.y:4813 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7286,7 +7285,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4825 +// line internal/php5/php5.y:4824 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7299,7 +7298,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4836 +// line internal/php5/php5.y:4835 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7312,7 +7311,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4847 +// line internal/php5/php5.y:4846 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7325,7 +7324,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4858 +// line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7338,31 +7337,31 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4869 +// line internal/php5/php5.y:4868 { - yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprBooleanNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + ExclamationTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4879 +// line internal/php5/php5.y:4878 { - yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprBitwiseNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + TildaTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4889 +// line internal/php5/php5.y:4888 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7375,7 +7374,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4900 +// line internal/php5/php5.y:4899 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7388,7 +7387,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4911 +// line internal/php5/php5.y:4910 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7401,7 +7400,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4922 +// line internal/php5/php5.y:4921 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7414,7 +7413,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4933 +// line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7427,7 +7426,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4944 +// line internal/php5/php5.y:4943 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7440,7 +7439,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4955 +// line internal/php5/php5.y:4954 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7453,7 +7452,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4966 +// line internal/php5/php5.y:4965 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7466,7 +7465,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4977 +// line internal/php5/php5.y:4976 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7479,7 +7478,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4988 +// line internal/php5/php5.y:4987 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7492,7 +7491,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4999 +// line internal/php5/php5.y:4998 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7505,7 +7504,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5010 +// line internal/php5/php5.y:5009 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7518,7 +7517,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5021 +// line internal/php5/php5.y:5020 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7531,7 +7530,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5032 +// line internal/php5/php5.y:5031 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7544,7 +7543,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5043 +// line internal/php5/php5.y:5042 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7558,7 +7557,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5055 +// line internal/php5/php5.y:5054 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7571,7 +7570,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5066 +// line internal/php5/php5.y:5065 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7584,7 +7583,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5077 +// line internal/php5/php5.y:5076 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7597,7 +7596,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5088 +// line internal/php5/php5.y:5087 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7610,7 +7609,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5099 +// line internal/php5/php5.y:5098 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7624,7 +7623,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5111 +// line internal/php5/php5.y:5110 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7638,7 +7637,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5123 +// line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7650,7 +7649,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5133 +// line internal/php5/php5.y:5132 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7662,7 +7661,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5143 +// line internal/php5/php5.y:5142 { yyVAL.node = yyDollar[2].node @@ -7672,13 +7671,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5154 +// line internal/php5/php5.y:5153 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5158 +// line internal/php5/php5.y:5157 { name := &ast.NameName{ Node: ast.Node{ @@ -7693,7 +7692,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5171 +// line internal/php5/php5.y:5170 { name := &ast.NameRelative{ Node: ast.Node{ @@ -7710,7 +7709,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5186 +// line internal/php5/php5.y:5185 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -7726,7 +7725,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5203 +// line internal/php5/php5.y:5202 { name := &ast.Identifier{ Node: ast.Node{ @@ -7745,25 +7744,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5220 +// line internal/php5/php5.y:5219 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5224 +// line internal/php5/php5.y:5223 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5228 +// line internal/php5/php5.y:5227 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5232 +// line internal/php5/php5.y:5231 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7776,7 +7775,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5243 +// line internal/php5/php5.y:5242 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7789,7 +7788,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5254 +// line internal/php5/php5.y:5253 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7801,13 +7800,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5267 +// line internal/php5/php5.y:5266 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5271 +// line internal/php5/php5.y:5270 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7818,19 +7817,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5283 +// line internal/php5/php5.y:5282 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5287 +// line internal/php5/php5.y:5286 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5294 +// line internal/php5/php5.y:5293 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7848,7 +7847,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5310 +// line internal/php5/php5.y:5309 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7864,7 +7863,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5324 +// line internal/php5/php5.y:5323 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7881,7 +7880,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5339 +// line internal/php5/php5.y:5338 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7896,19 +7895,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5355 +// line internal/php5/php5.y:5354 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5359 +// line internal/php5/php5.y:5358 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5366 +// line internal/php5/php5.y:5365 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7925,7 +7924,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5381 +// line internal/php5/php5.y:5380 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7942,25 +7941,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5400 +// line internal/php5/php5.y:5399 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5408 +// line internal/php5/php5.y:5407 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5415 +// line internal/php5/php5.y:5414 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5422 +// line internal/php5/php5.y:5421 { yyVAL.node = yyDollar[1].node @@ -8018,25 +8017,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5478 +// line internal/php5/php5.y:5477 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5485 +// line internal/php5/php5.y:5484 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5489 +// line internal/php5/php5.y:5488 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5497 +// line internal/php5/php5.y:5496 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8050,7 +8049,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5512 +// line internal/php5/php5.y:5511 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8066,7 +8065,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5526 +// line internal/php5/php5.y:5525 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8082,7 +8081,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5543 +// line internal/php5/php5.y:5542 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8091,31 +8090,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5553 +// line internal/php5/php5.y:5552 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5557 +// line internal/php5/php5.y:5556 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5561 +// line internal/php5/php5.y:5560 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5568 +// line internal/php5/php5.y:5567 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5572 +// line internal/php5/php5.y:5571 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8127,7 +8126,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5585 +// line internal/php5/php5.y:5584 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8140,7 +8139,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5596 +// line internal/php5/php5.y:5595 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8153,13 +8152,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5609 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5617 +// line internal/php5/php5.y:5616 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8173,7 +8172,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5629 +// line internal/php5/php5.y:5628 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8187,31 +8186,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5644 +// line internal/php5/php5.y:5643 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5648 +// line internal/php5/php5.y:5647 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5652 +// line internal/php5/php5.y:5651 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5660 +// line internal/php5/php5.y:5659 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5663 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8223,13 +8222,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5674 +// line internal/php5/php5.y:5673 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5681 +// line internal/php5/php5.y:5680 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8243,7 +8242,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5693 +// line internal/php5/php5.y:5692 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8257,13 +8256,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5705 +// line internal/php5/php5.y:5704 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5713 +// line internal/php5/php5.y:5712 { name := &ast.Identifier{ Node: ast.Node{ @@ -8282,7 +8281,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5730 +// line internal/php5/php5.y:5729 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8296,25 +8295,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5745 +// line internal/php5/php5.y:5744 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5749 +// line internal/php5/php5.y:5748 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5757 +// line internal/php5/php5.y:5756 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5761 +// line internal/php5/php5.y:5760 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8324,7 +8323,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5771 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8340,7 +8339,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5786 +// line internal/php5/php5.y:5785 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8356,7 +8355,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5800 +// line internal/php5/php5.y:5799 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8366,7 +8365,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5811 +// line internal/php5/php5.y:5810 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8378,7 +8377,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5821 +// line internal/php5/php5.y:5820 { yyVAL.node = yyDollar[2].node @@ -8391,7 +8390,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5835 +// line internal/php5/php5.y:5834 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8404,7 +8403,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5846 +// line internal/php5/php5.y:5845 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8421,7 +8420,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5864 +// line internal/php5/php5.y:5863 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8430,7 +8429,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5871 +// line internal/php5/php5.y:5870 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8438,7 +8437,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5881 +// line internal/php5/php5.y:5880 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8449,7 +8448,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5890 +// line internal/php5/php5.y:5889 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8476,19 +8475,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5915 +// line internal/php5/php5.y:5914 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5923 +// line internal/php5/php5.y:5922 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5927 +// line internal/php5/php5.y:5926 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8499,7 +8498,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5939 +// line internal/php5/php5.y:5938 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8517,7 +8516,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5955 +// line internal/php5/php5.y:5954 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8533,7 +8532,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5969 +// line internal/php5/php5.y:5968 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8550,7 +8549,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5984 +// line internal/php5/php5.y:5983 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8565,7 +8564,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5997 +// line internal/php5/php5.y:5996 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8588,7 +8587,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6018 +// line internal/php5/php5.y:6017 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8609,7 +8608,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6037 +// line internal/php5/php5.y:6036 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8631,7 +8630,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6057 +// line internal/php5/php5.y:6056 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8651,13 +8650,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6078 +// line internal/php5/php5.y:6077 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6082 +// line internal/php5/php5.y:6081 { yyVAL.list = append( yyDollar[1].list, @@ -8672,13 +8671,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6095 +// line internal/php5/php5.y:6094 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6099 +// line internal/php5/php5.y:6098 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8693,7 +8692,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6115 +// line internal/php5/php5.y:6114 { name := &ast.Identifier{ Node: ast.Node{ @@ -8712,7 +8711,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6132 +// line internal/php5/php5.y:6131 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8737,7 +8736,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6155 +// line internal/php5/php5.y:6154 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8765,7 +8764,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6181 +// line internal/php5/php5.y:6180 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8780,7 +8779,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6194 +// line internal/php5/php5.y:6193 { name := &ast.Identifier{ Node: ast.Node{ @@ -8802,7 +8801,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6214 +// line internal/php5/php5.y:6213 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8829,7 +8828,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6239 +// line internal/php5/php5.y:6238 { yyVAL.node = yyDollar[2].node @@ -8839,7 +8838,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6250 +// line internal/php5/php5.y:6249 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8851,7 +8850,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6260 +// line internal/php5/php5.y:6259 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8880,7 +8879,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6287 +// line internal/php5/php5.y:6286 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8899,7 +8898,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6307 +// line internal/php5/php5.y:6306 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8913,7 +8912,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6319 +// line internal/php5/php5.y:6318 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8935,7 +8934,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6339 +// line internal/php5/php5.y:6338 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -8957,7 +8956,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6359 +// line internal/php5/php5.y:6358 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8969,7 +8968,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6369 +// line internal/php5/php5.y:6368 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8981,7 +8980,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6379 +// line internal/php5/php5.y:6378 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -9003,7 +9002,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6399 +// line internal/php5/php5.y:6398 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9015,7 +9014,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6409 +// line internal/php5/php5.y:6408 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9027,13 +9026,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6422 +// line internal/php5/php5.y:6421 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6426 +// line internal/php5/php5.y:6425 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9042,95 +9041,91 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6436 +// line internal/php5/php5.y:6435 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6440 +// line internal/php5/php5.y:6439 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6447 +// line internal/php5/php5.y:6446 { - target := &ast.Identifier{ + yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6465 +// line internal/php5/php5.y:6463 { - target := &ast.Identifier{ + yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6486 +// line internal/php5/php5.y:6483 { - target := &ast.Identifier{ + yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6507 +// line internal/php5/php5.y:6503 { - target := &ast.Identifier{ + yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } } goto yystack /* stack new state and value */ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 6989c2c..e06b9ac 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3220,13 +3220,13 @@ expr_without_variable: } | T_CLONE expr { - $$ = &ast.ExprClone{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprClone{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CloneTkn: $1, + Expr: $2, + } } | variable T_PLUS_EQUAL expr { @@ -3609,23 +3609,23 @@ expr_without_variable: } | '!' expr { - $$ = &ast.ExprBooleanNot{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprBooleanNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + ExclamationTkn: $1, + Expr: $2, + } } | '~' expr { - $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprBitwiseNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + TildaTkn: $1, + Expr: $2, + } } | expr T_IS_IDENTICAL expr { @@ -4665,21 +4665,20 @@ common_scalar: static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ + $$ = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; @@ -4867,23 +4866,23 @@ static_operation: } | '!' static_scalar_value { - $$ = &ast.ExprBooleanNot{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprBooleanNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + ExclamationTkn: $1, + Expr: $2, + } } | '~' static_scalar_value { - $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprBitwiseNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + TildaTkn: $1, + Expr: $2, + } } | static_scalar_value '|' static_scalar_value { @@ -6445,81 +6444,77 @@ isset_variable: class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ + $$ = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - target := &ast.Identifier{ + $$ = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { - target := &ast.Identifier{ + $$ = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { - target := &ast.Identifier{ + $$ = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index a4b4d5d..387a163 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5006 +// line internal/php7/php7.y:5004 // line yacctab:1 var yyExca = [...]int{ @@ -5309,13 +5309,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:2868 { - yyVAL.node = &ast.ExprClone{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprClone{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CloneTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 301: yyDollar = yyS[yypt-3 : yypt+1] @@ -5784,25 +5784,25 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:3269 { - yyVAL.node = &ast.ExprBooleanNot{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprBooleanNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + ExclamationTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 338: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:3279 { - yyVAL.node = &ast.ExprBitwiseNot{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprBitwiseNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + TildaTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 339: yyDollar = yyS[yypt-3 : yypt+1] @@ -6745,81 +6745,79 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4114 { - target := &ast.Identifier{ + yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4132 +// line internal/php7/php7.y:4131 { - target := &ast.Identifier{ + yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprClassConstFetch{ast.Node{}, yyDollar[1].node, target} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4153 +// line internal/php7/php7.y:4151 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4157 +// line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4164 +// line internal/php7/php7.y:4162 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4166 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4175 +// line internal/php7/php7.y:4173 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4180 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4186 +// line internal/php7/php7.y:4184 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6836,19 +6834,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4201 +// line internal/php7/php7.y:4199 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4208 +// line internal/php7/php7.y:4206 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4212 +// line internal/php7/php7.y:4210 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6865,19 +6863,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4227 +// line internal/php7/php7.y:4225 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4234 +// line internal/php7/php7.y:4232 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4238 +// line internal/php7/php7.y:4236 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6891,7 +6889,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4250 +// line internal/php7/php7.y:4248 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6905,7 +6903,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4262 +// line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6919,7 +6917,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4274 +// line internal/php7/php7.y:4272 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6932,25 +6930,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4285 +// line internal/php7/php7.y:4283 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4292 +// line internal/php7/php7.y:4290 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4296 +// line internal/php7/php7.y:4294 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4300 +// line internal/php7/php7.y:4298 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6963,7 +6961,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4314 +// line internal/php7/php7.y:4312 { name := &ast.Identifier{ Node: ast.Node{ @@ -6982,7 +6980,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4331 +// line internal/php7/php7.y:4329 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6996,7 +6994,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4343 +// line internal/php7/php7.y:4341 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7008,7 +7006,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4356 +// line internal/php7/php7.y:4354 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7021,7 +7019,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4367 +// line internal/php7/php7.y:4365 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,13 +7032,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4379 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4385 +// line internal/php7/php7.y:4383 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7054,7 +7052,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4397 +// line internal/php7/php7.y:4395 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7068,7 +7066,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4409 +// line internal/php7/php7.y:4407 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7081,7 +7079,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4420 +// line internal/php7/php7.y:4418 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7094,7 +7092,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4431 +// line internal/php7/php7.y:4429 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7107,7 +7105,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4443 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7119,7 +7117,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4455 +// line internal/php7/php7.y:4453 { yyVAL.node = yyDollar[2].node @@ -7129,13 +7127,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4463 +// line internal/php7/php7.y:4461 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 +// line internal/php7/php7.y:4468 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7147,7 +7145,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4480 +// line internal/php7/php7.y:4478 { yyVAL.node = yyDollar[2].node @@ -7157,13 +7155,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4488 +// line internal/php7/php7.y:4486 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4495 +// line internal/php7/php7.y:4493 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7176,19 +7174,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4509 +// line internal/php7/php7.y:4507 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4513 +// line internal/php7/php7.y:4511 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4520 +// line internal/php7/php7.y:4518 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7197,7 +7195,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4527 +// line internal/php7/php7.y:4525 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7205,7 +7203,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4536 +// line internal/php7/php7.y:4534 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7218,7 +7216,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4547 +// line internal/php7/php7.y:4545 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7229,7 +7227,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4556 +// line internal/php7/php7.y:4554 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7247,7 +7245,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4572 +// line internal/php7/php7.y:4570 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7263,7 +7261,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4586 +// line internal/php7/php7.y:4584 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7275,7 +7273,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4596 +// line internal/php7/php7.y:4594 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7297,7 +7295,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4616 +// line internal/php7/php7.y:4614 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7317,13 +7315,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4637 +// line internal/php7/php7.y:4635 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4641 +// line internal/php7/php7.y:4639 { yyVAL.list = append( yyDollar[1].list, @@ -7338,13 +7336,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4654 +// line internal/php7/php7.y:4652 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4658 +// line internal/php7/php7.y:4656 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7359,7 +7357,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4674 +// line internal/php7/php7.y:4672 { name := &ast.Identifier{ Node: ast.Node{ @@ -7378,7 +7376,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4691 +// line internal/php7/php7.y:4689 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7403,7 +7401,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4714 +// line internal/php7/php7.y:4712 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7431,7 +7429,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4740 +// line internal/php7/php7.y:4738 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7446,7 +7444,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4753 +// line internal/php7/php7.y:4751 { name := &ast.Identifier{ Node: ast.Node{ @@ -7468,7 +7466,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4773 +// line internal/php7/php7.y:4771 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7495,7 +7493,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4798 +// line internal/php7/php7.y:4796 { yyVAL.node = yyDollar[2].node @@ -7505,7 +7503,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4809 +// line internal/php7/php7.y:4807 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7517,7 +7515,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4819 +// line internal/php7/php7.y:4817 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7540,7 +7538,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4840 +// line internal/php7/php7.y:4838 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7568,7 +7566,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4866 +// line internal/php7/php7.y:4864 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7587,7 +7585,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4886 +// line internal/php7/php7.y:4884 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7605,7 +7603,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4902 +// line internal/php7/php7.y:4900 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7627,7 +7625,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4922 +// line internal/php7/php7.y:4920 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7639,7 +7637,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4932 +// line internal/php7/php7.y:4930 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7651,7 +7649,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4942 +// line internal/php7/php7.y:4940 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7673,7 +7671,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4962 +// line internal/php7/php7.y:4960 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7685,7 +7683,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4972 +// line internal/php7/php7.y:4970 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7697,13 +7695,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4985 +// line internal/php7/php7.y:4983 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4989 +// line internal/php7/php7.y:4987 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7712,7 +7710,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4999 +// line internal/php7/php7.y:4997 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index ffe6f94..7b12137 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2866,13 +2866,13 @@ expr_without_variable: } | T_CLONE expr { - $$ = &ast.ExprClone{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprClone{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CloneTkn: $1, + Expr: $2, + } } | variable T_PLUS_EQUAL expr { @@ -3267,23 +3267,23 @@ expr_without_variable: } | '!' expr { - $$ = &ast.ExprBooleanNot{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprBooleanNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + ExclamationTkn: $1, + Expr: $2, + } } | '~' expr { - $$ = &ast.ExprBitwiseNot{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprBitwiseNot{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + TildaTkn: $1, + Expr: $2, + } } | expr T_IS_IDENTICAL expr { @@ -4112,39 +4112,37 @@ constant: } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := &ast.Identifier{ + $$ = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { - target := &ast.Identifier{ + $$ = &ast.ExprClassConstFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($3), + Position: position.NewNodeTokenPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + ConstantName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprClassConstFetch{ast.Node{}, $1, target} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 990171c..31f5458 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1000,7 +1000,8 @@ func (n *ExprArrowFunction) Accept(v NodeVisitor) { // ExprBitwiseNot node type ExprBitwiseNot struct { Node - Expr Vertex + TildaTkn *token.Token + Expr Vertex } func (n *ExprBitwiseNot) Accept(v NodeVisitor) { @@ -1010,7 +1011,8 @@ func (n *ExprBitwiseNot) Accept(v NodeVisitor) { // ExprBooleanNot node type ExprBooleanNot struct { Node - Expr Vertex + ExclamationTkn *token.Token + Expr Vertex } func (n *ExprBooleanNot) Accept(v NodeVisitor) { @@ -1020,8 +1022,9 @@ func (n *ExprBooleanNot) Accept(v NodeVisitor) { // ExprClassConstFetch node type ExprClassConstFetch struct { Node - Class Vertex - ConstantName Vertex + Class Vertex + DoubleColonTkn *token.Token + ConstantName Vertex } func (n *ExprClassConstFetch) Accept(v NodeVisitor) { @@ -1031,7 +1034,8 @@ func (n *ExprClassConstFetch) Accept(v NodeVisitor) { // ExprClone node type ExprClone struct { Node - Expr Vertex + CloneTkn *token.Token + Expr Vertex } func (n *ExprClone) Accept(v NodeVisitor) { From 2d240e9475f4cf3061eb9f93d9abdbd1dd2a9c28 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 1 Dec 2020 11:12:56 +0200 Subject: [PATCH 084/140] [refactoring] update ast structure of "ClosureUse", "ConstFetch", "Empty" and "ErrorSuppress" nodes --- internal/php5/php5.go | 861 +++++++++++++++++++++--------------------- internal/php5/php5.y | 293 +++++++------- internal/php7/php7.go | 464 +++++++++++------------ internal/php7/php7.y | 80 ++-- pkg/ast/node.go | 14 +- 5 files changed, 853 insertions(+), 859 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 400b632..f22f338 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6521 +// line internal/php5/php5.y:6520 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -701,11 +701,11 @@ var yyAct = [...]int{ 836, 566, 1006, 39, 572, 1012, 531, 1005, 725, 1013, 341, 698, 531, 531, 993, 572, 1016, 518, 716, 538, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 929, 460, 259, 446, 231, 31, 231, 256, 654, - 531, 318, 296, 656, 655, 39, 260, 261, 449, 314, - 127, 39, 403, 657, 659, 660, 676, 677, 666, 575, - 147, 151, 155, 903, 401, 335, 165, 945, 478, 685, - 995, 1009, 483, 343, 198, 290, 394, 389, 939, 206, + 679, 460, 318, 259, 446, 231, 31, 231, 256, 654, + 531, 314, 296, 656, 655, 39, 260, 261, 449, 127, + 403, 39, 575, 657, 659, 660, 676, 677, 666, 903, + 147, 151, 155, 401, 335, 945, 165, 685, 478, 995, + 1009, 929, 483, 343, 198, 290, 394, 389, 939, 206, 896, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, @@ -1614,9 +1614,9 @@ var yyPgo = [...]int{ 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, - 1075, 41, 1073, 1072, 4, 1071, 1070, 17, 1069, 12, - 1067, 1065, 7, 21, 1064, 25, 1063, 1059, 1052, 14, - 39, 0, 1050, 1049, 1041, 391, 619, 1032, 1031, 1019, + 1075, 41, 1073, 1072, 4, 1071, 1070, 1069, 17, 1067, + 12, 1065, 1064, 7, 21, 1063, 25, 1059, 1052, 1050, + 14, 39, 0, 1049, 1041, 1032, 391, 619, 1031, 1019, 1011, 1010, 30, 52, 1008, 1007, 1002, 3, 1001, 15, 1000, 999, 996, 993, 992, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, @@ -1624,26 +1624,26 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 110, 110, 111, 111, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 112, 112, - 6, 6, 6, 6, 113, 113, 7, 7, 7, 7, - 114, 114, 8, 8, 8, 8, 55, 55, 115, 115, + 0, 151, 111, 111, 112, 112, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 113, 113, + 6, 6, 6, 6, 114, 114, 7, 7, 7, 7, + 115, 115, 8, 8, 8, 8, 55, 55, 116, 116, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 124, 124, 60, 60, 125, 125, 126, 126, 61, 88, 88, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 104, 104, 2, 108, 108, 107, 107, 105, 105, 103, - 103, 102, 102, 102, 100, 100, 99, 99, 59, 59, + 105, 105, 2, 109, 109, 108, 108, 106, 106, 104, + 104, 103, 103, 103, 101, 101, 100, 100, 59, 59, 89, 89, 92, 92, 92, 92, 123, 123, 123, 4, - 4, 101, 101, 119, 119, 120, 120, 56, 56, 57, + 4, 102, 102, 119, 119, 120, 120, 56, 56, 57, 57, 127, 127, 128, 128, 65, 65, 64, 64, 64, 64, 84, 84, 84, 93, 93, 70, 70, 70, 70, 82, 82, 29, 29, 29, 81, 81, 81, 81, 129, - 129, 67, 67, 67, 67, 69, 106, 106, 87, 87, - 132, 132, 133, 133, 71, 71, 72, 96, 96, 75, - 75, 74, 73, 73, 76, 76, 95, 95, 130, 130, + 129, 67, 67, 67, 67, 69, 107, 107, 87, 87, + 132, 132, 133, 133, 71, 71, 72, 97, 97, 75, + 75, 74, 73, 73, 76, 76, 96, 96, 130, 130, 131, 131, 134, 134, 77, 77, 77, 77, 77, 77, 86, 86, 86, 86, 68, 68, 85, 85, 122, 122, 121, 121, 138, 138, 136, 136, 137, 137, 137, 139, @@ -1655,8 +1655,8 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 109, 109, 118, - 118, 118, 118, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 110, 110, 95, + 95, 95, 95, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 135, 135, 135, 83, 83, 9, 9, 9, 9, 9, 9, 9, @@ -1666,16 +1666,16 @@ var yyR1 = [...]int{ 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 37, 37, 37, 37, 31, 31, 31, 31, 31, 31, - 31, 97, 97, 3, 3, 98, 98, 98, 98, 16, + 31, 98, 98, 3, 3, 99, 99, 99, 99, 16, 16, 50, 50, 18, 19, 20, 21, 21, 147, 147, 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, 144, 144, 41, 41, 148, 148, 94, 94, 40, 40, 40, 91, 91, 90, 90, 90, 90, 90, 90, 90, - 90, 116, 116, 116, 116, 35, 35, 35, 35, 35, + 90, 117, 117, 117, 117, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 117, 117, 38, 38, 32, 32, 33, + 39, 39, 39, 118, 118, 38, 38, 32, 32, 33, 34, } @@ -1736,7 +1736,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -110, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -111, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1746,10 +1746,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -111, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -112, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -111, 144, 83, 10, -112, 37, 39, - -6, -111, 83, 146, 160, 147, 10, -115, -50, 148, + 159, 12, 148, -112, 144, 83, 10, -113, 37, 39, + -6, -112, 83, 146, 160, 147, 10, -116, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1758,87 +1758,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -111, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -112, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -135, 17, -116, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -111, 80, 83, + 148, -50, -16, 150, 150, -135, 17, -117, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -112, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -116, 17, 17, 76, -116, 150, 148, -91, - -90, -16, 153, 150, 150, 83, -84, 148, -111, 79, + -16, 150, -117, 17, 17, 76, -117, 150, 148, -91, + -90, -16, 153, 150, 150, 83, -84, 148, -112, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -110, -111, 146, 160, -113, -7, -111, 83, -114, -8, - -111, 83, 29, -111, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -101, -27, 147, 21, -149, + -111, -112, 146, 160, -114, -7, -112, 83, -115, -8, + -112, 83, 29, -112, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -102, -27, 147, 21, -149, -122, -121, -16, -92, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -88, - -58, -21, -21, -17, -89, 10, -115, 146, 146, 10, - 148, -104, 56, -108, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -89, 10, -116, 146, 146, 10, + 148, -105, 56, -109, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -94, -40, -21, 60, 83, -111, 79, 79, 149, 149, + -94, -40, -21, 60, 83, -112, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -111, 58, -12, 79, - -117, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 10, 144, -83, -84, 79, 83, -112, 58, -12, 79, + -118, -38, -21, -17, -21, -16, -16, -15, 142, 76, 76, -15, -91, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -93, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -110, 145, -84, -6, 146, 160, 29, -111, - 146, 160, 29, -111, 10, 29, 162, -30, -79, -9, - -33, -111, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -119, -115, - -115, -50, 146, 160, -123, 146, -123, 146, -29, -16, + -16, 146, -111, 145, -84, -6, 146, 160, 29, -112, + 146, 160, 29, -112, 10, 29, 162, -30, -79, -9, + -33, -112, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -119, -116, + -116, -50, 146, 160, -123, 146, -123, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -127, -128, -65, -64, 61, - 62, -47, -111, 80, 83, -107, 57, -47, 144, -105, - -47, -17, -21, -21, 92, 149, 160, 148, -111, -139, + 62, -47, -112, 80, 83, -108, 57, -47, 144, -106, + -47, -17, -21, -21, 92, 149, 160, 148, -112, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -111, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -112, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -111, 148, -97, -98, -79, 17, 79, -79, + 152, 83, -112, 148, -98, -99, -79, 17, 79, -79, -79, -79, -79, -79, 149, -56, 94, 95, -120, 22, 146, -122, -16, 145, 32, 33, -123, 31, -123, 145, - 162, -127, -16, 146, -58, -102, -21, 153, 60, -102, + 162, -127, -16, 146, -58, -103, -21, 153, 60, -103, -59, -27, 147, 10, -30, -124, 42, -127, 149, 160, - -149, 83, -111, 144, -105, -129, 160, -45, 162, -40, + -149, 83, -112, 144, -106, -129, 160, -45, 162, -40, -94, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -111, -97, 151, -3, 160, 59, 10, 53, 149, 146, + -112, -98, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -103, 59, -21, 148, - -103, -115, 162, -60, 43, 148, 149, -109, 45, -65, - -150, 84, -111, -129, 145, -67, -130, -68, -69, -131, + 146, 145, 146, 31, -30, 149, -104, 59, -21, 148, + -104, -116, 162, -60, 43, 148, 149, -110, 45, -65, + -150, 84, -112, -129, 145, -67, -130, -68, -69, -131, -134, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, 147, 149, -79, -79, -27, 96, -50, 147, -122, -4, - -115, 146, -109, 149, -102, -94, 149, 28, -30, 144, + -116, 146, -110, 149, -103, -94, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -86, 12, 146, 160, - -1, -77, 10, -106, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -115, 149, -115, 144, -99, - -27, 147, 149, -99, 146, -115, 12, -115, -115, -118, + -1, -77, 10, -107, -47, 151, 145, 151, 151, -143, + -19, -79, 59, 146, 147, -116, 149, -116, 144, -100, + -27, 147, 149, -100, 146, -116, 12, -116, -116, -95, 12, 153, 162, 146, 160, 162, 10, -149, 162, -87, - 160, 146, 144, -79, -115, -100, -27, 147, -115, -115, + 160, 146, 144, -79, -116, -101, -27, 147, -116, -116, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -132, -133, -71, -72, -73, -74, - -75, -47, 10, -115, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -116, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -115, 12, -30, -127, -96, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -125, -126, -61, 42, -95, - 146, 144, -47, -61, 148, -115, -47, 145, 12, 149, - 144, -115, 145, + 146, -116, 12, -30, -127, -97, -47, -76, -77, 10, + 146, 145, 149, 160, 10, -125, -126, -61, 42, -96, + 146, 144, -47, -61, 148, -116, -47, 145, 12, 149, + 144, -116, 145, } var yyDef = [...]int{ @@ -6254,13 +6254,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:3892 { - yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprErrorSuppress{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + AtTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 298: yyDollar = yyS[yypt-1 : yypt+1] @@ -6512,107 +6512,116 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:4123 { - yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.SkippedTokens) + yyVAL.ClosureUse = &ast.ExprClosureUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + UseTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Uses: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].token, + } } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4138 +// line internal/php5/php5.y:4139 { - identifier := &ast.Identifier{ + variable := &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.list = append(yyDollar[1].list, variable) - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, variable) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4159 { - identifier := &ast.Identifier{ + reference := &ast.ExprReference{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - reference := &ast.ExprReference{ast.Node{}, variable} - yyVAL.list = append(yyDollar[1].list, reference) - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - reference.GetNode().Position = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, reference) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4179 +// line internal/php5/php5.y:4184 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.list = []ast.Vertex{variable} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4197 +// line internal/php5/php5.y:4203 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + }, + }, }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - reference := &ast.ExprReference{ast.Node{}, variable} - yyVAL.list = []ast.Vertex{reference} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - reference.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4221 +// line internal/php5/php5.y:4230 { name := &ast.NameName{ Node: ast.Node{ @@ -6627,7 +6636,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4234 +// line internal/php5/php5.y:4243 { name := &ast.NameRelative{ Node: ast.Node{ @@ -6644,7 +6653,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4249 +// line internal/php5/php5.y:4258 { name := &ast.NameFullyQualified{ Node: ast.Node{ @@ -6660,7 +6669,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4263 +// line internal/php5/php5.y:4272 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6673,7 +6682,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4274 +// line internal/php5/php5.y:4283 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6686,7 +6695,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4294 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6699,7 +6708,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4296 +// line internal/php5/php5.y:4305 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6712,7 +6721,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4307 +// line internal/php5/php5.y:4316 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6724,7 +6733,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4320 +// line internal/php5/php5.y:4329 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6736,7 +6745,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4330 +// line internal/php5/php5.y:4339 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6747,7 +6756,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4339 +// line internal/php5/php5.y:4348 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6760,7 +6769,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4350 +// line internal/php5/php5.y:4359 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6772,7 +6781,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4372 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6783,7 +6792,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4372 +// line internal/php5/php5.y:4381 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6796,7 +6805,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4383 +// line internal/php5/php5.y:4392 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6808,19 +6817,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4396 +// line internal/php5/php5.y:4405 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4400 +// line internal/php5/php5.y:4409 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4407 +// line internal/php5/php5.y:4416 { yyVAL.node = yyDollar[1].node @@ -6861,25 +6870,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4446 +// line internal/php5/php5.y:4455 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4454 +// line internal/php5/php5.y:4463 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4467 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4466 +// line internal/php5/php5.y:4475 { yyVAL.list = yyDollar[2].list @@ -6888,13 +6897,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4476 +// line internal/php5/php5.y:4485 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4480 +// line internal/php5/php5.y:4489 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6910,19 +6919,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4494 +// line internal/php5/php5.y:4503 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4510 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4505 +// line internal/php5/php5.y:4514 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6936,25 +6945,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4517 +// line internal/php5/php5.y:4526 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4533 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4528 +// line internal/php5/php5.y:4537 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4544 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6966,7 +6975,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4545 +// line internal/php5/php5.y:4554 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6978,7 +6987,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4555 +// line internal/php5/php5.y:4564 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6990,7 +6999,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4565 +// line internal/php5/php5.y:4574 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7002,7 +7011,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4575 +// line internal/php5/php5.y:4584 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7014,7 +7023,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4585 +// line internal/php5/php5.y:4594 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7026,7 +7035,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4595 +// line internal/php5/php5.y:4604 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7038,7 +7047,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4605 +// line internal/php5/php5.y:4614 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7050,7 +7059,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4615 +// line internal/php5/php5.y:4624 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7062,7 +7071,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4625 +// line internal/php5/php5.y:4634 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7074,7 +7083,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4635 +// line internal/php5/php5.y:4644 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7095,7 +7104,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4654 +// line internal/php5/php5.y:4663 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7107,7 +7116,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4667 +// line internal/php5/php5.y:4676 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7126,73 +7135,76 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4687 +// line internal/php5/php5.y:4696 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4694 +// line internal/php5/php5.y:4703 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4698 +// line internal/php5/php5.y:4707 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4702 +// line internal/php5/php5.y:4711 { - name := &ast.NameName{ + yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ Position: position.NewNodeListPosition(yyDollar[1].list), }, - Parts: yyDollar[1].list, + Const: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, } - yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(name) } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4715 +// line internal/php5/php5.y:4725 { - name := &ast.NameRelative{ + yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), }, - NsTkn: yyDollar[1].token, - NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Const: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + }, } - yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list) } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4730 +// line internal/php5/php5.y:4741 { - name := &ast.NameFullyQualified{ + yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), }, - NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Const: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + }, } - yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list) } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4744 +// line internal/php5/php5.y:4756 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7207,7 +7219,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4757 +// line internal/php5/php5.y:4769 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7221,13 +7233,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4769 +// line internal/php5/php5.y:4781 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4773 +// line internal/php5/php5.y:4785 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7239,13 +7251,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4783 +// line internal/php5/php5.y:4795 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4790 +// line internal/php5/php5.y:4802 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7259,7 +7271,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4802 +// line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7272,7 +7284,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4813 +// line internal/php5/php5.y:4825 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7285,7 +7297,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4824 +// line internal/php5/php5.y:4836 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7298,7 +7310,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4835 +// line internal/php5/php5.y:4847 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7311,7 +7323,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4846 +// line internal/php5/php5.y:4858 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7324,7 +7336,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4857 +// line internal/php5/php5.y:4869 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7337,7 +7349,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4868 +// line internal/php5/php5.y:4880 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7349,7 +7361,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4878 +// line internal/php5/php5.y:4890 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7361,7 +7373,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4888 +// line internal/php5/php5.y:4900 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7374,7 +7386,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4899 +// line internal/php5/php5.y:4911 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7387,7 +7399,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4910 +// line internal/php5/php5.y:4922 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7400,7 +7412,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4921 +// line internal/php5/php5.y:4933 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7413,7 +7425,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4932 +// line internal/php5/php5.y:4944 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7426,7 +7438,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4943 +// line internal/php5/php5.y:4955 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7439,7 +7451,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4954 +// line internal/php5/php5.y:4966 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7452,7 +7464,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4965 +// line internal/php5/php5.y:4977 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7465,7 +7477,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4976 +// line internal/php5/php5.y:4988 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7478,7 +7490,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4987 +// line internal/php5/php5.y:4999 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7491,7 +7503,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4998 +// line internal/php5/php5.y:5010 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7504,7 +7516,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5009 +// line internal/php5/php5.y:5021 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7517,7 +7529,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5020 +// line internal/php5/php5.y:5032 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7530,7 +7542,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5031 +// line internal/php5/php5.y:5043 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7543,7 +7555,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5042 +// line internal/php5/php5.y:5054 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7557,7 +7569,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5054 +// line internal/php5/php5.y:5066 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7570,7 +7582,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5065 +// line internal/php5/php5.y:5077 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7583,7 +7595,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5076 +// line internal/php5/php5.y:5088 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7596,7 +7608,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5087 +// line internal/php5/php5.y:5099 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7609,7 +7621,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5098 +// line internal/php5/php5.y:5110 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7623,7 +7635,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5110 +// line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7637,7 +7649,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5134 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7649,7 +7661,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5132 +// line internal/php5/php5.y:5144 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7661,7 +7673,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5142 +// line internal/php5/php5.y:5154 { yyVAL.node = yyDollar[2].node @@ -7671,61 +7683,64 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5153 +// line internal/php5/php5.y:5165 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5157 +// line internal/php5/php5.y:5169 { - name := &ast.NameName{ + yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ Position: position.NewNodeListPosition(yyDollar[1].list), }, - Parts: yyDollar[1].list, + Const: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, } - yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(name) } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5170 +// line internal/php5/php5.y:5183 { - name := &ast.NameRelative{ + yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), }, - NsTkn: yyDollar[1].token, - NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Const: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + }, } - yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(name) } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5185 +// line internal/php5/php5.y:5199 { - name := &ast.NameFullyQualified{ + yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), }, - NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Const: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + }, } - yyVAL.node = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(name) } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5202 +// line internal/php5/php5.y:5217 { name := &ast.Identifier{ Node: ast.Node{ @@ -7744,25 +7759,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5219 +// line internal/php5/php5.y:5234 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5223 +// line internal/php5/php5.y:5238 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5227 +// line internal/php5/php5.y:5242 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5231 +// line internal/php5/php5.y:5246 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7775,7 +7790,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5242 +// line internal/php5/php5.y:5257 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7788,7 +7803,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5253 +// line internal/php5/php5.y:5268 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7800,13 +7815,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5266 +// line internal/php5/php5.y:5281 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5270 +// line internal/php5/php5.y:5285 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7817,19 +7832,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5282 +// line internal/php5/php5.y:5297 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5286 +// line internal/php5/php5.y:5301 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5293 +// line internal/php5/php5.y:5308 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7847,7 +7862,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5309 +// line internal/php5/php5.y:5324 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7863,7 +7878,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5323 +// line internal/php5/php5.y:5338 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7880,7 +7895,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5338 +// line internal/php5/php5.y:5353 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7895,35 +7910,18 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5354 +// line internal/php5/php5.y:5369 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5358 +// line internal/php5/php5.y:5373 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5365 - { - yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, - } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) - } - case 432: - yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5380 { yyVAL.node = &ast.ParserBrackets{ @@ -7939,27 +7937,44 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } + case 432: + yyDollar = yyS[yypt-3 : yypt+1] +// line internal/php5/php5.y:5395 + { + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5399 - { - yyVAL.node = yyDollar[1].node - } - case 434: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5407 - { - yyVAL.node = yyDollar[1].node - } - case 435: - yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:5414 { yyVAL.node = yyDollar[1].node } + case 434: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5422 + { + yyVAL.node = yyDollar[1].node + } + case 435: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5429 + { + yyVAL.node = yyDollar[1].node + } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5421 +// line internal/php5/php5.y:5436 { yyVAL.node = yyDollar[1].node @@ -8017,25 +8032,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5477 +// line internal/php5/php5.y:5492 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5484 +// line internal/php5/php5.y:5499 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5488 +// line internal/php5/php5.y:5503 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5496 +// line internal/php5/php5.y:5511 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8049,7 +8064,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5511 +// line internal/php5/php5.y:5526 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8065,7 +8080,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5525 +// line internal/php5/php5.y:5540 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8081,7 +8096,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5542 +// line internal/php5/php5.y:5557 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8090,31 +8105,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5552 +// line internal/php5/php5.y:5567 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5556 +// line internal/php5/php5.y:5571 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5560 +// line internal/php5/php5.y:5575 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5567 +// line internal/php5/php5.y:5582 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5571 +// line internal/php5/php5.y:5586 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8126,7 +8141,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5584 +// line internal/php5/php5.y:5599 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8139,7 +8154,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5595 +// line internal/php5/php5.y:5610 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8152,13 +8167,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5609 +// line internal/php5/php5.y:5624 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5616 +// line internal/php5/php5.y:5631 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8172,7 +8187,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5628 +// line internal/php5/php5.y:5643 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8186,31 +8201,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5643 +// line internal/php5/php5.y:5658 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5647 +// line internal/php5/php5.y:5662 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5651 +// line internal/php5/php5.y:5666 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5659 +// line internal/php5/php5.y:5674 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5663 +// line internal/php5/php5.y:5678 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8222,13 +8237,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5673 +// line internal/php5/php5.y:5688 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5680 +// line internal/php5/php5.y:5695 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8242,7 +8257,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5692 +// line internal/php5/php5.y:5707 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8256,13 +8271,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5704 +// line internal/php5/php5.y:5719 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5712 +// line internal/php5/php5.y:5727 { name := &ast.Identifier{ Node: ast.Node{ @@ -8281,7 +8296,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5729 +// line internal/php5/php5.y:5744 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8295,25 +8310,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5744 +// line internal/php5/php5.y:5759 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5748 +// line internal/php5/php5.y:5763 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5756 +// line internal/php5/php5.y:5771 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5760 +// line internal/php5/php5.y:5775 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8323,7 +8338,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5771 +// line internal/php5/php5.y:5786 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8339,7 +8354,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5785 +// line internal/php5/php5.y:5800 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8355,7 +8370,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5799 +// line internal/php5/php5.y:5814 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8365,7 +8380,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5810 +// line internal/php5/php5.y:5825 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8377,7 +8392,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5820 +// line internal/php5/php5.y:5835 { yyVAL.node = yyDollar[2].node @@ -8390,7 +8405,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5834 +// line internal/php5/php5.y:5849 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8403,7 +8418,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5845 +// line internal/php5/php5.y:5860 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8420,7 +8435,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5863 +// line internal/php5/php5.y:5878 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8429,7 +8444,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5870 +// line internal/php5/php5.y:5885 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8437,7 +8452,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5880 +// line internal/php5/php5.y:5895 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8448,7 +8463,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5889 +// line internal/php5/php5.y:5904 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8475,19 +8490,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5914 +// line internal/php5/php5.y:5929 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5922 +// line internal/php5/php5.y:5937 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5926 +// line internal/php5/php5.y:5941 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8498,7 +8513,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5938 +// line internal/php5/php5.y:5953 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8516,7 +8531,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5954 +// line internal/php5/php5.y:5969 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8532,7 +8547,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5968 +// line internal/php5/php5.y:5983 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8549,7 +8564,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5983 +// line internal/php5/php5.y:5998 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8564,7 +8579,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:5996 +// line internal/php5/php5.y:6011 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8587,7 +8602,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6017 +// line internal/php5/php5.y:6032 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8608,7 +8623,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6036 +// line internal/php5/php5.y:6051 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8630,7 +8645,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6056 +// line internal/php5/php5.y:6071 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8650,13 +8665,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6077 +// line internal/php5/php5.y:6092 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6081 +// line internal/php5/php5.y:6096 { yyVAL.list = append( yyDollar[1].list, @@ -8671,13 +8686,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6094 +// line internal/php5/php5.y:6109 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6098 +// line internal/php5/php5.y:6113 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8692,7 +8707,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6114 +// line internal/php5/php5.y:6129 { name := &ast.Identifier{ Node: ast.Node{ @@ -8711,7 +8726,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6131 +// line internal/php5/php5.y:6146 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8736,7 +8751,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6154 +// line internal/php5/php5.y:6169 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8764,7 +8779,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6180 +// line internal/php5/php5.y:6195 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8779,7 +8794,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6193 +// line internal/php5/php5.y:6208 { name := &ast.Identifier{ Node: ast.Node{ @@ -8801,7 +8816,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6213 +// line internal/php5/php5.y:6228 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8828,7 +8843,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6238 +// line internal/php5/php5.y:6253 { yyVAL.node = yyDollar[2].node @@ -8838,7 +8853,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6249 +// line internal/php5/php5.y:6264 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8850,7 +8865,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6259 +// line internal/php5/php5.y:6274 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8879,7 +8894,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6286 +// line internal/php5/php5.y:6301 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8898,7 +8913,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6306 +// line internal/php5/php5.y:6321 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8912,51 +8927,35 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6318 +// line internal/php5/php5.y:6333 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + EmptyTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6338 +// line internal/php5/php5.y:6345 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + EmptyTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6358 +// line internal/php5/php5.y:6357 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -8968,7 +8967,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6368 +// line internal/php5/php5.y:6367 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -8980,7 +8979,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6378 +// line internal/php5/php5.y:6377 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -9002,7 +9001,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6398 +// line internal/php5/php5.y:6397 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9014,7 +9013,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6408 +// line internal/php5/php5.y:6407 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9026,13 +9025,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6421 +// line internal/php5/php5.y:6420 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6425 +// line internal/php5/php5.y:6424 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9041,19 +9040,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6435 +// line internal/php5/php5.y:6434 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6439 +// line internal/php5/php5.y:6438 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6446 +// line internal/php5/php5.y:6445 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9072,7 +9071,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6463 +// line internal/php5/php5.y:6462 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9091,7 +9090,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6483 +// line internal/php5/php5.y:6482 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9110,7 +9109,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6503 +// line internal/php5/php5.y:6502 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index e06b9ac..d38e937 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -239,7 +239,7 @@ import ( %type static_scalar_value static_operation static_var_list global_var_list %type ctor_arguments function_call_parameter_list echo_expr_list class_variable_declaration %type trait_adaptations unset_variables declare_list non_empty_array_pair_list array_pair_list -%type switch_case_list non_empty_function_call_parameter_list assignment_list +%type switch_case_list non_empty_function_call_parameter_list assignment_list lexical_var_list %type method_body trait_reference_list static_array_pair_list non_empty_static_array_pair_list %type foreach_statement for_statement while_statement %type foreach_variable foreach_optional_arg @@ -250,7 +250,7 @@ import ( %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations %type inner_statement_list encaps_list isset_variables -%type lexical_var_list elseif_list new_elseif_list non_empty_for_expr +%type elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list %type class_statement_list variable_modifiers method_modifiers @@ -3890,13 +3890,13 @@ expr_without_variable: } | '@' expr { - $$ = &ast.ExprErrorSuppress{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprErrorSuppress{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + AtTkn: $1, + Expr: $2, + } } | scalar { @@ -4121,98 +4121,107 @@ lexical_vars: } | T_USE '(' lexical_var_list ')' { - $$ = &ast.ExprClosureUse{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.SkippedTokens) + $$ = &ast.ExprClosureUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + UseTkn: $1, + OpenParenthesisTkn: $2, + Uses: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: $4, + } } ; lexical_var_list: lexical_var_list ',' T_VARIABLE { - identifier := &ast.Identifier{ + variable := &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($3), }, - IdentifierTkn: $3, - Value: $3.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = append($1, variable) - // save position - variable.GetNode().Position = position.NewTokenPosition($3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, variable) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) + $$ = $1 } | lexical_var_list ',' '&' T_VARIABLE { - identifier := &ast.Identifier{ + reference := &ast.ExprReference{ Node: ast.Node{ - Position: position.NewTokenPosition($4), + Position: position.NewTokensPosition($3, $4), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, }, - IdentifierTkn: $4, - Value: $4.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - reference := &ast.ExprReference{ast.Node{}, variable} - $$ = append($1, reference) - // save position - variable.GetNode().Position = position.NewTokenPosition($4) - reference.GetNode().Position = position.NewTokensPosition($3, $4) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, reference) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(reference, token.Start, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) + $$ = $1 } | T_VARIABLE { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, }, - IdentifierTkn: $1, - Value: $1.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = []ast.Vertex{variable} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | '&' T_VARIABLE { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $2), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + }, + }, }, - IdentifierTkn: $2, - Value: $2.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - reference := &ast.ExprReference{ast.Node{}, variable} - $$ = []ast.Vertex{reference} - - // save position - variable.GetNode().Position = position.NewTokenPosition($2) - reference.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating(reference, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } ; @@ -4700,45 +4709,48 @@ static_scalar_value: } | namespace_name { - name := &ast.NameName{ - Node: ast.Node{ + $$ = &ast.ExprConstFetch{ + Node: ast.Node{ Position: position.NewNodeListPosition($1), }, - Parts: $1, + Const: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, } - $$ = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewNodePosition(name) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - name := &ast.NameRelative{ - Node: ast.Node{ + $$ = &ast.ExprConstFetch{ + Node: ast.Node{ Position: position.NewTokenNodeListPosition($1, $3), }, - NsTkn: $1, - NsSeparatorTkn: $2, - Parts: $3, + Const: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + }, } - $$ = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $3) } | T_NS_SEPARATOR namespace_name { - name := &ast.NameFullyQualified{ - Node: ast.Node{ + $$ = &ast.ExprConstFetch{ + Node: ast.Node{ Position: position.NewTokenNodeListPosition($1, $2), }, - NsSeparatorTkn: $1, - Parts: $2, + Const: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + }, } - $$ = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $2) } | T_ARRAY '(' static_array_pair_list ')' { @@ -5155,45 +5167,48 @@ general_constant: } | namespace_name { - name := &ast.NameName{ - Node: ast.Node{ + $$ = &ast.ExprConstFetch{ + Node: ast.Node{ Position: position.NewNodeListPosition($1), }, - Parts: $1, + Const: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, } - $$ = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewNodePosition(name) } | T_NAMESPACE T_NS_SEPARATOR namespace_name { - name := &ast.NameRelative{ - Node: ast.Node{ + $$ = &ast.ExprConstFetch{ + Node: ast.Node{ Position: position.NewTokenNodeListPosition($1, $3), }, - NsTkn: $1, - NsSeparatorTkn: $2, - Parts: $3, + Const: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + }, } - $$ = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewNodePosition(name) } | T_NS_SEPARATOR namespace_name { - name := &ast.NameFullyQualified{ - Node: ast.Node{ + $$ = &ast.ExprConstFetch{ + Node: ast.Node{ Position: position.NewTokenNodeListPosition($1, $2), }, - NsSeparatorTkn: $1, - Parts: $2, + Const: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + }, } - $$ = &ast.ExprConstFetch{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewNodePosition(name) } ; @@ -6316,43 +6331,27 @@ internal_functions_in_yacc: } | T_EMPTY '(' variable ')' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.ExprEmpty{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), + Position: position.NewTokensPosition($1, $4), }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, + EmptyTkn: $1, + OpenParenthesisTkn: $2, + Expr: $3, + CloseParenthesisTkn: $4, } - $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_EMPTY '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.ExprEmpty{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), + Position: position.NewTokensPosition($1, $4), }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, + EmptyTkn: $1, + OpenParenthesisTkn: $2, + Expr: $3, + CloseParenthesisTkn: $4, } - $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_INCLUDE expr { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 387a163..c397bc8 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -344,7 +344,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5004 +// line internal/php7/php7.y:4998 // line yacctab:1 var yyExca = [...]int{ @@ -625,10 +625,10 @@ var yyAct = [...]int{ 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, - 780, 781, 856, 111, 744, 632, 528, 848, 865, 879, - 328, 533, 260, 261, 855, 841, 676, 255, 796, 385, - 371, 859, 136, 656, 852, 114, 934, 662, 845, 877, - 890, 891, 886, 227, 43, 42, 892, 893, 16, 885, + 780, 781, 856, 111, 744, 632, 528, 848, 879, 328, + 841, 533, 260, 261, 855, 676, 255, 796, 385, 371, + 656, 859, 136, 852, 934, 114, 662, 845, 227, 877, + 890, 891, 886, 43, 42, 865, 892, 893, 16, 885, 838, 237, 539, 853, 15, 897, 898, 730, 830, 872, 151, 606, 786, 896, 903, 271, 49, 905, 48, 217, 218, 902, 110, 50, 886, 908, 84, 82, 904, 72, @@ -1427,11 +1427,11 @@ var yyPgo = [...]int{ 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, 907, 905, 34, 890, 889, 8, 887, 80, 41, 886, 56, 49, 883, 882, 878, 876, 875, 86, 871, 870, - 868, 10, 864, 87, 862, 860, 858, 855, 12, 854, - 853, 46, 39, 40, 2, 16, 667, 43, 85, 848, - 847, 846, 13, 844, 843, 555, 840, 45, 71, 839, - 838, 6, 721, 20, 540, 837, 18, 836, 835, 36, - 830, 25, 33, 37, 829, 530, 828, 826, 99, 1, + 868, 10, 864, 87, 862, 860, 858, 855, 854, 12, + 853, 848, 46, 39, 40, 2, 16, 667, 43, 85, + 847, 846, 844, 13, 843, 840, 555, 839, 45, 71, + 838, 837, 6, 721, 20, 540, 836, 18, 835, 830, + 36, 829, 25, 33, 37, 828, 530, 826, 99, 1, 3, 825, 17, 824, 817, 810, 809, 804, 28, } @@ -1444,28 +1444,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, - 118, 106, 106, 10, 10, 10, 9, 9, 9, 9, + 118, 107, 107, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 102, 102, 16, 16, 18, 18, 7, 7, 112, - 112, 111, 111, 115, 115, 17, 17, 20, 20, 19, + 9, 103, 103, 16, 16, 18, 18, 7, 7, 113, + 113, 112, 112, 116, 116, 17, 17, 20, 20, 19, 19, 73, 73, 119, 119, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 107, 107, 70, 70, - 26, 26, 96, 96, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 86, 86, 14, 15, 97, 97, - 99, 99, 98, 98, 103, 103, 103, 103, 93, 93, - 92, 92, 25, 25, 90, 90, 90, 90, 113, 113, - 113, 8, 8, 94, 94, 77, 77, 72, 72, 79, - 79, 76, 76, 120, 120, 121, 121, 29, 29, 30, - 30, 85, 85, 83, 83, 83, 84, 84, 87, 87, + 11, 11, 11, 11, 11, 11, 108, 108, 70, 70, + 26, 26, 97, 97, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 87, 87, 14, 15, 98, 98, + 100, 100, 99, 99, 104, 104, 104, 104, 94, 94, + 93, 93, 25, 25, 91, 91, 91, 91, 114, 114, + 114, 8, 8, 95, 95, 78, 78, 72, 72, 80, + 80, 76, 76, 120, 120, 121, 121, 29, 29, 30, + 30, 86, 86, 84, 84, 84, 85, 85, 88, 88, 74, 74, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 122, 122, 37, 37, 37, 37, 71, 71, 89, - 89, 89, 114, 114, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 91, 91, 124, 124, 123, 123, - 125, 125, 101, 101, 101, 101, 101, 101, 75, 75, - 43, 43, 108, 108, 78, 21, 69, 69, 44, 109, - 109, 110, 110, 46, 45, 45, 32, 32, 32, 32, + 36, 122, 122, 37, 37, 37, 37, 71, 71, 90, + 90, 90, 115, 115, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 92, 92, 124, 124, 123, 123, + 125, 125, 102, 102, 102, 102, 102, 102, 75, 75, + 43, 43, 109, 109, 79, 21, 69, 69, 44, 110, + 110, 111, 111, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1473,19 +1473,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 95, 95, 128, 3, 3, 100, 100, - 116, 116, 55, 55, 56, 56, 56, 56, 47, 47, - 48, 48, 53, 53, 105, 105, 105, 88, 88, 60, + 32, 32, 32, 96, 96, 128, 3, 3, 101, 101, + 77, 77, 55, 55, 56, 56, 56, 56, 47, 47, + 48, 48, 53, 53, 106, 106, 106, 89, 89, 60, 60, 60, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 61, 61, 61, 23, 23, 24, 24, 59, 62, 62, 62, 63, 63, 63, 64, 64, 64, 64, 64, 64, 28, 28, 28, 49, 49, 49, 65, 65, 66, 66, 66, 66, - 66, 66, 57, 57, 57, 58, 58, 58, 52, 81, - 81, 51, 51, 80, 80, 80, 80, 80, 80, 80, - 104, 104, 104, 104, 67, 67, 67, 67, 67, 67, + 66, 66, 57, 57, 57, 58, 58, 58, 52, 82, + 82, 51, 51, 81, 81, 81, 81, 81, 81, 81, + 105, 105, 105, 105, 67, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 50, 50, 50, 50, 50, - 50, 50, 117, 117, 82, + 50, 50, 117, 117, 83, } var yyR2 = [...]int{ @@ -1546,41 +1546,41 @@ var yyChk = [...]int{ 52, 80, 45, 39, 144, -72, -76, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -77, -79, -28, -32, -86, 7, -64, -65, + 54, 55, -78, -80, -28, -32, -87, 7, -64, -65, -62, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -54, 143, 97, 98, 107, -95, 100, 101, + 6, 158, -54, 143, 97, 98, 107, -96, 100, 101, -49, -61, -56, -47, -59, -60, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -63, 61, 18, -106, 83, 148, 83, -106, 144, 10, - -18, -102, -115, -106, 83, 37, 39, -19, -20, -73, + -63, 61, 18, -107, 83, 148, 83, -107, 144, 10, + -18, -103, -116, -107, 83, 37, 39, -19, -20, -73, -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -95, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -96, -36, 12, -69, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -86, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -87, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -52, -51, -81, -80, -23, 153, + 150, 144, 58, 148, -52, -51, -82, -81, -23, 153, 84, 60, -23, -28, -61, 148, -60, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -53, 148, -23, -105, 17, -104, -67, 12, + -23, -23, -53, 148, -23, -106, 17, -105, -67, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -66, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -104, -104, 17, -3, 144, -49, - -87, 148, -87, 148, 83, -106, 149, -106, 146, 144, - -118, 146, -16, -115, -106, 83, 146, 160, 83, 29, - -106, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -109, -110, -23, + -23, -23, 17, 76, -105, -105, 17, -3, 144, -49, + -88, 148, -88, 148, 83, -107, 149, -107, 146, 144, + -118, 146, -16, -116, -107, 83, 146, 160, 83, 29, + -107, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -110, -111, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -96, -27, -28, -23, -73, -119, 146, 146, 10, - -128, 10, -97, 56, -128, -99, 56, 148, -11, 148, + -23, -97, -27, -28, -23, -73, -119, 146, 146, 10, + -128, 10, -98, 56, -128, -100, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -58, 10, 144, -49, -52, 151, 160, 59, -28, -23, @@ -1594,48 +1594,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -57, -6, -49, - -88, -87, 79, 150, 144, 58, 79, -88, -117, -82, + -89, -88, 79, 150, 144, 58, 79, -89, -117, -83, -23, -23, -23, 76, 76, 142, 148, -23, 149, -74, -31, -23, 84, -52, 10, 146, -118, 145, 146, 146, - 83, -106, -19, 83, -106, 144, 10, 83, -21, -23, + 83, -107, -19, 83, -107, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -97, - -98, 57, -10, 144, -128, -71, -10, -23, -23, -119, - -23, 149, 151, 145, -87, -23, 149, 162, -81, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -98, + -99, 57, -10, 144, -128, -71, -10, -23, -23, -119, + -23, 149, 151, 145, -88, -23, 149, 162, -82, -23, 153, 60, -52, 149, 151, 149, -68, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -87, -23, - -87, -49, -24, -23, -58, -49, -97, -7, 160, 149, - 149, -120, -121, -29, -30, -85, -83, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -112, - -17, -20, -102, 144, -128, 149, -94, -11, 147, -23, - -109, -23, -90, 144, 147, -23, 149, -27, -103, -28, - 153, 60, 150, -25, -11, 147, -107, 148, -120, -98, + 12, 10, 145, 145, 150, 145, -23, 151, -88, -23, + -88, -49, -24, -23, -58, -49, -98, -7, 160, 149, + 149, -120, -121, -29, -30, -86, -84, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -113, + -17, -20, -103, 144, -128, 149, -95, -11, 147, -23, + -110, -23, -91, 144, 147, -23, 149, -27, -104, -28, + 153, 60, 150, -25, -11, 147, -108, 148, -120, -99, -128, -71, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -98, 149, -82, 149, 160, -1, 153, -83, - 149, -31, -111, -20, 144, -7, 160, -20, -112, 146, - -119, 149, 146, -113, 146, -113, 146, 146, 149, 59, + 151, 145, -99, 149, -83, 149, 160, -1, 153, -84, + 149, -31, -112, -20, 144, -7, 160, -20, -113, 146, + -119, 149, 146, -114, 146, -114, 146, 146, 149, 59, -28, 148, -52, -119, -26, 42, 43, -120, 149, -128, - 144, 145, -37, -124, -123, 45, -125, 48, -101, 104, + 144, 145, -37, -124, -123, 45, -125, 48, -102, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -119, -23, -52, 151, -128, -84, 147, -29, -2, 84, - -7, 160, -111, 145, -17, -7, 22, 146, -109, 145, - 32, 33, -113, 31, -113, -92, -11, 147, -103, -28, - -52, 151, 28, 148, 144, 149, -100, 45, 144, -122, - -30, 39, 37, -71, -101, 145, -119, 149, 145, 144, - -128, -85, 12, 145, -20, -7, 145, 146, 149, -23, + -119, -23, -52, 151, -128, -85, 147, -29, -2, 84, + -7, 160, -112, 145, -17, -7, 22, 146, -110, 145, + 32, 33, -114, 31, -114, -93, -11, 147, -104, -28, + -52, 151, 28, 148, 144, 149, -101, 45, 144, -122, + -30, 39, 37, -71, -102, 145, -119, 149, 145, 144, + -128, -86, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, - -70, -10, -119, -84, -84, 148, -122, 145, -75, -43, - 12, -108, -78, -6, -3, -89, 146, 144, -122, 59, - 162, 145, -93, -11, 147, -8, -119, 146, 26, -92, - 12, 161, 145, 144, 144, -116, -55, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -114, + -70, -10, -119, -85, -85, 148, -122, 145, -75, -43, + 12, -109, -79, -6, -3, -90, 146, 144, -122, 59, + 162, 145, -94, -11, 147, -8, -119, 146, 26, -93, + 12, 161, 145, 144, 144, -77, -55, 12, 153, 145, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -115, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, - 160, 12, -43, -23, -78, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -79, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -55, -128, - -128, 148, -71, 10, -4, -101, -6, 146, -119, -120, - -6, 145, 149, -84, -91, 146, 144, -119, 145, + -128, 148, -71, 10, -4, -102, -6, 146, -119, -120, + -6, 145, 149, -85, -92, 146, 144, -119, 145, } var yyDef = [...]int{ @@ -6120,13 +6120,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:3553 { - yyVAL.node = &ast.ExprErrorSuppress{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprErrorSuppress{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + AtTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 364: yyDollar = yyS[yypt-1 : yypt+1] @@ -6290,34 +6290,37 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3706 { - yyVAL.ClosureUse = &ast.ExprClosureUse{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.ClosureUse.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.Use, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.ClosureUse, token.LexicalVarList, yyDollar[4].token.SkippedTokens) + yyVAL.ClosureUse = &ast.ExprClosureUse{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + UseTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Uses: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].token, + } } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3721 +// line internal/php7/php7.y:3722 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3729 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3735 +// line internal/php7/php7.y:3738 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6336,7 +6339,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3752 +// line internal/php7/php7.y:3755 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6358,7 +6361,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3775 +// line internal/php7/php7.y:3778 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6370,7 +6373,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3785 +// line internal/php7/php7.y:3788 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6383,7 +6386,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3796 +// line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6396,7 +6399,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3807 +// line internal/php7/php7.y:3810 { yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} @@ -6408,7 +6411,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3820 +// line internal/php7/php7.y:3823 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6420,31 +6423,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3830 +// line internal/php7/php7.y:3833 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3837 +// line internal/php7/php7.y:3840 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3841 +// line internal/php7/php7.y:3844 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3848 +// line internal/php7/php7.y:3851 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3852 +// line internal/php7/php7.y:3855 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6461,13 +6464,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3870 +// line internal/php7/php7.y:3873 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3874 +// line internal/php7/php7.y:3877 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6481,25 +6484,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3886 +// line internal/php7/php7.y:3889 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3893 +// line internal/php7/php7.y:3896 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3897 +// line internal/php7/php7.y:3900 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3904 +// line internal/php7/php7.y:3907 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6514,7 +6517,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3917 +// line internal/php7/php7.y:3920 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6528,7 +6531,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3929 +// line internal/php7/php7.y:3932 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6540,7 +6543,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3942 +// line internal/php7/php7.y:3945 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6552,7 +6555,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3952 +// line internal/php7/php7.y:3955 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6564,7 +6567,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3962 +// line internal/php7/php7.y:3965 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6576,7 +6579,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3972 +// line internal/php7/php7.y:3975 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6588,7 +6591,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3982 +// line internal/php7/php7.y:3985 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6600,7 +6603,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3992 +// line internal/php7/php7.y:3995 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6612,7 +6615,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4002 +// line internal/php7/php7.y:4005 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6624,7 +6627,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4012 +// line internal/php7/php7.y:4015 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6636,7 +6639,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4022 +// line internal/php7/php7.y:4025 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6648,7 +6651,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4032 +// line internal/php7/php7.y:4035 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6660,7 +6663,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4042 +// line internal/php7/php7.y:4045 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6681,7 +6684,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4061 +// line internal/php7/php7.y:4064 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6693,7 +6696,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4071 +// line internal/php7/php7.y:4074 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6706,7 +6709,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4082 +// line internal/php7/php7.y:4085 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6719,31 +6722,30 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4093 +// line internal/php7/php7.y:4096 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4097 +// line internal/php7/php7.y:4100 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4104 +// line internal/php7/php7.y:4107 { - yyVAL.node = &ast.ExprConstFetch{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprConstFetch{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Const: yyDollar[1].node, + } } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4114 +// line internal/php7/php7.y:4116 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6762,7 +6764,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4131 +// line internal/php7/php7.y:4133 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6781,43 +6783,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4151 +// line internal/php7/php7.y:4153 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4155 +// line internal/php7/php7.y:4157 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4162 +// line internal/php7/php7.y:4164 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4166 +// line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4173 +// line internal/php7/php7.y:4175 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4180 +// line internal/php7/php7.y:4182 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4184 +// line internal/php7/php7.y:4186 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6834,19 +6836,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4199 +// line internal/php7/php7.y:4201 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4206 +// line internal/php7/php7.y:4208 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4210 +// line internal/php7/php7.y:4212 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6863,19 +6865,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4225 +// line internal/php7/php7.y:4227 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4232 +// line internal/php7/php7.y:4234 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4236 +// line internal/php7/php7.y:4238 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6889,7 +6891,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4248 +// line internal/php7/php7.y:4250 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6903,7 +6905,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4260 +// line internal/php7/php7.y:4262 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6917,7 +6919,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4272 +// line internal/php7/php7.y:4274 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6930,25 +6932,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4283 +// line internal/php7/php7.y:4285 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4290 +// line internal/php7/php7.y:4292 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4294 +// line internal/php7/php7.y:4296 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4298 +// line internal/php7/php7.y:4300 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6961,7 +6963,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4312 +// line internal/php7/php7.y:4314 { name := &ast.Identifier{ Node: ast.Node{ @@ -6980,7 +6982,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4329 +// line internal/php7/php7.y:4331 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6994,7 +6996,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4341 +// line internal/php7/php7.y:4343 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7006,7 +7008,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4354 +// line internal/php7/php7.y:4356 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7019,7 +7021,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4365 +// line internal/php7/php7.y:4367 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7032,13 +7034,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4379 +// line internal/php7/php7.y:4381 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4383 +// line internal/php7/php7.y:4385 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7052,7 +7054,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4395 +// line internal/php7/php7.y:4397 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7066,7 +7068,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4407 +// line internal/php7/php7.y:4409 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7079,7 +7081,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4418 +// line internal/php7/php7.y:4420 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7092,7 +7094,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4429 +// line internal/php7/php7.y:4431 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7105,7 +7107,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4443 +// line internal/php7/php7.y:4445 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7117,7 +7119,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4453 +// line internal/php7/php7.y:4455 { yyVAL.node = yyDollar[2].node @@ -7127,13 +7129,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4461 +// line internal/php7/php7.y:4463 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4468 +// line internal/php7/php7.y:4470 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7145,7 +7147,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4478 +// line internal/php7/php7.y:4480 { yyVAL.node = yyDollar[2].node @@ -7155,13 +7157,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4486 +// line internal/php7/php7.y:4488 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4493 +// line internal/php7/php7.y:4495 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7174,19 +7176,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4507 +// line internal/php7/php7.y:4509 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4511 +// line internal/php7/php7.y:4513 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4518 +// line internal/php7/php7.y:4520 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7195,7 +7197,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4525 +// line internal/php7/php7.y:4527 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7203,7 +7205,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4534 +// line internal/php7/php7.y:4536 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7216,7 +7218,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4545 +// line internal/php7/php7.y:4547 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7227,7 +7229,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4554 +// line internal/php7/php7.y:4556 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7245,7 +7247,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4570 +// line internal/php7/php7.y:4572 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7261,7 +7263,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4584 +// line internal/php7/php7.y:4586 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7273,7 +7275,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4594 +// line internal/php7/php7.y:4596 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7295,7 +7297,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4614 +// line internal/php7/php7.y:4616 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7315,13 +7317,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4635 +// line internal/php7/php7.y:4637 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4639 +// line internal/php7/php7.y:4641 { yyVAL.list = append( yyDollar[1].list, @@ -7336,13 +7338,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4652 +// line internal/php7/php7.y:4654 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4656 +// line internal/php7/php7.y:4658 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7357,7 +7359,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4672 +// line internal/php7/php7.y:4674 { name := &ast.Identifier{ Node: ast.Node{ @@ -7376,7 +7378,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4689 +// line internal/php7/php7.y:4691 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7401,7 +7403,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4712 +// line internal/php7/php7.y:4714 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7429,7 +7431,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4738 +// line internal/php7/php7.y:4740 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7444,7 +7446,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4751 +// line internal/php7/php7.y:4753 { name := &ast.Identifier{ Node: ast.Node{ @@ -7466,7 +7468,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4771 +// line internal/php7/php7.y:4773 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7493,7 +7495,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4796 +// line internal/php7/php7.y:4798 { yyVAL.node = yyDollar[2].node @@ -7503,7 +7505,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4807 +// line internal/php7/php7.y:4809 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7515,7 +7517,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4817 +// line internal/php7/php7.y:4819 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7538,7 +7540,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4838 +// line internal/php7/php7.y:4840 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7566,7 +7568,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4864 +// line internal/php7/php7.y:4866 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7585,7 +7587,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4884 +// line internal/php7/php7.y:4886 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7603,29 +7605,21 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4900 +// line internal/php7/php7.y:4902 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + EmptyTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprEmpty{ast.Node{}, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4920 +// line internal/php7/php7.y:4914 { yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} @@ -7637,7 +7631,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4930 +// line internal/php7/php7.y:4924 { yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} @@ -7649,7 +7643,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4940 +// line internal/php7/php7.y:4934 { exprBrackets := &ast.ParserBrackets{ Node: ast.Node{ @@ -7671,7 +7665,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4960 +// line internal/php7/php7.y:4954 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7683,7 +7677,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4970 +// line internal/php7/php7.y:4964 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7695,13 +7689,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4983 +// line internal/php7/php7.y:4977 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4987 +// line internal/php7/php7.y:4981 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7710,7 +7704,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4997 +// line internal/php7/php7.y:4991 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 7b12137..9c95662 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -248,7 +248,7 @@ import ( %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list name_list %type if_stmt const_list non_empty_argument_list property_list -%type alt_if_stmt +%type alt_if_stmt lexical_var_list %type if_stmt_without_else %type class_const_decl %type alt_if_stmt_without_else @@ -276,7 +276,7 @@ import ( %type for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations %type case_list trait_adaptation_list -%type use_declarations lexical_var_list isset_variables +%type use_declarations isset_variables %type top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list %type method_modifiers variable_modifiers @@ -3551,13 +3551,13 @@ expr_without_variable: } | '@' expr { - $$ = &ast.ExprErrorSuppress{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprErrorSuppress{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + AtTkn: $1, + Expr: $2, + } } | scalar { @@ -3704,29 +3704,32 @@ lexical_vars: } | T_USE '(' lexical_var_list ')' { - $$ = &ast.ExprClosureUse{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Use, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.LexicalVarList, $4.SkippedTokens) + $$ = &ast.ExprClosureUse{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + UseTkn: $1, + OpenParenthesisTkn: $2, + Uses: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: $4, + } } ; lexical_var_list: lexical_var_list ',' lexical_var { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | lexical_var { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; @@ -4102,13 +4105,12 @@ scalar: constant: name { - $$ = &ast.ExprConstFetch{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprConstFetch{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Const: $1, + } } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { @@ -4898,23 +4900,15 @@ internal_functions_in_yacc: } | T_EMPTY '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.ExprEmpty{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), + Position: position.NewTokensPosition($1, $4), }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, + EmptyTkn: $1, + OpenParenthesisTkn: $2, + Expr: $3, + CloseParenthesisTkn: $4, } - $$ = &ast.ExprEmpty{ast.Node{}, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_INCLUDE expr { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 31f5458..fb314cc 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1066,7 +1066,11 @@ func (n *ExprClosure) Accept(v NodeVisitor) { // ExprClosureUse node type ExprClosureUse struct { Node - Uses []Vertex + UseTkn *token.Token + OpenParenthesisTkn *token.Token + Uses []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token } func (n *ExprClosureUse) Accept(v NodeVisitor) { @@ -1086,7 +1090,10 @@ func (n *ExprConstFetch) Accept(v NodeVisitor) { // ExprEmpty node type ExprEmpty struct { Node - Expr Vertex + EmptyTkn *token.Token + OpenParenthesisTkn *token.Token + Expr Vertex + CloseParenthesisTkn *token.Token } func (n *ExprEmpty) Accept(v NodeVisitor) { @@ -1096,7 +1103,8 @@ func (n *ExprEmpty) Accept(v NodeVisitor) { // ExprErrorSuppress node type ExprErrorSuppress struct { Node - Expr Vertex + AtTkn *token.Token + Expr Vertex } func (n *ExprErrorSuppress) Accept(v NodeVisitor) { From 9b122de8bf290a30c98832b93a1129bc832e7519 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 1 Dec 2020 11:58:09 +0200 Subject: [PATCH 085/140] [refactoring] update ast structure of "Eval", "Exit", "FunctionCall", "Include" and "IncludeOnce" nodes --- internal/php5/php5.go | 1284 +++++++++++++++++---------------- internal/php5/php5.y | 148 ++-- internal/php7/php7.go | 1082 ++++++++++++++------------- internal/php7/php7.y | 98 ++- pkg/ast/node.go | 23 +- pkg/ast/traverser/dfs.go | 10 +- pkg/ast/visitor/dump.go | 5 - pkg/printer/pretty_printer.go | 8 +- pkg/printer/printer.go | 10 +- 9 files changed, 1333 insertions(+), 1335 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index f22f338..9b23a93 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -8,7 +8,6 @@ import __yyfmt__ "fmt" // line internal/php5/php5.y:2 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -16,7 +15,7 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php5/php5.y:15 +// line internal/php5/php5.y:14 type yySymType struct { yys int node ast.Vertex @@ -344,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6520 +// line internal/php5/php5.y:6524 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -2323,7 +2322,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:271 +// line internal/php5/php5.y:270 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2332,7 +2331,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:281 +// line internal/php5/php5.y:280 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2345,13 +2344,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:292 +// line internal/php5/php5.y:291 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:299 +// line internal/php5/php5.y:298 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2365,7 +2364,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:311 +// line internal/php5/php5.y:310 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2378,32 +2377,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:325 +// line internal/php5/php5.y:324 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:330 +// line internal/php5/php5.y:329 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 +// line internal/php5/php5.y:333 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 +// line internal/php5/php5.y:337 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:342 +// line internal/php5/php5.y:341 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2417,7 +2416,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:354 +// line internal/php5/php5.y:353 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2435,7 +2434,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:370 +// line internal/php5/php5.y:369 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2455,7 +2454,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:388 +// line internal/php5/php5.y:387 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2469,7 +2468,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:400 +// line internal/php5/php5.y:399 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2482,7 +2481,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:411 +// line internal/php5/php5.y:410 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2502,7 +2501,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:429 +// line internal/php5/php5.y:428 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2521,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:447 +// line internal/php5/php5.y:446 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2529,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:456 +// line internal/php5/php5.y:455 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2538,13 +2537,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:462 +// line internal/php5/php5.y:461 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:469 +// line internal/php5/php5.y:468 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2560,7 +2559,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:483 +// line internal/php5/php5.y:482 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2584,7 +2583,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:505 +// line internal/php5/php5.y:504 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2601,7 +2600,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:520 +// line internal/php5/php5.y:519 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2626,7 +2625,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:546 +// line internal/php5/php5.y:545 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2634,13 +2633,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:552 +// line internal/php5/php5.y:551 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:559 +// line internal/php5/php5.y:558 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2656,7 +2655,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:573 +// line internal/php5/php5.y:572 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2680,7 +2679,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:595 +// line internal/php5/php5.y:594 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2697,7 +2696,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:610 +// line internal/php5/php5.y:609 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2722,7 +2721,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:636 +// line internal/php5/php5.y:635 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2730,13 +2729,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:642 +// line internal/php5/php5.y:641 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:649 +// line internal/php5/php5.y:648 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2752,7 +2751,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:663 +// line internal/php5/php5.y:662 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2776,7 +2775,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:685 +// line internal/php5/php5.y:684 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2793,7 +2792,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:700 +// line internal/php5/php5.y:699 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2818,7 +2817,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:726 +// line internal/php5/php5.y:725 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2844,7 +2843,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:750 +// line internal/php5/php5.y:749 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2873,7 +2872,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:780 +// line internal/php5/php5.y:779 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2886,38 +2885,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:791 +// line internal/php5/php5.y:790 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:799 +// line internal/php5/php5.y:798 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:804 +// line internal/php5/php5.y:803 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:808 +// line internal/php5/php5.y:807 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:812 +// line internal/php5/php5.y:811 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:816 +// line internal/php5/php5.y:815 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2931,13 +2930,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:832 +// line internal/php5/php5.y:831 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:836 +// line internal/php5/php5.y:835 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2955,7 +2954,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:855 +// line internal/php5/php5.y:854 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2968,7 +2967,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:866 +// line internal/php5/php5.y:865 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2992,7 +2991,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:888 +// line internal/php5/php5.y:887 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3018,7 +3017,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:912 +// line internal/php5/php5.y:911 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3030,7 +3029,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:922 +// line internal/php5/php5.y:921 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3047,7 +3046,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:937 +// line internal/php5/php5.y:936 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3063,7 +3062,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:951 +// line internal/php5/php5.y:950 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3075,7 +3074,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:961 +// line internal/php5/php5.y:960 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3087,7 +3086,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:971 +// line internal/php5/php5.y:970 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3100,7 +3099,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:982 +// line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3112,7 +3111,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:992 +// line internal/php5/php5.y:991 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3125,7 +3124,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1003 +// line internal/php5/php5.y:1002 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3137,7 +3136,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1013 +// line internal/php5/php5.y:1012 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3150,7 +3149,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1024 +// line internal/php5/php5.y:1023 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3163,7 +3162,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1035 +// line internal/php5/php5.y:1034 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3175,7 +3174,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1045 +// line internal/php5/php5.y:1044 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3186,7 +3185,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1054 +// line internal/php5/php5.y:1053 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3197,7 +3196,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1063 +// line internal/php5/php5.y:1062 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3207,7 +3206,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1071 +// line internal/php5/php5.y:1070 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3219,7 +3218,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1081 +// line internal/php5/php5.y:1080 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3231,7 +3230,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1091 +// line internal/php5/php5.y:1090 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3243,7 +3242,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1101 +// line internal/php5/php5.y:1100 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3263,7 +3262,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1119 +// line internal/php5/php5.y:1118 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3283,7 +3282,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1137 +// line internal/php5/php5.y:1136 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3296,7 +3295,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1148 +// line internal/php5/php5.y:1147 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3307,7 +3306,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1157 +// line internal/php5/php5.y:1156 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3326,7 +3325,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1174 +// line internal/php5/php5.y:1173 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3339,7 +3338,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1185 +// line internal/php5/php5.y:1184 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3358,13 +3357,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1205 +// line internal/php5/php5.y:1204 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1209 +// line internal/php5/php5.y:1208 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3397,13 +3396,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1243 +// line internal/php5/php5.y:1242 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1247 +// line internal/php5/php5.y:1246 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3417,31 +3416,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1262 +// line internal/php5/php5.y:1261 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1266 +// line internal/php5/php5.y:1265 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1273 +// line internal/php5/php5.y:1272 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1277 +// line internal/php5/php5.y:1276 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1284 +// line internal/php5/php5.y:1283 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3473,7 +3472,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1317 +// line internal/php5/php5.y:1316 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3481,7 +3480,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1323 +// line internal/php5/php5.y:1322 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3490,49 +3489,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1333 +// line internal/php5/php5.y:1332 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1340 +// line internal/php5/php5.y:1339 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1347 +// line internal/php5/php5.y:1346 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1354 +// line internal/php5/php5.y:1353 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1358 +// line internal/php5/php5.y:1357 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1365 +// line internal/php5/php5.y:1364 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1369 +// line internal/php5/php5.y:1368 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1376 +// line internal/php5/php5.y:1375 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3557,7 +3556,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1402 +// line internal/php5/php5.y:1401 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3594,7 +3593,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1437 +// line internal/php5/php5.y:1436 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3616,7 +3615,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1461 +// line internal/php5/php5.y:1460 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3627,7 +3626,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1470 +// line internal/php5/php5.y:1469 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3646,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1488 +// line internal/php5/php5.y:1487 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3658,7 +3657,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1497 +// line internal/php5/php5.y:1496 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3678,13 +3677,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1518 +// line internal/php5/php5.y:1517 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1522 +// line internal/php5/php5.y:1521 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3696,19 +3695,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1535 +// line internal/php5/php5.y:1534 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1542 +// line internal/php5/php5.y:1541 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1546 +// line internal/php5/php5.y:1545 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3721,13 +3720,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1560 +// line internal/php5/php5.y:1559 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1564 +// line internal/php5/php5.y:1563 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3740,7 +3739,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1578 +// line internal/php5/php5.y:1577 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3748,7 +3747,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1584 +// line internal/php5/php5.y:1583 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3757,13 +3756,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1594 +// line internal/php5/php5.y:1593 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1598 +// line internal/php5/php5.y:1597 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3772,13 +3771,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1608 +// line internal/php5/php5.y:1607 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1612 +// line internal/php5/php5.y:1611 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3790,7 +3789,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1622 +// line internal/php5/php5.y:1621 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3812,7 +3811,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1645 +// line internal/php5/php5.y:1644 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3823,7 +3822,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1654 +// line internal/php5/php5.y:1653 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3843,7 +3842,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1675 +// line internal/php5/php5.y:1674 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3854,7 +3853,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1684 +// line internal/php5/php5.y:1683 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3874,7 +3873,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1706 +// line internal/php5/php5.y:1705 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3885,7 +3884,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1715 +// line internal/php5/php5.y:1714 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3905,7 +3904,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1737 +// line internal/php5/php5.y:1736 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3930,7 +3929,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1760 +// line internal/php5/php5.y:1759 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3957,7 +3956,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1789 +// line internal/php5/php5.y:1788 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3970,7 +3969,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1800 +// line internal/php5/php5.y:1799 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3984,7 +3983,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1812 +// line internal/php5/php5.y:1811 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3999,7 +3998,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1825 +// line internal/php5/php5.y:1824 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4015,13 +4014,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1843 +// line internal/php5/php5.y:1842 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1847 +// line internal/php5/php5.y:1846 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4035,7 +4034,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1859 +// line internal/php5/php5.y:1858 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4048,19 +4047,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1874 +// line internal/php5/php5.y:1873 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1878 +// line internal/php5/php5.y:1877 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1886 +// line internal/php5/php5.y:1885 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4071,7 +4070,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1895 +// line internal/php5/php5.y:1894 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4091,13 +4090,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1918 +// line internal/php5/php5.y:1917 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1922 +// line internal/php5/php5.y:1921 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4111,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1939 +// line internal/php5/php5.y:1938 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1943 +// line internal/php5/php5.y:1942 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4140,13 +4139,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1967 +// line internal/php5/php5.y:1966 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1971 +// line internal/php5/php5.y:1970 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4158,13 +4157,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1985 +// line internal/php5/php5.y:1984 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1989 +// line internal/php5/php5.y:1988 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4183,25 +4182,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2010 +// line internal/php5/php5.y:2009 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2014 +// line internal/php5/php5.y:2013 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2021 +// line internal/php5/php5.y:2020 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2025 +// line internal/php5/php5.y:2024 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4210,7 +4209,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2035 +// line internal/php5/php5.y:2034 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4264,7 +4263,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2087 +// line internal/php5/php5.y:2086 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4321,13 +4320,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2146 +// line internal/php5/php5.y:2145 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2150 +// line internal/php5/php5.y:2149 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4339,7 +4338,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2160 +// line internal/php5/php5.y:2159 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4351,13 +4350,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2170 +// line internal/php5/php5.y:2169 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2178 +// line internal/php5/php5.y:2177 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4369,7 +4368,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2188 +// line internal/php5/php5.y:2187 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4380,7 +4379,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2197 +// line internal/php5/php5.y:2196 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4400,7 +4399,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2219 +// line internal/php5/php5.y:2218 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4408,7 +4407,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2225 +// line internal/php5/php5.y:2224 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4417,7 +4416,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2235 +// line internal/php5/php5.y:2234 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4428,7 +4427,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2244 +// line internal/php5/php5.y:2243 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4439,7 +4438,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2253 +// line internal/php5/php5.y:2252 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4451,7 +4450,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2263 +// line internal/php5/php5.y:2262 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4463,7 +4462,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2276 +// line internal/php5/php5.y:2275 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4472,7 +4471,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2283 +// line internal/php5/php5.y:2282 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4480,7 +4479,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2293 +// line internal/php5/php5.y:2292 { name := &ast.Identifier{ Node: ast.Node{ @@ -4499,7 +4498,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2310 +// line internal/php5/php5.y:2309 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -4511,7 +4510,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2320 +// line internal/php5/php5.y:2319 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -4525,7 +4524,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2336 +// line internal/php5/php5.y:2335 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4554,7 +4553,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2363 +// line internal/php5/php5.y:2362 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4585,7 +4584,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2392 +// line internal/php5/php5.y:2391 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4615,7 +4614,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2420 +// line internal/php5/php5.y:2419 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4647,19 +4646,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2454 +// line internal/php5/php5.y:2453 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2458 +// line internal/php5/php5.y:2457 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2466 +// line internal/php5/php5.y:2465 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4673,7 +4672,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2478 +// line internal/php5/php5.y:2477 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4681,13 +4680,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2484 +// line internal/php5/php5.y:2483 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2488 +// line internal/php5/php5.y:2487 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4716,7 +4715,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2518 +// line internal/php5/php5.y:2517 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4730,7 +4729,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2533 +// line internal/php5/php5.y:2532 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4738,7 +4737,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2538 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4747,7 +4746,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2549 +// line internal/php5/php5.y:2548 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4758,7 +4757,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2558 +// line internal/php5/php5.y:2557 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4771,31 +4770,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2572 +// line internal/php5/php5.y:2571 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2576 +// line internal/php5/php5.y:2575 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2583 +// line internal/php5/php5.y:2582 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2587 +// line internal/php5/php5.y:2586 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2594 +// line internal/php5/php5.y:2593 { yyVAL.node = yyDollar[1].node @@ -4805,7 +4804,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2602 +// line internal/php5/php5.y:2601 { yyVAL.node = yyDollar[1].node @@ -4815,7 +4814,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2613 +// line internal/php5/php5.y:2612 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4829,7 +4828,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2628 +// line internal/php5/php5.y:2627 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4837,7 +4836,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2634 +// line internal/php5/php5.y:2633 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4846,7 +4845,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2644 +// line internal/php5/php5.y:2643 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4863,13 +4862,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2658 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2666 +// line internal/php5/php5.y:2665 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4888,7 +4887,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2686 +// line internal/php5/php5.y:2685 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4908,7 +4907,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2704 +// line internal/php5/php5.y:2703 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4921,19 +4920,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2718 +// line internal/php5/php5.y:2717 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2722 +// line internal/php5/php5.y:2721 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2729 +// line internal/php5/php5.y:2728 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4944,7 +4943,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2738 +// line internal/php5/php5.y:2737 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4957,13 +4956,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2752 +// line internal/php5/php5.y:2751 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2756 +// line internal/php5/php5.y:2755 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4977,31 +4976,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2771 +// line internal/php5/php5.y:2770 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2775 +// line internal/php5/php5.y:2774 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2782 +// line internal/php5/php5.y:2781 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2786 +// line internal/php5/php5.y:2785 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2793 +// line internal/php5/php5.y:2792 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5012,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2803 +// line internal/php5/php5.y:2802 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5025,7 +5024,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2813 +// line internal/php5/php5.y:2812 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5037,7 +5036,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2823 +// line internal/php5/php5.y:2822 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5049,7 +5048,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2833 +// line internal/php5/php5.y:2832 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5061,7 +5060,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2843 +// line internal/php5/php5.y:2842 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5073,7 +5072,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2856 +// line internal/php5/php5.y:2855 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5100,7 +5099,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2881 +// line internal/php5/php5.y:2880 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5129,7 +5128,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2908 +// line internal/php5/php5.y:2907 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5156,7 +5155,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2933 +// line internal/php5/php5.y:2932 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5184,7 +5183,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2962 +// line internal/php5/php5.y:2961 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5210,7 +5209,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2986 +// line internal/php5/php5.y:2985 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5239,7 +5238,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3016 +// line internal/php5/php5.y:3015 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5248,7 +5247,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3023 +// line internal/php5/php5.y:3022 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5256,19 +5255,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3033 +// line internal/php5/php5.y:3032 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3037 +// line internal/php5/php5.y:3036 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3044 +// line internal/php5/php5.y:3043 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5277,25 +5276,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3051 +// line internal/php5/php5.y:3050 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3058 +// line internal/php5/php5.y:3057 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3062 +// line internal/php5/php5.y:3061 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3069 +// line internal/php5/php5.y:3068 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5311,7 +5310,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3082 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5327,37 +5326,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3100 +// line internal/php5/php5.y:3099 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3104 +// line internal/php5/php5.y:3103 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3108 +// line internal/php5/php5.y:3107 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3115 +// line internal/php5/php5.y:3114 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3118 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3126 +// line internal/php5/php5.y:3125 { if yyDollar[3].node != nil { @@ -5373,7 +5372,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3143 +// line internal/php5/php5.y:3142 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -5406,7 +5405,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3174 +// line internal/php5/php5.y:3173 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5418,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3185 +// line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5433,7 +5432,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3197 +// line internal/php5/php5.y:3196 { var _new *ast.ExprNew @@ -5460,7 +5459,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3222 +// line internal/php5/php5.y:3221 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5472,7 +5471,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3232 +// line internal/php5/php5.y:3231 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5484,7 +5483,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3242 +// line internal/php5/php5.y:3241 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5497,7 +5496,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3253 +// line internal/php5/php5.y:3252 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5510,7 +5509,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3264 +// line internal/php5/php5.y:3263 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5523,7 +5522,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3275 +// line internal/php5/php5.y:3274 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5536,7 +5535,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3286 +// line internal/php5/php5.y:3285 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5548,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3297 +// line internal/php5/php5.y:3296 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5561,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3308 +// line internal/php5/php5.y:3307 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5574,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3319 +// line internal/php5/php5.y:3318 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5588,7 +5587,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3330 +// line internal/php5/php5.y:3329 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5601,7 +5600,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3341 +// line internal/php5/php5.y:3340 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5613,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3352 +// line internal/php5/php5.y:3351 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5626,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3363 +// line internal/php5/php5.y:3362 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5640,7 +5639,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3374 +// line internal/php5/php5.y:3373 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5652,7 +5651,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3384 +// line internal/php5/php5.y:3383 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5665,7 +5664,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3395 +// line internal/php5/php5.y:3394 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5677,7 +5676,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3405 +// line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5690,7 +5689,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3416 +// line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5703,7 +5702,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3427 +// line internal/php5/php5.y:3426 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5716,7 +5715,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3438 +// line internal/php5/php5.y:3437 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5729,7 +5728,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3449 +// line internal/php5/php5.y:3448 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5742,7 +5741,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3460 +// line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5755,7 +5754,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3471 +// line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5768,7 +5767,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3482 +// line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5781,7 +5780,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3493 +// line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5793,7 +5792,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3503 +// line internal/php5/php5.y:3502 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5806,7 +5805,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3514 +// line internal/php5/php5.y:3513 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5818,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3525 +// line internal/php5/php5.y:3524 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5831,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3536 +// line internal/php5/php5.y:3535 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5844,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3547 +// line internal/php5/php5.y:3546 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5857,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3558 +// line internal/php5/php5.y:3557 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5871,7 +5870,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3568 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5883,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3580 +// line internal/php5/php5.y:3579 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5896,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3590 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5909,7 +5908,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3601 +// line internal/php5/php5.y:3600 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5921,7 +5920,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3611 +// line internal/php5/php5.y:3610 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5933,7 +5932,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3621 +// line internal/php5/php5.y:3620 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5945,7 +5944,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3631 +// line internal/php5/php5.y:3630 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5958,7 +5957,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3642 +// line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5971,7 +5970,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3653 +// line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5984,7 +5983,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3664 +// line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5998,7 +5997,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3676 +// line internal/php5/php5.y:3675 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6011,7 +6010,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3687 +// line internal/php5/php5.y:3686 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6024,7 +6023,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3698 +// line internal/php5/php5.y:3697 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6037,7 +6036,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3709 +// line internal/php5/php5.y:3708 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6050,7 +6049,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3720 +// line internal/php5/php5.y:3719 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6063,19 +6062,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3731 +// line internal/php5/php5.y:3730 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3735 +// line internal/php5/php5.y:3734 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3739 +// line internal/php5/php5.y:3738 { yyVAL.node = yyDollar[2].node @@ -6107,7 +6106,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3769 +// line internal/php5/php5.y:3768 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6121,7 +6120,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3781 +// line internal/php5/php5.y:3780 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6135,13 +6134,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3793 +// line internal/php5/php5.y:3792 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3797 +// line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6154,7 +6153,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3808 +// line internal/php5/php5.y:3807 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6167,7 +6166,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3819 +// line internal/php5/php5.y:3818 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6180,7 +6179,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3830 +// line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6193,7 +6192,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3840 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6206,7 +6205,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6219,7 +6218,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3862 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6232,27 +6231,26 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3874 +// line internal/php5/php5.y:3873 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} - - if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { - yyVAL.node.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: yyDollar[1].token, } - // save position if yyDollar[2].node == nil { - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + exit.Node.Position = position.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = exit } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3892 +// line internal/php5/php5.y:3890 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6264,25 +6262,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3902 +// line internal/php5/php5.y:3900 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3904 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3908 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3914 +// line internal/php5/php5.y:3912 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6294,7 +6292,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3922 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6306,7 +6304,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3934 +// line internal/php5/php5.y:3932 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6318,7 +6316,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3944 +// line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6337,7 +6335,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3961 +// line internal/php5/php5.y:3959 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6357,7 +6355,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3980 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6369,7 +6367,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3992 +// line internal/php5/php5.y:3990 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6381,7 +6379,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4002 +// line internal/php5/php5.y:4000 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6394,7 +6392,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4013 +// line internal/php5/php5.y:4011 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6407,7 +6405,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4027 +// line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6421,7 +6419,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4037 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6435,7 +6433,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4051 +// line internal/php5/php5.y:4049 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6455,7 +6453,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4069 +// line internal/php5/php5.y:4067 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6469,7 +6467,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4084 +// line internal/php5/php5.y:4082 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6484,7 +6482,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4097 +// line internal/php5/php5.y:4095 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6498,19 +6496,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4112 +// line internal/php5/php5.y:4110 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4119 +// line internal/php5/php5.y:4117 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4123 +// line internal/php5/php5.y:4121 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6525,7 +6523,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4139 +// line internal/php5/php5.y:4137 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6547,7 +6545,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4159 +// line internal/php5/php5.y:4157 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6574,7 +6572,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4184 +// line internal/php5/php5.y:4182 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6595,7 +6593,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4203 +// line internal/php5/php5.y:4201 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6621,55 +6619,67 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4230 +// line internal/php5/php5.y:4228 { - name := &ast.NameName{ + yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[2].node), }, - Parts: yyDollar[1].list, + Function: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Parts: yyDollar[1].list, + }, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, } - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[2].node) } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4243 +// line internal/php5/php5.y:4245 { - name := &ast.NameRelative{ + yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), }, - NsTkn: yyDollar[1].token, - NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Function: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + }, + NsTkn: yyDollar[1].token, + NsSeparatorTkn: yyDollar[2].token, + Parts: yyDollar[3].list, + }, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[4].node) } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4258 +// line internal/php5/php5.y:4264 { - name := &ast.NameFullyQualified{ + yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Function: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + }, + NsSeparatorTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + }, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, } - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, name, yyDollar[3].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(name, yyDollar[3].node) } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4272 +// line internal/php5/php5.y:4282 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6682,7 +6692,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4283 +// line internal/php5/php5.y:4293 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6695,7 +6705,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4294 +// line internal/php5/php5.y:4304 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6708,7 +6718,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4315 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6721,19 +6731,21 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4316 +// line internal/php5/php5.y:4326 { - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + }, + Function: yyDollar[1].node, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4329 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6745,7 +6757,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4339 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6756,7 +6768,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4348 +// line internal/php5/php5.y:4360 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6769,7 +6781,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4359 +// line internal/php5/php5.y:4371 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6781,7 +6793,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4372 +// line internal/php5/php5.y:4384 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6792,7 +6804,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4381 +// line internal/php5/php5.y:4393 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6805,7 +6817,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4392 +// line internal/php5/php5.y:4404 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6817,19 +6829,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4405 +// line internal/php5/php5.y:4417 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4409 +// line internal/php5/php5.y:4421 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4416 +// line internal/php5/php5.y:4428 { yyVAL.node = yyDollar[1].node @@ -6870,25 +6882,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4455 +// line internal/php5/php5.y:4467 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4463 +// line internal/php5/php5.y:4475 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4467 +// line internal/php5/php5.y:4479 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4475 +// line internal/php5/php5.y:4487 { yyVAL.list = yyDollar[2].list @@ -6897,13 +6909,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4485 +// line internal/php5/php5.y:4497 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4489 +// line internal/php5/php5.y:4501 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6919,19 +6931,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4503 +// line internal/php5/php5.y:4515 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4522 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4514 +// line internal/php5/php5.y:4526 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6945,25 +6957,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4526 +// line internal/php5/php5.y:4538 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4533 +// line internal/php5/php5.y:4545 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4537 +// line internal/php5/php5.y:4549 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4544 +// line internal/php5/php5.y:4556 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6975,7 +6987,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4554 +// line internal/php5/php5.y:4566 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6987,7 +6999,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4564 +// line internal/php5/php5.y:4576 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6999,7 +7011,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4574 +// line internal/php5/php5.y:4586 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7011,7 +7023,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4584 +// line internal/php5/php5.y:4596 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7023,7 +7035,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4594 +// line internal/php5/php5.y:4606 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7035,7 +7047,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4604 +// line internal/php5/php5.y:4616 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7047,7 +7059,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4614 +// line internal/php5/php5.y:4626 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7059,7 +7071,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4624 +// line internal/php5/php5.y:4636 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7071,7 +7083,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4634 +// line internal/php5/php5.y:4646 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7083,7 +7095,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4644 +// line internal/php5/php5.y:4656 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7104,7 +7116,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4663 +// line internal/php5/php5.y:4675 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7116,7 +7128,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4676 +// line internal/php5/php5.y:4688 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7135,25 +7147,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4696 +// line internal/php5/php5.y:4708 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4703 +// line internal/php5/php5.y:4715 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4707 +// line internal/php5/php5.y:4719 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4711 +// line internal/php5/php5.y:4723 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7169,7 +7181,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4725 +// line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7187,7 +7199,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4741 +// line internal/php5/php5.y:4753 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7204,7 +7216,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4756 +// line internal/php5/php5.y:4768 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7219,7 +7231,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4769 +// line internal/php5/php5.y:4781 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7233,13 +7245,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4781 +// line internal/php5/php5.y:4793 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4785 +// line internal/php5/php5.y:4797 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7251,13 +7263,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4807 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4802 +// line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7271,7 +7283,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4814 +// line internal/php5/php5.y:4826 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7284,7 +7296,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4825 +// line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7297,7 +7309,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4836 +// line internal/php5/php5.y:4848 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7310,7 +7322,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4847 +// line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7323,7 +7335,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4858 +// line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7336,7 +7348,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4869 +// line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7349,7 +7361,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4880 +// line internal/php5/php5.y:4892 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7361,7 +7373,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4890 +// line internal/php5/php5.y:4902 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7373,7 +7385,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4900 +// line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7386,7 +7398,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4911 +// line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7399,7 +7411,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4922 +// line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7412,7 +7424,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4933 +// line internal/php5/php5.y:4945 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7425,7 +7437,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4944 +// line internal/php5/php5.y:4956 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7438,7 +7450,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4955 +// line internal/php5/php5.y:4967 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7451,7 +7463,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4966 +// line internal/php5/php5.y:4978 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7464,7 +7476,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4977 +// line internal/php5/php5.y:4989 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7477,7 +7489,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4988 +// line internal/php5/php5.y:5000 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7490,7 +7502,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4999 +// line internal/php5/php5.y:5011 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7503,7 +7515,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5010 +// line internal/php5/php5.y:5022 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7516,7 +7528,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5021 +// line internal/php5/php5.y:5033 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7529,7 +7541,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5032 +// line internal/php5/php5.y:5044 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7542,7 +7554,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5043 +// line internal/php5/php5.y:5055 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7555,7 +7567,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5054 +// line internal/php5/php5.y:5066 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7569,7 +7581,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5066 +// line internal/php5/php5.y:5078 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7582,7 +7594,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5077 +// line internal/php5/php5.y:5089 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7595,7 +7607,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5088 +// line internal/php5/php5.y:5100 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7608,7 +7620,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5099 +// line internal/php5/php5.y:5111 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7621,7 +7633,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5110 +// line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7635,7 +7647,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5134 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7649,7 +7661,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5134 +// line internal/php5/php5.y:5146 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7661,7 +7673,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5144 +// line internal/php5/php5.y:5156 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7673,7 +7685,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5154 +// line internal/php5/php5.y:5166 { yyVAL.node = yyDollar[2].node @@ -7683,13 +7695,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5165 +// line internal/php5/php5.y:5177 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5169 +// line internal/php5/php5.y:5181 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7705,7 +7717,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5183 +// line internal/php5/php5.y:5195 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7723,7 +7735,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5199 +// line internal/php5/php5.y:5211 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7740,7 +7752,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5229 { name := &ast.Identifier{ Node: ast.Node{ @@ -7759,25 +7771,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5234 +// line internal/php5/php5.y:5246 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5238 +// line internal/php5/php5.y:5250 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5242 +// line internal/php5/php5.y:5254 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5246 +// line internal/php5/php5.y:5258 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7790,7 +7802,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5257 +// line internal/php5/php5.y:5269 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7803,7 +7815,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5268 +// line internal/php5/php5.y:5280 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7815,13 +7827,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5281 +// line internal/php5/php5.y:5293 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5285 +// line internal/php5/php5.y:5297 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7832,19 +7844,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5297 +// line internal/php5/php5.y:5309 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5301 +// line internal/php5/php5.y:5313 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5308 +// line internal/php5/php5.y:5320 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7862,7 +7874,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5324 +// line internal/php5/php5.y:5336 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7878,7 +7890,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5338 +// line internal/php5/php5.y:5350 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7895,7 +7907,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5353 +// line internal/php5/php5.y:5365 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7910,19 +7922,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5369 +// line internal/php5/php5.y:5381 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5373 +// line internal/php5/php5.y:5385 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5380 +// line internal/php5/php5.y:5392 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7939,7 +7951,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5395 +// line internal/php5/php5.y:5407 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7956,25 +7968,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5414 +// line internal/php5/php5.y:5426 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5422 +// line internal/php5/php5.y:5434 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5429 +// line internal/php5/php5.y:5441 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5448 { yyVAL.node = yyDollar[1].node @@ -8032,25 +8044,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5492 +// line internal/php5/php5.y:5504 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5499 +// line internal/php5/php5.y:5511 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5503 +// line internal/php5/php5.y:5515 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5511 +// line internal/php5/php5.y:5523 { if yyDollar[3].list != nil { yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property @@ -8064,7 +8076,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5526 +// line internal/php5/php5.y:5538 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8080,7 +8092,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5540 +// line internal/php5/php5.y:5552 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8096,7 +8108,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5557 +// line internal/php5/php5.y:5569 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} @@ -8105,31 +8117,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5567 +// line internal/php5/php5.y:5579 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5571 +// line internal/php5/php5.y:5583 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5587 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5582 +// line internal/php5/php5.y:5594 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5586 +// line internal/php5/php5.y:5598 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8141,7 +8153,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5599 +// line internal/php5/php5.y:5611 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8154,7 +8166,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5622 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8167,26 +8179,12 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5624 +// line internal/php5/php5.y:5636 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5631 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 453: - yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5643 { yyVAL.node = &ast.ExprArrayDimFetch{ @@ -8199,51 +8197,9 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 454: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5658 - { - yyVAL.node = yyDollar[1].node - } - case 455: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5662 - { - yyVAL.node = yyDollar[1].node - } - case 456: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5666 - { - yyVAL.node = yyDollar[1].node - } - case 457: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5674 - { - yyVAL.node = yyDollar[1].node - } - case 458: - yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5678 - { - yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node - - for _, n := range yyDollar[1].simpleIndirectReference.all { - n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) - } - - yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] - } - case 459: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5688 - { - yyVAL.node = yyDollar[1].node - } - case 460: + case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5695 +// line internal/php5/php5.y:5655 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8255,7 +8211,49 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 461: + case 454: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5670 + { + yyVAL.node = yyDollar[1].node + } + case 455: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5674 + { + yyVAL.node = yyDollar[1].node + } + case 456: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5678 + { + yyVAL.node = yyDollar[1].node + } + case 457: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5686 + { + yyVAL.node = yyDollar[1].node + } + case 458: + yyDollar = yyS[yypt-2 : yypt+1] +// line internal/php5/php5.y:5690 + { + yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node + + for _, n := range yyDollar[1].simpleIndirectReference.all { + n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) + } + + yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] + } + case 459: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5700 + { + yyVAL.node = yyDollar[1].node + } + case 460: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5707 { @@ -8269,15 +8267,29 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } + case 461: + yyDollar = yyS[yypt-4 : yypt+1] +// line internal/php5/php5.y:5719 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + }, + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5719 +// line internal/php5/php5.y:5731 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5727 +// line internal/php5/php5.y:5739 { name := &ast.Identifier{ Node: ast.Node{ @@ -8296,7 +8308,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5744 +// line internal/php5/php5.y:5756 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8310,25 +8322,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5759 +// line internal/php5/php5.y:5771 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5763 +// line internal/php5/php5.y:5775 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5771 +// line internal/php5/php5.y:5783 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5775 +// line internal/php5/php5.y:5787 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8338,7 +8350,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5786 +// line internal/php5/php5.y:5798 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8354,7 +8366,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5800 +// line internal/php5/php5.y:5812 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8370,7 +8382,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5814 +// line internal/php5/php5.y:5826 { fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} yyVAL.list = []ast.Vertex{fetch} @@ -8380,7 +8392,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5825 +// line internal/php5/php5.y:5837 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8392,7 +8404,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5835 +// line internal/php5/php5.y:5847 { yyVAL.node = yyDollar[2].node @@ -8405,7 +8417,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5849 +// line internal/php5/php5.y:5861 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8418,7 +8430,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5860 +// line internal/php5/php5.y:5872 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8435,7 +8447,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5878 +// line internal/php5/php5.y:5890 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8444,7 +8456,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5885 +// line internal/php5/php5.y:5897 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8452,7 +8464,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5895 +// line internal/php5/php5.y:5907 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8463,7 +8475,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5904 +// line internal/php5/php5.y:5916 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8490,19 +8502,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5929 +// line internal/php5/php5.y:5941 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5937 +// line internal/php5/php5.y:5949 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5941 +// line internal/php5/php5.y:5953 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8513,7 +8525,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5953 +// line internal/php5/php5.y:5965 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8531,7 +8543,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5969 +// line internal/php5/php5.y:5981 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8547,7 +8559,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5983 +// line internal/php5/php5.y:5995 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8564,7 +8576,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5998 +// line internal/php5/php5.y:6010 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8579,7 +8591,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6011 +// line internal/php5/php5.y:6023 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8602,7 +8614,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6032 +// line internal/php5/php5.y:6044 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8623,7 +8635,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6051 +// line internal/php5/php5.y:6063 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8645,7 +8657,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6071 +// line internal/php5/php5.y:6083 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8665,13 +8677,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6092 +// line internal/php5/php5.y:6104 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6096 +// line internal/php5/php5.y:6108 { yyVAL.list = append( yyDollar[1].list, @@ -8686,13 +8698,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6109 +// line internal/php5/php5.y:6121 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6113 +// line internal/php5/php5.y:6125 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8707,7 +8719,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6129 +// line internal/php5/php5.y:6141 { name := &ast.Identifier{ Node: ast.Node{ @@ -8726,7 +8738,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6146 +// line internal/php5/php5.y:6158 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8751,7 +8763,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6169 +// line internal/php5/php5.y:6181 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8779,7 +8791,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6195 +// line internal/php5/php5.y:6207 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8794,7 +8806,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6208 +// line internal/php5/php5.y:6220 { name := &ast.Identifier{ Node: ast.Node{ @@ -8816,7 +8828,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6228 +// line internal/php5/php5.y:6240 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8843,7 +8855,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6253 +// line internal/php5/php5.y:6265 { yyVAL.node = yyDollar[2].node @@ -8853,7 +8865,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6264 +// line internal/php5/php5.y:6276 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8865,7 +8877,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6274 +// line internal/php5/php5.y:6286 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8894,7 +8906,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6301 +// line internal/php5/php5.y:6313 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8913,7 +8925,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6321 +// line internal/php5/php5.y:6333 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -8927,7 +8939,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6333 +// line internal/php5/php5.y:6345 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8941,7 +8953,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6345 +// line internal/php5/php5.y:6357 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8955,53 +8967,45 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6369 { - yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6367 +// line internal/php5/php5.y:6379 { - yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6377 +// line internal/php5/php5.y:6389 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + EvalTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6397 +// line internal/php5/php5.y:6401 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9013,7 +9017,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6407 +// line internal/php5/php5.y:6411 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9025,13 +9029,13 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6424 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6424 +// line internal/php5/php5.y:6428 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -9040,19 +9044,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6434 +// line internal/php5/php5.y:6438 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6438 +// line internal/php5/php5.y:6442 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6445 +// line internal/php5/php5.y:6449 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9071,7 +9075,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6462 +// line internal/php5/php5.y:6466 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9090,7 +9094,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6482 +// line internal/php5/php5.y:6486 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9109,7 +9113,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6506 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d38e937..0613a54 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2,7 +2,6 @@ package php5 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -3872,21 +3871,20 @@ expr_without_variable: } | T_EXIT exit_expr { - $$ = &ast.ExprExit{ast.Node{}, false, $2} - - if (bytes.EqualFold($1.Value, []byte("die"))) { - $$.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: $1, } - // save position if $2 == nil { - $$.GetNode().Position = position.NewTokenPosition($1) + exit.Node.Position = position.NewTokenPosition($1) } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) + exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = $2.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = exit } | '@' expr { @@ -4228,45 +4226,57 @@ lexical_var_list: function_call: namespace_name function_call_parameter_list { - name := &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1), + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodeListNodePosition($1, $2), }, - Parts: $1, + Function: &ast.NameName{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Parts: $1, + }, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, } - $$ = &ast.ExprFunctionCall{ast.Node{}, name, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition(name, $2) } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { - name := &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $4), }, - NsTkn: $1, - NsSeparatorTkn: $2, - Parts: $3, + Function: &ast.NameRelative{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $3), + }, + NsTkn: $1, + NsSeparatorTkn: $2, + Parts: $3, + }, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } - $$ = &ast.ExprFunctionCall{ast.Node{}, name, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition(name, $4) } | T_NS_SEPARATOR namespace_name function_call_parameter_list { - name := &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), }, - NsSeparatorTkn: $1, - Parts: $2, + Function: &ast.NameFullyQualified{ + Node: ast.Node{ + Position: position.NewTokenNodeListPosition($1, $2), + }, + NsSeparatorTkn: $1, + Parts: $2, + }, + OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $3.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, } - $$ = &ast.ExprFunctionCall{ast.Node{}, name, $3.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition(name, $3) } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { @@ -4314,13 +4324,15 @@ function_call: } | variable_without_objects function_call_parameter_list { - $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $2), + }, + Function: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + } } ; @@ -6355,43 +6367,35 @@ internal_functions_in_yacc: } | T_INCLUDE expr { - $$ = &ast.ExprInclude{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_INCLUDE_ONCE expr { - $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_EVAL '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), + Position: position.NewTokensPosition($1, $4), }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, + EvalTkn: $1, + OpenParenthesisTkn: $2, + Expr: $3, + CloseParenthesisTkn: $4, } - $$ = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_REQUIRE expr { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index c397bc8..25bfa12 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -8,7 +8,6 @@ import __yyfmt__ "fmt" // line internal/php7/php7.y:2 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -16,7 +15,7 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php7/php7.y:15 +// line internal/php7/php7.y:14 type yySymType struct { yys int node ast.Vertex @@ -344,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4998 +// line internal/php7/php7.y:4992 // line yacctab:1 var yyExca = [...]int{ @@ -2111,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:291 +// line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2122,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 +// line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:325 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:332 +// line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:343 +// line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:350 +// line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:362 +// line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:376 +// line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:385 +// line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:396 +// line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:409 +// line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:414 +// line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:418 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:422 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:426 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:430 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:434 +// line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:446 +// line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:462 +// line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:480 +// line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:492 +// line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:502 +// line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:513 +// line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:524 +// line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:536 +// line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:551 +// line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:561 +// line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:574 +// line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:596 +// line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:620 +// line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:640 +// line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:664 +// line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:668 +// line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:675 +// line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:681 +// line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:688 +// line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:694 +// line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:701 +// line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:707 +// line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:714 +// line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:718 +// line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:729 +// line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:743 +// line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:768 +// line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:772 +// line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:783 +// line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:790 +// line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:799 +// line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:810 +// line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:817 +// line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:822 +// line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:826 +// line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:830 +// line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:834 +// line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:838 +// line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:842 +// line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:856 +// line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:867 +// line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:871 +// line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:875 +// line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:885 +// line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:900 +// line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:914 +// line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:924 +// line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:935 +// line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:946 +// line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:957 +// line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:965 +// line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:973 +// line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:981 +// line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:991 +// line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1001 +// line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1012 +// line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1024 +// line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1038 +// line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1049 +// line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1058 +// line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1075 +// line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1086 +// line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1103 +// line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1121 +// line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1125 +// line internal/php7/php7.y:1124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3512,7 +3511,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1156 +// line internal/php7/php7.y:1155 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3520,7 +3519,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1162 +// line internal/php7/php7.y:1161 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3529,13 +3528,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1172 +// line internal/php7/php7.y:1171 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1176 +// line internal/php7/php7.y:1175 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3549,7 +3548,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1191 +// line internal/php7/php7.y:1190 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3557,7 +3556,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1197 +// line internal/php7/php7.y:1196 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3566,13 +3565,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1207 +// line internal/php7/php7.y:1206 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1214 +// line internal/php7/php7.y:1213 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3599,31 +3598,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1242 +// line internal/php7/php7.y:1241 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1246 +// line internal/php7/php7.y:1245 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1253 +// line internal/php7/php7.y:1252 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1257 +// line internal/php7/php7.y:1256 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1264 +// line internal/php7/php7.y:1263 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3646,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1286 +// line internal/php7/php7.y:1285 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3670,19 +3669,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1310 +// line internal/php7/php7.y:1309 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1314 +// line internal/php7/php7.y:1313 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1321 +// line internal/php7/php7.y:1320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3694,7 +3693,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1331 +// line internal/php7/php7.y:1330 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3706,7 +3705,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1344 +// line internal/php7/php7.y:1343 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3727,7 +3726,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1366 +// line internal/php7/php7.y:1365 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3749,13 +3748,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1389 +// line internal/php7/php7.y:1388 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1393 +// line internal/php7/php7.y:1392 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3767,13 +3766,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1406 +// line internal/php7/php7.y:1405 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1410 +// line internal/php7/php7.y:1409 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3786,13 +3785,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1424 +// line internal/php7/php7.y:1423 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1428 +// line internal/php7/php7.y:1427 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3805,13 +3804,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1442 +// line internal/php7/php7.y:1441 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1446 +// line internal/php7/php7.y:1445 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3823,7 +3822,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1456 +// line internal/php7/php7.y:1455 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3838,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1469 +// line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3852,7 +3851,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1484 +// line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3863,7 +3862,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1493 +// line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3883,7 +3882,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1514 +// line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3894,7 +3893,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1523 +// line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3914,7 +3913,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1544 +// line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3925,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1553 +// line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3945,7 +3944,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1574 +// line internal/php7/php7.y:1573 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3957,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1585 +// line internal/php7/php7.y:1584 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3972,7 +3971,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1597 +// line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3987,7 +3986,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1610 +// line internal/php7/php7.y:1609 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4003,13 +4002,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1627 +// line internal/php7/php7.y:1626 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1631 +// line internal/php7/php7.y:1630 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4023,7 +4022,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1643 +// line internal/php7/php7.y:1642 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4036,19 +4035,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1657 +// line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1661 +// line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1668 +// line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4059,7 +4058,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1677 +// line internal/php7/php7.y:1676 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4079,7 +4078,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1698 +// line internal/php7/php7.y:1697 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4094,7 +4093,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1711 +// line internal/php7/php7.y:1710 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4113,13 +4112,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1731 +// line internal/php7/php7.y:1730 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1735 +// line internal/php7/php7.y:1734 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4135,7 +4134,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1752 +// line internal/php7/php7.y:1751 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4157,7 +4156,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1772 +// line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4181,7 +4180,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1797 +// line internal/php7/php7.y:1796 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4191,7 +4190,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1805 +// line internal/php7/php7.y:1804 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4215,25 +4214,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1830 +// line internal/php7/php7.y:1829 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1834 +// line internal/php7/php7.y:1833 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1841 +// line internal/php7/php7.y:1840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1845 +// line internal/php7/php7.y:1844 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4242,7 +4241,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1855 +// line internal/php7/php7.y:1854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4296,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1907 +// line internal/php7/php7.y:1906 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4353,25 +4352,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1965 +// line internal/php7/php7.y:1964 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1969 +// line internal/php7/php7.y:1968 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1976 +// line internal/php7/php7.y:1975 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1980 +// line internal/php7/php7.y:1979 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4383,7 +4382,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1993 +// line internal/php7/php7.y:1992 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4395,7 +4394,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2003 +// line internal/php7/php7.y:2002 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4407,19 +4406,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2013 +// line internal/php7/php7.y:2012 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2020 +// line internal/php7/php7.y:2019 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2024 +// line internal/php7/php7.y:2023 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4428,7 +4427,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2034 +// line internal/php7/php7.y:2033 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4440,7 +4439,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2044 +// line internal/php7/php7.y:2043 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4452,7 +4451,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2057 +// line internal/php7/php7.y:2056 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4460,7 +4459,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2063 +// line internal/php7/php7.y:2062 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4469,7 +4468,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2073 +// line internal/php7/php7.y:2072 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4480,7 +4479,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2082 +// line internal/php7/php7.y:2081 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4492,7 +4491,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2095 +// line internal/php7/php7.y:2094 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4501,7 +4500,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2102 +// line internal/php7/php7.y:2101 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4509,13 +4508,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2111 +// line internal/php7/php7.y:2110 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2118 +// line internal/php7/php7.y:2117 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4524,7 +4523,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2125 +// line internal/php7/php7.y:2124 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4532,7 +4531,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2134 +// line internal/php7/php7.y:2133 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4558,7 +4557,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2158 +// line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4585,19 +4584,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2186 +// line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2190 +// line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2197 +// line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4612,7 +4611,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2210 +// line internal/php7/php7.y:2209 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4626,7 +4625,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2222 +// line internal/php7/php7.y:2221 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4640,7 +4639,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2234 +// line internal/php7/php7.y:2233 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4671,7 +4670,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2266 +// line internal/php7/php7.y:2265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4679,7 +4678,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2272 +// line internal/php7/php7.y:2271 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4688,7 +4687,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2282 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4699,7 +4698,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2291 +// line internal/php7/php7.y:2290 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4711,7 +4710,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2301 +// line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4724,19 +4723,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2315 +// line internal/php7/php7.y:2314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2319 +// line internal/php7/php7.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2326 +// line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4745,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2334 +// line internal/php7/php7.y:2333 { yyVAL.node = yyDollar[1].node @@ -4756,7 +4755,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2345 +// line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4770,7 +4769,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2360 +// line internal/php7/php7.y:2359 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4789,7 +4788,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2377 +// line internal/php7/php7.y:2376 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4808,7 +4807,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2394 +// line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4828,7 +4827,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2412 +// line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4841,7 +4840,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2426 +// line internal/php7/php7.y:2425 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4858,13 +4857,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2441 +// line internal/php7/php7.y:2440 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2448 +// line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4883,7 +4882,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2468 +// line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4894,7 +4893,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2477 +// line internal/php7/php7.y:2476 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4907,13 +4906,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2491 +// line internal/php7/php7.y:2490 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2495 +// line internal/php7/php7.y:2494 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4927,31 +4926,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2510 +// line internal/php7/php7.y:2509 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2514 +// line internal/php7/php7.y:2513 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2521 +// line internal/php7/php7.y:2520 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2525 +// line internal/php7/php7.y:2524 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2532 +// line internal/php7/php7.y:2531 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4963,7 +4962,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2542 +// line internal/php7/php7.y:2541 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4975,7 +4974,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2552 +// line internal/php7/php7.y:2551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4987,7 +4986,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2562 +// line internal/php7/php7.y:2561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4999,7 +4998,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2572 +// line internal/php7/php7.y:2571 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5011,7 +5010,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2582 +// line internal/php7/php7.y:2581 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5023,7 +5022,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2595 +// line internal/php7/php7.y:2594 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5032,7 +5031,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2602 +// line internal/php7/php7.y:2601 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5040,7 +5039,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2611 +// line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5063,7 +5062,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2632 +// line internal/php7/php7.y:2631 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5087,7 +5086,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2657 +// line internal/php7/php7.y:2656 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5095,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2663 +// line internal/php7/php7.y:2662 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2670 +// line internal/php7/php7.y:2669 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5122,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2692 +// line internal/php7/php7.y:2691 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5143,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2714 +// line internal/php7/php7.y:2713 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5152,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2721 +// line internal/php7/php7.y:2720 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5160,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2730 +// line internal/php7/php7.y:2729 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2737 +// line internal/php7/php7.y:2736 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2741 +// line internal/php7/php7.y:2740 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2748 +// line internal/php7/php7.y:2747 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5187,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2755 +// line internal/php7/php7.y:2754 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2762 +// line internal/php7/php7.y:2761 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5210,7 +5209,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2780 +// line internal/php7/php7.y:2779 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5225,7 +5224,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2793 +// line internal/php7/php7.y:2792 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5237,7 +5236,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2806 +// line internal/php7/php7.y:2805 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5259,7 +5258,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2826 +// line internal/php7/php7.y:2825 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5280,7 +5279,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2845 +// line internal/php7/php7.y:2844 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5293,7 +5292,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2856 +// line internal/php7/php7.y:2855 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5307,7 +5306,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2868 +// line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5319,7 +5318,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 +// line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5331,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 +// line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5344,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 +// line internal/php7/php7.y:2899 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5357,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 +// line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5370,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2921 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5383,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2932 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5397,7 +5396,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 +// line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5410,7 +5409,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2955 +// line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5423,7 +5422,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2966 +// line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5435,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2977 +// line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5448,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2988 +// line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5462,7 +5461,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2999 +// line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5475,7 +5474,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3010 +// line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5488,7 +5487,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3021 +// line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5501,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3032 +// line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5513,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3042 +// line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5526,7 +5525,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3053 +// line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5538,7 +5537,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3063 +// line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5551,7 +5550,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3074 +// line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5564,7 +5563,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3085 +// line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5577,7 +5576,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3096 +// line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5590,7 +5589,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3107 +// line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5603,7 +5602,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3118 +// line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5616,7 +5615,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3129 +// line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5629,7 +5628,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3140 +// line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5642,7 +5641,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3151 +// line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5654,7 +5653,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3161 +// line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5667,7 +5666,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3172 +// line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5680,7 +5679,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3183 +// line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5693,7 +5692,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3194 +// line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5706,7 +5705,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3205 +// line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5719,7 +5718,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3216 +// line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5732,7 +5731,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3227 +// line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5745,7 +5744,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3238 +// line internal/php7/php7.y:3237 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5758,7 +5757,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3249 +// line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5770,7 +5769,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3259 +// line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5782,7 +5781,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3269 +// line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5794,7 +5793,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3279 +// line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5806,7 +5805,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3289 +// line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5819,7 +5818,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3300 +// line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5832,7 +5831,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3311 +// line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5845,7 +5844,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3322 +// line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5859,7 +5858,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3334 +// line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5872,7 +5871,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3345 +// line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5885,7 +5884,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3356 +// line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5898,7 +5897,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3367 +// line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5911,7 +5910,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3378 +// line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5924,7 +5923,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3389 +// line internal/php7/php7.y:3388 { yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5937,7 +5936,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3400 +// line internal/php7/php7.y:3399 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5954,13 +5953,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3415 +// line internal/php7/php7.y:3414 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3419 +// line internal/php7/php7.y:3418 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5974,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3431 +// line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5988,7 +5987,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3443 +// line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6001,13 +6000,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3454 +// line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3458 +// line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6020,7 +6019,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3469 +// line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6033,7 +6032,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3480 +// line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6046,7 +6045,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3491 +// line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6059,7 +6058,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3502 +// line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6072,7 +6071,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3513 +// line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6085,7 +6084,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3524 +// line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6098,27 +6097,26 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3535 +// line internal/php7/php7.y:3534 { - yyVAL.node = &ast.ExprExit{ast.Node{}, false, yyDollar[2].node} - - if bytes.EqualFold(yyDollar[1].token.Value, []byte("die")) { - yyVAL.node.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: yyDollar[1].token, } - // save position if yyDollar[2].node == nil { - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) + exit.Node.Position = position.NewTokenPosition(yyDollar[1].token) } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = exit } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3553 +// line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6130,13 +6128,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3563 +// line internal/php7/php7.y:3561 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3567 +// line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6148,7 +6146,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3577 +// line internal/php7/php7.y:3575 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6160,7 +6158,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3587 +// line internal/php7/php7.y:3585 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6172,7 +6170,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3597 +// line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6184,7 +6182,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3607 +// line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6197,7 +6195,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3618 +// line internal/php7/php7.y:3616 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6209,13 +6207,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3628 +// line internal/php7/php7.y:3626 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3632 +// line internal/php7/php7.y:3630 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6230,7 +6228,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3648 +// line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6251,7 +6249,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3667 +// line internal/php7/php7.y:3665 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6270,25 +6268,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3691 +// line internal/php7/php7.y:3689 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3695 +// line internal/php7/php7.y:3693 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3702 +// line internal/php7/php7.y:3700 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3706 +// line internal/php7/php7.y:3704 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6303,7 +6301,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3722 +// line internal/php7/php7.y:3720 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6312,7 +6310,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3729 +// line internal/php7/php7.y:3727 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6320,7 +6318,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3738 +// line internal/php7/php7.y:3736 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6339,7 +6337,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3755 +// line internal/php7/php7.y:3753 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6361,15 +6359,17 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3778 +// line internal/php7/php7.y:3776 { - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + }, + Function: yyDollar[1].node, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 385: yyDollar = yyS[yypt-4 : yypt+1] @@ -6401,17 +6401,19 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:3810 { - yyVAL.node = &ast.ExprFunctionCall{ast.Node{}, yyDollar[1].node, yyDollar[2].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) + yyVAL.node = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + }, + Function: yyDollar[1].node, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3823 +// line internal/php7/php7.y:3825 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6423,31 +6425,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3833 +// line internal/php7/php7.y:3835 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3840 +// line internal/php7/php7.y:3842 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3844 +// line internal/php7/php7.y:3846 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3851 +// line internal/php7/php7.y:3853 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3855 +// line internal/php7/php7.y:3857 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6464,13 +6466,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3873 +// line internal/php7/php7.y:3875 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3877 +// line internal/php7/php7.y:3879 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6484,25 +6486,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3889 +// line internal/php7/php7.y:3891 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3896 +// line internal/php7/php7.y:3898 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3900 +// line internal/php7/php7.y:3902 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3907 +// line internal/php7/php7.y:3909 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6517,7 +6519,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3920 +// line internal/php7/php7.y:3922 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6531,7 +6533,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3932 +// line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6543,7 +6545,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3945 +// line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6555,7 +6557,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3955 +// line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6567,7 +6569,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3965 +// line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6579,7 +6581,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3975 +// line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6591,7 +6593,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3985 +// line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6603,7 +6605,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3995 +// line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6615,7 +6617,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4005 +// line internal/php7/php7.y:4007 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6627,7 +6629,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4015 +// line internal/php7/php7.y:4017 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6639,7 +6641,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4025 +// line internal/php7/php7.y:4027 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6651,7 +6653,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4035 +// line internal/php7/php7.y:4037 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6663,7 +6665,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4045 +// line internal/php7/php7.y:4047 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6684,7 +6686,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4064 +// line internal/php7/php7.y:4066 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6696,7 +6698,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4074 +// line internal/php7/php7.y:4076 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6709,7 +6711,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4085 +// line internal/php7/php7.y:4087 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6722,19 +6724,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4096 +// line internal/php7/php7.y:4098 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4100 +// line internal/php7/php7.y:4102 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4107 +// line internal/php7/php7.y:4109 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6745,7 +6747,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4116 +// line internal/php7/php7.y:4118 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6764,7 +6766,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4133 +// line internal/php7/php7.y:4135 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6783,43 +6785,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4153 +// line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4157 +// line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4164 +// line internal/php7/php7.y:4166 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4170 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4175 +// line internal/php7/php7.y:4177 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4184 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4186 +// line internal/php7/php7.y:4188 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6836,19 +6838,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4201 +// line internal/php7/php7.y:4203 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4208 +// line internal/php7/php7.y:4210 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4212 +// line internal/php7/php7.y:4214 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6865,19 +6867,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4227 +// line internal/php7/php7.y:4229 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4234 +// line internal/php7/php7.y:4236 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4238 +// line internal/php7/php7.y:4240 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6891,7 +6893,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4250 +// line internal/php7/php7.y:4252 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6905,7 +6907,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4262 +// line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6919,7 +6921,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4274 +// line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6932,25 +6934,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4285 +// line internal/php7/php7.y:4287 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4292 +// line internal/php7/php7.y:4294 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4296 +// line internal/php7/php7.y:4298 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4300 +// line internal/php7/php7.y:4302 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6963,7 +6965,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4314 +// line internal/php7/php7.y:4316 { name := &ast.Identifier{ Node: ast.Node{ @@ -6982,7 +6984,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4331 +// line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6996,7 +6998,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4343 +// line internal/php7/php7.y:4345 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7008,7 +7010,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4356 +// line internal/php7/php7.y:4358 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7021,7 +7023,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4367 +// line internal/php7/php7.y:4369 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,13 +7036,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4385 +// line internal/php7/php7.y:4387 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7054,7 +7056,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4397 +// line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7068,7 +7070,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4409 +// line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7081,7 +7083,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4420 +// line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7094,7 +7096,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4431 +// line internal/php7/php7.y:4433 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7107,7 +7109,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4447 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7119,7 +7121,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4455 +// line internal/php7/php7.y:4457 { yyVAL.node = yyDollar[2].node @@ -7129,13 +7131,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4463 +// line internal/php7/php7.y:4465 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 +// line internal/php7/php7.y:4472 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7147,7 +7149,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4480 +// line internal/php7/php7.y:4482 { yyVAL.node = yyDollar[2].node @@ -7157,13 +7159,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4488 +// line internal/php7/php7.y:4490 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4495 +// line internal/php7/php7.y:4497 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7176,19 +7178,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4509 +// line internal/php7/php7.y:4511 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4513 +// line internal/php7/php7.y:4515 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4520 +// line internal/php7/php7.y:4522 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7197,7 +7199,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4527 +// line internal/php7/php7.y:4529 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7205,7 +7207,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4536 +// line internal/php7/php7.y:4538 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7218,7 +7220,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4547 +// line internal/php7/php7.y:4549 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7229,7 +7231,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4556 +// line internal/php7/php7.y:4558 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7247,7 +7249,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4572 +// line internal/php7/php7.y:4574 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7263,7 +7265,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4586 +// line internal/php7/php7.y:4588 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7275,7 +7277,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4596 +// line internal/php7/php7.y:4598 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7297,7 +7299,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4616 +// line internal/php7/php7.y:4618 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7317,13 +7319,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4637 +// line internal/php7/php7.y:4639 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4641 +// line internal/php7/php7.y:4643 { yyVAL.list = append( yyDollar[1].list, @@ -7338,13 +7340,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4654 +// line internal/php7/php7.y:4656 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4658 +// line internal/php7/php7.y:4660 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7359,7 +7361,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4674 +// line internal/php7/php7.y:4676 { name := &ast.Identifier{ Node: ast.Node{ @@ -7378,7 +7380,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4691 +// line internal/php7/php7.y:4693 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7403,7 +7405,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4714 +// line internal/php7/php7.y:4716 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7431,7 +7433,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4740 +// line internal/php7/php7.y:4742 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7446,7 +7448,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4753 +// line internal/php7/php7.y:4755 { name := &ast.Identifier{ Node: ast.Node{ @@ -7468,7 +7470,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4773 +// line internal/php7/php7.y:4775 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7495,7 +7497,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4798 +// line internal/php7/php7.y:4800 { yyVAL.node = yyDollar[2].node @@ -7505,7 +7507,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4809 +// line internal/php7/php7.y:4811 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7517,7 +7519,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4819 +// line internal/php7/php7.y:4821 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7540,7 +7542,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4840 +// line internal/php7/php7.y:4842 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7568,7 +7570,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4866 +// line internal/php7/php7.y:4868 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7587,7 +7589,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4886 +// line internal/php7/php7.y:4888 { yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} @@ -7605,7 +7607,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4902 +// line internal/php7/php7.y:4904 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7619,53 +7621,45 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4914 +// line internal/php7/php7.y:4916 { - yyVAL.node = &ast.ExprInclude{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4924 +// line internal/php7/php7.y:4926 { - yyVAL.node = &ast.ExprIncludeOnce{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncludeTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4934 +// line internal/php7/php7.y:4936 { - exprBrackets := &ast.ParserBrackets{ + yyVAL.node = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + EvalTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + CloseParenthesisTkn: yyDollar[4].token, } - yyVAL.node = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, yyDollar[4].token.SkippedTokens) } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4954 +// line internal/php7/php7.y:4948 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7677,7 +7671,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4964 +// line internal/php7/php7.y:4958 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7689,13 +7683,13 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4977 +// line internal/php7/php7.y:4971 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4981 +// line internal/php7/php7.y:4975 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -7704,7 +7698,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4991 +// line internal/php7/php7.y:4985 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 9c95662..5fe9dd0 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2,7 +2,6 @@ package php7 import ( - "bytes" "strconv" "github.com/z7zmey/php-parser/internal/position" @@ -3533,21 +3532,20 @@ expr_without_variable: } | T_EXIT exit_expr { - $$ = &ast.ExprExit{ast.Node{}, false, $2} - - if (bytes.EqualFold($1.Value, []byte("die"))) { - $$.(*ast.ExprExit).Die = true + exit := &ast.ExprExit{ + DieTkn: $1, } - // save position if $2 == nil { - $$.GetNode().Position = position.NewTokenPosition($1) + exit.Node.Position = position.NewTokenPosition($1) } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) + exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn + exit.Expr = $2.(*ast.ParserBrackets).Child + exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn } - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = exit } | '@' expr { @@ -3776,13 +3774,15 @@ lexical_var: function_call: name argument_list { - $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $2), + }, + Function: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + } } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { @@ -3808,13 +3808,15 @@ function_call: } | callable_expr argument_list { - $$ = &ast.ExprFunctionCall{ast.Node{}, $1, $2.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) + $$ = &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $2), + }, + Function: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + } } ; @@ -4912,43 +4914,35 @@ internal_functions_in_yacc: } | T_INCLUDE expr { - $$ = &ast.ExprInclude{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprInclude{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_INCLUDE_ONCE expr { - $$ = &ast.ExprIncludeOnce{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprIncludeOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncludeTkn: $1, + Expr: $2, + } } | T_EVAL '(' expr ')' { - exprBrackets := &ast.ParserBrackets{ + $$ = &ast.ExprEval{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), + Position: position.NewTokensPosition($1, $4), }, - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, + EvalTkn: $1, + OpenParenthesisTkn: $2, + Expr: $3, + CloseParenthesisTkn: $4, } - $$ = &ast.ExprEval{ast.Node{}, exprBrackets} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.Start, $2.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(exprBrackets, token.End, $4.SkippedTokens) } | T_REQUIRE expr { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index fb314cc..93d9001 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1114,7 +1114,10 @@ func (n *ExprErrorSuppress) Accept(v NodeVisitor) { // ExprEval node type ExprEval struct { Node - Expr Vertex + EvalTkn *token.Token + OpenParenthesisTkn *token.Token + Expr Vertex + CloseParenthesisTkn *token.Token } func (n *ExprEval) Accept(v NodeVisitor) { @@ -1124,8 +1127,10 @@ func (n *ExprEval) Accept(v NodeVisitor) { // ExprExit node type ExprExit struct { Node - Die bool - Expr Vertex + DieTkn *token.Token + OpenParenthesisTkn *token.Token + Expr Vertex + CloseParenthesisTkn *token.Token } func (n *ExprExit) Accept(v NodeVisitor) { @@ -1135,8 +1140,10 @@ func (n *ExprExit) Accept(v NodeVisitor) { // ExprFunctionCall node type ExprFunctionCall struct { Node - Function Vertex - ArgumentList *ArgumentList + Function Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + CloseParenthesisTkn *token.Token } func (n *ExprFunctionCall) Accept(v NodeVisitor) { @@ -1146,7 +1153,8 @@ func (n *ExprFunctionCall) Accept(v NodeVisitor) { // ExprInclude node type ExprInclude struct { Node - Expr Vertex + IncludeTkn *token.Token + Expr Vertex } func (n *ExprInclude) Accept(v NodeVisitor) { @@ -1156,7 +1164,8 @@ func (n *ExprInclude) Accept(v NodeVisitor) { // ExprIncludeOnce node type ExprIncludeOnce struct { Node - Expr Vertex + IncludeTkn *token.Token + Expr Vertex } func (n *ExprIncludeOnce) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 3da2562..95f2d4a 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1303,10 +1303,12 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Function) t.visitor.Leave("Function", true) } - if nn.ArgumentList != nil { - t.visitor.Enter("ArgumentList", true) - t.Traverse(nn.ArgumentList) - t.visitor.Leave("ArgumentList", true) + if nn.Arguments != nil { + t.visitor.Enter("Arguments", false) + for _, c := range nn.Arguments { + t.Traverse(c) + } + t.visitor.Leave("Arguments", false) } case *ast.ExprInclude: if nn == nil { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 5ae65a5..2e4f59b 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -692,11 +692,6 @@ func (v *Dump) ExprExit(n *ast.ExprExit) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprExit{\n") v.printNode(n.GetNode()) - - if n.Die { - v.printIndent(v.indent) - v.print("Die: true,\n") - } } func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 4f51213..79782fe 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1074,11 +1074,7 @@ func (p *PrettyPrinter) printExprEval(n ast.Vertex) { func (p *PrettyPrinter) printExprExit(n ast.Vertex) { nn := n.(*ast.ExprExit) - if nn.Die { - io.WriteString(p.w, "die(") - } else { - io.WriteString(p.w, "exit(") - } + io.WriteString(p.w, "exit(") p.Print(nn.Expr) io.WriteString(p.w, ")") } @@ -1088,7 +1084,7 @@ func (p *PrettyPrinter) printExprFunctionCall(n ast.Vertex) { p.Print(nn.Function) io.WriteString(p.w, "(") - p.joinPrint(", ", nn.ArgumentList.Arguments) + p.joinPrint(", ", nn.Arguments) io.WriteString(p.w, ")") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 4e86c48..dfbe5f1 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1590,8 +1590,8 @@ func (p *Printer) printExprExit(n ast.Vertex) { nn := n.(*ast.ExprExit) p.printFreeFloating(nn, token.Start) - if nn.Die { - p.write([]byte("die")) + if nn.DieTkn != nil { + p.write(nn.DieTkn.Value) } else { p.write([]byte("exit")) } @@ -1611,9 +1611,9 @@ func (p *Printer) printExprFunctionCall(n ast.Vertex) { p.Print(nn.Function) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") + p.printToken(nn.OpenParenthesisTkn, "(") + p.joinPrint(",", nn.Arguments) + p.printToken(nn.CloseParenthesisTkn, ")") p.printFreeFloating(nn, token.End) } From b5ef30eb365b833084e90d7e31de289eb104aa97 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 1 Dec 2020 12:16:46 +0200 Subject: [PATCH 086/140] [refactoring] update ast structure of "InstanceOf" and "Isset" nodes --- internal/php5/php5.go | 189 +++---- internal/php5/php5.y | 49 +- internal/php7/php7.go | 1189 +++++++++++++++++++++-------------------- internal/php7/php7.y | 53 +- pkg/ast/node.go | 11 +- 5 files changed, 754 insertions(+), 737 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 9b23a93..8501768 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6524 +// line internal/php5/php5.y:6527 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -700,10 +700,10 @@ var yyAct = [...]int{ 836, 566, 1006, 39, 572, 1012, 531, 1005, 725, 1013, 341, 698, 531, 531, 993, 572, 1016, 518, 716, 538, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 460, 318, 259, 446, 231, 31, 231, 256, 654, - 531, 314, 296, 656, 655, 39, 260, 261, 449, 127, - 403, 39, 575, 657, 659, 660, 676, 677, 666, 903, - 147, 151, 155, 401, 335, 945, 165, 685, 478, 995, + 679, 318, 314, 259, 446, 231, 31, 231, 256, 654, + 531, 127, 296, 656, 655, 39, 260, 261, 449, 403, + 575, 39, 903, 657, 659, 660, 676, 677, 666, 401, + 147, 151, 155, 460, 335, 945, 165, 685, 478, 995, 1009, 929, 483, 343, 198, 290, 394, 389, 939, 206, 896, 164, 157, 161, 528, 231, 608, 997, 531, 970, 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, @@ -1614,8 +1614,8 @@ var yyPgo = [...]int{ 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, 1075, 41, 1073, 1072, 4, 1071, 1070, 1069, 17, 1067, - 12, 1065, 1064, 7, 21, 1063, 25, 1059, 1052, 1050, - 14, 39, 0, 1049, 1041, 1032, 391, 619, 1031, 1019, + 12, 1065, 1064, 1063, 7, 21, 1059, 25, 1052, 1050, + 1049, 14, 39, 0, 1041, 1032, 1031, 391, 619, 1019, 1011, 1010, 30, 52, 1008, 1007, 1002, 3, 1001, 15, 1000, 999, 996, 993, 992, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, @@ -1623,24 +1623,24 @@ var yyPgo = [...]int{ } var yyR1 = [...]int{ - 0, 151, 111, 111, 112, 112, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 113, 113, - 6, 6, 6, 6, 114, 114, 7, 7, 7, 7, - 115, 115, 8, 8, 8, 8, 55, 55, 116, 116, + 0, 151, 112, 112, 113, 113, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 114, 114, + 6, 6, 6, 6, 115, 115, 7, 7, 7, 7, + 116, 116, 8, 8, 8, 8, 55, 55, 117, 117, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 124, 124, 60, 60, 125, 125, 126, 126, 61, 88, 88, 58, 53, 54, 149, 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 105, 105, 2, 109, 109, 108, 108, 106, 106, 104, - 104, 103, 103, 103, 101, 101, 100, 100, 59, 59, + 106, 106, 2, 110, 110, 109, 109, 107, 107, 105, + 105, 104, 104, 104, 101, 101, 100, 100, 59, 59, 89, 89, 92, 92, 92, 92, 123, 123, 123, 4, 4, 102, 102, 119, 119, 120, 120, 56, 56, 57, 57, 127, 127, 128, 128, 65, 65, 64, 64, 64, 64, 84, 84, 84, 93, 93, 70, 70, 70, 70, 82, 82, 29, 29, 29, 81, 81, 81, 81, 129, - 129, 67, 67, 67, 67, 69, 107, 107, 87, 87, + 129, 67, 67, 67, 67, 69, 108, 108, 87, 87, 132, 132, 133, 133, 71, 71, 72, 97, 97, 75, 75, 74, 73, 73, 76, 76, 96, 96, 130, 130, 131, 131, 134, 134, 77, 77, 77, 77, 77, 77, @@ -1654,7 +1654,7 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 110, 110, 95, + 49, 49, 49, 49, 48, 48, 1, 111, 111, 95, 95, 95, 95, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 135, 135, @@ -1672,9 +1672,9 @@ var yyR1 = [...]int{ 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, 144, 144, 41, 41, 148, 148, 94, 94, 40, 40, 40, 91, 91, 90, 90, 90, 90, 90, 90, 90, - 90, 117, 117, 117, 117, 35, 35, 35, 35, 35, + 90, 118, 118, 118, 118, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 118, 118, 38, 38, 32, 32, 33, + 39, 39, 39, 103, 103, 38, 38, 32, 32, 33, 34, } @@ -1735,7 +1735,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -111, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -112, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1745,10 +1745,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -112, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -113, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -112, 144, 83, 10, -113, 37, 39, - -6, -112, 83, 146, 160, 147, 10, -116, -50, 148, + 159, 12, 148, -113, 144, 83, 10, -114, 37, 39, + -6, -113, 83, 146, 160, 147, 10, -117, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, @@ -1757,87 +1757,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -112, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -113, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -135, 17, -117, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -112, 80, 83, + 148, -50, -16, 150, 150, -135, 17, -118, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -113, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -117, 17, 17, 76, -117, 150, 148, -91, - -90, -16, 153, 150, 150, 83, -84, 148, -112, 79, + -16, 150, -118, 17, 17, 76, -118, 150, 148, -91, + -90, -16, 153, 150, 150, 83, -84, 148, -113, 79, 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -111, -112, 146, 160, -114, -7, -112, 83, -115, -8, - -112, 83, 29, -112, 10, 162, -26, 145, 2, -27, + -112, -113, 146, 160, -115, -7, -113, 83, -116, -8, + -113, 83, 29, -113, 10, 162, -26, 145, 2, -27, -53, -54, 52, -27, 147, -102, -27, 147, 21, -149, -122, -121, -16, -92, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -88, - -58, -21, -21, -17, -89, 10, -116, 146, 146, 10, - 148, -105, 56, -109, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -89, 10, -117, 146, 146, 10, + 148, -106, 56, -110, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -94, -40, -21, 60, 83, -112, 79, 79, 149, 149, + -94, -40, -21, 60, 83, -113, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -112, 58, -12, 79, - -118, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 10, 144, -83, -84, 79, 83, -113, 58, -12, 79, + -103, -38, -21, -17, -21, -16, -16, -15, 142, 76, 76, -15, -91, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -93, -52, -70, -17, -21, 153, 84, -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -111, 145, -84, -6, 146, 160, 29, -112, - 146, 160, 29, -112, 10, 29, 162, -30, -79, -9, - -33, -112, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -119, -116, - -116, -50, 146, 160, -123, 146, -123, 146, -29, -16, + -16, 146, -112, 145, -84, -6, 146, 160, 29, -113, + 146, 160, 29, -113, 10, 29, 162, -30, -79, -9, + -33, -113, 80, 83, 61, 150, -10, 63, -80, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -119, -117, + -117, -50, 146, 160, -123, 146, -123, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -127, -128, -65, -64, 61, - 62, -47, -112, 80, 83, -108, 57, -47, 144, -106, - -47, -17, -21, -21, 92, 149, 160, 148, -112, -139, + 62, -47, -113, 80, 83, -109, 57, -47, 144, -107, + -47, -17, -21, -21, 92, 149, 160, 148, -113, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -112, -143, -42, 149, + -84, 150, 144, -12, -16, -42, -113, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -112, 148, -98, -99, -79, 17, 79, -79, + 152, 83, -113, 148, -98, -99, -79, 17, 79, -79, -79, -79, -79, -79, 149, -56, 94, 95, -120, 22, 146, -122, -16, 145, 32, 33, -123, 31, -123, 145, - 162, -127, -16, 146, -58, -103, -21, 153, 60, -103, + 162, -127, -16, 146, -58, -104, -21, 153, 60, -104, -59, -27, 147, 10, -30, -124, 42, -127, 149, 160, - -149, 83, -112, 144, -106, -129, 160, -45, 162, -40, + -149, 83, -113, 144, -107, -129, 160, -45, 162, -40, -94, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -112, -98, 151, -3, 160, 59, 10, 53, 149, 146, + -113, -98, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -104, 59, -21, 148, - -104, -116, 162, -60, 43, 148, 149, -110, 45, -65, - -150, 84, -112, -129, 145, -67, -130, -68, -69, -131, + 146, 145, 146, 31, -30, 149, -105, 59, -21, 148, + -105, -117, 162, -60, 43, 148, 149, -111, 45, -65, + -150, 84, -113, -129, 145, -67, -130, -68, -69, -131, -134, 48, 39, 45, -77, 104, 103, 102, 99, 100, 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, 147, 149, -79, -79, -27, 96, -50, 147, -122, -4, - -116, 146, -110, 149, -103, -94, 149, 28, -30, 144, + -117, 146, -111, 149, -104, -94, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -86, 12, 146, 160, - -1, -77, 10, -107, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -116, 149, -116, 144, -100, - -27, 147, 149, -100, 146, -116, 12, -116, -116, -95, + -1, -77, 10, -108, -47, 151, 145, 151, 151, -143, + -19, -79, 59, 146, 147, -117, 149, -117, 144, -100, + -27, 147, 149, -100, 146, -117, 12, -117, -117, -95, 12, 153, 162, 146, 160, 162, 10, -149, 162, -87, - 160, 146, 144, -79, -116, -101, -27, 147, -116, -116, + 160, 146, 144, -79, -117, -101, -27, 147, -117, -117, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -132, -133, -71, -72, -73, -74, - -75, -47, 10, -116, 145, 26, 144, 12, 153, 162, + -75, -47, 10, -117, 145, 26, 144, 12, 153, 162, -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -116, 12, -30, -127, -97, -47, -76, -77, 10, + 146, -117, 12, -30, -127, -97, -47, -76, -77, 10, 146, 145, 149, 160, 10, -125, -126, -61, 42, -96, - 146, 144, -47, -61, 148, -116, -47, 145, 12, 149, - 144, -116, 145, + 146, 144, -47, -61, 148, -117, -47, 145, 12, 149, + 144, -117, 145, } var yyDef = [...]int{ @@ -6051,14 +6051,14 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:3719 { - yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Expr: yyDollar[1].node, + InstanceOfTkn: yyDollar[2].token, + Class: yyDollar[3].node, + } } case 283: yyDollar = yyS[yypt-1 : yypt+1] @@ -8927,19 +8927,20 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:6333 { - yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + IssetTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].token, + } } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6345 +// line internal/php5/php5.y:6346 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8953,7 +8954,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6358 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8967,7 +8968,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6369 +// line internal/php5/php5.y:6370 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -8979,7 +8980,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6379 +// line internal/php5/php5.y:6380 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -8991,7 +8992,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6389 +// line internal/php5/php5.y:6390 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9005,7 +9006,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6401 +// line internal/php5/php5.y:6402 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9017,7 +9018,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6411 +// line internal/php5/php5.y:6412 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9029,34 +9030,36 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6424 +// line internal/php5/php5.y:6425 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6428 +// line internal/php5/php5.y:6431 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6438 +// line internal/php5/php5.y:6441 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6442 +// line internal/php5/php5.y:6445 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6449 +// line internal/php5/php5.y:6452 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9075,7 +9078,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6466 +// line internal/php5/php5.y:6469 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9094,7 +9097,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6486 +// line internal/php5/php5.y:6489 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9113,7 +9116,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6506 +// line internal/php5/php5.y:6509 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 0613a54..07db4b4 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -240,7 +240,7 @@ import ( %type trait_adaptations unset_variables declare_list non_empty_array_pair_list array_pair_list %type switch_case_list non_empty_function_call_parameter_list assignment_list lexical_var_list %type method_body trait_reference_list static_array_pair_list non_empty_static_array_pair_list -%type foreach_statement for_statement while_statement +%type foreach_statement for_statement while_statement isset_variables %type foreach_variable foreach_optional_arg %type extends_from interface_list trait_list %type implements_list @@ -248,7 +248,7 @@ import ( %type lexical_vars %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations -%type inner_statement_list encaps_list isset_variables +%type inner_statement_list encaps_list %type elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches %type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list @@ -3717,14 +3717,14 @@ expr_without_variable: } | expr T_INSTANCEOF class_name_reference { - $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Expr: $1, + InstanceOfTkn: $2, + Class: $3, + } } | parenthesis_expr { @@ -6331,15 +6331,16 @@ encaps_var_offset: internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { - $$ = &ast.ExprIsset{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.VarList, $4.SkippedTokens) + $$ = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + IssetTkn: $1, + OpenParenthesisTkn: $2, + Vars: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: $4, + } } | T_EMPTY '(' variable ')' { @@ -6422,14 +6423,16 @@ internal_functions_in_yacc: isset_variables: isset_variable { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | isset_variables ',' isset_variable { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 25bfa12..9fde4cd 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4992 +// line internal/php7/php7.y:4995 // line yacctab:1 var yyExca = [...]int{ @@ -624,10 +624,10 @@ var yyAct = [...]int{ 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, - 780, 781, 856, 111, 744, 632, 528, 848, 879, 328, - 841, 533, 260, 261, 855, 676, 255, 796, 385, 371, - 656, 859, 136, 852, 934, 114, 662, 845, 227, 877, - 890, 891, 886, 43, 42, 865, 892, 893, 16, 885, + 780, 781, 856, 111, 744, 632, 879, 848, 328, 841, + 676, 533, 260, 261, 855, 255, 796, 385, 371, 656, + 852, 859, 136, 934, 662, 114, 845, 227, 43, 877, + 890, 891, 886, 42, 528, 865, 892, 893, 16, 885, 838, 237, 539, 853, 15, 897, 898, 730, 830, 872, 151, 606, 786, 896, 903, 271, 49, 905, 48, 217, 218, 902, 110, 50, 886, 908, 84, 82, 904, 72, @@ -1426,11 +1426,11 @@ var yyPgo = [...]int{ 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, 907, 905, 34, 890, 889, 8, 887, 80, 41, 886, 56, 49, 883, 882, 878, 876, 875, 86, 871, 870, - 868, 10, 864, 87, 862, 860, 858, 855, 854, 12, - 853, 848, 46, 39, 40, 2, 16, 667, 43, 85, - 847, 846, 844, 13, 843, 840, 555, 839, 45, 71, - 838, 837, 6, 721, 20, 540, 836, 18, 835, 830, - 36, 829, 25, 33, 37, 828, 530, 826, 99, 1, + 868, 10, 864, 87, 862, 860, 858, 855, 854, 853, + 12, 848, 847, 46, 39, 40, 2, 16, 667, 43, + 85, 846, 844, 843, 13, 840, 839, 555, 838, 45, + 71, 837, 836, 6, 721, 20, 540, 835, 18, 830, + 829, 36, 828, 25, 33, 37, 826, 530, 99, 1, 3, 825, 17, 824, 817, 810, 809, 804, 28, } @@ -1443,28 +1443,28 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, - 118, 107, 107, 10, 10, 10, 9, 9, 9, 9, + 118, 108, 108, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 103, 103, 16, 16, 18, 18, 7, 7, 113, - 113, 112, 112, 116, 116, 17, 17, 20, 20, 19, + 9, 104, 104, 16, 16, 18, 18, 7, 7, 114, + 114, 113, 113, 117, 117, 17, 17, 20, 20, 19, 19, 73, 73, 119, 119, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 108, 108, 70, 70, - 26, 26, 97, 97, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 87, 87, 14, 15, 98, 98, - 100, 100, 99, 99, 104, 104, 104, 104, 94, 94, - 93, 93, 25, 25, 91, 91, 91, 91, 114, 114, - 114, 8, 8, 95, 95, 78, 78, 72, 72, 80, - 80, 76, 76, 120, 120, 121, 121, 29, 29, 30, - 30, 86, 86, 84, 84, 84, 85, 85, 88, 88, + 11, 11, 11, 11, 11, 11, 109, 109, 70, 70, + 26, 26, 98, 98, 27, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 88, 88, 14, 15, 99, 99, + 101, 101, 100, 100, 105, 105, 105, 105, 95, 95, + 94, 94, 25, 25, 92, 92, 92, 92, 115, 115, + 115, 8, 8, 96, 96, 79, 79, 72, 72, 81, + 81, 76, 76, 120, 120, 121, 121, 29, 29, 30, + 30, 87, 87, 85, 85, 85, 86, 86, 89, 89, 74, 74, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 122, 122, 37, 37, 37, 37, 71, 71, 90, - 90, 90, 115, 115, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 92, 92, 124, 124, 123, 123, - 125, 125, 102, 102, 102, 102, 102, 102, 75, 75, - 43, 43, 109, 109, 79, 21, 69, 69, 44, 110, - 110, 111, 111, 46, 45, 45, 32, 32, 32, 32, + 36, 122, 122, 37, 37, 37, 37, 71, 71, 91, + 91, 91, 116, 116, 38, 38, 39, 40, 40, 40, + 40, 42, 42, 41, 93, 93, 124, 124, 123, 123, + 125, 125, 103, 103, 103, 103, 103, 103, 75, 75, + 43, 43, 110, 110, 80, 21, 69, 69, 44, 111, + 111, 112, 112, 46, 45, 45, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -1472,19 +1472,19 @@ var yyR1 = [...]int{ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 96, 96, 128, 3, 3, 101, 101, + 32, 32, 32, 97, 97, 128, 3, 3, 102, 102, 77, 77, 55, 55, 56, 56, 56, 56, 47, 47, - 48, 48, 53, 53, 106, 106, 106, 89, 89, 60, + 48, 48, 53, 53, 107, 107, 107, 90, 90, 60, 60, 60, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 61, 61, 61, 23, 23, 24, 24, 59, 62, 62, 62, 63, 63, 63, 64, 64, 64, 64, 64, 64, 28, 28, 28, 49, 49, 49, 65, 65, 66, 66, 66, 66, - 66, 66, 57, 57, 57, 58, 58, 58, 52, 82, - 82, 51, 51, 81, 81, 81, 81, 81, 81, 81, - 105, 105, 105, 105, 67, 67, 67, 67, 67, 67, + 66, 66, 57, 57, 57, 58, 58, 58, 52, 83, + 83, 51, 51, 82, 82, 82, 82, 82, 82, 82, + 106, 106, 106, 106, 67, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 50, 50, 50, 50, 50, - 50, 50, 117, 117, 83, + 50, 50, 78, 78, 84, } var yyR2 = [...]int{ @@ -1545,41 +1545,41 @@ var yyChk = [...]int{ 52, 80, 45, 39, 144, -72, -76, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -78, -80, -28, -32, -87, 7, -64, -65, + 54, 55, -79, -81, -28, -32, -88, 7, -64, -65, -62, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -54, 143, 97, 98, 107, -96, 100, 101, + 6, 158, -54, 143, 97, 98, 107, -97, 100, 101, -49, -61, -56, -47, -59, -60, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -63, 61, 18, -107, 83, 148, 83, -107, 144, 10, - -18, -103, -116, -107, 83, 37, 39, -19, -20, -73, + -63, 61, 18, -108, 83, 148, 83, -108, 144, 10, + -18, -104, -117, -108, 83, 37, 39, -19, -20, -73, -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -96, -36, + -23, 99, -24, -24, -33, -34, -49, -35, -97, -36, 12, -69, -44, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -87, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -88, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -52, -51, -82, -81, -23, 153, + 150, 144, 58, 148, -52, -51, -83, -82, -23, 153, 84, 60, -23, -28, -61, 148, -60, 99, 150, -28, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -53, 148, -23, -106, 17, -105, -67, 12, + -23, -23, -53, 148, -23, -107, 17, -106, -67, 12, 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, -47, -66, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -105, -105, 17, -3, 144, -49, - -88, 148, -88, 148, 83, -107, 149, -107, 146, 144, - -118, 146, -16, -116, -107, 83, 146, 160, 83, 29, - -107, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -110, -111, -23, + -23, -23, 17, 76, -106, -106, 17, -3, 144, -49, + -89, 148, -89, 148, 83, -108, 149, -108, 146, 144, + -118, 146, -16, -117, -108, 83, 146, 160, 83, 29, + -108, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -111, -112, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -97, -27, -28, -23, -73, -119, 146, 146, 10, - -128, 10, -98, 56, -128, -100, 56, 148, -11, 148, + -23, -98, -27, -28, -23, -73, -119, 146, 146, 10, + -128, 10, -99, 56, -128, -101, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, -58, 10, 144, -49, -52, 151, 160, 59, -28, -23, @@ -1593,48 +1593,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -57, -6, -49, - -89, -88, 79, 150, 144, 58, 79, -89, -117, -83, + -90, -89, 79, 150, 144, 58, 79, -90, -78, -84, -23, -23, -23, 76, 76, 142, 148, -23, 149, -74, -31, -23, 84, -52, 10, 146, -118, 145, 146, 146, - 83, -107, -19, 83, -107, 144, 10, 83, -21, -23, + 83, -108, -19, 83, -108, 144, 10, 83, -21, -23, 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -98, - -99, 57, -10, 144, -128, -71, -10, -23, -23, -119, - -23, 149, 151, 145, -88, -23, 149, 162, -82, -23, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -99, + -100, 57, -10, 144, -128, -71, -10, -23, -23, -119, + -23, 149, 151, 145, -89, -23, 149, 162, -83, -23, 153, 60, -52, 149, 151, 149, -68, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -88, -23, - -88, -49, -24, -23, -58, -49, -98, -7, 160, 149, - 149, -120, -121, -29, -30, -86, -84, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -113, - -17, -20, -103, 144, -128, 149, -95, -11, 147, -23, - -110, -23, -91, 144, 147, -23, 149, -27, -104, -28, - 153, 60, 150, -25, -11, 147, -108, 148, -120, -99, + 12, 10, 145, 145, 150, 145, -23, 151, -89, -23, + -89, -49, -24, -23, -58, -49, -99, -7, 160, 149, + 149, -120, -121, -29, -30, -87, -85, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -114, + -17, -20, -104, 144, -128, 149, -96, -11, 147, -23, + -111, -23, -92, 144, 147, -23, 149, -27, -105, -28, + 153, 60, 150, -25, -11, 147, -109, 148, -120, -100, -128, -71, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -99, 149, -83, 149, 160, -1, 153, -84, - 149, -31, -112, -20, 144, -7, 160, -20, -113, 146, - -119, 149, 146, -114, 146, -114, 146, 146, 149, 59, + 151, 145, -100, 149, -84, 149, 160, -1, 153, -85, + 149, -31, -113, -20, 144, -7, 160, -20, -114, 146, + -119, 149, 146, -115, 146, -115, 146, 146, 149, 59, -28, 148, -52, -119, -26, 42, 43, -120, 149, -128, - 144, 145, -37, -124, -123, 45, -125, 48, -102, 104, + 144, 145, -37, -124, -123, 45, -125, 48, -103, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -119, -23, -52, 151, -128, -85, 147, -29, -2, 84, - -7, 160, -112, 145, -17, -7, 22, 146, -110, 145, - 32, 33, -114, 31, -114, -93, -11, 147, -104, -28, - -52, 151, 28, 148, 144, 149, -101, 45, 144, -122, - -30, 39, 37, -71, -102, 145, -119, 149, 145, 144, - -128, -86, 12, 145, -20, -7, 145, 146, 149, -23, + -119, -23, -52, 151, -128, -86, 147, -29, -2, 84, + -7, 160, -113, 145, -17, -7, 22, 146, -111, 145, + 32, 33, -115, 31, -115, -94, -11, 147, -105, -28, + -52, 151, 28, 148, 144, 149, -102, 45, 144, -122, + -30, 39, 37, -71, -103, 145, -119, 149, 145, 144, + -128, -87, 12, 145, -20, -7, 145, 146, 149, -23, -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, - -70, -10, -119, -85, -85, 148, -122, 145, -75, -43, - 12, -109, -79, -6, -3, -90, 146, 144, -122, 59, - 162, 145, -94, -11, 147, -8, -119, 146, 26, -93, + -70, -10, -119, -86, -86, 148, -122, 145, -75, -43, + 12, -110, -80, -6, -3, -91, 146, 144, -122, 59, + 162, 145, -95, -11, 147, -8, -119, 146, 26, -94, 12, 161, 145, 144, 144, -77, -55, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -115, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -116, -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, - 160, 12, -43, -23, -79, -23, -128, 145, -38, 146, + 160, 12, -43, -23, -80, -23, -128, 145, -38, 146, 146, 46, 29, 79, 24, 144, 145, 145, -55, -128, - -128, 148, -71, 10, -4, -102, -6, 146, -119, -120, - -6, 145, 149, -85, -92, 146, 144, -119, 145, + -128, 148, -71, 10, -4, -103, -6, 146, -119, -120, + -6, 145, 149, -86, -93, 146, 144, -119, 145, } var yyDef = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:290 + // line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2121,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:320 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:331 + // line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:342 + // line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:349 + // line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:361 + // line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:375 + // line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:384 + // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:395 + // line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:408 + // line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:413 + // line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:445 + // line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:461 + // line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:479 + // line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:491 + // line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:501 + // line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:512 + // line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:523 + // line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:535 + // line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:550 + // line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:560 + // line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:573 + // line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:595 + // line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:619 + // line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:639 + // line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:663 + // line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:674 + // line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:680 + // line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:687 + // line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:693 + // line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:700 + // line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:706 + // line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:713 + // line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:728 + // line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:742 + // line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:767 + // line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:771 + // line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:782 + // line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:789 + // line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:798 + // line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:816 + // line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:821 + // line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:855 + // line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:866 + // line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:884 + // line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:899 + // line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:913 + // line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:923 + // line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:934 + // line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:945 + // line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:956 + // line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:964 + // line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:980 + // line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:990 + // line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1000 + // line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1011 + // line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1023 + // line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1037 + // line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1124 + // line internal/php7/php7.y:1124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3511,7 +3511,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1155 + // line internal/php7/php7.y:1155 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3519,7 +3519,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1161 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3528,13 +3528,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1171 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1175 + // line internal/php7/php7.y:1175 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3548,7 +3548,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1190 + // line internal/php7/php7.y:1190 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3556,7 +3556,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1196 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3565,13 +3565,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1206 + // line internal/php7/php7.y:1206 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1213 + // line internal/php7/php7.y:1213 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3598,31 +3598,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1241 + // line internal/php7/php7.y:1241 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1245 + // line internal/php7/php7.y:1245 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1252 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1256 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1263 + // line internal/php7/php7.y:1263 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3646,7 +3646,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1285 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3669,19 +3669,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1309 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1313 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1320 + // line internal/php7/php7.y:1320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3693,7 +3693,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1330 + // line internal/php7/php7.y:1330 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3705,7 +3705,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1343 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3726,7 +3726,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1365 + // line internal/php7/php7.y:1365 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3748,13 +3748,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1388 + // line internal/php7/php7.y:1388 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1392 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3766,13 +3766,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1405 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1409 + // line internal/php7/php7.y:1409 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3785,13 +3785,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1423 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1427 + // line internal/php7/php7.y:1427 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3804,13 +3804,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1441 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1445 + // line internal/php7/php7.y:1445 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3822,7 +3822,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1455 + // line internal/php7/php7.y:1455 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3851,7 +3851,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3862,7 +3862,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3882,7 +3882,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1513 + // line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3893,7 +3893,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3913,7 +3913,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1543 + // line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3924,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1552 + // line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3944,7 +3944,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1573 + // line internal/php7/php7.y:1573 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3957,7 +3957,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1584 + // line internal/php7/php7.y:1584 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,7 +3971,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1596 + // line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,7 +3986,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1609 + // line internal/php7/php7.y:1609 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4002,13 +4002,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1626 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1630 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4022,7 +4022,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1642 + // line internal/php7/php7.y:1642 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4035,19 +4035,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1667 + // line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4058,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1676 + // line internal/php7/php7.y:1676 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4078,7 +4078,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1697 + // line internal/php7/php7.y:1697 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4093,7 +4093,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1710 + // line internal/php7/php7.y:1710 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4112,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1730 + // line internal/php7/php7.y:1730 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1734 + // line internal/php7/php7.y:1734 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4134,7 +4134,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1751 + // line internal/php7/php7.y:1751 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4156,7 +4156,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1771 + // line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4180,7 +4180,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1796 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4190,7 +4190,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1804 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4214,25 +4214,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1829 + // line internal/php7/php7.y:1829 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1833 + // line internal/php7/php7.y:1833 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1844 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4241,7 +4241,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1854 + // line internal/php7/php7.y:1854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4295,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1906 + // line internal/php7/php7.y:1906 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4352,25 +4352,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1964 + // line internal/php7/php7.y:1964 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1968 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1975 + // line internal/php7/php7.y:1975 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1979 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4382,7 +4382,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1992 + // line internal/php7/php7.y:1992 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4394,7 +4394,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2002 + // line internal/php7/php7.y:2002 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4406,19 +4406,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2012 + // line internal/php7/php7.y:2012 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2019 + // line internal/php7/php7.y:2019 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2023 + // line internal/php7/php7.y:2023 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4427,7 +4427,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2033 + // line internal/php7/php7.y:2033 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4439,7 +4439,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2043 + // line internal/php7/php7.y:2043 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4451,7 +4451,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2056 + // line internal/php7/php7.y:2056 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4459,7 +4459,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2062 + // line internal/php7/php7.y:2062 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4468,7 +4468,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2072 + // line internal/php7/php7.y:2072 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4479,7 +4479,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2081 + // line internal/php7/php7.y:2081 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4491,7 +4491,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2094 + // line internal/php7/php7.y:2094 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4500,7 +4500,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2101 + // line internal/php7/php7.y:2101 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4508,13 +4508,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2110 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2117 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4523,7 +4523,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2124 + // line internal/php7/php7.y:2124 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4531,7 +4531,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2133 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4557,7 +4557,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2157 + // line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4584,19 +4584,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2185 + // line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2196 + // line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4611,7 +4611,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2209 + // line internal/php7/php7.y:2209 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4625,7 +4625,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2221 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4639,7 +4639,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2233 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4670,7 +4670,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4678,7 +4678,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2271 + // line internal/php7/php7.y:2271 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4687,7 +4687,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4698,7 +4698,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2290 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4710,7 +4710,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4723,19 +4723,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2318 + // line internal/php7/php7.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2325 + // line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4745,7 +4745,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2333 { yyVAL.node = yyDollar[1].node @@ -4755,7 +4755,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2344 + // line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4769,7 +4769,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2359 + // line internal/php7/php7.y:2359 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4788,7 +4788,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2376 + // line internal/php7/php7.y:2376 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4807,7 +4807,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4827,7 +4827,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4840,7 +4840,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2425 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4857,13 +4857,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2440 + // line internal/php7/php7.y:2440 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4882,7 +4882,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4893,7 +4893,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2476 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4906,13 +4906,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2490 + // line internal/php7/php7.y:2490 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2494 + // line internal/php7/php7.y:2494 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4926,31 +4926,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2509 + // line internal/php7/php7.y:2509 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2513 + // line internal/php7/php7.y:2513 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2520 + // line internal/php7/php7.y:2520 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2524 + // line internal/php7/php7.y:2524 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2531 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4962,7 +4962,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2541 + // line internal/php7/php7.y:2541 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4974,7 +4974,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2551 + // line internal/php7/php7.y:2551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4986,7 +4986,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2561 + // line internal/php7/php7.y:2561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4998,7 +4998,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2571 + // line internal/php7/php7.y:2571 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5010,7 +5010,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2581 + // line internal/php7/php7.y:2581 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5022,7 +5022,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2594 + // line internal/php7/php7.y:2594 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5031,7 +5031,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2601 + // line internal/php7/php7.y:2601 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5039,7 +5039,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5062,7 +5062,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2631 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5086,7 +5086,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2656 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2662 + // line internal/php7/php7.y:2662 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2669 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2691 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2713 + // line internal/php7/php7.y:2713 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2720 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2729 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2736 + // line internal/php7/php7.y:2736 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2740 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2747 + // line internal/php7/php7.y:2747 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2754 + // line internal/php7/php7.y:2754 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2761 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5209,7 +5209,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2779 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} @@ -5224,7 +5224,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2792 + // line internal/php7/php7.y:2792 { yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} @@ -5236,7 +5236,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2805 + // line internal/php7/php7.y:2805 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5258,7 +5258,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2825 + // line internal/php7/php7.y:2825 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5279,7 +5279,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2844 + // line internal/php7/php7.y:2844 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5292,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2855 + // line internal/php7/php7.y:2855 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5306,7 +5306,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5318,7 +5318,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2877 + // line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5331,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2888 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5344,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2899 + // line internal/php7/php7.y:2899 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5357,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2910 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5370,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2921 + // line internal/php7/php7.y:2921 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5383,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2932 + // line internal/php7/php7.y:2932 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5396,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2943 + // line internal/php7/php7.y:2943 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5409,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5422,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2965 + // line internal/php7/php7.y:2965 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5435,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2976 + // line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5448,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2987 + // line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5461,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2998 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5474,7 +5474,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3009 + // line internal/php7/php7.y:3009 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5487,7 +5487,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3020 + // line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} @@ -5500,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} @@ -5512,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} @@ -5525,7 +5525,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3052 + // line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} @@ -5537,7 +5537,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3062 + // line internal/php7/php7.y:3062 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5550,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3073 + // line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5563,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3084 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5576,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5589,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3106 + // line internal/php7/php7.y:3106 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5602,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3117 + // line internal/php7/php7.y:3117 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5615,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3128 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5628,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3139 + // line internal/php7/php7.y:3139 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5641,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3150 + // line internal/php7/php7.y:3150 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5653,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5666,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3171 + // line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5679,7 +5679,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3182 + // line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5692,7 +5692,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5705,7 +5705,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3204 + // line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5718,7 +5718,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5731,7 +5731,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3226 + // line internal/php7/php7.y:3226 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5744,7 +5744,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3237 + // line internal/php7/php7.y:3237 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5757,7 +5757,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3248 + // line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5769,7 +5769,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5781,7 +5781,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3268 + // line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5793,7 +5793,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3278 + // line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5805,7 +5805,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3288 + // line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5818,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3299 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5831,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5844,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3321 + // line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5858,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3333 + // line internal/php7/php7.y:3333 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5871,7 +5871,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3344 + // line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5884,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3355 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5897,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3366 + // line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5910,7 +5910,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3377 + // line internal/php7/php7.y:3377 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5923,20 +5923,20 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3388 { - yyVAL.node = &ast.ExprInstanceOf{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Expr: yyDollar[1].node, + InstanceOfTkn: yyDollar[2].token, + Class: yyDollar[3].node, + } } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3399 + // line internal/php7/php7.y:3399 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5953,13 +5953,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3414 + // line internal/php7/php7.y:3414 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3418 + // line internal/php7/php7.y:3418 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5973,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5987,7 +5987,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6000,13 +6000,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3457 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6019,7 +6019,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3468 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6032,7 +6032,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3479 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6045,7 +6045,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6058,7 +6058,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6071,7 +6071,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3512 + // line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6084,7 +6084,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3523 + // line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6097,7 +6097,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3534 + // line internal/php7/php7.y:3534 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6116,7 +6116,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3551 + // line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6128,13 +6128,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3561 + // line internal/php7/php7.y:3561 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3565 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6146,7 +6146,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3575 + // line internal/php7/php7.y:3575 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6158,7 +6158,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3585 + // line internal/php7/php7.y:3585 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6170,7 +6170,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3595 + // line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6182,7 +6182,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3605 + // line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6195,7 +6195,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3616 + // line internal/php7/php7.y:3616 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6207,13 +6207,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3626 + // line internal/php7/php7.y:3626 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3630 + // line internal/php7/php7.y:3630 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6228,7 +6228,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3646 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6249,7 +6249,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3665 + // line internal/php7/php7.y:3665 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6268,25 +6268,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3689 + // line internal/php7/php7.y:3689 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3693 + // line internal/php7/php7.y:3693 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3700 + // line internal/php7/php7.y:3700 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3704 + // line internal/php7/php7.y:3704 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6301,7 +6301,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3720 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6310,7 +6310,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3727 + // line internal/php7/php7.y:3727 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6318,7 +6318,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3736 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6337,7 +6337,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3753 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6359,7 +6359,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3776 + // line internal/php7/php7.y:3776 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6373,7 +6373,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3788 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6386,7 +6386,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3799 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6399,7 +6399,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3810 + // line internal/php7/php7.y:3810 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6413,7 +6413,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3825 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6425,31 +6425,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3835 + // line internal/php7/php7.y:3835 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3842 + // line internal/php7/php7.y:3842 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3846 + // line internal/php7/php7.y:3846 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3853 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3857 + // line internal/php7/php7.y:3857 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6466,13 +6466,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3875 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3879 + // line internal/php7/php7.y:3879 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6486,25 +6486,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3891 + // line internal/php7/php7.y:3891 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3898 + // line internal/php7/php7.y:3898 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3902 + // line internal/php7/php7.y:3902 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3909 + // line internal/php7/php7.y:3909 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6519,7 +6519,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3922 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6533,7 +6533,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3934 + // line internal/php7/php7.y:3934 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6545,7 +6545,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3947 + // line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6557,7 +6557,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3957 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6569,7 +6569,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3967 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6581,7 +6581,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6593,7 +6593,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3987 + // line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6605,7 +6605,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3997 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6617,7 +6617,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4007 + // line internal/php7/php7.y:4007 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6629,7 +6629,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4017 + // line internal/php7/php7.y:4017 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6641,7 +6641,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4027 + // line internal/php7/php7.y:4027 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6653,7 +6653,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4037 + // line internal/php7/php7.y:4037 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6665,7 +6665,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4047 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6686,7 +6686,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4066 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6698,7 +6698,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4076 + // line internal/php7/php7.y:4076 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6711,7 +6711,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6724,19 +6724,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4098 + // line internal/php7/php7.y:4098 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4102 + // line internal/php7/php7.y:4102 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4109 + // line internal/php7/php7.y:4109 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6747,7 +6747,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4118 + // line internal/php7/php7.y:4118 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6766,7 +6766,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4135 + // line internal/php7/php7.y:4135 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6785,43 +6785,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4155 + // line internal/php7/php7.y:4155 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4159 + // line internal/php7/php7.y:4159 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4166 + // line internal/php7/php7.y:4166 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4170 + // line internal/php7/php7.y:4170 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4177 + // line internal/php7/php7.y:4177 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4184 + // line internal/php7/php7.y:4184 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4188 + // line internal/php7/php7.y:4188 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6838,19 +6838,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4203 + // line internal/php7/php7.y:4203 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4210 + // line internal/php7/php7.y:4210 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4214 + // line internal/php7/php7.y:4214 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6867,19 +6867,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4229 + // line internal/php7/php7.y:4229 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4236 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4240 + // line internal/php7/php7.y:4240 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6893,7 +6893,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4252 + // line internal/php7/php7.y:4252 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6907,7 +6907,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4264 + // line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6921,7 +6921,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4276 + // line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6934,25 +6934,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4287 + // line internal/php7/php7.y:4287 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4294 + // line internal/php7/php7.y:4294 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4298 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4302 + // line internal/php7/php7.y:4302 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6965,7 +6965,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4316 + // line internal/php7/php7.y:4316 { name := &ast.Identifier{ Node: ast.Node{ @@ -6984,7 +6984,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6998,7 +6998,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4345 + // line internal/php7/php7.y:4345 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7010,7 +7010,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4358 + // line internal/php7/php7.y:4358 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7023,7 +7023,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4369 + // line internal/php7/php7.y:4369 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7036,13 +7036,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4383 + // line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4387 + // line internal/php7/php7.y:4387 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7056,7 +7056,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4399 + // line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7070,7 +7070,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7083,7 +7083,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4422 + // line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7096,7 +7096,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4433 + // line internal/php7/php7.y:4433 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7109,7 +7109,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4447 + // line internal/php7/php7.y:4447 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7121,7 +7121,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4457 + // line internal/php7/php7.y:4457 { yyVAL.node = yyDollar[2].node @@ -7131,13 +7131,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4465 + // line internal/php7/php7.y:4465 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4472 + // line internal/php7/php7.y:4472 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7149,7 +7149,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4482 + // line internal/php7/php7.y:4482 { yyVAL.node = yyDollar[2].node @@ -7159,13 +7159,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4490 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4497 + // line internal/php7/php7.y:4497 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7178,19 +7178,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4511 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4515 + // line internal/php7/php7.y:4515 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4522 + // line internal/php7/php7.y:4522 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7199,7 +7199,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4529 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7207,7 +7207,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4538 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7220,7 +7220,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4549 + // line internal/php7/php7.y:4549 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7231,7 +7231,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4558 + // line internal/php7/php7.y:4558 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7249,7 +7249,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4574 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7265,7 +7265,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4588 + // line internal/php7/php7.y:4588 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7277,7 +7277,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4598 + // line internal/php7/php7.y:4598 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7299,7 +7299,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4618 + // line internal/php7/php7.y:4618 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7319,13 +7319,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4639 + // line internal/php7/php7.y:4639 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4643 + // line internal/php7/php7.y:4643 { yyVAL.list = append( yyDollar[1].list, @@ -7340,13 +7340,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4656 + // line internal/php7/php7.y:4656 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4660 + // line internal/php7/php7.y:4660 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7361,7 +7361,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4676 + // line internal/php7/php7.y:4676 { name := &ast.Identifier{ Node: ast.Node{ @@ -7380,7 +7380,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4693 + // line internal/php7/php7.y:4693 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7405,7 +7405,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4716 + // line internal/php7/php7.y:4716 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7433,7 +7433,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4742 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7448,7 +7448,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4755 + // line internal/php7/php7.y:4755 { name := &ast.Identifier{ Node: ast.Node{ @@ -7470,7 +7470,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4775 + // line internal/php7/php7.y:4775 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7497,7 +7497,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4800 + // line internal/php7/php7.y:4800 { yyVAL.node = yyDollar[2].node @@ -7507,7 +7507,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4811 + // line internal/php7/php7.y:4811 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7519,7 +7519,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4821 + // line internal/php7/php7.y:4821 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7542,7 +7542,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4842 + // line internal/php7/php7.y:4842 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7570,7 +7570,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4868 + // line internal/php7/php7.y:4868 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7589,25 +7589,26 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4888 + // line internal/php7/php7.y:4888 { - yyVAL.node = &ast.ExprIsset{ast.Node{}, yyDollar[3].list} + if yyDollar[4].token != nil { + yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) + } - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Isset, yyDollar[2].token.SkippedTokens) - if yyDollar[4].token == nil { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, yyDollar[5].token.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating(yyVAL.node, token.VarList, append(yyDollar[4].token.SkippedTokens, yyDollar[5].token.SkippedTokens...)) + yyVAL.node = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + }, + IssetTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[5].token, } } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4904 + // line internal/php7/php7.y:4905 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7621,7 +7622,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4916 + // line internal/php7/php7.y:4917 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7633,7 +7634,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4926 + // line internal/php7/php7.y:4927 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7645,7 +7646,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4936 + // line internal/php7/php7.y:4937 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7659,7 +7660,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4948 + // line internal/php7/php7.y:4949 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7671,7 +7672,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4958 + // line internal/php7/php7.y:4959 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7683,22 +7684,24 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4971 + // line internal/php7/php7.y:4972 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4975 + // line internal/php7/php7.y:4978 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4985 + // line internal/php7/php7.y:4988 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 5fe9dd0..2e1cdb4 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -247,7 +247,7 @@ import ( %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list name_list %type if_stmt const_list non_empty_argument_list property_list -%type alt_if_stmt lexical_var_list +%type alt_if_stmt lexical_var_list isset_variables %type if_stmt_without_else %type class_const_decl %type alt_if_stmt_without_else @@ -275,7 +275,7 @@ import ( %type for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations %type case_list trait_adaptation_list -%type use_declarations isset_variables +%type use_declarations %type top_statement_list %type inner_statement_list parameter_list non_empty_parameter_list class_statement_list %type method_modifiers variable_modifiers @@ -3386,14 +3386,14 @@ expr_without_variable: } | expr T_INSTANCEOF class_name_reference { - $$ = &ast.ExprInstanceOf{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprInstanceOf{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Expr: $1, + InstanceOfTkn: $2, + Class: $3, + } } | '(' expr ')' { @@ -4886,18 +4886,19 @@ encaps_var_offset: internal_functions_in_yacc: T_ISSET '(' isset_variables possible_comma ')' { - $$ = &ast.ExprIsset{ast.Node{}, $3} + if $4 != nil { + $3.(*ast.ParserSeparatedList).SeparatorTkns = append($3.(*ast.ParserSeparatedList).SeparatorTkns, $4) + } - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Isset, $2.SkippedTokens) - if $4 == nil { - yylex.(*Parser).setFreeFloating($$, token.VarList, $5.SkippedTokens) - } else { - yylex.(*Parser).setFreeFloating($$, token.VarList, append($4.SkippedTokens, $5.SkippedTokens...)) + $$ = &ast.ExprIsset{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $5), + }, + IssetTkn: $1, + OpenParenthesisTkn: $2, + Vars: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseParenthesisTkn: $5, } } | T_EMPTY '(' expr ')' @@ -4969,14 +4970,16 @@ internal_functions_in_yacc: isset_variables: isset_variable { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | isset_variables ',' isset_variable { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 93d9001..54ae3de 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1175,8 +1175,9 @@ func (n *ExprIncludeOnce) Accept(v NodeVisitor) { // ExprInstanceOf node type ExprInstanceOf struct { Node - Expr Vertex - Class Vertex + Expr Vertex + InstanceOfTkn *token.Token + Class Vertex } func (n *ExprInstanceOf) Accept(v NodeVisitor) { @@ -1186,7 +1187,11 @@ func (n *ExprInstanceOf) Accept(v NodeVisitor) { // ExprIsset node type ExprIsset struct { Node - Vars []Vertex + IssetTkn *token.Token + OpenParenthesisTkn *token.Token + Vars []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token } func (n *ExprIsset) Accept(v NodeVisitor) { From b1e9f5e167716f79940418517ae61065c7532fe8 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Thu, 3 Dec 2020 21:42:16 +0200 Subject: [PATCH 087/140] [refactoring] update ast structure of "ExprMethodCall" and "ExprPropertyFetch" nodes --- internal/php5/parser_test.go | 2 + internal/php5/php5.go | 647 ++++++++++++++++++---------------- internal/php5/php5.y | 176 +++++---- internal/php7/php7.go | 209 +++++------ internal/php7/php7.y | 91 ++--- pkg/ast/node.go | 14 +- pkg/ast/traverser/dfs.go | 10 +- pkg/printer/pretty_printer.go | 2 +- pkg/printer/printer.go | 6 +- 9 files changed, 638 insertions(+), 519 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 0eb1d67..a2b90ea 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -17236,6 +17236,8 @@ func TestExprPrint(t *testing.T) { assert.DeepEqual(t, expected, actual) } +// TODO add test for `echo $a->b["c"]()->d["e"]();` + func TestExprPropertyFetch(t *testing.T) { src := `foo;` diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8501768..040152d 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6527 +// line internal/php5/php5.y:6577 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -6084,29 +6084,31 @@ yydefault: for _, n := range yyDollar[4].list { switch nn := n.(type) { + case *ast.ExprFunctionCall: + nn.Function = yyVAL.node + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + yyVAL.node = nn + case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprMethodCall: nn.Var = yyVAL.node + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, n) } } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3768 +// line internal/php5/php5.y:3770 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6120,7 +6122,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3780 +// line internal/php5/php5.y:3782 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6134,13 +6136,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3792 +// line internal/php5/php5.y:3794 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3796 +// line internal/php5/php5.y:3798 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6153,7 +6155,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3807 +// line internal/php5/php5.y:3809 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6166,7 +6168,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3818 +// line internal/php5/php5.y:3820 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6179,7 +6181,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3829 +// line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6192,7 +6194,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3840 +// line internal/php5/php5.y:3842 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6205,7 +6207,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3851 +// line internal/php5/php5.y:3853 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6218,7 +6220,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3862 +// line internal/php5/php5.y:3864 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6231,7 +6233,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3873 +// line internal/php5/php5.y:3875 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6250,7 +6252,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3890 +// line internal/php5/php5.y:3892 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6262,25 +6264,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3900 +// line internal/php5/php5.y:3902 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3904 +// line internal/php5/php5.y:3906 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3908 +// line internal/php5/php5.y:3910 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3912 +// line internal/php5/php5.y:3914 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6292,7 +6294,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3922 +// line internal/php5/php5.y:3924 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6304,7 +6306,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3932 +// line internal/php5/php5.y:3934 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6316,7 +6318,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3942 +// line internal/php5/php5.y:3944 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6335,7 +6337,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3959 +// line internal/php5/php5.y:3961 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6355,7 +6357,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3980 +// line internal/php5/php5.y:3982 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6367,7 +6369,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3990 +// line internal/php5/php5.y:3992 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6379,7 +6381,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4000 +// line internal/php5/php5.y:4002 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6392,7 +6394,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4011 +// line internal/php5/php5.y:4013 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6405,7 +6407,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4025 +// line internal/php5/php5.y:4027 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6419,7 +6421,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4037 +// line internal/php5/php5.y:4039 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6433,7 +6435,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4049 +// line internal/php5/php5.y:4051 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6453,7 +6455,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4067 +// line internal/php5/php5.y:4069 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6467,7 +6469,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4082 +// line internal/php5/php5.y:4084 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6482,7 +6484,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4095 +// line internal/php5/php5.y:4097 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6496,19 +6498,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4110 +// line internal/php5/php5.y:4112 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4117 +// line internal/php5/php5.y:4119 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4121 +// line internal/php5/php5.y:4123 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6523,7 +6525,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4137 +// line internal/php5/php5.y:4139 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6545,7 +6547,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4159 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6572,7 +6574,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4182 +// line internal/php5/php5.y:4184 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6593,7 +6595,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4201 +// line internal/php5/php5.y:4203 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6619,7 +6621,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4228 +// line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6638,7 +6640,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4245 +// line internal/php5/php5.y:4247 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6659,7 +6661,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4264 +// line internal/php5/php5.y:4266 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6679,7 +6681,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4282 +// line internal/php5/php5.y:4284 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6692,7 +6694,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4293 +// line internal/php5/php5.y:4295 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6705,7 +6707,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4304 +// line internal/php5/php5.y:4306 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6718,7 +6720,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4315 +// line internal/php5/php5.y:4317 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6731,7 +6733,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4326 +// line internal/php5/php5.y:4328 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6745,7 +6747,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4343 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6757,7 +6759,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4353 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6768,7 +6770,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4360 +// line internal/php5/php5.y:4362 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6781,7 +6783,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4371 +// line internal/php5/php5.y:4373 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6793,7 +6795,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4384 +// line internal/php5/php5.y:4386 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6804,7 +6806,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4393 +// line internal/php5/php5.y:4395 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6817,7 +6819,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4404 +// line internal/php5/php5.y:4406 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6829,19 +6831,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4417 +// line internal/php5/php5.y:4419 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4421 +// line internal/php5/php5.y:4423 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4428 +// line internal/php5/php5.y:4430 { yyVAL.node = yyDollar[1].node @@ -6882,25 +6884,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4467 +// line internal/php5/php5.y:4469 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4475 +// line internal/php5/php5.y:4477 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4479 +// line internal/php5/php5.y:4481 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4487 +// line internal/php5/php5.y:4489 { yyVAL.list = yyDollar[2].list @@ -6909,13 +6911,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4497 +// line internal/php5/php5.y:4499 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4503 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6931,19 +6933,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4515 +// line internal/php5/php5.y:4517 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4522 +// line internal/php5/php5.y:4524 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4526 +// line internal/php5/php5.y:4528 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6957,25 +6959,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4538 +// line internal/php5/php5.y:4540 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4545 +// line internal/php5/php5.y:4547 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4549 +// line internal/php5/php5.y:4551 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4556 +// line internal/php5/php5.y:4558 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6987,7 +6989,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4566 +// line internal/php5/php5.y:4568 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6999,7 +7001,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4576 +// line internal/php5/php5.y:4578 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7011,7 +7013,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4586 +// line internal/php5/php5.y:4588 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7023,7 +7025,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4598 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7035,7 +7037,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4606 +// line internal/php5/php5.y:4608 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7047,7 +7049,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4616 +// line internal/php5/php5.y:4618 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7059,7 +7061,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4626 +// line internal/php5/php5.y:4628 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7071,7 +7073,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4636 +// line internal/php5/php5.y:4638 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7083,7 +7085,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4646 +// line internal/php5/php5.y:4648 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7095,7 +7097,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4656 +// line internal/php5/php5.y:4658 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7116,7 +7118,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4675 +// line internal/php5/php5.y:4677 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7128,7 +7130,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4688 +// line internal/php5/php5.y:4690 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7147,25 +7149,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4708 +// line internal/php5/php5.y:4710 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4715 +// line internal/php5/php5.y:4717 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4719 +// line internal/php5/php5.y:4721 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4723 +// line internal/php5/php5.y:4725 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7181,7 +7183,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4737 +// line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7199,7 +7201,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4753 +// line internal/php5/php5.y:4755 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7216,7 +7218,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4768 +// line internal/php5/php5.y:4770 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7231,7 +7233,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4781 +// line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7245,13 +7247,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4793 +// line internal/php5/php5.y:4795 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4797 +// line internal/php5/php5.y:4799 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7263,13 +7265,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4809 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4814 +// line internal/php5/php5.y:4816 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7283,7 +7285,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4826 +// line internal/php5/php5.y:4828 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7296,7 +7298,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4837 +// line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7309,7 +7311,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4848 +// line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7322,7 +7324,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4859 +// line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7335,7 +7337,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4870 +// line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7348,7 +7350,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4881 +// line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7361,7 +7363,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4892 +// line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7373,7 +7375,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4902 +// line internal/php5/php5.y:4904 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7385,7 +7387,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4912 +// line internal/php5/php5.y:4914 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7398,7 +7400,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4923 +// line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7411,7 +7413,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4934 +// line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7424,7 +7426,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4945 +// line internal/php5/php5.y:4947 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7437,7 +7439,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4956 +// line internal/php5/php5.y:4958 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7450,7 +7452,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4967 +// line internal/php5/php5.y:4969 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7463,7 +7465,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4978 +// line internal/php5/php5.y:4980 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7476,7 +7478,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4989 +// line internal/php5/php5.y:4991 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7489,7 +7491,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5000 +// line internal/php5/php5.y:5002 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7502,7 +7504,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5013 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7515,7 +7517,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5022 +// line internal/php5/php5.y:5024 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7528,7 +7530,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5033 +// line internal/php5/php5.y:5035 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7541,7 +7543,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5044 +// line internal/php5/php5.y:5046 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7554,7 +7556,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5055 +// line internal/php5/php5.y:5057 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7567,7 +7569,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5066 +// line internal/php5/php5.y:5068 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7581,7 +7583,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5078 +// line internal/php5/php5.y:5080 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7594,7 +7596,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5089 +// line internal/php5/php5.y:5091 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7607,7 +7609,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5100 +// line internal/php5/php5.y:5102 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7620,7 +7622,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5111 +// line internal/php5/php5.y:5113 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7633,7 +7635,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5124 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7647,7 +7649,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5134 +// line internal/php5/php5.y:5136 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7661,7 +7663,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5146 +// line internal/php5/php5.y:5148 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7673,7 +7675,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5156 +// line internal/php5/php5.y:5158 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7685,7 +7687,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5166 +// line internal/php5/php5.y:5168 { yyVAL.node = yyDollar[2].node @@ -7695,13 +7697,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5177 +// line internal/php5/php5.y:5179 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5181 +// line internal/php5/php5.y:5183 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7717,7 +7719,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5195 +// line internal/php5/php5.y:5197 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7735,7 +7737,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5211 +// line internal/php5/php5.y:5213 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7752,7 +7754,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5229 +// line internal/php5/php5.y:5231 { name := &ast.Identifier{ Node: ast.Node{ @@ -7771,25 +7773,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5246 +// line internal/php5/php5.y:5248 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5250 +// line internal/php5/php5.y:5252 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5254 +// line internal/php5/php5.y:5256 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5258 +// line internal/php5/php5.y:5260 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7802,7 +7804,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5269 +// line internal/php5/php5.y:5271 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7815,7 +7817,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5280 +// line internal/php5/php5.y:5282 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7827,13 +7829,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5293 +// line internal/php5/php5.y:5295 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5297 +// line internal/php5/php5.y:5299 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7844,19 +7846,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5309 +// line internal/php5/php5.y:5311 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5313 +// line internal/php5/php5.y:5315 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5320 +// line internal/php5/php5.y:5322 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7874,7 +7876,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5336 +// line internal/php5/php5.y:5338 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7890,7 +7892,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5350 +// line internal/php5/php5.y:5352 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7907,7 +7909,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5365 +// line internal/php5/php5.y:5367 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7922,19 +7924,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5381 +// line internal/php5/php5.y:5383 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5385 +// line internal/php5/php5.y:5387 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5392 +// line internal/php5/php5.y:5394 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7951,7 +7953,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5407 +// line internal/php5/php5.y:5409 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7968,115 +7970,152 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5426 +// line internal/php5/php5.y:5428 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5434 +// line internal/php5/php5.y:5436 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5441 +// line internal/php5/php5.y:5443 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5448 +// line internal/php5/php5.y:5450 { yyVAL.node = yyDollar[1].node - if yyDollar[4].list != nil { - yyDollar[4].list[0].(*ast.ExprMethodCall).Method = yyDollar[3].list[len(yyDollar[3].list)-1].(*ast.ExprPropertyFetch).Property - yyDollar[3].list = append(yyDollar[3].list[:len(yyDollar[3].list)-1], yyDollar[4].list...) - } + yyDollar[3].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.SkippedTokens) + if yyDollar[4].list != nil { + last := yyDollar[3].list[len(yyDollar[3].list)-1] + switch l := last.(type) { + case *ast.ExprArrayDimFetch: + mc := yyDollar[4].list[0].(*ast.ExprMethodCall) + yyDollar[3].list = append(yyDollar[3].list, &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodePosition(mc), + }, + OpenParenthesisTkn: mc.OpenParenthesisTkn, + Arguments: mc.Arguments, + CloseParenthesisTkn: mc.OpenParenthesisTkn, + }, + ) + yyDollar[3].list = append(yyDollar[3].list, yyDollar[4].list[1:len(yyDollar[4].list)]...) + case *ast.ExprPropertyFetch: + yyDollar[4].list[0].(*ast.ExprMethodCall).Method = l.Property + yyDollar[4].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn + yyDollar[3].list = append(yyDollar[3].list[:len(yyDollar[3].list)-1], yyDollar[4].list...) + } + } for _, n := range yyDollar[3].list { switch nn := n.(type) { + case *ast.ExprFunctionCall: + nn.Function = yyVAL.node + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + yyVAL.node = nn + case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } for _, n := range yyDollar[5].list { switch nn := n.(type) { + case *ast.ExprFunctionCall: + nn.Function = yyVAL.node + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + yyVAL.node = nn + case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5504 +// line internal/php5/php5.y:5526 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5511 +// line internal/php5/php5.y:5533 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5515 +// line internal/php5/php5.y:5537 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5523 +// line internal/php5/php5.y:5545 { + println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") + yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token + if yyDollar[3].list != nil { - yyDollar[3].list[0].(*ast.ExprMethodCall).Method = yyDollar[2].list[len(yyDollar[2].list)-1].(*ast.ExprPropertyFetch).Property - yyDollar[2].list = append(yyDollar[2].list[:len(yyDollar[2].list)-1], yyDollar[3].list...) + last := yyDollar[2].list[len(yyDollar[2].list)-1] + switch l := last.(type) { + case *ast.ExprArrayDimFetch: + mc := yyDollar[3].list[0].(*ast.ExprMethodCall) + yyDollar[2].list = append(yyDollar[2].list, &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodePosition(mc), + }, + OpenParenthesisTkn: mc.OpenParenthesisTkn, + Arguments: mc.Arguments, + CloseParenthesisTkn: mc.OpenParenthesisTkn, + }, + ) + yyDollar[2].list = append(yyDollar[2].list, yyDollar[3].list[1:len(yyDollar[3].list)]...) + case *ast.ExprPropertyFetch: + yyDollar[3].list[0].(*ast.ExprMethodCall).Method = l.Property + yyDollar[3].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn + yyDollar[2].list = append(yyDollar[2].list[:len(yyDollar[2].list)-1], yyDollar[3].list...) + } } yyVAL.list = yyDollar[2].list - - // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.SkippedTokens) } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5538 +// line internal/php5/php5.y:5576 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8092,7 +8131,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5552 +// line internal/php5/php5.y:5590 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8108,40 +8147,44 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5569 +// line internal/php5/php5.y:5607 { - yyVAL.node = &ast.ExprMethodCall{ast.Node{}, nil, nil, yyDollar[1].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.node = &ast.ExprMethodCall{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + OpenParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[1].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).CloseParenthesisTkn, + } } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5579 +// line internal/php5/php5.y:5621 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5583 +// line internal/php5/php5.y:5625 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5587 +// line internal/php5/php5.y:5629 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5594 +// line internal/php5/php5.y:5636 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5598 +// line internal/php5/php5.y:5640 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8153,7 +8196,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5611 +// line internal/php5/php5.y:5653 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8166,7 +8209,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5622 +// line internal/php5/php5.y:5664 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8179,13 +8222,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5636 +// line internal/php5/php5.y:5678 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5643 +// line internal/php5/php5.y:5685 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8199,7 +8242,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5655 +// line internal/php5/php5.y:5697 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8213,31 +8256,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5670 +// line internal/php5/php5.y:5712 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5674 +// line internal/php5/php5.y:5716 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5678 +// line internal/php5/php5.y:5720 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5686 +// line internal/php5/php5.y:5728 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5690 +// line internal/php5/php5.y:5732 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8249,13 +8292,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5700 +// line internal/php5/php5.y:5742 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5707 +// line internal/php5/php5.y:5749 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8269,7 +8312,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5719 +// line internal/php5/php5.y:5761 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8283,13 +8326,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5731 +// line internal/php5/php5.y:5773 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5781 { name := &ast.Identifier{ Node: ast.Node{ @@ -8308,7 +8351,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5756 +// line internal/php5/php5.y:5798 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8322,35 +8365,38 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5771 +// line internal/php5/php5.y:5813 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5775 +// line internal/php5/php5.y:5817 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5783 +// line internal/php5/php5.y:5825 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5787 +// line internal/php5/php5.y:5829 { - fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} - yyVAL.list = []ast.Vertex{fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.list = []ast.Vertex{ + &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Property: yyDollar[1].node, + }, + } } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5798 +// line internal/php5/php5.y:5843 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8366,7 +8412,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5812 +// line internal/php5/php5.y:5857 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8382,17 +8428,20 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5826 +// line internal/php5/php5.y:5871 { - fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, yyDollar[1].node} - yyVAL.list = []ast.Vertex{fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition(yyDollar[1].node) + yyVAL.list = []ast.Vertex{ + &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[1].node), + }, + Property: yyDollar[1].node, + }, + } } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5837 +// line internal/php5/php5.y:5885 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8404,7 +8453,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5847 +// line internal/php5/php5.y:5895 { yyVAL.node = yyDollar[2].node @@ -8417,7 +8466,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5861 +// line internal/php5/php5.y:5909 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8430,7 +8479,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5872 +// line internal/php5/php5.y:5920 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8447,7 +8496,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5890 +// line internal/php5/php5.y:5938 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8456,7 +8505,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5897 +// line internal/php5/php5.y:5945 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8464,7 +8513,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5907 +// line internal/php5/php5.y:5955 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8475,7 +8524,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5916 +// line internal/php5/php5.y:5964 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8502,19 +8551,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5941 +// line internal/php5/php5.y:5989 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5949 +// line internal/php5/php5.y:5997 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5953 +// line internal/php5/php5.y:6001 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8525,7 +8574,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5965 +// line internal/php5/php5.y:6013 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8543,7 +8592,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5981 +// line internal/php5/php5.y:6029 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8559,7 +8608,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5995 +// line internal/php5/php5.y:6043 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8576,7 +8625,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6010 +// line internal/php5/php5.y:6058 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8591,7 +8640,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6023 +// line internal/php5/php5.y:6071 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8614,7 +8663,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6044 +// line internal/php5/php5.y:6092 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8635,7 +8684,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6063 +// line internal/php5/php5.y:6111 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8657,7 +8706,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6083 +// line internal/php5/php5.y:6131 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8677,13 +8726,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6104 +// line internal/php5/php5.y:6152 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6108 +// line internal/php5/php5.y:6156 { yyVAL.list = append( yyDollar[1].list, @@ -8698,13 +8747,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6121 +// line internal/php5/php5.y:6169 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6125 +// line internal/php5/php5.y:6173 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8719,7 +8768,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6141 +// line internal/php5/php5.y:6189 { name := &ast.Identifier{ Node: ast.Node{ @@ -8738,7 +8787,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6158 +// line internal/php5/php5.y:6206 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8763,35 +8812,37 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6181 +// line internal/php5/php5.y:6229 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + ObjectOperatorTkn: yyDollar[2].token, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6207 +// line internal/php5/php5.y:6257 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8806,7 +8857,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6220 +// line internal/php5/php5.y:6270 { name := &ast.Identifier{ Node: ast.Node{ @@ -8828,7 +8879,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6240 +// line internal/php5/php5.y:6290 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8855,7 +8906,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6265 +// line internal/php5/php5.y:6315 { yyVAL.node = yyDollar[2].node @@ -8865,7 +8916,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6276 +// line internal/php5/php5.y:6326 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8877,7 +8928,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6286 +// line internal/php5/php5.y:6336 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8906,7 +8957,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6313 +// line internal/php5/php5.y:6363 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8925,7 +8976,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6333 +// line internal/php5/php5.y:6383 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8940,7 +8991,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6346 +// line internal/php5/php5.y:6396 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8954,7 +9005,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6358 +// line internal/php5/php5.y:6408 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8968,7 +9019,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6370 +// line internal/php5/php5.y:6420 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -8980,7 +9031,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6380 +// line internal/php5/php5.y:6430 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -8992,7 +9043,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6390 +// line internal/php5/php5.y:6440 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9006,7 +9057,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6402 +// line internal/php5/php5.y:6452 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9018,7 +9069,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6412 +// line internal/php5/php5.y:6462 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9030,7 +9081,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6425 +// line internal/php5/php5.y:6475 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9038,7 +9089,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6431 +// line internal/php5/php5.y:6481 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9047,19 +9098,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6441 +// line internal/php5/php5.y:6491 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6445 +// line internal/php5/php5.y:6495 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6452 +// line internal/php5/php5.y:6502 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9078,7 +9129,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6469 +// line internal/php5/php5.y:6519 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9097,7 +9148,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6489 +// line internal/php5/php5.y:6539 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9116,7 +9167,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6509 +// line internal/php5/php5.y:6559 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 07db4b4..1502664 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3744,24 +3744,26 @@ expr_without_variable: for _, n := range($4) { switch nn := n.(type) { + case *ast.ExprFunctionCall: + nn.Function = $$ + nn.Node.Position = position.NewNodesPosition($$, nn) + $$ = nn + case *ast.ExprArrayDimFetch: nn.Var = $$ + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprMethodCall: nn.Var = $$ + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } - - // save position - $$.GetNode().Position = position.NewNodesPosition($$, n) } } | expr '?' expr ':' expr @@ -5448,55 +5450,75 @@ variable: { $$ = $1 - if $4 != nil { - $4[0].(*ast.ExprMethodCall).Method = $3[len($3)-1].(*ast.ExprPropertyFetch).Property - $3 = append($3[:len($3)-1], $4...) - } + $3[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.SkippedTokens) + if $4 != nil { + last := $3[len($3)-1] + switch l := last.(type) { + case *ast.ExprArrayDimFetch: + mc := $4[0].(*ast.ExprMethodCall) + $3 = append($3, &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodePosition(mc), + }, + OpenParenthesisTkn: mc.OpenParenthesisTkn, + Arguments: mc.Arguments, + CloseParenthesisTkn: mc.OpenParenthesisTkn, + }, + ) + $3 = append($3, $4[1:len($4)]...) + case *ast.ExprPropertyFetch: + $4[0].(*ast.ExprMethodCall).Method = l.Property + $4[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn + $3 = append($3[:len($3)-1], $4...) + } + } for _, n := range($3) { switch nn := n.(type) { + case *ast.ExprFunctionCall: + nn.Function = $$ + nn.Node.Position = position.NewNodesPosition($$, nn) + $$ = nn + case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.GetNode().Position = position.NewNodesPosition($$, nn) + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ - nn.GetNode().Position = position.NewNodesPosition($$, nn) + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprMethodCall: nn.Var = $$ - nn.GetNode().Position = position.NewNodesPosition($$, nn) + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } for _, n := range($5) { switch nn := n.(type) { + case *ast.ExprFunctionCall: + nn.Function = $$ + nn.Node.Position = position.NewNodesPosition($$, nn) + $$ = nn + case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.GetNode().Position = position.NewNodesPosition($$, nn) + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ - nn.GetNode().Position = position.NewNodesPosition($$, nn) + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprMethodCall: nn.Var = $$ - nn.GetNode().Position = position.NewNodesPosition($$, nn) + nn.Node.Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } } @@ -5520,16 +5542,32 @@ variable_properties: variable_property: T_OBJECT_OPERATOR object_property method_or_not - { + {println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") + $2[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = $1 + if $3 != nil { - $3[0].(*ast.ExprMethodCall).Method = $2[len($2)-1].(*ast.ExprPropertyFetch).Property - $2 = append($2[:len($2)-1], $3...) + last := $2[len($2)-1] + switch l := last.(type) { + case *ast.ExprArrayDimFetch: + mc := $3[0].(*ast.ExprMethodCall) + $2 = append($2, &ast.ExprFunctionCall{ + Node: ast.Node{ + Position: position.NewNodePosition(mc), + }, + OpenParenthesisTkn: mc.OpenParenthesisTkn, + Arguments: mc.Arguments, + CloseParenthesisTkn: mc.OpenParenthesisTkn, + }, + ) + $2 = append($2, $3[1:len($3)]...) + case *ast.ExprPropertyFetch: + $3[0].(*ast.ExprMethodCall).Method = l.Property + $3[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn + $2 = append($2[:len($2)-1], $3...) + } } $$ = $2 - - // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.SkippedTokens) } ; @@ -5567,10 +5605,14 @@ array_method_dereference: method: function_call_parameter_list { - $$ = &ast.ExprMethodCall{ast.Node{}, nil, nil, $1.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodePosition($1) + $$ = &ast.ExprMethodCall{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + OpenParenthesisTkn: $1.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $1.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $1.(*ast.ArgumentList).CloseParenthesisTkn, + } } ; @@ -5785,11 +5827,14 @@ object_property: } | variable_without_objects { - fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, $1} - $$ = []ast.Vertex{fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition($1) + $$ = []ast.Vertex{ + &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Property: $1, + }, + } } ; @@ -5824,11 +5869,14 @@ object_dim_list: } | variable_name { - fetch := &ast.ExprPropertyFetch{ast.Node{}, nil, $1} - $$ = []ast.Vertex{fetch} - - // save position - fetch.GetNode().Position = position.NewNodePosition($1) + $$ = []ast.Vertex{ + &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodePosition($1), + }, + Property: $1, + }, + } } ; @@ -6179,29 +6227,31 @@ encaps_var: } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := &ast.Identifier{ + $$ = &ast.ExprPropertyFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokensPosition($1, $3), }, - IdentifierTkn: $1, - Value: $1.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + ObjectOperatorTkn: $2, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 9fde4cd..3979201 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4995 +// line internal/php7/php7.y:5000 // line yacctab:1 var yyExca = [...]int{ @@ -6923,49 +6923,52 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:4276 { - yyVAL.node = &ast.ExprMethodCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprMethodCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Var: yyDollar[1].node, + ObjectOperatorTkn: yyDollar[2].token, + Method: yyDollar[3].node, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + } } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4287 + // line internal/php7/php7.y:4290 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4294 + // line internal/php7/php7.y:4297 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4301 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4302 + // line internal/php7/php7.y:4305 { - yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + ObjectOperatorTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4316 + // line internal/php7/php7.y:4319 { name := &ast.Identifier{ Node: ast.Node{ @@ -6984,7 +6987,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -6998,7 +7001,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4345 + // line internal/php7/php7.y:4348 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7010,7 +7013,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4358 + // line internal/php7/php7.y:4361 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7023,7 +7026,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4369 + // line internal/php7/php7.y:4372 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7036,13 +7039,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4383 + // line internal/php7/php7.y:4386 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4387 + // line internal/php7/php7.y:4390 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7056,7 +7059,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4399 + // line internal/php7/php7.y:4402 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7070,20 +7073,20 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4414 { - yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + ObjectOperatorTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4422 + // line internal/php7/php7.y:4425 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7096,7 +7099,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4433 + // line internal/php7/php7.y:4436 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7109,7 +7112,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4447 + // line internal/php7/php7.y:4450 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7121,7 +7124,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4457 + // line internal/php7/php7.y:4460 { yyVAL.node = yyDollar[2].node @@ -7131,13 +7134,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4465 + // line internal/php7/php7.y:4468 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4472 + // line internal/php7/php7.y:4475 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7149,7 +7152,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4482 + // line internal/php7/php7.y:4485 { yyVAL.node = yyDollar[2].node @@ -7159,13 +7162,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4493 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4497 + // line internal/php7/php7.y:4500 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7178,19 +7181,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4514 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4515 + // line internal/php7/php7.y:4518 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4522 + // line internal/php7/php7.y:4525 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7199,7 +7202,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4529 + // line internal/php7/php7.y:4532 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7207,7 +7210,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4538 + // line internal/php7/php7.y:4541 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7220,7 +7223,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4549 + // line internal/php7/php7.y:4552 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7231,7 +7234,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4558 + // line internal/php7/php7.y:4561 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7249,7 +7252,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4577 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7265,7 +7268,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4588 + // line internal/php7/php7.y:4591 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7277,7 +7280,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4598 + // line internal/php7/php7.y:4601 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7299,7 +7302,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4618 + // line internal/php7/php7.y:4621 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7319,13 +7322,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4639 + // line internal/php7/php7.y:4642 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4643 + // line internal/php7/php7.y:4646 { yyVAL.list = append( yyDollar[1].list, @@ -7340,13 +7343,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4656 + // line internal/php7/php7.y:4659 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4660 + // line internal/php7/php7.y:4663 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7361,7 +7364,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4676 + // line internal/php7/php7.y:4679 { name := &ast.Identifier{ Node: ast.Node{ @@ -7380,7 +7383,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4693 + // line internal/php7/php7.y:4696 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7405,35 +7408,37 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4716 + // line internal/php7/php7.y:4719 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, + ObjectOperatorTkn: yyDollar[2].token, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, } - yyVAL.node = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4742 + // line internal/php7/php7.y:4747 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7448,7 +7453,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4755 + // line internal/php7/php7.y:4760 { name := &ast.Identifier{ Node: ast.Node{ @@ -7470,7 +7475,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4775 + // line internal/php7/php7.y:4780 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7497,7 +7502,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4800 + // line internal/php7/php7.y:4805 { yyVAL.node = yyDollar[2].node @@ -7507,7 +7512,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4811 + // line internal/php7/php7.y:4816 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7519,7 +7524,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4821 + // line internal/php7/php7.y:4826 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7542,7 +7547,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4842 + // line internal/php7/php7.y:4847 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7570,7 +7575,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4868 + // line internal/php7/php7.y:4873 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7589,7 +7594,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4888 + // line internal/php7/php7.y:4893 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7608,7 +7613,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4905 + // line internal/php7/php7.y:4910 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7622,7 +7627,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4917 + // line internal/php7/php7.y:4922 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7634,7 +7639,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4927 + // line internal/php7/php7.y:4932 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7646,7 +7651,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4937 + // line internal/php7/php7.y:4942 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7660,7 +7665,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4949 + // line internal/php7/php7.y:4954 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7672,7 +7677,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4959 + // line internal/php7/php7.y:4964 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7684,7 +7689,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4972 + // line internal/php7/php7.y:4977 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7692,7 +7697,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4978 + // line internal/php7/php7.y:4983 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7701,7 +7706,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4988 + // line internal/php7/php7.y:4993 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 2e1cdb4..ca0a1c2 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -4274,14 +4274,17 @@ callable_variable: } | dereferencable T_OBJECT_OPERATOR property_name argument_list { - $$ = &ast.ExprMethodCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprMethodCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Var: $1, + ObjectOperatorTkn: $2, + Method: $3, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + } } | function_call { @@ -4300,14 +4303,14 @@ variable: } | dereferencable T_OBJECT_OPERATOR property_name { - $$ = &ast.ExprPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + ObjectOperatorTkn: $2, + Property: $3, + } } ; @@ -4409,14 +4412,14 @@ new_variable: } | new_variable T_OBJECT_OPERATOR property_name { - $$ = &ast.ExprPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + ObjectOperatorTkn: $2, + Property: $3, + } } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { @@ -4714,29 +4717,31 @@ encaps_var: } | T_VARIABLE T_OBJECT_OPERATOR T_STRING { - identifier := &ast.Identifier{ + $$ = &ast.ExprPropertyFetch{ Node: ast.Node{ - Position: position.NewTokenPosition($1), + Position: position.NewTokensPosition($1, $3), }, - IdentifierTkn: $1, - Value: $1.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - fetch := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, + ObjectOperatorTkn: $2, + Property: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, }, - IdentifierTkn: $3, - Value: $3.Value, } - $$ = &ast.ExprPropertyFetch{ast.Node{}, variable, fetch} - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 54ae3de..9f90db7 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1215,9 +1215,12 @@ func (n *ExprList) Accept(v NodeVisitor) { // ExprMethodCall node type ExprMethodCall struct { Node - Var Vertex - Method Vertex - ArgumentList *ArgumentList + Var Vertex + ObjectOperatorTkn *token.Token + Method Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + CloseParenthesisTkn *token.Token } func (n *ExprMethodCall) Accept(v NodeVisitor) { @@ -1288,8 +1291,9 @@ func (n *ExprPrint) Accept(v NodeVisitor) { // ExprPropertyFetch node type ExprPropertyFetch struct { Node - Var Vertex - Property Vertex + Var Vertex + ObjectOperatorTkn *token.Token + Property Vertex } func (n *ExprPropertyFetch) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 95f2d4a..fecf672 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1396,10 +1396,12 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Method) t.visitor.Leave("Method", true) } - if nn.ArgumentList != nil { - t.visitor.Enter("ArgumentList", true) - t.Traverse(nn.ArgumentList) - t.visitor.Leave("ArgumentList", true) + if nn.Arguments != nil { + t.visitor.Enter("Arguments", false) + for _, c := range nn.Arguments { + t.Traverse(c) + } + t.visitor.Leave("Arguments", false) } case *ast.ExprNew: if nn == nil { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index 79782fe..ef01e44 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1133,7 +1133,7 @@ func (p *PrettyPrinter) printExprMethodCall(n ast.Vertex) { io.WriteString(p.w, "->") p.Print(nn.Method) io.WriteString(p.w, "(") - p.joinPrint(", ", nn.ArgumentList.Arguments) + p.joinPrint(", ", nn.Arguments) io.WriteString(p.w, ")") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index dfbe5f1..8791841 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1695,9 +1695,9 @@ func (p *Printer) printExprMethodCall(n ast.Vertex) { p.write([]byte("->")) p.Print(nn.Method) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") + p.printToken(nn.OpenParenthesisTkn, "(") + p.joinPrint(",", nn.Arguments) + p.printToken(nn.CloseParenthesisTkn, ")") p.printFreeFloating(nn, token.End) } From 45e959056b126e2d57be3e90dfbb66b0783a3a9b Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Thu, 3 Dec 2020 22:04:59 +0200 Subject: [PATCH 088/140] [refactoring] update ast structure of "PostDec", "PostInc", "PreDec", "PreInc" and "New" nodes --- internal/php5/php5.go | 685 +++++++++++---------- internal/php5/php5.y | 105 ++-- internal/php7/php7.go | 1084 +++++++++++++++++---------------- internal/php7/php7.y | 96 +-- pkg/ast/node.go | 19 +- pkg/ast/traverser/dfs.go | 10 +- pkg/printer/pretty_printer.go | 4 +- pkg/printer/printer.go | 8 +- 8 files changed, 1039 insertions(+), 972 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 040152d..5cc2459 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6577 +// line internal/php5/php5.y:6598 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -5358,21 +5358,29 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:3125 { - if yyDollar[3].node != nil { - yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + NewTkn: yyDollar[1].token, + Class: yyDollar[2].node, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } else { - yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + Class: yyDollar[2].node, + } } - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3142 +// line internal/php5/php5.y:3150 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -5405,7 +5413,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3173 +// line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5418,7 +5426,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3184 +// line internal/php5/php5.y:3192 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5432,15 +5440,30 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3196 +// line internal/php5/php5.y:3204 { var _new *ast.ExprNew - - if yyDollar[6].node != nil { - _new = &ast.ExprNew{ast.Node{}, yyDollar[5].node, yyDollar[6].node.(*ast.ArgumentList)} + if yyDollar[3].token != nil { + _new = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), + }, + NewTkn: yyDollar[4].token, + Class: yyDollar[5].node, + OpenParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[6].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } else { - _new = &ast.ExprNew{ast.Node{}, yyDollar[5].node, nil} + _new = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node), + }, + NewTkn: yyDollar[4].token, + Class: yyDollar[5].node, + } } + yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, _new} // save position @@ -5459,7 +5482,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3221 +// line internal/php5/php5.y:3244 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5471,7 +5494,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3231 +// line internal/php5/php5.y:3254 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5483,7 +5506,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3241 +// line internal/php5/php5.y:3264 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5496,7 +5519,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3252 +// line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5509,7 +5532,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3263 +// line internal/php5/php5.y:3286 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5522,7 +5545,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3274 +// line internal/php5/php5.y:3297 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5535,7 +5558,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3285 +// line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5548,7 +5571,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3296 +// line internal/php5/php5.y:3319 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5561,7 +5584,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3307 +// line internal/php5/php5.y:3330 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5574,7 +5597,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3318 +// line internal/php5/php5.y:3341 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5587,7 +5610,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3329 +// line internal/php5/php5.y:3352 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5600,7 +5623,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3340 +// line internal/php5/php5.y:3363 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5613,7 +5636,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3351 +// line internal/php5/php5.y:3374 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5626,57 +5649,55 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3362 +// line internal/php5/php5.y:3385 { - yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprPostInc{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + }, + Var: yyDollar[1].node, + IncTkn: yyDollar[2].token, + } } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3373 +// line internal/php5/php5.y:3395 { - yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprPreInc{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncTkn: yyDollar[1].token, + Var: yyDollar[2].node, + } } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3383 +// line internal/php5/php5.y:3405 { - yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprPostDec{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + }, + Var: yyDollar[1].node, + DecTkn: yyDollar[2].token, + } } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3394 +// line internal/php5/php5.y:3415 { - yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprPreDec{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + DecTkn: yyDollar[1].token, + Var: yyDollar[2].node, + } } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3404 +// line internal/php5/php5.y:3425 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5689,7 +5710,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3415 +// line internal/php5/php5.y:3436 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5702,7 +5723,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3426 +// line internal/php5/php5.y:3447 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5715,7 +5736,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3437 +// line internal/php5/php5.y:3458 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5728,7 +5749,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3448 +// line internal/php5/php5.y:3469 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5741,7 +5762,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3459 +// line internal/php5/php5.y:3480 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5754,7 +5775,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3470 +// line internal/php5/php5.y:3491 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5767,7 +5788,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3481 +// line internal/php5/php5.y:3502 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5780,7 +5801,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3492 +// line internal/php5/php5.y:3513 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5792,7 +5813,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3502 +// line internal/php5/php5.y:3523 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5805,7 +5826,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3513 +// line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5839,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3524 +// line internal/php5/php5.y:3545 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5852,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3535 +// line internal/php5/php5.y:3556 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5865,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3546 +// line internal/php5/php5.y:3567 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,7 +5878,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3557 +// line internal/php5/php5.y:3578 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5870,7 +5891,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3568 +// line internal/php5/php5.y:3589 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5883,7 +5904,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3579 +// line internal/php5/php5.y:3600 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5896,7 +5917,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3590 +// line internal/php5/php5.y:3611 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5908,7 +5929,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3600 +// line internal/php5/php5.y:3621 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5920,7 +5941,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3610 +// line internal/php5/php5.y:3631 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5932,7 +5953,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3620 +// line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5944,7 +5965,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3630 +// line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5957,7 +5978,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3641 +// line internal/php5/php5.y:3662 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5970,7 +5991,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3652 +// line internal/php5/php5.y:3673 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5983,7 +6004,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3663 +// line internal/php5/php5.y:3684 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5997,7 +6018,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3675 +// line internal/php5/php5.y:3696 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6010,7 +6031,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3686 +// line internal/php5/php5.y:3707 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6023,7 +6044,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3697 +// line internal/php5/php5.y:3718 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6036,7 +6057,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3708 +// line internal/php5/php5.y:3729 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6049,7 +6070,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3719 +// line internal/php5/php5.y:3740 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6062,19 +6083,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3730 +// line internal/php5/php5.y:3751 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3734 +// line internal/php5/php5.y:3755 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3738 +// line internal/php5/php5.y:3759 { yyVAL.node = yyDollar[2].node @@ -6108,7 +6129,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3770 +// line internal/php5/php5.y:3791 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -6122,7 +6143,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3782 +// line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -6136,13 +6157,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3794 +// line internal/php5/php5.y:3815 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3798 +// line internal/php5/php5.y:3819 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6155,7 +6176,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3809 +// line internal/php5/php5.y:3830 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6168,7 +6189,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3820 +// line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6181,7 +6202,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3831 +// line internal/php5/php5.y:3852 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6194,7 +6215,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3842 +// line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6207,7 +6228,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3853 +// line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6220,7 +6241,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3864 +// line internal/php5/php5.y:3885 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6233,7 +6254,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3875 +// line internal/php5/php5.y:3896 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6252,7 +6273,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3892 +// line internal/php5/php5.y:3913 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6264,25 +6285,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3902 +// line internal/php5/php5.y:3923 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3927 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3931 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3914 +// line internal/php5/php5.y:3935 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6294,7 +6315,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3945 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6306,7 +6327,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3934 +// line internal/php5/php5.y:3955 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6318,7 +6339,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3944 +// line internal/php5/php5.y:3965 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6337,7 +6358,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3961 +// line internal/php5/php5.y:3982 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6357,7 +6378,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3982 +// line internal/php5/php5.y:4003 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6369,7 +6390,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3992 +// line internal/php5/php5.y:4013 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6381,7 +6402,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4002 +// line internal/php5/php5.y:4023 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6394,7 +6415,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4013 +// line internal/php5/php5.y:4034 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6407,7 +6428,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4027 +// line internal/php5/php5.y:4048 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6421,7 +6442,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4039 +// line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6435,7 +6456,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4051 +// line internal/php5/php5.y:4072 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6455,7 +6476,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4069 +// line internal/php5/php5.y:4090 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6469,7 +6490,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4084 +// line internal/php5/php5.y:4105 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6484,7 +6505,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4097 +// line internal/php5/php5.y:4118 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6498,19 +6519,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4112 +// line internal/php5/php5.y:4133 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4119 +// line internal/php5/php5.y:4140 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4123 +// line internal/php5/php5.y:4144 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6525,7 +6546,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4139 +// line internal/php5/php5.y:4160 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6547,7 +6568,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4159 +// line internal/php5/php5.y:4180 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6574,7 +6595,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4184 +// line internal/php5/php5.y:4205 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6595,7 +6616,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4203 +// line internal/php5/php5.y:4224 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6621,7 +6642,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4230 +// line internal/php5/php5.y:4251 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6640,7 +6661,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4247 +// line internal/php5/php5.y:4268 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6661,7 +6682,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4266 +// line internal/php5/php5.y:4287 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6681,7 +6702,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4284 +// line internal/php5/php5.y:4305 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6694,7 +6715,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4295 +// line internal/php5/php5.y:4316 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6707,7 +6728,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4306 +// line internal/php5/php5.y:4327 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6720,7 +6741,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4317 +// line internal/php5/php5.y:4338 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6733,7 +6754,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4328 +// line internal/php5/php5.y:4349 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6747,7 +6768,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4343 +// line internal/php5/php5.y:4364 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6759,7 +6780,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4353 +// line internal/php5/php5.y:4374 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6770,7 +6791,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4362 +// line internal/php5/php5.y:4383 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6783,7 +6804,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4373 +// line internal/php5/php5.y:4394 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6795,7 +6816,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4386 +// line internal/php5/php5.y:4407 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6806,7 +6827,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4395 +// line internal/php5/php5.y:4416 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6819,7 +6840,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4406 +// line internal/php5/php5.y:4427 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6831,19 +6852,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4419 +// line internal/php5/php5.y:4440 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4423 +// line internal/php5/php5.y:4444 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4430 +// line internal/php5/php5.y:4451 { yyVAL.node = yyDollar[1].node @@ -6884,25 +6905,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4469 +// line internal/php5/php5.y:4490 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4477 +// line internal/php5/php5.y:4498 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4502 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4489 +// line internal/php5/php5.y:4510 { yyVAL.list = yyDollar[2].list @@ -6911,13 +6932,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4499 +// line internal/php5/php5.y:4520 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4503 +// line internal/php5/php5.y:4524 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6933,19 +6954,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4517 +// line internal/php5/php5.y:4538 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4545 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4528 +// line internal/php5/php5.y:4549 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6959,25 +6980,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4561 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4547 +// line internal/php5/php5.y:4568 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4551 +// line internal/php5/php5.y:4572 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4558 +// line internal/php5/php5.y:4579 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6989,7 +7010,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4568 +// line internal/php5/php5.y:4589 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -7001,7 +7022,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4578 +// line internal/php5/php5.y:4599 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7013,7 +7034,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4588 +// line internal/php5/php5.y:4609 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7025,7 +7046,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4598 +// line internal/php5/php5.y:4619 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7037,7 +7058,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4608 +// line internal/php5/php5.y:4629 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7049,7 +7070,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4618 +// line internal/php5/php5.y:4639 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7061,7 +7082,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4628 +// line internal/php5/php5.y:4649 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7073,7 +7094,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4638 +// line internal/php5/php5.y:4659 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7085,7 +7106,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4648 +// line internal/php5/php5.y:4669 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7097,7 +7118,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4658 +// line internal/php5/php5.y:4679 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7118,7 +7139,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4677 +// line internal/php5/php5.y:4698 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7130,7 +7151,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4690 +// line internal/php5/php5.y:4711 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7149,25 +7170,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4710 +// line internal/php5/php5.y:4731 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4717 +// line internal/php5/php5.y:4738 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4721 +// line internal/php5/php5.y:4742 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4725 +// line internal/php5/php5.y:4746 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7183,7 +7204,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4739 +// line internal/php5/php5.y:4760 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7201,7 +7222,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4755 +// line internal/php5/php5.y:4776 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7218,7 +7239,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4770 +// line internal/php5/php5.y:4791 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7233,7 +7254,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4783 +// line internal/php5/php5.y:4804 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7247,13 +7268,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4816 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4799 +// line internal/php5/php5.y:4820 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7265,13 +7286,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4809 +// line internal/php5/php5.y:4830 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4816 +// line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7285,7 +7306,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4828 +// line internal/php5/php5.y:4849 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7298,7 +7319,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4839 +// line internal/php5/php5.y:4860 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7311,7 +7332,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4850 +// line internal/php5/php5.y:4871 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7324,7 +7345,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4861 +// line internal/php5/php5.y:4882 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7337,7 +7358,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4872 +// line internal/php5/php5.y:4893 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7350,7 +7371,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4883 +// line internal/php5/php5.y:4904 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7363,7 +7384,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4894 +// line internal/php5/php5.y:4915 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7375,7 +7396,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4904 +// line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7387,7 +7408,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4914 +// line internal/php5/php5.y:4935 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7400,7 +7421,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4925 +// line internal/php5/php5.y:4946 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7413,7 +7434,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4936 +// line internal/php5/php5.y:4957 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7426,7 +7447,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4947 +// line internal/php5/php5.y:4968 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7439,7 +7460,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4958 +// line internal/php5/php5.y:4979 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7452,7 +7473,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4969 +// line internal/php5/php5.y:4990 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7465,7 +7486,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4980 +// line internal/php5/php5.y:5001 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7478,7 +7499,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4991 +// line internal/php5/php5.y:5012 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7491,7 +7512,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5002 +// line internal/php5/php5.y:5023 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7504,7 +7525,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5013 +// line internal/php5/php5.y:5034 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7517,7 +7538,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5024 +// line internal/php5/php5.y:5045 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7530,7 +7551,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5035 +// line internal/php5/php5.y:5056 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7543,7 +7564,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5046 +// line internal/php5/php5.y:5067 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7556,7 +7577,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5057 +// line internal/php5/php5.y:5078 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7569,7 +7590,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5068 +// line internal/php5/php5.y:5089 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7583,7 +7604,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5080 +// line internal/php5/php5.y:5101 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7596,7 +7617,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5091 +// line internal/php5/php5.y:5112 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7609,7 +7630,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5102 +// line internal/php5/php5.y:5123 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7622,7 +7643,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5113 +// line internal/php5/php5.y:5134 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7635,7 +7656,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5124 +// line internal/php5/php5.y:5145 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7649,7 +7670,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5136 +// line internal/php5/php5.y:5157 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7663,7 +7684,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5148 +// line internal/php5/php5.y:5169 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7675,7 +7696,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5158 +// line internal/php5/php5.y:5179 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7687,7 +7708,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5168 +// line internal/php5/php5.y:5189 { yyVAL.node = yyDollar[2].node @@ -7697,13 +7718,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5179 +// line internal/php5/php5.y:5200 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5183 +// line internal/php5/php5.y:5204 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7719,7 +7740,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5197 +// line internal/php5/php5.y:5218 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7737,7 +7758,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5213 +// line internal/php5/php5.y:5234 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7754,7 +7775,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5231 +// line internal/php5/php5.y:5252 { name := &ast.Identifier{ Node: ast.Node{ @@ -7773,25 +7794,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5248 +// line internal/php5/php5.y:5269 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5252 +// line internal/php5/php5.y:5273 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5256 +// line internal/php5/php5.y:5277 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5260 +// line internal/php5/php5.y:5281 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7804,7 +7825,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5271 +// line internal/php5/php5.y:5292 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7817,7 +7838,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5282 +// line internal/php5/php5.y:5303 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7829,13 +7850,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5295 +// line internal/php5/php5.y:5316 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5299 +// line internal/php5/php5.y:5320 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7846,19 +7867,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5311 +// line internal/php5/php5.y:5332 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5315 +// line internal/php5/php5.y:5336 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5322 +// line internal/php5/php5.y:5343 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7876,7 +7897,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5338 +// line internal/php5/php5.y:5359 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7892,7 +7913,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5352 +// line internal/php5/php5.y:5373 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7909,7 +7930,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5367 +// line internal/php5/php5.y:5388 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7924,19 +7945,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5383 +// line internal/php5/php5.y:5404 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5387 +// line internal/php5/php5.y:5408 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5394 +// line internal/php5/php5.y:5415 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7953,7 +7974,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5409 +// line internal/php5/php5.y:5430 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7970,25 +7991,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5428 +// line internal/php5/php5.y:5449 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5436 +// line internal/php5/php5.y:5457 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5443 +// line internal/php5/php5.y:5464 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5450 +// line internal/php5/php5.y:5471 { yyVAL.node = yyDollar[1].node @@ -8066,25 +8087,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5526 +// line internal/php5/php5.y:5547 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5533 +// line internal/php5/php5.y:5554 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5537 +// line internal/php5/php5.y:5558 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5545 +// line internal/php5/php5.y:5566 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8115,7 +8136,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5576 +// line internal/php5/php5.y:5597 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8131,7 +8152,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5590 +// line internal/php5/php5.y:5611 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8147,7 +8168,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5607 +// line internal/php5/php5.y:5628 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8160,31 +8181,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5621 +// line internal/php5/php5.y:5642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5625 +// line internal/php5/php5.y:5646 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5629 +// line internal/php5/php5.y:5650 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5636 +// line internal/php5/php5.y:5657 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5640 +// line internal/php5/php5.y:5661 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8196,7 +8217,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5653 +// line internal/php5/php5.y:5674 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8209,7 +8230,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5685 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8222,13 +8243,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5678 +// line internal/php5/php5.y:5699 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5685 +// line internal/php5/php5.y:5706 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8242,7 +8263,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5697 +// line internal/php5/php5.y:5718 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8256,31 +8277,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5712 +// line internal/php5/php5.y:5733 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5716 +// line internal/php5/php5.y:5737 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5720 +// line internal/php5/php5.y:5741 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5728 +// line internal/php5/php5.y:5749 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5732 +// line internal/php5/php5.y:5753 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8292,13 +8313,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5742 +// line internal/php5/php5.y:5763 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5749 +// line internal/php5/php5.y:5770 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8312,7 +8333,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5761 +// line internal/php5/php5.y:5782 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8326,13 +8347,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5773 +// line internal/php5/php5.y:5794 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5781 +// line internal/php5/php5.y:5802 { name := &ast.Identifier{ Node: ast.Node{ @@ -8351,7 +8372,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5798 +// line internal/php5/php5.y:5819 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8365,25 +8386,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5813 +// line internal/php5/php5.y:5834 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5817 +// line internal/php5/php5.y:5838 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5825 +// line internal/php5/php5.y:5846 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5829 +// line internal/php5/php5.y:5850 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8396,7 +8417,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5843 +// line internal/php5/php5.y:5864 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8412,7 +8433,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5857 +// line internal/php5/php5.y:5878 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8428,7 +8449,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5871 +// line internal/php5/php5.y:5892 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8441,7 +8462,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5885 +// line internal/php5/php5.y:5906 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8453,7 +8474,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5895 +// line internal/php5/php5.y:5916 { yyVAL.node = yyDollar[2].node @@ -8466,7 +8487,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5909 +// line internal/php5/php5.y:5930 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8479,7 +8500,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5920 +// line internal/php5/php5.y:5941 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8496,7 +8517,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5938 +// line internal/php5/php5.y:5959 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8505,7 +8526,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5945 +// line internal/php5/php5.y:5966 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8513,7 +8534,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5955 +// line internal/php5/php5.y:5976 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8524,7 +8545,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5964 +// line internal/php5/php5.y:5985 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8551,19 +8572,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5989 +// line internal/php5/php5.y:6010 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5997 +// line internal/php5/php5.y:6018 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6001 +// line internal/php5/php5.y:6022 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8574,7 +8595,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6013 +// line internal/php5/php5.y:6034 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8592,7 +8613,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6029 +// line internal/php5/php5.y:6050 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8608,7 +8629,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6043 +// line internal/php5/php5.y:6064 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8625,7 +8646,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6058 +// line internal/php5/php5.y:6079 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8640,7 +8661,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6071 +// line internal/php5/php5.y:6092 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8663,7 +8684,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6092 +// line internal/php5/php5.y:6113 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8684,7 +8705,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6111 +// line internal/php5/php5.y:6132 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8706,7 +8727,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6131 +// line internal/php5/php5.y:6152 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8726,13 +8747,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6152 +// line internal/php5/php5.y:6173 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6156 +// line internal/php5/php5.y:6177 { yyVAL.list = append( yyDollar[1].list, @@ -8747,13 +8768,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6169 +// line internal/php5/php5.y:6190 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6173 +// line internal/php5/php5.y:6194 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8768,7 +8789,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6189 +// line internal/php5/php5.y:6210 { name := &ast.Identifier{ Node: ast.Node{ @@ -8787,7 +8808,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6206 +// line internal/php5/php5.y:6227 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8812,7 +8833,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6229 +// line internal/php5/php5.y:6250 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8842,7 +8863,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6257 +// line internal/php5/php5.y:6278 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8857,7 +8878,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6270 +// line internal/php5/php5.y:6291 { name := &ast.Identifier{ Node: ast.Node{ @@ -8879,7 +8900,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6290 +// line internal/php5/php5.y:6311 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8906,7 +8927,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6315 +// line internal/php5/php5.y:6336 { yyVAL.node = yyDollar[2].node @@ -8916,7 +8937,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6326 +// line internal/php5/php5.y:6347 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8928,7 +8949,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6336 +// line internal/php5/php5.y:6357 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8957,7 +8978,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6363 +// line internal/php5/php5.y:6384 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8976,7 +8997,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6383 +// line internal/php5/php5.y:6404 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8991,7 +9012,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6396 +// line internal/php5/php5.y:6417 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9005,7 +9026,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6408 +// line internal/php5/php5.y:6429 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9019,7 +9040,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6441 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9031,7 +9052,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6430 +// line internal/php5/php5.y:6451 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9043,7 +9064,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6440 +// line internal/php5/php5.y:6461 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9057,7 +9078,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6452 +// line internal/php5/php5.y:6473 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -9069,7 +9090,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6462 +// line internal/php5/php5.y:6483 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -9081,7 +9102,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6475 +// line internal/php5/php5.y:6496 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9089,7 +9110,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6481 +// line internal/php5/php5.y:6502 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9098,19 +9119,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6491 +// line internal/php5/php5.y:6512 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6495 +// line internal/php5/php5.y:6516 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6523 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9129,7 +9150,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6519 +// line internal/php5/php5.y:6540 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9148,7 +9169,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6539 +// line internal/php5/php5.y:6560 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9167,7 +9188,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6559 +// line internal/php5/php5.y:6580 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 1502664..bcdf386 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3123,17 +3123,25 @@ instance_call: new_expr: T_NEW class_name_reference ctor_arguments { - if $3 != nil { - $$ = &ast.ExprNew{ast.Node{}, $2, $3.(*ast.ArgumentList)} - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) + $$ = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + NewTkn: $1, + Class: $2, + OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $3.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + } } else { - $$ = &ast.ExprNew{ast.Node{}, $2, nil} - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) + $$ = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + Class: $2, + } } - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -3195,12 +3203,27 @@ expr_without_variable: | variable '=' '&' T_NEW class_name_reference ctor_arguments { var _new *ast.ExprNew - - if $6 != nil { - _new = &ast.ExprNew{ast.Node{}, $5, $6.(*ast.ArgumentList)} + if $3 != nil { + _new = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($4, $6), + }, + NewTkn: $4, + Class: $5, + OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $6.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, + } } else { - _new = &ast.ExprNew{ast.Node{}, $5, nil} + _new = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($4, $5), + }, + NewTkn: $4, + Class: $5, + } } + $$ = &ast.ExprAssignReference{ast.Node{}, $1, _new} // save position @@ -3360,45 +3383,43 @@ expr_without_variable: } | rw_variable T_INC { - $$ = &ast.ExprPostInc{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprPostInc{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Var: $1, + IncTkn: $2, + } } | T_INC rw_variable { - $$ = &ast.ExprPreInc{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprPreInc{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncTkn: $1, + Var: $2, + } } | rw_variable T_DEC { - $$ = &ast.ExprPostDec{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprPostDec{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Var: $1, + DecTkn: $2, + } } | T_DEC rw_variable { - $$ = &ast.ExprPreDec{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprPreDec{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + DecTkn: $1, + Var: $2, + } } | expr T_BOOLEAN_OR expr { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 3979201..cfb8eb3 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5000 +// line internal/php7/php7.y:5008 // line yacctab:1 var yyExca = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:290 +// line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2121,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 +// line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:331 +// line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:342 +// line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:349 +// line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:361 +// line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:375 +// line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:384 +// line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:395 +// line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:408 +// line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:413 +// line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:433 +// line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:445 +// line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:461 +// line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:479 +// line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:491 +// line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:501 +// line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:512 +// line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:523 +// line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:535 +// line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:550 +// line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:560 +// line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:573 +// line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:595 +// line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:619 +// line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:639 +// line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:663 +// line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:667 +// line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:674 +// line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:680 +// line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:687 +// line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:693 +// line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:700 +// line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:706 +// line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:713 +// line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:717 +// line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:728 +// line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:742 +// line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:767 +// line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:771 +// line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:782 +// line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 +// line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:798 +// line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:809 +// line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:816 +// line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:821 +// line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:825 +// line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:829 +// line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:833 +// line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 +// line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:841 +// line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:855 +// line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:866 +// line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 +// line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:874 +// line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:884 +// line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:899 +// line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:913 +// line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:923 +// line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:934 +// line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:945 +// line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:956 +// line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:964 +// line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:972 +// line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:980 +// line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:990 +// line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1000 +// line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1011 +// line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1023 +// line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1037 +// line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1048 +// line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1057 +// line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1074 +// line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1085 +// line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1102 +// line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1120 +// line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1124 +// line internal/php7/php7.y:1124 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -3511,7 +3511,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1155 +// line internal/php7/php7.y:1155 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3519,7 +3519,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1161 +// line internal/php7/php7.y:1161 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3528,13 +3528,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1171 +// line internal/php7/php7.y:1171 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1175 +// line internal/php7/php7.y:1175 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3548,7 +3548,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1190 +// line internal/php7/php7.y:1190 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3556,7 +3556,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1196 +// line internal/php7/php7.y:1196 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3565,13 +3565,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1206 +// line internal/php7/php7.y:1206 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1213 +// line internal/php7/php7.y:1213 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3598,31 +3598,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1241 +// line internal/php7/php7.y:1241 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1245 +// line internal/php7/php7.y:1245 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1252 +// line internal/php7/php7.y:1252 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1256 +// line internal/php7/php7.y:1256 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1263 +// line internal/php7/php7.y:1263 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3646,7 +3646,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1285 +// line internal/php7/php7.y:1285 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3669,19 +3669,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1309 +// line internal/php7/php7.y:1309 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1313 +// line internal/php7/php7.y:1313 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1320 +// line internal/php7/php7.y:1320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3693,7 +3693,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1330 +// line internal/php7/php7.y:1330 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3705,7 +3705,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1343 +// line internal/php7/php7.y:1343 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3726,7 +3726,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1365 +// line internal/php7/php7.y:1365 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3748,13 +3748,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1388 +// line internal/php7/php7.y:1388 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1392 +// line internal/php7/php7.y:1392 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3766,13 +3766,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1405 +// line internal/php7/php7.y:1405 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1409 +// line internal/php7/php7.y:1409 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3785,13 +3785,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1423 +// line internal/php7/php7.y:1423 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1427 +// line internal/php7/php7.y:1427 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3804,13 +3804,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1441 +// line internal/php7/php7.y:1441 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1445 +// line internal/php7/php7.y:1445 { yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} @@ -3822,7 +3822,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1455 +// line internal/php7/php7.y:1455 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3837,7 +3837,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1468 +// line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3851,7 +3851,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1483 +// line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3862,7 +3862,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1492 +// line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3882,7 +3882,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1513 +// line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3893,7 +3893,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1522 +// line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3913,7 +3913,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1543 +// line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3924,7 +3924,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1552 +// line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3944,7 +3944,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1573 +// line internal/php7/php7.y:1573 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3957,7 +3957,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1584 +// line internal/php7/php7.y:1584 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,7 +3971,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1596 +// line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,7 +3986,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1609 +// line internal/php7/php7.y:1609 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4002,13 +4002,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1626 +// line internal/php7/php7.y:1626 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1630 +// line internal/php7/php7.y:1630 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4022,7 +4022,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1642 +// line internal/php7/php7.y:1642 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4035,19 +4035,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1656 +// line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1660 +// line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1667 +// line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4058,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1676 +// line internal/php7/php7.y:1676 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4078,7 +4078,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1697 +// line internal/php7/php7.y:1697 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4093,7 +4093,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1710 +// line internal/php7/php7.y:1710 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4112,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1730 +// line internal/php7/php7.y:1730 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1734 +// line internal/php7/php7.y:1734 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4134,7 +4134,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1751 +// line internal/php7/php7.y:1751 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4156,7 +4156,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1771 +// line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4180,7 +4180,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1796 +// line internal/php7/php7.y:1796 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4190,7 +4190,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1804 +// line internal/php7/php7.y:1804 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4214,25 +4214,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1829 +// line internal/php7/php7.y:1829 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1833 +// line internal/php7/php7.y:1833 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1840 +// line internal/php7/php7.y:1840 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1844 +// line internal/php7/php7.y:1844 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4241,7 +4241,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1854 +// line internal/php7/php7.y:1854 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4295,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1906 +// line internal/php7/php7.y:1906 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4352,25 +4352,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1964 +// line internal/php7/php7.y:1964 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1968 +// line internal/php7/php7.y:1968 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1975 +// line internal/php7/php7.y:1975 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1979 +// line internal/php7/php7.y:1979 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4382,7 +4382,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1992 +// line internal/php7/php7.y:1992 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4394,7 +4394,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2002 +// line internal/php7/php7.y:2002 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4406,19 +4406,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2012 +// line internal/php7/php7.y:2012 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2019 +// line internal/php7/php7.y:2019 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2023 +// line internal/php7/php7.y:2023 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4427,7 +4427,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2033 +// line internal/php7/php7.y:2033 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4439,7 +4439,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2043 +// line internal/php7/php7.y:2043 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4451,7 +4451,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2056 +// line internal/php7/php7.y:2056 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4459,7 +4459,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2062 +// line internal/php7/php7.y:2062 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4468,7 +4468,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2072 +// line internal/php7/php7.y:2072 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4479,7 +4479,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2081 +// line internal/php7/php7.y:2081 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4491,7 +4491,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2094 +// line internal/php7/php7.y:2094 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4500,7 +4500,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2101 +// line internal/php7/php7.y:2101 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4508,13 +4508,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2110 +// line internal/php7/php7.y:2110 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2117 +// line internal/php7/php7.y:2117 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4523,7 +4523,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2124 +// line internal/php7/php7.y:2124 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4531,7 +4531,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2133 +// line internal/php7/php7.y:2133 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4557,7 +4557,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2157 +// line internal/php7/php7.y:2157 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -4584,19 +4584,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2185 +// line internal/php7/php7.y:2185 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2189 +// line internal/php7/php7.y:2189 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2196 +// line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4611,7 +4611,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2209 +// line internal/php7/php7.y:2209 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4625,7 +4625,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2221 +// line internal/php7/php7.y:2221 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4639,7 +4639,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2233 +// line internal/php7/php7.y:2233 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4670,7 +4670,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2265 +// line internal/php7/php7.y:2265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4678,7 +4678,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2271 +// line internal/php7/php7.y:2271 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4687,7 +4687,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2281 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4698,7 +4698,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2290 +// line internal/php7/php7.y:2290 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4710,7 +4710,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2300 +// line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4723,19 +4723,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2314 +// line internal/php7/php7.y:2314 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2318 +// line internal/php7/php7.y:2318 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2325 +// line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4745,7 +4745,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2333 +// line internal/php7/php7.y:2333 { yyVAL.node = yyDollar[1].node @@ -4755,7 +4755,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2344 +// line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4769,7 +4769,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2359 +// line internal/php7/php7.y:2359 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4788,7 +4788,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2376 +// line internal/php7/php7.y:2376 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4807,7 +4807,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2393 +// line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4827,7 +4827,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2411 +// line internal/php7/php7.y:2411 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4840,7 +4840,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2425 +// line internal/php7/php7.y:2425 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4857,13 +4857,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2440 +// line internal/php7/php7.y:2440 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2447 +// line internal/php7/php7.y:2447 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4882,7 +4882,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2467 +// line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4893,7 +4893,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2476 +// line internal/php7/php7.y:2476 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4906,13 +4906,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2490 +// line internal/php7/php7.y:2490 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2494 +// line internal/php7/php7.y:2494 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4926,31 +4926,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2509 +// line internal/php7/php7.y:2509 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2513 +// line internal/php7/php7.y:2513 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2520 +// line internal/php7/php7.y:2520 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2524 +// line internal/php7/php7.y:2524 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2531 +// line internal/php7/php7.y:2531 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4962,7 +4962,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2541 +// line internal/php7/php7.y:2541 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4974,7 +4974,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2551 +// line internal/php7/php7.y:2551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4986,7 +4986,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2561 +// line internal/php7/php7.y:2561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4998,7 +4998,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2571 +// line internal/php7/php7.y:2571 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5010,7 +5010,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2581 +// line internal/php7/php7.y:2581 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5022,7 +5022,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2594 +// line internal/php7/php7.y:2594 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5031,7 +5031,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2601 +// line internal/php7/php7.y:2601 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5039,7 +5039,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2610 +// line internal/php7/php7.y:2610 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5062,7 +5062,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2631 +// line internal/php7/php7.y:2631 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5086,7 +5086,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2656 +// line internal/php7/php7.y:2656 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5094,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2662 +// line internal/php7/php7.y:2662 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2669 +// line internal/php7/php7.y:2669 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5121,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2691 +// line internal/php7/php7.y:2691 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5142,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2713 +// line internal/php7/php7.y:2713 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5151,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2720 +// line internal/php7/php7.y:2720 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5159,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2729 +// line internal/php7/php7.y:2729 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2736 +// line internal/php7/php7.y:2736 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2740 +// line internal/php7/php7.y:2740 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2747 +// line internal/php7/php7.y:2747 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,13 +5186,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2754 +// line internal/php7/php7.y:2754 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2761 +// line internal/php7/php7.y:2761 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5209,34 +5209,44 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2779 +// line internal/php7/php7.y:2779 { if yyDollar[3].node != nil { - yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, yyDollar[3].node.(*ast.ArgumentList)} - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyVAL.node = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + }, + NewTkn: yyDollar[1].token, + Class: yyDollar[2].node, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } else { - yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + yyVAL.node = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + NewTkn: yyDollar[1].token, + Class: yyDollar[2].node, + } } - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2792 +// line internal/php7/php7.y:2802 { - yyVAL.node = &ast.ExprNew{ast.Node{}, yyDollar[2].node, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + NewTkn: yyDollar[1].token, + Class: yyDollar[2].node, + } } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2805 +// line internal/php7/php7.y:2815 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5258,7 +5268,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2825 +// line internal/php7/php7.y:2835 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5279,7 +5289,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2844 +// line internal/php7/php7.y:2854 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5292,7 +5302,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2855 +// line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5306,7 +5316,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2867 +// line internal/php7/php7.y:2877 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5318,7 +5328,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2877 +// line internal/php7/php7.y:2887 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5331,7 +5341,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2888 +// line internal/php7/php7.y:2898 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5344,7 +5354,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2899 +// line internal/php7/php7.y:2909 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5357,7 +5367,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2910 +// line internal/php7/php7.y:2920 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5370,7 +5380,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2921 +// line internal/php7/php7.y:2931 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5383,7 +5393,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2932 +// line internal/php7/php7.y:2942 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5396,7 +5406,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2943 +// line internal/php7/php7.y:2953 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5409,7 +5419,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2954 +// line internal/php7/php7.y:2964 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5422,7 +5432,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2965 +// line internal/php7/php7.y:2975 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5435,7 +5445,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2976 +// line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5448,7 +5458,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2987 +// line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5461,7 +5471,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2998 +// line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5474,7 +5484,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3009 +// line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5487,57 +5497,55 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3020 +// line internal/php7/php7.y:3030 { - yyVAL.node = &ast.ExprPostInc{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprPostInc{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + }, + Var: yyDollar[1].node, + IncTkn: yyDollar[2].token, + } } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3031 +// line internal/php7/php7.y:3040 { - yyVAL.node = &ast.ExprPreInc{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprPreInc{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + IncTkn: yyDollar[1].token, + Var: yyDollar[2].node, + } } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3041 +// line internal/php7/php7.y:3050 { - yyVAL.node = &ast.ExprPostDec{ast.Node{}, yyDollar[1].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprPostDec{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + }, + Var: yyDollar[1].node, + DecTkn: yyDollar[2].token, + } } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3052 +// line internal/php7/php7.y:3060 { - yyVAL.node = &ast.ExprPreDec{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprPreDec{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + DecTkn: yyDollar[1].token, + Var: yyDollar[2].node, + } } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3062 +// line internal/php7/php7.y:3070 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5550,7 +5558,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3073 +// line internal/php7/php7.y:3081 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5563,7 +5571,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3084 +// line internal/php7/php7.y:3092 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5576,7 +5584,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3095 +// line internal/php7/php7.y:3103 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5589,7 +5597,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3106 +// line internal/php7/php7.y:3114 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5602,7 +5610,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3117 +// line internal/php7/php7.y:3125 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5615,7 +5623,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3128 +// line internal/php7/php7.y:3136 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5628,7 +5636,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3139 +// line internal/php7/php7.y:3147 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5641,7 +5649,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3150 +// line internal/php7/php7.y:3158 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5653,7 +5661,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3160 +// line internal/php7/php7.y:3168 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5666,7 +5674,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3171 +// line internal/php7/php7.y:3179 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5679,7 +5687,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3182 +// line internal/php7/php7.y:3190 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5692,7 +5700,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3193 +// line internal/php7/php7.y:3201 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5705,7 +5713,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3204 +// line internal/php7/php7.y:3212 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5718,7 +5726,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3215 +// line internal/php7/php7.y:3223 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5731,7 +5739,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3226 +// line internal/php7/php7.y:3234 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5744,7 +5752,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3237 +// line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5757,7 +5765,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3248 +// line internal/php7/php7.y:3256 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -5769,7 +5777,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3258 +// line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -5781,7 +5789,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3268 +// line internal/php7/php7.y:3276 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5793,7 +5801,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3278 +// line internal/php7/php7.y:3286 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5805,7 +5813,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3288 +// line internal/php7/php7.y:3296 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5818,7 +5826,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3299 +// line internal/php7/php7.y:3307 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5831,7 +5839,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 +// line internal/php7/php7.y:3318 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5844,7 +5852,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3321 +// line internal/php7/php7.y:3329 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5858,7 +5866,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3333 +// line internal/php7/php7.y:3341 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5871,7 +5879,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3344 +// line internal/php7/php7.y:3352 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5884,7 +5892,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3355 +// line internal/php7/php7.y:3363 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5897,7 +5905,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3366 +// line internal/php7/php7.y:3374 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5910,7 +5918,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3377 +// line internal/php7/php7.y:3385 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5923,7 +5931,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3388 +// line internal/php7/php7.y:3396 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5936,7 +5944,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3399 +// line internal/php7/php7.y:3407 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5953,13 +5961,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3414 +// line internal/php7/php7.y:3422 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3418 +// line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -5973,7 +5981,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3430 +// line internal/php7/php7.y:3438 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -5987,7 +5995,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3442 +// line internal/php7/php7.y:3450 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6000,13 +6008,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3453 +// line internal/php7/php7.y:3461 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3457 +// line internal/php7/php7.y:3465 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6019,7 +6027,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3468 +// line internal/php7/php7.y:3476 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6032,7 +6040,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3479 +// line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6045,7 +6053,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3490 +// line internal/php7/php7.y:3498 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6058,7 +6066,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3501 +// line internal/php7/php7.y:3509 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6071,7 +6079,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3512 +// line internal/php7/php7.y:3520 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6084,7 +6092,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3523 +// line internal/php7/php7.y:3531 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6097,7 +6105,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3534 +// line internal/php7/php7.y:3542 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6116,7 +6124,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3551 +// line internal/php7/php7.y:3559 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6128,13 +6136,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3561 +// line internal/php7/php7.y:3569 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3565 +// line internal/php7/php7.y:3573 { yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} @@ -6146,7 +6154,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3575 +// line internal/php7/php7.y:3583 { yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} @@ -6158,7 +6166,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3585 +// line internal/php7/php7.y:3593 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6170,7 +6178,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3595 +// line internal/php7/php7.y:3603 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6182,7 +6190,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3605 +// line internal/php7/php7.y:3613 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6195,7 +6203,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3616 +// line internal/php7/php7.y:3624 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6207,13 +6215,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3626 +// line internal/php7/php7.y:3634 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3630 +// line internal/php7/php7.y:3638 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6228,7 +6236,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3646 +// line internal/php7/php7.y:3654 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6249,7 +6257,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3665 +// line internal/php7/php7.y:3673 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6268,25 +6276,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3689 +// line internal/php7/php7.y:3697 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3693 +// line internal/php7/php7.y:3701 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3700 +// line internal/php7/php7.y:3708 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3704 +// line internal/php7/php7.y:3712 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6301,7 +6309,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3720 +// line internal/php7/php7.y:3728 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6310,7 +6318,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3727 +// line internal/php7/php7.y:3735 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6318,7 +6326,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3736 +// line internal/php7/php7.y:3744 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6337,7 +6345,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3753 +// line internal/php7/php7.y:3761 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6359,7 +6367,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3776 +// line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6373,7 +6381,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3788 +// line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6386,7 +6394,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3799 +// line internal/php7/php7.y:3807 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6399,7 +6407,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3810 +// line internal/php7/php7.y:3818 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6413,7 +6421,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3825 +// line internal/php7/php7.y:3833 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6425,31 +6433,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3835 +// line internal/php7/php7.y:3843 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3842 +// line internal/php7/php7.y:3850 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3846 +// line internal/php7/php7.y:3854 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3853 +// line internal/php7/php7.y:3861 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3857 +// line internal/php7/php7.y:3865 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6466,13 +6474,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3875 +// line internal/php7/php7.y:3883 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3879 +// line internal/php7/php7.y:3887 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6486,25 +6494,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3891 +// line internal/php7/php7.y:3899 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3898 +// line internal/php7/php7.y:3906 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3902 +// line internal/php7/php7.y:3910 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3909 +// line internal/php7/php7.y:3917 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6519,7 +6527,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3922 +// line internal/php7/php7.y:3930 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6533,7 +6541,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3934 +// line internal/php7/php7.y:3942 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6545,7 +6553,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3947 +// line internal/php7/php7.y:3955 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6557,7 +6565,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3957 +// line internal/php7/php7.y:3965 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6569,7 +6577,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3967 +// line internal/php7/php7.y:3975 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6581,7 +6589,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3977 +// line internal/php7/php7.y:3985 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6593,7 +6601,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3987 +// line internal/php7/php7.y:3995 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6605,7 +6613,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3997 +// line internal/php7/php7.y:4005 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6617,7 +6625,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4007 +// line internal/php7/php7.y:4015 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6629,7 +6637,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4017 +// line internal/php7/php7.y:4025 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6641,7 +6649,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4027 +// line internal/php7/php7.y:4035 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6653,7 +6661,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4037 +// line internal/php7/php7.y:4045 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6665,7 +6673,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4047 +// line internal/php7/php7.y:4055 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6686,7 +6694,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4066 +// line internal/php7/php7.y:4074 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6698,7 +6706,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4076 +// line internal/php7/php7.y:4084 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6711,7 +6719,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4087 +// line internal/php7/php7.y:4095 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6724,19 +6732,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4098 +// line internal/php7/php7.y:4106 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4102 +// line internal/php7/php7.y:4110 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4109 +// line internal/php7/php7.y:4117 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6747,7 +6755,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4118 +// line internal/php7/php7.y:4126 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6766,7 +6774,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4135 +// line internal/php7/php7.y:4143 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6785,43 +6793,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4155 +// line internal/php7/php7.y:4163 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4159 +// line internal/php7/php7.y:4167 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4166 +// line internal/php7/php7.y:4174 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4170 +// line internal/php7/php7.y:4178 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4177 +// line internal/php7/php7.y:4185 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4184 +// line internal/php7/php7.y:4192 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4188 +// line internal/php7/php7.y:4196 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6838,19 +6846,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4203 +// line internal/php7/php7.y:4211 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4210 +// line internal/php7/php7.y:4218 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4214 +// line internal/php7/php7.y:4222 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6867,19 +6875,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4229 +// line internal/php7/php7.y:4237 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4236 +// line internal/php7/php7.y:4244 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4240 +// line internal/php7/php7.y:4248 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6893,7 +6901,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4252 +// line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6907,7 +6915,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4264 +// line internal/php7/php7.y:4272 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6921,7 +6929,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4276 +// line internal/php7/php7.y:4284 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6937,25 +6945,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4290 +// line internal/php7/php7.y:4298 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4297 +// line internal/php7/php7.y:4305 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4301 +// line internal/php7/php7.y:4309 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4305 +// line internal/php7/php7.y:4313 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6968,7 +6976,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4319 +// line internal/php7/php7.y:4327 { name := &ast.Identifier{ Node: ast.Node{ @@ -6987,7 +6995,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4336 +// line internal/php7/php7.y:4344 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7001,7 +7009,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4348 +// line internal/php7/php7.y:4356 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7013,7 +7021,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4361 +// line internal/php7/php7.y:4369 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7026,7 +7034,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4372 +// line internal/php7/php7.y:4380 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7039,13 +7047,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4386 +// line internal/php7/php7.y:4394 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4390 +// line internal/php7/php7.y:4398 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7059,7 +7067,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4402 +// line internal/php7/php7.y:4410 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7073,7 +7081,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4414 +// line internal/php7/php7.y:4422 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7086,7 +7094,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4425 +// line internal/php7/php7.y:4433 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7099,7 +7107,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4436 +// line internal/php7/php7.y:4444 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7112,7 +7120,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4450 +// line internal/php7/php7.y:4458 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7124,7 +7132,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4460 +// line internal/php7/php7.y:4468 { yyVAL.node = yyDollar[2].node @@ -7134,13 +7142,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4468 +// line internal/php7/php7.y:4476 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4475 +// line internal/php7/php7.y:4483 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7152,7 +7160,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4485 +// line internal/php7/php7.y:4493 { yyVAL.node = yyDollar[2].node @@ -7162,13 +7170,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4493 +// line internal/php7/php7.y:4501 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4500 +// line internal/php7/php7.y:4508 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7181,19 +7189,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4514 +// line internal/php7/php7.y:4522 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4518 +// line internal/php7/php7.y:4526 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4525 +// line internal/php7/php7.y:4533 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7202,7 +7210,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4532 +// line internal/php7/php7.y:4540 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7210,7 +7218,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4541 +// line internal/php7/php7.y:4549 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7223,7 +7231,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4552 +// line internal/php7/php7.y:4560 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7234,7 +7242,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4561 +// line internal/php7/php7.y:4569 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7252,7 +7260,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4577 +// line internal/php7/php7.y:4585 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7268,7 +7276,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4591 +// line internal/php7/php7.y:4599 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7280,7 +7288,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4601 +// line internal/php7/php7.y:4609 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7302,7 +7310,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4621 +// line internal/php7/php7.y:4629 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7322,13 +7330,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4642 +// line internal/php7/php7.y:4650 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4646 +// line internal/php7/php7.y:4654 { yyVAL.list = append( yyDollar[1].list, @@ -7343,13 +7351,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4659 +// line internal/php7/php7.y:4667 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4663 +// line internal/php7/php7.y:4671 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7364,7 +7372,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4679 +// line internal/php7/php7.y:4687 { name := &ast.Identifier{ Node: ast.Node{ @@ -7383,7 +7391,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4696 +// line internal/php7/php7.y:4704 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7408,7 +7416,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4719 +// line internal/php7/php7.y:4727 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7438,7 +7446,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4747 +// line internal/php7/php7.y:4755 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7453,7 +7461,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4760 +// line internal/php7/php7.y:4768 { name := &ast.Identifier{ Node: ast.Node{ @@ -7475,7 +7483,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4780 +// line internal/php7/php7.y:4788 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7502,7 +7510,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4805 +// line internal/php7/php7.y:4813 { yyVAL.node = yyDollar[2].node @@ -7512,7 +7520,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4816 +// line internal/php7/php7.y:4824 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7524,7 +7532,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4826 +// line internal/php7/php7.y:4834 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7547,7 +7555,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4847 +// line internal/php7/php7.y:4855 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7575,7 +7583,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4873 +// line internal/php7/php7.y:4881 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7594,7 +7602,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4893 +// line internal/php7/php7.y:4901 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7613,7 +7621,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4910 +// line internal/php7/php7.y:4918 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7627,7 +7635,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4922 +// line internal/php7/php7.y:4930 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7639,7 +7647,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4932 +// line internal/php7/php7.y:4940 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7651,7 +7659,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4942 +// line internal/php7/php7.y:4950 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7665,7 +7673,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4954 +// line internal/php7/php7.y:4962 { yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} @@ -7677,7 +7685,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4964 +// line internal/php7/php7.y:4972 { yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} @@ -7689,7 +7697,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4977 +// line internal/php7/php7.y:4985 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7697,7 +7705,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4983 +// line internal/php7/php7.y:4991 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7706,7 +7714,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4993 +// line internal/php7/php7.y:5001 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index ca0a1c2..581403b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2778,25 +2778,35 @@ new_expr: T_NEW class_name_reference ctor_arguments { if $3 != nil { - $$ = &ast.ExprNew{ast.Node{}, $2, $3.(*ast.ArgumentList)} - $$.GetNode().Position = position.NewTokenNodePosition($1, $3) + $$ = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $3), + }, + NewTkn: $1, + Class: $2, + OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $3.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + } } else { - $$ = &ast.ExprNew{ast.Node{}, $2, nil} - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) + $$ = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + NewTkn: $1, + Class: $2, + } } - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_NEW anonymous_class { - $$ = &ast.ExprNew{ast.Node{}, $2, nil} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprNew{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + NewTkn: $1, + Class: $2, + } } ; @@ -3018,45 +3028,43 @@ expr_without_variable: } | variable T_INC { - $$ = &ast.ExprPostInc{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprPostInc{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Var: $1, + IncTkn: $2, + } } | T_INC variable { - $$ = &ast.ExprPreInc{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprPreInc{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + IncTkn: $1, + Var: $2, + } } | variable T_DEC { - $$ = &ast.ExprPostDec{ast.Node{}, $1} - - // save position - $$.GetNode().Position = position.NewNodeTokenPosition($1, $2) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprPostDec{ + Node: ast.Node{ + Position: position.NewNodeTokenPosition($1, $2), + }, + Var: $1, + DecTkn: $2, + } } | T_DEC variable { - $$ = &ast.ExprPreDec{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprPreDec{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + DecTkn: $1, + Var: $2, + } } | expr T_BOOLEAN_OR expr { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 9f90db7..cadaa12 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1230,8 +1230,11 @@ func (n *ExprMethodCall) Accept(v NodeVisitor) { // ExprNew node type ExprNew struct { Node - Class Vertex - ArgumentList *ArgumentList + NewTkn *token.Token + Class Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + CloseParenthesisTkn *token.Token } func (n *ExprNew) Accept(v NodeVisitor) { @@ -1241,7 +1244,8 @@ func (n *ExprNew) Accept(v NodeVisitor) { // ExprPostDec node type ExprPostDec struct { Node - Var Vertex + Var Vertex + DecTkn *token.Token } func (n *ExprPostDec) Accept(v NodeVisitor) { @@ -1251,7 +1255,8 @@ func (n *ExprPostDec) Accept(v NodeVisitor) { // ExprPostInc node type ExprPostInc struct { Node - Var Vertex + Var Vertex + IncTkn *token.Token } func (n *ExprPostInc) Accept(v NodeVisitor) { @@ -1261,7 +1266,8 @@ func (n *ExprPostInc) Accept(v NodeVisitor) { // ExprPreDec node type ExprPreDec struct { Node - Var Vertex + DecTkn *token.Token + Var Vertex } func (n *ExprPreDec) Accept(v NodeVisitor) { @@ -1271,7 +1277,8 @@ func (n *ExprPreDec) Accept(v NodeVisitor) { // ExprPreInc node type ExprPreInc struct { Node - Var Vertex + IncTkn *token.Token + Var Vertex } func (n *ExprPreInc) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index fecf672..ad492b0 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1415,10 +1415,12 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Class) t.visitor.Leave("Class", true) } - if nn.ArgumentList != nil { - t.visitor.Enter("ArgumentList", true) - t.Traverse(nn.ArgumentList) - t.visitor.Leave("ArgumentList", true) + if nn.Arguments != nil { + t.visitor.Enter("Arguments", false) + for _, c := range nn.Arguments { + t.Traverse(c) + } + t.visitor.Leave("Arguments", false) } case *ast.ExprPostDec: if nn == nil { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index ef01e44..a840cea 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1143,9 +1143,9 @@ func (p *PrettyPrinter) printExprNew(n ast.Vertex) { io.WriteString(p.w, "new ") p.Print(nn.Class) - if nn.ArgumentList != nil { + if nn.Arguments != nil { io.WriteString(p.w, "(") - p.joinPrint(", ", nn.ArgumentList.Arguments) + p.joinPrint(", ", nn.Arguments) io.WriteString(p.w, ")") } } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 8791841..58ac6eb 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1710,10 +1710,10 @@ func (p *Printer) printExprNew(n ast.Vertex) { p.bufStart = " " p.Print(nn.Class) - if nn.ArgumentList != nil { - p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") + if nn.Arguments != nil { + p.printToken(nn.OpenParenthesisTkn, "(") + p.joinPrint(",", nn.Arguments) + p.printToken(nn.CloseParenthesisTkn, ")") } p.printFreeFloating(nn, token.End) From 592c9b9aff7162afc1ec118d53602c6e2da5652d Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Thu, 3 Dec 2020 22:20:50 +0200 Subject: [PATCH 089/140] [refactoring] update ast structure of "Print", "Reference", "Require" and "RequireOnce" nodes --- internal/php5/php5.go | 472 +++++++++++++++++++++--------------------- internal/php5/php5.y | 70 ++++--- internal/php7/php7.go | 315 ++++++++++++++-------------- internal/php7/php7.y | 91 ++++---- pkg/ast/node.go | 12 +- 5 files changed, 491 insertions(+), 469 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 5cc2459..8aa85e6 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6598 +// line internal/php5/php5.y:6604 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -3779,13 +3779,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:1611 { - yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + AmpersandTkn: yyDollar[1].token, + Var: yyDollar[2].node, + } } case 113: yyDollar = yyS[yypt-4 : yypt+1] @@ -6317,13 +6317,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:3945 { - yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprPrint{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + PrintTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 303: yyDollar = yyS[yypt-1 : yypt+1] @@ -6574,6 +6574,7 @@ yydefault: Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), }, + AmpersandTkn: yyDollar[3].token, Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), @@ -6595,7 +6596,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4205 +// line internal/php5/php5.y:4206 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6616,7 +6617,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4224 +// line internal/php5/php5.y:4225 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6624,6 +6625,7 @@ yydefault: Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), }, + AmpersandTkn: yyDollar[1].token, Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[2].token), @@ -6642,7 +6644,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4251 +// line internal/php5/php5.y:4253 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6661,7 +6663,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4268 +// line internal/php5/php5.y:4270 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6682,7 +6684,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4287 +// line internal/php5/php5.y:4289 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6702,7 +6704,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4305 +// line internal/php5/php5.y:4307 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6715,7 +6717,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4316 +// line internal/php5/php5.y:4318 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6728,7 +6730,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4327 +// line internal/php5/php5.y:4329 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6741,7 +6743,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4338 +// line internal/php5/php5.y:4340 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6754,7 +6756,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4349 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6768,7 +6770,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4364 +// line internal/php5/php5.y:4366 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6780,7 +6782,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4374 +// line internal/php5/php5.y:4376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6791,7 +6793,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4383 +// line internal/php5/php5.y:4385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6804,7 +6806,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4394 +// line internal/php5/php5.y:4396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6816,7 +6818,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4407 +// line internal/php5/php5.y:4409 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6827,7 +6829,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4416 +// line internal/php5/php5.y:4418 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6840,7 +6842,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4427 +// line internal/php5/php5.y:4429 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6852,19 +6854,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4440 +// line internal/php5/php5.y:4442 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4444 +// line internal/php5/php5.y:4446 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4451 +// line internal/php5/php5.y:4453 { yyVAL.node = yyDollar[1].node @@ -6905,25 +6907,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4490 +// line internal/php5/php5.y:4492 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4498 +// line internal/php5/php5.y:4500 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4502 +// line internal/php5/php5.y:4504 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4510 +// line internal/php5/php5.y:4512 { yyVAL.list = yyDollar[2].list @@ -6932,13 +6934,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4520 +// line internal/php5/php5.y:4522 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4526 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6954,19 +6956,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4538 +// line internal/php5/php5.y:4540 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4545 +// line internal/php5/php5.y:4547 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4549 +// line internal/php5/php5.y:4551 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6980,25 +6982,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4561 +// line internal/php5/php5.y:4563 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4568 +// line internal/php5/php5.y:4570 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4572 +// line internal/php5/php5.y:4574 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4579 +// line internal/php5/php5.y:4581 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -7010,7 +7012,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4589 +// line internal/php5/php5.y:4591 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -7022,7 +7024,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4599 +// line internal/php5/php5.y:4601 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7034,7 +7036,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4609 +// line internal/php5/php5.y:4611 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7046,7 +7048,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4619 +// line internal/php5/php5.y:4621 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7058,7 +7060,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4629 +// line internal/php5/php5.y:4631 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7070,7 +7072,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4639 +// line internal/php5/php5.y:4641 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7082,7 +7084,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4649 +// line internal/php5/php5.y:4651 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7094,7 +7096,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4659 +// line internal/php5/php5.y:4661 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7106,7 +7108,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4669 +// line internal/php5/php5.y:4671 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7118,7 +7120,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4679 +// line internal/php5/php5.y:4681 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7139,7 +7141,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4698 +// line internal/php5/php5.y:4700 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7151,7 +7153,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4711 +// line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7170,25 +7172,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4731 +// line internal/php5/php5.y:4733 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4738 +// line internal/php5/php5.y:4740 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4742 +// line internal/php5/php5.y:4744 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4746 +// line internal/php5/php5.y:4748 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7204,7 +7206,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4760 +// line internal/php5/php5.y:4762 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7222,7 +7224,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4776 +// line internal/php5/php5.y:4778 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7239,7 +7241,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4791 +// line internal/php5/php5.y:4793 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7254,7 +7256,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4804 +// line internal/php5/php5.y:4806 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7268,13 +7270,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4816 +// line internal/php5/php5.y:4818 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4820 +// line internal/php5/php5.y:4822 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7286,13 +7288,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4830 +// line internal/php5/php5.y:4832 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4837 +// line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7306,7 +7308,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4849 +// line internal/php5/php5.y:4851 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7319,7 +7321,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4860 +// line internal/php5/php5.y:4862 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7332,7 +7334,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4871 +// line internal/php5/php5.y:4873 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7345,7 +7347,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4882 +// line internal/php5/php5.y:4884 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7358,7 +7360,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4893 +// line internal/php5/php5.y:4895 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7371,7 +7373,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4904 +// line internal/php5/php5.y:4906 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7384,7 +7386,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4915 +// line internal/php5/php5.y:4917 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7396,7 +7398,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4925 +// line internal/php5/php5.y:4927 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7408,7 +7410,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4935 +// line internal/php5/php5.y:4937 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7421,7 +7423,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4946 +// line internal/php5/php5.y:4948 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7434,7 +7436,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4957 +// line internal/php5/php5.y:4959 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7447,7 +7449,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4968 +// line internal/php5/php5.y:4970 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7460,7 +7462,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4979 +// line internal/php5/php5.y:4981 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7473,7 +7475,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4990 +// line internal/php5/php5.y:4992 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7486,7 +7488,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5001 +// line internal/php5/php5.y:5003 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7499,7 +7501,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5012 +// line internal/php5/php5.y:5014 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7512,7 +7514,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5023 +// line internal/php5/php5.y:5025 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7525,7 +7527,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5034 +// line internal/php5/php5.y:5036 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7538,7 +7540,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5045 +// line internal/php5/php5.y:5047 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7551,7 +7553,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5056 +// line internal/php5/php5.y:5058 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7564,7 +7566,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5067 +// line internal/php5/php5.y:5069 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7577,7 +7579,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5078 +// line internal/php5/php5.y:5080 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7590,7 +7592,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5089 +// line internal/php5/php5.y:5091 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7604,7 +7606,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5101 +// line internal/php5/php5.y:5103 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7617,7 +7619,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5112 +// line internal/php5/php5.y:5114 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7630,7 +7632,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5123 +// line internal/php5/php5.y:5125 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7643,7 +7645,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5134 +// line internal/php5/php5.y:5136 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7656,7 +7658,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5145 +// line internal/php5/php5.y:5147 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} @@ -7670,7 +7672,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5157 +// line internal/php5/php5.y:5159 { yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} @@ -7684,7 +7686,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5169 +// line internal/php5/php5.y:5171 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7696,7 +7698,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5179 +// line internal/php5/php5.y:5181 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7708,7 +7710,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5189 +// line internal/php5/php5.y:5191 { yyVAL.node = yyDollar[2].node @@ -7718,13 +7720,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5200 +// line internal/php5/php5.y:5202 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5204 +// line internal/php5/php5.y:5206 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7740,7 +7742,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5218 +// line internal/php5/php5.y:5220 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7758,7 +7760,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5234 +// line internal/php5/php5.y:5236 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7775,7 +7777,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5252 +// line internal/php5/php5.y:5254 { name := &ast.Identifier{ Node: ast.Node{ @@ -7794,25 +7796,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5269 +// line internal/php5/php5.y:5271 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5273 +// line internal/php5/php5.y:5275 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5277 +// line internal/php5/php5.y:5279 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5281 +// line internal/php5/php5.y:5283 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7825,7 +7827,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5292 +// line internal/php5/php5.y:5294 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7838,7 +7840,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5303 +// line internal/php5/php5.y:5305 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7850,13 +7852,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5316 +// line internal/php5/php5.y:5318 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5320 +// line internal/php5/php5.y:5322 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7867,19 +7869,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5332 +// line internal/php5/php5.y:5334 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5336 +// line internal/php5/php5.y:5338 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5343 +// line internal/php5/php5.y:5345 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7897,7 +7899,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5359 +// line internal/php5/php5.y:5361 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7913,7 +7915,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5373 +// line internal/php5/php5.y:5375 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7930,7 +7932,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5388 +// line internal/php5/php5.y:5390 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7945,19 +7947,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5404 +// line internal/php5/php5.y:5406 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5408 +// line internal/php5/php5.y:5410 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5415 +// line internal/php5/php5.y:5417 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7974,7 +7976,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5430 +// line internal/php5/php5.y:5432 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7991,25 +7993,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5449 +// line internal/php5/php5.y:5451 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5457 +// line internal/php5/php5.y:5459 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5464 +// line internal/php5/php5.y:5466 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5471 +// line internal/php5/php5.y:5473 { yyVAL.node = yyDollar[1].node @@ -8087,25 +8089,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5547 +// line internal/php5/php5.y:5549 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5554 +// line internal/php5/php5.y:5556 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5558 +// line internal/php5/php5.y:5560 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5566 +// line internal/php5/php5.y:5568 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8136,7 +8138,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5597 +// line internal/php5/php5.y:5599 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8152,7 +8154,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5611 +// line internal/php5/php5.y:5613 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8168,7 +8170,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5628 +// line internal/php5/php5.y:5630 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8181,31 +8183,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5642 +// line internal/php5/php5.y:5644 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5646 +// line internal/php5/php5.y:5648 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5650 +// line internal/php5/php5.y:5652 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5657 +// line internal/php5/php5.y:5659 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5661 +// line internal/php5/php5.y:5663 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8217,7 +8219,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5674 +// line internal/php5/php5.y:5676 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8230,7 +8232,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5685 +// line internal/php5/php5.y:5687 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -8243,13 +8245,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5699 +// line internal/php5/php5.y:5701 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5706 +// line internal/php5/php5.y:5708 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8263,7 +8265,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5718 +// line internal/php5/php5.y:5720 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8277,31 +8279,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5733 +// line internal/php5/php5.y:5735 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5737 +// line internal/php5/php5.y:5739 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5741 +// line internal/php5/php5.y:5743 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5749 +// line internal/php5/php5.y:5751 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5753 +// line internal/php5/php5.y:5755 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8313,13 +8315,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5763 +// line internal/php5/php5.y:5765 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5770 +// line internal/php5/php5.y:5772 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8333,7 +8335,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5782 +// line internal/php5/php5.y:5784 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8347,13 +8349,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5794 +// line internal/php5/php5.y:5796 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5802 +// line internal/php5/php5.y:5804 { name := &ast.Identifier{ Node: ast.Node{ @@ -8372,7 +8374,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5819 +// line internal/php5/php5.y:5821 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8386,25 +8388,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5834 +// line internal/php5/php5.y:5836 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5838 +// line internal/php5/php5.y:5840 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5846 +// line internal/php5/php5.y:5848 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5850 +// line internal/php5/php5.y:5852 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8417,7 +8419,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5864 +// line internal/php5/php5.y:5866 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8433,7 +8435,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5878 +// line internal/php5/php5.y:5880 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8449,7 +8451,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5892 +// line internal/php5/php5.y:5894 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8462,7 +8464,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5906 +// line internal/php5/php5.y:5908 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8474,7 +8476,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5916 +// line internal/php5/php5.y:5918 { yyVAL.node = yyDollar[2].node @@ -8487,7 +8489,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5930 +// line internal/php5/php5.y:5932 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8500,7 +8502,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5941 +// line internal/php5/php5.y:5943 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8517,7 +8519,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5959 +// line internal/php5/php5.y:5961 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8526,7 +8528,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5966 +// line internal/php5/php5.y:5968 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8534,7 +8536,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5976 +// line internal/php5/php5.y:5978 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8545,7 +8547,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5985 +// line internal/php5/php5.y:5987 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8572,19 +8574,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6010 +// line internal/php5/php5.y:6012 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6018 +// line internal/php5/php5.y:6020 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6022 +// line internal/php5/php5.y:6024 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8595,7 +8597,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6034 +// line internal/php5/php5.y:6036 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8613,7 +8615,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6050 +// line internal/php5/php5.y:6052 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8629,7 +8631,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6064 +// line internal/php5/php5.y:6066 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8646,7 +8648,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6079 +// line internal/php5/php5.y:6081 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8661,7 +8663,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6092 +// line internal/php5/php5.y:6094 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8673,7 +8675,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node), }, - Var: yyDollar[6].node, + AmpersandTkn: yyDollar[5].token, + Var: yyDollar[6].node, }, } @@ -8684,7 +8687,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6113 +// line internal/php5/php5.y:6116 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8694,7 +8697,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), }, - Var: yyDollar[4].node, + AmpersandTkn: yyDollar[3].token, + Var: yyDollar[4].node, }, } @@ -8705,7 +8709,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6132 +// line internal/php5/php5.y:6136 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8719,7 +8723,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), }, - Var: yyDollar[4].node, + AmpersandTkn: yyDollar[3].token, + Var: yyDollar[4].node, }, }, }, @@ -8727,7 +8732,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6152 +// line internal/php5/php5.y:6157 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8739,7 +8744,8 @@ yydefault: Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), }, - Var: yyDollar[2].node, + AmpersandTkn: yyDollar[1].token, + Var: yyDollar[2].node, }, }, }, @@ -8747,13 +8753,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6173 +// line internal/php5/php5.y:6179 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6177 +// line internal/php5/php5.y:6183 { yyVAL.list = append( yyDollar[1].list, @@ -8768,13 +8774,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6190 +// line internal/php5/php5.y:6196 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6194 +// line internal/php5/php5.y:6200 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8789,7 +8795,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6210 +// line internal/php5/php5.y:6216 { name := &ast.Identifier{ Node: ast.Node{ @@ -8808,7 +8814,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6227 +// line internal/php5/php5.y:6233 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8833,7 +8839,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6250 +// line internal/php5/php5.y:6256 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8863,7 +8869,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6278 +// line internal/php5/php5.y:6284 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8878,7 +8884,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6291 +// line internal/php5/php5.y:6297 { name := &ast.Identifier{ Node: ast.Node{ @@ -8900,7 +8906,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6311 +// line internal/php5/php5.y:6317 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8927,7 +8933,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6336 +// line internal/php5/php5.y:6342 { yyVAL.node = yyDollar[2].node @@ -8937,7 +8943,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6347 +// line internal/php5/php5.y:6353 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8949,7 +8955,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6363 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8978,7 +8984,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6384 +// line internal/php5/php5.y:6390 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -8997,7 +9003,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6404 +// line internal/php5/php5.y:6410 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -9012,7 +9018,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6417 +// line internal/php5/php5.y:6423 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9026,7 +9032,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6429 +// line internal/php5/php5.y:6435 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9040,7 +9046,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6441 +// line internal/php5/php5.y:6447 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9052,7 +9058,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6451 +// line internal/php5/php5.y:6457 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9064,7 +9070,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6461 +// line internal/php5/php5.y:6467 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9078,31 +9084,31 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6473 +// line internal/php5/php5.y:6479 { - yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprRequire{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + RequireTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6483 +// line internal/php5/php5.y:6489 { - yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprRequireOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + RequireOnceTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6496 +// line internal/php5/php5.y:6502 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9110,7 +9116,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6508 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9119,19 +9125,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6512 +// line internal/php5/php5.y:6518 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6516 +// line internal/php5/php5.y:6522 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6523 +// line internal/php5/php5.y:6529 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9150,7 +9156,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6540 +// line internal/php5/php5.y:6546 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9169,7 +9175,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6560 +// line internal/php5/php5.y:6566 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9188,7 +9194,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6580 +// line internal/php5/php5.y:6586 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index bcdf386..d4cc523 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1609,13 +1609,13 @@ foreach_variable: } | '&' variable { - $$ = &ast.ExprReference{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + AmpersandTkn: $1, + Var: $2, + } } | T_LIST '(' assignment_list ')' { @@ -3943,13 +3943,13 @@ expr_without_variable: } | T_PRINT expr { - $$ = &ast.ExprPrint{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprPrint{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + PrintTkn: $1, + Expr: $2, + } } | T_YIELD { @@ -4182,6 +4182,7 @@ lexical_var_list: Node: ast.Node{ Position: position.NewTokensPosition($3, $4), }, + AmpersandTkn: $3, Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($4), @@ -4228,6 +4229,7 @@ lexical_var_list: Node: ast.Node{ Position: position.NewTokensPosition($1, $2), }, + AmpersandTkn: $1, Var: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($2), @@ -6100,7 +6102,8 @@ non_empty_array_pair_list: Node: ast.Node{ Position: position.NewTokenNodePosition($5, $6), }, - Var: $6, + AmpersandTkn: $5, + Var: $6, }, } @@ -6119,7 +6122,8 @@ non_empty_array_pair_list: Node: ast.Node{ Position: position.NewTokenNodePosition($3, $4), }, - Var: $4, + AmpersandTkn: $3, + Var: $4, }, } @@ -6142,7 +6146,8 @@ non_empty_array_pair_list: Node: ast.Node{ Position: position.NewTokenNodePosition($3, $4), }, - Var: $4, + AmpersandTkn: $3, + Var: $4, }, }, }, @@ -6160,7 +6165,8 @@ non_empty_array_pair_list: Node: ast.Node{ Position: position.NewTokenNodePosition($1, $2), }, - Var: $2, + AmpersandTkn: $1, + Var: $2, }, }, }, @@ -6471,23 +6477,23 @@ internal_functions_in_yacc: } | T_REQUIRE expr { - $$ = &ast.ExprRequire{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprRequire{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + RequireTkn: $1, + Expr: $2, + } } | T_REQUIRE_ONCE expr { - $$ = &ast.ExprRequireOnce{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprRequireOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + RequireOnceTkn: $1, + Expr: $2, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index cfb8eb3..8e48f1b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5008 +// line internal/php7/php7.y:5011 // line yacctab:1 var yyExca = [...]int{ @@ -3812,13 +3812,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:1445 { - yyVAL.node = &ast.ExprReference{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + AmpersandTkn: yyDollar[1].token, + Var: yyDollar[2].node, + } } case 186: yyDollar = yyS[yypt-4 : yypt+1] @@ -6156,13 +6156,13 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:3583 { - yyVAL.node = &ast.ExprPrint{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprPrint{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + PrintTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 367: yyDollar = yyS[yypt-1 : yypt+1] @@ -6347,27 +6347,28 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:3761 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprReference{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + AmpersandTkn: yyDollar[1].token, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.ExprReference{ast.Node{}, variable} - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[2].token.SkippedTokens) } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3784 +// line internal/php7/php7.y:3785 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6381,7 +6382,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3796 +// line internal/php7/php7.y:3797 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6394,7 +6395,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3807 +// line internal/php7/php7.y:3808 { yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} @@ -6407,7 +6408,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3818 +// line internal/php7/php7.y:3819 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6421,7 +6422,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3833 +// line internal/php7/php7.y:3834 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6433,31 +6434,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3843 +// line internal/php7/php7.y:3844 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3850 +// line internal/php7/php7.y:3851 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3854 +// line internal/php7/php7.y:3855 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3861 +// line internal/php7/php7.y:3862 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3865 +// line internal/php7/php7.y:3866 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6474,13 +6475,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3883 +// line internal/php7/php7.y:3884 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3887 +// line internal/php7/php7.y:3888 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6494,25 +6495,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3899 +// line internal/php7/php7.y:3900 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3906 +// line internal/php7/php7.y:3907 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3910 +// line internal/php7/php7.y:3911 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3917 +// line internal/php7/php7.y:3918 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6527,7 +6528,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3930 +// line internal/php7/php7.y:3931 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6541,7 +6542,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3942 +// line internal/php7/php7.y:3943 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6553,7 +6554,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3955 +// line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6565,7 +6566,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3965 +// line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6577,7 +6578,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3975 +// line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6589,7 +6590,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3985 +// line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6601,7 +6602,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3995 +// line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6613,7 +6614,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4005 +// line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6625,7 +6626,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4015 +// line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6637,7 +6638,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4025 +// line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6649,7 +6650,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4035 +// line internal/php7/php7.y:4036 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6661,7 +6662,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4045 +// line internal/php7/php7.y:4046 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6673,7 +6674,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4055 +// line internal/php7/php7.y:4056 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6694,7 +6695,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4074 +// line internal/php7/php7.y:4075 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6706,7 +6707,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4084 +// line internal/php7/php7.y:4085 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6719,7 +6720,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4095 +// line internal/php7/php7.y:4096 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6732,19 +6733,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4106 +// line internal/php7/php7.y:4107 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4110 +// line internal/php7/php7.y:4111 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4117 +// line internal/php7/php7.y:4118 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6755,7 +6756,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4126 +// line internal/php7/php7.y:4127 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6774,7 +6775,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4143 +// line internal/php7/php7.y:4144 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6793,43 +6794,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4163 +// line internal/php7/php7.y:4164 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4167 +// line internal/php7/php7.y:4168 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4174 +// line internal/php7/php7.y:4175 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4178 +// line internal/php7/php7.y:4179 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4185 +// line internal/php7/php7.y:4186 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4192 +// line internal/php7/php7.y:4193 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4196 +// line internal/php7/php7.y:4197 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6846,19 +6847,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4211 +// line internal/php7/php7.y:4212 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4218 +// line internal/php7/php7.y:4219 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4222 +// line internal/php7/php7.y:4223 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6875,19 +6876,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4237 +// line internal/php7/php7.y:4238 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4245 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4248 +// line internal/php7/php7.y:4249 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6901,7 +6902,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4260 +// line internal/php7/php7.y:4261 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6915,7 +6916,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4272 +// line internal/php7/php7.y:4273 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6929,7 +6930,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4284 +// line internal/php7/php7.y:4285 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6945,25 +6946,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4298 +// line internal/php7/php7.y:4299 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4305 +// line internal/php7/php7.y:4306 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4309 +// line internal/php7/php7.y:4310 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4313 +// line internal/php7/php7.y:4314 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6976,7 +6977,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4327 +// line internal/php7/php7.y:4328 { name := &ast.Identifier{ Node: ast.Node{ @@ -6995,7 +6996,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4344 +// line internal/php7/php7.y:4345 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7009,7 +7010,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4356 +// line internal/php7/php7.y:4357 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7021,7 +7022,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4369 +// line internal/php7/php7.y:4370 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7034,7 +7035,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4380 +// line internal/php7/php7.y:4381 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7047,13 +7048,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4394 +// line internal/php7/php7.y:4395 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4398 +// line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7067,7 +7068,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4410 +// line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7081,7 +7082,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4422 +// line internal/php7/php7.y:4423 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7094,7 +7095,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4433 +// line internal/php7/php7.y:4434 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7107,7 +7108,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4444 +// line internal/php7/php7.y:4445 { yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7120,7 +7121,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4458 +// line internal/php7/php7.y:4459 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7132,7 +7133,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4468 +// line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[2].node @@ -7142,13 +7143,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4476 +// line internal/php7/php7.y:4477 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4483 +// line internal/php7/php7.y:4484 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7160,7 +7161,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4493 +// line internal/php7/php7.y:4494 { yyVAL.node = yyDollar[2].node @@ -7170,13 +7171,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4501 +// line internal/php7/php7.y:4502 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4508 +// line internal/php7/php7.y:4509 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7189,19 +7190,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4522 +// line internal/php7/php7.y:4523 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4526 +// line internal/php7/php7.y:4527 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4533 +// line internal/php7/php7.y:4534 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7210,7 +7211,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4540 +// line internal/php7/php7.y:4541 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7218,7 +7219,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4549 +// line internal/php7/php7.y:4550 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7231,7 +7232,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4560 +// line internal/php7/php7.y:4561 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7242,7 +7243,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4569 +// line internal/php7/php7.y:4570 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7254,13 +7255,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), }, - Var: yyDollar[4].node, + AmpersandTkn: yyDollar[3].token, + Var: yyDollar[4].node, }, } } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4585 +// line internal/php7/php7.y:4587 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7270,13 +7272,14 @@ yydefault: Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), }, - Var: yyDollar[2].node, + AmpersandTkn: yyDollar[1].token, + Var: yyDollar[2].node, }, } } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4599 +// line internal/php7/php7.y:4602 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7288,7 +7291,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4609 +// line internal/php7/php7.y:4612 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7310,7 +7313,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4629 +// line internal/php7/php7.y:4632 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7330,13 +7333,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4650 +// line internal/php7/php7.y:4653 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4654 +// line internal/php7/php7.y:4657 { yyVAL.list = append( yyDollar[1].list, @@ -7351,13 +7354,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4667 +// line internal/php7/php7.y:4670 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4671 +// line internal/php7/php7.y:4674 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7372,7 +7375,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4687 +// line internal/php7/php7.y:4690 { name := &ast.Identifier{ Node: ast.Node{ @@ -7391,7 +7394,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4704 +// line internal/php7/php7.y:4707 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7416,7 +7419,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4727 +// line internal/php7/php7.y:4730 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7446,7 +7449,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4755 +// line internal/php7/php7.y:4758 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7461,7 +7464,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4768 +// line internal/php7/php7.y:4771 { name := &ast.Identifier{ Node: ast.Node{ @@ -7483,7 +7486,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4788 +// line internal/php7/php7.y:4791 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7510,7 +7513,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4813 +// line internal/php7/php7.y:4816 { yyVAL.node = yyDollar[2].node @@ -7520,7 +7523,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4824 +// line internal/php7/php7.y:4827 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7532,7 +7535,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4834 +// line internal/php7/php7.y:4837 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7555,7 +7558,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4855 +// line internal/php7/php7.y:4858 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7583,7 +7586,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4881 +// line internal/php7/php7.y:4884 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7602,7 +7605,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4901 +// line internal/php7/php7.y:4904 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7621,7 +7624,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4918 +// line internal/php7/php7.y:4921 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7635,7 +7638,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4930 +// line internal/php7/php7.y:4933 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7647,7 +7650,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4940 +// line internal/php7/php7.y:4943 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7659,7 +7662,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4950 +// line internal/php7/php7.y:4953 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7673,31 +7676,31 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4962 +// line internal/php7/php7.y:4965 { - yyVAL.node = &ast.ExprRequire{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprRequire{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + RequireTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4972 +// line internal/php7/php7.y:4975 { - yyVAL.node = &ast.ExprRequireOnce{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprRequireOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + RequireOnceTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4985 +// line internal/php7/php7.y:4988 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7705,7 +7708,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4991 +// line internal/php7/php7.y:4994 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7714,7 +7717,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5001 +// line internal/php7/php7.y:5004 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 581403b..bd1fe44 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1443,13 +1443,13 @@ foreach_variable: } | '&' variable { - $$ = &ast.ExprReference{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprReference{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + AmpersandTkn: $1, + Var: $2, + } } | T_LIST '(' array_pair_list ')' { @@ -3581,13 +3581,13 @@ expr_without_variable: } | T_PRINT expr { - $$ = &ast.ExprPrint{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprPrint{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + PrintTkn: $1, + Expr: $2, + } } | T_YIELD { @@ -3759,23 +3759,24 @@ lexical_var: } | '&' T_VARIABLE { - identifier := &ast.Identifier{ + $$ = &ast.ExprReference{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $2), + }, + AmpersandTkn: $1, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, }, - IdentifierTkn: $2, - Value: $2.Value, } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.ExprReference{ast.Node{}, variable} - - // save position - variable.GetNode().Position = position.NewTokenPosition($2) - $$.GetNode().Position = position.NewTokensPosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.Start, $2.SkippedTokens) } ; @@ -4577,7 +4578,8 @@ array_pair: Node: ast.Node{ Position: position.NewTokenNodePosition($3, $4), }, - Var: $4, + AmpersandTkn: $3, + Var: $4, }, } } @@ -4591,7 +4593,8 @@ array_pair: Node: ast.Node{ Position: position.NewTokenNodePosition($1, $2), }, - Var: $2, + AmpersandTkn: $1, + Var: $2, }, } } @@ -4960,23 +4963,23 @@ internal_functions_in_yacc: } | T_REQUIRE expr { - $$ = &ast.ExprRequire{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprRequire{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + RequireTkn: $1, + Expr: $2, + } } | T_REQUIRE_ONCE expr { - $$ = &ast.ExprRequireOnce{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprRequireOnce{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + RequireOnceTkn: $1, + Expr: $2, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index cadaa12..c6d4c8d 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1288,7 +1288,8 @@ func (n *ExprPreInc) Accept(v NodeVisitor) { // ExprPrint node type ExprPrint struct { Node - Expr Vertex + PrintTkn *token.Token + Expr Vertex } func (n *ExprPrint) Accept(v NodeVisitor) { @@ -1310,7 +1311,8 @@ func (n *ExprPropertyFetch) Accept(v NodeVisitor) { // ExprReference node type ExprReference struct { Node - Var Vertex + AmpersandTkn *token.Token + Var Vertex } func (n *ExprReference) Accept(v NodeVisitor) { @@ -1320,7 +1322,8 @@ func (n *ExprReference) Accept(v NodeVisitor) { // ExprRequire node type ExprRequire struct { Node - Expr Vertex + RequireTkn *token.Token + Expr Vertex } func (n *ExprRequire) Accept(v NodeVisitor) { @@ -1330,7 +1333,8 @@ func (n *ExprRequire) Accept(v NodeVisitor) { // ExprRequireOnce node type ExprRequireOnce struct { Node - Expr Vertex + RequireOnceTkn *token.Token + Expr Vertex } func (n *ExprRequireOnce) Accept(v NodeVisitor) { From 13436b88a7350765829d2c5caa133ffa408f1192 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Thu, 3 Dec 2020 22:41:08 +0200 Subject: [PATCH 090/140] [refactoring] update ast structure of "ShellExec", "StaticCall", "StaticPropertyFetch" and "Ternary" nodes --- internal/php5/php5.go | 715 +++++++++++++++++----------------- internal/php5/php5.y | 197 +++++----- internal/php7/php7.go | 440 +++++++++++---------- internal/php7/php7.y | 154 ++++---- pkg/ast/node.go | 26 +- pkg/ast/traverser/dfs.go | 10 +- pkg/printer/pretty_printer.go | 2 +- pkg/printer/printer.go | 6 +- 8 files changed, 803 insertions(+), 747 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8aa85e6..e289a39 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6604 +// line internal/php5/php5.y:6619 type simpleIndirectReference struct { all []*ast.ExprVariable @@ -6131,39 +6131,40 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php5/php5.y:3791 { - yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), + }, + Condition: yyDollar[1].node, + QuestionTkn: yyDollar[2].token, + IfTrue: yyDollar[3].node, + ColonTkn: yyDollar[4].token, + IfFalse: yyDollar[5].node, + } } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3803 +// line internal/php5/php5.y:3804 { - yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Condition: yyDollar[1].node, + QuestionTkn: yyDollar[2].token, + ColonTkn: yyDollar[3].token, + IfFalse: yyDollar[4].node, + } } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3815 +// line internal/php5/php5.y:3816 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3819 +// line internal/php5/php5.y:3820 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6176,7 +6177,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3830 +// line internal/php5/php5.y:3831 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6189,7 +6190,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3842 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6202,7 +6203,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3852 +// line internal/php5/php5.y:3853 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6215,7 +6216,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3863 +// line internal/php5/php5.y:3864 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6228,7 +6229,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3874 +// line internal/php5/php5.y:3875 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6241,7 +6242,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3885 +// line internal/php5/php5.y:3886 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6254,7 +6255,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3896 +// line internal/php5/php5.y:3897 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6273,7 +6274,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3913 +// line internal/php5/php5.y:3914 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6285,37 +6286,38 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3923 +// line internal/php5/php5.y:3924 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3927 +// line internal/php5/php5.y:3928 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3931 +// line internal/php5/php5.y:3932 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3935 +// line internal/php5/php5.y:3936 { - yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprShellExec{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBacktickTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseBacktickTkn: yyDollar[3].token, + } } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3945 +// line internal/php5/php5.y:3947 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6327,7 +6329,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3955 +// line internal/php5/php5.y:3957 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6339,7 +6341,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3965 +// line internal/php5/php5.y:3967 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6358,7 +6360,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3982 +// line internal/php5/php5.y:3984 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6378,7 +6380,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4003 +// line internal/php5/php5.y:4005 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6390,7 +6392,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4013 +// line internal/php5/php5.y:4015 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6402,7 +6404,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4023 +// line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6415,7 +6417,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4034 +// line internal/php5/php5.y:4036 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6428,7 +6430,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4048 +// line internal/php5/php5.y:4050 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6442,7 +6444,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4060 +// line internal/php5/php5.y:4062 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6456,7 +6458,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4072 +// line internal/php5/php5.y:4074 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6476,7 +6478,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4090 +// line internal/php5/php5.y:4092 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6490,7 +6492,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4105 +// line internal/php5/php5.y:4107 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6505,7 +6507,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4118 +// line internal/php5/php5.y:4120 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6519,19 +6521,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4133 +// line internal/php5/php5.y:4135 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4140 +// line internal/php5/php5.y:4142 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4144 +// line internal/php5/php5.y:4146 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6546,7 +6548,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4160 +// line internal/php5/php5.y:4162 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6568,7 +6570,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4180 +// line internal/php5/php5.y:4182 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6596,7 +6598,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4206 +// line internal/php5/php5.y:4208 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6617,7 +6619,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4225 +// line internal/php5/php5.y:4227 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6644,7 +6646,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4253 +// line internal/php5/php5.y:4255 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6663,7 +6665,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4270 +// line internal/php5/php5.y:4272 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6684,7 +6686,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4289 +// line internal/php5/php5.y:4291 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6704,59 +6706,71 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4307 +// line internal/php5/php5.y:4309 { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Call: yyDollar[3].node, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4318 +// line internal/php5/php5.y:4323 { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Call: yyDollar[3].node, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4329 +// line internal/php5/php5.y:4337 { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Call: yyDollar[3].node, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4340 +// line internal/php5/php5.y:4351 { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Call: yyDollar[3].node, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4365 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6770,7 +6784,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4366 +// line internal/php5/php5.y:4380 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6782,7 +6796,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4376 +// line internal/php5/php5.y:4390 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6793,7 +6807,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4385 +// line internal/php5/php5.y:4399 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6806,7 +6820,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4396 +// line internal/php5/php5.y:4410 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6818,7 +6832,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4409 +// line internal/php5/php5.y:4423 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6829,7 +6843,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4418 +// line internal/php5/php5.y:4432 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6842,7 +6856,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4429 +// line internal/php5/php5.y:4443 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6854,19 +6868,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4442 +// line internal/php5/php5.y:4456 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4446 +// line internal/php5/php5.y:4460 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4453 +// line internal/php5/php5.y:4467 { yyVAL.node = yyDollar[1].node @@ -6907,25 +6921,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4492 +// line internal/php5/php5.y:4506 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4500 +// line internal/php5/php5.y:4514 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4504 +// line internal/php5/php5.y:4518 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4512 +// line internal/php5/php5.y:4526 { yyVAL.list = yyDollar[2].list @@ -6934,13 +6948,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4522 +// line internal/php5/php5.y:4536 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4526 +// line internal/php5/php5.y:4540 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6956,19 +6970,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4554 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4547 +// line internal/php5/php5.y:4561 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4551 +// line internal/php5/php5.y:4565 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6982,25 +6996,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4563 +// line internal/php5/php5.y:4577 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4570 +// line internal/php5/php5.y:4584 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4574 +// line internal/php5/php5.y:4588 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4581 +// line internal/php5/php5.y:4595 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -7012,7 +7026,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4591 +// line internal/php5/php5.y:4605 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -7024,7 +7038,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4601 +// line internal/php5/php5.y:4615 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7036,7 +7050,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4611 +// line internal/php5/php5.y:4625 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7048,7 +7062,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4621 +// line internal/php5/php5.y:4635 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7060,7 +7074,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4631 +// line internal/php5/php5.y:4645 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7072,7 +7086,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4641 +// line internal/php5/php5.y:4655 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7084,7 +7098,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4651 +// line internal/php5/php5.y:4665 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7096,7 +7110,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4661 +// line internal/php5/php5.y:4675 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7108,7 +7122,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4671 +// line internal/php5/php5.y:4685 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7120,7 +7134,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4681 +// line internal/php5/php5.y:4695 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7141,7 +7155,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4700 +// line internal/php5/php5.y:4714 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7153,7 +7167,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4713 +// line internal/php5/php5.y:4727 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7172,25 +7186,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4733 +// line internal/php5/php5.y:4747 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4740 +// line internal/php5/php5.y:4754 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4744 +// line internal/php5/php5.y:4758 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4748 +// line internal/php5/php5.y:4762 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7206,7 +7220,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4762 +// line internal/php5/php5.y:4776 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7224,7 +7238,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4778 +// line internal/php5/php5.y:4792 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7241,7 +7255,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4793 +// line internal/php5/php5.y:4807 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7256,7 +7270,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4806 +// line internal/php5/php5.y:4820 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7270,13 +7284,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4818 +// line internal/php5/php5.y:4832 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4822 +// line internal/php5/php5.y:4836 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7288,13 +7302,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4832 +// line internal/php5/php5.y:4846 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4839 +// line internal/php5/php5.y:4853 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7308,7 +7322,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4851 +// line internal/php5/php5.y:4865 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7321,7 +7335,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4862 +// line internal/php5/php5.y:4876 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7334,7 +7348,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4873 +// line internal/php5/php5.y:4887 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7347,7 +7361,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4884 +// line internal/php5/php5.y:4898 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7360,7 +7374,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4895 +// line internal/php5/php5.y:4909 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7373,7 +7387,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4906 +// line internal/php5/php5.y:4920 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7386,7 +7400,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4917 +// line internal/php5/php5.y:4931 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7398,7 +7412,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4927 +// line internal/php5/php5.y:4941 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7410,7 +7424,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4937 +// line internal/php5/php5.y:4951 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7423,7 +7437,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4948 +// line internal/php5/php5.y:4962 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7436,7 +7450,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4959 +// line internal/php5/php5.y:4973 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7449,7 +7463,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4970 +// line internal/php5/php5.y:4984 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7462,7 +7476,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4981 +// line internal/php5/php5.y:4995 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7475,7 +7489,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4992 +// line internal/php5/php5.y:5006 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7488,7 +7502,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5003 +// line internal/php5/php5.y:5017 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7501,7 +7515,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5014 +// line internal/php5/php5.y:5028 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7514,7 +7528,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5025 +// line internal/php5/php5.y:5039 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7527,7 +7541,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5036 +// line internal/php5/php5.y:5050 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7540,7 +7554,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5047 +// line internal/php5/php5.y:5061 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7553,7 +7567,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5058 +// line internal/php5/php5.y:5072 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7566,7 +7580,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5069 +// line internal/php5/php5.y:5083 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7579,7 +7593,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5080 +// line internal/php5/php5.y:5094 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7592,7 +7606,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5091 +// line internal/php5/php5.y:5105 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7606,7 +7620,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5103 +// line internal/php5/php5.y:5117 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7619,7 +7633,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5114 +// line internal/php5/php5.y:5128 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7632,7 +7646,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5125 +// line internal/php5/php5.y:5139 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7645,7 +7659,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5136 +// line internal/php5/php5.y:5150 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7658,35 +7672,36 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5147 +// line internal/php5/php5.y:5161 { - yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Condition: yyDollar[1].node, + QuestionTkn: yyDollar[2].token, + ColonTkn: yyDollar[3].token, + IfFalse: yyDollar[4].node, + } } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5159 +// line internal/php5/php5.y:5173 { - yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), + }, + Condition: yyDollar[1].node, + QuestionTkn: yyDollar[2].token, + IfTrue: yyDollar[3].node, + ColonTkn: yyDollar[4].token, + IfFalse: yyDollar[5].node, + } } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5171 +// line internal/php5/php5.y:5186 { yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} @@ -7698,7 +7713,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5181 +// line internal/php5/php5.y:5196 { yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} @@ -7710,7 +7725,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5191 +// line internal/php5/php5.y:5206 { yyVAL.node = yyDollar[2].node @@ -7720,13 +7735,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5202 +// line internal/php5/php5.y:5217 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5206 +// line internal/php5/php5.y:5221 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7742,7 +7757,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5220 +// line internal/php5/php5.y:5235 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7760,7 +7775,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5236 +// line internal/php5/php5.y:5251 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7777,7 +7792,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5254 +// line internal/php5/php5.y:5269 { name := &ast.Identifier{ Node: ast.Node{ @@ -7796,25 +7811,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5271 +// line internal/php5/php5.y:5286 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5275 +// line internal/php5/php5.y:5290 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5279 +// line internal/php5/php5.y:5294 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5283 +// line internal/php5/php5.y:5298 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7827,7 +7842,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5294 +// line internal/php5/php5.y:5309 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7840,7 +7855,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5305 +// line internal/php5/php5.y:5320 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7852,13 +7867,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5318 +// line internal/php5/php5.y:5333 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5322 +// line internal/php5/php5.y:5337 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7869,19 +7884,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5334 +// line internal/php5/php5.y:5349 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5338 +// line internal/php5/php5.y:5353 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5345 +// line internal/php5/php5.y:5360 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7899,7 +7914,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5361 +// line internal/php5/php5.y:5376 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7915,7 +7930,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5375 +// line internal/php5/php5.y:5390 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7932,7 +7947,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5390 +// line internal/php5/php5.y:5405 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7947,35 +7962,18 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5406 +// line internal/php5/php5.y:5421 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5410 +// line internal/php5/php5.y:5425 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5417 - { - yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, - } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) - } - case 432: - yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5432 { yyVAL.node = &ast.ParserBrackets{ @@ -7991,27 +7989,44 @@ yydefault: yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } + case 432: + yyDollar = yyS[yypt-3 : yypt+1] +// line internal/php5/php5.y:5447 + { + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } + + // save comments + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5451 - { - yyVAL.node = yyDollar[1].node - } - case 434: - yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5459 - { - yyVAL.node = yyDollar[1].node - } - case 435: - yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:5466 { yyVAL.node = yyDollar[1].node } + case 434: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5474 + { + yyVAL.node = yyDollar[1].node + } + case 435: + yyDollar = yyS[yypt-1 : yypt+1] +// line internal/php5/php5.y:5481 + { + yyVAL.node = yyDollar[1].node + } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5473 +// line internal/php5/php5.y:5488 { yyVAL.node = yyDollar[1].node @@ -8089,25 +8104,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5549 +// line internal/php5/php5.y:5564 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5556 +// line internal/php5/php5.y:5571 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5560 +// line internal/php5/php5.y:5575 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5568 +// line internal/php5/php5.y:5583 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8138,7 +8153,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5599 +// line internal/php5/php5.y:5614 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8154,7 +8169,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5613 +// line internal/php5/php5.y:5628 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8170,7 +8185,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5630 +// line internal/php5/php5.y:5645 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8183,31 +8198,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5644 +// line internal/php5/php5.y:5659 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5648 +// line internal/php5/php5.y:5663 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5652 +// line internal/php5/php5.y:5667 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5659 +// line internal/php5/php5.y:5674 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5663 +// line internal/php5/php5.y:5678 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8219,39 +8234,39 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5676 +// line internal/php5/php5.y:5691 { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5687 +// line internal/php5/php5.y:5702 { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5701 +// line internal/php5/php5.y:5716 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5708 +// line internal/php5/php5.y:5723 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8265,7 +8280,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5720 +// line internal/php5/php5.y:5735 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8279,31 +8294,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5735 +// line internal/php5/php5.y:5750 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5754 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5743 +// line internal/php5/php5.y:5758 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5751 +// line internal/php5/php5.y:5766 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5755 +// line internal/php5/php5.y:5770 { yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node @@ -8315,13 +8330,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5765 +// line internal/php5/php5.y:5780 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5787 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8335,7 +8350,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5784 +// line internal/php5/php5.y:5799 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8349,13 +8364,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5796 +// line internal/php5/php5.y:5811 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5804 +// line internal/php5/php5.y:5819 { name := &ast.Identifier{ Node: ast.Node{ @@ -8374,7 +8389,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5821 +// line internal/php5/php5.y:5836 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -8388,25 +8403,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5836 +// line internal/php5/php5.y:5851 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5840 +// line internal/php5/php5.y:5855 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5848 +// line internal/php5/php5.y:5863 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5852 +// line internal/php5/php5.y:5867 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8419,7 +8434,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5866 +// line internal/php5/php5.y:5881 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8435,7 +8450,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5880 +// line internal/php5/php5.y:5895 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8451,7 +8466,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5894 +// line internal/php5/php5.y:5909 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8464,7 +8479,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5908 +// line internal/php5/php5.y:5923 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8476,7 +8491,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5918 +// line internal/php5/php5.y:5933 { yyVAL.node = yyDollar[2].node @@ -8489,7 +8504,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5932 +// line internal/php5/php5.y:5947 { n := &ast.ExprVariable{ast.Node{}, nil} yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} @@ -8502,7 +8517,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5943 +// line internal/php5/php5.y:5958 { n := &ast.ExprVariable{ast.Node{}, nil} @@ -8519,7 +8534,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5961 +// line internal/php5/php5.y:5976 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8528,7 +8543,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5968 +// line internal/php5/php5.y:5983 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8536,7 +8551,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5978 +// line internal/php5/php5.y:5993 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8547,7 +8562,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5987 +// line internal/php5/php5.y:6002 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8574,19 +8589,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6012 +// line internal/php5/php5.y:6027 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6020 +// line internal/php5/php5.y:6035 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6024 +// line internal/php5/php5.y:6039 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8597,7 +8612,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6036 +// line internal/php5/php5.y:6051 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8615,7 +8630,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6052 +// line internal/php5/php5.y:6067 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8631,7 +8646,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6066 +// line internal/php5/php5.y:6081 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8648,7 +8663,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6081 +// line internal/php5/php5.y:6096 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8663,7 +8678,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6094 +// line internal/php5/php5.y:6109 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8687,7 +8702,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6116 +// line internal/php5/php5.y:6131 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8709,7 +8724,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6136 +// line internal/php5/php5.y:6151 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8732,7 +8747,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6157 +// line internal/php5/php5.y:6172 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8753,13 +8768,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6179 +// line internal/php5/php5.y:6194 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6183 +// line internal/php5/php5.y:6198 { yyVAL.list = append( yyDollar[1].list, @@ -8774,13 +8789,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6196 +// line internal/php5/php5.y:6211 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6200 +// line internal/php5/php5.y:6215 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8795,7 +8810,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6216 +// line internal/php5/php5.y:6231 { name := &ast.Identifier{ Node: ast.Node{ @@ -8814,7 +8829,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6233 +// line internal/php5/php5.y:6248 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8839,7 +8854,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6256 +// line internal/php5/php5.y:6271 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8869,7 +8884,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6284 +// line internal/php5/php5.y:6299 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -8884,7 +8899,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6297 +// line internal/php5/php5.y:6312 { name := &ast.Identifier{ Node: ast.Node{ @@ -8906,7 +8921,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6317 +// line internal/php5/php5.y:6332 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8933,7 +8948,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6342 +// line internal/php5/php5.y:6357 { yyVAL.node = yyDollar[2].node @@ -8943,7 +8958,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6353 +// line internal/php5/php5.y:6368 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8955,7 +8970,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6363 +// line internal/php5/php5.y:6378 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8984,7 +8999,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6390 +// line internal/php5/php5.y:6405 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -9003,7 +9018,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6410 +// line internal/php5/php5.y:6425 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -9018,7 +9033,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6423 +// line internal/php5/php5.y:6438 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9032,7 +9047,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6435 +// line internal/php5/php5.y:6450 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9046,7 +9061,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6447 +// line internal/php5/php5.y:6462 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9058,7 +9073,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6457 +// line internal/php5/php5.y:6472 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9070,7 +9085,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6467 +// line internal/php5/php5.y:6482 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9084,7 +9099,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6479 +// line internal/php5/php5.y:6494 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9096,7 +9111,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6489 +// line internal/php5/php5.y:6504 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9108,7 +9123,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6517 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9116,7 +9131,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6508 +// line internal/php5/php5.y:6523 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9125,19 +9140,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6518 +// line internal/php5/php5.y:6533 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6522 +// line internal/php5/php5.y:6537 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6529 +// line internal/php5/php5.y:6544 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9156,7 +9171,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6546 +// line internal/php5/php5.y:6561 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9175,7 +9190,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6566 +// line internal/php5/php5.y:6581 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9194,7 +9209,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6586 +// line internal/php5/php5.y:6601 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d4cc523..35a1e60 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3789,27 +3789,28 @@ expr_without_variable: } | expr '?' expr ':' expr { - $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $5) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.SkippedTokens) + $$ = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $5), + }, + Condition: $1, + QuestionTkn: $2, + IfTrue: $3, + ColonTkn: $4, + IfFalse: $5, + } } | expr '?' ':' expr { - $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.SkippedTokens) + $$ = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Condition: $1, + QuestionTkn: $2, + ColonTkn: $3, + IfFalse: $4, + } } | internal_functions_in_yacc { @@ -3933,13 +3934,14 @@ expr_without_variable: } | '`' backticks_expr '`' { - $$ = &ast.ExprShellExec{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprShellExec{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBacktickTkn: $1, + Parts: $2, + CloseBacktickTkn: $3, + } } | T_PRINT expr { @@ -4305,47 +4307,59 @@ function_call: } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Class: $1, + DoubleColonTkn: $2, + Call: $3, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + } } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { - $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Class: $1, + DoubleColonTkn: $2, + Call: $3, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Class: $1, + DoubleColonTkn: $2, + Call: $3, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { - $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Class: $1, + DoubleColonTkn: $2, + Call: $3, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + } } | variable_without_objects function_call_parameter_list { @@ -5145,27 +5159,28 @@ static_operation: } | static_scalar_value '?' ':' static_scalar_value { - $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.SkippedTokens) + $$ = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Condition: $1, + QuestionTkn: $2, + ColonTkn: $3, + IfFalse: $4, + } } | static_scalar_value '?' static_scalar_value ':' static_scalar_value { - $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $5) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.SkippedTokens) + $$ = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $5), + }, + Condition: $1, + QuestionTkn: $2, + IfTrue: $3, + ColonTkn: $4, + IfFalse: $5, + } } | '+' static_scalar_value { @@ -5674,25 +5689,25 @@ variable_without_objects: static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { - $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + Property: $3, + } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { - $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + Property: $3, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 8e48f1b..db2863b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5011 +// line internal/php7/php7.y:5019 // line yacctab:1 var yyExca = [...]int{ @@ -5969,33 +5969,34 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php7/php7.y:3426 { - yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[5].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[4].token.SkippedTokens) + yyVAL.node = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), + }, + Condition: yyDollar[1].node, + QuestionTkn: yyDollar[2].token, + IfTrue: yyDollar[3].node, + ColonTkn: yyDollar[4].token, + IfFalse: yyDollar[5].node, + } } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3438 +// line internal/php7/php7.y:3439 { - yyVAL.node = &ast.ExprTernary{ast.Node{}, yyDollar[1].node, nil, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Cond, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.True, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Condition: yyDollar[1].node, + QuestionTkn: yyDollar[2].token, + ColonTkn: yyDollar[3].token, + IfFalse: yyDollar[4].node, + } } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3450 +// line internal/php7/php7.y:3451 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6008,13 +6009,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3461 +// line internal/php7/php7.y:3462 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3465 +// line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6027,7 +6028,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3476 +// line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6040,7 +6041,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3487 +// line internal/php7/php7.y:3488 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6053,7 +6054,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3498 +// line internal/php7/php7.y:3499 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6066,7 +6067,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3509 +// line internal/php7/php7.y:3510 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6079,7 +6080,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3520 +// line internal/php7/php7.y:3521 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6092,7 +6093,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3531 +// line internal/php7/php7.y:3532 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6105,7 +6106,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3542 +// line internal/php7/php7.y:3543 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6124,7 +6125,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3559 +// line internal/php7/php7.y:3560 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6136,25 +6137,26 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3569 +// line internal/php7/php7.y:3570 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3573 +// line internal/php7/php7.y:3574 { - yyVAL.node = &ast.ExprShellExec{ast.Node{}, yyDollar[2].list} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprShellExec{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBacktickTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseBacktickTkn: yyDollar[3].token, + } } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3583 +// line internal/php7/php7.y:3585 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6166,7 +6168,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3593 +// line internal/php7/php7.y:3595 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6178,7 +6180,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3603 +// line internal/php7/php7.y:3605 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6190,7 +6192,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3613 +// line internal/php7/php7.y:3615 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6203,7 +6205,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3624 +// line internal/php7/php7.y:3626 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6215,13 +6217,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3634 +// line internal/php7/php7.y:3636 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3638 +// line internal/php7/php7.y:3640 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6236,7 +6238,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3654 +// line internal/php7/php7.y:3656 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6257,7 +6259,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3673 +// line internal/php7/php7.y:3675 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6276,25 +6278,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3697 +// line internal/php7/php7.y:3699 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3701 +// line internal/php7/php7.y:3703 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3708 +// line internal/php7/php7.y:3710 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3712 +// line internal/php7/php7.y:3714 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6309,7 +6311,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3730 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6318,7 +6320,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3735 +// line internal/php7/php7.y:3737 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6326,7 +6328,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3744 +// line internal/php7/php7.y:3746 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -6345,7 +6347,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3761 +// line internal/php7/php7.y:3763 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6368,7 +6370,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3785 +// line internal/php7/php7.y:3787 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6382,33 +6384,39 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3797 +// line internal/php7/php7.y:3799 { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Call: yyDollar[3].node, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3808 +// line internal/php7/php7.y:3813 { - yyVAL.node = &ast.ExprStaticCall{ast.Node{}, yyDollar[1].node, yyDollar[3].node, yyDollar[4].node.(*ast.ArgumentList)} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Call: yyDollar[3].node, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + } } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3819 +// line internal/php7/php7.y:3827 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6422,7 +6430,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3834 +// line internal/php7/php7.y:3842 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6434,31 +6442,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3844 +// line internal/php7/php7.y:3852 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3851 +// line internal/php7/php7.y:3859 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3855 +// line internal/php7/php7.y:3863 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3862 +// line internal/php7/php7.y:3870 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3866 +// line internal/php7/php7.y:3874 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6475,13 +6483,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3884 +// line internal/php7/php7.y:3892 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3888 +// line internal/php7/php7.y:3896 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6495,25 +6503,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3900 +// line internal/php7/php7.y:3908 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3907 +// line internal/php7/php7.y:3915 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3911 +// line internal/php7/php7.y:3919 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3918 +// line internal/php7/php7.y:3926 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6528,7 +6536,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3931 +// line internal/php7/php7.y:3939 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6542,7 +6550,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3943 +// line internal/php7/php7.y:3951 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6554,7 +6562,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3956 +// line internal/php7/php7.y:3964 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6566,7 +6574,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3966 +// line internal/php7/php7.y:3974 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6578,7 +6586,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3976 +// line internal/php7/php7.y:3984 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6590,7 +6598,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3986 +// line internal/php7/php7.y:3994 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6602,7 +6610,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3996 +// line internal/php7/php7.y:4004 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6614,7 +6622,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4006 +// line internal/php7/php7.y:4014 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6626,7 +6634,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4016 +// line internal/php7/php7.y:4024 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6638,7 +6646,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4026 +// line internal/php7/php7.y:4034 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6650,7 +6658,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 +// line internal/php7/php7.y:4044 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6662,7 +6670,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4046 +// line internal/php7/php7.y:4054 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6674,7 +6682,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4056 +// line internal/php7/php7.y:4064 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6695,7 +6703,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4075 +// line internal/php7/php7.y:4083 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6707,7 +6715,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4085 +// line internal/php7/php7.y:4093 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6720,7 +6728,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4096 +// line internal/php7/php7.y:4104 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6733,19 +6741,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4107 +// line internal/php7/php7.y:4115 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4111 +// line internal/php7/php7.y:4119 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4118 +// line internal/php7/php7.y:4126 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6756,7 +6764,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4127 +// line internal/php7/php7.y:4135 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6775,7 +6783,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4144 +// line internal/php7/php7.y:4152 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6794,43 +6802,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4164 +// line internal/php7/php7.y:4172 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4175 +// line internal/php7/php7.y:4183 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4179 +// line internal/php7/php7.y:4187 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4186 +// line internal/php7/php7.y:4194 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4193 +// line internal/php7/php7.y:4201 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4197 +// line internal/php7/php7.y:4205 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6847,19 +6855,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4212 +// line internal/php7/php7.y:4220 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4219 +// line internal/php7/php7.y:4227 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4223 +// line internal/php7/php7.y:4231 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6876,19 +6884,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4238 +// line internal/php7/php7.y:4246 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4245 +// line internal/php7/php7.y:4253 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4249 +// line internal/php7/php7.y:4257 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6902,7 +6910,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4261 +// line internal/php7/php7.y:4269 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6916,7 +6924,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4273 +// line internal/php7/php7.y:4281 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6930,7 +6938,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4285 +// line internal/php7/php7.y:4293 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6946,25 +6954,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4299 +// line internal/php7/php7.y:4307 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4306 +// line internal/php7/php7.y:4314 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4310 +// line internal/php7/php7.y:4318 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4314 +// line internal/php7/php7.y:4322 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6977,7 +6985,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4328 +// line internal/php7/php7.y:4336 { name := &ast.Identifier{ Node: ast.Node{ @@ -6996,7 +7004,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4345 +// line internal/php7/php7.y:4353 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} @@ -7010,7 +7018,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4357 +// line internal/php7/php7.y:4365 { yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7022,39 +7030,39 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4370 +// line internal/php7/php7.y:4378 { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4389 { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Name, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4395 +// line internal/php7/php7.y:4403 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4399 +// line internal/php7/php7.y:4407 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7068,7 +7076,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4411 +// line internal/php7/php7.y:4419 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7082,7 +7090,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4423 +// line internal/php7/php7.y:4431 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7095,33 +7103,33 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4434 +// line internal/php7/php7.y:4442 { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4453 { - yyVAL.node = &ast.ExprStaticPropertyFetch{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Class: yyDollar[1].node, + DoubleColonTkn: yyDollar[2].token, + Property: yyDollar[3].node, + } } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4459 +// line internal/php7/php7.y:4467 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7133,7 +7141,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4477 { yyVAL.node = yyDollar[2].node @@ -7143,13 +7151,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4477 +// line internal/php7/php7.y:4485 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4484 +// line internal/php7/php7.y:4492 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7161,7 +7169,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4494 +// line internal/php7/php7.y:4502 { yyVAL.node = yyDollar[2].node @@ -7171,13 +7179,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4502 +// line internal/php7/php7.y:4510 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4509 +// line internal/php7/php7.y:4517 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7190,19 +7198,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4523 +// line internal/php7/php7.y:4531 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4527 +// line internal/php7/php7.y:4535 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4534 +// line internal/php7/php7.y:4542 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7211,7 +7219,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4541 +// line internal/php7/php7.y:4549 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7219,7 +7227,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4550 +// line internal/php7/php7.y:4558 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7232,7 +7240,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4561 +// line internal/php7/php7.y:4569 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7243,7 +7251,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4570 +// line internal/php7/php7.y:4578 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7262,7 +7270,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4587 +// line internal/php7/php7.y:4595 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7279,7 +7287,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4602 +// line internal/php7/php7.y:4610 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7291,7 +7299,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4612 +// line internal/php7/php7.y:4620 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7313,7 +7321,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4632 +// line internal/php7/php7.y:4640 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7333,13 +7341,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4653 +// line internal/php7/php7.y:4661 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4657 +// line internal/php7/php7.y:4665 { yyVAL.list = append( yyDollar[1].list, @@ -7354,13 +7362,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4670 +// line internal/php7/php7.y:4678 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4674 +// line internal/php7/php7.y:4682 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7375,7 +7383,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4690 +// line internal/php7/php7.y:4698 { name := &ast.Identifier{ Node: ast.Node{ @@ -7394,7 +7402,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4707 +// line internal/php7/php7.y:4715 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7419,7 +7427,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4730 +// line internal/php7/php7.y:4738 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7449,7 +7457,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4758 +// line internal/php7/php7.y:4766 { variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} @@ -7464,7 +7472,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4771 +// line internal/php7/php7.y:4779 { name := &ast.Identifier{ Node: ast.Node{ @@ -7486,7 +7494,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4791 +// line internal/php7/php7.y:4799 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7513,7 +7521,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4816 +// line internal/php7/php7.y:4824 { yyVAL.node = yyDollar[2].node @@ -7523,7 +7531,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4827 +// line internal/php7/php7.y:4835 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7535,7 +7543,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4837 +// line internal/php7/php7.y:4845 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7558,7 +7566,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4858 +// line internal/php7/php7.y:4866 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7586,7 +7594,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4884 +// line internal/php7/php7.y:4892 { identifier := &ast.Identifier{ Node: ast.Node{ @@ -7605,7 +7613,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4904 +// line internal/php7/php7.y:4912 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7624,7 +7632,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4921 +// line internal/php7/php7.y:4929 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7638,7 +7646,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4933 +// line internal/php7/php7.y:4941 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7650,7 +7658,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4943 +// line internal/php7/php7.y:4951 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7662,7 +7670,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4953 +// line internal/php7/php7.y:4961 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7676,7 +7684,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4965 +// line internal/php7/php7.y:4973 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7688,7 +7696,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4975 +// line internal/php7/php7.y:4983 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7700,7 +7708,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4988 +// line internal/php7/php7.y:4996 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7708,7 +7716,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4994 +// line internal/php7/php7.y:5002 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7717,7 +7725,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5004 +// line internal/php7/php7.y:5012 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index bd1fe44..b61b9cc 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3424,27 +3424,28 @@ expr_without_variable: } | expr '?' expr ':' expr { - $$ = &ast.ExprTernary{ast.Node{}, $1, $3, $5} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $5) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.True, $4.SkippedTokens) + $$ = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $5), + }, + Condition: $1, + QuestionTkn: $2, + IfTrue: $3, + ColonTkn: $4, + IfFalse: $5, + } } | expr '?' ':' expr { - $$ = &ast.ExprTernary{ast.Node{}, $1, nil, $4} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Cond, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.True, $3.SkippedTokens) + $$ = &ast.ExprTernary{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Condition: $1, + QuestionTkn: $2, + ColonTkn: $3, + IfFalse: $4, + } } | expr T_COALESCE expr { @@ -3571,13 +3572,14 @@ expr_without_variable: } | '`' backticks_expr '`' { - $$ = &ast.ExprShellExec{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprShellExec{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBacktickTkn: $1, + Parts: $2, + CloseBacktickTkn: $3, + } } | T_PRINT expr { @@ -3795,25 +3797,31 @@ function_call: } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { - $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Class: $1, + DoubleColonTkn: $2, + Call: $3, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { - $$ = &ast.ExprStaticCall{ast.Node{}, $1, $3, $4.(*ast.ArgumentList)} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticCall{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Class: $1, + DoubleColonTkn: $2, + Call: $3, + OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + } } | callable_expr argument_list { @@ -4368,25 +4376,25 @@ simple_variable: static_member: class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { - $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + Property: $3, + } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { - $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Name, $2.SkippedTokens) + $$ = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + Property: $3, + } } ; @@ -4432,25 +4440,25 @@ new_variable: } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { - $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + Property: $3, + } } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { - $$ = &ast.ExprStaticPropertyFetch{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprStaticPropertyFetch{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Class: $1, + DoubleColonTkn: $2, + Property: $3, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index c6d4c8d..d65527a 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1344,7 +1344,9 @@ func (n *ExprRequireOnce) Accept(v NodeVisitor) { // ExprShellExec node type ExprShellExec struct { Node - Parts []Vertex + OpenBacktickTkn *token.Token + Parts []Vertex + CloseBacktickTkn *token.Token } func (n *ExprShellExec) Accept(v NodeVisitor) { @@ -1354,9 +1356,12 @@ func (n *ExprShellExec) Accept(v NodeVisitor) { // ExprStaticCall node type ExprStaticCall struct { Node - Class Vertex - Call Vertex - ArgumentList *ArgumentList + Class Vertex + DoubleColonTkn *token.Token + Call Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + CloseParenthesisTkn *token.Token } func (n *ExprStaticCall) Accept(v NodeVisitor) { @@ -1366,8 +1371,9 @@ func (n *ExprStaticCall) Accept(v NodeVisitor) { // ExprStaticPropertyFetch node type ExprStaticPropertyFetch struct { Node - Class Vertex - Property Vertex + Class Vertex + DoubleColonTkn *token.Token + Property Vertex } func (n *ExprStaticPropertyFetch) Accept(v NodeVisitor) { @@ -1377,9 +1383,11 @@ func (n *ExprStaticPropertyFetch) Accept(v NodeVisitor) { // ExprTernary node type ExprTernary struct { Node - Condition Vertex - IfTrue Vertex - IfFalse Vertex + Condition Vertex + QuestionTkn *token.Token + IfTrue Vertex + ColonTkn *token.Token + IfFalse Vertex } func (n *ExprTernary) Accept(v NodeVisitor) { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index ad492b0..bc119f8 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1566,10 +1566,12 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Call) t.visitor.Leave("Call", true) } - if nn.ArgumentList != nil { - t.visitor.Enter("ArgumentList", true) - t.Traverse(nn.ArgumentList) - t.visitor.Leave("ArgumentList", true) + if nn.Arguments != nil { + t.visitor.Enter("Arguments", false) + for _, c := range nn.Arguments { + t.Traverse(c) + } + t.visitor.Leave("Arguments", false) } case *ast.ExprStaticPropertyFetch: if nn == nil { diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index a840cea..b046302 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1239,7 +1239,7 @@ func (p *PrettyPrinter) printExprStaticCall(n ast.Vertex) { io.WriteString(p.w, "::") p.Print(nn.Call) io.WriteString(p.w, "(") - p.joinPrint(", ", nn.ArgumentList.Arguments) + p.joinPrint(", ", nn.Arguments) io.WriteString(p.w, ")") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 58ac6eb..fc63109 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -1842,9 +1842,9 @@ func (p *Printer) printExprStaticCall(n ast.Vertex) { p.write([]byte("::")) p.Print(nn.Call) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") - p.joinPrint(",", nn.ArgumentList.Arguments) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") + p.printToken(nn.OpenParenthesisTkn, "(") + p.joinPrint(",", nn.Arguments) + p.printToken(nn.CloseParenthesisTkn, ")") p.printFreeFloating(nn, token.End) } From 01d695c41641bd6b59bee4d6a0d06f4a94efa0be Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 00:13:28 +0200 Subject: [PATCH 091/140] [refactoring] update ast structure of "ArrayDimFetch", "UnaryMinus", "ExprUnaryPlus" and "Variable" nodes --- internal/php5/php5.go | 1630 ++++++++++++++++++++--------------------- internal/php5/php5.y | 580 +++++++-------- internal/php7/php7.go | 1358 +++++++++++++++++----------------- internal/php7/php7.y | 368 +++++----- pkg/ast/node.go | 19 +- 5 files changed, 1964 insertions(+), 1991 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index e289a39..e6a9141 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -17,11 +17,10 @@ import ( // line internal/php5/php5.y:14 type yySymType struct { - yys int - node ast.Vertex - token *token.Token - list []ast.Vertex - simpleIndirectReference simpleIndirectReference + yys int + node ast.Vertex + token *token.Token + list []ast.Vertex ClosureUse *ast.ExprClosureUse } @@ -343,12 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6619 - -type simpleIndirectReference struct { - all []*ast.ExprVariable - last *ast.ExprVariable -} +// line internal/php5/php5.y:6604 // line yacctab:1 var yyExca = [...]int{ @@ -2322,7 +2316,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:270 +// line internal/php5/php5.y:269 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) @@ -2331,7 +2325,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:280 +// line internal/php5/php5.y:279 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2344,13 +2338,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:291 +// line internal/php5/php5.y:290 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:298 +// line internal/php5/php5.y:297 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2364,7 +2358,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:310 +// line internal/php5/php5.y:309 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2377,32 +2371,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:324 +// line internal/php5/php5.y:323 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:329 +// line internal/php5/php5.y:328 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:333 +// line internal/php5/php5.y:332 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:337 +// line internal/php5/php5.y:336 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:341 +// line internal/php5/php5.y:340 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2416,7 +2410,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:353 +// line internal/php5/php5.y:352 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2434,7 +2428,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:369 +// line internal/php5/php5.y:368 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2454,7 +2448,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:387 +// line internal/php5/php5.y:386 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2468,7 +2462,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:399 +// line internal/php5/php5.y:398 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2481,7 +2475,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:410 +// line internal/php5/php5.y:409 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2501,7 +2495,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:428 +// line internal/php5/php5.y:427 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2521,7 +2515,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:446 +// line internal/php5/php5.y:445 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2529,7 +2523,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:455 +// line internal/php5/php5.y:454 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2537,13 +2531,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:461 +// line internal/php5/php5.y:460 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:468 +// line internal/php5/php5.y:467 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2559,7 +2553,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:482 +// line internal/php5/php5.y:481 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2583,7 +2577,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:504 +// line internal/php5/php5.y:503 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2600,7 +2594,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:519 +// line internal/php5/php5.y:518 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2625,7 +2619,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:545 +// line internal/php5/php5.y:544 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2633,13 +2627,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:551 +// line internal/php5/php5.y:550 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:558 +// line internal/php5/php5.y:557 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2655,7 +2649,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:572 +// line internal/php5/php5.y:571 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2679,7 +2673,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:594 +// line internal/php5/php5.y:593 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2696,7 +2690,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:609 +// line internal/php5/php5.y:608 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2721,7 +2715,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:635 +// line internal/php5/php5.y:634 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2729,13 +2723,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:641 +// line internal/php5/php5.y:640 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:648 +// line internal/php5/php5.y:647 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2751,7 +2745,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:662 +// line internal/php5/php5.y:661 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2775,7 +2769,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:684 +// line internal/php5/php5.y:683 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2792,7 +2786,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:699 +// line internal/php5/php5.y:698 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2817,7 +2811,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:725 +// line internal/php5/php5.y:724 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2843,7 +2837,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:749 +// line internal/php5/php5.y:748 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2872,7 +2866,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:779 +// line internal/php5/php5.y:778 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2885,38 +2879,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:790 +// line internal/php5/php5.y:789 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:798 +// line internal/php5/php5.y:797 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:803 +// line internal/php5/php5.y:802 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:807 +// line internal/php5/php5.y:806 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:811 +// line internal/php5/php5.y:810 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:815 +// line internal/php5/php5.y:814 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2930,13 +2924,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:831 +// line internal/php5/php5.y:830 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:835 +// line internal/php5/php5.y:834 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2954,7 +2948,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:854 +// line internal/php5/php5.y:853 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2967,7 +2961,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:865 +// line internal/php5/php5.y:864 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2991,7 +2985,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:887 +// line internal/php5/php5.y:886 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3017,7 +3011,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:911 +// line internal/php5/php5.y:910 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3029,7 +3023,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:921 +// line internal/php5/php5.y:920 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3046,7 +3040,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:936 +// line internal/php5/php5.y:935 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3062,7 +3056,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:950 +// line internal/php5/php5.y:949 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3074,7 +3068,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:960 +// line internal/php5/php5.y:959 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3086,7 +3080,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:970 +// line internal/php5/php5.y:969 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3099,7 +3093,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:981 +// line internal/php5/php5.y:980 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3111,7 +3105,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:991 +// line internal/php5/php5.y:990 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3124,7 +3118,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1002 +// line internal/php5/php5.y:1001 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3136,7 +3130,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1012 +// line internal/php5/php5.y:1011 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3149,7 +3143,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1023 +// line internal/php5/php5.y:1022 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3162,7 +3156,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1034 +// line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3174,7 +3168,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1044 +// line internal/php5/php5.y:1043 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3185,7 +3179,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1053 +// line internal/php5/php5.y:1052 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3196,7 +3190,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1062 +// line internal/php5/php5.y:1061 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3206,7 +3200,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1070 +// line internal/php5/php5.y:1069 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3218,7 +3212,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1080 +// line internal/php5/php5.y:1079 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3230,7 +3224,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1090 +// line internal/php5/php5.y:1089 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3242,7 +3236,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1100 +// line internal/php5/php5.y:1099 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3262,7 +3256,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1118 +// line internal/php5/php5.y:1117 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3282,7 +3276,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1136 +// line internal/php5/php5.y:1135 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3295,7 +3289,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1147 +// line internal/php5/php5.y:1146 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3306,7 +3300,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1156 +// line internal/php5/php5.y:1155 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3325,7 +3319,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1173 +// line internal/php5/php5.y:1172 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3338,7 +3332,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1184 +// line internal/php5/php5.y:1183 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3357,52 +3351,49 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1204 +// line internal/php5/php5.y:1203 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1208 +// line internal/php5/php5.y:1207 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} catch := &ast.StmtCatch{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), }, - CatchTkn: yyDollar[1].token, - OpenParenthesisTkn: yyDollar[2].token, - Types: []ast.Vertex{yyDollar[3].node}, - Var: variable, + CatchTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Types: []ast.Vertex{yyDollar[3].node}, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + }, CloseParenthesisTkn: yyDollar[5].token, OpenCurlyBracketTkn: yyDollar[6].token, Stmts: yyDollar[7].list, CloseCurlyBracketTkn: yyDollar[8].token, } yyVAL.list = append([]ast.Vertex{catch}, yyDollar[9].list...) - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1242 +// line internal/php5/php5.y:1238 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1246 +// line internal/php5/php5.y:1242 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3416,63 +3407,60 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1261 +// line internal/php5/php5.y:1257 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1265 +// line internal/php5/php5.y:1261 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1272 +// line internal/php5/php5.y:1268 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1276 +// line internal/php5/php5.y:1272 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1283 +// line internal/php5/php5.y:1279 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), }, - CatchTkn: yyDollar[1].token, - OpenParenthesisTkn: yyDollar[2].token, - Types: []ast.Vertex{yyDollar[3].node}, - Var: variable, + CatchTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].token, + Types: []ast.Vertex{yyDollar[3].node}, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + }, CloseParenthesisTkn: yyDollar[5].token, OpenCurlyBracketTkn: yyDollar[6].token, Stmts: yyDollar[7].list, CloseCurlyBracketTkn: yyDollar[8].token, } - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1316 +// line internal/php5/php5.y:1309 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3480,7 +3468,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1322 +// line internal/php5/php5.y:1315 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3489,49 +3477,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1332 +// line internal/php5/php5.y:1325 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1339 +// line internal/php5/php5.y:1332 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1346 +// line internal/php5/php5.y:1339 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1353 +// line internal/php5/php5.y:1346 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1357 +// line internal/php5/php5.y:1350 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1364 +// line internal/php5/php5.y:1357 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1368 +// line internal/php5/php5.y:1361 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1375 +// line internal/php5/php5.y:1368 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3556,7 +3544,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1401 +// line internal/php5/php5.y:1394 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3593,7 +3581,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1436 +// line internal/php5/php5.y:1429 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3615,7 +3603,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1460 +// line internal/php5/php5.y:1453 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3626,7 +3614,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1469 +// line internal/php5/php5.y:1462 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3646,7 +3634,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1487 +// line internal/php5/php5.y:1480 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3657,7 +3645,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1496 +// line internal/php5/php5.y:1489 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3677,13 +3665,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1517 +// line internal/php5/php5.y:1510 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1521 +// line internal/php5/php5.y:1514 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3695,19 +3683,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1534 +// line internal/php5/php5.y:1527 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1541 +// line internal/php5/php5.y:1534 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1545 +// line internal/php5/php5.y:1538 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3720,13 +3708,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1559 +// line internal/php5/php5.y:1552 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1563 +// line internal/php5/php5.y:1556 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3739,7 +3727,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1577 +// line internal/php5/php5.y:1570 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3747,7 +3735,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1583 +// line internal/php5/php5.y:1576 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3756,13 +3744,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1593 +// line internal/php5/php5.y:1586 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1597 +// line internal/php5/php5.y:1590 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3771,13 +3759,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1607 +// line internal/php5/php5.y:1600 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1611 +// line internal/php5/php5.y:1604 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3789,7 +3777,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1621 +// line internal/php5/php5.y:1614 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3811,7 +3799,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1644 +// line internal/php5/php5.y:1637 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3822,7 +3810,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1653 +// line internal/php5/php5.y:1646 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3842,7 +3830,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1674 +// line internal/php5/php5.y:1667 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3853,7 +3841,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1683 +// line internal/php5/php5.y:1676 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3873,7 +3861,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1705 +// line internal/php5/php5.y:1698 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3884,7 +3872,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1714 +// line internal/php5/php5.y:1707 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3904,7 +3892,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1736 +// line internal/php5/php5.y:1729 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3929,7 +3917,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1759 +// line internal/php5/php5.y:1752 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3956,7 +3944,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1788 +// line internal/php5/php5.y:1781 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3969,7 +3957,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1799 +// line internal/php5/php5.y:1792 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3983,7 +3971,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1811 +// line internal/php5/php5.y:1804 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3998,7 +3986,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1824 +// line internal/php5/php5.y:1817 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4014,13 +4002,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1842 +// line internal/php5/php5.y:1835 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1846 +// line internal/php5/php5.y:1839 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4034,7 +4022,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1858 +// line internal/php5/php5.y:1851 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4047,19 +4035,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1873 +// line internal/php5/php5.y:1866 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1877 +// line internal/php5/php5.y:1870 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1885 +// line internal/php5/php5.y:1878 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4070,7 +4058,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1894 +// line internal/php5/php5.y:1887 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4090,13 +4078,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1917 +// line internal/php5/php5.y:1910 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1921 +// line internal/php5/php5.y:1914 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4111,13 +4099,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1938 +// line internal/php5/php5.y:1931 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1942 +// line internal/php5/php5.y:1935 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4139,13 +4127,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1966 +// line internal/php5/php5.y:1959 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1970 +// line internal/php5/php5.y:1963 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4157,13 +4145,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1984 +// line internal/php5/php5.y:1977 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1988 +// line internal/php5/php5.y:1981 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4182,25 +4170,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2009 +// line internal/php5/php5.y:2002 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2013 +// line internal/php5/php5.y:2006 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2020 +// line internal/php5/php5.y:2013 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2024 +// line internal/php5/php5.y:2017 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4209,21 +4197,22 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2034 +// line internal/php5/php5.y:2027 { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) - if yyDollar[3].token != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -4263,22 +4252,22 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2086 +// line internal/php5/php5.y:2080 { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.SkippedTokens) - if yyDollar[3].token != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -4320,13 +4309,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2145 +// line internal/php5/php5.y:2139 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2149 +// line internal/php5/php5.y:2143 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4338,7 +4327,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2159 +// line internal/php5/php5.y:2153 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4350,13 +4339,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2169 +// line internal/php5/php5.y:2163 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2177 +// line internal/php5/php5.y:2171 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4368,7 +4357,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2187 +// line internal/php5/php5.y:2181 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4379,7 +4368,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2196 +// line internal/php5/php5.y:2190 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4399,7 +4388,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2218 +// line internal/php5/php5.y:2212 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4407,7 +4396,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2224 +// line internal/php5/php5.y:2218 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4416,7 +4405,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2234 +// line internal/php5/php5.y:2228 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4427,7 +4416,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2243 +// line internal/php5/php5.y:2237 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4438,7 +4427,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2252 +// line internal/php5/php5.y:2246 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4450,7 +4439,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2262 +// line internal/php5/php5.y:2256 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4462,7 +4451,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2275 +// line internal/php5/php5.y:2269 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4471,7 +4460,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2282 +// line internal/php5/php5.y:2276 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4479,186 +4468,173 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2292 +// line internal/php5/php5.y:2286 { - name := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2309 +// line internal/php5/php5.y:2301 { - yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + DollarTkn: yyDollar[1].token, + VarName: yyDollar[2].node, + } } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2319 +// line internal/php5/php5.y:2311 { - yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.SkippedTokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.SkippedTokens...)) + yyVAL.node = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + DollarTkn: yyDollar[1].token, + VarName: &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + }, + } } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2335 +// line internal/php5/php5.y:2332 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[3].token), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, + }, }) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) yyVAL.node = yyDollar[1].node - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2362 +// line internal/php5/php5.y:2355 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, - IdentifierTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[3].token), + }, + IdentifierTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + }, + }, EqualTkn: yyDollar[4].token, Expr: yyDollar[5].node, }) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) yyVAL.node = yyDollar[1].node - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[3].token.SkippedTokens) } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2391 +// line internal/php5/php5.y:2380 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, }, }, } - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2419 +// line internal/php5/php5.y:2404 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, }, }, } - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2453 +// line internal/php5/php5.y:2434 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2457 +// line internal/php5/php5.y:2438 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2465 +// line internal/php5/php5.y:2446 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4672,7 +4648,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2477 +// line internal/php5/php5.y:2458 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4680,13 +4656,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2483 +// line internal/php5/php5.y:2464 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2487 +// line internal/php5/php5.y:2468 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4715,7 +4691,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2517 +// line internal/php5/php5.y:2498 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4729,7 +4705,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2532 +// line internal/php5/php5.y:2513 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4737,7 +4713,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2538 +// line internal/php5/php5.y:2519 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4746,7 +4722,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2548 +// line internal/php5/php5.y:2529 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4757,7 +4733,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2557 +// line internal/php5/php5.y:2538 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4770,31 +4746,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2571 +// line internal/php5/php5.y:2552 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2575 +// line internal/php5/php5.y:2556 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2582 +// line internal/php5/php5.y:2563 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2586 +// line internal/php5/php5.y:2567 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2593 +// line internal/php5/php5.y:2574 { yyVAL.node = yyDollar[1].node @@ -4804,7 +4780,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2601 +// line internal/php5/php5.y:2582 { yyVAL.node = yyDollar[1].node @@ -4814,7 +4790,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2612 +// line internal/php5/php5.y:2593 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4828,7 +4804,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2627 +// line internal/php5/php5.y:2608 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4836,7 +4812,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2633 +// line internal/php5/php5.y:2614 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4845,7 +4821,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2643 +// line internal/php5/php5.y:2624 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4862,13 +4838,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2658 +// line internal/php5/php5.y:2639 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2665 +// line internal/php5/php5.y:2646 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4887,7 +4863,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2685 +// line internal/php5/php5.y:2666 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4907,7 +4883,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2703 +// line internal/php5/php5.y:2684 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4920,19 +4896,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2717 +// line internal/php5/php5.y:2698 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2721 +// line internal/php5/php5.y:2702 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2728 +// line internal/php5/php5.y:2709 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4943,7 +4919,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2737 +// line internal/php5/php5.y:2718 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4956,13 +4932,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2751 +// line internal/php5/php5.y:2732 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2755 +// line internal/php5/php5.y:2736 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4976,31 +4952,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2770 +// line internal/php5/php5.y:2751 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2774 +// line internal/php5/php5.y:2755 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2781 +// line internal/php5/php5.y:2762 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2785 +// line internal/php5/php5.y:2766 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2792 +// line internal/php5/php5.y:2773 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +4988,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2802 +// line internal/php5/php5.y:2783 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,7 +5000,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2812 +// line internal/php5/php5.y:2793 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5036,7 +5012,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2822 +// line internal/php5/php5.y:2803 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5048,7 +5024,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2832 +// line internal/php5/php5.y:2813 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5060,7 +5036,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2842 +// line internal/php5/php5.y:2823 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5072,7 +5048,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2855 +// line internal/php5/php5.y:2836 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5099,7 +5075,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2880 +// line internal/php5/php5.y:2861 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5128,7 +5104,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2907 +// line internal/php5/php5.y:2888 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5155,7 +5131,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2932 +// line internal/php5/php5.y:2913 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5183,7 +5159,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2961 +// line internal/php5/php5.y:2942 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5209,7 +5185,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2985 +// line internal/php5/php5.y:2966 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5238,7 +5214,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3015 +// line internal/php5/php5.y:2996 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5247,7 +5223,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3022 +// line internal/php5/php5.y:3003 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5255,19 +5231,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3032 +// line internal/php5/php5.y:3013 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3036 +// line internal/php5/php5.y:3017 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3043 +// line internal/php5/php5.y:3024 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5276,25 +5252,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3050 +// line internal/php5/php5.y:3031 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3057 +// line internal/php5/php5.y:3038 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3061 +// line internal/php5/php5.y:3042 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3068 +// line internal/php5/php5.y:3049 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5310,7 +5286,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3082 +// line internal/php5/php5.y:3063 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5326,37 +5302,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3099 +// line internal/php5/php5.y:3080 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3103 +// line internal/php5/php5.y:3084 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3107 +// line internal/php5/php5.y:3088 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3114 +// line internal/php5/php5.y:3095 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3118 +// line internal/php5/php5.y:3099 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3125 +// line internal/php5/php5.y:3106 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5380,7 +5356,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3150 +// line internal/php5/php5.y:3131 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -5413,7 +5389,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3181 +// line internal/php5/php5.y:3162 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5426,7 +5402,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3173 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5440,7 +5416,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3204 +// line internal/php5/php5.y:3185 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5482,7 +5458,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3244 +// line internal/php5/php5.y:3225 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5494,7 +5470,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3254 +// line internal/php5/php5.y:3235 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5506,7 +5482,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3264 +// line internal/php5/php5.y:3245 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5519,7 +5495,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3275 +// line internal/php5/php5.y:3256 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5532,7 +5508,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3286 +// line internal/php5/php5.y:3267 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5545,7 +5521,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3297 +// line internal/php5/php5.y:3278 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5558,7 +5534,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3308 +// line internal/php5/php5.y:3289 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5571,7 +5547,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3319 +// line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5584,7 +5560,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3330 +// line internal/php5/php5.y:3311 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5597,7 +5573,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3341 +// line internal/php5/php5.y:3322 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5610,7 +5586,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3352 +// line internal/php5/php5.y:3333 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5623,7 +5599,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3363 +// line internal/php5/php5.y:3344 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5636,7 +5612,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3374 +// line internal/php5/php5.y:3355 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5649,7 +5625,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3385 +// line internal/php5/php5.y:3366 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5661,7 +5637,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3395 +// line internal/php5/php5.y:3376 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5673,7 +5649,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3405 +// line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5685,7 +5661,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3415 +// line internal/php5/php5.y:3396 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5697,7 +5673,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3425 +// line internal/php5/php5.y:3406 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5710,7 +5686,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3436 +// line internal/php5/php5.y:3417 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5723,7 +5699,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3447 +// line internal/php5/php5.y:3428 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5736,7 +5712,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3458 +// line internal/php5/php5.y:3439 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5749,7 +5725,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3469 +// line internal/php5/php5.y:3450 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5762,7 +5738,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3480 +// line internal/php5/php5.y:3461 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5775,7 +5751,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3491 +// line internal/php5/php5.y:3472 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5788,7 +5764,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3502 +// line internal/php5/php5.y:3483 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5801,7 +5777,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3513 +// line internal/php5/php5.y:3494 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5813,7 +5789,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3523 +// line internal/php5/php5.y:3504 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5802,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3534 +// line internal/php5/php5.y:3515 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5815,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3545 +// line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5828,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3556 +// line internal/php5/php5.y:3537 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5865,7 +5841,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3567 +// line internal/php5/php5.y:3548 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5878,7 +5854,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3578 +// line internal/php5/php5.y:3559 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5891,7 +5867,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3589 +// line internal/php5/php5.y:3570 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5904,7 +5880,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3600 +// line internal/php5/php5.y:3581 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5917,31 +5893,31 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3611 +// line internal/php5/php5.y:3592 { - yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprUnaryPlus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + PlusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3621 +// line internal/php5/php5.y:3602 { - yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + MinusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3631 +// line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5953,7 +5929,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3641 +// line internal/php5/php5.y:3622 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5965,7 +5941,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3651 +// line internal/php5/php5.y:3632 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5978,7 +5954,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3662 +// line internal/php5/php5.y:3643 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5991,7 +5967,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3673 +// line internal/php5/php5.y:3654 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6004,7 +5980,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3684 +// line internal/php5/php5.y:3665 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6018,7 +5994,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3696 +// line internal/php5/php5.y:3677 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6031,7 +6007,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3707 +// line internal/php5/php5.y:3688 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6044,7 +6020,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3718 +// line internal/php5/php5.y:3699 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6057,7 +6033,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3729 +// line internal/php5/php5.y:3710 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6070,7 +6046,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3740 +// line internal/php5/php5.y:3721 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6083,19 +6059,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3751 +// line internal/php5/php5.y:3732 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3755 +// line internal/php5/php5.y:3736 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3759 +// line internal/php5/php5.y:3740 { yyVAL.node = yyDollar[2].node @@ -6129,7 +6105,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3791 +// line internal/php5/php5.y:3772 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6144,7 +6120,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3804 +// line internal/php5/php5.y:3785 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6158,13 +6134,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3816 +// line internal/php5/php5.y:3797 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3820 +// line internal/php5/php5.y:3801 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6177,7 +6153,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3831 +// line internal/php5/php5.y:3812 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6190,7 +6166,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3842 +// line internal/php5/php5.y:3823 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6203,7 +6179,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3853 +// line internal/php5/php5.y:3834 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6216,7 +6192,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3864 +// line internal/php5/php5.y:3845 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6229,7 +6205,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3875 +// line internal/php5/php5.y:3856 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6242,7 +6218,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3886 +// line internal/php5/php5.y:3867 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6255,7 +6231,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3897 +// line internal/php5/php5.y:3878 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6274,7 +6250,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3914 +// line internal/php5/php5.y:3895 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6286,25 +6262,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3924 +// line internal/php5/php5.y:3905 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3928 +// line internal/php5/php5.y:3909 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3932 +// line internal/php5/php5.y:3913 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3936 +// line internal/php5/php5.y:3917 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6317,7 +6293,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3947 +// line internal/php5/php5.y:3928 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6329,7 +6305,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3957 +// line internal/php5/php5.y:3938 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6341,7 +6317,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3967 +// line internal/php5/php5.y:3948 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6360,7 +6336,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3984 +// line internal/php5/php5.y:3965 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6380,7 +6356,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4005 +// line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6392,7 +6368,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4015 +// line internal/php5/php5.y:3996 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6404,7 +6380,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4025 +// line internal/php5/php5.y:4006 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6417,7 +6393,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4036 +// line internal/php5/php5.y:4017 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6430,7 +6406,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4050 +// line internal/php5/php5.y:4031 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6444,7 +6420,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4062 +// line internal/php5/php5.y:4043 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6458,7 +6434,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4074 +// line internal/php5/php5.y:4055 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6478,7 +6454,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4092 +// line internal/php5/php5.y:4073 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6492,7 +6468,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4107 +// line internal/php5/php5.y:4088 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6507,7 +6483,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4120 +// line internal/php5/php5.y:4101 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6521,19 +6497,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4135 +// line internal/php5/php5.y:4116 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4142 +// line internal/php5/php5.y:4123 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4146 +// line internal/php5/php5.y:4127 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6548,7 +6524,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4162 +// line internal/php5/php5.y:4143 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6570,7 +6546,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4182 +// line internal/php5/php5.y:4163 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6598,7 +6574,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4208 +// line internal/php5/php5.y:4189 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6619,7 +6595,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4227 +// line internal/php5/php5.y:4208 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6646,7 +6622,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4255 +// line internal/php5/php5.y:4236 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6665,7 +6641,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4272 +// line internal/php5/php5.y:4253 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6686,7 +6662,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4291 +// line internal/php5/php5.y:4272 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6706,7 +6682,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4309 +// line internal/php5/php5.y:4290 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6722,7 +6698,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4323 +// line internal/php5/php5.y:4304 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6738,7 +6714,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4337 +// line internal/php5/php5.y:4318 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6754,7 +6730,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4332 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6770,7 +6746,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4365 +// line internal/php5/php5.y:4346 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6784,7 +6760,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4380 +// line internal/php5/php5.y:4361 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6796,7 +6772,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4390 +// line internal/php5/php5.y:4371 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6807,7 +6783,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4399 +// line internal/php5/php5.y:4380 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6820,7 +6796,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4410 +// line internal/php5/php5.y:4391 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6832,7 +6808,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4423 +// line internal/php5/php5.y:4404 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6843,7 +6819,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4432 +// line internal/php5/php5.y:4413 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6856,7 +6832,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4443 +// line internal/php5/php5.y:4424 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6868,19 +6844,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4456 +// line internal/php5/php5.y:4437 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4460 +// line internal/php5/php5.y:4441 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4467 +// line internal/php5/php5.y:4448 { yyVAL.node = yyDollar[1].node @@ -6921,25 +6897,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4506 +// line internal/php5/php5.y:4487 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4514 +// line internal/php5/php5.y:4495 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4518 +// line internal/php5/php5.y:4499 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4526 +// line internal/php5/php5.y:4507 { yyVAL.list = yyDollar[2].list @@ -6948,13 +6924,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4536 +// line internal/php5/php5.y:4517 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4521 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6970,19 +6946,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4554 +// line internal/php5/php5.y:4535 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4561 +// line internal/php5/php5.y:4542 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4565 +// line internal/php5/php5.y:4546 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6996,25 +6972,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4577 +// line internal/php5/php5.y:4558 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4584 +// line internal/php5/php5.y:4565 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4588 +// line internal/php5/php5.y:4569 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4595 +// line internal/php5/php5.y:4576 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -7026,7 +7002,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4605 +// line internal/php5/php5.y:4586 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -7038,7 +7014,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4615 +// line internal/php5/php5.y:4596 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7050,7 +7026,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4625 +// line internal/php5/php5.y:4606 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7062,7 +7038,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4635 +// line internal/php5/php5.y:4616 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7074,7 +7050,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4645 +// line internal/php5/php5.y:4626 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7086,7 +7062,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4655 +// line internal/php5/php5.y:4636 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7098,7 +7074,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4665 +// line internal/php5/php5.y:4646 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7110,7 +7086,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4675 +// line internal/php5/php5.y:4656 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7122,7 +7098,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4685 +// line internal/php5/php5.y:4666 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7134,7 +7110,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4695 +// line internal/php5/php5.y:4676 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7155,7 +7131,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4714 +// line internal/php5/php5.y:4695 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7167,7 +7143,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4727 +// line internal/php5/php5.y:4708 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7186,25 +7162,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4747 +// line internal/php5/php5.y:4728 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4754 +// line internal/php5/php5.y:4735 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4758 +// line internal/php5/php5.y:4739 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4762 +// line internal/php5/php5.y:4743 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7220,7 +7196,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4776 +// line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7238,7 +7214,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4792 +// line internal/php5/php5.y:4773 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7255,7 +7231,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4788 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7270,7 +7246,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4820 +// line internal/php5/php5.y:4801 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7284,13 +7260,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4832 +// line internal/php5/php5.y:4813 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4836 +// line internal/php5/php5.y:4817 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7302,13 +7278,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4846 +// line internal/php5/php5.y:4827 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4853 +// line internal/php5/php5.y:4834 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7322,7 +7298,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4865 +// line internal/php5/php5.y:4846 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7335,7 +7311,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4876 +// line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7348,7 +7324,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4887 +// line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7361,7 +7337,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4898 +// line internal/php5/php5.y:4879 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7374,7 +7350,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4909 +// line internal/php5/php5.y:4890 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7387,7 +7363,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4920 +// line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7400,7 +7376,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4931 +// line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7412,7 +7388,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4941 +// line internal/php5/php5.y:4922 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7424,7 +7400,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4951 +// line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7437,7 +7413,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4962 +// line internal/php5/php5.y:4943 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7450,7 +7426,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4973 +// line internal/php5/php5.y:4954 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7463,7 +7439,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4984 +// line internal/php5/php5.y:4965 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7476,7 +7452,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4995 +// line internal/php5/php5.y:4976 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7489,7 +7465,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5006 +// line internal/php5/php5.y:4987 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7502,7 +7478,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5017 +// line internal/php5/php5.y:4998 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7515,7 +7491,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5028 +// line internal/php5/php5.y:5009 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7528,7 +7504,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5039 +// line internal/php5/php5.y:5020 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7541,7 +7517,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5050 +// line internal/php5/php5.y:5031 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7554,7 +7530,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5061 +// line internal/php5/php5.y:5042 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7567,7 +7543,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5072 +// line internal/php5/php5.y:5053 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7580,7 +7556,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5083 +// line internal/php5/php5.y:5064 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7593,7 +7569,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5094 +// line internal/php5/php5.y:5075 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7606,7 +7582,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5105 +// line internal/php5/php5.y:5086 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7620,7 +7596,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5117 +// line internal/php5/php5.y:5098 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7633,7 +7609,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5128 +// line internal/php5/php5.y:5109 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7646,7 +7622,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5139 +// line internal/php5/php5.y:5120 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7659,7 +7635,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5150 +// line internal/php5/php5.y:5131 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7672,7 +7648,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5161 +// line internal/php5/php5.y:5142 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7686,7 +7662,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5173 +// line internal/php5/php5.y:5154 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7701,31 +7677,31 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5186 +// line internal/php5/php5.y:5167 { - yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprUnaryPlus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + PlusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5196 +// line internal/php5/php5.y:5177 { - yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + MinusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5206 +// line internal/php5/php5.y:5187 { yyVAL.node = yyDollar[2].node @@ -7735,13 +7711,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5198 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5221 +// line internal/php5/php5.y:5202 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7757,7 +7733,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5235 +// line internal/php5/php5.y:5216 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7775,7 +7751,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5251 +// line internal/php5/php5.y:5232 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7792,44 +7768,42 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5269 +// line internal/php5/php5.y:5250 { - name := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5286 +// line internal/php5/php5.y:5265 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5290 +// line internal/php5/php5.y:5269 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5294 +// line internal/php5/php5.y:5273 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5298 +// line internal/php5/php5.y:5277 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7842,7 +7816,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5309 +// line internal/php5/php5.y:5288 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7855,7 +7829,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5320 +// line internal/php5/php5.y:5299 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7867,13 +7841,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5333 +// line internal/php5/php5.y:5312 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5337 +// line internal/php5/php5.y:5316 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7884,19 +7858,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5349 +// line internal/php5/php5.y:5328 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5353 +// line internal/php5/php5.y:5332 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5360 +// line internal/php5/php5.y:5339 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7914,7 +7888,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5376 +// line internal/php5/php5.y:5355 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7930,7 +7904,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5390 +// line internal/php5/php5.y:5369 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7947,7 +7921,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5405 +// line internal/php5/php5.y:5384 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7962,19 +7936,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5421 +// line internal/php5/php5.y:5400 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5425 +// line internal/php5/php5.y:5404 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5432 +// line internal/php5/php5.y:5411 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7991,7 +7965,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5447 +// line internal/php5/php5.y:5426 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8008,25 +7982,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5466 +// line internal/php5/php5.y:5445 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5474 +// line internal/php5/php5.y:5453 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5481 +// line internal/php5/php5.y:5460 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5488 +// line internal/php5/php5.y:5467 { yyVAL.node = yyDollar[1].node @@ -8104,25 +8078,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5564 +// line internal/php5/php5.y:5543 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5571 +// line internal/php5/php5.y:5550 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5554 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5583 +// line internal/php5/php5.y:5562 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8153,7 +8127,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5614 +// line internal/php5/php5.y:5593 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8169,7 +8143,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5628 +// line internal/php5/php5.y:5607 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8185,7 +8159,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5645 +// line internal/php5/php5.y:5624 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8198,43 +8172,43 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5659 +// line internal/php5/php5.y:5638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5663 +// line internal/php5/php5.y:5642 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5667 +// line internal/php5/php5.y:5646 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5674 +// line internal/php5/php5.y:5653 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5678 +// line internal/php5/php5.y:5657 { - yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node - - for _, n := range yyDollar[1].simpleIndirectReference.all { - n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) + for i := len(yyDollar[1].list) - 1; i >= 0; i-- { + yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node + yyDollar[1].list[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) + yyDollar[2].node = yyDollar[1].list[i] } - yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] + yyVAL.node = yyDollar[1].list[0] } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5691 +// line internal/php5/php5.y:5670 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8247,7 +8221,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5702 +// line internal/php5/php5.y:5681 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8260,13 +8234,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5716 +// line internal/php5/php5.y:5695 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5723 +// line internal/php5/php5.y:5702 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8280,7 +8254,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5735 +// line internal/php5/php5.y:5714 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8294,49 +8268,49 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5750 +// line internal/php5/php5.y:5729 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5754 +// line internal/php5/php5.y:5733 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5758 +// line internal/php5/php5.y:5737 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5766 +// line internal/php5/php5.y:5745 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5770 +// line internal/php5/php5.y:5749 { - yyDollar[1].simpleIndirectReference.last.VarName = yyDollar[2].node - - for _, n := range yyDollar[1].simpleIndirectReference.all { - n.GetNode().Position = position.NewNodesPosition(n, yyDollar[2].node) + for i := len(yyDollar[1].list) - 1; i >= 0; i-- { + yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node + yyDollar[1].list[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) + yyDollar[2].node = yyDollar[1].list[i] } - yyVAL.node = yyDollar[1].simpleIndirectReference.all[0] + yyVAL.node = yyDollar[1].list[0] } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5780 +// line internal/php5/php5.y:5759 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5787 +// line internal/php5/php5.y:5766 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8350,7 +8324,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5799 +// line internal/php5/php5.y:5778 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8364,64 +8338,67 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5811 +// line internal/php5/php5.y:5790 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5819 +// line internal/php5/php5.y:5798 { - name := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5836 +// line internal/php5/php5.y:5813 { - yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.SkippedTokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.SkippedTokens...)) + yyVAL.node = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + DollarTkn: yyDollar[1].token, + VarName: &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + }, + } } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5851 +// line internal/php5/php5.y:5833 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5855 +// line internal/php5/php5.y:5837 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5863 +// line internal/php5/php5.y:5845 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5867 +// line internal/php5/php5.y:5849 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8434,7 +8411,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5881 +// line internal/php5/php5.y:5863 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8450,7 +8427,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5895 +// line internal/php5/php5.y:5877 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8466,7 +8443,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5909 +// line internal/php5/php5.y:5891 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8479,7 +8456,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5923 +// line internal/php5/php5.y:5905 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8491,7 +8468,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5933 +// line internal/php5/php5.y:5915 { yyVAL.node = yyDollar[2].node @@ -8504,37 +8481,31 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5947 +// line internal/php5/php5.y:5929 { - n := &ast.ExprVariable{ast.Node{}, nil} - yyVAL.simpleIndirectReference = simpleIndirectReference{[]*ast.ExprVariable{n}, n} - - // save position - n.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.list = []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + DollarTkn: yyDollar[1].token, + }, + } } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5958 +// line internal/php5/php5.y:5940 { - n := &ast.ExprVariable{ast.Node{}, nil} - - yyDollar[1].simpleIndirectReference.last.VarName = n - yyDollar[1].simpleIndirectReference.all = append(yyDollar[1].simpleIndirectReference.all, n) - yyDollar[1].simpleIndirectReference.last = n - yyVAL.simpleIndirectReference = yyDollar[1].simpleIndirectReference - - // save position - n.GetNode().Position = position.NewTokenPosition(yyDollar[2].token) - - // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, yyDollar[2].token.SkippedTokens) + yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + DollarTkn: yyDollar[2].token, + }) } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5976 +// line internal/php5/php5.y:5952 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8543,7 +8514,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5983 +// line internal/php5/php5.y:5959 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8551,7 +8522,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5993 +// line internal/php5/php5.y:5969 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8562,7 +8533,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6002 +// line internal/php5/php5.y:5978 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8589,19 +8560,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6027 +// line internal/php5/php5.y:6003 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6035 +// line internal/php5/php5.y:6011 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6039 +// line internal/php5/php5.y:6015 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8612,7 +8583,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6051 +// line internal/php5/php5.y:6027 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8630,7 +8601,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6067 +// line internal/php5/php5.y:6043 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8646,7 +8617,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6081 +// line internal/php5/php5.y:6057 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8663,7 +8634,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6096 +// line internal/php5/php5.y:6072 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8678,7 +8649,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6109 +// line internal/php5/php5.y:6085 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8702,7 +8673,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6131 +// line internal/php5/php5.y:6107 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8724,7 +8695,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6151 +// line internal/php5/php5.y:6127 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8747,7 +8718,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6172 +// line internal/php5/php5.y:6148 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8768,13 +8739,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6194 +// line internal/php5/php5.y:6170 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6198 +// line internal/php5/php5.y:6174 { yyVAL.list = append( yyDollar[1].list, @@ -8789,13 +8760,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6211 +// line internal/php5/php5.y:6187 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6215 +// line internal/php5/php5.y:6191 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8810,26 +8781,24 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6231 +// line internal/php5/php5.y:6207 { - name := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6248 +// line internal/php5/php5.y:6222 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8854,7 +8823,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6271 +// line internal/php5/php5.y:6245 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8884,51 +8853,32 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6299 +// line internal/php5/php5.y:6273 { - variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} - - yyVAL.node = variable - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[2].node), + }, + VarName: yyDollar[2].node, + }, + CloseBracketTkn: yyDollar[3].token, + } } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6312 +// line internal/php5/php5.y:6289 { - name := &ast.Identifier{ + yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, name} - - yyVAL.node = variable - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) - } - case 500: - yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6332 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - }, - OpenCurlyBracketTkn: yyDollar[1].token, - Var: &ast.ExprVariable{ + OpenBracketTkn: yyDollar[1].token, + Child: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[2].token), }, @@ -8940,25 +8890,57 @@ yydefault: Value: yyDollar[2].token.Value, }, }, - OpenBracketTkn: yyDollar[3].token, - Dim: yyDollar[4].node, - CloseBracketTkn: yyDollar[5].token, - CloseCurlyBracketTkn: yyDollar[6].token, + CloseBracketTkn: yyDollar[3].token, + } + } + case 500: + yyDollar = yyS[yypt-6 : yypt+1] +// line internal/php5/php5.y:6311 + { + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + }, + OpenBracketTkn: yyDollar[3].token, + Dim: yyDollar[4].node, + CloseBracketTkn: yyDollar[5].token, + }, + CloseBracketTkn: yyDollar[6].token, } } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6357 +// line internal/php5/php5.y:6341 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6368 +// line internal/php5/php5.y:6355 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8970,7 +8952,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6378 +// line internal/php5/php5.y:6365 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8999,26 +8981,24 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6405 +// line internal/php5/php5.y:6392 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6425 +// line internal/php5/php5.y:6410 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -9033,7 +9013,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6438 +// line internal/php5/php5.y:6423 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9047,7 +9027,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6450 +// line internal/php5/php5.y:6435 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9061,7 +9041,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6462 +// line internal/php5/php5.y:6447 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9073,7 +9053,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6472 +// line internal/php5/php5.y:6457 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9085,7 +9065,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6482 +// line internal/php5/php5.y:6467 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9099,7 +9079,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6494 +// line internal/php5/php5.y:6479 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9111,7 +9091,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6504 +// line internal/php5/php5.y:6489 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9123,7 +9103,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6517 +// line internal/php5/php5.y:6502 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9131,7 +9111,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6523 +// line internal/php5/php5.y:6508 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9140,19 +9120,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6533 +// line internal/php5/php5.y:6518 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6537 +// line internal/php5/php5.y:6522 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6544 +// line internal/php5/php5.y:6529 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9171,7 +9151,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6561 +// line internal/php5/php5.y:6546 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9190,7 +9170,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6581 +// line internal/php5/php5.y:6566 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9209,7 +9189,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6601 +// line internal/php5/php5.y:6586 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 35a1e60..3990144 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -15,7 +15,6 @@ import ( node ast.Vertex token *token.Token list []ast.Vertex - simpleIndirectReference simpleIndirectReference ClosureUse *ast.ExprClosureUse } @@ -260,7 +259,7 @@ import ( %type method_or_not array_method_dereference object_property object_dim_list dynamic_class_name_variable_property %type dynamic_class_name_variable_properties variable_properties -%type simple_indirect_reference +%type simple_indirect_reference %type is_reference is_variadic %% @@ -1206,34 +1205,31 @@ catch_statement: } | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} catch := &ast.StmtCatch{ Node: ast.Node{ Position: position.NewTokensPosition($1, $8), }, - CatchTkn: $1, - OpenParenthesisTkn: $2, - Types: []ast.Vertex{$3}, - Var: variable, + CatchTkn: $1, + OpenParenthesisTkn: $2, + Types: []ast.Vertex{$3}, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + }, CloseParenthesisTkn: $5, OpenCurlyBracketTkn: $6, Stmts: $7, CloseCurlyBracketTkn: $8, } $$ = append([]ast.Vertex{catch}, $9...) - - // save position - variable.GetNode().Position = position.NewTokenPosition($4) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) } ; @@ -1281,33 +1277,30 @@ non_empty_additional_catches: additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtCatch{ Node: ast.Node{ Position: position.NewTokensPosition($1, $8), }, - CatchTkn: $1, - OpenParenthesisTkn: $2, - Types: []ast.Vertex{$3}, - Var: variable, + CatchTkn: $1, + OpenParenthesisTkn: $2, + Types: []ast.Vertex{$3}, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + }, CloseParenthesisTkn: $5, OpenCurlyBracketTkn: $6, Stmts: $7, CloseCurlyBracketTkn: $8, } - - // save position - variable.GetNode().Position = position.NewTokenPosition($4) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) } ; @@ -2032,19 +2025,20 @@ non_empty_parameter_list: parameter: optional_class_type is_reference is_variadic T_VARIABLE { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($4), }, - IdentifierTkn: $4, - Value: $4.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) - if $3 != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -2084,20 +2078,20 @@ parameter: } | optional_class_type is_reference is_variadic T_VARIABLE '=' expr { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($4), }, - IdentifierTkn: $4, - Value: $4.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) - if $3 != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -2290,42 +2284,45 @@ global_var_list: global_var: T_VARIABLE { - name := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '$' r_variable { - $$ = &ast.ExprVariable{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + DollarTkn: $1, + VarName: $2, + } } | '$' '{' expr '}' { - $$ = &ast.ExprVariable{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.SkippedTokens, $3.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.SkippedTokens...)) + $$ = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + DollarTkn: $1, + VarName: &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + }, + } } ; @@ -2333,117 +2330,101 @@ global_var: static_var_list: static_var_list ',' T_VARIABLE { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, - IdentifierTkn: $3, - Value: $3.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenPosition($3), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, + }, }) $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) $$ = $1 - - // save position - variable.GetNode().Position = position.NewTokenPosition($3) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } | static_var_list ',' T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, - IdentifierTkn: $3, - Value: $3.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenNodePosition($3, $5), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($3), + }, + IdentifierTkn: $3, + Value: $3.Value, + }, + }, EqualTkn: $4, Expr: $5, }) $1.(*ast.StmtStatic).SeparatorTkns = append($1.(*ast.StmtStatic).SeparatorTkns, $2) $$ = $1 - - // save position - variable.GetNode().Position = position.NewTokenPosition($3) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $3.SkippedTokens) } | T_VARIABLE { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, - IdentifierTkn: $1, - Value: $1.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, }, }, } - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' static_scalar { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, - IdentifierTkn: $1, - Value: $1.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenNodePosition($1, $3), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, EqualTkn: $2, Expr: $3, }, }, } - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } ; @@ -3609,23 +3590,23 @@ expr_without_variable: } | '+' expr %prec T_INC { - $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprUnaryPlus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + PlusTkn: $1, + Expr: $2, + } } | '-' expr %prec T_INC { - $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + MinusTkn: $1, + Expr: $2, + } } | '!' expr { @@ -5184,23 +5165,23 @@ static_operation: } | '+' static_scalar_value { - $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprUnaryPlus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + PlusTkn: $1, + Expr: $2, + } } | '-' static_scalar_value { - $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + MinusTkn: $1, + Expr: $2, + } } | '(' static_scalar_value ')' { @@ -5267,20 +5248,18 @@ general_constant: scalar: T_STRING_VARNAME { - name := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | general_constant { @@ -5676,13 +5655,13 @@ variable_without_objects: } | simple_indirect_reference reference_variable { - $1.last.VarName = $2 - - for _, n := range($1.all) { - n.GetNode().Position = position.NewNodesPosition(n, $2) + for i := len($1)-1; i>=0; i-- { + $1[i].(*ast.ExprVariable).VarName = $2 + $1[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition($1[i], $2) + $2 = $1[i] } - $$ = $1.all[0] + $$ = $1[0] } ; @@ -5768,13 +5747,13 @@ base_variable: } | simple_indirect_reference reference_variable { - $1.last.VarName = $2 - - for _, n := range($1.all) { - n.GetNode().Position = position.NewNodesPosition(n, $2) + for i := len($1)-1; i>=0; i-- { + $1[i].(*ast.ExprVariable).VarName = $2 + $1[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition($1[i], $2) + $2 = $1[i] } - $$ = $1.all[0] + $$ = $1[0] } | static_member { @@ -5817,32 +5796,35 @@ reference_variable: compound_variable: T_VARIABLE { - name := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '$' '{' expr '}' { - $$ = &ast.ExprVariable{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.SkippedTokens, $3.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.SkippedTokens...)) + $$ = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + DollarTkn: $1, + VarName: &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + }, + } } ; @@ -5945,29 +5927,23 @@ variable_name: simple_indirect_reference: '$' { - n := &ast.ExprVariable{ast.Node{}, nil} - $$ = simpleIndirectReference{[]*ast.ExprVariable{n}, n} - - // save position - n.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $1.SkippedTokens) + $$ = []ast.Vertex{ + &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + DollarTkn: $1, + }, + } } | simple_indirect_reference '$' { - n := &ast.ExprVariable{ast.Node{}, nil} - - $1.last.VarName = n - $1.all = append($1.all, n) - $1.last = n - $$ = $1 - - // save position - n.GetNode().Position = position.NewTokenPosition($2) - - // save comments - yylex.(*Parser).setFreeFloating(n, token.Start, $2.SkippedTokens) + $$ = append($1, &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + DollarTkn: $2, + }) } ; @@ -6229,20 +6205,18 @@ encaps_list: encaps_var: T_VARIABLE { - name := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '[' encaps_var_offset ']' { @@ -6297,45 +6271,28 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - variable := &ast.ExprVariable{ast.Node{}, $2} - - $$ = variable - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewNodePosition($2), + }, + VarName: $2, + }, + CloseBracketTkn: $3, + } } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - name := &ast.Identifier{ + $$ = &ast.ParserBrackets{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $3), }, - IdentifierTkn: $2, - Value: $2.Value, - } - variable := &ast.ExprVariable{ast.Node{}, name} - - $$ = variable - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) - } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - { - $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, - OpenCurlyBracketTkn: $1, - Var: &ast.ExprVariable{ + OpenBracketTkn: $1, + Child: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($2), }, @@ -6347,19 +6304,49 @@ encaps_var: Value: $2.Value, }, }, - OpenBracketTkn: $3, - Dim: $4, - CloseBracketTkn: $5, - CloseCurlyBracketTkn: $6, + CloseBracketTkn: $3, + } + } + | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' + { + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $6), + }, + OpenBracketTkn: $1, + Child: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $5), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + }, + OpenBracketTkn: $3, + Dim: $4, + CloseBracketTkn: $5, + }, + CloseBracketTkn: $6, } } | T_CURLY_OPEN variable '}' { - $$ = $2; - - // save comments - yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } } ; @@ -6403,20 +6390,18 @@ encaps_var_offset: } | T_VARIABLE { - identifier := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, identifier} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; @@ -6617,8 +6602,3 @@ class_name_scalar: ; %% - -type simpleIndirectReference struct { - all []*ast.ExprVariable - last *ast.ExprVariable -} diff --git a/internal/php7/php7.go b/internal/php7/php7.go index db2863b..351c5c1 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5019 +// line internal/php7/php7.y:5025 // line yacctab:1 var yyExca = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:290 + // line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2121,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:320 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:331 + // line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:342 + // line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:349 + // line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:361 + // line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:375 + // line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:384 + // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:395 + // line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:408 + // line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:413 + // line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:445 + // line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:461 + // line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:479 + // line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:491 + // line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:501 + // line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:512 + // line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:523 + // line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:535 + // line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:550 + // line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:560 + // line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:573 + // line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:595 + // line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:619 + // line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:639 + // line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:663 + // line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:674 + // line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:680 + // line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:687 + // line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:693 + // line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:700 + // line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:706 + // line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:713 + // line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:728 + // line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:742 + // line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:767 + // line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:771 + // line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:782 + // line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:789 + // line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:798 + // line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:816 + // line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:821 + // line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:855 + // line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:866 + // line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:884 + // line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:899 + // line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:913 + // line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:923 + // line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:934 + // line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:945 + // line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:956 + // line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:964 + // line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:980 + // line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:990 + // line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1000 + // line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1011 + // line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1023 + // line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1037 + // line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,27 +3474,29 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1124 + // line internal/php7/php7.y:1124 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[5].token), - }, - IdentifierTkn: yyDollar[5].token, - Value: yyDollar[5].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token catch.OpenParenthesisTkn = yyDollar[3].token - catch.Var = variable + catch.Var = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[5].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[5].token), + }, + IdentifierTkn: yyDollar[5].token, + Value: yyDollar[5].token.Value, + }, + } catch.CloseParenthesisTkn = yyDollar[6].token catch.OpenCurlyBracketTkn = yyDollar[7].token catch.Stmts = yyDollar[8].list @@ -3502,16 +3504,10 @@ yydefault: catch.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) yyVAL.list = append(yyDollar[1].list, catch) - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[5].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[5].token.SkippedTokens) } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1155 + // line internal/php7/php7.y:1151 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3519,7 +3515,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1157 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3528,13 +3524,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1167 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1175 + // line internal/php7/php7.y:1171 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3548,7 +3544,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1190 + // line internal/php7/php7.y:1186 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3556,7 +3552,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1196 + // line internal/php7/php7.y:1192 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3565,13 +3561,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1206 + // line internal/php7/php7.y:1202 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1213 + // line internal/php7/php7.y:1209 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3598,31 +3594,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1241 + // line internal/php7/php7.y:1237 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1245 + // line internal/php7/php7.y:1241 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1248 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1252 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1263 + // line internal/php7/php7.y:1259 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3646,7 +3642,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1281 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3669,19 +3665,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1320 + // line internal/php7/php7.y:1316 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3693,7 +3689,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1330 + // line internal/php7/php7.y:1326 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3705,7 +3701,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1339 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3726,7 +3722,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1365 + // line internal/php7/php7.y:1361 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3748,13 +3744,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1388 + // line internal/php7/php7.y:1384 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1388 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3766,13 +3762,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1401 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1409 + // line internal/php7/php7.y:1405 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3785,13 +3781,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1419 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1427 + // line internal/php7/php7.y:1423 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3804,13 +3800,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1437 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1445 + // line internal/php7/php7.y:1441 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3822,7 +3818,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1455 + // line internal/php7/php7.y:1451 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3837,7 +3833,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1464 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3851,7 +3847,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1479 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3862,7 +3858,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1488 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3882,7 +3878,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1513 + // line internal/php7/php7.y:1509 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3893,7 +3889,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1518 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3913,7 +3909,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1543 + // line internal/php7/php7.y:1539 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3924,7 +3920,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1552 + // line internal/php7/php7.y:1548 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3944,7 +3940,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1573 + // line internal/php7/php7.y:1569 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3957,7 +3953,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1584 + // line internal/php7/php7.y:1580 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,7 +3967,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1596 + // line internal/php7/php7.y:1592 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,7 +3982,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1609 + // line internal/php7/php7.y:1605 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4002,13 +3998,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1622 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1626 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4022,7 +4018,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1642 + // line internal/php7/php7.y:1638 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4035,19 +4031,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1652 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1667 + // line internal/php7/php7.y:1663 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4054,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1676 + // line internal/php7/php7.y:1672 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4078,7 +4074,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1697 + // line internal/php7/php7.y:1693 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4093,7 +4089,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1710 + // line internal/php7/php7.y:1706 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4112,13 +4108,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1730 + // line internal/php7/php7.y:1726 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1734 + // line internal/php7/php7.y:1730 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4134,7 +4130,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1751 + // line internal/php7/php7.y:1747 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4156,7 +4152,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1771 + // line internal/php7/php7.y:1767 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4180,7 +4176,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1792 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4190,7 +4186,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1800 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4214,25 +4210,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1829 + // line internal/php7/php7.y:1825 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1833 + // line internal/php7/php7.y:1829 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1836 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1840 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4241,21 +4237,22 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1854 + // line internal/php7/php7.y:1850 { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) - if yyDollar[3].token != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -4295,22 +4292,22 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1906 + // line internal/php7/php7.y:1903 { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[4].token), }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition(yyDollar[4].token) - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.End, yyDollar[5].token.SkippedTokens) - if yyDollar[3].token != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -4352,25 +4349,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1964 + // line internal/php7/php7.y:1961 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1965 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1975 + // line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1976 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4382,7 +4379,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1992 + // line internal/php7/php7.y:1989 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4394,7 +4391,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2002 + // line internal/php7/php7.y:1999 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4406,19 +4403,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2012 + // line internal/php7/php7.y:2009 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2019 + // line internal/php7/php7.y:2016 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2023 + // line internal/php7/php7.y:2020 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4427,7 +4424,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2033 + // line internal/php7/php7.y:2030 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4439,7 +4436,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2043 + // line internal/php7/php7.y:2040 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4451,7 +4448,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2056 + // line internal/php7/php7.y:2053 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4459,7 +4456,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2062 + // line internal/php7/php7.y:2059 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4468,7 +4465,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2072 + // line internal/php7/php7.y:2069 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4479,7 +4476,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2081 + // line internal/php7/php7.y:2078 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4491,7 +4488,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2094 + // line internal/php7/php7.y:2091 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4500,7 +4497,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2101 + // line internal/php7/php7.y:2098 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4508,13 +4505,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2107 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2114 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4523,7 +4520,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2124 + // line internal/php7/php7.y:2121 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4531,72 +4528,66 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2130 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, } - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2157 + // line internal/php7/php7.y:2151 { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, + }, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, } - - // save position - variable.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, yyDollar[1].token.SkippedTokens) } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2185 + // line internal/php7/php7.y:2176 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2189 + // line internal/php7/php7.y:2180 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2196 + // line internal/php7/php7.y:2187 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4611,7 +4602,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2209 + // line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4625,7 +4616,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4639,7 +4630,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2224 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4670,7 +4661,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2256 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4678,7 +4669,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2271 + // line internal/php7/php7.y:2262 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4687,7 +4678,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2272 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4698,7 +4689,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4710,7 +4701,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4723,19 +4714,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2318 + // line internal/php7/php7.y:2309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2325 + // line internal/php7/php7.y:2316 { yyVAL.node = yyDollar[1].node @@ -4745,7 +4736,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4755,7 +4746,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2344 + // line internal/php7/php7.y:2335 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4769,7 +4760,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2359 + // line internal/php7/php7.y:2350 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4788,7 +4779,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2376 + // line internal/php7/php7.y:2367 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4807,7 +4798,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2384 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4827,7 +4818,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2411 + // line internal/php7/php7.y:2402 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4840,7 +4831,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2416 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4857,13 +4848,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2440 + // line internal/php7/php7.y:2431 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2447 + // line internal/php7/php7.y:2438 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4882,7 +4873,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2458 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4893,7 +4884,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4906,13 +4897,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2490 + // line internal/php7/php7.y:2481 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2494 + // line internal/php7/php7.y:2485 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4926,31 +4917,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2509 + // line internal/php7/php7.y:2500 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2513 + // line internal/php7/php7.y:2504 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2520 + // line internal/php7/php7.y:2511 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2524 + // line internal/php7/php7.y:2515 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2522 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4962,7 +4953,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2541 + // line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4974,7 +4965,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2551 + // line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4986,7 +4977,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2561 + // line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4998,7 +4989,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2571 + // line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5010,7 +5001,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2581 + // line internal/php7/php7.y:2572 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5022,7 +5013,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2594 + // line internal/php7/php7.y:2585 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5031,7 +5022,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2601 + // line internal/php7/php7.y:2592 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5039,7 +5030,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2601 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5062,7 +5053,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2622 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5086,7 +5077,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2647 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5094,13 +5085,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2662 + // line internal/php7/php7.y:2653 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2660 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5121,7 +5112,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2691 + // line internal/php7/php7.y:2682 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5142,7 +5133,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2713 + // line internal/php7/php7.y:2704 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5151,7 +5142,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2711 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5159,25 +5150,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2720 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2736 + // line internal/php7/php7.y:2727 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2740 + // line internal/php7/php7.y:2731 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2747 + // line internal/php7/php7.y:2738 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5186,13 +5177,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2754 + // line internal/php7/php7.y:2745 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2752 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5209,7 +5200,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2770 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5234,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2802 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5246,7 +5237,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2815 + // line internal/php7/php7.y:2806 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5268,7 +5259,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2835 + // line internal/php7/php7.y:2826 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5289,7 +5280,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2854 + // line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5302,7 +5293,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2865 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5316,7 +5307,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2877 + // line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5328,7 +5319,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2887 + // line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5341,7 +5332,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2898 + // line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5354,7 +5345,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2909 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5367,7 +5358,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2920 + // line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5380,7 +5371,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2931 + // line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5393,7 +5384,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2942 + // line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5406,7 +5397,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2953 + // line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5419,7 +5410,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2964 + // line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5432,7 +5423,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2975 + // line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5445,7 +5436,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2986 + // line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5458,7 +5449,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2997 + // line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5471,7 +5462,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3008 + // line internal/php7/php7.y:2999 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5484,7 +5475,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3019 + // line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5497,7 +5488,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3030 + // line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5509,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3040 + // line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5521,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5533,7 +5524,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3060 + // line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5545,7 +5536,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3070 + // line internal/php7/php7.y:3061 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5558,7 +5549,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3081 + // line internal/php7/php7.y:3072 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5571,7 +5562,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3092 + // line internal/php7/php7.y:3083 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5584,7 +5575,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3103 + // line internal/php7/php7.y:3094 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5597,7 +5588,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3114 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5610,7 +5601,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3125 + // line internal/php7/php7.y:3116 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5623,7 +5614,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3136 + // line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5636,7 +5627,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3147 + // line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5649,7 +5640,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3158 + // line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5661,7 +5652,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3168 + // line internal/php7/php7.y:3159 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5674,7 +5665,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3179 + // line internal/php7/php7.y:3170 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5687,7 +5678,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3190 + // line internal/php7/php7.y:3181 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5700,7 +5691,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3201 + // line internal/php7/php7.y:3192 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5713,7 +5704,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3212 + // line internal/php7/php7.y:3203 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5726,7 +5717,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3223 + // line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5739,7 +5730,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3234 + // line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5752,7 +5743,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5765,31 +5756,31 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3256 + // line internal/php7/php7.y:3247 { - yyVAL.node = &ast.ExprUnaryPlus{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprUnaryPlus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + PlusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3266 + // line internal/php7/php7.y:3257 { - yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + MinusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3276 + // line internal/php7/php7.y:3267 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5801,7 +5792,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3286 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5813,7 +5804,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3296 + // line internal/php7/php7.y:3287 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5826,7 +5817,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3307 + // line internal/php7/php7.y:3298 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5839,7 +5830,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3318 + // line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5852,7 +5843,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3329 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5866,7 +5857,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3341 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5879,7 +5870,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3352 + // line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5892,7 +5883,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3363 + // line internal/php7/php7.y:3354 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5905,7 +5896,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3374 + // line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5918,7 +5909,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3385 + // line internal/php7/php7.y:3376 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5931,7 +5922,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3396 + // line internal/php7/php7.y:3387 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5944,7 +5935,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3407 + // line internal/php7/php7.y:3398 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5961,13 +5952,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3422 + // line internal/php7/php7.y:3413 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3417 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5982,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3439 + // line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5996,7 +5987,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3451 + // line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6009,13 +6000,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3462 + // line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3466 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} @@ -6028,7 +6019,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} @@ -6041,7 +6032,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3488 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} @@ -6054,7 +6045,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3499 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} @@ -6067,7 +6058,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3510 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} @@ -6080,7 +6071,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3521 + // line internal/php7/php7.y:3512 { yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} @@ -6093,7 +6084,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3532 + // line internal/php7/php7.y:3523 { yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} @@ -6106,7 +6097,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3543 + // line internal/php7/php7.y:3534 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6125,7 +6116,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3560 + // line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6137,13 +6128,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3570 + // line internal/php7/php7.y:3561 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3574 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6156,7 +6147,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3585 + // line internal/php7/php7.y:3576 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6168,7 +6159,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3595 + // line internal/php7/php7.y:3586 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} @@ -6180,7 +6171,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3605 + // line internal/php7/php7.y:3596 { yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} @@ -6192,7 +6183,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3615 + // line internal/php7/php7.y:3606 { yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} @@ -6205,7 +6196,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3626 + // line internal/php7/php7.y:3617 { yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} @@ -6217,13 +6208,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3636 + // line internal/php7/php7.y:3627 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3640 + // line internal/php7/php7.y:3631 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6238,7 +6229,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3656 + // line internal/php7/php7.y:3647 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6259,7 +6250,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3675 + // line internal/php7/php7.y:3666 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6278,25 +6269,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3699 + // line internal/php7/php7.y:3690 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3703 + // line internal/php7/php7.y:3694 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3710 + // line internal/php7/php7.y:3701 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3714 + // line internal/php7/php7.y:3705 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6311,7 +6302,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3730 + // line internal/php7/php7.y:3721 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6320,7 +6311,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3737 + // line internal/php7/php7.y:3728 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6328,26 +6319,24 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3737 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3763 + // line internal/php7/php7.y:3752 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6370,7 +6359,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3787 + // line internal/php7/php7.y:3776 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6384,7 +6373,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3799 + // line internal/php7/php7.y:3788 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6400,7 +6389,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3813 + // line internal/php7/php7.y:3802 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6416,7 +6405,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3827 + // line internal/php7/php7.y:3816 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6430,7 +6419,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3842 + // line internal/php7/php7.y:3831 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6442,31 +6431,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3848 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3852 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3859 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3863 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6483,13 +6472,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3881 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3896 + // line internal/php7/php7.y:3885 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6503,25 +6492,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3897 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3915 + // line internal/php7/php7.y:3904 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3919 + // line internal/php7/php7.y:3908 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3926 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6536,7 +6525,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3939 + // line internal/php7/php7.y:3928 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6550,7 +6539,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3951 + // line internal/php7/php7.y:3940 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6562,7 +6551,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3964 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6574,7 +6563,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3974 + // line internal/php7/php7.y:3963 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6586,7 +6575,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3984 + // line internal/php7/php7.y:3973 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6598,7 +6587,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3994 + // line internal/php7/php7.y:3983 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6610,7 +6599,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4004 + // line internal/php7/php7.y:3993 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6622,7 +6611,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4014 + // line internal/php7/php7.y:4003 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6634,7 +6623,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4024 + // line internal/php7/php7.y:4013 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6646,7 +6635,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4034 + // line internal/php7/php7.y:4023 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6658,7 +6647,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4044 + // line internal/php7/php7.y:4033 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6670,7 +6659,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4043 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6682,7 +6671,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4064 + // line internal/php7/php7.y:4053 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6703,7 +6692,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4083 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6715,7 +6704,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4093 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6728,7 +6717,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4104 + // line internal/php7/php7.y:4093 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6741,19 +6730,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4115 + // line internal/php7/php7.y:4104 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4119 + // line internal/php7/php7.y:4108 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4126 + // line internal/php7/php7.y:4115 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6764,7 +6753,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4135 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6783,7 +6772,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4152 + // line internal/php7/php7.y:4141 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6802,43 +6791,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4161 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4165 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4183 + // line internal/php7/php7.y:4172 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4194 + // line internal/php7/php7.y:4183 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4201 + // line internal/php7/php7.y:4190 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4205 + // line internal/php7/php7.y:4194 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6855,19 +6844,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4220 + // line internal/php7/php7.y:4209 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4227 + // line internal/php7/php7.y:4216 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4231 + // line internal/php7/php7.y:4220 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6884,19 +6873,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4246 + // line internal/php7/php7.y:4235 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4253 + // line internal/php7/php7.y:4242 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4257 + // line internal/php7/php7.y:4246 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6910,7 +6899,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4258 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6924,7 +6913,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4270 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6938,7 +6927,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4282 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6954,25 +6943,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4307 + // line internal/php7/php7.y:4296 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4303 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4307 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4322 + // line internal/php7/php7.y:4311 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6985,52 +6974,55 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4325 { - name := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4353 + // line internal/php7/php7.y:4340 { - yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.Start, append(yyDollar[2].token.SkippedTokens, yyDollar[3].node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyDollar[3].node, token.End, append(yyDollar[3].node.GetNode().Tokens[token.End], yyDollar[4].token.SkippedTokens...)) + yyVAL.node = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + DollarTkn: yyDollar[1].token, + VarName: &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + }, + OpenBracketTkn: yyDollar[2].token, + Child: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + }, + } } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4365 + // line internal/php7/php7.y:4357 { - yyVAL.node = &ast.ExprVariable{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + DollarTkn: yyDollar[1].token, + VarName: yyDollar[2].node, + } } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4378 + // line internal/php7/php7.y:4370 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7043,7 +7035,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4381 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7056,13 +7048,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4403 + // line internal/php7/php7.y:4395 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4407 + // line internal/php7/php7.y:4399 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7076,7 +7068,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4419 + // line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7090,7 +7082,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4431 + // line internal/php7/php7.y:4423 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7103,7 +7095,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4442 + // line internal/php7/php7.y:4434 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7116,7 +7108,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4453 + // line internal/php7/php7.y:4445 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7129,7 +7121,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4467 + // line internal/php7/php7.y:4459 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7141,7 +7133,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[2].node @@ -7151,13 +7143,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4485 + // line internal/php7/php7.y:4477 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4492 + // line internal/php7/php7.y:4484 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7169,7 +7161,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4494 { yyVAL.node = yyDollar[2].node @@ -7179,13 +7171,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4510 + // line internal/php7/php7.y:4502 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4509 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7198,19 +7190,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4531 + // line internal/php7/php7.y:4523 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4535 + // line internal/php7/php7.y:4527 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4542 + // line internal/php7/php7.y:4534 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7219,7 +7211,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4549 + // line internal/php7/php7.y:4541 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7227,7 +7219,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4558 + // line internal/php7/php7.y:4550 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7240,7 +7232,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4569 + // line internal/php7/php7.y:4561 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7251,7 +7243,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4578 + // line internal/php7/php7.y:4570 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7270,7 +7262,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4587 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7287,7 +7279,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4610 + // line internal/php7/php7.y:4602 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7299,7 +7291,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4620 + // line internal/php7/php7.y:4612 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7321,7 +7313,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4640 + // line internal/php7/php7.y:4632 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7341,13 +7333,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4661 + // line internal/php7/php7.y:4653 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4665 + // line internal/php7/php7.y:4657 { yyVAL.list = append( yyDollar[1].list, @@ -7362,13 +7354,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4678 + // line internal/php7/php7.y:4670 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4682 + // line internal/php7/php7.y:4674 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7383,26 +7375,24 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4698 + // line internal/php7/php7.y:4690 { - name := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, name} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4715 + // line internal/php7/php7.y:4705 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7427,7 +7417,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4738 + // line internal/php7/php7.y:4728 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7457,51 +7447,32 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4766 + // line internal/php7/php7.y:4756 { - variable := &ast.ExprVariable{ast.Node{}, yyDollar[2].node} - - yyVAL.node = variable - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewNodePosition(yyDollar[2].node), + }, + VarName: yyDollar[2].node, + }, + CloseBracketTkn: yyDollar[3].token, + } } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4779 + // line internal/php7/php7.y:4772 { - name := &ast.Identifier{ + yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, - } - variable := &ast.ExprVariable{ast.Node{}, name} - - yyVAL.node = variable - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) - } - case 479: - yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4799 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - }, - OpenCurlyBracketTkn: yyDollar[1].token, - Var: &ast.ExprVariable{ + OpenBracketTkn: yyDollar[1].token, + Child: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[2].token), }, @@ -7513,25 +7484,57 @@ yydefault: Value: yyDollar[2].token.Value, }, }, - OpenBracketTkn: yyDollar[3].token, - Dim: yyDollar[4].node, - CloseBracketTkn: yyDollar[5].token, - CloseCurlyBracketTkn: yyDollar[6].token, + CloseBracketTkn: yyDollar[3].token, + } + } + case 479: + yyDollar = yyS[yypt-6 : yypt+1] + // line internal/php7/php7.y:4794 + { + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, + }, + }, + OpenBracketTkn: yyDollar[3].token, + Dim: yyDollar[4].node, + CloseBracketTkn: yyDollar[5].token, + }, + CloseBracketTkn: yyDollar[6].token, } } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4824 + // line internal/php7/php7.y:4824 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setToken(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4835 + // line internal/php7/php7.y:4838 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7543,7 +7546,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4845 + // line internal/php7/php7.y:4848 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7566,20 +7569,25 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4866 + // line internal/php7/php7.y:4869 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil if isInt { - lnumber := &ast.ScalarLnumber{ + yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + }, + MinusTkn: yyDollar[1].token, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[2].token), + }, + NumberTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, - NumberTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, } - yyVAL.node = &ast.ExprUnaryMinus{ast.Node{}, lnumber} yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) } else { yyVAL.node = &ast.ScalarString{ @@ -7594,26 +7602,24 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4892 + // line internal/php7/php7.y:4900 { - identifier := &ast.Identifier{ + yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition(yyDollar[1].token), }, - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + }, } - yyVAL.node = &ast.ExprVariable{ast.Node{}, identifier} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4912 + // line internal/php7/php7.y:4918 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7632,7 +7638,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4929 + // line internal/php7/php7.y:4935 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7646,7 +7652,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4941 + // line internal/php7/php7.y:4947 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7658,7 +7664,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4951 + // line internal/php7/php7.y:4957 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7670,7 +7676,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4961 + // line internal/php7/php7.y:4967 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7684,7 +7690,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4973 + // line internal/php7/php7.y:4979 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7696,7 +7702,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4983 + // line internal/php7/php7.y:4989 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7708,7 +7714,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4996 + // line internal/php7/php7.y:5002 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7716,7 +7722,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5002 + // line internal/php7/php7.y:5008 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7725,7 +7731,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5012 + // line internal/php7/php7.y:5018 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index b61b9cc..bdd808a 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1122,19 +1122,21 @@ catch_list: } | catch_list T_CATCH '(' catch_name_list T_VARIABLE ')' '{' inner_statement_list '}' { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($5), - }, - IdentifierTkn: $5, - Value: $5.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} - catch := $4.(*ast.StmtCatch) catch.CatchTkn = $2 catch.OpenParenthesisTkn = $3 - catch.Var = variable + catch.Var = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($5), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($5), + }, + IdentifierTkn: $5, + Value: $5.Value, + }, + } catch.CloseParenthesisTkn = $6 catch.OpenCurlyBracketTkn = $7 catch.Stmts = $8 @@ -1142,12 +1144,6 @@ catch_list: catch.GetNode().Position = position.NewTokensPosition($2, $9) $$ = append($1, catch) - - // save position - variable.GetNode().Position = position.NewTokenPosition($5) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $5.SkippedTokens) } ; catch_name_list: @@ -1852,19 +1848,20 @@ non_empty_parameter_list: parameter: optional_type is_reference is_variadic T_VARIABLE { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($4), }, - IdentifierTkn: $4, - Value: $4.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) - if $3 != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -1904,20 +1901,20 @@ parameter: } | optional_type is_reference is_variadic T_VARIABLE '=' expr { - identifier := &ast.Identifier{ + var variable ast.Vertex + variable = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($4), }, - IdentifierTkn: $4, - Value: $4.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, } - var variable ast.Vertex - variable = &ast.ExprVariable{ast.Node{}, identifier} - variable.GetNode().Position = position.NewTokenPosition($4) - yylex.(*Parser).setFreeFloating(variable, token.Start, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating(variable, token.End, $5.SkippedTokens) - if $3 != nil { variable = &ast.Variadic{ Node: ast.Node{ @@ -2131,52 +2128,46 @@ static_var_list: static_var: T_VARIABLE { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, - IdentifierTkn: $1, - Value: $1.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, } - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } | T_VARIABLE '=' expr { - identifier := &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, - IdentifierTkn: $1, - Value: $1.Value, - } - variable := &ast.ExprVariable{ast.Node{}, identifier} $$ = &ast.StmtStaticVar{ Node: ast.Node{ Position: position.NewTokenNodePosition($1, $3), }, - Var: variable, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, + }, EqualTkn: $2, Expr: $3, } - - // save position - variable.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating(variable, token.Start, $1.SkippedTokens) } ; @@ -3254,23 +3245,23 @@ expr_without_variable: } | '+' expr %prec T_INC { - $$ = &ast.ExprUnaryPlus{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprUnaryPlus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + PlusTkn: $1, + Expr: $2, + } } | '-' expr %prec T_INC { - $$ = &ast.ExprUnaryMinus{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprUnaryMinus{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + MinusTkn: $1, + Expr: $2, + } } | '!' expr { @@ -3744,20 +3735,18 @@ lexical_var_list: lexical_var: T_VARIABLE { - identifier := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, identifier} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '&' T_VARIABLE { @@ -4334,42 +4323,45 @@ variable: simple_variable: T_VARIABLE { - name := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | '$' '{' expr '}' { - $$ = &ast.ExprVariable{ast.Node{}, $3} - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($3, token.Start, append($2.SkippedTokens, $3.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($3, token.End, append($3.GetNode().Tokens[token.End], $4.SkippedTokens...)) + $$ = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + DollarTkn: $1, + VarName: &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $4), + }, + OpenBracketTkn: $2, + Child: $3, + CloseBracketTkn: $4, + }, + } } | '$' simple_variable { - $$ = &ast.ExprVariable{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + DollarTkn: $1, + VarName: $2, + } } ; @@ -4696,20 +4688,18 @@ encaps_list: encaps_var: T_VARIABLE { - name := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, name} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE '[' encaps_var_offset ']' { @@ -4764,45 +4754,28 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - variable := &ast.ExprVariable{ast.Node{}, $2} - - $$ = variable - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewNodePosition($2), + }, + VarName: $2, + }, + CloseBracketTkn: $3, + } } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - name := &ast.Identifier{ + $$ = &ast.ParserBrackets{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $3), }, - IdentifierTkn: $2, - Value: $2.Value, - } - variable := &ast.ExprVariable{ast.Node{}, name} - - $$ = variable - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) - } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' - { - $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, - OpenCurlyBracketTkn: $1, - Var: &ast.ExprVariable{ + OpenBracketTkn: $1, + Child: &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($2), }, @@ -4814,19 +4787,49 @@ encaps_var: Value: $2.Value, }, }, - OpenBracketTkn: $3, - Dim: $4, - CloseBracketTkn: $5, - CloseCurlyBracketTkn: $6, + CloseBracketTkn: $3, + } + } + | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' + { + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $6), + }, + OpenBracketTkn: $1, + Child: &ast.ExprArrayDimFetch{ + Node: ast.Node{ + Position: position.NewTokensPosition($2, $5), + }, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + IdentifierTkn: $2, + Value: $2.Value, + }, + }, + OpenBracketTkn: $3, + Dim: $4, + CloseBracketTkn: $5, + }, + CloseBracketTkn: $6, } } | T_CURLY_OPEN variable '}' { - $$ = $2; - - // save comments - yylex.(*Parser).setToken($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } } ; @@ -4868,14 +4871,19 @@ encaps_var_offset: isInt := err == nil if isInt { - lnumber := &ast.ScalarLnumber{ + $$ = &ast.ExprUnaryMinus{ Node: ast.Node{ - Position: position.NewTokenPosition($2), + Position: position.NewTokensPosition($1, $2), + }, + MinusTkn: $1, + Expr: &ast.ScalarLnumber{ + Node: ast.Node{ + Position: position.NewTokenPosition($2), + }, + NumberTkn: $2, + Value: $2.Value, }, - NumberTkn: $2, - Value: $2.Value, } - $$ = &ast.ExprUnaryMinus{ast.Node{}, lnumber} $$.GetNode().Position = position.NewTokensPosition($1, $2) } else { $$ = &ast.ScalarString{ @@ -4890,20 +4898,18 @@ encaps_var_offset: } | T_VARIABLE { - identifier := &ast.Identifier{ + $$ = &ast.ExprVariable{ Node: ast.Node{ Position: position.NewTokenPosition($1), }, - IdentifierTkn: $1, - Value: $1.Value, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + IdentifierTkn: $1, + Value: $1.Value, + }, } - $$ = &ast.ExprVariable{ast.Node{}, identifier} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index d65527a..4bd9737 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -953,12 +953,10 @@ func (n *ExprArray) Accept(v NodeVisitor) { // ExprArrayDimFetch node type ExprArrayDimFetch struct { Node - Var Vertex - OpenCurlyBracketTkn *token.Token - OpenBracketTkn *token.Token - Dim Vertex - CloseBracketTkn *token.Token - CloseCurlyBracketTkn *token.Token + Var Vertex + OpenBracketTkn *token.Token + Dim Vertex + CloseBracketTkn *token.Token } func (n *ExprArrayDimFetch) Accept(v NodeVisitor) { @@ -1397,7 +1395,8 @@ func (n *ExprTernary) Accept(v NodeVisitor) { // ExprUnaryMinus node type ExprUnaryMinus struct { Node - Expr Vertex + MinusTkn *token.Token + Expr Vertex } func (n *ExprUnaryMinus) Accept(v NodeVisitor) { @@ -1407,7 +1406,8 @@ func (n *ExprUnaryMinus) Accept(v NodeVisitor) { // ExprUnaryPlus node type ExprUnaryPlus struct { Node - Expr Vertex + PlusTkn *token.Token + Expr Vertex } func (n *ExprUnaryPlus) Accept(v NodeVisitor) { @@ -1417,7 +1417,8 @@ func (n *ExprUnaryPlus) Accept(v NodeVisitor) { // ExprVariable node type ExprVariable struct { Node - VarName Vertex + DollarTkn *token.Token + VarName Vertex } func (n *ExprVariable) Accept(v NodeVisitor) { From 5a6418e853ee72ec31627d77ab140812e845af46 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 09:42:45 +0200 Subject: [PATCH 092/140] [refactoring] update ast structure of "Yield", "YieldFrom" and "Cast" nodes --- internal/php5/php5.go | 644 ++++++++++++----------- internal/php5/php5.y | 180 ++++--- internal/php7/php7.go | 1151 ++++++++++++++++++++--------------------- internal/php7/php7.y | 163 +++--- pkg/ast/node.go | 30 +- 5 files changed, 1076 insertions(+), 1092 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index e6a9141..8664f6e 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -342,7 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6604 +// line internal/php5/php5.y:6598 // line yacctab:1 var yyExca = [...]int{ @@ -6142,96 +6142,89 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:3801 { - yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastInt{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3812 +// line internal/php5/php5.y:3811 { - yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastDouble{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3823 +// line internal/php5/php5.y:3821 { - yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastString{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3834 +// line internal/php5/php5.y:3831 { - yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastArray{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3845 +// line internal/php5/php5.y:3841 { - yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastObject{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3856 +// line internal/php5/php5.y:3851 { - yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastBool{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3867 +// line internal/php5/php5.y:3861 { - yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastUnset{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3878 +// line internal/php5/php5.y:3871 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6250,7 +6243,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3895 +// line internal/php5/php5.y:3888 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6262,25 +6255,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3905 +// line internal/php5/php5.y:3898 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3909 +// line internal/php5/php5.y:3902 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3913 +// line internal/php5/php5.y:3906 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3917 +// line internal/php5/php5.y:3910 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6293,7 +6286,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3928 +// line internal/php5/php5.y:3921 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6305,19 +6298,18 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3938 +// line internal/php5/php5.y:3931 { - yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + YieldTkn: yyDollar[1].token, + } } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3948 +// line internal/php5/php5.y:3940 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6336,7 +6328,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3965 +// line internal/php5/php5.y:3957 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6356,57 +6348,59 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3986 +// line internal/php5/php5.y:3978 { - yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + YieldTkn: yyDollar[1].token, + Value: yyDollar[2].node, + } } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3996 +// line internal/php5/php5.y:3988 { - yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + YieldTkn: yyDollar[1].token, + Value: yyDollar[2].node, + } } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4006 +// line internal/php5/php5.y:3998 { - yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + }, + YieldTkn: yyDollar[1].token, + Key: yyDollar[2].node, + DoubleArrowTkn: yyDollar[3].token, + Value: yyDollar[4].node, + } } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4017 +// line internal/php5/php5.y:4010 { - yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + }, + YieldTkn: yyDollar[1].token, + Key: yyDollar[2].node, + DoubleArrowTkn: yyDollar[3].token, + Value: yyDollar[4].node, + } } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4031 +// line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6420,7 +6414,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4043 +// line internal/php5/php5.y:4037 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6434,7 +6428,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4055 +// line internal/php5/php5.y:4049 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6454,7 +6448,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4073 +// line internal/php5/php5.y:4067 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6468,7 +6462,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4088 +// line internal/php5/php5.y:4082 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6483,7 +6477,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4101 +// line internal/php5/php5.y:4095 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6497,19 +6491,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4116 +// line internal/php5/php5.y:4110 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4123 +// line internal/php5/php5.y:4117 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4127 +// line internal/php5/php5.y:4121 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6524,7 +6518,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4143 +// line internal/php5/php5.y:4137 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6546,7 +6540,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4163 +// line internal/php5/php5.y:4157 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6574,7 +6568,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4189 +// line internal/php5/php5.y:4183 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6595,7 +6589,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4208 +// line internal/php5/php5.y:4202 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6622,7 +6616,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4236 +// line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6641,7 +6635,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4253 +// line internal/php5/php5.y:4247 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6662,7 +6656,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4272 +// line internal/php5/php5.y:4266 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6682,7 +6676,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4290 +// line internal/php5/php5.y:4284 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6698,7 +6692,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4304 +// line internal/php5/php5.y:4298 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6714,7 +6708,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4318 +// line internal/php5/php5.y:4312 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6730,7 +6724,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4332 +// line internal/php5/php5.y:4326 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6746,7 +6740,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4346 +// line internal/php5/php5.y:4340 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6760,7 +6754,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4361 +// line internal/php5/php5.y:4355 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6772,7 +6766,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4371 +// line internal/php5/php5.y:4365 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6783,7 +6777,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4380 +// line internal/php5/php5.y:4374 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6796,7 +6790,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4391 +// line internal/php5/php5.y:4385 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6808,7 +6802,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4404 +// line internal/php5/php5.y:4398 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6819,7 +6813,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4413 +// line internal/php5/php5.y:4407 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6832,7 +6826,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4424 +// line internal/php5/php5.y:4418 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6844,19 +6838,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4437 +// line internal/php5/php5.y:4431 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4441 +// line internal/php5/php5.y:4435 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4448 +// line internal/php5/php5.y:4442 { yyVAL.node = yyDollar[1].node @@ -6897,25 +6891,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4487 +// line internal/php5/php5.y:4481 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4495 +// line internal/php5/php5.y:4489 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4499 +// line internal/php5/php5.y:4493 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4507 +// line internal/php5/php5.y:4501 { yyVAL.list = yyDollar[2].list @@ -6924,13 +6918,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4517 +// line internal/php5/php5.y:4511 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4521 +// line internal/php5/php5.y:4515 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6946,19 +6940,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4529 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4542 +// line internal/php5/php5.y:4536 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4546 +// line internal/php5/php5.y:4540 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6972,25 +6966,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4558 +// line internal/php5/php5.y:4552 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4565 +// line internal/php5/php5.y:4559 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4569 +// line internal/php5/php5.y:4563 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4576 +// line internal/php5/php5.y:4570 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -7002,7 +6996,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4586 +// line internal/php5/php5.y:4580 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -7014,7 +7008,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4590 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7026,7 +7020,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4606 +// line internal/php5/php5.y:4600 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7038,7 +7032,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4616 +// line internal/php5/php5.y:4610 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7050,7 +7044,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4626 +// line internal/php5/php5.y:4620 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7062,7 +7056,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4636 +// line internal/php5/php5.y:4630 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7074,7 +7068,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4646 +// line internal/php5/php5.y:4640 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7086,7 +7080,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4656 +// line internal/php5/php5.y:4650 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7098,7 +7092,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4666 +// line internal/php5/php5.y:4660 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7110,7 +7104,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4676 +// line internal/php5/php5.y:4670 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7131,7 +7125,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4695 +// line internal/php5/php5.y:4689 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7143,7 +7137,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4708 +// line internal/php5/php5.y:4702 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7162,25 +7156,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4728 +// line internal/php5/php5.y:4722 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4735 +// line internal/php5/php5.y:4729 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4739 +// line internal/php5/php5.y:4733 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4743 +// line internal/php5/php5.y:4737 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7196,7 +7190,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4757 +// line internal/php5/php5.y:4751 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7214,7 +7208,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4773 +// line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7231,7 +7225,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4788 +// line internal/php5/php5.y:4782 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7246,7 +7240,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4801 +// line internal/php5/php5.y:4795 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7260,13 +7254,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4813 +// line internal/php5/php5.y:4807 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4817 +// line internal/php5/php5.y:4811 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7278,13 +7272,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4827 +// line internal/php5/php5.y:4821 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4834 +// line internal/php5/php5.y:4828 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7298,7 +7292,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4846 +// line internal/php5/php5.y:4840 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7311,7 +7305,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4857 +// line internal/php5/php5.y:4851 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7324,7 +7318,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4868 +// line internal/php5/php5.y:4862 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7337,7 +7331,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4879 +// line internal/php5/php5.y:4873 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7350,7 +7344,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4890 +// line internal/php5/php5.y:4884 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7363,7 +7357,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4901 +// line internal/php5/php5.y:4895 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7376,7 +7370,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4912 +// line internal/php5/php5.y:4906 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7388,7 +7382,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4922 +// line internal/php5/php5.y:4916 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7400,7 +7394,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4932 +// line internal/php5/php5.y:4926 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7413,7 +7407,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4943 +// line internal/php5/php5.y:4937 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7426,7 +7420,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4954 +// line internal/php5/php5.y:4948 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7439,7 +7433,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4965 +// line internal/php5/php5.y:4959 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7452,7 +7446,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4976 +// line internal/php5/php5.y:4970 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7465,7 +7459,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4987 +// line internal/php5/php5.y:4981 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7478,7 +7472,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4998 +// line internal/php5/php5.y:4992 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7491,7 +7485,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5009 +// line internal/php5/php5.y:5003 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7504,7 +7498,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5020 +// line internal/php5/php5.y:5014 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7517,7 +7511,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5031 +// line internal/php5/php5.y:5025 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7530,7 +7524,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5042 +// line internal/php5/php5.y:5036 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7543,7 +7537,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5053 +// line internal/php5/php5.y:5047 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7556,7 +7550,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5064 +// line internal/php5/php5.y:5058 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7569,7 +7563,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5075 +// line internal/php5/php5.y:5069 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7582,7 +7576,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5086 +// line internal/php5/php5.y:5080 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7596,7 +7590,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5098 +// line internal/php5/php5.y:5092 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7609,7 +7603,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5109 +// line internal/php5/php5.y:5103 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7622,7 +7616,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5120 +// line internal/php5/php5.y:5114 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7635,7 +7629,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5131 +// line internal/php5/php5.y:5125 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -7648,7 +7642,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5142 +// line internal/php5/php5.y:5136 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7662,7 +7656,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5154 +// line internal/php5/php5.y:5148 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7677,7 +7671,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5167 +// line internal/php5/php5.y:5161 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7689,7 +7683,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5177 +// line internal/php5/php5.y:5171 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7701,7 +7695,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5187 +// line internal/php5/php5.y:5181 { yyVAL.node = yyDollar[2].node @@ -7711,13 +7705,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5198 +// line internal/php5/php5.y:5192 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5202 +// line internal/php5/php5.y:5196 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7733,7 +7727,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5216 +// line internal/php5/php5.y:5210 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7751,7 +7745,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5232 +// line internal/php5/php5.y:5226 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7768,7 +7762,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5250 +// line internal/php5/php5.y:5244 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7785,25 +7779,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5265 +// line internal/php5/php5.y:5259 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5269 +// line internal/php5/php5.y:5263 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5273 +// line internal/php5/php5.y:5267 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5277 +// line internal/php5/php5.y:5271 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7816,7 +7810,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5288 +// line internal/php5/php5.y:5282 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7829,7 +7823,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5299 +// line internal/php5/php5.y:5293 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7841,13 +7835,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5312 +// line internal/php5/php5.y:5306 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5316 +// line internal/php5/php5.y:5310 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7858,19 +7852,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5328 +// line internal/php5/php5.y:5322 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5332 +// line internal/php5/php5.y:5326 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5339 +// line internal/php5/php5.y:5333 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7888,7 +7882,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5355 +// line internal/php5/php5.y:5349 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7904,7 +7898,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5369 +// line internal/php5/php5.y:5363 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7921,7 +7915,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5384 +// line internal/php5/php5.y:5378 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7936,19 +7930,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5400 +// line internal/php5/php5.y:5394 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5404 +// line internal/php5/php5.y:5398 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5411 +// line internal/php5/php5.y:5405 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7965,7 +7959,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5426 +// line internal/php5/php5.y:5420 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7982,25 +7976,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5445 +// line internal/php5/php5.y:5439 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5453 +// line internal/php5/php5.y:5447 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5460 +// line internal/php5/php5.y:5454 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5467 +// line internal/php5/php5.y:5461 { yyVAL.node = yyDollar[1].node @@ -8078,25 +8072,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5543 +// line internal/php5/php5.y:5537 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5550 +// line internal/php5/php5.y:5544 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5554 +// line internal/php5/php5.y:5548 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5562 +// line internal/php5/php5.y:5556 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8127,7 +8121,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5593 +// line internal/php5/php5.y:5587 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8143,7 +8137,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5607 +// line internal/php5/php5.y:5601 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8159,7 +8153,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5624 +// line internal/php5/php5.y:5618 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8172,31 +8166,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5638 +// line internal/php5/php5.y:5632 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5642 +// line internal/php5/php5.y:5636 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5646 +// line internal/php5/php5.y:5640 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5653 +// line internal/php5/php5.y:5647 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5657 +// line internal/php5/php5.y:5651 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8208,7 +8202,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5670 +// line internal/php5/php5.y:5664 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8221,7 +8215,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5681 +// line internal/php5/php5.y:5675 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8234,13 +8228,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5695 +// line internal/php5/php5.y:5689 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5702 +// line internal/php5/php5.y:5696 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8254,7 +8248,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5714 +// line internal/php5/php5.y:5708 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8268,31 +8262,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5729 +// line internal/php5/php5.y:5723 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5733 +// line internal/php5/php5.y:5727 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5737 +// line internal/php5/php5.y:5731 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5745 +// line internal/php5/php5.y:5739 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5749 +// line internal/php5/php5.y:5743 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8304,13 +8298,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5759 +// line internal/php5/php5.y:5753 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5766 +// line internal/php5/php5.y:5760 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8324,7 +8318,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5778 +// line internal/php5/php5.y:5772 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8338,13 +8332,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5790 +// line internal/php5/php5.y:5784 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5798 +// line internal/php5/php5.y:5792 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8361,7 +8355,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5813 +// line internal/php5/php5.y:5807 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8380,25 +8374,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5833 +// line internal/php5/php5.y:5827 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5837 +// line internal/php5/php5.y:5831 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5845 +// line internal/php5/php5.y:5839 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5849 +// line internal/php5/php5.y:5843 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8411,7 +8405,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5863 +// line internal/php5/php5.y:5857 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8427,7 +8421,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5877 +// line internal/php5/php5.y:5871 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8443,7 +8437,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5891 +// line internal/php5/php5.y:5885 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8456,7 +8450,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5905 +// line internal/php5/php5.y:5899 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8468,7 +8462,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5915 +// line internal/php5/php5.y:5909 { yyVAL.node = yyDollar[2].node @@ -8481,7 +8475,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5929 +// line internal/php5/php5.y:5923 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8494,7 +8488,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5940 +// line internal/php5/php5.y:5934 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8505,7 +8499,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5952 +// line internal/php5/php5.y:5946 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8514,7 +8508,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5959 +// line internal/php5/php5.y:5953 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8522,7 +8516,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5969 +// line internal/php5/php5.y:5963 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8533,7 +8527,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5978 +// line internal/php5/php5.y:5972 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8560,19 +8554,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6003 +// line internal/php5/php5.y:5997 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6011 +// line internal/php5/php5.y:6005 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6015 +// line internal/php5/php5.y:6009 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8583,7 +8577,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6027 +// line internal/php5/php5.y:6021 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8601,7 +8595,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6043 +// line internal/php5/php5.y:6037 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8617,7 +8611,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6057 +// line internal/php5/php5.y:6051 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8634,7 +8628,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6072 +// line internal/php5/php5.y:6066 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8649,7 +8643,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6085 +// line internal/php5/php5.y:6079 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8673,7 +8667,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6107 +// line internal/php5/php5.y:6101 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8695,7 +8689,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6127 +// line internal/php5/php5.y:6121 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8718,7 +8712,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6148 +// line internal/php5/php5.y:6142 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8739,13 +8733,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6170 +// line internal/php5/php5.y:6164 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6174 +// line internal/php5/php5.y:6168 { yyVAL.list = append( yyDollar[1].list, @@ -8760,13 +8754,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6187 +// line internal/php5/php5.y:6181 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6191 +// line internal/php5/php5.y:6185 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8781,7 +8775,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6207 +// line internal/php5/php5.y:6201 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8798,7 +8792,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6222 +// line internal/php5/php5.y:6216 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8823,7 +8817,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6245 +// line internal/php5/php5.y:6239 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8853,7 +8847,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6273 +// line internal/php5/php5.y:6267 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8871,7 +8865,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6289 +// line internal/php5/php5.y:6283 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8895,7 +8889,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6311 +// line internal/php5/php5.y:6305 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8927,7 +8921,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6341 +// line internal/php5/php5.y:6335 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8940,7 +8934,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6355 +// line internal/php5/php5.y:6349 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8952,7 +8946,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6365 +// line internal/php5/php5.y:6359 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8981,7 +8975,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6392 +// line internal/php5/php5.y:6386 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8998,7 +8992,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6410 +// line internal/php5/php5.y:6404 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -9013,7 +9007,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6423 +// line internal/php5/php5.y:6417 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9027,7 +9021,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6435 +// line internal/php5/php5.y:6429 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9041,7 +9035,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6447 +// line internal/php5/php5.y:6441 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9053,7 +9047,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6457 +// line internal/php5/php5.y:6451 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9065,7 +9059,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6467 +// line internal/php5/php5.y:6461 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9079,7 +9073,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6479 +// line internal/php5/php5.y:6473 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9091,7 +9085,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6489 +// line internal/php5/php5.y:6483 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9103,7 +9097,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6496 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9111,7 +9105,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6508 +// line internal/php5/php5.y:6502 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9120,19 +9114,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6518 +// line internal/php5/php5.y:6512 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6522 +// line internal/php5/php5.y:6516 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6529 +// line internal/php5/php5.y:6523 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9151,7 +9145,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6546 +// line internal/php5/php5.y:6540 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9170,7 +9164,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6566 +// line internal/php5/php5.y:6560 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9189,7 +9183,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6586 +// line internal/php5/php5.y:6580 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 3990144..7ff468a 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3799,80 +3799,73 @@ expr_without_variable: } | T_INT_CAST expr { - $$ = &ast.ExprCastInt{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastInt{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_DOUBLE_CAST expr { - $$ = &ast.ExprCastDouble{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastDouble{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_STRING_CAST expr { - $$ = &ast.ExprCastString{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastString{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_ARRAY_CAST expr { - $$ = &ast.ExprCastArray{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastArray{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_OBJECT_CAST expr { - $$ = &ast.ExprCastObject{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastObject{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_BOOL_CAST expr { - $$ = &ast.ExprCastBool{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastBool{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_UNSET_CAST expr { - $$ = &ast.ExprCastUnset{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastUnset{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_EXIT exit_expr { @@ -3936,13 +3929,12 @@ expr_without_variable: } | T_YIELD { - $$ = &ast.ExprYield{ast.Node{}, nil, nil} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + YieldTkn: $1, + } } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { @@ -3984,45 +3976,47 @@ expr_without_variable: yield_expr: T_YIELD expr_without_variable { - $$ = &ast.ExprYield{ast.Node{}, nil, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + YieldTkn: $1, + Value: $2, + } } | T_YIELD variable { - $$ = &ast.ExprYield{ast.Node{}, nil, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + YieldTkn: $1, + Value: $2, + } } | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { - $$ = &ast.ExprYield{ast.Node{}, $2, $4} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $4), + }, + YieldTkn: $1, + Key: $2, + DoubleArrowTkn: $3, + Value: $4, + } } | T_YIELD expr T_DOUBLE_ARROW variable { - $$ = &ast.ExprYield{ast.Node{}, $2, $4} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $4), + }, + YieldTkn: $1, + Key: $2, + DoubleArrowTkn: $3, + Value: $4, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 351c5c1..8788ab2 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5025 +// line internal/php7/php7.y:5018 // line yacctab:1 var yyExca = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:290 +// line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2121,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 +// line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 +// line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:331 +// line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:342 +// line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:349 +// line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:361 +// line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:375 +// line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:384 +// line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:395 +// line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:408 +// line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:413 +// line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 +// line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 +// line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 +// line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 +// line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:433 +// line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:445 +// line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:461 +// line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:479 +// line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:491 +// line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:501 +// line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:512 +// line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:523 +// line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:535 +// line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:550 +// line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:560 +// line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:573 +// line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:595 +// line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:619 +// line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:639 +// line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:663 +// line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:667 +// line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:674 +// line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:680 +// line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:687 +// line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:693 +// line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:700 +// line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:706 +// line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:713 +// line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:717 +// line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:728 +// line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:742 +// line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:767 +// line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:771 +// line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:782 +// line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 +// line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:798 +// line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:809 +// line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:816 +// line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:821 +// line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:825 +// line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:829 +// line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:833 +// line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 +// line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:841 +// line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:855 +// line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:866 +// line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 +// line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:874 +// line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:884 +// line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:899 +// line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:913 +// line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:923 +// line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:934 +// line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:945 +// line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:956 +// line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:964 +// line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:972 +// line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:980 +// line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:990 +// line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1000 +// line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1011 +// line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1023 +// line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1037 +// line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1048 +// line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1057 +// line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1074 +// line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1085 +// line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1102 +// line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1120 +// line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1124 +// line internal/php7/php7.y:1124 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3507,7 +3507,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1151 +// line internal/php7/php7.y:1151 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3515,7 +3515,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1157 +// line internal/php7/php7.y:1157 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3524,13 +3524,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1167 +// line internal/php7/php7.y:1167 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1171 +// line internal/php7/php7.y:1171 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3544,7 +3544,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1186 +// line internal/php7/php7.y:1186 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3552,7 +3552,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1192 +// line internal/php7/php7.y:1192 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3561,13 +3561,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1202 +// line internal/php7/php7.y:1202 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1209 +// line internal/php7/php7.y:1209 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3594,31 +3594,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1237 +// line internal/php7/php7.y:1237 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1241 +// line internal/php7/php7.y:1241 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1248 +// line internal/php7/php7.y:1248 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1252 +// line internal/php7/php7.y:1252 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1259 +// line internal/php7/php7.y:1259 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3642,7 +3642,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1281 +// line internal/php7/php7.y:1281 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3665,19 +3665,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1305 +// line internal/php7/php7.y:1305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1309 +// line internal/php7/php7.y:1309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1316 +// line internal/php7/php7.y:1316 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3689,7 +3689,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1326 +// line internal/php7/php7.y:1326 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3701,7 +3701,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1339 +// line internal/php7/php7.y:1339 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3722,7 +3722,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1361 +// line internal/php7/php7.y:1361 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3744,13 +3744,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1384 +// line internal/php7/php7.y:1384 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1388 +// line internal/php7/php7.y:1388 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3762,13 +3762,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1401 +// line internal/php7/php7.y:1401 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1405 +// line internal/php7/php7.y:1405 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3781,13 +3781,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1419 +// line internal/php7/php7.y:1419 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1423 +// line internal/php7/php7.y:1423 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3800,13 +3800,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1437 +// line internal/php7/php7.y:1437 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1441 +// line internal/php7/php7.y:1441 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3818,7 +3818,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1451 +// line internal/php7/php7.y:1451 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3833,7 +3833,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1464 +// line internal/php7/php7.y:1464 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3847,7 +3847,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1479 +// line internal/php7/php7.y:1479 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3858,7 +3858,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1488 +// line internal/php7/php7.y:1488 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3878,7 +3878,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1509 +// line internal/php7/php7.y:1509 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3889,7 +3889,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1518 +// line internal/php7/php7.y:1518 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3909,7 +3909,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1539 +// line internal/php7/php7.y:1539 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3920,7 +3920,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1548 +// line internal/php7/php7.y:1548 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3940,7 +3940,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1569 +// line internal/php7/php7.y:1569 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3953,7 +3953,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1580 +// line internal/php7/php7.y:1580 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3967,7 +3967,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1592 +// line internal/php7/php7.y:1592 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3982,7 +3982,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1605 +// line internal/php7/php7.y:1605 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3998,13 +3998,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1622 +// line internal/php7/php7.y:1622 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1626 +// line internal/php7/php7.y:1626 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4018,7 +4018,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1638 +// line internal/php7/php7.y:1638 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4031,19 +4031,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1652 +// line internal/php7/php7.y:1652 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1656 +// line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1663 +// line internal/php7/php7.y:1663 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4054,7 +4054,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1672 +// line internal/php7/php7.y:1672 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4074,7 +4074,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1693 +// line internal/php7/php7.y:1693 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4089,7 +4089,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1706 +// line internal/php7/php7.y:1706 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4108,13 +4108,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1726 +// line internal/php7/php7.y:1726 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1730 +// line internal/php7/php7.y:1730 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4130,7 +4130,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1747 +// line internal/php7/php7.y:1747 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4152,7 +4152,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1767 +// line internal/php7/php7.y:1767 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4176,7 +4176,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1792 +// line internal/php7/php7.y:1792 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4186,7 +4186,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1800 +// line internal/php7/php7.y:1800 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4210,25 +4210,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1825 +// line internal/php7/php7.y:1825 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1829 +// line internal/php7/php7.y:1829 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1836 +// line internal/php7/php7.y:1836 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1840 +// line internal/php7/php7.y:1840 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4237,7 +4237,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1850 +// line internal/php7/php7.y:1850 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4292,7 +4292,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1903 +// line internal/php7/php7.y:1903 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4349,25 +4349,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1961 +// line internal/php7/php7.y:1961 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1965 +// line internal/php7/php7.y:1965 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1972 +// line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1976 +// line internal/php7/php7.y:1976 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4379,7 +4379,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1989 +// line internal/php7/php7.y:1989 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4391,7 +4391,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1999 +// line internal/php7/php7.y:1999 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4403,19 +4403,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2009 +// line internal/php7/php7.y:2009 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2016 +// line internal/php7/php7.y:2016 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2020 +// line internal/php7/php7.y:2020 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4424,7 +4424,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2030 +// line internal/php7/php7.y:2030 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4436,7 +4436,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2040 +// line internal/php7/php7.y:2040 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4448,7 +4448,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2053 +// line internal/php7/php7.y:2053 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4456,7 +4456,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2059 +// line internal/php7/php7.y:2059 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4465,7 +4465,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2069 +// line internal/php7/php7.y:2069 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4476,7 +4476,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2078 +// line internal/php7/php7.y:2078 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4488,7 +4488,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2091 +// line internal/php7/php7.y:2091 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4497,7 +4497,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2098 +// line internal/php7/php7.y:2098 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4505,13 +4505,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2107 +// line internal/php7/php7.y:2107 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2114 +// line internal/php7/php7.y:2114 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4520,7 +4520,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2121 +// line internal/php7/php7.y:2121 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4528,7 +4528,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2130 +// line internal/php7/php7.y:2130 { yyVAL.node = &ast.StmtStaticVar{ @@ -4551,7 +4551,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2151 +// line internal/php7/php7.y:2151 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4575,19 +4575,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2176 +// line internal/php7/php7.y:2176 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2180 +// line internal/php7/php7.y:2180 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2187 +// line internal/php7/php7.y:2187 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4602,7 +4602,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2200 +// line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4616,7 +4616,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2212 +// line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4630,7 +4630,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2224 +// line internal/php7/php7.y:2224 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4661,7 +4661,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2256 +// line internal/php7/php7.y:2256 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4669,7 +4669,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2262 +// line internal/php7/php7.y:2262 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4678,7 +4678,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2272 +// line internal/php7/php7.y:2272 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4689,7 +4689,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2281 +// line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4701,7 +4701,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2291 +// line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4714,19 +4714,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2305 +// line internal/php7/php7.y:2305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2309 +// line internal/php7/php7.y:2309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2316 +// line internal/php7/php7.y:2316 { yyVAL.node = yyDollar[1].node @@ -4736,7 +4736,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2324 +// line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4746,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2335 +// line internal/php7/php7.y:2335 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4760,7 +4760,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2350 +// line internal/php7/php7.y:2350 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4779,7 +4779,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2367 +// line internal/php7/php7.y:2367 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4798,7 +4798,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2384 +// line internal/php7/php7.y:2384 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4818,7 +4818,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2402 +// line internal/php7/php7.y:2402 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4831,7 +4831,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2416 +// line internal/php7/php7.y:2416 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4848,13 +4848,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2431 +// line internal/php7/php7.y:2431 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2438 +// line internal/php7/php7.y:2438 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4873,7 +4873,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2458 +// line internal/php7/php7.y:2458 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4884,7 +4884,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2467 +// line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4897,13 +4897,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2481 +// line internal/php7/php7.y:2481 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2485 +// line internal/php7/php7.y:2485 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4917,31 +4917,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2500 +// line internal/php7/php7.y:2500 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2504 +// line internal/php7/php7.y:2504 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2511 +// line internal/php7/php7.y:2511 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2515 +// line internal/php7/php7.y:2515 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2522 +// line internal/php7/php7.y:2522 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4953,7 +4953,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2532 +// line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4965,7 +4965,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2542 +// line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4977,7 +4977,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2552 +// line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4989,7 +4989,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2562 +// line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5001,7 +5001,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2572 +// line internal/php7/php7.y:2572 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5013,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2585 +// line internal/php7/php7.y:2585 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5022,7 +5022,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2592 +// line internal/php7/php7.y:2592 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5030,7 +5030,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2601 +// line internal/php7/php7.y:2601 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5053,7 +5053,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2622 +// line internal/php7/php7.y:2622 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5077,7 +5077,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2647 +// line internal/php7/php7.y:2647 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5085,13 +5085,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2653 +// line internal/php7/php7.y:2653 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2660 +// line internal/php7/php7.y:2660 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5112,7 +5112,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2682 +// line internal/php7/php7.y:2682 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5133,7 +5133,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2704 +// line internal/php7/php7.y:2704 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5142,7 +5142,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2711 +// line internal/php7/php7.y:2711 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5150,25 +5150,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2720 +// line internal/php7/php7.y:2720 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2727 +// line internal/php7/php7.y:2727 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2731 +// line internal/php7/php7.y:2731 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2738 +// line internal/php7/php7.y:2738 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5177,13 +5177,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2745 +// line internal/php7/php7.y:2745 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2752 +// line internal/php7/php7.y:2752 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5200,7 +5200,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2770 +// line internal/php7/php7.y:2770 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5225,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2793 +// line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5237,7 +5237,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2806 +// line internal/php7/php7.y:2806 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5259,7 +5259,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2826 +// line internal/php7/php7.y:2826 { listNode := &ast.ExprList{ Node: ast.Node{ @@ -5280,7 +5280,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2845 +// line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5293,7 +5293,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2856 +// line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} @@ -5307,7 +5307,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2868 +// line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5319,7 +5319,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2878 +// line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5332,7 +5332,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2889 +// line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5345,7 +5345,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2900 +// line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5358,7 +5358,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2911 +// line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5371,7 +5371,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2922 +// line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5384,7 +5384,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2933 +// line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5397,7 +5397,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2944 +// line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5410,7 +5410,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2955 +// line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5423,7 +5423,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2966 +// line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5436,7 +5436,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2977 +// line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5449,7 +5449,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2988 +// line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5462,7 +5462,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2999 +// line internal/php7/php7.y:2999 { yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5475,7 +5475,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3010 +// line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5488,7 +5488,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3021 +// line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5500,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3031 +// line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5512,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3041 +// line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5524,7 +5524,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3051 +// line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5536,7 +5536,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3061 +// line internal/php7/php7.y:3061 { yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5549,7 +5549,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3072 +// line internal/php7/php7.y:3072 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5562,7 +5562,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3083 +// line internal/php7/php7.y:3083 { yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5575,7 +5575,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3094 +// line internal/php7/php7.y:3094 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5588,7 +5588,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3105 +// line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5601,7 +5601,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3116 +// line internal/php7/php7.y:3116 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5614,7 +5614,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3127 +// line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5627,7 +5627,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3138 +// line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5640,7 +5640,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3149 +// line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5652,7 +5652,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3159 +// line internal/php7/php7.y:3159 { yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5665,7 +5665,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3170 +// line internal/php7/php7.y:3170 { yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5678,7 +5678,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3181 +// line internal/php7/php7.y:3181 { yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5691,7 +5691,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3192 +// line internal/php7/php7.y:3192 { yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5704,7 +5704,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3203 +// line internal/php7/php7.y:3203 { yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5717,7 +5717,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3214 +// line internal/php7/php7.y:3214 { yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5730,7 +5730,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3225 +// line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5743,7 +5743,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3236 +// line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5756,7 +5756,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3247 +// line internal/php7/php7.y:3247 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5768,7 +5768,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3257 +// line internal/php7/php7.y:3257 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5780,7 +5780,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3267 +// line internal/php7/php7.y:3267 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5792,7 +5792,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3277 +// line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5804,7 +5804,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3287 +// line internal/php7/php7.y:3287 { yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5817,7 +5817,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3298 +// line internal/php7/php7.y:3298 { yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5830,7 +5830,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3309 +// line internal/php7/php7.y:3309 { yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5843,7 +5843,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3320 +// line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5857,7 +5857,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3332 +// line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5870,7 +5870,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3343 +// line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5883,7 +5883,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3354 +// line internal/php7/php7.y:3354 { yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5896,7 +5896,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3365 +// line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5909,7 +5909,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3376 +// line internal/php7/php7.y:3376 { yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -5922,7 +5922,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3387 +// line internal/php7/php7.y:3387 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5935,7 +5935,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3398 +// line internal/php7/php7.y:3398 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5952,13 +5952,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3413 +// line internal/php7/php7.y:3413 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3417 +// line internal/php7/php7.y:3417 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5973,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3430 +// line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5987,7 +5987,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3442 +// line internal/php7/php7.y:3442 { yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} @@ -6000,104 +6000,97 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3453 +// line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3457 +// line internal/php7/php7.y:3457 { - yyVAL.node = &ast.ExprCastInt{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastInt{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3468 +// line internal/php7/php7.y:3467 { - yyVAL.node = &ast.ExprCastDouble{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastDouble{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3479 +// line internal/php7/php7.y:3477 { - yyVAL.node = &ast.ExprCastString{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastString{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3490 +// line internal/php7/php7.y:3487 { - yyVAL.node = &ast.ExprCastArray{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastArray{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3501 +// line internal/php7/php7.y:3497 { - yyVAL.node = &ast.ExprCastObject{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastObject{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3512 +// line internal/php7/php7.y:3507 { - yyVAL.node = &ast.ExprCastBool{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastBool{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3523 +// line internal/php7/php7.y:3517 { - yyVAL.node = &ast.ExprCastUnset{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Cast, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprCastUnset{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3534 +// line internal/php7/php7.y:3527 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6116,7 +6109,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3551 +// line internal/php7/php7.y:3544 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6128,13 +6121,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3561 +// line internal/php7/php7.y:3554 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3565 +// line internal/php7/php7.y:3558 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6147,7 +6140,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3576 +// line internal/php7/php7.y:3569 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6159,62 +6152,62 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3586 +// line internal/php7/php7.y:3579 { - yyVAL.node = &ast.ExprYield{ast.Node{}, nil, nil} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + YieldTkn: yyDollar[1].token, + } } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3596 +// line internal/php7/php7.y:3588 { - yyVAL.node = &ast.ExprYield{ast.Node{}, nil, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + YieldTkn: yyDollar[1].token, + Value: yyDollar[2].node, + } } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3606 +// line internal/php7/php7.y:3598 { - yyVAL.node = &ast.ExprYield{ast.Node{}, yyDollar[2].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + }, + YieldTkn: yyDollar[1].token, + Key: yyDollar[2].node, + DoubleArrowTkn: yyDollar[3].token, + Value: yyDollar[4].node, + } } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3617 +// line internal/php7/php7.y:3610 { - yyVAL.node = &ast.ExprYieldFrom{ast.Node{}, yyDollar[2].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) + yyVAL.node = &ast.ExprYieldFrom{ + Node: ast.Node{ + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + }, + YieldFromTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + } } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3627 +// line internal/php7/php7.y:3620 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3631 +// line internal/php7/php7.y:3624 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6229,7 +6222,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3647 +// line internal/php7/php7.y:3640 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6250,7 +6243,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3666 +// line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6269,25 +6262,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3690 +// line internal/php7/php7.y:3683 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3694 +// line internal/php7/php7.y:3687 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3701 +// line internal/php7/php7.y:3694 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3705 +// line internal/php7/php7.y:3698 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6302,7 +6295,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3721 +// line internal/php7/php7.y:3714 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6311,7 +6304,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3728 +// line internal/php7/php7.y:3721 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6319,7 +6312,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3737 +// line internal/php7/php7.y:3730 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6336,7 +6329,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3752 +// line internal/php7/php7.y:3745 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6359,7 +6352,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3776 +// line internal/php7/php7.y:3769 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6373,7 +6366,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3788 +// line internal/php7/php7.y:3781 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6389,7 +6382,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3802 +// line internal/php7/php7.y:3795 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6405,7 +6398,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3816 +// line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6419,7 +6412,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3831 +// line internal/php7/php7.y:3824 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6431,31 +6424,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3841 +// line internal/php7/php7.y:3834 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3848 +// line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3852 +// line internal/php7/php7.y:3845 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3859 +// line internal/php7/php7.y:3852 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3863 +// line internal/php7/php7.y:3856 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6472,13 +6465,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3881 +// line internal/php7/php7.y:3874 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 +// line internal/php7/php7.y:3878 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6492,25 +6485,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3897 +// line internal/php7/php7.y:3890 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3904 +// line internal/php7/php7.y:3897 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3908 +// line internal/php7/php7.y:3901 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3915 +// line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6525,7 +6518,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3928 +// line internal/php7/php7.y:3921 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6539,7 +6532,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3940 +// line internal/php7/php7.y:3933 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6551,7 +6544,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3953 +// line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6563,7 +6556,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3963 +// line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6575,7 +6568,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3973 +// line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6587,7 +6580,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3983 +// line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6599,7 +6592,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3993 +// line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6611,7 +6604,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4003 +// line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6623,7 +6616,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4013 +// line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6635,7 +6628,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4023 +// line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6647,7 +6640,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4033 +// line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6659,7 +6652,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4043 +// line internal/php7/php7.y:4036 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6671,7 +6664,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4053 +// line internal/php7/php7.y:4046 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6692,7 +6685,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4072 +// line internal/php7/php7.y:4065 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6704,7 +6697,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4082 +// line internal/php7/php7.y:4075 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6717,7 +6710,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4093 +// line internal/php7/php7.y:4086 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6730,19 +6723,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4104 +// line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4108 +// line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4115 +// line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6753,7 +6746,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4124 +// line internal/php7/php7.y:4117 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6772,7 +6765,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4141 +// line internal/php7/php7.y:4134 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6791,43 +6784,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4161 +// line internal/php7/php7.y:4154 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4165 +// line internal/php7/php7.y:4158 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4172 +// line internal/php7/php7.y:4165 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4176 +// line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4183 +// line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4190 +// line internal/php7/php7.y:4183 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4194 +// line internal/php7/php7.y:4187 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6844,19 +6837,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4209 +// line internal/php7/php7.y:4202 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4216 +// line internal/php7/php7.y:4209 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4220 +// line internal/php7/php7.y:4213 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6873,19 +6866,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4235 +// line internal/php7/php7.y:4228 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4242 +// line internal/php7/php7.y:4235 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4246 +// line internal/php7/php7.y:4239 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6899,7 +6892,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4258 +// line internal/php7/php7.y:4251 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6913,7 +6906,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4270 +// line internal/php7/php7.y:4263 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6927,7 +6920,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4282 +// line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6943,25 +6936,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4296 +// line internal/php7/php7.y:4289 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4303 +// line internal/php7/php7.y:4296 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4307 +// line internal/php7/php7.y:4300 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4311 +// line internal/php7/php7.y:4304 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6974,7 +6967,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4325 +// line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6991,7 +6984,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4340 +// line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7010,7 +7003,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4357 +// line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7022,7 +7015,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4370 +// line internal/php7/php7.y:4363 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7035,7 +7028,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4381 +// line internal/php7/php7.y:4374 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7048,13 +7041,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4395 +// line internal/php7/php7.y:4388 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4399 +// line internal/php7/php7.y:4392 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7068,7 +7061,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4411 +// line internal/php7/php7.y:4404 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7082,7 +7075,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4423 +// line internal/php7/php7.y:4416 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7095,7 +7088,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4434 +// line internal/php7/php7.y:4427 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7108,7 +7101,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4438 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7121,7 +7114,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4459 +// line internal/php7/php7.y:4452 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7133,7 +7126,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4469 +// line internal/php7/php7.y:4462 { yyVAL.node = yyDollar[2].node @@ -7143,13 +7136,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4477 +// line internal/php7/php7.y:4470 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4484 +// line internal/php7/php7.y:4477 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7161,7 +7154,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4494 +// line internal/php7/php7.y:4487 { yyVAL.node = yyDollar[2].node @@ -7171,13 +7164,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4502 +// line internal/php7/php7.y:4495 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4509 +// line internal/php7/php7.y:4502 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7190,19 +7183,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4523 +// line internal/php7/php7.y:4516 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4527 +// line internal/php7/php7.y:4520 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4534 +// line internal/php7/php7.y:4527 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7211,7 +7204,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4541 +// line internal/php7/php7.y:4534 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7219,7 +7212,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4550 +// line internal/php7/php7.y:4543 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7232,7 +7225,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4561 +// line internal/php7/php7.y:4554 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7243,7 +7236,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4570 +// line internal/php7/php7.y:4563 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7262,7 +7255,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4587 +// line internal/php7/php7.y:4580 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7279,7 +7272,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4602 +// line internal/php7/php7.y:4595 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7291,7 +7284,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4612 +// line internal/php7/php7.y:4605 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7313,7 +7306,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4632 +// line internal/php7/php7.y:4625 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7333,13 +7326,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4653 +// line internal/php7/php7.y:4646 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4657 +// line internal/php7/php7.y:4650 { yyVAL.list = append( yyDollar[1].list, @@ -7354,13 +7347,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4670 +// line internal/php7/php7.y:4663 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4674 +// line internal/php7/php7.y:4667 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7375,7 +7368,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4690 +// line internal/php7/php7.y:4683 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7392,7 +7385,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4705 +// line internal/php7/php7.y:4698 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7417,7 +7410,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4728 +// line internal/php7/php7.y:4721 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7447,7 +7440,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4756 +// line internal/php7/php7.y:4749 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7465,7 +7458,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4772 +// line internal/php7/php7.y:4765 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7489,7 +7482,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4794 +// line internal/php7/php7.y:4787 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7521,7 +7514,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4824 +// line internal/php7/php7.y:4817 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7534,7 +7527,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4838 +// line internal/php7/php7.y:4831 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7546,7 +7539,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4848 +// line internal/php7/php7.y:4841 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7569,7 +7562,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4869 +// line internal/php7/php7.y:4862 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7602,7 +7595,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4900 +// line internal/php7/php7.y:4893 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7619,7 +7612,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4918 +// line internal/php7/php7.y:4911 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7638,7 +7631,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4935 +// line internal/php7/php7.y:4928 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7652,7 +7645,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4947 +// line internal/php7/php7.y:4940 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7664,7 +7657,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4957 +// line internal/php7/php7.y:4950 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7676,7 +7669,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4967 +// line internal/php7/php7.y:4960 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7690,7 +7683,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4979 +// line internal/php7/php7.y:4972 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7702,7 +7695,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4989 +// line internal/php7/php7.y:4982 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7714,7 +7707,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5002 +// line internal/php7/php7.y:4995 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7722,7 +7715,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5008 +// line internal/php7/php7.y:5001 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7731,7 +7724,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5018 +// line internal/php7/php7.y:5011 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index bdd808a..7390dd6 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3455,80 +3455,73 @@ expr_without_variable: } | T_INT_CAST expr { - $$ = &ast.ExprCastInt{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastInt{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_DOUBLE_CAST expr { - $$ = &ast.ExprCastDouble{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastDouble{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_STRING_CAST expr { - $$ = &ast.ExprCastString{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastString{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_ARRAY_CAST expr { - $$ = &ast.ExprCastArray{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastArray{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_OBJECT_CAST expr { - $$ = &ast.ExprCastObject{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastObject{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_BOOL_CAST expr { - $$ = &ast.ExprCastBool{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastBool{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_UNSET_CAST expr { - $$ = &ast.ExprCastUnset{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setToken($$, token.Cast, $1.SkippedTokens) + $$ = &ast.ExprCastUnset{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + CastTkn: $1, + Expr: $2, + } } | T_EXIT exit_expr { @@ -3584,44 +3577,44 @@ expr_without_variable: } | T_YIELD { - $$ = &ast.ExprYield{ast.Node{}, nil, nil} - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + YieldTkn: $1, + } } | T_YIELD expr { - $$ = &ast.ExprYield{ast.Node{}, nil, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + YieldTkn: $1, + Value: $2, + } } | T_YIELD expr T_DOUBLE_ARROW expr { - $$ = &ast.ExprYield{ast.Node{}, $2, $4} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $4) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Expr, $3.SkippedTokens) + $$ = &ast.ExprYield{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $4), + }, + YieldTkn: $1, + Key: $2, + DoubleArrowTkn: $3, + Value: $4, + } } | T_YIELD_FROM expr { - $$ = &ast.ExprYieldFrom{ast.Node{}, $2} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $2) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) + $$ = &ast.ExprYieldFrom{ + Node: ast.Node{ + Position: position.NewTokenNodePosition($1, $2), + }, + YieldFromTkn: $1, + Expr: $2, + } } | inline_function { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 4bd9737..a4599b4 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1428,8 +1428,10 @@ func (n *ExprVariable) Accept(v NodeVisitor) { // ExprYield node type ExprYield struct { Node - Key Vertex - Value Vertex + YieldTkn *token.Token + Key Vertex + DoubleArrowTkn *token.Token + Value Vertex } func (n *ExprYield) Accept(v NodeVisitor) { @@ -1439,7 +1441,8 @@ func (n *ExprYield) Accept(v NodeVisitor) { // ExprYieldFrom node type ExprYieldFrom struct { Node - Expr Vertex + YieldFromTkn *token.Token + Expr Vertex } func (n *ExprYieldFrom) Accept(v NodeVisitor) { @@ -1449,7 +1452,8 @@ func (n *ExprYieldFrom) Accept(v NodeVisitor) { // ExprCastArray node type ExprCastArray struct { Node - Expr Vertex + CastTkn *token.Token + Expr Vertex } func (n *ExprCastArray) Accept(v NodeVisitor) { @@ -1459,7 +1463,8 @@ func (n *ExprCastArray) Accept(v NodeVisitor) { // ExprCastBool node type ExprCastBool struct { Node - Expr Vertex + CastTkn *token.Token + Expr Vertex } func (n *ExprCastBool) Accept(v NodeVisitor) { @@ -1469,7 +1474,8 @@ func (n *ExprCastBool) Accept(v NodeVisitor) { // ExprCastDouble node type ExprCastDouble struct { Node - Expr Vertex + CastTkn *token.Token + Expr Vertex } func (n *ExprCastDouble) Accept(v NodeVisitor) { @@ -1479,7 +1485,8 @@ func (n *ExprCastDouble) Accept(v NodeVisitor) { // ExprCastInt node type ExprCastInt struct { Node - Expr Vertex + CastTkn *token.Token + Expr Vertex } func (n *ExprCastInt) Accept(v NodeVisitor) { @@ -1489,7 +1496,8 @@ func (n *ExprCastInt) Accept(v NodeVisitor) { // ExprCastObject node type ExprCastObject struct { Node - Expr Vertex + CastTkn *token.Token + Expr Vertex } func (n *ExprCastObject) Accept(v NodeVisitor) { @@ -1499,7 +1507,8 @@ func (n *ExprCastObject) Accept(v NodeVisitor) { // ExprCastString node type ExprCastString struct { Node - Expr Vertex + CastTkn *token.Token + Expr Vertex } func (n *ExprCastString) Accept(v NodeVisitor) { @@ -1509,7 +1518,8 @@ func (n *ExprCastString) Accept(v NodeVisitor) { // ExprCastUnset node type ExprCastUnset struct { Node - Expr Vertex + CastTkn *token.Token + Expr Vertex } func (n *ExprCastUnset) Accept(v NodeVisitor) { From d19b3f609ed8f1a8c6b81a9cca1e51424fba4c75 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 10:40:48 +0200 Subject: [PATCH 093/140] [refactoring] update ast structure of "Assign" and "Binary" nodes --- internal/php5/php5.go | 1663 ++++++++++++++++++++------------------- internal/php5/php5.y | 1085 +++++++++++++------------- internal/php7/php7.go | 1714 ++++++++++++++++++++--------------------- internal/php7/php7.y | 728 ++++++++--------- pkg/ast/node.go | 103 ++- 5 files changed, 2653 insertions(+), 2640 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 8664f6e..58de3b2 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -342,7 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6598 +// line internal/php5/php5.y:6583 // line yacctab:1 var yyExca = [...]int{ @@ -5358,65 +5358,54 @@ yydefault: yyDollar = yyS[yypt-6 : yypt+1] // line internal/php5/php5.y:3131 { - pairList := yyDollar[3].node.(*ast.ParserSeparatedList) - fistPair := pairList.Items[0].(*ast.ExprArrayItem) - - if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { - pairList.Items = nil - } - - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), }, - ListTkn: yyDollar[1].token, - OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[4].token, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + }, + EqualTkn: yyDollar[5].token, + Expr: yyDollar[6].node, } - yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} - - // save position - listNode.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, yyDollar[4].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3162 +// line internal/php5/php5.y:3151 { - yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3173 +// line internal/php5/php5.y:3162 { - yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + Expr: yyDollar[4].node, + } } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3185 +// line internal/php5/php5.y:3174 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5440,25 +5429,19 @@ yydefault: } } - yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, _new} - - // save position - if yyDollar[6].node != nil { - _new.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) - } else { - _new.GetNode().Position = position.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node) + yyVAL.node = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, _new), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + Expr: _new, } - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, _new) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, yyDollar[4].token.SkippedTokens) } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3225 +// line internal/php5/php5.y:3208 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5470,162 +5453,163 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3235 +// line internal/php5/php5.y:3218 { - yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3245 +// line internal/php5/php5.y:3229 { - yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3256 +// line internal/php5/php5.y:3240 { - yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3267 +// line internal/php5/php5.y:3251 { - yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3278 +// line internal/php5/php5.y:3262 { - yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3289 +// line internal/php5/php5.y:3273 { - yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3300 +// line internal/php5/php5.y:3284 { - yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3311 +// line internal/php5/php5.y:3295 { - yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3322 +// line internal/php5/php5.y:3306 { - yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3333 +// line internal/php5/php5.y:3317 { - yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3344 +// line internal/php5/php5.y:3328 { - yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3355 +// line internal/php5/php5.y:3339 { - yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3366 +// line internal/php5/php5.y:3350 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5637,7 +5621,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3376 +// line internal/php5/php5.y:3360 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5649,7 +5633,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3386 +// line internal/php5/php5.y:3370 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5661,7 +5645,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3396 +// line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5673,227 +5657,228 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3406 +// line internal/php5/php5.y:3390 { - yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3417 +// line internal/php5/php5.y:3401 { - yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3428 +// line internal/php5/php5.y:3412 { - yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3439 +// line internal/php5/php5.y:3423 { - yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3450 +// line internal/php5/php5.y:3434 { - yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3461 +// line internal/php5/php5.y:3445 { - yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3472 +// line internal/php5/php5.y:3456 { - yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3483 +// line internal/php5/php5.y:3467 { - yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3494 +// line internal/php5/php5.y:3478 { - yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3504 +// line internal/php5/php5.y:3489 { - yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3515 +// line internal/php5/php5.y:3500 { - yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3526 +// line internal/php5/php5.y:3511 { - yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3537 +// line internal/php5/php5.y:3522 { - yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3548 +// line internal/php5/php5.y:3533 { - yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3559 +// line internal/php5/php5.y:3544 { - yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3570 +// line internal/php5/php5.y:3555 { - yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3581 +// line internal/php5/php5.y:3566 { - yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3592 +// line internal/php5/php5.y:3577 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5905,7 +5890,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3602 +// line internal/php5/php5.y:3587 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5917,7 +5902,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3612 +// line internal/php5/php5.y:3597 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5929,7 +5914,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3622 +// line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5941,112 +5926,112 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3632 +// line internal/php5/php5.y:3617 { - yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3643 +// line internal/php5/php5.y:3628 { - yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3654 +// line internal/php5/php5.y:3639 { - yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3665 +// line internal/php5/php5.y:3650 { - yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3677 +// line internal/php5/php5.y:3662 { - yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3688 +// line internal/php5/php5.y:3673 { - yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3699 +// line internal/php5/php5.y:3684 { - yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3710 +// line internal/php5/php5.y:3695 { - yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3721 +// line internal/php5/php5.y:3706 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6059,19 +6044,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3732 +// line internal/php5/php5.y:3717 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3736 +// line internal/php5/php5.y:3721 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3740 +// line internal/php5/php5.y:3725 { yyVAL.node = yyDollar[2].node @@ -6105,7 +6090,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3772 +// line internal/php5/php5.y:3757 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6120,7 +6105,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3785 +// line internal/php5/php5.y:3770 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6134,13 +6119,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3797 +// line internal/php5/php5.y:3782 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3801 +// line internal/php5/php5.y:3786 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6152,7 +6137,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3811 +// line internal/php5/php5.y:3796 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6164,7 +6149,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3821 +// line internal/php5/php5.y:3806 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6176,7 +6161,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3831 +// line internal/php5/php5.y:3816 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6188,7 +6173,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3841 +// line internal/php5/php5.y:3826 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6200,7 +6185,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3851 +// line internal/php5/php5.y:3836 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6212,7 +6197,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3861 +// line internal/php5/php5.y:3846 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6224,7 +6209,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3871 +// line internal/php5/php5.y:3856 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6243,7 +6228,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3888 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6255,25 +6240,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3898 +// line internal/php5/php5.y:3883 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3902 +// line internal/php5/php5.y:3887 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3906 +// line internal/php5/php5.y:3891 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3910 +// line internal/php5/php5.y:3895 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6286,7 +6271,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3921 +// line internal/php5/php5.y:3906 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6298,7 +6283,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3931 +// line internal/php5/php5.y:3916 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6309,7 +6294,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3940 +// line internal/php5/php5.y:3925 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6328,7 +6313,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3957 +// line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6348,7 +6333,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3978 +// line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6360,7 +6345,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3988 +// line internal/php5/php5.y:3973 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6372,7 +6357,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3998 +// line internal/php5/php5.y:3983 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6386,7 +6371,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4010 +// line internal/php5/php5.y:3995 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6400,7 +6385,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4025 +// line internal/php5/php5.y:4010 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6414,7 +6399,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4037 +// line internal/php5/php5.y:4022 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6428,7 +6413,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4049 +// line internal/php5/php5.y:4034 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6448,7 +6433,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4067 +// line internal/php5/php5.y:4052 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6462,7 +6447,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4082 +// line internal/php5/php5.y:4067 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6477,7 +6462,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4095 +// line internal/php5/php5.y:4080 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6491,19 +6476,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4110 +// line internal/php5/php5.y:4095 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4117 +// line internal/php5/php5.y:4102 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4121 +// line internal/php5/php5.y:4106 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6518,7 +6503,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4137 +// line internal/php5/php5.y:4122 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6540,7 +6525,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4157 +// line internal/php5/php5.y:4142 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6568,7 +6553,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4183 +// line internal/php5/php5.y:4168 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6589,7 +6574,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4202 +// line internal/php5/php5.y:4187 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6616,7 +6601,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4230 +// line internal/php5/php5.y:4215 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6635,7 +6620,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4247 +// line internal/php5/php5.y:4232 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6656,7 +6641,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4266 +// line internal/php5/php5.y:4251 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6676,7 +6661,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4284 +// line internal/php5/php5.y:4269 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6692,7 +6677,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4298 +// line internal/php5/php5.y:4283 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6708,7 +6693,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4312 +// line internal/php5/php5.y:4297 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6724,7 +6709,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4326 +// line internal/php5/php5.y:4311 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6740,7 +6725,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4340 +// line internal/php5/php5.y:4325 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6754,7 +6739,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4355 +// line internal/php5/php5.y:4340 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6766,7 +6751,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4365 +// line internal/php5/php5.y:4350 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6777,7 +6762,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4374 +// line internal/php5/php5.y:4359 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6790,7 +6775,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4385 +// line internal/php5/php5.y:4370 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6802,7 +6787,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4398 +// line internal/php5/php5.y:4383 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6813,7 +6798,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4407 +// line internal/php5/php5.y:4392 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6826,7 +6811,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4418 +// line internal/php5/php5.y:4403 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6838,19 +6823,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4431 +// line internal/php5/php5.y:4416 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4435 +// line internal/php5/php5.y:4420 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4442 +// line internal/php5/php5.y:4427 { yyVAL.node = yyDollar[1].node @@ -6891,25 +6876,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4466 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4489 +// line internal/php5/php5.y:4474 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4493 +// line internal/php5/php5.y:4478 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4486 { yyVAL.list = yyDollar[2].list @@ -6918,13 +6903,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4511 +// line internal/php5/php5.y:4496 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4515 +// line internal/php5/php5.y:4500 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6940,19 +6925,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4529 +// line internal/php5/php5.y:4514 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4536 +// line internal/php5/php5.y:4521 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4525 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6966,25 +6951,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4552 +// line internal/php5/php5.y:4537 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4559 +// line internal/php5/php5.y:4544 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4563 +// line internal/php5/php5.y:4548 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4570 +// line internal/php5/php5.y:4555 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6996,7 +6981,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4580 +// line internal/php5/php5.y:4565 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -7008,7 +6993,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4590 +// line internal/php5/php5.y:4575 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7020,7 +7005,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4600 +// line internal/php5/php5.y:4585 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7032,7 +7017,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4610 +// line internal/php5/php5.y:4595 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7044,7 +7029,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4620 +// line internal/php5/php5.y:4605 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7056,7 +7041,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4630 +// line internal/php5/php5.y:4615 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7068,7 +7053,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4640 +// line internal/php5/php5.y:4625 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7080,7 +7065,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4650 +// line internal/php5/php5.y:4635 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7092,7 +7077,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4660 +// line internal/php5/php5.y:4645 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7104,7 +7089,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4670 +// line internal/php5/php5.y:4655 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7125,7 +7110,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4689 +// line internal/php5/php5.y:4674 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7137,7 +7122,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4702 +// line internal/php5/php5.y:4687 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7156,25 +7141,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4722 +// line internal/php5/php5.y:4707 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4729 +// line internal/php5/php5.y:4714 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4733 +// line internal/php5/php5.y:4718 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4737 +// line internal/php5/php5.y:4722 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7190,7 +7175,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4751 +// line internal/php5/php5.y:4736 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7208,7 +7193,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4767 +// line internal/php5/php5.y:4752 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7225,7 +7210,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4782 +// line internal/php5/php5.y:4767 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7240,7 +7225,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4780 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7254,13 +7239,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4792 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4811 +// line internal/php5/php5.y:4796 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7272,13 +7257,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4821 +// line internal/php5/php5.y:4806 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4828 +// line internal/php5/php5.y:4813 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7292,85 +7277,85 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4840 +// line internal/php5/php5.y:4825 { - yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4851 +// line internal/php5/php5.y:4836 { - yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4862 +// line internal/php5/php5.y:4847 { - yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4873 +// line internal/php5/php5.y:4858 { - yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4884 +// line internal/php5/php5.y:4869 { - yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4895 +// line internal/php5/php5.y:4880 { - yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4906 +// line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7382,7 +7367,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4916 +// line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7394,255 +7379,255 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4926 +// line internal/php5/php5.y:4911 { - yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4937 +// line internal/php5/php5.y:4922 { - yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4948 +// line internal/php5/php5.y:4933 { - yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4959 +// line internal/php5/php5.y:4944 { - yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4970 +// line internal/php5/php5.y:4955 { - yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4981 +// line internal/php5/php5.y:4966 { - yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4992 +// line internal/php5/php5.y:4977 { - yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5003 +// line internal/php5/php5.y:4988 { - yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5014 +// line internal/php5/php5.y:4999 { - yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5025 +// line internal/php5/php5.y:5010 { - yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5036 +// line internal/php5/php5.y:5021 { - yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5047 +// line internal/php5/php5.y:5032 { - yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5058 +// line internal/php5/php5.y:5043 { - yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5069 +// line internal/php5/php5.y:5054 { - yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5080 +// line internal/php5/php5.y:5065 { - yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5092 +// line internal/php5/php5.y:5077 { - yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5103 +// line internal/php5/php5.y:5088 { - yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5114 +// line internal/php5/php5.y:5099 { - yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5125 +// line internal/php5/php5.y:5110 { - yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5136 +// line internal/php5/php5.y:5121 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7656,7 +7641,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5148 +// line internal/php5/php5.y:5133 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7671,7 +7656,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5161 +// line internal/php5/php5.y:5146 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7683,7 +7668,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5171 +// line internal/php5/php5.y:5156 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7695,7 +7680,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5181 +// line internal/php5/php5.y:5166 { yyVAL.node = yyDollar[2].node @@ -7705,13 +7690,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5192 +// line internal/php5/php5.y:5177 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5196 +// line internal/php5/php5.y:5181 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7727,7 +7712,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5210 +// line internal/php5/php5.y:5195 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7745,7 +7730,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5226 +// line internal/php5/php5.y:5211 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7762,7 +7747,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5244 +// line internal/php5/php5.y:5229 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7779,25 +7764,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5259 +// line internal/php5/php5.y:5244 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5263 +// line internal/php5/php5.y:5248 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5267 +// line internal/php5/php5.y:5252 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5271 +// line internal/php5/php5.y:5256 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7810,7 +7795,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5282 +// line internal/php5/php5.y:5267 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7823,7 +7808,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5293 +// line internal/php5/php5.y:5278 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7835,13 +7820,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5306 +// line internal/php5/php5.y:5291 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5310 +// line internal/php5/php5.y:5295 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7852,19 +7837,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5322 +// line internal/php5/php5.y:5307 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5326 +// line internal/php5/php5.y:5311 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5333 +// line internal/php5/php5.y:5318 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7882,7 +7867,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5349 +// line internal/php5/php5.y:5334 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7898,7 +7883,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5363 +// line internal/php5/php5.y:5348 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7915,7 +7900,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5378 +// line internal/php5/php5.y:5363 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7930,19 +7915,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5394 +// line internal/php5/php5.y:5379 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5398 +// line internal/php5/php5.y:5383 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5405 +// line internal/php5/php5.y:5390 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7959,7 +7944,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5420 +// line internal/php5/php5.y:5405 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7976,25 +7961,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5439 +// line internal/php5/php5.y:5424 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5447 +// line internal/php5/php5.y:5432 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5454 +// line internal/php5/php5.y:5439 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5461 +// line internal/php5/php5.y:5446 { yyVAL.node = yyDollar[1].node @@ -8072,25 +8057,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5537 +// line internal/php5/php5.y:5522 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5544 +// line internal/php5/php5.y:5529 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5548 +// line internal/php5/php5.y:5533 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5556 +// line internal/php5/php5.y:5541 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8121,7 +8106,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5587 +// line internal/php5/php5.y:5572 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8137,7 +8122,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5601 +// line internal/php5/php5.y:5586 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8153,7 +8138,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5618 +// line internal/php5/php5.y:5603 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8166,31 +8151,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5632 +// line internal/php5/php5.y:5617 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5636 +// line internal/php5/php5.y:5621 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5640 +// line internal/php5/php5.y:5625 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5647 +// line internal/php5/php5.y:5632 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5651 +// line internal/php5/php5.y:5636 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8202,7 +8187,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5649 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8215,7 +8200,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5675 +// line internal/php5/php5.y:5660 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8228,13 +8213,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5689 +// line internal/php5/php5.y:5674 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5696 +// line internal/php5/php5.y:5681 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8248,7 +8233,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5708 +// line internal/php5/php5.y:5693 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8262,31 +8247,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5723 +// line internal/php5/php5.y:5708 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5727 +// line internal/php5/php5.y:5712 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5731 +// line internal/php5/php5.y:5716 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5739 +// line internal/php5/php5.y:5724 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5743 +// line internal/php5/php5.y:5728 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8298,13 +8283,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5753 +// line internal/php5/php5.y:5738 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5760 +// line internal/php5/php5.y:5745 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8318,7 +8303,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5757 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8332,13 +8317,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5784 +// line internal/php5/php5.y:5769 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5792 +// line internal/php5/php5.y:5777 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8355,7 +8340,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5807 +// line internal/php5/php5.y:5792 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8374,25 +8359,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5827 +// line internal/php5/php5.y:5812 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5831 +// line internal/php5/php5.y:5816 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5839 +// line internal/php5/php5.y:5824 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5843 +// line internal/php5/php5.y:5828 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8405,7 +8390,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5857 +// line internal/php5/php5.y:5842 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8421,7 +8406,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5871 +// line internal/php5/php5.y:5856 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8437,7 +8422,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5885 +// line internal/php5/php5.y:5870 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8450,7 +8435,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5899 +// line internal/php5/php5.y:5884 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8462,7 +8447,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5909 +// line internal/php5/php5.y:5894 { yyVAL.node = yyDollar[2].node @@ -8475,7 +8460,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5923 +// line internal/php5/php5.y:5908 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8488,7 +8473,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5934 +// line internal/php5/php5.y:5919 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8499,7 +8484,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5946 +// line internal/php5/php5.y:5931 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8508,7 +8493,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5953 +// line internal/php5/php5.y:5938 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8516,7 +8501,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5963 +// line internal/php5/php5.y:5948 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8527,7 +8512,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5972 +// line internal/php5/php5.y:5957 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8554,19 +8539,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5997 +// line internal/php5/php5.y:5982 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:6005 +// line internal/php5/php5.y:5990 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6009 +// line internal/php5/php5.y:5994 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8577,7 +8562,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6021 +// line internal/php5/php5.y:6006 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8595,7 +8580,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6037 +// line internal/php5/php5.y:6022 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8611,7 +8596,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6051 +// line internal/php5/php5.y:6036 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8628,7 +8613,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6066 +// line internal/php5/php5.y:6051 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8643,7 +8628,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6079 +// line internal/php5/php5.y:6064 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8667,7 +8652,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6101 +// line internal/php5/php5.y:6086 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8689,7 +8674,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6121 +// line internal/php5/php5.y:6106 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8712,7 +8697,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6142 +// line internal/php5/php5.y:6127 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8733,13 +8718,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6164 +// line internal/php5/php5.y:6149 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6168 +// line internal/php5/php5.y:6153 { yyVAL.list = append( yyDollar[1].list, @@ -8754,13 +8739,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6181 +// line internal/php5/php5.y:6166 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6185 +// line internal/php5/php5.y:6170 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8775,7 +8760,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6201 +// line internal/php5/php5.y:6186 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8792,7 +8777,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6216 +// line internal/php5/php5.y:6201 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8817,7 +8802,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6239 +// line internal/php5/php5.y:6224 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8847,7 +8832,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6267 +// line internal/php5/php5.y:6252 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8865,7 +8850,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6283 +// line internal/php5/php5.y:6268 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8889,7 +8874,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6305 +// line internal/php5/php5.y:6290 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8921,7 +8906,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6335 +// line internal/php5/php5.y:6320 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8934,7 +8919,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6349 +// line internal/php5/php5.y:6334 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8946,7 +8931,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6359 +// line internal/php5/php5.y:6344 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8975,7 +8960,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6386 +// line internal/php5/php5.y:6371 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8992,7 +8977,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6404 +// line internal/php5/php5.y:6389 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -9007,7 +8992,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6417 +// line internal/php5/php5.y:6402 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9021,7 +9006,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6429 +// line internal/php5/php5.y:6414 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9035,7 +9020,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6441 +// line internal/php5/php5.y:6426 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9047,7 +9032,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6451 +// line internal/php5/php5.y:6436 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9059,7 +9044,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6461 +// line internal/php5/php5.y:6446 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9073,7 +9058,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6473 +// line internal/php5/php5.y:6458 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9085,7 +9070,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6483 +// line internal/php5/php5.y:6468 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9097,7 +9082,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6496 +// line internal/php5/php5.y:6481 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9105,7 +9090,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6502 +// line internal/php5/php5.y:6487 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9114,19 +9099,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6512 +// line internal/php5/php5.y:6497 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6516 +// line internal/php5/php5.y:6501 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6523 +// line internal/php5/php5.y:6508 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9145,7 +9130,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6540 +// line internal/php5/php5.y:6525 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9164,7 +9149,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6560 +// line internal/php5/php5.y:6545 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9183,7 +9168,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6580 +// line internal/php5/php5.y:6565 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 7ff468a..3f5ef26 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3129,57 +3129,46 @@ new_expr: expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { - pairList := $3.(*ast.ParserSeparatedList) - fistPair := pairList.Items[0].(*ast.ExprArrayItem) - - if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { - pairList.Items = nil - } - - listNode := &ast.ExprList{ + $$ = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), + Position: position.NewTokenNodePosition($1, $6), }, - ListTkn: $1, - OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $4, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + }, + EqualTkn: $5, + Expr: $6, } - $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} - - // save position - listNode.GetNode().Position = position.NewTokensPosition($1, $4) - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.List, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating(listNode, token.ArrayPairList, $4.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) } | variable '=' expr { - $$ = &ast.ExprAssign{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable '=' '&' variable { - $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) + $$ = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Var: $1, + EqualTkn: $2, + AmpersandTkn: $3, + Expr: $4, + } } | variable '=' '&' T_NEW class_name_reference ctor_arguments { @@ -3205,21 +3194,15 @@ expr_without_variable: } } - $$ = &ast.ExprAssignReference{ast.Node{}, $1, _new} - - // save position - if $6 != nil { - _new.GetNode().Position = position.NewTokenNodePosition($4, $6) - } else { - _new.GetNode().Position = position.NewTokenNodePosition($4, $5) + $$ = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, _new), + }, + Var: $1, + EqualTkn: $2, + AmpersandTkn: $3, + Expr: _new, } - $$.GetNode().Position = position.NewNodesPosition($1, _new) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) - yylex.(*Parser).setFreeFloating(_new, token.Start, $4.SkippedTokens) } | T_CLONE expr { @@ -3233,134 +3216,135 @@ expr_without_variable: } | variable T_PLUS_EQUAL expr { - $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MINUS_EQUAL expr { - $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MUL_EQUAL expr { - $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_POW_EQUAL expr { - $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_DIV_EQUAL expr { - $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_CONCAT_EQUAL expr { - $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MOD_EQUAL expr { - $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_AND_EQUAL expr { - $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_OR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_XOR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SL_EQUAL expr { - $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SR_EQUAL expr { - $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | rw_variable T_INC { @@ -3404,189 +3388,190 @@ expr_without_variable: } | expr T_BOOLEAN_OR expr { - $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_BOOLEAN_AND expr { - $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_OR expr { - $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_AND expr { - $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_XOR expr { - $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '|' expr { - $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '&' expr { - $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '^' expr { - $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '.' expr { - $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '+' expr { - $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '-' expr { - $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '*' expr { - $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_POW expr { - $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '/' expr { - $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '%' expr { - $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SL expr { - $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SR expr { - $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | '+' expr %prec T_INC { @@ -3630,92 +3615,92 @@ expr_without_variable: } | expr T_IS_IDENTICAL expr { - $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_IDENTICAL expr { - $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_EQUAL expr { - $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_EQUAL expr { - $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | expr '<' expr { - $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_SMALLER_OR_EQUAL expr { - $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '>' expr { - $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_GREATER_OR_EQUAL expr { - $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_INSTANCEOF class_name_reference { @@ -4838,69 +4823,69 @@ static_operation: } | static_scalar_value '+' static_scalar_value { - $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '-' static_scalar_value { - $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '*' static_scalar_value { - $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_POW static_scalar_value { - $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '/' static_scalar_value { - $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '%' static_scalar_value { - $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | '!' static_scalar_value { @@ -4924,213 +4909,213 @@ static_operation: } | static_scalar_value '|' static_scalar_value { - $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '&' static_scalar_value { - $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '^' static_scalar_value { - $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_SL static_scalar_value { - $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_SR static_scalar_value { - $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '.' static_scalar_value { - $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_LOGICAL_XOR static_scalar_value { - $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_LOGICAL_AND static_scalar_value { - $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_LOGICAL_OR static_scalar_value { - $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_BOOLEAN_AND static_scalar_value { - $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_BOOLEAN_OR static_scalar_value { - $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_IDENTICAL static_scalar_value { - $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { - $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_EQUAL static_scalar_value { - $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { - $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | static_scalar_value '<' static_scalar_value { - $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '>' static_scalar_value { - $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { - $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { - $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | static_scalar_value '?' ':' static_scalar_value { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 8788ab2..3704052 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:290 + // line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} @@ -2121,469 +2121,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:312 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:320 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:324 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:331 + // line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2596,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:342 + // line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:349 + // line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2616,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:361 + // line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2629,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:375 + // line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:384 + // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2653,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:395 + // line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2665,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:408 + // line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:413 + // line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:417 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:421 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:425 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:429 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:433 + // line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2716,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:445 + // line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2734,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:461 + // line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2754,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:479 + // line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2768,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:491 + // line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2780,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:501 + // line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2793,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:512 + // line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2806,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:523 + // line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2820,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:535 + // line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2834,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:550 + // line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2846,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:560 + // line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2858,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:573 + // line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2882,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:595 + // line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2905,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:619 + // line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2927,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:639 + // line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2950,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:663 + // line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:667 + // line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:674 + // line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2970,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:680 + // line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:687 + // line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2984,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:693 + // line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:700 + // line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2998,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:706 + // line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:713 + // line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:717 + // line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3020,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:728 + // line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3036,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:742 + // line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3060,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:767 + // line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:771 + // line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3076,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:782 + // line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3085,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:789 + // line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3093,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:798 + // line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3106,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:816 + // line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:821 + // line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:825 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:829 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:833 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:837 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:841 + // line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3163,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:855 + // line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3176,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:866 + // line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:874 + // line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3200,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:884 + // line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3217,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:899 + // line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3233,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:913 + // line internal/php7/php7.y:913 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3245,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:923 + // line internal/php7/php7.y:923 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3258,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:934 + // line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3271,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:945 + // line internal/php7/php7.y:945 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3284,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:956 + // line internal/php7/php7.y:956 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3294,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:964 + // line internal/php7/php7.y:964 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3304,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:972 + // line internal/php7/php7.y:972 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3314,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:980 + // line internal/php7/php7.y:980 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3326,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:990 + // line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3338,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1000 + // line internal/php7/php7.y:1000 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3351,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1011 + // line internal/php7/php7.y:1011 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3365,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1023 + // line internal/php7/php7.y:1023 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3381,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1037 + // line internal/php7/php7.y:1037 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3394,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1048 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3405,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1057 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3424,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1074 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3437,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1085 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3456,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1102 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,13 +3474,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1120 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1124 + // line internal/php7/php7.y:1124 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3507,7 +3507,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1151 + // line internal/php7/php7.y:1151 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3515,7 +3515,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1157 + // line internal/php7/php7.y:1157 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3524,13 +3524,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1167 + // line internal/php7/php7.y:1167 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1171 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3544,7 +3544,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1186 + // line internal/php7/php7.y:1186 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3552,7 +3552,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1192 + // line internal/php7/php7.y:1192 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3561,13 +3561,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1202 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1209 + // line internal/php7/php7.y:1209 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3594,31 +3594,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1237 + // line internal/php7/php7.y:1237 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1241 + // line internal/php7/php7.y:1241 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1248 + // line internal/php7/php7.y:1248 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1252 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1259 + // line internal/php7/php7.y:1259 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3642,7 +3642,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1281 + // line internal/php7/php7.y:1281 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3665,19 +3665,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1305 + // line internal/php7/php7.y:1305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1316 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3689,7 +3689,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1326 + // line internal/php7/php7.y:1326 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3701,7 +3701,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1339 + // line internal/php7/php7.y:1339 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3722,7 +3722,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1361 + // line internal/php7/php7.y:1361 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3744,13 +3744,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1384 + // line internal/php7/php7.y:1384 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1388 + // line internal/php7/php7.y:1388 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3762,13 +3762,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1401 + // line internal/php7/php7.y:1401 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1405 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3781,13 +3781,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1419 + // line internal/php7/php7.y:1419 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1423 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3800,13 +3800,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1437 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1441 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3818,7 +3818,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1451 + // line internal/php7/php7.y:1451 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3833,7 +3833,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1464 + // line internal/php7/php7.y:1464 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3847,7 +3847,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1479 + // line internal/php7/php7.y:1479 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3858,7 +3858,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1488 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3878,7 +3878,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1509 + // line internal/php7/php7.y:1509 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3889,7 +3889,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1518 + // line internal/php7/php7.y:1518 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3909,7 +3909,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1539 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3920,7 +3920,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1548 + // line internal/php7/php7.y:1548 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3940,7 +3940,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1569 + // line internal/php7/php7.y:1569 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3953,7 +3953,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1580 + // line internal/php7/php7.y:1580 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3967,7 +3967,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1592 + // line internal/php7/php7.y:1592 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3982,7 +3982,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1605 + // line internal/php7/php7.y:1605 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3998,13 +3998,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1622 + // line internal/php7/php7.y:1622 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1626 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4018,7 +4018,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1638 + // line internal/php7/php7.y:1638 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4031,19 +4031,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1652 + // line internal/php7/php7.y:1652 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1663 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4054,7 +4054,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1672 + // line internal/php7/php7.y:1672 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4074,7 +4074,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1693 + // line internal/php7/php7.y:1693 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4089,7 +4089,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1706 + // line internal/php7/php7.y:1706 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4108,13 +4108,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1726 + // line internal/php7/php7.y:1726 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1730 + // line internal/php7/php7.y:1730 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4130,7 +4130,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1747 + // line internal/php7/php7.y:1747 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4152,7 +4152,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1767 + // line internal/php7/php7.y:1767 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4176,7 +4176,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1792 + // line internal/php7/php7.y:1792 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4186,7 +4186,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1800 + // line internal/php7/php7.y:1800 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4210,25 +4210,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1825 + // line internal/php7/php7.y:1825 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1829 + // line internal/php7/php7.y:1829 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1836 + // line internal/php7/php7.y:1836 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1840 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4237,7 +4237,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1850 + // line internal/php7/php7.y:1850 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4292,7 +4292,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1903 + // line internal/php7/php7.y:1903 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4349,25 +4349,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1961 + // line internal/php7/php7.y:1961 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1965 + // line internal/php7/php7.y:1965 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1972 + // line internal/php7/php7.y:1972 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1976 + // line internal/php7/php7.y:1976 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4379,7 +4379,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1989 + // line internal/php7/php7.y:1989 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4391,7 +4391,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1999 + // line internal/php7/php7.y:1999 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4403,19 +4403,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2009 + // line internal/php7/php7.y:2009 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2016 + // line internal/php7/php7.y:2016 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2020 + // line internal/php7/php7.y:2020 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4424,7 +4424,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2030 + // line internal/php7/php7.y:2030 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4436,7 +4436,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2040 + // line internal/php7/php7.y:2040 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4448,7 +4448,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2053 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4456,7 +4456,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2059 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4465,7 +4465,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2069 + // line internal/php7/php7.y:2069 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4476,7 +4476,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2078 + // line internal/php7/php7.y:2078 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4488,7 +4488,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2091 + // line internal/php7/php7.y:2091 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4497,7 +4497,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2098 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4505,13 +4505,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2107 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2114 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4520,7 +4520,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2121 + // line internal/php7/php7.y:2121 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4528,7 +4528,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2130 + // line internal/php7/php7.y:2130 { yyVAL.node = &ast.StmtStaticVar{ @@ -4551,7 +4551,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2151 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4575,19 +4575,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2176 + // line internal/php7/php7.y:2176 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2180 + // line internal/php7/php7.y:2180 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2187 + // line internal/php7/php7.y:2187 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4602,7 +4602,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2200 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4616,7 +4616,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2212 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4630,7 +4630,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2224 + // line internal/php7/php7.y:2224 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4661,7 +4661,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2256 + // line internal/php7/php7.y:2256 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4669,7 +4669,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2262 + // line internal/php7/php7.y:2262 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4678,7 +4678,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2272 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4689,7 +4689,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2281 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4701,7 +4701,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2291 + // line internal/php7/php7.y:2291 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4714,19 +4714,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2305 + // line internal/php7/php7.y:2305 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2309 + // line internal/php7/php7.y:2309 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2316 + // line internal/php7/php7.y:2316 { yyVAL.node = yyDollar[1].node @@ -4736,7 +4736,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2324 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4746,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2335 + // line internal/php7/php7.y:2335 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4760,7 +4760,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2350 + // line internal/php7/php7.y:2350 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4779,7 +4779,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2367 + // line internal/php7/php7.y:2367 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4798,7 +4798,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2384 + // line internal/php7/php7.y:2384 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4818,7 +4818,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2402 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4831,7 +4831,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2416 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4848,13 +4848,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2431 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2438 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4873,7 +4873,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2458 + // line internal/php7/php7.y:2458 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4884,7 +4884,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2467 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4897,13 +4897,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2481 + // line internal/php7/php7.y:2481 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2485 + // line internal/php7/php7.y:2485 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4917,31 +4917,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2500 + // line internal/php7/php7.y:2500 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2504 + // line internal/php7/php7.y:2504 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2511 + // line internal/php7/php7.y:2511 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2515 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2522 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4953,7 +4953,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2532 + // line internal/php7/php7.y:2532 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4965,7 +4965,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2542 + // line internal/php7/php7.y:2542 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4977,7 +4977,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2552 + // line internal/php7/php7.y:2552 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4989,7 +4989,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2562 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5001,7 +5001,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2572 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5013,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2585 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5022,7 +5022,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2592 + // line internal/php7/php7.y:2592 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5030,7 +5030,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2601 + // line internal/php7/php7.y:2601 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5053,7 +5053,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2622 + // line internal/php7/php7.y:2622 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5077,7 +5077,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2647 + // line internal/php7/php7.y:2647 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5085,13 +5085,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2653 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2660 + // line internal/php7/php7.y:2660 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5112,7 +5112,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2682 + // line internal/php7/php7.y:2682 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5133,7 +5133,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2704 + // line internal/php7/php7.y:2704 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5142,7 +5142,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2711 + // line internal/php7/php7.y:2711 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5150,25 +5150,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2720 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2727 + // line internal/php7/php7.y:2727 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2731 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2738 + // line internal/php7/php7.y:2738 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5177,13 +5177,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2745 + // line internal/php7/php7.y:2745 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2752 + // line internal/php7/php7.y:2752 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5200,7 +5200,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2770 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5225,7 +5225,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2793 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5237,77 +5237,77 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2806 { - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), }, - ListTkn: yyDollar[1].token, - OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[4].token, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + }, + ListTkn: yyDollar[1].token, + OpenBracketTkn: yyDollar[2].token, + Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[4].token, + }, + EqualTkn: yyDollar[5].token, + Expr: yyDollar[6].node, } - yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[6].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[5].token.SkippedTokens) } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2826 + // line internal/php7/php7.y:2826 { - listNode := &ast.ExprList{ + yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), }, - OpenBracketTkn: yyDollar[1].token, - Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: yyDollar[3].token, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: yyDollar[3].token, + }, + EqualTkn: yyDollar[4].token, + Expr: yyDollar[5].node, } - yyVAL.node = &ast.ExprAssign{ast.Node{}, listNode, yyDollar[5].node} - - // save position - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[4].token.SkippedTokens) } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2845 { - yyVAL.node = &ast.ExprAssign{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2856 { - yyVAL.node = &ast.ExprAssignReference{ast.Node{}, yyDollar[1].node, yyDollar[4].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Equal, yyDollar[3].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + AmpersandTkn: yyDollar[3].token, + Expr: yyDollar[4].node, + } } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2868 + // line internal/php7/php7.y:2868 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5319,176 +5319,176 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2878 { - yyVAL.node = &ast.ExprAssignPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2889 { - yyVAL.node = &ast.ExprAssignMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2900 { - yyVAL.node = &ast.ExprAssignMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2911 { - yyVAL.node = &ast.ExprAssignPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2922 { - yyVAL.node = &ast.ExprAssignDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2933 { - yyVAL.node = &ast.ExprAssignConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2944 + // line internal/php7/php7.y:2944 { - yyVAL.node = &ast.ExprAssignMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2955 { - yyVAL.node = &ast.ExprAssignBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2966 + // line internal/php7/php7.y:2966 { - yyVAL.node = &ast.ExprAssignBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2977 { - yyVAL.node = &ast.ExprAssignBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2988 { - yyVAL.node = &ast.ExprAssignShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2999 + // line internal/php7/php7.y:2999 { - yyVAL.node = &ast.ExprAssignShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3010 + // line internal/php7/php7.y:3010 { - yyVAL.node = &ast.ExprAssignCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Var, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprAssignCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Var: yyDollar[1].node, + EqualTkn: yyDollar[2].token, + Expr: yyDollar[3].node, + } } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3021 + // line internal/php7/php7.y:3021 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5500,7 +5500,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3031 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5512,7 +5512,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5524,7 +5524,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3051 + // line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5536,227 +5536,228 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3061 + // line internal/php7/php7.y:3061 { - yyVAL.node = &ast.ExprBinaryBooleanOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3072 + // line internal/php7/php7.y:3072 { - yyVAL.node = &ast.ExprBinaryBooleanAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3083 { - yyVAL.node = &ast.ExprBinaryLogicalOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3094 + // line internal/php7/php7.y:3094 { - yyVAL.node = &ast.ExprBinaryLogicalAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3105 { - yyVAL.node = &ast.ExprBinaryLogicalXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3116 + // line internal/php7/php7.y:3116 { - yyVAL.node = &ast.ExprBinaryBitwiseOr{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3127 { - yyVAL.node = &ast.ExprBinaryBitwiseAnd{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3138 + // line internal/php7/php7.y:3138 { - yyVAL.node = &ast.ExprBinaryBitwiseXor{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3149 { - yyVAL.node = &ast.ExprBinaryConcat{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3159 + // line internal/php7/php7.y:3160 { - yyVAL.node = &ast.ExprBinaryPlus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3170 + // line internal/php7/php7.y:3171 { - yyVAL.node = &ast.ExprBinaryMinus{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3181 + // line internal/php7/php7.y:3182 { - yyVAL.node = &ast.ExprBinaryMul{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3192 + // line internal/php7/php7.y:3193 { - yyVAL.node = &ast.ExprBinaryPow{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3203 + // line internal/php7/php7.y:3204 { - yyVAL.node = &ast.ExprBinaryDiv{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3214 + // line internal/php7/php7.y:3215 { - yyVAL.node = &ast.ExprBinaryMod{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3225 + // line internal/php7/php7.y:3226 { - yyVAL.node = &ast.ExprBinaryShiftLeft{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3236 + // line internal/php7/php7.y:3237 { - yyVAL.node = &ast.ExprBinaryShiftRight{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3247 + // line internal/php7/php7.y:3248 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5768,7 +5769,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3257 + // line internal/php7/php7.y:3258 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5780,7 +5781,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3267 + // line internal/php7/php7.y:3268 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5792,7 +5793,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3278 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5804,125 +5805,124 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3287 + // line internal/php7/php7.y:3288 { - yyVAL.node = &ast.ExprBinaryIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3298 + // line internal/php7/php7.y:3299 { - yyVAL.node = &ast.ExprBinaryNotIdentical{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3309 + // line internal/php7/php7.y:3310 { - yyVAL.node = &ast.ExprBinaryEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3320 + // line internal/php7/php7.y:3321 { - yyVAL.node = &ast.ExprBinaryNotEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3332 + // line internal/php7/php7.y:3332 { - yyVAL.node = &ast.ExprBinarySmaller{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3343 + // line internal/php7/php7.y:3343 { - yyVAL.node = &ast.ExprBinarySmallerOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3354 + // line internal/php7/php7.y:3354 { - yyVAL.node = &ast.ExprBinaryGreater{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3365 { - yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3376 + // line internal/php7/php7.y:3376 { - yyVAL.node = &ast.ExprBinarySpaceship{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinarySpaceship{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3387 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5935,7 +5935,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3398 + // line internal/php7/php7.y:3398 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5952,13 +5952,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3413 + // line internal/php7/php7.y:3413 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3417 + // line internal/php7/php7.y:3417 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5973,7 +5973,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5987,26 +5987,26 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3442 { - yyVAL.node = &ast.ExprBinaryCoalesce{ast.Node{}, yyDollar[1].node, yyDollar[3].node} - - // save position - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) - - // save comments - yylex.(*Parser).MoveFreeFloating(yyDollar[1].node, yyVAL.node) - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Expr, yyDollar[2].token.SkippedTokens) + yyVAL.node = &ast.ExprBinaryCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + }, + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, + } } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3453 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3457 + // line internal/php7/php7.y:3457 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6018,7 +6018,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3467 + // line internal/php7/php7.y:3467 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6030,7 +6030,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6042,7 +6042,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3487 + // line internal/php7/php7.y:3487 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6054,7 +6054,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3497 + // line internal/php7/php7.y:3497 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6066,7 +6066,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3507 + // line internal/php7/php7.y:3507 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6078,7 +6078,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3517 + // line internal/php7/php7.y:3517 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6090,7 +6090,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3527 + // line internal/php7/php7.y:3527 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6109,7 +6109,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3544 + // line internal/php7/php7.y:3544 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6121,13 +6121,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3554 + // line internal/php7/php7.y:3554 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3558 + // line internal/php7/php7.y:3558 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6140,7 +6140,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3569 + // line internal/php7/php7.y:3569 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6152,7 +6152,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3579 + // line internal/php7/php7.y:3579 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6163,7 +6163,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3588 + // line internal/php7/php7.y:3588 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6175,7 +6175,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3598 + // line internal/php7/php7.y:3598 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6189,7 +6189,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3610 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6201,13 +6201,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3620 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3624 + // line internal/php7/php7.y:3624 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6222,7 +6222,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3640 + // line internal/php7/php7.y:3640 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6243,7 +6243,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6262,25 +6262,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3683 + // line internal/php7/php7.y:3683 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3687 + // line internal/php7/php7.y:3687 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3694 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3698 + // line internal/php7/php7.y:3698 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6295,7 +6295,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3714 + // line internal/php7/php7.y:3714 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6304,7 +6304,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3721 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6312,7 +6312,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3730 + // line internal/php7/php7.y:3730 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6329,7 +6329,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3745 + // line internal/php7/php7.y:3745 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6352,7 +6352,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3769 + // line internal/php7/php7.y:3769 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6366,7 +6366,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3781 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6382,7 +6382,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3795 + // line internal/php7/php7.y:3795 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6398,7 +6398,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6412,7 +6412,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3824 + // line internal/php7/php7.y:3824 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6424,31 +6424,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3834 + // line internal/php7/php7.y:3834 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3841 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3845 + // line internal/php7/php7.y:3845 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3852 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3856 + // line internal/php7/php7.y:3856 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6465,13 +6465,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3874 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3878 + // line internal/php7/php7.y:3878 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6485,25 +6485,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3890 + // line internal/php7/php7.y:3890 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3897 + // line internal/php7/php7.y:3897 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3901 + // line internal/php7/php7.y:3901 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3908 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6518,7 +6518,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3921 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6532,7 +6532,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3933 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6544,7 +6544,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6556,7 +6556,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6568,7 +6568,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6580,7 +6580,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3976 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6592,7 +6592,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3986 + // line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6604,7 +6604,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3996 + // line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6616,7 +6616,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4006 + // line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6628,7 +6628,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6640,7 +6640,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4026 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6652,7 +6652,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4036 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6664,7 +6664,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4046 + // line internal/php7/php7.y:4046 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6685,7 +6685,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4065 + // line internal/php7/php7.y:4065 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6697,7 +6697,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6710,7 +6710,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4086 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6723,19 +6723,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4097 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4101 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6746,7 +6746,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4117 + // line internal/php7/php7.y:4117 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6765,7 +6765,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4134 + // line internal/php7/php7.y:4134 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6784,43 +6784,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4154 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4158 + // line internal/php7/php7.y:4158 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4165 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4183 + // line internal/php7/php7.y:4183 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4187 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6837,19 +6837,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4202 + // line internal/php7/php7.y:4202 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4209 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4213 + // line internal/php7/php7.y:4213 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6866,19 +6866,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4228 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4235 + // line internal/php7/php7.y:4235 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4239 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6892,7 +6892,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4251 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6906,7 +6906,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4263 + // line internal/php7/php7.y:4263 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6920,7 +6920,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6936,25 +6936,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4289 + // line internal/php7/php7.y:4289 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4296 + // line internal/php7/php7.y:4296 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4300 + // line internal/php7/php7.y:4300 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4304 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6967,7 +6967,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6984,7 +6984,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4333 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7003,7 +7003,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4350 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7015,7 +7015,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4363 + // line internal/php7/php7.y:4363 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7028,7 +7028,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4374 + // line internal/php7/php7.y:4374 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7041,13 +7041,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4388 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4392 + // line internal/php7/php7.y:4392 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7061,7 +7061,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4404 + // line internal/php7/php7.y:4404 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7075,7 +7075,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4416 + // line internal/php7/php7.y:4416 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7088,7 +7088,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4427 + // line internal/php7/php7.y:4427 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7101,7 +7101,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4438 + // line internal/php7/php7.y:4438 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7114,7 +7114,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4452 + // line internal/php7/php7.y:4452 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7126,7 +7126,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4462 { yyVAL.node = yyDollar[2].node @@ -7136,13 +7136,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4470 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4477 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7154,7 +7154,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4487 + // line internal/php7/php7.y:4487 { yyVAL.node = yyDollar[2].node @@ -7164,13 +7164,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4495 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4502 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7183,19 +7183,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4516 + // line internal/php7/php7.y:4516 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4520 + // line internal/php7/php7.y:4520 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4527 + // line internal/php7/php7.y:4527 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7204,7 +7204,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4534 + // line internal/php7/php7.y:4534 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7212,7 +7212,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4543 + // line internal/php7/php7.y:4543 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7225,7 +7225,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4554 + // line internal/php7/php7.y:4554 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7236,7 +7236,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4563 + // line internal/php7/php7.y:4563 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7255,7 +7255,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4580 + // line internal/php7/php7.y:4580 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7272,7 +7272,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4595 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7284,7 +7284,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4605 + // line internal/php7/php7.y:4605 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7306,7 +7306,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4625 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7326,13 +7326,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4646 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4650 + // line internal/php7/php7.y:4650 { yyVAL.list = append( yyDollar[1].list, @@ -7347,13 +7347,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4663 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4667 + // line internal/php7/php7.y:4667 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7368,7 +7368,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4683 + // line internal/php7/php7.y:4683 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7385,7 +7385,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4698 + // line internal/php7/php7.y:4698 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7410,7 +7410,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4721 + // line internal/php7/php7.y:4721 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7440,7 +7440,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4749 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7458,7 +7458,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4765 + // line internal/php7/php7.y:4765 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7482,7 +7482,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4787 + // line internal/php7/php7.y:4787 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7514,7 +7514,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4817 + // line internal/php7/php7.y:4817 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7527,7 +7527,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4831 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7539,7 +7539,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4841 + // line internal/php7/php7.y:4841 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7562,7 +7562,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4862 + // line internal/php7/php7.y:4862 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7595,7 +7595,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4893 + // line internal/php7/php7.y:4893 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7612,7 +7612,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4911 + // line internal/php7/php7.y:4911 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7631,7 +7631,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4928 + // line internal/php7/php7.y:4928 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7645,7 +7645,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4940 + // line internal/php7/php7.y:4940 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7657,7 +7657,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4950 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7669,7 +7669,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4960 + // line internal/php7/php7.y:4960 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7683,7 +7683,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4972 + // line internal/php7/php7.y:4972 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7695,7 +7695,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4982 + // line internal/php7/php7.y:4982 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7707,7 +7707,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4995 + // line internal/php7/php7.y:4995 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7715,7 +7715,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:5001 + // line internal/php7/php7.y:5001 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7724,7 +7724,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:5011 + // line internal/php7/php7.y:5011 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 7390dd6..25adcd7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2804,65 +2804,65 @@ new_expr: expr_without_variable: T_LIST '(' array_pair_list ')' '=' expr { - listNode := &ast.ExprList{ + $$ = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), + Position: position.NewTokenNodePosition($1, $6), }, - ListTkn: $1, - OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $4, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $4), + }, + ListTkn: $1, + OpenBracketTkn: $2, + Items: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $4, + }, + EqualTkn: $5, + Expr: $6, } - $$ = &ast.ExprAssign{ast.Node{}, listNode, $6} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $5.SkippedTokens) } | '[' array_pair_list ']' '=' expr { - listNode := &ast.ExprList{ + $$ = &ast.ExprAssign{ Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), + Position: position.NewTokenNodePosition($1, $5), }, - OpenBracketTkn: $1, - Items: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, - CloseBracketTkn: $3, + Var: &ast.ExprList{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Items: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + CloseBracketTkn: $3, + }, + EqualTkn: $4, + Expr: $5, } - $$ = &ast.ExprAssign{ast.Node{}, listNode, $5} - - // save position - $$.GetNode().Position = position.NewTokenNodePosition($1, $5) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Var, $4.SkippedTokens) } | variable '=' expr { - $$ = &ast.ExprAssign{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssign{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable '=' '&' expr { - $$ = &ast.ExprAssignReference{ast.Node{}, $1, $4} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $4) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) - yylex.(*Parser).setFreeFloating($$, token.Equal, $3.SkippedTokens) + $$ = &ast.ExprAssignReference{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $4), + }, + Var: $1, + EqualTkn: $2, + AmpersandTkn: $3, + Expr: $4, + } } | T_CLONE expr { @@ -2876,146 +2876,146 @@ expr_without_variable: } | variable T_PLUS_EQUAL expr { - $$ = &ast.ExprAssignPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MINUS_EQUAL expr { - $$ = &ast.ExprAssignMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MUL_EQUAL expr { - $$ = &ast.ExprAssignMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_POW_EQUAL expr { - $$ = &ast.ExprAssignPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_DIV_EQUAL expr { - $$ = &ast.ExprAssignDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_CONCAT_EQUAL expr { - $$ = &ast.ExprAssignConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_MOD_EQUAL expr { - $$ = &ast.ExprAssignMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_AND_EQUAL expr { - $$ = &ast.ExprAssignBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_OR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_XOR_EQUAL expr { - $$ = &ast.ExprAssignBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SL_EQUAL expr { - $$ = &ast.ExprAssignShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_SR_EQUAL expr { - $$ = &ast.ExprAssignShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_COALESCE_EQUAL expr { - $$ = &ast.ExprAssignCoalesce{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Var, $2.SkippedTokens) + $$ = &ast.ExprAssignCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Var: $1, + EqualTkn: $2, + Expr: $3, + } } | variable T_INC { @@ -3059,189 +3059,190 @@ expr_without_variable: } | expr T_BOOLEAN_OR expr { - $$ = &ast.ExprBinaryBooleanOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_BOOLEAN_AND expr { - $$ = &ast.ExprBinaryBooleanAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBooleanAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_OR expr { - $$ = &ast.ExprBinaryLogicalOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_AND expr { - $$ = &ast.ExprBinaryLogicalAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_LOGICAL_XOR expr { - $$ = &ast.ExprBinaryLogicalXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryLogicalXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '|' expr { - $$ = &ast.ExprBinaryBitwiseOr{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseOr{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '&' expr { - $$ = &ast.ExprBinaryBitwiseAnd{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseAnd{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '^' expr { - $$ = &ast.ExprBinaryBitwiseXor{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryBitwiseXor{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '.' expr { - $$ = &ast.ExprBinaryConcat{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryConcat{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '+' expr { - $$ = &ast.ExprBinaryPlus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPlus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '-' expr { - $$ = &ast.ExprBinaryMinus{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMinus{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '*' expr { - $$ = &ast.ExprBinaryMul{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMul{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_POW expr { - $$ = &ast.ExprBinaryPow{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryPow{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '/' expr { - $$ = &ast.ExprBinaryDiv{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryDiv{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '%' expr { - $$ = &ast.ExprBinaryMod{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryMod{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SL expr { - $$ = &ast.ExprBinaryShiftLeft{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftLeft{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SR expr { - $$ = &ast.ExprBinaryShiftRight{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryShiftRight{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | '+' expr %prec T_INC { @@ -3285,103 +3286,102 @@ expr_without_variable: } | expr T_IS_IDENTICAL expr { - $$ = &ast.ExprBinaryIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_IDENTICAL expr { - $$ = &ast.ExprBinaryNotIdentical{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotIdentical{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_EQUAL expr { - $$ = &ast.ExprBinaryEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_NOT_EQUAL expr { - $$ = &ast.ExprBinaryNotEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) + $$ = &ast.ExprBinaryNotEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '<' expr { - $$ = &ast.ExprBinarySmaller{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmaller{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_SMALLER_OR_EQUAL expr { - $$ = &ast.ExprBinarySmallerOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySmallerOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr '>' expr { - $$ = &ast.ExprBinaryGreater{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreater{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_IS_GREATER_OR_EQUAL expr { - $$ = &ast.ExprBinaryGreaterOrEqual{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryGreaterOrEqual{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_SPACESHIP expr { - $$ = &ast.ExprBinarySpaceship{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinarySpaceship{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | expr T_INSTANCEOF class_name_reference { @@ -3440,14 +3440,14 @@ expr_without_variable: } | expr T_COALESCE expr { - $$ = &ast.ExprBinaryCoalesce{ast.Node{}, $1, $3} - - // save position - $$.GetNode().Position = position.NewNodesPosition($1, $3) - - // save comments - yylex.(*Parser).MoveFreeFloating($1, $$) - yylex.(*Parser).setFreeFloating($$, token.Expr, $2.SkippedTokens) + $$ = &ast.ExprBinaryCoalesce{ + Node: ast.Node{ + Position: position.NewNodesPosition($1, $3), + }, + Left: $1, + OpTkn: $2, + Right: $3, + } } | internal_functions_in_yacc { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index a4599b4..ccea997 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1529,8 +1529,9 @@ func (n *ExprCastUnset) Accept(v NodeVisitor) { // ExprAssign node type ExprAssign struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssign) Accept(v NodeVisitor) { @@ -1540,8 +1541,10 @@ func (n *ExprAssign) Accept(v NodeVisitor) { // ExprAssignReference node type ExprAssignReference struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + AmpersandTkn *token.Token + Expr Vertex } func (n *ExprAssignReference) Accept(v NodeVisitor) { @@ -1551,8 +1554,9 @@ func (n *ExprAssignReference) Accept(v NodeVisitor) { // ExprAssignBitwiseAnd node type ExprAssignBitwiseAnd struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { @@ -1562,8 +1566,9 @@ func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { // ExprAssignBitwiseOr node type ExprAssignBitwiseOr struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { @@ -1573,8 +1578,9 @@ func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { // ExprAssignBitwiseXor node type ExprAssignBitwiseXor struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { @@ -1584,8 +1590,9 @@ func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { // ExprAssignCoalesce node type ExprAssignCoalesce struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { @@ -1595,8 +1602,9 @@ func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { // ExprAssignConcat node type ExprAssignConcat struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignConcat) Accept(v NodeVisitor) { @@ -1606,8 +1614,9 @@ func (n *ExprAssignConcat) Accept(v NodeVisitor) { // ExprAssignDiv node type ExprAssignDiv struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignDiv) Accept(v NodeVisitor) { @@ -1617,8 +1626,9 @@ func (n *ExprAssignDiv) Accept(v NodeVisitor) { // ExprAssignMinus node type ExprAssignMinus struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignMinus) Accept(v NodeVisitor) { @@ -1628,8 +1638,9 @@ func (n *ExprAssignMinus) Accept(v NodeVisitor) { // ExprAssignMod node type ExprAssignMod struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignMod) Accept(v NodeVisitor) { @@ -1639,8 +1650,9 @@ func (n *ExprAssignMod) Accept(v NodeVisitor) { // ExprAssignMul node type ExprAssignMul struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignMul) Accept(v NodeVisitor) { @@ -1650,8 +1662,9 @@ func (n *ExprAssignMul) Accept(v NodeVisitor) { // ExprAssignPlus node type ExprAssignPlus struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignPlus) Accept(v NodeVisitor) { @@ -1661,8 +1674,9 @@ func (n *ExprAssignPlus) Accept(v NodeVisitor) { // ExprAssignPow node type ExprAssignPow struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignPow) Accept(v NodeVisitor) { @@ -1672,8 +1686,9 @@ func (n *ExprAssignPow) Accept(v NodeVisitor) { // ExprAssignShiftLeft node type ExprAssignShiftLeft struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { @@ -1683,8 +1698,9 @@ func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { // ExprAssignShiftRight node type ExprAssignShiftRight struct { Node - Var Vertex - Expr Vertex + Var Vertex + EqualTkn *token.Token + Expr Vertex } func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { @@ -1695,6 +1711,7 @@ func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { type ExprBinaryBitwiseAnd struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1706,6 +1723,7 @@ func (n *ExprBinaryBitwiseAnd) Accept(v NodeVisitor) { type ExprBinaryBitwiseOr struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1717,6 +1735,7 @@ func (n *ExprBinaryBitwiseOr) Accept(v NodeVisitor) { type ExprBinaryBitwiseXor struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1728,6 +1747,7 @@ func (n *ExprBinaryBitwiseXor) Accept(v NodeVisitor) { type ExprBinaryBooleanAnd struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1739,6 +1759,7 @@ func (n *ExprBinaryBooleanAnd) Accept(v NodeVisitor) { type ExprBinaryBooleanOr struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1750,6 +1771,7 @@ func (n *ExprBinaryBooleanOr) Accept(v NodeVisitor) { type ExprBinaryCoalesce struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1761,6 +1783,7 @@ func (n *ExprBinaryCoalesce) Accept(v NodeVisitor) { type ExprBinaryConcat struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1772,6 +1795,7 @@ func (n *ExprBinaryConcat) Accept(v NodeVisitor) { type ExprBinaryDiv struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1783,6 +1807,7 @@ func (n *ExprBinaryDiv) Accept(v NodeVisitor) { type ExprBinaryEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1794,6 +1819,7 @@ func (n *ExprBinaryEqual) Accept(v NodeVisitor) { type ExprBinaryGreater struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1805,6 +1831,7 @@ func (n *ExprBinaryGreater) Accept(v NodeVisitor) { type ExprBinaryGreaterOrEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1816,6 +1843,7 @@ func (n *ExprBinaryGreaterOrEqual) Accept(v NodeVisitor) { type ExprBinaryIdentical struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1827,6 +1855,7 @@ func (n *ExprBinaryIdentical) Accept(v NodeVisitor) { type ExprBinaryLogicalAnd struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1838,6 +1867,7 @@ func (n *ExprBinaryLogicalAnd) Accept(v NodeVisitor) { type ExprBinaryLogicalOr struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1849,6 +1879,7 @@ func (n *ExprBinaryLogicalOr) Accept(v NodeVisitor) { type ExprBinaryLogicalXor struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1860,6 +1891,7 @@ func (n *ExprBinaryLogicalXor) Accept(v NodeVisitor) { type ExprBinaryMinus struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1871,6 +1903,7 @@ func (n *ExprBinaryMinus) Accept(v NodeVisitor) { type ExprBinaryMod struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1882,6 +1915,7 @@ func (n *ExprBinaryMod) Accept(v NodeVisitor) { type ExprBinaryMul struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1893,6 +1927,7 @@ func (n *ExprBinaryMul) Accept(v NodeVisitor) { type ExprBinaryNotEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1904,6 +1939,7 @@ func (n *ExprBinaryNotEqual) Accept(v NodeVisitor) { type ExprBinaryNotIdentical struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1915,6 +1951,7 @@ func (n *ExprBinaryNotIdentical) Accept(v NodeVisitor) { type ExprBinaryPlus struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1926,6 +1963,7 @@ func (n *ExprBinaryPlus) Accept(v NodeVisitor) { type ExprBinaryPow struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1937,6 +1975,7 @@ func (n *ExprBinaryPow) Accept(v NodeVisitor) { type ExprBinaryShiftLeft struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1948,6 +1987,7 @@ func (n *ExprBinaryShiftLeft) Accept(v NodeVisitor) { type ExprBinaryShiftRight struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1959,6 +1999,7 @@ func (n *ExprBinaryShiftRight) Accept(v NodeVisitor) { type ExprBinarySmaller struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1970,6 +2011,7 @@ func (n *ExprBinarySmaller) Accept(v NodeVisitor) { type ExprBinarySmallerOrEqual struct { Node Left Vertex + OpTkn *token.Token Right Vertex } @@ -1981,6 +2023,7 @@ func (n *ExprBinarySmallerOrEqual) Accept(v NodeVisitor) { type ExprBinarySpaceship struct { Node Left Vertex + OpTkn *token.Token Right Vertex } From df1626b7dc92424ebdbb147ba8169eea4653bcb2 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 11:02:38 +0200 Subject: [PATCH 094/140] [refactoring] update ast structure of "Root" and "Class" nodes --- internal/php5/php5.go | 1053 +++++++++++++++++---------------- internal/php5/php5.y | 11 +- internal/php7/php7.go | 1015 +++++++++++++++---------------- internal/php7/php7.y | 29 +- pkg/ast/ast.go | 1 - pkg/ast/node.go | 49 +- pkg/ast/traverser/dfs.go | 24 +- pkg/ast/visitor/dump.go | 6 - pkg/ast/visitor/null.go | 4 - pkg/printer/pretty_printer.go | 4 +- pkg/printer/printer.go | 8 +- 11 files changed, 1098 insertions(+), 1106 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 58de3b2..77d735f 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -342,7 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6583 +// line internal/php5/php5.y:6586 // line yacctab:1 var yyExca = [...]int{ @@ -2316,16 +2316,19 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:269 + // line internal/php5/php5.y:269 { - yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} - yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) + yylex.(*Parser).rootNode = &ast.Root{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Stmts: yyDollar[1].list, + EndTkn: yylex.(*Parser).currentToken, + } } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:279 + // line internal/php5/php5.y:282 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2338,13 +2341,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:290 + // line internal/php5/php5.y:293 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:297 + // line internal/php5/php5.y:300 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2358,7 +2361,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:309 + // line internal/php5/php5.y:312 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2371,32 +2374,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:323 + // line internal/php5/php5.y:326 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:328 + // line internal/php5/php5.y:331 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:332 + // line internal/php5/php5.y:335 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:336 + // line internal/php5/php5.y:339 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:340 + // line internal/php5/php5.y:343 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2410,7 +2413,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:352 + // line internal/php5/php5.y:355 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2428,7 +2431,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:368 + // line internal/php5/php5.y:371 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2448,7 +2451,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:386 + // line internal/php5/php5.y:389 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2462,7 +2465,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:398 + // line internal/php5/php5.y:401 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2475,7 +2478,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:409 + // line internal/php5/php5.y:412 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2495,7 +2498,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:427 + // line internal/php5/php5.y:430 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2515,7 +2518,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:445 + // line internal/php5/php5.y:448 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2523,7 +2526,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:454 + // line internal/php5/php5.y:457 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2531,13 +2534,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:460 + // line internal/php5/php5.y:463 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:467 + // line internal/php5/php5.y:470 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2553,7 +2556,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:481 + // line internal/php5/php5.y:484 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2577,7 +2580,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:503 + // line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2594,7 +2597,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:518 + // line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2619,7 +2622,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:544 + // line internal/php5/php5.y:547 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2627,13 +2630,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:550 + // line internal/php5/php5.y:553 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:557 + // line internal/php5/php5.y:560 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2649,7 +2652,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:571 + // line internal/php5/php5.y:574 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2673,7 +2676,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:593 + // line internal/php5/php5.y:596 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2690,7 +2693,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:608 + // line internal/php5/php5.y:611 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2715,7 +2718,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:634 + // line internal/php5/php5.y:637 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2723,13 +2726,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:640 + // line internal/php5/php5.y:643 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:647 + // line internal/php5/php5.y:650 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2745,7 +2748,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:661 + // line internal/php5/php5.y:664 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2769,7 +2772,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:683 + // line internal/php5/php5.y:686 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2786,7 +2789,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:698 + // line internal/php5/php5.y:701 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2811,7 +2814,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:724 + // line internal/php5/php5.y:727 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2837,7 +2840,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:748 + // line internal/php5/php5.y:751 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2866,7 +2869,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:778 + // line internal/php5/php5.y:781 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2879,38 +2882,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:789 + // line internal/php5/php5.y:792 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:797 + // line internal/php5/php5.y:800 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:802 + // line internal/php5/php5.y:805 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:806 + // line internal/php5/php5.y:809 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:810 + // line internal/php5/php5.y:813 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:814 + // line internal/php5/php5.y:817 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2924,13 +2927,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:830 + // line internal/php5/php5.y:833 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:834 + // line internal/php5/php5.y:837 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2948,7 +2951,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:853 + // line internal/php5/php5.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2961,7 +2964,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:864 + // line internal/php5/php5.y:867 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2985,7 +2988,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:886 + // line internal/php5/php5.y:889 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3011,7 +3014,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:910 + // line internal/php5/php5.y:913 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3023,7 +3026,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:920 + // line internal/php5/php5.y:923 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3040,7 +3043,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:935 + // line internal/php5/php5.y:938 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3056,7 +3059,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:949 + // line internal/php5/php5.y:952 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3068,7 +3071,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:959 + // line internal/php5/php5.y:962 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3080,7 +3083,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:969 + // line internal/php5/php5.y:972 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3093,7 +3096,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:980 + // line internal/php5/php5.y:983 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3105,7 +3108,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:990 + // line internal/php5/php5.y:993 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3118,7 +3121,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1001 + // line internal/php5/php5.y:1004 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3130,7 +3133,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1011 + // line internal/php5/php5.y:1014 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3143,7 +3146,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1022 + // line internal/php5/php5.y:1025 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3156,7 +3159,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1033 + // line internal/php5/php5.y:1036 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3168,7 +3171,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1043 + // line internal/php5/php5.y:1046 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3179,7 +3182,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1052 + // line internal/php5/php5.y:1055 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3190,7 +3193,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1061 + // line internal/php5/php5.y:1064 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3200,7 +3203,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1069 + // line internal/php5/php5.y:1072 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3212,7 +3215,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1079 + // line internal/php5/php5.y:1082 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3224,7 +3227,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1089 + // line internal/php5/php5.y:1092 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3236,7 +3239,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1099 + // line internal/php5/php5.y:1102 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3256,7 +3259,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1117 + // line internal/php5/php5.y:1120 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3276,7 +3279,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1135 + // line internal/php5/php5.y:1138 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3289,7 +3292,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1146 + // line internal/php5/php5.y:1149 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3300,7 +3303,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1155 + // line internal/php5/php5.y:1158 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3319,7 +3322,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1172 + // line internal/php5/php5.y:1175 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3332,7 +3335,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1183 + // line internal/php5/php5.y:1186 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3351,13 +3354,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1203 + // line internal/php5/php5.y:1206 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1207 + // line internal/php5/php5.y:1210 { catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3387,13 +3390,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1238 + // line internal/php5/php5.y:1241 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1242 + // line internal/php5/php5.y:1245 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3407,31 +3410,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1257 + // line internal/php5/php5.y:1260 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1261 + // line internal/php5/php5.y:1264 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1268 + // line internal/php5/php5.y:1271 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1272 + // line internal/php5/php5.y:1275 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1279 + // line internal/php5/php5.y:1282 { yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3460,7 +3463,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1309 + // line internal/php5/php5.y:1312 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3468,7 +3471,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1315 + // line internal/php5/php5.y:1318 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3477,49 +3480,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1325 + // line internal/php5/php5.y:1328 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1332 + // line internal/php5/php5.y:1335 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1339 + // line internal/php5/php5.y:1342 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1346 + // line internal/php5/php5.y:1349 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1350 + // line internal/php5/php5.y:1353 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1357 + // line internal/php5/php5.y:1360 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1364 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1368 + // line internal/php5/php5.y:1371 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3544,7 +3547,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1394 + // line internal/php5/php5.y:1397 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3581,7 +3584,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1429 + // line internal/php5/php5.y:1432 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3603,7 +3606,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1453 + // line internal/php5/php5.y:1456 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3614,7 +3617,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1462 + // line internal/php5/php5.y:1465 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3634,7 +3637,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1480 + // line internal/php5/php5.y:1483 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3645,7 +3648,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1489 + // line internal/php5/php5.y:1492 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3665,13 +3668,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1510 + // line internal/php5/php5.y:1513 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1514 + // line internal/php5/php5.y:1517 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3683,19 +3686,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1527 + // line internal/php5/php5.y:1530 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1534 + // line internal/php5/php5.y:1537 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1538 + // line internal/php5/php5.y:1541 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3708,13 +3711,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1552 + // line internal/php5/php5.y:1555 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1556 + // line internal/php5/php5.y:1559 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3727,7 +3730,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1570 + // line internal/php5/php5.y:1573 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3735,7 +3738,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1576 + // line internal/php5/php5.y:1579 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3744,13 +3747,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1586 + // line internal/php5/php5.y:1589 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1590 + // line internal/php5/php5.y:1593 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3759,13 +3762,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1600 + // line internal/php5/php5.y:1603 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1604 + // line internal/php5/php5.y:1607 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3777,7 +3780,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1614 + // line internal/php5/php5.y:1617 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3799,7 +3802,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1637 + // line internal/php5/php5.y:1640 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3810,7 +3813,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1646 + // line internal/php5/php5.y:1649 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3830,7 +3833,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1667 + // line internal/php5/php5.y:1670 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3841,7 +3844,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1676 + // line internal/php5/php5.y:1679 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3861,7 +3864,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1698 + // line internal/php5/php5.y:1701 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3872,7 +3875,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1707 + // line internal/php5/php5.y:1710 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3892,7 +3895,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1729 + // line internal/php5/php5.y:1732 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3917,7 +3920,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1755 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3944,7 +3947,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1781 + // line internal/php5/php5.y:1784 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3957,7 +3960,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1792 + // line internal/php5/php5.y:1795 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3971,7 +3974,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1804 + // line internal/php5/php5.y:1807 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3986,7 +3989,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1820 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4002,13 +4005,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1835 + // line internal/php5/php5.y:1838 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1839 + // line internal/php5/php5.y:1842 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4022,7 +4025,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1851 + // line internal/php5/php5.y:1854 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4035,19 +4038,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1866 + // line internal/php5/php5.y:1869 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1870 + // line internal/php5/php5.y:1873 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1878 + // line internal/php5/php5.y:1881 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4058,7 +4061,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1887 + // line internal/php5/php5.y:1890 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4078,13 +4081,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1910 + // line internal/php5/php5.y:1913 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1914 + // line internal/php5/php5.y:1917 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4099,13 +4102,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1931 + // line internal/php5/php5.y:1934 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1935 + // line internal/php5/php5.y:1938 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4127,13 +4130,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1959 + // line internal/php5/php5.y:1962 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1963 + // line internal/php5/php5.y:1966 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4145,13 +4148,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1977 + // line internal/php5/php5.y:1980 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1981 + // line internal/php5/php5.y:1984 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4170,25 +4173,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2002 + // line internal/php5/php5.y:2005 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2006 + // line internal/php5/php5.y:2009 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2013 + // line internal/php5/php5.y:2016 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2017 + // line internal/php5/php5.y:2020 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4197,7 +4200,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2027 + // line internal/php5/php5.y:2030 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4252,7 +4255,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2080 + // line internal/php5/php5.y:2083 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4309,13 +4312,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2139 + // line internal/php5/php5.y:2142 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2143 + // line internal/php5/php5.y:2146 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4327,7 +4330,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2153 + // line internal/php5/php5.y:2156 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4339,13 +4342,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2163 + // line internal/php5/php5.y:2166 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2171 + // line internal/php5/php5.y:2174 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4357,7 +4360,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2181 + // line internal/php5/php5.y:2184 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4368,7 +4371,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2190 + // line internal/php5/php5.y:2193 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4388,7 +4391,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2212 + // line internal/php5/php5.y:2215 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4396,7 +4399,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2218 + // line internal/php5/php5.y:2221 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4405,7 +4408,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2228 + // line internal/php5/php5.y:2231 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4416,7 +4419,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2237 + // line internal/php5/php5.y:2240 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4427,7 +4430,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2246 + // line internal/php5/php5.y:2249 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4439,7 +4442,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2256 + // line internal/php5/php5.y:2259 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4451,7 +4454,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2269 + // line internal/php5/php5.y:2272 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4460,7 +4463,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2276 + // line internal/php5/php5.y:2279 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4468,7 +4471,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2286 + // line internal/php5/php5.y:2289 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4485,7 +4488,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2301 + // line internal/php5/php5.y:2304 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4497,7 +4500,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2311 + // line internal/php5/php5.y:2314 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4516,7 +4519,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2332 + // line internal/php5/php5.y:2335 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4541,7 +4544,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2355 + // line internal/php5/php5.y:2358 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4568,7 +4571,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2380 + // line internal/php5/php5.y:2383 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4594,7 +4597,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2404 + // line internal/php5/php5.y:2407 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4622,19 +4625,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2434 + // line internal/php5/php5.y:2437 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2438 + // line internal/php5/php5.y:2441 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2449 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4648,7 +4651,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2458 + // line internal/php5/php5.y:2461 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4656,13 +4659,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2464 + // line internal/php5/php5.y:2467 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2468 + // line internal/php5/php5.y:2471 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4691,7 +4694,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2498 + // line internal/php5/php5.y:2501 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4705,7 +4708,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2513 + // line internal/php5/php5.y:2516 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4713,7 +4716,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2519 + // line internal/php5/php5.y:2522 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4722,7 +4725,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2529 + // line internal/php5/php5.y:2532 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4733,7 +4736,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2538 + // line internal/php5/php5.y:2541 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4746,31 +4749,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2552 + // line internal/php5/php5.y:2555 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2556 + // line internal/php5/php5.y:2559 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2563 + // line internal/php5/php5.y:2566 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2567 + // line internal/php5/php5.y:2570 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2574 + // line internal/php5/php5.y:2577 { yyVAL.node = yyDollar[1].node @@ -4780,7 +4783,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2582 + // line internal/php5/php5.y:2585 { yyVAL.node = yyDollar[1].node @@ -4790,7 +4793,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2593 + // line internal/php5/php5.y:2596 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4804,7 +4807,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2608 + // line internal/php5/php5.y:2611 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4812,7 +4815,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2614 + // line internal/php5/php5.y:2617 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4821,7 +4824,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2624 + // line internal/php5/php5.y:2627 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4838,13 +4841,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2639 + // line internal/php5/php5.y:2642 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2646 + // line internal/php5/php5.y:2649 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4863,7 +4866,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2666 + // line internal/php5/php5.y:2669 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4883,7 +4886,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2684 + // line internal/php5/php5.y:2687 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4896,19 +4899,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2698 + // line internal/php5/php5.y:2701 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2702 + // line internal/php5/php5.y:2705 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2709 + // line internal/php5/php5.y:2712 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4919,7 +4922,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2718 + // line internal/php5/php5.y:2721 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4932,13 +4935,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2732 + // line internal/php5/php5.y:2735 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2736 + // line internal/php5/php5.y:2739 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4952,31 +4955,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2751 + // line internal/php5/php5.y:2754 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2755 + // line internal/php5/php5.y:2758 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2762 + // line internal/php5/php5.y:2765 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2766 + // line internal/php5/php5.y:2769 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2773 + // line internal/php5/php5.y:2776 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +4991,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2783 + // line internal/php5/php5.y:2786 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +5003,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2793 + // line internal/php5/php5.y:2796 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +5015,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2803 + // line internal/php5/php5.y:2806 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,7 +5027,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2813 + // line internal/php5/php5.y:2816 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5036,7 +5039,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2823 + // line internal/php5/php5.y:2826 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5048,7 +5051,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2836 + // line internal/php5/php5.y:2839 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5075,7 +5078,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2861 + // line internal/php5/php5.y:2864 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5104,7 +5107,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2888 + // line internal/php5/php5.y:2891 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5131,7 +5134,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2913 + // line internal/php5/php5.y:2916 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5159,7 +5162,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2942 + // line internal/php5/php5.y:2945 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5185,7 +5188,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2966 + // line internal/php5/php5.y:2969 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5214,7 +5217,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2996 + // line internal/php5/php5.y:2999 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5223,7 +5226,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3003 + // line internal/php5/php5.y:3006 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5231,19 +5234,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3013 + // line internal/php5/php5.y:3016 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3017 + // line internal/php5/php5.y:3020 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3024 + // line internal/php5/php5.y:3027 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5252,25 +5255,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3031 + // line internal/php5/php5.y:3034 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3038 + // line internal/php5/php5.y:3041 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3042 + // line internal/php5/php5.y:3045 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3049 + // line internal/php5/php5.y:3052 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5286,7 +5289,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3063 + // line internal/php5/php5.y:3066 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5302,37 +5305,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3083 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3084 + // line internal/php5/php5.y:3087 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3088 + // line internal/php5/php5.y:3091 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3095 + // line internal/php5/php5.y:3098 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3099 + // line internal/php5/php5.y:3102 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3106 + // line internal/php5/php5.y:3109 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5356,7 +5359,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3131 + // line internal/php5/php5.y:3134 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5378,7 +5381,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3151 + // line internal/php5/php5.y:3154 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5391,7 +5394,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3162 + // line internal/php5/php5.y:3165 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5405,7 +5408,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3174 + // line internal/php5/php5.y:3177 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5441,7 +5444,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3208 + // line internal/php5/php5.y:3211 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5453,7 +5456,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3218 + // line internal/php5/php5.y:3221 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5466,7 +5469,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3229 + // line internal/php5/php5.y:3232 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5479,7 +5482,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3240 + // line internal/php5/php5.y:3243 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5492,7 +5495,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3251 + // line internal/php5/php5.y:3254 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5505,7 +5508,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3262 + // line internal/php5/php5.y:3265 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5518,7 +5521,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5531,7 +5534,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3284 + // line internal/php5/php5.y:3287 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5544,7 +5547,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3298 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5557,7 +5560,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3306 + // line internal/php5/php5.y:3309 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5570,7 +5573,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3317 + // line internal/php5/php5.y:3320 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5583,7 +5586,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3331 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5596,7 +5599,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3339 + // line internal/php5/php5.y:3342 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5609,7 +5612,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3350 + // line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5621,7 +5624,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3360 + // line internal/php5/php5.y:3363 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5633,7 +5636,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3373 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5645,7 +5648,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3383 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5657,7 +5660,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3390 + // line internal/php5/php5.y:3393 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5670,7 +5673,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3401 + // line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5683,7 +5686,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3412 + // line internal/php5/php5.y:3415 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5696,7 +5699,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3423 + // line internal/php5/php5.y:3426 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5709,7 +5712,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3437 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5722,7 +5725,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3445 + // line internal/php5/php5.y:3448 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5735,7 +5738,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3456 + // line internal/php5/php5.y:3459 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5748,7 +5751,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3467 + // line internal/php5/php5.y:3470 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5761,7 +5764,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3478 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5774,7 +5777,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3489 + // line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5787,7 +5790,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3500 + // line internal/php5/php5.y:3503 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5800,7 +5803,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3511 + // line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5813,7 +5816,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3522 + // line internal/php5/php5.y:3525 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5826,7 +5829,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3533 + // line internal/php5/php5.y:3536 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5839,7 +5842,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3544 + // line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5852,7 +5855,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3555 + // line internal/php5/php5.y:3558 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5865,7 +5868,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3566 + // line internal/php5/php5.y:3569 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5878,7 +5881,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3577 + // line internal/php5/php5.y:3580 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5890,7 +5893,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3587 + // line internal/php5/php5.y:3590 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5902,7 +5905,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3597 + // line internal/php5/php5.y:3600 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5914,7 +5917,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3607 + // line internal/php5/php5.y:3610 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5926,7 +5929,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3617 + // line internal/php5/php5.y:3620 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5939,7 +5942,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3628 + // line internal/php5/php5.y:3631 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5952,7 +5955,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3639 + // line internal/php5/php5.y:3642 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5965,7 +5968,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3650 + // line internal/php5/php5.y:3653 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5979,7 +5982,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3662 + // line internal/php5/php5.y:3665 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5992,7 +5995,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3673 + // line internal/php5/php5.y:3676 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -6005,7 +6008,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3684 + // line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -6018,7 +6021,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3695 + // line internal/php5/php5.y:3698 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -6031,7 +6034,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3706 + // line internal/php5/php5.y:3709 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6044,19 +6047,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3717 + // line internal/php5/php5.y:3720 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3721 + // line internal/php5/php5.y:3724 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3725 + // line internal/php5/php5.y:3728 { yyVAL.node = yyDollar[2].node @@ -6090,7 +6093,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3757 + // line internal/php5/php5.y:3760 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6105,7 +6108,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3770 + // line internal/php5/php5.y:3773 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6119,13 +6122,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3782 + // line internal/php5/php5.y:3785 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3786 + // line internal/php5/php5.y:3789 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6137,7 +6140,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3796 + // line internal/php5/php5.y:3799 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6149,7 +6152,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3806 + // line internal/php5/php5.y:3809 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6161,7 +6164,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3816 + // line internal/php5/php5.y:3819 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6173,7 +6176,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3826 + // line internal/php5/php5.y:3829 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6185,7 +6188,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3836 + // line internal/php5/php5.y:3839 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6197,7 +6200,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3846 + // line internal/php5/php5.y:3849 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6209,7 +6212,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3856 + // line internal/php5/php5.y:3859 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6228,7 +6231,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3876 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6240,25 +6243,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3883 + // line internal/php5/php5.y:3886 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3887 + // line internal/php5/php5.y:3890 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3891 + // line internal/php5/php5.y:3894 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3895 + // line internal/php5/php5.y:3898 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6271,7 +6274,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3906 + // line internal/php5/php5.y:3909 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6283,7 +6286,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3916 + // line internal/php5/php5.y:3919 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6294,7 +6297,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3925 + // line internal/php5/php5.y:3928 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6313,7 +6316,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3942 + // line internal/php5/php5.y:3945 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6333,7 +6336,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3966 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6345,7 +6348,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3973 + // line internal/php5/php5.y:3976 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6357,7 +6360,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3983 + // line internal/php5/php5.y:3986 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6371,7 +6374,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3995 + // line internal/php5/php5.y:3998 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6385,7 +6388,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4010 + // line internal/php5/php5.y:4013 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6399,7 +6402,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4022 + // line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6413,7 +6416,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4034 + // line internal/php5/php5.y:4037 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6433,7 +6436,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4052 + // line internal/php5/php5.y:4055 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6447,7 +6450,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4067 + // line internal/php5/php5.y:4070 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6462,7 +6465,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4080 + // line internal/php5/php5.y:4083 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6476,19 +6479,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4095 + // line internal/php5/php5.y:4098 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4102 + // line internal/php5/php5.y:4105 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4106 + // line internal/php5/php5.y:4109 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6503,7 +6506,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4122 + // line internal/php5/php5.y:4125 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6525,7 +6528,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4142 + // line internal/php5/php5.y:4145 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6553,7 +6556,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4168 + // line internal/php5/php5.y:4171 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6574,7 +6577,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4187 + // line internal/php5/php5.y:4190 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6601,7 +6604,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4215 + // line internal/php5/php5.y:4218 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6620,7 +6623,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4232 + // line internal/php5/php5.y:4235 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6641,7 +6644,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4251 + // line internal/php5/php5.y:4254 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6661,7 +6664,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4269 + // line internal/php5/php5.y:4272 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6677,7 +6680,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4283 + // line internal/php5/php5.y:4286 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6693,7 +6696,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4297 + // line internal/php5/php5.y:4300 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6709,7 +6712,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4311 + // line internal/php5/php5.y:4314 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6725,7 +6728,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4325 + // line internal/php5/php5.y:4328 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6739,7 +6742,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4340 + // line internal/php5/php5.y:4343 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6751,7 +6754,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4350 + // line internal/php5/php5.y:4353 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6762,7 +6765,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4359 + // line internal/php5/php5.y:4362 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6775,7 +6778,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4370 + // line internal/php5/php5.y:4373 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6787,7 +6790,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4383 + // line internal/php5/php5.y:4386 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6798,7 +6801,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4392 + // line internal/php5/php5.y:4395 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6811,7 +6814,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4403 + // line internal/php5/php5.y:4406 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6823,19 +6826,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4416 + // line internal/php5/php5.y:4419 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4423 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4427 + // line internal/php5/php5.y:4430 { yyVAL.node = yyDollar[1].node @@ -6876,25 +6879,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4466 + // line internal/php5/php5.y:4469 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4474 + // line internal/php5/php5.y:4477 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4478 + // line internal/php5/php5.y:4481 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4489 { yyVAL.list = yyDollar[2].list @@ -6903,13 +6906,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4496 + // line internal/php5/php5.y:4499 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4500 + // line internal/php5/php5.y:4503 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6925,19 +6928,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4514 + // line internal/php5/php5.y:4517 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4524 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4528 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6951,25 +6954,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4537 + // line internal/php5/php5.y:4540 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4544 + // line internal/php5/php5.y:4547 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4548 + // line internal/php5/php5.y:4551 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4555 + // line internal/php5/php5.y:4558 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6981,7 +6984,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4565 + // line internal/php5/php5.y:4568 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6993,7 +6996,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4575 + // line internal/php5/php5.y:4578 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7005,7 +7008,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4585 + // line internal/php5/php5.y:4588 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7017,7 +7020,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4595 + // line internal/php5/php5.y:4598 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7029,7 +7032,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4605 + // line internal/php5/php5.y:4608 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7041,7 +7044,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4615 + // line internal/php5/php5.y:4618 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7053,7 +7056,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4625 + // line internal/php5/php5.y:4628 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7065,7 +7068,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4635 + // line internal/php5/php5.y:4638 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7077,7 +7080,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4645 + // line internal/php5/php5.y:4648 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7089,7 +7092,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4655 + // line internal/php5/php5.y:4658 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7110,7 +7113,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4674 + // line internal/php5/php5.y:4677 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7122,7 +7125,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4687 + // line internal/php5/php5.y:4690 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7141,25 +7144,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4707 + // line internal/php5/php5.y:4710 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4714 + // line internal/php5/php5.y:4717 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4718 + // line internal/php5/php5.y:4721 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4722 + // line internal/php5/php5.y:4725 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7175,7 +7178,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4736 + // line internal/php5/php5.y:4739 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7193,7 +7196,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4752 + // line internal/php5/php5.y:4755 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7210,7 +7213,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4767 + // line internal/php5/php5.y:4770 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7225,7 +7228,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4780 + // line internal/php5/php5.y:4783 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7239,13 +7242,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4792 + // line internal/php5/php5.y:4795 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4796 + // line internal/php5/php5.y:4799 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7257,13 +7260,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4806 + // line internal/php5/php5.y:4809 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4813 + // line internal/php5/php5.y:4816 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7277,7 +7280,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4825 + // line internal/php5/php5.y:4828 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7290,7 +7293,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4836 + // line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7303,7 +7306,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4847 + // line internal/php5/php5.y:4850 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7316,7 +7319,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4858 + // line internal/php5/php5.y:4861 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7329,7 +7332,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4869 + // line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7342,7 +7345,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4880 + // line internal/php5/php5.y:4883 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7355,7 +7358,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7367,7 +7370,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4901 + // line internal/php5/php5.y:4904 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7379,7 +7382,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4911 + // line internal/php5/php5.y:4914 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7392,7 +7395,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4922 + // line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7405,7 +7408,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4933 + // line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7418,7 +7421,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4944 + // line internal/php5/php5.y:4947 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7431,7 +7434,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4955 + // line internal/php5/php5.y:4958 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7444,7 +7447,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4966 + // line internal/php5/php5.y:4969 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7457,7 +7460,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4977 + // line internal/php5/php5.y:4980 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7470,7 +7473,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4988 + // line internal/php5/php5.y:4991 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7483,7 +7486,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4999 + // line internal/php5/php5.y:5002 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7496,7 +7499,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5010 + // line internal/php5/php5.y:5013 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7509,7 +7512,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5024 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7522,7 +7525,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5035 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7535,7 +7538,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5043 + // line internal/php5/php5.y:5046 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7548,7 +7551,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5054 + // line internal/php5/php5.y:5057 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7561,7 +7564,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5065 + // line internal/php5/php5.y:5068 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7575,7 +7578,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5077 + // line internal/php5/php5.y:5080 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7588,7 +7591,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5088 + // line internal/php5/php5.y:5091 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7601,7 +7604,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5099 + // line internal/php5/php5.y:5102 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7614,7 +7617,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5110 + // line internal/php5/php5.y:5113 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7627,7 +7630,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5121 + // line internal/php5/php5.y:5124 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7641,7 +7644,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5133 + // line internal/php5/php5.y:5136 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7656,7 +7659,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5146 + // line internal/php5/php5.y:5149 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7668,7 +7671,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5156 + // line internal/php5/php5.y:5159 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7680,7 +7683,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5166 + // line internal/php5/php5.y:5169 { yyVAL.node = yyDollar[2].node @@ -7690,13 +7693,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5177 + // line internal/php5/php5.y:5180 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5181 + // line internal/php5/php5.y:5184 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7712,7 +7715,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5195 + // line internal/php5/php5.y:5198 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7730,7 +7733,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5211 + // line internal/php5/php5.y:5214 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7747,7 +7750,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5229 + // line internal/php5/php5.y:5232 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7764,25 +7767,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5244 + // line internal/php5/php5.y:5247 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5248 + // line internal/php5/php5.y:5251 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5255 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5256 + // line internal/php5/php5.y:5259 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7795,7 +7798,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5267 + // line internal/php5/php5.y:5270 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7808,7 +7811,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5281 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7820,13 +7823,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5291 + // line internal/php5/php5.y:5294 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5295 + // line internal/php5/php5.y:5298 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7837,19 +7840,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5310 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5311 + // line internal/php5/php5.y:5314 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5318 + // line internal/php5/php5.y:5321 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7867,7 +7870,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5334 + // line internal/php5/php5.y:5337 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7883,7 +7886,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5348 + // line internal/php5/php5.y:5351 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7900,7 +7903,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5363 + // line internal/php5/php5.y:5366 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7915,19 +7918,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5379 + // line internal/php5/php5.y:5382 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5383 + // line internal/php5/php5.y:5386 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5390 + // line internal/php5/php5.y:5393 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7944,7 +7947,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5405 + // line internal/php5/php5.y:5408 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7961,25 +7964,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5424 + // line internal/php5/php5.y:5427 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5432 + // line internal/php5/php5.y:5435 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5439 + // line internal/php5/php5.y:5442 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5446 + // line internal/php5/php5.y:5449 { yyVAL.node = yyDollar[1].node @@ -8057,25 +8060,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5522 + // line internal/php5/php5.y:5525 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5529 + // line internal/php5/php5.y:5532 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5533 + // line internal/php5/php5.y:5536 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5541 + // line internal/php5/php5.y:5544 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8106,7 +8109,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5572 + // line internal/php5/php5.y:5575 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8122,7 +8125,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5586 + // line internal/php5/php5.y:5589 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8138,7 +8141,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5603 + // line internal/php5/php5.y:5606 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8151,31 +8154,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5617 + // line internal/php5/php5.y:5620 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5621 + // line internal/php5/php5.y:5624 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5625 + // line internal/php5/php5.y:5628 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5632 + // line internal/php5/php5.y:5635 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5636 + // line internal/php5/php5.y:5639 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8187,7 +8190,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5649 + // line internal/php5/php5.y:5652 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8200,7 +8203,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5660 + // line internal/php5/php5.y:5663 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8213,13 +8216,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5674 + // line internal/php5/php5.y:5677 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5681 + // line internal/php5/php5.y:5684 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8233,7 +8236,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5693 + // line internal/php5/php5.y:5696 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8247,31 +8250,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5708 + // line internal/php5/php5.y:5711 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5712 + // line internal/php5/php5.y:5715 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5716 + // line internal/php5/php5.y:5719 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5724 + // line internal/php5/php5.y:5727 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5728 + // line internal/php5/php5.y:5731 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8283,13 +8286,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5738 + // line internal/php5/php5.y:5741 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5745 + // line internal/php5/php5.y:5748 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8303,7 +8306,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5757 + // line internal/php5/php5.y:5760 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8317,13 +8320,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5769 + // line internal/php5/php5.y:5772 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5777 + // line internal/php5/php5.y:5780 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8340,7 +8343,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5792 + // line internal/php5/php5.y:5795 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8359,25 +8362,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5812 + // line internal/php5/php5.y:5815 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5816 + // line internal/php5/php5.y:5819 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5824 + // line internal/php5/php5.y:5827 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5828 + // line internal/php5/php5.y:5831 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8390,7 +8393,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5842 + // line internal/php5/php5.y:5845 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8406,7 +8409,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5856 + // line internal/php5/php5.y:5859 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8422,7 +8425,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5870 + // line internal/php5/php5.y:5873 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8435,7 +8438,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5884 + // line internal/php5/php5.y:5887 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8447,7 +8450,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5894 + // line internal/php5/php5.y:5897 { yyVAL.node = yyDollar[2].node @@ -8460,7 +8463,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5908 + // line internal/php5/php5.y:5911 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8473,7 +8476,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5919 + // line internal/php5/php5.y:5922 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8484,7 +8487,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5931 + // line internal/php5/php5.y:5934 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8493,7 +8496,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5938 + // line internal/php5/php5.y:5941 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8501,7 +8504,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5948 + // line internal/php5/php5.y:5951 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8512,7 +8515,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5957 + // line internal/php5/php5.y:5960 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8539,19 +8542,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5982 + // line internal/php5/php5.y:5985 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5990 + // line internal/php5/php5.y:5993 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5994 + // line internal/php5/php5.y:5997 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8562,7 +8565,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:6006 + // line internal/php5/php5.y:6009 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8580,7 +8583,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6022 + // line internal/php5/php5.y:6025 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8596,7 +8599,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6036 + // line internal/php5/php5.y:6039 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8613,7 +8616,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6051 + // line internal/php5/php5.y:6054 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8628,7 +8631,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6064 + // line internal/php5/php5.y:6067 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8652,7 +8655,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6089 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8674,7 +8677,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6106 + // line internal/php5/php5.y:6109 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8697,7 +8700,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6127 + // line internal/php5/php5.y:6130 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8718,13 +8721,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6149 + // line internal/php5/php5.y:6152 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6153 + // line internal/php5/php5.y:6156 { yyVAL.list = append( yyDollar[1].list, @@ -8739,13 +8742,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6166 + // line internal/php5/php5.y:6169 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6170 + // line internal/php5/php5.y:6173 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8760,7 +8763,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6186 + // line internal/php5/php5.y:6189 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8777,7 +8780,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6201 + // line internal/php5/php5.y:6204 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8802,7 +8805,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6224 + // line internal/php5/php5.y:6227 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8832,7 +8835,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6252 + // line internal/php5/php5.y:6255 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8850,7 +8853,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6268 + // line internal/php5/php5.y:6271 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8874,7 +8877,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6290 + // line internal/php5/php5.y:6293 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8906,7 +8909,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6320 + // line internal/php5/php5.y:6323 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8919,7 +8922,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6334 + // line internal/php5/php5.y:6337 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8931,7 +8934,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6344 + // line internal/php5/php5.y:6347 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8960,7 +8963,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6371 + // line internal/php5/php5.y:6374 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8977,7 +8980,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6389 + // line internal/php5/php5.y:6392 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8992,7 +8995,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6402 + // line internal/php5/php5.y:6405 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9006,7 +9009,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6414 + // line internal/php5/php5.y:6417 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9020,7 +9023,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6426 + // line internal/php5/php5.y:6429 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9032,7 +9035,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6436 + // line internal/php5/php5.y:6439 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9044,7 +9047,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6446 + // line internal/php5/php5.y:6449 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9058,7 +9061,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6458 + // line internal/php5/php5.y:6461 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9070,7 +9073,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6468 + // line internal/php5/php5.y:6471 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9082,7 +9085,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6481 + // line internal/php5/php5.y:6484 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9090,7 +9093,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6487 + // line internal/php5/php5.y:6490 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9099,19 +9102,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6497 + // line internal/php5/php5.y:6500 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6501 + // line internal/php5/php5.y:6504 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6508 + // line internal/php5/php5.y:6511 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9130,7 +9133,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6525 + // line internal/php5/php5.y:6528 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9149,7 +9152,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6545 + // line internal/php5/php5.y:6548 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9168,7 +9171,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6565 + // line internal/php5/php5.y:6568 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 3f5ef26..d3072b8 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -267,10 +267,13 @@ import ( start: top_statement_list { - yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} - yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) + yylex.(*Parser).rootNode = &ast.Root{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Stmts: $1, + EndTkn: yylex.(*Parser).currentToken, + } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 3704052..b85c2a1 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5018 +// line internal/php7/php7.y:5021 // line yacctab:1 var yyExca = [...]int{ @@ -2112,478 +2112,479 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:290 { - yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, yyDollar[1].list} - - // save position - yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition(yyDollar[1].list) - - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) + yylex.(*Parser).rootNode = &ast.Root{ + Node: ast.Node{ + Position: position.NewNodeListPosition(yyDollar[1].list), + }, + Stmts: yyDollar[1].list, + EndTkn: yylex.(*Parser).currentToken, + } } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 + // line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:331 + // line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2596,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:342 + // line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:349 + // line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2616,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:361 + // line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2629,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:375 + // line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:384 + // line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2653,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:395 + // line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2665,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:408 + // line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:413 + // line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 + // line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 + // line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 + // line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 + // line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:433 + // line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2716,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:445 + // line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2734,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:461 + // line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2754,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:479 + // line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2768,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:491 + // line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2780,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:501 + // line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2793,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:512 + // line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2806,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:523 + // line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2820,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:535 + // line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2834,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:550 + // line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2846,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:560 + // line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2858,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:573 + // line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2882,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:595 + // line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2905,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:619 + // line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2927,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:639 + // line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2950,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:663 + // line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:667 + // line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:674 + // line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2970,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:680 + // line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:687 + // line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2984,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:693 + // line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:700 + // line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2998,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:706 + // line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:713 + // line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:717 + // line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3020,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:728 + // line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3036,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:742 + // line internal/php7/php7.y:743 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3060,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:767 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:771 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3076,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:782 + // line internal/php7/php7.y:783 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3085,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 + // line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3093,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:798 + // line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3106,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:809 + // line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:816 + // line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:821 + // line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:825 + // line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:829 + // line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:833 + // line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 + // line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:841 + // line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3163,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:855 + // line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3176,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:866 + // line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 + // line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:874 + // line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3200,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:884 + // line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3217,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:899 + // line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3233,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:913 + // line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3245,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:923 + // line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3258,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:934 + // line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3271,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:945 + // line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3284,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:956 + // line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3294,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:964 + // line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3304,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:972 + // line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3314,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:980 + // line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3326,7 +3327,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:990 + // line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3338,7 +3339,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1000 + // line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3351,7 +3352,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1011 + // line internal/php7/php7.y:1012 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3365,7 +3366,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1023 + // line internal/php7/php7.y:1024 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3381,7 +3382,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1037 + // line internal/php7/php7.y:1038 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3394,7 +3395,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1048 + // line internal/php7/php7.y:1049 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3405,7 +3406,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1057 + // line internal/php7/php7.y:1058 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3424,7 +3425,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1074 + // line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3437,7 +3438,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1085 + // line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3456,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1102 + // line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3474,13 +3475,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1124 + // line internal/php7/php7.y:1125 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3507,7 +3508,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1151 + // line internal/php7/php7.y:1152 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3515,7 +3516,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1157 + // line internal/php7/php7.y:1158 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3524,13 +3525,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1167 + // line internal/php7/php7.y:1168 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1171 + // line internal/php7/php7.y:1172 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3544,7 +3545,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1186 + // line internal/php7/php7.y:1187 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3552,7 +3553,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1192 + // line internal/php7/php7.y:1193 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3561,13 +3562,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1202 + // line internal/php7/php7.y:1203 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1209 + // line internal/php7/php7.y:1210 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3594,31 +3595,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1237 + // line internal/php7/php7.y:1238 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1241 + // line internal/php7/php7.y:1242 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1248 + // line internal/php7/php7.y:1249 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1253 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1259 + // line internal/php7/php7.y:1260 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3642,7 +3643,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1281 + // line internal/php7/php7.y:1282 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3665,19 +3666,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1305 + // line internal/php7/php7.y:1306 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1310 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1317 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3689,7 +3690,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1326 + // line internal/php7/php7.y:1327 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3701,7 +3702,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1339 + // line internal/php7/php7.y:1340 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3722,7 +3723,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1361 + // line internal/php7/php7.y:1362 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3744,13 +3745,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1384 + // line internal/php7/php7.y:1385 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1388 + // line internal/php7/php7.y:1389 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3762,13 +3763,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1401 + // line internal/php7/php7.y:1402 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1406 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3781,13 +3782,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1419 + // line internal/php7/php7.y:1420 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1424 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3800,13 +3801,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1437 + // line internal/php7/php7.y:1438 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1442 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3818,7 +3819,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1451 + // line internal/php7/php7.y:1452 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3833,7 +3834,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1464 + // line internal/php7/php7.y:1465 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3847,7 +3848,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1479 + // line internal/php7/php7.y:1480 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3858,7 +3859,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1489 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3878,7 +3879,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1509 + // line internal/php7/php7.y:1510 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3889,7 +3890,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1518 + // line internal/php7/php7.y:1519 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3909,7 +3910,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1539 + // line internal/php7/php7.y:1540 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3920,7 +3921,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1548 + // line internal/php7/php7.y:1549 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3940,7 +3941,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1569 + // line internal/php7/php7.y:1570 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3953,7 +3954,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1580 + // line internal/php7/php7.y:1581 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3967,7 +3968,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1592 + // line internal/php7/php7.y:1593 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3982,7 +3983,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1605 + // line internal/php7/php7.y:1606 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3998,13 +3999,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1622 + // line internal/php7/php7.y:1623 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1627 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4018,7 +4019,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1638 + // line internal/php7/php7.y:1639 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4031,19 +4032,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1652 + // line internal/php7/php7.y:1653 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1657 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1664 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4054,7 +4055,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1672 + // line internal/php7/php7.y:1673 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4074,7 +4075,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1693 + // line internal/php7/php7.y:1694 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4089,7 +4090,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1706 + // line internal/php7/php7.y:1707 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4108,13 +4109,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1726 + // line internal/php7/php7.y:1727 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1730 + // line internal/php7/php7.y:1731 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4130,7 +4131,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1747 + // line internal/php7/php7.y:1748 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4152,7 +4153,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1767 + // line internal/php7/php7.y:1768 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4176,7 +4177,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1792 + // line internal/php7/php7.y:1793 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4186,7 +4187,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1800 + // line internal/php7/php7.y:1801 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4210,25 +4211,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1825 + // line internal/php7/php7.y:1826 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1829 + // line internal/php7/php7.y:1830 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1836 + // line internal/php7/php7.y:1837 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1841 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4237,7 +4238,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1850 + // line internal/php7/php7.y:1851 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4292,7 +4293,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1903 + // line internal/php7/php7.y:1904 { var variable ast.Vertex variable = &ast.ExprVariable{ @@ -4349,25 +4350,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1961 + // line internal/php7/php7.y:1962 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1965 + // line internal/php7/php7.y:1966 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1972 + // line internal/php7/php7.y:1973 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1976 + // line internal/php7/php7.y:1977 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4379,7 +4380,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1989 + // line internal/php7/php7.y:1990 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4391,7 +4392,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1999 + // line internal/php7/php7.y:2000 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4403,19 +4404,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2009 + // line internal/php7/php7.y:2010 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2016 + // line internal/php7/php7.y:2017 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2020 + // line internal/php7/php7.y:2021 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4424,7 +4425,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2030 + // line internal/php7/php7.y:2031 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4436,7 +4437,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2040 + // line internal/php7/php7.y:2041 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4448,7 +4449,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2054 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4456,7 +4457,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2060 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4465,7 +4466,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2069 + // line internal/php7/php7.y:2070 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4476,7 +4477,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2078 + // line internal/php7/php7.y:2079 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4488,7 +4489,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2091 + // line internal/php7/php7.y:2092 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4497,7 +4498,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2099 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4505,13 +4506,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2107 + // line internal/php7/php7.y:2108 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2115 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4520,7 +4521,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2121 + // line internal/php7/php7.y:2122 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4528,7 +4529,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2130 + // line internal/php7/php7.y:2131 { yyVAL.node = &ast.StmtStaticVar{ @@ -4551,7 +4552,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2152 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4575,19 +4576,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2176 + // line internal/php7/php7.y:2177 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2180 + // line internal/php7/php7.y:2181 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2187 + // line internal/php7/php7.y:2188 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4602,7 +4603,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2200 + // line internal/php7/php7.y:2201 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4616,7 +4617,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2212 + // line internal/php7/php7.y:2213 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4630,7 +4631,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2224 + // line internal/php7/php7.y:2225 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4661,7 +4662,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2256 + // line internal/php7/php7.y:2257 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4669,7 +4670,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2262 + // line internal/php7/php7.y:2263 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4678,7 +4679,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2273 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4689,7 +4690,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2282 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4701,7 +4702,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2291 + // line internal/php7/php7.y:2292 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4714,19 +4715,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2305 + // line internal/php7/php7.y:2306 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2309 + // line internal/php7/php7.y:2310 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2316 + // line internal/php7/php7.y:2317 { yyVAL.node = yyDollar[1].node @@ -4736,7 +4737,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2325 { yyVAL.node = yyDollar[1].node @@ -4746,7 +4747,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2335 + // line internal/php7/php7.y:2336 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4760,7 +4761,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2350 + // line internal/php7/php7.y:2351 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4779,7 +4780,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2367 + // line internal/php7/php7.y:2368 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4798,7 +4799,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2384 + // line internal/php7/php7.y:2385 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4818,7 +4819,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2403 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4831,7 +4832,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2417 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4848,13 +4849,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2432 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2438 + // line internal/php7/php7.y:2439 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4873,7 +4874,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2458 + // line internal/php7/php7.y:2459 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4884,7 +4885,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2468 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4897,13 +4898,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2481 + // line internal/php7/php7.y:2482 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2485 + // line internal/php7/php7.y:2486 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4917,31 +4918,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2500 + // line internal/php7/php7.y:2501 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2504 + // line internal/php7/php7.y:2505 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2511 + // line internal/php7/php7.y:2512 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2516 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2523 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4953,7 +4954,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2532 + // line internal/php7/php7.y:2533 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4965,7 +4966,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2542 + // line internal/php7/php7.y:2543 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4977,7 +4978,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2552 + // line internal/php7/php7.y:2553 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4989,7 +4990,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2563 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5001,7 +5002,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2572 + // line internal/php7/php7.y:2573 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5014,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2586 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5022,7 +5023,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2592 + // line internal/php7/php7.y:2593 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5030,7 +5031,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2601 + // line internal/php7/php7.y:2602 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5053,7 +5054,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2622 + // line internal/php7/php7.y:2623 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5077,7 +5078,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2647 + // line internal/php7/php7.y:2648 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5085,13 +5086,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2654 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2660 + // line internal/php7/php7.y:2661 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5112,7 +5113,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2682 + // line internal/php7/php7.y:2683 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5133,7 +5134,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2704 + // line internal/php7/php7.y:2705 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5142,7 +5143,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2711 + // line internal/php7/php7.y:2712 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5150,25 +5151,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2721 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2727 + // line internal/php7/php7.y:2728 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2731 + // line internal/php7/php7.y:2732 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2738 + // line internal/php7/php7.y:2739 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5177,30 +5178,32 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2745 + // line internal/php7/php7.y:2746 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2752 + // line internal/php7/php7.y:2753 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), }, - ClassTkn: yyDollar[1].token, - ArgumentList: yyDollar[2].node, - Extends: yyDollar[3].node, - Implements: yyDollar[4].node, - OpenCurlyBracket: yyDollar[6].token, - Stmts: yyDollar[7].list, - CloseCurlyBracket: yyDollar[8].token, + ClassTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Extends: yyDollar[3].node, + Implements: yyDollar[4].node, + OpenCurlyBracket: yyDollar[6].token, + Stmts: yyDollar[7].list, + CloseCurlyBracket: yyDollar[8].token, } } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2773 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5225,7 +5228,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2793 + // line internal/php7/php7.y:2796 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5237,7 +5240,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2809 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5259,7 +5262,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2826 + // line internal/php7/php7.y:2829 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5280,7 +5283,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2848 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5293,7 +5296,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2859 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5307,7 +5310,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2868 + // line internal/php7/php7.y:2871 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5319,7 +5322,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2881 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5332,7 +5335,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5345,7 +5348,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2903 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5358,7 +5361,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2914 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5371,7 +5374,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2925 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5384,7 +5387,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2936 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5397,7 +5400,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2944 + // line internal/php7/php7.y:2947 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5410,7 +5413,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2958 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5423,7 +5426,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2966 + // line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5436,7 +5439,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2980 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5449,7 +5452,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2991 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5462,7 +5465,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2999 + // line internal/php7/php7.y:3002 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5475,7 +5478,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3010 + // line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprAssignCoalesce{ Node: ast.Node{ @@ -5488,7 +5491,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3021 + // line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5500,7 +5503,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3034 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5512,7 +5515,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3044 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5524,7 +5527,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3051 + // line internal/php7/php7.y:3054 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5536,7 +5539,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3061 + // line internal/php7/php7.y:3064 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5549,7 +5552,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3072 + // line internal/php7/php7.y:3075 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5562,7 +5565,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3086 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5575,7 +5578,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3094 + // line internal/php7/php7.y:3097 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5588,7 +5591,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3108 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5601,7 +5604,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3116 + // line internal/php7/php7.y:3119 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5614,7 +5617,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3130 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5627,7 +5630,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3138 + // line internal/php7/php7.y:3141 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5640,7 +5643,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3152 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5653,7 +5656,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3163 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5666,7 +5669,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3171 + // line internal/php7/php7.y:3174 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5679,7 +5682,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3182 + // line internal/php7/php7.y:3185 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5692,7 +5695,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3196 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5705,7 +5708,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3204 + // line internal/php7/php7.y:3207 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5718,7 +5721,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3218 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5731,7 +5734,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3226 + // line internal/php7/php7.y:3229 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5744,7 +5747,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3237 + // line internal/php7/php7.y:3240 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5757,7 +5760,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3248 + // line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5769,7 +5772,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3258 + // line internal/php7/php7.y:3261 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5781,7 +5784,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3268 + // line internal/php7/php7.y:3271 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5793,7 +5796,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3278 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5805,7 +5808,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3288 + // line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5818,7 +5821,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3299 + // line internal/php7/php7.y:3302 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5831,7 +5834,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3313 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5844,7 +5847,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3321 + // line internal/php7/php7.y:3324 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5857,7 +5860,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3332 + // line internal/php7/php7.y:3335 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5870,7 +5873,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3343 + // line internal/php7/php7.y:3346 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5883,7 +5886,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3354 + // line internal/php7/php7.y:3357 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5896,7 +5899,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3368 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5909,7 +5912,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3376 + // line internal/php7/php7.y:3379 { yyVAL.node = &ast.ExprBinarySpaceship{ Node: ast.Node{ @@ -5922,7 +5925,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3390 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5935,7 +5938,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3398 + // line internal/php7/php7.y:3401 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5952,13 +5955,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3413 + // line internal/php7/php7.y:3416 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3417 + // line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5973,7 +5976,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3433 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5987,7 +5990,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3445 { yyVAL.node = &ast.ExprBinaryCoalesce{ Node: ast.Node{ @@ -6000,13 +6003,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3456 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3457 + // line internal/php7/php7.y:3460 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6018,7 +6021,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3467 + // line internal/php7/php7.y:3470 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6030,7 +6033,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3480 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6042,7 +6045,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3487 + // line internal/php7/php7.y:3490 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6054,7 +6057,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3497 + // line internal/php7/php7.y:3500 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6066,7 +6069,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3507 + // line internal/php7/php7.y:3510 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6078,7 +6081,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3517 + // line internal/php7/php7.y:3520 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6090,7 +6093,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3527 + // line internal/php7/php7.y:3530 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6109,7 +6112,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3544 + // line internal/php7/php7.y:3547 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6121,13 +6124,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3554 + // line internal/php7/php7.y:3557 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3558 + // line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6140,7 +6143,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3569 + // line internal/php7/php7.y:3572 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6152,7 +6155,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3579 + // line internal/php7/php7.y:3582 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6163,7 +6166,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3588 + // line internal/php7/php7.y:3591 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6175,7 +6178,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3598 + // line internal/php7/php7.y:3601 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6189,7 +6192,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3613 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6201,13 +6204,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3623 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3624 + // line internal/php7/php7.y:3627 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6222,7 +6225,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3640 + // line internal/php7/php7.y:3643 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6243,7 +6246,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3662 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6262,25 +6265,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3683 + // line internal/php7/php7.y:3686 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3687 + // line internal/php7/php7.y:3690 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3697 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3698 + // line internal/php7/php7.y:3701 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6295,7 +6298,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3714 + // line internal/php7/php7.y:3717 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6304,7 +6307,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3724 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6312,7 +6315,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3730 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6329,7 +6332,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3745 + // line internal/php7/php7.y:3748 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6352,7 +6355,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3769 + // line internal/php7/php7.y:3772 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6366,7 +6369,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6382,7 +6385,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3795 + // line internal/php7/php7.y:3798 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6398,7 +6401,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6412,7 +6415,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3824 + // line internal/php7/php7.y:3827 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6424,31 +6427,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3834 + // line internal/php7/php7.y:3837 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3844 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3845 + // line internal/php7/php7.y:3848 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3855 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3856 + // line internal/php7/php7.y:3859 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6465,13 +6468,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3877 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3878 + // line internal/php7/php7.y:3881 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6485,25 +6488,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3890 + // line internal/php7/php7.y:3893 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3897 + // line internal/php7/php7.y:3900 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3901 + // line internal/php7/php7.y:3904 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3908 + // line internal/php7/php7.y:3911 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6518,7 +6521,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3924 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6532,7 +6535,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3936 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6544,7 +6547,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3949 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6556,7 +6559,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3959 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6568,7 +6571,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3969 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6580,7 +6583,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3976 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6592,7 +6595,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3986 + // line internal/php7/php7.y:3989 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6604,7 +6607,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3996 + // line internal/php7/php7.y:3999 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6616,7 +6619,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4006 + // line internal/php7/php7.y:4009 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6628,7 +6631,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4019 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6640,7 +6643,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4026 + // line internal/php7/php7.y:4029 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6652,7 +6655,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4036 + // line internal/php7/php7.y:4039 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6664,7 +6667,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4046 + // line internal/php7/php7.y:4049 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6685,7 +6688,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4065 + // line internal/php7/php7.y:4068 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6697,7 +6700,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4078 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6710,7 +6713,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4086 + // line internal/php7/php7.y:4089 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6723,19 +6726,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4100 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4104 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4111 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6746,7 +6749,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4117 + // line internal/php7/php7.y:4120 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6765,7 +6768,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4134 + // line internal/php7/php7.y:4137 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6784,43 +6787,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4157 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4158 + // line internal/php7/php7.y:4161 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4165 + // line internal/php7/php7.y:4168 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4172 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4179 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4183 + // line internal/php7/php7.y:4186 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4187 + // line internal/php7/php7.y:4190 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6837,19 +6840,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4202 + // line internal/php7/php7.y:4205 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4209 + // line internal/php7/php7.y:4212 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4213 + // line internal/php7/php7.y:4216 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6866,19 +6869,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4231 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4235 + // line internal/php7/php7.y:4238 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4242 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6892,7 +6895,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4251 + // line internal/php7/php7.y:4254 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6906,7 +6909,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4263 + // line internal/php7/php7.y:4266 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6920,7 +6923,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4278 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6936,25 +6939,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4289 + // line internal/php7/php7.y:4292 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4296 + // line internal/php7/php7.y:4299 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4300 + // line internal/php7/php7.y:4303 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4307 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6967,7 +6970,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4321 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6984,7 +6987,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7003,7 +7006,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4350 + // line internal/php7/php7.y:4353 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7015,7 +7018,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4363 + // line internal/php7/php7.y:4366 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7028,7 +7031,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4374 + // line internal/php7/php7.y:4377 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7041,13 +7044,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4388 + // line internal/php7/php7.y:4391 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4392 + // line internal/php7/php7.y:4395 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7061,7 +7064,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4404 + // line internal/php7/php7.y:4407 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7075,7 +7078,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4416 + // line internal/php7/php7.y:4419 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7088,7 +7091,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4427 + // line internal/php7/php7.y:4430 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7101,7 +7104,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4438 + // line internal/php7/php7.y:4441 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7114,7 +7117,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4452 + // line internal/php7/php7.y:4455 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7126,7 +7129,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4462 + // line internal/php7/php7.y:4465 { yyVAL.node = yyDollar[2].node @@ -7136,13 +7139,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4473 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4477 + // line internal/php7/php7.y:4480 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7154,7 +7157,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4487 + // line internal/php7/php7.y:4490 { yyVAL.node = yyDollar[2].node @@ -7164,13 +7167,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4498 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4505 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7183,19 +7186,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4516 + // line internal/php7/php7.y:4519 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4520 + // line internal/php7/php7.y:4523 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4527 + // line internal/php7/php7.y:4530 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7204,7 +7207,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4534 + // line internal/php7/php7.y:4537 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7212,7 +7215,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4543 + // line internal/php7/php7.y:4546 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7225,7 +7228,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4554 + // line internal/php7/php7.y:4557 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7236,7 +7239,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4563 + // line internal/php7/php7.y:4566 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7255,7 +7258,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4580 + // line internal/php7/php7.y:4583 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7272,7 +7275,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4595 + // line internal/php7/php7.y:4598 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7284,7 +7287,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4605 + // line internal/php7/php7.y:4608 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7306,7 +7309,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4628 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7326,13 +7329,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4649 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4650 + // line internal/php7/php7.y:4653 { yyVAL.list = append( yyDollar[1].list, @@ -7347,13 +7350,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4663 + // line internal/php7/php7.y:4666 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4667 + // line internal/php7/php7.y:4670 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7368,7 +7371,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4683 + // line internal/php7/php7.y:4686 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7385,7 +7388,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4698 + // line internal/php7/php7.y:4701 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7410,7 +7413,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4721 + // line internal/php7/php7.y:4724 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7440,7 +7443,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4749 + // line internal/php7/php7.y:4752 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7458,7 +7461,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4765 + // line internal/php7/php7.y:4768 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7482,7 +7485,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4787 + // line internal/php7/php7.y:4790 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7514,7 +7517,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4817 + // line internal/php7/php7.y:4820 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7527,7 +7530,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4831 + // line internal/php7/php7.y:4834 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7539,7 +7542,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4841 + // line internal/php7/php7.y:4844 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7562,7 +7565,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4862 + // line internal/php7/php7.y:4865 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7595,7 +7598,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4893 + // line internal/php7/php7.y:4896 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7612,7 +7615,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4911 + // line internal/php7/php7.y:4914 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7631,7 +7634,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4928 + // line internal/php7/php7.y:4931 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7645,7 +7648,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4940 + // line internal/php7/php7.y:4943 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7657,7 +7660,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4953 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7669,7 +7672,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4960 + // line internal/php7/php7.y:4963 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7683,7 +7686,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4972 + // line internal/php7/php7.y:4975 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7695,7 +7698,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4982 + // line internal/php7/php7.y:4985 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7707,7 +7710,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4995 + // line internal/php7/php7.y:4998 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7715,7 +7718,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5001 + // line internal/php7/php7.y:5004 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7724,7 +7727,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5011 + // line internal/php7/php7.y:5014 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 25adcd7..e40fa5f 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -288,12 +288,13 @@ import ( start: top_statement_list { - yylex.(*Parser).rootNode = &ast.Root{ast.Node{}, $1} - - // save position - yylex.(*Parser).rootNode.GetNode().Position = position.NewNodeListPosition($1) - - yylex.(*Parser).setFreeFloating(yylex.(*Parser).rootNode, token.End, yylex.(*Parser).currentToken.SkippedTokens) + yylex.(*Parser).rootNode = &ast.Root{ + Node: ast.Node{ + Position: position.NewNodeListPosition($1), + }, + Stmts: $1, + EndTkn: yylex.(*Parser).currentToken, + } } ; @@ -2754,13 +2755,15 @@ anonymous_class: Node: ast.Node{ Position: position.NewTokensPosition($1, $8), }, - ClassTkn: $1, - ArgumentList: $2, - Extends: $3, - Implements: $4, - OpenCurlyBracket: $6, - Stmts: $7, - CloseCurlyBracket: $8, + ClassTkn: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Extends: $3, + Implements: $4, + OpenCurlyBracket: $6, + Stmts: $7, + CloseCurlyBracket: $8, } } ; diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index c0e84c2..526c4e8 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -24,7 +24,6 @@ type NodeVisitor interface { Variadic(n *Variadic) Parameter(n *Parameter) Identifier(n *Identifier) - ArgumentList(n *ArgumentList) Argument(n *Argument) StmtBreak(n *StmtBreak) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index ccea997..e3298cb 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -23,7 +23,8 @@ func (n *Node) GetPosition() *position.Position { // Root node type Root struct { Node - Stmts []Vertex + Stmts []Vertex + EndTkn *token.Token } func (n *Root) Accept(v NodeVisitor) { @@ -87,19 +88,6 @@ func (n *Identifier) Accept(v NodeVisitor) { v.Identifier(n) } -// ArgumentList node -type ArgumentList struct { - Node - OpenParenthesisTkn *token.Token - Arguments []Vertex - SeparatorTkns []*token.Token - CloseParenthesisTkn *token.Token -} - -func (n *ArgumentList) Accept(v NodeVisitor) { - v.ArgumentList(n) -} - // Argument node type Argument struct { Node @@ -238,15 +226,17 @@ func (n *StmtCatch) Accept(v NodeVisitor) { // StmtClass node type StmtClass struct { Node - Modifiers []Vertex - ClassTkn *token.Token - ClassName Vertex - ArgumentList Vertex - Extends Vertex - Implements Vertex - OpenCurlyBracket *token.Token - Stmts []Vertex - CloseCurlyBracket *token.Token + Modifiers []Vertex + ClassTkn *token.Token + ClassName Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + CloseParenthesisTkn *token.Token + Extends Vertex + Implements Vertex + OpenCurlyBracket *token.Token + Stmts []Vertex + CloseCurlyBracket *token.Token } func (n *StmtClass) Accept(v NodeVisitor) { @@ -2098,6 +2088,19 @@ func (n *ParserSeparatedList) Accept(v NodeVisitor) { v.ParserSeparatedList(n) } +// ArgumentList node +type ArgumentList struct { + Node + OpenParenthesisTkn *token.Token + Arguments []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token +} + +func (n *ArgumentList) Accept(v NodeVisitor) { + // do nothing +} + type ReturnType struct { Node ColonTkn *token.Token diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index bc119f8..6e3fe74 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -93,20 +93,6 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - case *ast.ArgumentList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Arguments != nil { - t.visitor.Enter("Arguments", false) - for _, c := range nn.Arguments { - t.Traverse(c) - } - t.visitor.Leave("Arguments", false) - } case *ast.Argument: if nn == nil { return @@ -195,10 +181,12 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Modifiers", false) } - if nn.ArgumentList != nil { - t.visitor.Enter("ArgumentList", true) - t.Traverse(nn.ArgumentList) - t.visitor.Leave("ArgumentList", true) + if nn.Arguments != nil { + t.visitor.Enter("Arguments", false) + for _, c := range nn.Arguments { + t.Traverse(c) + } + t.visitor.Leave("Arguments", false) } if nn.Extends != nil { t.visitor.Enter("Extends", true) diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 2e4f59b..ea0ae75 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -230,12 +230,6 @@ func (v *Dump) Identifier(n *ast.Identifier) { v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) } -func (v *Dump) ArgumentList(n *ast.ArgumentList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ArgumentList{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) Argument(n *ast.Argument) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Argument{\n") diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 724f4a1..ce4f433 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -46,10 +46,6 @@ func (v *Null) Identifier(_ *ast.Identifier) { // do nothing } -func (v *Null) ArgumentList(_ *ast.ArgumentList) { - // do nothing -} - func (v *Null) Argument(_ *ast.Argument) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index b046302..eae729a 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -1450,9 +1450,9 @@ func (p *PrettyPrinter) printStmtClass(n ast.Vertex) { p.Print(nn.ClassName) } - if nn.ArgumentList != nil { + if nn.Arguments != nil { io.WriteString(p.w, "(") - p.joinPrint(", ", nn.ArgumentList.(*ast.ArgumentList).Arguments) + p.joinPrint(", ", nn.Arguments) io.WriteString(p.w, ")") } diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index fc63109..328e0f9 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -2067,10 +2067,10 @@ func (p *Printer) printStmtClass(n ast.Vertex) { p.Print(nn.ClassName) } - if nn.ArgumentList != nil { - p.printFreeFloatingOrDefault(nn.ArgumentList, token.Start, "(") - p.joinPrint(",", nn.ArgumentList.(*ast.ArgumentList).Arguments) - p.printFreeFloatingOrDefault(nn.ArgumentList, token.End, ")") + if nn.Arguments != nil { + p.printToken(nn.OpenParenthesisTkn, "(") + p.joinPrint(",", nn.Arguments) + p.printToken(nn.CloseParenthesisTkn, ")") } if nn.Extends != nil { From f3203c0b5f62b39796bd62d9434b9a222035ebbf Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 11:36:12 +0200 Subject: [PATCH 095/140] [refactoring] update ast structure of "Parameter", "Class", "FunctionCall", "MethodCall", "New" and "StaticCall" nodes --- internal/php5/php5.go | 1155 ++++++++++++++++----------------- internal/php5/php5.y | 113 ++-- internal/php7/php7.go | 1095 +++++++++++++++---------------- internal/php7/php7.y | 107 +-- pkg/ast/ast.go | 2 - pkg/ast/node.go | 29 +- pkg/ast/traverser/dfs.go | 24 - pkg/ast/visitor/dump.go | 12 - pkg/ast/visitor/null.go | 8 - pkg/printer/pretty_printer.go | 18 - pkg/printer/printer.go | 24 - 11 files changed, 1178 insertions(+), 1409 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 77d735f..3841713 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -342,7 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6586 +// line internal/php5/php5.y:6557 // line yacctab:1 var yyExca = [...]int{ @@ -2316,7 +2316,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:269 +// line internal/php5/php5.y:269 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2328,7 +2328,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:282 +// line internal/php5/php5.y:282 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2341,13 +2341,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:293 +// line internal/php5/php5.y:293 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:300 +// line internal/php5/php5.y:300 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2361,7 +2361,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:312 +// line internal/php5/php5.y:312 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2374,32 +2374,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:326 +// line internal/php5/php5.y:326 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:331 +// line internal/php5/php5.y:331 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:335 +// line internal/php5/php5.y:335 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:339 +// line internal/php5/php5.y:339 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:343 +// line internal/php5/php5.y:343 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2413,7 +2413,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:355 +// line internal/php5/php5.y:355 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2431,7 +2431,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:371 +// line internal/php5/php5.y:371 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2451,7 +2451,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:389 +// line internal/php5/php5.y:389 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2465,7 +2465,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:401 +// line internal/php5/php5.y:401 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2478,7 +2478,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:412 +// line internal/php5/php5.y:412 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2498,7 +2498,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:430 +// line internal/php5/php5.y:430 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2518,7 +2518,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:448 +// line internal/php5/php5.y:448 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2526,7 +2526,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:457 +// line internal/php5/php5.y:457 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2534,13 +2534,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:463 +// line internal/php5/php5.y:463 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:470 +// line internal/php5/php5.y:470 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2556,7 +2556,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:484 +// line internal/php5/php5.y:484 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2580,7 +2580,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:506 +// line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2597,7 +2597,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:521 +// line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2622,7 +2622,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:547 +// line internal/php5/php5.y:547 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2630,13 +2630,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:553 +// line internal/php5/php5.y:553 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:560 +// line internal/php5/php5.y:560 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2652,7 +2652,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:574 +// line internal/php5/php5.y:574 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2676,7 +2676,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:596 +// line internal/php5/php5.y:596 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2693,7 +2693,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:611 +// line internal/php5/php5.y:611 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2718,7 +2718,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:637 +// line internal/php5/php5.y:637 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2726,13 +2726,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:643 +// line internal/php5/php5.y:643 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:650 +// line internal/php5/php5.y:650 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2748,7 +2748,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:664 +// line internal/php5/php5.y:664 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2772,7 +2772,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:686 +// line internal/php5/php5.y:686 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2789,7 +2789,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:701 +// line internal/php5/php5.y:701 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2814,7 +2814,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:727 +// line internal/php5/php5.y:727 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2840,7 +2840,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:751 +// line internal/php5/php5.y:751 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2869,7 +2869,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:781 +// line internal/php5/php5.y:781 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2882,38 +2882,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:792 +// line internal/php5/php5.y:792 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:800 +// line internal/php5/php5.y:800 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:805 +// line internal/php5/php5.y:805 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:809 +// line internal/php5/php5.y:809 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:813 +// line internal/php5/php5.y:813 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:817 +// line internal/php5/php5.y:817 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2927,13 +2927,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:833 +// line internal/php5/php5.y:833 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:837 +// line internal/php5/php5.y:837 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2951,7 +2951,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:856 +// line internal/php5/php5.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2964,7 +2964,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:867 +// line internal/php5/php5.y:867 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2988,7 +2988,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:889 +// line internal/php5/php5.y:889 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3014,7 +3014,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:913 +// line internal/php5/php5.y:913 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3026,7 +3026,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:923 +// line internal/php5/php5.y:923 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3043,7 +3043,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:938 +// line internal/php5/php5.y:938 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3059,7 +3059,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:952 +// line internal/php5/php5.y:952 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3071,7 +3071,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:962 +// line internal/php5/php5.y:962 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3083,7 +3083,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:972 +// line internal/php5/php5.y:972 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3096,7 +3096,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:983 +// line internal/php5/php5.y:983 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3108,7 +3108,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:993 +// line internal/php5/php5.y:993 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3121,7 +3121,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1004 +// line internal/php5/php5.y:1004 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3133,7 +3133,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1014 +// line internal/php5/php5.y:1014 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3146,7 +3146,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1025 +// line internal/php5/php5.y:1025 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3159,7 +3159,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1036 +// line internal/php5/php5.y:1036 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3171,7 +3171,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1046 +// line internal/php5/php5.y:1046 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3182,7 +3182,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1055 +// line internal/php5/php5.y:1055 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3193,7 +3193,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1064 +// line internal/php5/php5.y:1064 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3203,7 +3203,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1072 +// line internal/php5/php5.y:1072 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3215,7 +3215,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1082 +// line internal/php5/php5.y:1082 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3227,7 +3227,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1092 +// line internal/php5/php5.y:1092 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3239,7 +3239,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1102 +// line internal/php5/php5.y:1102 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3259,7 +3259,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1120 +// line internal/php5/php5.y:1120 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3279,7 +3279,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1138 +// line internal/php5/php5.y:1138 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3292,7 +3292,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1149 +// line internal/php5/php5.y:1149 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3303,7 +3303,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1158 +// line internal/php5/php5.y:1158 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3322,7 +3322,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1175 +// line internal/php5/php5.y:1175 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3335,7 +3335,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1186 +// line internal/php5/php5.y:1186 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3354,13 +3354,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1206 +// line internal/php5/php5.y:1206 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1210 +// line internal/php5/php5.y:1210 { catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3390,13 +3390,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1241 +// line internal/php5/php5.y:1241 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1245 +// line internal/php5/php5.y:1245 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3410,31 +3410,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1260 +// line internal/php5/php5.y:1260 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1264 +// line internal/php5/php5.y:1264 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1271 +// line internal/php5/php5.y:1271 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1275 +// line internal/php5/php5.y:1275 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1282 +// line internal/php5/php5.y:1282 { yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3463,7 +3463,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1312 +// line internal/php5/php5.y:1312 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3471,7 +3471,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1318 +// line internal/php5/php5.y:1318 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3480,49 +3480,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1328 +// line internal/php5/php5.y:1328 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1335 +// line internal/php5/php5.y:1335 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1342 +// line internal/php5/php5.y:1342 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1349 +// line internal/php5/php5.y:1349 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1353 +// line internal/php5/php5.y:1353 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1360 +// line internal/php5/php5.y:1360 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1364 +// line internal/php5/php5.y:1364 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1371 +// line internal/php5/php5.y:1371 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3547,7 +3547,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1397 +// line internal/php5/php5.y:1397 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3584,7 +3584,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1432 +// line internal/php5/php5.y:1432 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3606,7 +3606,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1456 +// line internal/php5/php5.y:1456 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3617,7 +3617,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1465 +// line internal/php5/php5.y:1465 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3637,7 +3637,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1483 +// line internal/php5/php5.y:1483 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3648,7 +3648,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1492 +// line internal/php5/php5.y:1492 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3668,13 +3668,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1513 +// line internal/php5/php5.y:1513 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1517 +// line internal/php5/php5.y:1517 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3686,19 +3686,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1530 +// line internal/php5/php5.y:1530 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1537 +// line internal/php5/php5.y:1537 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1541 +// line internal/php5/php5.y:1541 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3711,13 +3711,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1555 +// line internal/php5/php5.y:1555 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1559 +// line internal/php5/php5.y:1559 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3730,7 +3730,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1573 +// line internal/php5/php5.y:1573 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3738,7 +3738,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1579 +// line internal/php5/php5.y:1579 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3747,13 +3747,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1589 +// line internal/php5/php5.y:1589 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1593 +// line internal/php5/php5.y:1593 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3762,13 +3762,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1603 +// line internal/php5/php5.y:1603 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1607 +// line internal/php5/php5.y:1607 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3780,7 +3780,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1617 +// line internal/php5/php5.y:1617 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3802,7 +3802,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1640 +// line internal/php5/php5.y:1640 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3813,7 +3813,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1649 +// line internal/php5/php5.y:1649 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3833,7 +3833,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1670 +// line internal/php5/php5.y:1670 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3844,7 +3844,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1679 +// line internal/php5/php5.y:1679 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3864,7 +3864,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1701 +// line internal/php5/php5.y:1701 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3875,7 +3875,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1710 +// line internal/php5/php5.y:1710 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3895,7 +3895,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1732 +// line internal/php5/php5.y:1732 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3920,7 +3920,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1755 +// line internal/php5/php5.y:1755 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3947,7 +3947,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1784 +// line internal/php5/php5.y:1784 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3960,7 +3960,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1795 +// line internal/php5/php5.y:1795 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3974,7 +3974,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1807 +// line internal/php5/php5.y:1807 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3989,7 +3989,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1820 +// line internal/php5/php5.y:1820 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4005,13 +4005,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1838 +// line internal/php5/php5.y:1838 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1842 +// line internal/php5/php5.y:1842 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4025,7 +4025,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1854 +// line internal/php5/php5.y:1854 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4038,19 +4038,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1869 +// line internal/php5/php5.y:1869 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1873 +// line internal/php5/php5.y:1873 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1881 +// line internal/php5/php5.y:1881 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4061,7 +4061,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1890 +// line internal/php5/php5.y:1890 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4081,13 +4081,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1913 +// line internal/php5/php5.y:1913 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1917 +// line internal/php5/php5.y:1917 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4102,13 +4102,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1934 +// line internal/php5/php5.y:1934 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1938 +// line internal/php5/php5.y:1938 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4130,13 +4130,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1962 +// line internal/php5/php5.y:1962 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1966 +// line internal/php5/php5.y:1966 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4148,13 +4148,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1980 +// line internal/php5/php5.y:1980 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1984 +// line internal/php5/php5.y:1984 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4173,25 +4173,25 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2005 +// line internal/php5/php5.y:2005 { yyVAL.list = yyDollar[1].list } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2009 +// line internal/php5/php5.y:2009 { yyVAL.list = nil } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2016 +// line internal/php5/php5.y:2016 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2020 +// line internal/php5/php5.y:2020 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4200,42 +4200,8 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2030 +// line internal/php5/php5.y:2030 { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - }, - } - - if yyDollar[3].token != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), - }, - VariadicTkn: yyDollar[3].token, - Var: variable, - } - } - - if yyDollar[2].token != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, - AmpersandTkn: yyDollar[2].token, - Var: variable, - } - } - pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { pos = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) @@ -4249,48 +4215,27 @@ yydefault: Node: ast.Node{ Position: pos, }, - Type: yyDollar[1].node, - Var: variable, + Type: yyDollar[1].node, + AmpersandTkn: yyDollar[2].token, + VariadicTkn: yyDollar[3].token, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + }, } } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2083 +// line internal/php5/php5.y:2062 { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - }, - } - - if yyDollar[3].token != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), - }, - VariadicTkn: yyDollar[3].token, - Var: variable, - } - } - - if yyDollar[2].token != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, - AmpersandTkn: yyDollar[2].token, - Var: variable, - } - } - pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { pos = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) @@ -4305,20 +4250,33 @@ yydefault: Position: pos, }, Type: yyDollar[1].node, - Var: variable, + AmpersandTkn: yyDollar[2].token, + VariadicTkn: yyDollar[3].token, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + }, EqualTkn: yyDollar[5].token, DefaultValue: yyDollar[6].node, } } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2142 +// line internal/php5/php5.y:2100 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2146 +// line internal/php5/php5.y:2104 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4330,7 +4288,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2156 +// line internal/php5/php5.y:2114 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4342,13 +4300,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2166 +// line internal/php5/php5.y:2124 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2174 +// line internal/php5/php5.y:2132 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4360,7 +4318,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2184 +// line internal/php5/php5.y:2142 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4371,7 +4329,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2193 +// line internal/php5/php5.y:2151 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4391,7 +4349,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2215 +// line internal/php5/php5.y:2173 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4399,7 +4357,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2221 +// line internal/php5/php5.y:2179 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4408,7 +4366,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2231 +// line internal/php5/php5.y:2189 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4419,7 +4377,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2240 +// line internal/php5/php5.y:2198 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4430,7 +4388,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2249 +// line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4442,7 +4400,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2259 +// line internal/php5/php5.y:2217 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4454,7 +4412,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2272 +// line internal/php5/php5.y:2230 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4463,7 +4421,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2279 +// line internal/php5/php5.y:2237 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4471,7 +4429,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2289 +// line internal/php5/php5.y:2247 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4488,7 +4446,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2304 +// line internal/php5/php5.y:2262 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4500,7 +4458,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2314 +// line internal/php5/php5.y:2272 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4519,7 +4477,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2335 +// line internal/php5/php5.y:2293 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4544,7 +4502,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2358 +// line internal/php5/php5.y:2316 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4571,7 +4529,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2383 +// line internal/php5/php5.y:2341 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4597,7 +4555,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2407 +// line internal/php5/php5.y:2365 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4625,19 +4583,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2437 +// line internal/php5/php5.y:2395 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2441 +// line internal/php5/php5.y:2399 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2449 +// line internal/php5/php5.y:2407 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4651,7 +4609,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2461 +// line internal/php5/php5.y:2419 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4659,13 +4617,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2467 +// line internal/php5/php5.y:2425 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2471 +// line internal/php5/php5.y:2429 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4694,7 +4652,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2501 +// line internal/php5/php5.y:2459 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4708,7 +4666,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2516 +// line internal/php5/php5.y:2474 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4716,7 +4674,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2522 +// line internal/php5/php5.y:2480 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4725,7 +4683,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2532 +// line internal/php5/php5.y:2490 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4736,7 +4694,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2541 +// line internal/php5/php5.y:2499 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4749,31 +4707,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2555 +// line internal/php5/php5.y:2513 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2559 +// line internal/php5/php5.y:2517 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2566 +// line internal/php5/php5.y:2524 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2570 +// line internal/php5/php5.y:2528 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2577 +// line internal/php5/php5.y:2535 { yyVAL.node = yyDollar[1].node @@ -4783,7 +4741,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2543 { yyVAL.node = yyDollar[1].node @@ -4793,7 +4751,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2596 +// line internal/php5/php5.y:2554 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4807,7 +4765,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2611 +// line internal/php5/php5.y:2569 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4815,7 +4773,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2617 +// line internal/php5/php5.y:2575 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4824,7 +4782,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2627 +// line internal/php5/php5.y:2585 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4841,13 +4799,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2642 +// line internal/php5/php5.y:2600 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2649 +// line internal/php5/php5.y:2607 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4866,7 +4824,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2669 +// line internal/php5/php5.y:2627 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4886,7 +4844,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2687 +// line internal/php5/php5.y:2645 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4899,19 +4857,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2701 +// line internal/php5/php5.y:2659 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2705 +// line internal/php5/php5.y:2663 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2670 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4922,7 +4880,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2721 +// line internal/php5/php5.y:2679 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4935,13 +4893,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2735 +// line internal/php5/php5.y:2693 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2739 +// line internal/php5/php5.y:2697 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4955,31 +4913,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2754 +// line internal/php5/php5.y:2712 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2758 +// line internal/php5/php5.y:2716 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2765 +// line internal/php5/php5.y:2723 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2769 +// line internal/php5/php5.y:2727 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2776 +// line internal/php5/php5.y:2734 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4991,7 +4949,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2786 +// line internal/php5/php5.y:2744 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5003,7 +4961,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2796 +// line internal/php5/php5.y:2754 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5015,7 +4973,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2806 +// line internal/php5/php5.y:2764 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5027,7 +4985,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2816 +// line internal/php5/php5.y:2774 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5039,7 +4997,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2826 +// line internal/php5/php5.y:2784 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5051,7 +5009,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2839 +// line internal/php5/php5.y:2797 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5078,7 +5036,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2864 +// line internal/php5/php5.y:2822 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5107,7 +5065,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2891 +// line internal/php5/php5.y:2849 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5134,7 +5092,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2916 +// line internal/php5/php5.y:2874 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5162,7 +5120,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2945 +// line internal/php5/php5.y:2903 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5188,7 +5146,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2969 +// line internal/php5/php5.y:2927 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5217,7 +5175,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2999 +// line internal/php5/php5.y:2957 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5226,7 +5184,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3006 +// line internal/php5/php5.y:2964 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5234,19 +5192,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3016 +// line internal/php5/php5.y:2974 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3020 +// line internal/php5/php5.y:2978 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3027 +// line internal/php5/php5.y:2985 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5255,25 +5213,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3034 +// line internal/php5/php5.y:2992 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3041 +// line internal/php5/php5.y:2999 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3045 +// line internal/php5/php5.y:3003 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3052 +// line internal/php5/php5.y:3010 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5289,7 +5247,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3066 +// line internal/php5/php5.y:3024 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5305,37 +5263,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3083 +// line internal/php5/php5.y:3041 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3087 +// line internal/php5/php5.y:3045 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3091 +// line internal/php5/php5.y:3049 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3098 +// line internal/php5/php5.y:3056 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3102 +// line internal/php5/php5.y:3060 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3109 +// line internal/php5/php5.y:3067 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5346,6 +5304,7 @@ yydefault: Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, } } else { @@ -5359,7 +5318,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3134 +// line internal/php5/php5.y:3093 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5381,7 +5340,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3154 +// line internal/php5/php5.y:3113 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5394,7 +5353,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3165 +// line internal/php5/php5.y:3124 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5408,7 +5367,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3177 +// line internal/php5/php5.y:3136 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5420,6 +5379,7 @@ yydefault: Class: yyDollar[5].node, OpenParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[6].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[6].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, } } else { @@ -5444,7 +5404,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3211 +// line internal/php5/php5.y:3171 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5456,7 +5416,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3221 +// line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5469,7 +5429,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3232 +// line internal/php5/php5.y:3192 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5482,7 +5442,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3243 +// line internal/php5/php5.y:3203 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5495,7 +5455,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3254 +// line internal/php5/php5.y:3214 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5508,7 +5468,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3265 +// line internal/php5/php5.y:3225 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5521,7 +5481,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3276 +// line internal/php5/php5.y:3236 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5534,7 +5494,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3287 +// line internal/php5/php5.y:3247 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5547,7 +5507,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3298 +// line internal/php5/php5.y:3258 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5560,7 +5520,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3309 +// line internal/php5/php5.y:3269 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5573,7 +5533,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3320 +// line internal/php5/php5.y:3280 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5586,7 +5546,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3331 +// line internal/php5/php5.y:3291 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5599,7 +5559,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3342 +// line internal/php5/php5.y:3302 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5612,7 +5572,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3353 +// line internal/php5/php5.y:3313 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5624,7 +5584,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3363 +// line internal/php5/php5.y:3323 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5636,7 +5596,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3373 +// line internal/php5/php5.y:3333 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5648,7 +5608,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3383 +// line internal/php5/php5.y:3343 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5660,7 +5620,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3393 +// line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5673,7 +5633,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3404 +// line internal/php5/php5.y:3364 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5686,7 +5646,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3415 +// line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5699,7 +5659,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3426 +// line internal/php5/php5.y:3386 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5712,7 +5672,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3437 +// line internal/php5/php5.y:3397 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5725,7 +5685,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3448 +// line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5738,7 +5698,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3459 +// line internal/php5/php5.y:3419 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5751,7 +5711,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3470 +// line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5764,7 +5724,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3481 +// line internal/php5/php5.y:3441 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5777,7 +5737,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3492 +// line internal/php5/php5.y:3452 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5790,7 +5750,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3503 +// line internal/php5/php5.y:3463 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5803,7 +5763,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3514 +// line internal/php5/php5.y:3474 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5816,7 +5776,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3525 +// line internal/php5/php5.y:3485 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5829,7 +5789,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3536 +// line internal/php5/php5.y:3496 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5842,7 +5802,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3547 +// line internal/php5/php5.y:3507 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5855,7 +5815,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3558 +// line internal/php5/php5.y:3518 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5868,7 +5828,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3569 +// line internal/php5/php5.y:3529 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5881,7 +5841,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3580 +// line internal/php5/php5.y:3540 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5893,7 +5853,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3590 +// line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5905,7 +5865,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3600 +// line internal/php5/php5.y:3560 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5917,7 +5877,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3610 +// line internal/php5/php5.y:3570 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5929,7 +5889,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3620 +// line internal/php5/php5.y:3580 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5942,7 +5902,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3631 +// line internal/php5/php5.y:3591 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5955,7 +5915,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3642 +// line internal/php5/php5.y:3602 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5968,7 +5928,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3653 +// line internal/php5/php5.y:3613 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5982,7 +5942,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3665 +// line internal/php5/php5.y:3625 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5995,7 +5955,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3676 +// line internal/php5/php5.y:3636 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -6008,7 +5968,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3687 +// line internal/php5/php5.y:3647 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -6021,7 +5981,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3698 +// line internal/php5/php5.y:3658 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -6034,7 +5994,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3709 +// line internal/php5/php5.y:3669 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6047,19 +6007,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3720 +// line internal/php5/php5.y:3680 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3724 +// line internal/php5/php5.y:3684 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3728 +// line internal/php5/php5.y:3688 { yyVAL.node = yyDollar[2].node @@ -6093,7 +6053,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3760 +// line internal/php5/php5.y:3720 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6108,7 +6068,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3773 +// line internal/php5/php5.y:3733 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6122,13 +6082,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3785 +// line internal/php5/php5.y:3745 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3789 +// line internal/php5/php5.y:3749 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6140,7 +6100,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3799 +// line internal/php5/php5.y:3759 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6152,7 +6112,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3809 +// line internal/php5/php5.y:3769 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6164,7 +6124,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3819 +// line internal/php5/php5.y:3779 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6176,7 +6136,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3829 +// line internal/php5/php5.y:3789 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6188,7 +6148,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3839 +// line internal/php5/php5.y:3799 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6200,7 +6160,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3849 +// line internal/php5/php5.y:3809 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6212,7 +6172,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3859 +// line internal/php5/php5.y:3819 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6231,7 +6191,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3876 +// line internal/php5/php5.y:3836 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6243,25 +6203,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3886 +// line internal/php5/php5.y:3846 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3890 +// line internal/php5/php5.y:3850 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3894 +// line internal/php5/php5.y:3854 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3898 +// line internal/php5/php5.y:3858 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6274,7 +6234,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3909 +// line internal/php5/php5.y:3869 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6286,7 +6246,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3919 +// line internal/php5/php5.y:3879 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6297,7 +6257,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3928 +// line internal/php5/php5.y:3888 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6316,7 +6276,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3945 +// line internal/php5/php5.y:3905 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6336,7 +6296,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3966 +// line internal/php5/php5.y:3926 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6348,7 +6308,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3976 +// line internal/php5/php5.y:3936 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6360,7 +6320,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3986 +// line internal/php5/php5.y:3946 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6374,7 +6334,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3998 +// line internal/php5/php5.y:3958 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6388,7 +6348,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4013 +// line internal/php5/php5.y:3973 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6402,7 +6362,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4025 +// line internal/php5/php5.y:3985 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6416,7 +6376,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4037 +// line internal/php5/php5.y:3997 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6436,7 +6396,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4055 +// line internal/php5/php5.y:4015 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6450,7 +6410,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4070 +// line internal/php5/php5.y:4030 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6465,7 +6425,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4083 +// line internal/php5/php5.y:4043 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6479,19 +6439,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4098 +// line internal/php5/php5.y:4058 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4105 +// line internal/php5/php5.y:4065 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4109 +// line internal/php5/php5.y:4069 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6506,7 +6466,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4125 +// line internal/php5/php5.y:4085 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6528,7 +6488,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4145 +// line internal/php5/php5.y:4105 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6556,7 +6516,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4171 +// line internal/php5/php5.y:4131 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6577,7 +6537,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4190 +// line internal/php5/php5.y:4150 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6604,7 +6564,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4218 +// line internal/php5/php5.y:4178 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6618,12 +6578,13 @@ yydefault: }, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4235 +// line internal/php5/php5.y:4196 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6639,12 +6600,13 @@ yydefault: }, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4254 +// line internal/php5/php5.y:4216 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6659,12 +6621,13 @@ yydefault: }, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4272 +// line internal/php5/php5.y:4235 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6675,12 +6638,13 @@ yydefault: Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4286 +// line internal/php5/php5.y:4250 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6691,12 +6655,13 @@ yydefault: Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4300 +// line internal/php5/php5.y:4265 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6707,12 +6672,13 @@ yydefault: Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4314 +// line internal/php5/php5.y:4280 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6723,12 +6689,13 @@ yydefault: Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4328 +// line internal/php5/php5.y:4295 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6737,12 +6704,13 @@ yydefault: Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4343 +// line internal/php5/php5.y:4311 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6754,7 +6722,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4353 +// line internal/php5/php5.y:4321 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6765,7 +6733,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4362 +// line internal/php5/php5.y:4330 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6778,7 +6746,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4373 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6790,7 +6758,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4386 +// line internal/php5/php5.y:4354 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6801,7 +6769,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4395 +// line internal/php5/php5.y:4363 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6814,7 +6782,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4406 +// line internal/php5/php5.y:4374 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6826,19 +6794,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4419 +// line internal/php5/php5.y:4387 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4423 +// line internal/php5/php5.y:4391 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4430 +// line internal/php5/php5.y:4398 { yyVAL.node = yyDollar[1].node @@ -6879,25 +6847,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4469 +// line internal/php5/php5.y:4437 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4477 +// line internal/php5/php5.y:4445 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4481 +// line internal/php5/php5.y:4449 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4489 +// line internal/php5/php5.y:4457 { yyVAL.list = yyDollar[2].list @@ -6906,13 +6874,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4499 +// line internal/php5/php5.y:4467 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4503 +// line internal/php5/php5.y:4471 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6928,19 +6896,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4517 +// line internal/php5/php5.y:4485 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4492 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4528 +// line internal/php5/php5.y:4496 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6954,25 +6922,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4540 +// line internal/php5/php5.y:4508 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4547 +// line internal/php5/php5.y:4515 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4551 +// line internal/php5/php5.y:4519 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4558 +// line internal/php5/php5.y:4526 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6984,7 +6952,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4568 +// line internal/php5/php5.y:4536 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6996,7 +6964,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4578 +// line internal/php5/php5.y:4546 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7008,7 +6976,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4588 +// line internal/php5/php5.y:4556 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7020,7 +6988,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4598 +// line internal/php5/php5.y:4566 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7032,7 +7000,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4608 +// line internal/php5/php5.y:4576 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7044,7 +7012,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4618 +// line internal/php5/php5.y:4586 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7056,7 +7024,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4628 +// line internal/php5/php5.y:4596 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7068,7 +7036,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4638 +// line internal/php5/php5.y:4606 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7080,7 +7048,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4648 +// line internal/php5/php5.y:4616 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7092,7 +7060,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4658 +// line internal/php5/php5.y:4626 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7113,7 +7081,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4677 +// line internal/php5/php5.y:4645 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7125,7 +7093,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4690 +// line internal/php5/php5.y:4658 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7144,25 +7112,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4710 +// line internal/php5/php5.y:4678 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4717 +// line internal/php5/php5.y:4685 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4721 +// line internal/php5/php5.y:4689 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4725 +// line internal/php5/php5.y:4693 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7178,7 +7146,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4739 +// line internal/php5/php5.y:4707 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7196,7 +7164,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4755 +// line internal/php5/php5.y:4723 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7213,7 +7181,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4770 +// line internal/php5/php5.y:4738 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7228,7 +7196,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4783 +// line internal/php5/php5.y:4751 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7242,13 +7210,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4763 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4799 +// line internal/php5/php5.y:4767 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7260,13 +7228,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4809 +// line internal/php5/php5.y:4777 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4816 +// line internal/php5/php5.y:4784 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7280,7 +7248,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4828 +// line internal/php5/php5.y:4796 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7293,7 +7261,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4839 +// line internal/php5/php5.y:4807 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7306,7 +7274,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4850 +// line internal/php5/php5.y:4818 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7319,7 +7287,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4861 +// line internal/php5/php5.y:4829 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7332,7 +7300,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4872 +// line internal/php5/php5.y:4840 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7345,7 +7313,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4883 +// line internal/php5/php5.y:4851 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7358,7 +7326,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4894 +// line internal/php5/php5.y:4862 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7370,7 +7338,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4904 +// line internal/php5/php5.y:4872 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7382,7 +7350,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4914 +// line internal/php5/php5.y:4882 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7395,7 +7363,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4925 +// line internal/php5/php5.y:4893 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7408,7 +7376,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4936 +// line internal/php5/php5.y:4904 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7421,7 +7389,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4947 +// line internal/php5/php5.y:4915 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7434,7 +7402,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4958 +// line internal/php5/php5.y:4926 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7447,7 +7415,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4969 +// line internal/php5/php5.y:4937 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7460,7 +7428,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4980 +// line internal/php5/php5.y:4948 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7473,7 +7441,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4991 +// line internal/php5/php5.y:4959 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7486,7 +7454,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5002 +// line internal/php5/php5.y:4970 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7499,7 +7467,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5013 +// line internal/php5/php5.y:4981 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7512,7 +7480,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5024 +// line internal/php5/php5.y:4992 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7525,7 +7493,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5035 +// line internal/php5/php5.y:5003 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7538,7 +7506,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5046 +// line internal/php5/php5.y:5014 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7551,7 +7519,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5057 +// line internal/php5/php5.y:5025 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7564,7 +7532,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5068 +// line internal/php5/php5.y:5036 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7578,7 +7546,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5080 +// line internal/php5/php5.y:5048 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7591,7 +7559,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5091 +// line internal/php5/php5.y:5059 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7604,7 +7572,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5102 +// line internal/php5/php5.y:5070 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7617,7 +7585,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5113 +// line internal/php5/php5.y:5081 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7630,7 +7598,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5124 +// line internal/php5/php5.y:5092 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7644,7 +7612,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5136 +// line internal/php5/php5.y:5104 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7659,7 +7627,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5149 +// line internal/php5/php5.y:5117 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7671,7 +7639,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5159 +// line internal/php5/php5.y:5127 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7683,7 +7651,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5169 +// line internal/php5/php5.y:5137 { yyVAL.node = yyDollar[2].node @@ -7693,13 +7661,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5180 +// line internal/php5/php5.y:5148 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5184 +// line internal/php5/php5.y:5152 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7715,7 +7683,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5198 +// line internal/php5/php5.y:5166 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7733,7 +7701,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5214 +// line internal/php5/php5.y:5182 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7750,7 +7718,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5232 +// line internal/php5/php5.y:5200 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7767,25 +7735,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5247 +// line internal/php5/php5.y:5215 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5251 +// line internal/php5/php5.y:5219 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5255 +// line internal/php5/php5.y:5223 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5259 +// line internal/php5/php5.y:5227 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7798,7 +7766,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5270 +// line internal/php5/php5.y:5238 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7811,7 +7779,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5281 +// line internal/php5/php5.y:5249 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7823,13 +7791,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5294 +// line internal/php5/php5.y:5262 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5298 +// line internal/php5/php5.y:5266 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7840,19 +7808,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5310 +// line internal/php5/php5.y:5278 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5314 +// line internal/php5/php5.y:5282 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5321 +// line internal/php5/php5.y:5289 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7870,7 +7838,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5337 +// line internal/php5/php5.y:5305 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7886,7 +7854,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5351 +// line internal/php5/php5.y:5319 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7903,7 +7871,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5366 +// line internal/php5/php5.y:5334 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7918,19 +7886,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5382 +// line internal/php5/php5.y:5350 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5386 +// line internal/php5/php5.y:5354 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5393 +// line internal/php5/php5.y:5361 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7947,7 +7915,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5408 +// line internal/php5/php5.y:5376 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7964,25 +7932,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5427 +// line internal/php5/php5.y:5395 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5435 +// line internal/php5/php5.y:5403 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5442 +// line internal/php5/php5.y:5410 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5449 +// line internal/php5/php5.y:5417 { yyVAL.node = yyDollar[1].node @@ -7999,6 +7967,7 @@ yydefault: }, OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, + SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.OpenParenthesisTkn, }, ) @@ -8060,25 +8029,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5525 +// line internal/php5/php5.y:5494 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5532 +// line internal/php5/php5.y:5501 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5536 +// line internal/php5/php5.y:5505 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5544 +// line internal/php5/php5.y:5513 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8094,6 +8063,7 @@ yydefault: }, OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, + SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.OpenParenthesisTkn, }, ) @@ -8109,7 +8079,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5545 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8125,7 +8095,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5589 +// line internal/php5/php5.y:5559 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8141,7 +8111,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5606 +// line internal/php5/php5.y:5576 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8149,36 +8119,37 @@ yydefault: }, OpenParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[1].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5620 +// line internal/php5/php5.y:5591 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5624 +// line internal/php5/php5.y:5595 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5628 +// line internal/php5/php5.y:5599 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5635 +// line internal/php5/php5.y:5606 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5639 +// line internal/php5/php5.y:5610 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8190,7 +8161,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5652 +// line internal/php5/php5.y:5623 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8203,7 +8174,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5663 +// line internal/php5/php5.y:5634 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8216,13 +8187,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5677 +// line internal/php5/php5.y:5648 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5684 +// line internal/php5/php5.y:5655 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8236,7 +8207,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5696 +// line internal/php5/php5.y:5667 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8250,31 +8221,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5711 +// line internal/php5/php5.y:5682 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5715 +// line internal/php5/php5.y:5686 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5719 +// line internal/php5/php5.y:5690 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5727 +// line internal/php5/php5.y:5698 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5731 +// line internal/php5/php5.y:5702 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8286,13 +8257,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5741 +// line internal/php5/php5.y:5712 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5748 +// line internal/php5/php5.y:5719 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8306,7 +8277,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5760 +// line internal/php5/php5.y:5731 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8320,13 +8291,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5772 +// line internal/php5/php5.y:5743 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5780 +// line internal/php5/php5.y:5751 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8343,7 +8314,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5795 +// line internal/php5/php5.y:5766 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8362,25 +8333,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5815 +// line internal/php5/php5.y:5786 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5819 +// line internal/php5/php5.y:5790 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5827 +// line internal/php5/php5.y:5798 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5831 +// line internal/php5/php5.y:5802 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8393,7 +8364,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5845 +// line internal/php5/php5.y:5816 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8409,7 +8380,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5859 +// line internal/php5/php5.y:5830 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8425,7 +8396,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5873 +// line internal/php5/php5.y:5844 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8438,7 +8409,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5887 +// line internal/php5/php5.y:5858 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8450,7 +8421,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5897 +// line internal/php5/php5.y:5868 { yyVAL.node = yyDollar[2].node @@ -8463,7 +8434,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5911 +// line internal/php5/php5.y:5882 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8476,7 +8447,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5922 +// line internal/php5/php5.y:5893 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8487,7 +8458,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5934 +// line internal/php5/php5.y:5905 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8496,7 +8467,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5941 +// line internal/php5/php5.y:5912 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8504,7 +8475,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5951 +// line internal/php5/php5.y:5922 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8515,7 +8486,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5960 +// line internal/php5/php5.y:5931 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8542,19 +8513,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5985 +// line internal/php5/php5.y:5956 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5993 +// line internal/php5/php5.y:5964 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5997 +// line internal/php5/php5.y:5968 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8565,7 +8536,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:6009 +// line internal/php5/php5.y:5980 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8583,7 +8554,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6025 +// line internal/php5/php5.y:5996 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8599,7 +8570,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6039 +// line internal/php5/php5.y:6010 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8616,7 +8587,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6054 +// line internal/php5/php5.y:6025 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8631,7 +8602,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6067 +// line internal/php5/php5.y:6038 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8655,7 +8626,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6089 +// line internal/php5/php5.y:6060 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8677,7 +8648,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6109 +// line internal/php5/php5.y:6080 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8700,7 +8671,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6130 +// line internal/php5/php5.y:6101 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8721,13 +8692,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6152 +// line internal/php5/php5.y:6123 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6156 +// line internal/php5/php5.y:6127 { yyVAL.list = append( yyDollar[1].list, @@ -8742,13 +8713,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6169 +// line internal/php5/php5.y:6140 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6173 +// line internal/php5/php5.y:6144 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8763,7 +8734,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6189 +// line internal/php5/php5.y:6160 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8780,7 +8751,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6204 +// line internal/php5/php5.y:6175 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8805,7 +8776,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6227 +// line internal/php5/php5.y:6198 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8835,7 +8806,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6255 +// line internal/php5/php5.y:6226 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8853,7 +8824,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6271 +// line internal/php5/php5.y:6242 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8877,7 +8848,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6293 +// line internal/php5/php5.y:6264 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8909,7 +8880,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6323 +// line internal/php5/php5.y:6294 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8922,7 +8893,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6337 +// line internal/php5/php5.y:6308 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8934,7 +8905,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6347 +// line internal/php5/php5.y:6318 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8963,7 +8934,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6374 +// line internal/php5/php5.y:6345 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8980,7 +8951,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6392 +// line internal/php5/php5.y:6363 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8995,7 +8966,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6405 +// line internal/php5/php5.y:6376 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9009,7 +8980,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6417 +// line internal/php5/php5.y:6388 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9023,7 +8994,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6429 +// line internal/php5/php5.y:6400 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9035,7 +9006,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6439 +// line internal/php5/php5.y:6410 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9047,7 +9018,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6449 +// line internal/php5/php5.y:6420 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9061,7 +9032,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6461 +// line internal/php5/php5.y:6432 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9073,7 +9044,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6471 +// line internal/php5/php5.y:6442 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9085,7 +9056,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6484 +// line internal/php5/php5.y:6455 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9093,7 +9064,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6490 +// line internal/php5/php5.y:6461 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9102,19 +9073,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6500 +// line internal/php5/php5.y:6471 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6504 +// line internal/php5/php5.y:6475 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6511 +// line internal/php5/php5.y:6482 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9133,7 +9104,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6528 +// line internal/php5/php5.y:6499 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9152,7 +9123,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6548 +// line internal/php5/php5.y:6519 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9171,7 +9142,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6568 +// line internal/php5/php5.y:6539 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d3072b8..5349205 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2028,40 +2028,6 @@ non_empty_parameter_list: parameter: optional_class_type is_reference is_variadic T_VARIABLE { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - }, - } - - if $3 != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $4), - }, - VariadicTkn: $3, - Var: variable, - } - } - - if $2 != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, - AmpersandTkn: $2, - Var: variable, - } - } - pos := position.NewTokenPosition($4) if $1 != nil { pos = position.NewNodeTokenPosition($1, $4) @@ -2075,46 +2041,25 @@ parameter: Node: ast.Node{ Position: pos, }, - Type: $1, - Var: variable, + Type: $1, + AmpersandTkn: $2, + VariadicTkn: $3, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + }, } } | optional_class_type is_reference is_variadic T_VARIABLE '=' expr { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - }, - } - - if $3 != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $4), - }, - VariadicTkn: $3, - Var: variable, - } - } - - if $2 != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, - AmpersandTkn: $2, - Var: variable, - } - } - pos := position.NewTokenNodePosition($4, $6) if $1 != nil { pos = position.NewNodesPosition($1, $6) @@ -2129,7 +2074,20 @@ parameter: Position: pos, }, Type: $1, - Var: variable, + AmpersandTkn: $2, + VariadicTkn: $3, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + }, EqualTkn: $5, DefaultValue: $6, } @@ -3116,6 +3074,7 @@ new_expr: Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $3.(*ast.ArgumentList).Arguments, + SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, } } else { @@ -3185,6 +3144,7 @@ expr_without_variable: Class: $5, OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $6.(*ast.ArgumentList).Arguments, + SeparatorTkns: $6.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, } } else { @@ -4228,6 +4188,7 @@ function_call: }, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, + SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4247,6 +4208,7 @@ function_call: }, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4265,6 +4227,7 @@ function_call: }, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $3.(*ast.ArgumentList).Arguments, + SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4279,6 +4242,7 @@ function_call: Call: $3, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4293,6 +4257,7 @@ function_call: Call: $3, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4307,6 +4272,7 @@ function_call: Call: $3, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4321,6 +4287,7 @@ function_call: Call: $3, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4333,6 +4300,7 @@ function_call: Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, + SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -5462,6 +5430,7 @@ variable: }, OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, + SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.OpenParenthesisTkn, }, ) @@ -5555,6 +5524,7 @@ variable_property: }, OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, + SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.OpenParenthesisTkn, }, ) @@ -5610,6 +5580,7 @@ method: }, OpenParenthesisTkn: $1.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $1.(*ast.ArgumentList).Arguments, + SeparatorTkns: $1.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $1.(*ast.ArgumentList).CloseParenthesisTkn, } } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index b85c2a1..ee03b47 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:5021 +// line internal/php7/php7.y:4986 // line yacctab:1 var yyExca = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:290 +// line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2122,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 +// line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 +// line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 +// line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 +// line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:325 +// line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:332 +// line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:343 +// line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:350 +// line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:362 +// line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:376 +// line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:385 +// line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:396 +// line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:409 +// line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:414 +// line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:418 +// line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:422 +// line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:426 +// line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:430 +// line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:434 +// line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:446 +// line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:462 +// line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:480 +// line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:492 +// line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:502 +// line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:513 +// line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:524 +// line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:536 +// line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:551 +// line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:561 +// line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:574 +// line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:596 +// line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:620 +// line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:640 +// line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:664 +// line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:668 +// line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:675 +// line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:681 +// line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:688 +// line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:694 +// line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:701 +// line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:707 +// line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:714 +// line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:718 +// line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:729 +// line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:743 +// line internal/php7/php7.y:743 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 +// line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 +// line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 +// line internal/php7/php7.y:783 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:790 +// line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:799 +// line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:810 +// line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:817 +// line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:822 +// line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:826 +// line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:830 +// line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:834 +// line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:838 +// line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:842 +// line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:856 +// line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:867 +// line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:871 +// line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:875 +// line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:885 +// line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:900 +// line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:914 +// line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:924 +// line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:935 +// line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:946 +// line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:957 +// line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:965 +// line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:973 +// line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:981 +// line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3327,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:991 +// line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3339,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1001 +// line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3352,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1012 +// line internal/php7/php7.y:1012 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3366,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1024 +// line internal/php7/php7.y:1024 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3382,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1038 +// line internal/php7/php7.y:1038 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3395,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1049 +// line internal/php7/php7.y:1049 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3406,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1058 +// line internal/php7/php7.y:1058 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3425,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1075 +// line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3438,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1086 +// line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1103 +// line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3475,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1121 +// line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1125 +// line internal/php7/php7.y:1125 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3508,7 +3508,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1152 +// line internal/php7/php7.y:1152 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3516,7 +3516,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1158 +// line internal/php7/php7.y:1158 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3525,13 +3525,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1168 +// line internal/php7/php7.y:1168 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1172 +// line internal/php7/php7.y:1172 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3545,7 +3545,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1187 +// line internal/php7/php7.y:1187 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3553,7 +3553,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1193 +// line internal/php7/php7.y:1193 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3562,13 +3562,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1203 +// line internal/php7/php7.y:1203 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1210 +// line internal/php7/php7.y:1210 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3595,31 +3595,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1238 +// line internal/php7/php7.y:1238 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1242 +// line internal/php7/php7.y:1242 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1249 +// line internal/php7/php7.y:1249 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1253 +// line internal/php7/php7.y:1253 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1260 +// line internal/php7/php7.y:1260 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3643,7 +3643,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1282 +// line internal/php7/php7.y:1282 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3666,19 +3666,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1306 +// line internal/php7/php7.y:1306 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1310 +// line internal/php7/php7.y:1310 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1317 +// line internal/php7/php7.y:1317 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3690,7 +3690,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1327 +// line internal/php7/php7.y:1327 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3702,7 +3702,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1340 +// line internal/php7/php7.y:1340 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3723,7 +3723,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1362 +// line internal/php7/php7.y:1362 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3745,13 +3745,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1385 +// line internal/php7/php7.y:1385 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1389 +// line internal/php7/php7.y:1389 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3763,13 +3763,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1402 +// line internal/php7/php7.y:1402 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1406 +// line internal/php7/php7.y:1406 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3782,13 +3782,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1420 +// line internal/php7/php7.y:1420 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1424 +// line internal/php7/php7.y:1424 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3801,13 +3801,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1438 +// line internal/php7/php7.y:1438 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1442 +// line internal/php7/php7.y:1442 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3819,7 +3819,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1452 +// line internal/php7/php7.y:1452 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3834,7 +3834,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1465 +// line internal/php7/php7.y:1465 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3848,7 +3848,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1480 +// line internal/php7/php7.y:1480 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3859,7 +3859,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1489 +// line internal/php7/php7.y:1489 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3879,7 +3879,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1510 +// line internal/php7/php7.y:1510 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3890,7 +3890,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1519 +// line internal/php7/php7.y:1519 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3910,7 +3910,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1540 +// line internal/php7/php7.y:1540 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3921,7 +3921,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1549 +// line internal/php7/php7.y:1549 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3941,7 +3941,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1570 +// line internal/php7/php7.y:1570 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3954,7 +3954,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1581 +// line internal/php7/php7.y:1581 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3968,7 +3968,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1593 +// line internal/php7/php7.y:1593 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3983,7 +3983,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1606 +// line internal/php7/php7.y:1606 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3999,13 +3999,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1623 +// line internal/php7/php7.y:1623 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1627 +// line internal/php7/php7.y:1627 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4019,7 +4019,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1639 +// line internal/php7/php7.y:1639 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4032,19 +4032,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1653 +// line internal/php7/php7.y:1653 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1657 +// line internal/php7/php7.y:1657 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1664 +// line internal/php7/php7.y:1664 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4055,7 +4055,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1673 +// line internal/php7/php7.y:1673 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4075,7 +4075,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1694 +// line internal/php7/php7.y:1694 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4090,7 +4090,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1707 +// line internal/php7/php7.y:1707 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4109,13 +4109,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1727 +// line internal/php7/php7.y:1727 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1731 +// line internal/php7/php7.y:1731 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4131,7 +4131,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1748 +// line internal/php7/php7.y:1748 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4153,7 +4153,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1768 +// line internal/php7/php7.y:1768 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4177,7 +4177,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1793 +// line internal/php7/php7.y:1793 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4187,7 +4187,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1801 +// line internal/php7/php7.y:1801 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4211,25 +4211,25 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1826 +// line internal/php7/php7.y:1826 { yyVAL.list = yyDollar[1].list } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1830 +// line internal/php7/php7.y:1830 { yyVAL.list = nil } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1837 +// line internal/php7/php7.y:1837 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1841 +// line internal/php7/php7.y:1841 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -4238,42 +4238,8 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1851 +// line internal/php7/php7.y:1851 { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - }, - } - - if yyDollar[3].token != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), - }, - VariadicTkn: yyDollar[3].token, - Var: variable, - } - } - - if yyDollar[2].token != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, - AmpersandTkn: yyDollar[2].token, - Var: variable, - } - } - pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { pos = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) @@ -4287,48 +4253,27 @@ yydefault: Node: ast.Node{ Position: pos, }, - Type: yyDollar[1].node, - Var: variable, + Type: yyDollar[1].node, + AmpersandTkn: yyDollar[2].token, + VariadicTkn: yyDollar[3].token, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + }, } } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1904 +// line internal/php7/php7.y:1883 { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, - IdentifierTkn: yyDollar[4].token, - Value: yyDollar[4].token.Value, - }, - } - - if yyDollar[3].token != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), - }, - VariadicTkn: yyDollar[3].token, - Var: variable, - } - } - - if yyDollar[2].token != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, - AmpersandTkn: yyDollar[2].token, - Var: variable, - } - } - pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { pos = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) @@ -4343,32 +4288,45 @@ yydefault: Position: pos, }, Type: yyDollar[1].node, - Var: variable, + AmpersandTkn: yyDollar[2].token, + VariadicTkn: yyDollar[3].token, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[4].token), + }, + IdentifierTkn: yyDollar[4].token, + Value: yyDollar[4].token.Value, + }, + }, EqualTkn: yyDollar[5].token, DefaultValue: yyDollar[6].node, } } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1962 +// line internal/php7/php7.y:1920 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1966 +// line internal/php7/php7.y:1924 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1973 +// line internal/php7/php7.y:1931 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1977 +// line internal/php7/php7.y:1935 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4380,7 +4338,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1990 +// line internal/php7/php7.y:1948 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4392,7 +4350,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2000 +// line internal/php7/php7.y:1958 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4404,19 +4362,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2010 +// line internal/php7/php7.y:1968 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2017 +// line internal/php7/php7.y:1975 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2021 +// line internal/php7/php7.y:1979 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4425,7 +4383,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2031 +// line internal/php7/php7.y:1989 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4437,7 +4395,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2041 +// line internal/php7/php7.y:1999 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4449,7 +4407,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2054 +// line internal/php7/php7.y:2012 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4457,7 +4415,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2060 +// line internal/php7/php7.y:2018 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4466,7 +4424,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2070 +// line internal/php7/php7.y:2028 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4477,7 +4435,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2079 +// line internal/php7/php7.y:2037 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4489,7 +4447,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2092 +// line internal/php7/php7.y:2050 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4498,7 +4456,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2099 +// line internal/php7/php7.y:2057 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4506,13 +4464,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2108 +// line internal/php7/php7.y:2066 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2115 +// line internal/php7/php7.y:2073 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4521,7 +4479,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2122 +// line internal/php7/php7.y:2080 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4529,7 +4487,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2131 +// line internal/php7/php7.y:2089 { yyVAL.node = &ast.StmtStaticVar{ @@ -4552,7 +4510,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2152 +// line internal/php7/php7.y:2110 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4576,19 +4534,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2177 +// line internal/php7/php7.y:2135 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2181 +// line internal/php7/php7.y:2139 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2188 +// line internal/php7/php7.y:2146 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4603,7 +4561,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2201 +// line internal/php7/php7.y:2159 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4617,7 +4575,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2213 +// line internal/php7/php7.y:2171 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4631,7 +4589,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2225 +// line internal/php7/php7.y:2183 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4662,7 +4620,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2257 +// line internal/php7/php7.y:2215 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4670,7 +4628,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2263 +// line internal/php7/php7.y:2221 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4679,7 +4637,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2273 +// line internal/php7/php7.y:2231 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4690,7 +4648,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2282 +// line internal/php7/php7.y:2240 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4702,7 +4660,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2292 +// line internal/php7/php7.y:2250 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4715,19 +4673,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2306 +// line internal/php7/php7.y:2264 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2310 +// line internal/php7/php7.y:2268 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2317 +// line internal/php7/php7.y:2275 { yyVAL.node = yyDollar[1].node @@ -4737,7 +4695,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2325 +// line internal/php7/php7.y:2283 { yyVAL.node = yyDollar[1].node @@ -4747,7 +4705,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2336 +// line internal/php7/php7.y:2294 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4761,7 +4719,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2351 +// line internal/php7/php7.y:2309 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4780,7 +4738,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2368 +// line internal/php7/php7.y:2326 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4799,7 +4757,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2385 +// line internal/php7/php7.y:2343 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4819,7 +4777,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2403 +// line internal/php7/php7.y:2361 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4832,7 +4790,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2417 +// line internal/php7/php7.y:2375 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4849,13 +4807,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2432 +// line internal/php7/php7.y:2390 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2439 +// line internal/php7/php7.y:2397 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4874,7 +4832,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2459 +// line internal/php7/php7.y:2417 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4885,7 +4843,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2468 +// line internal/php7/php7.y:2426 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4898,13 +4856,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2482 +// line internal/php7/php7.y:2440 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2486 +// line internal/php7/php7.y:2444 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4918,31 +4876,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2501 +// line internal/php7/php7.y:2459 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2505 +// line internal/php7/php7.y:2463 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2512 +// line internal/php7/php7.y:2470 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2516 +// line internal/php7/php7.y:2474 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2523 +// line internal/php7/php7.y:2481 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4954,7 +4912,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2533 +// line internal/php7/php7.y:2491 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4966,7 +4924,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2543 +// line internal/php7/php7.y:2501 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4978,7 +4936,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2553 +// line internal/php7/php7.y:2511 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4990,7 +4948,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2563 +// line internal/php7/php7.y:2521 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5002,7 +4960,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2573 +// line internal/php7/php7.y:2531 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5014,7 +4972,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2586 +// line internal/php7/php7.y:2544 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5023,7 +4981,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2593 +// line internal/php7/php7.y:2551 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5031,7 +4989,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2602 +// line internal/php7/php7.y:2560 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5054,7 +5012,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2623 +// line internal/php7/php7.y:2581 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5078,7 +5036,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2648 +// line internal/php7/php7.y:2606 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5086,13 +5044,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2654 +// line internal/php7/php7.y:2612 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2661 +// line internal/php7/php7.y:2619 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5113,7 +5071,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2683 +// line internal/php7/php7.y:2641 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5134,7 +5092,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2705 +// line internal/php7/php7.y:2663 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5143,7 +5101,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2712 +// line internal/php7/php7.y:2670 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5151,25 +5109,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2721 +// line internal/php7/php7.y:2679 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2728 +// line internal/php7/php7.y:2686 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2732 +// line internal/php7/php7.y:2690 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2739 +// line internal/php7/php7.y:2697 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5178,13 +5136,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2746 +// line internal/php7/php7.y:2704 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2753 +// line internal/php7/php7.y:2711 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5193,6 +5151,7 @@ yydefault: ClassTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Extends: yyDollar[3].node, Implements: yyDollar[4].node, @@ -5203,7 +5162,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2773 +// line internal/php7/php7.y:2732 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5214,6 +5173,7 @@ yydefault: Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, } } else { @@ -5228,7 +5188,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2796 +// line internal/php7/php7.y:2756 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5240,7 +5200,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2809 +// line internal/php7/php7.y:2769 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5262,7 +5222,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2829 +// line internal/php7/php7.y:2789 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5283,7 +5243,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2848 +// line internal/php7/php7.y:2808 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5296,7 +5256,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2859 +// line internal/php7/php7.y:2819 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5310,7 +5270,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2871 +// line internal/php7/php7.y:2831 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5322,7 +5282,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2881 +// line internal/php7/php7.y:2841 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5335,7 +5295,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2892 +// line internal/php7/php7.y:2852 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5348,7 +5308,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2903 +// line internal/php7/php7.y:2863 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5361,7 +5321,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2914 +// line internal/php7/php7.y:2874 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5374,7 +5334,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2925 +// line internal/php7/php7.y:2885 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5387,7 +5347,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2936 +// line internal/php7/php7.y:2896 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5400,7 +5360,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2947 +// line internal/php7/php7.y:2907 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5413,7 +5373,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2958 +// line internal/php7/php7.y:2918 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5426,7 +5386,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2969 +// line internal/php7/php7.y:2929 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5439,7 +5399,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2980 +// line internal/php7/php7.y:2940 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5452,7 +5412,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2991 +// line internal/php7/php7.y:2951 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5465,7 +5425,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3002 +// line internal/php7/php7.y:2962 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5478,7 +5438,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3013 +// line internal/php7/php7.y:2973 { yyVAL.node = &ast.ExprAssignCoalesce{ Node: ast.Node{ @@ -5491,7 +5451,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3024 +// line internal/php7/php7.y:2984 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5503,7 +5463,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3034 +// line internal/php7/php7.y:2994 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5515,7 +5475,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3044 +// line internal/php7/php7.y:3004 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5527,7 +5487,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3054 +// line internal/php7/php7.y:3014 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5539,7 +5499,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3064 +// line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5552,7 +5512,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3075 +// line internal/php7/php7.y:3035 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5565,7 +5525,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3086 +// line internal/php7/php7.y:3046 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5578,7 +5538,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3097 +// line internal/php7/php7.y:3057 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5591,7 +5551,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3108 +// line internal/php7/php7.y:3068 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5604,7 +5564,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3119 +// line internal/php7/php7.y:3079 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5617,7 +5577,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3130 +// line internal/php7/php7.y:3090 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5630,7 +5590,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3141 +// line internal/php7/php7.y:3101 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5643,7 +5603,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3152 +// line internal/php7/php7.y:3112 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5656,7 +5616,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3163 +// line internal/php7/php7.y:3123 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5669,7 +5629,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3174 +// line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5682,7 +5642,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3185 +// line internal/php7/php7.y:3145 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5695,7 +5655,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3196 +// line internal/php7/php7.y:3156 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5708,7 +5668,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3207 +// line internal/php7/php7.y:3167 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5721,7 +5681,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3218 +// line internal/php7/php7.y:3178 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5734,7 +5694,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3229 +// line internal/php7/php7.y:3189 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5747,7 +5707,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3240 +// line internal/php7/php7.y:3200 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5760,7 +5720,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3251 +// line internal/php7/php7.y:3211 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5772,7 +5732,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3261 +// line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5784,7 +5744,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3271 +// line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5796,7 +5756,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3281 +// line internal/php7/php7.y:3241 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5808,7 +5768,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3291 +// line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5821,7 +5781,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3302 +// line internal/php7/php7.y:3262 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5834,7 +5794,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3313 +// line internal/php7/php7.y:3273 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5847,7 +5807,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3324 +// line internal/php7/php7.y:3284 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5860,7 +5820,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3335 +// line internal/php7/php7.y:3295 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5873,7 +5833,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3346 +// line internal/php7/php7.y:3306 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5886,7 +5846,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3357 +// line internal/php7/php7.y:3317 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5899,7 +5859,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3368 +// line internal/php7/php7.y:3328 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5912,7 +5872,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3379 +// line internal/php7/php7.y:3339 { yyVAL.node = &ast.ExprBinarySpaceship{ Node: ast.Node{ @@ -5925,7 +5885,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3390 +// line internal/php7/php7.y:3350 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5938,7 +5898,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3401 +// line internal/php7/php7.y:3361 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5955,13 +5915,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3416 +// line internal/php7/php7.y:3376 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3420 +// line internal/php7/php7.y:3380 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5976,7 +5936,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3433 +// line internal/php7/php7.y:3393 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5990,7 +5950,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3445 +// line internal/php7/php7.y:3405 { yyVAL.node = &ast.ExprBinaryCoalesce{ Node: ast.Node{ @@ -6003,13 +5963,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3456 +// line internal/php7/php7.y:3416 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3460 +// line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6021,7 +5981,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3470 +// line internal/php7/php7.y:3430 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6033,7 +5993,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3480 +// line internal/php7/php7.y:3440 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6045,7 +6005,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3490 +// line internal/php7/php7.y:3450 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6057,7 +6017,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3500 +// line internal/php7/php7.y:3460 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6069,7 +6029,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3510 +// line internal/php7/php7.y:3470 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6081,7 +6041,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3520 +// line internal/php7/php7.y:3480 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6093,7 +6053,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3530 +// line internal/php7/php7.y:3490 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6112,7 +6072,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3547 +// line internal/php7/php7.y:3507 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6124,13 +6084,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3557 +// line internal/php7/php7.y:3517 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3561 +// line internal/php7/php7.y:3521 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6143,7 +6103,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3572 +// line internal/php7/php7.y:3532 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6155,7 +6115,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3582 +// line internal/php7/php7.y:3542 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6166,7 +6126,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3591 +// line internal/php7/php7.y:3551 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6178,7 +6138,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3601 +// line internal/php7/php7.y:3561 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6192,7 +6152,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3613 +// line internal/php7/php7.y:3573 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6204,13 +6164,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3623 +// line internal/php7/php7.y:3583 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3627 +// line internal/php7/php7.y:3587 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6225,7 +6185,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3643 +// line internal/php7/php7.y:3603 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6246,7 +6206,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3662 +// line internal/php7/php7.y:3622 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6265,25 +6225,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3686 +// line internal/php7/php7.y:3646 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3690 +// line internal/php7/php7.y:3650 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3697 +// line internal/php7/php7.y:3657 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3701 +// line internal/php7/php7.y:3661 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6298,7 +6258,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3717 +// line internal/php7/php7.y:3677 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6307,7 +6267,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3724 +// line internal/php7/php7.y:3684 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6315,7 +6275,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3733 +// line internal/php7/php7.y:3693 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6332,7 +6292,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3748 +// line internal/php7/php7.y:3708 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6355,7 +6315,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3772 +// line internal/php7/php7.y:3732 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6364,12 +6324,13 @@ yydefault: Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3784 +// line internal/php7/php7.y:3745 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6380,12 +6341,13 @@ yydefault: Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3798 +// line internal/php7/php7.y:3760 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6396,12 +6358,13 @@ yydefault: Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3812 +// line internal/php7/php7.y:3775 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6410,12 +6373,13 @@ yydefault: Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, } } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3827 +// line internal/php7/php7.y:3791 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6427,31 +6391,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3837 +// line internal/php7/php7.y:3801 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3844 +// line internal/php7/php7.y:3808 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3848 +// line internal/php7/php7.y:3812 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3855 +// line internal/php7/php7.y:3819 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3859 +// line internal/php7/php7.y:3823 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6468,13 +6432,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3877 +// line internal/php7/php7.y:3841 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3881 +// line internal/php7/php7.y:3845 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6488,25 +6452,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3893 +// line internal/php7/php7.y:3857 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3900 +// line internal/php7/php7.y:3864 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3904 +// line internal/php7/php7.y:3868 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3911 +// line internal/php7/php7.y:3875 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6521,7 +6485,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3924 +// line internal/php7/php7.y:3888 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6535,7 +6499,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3936 +// line internal/php7/php7.y:3900 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6547,7 +6511,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3949 +// line internal/php7/php7.y:3913 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6559,7 +6523,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3959 +// line internal/php7/php7.y:3923 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6571,7 +6535,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3969 +// line internal/php7/php7.y:3933 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6583,7 +6547,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3979 +// line internal/php7/php7.y:3943 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6595,7 +6559,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3989 +// line internal/php7/php7.y:3953 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6607,7 +6571,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3999 +// line internal/php7/php7.y:3963 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6619,7 +6583,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4009 +// line internal/php7/php7.y:3973 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6631,7 +6595,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4019 +// line internal/php7/php7.y:3983 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6643,7 +6607,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4029 +// line internal/php7/php7.y:3993 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6655,7 +6619,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4039 +// line internal/php7/php7.y:4003 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6667,7 +6631,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4049 +// line internal/php7/php7.y:4013 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6688,7 +6652,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4068 +// line internal/php7/php7.y:4032 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6700,7 +6664,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4078 +// line internal/php7/php7.y:4042 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6713,7 +6677,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4089 +// line internal/php7/php7.y:4053 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6726,19 +6690,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4100 +// line internal/php7/php7.y:4064 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4104 +// line internal/php7/php7.y:4068 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4111 +// line internal/php7/php7.y:4075 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6749,7 +6713,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4120 +// line internal/php7/php7.y:4084 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6768,7 +6732,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4137 +// line internal/php7/php7.y:4101 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6787,43 +6751,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4157 +// line internal/php7/php7.y:4121 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4161 +// line internal/php7/php7.y:4125 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4168 +// line internal/php7/php7.y:4132 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4172 +// line internal/php7/php7.y:4136 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4179 +// line internal/php7/php7.y:4143 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4186 +// line internal/php7/php7.y:4150 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4190 +// line internal/php7/php7.y:4154 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6840,19 +6804,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4205 +// line internal/php7/php7.y:4169 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4212 +// line internal/php7/php7.y:4176 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4216 +// line internal/php7/php7.y:4180 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6869,19 +6833,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4231 +// line internal/php7/php7.y:4195 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4238 +// line internal/php7/php7.y:4202 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4242 +// line internal/php7/php7.y:4206 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6895,7 +6859,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4254 +// line internal/php7/php7.y:4218 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6909,7 +6873,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4266 +// line internal/php7/php7.y:4230 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6923,7 +6887,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4278 +// line internal/php7/php7.y:4242 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6934,30 +6898,31 @@ yydefault: Method: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4292 +// line internal/php7/php7.y:4257 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4299 +// line internal/php7/php7.y:4264 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4303 +// line internal/php7/php7.y:4268 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4307 +// line internal/php7/php7.y:4272 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6970,7 +6935,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4321 +// line internal/php7/php7.y:4286 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6987,7 +6952,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4336 +// line internal/php7/php7.y:4301 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7006,7 +6971,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4353 +// line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7018,7 +6983,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4366 +// line internal/php7/php7.y:4331 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7031,7 +6996,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4377 +// line internal/php7/php7.y:4342 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7044,13 +7009,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4391 +// line internal/php7/php7.y:4356 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4395 +// line internal/php7/php7.y:4360 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7064,7 +7029,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4407 +// line internal/php7/php7.y:4372 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7078,7 +7043,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4419 +// line internal/php7/php7.y:4384 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7091,7 +7056,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4430 +// line internal/php7/php7.y:4395 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7104,7 +7069,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4441 +// line internal/php7/php7.y:4406 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7117,7 +7082,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4455 +// line internal/php7/php7.y:4420 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7129,7 +7094,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4465 +// line internal/php7/php7.y:4430 { yyVAL.node = yyDollar[2].node @@ -7139,13 +7104,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4473 +// line internal/php7/php7.y:4438 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4480 +// line internal/php7/php7.y:4445 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7157,7 +7122,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4490 +// line internal/php7/php7.y:4455 { yyVAL.node = yyDollar[2].node @@ -7167,13 +7132,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4498 +// line internal/php7/php7.y:4463 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4505 +// line internal/php7/php7.y:4470 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7186,19 +7151,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4519 +// line internal/php7/php7.y:4484 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4523 +// line internal/php7/php7.y:4488 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4530 +// line internal/php7/php7.y:4495 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7207,7 +7172,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4537 +// line internal/php7/php7.y:4502 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7215,7 +7180,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4546 +// line internal/php7/php7.y:4511 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7228,7 +7193,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4557 +// line internal/php7/php7.y:4522 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7239,7 +7204,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4566 +// line internal/php7/php7.y:4531 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7258,7 +7223,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4583 +// line internal/php7/php7.y:4548 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7275,7 +7240,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4598 +// line internal/php7/php7.y:4563 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7287,7 +7252,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4608 +// line internal/php7/php7.y:4573 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7309,7 +7274,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4628 +// line internal/php7/php7.y:4593 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7329,13 +7294,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4649 +// line internal/php7/php7.y:4614 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4653 +// line internal/php7/php7.y:4618 { yyVAL.list = append( yyDollar[1].list, @@ -7350,13 +7315,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4666 +// line internal/php7/php7.y:4631 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4670 +// line internal/php7/php7.y:4635 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7371,7 +7336,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4686 +// line internal/php7/php7.y:4651 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7388,7 +7353,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4701 +// line internal/php7/php7.y:4666 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7413,7 +7378,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4724 +// line internal/php7/php7.y:4689 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7443,7 +7408,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4752 +// line internal/php7/php7.y:4717 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7461,7 +7426,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4768 +// line internal/php7/php7.y:4733 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7485,7 +7450,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4790 +// line internal/php7/php7.y:4755 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7517,7 +7482,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4820 +// line internal/php7/php7.y:4785 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7530,7 +7495,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4834 +// line internal/php7/php7.y:4799 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7542,7 +7507,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4844 +// line internal/php7/php7.y:4809 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7565,7 +7530,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4865 +// line internal/php7/php7.y:4830 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7598,7 +7563,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4896 +// line internal/php7/php7.y:4861 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7615,7 +7580,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4914 +// line internal/php7/php7.y:4879 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7634,7 +7599,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4931 +// line internal/php7/php7.y:4896 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7648,7 +7613,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4943 +// line internal/php7/php7.y:4908 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7660,7 +7625,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4953 +// line internal/php7/php7.y:4918 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7672,7 +7637,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4963 +// line internal/php7/php7.y:4928 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7686,7 +7651,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4975 +// line internal/php7/php7.y:4940 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7698,7 +7663,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4985 +// line internal/php7/php7.y:4950 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7710,7 +7675,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4998 +// line internal/php7/php7.y:4963 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7718,7 +7683,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:5004 +// line internal/php7/php7.y:4969 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7727,7 +7692,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:5014 +// line internal/php7/php7.y:4979 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index e40fa5f..35d271e 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1849,40 +1849,6 @@ non_empty_parameter_list: parameter: optional_type is_reference is_variadic T_VARIABLE { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - }, - } - - if $3 != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $4), - }, - VariadicTkn: $3, - Var: variable, - } - } - - if $2 != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, - AmpersandTkn: $2, - Var: variable, - } - } - pos := position.NewTokenPosition($4) if $1 != nil { pos = position.NewNodeTokenPosition($1, $4) @@ -1896,46 +1862,25 @@ parameter: Node: ast.Node{ Position: pos, }, - Type: $1, - Var: variable, + Type: $1, + AmpersandTkn: $2, + VariadicTkn: $3, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + }, } } | optional_type is_reference is_variadic T_VARIABLE '=' expr { - var variable ast.Vertex - variable = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, - IdentifierTkn: $4, - Value: $4.Value, - }, - } - - if $3 != nil { - variable = &ast.Variadic{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $4), - }, - VariadicTkn: $3, - Var: variable, - } - } - - if $2 != nil { - variable = &ast.Reference{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, - AmpersandTkn: $2, - Var: variable, - } - } - pos := position.NewTokenNodePosition($4, $6) if $1 != nil { pos = position.NewNodesPosition($1, $6) @@ -1950,7 +1895,20 @@ parameter: Position: pos, }, Type: $1, - Var: variable, + AmpersandTkn: $2, + VariadicTkn: $3, + Var: &ast.ExprVariable{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + VarName: &ast.Identifier{ + Node: ast.Node{ + Position: position.NewTokenPosition($4), + }, + IdentifierTkn: $4, + Value: $4.Value, + }, + }, EqualTkn: $5, DefaultValue: $6, } @@ -2758,6 +2716,7 @@ anonymous_class: ClassTkn: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, + SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Extends: $3, Implements: $4, @@ -2780,6 +2739,7 @@ new_expr: Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $3.(*ast.ArgumentList).Arguments, + SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, } } else { @@ -3777,6 +3737,7 @@ function_call: Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, + SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -3791,6 +3752,7 @@ function_call: Call: $3, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -3805,6 +3767,7 @@ function_call: Call: $3, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -3817,6 +3780,7 @@ function_call: Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, + SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, } } @@ -4285,6 +4249,7 @@ callable_variable: Method: $3, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, + SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 526c4e8..b711aaa 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -20,8 +20,6 @@ type Visitor interface { type NodeVisitor interface { Root(n *Root) Nullable(n *Nullable) - Reference(n *Reference) - Variadic(n *Variadic) Parameter(n *Parameter) Identifier(n *Identifier) Argument(n *Argument) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index e3298cb..6283064 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -42,32 +42,12 @@ func (n *Nullable) Accept(v NodeVisitor) { v.Nullable(n) } -// Reference node -type Reference struct { - Node - AmpersandTkn *token.Token - Var Vertex -} - -func (n *Reference) Accept(v NodeVisitor) { - v.Reference(n) -} - -// Variadic node -type Variadic struct { - Node - VariadicTkn *token.Token - Var Vertex -} - -func (n *Variadic) Accept(v NodeVisitor) { - v.Variadic(n) -} - // Parameter node type Parameter struct { Node Type Vertex + AmpersandTkn *token.Token + VariadicTkn *token.Token Var Vertex EqualTkn *token.Token DefaultValue Vertex @@ -231,6 +211,7 @@ type StmtClass struct { ClassName Vertex OpenParenthesisTkn *token.Token Arguments []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token Extends Vertex Implements Vertex @@ -1131,6 +1112,7 @@ type ExprFunctionCall struct { Function Vertex OpenParenthesisTkn *token.Token Arguments []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } @@ -1208,6 +1190,7 @@ type ExprMethodCall struct { Method Vertex OpenParenthesisTkn *token.Token Arguments []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } @@ -1222,6 +1205,7 @@ type ExprNew struct { Class Vertex OpenParenthesisTkn *token.Token Arguments []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } @@ -1349,6 +1333,7 @@ type ExprStaticCall struct { Call Vertex OpenParenthesisTkn *token.Token Arguments []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 6e3fe74..d9e198e 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -40,30 +40,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Expr) t.visitor.Leave("Expr", true) } - case *ast.Reference: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - case *ast.Variadic: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } case *ast.Parameter: if nn == nil { return diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index ea0ae75..d6546f3 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -203,18 +203,6 @@ func (v *Dump) Nullable(n *ast.Nullable) { v.printNode(n.GetNode()) } -func (v *Dump) Reference(n *ast.Reference) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.Reference{\n") - v.printNode(n.GetNode()) -} - -func (v *Dump) Variadic(n *ast.Variadic) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.Variadic{\n") - v.printNode(n.GetNode()) -} - func (v *Dump) Parameter(n *ast.Parameter) { v.printIndent(v.indent - 1) v.print("&ast.Parameter{\n") diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index ce4f433..92b9b55 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -30,14 +30,6 @@ func (v *Null) Nullable(_ *ast.Nullable) { // do nothing } -func (v *Null) Reference(_ *ast.Reference) { - // do nothing -} - -func (v *Null) Variadic(_ *ast.Variadic) { - // do nothing -} - func (v *Null) Parameter(_ *ast.Parameter) { // do nothing } diff --git a/pkg/printer/pretty_printer.go b/pkg/printer/pretty_printer.go index eae729a..c263d3f 100644 --- a/pkg/printer/pretty_printer.go +++ b/pkg/printer/pretty_printer.go @@ -64,10 +64,6 @@ func (p *PrettyPrinter) printNode(n ast.Vertex) { p.printNodeRoot(n) case *ast.Identifier: p.printNodeIdentifier(n) - case *ast.Reference: - p.printNodeReference(n) - case *ast.Variadic: - p.printNodeVariadic(n) case *ast.Parameter: p.printNodeParameter(n) case *ast.Nullable: @@ -421,20 +417,6 @@ func (p *PrettyPrinter) printNodeIdentifier(n ast.Vertex) { io.WriteString(p.w, v) } -func (p *PrettyPrinter) printNodeReference(n ast.Vertex) { - nn := n.(*ast.Reference) - - io.WriteString(p.w, "&") - p.Print(nn.Var) -} - -func (p *PrettyPrinter) printNodeVariadic(n ast.Vertex) { - nn := n.(*ast.Variadic) - - io.WriteString(p.w, "...") - p.Print(nn.Var) -} - func (p *PrettyPrinter) printNodeParameter(n ast.Vertex) { nn := n.(*ast.Parameter) diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 328e0f9..0109652 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -149,10 +149,6 @@ func (p *Printer) printNode(n ast.Vertex) { p.printNodeRoot(n) case *ast.Identifier: p.printNodeIdentifier(n) - case *ast.Reference: - p.printNodeReference(n) - case *ast.Variadic: - p.printNodeVariadic(n) case *ast.Parameter: p.printNodeParameter(n) case *ast.Nullable: @@ -505,26 +501,6 @@ func (p *Printer) printNodeIdentifier(n ast.Vertex) { p.printFreeFloating(nn, token.End) } -func (p *Printer) printNodeReference(n ast.Vertex) { - nn := n.(*ast.Reference) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("&")) - p.Print(nn.Var) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printNodeVariadic(n ast.Vertex) { - nn := n.(*ast.Variadic) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("...")) - p.Print(nn.Var) - - p.printFreeFloating(nn, token.End) -} - func (p *Printer) printNodeParameter(n ast.Vertex) { nn := n.(*ast.Parameter) p.printFreeFloating(nn, token.Start) From 132db0e06bdc444fece1750c27ca0576cc8f2ade Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 12:22:06 +0200 Subject: [PATCH 096/140] [refactoring] update ast structure of "ClassMethod", "Function", "ArrowFunction" and "Closure" nodes --- internal/php5/php5.go | 1130 ++++++++++++++++++------------------ internal/php5/php5.y | 30 +- internal/php7/php7.go | 1284 +++++++++++++++++++++-------------------- internal/php7/php7.y | 28 +- pkg/ast/node.go | 4 + 5 files changed, 1252 insertions(+), 1224 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 3841713..6647192 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -342,7 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6557 +// line internal/php5/php5.y:6563 // line yacctab:1 var yyExca = [...]int{ @@ -691,18 +691,18 @@ var yyAct = [...]int{ 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, 521, 259, 572, 591, 255, 994, 283, 572, 996, 285, 260, 261, 840, 965, 998, 980, 964, 260, 261, 839, - 836, 566, 1006, 39, 572, 1012, 531, 1005, 725, 1013, - 341, 698, 531, 531, 993, 572, 1016, 518, 716, 538, + 836, 1006, 1005, 39, 572, 1012, 531, 725, 341, 1013, + 698, 538, 531, 531, 993, 572, 1016, 518, 716, 318, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 318, 314, 259, 446, 231, 31, 231, 256, 654, - 531, 127, 296, 656, 655, 39, 260, 261, 449, 403, - 575, 39, 903, 657, 659, 660, 676, 677, 666, 401, - 147, 151, 155, 460, 335, 945, 165, 685, 478, 995, - 1009, 929, 483, 343, 198, 290, 394, 389, 939, 206, - 896, 164, 157, 161, 528, 231, 608, 997, 531, 970, - 223, 969, 968, 967, 235, 236, 237, 238, 260, 261, - 240, 838, 242, 243, 244, 245, 246, 247, 248, 837, - 252, 835, 40, 568, 821, 262, 15, 14, 823, 720, + 679, 314, 127, 259, 446, 231, 31, 231, 256, 654, + 531, 403, 296, 656, 655, 39, 260, 261, 449, 575, + 903, 39, 401, 657, 659, 660, 676, 677, 666, 460, + 147, 151, 155, 335, 945, 685, 165, 995, 478, 1009, + 929, 483, 343, 290, 198, 394, 389, 939, 896, 206, + 164, 157, 161, 528, 608, 231, 997, 970, 531, 969, + 223, 968, 967, 838, 235, 236, 237, 238, 260, 261, + 240, 837, 242, 243, 244, 245, 246, 247, 248, 835, + 252, 40, 568, 15, 821, 262, 14, 823, 566, 720, 276, 277, 802, 279, 280, 695, 11, 249, 75, 76, 531, 116, 266, 64, 291, 89, 671, 670, 658, 664, 665, 672, 673, 674, 675, 678, 679, 598, 90, 520, @@ -1604,42 +1604,42 @@ var yyPgo = [...]int{ 34, 1151, 1150, 1149, 1148, 131, 1147, 1135, 20, 1133, 26, 38, 168, 1132, 722, 35, 1131, 1, 1129, 1128, 24, 1127, 68, 51, 46, 1126, 1125, 1122, 28, 1119, - 1118, 2, 1117, 1116, 1113, 16, 1112, 1111, 1109, 1101, - 48, 5, 1093, 1092, 1091, 1089, 1087, 6, 1086, 1017, - 1084, 1083, 1082, 18, 1042, 1081, 1080, 1078, 1077, 1076, - 1075, 41, 1073, 1072, 4, 1071, 1070, 1069, 17, 1067, - 12, 1065, 1064, 1063, 7, 21, 1059, 25, 1052, 1050, - 1049, 14, 39, 0, 1041, 1032, 1031, 391, 619, 1019, - 1011, 1010, 30, 52, 1008, 1007, 1002, 3, 1001, 15, + 3, 1118, 1117, 2, 1116, 1113, 1112, 16, 1111, 1109, + 1101, 1093, 48, 5, 1092, 1091, 1089, 1087, 1086, 6, + 1084, 1017, 1083, 1082, 1081, 18, 1042, 1080, 1078, 1077, + 1076, 1075, 1073, 41, 1072, 1071, 4, 1070, 1069, 1067, + 17, 1065, 12, 1064, 1063, 1059, 7, 21, 1052, 25, + 1050, 1049, 1041, 14, 39, 0, 1032, 1031, 1019, 391, + 619, 1011, 1010, 1008, 30, 52, 1007, 1002, 1001, 15, 1000, 999, 996, 993, 992, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, 960, 923, } var yyR1 = [...]int{ - 0, 151, 112, 112, 113, 113, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 114, 114, - 6, 6, 6, 6, 115, 115, 7, 7, 7, 7, - 116, 116, 8, 8, 8, 8, 55, 55, 117, 117, + 0, 151, 114, 114, 115, 115, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 116, 116, + 6, 6, 6, 6, 117, 117, 7, 7, 7, 7, + 118, 118, 8, 8, 8, 8, 55, 55, 119, 119, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 124, 124, 60, 60, 125, - 125, 126, 126, 61, 88, 88, 58, 53, 54, 149, - 149, 150, 150, 62, 63, 63, 66, 66, 66, 66, - 106, 106, 2, 110, 110, 109, 109, 107, 107, 105, - 105, 104, 104, 104, 101, 101, 100, 100, 59, 59, - 89, 89, 92, 92, 92, 92, 123, 123, 123, 4, - 4, 102, 102, 119, 119, 120, 120, 56, 56, 57, - 57, 127, 127, 128, 128, 65, 65, 64, 64, 64, - 64, 84, 84, 84, 93, 93, 70, 70, 70, 70, - 82, 82, 29, 29, 29, 81, 81, 81, 81, 129, - 129, 67, 67, 67, 67, 69, 108, 108, 87, 87, - 132, 132, 133, 133, 71, 71, 72, 97, 97, 75, - 75, 74, 73, 73, 76, 76, 96, 96, 130, 130, - 131, 131, 134, 134, 77, 77, 77, 77, 77, 77, - 86, 86, 86, 86, 68, 68, 85, 85, 122, 122, - 121, 121, 138, 138, 136, 136, 137, 137, 137, 139, + 28, 28, 28, 28, 28, 126, 126, 62, 62, 127, + 127, 128, 128, 63, 90, 90, 58, 53, 54, 149, + 149, 150, 150, 64, 65, 65, 68, 68, 68, 68, + 108, 108, 2, 112, 112, 111, 111, 109, 109, 107, + 107, 106, 106, 106, 103, 103, 102, 102, 59, 59, + 91, 91, 94, 94, 94, 94, 125, 125, 125, 4, + 4, 104, 104, 121, 121, 122, 122, 56, 56, 57, + 57, 60, 60, 61, 61, 67, 67, 66, 66, 66, + 66, 86, 86, 86, 95, 95, 72, 72, 72, 72, + 84, 84, 29, 29, 29, 83, 83, 83, 83, 129, + 129, 69, 69, 69, 69, 71, 110, 110, 89, 89, + 132, 132, 133, 133, 73, 73, 74, 99, 99, 77, + 77, 76, 75, 75, 78, 78, 98, 98, 130, 130, + 131, 131, 134, 134, 79, 79, 79, 79, 79, 79, + 88, 88, 88, 88, 70, 70, 87, 87, 124, 124, + 123, 123, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1648,27 +1648,27 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 111, 111, 95, - 95, 95, 95, 25, 25, 25, 25, 25, 25, 25, + 49, 49, 49, 49, 48, 48, 1, 113, 113, 97, + 97, 97, 97, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 135, 135, - 135, 83, 83, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 10, 30, 79, 79, 79, - 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 135, 85, 85, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 10, 30, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 37, 37, 37, 37, 31, 31, 31, 31, 31, 31, - 31, 98, 98, 3, 3, 99, 99, 99, 99, 16, + 31, 100, 100, 3, 3, 101, 101, 101, 101, 16, 16, 50, 50, 18, 19, 20, 21, 21, 147, 147, - 140, 142, 142, 78, 141, 141, 141, 42, 42, 46, + 140, 142, 142, 80, 141, 141, 141, 42, 42, 46, 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 94, 94, 40, 40, - 40, 91, 91, 90, 90, 90, 90, 90, 90, 90, - 90, 118, 118, 118, 118, 35, 35, 35, 35, 35, + 144, 144, 41, 41, 148, 148, 96, 96, 40, 40, + 40, 93, 93, 92, 92, 92, 92, 92, 92, 92, + 92, 120, 120, 120, 120, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 103, 103, 38, 38, 32, 32, 33, + 39, 39, 39, 105, 105, 38, 38, 32, 32, 33, 34, } @@ -1729,109 +1729,109 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -112, -5, 2, -27, -53, -54, 52, 80, - 45, -55, -28, 10, -62, -63, 39, 144, 7, 21, + -1000, -151, -114, -5, 2, -27, -53, -54, 52, 80, + 45, -55, -28, 10, -64, -65, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, - -66, -2, 98, -18, -17, 37, 53, 100, 54, 101, + -68, -2, 98, -18, -17, 37, 53, 100, 54, 101, 55, -21, 60, 93, -20, 105, 106, 155, 154, 156, 157, -50, -44, 148, -39, 108, 109, 110, 111, 112, 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -113, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -115, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -113, 144, 83, 10, -114, 37, 39, - -6, -113, 83, 146, 160, 147, 10, -117, -50, 148, + 159, 12, 148, -115, 144, 83, 10, -116, 37, 39, + -6, -115, 83, 146, 160, 147, 10, -119, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, - 146, -16, 146, -17, -21, -16, 146, -82, -29, 12, - 159, -81, -1, 12, -85, -16, 146, 131, 132, 88, + 146, -16, 146, -17, -21, -16, 146, -84, -29, 12, + 159, -83, -1, 12, -87, -16, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -113, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -115, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -135, 17, -118, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -113, 80, 83, + 148, -50, -16, 150, 150, -135, 17, -120, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -115, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -118, 17, 17, 76, -118, 150, 148, -91, - -90, -16, 153, 150, 150, 83, -84, 148, -113, 79, - 150, 144, -12, 159, 79, -84, 144, 149, 146, 144, - -112, -113, 146, 160, -115, -7, -113, 83, -116, -8, - -113, 83, 29, -113, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -102, -27, 147, 21, -149, - -122, -121, -16, -92, 144, 147, 146, 146, 146, 146, + -16, 150, -120, 17, 17, 76, -120, 150, 148, -93, + -92, -16, 153, 150, 150, 83, -86, 148, -115, 79, + 150, 144, -12, 159, 79, -86, 144, 149, 146, 144, + -114, -115, 146, 160, -117, -7, -115, 83, -118, -8, + -115, 83, 29, -115, 10, 162, -26, 145, 2, -27, + -53, -54, 52, -27, 147, -104, -27, 147, 21, -149, + -124, -123, -16, -94, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -45, -16, 147, -88, - -58, -21, -21, -17, -89, 10, -117, 146, 146, 10, - 148, -106, 56, -110, 56, 59, -16, 153, -16, -16, + -16, -16, -16, -16, -16, -16, -45, -16, 147, -90, + -58, -21, -21, -17, -91, 10, -119, 146, 146, 10, + 148, -108, 56, -112, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -94, -40, -21, 60, 83, -113, 79, 79, 149, 149, + -96, -40, -21, 60, 83, -115, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -83, -84, 79, 83, -113, 58, -12, 79, - -103, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -91, 151, -3, 160, 59, -19, -21, -15, - -15, 10, 149, -93, -52, -70, -17, -21, 153, 84, - -84, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -112, 145, -84, -6, 146, 160, 29, -113, - 146, 160, 29, -113, 10, 29, 162, -30, -79, -9, - -33, -113, 80, 83, 61, 150, -10, 63, -80, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -119, -117, - -117, -50, 146, 160, -123, 146, -123, 146, -29, -16, + 10, 144, -85, -86, 79, 83, -115, 58, -12, 79, + -105, -38, -21, -17, -21, -16, -16, -15, 142, 76, + 76, -15, -93, 151, -3, 160, 59, -19, -21, -15, + -15, 10, 149, -95, -52, -72, -17, -21, 153, 84, + -86, -41, -42, 10, 53, -15, -16, -41, -42, 10, + -16, 146, -114, 145, -86, -6, 146, 160, 29, -115, + 146, 160, 29, -115, 10, 29, 162, -30, -81, -9, + -33, -115, 80, 83, 61, 150, -10, 63, -82, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -121, -119, + -119, -50, 146, 160, -125, 146, -125, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, - 149, 160, 162, 145, 148, -127, -128, -65, -64, 61, - 62, -47, -113, 80, 83, -109, 57, -47, 144, -107, - -47, -17, -21, -21, 92, 149, 160, 148, -113, -139, + 149, 160, 162, 145, 148, -60, -61, -67, -66, 61, + 62, -47, -115, 80, 83, -111, 57, -47, 144, -109, + -47, -17, -21, -21, 92, 149, 160, 148, -115, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, - 13, 12, 10, 145, 145, 150, 145, -141, -78, -142, - -84, 150, 144, -12, -16, -42, -113, -143, -42, 149, + 13, 12, 10, 145, 145, 150, 145, -141, -80, -142, + -86, 150, 144, -12, -16, -42, -115, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, - 153, 151, 151, 149, 160, 149, -19, -16, -84, -84, - 151, 145, -84, -84, 145, 145, -7, 10, 29, -8, + 153, 151, 151, 149, 160, 149, -19, -16, -86, -86, + 151, 145, -86, -86, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -113, 148, -98, -99, -79, 17, 79, -79, - -79, -79, -79, -79, 149, -56, 94, 95, -120, 22, - 146, -122, -16, 145, 32, 33, -123, 31, -123, 145, - 162, -127, -16, 146, -58, -104, -21, 153, 60, -104, - -59, -27, 147, 10, -30, -124, 42, -127, 149, 160, - -149, 83, -113, 144, -107, -129, 160, -45, 162, -40, - -94, 150, -138, -140, -15, -143, 151, -16, -147, 150, - 150, -15, -16, 145, -146, -38, 59, -19, -19, -70, - 10, 10, -79, -79, -79, -79, -79, -79, -79, -79, - -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, - -79, -79, -79, -79, -79, -79, -79, -79, 147, -79, - -113, -98, 151, -3, 160, 59, 10, 53, 149, 146, + 152, 83, -115, 148, -100, -101, -81, 17, 79, -81, + -81, -81, -81, -81, 149, -56, 94, 95, -122, 22, + 146, -124, -16, 145, 32, 33, -125, 31, -125, 145, + 162, -60, -16, 146, -58, -106, -21, 153, 60, -106, + -59, -27, 147, 10, -30, -126, 42, -60, 149, 160, + -149, 83, -115, 144, -109, -129, 160, -45, 162, -40, + -96, 150, -138, -140, -15, -143, 151, -16, -147, 150, + 150, -15, -16, 145, -146, -38, 59, -19, -19, -72, + 10, 10, -81, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, + -81, -81, -81, -81, -81, -81, -81, -81, 147, -81, + -115, -100, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -105, 59, -21, 148, - -105, -117, 162, -60, 43, 148, 149, -111, 45, -65, - -150, 84, -113, -129, 145, -67, -130, -68, -69, -131, - -134, 48, 39, 45, -77, 104, 103, 102, 99, 100, - 101, -47, -83, -16, 149, -15, 151, -141, 151, -140, - -15, -15, 151, 145, -145, 58, -16, 153, 151, -79, - 147, 149, -79, -79, -27, 96, -50, 147, -122, -4, - -117, 146, -111, 149, -104, -94, 149, 28, -30, 144, - -47, 144, 144, 148, 12, 145, -86, 12, 146, 160, - -1, -77, 10, -108, -47, 151, 145, 151, 151, -143, - -19, -79, 59, 146, 147, -117, 149, -117, 144, -100, - -27, 147, 149, -100, 146, -117, 12, -117, -117, -95, - 12, 153, 162, 146, 160, 162, 10, -149, 162, -87, - 160, 146, 144, -79, -117, -101, -27, 147, -117, -117, + 146, 145, 146, 31, -30, 149, -107, 59, -21, 148, + -107, -119, 162, -62, 43, 148, 149, -113, 45, -67, + -150, 84, -115, -129, 145, -69, -130, -70, -71, -131, + -134, 48, 39, 45, -79, 104, 103, 102, 99, 100, + 101, -47, -85, -16, 149, -15, 151, -141, 151, -140, + -15, -15, 151, 145, -145, 58, -16, 153, 151, -81, + 147, 149, -81, -81, -27, 96, -50, 147, -124, -4, + -119, 146, -113, 149, -106, -96, 149, 28, -30, 144, + -47, 144, 144, 148, 12, 145, -88, 12, 146, 160, + -1, -79, 10, -110, -47, 151, 145, 151, 151, -143, + -19, -81, 59, 146, 147, -119, 149, -119, 144, -102, + -27, 147, 149, -102, 146, -119, 12, -119, -119, -97, + 12, 153, 162, 146, 160, 162, 10, -149, 162, -89, + 160, 146, 144, -81, -119, -103, -27, 147, -119, -119, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, - 162, 10, -30, -47, -132, -133, -71, -72, -73, -74, - -75, -47, 10, -117, 145, 26, 144, 12, 153, 162, - -30, 148, 145, -71, 146, 146, 46, 29, 79, 24, - 146, -117, 12, -30, -127, -97, -47, -76, -77, 10, - 146, 145, 149, 160, 10, -125, -126, -61, 42, -96, - 146, 144, -47, -61, 148, -117, -47, 145, 12, 149, - 144, -117, 145, + 162, 10, -30, -47, -132, -133, -73, -74, -75, -76, + -77, -47, 10, -119, 145, 26, 144, 12, 153, 162, + -30, 148, 145, -73, 146, 146, 46, 29, 79, 24, + 146, -119, 12, -30, -60, -99, -47, -78, -79, 10, + 146, 145, 149, 160, 10, -127, -128, -63, 42, -98, + 146, 144, -47, -63, 148, -119, -47, 145, 12, 149, + 144, -119, 145, } var yyDef = [...]int{ @@ -3538,7 +3538,8 @@ yydefault: Value: yyDollar[3].token.Value, }, OpenParenthesisTkn: yyDollar[4].token, - Params: yyDollar[5].list, + Params: yyDollar[5].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].token, OpenCurlyBracketTkn: yyDollar[7].token, Stmts: yyDollar[8].list, @@ -3547,7 +3548,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1397 +// line internal/php5/php5.y:1398 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3584,7 +3585,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1432 +// line internal/php5/php5.y:1433 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3606,7 +3607,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1456 +// line internal/php5/php5.y:1457 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3617,7 +3618,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1465 +// line internal/php5/php5.y:1466 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3637,7 +3638,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1483 +// line internal/php5/php5.y:1484 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3648,7 +3649,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1492 +// line internal/php5/php5.y:1493 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3668,13 +3669,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1513 +// line internal/php5/php5.y:1514 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1517 +// line internal/php5/php5.y:1518 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3686,19 +3687,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1530 +// line internal/php5/php5.y:1531 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1537 +// line internal/php5/php5.y:1538 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1541 +// line internal/php5/php5.y:1542 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3711,13 +3712,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1555 +// line internal/php5/php5.y:1556 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1559 +// line internal/php5/php5.y:1560 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3730,7 +3731,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1573 +// line internal/php5/php5.y:1574 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3738,7 +3739,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1579 +// line internal/php5/php5.y:1580 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3747,13 +3748,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1589 +// line internal/php5/php5.y:1590 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1593 +// line internal/php5/php5.y:1594 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3762,13 +3763,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1603 +// line internal/php5/php5.y:1604 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1607 +// line internal/php5/php5.y:1608 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3780,7 +3781,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1617 +// line internal/php5/php5.y:1618 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3802,7 +3803,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1640 +// line internal/php5/php5.y:1641 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3813,7 +3814,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1649 +// line internal/php5/php5.y:1650 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3833,7 +3834,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1670 +// line internal/php5/php5.y:1671 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3844,7 +3845,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1679 +// line internal/php5/php5.y:1680 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3864,7 +3865,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1701 +// line internal/php5/php5.y:1702 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3875,7 +3876,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1710 +// line internal/php5/php5.y:1711 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3895,7 +3896,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1732 +// line internal/php5/php5.y:1733 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3920,7 +3921,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1755 +// line internal/php5/php5.y:1756 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3947,7 +3948,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1784 +// line internal/php5/php5.y:1785 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3960,7 +3961,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1795 +// line internal/php5/php5.y:1796 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3974,7 +3975,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1807 +// line internal/php5/php5.y:1808 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3989,7 +3990,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1820 +// line internal/php5/php5.y:1821 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4005,13 +4006,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1838 +// line internal/php5/php5.y:1839 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1842 +// line internal/php5/php5.y:1843 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4025,7 +4026,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1854 +// line internal/php5/php5.y:1855 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4038,19 +4039,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1869 +// line internal/php5/php5.y:1870 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1873 +// line internal/php5/php5.y:1874 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1881 +// line internal/php5/php5.y:1882 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4061,7 +4062,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1890 +// line internal/php5/php5.y:1891 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4081,13 +4082,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1913 +// line internal/php5/php5.y:1914 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1917 +// line internal/php5/php5.y:1918 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4102,13 +4103,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1934 +// line internal/php5/php5.y:1935 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1938 +// line internal/php5/php5.y:1939 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4130,13 +4131,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1962 +// line internal/php5/php5.y:1963 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1966 +// line internal/php5/php5.y:1967 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4148,13 +4149,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1980 +// line internal/php5/php5.y:1981 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1984 +// line internal/php5/php5.y:1985 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4173,34 +4174,36 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2005 +// line internal/php5/php5.y:2006 { - yyVAL.list = yyDollar[1].list + yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2009 +// line internal/php5/php5.y:2010 { - yyVAL.list = nil + yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2016 +// line internal/php5/php5.y:2017 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2020 +// line internal/php5/php5.y:2023 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2030 +// line internal/php5/php5.y:2033 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4234,7 +4237,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2062 +// line internal/php5/php5.y:2065 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4270,13 +4273,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2100 +// line internal/php5/php5.y:2103 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2104 +// line internal/php5/php5.y:2107 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4288,7 +4291,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2114 +// line internal/php5/php5.y:2117 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4300,13 +4303,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2124 +// line internal/php5/php5.y:2127 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2132 +// line internal/php5/php5.y:2135 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4318,7 +4321,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2142 +// line internal/php5/php5.y:2145 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4329,7 +4332,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2151 +// line internal/php5/php5.y:2154 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4349,7 +4352,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2173 +// line internal/php5/php5.y:2176 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4357,7 +4360,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2179 +// line internal/php5/php5.y:2182 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4366,7 +4369,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2189 +// line internal/php5/php5.y:2192 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4377,7 +4380,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2198 +// line internal/php5/php5.y:2201 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4388,7 +4391,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2207 +// line internal/php5/php5.y:2210 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4400,7 +4403,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2217 +// line internal/php5/php5.y:2220 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4412,7 +4415,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2230 +// line internal/php5/php5.y:2233 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4421,7 +4424,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2237 +// line internal/php5/php5.y:2240 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4429,7 +4432,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2247 +// line internal/php5/php5.y:2250 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4446,7 +4449,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2262 +// line internal/php5/php5.y:2265 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4458,7 +4461,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2272 +// line internal/php5/php5.y:2275 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4477,7 +4480,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2293 +// line internal/php5/php5.y:2296 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4502,7 +4505,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2316 +// line internal/php5/php5.y:2319 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4529,7 +4532,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2341 +// line internal/php5/php5.y:2344 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4555,7 +4558,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2365 +// line internal/php5/php5.y:2368 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4583,19 +4586,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2395 +// line internal/php5/php5.y:2398 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2399 +// line internal/php5/php5.y:2402 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2407 +// line internal/php5/php5.y:2410 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4609,7 +4612,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2419 +// line internal/php5/php5.y:2422 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4617,13 +4620,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2425 +// line internal/php5/php5.y:2428 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2429 +// line internal/php5/php5.y:2432 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4645,14 +4648,15 @@ yydefault: Value: yyDollar[4].token.Value, }, OpenParenthesisTkn: yyDollar[5].token, - Params: yyDollar[6].list, + Params: yyDollar[6].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[6].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[7].token, Stmt: yyDollar[8].node, } } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2459 +// line internal/php5/php5.y:2463 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4666,7 +4670,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2474 +// line internal/php5/php5.y:2478 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4674,7 +4678,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2480 +// line internal/php5/php5.y:2484 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4683,7 +4687,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2490 +// line internal/php5/php5.y:2494 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4694,7 +4698,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2499 +// line internal/php5/php5.y:2503 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4707,31 +4711,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2513 +// line internal/php5/php5.y:2517 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2517 +// line internal/php5/php5.y:2521 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2524 +// line internal/php5/php5.y:2528 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2528 +// line internal/php5/php5.y:2532 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2535 +// line internal/php5/php5.y:2539 { yyVAL.node = yyDollar[1].node @@ -4741,7 +4745,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2543 +// line internal/php5/php5.y:2547 { yyVAL.node = yyDollar[1].node @@ -4751,7 +4755,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2554 +// line internal/php5/php5.y:2558 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4765,7 +4769,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2569 +// line internal/php5/php5.y:2573 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4773,7 +4777,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2575 +// line internal/php5/php5.y:2579 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4782,7 +4786,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2589 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4799,13 +4803,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2600 +// line internal/php5/php5.y:2604 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2607 +// line internal/php5/php5.y:2611 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4824,7 +4828,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2627 +// line internal/php5/php5.y:2631 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4844,7 +4848,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2645 +// line internal/php5/php5.y:2649 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4857,19 +4861,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2659 +// line internal/php5/php5.y:2663 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2663 +// line internal/php5/php5.y:2667 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2670 +// line internal/php5/php5.y:2674 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4880,7 +4884,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2679 +// line internal/php5/php5.y:2683 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4893,13 +4897,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2693 +// line internal/php5/php5.y:2697 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2697 +// line internal/php5/php5.y:2701 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4913,31 +4917,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2716 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2716 +// line internal/php5/php5.y:2720 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2723 +// line internal/php5/php5.y:2727 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2727 +// line internal/php5/php5.y:2731 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2734 +// line internal/php5/php5.y:2738 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4949,7 +4953,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2744 +// line internal/php5/php5.y:2748 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4961,7 +4965,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2754 +// line internal/php5/php5.y:2758 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4973,7 +4977,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2764 +// line internal/php5/php5.y:2768 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4985,7 +4989,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2774 +// line internal/php5/php5.y:2778 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4997,7 +5001,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2784 +// line internal/php5/php5.y:2788 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5009,7 +5013,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2797 +// line internal/php5/php5.y:2801 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5036,7 +5040,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2822 +// line internal/php5/php5.y:2826 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5065,7 +5069,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2849 +// line internal/php5/php5.y:2853 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5092,7 +5096,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2874 +// line internal/php5/php5.y:2878 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5120,7 +5124,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2903 +// line internal/php5/php5.y:2907 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5146,7 +5150,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2927 +// line internal/php5/php5.y:2931 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5175,7 +5179,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2957 +// line internal/php5/php5.y:2961 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5184,7 +5188,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2964 +// line internal/php5/php5.y:2968 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5192,19 +5196,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2974 +// line internal/php5/php5.y:2978 { yyVAL.list = nil } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2978 +// line internal/php5/php5.y:2982 { yyVAL.list = yyDollar[1].list } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2985 +// line internal/php5/php5.y:2989 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5213,25 +5217,25 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2992 +// line internal/php5/php5.y:2996 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2999 +// line internal/php5/php5.y:3003 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3003 +// line internal/php5/php5.y:3007 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3010 +// line internal/php5/php5.y:3014 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5247,7 +5251,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3024 +// line internal/php5/php5.y:3028 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5263,37 +5267,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3041 +// line internal/php5/php5.y:3045 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3045 +// line internal/php5/php5.y:3049 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3049 +// line internal/php5/php5.y:3053 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3056 +// line internal/php5/php5.y:3060 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3060 +// line internal/php5/php5.y:3064 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3067 +// line internal/php5/php5.y:3071 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5318,7 +5322,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3093 +// line internal/php5/php5.y:3097 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5340,7 +5344,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3113 +// line internal/php5/php5.y:3117 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5353,7 +5357,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3124 +// line internal/php5/php5.y:3128 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5367,7 +5371,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3136 +// line internal/php5/php5.y:3140 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5404,7 +5408,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3171 +// line internal/php5/php5.y:3175 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5416,7 +5420,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3181 +// line internal/php5/php5.y:3185 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5429,7 +5433,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3192 +// line internal/php5/php5.y:3196 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5442,7 +5446,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3203 +// line internal/php5/php5.y:3207 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5455,7 +5459,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3214 +// line internal/php5/php5.y:3218 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5468,7 +5472,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3225 +// line internal/php5/php5.y:3229 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5481,7 +5485,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3236 +// line internal/php5/php5.y:3240 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5494,7 +5498,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3247 +// line internal/php5/php5.y:3251 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5507,7 +5511,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3258 +// line internal/php5/php5.y:3262 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5520,7 +5524,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3269 +// line internal/php5/php5.y:3273 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5533,7 +5537,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3280 +// line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5546,7 +5550,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3291 +// line internal/php5/php5.y:3295 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5559,7 +5563,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3302 +// line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5572,7 +5576,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3313 +// line internal/php5/php5.y:3317 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5584,7 +5588,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3323 +// line internal/php5/php5.y:3327 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5596,7 +5600,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3333 +// line internal/php5/php5.y:3337 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5608,7 +5612,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3343 +// line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5620,7 +5624,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3353 +// line internal/php5/php5.y:3357 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5633,7 +5637,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3364 +// line internal/php5/php5.y:3368 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5646,7 +5650,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3375 +// line internal/php5/php5.y:3379 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5659,7 +5663,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3386 +// line internal/php5/php5.y:3390 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5672,7 +5676,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3397 +// line internal/php5/php5.y:3401 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5685,7 +5689,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3408 +// line internal/php5/php5.y:3412 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5698,7 +5702,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3419 +// line internal/php5/php5.y:3423 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5711,7 +5715,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3430 +// line internal/php5/php5.y:3434 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5724,7 +5728,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3441 +// line internal/php5/php5.y:3445 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5737,7 +5741,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3452 +// line internal/php5/php5.y:3456 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5750,7 +5754,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3463 +// line internal/php5/php5.y:3467 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5763,7 +5767,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3474 +// line internal/php5/php5.y:3478 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5776,7 +5780,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3485 +// line internal/php5/php5.y:3489 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5789,7 +5793,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3496 +// line internal/php5/php5.y:3500 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5802,7 +5806,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3507 +// line internal/php5/php5.y:3511 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5815,7 +5819,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3518 +// line internal/php5/php5.y:3522 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5828,7 +5832,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3529 +// line internal/php5/php5.y:3533 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5841,7 +5845,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3540 +// line internal/php5/php5.y:3544 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5853,7 +5857,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3550 +// line internal/php5/php5.y:3554 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5865,7 +5869,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3560 +// line internal/php5/php5.y:3564 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5877,7 +5881,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3570 +// line internal/php5/php5.y:3574 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5889,7 +5893,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3580 +// line internal/php5/php5.y:3584 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5902,7 +5906,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3591 +// line internal/php5/php5.y:3595 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5915,7 +5919,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3602 +// line internal/php5/php5.y:3606 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5928,7 +5932,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3613 +// line internal/php5/php5.y:3617 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5942,7 +5946,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3625 +// line internal/php5/php5.y:3629 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5955,7 +5959,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3636 +// line internal/php5/php5.y:3640 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5968,7 +5972,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3647 +// line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5981,7 +5985,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3658 +// line internal/php5/php5.y:3662 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5994,7 +5998,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3669 +// line internal/php5/php5.y:3673 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6007,19 +6011,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3680 +// line internal/php5/php5.y:3684 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3684 +// line internal/php5/php5.y:3688 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3688 +// line internal/php5/php5.y:3692 { yyVAL.node = yyDollar[2].node @@ -6053,7 +6057,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3720 +// line internal/php5/php5.y:3724 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6068,7 +6072,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3733 +// line internal/php5/php5.y:3737 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6082,13 +6086,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3745 +// line internal/php5/php5.y:3749 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3749 +// line internal/php5/php5.y:3753 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6100,7 +6104,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3759 +// line internal/php5/php5.y:3763 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6112,7 +6116,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3769 +// line internal/php5/php5.y:3773 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6124,7 +6128,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3779 +// line internal/php5/php5.y:3783 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6136,7 +6140,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3789 +// line internal/php5/php5.y:3793 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6148,7 +6152,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3799 +// line internal/php5/php5.y:3803 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6160,7 +6164,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3809 +// line internal/php5/php5.y:3813 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6172,7 +6176,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3819 +// line internal/php5/php5.y:3823 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6191,7 +6195,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3836 +// line internal/php5/php5.y:3840 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6203,25 +6207,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3846 +// line internal/php5/php5.y:3850 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3850 +// line internal/php5/php5.y:3854 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3854 +// line internal/php5/php5.y:3858 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3858 +// line internal/php5/php5.y:3862 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6234,7 +6238,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3869 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6246,7 +6250,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3879 +// line internal/php5/php5.y:3883 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6257,7 +6261,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3888 +// line internal/php5/php5.y:3892 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6266,7 +6270,8 @@ yydefault: FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, - Params: yyDollar[4].list, + Params: yyDollar[4].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[5].token, ClosureUse: yyDollar[6].ClosureUse, OpenCurlyBracketTkn: yyDollar[7].token, @@ -6276,7 +6281,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3905 +// line internal/php5/php5.y:3910 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6286,7 +6291,8 @@ yydefault: FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, OpenParenthesisTkn: yyDollar[4].token, - Params: yyDollar[5].list, + Params: yyDollar[5].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].token, ClosureUse: yyDollar[7].ClosureUse, OpenCurlyBracketTkn: yyDollar[8].token, @@ -6296,7 +6302,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3926 +// line internal/php5/php5.y:3932 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6308,7 +6314,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3936 +// line internal/php5/php5.y:3942 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6320,7 +6326,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3946 +// line internal/php5/php5.y:3952 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6334,7 +6340,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3958 +// line internal/php5/php5.y:3964 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6348,7 +6354,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3973 +// line internal/php5/php5.y:3979 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6362,7 +6368,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3985 +// line internal/php5/php5.y:3991 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6376,7 +6382,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3997 +// line internal/php5/php5.y:4003 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6396,7 +6402,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4015 +// line internal/php5/php5.y:4021 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6410,7 +6416,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4030 +// line internal/php5/php5.y:4036 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6425,7 +6431,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4043 +// line internal/php5/php5.y:4049 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6439,19 +6445,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4058 +// line internal/php5/php5.y:4064 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4065 +// line internal/php5/php5.y:4071 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4069 +// line internal/php5/php5.y:4075 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6466,7 +6472,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4085 +// line internal/php5/php5.y:4091 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6488,7 +6494,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4105 +// line internal/php5/php5.y:4111 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6516,7 +6522,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4131 +// line internal/php5/php5.y:4137 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6537,7 +6543,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4150 +// line internal/php5/php5.y:4156 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6564,7 +6570,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4178 +// line internal/php5/php5.y:4184 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6584,7 +6590,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4196 +// line internal/php5/php5.y:4202 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6606,7 +6612,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4216 +// line internal/php5/php5.y:4222 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6627,7 +6633,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4235 +// line internal/php5/php5.y:4241 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6644,7 +6650,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4250 +// line internal/php5/php5.y:4256 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6661,7 +6667,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4265 +// line internal/php5/php5.y:4271 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6678,7 +6684,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4280 +// line internal/php5/php5.y:4286 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6695,7 +6701,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4295 +// line internal/php5/php5.y:4301 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6710,7 +6716,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4311 +// line internal/php5/php5.y:4317 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6722,7 +6728,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4321 +// line internal/php5/php5.y:4327 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6733,7 +6739,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4330 +// line internal/php5/php5.y:4336 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6746,7 +6752,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4347 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6758,7 +6764,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4354 +// line internal/php5/php5.y:4360 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6769,7 +6775,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4369 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6782,7 +6788,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4374 +// line internal/php5/php5.y:4380 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6794,19 +6800,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4387 +// line internal/php5/php5.y:4393 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4391 +// line internal/php5/php5.y:4397 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4398 +// line internal/php5/php5.y:4404 { yyVAL.node = yyDollar[1].node @@ -6847,25 +6853,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4437 +// line internal/php5/php5.y:4443 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4445 +// line internal/php5/php5.y:4451 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4449 +// line internal/php5/php5.y:4455 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4457 +// line internal/php5/php5.y:4463 { yyVAL.list = yyDollar[2].list @@ -6874,13 +6880,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4467 +// line internal/php5/php5.y:4473 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4471 +// line internal/php5/php5.y:4477 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6896,19 +6902,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4485 +// line internal/php5/php5.y:4491 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4492 +// line internal/php5/php5.y:4498 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4496 +// line internal/php5/php5.y:4502 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6922,25 +6928,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4508 +// line internal/php5/php5.y:4514 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4515 +// line internal/php5/php5.y:4521 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4519 +// line internal/php5/php5.y:4525 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4526 +// line internal/php5/php5.y:4532 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6952,7 +6958,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4536 +// line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6964,7 +6970,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4546 +// line internal/php5/php5.y:4552 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6976,7 +6982,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4556 +// line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6988,7 +6994,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4566 +// line internal/php5/php5.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7000,7 +7006,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4576 +// line internal/php5/php5.y:4582 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7012,7 +7018,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4586 +// line internal/php5/php5.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7024,7 +7030,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4596 +// line internal/php5/php5.y:4602 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7036,7 +7042,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4606 +// line internal/php5/php5.y:4612 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7048,7 +7054,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4616 +// line internal/php5/php5.y:4622 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7060,7 +7066,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4626 +// line internal/php5/php5.y:4632 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7081,7 +7087,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4645 +// line internal/php5/php5.y:4651 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7093,7 +7099,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4658 +// line internal/php5/php5.y:4664 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7112,25 +7118,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4678 +// line internal/php5/php5.y:4684 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4685 +// line internal/php5/php5.y:4691 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4689 +// line internal/php5/php5.y:4695 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4693 +// line internal/php5/php5.y:4699 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7146,7 +7152,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4707 +// line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7164,7 +7170,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4723 +// line internal/php5/php5.y:4729 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7181,7 +7187,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4738 +// line internal/php5/php5.y:4744 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7196,7 +7202,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4751 +// line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7210,13 +7216,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4763 +// line internal/php5/php5.y:4769 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4767 +// line internal/php5/php5.y:4773 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7228,13 +7234,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4777 +// line internal/php5/php5.y:4783 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4784 +// line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7248,7 +7254,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4796 +// line internal/php5/php5.y:4802 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7261,7 +7267,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4807 +// line internal/php5/php5.y:4813 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7274,7 +7280,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4818 +// line internal/php5/php5.y:4824 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7287,7 +7293,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4829 +// line internal/php5/php5.y:4835 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7300,7 +7306,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4840 +// line internal/php5/php5.y:4846 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7313,7 +7319,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4851 +// line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7326,7 +7332,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4862 +// line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7338,7 +7344,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4872 +// line internal/php5/php5.y:4878 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7350,7 +7356,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4882 +// line internal/php5/php5.y:4888 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7363,7 +7369,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4893 +// line internal/php5/php5.y:4899 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7376,7 +7382,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4904 +// line internal/php5/php5.y:4910 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7389,7 +7395,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4915 +// line internal/php5/php5.y:4921 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7402,7 +7408,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4926 +// line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7415,7 +7421,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4937 +// line internal/php5/php5.y:4943 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7428,7 +7434,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4948 +// line internal/php5/php5.y:4954 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7441,7 +7447,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4959 +// line internal/php5/php5.y:4965 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7454,7 +7460,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4970 +// line internal/php5/php5.y:4976 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7467,7 +7473,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4981 +// line internal/php5/php5.y:4987 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7480,7 +7486,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4992 +// line internal/php5/php5.y:4998 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7493,7 +7499,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5003 +// line internal/php5/php5.y:5009 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7506,7 +7512,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5014 +// line internal/php5/php5.y:5020 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7519,7 +7525,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5025 +// line internal/php5/php5.y:5031 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7532,7 +7538,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5036 +// line internal/php5/php5.y:5042 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7546,7 +7552,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5048 +// line internal/php5/php5.y:5054 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7559,7 +7565,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5059 +// line internal/php5/php5.y:5065 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7572,7 +7578,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5070 +// line internal/php5/php5.y:5076 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7585,7 +7591,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5081 +// line internal/php5/php5.y:5087 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7598,7 +7604,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5092 +// line internal/php5/php5.y:5098 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7612,7 +7618,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5104 +// line internal/php5/php5.y:5110 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7627,7 +7633,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5117 +// line internal/php5/php5.y:5123 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7639,7 +7645,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5127 +// line internal/php5/php5.y:5133 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7651,7 +7657,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5137 +// line internal/php5/php5.y:5143 { yyVAL.node = yyDollar[2].node @@ -7661,13 +7667,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5148 +// line internal/php5/php5.y:5154 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5152 +// line internal/php5/php5.y:5158 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7683,7 +7689,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5166 +// line internal/php5/php5.y:5172 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7701,7 +7707,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5182 +// line internal/php5/php5.y:5188 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7718,7 +7724,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5200 +// line internal/php5/php5.y:5206 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7735,25 +7741,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5215 +// line internal/php5/php5.y:5221 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5219 +// line internal/php5/php5.y:5225 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5223 +// line internal/php5/php5.y:5229 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5227 +// line internal/php5/php5.y:5233 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7766,7 +7772,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5238 +// line internal/php5/php5.y:5244 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7779,7 +7785,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5249 +// line internal/php5/php5.y:5255 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7791,13 +7797,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5262 +// line internal/php5/php5.y:5268 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5266 +// line internal/php5/php5.y:5272 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7808,19 +7814,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5278 +// line internal/php5/php5.y:5284 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5282 +// line internal/php5/php5.y:5288 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5289 +// line internal/php5/php5.y:5295 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7838,7 +7844,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5305 +// line internal/php5/php5.y:5311 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7854,7 +7860,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5319 +// line internal/php5/php5.y:5325 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7871,7 +7877,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5334 +// line internal/php5/php5.y:5340 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7886,19 +7892,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5350 +// line internal/php5/php5.y:5356 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5354 +// line internal/php5/php5.y:5360 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5361 +// line internal/php5/php5.y:5367 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7915,7 +7921,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5376 +// line internal/php5/php5.y:5382 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7932,25 +7938,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5395 +// line internal/php5/php5.y:5401 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5403 +// line internal/php5/php5.y:5409 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5410 +// line internal/php5/php5.y:5416 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5417 +// line internal/php5/php5.y:5423 { yyVAL.node = yyDollar[1].node @@ -8029,25 +8035,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5494 +// line internal/php5/php5.y:5500 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5501 +// line internal/php5/php5.y:5507 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5505 +// line internal/php5/php5.y:5511 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5513 +// line internal/php5/php5.y:5519 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8079,7 +8085,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5545 +// line internal/php5/php5.y:5551 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8095,7 +8101,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5559 +// line internal/php5/php5.y:5565 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8111,7 +8117,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5576 +// line internal/php5/php5.y:5582 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8125,31 +8131,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5591 +// line internal/php5/php5.y:5597 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5595 +// line internal/php5/php5.y:5601 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5599 +// line internal/php5/php5.y:5605 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5606 +// line internal/php5/php5.y:5612 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5610 +// line internal/php5/php5.y:5616 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8161,7 +8167,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5623 +// line internal/php5/php5.y:5629 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8174,7 +8180,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5634 +// line internal/php5/php5.y:5640 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8187,13 +8193,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5648 +// line internal/php5/php5.y:5654 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5655 +// line internal/php5/php5.y:5661 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8207,7 +8213,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5667 +// line internal/php5/php5.y:5673 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8221,31 +8227,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5682 +// line internal/php5/php5.y:5688 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5686 +// line internal/php5/php5.y:5692 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5690 +// line internal/php5/php5.y:5696 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5698 +// line internal/php5/php5.y:5704 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5702 +// line internal/php5/php5.y:5708 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8257,13 +8263,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5712 +// line internal/php5/php5.y:5718 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5719 +// line internal/php5/php5.y:5725 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8277,7 +8283,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5731 +// line internal/php5/php5.y:5737 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8291,13 +8297,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5743 +// line internal/php5/php5.y:5749 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5751 +// line internal/php5/php5.y:5757 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8314,7 +8320,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5766 +// line internal/php5/php5.y:5772 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8333,25 +8339,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5786 +// line internal/php5/php5.y:5792 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5790 +// line internal/php5/php5.y:5796 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5798 +// line internal/php5/php5.y:5804 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5802 +// line internal/php5/php5.y:5808 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8364,7 +8370,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5816 +// line internal/php5/php5.y:5822 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8380,7 +8386,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5830 +// line internal/php5/php5.y:5836 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8396,7 +8402,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5844 +// line internal/php5/php5.y:5850 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8409,7 +8415,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5858 +// line internal/php5/php5.y:5864 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8421,7 +8427,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5868 +// line internal/php5/php5.y:5874 { yyVAL.node = yyDollar[2].node @@ -8434,7 +8440,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5882 +// line internal/php5/php5.y:5888 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8447,7 +8453,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5893 +// line internal/php5/php5.y:5899 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8458,7 +8464,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5905 +// line internal/php5/php5.y:5911 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8467,7 +8473,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5912 +// line internal/php5/php5.y:5918 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8475,7 +8481,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5922 +// line internal/php5/php5.y:5928 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8486,7 +8492,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5931 +// line internal/php5/php5.y:5937 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8513,19 +8519,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5956 +// line internal/php5/php5.y:5962 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5964 +// line internal/php5/php5.y:5970 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5968 +// line internal/php5/php5.y:5974 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8536,7 +8542,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5980 +// line internal/php5/php5.y:5986 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8554,7 +8560,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5996 +// line internal/php5/php5.y:6002 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8570,7 +8576,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6010 +// line internal/php5/php5.y:6016 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8587,7 +8593,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6025 +// line internal/php5/php5.y:6031 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8602,7 +8608,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6038 +// line internal/php5/php5.y:6044 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8626,7 +8632,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6060 +// line internal/php5/php5.y:6066 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8648,7 +8654,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6080 +// line internal/php5/php5.y:6086 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8671,7 +8677,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6101 +// line internal/php5/php5.y:6107 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8692,13 +8698,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6123 +// line internal/php5/php5.y:6129 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6127 +// line internal/php5/php5.y:6133 { yyVAL.list = append( yyDollar[1].list, @@ -8713,13 +8719,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6140 +// line internal/php5/php5.y:6146 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6144 +// line internal/php5/php5.y:6150 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8734,7 +8740,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6160 +// line internal/php5/php5.y:6166 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8751,7 +8757,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6175 +// line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8776,7 +8782,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6198 +// line internal/php5/php5.y:6204 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8806,7 +8812,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6226 +// line internal/php5/php5.y:6232 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8824,7 +8830,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6242 +// line internal/php5/php5.y:6248 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8848,7 +8854,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6264 +// line internal/php5/php5.y:6270 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8880,7 +8886,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6294 +// line internal/php5/php5.y:6300 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8893,7 +8899,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6308 +// line internal/php5/php5.y:6314 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8905,7 +8911,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6318 +// line internal/php5/php5.y:6324 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8934,7 +8940,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6345 +// line internal/php5/php5.y:6351 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8951,7 +8957,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6363 +// line internal/php5/php5.y:6369 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8966,7 +8972,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6376 +// line internal/php5/php5.y:6382 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8980,7 +8986,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6388 +// line internal/php5/php5.y:6394 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8994,7 +9000,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6400 +// line internal/php5/php5.y:6406 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9006,7 +9012,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6410 +// line internal/php5/php5.y:6416 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9018,7 +9024,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6426 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9032,7 +9038,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6432 +// line internal/php5/php5.y:6438 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9044,7 +9050,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6442 +// line internal/php5/php5.y:6448 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9056,7 +9062,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6455 +// line internal/php5/php5.y:6461 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9064,7 +9070,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6461 +// line internal/php5/php5.y:6467 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9073,19 +9079,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6471 +// line internal/php5/php5.y:6477 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6475 +// line internal/php5/php5.y:6481 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6482 +// line internal/php5/php5.y:6488 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9104,7 +9110,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6499 +// line internal/php5/php5.y:6505 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9123,7 +9129,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6519 +// line internal/php5/php5.y:6525 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9142,7 +9148,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6539 +// line internal/php5/php5.y:6545 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 5349205..e58d0cf 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -229,7 +229,7 @@ import ( %type variable_name variable_without_objects dynamic_class_name_reference new_expr class_name_reference static_member %type function_call fully_qualified_class_name combined_scalar combined_scalar_offset general_constant parenthesis_expr %type exit_expr yield_expr function_declaration_statement class_declaration_statement constant_declaration -%type else_single new_else_single unset_variable declare_statement +%type else_single new_else_single unset_variable declare_statement parameter_list non_empty_parameter_list %type finally_statement additional_catch unticked_function_declaration_statement unticked_class_declaration_statement %type optional_class_type parameter class_entry_type class_statement class_constant_declaration %type trait_use_statement function_call_parameter trait_adaptation_statement trait_precedence trait_alias @@ -250,7 +250,7 @@ import ( %type inner_statement_list encaps_list %type elseif_list new_elseif_list non_empty_for_expr %type for_expr case_list catch_statement additional_catches -%type non_empty_additional_catches parameter_list non_empty_parameter_list class_statement_list +%type non_empty_additional_catches class_statement_list %type class_statement_list variable_modifiers method_modifiers %type trait_adaptation_list non_empty_trait_adaptation_list %type non_empty_member_modifiers backticks_expr @@ -1383,7 +1383,8 @@ unticked_function_declaration_statement: Value: $3.Value, }, OpenParenthesisTkn: $4, - Params: $5, + Params: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $6, OpenCurlyBracketTkn: $7, Stmts: $8, @@ -2003,25 +2004,27 @@ new_else_single: parameter_list: non_empty_parameter_list { - $$ = $1; + $$ = $1 } | /* empty */ { - $$ = nil + $$ = &ast.ParserSeparatedList{} } ; non_empty_parameter_list: parameter { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | non_empty_parameter_list ',' parameter { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; @@ -2447,7 +2450,8 @@ class_statement: Value: $4.Value, }, OpenParenthesisTkn: $5, - Params: $6, + Params: $6.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $6.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $7, Stmt: $8, } @@ -3893,7 +3897,8 @@ expr_without_variable: FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, - Params: $4, + Params: $4.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $5, ClosureUse: $6, OpenCurlyBracketTkn: $7, @@ -3911,7 +3916,8 @@ expr_without_variable: FunctionTkn: $2, AmpersandTkn: $3, OpenParenthesisTkn: $4, - Params: $5, + Params: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $6, ClosureUse: $7, OpenCurlyBracketTkn: $8, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index ee03b47..4eb3784 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4986 +// line internal/php7/php7.y:4992 // line yacctab:1 var yyExca = [...]int{ @@ -624,19 +624,19 @@ var yyAct = [...]int{ 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, - 780, 781, 856, 111, 744, 632, 879, 848, 328, 841, - 676, 533, 260, 261, 855, 255, 796, 385, 371, 656, - 852, 859, 136, 934, 662, 114, 845, 227, 43, 877, - 890, 891, 886, 42, 528, 865, 892, 893, 16, 885, - 838, 237, 539, 853, 15, 897, 898, 730, 830, 872, - 151, 606, 786, 896, 903, 271, 49, 905, 48, 217, - 218, 902, 110, 50, 886, 908, 84, 82, 904, 72, - 252, 885, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 225, 906, 62, 269, 918, - 235, 61, 238, 884, 883, 882, 881, 928, 926, 925, - 924, 108, 922, 586, 742, 929, 789, 147, 144, 45, - 930, 734, 919, 640, 920, 933, 203, 4, 937, 89, - 90, 70, 47, 94, 95, 36, 673, 107, 315, 27, + 780, 781, 856, 111, 744, 879, 328, 848, 841, 676, + 255, 533, 260, 261, 855, 796, 385, 371, 656, 852, + 934, 859, 136, 662, 845, 114, 227, 43, 42, 877, + 890, 891, 886, 528, 865, 16, 892, 893, 838, 885, + 539, 237, 15, 853, 830, 897, 898, 730, 151, 872, + 606, 271, 786, 896, 903, 49, 48, 905, 110, 217, + 218, 902, 50, 84, 886, 908, 82, 72, 904, 252, + 225, 885, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 62, 906, 269, 61, 918, + 235, 884, 238, 883, 882, 881, 742, 928, 926, 925, + 924, 108, 922, 586, 147, 929, 789, 144, 45, 734, + 930, 673, 919, 640, 920, 933, 203, 4, 937, 89, + 90, 70, 47, 94, 95, 36, 632, 107, 315, 27, 120, 302, 3, 112, 26, 18, 17, 441, 19, 768, 30, 707, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, 13, 23, 33, 0, 0, 34, @@ -1421,17 +1421,17 @@ var yyPact = [...]int{ var yyPgo = [...]int{ 0, 961, 959, 15, 7, 957, 4, 29, 14, 952, 11, 44, 79, 78, 52, 48, 951, 26, 950, 74, - 21, 83, 948, 0, 84, 946, 931, 42, 196, 32, - 19, 38, 929, 928, 73, 927, 62, 924, 5, 916, - 915, 914, 913, 9, 50, 911, 908, 100, 88, 242, - 907, 905, 34, 890, 889, 8, 887, 80, 41, 886, - 56, 49, 883, 882, 878, 876, 875, 86, 871, 870, - 868, 10, 864, 87, 862, 860, 858, 855, 854, 853, - 12, 848, 847, 46, 39, 40, 2, 16, 667, 43, - 85, 846, 844, 843, 13, 840, 839, 555, 838, 45, - 71, 837, 836, 6, 721, 20, 540, 835, 18, 830, - 829, 36, 828, 25, 33, 37, 826, 530, 99, 1, - 3, 825, 17, 824, 817, 810, 809, 804, 28, + 21, 83, 948, 0, 84, 3, 946, 931, 929, 42, + 196, 32, 19, 38, 928, 927, 73, 924, 62, 916, + 5, 915, 914, 913, 911, 9, 50, 908, 907, 100, + 88, 242, 905, 890, 34, 889, 887, 8, 886, 80, + 41, 883, 56, 49, 882, 878, 876, 875, 871, 86, + 870, 868, 864, 10, 862, 87, 860, 858, 855, 854, + 853, 848, 12, 847, 846, 46, 39, 40, 2, 16, + 667, 43, 85, 844, 843, 840, 13, 839, 838, 555, + 837, 45, 71, 836, 835, 6, 721, 20, 540, 830, + 18, 829, 828, 36, 826, 25, 33, 37, 825, 530, + 99, 1, 17, 824, 817, 810, 809, 804, 28, } var yyR1 = [...]int{ @@ -1442,49 +1442,49 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 6, 6, 118, - 118, 108, 108, 10, 10, 10, 9, 9, 9, 9, + 5, 5, 5, 5, 5, 5, 5, 6, 6, 120, + 120, 110, 110, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 104, 104, 16, 16, 18, 18, 7, 7, 114, - 114, 113, 113, 117, 117, 17, 17, 20, 20, 19, - 19, 73, 73, 119, 119, 22, 22, 22, 22, 22, + 9, 106, 106, 16, 16, 18, 18, 7, 7, 116, + 116, 115, 115, 119, 119, 17, 17, 20, 20, 19, + 19, 75, 75, 121, 121, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 109, 109, 70, 70, - 26, 26, 98, 98, 27, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 88, 88, 14, 15, 99, 99, - 101, 101, 100, 100, 105, 105, 105, 105, 95, 95, - 94, 94, 25, 25, 92, 92, 92, 92, 115, 115, - 115, 8, 8, 96, 96, 79, 79, 72, 72, 81, - 81, 76, 76, 120, 120, 121, 121, 29, 29, 30, - 30, 87, 87, 85, 85, 85, 86, 86, 89, 89, - 74, 74, 31, 31, 33, 33, 34, 35, 35, 36, - 36, 122, 122, 37, 37, 37, 37, 71, 71, 91, - 91, 91, 116, 116, 38, 38, 39, 40, 40, 40, - 40, 42, 42, 41, 93, 93, 124, 124, 123, 123, - 125, 125, 103, 103, 103, 103, 103, 103, 75, 75, - 43, 43, 110, 110, 80, 21, 69, 69, 44, 111, - 111, 112, 112, 46, 45, 45, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 97, 97, 128, 3, 3, 102, 102, - 77, 77, 55, 55, 56, 56, 56, 56, 47, 47, - 48, 48, 53, 53, 107, 107, 107, 90, 90, 60, - 60, 60, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, 61, 61, - 61, 23, 23, 24, 24, 59, 62, 62, 62, 63, - 63, 63, 64, 64, 64, 64, 64, 64, 28, 28, - 28, 49, 49, 49, 65, 65, 66, 66, 66, 66, - 66, 66, 57, 57, 57, 58, 58, 58, 52, 83, - 83, 51, 51, 82, 82, 82, 82, 82, 82, 82, - 106, 106, 106, 106, 67, 67, 67, 67, 67, 67, - 67, 68, 68, 68, 68, 50, 50, 50, 50, 50, - 50, 50, 78, 78, 84, + 11, 11, 11, 11, 11, 11, 111, 111, 72, 72, + 28, 28, 100, 100, 29, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 90, 90, 14, 15, 101, 101, + 103, 103, 102, 102, 107, 107, 107, 107, 97, 97, + 96, 96, 27, 27, 94, 94, 94, 94, 117, 117, + 117, 8, 8, 98, 98, 81, 81, 74, 74, 83, + 83, 78, 78, 25, 25, 26, 26, 31, 31, 32, + 32, 89, 89, 87, 87, 87, 88, 88, 91, 91, + 76, 76, 33, 33, 35, 35, 36, 37, 37, 38, + 38, 122, 122, 39, 39, 39, 39, 73, 73, 93, + 93, 93, 118, 118, 40, 40, 41, 42, 42, 42, + 42, 44, 44, 43, 95, 95, 124, 124, 123, 123, + 125, 125, 105, 105, 105, 105, 105, 105, 77, 77, + 45, 45, 112, 112, 82, 21, 71, 71, 46, 113, + 113, 114, 114, 48, 47, 47, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 99, 99, 128, 3, 3, 104, 104, + 79, 79, 57, 57, 58, 58, 58, 58, 49, 49, + 50, 50, 55, 55, 109, 109, 109, 92, 92, 62, + 62, 62, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 63, 63, + 63, 23, 23, 24, 24, 61, 64, 64, 64, 65, + 65, 65, 66, 66, 66, 66, 66, 66, 30, 30, + 30, 51, 51, 51, 67, 67, 68, 68, 68, 68, + 68, 68, 59, 59, 59, 60, 60, 60, 54, 85, + 85, 53, 53, 84, 84, 84, 84, 84, 84, 84, + 108, 108, 108, 108, 69, 69, 69, 69, 69, 69, + 69, 70, 70, 70, 70, 52, 52, 52, 52, 52, + 52, 52, 80, 80, 86, } var yyR2 = [...]int{ @@ -1541,50 +1541,50 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -127, -118, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -72, -76, 21, 20, 23, + -1000, -127, -120, -9, 2, -11, -12, -13, -14, -15, + 52, 80, 45, 39, 144, -74, -78, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -79, -81, -28, -32, -88, 7, -64, -65, - -62, 60, 150, 93, 105, 106, 155, 154, 156, 157, - 148, -45, -50, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -54, 143, 97, 98, 107, -97, 100, 101, - -49, -61, -56, -47, -59, -60, 92, 50, 51, 4, + 54, 55, -81, -83, -30, -34, -90, 7, -66, -67, + -64, 60, 150, 93, 105, 106, 155, 154, 156, 157, + 148, -47, -52, 108, 109, 110, 111, 112, 113, 114, + 6, 158, -56, 143, 97, 98, 107, -99, 100, 101, + -51, -63, -58, -49, -61, -62, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -63, 61, 18, -108, 83, 148, 83, -108, 144, 10, - -18, -104, -117, -108, 83, 37, 39, -19, -20, -73, - -21, 10, -119, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -33, -34, -49, -35, -97, -36, - 12, -69, -44, -23, 146, 131, 132, 88, 90, 89, + -65, 61, 18, -110, 83, 148, 83, -110, 144, 10, + -18, -106, -119, -110, 83, 37, 39, -19, -20, -75, + -21, 10, -121, 148, -11, 37, 80, 148, 148, -24, + -23, 99, -24, -24, -35, -36, -51, -37, -99, -38, + 12, -71, -46, -23, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -88, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -90, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -52, -51, -83, -82, -23, 153, - 84, 60, -23, -28, -61, 148, -60, 99, 150, -28, + 150, 144, 58, 148, -54, -53, -85, -84, -23, 153, + 84, 60, -23, -30, -63, 148, -62, 99, 150, -30, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -53, 148, -23, -107, 17, -106, -67, 12, - 77, 78, -23, -23, -23, 150, 79, 79, -48, -46, - -47, -66, 53, -10, -49, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -106, -106, 17, -3, 144, -49, - -89, 148, -89, 148, 83, -108, 149, -108, 146, 144, - -118, 146, -16, -117, -108, 83, 146, 160, 83, 29, - -108, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -111, -112, -23, + -23, -23, -55, 148, -23, -109, 17, -108, -69, 12, + 77, 78, -23, -23, -23, 150, 79, 79, -50, -48, + -49, -68, 53, -10, -51, 148, 148, -23, -23, 148, + -23, -23, 17, 76, -108, -108, 17, -3, 144, -51, + -91, 148, -91, 148, 83, -110, 149, -110, 146, 144, + -120, 146, -16, -119, -110, 83, 146, 160, 83, 29, + -110, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -23, 21, -3, -113, -114, -23, -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -48, -23, 147, - -23, -98, -27, -28, -23, -73, -119, 146, 146, 10, - -128, 10, -99, 56, -128, -101, 56, 148, -11, 148, + -23, -23, -23, -23, -23, -23, -23, -50, -23, 147, + -23, -100, -29, -30, -23, -75, -121, 146, 146, 10, + -128, 10, -101, 56, -128, -103, 56, 148, -11, 148, 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, - -58, 10, 144, -49, -52, 151, 160, 59, -28, -23, - 148, -23, -52, 149, -24, 143, -67, -67, 17, 150, - 58, -23, 11, -28, 59, -24, -57, -6, -49, 144, + -60, 10, 144, -51, -54, 151, 160, 59, -30, -23, + 148, -23, -54, 149, -24, 143, -69, -69, 17, 150, + 58, -23, 11, -30, 59, -24, -59, -6, -51, 144, 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, 6, 7, 94, 95, 96, 19, 20, 21, 22, 23, @@ -1592,49 +1592,49 @@ var yyChk = [...]int{ 45, 46, 47, 48, 49, 50, 51, 35, 36, 37, 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, - 66, 65, 67, 68, 82, 81, 38, -57, -6, -49, - -90, -89, 79, 150, 144, 58, 79, -90, -78, -84, - -23, -23, -23, 76, 76, 142, 148, -23, 149, -74, - -31, -23, 84, -52, 10, 146, -118, 145, 146, 146, - 83, -108, -19, 83, -108, 144, 10, 83, -21, -23, - 148, 149, 148, 146, 160, 149, -34, -36, -23, -44, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -99, - -100, 57, -10, 144, -128, -71, -10, -23, -23, -119, - -23, 149, 151, 145, -89, -23, 149, 162, -83, -23, - 153, 60, -52, 149, 151, 149, -68, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -89, -23, - -89, -49, -24, -23, -58, -49, -99, -7, 160, 149, - 149, -120, -121, -29, -30, -87, -85, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -114, - -17, -20, -104, 144, -128, 149, -96, -11, 147, -23, - -111, -23, -92, 144, 147, -23, 149, -27, -105, -28, - 153, 60, 150, -25, -11, 147, -109, 148, -120, -100, - -128, -71, -122, 144, 160, 149, 149, 96, -11, 147, - 145, 162, -23, -28, 148, 149, 151, 13, -23, 145, - 151, 145, -100, 149, -84, 149, 160, -1, 153, -85, - 149, -31, -113, -20, 144, -7, 160, -20, -114, 146, - -119, 149, 146, -115, 146, -115, 146, 146, 149, 59, - -28, 148, -52, -119, -26, 42, 43, -120, 149, -128, - 144, 145, -37, -124, -123, 45, -125, 48, -103, 104, + 66, 65, 67, 68, 82, 81, 38, -59, -6, -51, + -92, -91, 79, 150, 144, 58, 79, -92, -80, -86, + -23, -23, -23, 76, 76, 142, 148, -23, 149, -76, + -33, -23, 84, -54, 10, 146, -120, 145, 146, 146, + 83, -110, -19, 83, -110, 144, 10, 83, -21, -23, + 148, 149, 148, 146, 160, 149, -36, -38, -23, -46, + 147, -23, -7, 160, 29, 149, 145, -128, 148, -101, + -102, 57, -10, 144, -128, -73, -10, -23, -23, -121, + -23, 149, 151, 145, -91, -23, 149, 162, -85, -23, + 153, 60, -54, 149, 151, 149, -70, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -23, 151, -91, -23, + -91, -51, -24, -23, -60, -51, -101, -7, 160, 149, + 149, -25, -26, -31, -32, -89, -87, 152, 61, 62, + -10, 145, -7, 160, -23, 149, 145, 144, 83, -116, + -17, -20, -106, 144, -128, 149, -98, -11, 147, -23, + -113, -23, -94, 144, 147, -23, 149, -29, -107, -30, + 153, 60, 150, -27, -11, 147, -111, 148, -25, -102, + -128, -73, -122, 144, 160, 149, 149, 96, -11, 147, + 145, 162, -23, -30, 148, 149, 151, 13, -23, 145, + 151, 145, -102, 149, -86, 149, 160, -1, 153, -87, + 149, -33, -115, -20, 144, -7, 160, -20, -116, 146, + -121, 149, 146, -117, 146, -117, 146, 146, 149, 59, + -30, 148, -54, -121, -28, 42, 43, -25, 149, -128, + 144, 145, -39, -124, -123, 45, -125, 48, -105, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -119, -23, -52, 151, -128, -86, 147, -29, -2, 84, - -7, 160, -113, 145, -17, -7, 22, 146, -111, 145, - 32, 33, -115, 31, -115, -94, -11, 147, -105, -28, - -52, 151, 28, 148, 144, 149, -102, 45, 144, -122, - -30, 39, 37, -71, -103, 145, -119, 149, 145, 144, - -128, -87, 12, 145, -20, -7, 145, 146, 149, -23, - -8, 147, 146, 145, 146, 31, -119, 149, 149, 146, - -70, -10, -119, -86, -86, 148, -122, 145, -75, -43, - 12, -110, -80, -6, -3, -91, 146, 144, -122, 59, - 162, 145, -95, -11, 147, -8, -119, 146, 26, -94, - 12, 161, 145, 144, 144, -77, -55, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -116, - -38, -39, -40, -41, -42, -10, -6, 80, 10, 145, - -23, -23, -119, -119, 146, 149, -10, -119, -119, 149, - 160, 12, -43, -23, -80, -23, -128, 145, -38, 146, - 146, 46, 29, 79, 24, 144, 145, 145, -55, -128, - -128, 148, -71, 10, -4, -103, -6, 146, -119, -120, - -6, 145, 149, -86, -93, 146, 144, -119, 145, + -121, -23, -54, 151, -128, -88, 147, -31, -2, 84, + -7, 160, -115, 145, -17, -7, 22, 146, -113, 145, + 32, 33, -117, 31, -117, -96, -11, 147, -107, -30, + -54, 151, 28, 148, 144, 149, -104, 45, 144, -122, + -32, 39, 37, -73, -105, 145, -121, 149, 145, 144, + -128, -89, 12, 145, -20, -7, 145, 146, 149, -23, + -8, 147, 146, 145, 146, 31, -121, 149, 149, 146, + -72, -10, -121, -88, -88, 148, -122, 145, -77, -45, + 12, -112, -82, -6, -3, -93, 146, 144, -122, 59, + 162, 145, -97, -11, 147, -8, -121, 146, 26, -96, + 12, 161, 145, 144, 144, -79, -57, 12, 153, 145, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -118, + -40, -41, -42, -43, -44, -10, -6, 80, 10, 145, + -23, -23, -121, -121, 146, 149, -10, -121, -121, 149, + 160, 12, -45, -23, -82, -23, -128, 145, -40, 146, + 146, 46, 29, 79, 24, 144, 145, 145, -57, -128, + -128, 148, -73, 10, -4, -105, -6, 146, -121, -25, + -6, 145, 149, -88, -95, 146, 144, -121, 145, } var yyDef = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:290 + // line internal/php7/php7.y:290 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2122,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:303 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:304 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:305 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:306 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:308 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:313 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:316 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:321 + // line internal/php7/php7.y:321 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:325 + // line internal/php7/php7.y:325 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:332 + // line internal/php7/php7.y:332 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:343 + // line internal/php7/php7.y:343 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:350 + // line internal/php7/php7.y:350 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:362 + // line internal/php7/php7.y:362 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:376 + // line internal/php7/php7.y:376 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:385 + // line internal/php7/php7.y:385 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:396 + // line internal/php7/php7.y:396 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:409 + // line internal/php7/php7.y:409 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:414 + // line internal/php7/php7.y:414 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:418 + // line internal/php7/php7.y:418 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:422 + // line internal/php7/php7.y:422 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:426 + // line internal/php7/php7.y:426 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:430 + // line internal/php7/php7.y:430 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:434 + // line internal/php7/php7.y:434 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:446 + // line internal/php7/php7.y:446 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:462 + // line internal/php7/php7.y:462 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:480 + // line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:492 + // line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:502 + // line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:513 + // line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:524 + // line internal/php7/php7.y:524 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:536 + // line internal/php7/php7.y:536 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:551 + // line internal/php7/php7.y:551 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:561 + // line internal/php7/php7.y:561 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:574 + // line internal/php7/php7.y:574 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:596 + // line internal/php7/php7.y:596 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:620 + // line internal/php7/php7.y:620 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:640 + // line internal/php7/php7.y:640 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:664 + // line internal/php7/php7.y:664 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:668 + // line internal/php7/php7.y:668 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:675 + // line internal/php7/php7.y:675 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:681 + // line internal/php7/php7.y:681 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:688 + // line internal/php7/php7.y:688 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:694 + // line internal/php7/php7.y:694 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:701 + // line internal/php7/php7.y:701 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:707 + // line internal/php7/php7.y:707 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:714 + // line internal/php7/php7.y:714 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:718 + // line internal/php7/php7.y:718 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:729 + // line internal/php7/php7.y:729 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:743 + // line internal/php7/php7.y:743 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:768 + // line internal/php7/php7.y:768 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:772 + // line internal/php7/php7.y:772 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:783 + // line internal/php7/php7.y:783 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:790 + // line internal/php7/php7.y:790 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:799 + // line internal/php7/php7.y:799 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:810 + // line internal/php7/php7.y:810 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:817 + // line internal/php7/php7.y:817 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:822 + // line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:826 + // line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:830 + // line internal/php7/php7.y:830 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:834 + // line internal/php7/php7.y:834 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:838 + // line internal/php7/php7.y:838 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:842 + // line internal/php7/php7.y:842 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:856 + // line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:867 + // line internal/php7/php7.y:867 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:871 + // line internal/php7/php7.y:871 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:875 + // line internal/php7/php7.y:875 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:885 + // line internal/php7/php7.y:885 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3218,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:900 + // line internal/php7/php7.y:900 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3234,7 +3234,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:914 + // line internal/php7/php7.y:914 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3246,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:924 + // line internal/php7/php7.y:924 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3259,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:935 + // line internal/php7/php7.y:935 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3272,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:946 + // line internal/php7/php7.y:946 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3285,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:957 + // line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3295,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:965 + // line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3305,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:973 + // line internal/php7/php7.y:973 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3315,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:981 + // line internal/php7/php7.y:981 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3327,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:991 + // line internal/php7/php7.y:991 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3339,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1001 + // line internal/php7/php7.y:1001 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3352,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1012 + // line internal/php7/php7.y:1012 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3366,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1024 + // line internal/php7/php7.y:1024 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3382,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1038 + // line internal/php7/php7.y:1038 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3395,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1049 + // line internal/php7/php7.y:1049 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3406,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1058 + // line internal/php7/php7.y:1058 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3425,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1075 + // line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3438,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1086 + // line internal/php7/php7.y:1086 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3457,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1103 + // line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3475,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1121 + // line internal/php7/php7.y:1121 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1125 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3508,7 +3508,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1152 + // line internal/php7/php7.y:1152 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3516,7 +3516,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1158 + // line internal/php7/php7.y:1158 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3525,13 +3525,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1168 + // line internal/php7/php7.y:1168 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1172 + // line internal/php7/php7.y:1172 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3545,7 +3545,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1187 + // line internal/php7/php7.y:1187 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3553,7 +3553,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1193 + // line internal/php7/php7.y:1193 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3562,13 +3562,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1203 + // line internal/php7/php7.y:1203 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1210 + // line internal/php7/php7.y:1210 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3584,7 +3584,8 @@ yydefault: Value: yyDollar[3].token.Value, }, OpenParenthesisTkn: yyDollar[5].token, - Params: yyDollar[6].list, + Params: yyDollar[6].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[6].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[7].token, ColonTkn: yyDollar[8].node.(*ast.ReturnType).ColonTkn, ReturnType: yyDollar[8].node.(*ast.ReturnType).Type, @@ -3595,31 +3596,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1238 + // line internal/php7/php7.y:1239 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1242 + // line internal/php7/php7.y:1243 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1249 + // line internal/php7/php7.y:1250 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1253 + // line internal/php7/php7.y:1254 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1260 + // line internal/php7/php7.y:1261 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3643,7 +3644,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1282 + // line internal/php7/php7.y:1283 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3666,19 +3667,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1306 + // line internal/php7/php7.y:1307 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1310 + // line internal/php7/php7.y:1311 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1317 + // line internal/php7/php7.y:1318 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3690,7 +3691,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1327 + // line internal/php7/php7.y:1328 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3702,7 +3703,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1340 + // line internal/php7/php7.y:1341 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3723,7 +3724,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1362 + // line internal/php7/php7.y:1363 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3745,13 +3746,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1385 + // line internal/php7/php7.y:1386 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1389 + // line internal/php7/php7.y:1390 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3763,13 +3764,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1402 + // line internal/php7/php7.y:1403 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1406 + // line internal/php7/php7.y:1407 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3782,13 +3783,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1420 + // line internal/php7/php7.y:1421 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1424 + // line internal/php7/php7.y:1425 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3801,13 +3802,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1438 + // line internal/php7/php7.y:1439 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1442 + // line internal/php7/php7.y:1443 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3819,7 +3820,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1452 + // line internal/php7/php7.y:1453 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3834,7 +3835,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1465 + // line internal/php7/php7.y:1466 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3848,7 +3849,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1480 + // line internal/php7/php7.y:1481 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3859,7 +3860,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1489 + // line internal/php7/php7.y:1490 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3879,7 +3880,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1510 + // line internal/php7/php7.y:1511 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3890,7 +3891,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1519 + // line internal/php7/php7.y:1520 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3910,7 +3911,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1540 + // line internal/php7/php7.y:1541 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3921,7 +3922,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1549 + // line internal/php7/php7.y:1550 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3941,7 +3942,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1570 + // line internal/php7/php7.y:1571 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3954,7 +3955,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1581 + // line internal/php7/php7.y:1582 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3968,7 +3969,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1593 + // line internal/php7/php7.y:1594 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3983,7 +3984,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1606 + // line internal/php7/php7.y:1607 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3999,13 +4000,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1623 + // line internal/php7/php7.y:1624 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1627 + // line internal/php7/php7.y:1628 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4019,7 +4020,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1639 + // line internal/php7/php7.y:1640 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4032,19 +4033,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1653 + // line internal/php7/php7.y:1654 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1657 + // line internal/php7/php7.y:1658 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1664 + // line internal/php7/php7.y:1665 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4055,7 +4056,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1673 + // line internal/php7/php7.y:1674 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4075,7 +4076,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1694 + // line internal/php7/php7.y:1695 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4090,7 +4091,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1707 + // line internal/php7/php7.y:1708 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4109,13 +4110,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1727 + // line internal/php7/php7.y:1728 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1731 + // line internal/php7/php7.y:1732 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4131,7 +4132,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1748 + // line internal/php7/php7.y:1749 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4153,7 +4154,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1768 + // line internal/php7/php7.y:1769 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4177,7 +4178,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1793 + // line internal/php7/php7.y:1794 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4187,7 +4188,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1801 + // line internal/php7/php7.y:1802 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4211,34 +4212,36 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1826 + // line internal/php7/php7.y:1827 { - yyVAL.list = yyDollar[1].list + yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1830 + // line internal/php7/php7.y:1831 { - yyVAL.list = nil + yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1837 + // line internal/php7/php7.y:1838 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1841 + // line internal/php7/php7.y:1844 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1851 + // line internal/php7/php7.y:1854 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4272,7 +4275,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1883 + // line internal/php7/php7.y:1886 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4308,25 +4311,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1920 + // line internal/php7/php7.y:1923 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1924 + // line internal/php7/php7.y:1927 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1931 + // line internal/php7/php7.y:1934 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1938 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4338,7 +4341,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1948 + // line internal/php7/php7.y:1951 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4350,7 +4353,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1958 + // line internal/php7/php7.y:1961 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4362,19 +4365,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1971 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1975 + // line internal/php7/php7.y:1978 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1979 + // line internal/php7/php7.y:1982 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4383,7 +4386,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1989 + // line internal/php7/php7.y:1992 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4395,7 +4398,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1999 + // line internal/php7/php7.y:2002 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4407,7 +4410,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2012 + // line internal/php7/php7.y:2015 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4415,7 +4418,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2018 + // line internal/php7/php7.y:2021 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4424,7 +4427,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2028 + // line internal/php7/php7.y:2031 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4435,7 +4438,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2037 + // line internal/php7/php7.y:2040 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4447,7 +4450,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2050 + // line internal/php7/php7.y:2053 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4456,7 +4459,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2057 + // line internal/php7/php7.y:2060 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4464,13 +4467,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2066 + // line internal/php7/php7.y:2069 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2073 + // line internal/php7/php7.y:2076 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4479,7 +4482,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2080 + // line internal/php7/php7.y:2083 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4487,7 +4490,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2089 + // line internal/php7/php7.y:2092 { yyVAL.node = &ast.StmtStaticVar{ @@ -4510,7 +4513,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2110 + // line internal/php7/php7.y:2113 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4534,19 +4537,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2135 + // line internal/php7/php7.y:2138 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2139 + // line internal/php7/php7.y:2142 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2146 + // line internal/php7/php7.y:2149 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4561,7 +4564,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2159 + // line internal/php7/php7.y:2162 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4575,7 +4578,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2171 + // line internal/php7/php7.y:2174 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4589,7 +4592,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2183 + // line internal/php7/php7.y:2186 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4611,7 +4614,8 @@ yydefault: Value: yyDollar[4].token.Value, }, OpenParenthesisTkn: yyDollar[6].token, - Params: yyDollar[7].list, + Params: yyDollar[7].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[8].token, ColonTkn: yyDollar[9].node.(*ast.ReturnType).ColonTkn, ReturnType: yyDollar[9].node.(*ast.ReturnType).Type, @@ -4620,7 +4624,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2215 + // line internal/php7/php7.y:2219 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4628,7 +4632,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2225 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4637,7 +4641,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2231 + // line internal/php7/php7.y:2235 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4648,7 +4652,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2240 + // line internal/php7/php7.y:2244 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4660,7 +4664,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2250 + // line internal/php7/php7.y:2254 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4673,19 +4677,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2264 + // line internal/php7/php7.y:2268 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2268 + // line internal/php7/php7.y:2272 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2275 + // line internal/php7/php7.y:2279 { yyVAL.node = yyDollar[1].node @@ -4695,7 +4699,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2283 + // line internal/php7/php7.y:2287 { yyVAL.node = yyDollar[1].node @@ -4705,7 +4709,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2294 + // line internal/php7/php7.y:2298 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4719,7 +4723,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2309 + // line internal/php7/php7.y:2313 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4738,7 +4742,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2326 + // line internal/php7/php7.y:2330 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4757,7 +4761,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2343 + // line internal/php7/php7.y:2347 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4777,7 +4781,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2361 + // line internal/php7/php7.y:2365 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4790,7 +4794,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2379 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4807,13 +4811,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2390 + // line internal/php7/php7.y:2394 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2397 + // line internal/php7/php7.y:2401 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4832,7 +4836,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2417 + // line internal/php7/php7.y:2421 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4843,7 +4847,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2426 + // line internal/php7/php7.y:2430 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4856,13 +4860,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2440 + // line internal/php7/php7.y:2444 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2448 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4876,31 +4880,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2459 + // line internal/php7/php7.y:2463 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2463 + // line internal/php7/php7.y:2467 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2470 + // line internal/php7/php7.y:2474 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2474 + // line internal/php7/php7.y:2478 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2481 + // line internal/php7/php7.y:2485 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4912,7 +4916,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2491 + // line internal/php7/php7.y:2495 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4924,7 +4928,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2501 + // line internal/php7/php7.y:2505 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4936,7 +4940,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2511 + // line internal/php7/php7.y:2515 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4948,7 +4952,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2521 + // line internal/php7/php7.y:2525 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4960,7 +4964,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2535 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4972,7 +4976,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2544 + // line internal/php7/php7.y:2548 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4981,7 +4985,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2551 + // line internal/php7/php7.y:2555 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4989,7 +4993,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2560 + // line internal/php7/php7.y:2564 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5012,7 +5016,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2581 + // line internal/php7/php7.y:2585 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5036,7 +5040,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2606 + // line internal/php7/php7.y:2610 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5044,13 +5048,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2612 + // line internal/php7/php7.y:2616 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2619 + // line internal/php7/php7.y:2623 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5071,7 +5075,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2641 + // line internal/php7/php7.y:2645 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5092,7 +5096,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2663 + // line internal/php7/php7.y:2667 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5101,7 +5105,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2670 + // line internal/php7/php7.y:2674 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5109,25 +5113,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2679 + // line internal/php7/php7.y:2683 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2686 + // line internal/php7/php7.y:2690 { yyVAL.list = nil } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2690 + // line internal/php7/php7.y:2694 { yyVAL.list = yyDollar[1].list } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2697 + // line internal/php7/php7.y:2701 { yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) @@ -5136,13 +5140,13 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2704 + // line internal/php7/php7.y:2708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2711 + // line internal/php7/php7.y:2715 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5162,7 +5166,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2732 + // line internal/php7/php7.y:2736 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5188,7 +5192,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2760 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5200,7 +5204,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2769 + // line internal/php7/php7.y:2773 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5222,7 +5226,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2789 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5243,7 +5247,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2808 + // line internal/php7/php7.y:2812 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5256,7 +5260,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2819 + // line internal/php7/php7.y:2823 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5270,7 +5274,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2831 + // line internal/php7/php7.y:2835 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5282,7 +5286,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2841 + // line internal/php7/php7.y:2845 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5295,7 +5299,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5308,7 +5312,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2863 + // line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5321,7 +5325,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2874 + // line internal/php7/php7.y:2878 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5334,7 +5338,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2885 + // line internal/php7/php7.y:2889 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5347,7 +5351,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2896 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5360,7 +5364,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2907 + // line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5373,7 +5377,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2918 + // line internal/php7/php7.y:2922 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5386,7 +5390,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2929 + // line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5399,7 +5403,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2940 + // line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5412,7 +5416,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2951 + // line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5425,7 +5429,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2962 + // line internal/php7/php7.y:2966 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5438,7 +5442,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2973 + // line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprAssignCoalesce{ Node: ast.Node{ @@ -5451,7 +5455,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2984 + // line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5463,7 +5467,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2994 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5475,7 +5479,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3004 + // line internal/php7/php7.y:3008 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5487,7 +5491,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3014 + // line internal/php7/php7.y:3018 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5499,7 +5503,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3024 + // line internal/php7/php7.y:3028 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5512,7 +5516,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3039 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5525,7 +5529,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3046 + // line internal/php7/php7.y:3050 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5538,7 +5542,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3057 + // line internal/php7/php7.y:3061 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5551,7 +5555,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3072 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5564,7 +5568,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3079 + // line internal/php7/php7.y:3083 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5577,7 +5581,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3090 + // line internal/php7/php7.y:3094 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5590,7 +5594,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5603,7 +5607,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3112 + // line internal/php7/php7.y:3116 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5616,7 +5620,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3123 + // line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5629,7 +5633,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3134 + // line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5642,7 +5646,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3149 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5655,7 +5659,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3156 + // line internal/php7/php7.y:3160 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5668,7 +5672,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3167 + // line internal/php7/php7.y:3171 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5681,7 +5685,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3178 + // line internal/php7/php7.y:3182 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5694,7 +5698,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3189 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5707,7 +5711,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3200 + // line internal/php7/php7.y:3204 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5720,7 +5724,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3211 + // line internal/php7/php7.y:3215 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5732,7 +5736,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3221 + // line internal/php7/php7.y:3225 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5744,7 +5748,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3231 + // line internal/php7/php7.y:3235 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5756,7 +5760,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3241 + // line internal/php7/php7.y:3245 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5768,7 +5772,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3255 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5781,7 +5785,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3262 + // line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5794,7 +5798,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3273 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5807,7 +5811,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3284 + // line internal/php7/php7.y:3288 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5820,7 +5824,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3295 + // line internal/php7/php7.y:3299 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5833,7 +5837,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3306 + // line internal/php7/php7.y:3310 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5846,7 +5850,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3317 + // line internal/php7/php7.y:3321 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5859,7 +5863,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3328 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5872,7 +5876,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3339 + // line internal/php7/php7.y:3343 { yyVAL.node = &ast.ExprBinarySpaceship{ Node: ast.Node{ @@ -5885,7 +5889,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3350 + // line internal/php7/php7.y:3354 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5898,7 +5902,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3361 + // line internal/php7/php7.y:3365 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5915,13 +5919,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3376 + // line internal/php7/php7.y:3380 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3380 + // line internal/php7/php7.y:3384 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5936,7 +5940,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3393 + // line internal/php7/php7.y:3397 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5950,7 +5954,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3405 + // line internal/php7/php7.y:3409 { yyVAL.node = &ast.ExprBinaryCoalesce{ Node: ast.Node{ @@ -5963,13 +5967,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3416 + // line internal/php7/php7.y:3420 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3424 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -5981,7 +5985,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3434 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -5993,7 +5997,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3440 + // line internal/php7/php7.y:3444 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6005,7 +6009,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3450 + // line internal/php7/php7.y:3454 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6017,7 +6021,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3460 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6029,7 +6033,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3470 + // line internal/php7/php7.y:3474 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6041,7 +6045,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3480 + // line internal/php7/php7.y:3484 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6053,7 +6057,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3494 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6072,7 +6076,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3507 + // line internal/php7/php7.y:3511 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6084,13 +6088,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3517 + // line internal/php7/php7.y:3521 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3521 + // line internal/php7/php7.y:3525 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6103,7 +6107,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3532 + // line internal/php7/php7.y:3536 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6115,7 +6119,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3546 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6126,7 +6130,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3551 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6138,7 +6142,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3561 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6152,7 +6156,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3573 + // line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6164,13 +6168,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3583 + // line internal/php7/php7.y:3587 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3587 + // line internal/php7/php7.y:3591 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6185,7 +6189,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3603 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6194,7 +6198,8 @@ yydefault: FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[4].token, - Params: yyDollar[5].list, + Params: yyDollar[5].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].token, ClosureUse: yyDollar[7].ClosureUse, ColonTkn: yyDollar[8].node.(*ast.ReturnType).ColonTkn, @@ -6206,7 +6211,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3622 + // line internal/php7/php7.y:3627 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6215,7 +6220,8 @@ yydefault: FnTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, - Params: yyDollar[4].list, + Params: yyDollar[4].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[5].token, ColonTkn: yyDollar[6].node.(*ast.ReturnType).ColonTkn, ReturnType: yyDollar[6].node.(*ast.ReturnType).Type, @@ -6225,25 +6231,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3652 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3650 + // line internal/php7/php7.y:3656 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3657 + // line internal/php7/php7.y:3663 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3661 + // line internal/php7/php7.y:3667 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6258,7 +6264,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3677 + // line internal/php7/php7.y:3683 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6267,7 +6273,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3684 + // line internal/php7/php7.y:3690 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6275,7 +6281,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3693 + // line internal/php7/php7.y:3699 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6292,7 +6298,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3714 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6315,7 +6321,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3732 + // line internal/php7/php7.y:3738 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6330,7 +6336,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3745 + // line internal/php7/php7.y:3751 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6347,7 +6353,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3760 + // line internal/php7/php7.y:3766 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6364,7 +6370,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3775 + // line internal/php7/php7.y:3781 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6379,7 +6385,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3791 + // line internal/php7/php7.y:3797 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6391,31 +6397,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3801 + // line internal/php7/php7.y:3807 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3808 + // line internal/php7/php7.y:3814 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3818 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3819 + // line internal/php7/php7.y:3825 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3823 + // line internal/php7/php7.y:3829 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6432,13 +6438,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3841 + // line internal/php7/php7.y:3847 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3845 + // line internal/php7/php7.y:3851 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6452,25 +6458,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3857 + // line internal/php7/php7.y:3863 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3864 + // line internal/php7/php7.y:3870 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3868 + // line internal/php7/php7.y:3874 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3881 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6485,7 +6491,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3888 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6499,7 +6505,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3906 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6511,7 +6517,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3913 + // line internal/php7/php7.y:3919 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6523,7 +6529,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3923 + // line internal/php7/php7.y:3929 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6535,7 +6541,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3933 + // line internal/php7/php7.y:3939 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6547,7 +6553,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3943 + // line internal/php7/php7.y:3949 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6559,7 +6565,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3959 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6571,7 +6577,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3963 + // line internal/php7/php7.y:3969 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6583,7 +6589,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3973 + // line internal/php7/php7.y:3979 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6595,7 +6601,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3983 + // line internal/php7/php7.y:3989 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6607,7 +6613,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3993 + // line internal/php7/php7.y:3999 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6619,7 +6625,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4003 + // line internal/php7/php7.y:4009 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6631,7 +6637,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4013 + // line internal/php7/php7.y:4019 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6652,7 +6658,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4032 + // line internal/php7/php7.y:4038 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6664,7 +6670,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4048 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6677,7 +6683,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4053 + // line internal/php7/php7.y:4059 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6690,19 +6696,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4064 + // line internal/php7/php7.y:4070 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4068 + // line internal/php7/php7.y:4074 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4081 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6713,7 +6719,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4090 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6732,7 +6738,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4101 + // line internal/php7/php7.y:4107 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6751,43 +6757,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4121 + // line internal/php7/php7.y:4127 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4125 + // line internal/php7/php7.y:4131 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4132 + // line internal/php7/php7.y:4138 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4142 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4143 + // line internal/php7/php7.y:4149 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4150 + // line internal/php7/php7.y:4156 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4154 + // line internal/php7/php7.y:4160 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6804,19 +6810,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4175 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4182 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4180 + // line internal/php7/php7.y:4186 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6833,19 +6839,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4195 + // line internal/php7/php7.y:4201 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4202 + // line internal/php7/php7.y:4208 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4206 + // line internal/php7/php7.y:4212 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6859,7 +6865,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4218 + // line internal/php7/php7.y:4224 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6873,7 +6879,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4236 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6887,7 +6893,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4248 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6904,25 +6910,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4257 + // line internal/php7/php7.y:4263 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4264 + // line internal/php7/php7.y:4270 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4268 + // line internal/php7/php7.y:4274 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4272 + // line internal/php7/php7.y:4278 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6935,7 +6941,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4286 + // line internal/php7/php7.y:4292 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6952,7 +6958,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4301 + // line internal/php7/php7.y:4307 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6971,7 +6977,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4324 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6983,7 +6989,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4331 + // line internal/php7/php7.y:4337 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -6996,7 +7002,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4342 + // line internal/php7/php7.y:4348 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7009,13 +7015,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4356 + // line internal/php7/php7.y:4362 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4360 + // line internal/php7/php7.y:4366 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7029,7 +7035,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4372 + // line internal/php7/php7.y:4378 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7043,7 +7049,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4384 + // line internal/php7/php7.y:4390 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7056,7 +7062,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4395 + // line internal/php7/php7.y:4401 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7069,7 +7075,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4406 + // line internal/php7/php7.y:4412 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7082,7 +7088,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4420 + // line internal/php7/php7.y:4426 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7094,7 +7100,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4430 + // line internal/php7/php7.y:4436 { yyVAL.node = yyDollar[2].node @@ -7104,13 +7110,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4438 + // line internal/php7/php7.y:4444 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4445 + // line internal/php7/php7.y:4451 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7122,7 +7128,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4455 + // line internal/php7/php7.y:4461 { yyVAL.node = yyDollar[2].node @@ -7132,13 +7138,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4463 + // line internal/php7/php7.y:4469 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4470 + // line internal/php7/php7.y:4476 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7151,19 +7157,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4484 + // line internal/php7/php7.y:4490 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4488 + // line internal/php7/php7.y:4494 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4501 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7172,7 +7178,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4502 + // line internal/php7/php7.y:4508 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7180,7 +7186,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4511 + // line internal/php7/php7.y:4517 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7193,7 +7199,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4522 + // line internal/php7/php7.y:4528 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7204,7 +7210,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4531 + // line internal/php7/php7.y:4537 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7223,7 +7229,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4548 + // line internal/php7/php7.y:4554 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7240,7 +7246,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4563 + // line internal/php7/php7.y:4569 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7252,7 +7258,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4573 + // line internal/php7/php7.y:4579 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7274,7 +7280,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4593 + // line internal/php7/php7.y:4599 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7294,13 +7300,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4614 + // line internal/php7/php7.y:4620 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4618 + // line internal/php7/php7.y:4624 { yyVAL.list = append( yyDollar[1].list, @@ -7315,13 +7321,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4631 + // line internal/php7/php7.y:4637 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4635 + // line internal/php7/php7.y:4641 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7336,7 +7342,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4651 + // line internal/php7/php7.y:4657 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7353,7 +7359,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4666 + // line internal/php7/php7.y:4672 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7378,7 +7384,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4689 + // line internal/php7/php7.y:4695 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7408,7 +7414,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4717 + // line internal/php7/php7.y:4723 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7426,7 +7432,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4733 + // line internal/php7/php7.y:4739 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7450,7 +7456,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4755 + // line internal/php7/php7.y:4761 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7482,7 +7488,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4785 + // line internal/php7/php7.y:4791 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7495,7 +7501,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4799 + // line internal/php7/php7.y:4805 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7507,7 +7513,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4809 + // line internal/php7/php7.y:4815 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7530,7 +7536,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4830 + // line internal/php7/php7.y:4836 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7563,7 +7569,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4861 + // line internal/php7/php7.y:4867 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7580,7 +7586,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4879 + // line internal/php7/php7.y:4885 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7599,7 +7605,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4896 + // line internal/php7/php7.y:4902 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7613,7 +7619,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4908 + // line internal/php7/php7.y:4914 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7625,7 +7631,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4918 + // line internal/php7/php7.y:4924 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7637,7 +7643,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4928 + // line internal/php7/php7.y:4934 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7651,7 +7657,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4940 + // line internal/php7/php7.y:4946 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7663,7 +7669,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4950 + // line internal/php7/php7.y:4956 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7675,7 +7681,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4963 + // line internal/php7/php7.y:4969 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7683,7 +7689,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4969 + // line internal/php7/php7.y:4975 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7692,7 +7698,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4979 + // line internal/php7/php7.y:4985 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 35d271e..8248833 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -235,7 +235,7 @@ import ( %type group_use_declaration inline_use_declaration %type mixed_group_use_declaration use_declaration unprefixed_use_declaration %type const_decl inner_statement -%type expr optional_expr +%type expr optional_expr parameter_list non_empty_parameter_list %type declare_statement finally_statement unset_variable variable %type parameter optional_type argument expr_without_variable global_var_list global_var %type static_var_list static_var class_statement trait_adaptation trait_precedence trait_alias @@ -277,7 +277,7 @@ import ( %type case_list trait_adaptation_list %type use_declarations %type top_statement_list -%type inner_statement_list parameter_list non_empty_parameter_list class_statement_list +%type inner_statement_list class_statement_list %type method_modifiers variable_modifiers %type non_empty_member_modifiers class_modifiers @@ -1222,7 +1222,8 @@ function_declaration_statement: Value: $3.Value, }, OpenParenthesisTkn: $5, - Params: $6, + Params: $6.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $6.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $7, ColonTkn: $8.(*ast.ReturnType).ColonTkn, ReturnType: $8.(*ast.ReturnType).Type, @@ -1828,21 +1829,23 @@ parameter_list: } | /* empty */ { - $$ = nil + $$ = &ast.ParserSeparatedList{} } ; non_empty_parameter_list: parameter { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } | non_empty_parameter_list ',' parameter { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } ; @@ -2201,7 +2204,8 @@ class_statement: Value: $4.Value, }, OpenParenthesisTkn: $6, - Params: $7, + Params: $7.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $7.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $8, ColonTkn: $9.(*ast.ReturnType).ColonTkn, ReturnType: $9.(*ast.ReturnType).Type, @@ -3608,7 +3612,8 @@ inline_function: FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $4, - Params: $5, + Params: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $6, ClosureUse: $7, ColonTkn: $8.(*ast.ReturnType).ColonTkn, @@ -3627,7 +3632,8 @@ inline_function: FnTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, - Params: $4, + Params: $4.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $5, ColonTkn: $6.(*ast.ReturnType).ColonTkn, ReturnType: $6.(*ast.ReturnType).Type, diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 6283064..c231894 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -269,6 +269,7 @@ type StmtClassMethod struct { MethodName Vertex OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ColonTkn *token.Token ReturnType Vertex @@ -482,6 +483,7 @@ type StmtFunction struct { FunctionName Vertex OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ColonTkn *token.Token ReturnType Vertex @@ -955,6 +957,7 @@ type ExprArrowFunction struct { AmpersandTkn *token.Token OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ColonTkn *token.Token ReturnType Vertex @@ -1019,6 +1022,7 @@ type ExprClosure struct { AmpersandTkn *token.Token OpenParenthesisTkn *token.Token Params []Vertex + SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ClosureUse *ExprClosureUse ColonTkn *token.Token From ea3c5298e2e65321a1f72b98d0ab85737be8e2de Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 12:49:13 +0200 Subject: [PATCH 097/140] [refactoring] update ast structure of "For", "TraitUseAlias" and "TraitUsePrecedence" nodes --- internal/php5/php5.go | 1200 ++++++++++++++++++++--------------------- internal/php5/php5.y | 44 +- internal/php7/php7.go | 889 +++++++++++++++--------------- internal/php7/php7.y | 36 +- pkg/ast/node.go | 13 +- 5 files changed, 1094 insertions(+), 1088 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 6647192..626fc16 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -691,12 +691,12 @@ var yyAct = [...]int{ 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, 521, 259, 572, 591, 255, 994, 283, 572, 996, 285, 260, 261, 840, 965, 998, 980, 964, 260, 261, 839, - 836, 1006, 1005, 39, 572, 1012, 531, 725, 341, 1013, - 698, 538, 531, 531, 993, 572, 1016, 518, 716, 318, + 836, 1006, 1005, 39, 572, 1012, 531, 725, 698, 1013, + 538, 318, 531, 531, 993, 572, 1016, 518, 716, 314, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 314, 127, 259, 446, 231, 31, 231, 256, 654, - 531, 403, 296, 656, 655, 39, 260, 261, 449, 575, - 903, 39, 401, 657, 659, 660, 676, 677, 666, 460, + 679, 127, 403, 259, 446, 231, 31, 231, 256, 654, + 531, 575, 296, 656, 655, 39, 260, 261, 449, 903, + 401, 39, 341, 657, 659, 660, 676, 677, 666, 460, 147, 151, 155, 335, 945, 685, 165, 995, 478, 1009, 929, 483, 343, 290, 198, 394, 389, 939, 896, 206, 164, 157, 161, 528, 608, 231, 997, 970, 531, 969, @@ -1608,38 +1608,38 @@ var yyPgo = [...]int{ 1101, 1093, 48, 5, 1092, 1091, 1089, 1087, 1086, 6, 1084, 1017, 1083, 1082, 1081, 18, 1042, 1080, 1078, 1077, 1076, 1075, 1073, 41, 1072, 1071, 4, 1070, 1069, 1067, - 17, 1065, 12, 1064, 1063, 1059, 7, 21, 1052, 25, - 1050, 1049, 1041, 14, 39, 0, 1032, 1031, 1019, 391, - 619, 1011, 1010, 1008, 30, 52, 1007, 1002, 1001, 15, + 17, 1065, 12, 1064, 1063, 1059, 7, 21, 30, 1052, + 1050, 25, 1049, 1041, 1032, 14, 39, 0, 1031, 1019, + 1011, 391, 619, 1010, 1008, 52, 1007, 1002, 1001, 15, 1000, 999, 996, 993, 992, 984, 983, 972, 23, 969, 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, 960, 923, } var yyR1 = [...]int{ - 0, 151, 114, 114, 115, 115, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 116, 116, - 6, 6, 6, 6, 117, 117, 7, 7, 7, 7, - 118, 118, 8, 8, 8, 8, 55, 55, 119, 119, + 0, 151, 116, 116, 117, 117, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 118, 118, + 6, 6, 6, 6, 119, 119, 7, 7, 7, 7, + 120, 120, 8, 8, 8, 8, 55, 55, 121, 121, 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 126, 126, 62, 62, 127, 127, 128, 128, 63, 90, 90, 58, 53, 54, 149, 149, 150, 150, 64, 65, 65, 68, 68, 68, 68, - 108, 108, 2, 112, 112, 111, 111, 109, 109, 107, + 110, 110, 2, 114, 114, 113, 113, 111, 111, 107, 107, 106, 106, 106, 103, 103, 102, 102, 59, 59, 91, 91, 94, 94, 94, 94, 125, 125, 125, 4, - 4, 104, 104, 121, 121, 122, 122, 56, 56, 57, + 4, 104, 104, 123, 123, 124, 124, 56, 56, 57, 57, 60, 60, 61, 61, 67, 67, 66, 66, 66, 66, 86, 86, 86, 95, 95, 72, 72, 72, 72, 84, 84, 29, 29, 29, 83, 83, 83, 83, 129, - 129, 69, 69, 69, 69, 71, 110, 110, 89, 89, + 129, 69, 69, 69, 69, 71, 112, 112, 89, 89, 132, 132, 133, 133, 73, 73, 74, 99, 99, 77, 77, 76, 75, 75, 78, 78, 98, 98, 130, 130, 131, 131, 134, 134, 79, 79, 79, 79, 79, 79, - 88, 88, 88, 88, 70, 70, 87, 87, 124, 124, - 123, 123, 138, 138, 136, 136, 137, 137, 137, 139, + 88, 88, 88, 88, 70, 70, 87, 87, 108, 108, + 109, 109, 138, 138, 136, 136, 137, 137, 137, 139, 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, @@ -1648,7 +1648,7 @@ var yyR1 = [...]int{ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 113, 113, 97, + 49, 49, 49, 49, 48, 48, 1, 115, 115, 97, 97, 97, 97, 25, 25, 25, 25, 25, 25, 25, 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, 43, 43, 146, 146, 145, 51, 51, 51, 135, 135, @@ -1666,7 +1666,7 @@ var yyR1 = [...]int{ 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, 144, 144, 41, 41, 148, 148, 96, 96, 40, 40, 40, 93, 93, 92, 92, 92, 92, 92, 92, 92, - 92, 120, 120, 120, 120, 35, 35, 35, 35, 35, + 92, 122, 122, 122, 122, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, 39, 39, 39, 105, 105, 38, 38, 32, 32, 33, 34, @@ -1729,7 +1729,7 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -114, -5, 2, -27, -53, -54, 52, 80, + -1000, -151, -116, -5, 2, -27, -53, -54, 52, 80, 45, -55, -28, 10, -64, -65, 39, 144, 7, 21, 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, @@ -1739,10 +1739,10 @@ var yyChk = [...]int{ 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -115, 83, -13, 8, 9, 67, 68, 82, + -25, -32, -117, 83, -13, 8, 9, 67, 68, 82, 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -115, 144, 83, 10, -116, 37, 39, - -6, -115, 83, 146, 160, 147, 10, -119, -50, 148, + 159, 12, 148, -117, 144, 83, 10, -118, 37, 39, + -6, -117, 83, 146, 160, 147, 10, -121, -50, 148, -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, 146, -16, 146, -17, -21, -16, 146, -84, -29, 12, 159, -83, -1, 12, -87, -16, 146, 131, 132, 88, @@ -1751,87 +1751,87 @@ var yyChk = [...]int{ 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -115, 80, + 128, 129, 148, -16, 105, 106, -20, -21, -117, 80, 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -135, 17, -120, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -115, 80, 83, + 148, -50, -16, 150, 150, -135, 17, -122, -35, 12, + 77, 78, -16, 58, -45, -13, -43, -117, 80, 83, -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -120, 17, 17, 76, -120, 150, 148, -93, - -92, -16, 153, 150, 150, 83, -86, 148, -115, 79, + -16, 150, -122, 17, 17, 76, -122, 150, 148, -93, + -92, -16, 153, 150, 150, 83, -86, 148, -117, 79, 150, 144, -12, 159, 79, -86, 144, 149, 146, 144, - -114, -115, 146, 160, -117, -7, -115, 83, -118, -8, - -115, 83, 29, -115, 10, 162, -26, 145, 2, -27, + -116, -117, 146, 160, -119, -7, -117, 83, -120, -8, + -117, 83, 29, -117, 10, 162, -26, 145, 2, -27, -53, -54, 52, -27, 147, -104, -27, 147, 21, -149, - -124, -123, -16, -94, 144, 147, 146, 146, 146, 146, + -108, -109, -16, -94, 144, 147, 146, 146, 146, 146, 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -45, -16, 147, -90, - -58, -21, -21, -17, -91, 10, -119, 146, 146, 10, - 148, -108, 56, -112, 56, 59, -16, 153, -16, -16, + -58, -21, -21, -17, -91, 10, -121, 146, 146, 10, + 148, -110, 56, -114, 56, 59, -16, 153, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -96, -40, -21, 60, 83, -115, 79, 79, 149, 149, + -96, -40, -21, 60, 83, -117, 79, 79, 149, 149, 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -85, -86, 79, 83, -115, 58, -12, 79, + 10, 144, -85, -86, 79, 83, -117, 58, -12, 79, -105, -38, -21, -17, -21, -16, -16, -15, 142, 76, 76, -15, -93, 151, -3, 160, 59, -19, -21, -15, -15, 10, 149, -95, -52, -72, -17, -21, 153, 84, -86, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -114, 145, -86, -6, 146, 160, 29, -115, - 146, 160, 29, -115, 10, 29, 162, -30, -81, -9, - -33, -115, 80, 83, 61, 150, -10, 63, -82, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -121, -119, - -119, -50, 146, 160, -125, 146, -125, 146, -29, -16, + -16, 146, -116, 145, -86, -6, 146, 160, 29, -117, + 146, 160, 29, -117, 10, 29, 162, -30, -81, -9, + -33, -117, 80, 83, 61, 150, -10, 63, -82, 18, + 75, -13, 156, 157, 155, 154, 148, 148, -123, -121, + -121, -50, 146, 160, -125, 146, -125, 146, -29, -16, 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, 149, 160, 162, 145, 148, -60, -61, -67, -66, 61, - 62, -47, -115, 80, 83, -111, 57, -47, 144, -109, - -47, -17, -21, -21, 92, 149, 160, 148, -115, -139, + 62, -47, -117, 80, 83, -113, 57, -47, 144, -111, + -47, -17, -21, -21, 92, 149, 160, 148, -117, -139, -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, 13, 12, 10, 145, 145, 150, 145, -141, -80, -142, - -86, 150, 144, -12, -16, -42, -115, -143, -42, 149, + -86, 150, 144, -12, -16, -42, -117, -143, -42, 149, 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, 153, 151, 151, 149, 160, 149, -19, -16, -86, -86, 151, 145, -86, -86, 145, 145, -7, 10, 29, -8, 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -115, 148, -100, -101, -81, 17, 79, -81, - -81, -81, -81, -81, 149, -56, 94, 95, -122, 22, - 146, -124, -16, 145, 32, 33, -125, 31, -125, 145, + 152, 83, -117, 148, -100, -101, -81, 17, 79, -81, + -81, -81, -81, -81, 149, -56, 94, 95, -124, 22, + 146, -108, -16, 145, 32, 33, -125, 31, -125, 145, 162, -60, -16, 146, -58, -106, -21, 153, 60, -106, -59, -27, 147, 10, -30, -126, 42, -60, 149, 160, - -149, 83, -115, 144, -109, -129, 160, -45, 162, -40, + -149, 83, -117, 144, -111, -129, 160, -45, 162, -40, -96, 150, -138, -140, -15, -143, 151, -16, -147, 150, 150, -15, -16, 145, -146, -38, 59, -19, -19, -72, 10, 10, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, 147, -81, - -115, -100, 151, -3, 160, 59, 10, 53, 149, 146, + -117, -100, 151, -3, 160, 59, 10, 53, 149, 146, -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, 146, 145, 146, 31, -30, 149, -107, 59, -21, 148, - -107, -119, 162, -62, 43, 148, 149, -113, 45, -67, - -150, 84, -115, -129, 145, -69, -130, -70, -71, -131, + -107, -121, 162, -62, 43, 148, 149, -115, 45, -67, + -150, 84, -117, -129, 145, -69, -130, -70, -71, -131, -134, 48, 39, 45, -79, 104, 103, 102, 99, 100, 101, -47, -85, -16, 149, -15, 151, -141, 151, -140, -15, -15, 151, 145, -145, 58, -16, 153, 151, -81, - 147, 149, -81, -81, -27, 96, -50, 147, -124, -4, - -119, 146, -113, 149, -106, -96, 149, 28, -30, 144, + 147, 149, -81, -81, -27, 96, -50, 147, -108, -4, + -121, 146, -115, 149, -106, -96, 149, 28, -30, 144, -47, 144, 144, 148, 12, 145, -88, 12, 146, 160, - -1, -79, 10, -110, -47, 151, 145, 151, 151, -143, - -19, -81, 59, 146, 147, -119, 149, -119, 144, -102, - -27, 147, 149, -102, 146, -119, 12, -119, -119, -97, + -1, -79, 10, -112, -47, 151, 145, 151, 151, -143, + -19, -81, 59, 146, 147, -121, 149, -121, 144, -102, + -27, 147, 149, -102, 146, -121, 12, -121, -121, -97, 12, 153, 162, 146, 160, 162, 10, -149, 162, -89, - 160, 146, 144, -81, -119, -103, -27, 147, -119, -119, + 160, 146, 144, -81, -121, -103, -27, 147, -121, -121, 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, 162, 10, -30, -47, -132, -133, -73, -74, -75, -76, - -77, -47, 10, -119, 145, 26, 144, 12, 153, 162, + -77, -47, 10, -121, 145, 26, 144, 12, 153, 162, -30, 148, 145, -73, 146, 146, 46, 29, 79, 24, - 146, -119, 12, -30, -60, -99, -47, -78, -79, 10, + 146, -121, 12, -30, -60, -99, -47, -78, -79, 10, 146, 145, 149, 160, 10, -127, -128, -63, 42, -98, - 146, 144, -47, -63, 148, -119, -47, 145, 12, 149, - 144, -119, 145, + 146, 144, -47, -63, 148, -121, -47, 145, 12, 149, + 144, -121, 145, } var yyDef = [...]int{ @@ -2316,7 +2316,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:269 + // line internal/php5/php5.y:269 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2328,7 +2328,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:282 + // line internal/php5/php5.y:282 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2341,13 +2341,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:293 + // line internal/php5/php5.y:293 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:300 + // line internal/php5/php5.y:300 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2361,7 +2361,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:312 + // line internal/php5/php5.y:312 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2374,32 +2374,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:326 + // line internal/php5/php5.y:326 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:331 + // line internal/php5/php5.y:331 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:335 + // line internal/php5/php5.y:335 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:339 + // line internal/php5/php5.y:339 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:343 + // line internal/php5/php5.y:343 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2413,7 +2413,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:355 + // line internal/php5/php5.y:355 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2431,7 +2431,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:371 + // line internal/php5/php5.y:371 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2451,7 +2451,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:389 + // line internal/php5/php5.y:389 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2465,7 +2465,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:401 + // line internal/php5/php5.y:401 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2478,7 +2478,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:412 + // line internal/php5/php5.y:412 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2498,7 +2498,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:430 + // line internal/php5/php5.y:430 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2518,7 +2518,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:448 + // line internal/php5/php5.y:448 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2526,7 +2526,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:457 + // line internal/php5/php5.y:457 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2534,13 +2534,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:463 + // line internal/php5/php5.y:463 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:470 + // line internal/php5/php5.y:470 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2556,7 +2556,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:484 + // line internal/php5/php5.y:484 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2580,7 +2580,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:506 + // line internal/php5/php5.y:506 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2597,7 +2597,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:521 + // line internal/php5/php5.y:521 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2622,7 +2622,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:547 + // line internal/php5/php5.y:547 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2630,13 +2630,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:553 + // line internal/php5/php5.y:553 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:560 + // line internal/php5/php5.y:560 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2652,7 +2652,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:574 + // line internal/php5/php5.y:574 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2676,7 +2676,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:596 + // line internal/php5/php5.y:596 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2693,7 +2693,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:611 + // line internal/php5/php5.y:611 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2718,7 +2718,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:637 + // line internal/php5/php5.y:637 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2726,13 +2726,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:643 + // line internal/php5/php5.y:643 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:650 + // line internal/php5/php5.y:650 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2748,7 +2748,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:664 + // line internal/php5/php5.y:664 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2772,7 +2772,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:686 + // line internal/php5/php5.y:686 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2789,7 +2789,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:701 + // line internal/php5/php5.y:701 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2814,7 +2814,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:727 + // line internal/php5/php5.y:727 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2840,7 +2840,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:751 + // line internal/php5/php5.y:751 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2869,7 +2869,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:781 + // line internal/php5/php5.y:781 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2882,38 +2882,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:792 + // line internal/php5/php5.y:792 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:800 + // line internal/php5/php5.y:800 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:805 + // line internal/php5/php5.y:805 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:809 + // line internal/php5/php5.y:809 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:813 + // line internal/php5/php5.y:813 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:817 + // line internal/php5/php5.y:817 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2927,13 +2927,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:833 + // line internal/php5/php5.y:833 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:837 + // line internal/php5/php5.y:837 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2951,7 +2951,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:856 + // line internal/php5/php5.y:856 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2964,7 +2964,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:867 + // line internal/php5/php5.y:867 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2988,7 +2988,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:889 + // line internal/php5/php5.y:889 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3014,7 +3014,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:913 + // line internal/php5/php5.y:913 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3026,7 +3026,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:923 + // line internal/php5/php5.y:923 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3043,15 +3043,18 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:938 + // line internal/php5/php5.y:938 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token - yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].list + yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].node.(*ast.ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).InitSeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).InitSemiColonTkn = yyDollar[4].token - yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].list + yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].node.(*ast.ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).CondSeparatorTkns = yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CondSemiColonTkn = yyDollar[6].token - yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].list + yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token yyDollar[9].node.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) @@ -3059,7 +3062,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:952 + // line internal/php5/php5.y:955 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3071,7 +3074,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:962 + // line internal/php5/php5.y:965 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3083,7 +3086,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:972 + // line internal/php5/php5.y:975 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3096,7 +3099,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:983 + // line internal/php5/php5.y:986 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3108,7 +3111,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:993 + // line internal/php5/php5.y:996 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3121,7 +3124,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1004 + // line internal/php5/php5.y:1007 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3133,7 +3136,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1014 + // line internal/php5/php5.y:1017 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3146,7 +3149,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1025 + // line internal/php5/php5.y:1028 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3159,7 +3162,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1036 + // line internal/php5/php5.y:1039 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3171,7 +3174,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1046 + // line internal/php5/php5.y:1049 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3182,7 +3185,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1055 + // line internal/php5/php5.y:1058 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3193,7 +3196,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1064 + // line internal/php5/php5.y:1067 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3203,7 +3206,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1072 + // line internal/php5/php5.y:1075 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3215,7 +3218,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1082 + // line internal/php5/php5.y:1085 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3227,7 +3230,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1092 + // line internal/php5/php5.y:1095 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3239,7 +3242,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1102 + // line internal/php5/php5.y:1105 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3259,7 +3262,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1120 + // line internal/php5/php5.y:1123 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3279,7 +3282,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1138 + // line internal/php5/php5.y:1141 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3292,7 +3295,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1149 + // line internal/php5/php5.y:1152 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3303,7 +3306,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1158 + // line internal/php5/php5.y:1161 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3322,7 +3325,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1175 + // line internal/php5/php5.y:1178 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3335,7 +3338,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1186 + // line internal/php5/php5.y:1189 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3354,13 +3357,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1206 + // line internal/php5/php5.y:1209 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1210 + // line internal/php5/php5.y:1213 { catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3390,13 +3393,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1241 + // line internal/php5/php5.y:1244 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1245 + // line internal/php5/php5.y:1248 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3410,31 +3413,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1260 + // line internal/php5/php5.y:1263 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1264 + // line internal/php5/php5.y:1267 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1271 + // line internal/php5/php5.y:1274 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1275 + // line internal/php5/php5.y:1278 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1282 + // line internal/php5/php5.y:1285 { yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3463,7 +3466,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1312 + // line internal/php5/php5.y:1315 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3471,7 +3474,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1318 + // line internal/php5/php5.y:1321 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3480,49 +3483,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1328 + // line internal/php5/php5.y:1331 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1335 + // line internal/php5/php5.y:1338 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1342 + // line internal/php5/php5.y:1345 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1349 + // line internal/php5/php5.y:1352 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1353 + // line internal/php5/php5.y:1356 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1360 + // line internal/php5/php5.y:1363 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1364 + // line internal/php5/php5.y:1367 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1371 + // line internal/php5/php5.y:1374 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3548,7 +3551,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1398 + // line internal/php5/php5.y:1401 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3585,7 +3588,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1433 + // line internal/php5/php5.y:1436 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3607,7 +3610,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1457 + // line internal/php5/php5.y:1460 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3618,7 +3621,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1466 + // line internal/php5/php5.y:1469 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3638,7 +3641,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1484 + // line internal/php5/php5.y:1487 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3649,7 +3652,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1493 + // line internal/php5/php5.y:1496 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3669,13 +3672,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1514 + // line internal/php5/php5.y:1517 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1518 + // line internal/php5/php5.y:1521 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3687,19 +3690,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1531 + // line internal/php5/php5.y:1534 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1538 + // line internal/php5/php5.y:1541 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1542 + // line internal/php5/php5.y:1545 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3712,13 +3715,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1556 + // line internal/php5/php5.y:1559 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1560 + // line internal/php5/php5.y:1563 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3731,7 +3734,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1574 + // line internal/php5/php5.y:1577 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3739,7 +3742,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1580 + // line internal/php5/php5.y:1583 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3748,13 +3751,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1590 + // line internal/php5/php5.y:1593 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1594 + // line internal/php5/php5.y:1597 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3763,13 +3766,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1604 + // line internal/php5/php5.y:1607 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1608 + // line internal/php5/php5.y:1611 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3781,7 +3784,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1618 + // line internal/php5/php5.y:1621 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3803,7 +3806,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1641 + // line internal/php5/php5.y:1644 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3814,7 +3817,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1650 + // line internal/php5/php5.y:1653 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3834,7 +3837,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1671 + // line internal/php5/php5.y:1674 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3845,7 +3848,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1680 + // line internal/php5/php5.y:1683 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3865,7 +3868,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1702 + // line internal/php5/php5.y:1705 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3876,7 +3879,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1711 + // line internal/php5/php5.y:1714 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3896,7 +3899,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1733 + // line internal/php5/php5.y:1736 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3921,7 +3924,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1756 + // line internal/php5/php5.y:1759 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3948,7 +3951,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1785 + // line internal/php5/php5.y:1788 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3961,7 +3964,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1796 + // line internal/php5/php5.y:1799 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3975,7 +3978,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1808 + // line internal/php5/php5.y:1811 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3990,7 +3993,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1821 + // line internal/php5/php5.y:1824 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4006,13 +4009,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1839 + // line internal/php5/php5.y:1842 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1843 + // line internal/php5/php5.y:1846 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4026,7 +4029,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1855 + // line internal/php5/php5.y:1858 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4039,19 +4042,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1870 + // line internal/php5/php5.y:1873 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1874 + // line internal/php5/php5.y:1877 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1882 + // line internal/php5/php5.y:1885 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4062,7 +4065,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1891 + // line internal/php5/php5.y:1894 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4082,13 +4085,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1914 + // line internal/php5/php5.y:1917 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1918 + // line internal/php5/php5.y:1921 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4103,13 +4106,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1935 + // line internal/php5/php5.y:1938 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1939 + // line internal/php5/php5.y:1942 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4131,13 +4134,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1963 + // line internal/php5/php5.y:1966 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1967 + // line internal/php5/php5.y:1970 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4149,13 +4152,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1981 + // line internal/php5/php5.y:1984 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1985 + // line internal/php5/php5.y:1988 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4174,19 +4177,19 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2006 + // line internal/php5/php5.y:2009 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2010 + // line internal/php5/php5.y:2013 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2017 + // line internal/php5/php5.y:2020 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4194,7 +4197,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2023 + // line internal/php5/php5.y:2026 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4203,7 +4206,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2033 + // line internal/php5/php5.y:2036 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4237,7 +4240,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2065 + // line internal/php5/php5.y:2068 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4273,13 +4276,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2103 + // line internal/php5/php5.y:2106 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2107 + // line internal/php5/php5.y:2110 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4291,7 +4294,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2117 + // line internal/php5/php5.y:2120 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4303,13 +4306,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2127 + // line internal/php5/php5.y:2130 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2135 + // line internal/php5/php5.y:2138 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4321,7 +4324,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2145 + // line internal/php5/php5.y:2148 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4332,7 +4335,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2154 + // line internal/php5/php5.y:2157 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4352,7 +4355,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2176 + // line internal/php5/php5.y:2179 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4360,7 +4363,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2182 + // line internal/php5/php5.y:2185 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4369,7 +4372,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2192 + // line internal/php5/php5.y:2195 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4380,7 +4383,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2201 + // line internal/php5/php5.y:2204 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4391,7 +4394,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2210 + // line internal/php5/php5.y:2213 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4403,7 +4406,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2220 + // line internal/php5/php5.y:2223 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4415,7 +4418,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2233 + // line internal/php5/php5.y:2236 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4424,7 +4427,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2240 + // line internal/php5/php5.y:2243 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4432,7 +4435,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2250 + // line internal/php5/php5.y:2253 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4449,7 +4452,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2265 + // line internal/php5/php5.y:2268 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4461,7 +4464,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2275 + // line internal/php5/php5.y:2278 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4480,7 +4483,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2296 + // line internal/php5/php5.y:2299 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4505,7 +4508,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2319 + // line internal/php5/php5.y:2322 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4532,7 +4535,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2344 + // line internal/php5/php5.y:2347 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4558,7 +4561,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2368 + // line internal/php5/php5.y:2371 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4586,19 +4589,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2398 + // line internal/php5/php5.y:2401 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2402 + // line internal/php5/php5.y:2405 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2410 + // line internal/php5/php5.y:2413 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4612,7 +4615,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2422 + // line internal/php5/php5.y:2425 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4620,13 +4623,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2428 + // line internal/php5/php5.y:2431 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2432 + // line internal/php5/php5.y:2435 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4656,7 +4659,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2463 + // line internal/php5/php5.y:2466 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4670,7 +4673,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2481 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4678,7 +4681,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2484 + // line internal/php5/php5.y:2487 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4687,7 +4690,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2494 + // line internal/php5/php5.y:2497 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4698,7 +4701,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2503 + // line internal/php5/php5.y:2506 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4711,51 +4714,47 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2517 + // line internal/php5/php5.y:2520 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2521 + // line internal/php5/php5.y:2524 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2528 + // line internal/php5/php5.y:2531 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2532 + // line internal/php5/php5.y:2535 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2539 + // line internal/php5/php5.y:2542 { - yyVAL.node = yyDollar[1].node + yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2548 { - yyVAL.node = yyDollar[1].node + yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2558 + // line internal/php5/php5.y:2557 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4769,7 +4768,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2573 + // line internal/php5/php5.y:2572 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4777,7 +4776,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2579 + // line internal/php5/php5.y:2578 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4786,7 +4785,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2589 + // line internal/php5/php5.y:2588 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4803,13 +4802,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2604 + // line internal/php5/php5.y:2603 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2611 + // line internal/php5/php5.y:2610 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4828,7 +4827,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2631 + // line internal/php5/php5.y:2630 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4848,7 +4847,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2649 + // line internal/php5/php5.y:2648 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4861,19 +4860,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2663 + // line internal/php5/php5.y:2662 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2667 + // line internal/php5/php5.y:2666 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2674 + // line internal/php5/php5.y:2673 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4884,7 +4883,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2683 + // line internal/php5/php5.y:2682 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4897,13 +4896,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2697 + // line internal/php5/php5.y:2696 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2701 + // line internal/php5/php5.y:2700 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4917,31 +4916,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2716 + // line internal/php5/php5.y:2715 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2720 + // line internal/php5/php5.y:2719 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2726 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2731 + // line internal/php5/php5.y:2730 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2738 + // line internal/php5/php5.y:2737 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4953,7 +4952,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2748 + // line internal/php5/php5.y:2747 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4965,7 +4964,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2758 + // line internal/php5/php5.y:2757 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4977,7 +4976,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2768 + // line internal/php5/php5.y:2767 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4989,7 +4988,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2778 + // line internal/php5/php5.y:2777 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5001,7 +5000,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2788 + // line internal/php5/php5.y:2787 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5013,7 +5012,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2801 + // line internal/php5/php5.y:2800 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5040,7 +5039,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2826 + // line internal/php5/php5.y:2825 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5069,7 +5068,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2853 + // line internal/php5/php5.y:2852 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5096,7 +5095,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2878 + // line internal/php5/php5.y:2877 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5124,7 +5123,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2907 + // line internal/php5/php5.y:2906 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5150,7 +5149,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2931 + // line internal/php5/php5.y:2930 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5179,7 +5178,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2961 + // line internal/php5/php5.y:2960 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5188,7 +5187,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2967 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5196,46 +5195,48 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2978 + // line internal/php5/php5.y:2977 { - yyVAL.list = nil + yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2982 + // line internal/php5/php5.y:2981 { - yyVAL.list = yyDollar[1].list + yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2989 + // line internal/php5/php5.y:2988 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2996 + // line internal/php5/php5.y:2995 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3003 + // line internal/php5/php5.y:3004 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3007 + // line internal/php5/php5.y:3008 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3014 + // line internal/php5/php5.y:3015 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5251,7 +5252,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3029 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5267,37 +5268,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3045 + // line internal/php5/php5.y:3046 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3049 + // line internal/php5/php5.y:3050 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3053 + // line internal/php5/php5.y:3054 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3060 + // line internal/php5/php5.y:3061 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3064 + // line internal/php5/php5.y:3065 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3072 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5322,7 +5323,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3097 + // line internal/php5/php5.y:3098 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5344,7 +5345,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3117 + // line internal/php5/php5.y:3118 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5357,7 +5358,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3128 + // line internal/php5/php5.y:3129 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5371,7 +5372,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3141 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5408,7 +5409,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3175 + // line internal/php5/php5.y:3176 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5420,7 +5421,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3185 + // line internal/php5/php5.y:3186 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5433,7 +5434,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3196 + // line internal/php5/php5.y:3197 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5446,7 +5447,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3207 + // line internal/php5/php5.y:3208 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5459,7 +5460,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3218 + // line internal/php5/php5.y:3219 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5472,7 +5473,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3229 + // line internal/php5/php5.y:3230 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5485,7 +5486,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3240 + // line internal/php5/php5.y:3241 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5498,7 +5499,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3251 + // line internal/php5/php5.y:3252 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5511,7 +5512,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3262 + // line internal/php5/php5.y:3263 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5524,7 +5525,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3274 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5537,7 +5538,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3284 + // line internal/php5/php5.y:3285 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5550,7 +5551,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3295 + // line internal/php5/php5.y:3296 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5563,7 +5564,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3306 + // line internal/php5/php5.y:3307 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5576,7 +5577,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3317 + // line internal/php5/php5.y:3318 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5588,7 +5589,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3327 + // line internal/php5/php5.y:3328 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5600,7 +5601,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3337 + // line internal/php5/php5.y:3338 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5612,7 +5613,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3347 + // line internal/php5/php5.y:3348 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5624,7 +5625,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3357 + // line internal/php5/php5.y:3358 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5637,7 +5638,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3368 + // line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5650,7 +5651,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3379 + // line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5663,7 +5664,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3390 + // line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5676,7 +5677,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3401 + // line internal/php5/php5.y:3402 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5689,7 +5690,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3412 + // line internal/php5/php5.y:3413 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5702,7 +5703,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3423 + // line internal/php5/php5.y:3424 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5715,7 +5716,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3435 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5728,7 +5729,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3445 + // line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5741,7 +5742,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3456 + // line internal/php5/php5.y:3457 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5754,7 +5755,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3467 + // line internal/php5/php5.y:3468 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5767,7 +5768,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3478 + // line internal/php5/php5.y:3479 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5780,7 +5781,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3489 + // line internal/php5/php5.y:3490 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5793,7 +5794,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3500 + // line internal/php5/php5.y:3501 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5806,7 +5807,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3511 + // line internal/php5/php5.y:3512 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5819,7 +5820,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3522 + // line internal/php5/php5.y:3523 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5832,7 +5833,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3533 + // line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5845,7 +5846,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3544 + // line internal/php5/php5.y:3545 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5857,7 +5858,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3554 + // line internal/php5/php5.y:3555 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5869,7 +5870,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3564 + // line internal/php5/php5.y:3565 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5881,7 +5882,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3574 + // line internal/php5/php5.y:3575 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5893,7 +5894,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3584 + // line internal/php5/php5.y:3585 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5906,7 +5907,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3595 + // line internal/php5/php5.y:3596 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5919,7 +5920,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3606 + // line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5932,7 +5933,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3617 + // line internal/php5/php5.y:3618 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5946,7 +5947,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3629 + // line internal/php5/php5.y:3630 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5959,7 +5960,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3640 + // line internal/php5/php5.y:3641 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5972,7 +5973,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3651 + // line internal/php5/php5.y:3652 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5985,7 +5986,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3662 + // line internal/php5/php5.y:3663 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5998,7 +5999,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3673 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6011,19 +6012,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3684 + // line internal/php5/php5.y:3685 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3688 + // line internal/php5/php5.y:3689 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3693 { yyVAL.node = yyDollar[2].node @@ -6057,7 +6058,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3724 + // line internal/php5/php5.y:3725 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6072,7 +6073,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3738 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6086,13 +6087,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3749 + // line internal/php5/php5.y:3750 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3754 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6104,7 +6105,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3763 + // line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6116,7 +6117,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3773 + // line internal/php5/php5.y:3774 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6128,7 +6129,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3783 + // line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6140,7 +6141,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3793 + // line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6152,7 +6153,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3803 + // line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6164,7 +6165,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3813 + // line internal/php5/php5.y:3814 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6176,7 +6177,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3823 + // line internal/php5/php5.y:3824 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6195,7 +6196,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3840 + // line internal/php5/php5.y:3841 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6207,25 +6208,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3850 + // line internal/php5/php5.y:3851 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3854 + // line internal/php5/php5.y:3855 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3858 + // line internal/php5/php5.y:3859 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3862 + // line internal/php5/php5.y:3863 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6238,7 +6239,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3874 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6250,7 +6251,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3883 + // line internal/php5/php5.y:3884 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6261,7 +6262,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3892 + // line internal/php5/php5.y:3893 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6281,7 +6282,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3910 + // line internal/php5/php5.y:3911 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6302,7 +6303,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3932 + // line internal/php5/php5.y:3933 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6314,7 +6315,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3942 + // line internal/php5/php5.y:3943 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6326,7 +6327,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3952 + // line internal/php5/php5.y:3953 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6340,7 +6341,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3964 + // line internal/php5/php5.y:3965 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6354,7 +6355,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3979 + // line internal/php5/php5.y:3980 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6368,7 +6369,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3991 + // line internal/php5/php5.y:3992 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6382,7 +6383,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4003 + // line internal/php5/php5.y:4004 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6402,7 +6403,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4021 + // line internal/php5/php5.y:4022 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6416,7 +6417,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4036 + // line internal/php5/php5.y:4037 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6431,7 +6432,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4049 + // line internal/php5/php5.y:4050 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6445,19 +6446,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4064 + // line internal/php5/php5.y:4065 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4071 + // line internal/php5/php5.y:4072 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4075 + // line internal/php5/php5.y:4076 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6472,7 +6473,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4091 + // line internal/php5/php5.y:4092 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6494,7 +6495,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4111 + // line internal/php5/php5.y:4112 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6522,7 +6523,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4137 + // line internal/php5/php5.y:4138 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6543,7 +6544,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4156 + // line internal/php5/php5.y:4157 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6570,7 +6571,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4184 + // line internal/php5/php5.y:4185 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6590,7 +6591,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4202 + // line internal/php5/php5.y:4203 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6612,7 +6613,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4222 + // line internal/php5/php5.y:4223 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6633,7 +6634,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4241 + // line internal/php5/php5.y:4242 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6650,7 +6651,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4256 + // line internal/php5/php5.y:4257 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6667,7 +6668,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4271 + // line internal/php5/php5.y:4272 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6684,7 +6685,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4286 + // line internal/php5/php5.y:4287 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6701,7 +6702,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4301 + // line internal/php5/php5.y:4302 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6716,7 +6717,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4317 + // line internal/php5/php5.y:4318 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6728,7 +6729,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4327 + // line internal/php5/php5.y:4328 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6739,7 +6740,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4336 + // line internal/php5/php5.y:4337 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6752,7 +6753,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4347 + // line internal/php5/php5.y:4348 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6764,7 +6765,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4360 + // line internal/php5/php5.y:4361 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6775,7 +6776,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4369 + // line internal/php5/php5.y:4370 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6788,7 +6789,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4380 + // line internal/php5/php5.y:4381 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6800,19 +6801,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4393 + // line internal/php5/php5.y:4394 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4397 + // line internal/php5/php5.y:4398 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4404 + // line internal/php5/php5.y:4405 { yyVAL.node = yyDollar[1].node @@ -6853,40 +6854,39 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4443 + // line internal/php5/php5.y:4444 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4451 + // line internal/php5/php5.y:4452 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4455 + // line internal/php5/php5.y:4456 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4463 + // line internal/php5/php5.y:4464 { - yyVAL.list = yyDollar[2].list + yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token - // save comments - yylex.(*Parser).setFreeFloating(yyDollar[2].list[0], token.Var, yyDollar[1].token.SkippedTokens) + yyVAL.list = yyDollar[2].list } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4473 + // line internal/php5/php5.y:4473 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4477 + // line internal/php5/php5.y:4477 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6902,19 +6902,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4491 + // line internal/php5/php5.y:4491 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4498 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4502 + // line internal/php5/php5.y:4502 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6928,25 +6928,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4514 + // line internal/php5/php5.y:4514 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4521 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4525 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4532 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6958,7 +6958,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4542 + // line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6970,7 +6970,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4552 + // line internal/php5/php5.y:4552 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6982,7 +6982,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6994,7 +6994,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4572 + // line internal/php5/php5.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7006,7 +7006,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4582 + // line internal/php5/php5.y:4582 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7018,7 +7018,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4592 + // line internal/php5/php5.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7030,7 +7030,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4602 + // line internal/php5/php5.y:4602 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7042,7 +7042,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4612 + // line internal/php5/php5.y:4612 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7054,7 +7054,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4622 + // line internal/php5/php5.y:4622 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7066,7 +7066,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4632 + // line internal/php5/php5.y:4632 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7087,7 +7087,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4651 + // line internal/php5/php5.y:4651 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7099,7 +7099,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4664 + // line internal/php5/php5.y:4664 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7118,25 +7118,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4684 + // line internal/php5/php5.y:4684 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4691 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4695 + // line internal/php5/php5.y:4695 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4699 + // line internal/php5/php5.y:4699 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7152,7 +7152,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4713 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7170,7 +7170,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4729 + // line internal/php5/php5.y:4729 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7187,7 +7187,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4744 + // line internal/php5/php5.y:4744 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7202,7 +7202,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7216,13 +7216,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4769 + // line internal/php5/php5.y:4769 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4773 + // line internal/php5/php5.y:4773 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7234,13 +7234,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4783 + // line internal/php5/php5.y:4783 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4790 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7254,7 +7254,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4802 + // line internal/php5/php5.y:4802 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7267,7 +7267,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4813 + // line internal/php5/php5.y:4813 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7280,7 +7280,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4824 + // line internal/php5/php5.y:4824 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7293,7 +7293,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4835 + // line internal/php5/php5.y:4835 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7306,7 +7306,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4846 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7319,7 +7319,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4857 + // line internal/php5/php5.y:4857 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7332,7 +7332,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7344,7 +7344,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4878 + // line internal/php5/php5.y:4878 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7356,7 +7356,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4888 + // line internal/php5/php5.y:4888 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7369,7 +7369,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4899 + // line internal/php5/php5.y:4899 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7382,7 +7382,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4910 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7395,7 +7395,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4921 + // line internal/php5/php5.y:4921 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7408,7 +7408,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4932 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7421,7 +7421,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4943 + // line internal/php5/php5.y:4943 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7434,7 +7434,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4954 + // line internal/php5/php5.y:4954 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7447,7 +7447,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4965 + // line internal/php5/php5.y:4965 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7460,7 +7460,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4976 + // line internal/php5/php5.y:4976 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7473,7 +7473,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4987 + // line internal/php5/php5.y:4987 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7486,7 +7486,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4998 + // line internal/php5/php5.y:4998 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7499,7 +7499,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5009 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7512,7 +7512,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5020 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7525,7 +7525,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5031 + // line internal/php5/php5.y:5031 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7538,7 +7538,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5042 + // line internal/php5/php5.y:5042 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7552,7 +7552,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5054 + // line internal/php5/php5.y:5054 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7565,7 +7565,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5065 + // line internal/php5/php5.y:5065 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7578,7 +7578,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5076 + // line internal/php5/php5.y:5076 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7591,7 +7591,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5087 + // line internal/php5/php5.y:5087 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7604,7 +7604,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5098 + // line internal/php5/php5.y:5098 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7618,7 +7618,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5110 + // line internal/php5/php5.y:5110 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7633,7 +7633,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5123 + // line internal/php5/php5.y:5123 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7645,7 +7645,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5133 + // line internal/php5/php5.y:5133 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7657,7 +7657,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5143 + // line internal/php5/php5.y:5143 { yyVAL.node = yyDollar[2].node @@ -7667,13 +7667,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5154 + // line internal/php5/php5.y:5154 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5158 + // line internal/php5/php5.y:5158 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7689,7 +7689,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5172 + // line internal/php5/php5.y:5172 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7707,7 +7707,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5188 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7724,7 +7724,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5206 + // line internal/php5/php5.y:5206 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7741,25 +7741,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5221 + // line internal/php5/php5.y:5221 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5225 + // line internal/php5/php5.y:5225 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5229 + // line internal/php5/php5.y:5229 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5233 + // line internal/php5/php5.y:5233 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7772,7 +7772,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5244 + // line internal/php5/php5.y:5244 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7785,7 +7785,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5255 + // line internal/php5/php5.y:5255 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7797,13 +7797,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5268 + // line internal/php5/php5.y:5268 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5272 + // line internal/php5/php5.y:5272 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7814,19 +7814,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5284 + // line internal/php5/php5.y:5284 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5288 + // line internal/php5/php5.y:5288 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5295 + // line internal/php5/php5.y:5295 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7844,7 +7844,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5311 + // line internal/php5/php5.y:5311 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7860,7 +7860,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5325 + // line internal/php5/php5.y:5325 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7877,7 +7877,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5340 + // line internal/php5/php5.y:5340 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7892,19 +7892,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5356 + // line internal/php5/php5.y:5356 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5360 + // line internal/php5/php5.y:5360 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5367 + // line internal/php5/php5.y:5367 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7921,7 +7921,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5382 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7938,25 +7938,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5401 + // line internal/php5/php5.y:5401 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5409 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5416 + // line internal/php5/php5.y:5416 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5423 + // line internal/php5/php5.y:5423 { yyVAL.node = yyDollar[1].node @@ -8035,25 +8035,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5500 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5507 + // line internal/php5/php5.y:5507 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5511 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5519 + // line internal/php5/php5.y:5519 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8085,7 +8085,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5551 + // line internal/php5/php5.y:5551 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8101,7 +8101,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5565 + // line internal/php5/php5.y:5565 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8117,7 +8117,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5582 + // line internal/php5/php5.y:5582 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8131,31 +8131,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5597 + // line internal/php5/php5.y:5597 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5601 + // line internal/php5/php5.y:5601 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5605 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5612 + // line internal/php5/php5.y:5612 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5616 + // line internal/php5/php5.y:5616 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8167,7 +8167,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5629 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8180,7 +8180,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5640 + // line internal/php5/php5.y:5640 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8193,13 +8193,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5654 + // line internal/php5/php5.y:5654 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5661 + // line internal/php5/php5.y:5661 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8213,7 +8213,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5673 + // line internal/php5/php5.y:5673 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8227,31 +8227,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5688 + // line internal/php5/php5.y:5688 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5692 + // line internal/php5/php5.y:5692 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5696 + // line internal/php5/php5.y:5696 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5704 + // line internal/php5/php5.y:5704 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5708 + // line internal/php5/php5.y:5708 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8263,13 +8263,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5718 + // line internal/php5/php5.y:5718 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5725 + // line internal/php5/php5.y:5725 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8283,7 +8283,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5737 + // line internal/php5/php5.y:5737 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8297,13 +8297,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5749 + // line internal/php5/php5.y:5749 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5757 + // line internal/php5/php5.y:5757 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8320,7 +8320,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5772 + // line internal/php5/php5.y:5772 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8339,25 +8339,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5792 + // line internal/php5/php5.y:5792 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5796 + // line internal/php5/php5.y:5796 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5804 + // line internal/php5/php5.y:5804 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5808 + // line internal/php5/php5.y:5808 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8370,7 +8370,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5822 + // line internal/php5/php5.y:5822 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8386,7 +8386,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5836 + // line internal/php5/php5.y:5836 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8402,7 +8402,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5850 + // line internal/php5/php5.y:5850 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8415,7 +8415,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5864 + // line internal/php5/php5.y:5864 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8427,7 +8427,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5874 + // line internal/php5/php5.y:5874 { yyVAL.node = yyDollar[2].node @@ -8440,7 +8440,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5888 + // line internal/php5/php5.y:5888 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8453,7 +8453,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5899 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8464,7 +8464,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5911 + // line internal/php5/php5.y:5911 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8473,7 +8473,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5918 + // line internal/php5/php5.y:5918 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8481,7 +8481,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5928 + // line internal/php5/php5.y:5928 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8492,7 +8492,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5937 + // line internal/php5/php5.y:5937 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8519,19 +8519,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5962 + // line internal/php5/php5.y:5962 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5970 + // line internal/php5/php5.y:5970 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5974 + // line internal/php5/php5.y:5974 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8542,7 +8542,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5986 + // line internal/php5/php5.y:5986 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8560,7 +8560,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6002 + // line internal/php5/php5.y:6002 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8576,7 +8576,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6016 + // line internal/php5/php5.y:6016 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8593,7 +8593,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6031 + // line internal/php5/php5.y:6031 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8608,7 +8608,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6044 + // line internal/php5/php5.y:6044 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8632,7 +8632,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6066 + // line internal/php5/php5.y:6066 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8654,7 +8654,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6086 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8677,7 +8677,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6107 + // line internal/php5/php5.y:6107 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8698,13 +8698,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6129 + // line internal/php5/php5.y:6129 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6133 { yyVAL.list = append( yyDollar[1].list, @@ -8719,13 +8719,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6146 + // line internal/php5/php5.y:6146 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6150 + // line internal/php5/php5.y:6150 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8740,7 +8740,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6166 + // line internal/php5/php5.y:6166 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8757,7 +8757,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6181 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8782,7 +8782,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6204 + // line internal/php5/php5.y:6204 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8812,7 +8812,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6232 + // line internal/php5/php5.y:6232 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8830,7 +8830,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6248 + // line internal/php5/php5.y:6248 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8854,7 +8854,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6270 + // line internal/php5/php5.y:6270 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8886,7 +8886,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6300 + // line internal/php5/php5.y:6300 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8899,7 +8899,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6314 + // line internal/php5/php5.y:6314 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8911,7 +8911,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6324 + // line internal/php5/php5.y:6324 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8940,7 +8940,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6351 + // line internal/php5/php5.y:6351 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8957,7 +8957,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6369 + // line internal/php5/php5.y:6369 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8972,7 +8972,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6382 + // line internal/php5/php5.y:6382 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8986,7 +8986,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6394 + // line internal/php5/php5.y:6394 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9000,7 +9000,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6406 + // line internal/php5/php5.y:6406 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9012,7 +9012,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6416 + // line internal/php5/php5.y:6416 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9024,7 +9024,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6426 + // line internal/php5/php5.y:6426 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9038,7 +9038,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6438 + // line internal/php5/php5.y:6438 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9050,7 +9050,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6448 + // line internal/php5/php5.y:6448 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9062,7 +9062,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6461 + // line internal/php5/php5.y:6461 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9070,7 +9070,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6467 + // line internal/php5/php5.y:6467 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9079,19 +9079,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6477 + // line internal/php5/php5.y:6477 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6481 + // line internal/php5/php5.y:6481 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6488 + // line internal/php5/php5.y:6488 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9110,7 +9110,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6505 + // line internal/php5/php5.y:6505 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9129,7 +9129,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6525 + // line internal/php5/php5.y:6525 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9148,7 +9148,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6545 + // line internal/php5/php5.y:6545 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index e58d0cf..8c4c536 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -240,7 +240,7 @@ import ( %type switch_case_list non_empty_function_call_parameter_list assignment_list lexical_var_list %type method_body trait_reference_list static_array_pair_list non_empty_static_array_pair_list %type foreach_statement for_statement while_statement isset_variables -%type foreach_variable foreach_optional_arg +%type foreach_variable foreach_optional_arg for_expr non_empty_for_expr %type extends_from interface_list trait_list %type implements_list %type interface_extends_list @@ -248,8 +248,8 @@ import ( %type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations %type inner_statement_list encaps_list -%type elseif_list new_elseif_list non_empty_for_expr -%type for_expr case_list catch_statement additional_catches +%type elseif_list new_elseif_list +%type case_list catch_statement additional_catches %type non_empty_additional_catches class_statement_list %type class_statement_list variable_modifiers method_modifiers %type trait_adaptation_list non_empty_trait_adaptation_list @@ -938,11 +938,14 @@ unticked_statement: { $9.(*ast.StmtFor).ForTkn = $1 $9.(*ast.StmtFor).OpenParenthesisTkn = $2 - $9.(*ast.StmtFor).Init = $3 + $9.(*ast.StmtFor).Init = $3.(*ast.ParserSeparatedList).Items + $9.(*ast.StmtFor).InitSeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).InitSemiColonTkn = $4 - $9.(*ast.StmtFor).Cond = $5 + $9.(*ast.StmtFor).Cond = $5.(*ast.ParserSeparatedList).Items + $9.(*ast.StmtFor).CondSeparatorTkns = $5.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CondSemiColonTkn = $6 - $9.(*ast.StmtFor).Loop = $7 + $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items + $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 $9.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition($1, $9) @@ -2537,19 +2540,15 @@ non_empty_trait_adaptation_list: trait_adaptation_statement: trait_precedence ';' { - $$ = $1; + $1.(*ast.StmtTraitUsePrecedence).SemiColonTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = $1; } | trait_alias ';' { - $$ = $1; + $1.(*ast.StmtTraitUseAlias).SemiColonTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = $1; } ; @@ -2976,7 +2975,7 @@ echo_expr_list: for_expr: /* empty */ { - $$ = nil + $$ = &ast.ParserSeparatedList{} } | non_empty_for_expr { @@ -2987,14 +2986,16 @@ for_expr: non_empty_for_expr: non_empty_for_expr ',' expr { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | expr { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; @@ -4461,10 +4462,9 @@ dynamic_class_name_variable_properties: dynamic_class_name_variable_property: T_OBJECT_OPERATOR object_property { - $$ = $2 + $2[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = $1 - // save comments - yylex.(*Parser).setFreeFloating($2[0], token.Var, $1.SkippedTokens) + $$ = $2 } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 4eb3784..35f39c1 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -624,19 +624,19 @@ var yyAct = [...]int{ 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, - 780, 781, 856, 111, 744, 879, 328, 848, 841, 676, - 255, 533, 260, 261, 855, 796, 385, 371, 656, 852, - 934, 859, 136, 662, 845, 114, 227, 43, 42, 877, - 890, 891, 886, 528, 865, 16, 892, 893, 838, 885, - 539, 237, 15, 853, 830, 897, 898, 730, 151, 872, - 606, 271, 786, 896, 903, 49, 48, 905, 110, 217, - 218, 902, 50, 84, 886, 908, 82, 72, 904, 252, - 225, 885, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 62, 906, 269, 61, 918, - 235, 884, 238, 883, 882, 881, 742, 928, 926, 925, - 924, 108, 922, 586, 147, 929, 789, 144, 45, 734, - 930, 673, 919, 640, 920, 933, 203, 4, 937, 89, - 90, 70, 47, 94, 95, 36, 632, 107, 315, 27, + 780, 781, 856, 111, 744, 879, 841, 848, 676, 255, + 796, 533, 260, 261, 855, 385, 371, 656, 852, 934, + 662, 859, 136, 845, 227, 114, 43, 42, 528, 877, + 890, 891, 886, 865, 16, 838, 892, 893, 539, 885, + 15, 237, 830, 853, 151, 897, 898, 730, 606, 872, + 271, 49, 786, 896, 903, 48, 110, 905, 50, 217, + 218, 902, 84, 82, 886, 908, 72, 252, 904, 225, + 62, 885, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 269, 906, 61, 884, 918, + 235, 883, 238, 882, 881, 742, 147, 928, 926, 925, + 924, 108, 922, 586, 144, 929, 789, 45, 734, 673, + 930, 632, 919, 640, 920, 933, 203, 4, 937, 89, + 90, 70, 47, 94, 95, 36, 328, 107, 315, 27, 120, 302, 3, 112, 26, 18, 17, 441, 19, 768, 30, 707, 31, 0, 0, 20, 0, 0, 0, 21, 22, 35, 37, 106, 13, 23, 33, 0, 0, 34, @@ -1421,16 +1421,16 @@ var yyPact = [...]int{ var yyPgo = [...]int{ 0, 961, 959, 15, 7, 957, 4, 29, 14, 952, 11, 44, 79, 78, 52, 48, 951, 26, 950, 74, - 21, 83, 948, 0, 84, 3, 946, 931, 929, 42, - 196, 32, 19, 38, 928, 927, 73, 924, 62, 916, - 5, 915, 914, 913, 911, 9, 50, 908, 907, 100, - 88, 242, 905, 890, 34, 889, 887, 8, 886, 80, - 41, 883, 56, 49, 882, 878, 876, 875, 871, 86, - 870, 868, 864, 10, 862, 87, 860, 858, 855, 854, - 853, 848, 12, 847, 846, 46, 39, 40, 2, 16, - 667, 43, 85, 844, 843, 840, 13, 839, 838, 555, - 837, 45, 71, 836, 835, 6, 721, 20, 540, 830, - 18, 829, 828, 36, 826, 25, 33, 37, 825, 530, + 21, 83, 948, 36, 946, 0, 84, 3, 931, 929, + 928, 42, 196, 32, 19, 38, 927, 924, 73, 916, + 62, 915, 5, 914, 913, 911, 908, 9, 50, 907, + 905, 100, 88, 242, 890, 889, 34, 887, 886, 8, + 883, 80, 41, 882, 56, 49, 878, 876, 875, 871, + 870, 86, 868, 864, 862, 10, 860, 87, 858, 855, + 854, 853, 848, 847, 12, 846, 844, 46, 39, 40, + 2, 16, 667, 43, 85, 843, 840, 839, 13, 838, + 837, 555, 836, 45, 71, 835, 830, 6, 721, 20, + 540, 829, 18, 828, 826, 25, 33, 37, 825, 530, 99, 1, 17, 824, 817, 810, 809, 804, 28, } @@ -1443,48 +1443,48 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 120, - 120, 110, 110, 10, 10, 10, 9, 9, 9, 9, + 120, 112, 112, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 106, 106, 16, 16, 18, 18, 7, 7, 116, + 9, 108, 108, 16, 16, 18, 18, 7, 7, 116, 116, 115, 115, 119, 119, 17, 17, 20, 20, 19, - 19, 75, 75, 121, 121, 22, 22, 22, 22, 22, + 19, 77, 77, 121, 121, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 111, 111, 72, 72, - 28, 28, 100, 100, 29, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 90, 90, 14, 15, 101, 101, - 103, 103, 102, 102, 107, 107, 107, 107, 97, 97, - 96, 96, 27, 27, 94, 94, 94, 94, 117, 117, - 117, 8, 8, 98, 98, 81, 81, 74, 74, 83, - 83, 78, 78, 25, 25, 26, 26, 31, 31, 32, - 32, 89, 89, 87, 87, 87, 88, 88, 91, 91, - 76, 76, 33, 33, 35, 35, 36, 37, 37, 38, - 38, 122, 122, 39, 39, 39, 39, 73, 73, 93, - 93, 93, 118, 118, 40, 40, 41, 42, 42, 42, - 42, 44, 44, 43, 95, 95, 124, 124, 123, 123, - 125, 125, 105, 105, 105, 105, 105, 105, 77, 77, - 45, 45, 112, 112, 82, 21, 71, 71, 46, 113, - 113, 114, 114, 48, 47, 47, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 99, 99, 128, 3, 3, 104, 104, - 79, 79, 57, 57, 58, 58, 58, 58, 49, 49, - 50, 50, 55, 55, 109, 109, 109, 92, 92, 62, - 62, 62, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 63, 63, - 63, 23, 23, 24, 24, 61, 64, 64, 64, 65, - 65, 65, 66, 66, 66, 66, 66, 66, 30, 30, - 30, 51, 51, 51, 67, 67, 68, 68, 68, 68, - 68, 68, 59, 59, 59, 60, 60, 60, 54, 85, - 85, 53, 53, 84, 84, 84, 84, 84, 84, 84, - 108, 108, 108, 108, 69, 69, 69, 69, 69, 69, - 69, 70, 70, 70, 70, 52, 52, 52, 52, 52, - 52, 52, 80, 80, 86, + 11, 11, 11, 11, 11, 11, 113, 113, 74, 74, + 30, 30, 102, 102, 31, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 92, 92, 14, 15, 103, 103, + 105, 105, 104, 104, 109, 109, 109, 109, 99, 99, + 98, 98, 29, 29, 96, 96, 96, 96, 117, 117, + 117, 8, 8, 100, 100, 83, 83, 76, 76, 85, + 85, 80, 80, 27, 27, 28, 28, 33, 33, 34, + 34, 91, 91, 89, 89, 89, 90, 90, 93, 93, + 78, 78, 35, 35, 37, 37, 38, 39, 39, 40, + 40, 122, 122, 41, 41, 41, 41, 75, 75, 95, + 95, 95, 118, 118, 42, 42, 43, 44, 44, 44, + 44, 46, 46, 45, 97, 97, 124, 124, 123, 123, + 125, 125, 107, 107, 107, 107, 107, 107, 79, 79, + 47, 47, 114, 114, 84, 21, 73, 73, 48, 23, + 23, 24, 24, 50, 49, 49, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 101, 101, 128, 3, 3, 106, 106, + 81, 81, 59, 59, 60, 60, 60, 60, 51, 51, + 52, 52, 57, 57, 111, 111, 111, 94, 94, 64, + 64, 64, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 65, 65, + 65, 25, 25, 26, 26, 63, 66, 66, 66, 67, + 67, 67, 68, 68, 68, 68, 68, 68, 32, 32, + 32, 53, 53, 53, 69, 69, 70, 70, 70, 70, + 70, 70, 61, 61, 61, 62, 62, 62, 56, 87, + 87, 55, 55, 86, 86, 86, 86, 86, 86, 86, + 110, 110, 110, 110, 71, 71, 71, 71, 71, 71, + 71, 72, 72, 72, 72, 54, 54, 54, 54, 54, + 54, 54, 82, 82, 88, } var yyR2 = [...]int{ @@ -1542,49 +1542,49 @@ var yyR2 = [...]int{ var yyChk = [...]int{ -1000, -127, -120, -9, 2, -11, -12, -13, -14, -15, - 52, 80, 45, 39, 144, -74, -78, 21, 20, 23, - 30, 34, 35, 40, 47, 99, 19, 14, -23, 49, + 52, 80, 45, 39, 144, -76, -80, 21, 20, 23, + 30, 34, 35, 40, 47, 99, 19, 14, -25, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -81, -83, -30, -34, -90, 7, -66, -67, - -64, 60, 150, 93, 105, 106, 155, 154, 156, 157, - 148, -47, -52, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -56, 143, 97, 98, 107, -99, 100, 101, - -51, -63, -58, -49, -61, -62, 92, 50, 51, 4, + 54, 55, -83, -85, -32, -36, -92, 7, -68, -69, + -66, 60, 150, 93, 105, 106, 155, 154, 156, 157, + 148, -49, -54, 108, 109, 110, 111, 112, 113, 114, + 6, 158, -58, 143, 97, 98, 107, -101, 100, 101, + -53, -65, -60, -51, -63, -64, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -65, 61, 18, -110, 83, 148, 83, -110, 144, 10, - -18, -106, -119, -110, 83, 37, 39, -19, -20, -75, - -21, 10, -121, 148, -11, 37, 80, 148, 148, -24, - -23, 99, -24, -24, -35, -36, -51, -37, -99, -38, - 12, -71, -46, -23, 146, 131, 132, 88, 90, 89, + -67, 61, 18, -112, 83, 148, 83, -112, 144, 10, + -18, -108, -119, -112, 83, 37, 39, -19, -20, -77, + -21, 10, -121, 148, -11, 37, 80, 148, 148, -26, + -25, 99, -26, -26, -37, -38, -53, -39, -101, -40, + 12, -73, -48, -25, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, - 116, 91, 152, 115, 148, 148, 148, 144, -23, 10, - 147, -3, 153, 53, -90, 10, 10, 10, 94, 95, + 116, 91, 152, 115, 148, 148, 148, 144, -25, 10, + 147, -3, 153, 53, -92, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -54, -53, -85, -84, -23, 153, - 84, 60, -23, -30, -63, 148, -62, 99, 150, -30, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -55, 148, -23, -109, 17, -108, -69, 12, - 77, 78, -23, -23, -23, 150, 79, 79, -50, -48, - -49, -68, 53, -10, -51, 148, 148, -23, -23, 148, - -23, -23, 17, 76, -108, -108, 17, -3, 144, -51, - -91, 148, -91, 148, 83, -110, 149, -110, 146, 144, - -120, 146, -16, -119, -110, 83, 146, 160, 83, 29, - -110, -20, 146, 160, 162, -22, 145, 2, -11, -12, - -13, -14, -15, 52, -23, 21, -3, -113, -114, -23, - -23, 146, 146, 146, 146, 160, 146, 160, 162, 146, - 160, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -50, -23, 147, - -23, -100, -29, -30, -23, -75, -121, 146, 146, 10, - -128, 10, -101, 56, -128, -103, 56, 148, -11, 148, - 146, 147, -23, 153, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -24, -23, - -60, 10, 144, -51, -54, 151, 160, 59, -30, -23, - 148, -23, -54, 149, -24, 143, -69, -69, 17, 150, - 58, -23, 11, -30, 59, -24, -59, -6, -51, 144, + 150, 144, 58, 148, -56, -55, -87, -86, -25, 153, + 84, 60, -25, -32, -65, 148, -64, 99, 150, -32, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -57, 148, -25, -111, 17, -110, -71, 12, + 77, 78, -25, -25, -25, 150, 79, 79, -52, -50, + -51, -70, 53, -10, -53, 148, 148, -25, -25, 148, + -25, -25, 17, 76, -110, -110, 17, -3, 144, -53, + -93, 148, -93, 148, 83, -112, 149, -112, 146, 144, + -120, 146, -16, -119, -112, 83, 146, 160, 83, 29, + -112, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -13, -14, -15, 52, -25, 21, -3, -23, -24, -25, + -25, 146, 146, 146, 146, 160, 146, 160, 162, 146, + 160, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -52, -25, 147, + -25, -102, -31, -32, -25, -77, -121, 146, 146, 10, + -128, 10, -103, 56, -128, -105, 56, 148, -11, 148, + 146, 147, -25, 153, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -26, -25, + -62, 10, 144, -53, -56, 151, 160, 59, -32, -25, + 148, -25, -56, 149, -26, 143, -71, -71, 17, 150, + 58, -25, 11, -32, 59, -26, -61, -6, -53, 144, 10, -5, -4, 99, 100, 101, 102, 103, 104, 4, 5, 85, 86, 87, 88, 89, 90, 91, 92, 93, 6, 7, 94, 95, 96, 19, 20, 21, 22, 23, @@ -1592,49 +1592,49 @@ var yyChk = [...]int{ 45, 46, 47, 48, 49, 50, 51, 35, 36, 37, 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, - 66, 65, 67, 68, 82, 81, 38, -59, -6, -51, - -92, -91, 79, 150, 144, 58, 79, -92, -80, -86, - -23, -23, -23, 76, 76, 142, 148, -23, 149, -76, - -33, -23, 84, -54, 10, 146, -120, 145, 146, 146, - 83, -110, -19, 83, -110, 144, 10, 83, -21, -23, - 148, 149, 148, 146, 160, 149, -36, -38, -23, -46, - 147, -23, -7, 160, 29, 149, 145, -128, 148, -101, - -102, 57, -10, 144, -128, -73, -10, -23, -23, -121, - -23, 149, 151, 145, -91, -23, 149, 162, -85, -23, - 153, 60, -54, 149, 151, 149, -70, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -23, 151, -91, -23, - -91, -51, -24, -23, -60, -51, -101, -7, 160, 149, - 149, -25, -26, -31, -32, -89, -87, 152, 61, 62, - -10, 145, -7, 160, -23, 149, 145, 144, 83, -116, - -17, -20, -106, 144, -128, 149, -98, -11, 147, -23, - -113, -23, -94, 144, 147, -23, 149, -29, -107, -30, - 153, 60, 150, -27, -11, 147, -111, 148, -25, -102, - -128, -73, -122, 144, 160, 149, 149, 96, -11, 147, - 145, 162, -23, -30, 148, 149, 151, 13, -23, 145, - 151, 145, -102, 149, -86, 149, 160, -1, 153, -87, - 149, -33, -115, -20, 144, -7, 160, -20, -116, 146, + 66, 65, 67, 68, 82, 81, 38, -61, -6, -53, + -94, -93, 79, 150, 144, 58, 79, -94, -82, -88, + -25, -25, -25, 76, 76, 142, 148, -25, 149, -78, + -35, -25, 84, -56, 10, 146, -120, 145, 146, 146, + 83, -112, -19, 83, -112, 144, 10, 83, -21, -25, + 148, 149, 148, 146, 160, 149, -38, -40, -25, -48, + 147, -25, -7, 160, 29, 149, 145, -128, 148, -103, + -104, 57, -10, 144, -128, -75, -10, -25, -25, -121, + -25, 149, 151, 145, -93, -25, 149, 162, -87, -25, + 153, 60, -56, 149, 151, 149, -72, 10, 13, 154, + 12, 10, 145, 145, 150, 145, -25, 151, -93, -25, + -93, -53, -26, -25, -62, -53, -103, -7, 160, 149, + 149, -27, -28, -33, -34, -91, -89, 152, 61, 62, + -10, 145, -7, 160, -25, 149, 145, 144, 83, -116, + -17, -20, -108, 144, -128, 149, -100, -11, 147, -25, + -23, -25, -96, 144, 147, -25, 149, -31, -109, -32, + 153, 60, 150, -29, -11, 147, -113, 148, -27, -104, + -128, -75, -122, 144, 160, 149, 149, 96, -11, 147, + 145, 162, -25, -32, 148, 149, 151, 13, -25, 145, + 151, 145, -104, 149, -88, 149, 160, -1, 153, -89, + 149, -35, -115, -20, 144, -7, 160, -20, -116, 146, -121, 149, 146, -117, 146, -117, 146, 146, 149, 59, - -30, 148, -54, -121, -28, 42, 43, -25, 149, -128, - 144, 145, -39, -124, -123, 45, -125, 48, -105, 104, + -32, 148, -56, -121, -30, 42, 43, -27, 149, -128, + 144, 145, -41, -124, -123, 45, -125, 48, -107, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -121, -23, -54, 151, -128, -88, 147, -31, -2, 84, - -7, 160, -115, 145, -17, -7, 22, 146, -113, 145, - 32, 33, -117, 31, -117, -96, -11, 147, -107, -30, - -54, 151, 28, 148, 144, 149, -104, 45, 144, -122, - -32, 39, 37, -73, -105, 145, -121, 149, 145, 144, - -128, -89, 12, 145, -20, -7, 145, 146, 149, -23, + -121, -25, -56, 151, -128, -90, 147, -33, -2, 84, + -7, 160, -115, 145, -17, -7, 22, 146, -23, 145, + 32, 33, -117, 31, -117, -98, -11, 147, -109, -32, + -56, 151, 28, 148, 144, 149, -106, 45, 144, -122, + -34, 39, 37, -75, -107, 145, -121, 149, 145, 144, + -128, -91, 12, 145, -20, -7, 145, 146, 149, -25, -8, 147, 146, 145, 146, 31, -121, 149, 149, 146, - -72, -10, -121, -88, -88, 148, -122, 145, -77, -45, - 12, -112, -82, -6, -3, -93, 146, 144, -122, 59, - 162, 145, -97, -11, 147, -8, -121, 146, 26, -96, - 12, 161, 145, 144, 144, -79, -57, 12, 153, 145, + -74, -10, -121, -90, -90, 148, -122, 145, -79, -47, + 12, -114, -84, -6, -3, -95, 146, 144, -122, 59, + 162, 145, -99, -11, 147, -8, -121, 146, 26, -98, + 12, 161, 145, 144, 144, -81, -59, 12, 153, 145, 146, 160, -128, 162, 146, 160, 162, -6, 145, -118, - -40, -41, -42, -43, -44, -10, -6, 80, 10, 145, - -23, -23, -121, -121, 146, 149, -10, -121, -121, 149, - 160, 12, -45, -23, -82, -23, -128, 145, -40, 146, - 146, 46, 29, 79, 24, 144, 145, 145, -57, -128, - -128, 148, -73, 10, -4, -105, -6, 146, -121, -25, - -6, 145, 149, -88, -95, 146, 144, -121, 145, + -42, -43, -44, -45, -46, -10, -6, 80, 10, 145, + -25, -25, -121, -121, 146, 149, -10, -121, -121, 149, + 160, 12, -47, -25, -84, -25, -128, 145, -42, 146, + 146, 46, 29, 79, 24, 144, 145, 145, -59, -128, + -128, 148, -75, 10, -4, -107, -6, 146, -121, -27, + -6, 145, 149, -90, -97, 146, 144, -121, 145, } var yyDef = [...]int{ @@ -2110,7 +2110,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:290 + // line internal/php7/php7.y:289 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2122,469 +2122,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:303 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:321 + // line internal/php7/php7.y:320 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:325 + // line internal/php7/php7.y:324 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:332 + // line internal/php7/php7.y:331 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -2597,13 +2597,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:343 + // line internal/php7/php7.y:342 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:350 + // line internal/php7/php7.y:349 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2617,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:362 + // line internal/php7/php7.y:361 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2630,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:376 + // line internal/php7/php7.y:375 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2641,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:385 + // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:396 + // line internal/php7/php7.y:395 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2666,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:409 + // line internal/php7/php7.y:408 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:414 + // line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:418 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:422 + // line internal/php7/php7.y:421 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:426 + // line internal/php7/php7.y:425 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:430 + // line internal/php7/php7.y:429 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:434 + // line internal/php7/php7.y:433 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2717,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:446 + // line internal/php7/php7.y:445 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2735,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:462 + // line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2755,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:480 + // line internal/php7/php7.y:479 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2769,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:492 + // line internal/php7/php7.y:491 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2781,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:502 + // line internal/php7/php7.y:501 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2794,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:513 + // line internal/php7/php7.y:512 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2807,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:524 + // line internal/php7/php7.y:523 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2821,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:536 + // line internal/php7/php7.y:535 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2835,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:551 + // line internal/php7/php7.y:550 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2847,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:561 + // line internal/php7/php7.y:560 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2859,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:574 + // line internal/php7/php7.y:573 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2883,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:596 + // line internal/php7/php7.y:595 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2906,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:620 + // line internal/php7/php7.y:619 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2928,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:640 + // line internal/php7/php7.y:639 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2951,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:664 + // line internal/php7/php7.y:663 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:668 + // line internal/php7/php7.y:667 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:675 + // line internal/php7/php7.y:674 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2971,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:681 + // line internal/php7/php7.y:680 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:688 + // line internal/php7/php7.y:687 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2985,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:694 + // line internal/php7/php7.y:693 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:701 + // line internal/php7/php7.y:700 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2999,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:707 + // line internal/php7/php7.y:706 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:714 + // line internal/php7/php7.y:713 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:718 + // line internal/php7/php7.y:717 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3021,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:729 + // line internal/php7/php7.y:728 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3037,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:743 + // line internal/php7/php7.y:742 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3061,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:768 + // line internal/php7/php7.y:767 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:772 + // line internal/php7/php7.y:771 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3077,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:783 + // line internal/php7/php7.y:782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3086,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:790 + // line internal/php7/php7.y:789 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,7 +3094,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:799 + // line internal/php7/php7.y:798 { if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { prevNode := lastNode(yyDollar[1].list) @@ -3107,50 +3107,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:810 + // line internal/php7/php7.y:809 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:817 + // line internal/php7/php7.y:816 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:822 + // line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:826 + // line internal/php7/php7.y:825 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:830 + // line internal/php7/php7.y:829 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:834 + // line internal/php7/php7.y:833 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:838 + // line internal/php7/php7.y:837 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:842 + // line internal/php7/php7.y:841 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3164,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:856 + // line internal/php7/php7.y:855 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3177,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:867 + // line internal/php7/php7.y:866 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:871 + // line internal/php7/php7.y:870 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:875 + // line internal/php7/php7.y:874 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3201,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:885 + // line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,15 +3218,18 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:900 + // line internal/php7/php7.y:899 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token - yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].list + yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].node.(*ast.ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).InitSeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).InitSemiColonTkn = yyDollar[4].token - yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].list + yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].node.(*ast.ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).CondSeparatorTkns = yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CondSemiColonTkn = yyDollar[6].token - yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].list + yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token yyDollar[9].node.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) @@ -3234,7 +3237,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:914 + // line internal/php7/php7.y:916 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3246,7 +3249,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:924 + // line internal/php7/php7.y:926 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3259,7 +3262,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:935 + // line internal/php7/php7.y:937 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3272,7 +3275,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:946 + // line internal/php7/php7.y:948 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3285,7 +3288,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:957 + // line internal/php7/php7.y:959 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3295,7 +3298,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:965 + // line internal/php7/php7.y:967 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3305,7 +3308,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:973 + // line internal/php7/php7.y:975 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3318,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:981 + // line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3327,7 +3330,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:991 + // line internal/php7/php7.y:993 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3339,7 +3342,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1001 + // line internal/php7/php7.y:1003 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3352,7 +3355,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1012 + // line internal/php7/php7.y:1014 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3366,7 +3369,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1024 + // line internal/php7/php7.y:1026 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3382,7 +3385,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1038 + // line internal/php7/php7.y:1040 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3395,7 +3398,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1049 + // line internal/php7/php7.y:1051 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3406,7 +3409,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1058 + // line internal/php7/php7.y:1060 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3425,7 +3428,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1075 + // line internal/php7/php7.y:1077 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3438,7 +3441,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1086 + // line internal/php7/php7.y:1088 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3457,7 +3460,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1103 + // line internal/php7/php7.y:1105 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3475,13 +3478,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1121 + // line internal/php7/php7.y:1123 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1127 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3508,7 +3511,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1152 + // line internal/php7/php7.y:1154 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3516,7 +3519,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1158 + // line internal/php7/php7.y:1160 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3525,13 +3528,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1168 + // line internal/php7/php7.y:1170 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1172 + // line internal/php7/php7.y:1174 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3545,7 +3548,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1187 + // line internal/php7/php7.y:1189 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3553,7 +3556,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1193 + // line internal/php7/php7.y:1195 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3562,13 +3565,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1203 + // line internal/php7/php7.y:1205 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1210 + // line internal/php7/php7.y:1212 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3596,31 +3599,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1239 + // line internal/php7/php7.y:1241 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1243 + // line internal/php7/php7.y:1245 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1250 + // line internal/php7/php7.y:1252 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1254 + // line internal/php7/php7.y:1256 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1261 + // line internal/php7/php7.y:1263 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3644,7 +3647,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1283 + // line internal/php7/php7.y:1285 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3667,19 +3670,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1307 + // line internal/php7/php7.y:1309 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1311 + // line internal/php7/php7.y:1313 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1318 + // line internal/php7/php7.y:1320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3691,7 +3694,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1328 + // line internal/php7/php7.y:1330 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3703,7 +3706,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1341 + // line internal/php7/php7.y:1343 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3724,7 +3727,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1363 + // line internal/php7/php7.y:1365 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3746,13 +3749,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1386 + // line internal/php7/php7.y:1388 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1390 + // line internal/php7/php7.y:1392 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3764,13 +3767,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1403 + // line internal/php7/php7.y:1405 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1407 + // line internal/php7/php7.y:1409 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3783,13 +3786,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1421 + // line internal/php7/php7.y:1423 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1425 + // line internal/php7/php7.y:1427 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3802,13 +3805,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1439 + // line internal/php7/php7.y:1441 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1443 + // line internal/php7/php7.y:1445 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3820,7 +3823,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1453 + // line internal/php7/php7.y:1455 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3835,7 +3838,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1466 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3849,7 +3852,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1481 + // line internal/php7/php7.y:1483 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3860,7 +3863,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1490 + // line internal/php7/php7.y:1492 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3880,7 +3883,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1511 + // line internal/php7/php7.y:1513 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3891,7 +3894,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1520 + // line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3911,7 +3914,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1541 + // line internal/php7/php7.y:1543 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3922,7 +3925,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1550 + // line internal/php7/php7.y:1552 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3942,7 +3945,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1571 + // line internal/php7/php7.y:1573 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3955,7 +3958,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1582 + // line internal/php7/php7.y:1584 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3969,7 +3972,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1594 + // line internal/php7/php7.y:1596 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3984,7 +3987,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1607 + // line internal/php7/php7.y:1609 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4000,13 +4003,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1626 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1628 + // line internal/php7/php7.y:1630 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4020,7 +4023,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1640 + // line internal/php7/php7.y:1642 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4033,19 +4036,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1654 + // line internal/php7/php7.y:1656 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1658 + // line internal/php7/php7.y:1660 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1665 + // line internal/php7/php7.y:1667 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4056,7 +4059,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1674 + // line internal/php7/php7.y:1676 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4076,7 +4079,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1695 + // line internal/php7/php7.y:1697 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4091,7 +4094,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1708 + // line internal/php7/php7.y:1710 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4110,13 +4113,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1728 + // line internal/php7/php7.y:1730 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1732 + // line internal/php7/php7.y:1734 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4132,7 +4135,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1749 + // line internal/php7/php7.y:1751 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4154,7 +4157,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1769 + // line internal/php7/php7.y:1771 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4178,7 +4181,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1794 + // line internal/php7/php7.y:1796 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4188,7 +4191,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1802 + // line internal/php7/php7.y:1804 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4212,19 +4215,19 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1827 + // line internal/php7/php7.y:1829 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1831 + // line internal/php7/php7.y:1833 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1838 + // line internal/php7/php7.y:1840 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4232,7 +4235,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1846 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4241,7 +4244,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1854 + // line internal/php7/php7.y:1856 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4275,7 +4278,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1886 + // line internal/php7/php7.y:1888 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4311,25 +4314,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1923 + // line internal/php7/php7.y:1925 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1927 + // line internal/php7/php7.y:1929 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1934 + // line internal/php7/php7.y:1936 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1938 + // line internal/php7/php7.y:1940 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4341,7 +4344,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1951 + // line internal/php7/php7.y:1953 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4353,7 +4356,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1961 + // line internal/php7/php7.y:1963 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4365,19 +4368,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1971 + // line internal/php7/php7.y:1973 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1980 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1982 + // line internal/php7/php7.y:1984 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4386,7 +4389,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1992 + // line internal/php7/php7.y:1994 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4398,7 +4401,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2002 + // line internal/php7/php7.y:2004 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4410,7 +4413,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2015 + // line internal/php7/php7.y:2017 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4418,7 +4421,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2021 + // line internal/php7/php7.y:2023 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4427,7 +4430,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2031 + // line internal/php7/php7.y:2033 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4438,7 +4441,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2040 + // line internal/php7/php7.y:2042 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4450,7 +4453,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2055 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4459,7 +4462,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2060 + // line internal/php7/php7.y:2062 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4467,13 +4470,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2069 + // line internal/php7/php7.y:2071 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2076 + // line internal/php7/php7.y:2078 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4482,7 +4485,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2083 + // line internal/php7/php7.y:2085 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4490,7 +4493,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2092 + // line internal/php7/php7.y:2094 { yyVAL.node = &ast.StmtStaticVar{ @@ -4513,7 +4516,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2113 + // line internal/php7/php7.y:2115 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4537,19 +4540,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2138 + // line internal/php7/php7.y:2140 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2142 + // line internal/php7/php7.y:2144 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2149 + // line internal/php7/php7.y:2151 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4564,7 +4567,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2162 + // line internal/php7/php7.y:2164 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4578,7 +4581,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2174 + // line internal/php7/php7.y:2176 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4592,7 +4595,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2186 + // line internal/php7/php7.y:2188 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4624,7 +4627,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2219 + // line internal/php7/php7.y:2221 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4632,7 +4635,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2225 + // line internal/php7/php7.y:2227 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4641,7 +4644,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2235 + // line internal/php7/php7.y:2237 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4652,7 +4655,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2244 + // line internal/php7/php7.y:2246 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4664,7 +4667,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2254 + // line internal/php7/php7.y:2256 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4677,39 +4680,35 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2268 + // line internal/php7/php7.y:2270 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2274 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2279 + // line internal/php7/php7.y:2281 { - yyVAL.node = yyDollar[1].node + yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.NameList, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 255: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:2287 { - yyVAL.node = yyDollar[1].node + yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Alias, yyDollar[2].token.SkippedTokens) - yylex.(*Parser).setToken(yyVAL.node, token.SemiColon, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2298 + // line internal/php7/php7.y:2296 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4723,7 +4722,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2313 + // line internal/php7/php7.y:2311 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4742,7 +4741,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2330 + // line internal/php7/php7.y:2328 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4761,7 +4760,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2347 + // line internal/php7/php7.y:2345 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4781,7 +4780,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2365 + // line internal/php7/php7.y:2363 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4794,7 +4793,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2379 + // line internal/php7/php7.y:2377 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4811,13 +4810,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2394 + // line internal/php7/php7.y:2392 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2401 + // line internal/php7/php7.y:2399 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4836,7 +4835,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2421 + // line internal/php7/php7.y:2419 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4847,7 +4846,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2430 + // line internal/php7/php7.y:2428 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4860,13 +4859,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2442 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2448 + // line internal/php7/php7.y:2446 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4880,31 +4879,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2463 + // line internal/php7/php7.y:2461 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2467 + // line internal/php7/php7.y:2465 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2474 + // line internal/php7/php7.y:2472 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2478 + // line internal/php7/php7.y:2476 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2485 + // line internal/php7/php7.y:2483 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4916,7 +4915,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2495 + // line internal/php7/php7.y:2493 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4928,7 +4927,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2505 + // line internal/php7/php7.y:2503 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4940,7 +4939,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2515 + // line internal/php7/php7.y:2513 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4952,7 +4951,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2525 + // line internal/php7/php7.y:2523 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4964,7 +4963,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2535 + // line internal/php7/php7.y:2533 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4975,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2548 + // line internal/php7/php7.y:2546 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4985,7 +4984,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2555 + // line internal/php7/php7.y:2553 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4993,7 +4992,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2564 + // line internal/php7/php7.y:2562 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5016,7 +5015,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2583 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5040,7 +5039,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2610 + // line internal/php7/php7.y:2608 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5048,13 +5047,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2616 + // line internal/php7/php7.y:2614 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2623 + // line internal/php7/php7.y:2621 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5075,7 +5074,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2645 + // line internal/php7/php7.y:2643 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5096,7 +5095,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2667 + // line internal/php7/php7.y:2665 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5105,7 +5104,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2674 + // line internal/php7/php7.y:2672 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5113,36 +5112,38 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2683 + // line internal/php7/php7.y:2681 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2690 + // line internal/php7/php7.y:2688 { - yyVAL.list = nil + yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2694 + // line internal/php7/php7.y:2692 { - yyVAL.list = yyDollar[1].list + yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2701 + // line internal/php7/php7.y:2699 { - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - // save comments - yylex.(*Parser).setFreeFloating(lastNode(yyDollar[1].list), token.End, yyDollar[2].token.SkippedTokens) + yyVAL.node = yyDollar[1].node } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2708 + // line internal/php7/php7.y:2706 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 293: yyDollar = yyS[yypt-8 : yypt+1] diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 8248833..845fa18 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -234,7 +234,7 @@ import ( %type interface_declaration_statement %type group_use_declaration inline_use_declaration %type mixed_group_use_declaration use_declaration unprefixed_use_declaration -%type const_decl inner_statement +%type const_decl inner_statement for_exprs non_empty_for_exprs %type expr optional_expr parameter_list non_empty_parameter_list %type declare_statement finally_statement unset_variable variable %type parameter optional_type argument expr_without_variable global_var_list global_var @@ -272,7 +272,6 @@ import ( %type encaps_list backticks_expr namespace_name catch_list class_const_list -%type for_exprs non_empty_for_exprs %type unprefixed_use_declarations inline_use_declarations %type case_list trait_adaptation_list %type use_declarations @@ -900,11 +899,14 @@ statement: { $9.(*ast.StmtFor).ForTkn = $1 $9.(*ast.StmtFor).OpenParenthesisTkn = $2 - $9.(*ast.StmtFor).Init = $3 + $9.(*ast.StmtFor).Init = $3.(*ast.ParserSeparatedList).Items + $9.(*ast.StmtFor).InitSeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).InitSemiColonTkn = $4 - $9.(*ast.StmtFor).Cond = $5 + $9.(*ast.StmtFor).Cond = $5.(*ast.ParserSeparatedList).Items + $9.(*ast.StmtFor).CondSeparatorTkns = $5.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CondSemiColonTkn = $6 - $9.(*ast.StmtFor).Loop = $7 + $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items + $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 $9.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition($1, $9) @@ -2277,19 +2279,15 @@ trait_adaptation_list: trait_adaptation: trait_precedence ';' { - $$ = $1; + $1.(*ast.StmtTraitUsePrecedence).SemiColonTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating($$, token.NameList, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = $1; } | trait_alias ';' { - $$ = $1; + $1.(*ast.StmtTraitUseAlias).SemiColonTkn = $2 - // save comments - yylex.(*Parser).setFreeFloating($$, token.Alias, $2.SkippedTokens) - yylex.(*Parser).setToken($$, token.SemiColon, $2.SkippedTokens) + $$ = $1; } ; @@ -2688,7 +2686,7 @@ echo_expr: for_exprs: /* empty */ { - $$ = nil; + $$ = &ast.ParserSeparatedList{} } | non_empty_for_exprs { @@ -2699,14 +2697,16 @@ for_exprs: non_empty_for_exprs: non_empty_for_exprs ',' expr { - $$ = append($1, $3) + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - // save comments - yylex.(*Parser).setFreeFloating(lastNode($1), token.End, $2.SkippedTokens) + $$ = $1 } | expr { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index c231894..5a71e3d 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -438,10 +438,13 @@ type StmtFor struct { ForTkn *token.Token OpenParenthesisTkn *token.Token Init []Vertex + InitSeparatorTkns []*token.Token InitSemiColonTkn *token.Token Cond []Vertex + CondSeparatorTkns []*token.Token CondSemiColonTkn *token.Token Loop []Vertex + LoopSeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ColonTkn *token.Token Stmt Vertex @@ -792,10 +795,11 @@ func (n *StmtTraitUse) Accept(v NodeVisitor) { // StmtTraitUseAlias node type StmtTraitUseAlias struct { Node - Ref Vertex - AsTkn *token.Token - Modifier Vertex - Alias Vertex + Ref Vertex + AsTkn *token.Token + Modifier Vertex + Alias Vertex + SemiColonTkn *token.Token } func (n *StmtTraitUseAlias) Accept(v NodeVisitor) { @@ -809,6 +813,7 @@ type StmtTraitUsePrecedence struct { InsteadofTkn *token.Token Insteadof []Vertex SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { From af968a7c3b92885a537eda6d952d6cb2f035e9e4 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 12:58:56 +0200 Subject: [PATCH 098/140] [refactoring] update "ParserBrackets" nodes --- internal/php5/php5.y | 57 +++++++++++++++++++------------------------- internal/php7/php7.y | 42 +++++++++++++------------------- 2 files changed, 41 insertions(+), 58 deletions(-) diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 8c4c536..48045f0 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3691,11 +3691,14 @@ expr_without_variable: } | '(' new_expr ')' instance_call { - $$ = $2 - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } for _, n := range($4) { switch nn := n.(type) { @@ -4405,8 +4408,7 @@ dynamic_class_name_reference: { $$ = $1 - // save comments - yylex.(*Parser).setFreeFloating($3[0], token.Var, $2.SkippedTokens) + $3[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = $2 for _, n := range($3) { switch nn := n.(type) { @@ -4482,10 +4484,6 @@ exit_expr: OpenBracketTkn: $1, CloseBracketTkn: $2, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $2.SkippedTokens) } | parenthesis_expr { @@ -5141,11 +5139,14 @@ static_operation: } | '(' static_scalar_value ')' { - $$ = $2 - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } } ; @@ -5373,10 +5374,6 @@ parenthesis_expr: Child: $2, CloseBracketTkn: $3, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | '(' yield_expr ')' { @@ -5388,10 +5385,6 @@ parenthesis_expr: Child: $2, CloseBracketTkn: $3, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } ; @@ -5872,14 +5865,14 @@ variable_name: } | '{' expr '}' { - $$ = $2 - - // save position - $$.GetNode().Position = position.NewTokensPosition($1, $3) - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } } ; diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 845fa18..338a084 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3371,10 +3371,6 @@ expr_without_variable: Child: $2, CloseBracketTkn: $3, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | new_expr { @@ -3835,10 +3831,6 @@ exit_expr: Child: $2, CloseBracketTkn: $3, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } ; @@ -4166,10 +4158,6 @@ dereferencable: Child: $2, CloseBracketTkn: $3, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | dereferencable_scalar { @@ -4192,10 +4180,6 @@ callable_expr: Child: $2, CloseBracketTkn: $3, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, $1.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, $3.SkippedTokens) } | dereferencable_scalar { @@ -4434,11 +4418,14 @@ member_name: } | '{' expr '}' { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } } | simple_variable { @@ -4459,11 +4446,14 @@ property_name: } | '{' expr '}' { - $$ = $2; - - // save comments - yylex.(*Parser).setFreeFloatingTokens($$, token.Start, append($1.SkippedTokens, $$.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens($$, token.End, append($$.GetNode().Tokens[token.End], $3.SkippedTokens...)) + $$ = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition($1, $3), + }, + OpenBracketTkn: $1, + Child: $2, + CloseBracketTkn: $3, + } } | simple_variable { From 94897d8c6682ad30f43eb09db680b73ab0526bf5 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 13:10:12 +0200 Subject: [PATCH 099/140] [refactoring] remove *FreeFloating* functions --- internal/php5/parser.go | 109 ---- internal/php5/php5.go | 1129 +++++++++++++++++++-------------------- internal/php5/php5.y | 34 -- internal/php7/parser.go | 109 ---- internal/php7/php7.go | 928 ++++++++++++++++---------------- internal/php7/php7.y | 14 - 6 files changed, 996 insertions(+), 1327 deletions(-) diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 5b06343..ee75429 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -1,8 +1,6 @@ package php5 import ( - "bytes" - "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -62,110 +60,3 @@ func lastNode(nn []ast.Vertex) ast.Vertex { } return nn[len(nn)-1] } - -func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if _, ok := src.GetNode().Tokens[token.Start]; !ok { - return - } - - if src.GetNode().Tokens == nil { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - (*dstCollection)[token.Start] = src.GetNode().Tokens[token.Start] - delete(src.GetNode().Tokens, token.Start) -} - -func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []*token.Token) { - if len(tokens) == 0 { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - l := len(tokens) - for _, v := range tokens[0 : l-1] { - (*dstCollection)[pos] = append((*dstCollection)[pos], v) - } -} - -func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []*token.Token) { - if len(tokens) == 0 { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - (*dstCollection)[pos] = make([]*token.Token, 0) - - for _, v := range tokens { - (*dstCollection)[pos] = append((*dstCollection)[pos], v) - } -} - -func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []*token.Token) { - if len(tokens) == 0 { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - l := len(tokens) - (*dstCollection)[pos] = append((*dstCollection)[pos], tokens[l-1]) -} - -func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if _, ok := prevNode.GetNode().Tokens[token.SemiColon]; !ok { - return - } - - semiColon := prevNode.GetNode().Tokens[token.SemiColon] - delete(prevNode.GetNode().Tokens, token.SemiColon) - if len(semiColon) == 0 { - return - } - - if semiColon[0].Value[0] == ';' { - p.setFreeFloatingTokens(prevNode, token.SemiColon, []*token.Token{ - { - ID: token.ID(';'), - Value: semiColon[0].Value[0:1], - }, - }) - } - - vlen := len(semiColon[0].Value) - tlen := 2 - if bytes.HasSuffix(semiColon[0].Value, []byte("?>\n")) { - tlen = 3 - } - - phpCloseTag := []*token.Token{} - if vlen-tlen > 1 { - phpCloseTag = append(phpCloseTag, &token.Token{ - ID: token.T_WHITESPACE, - Value: semiColon[0].Value[1 : vlen-tlen], - }) - } - - phpCloseTag = append(phpCloseTag, &token.Token{ - ID: T_CLOSE_TAG, - Value: semiColon[0].Value[vlen-tlen:], - }) - - p.setFreeFloatingTokens(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) -} diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 626fc16..bff63f6 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -342,7 +342,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6563 +// line internal/php5/php5.y:6522 // line yacctab:1 var yyExca = [...]int{ @@ -2330,24 +2330,19 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:282 { - if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { - prevNode := lastNode(yyDollar[1].list) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:293 + // line internal/php5/php5.y:288 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:300 + // line internal/php5/php5.y:295 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2361,7 +2356,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:312 + // line internal/php5/php5.y:307 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2374,32 +2369,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:326 + // line internal/php5/php5.y:321 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:331 + // line internal/php5/php5.y:326 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:335 + // line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:339 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:343 + // line internal/php5/php5.y:338 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2413,7 +2408,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:355 + // line internal/php5/php5.y:350 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2431,7 +2426,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:371 + // line internal/php5/php5.y:366 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2451,7 +2446,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:389 + // line internal/php5/php5.y:384 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2465,7 +2460,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:401 + // line internal/php5/php5.y:396 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2478,7 +2473,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:412 + // line internal/php5/php5.y:407 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2498,7 +2493,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:430 + // line internal/php5/php5.y:425 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2518,7 +2513,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:448 + // line internal/php5/php5.y:443 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2526,7 +2521,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:457 + // line internal/php5/php5.y:452 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2534,13 +2529,13 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:463 + // line internal/php5/php5.y:458 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:470 + // line internal/php5/php5.y:465 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2556,7 +2551,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:484 + // line internal/php5/php5.y:479 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2580,7 +2575,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:506 + // line internal/php5/php5.y:501 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2597,7 +2592,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:521 + // line internal/php5/php5.y:516 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2622,7 +2617,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:547 + // line internal/php5/php5.y:542 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2630,13 +2625,13 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:553 + // line internal/php5/php5.y:548 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:560 + // line internal/php5/php5.y:555 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2652,7 +2647,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:574 + // line internal/php5/php5.y:569 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2676,7 +2671,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:596 + // line internal/php5/php5.y:591 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2693,7 +2688,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:611 + // line internal/php5/php5.y:606 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2718,7 +2713,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:637 + // line internal/php5/php5.y:632 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2726,13 +2721,13 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:643 + // line internal/php5/php5.y:638 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:650 + // line internal/php5/php5.y:645 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2748,7 +2743,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:664 + // line internal/php5/php5.y:659 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2772,7 +2767,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:686 + // line internal/php5/php5.y:681 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2789,7 +2784,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:701 + // line internal/php5/php5.y:696 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2814,7 +2809,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:727 + // line internal/php5/php5.y:722 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2835,12 +2830,10 @@ yydefault: }) yyVAL.node = yyDollar[1].node - - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:751 + // line internal/php5/php5.y:744 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2864,56 +2857,49 @@ yydefault: }, }, } - - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[2].token.SkippedTokens) } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:781 + // line internal/php5/php5.y:772 { - if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { - prevNode := lastNode(yyDollar[1].list) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:792 + // line internal/php5/php5.y:778 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:800 + // line internal/php5/php5.y:786 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:805 + // line internal/php5/php5.y:791 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:809 + // line internal/php5/php5.y:795 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:813 + // line internal/php5/php5.y:799 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:817 + // line internal/php5/php5.y:803 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2927,13 +2913,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:833 + // line internal/php5/php5.y:819 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:837 + // line internal/php5/php5.y:823 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2951,7 +2937,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:856 + // line internal/php5/php5.y:842 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2964,7 +2950,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:867 + // line internal/php5/php5.y:853 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2988,7 +2974,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:889 + // line internal/php5/php5.y:875 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3014,7 +3000,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:913 + // line internal/php5/php5.y:899 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3026,7 +3012,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:923 + // line internal/php5/php5.y:909 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3043,7 +3029,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:938 + // line internal/php5/php5.y:924 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3062,7 +3048,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:955 + // line internal/php5/php5.y:941 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3074,7 +3060,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:965 + // line internal/php5/php5.y:951 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3086,7 +3072,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:975 + // line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3099,7 +3085,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:986 + // line internal/php5/php5.y:972 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3111,7 +3097,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:996 + // line internal/php5/php5.y:982 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3124,7 +3110,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1007 + // line internal/php5/php5.y:993 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3136,7 +3122,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1017 + // line internal/php5/php5.y:1003 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3149,7 +3135,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1028 + // line internal/php5/php5.y:1014 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3162,7 +3148,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1039 + // line internal/php5/php5.y:1025 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3174,7 +3160,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1049 + // line internal/php5/php5.y:1035 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3185,7 +3171,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1058 + // line internal/php5/php5.y:1044 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3196,7 +3182,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1067 + // line internal/php5/php5.y:1053 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3206,7 +3192,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1075 + // line internal/php5/php5.y:1061 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3218,7 +3204,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1085 + // line internal/php5/php5.y:1071 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3230,7 +3216,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1095 + // line internal/php5/php5.y:1081 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3242,7 +3228,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1105 + // line internal/php5/php5.y:1091 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3262,7 +3248,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1123 + // line internal/php5/php5.y:1109 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3282,7 +3268,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1141 + // line internal/php5/php5.y:1127 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3295,7 +3281,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1152 + // line internal/php5/php5.y:1138 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3306,7 +3292,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1161 + // line internal/php5/php5.y:1147 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3325,7 +3311,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1178 + // line internal/php5/php5.y:1164 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3338,7 +3324,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1189 + // line internal/php5/php5.y:1175 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3357,13 +3343,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1209 + // line internal/php5/php5.y:1195 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1213 + // line internal/php5/php5.y:1199 { catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3393,13 +3379,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1244 + // line internal/php5/php5.y:1230 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1248 + // line internal/php5/php5.y:1234 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3413,31 +3399,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1263 + // line internal/php5/php5.y:1249 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1267 + // line internal/php5/php5.y:1253 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1274 + // line internal/php5/php5.y:1260 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1278 + // line internal/php5/php5.y:1264 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1285 + // line internal/php5/php5.y:1271 { yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3466,7 +3452,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1315 + // line internal/php5/php5.y:1301 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3474,7 +3460,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1321 + // line internal/php5/php5.y:1307 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3483,49 +3469,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1317 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1338 + // line internal/php5/php5.y:1324 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1345 + // line internal/php5/php5.y:1331 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1352 + // line internal/php5/php5.y:1338 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1356 + // line internal/php5/php5.y:1342 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1363 + // line internal/php5/php5.y:1349 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1367 + // line internal/php5/php5.y:1353 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1374 + // line internal/php5/php5.y:1360 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3551,7 +3537,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1401 + // line internal/php5/php5.y:1387 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3588,7 +3574,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1436 + // line internal/php5/php5.y:1422 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3610,7 +3596,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1460 + // line internal/php5/php5.y:1446 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3621,7 +3607,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1469 + // line internal/php5/php5.y:1455 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3641,7 +3627,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1487 + // line internal/php5/php5.y:1473 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3652,7 +3638,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1496 + // line internal/php5/php5.y:1482 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3672,13 +3658,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1517 + // line internal/php5/php5.y:1503 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1521 + // line internal/php5/php5.y:1507 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3690,19 +3676,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1534 + // line internal/php5/php5.y:1520 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1541 + // line internal/php5/php5.y:1527 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1545 + // line internal/php5/php5.y:1531 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3715,13 +3701,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1559 + // line internal/php5/php5.y:1545 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1563 + // line internal/php5/php5.y:1549 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3734,7 +3720,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1577 + // line internal/php5/php5.y:1563 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3742,7 +3728,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1583 + // line internal/php5/php5.y:1569 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3751,13 +3737,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1593 + // line internal/php5/php5.y:1579 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1597 + // line internal/php5/php5.y:1583 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3766,13 +3752,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1607 + // line internal/php5/php5.y:1593 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1611 + // line internal/php5/php5.y:1597 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3784,7 +3770,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1621 + // line internal/php5/php5.y:1607 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3806,7 +3792,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1644 + // line internal/php5/php5.y:1630 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3817,7 +3803,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1653 + // line internal/php5/php5.y:1639 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3837,7 +3823,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1674 + // line internal/php5/php5.y:1660 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3848,7 +3834,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1683 + // line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3868,7 +3854,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1705 + // line internal/php5/php5.y:1691 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3879,7 +3865,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1714 + // line internal/php5/php5.y:1700 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3899,7 +3885,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1736 + // line internal/php5/php5.y:1722 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3919,12 +3905,10 @@ yydefault: }, }, } - - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1759 + // line internal/php5/php5.y:1743 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3946,12 +3930,10 @@ yydefault: ) yyVAL.node = yyDollar[1].node - - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1788 + // line internal/php5/php5.y:1770 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3964,7 +3946,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1799 + // line internal/php5/php5.y:1781 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3978,7 +3960,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1793 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3993,7 +3975,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1824 + // line internal/php5/php5.y:1806 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4009,13 +3991,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1842 + // line internal/php5/php5.y:1824 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1846 + // line internal/php5/php5.y:1828 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4029,7 +4011,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1858 + // line internal/php5/php5.y:1840 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4042,19 +4024,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1873 + // line internal/php5/php5.y:1855 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1877 + // line internal/php5/php5.y:1859 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1885 + // line internal/php5/php5.y:1867 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4065,7 +4047,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1894 + // line internal/php5/php5.y:1876 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4085,13 +4067,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1917 + // line internal/php5/php5.y:1899 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1921 + // line internal/php5/php5.y:1903 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4106,13 +4088,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1938 + // line internal/php5/php5.y:1920 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1942 + // line internal/php5/php5.y:1924 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4134,13 +4116,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1966 + // line internal/php5/php5.y:1948 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1970 + // line internal/php5/php5.y:1952 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4152,13 +4134,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1984 + // line internal/php5/php5.y:1966 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1988 + // line internal/php5/php5.y:1970 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4177,19 +4159,19 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2009 + // line internal/php5/php5.y:1991 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2013 + // line internal/php5/php5.y:1995 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2020 + // line internal/php5/php5.y:2002 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4197,7 +4179,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2026 + // line internal/php5/php5.y:2008 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4206,7 +4188,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2036 + // line internal/php5/php5.y:2018 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4240,7 +4222,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2068 + // line internal/php5/php5.y:2050 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4276,13 +4258,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2106 + // line internal/php5/php5.y:2088 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2110 + // line internal/php5/php5.y:2092 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4294,7 +4276,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2120 + // line internal/php5/php5.y:2102 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4306,13 +4288,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2130 + // line internal/php5/php5.y:2112 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2138 + // line internal/php5/php5.y:2120 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4324,7 +4306,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2148 + // line internal/php5/php5.y:2130 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4335,7 +4317,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2157 + // line internal/php5/php5.y:2139 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4355,7 +4337,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2179 + // line internal/php5/php5.y:2161 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4363,7 +4345,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2185 + // line internal/php5/php5.y:2167 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4372,7 +4354,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2195 + // line internal/php5/php5.y:2177 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4383,7 +4365,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2204 + // line internal/php5/php5.y:2186 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4394,7 +4376,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2213 + // line internal/php5/php5.y:2195 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4406,7 +4388,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2223 + // line internal/php5/php5.y:2205 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4418,7 +4400,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2236 + // line internal/php5/php5.y:2218 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4427,7 +4409,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2243 + // line internal/php5/php5.y:2225 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4435,7 +4417,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2253 + // line internal/php5/php5.y:2235 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4452,7 +4434,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2268 + // line internal/php5/php5.y:2250 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4464,7 +4446,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2278 + // line internal/php5/php5.y:2260 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4483,7 +4465,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2299 + // line internal/php5/php5.y:2281 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4508,7 +4490,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2322 + // line internal/php5/php5.y:2304 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4535,7 +4517,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2347 + // line internal/php5/php5.y:2329 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4561,7 +4543,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2371 + // line internal/php5/php5.y:2353 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4589,19 +4571,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2401 + // line internal/php5/php5.y:2383 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2405 + // line internal/php5/php5.y:2387 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2413 + // line internal/php5/php5.y:2395 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4615,7 +4597,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2425 + // line internal/php5/php5.y:2407 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4623,13 +4605,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2431 + // line internal/php5/php5.y:2413 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2435 + // line internal/php5/php5.y:2417 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4659,7 +4641,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2466 + // line internal/php5/php5.y:2448 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4673,7 +4655,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2481 + // line internal/php5/php5.y:2463 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4681,7 +4663,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2487 + // line internal/php5/php5.y:2469 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4690,7 +4672,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2497 + // line internal/php5/php5.y:2479 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4701,7 +4683,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2506 + // line internal/php5/php5.y:2488 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4714,31 +4696,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2520 + // line internal/php5/php5.y:2502 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2524 + // line internal/php5/php5.y:2506 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2531 + // line internal/php5/php5.y:2513 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2535 + // line internal/php5/php5.y:2517 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2542 + // line internal/php5/php5.y:2524 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4746,7 +4728,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2548 + // line internal/php5/php5.y:2530 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4754,7 +4736,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2557 + // line internal/php5/php5.y:2539 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4768,7 +4750,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2572 + // line internal/php5/php5.y:2554 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4776,7 +4758,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2560 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4785,7 +4767,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2588 + // line internal/php5/php5.y:2570 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4802,13 +4784,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2603 + // line internal/php5/php5.y:2585 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2610 + // line internal/php5/php5.y:2592 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4827,7 +4809,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2630 + // line internal/php5/php5.y:2612 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4847,7 +4829,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2648 + // line internal/php5/php5.y:2630 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4860,19 +4842,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2662 + // line internal/php5/php5.y:2644 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2666 + // line internal/php5/php5.y:2648 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2673 + // line internal/php5/php5.y:2655 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4883,7 +4865,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2682 + // line internal/php5/php5.y:2664 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4896,13 +4878,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2696 + // line internal/php5/php5.y:2678 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2700 + // line internal/php5/php5.y:2682 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4916,31 +4898,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2715 + // line internal/php5/php5.y:2697 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2719 + // line internal/php5/php5.y:2701 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2726 + // line internal/php5/php5.y:2708 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2730 + // line internal/php5/php5.y:2712 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2737 + // line internal/php5/php5.y:2719 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4952,7 +4934,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2747 + // line internal/php5/php5.y:2729 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4964,7 +4946,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2757 + // line internal/php5/php5.y:2739 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4958,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2767 + // line internal/php5/php5.y:2749 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +4970,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2777 + // line internal/php5/php5.y:2759 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +4982,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2787 + // line internal/php5/php5.y:2769 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +4994,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2800 + // line internal/php5/php5.y:2782 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5039,7 +5021,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2825 + // line internal/php5/php5.y:2807 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5068,7 +5050,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2852 + // line internal/php5/php5.y:2834 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5095,7 +5077,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2877 + // line internal/php5/php5.y:2859 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5123,7 +5105,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2906 + // line internal/php5/php5.y:2888 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5144,12 +5126,10 @@ yydefault: }) yyVAL.node = yyDollar[1].node - - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[3].token.SkippedTokens) } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2930 + // line internal/php5/php5.y:2910 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5173,12 +5153,10 @@ yydefault: }, }, } - - yylex.(*Parser).setFreeFloating(lastNode(yyVAL.node.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, yyDollar[2].token.SkippedTokens) } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2960 + // line internal/php5/php5.y:2938 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5187,7 +5165,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2967 + // line internal/php5/php5.y:2945 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5195,19 +5173,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2977 + // line internal/php5/php5.y:2955 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2981 + // line internal/php5/php5.y:2959 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2988 + // line internal/php5/php5.y:2966 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5216,7 +5194,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2995 + // line internal/php5/php5.y:2973 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5224,19 +5202,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3004 + // line internal/php5/php5.y:2982 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3008 + // line internal/php5/php5.y:2986 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3015 + // line internal/php5/php5.y:2993 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5252,7 +5230,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3029 + // line internal/php5/php5.y:3007 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5268,37 +5246,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3046 + // line internal/php5/php5.y:3024 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3050 + // line internal/php5/php5.y:3028 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3032 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3061 + // line internal/php5/php5.y:3039 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3065 + // line internal/php5/php5.y:3043 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3072 + // line internal/php5/php5.y:3050 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5323,7 +5301,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3098 + // line internal/php5/php5.y:3076 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5345,7 +5323,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3118 + // line internal/php5/php5.y:3096 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5358,7 +5336,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3129 + // line internal/php5/php5.y:3107 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5372,7 +5350,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3141 + // line internal/php5/php5.y:3119 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5409,7 +5387,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3176 + // line internal/php5/php5.y:3154 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5421,7 +5399,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3186 + // line internal/php5/php5.y:3164 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5434,7 +5412,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3197 + // line internal/php5/php5.y:3175 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5447,7 +5425,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3208 + // line internal/php5/php5.y:3186 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5460,7 +5438,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3219 + // line internal/php5/php5.y:3197 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5473,7 +5451,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3230 + // line internal/php5/php5.y:3208 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5486,7 +5464,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3241 + // line internal/php5/php5.y:3219 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5499,7 +5477,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3252 + // line internal/php5/php5.y:3230 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5512,7 +5490,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3263 + // line internal/php5/php5.y:3241 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5525,7 +5503,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3274 + // line internal/php5/php5.y:3252 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5538,7 +5516,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3285 + // line internal/php5/php5.y:3263 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5551,7 +5529,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3296 + // line internal/php5/php5.y:3274 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5564,7 +5542,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3307 + // line internal/php5/php5.y:3285 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5577,7 +5555,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3318 + // line internal/php5/php5.y:3296 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5589,7 +5567,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3328 + // line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5601,7 +5579,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3338 + // line internal/php5/php5.y:3316 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5613,7 +5591,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3348 + // line internal/php5/php5.y:3326 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5625,7 +5603,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3358 + // line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5638,7 +5616,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3369 + // line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5651,7 +5629,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3380 + // line internal/php5/php5.y:3358 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5664,7 +5642,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5677,7 +5655,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3402 + // line internal/php5/php5.y:3380 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5690,7 +5668,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3413 + // line internal/php5/php5.y:3391 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5703,7 +5681,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3424 + // line internal/php5/php5.y:3402 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5716,7 +5694,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3435 + // line internal/php5/php5.y:3413 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5729,7 +5707,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3446 + // line internal/php5/php5.y:3424 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5742,7 +5720,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3457 + // line internal/php5/php5.y:3435 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5755,7 +5733,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3468 + // line internal/php5/php5.y:3446 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5768,7 +5746,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3479 + // line internal/php5/php5.y:3457 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5781,7 +5759,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3490 + // line internal/php5/php5.y:3468 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5794,7 +5772,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3501 + // line internal/php5/php5.y:3479 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5807,7 +5785,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3512 + // line internal/php5/php5.y:3490 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5820,7 +5798,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3523 + // line internal/php5/php5.y:3501 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5833,7 +5811,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3534 + // line internal/php5/php5.y:3512 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5846,7 +5824,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3545 + // line internal/php5/php5.y:3523 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5858,7 +5836,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3555 + // line internal/php5/php5.y:3533 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5870,7 +5848,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3565 + // line internal/php5/php5.y:3543 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5882,7 +5860,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3575 + // line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5894,7 +5872,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3585 + // line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5907,7 +5885,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3596 + // line internal/php5/php5.y:3574 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5920,7 +5898,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3607 + // line internal/php5/php5.y:3585 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5933,7 +5911,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3618 + // line internal/php5/php5.y:3596 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5943,11 +5921,10 @@ yydefault: OpTkn: yyDollar[2].token, Right: yyDollar[3].node, } - yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3630 + // line internal/php5/php5.y:3607 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5960,7 +5937,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3641 + // line internal/php5/php5.y:3618 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5973,7 +5950,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3652 + // line internal/php5/php5.y:3629 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5986,7 +5963,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3663 + // line internal/php5/php5.y:3640 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5999,7 +5976,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6012,25 +5989,28 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3685 + // line internal/php5/php5.y:3662 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3689 + // line internal/php5/php5.y:3666 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3693 + // line internal/php5/php5.y:3670 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } for _, n := range yyDollar[4].list { switch nn := n.(type) { @@ -6058,7 +6038,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3725 + // line internal/php5/php5.y:3705 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6073,7 +6053,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3738 + // line internal/php5/php5.y:3718 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6087,13 +6067,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3750 + // line internal/php5/php5.y:3730 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3754 + // line internal/php5/php5.y:3734 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6105,7 +6085,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3764 + // line internal/php5/php5.y:3744 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6117,7 +6097,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3774 + // line internal/php5/php5.y:3754 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6129,7 +6109,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3784 + // line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6141,7 +6121,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3794 + // line internal/php5/php5.y:3774 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6153,7 +6133,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3804 + // line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6165,7 +6145,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3814 + // line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6177,7 +6157,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3824 + // line internal/php5/php5.y:3804 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6196,7 +6176,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3841 + // line internal/php5/php5.y:3821 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6208,25 +6188,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3831 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3855 + // line internal/php5/php5.y:3835 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3859 + // line internal/php5/php5.y:3839 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3863 + // line internal/php5/php5.y:3843 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6239,7 +6219,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3874 + // line internal/php5/php5.y:3854 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6251,7 +6231,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3884 + // line internal/php5/php5.y:3864 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6262,7 +6242,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3893 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6282,7 +6262,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3911 + // line internal/php5/php5.y:3891 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6303,7 +6283,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3933 + // line internal/php5/php5.y:3913 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6315,7 +6295,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3943 + // line internal/php5/php5.y:3923 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6327,7 +6307,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3953 + // line internal/php5/php5.y:3933 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6341,7 +6321,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3965 + // line internal/php5/php5.y:3945 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6355,7 +6335,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3980 + // line internal/php5/php5.y:3960 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6369,7 +6349,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3992 + // line internal/php5/php5.y:3972 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6383,7 +6363,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4004 + // line internal/php5/php5.y:3984 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6403,7 +6383,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4022 + // line internal/php5/php5.y:4002 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6417,7 +6397,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4037 + // line internal/php5/php5.y:4017 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6432,7 +6412,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4050 + // line internal/php5/php5.y:4030 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6446,19 +6426,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4065 + // line internal/php5/php5.y:4045 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4072 + // line internal/php5/php5.y:4052 { yyVAL.ClosureUse = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4076 + // line internal/php5/php5.y:4056 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6473,7 +6453,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4092 + // line internal/php5/php5.y:4072 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6495,7 +6475,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4112 + // line internal/php5/php5.y:4092 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6523,7 +6503,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4138 + // line internal/php5/php5.y:4118 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6544,7 +6524,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4157 + // line internal/php5/php5.y:4137 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6571,7 +6551,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4185 + // line internal/php5/php5.y:4165 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6591,7 +6571,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4203 + // line internal/php5/php5.y:4183 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6613,7 +6593,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4223 + // line internal/php5/php5.y:4203 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6634,7 +6614,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4222 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6651,7 +6631,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4257 + // line internal/php5/php5.y:4237 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6668,7 +6648,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4272 + // line internal/php5/php5.y:4252 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6685,7 +6665,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4287 + // line internal/php5/php5.y:4267 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6702,7 +6682,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4302 + // line internal/php5/php5.y:4282 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6717,7 +6697,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4318 + // line internal/php5/php5.y:4298 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6729,7 +6709,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4328 + // line internal/php5/php5.y:4308 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6740,7 +6720,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4337 + // line internal/php5/php5.y:4317 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6753,7 +6733,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4348 + // line internal/php5/php5.y:4328 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6765,7 +6745,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4361 + // line internal/php5/php5.y:4341 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6776,7 +6756,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4370 + // line internal/php5/php5.y:4350 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6789,7 +6769,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4381 + // line internal/php5/php5.y:4361 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6801,24 +6781,23 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4394 + // line internal/php5/php5.y:4374 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4398 + // line internal/php5/php5.y:4378 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4405 + // line internal/php5/php5.y:4385 { yyVAL.node = yyDollar[1].node - // save comments - yylex.(*Parser).setFreeFloating(yyDollar[3].list[0], token.Var, yyDollar[2].token.SkippedTokens) + yyDollar[3].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[2].token for _, n := range yyDollar[3].list { switch nn := n.(type) { @@ -6826,13 +6805,11 @@ yydefault: nn.Var = yyVAL.node yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } @@ -6842,37 +6819,35 @@ yydefault: nn.Var = yyVAL.node yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) case *ast.ExprPropertyFetch: nn.Var = yyVAL.node yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, yyVAL.node) } } } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4444 + // line internal/php5/php5.y:4419 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4452 + // line internal/php5/php5.y:4427 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4456 + // line internal/php5/php5.y:4431 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4464 + // line internal/php5/php5.y:4439 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6880,13 +6855,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4473 + // line internal/php5/php5.y:4448 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4477 + // line internal/php5/php5.y:4452 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6895,26 +6870,22 @@ yydefault: OpenBracketTkn: yyDollar[1].token, CloseBracketTkn: yyDollar[2].token, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[2].token.SkippedTokens) } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4491 + // line internal/php5/php5.y:4462 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4469 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4502 + // line internal/php5/php5.y:4473 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6928,25 +6899,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4514 + // line internal/php5/php5.y:4485 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4492 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4525 + // line internal/php5/php5.y:4496 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4503 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6958,7 +6929,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4542 + // line internal/php5/php5.y:4513 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6970,7 +6941,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4552 + // line internal/php5/php5.y:4523 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6982,7 +6953,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4533 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6994,7 +6965,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4572 + // line internal/php5/php5.y:4543 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7006,7 +6977,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4582 + // line internal/php5/php5.y:4553 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7018,7 +6989,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4592 + // line internal/php5/php5.y:4563 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7030,7 +7001,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4602 + // line internal/php5/php5.y:4573 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7042,7 +7013,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4612 + // line internal/php5/php5.y:4583 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7054,7 +7025,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4622 + // line internal/php5/php5.y:4593 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7066,7 +7037,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4632 + // line internal/php5/php5.y:4603 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7087,7 +7058,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4651 + // line internal/php5/php5.y:4622 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7099,7 +7070,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4664 + // line internal/php5/php5.y:4635 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7118,25 +7089,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4684 + // line internal/php5/php5.y:4655 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4691 + // line internal/php5/php5.y:4662 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4695 + // line internal/php5/php5.y:4666 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4699 + // line internal/php5/php5.y:4670 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7152,7 +7123,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4713 + // line internal/php5/php5.y:4684 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7170,7 +7141,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4729 + // line internal/php5/php5.y:4700 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7187,7 +7158,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4744 + // line internal/php5/php5.y:4715 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7202,7 +7173,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4728 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7216,13 +7187,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4769 + // line internal/php5/php5.y:4740 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4773 + // line internal/php5/php5.y:4744 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7234,13 +7205,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4783 + // line internal/php5/php5.y:4754 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4790 + // line internal/php5/php5.y:4761 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7254,7 +7225,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4802 + // line internal/php5/php5.y:4773 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7267,7 +7238,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4813 + // line internal/php5/php5.y:4784 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7280,7 +7251,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4824 + // line internal/php5/php5.y:4795 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7293,7 +7264,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4835 + // line internal/php5/php5.y:4806 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7306,7 +7277,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4817 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7319,7 +7290,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4857 + // line internal/php5/php5.y:4828 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7332,7 +7303,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4839 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7344,7 +7315,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4878 + // line internal/php5/php5.y:4849 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7356,7 +7327,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4888 + // line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7369,7 +7340,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4899 + // line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7382,7 +7353,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7395,7 +7366,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4921 + // line internal/php5/php5.y:4892 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7408,7 +7379,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4932 + // line internal/php5/php5.y:4903 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7421,7 +7392,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4943 + // line internal/php5/php5.y:4914 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7434,7 +7405,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4954 + // line internal/php5/php5.y:4925 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7447,7 +7418,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4965 + // line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7460,7 +7431,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4976 + // line internal/php5/php5.y:4947 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7473,7 +7444,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4987 + // line internal/php5/php5.y:4958 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7486,7 +7457,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4998 + // line internal/php5/php5.y:4969 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7499,7 +7470,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5009 + // line internal/php5/php5.y:4980 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7512,7 +7483,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5020 + // line internal/php5/php5.y:4991 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7525,7 +7496,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5031 + // line internal/php5/php5.y:5002 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7538,7 +7509,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5042 + // line internal/php5/php5.y:5013 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7548,11 +7519,10 @@ yydefault: OpTkn: yyDollar[2].token, Right: yyDollar[3].node, } - yylex.(*Parser).setToken(yyVAL.node, token.Equal, yyDollar[2].token.SkippedTokens) } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5054 + // line internal/php5/php5.y:5024 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7565,7 +7535,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5065 + // line internal/php5/php5.y:5035 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7578,7 +7548,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5076 + // line internal/php5/php5.y:5046 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7591,7 +7561,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5087 + // line internal/php5/php5.y:5057 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7604,7 +7574,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5098 + // line internal/php5/php5.y:5068 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7618,7 +7588,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5110 + // line internal/php5/php5.y:5080 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7633,7 +7603,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5123 + // line internal/php5/php5.y:5093 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7645,7 +7615,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5133 + // line internal/php5/php5.y:5103 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7657,23 +7627,26 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5143 + // line internal/php5/php5.y:5113 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5154 + // line internal/php5/php5.y:5127 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5158 + // line internal/php5/php5.y:5131 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7689,7 +7662,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5172 + // line internal/php5/php5.y:5145 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7707,7 +7680,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5161 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7724,7 +7697,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5206 + // line internal/php5/php5.y:5179 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7741,25 +7714,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5221 + // line internal/php5/php5.y:5194 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5225 + // line internal/php5/php5.y:5198 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5229 + // line internal/php5/php5.y:5202 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5233 + // line internal/php5/php5.y:5206 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7772,7 +7745,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5244 + // line internal/php5/php5.y:5217 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7785,7 +7758,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5255 + // line internal/php5/php5.y:5228 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7797,13 +7770,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5268 + // line internal/php5/php5.y:5241 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5272 + // line internal/php5/php5.y:5245 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7814,19 +7787,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5284 + // line internal/php5/php5.y:5257 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5288 + // line internal/php5/php5.y:5261 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5295 + // line internal/php5/php5.y:5268 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7844,7 +7817,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5311 + // line internal/php5/php5.y:5284 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7860,7 +7833,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5325 + // line internal/php5/php5.y:5298 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7877,7 +7850,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5340 + // line internal/php5/php5.y:5313 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7892,19 +7865,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5356 + // line internal/php5/php5.y:5329 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5360 + // line internal/php5/php5.y:5333 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5367 + // line internal/php5/php5.y:5340 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7914,14 +7887,10 @@ yydefault: Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5382 + // line internal/php5/php5.y:5351 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7931,32 +7900,28 @@ yydefault: Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5401 + // line internal/php5/php5.y:5366 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5374 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5416 + // line internal/php5/php5.y:5381 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5423 + // line internal/php5/php5.y:5388 { yyVAL.node = yyDollar[1].node @@ -8035,25 +8000,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5465 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5507 + // line internal/php5/php5.y:5472 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5511 + // line internal/php5/php5.y:5476 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5519 + // line internal/php5/php5.y:5484 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8085,7 +8050,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5551 + // line internal/php5/php5.y:5516 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8101,7 +8066,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5565 + // line internal/php5/php5.y:5530 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8117,7 +8082,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5582 + // line internal/php5/php5.y:5547 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8131,31 +8096,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5597 + // line internal/php5/php5.y:5562 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5601 + // line internal/php5/php5.y:5566 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5570 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5612 + // line internal/php5/php5.y:5577 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5616 + // line internal/php5/php5.y:5581 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8167,7 +8132,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5629 + // line internal/php5/php5.y:5594 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8180,7 +8145,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5640 + // line internal/php5/php5.y:5605 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8193,13 +8158,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5654 + // line internal/php5/php5.y:5619 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5661 + // line internal/php5/php5.y:5626 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8213,7 +8178,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5673 + // line internal/php5/php5.y:5638 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8227,31 +8192,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5688 + // line internal/php5/php5.y:5653 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5692 + // line internal/php5/php5.y:5657 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5696 + // line internal/php5/php5.y:5661 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5704 + // line internal/php5/php5.y:5669 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5708 + // line internal/php5/php5.y:5673 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8263,13 +8228,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5718 + // line internal/php5/php5.y:5683 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5725 + // line internal/php5/php5.y:5690 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8283,7 +8248,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5737 + // line internal/php5/php5.y:5702 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8297,13 +8262,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5749 + // line internal/php5/php5.y:5714 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5757 + // line internal/php5/php5.y:5722 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8320,7 +8285,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5772 + // line internal/php5/php5.y:5737 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8339,25 +8304,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5792 + // line internal/php5/php5.y:5757 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5796 + // line internal/php5/php5.y:5761 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5804 + // line internal/php5/php5.y:5769 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5808 + // line internal/php5/php5.y:5773 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8370,7 +8335,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5822 + // line internal/php5/php5.y:5787 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8386,7 +8351,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5836 + // line internal/php5/php5.y:5801 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8402,7 +8367,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5850 + // line internal/php5/php5.y:5815 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8415,7 +8380,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5864 + // line internal/php5/php5.y:5829 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8427,20 +8392,20 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5874 + // line internal/php5/php5.y:5839 { - yyVAL.node = yyDollar[2].node - - // save position - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5888 + // line internal/php5/php5.y:5853 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8453,7 +8418,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5899 + // line internal/php5/php5.y:5864 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8464,7 +8429,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5911 + // line internal/php5/php5.y:5876 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8473,7 +8438,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5918 + // line internal/php5/php5.y:5883 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8481,7 +8446,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5928 + // line internal/php5/php5.y:5893 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8492,7 +8457,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5937 + // line internal/php5/php5.y:5902 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8519,19 +8484,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5962 + // line internal/php5/php5.y:5927 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5970 + // line internal/php5/php5.y:5935 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5974 + // line internal/php5/php5.y:5939 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8542,7 +8507,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5986 + // line internal/php5/php5.y:5951 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8560,7 +8525,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6002 + // line internal/php5/php5.y:5967 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8576,7 +8541,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6016 + // line internal/php5/php5.y:5981 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8593,7 +8558,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6031 + // line internal/php5/php5.y:5996 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8608,7 +8573,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6044 + // line internal/php5/php5.y:6009 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8632,7 +8597,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6066 + // line internal/php5/php5.y:6031 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8654,7 +8619,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6086 + // line internal/php5/php5.y:6051 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8677,7 +8642,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6107 + // line internal/php5/php5.y:6072 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8698,13 +8663,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6129 + // line internal/php5/php5.y:6094 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6133 + // line internal/php5/php5.y:6098 { yyVAL.list = append( yyDollar[1].list, @@ -8719,13 +8684,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6146 + // line internal/php5/php5.y:6111 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6150 + // line internal/php5/php5.y:6115 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8740,7 +8705,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6166 + // line internal/php5/php5.y:6131 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8757,7 +8722,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6181 + // line internal/php5/php5.y:6146 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8782,7 +8747,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6204 + // line internal/php5/php5.y:6169 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8812,7 +8777,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6232 + // line internal/php5/php5.y:6197 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8830,7 +8795,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6248 + // line internal/php5/php5.y:6213 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8854,7 +8819,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6270 + // line internal/php5/php5.y:6235 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8886,7 +8851,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6300 + // line internal/php5/php5.y:6265 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8899,7 +8864,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6314 + // line internal/php5/php5.y:6279 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8911,7 +8876,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6324 + // line internal/php5/php5.y:6289 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8931,16 +8896,10 @@ yydefault: Value: yyDollar[1].token.Value, } } - - // save position - yyVAL.node.GetNode().Position = position.NewTokenPosition(yyDollar[1].token) - - // save comments - yylex.(*Parser).setFreeFloating(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6351 + // line internal/php5/php5.y:6310 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8957,7 +8916,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6369 + // line internal/php5/php5.y:6328 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8972,7 +8931,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6382 + // line internal/php5/php5.y:6341 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8986,7 +8945,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6394 + // line internal/php5/php5.y:6353 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9000,7 +8959,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6406 + // line internal/php5/php5.y:6365 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9012,7 +8971,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6416 + // line internal/php5/php5.y:6375 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9024,7 +8983,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6426 + // line internal/php5/php5.y:6385 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9038,7 +8997,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6438 + // line internal/php5/php5.y:6397 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9050,7 +9009,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6448 + // line internal/php5/php5.y:6407 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9062,7 +9021,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6461 + // line internal/php5/php5.y:6420 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9070,7 +9029,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6467 + // line internal/php5/php5.y:6426 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9079,19 +9038,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6477 + // line internal/php5/php5.y:6436 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6481 + // line internal/php5/php5.y:6440 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6488 + // line internal/php5/php5.y:6447 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9110,7 +9069,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6505 + // line internal/php5/php5.y:6464 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9129,7 +9088,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6525 + // line internal/php5/php5.y:6484 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9148,7 +9107,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6545 + // line internal/php5/php5.y:6504 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 48045f0..2a24915 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -280,11 +280,6 @@ start: top_statement_list: top_statement_list top_statement { - if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { - prevNode := lastNode($1) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if $2 != nil { $$ = append($1, $2) } @@ -744,8 +739,6 @@ constant_declaration: }) $$ = $1 - - yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) } | T_CONST T_STRING '=' static_scalar { @@ -771,19 +764,12 @@ constant_declaration: }, }, } - - yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtConstList).Consts).(*ast.StmtConstant).Name, token.Start, $2.SkippedTokens) } ; inner_statement_list: inner_statement_list inner_statement { - if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { - prevNode := lastNode($1) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if $2 != nil { $$ = append($1, $2) } @@ -1752,8 +1738,6 @@ declare_list: }, }, } - - yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) } | declare_list ',' T_STRING '=' static_scalar { @@ -1777,8 +1761,6 @@ declare_list: ) $$ = $1 - - yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.ParserSeparatedList).Items).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) } ; @@ -2923,8 +2905,6 @@ class_constant_declaration: }) $$ = $1 - - yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, $3.SkippedTokens) } | T_CONST T_STRING '=' static_scalar { @@ -2950,8 +2930,6 @@ class_constant_declaration: }, }, } - - yylex.(*Parser).setFreeFloating(lastNode($$.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).Name, token.Start, $2.SkippedTokens) } ; @@ -3624,7 +3602,6 @@ expr_without_variable: OpTkn: $2, Right: $3, } - yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | expr '<' expr { @@ -4416,13 +4393,11 @@ dynamic_class_name_reference: nn.Var = $$ $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } @@ -4432,13 +4407,11 @@ dynamic_class_name_reference: nn.Var = $$ $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) case *ast.ExprPropertyFetch: nn.Var = $$ $$.GetNode().Position = position.NewNodesPosition($$, nn) $$ = nn - yylex.(*Parser).MoveFreeFloating(nn.Var, $$) } } } @@ -5046,7 +5019,6 @@ static_operation: OpTkn: $2, Right: $3, } - yylex.(*Parser).setToken($$, token.Equal, $2.SkippedTokens) } | static_scalar_value '<' static_scalar_value { @@ -6333,12 +6305,6 @@ encaps_var_offset: Value: $1.Value, } } - - // save position - $$.GetNode().Position = position.NewTokenPosition($1) - - // save comments - yylex.(*Parser).setFreeFloating($$, token.Start, $1.SkippedTokens) } | T_VARIABLE { diff --git a/internal/php7/parser.go b/internal/php7/parser.go index 32f3fa5..f49ecd8 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -1,8 +1,6 @@ package php7 import ( - "bytes" - "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -62,110 +60,3 @@ func lastNode(nn []ast.Vertex) ast.Vertex { } return nn[len(nn)-1] } - -func (p *Parser) MoveFreeFloating(src ast.Vertex, dst ast.Vertex) { - if _, ok := src.GetNode().Tokens[token.Start]; !ok { - return - } - - if src.GetNode().Tokens == nil { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - (*dstCollection)[token.Start] = src.GetNode().Tokens[token.Start] - delete(src.GetNode().Tokens, token.Start) -} - -func (p *Parser) setFreeFloating(dst ast.Vertex, pos token.Position, tokens []*token.Token) { - if len(tokens) == 0 { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - l := len(tokens) - for _, v := range tokens[0 : l-1] { - (*dstCollection)[pos] = append((*dstCollection)[pos], v) - } -} - -func (p *Parser) setFreeFloatingTokens(dst ast.Vertex, pos token.Position, tokens []*token.Token) { - if len(tokens) == 0 { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - (*dstCollection)[pos] = make([]*token.Token, 0) - - for _, v := range tokens { - (*dstCollection)[pos] = append((*dstCollection)[pos], v) - } -} - -func (p *Parser) setToken(dst ast.Vertex, pos token.Position, tokens []*token.Token) { - if len(tokens) == 0 { - return - } - - dstCollection := &dst.GetNode().Tokens - if *dstCollection == nil { - *dstCollection = make(token.Collection) - } - - l := len(tokens) - (*dstCollection)[pos] = append((*dstCollection)[pos], tokens[l-1]) -} - -func (p *Parser) splitSemiColonAndPhpCloseTag(htmlNode ast.Vertex, prevNode ast.Vertex) { - if _, ok := prevNode.GetNode().Tokens[token.SemiColon]; !ok { - return - } - - semiColon := prevNode.GetNode().Tokens[token.SemiColon] - delete(prevNode.GetNode().Tokens, token.SemiColon) - if len(semiColon) == 0 { - return - } - - if semiColon[0].Value[0] == ';' { - p.setFreeFloatingTokens(prevNode, token.SemiColon, []*token.Token{ - { - ID: token.ID(';'), - Value: semiColon[0].Value[0:1], - }, - }) - } - - vlen := len(semiColon[0].Value) - tlen := 2 - if bytes.HasSuffix(semiColon[0].Value, []byte("?>\n")) { - tlen = 3 - } - - phpCloseTag := []*token.Token{} - if vlen-tlen > 1 { - phpCloseTag = append(phpCloseTag, &token.Token{ - ID: token.T_WHITESPACE, - Value: semiColon[0].Value[1 : vlen-tlen], - }) - } - - phpCloseTag = append(phpCloseTag, &token.Token{ - ID: T_CLOSE_TAG, - Value: semiColon[0].Value[vlen-tlen:], - }) - - p.setFreeFloatingTokens(htmlNode, token.Start, append(phpCloseTag, htmlNode.GetNode().Tokens[token.Start]...)) -} diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 35f39c1..c592f8c 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -343,7 +343,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4992 +// line internal/php7/php7.y:4968 // line yacctab:1 var yyExca = [...]int{ @@ -2586,24 +2586,19 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:331 { - if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { - prevNode := lastNode(yyDollar[1].list) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:342 + // line internal/php7/php7.y:337 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:349 + // line internal/php7/php7.y:344 { yyVAL.list = []ast.Vertex{ &ast.NameNamePart{ @@ -2617,7 +2612,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:361 + // line internal/php7/php7.y:356 { yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ Node: ast.Node{ @@ -2630,7 +2625,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:375 + // line internal/php7/php7.y:370 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2641,7 +2636,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:384 + // line internal/php7/php7.y:379 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2649,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:395 + // line internal/php7/php7.y:390 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2666,44 +2661,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:408 + // line internal/php7/php7.y:403 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:413 + // line internal/php7/php7.y:408 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:417 + // line internal/php7/php7.y:412 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:421 + // line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:425 + // line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:429 + // line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:433 + // line internal/php7/php7.y:428 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2717,7 +2712,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:445 + // line internal/php7/php7.y:440 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2735,7 +2730,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:461 + // line internal/php7/php7.y:456 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2755,7 +2750,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:479 + // line internal/php7/php7.y:474 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2769,7 +2764,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:491 + // line internal/php7/php7.y:486 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2781,7 +2776,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:501 + // line internal/php7/php7.y:496 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2794,7 +2789,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:512 + // line internal/php7/php7.y:507 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2807,7 +2802,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:523 + // line internal/php7/php7.y:518 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2821,7 +2816,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:535 + // line internal/php7/php7.y:530 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2835,7 +2830,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:550 + // line internal/php7/php7.y:545 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2847,7 +2842,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:560 + // line internal/php7/php7.y:555 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2859,7 +2854,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:573 + // line internal/php7/php7.y:568 { if len(yyDollar[4].list) > 0 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2883,7 +2878,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:595 + // line internal/php7/php7.y:590 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2906,7 +2901,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:619 + // line internal/php7/php7.y:614 { yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token @@ -2928,7 +2923,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:639 + // line internal/php7/php7.y:634 { yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token @@ -2951,19 +2946,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:663 + // line internal/php7/php7.y:658 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:667 + // line internal/php7/php7.y:662 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:674 + // line internal/php7/php7.y:669 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2971,13 +2966,13 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:680 + // line internal/php7/php7.y:675 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:687 + // line internal/php7/php7.y:682 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2985,13 +2980,13 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:693 + // line internal/php7/php7.y:688 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:700 + // line internal/php7/php7.y:695 { yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token @@ -2999,19 +2994,19 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:706 + // line internal/php7/php7.y:701 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:713 + // line internal/php7/php7.y:708 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:717 + // line internal/php7/php7.y:712 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3021,7 +3016,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:728 + // line internal/php7/php7.y:723 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3037,7 +3032,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:742 + // line internal/php7/php7.y:737 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3061,13 +3056,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:767 + // line internal/php7/php7.y:762 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:771 + // line internal/php7/php7.y:766 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3077,7 +3072,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:782 + // line internal/php7/php7.y:777 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3086,7 +3081,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:789 + // line internal/php7/php7.y:784 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3094,63 +3089,58 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:798 + // line internal/php7/php7.y:793 { - if inlineHtmlNode, ok := yyDollar[2].node.(*ast.StmtInlineHtml); ok && len(yyDollar[1].list) > 0 { - prevNode := lastNode(yyDollar[1].list) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:809 + // line internal/php7/php7.y:799 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:816 + // line internal/php7/php7.y:806 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:821 + // line internal/php7/php7.y:811 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:825 + // line internal/php7/php7.y:815 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:829 + // line internal/php7/php7.y:819 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:833 + // line internal/php7/php7.y:823 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:837 + // line internal/php7/php7.y:827 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:841 + // line internal/php7/php7.y:831 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3164,7 +3154,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:855 + // line internal/php7/php7.y:845 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3177,19 +3167,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:866 + // line internal/php7/php7.y:856 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:870 + // line internal/php7/php7.y:860 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:874 + // line internal/php7/php7.y:864 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3201,7 +3191,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:884 + // line internal/php7/php7.y:874 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3218,7 +3208,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:899 + // line internal/php7/php7.y:889 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3237,7 +3227,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:916 + // line internal/php7/php7.y:906 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3249,7 +3239,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:926 + // line internal/php7/php7.y:916 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3262,7 +3252,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:937 + // line internal/php7/php7.y:927 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3275,7 +3265,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:948 + // line internal/php7/php7.y:938 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3288,7 +3278,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:959 + // line internal/php7/php7.y:949 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3298,7 +3288,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:967 + // line internal/php7/php7.y:957 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3308,7 +3298,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:975 + // line internal/php7/php7.y:965 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3318,7 +3308,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:983 + // line internal/php7/php7.y:973 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3330,7 +3320,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:993 + // line internal/php7/php7.y:983 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3342,7 +3332,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1003 + // line internal/php7/php7.y:993 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3355,7 +3345,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1014 + // line internal/php7/php7.y:1004 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3369,7 +3359,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1026 + // line internal/php7/php7.y:1016 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3385,7 +3375,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1040 + // line internal/php7/php7.y:1030 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3398,7 +3388,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1051 + // line internal/php7/php7.y:1041 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3409,7 +3399,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1060 + // line internal/php7/php7.y:1050 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3428,7 +3418,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1077 + // line internal/php7/php7.y:1067 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3441,7 +3431,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1088 + // line internal/php7/php7.y:1078 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3460,7 +3450,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1105 + // line internal/php7/php7.y:1095 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3478,13 +3468,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1123 + // line internal/php7/php7.y:1113 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1127 + // line internal/php7/php7.y:1117 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3511,7 +3501,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1154 + // line internal/php7/php7.y:1144 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3519,7 +3509,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1160 + // line internal/php7/php7.y:1150 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3528,13 +3518,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1170 + // line internal/php7/php7.y:1160 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1174 + // line internal/php7/php7.y:1164 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3548,7 +3538,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1189 + // line internal/php7/php7.y:1179 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3556,7 +3546,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1195 + // line internal/php7/php7.y:1185 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3565,13 +3555,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1205 + // line internal/php7/php7.y:1195 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1212 + // line internal/php7/php7.y:1202 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3599,31 +3589,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1241 + // line internal/php7/php7.y:1231 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1245 + // line internal/php7/php7.y:1235 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1252 + // line internal/php7/php7.y:1242 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1246 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1263 + // line internal/php7/php7.y:1253 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3647,7 +3637,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1275 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3670,19 +3660,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1309 + // line internal/php7/php7.y:1299 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1313 + // line internal/php7/php7.y:1303 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1320 + // line internal/php7/php7.y:1310 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3694,7 +3684,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1330 + // line internal/php7/php7.y:1320 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3706,7 +3696,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1333 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3727,7 +3717,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1365 + // line internal/php7/php7.y:1355 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3749,13 +3739,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1388 + // line internal/php7/php7.y:1378 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1382 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3767,13 +3757,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1405 + // line internal/php7/php7.y:1395 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1409 + // line internal/php7/php7.y:1399 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3786,13 +3776,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1413 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1427 + // line internal/php7/php7.y:1417 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3805,13 +3795,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1441 + // line internal/php7/php7.y:1431 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1445 + // line internal/php7/php7.y:1435 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3823,7 +3813,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1455 + // line internal/php7/php7.y:1445 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3838,7 +3828,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1468 + // line internal/php7/php7.y:1458 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3852,7 +3842,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1473 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3863,7 +3853,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1482 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3883,7 +3873,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1513 + // line internal/php7/php7.y:1503 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3894,7 +3884,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1512 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3914,7 +3904,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1543 + // line internal/php7/php7.y:1533 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3925,7 +3915,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1552 + // line internal/php7/php7.y:1542 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3945,7 +3935,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1573 + // line internal/php7/php7.y:1563 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3958,7 +3948,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1584 + // line internal/php7/php7.y:1574 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3972,7 +3962,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1596 + // line internal/php7/php7.y:1586 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3987,7 +3977,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1609 + // line internal/php7/php7.y:1599 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4003,13 +3993,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1626 + // line internal/php7/php7.y:1616 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1620 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4023,7 +4013,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1642 + // line internal/php7/php7.y:1632 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4036,19 +4026,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1646 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1650 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1667 + // line internal/php7/php7.y:1657 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4059,7 +4049,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1676 + // line internal/php7/php7.y:1666 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4079,7 +4069,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1697 + // line internal/php7/php7.y:1687 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4094,7 +4084,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1710 + // line internal/php7/php7.y:1700 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4113,13 +4103,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1730 + // line internal/php7/php7.y:1720 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1734 + // line internal/php7/php7.y:1724 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4135,7 +4125,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1751 + // line internal/php7/php7.y:1741 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4157,7 +4147,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1771 + // line internal/php7/php7.y:1761 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4181,7 +4171,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1786 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4191,7 +4181,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1794 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4215,19 +4205,19 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1829 + // line internal/php7/php7.y:1819 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1833 + // line internal/php7/php7.y:1823 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1840 + // line internal/php7/php7.y:1830 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4235,7 +4225,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1846 + // line internal/php7/php7.y:1836 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4244,7 +4234,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1856 + // line internal/php7/php7.y:1846 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4278,7 +4268,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1888 + // line internal/php7/php7.y:1878 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4314,25 +4304,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1925 + // line internal/php7/php7.y:1915 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1929 + // line internal/php7/php7.y:1919 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1936 + // line internal/php7/php7.y:1926 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1940 + // line internal/php7/php7.y:1930 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4344,7 +4334,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1953 + // line internal/php7/php7.y:1943 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4356,7 +4346,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1963 + // line internal/php7/php7.y:1953 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4368,19 +4358,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1973 + // line internal/php7/php7.y:1963 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1980 + // line internal/php7/php7.y:1970 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1984 + // line internal/php7/php7.y:1974 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4389,7 +4379,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1994 + // line internal/php7/php7.y:1984 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4401,7 +4391,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2004 + // line internal/php7/php7.y:1994 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4413,7 +4403,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2017 + // line internal/php7/php7.y:2007 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4421,7 +4411,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2023 + // line internal/php7/php7.y:2013 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4430,7 +4420,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2033 + // line internal/php7/php7.y:2023 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4441,7 +4431,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2032 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4453,7 +4443,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2055 + // line internal/php7/php7.y:2045 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4462,7 +4452,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2062 + // line internal/php7/php7.y:2052 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4470,13 +4460,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2061 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2078 + // line internal/php7/php7.y:2068 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4485,7 +4475,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2075 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4493,7 +4483,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2094 + // line internal/php7/php7.y:2084 { yyVAL.node = &ast.StmtStaticVar{ @@ -4516,7 +4506,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2115 + // line internal/php7/php7.y:2105 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4540,19 +4530,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2140 + // line internal/php7/php7.y:2130 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2144 + // line internal/php7/php7.y:2134 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2141 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4567,7 +4557,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2164 + // line internal/php7/php7.y:2154 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4581,7 +4571,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2176 + // line internal/php7/php7.y:2166 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4595,7 +4585,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2188 + // line internal/php7/php7.y:2178 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4627,7 +4617,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2211 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4635,7 +4625,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2227 + // line internal/php7/php7.y:2217 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4644,7 +4634,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2227 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4655,7 +4645,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2246 + // line internal/php7/php7.y:2236 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4667,7 +4657,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2256 + // line internal/php7/php7.y:2246 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4680,19 +4670,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2270 + // line internal/php7/php7.y:2260 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2274 + // line internal/php7/php7.y:2264 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2281 + // line internal/php7/php7.y:2271 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4700,7 +4690,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2287 + // line internal/php7/php7.y:2277 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4708,7 +4698,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2296 + // line internal/php7/php7.y:2286 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4722,7 +4712,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2311 + // line internal/php7/php7.y:2301 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4741,7 +4731,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2328 + // line internal/php7/php7.y:2318 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4760,7 +4750,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2345 + // line internal/php7/php7.y:2335 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4780,7 +4770,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2363 + // line internal/php7/php7.y:2353 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4793,7 +4783,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2377 + // line internal/php7/php7.y:2367 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4810,13 +4800,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2392 + // line internal/php7/php7.y:2382 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2399 + // line internal/php7/php7.y:2389 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4835,7 +4825,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2419 + // line internal/php7/php7.y:2409 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4846,7 +4836,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2428 + // line internal/php7/php7.y:2418 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4859,13 +4849,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2442 + // line internal/php7/php7.y:2432 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2446 + // line internal/php7/php7.y:2436 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4879,31 +4869,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2461 + // line internal/php7/php7.y:2451 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2465 + // line internal/php7/php7.y:2455 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2472 + // line internal/php7/php7.y:2462 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2476 + // line internal/php7/php7.y:2466 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2483 + // line internal/php7/php7.y:2473 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4915,7 +4905,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2493 + // line internal/php7/php7.y:2483 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4927,7 +4917,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2503 + // line internal/php7/php7.y:2493 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4939,7 +4929,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2513 + // line internal/php7/php7.y:2503 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4951,7 +4941,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2523 + // line internal/php7/php7.y:2513 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4963,7 +4953,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2533 + // line internal/php7/php7.y:2523 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4975,7 +4965,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2546 + // line internal/php7/php7.y:2536 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4984,7 +4974,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2553 + // line internal/php7/php7.y:2543 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4992,7 +4982,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2552 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5015,7 +5005,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2583 + // line internal/php7/php7.y:2573 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5039,7 +5029,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2608 + // line internal/php7/php7.y:2598 { lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token @@ -5047,13 +5037,13 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2614 + // line internal/php7/php7.y:2604 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2621 + // line internal/php7/php7.y:2611 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5069,12 +5059,10 @@ yydefault: EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, } - - yylex.(*Parser).setFreeFloating(yyVAL.node.(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2643 + // line internal/php7/php7.y:2631 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5090,12 +5078,10 @@ yydefault: EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, } - - yylex.(*Parser).setFreeFloating(yyVAL.node.(*ast.StmtConstant).Name, token.Start, yyDollar[1].token.SkippedTokens) } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2665 + // line internal/php7/php7.y:2651 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5104,7 +5090,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2672 + // line internal/php7/php7.y:2658 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5112,25 +5098,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2681 + // line internal/php7/php7.y:2667 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2688 + // line internal/php7/php7.y:2674 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2692 + // line internal/php7/php7.y:2678 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2699 + // line internal/php7/php7.y:2685 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5139,7 +5125,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2706 + // line internal/php7/php7.y:2692 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5147,7 +5133,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2715 + // line internal/php7/php7.y:2701 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5167,7 +5153,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2736 + // line internal/php7/php7.y:2722 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5193,7 +5179,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2760 + // line internal/php7/php7.y:2746 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5205,7 +5191,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2773 + // line internal/php7/php7.y:2759 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5227,7 +5213,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2793 + // line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5248,7 +5234,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2812 + // line internal/php7/php7.y:2798 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5261,7 +5247,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2823 + // line internal/php7/php7.y:2809 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5275,7 +5261,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2835 + // line internal/php7/php7.y:2821 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5287,7 +5273,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2845 + // line internal/php7/php7.y:2831 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5300,7 +5286,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5313,7 +5299,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2853 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5326,7 +5312,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2864 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5339,7 +5325,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2889 + // line internal/php7/php7.y:2875 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5352,7 +5338,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2886 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5365,7 +5351,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2897 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5378,7 +5364,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2922 + // line internal/php7/php7.y:2908 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5391,7 +5377,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2933 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5404,7 +5390,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2944 + // line internal/php7/php7.y:2930 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5417,7 +5403,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2941 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5430,7 +5416,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2966 + // line internal/php7/php7.y:2952 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5443,7 +5429,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2963 { yyVAL.node = &ast.ExprAssignCoalesce{ Node: ast.Node{ @@ -5456,7 +5442,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2974 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5468,7 +5454,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2998 + // line internal/php7/php7.y:2984 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5480,7 +5466,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3008 + // line internal/php7/php7.y:2994 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5492,7 +5478,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3018 + // line internal/php7/php7.y:3004 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5504,7 +5490,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3028 + // line internal/php7/php7.y:3014 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5517,7 +5503,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3039 + // line internal/php7/php7.y:3025 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5530,7 +5516,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3036 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5543,7 +5529,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3061 + // line internal/php7/php7.y:3047 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5556,7 +5542,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3072 + // line internal/php7/php7.y:3058 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5569,7 +5555,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3069 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5582,7 +5568,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3094 + // line internal/php7/php7.y:3080 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5595,7 +5581,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3091 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5608,7 +5594,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3116 + // line internal/php7/php7.y:3102 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5621,7 +5607,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3113 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5634,7 +5620,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3138 + // line internal/php7/php7.y:3124 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5647,7 +5633,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3135 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5660,7 +5646,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3146 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5673,7 +5659,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3171 + // line internal/php7/php7.y:3157 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5686,7 +5672,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3182 + // line internal/php7/php7.y:3168 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5699,7 +5685,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3179 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5712,7 +5698,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3204 + // line internal/php7/php7.y:3190 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5725,7 +5711,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3201 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5737,7 +5723,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3225 + // line internal/php7/php7.y:3211 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5749,7 +5735,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3235 + // line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5761,7 +5747,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5773,7 +5759,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3255 + // line internal/php7/php7.y:3241 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5786,7 +5772,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3266 + // line internal/php7/php7.y:3252 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5799,7 +5785,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3277 + // line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5812,7 +5798,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3288 + // line internal/php7/php7.y:3274 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5825,7 +5811,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3299 + // line internal/php7/php7.y:3285 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5838,7 +5824,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3310 + // line internal/php7/php7.y:3296 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5851,7 +5837,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3321 + // line internal/php7/php7.y:3307 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5864,7 +5850,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3332 + // line internal/php7/php7.y:3318 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5877,7 +5863,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3343 + // line internal/php7/php7.y:3329 { yyVAL.node = &ast.ExprBinarySpaceship{ Node: ast.Node{ @@ -5890,7 +5876,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3354 + // line internal/php7/php7.y:3340 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5903,7 +5889,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3351 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5913,20 +5899,16 @@ yydefault: Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3380 + // line internal/php7/php7.y:3362 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3384 + // line internal/php7/php7.y:3366 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5941,7 +5923,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3397 + // line internal/php7/php7.y:3379 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5955,7 +5937,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3409 + // line internal/php7/php7.y:3391 { yyVAL.node = &ast.ExprBinaryCoalesce{ Node: ast.Node{ @@ -5968,13 +5950,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3402 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3424 + // line internal/php7/php7.y:3406 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -5986,7 +5968,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3434 + // line internal/php7/php7.y:3416 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -5998,7 +5980,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3444 + // line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6010,7 +5992,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3454 + // line internal/php7/php7.y:3436 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6022,7 +6004,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3446 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6034,7 +6016,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3456 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6046,7 +6028,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3484 + // line internal/php7/php7.y:3466 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6058,7 +6040,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3494 + // line internal/php7/php7.y:3476 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6077,7 +6059,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3511 + // line internal/php7/php7.y:3493 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6089,13 +6071,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3521 + // line internal/php7/php7.y:3503 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3507 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6108,7 +6090,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3536 + // line internal/php7/php7.y:3518 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6120,7 +6102,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3546 + // line internal/php7/php7.y:3528 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6131,7 +6113,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3555 + // line internal/php7/php7.y:3537 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6143,7 +6125,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3565 + // line internal/php7/php7.y:3547 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6157,7 +6139,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3577 + // line internal/php7/php7.y:3559 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6169,13 +6151,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3587 + // line internal/php7/php7.y:3569 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3591 + // line internal/php7/php7.y:3573 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6190,7 +6172,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3607 + // line internal/php7/php7.y:3589 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6212,7 +6194,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3627 + // line internal/php7/php7.y:3609 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6232,25 +6214,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3652 + // line internal/php7/php7.y:3634 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3656 + // line internal/php7/php7.y:3638 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3663 + // line internal/php7/php7.y:3645 { yyVAL.ClosureUse = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3667 + // line internal/php7/php7.y:3649 { yyVAL.ClosureUse = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6265,7 +6247,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3683 + // line internal/php7/php7.y:3665 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6274,7 +6256,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3690 + // line internal/php7/php7.y:3672 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6282,7 +6264,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3699 + // line internal/php7/php7.y:3681 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6299,7 +6281,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3714 + // line internal/php7/php7.y:3696 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6322,7 +6304,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3738 + // line internal/php7/php7.y:3720 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6337,7 +6319,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3751 + // line internal/php7/php7.y:3733 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6354,7 +6336,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3766 + // line internal/php7/php7.y:3748 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6371,7 +6353,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3781 + // line internal/php7/php7.y:3763 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6386,7 +6368,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3797 + // line internal/php7/php7.y:3779 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6398,31 +6380,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3807 + // line internal/php7/php7.y:3789 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3814 + // line internal/php7/php7.y:3796 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3800 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3807 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3811 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6432,20 +6414,16 @@ yydefault: Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3825 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3829 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6459,25 +6437,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3841 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3848 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3874 + // line internal/php7/php7.y:3852 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3859 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6492,7 +6470,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3894 + // line internal/php7/php7.y:3872 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6506,7 +6484,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3906 + // line internal/php7/php7.y:3884 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6518,7 +6496,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3919 + // line internal/php7/php7.y:3897 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6530,7 +6508,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3907 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6542,7 +6520,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3939 + // line internal/php7/php7.y:3917 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6554,7 +6532,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3949 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6566,7 +6544,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3937 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6578,7 +6556,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3969 + // line internal/php7/php7.y:3947 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6590,7 +6568,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6602,7 +6580,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3989 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6614,7 +6592,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3999 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6626,7 +6604,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4009 + // line internal/php7/php7.y:3987 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6638,7 +6616,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4019 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6659,7 +6637,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4038 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6671,7 +6649,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6684,7 +6662,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4059 + // line internal/php7/php7.y:4037 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6697,19 +6675,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4070 + // line internal/php7/php7.y:4048 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4074 + // line internal/php7/php7.y:4052 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4081 + // line internal/php7/php7.y:4059 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6720,7 +6698,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4090 + // line internal/php7/php7.y:4068 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6739,7 +6717,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4107 + // line internal/php7/php7.y:4085 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6758,41 +6736,66 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4127 + // line internal/php7/php7.y:4105 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4131 + // line internal/php7/php7.y:4109 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4138 + // line internal/php7/php7.y:4116 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4120 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4149 + // line internal/php7/php7.y:4127 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4156 + // line internal/php7/php7.y:4134 { yyVAL.node = yyDollar[1].node } case 427: + yyDollar = yyS[yypt-3 : yypt+1] + // line internal/php7/php7.y:4138 + { + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } + } + case 428: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php7/php7.y:4149 + { + yyVAL.node = yyDollar[1].node + } + case 429: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php7/php7.y:4156 + { + yyVAL.node = yyDollar[1].node + } + case 430: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4160 { @@ -6804,55 +6807,22 @@ yydefault: Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) - } - case 428: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4175 - { - yyVAL.node = yyDollar[1].node - } - case 429: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4182 - { - yyVAL.node = yyDollar[1].node - } - case 430: - yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4186 - { - yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, - } - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, yyDollar[1].token.SkippedTokens) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, yyDollar[3].token.SkippedTokens) } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4201 + // line internal/php7/php7.y:4171 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4208 + // line internal/php7/php7.y:4178 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4212 + // line internal/php7/php7.y:4182 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6866,7 +6836,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4224 + // line internal/php7/php7.y:4194 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6880,7 +6850,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4236 + // line internal/php7/php7.y:4206 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6894,7 +6864,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4248 + // line internal/php7/php7.y:4218 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6911,25 +6881,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4263 + // line internal/php7/php7.y:4233 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4270 + // line internal/php7/php7.y:4240 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4274 + // line internal/php7/php7.y:4244 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4278 + // line internal/php7/php7.y:4248 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6942,7 +6912,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4292 + // line internal/php7/php7.y:4262 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6959,7 +6929,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4307 + // line internal/php7/php7.y:4277 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6978,7 +6948,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4324 + // line internal/php7/php7.y:4294 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6990,7 +6960,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4337 + // line internal/php7/php7.y:4307 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7003,7 +6973,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4348 + // line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7016,13 +6986,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4362 + // line internal/php7/php7.y:4332 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4366 + // line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7036,7 +7006,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4378 + // line internal/php7/php7.y:4348 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7050,7 +7020,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4390 + // line internal/php7/php7.y:4360 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7063,7 +7033,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4401 + // line internal/php7/php7.y:4371 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7076,7 +7046,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4412 + // line internal/php7/php7.y:4382 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7089,7 +7059,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4426 + // line internal/php7/php7.y:4396 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7101,23 +7071,26 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4436 + // line internal/php7/php7.y:4406 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4444 + // line internal/php7/php7.y:4417 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4451 + // line internal/php7/php7.y:4424 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7129,23 +7102,26 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4461 + // line internal/php7/php7.y:4434 { - yyVAL.node = yyDollar[2].node - - // save comments - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.Start, append(yyDollar[1].token.SkippedTokens, yyVAL.node.GetNode().Tokens[token.Start]...)) - yylex.(*Parser).setFreeFloatingTokens(yyVAL.node, token.End, append(yyVAL.node.GetNode().Tokens[token.End], yyDollar[3].token.SkippedTokens...)) + yyVAL.node = &ast.ParserBrackets{ + Node: ast.Node{ + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + }, + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4469 + // line internal/php7/php7.y:4445 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4476 + // line internal/php7/php7.y:4452 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7158,19 +7134,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4490 + // line internal/php7/php7.y:4466 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4494 + // line internal/php7/php7.y:4470 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4501 + // line internal/php7/php7.y:4477 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7179,7 +7155,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4508 + // line internal/php7/php7.y:4484 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7187,7 +7163,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4517 + // line internal/php7/php7.y:4493 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7200,7 +7176,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4528 + // line internal/php7/php7.y:4504 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7211,7 +7187,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4537 + // line internal/php7/php7.y:4513 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7230,7 +7206,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4554 + // line internal/php7/php7.y:4530 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7247,7 +7223,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4569 + // line internal/php7/php7.y:4545 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7259,7 +7235,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4579 + // line internal/php7/php7.y:4555 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7281,7 +7257,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4599 + // line internal/php7/php7.y:4575 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7301,13 +7277,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4620 + // line internal/php7/php7.y:4596 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4624 + // line internal/php7/php7.y:4600 { yyVAL.list = append( yyDollar[1].list, @@ -7322,13 +7298,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4637 + // line internal/php7/php7.y:4613 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4641 + // line internal/php7/php7.y:4617 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7343,7 +7319,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4657 + // line internal/php7/php7.y:4633 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7360,7 +7336,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4672 + // line internal/php7/php7.y:4648 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7385,7 +7361,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4695 + // line internal/php7/php7.y:4671 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7415,7 +7391,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4723 + // line internal/php7/php7.y:4699 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7433,7 +7409,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4739 + // line internal/php7/php7.y:4715 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7457,7 +7433,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4761 + // line internal/php7/php7.y:4737 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7489,7 +7465,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4791 + // line internal/php7/php7.y:4767 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7502,7 +7478,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4805 + // line internal/php7/php7.y:4781 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7514,7 +7490,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4815 + // line internal/php7/php7.y:4791 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7537,7 +7513,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4836 + // line internal/php7/php7.y:4812 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7570,7 +7546,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4867 + // line internal/php7/php7.y:4843 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7587,7 +7563,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4885 + // line internal/php7/php7.y:4861 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7606,7 +7582,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4902 + // line internal/php7/php7.y:4878 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7620,7 +7596,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4914 + // line internal/php7/php7.y:4890 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7632,7 +7608,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4924 + // line internal/php7/php7.y:4900 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7644,7 +7620,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4934 + // line internal/php7/php7.y:4910 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7658,7 +7634,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4946 + // line internal/php7/php7.y:4922 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7670,7 +7646,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4956 + // line internal/php7/php7.y:4932 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7682,7 +7658,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4969 + // line internal/php7/php7.y:4945 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7690,7 +7666,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4975 + // line internal/php7/php7.y:4951 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7699,7 +7675,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4985 + // line internal/php7/php7.y:4961 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 338a084..bb74f7b 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -329,11 +329,6 @@ identifier: top_statement_list: top_statement_list top_statement { - if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { - prevNode := lastNode($1) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if $2 != nil { $$ = append($1, $2) } @@ -796,11 +791,6 @@ const_list: inner_statement_list: inner_statement_list inner_statement { - if inlineHtmlNode, ok := $2.(*ast.StmtInlineHtml); ok && len($1) > 0 { - prevNode := lastNode($1) - yylex.(*Parser).splitSemiColonAndPhpCloseTag(inlineHtmlNode, prevNode) - } - if $2 != nil { $$ = append($1, $2) } @@ -2633,8 +2623,6 @@ class_const_decl: EqualTkn: $2, Expr: $3, } - - yylex.(*Parser).setFreeFloating($$.(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) } ; @@ -2655,8 +2643,6 @@ const_decl: EqualTkn: $2, Expr: $3, } - - yylex.(*Parser).setFreeFloating($$.(*ast.StmtConstant).Name, token.Start, $1.SkippedTokens) } ; From 40b944a272261f750050dda40cdb3275ba0b899e Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 14:38:47 +0200 Subject: [PATCH 100/140] [refactoring] update ast structure of "ClassConstList", "Constant", "Use", "GroupUse", "UseDeclaration", "Closure", "Name", "FullyQualified", "Relative" and "NamePart" nodes --- internal/php5/php5.go | 1673 ++++++++++++------------ internal/php5/php5.y | 253 ++-- internal/php7/php7.go | 1307 +++++++++--------- internal/php7/php7.y | 177 +-- pkg/ast/node.go | 38 +- pkg/ast/visitor/dump.go | 1 - pkg/ast/visitor/filter_parser_nodes.go | 1077 --------------- pkg/ast/visitor/filter_tokens.go | 276 ---- pkg/printer/printer.go | 11 - 9 files changed, 1799 insertions(+), 3014 deletions(-) delete mode 100644 pkg/ast/visitor/filter_parser_nodes.go delete mode 100644 pkg/ast/visitor/filter_tokens.go diff --git a/internal/php5/php5.go b/internal/php5/php5.go index bff63f6..7f98c48 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -21,8 +21,6 @@ type yySymType struct { node ast.Vertex token *token.Token list []ast.Vertex - - ClosureUse *ast.ExprClosureUse } const T_INCLUDE = 57346 @@ -342,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6522 +// line internal/php5/php5.y:6567 // line yacctab:1 var yyExca = [...]int{ @@ -687,28 +685,28 @@ var yyAct = [...]int{ 284, 723, 259, 652, 650, 231, 521, 438, 647, 521, 91, 572, 963, 572, 971, 39, 602, 39, 514, 481, 395, 324, 203, 202, 199, 39, 136, 39, 39, 946, - 830, 521, 748, 754, 864, 445, 572, 971, 609, 589, - 959, 983, 590, 962, 39, 470, 260, 261, 39, 39, - 521, 259, 572, 591, 255, 994, 283, 572, 996, 285, - 260, 261, 840, 965, 998, 980, 964, 260, 261, 839, - 836, 1006, 1005, 39, 572, 1012, 531, 725, 698, 1013, - 538, 318, 531, 531, 993, 572, 1016, 518, 716, 314, + 748, 521, 754, 864, 445, 609, 572, 971, 589, 590, + 959, 983, 591, 962, 39, 470, 260, 261, 39, 39, + 521, 259, 572, 255, 840, 994, 283, 572, 996, 285, + 260, 261, 965, 964, 998, 980, 839, 260, 261, 836, + 1006, 1005, 725, 39, 572, 1012, 531, 698, 538, 1013, + 403, 318, 531, 531, 993, 572, 1016, 518, 716, 314, 422, 39, 658, 664, 665, 672, 673, 674, 675, 678, - 679, 127, 403, 259, 446, 231, 31, 231, 256, 654, - 531, 575, 296, 656, 655, 39, 260, 261, 449, 903, - 401, 39, 341, 657, 659, 660, 676, 677, 666, 460, - 147, 151, 155, 335, 945, 685, 165, 995, 478, 1009, - 929, 483, 343, 290, 198, 394, 389, 939, 896, 206, - 164, 157, 161, 528, 608, 231, 997, 970, 531, 969, - 223, 968, 967, 838, 235, 236, 237, 238, 260, 261, - 240, 837, 242, 243, 244, 245, 246, 247, 248, 835, - 252, 40, 568, 15, 821, 262, 14, 823, 566, 720, - 276, 277, 802, 279, 280, 695, 11, 249, 75, 76, - 531, 116, 266, 64, 291, 89, 671, 670, 658, 664, - 665, 672, 673, 674, 675, 678, 679, 598, 90, 520, - 101, 74, 12, 531, 326, 654, 531, 680, 662, 656, - 655, 305, 100, 99, 79, 119, 661, 526, 663, 657, - 659, 660, 676, 677, 666, 3, 240, 41, 531, 117, + 679, 127, 575, 259, 446, 231, 31, 231, 256, 654, + 531, 903, 296, 656, 655, 39, 260, 261, 449, 401, + 341, 39, 460, 657, 659, 660, 676, 677, 666, 335, + 147, 151, 155, 945, 685, 995, 165, 1009, 478, 929, + 483, 343, 290, 394, 198, 389, 939, 896, 164, 206, + 157, 161, 528, 608, 997, 231, 970, 969, 531, 968, + 223, 967, 838, 837, 235, 236, 237, 238, 260, 261, + 240, 835, 242, 243, 244, 245, 246, 247, 248, 40, + 252, 568, 15, 14, 821, 262, 823, 566, 720, 802, + 276, 277, 695, 279, 280, 11, 249, 75, 76, 116, + 531, 266, 64, 89, 291, 598, 671, 670, 658, 664, + 665, 672, 673, 674, 675, 678, 679, 90, 520, 101, + 74, 12, 326, 531, 100, 654, 531, 680, 662, 656, + 655, 305, 99, 79, 119, 526, 661, 3, 663, 657, + 659, 660, 676, 677, 666, 830, 240, 41, 531, 117, 842, 342, 0, 0, 0, 0, 843, 0, 0, 841, 0, 0, 0, 0, 0, 0, 0, 531, 0, 0, 880, 0, 0, 0, 361, 362, 363, 364, 365, 366, @@ -1598,78 +1596,78 @@ var yyPact = [...]int{ } var yyPgo = [...]int{ - 0, 29, 1177, 22, 8, 1175, 40, 33, 27, 940, - 1167, 1165, 36, 217, 1179, 91, 1036, 72, 99, 59, - 810, 200, 1164, 31, 1163, 1162, 1154, 42, 1152, 50, - 34, 1151, 1150, 1149, 1148, 131, 1147, 1135, 20, 1133, - 26, 38, 168, 1132, 722, 35, 1131, 1, 1129, 1128, - 24, 1127, 68, 51, 46, 1126, 1125, 1122, 28, 1119, - 3, 1118, 1117, 2, 1116, 1113, 1112, 16, 1111, 1109, - 1101, 1093, 48, 5, 1092, 1091, 1089, 1087, 1086, 6, - 1084, 1017, 1083, 1082, 1081, 18, 1042, 1080, 1078, 1077, - 1076, 1075, 1073, 41, 1072, 1071, 4, 1070, 1069, 1067, - 17, 1065, 12, 1064, 1063, 1059, 7, 21, 30, 1052, - 1050, 25, 1049, 1041, 1032, 14, 39, 0, 1031, 1019, - 1011, 391, 619, 1010, 1008, 52, 1007, 1002, 1001, 15, - 1000, 999, 996, 993, 992, 984, 983, 972, 23, 969, - 19, 9, 968, 37, 965, 964, 963, 962, 182, 13, - 960, 923, + 0, 29, 1177, 22, 8, 13, 1175, 1167, 40, 33, + 27, 940, 1165, 1164, 36, 217, 1179, 91, 1036, 72, + 99, 59, 810, 200, 1163, 31, 1162, 1154, 1152, 42, + 1151, 50, 34, 1150, 1149, 1148, 1147, 131, 1135, 1133, + 20, 1132, 26, 38, 168, 1131, 722, 35, 1129, 1, + 1128, 1127, 24, 1126, 68, 51, 46, 1125, 1122, 1119, + 28, 1118, 3, 1117, 1116, 2, 1113, 1112, 1111, 16, + 1109, 1101, 1093, 1092, 48, 5, 1091, 1089, 1087, 1086, + 1084, 6, 1083, 1017, 1082, 1081, 1080, 18, 1042, 1078, + 1077, 1076, 1075, 1073, 1072, 41, 1071, 1070, 4, 1069, + 1067, 1065, 17, 1064, 12, 1063, 1059, 1052, 7, 21, + 30, 1050, 1049, 25, 1041, 0, 1032, 1031, 1019, 1011, + 1010, 14, 39, 391, 619, 1008, 1007, 52, 1002, 1001, + 1000, 15, 999, 996, 993, 992, 984, 983, 972, 969, + 23, 968, 19, 9, 965, 37, 964, 963, 962, 960, + 182, 923, } var yyR1 = [...]int{ - 0, 151, 116, 116, 117, 117, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 118, 118, - 6, 6, 6, 6, 119, 119, 7, 7, 7, 7, - 120, 120, 8, 8, 8, 8, 55, 55, 121, 121, - 26, 26, 26, 26, 26, 27, 27, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 126, 126, 62, 62, 127, - 127, 128, 128, 63, 90, 90, 58, 53, 54, 149, - 149, 150, 150, 64, 65, 65, 68, 68, 68, 68, - 110, 110, 2, 114, 114, 113, 113, 111, 111, 107, - 107, 106, 106, 106, 103, 103, 102, 102, 59, 59, - 91, 91, 94, 94, 94, 94, 125, 125, 125, 4, - 4, 104, 104, 123, 123, 124, 124, 56, 56, 57, - 57, 60, 60, 61, 61, 67, 67, 66, 66, 66, - 66, 86, 86, 86, 95, 95, 72, 72, 72, 72, - 84, 84, 29, 29, 29, 83, 83, 83, 83, 129, - 129, 69, 69, 69, 69, 71, 112, 112, 89, 89, - 132, 132, 133, 133, 73, 73, 74, 99, 99, 77, - 77, 76, 75, 75, 78, 78, 98, 98, 130, 130, - 131, 131, 134, 134, 79, 79, 79, 79, 79, 79, - 88, 88, 88, 88, 70, 70, 87, 87, 108, 108, - 109, 109, 138, 138, 136, 136, 137, 137, 137, 139, - 139, 44, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 52, 52, 52, 52, - 49, 49, 49, 49, 48, 48, 1, 115, 115, 97, - 97, 97, 97, 25, 25, 25, 25, 25, 25, 25, - 25, 13, 13, 13, 13, 47, 47, 47, 45, 45, - 43, 43, 146, 146, 145, 51, 51, 51, 135, 135, - 135, 85, 85, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 10, 30, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 37, 37, 37, 37, 31, 31, 31, 31, 31, 31, - 31, 100, 100, 3, 3, 101, 101, 101, 101, 16, - 16, 50, 50, 18, 19, 20, 21, 21, 147, 147, - 140, 142, 142, 80, 141, 141, 141, 42, 42, 46, - 46, 14, 24, 24, 22, 22, 22, 23, 23, 23, - 12, 12, 12, 11, 11, 15, 15, 143, 143, 144, - 144, 144, 41, 41, 148, 148, 96, 96, 40, 40, - 40, 93, 93, 92, 92, 92, 92, 92, 92, 92, - 92, 122, 122, 122, 122, 35, 35, 35, 35, 35, - 35, 35, 36, 36, 36, 39, 39, 39, 39, 39, - 39, 39, 39, 105, 105, 38, 38, 32, 32, 33, - 34, + 0, 151, 122, 122, 115, 115, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 117, 117, + 8, 8, 8, 8, 118, 118, 9, 9, 9, 9, + 119, 119, 10, 10, 10, 10, 57, 57, 123, 123, + 28, 28, 28, 28, 28, 29, 29, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 128, 128, 64, 64, 129, + 129, 130, 130, 65, 92, 92, 60, 55, 56, 5, + 5, 6, 6, 66, 67, 67, 70, 70, 70, 70, + 112, 112, 2, 120, 120, 116, 116, 113, 113, 109, + 109, 108, 108, 108, 105, 105, 104, 104, 61, 61, + 93, 93, 96, 96, 96, 96, 127, 127, 127, 4, + 4, 106, 106, 125, 125, 126, 126, 58, 58, 59, + 59, 62, 62, 63, 63, 69, 69, 68, 68, 68, + 68, 88, 88, 88, 97, 97, 74, 74, 74, 74, + 86, 86, 31, 31, 31, 85, 85, 85, 85, 131, + 131, 71, 71, 71, 71, 73, 114, 114, 91, 91, + 134, 134, 135, 135, 75, 75, 76, 101, 101, 79, + 79, 78, 77, 77, 80, 80, 100, 100, 132, 132, + 133, 133, 136, 136, 81, 81, 81, 81, 81, 81, + 90, 90, 90, 90, 72, 72, 89, 89, 110, 110, + 111, 111, 140, 140, 138, 138, 139, 139, 139, 141, + 141, 46, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 54, 54, 54, 54, + 51, 51, 51, 51, 50, 50, 1, 121, 121, 99, + 99, 99, 99, 27, 27, 27, 27, 27, 27, 27, + 27, 15, 15, 15, 15, 49, 49, 49, 47, 47, + 45, 45, 148, 148, 147, 53, 53, 53, 137, 137, + 137, 87, 87, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 12, 32, 83, 83, 83, + 83, 83, 83, 83, 83, 83, 83, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 39, 39, 39, 39, 33, 33, 33, 33, 33, 33, + 33, 102, 102, 3, 3, 103, 103, 103, 103, 18, + 18, 52, 52, 20, 21, 22, 23, 23, 149, 149, + 142, 144, 144, 82, 143, 143, 143, 44, 44, 48, + 48, 16, 26, 26, 24, 24, 24, 25, 25, 25, + 14, 14, 14, 13, 13, 17, 17, 145, 145, 146, + 146, 146, 43, 43, 150, 150, 98, 98, 42, 42, + 42, 95, 95, 94, 94, 94, 94, 94, 94, 94, + 94, 124, 124, 124, 124, 37, 37, 37, 37, 37, + 37, 37, 38, 38, 38, 41, 41, 41, 41, 41, + 41, 41, 41, 107, 107, 40, 40, 34, 34, 35, + 36, } var yyR2 = [...]int{ @@ -1729,109 +1727,109 @@ var yyR2 = [...]int{ } var yyChk = [...]int{ - -1000, -151, -116, -5, 2, -27, -53, -54, 52, 80, - 45, -55, -28, 10, -64, -65, 39, 144, 7, 21, - 20, 23, 30, 34, 35, 40, -52, 47, 99, 19, - 14, -16, 49, 25, 27, 146, 41, 44, 36, -1, - -68, -2, 98, -18, -17, 37, 53, 100, 54, 101, - 55, -21, 60, 93, -20, 105, 106, 155, 154, 156, - 157, -50, -44, 148, -39, 108, 109, 110, 111, 112, - 113, 114, 6, 158, -31, -49, -48, 143, 97, -22, - 92, 50, 51, 4, 5, 85, 86, 87, 11, -37, - -34, -9, 142, 75, 63, 18, 61, 150, -23, -24, - -25, -32, -117, 83, -13, 8, 9, 67, 68, 82, - 64, 65, 66, 81, -12, -148, -46, -14, -42, -11, - 159, 12, 148, -117, 144, 83, 10, -118, 37, 39, - -6, -117, 83, 146, 160, 147, 10, -121, -50, 148, - -50, -27, -1, 80, 148, -50, 146, -16, 98, 99, - 146, -16, 146, -17, -21, -16, 146, -84, -29, 12, - 159, -83, -1, 12, -87, -16, 146, 131, 132, 88, + -1000, -151, -122, -7, 2, -29, -55, -56, 52, 80, + 45, -57, -30, 10, -66, -67, 39, 144, 7, 21, + 20, 23, 30, 34, 35, 40, -54, 47, 99, 19, + 14, -18, 49, 25, 27, 146, 41, 44, 36, -1, + -70, -2, 98, -20, -19, 37, 53, 100, 54, 101, + 55, -23, 60, 93, -22, 105, 106, 155, 154, 156, + 157, -52, -46, 148, -41, 108, 109, 110, 111, 112, + 113, 114, 6, 158, -33, -51, -50, 143, 97, -24, + 92, 50, 51, 4, 5, 85, 86, 87, 11, -39, + -36, -11, 142, 75, 63, 18, 61, 150, -25, -26, + -27, -34, -115, 83, -15, 8, 9, 67, 68, 82, + 64, 65, 66, 81, -14, -150, -48, -16, -44, -13, + 159, 12, 148, -115, 144, 83, 10, -117, 37, 39, + -8, -115, 83, 146, 160, 147, 10, -123, -52, 148, + -52, -29, -1, 80, 148, -52, 146, -18, 98, 99, + 146, -18, 146, -19, -23, -18, 146, -86, -31, 12, + 159, -85, -1, 12, -89, -18, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, - 168, 141, 91, 152, 148, 148, 148, 144, -16, 10, - -149, 153, 10, 10, -17, -21, -16, 53, 53, 162, + 168, 141, 91, 152, 148, 148, 148, 144, -18, 10, + -5, 153, 10, 10, -19, -23, -18, 53, 53, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 148, -16, 105, 106, -20, -21, -117, 80, - 83, -13, -14, 99, -20, -16, -16, -16, -16, -44, - -16, -52, -16, -16, -16, -16, -16, -16, -16, -51, - 148, -50, -16, 150, 150, -135, 17, -122, -35, 12, - 77, 78, -16, 58, -45, -13, -43, -117, 80, 83, - -23, -12, -148, -14, 148, 148, -16, -16, 148, -16, - -16, 150, -122, 17, 17, 76, -122, 150, 148, -93, - -92, -16, 153, 150, 150, 83, -86, 148, -117, 79, - 150, 144, -12, 159, 79, -86, 144, 149, 146, 144, - -116, -117, 146, 160, -119, -7, -117, 83, -120, -8, - -117, 83, 29, -117, 10, 162, -26, 145, 2, -27, - -53, -54, 52, -27, 147, -104, -27, 147, 21, -149, - -108, -109, -16, -94, 144, 147, 146, 146, 146, 146, - 146, 160, -18, 144, -21, 146, 160, -149, 162, 146, - 160, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -45, -16, 147, -90, - -58, -21, -21, -17, -91, 10, -121, 146, 146, 10, - 148, -110, 56, -114, 56, 59, -16, 153, -16, -16, - -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, - -96, -40, -21, 60, 83, -117, 79, 79, 149, 149, - 149, 149, -15, -16, -15, 143, -35, -35, 17, 150, - 58, -16, 11, -21, -143, -144, -42, -41, -12, -148, - 10, 144, -85, -86, 79, 83, -117, 58, -12, 79, - -105, -38, -21, -17, -21, -16, -16, -15, 142, 76, - 76, -15, -93, 151, -3, 160, 59, -19, -21, -15, - -15, 10, 149, -95, -52, -72, -17, -21, 153, 84, - -86, -41, -42, 10, 53, -15, -16, -41, -42, 10, - -16, 146, -116, 145, -86, -6, 146, 160, 29, -117, - 146, 160, 29, -117, 10, 29, 162, -30, -81, -9, - -33, -117, 80, 83, 61, 150, -10, 63, -82, 18, - 75, -13, 156, 157, 155, 154, 148, 148, -123, -121, - -121, -50, 146, 160, -125, 146, -125, 146, -29, -16, - 12, 148, -30, -16, 147, -16, 149, 160, 29, 29, - 149, 160, 162, 145, 148, -60, -61, -67, -66, 61, - 62, -47, -117, 80, 83, -113, 57, -47, 144, -111, - -47, -17, -21, -21, 92, 149, 160, 148, -117, -139, - -137, -136, -138, 150, -140, 58, 151, 151, -36, 10, - 13, 12, 10, 145, 145, 150, 145, -141, -80, -142, - -86, 150, 144, -12, -16, -42, -117, -143, -42, 149, - 160, 149, 149, 149, 151, 151, 149, -16, 153, -16, - 153, 151, 151, 149, 160, 149, -19, -16, -86, -86, - 151, 145, -86, -86, 145, 145, -7, 10, 29, -8, - 10, 29, 10, -30, 150, 155, 154, 164, 133, 165, + 128, 129, 148, -18, 105, 106, -22, -23, -115, 80, + 83, -15, -16, 99, -22, -18, -18, -18, -18, -46, + -18, -54, -18, -18, -18, -18, -18, -18, -18, -53, + 148, -52, -18, 150, 150, -137, 17, -124, -37, 12, + 77, 78, -18, 58, -47, -15, -45, -115, 80, 83, + -25, -14, -150, -16, 148, 148, -18, -18, 148, -18, + -18, 150, -124, 17, 17, 76, -124, 150, 148, -95, + -94, -18, 153, 150, 150, 83, -88, 148, -115, 79, + 150, 144, -14, 159, 79, -88, 144, 149, 146, 144, + -122, -115, 146, 160, -118, -9, -115, 83, -119, -10, + -115, 83, 29, -115, 10, 162, -28, 145, 2, -29, + -55, -56, 52, -29, 147, -106, -29, 147, 21, -5, + -110, -111, -18, -96, 144, 147, 146, 146, 146, 146, + 146, 160, -20, 144, -23, 146, 160, -5, 162, 146, + 160, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -47, -18, 147, -92, + -60, -23, -23, -19, -93, 10, -123, 146, 146, 10, + 148, -112, 56, -120, 56, 59, -18, 153, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -98, -42, -23, 60, 83, -115, 79, 79, 149, 149, + 149, 149, -17, -18, -17, 143, -37, -37, 17, 150, + 58, -18, 11, -23, -145, -146, -44, -43, -14, -150, + 10, 144, -87, -88, 79, 83, -115, 58, -14, 79, + -107, -40, -23, -19, -23, -18, -18, -17, 142, 76, + 76, -17, -95, 151, -3, 160, 59, -21, -23, -17, + -17, 10, 149, -97, -54, -74, -19, -23, 153, 84, + -88, -43, -44, 10, 53, -17, -18, -43, -44, 10, + -18, 146, -122, 145, -88, -8, 146, 160, 29, -115, + 146, 160, 29, -115, 10, 29, 162, -32, -83, -11, + -35, -115, 80, 83, 61, 150, -12, 63, -84, 18, + 75, -15, 156, 157, 155, 154, 148, 148, -125, -123, + -123, -52, 146, 160, -127, 146, -127, 146, -31, -18, + 12, 148, -32, -18, 147, -18, 149, 160, 29, 29, + 149, 160, 162, 145, 148, -62, -63, -69, -68, 61, + 62, -49, -115, 80, 83, -116, 57, -49, 144, -113, + -49, -19, -23, -23, 92, 149, 160, 148, -115, -141, + -139, -138, -140, 150, -142, 58, 151, 151, -38, 10, + 13, 12, 10, 145, 145, 150, 145, -143, -82, -144, + -88, 150, 144, -14, -18, -44, -115, -145, -44, 149, + 160, 149, 149, 149, 151, 151, 149, -18, 153, -18, + 153, 151, 151, 149, 160, 149, -21, -18, -88, -88, + 151, 145, -88, -88, 145, 145, -9, 10, 29, -10, + 10, 29, 10, -32, 150, 155, 154, 164, 133, 165, 166, 161, 153, 163, 134, 135, 169, 89, 90, 88, 132, 131, 136, 137, 138, 139, 167, 168, 140, 141, - 152, 83, -117, 148, -100, -101, -81, 17, 79, -81, - -81, -81, -81, -81, 149, -56, 94, 95, -124, 22, - 146, -108, -16, 145, 32, 33, -125, 31, -125, 145, - 162, -60, -16, 146, -58, -106, -21, 153, 60, -106, - -59, -27, 147, 10, -30, -126, 42, -60, 149, 160, - -149, 83, -117, 144, -111, -129, 160, -45, 162, -40, - -96, 150, -138, -140, -15, -143, 151, -16, -147, 150, - 150, -15, -16, 145, -146, -38, 59, -19, -19, -72, - 10, 10, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, - -81, -81, -81, -81, -81, -81, -81, -81, 147, -81, - -117, -100, 151, -3, 160, 59, 10, 53, 149, 146, - -50, -27, -57, 94, 95, 146, 146, -16, -4, 147, - 146, 145, 146, 31, -30, 149, -107, 59, -21, 148, - -107, -121, 162, -62, 43, 148, 149, -115, 45, -67, - -150, 84, -117, -129, 145, -69, -130, -70, -71, -131, - -134, 48, 39, 45, -79, 104, 103, 102, 99, 100, - 101, -47, -85, -16, 149, -15, 151, -141, 151, -140, - -15, -15, 151, 145, -145, 58, -16, 153, 151, -81, - 147, 149, -81, -81, -27, 96, -50, 147, -108, -4, - -121, 146, -115, 149, -106, -96, 149, 28, -30, 144, - -47, 144, 144, 148, 12, 145, -88, 12, 146, 160, - -1, -79, 10, -112, -47, 151, 145, 151, 151, -143, - -19, -81, 59, 146, 147, -121, 149, -121, 144, -102, - -27, 147, 149, -102, 146, -121, 12, -121, -121, -97, - 12, 153, 162, 146, 160, 162, 10, -149, 162, -89, - 160, 146, 144, -81, -121, -103, -27, 147, -121, -121, - 145, 149, 145, 145, 149, 160, 12, -16, 12, -30, - 162, 10, -30, -47, -132, -133, -73, -74, -75, -76, - -77, -47, 10, -121, 145, 26, 144, 12, 153, 162, - -30, 148, 145, -73, 146, 146, 46, 29, 79, 24, - 146, -121, 12, -30, -60, -99, -47, -78, -79, 10, - 146, 145, 149, 160, 10, -127, -128, -63, 42, -98, - 146, 144, -47, -63, 148, -121, -47, 145, 12, 149, - 144, -121, 145, + 152, 83, -115, 148, -102, -103, -83, 17, 79, -83, + -83, -83, -83, -83, 149, -58, 94, 95, -126, 22, + 146, -110, -18, 145, 32, 33, -127, 31, -127, 145, + 162, -62, -18, 146, -60, -108, -23, 153, 60, -108, + -61, -29, 147, 10, -32, -128, 42, -62, 149, 160, + -5, 83, -115, 144, -113, -131, 160, -47, 162, -42, + -98, 150, -140, -142, -17, -145, 151, -18, -149, 150, + 150, -17, -18, 145, -148, -40, 59, -21, -21, -74, + 10, 10, -83, -83, -83, -83, -83, -83, -83, -83, + -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, + -83, -83, -83, -83, -83, -83, -83, -83, 147, -83, + -115, -102, 151, -3, 160, 59, 10, 53, 149, 146, + -52, -29, -59, 94, 95, 146, 146, -18, -4, 147, + 146, 145, 146, 31, -32, 149, -109, 59, -23, 148, + -109, -123, 162, -64, 43, 148, 149, -121, 45, -69, + -6, 84, -115, -131, 145, -71, -132, -72, -73, -133, + -136, 48, 39, 45, -81, 104, 103, 102, 99, 100, + 101, -49, -87, -18, 149, -17, 151, -143, 151, -142, + -17, -17, 151, 145, -147, 58, -18, 153, 151, -83, + 147, 149, -83, -83, -29, 96, -52, 147, -110, -4, + -123, 146, -121, 149, -108, -98, 149, 28, -32, 144, + -49, 144, 144, 148, 12, 145, -90, 12, 146, 160, + -1, -81, 10, -114, -49, 151, 145, 151, 151, -145, + -21, -83, 59, 146, 147, -123, 149, -123, 144, -104, + -29, 147, 149, -104, 146, -123, 12, -123, -123, -99, + 12, 153, 162, 146, 160, 162, 10, -5, 162, -91, + 160, 146, 144, -83, -123, -105, -29, 147, -123, -123, + 145, 149, 145, 145, 149, 160, 12, -18, 12, -32, + 162, 10, -32, -49, -134, -135, -75, -76, -77, -78, + -79, -49, 10, -123, 145, 26, 144, 12, 153, 162, + -32, 148, 145, -75, 146, 146, 46, 29, 79, 24, + 146, -123, 12, -32, -62, -101, -49, -80, -81, 10, + 146, 145, 149, 160, 10, -129, -130, -65, 42, -100, + 146, 144, -49, -65, 148, -123, -49, 145, 12, 149, + 144, -123, 145, } var yyDef = [...]int{ @@ -2316,7 +2314,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:269 +// line internal/php5/php5.y:267 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2328,7 +2326,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:282 +// line internal/php5/php5.y:280 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2336,65 +2334,71 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:288 +// line internal/php5/php5.y:286 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:295 +// line internal/php5/php5.y:293 { - yyVAL.list = []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, }, - StringTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, }, } } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:307 +// line internal/php5/php5.y:307 { - yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ + part := &ast.NameNamePart{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token), + Position: position.NewTokenPosition(yyDollar[3].token), }, - NsSeparatorTkn: yyDollar[2].token, - StringTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, - }) + StringTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, part) + + yyVAL.node = yyDollar[1].node } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:321 +// line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:326 +// line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:330 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2408,7 +2412,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:350 +// line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2417,16 +2421,17 @@ yydefault: NsTkn: yyDollar[1].token, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: yyDollar[3].token, } } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:366 +// line internal/php5/php5.y:371 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2435,9 +2440,10 @@ yydefault: NsTkn: yyDollar[1].token, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracket: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -2446,7 +2452,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:384 +// line internal/php5/php5.y:390 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2460,20 +2466,21 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:396 +// line internal/php5/php5.y:402 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, UseTkn: yyDollar[1].token, - UseDeclarations: yyDollar[2].list, + UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[3].token, } } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:407 +// line internal/php5/php5.y:414 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2487,13 +2494,14 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - UseDeclarations: yyDollar[3].list, + UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:425 +// line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2507,13 +2515,14 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - UseDeclarations: yyDollar[3].list, + UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:443 +// line internal/php5/php5.y:452 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2521,47 +2530,52 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:452 +// line internal/php5/php5.y:461 { - yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:458 +// line internal/php5/php5.y:468 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:465 +// line internal/php5/php5.y:477 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:479 +// line internal/php5/php5.y:492 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -2575,24 +2589,25 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:501 +// line internal/php5/php5.y:515 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:516 +// line internal/php5/php5.y:531 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2601,9 +2616,10 @@ yydefault: NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ @@ -2617,47 +2633,52 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:542 +// line internal/php5/php5.y:558 { - yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:548 +// line internal/php5/php5.y:565 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:555 +// line internal/php5/php5.y:574 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:569 +// line internal/php5/php5.y:589 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -2671,24 +2692,25 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:591 +// line internal/php5/php5.y:612 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:606 +// line internal/php5/php5.y:628 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2697,9 +2719,10 @@ yydefault: NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ @@ -2713,47 +2736,52 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:632 +// line internal/php5/php5.y:655 { - yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:638 +// line internal/php5/php5.y:662 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:645 +// line internal/php5/php5.y:671 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:659 +// line internal/php5/php5.y:686 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -2767,24 +2795,25 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:681 +// line internal/php5/php5.y:709 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:696 +// line internal/php5/php5.y:725 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2793,9 +2822,10 @@ yydefault: NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ @@ -2809,7 +2839,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:722 +// line internal/php5/php5.y:752 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2833,7 +2863,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:744 +// line internal/php5/php5.y:774 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2860,7 +2890,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:772 +// line internal/php5/php5.y:802 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2868,38 +2898,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:778 +// line internal/php5/php5.y:808 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:786 +// line internal/php5/php5.y:816 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:791 +// line internal/php5/php5.y:821 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:795 +// line internal/php5/php5.y:825 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:799 +// line internal/php5/php5.y:829 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:803 +// line internal/php5/php5.y:833 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2913,13 +2943,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:819 +// line internal/php5/php5.y:849 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:823 +// line internal/php5/php5.y:853 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2937,7 +2967,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:842 +// line internal/php5/php5.y:872 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2950,7 +2980,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:853 +// line internal/php5/php5.y:883 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2974,7 +3004,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:875 +// line internal/php5/php5.y:905 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3000,7 +3030,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:899 +// line internal/php5/php5.y:929 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3012,7 +3042,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:909 +// line internal/php5/php5.y:939 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3029,7 +3059,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:924 +// line internal/php5/php5.y:954 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3048,7 +3078,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:941 +// line internal/php5/php5.y:971 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3060,7 +3090,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:951 +// line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3072,7 +3102,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:961 +// line internal/php5/php5.y:991 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3085,7 +3115,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:972 +// line internal/php5/php5.y:1002 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3097,7 +3127,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:982 +// line internal/php5/php5.y:1012 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3110,7 +3140,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:993 +// line internal/php5/php5.y:1023 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3122,7 +3152,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1003 +// line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3135,7 +3165,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1014 +// line internal/php5/php5.y:1044 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3148,7 +3178,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1025 +// line internal/php5/php5.y:1055 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3160,7 +3190,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1035 +// line internal/php5/php5.y:1065 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3171,7 +3201,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1044 +// line internal/php5/php5.y:1074 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3182,7 +3212,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1053 +// line internal/php5/php5.y:1083 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3192,7 +3222,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1061 +// line internal/php5/php5.y:1091 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3204,7 +3234,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1071 +// line internal/php5/php5.y:1101 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3216,7 +3246,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1081 +// line internal/php5/php5.y:1111 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3228,7 +3258,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1091 +// line internal/php5/php5.y:1121 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3248,7 +3278,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1109 +// line internal/php5/php5.y:1139 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3268,7 +3298,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1127 +// line internal/php5/php5.y:1157 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3281,7 +3311,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1138 +// line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3292,7 +3322,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1147 +// line internal/php5/php5.y:1177 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3311,7 +3341,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1164 +// line internal/php5/php5.y:1194 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3324,7 +3354,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1175 +// line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3343,13 +3373,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1195 +// line internal/php5/php5.y:1225 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1199 +// line internal/php5/php5.y:1229 { catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3379,13 +3409,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1230 +// line internal/php5/php5.y:1260 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1234 +// line internal/php5/php5.y:1264 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3399,31 +3429,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1249 +// line internal/php5/php5.y:1279 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1253 +// line internal/php5/php5.y:1283 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1260 +// line internal/php5/php5.y:1290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1264 +// line internal/php5/php5.y:1294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1271 +// line internal/php5/php5.y:1301 { yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3452,7 +3482,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1301 +// line internal/php5/php5.y:1331 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3460,7 +3490,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1307 +// line internal/php5/php5.y:1337 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3469,49 +3499,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1317 +// line internal/php5/php5.y:1347 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1324 +// line internal/php5/php5.y:1354 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1361 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1338 +// line internal/php5/php5.y:1368 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1342 +// line internal/php5/php5.y:1372 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1349 +// line internal/php5/php5.y:1379 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1353 +// line internal/php5/php5.y:1383 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1360 +// line internal/php5/php5.y:1390 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3537,7 +3567,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1387 +// line internal/php5/php5.y:1417 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3574,7 +3604,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1422 +// line internal/php5/php5.y:1452 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3596,7 +3626,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1446 +// line internal/php5/php5.y:1476 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3607,7 +3637,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1455 +// line internal/php5/php5.y:1485 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3627,7 +3657,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1473 +// line internal/php5/php5.y:1503 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3638,7 +3668,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1482 +// line internal/php5/php5.y:1512 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3658,13 +3688,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1503 +// line internal/php5/php5.y:1533 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1507 +// line internal/php5/php5.y:1537 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3676,19 +3706,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1520 +// line internal/php5/php5.y:1550 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1527 +// line internal/php5/php5.y:1557 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1531 +// line internal/php5/php5.y:1561 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3701,13 +3731,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1545 +// line internal/php5/php5.y:1575 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1549 +// line internal/php5/php5.y:1579 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3720,7 +3750,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1563 +// line internal/php5/php5.y:1593 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3728,7 +3758,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1569 +// line internal/php5/php5.y:1599 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3737,13 +3767,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1579 +// line internal/php5/php5.y:1609 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1583 +// line internal/php5/php5.y:1613 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3752,13 +3782,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1593 +// line internal/php5/php5.y:1623 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1597 +// line internal/php5/php5.y:1627 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3770,7 +3800,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1607 +// line internal/php5/php5.y:1637 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3792,7 +3822,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1630 +// line internal/php5/php5.y:1660 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3803,7 +3833,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1639 +// line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3823,7 +3853,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1660 +// line internal/php5/php5.y:1690 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3834,7 +3864,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1669 +// line internal/php5/php5.y:1699 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3854,7 +3884,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1691 +// line internal/php5/php5.y:1721 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3865,7 +3895,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1700 +// line internal/php5/php5.y:1730 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3885,7 +3915,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1722 +// line internal/php5/php5.y:1752 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3908,7 +3938,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1743 +// line internal/php5/php5.y:1773 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3933,7 +3963,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1770 +// line internal/php5/php5.y:1800 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3946,7 +3976,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1781 +// line internal/php5/php5.y:1811 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3960,7 +3990,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1793 +// line internal/php5/php5.y:1823 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3975,7 +4005,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1806 +// line internal/php5/php5.y:1836 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3991,13 +4021,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1824 +// line internal/php5/php5.y:1854 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1828 +// line internal/php5/php5.y:1858 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4011,7 +4041,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1840 +// line internal/php5/php5.y:1870 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4024,19 +4054,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1855 +// line internal/php5/php5.y:1885 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1859 +// line internal/php5/php5.y:1889 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1867 +// line internal/php5/php5.y:1897 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4047,7 +4077,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1876 +// line internal/php5/php5.y:1906 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4067,13 +4097,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1899 +// line internal/php5/php5.y:1929 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1903 +// line internal/php5/php5.y:1933 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4088,13 +4118,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1920 +// line internal/php5/php5.y:1950 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1924 +// line internal/php5/php5.y:1954 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4116,13 +4146,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1948 +// line internal/php5/php5.y:1978 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1952 +// line internal/php5/php5.y:1982 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4134,13 +4164,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1966 +// line internal/php5/php5.y:1996 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1970 +// line internal/php5/php5.y:2000 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4159,19 +4189,19 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1991 +// line internal/php5/php5.y:2021 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1995 +// line internal/php5/php5.y:2025 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2002 +// line internal/php5/php5.y:2032 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4179,7 +4209,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2008 +// line internal/php5/php5.y:2038 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4188,7 +4218,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2018 +// line internal/php5/php5.y:2048 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4222,7 +4252,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2050 +// line internal/php5/php5.y:2080 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4258,13 +4288,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2088 +// line internal/php5/php5.y:2118 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2092 +// line internal/php5/php5.y:2122 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4276,7 +4306,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2102 +// line internal/php5/php5.y:2132 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4288,13 +4318,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2112 +// line internal/php5/php5.y:2142 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2120 +// line internal/php5/php5.y:2150 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4306,7 +4336,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2130 +// line internal/php5/php5.y:2160 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4317,7 +4347,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2139 +// line internal/php5/php5.y:2169 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4337,7 +4367,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2161 +// line internal/php5/php5.y:2191 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4345,7 +4375,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2167 +// line internal/php5/php5.y:2197 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4354,7 +4384,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2177 +// line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4365,7 +4395,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2186 +// line internal/php5/php5.y:2216 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4376,7 +4406,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2195 +// line internal/php5/php5.y:2225 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4388,7 +4418,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2205 +// line internal/php5/php5.y:2235 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4400,7 +4430,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2218 +// line internal/php5/php5.y:2248 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4409,7 +4439,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2225 +// line internal/php5/php5.y:2255 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4417,7 +4447,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2235 +// line internal/php5/php5.y:2265 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4434,7 +4464,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2250 +// line internal/php5/php5.y:2280 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4446,7 +4476,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2260 +// line internal/php5/php5.y:2290 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4465,7 +4495,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2281 +// line internal/php5/php5.y:2311 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4490,7 +4520,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2304 +// line internal/php5/php5.y:2334 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4517,7 +4547,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2329 +// line internal/php5/php5.y:2359 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4543,7 +4573,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2353 +// line internal/php5/php5.y:2383 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4571,19 +4601,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2383 +// line internal/php5/php5.y:2413 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2387 +// line internal/php5/php5.y:2417 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2395 +// line internal/php5/php5.y:2425 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4597,7 +4627,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2407 +// line internal/php5/php5.y:2437 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4605,13 +4635,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2413 +// line internal/php5/php5.y:2443 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2417 +// line internal/php5/php5.y:2447 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4641,7 +4671,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2448 +// line internal/php5/php5.y:2478 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4655,7 +4685,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2463 +// line internal/php5/php5.y:2493 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4663,7 +4693,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2469 +// line internal/php5/php5.y:2499 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4672,7 +4702,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2479 +// line internal/php5/php5.y:2509 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4683,7 +4713,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2488 +// line internal/php5/php5.y:2518 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4696,31 +4726,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2502 +// line internal/php5/php5.y:2532 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2506 +// line internal/php5/php5.y:2536 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2513 +// line internal/php5/php5.y:2543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2517 +// line internal/php5/php5.y:2547 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2524 +// line internal/php5/php5.y:2554 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4728,7 +4758,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2530 +// line internal/php5/php5.y:2560 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4736,7 +4766,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2539 +// line internal/php5/php5.y:2569 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4750,7 +4780,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2554 +// line internal/php5/php5.y:2584 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4758,7 +4788,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2560 +// line internal/php5/php5.y:2590 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4767,7 +4797,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2570 +// line internal/php5/php5.y:2600 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4784,13 +4814,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2585 +// line internal/php5/php5.y:2615 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2592 +// line internal/php5/php5.y:2622 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4809,7 +4839,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2612 +// line internal/php5/php5.y:2642 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4829,7 +4859,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2630 +// line internal/php5/php5.y:2660 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4842,19 +4872,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2644 +// line internal/php5/php5.y:2674 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2648 +// line internal/php5/php5.y:2678 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2655 +// line internal/php5/php5.y:2685 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4865,7 +4895,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2664 +// line internal/php5/php5.y:2694 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4878,13 +4908,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 +// line internal/php5/php5.y:2708 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2682 +// line internal/php5/php5.y:2712 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4898,31 +4928,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2697 +// line internal/php5/php5.y:2727 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2701 +// line internal/php5/php5.y:2731 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2708 +// line internal/php5/php5.y:2738 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2742 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2719 +// line internal/php5/php5.y:2749 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4934,7 +4964,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2729 +// line internal/php5/php5.y:2759 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4946,7 +4976,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2739 +// line internal/php5/php5.y:2769 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4958,7 +4988,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2749 +// line internal/php5/php5.y:2779 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4970,7 +5000,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2759 +// line internal/php5/php5.y:2789 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4982,7 +5012,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2769 +// line internal/php5/php5.y:2799 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4994,7 +5024,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2782 +// line internal/php5/php5.y:2812 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5021,7 +5051,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2807 +// line internal/php5/php5.y:2837 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5050,7 +5080,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2834 +// line internal/php5/php5.y:2864 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5077,7 +5107,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2859 +// line internal/php5/php5.y:2889 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5105,11 +5135,11 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2888 +// line internal/php5/php5.y:2918 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) - lastNode(yyVAL.node.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).CommaTkn = yyDollar[2].token + constList.SeparatorTkns = append(constList.SeparatorTkns, yyDollar[2].token) constList.Consts = append(constList.Consts, &ast.StmtConstant{ Node: ast.Node{ Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -5129,7 +5159,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2910 +// line internal/php5/php5.y:2940 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5156,7 +5186,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2938 +// line internal/php5/php5.y:2968 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5165,7 +5195,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2945 +// line internal/php5/php5.y:2975 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5173,19 +5203,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2955 +// line internal/php5/php5.y:2985 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2959 +// line internal/php5/php5.y:2989 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2966 +// line internal/php5/php5.y:2996 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5194,7 +5224,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2973 +// line internal/php5/php5.y:3003 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5202,19 +5232,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2982 +// line internal/php5/php5.y:3012 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2986 +// line internal/php5/php5.y:3016 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2993 +// line internal/php5/php5.y:3023 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5230,7 +5260,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3007 +// line internal/php5/php5.y:3037 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5246,37 +5276,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3024 +// line internal/php5/php5.y:3054 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3028 +// line internal/php5/php5.y:3058 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3032 +// line internal/php5/php5.y:3062 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3039 +// line internal/php5/php5.y:3069 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3043 +// line internal/php5/php5.y:3073 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3050 +// line internal/php5/php5.y:3080 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5301,7 +5331,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3076 +// line internal/php5/php5.y:3106 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5323,7 +5353,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3096 +// line internal/php5/php5.y:3126 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5336,7 +5366,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3107 +// line internal/php5/php5.y:3137 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5350,7 +5380,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3119 +// line internal/php5/php5.y:3149 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5387,7 +5417,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3154 +// line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5399,7 +5429,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3164 +// line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5412,7 +5442,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3175 +// line internal/php5/php5.y:3205 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5425,7 +5455,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3186 +// line internal/php5/php5.y:3216 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5438,7 +5468,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3197 +// line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5451,7 +5481,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3208 +// line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5464,7 +5494,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3219 +// line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5477,7 +5507,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3230 +// line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5490,7 +5520,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3241 +// line internal/php5/php5.y:3271 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5503,7 +5533,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3252 +// line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5516,7 +5546,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3263 +// line internal/php5/php5.y:3293 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5529,7 +5559,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3274 +// line internal/php5/php5.y:3304 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5542,7 +5572,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3285 +// line internal/php5/php5.y:3315 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5555,7 +5585,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3296 +// line internal/php5/php5.y:3326 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5567,7 +5597,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3306 +// line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5579,7 +5609,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3316 +// line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5591,7 +5621,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3326 +// line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5603,7 +5633,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3336 +// line internal/php5/php5.y:3366 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5616,7 +5646,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3347 +// line internal/php5/php5.y:3377 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5629,7 +5659,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3358 +// line internal/php5/php5.y:3388 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5642,7 +5672,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3369 +// line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5655,7 +5685,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3380 +// line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5668,7 +5698,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3391 +// line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5681,7 +5711,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3402 +// line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5694,7 +5724,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3413 +// line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5707,7 +5737,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3424 +// line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5720,7 +5750,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3435 +// line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5733,7 +5763,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3446 +// line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5746,7 +5776,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3457 +// line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5759,7 +5789,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3468 +// line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5772,7 +5802,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3479 +// line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5785,7 +5815,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3490 +// line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5798,7 +5828,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3501 +// line internal/php5/php5.y:3531 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5811,7 +5841,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3512 +// line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5824,7 +5854,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3523 +// line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5836,7 +5866,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3533 +// line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5848,7 +5878,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3543 +// line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5860,7 +5890,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3553 +// line internal/php5/php5.y:3583 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5872,7 +5902,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3563 +// line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5885,7 +5915,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3574 +// line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5898,7 +5928,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3585 +// line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5911,7 +5941,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3596 +// line internal/php5/php5.y:3626 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5924,7 +5954,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3607 +// line internal/php5/php5.y:3637 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5937,7 +5967,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3618 +// line internal/php5/php5.y:3648 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5950,7 +5980,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3629 +// line internal/php5/php5.y:3659 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5963,7 +5993,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3640 +// line internal/php5/php5.y:3670 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5976,7 +6006,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3651 +// line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5989,19 +6019,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3662 +// line internal/php5/php5.y:3692 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3666 +// line internal/php5/php5.y:3696 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3670 +// line internal/php5/php5.y:3700 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6038,7 +6068,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3705 +// line internal/php5/php5.y:3735 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6053,7 +6083,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3718 +// line internal/php5/php5.y:3748 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6067,13 +6097,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3730 +// line internal/php5/php5.y:3760 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3734 +// line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6085,7 +6115,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3744 +// line internal/php5/php5.y:3774 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6097,7 +6127,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3754 +// line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6109,7 +6139,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3764 +// line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6121,7 +6151,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3774 +// line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6133,7 +6163,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3784 +// line internal/php5/php5.y:3814 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6145,7 +6175,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3794 +// line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6157,7 +6187,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3804 +// line internal/php5/php5.y:3834 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6176,7 +6206,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3821 +// line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6188,25 +6218,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3831 +// line internal/php5/php5.y:3861 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3835 +// line internal/php5/php5.y:3865 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3839 +// line internal/php5/php5.y:3869 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3843 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6219,7 +6249,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3854 +// line internal/php5/php5.y:3884 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6231,7 +6261,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3864 +// line internal/php5/php5.y:3894 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6242,7 +6272,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3873 +// line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6254,7 +6284,7 @@ yydefault: Params: yyDollar[4].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[5].token, - ClosureUse: yyDollar[6].ClosureUse, + ClosureUse: yyDollar[6].node, OpenCurlyBracketTkn: yyDollar[7].token, Stmts: yyDollar[8].list, CloseCurlyBracketTkn: yyDollar[9].token, @@ -6262,7 +6292,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3891 +// line internal/php5/php5.y:3921 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6275,7 +6305,7 @@ yydefault: Params: yyDollar[5].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].token, - ClosureUse: yyDollar[7].ClosureUse, + ClosureUse: yyDollar[7].node, OpenCurlyBracketTkn: yyDollar[8].token, Stmts: yyDollar[9].list, CloseCurlyBracketTkn: yyDollar[10].token, @@ -6283,7 +6313,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3913 +// line internal/php5/php5.y:3943 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6295,7 +6325,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3923 +// line internal/php5/php5.y:3953 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6307,7 +6337,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3933 +// line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6321,7 +6351,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3945 +// line internal/php5/php5.y:3975 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6335,7 +6365,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3960 +// line internal/php5/php5.y:3990 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6349,7 +6379,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3972 +// line internal/php5/php5.y:4002 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6363,7 +6393,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3984 +// line internal/php5/php5.y:4014 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6383,7 +6413,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4002 +// line internal/php5/php5.y:4032 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6397,7 +6427,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4017 +// line internal/php5/php5.y:4047 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6412,7 +6442,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4030 +// line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6426,21 +6456,21 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4045 +// line internal/php5/php5.y:4075 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4052 +// line internal/php5/php5.y:4082 { - yyVAL.ClosureUse = nil + yyVAL.node = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4056 +// line internal/php5/php5.y:4086 { - yyVAL.ClosureUse = &ast.ExprClosureUse{ + yyVAL.node = &ast.ExprClosureUse{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, @@ -6453,7 +6483,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4072 +// line internal/php5/php5.y:4102 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6475,7 +6505,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4092 +// line internal/php5/php5.y:4122 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6503,7 +6533,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4118 +// line internal/php5/php5.y:4148 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6524,7 +6554,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4137 +// line internal/php5/php5.y:4167 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6551,17 +6581,18 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4165 +// line internal/php5/php5.y:4195 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[2].node), + Position: position.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), }, Function: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -6571,7 +6602,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4183 +// line internal/php5/php5.y:4214 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6579,11 +6610,12 @@ yydefault: }, Function: &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, @@ -6593,7 +6625,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4203 +// line internal/php5/php5.y:4235 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6601,10 +6633,11 @@ yydefault: }, Function: &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, @@ -6614,7 +6647,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4222 +// line internal/php5/php5.y:4255 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6631,7 +6664,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4237 +// line internal/php5/php5.y:4270 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6648,7 +6681,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4252 +// line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6665,7 +6698,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4267 +// line internal/php5/php5.y:4300 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6682,7 +6715,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4282 +// line internal/php5/php5.y:4315 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6697,7 +6730,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4298 +// line internal/php5/php5.y:4331 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6709,91 +6742,97 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4308 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4317 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4328 +// line internal/php5/php5.y:4363 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4377 { yyVAL.node = &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4350 +// line internal/php5/php5.y:4387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4361 +// line internal/php5/php5.y:4399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4374 +// line internal/php5/php5.y:4413 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4378 +// line internal/php5/php5.y:4417 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4385 +// line internal/php5/php5.y:4424 { yyVAL.node = yyDollar[1].node @@ -6829,25 +6868,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4419 +// line internal/php5/php5.y:4458 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4427 +// line internal/php5/php5.y:4466 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4431 +// line internal/php5/php5.y:4470 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4439 +// line internal/php5/php5.y:4478 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6855,13 +6894,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4448 +// line internal/php5/php5.y:4487 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4452 +// line internal/php5/php5.y:4491 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6873,19 +6912,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4462 +// line internal/php5/php5.y:4501 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4469 +// line internal/php5/php5.y:4508 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4473 +// line internal/php5/php5.y:4512 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6899,25 +6938,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4485 +// line internal/php5/php5.y:4524 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4492 +// line internal/php5/php5.y:4531 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4496 +// line internal/php5/php5.y:4535 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4503 +// line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6929,7 +6968,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4513 +// line internal/php5/php5.y:4552 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6941,7 +6980,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4523 +// line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6953,7 +6992,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4533 +// line internal/php5/php5.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6965,7 +7004,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4543 +// line internal/php5/php5.y:4582 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6977,7 +7016,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4553 +// line internal/php5/php5.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6989,7 +7028,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4563 +// line internal/php5/php5.y:4602 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7001,7 +7040,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4573 +// line internal/php5/php5.y:4612 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7013,7 +7052,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4583 +// line internal/php5/php5.y:4622 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7025,7 +7064,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4593 +// line internal/php5/php5.y:4632 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7037,7 +7076,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4603 +// line internal/php5/php5.y:4642 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7058,7 +7097,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4661 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7070,7 +7109,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4635 +// line internal/php5/php5.y:4674 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7089,76 +7128,79 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4655 +// line internal/php5/php5.y:4694 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4662 +// line internal/php5/php5.y:4701 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4666 +// line internal/php5/php5.y:4705 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4670 +// line internal/php5/php5.y:4709 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4684 +// line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4700 +// line internal/php5/php5.y:4741 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4715 +// line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7173,7 +7215,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4728 +// line internal/php5/php5.y:4770 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7187,13 +7229,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4740 +// line internal/php5/php5.y:4782 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4744 +// line internal/php5/php5.y:4786 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7205,13 +7247,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4754 +// line internal/php5/php5.y:4796 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4761 +// line internal/php5/php5.y:4803 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7225,7 +7267,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4773 +// line internal/php5/php5.y:4815 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7238,7 +7280,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4784 +// line internal/php5/php5.y:4826 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7251,7 +7293,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4795 +// line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7264,7 +7306,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4806 +// line internal/php5/php5.y:4848 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7277,7 +7319,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4817 +// line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7290,7 +7332,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4828 +// line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7303,7 +7345,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4839 +// line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7315,7 +7357,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4849 +// line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7327,7 +7369,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4859 +// line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7340,7 +7382,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4870 +// line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7353,7 +7395,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4881 +// line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7366,7 +7408,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4892 +// line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7379,7 +7421,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4903 +// line internal/php5/php5.y:4945 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7392,7 +7434,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4914 +// line internal/php5/php5.y:4956 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7405,7 +7447,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4925 +// line internal/php5/php5.y:4967 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7418,7 +7460,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4936 +// line internal/php5/php5.y:4978 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7431,7 +7473,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4947 +// line internal/php5/php5.y:4989 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7444,7 +7486,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4958 +// line internal/php5/php5.y:5000 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7457,7 +7499,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4969 +// line internal/php5/php5.y:5011 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7470,7 +7512,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4980 +// line internal/php5/php5.y:5022 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7483,7 +7525,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4991 +// line internal/php5/php5.y:5033 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7496,7 +7538,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5002 +// line internal/php5/php5.y:5044 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7509,7 +7551,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5013 +// line internal/php5/php5.y:5055 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7522,7 +7564,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5024 +// line internal/php5/php5.y:5066 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7535,7 +7577,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5035 +// line internal/php5/php5.y:5077 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7548,7 +7590,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5046 +// line internal/php5/php5.y:5088 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7561,7 +7603,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5057 +// line internal/php5/php5.y:5099 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7574,7 +7616,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5068 +// line internal/php5/php5.y:5110 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7588,7 +7630,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5080 +// line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7603,7 +7645,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5093 +// line internal/php5/php5.y:5135 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7615,7 +7657,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5103 +// line internal/php5/php5.y:5145 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7627,7 +7669,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5113 +// line internal/php5/php5.y:5155 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7640,64 +7682,67 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5127 +// line internal/php5/php5.y:5169 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5131 +// line internal/php5/php5.y:5173 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5145 +// line internal/php5/php5.y:5188 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5161 +// line internal/php5/php5.y:5205 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5179 +// line internal/php5/php5.y:5224 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7714,25 +7759,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5194 +// line internal/php5/php5.y:5239 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5198 +// line internal/php5/php5.y:5243 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5202 +// line internal/php5/php5.y:5247 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5206 +// line internal/php5/php5.y:5251 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7745,7 +7790,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5217 +// line internal/php5/php5.y:5262 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7758,7 +7803,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5228 +// line internal/php5/php5.y:5273 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7770,13 +7815,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5241 +// line internal/php5/php5.y:5286 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5245 +// line internal/php5/php5.y:5290 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7787,19 +7832,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5257 +// line internal/php5/php5.y:5302 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5261 +// line internal/php5/php5.y:5306 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5268 +// line internal/php5/php5.y:5313 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7817,7 +7862,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5284 +// line internal/php5/php5.y:5329 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7833,7 +7878,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5298 +// line internal/php5/php5.y:5343 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7850,7 +7895,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5313 +// line internal/php5/php5.y:5358 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7865,19 +7910,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5329 +// line internal/php5/php5.y:5374 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5333 +// line internal/php5/php5.y:5378 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5340 +// line internal/php5/php5.y:5385 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7890,7 +7935,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5351 +// line internal/php5/php5.y:5396 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7903,25 +7948,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5366 +// line internal/php5/php5.y:5411 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5374 +// line internal/php5/php5.y:5419 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5381 +// line internal/php5/php5.y:5426 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5388 +// line internal/php5/php5.y:5433 { yyVAL.node = yyDollar[1].node @@ -8000,25 +8045,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5465 +// line internal/php5/php5.y:5510 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5472 +// line internal/php5/php5.y:5517 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5476 +// line internal/php5/php5.y:5521 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5484 +// line internal/php5/php5.y:5529 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8050,7 +8095,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5516 +// line internal/php5/php5.y:5561 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8066,7 +8111,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5530 +// line internal/php5/php5.y:5575 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8082,7 +8127,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5547 +// line internal/php5/php5.y:5592 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8096,31 +8141,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5562 +// line internal/php5/php5.y:5607 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5566 +// line internal/php5/php5.y:5611 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5570 +// line internal/php5/php5.y:5615 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5577 +// line internal/php5/php5.y:5622 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5581 +// line internal/php5/php5.y:5626 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8132,7 +8177,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5594 +// line internal/php5/php5.y:5639 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8145,7 +8190,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5605 +// line internal/php5/php5.y:5650 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8158,13 +8203,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5619 +// line internal/php5/php5.y:5664 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5626 +// line internal/php5/php5.y:5671 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8178,7 +8223,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5638 +// line internal/php5/php5.y:5683 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8192,31 +8237,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5653 +// line internal/php5/php5.y:5698 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5657 +// line internal/php5/php5.y:5702 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5661 +// line internal/php5/php5.y:5706 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5669 +// line internal/php5/php5.y:5714 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5673 +// line internal/php5/php5.y:5718 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8228,13 +8273,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5683 +// line internal/php5/php5.y:5728 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5690 +// line internal/php5/php5.y:5735 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8248,7 +8293,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5702 +// line internal/php5/php5.y:5747 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8262,13 +8307,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5714 +// line internal/php5/php5.y:5759 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5722 +// line internal/php5/php5.y:5767 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8285,7 +8330,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5737 +// line internal/php5/php5.y:5782 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8304,25 +8349,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5757 +// line internal/php5/php5.y:5802 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5761 +// line internal/php5/php5.y:5806 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5769 +// line internal/php5/php5.y:5814 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5773 +// line internal/php5/php5.y:5818 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8335,7 +8380,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5787 +// line internal/php5/php5.y:5832 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8351,7 +8396,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5801 +// line internal/php5/php5.y:5846 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8367,7 +8412,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5815 +// line internal/php5/php5.y:5860 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8380,7 +8425,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5829 +// line internal/php5/php5.y:5874 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8392,7 +8437,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5839 +// line internal/php5/php5.y:5884 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8405,7 +8450,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5853 +// line internal/php5/php5.y:5898 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8418,7 +8463,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5864 +// line internal/php5/php5.y:5909 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8429,7 +8474,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5876 +// line internal/php5/php5.y:5921 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8438,7 +8483,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5883 +// line internal/php5/php5.y:5928 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8446,7 +8491,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5893 +// line internal/php5/php5.y:5938 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8457,7 +8502,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5902 +// line internal/php5/php5.y:5947 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8484,19 +8529,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5927 +// line internal/php5/php5.y:5972 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5935 +// line internal/php5/php5.y:5980 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5939 +// line internal/php5/php5.y:5984 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8507,7 +8552,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5951 +// line internal/php5/php5.y:5996 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8525,7 +8570,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5967 +// line internal/php5/php5.y:6012 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8541,7 +8586,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5981 +// line internal/php5/php5.y:6026 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8558,7 +8603,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5996 +// line internal/php5/php5.y:6041 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8573,7 +8618,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6009 +// line internal/php5/php5.y:6054 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8597,7 +8642,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6031 +// line internal/php5/php5.y:6076 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8619,7 +8664,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6051 +// line internal/php5/php5.y:6096 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8642,7 +8687,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6072 +// line internal/php5/php5.y:6117 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8663,13 +8708,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6094 +// line internal/php5/php5.y:6139 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6098 +// line internal/php5/php5.y:6143 { yyVAL.list = append( yyDollar[1].list, @@ -8684,13 +8729,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6111 +// line internal/php5/php5.y:6156 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6115 +// line internal/php5/php5.y:6160 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8705,7 +8750,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6131 +// line internal/php5/php5.y:6176 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8722,7 +8767,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6146 +// line internal/php5/php5.y:6191 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8747,7 +8792,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6169 +// line internal/php5/php5.y:6214 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8777,7 +8822,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6197 +// line internal/php5/php5.y:6242 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8795,7 +8840,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6213 +// line internal/php5/php5.y:6258 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8819,7 +8864,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6235 +// line internal/php5/php5.y:6280 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8851,7 +8896,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6265 +// line internal/php5/php5.y:6310 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8864,7 +8909,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6279 +// line internal/php5/php5.y:6324 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8876,7 +8921,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6289 +// line internal/php5/php5.y:6334 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8899,7 +8944,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6310 +// line internal/php5/php5.y:6355 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8916,7 +8961,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6328 +// line internal/php5/php5.y:6373 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8931,7 +8976,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6341 +// line internal/php5/php5.y:6386 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8945,7 +8990,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6353 +// line internal/php5/php5.y:6398 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8959,7 +9004,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6365 +// line internal/php5/php5.y:6410 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -8971,7 +9016,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6375 +// line internal/php5/php5.y:6420 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -8983,7 +9028,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6385 +// line internal/php5/php5.y:6430 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -8997,7 +9042,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6397 +// line internal/php5/php5.y:6442 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9009,7 +9054,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6407 +// line internal/php5/php5.y:6452 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9021,7 +9066,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6465 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9029,7 +9074,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6426 +// line internal/php5/php5.y:6471 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9038,19 +9083,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6436 +// line internal/php5/php5.y:6481 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6440 +// line internal/php5/php5.y:6485 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6447 +// line internal/php5/php5.y:6492 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9069,7 +9114,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6464 +// line internal/php5/php5.y:6509 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9088,7 +9133,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6484 +// line internal/php5/php5.y:6529 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9107,7 +9152,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6504 +// line internal/php5/php5.y:6549 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 2a24915..4027440 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -15,8 +15,6 @@ import ( node ast.Vertex token *token.Token list []ast.Vertex - - ClosureUse *ast.ExprClosureUse } %token T_INCLUDE @@ -219,6 +217,7 @@ import ( %type function interface_entry %type possible_comma %type case_separator +%type is_reference is_variadic %type top_statement use_declaration use_function_declaration use_const_declaration common_scalar %type static_class_constant compound_variable reference_variable class_name variable_class_name @@ -241,12 +240,12 @@ import ( %type method_body trait_reference_list static_array_pair_list non_empty_static_array_pair_list %type foreach_statement for_statement while_statement isset_variables %type foreach_variable foreach_optional_arg for_expr non_empty_for_expr -%type extends_from interface_list trait_list -%type implements_list +%type extends_from interface_list trait_list namespace_name +%type implements_list use_declarations use_function_declarations use_const_declarations %type interface_extends_list -%type lexical_vars +%type lexical_vars -%type top_statement_list namespace_name use_declarations use_function_declarations use_const_declarations +%type top_statement_list %type inner_statement_list encaps_list %type elseif_list new_elseif_list %type case_list catch_statement additional_catches @@ -260,7 +259,6 @@ import ( %type dynamic_class_name_variable_properties variable_properties %type simple_indirect_reference -%type is_reference is_variadic %% @@ -293,26 +291,32 @@ top_statement_list: namespace_name: T_STRING { - $$ = []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, }, - StringTkn: $1, - Value: $1.Value, }, } } | namespace_name T_NS_SEPARATOR T_STRING { - $$ = append($1, &ast.NameNamePart{ + part := &ast.NameNamePart{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $3), + Position: position.NewTokenPosition($3), }, - NsSeparatorTkn: $2, StringTkn: $3, Value: $3.Value, - }) + } + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, part) + + $$ = $1 } ; @@ -355,9 +359,10 @@ top_statement: NsTkn: $1, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: $3, } @@ -371,9 +376,10 @@ top_statement: NsTkn: $1, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracket: $3, Stmts: $4, @@ -399,7 +405,8 @@ top_statement: Position: position.NewTokensPosition($1, $3), }, UseTkn: $1, - UseDeclarations: $2, + UseDeclarations: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } } @@ -417,7 +424,8 @@ top_statement: IdentifierTkn: $2, Value: $2.Value, }, - UseDeclarations: $3, + UseDeclarations: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -435,7 +443,8 @@ top_statement: IdentifierTkn: $2, Value: $2.Value, }, - UseDeclarations: $3, + UseDeclarations: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -450,13 +459,16 @@ top_statement: use_declarations: use_declarations ',' use_declaration { - $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | use_declaration { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; @@ -465,13 +477,14 @@ use_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -479,13 +492,14 @@ use_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $3), + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -501,14 +515,15 @@ use_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -521,9 +536,10 @@ use_declaration: NsSeparatorTkn: $1, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ @@ -540,13 +556,16 @@ use_declaration: use_function_declarations: use_function_declarations ',' use_function_declaration { - $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | use_function_declaration { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; @@ -555,13 +574,14 @@ use_function_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -569,13 +589,14 @@ use_function_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $3), + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -591,14 +612,15 @@ use_function_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -611,9 +633,10 @@ use_function_declaration: NsSeparatorTkn: $1, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ @@ -630,13 +653,16 @@ use_function_declaration: use_const_declarations: use_const_declarations ',' use_const_declaration { - $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | use_const_declaration { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; @@ -645,13 +671,14 @@ use_const_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -659,13 +686,14 @@ use_const_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $3), + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -681,14 +709,15 @@ use_const_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -701,9 +730,10 @@ use_const_declaration: NsSeparatorTkn: $1, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ @@ -2888,7 +2918,7 @@ class_constant_declaration: { constList := $1.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition($1, $5) - lastNode($$.(*ast.StmtClassConstList).Consts).(*ast.StmtConstant).CommaTkn = $2 + constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ Node: ast.Node{ Position: position.NewTokenNodePosition($3, $5), @@ -4165,13 +4195,14 @@ function_call: { $$ = &ast.ExprFunctionCall{ Node: ast.Node{ - Position: position.NewNodeListNodePosition($1, $2), + Position: position.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), }, Function: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -4187,11 +4218,12 @@ function_call: }, Function: &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3, + Parts: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, @@ -4207,10 +4239,11 @@ function_call: }, Function: &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $3.(*ast.ArgumentList).Arguments, @@ -4308,30 +4341,33 @@ class_name: { $$ = &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3, + Parts: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, } } ; @@ -4341,30 +4377,33 @@ fully_qualified_class_name: { $$ = &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3, + Parts: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, } } ; @@ -4670,13 +4709,14 @@ static_scalar_value: { $$ = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -4684,15 +4724,16 @@ static_scalar_value: { $$ = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3, + Parts: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -4700,14 +4741,15 @@ static_scalar_value: { $$ = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -5131,13 +5173,14 @@ general_constant: { $$ = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -5145,15 +5188,16 @@ general_constant: { $$ = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3, + Parts: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -5161,14 +5205,15 @@ general_constant: { $$ = &ast.ExprConstFetch{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, Const: &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, } } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index c592f8c..e224ae3 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -20,10 +20,7 @@ type yySymType struct { yys int node ast.Vertex token *token.Token - tkn *token.Token list []ast.Vertex - - ClosureUse *ast.ExprClosureUse } const T_INCLUDE = 57346 @@ -343,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4968 +// line internal/php7/php7.y:4997 // line yacctab:1 var yyExca = [...]int{ @@ -624,9 +621,9 @@ var yyAct = [...]int{ 554, 381, 379, 814, 810, 197, 832, 693, 833, 834, 196, 195, 815, 189, 1, 831, 825, 780, 781, 38, 746, 283, 260, 261, 260, 261, 836, 743, 844, 783, - 780, 781, 856, 111, 744, 879, 841, 848, 676, 255, - 796, 533, 260, 261, 855, 385, 371, 656, 852, 934, - 662, 859, 136, 845, 227, 114, 43, 42, 528, 877, + 780, 781, 856, 111, 744, 879, 676, 848, 255, 796, + 385, 533, 260, 261, 855, 371, 656, 852, 934, 662, + 845, 859, 136, 227, 43, 114, 42, 841, 528, 877, 890, 891, 886, 865, 16, 838, 892, 893, 539, 885, 15, 237, 830, 853, 151, 897, 898, 730, 606, 872, 271, 49, 786, 896, 903, 48, 110, 905, 50, 217, @@ -1427,10 +1424,10 @@ var yyPgo = [...]int{ 905, 100, 88, 242, 890, 889, 34, 887, 886, 8, 883, 80, 41, 882, 56, 49, 878, 876, 875, 871, 870, 86, 868, 864, 862, 10, 860, 87, 858, 855, - 854, 853, 848, 847, 12, 846, 844, 46, 39, 40, - 2, 16, 667, 43, 85, 843, 840, 839, 13, 838, - 837, 555, 836, 45, 71, 835, 830, 6, 721, 20, - 540, 829, 18, 828, 826, 25, 33, 37, 825, 530, + 854, 853, 848, 847, 846, 25, 33, 530, 12, 18, + 844, 843, 46, 39, 40, 2, 16, 667, 43, 85, + 840, 839, 838, 13, 837, 836, 555, 835, 45, 71, + 830, 829, 6, 721, 20, 540, 828, 826, 37, 825, 99, 1, 17, 824, 817, 810, 809, 804, 28, } @@ -1443,27 +1440,27 @@ var yyR1 = [...]int{ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 120, - 120, 112, 112, 10, 10, 10, 9, 9, 9, 9, + 120, 89, 89, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 108, 108, 16, 16, 18, 18, 7, 7, 116, - 116, 115, 115, 119, 119, 17, 17, 20, 20, 19, + 9, 113, 113, 16, 16, 18, 18, 7, 7, 86, + 86, 85, 85, 87, 87, 17, 17, 20, 20, 19, 19, 77, 77, 121, 121, 22, 22, 22, 22, 22, 22, 22, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 113, 113, 74, 74, - 30, 30, 102, 102, 31, 12, 1, 1, 2, 2, - 13, 13, 126, 126, 92, 92, 14, 15, 103, 103, - 105, 105, 104, 104, 109, 109, 109, 109, 99, 99, - 98, 98, 29, 29, 96, 96, 96, 96, 117, 117, - 117, 8, 8, 100, 100, 83, 83, 76, 76, 85, - 85, 80, 80, 27, 27, 28, 28, 33, 33, 34, - 34, 91, 91, 89, 89, 89, 90, 90, 93, 93, + 11, 11, 11, 11, 11, 11, 117, 117, 74, 74, + 30, 30, 107, 107, 31, 12, 1, 1, 2, 2, + 13, 13, 126, 126, 97, 97, 14, 15, 108, 108, + 110, 110, 109, 109, 114, 114, 114, 114, 104, 104, + 103, 103, 29, 29, 101, 101, 101, 101, 118, 118, + 118, 8, 8, 105, 105, 84, 84, 76, 76, 90, + 90, 80, 80, 27, 27, 28, 28, 33, 33, 34, + 34, 96, 96, 94, 94, 94, 95, 95, 98, 98, 78, 78, 35, 35, 37, 37, 38, 39, 39, 40, - 40, 122, 122, 41, 41, 41, 41, 75, 75, 95, - 95, 95, 118, 118, 42, 42, 43, 44, 44, 44, - 44, 46, 46, 45, 97, 97, 124, 124, 123, 123, - 125, 125, 107, 107, 107, 107, 107, 107, 79, 79, - 47, 47, 114, 114, 84, 21, 73, 73, 48, 23, + 40, 122, 122, 41, 41, 41, 41, 75, 75, 100, + 100, 100, 119, 119, 42, 42, 43, 44, 44, 44, + 44, 46, 46, 45, 102, 102, 124, 124, 123, 123, + 125, 125, 112, 112, 112, 112, 112, 112, 79, 79, + 47, 47, 83, 83, 88, 21, 73, 73, 48, 23, 23, 24, 24, 50, 49, 49, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, @@ -1472,19 +1469,19 @@ var yyR1 = [...]int{ 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 101, 101, 128, 3, 3, 106, 106, + 36, 36, 36, 106, 106, 128, 3, 3, 111, 111, 81, 81, 59, 59, 60, 60, 60, 60, 51, 51, - 52, 52, 57, 57, 111, 111, 111, 94, 94, 64, + 52, 52, 57, 57, 116, 116, 116, 99, 99, 64, 64, 64, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 65, 65, 65, 25, 25, 26, 26, 63, 66, 66, 66, 67, 67, 67, 68, 68, 68, 68, 68, 68, 32, 32, 32, 53, 53, 53, 69, 69, 70, 70, 70, 70, - 70, 70, 61, 61, 61, 62, 62, 62, 56, 87, - 87, 55, 55, 86, 86, 86, 86, 86, 86, 86, - 110, 110, 110, 110, 71, 71, 71, 71, 71, 71, + 70, 70, 61, 61, 61, 62, 62, 62, 56, 92, + 92, 55, 55, 91, 91, 91, 91, 91, 91, 91, + 115, 115, 115, 115, 71, 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, 54, 54, 54, 54, 54, - 54, 54, 82, 82, 88, + 54, 54, 82, 82, 93, } var yyR2 = [...]int{ @@ -1545,41 +1542,41 @@ var yyChk = [...]int{ 52, 80, 45, 39, 144, -76, -80, 21, 20, 23, 30, 34, 35, 40, 47, 99, 19, 14, -25, 49, 25, 27, 146, 41, 44, 36, 10, 37, -126, 53, - 54, 55, -83, -85, -32, -36, -92, 7, -68, -69, + 54, 55, -84, -90, -32, -36, -97, 7, -68, -69, -66, 60, 150, 93, 105, 106, 155, 154, 156, 157, 148, -49, -54, 108, 109, 110, 111, 112, 113, 114, - 6, 158, -58, 143, 97, 98, 107, -101, 100, 101, + 6, 158, -58, 143, 97, 98, 107, -106, 100, 101, -53, -65, -60, -51, -63, -64, 92, 50, 51, 4, 5, 85, 86, 87, 8, 9, 67, 68, 82, 64, 65, 66, 81, 63, 75, 142, 38, 12, 159, -10, - -67, 61, 18, -112, 83, 148, 83, -112, 144, 10, - -18, -108, -119, -112, 83, 37, 39, -19, -20, -77, + -67, 61, 18, -89, 83, 148, 83, -89, 144, 10, + -18, -113, -87, -89, 83, 37, 39, -19, -20, -77, -21, 10, -121, 148, -11, 37, 80, 148, 148, -26, - -25, 99, -26, -26, -37, -38, -53, -39, -101, -40, + -25, 99, -26, -26, -37, -38, -53, -39, -106, -40, 12, -73, -48, -25, 146, 131, 132, 88, 90, 89, 161, 153, 163, 169, 155, 154, 164, 133, 165, 166, 134, 135, 136, 137, 138, 139, 167, 140, 168, 141, 116, 91, 152, 115, 148, 148, 148, 144, -25, 10, - 147, -3, 153, 53, -92, 10, 10, 10, 94, 95, + 147, -3, 153, 53, -97, 10, 10, 10, 94, 95, 94, 96, 95, 162, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 105, 106, 148, - 150, 144, 58, 148, -56, -55, -87, -86, -25, 153, + 150, 144, 58, 148, -56, -55, -92, -91, -25, 153, 84, 60, -25, -32, -65, 148, -64, 99, 150, -32, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, - -25, -25, -57, 148, -25, -111, 17, -110, -71, 12, + -25, -25, -57, 148, -25, -116, 17, -115, -71, 12, 77, 78, -25, -25, -25, 150, 79, 79, -52, -50, -51, -70, 53, -10, -53, 148, 148, -25, -25, 148, - -25, -25, 17, 76, -110, -110, 17, -3, 144, -53, - -93, 148, -93, 148, 83, -112, 149, -112, 146, 144, - -120, 146, -16, -119, -112, 83, 146, 160, 83, 29, - -112, -20, 146, 160, 162, -22, 145, 2, -11, -12, + -25, -25, 17, 76, -115, -115, 17, -3, 144, -53, + -98, 148, -98, 148, 83, -89, 149, -89, 146, 144, + -120, 146, -16, -87, -89, 83, 146, 160, 83, 29, + -89, -20, 146, 160, 162, -22, 145, 2, -11, -12, -13, -14, -15, 52, -25, 21, -3, -23, -24, -25, -25, 146, 146, 146, 146, 160, 146, 160, 162, 146, 160, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -52, -25, 147, - -25, -102, -31, -32, -25, -77, -121, 146, 146, 10, - -128, 10, -103, 56, -128, -105, 56, 148, -11, 148, + -25, -107, -31, -32, -25, -77, -121, 146, 146, 10, + -128, 10, -108, 56, -128, -110, 56, 148, -11, 148, 146, 147, -25, 153, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -26, -25, -62, 10, 144, -53, -56, 151, 160, 59, -32, -25, @@ -1593,48 +1590,48 @@ var yyChk = [...]int{ 39, 40, 97, 98, 60, 30, 31, 32, 33, 34, 61, 62, 56, 57, 80, 54, 55, 53, 63, 64, 66, 65, 67, 68, 82, 81, 38, -61, -6, -53, - -94, -93, 79, 150, 144, 58, 79, -94, -82, -88, + -99, -98, 79, 150, 144, 58, 79, -99, -82, -93, -25, -25, -25, 76, 76, 142, 148, -25, 149, -78, -35, -25, 84, -56, 10, 146, -120, 145, 146, 146, - 83, -112, -19, 83, -112, 144, 10, 83, -21, -25, + 83, -89, -19, 83, -89, 144, 10, 83, -21, -25, 148, 149, 148, 146, 160, 149, -38, -40, -25, -48, - 147, -25, -7, 160, 29, 149, 145, -128, 148, -103, - -104, 57, -10, 144, -128, -75, -10, -25, -25, -121, - -25, 149, 151, 145, -93, -25, 149, 162, -87, -25, + 147, -25, -7, 160, 29, 149, 145, -128, 148, -108, + -109, 57, -10, 144, -128, -75, -10, -25, -25, -121, + -25, 149, 151, 145, -98, -25, 149, 162, -92, -25, 153, 60, -56, 149, 151, 149, -72, 10, 13, 154, - 12, 10, 145, 145, 150, 145, -25, 151, -93, -25, - -93, -53, -26, -25, -62, -53, -103, -7, 160, 149, - 149, -27, -28, -33, -34, -91, -89, 152, 61, 62, - -10, 145, -7, 160, -25, 149, 145, 144, 83, -116, - -17, -20, -108, 144, -128, 149, -100, -11, 147, -25, - -23, -25, -96, 144, 147, -25, 149, -31, -109, -32, - 153, 60, 150, -29, -11, 147, -113, 148, -27, -104, + 12, 10, 145, 145, 150, 145, -25, 151, -98, -25, + -98, -53, -26, -25, -62, -53, -108, -7, 160, 149, + 149, -27, -28, -33, -34, -96, -94, 152, 61, 62, + -10, 145, -7, 160, -25, 149, 145, 144, 83, -86, + -17, -20, -113, 144, -128, 149, -105, -11, 147, -25, + -23, -25, -101, 144, 147, -25, 149, -31, -114, -32, + 153, 60, 150, -29, -11, 147, -117, 148, -27, -109, -128, -75, -122, 144, 160, 149, 149, 96, -11, 147, 145, 162, -25, -32, 148, 149, 151, 13, -25, 145, - 151, 145, -104, 149, -88, 149, 160, -1, 153, -89, - 149, -35, -115, -20, 144, -7, 160, -20, -116, 146, - -121, 149, 146, -117, 146, -117, 146, 146, 149, 59, + 151, 145, -109, 149, -93, 149, 160, -1, 153, -94, + 149, -35, -85, -20, 144, -7, 160, -20, -86, 146, + -121, 149, 146, -118, 146, -118, 146, 146, 149, 59, -32, 148, -56, -121, -30, 42, 43, -27, 149, -128, - 144, 145, -41, -124, -123, 45, -125, 48, -107, 104, + 144, 145, -41, -124, -123, 45, -125, 48, -112, 104, 103, 102, 99, 100, 101, -122, -10, -11, 147, 146, - -121, -25, -56, 151, -128, -90, 147, -33, -2, 84, - -7, 160, -115, 145, -17, -7, 22, 146, -23, 145, - 32, 33, -117, 31, -117, -98, -11, 147, -109, -32, - -56, 151, 28, 148, 144, 149, -106, 45, 144, -122, - -34, 39, 37, -75, -107, 145, -121, 149, 145, 144, - -128, -91, 12, 145, -20, -7, 145, 146, 149, -25, + -121, -25, -56, 151, -128, -95, 147, -33, -2, 84, + -7, 160, -85, 145, -17, -7, 22, 146, -23, 145, + 32, 33, -118, 31, -118, -103, -11, 147, -114, -32, + -56, 151, 28, 148, 144, 149, -111, 45, 144, -122, + -34, 39, 37, -75, -112, 145, -121, 149, 145, 144, + -128, -96, 12, 145, -20, -7, 145, 146, 149, -25, -8, 147, 146, 145, 146, 31, -121, 149, 149, 146, - -74, -10, -121, -90, -90, 148, -122, 145, -79, -47, - 12, -114, -84, -6, -3, -95, 146, 144, -122, 59, - 162, 145, -99, -11, 147, -8, -121, 146, 26, -98, + -74, -10, -121, -95, -95, 148, -122, 145, -79, -47, + 12, -83, -88, -6, -3, -100, 146, 144, -122, 59, + 162, 145, -104, -11, 147, -8, -121, 146, 26, -103, 12, 161, 145, 144, 144, -81, -59, 12, 153, 145, - 146, 160, -128, 162, 146, 160, 162, -6, 145, -118, + 146, 160, -128, 162, 146, 160, 162, -6, 145, -119, -42, -43, -44, -45, -46, -10, -6, 80, 10, 145, -25, -25, -121, -121, 146, 149, -10, -121, -121, 149, - 160, 12, -47, -25, -84, -25, -128, 145, -42, 146, + 160, 12, -47, -25, -88, -25, -128, 145, -42, 146, 146, 46, 29, 79, 24, 144, 145, 145, -59, -128, - -128, 148, -75, 10, -4, -107, -6, 146, -121, -27, - -6, 145, 149, -90, -97, 146, 144, -121, 145, + -128, 148, -75, 10, -4, -112, -6, 146, -121, -27, + -6, 145, 149, -95, -102, 146, 144, -121, 145, } var yyDef = [...]int{ @@ -2110,7 +2107,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:289 +// line internal/php7/php7.y:284 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2122,469 +2119,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 +// line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 +// line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:303 +// line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 +// line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 +// line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:306 +// line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 +// line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 +// line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 +// line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:320 +// line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:324 +// line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:331 +// line internal/php7/php7.y:326 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2592,113 +2589,122 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:337 +// line internal/php7/php7.y:332 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:344 +// line internal/php7/php7.y:339 { - yyVAL.list = []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition(yyDollar[1].token), + }, + StringTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, }, - StringTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, }, } } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:356 +// line internal/php7/php7.y:353 { - yyVAL.list = append(yyDollar[1].list, &ast.NameNamePart{ + part := &ast.NameNamePart{ Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[3].token), + Position: position.NewTokenPosition(yyDollar[3].token), }, - NsSeparatorTkn: yyDollar[2].token, - StringTkn: yyDollar[3].token, - Value: yyDollar[3].token.Value, - }) + StringTkn: yyDollar[3].token, + Value: yyDollar[3].token.Value, + } + + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, part) + + yyVAL.node = yyDollar[1].node } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:370 +// line internal/php7/php7.y:371 { yyVAL.node = &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:379 +// line internal/php7/php7.y:381 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), }, NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].list, + Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:390 +// line internal/php7/php7.y:393 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].list), + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:403 +// line internal/php7/php7.y:407 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:408 +// line internal/php7/php7.y:412 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 +// line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 +// line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:420 +// line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:424 +// line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:428 +// line internal/php7/php7.y:432 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2712,7 +2718,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:440 +// line internal/php7/php7.y:444 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2721,16 +2727,17 @@ yydefault: NsTkn: yyDollar[1].token, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: yyDollar[3].token, } } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:456 +// line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2739,9 +2746,10 @@ yydefault: NsTkn: yyDollar[1].token, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracket: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -2750,7 +2758,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:474 +// line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2764,7 +2772,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:486 +// line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2776,7 +2784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:496 +// line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2789,20 +2797,21 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:507 +// line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), }, UseTkn: yyDollar[1].token, - UseDeclarations: yyDollar[2].list, + UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[3].token, } } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:518 +// line internal/php7/php7.y:525 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2810,13 +2819,14 @@ yydefault: }, UseTkn: yyDollar[1].token, Type: yyDollar[2].node, - UseDeclarations: yyDollar[3].list, + UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:530 +// line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2830,7 +2840,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:545 +// line internal/php7/php7.y:553 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2842,7 +2852,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:555 +// line internal/php7/php7.y:563 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2854,33 +2864,33 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:568 +// line internal/php7/php7.y:576 { - if len(yyDollar[4].list) > 0 { - yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token - } + yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) yyVAL.node = &ast.StmtGroupUse{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token), + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), }, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[2].token, OpenCurlyBracketTkn: yyDollar[3].token, - UseDeclarations: yyDollar[4].list, + UseDeclarations: yyDollar[4].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[6].token, } } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:590 +// line internal/php7/php7.y:598 { - yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token + yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) yyVAL.node = &ast.StmtGroupUse{ Node: ast.Node{ @@ -2889,43 +2899,47 @@ yydefault: LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[3].token, OpenCurlyBracketTkn: yyDollar[4].token, - UseDeclarations: yyDollar[5].list, + UseDeclarations: yyDollar[5].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[7].token, } } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:614 +// line internal/php7/php7.y:624 { - yyDollar[4].list[len(yyDollar[4].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[5].token + yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) yyVAL.node = &ast.StmtGroupUse{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[6].token), + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), }, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[2].token, OpenCurlyBracketTkn: yyDollar[3].token, - UseDeclarations: yyDollar[4].list, + UseDeclarations: yyDollar[4].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[6].token, } } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:634 +// line internal/php7/php7.y:646 { - yyDollar[5].list[len(yyDollar[5].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[6].token + yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) yyVAL.node = &ast.StmtGroupUse{ Node: ast.Node{ @@ -2934,79 +2948,90 @@ yydefault: LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[2].list, + Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[3].token, OpenCurlyBracketTkn: yyDollar[4].token, - UseDeclarations: yyDollar[5].list, + UseDeclarations: yyDollar[5].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[7].token, } } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:658 +// line internal/php7/php7.y:672 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:662 +// line internal/php7/php7.y:676 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:669 +// line internal/php7/php7.y:683 { - yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:675 +// line internal/php7/php7.y:690 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:682 +// line internal/php7/php7.y:699 { - yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:688 +// line internal/php7/php7.y:706 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:695 +// line internal/php7/php7.y:715 { - yyDollar[1].list[len(yyDollar[1].list)-1].(*ast.StmtUseDeclaration).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:701 +// line internal/php7/php7.y:722 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:708 +// line internal/php7/php7.y:731 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:712 +// line internal/php7/php7.y:735 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3016,33 +3041,35 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:723 +// line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, } } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:737 +// line internal/php7/php7.y:761 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), }, - Parts: yyDollar[1].list, + Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -3056,13 +3083,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:762 +// line internal/php7/php7.y:787 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:766 +// line internal/php7/php7.y:791 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3072,7 +3099,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:777 +// line internal/php7/php7.y:802 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3081,7 +3108,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:784 +// line internal/php7/php7.y:809 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3089,7 +3116,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:793 +// line internal/php7/php7.y:818 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3097,50 +3124,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:799 +// line internal/php7/php7.y:824 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:806 +// line internal/php7/php7.y:831 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:811 +// line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:815 +// line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:819 +// line internal/php7/php7.y:844 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:823 +// line internal/php7/php7.y:848 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:827 +// line internal/php7/php7.y:852 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:831 +// line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3154,7 +3181,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:845 +// line internal/php7/php7.y:870 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3167,19 +3194,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:856 +// line internal/php7/php7.y:881 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:860 +// line internal/php7/php7.y:885 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:864 +// line internal/php7/php7.y:889 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3191,7 +3218,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:874 +// line internal/php7/php7.y:899 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3208,7 +3235,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:889 +// line internal/php7/php7.y:914 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3227,7 +3254,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:906 +// line internal/php7/php7.y:931 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3239,7 +3266,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:916 +// line internal/php7/php7.y:941 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3252,7 +3279,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:927 +// line internal/php7/php7.y:952 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3265,7 +3292,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:938 +// line internal/php7/php7.y:963 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3278,7 +3305,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:949 +// line internal/php7/php7.y:974 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3288,7 +3315,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:957 +// line internal/php7/php7.y:982 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3298,7 +3325,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:965 +// line internal/php7/php7.y:990 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3308,7 +3335,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:973 +// line internal/php7/php7.y:998 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3320,7 +3347,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:983 +// line internal/php7/php7.y:1008 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3332,7 +3359,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:993 +// line internal/php7/php7.y:1018 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3345,7 +3372,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1004 +// line internal/php7/php7.y:1029 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3359,7 +3386,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1016 +// line internal/php7/php7.y:1041 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3375,7 +3402,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1030 +// line internal/php7/php7.y:1055 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3388,7 +3415,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1041 +// line internal/php7/php7.y:1066 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3399,7 +3426,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1050 +// line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3418,7 +3445,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1067 +// line internal/php7/php7.y:1092 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3431,7 +3458,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1078 +// line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3450,7 +3477,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1095 +// line internal/php7/php7.y:1120 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3468,13 +3495,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1113 +// line internal/php7/php7.y:1138 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1117 +// line internal/php7/php7.y:1142 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3501,7 +3528,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1144 +// line internal/php7/php7.y:1169 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3509,7 +3536,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1150 +// line internal/php7/php7.y:1175 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3518,13 +3545,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1160 +// line internal/php7/php7.y:1185 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1164 +// line internal/php7/php7.y:1189 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3538,7 +3565,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1179 +// line internal/php7/php7.y:1204 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3546,7 +3573,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1185 +// line internal/php7/php7.y:1210 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3555,13 +3582,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1195 +// line internal/php7/php7.y:1220 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1202 +// line internal/php7/php7.y:1227 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3589,31 +3616,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1231 +// line internal/php7/php7.y:1256 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1235 +// line internal/php7/php7.y:1260 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1242 +// line internal/php7/php7.y:1267 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1246 +// line internal/php7/php7.y:1271 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1253 +// line internal/php7/php7.y:1278 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3637,7 +3664,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1275 +// line internal/php7/php7.y:1300 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3660,19 +3687,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1299 +// line internal/php7/php7.y:1324 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1303 +// line internal/php7/php7.y:1328 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1310 +// line internal/php7/php7.y:1335 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3684,7 +3711,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1320 +// line internal/php7/php7.y:1345 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3696,7 +3723,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1333 +// line internal/php7/php7.y:1358 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3717,7 +3744,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1355 +// line internal/php7/php7.y:1380 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3739,13 +3766,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1378 +// line internal/php7/php7.y:1403 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1382 +// line internal/php7/php7.y:1407 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3757,13 +3784,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1395 +// line internal/php7/php7.y:1420 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1399 +// line internal/php7/php7.y:1424 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3776,13 +3803,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1413 +// line internal/php7/php7.y:1438 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1417 +// line internal/php7/php7.y:1442 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3795,13 +3822,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1431 +// line internal/php7/php7.y:1456 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1435 +// line internal/php7/php7.y:1460 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3813,7 +3840,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1445 +// line internal/php7/php7.y:1470 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3828,7 +3855,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1458 +// line internal/php7/php7.y:1483 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3842,7 +3869,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1473 +// line internal/php7/php7.y:1498 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3853,7 +3880,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1482 +// line internal/php7/php7.y:1507 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3873,7 +3900,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1503 +// line internal/php7/php7.y:1528 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3884,7 +3911,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1512 +// line internal/php7/php7.y:1537 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3904,7 +3931,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1533 +// line internal/php7/php7.y:1558 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3915,7 +3942,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1542 +// line internal/php7/php7.y:1567 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3935,7 +3962,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1563 +// line internal/php7/php7.y:1588 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3948,7 +3975,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1574 +// line internal/php7/php7.y:1599 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3962,7 +3989,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1586 +// line internal/php7/php7.y:1611 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3977,7 +4004,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1599 +// line internal/php7/php7.y:1624 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3993,13 +4020,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1616 +// line internal/php7/php7.y:1641 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1620 +// line internal/php7/php7.y:1645 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4013,7 +4040,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1632 +// line internal/php7/php7.y:1657 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4026,19 +4053,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1646 +// line internal/php7/php7.y:1671 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1650 +// line internal/php7/php7.y:1675 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1657 +// line internal/php7/php7.y:1682 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4049,7 +4076,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1666 +// line internal/php7/php7.y:1691 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4069,7 +4096,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1687 +// line internal/php7/php7.y:1712 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4084,7 +4111,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1700 +// line internal/php7/php7.y:1725 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4103,13 +4130,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1720 +// line internal/php7/php7.y:1745 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1724 +// line internal/php7/php7.y:1749 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4125,7 +4152,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1741 +// line internal/php7/php7.y:1766 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4147,7 +4174,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1761 +// line internal/php7/php7.y:1786 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4171,7 +4198,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1786 +// line internal/php7/php7.y:1811 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4181,7 +4208,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1794 +// line internal/php7/php7.y:1819 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4205,19 +4232,19 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1819 +// line internal/php7/php7.y:1844 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1823 +// line internal/php7/php7.y:1848 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1830 +// line internal/php7/php7.y:1855 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4225,7 +4252,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1836 +// line internal/php7/php7.y:1861 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4234,7 +4261,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1846 +// line internal/php7/php7.y:1871 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4268,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1878 +// line internal/php7/php7.y:1903 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4304,25 +4331,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1915 +// line internal/php7/php7.y:1940 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1919 +// line internal/php7/php7.y:1944 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1926 +// line internal/php7/php7.y:1951 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1930 +// line internal/php7/php7.y:1955 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4334,7 +4361,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1943 +// line internal/php7/php7.y:1968 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4346,7 +4373,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1953 +// line internal/php7/php7.y:1978 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4358,19 +4385,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1963 +// line internal/php7/php7.y:1988 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1970 +// line internal/php7/php7.y:1995 { yyVAL.node = nil } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1974 +// line internal/php7/php7.y:1999 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4379,7 +4406,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1984 +// line internal/php7/php7.y:2009 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4391,7 +4418,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1994 +// line internal/php7/php7.y:2019 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4403,7 +4430,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2007 +// line internal/php7/php7.y:2032 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4411,7 +4438,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2013 +// line internal/php7/php7.y:2038 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4420,7 +4447,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2023 +// line internal/php7/php7.y:2048 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4431,7 +4458,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2032 +// line internal/php7/php7.y:2057 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4443,7 +4470,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2045 +// line internal/php7/php7.y:2070 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4452,7 +4479,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2052 +// line internal/php7/php7.y:2077 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4460,13 +4487,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2061 +// line internal/php7/php7.y:2086 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2068 +// line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4475,7 +4502,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2075 +// line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4483,7 +4510,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2084 +// line internal/php7/php7.y:2109 { yyVAL.node = &ast.StmtStaticVar{ @@ -4506,7 +4533,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2105 +// line internal/php7/php7.y:2130 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4530,19 +4557,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2130 +// line internal/php7/php7.y:2155 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2134 +// line internal/php7/php7.y:2159 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2141 +// line internal/php7/php7.y:2166 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4557,21 +4584,22 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2154 +// line internal/php7/php7.y:2179 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), }, - Modifiers: yyDollar[1].list, - ConstTkn: yyDollar[2].token, - Consts: yyDollar[3].list, - SemiColonTkn: yyDollar[4].token, + Modifiers: yyDollar[1].list, + ConstTkn: yyDollar[2].token, + Consts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[4].token, } } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2166 +// line internal/php7/php7.y:2192 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4585,7 +4613,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2178 +// line internal/php7/php7.y:2204 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4617,7 +4645,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2211 +// line internal/php7/php7.y:2237 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4625,7 +4653,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2217 +// line internal/php7/php7.y:2243 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4634,7 +4662,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2227 +// line internal/php7/php7.y:2253 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4645,7 +4673,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2236 +// line internal/php7/php7.y:2262 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4657,7 +4685,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2246 +// line internal/php7/php7.y:2272 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4670,19 +4698,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2260 +// line internal/php7/php7.y:2286 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2264 +// line internal/php7/php7.y:2290 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2271 +// line internal/php7/php7.y:2297 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4690,7 +4718,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2277 +// line internal/php7/php7.y:2303 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4698,7 +4726,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2286 +// line internal/php7/php7.y:2312 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4712,7 +4740,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2301 +// line internal/php7/php7.y:2327 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4731,7 +4759,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2318 +// line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4750,7 +4778,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2335 +// line internal/php7/php7.y:2361 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4770,7 +4798,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2353 +// line internal/php7/php7.y:2379 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4783,7 +4811,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2367 +// line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4800,13 +4828,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2382 +// line internal/php7/php7.y:2408 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2389 +// line internal/php7/php7.y:2415 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4825,7 +4853,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2409 +// line internal/php7/php7.y:2435 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4836,7 +4864,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2418 +// line internal/php7/php7.y:2444 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4849,13 +4877,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2432 +// line internal/php7/php7.y:2458 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2436 +// line internal/php7/php7.y:2462 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4869,31 +4897,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2451 +// line internal/php7/php7.y:2477 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2455 +// line internal/php7/php7.y:2481 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2462 +// line internal/php7/php7.y:2488 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2466 +// line internal/php7/php7.y:2492 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2473 +// line internal/php7/php7.y:2499 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4905,7 +4933,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2483 +// line internal/php7/php7.y:2509 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4917,7 +4945,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2493 +// line internal/php7/php7.y:2519 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4929,7 +4957,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2503 +// line internal/php7/php7.y:2529 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4941,7 +4969,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2513 +// line internal/php7/php7.y:2539 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4953,7 +4981,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2523 +// line internal/php7/php7.y:2549 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4965,7 +4993,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2536 +// line internal/php7/php7.y:2562 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4974,7 +5002,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2543 +// line internal/php7/php7.y:2569 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4982,7 +5010,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2552 +// line internal/php7/php7.y:2578 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5005,7 +5033,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2573 +// line internal/php7/php7.y:2599 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5029,21 +5057,24 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2598 +// line internal/php7/php7.y:2624 { - lastNode(yyDollar[1].list).(*ast.StmtConstant).CommaTkn = yyDollar[2].token + yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) - yyVAL.list = append(yyDollar[1].list, yyDollar[3].node) + yyVAL.node = yyDollar[1].node } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2604 +// line internal/php7/php7.y:2631 { - yyVAL.list = []ast.Vertex{yyDollar[1].node} + yyVAL.node = &ast.ParserSeparatedList{ + Items: []ast.Vertex{yyDollar[1].node}, + } } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2611 +// line internal/php7/php7.y:2640 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5062,7 +5093,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2631 +// line internal/php7/php7.y:2660 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5081,7 +5112,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2651 +// line internal/php7/php7.y:2680 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5090,7 +5121,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2658 +// line internal/php7/php7.y:2687 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5098,25 +5129,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2667 +// line internal/php7/php7.y:2696 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2674 +// line internal/php7/php7.y:2703 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2678 +// line internal/php7/php7.y:2707 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2685 +// line internal/php7/php7.y:2714 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5125,7 +5156,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2692 +// line internal/php7/php7.y:2721 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5133,7 +5164,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2701 +// line internal/php7/php7.y:2730 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5153,7 +5184,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2722 +// line internal/php7/php7.y:2751 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5179,7 +5210,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2746 +// line internal/php7/php7.y:2775 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5191,7 +5222,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2759 +// line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5213,7 +5244,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2779 +// line internal/php7/php7.y:2808 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5234,7 +5265,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2798 +// line internal/php7/php7.y:2827 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5247,7 +5278,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2809 +// line internal/php7/php7.y:2838 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5261,7 +5292,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2821 +// line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5273,7 +5304,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2831 +// line internal/php7/php7.y:2860 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5286,7 +5317,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2842 +// line internal/php7/php7.y:2871 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5299,7 +5330,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2853 +// line internal/php7/php7.y:2882 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5312,7 +5343,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2864 +// line internal/php7/php7.y:2893 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5325,7 +5356,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2875 +// line internal/php7/php7.y:2904 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5338,7 +5369,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2886 +// line internal/php7/php7.y:2915 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5351,7 +5382,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2897 +// line internal/php7/php7.y:2926 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5364,7 +5395,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2908 +// line internal/php7/php7.y:2937 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5377,7 +5408,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2919 +// line internal/php7/php7.y:2948 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5390,7 +5421,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2930 +// line internal/php7/php7.y:2959 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5403,7 +5434,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2941 +// line internal/php7/php7.y:2970 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5416,7 +5447,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2952 +// line internal/php7/php7.y:2981 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5429,7 +5460,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2963 +// line internal/php7/php7.y:2992 { yyVAL.node = &ast.ExprAssignCoalesce{ Node: ast.Node{ @@ -5442,7 +5473,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2974 +// line internal/php7/php7.y:3003 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5454,7 +5485,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2984 +// line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5466,7 +5497,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2994 +// line internal/php7/php7.y:3023 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5478,7 +5509,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3004 +// line internal/php7/php7.y:3033 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5490,7 +5521,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3014 +// line internal/php7/php7.y:3043 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5503,7 +5534,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3025 +// line internal/php7/php7.y:3054 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5516,7 +5547,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3036 +// line internal/php7/php7.y:3065 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5529,7 +5560,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3047 +// line internal/php7/php7.y:3076 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5542,7 +5573,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3058 +// line internal/php7/php7.y:3087 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5555,7 +5586,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3069 +// line internal/php7/php7.y:3098 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5568,7 +5599,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3080 +// line internal/php7/php7.y:3109 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5581,7 +5612,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3091 +// line internal/php7/php7.y:3120 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5594,7 +5625,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3102 +// line internal/php7/php7.y:3131 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5607,7 +5638,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3113 +// line internal/php7/php7.y:3142 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5620,7 +5651,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3124 +// line internal/php7/php7.y:3153 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5633,7 +5664,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3135 +// line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5646,7 +5677,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3146 +// line internal/php7/php7.y:3175 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5659,7 +5690,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3157 +// line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5672,7 +5703,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3168 +// line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5685,7 +5716,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3179 +// line internal/php7/php7.y:3208 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5698,7 +5729,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3190 +// line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5711,7 +5742,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3201 +// line internal/php7/php7.y:3230 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5723,7 +5754,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3211 +// line internal/php7/php7.y:3240 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5735,7 +5766,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3221 +// line internal/php7/php7.y:3250 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5747,7 +5778,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3231 +// line internal/php7/php7.y:3260 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5759,7 +5790,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3241 +// line internal/php7/php7.y:3270 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5772,7 +5803,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3252 +// line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5785,7 +5816,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3263 +// line internal/php7/php7.y:3292 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5798,7 +5829,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3274 +// line internal/php7/php7.y:3303 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5811,7 +5842,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3285 +// line internal/php7/php7.y:3314 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5824,7 +5855,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3296 +// line internal/php7/php7.y:3325 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5837,7 +5868,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3307 +// line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5850,7 +5881,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3318 +// line internal/php7/php7.y:3347 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5863,7 +5894,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3329 +// line internal/php7/php7.y:3358 { yyVAL.node = &ast.ExprBinarySpaceship{ Node: ast.Node{ @@ -5876,7 +5907,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3340 +// line internal/php7/php7.y:3369 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5889,7 +5920,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3351 +// line internal/php7/php7.y:3380 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5902,13 +5933,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3362 +// line internal/php7/php7.y:3391 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3366 +// line internal/php7/php7.y:3395 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5923,7 +5954,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3379 +// line internal/php7/php7.y:3408 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5937,7 +5968,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3391 +// line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprBinaryCoalesce{ Node: ast.Node{ @@ -5950,13 +5981,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3402 +// line internal/php7/php7.y:3431 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3406 +// line internal/php7/php7.y:3435 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -5968,7 +5999,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3416 +// line internal/php7/php7.y:3445 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -5980,7 +6011,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3426 +// line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -5992,7 +6023,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3436 +// line internal/php7/php7.y:3465 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6004,7 +6035,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3446 +// line internal/php7/php7.y:3475 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6016,7 +6047,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3456 +// line internal/php7/php7.y:3485 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6028,7 +6059,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3466 +// line internal/php7/php7.y:3495 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6040,7 +6071,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3476 +// line internal/php7/php7.y:3505 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6059,7 +6090,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3493 +// line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6071,13 +6102,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3503 +// line internal/php7/php7.y:3532 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3507 +// line internal/php7/php7.y:3536 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6090,7 +6121,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3518 +// line internal/php7/php7.y:3547 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6102,7 +6133,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3528 +// line internal/php7/php7.y:3557 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6113,7 +6144,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3537 +// line internal/php7/php7.y:3566 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6125,7 +6156,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3547 +// line internal/php7/php7.y:3576 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6139,7 +6170,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3559 +// line internal/php7/php7.y:3588 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6151,13 +6182,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3569 +// line internal/php7/php7.y:3598 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3573 +// line internal/php7/php7.y:3602 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6172,7 +6203,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3589 +// line internal/php7/php7.y:3618 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6184,7 +6215,7 @@ yydefault: Params: yyDollar[5].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].token, - ClosureUse: yyDollar[7].ClosureUse, + ClosureUse: yyDollar[7].node, ColonTkn: yyDollar[8].node.(*ast.ReturnType).ColonTkn, ReturnType: yyDollar[8].node.(*ast.ReturnType).Type, OpenCurlyBracketTkn: yyDollar[9].token, @@ -6194,7 +6225,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3609 +// line internal/php7/php7.y:3638 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6214,27 +6245,27 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3634 +// line internal/php7/php7.y:3663 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3638 +// line internal/php7/php7.y:3667 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3645 +// line internal/php7/php7.y:3674 { - yyVAL.ClosureUse = nil + yyVAL.node = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3649 +// line internal/php7/php7.y:3678 { - yyVAL.ClosureUse = &ast.ExprClosureUse{ + yyVAL.node = &ast.ExprClosureUse{ Node: ast.Node{ Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), }, @@ -6247,7 +6278,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3665 +// line internal/php7/php7.y:3694 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6256,7 +6287,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3672 +// line internal/php7/php7.y:3701 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6264,7 +6295,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3681 +// line internal/php7/php7.y:3710 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6281,7 +6312,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3696 +// line internal/php7/php7.y:3725 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6304,7 +6335,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3720 +// line internal/php7/php7.y:3749 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6319,7 +6350,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3733 +// line internal/php7/php7.y:3762 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6336,7 +6367,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3748 +// line internal/php7/php7.y:3777 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6353,7 +6384,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3763 +// line internal/php7/php7.y:3792 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6368,7 +6399,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3779 +// line internal/php7/php7.y:3808 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6380,31 +6411,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3789 +// line internal/php7/php7.y:3818 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3796 +// line internal/php7/php7.y:3825 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3800 +// line internal/php7/php7.y:3829 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3807 +// line internal/php7/php7.y:3836 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3811 +// line internal/php7/php7.y:3840 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6417,13 +6448,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3825 +// line internal/php7/php7.y:3854 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3829 +// line internal/php7/php7.y:3858 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6437,25 +6468,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3841 +// line internal/php7/php7.y:3870 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3848 +// line internal/php7/php7.y:3877 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3852 +// line internal/php7/php7.y:3881 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3859 +// line internal/php7/php7.y:3888 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6470,7 +6501,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3872 +// line internal/php7/php7.y:3901 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6484,7 +6515,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3884 +// line internal/php7/php7.y:3913 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6496,7 +6527,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3897 +// line internal/php7/php7.y:3926 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6508,7 +6539,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3907 +// line internal/php7/php7.y:3936 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6520,7 +6551,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3917 +// line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6532,7 +6563,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3927 +// line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6544,7 +6575,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3937 +// line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6556,7 +6587,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3947 +// line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6568,7 +6599,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3957 +// line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6580,7 +6611,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3967 +// line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6592,7 +6623,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3977 +// line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6604,7 +6635,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3987 +// line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6616,7 +6647,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3997 +// line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6637,7 +6668,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4016 +// line internal/php7/php7.y:4045 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6649,7 +6680,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4026 +// line internal/php7/php7.y:4055 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6662,7 +6693,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4037 +// line internal/php7/php7.y:4066 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6675,19 +6706,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4048 +// line internal/php7/php7.y:4077 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4052 +// line internal/php7/php7.y:4081 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4059 +// line internal/php7/php7.y:4088 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6698,7 +6729,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4068 +// line internal/php7/php7.y:4097 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6717,7 +6748,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4085 +// line internal/php7/php7.y:4114 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6736,43 +6767,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4105 +// line internal/php7/php7.y:4134 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4109 +// line internal/php7/php7.y:4138 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4116 +// line internal/php7/php7.y:4145 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4120 +// line internal/php7/php7.y:4149 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4127 +// line internal/php7/php7.y:4156 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4134 +// line internal/php7/php7.y:4163 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4138 +// line internal/php7/php7.y:4167 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6785,19 +6816,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4149 +// line internal/php7/php7.y:4178 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4156 +// line internal/php7/php7.y:4185 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4160 +// line internal/php7/php7.y:4189 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6810,19 +6841,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4171 +// line internal/php7/php7.y:4200 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4178 +// line internal/php7/php7.y:4207 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4182 +// line internal/php7/php7.y:4211 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6836,7 +6867,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4194 +// line internal/php7/php7.y:4223 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6850,7 +6881,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4206 +// line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6864,7 +6895,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4218 +// line internal/php7/php7.y:4247 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6881,25 +6912,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4233 +// line internal/php7/php7.y:4262 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4240 +// line internal/php7/php7.y:4269 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4244 +// line internal/php7/php7.y:4273 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4248 +// line internal/php7/php7.y:4277 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6912,7 +6943,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4262 +// line internal/php7/php7.y:4291 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6929,7 +6960,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4277 +// line internal/php7/php7.y:4306 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6948,7 +6979,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4294 +// line internal/php7/php7.y:4323 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6960,7 +6991,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4307 +// line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -6973,7 +7004,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4318 +// line internal/php7/php7.y:4347 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -6986,13 +7017,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4332 +// line internal/php7/php7.y:4361 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4336 +// line internal/php7/php7.y:4365 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7006,7 +7037,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4348 +// line internal/php7/php7.y:4377 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7020,7 +7051,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4360 +// line internal/php7/php7.y:4389 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7033,7 +7064,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4371 +// line internal/php7/php7.y:4400 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7046,7 +7077,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4382 +// line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7059,7 +7090,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4396 +// line internal/php7/php7.y:4425 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7071,7 +7102,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4406 +// line internal/php7/php7.y:4435 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7084,13 +7115,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4417 +// line internal/php7/php7.y:4446 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4424 +// line internal/php7/php7.y:4453 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7102,7 +7133,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4434 +// line internal/php7/php7.y:4463 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7115,13 +7146,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4445 +// line internal/php7/php7.y:4474 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4452 +// line internal/php7/php7.y:4481 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7134,19 +7165,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4466 +// line internal/php7/php7.y:4495 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4470 +// line internal/php7/php7.y:4499 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4477 +// line internal/php7/php7.y:4506 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7155,7 +7186,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4484 +// line internal/php7/php7.y:4513 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7163,7 +7194,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4493 +// line internal/php7/php7.y:4522 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7176,7 +7207,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4504 +// line internal/php7/php7.y:4533 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7187,7 +7218,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4513 +// line internal/php7/php7.y:4542 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7206,7 +7237,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4530 +// line internal/php7/php7.y:4559 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7223,7 +7254,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4545 +// line internal/php7/php7.y:4574 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7235,7 +7266,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4555 +// line internal/php7/php7.y:4584 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7257,7 +7288,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4575 +// line internal/php7/php7.y:4604 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7277,13 +7308,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4596 +// line internal/php7/php7.y:4625 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4600 +// line internal/php7/php7.y:4629 { yyVAL.list = append( yyDollar[1].list, @@ -7298,13 +7329,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4613 +// line internal/php7/php7.y:4642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4617 +// line internal/php7/php7.y:4646 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7319,7 +7350,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4633 +// line internal/php7/php7.y:4662 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7336,7 +7367,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4648 +// line internal/php7/php7.y:4677 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7361,7 +7392,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4671 +// line internal/php7/php7.y:4700 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7391,7 +7422,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4699 +// line internal/php7/php7.y:4728 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7409,7 +7440,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4715 +// line internal/php7/php7.y:4744 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7433,7 +7464,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4737 +// line internal/php7/php7.y:4766 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7465,7 +7496,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4767 +// line internal/php7/php7.y:4796 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7478,7 +7509,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4781 +// line internal/php7/php7.y:4810 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7490,7 +7521,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4791 +// line internal/php7/php7.y:4820 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7513,7 +7544,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4812 +// line internal/php7/php7.y:4841 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7546,7 +7577,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4843 +// line internal/php7/php7.y:4872 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7563,7 +7594,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4861 +// line internal/php7/php7.y:4890 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7582,7 +7613,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4878 +// line internal/php7/php7.y:4907 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7596,7 +7627,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4890 +// line internal/php7/php7.y:4919 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7608,7 +7639,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4900 +// line internal/php7/php7.y:4929 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7620,7 +7651,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4910 +// line internal/php7/php7.y:4939 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7634,7 +7665,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4922 +// line internal/php7/php7.y:4951 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7646,7 +7677,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4932 +// line internal/php7/php7.y:4961 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7658,7 +7689,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4945 +// line internal/php7/php7.y:4974 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7666,7 +7697,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4951 +// line internal/php7/php7.y:4980 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7675,7 +7706,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4961 +// line internal/php7/php7.y:4990 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index bb74f7b..6dd4946 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -14,10 +14,7 @@ import ( %union{ node ast.Vertex token *token.Token - tkn *token.Token list []ast.Vertex - - ClosureUse *ast.ExprClosureUse } %token T_INCLUDE @@ -247,9 +244,9 @@ import ( %type callable_expr callable_variable static_member new_variable %type encaps_var encaps_var_offset echo_expr_list catch_name_list name_list %type if_stmt const_list non_empty_argument_list property_list -%type alt_if_stmt lexical_var_list isset_variables -%type if_stmt_without_else -%type class_const_decl +%type alt_if_stmt lexical_var_list isset_variables class_const_list +%type if_stmt_without_else unprefixed_use_declarations inline_use_declarations use_declarations +%type class_const_decl namespace_name %type alt_if_stmt_without_else %type array_pair possible_array_pair %type isset_variable type return_type type_expr @@ -264,17 +261,15 @@ import ( %type extends_from %type implements_list %type interface_extends_list -%type lexical_vars +%type lexical_vars %type member_modifier %type use_type %type foreach_variable -%type encaps_list backticks_expr namespace_name catch_list class_const_list -%type unprefixed_use_declarations inline_use_declarations +%type encaps_list backticks_expr catch_list %type case_list trait_adaptation_list -%type use_declarations %type top_statement_list %type inner_statement_list class_statement_list %type method_modifiers variable_modifiers @@ -342,26 +337,32 @@ top_statement_list: namespace_name: T_STRING { - $$ = []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ + &ast.NameNamePart{ + Node: ast.Node{ + Position: position.NewTokenPosition($1), + }, + StringTkn: $1, + Value: $1.Value, }, - StringTkn: $1, - Value: $1.Value, }, } } | namespace_name T_NS_SEPARATOR T_STRING { - $$ = append($1, &ast.NameNamePart{ + part := &ast.NameNamePart{ Node: ast.Node{ - Position: position.NewTokensPosition($2, $3), + Position: position.NewTokenPosition($3), }, - NsSeparatorTkn: $2, StringTkn: $3, Value: $3.Value, - }) + } + + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, part) + + $$ = $1 } ; @@ -370,30 +371,33 @@ name: { $$ = &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), }, NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3, + Parts: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2), + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), }, NsSeparatorTkn: $1, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, } } ; @@ -445,9 +449,10 @@ top_statement: NsTkn: $1, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: $3, } @@ -461,9 +466,10 @@ top_statement: NsTkn: $1, Name: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracket: $3, Stmts: $4, @@ -510,7 +516,8 @@ top_statement: Position: position.NewTokensPosition($1, $3), }, UseTkn: $1, - UseDeclarations: $2, + UseDeclarations: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } } @@ -522,7 +529,8 @@ top_statement: }, UseTkn: $1, Type: $2, - UseDeclarations: $3, + UseDeclarations: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -566,29 +574,29 @@ use_type: group_use_declaration: namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { - if len($4) > 0 { - $4[len($4)-1].(*ast.StmtUseDeclaration).CommaTkn = $5 - } + $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $6), + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), }, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $2, OpenCurlyBracketTkn: $3, - UseDeclarations: $4, + UseDeclarations: $4.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $6, } } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { - $5[len($5)-1].(*ast.StmtUseDeclaration).CommaTkn = $6 + $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ Node: ast.Node{ @@ -597,13 +605,15 @@ group_use_declaration: LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $3, OpenCurlyBracketTkn: $4, - UseDeclarations: $5, + UseDeclarations: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $7, } } @@ -612,27 +622,29 @@ group_use_declaration: mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - $4[len($4)-1].(*ast.StmtUseDeclaration).CommaTkn = $5 + $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $6), + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), }, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $2, OpenCurlyBracketTkn: $3, - UseDeclarations: $4, + UseDeclarations: $4.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $6, } } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - $5[len($5)-1].(*ast.StmtUseDeclaration).CommaTkn = $6 + $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ Node: ast.Node{ @@ -641,13 +653,15 @@ mixed_group_use_declaration: LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($2), + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), }, - Parts: $2, + Parts: $2.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $3, OpenCurlyBracketTkn: $4, - UseDeclarations: $5, + UseDeclarations: $5.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $7, } } @@ -667,39 +681,48 @@ possible_comma: inline_use_declarations: inline_use_declarations ',' inline_use_declaration { - $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | inline_use_declaration { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; unprefixed_use_declarations: unprefixed_use_declarations ',' unprefixed_use_declaration { - $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | unprefixed_use_declaration { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; use_declarations: use_declarations ',' use_declaration { - $1[len($1)-1].(*ast.StmtUseDeclaration).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | use_declaration { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; @@ -723,13 +746,14 @@ unprefixed_use_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, } } @@ -737,13 +761,14 @@ unprefixed_use_declaration: { $$ = &ast.StmtUseDeclaration{ Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $3), + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), }, Use: &ast.NameName{ Node: ast.Node{ - Position: position.NewNodeListPosition($1), + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), }, - Parts: $1, + Parts: $1.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -2156,10 +2181,11 @@ class_statement: Node: ast.Node{ Position: position.NewOptionalListTokensPosition($1, $2, $4), }, - Modifiers: $1, - ConstTkn: $2, - Consts: $3, - SemiColonTkn: $4, + Modifiers: $1, + ConstTkn: $2, + Consts: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $4, } } | T_USE name_list trait_adaptations @@ -2596,13 +2622,16 @@ property: class_const_list: class_const_list ',' class_const_decl { - lastNode($1).(*ast.StmtConstant).CommaTkn = $2 + $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) - $$ = append($1, $3) + $$ = $1 } | class_const_decl { - $$ = []ast.Vertex{$1} + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{$1}, + } } ; diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 5a71e3d..b375c45 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -227,10 +227,11 @@ func (n *StmtClass) Accept(v NodeVisitor) { // StmtClassConstList node type StmtClassConstList struct { Node - Modifiers []Vertex - ConstTkn *token.Token - Consts []Vertex - SemiColonTkn *token.Token + Modifiers []Vertex + ConstTkn *token.Token + Consts []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtClassConstList) Accept(v NodeVisitor) { @@ -299,7 +300,6 @@ type StmtConstant struct { Name Vertex EqualTkn *token.Token Expr Vertex - CommaTkn *token.Token } func (n *StmtConstant) Accept(v NodeVisitor) { @@ -856,6 +856,7 @@ type StmtUse struct { UseTkn *token.Token Type Vertex UseDeclarations []Vertex + SeparatorTkns []*token.Token SemiColonTkn *token.Token } @@ -873,6 +874,7 @@ type StmtGroupUse struct { NsSeparatorTkn *token.Token OpenCurlyBracketTkn *token.Token UseDeclarations []Vertex + SeparatorTkns []*token.Token CloseCurlyBracketTkn *token.Token SemiColonTkn *token.Token } @@ -889,7 +891,6 @@ type StmtUseDeclaration struct { Use Vertex AsTkn *token.Token Alias Vertex - CommaTkn *token.Token } func (n *StmtUseDeclaration) Accept(v NodeVisitor) { @@ -1029,7 +1030,7 @@ type ExprClosure struct { Params []Vertex SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token - ClosureUse *ExprClosureUse + ClosureUse Vertex ColonTkn *token.Token ReturnType Vertex OpenCurlyBracketTkn *token.Token @@ -2017,8 +2018,8 @@ func (n *ExprBinarySpaceship) Accept(v NodeVisitor) { type NameName struct { Node - Parts []Vertex - ListSeparatorTkn *token.Token + Parts []Vertex + SeparatorTkns []*token.Token } func (n *NameName) Accept(v NodeVisitor) { @@ -2027,9 +2028,9 @@ func (n *NameName) Accept(v NodeVisitor) { type NameFullyQualified struct { Node - NsSeparatorTkn *token.Token - Parts []Vertex - ListSeparatorTkn *token.Token + NsSeparatorTkn *token.Token + Parts []Vertex + SeparatorTkns []*token.Token } func (n *NameFullyQualified) Accept(v NodeVisitor) { @@ -2038,10 +2039,10 @@ func (n *NameFullyQualified) Accept(v NodeVisitor) { type NameRelative struct { Node - NsTkn *token.Token - NsSeparatorTkn *token.Token - Parts []Vertex - ListSeparatorTkn *token.Token + NsTkn *token.Token + NsSeparatorTkn *token.Token + Parts []Vertex + SeparatorTkns []*token.Token } func (n *NameRelative) Accept(v NodeVisitor) { @@ -2050,9 +2051,8 @@ func (n *NameRelative) Accept(v NodeVisitor) { type NameNamePart struct { Node - NsSeparatorTkn *token.Token - StringTkn *token.Token - Value []byte + StringTkn *token.Token + Value []byte } func (n *NameNamePart) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index d6546f3..abcf932 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -572,7 +572,6 @@ func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { v.printNode(n.GetNode()) v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) v.printToken("AsTkn", n.AsTkn) - v.printToken("CommaTkn", n.CommaTkn) } func (v *Dump) StmtWhile(n *ast.StmtWhile) { diff --git a/pkg/ast/visitor/filter_parser_nodes.go b/pkg/ast/visitor/filter_parser_nodes.go deleted file mode 100644 index 6ccd522..0000000 --- a/pkg/ast/visitor/filter_parser_nodes.go +++ /dev/null @@ -1,1077 +0,0 @@ -package visitor - -import ( - "github.com/z7zmey/php-parser/pkg/ast" -) - -type FilterParserNodes struct { - Null -} - -func (v *FilterParserNodes) EnterNode(n ast.Vertex) bool { - n.Accept(v) - return true -} - -func (v *FilterParserNodes) ExprExit(n *ast.ExprExit) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtContinue(n *ast.StmtContinue) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtBreak(n *ast.StmtBreak) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprClone(n *ast.ExprClone) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprPrint(n *ast.ExprPrint) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtExpression(n *ast.StmtExpression) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtEcho(n *ast.StmtEcho) { - for k, v := range n.Exprs { - for { - if nn, ok := v.(*ast.ParserBrackets); ok { - v = nn.Child - } else { - break - } - } - - n.Exprs[k] = v - } -} - -func (v *FilterParserNodes) ExprIsset(n *ast.ExprIsset) { - for k, v := range n.Vars { - for { - if nn, ok := v.(*ast.ParserBrackets); ok { - v = nn.Child - } else { - break - } - } - - n.Vars[k] = v - } -} - -func (v *FilterParserNodes) StmtReturn(n *ast.StmtReturn) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprYield(n *ast.ExprYield) { - for { - if nn, ok := n.Key.(*ast.ParserBrackets); ok { - n.Key = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Value.(*ast.ParserBrackets); ok { - n.Value = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) Argument(n *ast.Argument) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtThrow(n *ast.StmtThrow) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) StmtCase(n *ast.StmtCase) { - for { - if nn, ok := n.Cond.(*ast.ParserBrackets); ok { - n.Cond = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprVariable(n *ast.ExprVariable) { - for { - if nn, ok := n.VarName.(*ast.ParserBrackets); ok { - n.VarName = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssign(n *ast.ExprAssign) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignConcat(n *ast.ExprAssignConcat) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignDiv(n *ast.ExprAssignDiv) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignMinus(n *ast.ExprAssignMinus) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignMod(n *ast.ExprAssignMod) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignMul(n *ast.ExprAssignMul) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignPlus(n *ast.ExprAssignPlus) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignPow(n *ast.ExprAssignPow) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} -func (v *FilterParserNodes) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryConcat(n *ast.ExprBinaryConcat) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryDiv(n *ast.ExprBinaryDiv) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryEqual(n *ast.ExprBinaryEqual) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryGreater(n *ast.ExprBinaryGreater) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryMinus(n *ast.ExprBinaryMinus) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryMod(n *ast.ExprBinaryMod) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryMul(n *ast.ExprBinaryMul) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryPlus(n *ast.ExprBinaryPlus) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryPow(n *ast.ExprBinaryPow) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinarySmaller(n *ast.ExprBinarySmaller) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { - for { - if nn, ok := n.Left.(*ast.ParserBrackets); ok { - n.Left = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Right.(*ast.ParserBrackets); ok { - n.Right = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprUnaryMinus(n *ast.ExprUnaryMinus) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprUnaryPlus(n *ast.ExprUnaryPlus) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBooleanNot(n *ast.ExprBooleanNot) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprBitwiseNot(n *ast.ExprBitwiseNot) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprInstanceOf(n *ast.ExprInstanceOf) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprTernary(n *ast.ExprTernary) { - for { - if nn, ok := n.Condition.(*ast.ParserBrackets); ok { - n.Condition = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.IfTrue.(*ast.ParserBrackets); ok { - n.IfTrue = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.IfFalse.(*ast.ParserBrackets); ok { - n.IfFalse = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprCastArray(n *ast.ExprCastArray) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprCastBool(n *ast.ExprCastBool) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprCastDouble(n *ast.ExprCastDouble) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprCastInt(n *ast.ExprCastInt) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprCastObject(n *ast.ExprCastObject) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprCastString(n *ast.ExprCastString) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprCastUnset(n *ast.ExprCastUnset) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprErrorSuppress(n *ast.ExprErrorSuppress) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { - for { - if nn, ok := n.Dim.(*ast.ParserBrackets); ok { - n.Dim = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprArrayItem(n *ast.ExprArrayItem) { - for { - if nn, ok := n.Key.(*ast.ParserBrackets); ok { - n.Key = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Val.(*ast.ParserBrackets); ok { - n.Val = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprEmpty(n *ast.ExprEmpty) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprInclude(n *ast.ExprInclude) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprIncludeOnce(n *ast.ExprIncludeOnce) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprEval(n *ast.ExprEval) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprRequire(n *ast.ExprRequire) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprRequireOnce(n *ast.ExprRequireOnce) { - for { - if nn, ok := n.Expr.(*ast.ParserBrackets); ok { - n.Expr = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprPropertyFetch(n *ast.ExprPropertyFetch) { - for { - if nn, ok := n.Var.(*ast.ParserBrackets); ok { - n.Var = nn.Child - } else { - break - } - } - - for { - if nn, ok := n.Property.(*ast.ParserBrackets); ok { - n.Property = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprFunctionCall(n *ast.ExprFunctionCall) { - for { - if nn, ok := n.Function.(*ast.ParserBrackets); ok { - n.Function = nn.Child - } else { - break - } - } -} - -func (v *FilterParserNodes) ExprStaticCall(n *ast.ExprStaticCall) { - for { - if nn, ok := n.Call.(*ast.ParserBrackets); ok { - n.Call = nn.Child - } else { - break - } - } -} diff --git a/pkg/ast/visitor/filter_tokens.go b/pkg/ast/visitor/filter_tokens.go deleted file mode 100644 index 579bb8d..0000000 --- a/pkg/ast/visitor/filter_tokens.go +++ /dev/null @@ -1,276 +0,0 @@ -package visitor - -import ( - "github.com/z7zmey/php-parser/pkg/ast" -) - -type FilterTokens struct { - Null -} - -func (v *FilterTokens) EnterNode(n ast.Vertex) bool { - n.GetNode().Tokens = nil - n.Accept(v) - return true -} - -func (v *FilterTokens) StmtUse(n *ast.StmtUse) { - n.UseTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtGroupUse(n *ast.StmtGroupUse) { - n.UseTkn = nil - n.LeadingNsSeparatorTkn = nil - n.NsSeparatorTkn = nil - n.OpenCurlyBracketTkn = nil - n.CloseCurlyBracketTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtUseDeclaration(n *ast.StmtUseDeclaration) { - n.NsSeparatorTkn = nil - n.AsTkn = nil - n.CommaTkn = nil -} - -func (v *FilterTokens) NameNamePart(n *ast.NameNamePart) { - n.NsSeparatorTkn = nil - n.StringTkn = nil -} - -func (v *FilterTokens) NameName(n *ast.NameName) { - n.ListSeparatorTkn = nil -} - -func (v *FilterTokens) NameFullyQualified(n *ast.NameFullyQualified) { - n.NsSeparatorTkn = nil - n.ListSeparatorTkn = nil -} - -func (v *FilterTokens) NameRelative(n *ast.NameRelative) { - n.NsTkn = nil - n.NsSeparatorTkn = nil - n.ListSeparatorTkn = nil -} - -func (v *FilterTokens) StmtNamespace(n *ast.StmtNamespace) { - n.NsTkn = nil - n.OpenCurlyBracket = nil - n.CloseCurlyBracket = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtHaltCompiler(n *ast.StmtHaltCompiler) { - n.HaltCompilerTkn = nil - n.OpenParenthesisTkn = nil - n.CloseParenthesisTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtConstList(n *ast.StmtConstList) { - n.ConstTkn = nil - n.SeparatorTkns = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtClassConstList(n *ast.StmtClassConstList) { - n.ConstTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtConstant(n *ast.StmtConstant) { - n.EqualTkn = nil - n.CommaTkn = nil -} - -func (v *FilterTokens) StmtStmtList(n *ast.StmtStmtList) { - n.OpenCurlyBracket = nil - n.CloseCurlyBracket = nil -} - -func (v *FilterTokens) StmtIf(n *ast.StmtIf) { - n.IfTkn = nil - n.OpenParenthesisTkn = nil - n.CloseParenthesisTkn = nil - n.ColonTkn = nil - n.EndIfTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtElseIf(n *ast.StmtElseIf) { - n.ElseIfTkn = nil - n.OpenParenthesisTkn = nil - n.CloseParenthesisTkn = nil - n.ColonTkn = nil -} - -func (v *FilterTokens) StmtElse(n *ast.StmtElse) { - n.ElseTkn = nil - n.ColonTkn = nil -} - -func (v *FilterTokens) ParserBrackets(n *ast.ParserBrackets) { - n.OpenBracketTkn = nil - n.CloseBracketTkn = nil -} - -func (v *FilterTokens) StmtWhile(n *ast.StmtWhile) { - n.WhileTkn = nil - n.OpenParenthesisTkn = nil - n.CloseParenthesisTkn = nil - n.ColonTkn = nil - n.EndWhileTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtDo(n *ast.StmtDo) { - n.DoTkn = nil - n.WhileTkn = nil - n.OpenParenthesisTkn = nil - n.CloseParenthesisTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtFor(n *ast.StmtFor) { - n.ForTkn = nil - n.OpenParenthesisTkn = nil - n.InitSemiColonTkn = nil - n.CondSemiColonTkn = nil - n.CloseParenthesisTkn = nil - n.ColonTkn = nil - n.EndForTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtSwitch(n *ast.StmtSwitch) { - n.SwitchTkn = nil - n.OpenParenthesisTkn = nil - n.CloseParenthesisTkn = nil - n.OpenCurlyBracketTkn = nil - n.CaseSeparatorTkn = nil - n.ColonTkn = nil - n.CloseCurlyBracketTkn = nil - n.EndSwitchTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtCase(n *ast.StmtCase) { - n.CaseTkn = nil - n.CaseSeparatorTkn = nil -} - -func (v *FilterTokens) StmtDefault(n *ast.StmtDefault) { - n.DefaultTkn = nil - n.CaseSeparatorTkn = nil -} - -func (v *FilterTokens) StmtBreak(n *ast.StmtBreak) { - n.BreakTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtContinue(n *ast.StmtContinue) { - n.ContinueTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtReturn(n *ast.StmtReturn) { - n.ReturnTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtGlobal(n *ast.StmtGlobal) { - n.GlobalTkn = nil - n.SeparatorTkns = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtStatic(n *ast.StmtStatic) { - n.StaticTkn = nil - n.SeparatorTkns = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtStaticVar(n *ast.StmtStaticVar) { - n.EqualTkn = nil -} - -func (v *FilterTokens) StmtEcho(n *ast.StmtEcho) { - n.EchoTkn = nil - n.SeparatorTkns = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtInlineHtml(n *ast.StmtInlineHtml) { - n.InlineHtmlTkn = nil -} - -func (v *FilterTokens) StmtUnset(n *ast.StmtUnset) { - n.UnsetTkn = nil - n.OpenParenthesisTkn = nil - n.SeparatorTkns = nil - n.CloseParenthesisTkn = nil - n.SemiColonTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtForeach(n *ast.StmtForeach) { - n.ForeachTkn = nil - n.OpenParenthesisTkn = nil - n.AsTkn = nil - n.DoubleArrowTkn = nil - n.CloseParenthesisTkn = nil - n.ColonTkn = nil - n.EndForeachTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtDeclare(n *ast.StmtDeclare) { - n.DeclareTkn = nil - n.OpenParenthesisTkn = nil - n.SeparatorTkns = nil - n.CloseParenthesisTkn = nil - n.ColonTkn = nil - n.EndDeclareTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtNop(n *ast.StmtNop) { - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtTry(n *ast.StmtTry) { - n.TryTkn = nil - n.OpenCurlyBracket = nil - n.CloseCurlyBracket = nil -} - -func (v *FilterTokens) StmtCatch(n *ast.StmtCatch) { - n.CatchTkn = nil - n.OpenParenthesisTkn = nil - n.SeparatorTkns = nil - n.CloseParenthesisTkn = nil - n.OpenCurlyBracketTkn = nil - n.CloseCurlyBracketTkn = nil -} - -func (v *FilterTokens) StmtFinally(n *ast.StmtFinally) { - n.FinallyTkn = nil - n.OpenCurlyBracketTkn = nil - n.CloseCurlyBracketTkn = nil -} - -func (v *FilterTokens) StmtThrow(n *ast.StmtThrow) { - n.ThrowTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtGoto(n *ast.StmtGoto) { - n.GotoTkn = nil - n.SemiColonTkn = nil -} - -func (v *FilterTokens) StmtLabel(n *ast.StmtLabel) { - n.ColonTkn = nil -} diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go index 0109652..026708e 100644 --- a/pkg/printer/printer.go +++ b/pkg/printer/printer.go @@ -550,7 +550,6 @@ func (p *Printer) printNodeArgument(n ast.Vertex) { // name func (p *Printer) printNameNamePart(n *ast.NameNamePart) { - p.printToken(n.NsSeparatorTkn, "") p.printToken(n.StringTkn, string(n.Value)) } @@ -558,8 +557,6 @@ func (p *Printer) printNameName(n *ast.NameName) { p.printFreeFloating(n, token.Start) p.joinPrintRefactored("\\", n.Parts) - - p.printToken(n.ListSeparatorTkn, "") } func (p *Printer) printNameFullyQualified(n *ast.NameFullyQualified) { @@ -567,8 +564,6 @@ func (p *Printer) printNameFullyQualified(n *ast.NameFullyQualified) { p.printToken(n.NsSeparatorTkn, "\\") p.joinPrintRefactored("\\", n.Parts) - - p.printToken(n.ListSeparatorTkn, "") } func (p *Printer) printNameRelative(n *ast.NameRelative) { @@ -577,8 +572,6 @@ func (p *Printer) printNameRelative(n *ast.NameRelative) { p.printToken(n.NsSeparatorTkn, "\\") p.joinPrintRefactored("\\", n.Parts) - - p.printToken(n.ListSeparatorTkn, "") } // scalar @@ -2099,7 +2092,6 @@ func (p *Printer) printStmtConstant(n *ast.StmtConstant) { p.Print(n.Name) p.printToken(n.EqualTkn, "=") p.Print(n.Expr) - p.printToken(n.CommaTkn, "") } func (p *Printer) printStmtContinue(n *ast.StmtContinue) { @@ -2795,7 +2787,6 @@ func (p *Printer) printStmtUseDeclaration(n *ast.StmtUseDeclaration) { p.Print(n.Use) if n.Alias == nil { - p.printToken(n.CommaTkn, "") return } @@ -2804,8 +2795,6 @@ func (p *Printer) printStmtUseDeclaration(n *ast.StmtUseDeclaration) { p.bufStart = " " p.Print(n.Alias) - - p.printToken(n.CommaTkn, "") } func (p *Printer) printStmtWhile(n *ast.StmtWhile) { From 997f7bc6e4898c9935ac9b2d0674cd029a801e34 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 22:13:12 +0200 Subject: [PATCH 101/140] refactoring: fix panic when empty return type --- internal/php5/php5.go | 1040 ++++++++++++++++++++--------------------- internal/php7/php7.go | 988 +++++++++++++++++++-------------------- internal/php7/php7.y | 2 +- 3 files changed, 1015 insertions(+), 1015 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 7f98c48..9995ca6 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2314,7 +2314,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:267 + // line internal/php5/php5.y:267 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2326,7 +2326,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:280 + // line internal/php5/php5.y:280 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2334,13 +2334,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:286 + // line internal/php5/php5.y:286 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:293 + // line internal/php5/php5.y:293 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -2356,7 +2356,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:307 + // line internal/php5/php5.y:307 { part := &ast.NameNamePart{ Node: ast.Node{ @@ -2373,32 +2373,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:325 + // line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:330 + // line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2412,7 +2412,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:354 + // line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2431,7 +2431,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:371 + // line internal/php5/php5.y:371 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2452,7 +2452,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:390 + // line internal/php5/php5.y:390 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2466,7 +2466,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:402 + // line internal/php5/php5.y:402 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2480,7 +2480,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:414 + // line internal/php5/php5.y:414 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2501,7 +2501,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:433 + // line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2522,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:452 + // line internal/php5/php5.y:452 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2530,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:461 + // line internal/php5/php5.y:461 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2539,7 +2539,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:468 + // line internal/php5/php5.y:468 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2547,7 +2547,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:477 + // line internal/php5/php5.y:477 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2564,7 +2564,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:492 + // line internal/php5/php5.y:492 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2589,7 +2589,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:515 + // line internal/php5/php5.y:515 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2607,7 +2607,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:531 + // line internal/php5/php5.y:531 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2633,7 +2633,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:558 + // line internal/php5/php5.y:558 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2642,7 +2642,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:565 + // line internal/php5/php5.y:565 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2650,7 +2650,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:574 + // line internal/php5/php5.y:574 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2667,7 +2667,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:589 + // line internal/php5/php5.y:589 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2692,7 +2692,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:612 + // line internal/php5/php5.y:612 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2710,7 +2710,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:628 + // line internal/php5/php5.y:628 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2736,7 +2736,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:655 + // line internal/php5/php5.y:655 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2745,7 +2745,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:662 + // line internal/php5/php5.y:662 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2753,7 +2753,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:671 + // line internal/php5/php5.y:671 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2770,7 +2770,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:686 + // line internal/php5/php5.y:686 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2795,7 +2795,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:709 + // line internal/php5/php5.y:709 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2813,7 +2813,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:725 + // line internal/php5/php5.y:725 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2839,7 +2839,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:752 + // line internal/php5/php5.y:752 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2863,7 +2863,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:774 + // line internal/php5/php5.y:774 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2890,7 +2890,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:802 + // line internal/php5/php5.y:802 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2898,38 +2898,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:808 + // line internal/php5/php5.y:808 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:816 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:821 + // line internal/php5/php5.y:821 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:825 + // line internal/php5/php5.y:825 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:829 + // line internal/php5/php5.y:829 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:833 + // line internal/php5/php5.y:833 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2943,13 +2943,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:849 + // line internal/php5/php5.y:849 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:853 + // line internal/php5/php5.y:853 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2967,7 +2967,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:872 + // line internal/php5/php5.y:872 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2980,7 +2980,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:883 + // line internal/php5/php5.y:883 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -3004,7 +3004,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:905 + // line internal/php5/php5.y:905 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3030,7 +3030,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:929 + // line internal/php5/php5.y:929 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3042,7 +3042,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:939 + // line internal/php5/php5.y:939 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3059,7 +3059,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:954 + // line internal/php5/php5.y:954 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3078,7 +3078,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:971 + // line internal/php5/php5.y:971 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3090,7 +3090,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:981 + // line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3102,7 +3102,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:991 + // line internal/php5/php5.y:991 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3115,7 +3115,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1002 + // line internal/php5/php5.y:1002 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3127,7 +3127,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1012 + // line internal/php5/php5.y:1012 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3140,7 +3140,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1023 + // line internal/php5/php5.y:1023 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3152,7 +3152,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1033 + // line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3165,7 +3165,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1044 + // line internal/php5/php5.y:1044 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3178,7 +3178,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1055 + // line internal/php5/php5.y:1055 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3190,7 +3190,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1065 + // line internal/php5/php5.y:1065 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3201,7 +3201,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1074 + // line internal/php5/php5.y:1074 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3212,7 +3212,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1083 + // line internal/php5/php5.y:1083 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3222,7 +3222,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1091 + // line internal/php5/php5.y:1091 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3234,7 +3234,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1101 + // line internal/php5/php5.y:1101 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3246,7 +3246,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1111 + // line internal/php5/php5.y:1111 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3258,7 +3258,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1121 + // line internal/php5/php5.y:1121 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3278,7 +3278,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1139 + // line internal/php5/php5.y:1139 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3298,7 +3298,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1157 + // line internal/php5/php5.y:1157 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3311,7 +3311,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3322,7 +3322,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1177 + // line internal/php5/php5.y:1177 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3341,7 +3341,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1194 + // line internal/php5/php5.y:1194 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3354,7 +3354,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3373,13 +3373,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1225 + // line internal/php5/php5.y:1225 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1229 + // line internal/php5/php5.y:1229 { catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3409,13 +3409,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1260 + // line internal/php5/php5.y:1260 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1264 + // line internal/php5/php5.y:1264 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3429,31 +3429,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1279 + // line internal/php5/php5.y:1279 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1283 + // line internal/php5/php5.y:1283 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1290 + // line internal/php5/php5.y:1290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1294 + // line internal/php5/php5.y:1294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1301 + // line internal/php5/php5.y:1301 { yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3482,7 +3482,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1331 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3490,7 +3490,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1337 + // line internal/php5/php5.y:1337 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3499,49 +3499,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1347 + // line internal/php5/php5.y:1347 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1354 + // line internal/php5/php5.y:1354 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1361 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1368 + // line internal/php5/php5.y:1368 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1372 + // line internal/php5/php5.y:1372 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1379 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1383 + // line internal/php5/php5.y:1383 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1390 + // line internal/php5/php5.y:1390 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3567,7 +3567,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1417 + // line internal/php5/php5.y:1417 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3604,7 +3604,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1452 + // line internal/php5/php5.y:1452 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3626,7 +3626,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1476 + // line internal/php5/php5.y:1476 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3637,7 +3637,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1485 + // line internal/php5/php5.y:1485 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3657,7 +3657,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1503 + // line internal/php5/php5.y:1503 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3668,7 +3668,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1512 + // line internal/php5/php5.y:1512 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3688,13 +3688,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1533 + // line internal/php5/php5.y:1533 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1537 + // line internal/php5/php5.y:1537 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3706,19 +3706,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1550 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1557 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1561 + // line internal/php5/php5.y:1561 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3731,13 +3731,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1575 + // line internal/php5/php5.y:1575 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1579 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3750,7 +3750,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1593 + // line internal/php5/php5.y:1593 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3758,7 +3758,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1599 + // line internal/php5/php5.y:1599 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3767,13 +3767,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1609 + // line internal/php5/php5.y:1609 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1613 + // line internal/php5/php5.y:1613 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3782,13 +3782,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1623 + // line internal/php5/php5.y:1623 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1627 + // line internal/php5/php5.y:1627 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3800,7 +3800,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1637 + // line internal/php5/php5.y:1637 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3822,7 +3822,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1660 + // line internal/php5/php5.y:1660 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3833,7 +3833,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1669 + // line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3853,7 +3853,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1690 + // line internal/php5/php5.y:1690 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3864,7 +3864,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1699 + // line internal/php5/php5.y:1699 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3884,7 +3884,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1721 + // line internal/php5/php5.y:1721 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3895,7 +3895,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1730 + // line internal/php5/php5.y:1730 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3915,7 +3915,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1752 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3938,7 +3938,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1773 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3963,7 +3963,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1800 + // line internal/php5/php5.y:1800 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3976,7 +3976,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1811 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3990,7 +3990,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1823 + // line internal/php5/php5.y:1823 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4005,7 +4005,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1836 + // line internal/php5/php5.y:1836 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4021,13 +4021,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1854 + // line internal/php5/php5.y:1854 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1858 + // line internal/php5/php5.y:1858 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4041,7 +4041,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1870 + // line internal/php5/php5.y:1870 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4054,19 +4054,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1885 + // line internal/php5/php5.y:1885 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1889 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1897 + // line internal/php5/php5.y:1897 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4077,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1906 + // line internal/php5/php5.y:1906 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4097,13 +4097,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1929 + // line internal/php5/php5.y:1929 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1933 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4118,13 +4118,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1950 + // line internal/php5/php5.y:1950 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1954 + // line internal/php5/php5.y:1954 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4146,13 +4146,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1978 + // line internal/php5/php5.y:1978 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1982 + // line internal/php5/php5.y:1982 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4164,13 +4164,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1996 + // line internal/php5/php5.y:1996 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2000 + // line internal/php5/php5.y:2000 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4189,19 +4189,19 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2021 + // line internal/php5/php5.y:2021 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2025 + // line internal/php5/php5.y:2025 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2032 + // line internal/php5/php5.y:2032 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4209,7 +4209,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2038 + // line internal/php5/php5.y:2038 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4218,7 +4218,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2048 + // line internal/php5/php5.y:2048 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4252,7 +4252,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2080 + // line internal/php5/php5.y:2080 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4288,13 +4288,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2118 + // line internal/php5/php5.y:2118 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2122 + // line internal/php5/php5.y:2122 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4306,7 +4306,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2132 + // line internal/php5/php5.y:2132 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4318,13 +4318,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2142 + // line internal/php5/php5.y:2142 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2150 + // line internal/php5/php5.y:2150 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4336,7 +4336,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2160 + // line internal/php5/php5.y:2160 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4347,7 +4347,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2169 + // line internal/php5/php5.y:2169 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4367,7 +4367,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2191 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4375,7 +4375,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2197 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4384,7 +4384,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2207 + // line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4395,7 +4395,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2216 + // line internal/php5/php5.y:2216 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4406,7 +4406,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2225 + // line internal/php5/php5.y:2225 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4418,7 +4418,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2235 + // line internal/php5/php5.y:2235 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4430,7 +4430,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2248 + // line internal/php5/php5.y:2248 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4439,7 +4439,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2255 + // line internal/php5/php5.y:2255 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4447,7 +4447,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2265 + // line internal/php5/php5.y:2265 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4464,7 +4464,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2280 + // line internal/php5/php5.y:2280 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4476,7 +4476,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2290 + // line internal/php5/php5.y:2290 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4495,7 +4495,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2311 + // line internal/php5/php5.y:2311 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4520,7 +4520,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2334 + // line internal/php5/php5.y:2334 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4547,7 +4547,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2359 + // line internal/php5/php5.y:2359 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4573,7 +4573,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2383 + // line internal/php5/php5.y:2383 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4601,19 +4601,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2413 + // line internal/php5/php5.y:2413 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2417 + // line internal/php5/php5.y:2417 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2425 + // line internal/php5/php5.y:2425 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4627,7 +4627,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2437 + // line internal/php5/php5.y:2437 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4635,13 +4635,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2443 + // line internal/php5/php5.y:2443 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2447 + // line internal/php5/php5.y:2447 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4671,7 +4671,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2478 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4685,7 +4685,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2493 + // line internal/php5/php5.y:2493 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4693,7 +4693,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2499 + // line internal/php5/php5.y:2499 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4702,7 +4702,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2509 + // line internal/php5/php5.y:2509 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4713,7 +4713,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2518 + // line internal/php5/php5.y:2518 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4726,31 +4726,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2532 + // line internal/php5/php5.y:2532 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2536 + // line internal/php5/php5.y:2536 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2543 + // line internal/php5/php5.y:2543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2547 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2554 + // line internal/php5/php5.y:2554 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4758,7 +4758,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2560 + // line internal/php5/php5.y:2560 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4766,7 +4766,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2569 + // line internal/php5/php5.y:2569 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4780,7 +4780,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2584 + // line internal/php5/php5.y:2584 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4788,7 +4788,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2590 + // line internal/php5/php5.y:2590 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4797,7 +4797,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2600 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4814,13 +4814,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2615 + // line internal/php5/php5.y:2615 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2622 + // line internal/php5/php5.y:2622 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4839,7 +4839,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2642 + // line internal/php5/php5.y:2642 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4859,7 +4859,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2660 + // line internal/php5/php5.y:2660 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4872,19 +4872,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2674 + // line internal/php5/php5.y:2674 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2678 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2685 + // line internal/php5/php5.y:2685 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4895,7 +4895,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2694 + // line internal/php5/php5.y:2694 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4908,13 +4908,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2708 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2712 + // line internal/php5/php5.y:2712 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4928,31 +4928,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2727 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2731 + // line internal/php5/php5.y:2731 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2738 + // line internal/php5/php5.y:2738 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2742 + // line internal/php5/php5.y:2742 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2749 + // line internal/php5/php5.y:2749 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4964,7 +4964,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2759 + // line internal/php5/php5.y:2759 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4976,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2769 + // line internal/php5/php5.y:2769 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +4988,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2779 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +5000,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2789 + // line internal/php5/php5.y:2789 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +5012,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2799 + // line internal/php5/php5.y:2799 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,7 +5024,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2812 + // line internal/php5/php5.y:2812 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5051,7 +5051,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2837 + // line internal/php5/php5.y:2837 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5080,7 +5080,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2864 + // line internal/php5/php5.y:2864 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5107,7 +5107,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2889 + // line internal/php5/php5.y:2889 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5135,7 +5135,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2918 + // line internal/php5/php5.y:2918 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5159,7 +5159,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2940 + // line internal/php5/php5.y:2940 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5186,7 +5186,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2968 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5195,7 +5195,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2975 + // line internal/php5/php5.y:2975 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5203,19 +5203,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2985 + // line internal/php5/php5.y:2985 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2989 + // line internal/php5/php5.y:2989 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2996 + // line internal/php5/php5.y:2996 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5224,7 +5224,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3003 + // line internal/php5/php5.y:3003 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5232,19 +5232,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3012 + // line internal/php5/php5.y:3012 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3016 + // line internal/php5/php5.y:3016 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3023 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5260,7 +5260,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3037 + // line internal/php5/php5.y:3037 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5276,37 +5276,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3054 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3058 + // line internal/php5/php5.y:3058 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3062 + // line internal/php5/php5.y:3062 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3069 + // line internal/php5/php5.y:3069 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3073 + // line internal/php5/php5.y:3073 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3080 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5331,7 +5331,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3106 + // line internal/php5/php5.y:3106 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5353,7 +5353,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3126 + // line internal/php5/php5.y:3126 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5366,7 +5366,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3137 + // line internal/php5/php5.y:3137 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5380,7 +5380,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3149 + // line internal/php5/php5.y:3149 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5417,7 +5417,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3184 + // line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5429,7 +5429,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3194 + // line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5442,7 +5442,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3205 + // line internal/php5/php5.y:3205 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5455,7 +5455,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3216 + // line internal/php5/php5.y:3216 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5468,7 +5468,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3227 + // line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5481,7 +5481,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5494,7 +5494,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3249 + // line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5507,7 +5507,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3260 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5520,7 +5520,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3271 + // line internal/php5/php5.y:3271 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5533,7 +5533,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3282 + // line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5546,7 +5546,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3293 + // line internal/php5/php5.y:3293 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5559,7 +5559,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3304 + // line internal/php5/php5.y:3304 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5572,7 +5572,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3315 + // line internal/php5/php5.y:3315 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5585,7 +5585,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3326 + // line internal/php5/php5.y:3326 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5597,7 +5597,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3336 + // line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5609,7 +5609,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3346 + // line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5621,7 +5621,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3356 + // line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5633,7 +5633,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3366 + // line internal/php5/php5.y:3366 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5646,7 +5646,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3377 + // line internal/php5/php5.y:3377 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5659,7 +5659,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3388 + // line internal/php5/php5.y:3388 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5672,7 +5672,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3399 + // line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5685,7 +5685,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3410 + // line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5698,7 +5698,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3421 + // line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5711,7 +5711,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3432 + // line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5724,7 +5724,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3443 + // line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5737,7 +5737,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3454 + // line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5750,7 +5750,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3465 + // line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5763,7 +5763,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3476 + // line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5776,7 +5776,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3487 + // line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5789,7 +5789,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3498 + // line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5802,7 +5802,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3509 + // line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5815,7 +5815,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3520 + // line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5828,7 +5828,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3531 + // line internal/php5/php5.y:3531 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5841,7 +5841,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3542 + // line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5854,7 +5854,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3553 + // line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5866,7 +5866,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5878,7 +5878,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3573 + // line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5890,7 +5890,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3583 + // line internal/php5/php5.y:3583 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5902,7 +5902,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3593 + // line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5915,7 +5915,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3604 + // line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5928,7 +5928,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3615 + // line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5941,7 +5941,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3626 + // line internal/php5/php5.y:3626 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5954,7 +5954,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3637 + // line internal/php5/php5.y:3637 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5967,7 +5967,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3648 + // line internal/php5/php5.y:3648 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5980,7 +5980,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3659 + // line internal/php5/php5.y:3659 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5993,7 +5993,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3670 + // line internal/php5/php5.y:3670 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -6006,7 +6006,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3681 + // line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6019,19 +6019,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3692 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3696 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3700 + // line internal/php5/php5.y:3700 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6068,7 +6068,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3735 + // line internal/php5/php5.y:3735 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6083,7 +6083,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3748 + // line internal/php5/php5.y:3748 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6097,13 +6097,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3760 + // line internal/php5/php5.y:3760 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3764 + // line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6115,7 +6115,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3774 + // line internal/php5/php5.y:3774 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6127,7 +6127,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3784 + // line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6139,7 +6139,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3794 + // line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6151,7 +6151,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3804 + // line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6163,7 +6163,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3814 + // line internal/php5/php5.y:3814 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6175,7 +6175,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3824 + // line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6187,7 +6187,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3834 + // line internal/php5/php5.y:3834 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6206,7 +6206,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6218,25 +6218,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3861 + // line internal/php5/php5.y:3861 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3865 + // line internal/php5/php5.y:3865 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3869 + // line internal/php5/php5.y:3869 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6249,7 +6249,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3884 + // line internal/php5/php5.y:3884 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6261,7 +6261,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3894 + // line internal/php5/php5.y:3894 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6272,7 +6272,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3903 + // line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6292,7 +6292,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3921 + // line internal/php5/php5.y:3921 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6313,7 +6313,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3943 + // line internal/php5/php5.y:3943 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6325,7 +6325,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3953 + // line internal/php5/php5.y:3953 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6337,7 +6337,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6351,7 +6351,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3975 + // line internal/php5/php5.y:3975 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6365,7 +6365,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3990 + // line internal/php5/php5.y:3990 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6379,7 +6379,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4002 + // line internal/php5/php5.y:4002 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6393,7 +6393,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4014 + // line internal/php5/php5.y:4014 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6413,7 +6413,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4032 + // line internal/php5/php5.y:4032 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6427,7 +6427,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4047 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6442,7 +6442,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4060 + // line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6456,19 +6456,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4075 + // line internal/php5/php5.y:4075 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4082 + // line internal/php5/php5.y:4082 { yyVAL.node = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4086 + // line internal/php5/php5.y:4086 { yyVAL.node = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6483,7 +6483,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4102 + // line internal/php5/php5.y:4102 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6505,7 +6505,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4122 + // line internal/php5/php5.y:4122 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6533,7 +6533,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4148 + // line internal/php5/php5.y:4148 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6554,7 +6554,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4167 + // line internal/php5/php5.y:4167 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6581,7 +6581,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4195 + // line internal/php5/php5.y:4195 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6602,7 +6602,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4214 + // line internal/php5/php5.y:4214 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6625,7 +6625,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4235 + // line internal/php5/php5.y:4235 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6647,7 +6647,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4255 + // line internal/php5/php5.y:4255 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6664,7 +6664,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4270 + // line internal/php5/php5.y:4270 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6681,7 +6681,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4285 + // line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6698,7 +6698,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4300 + // line internal/php5/php5.y:4300 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6715,7 +6715,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4315 + // line internal/php5/php5.y:4315 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6730,7 +6730,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4331 + // line internal/php5/php5.y:4331 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6742,7 +6742,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4341 + // line internal/php5/php5.y:4341 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6754,7 +6754,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4351 + // line internal/php5/php5.y:4351 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6768,7 +6768,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4363 + // line internal/php5/php5.y:4363 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6781,7 +6781,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4377 + // line internal/php5/php5.y:4377 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6793,7 +6793,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4387 + // line internal/php5/php5.y:4387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6807,7 +6807,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4399 + // line internal/php5/php5.y:4399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6820,19 +6820,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4413 + // line internal/php5/php5.y:4413 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4417 + // line internal/php5/php5.y:4417 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4424 + // line internal/php5/php5.y:4424 { yyVAL.node = yyDollar[1].node @@ -6868,25 +6868,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4458 + // line internal/php5/php5.y:4458 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4466 + // line internal/php5/php5.y:4466 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4470 + // line internal/php5/php5.y:4470 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4478 + // line internal/php5/php5.y:4478 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6894,13 +6894,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4487 + // line internal/php5/php5.y:4487 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4491 + // line internal/php5/php5.y:4491 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6912,19 +6912,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4501 + // line internal/php5/php5.y:4501 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4508 + // line internal/php5/php5.y:4508 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4512 + // line internal/php5/php5.y:4512 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6938,25 +6938,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4524 + // line internal/php5/php5.y:4524 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4531 + // line internal/php5/php5.y:4531 { yyVAL.node = nil } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4535 + // line internal/php5/php5.y:4535 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4542 + // line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6968,7 +6968,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4552 + // line internal/php5/php5.y:4552 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6980,7 +6980,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6992,7 +6992,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4572 + // line internal/php5/php5.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7004,7 +7004,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4582 + // line internal/php5/php5.y:4582 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7016,7 +7016,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4592 + // line internal/php5/php5.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7028,7 +7028,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4602 + // line internal/php5/php5.y:4602 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7040,7 +7040,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4612 + // line internal/php5/php5.y:4612 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7052,7 +7052,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4622 + // line internal/php5/php5.y:4622 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7064,7 +7064,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4632 + // line internal/php5/php5.y:4632 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7076,7 +7076,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4642 + // line internal/php5/php5.y:4642 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7097,7 +7097,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4661 + // line internal/php5/php5.y:4661 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7109,7 +7109,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4674 + // line internal/php5/php5.y:4674 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7128,25 +7128,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4694 + // line internal/php5/php5.y:4694 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4701 + // line internal/php5/php5.y:4701 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4705 + // line internal/php5/php5.y:4705 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4709 + // line internal/php5/php5.y:4709 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7163,7 +7163,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7182,7 +7182,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4741 + // line internal/php5/php5.y:4741 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7200,7 +7200,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7215,7 +7215,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4770 + // line internal/php5/php5.y:4770 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7229,13 +7229,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4782 + // line internal/php5/php5.y:4782 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4786 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7247,13 +7247,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4796 + // line internal/php5/php5.y:4796 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4803 + // line internal/php5/php5.y:4803 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7267,7 +7267,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4815 + // line internal/php5/php5.y:4815 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7280,7 +7280,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4826 + // line internal/php5/php5.y:4826 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7293,7 +7293,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4837 + // line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7306,7 +7306,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4848 + // line internal/php5/php5.y:4848 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7319,7 +7319,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4859 + // line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7332,7 +7332,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7345,7 +7345,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4881 + // line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7357,7 +7357,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7369,7 +7369,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4901 + // line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7382,7 +7382,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4912 + // line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7395,7 +7395,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7408,7 +7408,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4934 + // line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7421,7 +7421,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4945 + // line internal/php5/php5.y:4945 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7434,7 +7434,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4956 + // line internal/php5/php5.y:4956 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7447,7 +7447,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4967 + // line internal/php5/php5.y:4967 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7460,7 +7460,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4978 + // line internal/php5/php5.y:4978 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7473,7 +7473,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4989 + // line internal/php5/php5.y:4989 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7486,7 +7486,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5000 + // line internal/php5/php5.y:5000 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7499,7 +7499,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5011 + // line internal/php5/php5.y:5011 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7512,7 +7512,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5022 + // line internal/php5/php5.y:5022 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7525,7 +7525,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5033 + // line internal/php5/php5.y:5033 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7538,7 +7538,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5044 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7551,7 +7551,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5055 + // line internal/php5/php5.y:5055 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7564,7 +7564,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5066 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7577,7 +7577,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5077 + // line internal/php5/php5.y:5077 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7590,7 +7590,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5088 + // line internal/php5/php5.y:5088 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7603,7 +7603,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5099 + // line internal/php5/php5.y:5099 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7616,7 +7616,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5110 + // line internal/php5/php5.y:5110 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7630,7 +7630,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7645,7 +7645,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5135 + // line internal/php5/php5.y:5135 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7657,7 +7657,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5145 + // line internal/php5/php5.y:5145 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7669,7 +7669,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5155 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7682,13 +7682,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5169 + // line internal/php5/php5.y:5169 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5173 + // line internal/php5/php5.y:5173 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7705,7 +7705,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5188 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7724,7 +7724,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5205 + // line internal/php5/php5.y:5205 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7742,7 +7742,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5224 + // line internal/php5/php5.y:5224 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7759,25 +7759,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5239 + // line internal/php5/php5.y:5239 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5243 + // line internal/php5/php5.y:5243 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5247 + // line internal/php5/php5.y:5247 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5251 + // line internal/php5/php5.y:5251 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7790,7 +7790,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5262 + // line internal/php5/php5.y:5262 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7803,7 +7803,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5273 + // line internal/php5/php5.y:5273 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7815,13 +7815,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5286 + // line internal/php5/php5.y:5286 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5290 + // line internal/php5/php5.y:5290 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7832,19 +7832,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5302 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5306 + // line internal/php5/php5.y:5306 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5313 + // line internal/php5/php5.y:5313 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7862,7 +7862,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5329 + // line internal/php5/php5.y:5329 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7878,7 +7878,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5343 + // line internal/php5/php5.y:5343 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7895,7 +7895,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5358 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7910,19 +7910,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5374 + // line internal/php5/php5.y:5374 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5378 + // line internal/php5/php5.y:5378 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5385 + // line internal/php5/php5.y:5385 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7935,7 +7935,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5396 + // line internal/php5/php5.y:5396 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7948,25 +7948,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5411 + // line internal/php5/php5.y:5411 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5419 + // line internal/php5/php5.y:5419 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5426 + // line internal/php5/php5.y:5426 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5433 + // line internal/php5/php5.y:5433 { yyVAL.node = yyDollar[1].node @@ -8045,25 +8045,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5510 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5517 + // line internal/php5/php5.y:5517 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5521 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5529 + // line internal/php5/php5.y:5529 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8095,7 +8095,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5561 + // line internal/php5/php5.y:5561 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8111,7 +8111,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5575 + // line internal/php5/php5.y:5575 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8127,7 +8127,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5592 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8141,31 +8141,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5607 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5611 + // line internal/php5/php5.y:5611 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5615 + // line internal/php5/php5.y:5615 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5622 + // line internal/php5/php5.y:5622 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5626 + // line internal/php5/php5.y:5626 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8177,7 +8177,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5639 + // line internal/php5/php5.y:5639 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8190,7 +8190,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5650 + // line internal/php5/php5.y:5650 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8203,13 +8203,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5664 + // line internal/php5/php5.y:5664 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5671 + // line internal/php5/php5.y:5671 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8223,7 +8223,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5683 + // line internal/php5/php5.y:5683 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8237,31 +8237,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5698 + // line internal/php5/php5.y:5698 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5702 + // line internal/php5/php5.y:5702 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5706 + // line internal/php5/php5.y:5706 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5714 + // line internal/php5/php5.y:5714 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5718 + // line internal/php5/php5.y:5718 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8273,13 +8273,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5728 + // line internal/php5/php5.y:5728 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5735 + // line internal/php5/php5.y:5735 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8293,7 +8293,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5747 + // line internal/php5/php5.y:5747 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8307,13 +8307,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5759 + // line internal/php5/php5.y:5759 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5767 + // line internal/php5/php5.y:5767 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8330,7 +8330,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5782 + // line internal/php5/php5.y:5782 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8349,25 +8349,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5802 + // line internal/php5/php5.y:5802 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5806 + // line internal/php5/php5.y:5806 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5814 + // line internal/php5/php5.y:5814 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5818 + // line internal/php5/php5.y:5818 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8380,7 +8380,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5832 + // line internal/php5/php5.y:5832 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8396,7 +8396,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5846 + // line internal/php5/php5.y:5846 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8412,7 +8412,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5860 + // line internal/php5/php5.y:5860 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8425,7 +8425,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5874 + // line internal/php5/php5.y:5874 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8437,7 +8437,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5884 + // line internal/php5/php5.y:5884 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8450,7 +8450,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5898 + // line internal/php5/php5.y:5898 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8463,7 +8463,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5909 + // line internal/php5/php5.y:5909 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8474,7 +8474,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5921 + // line internal/php5/php5.y:5921 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8483,7 +8483,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5928 + // line internal/php5/php5.y:5928 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8491,7 +8491,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5938 + // line internal/php5/php5.y:5938 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8502,7 +8502,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5947 + // line internal/php5/php5.y:5947 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8529,19 +8529,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5972 + // line internal/php5/php5.y:5972 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5980 + // line internal/php5/php5.y:5980 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5984 + // line internal/php5/php5.y:5984 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8552,7 +8552,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5996 + // line internal/php5/php5.y:5996 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8570,7 +8570,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6012 + // line internal/php5/php5.y:6012 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8586,7 +8586,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6026 + // line internal/php5/php5.y:6026 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8603,7 +8603,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6041 + // line internal/php5/php5.y:6041 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8618,7 +8618,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6054 + // line internal/php5/php5.y:6054 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8642,7 +8642,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6076 + // line internal/php5/php5.y:6076 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8664,7 +8664,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6096 + // line internal/php5/php5.y:6096 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8687,7 +8687,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6117 + // line internal/php5/php5.y:6117 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8708,13 +8708,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6139 + // line internal/php5/php5.y:6139 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6143 + // line internal/php5/php5.y:6143 { yyVAL.list = append( yyDollar[1].list, @@ -8729,13 +8729,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6156 + // line internal/php5/php5.y:6156 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6160 + // line internal/php5/php5.y:6160 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8750,7 +8750,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6176 + // line internal/php5/php5.y:6176 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8767,7 +8767,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6191 + // line internal/php5/php5.y:6191 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8792,7 +8792,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6214 + // line internal/php5/php5.y:6214 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8822,7 +8822,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6242 + // line internal/php5/php5.y:6242 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8840,7 +8840,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6258 + // line internal/php5/php5.y:6258 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8864,7 +8864,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6280 + // line internal/php5/php5.y:6280 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8896,7 +8896,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6310 + // line internal/php5/php5.y:6310 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8909,7 +8909,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6324 + // line internal/php5/php5.y:6324 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8921,7 +8921,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6334 + // line internal/php5/php5.y:6334 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8944,7 +8944,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6355 + // line internal/php5/php5.y:6355 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8961,7 +8961,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6373 + // line internal/php5/php5.y:6373 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8976,7 +8976,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6386 + // line internal/php5/php5.y:6386 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8990,7 +8990,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6398 + // line internal/php5/php5.y:6398 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9004,7 +9004,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6410 + // line internal/php5/php5.y:6410 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9016,7 +9016,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6420 + // line internal/php5/php5.y:6420 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9028,7 +9028,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6430 + // line internal/php5/php5.y:6430 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9042,7 +9042,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6442 + // line internal/php5/php5.y:6442 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9054,7 +9054,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6452 + // line internal/php5/php5.y:6452 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9066,7 +9066,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6465 + // line internal/php5/php5.y:6465 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9074,7 +9074,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6471 + // line internal/php5/php5.y:6471 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9083,19 +9083,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6481 + // line internal/php5/php5.y:6481 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6485 + // line internal/php5/php5.y:6485 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6492 + // line internal/php5/php5.y:6492 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9114,7 +9114,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6509 + // line internal/php5/php5.y:6509 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9133,7 +9133,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6529 + // line internal/php5/php5.y:6529 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9152,7 +9152,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6549 + // line internal/php5/php5.y:6549 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e224ae3..e67e095 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2107,7 +2107,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:284 + // line internal/php7/php7.y:284 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2119,469 +2119,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:296 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:297 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:298 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:299 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:300 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:301 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:302 + // line internal/php7/php7.y:302 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:307 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:310 + // line internal/php7/php7.y:310 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:315 + // line internal/php7/php7.y:315 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:319 + // line internal/php7/php7.y:319 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:326 + // line internal/php7/php7.y:326 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2589,13 +2589,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:332 + // line internal/php7/php7.y:332 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:339 + // line internal/php7/php7.y:339 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -2611,7 +2611,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:353 + // line internal/php7/php7.y:353 { part := &ast.NameNamePart{ Node: ast.Node{ @@ -2628,7 +2628,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:371 + // line internal/php7/php7.y:371 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -2640,7 +2640,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:381 + // line internal/php7/php7.y:381 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -2654,7 +2654,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:393 + // line internal/php7/php7.y:393 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -2667,44 +2667,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:407 + // line internal/php7/php7.y:407 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:412 + // line internal/php7/php7.y:412 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:416 + // line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:420 + // line internal/php7/php7.y:420 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:424 + // line internal/php7/php7.y:424 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:428 + // line internal/php7/php7.y:428 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:432 + // line internal/php7/php7.y:432 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2718,7 +2718,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:444 + // line internal/php7/php7.y:444 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2737,7 +2737,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:461 + // line internal/php7/php7.y:461 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2758,7 +2758,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:480 + // line internal/php7/php7.y:480 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2772,7 +2772,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:492 + // line internal/php7/php7.y:492 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2784,7 +2784,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:502 + // line internal/php7/php7.y:502 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2797,7 +2797,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:513 + // line internal/php7/php7.y:513 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2811,7 +2811,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:525 + // line internal/php7/php7.y:525 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2826,7 +2826,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:538 + // line internal/php7/php7.y:538 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2840,7 +2840,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:553 + // line internal/php7/php7.y:553 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2852,7 +2852,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:563 + // line internal/php7/php7.y:563 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -2864,7 +2864,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:576 + // line internal/php7/php7.y:576 { yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) @@ -2888,7 +2888,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:598 + // line internal/php7/php7.y:598 { yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) @@ -2913,7 +2913,7 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:624 + // line internal/php7/php7.y:624 { yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) @@ -2937,7 +2937,7 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:646 + // line internal/php7/php7.y:646 { yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) @@ -2962,19 +2962,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:672 + // line internal/php7/php7.y:672 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:676 + // line internal/php7/php7.y:676 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:683 + // line internal/php7/php7.y:683 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2983,7 +2983,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:690 + // line internal/php7/php7.y:690 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2991,7 +2991,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:699 + // line internal/php7/php7.y:699 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3000,7 +3000,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:706 + // line internal/php7/php7.y:706 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3008,7 +3008,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:715 + // line internal/php7/php7.y:715 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3017,7 +3017,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:722 + // line internal/php7/php7.y:722 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3025,13 +3025,13 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:731 + // line internal/php7/php7.y:731 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:735 + // line internal/php7/php7.y:735 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -3041,7 +3041,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:746 + // line internal/php7/php7.y:746 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3058,7 +3058,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:761 + // line internal/php7/php7.y:761 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -3083,13 +3083,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:787 + // line internal/php7/php7.y:787 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:791 + // line internal/php7/php7.y:791 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3099,7 +3099,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:802 + // line internal/php7/php7.y:802 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3108,7 +3108,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:809 + // line internal/php7/php7.y:809 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3116,7 +3116,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:818 + // line internal/php7/php7.y:818 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3124,50 +3124,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:824 + // line internal/php7/php7.y:824 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:831 + // line internal/php7/php7.y:831 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:836 + // line internal/php7/php7.y:836 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:840 + // line internal/php7/php7.y:840 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:844 + // line internal/php7/php7.y:844 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:848 + // line internal/php7/php7.y:848 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:852 + // line internal/php7/php7.y:852 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:856 + // line internal/php7/php7.y:856 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -3181,7 +3181,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:870 + // line internal/php7/php7.y:870 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -3194,19 +3194,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:881 + // line internal/php7/php7.y:881 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:885 + // line internal/php7/php7.y:885 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:889 + // line internal/php7/php7.y:889 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3218,7 +3218,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:899 + // line internal/php7/php7.y:899 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3235,7 +3235,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:914 + // line internal/php7/php7.y:914 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3254,7 +3254,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:931 + // line internal/php7/php7.y:931 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3266,7 +3266,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:941 + // line internal/php7/php7.y:941 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3279,7 +3279,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:952 + // line internal/php7/php7.y:952 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3292,7 +3292,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:963 + // line internal/php7/php7.y:963 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3305,7 +3305,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:974 + // line internal/php7/php7.y:974 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3315,7 +3315,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:982 + // line internal/php7/php7.y:982 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3325,7 +3325,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:990 + // line internal/php7/php7.y:990 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3335,7 +3335,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:998 + // line internal/php7/php7.y:998 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3347,7 +3347,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1008 + // line internal/php7/php7.y:1008 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3359,7 +3359,7 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1018 + // line internal/php7/php7.y:1018 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3372,7 +3372,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1029 + // line internal/php7/php7.y:1029 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3386,7 +3386,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1041 + // line internal/php7/php7.y:1041 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3402,7 +3402,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1055 + // line internal/php7/php7.y:1055 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3415,7 +3415,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1066 + // line internal/php7/php7.y:1066 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3426,7 +3426,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1075 + // line internal/php7/php7.y:1075 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3445,7 +3445,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1092 + // line internal/php7/php7.y:1092 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3458,7 +3458,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1103 + // line internal/php7/php7.y:1103 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3477,7 +3477,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1120 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -3495,13 +3495,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1138 + // line internal/php7/php7.y:1138 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1142 + // line internal/php7/php7.y:1142 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3528,7 +3528,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1169 + // line internal/php7/php7.y:1169 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3536,7 +3536,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1175 + // line internal/php7/php7.y:1175 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3545,13 +3545,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1185 + // line internal/php7/php7.y:1185 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1189 + // line internal/php7/php7.y:1189 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3565,7 +3565,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1204 + // line internal/php7/php7.y:1204 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3573,7 +3573,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1210 + // line internal/php7/php7.y:1210 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3582,13 +3582,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1220 + // line internal/php7/php7.y:1220 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:1227 + // line internal/php7/php7.y:1227 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3616,31 +3616,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1256 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1260 + // line internal/php7/php7.y:1260 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1267 + // line internal/php7/php7.y:1267 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1271 + // line internal/php7/php7.y:1271 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:1278 + // line internal/php7/php7.y:1278 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3664,7 +3664,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:1300 + // line internal/php7/php7.y:1300 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3687,19 +3687,19 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1324 + // line internal/php7/php7.y:1324 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1328 + // line internal/php7/php7.y:1328 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1335 + // line internal/php7/php7.y:1335 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3711,7 +3711,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1345 + // line internal/php7/php7.y:1345 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -3723,7 +3723,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1358 + // line internal/php7/php7.y:1358 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3744,7 +3744,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1380 + // line internal/php7/php7.y:1380 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3766,13 +3766,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1403 + // line internal/php7/php7.y:1403 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1407 + // line internal/php7/php7.y:1407 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3784,13 +3784,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1420 + // line internal/php7/php7.y:1420 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1424 + // line internal/php7/php7.y:1424 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3803,13 +3803,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1438 + // line internal/php7/php7.y:1438 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1442 + // line internal/php7/php7.y:1442 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3822,13 +3822,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1456 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1460 + // line internal/php7/php7.y:1460 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3840,7 +3840,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1470 + // line internal/php7/php7.y:1470 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3855,7 +3855,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1483 { yyVAL.node = &ast.ExprList{ Node: ast.Node{ @@ -3869,7 +3869,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1498 + // line internal/php7/php7.y:1498 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3880,7 +3880,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1507 + // line internal/php7/php7.y:1507 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3900,7 +3900,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1528 + // line internal/php7/php7.y:1528 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3911,7 +3911,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1537 + // line internal/php7/php7.y:1537 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3931,7 +3931,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1558 + // line internal/php7/php7.y:1558 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3942,7 +3942,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1567 + // line internal/php7/php7.y:1567 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3962,7 +3962,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1588 + // line internal/php7/php7.y:1588 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3975,7 +3975,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1599 + // line internal/php7/php7.y:1599 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3989,7 +3989,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1611 + // line internal/php7/php7.y:1611 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4004,7 +4004,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1624 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4020,13 +4020,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1641 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1645 + // line internal/php7/php7.y:1645 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4040,7 +4040,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1657 + // line internal/php7/php7.y:1657 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4053,19 +4053,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1671 + // line internal/php7/php7.y:1671 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1675 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1682 + // line internal/php7/php7.y:1682 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4076,7 +4076,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1691 + // line internal/php7/php7.y:1691 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4096,7 +4096,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:1712 + // line internal/php7/php7.y:1712 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4111,7 +4111,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1725 + // line internal/php7/php7.y:1725 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4130,13 +4130,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1745 + // line internal/php7/php7.y:1745 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1749 + // line internal/php7/php7.y:1749 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4152,7 +4152,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1766 + // line internal/php7/php7.y:1766 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -4174,7 +4174,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php7/php7.y:1786 + // line internal/php7/php7.y:1786 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Node: ast.Node{ @@ -4198,7 +4198,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1811 + // line internal/php7/php7.y:1811 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4208,7 +4208,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1819 + // line internal/php7/php7.y:1819 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Node: ast.Node{ @@ -4232,19 +4232,19 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1844 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1848 + // line internal/php7/php7.y:1848 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1855 + // line internal/php7/php7.y:1855 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4252,7 +4252,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:1861 + // line internal/php7/php7.y:1861 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4261,7 +4261,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:1871 + // line internal/php7/php7.y:1871 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4295,7 +4295,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:1903 + // line internal/php7/php7.y:1903 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4331,25 +4331,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1940 + // line internal/php7/php7.y:1940 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1944 + // line internal/php7/php7.y:1944 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1951 + // line internal/php7/php7.y:1951 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1955 + // line internal/php7/php7.y:1955 { yyVAL.node = &ast.Nullable{ Node: ast.Node{ @@ -4361,7 +4361,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1968 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4373,7 +4373,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1978 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4385,19 +4385,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:1988 + // line internal/php7/php7.y:1988 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:1995 + // line internal/php7/php7.y:1995 { - yyVAL.node = nil + yyVAL.node = &ast.ReturnType{} } case 227: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:1999 + // line internal/php7/php7.y:1999 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4406,7 +4406,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2009 + // line internal/php7/php7.y:2009 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4418,7 +4418,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2019 + // line internal/php7/php7.y:2019 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4430,7 +4430,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2032 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4438,7 +4438,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2038 + // line internal/php7/php7.y:2038 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4447,7 +4447,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2048 + // line internal/php7/php7.y:2048 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4458,7 +4458,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2057 + // line internal/php7/php7.y:2057 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4470,7 +4470,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2070 + // line internal/php7/php7.y:2070 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4479,7 +4479,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2077 + // line internal/php7/php7.y:2077 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4487,13 +4487,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2086 + // line internal/php7/php7.y:2086 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2093 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4502,7 +4502,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2100 + // line internal/php7/php7.y:2100 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4510,7 +4510,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2109 + // line internal/php7/php7.y:2109 { yyVAL.node = &ast.StmtStaticVar{ @@ -4533,7 +4533,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2130 + // line internal/php7/php7.y:2130 { yyVAL.node = &ast.StmtStaticVar{ Node: ast.Node{ @@ -4557,19 +4557,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2155 + // line internal/php7/php7.y:2155 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2159 + // line internal/php7/php7.y:2159 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2166 + // line internal/php7/php7.y:2166 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4584,7 +4584,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2179 + // line internal/php7/php7.y:2179 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -4599,7 +4599,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2192 + // line internal/php7/php7.y:2192 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4613,7 +4613,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php7/php7.y:2204 + // line internal/php7/php7.y:2204 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4645,7 +4645,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2237 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4653,7 +4653,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2243 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4662,7 +4662,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2253 + // line internal/php7/php7.y:2253 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4673,7 +4673,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2262 + // line internal/php7/php7.y:2262 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4685,7 +4685,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2272 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4698,19 +4698,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2286 + // line internal/php7/php7.y:2286 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2290 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2297 + // line internal/php7/php7.y:2297 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4718,7 +4718,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2303 + // line internal/php7/php7.y:2303 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4726,7 +4726,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2312 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4740,7 +4740,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2327 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4759,7 +4759,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2344 + // line internal/php7/php7.y:2344 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4778,7 +4778,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2361 + // line internal/php7/php7.y:2361 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4798,7 +4798,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2379 + // line internal/php7/php7.y:2379 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4811,7 +4811,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2393 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4828,13 +4828,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2408 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2415 + // line internal/php7/php7.y:2415 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4853,7 +4853,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2435 + // line internal/php7/php7.y:2435 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4864,7 +4864,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2444 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4877,13 +4877,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2458 + // line internal/php7/php7.y:2458 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2462 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4897,31 +4897,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2477 + // line internal/php7/php7.y:2477 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2481 + // line internal/php7/php7.y:2481 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2488 + // line internal/php7/php7.y:2488 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2492 + // line internal/php7/php7.y:2492 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2499 + // line internal/php7/php7.y:2499 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4933,7 +4933,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2509 + // line internal/php7/php7.y:2509 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4945,7 +4945,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2519 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4957,7 +4957,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2529 + // line internal/php7/php7.y:2529 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4969,7 +4969,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2539 + // line internal/php7/php7.y:2539 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4981,7 +4981,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2549 + // line internal/php7/php7.y:2549 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4993,7 +4993,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2562 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5002,7 +5002,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2569 + // line internal/php7/php7.y:2569 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5010,7 +5010,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2578 + // line internal/php7/php7.y:2578 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5033,7 +5033,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2599 + // line internal/php7/php7.y:2599 { yyVAL.node = &ast.StmtProperty{ Node: ast.Node{ @@ -5057,7 +5057,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2624 + // line internal/php7/php7.y:2624 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5066,7 +5066,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2631 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5074,7 +5074,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2640 + // line internal/php7/php7.y:2640 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5093,7 +5093,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2660 + // line internal/php7/php7.y:2660 { yyVAL.node = &ast.StmtConstant{ Node: ast.Node{ @@ -5112,7 +5112,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2680 + // line internal/php7/php7.y:2680 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5121,7 +5121,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2687 + // line internal/php7/php7.y:2687 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5129,25 +5129,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2696 + // line internal/php7/php7.y:2696 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:2703 + // line internal/php7/php7.y:2703 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2707 + // line internal/php7/php7.y:2707 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2714 + // line internal/php7/php7.y:2714 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5156,7 +5156,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:2721 + // line internal/php7/php7.y:2721 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5164,7 +5164,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php7/php7.y:2730 + // line internal/php7/php7.y:2730 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -5184,7 +5184,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2751 + // line internal/php7/php7.y:2751 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5210,7 +5210,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2775 + // line internal/php7/php7.y:2775 { yyVAL.node = &ast.ExprNew{ Node: ast.Node{ @@ -5222,7 +5222,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5244,7 +5244,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:2808 + // line internal/php7/php7.y:2808 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5265,7 +5265,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2827 + // line internal/php7/php7.y:2827 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5278,7 +5278,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:2838 + // line internal/php7/php7.y:2838 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5292,7 +5292,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:2850 + // line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5304,7 +5304,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2860 + // line internal/php7/php7.y:2860 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5317,7 +5317,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2871 + // line internal/php7/php7.y:2871 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5330,7 +5330,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2882 + // line internal/php7/php7.y:2882 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5343,7 +5343,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2893 + // line internal/php7/php7.y:2893 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5356,7 +5356,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2904 + // line internal/php7/php7.y:2904 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5369,7 +5369,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2915 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5382,7 +5382,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2926 + // line internal/php7/php7.y:2926 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5395,7 +5395,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2937 + // line internal/php7/php7.y:2937 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5408,7 +5408,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2948 + // line internal/php7/php7.y:2948 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5421,7 +5421,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2959 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5434,7 +5434,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2970 + // line internal/php7/php7.y:2970 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5447,7 +5447,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2981 + // line internal/php7/php7.y:2981 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5460,7 +5460,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:2992 + // line internal/php7/php7.y:2992 { yyVAL.node = &ast.ExprAssignCoalesce{ Node: ast.Node{ @@ -5473,7 +5473,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3003 + // line internal/php7/php7.y:3003 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5485,7 +5485,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3013 + // line internal/php7/php7.y:3013 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5497,7 +5497,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3023 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5509,7 +5509,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3033 + // line internal/php7/php7.y:3033 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5521,7 +5521,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3043 + // line internal/php7/php7.y:3043 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5534,7 +5534,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3054 + // line internal/php7/php7.y:3054 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5547,7 +5547,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3065 + // line internal/php7/php7.y:3065 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5560,7 +5560,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3076 + // line internal/php7/php7.y:3076 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5573,7 +5573,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3087 + // line internal/php7/php7.y:3087 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5586,7 +5586,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3098 + // line internal/php7/php7.y:3098 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5599,7 +5599,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3109 + // line internal/php7/php7.y:3109 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5612,7 +5612,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3120 + // line internal/php7/php7.y:3120 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5625,7 +5625,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3131 + // line internal/php7/php7.y:3131 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5638,7 +5638,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3142 + // line internal/php7/php7.y:3142 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5651,7 +5651,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3153 + // line internal/php7/php7.y:3153 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5664,7 +5664,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3164 + // line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5677,7 +5677,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3175 + // line internal/php7/php7.y:3175 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5690,7 +5690,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3186 + // line internal/php7/php7.y:3186 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5703,7 +5703,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3197 + // line internal/php7/php7.y:3197 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5716,7 +5716,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3208 + // line internal/php7/php7.y:3208 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5729,7 +5729,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3219 + // line internal/php7/php7.y:3219 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5742,7 +5742,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3230 + // line internal/php7/php7.y:3230 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5754,7 +5754,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3240 + // line internal/php7/php7.y:3240 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5766,7 +5766,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3250 + // line internal/php7/php7.y:3250 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5778,7 +5778,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3260 + // line internal/php7/php7.y:3260 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5790,7 +5790,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3270 + // line internal/php7/php7.y:3270 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5803,7 +5803,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3281 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5816,7 +5816,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3292 + // line internal/php7/php7.y:3292 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5829,7 +5829,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3303 + // line internal/php7/php7.y:3303 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5842,7 +5842,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3314 + // line internal/php7/php7.y:3314 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5855,7 +5855,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3325 + // line internal/php7/php7.y:3325 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5868,7 +5868,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3336 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5881,7 +5881,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3347 + // line internal/php7/php7.y:3347 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -5894,7 +5894,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3358 + // line internal/php7/php7.y:3358 { yyVAL.node = &ast.ExprBinarySpaceship{ Node: ast.Node{ @@ -5907,7 +5907,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3369 + // line internal/php7/php7.y:3369 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -5920,7 +5920,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3380 + // line internal/php7/php7.y:3380 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -5933,13 +5933,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3391 + // line internal/php7/php7.y:3391 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:3395 + // line internal/php7/php7.y:3395 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5954,7 +5954,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3408 + // line internal/php7/php7.y:3408 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -5968,7 +5968,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3420 + // line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprBinaryCoalesce{ Node: ast.Node{ @@ -5981,13 +5981,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3431 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3435 + // line internal/php7/php7.y:3435 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -5999,7 +5999,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3445 + // line internal/php7/php7.y:3445 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6011,7 +6011,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3455 + // line internal/php7/php7.y:3455 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6023,7 +6023,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3465 + // line internal/php7/php7.y:3465 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6035,7 +6035,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3475 + // line internal/php7/php7.y:3475 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6047,7 +6047,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3485 + // line internal/php7/php7.y:3485 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6059,7 +6059,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3495 + // line internal/php7/php7.y:3495 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6071,7 +6071,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3505 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6090,7 +6090,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3522 + // line internal/php7/php7.y:3522 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6102,13 +6102,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3532 + // line internal/php7/php7.y:3532 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3536 + // line internal/php7/php7.y:3536 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6121,7 +6121,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3547 + // line internal/php7/php7.y:3547 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6133,7 +6133,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3557 + // line internal/php7/php7.y:3557 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6144,7 +6144,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3566 + // line internal/php7/php7.y:3566 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6156,7 +6156,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3576 + // line internal/php7/php7.y:3576 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6170,7 +6170,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3588 + // line internal/php7/php7.y:3588 { yyVAL.node = &ast.ExprYieldFrom{ Node: ast.Node{ @@ -6182,13 +6182,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3598 + // line internal/php7/php7.y:3598 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3602 + // line internal/php7/php7.y:3602 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6203,7 +6203,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] -// line internal/php7/php7.y:3618 + // line internal/php7/php7.y:3618 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6225,7 +6225,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php7/php7.y:3638 + // line internal/php7/php7.y:3638 { yyVAL.node = &ast.ExprArrowFunction{ Node: ast.Node{ @@ -6245,25 +6245,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3663 + // line internal/php7/php7.y:3663 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3667 + // line internal/php7/php7.y:3667 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3674 + // line internal/php7/php7.y:3674 { yyVAL.node = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3678 + // line internal/php7/php7.y:3678 { yyVAL.node = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6278,7 +6278,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3694 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6287,7 +6287,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3701 + // line internal/php7/php7.y:3701 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6295,7 +6295,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3710 + // line internal/php7/php7.y:3710 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6312,7 +6312,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3725 + // line internal/php7/php7.y:3725 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -6335,7 +6335,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3749 + // line internal/php7/php7.y:3749 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6350,7 +6350,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3762 + // line internal/php7/php7.y:3762 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6367,7 +6367,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3777 + // line internal/php7/php7.y:3777 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6384,7 +6384,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:3792 + // line internal/php7/php7.y:3792 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6399,7 +6399,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3808 + // line internal/php7/php7.y:3808 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6411,31 +6411,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3818 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3825 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3829 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3836 + // line internal/php7/php7.y:3836 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3840 + // line internal/php7/php7.y:3840 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6448,13 +6448,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3854 + // line internal/php7/php7.y:3854 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3858 + // line internal/php7/php7.y:3858 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6468,25 +6468,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3870 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:3877 + // line internal/php7/php7.y:3877 { yyVAL.node = nil } case 398: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3881 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:3888 + // line internal/php7/php7.y:3888 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6501,7 +6501,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:3901 + // line internal/php7/php7.y:3901 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6515,7 +6515,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3913 + // line internal/php7/php7.y:3913 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6527,7 +6527,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3926 + // line internal/php7/php7.y:3926 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6539,7 +6539,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3936 + // line internal/php7/php7.y:3936 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6551,7 +6551,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6563,7 +6563,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6575,7 +6575,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6587,7 +6587,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3976 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6599,7 +6599,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3986 + // line internal/php7/php7.y:3986 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6611,7 +6611,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:3996 + // line internal/php7/php7.y:3996 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6623,7 +6623,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4006 + // line internal/php7/php7.y:4006 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6635,7 +6635,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -6647,7 +6647,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4026 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6668,7 +6668,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4045 + // line internal/php7/php7.y:4045 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6680,7 +6680,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4055 + // line internal/php7/php7.y:4055 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -6693,7 +6693,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4066 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -6706,19 +6706,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4077 + // line internal/php7/php7.y:4077 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4081 + // line internal/php7/php7.y:4081 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4088 + // line internal/php7/php7.y:4088 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -6729,7 +6729,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4097 + // line internal/php7/php7.y:4097 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6748,7 +6748,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4114 + // line internal/php7/php7.y:4114 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -6767,43 +6767,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4134 + // line internal/php7/php7.y:4134 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4138 + // line internal/php7/php7.y:4138 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4145 + // line internal/php7/php7.y:4145 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4149 + // line internal/php7/php7.y:4149 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4156 + // line internal/php7/php7.y:4156 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4163 + // line internal/php7/php7.y:4163 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4167 + // line internal/php7/php7.y:4167 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6816,19 +6816,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4178 + // line internal/php7/php7.y:4178 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4185 + // line internal/php7/php7.y:4185 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4189 + // line internal/php7/php7.y:4189 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6841,19 +6841,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4200 + // line internal/php7/php7.y:4200 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4207 + // line internal/php7/php7.y:4207 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4211 + // line internal/php7/php7.y:4211 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6867,7 +6867,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4223 + // line internal/php7/php7.y:4223 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6881,7 +6881,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4235 + // line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6895,7 +6895,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4247 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -6912,25 +6912,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4262 + // line internal/php7/php7.y:4262 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4269 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4273 + // line internal/php7/php7.y:4273 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4277 + // line internal/php7/php7.y:4277 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -6943,7 +6943,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4291 + // line internal/php7/php7.y:4291 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6960,7 +6960,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4306 + // line internal/php7/php7.y:4306 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6979,7 +6979,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4323 + // line internal/php7/php7.y:4323 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -6991,7 +6991,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7004,7 +7004,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4347 + // line internal/php7/php7.y:4347 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7017,13 +7017,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4361 + // line internal/php7/php7.y:4361 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4365 + // line internal/php7/php7.y:4365 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7037,7 +7037,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4377 + // line internal/php7/php7.y:4377 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7051,7 +7051,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4389 + // line internal/php7/php7.y:4389 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7064,7 +7064,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4400 + // line internal/php7/php7.y:4400 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7077,7 +7077,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4411 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -7090,7 +7090,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4425 + // line internal/php7/php7.y:4425 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7102,7 +7102,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4435 + // line internal/php7/php7.y:4435 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7115,13 +7115,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4446 + // line internal/php7/php7.y:4446 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4453 + // line internal/php7/php7.y:4453 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -7133,7 +7133,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4463 + // line internal/php7/php7.y:4463 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7146,13 +7146,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4474 + // line internal/php7/php7.y:4474 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4481 + // line internal/php7/php7.y:4481 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7165,19 +7165,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php7/php7.y:4495 + // line internal/php7/php7.y:4495 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4499 + // line internal/php7/php7.y:4499 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4506 + // line internal/php7/php7.y:4506 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7186,7 +7186,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4513 + // line internal/php7/php7.y:4513 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7194,7 +7194,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4522 + // line internal/php7/php7.y:4522 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7207,7 +7207,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4533 + // line internal/php7/php7.y:4533 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7218,7 +7218,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4542 + // line internal/php7/php7.y:4542 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7237,7 +7237,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4559 + // line internal/php7/php7.y:4559 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7254,7 +7254,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4574 + // line internal/php7/php7.y:4574 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7266,7 +7266,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4584 + // line internal/php7/php7.y:4584 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7288,7 +7288,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4604 + // line internal/php7/php7.y:4604 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -7308,13 +7308,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4625 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4629 + // line internal/php7/php7.y:4629 { yyVAL.list = append( yyDollar[1].list, @@ -7329,13 +7329,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4642 + // line internal/php7/php7.y:4642 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4646 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7350,7 +7350,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4662 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7367,7 +7367,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4677 + // line internal/php7/php7.y:4677 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7392,7 +7392,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4700 + // line internal/php7/php7.y:4700 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -7422,7 +7422,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4728 + // line internal/php7/php7.y:4728 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7440,7 +7440,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4744 + // line internal/php7/php7.y:4744 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7464,7 +7464,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php7/php7.y:4766 + // line internal/php7/php7.y:4766 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7496,7 +7496,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4796 + // line internal/php7/php7.y:4796 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7509,7 +7509,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4810 + // line internal/php7/php7.y:4810 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -7521,7 +7521,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4820 + // line internal/php7/php7.y:4820 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -7544,7 +7544,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4841 + // line internal/php7/php7.y:4841 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7577,7 +7577,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4872 + // line internal/php7/php7.y:4872 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7594,7 +7594,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php7/php7.y:4890 + // line internal/php7/php7.y:4890 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7613,7 +7613,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4907 + // line internal/php7/php7.y:4907 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -7627,7 +7627,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4919 + // line internal/php7/php7.y:4919 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -7639,7 +7639,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4929 + // line internal/php7/php7.y:4929 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -7651,7 +7651,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php7/php7.y:4939 + // line internal/php7/php7.y:4939 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -7665,7 +7665,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4951 + // line internal/php7/php7.y:4951 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -7677,7 +7677,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php7/php7.y:4961 + // line internal/php7/php7.y:4961 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -7689,7 +7689,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4974 + // line internal/php7/php7.y:4974 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7697,7 +7697,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php7/php7.y:4980 + // line internal/php7/php7.y:4980 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7706,7 +7706,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php7/php7.y:4990 + // line internal/php7/php7.y:4990 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 6dd4946..afa2f69 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1993,7 +1993,7 @@ type: return_type: /* empty */ { - $$ = nil + $$ = &ast.ReturnType{} } | ':' type_expr { From dfe89821212fdd82087d37bd249d131dbc3a53f5 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 22:37:06 +0200 Subject: [PATCH 102/140] refactoring: fix panic when missed arguments list --- internal/php7/php7.go | 2 +- internal/php7/php7.y | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e67e095..03984ad 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -6476,7 +6476,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php7/php7.y:3877 { - yyVAL.node = nil + yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] diff --git a/internal/php7/php7.y b/internal/php7/php7.y index afa2f69..9b99da7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3875,7 +3875,7 @@ backticks_expr: ctor_arguments: /* empty */ { - $$ = nil + $$ = &ast.ArgumentList{} } | argument_list { From f6f86bf99bfcf6dfc3e4d9d179d4d44b744ce85c Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 4 Dec 2020 22:38:26 +0200 Subject: [PATCH 103/140] refactoring: fix panic when missed arguments list --- internal/php5/php5.go | 1042 ++++++++++++++++++++--------------------- internal/php5/php5.y | 2 +- 2 files changed, 522 insertions(+), 522 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 9995ca6..0ad9abe 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2314,7 +2314,7 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:267 +// line internal/php5/php5.y:267 { yylex.(*Parser).rootNode = &ast.Root{ Node: ast.Node{ @@ -2326,7 +2326,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:280 +// line internal/php5/php5.y:280 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2334,13 +2334,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:286 +// line internal/php5/php5.y:286 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:293 +// line internal/php5/php5.y:293 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -2356,7 +2356,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:307 +// line internal/php5/php5.y:307 { part := &ast.NameNamePart{ Node: ast.Node{ @@ -2373,32 +2373,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:325 +// line internal/php5/php5.y:325 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:330 +// line internal/php5/php5.y:330 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:334 +// line internal/php5/php5.y:334 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:338 +// line internal/php5/php5.y:338 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:342 +// line internal/php5/php5.y:342 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2412,7 +2412,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:354 +// line internal/php5/php5.y:354 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2431,7 +2431,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:371 +// line internal/php5/php5.y:371 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2452,7 +2452,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:390 +// line internal/php5/php5.y:390 { yyVAL.node = &ast.StmtNamespace{ Node: ast.Node{ @@ -2466,7 +2466,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:402 +// line internal/php5/php5.y:402 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2480,7 +2480,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:414 +// line internal/php5/php5.y:414 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2501,7 +2501,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:433 +// line internal/php5/php5.y:433 { yyVAL.node = &ast.StmtUse{ Node: ast.Node{ @@ -2522,7 +2522,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:452 +// line internal/php5/php5.y:452 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2530,7 +2530,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:461 +// line internal/php5/php5.y:461 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2539,7 +2539,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:468 +// line internal/php5/php5.y:468 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2547,7 +2547,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:477 +// line internal/php5/php5.y:477 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2564,7 +2564,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:492 +// line internal/php5/php5.y:492 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2589,7 +2589,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:515 +// line internal/php5/php5.y:515 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2607,7 +2607,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:531 +// line internal/php5/php5.y:531 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2633,7 +2633,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:558 +// line internal/php5/php5.y:558 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2642,7 +2642,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:565 +// line internal/php5/php5.y:565 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2650,7 +2650,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:574 +// line internal/php5/php5.y:574 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2667,7 +2667,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:589 +// line internal/php5/php5.y:589 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2692,7 +2692,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:612 +// line internal/php5/php5.y:612 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2710,7 +2710,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:628 +// line internal/php5/php5.y:628 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2736,7 +2736,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:655 +// line internal/php5/php5.y:655 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2745,7 +2745,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:662 +// line internal/php5/php5.y:662 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2753,7 +2753,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:671 +// line internal/php5/php5.y:671 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2770,7 +2770,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:686 +// line internal/php5/php5.y:686 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2795,7 +2795,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:709 +// line internal/php5/php5.y:709 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2813,7 +2813,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:725 +// line internal/php5/php5.y:725 { yyVAL.node = &ast.StmtUseDeclaration{ Node: ast.Node{ @@ -2839,7 +2839,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:752 +// line internal/php5/php5.y:752 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2863,7 +2863,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:774 +// line internal/php5/php5.y:774 { yyVAL.node = &ast.StmtConstList{ Node: ast.Node{ @@ -2890,7 +2890,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:802 +// line internal/php5/php5.y:802 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2898,38 +2898,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:808 +// line internal/php5/php5.y:808 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:816 +// line internal/php5/php5.y:816 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:821 +// line internal/php5/php5.y:821 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:825 +// line internal/php5/php5.y:825 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:829 +// line internal/php5/php5.y:829 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:833 +// line internal/php5/php5.y:833 { yyVAL.node = &ast.StmtHaltCompiler{ Node: ast.Node{ @@ -2943,13 +2943,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:849 +// line internal/php5/php5.y:849 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:853 +// line internal/php5/php5.y:853 { yyVAL.node = &ast.StmtLabel{ Node: ast.Node{ @@ -2967,7 +2967,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:872 +// line internal/php5/php5.y:872 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -2980,7 +2980,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:883 +// line internal/php5/php5.y:883 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -3004,7 +3004,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:905 +// line internal/php5/php5.y:905 { yyVAL.node = &ast.StmtIf{ Node: ast.Node{ @@ -3030,7 +3030,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:929 +// line internal/php5/php5.y:929 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3042,7 +3042,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:939 +// line internal/php5/php5.y:939 { yyVAL.node = &ast.StmtDo{ Node: ast.Node{ @@ -3059,7 +3059,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:954 +// line internal/php5/php5.y:954 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3078,7 +3078,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:971 +// line internal/php5/php5.y:971 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -3090,7 +3090,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:981 +// line internal/php5/php5.y:981 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3102,7 +3102,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:991 +// line internal/php5/php5.y:991 { yyVAL.node = &ast.StmtBreak{ Node: ast.Node{ @@ -3115,7 +3115,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1002 +// line internal/php5/php5.y:1002 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3127,7 +3127,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1012 +// line internal/php5/php5.y:1012 { yyVAL.node = &ast.StmtContinue{ Node: ast.Node{ @@ -3140,7 +3140,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1023 +// line internal/php5/php5.y:1023 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3152,7 +3152,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1033 +// line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3165,7 +3165,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1044 +// line internal/php5/php5.y:1044 { yyVAL.node = &ast.StmtReturn{ Node: ast.Node{ @@ -3178,7 +3178,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1055 +// line internal/php5/php5.y:1055 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3190,7 +3190,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1065 +// line internal/php5/php5.y:1065 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3201,7 +3201,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1074 +// line internal/php5/php5.y:1074 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3212,7 +3212,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1083 +// line internal/php5/php5.y:1083 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3222,7 +3222,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1091 +// line internal/php5/php5.y:1091 { yyVAL.node = &ast.StmtInlineHtml{ Node: ast.Node{ @@ -3234,7 +3234,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1101 +// line internal/php5/php5.y:1101 { yyVAL.node = &ast.StmtExpression{ Node: ast.Node{ @@ -3246,7 +3246,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1111 +// line internal/php5/php5.y:1111 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3258,7 +3258,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1121 +// line internal/php5/php5.y:1121 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3278,7 +3278,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1139 +// line internal/php5/php5.y:1139 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3298,7 +3298,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1157 +// line internal/php5/php5.y:1157 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3311,7 +3311,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1168 +// line internal/php5/php5.y:1168 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -3322,7 +3322,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1177 +// line internal/php5/php5.y:1177 { yyVAL.node = &ast.StmtTry{ TryTkn: yyDollar[1].token, @@ -3341,7 +3341,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1194 +// line internal/php5/php5.y:1194 { yyVAL.node = &ast.StmtThrow{ Node: ast.Node{ @@ -3354,7 +3354,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1205 +// line internal/php5/php5.y:1205 { yyVAL.node = &ast.StmtGoto{ Node: ast.Node{ @@ -3373,13 +3373,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1225 +// line internal/php5/php5.y:1225 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1229 +// line internal/php5/php5.y:1229 { catch := &ast.StmtCatch{ Node: ast.Node{ @@ -3409,13 +3409,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1260 +// line internal/php5/php5.y:1260 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1264 +// line internal/php5/php5.y:1264 { yyVAL.node = &ast.StmtFinally{ Node: ast.Node{ @@ -3429,31 +3429,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1279 +// line internal/php5/php5.y:1279 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1283 +// line internal/php5/php5.y:1283 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1290 +// line internal/php5/php5.y:1290 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1294 +// line internal/php5/php5.y:1294 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1301 +// line internal/php5/php5.y:1301 { yyVAL.node = &ast.StmtCatch{ Node: ast.Node{ @@ -3482,7 +3482,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1331 +// line internal/php5/php5.y:1331 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3490,7 +3490,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1337 +// line internal/php5/php5.y:1337 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3499,49 +3499,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1347 +// line internal/php5/php5.y:1347 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1354 +// line internal/php5/php5.y:1354 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1361 +// line internal/php5/php5.y:1361 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1368 +// line internal/php5/php5.y:1368 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1372 +// line internal/php5/php5.y:1372 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1379 +// line internal/php5/php5.y:1379 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1383 +// line internal/php5/php5.y:1383 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1390 +// line internal/php5/php5.y:1390 { yyVAL.node = &ast.StmtFunction{ Node: ast.Node{ @@ -3567,7 +3567,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1417 +// line internal/php5/php5.y:1417 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3604,7 +3604,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1452 +// line internal/php5/php5.y:1452 { yyVAL.node = &ast.StmtInterface{ Node: ast.Node{ @@ -3626,7 +3626,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1476 +// line internal/php5/php5.y:1476 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3637,7 +3637,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1485 +// line internal/php5/php5.y:1485 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3657,7 +3657,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1503 +// line internal/php5/php5.y:1503 { yyVAL.node = &ast.StmtTrait{ Node: ast.Node{ @@ -3668,7 +3668,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1512 +// line internal/php5/php5.y:1512 { yyVAL.node = &ast.StmtClass{ Node: ast.Node{ @@ -3688,13 +3688,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1533 +// line internal/php5/php5.y:1533 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1537 +// line internal/php5/php5.y:1537 { yyVAL.node = &ast.StmtClassExtends{ Node: ast.Node{ @@ -3706,19 +3706,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1550 +// line internal/php5/php5.y:1550 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1557 +// line internal/php5/php5.y:1557 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1561 +// line internal/php5/php5.y:1561 { yyVAL.node = &ast.StmtInterfaceExtends{ Node: ast.Node{ @@ -3731,13 +3731,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1575 +// line internal/php5/php5.y:1575 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1579 +// line internal/php5/php5.y:1579 { yyVAL.node = &ast.StmtClassImplements{ Node: ast.Node{ @@ -3750,7 +3750,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1593 +// line internal/php5/php5.y:1593 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3758,7 +3758,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1599 +// line internal/php5/php5.y:1599 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3767,13 +3767,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1609 +// line internal/php5/php5.y:1609 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1613 +// line internal/php5/php5.y:1613 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3782,13 +3782,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1623 +// line internal/php5/php5.y:1623 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1627 +// line internal/php5/php5.y:1627 { yyVAL.node = &ast.ExprReference{ Node: ast.Node{ @@ -3800,7 +3800,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1637 +// line internal/php5/php5.y:1637 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3822,7 +3822,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1660 +// line internal/php5/php5.y:1660 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3833,7 +3833,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1669 +// line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtFor{ Node: ast.Node{ @@ -3853,7 +3853,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1690 +// line internal/php5/php5.y:1690 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3864,7 +3864,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1699 +// line internal/php5/php5.y:1699 { yyVAL.node = &ast.StmtForeach{ Node: ast.Node{ @@ -3884,7 +3884,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1721 +// line internal/php5/php5.y:1721 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3895,7 +3895,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1730 +// line internal/php5/php5.y:1730 { yyVAL.node = &ast.StmtDeclare{ Node: ast.Node{ @@ -3915,7 +3915,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1752 +// line internal/php5/php5.y:1752 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3938,7 +3938,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1773 +// line internal/php5/php5.y:1773 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3963,7 +3963,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1800 +// line internal/php5/php5.y:1800 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3976,7 +3976,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1811 +// line internal/php5/php5.y:1811 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -3990,7 +3990,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1823 +// line internal/php5/php5.y:1823 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4005,7 +4005,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1836 +// line internal/php5/php5.y:1836 { yyVAL.node = &ast.StmtSwitch{ Node: ast.Node{ @@ -4021,13 +4021,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1854 +// line internal/php5/php5.y:1854 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1858 +// line internal/php5/php5.y:1858 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Node: ast.Node{ @@ -4041,7 +4041,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1870 +// line internal/php5/php5.y:1870 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Node: ast.Node{ @@ -4054,19 +4054,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1885 +// line internal/php5/php5.y:1885 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1889 +// line internal/php5/php5.y:1889 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1897 +// line internal/php5/php5.y:1897 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4077,7 +4077,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1906 +// line internal/php5/php5.y:1906 { yyVAL.node = &ast.StmtWhile{ Node: ast.Node{ @@ -4097,13 +4097,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1929 +// line internal/php5/php5.y:1929 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1933 +// line internal/php5/php5.y:1933 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4118,13 +4118,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1950 +// line internal/php5/php5.y:1950 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1954 +// line internal/php5/php5.y:1954 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Node: ast.Node{ @@ -4146,13 +4146,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1978 +// line internal/php5/php5.y:1978 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1982 +// line internal/php5/php5.y:1982 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4164,13 +4164,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1996 +// line internal/php5/php5.y:1996 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2000 +// line internal/php5/php5.y:2000 { yyVAL.node = &ast.StmtElse{ Node: ast.Node{ @@ -4189,19 +4189,19 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2021 +// line internal/php5/php5.y:2021 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2025 +// line internal/php5/php5.y:2025 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2032 +// line internal/php5/php5.y:2032 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4209,7 +4209,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2038 +// line internal/php5/php5.y:2038 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4218,7 +4218,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2048 +// line internal/php5/php5.y:2048 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4252,7 +4252,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2080 +// line internal/php5/php5.y:2080 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4288,13 +4288,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2118 +// line internal/php5/php5.y:2118 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2122 +// line internal/php5/php5.y:2122 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4306,7 +4306,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2132 +// line internal/php5/php5.y:2132 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4318,13 +4318,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2142 +// line internal/php5/php5.y:2142 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2150 +// line internal/php5/php5.y:2150 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4336,7 +4336,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2160 +// line internal/php5/php5.y:2160 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4347,7 +4347,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2169 +// line internal/php5/php5.y:2169 { yyVAL.node = &ast.ArgumentList{ Node: ast.Node{ @@ -4367,7 +4367,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2191 +// line internal/php5/php5.y:2191 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4375,7 +4375,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2197 +// line internal/php5/php5.y:2197 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4384,7 +4384,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2207 +// line internal/php5/php5.y:2207 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4395,7 +4395,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2216 +// line internal/php5/php5.y:2216 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4406,7 +4406,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2225 +// line internal/php5/php5.y:2225 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4418,7 +4418,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2235 +// line internal/php5/php5.y:2235 { yyVAL.node = &ast.Argument{ Node: ast.Node{ @@ -4430,7 +4430,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2248 +// line internal/php5/php5.y:2248 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4439,7 +4439,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2255 +// line internal/php5/php5.y:2255 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4447,7 +4447,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2265 +// line internal/php5/php5.y:2265 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4464,7 +4464,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2280 +// line internal/php5/php5.y:2280 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4476,7 +4476,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2290 +// line internal/php5/php5.y:2290 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -4495,7 +4495,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2311 +// line internal/php5/php5.y:2311 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4520,7 +4520,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2334 +// line internal/php5/php5.y:2334 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Node: ast.Node{ @@ -4547,7 +4547,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2359 +// line internal/php5/php5.y:2359 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4573,7 +4573,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2383 +// line internal/php5/php5.y:2383 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4601,19 +4601,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2413 +// line internal/php5/php5.y:2413 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2417 +// line internal/php5/php5.y:2417 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2425 +// line internal/php5/php5.y:2425 { yyVAL.node = &ast.StmtPropertyList{ Node: ast.Node{ @@ -4627,7 +4627,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2437 +// line internal/php5/php5.y:2437 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4635,13 +4635,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2443 +// line internal/php5/php5.y:2443 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2447 +// line internal/php5/php5.y:2447 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4671,7 +4671,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2478 +// line internal/php5/php5.y:2478 { yyVAL.node = &ast.StmtTraitUse{ Node: ast.Node{ @@ -4685,7 +4685,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2493 +// line internal/php5/php5.y:2493 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4693,7 +4693,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2499 +// line internal/php5/php5.y:2499 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4702,7 +4702,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2509 +// line internal/php5/php5.y:2509 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4713,7 +4713,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2518 +// line internal/php5/php5.y:2518 { yyVAL.node = &ast.StmtTraitAdaptationList{ Node: ast.Node{ @@ -4726,31 +4726,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2532 +// line internal/php5/php5.y:2532 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2536 +// line internal/php5/php5.y:2536 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2543 +// line internal/php5/php5.y:2543 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2547 +// line internal/php5/php5.y:2547 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2554 +// line internal/php5/php5.y:2554 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4758,7 +4758,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2560 +// line internal/php5/php5.y:2560 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4766,7 +4766,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2569 +// line internal/php5/php5.y:2569 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Node: ast.Node{ @@ -4780,7 +4780,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2584 +// line internal/php5/php5.y:2584 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4788,7 +4788,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2590 +// line internal/php5/php5.y:2590 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4797,7 +4797,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2600 +// line internal/php5/php5.y:2600 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4814,13 +4814,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2615 +// line internal/php5/php5.y:2615 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2622 +// line internal/php5/php5.y:2622 { yyVAL.node = &ast.StmtTraitMethodRef{ Node: ast.Node{ @@ -4839,7 +4839,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2642 +// line internal/php5/php5.y:2642 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4859,7 +4859,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2660 +// line internal/php5/php5.y:2660 { yyVAL.node = &ast.StmtTraitUseAlias{ Node: ast.Node{ @@ -4872,19 +4872,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2674 +// line internal/php5/php5.y:2674 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 +// line internal/php5/php5.y:2678 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2685 +// line internal/php5/php5.y:2685 { yyVAL.node = &ast.StmtNop{ Node: ast.Node{ @@ -4895,7 +4895,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2694 +// line internal/php5/php5.y:2694 { yyVAL.node = &ast.StmtStmtList{ Node: ast.Node{ @@ -4908,13 +4908,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2708 +// line internal/php5/php5.y:2708 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2712 +// line internal/php5/php5.y:2712 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4928,31 +4928,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2727 +// line internal/php5/php5.y:2727 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2731 +// line internal/php5/php5.y:2731 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2738 +// line internal/php5/php5.y:2738 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2742 +// line internal/php5/php5.y:2742 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2749 +// line internal/php5/php5.y:2749 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4964,7 +4964,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2759 +// line internal/php5/php5.y:2759 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4976,7 +4976,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2769 +// line internal/php5/php5.y:2769 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -4988,7 +4988,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2779 +// line internal/php5/php5.y:2779 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5000,7 +5000,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2789 +// line internal/php5/php5.y:2789 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5012,7 +5012,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2799 +// line internal/php5/php5.y:2799 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -5024,7 +5024,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2812 +// line internal/php5/php5.y:2812 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5051,7 +5051,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2837 +// line internal/php5/php5.y:2837 { item := &ast.StmtProperty{ Node: ast.Node{ @@ -5080,7 +5080,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2864 +// line internal/php5/php5.y:2864 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5107,7 +5107,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2889 +// line internal/php5/php5.y:2889 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5135,7 +5135,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2918 +// line internal/php5/php5.y:2918 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -5159,7 +5159,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2940 +// line internal/php5/php5.y:2940 { yyVAL.node = &ast.StmtClassConstList{ Node: ast.Node{ @@ -5186,7 +5186,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2968 +// line internal/php5/php5.y:2968 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5195,7 +5195,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2975 +// line internal/php5/php5.y:2975 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5203,19 +5203,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2985 +// line internal/php5/php5.y:2985 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2989 +// line internal/php5/php5.y:2989 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2996 +// line internal/php5/php5.y:2996 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5224,7 +5224,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3003 +// line internal/php5/php5.y:3003 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5232,19 +5232,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3012 +// line internal/php5/php5.y:3012 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3016 +// line internal/php5/php5.y:3016 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3023 +// line internal/php5/php5.y:3023 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5260,7 +5260,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3037 +// line internal/php5/php5.y:3037 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -5276,37 +5276,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3054 +// line internal/php5/php5.y:3054 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3058 +// line internal/php5/php5.y:3058 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3062 +// line internal/php5/php5.y:3062 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3069 +// line internal/php5/php5.y:3069 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3073 +// line internal/php5/php5.y:3073 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3080 +// line internal/php5/php5.y:3080 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -5331,7 +5331,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3106 +// line internal/php5/php5.y:3106 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5353,7 +5353,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3126 +// line internal/php5/php5.y:3126 { yyVAL.node = &ast.ExprAssign{ Node: ast.Node{ @@ -5366,7 +5366,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3137 +// line internal/php5/php5.y:3137 { yyVAL.node = &ast.ExprAssignReference{ Node: ast.Node{ @@ -5380,7 +5380,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:3149 +// line internal/php5/php5.y:3149 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5417,7 +5417,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3184 +// line internal/php5/php5.y:3184 { yyVAL.node = &ast.ExprClone{ Node: ast.Node{ @@ -5429,7 +5429,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3194 +// line internal/php5/php5.y:3194 { yyVAL.node = &ast.ExprAssignPlus{ Node: ast.Node{ @@ -5442,7 +5442,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3205 +// line internal/php5/php5.y:3205 { yyVAL.node = &ast.ExprAssignMinus{ Node: ast.Node{ @@ -5455,7 +5455,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3216 +// line internal/php5/php5.y:3216 { yyVAL.node = &ast.ExprAssignMul{ Node: ast.Node{ @@ -5468,7 +5468,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3227 +// line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprAssignPow{ Node: ast.Node{ @@ -5481,7 +5481,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3238 +// line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprAssignDiv{ Node: ast.Node{ @@ -5494,7 +5494,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3249 +// line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprAssignConcat{ Node: ast.Node{ @@ -5507,7 +5507,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3260 +// line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprAssignMod{ Node: ast.Node{ @@ -5520,7 +5520,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3271 +// line internal/php5/php5.y:3271 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Node: ast.Node{ @@ -5533,7 +5533,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3282 +// line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Node: ast.Node{ @@ -5546,7 +5546,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3293 +// line internal/php5/php5.y:3293 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Node: ast.Node{ @@ -5559,7 +5559,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3304 +// line internal/php5/php5.y:3304 { yyVAL.node = &ast.ExprAssignShiftLeft{ Node: ast.Node{ @@ -5572,7 +5572,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3315 +// line internal/php5/php5.y:3315 { yyVAL.node = &ast.ExprAssignShiftRight{ Node: ast.Node{ @@ -5585,7 +5585,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3326 +// line internal/php5/php5.y:3326 { yyVAL.node = &ast.ExprPostInc{ Node: ast.Node{ @@ -5597,7 +5597,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3336 +// line internal/php5/php5.y:3336 { yyVAL.node = &ast.ExprPreInc{ Node: ast.Node{ @@ -5609,7 +5609,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3346 +// line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprPostDec{ Node: ast.Node{ @@ -5621,7 +5621,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3356 +// line internal/php5/php5.y:3356 { yyVAL.node = &ast.ExprPreDec{ Node: ast.Node{ @@ -5633,7 +5633,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3366 +// line internal/php5/php5.y:3366 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -5646,7 +5646,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3377 +// line internal/php5/php5.y:3377 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -5659,7 +5659,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3388 +// line internal/php5/php5.y:3388 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -5672,7 +5672,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3399 +// line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -5685,7 +5685,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3410 +// line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -5698,7 +5698,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3421 +// line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -5711,7 +5711,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3432 +// line internal/php5/php5.y:3432 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -5724,7 +5724,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3443 +// line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -5737,7 +5737,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3454 +// line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -5750,7 +5750,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3465 +// line internal/php5/php5.y:3465 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -5763,7 +5763,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3476 +// line internal/php5/php5.y:3476 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -5776,7 +5776,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3487 +// line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -5789,7 +5789,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3498 +// line internal/php5/php5.y:3498 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -5802,7 +5802,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3509 +// line internal/php5/php5.y:3509 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -5815,7 +5815,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3520 +// line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -5828,7 +5828,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3531 +// line internal/php5/php5.y:3531 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -5841,7 +5841,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3542 +// line internal/php5/php5.y:3542 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -5854,7 +5854,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3553 +// line internal/php5/php5.y:3553 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -5866,7 +5866,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3563 +// line internal/php5/php5.y:3563 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -5878,7 +5878,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3573 +// line internal/php5/php5.y:3573 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -5890,7 +5890,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3583 +// line internal/php5/php5.y:3583 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -5902,7 +5902,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3593 +// line internal/php5/php5.y:3593 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -5915,7 +5915,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3604 +// line internal/php5/php5.y:3604 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -5928,7 +5928,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3615 +// line internal/php5/php5.y:3615 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -5941,7 +5941,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3626 +// line internal/php5/php5.y:3626 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -5954,7 +5954,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3637 +// line internal/php5/php5.y:3637 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -5967,7 +5967,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3648 +// line internal/php5/php5.y:3648 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -5980,7 +5980,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3659 +// line internal/php5/php5.y:3659 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -5993,7 +5993,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3670 +// line internal/php5/php5.y:3670 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -6006,7 +6006,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3681 +// line internal/php5/php5.y:3681 { yyVAL.node = &ast.ExprInstanceOf{ Node: ast.Node{ @@ -6019,19 +6019,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3692 +// line internal/php5/php5.y:3692 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3696 +// line internal/php5/php5.y:3696 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3700 +// line internal/php5/php5.y:3700 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6068,7 +6068,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3735 +// line internal/php5/php5.y:3735 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6083,7 +6083,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3748 +// line internal/php5/php5.y:3748 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -6097,13 +6097,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3760 +// line internal/php5/php5.y:3760 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3764 +// line internal/php5/php5.y:3764 { yyVAL.node = &ast.ExprCastInt{ Node: ast.Node{ @@ -6115,7 +6115,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3774 +// line internal/php5/php5.y:3774 { yyVAL.node = &ast.ExprCastDouble{ Node: ast.Node{ @@ -6127,7 +6127,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3784 +// line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprCastString{ Node: ast.Node{ @@ -6139,7 +6139,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3794 +// line internal/php5/php5.y:3794 { yyVAL.node = &ast.ExprCastArray{ Node: ast.Node{ @@ -6151,7 +6151,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3804 +// line internal/php5/php5.y:3804 { yyVAL.node = &ast.ExprCastObject{ Node: ast.Node{ @@ -6163,7 +6163,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3814 +// line internal/php5/php5.y:3814 { yyVAL.node = &ast.ExprCastBool{ Node: ast.Node{ @@ -6175,7 +6175,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3824 +// line internal/php5/php5.y:3824 { yyVAL.node = &ast.ExprCastUnset{ Node: ast.Node{ @@ -6187,7 +6187,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3834 +// line internal/php5/php5.y:3834 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -6206,7 +6206,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3851 +// line internal/php5/php5.y:3851 { yyVAL.node = &ast.ExprErrorSuppress{ Node: ast.Node{ @@ -6218,25 +6218,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3861 +// line internal/php5/php5.y:3861 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3865 +// line internal/php5/php5.y:3865 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3869 +// line internal/php5/php5.y:3869 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3873 +// line internal/php5/php5.y:3873 { yyVAL.node = &ast.ExprShellExec{ Node: ast.Node{ @@ -6249,7 +6249,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3884 +// line internal/php5/php5.y:3884 { yyVAL.node = &ast.ExprPrint{ Node: ast.Node{ @@ -6261,7 +6261,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3894 +// line internal/php5/php5.y:3894 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6272,7 +6272,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3903 +// line internal/php5/php5.y:3903 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6292,7 +6292,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3921 +// line internal/php5/php5.y:3921 { yyVAL.node = &ast.ExprClosure{ Node: ast.Node{ @@ -6313,7 +6313,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3943 +// line internal/php5/php5.y:3943 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6325,7 +6325,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3953 +// line internal/php5/php5.y:3953 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6337,7 +6337,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3963 +// line internal/php5/php5.y:3963 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6351,7 +6351,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3975 +// line internal/php5/php5.y:3975 { yyVAL.node = &ast.ExprYield{ Node: ast.Node{ @@ -6365,7 +6365,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3990 +// line internal/php5/php5.y:3990 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6379,7 +6379,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4002 +// line internal/php5/php5.y:4002 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6393,7 +6393,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4014 +// line internal/php5/php5.y:4014 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6413,7 +6413,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4032 +// line internal/php5/php5.y:4032 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -6427,7 +6427,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4047 +// line internal/php5/php5.y:4047 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6442,7 +6442,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4060 +// line internal/php5/php5.y:4060 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -6456,19 +6456,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4075 +// line internal/php5/php5.y:4075 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4082 +// line internal/php5/php5.y:4082 { yyVAL.node = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4086 +// line internal/php5/php5.y:4086 { yyVAL.node = &ast.ExprClosureUse{ Node: ast.Node{ @@ -6483,7 +6483,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4102 +// line internal/php5/php5.y:4102 { variable := &ast.ExprVariable{ Node: ast.Node{ @@ -6505,7 +6505,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4122 +// line internal/php5/php5.y:4122 { reference := &ast.ExprReference{ Node: ast.Node{ @@ -6533,7 +6533,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4148 +// line internal/php5/php5.y:4148 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6554,7 +6554,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4167 +// line internal/php5/php5.y:4167 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -6581,7 +6581,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4195 +// line internal/php5/php5.y:4195 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6602,7 +6602,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4214 +// line internal/php5/php5.y:4214 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6625,7 +6625,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4235 +// line internal/php5/php5.y:4235 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6647,7 +6647,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4255 +// line internal/php5/php5.y:4255 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6664,7 +6664,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4270 +// line internal/php5/php5.y:4270 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6681,7 +6681,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4285 +// line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6698,7 +6698,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4300 +// line internal/php5/php5.y:4300 { yyVAL.node = &ast.ExprStaticCall{ Node: ast.Node{ @@ -6715,7 +6715,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4315 +// line internal/php5/php5.y:4315 { yyVAL.node = &ast.ExprFunctionCall{ Node: ast.Node{ @@ -6730,7 +6730,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4331 +// line internal/php5/php5.y:4331 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -6742,7 +6742,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4341 +// line internal/php5/php5.y:4341 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6754,7 +6754,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4351 +// line internal/php5/php5.y:4351 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6768,7 +6768,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4363 +// line internal/php5/php5.y:4363 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6781,7 +6781,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4377 +// line internal/php5/php5.y:4377 { yyVAL.node = &ast.NameName{ Node: ast.Node{ @@ -6793,7 +6793,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4387 +// line internal/php5/php5.y:4387 { yyVAL.node = &ast.NameRelative{ Node: ast.Node{ @@ -6807,7 +6807,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4399 +// line internal/php5/php5.y:4399 { yyVAL.node = &ast.NameFullyQualified{ Node: ast.Node{ @@ -6820,19 +6820,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4413 +// line internal/php5/php5.y:4413 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4417 +// line internal/php5/php5.y:4417 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4424 +// line internal/php5/php5.y:4424 { yyVAL.node = yyDollar[1].node @@ -6868,25 +6868,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4458 +// line internal/php5/php5.y:4458 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4466 +// line internal/php5/php5.y:4466 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4470 +// line internal/php5/php5.y:4470 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4478 +// line internal/php5/php5.y:4478 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6894,13 +6894,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4487 +// line internal/php5/php5.y:4487 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4491 +// line internal/php5/php5.y:4491 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -6912,19 +6912,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4501 +// line internal/php5/php5.y:4501 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4508 +// line internal/php5/php5.y:4508 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4512 +// line internal/php5/php5.y:4512 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6938,25 +6938,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4524 +// line internal/php5/php5.y:4524 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4531 +// line internal/php5/php5.y:4531 { - yyVAL.node = nil + yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4535 +// line internal/php5/php5.y:4535 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4542 +// line internal/php5/php5.y:4542 { yyVAL.node = &ast.ScalarLnumber{ Node: ast.Node{ @@ -6968,7 +6968,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4552 +// line internal/php5/php5.y:4552 { yyVAL.node = &ast.ScalarDnumber{ Node: ast.Node{ @@ -6980,7 +6980,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4562 +// line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -6992,7 +6992,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4572 +// line internal/php5/php5.y:4572 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7004,7 +7004,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4582 +// line internal/php5/php5.y:4582 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7016,7 +7016,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4592 +// line internal/php5/php5.y:4592 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7028,7 +7028,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4602 +// line internal/php5/php5.y:4602 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7040,7 +7040,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4612 +// line internal/php5/php5.y:4612 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7052,7 +7052,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4622 +// line internal/php5/php5.y:4622 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7064,7 +7064,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4632 +// line internal/php5/php5.y:4632 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7076,7 +7076,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4642 +// line internal/php5/php5.y:4642 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7097,7 +7097,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4661 +// line internal/php5/php5.y:4661 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7109,7 +7109,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4674 +// line internal/php5/php5.y:4674 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -7128,25 +7128,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4694 +// line internal/php5/php5.y:4694 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4701 +// line internal/php5/php5.y:4701 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4705 +// line internal/php5/php5.y:4705 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4709 +// line internal/php5/php5.y:4709 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7163,7 +7163,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4724 +// line internal/php5/php5.y:4724 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7182,7 +7182,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4741 +// line internal/php5/php5.y:4741 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7200,7 +7200,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4757 +// line internal/php5/php5.y:4757 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7215,7 +7215,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4770 +// line internal/php5/php5.y:4770 { yyVAL.node = &ast.ExprArray{ Node: ast.Node{ @@ -7229,13 +7229,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4782 +// line internal/php5/php5.y:4782 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4786 +// line internal/php5/php5.y:4786 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7247,13 +7247,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4796 +// line internal/php5/php5.y:4796 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4803 +// line internal/php5/php5.y:4803 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -7267,7 +7267,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4815 +// line internal/php5/php5.y:4815 { yyVAL.node = &ast.ExprBinaryPlus{ Node: ast.Node{ @@ -7280,7 +7280,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4826 +// line internal/php5/php5.y:4826 { yyVAL.node = &ast.ExprBinaryMinus{ Node: ast.Node{ @@ -7293,7 +7293,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4837 +// line internal/php5/php5.y:4837 { yyVAL.node = &ast.ExprBinaryMul{ Node: ast.Node{ @@ -7306,7 +7306,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4848 +// line internal/php5/php5.y:4848 { yyVAL.node = &ast.ExprBinaryPow{ Node: ast.Node{ @@ -7319,7 +7319,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4859 +// line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprBinaryDiv{ Node: ast.Node{ @@ -7332,7 +7332,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4870 +// line internal/php5/php5.y:4870 { yyVAL.node = &ast.ExprBinaryMod{ Node: ast.Node{ @@ -7345,7 +7345,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4881 +// line internal/php5/php5.y:4881 { yyVAL.node = &ast.ExprBooleanNot{ Node: ast.Node{ @@ -7357,7 +7357,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4891 +// line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprBitwiseNot{ Node: ast.Node{ @@ -7369,7 +7369,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4901 +// line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Node: ast.Node{ @@ -7382,7 +7382,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4912 +// line internal/php5/php5.y:4912 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Node: ast.Node{ @@ -7395,7 +7395,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4923 +// line internal/php5/php5.y:4923 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Node: ast.Node{ @@ -7408,7 +7408,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4934 +// line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Node: ast.Node{ @@ -7421,7 +7421,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4945 +// line internal/php5/php5.y:4945 { yyVAL.node = &ast.ExprBinaryShiftRight{ Node: ast.Node{ @@ -7434,7 +7434,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4956 +// line internal/php5/php5.y:4956 { yyVAL.node = &ast.ExprBinaryConcat{ Node: ast.Node{ @@ -7447,7 +7447,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4967 +// line internal/php5/php5.y:4967 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Node: ast.Node{ @@ -7460,7 +7460,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4978 +// line internal/php5/php5.y:4978 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Node: ast.Node{ @@ -7473,7 +7473,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4989 +// line internal/php5/php5.y:4989 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Node: ast.Node{ @@ -7486,7 +7486,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5000 +// line internal/php5/php5.y:5000 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Node: ast.Node{ @@ -7499,7 +7499,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5011 +// line internal/php5/php5.y:5011 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Node: ast.Node{ @@ -7512,7 +7512,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5022 +// line internal/php5/php5.y:5022 { yyVAL.node = &ast.ExprBinaryIdentical{ Node: ast.Node{ @@ -7525,7 +7525,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5033 +// line internal/php5/php5.y:5033 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Node: ast.Node{ @@ -7538,7 +7538,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5044 +// line internal/php5/php5.y:5044 { yyVAL.node = &ast.ExprBinaryEqual{ Node: ast.Node{ @@ -7551,7 +7551,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5055 +// line internal/php5/php5.y:5055 { yyVAL.node = &ast.ExprBinaryNotEqual{ Node: ast.Node{ @@ -7564,7 +7564,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5066 +// line internal/php5/php5.y:5066 { yyVAL.node = &ast.ExprBinarySmaller{ Node: ast.Node{ @@ -7577,7 +7577,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5077 +// line internal/php5/php5.y:5077 { yyVAL.node = &ast.ExprBinaryGreater{ Node: ast.Node{ @@ -7590,7 +7590,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5088 +// line internal/php5/php5.y:5088 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Node: ast.Node{ @@ -7603,7 +7603,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5099 +// line internal/php5/php5.y:5099 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Node: ast.Node{ @@ -7616,7 +7616,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5110 +// line internal/php5/php5.y:5110 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7630,7 +7630,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5122 +// line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprTernary{ Node: ast.Node{ @@ -7645,7 +7645,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5135 +// line internal/php5/php5.y:5135 { yyVAL.node = &ast.ExprUnaryPlus{ Node: ast.Node{ @@ -7657,7 +7657,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5145 +// line internal/php5/php5.y:5145 { yyVAL.node = &ast.ExprUnaryMinus{ Node: ast.Node{ @@ -7669,7 +7669,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5155 +// line internal/php5/php5.y:5155 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7682,13 +7682,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5169 +// line internal/php5/php5.y:5169 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5173 +// line internal/php5/php5.y:5173 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7705,7 +7705,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5188 +// line internal/php5/php5.y:5188 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7724,7 +7724,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5205 +// line internal/php5/php5.y:5205 { yyVAL.node = &ast.ExprConstFetch{ Node: ast.Node{ @@ -7742,7 +7742,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5224 +// line internal/php5/php5.y:5224 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -7759,25 +7759,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5239 +// line internal/php5/php5.y:5239 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5243 +// line internal/php5/php5.y:5243 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5247 +// line internal/php5/php5.y:5247 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5251 +// line internal/php5/php5.y:5251 { yyVAL.node = &ast.ScalarEncapsed{ Node: ast.Node{ @@ -7790,7 +7790,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5262 +// line internal/php5/php5.y:5262 { yyVAL.node = &ast.ScalarHeredoc{ Node: ast.Node{ @@ -7803,7 +7803,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5273 +// line internal/php5/php5.y:5273 { yyVAL.node = &ast.ScalarMagicConstant{ Node: ast.Node{ @@ -7815,13 +7815,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5286 +// line internal/php5/php5.y:5286 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5290 +// line internal/php5/php5.y:5290 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7832,19 +7832,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5302 +// line internal/php5/php5.y:5302 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5306 +// line internal/php5/php5.y:5306 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5313 +// line internal/php5/php5.y:5313 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7862,7 +7862,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5329 +// line internal/php5/php5.y:5329 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -7878,7 +7878,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5343 +// line internal/php5/php5.y:5343 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7895,7 +7895,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5358 +// line internal/php5/php5.y:5358 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7910,19 +7910,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5374 +// line internal/php5/php5.y:5374 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5378 +// line internal/php5/php5.y:5378 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5385 +// line internal/php5/php5.y:5385 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7935,7 +7935,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5396 +// line internal/php5/php5.y:5396 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -7948,25 +7948,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5411 +// line internal/php5/php5.y:5411 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5419 +// line internal/php5/php5.y:5419 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5426 +// line internal/php5/php5.y:5426 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5433 +// line internal/php5/php5.y:5433 { yyVAL.node = yyDollar[1].node @@ -8045,25 +8045,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5510 +// line internal/php5/php5.y:5510 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5517 +// line internal/php5/php5.y:5517 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5521 +// line internal/php5/php5.y:5521 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5529 +// line internal/php5/php5.y:5529 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8095,7 +8095,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5561 +// line internal/php5/php5.y:5561 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8111,7 +8111,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5575 +// line internal/php5/php5.y:5575 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8127,7 +8127,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5592 +// line internal/php5/php5.y:5592 { yyVAL.node = &ast.ExprMethodCall{ Node: ast.Node{ @@ -8141,31 +8141,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5607 +// line internal/php5/php5.y:5607 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5611 +// line internal/php5/php5.y:5611 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5615 +// line internal/php5/php5.y:5615 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5622 +// line internal/php5/php5.y:5622 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5626 +// line internal/php5/php5.y:5626 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8177,7 +8177,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5639 +// line internal/php5/php5.y:5639 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8190,7 +8190,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5650 +// line internal/php5/php5.y:5650 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Node: ast.Node{ @@ -8203,13 +8203,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5664 +// line internal/php5/php5.y:5664 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5671 +// line internal/php5/php5.y:5671 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8223,7 +8223,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5683 +// line internal/php5/php5.y:5683 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8237,31 +8237,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5698 +// line internal/php5/php5.y:5698 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5702 +// line internal/php5/php5.y:5702 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5706 +// line internal/php5/php5.y:5706 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5714 +// line internal/php5/php5.y:5714 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5718 +// line internal/php5/php5.y:5718 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -8273,13 +8273,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5728 +// line internal/php5/php5.y:5728 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5735 +// line internal/php5/php5.y:5735 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8293,7 +8293,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5747 +// line internal/php5/php5.y:5747 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8307,13 +8307,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5759 +// line internal/php5/php5.y:5759 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5767 +// line internal/php5/php5.y:5767 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8330,7 +8330,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5782 +// line internal/php5/php5.y:5782 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8349,25 +8349,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5802 +// line internal/php5/php5.y:5802 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5806 +// line internal/php5/php5.y:5806 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5814 +// line internal/php5/php5.y:5814 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5818 +// line internal/php5/php5.y:5818 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8380,7 +8380,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5832 +// line internal/php5/php5.y:5832 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8396,7 +8396,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5846 +// line internal/php5/php5.y:5846 { fetch := &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8412,7 +8412,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5860 +// line internal/php5/php5.y:5860 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -8425,7 +8425,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5874 +// line internal/php5/php5.y:5874 { yyVAL.node = &ast.Identifier{ Node: ast.Node{ @@ -8437,7 +8437,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5884 +// line internal/php5/php5.y:5884 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8450,7 +8450,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5898 +// line internal/php5/php5.y:5898 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -8463,7 +8463,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5909 +// line internal/php5/php5.y:5909 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Node: ast.Node{ @@ -8474,7 +8474,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5921 +// line internal/php5/php5.y:5921 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8483,7 +8483,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5928 +// line internal/php5/php5.y:5928 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8491,7 +8491,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5938 +// line internal/php5/php5.y:5938 { yyVAL.node = &ast.ExprArrayItem{ Node: ast.Node{ @@ -8502,7 +8502,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5947 +// line internal/php5/php5.y:5947 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8529,19 +8529,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5972 +// line internal/php5/php5.y:5972 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5980 +// line internal/php5/php5.y:5980 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5984 +// line internal/php5/php5.y:5984 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8552,7 +8552,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5996 +// line internal/php5/php5.y:5996 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8570,7 +8570,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6012 +// line internal/php5/php5.y:6012 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8586,7 +8586,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6026 +// line internal/php5/php5.y:6026 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8603,7 +8603,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6041 +// line internal/php5/php5.y:6041 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8618,7 +8618,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6054 +// line internal/php5/php5.y:6054 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8642,7 +8642,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6076 +// line internal/php5/php5.y:6076 { arrayItem := &ast.ExprArrayItem{ Node: ast.Node{ @@ -8664,7 +8664,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6096 +// line internal/php5/php5.y:6096 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8687,7 +8687,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6117 +// line internal/php5/php5.y:6117 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -8708,13 +8708,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6139 +// line internal/php5/php5.y:6139 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6143 +// line internal/php5/php5.y:6143 { yyVAL.list = append( yyDollar[1].list, @@ -8729,13 +8729,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6156 +// line internal/php5/php5.y:6156 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6160 +// line internal/php5/php5.y:6160 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -8750,7 +8750,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6176 +// line internal/php5/php5.y:6176 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8767,7 +8767,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6191 +// line internal/php5/php5.y:6191 { yyVAL.node = &ast.ExprArrayDimFetch{ Node: ast.Node{ @@ -8792,7 +8792,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6214 +// line internal/php5/php5.y:6214 { yyVAL.node = &ast.ExprPropertyFetch{ Node: ast.Node{ @@ -8822,7 +8822,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6242 +// line internal/php5/php5.y:6242 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8840,7 +8840,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6258 +// line internal/php5/php5.y:6258 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8864,7 +8864,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:6280 +// line internal/php5/php5.y:6280 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8896,7 +8896,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6310 +// line internal/php5/php5.y:6310 { yyVAL.node = &ast.ParserBrackets{ Node: ast.Node{ @@ -8909,7 +8909,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6324 +// line internal/php5/php5.y:6324 { yyVAL.node = &ast.ScalarString{ Node: ast.Node{ @@ -8921,7 +8921,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6334 +// line internal/php5/php5.y:6334 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8944,7 +8944,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6355 +// line internal/php5/php5.y:6355 { yyVAL.node = &ast.ExprVariable{ Node: ast.Node{ @@ -8961,7 +8961,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6373 +// line internal/php5/php5.y:6373 { yyVAL.node = &ast.ExprIsset{ Node: ast.Node{ @@ -8976,7 +8976,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6386 +// line internal/php5/php5.y:6386 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -8990,7 +8990,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6398 +// line internal/php5/php5.y:6398 { yyVAL.node = &ast.ExprEmpty{ Node: ast.Node{ @@ -9004,7 +9004,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6410 +// line internal/php5/php5.y:6410 { yyVAL.node = &ast.ExprInclude{ Node: ast.Node{ @@ -9016,7 +9016,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6420 +// line internal/php5/php5.y:6420 { yyVAL.node = &ast.ExprIncludeOnce{ Node: ast.Node{ @@ -9028,7 +9028,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:6430 +// line internal/php5/php5.y:6430 { yyVAL.node = &ast.ExprEval{ Node: ast.Node{ @@ -9042,7 +9042,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6442 +// line internal/php5/php5.y:6442 { yyVAL.node = &ast.ExprRequire{ Node: ast.Node{ @@ -9054,7 +9054,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:6452 +// line internal/php5/php5.y:6452 { yyVAL.node = &ast.ExprRequireOnce{ Node: ast.Node{ @@ -9066,7 +9066,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6465 +// line internal/php5/php5.y:6465 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9074,7 +9074,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6471 +// line internal/php5/php5.y:6471 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9083,19 +9083,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6481 +// line internal/php5/php5.y:6481 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:6485 +// line internal/php5/php5.y:6485 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6492 +// line internal/php5/php5.y:6492 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9114,7 +9114,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6509 +// line internal/php5/php5.y:6509 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9133,7 +9133,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6529 +// line internal/php5/php5.y:6529 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ @@ -9152,7 +9152,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:6549 +// line internal/php5/php5.y:6549 { yyVAL.node = &ast.ExprClassConstFetch{ Node: ast.Node{ diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 4027440..d15a4f1 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -4529,7 +4529,7 @@ backticks_expr: ctor_arguments: /* empty */ { - $$ = nil + $$ = &ast.ArgumentList{} } | function_call_parameter_list { From 20a42da7c9453c5e3b88b8e2151d95088c744892 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 8 Dec 2020 00:04:12 +0200 Subject: [PATCH 104/140] [refactoring] remove general Node struct --- cmd/php-parser/main.go | 14 +- internal/php5/php5.go | 3404 ++++++++++------------------ internal/php5/php5.y | 1942 +++++----------- internal/php7/php7.go | 2653 ++++++++-------------- internal/php7/php7.y | 1405 +++--------- internal/position/position.go | 4 +- internal/position/position_test.go | 298 ++- pkg/ast/ast.go | 4 +- pkg/ast/node.go | 1207 +++++++--- pkg/ast/visitor/dump.go | 230 -- pkg/ast/visitor/dump_test.go | 6 - pkg/token/position.go | 74 - pkg/token/position_string.go | 75 - 13 files changed, 4161 insertions(+), 7155 deletions(-) delete mode 100644 pkg/token/position.go delete mode 100644 pkg/token/position_string.go diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 1cd927c..554dcf9 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "flag" "io" "io/ioutil" @@ -21,7 +20,6 @@ import ( "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/parser" - "github.com/z7zmey/php-parser/pkg/printer" ) var wg sync.WaitGroup @@ -165,12 +163,12 @@ func printerWorker(r <-chan result) { } if *printBack { - o := bytes.NewBuffer([]byte{}) - p := printer.NewPrinter(o) - p.Print(res.rootNode) - - err := ioutil.WriteFile(res.path, o.Bytes(), 0644) - checkErr(err) + //o := bytes.NewBuffer([]byte{}) + //p := printer.NewPrinter(o) + //p.Print(res.rootNode) + // + //err := ioutil.WriteFile(res.path, o.Bytes(), 0644) + //checkErr(err) } if *showResolvedNs { diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 0ad9abe..cf203cf 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:6567 +// line internal/php5/php5.y:5637 // line yacctab:1 var yyExca = [...]int{ @@ -2314,19 +2314,17 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:267 + // line internal/php5/php5.y:267 { yylex.(*Parser).rootNode = &ast.Root{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), - }, - Stmts: yyDollar[1].list, - EndTkn: yylex.(*Parser).currentToken, + Position: position.NewNodeListPosition(yyDollar[1].list), + Stmts: yyDollar[1].list, + EndTkn: yylex.(*Parser).currentToken, } } case 2: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:280 + // line internal/php5/php5.y:278 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2334,20 +2332,18 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:286 + // line internal/php5/php5.y:284 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:293 + // line internal/php5/php5.y:291 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -2356,12 +2352,10 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:307 + // line internal/php5/php5.y:303 { part := &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), StringTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, } @@ -2373,37 +2367,35 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:325 + // line internal/php5/php5.y:319 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:330 + // line internal/php5/php5.y:324 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:334 + // line internal/php5/php5.y:328 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:338 + // line internal/php5/php5.y:332 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:342 + // line internal/php5/php5.y:336 { yyVAL.node = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -2412,17 +2404,13 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:354 + // line internal/php5/php5.y:346 { yyVAL.node = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, - NsTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2431,17 +2419,13 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:371 + // line internal/php5/php5.y:359 { yyVAL.node = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - }, - NsTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2452,12 +2436,10 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:390 + // line internal/php5/php5.y:374 { yyVAL.node = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsTkn: yyDollar[1].token, OpenCurlyBracket: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -2466,12 +2448,10 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:402 + // line internal/php5/php5.y:384 { yyVAL.node = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), UseTkn: yyDollar[1].token, UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2480,17 +2460,13 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:414 + // line internal/php5/php5.y:394 { yyVAL.node = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, - UseTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + UseTkn: yyDollar[1].token, Type: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -2501,17 +2477,13 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:433 + // line internal/php5/php5.y:409 { yyVAL.node = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, - UseTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + UseTkn: yyDollar[1].token, Type: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -2522,15 +2494,15 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:452 + // line internal/php5/php5.y:424 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token - yyDollar[1].node.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyDollar[1].node.(*ast.StmtConstList).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) yyVAL.node = yyDollar[1].node } case 18: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:461 + // line internal/php5/php5.y:433 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2539,7 +2511,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:468 + // line internal/php5/php5.y:440 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2547,16 +2519,12 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:477 + // line internal/php5/php5.y:449 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2564,24 +2532,18 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:492 + // line internal/php5/php5.y:460 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2589,17 +2551,13 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:515 + // line internal/php5/php5.y:477 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2607,25 +2565,19 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:531 + // line internal/php5/php5.y:489 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -2633,7 +2585,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:558 + // line internal/php5/php5.y:510 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2642,7 +2594,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:565 + // line internal/php5/php5.y:517 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2650,16 +2602,12 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:574 + // line internal/php5/php5.y:526 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2667,24 +2615,18 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:589 + // line internal/php5/php5.y:537 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2692,17 +2634,13 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:612 + // line internal/php5/php5.y:554 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2710,25 +2648,19 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:628 + // line internal/php5/php5.y:566 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -2736,7 +2668,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:655 + // line internal/php5/php5.y:587 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2745,7 +2677,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:662 + // line internal/php5/php5.y:594 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2753,16 +2685,12 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:671 + // line internal/php5/php5.y:603 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2770,24 +2698,18 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:686 + // line internal/php5/php5.y:614 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2795,17 +2717,13 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:709 + // line internal/php5/php5.y:631 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2813,25 +2731,19 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:725 + // line internal/php5/php5.y:643 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -2839,19 +2751,15 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:752 + // line internal/php5/php5.y:664 { constList := yyDollar[1].node.(*ast.StmtConstList) - constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + constList.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) constList.SeparatorTkns = append(constList.SeparatorTkns, yyDollar[2].token) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2863,22 +2771,16 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:774 + // line internal/php5/php5.y:682 { yyVAL.node = &ast.StmtConstList{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), ConstTkn: yyDollar[1].token, Consts: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -2890,7 +2792,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:802 + // line internal/php5/php5.y:704 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2898,43 +2800,41 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:808 + // line internal/php5/php5.y:710 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:816 + // line internal/php5/php5.y:718 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:821 + // line internal/php5/php5.y:723 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:825 + // line internal/php5/php5.y:727 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:829 + // line internal/php5/php5.y:731 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:833 + // line internal/php5/php5.y:735 { yyVAL.node = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -2943,22 +2843,18 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:849 + // line internal/php5/php5.y:749 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:853 + // line internal/php5/php5.y:753 { yyVAL.node = &ast.StmtLabel{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), LabelName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -2967,12 +2863,10 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:872 + // line internal/php5/php5.y:768 { yyVAL.node = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -2980,7 +2874,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:883 + // line internal/php5/php5.y:777 { pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2990,9 +2884,7 @@ yydefault: } yyVAL.node = &ast.StmtIf{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, Cond: yyDollar[2].node.(*ast.ParserBrackets).Child, @@ -3004,12 +2896,10 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:905 + // line internal/php5/php5.y:797 { yyVAL.node = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), Alt: true, IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, @@ -3017,10 +2907,8 @@ yydefault: CloseParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: yyDollar[3].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[4].list), - }, - Stmts: yyDollar[4].list, + Position: position.NewNodeListPosition(yyDollar[4].list), + Stmts: yyDollar[4].list, }, ElseIf: yyDollar[5].list, Else: yyDollar[6].node, @@ -3030,24 +2918,22 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:929 + // line internal/php5/php5.y:817 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn yyDollar[3].node.(*ast.StmtWhile).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child yyDollar[3].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn - yyDollar[3].node.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyDollar[3].node.(*ast.StmtWhile).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node } case 51: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:939 + // line internal/php5/php5.y:827 { yyVAL.node = &ast.StmtDo{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), DoTkn: yyDollar[1].token, Stmt: yyDollar[2].node, WhileTkn: yyDollar[3].token, @@ -3059,7 +2945,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:954 + // line internal/php5/php5.y:840 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3072,42 +2958,38 @@ yydefault: yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token - yyDollar[9].node.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyDollar[9].node.(*ast.StmtFor).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node } case 53: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:971 + // line internal/php5/php5.y:857 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn yyDollar[3].node.(*ast.StmtSwitch).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child yyDollar[3].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn - yyDollar[3].node.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyDollar[3].node.(*ast.StmtSwitch).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node } case 54: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:981 + // line internal/php5/php5.y:867 { yyVAL.node = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), BreakTkn: yyDollar[1].token, SemiColonTkn: yyDollar[2].token, } } case 55: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:991 + // line internal/php5/php5.y:875 { yyVAL.node = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), BreakTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3115,24 +2997,20 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1002 + // line internal/php5/php5.y:884 { yyVAL.node = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), ContinueTkn: yyDollar[1].token, SemiColonTkn: yyDollar[2].token, } } case 57: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1012 + // line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ContinueTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3140,24 +3018,20 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1023 + // line internal/php5/php5.y:901 { yyVAL.node = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), ReturnTkn: yyDollar[1].token, SemiColonTkn: yyDollar[2].token, } } case 59: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1033 + // line internal/php5/php5.y:909 { yyVAL.node = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ReturnTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3165,12 +3039,10 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1044 + // line internal/php5/php5.y:918 { yyVAL.node = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ReturnTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3178,87 +3050,81 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1055 + // line internal/php5/php5.y:927 { yyVAL.node = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Expr: yyDollar[1].node, SemiColonTkn: yyDollar[2].token, } } case 62: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1065 + // line internal/php5/php5.y:935 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) - yyDollar[2].node.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtGlobal).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 63: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1074 + // line internal/php5/php5.y:944 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) - yyDollar[2].node.(*ast.StmtStatic).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtStatic).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 64: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1083 + // line internal/php5/php5.y:953 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtEcho).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtEcho).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 65: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1091 + // line internal/php5/php5.y:961 { yyVAL.node = &ast.StmtInlineHtml{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), InlineHtmlTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 66: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1101 + // line internal/php5/php5.y:969 { yyVAL.node = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Expr: yyDollar[1].node, SemiColonTkn: yyDollar[2].token, } } case 67: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1111 + // line internal/php5/php5.y:977 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token yyDollar[3].node.(*ast.StmtUnset).CloseParenthesisTkn = yyDollar[4].token yyDollar[3].node.(*ast.StmtUnset).SemiColonTkn = yyDollar[5].token - yyDollar[3].node.(*ast.StmtUnset).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + yyDollar[3].node.(*ast.StmtUnset).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) yyVAL.node = yyDollar[3].node } case 68: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1121 + // line internal/php5/php5.y:987 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3272,13 +3138,13 @@ yydefault: yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[6].node.(*ast.StmtForeach).Var } yyDollar[8].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[7].token - yyDollar[8].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) + yyDollar[8].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) yyVAL.node = yyDollar[8].node } case 69: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1139 + // line internal/php5/php5.y:1005 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3292,39 +3158,43 @@ yydefault: yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[6].node.(*ast.StmtForeach).Var } yyDollar[8].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[7].token - yyDollar[8].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) + yyDollar[8].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) yyVAL.node = yyDollar[8].node } case 70: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1157 + // line internal/php5/php5.y:1023 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtDeclare).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 71: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1168 + // line internal/php5/php5.y:1034 { yyVAL.node = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 72: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1177 + // line internal/php5/php5.y:1041 { + pos := position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) + if yyDollar[6].node != nil { + pos = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + } + yyVAL.node = &ast.StmtTry{ + Position: pos, TryTkn: yyDollar[1].token, OpenCurlyBracket: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -3332,21 +3202,13 @@ yydefault: Catches: yyDollar[5].list, Finally: yyDollar[6].node, } - - if yyDollar[6].node == nil { - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) - } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) - } } case 73: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1194 + // line internal/php5/php5.y:1058 { yyVAL.node = &ast.StmtThrow{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ThrowTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3354,17 +3216,13 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1067 { yyVAL.node = &ast.StmtGoto{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, - GotoTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + GotoTkn: yyDollar[1].token, Label: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3373,29 +3231,23 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1225 + // line internal/php5/php5.y:1083 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1229 + // line internal/php5/php5.y:1087 { catch := &ast.StmtCatch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), CatchTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Types: []ast.Vertex{yyDollar[3].node}, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -3409,18 +3261,16 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1260 + // line internal/php5/php5.y:1112 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1264 + // line internal/php5/php5.y:1116 { yyVAL.node = &ast.StmtFinally{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), FinallyTkn: yyDollar[1].token, OpenCurlyBracketTkn: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -3429,47 +3279,41 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1279 + // line internal/php5/php5.y:1129 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1283 + // line internal/php5/php5.y:1133 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1290 + // line internal/php5/php5.y:1140 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1294 + // line internal/php5/php5.y:1144 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:1301 + // line internal/php5/php5.y:1151 { yyVAL.node = &ast.StmtCatch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), CatchTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Types: []ast.Vertex{yyDollar[3].node}, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -3482,7 +3326,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1175 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3490,7 +3334,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1337 + // line internal/php5/php5.y:1181 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3499,60 +3343,56 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1347 + // line internal/php5/php5.y:1191 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1354 + // line internal/php5/php5.y:1198 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1361 + // line internal/php5/php5.y:1205 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1368 + // line internal/php5/php5.y:1212 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1372 + // line internal/php5/php5.y:1216 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1223 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1383 + // line internal/php5/php5.y:1227 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:1390 + // line internal/php5/php5.y:1234 { yyVAL.node = &ast.StmtFunction{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3567,15 +3407,13 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] -// line internal/php5/php5.y:1417 + // line internal/php5/php5.y:1257 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: n.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) n.ClassName = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } @@ -3587,9 +3425,7 @@ yydefault: case *ast.StmtTrait: n.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) n.TraitName = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } @@ -3604,17 +3440,13 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:1452 + // line internal/php5/php5.y:1288 { yyVAL.node = &ast.StmtInterface{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), InterfaceTkn: yyDollar[1].token, InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3626,28 +3458,22 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1476 + // line internal/php5/php5.y:1308 { yyVAL.node = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), ClassTkn: yyDollar[1].token, } } case 97: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1485 + // line internal/php5/php5.y:1315 { yyVAL.node = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), Modifiers: []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3657,28 +3483,22 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1503 + // line internal/php5/php5.y:1329 { yyVAL.node = &ast.StmtTrait{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), TraitTkn: yyDollar[1].token, } } case 99: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1512 + // line internal/php5/php5.y:1336 { yyVAL.node = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), Modifiers: []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3688,42 +3508,38 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1533 + // line internal/php5/php5.y:1353 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1537 + // line internal/php5/php5.y:1357 { yyVAL.node = &ast.StmtClassExtends{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExtendTkn: yyDollar[1].token, ClassName: yyDollar[2].node, } } case 102: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1550 + // line internal/php5/php5.y:1368 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1557 + // line internal/php5/php5.y:1375 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1561 + // line internal/php5/php5.y:1379 { yyVAL.node = &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ExtendsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3731,18 +3547,16 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1575 + // line internal/php5/php5.y:1391 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1579 + // line internal/php5/php5.y:1395 { yyVAL.node = &ast.StmtClassImplements{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ImplementsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3750,7 +3564,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1593 + // line internal/php5/php5.y:1407 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3758,7 +3572,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1599 + // line internal/php5/php5.y:1413 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3767,13 +3581,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1609 + // line internal/php5/php5.y:1423 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1613 + // line internal/php5/php5.y:1427 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3782,25 +3596,23 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1623 + // line internal/php5/php5.y:1437 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1627 + // line internal/php5/php5.y:1441 { yyVAL.node = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 113: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1637 + // line internal/php5/php5.y:1449 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3810,9 +3622,7 @@ yydefault: } yyVAL.node = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -3822,30 +3632,24 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1660 + // line internal/php5/php5.y:1470 { yyVAL.node = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 115: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1669 + // line internal/php5/php5.y:1477 { yyVAL.node = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndForTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -3853,30 +3657,24 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1690 + // line internal/php5/php5.y:1494 { yyVAL.node = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 117: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1699 + // line internal/php5/php5.y:1501 { yyVAL.node = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndForeachTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -3884,30 +3682,24 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1721 + // line internal/php5/php5.y:1519 { yyVAL.node = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 119: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1730 + // line internal/php5/php5.y:1526 { yyVAL.node = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndDeclareTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -3915,18 +3707,14 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1752 + // line internal/php5/php5.y:1544 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3938,19 +3726,15 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1773 + // line internal/php5/php5.y:1561 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( yyDollar[1].node.(*ast.ParserSeparatedList).Items, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3963,12 +3747,10 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:1800 + // line internal/php5/php5.y:1584 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseList: yyDollar[2].list, CloseCurlyBracketTkn: yyDollar[3].token, @@ -3976,12 +3758,10 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1811 + // line internal/php5/php5.y:1593 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, CaseList: yyDollar[3].list, @@ -3990,12 +3770,10 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1823 + // line internal/php5/php5.y:1603 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, CaseList: yyDollar[2].list, @@ -4005,12 +3783,10 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1836 + // line internal/php5/php5.y:1614 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), Alt: true, ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, @@ -4021,18 +3797,16 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1854 + // line internal/php5/php5.y:1630 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1858 + // line internal/php5/php5.y:1634 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), CaseTkn: yyDollar[2].token, Cond: yyDollar[3].node, CaseSeparatorTkn: yyDollar[4].token, @@ -4041,12 +3815,10 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1870 + // line internal/php5/php5.y:1644 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), DefaultTkn: yyDollar[2].token, CaseSeparatorTkn: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -4054,42 +3826,36 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1885 + // line internal/php5/php5.y:1657 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1889 + // line internal/php5/php5.y:1661 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:1897 + // line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 132: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1906 + // line internal/php5/php5.y:1676 { yyVAL.node = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndWhileTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -4097,18 +3863,16 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1929 + // line internal/php5/php5.y:1695 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:1933 + // line internal/php5/php5.y:1699 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, Cond: yyDollar[3].node.(*ast.ParserBrackets).Child, @@ -4118,18 +3882,16 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1950 + // line internal/php5/php5.y:1714 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:1954 + // line internal/php5/php5.y:1718 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), Alt: true, ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, @@ -4137,71 +3899,63 @@ yydefault: CloseParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: yyDollar[4].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[5].list), - }, - Stmts: yyDollar[5].list, + Position: position.NewNodeListPosition(yyDollar[5].list), + Stmts: yyDollar[5].list, }, }) } case 137: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1978 + // line internal/php5/php5.y:1738 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:1982 + // line internal/php5/php5.y:1742 { yyVAL.node = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - ElseTkn: yyDollar[1].token, - Stmt: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + ElseTkn: yyDollar[1].token, + Stmt: yyDollar[2].node, } } case 139: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:1996 + // line internal/php5/php5.y:1754 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2000 + // line internal/php5/php5.y:1758 { yyVAL.node = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), Alt: true, ElseTkn: yyDollar[1].token, ColonTkn: yyDollar[2].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[3].list), - }, - Stmts: yyDollar[3].list, + Position: position.NewNodeListPosition(yyDollar[3].list), + Stmts: yyDollar[3].list, }, } } case 141: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2021 + // line internal/php5/php5.y:1775 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2025 + // line internal/php5/php5.y:1779 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2032 + // line internal/php5/php5.y:1786 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4209,7 +3963,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2038 + // line internal/php5/php5.y:1792 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4218,7 +3972,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2048 + // line internal/php5/php5.y:1802 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4230,20 +3984,14 @@ yydefault: } yyVAL.node = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: yyDollar[1].node, AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4252,7 +4000,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:2080 + // line internal/php5/php5.y:1828 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4264,20 +4012,14 @@ yydefault: } yyVAL.node = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: yyDollar[1].node, AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4288,55 +4030,49 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2118 + // line internal/php5/php5.y:1860 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2122 + // line internal/php5/php5.y:1864 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 149: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2132 + // line internal/php5/php5.y:1872 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 150: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2142 + // line internal/php5/php5.y:1880 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2150 + // line internal/php5/php5.y:1888 { yyVAL.node = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, } } case 152: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2160 + // line internal/php5/php5.y:1896 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4347,19 +4083,15 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2169 + // line internal/php5/php5.y:1905 { yyVAL.node = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenParenthesisTkn: yyDollar[1].token, Arguments: []ast.Vertex{ &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[2].node), - }, - Expr: yyDollar[2].node, + Position: position.NewNodePosition(yyDollar[2].node), + Expr: yyDollar[2].node, }, }, CloseParenthesisTkn: yyDollar[3].token, @@ -4367,7 +4099,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2191 + // line internal/php5/php5.y:1923 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4375,7 +4107,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2197 + // line internal/php5/php5.y:1929 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4384,53 +4116,45 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2207 + // line internal/php5/php5.y:1939 { yyVAL.node = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Expr: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Expr: yyDollar[1].node, } } case 157: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2216 + // line internal/php5/php5.y:1946 { yyVAL.node = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Expr: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Expr: yyDollar[1].node, } } case 158: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2225 + // line internal/php5/php5.y:1953 { yyVAL.node = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 159: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2235 + // line internal/php5/php5.y:1961 { yyVAL.node = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), VariadicTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 160: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2248 + // line internal/php5/php5.y:1972 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4439,7 +4163,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2255 + // line internal/php5/php5.y:1979 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4447,16 +4171,12 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2265 + // line internal/php5/php5.y:1989 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4464,29 +4184,23 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2280 + // line internal/php5/php5.y:2000 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DollarTkn: yyDollar[1].token, VarName: yyDollar[2].node, } } case 164: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2290 + // line internal/php5/php5.y:2008 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), OpenBracketTkn: yyDollar[2].token, Child: yyDollar[3].node, CloseBracketTkn: yyDollar[4].token, @@ -4495,20 +4209,14 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2311 + // line internal/php5/php5.y:2025 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4520,20 +4228,14 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2334 + // line internal/php5/php5.y:2042 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4547,22 +4249,16 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2359 + // line internal/php5/php5.y:2061 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4573,22 +4269,16 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2383 + // line internal/php5/php5.y:2079 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4601,24 +4291,22 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2413 + // line internal/php5/php5.y:2103 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2417 + // line internal/php5/php5.y:2107 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2425 + // line internal/php5/php5.y:2115 { yyVAL.node = &ast.StmtPropertyList{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), Modifiers: yyDollar[1].list, Properties: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4627,38 +4315,34 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2437 + // line internal/php5/php5.y:2125 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token - yyDollar[1].node.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyDollar[1].node.(*ast.StmtClassConstList).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) yyVAL.node = yyDollar[1].node } case 173: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2443 + // line internal/php5/php5.y:2131 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] -// line internal/php5/php5.y:2447 + // line internal/php5/php5.y:2135 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { - yyVAL.node.GetNode().Position = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) + pos = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) } yyVAL.node = &ast.StmtClassMethod{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Modifiers: yyDollar[1].list, FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4671,12 +4355,10 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2162 { yyVAL.node = &ast.StmtTraitUse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4685,7 +4367,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2493 + // line internal/php5/php5.y:2175 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4693,7 +4375,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2499 + // line internal/php5/php5.y:2181 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4702,23 +4384,19 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2509 + // line internal/php5/php5.y:2191 { yyVAL.node = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 179: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2518 + // line internal/php5/php5.y:2198 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenParenthesisTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, CloseParenthesisTkn: yyDollar[3].token, @@ -4726,31 +4404,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2532 + // line internal/php5/php5.y:2210 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2536 + // line internal/php5/php5.y:2214 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2543 + // line internal/php5/php5.y:2221 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2547 + // line internal/php5/php5.y:2225 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2554 + // line internal/php5/php5.y:2232 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4758,7 +4436,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2560 + // line internal/php5/php5.y:2238 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4766,12 +4444,10 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2569 + // line internal/php5/php5.y:2247 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Node: ast.Node{ - Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Ref: yyDollar[1].node, InsteadofTkn: yyDollar[2].token, Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4780,7 +4456,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2584 + // line internal/php5/php5.y:2260 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4788,7 +4464,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2590 + // line internal/php5/php5.y:2266 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4797,16 +4473,12 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2276 { yyVAL.node = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4814,24 +4486,20 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2615 + // line internal/php5/php5.y:2287 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2622 + // line internal/php5/php5.y:2294 { yyVAL.node = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4839,19 +4507,15 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2642 + // line internal/php5/php5.y:2310 { yyVAL.node = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4859,12 +4523,10 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2660 + // line internal/php5/php5.y:2324 { yyVAL.node = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, @@ -4872,35 +4534,31 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2674 + // line internal/php5/php5.y:2336 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2340 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2685 + // line internal/php5/php5.y:2347 { yyVAL.node = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 197: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2694 + // line internal/php5/php5.y:2354 { yyVAL.node = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -4908,19 +4566,17 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2366 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2712 + // line internal/php5/php5.y:2370 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4928,116 +4584,98 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2383 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2731 + // line internal/php5/php5.y:2387 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2738 + // line internal/php5/php5.y:2394 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:2742 + // line internal/php5/php5.y:2398 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2749 + // line internal/php5/php5.y:2405 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 205: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2759 + // line internal/php5/php5.y:2413 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 206: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2769 + // line internal/php5/php5.y:2421 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 207: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2429 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 208: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2789 + // line internal/php5/php5.y:2437 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 209: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2799 + // line internal/php5/php5.y:2445 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 210: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2812 + // line internal/php5/php5.y:2456 { item := &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -5051,20 +4689,14 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2837 + // line internal/php5/php5.y:2475 { item := &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -5080,22 +4712,16 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2864 + // line internal/php5/php5.y:2496 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5107,22 +4733,16 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2889 + // line internal/php5/php5.y:2515 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5135,19 +4755,15 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:2918 + // line internal/php5/php5.y:2538 { constList := yyDollar[1].node.(*ast.StmtClassConstList) - constList.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + constList.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) constList.SeparatorTkns = append(constList.SeparatorTkns, yyDollar[2].token) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -5159,22 +4775,16 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:2940 + // line internal/php5/php5.y:2556 { yyVAL.node = &ast.StmtClassConstList{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), ConstTkn: yyDollar[1].token, Consts: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -5186,7 +4796,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2578 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5195,7 +4805,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2975 + // line internal/php5/php5.y:2585 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5203,19 +4813,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:2985 + // line internal/php5/php5.y:2595 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:2989 + // line internal/php5/php5.y:2599 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:2996 + // line internal/php5/php5.y:2606 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5224,7 +4834,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3003 + // line internal/php5/php5.y:2613 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5232,24 +4842,22 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3012 + // line internal/php5/php5.y:2622 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3016 + // line internal/php5/php5.y:2626 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3023 + // line internal/php5/php5.y:2633 { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -5260,12 +4868,10 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3037 + // line internal/php5/php5.y:2645 { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: nil, OpenBracketTkn: yyDollar[1].token, Dim: yyDollar[2].node, @@ -5276,43 +4882,41 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3054 + // line internal/php5/php5.y:2660 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3058 + // line internal/php5/php5.y:2664 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3062 + // line internal/php5/php5.y:2668 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:3069 + // line internal/php5/php5.y:2675 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3073 + // line internal/php5/php5.y:2679 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3080 + // line internal/php5/php5.y:2686 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, @@ -5322,25 +4926,19 @@ yydefault: } } else { yyVAL.node = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - Class: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Class: yyDollar[2].node, } } } case 232: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3106 + // line internal/php5/php5.y:2708 { yyVAL.node = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), Var: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -5353,12 +4951,10 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3126 + // line internal/php5/php5.y:2724 { yyVAL.node = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5366,12 +4962,10 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3137 + // line internal/php5/php5.y:2733 { yyVAL.node = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -5380,14 +4974,12 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:3149 + // line internal/php5/php5.y:2743 { var _new *ast.ExprNew if yyDollar[3].token != nil { _new = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), - }, + Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), NewTkn: yyDollar[4].token, Class: yyDollar[5].node, OpenParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, @@ -5397,18 +4989,14 @@ yydefault: } } else { _new = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node), - }, - NewTkn: yyDollar[4].token, - Class: yyDollar[5].node, + Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node), + NewTkn: yyDollar[4].token, + Class: yyDollar[5].node, } } yyVAL.node = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, _new), - }, + Position: position.NewNodesPosition(yyDollar[1].node, _new), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -5417,24 +5005,20 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3184 + // line internal/php5/php5.y:2772 { yyVAL.node = &ast.ExprClone{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CloneTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 237: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3194 + // line internal/php5/php5.y:2780 { yyVAL.node = &ast.ExprAssignPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5442,12 +5026,10 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3205 + // line internal/php5/php5.y:2789 { yyVAL.node = &ast.ExprAssignMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5455,12 +5037,10 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3216 + // line internal/php5/php5.y:2798 { yyVAL.node = &ast.ExprAssignMul{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5468,12 +5048,10 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3227 + // line internal/php5/php5.y:2807 { yyVAL.node = &ast.ExprAssignPow{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5481,12 +5059,10 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3238 + // line internal/php5/php5.y:2816 { yyVAL.node = &ast.ExprAssignDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5494,12 +5070,10 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3249 + // line internal/php5/php5.y:2825 { yyVAL.node = &ast.ExprAssignConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5507,12 +5081,10 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3260 + // line internal/php5/php5.y:2834 { yyVAL.node = &ast.ExprAssignMod{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5520,12 +5092,10 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3271 + // line internal/php5/php5.y:2843 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5533,12 +5103,10 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3282 + // line internal/php5/php5.y:2852 { yyVAL.node = &ast.ExprAssignBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5546,12 +5114,10 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3293 + // line internal/php5/php5.y:2861 { yyVAL.node = &ast.ExprAssignBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5559,12 +5125,10 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3304 + // line internal/php5/php5.y:2870 { yyVAL.node = &ast.ExprAssignShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5572,12 +5136,10 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3315 + // line internal/php5/php5.y:2879 { yyVAL.node = &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5585,433 +5147,365 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3326 + // line internal/php5/php5.y:2888 { yyVAL.node = &ast.ExprPostInc{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), - }, - Var: yyDollar[1].node, - IncTkn: yyDollar[2].token, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Var: yyDollar[1].node, + IncTkn: yyDollar[2].token, } } case 250: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3336 + // line internal/php5/php5.y:2896 { yyVAL.node = &ast.ExprPreInc{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - IncTkn: yyDollar[1].token, - Var: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + IncTkn: yyDollar[1].token, + Var: yyDollar[2].node, } } case 251: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3346 + // line internal/php5/php5.y:2904 { yyVAL.node = &ast.ExprPostDec{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), - }, - Var: yyDollar[1].node, - DecTkn: yyDollar[2].token, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Var: yyDollar[1].node, + DecTkn: yyDollar[2].token, } } case 252: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3356 + // line internal/php5/php5.y:2912 { yyVAL.node = &ast.ExprPreDec{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - DecTkn: yyDollar[1].token, - Var: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + DecTkn: yyDollar[1].token, + Var: yyDollar[2].node, } } case 253: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3366 + // line internal/php5/php5.y:2920 { yyVAL.node = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 254: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3377 + // line internal/php5/php5.y:2929 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 255: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3388 + // line internal/php5/php5.y:2938 { yyVAL.node = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 256: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3399 + // line internal/php5/php5.y:2947 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 257: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3410 + // line internal/php5/php5.y:2956 { yyVAL.node = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 258: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3421 + // line internal/php5/php5.y:2965 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 259: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3432 + // line internal/php5/php5.y:2974 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 260: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3443 + // line internal/php5/php5.y:2983 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 261: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3454 + // line internal/php5/php5.y:2992 { yyVAL.node = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 262: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3465 + // line internal/php5/php5.y:3001 { yyVAL.node = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 263: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3476 + // line internal/php5/php5.y:3010 { yyVAL.node = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 264: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3487 + // line internal/php5/php5.y:3019 { yyVAL.node = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 265: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3498 + // line internal/php5/php5.y:3028 { yyVAL.node = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 266: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3509 + // line internal/php5/php5.y:3037 { yyVAL.node = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 267: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3520 + // line internal/php5/php5.y:3046 { yyVAL.node = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 268: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3531 + // line internal/php5/php5.y:3055 { yyVAL.node = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 269: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3542 + // line internal/php5/php5.y:3064 { yyVAL.node = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 270: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3553 + // line internal/php5/php5.y:3073 { yyVAL.node = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - PlusTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + PlusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 271: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3081 { yyVAL.node = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), MinusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 272: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3573 + // line internal/php5/php5.y:3089 { yyVAL.node = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExclamationTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 273: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3583 + // line internal/php5/php5.y:3097 { yyVAL.node = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), TildaTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 274: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3593 + // line internal/php5/php5.y:3105 { yyVAL.node = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 275: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3604 + // line internal/php5/php5.y:3114 { yyVAL.node = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 276: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3615 + // line internal/php5/php5.y:3123 { yyVAL.node = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 277: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3626 + // line internal/php5/php5.y:3132 { yyVAL.node = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 278: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3637 + // line internal/php5/php5.y:3141 { yyVAL.node = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 279: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3648 + // line internal/php5/php5.y:3150 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 280: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3659 + // line internal/php5/php5.y:3159 { yyVAL.node = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 281: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3670 + // line internal/php5/php5.y:3168 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 282: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3681 + // line internal/php5/php5.y:3177 { yyVAL.node = &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Expr: yyDollar[1].node, InstanceOfTkn: yyDollar[2].token, Class: yyDollar[3].node, @@ -6019,24 +5513,22 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3692 + // line internal/php5/php5.y:3186 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3696 + // line internal/php5/php5.y:3190 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3700 + // line internal/php5/php5.y:3194 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6046,34 +5538,32 @@ yydefault: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } } case 286: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:3735 + // line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, @@ -6083,12 +5573,10 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3748 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, @@ -6097,106 +5585,92 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3760 + // line internal/php5/php5.y:3248 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3764 + // line internal/php5/php5.y:3252 { yyVAL.node = &ast.ExprCastInt{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 290: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3774 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprCastDouble{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 291: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3784 + // line internal/php5/php5.y:3268 { yyVAL.node = &ast.ExprCastString{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 292: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3794 + // line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprCastArray{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 293: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3804 + // line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprCastObject{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 294: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3814 + // line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprCastBool{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 295: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3824 + // line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprCastUnset{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 296: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3834 + // line internal/php5/php5.y:3308 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, } if yyDollar[2].node == nil { - exit.Node.Position = position.NewTokenPosition(yyDollar[1].token) + exit.Position = position.NewTokenPosition(yyDollar[1].token) } else { - exit.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn @@ -6206,42 +5680,38 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3325 { yyVAL.node = &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - AtTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + AtTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 298: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3861 + // line internal/php5/php5.y:3333 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3865 + // line internal/php5/php5.y:3337 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3869 + // line internal/php5/php5.y:3341 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3345 { yyVAL.node = &ast.ExprShellExec{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBacktickTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseBacktickTkn: yyDollar[3].token, @@ -6249,35 +5719,29 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3884 + // line internal/php5/php5.y:3354 { yyVAL.node = &ast.ExprPrint{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), PrintTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 303: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:3894 + // line internal/php5/php5.y:3362 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), YieldTkn: yyDollar[1].token, } } case 304: yyDollar = yyS[yypt-9 : yypt+1] -// line internal/php5/php5.y:3903 + // line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, @@ -6292,12 +5756,10 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] -// line internal/php5/php5.y:3921 + // line internal/php5/php5.y:3385 { yyVAL.node = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token), StaticTkn: yyDollar[1].token, FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -6313,36 +5775,30 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3943 + // line internal/php5/php5.y:3405 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, Value: yyDollar[2].node, } } case 307: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:3953 + // line internal/php5/php5.y:3413 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, Value: yyDollar[2].node, } } case 308: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, @@ -6351,12 +5807,10 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3975 + // line internal/php5/php5.y:3431 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, @@ -6365,12 +5819,10 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:3990 + // line internal/php5/php5.y:3444 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6379,12 +5831,10 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4002 + // line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6393,16 +5843,12 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4014 + // line internal/php5/php5.y:3464 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6413,12 +5859,10 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4032 + // line internal/php5/php5.y:3478 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6427,12 +5871,10 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4047 + // line internal/php5/php5.y:3491 { yyVAL.node = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6442,12 +5884,10 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4060 + // line internal/php5/php5.y:3502 { yyVAL.node = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6456,24 +5896,22 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4075 + // line internal/php5/php5.y:3515 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4082 + // line internal/php5/php5.y:3522 { yyVAL.node = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4086 + // line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprClosureUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Uses: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6483,16 +5921,12 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4102 + // line internal/php5/php5.y:3540 { variable := &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -6505,21 +5939,15 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4122 + // line internal/php5/php5.y:3556 { reference := &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), AmpersandTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -6533,18 +5961,14 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4148 + // line internal/php5/php5.y:3576 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6554,23 +5978,17 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4167 + // line internal/php5/php5.y:3591 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), AmpersandTkn: yyDollar[1].token, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6581,16 +5999,12 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4195 + // line internal/php5/php5.y:3613 { yyVAL.node = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), - }, + Position: position.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), Function: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -6602,16 +6016,12 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4214 + // line internal/php5/php5.y:3628 { yyVAL.node = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), Function: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6625,16 +6035,12 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4235 + // line internal/php5/php5.y:3645 { yyVAL.node = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Function: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6647,12 +6053,10 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4255 + // line internal/php5/php5.y:3661 { yyVAL.node = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6664,12 +6068,10 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4270 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6681,12 +6083,10 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4285 + // line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6698,12 +6098,10 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4300 + // line internal/php5/php5.y:3700 { yyVAL.node = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6715,12 +6113,10 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4315 + // line internal/php5/php5.y:3713 { yyVAL.node = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -6730,36 +6126,30 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4331 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 332: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4341 + // line internal/php5/php5.y:3735 { yyVAL.node = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 333: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4351 + // line internal/php5/php5.y:3743 { yyVAL.node = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6768,12 +6158,10 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4363 + // line internal/php5/php5.y:3753 { yyVAL.node = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6781,24 +6169,20 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4377 + // line internal/php5/php5.y:3765 { yyVAL.node = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 336: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4387 + // line internal/php5/php5.y:3773 { yyVAL.node = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6807,12 +6191,10 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4399 + // line internal/php5/php5.y:3783 { yyVAL.node = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6820,19 +6202,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4413 + // line internal/php5/php5.y:3795 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4417 + // line internal/php5/php5.y:3799 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4424 + // line internal/php5/php5.y:3806 { yyVAL.node = yyDollar[1].node @@ -6842,12 +6224,12 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } @@ -6856,37 +6238,37 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - yyVAL.node.GetNode().Position = position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } } case 341: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4458 + // line internal/php5/php5.y:3840 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4466 + // line internal/php5/php5.y:3848 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4470 + // line internal/php5/php5.y:3852 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4478 + // line internal/php5/php5.y:3860 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6894,43 +6276,39 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4487 + // line internal/php5/php5.y:3869 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4491 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenBracketTkn: yyDollar[1].token, CloseBracketTkn: yyDollar[2].token, } } case 347: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4501 + // line internal/php5/php5.y:3881 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4508 + // line internal/php5/php5.y:3888 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4512 + // line internal/php5/php5.y:3892 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6938,156 +6316,132 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4524 + // line internal/php5/php5.y:3902 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:4531 + // line internal/php5/php5.y:3909 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4535 + // line internal/php5/php5.y:3913 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4542 + // line internal/php5/php5.y:3920 { yyVAL.node = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 354: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4552 + // line internal/php5/php5.y:3928 { yyVAL.node = &ast.ScalarDnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 355: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4562 + // line internal/php5/php5.y:3936 { yyVAL.node = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 356: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4572 + // line internal/php5/php5.y:3944 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 357: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4582 + // line internal/php5/php5.y:3952 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 358: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4592 + // line internal/php5/php5.y:3960 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 359: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4602 + // line internal/php5/php5.y:3968 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 360: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4612 + // line internal/php5/php5.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 361: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4622 + // line internal/php5/php5.y:3984 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 362: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4632 + // line internal/php5/php5.y:3992 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 363: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4642 + // line internal/php5/php5.y:4000 { yyVAL.node = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -7097,30 +6451,24 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4661 + // line internal/php5/php5.y:4015 { yyVAL.node = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenHeredocTkn: yyDollar[1].token, CloseHeredocTkn: yyDollar[2].token, } } case 365: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4674 + // line internal/php5/php5.y:4026 { yyVAL.node = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -7128,34 +6476,30 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4694 + // line internal/php5/php5.y:4042 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4701 + // line internal/php5/php5.y:4049 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4705 + // line internal/php5/php5.y:4053 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4709 + // line internal/php5/php5.y:4057 { yyVAL.node = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -7163,16 +6507,12 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4724 + // line internal/php5/php5.y:4068 { yyVAL.node = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -7182,16 +6522,12 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4741 + // line internal/php5/php5.y:4081 { yyVAL.node = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -7200,12 +6536,10 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4093 { yyVAL.node = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -7215,12 +6549,10 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4770 + // line internal/php5/php5.y:4104 { yyVAL.node = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -7229,36 +6561,32 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4782 + // line internal/php5/php5.y:4114 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4118 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 376: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:4796 + // line internal/php5/php5.y:4126 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:4803 + // line internal/php5/php5.y:4133 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7267,361 +6595,305 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4815 + // line internal/php5/php5.y:4143 { yyVAL.node = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 379: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4826 + // line internal/php5/php5.y:4152 { yyVAL.node = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 380: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4837 + // line internal/php5/php5.y:4161 { yyVAL.node = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 381: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4848 + // line internal/php5/php5.y:4170 { yyVAL.node = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 382: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4859 + // line internal/php5/php5.y:4179 { yyVAL.node = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 383: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4188 { yyVAL.node = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 384: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4881 + // line internal/php5/php5.y:4197 { yyVAL.node = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExclamationTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 385: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4205 { yyVAL.node = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), TildaTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 386: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4901 + // line internal/php5/php5.y:4213 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 387: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4912 + // line internal/php5/php5.y:4222 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 388: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4923 + // line internal/php5/php5.y:4231 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 389: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4934 + // line internal/php5/php5.y:4240 { yyVAL.node = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 390: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4945 + // line internal/php5/php5.y:4249 { yyVAL.node = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 391: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4956 + // line internal/php5/php5.y:4258 { yyVAL.node = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 392: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4967 + // line internal/php5/php5.y:4267 { yyVAL.node = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 393: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4978 + // line internal/php5/php5.y:4276 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 394: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:4989 + // line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 395: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5000 + // line internal/php5/php5.y:4294 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 396: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5011 + // line internal/php5/php5.y:4303 { yyVAL.node = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 397: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5022 + // line internal/php5/php5.y:4312 { yyVAL.node = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 398: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5033 + // line internal/php5/php5.y:4321 { yyVAL.node = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 399: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5044 + // line internal/php5/php5.y:4330 { yyVAL.node = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 400: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5055 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 401: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5066 + // line internal/php5/php5.y:4348 { yyVAL.node = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 402: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5077 + // line internal/php5/php5.y:4357 { yyVAL.node = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 403: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5088 + // line internal/php5/php5.y:4366 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 404: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5099 + // line internal/php5/php5.y:4375 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 405: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5110 + // line internal/php5/php5.y:4384 { yyVAL.node = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, @@ -7630,12 +6902,10 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5122 + // line internal/php5/php5.y:4394 { yyVAL.node = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, @@ -7645,36 +6915,30 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5135 + // line internal/php5/php5.y:4405 { yyVAL.node = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - PlusTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + PlusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 408: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5145 + // line internal/php5/php5.y:4413 { yyVAL.node = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), MinusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 409: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5155 + // line internal/php5/php5.y:4421 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7682,22 +6946,18 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5169 + // line internal/php5/php5.y:4433 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5173 + // line internal/php5/php5.y:4437 { yyVAL.node = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -7705,16 +6965,12 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5188 + // line internal/php5/php5.y:4448 { yyVAL.node = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -7724,16 +6980,12 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5205 + // line internal/php5/php5.y:4461 { yyVAL.node = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -7742,16 +6994,12 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5224 + // line internal/php5/php5.y:4476 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7759,30 +7007,28 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5239 + // line internal/php5/php5.y:4487 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5243 + // line internal/php5/php5.y:4491 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5247 + // line internal/php5/php5.y:4495 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5251 + // line internal/php5/php5.y:4499 { yyVAL.node = &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenQoteTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseQoteTkn: yyDollar[1].token, @@ -7790,12 +7036,10 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5262 + // line internal/php5/php5.y:4508 { yyVAL.node = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseHeredocTkn: yyDollar[3].token, @@ -7803,25 +7047,23 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5273 + // line internal/php5/php5.y:4517 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 421: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5286 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5290 + // line internal/php5/php5.y:4532 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7832,24 +7074,22 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5302 + // line internal/php5/php5.y:4544 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5306 + // line internal/php5/php5.y:4548 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5313 + // line internal/php5/php5.y:4555 { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), - }, + Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), Key: yyDollar[3].node, DoubleArrowTkn: yyDollar[4].token, Val: yyDollar[5].node, @@ -7862,13 +7102,11 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5329 + // line internal/php5/php5.y:4569 { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[3].node), - }, - Val: yyDollar[3].node, + Position: position.NewNodePosition(yyDollar[3].node), + Val: yyDollar[3].node, } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7878,14 +7116,12 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5343 + // line internal/php5/php5.y:4581 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: yyDollar[3].node, @@ -7895,39 +7131,35 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5358 + // line internal/php5/php5.y:4594 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Val: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Val: yyDollar[1].node, }, }, } } case 429: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5374 + // line internal/php5/php5.y:4608 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5378 + // line internal/php5/php5.y:4612 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5385 + // line internal/php5/php5.y:4619 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7935,12 +7167,10 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5396 + // line internal/php5/php5.y:4628 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7948,25 +7178,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5411 + // line internal/php5/php5.y:4641 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5419 + // line internal/php5/php5.y:4649 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5426 + // line internal/php5/php5.y:4656 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5433 + // line internal/php5/php5.y:4663 { yyVAL.node = yyDollar[1].node @@ -7978,9 +7208,7 @@ yydefault: case *ast.ExprArrayDimFetch: mc := yyDollar[4].list[0].(*ast.ExprMethodCall) yyDollar[3].list = append(yyDollar[3].list, &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodePosition(mc), - }, + Position: position.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -7999,22 +7227,22 @@ yydefault: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } @@ -8023,47 +7251,47 @@ yydefault: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.Node.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = position.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } } case 437: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5510 + // line internal/php5/php5.y:4738 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5517 + // line internal/php5/php5.y:4745 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5521 + // line internal/php5/php5.y:4749 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5529 + // line internal/php5/php5.y:4757 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -8074,9 +7302,7 @@ yydefault: case *ast.ExprArrayDimFetch: mc := yyDollar[3].list[0].(*ast.ExprMethodCall) yyDollar[2].list = append(yyDollar[2].list, &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodePosition(mc), - }, + Position: position.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -8095,12 +7321,10 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5561 + // line internal/php5/php5.y:4787 { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8111,12 +7335,10 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5575 + // line internal/php5/php5.y:4799 { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8127,12 +7349,10 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5592 + // line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprMethodCall{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, + Position: position.NewNodePosition(yyDollar[1].node), OpenParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[1].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, @@ -8141,35 +7361,35 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5607 + // line internal/php5/php5.y:4827 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5611 + // line internal/php5/php5.y:4831 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5615 + // line internal/php5/php5.y:4835 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5622 + // line internal/php5/php5.y:4842 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5626 + // line internal/php5/php5.y:4846 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node - yyDollar[1].list[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) + yyDollar[1].list[i].(*ast.ExprVariable).Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) yyDollar[2].node = yyDollar[1].list[i] } @@ -8177,12 +7397,10 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5639 + // line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -8190,12 +7408,10 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5650 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -8203,18 +7419,16 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5664 + // line internal/php5/php5.y:4880 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5671 + // line internal/php5/php5.y:4887 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8223,12 +7437,10 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5683 + // line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8237,35 +7449,35 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5698 + // line internal/php5/php5.y:4910 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5702 + // line internal/php5/php5.y:4914 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5706 + // line internal/php5/php5.y:4918 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5714 + // line internal/php5/php5.y:4926 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5718 + // line internal/php5/php5.y:4930 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node - yyDollar[1].list[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) + yyDollar[1].list[i].(*ast.ExprVariable).Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) yyDollar[2].node = yyDollar[1].list[i] } @@ -8273,18 +7485,16 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5728 + // line internal/php5/php5.y:4940 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5735 + // line internal/php5/php5.y:4947 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8293,12 +7503,10 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5747 + // line internal/php5/php5.y:4957 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8307,22 +7515,18 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5759 + // line internal/php5/php5.y:4967 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5767 + // line internal/php5/php5.y:4975 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -8330,17 +7534,13 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5782 + // line internal/php5/php5.y:4986 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), OpenBracketTkn: yyDollar[2].token, Child: yyDollar[3].node, CloseBracketTkn: yyDollar[4].token, @@ -8349,43 +7549,39 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5802 + // line internal/php5/php5.y:5002 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5806 + // line internal/php5/php5.y:5006 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5814 + // line internal/php5/php5.y:5014 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5818 + // line internal/php5/php5.y:5018 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, + Position: position.NewNodePosition(yyDollar[1].node), Property: yyDollar[1].node, }, } } case 469: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5832 + // line internal/php5/php5.y:5030 { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8396,12 +7592,10 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5846 + // line internal/php5/php5.y:5042 { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -8412,37 +7606,31 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5860 + // line internal/php5/php5.y:5054 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, + Position: position.NewNodePosition(yyDollar[1].node), Property: yyDollar[1].node, }, } } case 472: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5874 + // line internal/php5/php5.y:5066 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 473: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5884 + // line internal/php5/php5.y:5074 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -8450,31 +7638,27 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5898 + // line internal/php5/php5.y:5086 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), DollarTkn: yyDollar[1].token, }, } } case 475: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5909 + // line internal/php5/php5.y:5095 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), DollarTkn: yyDollar[2].token, }) } case 476: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:5921 + // line internal/php5/php5.y:5105 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8483,7 +7667,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5928 + // line internal/php5/php5.y:5112 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8491,18 +7675,16 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:5938 + // line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Val: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Val: yyDollar[1].node, } } case 479: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:5947 + // line internal/php5/php5.y:5129 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -8512,13 +7694,9 @@ yydefault: } yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -8529,19 +7707,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5972 + // line internal/php5/php5.y:5150 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] -// line internal/php5/php5.y:5980 + // line internal/php5/php5.y:5158 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:5984 + // line internal/php5/php5.y:5162 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8552,12 +7730,10 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] -// line internal/php5/php5.y:5996 + // line internal/php5/php5.y:5174 { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), - }, + Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), Key: yyDollar[3].node, DoubleArrowTkn: yyDollar[4].token, Val: yyDollar[5].node, @@ -8570,13 +7746,11 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6012 + // line internal/php5/php5.y:5188 { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[3].node), - }, - Val: yyDollar[3].node, + Position: position.NewNodePosition(yyDollar[3].node), + Val: yyDollar[3].node, } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -8586,14 +7760,12 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6026 + // line internal/php5/php5.y:5200 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: yyDollar[3].node, @@ -8603,33 +7775,27 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6041 + // line internal/php5/php5.y:5213 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Val: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Val: yyDollar[1].node, }, }, } } case 487: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6054 + // line internal/php5/php5.y:5224 { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), - }, + Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), Key: yyDollar[3].node, DoubleArrowTkn: yyDollar[4].token, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node), - }, + Position: position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node), AmpersandTkn: yyDollar[5].token, Var: yyDollar[6].node, }, @@ -8642,16 +7808,12 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6076 + // line internal/php5/php5.y:5242 { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), AmpersandTkn: yyDollar[3].token, Var: yyDollar[4].node, }, @@ -8664,20 +7826,16 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6096 + // line internal/php5/php5.y:5258 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), AmpersandTkn: yyDollar[3].token, Var: yyDollar[4].node, }, @@ -8687,18 +7845,14 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6117 + // line internal/php5/php5.y:5275 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, }, @@ -8708,20 +7862,18 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6139 + // line internal/php5/php5.y:5293 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6143 + // line internal/php5/php5.y:5297 { yyVAL.list = append( yyDollar[1].list, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -8729,19 +7881,17 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6156 + // line internal/php5/php5.y:5308 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6160 + // line internal/php5/php5.y:5312 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -8750,16 +7900,12 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6176 + // line internal/php5/php5.y:5326 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -8767,20 +7913,14 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6191 + // line internal/php5/php5.y:5337 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -8792,29 +7932,21 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6214 + // line internal/php5/php5.y:5354 { yyVAL.node = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, }, ObjectOperatorTkn: yyDollar[2].token, Property: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -8822,39 +7954,29 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6242 + // line internal/php5/php5.y:5374 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[2].node), - }, - VarName: yyDollar[2].node, + Position: position.NewNodePosition(yyDollar[2].node), + VarName: yyDollar[2].node, }, CloseBracketTkn: yyDollar[3].token, } } case 499: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6258 + // line internal/php5/php5.y:5386 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -8864,25 +7986,17 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] -// line internal/php5/php5.y:6280 + // line internal/php5/php5.y:5402 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -8896,12 +8010,10 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6310 + // line internal/php5/php5.y:5424 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -8909,34 +8021,28 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6324 + // line internal/php5/php5.y:5436 { yyVAL.node = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 503: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6334 + // line internal/php5/php5.y:5444 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { yyVAL.node = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } else { yyVAL.node = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } @@ -8944,16 +8050,12 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6355 + // line internal/php5/php5.y:5461 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -8961,12 +8063,10 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6373 + // line internal/php5/php5.y:5475 { yyVAL.node = &ast.ExprIsset{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), IssetTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -8976,12 +8076,10 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6386 + // line internal/php5/php5.y:5486 { yyVAL.node = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EmptyTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -8990,12 +8088,10 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6398 + // line internal/php5/php5.y:5496 { yyVAL.node = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EmptyTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -9004,36 +8100,30 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6410 + // line internal/php5/php5.y:5506 { yyVAL.node = &ast.ExprInclude{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 509: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6420 + // line internal/php5/php5.y:5514 { yyVAL.node = &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 510: yyDollar = yyS[yypt-4 : yypt+1] -// line internal/php5/php5.y:6430 + // line internal/php5/php5.y:5522 { yyVAL.node = &ast.ExprEval{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EvalTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -9042,31 +8132,27 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6442 + // line internal/php5/php5.y:5532 { yyVAL.node = &ast.ExprRequire{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 512: yyDollar = yyS[yypt-2 : yypt+1] -// line internal/php5/php5.y:6452 + // line internal/php5/php5.y:5540 { yyVAL.node = &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireOnceTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 513: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6465 + // line internal/php5/php5.y:5551 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -9074,7 +8160,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6471 + // line internal/php5/php5.y:5557 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -9083,30 +8169,26 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6481 + // line internal/php5/php5.y:5567 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] -// line internal/php5/php5.y:6485 + // line internal/php5/php5.y:5571 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6492 + // line internal/php5/php5.y:5578 { yyVAL.node = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -9114,18 +8196,14 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6509 + // line internal/php5/php5.y:5591 { yyVAL.node = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -9133,18 +8211,14 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6529 + // line internal/php5/php5.y:5607 { yyVAL.node = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -9152,18 +8226,14 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] -// line internal/php5/php5.y:6549 + // line internal/php5/php5.y:5623 { yyVAL.node = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, diff --git a/internal/php5/php5.y b/internal/php5/php5.y index d15a4f1..95abd7e 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -266,9 +266,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = &ast.Root{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1), - }, + Position: position.NewNodeListPosition($1), Stmts: $1, EndTkn: yylex.(*Parser).currentToken, } @@ -294,9 +292,7 @@ namespace_name: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -306,9 +302,7 @@ namespace_name: | namespace_name T_NS_SEPARATOR T_STRING { part := &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, } @@ -341,9 +335,7 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -353,14 +345,10 @@ top_statement: | T_NAMESPACE namespace_name ';' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -370,14 +358,10 @@ top_statement: | T_NAMESPACE namespace_name '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -389,9 +373,7 @@ top_statement: | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -401,9 +383,7 @@ top_statement: | T_USE use_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), UseTkn: $1, UseDeclarations: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -413,14 +393,10 @@ top_statement: | T_USE T_FUNCTION use_function_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -432,14 +408,10 @@ top_statement: | T_USE T_CONST use_const_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -451,7 +423,7 @@ top_statement: | constant_declaration ';' { $1.(*ast.StmtConstList).SemiColonTkn = $2 - $1.(*ast.StmtConstList).Node.Position = position.NewNodeTokenPosition($1, $2) + $1.(*ast.StmtConstList).Position = position.NewNodeTokenPosition($1, $2) $$ = $1 } ; @@ -476,13 +448,9 @@ use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -491,21 +459,15 @@ use_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -514,14 +476,10 @@ use_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -530,22 +488,16 @@ use_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -573,13 +525,9 @@ use_function_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -588,21 +536,15 @@ use_function_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -611,14 +553,10 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -627,22 +565,16 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -670,13 +602,9 @@ use_const_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -685,21 +613,15 @@ use_const_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -708,14 +630,10 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -724,22 +642,16 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -751,16 +663,12 @@ constant_declaration: constant_declaration ',' T_STRING '=' static_scalar { constList := $1.(*ast.StmtConstList) - constList.Node.Position = position.NewNodesPosition($1, $5) + constList.Position = position.NewNodesPosition($1, $5) constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -773,19 +681,13 @@ constant_declaration: | T_CONST T_STRING '=' static_scalar { $$ = &ast.StmtConstList{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), ConstTkn: $1, Consts: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $4), - }, + Position: position.NewTokenNodePosition($2, $4), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -832,9 +734,7 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -852,13 +752,9 @@ statement: | T_STRING ':' { $$ = &ast.StmtLabel{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), LabelName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -871,9 +767,7 @@ unticked_statement: '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -889,9 +783,7 @@ unticked_statement: } $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, IfTkn: $1, OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, Cond: $2.(*ast.ParserBrackets).Child, @@ -904,9 +796,7 @@ unticked_statement: | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, @@ -914,9 +804,7 @@ unticked_statement: CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($4), - }, + Position: position.NewNodeListPosition($4), Stmts: $4, }, ElseIf: $5, @@ -931,16 +819,14 @@ unticked_statement: $3.(*ast.StmtWhile).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn $3.(*ast.StmtWhile).Cond = $2.(*ast.ParserBrackets).Child $3.(*ast.StmtWhile).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn - $3.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $3) $$ = $3 } | T_DO statement T_WHILE parenthesis_expr ';' { $$ = &ast.StmtDo{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -963,7 +849,7 @@ unticked_statement: $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 - $9.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) $$ = $9 } @@ -973,16 +859,14 @@ unticked_statement: $3.(*ast.StmtSwitch).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn $3.(*ast.StmtSwitch).Cond = $2.(*ast.ParserBrackets).Child $3.(*ast.StmtSwitch).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn - $3.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $3) $$ = $3 } | T_BREAK ';' { $$ = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), BreakTkn: $1, SemiColonTkn: $2, } @@ -990,9 +874,7 @@ unticked_statement: | T_BREAK expr ';' { $$ = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1001,9 +883,7 @@ unticked_statement: | T_CONTINUE ';' { $$ = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), ContinueTkn: $1, SemiColonTkn: $2, } @@ -1011,9 +891,7 @@ unticked_statement: | T_CONTINUE expr ';' { $$ = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1022,9 +900,7 @@ unticked_statement: | T_RETURN ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), ReturnTkn: $1, SemiColonTkn: $2, } @@ -1032,9 +908,7 @@ unticked_statement: | T_RETURN expr_without_variable ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1043,9 +917,7 @@ unticked_statement: | T_RETURN variable ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1054,9 +926,7 @@ unticked_statement: | yield_expr ';' { $$ = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -1066,7 +936,7 @@ unticked_statement: $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) - $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -1075,7 +945,7 @@ unticked_statement: $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) - $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -1083,16 +953,14 @@ unticked_statement: { $2.(*ast.StmtEcho).EchoTkn = $1 $2.(*ast.StmtEcho).SemiColonTkn = $3 - $2.(*ast.StmtEcho).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtEcho).Position = position.NewTokensPosition($1, $3) $$ = $2 } | T_INLINE_HTML { $$ = &ast.StmtInlineHtml{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), InlineHtmlTkn: $1, Value: $1.Value, } @@ -1100,9 +968,7 @@ unticked_statement: | expr ';' { $$ = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -1113,7 +979,7 @@ unticked_statement: $3.(*ast.StmtUnset).OpenParenthesisTkn = $2 $3.(*ast.StmtUnset).CloseParenthesisTkn = $4 $3.(*ast.StmtUnset).SemiColonTkn = $5 - $3.(*ast.StmtUnset).Node.Position = position.NewTokensPosition($1, $5) + $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $5) $$ = $3 } @@ -1131,7 +997,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1149,7 +1015,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1160,22 +1026,26 @@ unticked_statement: $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 - $5.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtDeclare).Position = position.NewTokenNodePosition($1, $5) $$ = $5 } | ';' { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { + pos := position.NewTokenNodeListPosition($1, $5) + if $6 != nil { + pos = position.NewTokenNodePosition($1, $6) + } + $$ = &ast.StmtTry{ + Position: pos, TryTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -1183,19 +1053,11 @@ unticked_statement: Catches: $5, Finally: $6, } - - if $6 == nil { - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) - } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) - } } | T_THROW expr ';' { $$ = &ast.StmtThrow{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ThrowTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1204,14 +1066,10 @@ unticked_statement: | T_GOTO T_STRING ';' { $$ = &ast.StmtGoto{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), GotoTkn: $1, Label: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1228,20 +1086,14 @@ catch_statement: | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { catch := &ast.StmtCatch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1263,9 +1115,7 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = &ast.StmtFinally{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), FinallyTkn: $1, OpenCurlyBracketTkn: $2, Stmts: $3, @@ -1300,20 +1150,14 @@ additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { $$ = &ast.StmtCatch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1389,15 +1233,11 @@ unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $9), - }, + Position: position.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1419,9 +1259,7 @@ unticked_class_declaration_statement: case *ast.StmtClass : n.Position = position.NewNodeTokenPosition($1, $7) n.ClassName = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1433,9 +1271,7 @@ unticked_class_declaration_statement: case *ast.StmtTrait : n.Position = position.NewNodeTokenPosition($1, $7) n.TraitName = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1451,14 +1287,10 @@ unticked_class_declaration_statement: | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1475,23 +1307,17 @@ class_entry_type: T_CLASS { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), ClassTkn: $1, } } | T_ABSTRACT T_CLASS { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1502,23 +1328,17 @@ class_entry_type: | T_TRAIT { $$ = &ast.StmtTrait{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), TraitTkn: $1, } } | T_FINAL T_CLASS { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1536,9 +1356,7 @@ extends_from: | T_EXTENDS fully_qualified_class_name { $$ = &ast.StmtClassExtends{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1560,9 +1378,7 @@ interface_extends_list: | T_EXTENDS interface_list { $$ = &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ExtendsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1578,9 +1394,7 @@ implements_list: | T_IMPLEMENTS interface_list { $$ = &ast.StmtClassImplements{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ImplementsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1626,9 +1440,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1643,9 +1455,7 @@ foreach_variable: } $$ = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1659,24 +1469,18 @@ for_statement: statement { $$ = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOR ';' { $$ = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndForTkn: $3, @@ -1689,24 +1493,18 @@ foreach_statement: statement { $$ = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOREACH ';' { $$ = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndForeachTkn: $3, @@ -1720,24 +1518,18 @@ declare_statement: statement { $$ = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndDeclareTkn: $3, @@ -1753,13 +1545,9 @@ declare_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1775,13 +1563,9 @@ declare_list: $1.(*ast.ParserSeparatedList).Items = append( $1.(*ast.ParserSeparatedList).Items, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1799,9 +1583,7 @@ switch_case_list: '{' case_list '}' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, CaseList: $2, CloseCurlyBracketTkn: $3, @@ -1810,9 +1592,7 @@ switch_case_list: | '{' ';' case_list '}' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1822,9 +1602,7 @@ switch_case_list: | ':' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, CaseList: $2, @@ -1835,9 +1613,7 @@ switch_case_list: | ':' ';' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, @@ -1857,9 +1633,7 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { $$ = append($1, &ast.StmtCase{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $5), - }, + Position: position.NewTokenNodeListPosition($2, $5), CaseTkn: $2, Cond: $3, CaseSeparatorTkn: $4, @@ -1869,9 +1643,7 @@ case_list: | case_list T_DEFAULT case_separator inner_statement_list { $$ = append($1, &ast.StmtDefault{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $4), - }, + Position: position.NewTokenNodeListPosition($2, $4), DefaultTkn: $2, CaseSeparatorTkn: $3, Stmts: $4, @@ -1896,24 +1668,18 @@ while_statement: statement { $$ = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDWHILE ';' { $$ = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndWhileTkn: $3, @@ -1932,9 +1698,7 @@ elseif_list: | elseif_list T_ELSEIF parenthesis_expr statement { $$ = append($1, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $4), - }, + Position: position.NewTokenNodePosition($2, $4), ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, Cond: $3.(*ast.ParserBrackets).Child, @@ -1953,9 +1717,7 @@ new_elseif_list: | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { $$ = append($1, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $5), - }, + Position: position.NewTokenNodeListPosition($2, $5), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, @@ -1963,9 +1725,7 @@ new_elseif_list: CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $4, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($5), - }, + Position: position.NewNodeListPosition($5), Stmts: $5, }, }) @@ -1981,9 +1741,7 @@ else_single: | T_ELSE statement { $$ = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ElseTkn: $1, Stmt: $2, } @@ -1999,16 +1757,12 @@ new_else_single: | T_ELSE ':' inner_statement_list { $$ = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3), - }, + Position: position.NewTokenNodeListPosition($1, $3), Alt: true, ElseTkn: $1, ColonTkn: $2, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($3), - }, + Position: position.NewNodeListPosition($3), Stmts: $3, }, } @@ -2056,20 +1810,14 @@ parameter: } $$ = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: $1, AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2088,20 +1836,14 @@ parameter: } $$ = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: $1, AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2121,9 +1863,7 @@ optional_class_type: | T_ARRAY { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2131,9 +1871,7 @@ optional_class_type: | T_CALLABLE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2149,9 +1887,7 @@ function_call_parameter_list: '(' ')' { $$ = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2168,15 +1904,11 @@ function_call_parameter_list: | '(' yield_expr ')' { $$ = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Arguments: []ast.Vertex{ &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($2), - }, + Position: position.NewNodePosition($2), Expr: $2, }, }, @@ -2206,27 +1938,21 @@ function_call_parameter: expr_without_variable { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Expr: $1, } } | variable { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Expr: $1, } } | '&' w_variable { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Expr: $2, } @@ -2234,9 +1960,7 @@ function_call_parameter: | T_ELLIPSIS expr { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -2264,13 +1988,9 @@ global_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2279,9 +1999,7 @@ global_var: | '$' r_variable { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -2289,14 +2007,10 @@ global_var: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -2310,17 +2024,11 @@ static_var_list: static_var_list ',' T_VARIABLE { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2333,17 +2041,11 @@ static_var_list: | static_var_list ',' T_VARIABLE '=' static_scalar { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2360,17 +2062,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2384,17 +2080,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2424,9 +2114,7 @@ class_statement: variable_modifiers class_variable_declaration ';' { $$ = &ast.StmtPropertyList{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $3), - }, + Position: position.NewNodeListTokenPosition($1, $3), Modifiers: $1, Properties: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2436,7 +2124,7 @@ class_statement: | class_constant_declaration ';' { $1.(*ast.StmtClassConstList).SemiColonTkn = $2 - $1.(*ast.StmtClassConstList).Node.Position = position.NewNodeTokenPosition($1, $2) + $1.(*ast.StmtClassConstList).Position = position.NewNodeTokenPosition($1, $2) $$ = $1 } | trait_use_statement @@ -2447,20 +2135,16 @@ class_statement: { pos := position.NewTokenNodePosition($2, $8) if $1 != nil { - $$.GetNode().Position = position.NewNodeListNodePosition($1, $8) + pos = position.NewNodeListNodePosition($1, $8) } $$ = &ast.StmtClassMethod{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Modifiers: $1, FunctionTkn: $2, AmpersandTkn: $3, MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2477,9 +2161,7 @@ trait_use_statement: T_USE trait_list trait_adaptations { $$ = &ast.StmtTraitUse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2508,18 +2190,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2568,9 +2246,7 @@ trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { $$ = &ast.StmtTraitUsePrecedence{ - Node: ast.Node{ - Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Ref: $1, InsteadofTkn: $2, Insteadof: $3.(*ast.ParserSeparatedList).Items, @@ -2599,13 +2275,9 @@ trait_method_reference: T_STRING { $$ = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2621,15 +2293,11 @@ trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2641,16 +2309,12 @@ trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Ref: $1, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2659,9 +2323,7 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Ref: $1, AsTkn: $2, Modifier: $3, @@ -2684,18 +2346,14 @@ method_body: ';' /* abstract method */ { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -2712,9 +2370,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2748,9 +2404,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2758,9 +2412,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2768,9 +2420,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2778,9 +2428,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2788,9 +2436,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2798,9 +2444,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2811,17 +2455,11 @@ class_variable_declaration: class_variable_declaration ',' T_VARIABLE { item := &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2836,17 +2474,11 @@ class_variable_declaration: | class_variable_declaration ',' T_VARIABLE '=' static_scalar { item := &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2865,17 +2497,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2890,17 +2516,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2917,16 +2537,12 @@ class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar { constList := $1.(*ast.StmtClassConstList) - constList.Node.Position = position.NewNodesPosition($1, $5) + constList.Position = position.NewNodesPosition($1, $5) constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $5), - }, + Position: position.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2939,19 +2555,13 @@ class_constant_declaration: | T_CONST T_STRING '=' static_scalar { $$ = &ast.StmtClassConstList{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), ConstTkn: $1, Consts: []ast.Vertex{ &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $4), - }, + Position: position.NewTokenNodePosition($2, $4), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3022,9 +2632,7 @@ chaining_dereference: chaining_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -3036,9 +2644,7 @@ chaining_dereference: | '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), Var: nil, OpenBracketTkn: $1, Dim: $2, @@ -3080,9 +2686,7 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, @@ -3092,9 +2696,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), Class: $2, } } @@ -3105,13 +2707,9 @@ expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $6), - }, + Position: position.NewTokenNodePosition($1, $6), Var: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3125,9 +2723,7 @@ expr_without_variable: | variable '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3136,9 +2732,7 @@ expr_without_variable: | variable '=' '&' variable { $$ = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -3150,9 +2744,7 @@ expr_without_variable: var _new *ast.ExprNew if $3 != nil { _new = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($4, $6), - }, + Position: position.NewTokenNodePosition($4, $6), NewTkn: $4, Class: $5, OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, @@ -3162,18 +2754,14 @@ expr_without_variable: } } else { _new = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($4, $5), - }, + Position: position.NewTokenNodePosition($4, $5), NewTkn: $4, Class: $5, } } $$ = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, _new), - }, + Position: position.NewNodesPosition($1, _new), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -3183,9 +2771,7 @@ expr_without_variable: | T_CLONE expr { $$ = &ast.ExprClone{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CloneTkn: $1, Expr: $2, } @@ -3193,9 +2779,7 @@ expr_without_variable: | variable T_PLUS_EQUAL expr { $$ = &ast.ExprAssignPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3204,9 +2788,7 @@ expr_without_variable: | variable T_MINUS_EQUAL expr { $$ = &ast.ExprAssignMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3215,9 +2797,7 @@ expr_without_variable: | variable T_MUL_EQUAL expr { $$ = &ast.ExprAssignMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3226,9 +2806,7 @@ expr_without_variable: | variable T_POW_EQUAL expr { $$ = &ast.ExprAssignPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3237,9 +2815,7 @@ expr_without_variable: | variable T_DIV_EQUAL expr { $$ = &ast.ExprAssignDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3248,9 +2824,7 @@ expr_without_variable: | variable T_CONCAT_EQUAL expr { $$ = &ast.ExprAssignConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3259,9 +2833,7 @@ expr_without_variable: | variable T_MOD_EQUAL expr { $$ = &ast.ExprAssignMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3270,9 +2842,7 @@ expr_without_variable: | variable T_AND_EQUAL expr { $$ = &ast.ExprAssignBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3281,9 +2851,7 @@ expr_without_variable: | variable T_OR_EQUAL expr { $$ = &ast.ExprAssignBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3292,9 +2860,7 @@ expr_without_variable: | variable T_XOR_EQUAL expr { $$ = &ast.ExprAssignBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3303,9 +2869,7 @@ expr_without_variable: | variable T_SL_EQUAL expr { $$ = &ast.ExprAssignShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3314,9 +2878,7 @@ expr_without_variable: | variable T_SR_EQUAL expr { $$ = &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3325,9 +2887,7 @@ expr_without_variable: | rw_variable T_INC { $$ = &ast.ExprPostInc{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -3335,9 +2895,7 @@ expr_without_variable: | T_INC rw_variable { $$ = &ast.ExprPreInc{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -3345,9 +2903,7 @@ expr_without_variable: | rw_variable T_DEC { $$ = &ast.ExprPostDec{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -3355,9 +2911,7 @@ expr_without_variable: | T_DEC rw_variable { $$ = &ast.ExprPreDec{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -3365,9 +2919,7 @@ expr_without_variable: | expr T_BOOLEAN_OR expr { $$ = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3376,9 +2928,7 @@ expr_without_variable: | expr T_BOOLEAN_AND expr { $$ = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3387,9 +2937,7 @@ expr_without_variable: | expr T_LOGICAL_OR expr { $$ = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3398,9 +2946,7 @@ expr_without_variable: | expr T_LOGICAL_AND expr { $$ = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3409,9 +2955,7 @@ expr_without_variable: | expr T_LOGICAL_XOR expr { $$ = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3420,9 +2964,7 @@ expr_without_variable: | expr '|' expr { $$ = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3431,9 +2973,7 @@ expr_without_variable: | expr '&' expr { $$ = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3442,9 +2982,7 @@ expr_without_variable: | expr '^' expr { $$ = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3453,9 +2991,7 @@ expr_without_variable: | expr '.' expr { $$ = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3464,9 +3000,7 @@ expr_without_variable: | expr '+' expr { $$ = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3475,9 +3009,7 @@ expr_without_variable: | expr '-' expr { $$ = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3486,9 +3018,7 @@ expr_without_variable: | expr '*' expr { $$ = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3497,9 +3027,7 @@ expr_without_variable: | expr T_POW expr { $$ = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3508,9 +3036,7 @@ expr_without_variable: | expr '/' expr { $$ = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3519,9 +3045,7 @@ expr_without_variable: | expr '%' expr { $$ = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3530,9 +3054,7 @@ expr_without_variable: | expr T_SL expr { $$ = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3541,9 +3063,7 @@ expr_without_variable: | expr T_SR expr { $$ = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3552,9 +3072,7 @@ expr_without_variable: | '+' expr %prec T_INC { $$ = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -3562,9 +3080,7 @@ expr_without_variable: | '-' expr %prec T_INC { $$ = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -3572,9 +3088,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -3582,9 +3096,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -3592,9 +3104,7 @@ expr_without_variable: | expr T_IS_IDENTICAL expr { $$ = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3603,9 +3113,7 @@ expr_without_variable: | expr T_IS_NOT_IDENTICAL expr { $$ = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3614,9 +3122,7 @@ expr_without_variable: | expr T_IS_EQUAL expr { $$ = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3625,9 +3131,7 @@ expr_without_variable: | expr T_IS_NOT_EQUAL expr { $$ = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3636,9 +3140,7 @@ expr_without_variable: | expr '<' expr { $$ = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3647,9 +3149,7 @@ expr_without_variable: | expr T_IS_SMALLER_OR_EQUAL expr { $$ = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3658,9 +3158,7 @@ expr_without_variable: | expr '>' expr { $$ = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3669,9 +3167,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3680,9 +3176,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -3699,9 +3193,7 @@ expr_without_variable: | '(' new_expr ')' instance_call { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3711,22 +3203,22 @@ expr_without_variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn } } @@ -3734,9 +3226,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $5), - }, + Position: position.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -3747,9 +3237,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -3763,9 +3251,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3773,9 +3259,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3783,9 +3267,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3793,9 +3275,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3803,9 +3283,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3813,9 +3291,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3823,9 +3299,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3837,9 +3311,9 @@ expr_without_variable: } if $2 == nil { - exit.Node.Position = position.NewTokenPosition($1) + exit.Position = position.NewTokenPosition($1) } else { - exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.Position = position.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3850,9 +3324,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3872,9 +3344,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3883,9 +3353,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3893,18 +3361,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), YieldTkn: $1, } } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $9), - }, + Position: position.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3920,9 +3384,7 @@ expr_without_variable: | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $10), - }, + Position: position.NewTokensPosition($1, $10), StaticTkn: $1, FunctionTkn: $2, AmpersandTkn: $3, @@ -3942,9 +3404,7 @@ yield_expr: T_YIELD expr_without_variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3952,9 +3412,7 @@ yield_expr: | T_YIELD variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3962,9 +3420,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3974,9 +3430,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW variable { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3989,9 +3443,7 @@ combined_scalar_offset: combined_scalar '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4001,9 +3453,7 @@ combined_scalar_offset: | combined_scalar_offset '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4013,13 +3463,9 @@ combined_scalar_offset: | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Var: &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -4031,9 +3477,7 @@ combined_scalar_offset: | general_constant '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4046,9 +3490,7 @@ combined_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4059,9 +3501,7 @@ combined_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4085,9 +3525,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -4101,13 +3539,9 @@ lexical_var_list: lexical_var_list ',' T_VARIABLE { variable := &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4121,18 +3555,12 @@ lexical_var_list: | lexical_var_list ',' '&' T_VARIABLE { reference := &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $4), - }, + Position: position.NewTokensPosition($3, $4), AmpersandTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -4149,13 +3577,9 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4168,18 +3592,12 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4194,13 +3612,9 @@ function_call: namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), - }, + Position: position.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), Function: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4213,13 +3627,9 @@ function_call: | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), Function: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4234,13 +3644,9 @@ function_call: | T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Function: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4254,9 +3660,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4269,9 +3673,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4284,9 +3686,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4299,9 +3699,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -4314,9 +3712,7 @@ function_call: | variable_without_objects function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $2), - }, + Position: position.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -4330,9 +3726,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -4340,9 +3734,7 @@ class_name: | namespace_name { $$ = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -4350,9 +3742,7 @@ class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4362,9 +3752,7 @@ class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4376,9 +3764,7 @@ fully_qualified_class_name: namespace_name { $$ = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -4386,9 +3772,7 @@ fully_qualified_class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4398,9 +3782,7 @@ fully_qualified_class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4430,12 +3812,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn } } @@ -4444,12 +3826,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - $$.GetNode().Position = position.NewNodesPosition($$, nn) + *$$.GetPosition() = *position.NewNodesPosition($$, nn) $$ = nn } } @@ -4490,9 +3872,7 @@ exit_expr: | '(' ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenBracketTkn: $1, CloseBracketTkn: $2, } @@ -4512,9 +3892,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -4541,9 +3919,7 @@ common_scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -4551,9 +3927,7 @@ common_scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -4561,9 +3935,7 @@ common_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4571,9 +3943,7 @@ common_scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4581,9 +3951,7 @@ common_scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4591,9 +3959,7 @@ common_scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4601,9 +3967,7 @@ common_scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4611,9 +3975,7 @@ common_scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4621,9 +3983,7 @@ common_scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4631,9 +3991,7 @@ common_scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4641,15 +3999,11 @@ common_scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4660,9 +4014,7 @@ common_scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -4673,15 +4025,11 @@ static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4708,13 +4056,9 @@ static_scalar_value: | namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4723,13 +4067,9 @@ static_scalar_value: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4740,13 +4080,9 @@ static_scalar_value: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4756,9 +4092,7 @@ static_scalar_value: | T_ARRAY '(' static_array_pair_list ')' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4769,9 +4103,7 @@ static_scalar_value: | '[' static_array_pair_list ']' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4785,9 +4117,7 @@ static_scalar_value: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4802,9 +4132,7 @@ static_operation: static_scalar_value '[' static_scalar_value ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4814,9 +4142,7 @@ static_operation: | static_scalar_value '+' static_scalar_value { $$ = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4825,9 +4151,7 @@ static_operation: | static_scalar_value '-' static_scalar_value { $$ = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4836,9 +4160,7 @@ static_operation: | static_scalar_value '*' static_scalar_value { $$ = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4847,9 +4169,7 @@ static_operation: | static_scalar_value T_POW static_scalar_value { $$ = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4858,9 +4178,7 @@ static_operation: | static_scalar_value '/' static_scalar_value { $$ = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4869,9 +4187,7 @@ static_operation: | static_scalar_value '%' static_scalar_value { $$ = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4880,9 +4196,7 @@ static_operation: | '!' static_scalar_value { $$ = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -4890,9 +4204,7 @@ static_operation: | '~' static_scalar_value { $$ = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -4900,9 +4212,7 @@ static_operation: | static_scalar_value '|' static_scalar_value { $$ = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4911,9 +4221,7 @@ static_operation: | static_scalar_value '&' static_scalar_value { $$ = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4922,9 +4230,7 @@ static_operation: | static_scalar_value '^' static_scalar_value { $$ = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4933,9 +4239,7 @@ static_operation: | static_scalar_value T_SL static_scalar_value { $$ = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4944,9 +4248,7 @@ static_operation: | static_scalar_value T_SR static_scalar_value { $$ = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4955,9 +4257,7 @@ static_operation: | static_scalar_value '.' static_scalar_value { $$ = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4966,9 +4266,7 @@ static_operation: | static_scalar_value T_LOGICAL_XOR static_scalar_value { $$ = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4977,9 +4275,7 @@ static_operation: | static_scalar_value T_LOGICAL_AND static_scalar_value { $$ = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4988,9 +4284,7 @@ static_operation: | static_scalar_value T_LOGICAL_OR static_scalar_value { $$ = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4999,9 +4293,7 @@ static_operation: | static_scalar_value T_BOOLEAN_AND static_scalar_value { $$ = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5010,9 +4302,7 @@ static_operation: | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$ = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5021,9 +4311,7 @@ static_operation: | static_scalar_value T_IS_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5032,9 +4320,7 @@ static_operation: | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5043,9 +4329,7 @@ static_operation: | static_scalar_value T_IS_EQUAL static_scalar_value { $$ = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5054,9 +4338,7 @@ static_operation: | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { $$ = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5065,9 +4347,7 @@ static_operation: | static_scalar_value '<' static_scalar_value { $$ = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5076,9 +4356,7 @@ static_operation: | static_scalar_value '>' static_scalar_value { $$ = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5087,9 +4365,7 @@ static_operation: | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5098,9 +4374,7 @@ static_operation: | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -5109,9 +4383,7 @@ static_operation: | static_scalar_value '?' ':' static_scalar_value { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -5121,9 +4393,7 @@ static_operation: | static_scalar_value '?' static_scalar_value ':' static_scalar_value { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $5), - }, + Position: position.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -5134,9 +4404,7 @@ static_operation: | '+' static_scalar_value { $$ = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -5144,9 +4412,7 @@ static_operation: | '-' static_scalar_value { $$ = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -5154,9 +4420,7 @@ static_operation: | '(' static_scalar_value ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5172,13 +4436,9 @@ general_constant: | namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -5187,13 +4447,9 @@ general_constant: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -5204,13 +4460,9 @@ general_constant: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -5223,13 +4475,9 @@ scalar: T_STRING_VARNAME { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5250,9 +4498,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -5261,9 +4507,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -5272,9 +4516,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -5312,9 +4554,7 @@ non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($3, $5), - }, + Position: position.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -5328,9 +4568,7 @@ non_empty_static_array_pair_list: | non_empty_static_array_pair_list ',' static_scalar_value { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($3), - }, + Position: position.NewNodePosition($3), Val: $3, } @@ -5344,9 +4582,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -5359,9 +4595,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, }, }, @@ -5384,9 +4618,7 @@ parenthesis_expr: '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5395,9 +4627,7 @@ parenthesis_expr: | '(' yield_expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5441,9 +4671,7 @@ variable: case *ast.ExprArrayDimFetch: mc := $4[0].(*ast.ExprMethodCall) $3 = append($3, &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodePosition(mc), - }, + Position: position.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -5462,22 +4690,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn } } @@ -5486,22 +4714,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Node.Position = position.NewNodesPosition($$, nn) + nn.Position = position.NewNodesPosition($$, nn) $$ = nn } } @@ -5535,9 +4763,7 @@ variable_property: case *ast.ExprArrayDimFetch: mc := $3[0].(*ast.ExprMethodCall) $2 = append($2, &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodePosition(mc), - }, + Position: position.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -5560,9 +4786,7 @@ array_method_dereference: array_method_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5574,9 +4798,7 @@ array_method_dereference: | method '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5591,9 +4813,7 @@ method: function_call_parameter_list { $$ = &ast.ExprMethodCall{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), OpenParenthesisTkn: $1.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $1.(*ast.ArgumentList).Arguments, SeparatorTkns: $1.(*ast.ArgumentList).SeparatorTkns, @@ -5626,7 +4846,7 @@ variable_without_objects: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -5638,9 +4858,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -5649,9 +4867,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -5670,9 +4886,7 @@ array_function_dereference: array_function_dereference '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5682,9 +4896,7 @@ array_function_dereference: | function_call '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5718,7 +4930,7 @@ base_variable: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Node.Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -5734,9 +4946,7 @@ reference_variable: reference_variable '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5746,9 +4956,7 @@ reference_variable: | reference_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -5766,13 +4974,9 @@ compound_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5781,14 +4985,10 @@ compound_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -5818,9 +5018,7 @@ object_property: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Property: $1, }, } @@ -5831,9 +5029,7 @@ object_dim_list: object_dim_list '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5845,9 +5041,7 @@ object_dim_list: | object_dim_list '{' expr '}' { fetch := &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5860,9 +5054,7 @@ object_dim_list: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Property: $1, }, } @@ -5873,9 +5065,7 @@ variable_name: T_STRING { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -5883,9 +5073,7 @@ variable_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5898,9 +5086,7 @@ simple_indirect_reference: { $$ = []ast.Vertex{ &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), DollarTkn: $1, }, } @@ -5908,9 +5094,7 @@ simple_indirect_reference: | simple_indirect_reference '$' { $$ = append($1, &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), DollarTkn: $2, }) } @@ -5937,9 +5121,7 @@ assignment_list_element: variable { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, } } @@ -5953,13 +5135,9 @@ assignment_list_element: } $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -5995,9 +5173,7 @@ non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($3, $5), - }, + Position: position.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -6011,9 +5187,7 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($3), - }, + Position: position.NewNodePosition($3), Val: $3, } @@ -6027,9 +5201,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -6042,9 +5214,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, }, }, @@ -6053,15 +5223,11 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($3, $6), - }, + Position: position.NewNodesPosition($3, $6), Key: $3, DoubleArrowTkn: $4, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($5, $6), - }, + Position: position.NewTokenNodePosition($5, $6), AmpersandTkn: $5, Var: $6, }, @@ -6075,13 +5241,9 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -6097,15 +5259,11 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -6118,13 +5276,9 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -6144,9 +5298,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -6160,9 +5312,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -6175,13 +5325,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -6190,17 +5336,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -6213,26 +5353,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6241,14 +5373,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewNodePosition($2), - }, + Position: position.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -6257,18 +5385,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -6279,22 +5401,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $5), - }, + Position: position.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -6309,9 +5423,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -6323,9 +5435,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -6335,17 +5445,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -6354,13 +5460,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -6372,9 +5474,7 @@ internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { $$ = &ast.ExprIsset{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -6385,9 +5485,7 @@ internal_functions_in_yacc: | T_EMPTY '(' variable ')' { $$ = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -6397,9 +5495,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -6409,9 +5505,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -6419,9 +5513,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -6429,9 +5521,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -6441,9 +5531,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -6451,9 +5539,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } @@ -6491,15 +5577,11 @@ class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6508,15 +5590,11 @@ class_constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6528,15 +5606,11 @@ static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -6548,15 +5622,11 @@ class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 03984ad..d8af320 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4997 +// line internal/php7/php7.y:4328 // line yacctab:1 var yyExca = [...]int{ @@ -2110,478 +2110,476 @@ yydefault: // line internal/php7/php7.y:284 { yylex.(*Parser).rootNode = &ast.Root{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].list), - }, - Stmts: yyDollar[1].list, - EndTkn: yylex.(*Parser).currentToken, + Position: position.NewNodeListPosition(yyDollar[1].list), + Stmts: yyDollar[1].list, + EndTkn: yylex.(*Parser).currentToken, } } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:301 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:302 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:305 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:310 + // line internal/php7/php7.y:308 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:315 + // line internal/php7/php7.y:313 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:319 + // line internal/php7/php7.y:317 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:326 + // line internal/php7/php7.y:324 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2589,20 +2587,18 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:332 + // line internal/php7/php7.y:330 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:339 + // line internal/php7/php7.y:337 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -2611,12 +2607,10 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:353 + // line internal/php7/php7.y:349 { part := &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), StringTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, } @@ -2628,24 +2622,20 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:371 + // line internal/php7/php7.y:365 { yyVAL.node = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:381 + // line internal/php7/php7.y:373 { yyVAL.node = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -2654,12 +2644,10 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:393 + // line internal/php7/php7.y:383 { yyVAL.node = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2667,49 +2655,47 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:407 + // line internal/php7/php7.y:395 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 + // line internal/php7/php7.y:400 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 + // line internal/php7/php7.y:404 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:420 + // line internal/php7/php7.y:408 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:424 + // line internal/php7/php7.y:412 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:428 + // line internal/php7/php7.y:416 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:432 + // line internal/php7/php7.y:420 { yyVAL.node = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -2718,17 +2704,13 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:444 + // line internal/php7/php7.y:430 { yyVAL.node = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, - NsTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2737,17 +2719,13 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:461 + // line internal/php7/php7.y:443 { yyVAL.node = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - }, - NsTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2758,12 +2736,10 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:480 + // line internal/php7/php7.y:458 { yyVAL.node = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsTkn: yyDollar[1].token, OpenCurlyBracket: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -2772,11 +2748,11 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:492 + // line internal/php7/php7.y:468 { use := yyDollar[2].node.(*ast.StmtGroupUse) - use.Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + use.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) use.UseTkn = yyDollar[1].token use.SemiColonTkn = yyDollar[3].token @@ -2784,11 +2760,11 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:502 + // line internal/php7/php7.y:478 { use := yyDollar[3].node.(*ast.StmtGroupUse) - use.Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + use.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) use.UseTkn = yyDollar[1].token use.Type = yyDollar[2].node use.SemiColonTkn = yyDollar[4].token @@ -2797,12 +2773,10 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:513 + // line internal/php7/php7.y:489 { yyVAL.node = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), UseTkn: yyDollar[1].token, UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2811,12 +2785,10 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:525 + // line internal/php7/php7.y:499 { yyVAL.node = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, Type: yyDollar[2].node, UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -2826,12 +2798,10 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:538 + // line internal/php7/php7.y:510 { yyVAL.node = &ast.StmtConstList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ConstTkn: yyDollar[1].token, Consts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2840,42 +2810,34 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:553 + // line internal/php7/php7.y:523 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:563 + // line internal/php7/php7.y:531 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:576 + // line internal/php7/php7.y:542 { yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) yyVAL.node = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2888,19 +2850,15 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:598 + // line internal/php7/php7.y:560 { yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) yyVAL.node = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2913,18 +2871,14 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:624 + // line internal/php7/php7.y:582 { yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) yyVAL.node = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2937,19 +2891,15 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:646 + // line internal/php7/php7.y:600 { yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) yyVAL.node = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2962,19 +2912,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:672 + // line internal/php7/php7.y:622 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:676 + // line internal/php7/php7.y:626 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:683 + // line internal/php7/php7.y:633 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2983,7 +2933,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:690 + // line internal/php7/php7.y:640 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2991,7 +2941,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:699 + // line internal/php7/php7.y:649 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3000,7 +2950,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:706 + // line internal/php7/php7.y:656 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3008,7 +2958,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:715 + // line internal/php7/php7.y:665 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3017,7 +2967,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:722 + // line internal/php7/php7.y:672 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3025,32 +2975,28 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:731 + // line internal/php7/php7.y:681 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:735 + // line internal/php7/php7.y:685 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node - decl.Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) + decl.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) yyVAL.node = yyDollar[2].node } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:746 + // line internal/php7/php7.y:696 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -3058,24 +3004,18 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:761 + // line internal/php7/php7.y:707 { yyVAL.node = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3083,23 +3023,23 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:787 + // line internal/php7/php7.y:727 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:791 + // line internal/php7/php7.y:731 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token - decl.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + decl.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) yyVAL.node = yyDollar[2].node } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:802 + // line internal/php7/php7.y:742 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3108,7 +3048,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:809 + // line internal/php7/php7.y:749 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3116,7 +3056,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:818 + // line internal/php7/php7.y:758 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3124,55 +3064,53 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:824 + // line internal/php7/php7.y:764 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:831 + // line internal/php7/php7.y:771 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:836 + // line internal/php7/php7.y:776 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:840 + // line internal/php7/php7.y:780 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:844 + // line internal/php7/php7.y:784 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:848 + // line internal/php7/php7.y:788 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:852 + // line internal/php7/php7.y:792 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:856 + // line internal/php7/php7.y:796 { yyVAL.node = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -3181,12 +3119,10 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:870 + // line internal/php7/php7.y:808 { yyVAL.node = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -3194,36 +3130,34 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:881 + // line internal/php7/php7.y:817 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:885 + // line internal/php7/php7.y:821 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:889 + // line internal/php7/php7.y:825 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtWhile).Cond = yyDollar[3].node yyDollar[5].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtWhile).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:899 + // line internal/php7/php7.y:835 { yyVAL.node = &ast.StmtDo{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), DoTkn: yyDollar[1].token, Stmt: yyDollar[2].node, WhileTkn: yyDollar[3].token, @@ -3235,7 +3169,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:914 + // line internal/php7/php7.y:848 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3248,30 +3182,28 @@ yydefault: yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token - yyDollar[9].node.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyDollar[9].node.(*ast.StmtFor).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:931 + // line internal/php7/php7.y:865 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtSwitch).Cond = yyDollar[3].node yyDollar[5].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtSwitch).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:941 + // line internal/php7/php7.y:875 { yyVAL.node = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), BreakTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3279,12 +3211,10 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:952 + // line internal/php7/php7.y:884 { yyVAL.node = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ContinueTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3292,12 +3222,10 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:963 + // line internal/php7/php7.y:893 { yyVAL.node = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ReturnTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3305,74 +3233,70 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:974 + // line internal/php7/php7.y:902 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtGlobal).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:982 + // line internal/php7/php7.y:910 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtStatic).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtStatic).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:990 + // line internal/php7/php7.y:918 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtEcho).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtEcho).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:998 + // line internal/php7/php7.y:926 { yyVAL.node = &ast.StmtInlineHtml{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), InlineHtmlTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1008 + // line internal/php7/php7.y:934 { yyVAL.node = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Expr: yyDollar[1].node, SemiColonTkn: yyDollar[2].token, } } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1018 + // line internal/php7/php7.y:942 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[4].token) yyDollar[3].node.(*ast.StmtUnset).CloseParenthesisTkn = yyDollar[5].token yyDollar[3].node.(*ast.StmtUnset).SemiColonTkn = yyDollar[6].token - yyDollar[3].node.(*ast.StmtUnset).Node.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) + yyDollar[3].node.(*ast.StmtUnset).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) yyVAL.node = yyDollar[3].node } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1029 + // line internal/php7/php7.y:953 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3380,13 +3304,13 @@ yydefault: yyDollar[7].node.(*ast.StmtForeach).AsTkn = yyDollar[4].token yyDollar[7].node.(*ast.StmtForeach).Var = yyDollar[5].node yyDollar[7].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[6].token - yyDollar[7].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) + yyDollar[7].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) yyVAL.node = yyDollar[7].node } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1041 + // line internal/php7/php7.y:965 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3396,39 +3320,43 @@ yydefault: yyDollar[9].node.(*ast.StmtForeach).DoubleArrowTkn = yyDollar[6].token yyDollar[9].node.(*ast.StmtForeach).Var = yyDollar[7].node yyDollar[9].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[8].token - yyDollar[9].node.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyDollar[9].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1055 + // line internal/php7/php7.y:979 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtDeclare).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1066 + // line internal/php7/php7.y:990 { yyVAL.node = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1075 + // line internal/php7/php7.y:997 { + pos := position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) + if yyDollar[6].node != nil { + pos = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + } + yyVAL.node = &ast.StmtTry{ + Position: pos, TryTkn: yyDollar[1].token, OpenCurlyBracket: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -3436,21 +3364,13 @@ yydefault: Catches: yyDollar[5].list, Finally: yyDollar[6].node, } - - if yyDollar[6].node == nil { - yyVAL.node.GetNode().Position = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) - } else { - yyVAL.node.GetNode().Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) - } } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1092 + // line internal/php7/php7.y:1014 { yyVAL.node = &ast.StmtThrow{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ThrowTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3458,17 +3378,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1103 + // line internal/php7/php7.y:1023 { yyVAL.node = &ast.StmtGoto{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, - GotoTkn: yyDollar[1].token, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + GotoTkn: yyDollar[1].token, Label: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3477,16 +3393,12 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1120 + // line internal/php7/php7.y:1036 { yyVAL.node = &ast.StmtLabel{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), LabelName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3495,25 +3407,21 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1138 + // line internal/php7/php7.y:1050 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1142 + // line internal/php7/php7.y:1054 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token catch.OpenParenthesisTkn = yyDollar[3].token catch.Var = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[5].token), - }, + Position: position.NewTokenPosition(yyDollar[5].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[5].token), - }, + Position: position.NewTokenPosition(yyDollar[5].token), IdentifierTkn: yyDollar[5].token, Value: yyDollar[5].token.Value, }, @@ -3522,13 +3430,13 @@ yydefault: catch.OpenCurlyBracketTkn = yyDollar[7].token catch.Stmts = yyDollar[8].list catch.CloseCurlyBracketTkn = yyDollar[9].token - catch.GetNode().Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) + catch.Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) yyVAL.list = append(yyDollar[1].list, catch) } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1169 + // line internal/php7/php7.y:1077 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3536,7 +3444,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1175 + // line internal/php7/php7.y:1083 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3545,18 +3453,16 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1185 + // line internal/php7/php7.y:1093 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1189 + // line internal/php7/php7.y:1097 { yyVAL.node = &ast.StmtFinally{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), FinallyTkn: yyDollar[1].token, OpenCurlyBracketTkn: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -3565,7 +3471,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1204 + // line internal/php7/php7.y:1110 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3573,7 +3479,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1210 + // line internal/php7/php7.y:1116 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3582,24 +3488,20 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1220 + // line internal/php7/php7.y:1126 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1227 + // line internal/php7/php7.y:1133 { yyVAL.node = &ast.StmtFunction{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3616,42 +3518,38 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1256 + // line internal/php7/php7.y:1158 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1260 + // line internal/php7/php7.y:1162 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1267 + // line internal/php7/php7.y:1169 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1271 + // line internal/php7/php7.y:1173 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1278 + // line internal/php7/php7.y:1180 { yyVAL.node = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), - }, + Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), Modifiers: yyDollar[1].list, ClassTkn: yyDollar[2].token, ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3664,17 +3562,13 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1300 + // line internal/php7/php7.y:1198 { yyVAL.node = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3687,53 +3581,45 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1324 + // line internal/php7/php7.y:1218 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1328 + // line internal/php7/php7.y:1222 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1335 + // line internal/php7/php7.y:1229 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1345 + // line internal/php7/php7.y:1237 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1358 + // line internal/php7/php7.y:1248 { yyVAL.node = &ast.StmtTrait{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), TraitTkn: yyDollar[1].token, TraitName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3744,17 +3630,13 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1380 + // line internal/php7/php7.y:1266 { yyVAL.node = &ast.StmtInterface{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), InterfaceTkn: yyDollar[1].token, InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3766,36 +3648,32 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1403 + // line internal/php7/php7.y:1285 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1407 + // line internal/php7/php7.y:1289 { yyVAL.node = &ast.StmtClassExtends{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExtendTkn: yyDollar[1].token, ClassName: yyDollar[2].node, } } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1420 + // line internal/php7/php7.y:1300 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1424 + // line internal/php7/php7.y:1304 { yyVAL.node = &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ExtendsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3803,18 +3681,16 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1438 + // line internal/php7/php7.y:1316 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1442 + // line internal/php7/php7.y:1320 { yyVAL.node = &ast.StmtClassImplements{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ImplementsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3822,30 +3698,26 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1332 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1460 + // line internal/php7/php7.y:1336 { yyVAL.node = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1470 + // line internal/php7/php7.y:1344 { yyVAL.node = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -3855,12 +3727,10 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1483 + // line internal/php7/php7.y:1355 { yyVAL.node = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3869,30 +3739,24 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1498 + // line internal/php7/php7.y:1368 { yyVAL.node = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1507 + // line internal/php7/php7.y:1375 { yyVAL.node = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndForTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -3900,30 +3764,24 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1528 + // line internal/php7/php7.y:1392 { yyVAL.node = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1537 + // line internal/php7/php7.y:1399 { yyVAL.node = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndForeachTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -3931,30 +3789,24 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1558 + // line internal/php7/php7.y:1416 { yyVAL.node = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1567 + // line internal/php7/php7.y:1423 { yyVAL.node = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndDeclareTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -3962,12 +3814,10 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1588 + // line internal/php7/php7.y:1440 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseList: yyDollar[2].list, CloseCurlyBracketTkn: yyDollar[3].token, @@ -3975,12 +3825,10 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1599 + // line internal/php7/php7.y:1449 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, CaseList: yyDollar[3].list, @@ -3989,12 +3837,10 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1611 + // line internal/php7/php7.y:1459 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, CaseList: yyDollar[2].list, @@ -4004,12 +3850,10 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1624 + // line internal/php7/php7.y:1470 { yyVAL.node = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), Alt: true, ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, @@ -4020,18 +3864,16 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1641 + // line internal/php7/php7.y:1485 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1645 + // line internal/php7/php7.y:1489 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), CaseTkn: yyDollar[2].token, Cond: yyDollar[3].node, CaseSeparatorTkn: yyDollar[4].token, @@ -4040,12 +3882,10 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1657 + // line internal/php7/php7.y:1499 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), DefaultTkn: yyDollar[2].token, CaseSeparatorTkn: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -4053,42 +3893,36 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1671 + // line internal/php7/php7.y:1511 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1675 + // line internal/php7/php7.y:1515 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1682 + // line internal/php7/php7.y:1522 { yyVAL.node = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Stmt: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Stmt: yyDollar[1].node, } } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1691 + // line internal/php7/php7.y:1529 { yyVAL.node = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[2].list), - }, - Stmts: yyDollar[2].list, + Position: position.NewNodeListPosition(yyDollar[2].list), + Stmts: yyDollar[2].list, }, EndWhileTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, @@ -4096,12 +3930,10 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1712 + // line internal/php7/php7.y:1546 { yyVAL.node = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Cond: yyDollar[3].node, @@ -4111,12 +3943,10 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1725 + // line internal/php7/php7.y:1557 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), - }, + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, Cond: yyDollar[4].node, @@ -4124,40 +3954,36 @@ yydefault: Stmt: yyDollar[6].node, }) - yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1745 + // line internal/php7/php7.y:1575 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1749 + // line internal/php7/php7.y:1579 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), - }, - ElseTkn: yyDollar[2].token, - Stmt: yyDollar[3].node, + Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), + ElseTkn: yyDollar[2].token, + Stmt: yyDollar[3].node, } - yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yyVAL.node = yyDollar[1].node } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1766 + // line internal/php7/php7.y:1594 { yyVAL.node = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), Alt: true, IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, @@ -4165,21 +3991,17 @@ yydefault: CloseParenthesisTkn: yyDollar[4].token, ColonTkn: yyDollar[5].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[6].list), - }, - Stmts: yyDollar[6].list, + Position: position.NewNodeListPosition(yyDollar[6].list), + Stmts: yyDollar[6].list, }, } } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1786 + // line internal/php7/php7.y:1610 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), Alt: true, ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, @@ -4187,10 +4009,8 @@ yydefault: CloseParenthesisTkn: yyDollar[5].token, ColonTkn: yyDollar[6].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[7].list), - }, - Stmts: yyDollar[7].list, + Position: position.NewNodeListPosition(yyDollar[7].list), + Stmts: yyDollar[7].list, }, }) @@ -4198,53 +4018,49 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1811 + // line internal/php7/php7.y:1631 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token - yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) yyVAL.node = yyDollar[1].node } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1819 + // line internal/php7/php7.y:1639 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), - }, + Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), Alt: true, ElseTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition(yyDollar[4].list), - }, - Stmts: yyDollar[4].list, + Position: position.NewNodeListPosition(yyDollar[4].list), + Stmts: yyDollar[4].list, }, } yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[5].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[6].token - yyDollar[1].node.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) + yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) yyVAL.node = yyDollar[1].node } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1660 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1848 + // line internal/php7/php7.y:1664 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1855 + // line internal/php7/php7.y:1671 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4252,7 +4068,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1861 + // line internal/php7/php7.y:1677 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4261,7 +4077,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1871 + // line internal/php7/php7.y:1687 { pos := position.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4273,20 +4089,14 @@ yydefault: } yyVAL.node = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: yyDollar[1].node, AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4295,7 +4105,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1903 + // line internal/php7/php7.y:1713 { pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4307,20 +4117,14 @@ yydefault: } yyVAL.node = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: yyDollar[1].node, AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4331,73 +4135,67 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1940 + // line internal/php7/php7.y:1744 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1944 + // line internal/php7/php7.y:1748 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1951 + // line internal/php7/php7.y:1755 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1955 + // line internal/php7/php7.y:1759 { yyVAL.node = &ast.Nullable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), QuestionTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1770 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1778 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1988 + // line internal/php7/php7.y:1786 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1995 + // line internal/php7/php7.y:1793 { yyVAL.node = &ast.ReturnType{} } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1999 + // line internal/php7/php7.y:1797 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4406,19 +4204,17 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2009 + // line internal/php7/php7.y:1807 { yyVAL.node = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, } } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2019 + // line internal/php7/php7.y:1815 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4430,7 +4226,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2032 + // line internal/php7/php7.y:1828 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4438,7 +4234,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2038 + // line internal/php7/php7.y:1834 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4447,30 +4243,26 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2048 + // line internal/php7/php7.y:1844 { yyVAL.node = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Expr: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Expr: yyDollar[1].node, } } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2057 + // line internal/php7/php7.y:1851 { yyVAL.node = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), VariadicTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2070 + // line internal/php7/php7.y:1862 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4479,7 +4271,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2077 + // line internal/php7/php7.y:1869 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4487,13 +4279,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2086 + // line internal/php7/php7.y:1878 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2093 + // line internal/php7/php7.y:1885 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4502,7 +4294,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2100 + // line internal/php7/php7.y:1892 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4510,21 +4302,15 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2109 + // line internal/php7/php7.y:1901 { yyVAL.node = &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4533,20 +4319,14 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2130 + // line internal/php7/php7.y:1916 { yyVAL.node = &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4557,24 +4337,22 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2155 + // line internal/php7/php7.y:1935 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2159 + // line internal/php7/php7.y:1939 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2166 + // line internal/php7/php7.y:1946 { yyVAL.node = &ast.StmtPropertyList{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), - }, + Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), Modifiers: yyDollar[1].list, Type: yyDollar[2].node, Properties: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4584,12 +4362,10 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2179 + // line internal/php7/php7.y:1957 { yyVAL.node = &ast.StmtClassConstList{ - Node: ast.Node{ - Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), Modifiers: yyDollar[1].list, ConstTkn: yyDollar[2].token, Consts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4599,12 +4375,10 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2192 + // line internal/php7/php7.y:1968 { yyVAL.node = &ast.StmtTraitUse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4613,24 +4387,20 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2204 + // line internal/php7/php7.y:1978 { pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { - yyVAL.node.GetNode().Position = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) + pos = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) } yyVAL.node = &ast.StmtClassMethod{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Modifiers: yyDollar[1].list, FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4645,7 +4415,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2007 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4653,7 +4423,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2013 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4662,35 +4432,29 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2253 + // line internal/php7/php7.y:2023 { yyVAL.node = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2262 + // line internal/php7/php7.y:2030 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, } } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2038 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenParenthesisTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, CloseParenthesisTkn: yyDollar[3].token, @@ -4698,19 +4462,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2286 + // line internal/php7/php7.y:2050 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2054 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2297 + // line internal/php7/php7.y:2061 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4718,7 +4482,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2303 + // line internal/php7/php7.y:2067 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4726,12 +4490,10 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2076 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Node: ast.Node{ - Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Ref: yyDollar[1].node, InsteadofTkn: yyDollar[2].token, Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4740,18 +4502,14 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2327 + // line internal/php7/php7.y:2089 { yyVAL.node = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4759,18 +4517,14 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2344 + // line internal/php7/php7.y:2102 { yyVAL.node = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Ref: yyDollar[1].node, + AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4778,19 +4532,15 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2361 + // line internal/php7/php7.y:2115 { yyVAL.node = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[4].token), - }, + Position: position.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4798,12 +4548,10 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2379 + // line internal/php7/php7.y:2129 { yyVAL.node = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, @@ -4811,16 +4559,12 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2141 { yyVAL.node = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4828,24 +4572,20 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2152 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2415 + // line internal/php7/php7.y:2159 { yyVAL.node = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4853,23 +4593,19 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2435 + // line internal/php7/php7.y:2175 { yyVAL.node = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2182 { yyVAL.node = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -4877,19 +4613,17 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2458 + // line internal/php7/php7.y:2194 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2198 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4897,103 +4631,91 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2477 + // line internal/php7/php7.y:2211 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2481 + // line internal/php7/php7.y:2215 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2488 + // line internal/php7/php7.y:2222 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2492 + // line internal/php7/php7.y:2226 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2499 + // line internal/php7/php7.y:2233 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2509 + // line internal/php7/php7.y:2241 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2249 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2529 + // line internal/php7/php7.y:2257 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2539 + // line internal/php7/php7.y:2265 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2549 + // line internal/php7/php7.y:2273 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2284 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5002,7 +4724,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2569 + // line internal/php7/php7.y:2291 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5010,20 +4732,14 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2578 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5033,20 +4749,14 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2599 + // line internal/php7/php7.y:2315 { yyVAL.node = &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5057,7 +4767,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2624 + // line internal/php7/php7.y:2334 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5066,7 +4776,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2341 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5074,16 +4784,12 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2640 + // line internal/php7/php7.y:2350 { yyVAL.node = &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5093,16 +4799,12 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2660 + // line internal/php7/php7.y:2366 { yyVAL.node = &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5112,7 +4814,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2680 + // line internal/php7/php7.y:2382 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -5121,7 +4823,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2687 + // line internal/php7/php7.y:2389 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -5129,25 +4831,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2696 + // line internal/php7/php7.y:2398 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2703 + // line internal/php7/php7.y:2405 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2707 + // line internal/php7/php7.y:2409 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2714 + // line internal/php7/php7.y:2416 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5156,7 +4858,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2721 + // line internal/php7/php7.y:2423 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5164,12 +4866,10 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2730 + // line internal/php7/php7.y:2432 { yyVAL.node = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -5184,13 +4884,11 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2751 + // line internal/php7/php7.y:2451 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, @@ -5200,38 +4898,30 @@ yydefault: } } else { yyVAL.node = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - NewTkn: yyDollar[1].token, - Class: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + NewTkn: yyDollar[1].token, + Class: yyDollar[2].node, } } } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2775 + // line internal/php7/php7.y:2471 { yyVAL.node = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - NewTkn: yyDollar[1].token, - Class: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + NewTkn: yyDollar[1].token, + Class: yyDollar[2].node, } } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2482 { yyVAL.node = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), Var: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -5244,16 +4934,12 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2808 + // line internal/php7/php7.y:2498 { yyVAL.node = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), Var: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -5265,12 +4951,10 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2827 + // line internal/php7/php7.y:2513 { yyVAL.node = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5278,12 +4962,10 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2838 + // line internal/php7/php7.y:2522 { yyVAL.node = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -5292,24 +4974,20 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2850 + // line internal/php7/php7.y:2532 { yyVAL.node = &ast.ExprClone{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CloneTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2860 + // line internal/php7/php7.y:2540 { yyVAL.node = &ast.ExprAssignPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5317,12 +4995,10 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2871 + // line internal/php7/php7.y:2549 { yyVAL.node = &ast.ExprAssignMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5330,12 +5006,10 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2882 + // line internal/php7/php7.y:2558 { yyVAL.node = &ast.ExprAssignMul{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5343,12 +5017,10 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2893 + // line internal/php7/php7.y:2567 { yyVAL.node = &ast.ExprAssignPow{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5356,12 +5028,10 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2904 + // line internal/php7/php7.y:2576 { yyVAL.node = &ast.ExprAssignDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5369,12 +5039,10 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2915 + // line internal/php7/php7.y:2585 { yyVAL.node = &ast.ExprAssignConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5382,12 +5050,10 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2926 + // line internal/php7/php7.y:2594 { yyVAL.node = &ast.ExprAssignMod{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5395,12 +5061,10 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2937 + // line internal/php7/php7.y:2603 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5408,12 +5072,10 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2948 + // line internal/php7/php7.y:2612 { yyVAL.node = &ast.ExprAssignBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5421,12 +5083,10 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2621 { yyVAL.node = &ast.ExprAssignBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5434,12 +5094,10 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2970 + // line internal/php7/php7.y:2630 { yyVAL.node = &ast.ExprAssignShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5447,12 +5105,10 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2981 + // line internal/php7/php7.y:2639 { yyVAL.node = &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5460,12 +5116,10 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2992 + // line internal/php7/php7.y:2648 { yyVAL.node = &ast.ExprAssignCoalesce{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5473,446 +5127,376 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3003 + // line internal/php7/php7.y:2657 { yyVAL.node = &ast.ExprPostInc{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), - }, - Var: yyDollar[1].node, - IncTkn: yyDollar[2].token, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Var: yyDollar[1].node, + IncTkn: yyDollar[2].token, } } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3013 + // line internal/php7/php7.y:2665 { yyVAL.node = &ast.ExprPreInc{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - IncTkn: yyDollar[1].token, - Var: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + IncTkn: yyDollar[1].token, + Var: yyDollar[2].node, } } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:2673 { yyVAL.node = &ast.ExprPostDec{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), - }, - Var: yyDollar[1].node, - DecTkn: yyDollar[2].token, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Var: yyDollar[1].node, + DecTkn: yyDollar[2].token, } } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3033 + // line internal/php7/php7.y:2681 { yyVAL.node = &ast.ExprPreDec{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - DecTkn: yyDollar[1].token, - Var: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + DecTkn: yyDollar[1].token, + Var: yyDollar[2].node, } } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3043 + // line internal/php7/php7.y:2689 { yyVAL.node = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3054 + // line internal/php7/php7.y:2698 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3065 + // line internal/php7/php7.y:2707 { yyVAL.node = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3076 + // line internal/php7/php7.y:2716 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3087 + // line internal/php7/php7.y:2725 { yyVAL.node = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3098 + // line internal/php7/php7.y:2734 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3109 + // line internal/php7/php7.y:2743 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3120 + // line internal/php7/php7.y:2752 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3131 + // line internal/php7/php7.y:2761 { yyVAL.node = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3142 + // line internal/php7/php7.y:2770 { yyVAL.node = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3153 + // line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3164 + // line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3175 + // line internal/php7/php7.y:2797 { yyVAL.node = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3186 + // line internal/php7/php7.y:2806 { yyVAL.node = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3197 + // line internal/php7/php7.y:2815 { yyVAL.node = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3208 + // line internal/php7/php7.y:2824 { yyVAL.node = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3219 + // line internal/php7/php7.y:2833 { yyVAL.node = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3230 + // line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - PlusTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + PlusTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3240 + // line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), MinusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3250 + // line internal/php7/php7.y:2858 { yyVAL.node = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExclamationTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3260 + // line internal/php7/php7.y:2866 { yyVAL.node = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), TildaTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3270 + // line internal/php7/php7.y:2874 { yyVAL.node = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3281 + // line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3292 + // line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3303 + // line internal/php7/php7.y:2901 { yyVAL.node = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3314 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3325 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:2928 { yyVAL.node = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3347 + // line internal/php7/php7.y:2937 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3358 + // line internal/php7/php7.y:2946 { yyVAL.node = &ast.ExprBinarySpaceship{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3369 + // line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Expr: yyDollar[1].node, InstanceOfTkn: yyDollar[2].token, Class: yyDollar[3].node, @@ -5920,12 +5504,10 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3380 + // line internal/php7/php7.y:2964 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -5933,18 +5515,16 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3391 + // line internal/php7/php7.y:2973 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3395 + // line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, @@ -5954,12 +5534,10 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3408 + // line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, @@ -5968,119 +5546,103 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3420 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprBinaryCoalesce{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, - Left: yyDollar[1].node, - OpTkn: yyDollar[2].token, - Right: yyDollar[3].node, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Left: yyDollar[1].node, + OpTkn: yyDollar[2].token, + Right: yyDollar[3].node, } } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3007 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3435 + // line internal/php7/php7.y:3011 { yyVAL.node = &ast.ExprCastInt{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3445 + // line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprCastDouble{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3455 + // line internal/php7/php7.y:3027 { yyVAL.node = &ast.ExprCastString{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3465 + // line internal/php7/php7.y:3035 { yyVAL.node = &ast.ExprCastArray{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3475 + // line internal/php7/php7.y:3043 { yyVAL.node = &ast.ExprCastObject{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3485 + // line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprCastBool{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3495 + // line internal/php7/php7.y:3059 { yyVAL.node = &ast.ExprCastUnset{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - CastTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + CastTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3505 + // line internal/php7/php7.y:3067 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, } if yyDollar[2].node == nil { - exit.Node.Position = position.NewTokenPosition(yyDollar[1].token) + exit.Position = position.NewTokenPosition(yyDollar[1].token) } else { - exit.Node.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn @@ -6090,30 +5652,26 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3522 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, - AtTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + AtTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3532 + // line internal/php7/php7.y:3092 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3536 + // line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprShellExec{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBacktickTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseBacktickTkn: yyDollar[3].token, @@ -6121,47 +5679,39 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3547 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprPrint{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), PrintTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3557 + // line internal/php7/php7.y:3113 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), YieldTkn: yyDollar[1].token, } } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3566 + // line internal/php7/php7.y:3120 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, Value: yyDollar[2].node, } } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3576 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, @@ -6170,25 +5720,23 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3588 + // line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprYieldFrom{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldFromTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3598 + // line internal/php7/php7.y:3146 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3602 + // line internal/php7/php7.y:3150 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -6203,12 +5751,10 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3618 + // line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[4].token, @@ -6225,12 +5771,10 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3638 + // line internal/php7/php7.y:3184 { yyVAL.node = &ast.ExprArrowFunction{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), FnTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, @@ -6245,30 +5789,28 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3663 + // line internal/php7/php7.y:3207 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3667 + // line internal/php7/php7.y:3211 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3674 + // line internal/php7/php7.y:3218 { yyVAL.node = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3678 + // line internal/php7/php7.y:3222 { yyVAL.node = &ast.ExprClosureUse{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Uses: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6278,7 +5820,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3694 + // line internal/php7/php7.y:3236 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6287,7 +5829,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3701 + // line internal/php7/php7.y:3243 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6295,16 +5837,12 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3710 + // line internal/php7/php7.y:3252 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6312,21 +5850,15 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3725 + // line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), AmpersandTkn: yyDollar[1].token, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6335,12 +5867,10 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3749 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -6350,12 +5880,10 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3762 + // line internal/php7/php7.y:3292 { yyVAL.node = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6367,12 +5895,10 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3777 + // line internal/php7/php7.y:3305 { yyVAL.node = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6384,12 +5910,10 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3792 + // line internal/php7/php7.y:3318 { yyVAL.node = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -6399,48 +5923,44 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3808 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3340 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3825 + // line internal/php7/php7.y:3347 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3351 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3836 + // line internal/php7/php7.y:3358 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3840 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6448,19 +5968,17 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3854 + // line internal/php7/php7.y:3374 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3858 + // line internal/php7/php7.y:3378 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6468,30 +5986,28 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3870 + // line internal/php7/php7.y:3388 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3877 + // line internal/php7/php7.y:3395 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3881 + // line internal/php7/php7.y:3399 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3888 + // line internal/php7/php7.y:3406 { yyVAL.node = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6501,12 +6017,10 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3901 + // line internal/php7/php7.y:3417 { yyVAL.node = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6515,150 +6029,124 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3913 + // line internal/php7/php7.y:3427 { yyVAL.node = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3926 + // line internal/php7/php7.y:3438 { yyVAL.node = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3936 + // line internal/php7/php7.y:3446 { yyVAL.node = &ast.ScalarDnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3454 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3462 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3470 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3976 + // line internal/php7/php7.y:3478 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3986 + // line internal/php7/php7.y:3486 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3996 + // line internal/php7/php7.y:3494 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4006 + // line internal/php7/php7.y:3502 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4016 + // line internal/php7/php7.y:3510 { yyVAL.node = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4026 + // line internal/php7/php7.y:3518 { yyVAL.node = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6668,24 +6156,20 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4045 + // line internal/php7/php7.y:3533 { yyVAL.node = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenHeredocTkn: yyDollar[1].token, CloseHeredocTkn: yyDollar[2].token, } } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4055 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenQoteTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseQoteTkn: yyDollar[1].token, @@ -6693,12 +6177,10 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4066 + // line internal/php7/php7.y:3550 { yyVAL.node = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseHeredocTkn: yyDollar[3].token, @@ -6706,41 +6188,35 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4077 + // line internal/php7/php7.y:3559 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4081 + // line internal/php7/php7.y:3563 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4088 + // line internal/php7/php7.y:3570 { yyVAL.node = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Const: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Const: yyDollar[1].node, } } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4097 + // line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -6748,18 +6224,14 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4114 + // line internal/php7/php7.y:3590 { yyVAL.node = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -6767,48 +6239,46 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4134 + // line internal/php7/php7.y:3606 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4138 + // line internal/php7/php7.y:3610 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4145 + // line internal/php7/php7.y:3617 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4149 + // line internal/php7/php7.y:3621 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4156 + // line internal/php7/php7.y:3628 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4163 + // line internal/php7/php7.y:3635 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4167 + // line internal/php7/php7.y:3639 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6816,24 +6286,22 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4178 + // line internal/php7/php7.y:3648 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4185 + // line internal/php7/php7.y:3655 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4189 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6841,24 +6309,22 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4200 + // line internal/php7/php7.y:3668 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4207 + // line internal/php7/php7.y:3675 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4211 + // line internal/php7/php7.y:3679 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6867,12 +6333,10 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4223 + // line internal/php7/php7.y:3689 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6881,12 +6345,10 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4235 + // line internal/php7/php7.y:3699 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6895,12 +6357,10 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4247 + // line internal/php7/php7.y:3709 { yyVAL.node = &ast.ExprMethodCall{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Method: yyDollar[3].node, @@ -6912,30 +6372,28 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4262 + // line internal/php7/php7.y:3722 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4269 + // line internal/php7/php7.y:3729 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4273 + // line internal/php7/php7.y:3733 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4277 + // line internal/php7/php7.y:3737 { yyVAL.node = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -6943,16 +6401,12 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4291 + // line internal/php7/php7.y:3749 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6960,17 +6414,13 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4306 + // line internal/php7/php7.y:3760 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), OpenBracketTkn: yyDollar[2].token, Child: yyDollar[3].node, CloseBracketTkn: yyDollar[4].token, @@ -6979,24 +6429,20 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4323 + // line internal/php7/php7.y:3773 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DollarTkn: yyDollar[1].token, VarName: yyDollar[2].node, } } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4336 + // line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -7004,12 +6450,10 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4347 + // line internal/php7/php7.y:3793 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -7017,18 +6461,16 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4361 + // line internal/php7/php7.y:3805 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4365 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7037,12 +6479,10 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4377 + // line internal/php7/php7.y:3819 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7051,12 +6491,10 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4389 + // line internal/php7/php7.y:3829 { yyVAL.node = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -7064,12 +6502,10 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4400 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -7077,12 +6513,10 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4411 + // line internal/php7/php7.y:3847 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -7090,24 +6524,20 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4425 + // line internal/php7/php7.y:3859 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4435 + // line internal/php7/php7.y:3867 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7115,30 +6545,26 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4446 + // line internal/php7/php7.y:3876 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4453 + // line internal/php7/php7.y:3883 { yyVAL.node = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4463 + // line internal/php7/php7.y:3891 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7146,13 +6572,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4474 + // line internal/php7/php7.y:3900 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4481 + // line internal/php7/php7.y:3907 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7165,19 +6591,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4495 + // line internal/php7/php7.y:3921 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4499 + // line internal/php7/php7.y:3925 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4506 + // line internal/php7/php7.y:3932 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7186,7 +6612,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4513 + // line internal/php7/php7.y:3939 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7194,12 +6620,10 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4522 + // line internal/php7/php7.y:3948 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: yyDollar[3].node, @@ -7207,29 +6631,23 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4533 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[1].node), - }, - Val: yyDollar[1].node, + Position: position.NewNodePosition(yyDollar[1].node), + Val: yyDollar[1].node, } } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4542 + // line internal/php7/php7.y:3964 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - }, + Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - }, + Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), AmpersandTkn: yyDollar[3].token, Var: yyDollar[4].node, }, @@ -7237,16 +6655,12 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4559 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, }, @@ -7254,30 +6668,24 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4574 + // line internal/php7/php7.y:3988 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), EllipsisTkn: yyDollar[1].token, Val: yyDollar[2].node, } } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4584 + // line internal/php7/php7.y:3996 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), - }, + Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), - }, + Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), ListTkn: yyDollar[3].token, OpenBracketTkn: yyDollar[4].token, Items: yyDollar[5].node.(*ast.ParserSeparatedList).Items, @@ -7288,16 +6696,12 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4604 + // line internal/php7/php7.y:4012 { yyVAL.node = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -7308,20 +6712,18 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4625 + // line internal/php7/php7.y:4029 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4629 + // line internal/php7/php7.y:4033 { yyVAL.list = append( yyDollar[1].list, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -7329,19 +6731,17 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4642 + // line internal/php7/php7.y:4044 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4646 + // line internal/php7/php7.y:4048 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7350,16 +6750,12 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4662 + // line internal/php7/php7.y:4062 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7367,20 +6763,14 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4677 + // line internal/php7/php7.y:4073 { yyVAL.node = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7392,29 +6782,21 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4700 + // line internal/php7/php7.y:4090 { yyVAL.node = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, }, ObjectOperatorTkn: yyDollar[2].token, Property: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[3].token), - }, + Position: position.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -7422,39 +6804,29 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4728 + // line internal/php7/php7.y:4110 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewNodePosition(yyDollar[2].node), - }, - VarName: yyDollar[2].node, + Position: position.NewNodePosition(yyDollar[2].node), + VarName: yyDollar[2].node, }, CloseBracketTkn: yyDollar[3].token, } } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4744 + // line internal/php7/php7.y:4122 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -7464,25 +6836,17 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4766 + // line internal/php7/php7.y:4138 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), - }, + Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -7496,12 +6860,10 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4796 + // line internal/php7/php7.y:4160 { yyVAL.node = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7509,34 +6871,28 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4810 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4820 + // line internal/php7/php7.y:4180 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { yyVAL.node = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } else { yyVAL.node = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } @@ -7544,31 +6900,24 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4841 + // line internal/php7/php7.y:4197 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil if isInt { yyVAL.node = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), MinusTkn: yyDollar[1].token, Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[2].token), - }, + Position: position.NewTokenPosition(yyDollar[2].token), NumberTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, } - yyVAL.node.GetNode().Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token) } else { yyVAL.node = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), MinusTkn: yyDollar[1].token, StringTkn: yyDollar[2].token, Value: append([]byte("-"), yyDollar[2].token.Value...), @@ -7577,16 +6926,12 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4872 + // line internal/php7/php7.y:4221 { yyVAL.node = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition(yyDollar[1].token), - }, + Position: position.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7594,16 +6939,14 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4890 + // line internal/php7/php7.y:4235 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) } yyVAL.node = &ast.ExprIsset{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), IssetTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -7613,12 +6956,10 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4907 + // line internal/php7/php7.y:4250 { yyVAL.node = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EmptyTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -7627,36 +6968,30 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4919 + // line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprInclude{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4929 + // line internal/php7/php7.y:4268 { yyVAL.node = &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4939 + // line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprEval{ - Node: ast.Node{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - }, + Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EvalTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -7665,31 +7000,27 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4951 + // line internal/php7/php7.y:4286 { yyVAL.node = &ast.ExprRequire{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4961 + // line internal/php7/php7.y:4294 { yyVAL.node = &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - }, + Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireOnceTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4974 + // line internal/php7/php7.y:4305 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7697,7 +7028,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4980 + // line internal/php7/php7.y:4311 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7706,7 +7037,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4990 + // line internal/php7/php7.y:4321 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 9b99da7..5ad2f47 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -283,9 +283,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = &ast.Root{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1), - }, + Position: position.NewNodeListPosition($1), Stmts: $1, EndTkn: yylex.(*Parser).currentToken, } @@ -293,12 +291,12 @@ start: ; reserved_non_modifiers: - T_INCLUDE {$$=$1} | T_INCLUDE_ONCE {$$=$1} | T_EVAL {$$=$1} | T_REQUIRE {$$=$1} | T_REQUIRE_ONCE {$$=$1} | T_LOGICAL_OR {$$=$1} | T_LOGICAL_XOR {$$=$1} | T_LOGICAL_AND {$$=$1} - | T_INSTANCEOF {$$=$1} | T_NEW {$$=$1} | T_CLONE {$$=$1} | T_EXIT {$$=$1} | T_IF {$$=$1} | T_ELSEIF {$$=$1} | T_ELSE {$$=$1} | T_ENDIF {$$=$1} | T_ECHO {$$=$1} | T_DO {$$=$1} | T_WHILE {$$=$1} | T_ENDWHILE {$$=$1} - | T_FOR {$$=$1} | T_ENDFOR {$$=$1} | T_FOREACH {$$=$1} | T_ENDFOREACH {$$=$1} | T_DECLARE {$$=$1} | T_ENDDECLARE {$$=$1} | T_AS {$$=$1} | T_TRY {$$=$1} | T_CATCH {$$=$1} | T_FINALLY {$$=$1} - | 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_INCLUDE {$$=$1} | T_INCLUDE_ONCE {$$=$1} | T_EVAL {$$=$1} | T_REQUIRE {$$=$1} | T_REQUIRE_ONCE {$$=$1} | T_LOGICAL_OR {$$=$1} | T_LOGICAL_XOR {$$=$1} | T_LOGICAL_AND {$$=$1} + | T_INSTANCEOF {$$=$1} | T_NEW {$$=$1} | T_CLONE {$$=$1} | T_EXIT {$$=$1} | T_IF {$$=$1} | T_ELSEIF {$$=$1} | T_ELSE {$$=$1} | T_ENDIF {$$=$1} | T_ECHO {$$=$1} | T_DO {$$=$1} | T_WHILE {$$=$1} | T_ENDWHILE {$$=$1} + | T_FOR {$$=$1} | T_ENDFOR {$$=$1} | T_FOREACH {$$=$1} | T_ENDFOREACH {$$=$1} | T_DECLARE {$$=$1} | T_ENDDECLARE {$$=$1} | T_AS {$$=$1} | T_TRY {$$=$1} | T_CATCH {$$=$1} | T_FINALLY {$$=$1} + | 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_FN {$$=$1} ; @@ -340,9 +338,7 @@ namespace_name: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -352,9 +348,7 @@ namespace_name: | namespace_name T_NS_SEPARATOR T_STRING { part := &ast.NameNamePart{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, } @@ -370,9 +364,7 @@ name: namespace_name { $$ = &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -380,9 +372,7 @@ name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -392,9 +382,7 @@ name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -431,9 +419,7 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -443,14 +429,10 @@ top_statement: | T_NAMESPACE namespace_name ';' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -460,14 +442,10 @@ top_statement: | T_NAMESPACE namespace_name '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -479,9 +457,7 @@ top_statement: | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), NsTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -492,7 +468,7 @@ top_statement: { use := $2.(*ast.StmtGroupUse) - use.Node.Position = position.NewTokensPosition($1, $3) + use.Position = position.NewTokensPosition($1, $3) use.UseTkn = $1 use.SemiColonTkn = $3 @@ -502,7 +478,7 @@ top_statement: { use := $3.(*ast.StmtGroupUse) - use.Node.Position = position.NewTokensPosition($1, $4) + use.Position = position.NewTokensPosition($1, $4) use.UseTkn = $1 use.Type = $2 use.SemiColonTkn = $4 @@ -512,9 +488,7 @@ top_statement: | T_USE use_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), UseTkn: $1, UseDeclarations: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -524,9 +498,7 @@ top_statement: | T_USE use_type use_declarations ';' { $$ = &ast.StmtUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, Type: $2, UseDeclarations: $3.(*ast.ParserSeparatedList).Items, @@ -537,9 +509,7 @@ top_statement: | T_CONST const_list ';' { $$ = &ast.StmtConstList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ConstTkn: $1, Consts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -552,9 +522,7 @@ use_type: T_FUNCTION { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -562,9 +530,7 @@ use_type: | T_CONST { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -577,13 +543,9 @@ group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -599,14 +561,10 @@ group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -625,13 +583,9 @@ mixed_group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -647,14 +601,10 @@ mixed_group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -735,7 +685,7 @@ inline_use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.Type = $1 - decl.Node.Position = position.NewNodesPosition($1, $2) + decl.Position = position.NewNodesPosition($1, $2) $$ = $2 } @@ -745,13 +695,9 @@ unprefixed_use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -760,21 +706,15 @@ unprefixed_use_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), - }, + Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Node: ast.Node{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -791,7 +731,7 @@ use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = $1 - decl.Node.Position = position.NewTokenNodePosition($1, $2) + decl.Position = position.NewTokenNodePosition($1, $2) $$ = $2 } @@ -855,9 +795,7 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -869,9 +807,7 @@ statement: '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -891,16 +827,14 @@ statement: $5.(*ast.StmtWhile).OpenParenthesisTkn = $2 $5.(*ast.StmtWhile).Cond = $3 $5.(*ast.StmtWhile).CloseParenthesisTkn = $4 - $5.(*ast.StmtWhile).Node.Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $5) $$ = $5 } | T_DO statement T_WHILE '(' expr ')' ';' { $$ = &ast.StmtDo{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -923,7 +857,7 @@ statement: $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 - $9.(*ast.StmtFor).Node.Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) $$ = $9 } @@ -933,16 +867,14 @@ statement: $5.(*ast.StmtSwitch).OpenParenthesisTkn = $2 $5.(*ast.StmtSwitch).Cond = $3 $5.(*ast.StmtSwitch).CloseParenthesisTkn = $4 - $5.(*ast.StmtSwitch).Node.Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $5) $$ = $5 } | T_BREAK optional_expr ';' { $$ = &ast.StmtBreak{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -951,9 +883,7 @@ statement: | T_CONTINUE optional_expr ';' { $$ = &ast.StmtContinue{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -962,9 +892,7 @@ statement: | T_RETURN optional_expr ';' { $$ = &ast.StmtReturn{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -974,7 +902,7 @@ statement: { $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 - $2.(*ast.StmtGlobal).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -982,7 +910,7 @@ statement: { $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 - $2.(*ast.StmtStatic).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) $$ = $2 } @@ -990,16 +918,14 @@ statement: { $2.(*ast.StmtEcho).EchoTkn = $1 $2.(*ast.StmtEcho).SemiColonTkn = $3 - $2.(*ast.StmtEcho).Node.Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtEcho).Position = position.NewTokensPosition($1, $3) $$ = $2 } | T_INLINE_HTML { $$ = &ast.StmtInlineHtml{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), InlineHtmlTkn: $1, Value: $1.Value, } @@ -1007,9 +933,7 @@ statement: | expr ';' { $$ = &ast.StmtExpression{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -1021,7 +945,7 @@ statement: $3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4) $3.(*ast.StmtUnset).CloseParenthesisTkn = $5 $3.(*ast.StmtUnset).SemiColonTkn = $6 - $3.(*ast.StmtUnset).Node.Position = position.NewTokensPosition($1, $6) + $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $6) $$ = $3 } @@ -1033,7 +957,7 @@ statement: $7.(*ast.StmtForeach).AsTkn = $4 $7.(*ast.StmtForeach).Var = $5 $7.(*ast.StmtForeach).CloseParenthesisTkn = $6 - $7.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $7) + $7.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $7) $$ = $7 } @@ -1047,7 +971,7 @@ statement: $9.(*ast.StmtForeach).DoubleArrowTkn = $6 $9.(*ast.StmtForeach).Var = $7 $9.(*ast.StmtForeach).CloseParenthesisTkn = $8 - $9.(*ast.StmtForeach).Node.Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $9) $$ = $9 } @@ -1058,22 +982,26 @@ statement: $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 - $5.(*ast.StmtDeclare).Node.Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtDeclare).Position = position.NewTokenNodePosition($1, $5) $$ = $5 } | ';' { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { + pos := position.NewTokenNodeListPosition($1, $5) + if $6 != nil { + pos = position.NewTokenNodePosition($1, $6) + } + $$ = &ast.StmtTry{ + Position: pos, TryTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -1081,19 +1009,11 @@ statement: Catches: $5, Finally: $6, } - - if $6 == nil { - $$.GetNode().Position = position.NewTokenNodeListPosition($1, $5) - } else { - $$.GetNode().Position = position.NewTokenNodePosition($1, $6) - } } | T_THROW expr ';' { $$ = &ast.StmtThrow{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), ThrowTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1102,14 +1022,10 @@ statement: | T_GOTO T_STRING ';' { $$ = &ast.StmtGoto{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), GotoTkn: $1, Label: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1119,13 +1035,9 @@ statement: | T_STRING ':' { $$ = &ast.StmtLabel{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), LabelName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1144,13 +1056,9 @@ catch_list: catch.CatchTkn = $2 catch.OpenParenthesisTkn = $3 catch.Var = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($5), - }, + Position: position.NewTokenPosition($5), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($5), - }, + Position: position.NewTokenPosition($5), IdentifierTkn: $5, Value: $5.Value, }, @@ -1159,7 +1067,7 @@ catch_list: catch.OpenCurlyBracketTkn = $7 catch.Stmts = $8 catch.CloseCurlyBracketTkn = $9 - catch.GetNode().Position = position.NewTokensPosition($2, $9) + catch.Position = position.NewTokensPosition($2, $9) $$ = append($1, catch) } @@ -1188,9 +1096,7 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = &ast.StmtFinally{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), FinallyTkn: $1, OpenCurlyBracketTkn: $2, Stmts: $3, @@ -1226,15 +1132,11 @@ function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $11), - }, + Position: position.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1277,15 +1179,11 @@ class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewOptionalListTokensPosition($1, $2, $9), - }, + Position: position.NewOptionalListTokensPosition($1, $2, $9), Modifiers: $1, ClassTkn: $2, ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1299,14 +1197,10 @@ class_declaration_statement: | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), ClassTkn: $1, ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1334,9 +1228,7 @@ class_modifier: T_ABSTRACT { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1344,9 +1236,7 @@ class_modifier: | T_FINAL { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1357,14 +1247,10 @@ trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtTrait{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), TraitTkn: $1, TraitName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1379,14 +1265,10 @@ interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $7), - }, + Position: position.NewTokensPosition($1, $7), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1406,9 +1288,7 @@ extends_from: | T_EXTENDS name { $$ = &ast.StmtClassExtends{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1423,9 +1303,7 @@ interface_extends_list: | T_EXTENDS name_list { $$ = &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ExtendsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1441,9 +1319,7 @@ implements_list: | T_IMPLEMENTS name_list { $$ = &ast.StmtClassImplements{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ImplementsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1459,9 +1335,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1469,9 +1343,7 @@ foreach_variable: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1482,9 +1354,7 @@ foreach_variable: | '[' array_pair_list ']' { $$ = &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1497,24 +1367,18 @@ for_statement: statement { $$ = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOR ';' { $$ = &ast.StmtFor{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndForTkn: $3, @@ -1527,24 +1391,18 @@ foreach_statement: statement { $$ = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOREACH ';' { $$ = &ast.StmtForeach{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndForeachTkn: $3, @@ -1557,24 +1415,18 @@ declare_statement: statement { $$ = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = &ast.StmtDeclare{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndDeclareTkn: $3, @@ -1587,9 +1439,7 @@ switch_case_list: '{' case_list '}' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, CaseList: $2, CloseCurlyBracketTkn: $3, @@ -1598,9 +1448,7 @@ switch_case_list: | '{' ';' case_list '}' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1610,9 +1458,7 @@ switch_case_list: | ':' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, CaseList: $2, @@ -1623,9 +1469,7 @@ switch_case_list: | ':' ';' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, @@ -1644,9 +1488,7 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { $$ = append($1, &ast.StmtCase{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $5), - }, + Position: position.NewTokenNodeListPosition($2, $5), CaseTkn: $2, Cond: $3, CaseSeparatorTkn: $4, @@ -1656,9 +1498,7 @@ case_list: | case_list T_DEFAULT case_separator inner_statement_list { $$ = append($1, &ast.StmtDefault{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $4), - }, + Position: position.NewTokenNodeListPosition($2, $4), DefaultTkn: $2, CaseSeparatorTkn: $3, Stmts: $4, @@ -1681,24 +1521,18 @@ while_statement: statement { $$ = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDWHILE ';' { $$ = &ast.StmtWhile{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($2), - }, + Position: position.NewNodeListPosition($2), Stmts: $2, }, EndWhileTkn: $3, @@ -1711,9 +1545,7 @@ if_stmt_without_else: T_IF '(' expr ')' statement { $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $5), - }, + Position: position.NewTokenNodePosition($1, $5), IfTkn: $1, OpenParenthesisTkn: $2, Cond: $3, @@ -1724,9 +1556,7 @@ if_stmt_without_else: | if_stmt_without_else T_ELSEIF '(' expr ')' statement { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $6), - }, + Position: position.NewTokenNodePosition($2, $6), ElseIfTkn: $2, OpenParenthesisTkn: $3, Cond: $4, @@ -1734,7 +1564,7 @@ if_stmt_without_else: Stmt: $6, }) - $1.(*ast.StmtIf).Node.Position = position.NewNodesPosition($1, $6) + $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $6) $$ = $1 } @@ -1748,14 +1578,12 @@ if_stmt: | if_stmt_without_else T_ELSE statement { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($2, $3), - }, + Position: position.NewTokenNodePosition($2, $3), ElseTkn: $2, Stmt: $3, } - $1.(*ast.StmtIf).Node.Position = position.NewNodesPosition($1, $3) + $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $3) $$ = $1 } @@ -1765,9 +1593,7 @@ alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { $$ = &ast.StmtIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($1, $6), - }, + Position: position.NewTokenNodeListPosition($1, $6), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2, @@ -1775,9 +1601,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $4, ColonTkn: $5, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($6), - }, + Position: position.NewNodeListPosition($6), Stmts: $6, }, } @@ -1785,9 +1609,7 @@ alt_if_stmt_without_else: | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $7), - }, + Position: position.NewTokenNodeListPosition($2, $7), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3, @@ -1795,9 +1617,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $5, ColonTkn: $6, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($7), - }, + Position: position.NewNodeListPosition($7), Stmts: $7, }, }) @@ -1811,29 +1631,25 @@ alt_if_stmt: { $1.(*ast.StmtIf).EndIfTkn = $2 $1.(*ast.StmtIf).SemiColonTkn = $3 - $1.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition($1, $3) + $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $3) $$ = $1 } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Node: ast.Node{ - Position: position.NewTokenNodeListPosition($2, $4), - }, + Position: position.NewTokenNodeListPosition($2, $4), Alt: true, ElseTkn: $2, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewNodeListPosition($4), - }, + Position: position.NewNodeListPosition($4), Stmts: $4, }, } $1.(*ast.StmtIf).EndIfTkn = $5 $1.(*ast.StmtIf).SemiColonTkn = $6 - $1.(*ast.StmtIf).Node.Position = position.NewNodeTokenPosition($1, $6) + $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $6) $$ = $1 } @@ -1879,20 +1695,14 @@ parameter: } $$ = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: $1, AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1911,20 +1721,14 @@ parameter: } $$ = &ast.Parameter{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Type: $1, AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1954,9 +1758,7 @@ type_expr: | '?' type { $$ = &ast.Nullable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), QuestionTkn: $1, Expr: $2, } @@ -1967,9 +1769,7 @@ type: T_ARRAY { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1977,9 +1777,7 @@ type: | T_CALLABLE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2008,9 +1806,7 @@ argument_list: '(' ')' { $$ = &ast.ArgumentList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2047,18 +1843,14 @@ argument: expr { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Expr: $1, } } | T_ELLIPSIS expr { $$ = &ast.Argument{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -2109,17 +1901,11 @@ static_var: { $$ = &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2129,17 +1915,11 @@ static_var: | T_VARIABLE '=' expr { $$ = &ast.StmtStaticVar{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2165,9 +1945,7 @@ class_statement: variable_modifiers optional_type property_list ';' { $$ = &ast.StmtPropertyList{ - Node: ast.Node{ - Position: position.NewNodeListTokenPosition($1, $4), - }, + Position: position.NewNodeListTokenPosition($1, $4), Modifiers: $1, Type: $2, Properties: $3.(*ast.ParserSeparatedList).Items, @@ -2178,9 +1956,7 @@ class_statement: | method_modifiers T_CONST class_const_list ';' { $$ = &ast.StmtClassConstList{ - Node: ast.Node{ - Position: position.NewOptionalListTokensPosition($1, $2, $4), - }, + Position: position.NewOptionalListTokensPosition($1, $2, $4), Modifiers: $1, ConstTkn: $2, Consts: $3.(*ast.ParserSeparatedList).Items, @@ -2191,9 +1967,7 @@ class_statement: | T_USE name_list trait_adaptations { $$ = &ast.StmtTraitUse{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2204,20 +1978,16 @@ class_statement: { pos := position.NewTokenNodePosition($2, $10) if $1 != nil { - $$.GetNode().Position = position.NewNodeListNodePosition($1, $10) + pos = position.NewNodeListNodePosition($1, $10) } $$ = &ast.StmtClassMethod{ - Node: ast.Node{ - Position: pos, - }, + Position: pos, Modifiers: $1, FunctionTkn: $2, AmpersandTkn: $3, MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2252,18 +2022,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' '}' { $$ = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2271,9 +2037,7 @@ trait_adaptations: | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2311,9 +2075,7 @@ trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { $$ = &ast.StmtTraitUsePrecedence{ - Node: ast.Node{ - Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - }, + Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Ref: $1, InsteadofTkn: $2, Insteadof: $3.(*ast.ParserSeparatedList).Items, @@ -2326,15 +2088,11 @@ trait_alias: trait_method_reference T_AS T_STRING { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2343,15 +2101,11 @@ trait_alias: | trait_method_reference T_AS reserved_non_modifiers { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2360,16 +2114,12 @@ trait_alias: | trait_method_reference T_AS member_modifier identifier { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Ref: $1, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($4), - }, + Position: position.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2378,9 +2128,7 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Ref: $1, AsTkn: $2, Modifier: $3, @@ -2392,13 +2140,9 @@ trait_method_reference: identifier { $$ = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2414,15 +2158,11 @@ absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, Method: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2434,18 +2174,14 @@ method_body: ';' /* abstract method */ { $$ = &ast.StmtNop{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -2462,9 +2198,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2498,9 +2232,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2508,9 +2240,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2518,9 +2248,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2528,9 +2256,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2538,9 +2264,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2548,9 +2272,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2577,17 +2299,11 @@ property: T_VARIABLE backup_doc_comment { $$ = &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2598,17 +2314,11 @@ property: | T_VARIABLE '=' expr backup_doc_comment { $$ = &ast.StmtProperty{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2639,13 +2349,9 @@ class_const_decl: identifier '=' expr backup_doc_comment { $$ = &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2659,13 +2365,9 @@ const_decl: T_STRING '=' expr backup_doc_comment { $$ = &ast.StmtConstant{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2729,9 +2431,7 @@ anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $8), - }, + Position: position.NewTokensPosition($1, $8), ClassTkn: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -2751,9 +2451,7 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $3), - }, + Position: position.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, @@ -2763,9 +2461,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2774,9 +2470,7 @@ new_expr: | T_NEW anonymous_class { $$ = &ast.ExprNew{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2787,13 +2481,9 @@ expr_without_variable: T_LIST '(' array_pair_list ')' '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $6), - }, + Position: position.NewTokenNodePosition($1, $6), Var: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -2807,13 +2497,9 @@ expr_without_variable: | '[' array_pair_list ']' '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $5), - }, + Position: position.NewTokenNodePosition($1, $5), Var: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2826,9 +2512,7 @@ expr_without_variable: | variable '=' expr { $$ = &ast.ExprAssign{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2837,9 +2521,7 @@ expr_without_variable: | variable '=' '&' expr { $$ = &ast.ExprAssignReference{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2849,9 +2531,7 @@ expr_without_variable: | T_CLONE expr { $$ = &ast.ExprClone{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CloneTkn: $1, Expr: $2, } @@ -2859,9 +2539,7 @@ expr_without_variable: | variable T_PLUS_EQUAL expr { $$ = &ast.ExprAssignPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2870,9 +2548,7 @@ expr_without_variable: | variable T_MINUS_EQUAL expr { $$ = &ast.ExprAssignMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2881,9 +2557,7 @@ expr_without_variable: | variable T_MUL_EQUAL expr { $$ = &ast.ExprAssignMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2892,9 +2566,7 @@ expr_without_variable: | variable T_POW_EQUAL expr { $$ = &ast.ExprAssignPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2903,9 +2575,7 @@ expr_without_variable: | variable T_DIV_EQUAL expr { $$ = &ast.ExprAssignDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2914,9 +2584,7 @@ expr_without_variable: | variable T_CONCAT_EQUAL expr { $$ = &ast.ExprAssignConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2925,9 +2593,7 @@ expr_without_variable: | variable T_MOD_EQUAL expr { $$ = &ast.ExprAssignMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2936,9 +2602,7 @@ expr_without_variable: | variable T_AND_EQUAL expr { $$ = &ast.ExprAssignBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2947,9 +2611,7 @@ expr_without_variable: | variable T_OR_EQUAL expr { $$ = &ast.ExprAssignBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2958,9 +2620,7 @@ expr_without_variable: | variable T_XOR_EQUAL expr { $$ = &ast.ExprAssignBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2969,9 +2629,7 @@ expr_without_variable: | variable T_SL_EQUAL expr { $$ = &ast.ExprAssignShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2980,9 +2638,7 @@ expr_without_variable: | variable T_SR_EQUAL expr { $$ = &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2991,9 +2647,7 @@ expr_without_variable: | variable T_COALESCE_EQUAL expr { $$ = &ast.ExprAssignCoalesce{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -3002,9 +2656,7 @@ expr_without_variable: | variable T_INC { $$ = &ast.ExprPostInc{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -3012,9 +2664,7 @@ expr_without_variable: | T_INC variable { $$ = &ast.ExprPreInc{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -3022,9 +2672,7 @@ expr_without_variable: | variable T_DEC { $$ = &ast.ExprPostDec{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $2), - }, + Position: position.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -3032,9 +2680,7 @@ expr_without_variable: | T_DEC variable { $$ = &ast.ExprPreDec{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -3042,9 +2688,7 @@ expr_without_variable: | expr T_BOOLEAN_OR expr { $$ = &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3053,9 +2697,7 @@ expr_without_variable: | expr T_BOOLEAN_AND expr { $$ = &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3064,9 +2706,7 @@ expr_without_variable: | expr T_LOGICAL_OR expr { $$ = &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3075,9 +2715,7 @@ expr_without_variable: | expr T_LOGICAL_AND expr { $$ = &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3086,9 +2724,7 @@ expr_without_variable: | expr T_LOGICAL_XOR expr { $$ = &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3097,9 +2733,7 @@ expr_without_variable: | expr '|' expr { $$ = &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3108,9 +2742,7 @@ expr_without_variable: | expr '&' expr { $$ = &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3119,9 +2751,7 @@ expr_without_variable: | expr '^' expr { $$ = &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3130,9 +2760,7 @@ expr_without_variable: | expr '.' expr { $$ = &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3141,9 +2769,7 @@ expr_without_variable: | expr '+' expr { $$ = &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3152,9 +2778,7 @@ expr_without_variable: | expr '-' expr { $$ = &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3163,9 +2787,7 @@ expr_without_variable: | expr '*' expr { $$ = &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3174,9 +2796,7 @@ expr_without_variable: | expr T_POW expr { $$ = &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3185,9 +2805,7 @@ expr_without_variable: | expr '/' expr { $$ = &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3196,9 +2814,7 @@ expr_without_variable: | expr '%' expr { $$ = &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3207,9 +2823,7 @@ expr_without_variable: | expr T_SL expr { $$ = &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3218,9 +2832,7 @@ expr_without_variable: | expr T_SR expr { $$ = &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3229,9 +2841,7 @@ expr_without_variable: | '+' expr %prec T_INC { $$ = &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -3239,9 +2849,7 @@ expr_without_variable: | '-' expr %prec T_INC { $$ = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -3249,9 +2857,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -3259,9 +2865,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -3269,9 +2873,7 @@ expr_without_variable: | expr T_IS_IDENTICAL expr { $$ = &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3280,9 +2882,7 @@ expr_without_variable: | expr T_IS_NOT_IDENTICAL expr { $$ = &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3291,9 +2891,7 @@ expr_without_variable: | expr T_IS_EQUAL expr { $$ = &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3302,9 +2900,7 @@ expr_without_variable: | expr T_IS_NOT_EQUAL expr { $$ = &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3313,9 +2909,7 @@ expr_without_variable: | expr '<' expr { $$ = &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3324,9 +2918,7 @@ expr_without_variable: | expr T_IS_SMALLER_OR_EQUAL expr { $$ = &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3335,9 +2927,7 @@ expr_without_variable: | expr '>' expr { $$ = &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3346,9 +2936,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3357,9 +2945,7 @@ expr_without_variable: | expr T_SPACESHIP expr { $$ = &ast.ExprBinarySpaceship{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3368,9 +2954,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -3379,9 +2963,7 @@ expr_without_variable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3394,9 +2976,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $5), - }, + Position: position.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -3407,9 +2987,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -3419,9 +2997,7 @@ expr_without_variable: | expr T_COALESCE expr { $$ = &ast.ExprBinaryCoalesce{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3434,9 +3010,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3444,9 +3018,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3454,9 +3026,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3464,9 +3034,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3474,9 +3042,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3484,9 +3050,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3494,9 +3058,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3508,9 +3070,9 @@ expr_without_variable: } if $2 == nil { - exit.Node.Position = position.NewTokenPosition($1) + exit.Position = position.NewTokenPosition($1) } else { - exit.Node.Position = position.NewTokenNodePosition($1, $2) + exit.Position = position.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3521,9 +3083,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3535,9 +3095,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3546,9 +3104,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3556,18 +3112,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), YieldTkn: $1, } } | T_YIELD expr { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3575,9 +3127,7 @@ expr_without_variable: | T_YIELD expr T_DOUBLE_ARROW expr { $$ = &ast.ExprYield{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $4), - }, + Position: position.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3587,9 +3137,7 @@ expr_without_variable: | T_YIELD_FROM expr { $$ = &ast.ExprYieldFrom{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), YieldFromTkn: $1, Expr: $2, } @@ -3617,9 +3165,7 @@ inline_function: T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $11), - }, + Position: position.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $4, @@ -3637,9 +3183,7 @@ inline_function: | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr { $$ = &ast.ExprArrowFunction{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $9), - }, + Position: position.NewTokenNodePosition($1, $9), FnTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3677,9 +3221,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -3709,13 +3251,9 @@ lexical_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3724,18 +3262,12 @@ lexical_var: | '&' T_VARIABLE { $$ = &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3748,9 +3280,7 @@ function_call: name argument_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $2), - }, + Position: position.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3761,9 +3291,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3776,9 +3304,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3791,9 +3317,7 @@ function_call: | callable_expr argument_list { $$ = &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $2), - }, + Position: position.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3807,9 +3331,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3839,9 +3361,7 @@ exit_expr: | '(' optional_expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3858,9 +3378,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -3887,9 +3405,7 @@ dereferencable_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3900,9 +3416,7 @@ dereferencable_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3912,9 +3426,7 @@ dereferencable_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -3925,9 +3437,7 @@ scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3935,9 +3445,7 @@ scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3945,9 +3453,7 @@ scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3955,9 +3461,7 @@ scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3965,9 +3469,7 @@ scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3975,9 +3477,7 @@ scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3985,9 +3485,7 @@ scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3995,9 +3493,7 @@ scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4005,9 +3501,7 @@ scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4015,9 +3509,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4025,15 +3517,11 @@ scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4044,9 +3532,7 @@ scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -4054,9 +3540,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -4065,9 +3549,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -4087,24 +3569,18 @@ constant: name { $$ = &ast.ExprConstFetch{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Const: $1, } } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4113,15 +3589,11 @@ constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $3), - }, + Position: position.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4166,9 +3638,7 @@ dereferencable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4188,9 +3658,7 @@ callable_expr: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4210,9 +3678,7 @@ callable_variable: | dereferencable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4222,9 +3688,7 @@ callable_variable: | constant '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4234,9 +3698,7 @@ callable_variable: | dereferencable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4246,9 +3708,7 @@ callable_variable: | dereferencable T_OBJECT_OPERATOR property_name argument_list { $$ = &ast.ExprMethodCall{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Var: $1, ObjectOperatorTkn: $2, Method: $3, @@ -4276,9 +3736,7 @@ variable: | dereferencable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -4290,13 +3748,9 @@ simple_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4305,14 +3759,10 @@ simple_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $4), - }, + Position: position.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -4322,9 +3772,7 @@ simple_variable: | '$' simple_variable { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -4335,9 +3783,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4346,9 +3792,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4364,9 +3808,7 @@ new_variable: | new_variable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4376,9 +3818,7 @@ new_variable: | new_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $4), - }, + Position: position.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4388,9 +3828,7 @@ new_variable: | new_variable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -4399,9 +3837,7 @@ new_variable: | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4410,9 +3846,7 @@ new_variable: | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4424,9 +3858,7 @@ member_name: identifier { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -4434,9 +3866,7 @@ member_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4452,9 +3882,7 @@ property_name: T_STRING { $$ = &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -4462,9 +3890,7 @@ property_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4521,9 +3947,7 @@ array_pair: expr T_DOUBLE_ARROW expr { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $3), - }, + Position: position.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -4532,24 +3956,18 @@ array_pair: | expr { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodePosition($1), - }, + Position: position.NewNodePosition($1), Val: $1, } } | expr T_DOUBLE_ARROW '&' variable { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodesPosition($1, $4), - }, + Position: position.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($3, $4), - }, + Position: position.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -4558,13 +3976,9 @@ array_pair: | '&' variable { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -4573,9 +3987,7 @@ array_pair: | T_ELLIPSIS expr { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), EllipsisTkn: $1, Val: $2, } @@ -4583,15 +3995,11 @@ array_pair: | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewNodeTokenPosition($1, $6), - }, + Position: position.NewNodeTokenPosition($1, $6), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($3, $6), - }, + Position: position.NewTokensPosition($3, $6), ListTkn: $3, OpenBracketTkn: $4, Items: $5.(*ast.ParserSeparatedList).Items, @@ -4603,13 +4011,9 @@ array_pair: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4630,9 +4034,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4646,9 +4048,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -4661,13 +4061,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4676,17 +4072,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4699,26 +4089,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($3), - }, + Position: position.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4727,14 +4109,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewNodePosition($2), - }, + Position: position.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -4743,18 +4121,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4765,22 +4137,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $6), - }, + Position: position.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: position.NewTokensPosition($2, $5), - }, + Position: position.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4795,9 +4159,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $3), - }, + Position: position.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4809,9 +4171,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4821,17 +4181,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4844,24 +4200,17 @@ encaps_var_offset: if isInt { $$ = &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), MinusTkn: $1, Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: position.NewTokenPosition($2), - }, + Position: position.NewTokenPosition($2), NumberTkn: $2, Value: $2.Value, }, } - $$.GetNode().Position = position.NewTokensPosition($1, $2) } else { $$ = &ast.ScalarString{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $2), - }, + Position: position.NewTokensPosition($1, $2), MinusTkn: $1, StringTkn: $2, Value: append([]byte("-"), $2.Value...), @@ -4871,13 +4220,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), VarName: &ast.Identifier{ - Node: ast.Node{ - Position: position.NewTokenPosition($1), - }, + Position: position.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4893,9 +4238,7 @@ internal_functions_in_yacc: } $$ = &ast.ExprIsset{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $5), - }, + Position: position.NewTokensPosition($1, $5), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -4906,9 +4249,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4918,9 +4259,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4928,9 +4267,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4938,9 +4275,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Node: ast.Node{ - Position: position.NewTokensPosition($1, $4), - }, + Position: position.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4950,9 +4285,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -4960,9 +4293,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: position.NewTokenNodePosition($1, $2), - }, + Position: position.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } diff --git a/internal/position/position.go b/internal/position/position.go index 2603826..888f24b 100644 --- a/internal/position/position.go +++ b/internal/position/position.go @@ -36,7 +36,7 @@ func getNodeStartPos(n ast.Vertex) startPos { return startPos{-1, -1} } - p := n.GetNode().Position + p := n.GetPosition() if p != nil { sl = p.StartLine sp = p.StartPos @@ -65,7 +65,7 @@ func getNodeEndPos(n ast.Vertex) endPos { return endPos{-1, -1} } - p := n.GetNode().Position + p := n.GetPosition() if p != nil { el = p.EndLine ep = p.EndPos diff --git a/internal/position/position_test.go b/internal/position/position_test.go index 1fd6c83..fcd2681 100644 --- a/internal/position/position_test.go +++ b/internal/position/position_test.go @@ -23,9 +23,7 @@ func TestNewTokenPosition(t *testing.T) { pos := builder.NewTokenPosition(tkn) - assert.DeepEqual(t, &position.Position{1, 1, 0, 3}, pos) - - assert.DeepEqual(t, &position.Position{1, 1, 0, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 1, EndPos: 3}, pos) } func TestNewTokensPosition(t *testing.T) { @@ -50,24 +48,22 @@ func TestNewTokensPosition(t *testing.T) { pos := builder.NewTokensPosition(token1, token2) - assert.DeepEqual(t, &position.Position{1, 2, 0, 6}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 6}, pos) } func TestNewNodePosition(t *testing.T) { n := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 3, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 3, }, } pos := builder.NewNodePosition(n) - assert.DeepEqual(t, &position.Position{1, 1, 0, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 1, EndPos: 3}, pos) } func TestNewTokenNodePosition(t *testing.T) { @@ -81,30 +77,26 @@ func TestNewTokenNodePosition(t *testing.T) { }, } n := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 4, - EndPos: 12, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 4, + EndPos: 12, }, } pos := builder.NewTokenNodePosition(tkn, n) - assert.DeepEqual(t, &position.Position{1, 2, 0, 12}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 12}, pos) } func TestNewNodeTokenPosition(t *testing.T) { n := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } @@ -120,85 +112,73 @@ func TestNewNodeTokenPosition(t *testing.T) { pos := builder.NewNodeTokenPosition(n, tkn) - assert.DeepEqual(t, &position.Position{1, 2, 0, 12}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 12}, pos) } func TestNewNodeListPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 19, }, } pos := builder.NewNodeListPosition([]ast.Vertex{n1, n2}) - assert.DeepEqual(t, &position.Position{1, 2, 0, 19}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 19}, pos) } func TestNewNodesPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 19, }, } pos := builder.NewNodesPosition(n1, n2) - assert.DeepEqual(t, &position.Position{1, 2, 0, 19}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 19}, pos) } func TestNewNodeListTokenPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 9, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 9, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 10, - EndPos: 19, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 10, + EndPos: 19, }, } @@ -214,7 +194,7 @@ func TestNewNodeListTokenPosition(t *testing.T) { pos := builder.NewNodeListTokenPosition([]ast.Vertex{n1, n2}, tkn) - assert.DeepEqual(t, &position.Position{1, 3, 0, 22}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 22}, pos) } func TestNewTokenNodeListPosition(t *testing.T) { @@ -229,106 +209,90 @@ func TestNewTokenNodeListPosition(t *testing.T) { } n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 10, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 3, + EndPos: 10, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 11, - EndPos: 20, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 11, + EndPos: 20, }, } pos := builder.NewTokenNodeListPosition(tkn, []ast.Vertex{n1, n2}) - assert.DeepEqual(t, &position.Position{1, 3, 0, 20}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 20}, pos) } func TestNewNodeNodeListPosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 17, }, } n3 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 18, + EndPos: 26, }, } pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{n2, n3}) - assert.DeepEqual(t, &position.Position{1, 3, 0, 26}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 26}, pos) } func TestNewNodeListNodePosition(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 17, }, } n3 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 18, + EndPos: 26, }, } pos := builder.NewNodeListNodePosition([]ast.Vertex{n1, n2}, n3) - assert.DeepEqual(t, &position.Position{1, 3, 0, 26}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 26}, pos) } func TestNewOptionalListTokensPosition(t *testing.T) { @@ -353,28 +317,24 @@ func TestNewOptionalListTokensPosition(t *testing.T) { pos := builder.NewOptionalListTokensPosition(nil, token1, token2) - assert.DeepEqual(t, &position.Position{1, 2, 0, 6}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 6}, pos) } func TestNewOptionalListTokensPosition2(t *testing.T) { n2 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 9, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 9, + EndPos: 17, }, } n3 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 18, - EndPos: 26, - }, + Position: &position.Position{ + StartLine: 3, + EndLine: 3, + StartPos: 18, + EndPos: 26, }, } @@ -399,34 +359,32 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { pos := builder.NewOptionalListTokensPosition([]ast.Vertex{n2, n3}, token1, token2) - assert.DeepEqual(t, &position.Position{2, 5, 9, 32}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 2, EndLine: 5, StartPos: 9, EndPos: 32}, pos) } func TestNilNodePos(t *testing.T) { pos := builder.NewNodesPosition(nil, nil) - assert.DeepEqual(t, &position.Position{-1, -1, -1, -1}, pos) + assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: -1, StartPos: -1, EndPos: -1}, pos) } func TestNilNodeListPos(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } pos := builder.NewNodeNodeListPosition(n1, nil) - assert.DeepEqual(t, &position.Position{1, -1, 0, -1}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: -1, EndPos: -1}, pos) } func TestNilNodeListTokenPos(t *testing.T) { - token := &token.Token{ + tkn := &token.Token{ Value: []byte(`foo`), Position: &position.Position{ StartLine: 1, @@ -436,30 +394,28 @@ func TestNilNodeListTokenPos(t *testing.T) { }, } - pos := builder.NewNodeListTokenPosition(nil, token) + pos := builder.NewNodeListTokenPosition(nil, tkn) - assert.DeepEqual(t, &position.Position{-1, 1, -1, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: 1, StartPos: -1, EndPos: 3}, pos) } func TestEmptyNodeListPos(t *testing.T) { n1 := &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 8, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 0, + EndPos: 8, }, } pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{}) - assert.DeepEqual(t, &position.Position{1, -1, 0, -1}, pos) + assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: -1, EndPos: -1}, pos) } func TestEmptyNodeListTokenPos(t *testing.T) { - token := &token.Token{ + tkn := &token.Token{ Value: []byte(`foo`), Position: &position.Position{ StartLine: 1, @@ -469,7 +425,7 @@ func TestEmptyNodeListTokenPos(t *testing.T) { }, } - pos := builder.NewNodeListTokenPosition([]ast.Vertex{}, token) + pos := builder.NewNodeListTokenPosition([]ast.Vertex{}, tkn) - assert.DeepEqual(t, &position.Position{-1, 1, -1, 3}, pos) + assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: 1, StartPos: -1, EndPos: 3}, pos) } diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index b711aaa..c689909 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -1,8 +1,10 @@ package ast +import "github.com/z7zmey/php-parser/pkg/position" + type Vertex interface { Accept(v NodeVisitor) - GetNode() *Node + GetPosition() *position.Position } type Traverser interface { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index b375c45..70655b5 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -5,35 +5,24 @@ import ( "github.com/z7zmey/php-parser/pkg/token" ) -type Node struct { - StartTokens []token.Token - EndTokens []token.Token - Tokens token.Collection - Position *position.Position -} - -func (n *Node) GetNode() *Node { - return n -} - -func (n *Node) GetPosition() *position.Position { - return n.Position -} - // Root node type Root struct { - Node - Stmts []Vertex - EndTkn *token.Token + Position *position.Position + Stmts []Vertex + EndTkn *token.Token } func (n *Root) Accept(v NodeVisitor) { v.Root(n) } +func (n *Root) GetPosition() *position.Position { + return n.Position +} + // Nullable node type Nullable struct { - Node + Position *position.Position QuestionTkn *token.Token Expr Vertex } @@ -42,9 +31,13 @@ func (n *Nullable) Accept(v NodeVisitor) { v.Nullable(n) } +func (n *Nullable) GetPosition() *position.Position { + return n.Position +} + // Parameter node type Parameter struct { - Node + Position *position.Position Type Vertex AmpersandTkn *token.Token VariadicTkn *token.Token @@ -57,9 +50,13 @@ func (n *Parameter) Accept(v NodeVisitor) { v.Parameter(n) } +func (n *Parameter) GetPosition() *position.Position { + return n.Position +} + // Identifier node type Identifier struct { - Node + Position *position.Position IdentifierTkn *token.Token Value []byte } @@ -68,9 +65,13 @@ func (n *Identifier) Accept(v NodeVisitor) { v.Identifier(n) } +func (n *Identifier) GetPosition() *position.Position { + return n.Position +} + // Argument node type Argument struct { - Node + Position *position.Position VariadicTkn *token.Token AmpersandTkn *token.Token Expr Vertex @@ -80,9 +81,13 @@ func (n *Argument) Accept(v NodeVisitor) { v.Argument(n) } +func (n *Argument) GetPosition() *position.Position { + return n.Position +} + // ScalarDnumber node type ScalarDnumber struct { - Node + Position *position.Position NumberTkn *token.Token Value []byte } @@ -91,9 +96,13 @@ func (n *ScalarDnumber) Accept(v NodeVisitor) { v.ScalarDnumber(n) } +func (n *ScalarDnumber) GetPosition() *position.Position { + return n.Position +} + // ScalarEncapsed node type ScalarEncapsed struct { - Node + Position *position.Position OpenQoteTkn *token.Token Parts []Vertex CloseQoteTkn *token.Token @@ -103,9 +112,13 @@ func (n *ScalarEncapsed) Accept(v NodeVisitor) { v.ScalarEncapsed(n) } +func (n *ScalarEncapsed) GetPosition() *position.Position { + return n.Position +} + // ScalarEncapsedStringPart node type ScalarEncapsedStringPart struct { - Node + Position *position.Position EncapsedStrTkn *token.Token Value []byte } @@ -114,9 +127,13 @@ func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { v.ScalarEncapsedStringPart(n) } +func (n *ScalarEncapsedStringPart) GetPosition() *position.Position { + return n.Position +} + // ScalarHeredoc node type ScalarHeredoc struct { - Node + Position *position.Position OpenHeredocTkn *token.Token Parts []Vertex CloseHeredocTkn *token.Token @@ -126,9 +143,13 @@ func (n *ScalarHeredoc) Accept(v NodeVisitor) { v.ScalarHeredoc(n) } +func (n *ScalarHeredoc) GetPosition() *position.Position { + return n.Position +} + // ScalarLnumber node type ScalarLnumber struct { - Node + Position *position.Position NumberTkn *token.Token Value []byte } @@ -137,9 +158,13 @@ func (n *ScalarLnumber) Accept(v NodeVisitor) { v.ScalarLnumber(n) } +func (n *ScalarLnumber) GetPosition() *position.Position { + return n.Position +} + // ScalarMagicConstant node type ScalarMagicConstant struct { - Node + Position *position.Position MagicConstTkn *token.Token Value []byte } @@ -148,9 +173,13 @@ func (n *ScalarMagicConstant) Accept(v NodeVisitor) { v.ScalarMagicConstant(n) } +func (n *ScalarMagicConstant) GetPosition() *position.Position { + return n.Position +} + // ScalarString node type ScalarString struct { - Node + Position *position.Position MinusTkn *token.Token StringTkn *token.Token Value []byte @@ -160,9 +189,13 @@ func (n *ScalarString) Accept(v NodeVisitor) { v.ScalarString(n) } +func (n *ScalarString) GetPosition() *position.Position { + return n.Position +} + // StmtBreak node type StmtBreak struct { - Node + Position *position.Position BreakTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -172,9 +205,13 @@ func (n *StmtBreak) Accept(v NodeVisitor) { v.StmtBreak(n) } +func (n *StmtBreak) GetPosition() *position.Position { + return n.Position +} + // StmtCase node type StmtCase struct { - Node + Position *position.Position CaseTkn *token.Token Cond Vertex CaseSeparatorTkn *token.Token @@ -185,9 +222,13 @@ func (n *StmtCase) Accept(v NodeVisitor) { v.StmtCase(n) } +func (n *StmtCase) GetPosition() *position.Position { + return n.Position +} + // StmtCatch node type StmtCatch struct { - Node + Position *position.Position CatchTkn *token.Token OpenParenthesisTkn *token.Token Types []Vertex @@ -203,9 +244,13 @@ func (n *StmtCatch) Accept(v NodeVisitor) { v.StmtCatch(n) } +func (n *StmtCatch) GetPosition() *position.Position { + return n.Position +} + // StmtClass node type StmtClass struct { - Node + Position *position.Position Modifiers []Vertex ClassTkn *token.Token ClassName Vertex @@ -224,9 +269,13 @@ func (n *StmtClass) Accept(v NodeVisitor) { v.StmtClass(n) } +func (n *StmtClass) GetPosition() *position.Position { + return n.Position +} + // StmtClassConstList node type StmtClassConstList struct { - Node + Position *position.Position Modifiers []Vertex ConstTkn *token.Token Consts []Vertex @@ -238,9 +287,13 @@ func (n *StmtClassConstList) Accept(v NodeVisitor) { v.StmtClassConstList(n) } +func (n *StmtClassConstList) GetPosition() *position.Position { + return n.Position +} + // StmtClassExtends node type StmtClassExtends struct { - Node + Position *position.Position ExtendTkn *token.Token ClassName Vertex } @@ -249,9 +302,13 @@ func (n *StmtClassExtends) Accept(v NodeVisitor) { v.StmtClassExtends(n) } +func (n *StmtClassExtends) GetPosition() *position.Position { + return n.Position +} + // StmtClassImplements node type StmtClassImplements struct { - Node + Position *position.Position ImplementsTkn *token.Token InterfaceNames []Vertex SeparatorTkns []*token.Token @@ -261,9 +318,13 @@ func (n *StmtClassImplements) Accept(v NodeVisitor) { v.StmtClassImplements(n) } +func (n *StmtClassImplements) GetPosition() *position.Position { + return n.Position +} + // StmtClassMethod node type StmtClassMethod struct { - Node + Position *position.Position Modifiers []Vertex FunctionTkn *token.Token AmpersandTkn *token.Token @@ -281,9 +342,13 @@ func (n *StmtClassMethod) Accept(v NodeVisitor) { v.StmtClassMethod(n) } +func (n *StmtClassMethod) GetPosition() *position.Position { + return n.Position +} + // StmtConstList node type StmtConstList struct { - Node + Position *position.Position ConstTkn *token.Token Consts []Vertex SeparatorTkns []*token.Token @@ -294,9 +359,13 @@ func (n *StmtConstList) Accept(v NodeVisitor) { v.StmtConstList(n) } +func (n *StmtConstList) GetPosition() *position.Position { + return n.Position +} + // StmtConstant node type StmtConstant struct { - Node + Position *position.Position Name Vertex EqualTkn *token.Token Expr Vertex @@ -306,9 +375,13 @@ func (n *StmtConstant) Accept(v NodeVisitor) { v.StmtConstant(n) } +func (n *StmtConstant) GetPosition() *position.Position { + return n.Position +} + // StmtContinue node type StmtContinue struct { - Node + Position *position.Position ContinueTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -318,9 +391,13 @@ func (n *StmtContinue) Accept(v NodeVisitor) { v.StmtContinue(n) } +func (n *StmtContinue) GetPosition() *position.Position { + return n.Position +} + // StmtDeclare node type StmtDeclare struct { - Node + Position *position.Position Alt bool DeclareTkn *token.Token OpenParenthesisTkn *token.Token @@ -337,9 +414,13 @@ func (n *StmtDeclare) Accept(v NodeVisitor) { v.StmtDeclare(n) } +func (n *StmtDeclare) GetPosition() *position.Position { + return n.Position +} + // StmtDefault node type StmtDefault struct { - Node + Position *position.Position DefaultTkn *token.Token CaseSeparatorTkn *token.Token Stmts []Vertex @@ -349,9 +430,13 @@ func (n *StmtDefault) Accept(v NodeVisitor) { v.StmtDefault(n) } +func (n *StmtDefault) GetPosition() *position.Position { + return n.Position +} + // StmtDo node type StmtDo struct { - Node + Position *position.Position DoTkn *token.Token Stmt Vertex WhileTkn *token.Token @@ -365,9 +450,13 @@ func (n *StmtDo) Accept(v NodeVisitor) { v.StmtDo(n) } +func (n *StmtDo) GetPosition() *position.Position { + return n.Position +} + // StmtEcho node type StmtEcho struct { - Node + Position *position.Position EchoTkn *token.Token Exprs []Vertex SeparatorTkns []*token.Token @@ -378,9 +467,13 @@ func (n *StmtEcho) Accept(v NodeVisitor) { v.StmtEcho(n) } +func (n *StmtEcho) GetPosition() *position.Position { + return n.Position +} + // StmtElse node type StmtElse struct { - Node + Position *position.Position Alt bool ElseTkn *token.Token ColonTkn *token.Token @@ -391,9 +484,13 @@ func (n *StmtElse) Accept(v NodeVisitor) { v.StmtElse(n) } +func (n *StmtElse) GetPosition() *position.Position { + return n.Position +} + // StmtElseIf node type StmtElseIf struct { - Node + Position *position.Position Alt bool ElseIfTkn *token.Token OpenParenthesisTkn *token.Token @@ -407,9 +504,13 @@ func (n *StmtElseIf) Accept(v NodeVisitor) { v.StmtElseIf(n) } +func (n *StmtElseIf) GetPosition() *position.Position { + return n.Position +} + // StmtExpression node type StmtExpression struct { - Node + Position *position.Position Expr Vertex SemiColonTkn *token.Token } @@ -418,9 +519,13 @@ func (n *StmtExpression) Accept(v NodeVisitor) { v.StmtExpression(n) } +func (n *StmtExpression) GetPosition() *position.Position { + return n.Position +} + // StmtFinally node type StmtFinally struct { - Node + Position *position.Position FinallyTkn *token.Token OpenCurlyBracketTkn *token.Token Stmts []Vertex @@ -431,9 +536,13 @@ func (n *StmtFinally) Accept(v NodeVisitor) { v.StmtFinally(n) } +func (n *StmtFinally) GetPosition() *position.Position { + return n.Position +} + // StmtFor node type StmtFor struct { - Node + Position *position.Position Alt bool ForTkn *token.Token OpenParenthesisTkn *token.Token @@ -456,9 +565,13 @@ func (n *StmtFor) Accept(v NodeVisitor) { v.StmtFor(n) } +func (n *StmtFor) GetPosition() *position.Position { + return n.Position +} + // StmtForeach node type StmtForeach struct { - Node + Position *position.Position Alt bool ForeachTkn *token.Token OpenParenthesisTkn *token.Token @@ -478,9 +591,13 @@ func (n *StmtForeach) Accept(v NodeVisitor) { v.StmtForeach(n) } +func (n *StmtForeach) GetPosition() *position.Position { + return n.Position +} + // StmtFunction node type StmtFunction struct { - Node + Position *position.Position FunctionTkn *token.Token AmpersandTkn *token.Token FunctionName Vertex @@ -499,9 +616,13 @@ func (n *StmtFunction) Accept(v NodeVisitor) { v.StmtFunction(n) } +func (n *StmtFunction) GetPosition() *position.Position { + return n.Position +} + // StmtGlobal node type StmtGlobal struct { - Node + Position *position.Position GlobalTkn *token.Token Vars []Vertex SeparatorTkns []*token.Token @@ -512,9 +633,13 @@ func (n *StmtGlobal) Accept(v NodeVisitor) { v.StmtGlobal(n) } +func (n *StmtGlobal) GetPosition() *position.Position { + return n.Position +} + // StmtGoto node type StmtGoto struct { - Node + Position *position.Position GotoTkn *token.Token Label Vertex SemiColonTkn *token.Token @@ -524,9 +649,13 @@ func (n *StmtGoto) Accept(v NodeVisitor) { v.StmtGoto(n) } +func (n *StmtGoto) GetPosition() *position.Position { + return n.Position +} + // StmtHaltCompiler node type StmtHaltCompiler struct { - Node + Position *position.Position HaltCompilerTkn *token.Token OpenParenthesisTkn *token.Token CloseParenthesisTkn *token.Token @@ -537,9 +666,13 @@ func (n *StmtHaltCompiler) Accept(v NodeVisitor) { v.StmtHaltCompiler(n) } +func (n *StmtHaltCompiler) GetPosition() *position.Position { + return n.Position +} + // StmtIf node type StmtIf struct { - Node + Position *position.Position Alt bool IfTkn *token.Token OpenParenthesisTkn *token.Token @@ -557,9 +690,13 @@ func (n *StmtIf) Accept(v NodeVisitor) { v.StmtIf(n) } +func (n *StmtIf) GetPosition() *position.Position { + return n.Position +} + // StmtInlineHtml node type StmtInlineHtml struct { - Node + Position *position.Position InlineHtmlTkn *token.Token Value []byte } @@ -568,9 +705,13 @@ func (n *StmtInlineHtml) Accept(v NodeVisitor) { v.StmtInlineHtml(n) } +func (n *StmtInlineHtml) GetPosition() *position.Position { + return n.Position +} + // StmtInterface node type StmtInterface struct { - Node + Position *position.Position InterfaceTkn *token.Token InterfaceName Vertex Extends Vertex @@ -583,9 +724,13 @@ func (n *StmtInterface) Accept(v NodeVisitor) { v.StmtInterface(n) } +func (n *StmtInterface) GetPosition() *position.Position { + return n.Position +} + // StmtInterfaceExtends node type StmtInterfaceExtends struct { - Node + Position *position.Position ExtendsTkn *token.Token InterfaceNames []Vertex SeparatorTkns []*token.Token @@ -595,9 +740,13 @@ func (n *StmtInterfaceExtends) Accept(v NodeVisitor) { v.StmtInterfaceExtends(n) } +func (n *StmtInterfaceExtends) GetPosition() *position.Position { + return n.Position +} + // StmtLabel node type StmtLabel struct { - Node + Position *position.Position LabelName Vertex ColonTkn *token.Token } @@ -606,9 +755,13 @@ func (n *StmtLabel) Accept(v NodeVisitor) { v.StmtLabel(n) } +func (n *StmtLabel) GetPosition() *position.Position { + return n.Position +} + // StmtNamespace node type StmtNamespace struct { - Node + Position *position.Position NsTkn *token.Token Name Vertex OpenCurlyBracket *token.Token @@ -621,9 +774,13 @@ func (n *StmtNamespace) Accept(v NodeVisitor) { v.StmtNamespace(n) } +func (n *StmtNamespace) GetPosition() *position.Position { + return n.Position +} + // StmtNop node type StmtNop struct { - Node + Position *position.Position SemiColonTkn *token.Token } @@ -631,9 +788,13 @@ func (n *StmtNop) Accept(v NodeVisitor) { v.StmtNop(n) } +func (n *StmtNop) GetPosition() *position.Position { + return n.Position +} + // StmtProperty node type StmtProperty struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -643,9 +804,13 @@ func (n *StmtProperty) Accept(v NodeVisitor) { v.StmtProperty(n) } +func (n *StmtProperty) GetPosition() *position.Position { + return n.Position +} + // StmtPropertyList node type StmtPropertyList struct { - Node + Position *position.Position Modifiers []Vertex Type Vertex Properties []Vertex @@ -657,9 +822,13 @@ func (n *StmtPropertyList) Accept(v NodeVisitor) { v.StmtPropertyList(n) } +func (n *StmtPropertyList) GetPosition() *position.Position { + return n.Position +} + // StmtReturn node type StmtReturn struct { - Node + Position *position.Position ReturnTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -669,9 +838,13 @@ func (n *StmtReturn) Accept(v NodeVisitor) { v.StmtReturn(n) } +func (n *StmtReturn) GetPosition() *position.Position { + return n.Position +} + // StmtStatic node type StmtStatic struct { - Node + Position *position.Position StaticTkn *token.Token Vars []Vertex SeparatorTkns []*token.Token @@ -682,9 +855,13 @@ func (n *StmtStatic) Accept(v NodeVisitor) { v.StmtStatic(n) } +func (n *StmtStatic) GetPosition() *position.Position { + return n.Position +} + // StmtStaticVar node type StmtStaticVar struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -694,9 +871,13 @@ func (n *StmtStaticVar) Accept(v NodeVisitor) { v.StmtStaticVar(n) } +func (n *StmtStaticVar) GetPosition() *position.Position { + return n.Position +} + // StmtStmtList node type StmtStmtList struct { - Node + Position *position.Position OpenCurlyBracket *token.Token Stmts []Vertex CloseCurlyBracket *token.Token @@ -706,9 +887,13 @@ func (n *StmtStmtList) Accept(v NodeVisitor) { v.StmtStmtList(n) } +func (n *StmtStmtList) GetPosition() *position.Position { + return n.Position +} + // StmtSwitch node type StmtSwitch struct { - Node + Position *position.Position Alt bool SwitchTkn *token.Token OpenParenthesisTkn *token.Token @@ -727,9 +912,13 @@ func (n *StmtSwitch) Accept(v NodeVisitor) { v.StmtSwitch(n) } +func (n *StmtSwitch) GetPosition() *position.Position { + return n.Position +} + // StmtThrow node type StmtThrow struct { - Node + Position *position.Position ThrowTkn *token.Token Expr Vertex SemiColonTkn *token.Token @@ -739,9 +928,13 @@ func (n *StmtThrow) Accept(v NodeVisitor) { v.StmtThrow(n) } +func (n *StmtThrow) GetPosition() *position.Position { + return n.Position +} + // StmtTrait node type StmtTrait struct { - Node + Position *position.Position TraitTkn *token.Token TraitName Vertex Extends Vertex @@ -755,9 +948,13 @@ func (n *StmtTrait) Accept(v NodeVisitor) { v.StmtTrait(n) } +func (n *StmtTrait) GetPosition() *position.Position { + return n.Position +} + // StmtTraitAdaptationList node type StmtTraitAdaptationList struct { - Node + Position *position.Position OpenParenthesisTkn *token.Token Adaptations []Vertex CloseParenthesisTkn *token.Token @@ -767,9 +964,13 @@ func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { v.StmtTraitAdaptationList(n) } +func (n *StmtTraitAdaptationList) GetPosition() *position.Position { + return n.Position +} + // StmtTraitMethodRef node type StmtTraitMethodRef struct { - Node + Position *position.Position Trait Vertex DoubleColonTkn *token.Token Method Vertex @@ -779,9 +980,13 @@ func (n *StmtTraitMethodRef) Accept(v NodeVisitor) { v.StmtTraitMethodRef(n) } +func (n *StmtTraitMethodRef) GetPosition() *position.Position { + return n.Position +} + // StmtTraitUse node type StmtTraitUse struct { - Node + Position *position.Position UseTkn *token.Token Traits []Vertex SeparatorTkns []*token.Token @@ -792,9 +997,13 @@ func (n *StmtTraitUse) Accept(v NodeVisitor) { v.StmtTraitUse(n) } +func (n *StmtTraitUse) GetPosition() *position.Position { + return n.Position +} + // StmtTraitUseAlias node type StmtTraitUseAlias struct { - Node + Position *position.Position Ref Vertex AsTkn *token.Token Modifier Vertex @@ -806,9 +1015,13 @@ func (n *StmtTraitUseAlias) Accept(v NodeVisitor) { v.StmtTraitUseAlias(n) } +func (n *StmtTraitUseAlias) GetPosition() *position.Position { + return n.Position +} + // StmtTraitUsePrecedence node type StmtTraitUsePrecedence struct { - Node + Position *position.Position Ref Vertex InsteadofTkn *token.Token Insteadof []Vertex @@ -820,9 +1033,13 @@ func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { v.StmtTraitUsePrecedence(n) } +func (n *StmtTraitUsePrecedence) GetPosition() *position.Position { + return n.Position +} + // StmtTry node type StmtTry struct { - Node + Position *position.Position TryTkn *token.Token OpenCurlyBracket *token.Token Stmts []Vertex @@ -835,9 +1052,13 @@ func (n *StmtTry) Accept(v NodeVisitor) { v.StmtTry(n) } +func (n *StmtTry) GetPosition() *position.Position { + return n.Position +} + // StmtUnset node type StmtUnset struct { - Node + Position *position.Position UnsetTkn *token.Token OpenParenthesisTkn *token.Token Vars []Vertex @@ -850,9 +1071,13 @@ func (n *StmtUnset) Accept(v NodeVisitor) { v.StmtUnset(n) } +func (n *StmtUnset) GetPosition() *position.Position { + return n.Position +} + // StmtUse node type StmtUse struct { - Node + Position *position.Position UseTkn *token.Token Type Vertex UseDeclarations []Vertex @@ -864,9 +1089,13 @@ func (n *StmtUse) Accept(v NodeVisitor) { v.StmtUse(n) } +func (n *StmtUse) GetPosition() *position.Position { + return n.Position +} + // StmtGroupUse node type StmtGroupUse struct { - Node + Position *position.Position UseTkn *token.Token Type Vertex LeadingNsSeparatorTkn *token.Token @@ -883,9 +1112,13 @@ func (n *StmtGroupUse) Accept(v NodeVisitor) { v.StmtGroupUse(n) } +func (n *StmtGroupUse) GetPosition() *position.Position { + return n.Position +} + // StmtUseDeclaration node type StmtUseDeclaration struct { - Node + Position *position.Position Type Vertex NsSeparatorTkn *token.Token Use Vertex @@ -897,9 +1130,13 @@ func (n *StmtUseDeclaration) Accept(v NodeVisitor) { v.StmtUseDeclaration(n) } +func (n *StmtUseDeclaration) GetPosition() *position.Position { + return n.Position +} + // StmtWhile node type StmtWhile struct { - Node + Position *position.Position Alt bool WhileTkn *token.Token OpenParenthesisTkn *token.Token @@ -915,9 +1152,13 @@ func (n *StmtWhile) Accept(v NodeVisitor) { v.StmtWhile(n) } +func (n *StmtWhile) GetPosition() *position.Position { + return n.Position +} + // ExprArray node type ExprArray struct { - Node + Position *position.Position ArrayTkn *token.Token OpenBracketTkn *token.Token Items []Vertex @@ -929,9 +1170,13 @@ func (n *ExprArray) Accept(v NodeVisitor) { v.ExprArray(n) } +func (n *ExprArray) GetPosition() *position.Position { + return n.Position +} + // ExprArrayDimFetch node type ExprArrayDimFetch struct { - Node + Position *position.Position Var Vertex OpenBracketTkn *token.Token Dim Vertex @@ -942,9 +1187,13 @@ func (n *ExprArrayDimFetch) Accept(v NodeVisitor) { v.ExprArrayDimFetch(n) } +func (n *ExprArrayDimFetch) GetPosition() *position.Position { + return n.Position +} + // ExprArrayItem node type ExprArrayItem struct { - Node + Position *position.Position EllipsisTkn *token.Token Key Vertex DoubleArrowTkn *token.Token @@ -955,9 +1204,13 @@ func (n *ExprArrayItem) Accept(v NodeVisitor) { v.ExprArrayItem(n) } +func (n *ExprArrayItem) GetPosition() *position.Position { + return n.Position +} + // ExprArrowFunction node type ExprArrowFunction struct { - Node + Position *position.Position StaticTkn *token.Token FnTkn *token.Token AmpersandTkn *token.Token @@ -975,9 +1228,13 @@ func (n *ExprArrowFunction) Accept(v NodeVisitor) { v.ExprArrowFunction(n) } +func (n *ExprArrowFunction) GetPosition() *position.Position { + return n.Position +} + // ExprBitwiseNot node type ExprBitwiseNot struct { - Node + Position *position.Position TildaTkn *token.Token Expr Vertex } @@ -986,9 +1243,13 @@ func (n *ExprBitwiseNot) Accept(v NodeVisitor) { v.ExprBitwiseNot(n) } +func (n *ExprBitwiseNot) GetPosition() *position.Position { + return n.Position +} + // ExprBooleanNot node type ExprBooleanNot struct { - Node + Position *position.Position ExclamationTkn *token.Token Expr Vertex } @@ -997,9 +1258,13 @@ func (n *ExprBooleanNot) Accept(v NodeVisitor) { v.ExprBooleanNot(n) } +func (n *ExprBooleanNot) GetPosition() *position.Position { + return n.Position +} + // ExprClassConstFetch node type ExprClassConstFetch struct { - Node + Position *position.Position Class Vertex DoubleColonTkn *token.Token ConstantName Vertex @@ -1009,9 +1274,13 @@ func (n *ExprClassConstFetch) Accept(v NodeVisitor) { v.ExprClassConstFetch(n) } +func (n *ExprClassConstFetch) GetPosition() *position.Position { + return n.Position +} + // ExprClone node type ExprClone struct { - Node + Position *position.Position CloneTkn *token.Token Expr Vertex } @@ -1020,9 +1289,13 @@ func (n *ExprClone) Accept(v NodeVisitor) { v.ExprClone(n) } +func (n *ExprClone) GetPosition() *position.Position { + return n.Position +} + // ExprClosure node type ExprClosure struct { - Node + Position *position.Position StaticTkn *token.Token FunctionTkn *token.Token AmpersandTkn *token.Token @@ -1042,9 +1315,13 @@ func (n *ExprClosure) Accept(v NodeVisitor) { v.ExprClosure(n) } +func (n *ExprClosure) GetPosition() *position.Position { + return n.Position +} + // ExprClosureUse node type ExprClosureUse struct { - Node + Position *position.Position UseTkn *token.Token OpenParenthesisTkn *token.Token Uses []Vertex @@ -1056,19 +1333,27 @@ func (n *ExprClosureUse) Accept(v NodeVisitor) { v.ExprClosureUse(n) } +func (n *ExprClosureUse) GetPosition() *position.Position { + return n.Position +} + // ExprConstFetch node type ExprConstFetch struct { - Node - Const Vertex + Position *position.Position + Const Vertex } func (n *ExprConstFetch) Accept(v NodeVisitor) { v.ExprConstFetch(n) } +func (n *ExprConstFetch) GetPosition() *position.Position { + return n.Position +} + // ExprEmpty node type ExprEmpty struct { - Node + Position *position.Position EmptyTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex @@ -1079,20 +1364,28 @@ func (n *ExprEmpty) Accept(v NodeVisitor) { v.ExprEmpty(n) } +func (n *ExprEmpty) GetPosition() *position.Position { + return n.Position +} + // ExprErrorSuppress node type ExprErrorSuppress struct { - Node - AtTkn *token.Token - Expr Vertex + Position *position.Position + AtTkn *token.Token + Expr Vertex } func (n *ExprErrorSuppress) Accept(v NodeVisitor) { v.ExprErrorSuppress(n) } +func (n *ExprErrorSuppress) GetPosition() *position.Position { + return n.Position +} + // ExprEval node type ExprEval struct { - Node + Position *position.Position EvalTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex @@ -1103,9 +1396,13 @@ func (n *ExprEval) Accept(v NodeVisitor) { v.ExprEval(n) } +func (n *ExprEval) GetPosition() *position.Position { + return n.Position +} + // ExprExit node type ExprExit struct { - Node + Position *position.Position DieTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex @@ -1116,9 +1413,13 @@ func (n *ExprExit) Accept(v NodeVisitor) { v.ExprExit(n) } +func (n *ExprExit) GetPosition() *position.Position { + return n.Position +} + // ExprFunctionCall node type ExprFunctionCall struct { - Node + Position *position.Position Function Vertex OpenParenthesisTkn *token.Token Arguments []Vertex @@ -1130,9 +1431,13 @@ func (n *ExprFunctionCall) Accept(v NodeVisitor) { v.ExprFunctionCall(n) } +func (n *ExprFunctionCall) GetPosition() *position.Position { + return n.Position +} + // ExprInclude node type ExprInclude struct { - Node + Position *position.Position IncludeTkn *token.Token Expr Vertex } @@ -1141,9 +1446,13 @@ func (n *ExprInclude) Accept(v NodeVisitor) { v.ExprInclude(n) } +func (n *ExprInclude) GetPosition() *position.Position { + return n.Position +} + // ExprIncludeOnce node type ExprIncludeOnce struct { - Node + Position *position.Position IncludeTkn *token.Token Expr Vertex } @@ -1152,9 +1461,13 @@ func (n *ExprIncludeOnce) Accept(v NodeVisitor) { v.ExprIncludeOnce(n) } +func (n *ExprIncludeOnce) GetPosition() *position.Position { + return n.Position +} + // ExprInstanceOf node type ExprInstanceOf struct { - Node + Position *position.Position Expr Vertex InstanceOfTkn *token.Token Class Vertex @@ -1164,9 +1477,13 @@ func (n *ExprInstanceOf) Accept(v NodeVisitor) { v.ExprInstanceOf(n) } +func (n *ExprInstanceOf) GetPosition() *position.Position { + return n.Position +} + // ExprIsset node type ExprIsset struct { - Node + Position *position.Position IssetTkn *token.Token OpenParenthesisTkn *token.Token Vars []Vertex @@ -1178,9 +1495,13 @@ func (n *ExprIsset) Accept(v NodeVisitor) { v.ExprIsset(n) } +func (n *ExprIsset) GetPosition() *position.Position { + return n.Position +} + // ExprList node type ExprList struct { - Node + Position *position.Position ListTkn *token.Token OpenBracketTkn *token.Token Items []Vertex @@ -1192,9 +1513,13 @@ func (n *ExprList) Accept(v NodeVisitor) { v.ExprList(n) } +func (n *ExprList) GetPosition() *position.Position { + return n.Position +} + // ExprMethodCall node type ExprMethodCall struct { - Node + Position *position.Position Var Vertex ObjectOperatorTkn *token.Token Method Vertex @@ -1208,9 +1533,13 @@ func (n *ExprMethodCall) Accept(v NodeVisitor) { v.ExprMethodCall(n) } +func (n *ExprMethodCall) GetPosition() *position.Position { + return n.Position +} + // ExprNew node type ExprNew struct { - Node + Position *position.Position NewTkn *token.Token Class Vertex OpenParenthesisTkn *token.Token @@ -1223,53 +1552,73 @@ func (n *ExprNew) Accept(v NodeVisitor) { v.ExprNew(n) } +func (n *ExprNew) GetPosition() *position.Position { + return n.Position +} + // ExprPostDec node type ExprPostDec struct { - Node - Var Vertex - DecTkn *token.Token + Position *position.Position + Var Vertex + DecTkn *token.Token } func (n *ExprPostDec) Accept(v NodeVisitor) { v.ExprPostDec(n) } +func (n *ExprPostDec) GetPosition() *position.Position { + return n.Position +} + // ExprPostInc node type ExprPostInc struct { - Node - Var Vertex - IncTkn *token.Token + Position *position.Position + Var Vertex + IncTkn *token.Token } func (n *ExprPostInc) Accept(v NodeVisitor) { v.ExprPostInc(n) } +func (n *ExprPostInc) GetPosition() *position.Position { + return n.Position +} + // ExprPreDec node type ExprPreDec struct { - Node - DecTkn *token.Token - Var Vertex + Position *position.Position + DecTkn *token.Token + Var Vertex } func (n *ExprPreDec) Accept(v NodeVisitor) { v.ExprPreDec(n) } +func (n *ExprPreDec) GetPosition() *position.Position { + return n.Position +} + // ExprPreInc node type ExprPreInc struct { - Node - IncTkn *token.Token - Var Vertex + Position *position.Position + IncTkn *token.Token + Var Vertex } func (n *ExprPreInc) Accept(v NodeVisitor) { v.ExprPreInc(n) } +func (n *ExprPreInc) GetPosition() *position.Position { + return n.Position +} + // ExprPrint node type ExprPrint struct { - Node + Position *position.Position PrintTkn *token.Token Expr Vertex } @@ -1278,9 +1627,13 @@ func (n *ExprPrint) Accept(v NodeVisitor) { v.ExprPrint(n) } +func (n *ExprPrint) GetPosition() *position.Position { + return n.Position +} + // ExprPropertyFetch node type ExprPropertyFetch struct { - Node + Position *position.Position Var Vertex ObjectOperatorTkn *token.Token Property Vertex @@ -1290,9 +1643,13 @@ func (n *ExprPropertyFetch) Accept(v NodeVisitor) { v.ExprPropertyFetch(n) } +func (n *ExprPropertyFetch) GetPosition() *position.Position { + return n.Position +} + // ExprReference node type ExprReference struct { - Node + Position *position.Position AmpersandTkn *token.Token Var Vertex } @@ -1301,9 +1658,13 @@ func (n *ExprReference) Accept(v NodeVisitor) { v.ExprReference(n) } +func (n *ExprReference) GetPosition() *position.Position { + return n.Position +} + // ExprRequire node type ExprRequire struct { - Node + Position *position.Position RequireTkn *token.Token Expr Vertex } @@ -1312,9 +1673,13 @@ func (n *ExprRequire) Accept(v NodeVisitor) { v.ExprRequire(n) } +func (n *ExprRequire) GetPosition() *position.Position { + return n.Position +} + // ExprRequireOnce node type ExprRequireOnce struct { - Node + Position *position.Position RequireOnceTkn *token.Token Expr Vertex } @@ -1323,9 +1688,13 @@ func (n *ExprRequireOnce) Accept(v NodeVisitor) { v.ExprRequireOnce(n) } +func (n *ExprRequireOnce) GetPosition() *position.Position { + return n.Position +} + // ExprShellExec node type ExprShellExec struct { - Node + Position *position.Position OpenBacktickTkn *token.Token Parts []Vertex CloseBacktickTkn *token.Token @@ -1335,9 +1704,13 @@ func (n *ExprShellExec) Accept(v NodeVisitor) { v.ExprShellExec(n) } +func (n *ExprShellExec) GetPosition() *position.Position { + return n.Position +} + // ExprStaticCall node type ExprStaticCall struct { - Node + Position *position.Position Class Vertex DoubleColonTkn *token.Token Call Vertex @@ -1351,9 +1724,13 @@ func (n *ExprStaticCall) Accept(v NodeVisitor) { v.ExprStaticCall(n) } +func (n *ExprStaticCall) GetPosition() *position.Position { + return n.Position +} + // ExprStaticPropertyFetch node type ExprStaticPropertyFetch struct { - Node + Position *position.Position Class Vertex DoubleColonTkn *token.Token Property Vertex @@ -1363,9 +1740,13 @@ func (n *ExprStaticPropertyFetch) Accept(v NodeVisitor) { v.ExprStaticPropertyFetch(n) } +func (n *ExprStaticPropertyFetch) GetPosition() *position.Position { + return n.Position +} + // ExprTernary node type ExprTernary struct { - Node + Position *position.Position Condition Vertex QuestionTkn *token.Token IfTrue Vertex @@ -1377,9 +1758,13 @@ func (n *ExprTernary) Accept(v NodeVisitor) { v.ExprTernary(n) } +func (n *ExprTernary) GetPosition() *position.Position { + return n.Position +} + // ExprUnaryMinus node type ExprUnaryMinus struct { - Node + Position *position.Position MinusTkn *token.Token Expr Vertex } @@ -1388,20 +1773,28 @@ func (n *ExprUnaryMinus) Accept(v NodeVisitor) { v.ExprUnaryMinus(n) } +func (n *ExprUnaryMinus) GetPosition() *position.Position { + return n.Position +} + // ExprUnaryPlus node type ExprUnaryPlus struct { - Node - PlusTkn *token.Token - Expr Vertex + Position *position.Position + PlusTkn *token.Token + Expr Vertex } func (n *ExprUnaryPlus) Accept(v NodeVisitor) { v.ExprUnaryPlus(n) } +func (n *ExprUnaryPlus) GetPosition() *position.Position { + return n.Position +} + // ExprVariable node type ExprVariable struct { - Node + Position *position.Position DollarTkn *token.Token VarName Vertex } @@ -1410,9 +1803,13 @@ func (n *ExprVariable) Accept(v NodeVisitor) { v.ExprVariable(n) } +func (n *ExprVariable) GetPosition() *position.Position { + return n.Position +} + // ExprYield node type ExprYield struct { - Node + Position *position.Position YieldTkn *token.Token Key Vertex DoubleArrowTkn *token.Token @@ -1423,9 +1820,13 @@ func (n *ExprYield) Accept(v NodeVisitor) { v.ExprYield(n) } +func (n *ExprYield) GetPosition() *position.Position { + return n.Position +} + // ExprYieldFrom node type ExprYieldFrom struct { - Node + Position *position.Position YieldFromTkn *token.Token Expr Vertex } @@ -1434,86 +1835,118 @@ func (n *ExprYieldFrom) Accept(v NodeVisitor) { v.ExprYieldFrom(n) } +func (n *ExprYieldFrom) GetPosition() *position.Position { + return n.Position +} + // ExprCastArray node type ExprCastArray struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastArray) Accept(v NodeVisitor) { v.ExprCastArray(n) } +func (n *ExprCastArray) GetPosition() *position.Position { + return n.Position +} + // ExprCastBool node type ExprCastBool struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastBool) Accept(v NodeVisitor) { v.ExprCastBool(n) } +func (n *ExprCastBool) GetPosition() *position.Position { + return n.Position +} + // ExprCastDouble node type ExprCastDouble struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastDouble) Accept(v NodeVisitor) { v.ExprCastDouble(n) } +func (n *ExprCastDouble) GetPosition() *position.Position { + return n.Position +} + // ExprCastInt node type ExprCastInt struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastInt) Accept(v NodeVisitor) { v.ExprCastInt(n) } +func (n *ExprCastInt) GetPosition() *position.Position { + return n.Position +} + // ExprCastObject node type ExprCastObject struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastObject) Accept(v NodeVisitor) { v.ExprCastObject(n) } +func (n *ExprCastObject) GetPosition() *position.Position { + return n.Position +} + // ExprCastString node type ExprCastString struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastString) Accept(v NodeVisitor) { v.ExprCastString(n) } +func (n *ExprCastString) GetPosition() *position.Position { + return n.Position +} + // ExprCastUnset node type ExprCastUnset struct { - Node - CastTkn *token.Token - Expr Vertex + Position *position.Position + CastTkn *token.Token + Expr Vertex } func (n *ExprCastUnset) Accept(v NodeVisitor) { v.ExprCastUnset(n) } +func (n *ExprCastUnset) GetPosition() *position.Position { + return n.Position +} + // ExprAssign node type ExprAssign struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1523,9 +1956,13 @@ func (n *ExprAssign) Accept(v NodeVisitor) { v.ExprAssign(n) } +func (n *ExprAssign) GetPosition() *position.Position { + return n.Position +} + // ExprAssignReference node type ExprAssignReference struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token AmpersandTkn *token.Token @@ -1536,9 +1973,13 @@ func (n *ExprAssignReference) Accept(v NodeVisitor) { v.ExprAssignReference(n) } +func (n *ExprAssignReference) GetPosition() *position.Position { + return n.Position +} + // ExprAssignBitwiseAnd node type ExprAssignBitwiseAnd struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1548,9 +1989,13 @@ func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { v.ExprAssignBitwiseAnd(n) } +func (n *ExprAssignBitwiseAnd) GetPosition() *position.Position { + return n.Position +} + // ExprAssignBitwiseOr node type ExprAssignBitwiseOr struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1560,9 +2005,13 @@ func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { v.ExprAssignBitwiseOr(n) } +func (n *ExprAssignBitwiseOr) GetPosition() *position.Position { + return n.Position +} + // ExprAssignBitwiseXor node type ExprAssignBitwiseXor struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1572,9 +2021,13 @@ func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { v.ExprAssignBitwiseXor(n) } +func (n *ExprAssignBitwiseXor) GetPosition() *position.Position { + return n.Position +} + // ExprAssignCoalesce node type ExprAssignCoalesce struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1584,9 +2037,13 @@ func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { v.ExprAssignCoalesce(n) } +func (n *ExprAssignCoalesce) GetPosition() *position.Position { + return n.Position +} + // ExprAssignConcat node type ExprAssignConcat struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1596,9 +2053,13 @@ func (n *ExprAssignConcat) Accept(v NodeVisitor) { v.ExprAssignConcat(n) } +func (n *ExprAssignConcat) GetPosition() *position.Position { + return n.Position +} + // ExprAssignDiv node type ExprAssignDiv struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1608,9 +2069,13 @@ func (n *ExprAssignDiv) Accept(v NodeVisitor) { v.ExprAssignDiv(n) } +func (n *ExprAssignDiv) GetPosition() *position.Position { + return n.Position +} + // ExprAssignMinus node type ExprAssignMinus struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1620,9 +2085,13 @@ func (n *ExprAssignMinus) Accept(v NodeVisitor) { v.ExprAssignMinus(n) } +func (n *ExprAssignMinus) GetPosition() *position.Position { + return n.Position +} + // ExprAssignMod node type ExprAssignMod struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1632,9 +2101,13 @@ func (n *ExprAssignMod) Accept(v NodeVisitor) { v.ExprAssignMod(n) } +func (n *ExprAssignMod) GetPosition() *position.Position { + return n.Position +} + // ExprAssignMul node type ExprAssignMul struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1644,9 +2117,13 @@ func (n *ExprAssignMul) Accept(v NodeVisitor) { v.ExprAssignMul(n) } +func (n *ExprAssignMul) GetPosition() *position.Position { + return n.Position +} + // ExprAssignPlus node type ExprAssignPlus struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1656,9 +2133,13 @@ func (n *ExprAssignPlus) Accept(v NodeVisitor) { v.ExprAssignPlus(n) } +func (n *ExprAssignPlus) GetPosition() *position.Position { + return n.Position +} + // ExprAssignPow node type ExprAssignPow struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1668,9 +2149,13 @@ func (n *ExprAssignPow) Accept(v NodeVisitor) { v.ExprAssignPow(n) } +func (n *ExprAssignPow) GetPosition() *position.Position { + return n.Position +} + // ExprAssignShiftLeft node type ExprAssignShiftLeft struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1680,9 +2165,13 @@ func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { v.ExprAssignShiftLeft(n) } +func (n *ExprAssignShiftLeft) GetPosition() *position.Position { + return n.Position +} + // ExprAssignShiftRight node type ExprAssignShiftRight struct { - Node + Position *position.Position Var Vertex EqualTkn *token.Token Expr Vertex @@ -1692,332 +2181,444 @@ func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { v.ExprAssignShiftRight(n) } +func (n *ExprAssignShiftRight) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBitwiseAnd node type ExprBinaryBitwiseAnd struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBitwiseAnd) Accept(v NodeVisitor) { v.ExprBinaryBitwiseAnd(n) } +func (n *ExprBinaryBitwiseAnd) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBitwiseOr node type ExprBinaryBitwiseOr struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBitwiseOr) Accept(v NodeVisitor) { v.ExprBinaryBitwiseOr(n) } +func (n *ExprBinaryBitwiseOr) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBitwiseXor node type ExprBinaryBitwiseXor struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBitwiseXor) Accept(v NodeVisitor) { v.ExprBinaryBitwiseXor(n) } +func (n *ExprBinaryBitwiseXor) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBooleanAnd node type ExprBinaryBooleanAnd struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBooleanAnd) Accept(v NodeVisitor) { v.ExprBinaryBooleanAnd(n) } +func (n *ExprBinaryBooleanAnd) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryBooleanOr node type ExprBinaryBooleanOr struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryBooleanOr) Accept(v NodeVisitor) { v.ExprBinaryBooleanOr(n) } +func (n *ExprBinaryBooleanOr) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryCoalesce node type ExprBinaryCoalesce struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryCoalesce) Accept(v NodeVisitor) { v.ExprBinaryCoalesce(n) } +func (n *ExprBinaryCoalesce) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryConcat node type ExprBinaryConcat struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryConcat) Accept(v NodeVisitor) { v.ExprBinaryConcat(n) } +func (n *ExprBinaryConcat) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryDiv node type ExprBinaryDiv struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryDiv) Accept(v NodeVisitor) { v.ExprBinaryDiv(n) } +func (n *ExprBinaryDiv) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryEqual node type ExprBinaryEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryEqual) Accept(v NodeVisitor) { v.ExprBinaryEqual(n) } +func (n *ExprBinaryEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryGreater node type ExprBinaryGreater struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryGreater) Accept(v NodeVisitor) { v.ExprBinaryGreater(n) } +func (n *ExprBinaryGreater) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryGreaterOrEqual node type ExprBinaryGreaterOrEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryGreaterOrEqual) Accept(v NodeVisitor) { v.ExprBinaryGreaterOrEqual(n) } +func (n *ExprBinaryGreaterOrEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryIdentical node type ExprBinaryIdentical struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryIdentical) Accept(v NodeVisitor) { v.ExprBinaryIdentical(n) } +func (n *ExprBinaryIdentical) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryLogicalAnd node type ExprBinaryLogicalAnd struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryLogicalAnd) Accept(v NodeVisitor) { v.ExprBinaryLogicalAnd(n) } +func (n *ExprBinaryLogicalAnd) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryLogicalOr node type ExprBinaryLogicalOr struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryLogicalOr) Accept(v NodeVisitor) { v.ExprBinaryLogicalOr(n) } +func (n *ExprBinaryLogicalOr) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryLogicalXor node type ExprBinaryLogicalXor struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryLogicalXor) Accept(v NodeVisitor) { v.ExprBinaryLogicalXor(n) } +func (n *ExprBinaryLogicalXor) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryMinus node type ExprBinaryMinus struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryMinus) Accept(v NodeVisitor) { v.ExprBinaryMinus(n) } +func (n *ExprBinaryMinus) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryMod node type ExprBinaryMod struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryMod) Accept(v NodeVisitor) { v.ExprBinaryMod(n) } +func (n *ExprBinaryMod) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryMul node type ExprBinaryMul struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryMul) Accept(v NodeVisitor) { v.ExprBinaryMul(n) } +func (n *ExprBinaryMul) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryNotEqual node type ExprBinaryNotEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryNotEqual) Accept(v NodeVisitor) { v.ExprBinaryNotEqual(n) } +func (n *ExprBinaryNotEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryNotIdentical node type ExprBinaryNotIdentical struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryNotIdentical) Accept(v NodeVisitor) { v.ExprBinaryNotIdentical(n) } +func (n *ExprBinaryNotIdentical) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryPlus node type ExprBinaryPlus struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryPlus) Accept(v NodeVisitor) { v.ExprBinaryPlus(n) } +func (n *ExprBinaryPlus) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryPow node type ExprBinaryPow struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryPow) Accept(v NodeVisitor) { v.ExprBinaryPow(n) } +func (n *ExprBinaryPow) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryShiftLeft node type ExprBinaryShiftLeft struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryShiftLeft) Accept(v NodeVisitor) { v.ExprBinaryShiftLeft(n) } +func (n *ExprBinaryShiftLeft) GetPosition() *position.Position { + return n.Position +} + // ExprBinaryShiftRight node type ExprBinaryShiftRight struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinaryShiftRight) Accept(v NodeVisitor) { v.ExprBinaryShiftRight(n) } +func (n *ExprBinaryShiftRight) GetPosition() *position.Position { + return n.Position +} + // ExprBinarySmaller node type ExprBinarySmaller struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinarySmaller) Accept(v NodeVisitor) { v.ExprBinarySmaller(n) } +func (n *ExprBinarySmaller) GetPosition() *position.Position { + return n.Position +} + // ExprBinarySmallerOrEqual node type ExprBinarySmallerOrEqual struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinarySmallerOrEqual) Accept(v NodeVisitor) { v.ExprBinarySmallerOrEqual(n) } +func (n *ExprBinarySmallerOrEqual) GetPosition() *position.Position { + return n.Position +} + // ExprBinarySpaceship node type ExprBinarySpaceship struct { - Node - Left Vertex - OpTkn *token.Token - Right Vertex + Position *position.Position + Left Vertex + OpTkn *token.Token + Right Vertex } func (n *ExprBinarySpaceship) Accept(v NodeVisitor) { v.ExprBinarySpaceship(n) } +func (n *ExprBinarySpaceship) GetPosition() *position.Position { + return n.Position +} + type NameName struct { - Node + Position *position.Position Parts []Vertex SeparatorTkns []*token.Token } @@ -2026,8 +2627,12 @@ func (n *NameName) Accept(v NodeVisitor) { v.NameName(n) } +func (n *NameName) GetPosition() *position.Position { + return n.Position +} + type NameFullyQualified struct { - Node + Position *position.Position NsSeparatorTkn *token.Token Parts []Vertex SeparatorTkns []*token.Token @@ -2037,8 +2642,12 @@ func (n *NameFullyQualified) Accept(v NodeVisitor) { v.NameFullyQualified(n) } +func (n *NameFullyQualified) GetPosition() *position.Position { + return n.Position +} + type NameRelative struct { - Node + Position *position.Position NsTkn *token.Token NsSeparatorTkn *token.Token Parts []Vertex @@ -2049,8 +2658,12 @@ func (n *NameRelative) Accept(v NodeVisitor) { v.NameRelative(n) } +func (n *NameRelative) GetPosition() *position.Position { + return n.Position +} + type NameNamePart struct { - Node + Position *position.Position StringTkn *token.Token Value []byte } @@ -2059,10 +2672,14 @@ func (n *NameNamePart) Accept(v NodeVisitor) { v.NameNamePart(n) } +func (n *NameNamePart) GetPosition() *position.Position { + return n.Position +} + // TODO: move to private section type ParserBrackets struct { - Node + Position *position.Position OpenBracketTkn *token.Token Child Vertex CloseBracketTkn *token.Token @@ -2072,8 +2689,12 @@ func (n *ParserBrackets) Accept(v NodeVisitor) { v.ParserBrackets(n) } +func (n *ParserBrackets) GetPosition() *position.Position { + return n.Position +} + type ParserSeparatedList struct { - Node + Position *position.Position Items []Vertex SeparatorTkns []*token.Token } @@ -2082,9 +2703,13 @@ func (n *ParserSeparatedList) Accept(v NodeVisitor) { v.ParserSeparatedList(n) } +func (n *ParserSeparatedList) GetPosition() *position.Position { + return n.Position +} + // ArgumentList node type ArgumentList struct { - Node + Position *position.Position OpenParenthesisTkn *token.Token Arguments []Vertex SeparatorTkns []*token.Token @@ -2095,8 +2720,12 @@ func (n *ArgumentList) Accept(v NodeVisitor) { // do nothing } +func (n *ArgumentList) GetPosition() *position.Position { + return n.Position +} + type ReturnType struct { - Node + Position *position.Position ColonTkn *token.Token Type Vertex } @@ -2104,3 +2733,7 @@ type ReturnType struct { func (n *ReturnType) Accept(v NodeVisitor) { // do nothing } + +func (n *ReturnType) GetPosition() *position.Position { + return n.Position +} diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index abcf932..771ac0c 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -5,7 +5,6 @@ import ( "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" "io" - "sort" "strconv" "strings" ) @@ -99,76 +98,6 @@ func (v *Dump) LeaveNode(_ ast.Vertex) { v.print("\n") } -func (v *Dump) printNode(n *ast.Node) { - if n.Position == nil && n.Tokens == nil { - return - } - - v.printIndent(v.indent) - v.print("Node: ast.Node{\n") - - if n.Tokens != nil { - v.printIndent(v.indent + 1) - v.print("Tokens: token.Collection{\n") - - keys := make([]int, 0, len(n.Tokens)) - for k := range n.Tokens { - keys = append(keys, int(k)) - } - sort.Ints(keys) - - for _, k := range keys { - key := token.Position(k) - - v.printIndent(v.indent + 2) - v.print("token." + key.String() + ": []*token.Token{\n") - - for _, tkn := range n.Tokens[key] { - v.printIndent(v.indent + 3) - v.print("{\n") - - v.printIndent(v.indent + 4) - v.print("ID: token." + tkn.ID.String() + ",\n") - - v.printIndent(v.indent + 4) - v.print("Value: []byte(" + strconv.Quote(string(tkn.Value)) + "),\n") - - v.printIndent(v.indent + 3) - v.print("},\n") - } - - v.printIndent(v.indent + 2) - v.print("},\n") - } - - v.printIndent(v.indent + 1) - v.print("},\n") - } - - if n.Position != nil { - v.printIndent(v.indent + 1) - v.print("Position: &position.Position{\n") - - v.printIndent(v.indent + 2) - v.print("StartLine: " + strconv.Itoa(n.Position.StartLine) + ",\n") - - v.printIndent(v.indent + 2) - v.print("EndLine: " + strconv.Itoa(n.Position.EndLine) + ",\n") - - v.printIndent(v.indent + 2) - v.print("StartPos: " + strconv.Itoa(n.Position.StartPos) + ",\n") - - v.printIndent(v.indent + 2) - v.print("EndPos: " + strconv.Itoa(n.Position.EndPos) + ",\n") - - v.printIndent(v.indent + 1) - v.print("},\n") - } - - v.printIndent(v.indent) - v.print("},\n") -} - func (v *Dump) printToken(key string, t *token.Token) { if t == nil { return @@ -194,25 +123,21 @@ func (v *Dump) printToken(key string, t *token.Token) { func (v *Dump) Root(n *ast.Root) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Root{\n") - v.printNode(n.GetNode()) } func (v *Dump) Nullable(n *ast.Nullable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Nullable{\n") - v.printNode(n.GetNode()) } func (v *Dump) Parameter(n *ast.Parameter) { v.printIndent(v.indent - 1) v.print("&ast.Parameter{\n") - v.printNode(n.GetNode()) } func (v *Dump) Identifier(n *ast.Identifier) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Identifier{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -221,79 +146,66 @@ func (v *Dump) Identifier(n *ast.Identifier) { func (v *Dump) Argument(n *ast.Argument) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.Argument{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtBreak{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtCase(n *ast.StmtCase) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCase{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtCatch(n *ast.StmtCatch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtCatch{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClass(n *ast.StmtClass) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClass{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassConstList(n *ast.StmtClassConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassConstList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassExtends(n *ast.StmtClassExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassExtends{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassImplements(n *ast.StmtClassImplements) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassImplements{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtClassMethod{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtConstList(n *ast.StmtConstList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtConstant(n *ast.StmtConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtConstant{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtContinue(n *ast.StmtContinue) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtContinue{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDeclare{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -304,25 +216,21 @@ func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { func (v *Dump) StmtDefault(n *ast.StmtDefault) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDefault{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtDo(n *ast.StmtDo) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtDo{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtEcho(n *ast.StmtEcho) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtEcho{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtElse(n *ast.StmtElse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElse{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -333,7 +241,6 @@ func (v *Dump) StmtElse(n *ast.StmtElse) { func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtElseIf{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -344,19 +251,16 @@ func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { func (v *Dump) StmtExpression(n *ast.StmtExpression) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtExpression{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFinally(n *ast.StmtFinally) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFinally{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFor(n *ast.StmtFor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFor{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -367,37 +271,31 @@ func (v *Dump) StmtFor(n *ast.StmtFor) { func (v *Dump) StmtForeach(n *ast.StmtForeach) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtForeach{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtFunction(n *ast.StmtFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtFunction{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGlobal{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtGoto(n *ast.StmtGoto) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGoto{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtHaltCompiler{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtIf(n *ast.StmtIf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtIf{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -408,7 +306,6 @@ func (v *Dump) StmtIf(n *ast.StmtIf) { func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInlineHtml{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -417,73 +314,61 @@ func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { func (v *Dump) StmtInterface(n *ast.StmtInterface) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterface{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtInterfaceExtends{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtLabel(n *ast.StmtLabel) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtLabel{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNamespace{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtNop(n *ast.StmtNop) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtNop{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtProperty(n *ast.StmtProperty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtProperty{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtPropertyList(n *ast.StmtPropertyList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtPropertyList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtReturn(n *ast.StmtReturn) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtReturn{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStatic(n *ast.StmtStatic) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStatic{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStaticVar(n *ast.StmtStaticVar) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStaticVar{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtStmtList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtSwitch{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -494,61 +379,51 @@ func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { func (v *Dump) StmtThrow(n *ast.StmtThrow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtThrow{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTrait(n *ast.StmtTrait) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTrait{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitAdaptationList{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitMethodRef{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUse(n *ast.StmtTraitUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUseAlias{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTraitUsePrecedence{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtTry(n *ast.StmtTry) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtTry{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtUnset(n *ast.StmtUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUnset{\n") - v.printNode(n.GetNode()) } func (v *Dump) StmtUse(n *ast.StmtUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUse{\n") - v.printNode(n.GetNode()) v.printToken("UseTkn", n.UseTkn) v.printToken("SemiColonTkn", n.SemiColonTkn) @@ -557,7 +432,6 @@ func (v *Dump) StmtUse(n *ast.StmtUse) { func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtGroupUse{\n") - v.printNode(n.GetNode()) v.printToken("UseTkn", n.UseTkn) v.printToken("LeadingNsSeparatorTkn", n.LeadingNsSeparatorTkn) v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) @@ -569,7 +443,6 @@ func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtUseDeclaration{\n") - v.printNode(n.GetNode()) v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) v.printToken("AsTkn", n.AsTkn) } @@ -577,7 +450,6 @@ func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { func (v *Dump) StmtWhile(n *ast.StmtWhile) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.StmtWhile{\n") - v.printNode(n.GetNode()) if n.Alt { v.printIndent(v.indent) @@ -588,547 +460,456 @@ func (v *Dump) StmtWhile(n *ast.StmtWhile) { func (v *Dump) ExprArray(n *ast.ExprArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArray{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayDimFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrayItem{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprArrowFunction{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBitwiseNot{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBooleanNot(n *ast.ExprBooleanNot) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBooleanNot{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClassConstFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClone(n *ast.ExprClone) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClone{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClosure(n *ast.ExprClosure) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosure{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprClosureUse{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprConstFetch(n *ast.ExprConstFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprConstFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprEmpty(n *ast.ExprEmpty) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEmpty{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprErrorSuppress(n *ast.ExprErrorSuppress) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprErrorSuppress{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprEval(n *ast.ExprEval) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprEval{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprExit(n *ast.ExprExit) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprExit{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprFunctionCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprInclude(n *ast.ExprInclude) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInclude{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprIncludeOnce(n *ast.ExprIncludeOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIncludeOnce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprInstanceOf(n *ast.ExprInstanceOf) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprInstanceOf{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprIsset(n *ast.ExprIsset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprIsset{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprList(n *ast.ExprList) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprList{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprMethodCall(n *ast.ExprMethodCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprMethodCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprNew(n *ast.ExprNew) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprNew{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPostDec(n *ast.ExprPostDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostDec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPostInc(n *ast.ExprPostInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPostInc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPreDec(n *ast.ExprPreDec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreDec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPreInc(n *ast.ExprPreInc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPreInc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPrint(n *ast.ExprPrint) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPrint{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprPropertyFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprReference(n *ast.ExprReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprReference{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprRequire(n *ast.ExprRequire) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequire{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprRequireOnce(n *ast.ExprRequireOnce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprRequireOnce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprShellExec{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticCall{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprStaticPropertyFetch{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprTernary(n *ast.ExprTernary) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprTernary{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprUnaryMinus(n *ast.ExprUnaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprUnaryPlus(n *ast.ExprUnaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprUnaryPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprVariable(n *ast.ExprVariable) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprVariable{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprYield(n *ast.ExprYield) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYield{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprYieldFrom(n *ast.ExprYieldFrom) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprYieldFrom{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssign(n *ast.ExprAssign) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssign{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignReference(n *ast.ExprAssignReference) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignReference{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignBitwiseXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignCoalesce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignConcat(n *ast.ExprAssignConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignConcat{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignDiv(n *ast.ExprAssignDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignDiv{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMinus(n *ast.ExprAssignMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMod(n *ast.ExprAssignMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMod{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignMul(n *ast.ExprAssignMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignMul{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignPlus(n *ast.ExprAssignPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignPow(n *ast.ExprAssignPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignPow{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftLeft{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprAssignShiftRight{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBitwiseXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryBooleanOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryCoalesce{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryConcat(n *ast.ExprBinaryConcat) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryConcat{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryDiv(n *ast.ExprBinaryDiv) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryDiv{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryEqual(n *ast.ExprBinaryEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryGreater(n *ast.ExprBinaryGreater) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreater{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryGreaterOrEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryIdentical{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalAnd{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalOr{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryLogicalXor{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMinus(n *ast.ExprBinaryMinus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMinus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMod(n *ast.ExprBinaryMod) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMod{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryMul(n *ast.ExprBinaryMul) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryMul{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryNotIdentical{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryPlus(n *ast.ExprBinaryPlus) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPlus{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryPow(n *ast.ExprBinaryPow) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryPow{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftLeft{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinaryShiftRight{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySmaller(n *ast.ExprBinarySmaller) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmaller{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySmallerOrEqual{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprBinarySpaceship{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastArray(n *ast.ExprCastArray) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastArray{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastBool(n *ast.ExprCastBool) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastBool{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastDouble(n *ast.ExprCastDouble) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastDouble{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastInt(n *ast.ExprCastInt) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastInt{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastObject(n *ast.ExprCastObject) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastObject{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastString(n *ast.ExprCastString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastString{\n") - v.printNode(n.GetNode()) } func (v *Dump) ExprCastUnset(n *ast.ExprCastUnset) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ExprCastUnset{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarDnumber{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1137,13 +918,11 @@ func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsed{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarEncapsedStringPart{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1152,13 +931,11 @@ func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarHeredoc{\n") - v.printNode(n.GetNode()) } func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarLnumber{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1167,7 +944,6 @@ func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarMagicConstant{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1176,7 +952,6 @@ func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { func (v *Dump) ScalarString(n *ast.ScalarString) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ScalarString{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1185,25 +960,21 @@ func (v *Dump) ScalarString(n *ast.ScalarString) { func (v *Dump) NameName(n *ast.NameName) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameName{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameFullyQualified(n *ast.NameFullyQualified) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameFullyQualified{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameRelative(n *ast.NameRelative) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameRelative{\n") - v.printNode(n.GetNode()) } func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.NameNamePart{\n") - v.printNode(n.GetNode()) v.printIndent(v.indent) v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) @@ -1212,7 +983,6 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { v.printIndentIfNotSingle(v.indent - 1) v.print("&ast.ParserBrackets{\n") - v.printNode(n.GetNode()) } func (v *Dump) ParserSeparatedList(n *ast.ParserSeparatedList) { diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index 0ccdc27..3bcdad0 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -20,12 +20,6 @@ func ExampleDump() { }, }, }, - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 0, - EndPos: 1, - }, }, Stmts: []ast.Vertex{ &ast.Identifier{}, diff --git a/pkg/token/position.go b/pkg/token/position.go deleted file mode 100644 index cd76285..0000000 --- a/pkg/token/position.go +++ /dev/null @@ -1,74 +0,0 @@ -package token - -type Position int - -//go:generate stringer -type=Position -output ./position_string.go -const ( - Start Position = iota - End - SemiColon - AltEnd - Ampersand - Name - Key - Var - ReturnType - CaseSeparator - LexicalVars - Params - Ref - Cast - Expr - InitExpr - CondExpr - IncExpr - True - Cond - - Namespace - Static - Use - For - Foreach - Declare - Label - Finally - List - Default - Function - Alias - Equal - Array - Isset - Echo - Try - Catch - Unset - - Stmts - VarList - ConstList - NameList - ParamList - ModifierList - ArrayPairList - CaseListStart - CaseListEnd - PropertyList - ParameterList - AdaptationList - LexicalVarList - - CloseParenthesisToken -) - -type Collection map[Position][]*Token - -func (c Collection) IsEmpty() bool { - for _, v := range c { - if len(v) > 0 { - return false - } - } - return true -} diff --git a/pkg/token/position_string.go b/pkg/token/position_string.go deleted file mode 100644 index ac7c7b5..0000000 --- a/pkg/token/position_string.go +++ /dev/null @@ -1,75 +0,0 @@ -// Code generated by "stringer -type=Position -output ./position_string.go"; DO NOT EDIT. - -package token - -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[Start-0] - _ = x[End-1] - _ = x[SemiColon-2] - _ = x[AltEnd-3] - _ = x[Ampersand-4] - _ = x[Name-5] - _ = x[Key-6] - _ = x[Var-7] - _ = x[ReturnType-8] - _ = x[CaseSeparator-9] - _ = x[LexicalVars-10] - _ = x[Params-11] - _ = x[Ref-12] - _ = x[Cast-13] - _ = x[Expr-14] - _ = x[InitExpr-15] - _ = x[CondExpr-16] - _ = x[IncExpr-17] - _ = x[True-18] - _ = x[Cond-19] - _ = x[Namespace-20] - _ = x[Static-21] - _ = x[Use-22] - _ = x[For-23] - _ = x[Foreach-24] - _ = x[Declare-25] - _ = x[Label-26] - _ = x[Finally-27] - _ = x[List-28] - _ = x[Default-29] - _ = x[Function-30] - _ = x[Alias-31] - _ = x[Equal-32] - _ = x[Array-33] - _ = x[Isset-34] - _ = x[Echo-35] - _ = x[Try-36] - _ = x[Catch-37] - _ = x[Unset-38] - _ = x[Stmts-39] - _ = x[VarList-40] - _ = x[ConstList-41] - _ = x[NameList-42] - _ = x[ParamList-43] - _ = x[ModifierList-44] - _ = x[ArrayPairList-45] - _ = x[CaseListStart-46] - _ = x[CaseListEnd-47] - _ = x[PropertyList-48] - _ = x[ParameterList-49] - _ = x[AdaptationList-50] - _ = x[LexicalVarList-51] - _ = x[CloseParenthesisToken-52] -} - -const _Position_name = "StartEndSemiColonAltEndAmpersandNameKeyVarReturnTypeCaseSeparatorLexicalVarsParamsRefCastExprInitExprCondExprIncExprTrueCondNamespaceStaticUseForForeachDeclareLabelFinallyListDefaultFunctionAliasEqualArrayIssetEchoTryCatchUnsetStmtsVarListConstListNameListParamListModifierListArrayPairListCaseListStartCaseListEndPropertyListParameterListAdaptationListLexicalVarListCloseParenthesisToken" - -var _Position_index = [...]uint16{0, 5, 8, 17, 23, 32, 36, 39, 42, 52, 65, 76, 82, 85, 89, 93, 101, 109, 116, 120, 124, 133, 139, 142, 145, 152, 159, 164, 171, 175, 182, 190, 195, 200, 205, 210, 214, 217, 222, 227, 232, 239, 248, 256, 265, 277, 290, 303, 314, 326, 339, 353, 367, 388} - -func (i Position) String() string { - if i < 0 || i >= Position(len(_Position_index)-1) { - return "Position(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _Position_name[_Position_index[i]:_Position_index[i+1]] -} From 8064d940f0ac0f998a19ce6afadb333599235ca6 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 8 Dec 2020 01:23:48 +0200 Subject: [PATCH 105/140] [refactoring] update Token structure --- internal/scanner/lexer.go | 17 +- internal/scanner/scanner.go | 1125 +++++++++++++++--------------- internal/scanner/scanner.rl | 33 +- internal/scanner/scanner_test.go | 78 +-- pkg/ast/visitor/dump.go | 3 - pkg/token/token.go | 9 +- 6 files changed, 617 insertions(+), 648 deletions(-) diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 7986acb..8c0381f 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -15,7 +15,6 @@ type Lexer struct { phpVersion string errHandlerFunc func(*errors.Error) - sts, ste int p, pe, cs int ts, te, act int stack []int @@ -57,26 +56,18 @@ func (lex *Lexer) setTokenPosition(token *token.Token) { token.Position = pos } -func (lex *Lexer) addSkippedToken(t *token.Token, id token.ID, ps, pe int) { - if lex.sts == -1 { - lex.sts = lex.ts - } - - lex.ste = lex.te - - // TODO remove after parser refactoring - +func (lex *Lexer) addFreeFloatingToken(t *token.Token, id token.ID, ps, pe int) { skippedTkn := lex.tokenPool.Get() skippedTkn.ID = id skippedTkn.Value = lex.data[ps:pe] lex.setTokenPosition(skippedTkn) - if t.SkippedTokens == nil { - t.SkippedTokens = make([]*token.Token, 0, 2) + if t.FreeFloating == nil { + t.FreeFloating = make([]*token.Token, 0, 2) } - t.SkippedTokens = append(t.SkippedTokens, skippedTkn) + t.FreeFloating = append(t.FreeFloating, skippedTkn) } func (lex *Lexer) isNotStringVar() bool { diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 9f779e6..bd7768b 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -53,15 +53,12 @@ func (lex *Lexer) Lex() *token.Token { tkn := lex.tokenPool.Get() - lex.sts = -1 - lex.ste = 0 - lblStart := 0 lblEnd := 0 _, _ = lblStart, lblEnd - // line internal/scanner/scanner.go:70 + // line internal/scanner/scanner.go:67 { var _widec int16 if (lex.p) == (lex.pe) { @@ -2218,7 +2215,7 @@ func (lex *Lexer) Lex() *token.Token { goto st_out tr0: lex.cs = 113 - // line internal/scanner/scanner.rl:132 + // line internal/scanner/scanner.rl:129 (lex.p) = (lex.te) - 1 { lex.cs = 116 @@ -2227,7 +2224,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr169: lex.cs = 113 - // line internal/scanner/scanner.rl:132 + // line internal/scanner/scanner.rl:129 lex.te = (lex.p) + 1 { lex.cs = 116 @@ -2236,7 +2233,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr171: lex.cs = 113 - // line internal/scanner/scanner.rl:132 + // line internal/scanner/scanner.rl:129 lex.te = (lex.p) (lex.p)-- { @@ -2245,13 +2242,13 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr172: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:129 + // line internal/scanner/scanner.rl:126 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te) } goto st113 st113: @@ -2265,7 +2262,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2274 + // line internal/scanner/scanner.go:2271 if lex.data[(lex.p)] == 35 { goto tr170 } @@ -2280,13 +2277,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof114 } st_case_114: - // line internal/scanner/scanner.go:2289 + // line internal/scanner/scanner.go:2286 if lex.data[(lex.p)] == 33 { goto st1 } goto tr171 tr3: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2302,7 +2299,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof1 } st_case_1: - // line internal/scanner/scanner.go:2311 + // line internal/scanner/scanner.go:2308 switch lex.data[(lex.p)] { case 10: goto tr2 @@ -2311,7 +2308,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st1 tr2: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2327,29 +2324,29 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof115 } st_case_115: - // line internal/scanner/scanner.go:2336 + // line internal/scanner/scanner.go:2333 goto tr172 tr4: lex.cs = 116 - // line internal/scanner/scanner.rl:145 + // line internal/scanner/scanner.rl:142 (lex.p) = (lex.te) - 1 { - lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) lex.cs = 123 } goto _again tr7: lex.cs = 116 - // line internal/scanner/scanner.rl:149 + // line internal/scanner/scanner.rl:146 lex.te = (lex.p) + 1 { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addFreeFloatingToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 123 } goto _again tr177: - // line internal/scanner/scanner.rl:139 + // line internal/scanner/scanner.rl:136 lex.te = (lex.p) (lex.p)-- { @@ -2364,9 +2361,9 @@ func (lex *Lexer) Lex() *token.Token { } goto st116 tr179: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:139 + // line internal/scanner/scanner.rl:136 lex.te = (lex.p) (lex.p)-- { @@ -2382,17 +2379,17 @@ func (lex *Lexer) Lex() *token.Token { goto st116 tr185: lex.cs = 116 - // line internal/scanner/scanner.rl:145 + // line internal/scanner/scanner.rl:142 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) lex.cs = 123 } goto _again tr186: lex.cs = 116 - // line internal/scanner/scanner.rl:154 + // line internal/scanner/scanner.rl:151 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -2406,14 +2403,14 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr188: lex.cs = 116 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:149 + // line internal/scanner/scanner.rl:146 lex.te = (lex.p) (lex.p)-- { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addFreeFloatingToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) lex.cs = 123 } goto _again @@ -2428,7 +2425,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2426 + // line internal/scanner/scanner.go:2423 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2439,7 +2436,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st117 tr175: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2451,13 +2448,13 @@ func (lex *Lexer) Lex() *token.Token { goto st117 tr180: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st117 tr182: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2473,7 +2470,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof117 } st_case_117: - // line internal/scanner/scanner.go:2471 + // line internal/scanner/scanner.go:2468 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2484,7 +2481,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st117 tr174: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2496,9 +2493,9 @@ func (lex *Lexer) Lex() *token.Token { goto st118 tr181: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2514,7 +2511,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof118 } st_case_118: - // line internal/scanner/scanner.go:2512 + // line internal/scanner/scanner.go:2509 switch lex.data[(lex.p)] { case 10: goto tr181 @@ -2525,7 +2522,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr180 tr183: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st119 st119: @@ -2533,7 +2530,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof119 } st_case_119: - // line internal/scanner/scanner.go:2531 + // line internal/scanner/scanner.go:2528 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2571,7 +2568,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof121 } st_case_121: - // line internal/scanner/scanner.go:2569 + // line internal/scanner/scanner.go:2566 switch lex.data[(lex.p)] { case 61: goto tr186 @@ -2622,7 +2619,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr4 tr8: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2638,10 +2635,10 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof122 } st_case_122: - // line internal/scanner/scanner.go:2636 + // line internal/scanner/scanner.go:2633 goto tr188 tr9: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -2657,16 +2654,16 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof5 } st_case_5: - // line internal/scanner/scanner.go:2655 + // line internal/scanner/scanner.go:2652 if lex.data[(lex.p)] == 10 { goto tr8 } goto tr4 tr10: - // line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:160 (lex.p) = (lex.te) - 1 { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st123 tr12: @@ -3483,7 +3480,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr15: - // line internal/scanner/scanner.rl:351 + // line internal/scanner/scanner.rl:348 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3496,7 +3493,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr19: - // line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:371 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] @@ -3504,7 +3501,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr23: - // line internal/scanner/scanner.rl:338 + // line internal/scanner/scanner.rl:335 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3517,7 +3514,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr38: - // line internal/scanner/scanner.rl:313 + // line internal/scanner/scanner.rl:310 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3530,7 +3527,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr45: - // line internal/scanner/scanner.rl:318 + // line internal/scanner/scanner.rl:315 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3543,7 +3540,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr49: - // line internal/scanner/scanner.rl:314 + // line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3556,7 +3553,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr57: - // line internal/scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3569,7 +3566,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr64: - // line internal/scanner/scanner.rl:316 + // line internal/scanner/scanner.rl:313 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3582,7 +3579,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr73: - // line internal/scanner/scanner.rl:317 + // line internal/scanner/scanner.rl:314 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3595,7 +3592,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr84: - // line internal/scanner/scanner.rl:319 + // line internal/scanner/scanner.rl:316 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3608,7 +3605,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr85: - // line internal/scanner/scanner.rl:281 + // line internal/scanner/scanner.rl:278 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3621,7 +3618,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr88: - // line internal/scanner/scanner.rl:167 + // line internal/scanner/scanner.rl:164 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3634,7 +3631,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr98: - // line internal/scanner/scanner.rl:325 + // line internal/scanner/scanner.rl:322 lex.te = (lex.p) + 1 { isDocComment := false @@ -3643,14 +3640,14 @@ func (lex *Lexer) Lex() *token.Token { } if isDocComment { - lex.addSkippedToken(tkn, token.T_DOC_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te) } } goto st123 tr99: - // line internal/scanner/scanner.rl:178 + // line internal/scanner/scanner.rl:175 (lex.p) = (lex.te) - 1 { base := 10 @@ -3682,7 +3679,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr112: lex.cs = 123 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:162 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3696,7 +3693,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr128: lex.cs = 123 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:161 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3709,7 +3706,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr130: - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:344 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3722,7 +3719,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr132: - // line internal/scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:259 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3735,7 +3732,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr143: - // line internal/scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:258 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3748,7 +3745,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr189: - // line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:371 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3756,7 +3753,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr200: - // line internal/scanner/scanner.rl:338 + // line internal/scanner/scanner.rl:335 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3769,7 +3766,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr234: - // line internal/scanner/scanner.rl:280 + // line internal/scanner/scanner.rl:277 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3783,7 +3780,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr237: lex.cs = 123 - // line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:368 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3796,7 +3793,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr238: - // line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:341 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3806,7 +3803,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr240: - // line internal/scanner/scanner.rl:345 + // line internal/scanner/scanner.rl:342 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3816,25 +3813,25 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr241: - // line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:160 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st123 tr243: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:163 + // line internal/scanner/scanner.rl:160 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st123 tr247: - // line internal/scanner/scanner.rl:374 + // line internal/scanner/scanner.rl:371 lex.te = (lex.p) (lex.p)-- { @@ -3843,7 +3840,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr248: - // line internal/scanner/scanner.rl:338 + // line internal/scanner/scanner.rl:335 lex.te = (lex.p) (lex.p)-- { @@ -3857,7 +3854,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr250: - // line internal/scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) (lex.p)-- { @@ -3871,7 +3868,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr251: - // line internal/scanner/scanner.rl:300 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3885,7 +3882,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr252: lex.cs = 123 - // line internal/scanner/scanner.rl:372 + // line internal/scanner/scanner.rl:369 lex.te = (lex.p) (lex.p)-- { @@ -3899,27 +3896,27 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr253: - // line internal/scanner/scanner.rl:321 + // line internal/scanner/scanner.rl:318 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te) } goto st123 tr256: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:321 + // line internal/scanner/scanner.rl:318 lex.te = (lex.p) (lex.p)-- { lex.ungetStr("?>") - lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te) } goto st123 tr261: - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:343 lex.te = (lex.p) (lex.p)-- { @@ -3933,7 +3930,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr262: - // line internal/scanner/scanner.rl:294 + // line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3946,7 +3943,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr263: - // line internal/scanner/scanner.rl:283 + // line internal/scanner/scanner.rl:280 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3959,7 +3956,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr264: - // line internal/scanner/scanner.rl:285 + // line internal/scanner/scanner.rl:282 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3972,7 +3969,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr266: - // line internal/scanner/scanner.rl:288 + // line internal/scanner/scanner.rl:285 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3985,7 +3982,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr267: - // line internal/scanner/scanner.rl:307 + // line internal/scanner/scanner.rl:304 lex.te = (lex.p) (lex.p)-- { @@ -3999,7 +3996,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr268: - // line internal/scanner/scanner.rl:289 + // line internal/scanner/scanner.rl:286 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4012,7 +4009,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr269: - // line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4025,7 +4022,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr270: - // line internal/scanner/scanner.rl:291 + // line internal/scanner/scanner.rl:288 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4038,7 +4035,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr271: - // line internal/scanner/scanner.rl:295 + // line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4051,7 +4048,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr272: - // line internal/scanner/scanner.rl:292 + // line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4065,7 +4062,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr273: lex.cs = 123 - // line internal/scanner/scanner.rl:349 + // line internal/scanner/scanner.rl:346 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4078,7 +4075,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr275: - // line internal/scanner/scanner.rl:287 + // line internal/scanner/scanner.rl:284 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4091,7 +4088,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr276: - // line internal/scanner/scanner.rl:167 + // line internal/scanner/scanner.rl:164 lex.te = (lex.p) (lex.p)-- { @@ -4105,7 +4102,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr279: - // line internal/scanner/scanner.rl:290 + // line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4118,7 +4115,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr280: - // line internal/scanner/scanner.rl:178 + // line internal/scanner/scanner.rl:175 lex.te = (lex.p) (lex.p)-- { @@ -4150,7 +4147,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr285: - // line internal/scanner/scanner.rl:168 + // line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { @@ -4177,7 +4174,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr286: - // line internal/scanner/scanner.rl:193 + // line internal/scanner/scanner.rl:190 lex.te = (lex.p) (lex.p)-- { @@ -4204,7 +4201,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr287: - // line internal/scanner/scanner.rl:282 + // line internal/scanner/scanner.rl:279 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4218,7 +4215,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr288: lex.cs = 123 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4233,9 +4230,9 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr290: lex.cs = 123 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4249,7 +4246,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr293: - // line internal/scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4262,7 +4259,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr294: - // line internal/scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:305 lex.te = (lex.p) (lex.p)-- { @@ -4276,7 +4273,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr295: - // line internal/scanner/scanner.rl:303 + // line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4290,9 +4287,9 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr296: lex.cs = 123 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:357 + // line internal/scanner/scanner.rl:354 lex.te = (lex.p) (lex.p)-- { @@ -4314,7 +4311,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr297: - // line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:303 lex.te = (lex.p) (lex.p)-- { @@ -4328,7 +4325,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr298: - // line internal/scanner/scanner.rl:298 + // line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4341,7 +4338,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr300: - // line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4354,7 +4351,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr301: - // line internal/scanner/scanner.rl:301 + // line internal/scanner/scanner.rl:298 lex.te = (lex.p) (lex.p)-- { @@ -4368,7 +4365,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr302: - // line internal/scanner/scanner.rl:302 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4381,7 +4378,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr303: - // line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4394,7 +4391,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr305: - // line internal/scanner/scanner.rl:309 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { @@ -4408,7 +4405,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr306: - // line internal/scanner/scanner.rl:304 + // line internal/scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4422,7 +4419,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr309: lex.cs = 123 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -4437,9 +4434,9 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr311: lex.cs = 123 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -4453,7 +4450,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr312: - // line internal/scanner/scanner.rl:310 + // line internal/scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { @@ -4467,7 +4464,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr313: - // line internal/scanner/scanner.rl:311 + // line internal/scanner/scanner.rl:308 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4480,7 +4477,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr314: - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:344 lex.te = (lex.p) (lex.p)-- { @@ -4494,7 +4491,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr394: - // line internal/scanner/scanner.rl:219 + // line internal/scanner/scanner.rl:216 lex.te = (lex.p) (lex.p)-- { @@ -4508,7 +4505,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr414: - // line internal/scanner/scanner.rl:223 + // line internal/scanner/scanner.rl:220 lex.te = (lex.p) (lex.p)-- { @@ -4522,7 +4519,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr443: - // line internal/scanner/scanner.rl:231 + // line internal/scanner/scanner.rl:228 lex.te = (lex.p) (lex.p)-- { @@ -4536,7 +4533,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr447: - // line internal/scanner/scanner.rl:233 + // line internal/scanner/scanner.rl:230 lex.te = (lex.p) (lex.p)-- { @@ -4550,7 +4547,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr479: - // line internal/scanner/scanner.rl:263 + // line internal/scanner/scanner.rl:260 lex.te = (lex.p) (lex.p)-- { @@ -4564,7 +4561,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr547: - // line internal/scanner/scanner.rl:265 + // line internal/scanner/scanner.rl:262 lex.te = (lex.p) (lex.p)-- { @@ -4578,7 +4575,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr593: - // line internal/scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:259 lex.te = (lex.p) (lex.p)-- { @@ -4592,7 +4589,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr598: - // line internal/scanner/scanner.rl:293 + // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4605,7 +4602,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr672: - // line internal/scanner/scanner.rl:286 + // line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4618,7 +4615,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr673: - // line internal/scanner/scanner.rl:284 + // line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4641,7 +4638,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:3506 + // line internal/scanner/scanner.go:3503 switch lex.data[(lex.p)] { case 10: goto tr11 @@ -4826,7 +4823,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st124 st124: @@ -4834,7 +4831,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof124 } st_case_124: - // line internal/scanner/scanner.go:3699 + // line internal/scanner/scanner.go:3696 switch lex.data[(lex.p)] { case 10: goto tr11 @@ -4851,7 +4848,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4866,9 +4863,9 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4884,7 +4881,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof125 } st_case_125: - // line internal/scanner/scanner.go:3749 + // line internal/scanner/scanner.go:3746 switch lex.data[(lex.p)] { case 10: goto tr245 @@ -4898,7 +4895,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr243 tr242: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4910,9 +4907,9 @@ func (lex *Lexer) Lex() *token.Token { goto st6 tr246: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4928,13 +4925,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof6 } st_case_6: - // line internal/scanner/scanner.go:3793 + // line internal/scanner/scanner.go:3790 if lex.data[(lex.p)] == 10 { goto tr11 } goto tr10 tr191: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -4950,7 +4947,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof126 } st_case_126: - // line internal/scanner/scanner.go:3815 + // line internal/scanner/scanner.go:3812 if lex.data[(lex.p)] == 10 { goto tr11 } @@ -4977,7 +4974,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:372 + // line internal/scanner/scanner.rl:369 lex.act = 140 goto st129 st129: @@ -4985,7 +4982,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof129 } st_case_129: - // line internal/scanner/scanner.go:3850 + // line internal/scanner/scanner.go:3847 switch lex.data[(lex.p)] { case 10: goto tr14 @@ -5002,7 +4999,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st7 tr14: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5018,7 +5015,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof7 } st_case_7: - // line internal/scanner/scanner.go:3883 + // line internal/scanner/scanner.go:3880 switch lex.data[(lex.p)] { case 10: goto tr14 @@ -5095,7 +5092,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st7 tr255: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5107,13 +5104,13 @@ func (lex *Lexer) Lex() *token.Token { goto st130 tr257: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st130 tr259: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5129,7 +5126,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof130 } st_case_130: - // line internal/scanner/scanner.go:3994 + // line internal/scanner/scanner.go:3991 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5179,7 +5176,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr253 tr254: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5191,9 +5188,9 @@ func (lex *Lexer) Lex() *token.Token { goto st131 tr258: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5209,7 +5206,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof131 } st_case_131: - // line internal/scanner/scanner.go:4074 + // line internal/scanner/scanner.go:4071 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5336,7 +5333,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof136 } st_case_136: - // line internal/scanner/scanner.go:4201 + // line internal/scanner/scanner.go:4198 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5349,7 +5346,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st11 tr21: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -5365,7 +5362,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:4230 + // line internal/scanner/scanner.go:4227 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5399,7 +5396,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof137 } st_case_137: - // line internal/scanner/scanner.go:4264 + // line internal/scanner/scanner.go:4261 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6247,7 +6244,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:5112 + // line internal/scanner/scanner.go:5109 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6271,7 +6268,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:167 + // line internal/scanner/scanner.rl:164 lex.act = 10 goto st143 st143: @@ -6279,7 +6276,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:5144 + // line internal/scanner/scanner.go:5141 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6320,7 +6317,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:167 + // line internal/scanner/scanner.rl:164 lex.act = 10 goto st144 st144: @@ -6328,7 +6325,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5193 + // line internal/scanner/scanner.go:5190 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6355,7 +6352,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5220 + // line internal/scanner/scanner.go:5217 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6366,7 +6363,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr248 tr92: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6378,13 +6375,13 @@ func (lex *Lexer) Lex() *token.Token { goto st71 tr94: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st71 tr96: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6400,7 +6397,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5265 + // line internal/scanner/scanner.go:5262 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6411,7 +6408,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st71 tr91: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6423,9 +6420,9 @@ func (lex *Lexer) Lex() *token.Token { goto st72 tr95: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6441,7 +6438,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5306 + // line internal/scanner/scanner.go:5303 switch lex.data[(lex.p)] { case 10: goto tr95 @@ -6452,7 +6449,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr94 tr97: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st73 st73: @@ -6460,7 +6457,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5325 + // line internal/scanner/scanner.go:5322 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6476,7 +6473,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:178 + // line internal/scanner/scanner.rl:175 lex.act = 12 goto st146 st146: @@ -6484,7 +6481,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5349 + // line internal/scanner/scanner.go:5346 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6507,7 +6504,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:167 + // line internal/scanner/scanner.rl:164 lex.act = 10 goto st147 st147: @@ -6515,7 +6512,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5380 + // line internal/scanner/scanner.go:5377 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6530,7 +6527,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:178 + // line internal/scanner/scanner.rl:175 lex.act = 12 goto st148 st148: @@ -6538,7 +6535,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5403 + // line internal/scanner/scanner.go:5400 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6575,7 +6572,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:168 + // line internal/scanner/scanner.rl:165 lex.act = 11 goto st149 st149: @@ -6583,7 +6580,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof149 } st_case_149: - // line internal/scanner/scanner.go:5448 + // line internal/scanner/scanner.go:5445 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6613,7 +6610,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:193 + // line internal/scanner/scanner.rl:190 lex.act = 13 goto st150 st150: @@ -6621,7 +6618,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5486 + // line internal/scanner/scanner.go:5483 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6657,7 +6654,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof152 } st_case_152: - // line internal/scanner/scanner.go:5522 + // line internal/scanner/scanner.go:5519 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6673,7 +6670,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr248 tr107: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st77 st77: @@ -6681,7 +6678,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5546 + // line internal/scanner/scanner.go:5543 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6697,7 +6694,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr23 tr104: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6709,9 +6706,9 @@ func (lex *Lexer) Lex() *token.Token { goto st78 tr108: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6727,7 +6724,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5592 + // line internal/scanner/scanner.go:5589 switch lex.data[(lex.p)] { case 10: goto tr108 @@ -6743,7 +6740,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr23 tr105: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6755,9 +6752,9 @@ func (lex *Lexer) Lex() *token.Token { goto st79 tr109: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6773,13 +6770,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5638 + // line internal/scanner/scanner.go:5635 if lex.data[(lex.p)] == 10 { goto tr104 } goto tr23 tr110: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st80 st80: @@ -6787,7 +6784,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5652 + // line internal/scanner/scanner.go:5649 if lex.data[(lex.p)] == 62 { goto tr111 } @@ -6802,7 +6799,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof153 } st_case_153: - // line internal/scanner/scanner.go:5667 + // line internal/scanner/scanner.go:5664 switch lex.data[(lex.p)] { case 10: goto tr113 @@ -6811,7 +6808,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr288 tr113: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6827,10 +6824,10 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5692 + // line internal/scanner/scanner.go:5689 goto tr290 tr289: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -6846,7 +6843,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof81 } st_case_81: - // line internal/scanner/scanner.go:5711 + // line internal/scanner/scanner.go:5708 if lex.data[(lex.p)] == 10 { goto tr113 } @@ -6869,7 +6866,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:305 lex.act = 118 goto st156 st156: @@ -6877,7 +6874,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof156 } st_case_156: - // line internal/scanner/scanner.go:5742 + // line internal/scanner/scanner.go:5739 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6937,7 +6934,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr118 tr118: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:35 lblStart = lex.p goto st84 st84: @@ -6945,7 +6942,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5810 + // line internal/scanner/scanner.go:5807 switch lex.data[(lex.p)] { case 34: goto tr119 @@ -6971,7 +6968,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st84 tr119: - // line internal/scanner/scanner.rl:39 + // line internal/scanner/scanner.rl:36 lblEnd = lex.p goto st85 st85: @@ -6979,7 +6976,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5844 + // line internal/scanner/scanner.go:5841 switch lex.data[(lex.p)] { case 10: goto tr121 @@ -6988,7 +6985,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr12 tr121: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7000,9 +6997,9 @@ func (lex *Lexer) Lex() *token.Token { goto st157 tr125: - // line internal/scanner/scanner.rl:39 + // line internal/scanner/scanner.rl:36 lblEnd = lex.p - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7018,10 +7015,10 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof157 } st_case_157: - // line internal/scanner/scanner.go:5883 + // line internal/scanner/scanner.go:5880 goto tr296 tr122: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7033,9 +7030,9 @@ func (lex *Lexer) Lex() *token.Token { goto st86 tr126: - // line internal/scanner/scanner.rl:39 + // line internal/scanner/scanner.rl:36 lblEnd = lex.p - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7051,7 +7048,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5916 + // line internal/scanner/scanner.go:5913 if lex.data[(lex.p)] == 10 { goto tr121 } @@ -7078,7 +7075,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr123 tr123: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:35 lblStart = lex.p goto st88 st88: @@ -7086,7 +7083,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5951 + // line internal/scanner/scanner.go:5948 switch lex.data[(lex.p)] { case 39: goto tr119 @@ -7112,7 +7109,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st88 tr117: - // line internal/scanner/scanner.rl:38 + // line internal/scanner/scanner.rl:35 lblStart = lex.p goto st89 st89: @@ -7120,7 +7117,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5985 + // line internal/scanner/scanner.go:5982 switch lex.data[(lex.p)] { case 10: goto tr125 @@ -7220,7 +7217,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof164 } st_case_164: - // line internal/scanner/scanner.go:6085 + // line internal/scanner/scanner.go:6082 switch lex.data[(lex.p)] { case 10: goto tr129 @@ -7229,7 +7226,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr309 tr129: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7245,10 +7242,10 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof165 } st_case_165: - // line internal/scanner/scanner.go:6110 + // line internal/scanner/scanner.go:6107 goto tr311 tr310: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -7264,7 +7261,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof90 } st_case_90: - // line internal/scanner/scanner.go:6129 + // line internal/scanner/scanner.go:6126 if lex.data[(lex.p)] == 10 { goto tr129 } @@ -7325,490 +7322,490 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:344 lex.act = 135 goto st168 tr318: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:206 + // line internal/scanner/scanner.rl:203 lex.act = 16 goto st168 tr324: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:204 + // line internal/scanner/scanner.rl:201 lex.act = 14 goto st168 tr325: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:277 + // line internal/scanner/scanner.rl:274 lex.act = 87 goto st168 tr328: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:205 + // line internal/scanner/scanner.rl:202 lex.act = 15 goto st168 tr333: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:207 + // line internal/scanner/scanner.rl:204 lex.act = 17 goto st168 tr345: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:208 + // line internal/scanner/scanner.rl:205 lex.act = 18 goto st168 tr346: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:209 + // line internal/scanner/scanner.rl:206 lex.act = 19 goto st168 tr348: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:210 + // line internal/scanner/scanner.rl:207 lex.act = 20 goto st168 tr355: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:235 + // line internal/scanner/scanner.rl:232 lex.act = 45 goto st168 tr359: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:211 + // line internal/scanner/scanner.rl:208 lex.act = 21 goto st168 tr361: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:212 + // line internal/scanner/scanner.rl:209 lex.act = 22 goto st168 tr365: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:213 + // line internal/scanner/scanner.rl:210 lex.act = 23 goto st168 tr369: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:214 + // line internal/scanner/scanner.rl:211 lex.act = 24 goto st168 tr372: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:217 + // line internal/scanner/scanner.rl:214 lex.act = 27 goto st168 tr378: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:215 + // line internal/scanner/scanner.rl:212 lex.act = 25 goto st168 tr382: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:216 + // line internal/scanner/scanner.rl:213 lex.act = 26 goto st168 tr383: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:229 + // line internal/scanner/scanner.rl:226 lex.act = 39 goto st168 tr391: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:218 + // line internal/scanner/scanner.rl:215 lex.act = 28 goto st168 tr396: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:220 + // line internal/scanner/scanner.rl:217 lex.act = 30 goto st168 tr399: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:221 + // line internal/scanner/scanner.rl:218 lex.act = 31 goto st168 tr411: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:222 + // line internal/scanner/scanner.rl:219 lex.act = 32 goto st168 tr418: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:224 + // line internal/scanner/scanner.rl:221 lex.act = 34 goto st168 tr419: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:225 + // line internal/scanner/scanner.rl:222 lex.act = 35 goto st168 tr424: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:226 + // line internal/scanner/scanner.rl:223 lex.act = 36 goto st168 tr428: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:227 + // line internal/scanner/scanner.rl:224 lex.act = 37 goto st168 tr430: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:228 + // line internal/scanner/scanner.rl:225 lex.act = 38 goto st168 tr436: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:230 + // line internal/scanner/scanner.rl:227 lex.act = 40 goto st168 tr438: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:236 + // line internal/scanner/scanner.rl:233 lex.act = 46 goto st168 tr445: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:232 + // line internal/scanner/scanner.rl:229 lex.act = 42 goto st168 tr451: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:234 + // line internal/scanner/scanner.rl:231 lex.act = 44 goto st168 tr457: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:237 + // line internal/scanner/scanner.rl:234 lex.act = 47 goto st168 tr459: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:238 + // line internal/scanner/scanner.rl:235 lex.act = 48 goto st168 tr460: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:239 + // line internal/scanner/scanner.rl:236 lex.act = 49 goto st168 tr471: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:241 + // line internal/scanner/scanner.rl:238 lex.act = 51 goto st168 tr484: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:264 + // line internal/scanner/scanner.rl:261 lex.act = 74 goto st168 tr492: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:242 + // line internal/scanner/scanner.rl:239 lex.act = 52 goto st168 tr496: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:243 + // line internal/scanner/scanner.rl:240 lex.act = 53 goto st168 tr502: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:244 + // line internal/scanner/scanner.rl:241 lex.act = 54 goto st168 tr505: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:240 + // line internal/scanner/scanner.rl:237 lex.act = 50 goto st168 tr508: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:245 + // line internal/scanner/scanner.rl:242 lex.act = 55 goto st168 tr517: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:246 + // line internal/scanner/scanner.rl:243 lex.act = 56 goto st168 tr518: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:276 + // line internal/scanner/scanner.rl:273 lex.act = 86 goto st168 tr519: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:278 + // line internal/scanner/scanner.rl:275 lex.act = 88 goto st168 tr526: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:249 + // line internal/scanner/scanner.rl:246 lex.act = 59 goto st168 tr529: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:247 + // line internal/scanner/scanner.rl:244 lex.act = 57 goto st168 tr535: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:250 + // line internal/scanner/scanner.rl:247 lex.act = 60 goto st168 tr539: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:248 + // line internal/scanner/scanner.rl:245 lex.act = 58 goto st168 tr552: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:266 + // line internal/scanner/scanner.rl:263 lex.act = 76 goto st168 tr555: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:251 + // line internal/scanner/scanner.rl:248 lex.act = 61 goto st168 tr561: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:252 + // line internal/scanner/scanner.rl:249 lex.act = 62 goto st168 tr565: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:253 + // line internal/scanner/scanner.rl:250 lex.act = 63 goto st168 tr570: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:254 + // line internal/scanner/scanner.rl:251 lex.act = 64 goto st168 tr572: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:256 + // line internal/scanner/scanner.rl:253 lex.act = 66 goto st168 tr574: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:255 + // line internal/scanner/scanner.rl:252 lex.act = 65 goto st168 tr579: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:257 + // line internal/scanner/scanner.rl:254 lex.act = 67 goto st168 tr580: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:255 lex.act = 68 goto st168 tr582: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:256 lex.act = 69 goto st168 tr586: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:257 lex.act = 70 goto st168 tr588: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:279 + // line internal/scanner/scanner.rl:276 lex.act = 89 goto st168 tr597: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:258 lex.act = 71 goto st168 tr613: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:267 + // line internal/scanner/scanner.rl:264 lex.act = 77 goto st168 tr617: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:265 lex.act = 78 goto st168 tr623: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:266 lex.act = 79 goto st168 tr631: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:267 lex.act = 80 goto st168 tr643: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:275 + // line internal/scanner/scanner.rl:272 lex.act = 85 goto st168 tr648: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:268 lex.act = 81 goto st168 tr655: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:273 + // line internal/scanner/scanner.rl:270 lex.act = 83 goto st168 tr665: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:272 + // line internal/scanner/scanner.rl:269 lex.act = 82 goto st168 tr671: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:274 + // line internal/scanner/scanner.rl:271 lex.act = 84 goto st168 st168: @@ -7816,7 +7813,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof168 } st_case_168: - // line internal/scanner/scanner.go:6681 + // line internal/scanner/scanner.go:6678 if lex.data[(lex.p)] == 96 { goto tr12 } @@ -8152,7 +8149,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:347 + // line internal/scanner/scanner.rl:344 lex.act = 135 goto st179 st179: @@ -8160,7 +8157,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof179 } st_case_179: - // line internal/scanner/scanner.go:7025 + // line internal/scanner/scanner.go:7022 switch lex.data[(lex.p)] { case 34: goto st7 @@ -15154,7 +15151,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof399 } st_case_399: - // line internal/scanner/scanner.go:14019 + // line internal/scanner/scanner.go:14016 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15197,7 +15194,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr220 tr137: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st93 st93: @@ -15205,7 +15202,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:14070 + // line internal/scanner/scanner.go:14067 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15223,7 +15220,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr132 tr134: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15235,9 +15232,9 @@ func (lex *Lexer) Lex() *token.Token { goto st94 tr138: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15253,7 +15250,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:14118 + // line internal/scanner/scanner.go:14115 switch lex.data[(lex.p)] { case 10: goto tr138 @@ -15271,7 +15268,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr132 tr135: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15283,9 +15280,9 @@ func (lex *Lexer) Lex() *token.Token { goto st95 tr139: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -15301,13 +15298,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:14166 + // line internal/scanner/scanner.go:14163 if lex.data[(lex.p)] == 10 { goto tr134 } goto tr132 tr140: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st96 st96: @@ -15315,7 +15312,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:14180 + // line internal/scanner/scanner.go:14177 switch lex.data[(lex.p)] { case 82: goto st97 @@ -17419,14 +17416,14 @@ func (lex *Lexer) Lex() *token.Token { } goto tr248 tr144: - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:378 (lex.p) = (lex.te) - 1 { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st470 tr674: - // line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17436,25 +17433,25 @@ func (lex *Lexer) Lex() *token.Token { } goto st470 tr679: - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:378 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st470 tr681: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:378 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st470 tr685: - // line internal/scanner/scanner.rl:384 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { @@ -17465,7 +17462,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st470 tr686: - // line internal/scanner/scanner.rl:382 + // line internal/scanner/scanner.rl:379 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -17479,7 +17476,7 @@ func (lex *Lexer) Lex() *token.Token { goto st470 tr687: lex.cs = 470 - // line internal/scanner/scanner.rl:383 + // line internal/scanner/scanner.rl:380 lex.te = (lex.p) (lex.p)-- { @@ -17503,7 +17500,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16336 + // line internal/scanner/scanner.go:16333 switch lex.data[(lex.p)] { case 10: goto tr145 @@ -17548,7 +17545,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st471 st471: @@ -17556,7 +17553,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof471 } st_case_471: - // line internal/scanner/scanner.go:16389 + // line internal/scanner/scanner.go:16386 switch lex.data[(lex.p)] { case 10: goto tr145 @@ -17573,7 +17570,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17588,9 +17585,9 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17606,7 +17603,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof472 } st_case_472: - // line internal/scanner/scanner.go:16439 + // line internal/scanner/scanner.go:16436 switch lex.data[(lex.p)] { case 10: goto tr683 @@ -17620,7 +17617,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr681 tr680: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17632,9 +17629,9 @@ func (lex *Lexer) Lex() *token.Token { goto st99 tr684: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17650,13 +17647,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:16483 + // line internal/scanner/scanner.go:16480 if lex.data[(lex.p)] == 10 { goto tr145 } goto tr144 tr676: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17672,7 +17669,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof473 } st_case_473: - // line internal/scanner/scanner.go:16505 + // line internal/scanner/scanner.go:16502 if lex.data[(lex.p)] == 10 { goto tr145 } @@ -17739,9 +17736,9 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr692: lex.cs = 476 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:385 lex.te = (lex.p) (lex.p)-- { @@ -17756,7 +17753,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr696: lex.cs = 476 - // line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:385 lex.te = (lex.p) (lex.p)-- { @@ -17783,7 +17780,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16602 + // line internal/scanner/scanner.go:16599 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17840,16 +17837,16 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:385 lex.act = 146 goto st477 tr693: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:388 + // line internal/scanner/scanner.rl:385 lex.act = 146 goto st477 st477: @@ -17857,7 +17854,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof477 } st_case_477: - // line internal/scanner/scanner.go:16676 + // line internal/scanner/scanner.go:16673 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17907,7 +17904,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr691 tr689: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17919,9 +17916,9 @@ func (lex *Lexer) Lex() *token.Token { goto st478 tr694: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17937,7 +17934,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof478 } st_case_478: - // line internal/scanner/scanner.go:16756 + // line internal/scanner/scanner.go:16753 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17987,7 +17984,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr692 tr690: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -17999,9 +17996,9 @@ func (lex *Lexer) Lex() *token.Token { goto st479 tr695: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18017,7 +18014,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof479 } st_case_479: - // line internal/scanner/scanner.go:16836 + // line internal/scanner/scanner.go:16833 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18067,7 +18064,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr696 tr146: - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:394 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18078,7 +18075,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st480 tr704: - // line internal/scanner/scanner.rl:399 + // line internal/scanner/scanner.rl:396 lex.te = (lex.p) (lex.p)-- { @@ -18094,7 +18091,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st480 tr705: - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:395 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -18144,9 +18141,9 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr707: lex.cs = 480 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) (lex.p)-- { @@ -18164,7 +18161,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr711: lex.cs = 480 - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) (lex.p)-- { @@ -18191,7 +18188,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16968 + // line internal/scanner/scanner.go:16965 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18270,30 +18267,30 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:397 lex.act = 150 goto st482 tr708: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:400 + // line internal/scanner/scanner.rl:397 lex.act = 150 goto st482 tr712: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:398 + // line internal/scanner/scanner.rl:395 lex.act = 148 goto st482 tr713: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:394 lex.act = 147 goto st482 st482: @@ -18301,7 +18298,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof482 } st_case_482: - // line internal/scanner/scanner.go:17078 + // line internal/scanner/scanner.go:17075 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18351,7 +18348,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr706 tr700: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18363,9 +18360,9 @@ func (lex *Lexer) Lex() *token.Token { goto st483 tr709: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18381,7 +18378,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof483 } st_case_483: - // line internal/scanner/scanner.go:17158 + // line internal/scanner/scanner.go:17155 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18431,7 +18428,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr707 tr701: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18443,9 +18440,9 @@ func (lex *Lexer) Lex() *token.Token { goto st484 tr710: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18461,7 +18458,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof484 } st_case_484: - // line internal/scanner/scanner.go:17238 + // line internal/scanner/scanner.go:17235 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18625,7 +18622,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr711 tr148: - // line internal/scanner/scanner.rl:414 + // line internal/scanner/scanner.rl:411 lex.te = (lex.p) + 1 { lex.ungetCnt(2) @@ -18640,7 +18637,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st487 tr149: - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:410 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -18650,7 +18647,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st487 tr150: - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:409 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18662,7 +18659,7 @@ func (lex *Lexer) Lex() *token.Token { goto st487 tr715: lex.cs = 487 - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -18734,9 +18731,9 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr724: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:413 lex.te = (lex.p) (lex.p)-- { @@ -18750,7 +18747,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st487 tr728: - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:413 lex.te = (lex.p) (lex.p)-- { @@ -18774,7 +18771,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17481 + // line internal/scanner/scanner.go:17478 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18872,44 +18869,44 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:413 lex.act = 155 goto st488 tr721: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:415 + // line internal/scanner/scanner.rl:412 lex.act = 154 goto st488 tr725: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:416 + // line internal/scanner/scanner.rl:413 lex.act = 155 goto st488 tr729: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:414 + // line internal/scanner/scanner.rl:411 lex.act = 153 goto st488 tr730: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:410 lex.act = 152 goto st488 tr731: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:409 lex.act = 151 goto st488 st488: @@ -18917,7 +18914,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof488 } st_case_488: - // line internal/scanner/scanner.go:17624 + // line internal/scanner/scanner.go:17621 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18967,7 +18964,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr723 tr718: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18979,9 +18976,9 @@ func (lex *Lexer) Lex() *token.Token { goto st489 tr726: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -18997,7 +18994,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof489 } st_case_489: - // line internal/scanner/scanner.go:17704 + // line internal/scanner/scanner.go:17701 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19047,7 +19044,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr724 tr719: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19059,9 +19056,9 @@ func (lex *Lexer) Lex() *token.Token { goto st490 tr727: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19077,7 +19074,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof490 } st_case_490: - // line internal/scanner/scanner.go:17784 + // line internal/scanner/scanner.go:17781 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19282,7 +19279,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr728 tr151: - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:423 lex.te = (lex.p) + 1 { lex.ungetCnt(2) @@ -19297,7 +19294,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st493 tr152: - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:422 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -19307,7 +19304,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st493 tr153: - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:421 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19319,7 +19316,7 @@ func (lex *Lexer) Lex() *token.Token { goto st493 tr732: lex.cs = 493 - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -19391,9 +19388,9 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr742: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- { @@ -19407,7 +19404,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st493 tr746: - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- { @@ -19431,7 +19428,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18068 + // line internal/scanner/scanner.go:18065 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19529,44 +19526,44 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:425 lex.act = 160 goto st494 tr738: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:427 + // line internal/scanner/scanner.rl:424 lex.act = 159 goto st494 tr743: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:428 + // line internal/scanner/scanner.rl:425 lex.act = 160 goto st494 tr747: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:426 + // line internal/scanner/scanner.rl:423 lex.act = 158 goto st494 tr748: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:422 lex.act = 157 goto st494 tr749: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:421 lex.act = 156 goto st494 st494: @@ -19574,7 +19571,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof494 } st_case_494: - // line internal/scanner/scanner.go:18211 + // line internal/scanner/scanner.go:18208 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19624,7 +19621,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr741 tr736: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19636,9 +19633,9 @@ func (lex *Lexer) Lex() *token.Token { goto st495 tr744: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19654,7 +19651,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof495 } st_case_495: - // line internal/scanner/scanner.go:18291 + // line internal/scanner/scanner.go:18288 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19704,7 +19701,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr742 tr737: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19716,9 +19713,9 @@ func (lex *Lexer) Lex() *token.Token { goto st496 tr745: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -19734,7 +19731,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof496 } st_case_496: - // line internal/scanner/scanner.go:18371 + // line internal/scanner/scanner.go:18368 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19940,7 +19937,7 @@ func (lex *Lexer) Lex() *token.Token { goto tr746 tr751: lex.cs = 499 - // line internal/scanner/scanner.rl:436 + // line internal/scanner/scanner.rl:433 lex.te = (lex.p) (lex.p)-- { @@ -19964,7 +19961,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18598 + // line internal/scanner/scanner.go:18595 if lex.data[(lex.p)] == 96 { goto st0 } @@ -20008,7 +20005,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st500 tr154: - // line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:452 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -20020,7 +20017,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st501 tr155: - // line internal/scanner/scanner.rl:452 + // line internal/scanner/scanner.rl:449 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20034,7 +20031,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st501 tr752: - // line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:452 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20046,7 +20043,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st501 tr756: - // line internal/scanner/scanner.rl:454 + // line internal/scanner/scanner.rl:451 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20056,7 +20053,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st501 tr757: - // line internal/scanner/scanner.rl:455 + // line internal/scanner/scanner.rl:452 lex.te = (lex.p) (lex.p)-- { @@ -20069,7 +20066,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st501 tr759: - // line internal/scanner/scanner.rl:451 + // line internal/scanner/scanner.rl:448 lex.te = (lex.p) (lex.p)-- { @@ -20083,7 +20080,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st501 tr761: - // line internal/scanner/scanner.rl:453 + // line internal/scanner/scanner.rl:450 lex.te = (lex.p) (lex.p)-- { @@ -20107,7 +20104,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18690 + // line internal/scanner/scanner.go:18687 switch lex.data[(lex.p)] { case 36: goto st502 @@ -20188,7 +20185,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof504 } st_case_504: - // line internal/scanner/scanner.go:18771 + // line internal/scanner/scanner.go:18768 if lex.data[(lex.p)] == 62 { goto st105 } @@ -20241,7 +20238,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st505 tr156: - // line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:456 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -20254,7 +20251,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr762: - // line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -20262,7 +20259,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr763: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:459 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20272,7 +20269,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr766: - // line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20285,7 +20282,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr770: - // line internal/scanner/scanner.rl:464 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20295,9 +20292,9 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr771: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:459 lex.te = (lex.p) (lex.p)-- { @@ -20308,7 +20305,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr772: - // line internal/scanner/scanner.rl:465 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- { @@ -20317,7 +20314,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr773: - // line internal/scanner/scanner.rl:463 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -20331,7 +20328,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr775: - // line internal/scanner/scanner.rl:460 + // line internal/scanner/scanner.rl:457 lex.te = (lex.p) (lex.p)-- { @@ -20345,7 +20342,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr776: - // line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:456 lex.te = (lex.p) (lex.p)-- { @@ -20359,7 +20356,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st506 tr780: - // line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:458 lex.te = (lex.p) (lex.p)-- { @@ -20383,7 +20380,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18903 + // line internal/scanner/scanner.go:18900 switch lex.data[(lex.p)] { case 10: goto tr764 @@ -20449,7 +20446,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st515 tr764: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20465,10 +20462,10 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof507 } st_case_507: - // line internal/scanner/scanner.go:18985 + // line internal/scanner/scanner.go:18982 goto tr771 tr765: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20484,7 +20481,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:19004 + // line internal/scanner/scanner.go:19001 if lex.data[(lex.p)] == 10 { goto tr764 } @@ -20546,7 +20543,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof511 } st_case_511: - // line internal/scanner/scanner.go:19066 + // line internal/scanner/scanner.go:19063 switch lex.data[(lex.p)] { case 95: goto st106 @@ -20569,7 +20566,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof512 } st_case_512: - // line internal/scanner/scanner.go:19089 + // line internal/scanner/scanner.go:19086 if lex.data[(lex.p)] == 95 { goto st106 } @@ -20605,7 +20602,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof513 } st_case_513: - // line internal/scanner/scanner.go:19125 + // line internal/scanner/scanner.go:19122 if lex.data[(lex.p)] == 95 { goto st107 } @@ -20641,7 +20638,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof514 } st_case_514: - // line internal/scanner/scanner.go:19161 + // line internal/scanner/scanner.go:19158 if lex.data[(lex.p)] == 95 { goto st108 } @@ -20686,7 +20683,7 @@ func (lex *Lexer) Lex() *token.Token { goto st515 tr160: lex.cs = 516 - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:470 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -20695,7 +20692,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr162: lex.cs = 516 - // line internal/scanner/scanner.rl:472 + // line internal/scanner/scanner.rl:469 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20710,7 +20707,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr781: lex.cs = 516 - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:470 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20719,7 +20716,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr783: lex.cs = 516 - // line internal/scanner/scanner.rl:473 + // line internal/scanner/scanner.rl:470 lex.te = (lex.p) (lex.p)-- { @@ -20738,7 +20735,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19240 + // line internal/scanner/scanner.go:19237 if lex.data[(lex.p)] == 96 { goto tr781 } @@ -20765,7 +20762,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof517 } st_case_517: - // line internal/scanner/scanner.go:19267 + // line internal/scanner/scanner.go:19264 switch lex.data[(lex.p)] { case 91: goto tr162 @@ -20824,15 +20821,15 @@ func (lex *Lexer) Lex() *token.Token { } goto st109 tr163: - // line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:474 (lex.p) = (lex.te) - 1 { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st518 tr784: lex.cs = 518 - // line internal/scanner/scanner.rl:479 + // line internal/scanner/scanner.rl:476 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20841,7 +20838,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr787: lex.cs = 518 - // line internal/scanner/scanner.rl:478 + // line internal/scanner/scanner.rl:475 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20854,26 +20851,26 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr788: - // line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:474 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st518 tr790: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:477 + // line internal/scanner/scanner.rl:474 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st518 tr794: lex.cs = 518 - // line internal/scanner/scanner.rl:479 + // line internal/scanner/scanner.rl:476 lex.te = (lex.p) (lex.p)-- { @@ -20892,7 +20889,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19374 + // line internal/scanner/scanner.go:19371 switch lex.data[(lex.p)] { case 10: goto tr164 @@ -20916,7 +20913,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st519 st519: @@ -20924,7 +20921,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof519 } st_case_519: - // line internal/scanner/scanner.go:19406 + // line internal/scanner/scanner.go:19403 switch lex.data[(lex.p)] { case 10: goto tr164 @@ -20941,7 +20938,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20956,9 +20953,9 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -20974,7 +20971,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof520 } st_case_520: - // line internal/scanner/scanner.go:19456 + // line internal/scanner/scanner.go:19453 switch lex.data[(lex.p)] { case 10: goto tr792 @@ -20988,7 +20985,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr790 tr789: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21000,9 +20997,9 @@ func (lex *Lexer) Lex() *token.Token { goto st110 tr793: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21018,13 +21015,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:19500 + // line internal/scanner/scanner.go:19497 if lex.data[(lex.p)] == 10 { goto tr164 } goto tr163 tr786: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21040,21 +21037,21 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof521 } st_case_521: - // line internal/scanner/scanner.go:19522 + // line internal/scanner/scanner.go:19519 if lex.data[(lex.p)] == 10 { goto tr164 } goto tr794 tr165: - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:480 (lex.p) = (lex.te) - 1 { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st522 tr795: lex.cs = 522 - // line internal/scanner/scanner.rl:485 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -21063,7 +21060,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr798: lex.cs = 522 - // line internal/scanner/scanner.rl:484 + // line internal/scanner/scanner.rl:481 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -21076,26 +21073,26 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr799: - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:480 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st522 tr801: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:483 + // line internal/scanner/scanner.rl:480 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st522 tr805: lex.cs = 522 - // line internal/scanner/scanner.rl:485 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) (lex.p)-- { @@ -21114,7 +21111,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19576 + // line internal/scanner/scanner.go:19573 switch lex.data[(lex.p)] { case 10: goto tr166 @@ -21138,7 +21135,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st523 st523: @@ -21146,7 +21143,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof523 } st_case_523: - // line internal/scanner/scanner.go:19608 + // line internal/scanner/scanner.go:19605 switch lex.data[(lex.p)] { case 10: goto tr166 @@ -21163,7 +21160,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21178,9 +21175,9 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21196,7 +21193,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof524 } st_case_524: - // line internal/scanner/scanner.go:19658 + // line internal/scanner/scanner.go:19655 switch lex.data[(lex.p)] { case 10: goto tr803 @@ -21210,7 +21207,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr801 tr800: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21222,9 +21219,9 @@ func (lex *Lexer) Lex() *token.Token { goto st111 tr804: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21240,13 +21237,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof111 } st_case_111: - // line internal/scanner/scanner.go:19702 + // line internal/scanner/scanner.go:19699 if lex.data[(lex.p)] == 10 { goto tr166 } goto tr165 tr797: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21262,21 +21259,21 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof525 } st_case_525: - // line internal/scanner/scanner.go:19724 + // line internal/scanner/scanner.go:19721 if lex.data[(lex.p)] == 10 { goto tr166 } goto tr805 tr167: - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:486 (lex.p) = (lex.te) - 1 { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st526 tr806: lex.cs = 526 - // line internal/scanner/scanner.rl:491 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -21285,7 +21282,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr809: lex.cs = 526 - // line internal/scanner/scanner.rl:490 + // line internal/scanner/scanner.rl:487 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -21298,26 +21295,26 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr810: - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:486 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st526 tr812: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:489 + // line internal/scanner/scanner.rl:486 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st526 tr816: lex.cs = 526 - // line internal/scanner/scanner.rl:491 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) (lex.p)-- { @@ -21336,7 +21333,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19778 + // line internal/scanner/scanner.go:19775 switch lex.data[(lex.p)] { case 10: goto tr168 @@ -21360,7 +21357,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 goto st527 st527: @@ -21368,7 +21365,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof527 } st_case_527: - // line internal/scanner/scanner.go:19810 + // line internal/scanner/scanner.go:19807 switch lex.data[(lex.p)] { case 10: goto tr168 @@ -21385,7 +21382,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21400,9 +21397,9 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21418,7 +21415,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof528 } st_case_528: - // line internal/scanner/scanner.go:19860 + // line internal/scanner/scanner.go:19857 switch lex.data[(lex.p)] { case 10: goto tr814 @@ -21432,7 +21429,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr812 tr811: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21444,9 +21441,9 @@ func (lex *Lexer) Lex() *token.Token { goto st112 tr815: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21462,13 +21459,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof112 } st_case_112: - // line internal/scanner/scanner.go:19904 + // line internal/scanner/scanner.go:19901 if lex.data[(lex.p)] == 10 { goto tr168 } goto tr167 tr808: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21484,7 +21481,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof529 } st_case_529: - // line internal/scanner/scanner.go:19926 + // line internal/scanner/scanner.go:19923 if lex.data[(lex.p)] == 10 { goto tr168 } @@ -21501,27 +21498,27 @@ func (lex *Lexer) Lex() *token.Token { case 186: { (lex.p) = (lex.te) - 1 - lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) } } goto st530 tr821: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:492 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) } goto st530 tr825: - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:492 lex.te = (lex.p) (lex.p)-- { - lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) } goto st530 st530: @@ -21538,7 +21535,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19970 + // line internal/scanner/scanner.go:19967 switch lex.data[(lex.p)] { case 10: goto tr818 @@ -21550,16 +21547,16 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:492 lex.act = 186 goto st531 tr822: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:495 + // line internal/scanner/scanner.rl:492 lex.act = 186 goto st531 st531: @@ -21567,7 +21564,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof531 } st_case_531: - // line internal/scanner/scanner.go:19999 + // line internal/scanner/scanner.go:19996 switch lex.data[(lex.p)] { case 10: goto tr818 @@ -21576,7 +21573,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr817 tr818: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21588,9 +21585,9 @@ func (lex *Lexer) Lex() *token.Token { goto st532 tr823: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21606,7 +21603,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof532 } st_case_532: - // line internal/scanner/scanner.go:20038 + // line internal/scanner/scanner.go:20035 switch lex.data[(lex.p)] { case 10: goto tr823 @@ -21615,7 +21612,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr822 tr819: - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21627,9 +21624,9 @@ func (lex *Lexer) Lex() *token.Token { goto st533 tr824: - // line internal/scanner/scanner.rl:57 + // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:41 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { lex.newLines.Append(lex.p + 1) @@ -21645,7 +21642,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof533 } st_case_533: - // line internal/scanner/scanner.go:20077 + // line internal/scanner/scanner.go:20074 switch lex.data[(lex.p)] { case 10: goto tr818 @@ -24291,16 +24288,10 @@ func (lex *Lexer) Lex() *token.Token { } } - // line internal/scanner/scanner.rl:499 - - if lex.sts == -1 { - lex.sts = 0 - } + // line internal/scanner/scanner.rl:496 tkn.Value = lex.data[lex.ts:lex.te] tkn.ID = token.ID(tok) - tkn.Skipped = lex.data[lex.sts:lex.ste] - lex.addSkippedToken(tkn, tok, lex.ts, lex.te) return tkn } diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index b3a0015..e7d1179 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -26,9 +26,6 @@ func (lex *Lexer) Lex() *token.Token { tkn := lex.tokenPool.Get() - lex.sts = -1 - lex.ste = 0 - lblStart := 0 lblEnd := 0 @@ -127,7 +124,7 @@ func (lex *Lexer) Lex() *token.Token { main := |* "#!" any* :>> newline => { - lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te) }; any => { fnext html; @@ -143,12 +140,12 @@ func (lex *Lexer) Lex() *token.Token { fbreak; }; ' { - lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) fnext php; }; ' { lex.ungetCnt(lex.te - lex.ts - 5) - lex.addSkippedToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) + lex.addFreeFloatingToken(tkn, token.T_OPEN_TAG, lex.ts, lex.ts+5) fnext php; }; ' { @@ -160,7 +157,7 @@ func (lex *Lexer) Lex() *token.Token { *|; php := |* - whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; '?>' newline? => {lex.setTokenPosition(tkn); tok = token.ID(int(';')); fnext html; fbreak;}; ';' whitespace_line* '?>' newline? => {lex.setTokenPosition(tkn); tok = token.ID(int(';')); fnext html; fbreak;}; @@ -320,7 +317,7 @@ func (lex *Lexer) Lex() *token.Token { ('#' | '//') any_line* when is_not_comment_end => { lex.ungetStr("?>") - lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te) }; '/*' any_line* :>> '*/' { isDocComment := false; @@ -329,9 +326,9 @@ func (lex *Lexer) Lex() *token.Token { } if isDocComment { - lex.addSkippedToken(tkn, token.T_DOC_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_DOC_COMMENT, lex.ts, lex.te) } else { - lex.addSkippedToken(tkn, token.T_COMMENT, lex.ts, lex.te) + lex.addFreeFloatingToken(tkn, token.T_COMMENT, lex.ts, lex.te) } }; @@ -378,7 +375,7 @@ func (lex *Lexer) Lex() *token.Token { *|; property := |* - whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; "->" => {lex.setTokenPosition(tkn); tok = token.T_OBJECT_OPERATOR; fbreak;}; varname => {lex.setTokenPosition(tkn); tok = token.T_STRING; fnext php; fbreak;}; any => {lex.ungetCnt(1); fgoto php;}; @@ -474,38 +471,32 @@ func (lex *Lexer) Lex() *token.Token { *|; halt_compiller_open_parenthesis := |* - whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; "(" => {lex.setTokenPosition(tkn); tok = token.ID(int('(')); fnext halt_compiller_close_parenthesis; fbreak;}; any => {lex.ungetCnt(1); fnext php;}; *|; halt_compiller_close_parenthesis := |* - whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; ")" => {lex.setTokenPosition(tkn); tok = token.ID(int(')')); fnext halt_compiller_close_semicolon; fbreak;}; any => {lex.ungetCnt(1); fnext php;}; *|; halt_compiller_close_semicolon := |* - whitespace_line* => {lex.addSkippedToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; + whitespace_line* => {lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te)}; ";" => {lex.setTokenPosition(tkn); tok = token.ID(int(';')); fnext halt_compiller_end; fbreak;}; any => {lex.ungetCnt(1); fnext php;}; *|; halt_compiller_end := |* - any_line* => { lex.addSkippedToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te); }; + any_line* => { lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te); }; *|; write exec; }%% - if lex.sts == -1 { - lex.sts = 0 - } - tkn.Value = lex.data[lex.ts:lex.te] tkn.ID = token.ID(tok) - tkn.Skipped = lex.data[lex.sts:lex.ste] - lex.addSkippedToken(tkn, tok, lex.ts, lex.te); return tkn } \ No newline at end of file diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 465c40a..c49b785 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -386,8 +386,8 @@ func TestShebang(t *testing.T) { tkn := lexer.Lex() assert.Equal(t, tkn.ID, token.T_DNUMBER) - l := len(tkn.SkippedTokens) - for _, tt := range tkn.SkippedTokens[:l-1] { + l := len(tkn.FreeFloating) + for _, tt := range tkn.FreeFloating[:l-1] { actual = append(actual, string(tt.Value)) } @@ -404,7 +404,7 @@ func TestShebangHtml(t *testing.T) { tkn := lexer.Lex() assert.Equal(t, tkn.ID, token.T_INLINE_HTML) - assert.Equal(t, string(tkn.SkippedTokens[0].Value), "#!/usr/bin/env php\n") + assert.Equal(t, string(tkn.FreeFloating[0].Value), "#!/usr/bin/env php\n") tkn = lexer.Lex() assert.Equal(t, tkn.ID, token.T_DNUMBER) @@ -1137,8 +1137,8 @@ func TestCommentEnd(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1169,8 +1169,8 @@ func TestCommentNewLine(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1201,8 +1201,8 @@ func TestCommentNewLine1(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1233,8 +1233,8 @@ func TestCommentNewLine2(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1266,8 +1266,8 @@ func TestCommentWithPhpEndTag(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1299,8 +1299,8 @@ func TestInlineComment(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1332,8 +1332,8 @@ func TestInlineComment2(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1369,8 +1369,8 @@ func TestEmptyInlineComment(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1402,8 +1402,8 @@ func TestEmptyInlineComment2(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1428,8 +1428,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1442,8 +1442,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.SkippedTokens) - actual = tkn.SkippedTokens[:l-1] + l = len(tkn.FreeFloating) + actual = tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1456,8 +1456,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.SkippedTokens) - actual = tkn.SkippedTokens[:l-1] + l = len(tkn.FreeFloating) + actual = tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1470,8 +1470,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.SkippedTokens) - actual = tkn.SkippedTokens[:l-1] + l = len(tkn.FreeFloating) + actual = tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1484,8 +1484,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.SkippedTokens) - actual = tkn.SkippedTokens[:l-1] + l = len(tkn.FreeFloating) + actual = tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1498,8 +1498,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.SkippedTokens) - actual = tkn.SkippedTokens[:l-1] + l = len(tkn.FreeFloating) + actual = tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1512,8 +1512,8 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.SkippedTokens) - actual = tkn.SkippedTokens[:l-1] + l = len(tkn.FreeFloating) + actual = tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1537,8 +1537,8 @@ func TestYieldFromTokens(t *testing.T) { }, } tkn := lexer.Lex() - l := len(tkn.SkippedTokens) - actual := tkn.SkippedTokens[:l-1] + l := len(tkn.FreeFloating) + actual := tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } @@ -1551,8 +1551,8 @@ func TestYieldFromTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.SkippedTokens) - actual = tkn.SkippedTokens[:l-1] + l = len(tkn.FreeFloating) + actual = tkn.FreeFloating[:l-1] for _, v := range actual { v.Position = nil } diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 771ac0c..af4a87a 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -113,9 +113,6 @@ func (v *Dump) printToken(key string, t *token.Token) { v.printIndent(v.indent + 1) v.print("Value: []byte(" + strconv.Quote(string(t.Value)) + "),\n") - v.printIndent(v.indent + 1) - v.print("Skipped: []byte(" + strconv.Quote(string(t.Skipped)) + "),\n") - v.printIndent(v.indent) v.print("},\n") } diff --git a/pkg/token/token.go b/pkg/token/token.go index b36c85f..406a577 100644 --- a/pkg/token/token.go +++ b/pkg/token/token.go @@ -147,11 +147,10 @@ const ( ) type Token struct { - ID ID - Value []byte - Position *position.Position - SkippedTokens []*Token - Skipped []byte + ID ID + Value []byte + Position *position.Position + FreeFloating []*Token } func (t *Token) GetPosition() *position.Position { From f3a605aba11d44015fca4b7d01ee612961833645 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 8 Dec 2020 02:08:59 +0200 Subject: [PATCH 106/140] [refactoring] update position builder --- Makefile | 7 +- internal/php5/parser.go | 3 + internal/php5/php5.go | 2071 ++++++++++++++++----------------- internal/php5/php5.y | 1027 ++++++++-------- internal/php7/parser.go | 3 + internal/php7/php7.go | 1725 ++++++++++++++------------- internal/php7/php7.y | 735 ++++++------ internal/position/position.go | 215 ++-- internal/scanner/lexer.go | 2 +- 9 files changed, 2910 insertions(+), 2878 deletions(-) diff --git a/Makefile b/Makefile index 6bcfbcd..5309a04 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ PHPFILE=example.php -all: compile fmt build run +all: compile fmt build fmt: find . -type f -iregex '.*\.go' -exec gofmt -l -s -w '{}' + @@ -9,9 +9,6 @@ build: go generate ./... go build ./cmd/... -run: - ./php-parser -d go $(PHPFILE) - test: go test ./... @@ -22,7 +19,7 @@ bench: go test -benchmem -bench=. ./internal/php5 go test -benchmem -bench=. ./internal/php7 -compile: ./internal/php5/php5.go ./internal/php7/php7.go ./internal/scanner/scanner.go fmt +compile: ./internal/php5/php5.go ./internal/php7/php7.go ./internal/scanner/scanner.go sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./internal/php7/php7.go sed -i '' -e 's/yyErrorVerbose = false/yyErrorVerbose = true/g' ./internal/php5/php5.go sed -i '' -e 's/\/\/line/\/\/ line/g' ./internal/php5/php5.go diff --git a/internal/php5/parser.go b/internal/php5/parser.go index ee75429..84015d2 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -1,6 +1,7 @@ package php5 import ( + builder "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -13,6 +14,7 @@ type Parser struct { currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) + builder *builder.Builder } // NewParser creates and returns new Parser @@ -20,6 +22,7 @@ func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser return &Parser{ Lexer: lexer, errHandlerFunc: errHandlerFunc, + builder: builder.NewBuilder(), } } diff --git a/internal/php5/php5.go b/internal/php5/php5.go index cf203cf..24fa23b 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -10,12 +10,11 @@ import __yyfmt__ "fmt" import ( "strconv" - "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php5/php5.y:14 +// line internal/php5/php5.y:13 type yySymType struct { yys int node ast.Vertex @@ -340,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5637 +// line internal/php5/php5.y:5636 // line yacctab:1 var yyExca = [...]int{ @@ -2314,17 +2313,17 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:267 + // line internal/php5/php5.y:266 { yylex.(*Parser).rootNode = &ast.Root{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].list), Stmts: yyDollar[1].list, EndTkn: yylex.(*Parser).currentToken, } } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:278 + // line internal/php5/php5.y:277 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2332,18 +2331,18 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:284 + // line internal/php5/php5.y:283 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:291 + // line internal/php5/php5.y:290 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -2352,10 +2351,10 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:303 + // line internal/php5/php5.y:302 { part := &ast.NameNamePart{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), StringTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, } @@ -2367,35 +2366,35 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:319 + // line internal/php5/php5.y:318 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:324 + // line internal/php5/php5.y:323 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:328 + // line internal/php5/php5.y:327 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:332 + // line internal/php5/php5.y:331 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:336 + // line internal/php5/php5.y:335 { yyVAL.node = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -2404,13 +2403,13 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:346 + // line internal/php5/php5.y:345 { yyVAL.node = &ast.StmtNamespace{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2419,13 +2418,13 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:359 + // line internal/php5/php5.y:358 { yyVAL.node = &ast.StmtNamespace{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2436,10 +2435,10 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:374 + // line internal/php5/php5.y:373 { yyVAL.node = &ast.StmtNamespace{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsTkn: yyDollar[1].token, OpenCurlyBracket: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -2448,10 +2447,10 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:384 + // line internal/php5/php5.y:383 { yyVAL.node = &ast.StmtUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), UseTkn: yyDollar[1].token, UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2460,13 +2459,13 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:394 + // line internal/php5/php5.y:393 { yyVAL.node = &ast.StmtUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, Type: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -2477,13 +2476,13 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:409 + // line internal/php5/php5.y:408 { yyVAL.node = &ast.StmtUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, Type: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -2494,15 +2493,15 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:424 + // line internal/php5/php5.y:423 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token - yyDollar[1].node.(*ast.StmtConstList).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyDollar[1].node.(*ast.StmtConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) yyVAL.node = yyDollar[1].node } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:433 + // line internal/php5/php5.y:432 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2511,7 +2510,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:440 + // line internal/php5/php5.y:439 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2519,12 +2518,12 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:449 + // line internal/php5/php5.y:448 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2532,18 +2531,18 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:460 + // line internal/php5/php5.y:459 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2551,13 +2550,13 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:477 + // line internal/php5/php5.y:476 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2565,19 +2564,19 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:489 + // line internal/php5/php5.y:488 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -2585,7 +2584,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:510 + // line internal/php5/php5.y:509 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2594,7 +2593,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:517 + // line internal/php5/php5.y:516 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2602,12 +2601,12 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:526 + // line internal/php5/php5.y:525 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2615,18 +2614,18 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:537 + // line internal/php5/php5.y:536 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2634,13 +2633,13 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:554 + // line internal/php5/php5.y:553 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2648,19 +2647,19 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:566 + // line internal/php5/php5.y:565 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -2668,7 +2667,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:587 + // line internal/php5/php5.y:586 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2677,7 +2676,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:594 + // line internal/php5/php5.y:593 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2685,12 +2684,12 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:603 + // line internal/php5/php5.y:602 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2698,18 +2697,18 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:614 + // line internal/php5/php5.y:613 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2717,13 +2716,13 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:631 + // line internal/php5/php5.y:630 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2731,19 +2730,19 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:643 + // line internal/php5/php5.y:642 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -2751,15 +2750,15 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:664 + // line internal/php5/php5.y:663 { constList := yyDollar[1].node.(*ast.StmtConstList) - constList.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) constList.SeparatorTkns = append(constList.SeparatorTkns, yyDollar[2].token) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -2771,16 +2770,16 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:682 + // line internal/php5/php5.y:681 { yyVAL.node = &ast.StmtConstList{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), ConstTkn: yyDollar[1].token, Consts: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -2792,7 +2791,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:704 + // line internal/php5/php5.y:703 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2800,41 +2799,41 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:710 + // line internal/php5/php5.y:709 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:718 + // line internal/php5/php5.y:717 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:723 + // line internal/php5/php5.y:722 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:727 + // line internal/php5/php5.y:726 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:731 + // line internal/php5/php5.y:730 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:735 + // line internal/php5/php5.y:734 { yyVAL.node = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -2843,18 +2842,18 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:749 + // line internal/php5/php5.y:748 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:753 + // line internal/php5/php5.y:752 { yyVAL.node = &ast.StmtLabel{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), LabelName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -2863,10 +2862,10 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:768 + // line internal/php5/php5.y:767 { yyVAL.node = &ast.StmtStmtList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -2874,13 +2873,13 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:777 + // line internal/php5/php5.y:776 { - pos := position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { - pos = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + pos = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) } else if len(yyDollar[4].list) > 0 { - pos = position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list) + pos = yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[4].list) } yyVAL.node = &ast.StmtIf{ @@ -2896,10 +2895,10 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:797 + // line internal/php5/php5.y:796 { yyVAL.node = &ast.StmtIf{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), Alt: true, IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, @@ -2907,7 +2906,7 @@ yydefault: CloseParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: yyDollar[3].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[4].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[4].list), Stmts: yyDollar[4].list, }, ElseIf: yyDollar[5].list, @@ -2918,22 +2917,22 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:817 + // line internal/php5/php5.y:816 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn yyDollar[3].node.(*ast.StmtWhile).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child yyDollar[3].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn - yyDollar[3].node.(*ast.StmtWhile).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyDollar[3].node.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:827 + // line internal/php5/php5.y:826 { yyVAL.node = &ast.StmtDo{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), DoTkn: yyDollar[1].token, Stmt: yyDollar[2].node, WhileTkn: yyDollar[3].token, @@ -2945,7 +2944,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:840 + // line internal/php5/php5.y:839 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -2958,38 +2957,38 @@ yydefault: yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token - yyDollar[9].node.(*ast.StmtFor).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyDollar[9].node.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:857 + // line internal/php5/php5.y:856 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn yyDollar[3].node.(*ast.StmtSwitch).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child yyDollar[3].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn - yyDollar[3].node.(*ast.StmtSwitch).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) + yyDollar[3].node.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:867 + // line internal/php5/php5.y:866 { yyVAL.node = &ast.StmtBreak{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), BreakTkn: yyDollar[1].token, SemiColonTkn: yyDollar[2].token, } } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:875 + // line internal/php5/php5.y:874 { yyVAL.node = &ast.StmtBreak{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), BreakTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -2997,20 +2996,20 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:884 + // line internal/php5/php5.y:883 { yyVAL.node = &ast.StmtContinue{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), ContinueTkn: yyDollar[1].token, SemiColonTkn: yyDollar[2].token, } } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:892 + // line internal/php5/php5.y:891 { yyVAL.node = &ast.StmtContinue{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ContinueTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3018,20 +3017,20 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:901 + // line internal/php5/php5.y:900 { yyVAL.node = &ast.StmtReturn{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), ReturnTkn: yyDollar[1].token, SemiColonTkn: yyDollar[2].token, } } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:909 + // line internal/php5/php5.y:908 { yyVAL.node = &ast.StmtReturn{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ReturnTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3039,10 +3038,10 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:918 + // line internal/php5/php5.y:917 { yyVAL.node = &ast.StmtReturn{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ReturnTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3050,81 +3049,81 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:927 + // line internal/php5/php5.y:926 { yyVAL.node = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Expr: yyDollar[1].node, SemiColonTkn: yyDollar[2].token, } } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:935 + // line internal/php5/php5.y:934 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) - yyDollar[2].node.(*ast.StmtGlobal).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:944 + // line internal/php5/php5.y:943 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) - yyDollar[2].node.(*ast.StmtStatic).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:953 + // line internal/php5/php5.y:952 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtEcho).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtEcho).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:961 + // line internal/php5/php5.y:960 { yyVAL.node = &ast.StmtInlineHtml{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), InlineHtmlTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:969 + // line internal/php5/php5.y:968 { yyVAL.node = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Expr: yyDollar[1].node, SemiColonTkn: yyDollar[2].token, } } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:977 + // line internal/php5/php5.y:976 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token yyDollar[3].node.(*ast.StmtUnset).CloseParenthesisTkn = yyDollar[4].token yyDollar[3].node.(*ast.StmtUnset).SemiColonTkn = yyDollar[5].token - yyDollar[3].node.(*ast.StmtUnset).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) + yyDollar[3].node.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token) yyVAL.node = yyDollar[3].node } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:987 + // line internal/php5/php5.y:986 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3138,13 +3137,13 @@ yydefault: yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[6].node.(*ast.StmtForeach).Var } yyDollar[8].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[7].token - yyDollar[8].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) + yyDollar[8].node.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) yyVAL.node = yyDollar[8].node } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1005 + // line internal/php5/php5.y:1004 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3158,39 +3157,39 @@ yydefault: yyDollar[8].node.(*ast.StmtForeach).Var = yyDollar[6].node.(*ast.StmtForeach).Var } yyDollar[8].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[7].token - yyDollar[8].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) + yyDollar[8].node.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[8].node) yyVAL.node = yyDollar[8].node } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1023 + // line internal/php5/php5.y:1022 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtDeclare).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1034 + // line internal/php5/php5.y:1033 { yyVAL.node = &ast.StmtNop{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1041 + // line internal/php5/php5.y:1040 { - pos := position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) + pos := yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) if yyDollar[6].node != nil { - pos = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) } yyVAL.node = &ast.StmtTry{ @@ -3205,10 +3204,10 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1058 + // line internal/php5/php5.y:1057 { yyVAL.node = &ast.StmtThrow{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ThrowTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3216,13 +3215,13 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1067 + // line internal/php5/php5.y:1066 { yyVAL.node = &ast.StmtGoto{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), GotoTkn: yyDollar[1].token, Label: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3231,23 +3230,23 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1083 + // line internal/php5/php5.y:1082 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1087 + // line internal/php5/php5.y:1086 { catch := &ast.StmtCatch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), CatchTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Types: []ast.Vertex{yyDollar[3].node}, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -3261,16 +3260,16 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1112 + // line internal/php5/php5.y:1111 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1116 + // line internal/php5/php5.y:1115 { yyVAL.node = &ast.StmtFinally{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), FinallyTkn: yyDollar[1].token, OpenCurlyBracketTkn: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -3279,41 +3278,41 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1129 + // line internal/php5/php5.y:1128 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1133 + // line internal/php5/php5.y:1132 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1140 + // line internal/php5/php5.y:1139 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1144 + // line internal/php5/php5.y:1143 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1151 + // line internal/php5/php5.y:1150 { yyVAL.node = &ast.StmtCatch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), CatchTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Types: []ast.Vertex{yyDollar[3].node}, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -3326,7 +3325,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1175 + // line internal/php5/php5.y:1174 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3334,7 +3333,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1181 + // line internal/php5/php5.y:1180 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3343,56 +3342,56 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1191 + // line internal/php5/php5.y:1190 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1198 + // line internal/php5/php5.y:1197 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1205 + // line internal/php5/php5.y:1204 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1212 + // line internal/php5/php5.y:1211 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1216 + // line internal/php5/php5.y:1215 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1223 + // line internal/php5/php5.y:1222 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1227 + // line internal/php5/php5.y:1226 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1234 + // line internal/php5/php5.y:1233 { yyVAL.node = &ast.StmtFunction{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, FunctionName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3407,13 +3406,13 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1257 + // line internal/php5/php5.y:1256 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: - n.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) n.ClassName = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } @@ -3423,9 +3422,9 @@ yydefault: n.Stmts = yyDollar[6].list n.CloseCurlyBracket = yyDollar[7].token case *ast.StmtTrait: - n.Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) n.TraitName = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } @@ -3440,13 +3439,13 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1288 + // line internal/php5/php5.y:1287 { yyVAL.node = &ast.StmtInterface{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), InterfaceTkn: yyDollar[1].token, InterfaceName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3458,22 +3457,22 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1308 + // line internal/php5/php5.y:1307 { yyVAL.node = &ast.StmtClass{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), ClassTkn: yyDollar[1].token, } } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1315 + // line internal/php5/php5.y:1314 { yyVAL.node = &ast.StmtClass{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), Modifiers: []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3483,22 +3482,22 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1329 + // line internal/php5/php5.y:1328 { yyVAL.node = &ast.StmtTrait{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), TraitTkn: yyDollar[1].token, } } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1336 + // line internal/php5/php5.y:1335 { yyVAL.node = &ast.StmtClass{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), Modifiers: []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3508,38 +3507,38 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1353 + // line internal/php5/php5.y:1352 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1357 + // line internal/php5/php5.y:1356 { yyVAL.node = &ast.StmtClassExtends{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExtendTkn: yyDollar[1].token, ClassName: yyDollar[2].node, } } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1368 + // line internal/php5/php5.y:1367 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1375 + // line internal/php5/php5.y:1374 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1379 + // line internal/php5/php5.y:1378 { yyVAL.node = &ast.StmtInterfaceExtends{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ExtendsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3547,16 +3546,16 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1391 + // line internal/php5/php5.y:1390 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1395 + // line internal/php5/php5.y:1394 { yyVAL.node = &ast.StmtClassImplements{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ImplementsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3564,7 +3563,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1407 + // line internal/php5/php5.y:1406 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3572,7 +3571,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1413 + // line internal/php5/php5.y:1412 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3581,13 +3580,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1423 + // line internal/php5/php5.y:1422 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1427 + // line internal/php5/php5.y:1426 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3596,23 +3595,23 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1437 + // line internal/php5/php5.y:1436 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1441 + // line internal/php5/php5.y:1440 { yyVAL.node = &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1449 + // line internal/php5/php5.y:1448 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3622,7 +3621,7 @@ yydefault: } yyVAL.node = &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -3632,23 +3631,23 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1470 + // line internal/php5/php5.y:1469 { yyVAL.node = &ast.StmtFor{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1477 + // line internal/php5/php5.y:1476 { yyVAL.node = &ast.StmtFor{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndForTkn: yyDollar[3].token, @@ -3657,23 +3656,23 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1494 + // line internal/php5/php5.y:1493 { yyVAL.node = &ast.StmtForeach{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1501 + // line internal/php5/php5.y:1500 { yyVAL.node = &ast.StmtForeach{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndForeachTkn: yyDollar[3].token, @@ -3682,23 +3681,23 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1519 + // line internal/php5/php5.y:1518 { yyVAL.node = &ast.StmtDeclare{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1526 + // line internal/php5/php5.y:1525 { yyVAL.node = &ast.StmtDeclare{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndDeclareTkn: yyDollar[3].token, @@ -3707,14 +3706,14 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1544 + // line internal/php5/php5.y:1543 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3726,15 +3725,15 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1561 + // line internal/php5/php5.y:1560 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( yyDollar[1].node.(*ast.ParserSeparatedList).Items, &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3747,10 +3746,10 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1584 + // line internal/php5/php5.y:1583 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseList: yyDollar[2].list, CloseCurlyBracketTkn: yyDollar[3].token, @@ -3758,10 +3757,10 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1593 + // line internal/php5/php5.y:1592 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, CaseList: yyDollar[3].list, @@ -3770,10 +3769,10 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1603 + // line internal/php5/php5.y:1602 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, CaseList: yyDollar[2].list, @@ -3783,10 +3782,10 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1614 + // line internal/php5/php5.y:1613 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), Alt: true, ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, @@ -3797,16 +3796,16 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1630 + // line internal/php5/php5.y:1629 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1634 + // line internal/php5/php5.y:1633 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), CaseTkn: yyDollar[2].token, Cond: yyDollar[3].node, CaseSeparatorTkn: yyDollar[4].token, @@ -3815,10 +3814,10 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1644 + // line internal/php5/php5.y:1643 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), DefaultTkn: yyDollar[2].token, CaseSeparatorTkn: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -3826,35 +3825,35 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1657 + // line internal/php5/php5.y:1656 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1661 + // line internal/php5/php5.y:1660 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1669 + // line internal/php5/php5.y:1668 { yyVAL.node = &ast.StmtWhile{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1676 + // line internal/php5/php5.y:1675 { yyVAL.node = &ast.StmtWhile{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndWhileTkn: yyDollar[3].token, @@ -3863,16 +3862,16 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1695 + // line internal/php5/php5.y:1694 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1699 + // line internal/php5/php5.y:1698 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, Cond: yyDollar[3].node.(*ast.ParserBrackets).Child, @@ -3882,16 +3881,16 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1714 + // line internal/php5/php5.y:1713 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1718 + // line internal/php5/php5.y:1717 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), Alt: true, ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, @@ -3899,63 +3898,63 @@ yydefault: CloseParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: yyDollar[4].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[5].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[5].list), Stmts: yyDollar[5].list, }, }) } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1738 + // line internal/php5/php5.y:1737 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1742 + // line internal/php5/php5.y:1741 { yyVAL.node = &ast.StmtElse{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ElseTkn: yyDollar[1].token, Stmt: yyDollar[2].node, } } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1754 + // line internal/php5/php5.y:1753 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1758 + // line internal/php5/php5.y:1757 { yyVAL.node = &ast.StmtElse{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), Alt: true, ElseTkn: yyDollar[1].token, ColonTkn: yyDollar[2].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[3].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[3].list), Stmts: yyDollar[3].list, }, } } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1775 + // line internal/php5/php5.y:1774 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1779 + // line internal/php5/php5.y:1778 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1786 + // line internal/php5/php5.y:1785 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3963,7 +3962,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1792 + // line internal/php5/php5.y:1791 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3972,15 +3971,15 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1802 + // line internal/php5/php5.y:1801 { - pos := position.NewTokenPosition(yyDollar[4].token) + pos := yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - pos = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + pos = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - pos = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) + pos = yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - pos = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + pos = yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) } yyVAL.node = &ast.Parameter{ @@ -3989,9 +3988,9 @@ yydefault: AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4000,15 +3999,15 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1828 + // line internal/php5/php5.y:1827 { - pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) + pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { - pos = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - pos = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - pos = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) } yyVAL.node = &ast.Parameter{ @@ -4017,9 +4016,9 @@ yydefault: AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4030,52 +4029,52 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1860 + // line internal/php5/php5.y:1859 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1864 + // line internal/php5/php5.y:1863 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1872 + // line internal/php5/php5.y:1871 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1880 + // line internal/php5/php5.y:1879 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1888 + // line internal/php5/php5.y:1887 { yyVAL.node = &ast.ArgumentList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, } } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1896 + // line internal/php5/php5.y:1895 { argumentList := yyDollar[2].node.(*ast.ArgumentList) - argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) argumentList.OpenParenthesisTkn = yyDollar[1].token argumentList.CloseParenthesisTkn = yyDollar[3].token @@ -4083,14 +4082,14 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1905 + // line internal/php5/php5.y:1904 { yyVAL.node = &ast.ArgumentList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenParenthesisTkn: yyDollar[1].token, Arguments: []ast.Vertex{ &ast.Argument{ - Position: position.NewNodePosition(yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[2].node), Expr: yyDollar[2].node, }, }, @@ -4099,7 +4098,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1923 + // line internal/php5/php5.y:1922 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4107,7 +4106,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1929 + // line internal/php5/php5.y:1928 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4116,45 +4115,45 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1939 + // line internal/php5/php5.y:1938 { yyVAL.node = &ast.Argument{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Expr: yyDollar[1].node, } } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1946 + // line internal/php5/php5.y:1945 { yyVAL.node = &ast.Argument{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Expr: yyDollar[1].node, } } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1953 + // line internal/php5/php5.y:1952 { yyVAL.node = &ast.Argument{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1961 + // line internal/php5/php5.y:1960 { yyVAL.node = &ast.Argument{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), VariadicTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1972 + // line internal/php5/php5.y:1971 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4163,7 +4162,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1979 + // line internal/php5/php5.y:1978 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4171,12 +4170,12 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1989 + // line internal/php5/php5.y:1988 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4184,23 +4183,23 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2000 + // line internal/php5/php5.y:1999 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DollarTkn: yyDollar[1].token, VarName: yyDollar[2].node, } } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2008 + // line internal/php5/php5.y:2007 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), OpenBracketTkn: yyDollar[2].token, Child: yyDollar[3].node, CloseBracketTkn: yyDollar[4].token, @@ -4209,14 +4208,14 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2025 + // line internal/php5/php5.y:2024 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4228,14 +4227,14 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2042 + // line internal/php5/php5.y:2041 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4249,16 +4248,16 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2061 + // line internal/php5/php5.y:2060 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4269,16 +4268,16 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2079 + // line internal/php5/php5.y:2078 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4291,22 +4290,22 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2103 + // line internal/php5/php5.y:2102 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2107 + // line internal/php5/php5.y:2106 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2115 + // line internal/php5/php5.y:2114 { yyVAL.node = &ast.StmtPropertyList{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), Modifiers: yyDollar[1].list, Properties: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4315,25 +4314,25 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2125 + // line internal/php5/php5.y:2124 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token - yyDollar[1].node.(*ast.StmtClassConstList).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) + yyDollar[1].node.(*ast.StmtClassConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) yyVAL.node = yyDollar[1].node } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2131 + // line internal/php5/php5.y:2130 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2135 + // line internal/php5/php5.y:2134 { - pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) + pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { - pos = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) + pos = yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[8].node) } yyVAL.node = &ast.StmtClassMethod{ @@ -4342,7 +4341,7 @@ yydefault: FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, MethodName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4355,10 +4354,10 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2162 + // line internal/php5/php5.y:2161 { yyVAL.node = &ast.StmtTraitUse{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4367,7 +4366,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2175 + // line internal/php5/php5.y:2174 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4375,7 +4374,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2181 + // line internal/php5/php5.y:2180 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4384,19 +4383,19 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2191 + // line internal/php5/php5.y:2190 { yyVAL.node = &ast.StmtNop{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2198 + // line internal/php5/php5.y:2197 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenParenthesisTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, CloseParenthesisTkn: yyDollar[3].token, @@ -4404,31 +4403,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2210 + // line internal/php5/php5.y:2209 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2214 + // line internal/php5/php5.y:2213 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2221 + // line internal/php5/php5.y:2220 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2225 + // line internal/php5/php5.y:2224 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2232 + // line internal/php5/php5.y:2231 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4436,7 +4435,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2238 + // line internal/php5/php5.y:2237 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4444,10 +4443,10 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2246 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Ref: yyDollar[1].node, InsteadofTkn: yyDollar[2].token, Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4456,7 +4455,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2260 + // line internal/php5/php5.y:2259 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4464,7 +4463,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2266 + // line internal/php5/php5.y:2265 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4473,12 +4472,12 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2276 + // line internal/php5/php5.y:2275 { yyVAL.node = &ast.StmtTraitMethodRef{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4486,20 +4485,20 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2287 + // line internal/php5/php5.y:2286 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2294 + // line internal/php5/php5.y:2293 { yyVAL.node = &ast.StmtTraitMethodRef{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Method: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4507,15 +4506,15 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2310 + // line internal/php5/php5.y:2309 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4523,10 +4522,10 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2324 + // line internal/php5/php5.y:2323 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, @@ -4534,31 +4533,31 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2336 + // line internal/php5/php5.y:2335 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2340 + // line internal/php5/php5.y:2339 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2347 + // line internal/php5/php5.y:2346 { yyVAL.node = &ast.StmtNop{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2354 + // line internal/php5/php5.y:2353 { yyVAL.node = &ast.StmtStmtList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -4566,17 +4565,17 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2366 + // line internal/php5/php5.y:2365 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2370 + // line internal/php5/php5.y:2369 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4584,98 +4583,98 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2383 + // line internal/php5/php5.y:2382 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2387 + // line internal/php5/php5.y:2386 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2394 + // line internal/php5/php5.y:2393 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2398 + // line internal/php5/php5.y:2397 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2405 + // line internal/php5/php5.y:2404 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2413 + // line internal/php5/php5.y:2412 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2421 + // line internal/php5/php5.y:2420 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2429 + // line internal/php5/php5.y:2428 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2437 + // line internal/php5/php5.y:2436 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2445 + // line internal/php5/php5.y:2444 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2456 + // line internal/php5/php5.y:2455 { item := &ast.StmtProperty{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4689,14 +4688,14 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2475 + // line internal/php5/php5.y:2474 { item := &ast.StmtProperty{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4712,16 +4711,16 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2496 + // line internal/php5/php5.y:2495 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4733,16 +4732,16 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2515 + // line internal/php5/php5.y:2514 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4755,15 +4754,15 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2538 + // line internal/php5/php5.y:2537 { constList := yyDollar[1].node.(*ast.StmtClassConstList) - constList.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) + constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) constList.SeparatorTkns = append(constList.SeparatorTkns, yyDollar[2].token) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4775,16 +4774,16 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2556 + // line internal/php5/php5.y:2555 { yyVAL.node = &ast.StmtClassConstList{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), ConstTkn: yyDollar[1].token, Consts: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -4796,7 +4795,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2577 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4805,7 +4804,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2585 + // line internal/php5/php5.y:2584 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4813,19 +4812,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2595 + // line internal/php5/php5.y:2594 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2599 + // line internal/php5/php5.y:2598 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2606 + // line internal/php5/php5.y:2605 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4834,7 +4833,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2613 + // line internal/php5/php5.y:2612 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4842,22 +4841,22 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2622 + // line internal/php5/php5.y:2621 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2626 + // line internal/php5/php5.y:2625 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2633 + // line internal/php5/php5.y:2632 { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -4868,10 +4867,10 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2645 + // line internal/php5/php5.y:2644 { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: nil, OpenBracketTkn: yyDollar[1].token, Dim: yyDollar[2].node, @@ -4882,41 +4881,41 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2660 + // line internal/php5/php5.y:2659 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2664 + // line internal/php5/php5.y:2663 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2668 + // line internal/php5/php5.y:2667 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2675 + // line internal/php5/php5.y:2674 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2679 + // line internal/php5/php5.y:2678 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2686 + // line internal/php5/php5.y:2685 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, @@ -4926,19 +4925,19 @@ yydefault: } } else { yyVAL.node = &ast.ExprNew{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), Class: yyDollar[2].node, } } } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2707 { yyVAL.node = &ast.ExprAssign{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), Var: &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4951,10 +4950,10 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2724 + // line internal/php5/php5.y:2723 { yyVAL.node = &ast.ExprAssign{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -4962,10 +4961,10 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2733 + // line internal/php5/php5.y:2732 { yyVAL.node = &ast.ExprAssignReference{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -4974,12 +4973,12 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2743 + // line internal/php5/php5.y:2742 { var _new *ast.ExprNew if yyDollar[3].token != nil { _new = &ast.ExprNew{ - Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), NewTkn: yyDollar[4].token, Class: yyDollar[5].node, OpenParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, @@ -4989,14 +4988,14 @@ yydefault: } } else { _new = &ast.ExprNew{ - Position: position.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[5].node), NewTkn: yyDollar[4].token, Class: yyDollar[5].node, } } yyVAL.node = &ast.ExprAssignReference{ - Position: position.NewNodesPosition(yyDollar[1].node, _new), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, _new), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -5005,20 +5004,20 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2772 + // line internal/php5/php5.y:2771 { yyVAL.node = &ast.ExprClone{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CloneTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2780 + // line internal/php5/php5.y:2779 { yyVAL.node = &ast.ExprAssignPlus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5026,10 +5025,10 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2789 + // line internal/php5/php5.y:2788 { yyVAL.node = &ast.ExprAssignMinus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5037,10 +5036,10 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2798 + // line internal/php5/php5.y:2797 { yyVAL.node = &ast.ExprAssignMul{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5048,10 +5047,10 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2807 + // line internal/php5/php5.y:2806 { yyVAL.node = &ast.ExprAssignPow{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5059,10 +5058,10 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2816 + // line internal/php5/php5.y:2815 { yyVAL.node = &ast.ExprAssignDiv{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5070,10 +5069,10 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2825 + // line internal/php5/php5.y:2824 { yyVAL.node = &ast.ExprAssignConcat{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5081,10 +5080,10 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2834 + // line internal/php5/php5.y:2833 { yyVAL.node = &ast.ExprAssignMod{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5092,10 +5091,10 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2843 + // line internal/php5/php5.y:2842 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5103,10 +5102,10 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2852 + // line internal/php5/php5.y:2851 { yyVAL.node = &ast.ExprAssignBitwiseOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5114,10 +5113,10 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2861 + // line internal/php5/php5.y:2860 { yyVAL.node = &ast.ExprAssignBitwiseXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5125,10 +5124,10 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2870 + // line internal/php5/php5.y:2869 { yyVAL.node = &ast.ExprAssignShiftLeft{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5136,10 +5135,10 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2879 + // line internal/php5/php5.y:2878 { yyVAL.node = &ast.ExprAssignShiftRight{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5147,50 +5146,50 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2888 + // line internal/php5/php5.y:2887 { yyVAL.node = &ast.ExprPostInc{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Var: yyDollar[1].node, IncTkn: yyDollar[2].token, } } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2896 + // line internal/php5/php5.y:2895 { yyVAL.node = &ast.ExprPreInc{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2904 + // line internal/php5/php5.y:2903 { yyVAL.node = &ast.ExprPostDec{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Var: yyDollar[1].node, DecTkn: yyDollar[2].token, } } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2912 + // line internal/php5/php5.y:2911 { yyVAL.node = &ast.ExprPreDec{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DecTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2920 + // line internal/php5/php5.y:2919 { yyVAL.node = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5198,10 +5197,10 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2929 + // line internal/php5/php5.y:2928 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5209,10 +5208,10 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2938 + // line internal/php5/php5.y:2937 { yyVAL.node = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5220,10 +5219,10 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2947 + // line internal/php5/php5.y:2946 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5231,10 +5230,10 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2956 + // line internal/php5/php5.y:2955 { yyVAL.node = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5242,10 +5241,10 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2965 + // line internal/php5/php5.y:2964 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5253,10 +5252,10 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2974 + // line internal/php5/php5.y:2973 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5264,10 +5263,10 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2983 + // line internal/php5/php5.y:2982 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5275,10 +5274,10 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2992 + // line internal/php5/php5.y:2991 { yyVAL.node = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5286,10 +5285,10 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3001 + // line internal/php5/php5.y:3000 { yyVAL.node = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5297,10 +5296,10 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3010 + // line internal/php5/php5.y:3009 { yyVAL.node = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5308,10 +5307,10 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3019 + // line internal/php5/php5.y:3018 { yyVAL.node = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5319,10 +5318,10 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3028 + // line internal/php5/php5.y:3027 { yyVAL.node = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5330,10 +5329,10 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3037 + // line internal/php5/php5.y:3036 { yyVAL.node = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5341,10 +5340,10 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3046 + // line internal/php5/php5.y:3045 { yyVAL.node = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5352,10 +5351,10 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3055 + // line internal/php5/php5.y:3054 { yyVAL.node = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5363,10 +5362,10 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3064 + // line internal/php5/php5.y:3063 { yyVAL.node = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5374,50 +5373,50 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3073 + // line internal/php5/php5.y:3072 { yyVAL.node = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), PlusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3081 + // line internal/php5/php5.y:3080 { yyVAL.node = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), MinusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3089 + // line internal/php5/php5.y:3088 { yyVAL.node = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExclamationTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3097 + // line internal/php5/php5.y:3096 { yyVAL.node = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), TildaTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3105 + // line internal/php5/php5.y:3104 { yyVAL.node = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5425,10 +5424,10 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3114 + // line internal/php5/php5.y:3113 { yyVAL.node = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5436,10 +5435,10 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3123 + // line internal/php5/php5.y:3122 { yyVAL.node = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5447,10 +5446,10 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3132 + // line internal/php5/php5.y:3131 { yyVAL.node = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5458,10 +5457,10 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3141 + // line internal/php5/php5.y:3140 { yyVAL.node = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5469,10 +5468,10 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3150 + // line internal/php5/php5.y:3149 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5480,10 +5479,10 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3159 + // line internal/php5/php5.y:3158 { yyVAL.node = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5491,10 +5490,10 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3168 + // line internal/php5/php5.y:3167 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5502,10 +5501,10 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3177 + // line internal/php5/php5.y:3176 { yyVAL.node = &ast.ExprInstanceOf{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Expr: yyDollar[1].node, InstanceOfTkn: yyDollar[2].token, Class: yyDollar[3].node, @@ -5513,22 +5512,22 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3186 + // line internal/php5/php5.y:3185 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3190 + // line internal/php5/php5.y:3189 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3194 + // line internal/php5/php5.y:3193 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -5538,32 +5537,32 @@ yydefault: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3227 + // line internal/php5/php5.y:3226 { yyVAL.node = &ast.ExprTernary{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, @@ -5573,10 +5572,10 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3237 { yyVAL.node = &ast.ExprTernary{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, @@ -5585,92 +5584,92 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3248 + // line internal/php5/php5.y:3247 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3252 + // line internal/php5/php5.y:3251 { yyVAL.node = &ast.ExprCastInt{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3260 + // line internal/php5/php5.y:3259 { yyVAL.node = &ast.ExprCastDouble{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3268 + // line internal/php5/php5.y:3267 { yyVAL.node = &ast.ExprCastString{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3276 + // line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprCastArray{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3284 + // line internal/php5/php5.y:3283 { yyVAL.node = &ast.ExprCastObject{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3292 + // line internal/php5/php5.y:3291 { yyVAL.node = &ast.ExprCastBool{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3300 + // line internal/php5/php5.y:3299 { yyVAL.node = &ast.ExprCastUnset{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3308 + // line internal/php5/php5.y:3307 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, } if yyDollar[2].node == nil { - exit.Position = position.NewTokenPosition(yyDollar[1].token) + exit.Position = yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token) } else { - exit.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn @@ -5680,38 +5679,38 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3325 + // line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprErrorSuppress{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AtTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3333 + // line internal/php5/php5.y:3332 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3337 + // line internal/php5/php5.y:3336 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3341 + // line internal/php5/php5.y:3340 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3345 + // line internal/php5/php5.y:3344 { yyVAL.node = &ast.ExprShellExec{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBacktickTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseBacktickTkn: yyDollar[3].token, @@ -5719,29 +5718,29 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3354 + // line internal/php5/php5.y:3353 { yyVAL.node = &ast.ExprPrint{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), PrintTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3362 + // line internal/php5/php5.y:3361 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), YieldTkn: yyDollar[1].token, } } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3369 + // line internal/php5/php5.y:3368 { yyVAL.node = &ast.ExprClosure{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, @@ -5756,10 +5755,10 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3385 + // line internal/php5/php5.y:3384 { yyVAL.node = &ast.ExprClosure{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[10].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token), StaticTkn: yyDollar[1].token, FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -5775,30 +5774,30 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3405 + // line internal/php5/php5.y:3404 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, Value: yyDollar[2].node, } } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3413 + // line internal/php5/php5.y:3412 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, Value: yyDollar[2].node, } } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3421 + // line internal/php5/php5.y:3420 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, @@ -5807,10 +5806,10 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3431 + // line internal/php5/php5.y:3430 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, @@ -5819,10 +5818,10 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3444 + // line internal/php5/php5.y:3443 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -5831,10 +5830,10 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3454 + // line internal/php5/php5.y:3453 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -5843,12 +5842,12 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3464 + // line internal/php5/php5.y:3463 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ScalarString{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5859,10 +5858,10 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3478 + // line internal/php5/php5.y:3477 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -5871,10 +5870,10 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3491 + // line internal/php5/php5.y:3490 { yyVAL.node = &ast.ExprArray{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -5884,10 +5883,10 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3502 + // line internal/php5/php5.y:3501 { yyVAL.node = &ast.ExprArray{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -5896,22 +5895,22 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3515 + // line internal/php5/php5.y:3514 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3522 + // line internal/php5/php5.y:3521 { yyVAL.node = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3526 + // line internal/php5/php5.y:3525 { yyVAL.node = &ast.ExprClosureUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Uses: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -5921,12 +5920,12 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3540 + // line internal/php5/php5.y:3539 { variable := &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -5939,15 +5938,15 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3556 + // line internal/php5/php5.y:3555 { reference := &ast.ExprReference{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), AmpersandTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -5961,14 +5960,14 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3576 + // line internal/php5/php5.y:3575 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5978,17 +5977,17 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3591 + // line internal/php5/php5.y:3590 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprReference{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), AmpersandTkn: yyDollar[1].token, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -5999,12 +5998,12 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3613 + // line internal/php5/php5.y:3612 { yyVAL.node = &ast.ExprFunctionCall{ - Position: position.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), Function: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -6016,12 +6015,12 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3628 + // line internal/php5/php5.y:3627 { yyVAL.node = &ast.ExprFunctionCall{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), Function: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6035,12 +6034,12 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3645 + // line internal/php5/php5.y:3644 { yyVAL.node = &ast.ExprFunctionCall{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Function: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6053,10 +6052,10 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3661 + // line internal/php5/php5.y:3660 { yyVAL.node = &ast.ExprStaticCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6068,10 +6067,10 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3673 { yyVAL.node = &ast.ExprStaticCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6083,10 +6082,10 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3687 + // line internal/php5/php5.y:3686 { yyVAL.node = &ast.ExprStaticCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6098,10 +6097,10 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3700 + // line internal/php5/php5.y:3699 { yyVAL.node = &ast.ExprStaticCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -6113,10 +6112,10 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3713 + // line internal/php5/php5.y:3712 { yyVAL.node = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -6126,30 +6125,30 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3727 + // line internal/php5/php5.y:3726 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3735 + // line internal/php5/php5.y:3734 { yyVAL.node = &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3743 + // line internal/php5/php5.y:3742 { yyVAL.node = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6158,10 +6157,10 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3753 + // line internal/php5/php5.y:3752 { yyVAL.node = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6169,20 +6168,20 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3765 + // line internal/php5/php5.y:3764 { yyVAL.node = &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3773 + // line internal/php5/php5.y:3772 { yyVAL.node = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6191,10 +6190,10 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3783 + // line internal/php5/php5.y:3782 { yyVAL.node = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6202,19 +6201,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3795 + // line internal/php5/php5.y:3794 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3799 + // line internal/php5/php5.y:3798 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3806 + // line internal/php5/php5.y:3805 { yyVAL.node = yyDollar[1].node @@ -6224,12 +6223,12 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } @@ -6238,37 +6237,37 @@ yydefault: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - *yyVAL.node.GetPosition() = *position.NewNodesPosition(yyVAL.node, nn) + *yyVAL.node.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3840 + // line internal/php5/php5.y:3839 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3848 + // line internal/php5/php5.y:3847 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3852 + // line internal/php5/php5.y:3851 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3860 + // line internal/php5/php5.y:3859 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6276,39 +6275,39 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3869 + // line internal/php5/php5.y:3868 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3873 + // line internal/php5/php5.y:3872 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenBracketTkn: yyDollar[1].token, CloseBracketTkn: yyDollar[2].token, } } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3881 + // line internal/php5/php5.y:3880 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3888 + // line internal/php5/php5.y:3887 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3892 + // line internal/php5/php5.y:3891 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6316,132 +6315,132 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3902 + // line internal/php5/php5.y:3901 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3909 + // line internal/php5/php5.y:3908 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3913 + // line internal/php5/php5.y:3912 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3920 + // line internal/php5/php5.y:3919 { yyVAL.node = &ast.ScalarLnumber{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3928 + // line internal/php5/php5.y:3927 { yyVAL.node = &ast.ScalarDnumber{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3936 + // line internal/php5/php5.y:3935 { yyVAL.node = &ast.ScalarString{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3944 + // line internal/php5/php5.y:3943 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3952 + // line internal/php5/php5.y:3951 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3960 + // line internal/php5/php5.y:3959 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3968 + // line internal/php5/php5.y:3967 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3976 + // line internal/php5/php5.y:3975 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3984 + // line internal/php5/php5.y:3983 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3992 + // line internal/php5/php5.y:3991 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4000 + // line internal/php5/php5.y:3999 { yyVAL.node = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6451,24 +6450,24 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4015 + // line internal/php5/php5.y:4014 { yyVAL.node = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenHeredocTkn: yyDollar[1].token, CloseHeredocTkn: yyDollar[2].token, } } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4026 + // line internal/php5/php5.y:4025 { yyVAL.node = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -6476,30 +6475,30 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4042 + // line internal/php5/php5.y:4041 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4049 + // line internal/php5/php5.y:4048 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4053 + // line internal/php5/php5.y:4052 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4057 + // line internal/php5/php5.y:4056 { yyVAL.node = &ast.ExprConstFetch{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -6507,12 +6506,12 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4068 + // line internal/php5/php5.y:4067 { yyVAL.node = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6522,12 +6521,12 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4081 + // line internal/php5/php5.y:4080 { yyVAL.node = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6536,10 +6535,10 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4093 + // line internal/php5/php5.y:4092 { yyVAL.node = &ast.ExprArray{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6549,10 +6548,10 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4103 { yyVAL.node = &ast.ExprArray{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6561,32 +6560,32 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4114 + // line internal/php5/php5.y:4113 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4118 + // line internal/php5/php5.y:4117 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4126 + // line internal/php5/php5.y:4125 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4133 + // line internal/php5/php5.y:4132 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6595,10 +6594,10 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4143 + // line internal/php5/php5.y:4142 { yyVAL.node = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6606,10 +6605,10 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4152 + // line internal/php5/php5.y:4151 { yyVAL.node = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6617,10 +6616,10 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4161 + // line internal/php5/php5.y:4160 { yyVAL.node = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6628,10 +6627,10 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4170 + // line internal/php5/php5.y:4169 { yyVAL.node = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6639,10 +6638,10 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4179 + // line internal/php5/php5.y:4178 { yyVAL.node = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6650,10 +6649,10 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4188 + // line internal/php5/php5.y:4187 { yyVAL.node = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6661,30 +6660,30 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4197 + // line internal/php5/php5.y:4196 { yyVAL.node = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExclamationTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4205 + // line internal/php5/php5.y:4204 { yyVAL.node = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), TildaTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4213 + // line internal/php5/php5.y:4212 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6692,10 +6691,10 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4222 + // line internal/php5/php5.y:4221 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6703,10 +6702,10 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4231 + // line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6714,10 +6713,10 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4240 + // line internal/php5/php5.y:4239 { yyVAL.node = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6725,10 +6724,10 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4249 + // line internal/php5/php5.y:4248 { yyVAL.node = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6736,10 +6735,10 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4258 + // line internal/php5/php5.y:4257 { yyVAL.node = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6747,10 +6746,10 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4267 + // line internal/php5/php5.y:4266 { yyVAL.node = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6758,10 +6757,10 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4276 + // line internal/php5/php5.y:4275 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6769,10 +6768,10 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4285 + // line internal/php5/php5.y:4284 { yyVAL.node = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6780,10 +6779,10 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4294 + // line internal/php5/php5.y:4293 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6791,10 +6790,10 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4303 + // line internal/php5/php5.y:4302 { yyVAL.node = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6802,10 +6801,10 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4312 + // line internal/php5/php5.y:4311 { yyVAL.node = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6813,10 +6812,10 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6824,10 +6823,10 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4330 + // line internal/php5/php5.y:4329 { yyVAL.node = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6835,10 +6834,10 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4338 { yyVAL.node = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6846,10 +6845,10 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4348 + // line internal/php5/php5.y:4347 { yyVAL.node = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6857,10 +6856,10 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4357 + // line internal/php5/php5.y:4356 { yyVAL.node = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6868,10 +6867,10 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4366 + // line internal/php5/php5.y:4365 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6879,10 +6878,10 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4375 + // line internal/php5/php5.y:4374 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -6890,10 +6889,10 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4384 + // line internal/php5/php5.y:4383 { yyVAL.node = &ast.ExprTernary{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, @@ -6902,10 +6901,10 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4394 + // line internal/php5/php5.y:4393 { yyVAL.node = &ast.ExprTernary{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, @@ -6915,30 +6914,30 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4405 + // line internal/php5/php5.y:4404 { yyVAL.node = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), PlusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4413 + // line internal/php5/php5.y:4412 { yyVAL.node = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), MinusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4421 + // line internal/php5/php5.y:4420 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6946,18 +6945,18 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4433 + // line internal/php5/php5.y:4432 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4437 + // line internal/php5/php5.y:4436 { yyVAL.node = &ast.ExprConstFetch{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -6965,12 +6964,12 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4448 + // line internal/php5/php5.y:4447 { yyVAL.node = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6980,12 +6979,12 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4461 + // line internal/php5/php5.y:4460 { yyVAL.node = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6994,12 +6993,12 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4476 + // line internal/php5/php5.y:4475 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7007,28 +7006,28 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4487 + // line internal/php5/php5.y:4486 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4491 + // line internal/php5/php5.y:4490 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4495 + // line internal/php5/php5.y:4494 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4499 + // line internal/php5/php5.y:4498 { yyVAL.node = &ast.ScalarEncapsed{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenQoteTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseQoteTkn: yyDollar[1].token, @@ -7036,10 +7035,10 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4508 + // line internal/php5/php5.y:4507 { yyVAL.node = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseHeredocTkn: yyDollar[3].token, @@ -7047,23 +7046,23 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4517 + // line internal/php5/php5.y:4516 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4528 + // line internal/php5/php5.y:4527 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4531 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7074,22 +7073,22 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4544 + // line internal/php5/php5.y:4543 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4548 + // line internal/php5/php5.y:4547 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4555 + // line internal/php5/php5.y:4554 { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), Key: yyDollar[3].node, DoubleArrowTkn: yyDollar[4].token, Val: yyDollar[5].node, @@ -7102,10 +7101,10 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4569 + // line internal/php5/php5.y:4568 { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodePosition(yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), Val: yyDollar[3].node, } @@ -7116,12 +7115,12 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4581 + // line internal/php5/php5.y:4580 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: yyDollar[3].node, @@ -7131,12 +7130,12 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4594 + // line internal/php5/php5.y:4593 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Val: yyDollar[1].node, }, }, @@ -7144,22 +7143,22 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4608 + // line internal/php5/php5.y:4607 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4612 + // line internal/php5/php5.y:4611 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4619 + // line internal/php5/php5.y:4618 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7167,10 +7166,10 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4628 + // line internal/php5/php5.y:4627 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7178,25 +7177,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4641 + // line internal/php5/php5.y:4640 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4649 + // line internal/php5/php5.y:4648 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4656 + // line internal/php5/php5.y:4655 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4663 + // line internal/php5/php5.y:4662 { yyVAL.node = yyDollar[1].node @@ -7208,7 +7207,7 @@ yydefault: case *ast.ExprArrayDimFetch: mc := yyDollar[4].list[0].(*ast.ExprMethodCall) yyDollar[3].list = append(yyDollar[3].list, &ast.ExprFunctionCall{ - Position: position.NewNodePosition(mc), + Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -7227,22 +7226,22 @@ yydefault: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } @@ -7251,47 +7250,47 @@ yydefault: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprArrayDimFetch: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprPropertyFetch: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn case *ast.ExprMethodCall: nn.Var = yyVAL.node - nn.Position = position.NewNodesPosition(yyVAL.node, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition(yyVAL.node, nn) yyVAL.node = nn } } } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4738 + // line internal/php5/php5.y:4737 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4745 + // line internal/php5/php5.y:4744 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4749 + // line internal/php5/php5.y:4748 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4757 + // line internal/php5/php5.y:4756 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7302,7 +7301,7 @@ yydefault: case *ast.ExprArrayDimFetch: mc := yyDollar[3].list[0].(*ast.ExprMethodCall) yyDollar[2].list = append(yyDollar[2].list, &ast.ExprFunctionCall{ - Position: position.NewNodePosition(mc), + Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -7321,10 +7320,10 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4787 + // line internal/php5/php5.y:4786 { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7335,10 +7334,10 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4799 + // line internal/php5/php5.y:4798 { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7349,10 +7348,10 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4814 + // line internal/php5/php5.y:4813 { yyVAL.node = &ast.ExprMethodCall{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), OpenParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[1].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, @@ -7361,35 +7360,35 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4827 + // line internal/php5/php5.y:4826 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4831 + // line internal/php5/php5.y:4830 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4835 + // line internal/php5/php5.y:4834 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4842 + // line internal/php5/php5.y:4841 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4845 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node - yyDollar[1].list[i].(*ast.ExprVariable).Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) + yyDollar[1].list[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) yyDollar[2].node = yyDollar[1].list[i] } @@ -7397,10 +7396,10 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4859 + // line internal/php5/php5.y:4858 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -7408,10 +7407,10 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4867 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -7419,16 +7418,16 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4880 + // line internal/php5/php5.y:4879 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4887 + // line internal/php5/php5.y:4886 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7437,10 +7436,10 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4897 + // line internal/php5/php5.y:4896 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7449,35 +7448,35 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4909 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4914 + // line internal/php5/php5.y:4913 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4918 + // line internal/php5/php5.y:4917 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4926 + // line internal/php5/php5.y:4925 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4929 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node - yyDollar[1].list[i].(*ast.ExprVariable).Position = position.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) + yyDollar[1].list[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) yyDollar[2].node = yyDollar[1].list[i] } @@ -7485,16 +7484,16 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4940 + // line internal/php5/php5.y:4939 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4946 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7503,10 +7502,10 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4957 + // line internal/php5/php5.y:4956 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7515,18 +7514,18 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4967 + // line internal/php5/php5.y:4966 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4975 + // line internal/php5/php5.y:4974 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7534,13 +7533,13 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4986 + // line internal/php5/php5.y:4985 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), OpenBracketTkn: yyDollar[2].token, Child: yyDollar[3].node, CloseBracketTkn: yyDollar[4].token, @@ -7549,39 +7548,39 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5002 + // line internal/php5/php5.y:5001 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5006 + // line internal/php5/php5.y:5005 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5014 + // line internal/php5/php5.y:5013 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5018 + // line internal/php5/php5.y:5017 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Property: yyDollar[1].node, }, } } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5030 + // line internal/php5/php5.y:5029 { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7592,10 +7591,10 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5042 + // line internal/php5/php5.y:5041 { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), Var: nil, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -7606,31 +7605,31 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5054 + // line internal/php5/php5.y:5053 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Property: yyDollar[1].node, }, } } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5065 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5074 + // line internal/php5/php5.y:5073 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -7638,27 +7637,27 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5086 + // line internal/php5/php5.y:5085 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), DollarTkn: yyDollar[1].token, }, } } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5095 + // line internal/php5/php5.y:5094 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), DollarTkn: yyDollar[2].token, }) } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5105 + // line internal/php5/php5.y:5104 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7667,7 +7666,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5111 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7675,16 +7674,16 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5121 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Val: yyDollar[1].node, } } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5128 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7694,9 +7693,9 @@ yydefault: } yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Val: &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -7707,19 +7706,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5150 + // line internal/php5/php5.y:5149 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5158 + // line internal/php5/php5.y:5157 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5162 + // line internal/php5/php5.y:5161 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7730,10 +7729,10 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5174 + // line internal/php5/php5.y:5173 { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), Key: yyDollar[3].node, DoubleArrowTkn: yyDollar[4].token, Val: yyDollar[5].node, @@ -7746,10 +7745,10 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5187 { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodePosition(yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), Val: yyDollar[3].node, } @@ -7760,12 +7759,12 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5200 + // line internal/php5/php5.y:5199 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: yyDollar[3].node, @@ -7775,12 +7774,12 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5213 + // line internal/php5/php5.y:5212 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Val: yyDollar[1].node, }, }, @@ -7788,14 +7787,14 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5224 + // line internal/php5/php5.y:5223 { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), Key: yyDollar[3].node, DoubleArrowTkn: yyDollar[4].token, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node), AmpersandTkn: yyDollar[5].token, Var: yyDollar[6].node, }, @@ -7808,12 +7807,12 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5242 + // line internal/php5/php5.y:5241 { arrayItem := &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), AmpersandTkn: yyDollar[3].token, Var: yyDollar[4].node, }, @@ -7826,16 +7825,16 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5258 + // line internal/php5/php5.y:5257 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), AmpersandTkn: yyDollar[3].token, Var: yyDollar[4].node, }, @@ -7845,14 +7844,14 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5274 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, }, @@ -7862,18 +7861,18 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5293 + // line internal/php5/php5.y:5292 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5297 + // line internal/php5/php5.y:5296 { yyVAL.list = append( yyDollar[1].list, &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -7881,17 +7880,17 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5307 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5312 + // line internal/php5/php5.y:5311 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7900,12 +7899,12 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5326 + // line internal/php5/php5.y:5325 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7913,14 +7912,14 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5337 + // line internal/php5/php5.y:5336 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -7932,21 +7931,21 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5354 + // line internal/php5/php5.y:5353 { yyVAL.node = &ast.ExprPropertyFetch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, }, ObjectOperatorTkn: yyDollar[2].token, Property: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -7954,13 +7953,13 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5374 + // line internal/php5/php5.y:5373 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Position: position.NewNodePosition(yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[2].node), VarName: yyDollar[2].node, }, CloseBracketTkn: yyDollar[3].token, @@ -7968,15 +7967,15 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5385 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -7986,17 +7985,17 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5401 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -8010,10 +8009,10 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5424 + // line internal/php5/php5.y:5423 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -8021,28 +8020,28 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5436 + // line internal/php5/php5.y:5435 { yyVAL.node = &ast.ScalarString{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5444 + // line internal/php5/php5.y:5443 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { yyVAL.node = &ast.ScalarLnumber{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } else { yyVAL.node = &ast.ScalarString{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } @@ -8050,12 +8049,12 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5461 + // line internal/php5/php5.y:5460 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -8063,10 +8062,10 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5475 + // line internal/php5/php5.y:5474 { yyVAL.node = &ast.ExprIsset{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), IssetTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -8076,10 +8075,10 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5486 + // line internal/php5/php5.y:5485 { yyVAL.node = &ast.ExprEmpty{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EmptyTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -8088,10 +8087,10 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5496 + // line internal/php5/php5.y:5495 { yyVAL.node = &ast.ExprEmpty{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EmptyTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -8100,30 +8099,30 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5505 { yyVAL.node = &ast.ExprInclude{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5514 + // line internal/php5/php5.y:5513 { yyVAL.node = &ast.ExprIncludeOnce{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5522 + // line internal/php5/php5.y:5521 { yyVAL.node = &ast.ExprEval{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EvalTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -8132,27 +8131,27 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5532 + // line internal/php5/php5.y:5531 { yyVAL.node = &ast.ExprRequire{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5540 + // line internal/php5/php5.y:5539 { yyVAL.node = &ast.ExprRequireOnce{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireOnceTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5551 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8160,7 +8159,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5557 + // line internal/php5/php5.y:5556 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8169,26 +8168,26 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5566 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5571 + // line internal/php5/php5.y:5570 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5578 + // line internal/php5/php5.y:5577 { yyVAL.node = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -8196,14 +8195,14 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5590 { yyVAL.node = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -8211,14 +8210,14 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5606 { yyVAL.node = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -8226,14 +8225,14 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5623 + // line internal/php5/php5.y:5622 { yyVAL.node = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 95abd7e..f26e824 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -4,7 +4,6 @@ package php5 import ( "strconv" - "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) @@ -266,7 +265,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = &ast.Root{ - Position: position.NewNodeListPosition($1), + Position: yylex.(*Parser).builder.NewNodeListPosition($1), Stmts: $1, EndTkn: yylex.(*Parser).currentToken, } @@ -292,7 +291,7 @@ namespace_name: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -302,7 +301,7 @@ namespace_name: | namespace_name T_NS_SEPARATOR T_STRING { part := &ast.NameNamePart{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, } @@ -335,7 +334,7 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -345,10 +344,10 @@ top_statement: | T_NAMESPACE namespace_name ';' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -358,10 +357,10 @@ top_statement: | T_NAMESPACE namespace_name '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -373,7 +372,7 @@ top_statement: | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -383,7 +382,7 @@ top_statement: | T_USE use_declarations ';' { $$ = &ast.StmtUse{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), UseTkn: $1, UseDeclarations: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -393,10 +392,10 @@ top_statement: | T_USE T_FUNCTION use_function_declarations ';' { $$ = &ast.StmtUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -408,10 +407,10 @@ top_statement: | T_USE T_CONST use_const_declarations ';' { $$ = &ast.StmtUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -423,7 +422,7 @@ top_statement: | constant_declaration ';' { $1.(*ast.StmtConstList).SemiColonTkn = $2 - $1.(*ast.StmtConstList).Position = position.NewNodeTokenPosition($1, $2) + $1.(*ast.StmtConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $2) $$ = $1 } ; @@ -448,9 +447,9 @@ use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -459,15 +458,15 @@ use_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -476,10 +475,10 @@ use_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -488,16 +487,16 @@ use_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -525,9 +524,9 @@ use_function_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -536,15 +535,15 @@ use_function_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -553,10 +552,10 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -565,16 +564,16 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -602,9 +601,9 @@ use_const_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -613,15 +612,15 @@ use_const_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -630,10 +629,10 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -642,16 +641,16 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -663,12 +662,12 @@ constant_declaration: constant_declaration ',' T_STRING '=' static_scalar { constList := $1.(*ast.StmtConstList) - constList.Position = position.NewNodesPosition($1, $5) + constList.Position = yylex.(*Parser).builder.NewNodesPosition($1, $5) constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -681,13 +680,13 @@ constant_declaration: | T_CONST T_STRING '=' static_scalar { $$ = &ast.StmtConstList{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), ConstTkn: $1, Consts: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $4), Name: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -734,7 +733,7 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -752,9 +751,9 @@ statement: | T_STRING ':' { $$ = &ast.StmtLabel{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), LabelName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -767,7 +766,7 @@ unticked_statement: '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -775,11 +774,11 @@ unticked_statement: } | T_IF parenthesis_expr statement elseif_list else_single { - pos := position.NewTokenNodePosition($1, $3) + pos := yylex.(*Parser).builder.NewTokenNodePosition($1, $3) if $5 != nil { - pos = position.NewTokenNodePosition($1, $5) + pos = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) } else if len($4) > 0 { - pos = position.NewTokenNodeListPosition($1, $4) + pos = yylex.(*Parser).builder.NewTokenNodeListPosition($1, $4) } $$ = &ast.StmtIf{ @@ -796,7 +795,7 @@ unticked_statement: | T_IF parenthesis_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' { $$ = &ast.StmtIf{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, @@ -804,7 +803,7 @@ unticked_statement: CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($4), + Position: yylex.(*Parser).builder.NewNodeListPosition($4), Stmts: $4, }, ElseIf: $5, @@ -819,14 +818,14 @@ unticked_statement: $3.(*ast.StmtWhile).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn $3.(*ast.StmtWhile).Cond = $2.(*ast.ParserBrackets).Child $3.(*ast.StmtWhile).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn - $3.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $3) $$ = $3 } | T_DO statement T_WHILE parenthesis_expr ';' { $$ = &ast.StmtDo{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -849,7 +848,7 @@ unticked_statement: $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 - $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) $$ = $9 } @@ -859,14 +858,14 @@ unticked_statement: $3.(*ast.StmtSwitch).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn $3.(*ast.StmtSwitch).Cond = $2.(*ast.ParserBrackets).Child $3.(*ast.StmtSwitch).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn - $3.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $3) + $3.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $3) $$ = $3 } | T_BREAK ';' { $$ = &ast.StmtBreak{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), BreakTkn: $1, SemiColonTkn: $2, } @@ -874,7 +873,7 @@ unticked_statement: | T_BREAK expr ';' { $$ = &ast.StmtBreak{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -883,7 +882,7 @@ unticked_statement: | T_CONTINUE ';' { $$ = &ast.StmtContinue{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), ContinueTkn: $1, SemiColonTkn: $2, } @@ -891,7 +890,7 @@ unticked_statement: | T_CONTINUE expr ';' { $$ = &ast.StmtContinue{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -900,7 +899,7 @@ unticked_statement: | T_RETURN ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), ReturnTkn: $1, SemiColonTkn: $2, } @@ -908,7 +907,7 @@ unticked_statement: | T_RETURN expr_without_variable ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -917,7 +916,7 @@ unticked_statement: | T_RETURN variable ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -926,7 +925,7 @@ unticked_statement: | yield_expr ';' { $$ = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -936,7 +935,7 @@ unticked_statement: $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) - $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -945,7 +944,7 @@ unticked_statement: $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) - $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -953,14 +952,14 @@ unticked_statement: { $2.(*ast.StmtEcho).EchoTkn = $1 $2.(*ast.StmtEcho).SemiColonTkn = $3 - $2.(*ast.StmtEcho).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtEcho).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } | T_INLINE_HTML { $$ = &ast.StmtInlineHtml{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), InlineHtmlTkn: $1, Value: $1.Value, } @@ -968,7 +967,7 @@ unticked_statement: | expr ';' { $$ = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -979,7 +978,7 @@ unticked_statement: $3.(*ast.StmtUnset).OpenParenthesisTkn = $2 $3.(*ast.StmtUnset).CloseParenthesisTkn = $4 $3.(*ast.StmtUnset).SemiColonTkn = $5 - $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $5) + $3.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition($1, $5) $$ = $3 } @@ -997,7 +996,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1015,7 +1014,7 @@ unticked_statement: $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var } $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $8) + $8.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) $$ = $8 } @@ -1026,22 +1025,22 @@ unticked_statement: $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 - $5.(*ast.StmtDeclare).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | T_TRY '{' inner_statement_list '}' catch_statement finally_statement { - pos := position.NewTokenNodeListPosition($1, $5) + pos := yylex.(*Parser).builder.NewTokenNodeListPosition($1, $5) if $6 != nil { - pos = position.NewTokenNodePosition($1, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($1, $6) } $$ = &ast.StmtTry{ @@ -1057,7 +1056,7 @@ unticked_statement: | T_THROW expr ';' { $$ = &ast.StmtThrow{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ThrowTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1066,10 +1065,10 @@ unticked_statement: | T_GOTO T_STRING ';' { $$ = &ast.StmtGoto{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), GotoTkn: $1, Label: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1086,14 +1085,14 @@ catch_statement: | T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' additional_catches { catch := &ast.StmtCatch{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1115,7 +1114,7 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = &ast.StmtFinally{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), FinallyTkn: $1, OpenCurlyBracketTkn: $2, Stmts: $3, @@ -1150,14 +1149,14 @@ additional_catch: T_CATCH '(' fully_qualified_class_name T_VARIABLE ')' '{' inner_statement_list '}' { $$ = &ast.StmtCatch{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), CatchTkn: $1, OpenParenthesisTkn: $2, Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1233,11 +1232,11 @@ unticked_function_declaration_statement: function is_reference T_STRING '(' parameter_list ')' '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Position: position.NewTokensPosition($1, $9), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1257,9 +1256,9 @@ unticked_class_declaration_statement: { switch n := $1.(type) { case *ast.StmtClass : - n.Position = position.NewNodeTokenPosition($1, $7) + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) n.ClassName = &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1269,9 +1268,9 @@ unticked_class_declaration_statement: n.Stmts = $6 n.CloseCurlyBracket = $7 case *ast.StmtTrait : - n.Position = position.NewNodeTokenPosition($1, $7) + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) n.TraitName = &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } @@ -1287,10 +1286,10 @@ unticked_class_declaration_statement: | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1307,17 +1306,17 @@ class_entry_type: T_CLASS { $$ = &ast.StmtClass{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), ClassTkn: $1, } } | T_ABSTRACT T_CLASS { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1328,17 +1327,17 @@ class_entry_type: | T_TRAIT { $$ = &ast.StmtTrait{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), TraitTkn: $1, } } | T_FINAL T_CLASS { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), Modifiers: []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1356,7 +1355,7 @@ extends_from: | T_EXTENDS fully_qualified_class_name { $$ = &ast.StmtClassExtends{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1378,7 +1377,7 @@ interface_extends_list: | T_EXTENDS interface_list { $$ = &ast.StmtInterfaceExtends{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ExtendsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1394,7 +1393,7 @@ implements_list: | T_IMPLEMENTS interface_list { $$ = &ast.StmtClassImplements{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ImplementsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1440,7 +1439,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1455,7 +1454,7 @@ foreach_variable: } $$ = &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1469,18 +1468,18 @@ for_statement: statement { $$ = &ast.StmtFor{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOR ';' { $$ = &ast.StmtFor{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForTkn: $3, @@ -1493,18 +1492,18 @@ foreach_statement: statement { $$ = &ast.StmtForeach{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOREACH ';' { $$ = &ast.StmtForeach{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForeachTkn: $3, @@ -1518,18 +1517,18 @@ declare_statement: statement { $$ = &ast.StmtDeclare{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = &ast.StmtDeclare{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndDeclareTkn: $3, @@ -1545,9 +1544,9 @@ declare_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1563,9 +1562,9 @@ declare_list: $1.(*ast.ParserSeparatedList).Items = append( $1.(*ast.ParserSeparatedList).Items, &ast.StmtConstant{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1583,7 +1582,7 @@ switch_case_list: '{' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, CaseList: $2, CloseCurlyBracketTkn: $3, @@ -1592,7 +1591,7 @@ switch_case_list: | '{' ';' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1602,7 +1601,7 @@ switch_case_list: | ':' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, CaseList: $2, @@ -1613,7 +1612,7 @@ switch_case_list: | ':' ';' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, @@ -1633,7 +1632,7 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { $$ = append($1, &ast.StmtCase{ - Position: position.NewTokenNodeListPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), CaseTkn: $2, Cond: $3, CaseSeparatorTkn: $4, @@ -1643,7 +1642,7 @@ case_list: | case_list T_DEFAULT case_separator inner_statement_list { $$ = append($1, &ast.StmtDefault{ - Position: position.NewTokenNodeListPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $4), DefaultTkn: $2, CaseSeparatorTkn: $3, Stmts: $4, @@ -1668,18 +1667,18 @@ while_statement: statement { $$ = &ast.StmtWhile{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDWHILE ';' { $$ = &ast.StmtWhile{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndWhileTkn: $3, @@ -1698,7 +1697,7 @@ elseif_list: | elseif_list T_ELSEIF parenthesis_expr statement { $$ = append($1, &ast.StmtElseIf{ - Position: position.NewTokenNodePosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $4), ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, Cond: $3.(*ast.ParserBrackets).Child, @@ -1717,7 +1716,7 @@ new_elseif_list: | new_elseif_list T_ELSEIF parenthesis_expr ':' inner_statement_list { $$ = append($1, &ast.StmtElseIf{ - Position: position.NewTokenNodeListPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, @@ -1725,7 +1724,7 @@ new_elseif_list: CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, ColonTkn: $4, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($5), + Position: yylex.(*Parser).builder.NewNodeListPosition($5), Stmts: $5, }, }) @@ -1741,7 +1740,7 @@ else_single: | T_ELSE statement { $$ = &ast.StmtElse{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ElseTkn: $1, Stmt: $2, } @@ -1757,12 +1756,12 @@ new_else_single: | T_ELSE ':' inner_statement_list { $$ = &ast.StmtElse{ - Position: position.NewTokenNodeListPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3), Alt: true, ElseTkn: $1, ColonTkn: $2, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($3), + Position: yylex.(*Parser).builder.NewNodeListPosition($3), Stmts: $3, }, } @@ -1800,13 +1799,13 @@ non_empty_parameter_list: parameter: optional_class_type is_reference is_variadic T_VARIABLE { - pos := position.NewTokenPosition($4) + pos := yylex.(*Parser).builder.NewTokenPosition($4) if $1 != nil { - pos = position.NewNodeTokenPosition($1, $4) + pos = yylex.(*Parser).builder.NewNodeTokenPosition($1, $4) } else if $2 != nil { - pos = position.NewTokensPosition($2, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($2, $4) } else if $3 != nil { - pos = position.NewTokensPosition($3, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($3, $4) } $$ = &ast.Parameter{ @@ -1815,9 +1814,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1826,13 +1825,13 @@ parameter: } | optional_class_type is_reference is_variadic T_VARIABLE '=' expr { - pos := position.NewTokenNodePosition($4, $6) + pos := yylex.(*Parser).builder.NewTokenNodePosition($4, $6) if $1 != nil { - pos = position.NewNodesPosition($1, $6) + pos = yylex.(*Parser).builder.NewNodesPosition($1, $6) } else if $2 != nil { - pos = position.NewTokenNodePosition($2, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($2, $6) } else if $3 != nil { - pos = position.NewTokenNodePosition($3, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($3, $6) } $$ = &ast.Parameter{ @@ -1841,9 +1840,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1863,7 +1862,7 @@ optional_class_type: | T_ARRAY { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1871,7 +1870,7 @@ optional_class_type: | T_CALLABLE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1887,7 +1886,7 @@ function_call_parameter_list: '(' ')' { $$ = &ast.ArgumentList{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -1895,7 +1894,7 @@ function_call_parameter_list: | '(' non_empty_function_call_parameter_list ')' { argumentList := $2.(*ast.ArgumentList) - argumentList.Position = position.NewTokensPosition($1, $3) + argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) argumentList.OpenParenthesisTkn = $1 argumentList.CloseParenthesisTkn = $3 @@ -1904,11 +1903,11 @@ function_call_parameter_list: | '(' yield_expr ')' { $$ = &ast.ArgumentList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Arguments: []ast.Vertex{ &ast.Argument{ - Position: position.NewNodePosition($2), + Position: yylex.(*Parser).builder.NewNodePosition($2), Expr: $2, }, }, @@ -1938,21 +1937,21 @@ function_call_parameter: expr_without_variable { $$ = &ast.Argument{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Expr: $1, } } | variable { $$ = &ast.Argument{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Expr: $1, } } | '&' w_variable { $$ = &ast.Argument{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Expr: $2, } @@ -1960,7 +1959,7 @@ function_call_parameter: | T_ELLIPSIS expr { $$ = &ast.Argument{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -1988,9 +1987,9 @@ global_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1999,7 +1998,7 @@ global_var: | '$' r_variable { $$ = &ast.ExprVariable{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -2007,10 +2006,10 @@ global_var: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -2024,11 +2023,11 @@ static_var_list: static_var_list ',' T_VARIABLE { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2041,11 +2040,11 @@ static_var_list: | static_var_list ',' T_VARIABLE '=' static_scalar { $1.(*ast.StmtStatic).Vars = append($1.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2062,11 +2061,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2080,11 +2079,11 @@ static_var_list: $$ = &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2114,7 +2113,7 @@ class_statement: variable_modifiers class_variable_declaration ';' { $$ = &ast.StmtPropertyList{ - Position: position.NewNodeListTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $3), Modifiers: $1, Properties: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2124,7 +2123,7 @@ class_statement: | class_constant_declaration ';' { $1.(*ast.StmtClassConstList).SemiColonTkn = $2 - $1.(*ast.StmtClassConstList).Position = position.NewNodeTokenPosition($1, $2) + $1.(*ast.StmtClassConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $2) $$ = $1 } | trait_use_statement @@ -2133,9 +2132,9 @@ class_statement: } | method_modifiers function is_reference T_STRING '(' parameter_list ')' method_body { - pos := position.NewTokenNodePosition($2, $8) + pos := yylex.(*Parser).builder.NewTokenNodePosition($2, $8) if $1 != nil { - pos = position.NewNodeListNodePosition($1, $8) + pos = yylex.(*Parser).builder.NewNodeListNodePosition($1, $8) } $$ = &ast.StmtClassMethod{ @@ -2144,7 +2143,7 @@ class_statement: FunctionTkn: $2, AmpersandTkn: $3, MethodName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2161,7 +2160,7 @@ trait_use_statement: T_USE trait_list trait_adaptations { $$ = &ast.StmtTraitUse{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2190,14 +2189,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2246,7 +2245,7 @@ trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { $$ = &ast.StmtTraitUsePrecedence{ - Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Ref: $1, InsteadofTkn: $2, Insteadof: $3.(*ast.ParserSeparatedList).Items, @@ -2275,9 +2274,9 @@ trait_method_reference: T_STRING { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2293,11 +2292,11 @@ trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, Method: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2309,12 +2308,12 @@ trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Ref: $1, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2323,7 +2322,7 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Ref: $1, AsTkn: $2, Modifier: $3, @@ -2346,14 +2345,14 @@ method_body: ';' /* abstract method */ { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -2370,7 +2369,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2404,7 +2403,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2412,7 +2411,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2420,7 +2419,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2428,7 +2427,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2436,7 +2435,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2444,7 +2443,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2455,11 +2454,11 @@ class_variable_declaration: class_variable_declaration ',' T_VARIABLE { item := &ast.StmtProperty{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2474,11 +2473,11 @@ class_variable_declaration: | class_variable_declaration ',' T_VARIABLE '=' static_scalar { item := &ast.StmtProperty{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2497,11 +2496,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2516,11 +2515,11 @@ class_variable_declaration: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2537,12 +2536,12 @@ class_constant_declaration: class_constant_declaration ',' T_STRING '=' static_scalar { constList := $1.(*ast.StmtClassConstList) - constList.Position = position.NewNodesPosition($1, $5) + constList.Position = yylex.(*Parser).builder.NewNodesPosition($1, $5) constList.SeparatorTkns = append(constList.SeparatorTkns, $2) constList.Consts = append(constList.Consts, &ast.StmtConstant{ - Position: position.NewTokenNodePosition($3, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2555,13 +2554,13 @@ class_constant_declaration: | T_CONST T_STRING '=' static_scalar { $$ = &ast.StmtClassConstList{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), ConstTkn: $1, Consts: []ast.Vertex{ &ast.StmtConstant{ - Position: position.NewTokenNodePosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $4), Name: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -2632,7 +2631,7 @@ chaining_dereference: chaining_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -2644,7 +2643,7 @@ chaining_dereference: | '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: nil, OpenBracketTkn: $1, Dim: $2, @@ -2686,7 +2685,7 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, @@ -2696,7 +2695,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), Class: $2, } } @@ -2707,9 +2706,9 @@ expr_without_variable: T_LIST '(' assignment_list ')' '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewTokenNodePosition($1, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $6), Var: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -2723,7 +2722,7 @@ expr_without_variable: | variable '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2732,7 +2731,7 @@ expr_without_variable: | variable '=' '&' variable { $$ = &ast.ExprAssignReference{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2744,7 +2743,7 @@ expr_without_variable: var _new *ast.ExprNew if $3 != nil { _new = &ast.ExprNew{ - Position: position.NewTokenNodePosition($4, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($4, $6), NewTkn: $4, Class: $5, OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, @@ -2754,14 +2753,14 @@ expr_without_variable: } } else { _new = &ast.ExprNew{ - Position: position.NewTokenNodePosition($4, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($4, $5), NewTkn: $4, Class: $5, } } $$ = &ast.ExprAssignReference{ - Position: position.NewNodesPosition($1, _new), + Position: yylex.(*Parser).builder.NewNodesPosition($1, _new), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2771,7 +2770,7 @@ expr_without_variable: | T_CLONE expr { $$ = &ast.ExprClone{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CloneTkn: $1, Expr: $2, } @@ -2779,7 +2778,7 @@ expr_without_variable: | variable T_PLUS_EQUAL expr { $$ = &ast.ExprAssignPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2788,7 +2787,7 @@ expr_without_variable: | variable T_MINUS_EQUAL expr { $$ = &ast.ExprAssignMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2797,7 +2796,7 @@ expr_without_variable: | variable T_MUL_EQUAL expr { $$ = &ast.ExprAssignMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2806,7 +2805,7 @@ expr_without_variable: | variable T_POW_EQUAL expr { $$ = &ast.ExprAssignPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2815,7 +2814,7 @@ expr_without_variable: | variable T_DIV_EQUAL expr { $$ = &ast.ExprAssignDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2824,7 +2823,7 @@ expr_without_variable: | variable T_CONCAT_EQUAL expr { $$ = &ast.ExprAssignConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2833,7 +2832,7 @@ expr_without_variable: | variable T_MOD_EQUAL expr { $$ = &ast.ExprAssignMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2842,7 +2841,7 @@ expr_without_variable: | variable T_AND_EQUAL expr { $$ = &ast.ExprAssignBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2851,7 +2850,7 @@ expr_without_variable: | variable T_OR_EQUAL expr { $$ = &ast.ExprAssignBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2860,7 +2859,7 @@ expr_without_variable: | variable T_XOR_EQUAL expr { $$ = &ast.ExprAssignBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2869,7 +2868,7 @@ expr_without_variable: | variable T_SL_EQUAL expr { $$ = &ast.ExprAssignShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2878,7 +2877,7 @@ expr_without_variable: | variable T_SR_EQUAL expr { $$ = &ast.ExprAssignShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2887,7 +2886,7 @@ expr_without_variable: | rw_variable T_INC { $$ = &ast.ExprPostInc{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -2895,7 +2894,7 @@ expr_without_variable: | T_INC rw_variable { $$ = &ast.ExprPreInc{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -2903,7 +2902,7 @@ expr_without_variable: | rw_variable T_DEC { $$ = &ast.ExprPostDec{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -2911,7 +2910,7 @@ expr_without_variable: | T_DEC rw_variable { $$ = &ast.ExprPreDec{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -2919,7 +2918,7 @@ expr_without_variable: | expr T_BOOLEAN_OR expr { $$ = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2928,7 +2927,7 @@ expr_without_variable: | expr T_BOOLEAN_AND expr { $$ = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2937,7 +2936,7 @@ expr_without_variable: | expr T_LOGICAL_OR expr { $$ = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2946,7 +2945,7 @@ expr_without_variable: | expr T_LOGICAL_AND expr { $$ = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2955,7 +2954,7 @@ expr_without_variable: | expr T_LOGICAL_XOR expr { $$ = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2964,7 +2963,7 @@ expr_without_variable: | expr '|' expr { $$ = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2973,7 +2972,7 @@ expr_without_variable: | expr '&' expr { $$ = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2982,7 +2981,7 @@ expr_without_variable: | expr '^' expr { $$ = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2991,7 +2990,7 @@ expr_without_variable: | expr '.' expr { $$ = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3000,7 +2999,7 @@ expr_without_variable: | expr '+' expr { $$ = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3009,7 +3008,7 @@ expr_without_variable: | expr '-' expr { $$ = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3018,7 +3017,7 @@ expr_without_variable: | expr '*' expr { $$ = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3027,7 +3026,7 @@ expr_without_variable: | expr T_POW expr { $$ = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3036,7 +3035,7 @@ expr_without_variable: | expr '/' expr { $$ = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3045,7 +3044,7 @@ expr_without_variable: | expr '%' expr { $$ = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3054,7 +3053,7 @@ expr_without_variable: | expr T_SL expr { $$ = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3063,7 +3062,7 @@ expr_without_variable: | expr T_SR expr { $$ = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3072,7 +3071,7 @@ expr_without_variable: | '+' expr %prec T_INC { $$ = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -3080,7 +3079,7 @@ expr_without_variable: | '-' expr %prec T_INC { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -3088,7 +3087,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -3096,7 +3095,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -3104,7 +3103,7 @@ expr_without_variable: | expr T_IS_IDENTICAL expr { $$ = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3113,7 +3112,7 @@ expr_without_variable: | expr T_IS_NOT_IDENTICAL expr { $$ = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3122,7 +3121,7 @@ expr_without_variable: | expr T_IS_EQUAL expr { $$ = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3131,7 +3130,7 @@ expr_without_variable: | expr T_IS_NOT_EQUAL expr { $$ = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3140,7 +3139,7 @@ expr_without_variable: | expr '<' expr { $$ = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3149,7 +3148,7 @@ expr_without_variable: | expr T_IS_SMALLER_OR_EQUAL expr { $$ = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3158,7 +3157,7 @@ expr_without_variable: | expr '>' expr { $$ = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3167,7 +3166,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3176,7 +3175,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -3193,7 +3192,7 @@ expr_without_variable: | '(' new_expr ')' instance_call { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3203,22 +3202,22 @@ expr_without_variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -3226,7 +3225,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -3237,7 +3236,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -3251,7 +3250,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3259,7 +3258,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3267,7 +3266,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3275,7 +3274,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3283,7 +3282,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3291,7 +3290,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3299,7 +3298,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3311,9 +3310,9 @@ expr_without_variable: } if $2 == nil { - exit.Position = position.NewTokenPosition($1) + exit.Position = yylex.(*Parser).builder.NewTokenPosition($1) } else { - exit.Position = position.NewTokenNodePosition($1, $2) + exit.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3324,7 +3323,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3344,7 +3343,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3353,7 +3352,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3361,14 +3360,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), YieldTkn: $1, } } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Position: position.NewTokensPosition($1, $9), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3384,7 +3383,7 @@ expr_without_variable: | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Position: position.NewTokensPosition($1, $10), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $10), StaticTkn: $1, FunctionTkn: $2, AmpersandTkn: $3, @@ -3404,7 +3403,7 @@ yield_expr: T_YIELD expr_without_variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3412,7 +3411,7 @@ yield_expr: | T_YIELD variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3420,7 +3419,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW expr_without_variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3430,7 +3429,7 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW variable { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3443,7 +3442,7 @@ combined_scalar_offset: combined_scalar '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3453,7 +3452,7 @@ combined_scalar_offset: | combined_scalar_offset '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3463,9 +3462,9 @@ combined_scalar_offset: | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -3477,7 +3476,7 @@ combined_scalar_offset: | general_constant '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3490,7 +3489,7 @@ combined_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3501,7 +3500,7 @@ combined_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3525,7 +3524,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -3539,9 +3538,9 @@ lexical_var_list: lexical_var_list ',' T_VARIABLE { variable := &ast.ExprVariable{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -3555,12 +3554,12 @@ lexical_var_list: | lexical_var_list ',' '&' T_VARIABLE { reference := &ast.ExprReference{ - Position: position.NewTokensPosition($3, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($3, $4), AmpersandTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -3577,9 +3576,9 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3592,12 +3591,12 @@ lexical_var_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprReference{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3612,9 +3611,9 @@ function_call: namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), + Position: yylex.(*Parser).builder.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), Function: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -3627,9 +3626,9 @@ function_call: | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), Function: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -3644,9 +3643,9 @@ function_call: | T_NS_SEPARATOR namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Function: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3660,7 +3659,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3673,7 +3672,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3686,7 +3685,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3699,7 +3698,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3712,7 +3711,7 @@ function_call: | variable_without_objects function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3726,7 +3725,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3734,7 +3733,7 @@ class_name: | namespace_name { $$ = &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -3742,7 +3741,7 @@ class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -3752,7 +3751,7 @@ class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3764,7 +3763,7 @@ fully_qualified_class_name: namespace_name { $$ = &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -3772,7 +3771,7 @@ fully_qualified_class_name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -3782,7 +3781,7 @@ fully_qualified_class_name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3812,12 +3811,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -3826,12 +3825,12 @@ dynamic_class_name_reference: switch nn := n.(type) { case *ast.ExprArrayDimFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - *$$.GetPosition() = *position.NewNodesPosition($$, nn) + *$$.GetPosition() = *yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -3872,7 +3871,7 @@ exit_expr: | '(' ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenBracketTkn: $1, CloseBracketTkn: $2, } @@ -3892,7 +3891,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -3919,7 +3918,7 @@ common_scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3927,7 +3926,7 @@ common_scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3935,7 +3934,7 @@ common_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -3943,7 +3942,7 @@ common_scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3951,7 +3950,7 @@ common_scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3959,7 +3958,7 @@ common_scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3967,7 +3966,7 @@ common_scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3975,7 +3974,7 @@ common_scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3983,7 +3982,7 @@ common_scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3991,7 +3990,7 @@ common_scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3999,11 +3998,11 @@ common_scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4014,7 +4013,7 @@ common_scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -4025,11 +4024,11 @@ static_class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4056,9 +4055,9 @@ static_scalar_value: | namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4067,9 +4066,9 @@ static_scalar_value: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4080,9 +4079,9 @@ static_scalar_value: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4092,7 +4091,7 @@ static_scalar_value: | T_ARRAY '(' static_array_pair_list ')' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4103,7 +4102,7 @@ static_scalar_value: | '[' static_array_pair_list ']' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4117,7 +4116,7 @@ static_scalar_value: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4132,7 +4131,7 @@ static_operation: static_scalar_value '[' static_scalar_value ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4142,7 +4141,7 @@ static_operation: | static_scalar_value '+' static_scalar_value { $$ = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4151,7 +4150,7 @@ static_operation: | static_scalar_value '-' static_scalar_value { $$ = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4160,7 +4159,7 @@ static_operation: | static_scalar_value '*' static_scalar_value { $$ = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4169,7 +4168,7 @@ static_operation: | static_scalar_value T_POW static_scalar_value { $$ = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4178,7 +4177,7 @@ static_operation: | static_scalar_value '/' static_scalar_value { $$ = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4187,7 +4186,7 @@ static_operation: | static_scalar_value '%' static_scalar_value { $$ = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4196,7 +4195,7 @@ static_operation: | '!' static_scalar_value { $$ = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -4204,7 +4203,7 @@ static_operation: | '~' static_scalar_value { $$ = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -4212,7 +4211,7 @@ static_operation: | static_scalar_value '|' static_scalar_value { $$ = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4221,7 +4220,7 @@ static_operation: | static_scalar_value '&' static_scalar_value { $$ = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4230,7 +4229,7 @@ static_operation: | static_scalar_value '^' static_scalar_value { $$ = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4239,7 +4238,7 @@ static_operation: | static_scalar_value T_SL static_scalar_value { $$ = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4248,7 +4247,7 @@ static_operation: | static_scalar_value T_SR static_scalar_value { $$ = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4257,7 +4256,7 @@ static_operation: | static_scalar_value '.' static_scalar_value { $$ = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4266,7 +4265,7 @@ static_operation: | static_scalar_value T_LOGICAL_XOR static_scalar_value { $$ = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4275,7 +4274,7 @@ static_operation: | static_scalar_value T_LOGICAL_AND static_scalar_value { $$ = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4284,7 +4283,7 @@ static_operation: | static_scalar_value T_LOGICAL_OR static_scalar_value { $$ = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4293,7 +4292,7 @@ static_operation: | static_scalar_value T_BOOLEAN_AND static_scalar_value { $$ = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4302,7 +4301,7 @@ static_operation: | static_scalar_value T_BOOLEAN_OR static_scalar_value { $$ = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4311,7 +4310,7 @@ static_operation: | static_scalar_value T_IS_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4320,7 +4319,7 @@ static_operation: | static_scalar_value T_IS_NOT_IDENTICAL static_scalar_value { $$ = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4329,7 +4328,7 @@ static_operation: | static_scalar_value T_IS_EQUAL static_scalar_value { $$ = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4338,7 +4337,7 @@ static_operation: | static_scalar_value T_IS_NOT_EQUAL static_scalar_value { $$ = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4347,7 +4346,7 @@ static_operation: | static_scalar_value '<' static_scalar_value { $$ = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4356,7 +4355,7 @@ static_operation: | static_scalar_value '>' static_scalar_value { $$ = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4365,7 +4364,7 @@ static_operation: | static_scalar_value T_IS_SMALLER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4374,7 +4373,7 @@ static_operation: | static_scalar_value T_IS_GREATER_OR_EQUAL static_scalar_value { $$ = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -4383,7 +4382,7 @@ static_operation: | static_scalar_value '?' ':' static_scalar_value { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -4393,7 +4392,7 @@ static_operation: | static_scalar_value '?' static_scalar_value ':' static_scalar_value { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -4404,7 +4403,7 @@ static_operation: | '+' static_scalar_value { $$ = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -4412,7 +4411,7 @@ static_operation: | '-' static_scalar_value { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -4420,7 +4419,7 @@ static_operation: | '(' static_scalar_value ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4436,9 +4435,9 @@ general_constant: | namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Const: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -4447,9 +4446,9 @@ general_constant: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -4460,9 +4459,9 @@ general_constant: | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4475,9 +4474,9 @@ scalar: T_STRING_VARNAME { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4498,7 +4497,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -4507,7 +4506,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -4516,7 +4515,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -4554,7 +4553,7 @@ non_empty_static_array_pair_list: non_empty_static_array_pair_list ',' static_scalar_value T_DOUBLE_ARROW static_scalar_value { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition($3, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -4568,7 +4567,7 @@ non_empty_static_array_pair_list: | non_empty_static_array_pair_list ',' static_scalar_value { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodePosition($3), + Position: yylex.(*Parser).builder.NewNodePosition($3), Val: $3, } @@ -4582,7 +4581,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -4595,7 +4594,7 @@ non_empty_static_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, }, }, @@ -4618,7 +4617,7 @@ parenthesis_expr: '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4627,7 +4626,7 @@ parenthesis_expr: | '(' yield_expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4671,7 +4670,7 @@ variable: case *ast.ExprArrayDimFetch: mc := $4[0].(*ast.ExprMethodCall) $3 = append($3, &ast.ExprFunctionCall{ - Position: position.NewNodePosition(mc), + Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -4690,22 +4689,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -4714,22 +4713,22 @@ variable: switch nn := n.(type) { case *ast.ExprFunctionCall: nn.Function = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprArrayDimFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprPropertyFetch: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn case *ast.ExprMethodCall: nn.Var = $$ - nn.Position = position.NewNodesPosition($$, nn) + nn.Position = yylex.(*Parser).builder.NewNodesPosition($$, nn) $$ = nn } } @@ -4763,7 +4762,7 @@ variable_property: case *ast.ExprArrayDimFetch: mc := $3[0].(*ast.ExprMethodCall) $2 = append($2, &ast.ExprFunctionCall{ - Position: position.NewNodePosition(mc), + Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, @@ -4786,7 +4785,7 @@ array_method_dereference: array_method_dereference '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -4798,7 +4797,7 @@ array_method_dereference: | method '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -4813,7 +4812,7 @@ method: function_call_parameter_list { $$ = &ast.ExprMethodCall{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), OpenParenthesisTkn: $1.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $1.(*ast.ArgumentList).Arguments, SeparatorTkns: $1.(*ast.ArgumentList).SeparatorTkns, @@ -4846,7 +4845,7 @@ variable_without_objects: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -4858,7 +4857,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4867,7 +4866,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -4886,7 +4885,7 @@ array_function_dereference: array_function_dereference '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4896,7 +4895,7 @@ array_function_dereference: | function_call '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4930,7 +4929,7 @@ base_variable: { for i := len($1)-1; i>=0; i-- { $1[i].(*ast.ExprVariable).VarName = $2 - $1[i].(*ast.ExprVariable).Position = position.NewNodesPosition($1[i], $2) + $1[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -4946,7 +4945,7 @@ reference_variable: reference_variable '[' dim_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4956,7 +4955,7 @@ reference_variable: | reference_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -4974,9 +4973,9 @@ compound_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4985,10 +4984,10 @@ compound_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -5018,7 +5017,7 @@ object_property: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Property: $1, }, } @@ -5029,7 +5028,7 @@ object_dim_list: object_dim_list '[' dim_offset ']' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5041,7 +5040,7 @@ object_dim_list: | object_dim_list '{' expr '}' { fetch := &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), Var: nil, OpenBracketTkn: $2, Dim: $3, @@ -5054,7 +5053,7 @@ object_dim_list: { $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Property: $1, }, } @@ -5065,7 +5064,7 @@ variable_name: T_STRING { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -5073,7 +5072,7 @@ variable_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5086,7 +5085,7 @@ simple_indirect_reference: { $$ = []ast.Vertex{ &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), DollarTkn: $1, }, } @@ -5094,7 +5093,7 @@ simple_indirect_reference: | simple_indirect_reference '$' { $$ = append($1, &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), DollarTkn: $2, }) } @@ -5121,7 +5120,7 @@ assignment_list_element: variable { $$ = &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, } } @@ -5135,9 +5134,9 @@ assignment_list_element: } $$ = &ast.ExprArrayItem{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -5173,7 +5172,7 @@ non_empty_array_pair_list: non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition($3, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($3, $5), Key: $3, DoubleArrowTkn: $4, Val: $5, @@ -5187,7 +5186,7 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodePosition($3), + Position: yylex.(*Parser).builder.NewNodePosition($3), Val: $3, } @@ -5201,7 +5200,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -5214,7 +5213,7 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, }, }, @@ -5223,11 +5222,11 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Position: position.NewNodesPosition($3, $6), + Position: yylex.(*Parser).builder.NewNodesPosition($3, $6), Key: $3, DoubleArrowTkn: $4, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($5, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($5, $6), AmpersandTkn: $5, Var: $6, }, @@ -5241,9 +5240,9 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -5259,11 +5258,11 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -5276,9 +5275,9 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -5298,7 +5297,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -5312,7 +5311,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -5325,9 +5324,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5336,11 +5335,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5353,18 +5352,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5373,10 +5372,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewNodePosition($2), + Position: yylex.(*Parser).builder.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -5385,12 +5384,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -5401,14 +5400,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -5423,7 +5422,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -5435,7 +5434,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -5445,13 +5444,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -5460,9 +5459,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -5474,7 +5473,7 @@ internal_functions_in_yacc: T_ISSET '(' isset_variables ')' { $$ = &ast.ExprIsset{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -5485,7 +5484,7 @@ internal_functions_in_yacc: | T_EMPTY '(' variable ')' { $$ = &ast.ExprEmpty{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -5495,7 +5494,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -5505,7 +5504,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -5513,7 +5512,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -5521,7 +5520,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -5531,7 +5530,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -5539,7 +5538,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } @@ -5577,11 +5576,11 @@ class_constant: class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5590,11 +5589,11 @@ class_constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5606,11 +5605,11 @@ static_class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -5622,11 +5621,11 @@ class_name_scalar: class_name T_PAAMAYIM_NEKUDOTAYIM T_CLASS { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, diff --git a/internal/php7/parser.go b/internal/php7/parser.go index f49ecd8..f053888 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -1,6 +1,7 @@ package php7 import ( + builder "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/errors" @@ -13,6 +14,7 @@ type Parser struct { currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) + builder *builder.Builder } // NewParser creates and returns new Parser @@ -20,6 +22,7 @@ func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser return &Parser{ Lexer: lexer, errHandlerFunc: errHandlerFunc, + builder: builder.NewBuilder(), } } diff --git a/internal/php7/php7.go b/internal/php7/php7.go index d8af320..11c021e 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -10,12 +10,11 @@ import __yyfmt__ "fmt" import ( "strconv" - "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) -// line internal/php7/php7.y:14 +// line internal/php7/php7.y:13 type yySymType struct { yys int node ast.Vertex @@ -340,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4328 +// line internal/php7/php7.y:4327 // line yacctab:1 var yyExca = [...]int{ @@ -2107,479 +2106,479 @@ yydefault: case 1: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:284 + // line internal/php7/php7.y:283 { yylex.(*Parser).rootNode = &ast.Root{ - Position: position.NewNodeListPosition(yyDollar[1].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].list), Stmts: yyDollar[1].list, EndTkn: yylex.(*Parser).currentToken, } } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:293 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:294 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:300 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:305 + // line internal/php7/php7.y:304 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:308 + // line internal/php7/php7.y:307 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:313 + // line internal/php7/php7.y:312 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:317 + // line internal/php7/php7.y:316 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:324 + // line internal/php7/php7.y:323 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2587,18 +2586,18 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:330 + // line internal/php7/php7.y:329 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:337 + // line internal/php7/php7.y:336 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -2607,10 +2606,10 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:349 + // line internal/php7/php7.y:348 { part := &ast.NameNamePart{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), StringTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, } @@ -2622,20 +2621,20 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:365 + // line internal/php7/php7.y:364 { yyVAL.node = &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:373 + // line internal/php7/php7.y:372 { yyVAL.node = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -2644,10 +2643,10 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:383 + // line internal/php7/php7.y:382 { yyVAL.node = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2655,47 +2654,47 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:395 + // line internal/php7/php7.y:394 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:400 + // line internal/php7/php7.y:399 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:404 + // line internal/php7/php7.y:403 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:408 + // line internal/php7/php7.y:407 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:412 + // line internal/php7/php7.y:411 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:416 + // line internal/php7/php7.y:415 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:420 + // line internal/php7/php7.y:419 { yyVAL.node = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -2704,13 +2703,13 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:430 + // line internal/php7/php7.y:429 { yyVAL.node = &ast.StmtNamespace{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2719,13 +2718,13 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:443 + // line internal/php7/php7.y:442 { yyVAL.node = &ast.StmtNamespace{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2736,10 +2735,10 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:458 + // line internal/php7/php7.y:457 { yyVAL.node = &ast.StmtNamespace{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsTkn: yyDollar[1].token, OpenCurlyBracket: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -2748,11 +2747,11 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:468 + // line internal/php7/php7.y:467 { use := yyDollar[2].node.(*ast.StmtGroupUse) - use.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + use.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) use.UseTkn = yyDollar[1].token use.SemiColonTkn = yyDollar[3].token @@ -2760,11 +2759,11 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:478 + // line internal/php7/php7.y:477 { use := yyDollar[3].node.(*ast.StmtGroupUse) - use.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + use.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) use.UseTkn = yyDollar[1].token use.Type = yyDollar[2].node use.SemiColonTkn = yyDollar[4].token @@ -2773,10 +2772,10 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:489 + // line internal/php7/php7.y:488 { yyVAL.node = &ast.StmtUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), UseTkn: yyDollar[1].token, UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2785,10 +2784,10 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:499 + // line internal/php7/php7.y:498 { yyVAL.node = &ast.StmtUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, Type: yyDollar[2].node, UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -2798,10 +2797,10 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:510 + // line internal/php7/php7.y:509 { yyVAL.node = &ast.StmtConstList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ConstTkn: yyDollar[1].token, Consts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2810,34 +2809,34 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:523 + // line internal/php7/php7.y:522 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:531 + // line internal/php7/php7.y:530 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:542 + // line internal/php7/php7.y:541 { yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) yyVAL.node = &ast.StmtGroupUse{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), Prefix: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2850,15 +2849,15 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:560 + // line internal/php7/php7.y:559 { yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) yyVAL.node = &ast.StmtGroupUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2871,14 +2870,14 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:582 + // line internal/php7/php7.y:581 { yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) yyVAL.node = &ast.StmtGroupUse{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), Prefix: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2891,15 +2890,15 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:600 + // line internal/php7/php7.y:599 { yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) yyVAL.node = &ast.StmtGroupUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -2912,19 +2911,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:622 + // line internal/php7/php7.y:621 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:626 + // line internal/php7/php7.y:625 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:633 + // line internal/php7/php7.y:632 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2933,7 +2932,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:640 + // line internal/php7/php7.y:639 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2941,7 +2940,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:649 + // line internal/php7/php7.y:648 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2950,7 +2949,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:656 + // line internal/php7/php7.y:655 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2958,7 +2957,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:665 + // line internal/php7/php7.y:664 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2967,7 +2966,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:672 + // line internal/php7/php7.y:671 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2975,28 +2974,28 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:681 + // line internal/php7/php7.y:680 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:685 + // line internal/php7/php7.y:684 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node - decl.Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) + decl.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) yyVAL.node = yyDollar[2].node } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:696 + // line internal/php7/php7.y:695 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -3004,18 +3003,18 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:707 + // line internal/php7/php7.y:706 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: position.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3023,23 +3022,23 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:727 + // line internal/php7/php7.y:726 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:731 + // line internal/php7/php7.y:730 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token - decl.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + decl.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) yyVAL.node = yyDollar[2].node } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:742 + // line internal/php7/php7.y:741 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3048,7 +3047,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:749 + // line internal/php7/php7.y:748 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3056,7 +3055,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:758 + // line internal/php7/php7.y:757 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3064,53 +3063,53 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:764 + // line internal/php7/php7.y:763 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:771 + // line internal/php7/php7.y:770 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:776 + // line internal/php7/php7.y:775 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:780 + // line internal/php7/php7.y:779 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:784 + // line internal/php7/php7.y:783 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:788 + // line internal/php7/php7.y:787 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:792 + // line internal/php7/php7.y:791 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:796 + // line internal/php7/php7.y:795 { yyVAL.node = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), HaltCompilerTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, CloseParenthesisTkn: yyDollar[3].token, @@ -3119,10 +3118,10 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:808 + // line internal/php7/php7.y:807 { yyVAL.node = &ast.StmtStmtList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -3130,34 +3129,34 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:817 + // line internal/php7/php7.y:816 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:821 + // line internal/php7/php7.y:820 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:825 + // line internal/php7/php7.y:824 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtWhile).Cond = yyDollar[3].node yyDollar[5].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtWhile).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:835 + // line internal/php7/php7.y:834 { yyVAL.node = &ast.StmtDo{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), DoTkn: yyDollar[1].token, Stmt: yyDollar[2].node, WhileTkn: yyDollar[3].token, @@ -3169,7 +3168,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:848 + // line internal/php7/php7.y:847 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3182,28 +3181,28 @@ yydefault: yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token - yyDollar[9].node.(*ast.StmtFor).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyDollar[9].node.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:865 + // line internal/php7/php7.y:864 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtSwitch).Cond = yyDollar[3].node yyDollar[5].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtSwitch).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:875 + // line internal/php7/php7.y:874 { yyVAL.node = &ast.StmtBreak{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), BreakTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3211,10 +3210,10 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:884 + // line internal/php7/php7.y:883 { yyVAL.node = &ast.StmtContinue{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ContinueTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3222,10 +3221,10 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:893 + // line internal/php7/php7.y:892 { yyVAL.node = &ast.StmtReturn{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ReturnTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3233,70 +3232,70 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:902 + // line internal/php7/php7.y:901 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtGlobal).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:910 + // line internal/php7/php7.y:909 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtStatic).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:918 + // line internal/php7/php7.y:917 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtEcho).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) + yyDollar[2].node.(*ast.StmtEcho).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:926 + // line internal/php7/php7.y:925 { yyVAL.node = &ast.StmtInlineHtml{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), InlineHtmlTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:934 + // line internal/php7/php7.y:933 { yyVAL.node = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Expr: yyDollar[1].node, SemiColonTkn: yyDollar[2].token, } } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:942 + // line internal/php7/php7.y:941 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[4].token) yyDollar[3].node.(*ast.StmtUnset).CloseParenthesisTkn = yyDollar[5].token yyDollar[3].node.(*ast.StmtUnset).SemiColonTkn = yyDollar[6].token - yyDollar[3].node.(*ast.StmtUnset).Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) + yyDollar[3].node.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) yyVAL.node = yyDollar[3].node } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:953 + // line internal/php7/php7.y:952 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3304,13 +3303,13 @@ yydefault: yyDollar[7].node.(*ast.StmtForeach).AsTkn = yyDollar[4].token yyDollar[7].node.(*ast.StmtForeach).Var = yyDollar[5].node yyDollar[7].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[6].token - yyDollar[7].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) + yyDollar[7].node.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[7].node) yyVAL.node = yyDollar[7].node } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:965 + // line internal/php7/php7.y:964 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3320,39 +3319,39 @@ yydefault: yyDollar[9].node.(*ast.StmtForeach).DoubleArrowTkn = yyDollar[6].token yyDollar[9].node.(*ast.StmtForeach).Var = yyDollar[7].node yyDollar[9].node.(*ast.StmtForeach).CloseParenthesisTkn = yyDollar[8].token - yyDollar[9].node.(*ast.StmtForeach).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) + yyDollar[9].node.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) yyVAL.node = yyDollar[9].node } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:979 + // line internal/php7/php7.y:978 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token - yyDollar[5].node.(*ast.StmtDeclare).Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) + yyDollar[5].node.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) yyVAL.node = yyDollar[5].node } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:990 + // line internal/php7/php7.y:989 { yyVAL.node = &ast.StmtNop{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:997 + // line internal/php7/php7.y:996 { - pos := position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) + pos := yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) if yyDollar[6].node != nil { - pos = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node) } yyVAL.node = &ast.StmtTry{ @@ -3367,10 +3366,10 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1014 + // line internal/php7/php7.y:1013 { yyVAL.node = &ast.StmtThrow{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ThrowTkn: yyDollar[1].token, Expr: yyDollar[2].node, SemiColonTkn: yyDollar[3].token, @@ -3378,13 +3377,13 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1023 + // line internal/php7/php7.y:1022 { yyVAL.node = &ast.StmtGoto{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), GotoTkn: yyDollar[1].token, Label: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3393,12 +3392,12 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1036 + // line internal/php7/php7.y:1035 { yyVAL.node = &ast.StmtLabel{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), LabelName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -3407,21 +3406,21 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1050 + // line internal/php7/php7.y:1049 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1054 + // line internal/php7/php7.y:1053 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token catch.OpenParenthesisTkn = yyDollar[3].token catch.Var = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[5].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[5].token), IdentifierTkn: yyDollar[5].token, Value: yyDollar[5].token.Value, }, @@ -3430,13 +3429,13 @@ yydefault: catch.OpenCurlyBracketTkn = yyDollar[7].token catch.Stmts = yyDollar[8].list catch.CloseCurlyBracketTkn = yyDollar[9].token - catch.Position = position.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) + catch.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[9].token) yyVAL.list = append(yyDollar[1].list, catch) } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1077 + // line internal/php7/php7.y:1076 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3444,7 +3443,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1083 + // line internal/php7/php7.y:1082 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3453,16 +3452,16 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1093 + // line internal/php7/php7.y:1092 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1097 + // line internal/php7/php7.y:1096 { yyVAL.node = &ast.StmtFinally{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), FinallyTkn: yyDollar[1].token, OpenCurlyBracketTkn: yyDollar[2].token, Stmts: yyDollar[3].list, @@ -3471,7 +3470,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1110 + // line internal/php7/php7.y:1109 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3479,7 +3478,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1116 + // line internal/php7/php7.y:1115 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3488,20 +3487,20 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1126 + // line internal/php7/php7.y:1125 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1133 + // line internal/php7/php7.y:1132 { yyVAL.node = &ast.StmtFunction{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, FunctionName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3518,38 +3517,38 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1158 + // line internal/php7/php7.y:1157 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1162 + // line internal/php7/php7.y:1161 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1169 + // line internal/php7/php7.y:1168 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1173 + // line internal/php7/php7.y:1172 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1180 + // line internal/php7/php7.y:1179 { yyVAL.node = &ast.StmtClass{ - Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), + Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), Modifiers: yyDollar[1].list, ClassTkn: yyDollar[2].token, ClassName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -3562,13 +3561,13 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1198 + // line internal/php7/php7.y:1197 { yyVAL.node = &ast.StmtClass{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, ClassName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3581,45 +3580,45 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1218 + // line internal/php7/php7.y:1217 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1222 + // line internal/php7/php7.y:1221 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1229 + // line internal/php7/php7.y:1228 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1237 + // line internal/php7/php7.y:1236 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1248 + // line internal/php7/php7.y:1247 { yyVAL.node = &ast.StmtTrait{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), TraitTkn: yyDollar[1].token, TraitName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3630,13 +3629,13 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1266 + // line internal/php7/php7.y:1265 { yyVAL.node = &ast.StmtInterface{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), InterfaceTkn: yyDollar[1].token, InterfaceName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -3648,32 +3647,32 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1285 + // line internal/php7/php7.y:1284 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1289 + // line internal/php7/php7.y:1288 { yyVAL.node = &ast.StmtClassExtends{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExtendTkn: yyDollar[1].token, ClassName: yyDollar[2].node, } } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1300 + // line internal/php7/php7.y:1299 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1304 + // line internal/php7/php7.y:1303 { yyVAL.node = &ast.StmtInterfaceExtends{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ExtendsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3681,16 +3680,16 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1316 + // line internal/php7/php7.y:1315 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1320 + // line internal/php7/php7.y:1319 { yyVAL.node = &ast.StmtClassImplements{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), ImplementsTkn: yyDollar[1].token, InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3698,26 +3697,26 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1332 + // line internal/php7/php7.y:1331 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1336 + // line internal/php7/php7.y:1335 { yyVAL.node = &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1344 + // line internal/php7/php7.y:1343 { yyVAL.node = &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -3727,10 +3726,10 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1355 + // line internal/php7/php7.y:1354 { yyVAL.node = &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3739,23 +3738,23 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1368 + // line internal/php7/php7.y:1367 { yyVAL.node = &ast.StmtFor{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1375 + // line internal/php7/php7.y:1374 { yyVAL.node = &ast.StmtFor{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndForTkn: yyDollar[3].token, @@ -3764,23 +3763,23 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1392 + // line internal/php7/php7.y:1391 { yyVAL.node = &ast.StmtForeach{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1399 + // line internal/php7/php7.y:1398 { yyVAL.node = &ast.StmtForeach{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndForeachTkn: yyDollar[3].token, @@ -3789,23 +3788,23 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1416 + // line internal/php7/php7.y:1415 { yyVAL.node = &ast.StmtDeclare{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1422 { yyVAL.node = &ast.StmtDeclare{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndDeclareTkn: yyDollar[3].token, @@ -3814,10 +3813,10 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1440 + // line internal/php7/php7.y:1439 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseList: yyDollar[2].list, CloseCurlyBracketTkn: yyDollar[3].token, @@ -3825,10 +3824,10 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1449 + // line internal/php7/php7.y:1448 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, CaseList: yyDollar[3].list, @@ -3837,10 +3836,10 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1459 + // line internal/php7/php7.y:1458 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, CaseList: yyDollar[2].list, @@ -3850,10 +3849,10 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1470 + // line internal/php7/php7.y:1469 { yyVAL.node = &ast.StmtSwitch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), Alt: true, ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, @@ -3864,16 +3863,16 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1485 + // line internal/php7/php7.y:1484 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1489 + // line internal/php7/php7.y:1488 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), CaseTkn: yyDollar[2].token, Cond: yyDollar[3].node, CaseSeparatorTkn: yyDollar[4].token, @@ -3882,10 +3881,10 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1499 + // line internal/php7/php7.y:1498 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), DefaultTkn: yyDollar[2].token, CaseSeparatorTkn: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -3893,35 +3892,35 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1511 + // line internal/php7/php7.y:1510 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1515 + // line internal/php7/php7.y:1514 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1521 { yyVAL.node = &ast.StmtWhile{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Stmt: yyDollar[1].node, } } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1529 + // line internal/php7/php7.y:1528 { yyVAL.node = &ast.StmtWhile{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[2].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), Stmts: yyDollar[2].list, }, EndWhileTkn: yyDollar[3].token, @@ -3930,10 +3929,10 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1546 + // line internal/php7/php7.y:1545 { yyVAL.node = &ast.StmtIf{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Cond: yyDollar[3].node, @@ -3943,10 +3942,10 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1557 + // line internal/php7/php7.y:1556 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, Cond: yyDollar[4].node, @@ -3954,36 +3953,36 @@ yydefault: Stmt: yyDollar[6].node, }) - yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + yyDollar[1].node.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) yyVAL.node = yyDollar[1].node } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1575 + // line internal/php7/php7.y:1574 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1579 + // line internal/php7/php7.y:1578 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ - Position: position.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), ElseTkn: yyDollar[2].token, Stmt: yyDollar[3].node, } - yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) + yyDollar[1].node.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node) yyVAL.node = yyDollar[1].node } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1594 + // line internal/php7/php7.y:1593 { yyVAL.node = &ast.StmtIf{ - Position: position.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), Alt: true, IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, @@ -3991,17 +3990,17 @@ yydefault: CloseParenthesisTkn: yyDollar[4].token, ColonTkn: yyDollar[5].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[6].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[6].list), Stmts: yyDollar[6].list, }, } } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1610 + // line internal/php7/php7.y:1609 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), Alt: true, ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, @@ -4009,7 +4008,7 @@ yydefault: CloseParenthesisTkn: yyDollar[5].token, ColonTkn: yyDollar[6].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[7].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[7].list), Stmts: yyDollar[7].list, }, }) @@ -4018,49 +4017,49 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1631 + // line internal/php7/php7.y:1630 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token - yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) + yyDollar[1].node.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token) yyVAL.node = yyDollar[1].node } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1639 + // line internal/php7/php7.y:1638 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ - Position: position.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), Alt: true, ElseTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition(yyDollar[4].list), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[4].list), Stmts: yyDollar[4].list, }, } yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[5].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[6].token - yyDollar[1].node.(*ast.StmtIf).Position = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) + yyDollar[1].node.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token) yyVAL.node = yyDollar[1].node } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1660 + // line internal/php7/php7.y:1659 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1664 + // line internal/php7/php7.y:1663 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1671 + // line internal/php7/php7.y:1670 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4068,7 +4067,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1677 + // line internal/php7/php7.y:1676 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4077,15 +4076,15 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1687 + // line internal/php7/php7.y:1686 { - pos := position.NewTokenPosition(yyDollar[4].token) + pos := yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { - pos = position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) + pos = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token) } else if yyDollar[2].token != nil { - pos = position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) + pos = yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token) } else if yyDollar[3].token != nil { - pos = position.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) + pos = yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token) } yyVAL.node = &ast.Parameter{ @@ -4094,9 +4093,9 @@ yydefault: AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4105,15 +4104,15 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1713 + // line internal/php7/php7.y:1712 { - pos := position.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) + pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { - pos = position.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[6].node) } else if yyDollar[2].token != nil { - pos = position.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node) } else if yyDollar[3].token != nil { - pos = position.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) + pos = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[6].node) } yyVAL.node = &ast.Parameter{ @@ -4122,9 +4121,9 @@ yydefault: AmpersandTkn: yyDollar[2].token, VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4135,67 +4134,67 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1744 + // line internal/php7/php7.y:1743 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1748 + // line internal/php7/php7.y:1747 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1755 + // line internal/php7/php7.y:1754 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1759 + // line internal/php7/php7.y:1758 { yyVAL.node = &ast.Nullable{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), QuestionTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1770 + // line internal/php7/php7.y:1769 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1778 + // line internal/php7/php7.y:1777 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1786 + // line internal/php7/php7.y:1785 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1793 + // line internal/php7/php7.y:1792 { yyVAL.node = &ast.ReturnType{} } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1797 + // line internal/php7/php7.y:1796 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4204,20 +4203,20 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1807 + // line internal/php7/php7.y:1806 { yyVAL.node = &ast.ArgumentList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, } } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1815 + // line internal/php7/php7.y:1814 { argumentList := yyDollar[2].node.(*ast.ArgumentList) - argumentList.Position = position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) + argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) argumentList.OpenParenthesisTkn = yyDollar[1].token argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, yyDollar[3].token) argumentList.CloseParenthesisTkn = yyDollar[4].token @@ -4226,7 +4225,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1828 + // line internal/php7/php7.y:1827 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4234,7 +4233,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1834 + // line internal/php7/php7.y:1833 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4243,26 +4242,26 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1844 + // line internal/php7/php7.y:1843 { yyVAL.node = &ast.Argument{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Expr: yyDollar[1].node, } } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1851 + // line internal/php7/php7.y:1850 { yyVAL.node = &ast.Argument{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), VariadicTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1862 + // line internal/php7/php7.y:1861 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4271,7 +4270,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1869 + // line internal/php7/php7.y:1868 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4279,13 +4278,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1878 + // line internal/php7/php7.y:1877 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1885 + // line internal/php7/php7.y:1884 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4294,7 +4293,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1892 + // line internal/php7/php7.y:1891 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4302,15 +4301,15 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1901 + // line internal/php7/php7.y:1900 { yyVAL.node = &ast.StmtStaticVar{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4319,14 +4318,14 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1916 + // line internal/php7/php7.y:1915 { yyVAL.node = &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4337,22 +4336,22 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1935 + // line internal/php7/php7.y:1934 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1939 + // line internal/php7/php7.y:1938 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1946 + // line internal/php7/php7.y:1945 { yyVAL.node = &ast.StmtPropertyList{ - Position: position.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), Modifiers: yyDollar[1].list, Type: yyDollar[2].node, Properties: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4362,10 +4361,10 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1957 + // line internal/php7/php7.y:1956 { yyVAL.node = &ast.StmtClassConstList{ - Position: position.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), Modifiers: yyDollar[1].list, ConstTkn: yyDollar[2].token, Consts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4375,10 +4374,10 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1968 + // line internal/php7/php7.y:1967 { yyVAL.node = &ast.StmtTraitUse{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4387,11 +4386,11 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:1978 + // line internal/php7/php7.y:1977 { - pos := position.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) + pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { - pos = position.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) + pos = yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].list, yyDollar[10].node) } yyVAL.node = &ast.StmtClassMethod{ @@ -4400,7 +4399,7 @@ yydefault: FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, MethodName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4415,7 +4414,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2007 + // line internal/php7/php7.y:2006 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4423,7 +4422,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2013 + // line internal/php7/php7.y:2012 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4432,29 +4431,29 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2023 + // line internal/php7/php7.y:2022 { yyVAL.node = &ast.StmtNop{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2030 + // line internal/php7/php7.y:2029 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, } } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2038 + // line internal/php7/php7.y:2037 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenParenthesisTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, CloseParenthesisTkn: yyDollar[3].token, @@ -4462,19 +4461,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2050 + // line internal/php7/php7.y:2049 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2054 + // line internal/php7/php7.y:2053 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2061 + // line internal/php7/php7.y:2060 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4482,7 +4481,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2067 + // line internal/php7/php7.y:2066 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4490,10 +4489,10 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2076 + // line internal/php7/php7.y:2075 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Position: position.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), Ref: yyDollar[1].node, InsteadofTkn: yyDollar[2].token, Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4502,14 +4501,14 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2089 + // line internal/php7/php7.y:2088 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4517,14 +4516,14 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2102 + // line internal/php7/php7.y:2101 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4532,15 +4531,15 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2115 + // line internal/php7/php7.y:2114 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, Alias: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, }, @@ -4548,10 +4547,10 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2129 + // line internal/php7/php7.y:2128 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Ref: yyDollar[1].node, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, @@ -4559,12 +4558,12 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2141 + // line internal/php7/php7.y:2140 { yyVAL.node = &ast.StmtTraitMethodRef{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4572,20 +4571,20 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2152 + // line internal/php7/php7.y:2151 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2159 + // line internal/php7/php7.y:2158 { yyVAL.node = &ast.StmtTraitMethodRef{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Method: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -4593,19 +4592,19 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2175 + // line internal/php7/php7.y:2174 { yyVAL.node = &ast.StmtNop{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), SemiColonTkn: yyDollar[1].token, } } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2182 + // line internal/php7/php7.y:2181 { yyVAL.node = &ast.StmtStmtList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracket: yyDollar[1].token, Stmts: yyDollar[2].list, CloseCurlyBracket: yyDollar[3].token, @@ -4613,17 +4612,17 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2194 + // line internal/php7/php7.y:2193 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2198 + // line internal/php7/php7.y:2197 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4631,91 +4630,91 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2211 + // line internal/php7/php7.y:2210 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2215 + // line internal/php7/php7.y:2214 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2221 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2226 + // line internal/php7/php7.y:2225 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2233 + // line internal/php7/php7.y:2232 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2241 + // line internal/php7/php7.y:2240 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2249 + // line internal/php7/php7.y:2248 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2257 + // line internal/php7/php7.y:2256 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2265 + // line internal/php7/php7.y:2264 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2273 + // line internal/php7/php7.y:2272 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2284 + // line internal/php7/php7.y:2283 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4724,7 +4723,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2291 + // line internal/php7/php7.y:2290 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4732,14 +4731,14 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2299 { yyVAL.node = &ast.StmtProperty{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4749,14 +4748,14 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2315 + // line internal/php7/php7.y:2314 { yyVAL.node = &ast.StmtProperty{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4767,7 +4766,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2334 + // line internal/php7/php7.y:2333 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4776,7 +4775,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2341 + // line internal/php7/php7.y:2340 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4784,12 +4783,12 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2350 + // line internal/php7/php7.y:2349 { yyVAL.node = &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4799,12 +4798,12 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2366 + // line internal/php7/php7.y:2365 { yyVAL.node = &ast.StmtConstant{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Name: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -4814,7 +4813,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2382 + // line internal/php7/php7.y:2381 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4823,7 +4822,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2389 + // line internal/php7/php7.y:2388 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4831,25 +4830,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2398 + // line internal/php7/php7.y:2397 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2405 + // line internal/php7/php7.y:2404 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2409 + // line internal/php7/php7.y:2408 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2416 + // line internal/php7/php7.y:2415 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4858,7 +4857,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2423 + // line internal/php7/php7.y:2422 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4866,10 +4865,10 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2432 + // line internal/php7/php7.y:2431 { yyVAL.node = &ast.StmtClass{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -4884,11 +4883,11 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2451 + // line internal/php7/php7.y:2450 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, @@ -4898,7 +4897,7 @@ yydefault: } } else { yyVAL.node = &ast.ExprNew{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, } @@ -4906,22 +4905,22 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2471 + // line internal/php7/php7.y:2470 { yyVAL.node = &ast.ExprNew{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, } } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2482 + // line internal/php7/php7.y:2481 { yyVAL.node = &ast.ExprAssign{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), Var: &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -4934,12 +4933,12 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2498 + // line internal/php7/php7.y:2497 { yyVAL.node = &ast.ExprAssign{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), Var: &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -4951,10 +4950,10 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2513 + // line internal/php7/php7.y:2512 { yyVAL.node = &ast.ExprAssign{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -4962,10 +4961,10 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2521 { yyVAL.node = &ast.ExprAssignReference{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, @@ -4974,20 +4973,20 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2532 + // line internal/php7/php7.y:2531 { yyVAL.node = &ast.ExprClone{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CloneTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2540 + // line internal/php7/php7.y:2539 { yyVAL.node = &ast.ExprAssignPlus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -4995,10 +4994,10 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2549 + // line internal/php7/php7.y:2548 { yyVAL.node = &ast.ExprAssignMinus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5006,10 +5005,10 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2558 + // line internal/php7/php7.y:2557 { yyVAL.node = &ast.ExprAssignMul{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5017,10 +5016,10 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2567 + // line internal/php7/php7.y:2566 { yyVAL.node = &ast.ExprAssignPow{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5028,10 +5027,10 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2576 + // line internal/php7/php7.y:2575 { yyVAL.node = &ast.ExprAssignDiv{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5039,10 +5038,10 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2584 { yyVAL.node = &ast.ExprAssignConcat{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5050,10 +5049,10 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2594 + // line internal/php7/php7.y:2593 { yyVAL.node = &ast.ExprAssignMod{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5061,10 +5060,10 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2603 + // line internal/php7/php7.y:2602 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5072,10 +5071,10 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2612 + // line internal/php7/php7.y:2611 { yyVAL.node = &ast.ExprAssignBitwiseOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5083,10 +5082,10 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2621 + // line internal/php7/php7.y:2620 { yyVAL.node = &ast.ExprAssignBitwiseXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5094,10 +5093,10 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2630 + // line internal/php7/php7.y:2629 { yyVAL.node = &ast.ExprAssignShiftLeft{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5105,10 +5104,10 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2639 + // line internal/php7/php7.y:2638 { yyVAL.node = &ast.ExprAssignShiftRight{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5116,10 +5115,10 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2648 + // line internal/php7/php7.y:2647 { yyVAL.node = &ast.ExprAssignCoalesce{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, EqualTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -5127,50 +5126,50 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2657 + // line internal/php7/php7.y:2656 { yyVAL.node = &ast.ExprPostInc{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Var: yyDollar[1].node, IncTkn: yyDollar[2].token, } } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2665 + // line internal/php7/php7.y:2664 { yyVAL.node = &ast.ExprPreInc{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2673 + // line internal/php7/php7.y:2672 { yyVAL.node = &ast.ExprPostDec{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), Var: yyDollar[1].node, DecTkn: yyDollar[2].token, } } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2681 + // line internal/php7/php7.y:2680 { yyVAL.node = &ast.ExprPreDec{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DecTkn: yyDollar[1].token, Var: yyDollar[2].node, } } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2689 + // line internal/php7/php7.y:2688 { yyVAL.node = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5178,10 +5177,10 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2698 + // line internal/php7/php7.y:2697 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5189,10 +5188,10 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2707 + // line internal/php7/php7.y:2706 { yyVAL.node = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5200,10 +5199,10 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2716 + // line internal/php7/php7.y:2715 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5211,10 +5210,10 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2725 + // line internal/php7/php7.y:2724 { yyVAL.node = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5222,10 +5221,10 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2734 + // line internal/php7/php7.y:2733 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5233,10 +5232,10 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2742 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5244,10 +5243,10 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2752 + // line internal/php7/php7.y:2751 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5255,10 +5254,10 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2760 { yyVAL.node = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5266,10 +5265,10 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2769 { yyVAL.node = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5277,10 +5276,10 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2778 { yyVAL.node = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5288,10 +5287,10 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2787 { yyVAL.node = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5299,10 +5298,10 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2797 + // line internal/php7/php7.y:2796 { yyVAL.node = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5310,10 +5309,10 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2805 { yyVAL.node = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5321,10 +5320,10 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2815 + // line internal/php7/php7.y:2814 { yyVAL.node = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5332,10 +5331,10 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2824 + // line internal/php7/php7.y:2823 { yyVAL.node = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5343,10 +5342,10 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2833 + // line internal/php7/php7.y:2832 { yyVAL.node = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5354,50 +5353,50 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2842 + // line internal/php7/php7.y:2841 { yyVAL.node = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), PlusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2850 + // line internal/php7/php7.y:2849 { yyVAL.node = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), MinusTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2858 + // line internal/php7/php7.y:2857 { yyVAL.node = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), ExclamationTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2866 + // line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), TildaTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2874 + // line internal/php7/php7.y:2873 { yyVAL.node = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5405,10 +5404,10 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2882 { yyVAL.node = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5416,10 +5415,10 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2892 + // line internal/php7/php7.y:2891 { yyVAL.node = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5427,10 +5426,10 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2901 + // line internal/php7/php7.y:2900 { yyVAL.node = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5438,10 +5437,10 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2910 + // line internal/php7/php7.y:2909 { yyVAL.node = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5449,10 +5448,10 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2919 + // line internal/php7/php7.y:2918 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5460,10 +5459,10 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2928 + // line internal/php7/php7.y:2927 { yyVAL.node = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5471,10 +5470,10 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2937 + // line internal/php7/php7.y:2936 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5482,10 +5481,10 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2946 + // line internal/php7/php7.y:2945 { yyVAL.node = &ast.ExprBinarySpaceship{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5493,10 +5492,10 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2954 { yyVAL.node = &ast.ExprInstanceOf{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Expr: yyDollar[1].node, InstanceOfTkn: yyDollar[2].token, Class: yyDollar[3].node, @@ -5504,10 +5503,10 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2964 + // line internal/php7/php7.y:2963 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -5515,16 +5514,16 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2973 + // line internal/php7/php7.y:2972 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2976 { yyVAL.node = &ast.ExprTernary{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, @@ -5534,10 +5533,10 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2988 + // line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprTernary{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Condition: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, @@ -5546,10 +5545,10 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2998 + // line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprBinaryCoalesce{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Left: yyDollar[1].node, OpTkn: yyDollar[2].token, Right: yyDollar[3].node, @@ -5557,92 +5556,92 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3007 + // line internal/php7/php7.y:3006 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3011 + // line internal/php7/php7.y:3010 { yyVAL.node = &ast.ExprCastInt{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3019 + // line internal/php7/php7.y:3018 { yyVAL.node = &ast.ExprCastDouble{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3027 + // line internal/php7/php7.y:3026 { yyVAL.node = &ast.ExprCastString{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3034 { yyVAL.node = &ast.ExprCastArray{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3043 + // line internal/php7/php7.y:3042 { yyVAL.node = &ast.ExprCastObject{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3051 + // line internal/php7/php7.y:3050 { yyVAL.node = &ast.ExprCastBool{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3059 + // line internal/php7/php7.y:3058 { yyVAL.node = &ast.ExprCastUnset{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), CastTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3067 + // line internal/php7/php7.y:3066 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, } if yyDollar[2].node == nil { - exit.Position = position.NewTokenPosition(yyDollar[1].token) + exit.Position = yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token) } else { - exit.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + exit.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn @@ -5652,26 +5651,26 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3084 + // line internal/php7/php7.y:3083 { yyVAL.node = &ast.ExprErrorSuppress{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AtTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3092 + // line internal/php7/php7.y:3091 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3096 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprShellExec{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBacktickTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseBacktickTkn: yyDollar[3].token, @@ -5679,39 +5678,39 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3104 { yyVAL.node = &ast.ExprPrint{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), PrintTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3113 + // line internal/php7/php7.y:3112 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), YieldTkn: yyDollar[1].token, } } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3120 + // line internal/php7/php7.y:3119 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, Value: yyDollar[2].node, } } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3128 + // line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprYield{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, @@ -5720,30 +5719,30 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3138 + // line internal/php7/php7.y:3137 { yyVAL.node = &ast.ExprYieldFrom{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldFromTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3146 + // line internal/php7/php7.y:3145 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3150 + // line internal/php7/php7.y:3149 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: - n.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + n.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) n.StaticTkn = yyDollar[1].token case *ast.ExprArrowFunction: - n.Position = position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) + n.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) n.StaticTkn = yyDollar[1].token } @@ -5751,10 +5750,10 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3165 { yyVAL.node = &ast.ExprClosure{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[4].token, @@ -5771,10 +5770,10 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3184 + // line internal/php7/php7.y:3183 { yyVAL.node = &ast.ExprArrowFunction{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), FnTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, @@ -5789,28 +5788,28 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3207 + // line internal/php7/php7.y:3206 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3211 + // line internal/php7/php7.y:3210 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3218 + // line internal/php7/php7.y:3217 { yyVAL.node = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3222 + // line internal/php7/php7.y:3221 { yyVAL.node = &ast.ExprClosureUse{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Uses: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -5820,7 +5819,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3236 + // line internal/php7/php7.y:3235 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5829,7 +5828,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3243 + // line internal/php7/php7.y:3242 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5837,12 +5836,12 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3252 + // line internal/php7/php7.y:3251 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5850,15 +5849,15 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3263 + // line internal/php7/php7.y:3262 { yyVAL.node = &ast.ExprReference{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), AmpersandTkn: yyDollar[1].token, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -5867,10 +5866,10 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3281 + // line internal/php7/php7.y:3280 { yyVAL.node = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -5880,10 +5879,10 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3292 + // line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprStaticCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -5895,10 +5894,10 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3305 + // line internal/php7/php7.y:3304 { yyVAL.node = &ast.ExprStaticCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, @@ -5910,10 +5909,10 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3318 + // line internal/php7/php7.y:3317 { yyVAL.node = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, @@ -5923,44 +5922,44 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3332 + // line internal/php7/php7.y:3331 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3340 + // line internal/php7/php7.y:3339 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3347 + // line internal/php7/php7.y:3346 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3351 + // line internal/php7/php7.y:3350 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3358 + // line internal/php7/php7.y:3357 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3361 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -5968,17 +5967,17 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3374 + // line internal/php7/php7.y:3373 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3378 + // line internal/php7/php7.y:3377 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -5986,28 +5985,28 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3388 + // line internal/php7/php7.y:3387 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3395 + // line internal/php7/php7.y:3394 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3399 + // line internal/php7/php7.y:3398 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3406 + // line internal/php7/php7.y:3405 { yyVAL.node = &ast.ExprArray{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6017,10 +6016,10 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3417 + // line internal/php7/php7.y:3416 { yyVAL.node = &ast.ExprArray{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, @@ -6029,124 +6028,124 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3427 + // line internal/php7/php7.y:3426 { yyVAL.node = &ast.ScalarString{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3438 + // line internal/php7/php7.y:3437 { yyVAL.node = &ast.ScalarLnumber{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3446 + // line internal/php7/php7.y:3445 { yyVAL.node = &ast.ScalarDnumber{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3454 + // line internal/php7/php7.y:3453 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3462 + // line internal/php7/php7.y:3461 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3470 + // line internal/php7/php7.y:3469 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3478 + // line internal/php7/php7.y:3477 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3486 + // line internal/php7/php7.y:3485 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3494 + // line internal/php7/php7.y:3493 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3502 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3510 + // line internal/php7/php7.y:3509 { yyVAL.node = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), MagicConstTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3518 + // line internal/php7/php7.y:3517 { yyVAL.node = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6156,20 +6155,20 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3533 + // line internal/php7/php7.y:3532 { yyVAL.node = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenHeredocTkn: yyDollar[1].token, CloseHeredocTkn: yyDollar[2].token, } } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3541 + // line internal/php7/php7.y:3540 { yyVAL.node = &ast.ScalarEncapsed{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenQoteTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseQoteTkn: yyDollar[1].token, @@ -6177,10 +6176,10 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3550 + // line internal/php7/php7.y:3549 { yyVAL.node = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenHeredocTkn: yyDollar[1].token, Parts: yyDollar[2].list, CloseHeredocTkn: yyDollar[3].token, @@ -6188,35 +6187,35 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3559 + // line internal/php7/php7.y:3558 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3563 + // line internal/php7/php7.y:3562 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3570 + // line internal/php7/php7.y:3569 { yyVAL.node = &ast.ExprConstFetch{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Const: yyDollar[1].node, } } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3577 + // line internal/php7/php7.y:3576 { yyVAL.node = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -6224,14 +6223,14 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3590 + // line internal/php7/php7.y:3589 { yyVAL.node = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -6239,46 +6238,46 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3606 + // line internal/php7/php7.y:3605 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3609 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3617 + // line internal/php7/php7.y:3616 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3620 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3628 + // line internal/php7/php7.y:3627 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3635 + // line internal/php7/php7.y:3634 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3639 + // line internal/php7/php7.y:3638 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6286,22 +6285,22 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3648 + // line internal/php7/php7.y:3647 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3655 + // line internal/php7/php7.y:3654 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3658 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6309,22 +6308,22 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3668 + // line internal/php7/php7.y:3667 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3675 + // line internal/php7/php7.y:3674 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3679 + // line internal/php7/php7.y:3678 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6333,10 +6332,10 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3689 + // line internal/php7/php7.y:3688 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6345,10 +6344,10 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3699 + // line internal/php7/php7.y:3698 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6357,10 +6356,10 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3709 + // line internal/php7/php7.y:3708 { yyVAL.node = &ast.ExprMethodCall{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Method: yyDollar[3].node, @@ -6372,28 +6371,28 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3722 + // line internal/php7/php7.y:3721 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3729 + // line internal/php7/php7.y:3728 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3732 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3737 + // line internal/php7/php7.y:3736 { yyVAL.node = &ast.ExprPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -6401,12 +6400,12 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3749 + // line internal/php7/php7.y:3748 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6414,13 +6413,13 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3760 + // line internal/php7/php7.y:3759 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), OpenBracketTkn: yyDollar[2].token, Child: yyDollar[3].node, CloseBracketTkn: yyDollar[4].token, @@ -6429,20 +6428,20 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3773 + // line internal/php7/php7.y:3772 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DollarTkn: yyDollar[1].token, VarName: yyDollar[2].node, } } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3784 + // line internal/php7/php7.y:3783 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -6450,10 +6449,10 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3793 + // line internal/php7/php7.y:3792 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -6461,16 +6460,16 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3805 + // line internal/php7/php7.y:3804 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3808 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6479,10 +6478,10 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3819 + // line internal/php7/php7.y:3818 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), Var: yyDollar[1].node, OpenBracketTkn: yyDollar[2].token, Dim: yyDollar[3].node, @@ -6491,10 +6490,10 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3829 + // line internal/php7/php7.y:3828 { yyVAL.node = &ast.ExprPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -6502,10 +6501,10 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3837 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -6513,10 +6512,10 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3846 { yyVAL.node = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Property: yyDollar[3].node, @@ -6524,20 +6523,20 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3859 + // line internal/php7/php7.y:3858 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3867 + // line internal/php7/php7.y:3866 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6545,26 +6544,26 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3876 + // line internal/php7/php7.y:3875 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3883 + // line internal/php7/php7.y:3882 { yyVAL.node = &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3891 + // line internal/php7/php7.y:3890 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6572,13 +6571,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3899 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3907 + // line internal/php7/php7.y:3906 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6591,19 +6590,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3921 + // line internal/php7/php7.y:3920 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3925 + // line internal/php7/php7.y:3924 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3932 + // line internal/php7/php7.y:3931 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6612,7 +6611,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3939 + // line internal/php7/php7.y:3938 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6620,10 +6619,10 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3948 + // line internal/php7/php7.y:3947 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: yyDollar[3].node, @@ -6631,23 +6630,23 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3957 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewNodePosition(yyDollar[1].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), Val: yyDollar[1].node, } } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3964 + // line internal/php7/php7.y:3963 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), AmpersandTkn: yyDollar[3].token, Var: yyDollar[4].node, }, @@ -6655,12 +6654,12 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, }, @@ -6668,24 +6667,24 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3988 + // line internal/php7/php7.y:3987 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), EllipsisTkn: yyDollar[1].token, Val: yyDollar[2].node, } } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3996 + // line internal/php7/php7.y:3995 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, Val: &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), ListTkn: yyDollar[3].token, OpenBracketTkn: yyDollar[4].token, Items: yyDollar[5].node.(*ast.ParserSeparatedList).Items, @@ -6696,12 +6695,12 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4012 + // line internal/php7/php7.y:4011 { yyVAL.node = &ast.ExprArrayItem{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Val: &ast.ExprList{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6712,18 +6711,18 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4028 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4033 + // line internal/php7/php7.y:4032 { yyVAL.list = append( yyDollar[1].list, &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), EncapsedStrTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6731,17 +6730,17 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4044 + // line internal/php7/php7.y:4043 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4047 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), EncapsedStrTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6750,12 +6749,12 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4062 + // line internal/php7/php7.y:4061 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6763,14 +6762,14 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4073 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6782,21 +6781,21 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4090 + // line internal/php7/php7.y:4089 { yyVAL.node = &ast.ExprPropertyFetch{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, }, ObjectOperatorTkn: yyDollar[2].token, Property: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, @@ -6804,13 +6803,13 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4110 + // line internal/php7/php7.y:4109 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Position: position.NewNodePosition(yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[2].node), VarName: yyDollar[2].node, }, CloseBracketTkn: yyDollar[3].token, @@ -6818,15 +6817,15 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4122 + // line internal/php7/php7.y:4121 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6836,17 +6835,17 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4138 + // line internal/php7/php7.y:4137 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), OpenBracketTkn: yyDollar[1].token, Child: &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, @@ -6860,10 +6859,10 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4160 + // line internal/php7/php7.y:4159 { yyVAL.node = &ast.ParserBrackets{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, CloseBracketTkn: yyDollar[3].token, @@ -6871,28 +6870,28 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4171 { yyVAL.node = &ast.ScalarString{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4180 + // line internal/php7/php7.y:4179 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { yyVAL.node = &ast.ScalarLnumber{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), NumberTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } } else { yyVAL.node = &ast.ScalarString{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, } @@ -6900,24 +6899,24 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4196 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil if isInt { yyVAL.node = &ast.ExprUnaryMinus{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), MinusTkn: yyDollar[1].token, Expr: &ast.ScalarLnumber{ - Position: position.NewTokenPosition(yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), NumberTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, } } else { yyVAL.node = &ast.ScalarString{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), MinusTkn: yyDollar[1].token, StringTkn: yyDollar[2].token, Value: append([]byte("-"), yyDollar[2].token.Value...), @@ -6926,12 +6925,12 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4220 { yyVAL.node = &ast.ExprVariable{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), VarName: &ast.Identifier{ - Position: position.NewTokenPosition(yyDollar[1].token), + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, @@ -6939,14 +6938,14 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4235 + // line internal/php7/php7.y:4234 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) } yyVAL.node = &ast.ExprIsset{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), IssetTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, @@ -6956,10 +6955,10 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4250 + // line internal/php7/php7.y:4249 { yyVAL.node = &ast.ExprEmpty{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EmptyTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -6968,30 +6967,30 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4259 { yyVAL.node = &ast.ExprInclude{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4268 + // line internal/php7/php7.y:4267 { yyVAL.node = &ast.ExprIncludeOnce{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), IncludeTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4276 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprEval{ - Position: position.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), EvalTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Expr: yyDollar[3].node, @@ -7000,27 +6999,27 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4286 + // line internal/php7/php7.y:4285 { yyVAL.node = &ast.ExprRequire{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4294 + // line internal/php7/php7.y:4293 { yyVAL.node = &ast.ExprRequireOnce{ - Position: position.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), RequireOnceTkn: yyDollar[1].token, Expr: yyDollar[2].node, } } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4305 + // line internal/php7/php7.y:4304 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7028,7 +7027,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4311 + // line internal/php7/php7.y:4310 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7037,7 +7036,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4321 + // line internal/php7/php7.y:4320 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 5ad2f47..4f52bad 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -4,7 +4,6 @@ package php7 import ( "strconv" - "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/token" ) @@ -283,7 +282,7 @@ start: top_statement_list { yylex.(*Parser).rootNode = &ast.Root{ - Position: position.NewNodeListPosition($1), + Position: yylex.(*Parser).builder.NewNodeListPosition($1), Stmts: $1, EndTkn: yylex.(*Parser).currentToken, } @@ -338,7 +337,7 @@ namespace_name: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, }, @@ -348,7 +347,7 @@ namespace_name: | namespace_name T_NS_SEPARATOR T_STRING { part := &ast.NameNamePart{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, } @@ -364,7 +363,7 @@ name: namespace_name { $$ = &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, } @@ -372,7 +371,7 @@ name: | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: position.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, Parts: $3.(*ast.ParserSeparatedList).Items, @@ -382,7 +381,7 @@ name: | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), NsSeparatorTkn: $1, Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -419,7 +418,7 @@ top_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -429,10 +428,10 @@ top_statement: | T_NAMESPACE namespace_name ';' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -442,10 +441,10 @@ top_statement: | T_NAMESPACE namespace_name '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -457,7 +456,7 @@ top_statement: | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsTkn: $1, OpenCurlyBracket: $2, Stmts: $3, @@ -468,7 +467,7 @@ top_statement: { use := $2.(*ast.StmtGroupUse) - use.Position = position.NewTokensPosition($1, $3) + use.Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) use.UseTkn = $1 use.SemiColonTkn = $3 @@ -478,7 +477,7 @@ top_statement: { use := $3.(*ast.StmtGroupUse) - use.Position = position.NewTokensPosition($1, $4) + use.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4) use.UseTkn = $1 use.Type = $2 use.SemiColonTkn = $4 @@ -488,7 +487,7 @@ top_statement: | T_USE use_declarations ';' { $$ = &ast.StmtUse{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), UseTkn: $1, UseDeclarations: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -498,7 +497,7 @@ top_statement: | T_USE use_type use_declarations ';' { $$ = &ast.StmtUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, Type: $2, UseDeclarations: $3.(*ast.ParserSeparatedList).Items, @@ -509,7 +508,7 @@ top_statement: | T_CONST const_list ';' { $$ = &ast.StmtConstList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ConstTkn: $1, Consts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -522,7 +521,7 @@ use_type: T_FUNCTION { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -530,7 +529,7 @@ use_type: | T_CONST { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -543,9 +542,9 @@ group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -561,10 +560,10 @@ group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -583,9 +582,9 @@ mixed_group_use_declaration: $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) $$ = &ast.StmtGroupUse{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -601,10 +600,10 @@ mixed_group_use_declaration: $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) $$ = &ast.StmtGroupUse{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Position: position.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -685,7 +684,7 @@ inline_use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.Type = $1 - decl.Position = position.NewNodesPosition($1, $2) + decl.Position = yylex.(*Parser).builder.NewNodesPosition($1, $2) $$ = $2 } @@ -695,9 +694,9 @@ unprefixed_use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, @@ -706,15 +705,15 @@ unprefixed_use_declaration: | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: position.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: position.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), Parts: $1.(*ast.ParserSeparatedList).Items, SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -731,7 +730,7 @@ use_declaration: { decl := $2.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = $1 - decl.Position = position.NewTokenNodePosition($1, $2) + decl.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) $$ = $2 } @@ -795,7 +794,7 @@ inner_statement: | T_HALT_COMPILER '(' ')' ';' { $$ = &ast.StmtHaltCompiler{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), HaltCompilerTkn: $1, OpenParenthesisTkn: $2, CloseParenthesisTkn: $3, @@ -807,7 +806,7 @@ statement: '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -827,14 +826,14 @@ statement: $5.(*ast.StmtWhile).OpenParenthesisTkn = $2 $5.(*ast.StmtWhile).Cond = $3 $5.(*ast.StmtWhile).CloseParenthesisTkn = $4 - $5.(*ast.StmtWhile).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | T_DO statement T_WHILE '(' expr ')' ';' { $$ = &ast.StmtDo{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), DoTkn: $1, Stmt: $2, WhileTkn: $3, @@ -857,7 +856,7 @@ statement: $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 - $9.(*ast.StmtFor).Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) $$ = $9 } @@ -867,14 +866,14 @@ statement: $5.(*ast.StmtSwitch).OpenParenthesisTkn = $2 $5.(*ast.StmtSwitch).Cond = $3 $5.(*ast.StmtSwitch).CloseParenthesisTkn = $4 - $5.(*ast.StmtSwitch).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | T_BREAK optional_expr ';' { $$ = &ast.StmtBreak{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), BreakTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -883,7 +882,7 @@ statement: | T_CONTINUE optional_expr ';' { $$ = &ast.StmtContinue{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ContinueTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -892,7 +891,7 @@ statement: | T_RETURN optional_expr ';' { $$ = &ast.StmtReturn{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ReturnTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -902,7 +901,7 @@ statement: { $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 - $2.(*ast.StmtGlobal).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -910,7 +909,7 @@ statement: { $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 - $2.(*ast.StmtStatic).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } @@ -918,14 +917,14 @@ statement: { $2.(*ast.StmtEcho).EchoTkn = $1 $2.(*ast.StmtEcho).SemiColonTkn = $3 - $2.(*ast.StmtEcho).Position = position.NewTokensPosition($1, $3) + $2.(*ast.StmtEcho).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 } | T_INLINE_HTML { $$ = &ast.StmtInlineHtml{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), InlineHtmlTkn: $1, Value: $1.Value, } @@ -933,7 +932,7 @@ statement: | expr ';' { $$ = &ast.StmtExpression{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Expr: $1, SemiColonTkn: $2, } @@ -945,7 +944,7 @@ statement: $3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4) $3.(*ast.StmtUnset).CloseParenthesisTkn = $5 $3.(*ast.StmtUnset).SemiColonTkn = $6 - $3.(*ast.StmtUnset).Position = position.NewTokensPosition($1, $6) + $3.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition($1, $6) $$ = $3 } @@ -957,7 +956,7 @@ statement: $7.(*ast.StmtForeach).AsTkn = $4 $7.(*ast.StmtForeach).Var = $5 $7.(*ast.StmtForeach).CloseParenthesisTkn = $6 - $7.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $7) + $7.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $7) $$ = $7 } @@ -971,7 +970,7 @@ statement: $9.(*ast.StmtForeach).DoubleArrowTkn = $6 $9.(*ast.StmtForeach).Var = $7 $9.(*ast.StmtForeach).CloseParenthesisTkn = $8 - $9.(*ast.StmtForeach).Position = position.NewTokenNodePosition($1, $9) + $9.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) $$ = $9 } @@ -982,22 +981,22 @@ statement: $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 - $5.(*ast.StmtDeclare).Position = position.NewTokenNodePosition($1, $5) + $5.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) $$ = $5 } | ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | T_TRY '{' inner_statement_list '}' catch_list finally_statement { - pos := position.NewTokenNodeListPosition($1, $5) + pos := yylex.(*Parser).builder.NewTokenNodeListPosition($1, $5) if $6 != nil { - pos = position.NewTokenNodePosition($1, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($1, $6) } $$ = &ast.StmtTry{ @@ -1013,7 +1012,7 @@ statement: | T_THROW expr ';' { $$ = &ast.StmtThrow{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ThrowTkn: $1, Expr: $2, SemiColonTkn: $3, @@ -1022,10 +1021,10 @@ statement: | T_GOTO T_STRING ';' { $$ = &ast.StmtGoto{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), GotoTkn: $1, Label: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1035,9 +1034,9 @@ statement: | T_STRING ':' { $$ = &ast.StmtLabel{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), LabelName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1056,9 +1055,9 @@ catch_list: catch.CatchTkn = $2 catch.OpenParenthesisTkn = $3 catch.Var = &ast.ExprVariable{ - Position: position.NewTokenPosition($5), + Position: yylex.(*Parser).builder.NewTokenPosition($5), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($5), + Position: yylex.(*Parser).builder.NewTokenPosition($5), IdentifierTkn: $5, Value: $5.Value, }, @@ -1067,7 +1066,7 @@ catch_list: catch.OpenCurlyBracketTkn = $7 catch.Stmts = $8 catch.CloseCurlyBracketTkn = $9 - catch.Position = position.NewTokensPosition($2, $9) + catch.Position = yylex.(*Parser).builder.NewTokensPosition($2, $9) $$ = append($1, catch) } @@ -1096,7 +1095,7 @@ finally_statement: | T_FINALLY '{' inner_statement_list '}' { $$ = &ast.StmtFinally{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), FinallyTkn: $1, OpenCurlyBracketTkn: $2, Stmts: $3, @@ -1132,11 +1131,11 @@ function_declaration_statement: T_FUNCTION returns_ref T_STRING backup_doc_comment '(' parameter_list ')' return_type '{' inner_statement_list '}' { $$ = &ast.StmtFunction{ - Position: position.NewTokensPosition($1, $11), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, FunctionName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1179,11 +1178,11 @@ class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Position: position.NewOptionalListTokensPosition($1, $2, $9), + Position: yylex.(*Parser).builder.NewOptionalListTokensPosition($1, $2, $9), Modifiers: $1, ClassTkn: $2, ClassName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -1197,10 +1196,10 @@ class_declaration_statement: | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, ClassName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1228,7 +1227,7 @@ class_modifier: T_ABSTRACT { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1236,7 +1235,7 @@ class_modifier: | T_FINAL { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1247,10 +1246,10 @@ trait_declaration_statement: T_TRAIT T_STRING backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtTrait{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), TraitTkn: $1, TraitName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1265,10 +1264,10 @@ interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtInterface{ - Position: position.NewTokensPosition($1, $7), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -1288,7 +1287,7 @@ extends_from: | T_EXTENDS name { $$ = &ast.StmtClassExtends{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExtendTkn: $1, ClassName: $2, } @@ -1303,7 +1302,7 @@ interface_extends_list: | T_EXTENDS name_list { $$ = &ast.StmtInterfaceExtends{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ExtendsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1319,7 +1318,7 @@ implements_list: | T_IMPLEMENTS name_list { $$ = &ast.StmtClassImplements{ - Position: position.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), ImplementsTkn: $1, InterfaceNames: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1335,7 +1334,7 @@ foreach_variable: | '&' variable { $$ = &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, } @@ -1343,7 +1342,7 @@ foreach_variable: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -1354,7 +1353,7 @@ foreach_variable: | '[' array_pair_list ']' { $$ = &ast.ExprList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1367,18 +1366,18 @@ for_statement: statement { $$ = &ast.StmtFor{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOR ';' { $$ = &ast.StmtFor{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForTkn: $3, @@ -1391,18 +1390,18 @@ foreach_statement: statement { $$ = &ast.StmtForeach{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDFOREACH ';' { $$ = &ast.StmtForeach{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndForeachTkn: $3, @@ -1415,18 +1414,18 @@ declare_statement: statement { $$ = &ast.StmtDeclare{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDDECLARE ';' { $$ = &ast.StmtDeclare{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndDeclareTkn: $3, @@ -1439,7 +1438,7 @@ switch_case_list: '{' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, CaseList: $2, CloseCurlyBracketTkn: $3, @@ -1448,7 +1447,7 @@ switch_case_list: | '{' ';' case_list '}' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1458,7 +1457,7 @@ switch_case_list: | ':' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, CaseList: $2, @@ -1469,7 +1468,7 @@ switch_case_list: | ':' ';' case_list T_ENDSWITCH ';' { $$ = &ast.StmtSwitch{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, @@ -1488,7 +1487,7 @@ case_list: | case_list T_CASE expr case_separator inner_statement_list { $$ = append($1, &ast.StmtCase{ - Position: position.NewTokenNodeListPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), CaseTkn: $2, Cond: $3, CaseSeparatorTkn: $4, @@ -1498,7 +1497,7 @@ case_list: | case_list T_DEFAULT case_separator inner_statement_list { $$ = append($1, &ast.StmtDefault{ - Position: position.NewTokenNodeListPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $4), DefaultTkn: $2, CaseSeparatorTkn: $3, Stmts: $4, @@ -1521,18 +1520,18 @@ while_statement: statement { $$ = &ast.StmtWhile{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Stmt: $1, } } | ':' inner_statement_list T_ENDWHILE ';' { $$ = &ast.StmtWhile{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($2), + Position: yylex.(*Parser).builder.NewNodeListPosition($2), Stmts: $2, }, EndWhileTkn: $3, @@ -1545,7 +1544,7 @@ if_stmt_without_else: T_IF '(' expr ')' statement { $$ = &ast.StmtIf{ - Position: position.NewTokenNodePosition($1, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $5), IfTkn: $1, OpenParenthesisTkn: $2, Cond: $3, @@ -1556,7 +1555,7 @@ if_stmt_without_else: | if_stmt_without_else T_ELSEIF '(' expr ')' statement { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Position: position.NewTokenNodePosition($2, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $6), ElseIfTkn: $2, OpenParenthesisTkn: $3, Cond: $4, @@ -1564,7 +1563,7 @@ if_stmt_without_else: Stmt: $6, }) - $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $6) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodesPosition($1, $6) $$ = $1 } @@ -1578,12 +1577,12 @@ if_stmt: | if_stmt_without_else T_ELSE statement { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Position: position.NewTokenNodePosition($2, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $3), ElseTkn: $2, Stmt: $3, } - $1.(*ast.StmtIf).Position = position.NewNodesPosition($1, $3) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodesPosition($1, $3) $$ = $1 } @@ -1593,7 +1592,7 @@ alt_if_stmt_without_else: T_IF '(' expr ')' ':' inner_statement_list { $$ = &ast.StmtIf{ - Position: position.NewTokenNodeListPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $6), Alt: true, IfTkn: $1, OpenParenthesisTkn: $2, @@ -1601,7 +1600,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $4, ColonTkn: $5, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($6), + Position: yylex.(*Parser).builder.NewNodeListPosition($6), Stmts: $6, }, } @@ -1609,7 +1608,7 @@ alt_if_stmt_without_else: | alt_if_stmt_without_else T_ELSEIF '(' expr ')' ':' inner_statement_list { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ - Position: position.NewTokenNodeListPosition($2, $7), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $7), Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3, @@ -1617,7 +1616,7 @@ alt_if_stmt_without_else: CloseParenthesisTkn: $5, ColonTkn: $6, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($7), + Position: yylex.(*Parser).builder.NewNodeListPosition($7), Stmts: $7, }, }) @@ -1631,25 +1630,25 @@ alt_if_stmt: { $1.(*ast.StmtIf).EndIfTkn = $2 $1.(*ast.StmtIf).SemiColonTkn = $3 - $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $3) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $3) $$ = $1 } | alt_if_stmt_without_else T_ELSE ':' inner_statement_list T_ENDIF ';' { $1.(*ast.StmtIf).Else = &ast.StmtElse{ - Position: position.NewTokenNodeListPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $4), Alt: true, ElseTkn: $2, ColonTkn: $3, Stmt: &ast.StmtStmtList{ - Position: position.NewNodeListPosition($4), + Position: yylex.(*Parser).builder.NewNodeListPosition($4), Stmts: $4, }, } $1.(*ast.StmtIf).EndIfTkn = $5 $1.(*ast.StmtIf).SemiColonTkn = $6 - $1.(*ast.StmtIf).Position = position.NewNodeTokenPosition($1, $6) + $1.(*ast.StmtIf).Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $6) $$ = $1 } @@ -1685,13 +1684,13 @@ non_empty_parameter_list: parameter: optional_type is_reference is_variadic T_VARIABLE { - pos := position.NewTokenPosition($4) + pos := yylex.(*Parser).builder.NewTokenPosition($4) if $1 != nil { - pos = position.NewNodeTokenPosition($1, $4) + pos = yylex.(*Parser).builder.NewNodeTokenPosition($1, $4) } else if $2 != nil { - pos = position.NewTokensPosition($2, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($2, $4) } else if $3 != nil { - pos = position.NewTokensPosition($3, $4) + pos = yylex.(*Parser).builder.NewTokensPosition($3, $4) } $$ = &ast.Parameter{ @@ -1700,9 +1699,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1711,13 +1710,13 @@ parameter: } | optional_type is_reference is_variadic T_VARIABLE '=' expr { - pos := position.NewTokenNodePosition($4, $6) + pos := yylex.(*Parser).builder.NewTokenNodePosition($4, $6) if $1 != nil { - pos = position.NewNodesPosition($1, $6) + pos = yylex.(*Parser).builder.NewNodesPosition($1, $6) } else if $2 != nil { - pos = position.NewTokenNodePosition($2, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($2, $6) } else if $3 != nil { - pos = position.NewTokenNodePosition($3, $6) + pos = yylex.(*Parser).builder.NewTokenNodePosition($3, $6) } $$ = &ast.Parameter{ @@ -1726,9 +1725,9 @@ parameter: AmpersandTkn: $2, VariadicTkn: $3, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -1758,7 +1757,7 @@ type_expr: | '?' type { $$ = &ast.Nullable{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), QuestionTkn: $1, Expr: $2, } @@ -1769,7 +1768,7 @@ type: T_ARRAY { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1777,7 +1776,7 @@ type: | T_CALLABLE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -1806,7 +1805,7 @@ argument_list: '(' ')' { $$ = &ast.ArgumentList{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -1814,7 +1813,7 @@ argument_list: | '(' non_empty_argument_list possible_comma ')' { argumentList := $2.(*ast.ArgumentList) - argumentList.Position = position.NewTokensPosition($1, $4) + argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4) argumentList.OpenParenthesisTkn = $1 argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3) argumentList.CloseParenthesisTkn = $4 @@ -1843,14 +1842,14 @@ argument: expr { $$ = &ast.Argument{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Expr: $1, } } | T_ELLIPSIS expr { $$ = &ast.Argument{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), VariadicTkn: $1, Expr: $2, } @@ -1901,11 +1900,11 @@ static_var: { $$ = &ast.StmtStaticVar{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1915,11 +1914,11 @@ static_var: | T_VARIABLE '=' expr { $$ = &ast.StmtStaticVar{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -1945,7 +1944,7 @@ class_statement: variable_modifiers optional_type property_list ';' { $$ = &ast.StmtPropertyList{ - Position: position.NewNodeListTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $4), Modifiers: $1, Type: $2, Properties: $3.(*ast.ParserSeparatedList).Items, @@ -1956,7 +1955,7 @@ class_statement: | method_modifiers T_CONST class_const_list ';' { $$ = &ast.StmtClassConstList{ - Position: position.NewOptionalListTokensPosition($1, $2, $4), + Position: yylex.(*Parser).builder.NewOptionalListTokensPosition($1, $2, $4), Modifiers: $1, ConstTkn: $2, Consts: $3.(*ast.ParserSeparatedList).Items, @@ -1967,7 +1966,7 @@ class_statement: | T_USE name_list trait_adaptations { $$ = &ast.StmtTraitUse{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -1976,9 +1975,9 @@ class_statement: } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { - pos := position.NewTokenNodePosition($2, $10) + pos := yylex.(*Parser).builder.NewTokenNodePosition($2, $10) if $1 != nil { - pos = position.NewNodeListNodePosition($1, $10) + pos = yylex.(*Parser).builder.NewNodeListNodePosition($1, $10) } $$ = &ast.StmtClassMethod{ @@ -1987,7 +1986,7 @@ class_statement: FunctionTkn: $2, AmpersandTkn: $3, MethodName: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2022,14 +2021,14 @@ trait_adaptations: ';' { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' '}' { $$ = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, } @@ -2037,7 +2036,7 @@ trait_adaptations: | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Adaptations: $2, CloseParenthesisTkn: $3, @@ -2075,7 +2074,7 @@ trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { $$ = &ast.StmtTraitUsePrecedence{ - Position: position.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), Ref: $1, InsteadofTkn: $2, Insteadof: $3.(*ast.ParserSeparatedList).Items, @@ -2088,11 +2087,11 @@ trait_alias: trait_method_reference T_AS T_STRING { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2101,11 +2100,11 @@ trait_alias: | trait_method_reference T_AS reserved_non_modifiers { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Ref: $1, AsTkn: $2, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2114,12 +2113,12 @@ trait_alias: | trait_method_reference T_AS member_modifier identifier { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Ref: $1, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ - Position: position.NewTokenPosition($4), + Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, }, @@ -2128,7 +2127,7 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Ref: $1, AsTkn: $2, Modifier: $3, @@ -2140,9 +2139,9 @@ trait_method_reference: identifier { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2158,11 +2157,11 @@ absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.StmtTraitMethodRef{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, Method: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -2174,14 +2173,14 @@ method_body: ';' /* abstract method */ { $$ = &ast.StmtNop{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), SemiColonTkn: $1, } } | '{' inner_statement_list '}' { $$ = &ast.StmtStmtList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracket: $1, Stmts: $2, CloseCurlyBracket: $3, @@ -2198,7 +2197,7 @@ variable_modifiers: { $$ = []ast.Vertex{ &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2232,7 +2231,7 @@ member_modifier: T_PUBLIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2240,7 +2239,7 @@ member_modifier: | T_PROTECTED { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2248,7 +2247,7 @@ member_modifier: | T_PRIVATE { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2256,7 +2255,7 @@ member_modifier: | T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2264,7 +2263,7 @@ member_modifier: | T_ABSTRACT { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2272,7 +2271,7 @@ member_modifier: | T_FINAL { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -2299,11 +2298,11 @@ property: T_VARIABLE backup_doc_comment { $$ = &ast.StmtProperty{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2314,11 +2313,11 @@ property: | T_VARIABLE '=' expr backup_doc_comment { $$ = &ast.StmtProperty{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2349,9 +2348,9 @@ class_const_decl: identifier '=' expr backup_doc_comment { $$ = &ast.StmtConstant{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2365,9 +2364,9 @@ const_decl: T_STRING '=' expr backup_doc_comment { $$ = &ast.StmtConstant{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Name: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -2431,7 +2430,7 @@ anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { $$ = &ast.StmtClass{ - Position: position.NewTokensPosition($1, $8), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -2451,7 +2450,7 @@ new_expr: { if $3 != nil { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $3), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, @@ -2461,7 +2460,7 @@ new_expr: } } else { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2470,7 +2469,7 @@ new_expr: | T_NEW anonymous_class { $$ = &ast.ExprNew{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), NewTkn: $1, Class: $2, } @@ -2481,9 +2480,9 @@ expr_without_variable: T_LIST '(' array_pair_list ')' '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewTokenNodePosition($1, $6), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $6), Var: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -2497,9 +2496,9 @@ expr_without_variable: | '[' array_pair_list ']' '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewTokenNodePosition($1, $5), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $5), Var: &ast.ExprList{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -2512,7 +2511,7 @@ expr_without_variable: | variable '=' expr { $$ = &ast.ExprAssign{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2521,7 +2520,7 @@ expr_without_variable: | variable '=' '&' expr { $$ = &ast.ExprAssignReference{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Var: $1, EqualTkn: $2, AmpersandTkn: $3, @@ -2531,7 +2530,7 @@ expr_without_variable: | T_CLONE expr { $$ = &ast.ExprClone{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CloneTkn: $1, Expr: $2, } @@ -2539,7 +2538,7 @@ expr_without_variable: | variable T_PLUS_EQUAL expr { $$ = &ast.ExprAssignPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2548,7 +2547,7 @@ expr_without_variable: | variable T_MINUS_EQUAL expr { $$ = &ast.ExprAssignMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2557,7 +2556,7 @@ expr_without_variable: | variable T_MUL_EQUAL expr { $$ = &ast.ExprAssignMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2566,7 +2565,7 @@ expr_without_variable: | variable T_POW_EQUAL expr { $$ = &ast.ExprAssignPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2575,7 +2574,7 @@ expr_without_variable: | variable T_DIV_EQUAL expr { $$ = &ast.ExprAssignDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2584,7 +2583,7 @@ expr_without_variable: | variable T_CONCAT_EQUAL expr { $$ = &ast.ExprAssignConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2593,7 +2592,7 @@ expr_without_variable: | variable T_MOD_EQUAL expr { $$ = &ast.ExprAssignMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2602,7 +2601,7 @@ expr_without_variable: | variable T_AND_EQUAL expr { $$ = &ast.ExprAssignBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2611,7 +2610,7 @@ expr_without_variable: | variable T_OR_EQUAL expr { $$ = &ast.ExprAssignBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2620,7 +2619,7 @@ expr_without_variable: | variable T_XOR_EQUAL expr { $$ = &ast.ExprAssignBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2629,7 +2628,7 @@ expr_without_variable: | variable T_SL_EQUAL expr { $$ = &ast.ExprAssignShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2638,7 +2637,7 @@ expr_without_variable: | variable T_SR_EQUAL expr { $$ = &ast.ExprAssignShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2647,7 +2646,7 @@ expr_without_variable: | variable T_COALESCE_EQUAL expr { $$ = &ast.ExprAssignCoalesce{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, EqualTkn: $2, Expr: $3, @@ -2656,7 +2655,7 @@ expr_without_variable: | variable T_INC { $$ = &ast.ExprPostInc{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, IncTkn: $2, } @@ -2664,7 +2663,7 @@ expr_without_variable: | T_INC variable { $$ = &ast.ExprPreInc{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncTkn: $1, Var: $2, } @@ -2672,7 +2671,7 @@ expr_without_variable: | variable T_DEC { $$ = &ast.ExprPostDec{ - Position: position.NewNodeTokenPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $2), Var: $1, DecTkn: $2, } @@ -2680,7 +2679,7 @@ expr_without_variable: | T_DEC variable { $$ = &ast.ExprPreDec{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DecTkn: $1, Var: $2, } @@ -2688,7 +2687,7 @@ expr_without_variable: | expr T_BOOLEAN_OR expr { $$ = &ast.ExprBinaryBooleanOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2697,7 +2696,7 @@ expr_without_variable: | expr T_BOOLEAN_AND expr { $$ = &ast.ExprBinaryBooleanAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2706,7 +2705,7 @@ expr_without_variable: | expr T_LOGICAL_OR expr { $$ = &ast.ExprBinaryLogicalOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2715,7 +2714,7 @@ expr_without_variable: | expr T_LOGICAL_AND expr { $$ = &ast.ExprBinaryLogicalAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2724,7 +2723,7 @@ expr_without_variable: | expr T_LOGICAL_XOR expr { $$ = &ast.ExprBinaryLogicalXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2733,7 +2732,7 @@ expr_without_variable: | expr '|' expr { $$ = &ast.ExprBinaryBitwiseOr{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2742,7 +2741,7 @@ expr_without_variable: | expr '&' expr { $$ = &ast.ExprBinaryBitwiseAnd{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2751,7 +2750,7 @@ expr_without_variable: | expr '^' expr { $$ = &ast.ExprBinaryBitwiseXor{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2760,7 +2759,7 @@ expr_without_variable: | expr '.' expr { $$ = &ast.ExprBinaryConcat{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2769,7 +2768,7 @@ expr_without_variable: | expr '+' expr { $$ = &ast.ExprBinaryPlus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2778,7 +2777,7 @@ expr_without_variable: | expr '-' expr { $$ = &ast.ExprBinaryMinus{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2787,7 +2786,7 @@ expr_without_variable: | expr '*' expr { $$ = &ast.ExprBinaryMul{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2796,7 +2795,7 @@ expr_without_variable: | expr T_POW expr { $$ = &ast.ExprBinaryPow{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2805,7 +2804,7 @@ expr_without_variable: | expr '/' expr { $$ = &ast.ExprBinaryDiv{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2814,7 +2813,7 @@ expr_without_variable: | expr '%' expr { $$ = &ast.ExprBinaryMod{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2823,7 +2822,7 @@ expr_without_variable: | expr T_SL expr { $$ = &ast.ExprBinaryShiftLeft{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2832,7 +2831,7 @@ expr_without_variable: | expr T_SR expr { $$ = &ast.ExprBinaryShiftRight{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2841,7 +2840,7 @@ expr_without_variable: | '+' expr %prec T_INC { $$ = &ast.ExprUnaryPlus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PlusTkn: $1, Expr: $2, } @@ -2849,7 +2848,7 @@ expr_without_variable: | '-' expr %prec T_INC { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), MinusTkn: $1, Expr: $2, } @@ -2857,7 +2856,7 @@ expr_without_variable: | '!' expr { $$ = &ast.ExprBooleanNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), ExclamationTkn: $1, Expr: $2, } @@ -2865,7 +2864,7 @@ expr_without_variable: | '~' expr { $$ = &ast.ExprBitwiseNot{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), TildaTkn: $1, Expr: $2, } @@ -2873,7 +2872,7 @@ expr_without_variable: | expr T_IS_IDENTICAL expr { $$ = &ast.ExprBinaryIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2882,7 +2881,7 @@ expr_without_variable: | expr T_IS_NOT_IDENTICAL expr { $$ = &ast.ExprBinaryNotIdentical{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2891,7 +2890,7 @@ expr_without_variable: | expr T_IS_EQUAL expr { $$ = &ast.ExprBinaryEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2900,7 +2899,7 @@ expr_without_variable: | expr T_IS_NOT_EQUAL expr { $$ = &ast.ExprBinaryNotEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2909,7 +2908,7 @@ expr_without_variable: | expr '<' expr { $$ = &ast.ExprBinarySmaller{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2918,7 +2917,7 @@ expr_without_variable: | expr T_IS_SMALLER_OR_EQUAL expr { $$ = &ast.ExprBinarySmallerOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2927,7 +2926,7 @@ expr_without_variable: | expr '>' expr { $$ = &ast.ExprBinaryGreater{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2936,7 +2935,7 @@ expr_without_variable: | expr T_IS_GREATER_OR_EQUAL expr { $$ = &ast.ExprBinaryGreaterOrEqual{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2945,7 +2944,7 @@ expr_without_variable: | expr T_SPACESHIP expr { $$ = &ast.ExprBinarySpaceship{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -2954,7 +2953,7 @@ expr_without_variable: | expr T_INSTANCEOF class_name_reference { $$ = &ast.ExprInstanceOf{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Expr: $1, InstanceOfTkn: $2, Class: $3, @@ -2963,7 +2962,7 @@ expr_without_variable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -2976,7 +2975,7 @@ expr_without_variable: | expr '?' expr ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $5), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), Condition: $1, QuestionTkn: $2, IfTrue: $3, @@ -2987,7 +2986,7 @@ expr_without_variable: | expr '?' ':' expr { $$ = &ast.ExprTernary{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Condition: $1, QuestionTkn: $2, ColonTkn: $3, @@ -2997,7 +2996,7 @@ expr_without_variable: | expr T_COALESCE expr { $$ = &ast.ExprBinaryCoalesce{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Left: $1, OpTkn: $2, Right: $3, @@ -3010,7 +3009,7 @@ expr_without_variable: | T_INT_CAST expr { $$ = &ast.ExprCastInt{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3018,7 +3017,7 @@ expr_without_variable: | T_DOUBLE_CAST expr { $$ = &ast.ExprCastDouble{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3026,7 +3025,7 @@ expr_without_variable: | T_STRING_CAST expr { $$ = &ast.ExprCastString{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3034,7 +3033,7 @@ expr_without_variable: | T_ARRAY_CAST expr { $$ = &ast.ExprCastArray{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3042,7 +3041,7 @@ expr_without_variable: | T_OBJECT_CAST expr { $$ = &ast.ExprCastObject{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3050,7 +3049,7 @@ expr_without_variable: | T_BOOL_CAST expr { $$ = &ast.ExprCastBool{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3058,7 +3057,7 @@ expr_without_variable: | T_UNSET_CAST expr { $$ = &ast.ExprCastUnset{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), CastTkn: $1, Expr: $2, } @@ -3070,9 +3069,9 @@ expr_without_variable: } if $2 == nil { - exit.Position = position.NewTokenPosition($1) + exit.Position = yylex.(*Parser).builder.NewTokenPosition($1) } else { - exit.Position = position.NewTokenNodePosition($1, $2) + exit.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn exit.Expr = $2.(*ast.ParserBrackets).Child exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn @@ -3083,7 +3082,7 @@ expr_without_variable: | '@' expr { $$ = &ast.ExprErrorSuppress{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AtTkn: $1, Expr: $2, } @@ -3095,7 +3094,7 @@ expr_without_variable: | '`' backticks_expr '`' { $$ = &ast.ExprShellExec{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBacktickTkn: $1, Parts: $2, CloseBacktickTkn: $3, @@ -3104,7 +3103,7 @@ expr_without_variable: | T_PRINT expr { $$ = &ast.ExprPrint{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), PrintTkn: $1, Expr: $2, } @@ -3112,14 +3111,14 @@ expr_without_variable: | T_YIELD { $$ = &ast.ExprYield{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), YieldTkn: $1, } } | T_YIELD expr { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, Value: $2, } @@ -3127,7 +3126,7 @@ expr_without_variable: | T_YIELD expr T_DOUBLE_ARROW expr { $$ = &ast.ExprYield{ - Position: position.NewTokenNodePosition($1, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, @@ -3137,7 +3136,7 @@ expr_without_variable: | T_YIELD_FROM expr { $$ = &ast.ExprYieldFrom{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldFromTkn: $1, Expr: $2, } @@ -3150,10 +3149,10 @@ expr_without_variable: { switch n := $2.(type) { case *ast.ExprClosure : - n.Position = position.NewTokenNodePosition($1, $2) + n.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) n.StaticTkn = $1; case *ast.ExprArrowFunction : - n.Position = position.NewTokenNodePosition($1, $2) + n.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) n.StaticTkn = $1; }; @@ -3165,7 +3164,7 @@ inline_function: T_FUNCTION returns_ref backup_doc_comment '(' parameter_list ')' lexical_vars return_type '{' inner_statement_list '}' { $$ = &ast.ExprClosure{ - Position: position.NewTokensPosition($1, $11), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $4, @@ -3183,7 +3182,7 @@ inline_function: | T_FN returns_ref '(' parameter_list ')' return_type backup_doc_comment T_DOUBLE_ARROW expr { $$ = &ast.ExprArrowFunction{ - Position: position.NewTokenNodePosition($1, $9), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $9), FnTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, @@ -3221,7 +3220,7 @@ lexical_vars: | T_USE '(' lexical_var_list ')' { $$ = &ast.ExprClosureUse{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, OpenParenthesisTkn: $2, Uses: $3.(*ast.ParserSeparatedList).Items, @@ -3251,9 +3250,9 @@ lexical_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3262,12 +3261,12 @@ lexical_var: | '&' T_VARIABLE { $$ = &ast.ExprReference{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), AmpersandTkn: $1, Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -3280,7 +3279,7 @@ function_call: name argument_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3291,7 +3290,7 @@ function_call: | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3304,7 +3303,7 @@ function_call: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { $$ = &ast.ExprStaticCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, Call: $3, @@ -3317,7 +3316,7 @@ function_call: | callable_expr argument_list { $$ = &ast.ExprFunctionCall{ - Position: position.NewNodesPosition($1, $2), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, @@ -3331,7 +3330,7 @@ class_name: T_STATIC { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3361,7 +3360,7 @@ exit_expr: | '(' optional_expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3378,7 +3377,7 @@ backticks_expr: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -3405,7 +3404,7 @@ dereferencable_scalar: T_ARRAY '(' array_pair_list ')' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -3416,7 +3415,7 @@ dereferencable_scalar: | '[' array_pair_list ']' { $$ = &ast.ExprArray{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Items: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, @@ -3426,7 +3425,7 @@ dereferencable_scalar: | T_CONSTANT_ENCAPSED_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -3437,7 +3436,7 @@ scalar: T_LNUMBER { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3445,7 +3444,7 @@ scalar: | T_DNUMBER { $$ = &ast.ScalarDnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } @@ -3453,7 +3452,7 @@ scalar: | T_LINE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3461,7 +3460,7 @@ scalar: | T_FILE { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3469,7 +3468,7 @@ scalar: | T_DIR { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3477,7 +3476,7 @@ scalar: | T_TRAIT_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3485,7 +3484,7 @@ scalar: | T_METHOD_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3493,7 +3492,7 @@ scalar: | T_FUNC_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3501,7 +3500,7 @@ scalar: | T_NS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3509,7 +3508,7 @@ scalar: | T_CLASS_C { $$ = &ast.ScalarMagicConstant{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), MagicConstTkn: $1, Value: $1.Value, } @@ -3517,11 +3516,11 @@ scalar: | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -3532,7 +3531,7 @@ scalar: | T_START_HEREDOC T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenHeredocTkn: $1, CloseHeredocTkn: $2, } @@ -3540,7 +3539,7 @@ scalar: | '"' encaps_list '"' { $$ = &ast.ScalarEncapsed{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, CloseQoteTkn: $1, @@ -3549,7 +3548,7 @@ scalar: | T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = &ast.ScalarHeredoc{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenHeredocTkn: $1, Parts: $2, CloseHeredocTkn: $3, @@ -3569,18 +3568,18 @@ constant: name { $$ = &ast.ExprConstFetch{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Const: $1, } } | class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -3589,11 +3588,11 @@ constant: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM identifier { $$ = &ast.ExprClassConstFetch{ - Position: position.NewNodeTokenPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, ConstantName: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -3638,7 +3637,7 @@ dereferencable: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3658,7 +3657,7 @@ callable_expr: | '(' expr ')' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3678,7 +3677,7 @@ callable_variable: | dereferencable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3688,7 +3687,7 @@ callable_variable: | constant '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3698,7 +3697,7 @@ callable_variable: | dereferencable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3708,7 +3707,7 @@ callable_variable: | dereferencable T_OBJECT_OPERATOR property_name argument_list { $$ = &ast.ExprMethodCall{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Var: $1, ObjectOperatorTkn: $2, Method: $3, @@ -3736,7 +3735,7 @@ variable: | dereferencable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -3748,9 +3747,9 @@ simple_variable: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -3759,10 +3758,10 @@ simple_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, VarName: &ast.ParserBrackets{ - Position: position.NewTokensPosition($2, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), OpenBracketTkn: $2, Child: $3, CloseBracketTkn: $4, @@ -3772,7 +3771,7 @@ simple_variable: | '$' simple_variable { $$ = &ast.ExprVariable{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DollarTkn: $1, VarName: $2, } @@ -3783,7 +3782,7 @@ static_member: class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3792,7 +3791,7 @@ static_member: | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3808,7 +3807,7 @@ new_variable: | new_variable '[' optional_expr ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3818,7 +3817,7 @@ new_variable: | new_variable '{' expr '}' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewNodeTokenPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), Var: $1, OpenBracketTkn: $2, Dim: $3, @@ -3828,7 +3827,7 @@ new_variable: | new_variable T_OBJECT_OPERATOR property_name { $$ = &ast.ExprPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, @@ -3837,7 +3836,7 @@ new_variable: | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3846,7 +3845,7 @@ new_variable: | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable { $$ = &ast.ExprStaticPropertyFetch{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, Property: $3, @@ -3858,7 +3857,7 @@ member_name: identifier { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3866,7 +3865,7 @@ member_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3882,7 +3881,7 @@ property_name: T_STRING { $$ = &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, } @@ -3890,7 +3889,7 @@ property_name: | '{' expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -3947,7 +3946,7 @@ array_pair: expr T_DOUBLE_ARROW expr { $$ = &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $3), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Key: $1, DoubleArrowTkn: $2, Val: $3, @@ -3956,18 +3955,18 @@ array_pair: | expr { $$ = &ast.ExprArrayItem{ - Position: position.NewNodePosition($1), + Position: yylex.(*Parser).builder.NewNodePosition($1), Val: $1, } } | expr T_DOUBLE_ARROW '&' variable { $$ = &ast.ExprArrayItem{ - Position: position.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($3, $4), + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), AmpersandTkn: $3, Var: $4, }, @@ -3976,9 +3975,9 @@ array_pair: | '&' variable { $$ = &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), Val: &ast.ExprReference{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, }, @@ -3987,7 +3986,7 @@ array_pair: | T_ELLIPSIS expr { $$ = &ast.ExprArrayItem{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), EllipsisTkn: $1, Val: $2, } @@ -3995,11 +3994,11 @@ array_pair: | expr T_DOUBLE_ARROW T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Position: position.NewNodeTokenPosition($1, $6), + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $6), Key: $1, DoubleArrowTkn: $2, Val: &ast.ExprList{ - Position: position.NewTokensPosition($3, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($3, $6), ListTkn: $3, OpenBracketTkn: $4, Items: $5.(*ast.ParserSeparatedList).Items, @@ -4011,9 +4010,9 @@ array_pair: | T_LIST '(' array_pair_list ')' { $$ = &ast.ExprArrayItem{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Val: &ast.ExprList{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, Items: $3.(*ast.ParserSeparatedList).Items, @@ -4034,7 +4033,7 @@ encaps_list: $$ = append( $1, &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), EncapsedStrTkn: $2, Value: $2.Value, }, @@ -4048,7 +4047,7 @@ encaps_list: { $$ = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), EncapsedStrTkn: $1, Value: $1.Value, }, @@ -4061,9 +4060,9 @@ encaps_var: T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4072,11 +4071,11 @@ encaps_var: | T_VARIABLE '[' encaps_var_offset ']' { $$ = &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4089,18 +4088,18 @@ encaps_var: | T_VARIABLE T_OBJECT_OPERATOR T_STRING { $$ = &ast.ExprPropertyFetch{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, Property: &ast.Identifier{ - Position: position.NewTokenPosition($3), + Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, }, @@ -4109,10 +4108,10 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewNodePosition($2), + Position: yylex.(*Parser).builder.NewNodePosition($2), VarName: $2, }, CloseBracketTkn: $3, @@ -4121,12 +4120,12 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4137,14 +4136,14 @@ encaps_var: | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $6), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), OpenBracketTkn: $1, Child: &ast.ExprArrayDimFetch{ - Position: position.NewTokensPosition($2, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($2, $5), Var: &ast.ExprVariable{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, }, @@ -4159,7 +4158,7 @@ encaps_var: | T_CURLY_OPEN variable '}' { $$ = &ast.ParserBrackets{ - Position: position.NewTokensPosition($1, $3), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, CloseBracketTkn: $3, @@ -4171,7 +4170,7 @@ encaps_var_offset: T_STRING { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4181,13 +4180,13 @@ encaps_var_offset: // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string($1.Value)); err == nil { $$ = &ast.ScalarLnumber{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), NumberTkn: $1, Value: $1.Value, } } else { $$ = &ast.ScalarString{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, } @@ -4200,17 +4199,17 @@ encaps_var_offset: if isInt { $$ = &ast.ExprUnaryMinus{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), MinusTkn: $1, Expr: &ast.ScalarLnumber{ - Position: position.NewTokenPosition($2), + Position: yylex.(*Parser).builder.NewTokenPosition($2), NumberTkn: $2, Value: $2.Value, }, } } else { $$ = &ast.ScalarString{ - Position: position.NewTokensPosition($1, $2), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), MinusTkn: $1, StringTkn: $2, Value: append([]byte("-"), $2.Value...), @@ -4220,9 +4219,9 @@ encaps_var_offset: | T_VARIABLE { $$ = &ast.ExprVariable{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), VarName: &ast.Identifier{ - Position: position.NewTokenPosition($1), + Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, @@ -4238,7 +4237,7 @@ internal_functions_in_yacc: } $$ = &ast.ExprIsset{ - Position: position.NewTokensPosition($1, $5), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), IssetTkn: $1, OpenParenthesisTkn: $2, Vars: $3.(*ast.ParserSeparatedList).Items, @@ -4249,7 +4248,7 @@ internal_functions_in_yacc: | T_EMPTY '(' expr ')' { $$ = &ast.ExprEmpty{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EmptyTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4259,7 +4258,7 @@ internal_functions_in_yacc: | T_INCLUDE expr { $$ = &ast.ExprInclude{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4267,7 +4266,7 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), IncludeTkn: $1, Expr: $2, } @@ -4275,7 +4274,7 @@ internal_functions_in_yacc: | T_EVAL '(' expr ')' { $$ = &ast.ExprEval{ - Position: position.NewTokensPosition($1, $4), + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), EvalTkn: $1, OpenParenthesisTkn: $2, Expr: $3, @@ -4285,7 +4284,7 @@ internal_functions_in_yacc: | T_REQUIRE expr { $$ = &ast.ExprRequire{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireTkn: $1, Expr: $2, } @@ -4293,7 +4292,7 @@ internal_functions_in_yacc: | T_REQUIRE_ONCE expr { $$ = &ast.ExprRequireOnce{ - Position: position.NewTokenNodePosition($1, $2), + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), RequireOnceTkn: $1, Expr: $2, } diff --git a/internal/position/position.go b/internal/position/position.go index 888f24b..e6be89a 100644 --- a/internal/position/position.go +++ b/internal/position/position.go @@ -16,6 +16,16 @@ type endPos struct { endPos int } +type Builder struct { + pool *position.Pool +} + +func NewBuilder() *Builder { + return &Builder{ + pool: position.NewPool(position.DefaultBlockSize), + } +} + func getListStartPos(l []ast.Vertex) startPos { if l == nil { return startPos{-1, -1} @@ -75,130 +85,153 @@ func getNodeEndPos(n ast.Vertex) endPos { } // NewNodeListPosition returns new Position -func NewNodeListPosition(list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: getListEndPos(list).endLine, - StartPos: getListStartPos(list).startPos, - EndPos: getListEndPos(list).endPos, - } +func (b *Builder) NewNodeListPosition(list []ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = getListEndPos(list).endLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = getListEndPos(list).endPos + + return pos } // NewNodePosition returns new Position -func NewNodePosition(n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(n).startLine, - EndLine: getNodeEndPos(n).endLine, - StartPos: getNodeStartPos(n).startPos, - EndPos: getNodeEndPos(n).endPos, - } +func (b *Builder) NewNodePosition(n ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(n).startLine + pos.EndLine = getNodeEndPos(n).endLine + pos.StartPos = getNodeStartPos(n).startPos + pos.EndPos = getNodeEndPos(n).endPos + + return pos } // NewTokenPosition returns new Position -func NewTokenPosition(t *token.Token) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: t.Position.EndLine, - StartPos: t.Position.StartPos, - EndPos: t.Position.EndPos, - } +func (b *Builder) NewTokenPosition(t *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = t.Position.StartLine + pos.EndLine = t.Position.EndLine + pos.StartPos = t.Position.StartPos + pos.EndPos = t.Position.EndPos + + return pos } // NewTokensPosition returns new Position -func NewTokensPosition(startToken *token.Token, endToken *token.Token) *position.Position { - return &position.Position{ - StartLine: startToken.Position.StartLine, - EndLine: endToken.Position.EndLine, - StartPos: startToken.Position.StartPos, - EndPos: endToken.Position.EndPos, - } +func (b *Builder) NewTokensPosition(startToken *token.Token, endToken *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = startToken.Position.StartLine + pos.EndLine = endToken.Position.EndLine + pos.StartPos = startToken.Position.StartPos + pos.EndPos = endToken.Position.EndPos + + return pos } // NewTokenNodePosition returns new Position -func NewTokenNodePosition(t *token.Token, n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: getNodeEndPos(n).endLine, - StartPos: t.Position.StartPos, - EndPos: getNodeEndPos(n).endPos, - } +func (b *Builder) NewTokenNodePosition(t *token.Token, n ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = t.Position.StartLine + pos.EndLine = getNodeEndPos(n).endLine + pos.StartPos = t.Position.StartPos + pos.EndPos = getNodeEndPos(n).endPos + + return pos } // NewNodeTokenPosition returns new Position -func NewNodeTokenPosition(n ast.Vertex, t *token.Token) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(n).startLine, - EndLine: t.Position.EndLine, - StartPos: getNodeStartPos(n).startPos, - EndPos: t.Position.EndPos, - } +func (b *Builder) NewNodeTokenPosition(n ast.Vertex, t *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(n).startLine + pos.EndLine = t.Position.EndLine + pos.StartPos = getNodeStartPos(n).startPos + pos.EndPos = t.Position.EndPos + + return pos } // NewNodesPosition returns new Position -func NewNodesPosition(startNode ast.Vertex, endNode ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(startNode).startLine, - EndLine: getNodeEndPos(endNode).endLine, - StartPos: getNodeStartPos(startNode).startPos, - EndPos: getNodeEndPos(endNode).endPos, - } +func (b *Builder) NewNodesPosition(startNode ast.Vertex, endNode ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(startNode).startLine + pos.EndLine = getNodeEndPos(endNode).endLine + pos.StartPos = getNodeStartPos(startNode).startPos + pos.EndPos = getNodeEndPos(endNode).endPos + + return pos } // NewNodeListTokenPosition returns new Position -func NewNodeListTokenPosition(list []ast.Vertex, t *token.Token) *position.Position { - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: t.Position.EndLine, - StartPos: getListStartPos(list).startPos, - EndPos: t.Position.EndPos, - } +func (b *Builder) NewNodeListTokenPosition(list []ast.Vertex, t *token.Token) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = t.Position.EndLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = t.Position.EndPos + + return pos } // NewTokenNodeListPosition returns new Position -func NewTokenNodeListPosition(t *token.Token, list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: getListEndPos(list).endLine, - StartPos: t.Position.StartPos, - EndPos: getListEndPos(list).endPos, - } +func (b *Builder) NewTokenNodeListPosition(t *token.Token, list []ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = t.Position.StartLine + pos.EndLine = getListEndPos(list).endLine + pos.StartPos = t.Position.StartPos + pos.EndPos = getListEndPos(list).endPos + + return pos } // NewNodeNodeListPosition returns new Position -func NewNodeNodeListPosition(n ast.Vertex, list []ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getNodeStartPos(n).startLine, - EndLine: getListEndPos(list).endLine, - StartPos: getNodeStartPos(n).startPos, - EndPos: getListEndPos(list).endPos, - } +func (b *Builder) NewNodeNodeListPosition(n ast.Vertex, list []ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getNodeStartPos(n).startLine + pos.EndLine = getListEndPos(list).endLine + pos.StartPos = getNodeStartPos(n).startPos + pos.EndPos = getListEndPos(list).endPos + + return pos } // NewNodeListNodePosition returns new Position -func NewNodeListNodePosition(list []ast.Vertex, n ast.Vertex) *position.Position { - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: getNodeEndPos(n).endLine, - StartPos: getListStartPos(list).startPos, - EndPos: getNodeEndPos(n).endPos, - } +func (b *Builder) NewNodeListNodePosition(list []ast.Vertex, n ast.Vertex) *position.Position { + pos := b.pool.Get() + + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = getNodeEndPos(n).endLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = getNodeEndPos(n).endPos + + return pos } // NewOptionalListTokensPosition returns new Position -func NewOptionalListTokensPosition(list []ast.Vertex, t *token.Token, endToken *token.Token) *position.Position { - if list == nil { - return &position.Position{ - StartLine: t.Position.StartLine, - EndLine: endToken.Position.EndLine, - StartPos: t.Position.StartPos, - EndPos: endToken.Position.EndPos, - } - } +func (b *Builder) NewOptionalListTokensPosition(list []ast.Vertex, t *token.Token, endToken *token.Token) *position.Position { + pos := b.pool.Get() - return &position.Position{ - StartLine: getListStartPos(list).startLine, - EndLine: endToken.Position.EndLine, - StartPos: getListStartPos(list).startPos, - EndPos: endToken.Position.EndPos, + if list == nil { + pos.StartLine = t.Position.StartLine + pos.EndLine = endToken.Position.EndLine + pos.StartPos = t.Position.StartPos + pos.EndPos = endToken.Position.EndPos + + return pos } + pos.StartLine = getListStartPos(list).startLine + pos.EndLine = endToken.Position.EndLine + pos.StartPos = getListStartPos(list).startPos + pos.EndPos = endToken.Position.EndPos + + return pos } diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 8c0381f..6a26ffc 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -36,7 +36,7 @@ func NewLexer(data []byte, phpVersion string, errHandlerFunc func(*errors.Error) stack: make([]int, 0), tokenPool: token.NewPool(position.DefaultBlockSize), - positionPool: position.NewPool(position.DefaultBlockSize), + positionPool: position.NewPool(token.DefaultBlockSize), newLines: NewLines{make([]int, 0, 128)}, } From 497e7f82eeb128f0ca5c2f64575a3dddc2fec06f Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 11 Dec 2020 09:54:26 +0200 Subject: [PATCH 107/140] [refactoring] update printer --- internal/php5/php5.go | 164 +- internal/php5/php5.y | 38 +- internal/php7/php7.go | 1088 +++---- internal/php7/php7.y | 42 +- pkg/ast/node.go | 8 +- pkg/ast/visitor/printer.go | 1239 +++++++ .../visitor/printer_php5_test.go} | 8 +- .../visitor/printer_php7_test.go} | 15 +- pkg/{printer => ast/visitor}/printer_test.go | 1746 +++++----- pkg/printer/printer.go | 2838 ----------------- 10 files changed, 2916 insertions(+), 4270 deletions(-) create mode 100644 pkg/ast/visitor/printer.go rename pkg/{printer/printer_parsed_php5_test.go => ast/visitor/printer_php5_test.go} (99%) rename pkg/{printer/printer_parsed_php7_test.go => ast/visitor/printer_php7_test.go} (99%) rename pkg/{printer => ast/visitor}/printer_test.go (75%) delete mode 100644 pkg/printer/printer.go diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 24fa23b..219f8fc 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2315,6 +2315,8 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:266 { + yylex.(*Parser).currentToken.Value = nil + yylex.(*Parser).rootNode = &ast.Root{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].list), Stmts: yyDollar[1].list, @@ -2323,7 +2325,7 @@ yydefault: } case 2: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:277 + // line internal/php5/php5.y:279 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2331,13 +2333,13 @@ yydefault: } case 3: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:283 + // line internal/php5/php5.y:285 { yyVAL.list = []ast.Vertex{} } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:290 + // line internal/php5/php5.y:292 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -2351,7 +2353,7 @@ yydefault: } case 5: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:302 + // line internal/php5/php5.y:304 { part := &ast.NameNamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -2366,32 +2368,32 @@ yydefault: } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:318 + // line internal/php5/php5.y:320 { // error yyVAL.node = nil } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:323 + // line internal/php5/php5.y:325 { yyVAL.node = yyDollar[1].node } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:327 + // line internal/php5/php5.y:329 { yyVAL.node = yyDollar[1].node } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:331 + // line internal/php5/php5.y:333 { yyVAL.node = yyDollar[1].node } case 10: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:335 + // line internal/php5/php5.y:337 { yyVAL.node = &ast.StmtHaltCompiler{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2403,7 +2405,7 @@ yydefault: } case 11: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:345 + // line internal/php5/php5.y:347 { yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2418,7 +2420,7 @@ yydefault: } case 12: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:358 + // line internal/php5/php5.y:360 { yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), @@ -2435,7 +2437,7 @@ yydefault: } case 13: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:373 + // line internal/php5/php5.y:375 { yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2447,7 +2449,7 @@ yydefault: } case 14: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:383 + // line internal/php5/php5.y:385 { yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2459,7 +2461,7 @@ yydefault: } case 15: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:393 + // line internal/php5/php5.y:395 { yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2476,7 +2478,7 @@ yydefault: } case 16: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:408 + // line internal/php5/php5.y:410 { yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2493,7 +2495,7 @@ yydefault: } case 17: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:423 + // line internal/php5/php5.y:425 { yyDollar[1].node.(*ast.StmtConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -2501,7 +2503,7 @@ yydefault: } case 18: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:432 + // line internal/php5/php5.y:434 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2510,7 +2512,7 @@ yydefault: } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:439 + // line internal/php5/php5.y:441 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2518,7 +2520,7 @@ yydefault: } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:448 + // line internal/php5/php5.y:450 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -2531,7 +2533,7 @@ yydefault: } case 21: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:459 + // line internal/php5/php5.y:461 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), @@ -2550,7 +2552,7 @@ yydefault: } case 22: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:476 + // line internal/php5/php5.y:478 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -2564,7 +2566,7 @@ yydefault: } case 23: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:488 + // line internal/php5/php5.y:490 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2584,7 +2586,7 @@ yydefault: } case 24: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:509 + // line internal/php5/php5.y:511 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2593,7 +2595,7 @@ yydefault: } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:516 + // line internal/php5/php5.y:518 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2601,7 +2603,7 @@ yydefault: } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:525 + // line internal/php5/php5.y:527 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -2614,7 +2616,7 @@ yydefault: } case 27: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:536 + // line internal/php5/php5.y:538 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), @@ -2633,7 +2635,7 @@ yydefault: } case 28: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:553 + // line internal/php5/php5.y:555 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -2647,7 +2649,7 @@ yydefault: } case 29: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:565 + // line internal/php5/php5.y:567 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2667,7 +2669,7 @@ yydefault: } case 30: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:586 + // line internal/php5/php5.y:588 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2676,7 +2678,7 @@ yydefault: } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:593 + // line internal/php5/php5.y:595 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2684,7 +2686,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:602 + // line internal/php5/php5.y:604 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -2697,7 +2699,7 @@ yydefault: } case 33: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:613 + // line internal/php5/php5.y:615 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), @@ -2716,7 +2718,7 @@ yydefault: } case 34: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:630 + // line internal/php5/php5.y:632 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -2730,7 +2732,7 @@ yydefault: } case 35: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:642 + // line internal/php5/php5.y:644 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2750,7 +2752,7 @@ yydefault: } case 36: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:663 + // line internal/php5/php5.y:665 { constList := yyDollar[1].node.(*ast.StmtConstList) constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -2770,7 +2772,7 @@ yydefault: } case 37: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:681 + // line internal/php5/php5.y:683 { yyVAL.node = &ast.StmtConstList{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -2791,7 +2793,7 @@ yydefault: } case 38: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:703 + // line internal/php5/php5.y:705 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2799,38 +2801,38 @@ yydefault: } case 39: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:709 + // line internal/php5/php5.y:711 { yyVAL.list = []ast.Vertex{} } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:717 + // line internal/php5/php5.y:719 { // error yyVAL.node = nil } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:722 + // line internal/php5/php5.y:724 { yyVAL.node = yyDollar[1].node } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:726 + // line internal/php5/php5.y:728 { yyVAL.node = yyDollar[1].node } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:730 + // line internal/php5/php5.y:732 { yyVAL.node = yyDollar[1].node } case 44: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:734 + // line internal/php5/php5.y:736 { yyVAL.node = &ast.StmtHaltCompiler{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2842,13 +2844,13 @@ yydefault: } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:748 + // line internal/php5/php5.y:750 { yyVAL.node = yyDollar[1].node } case 46: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:752 + // line internal/php5/php5.y:754 { yyVAL.node = &ast.StmtLabel{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -2862,7 +2864,7 @@ yydefault: } case 47: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:767 + // line internal/php5/php5.y:769 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2873,7 +2875,7 @@ yydefault: } case 48: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:776 + // line internal/php5/php5.y:778 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) if yyDollar[5].node != nil { @@ -2895,7 +2897,7 @@ yydefault: } case 49: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:796 + // line internal/php5/php5.y:798 { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -2917,7 +2919,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:816 + // line internal/php5/php5.y:818 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -2929,7 +2931,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:826 + // line internal/php5/php5.y:828 { yyVAL.node = &ast.StmtDo{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), @@ -2944,7 +2946,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:839 + // line internal/php5/php5.y:841 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -2963,7 +2965,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:856 + // line internal/php5/php5.y:858 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -2975,7 +2977,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:866 + // line internal/php5/php5.y:868 { yyVAL.node = &ast.StmtBreak{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -2985,7 +2987,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:874 + // line internal/php5/php5.y:876 { yyVAL.node = &ast.StmtBreak{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2996,7 +2998,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:883 + // line internal/php5/php5.y:885 { yyVAL.node = &ast.StmtContinue{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3006,7 +3008,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:891 + // line internal/php5/php5.y:893 { yyVAL.node = &ast.StmtContinue{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3017,7 +3019,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:900 + // line internal/php5/php5.y:902 { yyVAL.node = &ast.StmtReturn{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3027,7 +3029,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:908 + // line internal/php5/php5.y:910 { yyVAL.node = &ast.StmtReturn{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3038,7 +3040,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:917 + // line internal/php5/php5.y:919 { yyVAL.node = &ast.StmtReturn{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3049,7 +3051,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:926 + // line internal/php5/php5.y:928 { yyVAL.node = &ast.StmtExpression{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -3059,22 +3061,20 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:934 + // line internal/php5/php5.y:936 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtGlobal).SeparatorTkns, nil) yyDollar[2].node.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:943 + // line internal/php5/php5.y:944 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token - yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[2].node.(*ast.StmtStatic).SeparatorTkns, nil) yyDollar[2].node.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) yyVAL.node = yyDollar[2].node @@ -3222,8 +3222,8 @@ yydefault: GotoTkn: yyDollar[1].token, Label: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, SemiColonTkn: yyDollar[3].token, } @@ -4395,10 +4395,10 @@ yydefault: // line internal/php5/php5.y:2197 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenParenthesisTkn: yyDollar[1].token, - Adaptations: yyDollar[2].list, - CloseParenthesisTkn: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Adaptations: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 180: @@ -4921,7 +4921,7 @@ yydefault: OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn, } } else { yyVAL.node = &ast.ExprNew{ @@ -4984,7 +4984,7 @@ yydefault: OpenParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[6].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[6].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).CloseParenthesisTkn, } } else { _new = &ast.ExprNew{ @@ -6010,7 +6010,7 @@ yydefault: OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 324: @@ -6029,7 +6029,7 @@ yydefault: OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 325: @@ -6047,7 +6047,7 @@ yydefault: OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 326: @@ -6062,7 +6062,7 @@ yydefault: OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 327: @@ -6077,7 +6077,7 @@ yydefault: OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 328: @@ -6092,7 +6092,7 @@ yydefault: OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 329: @@ -6107,7 +6107,7 @@ yydefault: OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 330: @@ -6120,7 +6120,7 @@ yydefault: OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 331: @@ -7030,7 +7030,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenQoteTkn: yyDollar[1].token, Parts: yyDollar[2].list, - CloseQoteTkn: yyDollar[1].token, + CloseQoteTkn: yyDollar[3].token, } } case 419: @@ -7211,7 +7211,7 @@ yydefault: OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, - CloseParenthesisTkn: mc.OpenParenthesisTkn, + CloseParenthesisTkn: mc.CloseParenthesisTkn, }, ) yyDollar[3].list = append(yyDollar[3].list, yyDollar[4].list[1:len(yyDollar[4].list)]...) diff --git a/internal/php5/php5.y b/internal/php5/php5.y index f26e824..f244655 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -264,6 +264,8 @@ import ( start: top_statement_list { + yylex.(*Parser).currentToken.Value = nil + yylex.(*Parser).rootNode = &ast.Root{ Position: yylex.(*Parser).builder.NewNodeListPosition($1), Stmts: $1, @@ -934,7 +936,6 @@ unticked_statement: { $2.(*ast.StmtGlobal).GlobalTkn = $1 $2.(*ast.StmtGlobal).SemiColonTkn = $3 - $2.(*ast.StmtGlobal).SeparatorTkns = append($2.(*ast.StmtGlobal).SeparatorTkns, nil) $2.(*ast.StmtGlobal).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 @@ -943,7 +944,6 @@ unticked_statement: { $2.(*ast.StmtStatic).StaticTkn = $1 $2.(*ast.StmtStatic).SemiColonTkn = $3 - $2.(*ast.StmtStatic).SeparatorTkns = append($2.(*ast.StmtStatic).SeparatorTkns, nil) $2.(*ast.StmtStatic).Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) $$ = $2 @@ -1069,8 +1069,8 @@ unticked_statement: GotoTkn: $1, Label: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - IdentifierTkn: $1, - Value: $1.Value, + IdentifierTkn: $2, + Value: $2.Value, }, SemiColonTkn: $3, } @@ -2197,9 +2197,9 @@ trait_adaptations: { $$ = &ast.StmtTraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenParenthesisTkn: $1, - Adaptations: $2, - CloseParenthesisTkn: $3, + OpenCurlyBracketTkn: $1, + Adaptations: $2, + CloseCurlyBracketTkn: $3, } } ; @@ -2691,7 +2691,7 @@ new_expr: OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $3.(*ast.ArgumentList).Arguments, SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn, } } else { $$ = &ast.ExprNew{ @@ -2749,7 +2749,7 @@ expr_without_variable: OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $6.(*ast.ArgumentList).Arguments, SeparatorTkns: $6.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $6.(*ast.ArgumentList).CloseParenthesisTkn, } } else { _new = &ast.ExprNew{ @@ -3620,7 +3620,7 @@ function_call: OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list @@ -3637,7 +3637,7 @@ function_call: OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } | T_NS_SEPARATOR namespace_name function_call_parameter_list @@ -3653,7 +3653,7 @@ function_call: OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $3.(*ast.ArgumentList).Arguments, SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn, } } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list @@ -3666,7 +3666,7 @@ function_call: OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list @@ -3679,7 +3679,7 @@ function_call: OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list @@ -3692,7 +3692,7 @@ function_call: OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list @@ -3705,7 +3705,7 @@ function_call: OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } | variable_without_objects function_call_parameter_list @@ -3716,7 +3716,7 @@ function_call: OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, } } ; @@ -4500,7 +4500,7 @@ scalar: Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, - CloseQoteTkn: $1, + CloseQoteTkn: $3, } } | T_START_HEREDOC encaps_list T_END_HEREDOC @@ -4674,7 +4674,7 @@ variable: OpenParenthesisTkn: mc.OpenParenthesisTkn, Arguments: mc.Arguments, SeparatorTkns: mc.SeparatorTkns, - CloseParenthesisTkn: mc.OpenParenthesisTkn, + CloseParenthesisTkn: mc.CloseParenthesisTkn, }, ) $3 = append($3, $4[1:len($4)]...) diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 11c021e..7e9dd54 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4327 +// line internal/php7/php7.y:4337 // line yacctab:1 var yyExca = [...]int{ @@ -2108,6 +2108,8 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:283 { + yylex.(*Parser).currentToken.Value = nil + yylex.(*Parser).rootNode = &ast.Root{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].list), Stmts: yyDollar[1].list, @@ -2116,469 +2118,469 @@ yydefault: } case 2: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 3: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 4: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 5: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 6: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 7: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 8: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 9: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:293 + // line internal/php7/php7.y:295 { yyVAL.token = yyDollar[1].token } case 10: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 11: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 12: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 13: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 14: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 15: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 16: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 17: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 18: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 19: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 20: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 21: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:294 + // line internal/php7/php7.y:296 { yyVAL.token = yyDollar[1].token } case 22: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 23: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 24: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 25: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 26: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 27: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 28: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 29: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 30: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 31: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:295 + // line internal/php7/php7.y:297 { yyVAL.token = yyDollar[1].token } case 32: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 33: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 34: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 35: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 36: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 37: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 38: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 39: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 40: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 41: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:296 + // line internal/php7/php7.y:298 { yyVAL.token = yyDollar[1].token } case 42: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 43: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 44: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 45: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 46: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 47: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 48: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 49: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 50: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 51: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 52: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:297 + // line internal/php7/php7.y:299 { yyVAL.token = yyDollar[1].token } case 53: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 54: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 55: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 56: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 57: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 58: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 59: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 60: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:298 + // line internal/php7/php7.y:300 { yyVAL.token = yyDollar[1].token } case 61: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 62: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 63: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 64: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 66: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 67: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 68: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 69: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:299 + // line internal/php7/php7.y:301 { yyVAL.token = yyDollar[1].token } case 70: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:304 + // line internal/php7/php7.y:306 { yyVAL.token = yyDollar[1].token } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 72: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 73: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 74: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 75: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 76: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:307 + // line internal/php7/php7.y:309 { yyVAL.token = yyDollar[1].token } case 77: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:312 + // line internal/php7/php7.y:314 { yyVAL.token = yyDollar[1].token } case 78: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:316 + // line internal/php7/php7.y:318 { yyVAL.token = yyDollar[1].token } case 79: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:323 + // line internal/php7/php7.y:325 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -2586,13 +2588,13 @@ yydefault: } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:329 + // line internal/php7/php7.y:331 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:336 + // line internal/php7/php7.y:338 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -2606,7 +2608,7 @@ yydefault: } case 82: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:348 + // line internal/php7/php7.y:350 { part := &ast.NameNamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -2621,7 +2623,7 @@ yydefault: } case 83: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:364 + // line internal/php7/php7.y:366 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -2631,7 +2633,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:372 + // line internal/php7/php7.y:374 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -2643,7 +2645,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:382 + // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -2654,44 +2656,44 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:394 + // line internal/php7/php7.y:396 { // error yyVAL.node = nil } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:399 + // line internal/php7/php7.y:401 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:403 + // line internal/php7/php7.y:405 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:407 + // line internal/php7/php7.y:409 { yyVAL.node = yyDollar[1].node } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:411 + // line internal/php7/php7.y:413 { yyVAL.node = yyDollar[1].node } case 91: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:415 + // line internal/php7/php7.y:417 { yyVAL.node = yyDollar[1].node } case 92: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:419 + // line internal/php7/php7.y:421 { yyVAL.node = &ast.StmtHaltCompiler{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2703,7 +2705,7 @@ yydefault: } case 93: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:429 + // line internal/php7/php7.y:431 { yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2718,7 +2720,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:442 + // line internal/php7/php7.y:444 { yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), @@ -2735,7 +2737,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:457 + // line internal/php7/php7.y:459 { yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2747,7 +2749,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:467 + // line internal/php7/php7.y:469 { use := yyDollar[2].node.(*ast.StmtGroupUse) @@ -2759,7 +2761,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:477 + // line internal/php7/php7.y:479 { use := yyDollar[3].node.(*ast.StmtGroupUse) @@ -2772,7 +2774,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:488 + // line internal/php7/php7.y:490 { yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2784,7 +2786,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:498 + // line internal/php7/php7.y:500 { yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -2797,7 +2799,7 @@ yydefault: } case 100: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:509 + // line internal/php7/php7.y:511 { yyVAL.node = &ast.StmtConstList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2809,7 +2811,7 @@ yydefault: } case 101: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:522 + // line internal/php7/php7.y:524 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -2819,7 +2821,7 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:530 + // line internal/php7/php7.y:532 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -2829,7 +2831,7 @@ yydefault: } case 103: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:541 + // line internal/php7/php7.y:543 { yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) @@ -2849,7 +2851,7 @@ yydefault: } case 104: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:559 + // line internal/php7/php7.y:561 { yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) @@ -2870,9 +2872,11 @@ yydefault: } case 105: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:581 + // line internal/php7/php7.y:583 { - yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) + if yyDollar[5].token != nil { + yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) + } yyVAL.node = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), @@ -2890,9 +2894,11 @@ yydefault: } case 106: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:599 + // line internal/php7/php7.y:603 { - yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) + if yyDollar[6].token != nil { + yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) + } yyVAL.node = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), @@ -2911,19 +2917,19 @@ yydefault: } case 107: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:621 + // line internal/php7/php7.y:627 { yyVAL.token = nil } case 108: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:625 + // line internal/php7/php7.y:631 { yyVAL.token = yyDollar[1].token } case 109: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:632 + // line internal/php7/php7.y:638 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2932,7 +2938,7 @@ yydefault: } case 110: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:639 + // line internal/php7/php7.y:645 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2940,7 +2946,7 @@ yydefault: } case 111: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:648 + // line internal/php7/php7.y:654 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2949,7 +2955,7 @@ yydefault: } case 112: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:655 + // line internal/php7/php7.y:661 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2957,7 +2963,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:664 + // line internal/php7/php7.y:670 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -2966,7 +2972,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:671 + // line internal/php7/php7.y:677 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -2974,13 +2980,13 @@ yydefault: } case 115: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:680 + // line internal/php7/php7.y:686 { yyVAL.node = yyDollar[1].node } case 116: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:684 + // line internal/php7/php7.y:690 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.Type = yyDollar[1].node @@ -2990,7 +2996,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:695 + // line internal/php7/php7.y:701 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -3003,7 +3009,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:706 + // line internal/php7/php7.y:712 { yyVAL.node = &ast.StmtUseDeclaration{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), @@ -3022,13 +3028,13 @@ yydefault: } case 119: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:726 + // line internal/php7/php7.y:732 { yyVAL.node = yyDollar[1].node } case 120: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:730 + // line internal/php7/php7.y:736 { decl := yyDollar[2].node.(*ast.StmtUseDeclaration) decl.NsSeparatorTkn = yyDollar[1].token @@ -3038,7 +3044,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:741 + // line internal/php7/php7.y:747 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3047,7 +3053,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:748 + // line internal/php7/php7.y:754 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3055,7 +3061,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:757 + // line internal/php7/php7.y:763 { if yyDollar[2].node != nil { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) @@ -3063,50 +3069,50 @@ yydefault: } case 124: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:763 + // line internal/php7/php7.y:769 { yyVAL.list = []ast.Vertex{} } case 125: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:770 + // line internal/php7/php7.y:776 { // error yyVAL.node = nil } case 126: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:775 + // line internal/php7/php7.y:781 { yyVAL.node = yyDollar[1].node } case 127: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:779 + // line internal/php7/php7.y:785 { yyVAL.node = yyDollar[1].node } case 128: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:783 + // line internal/php7/php7.y:789 { yyVAL.node = yyDollar[1].node } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:787 + // line internal/php7/php7.y:793 { yyVAL.node = yyDollar[1].node } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:791 + // line internal/php7/php7.y:797 { yyVAL.node = yyDollar[1].node } case 131: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:795 + // line internal/php7/php7.y:801 { yyVAL.node = &ast.StmtHaltCompiler{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3118,7 +3124,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:807 + // line internal/php7/php7.y:813 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3129,19 +3135,19 @@ yydefault: } case 133: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:816 + // line internal/php7/php7.y:822 { yyVAL.node = yyDollar[1].node } case 134: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:820 + // line internal/php7/php7.y:826 { yyVAL.node = yyDollar[1].node } case 135: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:824 + // line internal/php7/php7.y:830 { yyDollar[5].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].token @@ -3153,7 +3159,7 @@ yydefault: } case 136: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:834 + // line internal/php7/php7.y:840 { yyVAL.node = &ast.StmtDo{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), @@ -3168,7 +3174,7 @@ yydefault: } case 137: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:847 + // line internal/php7/php7.y:853 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -3187,7 +3193,7 @@ yydefault: } case 138: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:864 + // line internal/php7/php7.y:870 { yyDollar[5].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].token @@ -3199,7 +3205,7 @@ yydefault: } case 139: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:874 + // line internal/php7/php7.y:880 { yyVAL.node = &ast.StmtBreak{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3210,7 +3216,7 @@ yydefault: } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:883 + // line internal/php7/php7.y:889 { yyVAL.node = &ast.StmtContinue{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3221,7 +3227,7 @@ yydefault: } case 141: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:892 + // line internal/php7/php7.y:898 { yyVAL.node = &ast.StmtReturn{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3232,7 +3238,7 @@ yydefault: } case 142: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:901 + // line internal/php7/php7.y:907 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3242,7 +3248,7 @@ yydefault: } case 143: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:909 + // line internal/php7/php7.y:915 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3252,7 +3258,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:917 + // line internal/php7/php7.y:923 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3262,7 +3268,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:925 + // line internal/php7/php7.y:931 { yyVAL.node = &ast.StmtInlineHtml{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3272,7 +3278,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:933 + // line internal/php7/php7.y:939 { yyVAL.node = &ast.StmtExpression{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -3282,11 +3288,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:941 + // line internal/php7/php7.y:947 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token - yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[4].token) + if yyDollar[4].token != nil { + yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[3].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[4].token) + } yyDollar[3].node.(*ast.StmtUnset).CloseParenthesisTkn = yyDollar[5].token yyDollar[3].node.(*ast.StmtUnset).SemiColonTkn = yyDollar[6].token yyDollar[3].node.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token) @@ -3295,7 +3303,7 @@ yydefault: } case 148: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:952 + // line internal/php7/php7.y:960 { yyDollar[7].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[7].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3309,7 +3317,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:964 + // line internal/php7/php7.y:972 { yyDollar[9].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3325,7 +3333,7 @@ yydefault: } case 150: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:978 + // line internal/php7/php7.y:986 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3338,7 +3346,7 @@ yydefault: } case 151: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:989 + // line internal/php7/php7.y:997 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3347,7 +3355,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:996 + // line internal/php7/php7.y:1004 { pos := yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) if yyDollar[6].node != nil { @@ -3366,7 +3374,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1013 + // line internal/php7/php7.y:1021 { yyVAL.node = &ast.StmtThrow{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3377,7 +3385,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1022 + // line internal/php7/php7.y:1030 { yyVAL.node = &ast.StmtGoto{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3392,7 +3400,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1035 + // line internal/php7/php7.y:1043 { yyVAL.node = &ast.StmtLabel{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3406,13 +3414,13 @@ yydefault: } case 156: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1049 + // line internal/php7/php7.y:1057 { yyVAL.list = []ast.Vertex{} } case 157: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1053 + // line internal/php7/php7.y:1061 { catch := yyDollar[4].node.(*ast.StmtCatch) catch.CatchTkn = yyDollar[2].token @@ -3435,7 +3443,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1076 + // line internal/php7/php7.y:1084 { yyVAL.node = &ast.StmtCatch{ Types: []ast.Vertex{yyDollar[1].node}, @@ -3443,7 +3451,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1082 + // line internal/php7/php7.y:1090 { yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtCatch).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.StmtCatch).Types = append(yyDollar[1].node.(*ast.StmtCatch).Types, yyDollar[3].node) @@ -3452,13 +3460,13 @@ yydefault: } case 160: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1092 + // line internal/php7/php7.y:1100 { yyVAL.node = nil } case 161: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1096 + // line internal/php7/php7.y:1104 { yyVAL.node = &ast.StmtFinally{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3470,7 +3478,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1109 + // line internal/php7/php7.y:1117 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3478,7 +3486,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1115 + // line internal/php7/php7.y:1123 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3487,13 +3495,13 @@ yydefault: } case 164: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1125 + // line internal/php7/php7.y:1133 { yyVAL.node = yyDollar[1].node } case 165: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:1132 + // line internal/php7/php7.y:1140 { yyVAL.node = &ast.StmtFunction{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), @@ -3517,31 +3525,31 @@ yydefault: } case 166: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1157 + // line internal/php7/php7.y:1165 { yyVAL.token = nil } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1161 + // line internal/php7/php7.y:1169 { yyVAL.token = yyDollar[1].token } case 168: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1168 + // line internal/php7/php7.y:1176 { yyVAL.token = nil } case 169: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1172 + // line internal/php7/php7.y:1180 { yyVAL.token = yyDollar[1].token } case 170: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:1179 + // line internal/php7/php7.y:1187 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), @@ -3561,7 +3569,7 @@ yydefault: } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1197 + // line internal/php7/php7.y:1205 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -3580,27 +3588,17 @@ yydefault: } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1217 + // line internal/php7/php7.y:1225 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1221 + // line internal/php7/php7.y:1229 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1228 - { - yyVAL.node = &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - } - case 175: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:1236 { @@ -3610,9 +3608,19 @@ yydefault: Value: yyDollar[1].token.Value, } } + case 175: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php7/php7.y:1244 + { + yyVAL.node = &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } + } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1247 + // line internal/php7/php7.y:1255 { yyVAL.node = &ast.StmtTrait{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -3629,7 +3637,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1265 + // line internal/php7/php7.y:1273 { yyVAL.node = &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), @@ -3647,13 +3655,13 @@ yydefault: } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1284 + // line internal/php7/php7.y:1292 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1288 + // line internal/php7/php7.y:1296 { yyVAL.node = &ast.StmtClassExtends{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3663,13 +3671,13 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1299 + // line internal/php7/php7.y:1307 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1303 + // line internal/php7/php7.y:1311 { yyVAL.node = &ast.StmtInterfaceExtends{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -3680,13 +3688,13 @@ yydefault: } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1315 + // line internal/php7/php7.y:1323 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1319 + // line internal/php7/php7.y:1327 { yyVAL.node = &ast.StmtClassImplements{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -3697,13 +3705,13 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1331 + // line internal/php7/php7.y:1339 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1335 + // line internal/php7/php7.y:1343 { yyVAL.node = &ast.ExprReference{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3713,7 +3721,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1343 + // line internal/php7/php7.y:1351 { yyVAL.node = &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3726,7 +3734,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1354 + // line internal/php7/php7.y:1362 { yyVAL.node = &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3738,7 +3746,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1367 + // line internal/php7/php7.y:1375 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3747,7 +3755,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1374 + // line internal/php7/php7.y:1382 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3763,7 +3771,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1391 + // line internal/php7/php7.y:1399 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3772,7 +3780,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1398 + // line internal/php7/php7.y:1406 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3788,7 +3796,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1415 + // line internal/php7/php7.y:1423 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3797,7 +3805,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1422 + // line internal/php7/php7.y:1430 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3813,7 +3821,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1439 + // line internal/php7/php7.y:1447 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3824,7 +3832,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1448 + // line internal/php7/php7.y:1456 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3836,7 +3844,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1458 + // line internal/php7/php7.y:1466 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3849,7 +3857,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1469 + // line internal/php7/php7.y:1477 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), @@ -3863,13 +3871,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1484 + // line internal/php7/php7.y:1492 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1488 + // line internal/php7/php7.y:1496 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), @@ -3881,7 +3889,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1498 + // line internal/php7/php7.y:1506 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), @@ -3892,19 +3900,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1510 + // line internal/php7/php7.y:1518 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1514 + // line internal/php7/php7.y:1522 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1521 + // line internal/php7/php7.y:1529 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3913,7 +3921,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1528 + // line internal/php7/php7.y:1536 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3929,7 +3937,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1545 + // line internal/php7/php7.y:1553 { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -3942,7 +3950,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1556 + // line internal/php7/php7.y:1564 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), @@ -3959,13 +3967,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1574 + // line internal/php7/php7.y:1582 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1578 + // line internal/php7/php7.y:1586 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), @@ -3979,7 +3987,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1593 + // line internal/php7/php7.y:1601 { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), @@ -3997,7 +4005,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1609 + // line internal/php7/php7.y:1617 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), @@ -4017,7 +4025,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1630 + // line internal/php7/php7.y:1638 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4027,7 +4035,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1638 + // line internal/php7/php7.y:1646 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), @@ -4047,19 +4055,19 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1659 + // line internal/php7/php7.y:1667 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1663 + // line internal/php7/php7.y:1671 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1670 + // line internal/php7/php7.y:1678 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4067,7 +4075,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1676 + // line internal/php7/php7.y:1684 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4076,7 +4084,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1686 + // line internal/php7/php7.y:1694 { pos := yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4104,7 +4112,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1712 + // line internal/php7/php7.y:1720 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4134,25 +4142,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1743 + // line internal/php7/php7.y:1751 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1747 + // line internal/php7/php7.y:1755 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1754 + // line internal/php7/php7.y:1762 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1758 + // line internal/php7/php7.y:1766 { yyVAL.node = &ast.Nullable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4162,7 +4170,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1769 + // line internal/php7/php7.y:1777 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4172,7 +4180,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1777 + // line internal/php7/php7.y:1785 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4182,19 +4190,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1785 + // line internal/php7/php7.y:1793 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1792 + // line internal/php7/php7.y:1800 { yyVAL.node = &ast.ReturnType{} } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1796 + // line internal/php7/php7.y:1804 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4203,7 +4211,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1806 + // line internal/php7/php7.y:1814 { yyVAL.node = &ast.ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -4213,19 +4221,21 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1814 + // line internal/php7/php7.y:1822 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) argumentList.OpenParenthesisTkn = yyDollar[1].token - argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, yyDollar[3].token) + if yyDollar[3].token != nil { + argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, yyDollar[3].token) + } argumentList.CloseParenthesisTkn = yyDollar[4].token yyVAL.node = argumentList } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1827 + // line internal/php7/php7.y:1837 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4233,7 +4243,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1833 + // line internal/php7/php7.y:1843 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4242,7 +4252,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1843 + // line internal/php7/php7.y:1853 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -4251,7 +4261,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1850 + // line internal/php7/php7.y:1860 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4261,7 +4271,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1861 + // line internal/php7/php7.y:1871 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4270,7 +4280,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1868 + // line internal/php7/php7.y:1878 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4278,13 +4288,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1877 + // line internal/php7/php7.y:1887 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1884 + // line internal/php7/php7.y:1894 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4293,7 +4303,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1891 + // line internal/php7/php7.y:1901 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4301,7 +4311,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1900 + // line internal/php7/php7.y:1910 { yyVAL.node = &ast.StmtStaticVar{ @@ -4318,7 +4328,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1915 + // line internal/php7/php7.y:1925 { yyVAL.node = &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4336,19 +4346,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1934 + // line internal/php7/php7.y:1944 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1938 + // line internal/php7/php7.y:1948 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1945 + // line internal/php7/php7.y:1955 { yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), @@ -4361,7 +4371,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1956 + // line internal/php7/php7.y:1966 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), @@ -4374,7 +4384,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1967 + // line internal/php7/php7.y:1977 { yyVAL.node = &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4386,7 +4396,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:1977 + // line internal/php7/php7.y:1987 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4414,7 +4424,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2006 + // line internal/php7/php7.y:2016 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4422,7 +4432,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2012 + // line internal/php7/php7.y:2022 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4431,7 +4441,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2032 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4440,40 +4450,40 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2029 + // line internal/php7/php7.y:2039 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - OpenParenthesisTkn: yyDollar[1].token, - CloseParenthesisTkn: yyDollar[2].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + OpenCurlyBracketTkn: yyDollar[1].token, + CloseCurlyBracketTkn: yyDollar[2].token, } } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2037 + // line internal/php7/php7.y:2047 { yyVAL.node = &ast.StmtTraitAdaptationList{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenParenthesisTkn: yyDollar[1].token, - Adaptations: yyDollar[2].list, - CloseParenthesisTkn: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Adaptations: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2049 + // line internal/php7/php7.y:2059 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2053 + // line internal/php7/php7.y:2063 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2060 + // line internal/php7/php7.y:2070 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4481,7 +4491,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2066 + // line internal/php7/php7.y:2076 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4489,7 +4499,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2075 + // line internal/php7/php7.y:2085 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4501,7 +4511,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2088 + // line internal/php7/php7.y:2098 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4516,7 +4526,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2101 + // line internal/php7/php7.y:2111 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4531,7 +4541,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2114 + // line internal/php7/php7.y:2124 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4547,7 +4557,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2128 + // line internal/php7/php7.y:2138 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4558,7 +4568,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2140 + // line internal/php7/php7.y:2150 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4571,13 +4581,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2151 + // line internal/php7/php7.y:2161 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2158 + // line internal/php7/php7.y:2168 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4592,7 +4602,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2174 + // line internal/php7/php7.y:2184 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4601,7 +4611,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2181 + // line internal/php7/php7.y:2191 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4612,13 +4622,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2193 + // line internal/php7/php7.y:2203 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2197 + // line internal/php7/php7.y:2207 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4630,31 +4640,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2210 + // line internal/php7/php7.y:2220 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2214 + // line internal/php7/php7.y:2224 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2221 + // line internal/php7/php7.y:2231 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2225 + // line internal/php7/php7.y:2235 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2232 + // line internal/php7/php7.y:2242 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4664,7 +4674,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2240 + // line internal/php7/php7.y:2250 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4674,7 +4684,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2248 + // line internal/php7/php7.y:2258 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4684,7 +4694,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2256 + // line internal/php7/php7.y:2266 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4694,7 +4704,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2264 + // line internal/php7/php7.y:2274 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4704,7 +4714,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2282 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4714,7 +4724,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2283 + // line internal/php7/php7.y:2293 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4723,7 +4733,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4731,7 +4741,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2299 + // line internal/php7/php7.y:2309 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4748,7 +4758,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2324 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4766,7 +4776,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2333 + // line internal/php7/php7.y:2343 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4775,7 +4785,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2340 + // line internal/php7/php7.y:2350 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4783,7 +4793,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2349 + // line internal/php7/php7.y:2359 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4798,7 +4808,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2365 + // line internal/php7/php7.y:2375 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4813,7 +4823,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2381 + // line internal/php7/php7.y:2391 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4822,7 +4832,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2388 + // line internal/php7/php7.y:2398 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4830,25 +4840,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2397 + // line internal/php7/php7.y:2407 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2404 + // line internal/php7/php7.y:2414 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2408 + // line internal/php7/php7.y:2418 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2415 + // line internal/php7/php7.y:2425 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4857,7 +4867,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2422 + // line internal/php7/php7.y:2432 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4865,7 +4875,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2431 + // line internal/php7/php7.y:2441 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -4873,7 +4883,7 @@ yydefault: OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, Extends: yyDollar[3].node, Implements: yyDollar[4].node, OpenCurlyBracket: yyDollar[6].token, @@ -4883,7 +4893,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2450 + // line internal/php7/php7.y:2460 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4893,7 +4903,7 @@ yydefault: OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn, } } else { yyVAL.node = &ast.ExprNew{ @@ -4905,7 +4915,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2470 + // line internal/php7/php7.y:2480 { yyVAL.node = &ast.ExprNew{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4915,7 +4925,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2481 + // line internal/php7/php7.y:2491 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4933,7 +4943,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2497 + // line internal/php7/php7.y:2507 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -4950,7 +4960,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2512 + // line internal/php7/php7.y:2522 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4961,7 +4971,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2521 + // line internal/php7/php7.y:2531 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -4973,7 +4983,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2541 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4983,7 +4993,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2539 + // line internal/php7/php7.y:2549 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4994,7 +5004,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2548 + // line internal/php7/php7.y:2558 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5005,7 +5015,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2557 + // line internal/php7/php7.y:2567 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5016,7 +5026,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2566 + // line internal/php7/php7.y:2576 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5027,7 +5037,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2575 + // line internal/php7/php7.y:2585 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5038,7 +5048,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2584 + // line internal/php7/php7.y:2594 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5049,7 +5059,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2593 + // line internal/php7/php7.y:2603 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5060,7 +5070,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2602 + // line internal/php7/php7.y:2612 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5071,7 +5081,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2611 + // line internal/php7/php7.y:2621 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5082,7 +5092,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2620 + // line internal/php7/php7.y:2630 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5093,7 +5103,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2629 + // line internal/php7/php7.y:2639 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5104,7 +5114,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2638 + // line internal/php7/php7.y:2648 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5115,7 +5125,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2647 + // line internal/php7/php7.y:2657 { yyVAL.node = &ast.ExprAssignCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5126,7 +5136,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2656 + // line internal/php7/php7.y:2666 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5136,7 +5146,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2664 + // line internal/php7/php7.y:2674 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5146,7 +5156,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2672 + // line internal/php7/php7.y:2682 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5156,7 +5166,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2680 + // line internal/php7/php7.y:2690 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5166,7 +5176,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2688 + // line internal/php7/php7.y:2698 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5177,7 +5187,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2697 + // line internal/php7/php7.y:2707 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5188,7 +5198,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2706 + // line internal/php7/php7.y:2716 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5199,7 +5209,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2715 + // line internal/php7/php7.y:2725 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5210,7 +5220,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2724 + // line internal/php7/php7.y:2734 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5221,7 +5231,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2733 + // line internal/php7/php7.y:2743 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5232,7 +5242,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2742 + // line internal/php7/php7.y:2752 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5243,7 +5253,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2751 + // line internal/php7/php7.y:2761 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5254,7 +5264,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2760 + // line internal/php7/php7.y:2770 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5265,7 +5275,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2769 + // line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5276,7 +5286,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2778 + // line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5287,7 +5297,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2787 + // line internal/php7/php7.y:2797 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5298,7 +5308,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2796 + // line internal/php7/php7.y:2806 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5309,7 +5319,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2805 + // line internal/php7/php7.y:2815 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5320,7 +5330,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2814 + // line internal/php7/php7.y:2824 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5331,7 +5341,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2823 + // line internal/php7/php7.y:2833 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5342,7 +5352,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2832 + // line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5353,7 +5363,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2841 + // line internal/php7/php7.y:2851 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5363,7 +5373,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2849 + // line internal/php7/php7.y:2859 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5373,7 +5383,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2857 + // line internal/php7/php7.y:2867 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5383,7 +5393,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2865 + // line internal/php7/php7.y:2875 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5393,7 +5403,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2873 + // line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5404,7 +5414,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2882 + // line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5415,7 +5425,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2891 + // line internal/php7/php7.y:2901 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5426,7 +5436,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2900 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5437,7 +5447,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2909 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5448,7 +5458,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2918 + // line internal/php7/php7.y:2928 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5459,7 +5469,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2927 + // line internal/php7/php7.y:2937 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5470,7 +5480,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2936 + // line internal/php7/php7.y:2946 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5481,7 +5491,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2945 + // line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprBinarySpaceship{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5492,7 +5502,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2954 + // line internal/php7/php7.y:2964 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5503,7 +5513,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2963 + // line internal/php7/php7.y:2973 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5514,13 +5524,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2972 + // line internal/php7/php7.y:2982 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2976 + // line internal/php7/php7.y:2986 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5533,7 +5543,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2987 + // line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5545,7 +5555,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2997 + // line internal/php7/php7.y:3007 { yyVAL.node = &ast.ExprBinaryCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5556,13 +5566,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3006 + // line internal/php7/php7.y:3016 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3010 + // line internal/php7/php7.y:3020 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5572,7 +5582,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3018 + // line internal/php7/php7.y:3028 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5582,7 +5592,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3036 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5592,7 +5602,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3034 + // line internal/php7/php7.y:3044 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5602,7 +5612,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3042 + // line internal/php7/php7.y:3052 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5612,7 +5622,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3050 + // line internal/php7/php7.y:3060 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5622,7 +5632,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3058 + // line internal/php7/php7.y:3068 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5632,7 +5642,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3066 + // line internal/php7/php7.y:3076 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -5651,7 +5661,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3083 + // line internal/php7/php7.y:3093 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5661,13 +5671,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3091 + // line internal/php7/php7.y:3101 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5678,7 +5688,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3104 + // line internal/php7/php7.y:3114 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5688,7 +5698,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3112 + // line internal/php7/php7.y:3122 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5697,7 +5707,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3119 + // line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5707,7 +5717,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3137 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5719,7 +5729,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3137 + // line internal/php7/php7.y:3147 { yyVAL.node = &ast.ExprYieldFrom{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5729,13 +5739,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3145 + // line internal/php7/php7.y:3155 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3149 + // line internal/php7/php7.y:3159 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -5750,7 +5760,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3165 + // line internal/php7/php7.y:3175 { yyVAL.node = &ast.ExprClosure{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), @@ -5770,7 +5780,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3183 + // line internal/php7/php7.y:3193 { yyVAL.node = &ast.ExprArrowFunction{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), @@ -5788,25 +5798,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3216 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3210 + // line internal/php7/php7.y:3220 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3217 + // line internal/php7/php7.y:3227 { yyVAL.node = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3221 + // line internal/php7/php7.y:3231 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5819,7 +5829,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3235 + // line internal/php7/php7.y:3245 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5828,7 +5838,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3242 + // line internal/php7/php7.y:3252 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5836,7 +5846,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3261 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5849,7 +5859,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3262 + // line internal/php7/php7.y:3272 { yyVAL.node = &ast.ExprReference{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -5866,7 +5876,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3280 + // line internal/php7/php7.y:3290 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5874,12 +5884,12 @@ yydefault: OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3291 + // line internal/php7/php7.y:3301 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5889,12 +5899,12 @@ yydefault: OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3304 + // line internal/php7/php7.y:3314 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5904,12 +5914,12 @@ yydefault: OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3317 + // line internal/php7/php7.y:3327 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5917,12 +5927,12 @@ yydefault: OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, } } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3331 + // line internal/php7/php7.y:3341 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5932,31 +5942,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3339 + // line internal/php7/php7.y:3349 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3346 + // line internal/php7/php7.y:3356 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3350 + // line internal/php7/php7.y:3360 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3357 + // line internal/php7/php7.y:3367 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3361 + // line internal/php7/php7.y:3371 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5967,13 +5977,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3373 + // line internal/php7/php7.y:3383 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3377 + // line internal/php7/php7.y:3387 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -5985,25 +5995,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3397 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3394 + // line internal/php7/php7.y:3404 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3398 + // line internal/php7/php7.y:3408 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3405 + // line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6016,7 +6026,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3416 + // line internal/php7/php7.y:3426 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6028,7 +6038,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3436 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6038,7 +6048,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3437 + // line internal/php7/php7.y:3447 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6048,7 +6058,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3445 + // line internal/php7/php7.y:3455 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6058,7 +6068,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3463 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6068,7 +6078,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3461 + // line internal/php7/php7.y:3471 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6078,7 +6088,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3469 + // line internal/php7/php7.y:3479 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6088,7 +6098,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3487 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6098,7 +6108,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3485 + // line internal/php7/php7.y:3495 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6108,7 +6118,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3493 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6118,7 +6128,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3511 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6128,7 +6138,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3519 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6138,7 +6148,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3517 + // line internal/php7/php7.y:3527 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6155,7 +6165,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3532 + // line internal/php7/php7.y:3542 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6165,18 +6175,18 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3540 + // line internal/php7/php7.y:3550 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenQoteTkn: yyDollar[1].token, Parts: yyDollar[2].list, - CloseQoteTkn: yyDollar[1].token, + CloseQoteTkn: yyDollar[3].token, } } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3549 + // line internal/php7/php7.y:3559 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6187,19 +6197,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3558 + // line internal/php7/php7.y:3568 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3562 + // line internal/php7/php7.y:3572 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3569 + // line internal/php7/php7.y:3579 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6208,7 +6218,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3576 + // line internal/php7/php7.y:3586 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6223,7 +6233,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3589 + // line internal/php7/php7.y:3599 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6238,43 +6248,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3605 + // line internal/php7/php7.y:3615 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3609 + // line internal/php7/php7.y:3619 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3616 + // line internal/php7/php7.y:3626 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3630 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3627 + // line internal/php7/php7.y:3637 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3634 + // line internal/php7/php7.y:3644 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3638 + // line internal/php7/php7.y:3648 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6285,19 +6295,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3647 + // line internal/php7/php7.y:3657 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3654 + // line internal/php7/php7.y:3664 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3658 + // line internal/php7/php7.y:3668 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6308,29 +6318,17 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3667 + // line internal/php7/php7.y:3677 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3674 + // line internal/php7/php7.y:3684 { yyVAL.node = yyDollar[1].node } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3678 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3688 { @@ -6342,7 +6340,7 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 435: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3698 { @@ -6354,9 +6352,21 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 436: + case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3708 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:3718 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6371,25 +6381,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3721 + // line internal/php7/php7.y:3731 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3728 + // line internal/php7/php7.y:3738 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3732 + // line internal/php7/php7.y:3742 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6400,7 +6410,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3748 + // line internal/php7/php7.y:3758 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6413,7 +6423,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3759 + // line internal/php7/php7.y:3769 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6428,7 +6438,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3772 + // line internal/php7/php7.y:3782 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6438,7 +6448,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3783 + // line internal/php7/php7.y:3793 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6449,7 +6459,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3792 + // line internal/php7/php7.y:3802 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6460,23 +6470,11 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3804 + // line internal/php7/php7.y:3814 { yyVAL.node = yyDollar[1].node } case 447: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3808 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 448: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3818 { @@ -6488,9 +6486,21 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } + case 448: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:3828 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3828 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6501,7 +6511,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3837 + // line internal/php7/php7.y:3847 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6512,7 +6522,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3846 + // line internal/php7/php7.y:3856 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6523,7 +6533,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3858 + // line internal/php7/php7.y:3868 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6533,7 +6543,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3866 + // line internal/php7/php7.y:3876 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6544,13 +6554,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3885 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3882 + // line internal/php7/php7.y:3892 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6560,7 +6570,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3890 + // line internal/php7/php7.y:3900 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6571,13 +6581,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3899 + // line internal/php7/php7.y:3909 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3906 + // line internal/php7/php7.y:3916 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6590,19 +6600,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3920 + // line internal/php7/php7.y:3930 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3924 + // line internal/php7/php7.y:3934 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3931 + // line internal/php7/php7.y:3941 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6611,7 +6621,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3938 + // line internal/php7/php7.y:3948 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6619,7 +6629,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3947 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6630,7 +6640,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3966 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6639,7 +6649,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3963 + // line internal/php7/php7.y:3973 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6654,7 +6664,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3976 + // line internal/php7/php7.y:3986 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6667,7 +6677,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3987 + // line internal/php7/php7.y:3997 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6677,7 +6687,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:3995 + // line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6695,7 +6705,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4011 + // line internal/php7/php7.y:4021 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6711,13 +6721,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4028 + // line internal/php7/php7.y:4038 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4032 + // line internal/php7/php7.y:4042 { yyVAL.list = append( yyDollar[1].list, @@ -6730,13 +6740,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4043 + // line internal/php7/php7.y:4053 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4057 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6749,7 +6759,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4061 + // line internal/php7/php7.y:4071 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6762,7 +6772,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6781,7 +6791,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4089 + // line internal/php7/php7.y:4099 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6803,7 +6813,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4109 + // line internal/php7/php7.y:4119 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6817,7 +6827,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4121 + // line internal/php7/php7.y:4131 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6835,7 +6845,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4137 + // line internal/php7/php7.y:4147 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -6859,7 +6869,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4159 + // line internal/php7/php7.y:4169 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6870,7 +6880,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4171 + // line internal/php7/php7.y:4181 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6880,7 +6890,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4179 + // line internal/php7/php7.y:4189 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6899,7 +6909,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4196 + // line internal/php7/php7.y:4206 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6925,7 +6935,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4220 + // line internal/php7/php7.y:4230 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6938,7 +6948,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4234 + // line internal/php7/php7.y:4244 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -6955,7 +6965,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4249 + // line internal/php7/php7.y:4259 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6967,7 +6977,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4259 + // line internal/php7/php7.y:4269 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6977,7 +6987,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4267 + // line internal/php7/php7.y:4277 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6987,7 +6997,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4285 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6999,7 +7009,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4295 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7009,7 +7019,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4303 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7019,7 +7029,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4304 + // line internal/php7/php7.y:4314 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7027,7 +7037,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4310 + // line internal/php7/php7.y:4320 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7036,7 +7046,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4320 + // line internal/php7/php7.y:4330 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 4f52bad..1db8b0a 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -281,6 +281,8 @@ import ( start: top_statement_list { + yylex.(*Parser).currentToken.Value = nil + yylex.(*Parser).rootNode = &ast.Root{ Position: yylex.(*Parser).builder.NewNodeListPosition($1), Stmts: $1, @@ -579,7 +581,9 @@ group_use_declaration: mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) + if $5 != nil { + $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) + } $$ = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), @@ -597,7 +601,9 @@ mixed_group_use_declaration: } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { - $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) + if $6 != nil { + $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) + } $$ = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), @@ -941,7 +947,9 @@ statement: { $3.(*ast.StmtUnset).UnsetTkn = $1 $3.(*ast.StmtUnset).OpenParenthesisTkn = $2 - $3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4) + if $4 != nil { + $3.(*ast.StmtUnset).SeparatorTkns = append($3.(*ast.StmtUnset).SeparatorTkns, $4) + } $3.(*ast.StmtUnset).CloseParenthesisTkn = $5 $3.(*ast.StmtUnset).SemiColonTkn = $6 $3.(*ast.StmtUnset).Position = yylex.(*Parser).builder.NewTokensPosition($1, $6) @@ -1815,7 +1823,9 @@ argument_list: argumentList := $2.(*ast.ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4) argumentList.OpenParenthesisTkn = $1 - argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3) + if $3 != nil { + argumentList.SeparatorTkns = append(argumentList.SeparatorTkns, $3) + } argumentList.CloseParenthesisTkn = $4 $$ = argumentList @@ -2029,17 +2039,17 @@ trait_adaptations: { $$ = &ast.StmtTraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), - OpenParenthesisTkn: $1, - CloseParenthesisTkn: $2, + OpenCurlyBracketTkn: $1, + CloseCurlyBracketTkn: $2, } } | '{' trait_adaptation_list '}' { $$ = &ast.StmtTraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenParenthesisTkn: $1, - Adaptations: $2, - CloseParenthesisTkn: $3, + OpenCurlyBracketTkn: $1, + Adaptations: $2, + CloseCurlyBracketTkn: $3, } } ; @@ -2435,7 +2445,7 @@ anonymous_class: OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, Extends: $3, Implements: $4, OpenCurlyBracket: $6, @@ -2456,7 +2466,7 @@ new_expr: OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $3.(*ast.ArgumentList).Arguments, SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn, } } else { $$ = &ast.ExprNew{ @@ -3284,7 +3294,7 @@ function_call: OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, } } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list @@ -3297,7 +3307,7 @@ function_call: OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list @@ -3310,7 +3320,7 @@ function_call: OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $4.(*ast.ArgumentList).Arguments, SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } } | callable_expr argument_list @@ -3321,7 +3331,7 @@ function_call: OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, } } ; @@ -3542,7 +3552,7 @@ scalar: Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenQoteTkn: $1, Parts: $2, - CloseQoteTkn: $1, + CloseQoteTkn: $3, } } | T_START_HEREDOC encaps_list T_END_HEREDOC diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 70655b5..4089027 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -954,10 +954,10 @@ func (n *StmtTrait) GetPosition() *position.Position { // StmtTraitAdaptationList node type StmtTraitAdaptationList struct { - Position *position.Position - OpenParenthesisTkn *token.Token - Adaptations []Vertex - CloseParenthesisTkn *token.Token + Position *position.Position + OpenCurlyBracketTkn *token.Token + Adaptations []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go new file mode 100644 index 0000000..5d49077 --- /dev/null +++ b/pkg/ast/visitor/printer.go @@ -0,0 +1,1239 @@ +package visitor + +import ( + "bytes" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" + "io" +) + +type printerState int + +const ( + PrinterStateHTML printerState = iota + PrinterStatePHP +) + +type printer struct { + output io.Writer + state printerState + last []byte +} + +func NewPrinter(output io.Writer) *printer { + return &printer{ + output: output, + } +} + +func (p *printer) WithState(state printerState) *printer { + p.state = state + return p +} + +func isValidVarName(r byte) bool { + return (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') || r == '_' || r >= 0x80 +} + +func (p *printer) write(b []byte) { + if len(b) == 0 { + return + } + + if p.state == PrinterStateHTML { + if !bytes.HasPrefix(b, []byte(""))) + p.printNode(n.Var) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.ColonTkn, nil) + if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { + p.printToken(stmt.OpenCurlyBracket, nil) + p.printList(stmt.Stmts) + p.printToken(stmt.CloseCurlyBracket, nil) + } else { + p.printNode(n.Stmt) + } + p.printToken(n.EndForeachTkn, p.ifToken(n.ColonTkn, []byte("endforeach"), nil)) + p.printToken(n.SemiColonTkn, p.ifToken(n.ColonTkn, []byte(";"), nil)) +} + +func (p *printer) StmtFunction(n *ast.StmtFunction) { + p.printToken(n.FunctionTkn, []byte("function")) + p.printToken(n.AmpersandTkn, nil) + p.printNode(n.FunctionName) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Params, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.ColonTkn, p.ifNode(n.ReturnType, []byte(":"))) + p.printNode(n.ReturnType) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) + p.printList(n.Stmts) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) +} + +func (p *printer) StmtGlobal(n *ast.StmtGlobal) { + p.printToken(n.GlobalTkn, []byte("global")) + p.printSeparatedList(n.Vars, n.SeparatorTkns, []byte(",")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtGoto(n *ast.StmtGoto) { + p.printToken(n.GotoTkn, []byte("goto")) + p.printNode(n.Label) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtHaltCompiler(n *ast.StmtHaltCompiler) { + p.printToken(n.HaltCompilerTkn, []byte("__halt_compiler")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtIf(n *ast.StmtIf) { + p.printToken(n.IfTkn, []byte("if")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printNode(n.Cond) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.ColonTkn, nil) + if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { + p.printToken(stmt.OpenCurlyBracket, nil) + p.printList(stmt.Stmts) + p.printToken(stmt.CloseCurlyBracket, nil) + } else { + p.printNode(n.Stmt) + } + p.printList(n.ElseIf) + p.printNode(n.Else) + p.printToken(n.EndIfTkn, p.ifToken(n.ColonTkn, []byte("endif"), nil)) + p.printToken(n.SemiColonTkn, p.ifToken(n.ColonTkn, []byte(";"), nil)) +} + +func (p *printer) StmtInlineHtml(n *ast.StmtInlineHtml) { + p.state = PrinterStatePHP + if p.last != nil && !bytes.HasSuffix(p.last, []byte("?>")) && !bytes.HasSuffix(p.last, []byte("?>\n")) { + p.write([]byte("?>")) + } + + p.printToken(n.InlineHtmlTkn, n.Value) + p.state = PrinterStateHTML +} + +func (p *printer) StmtInterface(n *ast.StmtInterface) { + p.printToken(n.InterfaceTkn, []byte("interface")) + p.printNode(n.InterfaceName) + p.printNode(n.Extends) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) + p.printList(n.Stmts) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) +} + +func (p *printer) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { + p.printToken(n.ExtendsTkn, []byte("extends")) + p.printSeparatedList(n.InterfaceNames, n.SeparatorTkns, []byte(",")) +} + +func (p *printer) StmtLabel(n *ast.StmtLabel) { + p.printNode(n.LabelName) + p.printToken(n.ColonTkn, []byte(":")) +} + +func (p *printer) StmtNamespace(n *ast.StmtNamespace) { + p.printToken(n.NsTkn, []byte("namespace")) + p.printNode(n.Name) + p.printToken(n.OpenCurlyBracket, p.ifNodeList(n.Stmts, []byte("{"))) + p.printList(n.Stmts) + p.printToken(n.CloseCurlyBracket, p.ifNodeList(n.Stmts, []byte("}"))) + p.printToken(n.SemiColonTkn, p.ifNotNodeList(n.Stmts, []byte(";"))) +} + +func (p *printer) StmtNop(n *ast.StmtNop) { + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtProperty(n *ast.StmtProperty) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, p.ifNode(n.Expr, []byte("="))) + p.printNode(n.Expr) +} + +func (p *printer) StmtPropertyList(n *ast.StmtPropertyList) { + p.printList(n.Modifiers) + p.printNode(n.Type) + p.printSeparatedList(n.Properties, n.SeparatorTkns, []byte(",")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtReturn(n *ast.StmtReturn) { + p.printToken(n.ReturnTkn, []byte("return")) + p.printNode(n.Expr) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtStatic(n *ast.StmtStatic) { + p.printToken(n.StaticTkn, []byte("static")) + p.printSeparatedList(n.Vars, n.SeparatorTkns, []byte(",")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtStaticVar(n *ast.StmtStaticVar) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, p.ifNode(n.Expr, []byte("="))) + p.printNode(n.Expr) +} + +func (p *printer) StmtStmtList(n *ast.StmtStmtList) { + p.printToken(n.OpenCurlyBracket, []byte("{")) + p.printList(n.Stmts) + p.printToken(n.CloseCurlyBracket, []byte("}")) +} + +func (p *printer) StmtSwitch(n *ast.StmtSwitch) { + p.printToken(n.SwitchTkn, []byte("switch")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printNode(n.Cond) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.ColonTkn, nil) + p.printToken(n.OpenCurlyBracketTkn, p.ifNotToken(n.ColonTkn, []byte("{"))) + p.printToken(n.CaseSeparatorTkn, nil) + p.printList(n.CaseList) + p.printToken(n.CloseCurlyBracketTkn, p.ifNotToken(n.ColonTkn, []byte("}"))) + p.printToken(n.EndSwitchTkn, p.ifToken(n.ColonTkn, []byte("endswitch"), nil)) + p.printToken(n.SemiColonTkn, p.ifToken(n.ColonTkn, []byte(";"), nil)) +} + +func (p *printer) StmtThrow(n *ast.StmtThrow) { + p.printToken(n.ThrowTkn, []byte("throw")) + p.printNode(n.Expr) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtTrait(n *ast.StmtTrait) { + p.printToken(n.TraitTkn, []byte("trait")) + p.printNode(n.TraitName) + p.printNode(n.Extends) + p.printNode(n.Implements) + p.printToken(n.OpenCurlyBracket, []byte("{")) + p.printList(n.Stmts) + p.printToken(n.CloseCurlyBracket, []byte("}")) +} + +func (p *printer) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) + p.printList(n.Adaptations) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) +} + +func (p *printer) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { + p.printNode(n.Trait) + p.printToken(n.DoubleColonTkn, p.ifNode(n.Trait, []byte("::"))) + p.printNode(n.Method) +} + +func (p *printer) StmtTraitUse(n *ast.StmtTraitUse) { + p.printToken(n.UseTkn, []byte("use")) + p.printSeparatedList(n.Traits, n.SeparatorTkns, []byte(",")) + p.printNode(n.Adaptations) +} + +func (p *printer) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { + p.printNode(n.Ref) + p.printToken(n.AsTkn, []byte("as")) + p.printNode(n.Modifier) + p.printNode(n.Alias) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { + p.printNode(n.Ref) + p.printToken(n.InsteadofTkn, []byte("insteadof")) + p.printSeparatedList(n.Insteadof, n.SeparatorTkns, []byte(",")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtTry(n *ast.StmtTry) { + p.printToken(n.TryTkn, []byte("try")) + p.printToken(n.OpenCurlyBracket, []byte("{")) + p.printList(n.Stmts) + p.printToken(n.CloseCurlyBracket, []byte("}")) + p.printList(n.Catches) + p.printNode(n.Finally) +} + +func (p *printer) StmtUnset(n *ast.StmtUnset) { + p.printToken(n.UnsetTkn, []byte("unset")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Vars, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtUse(n *ast.StmtUse) { + p.printToken(n.UseTkn, []byte("use")) + p.printNode(n.Type) + p.printSeparatedList(n.UseDeclarations, n.SeparatorTkns, []byte(",")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtGroupUse(n *ast.StmtGroupUse) { + p.printToken(n.UseTkn, []byte("use")) + p.printNode(n.Type) + p.printToken(n.LeadingNsSeparatorTkn, nil) + p.printNode(n.Prefix) + p.printToken(n.NsSeparatorTkn, []byte("\\")) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) + p.printSeparatedList(n.UseDeclarations, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) + p.printToken(n.SemiColonTkn, []byte(";")) +} + +func (p *printer) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + p.printNode(n.Type) + p.printToken(n.NsSeparatorTkn, nil) + p.printNode(n.Use) + p.printToken(n.AsTkn, p.ifNode(n.Alias, []byte("as"))) + p.printNode(n.Alias) +} + +func (p *printer) StmtWhile(n *ast.StmtWhile) { + p.printToken(n.WhileTkn, []byte("while")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printNode(n.Cond) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.ColonTkn, nil) + if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { + p.printToken(stmt.OpenCurlyBracket, nil) + p.printList(stmt.Stmts) + p.printToken(stmt.CloseCurlyBracket, nil) + } else { + p.printNode(n.Stmt) + } + p.printToken(n.EndWhileTkn, p.ifToken(n.ColonTkn, []byte("endwhile"), nil)) + p.printToken(n.SemiColonTkn, p.ifToken(n.ColonTkn, []byte(";"), nil)) +} + +func (p *printer) ExprArray(n *ast.ExprArray) { + p.printToken(n.ArrayTkn, nil) + p.printToken(n.OpenBracketTkn, p.ifToken(n.ArrayTkn, []byte("("), []byte("["))) + p.printSeparatedList(n.Items, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseBracketTkn, p.ifToken(n.ArrayTkn, []byte(")"), []byte("]"))) +} + +func (p *printer) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { + p.printNode(n.Var) + p.printToken(n.OpenBracketTkn, []byte("[")) + p.printNode(n.Dim) + p.printToken(n.CloseBracketTkn, []byte("]")) +} + +func (p *printer) ExprArrayItem(n *ast.ExprArrayItem) { + p.printToken(n.EllipsisTkn, nil) + p.printNode(n.Key) + p.printToken(n.DoubleArrowTkn, p.ifNode(n.Key, []byte("=>"))) + p.printNode(n.Val) +} + +func (p *printer) ExprArrowFunction(n *ast.ExprArrowFunction) { + p.printToken(n.StaticTkn, nil) + p.printToken(n.FnTkn, []byte("fn")) + p.printToken(n.AmpersandTkn, nil) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Params, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.ColonTkn, p.ifNode(n.ReturnType, []byte(":"))) + p.printNode(n.ReturnType) + p.printToken(n.DoubleArrowTkn, []byte("=>")) + p.printNode(n.Expr) +} + +func (p *printer) ExprBitwiseNot(n *ast.ExprBitwiseNot) { + p.printToken(n.TildaTkn, []byte("~")) + p.printNode(n.Expr) +} + +func (p *printer) ExprBooleanNot(n *ast.ExprBooleanNot) { + p.printToken(n.ExclamationTkn, []byte("!")) + p.printNode(n.Expr) +} + +func (p *printer) ExprClassConstFetch(n *ast.ExprClassConstFetch) { + p.printNode(n.Class) + p.printToken(n.DoubleColonTkn, []byte("::")) + p.printNode(n.ConstantName) +} + +func (p *printer) ExprClone(n *ast.ExprClone) { + p.printToken(n.CloneTkn, []byte("clone")) + p.printNode(n.Expr) +} + +func (p *printer) ExprClosure(n *ast.ExprClosure) { + p.printToken(n.StaticTkn, nil) + p.printToken(n.FunctionTkn, []byte("function")) + p.printToken(n.AmpersandTkn, nil) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Params, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printNode(n.ClosureUse) + p.printToken(n.ColonTkn, p.ifNode(n.ReturnType, []byte(":"))) + p.printNode(n.ReturnType) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) + p.printList(n.Stmts) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) +} + +func (p *printer) ExprClosureUse(n *ast.ExprClosureUse) { + p.printToken(n.UseTkn, []byte("use")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Uses, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) +} + +func (p *printer) ExprConstFetch(n *ast.ExprConstFetch) { + p.printNode(n.Const) +} + +func (p *printer) ExprEmpty(n *ast.ExprEmpty) { + p.printToken(n.EmptyTkn, []byte("empty")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printNode(n.Expr) + p.printToken(n.CloseParenthesisTkn, []byte(")")) +} + +func (p *printer) ExprErrorSuppress(n *ast.ExprErrorSuppress) { + p.printToken(n.AtTkn, []byte("@")) + p.printNode(n.Expr) +} + +func (p *printer) ExprEval(n *ast.ExprEval) { + p.printToken(n.EvalTkn, []byte("eval")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printNode(n.Expr) + p.printToken(n.CloseParenthesisTkn, []byte(")")) +} + +func (p *printer) ExprExit(n *ast.ExprExit) { + p.printToken(n.DieTkn, []byte("exit")) + p.printToken(n.OpenParenthesisTkn, nil) + p.printNode(n.Expr) + p.printToken(n.CloseParenthesisTkn, p.ifToken(n.OpenParenthesisTkn, []byte(")"), nil)) +} + +func (p *printer) ExprFunctionCall(n *ast.ExprFunctionCall) { + p.printNode(n.Function) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) +} + +func (p *printer) ExprInclude(n *ast.ExprInclude) { + p.printToken(n.IncludeTkn, []byte("include")) + p.printNode(n.Expr) +} + +func (p *printer) ExprIncludeOnce(n *ast.ExprIncludeOnce) { + p.printToken(n.IncludeTkn, []byte("include_once")) + p.printNode(n.Expr) +} + +func (p *printer) ExprInstanceOf(n *ast.ExprInstanceOf) { + p.printNode(n.Expr) + p.printToken(n.InstanceOfTkn, []byte("instanceof")) + p.printNode(n.Class) +} + +func (p *printer) ExprIsset(n *ast.ExprIsset) { + p.printToken(n.IssetTkn, []byte("isset")) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Vars, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) +} + +func (p *printer) ExprList(n *ast.ExprList) { + p.printToken(n.ListTkn, p.ifToken(n.OpenBracketTkn, nil, []byte("list"))) + p.printToken(n.OpenBracketTkn, []byte("(")) + p.printSeparatedList(n.Items, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseBracketTkn, []byte(")")) +} + +func (p *printer) ExprMethodCall(n *ast.ExprMethodCall) { + p.printNode(n.Var) + p.printToken(n.ObjectOperatorTkn, []byte("->")) + p.printNode(n.Method) + p.printToken(n.OpenParenthesisTkn, []byte("(")) + p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, []byte(")")) +} + +func (p *printer) ExprNew(n *ast.ExprNew) { + p.printToken(n.NewTkn, []byte("new")) + p.printNode(n.Class) + p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("("))) + p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) +} + +func (p *printer) ExprPostDec(n *ast.ExprPostDec) { + p.printNode(n.Var) + p.printToken(n.DecTkn, []byte("--")) +} + +func (p *printer) ExprPostInc(n *ast.ExprPostInc) { + p.printNode(n.Var) + p.printToken(n.IncTkn, []byte("++")) +} + +func (p *printer) ExprPreDec(n *ast.ExprPreDec) { + p.printToken(n.DecTkn, []byte("--")) + p.printNode(n.Var) +} + +func (p *printer) ExprPreInc(n *ast.ExprPreInc) { + p.printToken(n.IncTkn, []byte("++")) + p.printNode(n.Var) +} + +func (p *printer) ExprPrint(n *ast.ExprPrint) { + p.printToken(n.PrintTkn, []byte("print")) + p.printNode(n.Expr) +} + +func (p *printer) ExprPropertyFetch(n *ast.ExprPropertyFetch) { + p.printNode(n.Var) + p.printToken(n.ObjectOperatorTkn, []byte("->")) + p.printNode(n.Property) +} + +func (p *printer) ExprReference(n *ast.ExprReference) { + p.printToken(n.AmpersandTkn, []byte("&")) + p.printNode(n.Var) +} + +func (p *printer) ExprRequire(n *ast.ExprRequire) { + p.printToken(n.RequireTkn, []byte("require")) + p.printNode(n.Expr) +} + +func (p *printer) ExprRequireOnce(n *ast.ExprRequireOnce) { + p.printToken(n.RequireOnceTkn, []byte("require_once")) + p.printNode(n.Expr) +} + +func (p *printer) ExprShellExec(n *ast.ExprShellExec) { + p.printToken(n.OpenBacktickTkn, []byte("`")) + p.printList(n.Parts) + p.printToken(n.CloseBacktickTkn, []byte("`")) +} + +func (p *printer) ExprStaticCall(n *ast.ExprStaticCall) { + p.printNode(n.Class) + p.printToken(n.DoubleColonTkn, []byte("::")) + p.printNode(n.Call) + p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("("))) + p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) +} + +func (p *printer) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { + p.printNode(n.Class) + p.printToken(n.DoubleColonTkn, []byte("::")) + p.printNode(n.Property) +} + +func (p *printer) ExprTernary(n *ast.ExprTernary) { + p.printNode(n.Condition) + p.printToken(n.QuestionTkn, []byte("?")) + p.printNode(n.IfTrue) + p.printToken(n.ColonTkn, []byte(":")) + p.printNode(n.IfFalse) +} + +func (p *printer) ExprUnaryMinus(n *ast.ExprUnaryMinus) { + p.printToken(n.MinusTkn, []byte("-")) + p.printNode(n.Expr) +} + +func (p *printer) ExprUnaryPlus(n *ast.ExprUnaryPlus) { + p.printToken(n.PlusTkn, []byte("+")) + p.printNode(n.Expr) +} + +func (p *printer) ExprVariable(n *ast.ExprVariable) { + p.printToken(n.DollarTkn, nil) + p.printNode(n.VarName) +} + +func (p *printer) ExprYield(n *ast.ExprYield) { + p.printToken(n.YieldTkn, []byte("yield")) + p.printNode(n.Key) + p.printToken(n.DoubleArrowTkn, p.ifNode(n.Key, []byte("=>"))) + p.printNode(n.Value) +} + +func (p *printer) ExprYieldFrom(n *ast.ExprYieldFrom) { + p.printToken(n.YieldFromTkn, []byte("yield from")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssign(n *ast.ExprAssign) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignReference(n *ast.ExprAssignReference) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("=")) + p.printToken(n.AmpersandTkn, []byte("&")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("&=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("|=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("^=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("??=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignConcat(n *ast.ExprAssignConcat) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte(".=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignDiv(n *ast.ExprAssignDiv) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("/=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignMinus(n *ast.ExprAssignMinus) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("-=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignMod(n *ast.ExprAssignMod) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("%=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignMul(n *ast.ExprAssignMul) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("*=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignPlus(n *ast.ExprAssignPlus) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("+=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignPow(n *ast.ExprAssignPow) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("**=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte("<<=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { + p.printNode(n.Var) + p.printToken(n.EqualTkn, []byte(">>=")) + p.printNode(n.Expr) +} + +func (p *printer) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("&")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("|")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("^")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("&&")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("||")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("??")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryConcat(n *ast.ExprBinaryConcat) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte(".")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryDiv(n *ast.ExprBinaryDiv) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("/")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryEqual(n *ast.ExprBinaryEqual) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("==")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryGreater(n *ast.ExprBinaryGreater) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte(">")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte(">=")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("===")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("and")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("or")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("xor")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryMinus(n *ast.ExprBinaryMinus) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("-")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryMod(n *ast.ExprBinaryMod) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("%")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryMul(n *ast.ExprBinaryMul) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("*")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("!=")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("!==")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryPlus(n *ast.ExprBinaryPlus) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("+")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryPow(n *ast.ExprBinaryPow) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("**")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("<<")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte(">>")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinarySmaller(n *ast.ExprBinarySmaller) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("<")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("<=")) + p.printNode(n.Right) +} + +func (p *printer) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { + p.printNode(n.Left) + p.printToken(n.OpTkn, []byte("<=>")) + p.printNode(n.Right) +} + +func (p *printer) ExprCastArray(n *ast.ExprCastArray) { + p.printToken(n.CastTkn, []byte("(array)")) + p.printNode(n.Expr) +} + +func (p *printer) ExprCastBool(n *ast.ExprCastBool) { + p.printToken(n.CastTkn, []byte("(bool)")) + p.printNode(n.Expr) +} + +func (p *printer) ExprCastDouble(n *ast.ExprCastDouble) { + p.printToken(n.CastTkn, []byte("(float)")) + p.printNode(n.Expr) +} + +func (p *printer) ExprCastInt(n *ast.ExprCastInt) { + p.printToken(n.CastTkn, []byte("(integer)")) + p.printNode(n.Expr) +} + +func (p *printer) ExprCastObject(n *ast.ExprCastObject) { + p.printToken(n.CastTkn, []byte("(object)")) + p.printNode(n.Expr) +} + +func (p *printer) ExprCastString(n *ast.ExprCastString) { + p.printToken(n.CastTkn, []byte("(string)")) + p.printNode(n.Expr) +} + +func (p *printer) ExprCastUnset(n *ast.ExprCastUnset) { + p.printToken(n.CastTkn, []byte("(unset)")) + p.printNode(n.Expr) +} + +func (p *printer) ScalarDnumber(n *ast.ScalarDnumber) { + p.printToken(n.NumberTkn, n.Value) +} + +func (p *printer) ScalarEncapsed(n *ast.ScalarEncapsed) { + p.printToken(n.OpenQoteTkn, []byte("\"")) + p.printList(n.Parts) + p.printToken(n.CloseQoteTkn, []byte("\"")) +} + +func (p *printer) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { + p.printToken(n.EncapsedStrTkn, n.Value) +} + +func (p *printer) ScalarHeredoc(n *ast.ScalarHeredoc) { + p.printToken(n.OpenHeredocTkn, []byte("<<HTML")}, &ast.StmtEcho{ @@ -85,9 +87,10 @@ func TestPrinterPrintFileInlineHtml(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `
HTML
HTML
HTML
HTML
>=$b` actual := o.String() @@ -771,15 +786,16 @@ func TestPrinterPrintAssignShiftRight(t *testing.T) { func TestPrinterPrintBinaryBitwiseAnd(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryBitwiseAnd{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryBitwiseAnd{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a&$b` actual := o.String() @@ -792,15 +808,16 @@ func TestPrinterPrintBinaryBitwiseAnd(t *testing.T) { func TestPrinterPrintBinaryBitwiseOr(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryBitwiseOr{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryBitwiseOr{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a|$b` actual := o.String() @@ -813,15 +830,16 @@ func TestPrinterPrintBinaryBitwiseOr(t *testing.T) { func TestPrinterPrintBinaryBitwiseXor(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryBitwiseXor{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryBitwiseXor{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a^$b` actual := o.String() @@ -834,15 +852,16 @@ func TestPrinterPrintBinaryBitwiseXor(t *testing.T) { func TestPrinterPrintBinaryBooleanAnd(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryBooleanAnd{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryBooleanAnd{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a&&$b` actual := o.String() @@ -855,15 +874,16 @@ func TestPrinterPrintBinaryBooleanAnd(t *testing.T) { func TestPrinterPrintBinaryBooleanOr(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryBooleanOr{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryBooleanOr{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a||$b` actual := o.String() @@ -876,15 +896,16 @@ func TestPrinterPrintBinaryBooleanOr(t *testing.T) { func TestPrinterPrintBinaryCoalesce(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryCoalesce{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryCoalesce{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a??$b` actual := o.String() @@ -897,15 +918,16 @@ func TestPrinterPrintBinaryCoalesce(t *testing.T) { func TestPrinterPrintBinaryConcat(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryConcat{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryConcat{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a.$b` actual := o.String() @@ -918,15 +940,16 @@ func TestPrinterPrintBinaryConcat(t *testing.T) { func TestPrinterPrintBinaryDiv(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryDiv{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryDiv{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a/$b` actual := o.String() @@ -939,15 +962,16 @@ func TestPrinterPrintBinaryDiv(t *testing.T) { func TestPrinterPrintBinaryEqual(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryEqual{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a==$b` actual := o.String() @@ -960,15 +984,16 @@ func TestPrinterPrintBinaryEqual(t *testing.T) { func TestPrinterPrintBinaryGreaterOrEqual(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryGreaterOrEqual{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryGreaterOrEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a>=$b` actual := o.String() @@ -981,15 +1006,16 @@ func TestPrinterPrintBinaryGreaterOrEqual(t *testing.T) { func TestPrinterPrintBinaryGreater(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryGreater{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryGreater{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a>$b` actual := o.String() @@ -1002,15 +1028,16 @@ func TestPrinterPrintBinaryGreater(t *testing.T) { func TestPrinterPrintBinaryIdentical(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryIdentical{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryIdentical{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a===$b` actual := o.String() @@ -1023,17 +1050,18 @@ func TestPrinterPrintBinaryIdentical(t *testing.T) { func TestPrinterPrintBinaryLogicalAnd(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryLogicalAnd{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryLogicalAnd{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) - expected := `$a and $b` + expected := `$a and$b` actual := o.String() if expected != actual { @@ -1044,17 +1072,18 @@ func TestPrinterPrintBinaryLogicalAnd(t *testing.T) { func TestPrinterPrintBinaryLogicalOr(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryLogicalOr{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryLogicalOr{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) - expected := `$a or $b` + expected := `$a or$b` actual := o.String() if expected != actual { @@ -1065,17 +1094,18 @@ func TestPrinterPrintBinaryLogicalOr(t *testing.T) { func TestPrinterPrintBinaryLogicalXor(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryLogicalXor{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryLogicalXor{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) - expected := `$a xor $b` + expected := `$a xor$b` actual := o.String() if expected != actual { @@ -1086,15 +1116,16 @@ func TestPrinterPrintBinaryLogicalXor(t *testing.T) { func TestPrinterPrintBinaryMinus(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryMinus{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryMinus{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a-$b` actual := o.String() @@ -1107,15 +1138,16 @@ func TestPrinterPrintBinaryMinus(t *testing.T) { func TestPrinterPrintBinaryMod(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryMod{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryMod{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a%$b` actual := o.String() @@ -1128,15 +1160,16 @@ func TestPrinterPrintBinaryMod(t *testing.T) { func TestPrinterPrintBinaryMul(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryMul{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryMul{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a*$b` actual := o.String() @@ -1149,15 +1182,16 @@ func TestPrinterPrintBinaryMul(t *testing.T) { func TestPrinterPrintBinaryNotEqual(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryNotEqual{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryNotEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a!=$b` actual := o.String() @@ -1170,15 +1204,16 @@ func TestPrinterPrintBinaryNotEqual(t *testing.T) { func TestPrinterPrintBinaryNotIdentical(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryNotIdentical{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryNotIdentical{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a!==$b` actual := o.String() @@ -1191,15 +1226,16 @@ func TestPrinterPrintBinaryNotIdentical(t *testing.T) { func TestPrinterPrintBinaryPlus(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryPlus{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryPlus{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a+$b` actual := o.String() @@ -1212,15 +1248,16 @@ func TestPrinterPrintBinaryPlus(t *testing.T) { func TestPrinterPrintBinaryPow(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryPow{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryPow{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a**$b` actual := o.String() @@ -1233,15 +1270,16 @@ func TestPrinterPrintBinaryPow(t *testing.T) { func TestPrinterPrintBinaryShiftLeft(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryShiftLeft{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryShiftLeft{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a<<$b` actual := o.String() @@ -1254,15 +1292,16 @@ func TestPrinterPrintBinaryShiftLeft(t *testing.T) { func TestPrinterPrintBinaryShiftRight(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinaryShiftRight{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinaryShiftRight{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a>>$b` actual := o.String() @@ -1275,15 +1314,16 @@ func TestPrinterPrintBinaryShiftRight(t *testing.T) { func TestPrinterPrintBinarySmallerOrEqual(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinarySmallerOrEqual{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinarySmallerOrEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a<=$b` actual := o.String() @@ -1296,15 +1336,16 @@ func TestPrinterPrintBinarySmallerOrEqual(t *testing.T) { func TestPrinterPrintBinarySmaller(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinarySmaller{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinarySmaller{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a<$b` actual := o.String() @@ -1317,15 +1358,16 @@ func TestPrinterPrintBinarySmaller(t *testing.T) { func TestPrinterPrintBinarySpaceship(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBinarySpaceship{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBinarySpaceship{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a<=>$b` actual := o.String() @@ -1340,12 +1382,13 @@ func TestPrinterPrintBinarySpaceship(t *testing.T) { func TestPrinterPrintArray(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprCastArray{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprCastArray{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `(array)$var` actual := o.String() @@ -1358,14 +1401,15 @@ func TestPrinterPrintArray(t *testing.T) { func TestPrinterPrintBool(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprCastBool{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprCastBool{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `(boolean)$var` + expected := `(bool)$var` actual := o.String() if expected != actual { @@ -1376,12 +1420,13 @@ func TestPrinterPrintBool(t *testing.T) { func TestPrinterPrintDouble(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprCastDouble{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprCastDouble{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `(float)$var` actual := o.String() @@ -1394,12 +1439,13 @@ func TestPrinterPrintDouble(t *testing.T) { func TestPrinterPrintInt(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprCastInt{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprCastInt{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `(integer)$var` actual := o.String() @@ -1412,12 +1458,13 @@ func TestPrinterPrintInt(t *testing.T) { func TestPrinterPrintObject(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprCastObject{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprCastObject{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `(object)$var` actual := o.String() @@ -1430,12 +1477,13 @@ func TestPrinterPrintObject(t *testing.T) { func TestPrinterPrintString(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprCastString{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprCastString{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `(string)$var` actual := o.String() @@ -1448,12 +1496,13 @@ func TestPrinterPrintString(t *testing.T) { func TestPrinterPrintUnset(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprCastUnset{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprCastUnset{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `(unset)$var` actual := o.String() @@ -1468,13 +1517,14 @@ func TestPrinterPrintUnset(t *testing.T) { func TestPrinterPrintExprArrayDimFetch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprArrayDimFetch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprArrayDimFetch{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, Dim: &ast.ScalarLnumber{Value: []byte("1")}, - }) + } + n.Accept(p) expected := `$var[1]` actual := o.String() @@ -1487,13 +1537,14 @@ func TestPrinterPrintExprArrayDimFetch(t *testing.T) { func TestPrinterPrintExprArrayItemWithKey(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprArrayItem{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprArrayItem{ Key: &ast.ScalarString{Value: []byte("'Hello'")}, Val: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$world")}, }, - }) + } + n.Accept(p) expected := `'Hello'=>$world` actual := o.String() @@ -1506,12 +1557,13 @@ func TestPrinterPrintExprArrayItemWithKey(t *testing.T) { func TestPrinterPrintExprArrayItem(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprArrayItem{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprArrayItem{ Val: &ast.ExprReference{Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$world")}, }}, - }) + } + n.Accept(p) expected := `&$world` actual := o.String() @@ -1524,13 +1576,16 @@ func TestPrinterPrintExprArrayItem(t *testing.T) { func TestPrinterPrintExprArrayItemUnpack(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprArrayItem{ - Unpack: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprArrayItem{ + EllipsisTkn: &token.Token{ + Value: []byte("..."), + }, Val: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$world")}, }, - }) + } + n.Accept(p) expected := `...$world` actual := o.String() @@ -1543,8 +1598,11 @@ func TestPrinterPrintExprArrayItemUnpack(t *testing.T) { func TestPrinterPrintExprArray(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprArray{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprArray{ + ArrayTkn: &token.Token{ + Value: []byte("array"), + }, Items: []ast.Vertex{ &ast.ExprArrayItem{ Key: &ast.ScalarString{Value: []byte("'Hello'")}, @@ -1564,7 +1622,8 @@ func TestPrinterPrintExprArray(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `array('Hello'=>$world,2=>&$var,$var)` actual := o.String() @@ -1577,12 +1636,13 @@ func TestPrinterPrintExprArray(t *testing.T) { func TestPrinterPrintExprBitwiseNot(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBitwiseNot{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBitwiseNot{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `~$var` actual := o.String() @@ -1595,12 +1655,13 @@ func TestPrinterPrintExprBitwiseNot(t *testing.T) { func TestPrinterPrintExprBooleanNot(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprBooleanNot{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBooleanNot{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `!$var` actual := o.String() @@ -1613,15 +1674,16 @@ func TestPrinterPrintExprBooleanNot(t *testing.T) { func TestPrinterPrintExprClassConstFetch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprClassConstFetch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprClassConstFetch{ Class: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, ConstantName: &ast.Identifier{ Value: []byte("CONST"), }, - }) + } + n.Accept(p) expected := `$var::CONST` actual := o.String() @@ -1634,14 +1696,15 @@ func TestPrinterPrintExprClassConstFetch(t *testing.T) { func TestPrinterPrintExprClone(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprClone{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprClone{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `clone $var` + expected := `clone$var` actual := o.String() if expected != actual { @@ -1652,8 +1715,8 @@ func TestPrinterPrintExprClone(t *testing.T) { func TestPrinterPrintExprClosureUse(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprClosureUse{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprClosureUse{ Uses: []ast.Vertex{ &ast.ExprReference{Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$foo")}, @@ -1662,7 +1725,8 @@ func TestPrinterPrintExprClosureUse(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$bar")}, }, }, - }) + } + n.Accept(p) expected := `use(&$foo,$bar)` actual := o.String() @@ -1675,16 +1739,18 @@ func TestPrinterPrintExprClosureUse(t *testing.T) { func TestPrinterPrintExprClosure(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprClosure{ - Static: true, - ReturnsRef: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprClosure{ + StaticTkn: &token.Token{ + Value: []byte("static"), + }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, Params: []ast.Vertex{ &ast.Parameter{ - Var: &ast.Reference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, - }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$var")}, }, }, }, @@ -1706,9 +1772,10 @@ func TestPrinterPrintExprClosure(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$a")}, }}, }, - }) + } + n.Accept(p) - expected := `static function&(&$var)use(&$a,$b):\Foo{$a;}` + expected := `static function&($var)use(&$a,$b):\Foo{$a;}` actual := o.String() if expected != actual { @@ -1719,17 +1786,22 @@ func TestPrinterPrintExprClosure(t *testing.T) { func TestPrinterPrintExprArrowFunction(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtExpression{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtExpression{ Expr: &ast.ExprArrowFunction{ - Static: true, - ReturnsRef: true, + StaticTkn: &token.Token{ + Value: []byte("static"), + }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, Params: []ast.Vertex{ &ast.Parameter{ - Var: &ast.Reference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, - }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$var")}, }, }, }, @@ -1740,7 +1812,8 @@ func TestPrinterPrintExprArrowFunction(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$a")}, }, }, - }) + } + n.Accept(p) expected := `static fn&(&$var):\Foo=>$a;` actual := o.String() @@ -1753,10 +1826,11 @@ func TestPrinterPrintExprArrowFunction(t *testing.T) { func TestPrinterPrintExprConstFetch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprConstFetch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprConstFetch{ Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}, - }) + } + n.Accept(p) expected := "null" actual := o.String() @@ -1769,12 +1843,13 @@ func TestPrinterPrintExprConstFetch(t *testing.T) { func TestPrinterPrintEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprEmpty{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprEmpty{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `empty($var)` actual := o.String() @@ -1787,12 +1862,13 @@ func TestPrinterPrintEmpty(t *testing.T) { func TestPrinterPrettyPrinterrorSuppress(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprErrorSuppress{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprErrorSuppress{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `@$var` actual := o.String() @@ -1805,12 +1881,13 @@ func TestPrinterPrettyPrinterrorSuppress(t *testing.T) { func TestPrinterPrintEval(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprEval{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprEval{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `eval($var)` actual := o.String() @@ -1823,15 +1900,15 @@ func TestPrinterPrintEval(t *testing.T) { func TestPrinterPrintExit(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprExit{ - Die: false, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprExit{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `exit $var` + expected := `exit$var` actual := o.String() if expected != actual { @@ -1842,15 +1919,18 @@ func TestPrinterPrintExit(t *testing.T) { func TestPrinterPrintDie(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprExit{ - Die: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprExit{ + DieTkn: &token.Token{ + Value: []byte("die"), + }, Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `die $var` + expected := `die$var` actual := o.String() if expected != actual { @@ -1861,33 +1941,36 @@ func TestPrinterPrintDie(t *testing.T) { func TestPrinterPrintFunctionCall(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprFunctionCall{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprFunctionCall{ Function: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - IsReference: true, - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, - }, + Arguments: []ast.Vertex{ + &ast.Argument{ + AmpersandTkn: &token.Token{ + Value: []byte("&"), }, - &ast.Argument{ - Variadic: true, - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, - }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, }, - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, - }, + }, + &ast.Argument{ + VariadicTkn: &token.Token{ + Value: []byte("..."), + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$b")}, + }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$c")}, }, }, }, - }) + } + n.Accept(p) expected := `$var(&$a,...$b,$c)` actual := o.String() @@ -1900,12 +1983,13 @@ func TestPrinterPrintFunctionCall(t *testing.T) { func TestPrinterPrintInclude(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprInclude{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprInclude{ Expr: &ast.ScalarString{Value: []byte("'path'")}, - }) + } + n.Accept(p) - expected := `include 'path'` + expected := `include'path'` actual := o.String() if expected != actual { @@ -1916,12 +2000,13 @@ func TestPrinterPrintInclude(t *testing.T) { func TestPrinterPrintIncludeOnce(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprIncludeOnce{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprIncludeOnce{ Expr: &ast.ScalarString{Value: []byte("'path'")}, - }) + } + n.Accept(p) - expected := `include_once 'path'` + expected := `include_once'path'` actual := o.String() if expected != actual { @@ -1932,13 +2017,14 @@ func TestPrinterPrintIncludeOnce(t *testing.T) { func TestPrinterPrintInstanceOf(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprInstanceOf{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprInstanceOf{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, Class: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - }) + } + n.Accept(p) expected := `$var instanceof Foo` actual := o.String() @@ -1951,8 +2037,8 @@ func TestPrinterPrintInstanceOf(t *testing.T) { func TestPrinterPrintIsset(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprIsset{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprIsset{ Vars: []ast.Vertex{ &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1961,7 +2047,8 @@ func TestPrinterPrintIsset(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$b")}, }, }, - }) + } + n.Accept(p) expected := `isset($a,$b)` actual := o.String() @@ -1974,8 +2061,8 @@ func TestPrinterPrintIsset(t *testing.T) { func TestPrinterPrintList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ @@ -1999,7 +2086,8 @@ func TestPrinterPrintList(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `list($a,list($b,$c))` actual := o.String() @@ -2012,27 +2100,26 @@ func TestPrinterPrintList(t *testing.T) { func TestPrinterPrintMethodCall(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprMethodCall{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprMethodCall{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$foo")}, }, Method: &ast.Identifier{Value: []byte("bar")}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, - }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, }, - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, - }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$b")}, }, }, }, - }) + } + n.Accept(p) expected := `$foo->bar($a,$b)` actual := o.String() @@ -2045,8 +2132,8 @@ func TestPrinterPrintMethodCall(t *testing.T) { func TestPrinterPrintNew(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprNew{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprNew{ Class: &ast.NameName{ Parts: []ast.Vertex{ &ast.NameNamePart{ @@ -2054,21 +2141,20 @@ func TestPrinterPrintNew(t *testing.T) { }, }, }, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, - }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, }, - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, - }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$b")}, }, }, }, - }) + } + n.Accept(p) expected := `new Foo($a,$b)` actual := o.String() @@ -2081,12 +2167,13 @@ func TestPrinterPrintNew(t *testing.T) { func TestPrinterPrintPostDec(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprPostDec{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprPostDec{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `$var--` actual := o.String() @@ -2099,12 +2186,13 @@ func TestPrinterPrintPostDec(t *testing.T) { func TestPrinterPrintPostInc(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprPostInc{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprPostInc{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `$var++` actual := o.String() @@ -2117,12 +2205,13 @@ func TestPrinterPrintPostInc(t *testing.T) { func TestPrinterPrintPreDec(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprPreDec{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprPreDec{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `--$var` actual := o.String() @@ -2135,12 +2224,13 @@ func TestPrinterPrintPreDec(t *testing.T) { func TestPrinterPrintPreInc(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprPreInc{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprPreInc{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `++$var` actual := o.String() @@ -2153,14 +2243,15 @@ func TestPrinterPrintPreInc(t *testing.T) { func TestPrinterPrintPrint(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprPrint{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprPrint{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `print $var` + expected := `print$var` actual := o.String() if expected != actual { @@ -2171,13 +2262,14 @@ func TestPrinterPrintPrint(t *testing.T) { func TestPrinterPrintPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprPropertyFetch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprPropertyFetch{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$foo")}, }, Property: &ast.Identifier{Value: []byte("bar")}, - }) + } + n.Accept(p) expected := `$foo->bar` actual := o.String() @@ -2190,12 +2282,13 @@ func TestPrinterPrintPropertyFetch(t *testing.T) { func TestPrinterPrintExprReference(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprReference{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprReference{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$foo")}, }, - }) + } + n.Accept(p) expected := `&$foo` actual := o.String() @@ -2208,12 +2301,13 @@ func TestPrinterPrintExprReference(t *testing.T) { func TestPrinterPrintRequire(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprRequire{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprRequire{ Expr: &ast.ScalarString{Value: []byte("'path'")}, - }) + } + n.Accept(p) - expected := `require 'path'` + expected := `require'path'` actual := o.String() if expected != actual { @@ -2224,12 +2318,13 @@ func TestPrinterPrintRequire(t *testing.T) { func TestPrinterPrintRequireOnce(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprRequireOnce{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprRequireOnce{ Expr: &ast.ScalarString{Value: []byte("'path'")}, - }) + } + n.Accept(p) - expected := `require_once 'path'` + expected := `require_once'path'` actual := o.String() if expected != actual { @@ -2240,8 +2335,8 @@ func TestPrinterPrintRequireOnce(t *testing.T) { func TestPrinterPrintShellExec(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprShellExec{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprShellExec{ Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, &ast.ExprVariable{ @@ -2249,7 +2344,8 @@ func TestPrinterPrintShellExec(t *testing.T) { }, &ast.ScalarEncapsedStringPart{Value: []byte("!")}, }, - }) + } + n.Accept(p) expected := "`hello $world!`" actual := o.String() @@ -2262,8 +2358,8 @@ func TestPrinterPrintShellExec(t *testing.T) { func TestPrinterPrintExprShortArray(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprShortArray{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprArray{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Key: &ast.ScalarString{Value: []byte("'Hello'")}, @@ -2283,7 +2379,8 @@ func TestPrinterPrintExprShortArray(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `['Hello'=>$world,2=>&$var,$var]` actual := o.String() @@ -2296,8 +2393,11 @@ func TestPrinterPrintExprShortArray(t *testing.T) { func TestPrinterPrintShortList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprShortList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprList{ + OpenBracketTkn: &token.Token{ + Value: []byte("["), + }, Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ @@ -2321,7 +2421,11 @@ func TestPrinterPrintShortList(t *testing.T) { }, }, }, - }) + CloseBracketTkn: &token.Token{ + Value: []byte("]"), + }, + } + n.Accept(p) expected := `[$a,list($b,$c)]` actual := o.String() @@ -2334,25 +2438,24 @@ func TestPrinterPrintShortList(t *testing.T) { func TestPrinterPrintStaticCall(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprStaticCall{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprStaticCall{ Class: &ast.Identifier{Value: []byte("Foo")}, Call: &ast.Identifier{Value: []byte("bar")}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, - }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, }, - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, - }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$b")}, }, }, }, - }) + } + n.Accept(p) expected := `Foo::bar($a,$b)` actual := o.String() @@ -2365,13 +2468,14 @@ func TestPrinterPrintStaticCall(t *testing.T) { func TestPrinterPrintStaticPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprStaticPropertyFetch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprStaticPropertyFetch{ Class: &ast.Identifier{Value: []byte("Foo")}, Property: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$bar")}, }, - }) + } + n.Accept(p) expected := `Foo::$bar` actual := o.String() @@ -2384,15 +2488,16 @@ func TestPrinterPrintStaticPropertyFetch(t *testing.T) { func TestPrinterPrintTernary(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprTernary{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprTernary{ Condition: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, IfFalse: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, - }) + } + n.Accept(p) expected := `$a?:$b` actual := o.String() @@ -2405,8 +2510,8 @@ func TestPrinterPrintTernary(t *testing.T) { func TestPrinterPrintTernaryFull(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprTernary{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprTernary{ Condition: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, @@ -2416,7 +2521,8 @@ func TestPrinterPrintTernaryFull(t *testing.T) { IfFalse: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$c")}, }, - }) + } + n.Accept(p) expected := `$a?$b:$c` actual := o.String() @@ -2429,12 +2535,13 @@ func TestPrinterPrintTernaryFull(t *testing.T) { func TestPrinterPrintUnaryMinus(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprUnaryMinus{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprUnaryMinus{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `-$var` actual := o.String() @@ -2447,12 +2554,13 @@ func TestPrinterPrintUnaryMinus(t *testing.T) { func TestPrinterPrintUnaryPlus(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprUnaryPlus{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprUnaryPlus{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `+$var` actual := o.String() @@ -2465,12 +2573,16 @@ func TestPrinterPrintUnaryPlus(t *testing.T) { func TestPrinterPrintVariable(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprVariable{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprVariable{ + DollarTkn: &token.Token{ + Value: []byte("$"), + }, VarName: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) expected := `$$var` actual := o.String() @@ -2483,14 +2595,15 @@ func TestPrinterPrintVariable(t *testing.T) { func TestPrinterPrintYieldFrom(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprYieldFrom{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprYieldFrom{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `yield from $var` + expected := `yield from$var` actual := o.String() if expected != actual { @@ -2501,14 +2614,15 @@ func TestPrinterPrintYieldFrom(t *testing.T) { func TestPrinterPrintYield(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprYield{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprYield{ Value: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `yield $var` + expected := `yield$var` actual := o.String() if expected != actual { @@ -2519,17 +2633,18 @@ func TestPrinterPrintYield(t *testing.T) { func TestPrinterPrintYieldFull(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.ExprYield{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprYield{ Key: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$k")}, }, Value: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `yield $k=>$var` + expected := `yield$k=>$var` actual := o.String() if expected != actual { @@ -2542,12 +2657,14 @@ func TestPrinterPrintYieldFull(t *testing.T) { func TestPrinterPrintAltElseIf(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtElseIf{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2555,7 +2672,8 @@ func TestPrinterPrintAltElseIf(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) expected := `elseif($a):$b;` actual := o.String() @@ -2568,14 +2686,17 @@ func TestPrinterPrintAltElseIf(t *testing.T) { func TestPrinterPrintAltElseIfEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtElseIf{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{}, - }) + } + n.Accept(p) expected := `elseif($a):` actual := o.String() @@ -2588,9 +2709,11 @@ func TestPrinterPrintAltElseIfEmpty(t *testing.T) { func TestPrinterPrintAltElse(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtElse{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtElse{ + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2598,7 +2721,8 @@ func TestPrinterPrintAltElse(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) expected := `else:$b;` actual := o.String() @@ -2611,11 +2735,14 @@ func TestPrinterPrintAltElse(t *testing.T) { func TestPrinterPrintAltElseEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtElse{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtElse{ + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{}, - }) + } + n.Accept(p) expected := `else:` actual := o.String() @@ -2628,9 +2755,8 @@ func TestPrinterPrintAltElseEmpty(t *testing.T) { func TestPrinterPrintAltFor(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtFor{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtFor{ Init: []ast.Vertex{ &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -2646,6 +2772,9 @@ func TestPrinterPrintAltFor(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$c")}, }, }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2653,7 +2782,8 @@ func TestPrinterPrintAltFor(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) expected := `for($a;$b;$c):$d;endfor;` actual := o.String() @@ -2666,18 +2796,22 @@ func TestPrinterPrintAltFor(t *testing.T) { func TestPrinterPrintAltForeach(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtForeach{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, Key: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$key")}, }, - Var: &ast.ExprReference{Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$val")}, - }}, + Var: &ast.ExprReference{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$val")}, + }, + }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2685,9 +2819,10 @@ func TestPrinterPrintAltForeach(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) - expected := `foreach($var as $key=>&$val):$d;endforeach;` + expected := `foreach($var as$key=>&$val):$d;endforeach;` actual := o.String() if expected != actual { @@ -2698,12 +2833,14 @@ func TestPrinterPrintAltForeach(t *testing.T) { func TestPrinterPrintAltIf(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtIf{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2713,10 +2850,12 @@ func TestPrinterPrintAltIf(t *testing.T) { }, ElseIf: []ast.Vertex{ &ast.StmtElseIf{ - Alt: true, Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2726,15 +2865,19 @@ func TestPrinterPrintAltIf(t *testing.T) { }, }, &ast.StmtElseIf{ - Alt: true, Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$c")}, }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{}, }, }, Else: &ast.StmtElse{ - Alt: true, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2743,7 +2886,8 @@ func TestPrinterPrintAltIf(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `if($a):$d;elseif($b):$b;elseif($c):else:$b;endif;` actual := o.String() @@ -2756,12 +2900,14 @@ func TestPrinterPrintAltIf(t *testing.T) { func TestPrinterPrintStmtAltSwitch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtSwitch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtSwitch{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - Alt: true, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, CaseList: []ast.Vertex{ &ast.StmtCase{ Cond: &ast.ScalarString{Value: []byte("'a'")}, @@ -2780,9 +2926,10 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `switch($var):case 'a':$a;case 'b':$b;endswitch;` + expected := `switch($var):case'a':$a;case'b':$b;endswitch;` actual := o.String() if expected != actual { @@ -2793,12 +2940,14 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { func TestPrinterPrintAltWhile(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtWhile{ - Alt: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtWhile{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -2806,7 +2955,8 @@ func TestPrinterPrintAltWhile(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) expected := `while($a):$b;endwhile;` actual := o.String() @@ -2819,12 +2969,13 @@ func TestPrinterPrintAltWhile(t *testing.T) { func TestPrinterPrintStmtBreak(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtBreak{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtBreak{ Expr: &ast.ScalarLnumber{ Value: []byte("1"), }, - }) + } + n.Accept(p) expected := "break 1;" actual := o.String() @@ -2837,8 +2988,8 @@ func TestPrinterPrintStmtBreak(t *testing.T) { func TestPrinterPrintStmtCase(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtCase{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtCase{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, @@ -2847,9 +2998,10 @@ func TestPrinterPrintStmtCase(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$a")}, }}, }, - }) + } + n.Accept(p) - expected := `case $a:$a;` + expected := `case$a:$a;` actual := o.String() if expected != actual { @@ -2860,15 +3012,16 @@ func TestPrinterPrintStmtCase(t *testing.T) { func TestPrinterPrintStmtCaseEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtCase{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtCase{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Stmts: []ast.Vertex{}, - }) + } + n.Accept(p) - expected := "case $a:" + expected := "case$a:" actual := o.String() if expected != actual { @@ -2879,8 +3032,8 @@ func TestPrinterPrintStmtCaseEmpty(t *testing.T) { func TestPrinterPrintStmtCatch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtCatch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtCatch{ Types: []ast.Vertex{ &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("RuntimeException")}}}, @@ -2893,7 +3046,8 @@ func TestPrinterPrintStmtCatch(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$a")}, }}, }, - }) + } + n.Accept(p) expected := `catch(Exception|\RuntimeException$e){$a;}` actual := o.String() @@ -2906,26 +3060,30 @@ func TestPrinterPrintStmtCatch(t *testing.T) { func TestPrinterPrintStmtClassMethod(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtClassMethod{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - ReturnsRef: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtClassMethod{ + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, MethodName: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, - Var: &ast.Reference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, - }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, }, DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, &ast.Parameter{ - Var: &ast.Variadic{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, - }, + VariadicTkn: &token.Token{ + Value: []byte("..."), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -2939,9 +3097,10 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) - expected := `public function &foo(?int&$a=null,...$b):void{$a;}` + expected := `public function&foo(?int&$a=null,...$b):void{$a;}` actual := o.String() if expected != actual { @@ -2952,29 +3111,33 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtClassMethod{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtClassMethod{ Modifiers: []ast.Vertex{ &ast.Identifier{Value: []byte("public")}, &ast.Identifier{Value: []byte("static")}, }, - ReturnsRef: true, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, MethodName: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, - Var: &ast.Reference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, - }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, }, DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, }, &ast.Parameter{ - Var: &ast.Variadic{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, - }, + VariadicTkn: &token.Token{ + Value: []byte("..."), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -2982,9 +3145,10 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}, }, Stmt: &ast.StmtNop{}, - }) + } + n.Accept(p) - expected := `public static function &foo(?int&$a=null,...$b):void;` + expected := `public static function&foo(?int&$a=null,...$b):void;` actual := o.String() if expected != actual { @@ -2995,8 +3159,8 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { func TestPrinterPrintStmtClass(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtClass{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, ClassName: &ast.Identifier{Value: []byte("Foo")}, Extends: &ast.StmtClassExtends{ @@ -3022,7 +3186,8 @@ func TestPrinterPrintStmtClass(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `abstract class Foo extends Bar implements Baz,Quuz{public static const FOO='bar';}` actual := o.String() @@ -3035,20 +3200,18 @@ func TestPrinterPrintStmtClass(t *testing.T) { func TestPrinterPrintStmtAnonymousClass(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtClass{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, - }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, }, - &ast.Argument{ - Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, - }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -3072,9 +3235,10 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `abstract class($a,$b) extends Bar implements Baz,Quuz{public const FOO='bar';}` + expected := `abstract class($a,$b)extends Bar implements Baz,Quuz{public const FOO='bar';}` actual := o.String() if expected != actual { @@ -3085,8 +3249,8 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { func TestPrinterPrintStmtClassConstList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtClassConstList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtClassConstList{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, Consts: []ast.Vertex{ &ast.StmtConstant{ @@ -3098,7 +3262,8 @@ func TestPrinterPrintStmtClassConstList(t *testing.T) { Expr: &ast.ScalarString{Value: []byte("'b'")}, }, }, - }) + } + n.Accept(p) expected := `public const FOO='a',BAR='b';` actual := o.String() @@ -3111,8 +3276,8 @@ func TestPrinterPrintStmtClassConstList(t *testing.T) { func TestPrinterPrintStmtConstList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtConstList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtConstList{ Consts: []ast.Vertex{ &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("FOO")}, @@ -3123,7 +3288,8 @@ func TestPrinterPrintStmtConstList(t *testing.T) { Expr: &ast.ScalarString{Value: []byte("'b'")}, }, }, - }) + } + n.Accept(p) expected := `const FOO='a',BAR='b';` actual := o.String() @@ -3136,11 +3302,12 @@ func TestPrinterPrintStmtConstList(t *testing.T) { func TestPrinterPrintStmtConstant(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtConstant{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("FOO")}, Expr: &ast.ScalarString{Value: []byte("'BAR'")}, - }) + } + n.Accept(p) expected := "FOO='BAR'" actual := o.String() @@ -3153,12 +3320,13 @@ func TestPrinterPrintStmtConstant(t *testing.T) { func TestPrinterPrintStmtContinue(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtContinue{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtContinue{ Expr: &ast.ScalarLnumber{ Value: []byte("1"), }, - }) + } + n.Accept(p) expected := `continue 1;` actual := o.String() @@ -3171,8 +3339,8 @@ func TestPrinterPrintStmtContinue(t *testing.T) { func TestPrinterPrintStmtDeclareStmts(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtDeclare{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("FOO")}, @@ -3184,7 +3352,8 @@ func TestPrinterPrintStmtDeclareStmts(t *testing.T) { &ast.StmtNop{}, }, }, - }) + } + n.Accept(p) expected := `declare(FOO='bar'){;}` actual := o.String() @@ -3197,8 +3366,8 @@ func TestPrinterPrintStmtDeclareStmts(t *testing.T) { func TestPrinterPrintStmtDeclareExpr(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtDeclare{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("FOO")}, @@ -3206,7 +3375,8 @@ func TestPrinterPrintStmtDeclareExpr(t *testing.T) { }, }, Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, - }) + } + n.Accept(p) expected := `declare(FOO='bar')'bar';` actual := o.String() @@ -3219,8 +3389,8 @@ func TestPrinterPrintStmtDeclareExpr(t *testing.T) { func TestPrinterPrintStmtDeclareNop(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtDeclare{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("FOO")}, @@ -3228,7 +3398,8 @@ func TestPrinterPrintStmtDeclareNop(t *testing.T) { }, }, Stmt: &ast.StmtNop{}, - }) + } + n.Accept(p) expected := `declare(FOO='bar');` actual := o.String() @@ -3241,14 +3412,15 @@ func TestPrinterPrintStmtDeclareNop(t *testing.T) { func TestPrinterPrintStmtDefalut(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtDefault{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtDefault{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }}, }, - }) + } + n.Accept(p) expected := `default:$a;` actual := o.String() @@ -3261,10 +3433,11 @@ func TestPrinterPrintStmtDefalut(t *testing.T) { func TestPrinterPrintStmtDefalutEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtDefault{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtDefault{ Stmts: []ast.Vertex{}, - }) + } + n.Accept(p) expected := `default:` actual := o.String() @@ -3277,17 +3450,18 @@ func TestPrinterPrintStmtDefalutEmpty(t *testing.T) { func TestPrinterPrintStmtDo_Expression(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtDo{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtDo{ Cond: &ast.ScalarLnumber{Value: []byte("1")}, Stmt: &ast.StmtExpression{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, }, - }) + } + n.Accept(p) - expected := `do $a;while(1);` + expected := `do$a;while(1);` actual := o.String() if expected != actual { @@ -3298,8 +3472,8 @@ func TestPrinterPrintStmtDo_Expression(t *testing.T) { func TestPrinterPrintStmtDo_StmtList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtDo{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtDo{ Cond: &ast.ScalarLnumber{Value: []byte("1")}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -3308,9 +3482,10 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) - expected := `do {$a;}while(1);` + expected := `do{$a;}while(1);` actual := o.String() if expected != actual { @@ -3321,8 +3496,8 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { func TestPrinterPrintStmtEchoHtmlState(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.Root{ + p := visitor.NewPrinter(o) + n := &ast.Root{ Stmts: []ast.Vertex{ &ast.StmtEcho{ Exprs: []ast.Vertex{ @@ -3335,9 +3510,10 @@ func TestPrinterPrintStmtEchoHtmlState(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `$v){;}` + expected := `foreach($a as$k=>$v){;}` actual := o.String() if expected != actual { @@ -3593,16 +3780,19 @@ func TestPrinterPrintStmtForeach(t *testing.T) { func TestPrinterPrintStmtFunction(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtFunction{ - ReturnsRef: true, + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtFunction{ + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, FunctionName: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ - Var: &ast.Reference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, - }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$var")}, }, }, }, @@ -3612,9 +3802,10 @@ func TestPrinterPrintStmtFunction(t *testing.T) { Stmts: []ast.Vertex{ &ast.StmtNop{}, }, - }) + } + n.Accept(p) - expected := `function &foo(&$var):\Foo{;}` + expected := `function&foo(&$var):\Foo{;}` actual := o.String() if expected != actual { @@ -3625,8 +3816,8 @@ func TestPrinterPrintStmtFunction(t *testing.T) { func TestPrinterPrintStmtGlobal(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtGlobal{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtGlobal{ Vars: []ast.Vertex{ &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3635,9 +3826,10 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$b")}, }, }, - }) + } + n.Accept(p) - expected := `global $a,$b;` + expected := `global$a,$b;` actual := o.String() if expected != actual { @@ -3648,10 +3840,11 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { func TestPrinterPrintStmtGoto(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtGoto{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtGoto{ Label: &ast.Identifier{Value: []byte("FOO")}, - }) + } + n.Accept(p) expected := `goto FOO;` actual := o.String() @@ -3664,8 +3857,9 @@ func TestPrinterPrintStmtGoto(t *testing.T) { func TestPrinterPrintHaltCompiler(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtHaltCompiler{}) + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtHaltCompiler{} + n.Accept(p) expected := `__halt_compiler();` actual := o.String() @@ -3678,8 +3872,8 @@ func TestPrinterPrintHaltCompiler(t *testing.T) { func TestPrinterPrintIfExpression(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtIf{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, @@ -3717,9 +3911,10 @@ func TestPrinterPrintIfExpression(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `if($a)$b;elseif($c){$d;}elseif($e);else $f;` + expected := `if($a)$b;elseif($c){$d;}elseif($e);else$f;` actual := o.String() if expected != actual { @@ -3730,8 +3925,8 @@ func TestPrinterPrintIfExpression(t *testing.T) { func TestPrinterPrintIfStmtList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtIf{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, @@ -3744,7 +3939,8 @@ func TestPrinterPrintIfStmtList(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `if($a){$b;}` actual := o.String() @@ -3757,13 +3953,14 @@ func TestPrinterPrintIfStmtList(t *testing.T) { func TestPrinterPrintIfNop(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtIf{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtNop{}, - }) + } + n.Accept(p) expected := `if($a);` actual := o.String() @@ -3776,14 +3973,15 @@ func TestPrinterPrintIfNop(t *testing.T) { func TestPrinterPrintInlineHtml(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.Root{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.Root{ Stmts: []ast.Vertex{ &ast.StmtInlineHtml{ Value: []byte("test"), }, }, - }) + } + n.Accept(p) expected := `test` actual := o.String() @@ -3796,8 +3994,8 @@ func TestPrinterPrintInlineHtml(t *testing.T) { func TestPrinterPrintInterface(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtInterface{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtInterface{ InterfaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Extends: &ast.StmtInterfaceExtends{ InterfaceNames: []ast.Vertex{ @@ -3819,7 +4017,8 @@ func TestPrinterPrintInterface(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `interface Foo extends Bar,Baz{public function foo(){$a;}}` actual := o.String() @@ -3832,10 +4031,11 @@ func TestPrinterPrintInterface(t *testing.T) { func TestPrinterPrintLabel(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtLabel{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtLabel{ LabelName: &ast.Identifier{Value: []byte("FOO")}, - }) + } + n.Accept(p) expected := `FOO:` actual := o.String() @@ -3848,10 +4048,11 @@ func TestPrinterPrintLabel(t *testing.T) { func TestPrinterPrintNamespace(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtNamespace{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtNamespace{ Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - }) + } + n.Accept(p) expected := `namespace Foo;` actual := o.String() @@ -3864,15 +4065,16 @@ func TestPrinterPrintNamespace(t *testing.T) { func TestPrinterPrintNamespaceWithStmts(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtNamespace{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtNamespace{ Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }}, }, - }) + } + n.Accept(p) expected := `namespace Foo{$a;}` actual := o.String() @@ -3885,8 +4087,9 @@ func TestPrinterPrintNamespaceWithStmts(t *testing.T) { func TestPrinterPrintNop(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtNop{}) + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtNop{} + n.Accept(p) expected := `;` actual := o.String() @@ -3899,8 +4102,8 @@ func TestPrinterPrintNop(t *testing.T) { func TestPrinterPrintPropertyList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtPropertyList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtPropertyList{ Modifiers: []ast.Vertex{ &ast.Identifier{Value: []byte("public")}, &ast.Identifier{Value: []byte("static")}, @@ -3925,9 +4128,10 @@ func TestPrinterPrintPropertyList(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `public static Foo $a='a',$b;` + expected := `public static Foo$a='a',$b;` actual := o.String() if expected != actual { @@ -3938,13 +4142,14 @@ func TestPrinterPrintPropertyList(t *testing.T) { func TestPrinterPrintProperty(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtProperty{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtProperty{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ScalarLnumber{Value: []byte("1")}, - }) + } + n.Accept(p) expected := `$a=1` actual := o.String() @@ -3957,10 +4162,11 @@ func TestPrinterPrintProperty(t *testing.T) { func TestPrinterPrintReturn(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtReturn{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtReturn{ Expr: &ast.ScalarLnumber{Value: []byte("1")}, - }) + } + n.Accept(p) expected := `return 1;` actual := o.String() @@ -3973,13 +4179,14 @@ func TestPrinterPrintReturn(t *testing.T) { func TestPrinterPrintStaticVar(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtStaticVar{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtStaticVar{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ScalarLnumber{Value: []byte("1")}, - }) + } + n.Accept(p) expected := `$a=1` actual := o.String() @@ -3992,8 +4199,8 @@ func TestPrinterPrintStaticVar(t *testing.T) { func TestPrinterPrintStatic(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtStatic{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ Var: &ast.ExprVariable{ @@ -4006,9 +4213,10 @@ func TestPrinterPrintStatic(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `static $a,$b;` + expected := `static$a,$b;` actual := o.String() if expected != actual { @@ -4019,8 +4227,8 @@ func TestPrinterPrintStatic(t *testing.T) { func TestPrinterPrintStmtList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtStmtList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4029,7 +4237,8 @@ func TestPrinterPrintStmtList(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$b")}, }}, }, - }) + } + n.Accept(p) expected := `{$a;$b;}` actual := o.String() @@ -4042,8 +4251,8 @@ func TestPrinterPrintStmtList(t *testing.T) { func TestPrinterPrintStmtListNested(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtStmtList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4063,7 +4272,8 @@ func TestPrinterPrintStmtListNested(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `{$a;{$b;{$c;}}}` actual := o.String() @@ -4076,8 +4286,8 @@ func TestPrinterPrintStmtListNested(t *testing.T) { func TestPrinterPrintStmtSwitch(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtSwitch{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtSwitch{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, @@ -4099,9 +4309,10 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { }, }, }, - }) + } + n.Accept(p) - expected := `switch($var){case 'a':$a;case 'b':$b;}` + expected := `switch($var){case'a':$a;case'b':$b;}` actual := o.String() if expected != actual { @@ -4112,14 +4323,15 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { func TestPrinterPrintStmtThrow(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtThrow{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtThrow{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, - }) + } + n.Accept(p) - expected := `throw $var;` + expected := `throw$var;` actual := o.String() if expected != actual { @@ -4130,8 +4342,8 @@ func TestPrinterPrintStmtThrow(t *testing.T) { func TestPrinterPrintStmtTraitAdaptationList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTraitAdaptationList{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTraitAdaptationList{ Adaptations: []ast.Vertex{ &ast.StmtTraitUseAlias{ Ref: &ast.StmtTraitMethodRef{ @@ -4141,7 +4353,8 @@ func TestPrinterPrintStmtTraitAdaptationList(t *testing.T) { Alias: &ast.Identifier{Value: []byte("b")}, }, }, - }) + } + n.Accept(p) expected := `{Foo::a as b;}` actual := o.String() @@ -4154,10 +4367,11 @@ func TestPrinterPrintStmtTraitAdaptationList(t *testing.T) { func TestPrinterPrintStmtTraitMethodRef(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTraitMethodRef{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTraitMethodRef{ Method: &ast.Identifier{Value: []byte("a")}, - }) + } + n.Accept(p) expected := `a` actual := o.String() @@ -4170,11 +4384,12 @@ func TestPrinterPrintStmtTraitMethodRef(t *testing.T) { func TestPrinterPrintStmtTraitMethodRefFull(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTraitMethodRef{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTraitMethodRef{ Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, - }) + } + n.Accept(p) expected := `Foo::a` actual := o.String() @@ -4187,15 +4402,16 @@ func TestPrinterPrintStmtTraitMethodRefFull(t *testing.T) { func TestPrinterPrintStmtTraitUseAlias(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTraitUseAlias{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTraitUseAlias{ Ref: &ast.StmtTraitMethodRef{ Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, }, Modifier: &ast.Identifier{Value: []byte("public")}, Alias: &ast.Identifier{Value: []byte("b")}, - }) + } + n.Accept(p) expected := `Foo::a as public b;` actual := o.String() @@ -4208,8 +4424,8 @@ func TestPrinterPrintStmtTraitUseAlias(t *testing.T) { func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTraitUsePrecedence{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTraitUsePrecedence{ Ref: &ast.StmtTraitMethodRef{ Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, @@ -4218,7 +4434,8 @@ func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, }, - }) + } + n.Accept(p) expected := `Foo::a insteadof Bar,Baz;` actual := o.String() @@ -4231,14 +4448,15 @@ func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { func TestPrinterPrintStmtTraitUse(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTraitUse{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - TraitAdaptationList: &ast.StmtNop{}, - }) + Adaptations: &ast.StmtNop{}, + } + n.Accept(p) expected := `use Foo,Bar;` actual := o.String() @@ -4251,13 +4469,13 @@ func TestPrinterPrintStmtTraitUse(t *testing.T) { func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTraitUse{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Adaptations: &ast.StmtTraitAdaptationList{ Adaptations: []ast.Vertex{ &ast.StmtTraitUseAlias{ Ref: &ast.StmtTraitMethodRef{ @@ -4268,7 +4486,8 @@ func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `use Foo,Bar{Foo::a as b;}` actual := o.String() @@ -4281,8 +4500,8 @@ func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { func TestPrinterPrintTrait(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTrait{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTrait{ TraitName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Stmts: []ast.Vertex{ &ast.StmtClassMethod{ @@ -4298,7 +4517,8 @@ func TestPrinterPrintTrait(t *testing.T) { }, }, }, - }) + } + n.Accept(p) expected := `trait Foo{public function foo(){$a;}}` actual := o.String() @@ -4311,8 +4531,8 @@ func TestPrinterPrintTrait(t *testing.T) { func TestPrinterPrintStmtTry(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtTry{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtTry{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4339,7 +4559,8 @@ func TestPrinterPrintStmtTry(t *testing.T) { &ast.StmtNop{}, }, }, - }) + } + n.Accept(p) expected := `try{$a;}catch(Exception|\RuntimeException$e){$b;}finally{;}` actual := o.String() @@ -4352,8 +4573,8 @@ func TestPrinterPrintStmtTry(t *testing.T) { func TestPrinterPrintStmtUnset(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtUnset{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtUnset{ Vars: []ast.Vertex{ &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4362,7 +4583,8 @@ func TestPrinterPrintStmtUnset(t *testing.T) { VarName: &ast.Identifier{Value: []byte("$b")}, }, }, - }) + } + n.Accept(p) expected := `unset($a,$b);` actual := o.String() @@ -4375,8 +4597,8 @@ func TestPrinterPrintStmtUnset(t *testing.T) { func TestPrinterPrintUse(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtUse{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtUse{ Type: &ast.Identifier{Value: []byte("function")}, UseDeclarations: []ast.Vertex{ &ast.StmtUseDeclaration{ @@ -4387,7 +4609,8 @@ func TestPrinterPrintUse(t *testing.T) { Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, }, }, - }) + } + n.Accept(p) expected := `use function Foo as Bar,Baz;` actual := o.String() @@ -4400,8 +4623,8 @@ func TestPrinterPrintUse(t *testing.T) { func TestPrinterPrintStmtGroupUse(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtGroupUse{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtGroupUse{ Type: &ast.Identifier{Value: []byte("function")}, Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, UseDeclarations: []ast.Vertex{ @@ -4413,7 +4636,8 @@ func TestPrinterPrintStmtGroupUse(t *testing.T) { Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, }, }, - }) + } + n.Accept(p) expected := `use function Foo\{Foo as Bar,Baz};` actual := o.String() @@ -4426,12 +4650,13 @@ func TestPrinterPrintStmtGroupUse(t *testing.T) { func TestPrinterPrintUseDeclaration(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtUseDeclaration{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtUseDeclaration{ Type: &ast.Identifier{Value: []byte("function")}, Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Alias: &ast.Identifier{Value: []byte("Bar")}, - }) + } + n.Accept(p) expected := `function Foo as Bar` actual := o.String() @@ -4444,8 +4669,8 @@ func TestPrinterPrintUseDeclaration(t *testing.T) { func TestPrinterPrintWhileStmtList(t *testing.T) { o := bytes.NewBufferString("") - p := printer.NewPrinter(o) - p.Print(&ast.StmtWhile{ + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtWhile{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, }, @@ -4456,7 +4681,8 @@ func TestPrinterPrintWhileStmtList(t *testing.T) { }}, }, }, - }) + } + n.Accept(p) expected := `while($a){$a;}` actual := o.String() diff --git a/pkg/printer/printer.go b/pkg/printer/printer.go deleted file mode 100644 index 026708e..0000000 --- a/pkg/printer/printer.go +++ /dev/null @@ -1,2838 +0,0 @@ -package printer - -import ( - "bytes" - "io" - "strings" - - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/token" -) - -type printerState int - -const ( - PhpState printerState = iota - HtmlState -) - -type Printer struct { - w io.Writer - s printerState - bufStart string - lastWrite []byte -} - -// NewPrinter - Constructor for Printer -func NewPrinter(w io.Writer) *Printer { - return &Printer{ - w: w, - } -} - -func (p *Printer) SetState(s printerState) { - p.s = s -} - -func (p *Printer) write(b []byte) { - p.lastWrite = b - p.w.Write(b) -} - -func (p *Printer) Print(n ast.Vertex) { - _, isRoot := n.(*ast.Root) - _, isInlineHtml := n.(*ast.StmtInlineHtml) - if p.s == HtmlState && !isInlineHtml && !isRoot { - if n.GetNode().Tokens.IsEmpty() { - p.bufStart = " 0 { - p.write([]byte(glue)) - } - - p.Print(n) - } -} - -func (p *Printer) joinPrintRefactored(glue string, nn []ast.Vertex) { - for k, n := range nn { - if k > 0 { - p.bufStart = glue - } - - p.Print(n) - } -} - -func (p *Printer) printSeparatedList(nodeList []ast.Vertex, separatorList []*token.Token, def string) { - var separators []*token.Token - - if cap(separatorList) >= len(nodeList) { - separators = separatorList[:len(nodeList)] - } else { - separators = make([]*token.Token, len(nodeList)) - copy(separators, separatorList) - } - - for k, n := range nodeList { - p.Print(n) - if k < len(nodeList)-1 { - p.printToken(separators[k], def) - } else { - p.printToken(separators[k], "") - } - } -} - -func (p *Printer) printNodes(nn []ast.Vertex) { - for _, n := range nn { - p.Print(n) - } -} - -func (p *Printer) printFreeFloatingOrDefault(n ast.Vertex, pos token.Position, def string) { - if n == nil { - return - } - - if len(n.GetNode().Tokens[pos]) == 0 { - p.write([]byte(def)) - return - } - - for _, m := range n.GetNode().Tokens[pos] { - p.write(m.Value) - } -} - -func (p *Printer) printToken(t *token.Token, def string) { - if t != nil { - p.write(t.Skipped) - p.write(t.Value) - p.bufStart = "" - return - } - - if def != "" { - p.write([]byte(p.bufStart)) - p.bufStart = "" - - p.write([]byte(def)) - return - } -} - -func (p *Printer) printFreeFloating(n ast.Vertex, pos token.Position) { - if n == nil { - return - } - - for _, m := range n.GetNode().Tokens[pos] { - p.write(m.Value) - } -} - -func (p *Printer) printNode(n ast.Vertex) { - switch n := n.(type) { - - // node - - case *ast.Root: - p.printNodeRoot(n) - case *ast.Identifier: - p.printNodeIdentifier(n) - case *ast.Parameter: - p.printNodeParameter(n) - case *ast.Nullable: - p.printNodeNullable(n) - case *ast.Argument: - p.printNodeArgument(n) - - // name - - case *ast.NameNamePart: - p.printNameNamePart(n) - case *ast.NameName: - p.printNameName(n) - case *ast.NameFullyQualified: - p.printNameFullyQualified(n) - case *ast.NameRelative: - p.printNameRelative(n) - - // scalar - - case *ast.ScalarLnumber: - p.printScalarLNumber(n) - case *ast.ScalarDnumber: - p.printScalarDNumber(n) - case *ast.ScalarString: - p.printScalarString(n) - case *ast.ScalarEncapsedStringPart: - p.printScalarEncapsedStringPart(n) - case *ast.ScalarEncapsed: - p.printScalarEncapsed(n) - case *ast.ScalarHeredoc: - p.printScalarHeredoc(n) - case *ast.ScalarMagicConstant: - p.printScalarMagicConstant(n) - - // assign - - case *ast.ExprAssign: - p.printAssign(n) - case *ast.ExprAssignReference: - p.printAssignReference(n) - case *ast.ExprAssignBitwiseAnd: - p.printAssignBitwiseAnd(n) - case *ast.ExprAssignBitwiseOr: - p.printAssignBitwiseOr(n) - case *ast.ExprAssignBitwiseXor: - p.printAssignBitwiseXor(n) - case *ast.ExprAssignCoalesce: - p.printAssignCoalesce(n) - case *ast.ExprAssignConcat: - p.printAssignConcat(n) - case *ast.ExprAssignDiv: - p.printAssignDiv(n) - case *ast.ExprAssignMinus: - p.printAssignMinus(n) - case *ast.ExprAssignMod: - p.printAssignMod(n) - case *ast.ExprAssignMul: - p.printAssignMul(n) - case *ast.ExprAssignPlus: - p.printAssignPlus(n) - case *ast.ExprAssignPow: - p.printAssignPow(n) - case *ast.ExprAssignShiftLeft: - p.printAssignShiftLeft(n) - case *ast.ExprAssignShiftRight: - p.printAssignShiftRight(n) - - // binary - - case *ast.ExprBinaryBitwiseAnd: - p.printBinaryBitwiseAnd(n) - case *ast.ExprBinaryBitwiseOr: - p.printBinaryBitwiseOr(n) - case *ast.ExprBinaryBitwiseXor: - p.printBinaryBitwiseXor(n) - case *ast.ExprBinaryBooleanAnd: - p.printBinaryBooleanAnd(n) - case *ast.ExprBinaryBooleanOr: - p.printBinaryBooleanOr(n) - case *ast.ExprBinaryCoalesce: - p.printBinaryCoalesce(n) - case *ast.ExprBinaryConcat: - p.printBinaryConcat(n) - case *ast.ExprBinaryDiv: - p.printBinaryDiv(n) - case *ast.ExprBinaryEqual: - p.printBinaryEqual(n) - case *ast.ExprBinaryGreaterOrEqual: - p.printBinaryGreaterOrEqual(n) - case *ast.ExprBinaryGreater: - p.printBinaryGreater(n) - case *ast.ExprBinaryIdentical: - p.printBinaryIdentical(n) - case *ast.ExprBinaryLogicalAnd: - p.printBinaryLogicalAnd(n) - case *ast.ExprBinaryLogicalOr: - p.printBinaryLogicalOr(n) - case *ast.ExprBinaryLogicalXor: - p.printBinaryLogicalXor(n) - case *ast.ExprBinaryMinus: - p.printBinaryMinus(n) - case *ast.ExprBinaryMod: - p.printBinaryMod(n) - case *ast.ExprBinaryMul: - p.printBinaryMul(n) - case *ast.ExprBinaryNotEqual: - p.printBinaryNotEqual(n) - case *ast.ExprBinaryNotIdentical: - p.printBinaryNotIdentical(n) - case *ast.ExprBinaryPlus: - p.printBinaryPlus(n) - case *ast.ExprBinaryPow: - p.printBinaryPow(n) - case *ast.ExprBinaryShiftLeft: - p.printBinaryShiftLeft(n) - case *ast.ExprBinaryShiftRight: - p.printBinaryShiftRight(n) - case *ast.ExprBinarySmallerOrEqual: - p.printBinarySmallerOrEqual(n) - case *ast.ExprBinarySmaller: - p.printBinarySmaller(n) - case *ast.ExprBinarySpaceship: - p.printBinarySpaceship(n) - - // cast - - case *ast.ExprCastArray: - p.printArray(n) - case *ast.ExprCastBool: - p.printBool(n) - case *ast.ExprCastDouble: - p.printDouble(n) - case *ast.ExprCastInt: - p.printInt(n) - case *ast.ExprCastObject: - p.printObject(n) - case *ast.ExprCastString: - p.printString(n) - case *ast.ExprCastUnset: - p.printUnset(n) - - // expr - - case *ast.ExprArrayDimFetch: - p.printExprArrayDimFetch(n) - case *ast.ExprArrayItem: - p.printExprArrayItem(n) - case *ast.ExprArray: - p.printExprArray(n) - case *ast.ExprArrowFunction: - p.printExprArrowFunction(n) - case *ast.ExprBitwiseNot: - p.printExprBitwiseNot(n) - case *ast.ExprBooleanNot: - p.printExprBooleanNot(n) - case *ast.ExprClassConstFetch: - p.printExprClassConstFetch(n) - case *ast.ExprClone: - p.printExprClone(n) - case *ast.ExprClosureUse: - p.printExprClosureUse(n) - case *ast.ExprClosure: - p.printExprClosure(n) - case *ast.ExprConstFetch: - p.printExprConstFetch(n) - case *ast.ExprEmpty: - p.printExprEmpty(n) - case *ast.ExprErrorSuppress: - p.printExprErrorSuppress(n) - case *ast.ExprEval: - p.printExprEval(n) - case *ast.ExprExit: - p.printExprExit(n) - case *ast.ExprFunctionCall: - p.printExprFunctionCall(n) - case *ast.ExprInclude: - p.printExprInclude(n) - case *ast.ExprIncludeOnce: - p.printExprIncludeOnce(n) - case *ast.ExprInstanceOf: - p.printExprInstanceOf(n) - case *ast.ExprIsset: - p.printExprIsset(n) - case *ast.ExprList: - p.printExprList(n) - case *ast.ExprMethodCall: - p.printExprMethodCall(n) - case *ast.ExprNew: - p.printExprNew(n) - case *ast.ExprPostDec: - p.printExprPostDec(n) - case *ast.ExprPostInc: - p.printExprPostInc(n) - case *ast.ExprPreDec: - p.printExprPreDec(n) - case *ast.ExprPreInc: - p.printExprPreInc(n) - case *ast.ExprPrint: - p.printExprPrint(n) - case *ast.ExprPropertyFetch: - p.printExprPropertyFetch(n) - case *ast.ExprReference: - p.printExprReference(n) - case *ast.ExprRequire: - p.printExprRequire(n) - case *ast.ExprRequireOnce: - p.printExprRequireOnce(n) - case *ast.ExprShellExec: - p.printExprShellExec(n) - case *ast.ExprStaticCall: - p.printExprStaticCall(n) - case *ast.ExprStaticPropertyFetch: - p.printExprStaticPropertyFetch(n) - case *ast.ExprTernary: - p.printExprTernary(n) - case *ast.ExprUnaryMinus: - p.printExprUnaryMinus(n) - case *ast.ExprUnaryPlus: - p.printExprUnaryPlus(n) - case *ast.ExprVariable: - p.printExprVariable(n) - case *ast.ExprYieldFrom: - p.printExprYieldFrom(n) - case *ast.ExprYield: - p.printExprYield(n) - - // stmt - - case *ast.StmtBreak: - p.printStmtBreak(n) - case *ast.StmtCase: - p.printStmtCase(n) - case *ast.StmtCatch: - p.printStmtCatch(n) - case *ast.StmtClassMethod: - p.printStmtClassMethod(n) - case *ast.StmtClass: - p.printStmtClass(n) - case *ast.StmtClassConstList: - p.printStmtClassConstList(n) - case *ast.StmtConstList: - p.printStmtConstList(n) - case *ast.StmtConstant: - p.printStmtConstant(n) - case *ast.StmtContinue: - p.printStmtContinue(n) - case *ast.StmtDeclare: - p.printStmtDeclare(n) - case *ast.StmtDefault: - p.printStmtDefault(n) - case *ast.StmtDo: - p.printStmtDo(n) - case *ast.StmtEcho: - p.printStmtEcho(n) - case *ast.StmtElseIf: - p.printStmtElseif(n) - case *ast.StmtElse: - p.printStmtElse(n) - case *ast.StmtExpression: - p.printStmtExpression(n) - case *ast.StmtFinally: - p.printStmtFinally(n) - case *ast.StmtFor: - p.printStmtFor(n) - case *ast.StmtForeach: - p.printStmtForeach(n) - case *ast.StmtFunction: - p.printStmtFunction(n) - case *ast.StmtGlobal: - p.printStmtGlobal(n) - case *ast.StmtGoto: - p.printStmtGoto(n) - case *ast.StmtHaltCompiler: - p.printStmtHaltCompiler(n) - case *ast.StmtIf: - p.printStmtIf(n) - case *ast.StmtInlineHtml: - p.printStmtInlineHTML(n) - case *ast.StmtInterface: - p.printStmtInterface(n) - case *ast.StmtLabel: - p.printStmtLabel(n) - case *ast.StmtNamespace: - p.printStmtNamespace(n) - case *ast.StmtNop: - p.printStmtNop(n) - case *ast.StmtPropertyList: - p.printStmtPropertyList(n) - case *ast.StmtProperty: - p.printStmtProperty(n) - case *ast.StmtReturn: - p.printStmtReturn(n) - case *ast.StmtStaticVar: - p.printStmtStaticVar(n) - case *ast.StmtStatic: - p.printStmtStatic(n) - case *ast.StmtStmtList: - p.printStmtStmtList(n) - case *ast.StmtSwitch: - p.printStmtSwitch(n) - case *ast.StmtThrow: - p.printStmtThrow(n) - case *ast.StmtTraitAdaptationList: - p.printStmtTraitAdaptationList(n) - case *ast.StmtTraitMethodRef: - p.printStmtTraitMethodRef(n) - case *ast.StmtTraitUseAlias: - p.printStmtTraitUseAlias(n) - case *ast.StmtTraitUsePrecedence: - p.printStmtTraitUsePrecedence(n) - case *ast.StmtTraitUse: - p.printStmtTraitUse(n) - case *ast.StmtTrait: - p.printStmtTrait(n) - case *ast.StmtTry: - p.printStmtTry(n) - case *ast.StmtUnset: - p.printStmtUnset(n) - case *ast.StmtUse: - p.printStmtUse(n) - case *ast.StmtGroupUse: - p.printStmtGroupUse(n) - case *ast.StmtUseDeclaration: - p.printStmtUseDeclaration(n) - case *ast.StmtWhile: - p.printStmtWhile(n) - case *ast.ParserBrackets: - p.printParserBrackets(n) - } -} - -// node - -func (p *Printer) printNodeRoot(n ast.Vertex) { - nn := n.(*ast.Root) - p.SetState(HtmlState) - p.printFreeFloating(nn, token.Start) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printNodeIdentifier(n ast.Vertex) { - nn := n.(*ast.Identifier) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write(nn.Value) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printNodeParameter(n ast.Vertex) { - nn := n.(*ast.Parameter) - p.printFreeFloating(nn, token.Start) - - if nn.Type != nil { - p.Print(nn.Type) - } - - p.Print(nn.Var) - - if nn.DefaultValue != nil { - p.write([]byte("=")) - p.Print(nn.DefaultValue) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printNodeNullable(n ast.Vertex) { - nn := n.(*ast.Nullable) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("?")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printNodeArgument(n ast.Vertex) { - nn := n.(*ast.Argument) - p.printFreeFloating(nn, token.Start) - - if nn.AmpersandTkn != nil { - p.write([]byte("&")) - } - p.printFreeFloating(nn, token.Ampersand) - - if nn.VariadicTkn != nil { - p.write([]byte("...")) - } - - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -// name - -func (p *Printer) printNameNamePart(n *ast.NameNamePart) { - p.printToken(n.StringTkn, string(n.Value)) -} - -func (p *Printer) printNameName(n *ast.NameName) { - p.printFreeFloating(n, token.Start) - - p.joinPrintRefactored("\\", n.Parts) -} - -func (p *Printer) printNameFullyQualified(n *ast.NameFullyQualified) { - p.printFreeFloating(n, token.Start) - p.printToken(n.NsSeparatorTkn, "\\") - - p.joinPrintRefactored("\\", n.Parts) -} - -func (p *Printer) printNameRelative(n *ast.NameRelative) { - p.printFreeFloating(n, token.Start) - p.printToken(n.NsTkn, "namespace") - p.printToken(n.NsSeparatorTkn, "\\") - - p.joinPrintRefactored("\\", n.Parts) -} - -// scalar - -func (p *Printer) printScalarLNumber(n ast.Vertex) { - nn := n.(*ast.ScalarLnumber) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write(nn.Value) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printScalarDNumber(n ast.Vertex) { - nn := n.(*ast.ScalarDnumber) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write(nn.Value) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printScalarString(n ast.Vertex) { - nn := n.(*ast.ScalarString) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write(nn.Value) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printScalarEncapsedStringPart(n ast.Vertex) { - nn := n.(*ast.ScalarEncapsedStringPart) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write(nn.Value) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printScalarEncapsed(n ast.Vertex) { - nn := n.(*ast.ScalarEncapsed) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write([]byte("\"")) - for _, part := range nn.Parts { - switch part.(type) { - case *ast.ExprArrayDimFetch: - s := part.GetNode().Tokens[token.Start] - if len(s) > 0 && string(s[0].Value) == "${" { - p.printExprArrayDimFetchWithoutLeadingDollar(part) - } else { - p.Print(part) - } - case *ast.ExprVariable: - s := part.GetNode().Tokens[token.Start] - if len(s) > 0 && string(s[0].Value) == "${" { - p.printExprVariableWithoutLeadingDollar(part) - } else { - p.Print(part) - } - default: - p.Print(part) - } - } - p.write([]byte("\"")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printScalarHeredoc(n ast.Vertex) { - nn := n.(*ast.ScalarHeredoc) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write(nn.OpenHeredocTkn.Value) - - for _, part := range nn.Parts { - switch part.(type) { - case *ast.ExprArrayDimFetch: - s := part.GetNode().Tokens[token.Start] - if len(s) > 0 && string(s[0].Value) == "${" { - p.printExprArrayDimFetchWithoutLeadingDollar(part) - } else { - p.Print(part) - } - case *ast.ExprVariable: - s := part.GetNode().Tokens[token.Start] - if len(s) > 0 && string(s[0].Value) == "${" { - p.printExprVariableWithoutLeadingDollar(part) - } else { - p.Print(part) - } - default: - p.Print(part) - } - } - - p.write([]byte(strings.Trim(string(nn.OpenHeredocTkn.Value), "<\"'\n"))) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printScalarMagicConstant(n ast.Vertex) { - nn := n.(*ast.ScalarMagicConstant) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - p.write(nn.Value) - - p.printFreeFloating(nn, token.End) -} - -// Assign - -func (p *Printer) printAssign(n ast.Vertex) { - nn := n.(*ast.ExprAssign) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignReference(n ast.Vertex) { - nn := n.(*ast.ExprAssignReference) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("=")) - p.printFreeFloating(nn, token.Equal) - p.write([]byte("&")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignBitwiseAnd(n ast.Vertex) { - nn := n.(*ast.ExprAssignBitwiseAnd) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("&")) - p.write([]byte("=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignBitwiseOr(n ast.Vertex) { - nn := n.(*ast.ExprAssignBitwiseOr) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("|=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignBitwiseXor(n ast.Vertex) { - nn := n.(*ast.ExprAssignBitwiseXor) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("^=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignCoalesce(n ast.Vertex) { - nn := n.(*ast.ExprAssignCoalesce) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("??=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignConcat(n ast.Vertex) { - nn := n.(*ast.ExprAssignConcat) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte(".=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignDiv(n ast.Vertex) { - nn := n.(*ast.ExprAssignDiv) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("/=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignMinus(n ast.Vertex) { - nn := n.(*ast.ExprAssignMinus) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("-=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignMod(n ast.Vertex) { - nn := n.(*ast.ExprAssignMod) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("%=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignMul(n ast.Vertex) { - nn := n.(*ast.ExprAssignMul) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("*=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignPlus(n ast.Vertex) { - nn := n.(*ast.ExprAssignPlus) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("+=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignPow(n ast.Vertex) { - nn := n.(*ast.ExprAssignPow) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("**=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignShiftLeft(n ast.Vertex) { - nn := n.(*ast.ExprAssignShiftLeft) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("<<=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printAssignShiftRight(n ast.Vertex) { - nn := n.(*ast.ExprAssignShiftRight) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte(">>=")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -// binary - -func (p *Printer) printBinaryBitwiseAnd(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBitwiseAnd) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("&")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryBitwiseOr(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBitwiseOr) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("|")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryBitwiseXor(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBitwiseXor) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("^")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryBooleanAnd(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBooleanAnd) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("&&")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryBooleanOr(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBooleanOr) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("||")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryCoalesce(n ast.Vertex) { - nn := n.(*ast.ExprBinaryCoalesce) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("??")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryConcat(n ast.Vertex) { - nn := n.(*ast.ExprBinaryConcat) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte(".")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryDiv(n ast.Vertex) { - nn := n.(*ast.ExprBinaryDiv) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("/")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinaryEqual) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("==")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryGreaterOrEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinaryGreaterOrEqual) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte(">=")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryGreater(n ast.Vertex) { - nn := n.(*ast.ExprBinaryGreater) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte(">")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryIdentical(n ast.Vertex) { - nn := n.(*ast.ExprBinaryIdentical) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("===")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryLogicalAnd(n ast.Vertex) { - nn := n.(*ast.ExprBinaryLogicalAnd) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("and")) - if nn.Right.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryLogicalOr(n ast.Vertex) { - nn := n.(*ast.ExprBinaryLogicalOr) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("or")) - if nn.Right.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryLogicalXor(n ast.Vertex) { - nn := n.(*ast.ExprBinaryLogicalXor) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("xor")) - if nn.Right.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryMinus(n ast.Vertex) { - nn := n.(*ast.ExprBinaryMinus) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("-")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryMod(n ast.Vertex) { - nn := n.(*ast.ExprBinaryMod) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("%")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryMul(n ast.Vertex) { - nn := n.(*ast.ExprBinaryMul) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("*")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryNotEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinaryNotEqual) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.printFreeFloating(nn, token.Equal) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("!=")) - } - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryNotIdentical(n ast.Vertex) { - nn := n.(*ast.ExprBinaryNotIdentical) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("!==")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryPlus(n ast.Vertex) { - nn := n.(*ast.ExprBinaryPlus) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("+")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryPow(n ast.Vertex) { - nn := n.(*ast.ExprBinaryPow) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("**")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryShiftLeft(n ast.Vertex) { - nn := n.(*ast.ExprBinaryShiftLeft) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("<<")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinaryShiftRight(n ast.Vertex) { - nn := n.(*ast.ExprBinaryShiftRight) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte(">>")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinarySmallerOrEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinarySmallerOrEqual) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("<=")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinarySmaller(n ast.Vertex) { - nn := n.(*ast.ExprBinarySmaller) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("<")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBinarySpaceship(n ast.Vertex) { - nn := n.(*ast.ExprBinarySpaceship) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Left) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("<=>")) - p.Print(nn.Right) - - p.printFreeFloating(nn, token.End) -} - -// cast - -func (p *Printer) printArray(n ast.Vertex) { - nn := n.(*ast.ExprCastArray) - p.printFreeFloating(nn, token.Start) - - p.printFreeFloating(nn, token.Cast) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("(array)")) - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printBool(n ast.Vertex) { - nn := n.(*ast.ExprCastBool) - p.printFreeFloating(nn, token.Start) - - p.printFreeFloating(nn, token.Cast) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("(boolean)")) - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printDouble(n ast.Vertex) { - nn := n.(*ast.ExprCastDouble) - p.printFreeFloating(nn, token.Start) - - p.printFreeFloating(nn, token.Cast) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("(float)")) - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printInt(n ast.Vertex) { - nn := n.(*ast.ExprCastInt) - p.printFreeFloating(nn, token.Start) - - p.printFreeFloating(nn, token.Cast) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("(integer)")) - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printObject(n ast.Vertex) { - nn := n.(*ast.ExprCastObject) - p.printFreeFloating(nn, token.Start) - - p.printFreeFloating(nn, token.Cast) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("(object)")) - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printString(n ast.Vertex) { - nn := n.(*ast.ExprCastString) - p.printFreeFloating(nn, token.Start) - - p.printFreeFloating(nn, token.Cast) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("(string)")) - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printUnset(n ast.Vertex) { - nn := n.(*ast.ExprCastUnset) - p.printFreeFloating(nn, token.Start) - - p.printFreeFloating(nn, token.Cast) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("(unset)")) - } - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -// expr - -func (p *Printer) printExprArrayDimFetch(n ast.Vertex) { - nn := n.(*ast.ExprArrayDimFetch) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("[")) - } - p.Print(nn.Dim) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("]")) - } - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprArrayDimFetchWithoutLeadingDollar(n ast.Vertex) { - nn := n.(*ast.ExprArrayDimFetch) - p.printFreeFloating(nn, token.Start) - p.printExprVariableWithoutLeadingDollar(nn.Var) - p.printFreeFloating(nn, token.Var) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("[")) - } - p.Print(nn.Dim) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte("]")) - } - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprArrayItem(n ast.Vertex) { - nn := n.(*ast.ExprArrayItem) - p.printFreeFloating(nn, token.Start) - - if nn.EllipsisTkn != nil { - p.write([]byte("...")) - } - - if nn.Key != nil { - p.Print(nn.Key) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("=>")) - } - - p.Print(nn.Val) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprArray(n ast.Vertex) { - nn := n.(*ast.ExprArray) - p.printFreeFloating(nn, token.Start) - p.write([]byte("array")) - p.printFreeFloating(nn, token.Array) - p.write([]byte("(")) - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, token.ArrayPairList) - p.write([]byte(")")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprArrowFunction(n ast.Vertex) { - nn := n.(*ast.ExprArrowFunction) - p.printFreeFloating(nn, token.Start) - - if nn.StaticTkn != nil { - p.write([]byte("static")) - } - p.printFreeFloating(nn, token.Static) - if nn.StaticTkn != nil && n.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - - p.write([]byte("fn")) - p.printFreeFloating(nn, token.Function) - - if nn.AmpersandTkn != nil { - p.write([]byte("&")) - } - p.printFreeFloating(nn, token.Ampersand) - - p.write([]byte("(")) - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, token.ParameterList) - p.write([]byte(")")) - p.printFreeFloating(nn, token.Params) - - if nn.ReturnType != nil { - p.bufStart = ":" - p.Print(nn.ReturnType) - } - p.printFreeFloating(nn, token.ReturnType) - - p.write([]byte("=>")) - - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprBitwiseNot(n ast.Vertex) { - nn := n.(*ast.ExprBitwiseNot) - p.printFreeFloating(nn, token.Start) - p.write([]byte("~")) - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprBooleanNot(n ast.Vertex) { - nn := n.(*ast.ExprBooleanNot) - p.printFreeFloating(nn, token.Start) - p.write([]byte("!")) - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprClassConstFetch(n ast.Vertex) { - nn := n.(*ast.ExprClassConstFetch) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Class) - p.printFreeFloating(nn, token.Name) - p.write([]byte("::")) - p.Print(nn.ConstantName) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprClone(n ast.Vertex) { - nn := n.(*ast.ExprClone) - p.printFreeFloating(nn, token.Start) - p.write([]byte("clone")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprClosureUse(n ast.Vertex) { - nn := n.(*ast.ExprClosureUse) - p.printFreeFloating(nn, token.Start) - p.write([]byte("use")) - p.printFreeFloating(nn, token.Use) - p.write([]byte("(")) - p.joinPrint(",", nn.Uses) - p.printFreeFloating(nn, token.LexicalVarList) - p.write([]byte(")")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprClosure(n ast.Vertex) { - nn := n.(*ast.ExprClosure) - p.printFreeFloating(nn, token.Start) - - if nn.StaticTkn != nil { - p.write([]byte("static")) - } - p.printFreeFloating(nn, token.Static) - if nn.StaticTkn != nil && n.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - - p.write([]byte("function")) - p.printFreeFloating(nn, token.Function) - - if nn.AmpersandTkn != nil { - p.write([]byte("&")) - } - p.printFreeFloating(nn, token.Ampersand) - - p.write([]byte("(")) - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, token.ParameterList) - p.write([]byte(")")) - p.printFreeFloating(nn, token.Params) - - if nn.ClosureUse != nil { - p.Print(nn.ClosureUse) - } - p.printFreeFloating(nn, token.LexicalVars) - - if nn.ReturnType != nil { - p.bufStart = ":" - p.Print(nn.ReturnType) - } - p.printFreeFloating(nn, token.ReturnType) - - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprConstFetch(n ast.Vertex) { - nn := n.(*ast.ExprConstFetch) - p.printFreeFloating(nn, token.Start) - p.Print(nn.Const) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprEmpty(n ast.Vertex) { - nn := n.(*ast.ExprEmpty) - p.printFreeFloating(nn, token.Start) - p.write([]byte("empty")) - - if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - p.write([]byte("(")) - } - - p.Print(nn.Expr) - - if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - p.write([]byte(")")) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprErrorSuppress(n ast.Vertex) { - nn := n.(*ast.ExprErrorSuppress) - p.printFreeFloating(nn, token.Start) - p.write([]byte("@")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprEval(n ast.Vertex) { - nn := n.(*ast.ExprEval) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("eval")) - - if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - p.write([]byte("(")) - } - - p.Print(nn.Expr) - - if _, ok := nn.Expr.(*ast.ParserBrackets); !ok { - p.write([]byte(")")) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprExit(n ast.Vertex) { - nn := n.(*ast.ExprExit) - p.printFreeFloating(nn, token.Start) - - if nn.DieTkn != nil { - p.write(nn.DieTkn.Value) - } else { - p.write([]byte("exit")) - } - - if nn.Expr != nil && nn.Expr.GetNode().Tokens.IsEmpty() && nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprFunctionCall(n ast.Vertex) { - nn := n.(*ast.ExprFunctionCall) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Function) - - p.printToken(nn.OpenParenthesisTkn, "(") - p.joinPrint(",", nn.Arguments) - p.printToken(nn.CloseParenthesisTkn, ")") - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprInclude(n ast.Vertex) { - nn := n.(*ast.ExprInclude) - p.printFreeFloating(nn, token.Start) - p.write([]byte("include")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprIncludeOnce(n ast.Vertex) { - nn := n.(*ast.ExprIncludeOnce) - p.printFreeFloating(nn, token.Start) - p.write([]byte("include_once")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprInstanceOf(n ast.Vertex) { - nn := n.(*ast.ExprInstanceOf) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - - p.write([]byte("instanceof")) - - p.bufStart = " " - p.Print(nn.Class) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprIsset(n ast.Vertex) { - nn := n.(*ast.ExprIsset) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("isset")) - p.printFreeFloating(nn, token.Isset) - p.write([]byte("(")) - p.joinPrint(",", nn.Vars) - p.printFreeFloating(nn, token.VarList) - p.write([]byte(")")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprList(n ast.Vertex) { - nn := n.(*ast.ExprList) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("list")) - p.printFreeFloating(nn, token.List) - p.write([]byte("(")) - p.joinPrint(",", nn.Items) - p.printFreeFloating(nn, token.ArrayPairList) - p.write([]byte(")")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprMethodCall(n ast.Vertex) { - nn := n.(*ast.ExprMethodCall) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("->")) - p.Print(nn.Method) - - p.printToken(nn.OpenParenthesisTkn, "(") - p.joinPrint(",", nn.Arguments) - p.printToken(nn.CloseParenthesisTkn, ")") - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprNew(n ast.Vertex) { - nn := n.(*ast.ExprNew) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("new")) - p.bufStart = " " - p.Print(nn.Class) - - if nn.Arguments != nil { - p.printToken(nn.OpenParenthesisTkn, "(") - p.joinPrint(",", nn.Arguments) - p.printToken(nn.CloseParenthesisTkn, ")") - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprPostDec(n ast.Vertex) { - nn := n.(*ast.ExprPostDec) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("--")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprPostInc(n ast.Vertex) { - nn := n.(*ast.ExprPostInc) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("++")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprPreDec(n ast.Vertex) { - nn := n.(*ast.ExprPreDec) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("--")) - p.Print(nn.Var) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprPreInc(n ast.Vertex) { - nn := n.(*ast.ExprPreInc) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("++")) - p.Print(nn.Var) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprPrint(n ast.Vertex) { - nn := n.(*ast.ExprPrint) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("print")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprPropertyFetch(n ast.Vertex) { - nn := n.(*ast.ExprPropertyFetch) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Var) - p.printFreeFloating(nn, token.Var) - p.write([]byte("->")) - p.Print(nn.Property) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprReference(n ast.Vertex) { - nn := n.(*ast.ExprReference) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("&")) - p.Print(nn.Var) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprRequire(n ast.Vertex) { - nn := n.(*ast.ExprRequire) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("require")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprRequireOnce(n ast.Vertex) { - nn := n.(*ast.ExprRequireOnce) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("require_once")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprShellExec(n ast.Vertex) { - nn := n.(*ast.ExprShellExec) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("`")) - p.joinPrint("", nn.Parts) - p.write([]byte("`")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprStaticCall(n ast.Vertex) { - nn := n.(*ast.ExprStaticCall) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Class) - p.printFreeFloating(nn, token.Name) - p.write([]byte("::")) - p.Print(nn.Call) - - p.printToken(nn.OpenParenthesisTkn, "(") - p.joinPrint(",", nn.Arguments) - p.printToken(nn.CloseParenthesisTkn, ")") - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprStaticPropertyFetch(n ast.Vertex) { - nn := n.(*ast.ExprStaticPropertyFetch) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Class) - p.printFreeFloating(nn, token.Name) - p.write([]byte("::")) - p.Print(nn.Property) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprTernary(n ast.Vertex) { - nn := n.(*ast.ExprTernary) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Condition) - p.printFreeFloating(nn, token.Cond) - p.write([]byte("?")) - - if nn.IfTrue != nil { - p.Print(nn.IfTrue) - } - p.printFreeFloating(nn, token.True) - - p.write([]byte(":")) - p.Print(nn.IfFalse) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprUnaryMinus(n ast.Vertex) { - nn := n.(*ast.ExprUnaryMinus) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("-")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprUnaryPlus(n ast.Vertex) { - nn := n.(*ast.ExprUnaryPlus) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("+")) - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprVariable(n ast.Vertex) { - nn := n.(*ast.ExprVariable) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - if _, ok := nn.VarName.(*ast.Identifier); !ok { - p.write([]byte("$")) - } - - p.Print(nn.VarName) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprVariableWithoutLeadingDollar(n ast.Vertex) { - nn := n.(*ast.ExprVariable) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.VarName) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprYieldFrom(n ast.Vertex) { - nn := n.(*ast.ExprYieldFrom) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("yield from")) - if nn.Expr.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Expr) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printExprYield(n ast.Vertex) { - nn := n.(*ast.ExprYield) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("yield")) - - if nn.Key != nil { - if nn.Key.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Key) - p.printFreeFloating(nn, token.Expr) - p.write([]byte("=>")) - } else { - if nn.Value.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - } - - p.Print(nn.Value) - - p.printFreeFloating(nn, token.End) -} - -// smtm - -func (p *Printer) printStmtBreak(n *ast.StmtBreak) { - p.printToken(n.BreakTkn, "break") - - if n.Expr != nil { - p.bufStart = " " - } - - p.Print(n.Expr) - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtCase(n *ast.StmtCase) { - p.printToken(n.CaseTkn, "case") - p.bufStart = " " - p.Print(n.Cond) - p.printToken(n.CaseSeparatorTkn, ":") - p.printNodes(n.Stmts) -} - -func (p *Printer) printStmtCatch(n *ast.StmtCatch) { - p.printToken(n.CatchTkn, "catch") - p.printToken(n.OpenParenthesisTkn, "(") - p.printSeparatedList(n.Types, n.SeparatorTkns, "|") - p.Print(n.Var) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.OpenCurlyBracketTkn, "{") - p.printNodes(n.Stmts) - p.printToken(n.CloseCurlyBracketTkn, "}") -} - -func (p *Printer) printStmtClassMethod(n ast.Vertex) { - nn := n.(*ast.StmtClassMethod) - p.printFreeFloating(nn, token.Start) - - if nn.Modifiers != nil { - for k, m := range nn.Modifiers { - if k > 0 && m.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(m) - } - - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - } - p.printFreeFloating(nn, token.ModifierList) - p.write([]byte("function")) - p.printFreeFloating(nn, token.Function) - - if nn.AmpersandTkn != nil { - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("&")) - p.printFreeFloating(nn, token.Ampersand) - } else { - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - } - - p.Print(nn.MethodName) - p.printFreeFloating(nn, token.Name) - p.write([]byte("(")) - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, token.ParameterList) - p.write([]byte(")")) - p.printFreeFloating(nn, token.Params) - - if nn.ReturnType != nil { - p.bufStart = ":" - p.Print(nn.ReturnType) - } - - p.Print(nn.Stmt) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtClass(n ast.Vertex) { - nn := n.(*ast.StmtClass) - p.printFreeFloatingOrDefault(nn, token.Start, p.bufStart) - p.bufStart = "" - - if nn.Modifiers != nil { - for k, m := range nn.Modifiers { - if k > 0 && m.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(m) - } - - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - } - p.printFreeFloating(nn, token.ModifierList) - p.write([]byte("class")) - - if nn.ClassName != nil { - p.bufStart = " " - p.Print(nn.ClassName) - } - - if nn.Arguments != nil { - p.printToken(nn.OpenParenthesisTkn, "(") - p.joinPrint(",", nn.Arguments) - p.printToken(nn.CloseParenthesisTkn, ")") - } - - if nn.Extends != nil { - p.printFreeFloating(nn.Extends, token.Start) - if nn.Extends.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("extends")) - p.bufStart = " " - p.Print(nn.Extends.(*ast.StmtClassExtends).ClassName) - } - - if nn.Implements != nil { - p.printFreeFloating(nn.Implements, token.Start) - if nn.Implements.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("implements")) - p.bufStart = " " - p.joinPrintRefactored(",", nn.Implements.(*ast.StmtClassImplements).InterfaceNames) - - } - - p.printFreeFloating(nn, token.Name) - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtClassConstList(n *ast.StmtClassConstList) { - p.joinPrintRefactored(" ", n.Modifiers) - p.bufStart = " " - p.printToken(n.ConstTkn, "const") - p.bufStart = " " - p.joinPrintRefactored(",", n.Consts) - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtConstList(n *ast.StmtConstList) { - p.printToken(n.ConstTkn, "const") - p.bufStart = " " - p.printSeparatedList(n.Consts, n.SeparatorTkns, ",") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtConstant(n *ast.StmtConstant) { - p.Print(n.Name) - p.printToken(n.EqualTkn, "=") - p.Print(n.Expr) -} - -func (p *Printer) printStmtContinue(n *ast.StmtContinue) { - p.printToken(n.ContinueTkn, "continue") - - if n.Expr != nil { - p.bufStart = " " - } - - p.Print(n.Expr) - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtDeclare(n *ast.StmtDeclare) { - if n.Alt { - p.printStmtAltDeclare(n) - return - } - p.printToken(n.DeclareTkn, "declare") - p.printToken(n.OpenParenthesisTkn, "(") - p.printSeparatedList(n.Consts, n.SeparatorTkns, ",") - p.printToken(n.CloseParenthesisTkn, ")") - p.Print(n.Stmt) -} - -func (p *Printer) printStmtAltDeclare(n *ast.StmtDeclare) { - p.printToken(n.DeclareTkn, "declare") - p.printToken(n.OpenParenthesisTkn, "(") - p.printSeparatedList(n.Consts, n.SeparatorTkns, ",") - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.ColonTkn, ":") - - if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { - p.printNodes(stmtList.Stmts) - } else { - p.Print(n.Stmt) - } - - p.printToken(n.EndDeclareTkn, "enddeclare") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtDefault(n *ast.StmtDefault) { - p.printToken(n.DefaultTkn, "default") - p.printToken(n.CaseSeparatorTkn, ":") - p.printNodes(n.Stmts) -} - -func (p *Printer) printStmtDo(n *ast.StmtDo) { - p.printToken(n.DoTkn, "do") - p.bufStart = " " - - p.Print(n.Stmt) - - p.printToken(n.WhileTkn, "while") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtEcho(n *ast.StmtEcho) { - p.printToken(n.EchoTkn, "echo") - p.bufStart = " " - p.printSeparatedList(n.Exprs, n.SeparatorTkns, ",") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtElseif(n *ast.StmtElseIf) { - if n.Alt { - p.printStmtAltElseIf(n) - return - } - - p.printToken(n.ElseIfTkn, "elseif") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - - p.Print(n.Stmt) -} - -func (p *Printer) printStmtAltElseIf(n *ast.StmtElseIf) { - p.printToken(n.ElseIfTkn, "elseif") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.ColonTkn, ":") - - if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { - p.printNodes(stmtList.Stmts) - } else { - p.Print(n.Stmt) - } -} - -func (p *Printer) printStmtElse(n *ast.StmtElse) { - if n.Alt { - p.printStmtAltElse(n) - return - } - - p.printToken(n.ElseTkn, "else") - p.bufStart = " " - p.Print(n.Stmt) -} - -func (p *Printer) printStmtAltElse(n *ast.StmtElse) { - p.printToken(n.ElseTkn, "else") - p.printToken(n.ColonTkn, ":") - - if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { - p.printNodes(stmtList.Stmts) - } else { - p.Print(n.Stmt) - } -} - -func (p *Printer) printStmtExpression(n ast.Vertex) { - nn := n.(*ast.StmtExpression) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Expr) - p.printFreeFloating(nn, token.Expr) - - p.printFreeFloating(nn, token.SemiColon) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtFinally(n *ast.StmtFinally) { - p.printToken(n.FinallyTkn, "finally") - p.printToken(n.OpenCurlyBracketTkn, "{") - p.printNodes(n.Stmts) - p.printToken(n.CloseCurlyBracketTkn, "}") -} - -func (p *Printer) printStmtFor(n *ast.StmtFor) { - if n.Alt { - p.printStmtAltFor(n) - return - } - - p.printToken(n.ForTkn, "for") - p.printToken(n.OpenParenthesisTkn, "(") - p.joinPrint(",", n.Init) - p.printToken(n.InitSemiColonTkn, ";") - p.joinPrint(",", n.Cond) - p.printToken(n.CondSemiColonTkn, ";") - p.joinPrint(",", n.Loop) - p.printToken(n.CloseParenthesisTkn, ")") - - p.Print(n.Stmt) -} - -func (p *Printer) printStmtAltFor(n *ast.StmtFor) { - p.printToken(n.ForTkn, "for") - p.printToken(n.OpenParenthesisTkn, "(") - p.joinPrint(",", n.Init) - p.printToken(n.InitSemiColonTkn, ";") - p.joinPrint(",", n.Cond) - p.printToken(n.CondSemiColonTkn, ";") - p.joinPrint(",", n.Loop) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.ColonTkn, ":") - - if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { - p.printNodes(stmtList.Stmts) - } else { - p.Print(n.Stmt) - } - - p.printToken(n.EndForTkn, "endfor") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtForeach(n *ast.StmtForeach) { - if n.Alt { - p.printStmtAltForeach(n) - return - } - - p.printToken(n.ForeachTkn, "foreach") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Expr) - p.bufStart = " " - p.printToken(n.AsTkn, "as") - p.bufStart = " " - if n.Key != nil { - p.Print(n.Key) - p.printToken(n.DoubleArrowTkn, "=>") - } - p.Print(n.Var) - p.printToken(n.CloseParenthesisTkn, ")") - p.Print(n.Stmt) -} - -func (p *Printer) printStmtAltForeach(n *ast.StmtForeach) { - p.printToken(n.ForeachTkn, "foreach") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Expr) - p.bufStart = " " - p.printToken(n.AsTkn, "as") - p.bufStart = " " - if n.Key != nil { - p.Print(n.Key) - p.printToken(n.DoubleArrowTkn, "=>") - } - p.Print(n.Var) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.ColonTkn, ":") - - if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { - p.printNodes(stmtList.Stmts) - } else { - p.Print(n.Stmt) - } - - p.printToken(n.EndForeachTkn, "endforeach") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtFunction(n ast.Vertex) { - nn := n.(*ast.StmtFunction) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("function")) - p.printFreeFloating(nn, token.Function) - - if nn.AmpersandTkn != nil { - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("&")) - } else { - if nn.FunctionName.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - } - - p.Print(nn.FunctionName) - p.printFreeFloating(nn, token.Name) - - p.write([]byte("(")) - p.joinPrint(",", nn.Params) - p.printFreeFloating(nn, token.ParamList) - p.write([]byte(")")) - p.printFreeFloating(nn, token.Params) - - if nn.ReturnType != nil { - p.bufStart = ":" - p.Print(nn.ReturnType) - } - p.printFreeFloating(nn, token.ReturnType) - - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtGlobal(n *ast.StmtGlobal) { - p.printToken(n.GlobalTkn, "global") - p.bufStart = " " - p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtGoto(n *ast.StmtGoto) { - p.printToken(n.GotoTkn, "goto") - p.bufStart = " " - p.Print(n.Label) - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtHaltCompiler(n *ast.StmtHaltCompiler) { - p.printToken(n.HaltCompilerTkn, "__halt_compiler") - p.printToken(n.OpenParenthesisTkn, "(") - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtIf(n *ast.StmtIf) { - if n.Alt { - p.printStmtAltIf(n) - return - } - - p.printToken(n.IfTkn, "if") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - - p.Print(n.Stmt) - p.printNodes(n.ElseIf) - p.Print(n.Else) -} - -func (p *Printer) printStmtAltIf(n *ast.StmtIf) { - p.printToken(n.IfTkn, "if") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.ColonTkn, ":") - - if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { - p.printNodes(stmtList.Stmts) - } else { - p.Print(n.Stmt) - } - - p.printNodes(n.ElseIf) - p.Print(n.Else) - - p.printToken(n.EndIfTkn, "endif") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtInlineHTML(n *ast.StmtInlineHtml) { - if p.s == PhpState && !bytes.Contains(p.lastWrite, []byte("?>")) { - p.write([]byte("?>")) - } - p.SetState(HtmlState) - - p.printToken(n.InlineHtmlTkn, string(n.Value)) -} - -func (p *Printer) printStmtInterface(n ast.Vertex) { - nn := n.(*ast.StmtInterface) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("interface")) - - if nn.InterfaceName.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - - p.Print(nn.InterfaceName) - - if nn.Extends != nil { - p.printFreeFloating(nn.Extends, token.Start) - if nn.Extends.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("extends")) - p.bufStart = " " - p.joinPrintRefactored(",", nn.Extends.(*ast.StmtInterfaceExtends).InterfaceNames) - } - - p.printFreeFloating(nn, token.Name) - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtLabel(n *ast.StmtLabel) { - p.Print(n.LabelName) - p.printToken(n.ColonTkn, ":") -} - -func (p *Printer) printStmtNamespace(n *ast.StmtNamespace) { - p.printToken(n.NsTkn, "namespace") - - if n.Name != nil { - p.bufStart = " " - p.Print(n.Name) - } - - if n.Stmts != nil { - p.printToken(n.OpenCurlyBracket, "{") - p.printNodes(n.Stmts) - p.printToken(n.CloseCurlyBracket, "}") - return - } - - if n.OpenCurlyBracket != nil { - p.printToken(n.OpenCurlyBracket, "{") - p.printToken(n.CloseCurlyBracket, "}") - return - } - - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtNop(n *ast.StmtNop) { - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtPropertyList(n ast.Vertex) { - nn := n.(*ast.StmtPropertyList) - p.printFreeFloating(nn, token.Start) - - for k, m := range nn.Modifiers { - if k > 0 && m.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(m) - } - - if nn.Type != nil { - p.bufStart = " " - p.Print(nn.Type) - } - - if nn.Properties[0].GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - - p.joinPrint(",", nn.Properties) - p.printFreeFloating(n, token.PropertyList) - - p.printFreeFloating(n, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtProperty(n ast.Vertex) { - nn := n.(*ast.StmtProperty) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Var) - - if nn.Expr != nil { - p.printFreeFloating(nn, token.Var) - p.write([]byte("=")) - p.Print(nn.Expr) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtReturn(n *ast.StmtReturn) { - p.printToken(n.ReturnTkn, "return") - - if n.Expr != nil { - p.bufStart = " " - } - p.Print(n.Expr) - - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtStaticVar(n *ast.StmtStaticVar) { - p.Print(n.Var) - - if n.Expr != nil { - p.printToken(n.EqualTkn, "=") - p.Print(n.Expr) - } -} - -func (p *Printer) printStmtStatic(n *ast.StmtStatic) { - p.printToken(n.StaticTkn, "static") - p.bufStart = " " - p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtStmtList(n *ast.StmtStmtList) { - p.printToken(n.OpenCurlyBracket, "{") - p.printNodes(n.Stmts) - p.printToken(n.CloseCurlyBracket, "}") -} - -func (p *Printer) printStmtSwitch(n *ast.StmtSwitch) { - if n.Alt { - p.printStmtAltSwitch(n) - return - } - - p.printToken(n.SwitchTkn, "switch") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.OpenCurlyBracketTkn, "{") - p.printToken(n.CaseSeparatorTkn, "") - p.printNodes(n.CaseList) - p.printToken(n.CloseCurlyBracketTkn, "}") -} - -func (p *Printer) printStmtAltSwitch(n *ast.StmtSwitch) { - p.printToken(n.SwitchTkn, "switch") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.ColonTkn, ":") - p.printToken(n.CaseSeparatorTkn, "") - p.printNodes(n.CaseList) - p.printToken(n.EndSwitchTkn, "endswitch") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtThrow(n *ast.StmtThrow) { - p.printToken(n.ThrowTkn, "throw") - p.bufStart = " " - p.Print(n.Expr) - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtTraitAdaptationList(n ast.Vertex) { - nn := n.(*ast.StmtTraitAdaptationList) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("{")) - p.printNodes(nn.Adaptations) - p.printFreeFloating(nn, token.AdaptationList) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtTraitMethodRef(n ast.Vertex) { - nn := n.(*ast.StmtTraitMethodRef) - p.printFreeFloating(nn, token.Start) - - if nn.Trait != nil { - p.Print(nn.Trait) - p.printFreeFloating(nn, token.Name) - p.write([]byte("::")) - } - - p.Print(nn.Method) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtTraitUseAlias(n ast.Vertex) { - nn := n.(*ast.StmtTraitUseAlias) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Ref) - p.printFreeFloating(nn, token.Ref) - - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.write([]byte("as")) - - if nn.Modifier != nil { - if nn.Modifier.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Modifier) - } - - if nn.Alias != nil { - if nn.Alias.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.Alias) - } - p.printFreeFloating(nn, token.Alias) - - p.printFreeFloating(nn, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtTraitUsePrecedence(n ast.Vertex) { - nn := n.(*ast.StmtTraitUsePrecedence) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Ref) - p.printFreeFloating(nn, token.Ref) - if nn.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - - p.write([]byte("insteadof")) - p.bufStart = " " - p.joinPrint(",", nn.Insteadof) - p.printFreeFloating(nn, token.NameList) - - p.printFreeFloating(nn, token.SemiColon) - if n.GetNode().Tokens.IsEmpty() { - p.write([]byte(";")) - } - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtTraitUse(n ast.Vertex) { - nn := n.(*ast.StmtTraitUse) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("use")) - p.bufStart = " " - p.joinPrintRefactored(",", nn.Traits) - - p.Print(nn.Adaptations) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtTrait(n ast.Vertex) { - nn := n.(*ast.StmtTrait) - p.printFreeFloating(nn, token.Start) - - p.write([]byte("trait")) - if nn.TraitName.GetNode().Tokens.IsEmpty() { - p.write([]byte(" ")) - } - p.Print(nn.TraitName) - - p.printFreeFloating(nn, token.Name) - p.write([]byte("{")) - p.printNodes(nn.Stmts) - p.printFreeFloating(nn, token.Stmts) - p.write([]byte("}")) - - p.printFreeFloating(nn, token.End) -} - -func (p *Printer) printStmtTry(n *ast.StmtTry) { - p.printToken(n.TryTkn, "try") - p.printToken(n.OpenCurlyBracket, "{") - p.printNodes(n.Stmts) - p.printToken(n.CloseCurlyBracket, "}") - - if n.Catches != nil { - p.printNodes(n.Catches) - } - - if n.Finally != nil { - p.Print(n.Finally) - } -} - -func (p *Printer) printStmtUnset(n *ast.StmtUnset) { - p.printToken(n.UnsetTkn, "unset") - p.printToken(n.OpenParenthesisTkn, "(") - p.printSeparatedList(n.Vars, n.SeparatorTkns, ",") - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtUse(n *ast.StmtUse) { - p.printToken(n.UseTkn, "use") - - if n.Type != nil { - p.bufStart = " " - p.Print(n.Type) - } - - p.bufStart = " " - p.joinPrintRefactored(",", n.UseDeclarations) - - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtGroupUse(n *ast.StmtGroupUse) { - p.printToken(n.UseTkn, "use") - - p.bufStart = " " - p.Print(n.Type) - - p.bufStart = " " - p.printToken(n.LeadingNsSeparatorTkn, "") - - p.Print(n.Prefix) - p.printToken(n.NsSeparatorTkn, "\\") - p.printToken(n.OpenCurlyBracketTkn, "{") - - p.joinPrintRefactored(",", n.UseDeclarations) - - p.printToken(n.CloseCurlyBracketTkn, "}") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printStmtUseDeclaration(n *ast.StmtUseDeclaration) { - p.Print(n.Type) - - if n.Type != nil { - p.bufStart = " " - } - - p.printToken(n.NsSeparatorTkn, "") - - p.Print(n.Use) - - if n.Alias == nil { - return - } - - p.bufStart = " " - p.printToken(n.AsTkn, "as") - - p.bufStart = " " - p.Print(n.Alias) -} - -func (p *Printer) printStmtWhile(n *ast.StmtWhile) { - if n.Alt { - p.printStmtAltWhile(n) - return - } - - p.printToken(n.WhileTkn, "while") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - - p.Print(n.Stmt) -} - -func (p *Printer) printStmtAltWhile(n *ast.StmtWhile) { - p.printToken(n.WhileTkn, "while") - p.printToken(n.OpenParenthesisTkn, "(") - p.Print(n.Cond) - p.printToken(n.CloseParenthesisTkn, ")") - p.printToken(n.ColonTkn, ":") - - if stmtList, ok := n.Stmt.(*ast.StmtStmtList); ok { - p.printNodes(stmtList.Stmts) - } else { - p.Print(n.Stmt) - } - - p.printToken(n.EndWhileTkn, "endwhile") - p.printToken(n.SemiColonTkn, ";") -} - -func (p *Printer) printParserBrackets(n ast.Vertex) { - nn := n.(*ast.ParserBrackets) - p.printFreeFloating(nn, token.Start) - - p.Print(nn.Child) - - p.printFreeFloating(nn, token.End) -} From 60433615a9d19d63ebdb8faad742af9dd4e96c6b Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 11 Dec 2020 10:05:02 +0200 Subject: [PATCH 108/140] [refactoring] fix namespaceResolver tests --- pkg/ast/visitor/dump_test.go | 18 ++++++------------ pkg/ast/visitor/namespace_resolver_test.go | 22 +++------------------- 2 files changed, 9 insertions(+), 31 deletions(-) diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index 3bcdad0..42283dc 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -1,26 +1,16 @@ package visitor_test import ( + "os" + "github.com/z7zmey/php-parser/pkg/ast" "github.com/z7zmey/php-parser/pkg/ast/traverser" "github.com/z7zmey/php-parser/pkg/ast/visitor" - "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" - "os" ) func ExampleDump() { stxTree := &ast.Root{ - Node: ast.Node{ - Tokens: token.Collection{ - token.Start: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - }, - }, - }, - }, Stmts: []ast.Vertex{ &ast.Identifier{}, &ast.Parameter{ @@ -30,6 +20,10 @@ func ExampleDump() { Value: []byte("foo"), }, }, + EndTkn: &token.Token{ + ID: token.T_WHITESPACE, + Value: []byte(" "), + }, } traverser.NewDFS(visitor.NewDump(os.Stdout)).Traverse(stxTree) diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 8e84e88..e5ec818 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -24,9 +24,8 @@ func TestResolveStaticCall(t *testing.T) { }, }, &ast.ExprStaticCall{ - Class: nameBC, - Call: &ast.Identifier{Value: []byte("foo")}, - ArgumentList: &ast.ArgumentList{}, + Class: nameBC, + Call: &ast.Identifier{Value: []byte("foo")}, }, }, } @@ -119,7 +118,6 @@ func TestResolveNew(t *testing.T) { }, &ast.ExprNew{ Class: nameBC, - ArgumentList: &ast.ArgumentList{}, }, }, } @@ -230,7 +228,6 @@ func TestResolveFunctionCall(t *testing.T) { }, &ast.ExprFunctionCall{ Function: nameB, - ArgumentList: &ast.ArgumentList{}, }, }, } @@ -313,11 +310,9 @@ func TestResolveGroupUse(t *testing.T) { }, &ast.ExprFunctionCall{ Function: nameF, - ArgumentList: &ast.ArgumentList{}, }, &ast.ExprFunctionCall{ Function: nameE, - ArgumentList: &ast.ArgumentList{}, }, }, } @@ -359,7 +354,7 @@ func TestResolveTraitUse(t *testing.T) { nameB, relativeNameB, }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ + Adaptations: &ast.StmtTraitAdaptationList{ Adaptations: []ast.Vertex{ &ast.StmtTraitUsePrecedence{ Ref: &ast.StmtTraitMethodRef{ @@ -498,7 +493,6 @@ func TestResolveFunctionName(t *testing.T) { nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} functionNode := &ast.StmtFunction{ - ReturnsRef: false, FunctionName: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ @@ -534,7 +528,6 @@ func TestResolveMethodName(t *testing.T) { nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} methodNode := &ast.StmtClassMethod{ - ReturnsRef: false, MethodName: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ @@ -565,8 +558,6 @@ func TestResolveClosureName(t *testing.T) { nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} closureNode := &ast.ExprClosure{ - ReturnsRef: false, - Static: false, Params: []ast.Vertex{ &ast.Parameter{ Type: nameAB, @@ -660,7 +651,6 @@ func TestResolveNamespaces(t *testing.T) { &ast.ExprStaticCall{ Class: nameFG, Call: &ast.Identifier{Value: []byte("foo")}, - ArgumentList: &ast.ArgumentList{}, }, &ast.StmtNamespace{ Stmts: []ast.Vertex{}, @@ -678,12 +668,10 @@ func TestResolveNamespaces(t *testing.T) { &ast.ExprStaticCall{ Class: relativeNameCE, Call: &ast.Identifier{Value: []byte("foo")}, - ArgumentList: &ast.ArgumentList{}, }, &ast.ExprStaticCall{ Class: nameCF, Call: &ast.Identifier{Value: []byte("foo")}, - ArgumentList: &ast.ArgumentList{}, }, }, }, @@ -711,7 +699,6 @@ func TestResolveStaticCallDinamicClassName(t *testing.T) { &ast.ExprStaticCall{ Class: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, Call: &ast.Identifier{Value: []byte("foo")}, - ArgumentList: &ast.ArgumentList{}, }, }, } @@ -932,21 +919,18 @@ func TestDoNotResolveReservedSpecialNames(t *testing.T) { Expr: &ast.ExprStaticCall{ Class: nameSelf, Call: &ast.Identifier{Value: []byte("func")}, - ArgumentList: &ast.ArgumentList{}, }, }, &ast.StmtExpression{ Expr: &ast.ExprStaticCall{ Class: nameStatic, Call: &ast.Identifier{Value: []byte("func")}, - ArgumentList: &ast.ArgumentList{}, }, }, &ast.StmtExpression{ Expr: &ast.ExprStaticCall{ Class: nameParent, Call: &ast.Identifier{Value: []byte("func")}, - ArgumentList: &ast.ArgumentList{}, }, }, }, From 632146f98e4d995872b7bb9268238d09da077c19 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 11 Dec 2020 13:28:16 +0200 Subject: [PATCH 109/140] [refactoring] update dumper --- cmd/php-parser/main.go | 17 +- internal/scanner/scanner.go | 5151 ++++++++++---------- internal/scanner/scanner.rl | 2 +- pkg/ast/visitor/dump.go | 2312 +++++++-- pkg/ast/visitor/dump_test.go | 106 +- pkg/ast/visitor/namespace_resolver_test.go | 36 +- 6 files changed, 4442 insertions(+), 3182 deletions(-) diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 554dcf9..73af6c5 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "flag" "io" "io/ioutil" @@ -163,12 +164,12 @@ func printerWorker(r <-chan result) { } if *printBack { - //o := bytes.NewBuffer([]byte{}) - //p := printer.NewPrinter(o) - //p.Print(res.rootNode) - // - //err := ioutil.WriteFile(res.path, o.Bytes(), 0644) - //checkErr(err) + o := bytes.NewBuffer([]byte{}) + p := visitor.NewPrinter(o) + res.rootNode.Accept(p) + + err := ioutil.WriteFile(res.path, o.Bytes(), 0644) + checkErr(err) } if *showResolvedNs { @@ -181,9 +182,7 @@ func printerWorker(r <-chan result) { } if *dump == true { - v := visitor.NewDump(os.Stdout) - t := traverser.NewDFS(v) - t.Traverse(res.rootNode) + visitor.NewDump(os.Stdout).WithPositions().WithTokens().Dump(res.rootNode) } wg.Done() diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index bd7768b..49e8150 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -17,19 +17,19 @@ const lexer_error int = 0 const lexer_en_main int = 113 const lexer_en_html int = 116 const lexer_en_php int = 123 -const lexer_en_property int = 470 -const lexer_en_nowdoc int = 476 -const lexer_en_heredoc int = 480 -const lexer_en_backqote int = 487 -const lexer_en_template_string int = 493 -const lexer_en_heredoc_end int = 499 -const lexer_en_string_var int = 501 -const lexer_en_string_var_index int = 506 -const lexer_en_string_var_name int = 516 -const lexer_en_halt_compiller_open_parenthesis int = 518 -const lexer_en_halt_compiller_close_parenthesis int = 522 -const lexer_en_halt_compiller_close_semicolon int = 526 -const lexer_en_halt_compiller_end int = 530 +const lexer_en_property int = 467 +const lexer_en_nowdoc int = 473 +const lexer_en_heredoc int = 477 +const lexer_en_backqote int = 484 +const lexer_en_template_string int = 490 +const lexer_en_heredoc_end int = 496 +const lexer_en_string_var int = 498 +const lexer_en_string_var_index int = 503 +const lexer_en_string_var_name int = 513 +const lexer_en_halt_compiller_open_parenthesis int = 515 +const lexer_en_halt_compiller_close_parenthesis int = 519 +const lexer_en_halt_compiller_close_semicolon int = 523 +const lexer_en_halt_compiller_end int = 527 // line internal/scanner/scanner.rl:17 @@ -978,68 +978,68 @@ func (lex *Lexer) Lex() *token.Token { goto st468 case 469: goto st469 + case 99: + goto st99 case 470: goto st470 case 471: goto st471 case 472: goto st472 - case 99: - goto st99 case 473: goto st473 + case 0: + goto st0 case 474: goto st474 case 475: goto st475 case 476: goto st476 - case 0: - goto st0 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 100: - goto st100 case 482: goto st482 case 483: goto st483 case 484: goto st484 + case 101: + goto st101 + case 102: + goto st102 case 485: goto st485 case 486: goto st486 case 487: goto st487 - case 101: - goto st101 - case 102: - goto st102 case 488: goto st488 case 489: goto st489 case 490: goto st490 + case 103: + goto st103 + case 104: + goto st104 case 491: goto st491 case 492: goto st492 case 493: goto st493 - case 103: - goto st103 - case 104: - goto st104 case 494: goto st494 case 495: @@ -1056,14 +1056,14 @@ func (lex *Lexer) Lex() *token.Token { goto st500 case 501: goto st501 + case 105: + goto st105 case 502: goto st502 case 503: goto st503 case 504: goto st504 - case 105: - goto st105 case 505: goto st505 case 506: @@ -1074,68 +1074,62 @@ func (lex *Lexer) Lex() *token.Token { goto st508 case 509: goto st509 - case 510: - goto st510 - case 511: - goto st511 - case 512: - goto st512 case 106: goto st106 case 107: goto st107 - case 513: - goto st513 + case 510: + goto st510 case 108: goto st108 + case 511: + goto st511 + case 512: + goto st512 + case 513: + goto st513 case 514: goto st514 + case 109: + goto st109 case 515: goto st515 case 516: goto st516 case 517: goto st517 - case 109: - goto st109 + case 110: + goto st110 case 518: goto st518 case 519: goto st519 case 520: goto st520 - case 110: - goto st110 case 521: goto st521 + case 111: + goto st111 case 522: goto st522 case 523: goto st523 case 524: goto st524 - case 111: - goto st111 case 525: goto st525 + case 112: + goto st112 case 526: goto st526 case 527: goto st527 case 528: goto st528 - case 112: - goto st112 case 529: goto st529 case 530: goto st530 - case 531: - goto st531 - case 532: - goto st532 - case 533: - goto st533 } if (lex.p)++; (lex.p) == (lex.pe) { @@ -2053,68 +2047,68 @@ func (lex *Lexer) Lex() *token.Token { goto st_case_468 case 469: goto st_case_469 + case 99: + goto st_case_99 case 470: goto st_case_470 case 471: goto st_case_471 case 472: goto st_case_472 - case 99: - goto st_case_99 case 473: goto st_case_473 + case 0: + goto st_case_0 case 474: goto st_case_474 case 475: goto st_case_475 case 476: goto st_case_476 - case 0: - goto st_case_0 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 100: - goto st_case_100 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 102: + goto st_case_102 case 485: goto st_case_485 case 486: goto st_case_486 case 487: goto st_case_487 - case 101: - goto st_case_101 - case 102: - goto st_case_102 case 488: goto st_case_488 case 489: goto st_case_489 case 490: goto st_case_490 + case 103: + goto st_case_103 + case 104: + goto st_case_104 case 491: goto st_case_491 case 492: goto st_case_492 case 493: goto st_case_493 - case 103: - goto st_case_103 - case 104: - goto st_case_104 case 494: goto st_case_494 case 495: @@ -2131,14 +2125,14 @@ func (lex *Lexer) Lex() *token.Token { goto st_case_500 case 501: goto st_case_501 + case 105: + goto st_case_105 case 502: goto st_case_502 case 503: goto st_case_503 case 504: goto st_case_504 - case 105: - goto st_case_105 case 505: goto st_case_505 case 506: @@ -2149,68 +2143,62 @@ func (lex *Lexer) Lex() *token.Token { goto st_case_508 case 509: goto st_case_509 - case 510: - goto st_case_510 - case 511: - goto st_case_511 - case 512: - goto st_case_512 case 106: goto st_case_106 case 107: goto st_case_107 - case 513: - goto st_case_513 + case 510: + goto st_case_510 case 108: goto st_case_108 + case 511: + goto st_case_511 + case 512: + goto st_case_512 + case 513: + goto st_case_513 case 514: goto st_case_514 + case 109: + goto st_case_109 case 515: goto st_case_515 case 516: goto st_case_516 case 517: goto st_case_517 - case 109: - goto st_case_109 + case 110: + goto st_case_110 case 518: goto st_case_518 case 519: goto st_case_519 case 520: goto st_case_520 - case 110: - goto st_case_110 case 521: goto st_case_521 + case 111: + goto st_case_111 case 522: goto st_case_522 case 523: goto st_case_523 case 524: goto st_case_524 - case 111: - goto st_case_111 case 525: goto st_case_525 + case 112: + goto st_case_112 case 526: goto st_case_526 case 527: goto st_case_527 case 528: goto st_case_528 - case 112: - goto st_case_112 case 529: goto st_case_529 case 530: goto st_case_530 - case 531: - goto st_case_531 - case 532: - goto st_case_532 - case 533: - goto st_case_533 } goto st_out tr0: @@ -2262,7 +2250,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2271 + // line internal/scanner/scanner.go:2259 if lex.data[(lex.p)] == 35 { goto tr170 } @@ -2277,7 +2265,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof114 } st_case_114: - // line internal/scanner/scanner.go:2286 + // line internal/scanner/scanner.go:2274 if lex.data[(lex.p)] == 33 { goto st1 } @@ -2299,7 +2287,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof1 } st_case_1: - // line internal/scanner/scanner.go:2308 + // line internal/scanner/scanner.go:2296 switch lex.data[(lex.p)] { case 10: goto tr2 @@ -2324,7 +2312,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof115 } st_case_115: - // line internal/scanner/scanner.go:2333 + // line internal/scanner/scanner.go:2321 goto tr172 tr4: lex.cs = 116 @@ -2425,7 +2413,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:2423 + // line internal/scanner/scanner.go:2411 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2470,7 +2458,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof117 } st_case_117: - // line internal/scanner/scanner.go:2468 + // line internal/scanner/scanner.go:2456 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2511,7 +2499,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof118 } st_case_118: - // line internal/scanner/scanner.go:2509 + // line internal/scanner/scanner.go:2497 switch lex.data[(lex.p)] { case 10: goto tr181 @@ -2530,7 +2518,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof119 } st_case_119: - // line internal/scanner/scanner.go:2528 + // line internal/scanner/scanner.go:2516 switch lex.data[(lex.p)] { case 10: goto tr174 @@ -2568,7 +2556,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof121 } st_case_121: - // line internal/scanner/scanner.go:2566 + // line internal/scanner/scanner.go:2554 switch lex.data[(lex.p)] { case 61: goto tr186 @@ -2635,7 +2623,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof122 } st_case_122: - // line internal/scanner/scanner.go:2633 + // line internal/scanner/scanner.go:2621 goto tr188 tr9: // line internal/scanner/scanner.rl:38 @@ -2654,7 +2642,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof5 } st_case_5: - // line internal/scanner/scanner.go:2652 + // line internal/scanner/scanner.go:2640 if lex.data[(lex.p)] == 10 { goto tr8 } @@ -3284,16 +3272,6 @@ func (lex *Lexer) Lex() *token.Token { goto _out } } - case 71: - { - (lex.p) = (lex.te) - 1 - lex.setTokenPosition(tkn) - tok = token.T_YIELD_FROM - { - (lex.p)++ - goto _out - } - } case 74: { (lex.p) = (lex.te) - 1 @@ -3399,7 +3377,7 @@ func (lex *Lexer) Lex() *token.Token { (lex.p) = (lex.te) - 1 lex.setTokenPosition(tkn) tok = token.T_HALT_COMPILER - lex.cs = 518 + lex.cs = 515 { (lex.p)++ goto _out @@ -3470,7 +3448,7 @@ func (lex *Lexer) Lex() *token.Token { (lex.p) = (lex.te) - 1 lex.setTokenPosition(tkn) tok = token.ID(int('"')) - lex.cs = 493 + lex.cs = 490 { (lex.p)++ goto _out @@ -3785,7 +3763,7 @@ func (lex *Lexer) Lex() *token.Token { { lex.setTokenPosition(tkn) tok = token.ID(int('`')) - lex.cs = 487 + lex.cs = 484 { (lex.p)++ goto _out @@ -3888,7 +3866,7 @@ func (lex *Lexer) Lex() *token.Token { { lex.setTokenPosition(tkn) tok = token.ID(int('"')) - lex.cs = 493 + lex.cs = 490 { (lex.p)++ goto _out @@ -4067,7 +4045,7 @@ func (lex *Lexer) Lex() *token.Token { { lex.setTokenPosition(tkn) tok = token.T_OBJECT_OPERATOR - lex.cs = 470 + lex.cs = 467 { (lex.p)++ goto _out @@ -4298,11 +4276,11 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_START_HEREDOC if lex.isHeredocEnd(lex.p + 1) { - lex.cs = 499 + lex.cs = 496 } else if lex.data[lblStart-1] == '\'' { - lex.cs = 476 + lex.cs = 473 } else { - lex.cs = 480 + lex.cs = 477 } { (lex.p)++ @@ -4588,7 +4566,7 @@ func (lex *Lexer) Lex() *token.Token { } } goto st123 - tr598: + tr594: // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { @@ -4601,7 +4579,7 @@ func (lex *Lexer) Lex() *token.Token { } } goto st123 - tr672: + tr668: // line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { @@ -4614,7 +4592,7 @@ func (lex *Lexer) Lex() *token.Token { } } goto st123 - tr673: + tr669: // line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { @@ -4638,7 +4616,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:3503 + // line internal/scanner/scanner.go:3488 switch lex.data[(lex.p)] { case 10: goto tr11 @@ -4731,9 +4709,9 @@ func (lex *Lexer) Lex() *token.Token { case 92: goto tr234 case 94: - goto st403 + goto st400 case 95: - goto st404 + goto st401 case 96: goto tr237 case 97: @@ -4779,7 +4757,7 @@ func (lex *Lexer) Lex() *token.Token { case 123: goto tr238 case 124: - goto st469 + goto st466 case 125: goto tr240 case 126: @@ -4831,7 +4809,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof124 } st_case_124: - // line internal/scanner/scanner.go:3696 + // line internal/scanner/scanner.go:3681 switch lex.data[(lex.p)] { case 10: goto tr11 @@ -4881,7 +4859,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof125 } st_case_125: - // line internal/scanner/scanner.go:3746 + // line internal/scanner/scanner.go:3731 switch lex.data[(lex.p)] { case 10: goto tr245 @@ -4925,7 +4903,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof6 } st_case_6: - // line internal/scanner/scanner.go:3790 + // line internal/scanner/scanner.go:3775 if lex.data[(lex.p)] == 10 { goto tr11 } @@ -4947,7 +4925,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof126 } st_case_126: - // line internal/scanner/scanner.go:3812 + // line internal/scanner/scanner.go:3797 if lex.data[(lex.p)] == 10 { goto tr11 } @@ -4982,7 +4960,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof129 } st_case_129: - // line internal/scanner/scanner.go:3847 + // line internal/scanner/scanner.go:3832 switch lex.data[(lex.p)] { case 10: goto tr14 @@ -5015,7 +4993,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof7 } st_case_7: - // line internal/scanner/scanner.go:3880 + // line internal/scanner/scanner.go:3865 switch lex.data[(lex.p)] { case 10: goto tr14 @@ -5126,7 +5104,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof130 } st_case_130: - // line internal/scanner/scanner.go:3991 + // line internal/scanner/scanner.go:3976 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5206,7 +5184,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof131 } st_case_131: - // line internal/scanner/scanner.go:4071 + // line internal/scanner/scanner.go:4056 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5333,7 +5311,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof136 } st_case_136: - // line internal/scanner/scanner.go:4198 + // line internal/scanner/scanner.go:4183 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5362,7 +5340,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:4227 + // line internal/scanner/scanner.go:4212 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5396,7 +5374,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof137 } st_case_137: - // line internal/scanner/scanner.go:4261 + // line internal/scanner/scanner.go:4246 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6244,7 +6222,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:5109 + // line internal/scanner/scanner.go:5094 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6276,7 +6254,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:5141 + // line internal/scanner/scanner.go:5126 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6325,7 +6303,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5190 + // line internal/scanner/scanner.go:5175 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6352,7 +6330,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5217 + // line internal/scanner/scanner.go:5202 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6397,7 +6375,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5262 + // line internal/scanner/scanner.go:5247 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6438,7 +6416,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5303 + // line internal/scanner/scanner.go:5288 switch lex.data[(lex.p)] { case 10: goto tr95 @@ -6457,7 +6435,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5322 + // line internal/scanner/scanner.go:5307 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6481,7 +6459,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5346 + // line internal/scanner/scanner.go:5331 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6512,7 +6490,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5377 + // line internal/scanner/scanner.go:5362 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6535,7 +6513,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5400 + // line internal/scanner/scanner.go:5385 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6580,7 +6558,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof149 } st_case_149: - // line internal/scanner/scanner.go:5445 + // line internal/scanner/scanner.go:5430 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6618,7 +6596,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5483 + // line internal/scanner/scanner.go:5468 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6654,7 +6632,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof152 } st_case_152: - // line internal/scanner/scanner.go:5519 + // line internal/scanner/scanner.go:5504 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6678,7 +6656,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5543 + // line internal/scanner/scanner.go:5528 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6724,7 +6702,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5589 + // line internal/scanner/scanner.go:5574 switch lex.data[(lex.p)] { case 10: goto tr108 @@ -6770,7 +6748,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5635 + // line internal/scanner/scanner.go:5620 if lex.data[(lex.p)] == 10 { goto tr104 } @@ -6784,7 +6762,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5649 + // line internal/scanner/scanner.go:5634 if lex.data[(lex.p)] == 62 { goto tr111 } @@ -6799,7 +6777,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof153 } st_case_153: - // line internal/scanner/scanner.go:5664 + // line internal/scanner/scanner.go:5649 switch lex.data[(lex.p)] { case 10: goto tr113 @@ -6824,7 +6802,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5689 + // line internal/scanner/scanner.go:5674 goto tr290 tr289: // line internal/scanner/scanner.rl:38 @@ -6843,7 +6821,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof81 } st_case_81: - // line internal/scanner/scanner.go:5708 + // line internal/scanner/scanner.go:5693 if lex.data[(lex.p)] == 10 { goto tr113 } @@ -6874,7 +6852,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof156 } st_case_156: - // line internal/scanner/scanner.go:5739 + // line internal/scanner/scanner.go:5724 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6942,7 +6920,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5807 + // line internal/scanner/scanner.go:5792 switch lex.data[(lex.p)] { case 34: goto tr119 @@ -6976,7 +6954,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5841 + // line internal/scanner/scanner.go:5826 switch lex.data[(lex.p)] { case 10: goto tr121 @@ -7015,7 +6993,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof157 } st_case_157: - // line internal/scanner/scanner.go:5880 + // line internal/scanner/scanner.go:5865 goto tr296 tr122: // line internal/scanner/scanner.rl:38 @@ -7048,7 +7026,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5913 + // line internal/scanner/scanner.go:5898 if lex.data[(lex.p)] == 10 { goto tr121 } @@ -7083,7 +7061,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5948 + // line internal/scanner/scanner.go:5933 switch lex.data[(lex.p)] { case 39: goto tr119 @@ -7117,7 +7095,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5982 + // line internal/scanner/scanner.go:5967 switch lex.data[(lex.p)] { case 10: goto tr125 @@ -7217,7 +7195,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof164 } st_case_164: - // line internal/scanner/scanner.go:6082 + // line internal/scanner/scanner.go:6067 switch lex.data[(lex.p)] { case 10: goto tr129 @@ -7242,7 +7220,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof165 } st_case_165: - // line internal/scanner/scanner.go:6107 + // line internal/scanner/scanner.go:6092 goto tr311 tr310: // line internal/scanner/scanner.rl:38 @@ -7261,7 +7239,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof90 } st_case_90: - // line internal/scanner/scanner.go:6126 + // line internal/scanner/scanner.go:6111 if lex.data[(lex.p)] == 10 { goto tr129 } @@ -7738,70 +7716,63 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:276 lex.act = 89 goto st168 - tr597: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:258 - lex.act = 71 - goto st168 - tr613: + tr609: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:264 lex.act = 77 goto st168 - tr617: + tr613: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:265 lex.act = 78 goto st168 - tr623: + tr619: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:266 lex.act = 79 goto st168 - tr631: + tr627: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:267 lex.act = 80 goto st168 - tr643: + tr639: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:272 lex.act = 85 goto st168 - tr648: + tr644: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:268 lex.act = 81 goto st168 - tr655: + tr651: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:270 lex.act = 83 goto st168 - tr665: + tr661: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:269 lex.act = 82 goto st168 - tr671: + tr667: // line NONE:1 lex.te = (lex.p) + 1 @@ -7813,7 +7784,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof168 } st_case_168: - // line internal/scanner/scanner.go:6678 + // line internal/scanner/scanner.go:6656 if lex.data[(lex.p)] == 96 { goto tr12 } @@ -8157,7 +8128,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof179 } st_case_179: - // line internal/scanner/scanner.go:7022 + // line internal/scanner/scanner.go:7000 switch lex.data[(lex.p)] { case 34: goto st7 @@ -15151,7 +15122,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof399 } st_case_399: - // line internal/scanner/scanner.go:14016 + // line internal/scanner/scanner.go:13994 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15159,12 +15130,8 @@ func (lex *Lexer) Lex() *token.Token { goto tr135 case 32: goto st93 - case 70: - goto st400 case 96: goto tr593 - case 102: - goto st400 } switch { case lex.data[(lex.p)] < 14: @@ -15202,7 +15169,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:14067 + // line internal/scanner/scanner.go:14041 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15250,7 +15217,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:14115 + // line internal/scanner/scanner.go:14089 switch lex.data[(lex.p)] { case 10: goto tr138 @@ -15298,7 +15265,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:14163 + // line internal/scanner/scanner.go:14137 if lex.data[(lex.p)] == 10 { goto tr134 } @@ -15312,7 +15279,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:14177 + // line internal/scanner/scanner.go:14151 switch lex.data[(lex.p)] { case 82: goto st97 @@ -15349,43 +15316,16 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof400 } st_case_400: - switch lex.data[(lex.p)] { - case 82: - goto st401 - case 96: - goto tr314 - case 114: - goto st401 + if lex.data[(lex.p)] == 61 { + goto tr594 } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr314 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr314 - } - case lex.data[(lex.p)] >= 91: - goto tr314 - } - default: - goto tr314 - } - goto tr220 + goto tr248 st401: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof401 } st_case_401: - switch lex.data[(lex.p)] { - case 79: - goto st402 - case 96: - goto tr314 - case 111: + if lex.data[(lex.p)] == 95 { goto st402 } switch { @@ -15395,7 +15335,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15412,12 +15352,40 @@ func (lex *Lexer) Lex() *token.Token { } st_case_402: switch lex.data[(lex.p)] { + case 67: + goto st403 + case 68: + goto st409 + case 70: + goto st413 + case 72: + goto st426 + case 76: + goto st438 case 77: - goto tr597 + goto st443 + case 78: + goto st450 + case 84: + goto st460 case 96: goto tr314 + case 99: + goto st403 + case 100: + goto st409 + case 102: + goto st413 + case 104: + goto st426 + case 108: + goto st438 case 109: - goto tr597 + goto st443 + case 110: + goto st450 + case 116: + goto st460 } switch { case lex.data[(lex.p)] < 58: @@ -15442,16 +15410,43 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof403 } st_case_403: - if lex.data[(lex.p)] == 61 { - goto tr598 + switch lex.data[(lex.p)] { + case 76: + goto st404 + case 96: + goto tr314 + case 108: + goto st404 } - goto tr248 + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr314 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr314 + } + case lex.data[(lex.p)] >= 91: + goto tr314 + } + default: + goto tr314 + } + goto tr220 st404: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof404 } st_case_404: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 65: + goto st405 + case 96: + goto tr314 + case 97: goto st405 } switch { @@ -15461,7 +15456,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15478,40 +15473,12 @@ func (lex *Lexer) Lex() *token.Token { } st_case_405: switch lex.data[(lex.p)] { - case 67: + case 83: goto st406 - case 68: - goto st412 - case 70: - goto st416 - case 72: - goto st429 - case 76: - goto st441 - case 77: - goto st446 - case 78: - goto st453 - case 84: - goto st463 case 96: goto tr314 - case 99: + case 115: goto st406 - case 100: - goto st412 - case 102: - goto st416 - case 104: - goto st429 - case 108: - goto st441 - case 109: - goto st446 - case 110: - goto st453 - case 116: - goto st463 } switch { case lex.data[(lex.p)] < 58: @@ -15537,11 +15504,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_406: switch lex.data[(lex.p)] { - case 76: + case 83: goto st407 case 96: goto tr314 - case 108: + case 115: goto st407 } switch { @@ -15567,12 +15534,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof407 } st_case_407: - switch lex.data[(lex.p)] { - case 65: - goto st408 - case 96: - goto tr314 - case 97: + if lex.data[(lex.p)] == 95 { goto st408 } switch { @@ -15582,7 +15544,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15598,13 +15560,8 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof408 } st_case_408: - switch lex.data[(lex.p)] { - case 83: - goto st409 - case 96: - goto tr314 - case 115: - goto st409 + if lex.data[(lex.p)] == 95 { + goto tr609 } switch { case lex.data[(lex.p)] < 58: @@ -15613,7 +15570,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15630,11 +15587,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_409: switch lex.data[(lex.p)] { - case 83: + case 73: goto st410 case 96: goto tr314 - case 115: + case 105: goto st410 } switch { @@ -15660,7 +15617,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof410 } st_case_410: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 82: + goto st411 + case 96: + goto tr314 + case 114: goto st411 } switch { @@ -15670,7 +15632,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15687,7 +15649,7 @@ func (lex *Lexer) Lex() *token.Token { } st_case_411: if lex.data[(lex.p)] == 95 { - goto tr613 + goto st412 } switch { case lex.data[(lex.p)] < 58: @@ -15712,13 +15674,8 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof412 } st_case_412: - switch lex.data[(lex.p)] { - case 73: - goto st413 - case 96: - goto tr314 - case 105: - goto st413 + if lex.data[(lex.p)] == 95 { + goto tr613 } switch { case lex.data[(lex.p)] < 58: @@ -15727,7 +15684,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15744,12 +15701,16 @@ func (lex *Lexer) Lex() *token.Token { } st_case_413: switch lex.data[(lex.p)] { - case 82: + case 73: goto st414 + case 85: + goto st418 case 96: goto tr314 - case 114: + case 105: goto st414 + case 117: + goto st418 } switch { case lex.data[(lex.p)] < 58: @@ -15774,7 +15735,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof414 } st_case_414: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 76: + goto st415 + case 96: + goto tr314 + case 108: goto st415 } switch { @@ -15784,7 +15750,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15800,8 +15766,39 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof415 } st_case_415: + switch lex.data[(lex.p)] { + case 69: + goto st416 + case 96: + goto tr314 + case 101: + goto st416 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr314 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr314 + } + case lex.data[(lex.p)] >= 91: + goto tr314 + } + default: + goto tr314 + } + goto tr220 + st416: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof416 + } + st_case_416: if lex.data[(lex.p)] == 95 { - goto tr617 + goto st417 } switch { case lex.data[(lex.p)] < 58: @@ -15821,53 +15818,13 @@ func (lex *Lexer) Lex() *token.Token { goto tr314 } goto tr220 - st416: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof416 - } - st_case_416: - switch lex.data[(lex.p)] { - case 73: - goto st417 - case 85: - goto st421 - case 96: - goto tr314 - case 105: - goto st417 - case 117: - goto st421 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr314 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr314 - } - case lex.data[(lex.p)] >= 91: - goto tr314 - } - default: - goto tr314 - } - goto tr220 st417: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof417 } st_case_417: - switch lex.data[(lex.p)] { - case 76: - goto st418 - case 96: - goto tr314 - case 108: - goto st418 + if lex.data[(lex.p)] == 95 { + goto tr619 } switch { case lex.data[(lex.p)] < 58: @@ -15876,7 +15833,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15893,11 +15850,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_418: switch lex.data[(lex.p)] { - case 69: + case 78: goto st419 case 96: goto tr314 - case 101: + case 110: goto st419 } switch { @@ -15923,7 +15880,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof419 } st_case_419: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 67: + goto st420 + case 96: + goto tr314 + case 99: goto st420 } switch { @@ -15933,7 +15895,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15949,8 +15911,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof420 } st_case_420: - if lex.data[(lex.p)] == 95 { - goto tr623 + switch lex.data[(lex.p)] { + case 84: + goto st421 + case 96: + goto tr314 + case 116: + goto st421 } switch { case lex.data[(lex.p)] < 58: @@ -15959,7 +15926,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -15976,11 +15943,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_421: switch lex.data[(lex.p)] { - case 78: + case 73: goto st422 case 96: goto tr314 - case 110: + case 105: goto st422 } switch { @@ -16007,11 +15974,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_422: switch lex.data[(lex.p)] { - case 67: + case 79: goto st423 case 96: goto tr314 - case 99: + case 111: goto st423 } switch { @@ -16038,11 +16005,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_423: switch lex.data[(lex.p)] { - case 84: + case 78: goto st424 case 96: goto tr314 - case 116: + case 110: goto st424 } switch { @@ -16068,12 +16035,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof424 } st_case_424: - switch lex.data[(lex.p)] { - case 73: - goto st425 - case 96: - goto tr314 - case 105: + if lex.data[(lex.p)] == 95 { goto st425 } switch { @@ -16083,7 +16045,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16099,13 +16061,8 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof425 } st_case_425: - switch lex.data[(lex.p)] { - case 79: - goto st426 - case 96: - goto tr314 - case 111: - goto st426 + if lex.data[(lex.p)] == 95 { + goto tr627 } switch { case lex.data[(lex.p)] < 58: @@ -16114,7 +16071,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16131,11 +16088,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_426: switch lex.data[(lex.p)] { - case 78: + case 65: goto st427 case 96: goto tr314 - case 110: + case 97: goto st427 } switch { @@ -16161,65 +16118,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof427 } st_case_427: - if lex.data[(lex.p)] == 95 { - goto st428 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr314 - } - 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 tr314 - } - case lex.data[(lex.p)] >= 91: - goto tr314 - } - default: - goto tr314 - } - goto tr220 - st428: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof428 - } - st_case_428: - if lex.data[(lex.p)] == 95 { - goto tr631 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr314 - } - 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 tr314 - } - case lex.data[(lex.p)] >= 91: - goto tr314 - } - default: - goto tr314 - } - goto tr220 - st429: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof429 - } - st_case_429: switch lex.data[(lex.p)] { - case 65: - goto st430 + case 76: + goto st428 case 96: goto tr314 - case 97: - goto st430 + case 108: + goto st428 } switch { case lex.data[(lex.p)] < 58: @@ -16239,17 +16144,74 @@ func (lex *Lexer) Lex() *token.Token { goto tr314 } goto tr220 + st428: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof428 + } + st_case_428: + switch lex.data[(lex.p)] { + case 84: + goto st429 + case 96: + goto tr314 + case 116: + goto st429 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr314 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr314 + } + case lex.data[(lex.p)] >= 91: + goto tr314 + } + default: + goto tr314 + } + goto tr220 + st429: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof429 + } + st_case_429: + if lex.data[(lex.p)] == 95 { + goto st430 + } + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr314 + } + 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 tr314 + } + case lex.data[(lex.p)] >= 91: + goto tr314 + } + default: + goto tr314 + } + goto tr220 st430: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof430 } st_case_430: switch lex.data[(lex.p)] { - case 76: + case 67: goto st431 case 96: goto tr314 - case 108: + case 99: goto st431 } switch { @@ -16276,11 +16238,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_431: switch lex.data[(lex.p)] { - case 84: + case 79: goto st432 case 96: goto tr314 - case 116: + case 111: goto st432 } switch { @@ -16306,7 +16268,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof432 } st_case_432: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 77: + goto st433 + case 96: + goto tr314 + case 109: goto st433 } switch { @@ -16316,7 +16283,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16333,11 +16300,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_433: switch lex.data[(lex.p)] { - case 67: + case 80: goto st434 case 96: goto tr314 - case 99: + case 112: goto st434 } switch { @@ -16364,11 +16331,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_434: switch lex.data[(lex.p)] { - case 79: + case 73: goto st435 case 96: goto tr314 - case 111: + case 105: goto st435 } switch { @@ -16395,11 +16362,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_435: switch lex.data[(lex.p)] { - case 77: + case 76: goto st436 case 96: goto tr314 - case 109: + case 108: goto st436 } switch { @@ -16426,11 +16393,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_436: switch lex.data[(lex.p)] { - case 80: + case 69: goto st437 case 96: goto tr314 - case 112: + case 101: goto st437 } switch { @@ -16457,12 +16424,12 @@ func (lex *Lexer) Lex() *token.Token { } st_case_437: switch lex.data[(lex.p)] { - case 73: - goto st438 + case 82: + goto tr639 case 96: goto tr314 - case 105: - goto st438 + case 114: + goto tr639 } switch { case lex.data[(lex.p)] < 58: @@ -16488,11 +16455,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_438: switch lex.data[(lex.p)] { - case 76: + case 73: goto st439 case 96: goto tr314 - case 108: + case 105: goto st439 } switch { @@ -16519,11 +16486,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_439: switch lex.data[(lex.p)] { - case 69: + case 78: goto st440 case 96: goto tr314 - case 101: + case 110: goto st440 } switch { @@ -16550,12 +16517,12 @@ func (lex *Lexer) Lex() *token.Token { } st_case_440: switch lex.data[(lex.p)] { - case 82: - goto tr643 + case 69: + goto st441 case 96: goto tr314 - case 114: - goto tr643 + case 101: + goto st441 } switch { case lex.data[(lex.p)] < 58: @@ -16580,12 +16547,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof441 } st_case_441: - switch lex.data[(lex.p)] { - case 73: - goto st442 - case 96: - goto tr314 - case 105: + if lex.data[(lex.p)] == 95 { goto st442 } switch { @@ -16595,7 +16557,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16611,13 +16573,8 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof442 } st_case_442: - switch lex.data[(lex.p)] { - case 78: - goto st443 - case 96: - goto tr314 - case 110: - goto st443 + if lex.data[(lex.p)] == 95 { + goto tr644 } switch { case lex.data[(lex.p)] < 58: @@ -16626,7 +16583,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16673,7 +16630,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof444 } st_case_444: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 84: + goto st445 + case 96: + goto tr314 + case 116: goto st445 } switch { @@ -16683,7 +16645,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16699,8 +16661,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof445 } st_case_445: - if lex.data[(lex.p)] == 95 { - goto tr648 + switch lex.data[(lex.p)] { + case 72: + goto st446 + case 96: + goto tr314 + case 104: + goto st446 } switch { case lex.data[(lex.p)] < 58: @@ -16709,7 +16676,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16726,11 +16693,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_446: switch lex.data[(lex.p)] { - case 69: + case 79: goto st447 case 96: goto tr314 - case 101: + case 111: goto st447 } switch { @@ -16757,11 +16724,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_447: switch lex.data[(lex.p)] { - case 84: + case 68: goto st448 case 96: goto tr314 - case 116: + case 100: goto st448 } switch { @@ -16787,12 +16754,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof448 } st_case_448: - switch lex.data[(lex.p)] { - case 72: - goto st449 - case 96: - goto tr314 - case 104: + if lex.data[(lex.p)] == 95 { goto st449 } switch { @@ -16802,7 +16764,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16818,13 +16780,8 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof449 } st_case_449: - switch lex.data[(lex.p)] { - case 79: - goto st450 - case 96: - goto tr314 - case 111: - goto st450 + if lex.data[(lex.p)] == 95 { + goto tr651 } switch { case lex.data[(lex.p)] < 58: @@ -16833,7 +16790,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16850,11 +16807,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_450: switch lex.data[(lex.p)] { - case 68: + case 65: goto st451 case 96: goto tr314 - case 100: + case 97: goto st451 } switch { @@ -16880,7 +16837,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof451 } st_case_451: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 77: + goto st452 + case 96: + goto tr314 + case 109: goto st452 } switch { @@ -16890,7 +16852,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16906,8 +16868,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof452 } st_case_452: - if lex.data[(lex.p)] == 95 { - goto tr655 + switch lex.data[(lex.p)] { + case 69: + goto st453 + case 96: + goto tr314 + case 101: + goto st453 } switch { case lex.data[(lex.p)] < 58: @@ -16916,7 +16883,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -16933,11 +16900,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_453: switch lex.data[(lex.p)] { - case 65: + case 83: goto st454 case 96: goto tr314 - case 97: + case 115: goto st454 } switch { @@ -16964,11 +16931,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_454: switch lex.data[(lex.p)] { - case 77: + case 80: goto st455 case 96: goto tr314 - case 109: + case 112: goto st455 } switch { @@ -16995,11 +16962,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_455: switch lex.data[(lex.p)] { - case 69: + case 65: goto st456 case 96: goto tr314 - case 101: + case 97: goto st456 } switch { @@ -17026,11 +16993,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_456: switch lex.data[(lex.p)] { - case 83: + case 67: goto st457 case 96: goto tr314 - case 115: + case 99: goto st457 } switch { @@ -17057,11 +17024,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_457: switch lex.data[(lex.p)] { - case 80: + case 69: goto st458 case 96: goto tr314 - case 112: + case 101: goto st458 } switch { @@ -17087,12 +17054,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof458 } st_case_458: - switch lex.data[(lex.p)] { - case 65: - goto st459 - case 96: - goto tr314 - case 97: + if lex.data[(lex.p)] == 95 { goto st459 } switch { @@ -17102,7 +17064,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -17118,13 +17080,8 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof459 } st_case_459: - switch lex.data[(lex.p)] { - case 67: - goto st460 - case 96: - goto tr314 - case 99: - goto st460 + if lex.data[(lex.p)] == 95 { + goto tr661 } switch { case lex.data[(lex.p)] < 58: @@ -17133,7 +17090,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -17150,11 +17107,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_460: switch lex.data[(lex.p)] { - case 69: + case 82: goto st461 case 96: goto tr314 - case 101: + case 114: goto st461 } switch { @@ -17180,7 +17137,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof461 } st_case_461: - if lex.data[(lex.p)] == 95 { + switch lex.data[(lex.p)] { + case 65: + goto st462 + case 96: + goto tr314 + case 97: goto st462 } switch { @@ -17190,7 +17152,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -17206,8 +17168,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof462 } st_case_462: - if lex.data[(lex.p)] == 95 { - goto tr665 + switch lex.data[(lex.p)] { + case 73: + goto st463 + case 96: + goto tr314 + case 105: + goto st463 } switch { case lex.data[(lex.p)] < 58: @@ -17216,7 +17183,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 96: + case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -17233,11 +17200,11 @@ func (lex *Lexer) Lex() *token.Token { } st_case_463: switch lex.data[(lex.p)] { - case 82: + case 84: goto st464 case 96: goto tr314 - case 114: + case 116: goto st464 } switch { @@ -17263,12 +17230,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof464 } st_case_464: - switch lex.data[(lex.p)] { - case 65: - goto st465 - case 96: - goto tr314 - case 97: + if lex.data[(lex.p)] == 95 { goto st465 } switch { @@ -17278,7 +17240,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -17294,13 +17256,8 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof465 } st_case_465: - switch lex.data[(lex.p)] { - case 73: - goto st466 - case 96: - goto tr314 - case 105: - goto st466 + if lex.data[(lex.p)] == 95 { + goto tr667 } switch { case lex.data[(lex.p)] < 58: @@ -17309,7 +17266,7 @@ func (lex *Lexer) Lex() *token.Token { } case lex.data[(lex.p)] > 64: switch { - case lex.data[(lex.p)] > 94: + case lex.data[(lex.p)] > 96: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { goto tr314 } @@ -17325,94 +17282,11 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof466 } st_case_466: - switch lex.data[(lex.p)] { - case 84: - goto st467 - case 96: - goto tr314 - case 116: - goto st467 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr314 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr314 - } - case lex.data[(lex.p)] >= 91: - goto tr314 - } - default: - goto tr314 - } - goto tr220 - st467: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof467 - } - st_case_467: - if lex.data[(lex.p)] == 95 { - goto st468 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr314 - } - 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 tr314 - } - case lex.data[(lex.p)] >= 91: - goto tr314 - } - default: - goto tr314 - } - goto tr220 - st468: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof468 - } - st_case_468: - if lex.data[(lex.p)] == 95 { - goto tr671 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr314 - } - 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 tr314 - } - case lex.data[(lex.p)] >= 91: - goto tr314 - } - default: - goto tr314 - } - goto tr220 - st469: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof469 - } - st_case_469: switch lex.data[(lex.p)] { case 61: - goto tr672 + goto tr668 case 124: - goto tr673 + goto tr669 } goto tr248 tr144: @@ -17421,8 +17295,8 @@ func (lex *Lexer) Lex() *token.Token { { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } - goto st470 - tr674: + goto st467 + tr670: // line internal/scanner/scanner.rl:381 lex.te = (lex.p) + 1 { @@ -17431,16 +17305,16 @@ func (lex *Lexer) Lex() *token.Token { goto st123 } } - goto st470 - tr679: + goto st467 + tr675: // line internal/scanner/scanner.rl:378 lex.te = (lex.p) (lex.p)-- { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } - goto st470 - tr681: + goto st467 + tr677: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:378 @@ -17449,8 +17323,8 @@ func (lex *Lexer) Lex() *token.Token { { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } - goto st470 - tr685: + goto st467 + tr681: // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- @@ -17460,8 +17334,8 @@ func (lex *Lexer) Lex() *token.Token { goto st123 } } - goto st470 - tr686: + goto st467 + tr682: // line internal/scanner/scanner.rl:379 lex.te = (lex.p) + 1 { @@ -17469,13 +17343,13 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_OBJECT_OPERATOR { (lex.p)++ - lex.cs = 470 + lex.cs = 467 goto _out } } - goto st470 - tr687: - lex.cs = 470 + goto st467 + tr683: + lex.cs = 467 // line internal/scanner/scanner.rl:380 lex.te = (lex.p) (lex.p)-- @@ -17489,83 +17363,83 @@ func (lex *Lexer) Lex() *token.Token { } } goto _again - st470: + st467: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof470 + goto _test_eof467 } - st_case_470: + st_case_467: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16333 + // line internal/scanner/scanner.go:16214 switch lex.data[(lex.p)] { case 10: goto tr145 case 13: - goto tr676 + goto tr672 case 32: - goto tr675 + goto tr671 case 45: - goto st474 + goto st471 case 96: - goto tr674 + goto tr670 } 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 tr675 + goto tr671 } default: - goto tr674 + goto tr670 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr674 + goto tr670 } case lex.data[(lex.p)] >= 91: - goto tr674 + goto tr670 } default: - goto tr674 + goto tr670 } - goto st475 - tr675: + goto st472 + tr671: // line NONE:1 lex.te = (lex.p) + 1 - goto st471 - tr682: + goto st468 + tr678: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:54 - goto st471 - st471: + goto st468 + st468: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof471 + goto _test_eof468 } - st_case_471: - // line internal/scanner/scanner.go:16386 + st_case_468: + // line internal/scanner/scanner.go:16267 switch lex.data[(lex.p)] { case 10: goto tr145 case 13: - goto tr680 + goto tr676 case 32: - goto tr675 + goto tr671 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr675 + goto tr671 } - goto tr679 + goto tr675 tr145: // line NONE:1 lex.te = (lex.p) + 1 @@ -17580,8 +17454,8 @@ func (lex *Lexer) Lex() *token.Token { lex.newLines.Append(lex.p + 1) } - goto st472 - tr683: + goto st469 + tr679: // line NONE:1 lex.te = (lex.p) + 1 @@ -17597,26 +17471,26 @@ func (lex *Lexer) Lex() *token.Token { lex.newLines.Append(lex.p + 1) } - goto st472 - st472: + goto st469 + st469: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof472 + goto _test_eof469 } - st_case_472: - // line internal/scanner/scanner.go:16436 + st_case_469: + // line internal/scanner/scanner.go:16317 switch lex.data[(lex.p)] { case 10: - goto tr683 + goto tr679 case 13: - goto tr684 + goto tr680 case 32: - goto tr682 + goto tr678 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr682 + goto tr678 } - goto tr681 - tr680: + goto tr677 + tr676: // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -17628,7 +17502,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st99 - tr684: + tr680: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:38 @@ -17647,12 +17521,12 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:16480 + // line internal/scanner/scanner.go:16361 if lex.data[(lex.p)] == 10 { goto tr145 } goto tr144 - tr676: + tr672: // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -17663,54 +17537,54 @@ func (lex *Lexer) Lex() *token.Token { lex.newLines.Append(lex.p + 1) } - goto st473 - st473: + goto st470 + st470: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof473 + goto _test_eof470 } - st_case_473: - // line internal/scanner/scanner.go:16502 + st_case_470: + // line internal/scanner/scanner.go:16383 if lex.data[(lex.p)] == 10 { goto tr145 } - goto tr685 - st474: + goto tr681 + st471: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof474 + goto _test_eof471 } - st_case_474: + st_case_471: if lex.data[(lex.p)] == 62 { - goto tr686 + goto tr682 } - goto tr685 - st475: + goto tr681 + st472: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof475 + goto _test_eof472 } - st_case_475: + st_case_472: if lex.data[(lex.p)] == 96 { - goto tr687 + goto tr683 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr687 + goto tr683 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr687 + goto tr683 } case lex.data[(lex.p)] >= 91: - goto tr687 + goto tr683 } default: - goto tr687 + goto tr683 } - goto st475 - tr691: - lex.cs = 476 + goto st472 + tr687: + lex.cs = 473 // line NONE:1 switch lex.act { case 0: @@ -17725,7 +17599,7 @@ func (lex *Lexer) Lex() *token.Token { lex.setTokenPosition(tkn) tok = token.T_ENCAPSED_AND_WHITESPACE - lex.cs = 499 + lex.cs = 496 { (lex.p)++ goto _out @@ -17734,8 +17608,8 @@ func (lex *Lexer) Lex() *token.Token { } goto _again - tr692: - lex.cs = 476 + tr688: + lex.cs = 473 // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:385 @@ -17744,29 +17618,29 @@ func (lex *Lexer) Lex() *token.Token { { lex.setTokenPosition(tkn) tok = token.T_ENCAPSED_AND_WHITESPACE - lex.cs = 499 + lex.cs = 496 { (lex.p)++ goto _out } } goto _again - tr696: - lex.cs = 476 + tr692: + lex.cs = 473 // line internal/scanner/scanner.rl:385 lex.te = (lex.p) (lex.p)-- { lex.setTokenPosition(tkn) tok = token.T_ENCAPSED_AND_WHITESPACE - lex.cs = 499 + lex.cs = 496 { (lex.p)++ goto _out } } goto _again - st476: + st473: // line NONE:1 lex.ts = 0 @@ -17774,13 +17648,13 @@ func (lex *Lexer) Lex() *token.Token { lex.act = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof476 + goto _test_eof473 } - st_case_476: + st_case_473: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16599 + // line internal/scanner/scanner.go:16480 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17821,120 +17695,40 @@ func (lex *Lexer) Lex() *token.Token { } switch _widec { case 1034: - goto tr689 + goto tr685 case 1037: - goto tr690 + goto tr686 } if 1024 <= _widec && _widec <= 1279 { - goto tr688 + goto tr684 } goto st0 st_case_0: st0: lex.cs = 0 goto _out - tr688: + tr684: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:385 lex.act = 146 - goto st477 - tr693: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:385 - lex.act = 146 - goto st477 - st477: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof477 - } - st_case_477: - // line internal/scanner/scanner.go:16673 - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - switch _widec { - case 1034: - goto tr689 - case 1037: - goto tr690 - } - if 1024 <= _widec && _widec <= 1279 { - goto tr688 - } - goto tr691 + goto st474 tr689: - // line internal/scanner/scanner.rl:38 + // line NONE:1 + lex.te = (lex.p) + 1 - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st478 - tr694: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st478 - st478: + // line internal/scanner/scanner.rl:385 + lex.act = 146 + goto st474 + st474: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof478 + goto _test_eof474 } - st_case_478: - // line internal/scanner/scanner.go:16753 + st_case_474: + // line internal/scanner/scanner.go:16554 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17975,94 +17769,174 @@ func (lex *Lexer) Lex() *token.Token { } switch _widec { case 1034: - goto tr694 + goto tr685 case 1037: - goto tr695 + goto tr686 } if 1024 <= _widec && _widec <= 1279 { - goto tr693 + goto tr684 + } + goto tr687 + tr685: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st475 + tr690: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st475 + st475: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof475 + } + st_case_475: + // line internal/scanner/scanner.go:16634 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + default: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + default: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + switch _widec { + case 1034: + goto tr690 + case 1037: + goto tr691 + } + if 1024 <= _widec && _widec <= 1279 { + goto tr689 + } + goto tr688 + tr686: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st476 + tr691: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st476 + st476: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof476 + } + st_case_476: + // line internal/scanner/scanner.go:16714 + _widec = int16(lex.data[(lex.p)]) + switch { + case lex.data[(lex.p)] < 11: + switch { + case lex.data[(lex.p)] > 9: + if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + default: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + case lex.data[(lex.p)] > 12: + switch { + case lex.data[(lex.p)] > 13: + if 14 <= lex.data[(lex.p)] { + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + case lex.data[(lex.p)] >= 13: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + default: + _widec = 768 + (int16(lex.data[(lex.p)]) - 0) + if lex.isNotHeredocEnd(lex.p) { + _widec += 256 + } + } + switch _widec { + case 1034: + goto tr685 + case 1037: + goto tr686 + } + if 1024 <= _widec && _widec <= 1279 { + goto tr684 } goto tr692 - tr690: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st479 - tr695: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st479 - st479: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof479 - } - st_case_479: - // line internal/scanner/scanner.go:16833 - _widec = int16(lex.data[(lex.p)]) - switch { - case lex.data[(lex.p)] < 11: - switch { - case lex.data[(lex.p)] > 9: - if 10 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 10 { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] > 12: - switch { - case lex.data[(lex.p)] > 13: - if 14 <= lex.data[(lex.p)] { - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - case lex.data[(lex.p)] >= 13: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - default: - _widec = 768 + (int16(lex.data[(lex.p)]) - 0) - if lex.isNotHeredocEnd(lex.p) { - _widec += 256 - } - } - switch _widec { - case 1034: - goto tr689 - case 1037: - goto tr690 - } - if 1024 <= _widec && _widec <= 1279 { - goto tr688 - } - goto tr696 tr146: // line internal/scanner/scanner.rl:394 lex.te = (lex.p) + 1 @@ -18070,11 +17944,11 @@ func (lex *Lexer) Lex() *token.Token { lex.ungetCnt(1) lex.setTokenPosition(tkn) tok = token.T_CURLY_OPEN - lex.call(480, 123) + lex.call(477, 123) goto _out } - goto st480 - tr704: + goto st477 + tr700: // line internal/scanner/scanner.rl:396 lex.te = (lex.p) (lex.p)-- @@ -18083,25 +17957,25 @@ func (lex *Lexer) Lex() *token.Token { { lex.growCallStack() { - lex.stack[lex.top] = 480 + lex.stack[lex.top] = 477 lex.top++ - goto st501 + goto st498 } } } - goto st480 - tr705: + goto st477 + tr701: // line internal/scanner/scanner.rl:395 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) tok = token.T_DOLLAR_OPEN_CURLY_BRACES - lex.call(480, 516) + lex.call(477, 513) goto _out } - goto st480 - tr706: - lex.cs = 480 + goto st477 + tr702: + lex.cs = 477 // line NONE:1 switch lex.act { case 147: @@ -18110,7 +17984,7 @@ func (lex *Lexer) Lex() *token.Token { lex.ungetCnt(1) lex.setTokenPosition(tkn) tok = token.T_CURLY_OPEN - lex.call(480, 123) + lex.call(477, 123) goto _out } case 148: @@ -18118,7 +17992,7 @@ func (lex *Lexer) Lex() *token.Token { (lex.p) = (lex.te) - 1 lex.setTokenPosition(tkn) tok = token.T_DOLLAR_OPEN_CURLY_BRACES - lex.call(480, 516) + lex.call(477, 513) goto _out } case 150: @@ -18129,7 +18003,7 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_ENCAPSED_AND_WHITESPACE if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { - lex.cs = 499 + lex.cs = 496 } { (lex.p)++ @@ -18139,8 +18013,8 @@ func (lex *Lexer) Lex() *token.Token { } goto _again - tr707: - lex.cs = 480 + tr703: + lex.cs = 477 // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:397 @@ -18151,7 +18025,7 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_ENCAPSED_AND_WHITESPACE if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { - lex.cs = 499 + lex.cs = 496 } { (lex.p)++ @@ -18159,8 +18033,8 @@ func (lex *Lexer) Lex() *token.Token { } } goto _again - tr711: - lex.cs = 480 + tr707: + lex.cs = 477 // line internal/scanner/scanner.rl:397 lex.te = (lex.p) (lex.p)-- @@ -18169,7 +18043,7 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_ENCAPSED_AND_WHITESPACE if len(lex.data) > lex.p+1 && lex.data[lex.p+1] != '$' && lex.data[lex.p+1] != '{' { - lex.cs = 499 + lex.cs = 496 } { (lex.p)++ @@ -18177,18 +18051,18 @@ func (lex *Lexer) Lex() *token.Token { } } goto _again - st480: + st477: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof480 + goto _test_eof477 } - st_case_480: + st_case_477: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16965 + // line internal/scanner/scanner.go:16846 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18229,31 +18103,31 @@ func (lex *Lexer) Lex() *token.Token { } switch _widec { case 1316: - goto st481 + goto st478 case 1403: goto st100 case 1546: - goto tr700 + goto tr696 case 1549: - goto tr701 + goto tr697 case 1572: - goto st485 + goto st482 case 1659: - goto st486 + goto st483 } if 1536 <= _widec && _widec <= 1791 { - goto tr699 + goto tr695 } goto st0 - st481: + st478: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof481 + goto _test_eof478 } - st_case_481: + st_case_478: if lex.data[(lex.p)] == 123 { - goto tr705 + goto tr701 } - goto tr704 + goto tr700 st100: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof100 @@ -18263,14 +18137,14 @@ func (lex *Lexer) Lex() *token.Token { goto tr146 } goto st0 - tr699: + tr695: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:397 lex.act = 150 - goto st482 - tr708: + goto st479 + tr704: // line NONE:1 lex.te = (lex.p) + 1 @@ -18278,240 +18152,240 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:397 lex.act = 150 - goto st482 - tr712: + goto st479 + tr708: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:395 lex.act = 148 - goto st482 - tr713: + goto st479 + tr709: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:394 lex.act = 147 - goto st482 + goto st479 + st479: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof479 + } + st_case_479: + // line internal/scanner/scanner.go:16956 + _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 1546: + goto tr696 + case 1549: + goto tr697 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr695 + } + goto tr702 + tr696: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st480 + tr705: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st480 + st480: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof480 + } + st_case_480: + // line internal/scanner/scanner.go:17036 + _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 1546: + goto tr705 + case 1549: + goto tr706 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr704 + } + goto tr703 + tr697: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st481 + tr706: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st481 + st481: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof481 + } + st_case_481: + // line internal/scanner/scanner.go:17116 + _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 1546: + goto tr696 + case 1549: + goto tr697 + } + if 1536 <= _widec && _widec <= 1791 { + goto tr695 + } + goto tr707 st482: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof482 } st_case_482: - // line internal/scanner/scanner.go:17075 - _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 1546: - goto tr700 - case 1549: - goto tr701 - } - if 1536 <= _widec && _widec <= 1791 { - goto tr699 - } - goto tr706 - tr700: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st483 - tr709: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st483 - st483: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof483 - } - st_case_483: - // line internal/scanner/scanner.go:17155 - _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 1546: - goto tr709 - case 1549: - goto tr710 - } - if 1536 <= _widec && _widec <= 1791 { - goto tr708 - } - goto tr707 - tr701: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st484 - tr710: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st484 - st484: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof484 - } - st_case_484: - // line internal/scanner/scanner.go:17235 - _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 1546: - goto tr700 - case 1549: - goto tr701 - } - if 1536 <= _widec && _widec <= 1791 { - goto tr699 - } - goto tr711 - st485: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof485 - } - st_case_485: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18552,23 +18426,23 @@ func (lex *Lexer) Lex() *token.Token { } switch _widec { case 1403: - goto tr705 - case 1546: - goto tr700 - case 1549: goto tr701 + case 1546: + goto tr696 + case 1549: + goto tr697 case 1659: - goto tr712 + goto tr708 } if 1536 <= _widec && _widec <= 1791 { - goto tr699 + goto tr695 } - goto tr704 - st486: + goto tr700 + st483: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof486 + goto _test_eof483 } - st_case_486: + st_case_483: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18611,16 +18485,16 @@ func (lex *Lexer) Lex() *token.Token { case 1316: goto tr146 case 1546: - goto tr700 + goto tr696 case 1549: - goto tr701 + goto tr697 case 1572: - goto tr713 + goto tr709 } if 1536 <= _widec && _widec <= 1791 { - goto tr699 + goto tr695 } - goto tr711 + goto tr707 tr148: // line internal/scanner/scanner.rl:411 lex.te = (lex.p) + 1 @@ -18629,23 +18503,23 @@ func (lex *Lexer) Lex() *token.Token { { lex.growCallStack() { - lex.stack[lex.top] = 487 + lex.stack[lex.top] = 484 lex.top++ - goto st501 + goto st498 } } } - goto st487 + goto st484 tr149: // line internal/scanner/scanner.rl:410 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) tok = token.T_DOLLAR_OPEN_CURLY_BRACES - lex.call(487, 516) + lex.call(484, 513) goto _out } - goto st487 + goto st484 tr150: // line internal/scanner/scanner.rl:409 lex.te = (lex.p) + 1 @@ -18653,12 +18527,12 @@ func (lex *Lexer) Lex() *token.Token { lex.ungetCnt(1) lex.setTokenPosition(tkn) tok = token.T_CURLY_OPEN - lex.call(487, 123) + lex.call(484, 123) goto _out } - goto st487 - tr715: - lex.cs = 487 + goto st484 + tr711: + lex.cs = 484 // line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { @@ -18671,8 +18545,8 @@ func (lex *Lexer) Lex() *token.Token { } } goto _again - tr723: - lex.cs = 487 + tr719: + lex.cs = 484 // line NONE:1 switch lex.act { case 151: @@ -18681,7 +18555,7 @@ func (lex *Lexer) Lex() *token.Token { lex.ungetCnt(1) lex.setTokenPosition(tkn) tok = token.T_CURLY_OPEN - lex.call(487, 123) + lex.call(484, 123) goto _out } case 152: @@ -18689,7 +18563,7 @@ func (lex *Lexer) Lex() *token.Token { (lex.p) = (lex.te) - 1 lex.setTokenPosition(tkn) tok = token.T_DOLLAR_OPEN_CURLY_BRACES - lex.call(487, 516) + lex.call(484, 513) goto _out } case 153: @@ -18699,9 +18573,9 @@ func (lex *Lexer) Lex() *token.Token { { lex.growCallStack() { - lex.stack[lex.top] = 487 + lex.stack[lex.top] = 484 lex.top++ - goto st501 + goto st498 } } } @@ -18730,7 +18604,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again - tr724: + tr720: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:413 @@ -18741,12 +18615,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ - lex.cs = 487 + lex.cs = 484 goto _out } } - goto st487 - tr728: + goto st484 + tr724: // line internal/scanner/scanner.rl:413 lex.te = (lex.p) (lex.p)-- @@ -18755,23 +18629,23 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ - lex.cs = 487 + lex.cs = 484 goto _out } } - goto st487 - st487: + goto st484 + st484: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof487 + goto _test_eof484 } - st_case_487: + st_case_484: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17478 + // line internal/scanner/scanner.go:17359 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18814,22 +18688,22 @@ func (lex *Lexer) Lex() *token.Token { case 1828: goto st101 case 1888: - goto tr715 + goto tr711 case 1915: goto st102 case 2058: - goto tr718 + goto tr714 case 2061: - goto tr719 + goto tr715 case 2084: - goto st491 + goto st488 case 2144: - goto tr721 + goto tr717 case 2171: - goto st492 + goto st489 } if 2048 <= _widec && _widec <= 2303 { - goto tr717 + goto tr713 } goto st0 st101: @@ -18865,21 +18739,21 @@ func (lex *Lexer) Lex() *token.Token { goto tr150 } goto st0 - tr717: + tr713: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:413 lex.act = 155 - goto st488 - tr721: + goto st485 + tr717: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:412 lex.act = 154 - goto st488 - tr725: + goto st485 + tr721: // line NONE:1 lex.te = (lex.p) + 1 @@ -18887,247 +18761,247 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:413 lex.act = 155 - goto st488 - tr729: + goto st485 + tr725: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:411 lex.act = 153 - goto st488 - tr730: + goto st485 + tr726: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:410 lex.act = 152 - goto st488 - tr731: + goto st485 + tr727: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:409 lex.act = 151 - goto st488 + goto st485 + st485: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof485 + } + st_case_485: + // line internal/scanner/scanner.go:17502 + _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 2058: + goto tr714 + case 2061: + goto tr715 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr713 + } + goto tr719 + tr714: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st486 + tr722: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st486 + st486: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof486 + } + st_case_486: + // line internal/scanner/scanner.go:17582 + _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 2058: + goto tr722 + case 2061: + goto tr723 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr721 + } + goto tr720 + tr715: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st487 + tr723: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st487 + st487: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof487 + } + st_case_487: + // line internal/scanner/scanner.go:17662 + _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 2058: + goto tr714 + case 2061: + goto tr715 + } + if 2048 <= _widec && _widec <= 2303 { + goto tr713 + } + goto tr724 st488: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof488 } st_case_488: - // line internal/scanner/scanner.go:17621 - _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 2058: - goto tr718 - case 2061: - goto tr719 - } - if 2048 <= _widec && _widec <= 2303 { - goto tr717 - } - goto tr723 - tr718: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st489 - tr726: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st489 - st489: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof489 - } - st_case_489: - // line internal/scanner/scanner.go:17701 - _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 2058: - goto tr726 - case 2061: - goto tr727 - } - if 2048 <= _widec && _widec <= 2303 { - goto tr725 - } - goto tr724 - tr719: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st490 - tr727: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st490 - st490: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof490 - } - st_case_490: - // line internal/scanner/scanner.go:17781 - _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 2058: - goto tr718 - case 2061: - goto tr719 - } - if 2048 <= _widec && _widec <= 2303 { - goto tr717 - } - goto tr728 - st491: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof491 - } - st_case_491: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19172,13 +19046,13 @@ func (lex *Lexer) Lex() *token.Token { case 1915: goto tr149 case 2058: - goto tr718 + goto tr714 case 2061: - goto tr719 + goto tr715 case 2143: - goto tr729 + goto tr725 case 2171: - goto tr730 + goto tr726 } switch { case _widec < 2113: @@ -19191,7 +19065,7 @@ func (lex *Lexer) Lex() *token.Token { switch { case _widec > 2047: if 2048 <= _widec && _widec <= 2112 { - goto tr717 + goto tr713 } case _widec >= 1920: goto tr148 @@ -19203,29 +19077,29 @@ func (lex *Lexer) Lex() *token.Token { switch { case _widec < 2145: if 2139 <= _widec && _widec <= 2144 { - goto tr717 + goto tr713 } case _widec > 2170: switch { case _widec > 2175: if 2176 <= _widec && _widec <= 2303 { - goto tr729 + goto tr725 } case _widec >= 2172: - goto tr717 + goto tr713 } default: - goto tr729 + goto tr725 } default: - goto tr729 + goto tr725 } - goto tr728 - st492: + goto tr724 + st489: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof492 + goto _test_eof489 } - st_case_492: + st_case_489: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19268,16 +19142,16 @@ func (lex *Lexer) Lex() *token.Token { case 1828: goto tr150 case 2058: - goto tr718 + goto tr714 case 2061: - goto tr719 + goto tr715 case 2084: - goto tr731 + goto tr727 } if 2048 <= _widec && _widec <= 2303 { - goto tr717 + goto tr713 } - goto tr728 + goto tr724 tr151: // line internal/scanner/scanner.rl:423 lex.te = (lex.p) + 1 @@ -19286,23 +19160,23 @@ func (lex *Lexer) Lex() *token.Token { { lex.growCallStack() { - lex.stack[lex.top] = 493 + lex.stack[lex.top] = 490 lex.top++ - goto st501 + goto st498 } } } - goto st493 + goto st490 tr152: // line internal/scanner/scanner.rl:422 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) tok = token.T_DOLLAR_OPEN_CURLY_BRACES - lex.call(493, 516) + lex.call(490, 513) goto _out } - goto st493 + goto st490 tr153: // line internal/scanner/scanner.rl:421 lex.te = (lex.p) + 1 @@ -19310,12 +19184,12 @@ func (lex *Lexer) Lex() *token.Token { lex.ungetCnt(1) lex.setTokenPosition(tkn) tok = token.T_CURLY_OPEN - lex.call(493, 123) + lex.call(490, 123) goto _out } - goto st493 - tr732: - lex.cs = 493 + goto st490 + tr728: + lex.cs = 490 // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { @@ -19328,8 +19202,8 @@ func (lex *Lexer) Lex() *token.Token { } } goto _again - tr741: - lex.cs = 493 + tr737: + lex.cs = 490 // line NONE:1 switch lex.act { case 156: @@ -19338,7 +19212,7 @@ func (lex *Lexer) Lex() *token.Token { lex.ungetCnt(1) lex.setTokenPosition(tkn) tok = token.T_CURLY_OPEN - lex.call(493, 123) + lex.call(490, 123) goto _out } case 157: @@ -19346,7 +19220,7 @@ func (lex *Lexer) Lex() *token.Token { (lex.p) = (lex.te) - 1 lex.setTokenPosition(tkn) tok = token.T_DOLLAR_OPEN_CURLY_BRACES - lex.call(493, 516) + lex.call(490, 513) goto _out } case 158: @@ -19356,9 +19230,9 @@ func (lex *Lexer) Lex() *token.Token { { lex.growCallStack() { - lex.stack[lex.top] = 493 + lex.stack[lex.top] = 490 lex.top++ - goto st501 + goto st498 } } } @@ -19387,7 +19261,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again - tr742: + tr738: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:425 @@ -19398,12 +19272,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ - lex.cs = 493 + lex.cs = 490 goto _out } } - goto st493 - tr746: + goto st490 + tr742: // line internal/scanner/scanner.rl:425 lex.te = (lex.p) (lex.p)-- @@ -19412,23 +19286,23 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_ENCAPSED_AND_WHITESPACE { (lex.p)++ - lex.cs = 493 + lex.cs = 490 goto _out } } - goto st493 - st493: + goto st490 + st490: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof493 + goto _test_eof490 } - st_case_493: + st_case_490: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18065 + // line internal/scanner/scanner.go:17946 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19469,24 +19343,24 @@ func (lex *Lexer) Lex() *token.Token { } switch _widec { case 2338: - goto tr732 + goto tr728 case 2340: goto st103 case 2427: goto st104 case 2570: - goto tr736 + goto tr732 case 2573: - goto tr737 + goto tr733 case 2594: - goto tr738 + goto tr734 case 2596: - goto st497 + goto st494 case 2683: - goto st498 + goto st495 } if 2560 <= _widec && _widec <= 2815 { - goto tr735 + goto tr731 } goto st0 st103: @@ -19522,21 +19396,21 @@ func (lex *Lexer) Lex() *token.Token { goto tr153 } goto st0 - tr735: + tr731: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:425 lex.act = 160 - goto st494 - tr738: + goto st491 + tr734: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:424 lex.act = 159 - goto st494 - tr743: + goto st491 + tr739: // line NONE:1 lex.te = (lex.p) + 1 @@ -19544,247 +19418,247 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:425 lex.act = 160 - goto st494 - tr747: + goto st491 + tr743: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:423 lex.act = 158 - goto st494 - tr748: + goto st491 + tr744: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:422 lex.act = 157 - goto st494 - tr749: + goto st491 + tr745: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:421 lex.act = 156 - goto st494 + goto st491 + st491: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof491 + } + st_case_491: + // line internal/scanner/scanner.go:18089 + _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 2570: + goto tr732 + case 2573: + goto tr733 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr731 + } + goto tr737 + tr732: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st492 + tr740: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st492 + st492: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof492 + } + st_case_492: + // line internal/scanner/scanner.go:18169 + _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 2570: + goto tr740 + case 2573: + goto tr741 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr739 + } + goto tr738 + tr733: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st493 + tr741: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st493 + st493: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof493 + } + st_case_493: + // line internal/scanner/scanner.go:18249 + _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 2570: + goto tr732 + case 2573: + goto tr733 + } + if 2560 <= _widec && _widec <= 2815 { + goto tr731 + } + goto tr742 st494: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof494 } st_case_494: - // line internal/scanner/scanner.go:18208 - _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 2570: - goto tr736 - case 2573: - goto tr737 - } - if 2560 <= _widec && _widec <= 2815 { - goto tr735 - } - goto tr741 - tr736: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st495 - tr744: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st495 - st495: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof495 - } - st_case_495: - // line internal/scanner/scanner.go:18288 - _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 2570: - goto tr744 - case 2573: - goto tr745 - } - if 2560 <= _widec && _widec <= 2815 { - goto tr743 - } - goto tr742 - tr737: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st496 - tr745: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st496 - st496: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof496 - } - st_case_496: - // line internal/scanner/scanner.go:18368 - _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 2570: - goto tr736 - case 2573: - goto tr737 - } - if 2560 <= _widec && _widec <= 2815 { - goto tr735 - } - goto tr746 - st497: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof497 - } - st_case_497: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19829,13 +19703,13 @@ func (lex *Lexer) Lex() *token.Token { case 2427: goto tr152 case 2570: - goto tr736 + goto tr732 case 2573: - goto tr737 + goto tr733 case 2655: - goto tr747 + goto tr743 case 2683: - goto tr748 + goto tr744 } switch { case _widec < 2625: @@ -19848,7 +19722,7 @@ func (lex *Lexer) Lex() *token.Token { switch { case _widec > 2559: if 2560 <= _widec && _widec <= 2624 { - goto tr735 + goto tr731 } case _widec >= 2432: goto tr151 @@ -19860,29 +19734,29 @@ func (lex *Lexer) Lex() *token.Token { switch { case _widec < 2657: if 2651 <= _widec && _widec <= 2656 { - goto tr735 + goto tr731 } case _widec > 2682: switch { case _widec > 2687: if 2688 <= _widec && _widec <= 2815 { - goto tr747 + goto tr743 } case _widec >= 2684: - goto tr735 + goto tr731 } default: - goto tr747 + goto tr743 } default: - goto tr747 + goto tr743 } - goto tr746 - st498: + goto tr742 + st495: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof498 + goto _test_eof495 } - st_case_498: + st_case_495: _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19925,18 +19799,18 @@ func (lex *Lexer) Lex() *token.Token { case 2340: goto tr153 case 2570: - goto tr736 + goto tr732 case 2573: - goto tr737 + goto tr733 case 2596: - goto tr749 + goto tr745 } if 2560 <= _widec && _widec <= 2815 { - goto tr735 + goto tr731 } - goto tr746 - tr751: - lex.cs = 499 + goto tr742 + tr747: + lex.cs = 496 // line internal/scanner/scanner.rl:433 lex.te = (lex.p) (lex.p)-- @@ -19950,18 +19824,18 @@ func (lex *Lexer) Lex() *token.Token { } } goto _again - st499: + st496: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof499 + goto _test_eof496 } - st_case_499: + st_case_496: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18595 + // line internal/scanner/scanner.go:18476 if lex.data[(lex.p)] == 96 { goto st0 } @@ -19977,33 +19851,33 @@ func (lex *Lexer) Lex() *token.Token { default: goto st0 } - goto st500 - st500: + goto st497 + st497: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof500 + goto _test_eof497 } - st_case_500: + st_case_497: if lex.data[(lex.p)] == 96 { - goto tr751 + goto tr747 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr751 + goto tr747 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr751 + goto tr747 } case lex.data[(lex.p)] >= 91: - goto tr751 + goto tr747 } default: - goto tr751 + goto tr747 } - goto st500 + goto st497 tr154: // line internal/scanner/scanner.rl:452 (lex.p) = (lex.te) - 1 @@ -20015,7 +19889,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again } } - goto st501 + goto st498 tr155: // line internal/scanner/scanner.rl:449 lex.te = (lex.p) + 1 @@ -20025,12 +19899,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_OBJECT_OPERATOR { (lex.p)++ - lex.cs = 501 + lex.cs = 498 goto _out } } - goto st501 - tr752: + goto st498 + tr748: // line internal/scanner/scanner.rl:452 lex.te = (lex.p) + 1 { @@ -20041,18 +19915,18 @@ func (lex *Lexer) Lex() *token.Token { goto _again } } - goto st501 - tr756: + goto st498 + tr752: // line internal/scanner/scanner.rl:451 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) tok = token.ID(int('[')) - lex.call(501, 506) + lex.call(498, 503) goto _out } - goto st501 - tr757: + goto st498 + tr753: // line internal/scanner/scanner.rl:452 lex.te = (lex.p) (lex.p)-- @@ -20064,8 +19938,8 @@ func (lex *Lexer) Lex() *token.Token { goto _again } } - goto st501 - tr759: + goto st498 + tr755: // line internal/scanner/scanner.rl:448 lex.te = (lex.p) (lex.p)-- @@ -20074,12 +19948,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_VARIABLE { (lex.p)++ - lex.cs = 501 + lex.cs = 498 goto _out } } - goto st501 - tr761: + goto st498 + tr757: // line internal/scanner/scanner.rl:450 lex.te = (lex.p) (lex.p)-- @@ -20088,108 +19962,108 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_STRING { (lex.p)++ - lex.cs = 501 + lex.cs = 498 goto _out } } - goto st501 - st501: + goto st498 + st498: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof501 + goto _test_eof498 } - st_case_501: + st_case_498: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18687 + // line internal/scanner/scanner.go:18568 switch lex.data[(lex.p)] { case 36: - goto st502 + goto st499 case 45: - goto tr754 + goto tr750 case 91: - goto tr756 - case 96: goto tr752 + case 96: + goto tr748 } switch { case lex.data[(lex.p)] < 92: if lex.data[(lex.p)] <= 64 { - goto tr752 + goto tr748 } case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr752 + goto tr748 } default: - goto tr752 + goto tr748 } - goto st505 - st502: + goto st502 + st499: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof502 + goto _test_eof499 } - st_case_502: + st_case_499: if lex.data[(lex.p)] == 96 { - goto tr757 + goto tr753 } switch { case lex.data[(lex.p)] < 91: if lex.data[(lex.p)] <= 64 { - goto tr757 + goto tr753 } case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr757 + goto tr753 } default: - goto tr757 + goto tr753 } - goto st503 - st503: + goto st500 + st500: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof503 + goto _test_eof500 } - st_case_503: + st_case_500: if lex.data[(lex.p)] == 96 { - goto tr759 + goto tr755 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr759 + goto tr755 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr759 + goto tr755 } case lex.data[(lex.p)] >= 91: - goto tr759 + goto tr755 } default: - goto tr759 + goto tr755 } - goto st503 - tr754: + goto st500 + tr750: // line NONE:1 lex.te = (lex.p) + 1 - goto st504 - st504: + goto st501 + st501: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof504 + goto _test_eof501 } - st_case_504: - // line internal/scanner/scanner.go:18768 + st_case_501: + // line internal/scanner/scanner.go:18649 if lex.data[(lex.p)] == 62 { goto st105 } - goto tr757 + goto tr753 st105: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof105 @@ -20211,32 +20085,32 @@ func (lex *Lexer) Lex() *token.Token { goto tr154 } goto tr155 - st505: + st502: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof505 + goto _test_eof502 } - st_case_505: + st_case_502: if lex.data[(lex.p)] == 96 { - goto tr761 + goto tr757 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr761 + 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 tr761 + goto tr757 } case lex.data[(lex.p)] >= 91: - goto tr761 + goto tr757 } default: - goto tr761 + goto tr757 } - goto st505 + goto st502 tr156: // line internal/scanner/scanner.rl:456 (lex.p) = (lex.te) - 1 @@ -20245,20 +20119,20 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_NUM_STRING { (lex.p)++ - lex.cs = 506 + lex.cs = 503 goto _out } } - goto st506 - tr762: + goto st503 + tr758: // line internal/scanner/scanner.rl:462 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 st506 - tr763: + goto st503 + tr759: // line internal/scanner/scanner.rl:459 lex.te = (lex.p) + 1 { @@ -20267,8 +20141,8 @@ func (lex *Lexer) Lex() *token.Token { lex.ret(2) goto _out } - goto st506 - tr766: + goto st503 + tr762: // line internal/scanner/scanner.rl:460 lex.te = (lex.p) + 1 { @@ -20276,12 +20150,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.ID(int(lex.data[lex.ts])) { (lex.p)++ - lex.cs = 506 + lex.cs = 503 goto _out } } - goto st506 - tr770: + goto st503 + tr766: // line internal/scanner/scanner.rl:461 lex.te = (lex.p) + 1 { @@ -20290,8 +20164,8 @@ func (lex *Lexer) Lex() *token.Token { lex.ret(2) goto _out } - goto st506 - tr771: + goto st503 + tr767: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:459 @@ -20303,8 +20177,8 @@ func (lex *Lexer) Lex() *token.Token { lex.ret(2) goto _out } - goto st506 - tr772: + goto st503 + tr768: // line internal/scanner/scanner.rl:462 lex.te = (lex.p) (lex.p)-- @@ -20312,8 +20186,8 @@ func (lex *Lexer) Lex() *token.Token { c := lex.data[lex.p] lex.error(fmt.Sprintf("WARNING: Unexpected character in input: '%c' (ASCII=%d)", c, c)) } - goto st506 - tr773: + goto st503 + tr769: // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- @@ -20322,12 +20196,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.ID(int(lex.data[lex.ts])) { (lex.p)++ - lex.cs = 506 + lex.cs = 503 goto _out } } - goto st506 - tr775: + goto st503 + tr771: // line internal/scanner/scanner.rl:457 lex.te = (lex.p) (lex.p)-- @@ -20336,12 +20210,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_VARIABLE { (lex.p)++ - lex.cs = 506 + lex.cs = 503 goto _out } } - goto st506 - tr776: + goto st503 + tr772: // line internal/scanner/scanner.rl:456 lex.te = (lex.p) (lex.p)-- @@ -20350,12 +20224,12 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_NUM_STRING { (lex.p)++ - lex.cs = 506 + lex.cs = 503 goto _out } } - goto st506 - tr780: + goto st503 + tr776: // line internal/scanner/scanner.rl:458 lex.te = (lex.p) (lex.p)-- @@ -20364,64 +20238,64 @@ func (lex *Lexer) Lex() *token.Token { tok = token.T_STRING { (lex.p)++ - lex.cs = 506 + lex.cs = 503 goto _out } } - goto st506 - st506: + goto st503 + st503: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof506 + goto _test_eof503 } - st_case_506: + st_case_503: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18900 + // line internal/scanner/scanner.go:18781 switch lex.data[(lex.p)] { case 10: - goto tr764 + goto tr760 case 13: - goto tr765 + goto tr761 case 32: - goto tr763 + goto tr759 case 33: - goto tr766 - case 35: - goto tr763 - case 36: - goto st509 - case 39: - goto tr763 - case 48: - goto tr768 - case 92: - goto tr763 - case 93: - goto tr770 - case 96: goto tr762 + case 35: + goto tr759 + case 36: + goto st506 + case 39: + goto tr759 + case 48: + goto tr764 + case 92: + goto tr759 + case 93: + goto tr766 + case 96: + goto tr758 case 124: - goto tr766 + goto tr762 case 126: - goto tr766 + goto tr762 } switch { case lex.data[(lex.p)] < 37: switch { case lex.data[(lex.p)] < 9: if lex.data[(lex.p)] <= 8 { - goto tr762 + goto tr758 } case lex.data[(lex.p)] > 12: if 14 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 34 { - goto tr762 + goto tr758 } default: - goto tr763 + goto tr759 } case lex.data[(lex.p)] > 47: switch { @@ -20433,19 +20307,19 @@ func (lex *Lexer) Lex() *token.Token { switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr762 + goto tr758 } case lex.data[(lex.p)] >= 91: - goto tr766 + goto tr762 } default: - goto tr766 + goto tr762 } default: - goto tr766 + goto tr762 } - goto st515 - tr764: + goto st512 + tr760: // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -20456,24 +20330,86 @@ func (lex *Lexer) Lex() *token.Token { lex.newLines.Append(lex.p + 1) } + goto st504 + st504: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof504 + } + st_case_504: + // line internal/scanner/scanner.go:18863 + goto tr767 + tr761: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st505 + st505: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof505 + } + st_case_505: + // line internal/scanner/scanner.go:18882 + if lex.data[(lex.p)] == 10 { + goto tr760 + } + goto tr768 + st506: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof506 + } + st_case_506: + if lex.data[(lex.p)] == 96 { + goto tr769 + } + switch { + case lex.data[(lex.p)] < 91: + if lex.data[(lex.p)] <= 64 { + goto tr769 + } + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr769 + } + default: + goto tr769 + } goto st507 st507: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof507 } st_case_507: - // line internal/scanner/scanner.go:18982 - goto tr771 - tr765: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) + if lex.data[(lex.p)] == 96 { + goto tr771 } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) + switch { + case lex.data[(lex.p)] < 58: + if lex.data[(lex.p)] <= 47 { + goto tr771 + } + case lex.data[(lex.p)] > 64: + switch { + case lex.data[(lex.p)] > 94: + if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { + goto tr771 + } + case lex.data[(lex.p)] >= 91: + goto tr771 + } + default: + goto tr771 } + goto st507 + tr764: + // line NONE:1 + lex.te = (lex.p) + 1 goto st508 st508: @@ -20481,69 +20417,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:19001 - if lex.data[(lex.p)] == 10 { - goto tr764 - } - goto tr772 - st509: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof509 - } - st_case_509: - if lex.data[(lex.p)] == 96 { - goto tr773 - } - switch { - case lex.data[(lex.p)] < 91: - if lex.data[(lex.p)] <= 64 { - goto tr773 - } - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr773 - } - default: - goto tr773 - } - goto st510 - st510: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof510 - } - st_case_510: - if lex.data[(lex.p)] == 96 { - goto tr775 - } - switch { - case lex.data[(lex.p)] < 58: - if lex.data[(lex.p)] <= 47 { - goto tr775 - } - case lex.data[(lex.p)] > 64: - switch { - case lex.data[(lex.p)] > 94: - if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr775 - } - case lex.data[(lex.p)] >= 91: - goto tr775 - } - default: - goto tr775 - } - goto st510 - tr768: - // line NONE:1 - lex.te = (lex.p) + 1 - - goto st511 - st511: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof511 - } - st_case_511: - // line internal/scanner/scanner.go:19063 + // line internal/scanner/scanner.go:18944 switch lex.data[(lex.p)] { case 95: goto st106 @@ -20555,25 +20429,25 @@ func (lex *Lexer) Lex() *token.Token { if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { goto tr157 } - goto tr776 + goto tr772 tr157: // line NONE:1 lex.te = (lex.p) + 1 - goto st512 - st512: + goto st509 + st509: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof512 + goto _test_eof509 } - st_case_512: - // line internal/scanner/scanner.go:19086 + st_case_509: + // line internal/scanner/scanner.go:18967 if lex.data[(lex.p)] == 95 { goto st106 } if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 57 { goto tr157 } - goto tr776 + goto tr772 st106: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof106 @@ -20596,20 +20470,20 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - goto st513 - st513: + goto st510 + st510: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof513 + goto _test_eof510 } - st_case_513: - // line internal/scanner/scanner.go:19122 + st_case_510: + // line internal/scanner/scanner.go:19003 if lex.data[(lex.p)] == 95 { goto st107 } if 48 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 49 { goto tr158 } - goto tr776 + goto tr772 st108: if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof108 @@ -20632,13 +20506,13 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - goto st514 - st514: + goto st511 + st511: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof514 + goto _test_eof511 } - st_case_514: - // line internal/scanner/scanner.go:19158 + st_case_511: + // line internal/scanner/scanner.go:19039 if lex.data[(lex.p)] == 95 { goto st108 } @@ -20654,35 +20528,35 @@ func (lex *Lexer) Lex() *token.Token { default: goto tr159 } - goto tr776 - st515: + goto tr772 + st512: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof515 + goto _test_eof512 } - st_case_515: + st_case_512: if lex.data[(lex.p)] == 96 { - goto tr780 + goto tr776 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr780 + goto tr776 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr780 + goto tr776 } case lex.data[(lex.p)] >= 91: - goto tr780 + goto tr776 } default: - goto tr780 + goto tr776 } - goto st515 + goto st512 tr160: - lex.cs = 516 + lex.cs = 513 // line internal/scanner/scanner.rl:470 (lex.p) = (lex.te) - 1 { @@ -20691,7 +20565,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr162: - lex.cs = 516 + lex.cs = 513 // line internal/scanner/scanner.rl:469 lex.te = (lex.p) + 1 { @@ -20705,8 +20579,8 @@ func (lex *Lexer) Lex() *token.Token { } } goto _again - tr781: - lex.cs = 516 + tr777: + lex.cs = 513 // line internal/scanner/scanner.rl:470 lex.te = (lex.p) + 1 { @@ -20714,8 +20588,8 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 123 } goto _again - tr783: - lex.cs = 516 + tr779: + lex.cs = 513 // line internal/scanner/scanner.rl:470 lex.te = (lex.p) (lex.p)-- @@ -20724,69 +20598,69 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 123 } goto _again - st516: + st513: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof516 + goto _test_eof513 } - st_case_516: + st_case_513: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19237 + // line internal/scanner/scanner.go:19118 if lex.data[(lex.p)] == 96 { - goto tr781 + goto tr777 } switch { case lex.data[(lex.p)] < 91: if lex.data[(lex.p)] <= 64 { - goto tr781 + goto tr777 } case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr781 + goto tr777 } default: - goto tr781 + goto tr777 } - goto tr782 - tr782: + goto tr778 + tr778: // line NONE:1 lex.te = (lex.p) + 1 - goto st517 - st517: + goto st514 + st514: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof517 + goto _test_eof514 } - st_case_517: - // line internal/scanner/scanner.go:19264 + st_case_514: + // line internal/scanner/scanner.go:19145 switch lex.data[(lex.p)] { case 91: goto tr162 case 96: - goto tr783 + goto tr779 case 125: goto tr162 } switch { case lex.data[(lex.p)] < 58: if lex.data[(lex.p)] <= 47 { - goto tr783 + goto tr779 } case lex.data[(lex.p)] > 64: switch { case lex.data[(lex.p)] > 94: if 123 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 127 { - goto tr783 + goto tr779 } case lex.data[(lex.p)] >= 92: - goto tr783 + goto tr779 } default: - goto tr783 + goto tr779 } goto st109 st109: @@ -20826,9 +20700,9 @@ func (lex *Lexer) Lex() *token.Token { { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } - goto st518 - tr784: - lex.cs = 518 + goto st515 + tr780: + lex.cs = 515 // line internal/scanner/scanner.rl:476 lex.te = (lex.p) + 1 { @@ -20836,29 +20710,29 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 123 } goto _again - tr787: - lex.cs = 518 + tr783: + lex.cs = 515 // line internal/scanner/scanner.rl:475 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) tok = token.ID(int('(')) - lex.cs = 522 + lex.cs = 519 { (lex.p)++ goto _out } } goto _again - tr788: + tr784: // line internal/scanner/scanner.rl:474 lex.te = (lex.p) (lex.p)-- { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } - goto st518 - tr790: + goto st515 + tr786: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:474 @@ -20867,9 +20741,9 @@ func (lex *Lexer) Lex() *token.Token { { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } - goto st518 - tr794: - lex.cs = 518 + goto st515 + tr790: + lex.cs = 515 // line internal/scanner/scanner.rl:476 lex.te = (lex.p) (lex.p)-- @@ -20878,62 +20752,62 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 123 } goto _again - st518: + st515: // line NONE:1 lex.ts = 0 if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof518 + goto _test_eof515 } - st_case_518: + st_case_515: // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19371 + // line internal/scanner/scanner.go:19252 switch lex.data[(lex.p)] { case 10: goto tr164 case 13: - goto tr786 + goto tr782 case 32: - goto tr785 + goto tr781 case 40: - goto tr787 + goto tr783 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr785 + goto tr781 } - goto tr784 - tr785: + goto tr780 + tr781: // line NONE:1 lex.te = (lex.p) + 1 - goto st519 - tr791: + goto st516 + tr787: // line NONE:1 lex.te = (lex.p) + 1 // line internal/scanner/scanner.rl:54 - goto st519 - st519: + goto st516 + st516: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof519 + goto _test_eof516 } - st_case_519: - // line internal/scanner/scanner.go:19403 + st_case_516: + // line internal/scanner/scanner.go:19284 switch lex.data[(lex.p)] { case 10: goto tr164 case 13: - goto tr789 - case 32: goto tr785 + case 32: + goto tr781 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr785 + goto tr781 } - goto tr788 + goto tr784 tr164: // line NONE:1 lex.te = (lex.p) + 1 @@ -20948,8 +20822,8 @@ func (lex *Lexer) Lex() *token.Token { lex.newLines.Append(lex.p + 1) } - goto st520 - tr792: + goto st517 + tr788: // line NONE:1 lex.te = (lex.p) + 1 @@ -20965,26 +20839,26 @@ func (lex *Lexer) Lex() *token.Token { lex.newLines.Append(lex.p + 1) } - goto st520 - st520: + goto st517 + st517: if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof520 + goto _test_eof517 } - st_case_520: - // line internal/scanner/scanner.go:19453 + st_case_517: + // line internal/scanner/scanner.go:19334 switch lex.data[(lex.p)] { case 10: - goto tr792 + goto tr788 case 13: - goto tr793 + goto tr789 case 32: - goto tr791 + goto tr787 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr791 + goto tr787 } - goto tr790 - tr789: + goto tr786 + tr785: // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -20996,7 +20870,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st110 - tr793: + tr789: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:38 @@ -21015,12 +20889,168 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:19497 + // line internal/scanner/scanner.go:19378 if lex.data[(lex.p)] == 10 { goto tr164 } goto tr163 - tr786: + tr782: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st518 + st518: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof518 + } + st_case_518: + // line internal/scanner/scanner.go:19400 + if lex.data[(lex.p)] == 10 { + goto tr164 + } + goto tr790 + tr165: + // line internal/scanner/scanner.rl:480 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + } + goto st519 + tr791: + lex.cs = 519 + // line internal/scanner/scanner.rl:482 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 123 + } + goto _again + tr794: + lex.cs = 519 + // line internal/scanner/scanner.rl:481 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(tkn) + tok = token.ID(int(')')) + lex.cs = 523 + { + (lex.p)++ + goto _out + } + } + goto _again + tr795: + // line internal/scanner/scanner.rl:480 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + } + goto st519 + tr797: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:480 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + } + goto st519 + tr801: + lex.cs = 519 + // line internal/scanner/scanner.rl:482 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + lex.cs = 123 + } + goto _again + st519: + // line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof519 + } + st_case_519: + // line NONE:1 + lex.ts = (lex.p) + + // line internal/scanner/scanner.go:19454 + switch lex.data[(lex.p)] { + case 10: + goto tr166 + case 13: + goto tr793 + case 32: + goto tr792 + case 41: + goto tr794 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr792 + } + goto tr791 + tr792: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st520 + tr798: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:54 + + goto st520 + st520: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof520 + } + st_case_520: + // line internal/scanner/scanner.go:19486 + switch lex.data[(lex.p)] { + case 10: + goto tr166 + case 13: + goto tr796 + case 32: + goto tr792 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr792 + } + goto tr795 + tr166: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st521 + tr799: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -21037,176 +21067,20 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof521 } st_case_521: - // line internal/scanner/scanner.go:19519 - if lex.data[(lex.p)] == 10 { - goto tr164 - } - goto tr794 - tr165: - // line internal/scanner/scanner.rl:480 - (lex.p) = (lex.te) - 1 - { - lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) - } - goto st522 - tr795: - lex.cs = 522 - // line internal/scanner/scanner.rl:482 - lex.te = (lex.p) + 1 - { - lex.ungetCnt(1) - lex.cs = 123 - } - goto _again - tr798: - lex.cs = 522 - // line internal/scanner/scanner.rl:481 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(tkn) - tok = token.ID(int(')')) - lex.cs = 526 - { - (lex.p)++ - goto _out - } - } - goto _again - tr799: - // line internal/scanner/scanner.rl:480 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) - } - goto st522 - tr801: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:480 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) - } - goto st522 - tr805: - lex.cs = 522 - // line internal/scanner/scanner.rl:482 - lex.te = (lex.p) - (lex.p)-- - { - lex.ungetCnt(1) - lex.cs = 123 - } - 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 internal/scanner/scanner.go:19573 + // line internal/scanner/scanner.go:19536 switch lex.data[(lex.p)] { case 10: - goto tr166 - case 13: - goto tr797 - case 32: - goto tr796 - case 41: - goto tr798 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr796 - } - goto tr795 - tr796: - // line NONE:1 - lex.te = (lex.p) + 1 - - goto st523 - tr802: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:54 - - goto st523 - st523: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof523 - } - st_case_523: - // line internal/scanner/scanner.go:19605 - switch lex.data[(lex.p)] { - case 10: - goto tr166 + goto tr799 case 13: goto tr800 case 32: - goto tr796 + goto tr798 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr796 + goto tr798 } - goto tr799 - tr166: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st524 - tr803: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st524 - st524: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof524 - } - st_case_524: - // line internal/scanner/scanner.go:19655 - switch lex.data[(lex.p)] { - case 10: - goto tr803 - case 13: - goto tr804 - case 32: - goto tr802 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr802 - } - goto tr801 - tr800: + goto tr797 + tr796: // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -21218,7 +21092,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st111 - tr804: + tr800: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:38 @@ -21237,12 +21111,168 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof111 } st_case_111: - // line internal/scanner/scanner.go:19699 + // line internal/scanner/scanner.go:19580 if lex.data[(lex.p)] == 10 { goto tr166 } goto tr165 - tr797: + tr793: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st522 + st522: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof522 + } + st_case_522: + // line internal/scanner/scanner.go:19602 + if lex.data[(lex.p)] == 10 { + goto tr166 + } + goto tr801 + tr167: + // line internal/scanner/scanner.rl:486 + (lex.p) = (lex.te) - 1 + { + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + } + goto st523 + tr802: + lex.cs = 523 + // line internal/scanner/scanner.rl:488 + lex.te = (lex.p) + 1 + { + lex.ungetCnt(1) + lex.cs = 123 + } + goto _again + tr805: + lex.cs = 523 + // line internal/scanner/scanner.rl:487 + lex.te = (lex.p) + 1 + { + lex.setTokenPosition(tkn) + tok = token.ID(int(';')) + lex.cs = 527 + { + (lex.p)++ + goto _out + } + } + goto _again + tr806: + // line internal/scanner/scanner.rl:486 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + } + goto st523 + tr808: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:486 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) + } + goto st523 + tr812: + lex.cs = 523 + // line internal/scanner/scanner.rl:488 + lex.te = (lex.p) + (lex.p)-- + { + lex.ungetCnt(1) + lex.cs = 123 + } + goto _again + st523: + // line NONE:1 + lex.ts = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof523 + } + st_case_523: + // line NONE:1 + lex.ts = (lex.p) + + // line internal/scanner/scanner.go:19656 + switch lex.data[(lex.p)] { + case 10: + goto tr168 + case 13: + goto tr804 + case 32: + goto tr803 + case 59: + goto tr805 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr803 + } + goto tr802 + tr803: + // line NONE:1 + lex.te = (lex.p) + 1 + + goto st524 + tr809: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:54 + + goto st524 + st524: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof524 + } + st_case_524: + // line internal/scanner/scanner.go:19688 + switch lex.data[(lex.p)] { + case 10: + goto tr168 + case 13: + goto tr807 + case 32: + goto tr803 + } + if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { + goto tr803 + } + goto tr806 + tr168: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st525 + tr810: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -21259,176 +21289,20 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof525 } st_case_525: - // line internal/scanner/scanner.go:19721 - if lex.data[(lex.p)] == 10 { - goto tr166 - } - goto tr805 - tr167: - // line internal/scanner/scanner.rl:486 - (lex.p) = (lex.te) - 1 - { - lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) - } - goto st526 - tr806: - lex.cs = 526 - // line internal/scanner/scanner.rl:488 - lex.te = (lex.p) + 1 - { - lex.ungetCnt(1) - lex.cs = 123 - } - goto _again - tr809: - lex.cs = 526 - // line internal/scanner/scanner.rl:487 - lex.te = (lex.p) + 1 - { - lex.setTokenPosition(tkn) - tok = token.ID(int(';')) - lex.cs = 530 - { - (lex.p)++ - goto _out - } - } - goto _again - tr810: - // line internal/scanner/scanner.rl:486 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) - } - goto st526 - tr812: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:486 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) - } - goto st526 - tr816: - lex.cs = 526 - // line internal/scanner/scanner.rl:488 - lex.te = (lex.p) - (lex.p)-- - { - lex.ungetCnt(1) - lex.cs = 123 - } - goto _again - st526: - // line NONE:1 - lex.ts = 0 - - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof526 - } - st_case_526: - // line NONE:1 - lex.ts = (lex.p) - - // line internal/scanner/scanner.go:19775 + // line internal/scanner/scanner.go:19738 switch lex.data[(lex.p)] { case 10: - goto tr168 - case 13: - goto tr808 - case 32: - goto tr807 - case 59: - goto tr809 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr807 - } - goto tr806 - tr807: - // line NONE:1 - lex.te = (lex.p) + 1 - - goto st527 - tr813: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:54 - - goto st527 - st527: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof527 - } - st_case_527: - // line internal/scanner/scanner.go:19807 - switch lex.data[(lex.p)] { - case 10: - goto tr168 + goto tr810 case 13: goto tr811 case 32: - goto tr807 + goto tr809 } if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr807 + goto tr809 } - goto tr810 - tr168: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st528 - tr814: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st528 - st528: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof528 - } - st_case_528: - // line internal/scanner/scanner.go:19857 - switch lex.data[(lex.p)] { - case 10: - goto tr814 - case 13: - goto tr815 - case 32: - goto tr813 - } - if 9 <= lex.data[(lex.p)] && lex.data[(lex.p)] <= 12 { - goto tr813 - } - goto tr812 - tr811: + goto tr808 + tr807: // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -21440,7 +21314,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st112 - tr815: + tr811: // line internal/scanner/scanner.rl:54 // line internal/scanner/scanner.rl:38 @@ -21459,12 +21333,134 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof112 } st_case_112: - // line internal/scanner/scanner.go:19901 + // line internal/scanner/scanner.go:19782 if lex.data[(lex.p)] == 10 { goto tr168 } goto tr167 - tr808: + tr804: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st526 + st526: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof526 + } + st_case_526: + // line internal/scanner/scanner.go:19804 + if lex.data[(lex.p)] == 10 { + goto tr168 + } + goto tr812 + tr816: + // line NONE:1 + switch lex.act { + case 0: + { + { + goto st0 + } + } + case 186: + { + (lex.p) = (lex.te) - 1 + lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + } + } + + goto st527 + tr817: + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:492 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + } + goto st527 + tr821: + // line internal/scanner/scanner.rl:492 + lex.te = (lex.p) + (lex.p)-- + { + lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + } + goto st527 + st527: + // line NONE:1 + lex.ts = 0 + + // line NONE:1 + lex.act = 0 + + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof527 + } + st_case_527: + // line NONE:1 + lex.ts = (lex.p) + + // line internal/scanner/scanner.go:19848 + switch lex.data[(lex.p)] { + case 10: + goto tr814 + case 13: + goto tr815 + } + goto tr813 + tr813: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:492 + lex.act = 186 + goto st528 + tr818: + // line NONE:1 + lex.te = (lex.p) + 1 + + // line internal/scanner/scanner.rl:54 + + // line internal/scanner/scanner.rl:492 + lex.act = 186 + goto st528 + st528: + if (lex.p)++; (lex.p) == (lex.pe) { + goto _test_eof528 + } + st_case_528: + // line internal/scanner/scanner.go:19877 + switch lex.data[(lex.p)] { + case 10: + goto tr814 + case 13: + goto tr815 + } + goto tr813 + tr814: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) + } + + goto st529 + tr819: + // line internal/scanner/scanner.rl:54 + // line internal/scanner/scanner.rl:38 if lex.data[lex.p] == '\n' { @@ -21481,175 +21477,53 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof529 } st_case_529: - // line internal/scanner/scanner.go:19923 - if lex.data[(lex.p)] == 10 { - goto tr168 + // line internal/scanner/scanner.go:19916 + switch lex.data[(lex.p)] { + case 10: + goto tr819 + case 13: + goto tr820 } - goto tr816 - tr820: - // line NONE:1 - switch lex.act { - case 0: - { - { - goto st0 - } - } - case 186: - { - (lex.p) = (lex.te) - 1 - lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) - } + goto tr818 + tr815: + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) + } + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) } goto st530 - tr821: + tr820: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:492 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + // line internal/scanner/scanner.rl:38 + + if lex.data[lex.p] == '\n' { + lex.newLines.Append(lex.p + 1) } - goto st530 - tr825: - // line internal/scanner/scanner.rl:492 - lex.te = (lex.p) - (lex.p)-- - { - lex.addFreeFloatingToken(tkn, token.T_HALT_COMPILER, lex.ts, lex.te) + + if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { + lex.newLines.Append(lex.p + 1) } + goto st530 st530: - // line NONE:1 - lex.ts = 0 - - // line NONE:1 - lex.act = 0 - if (lex.p)++; (lex.p) == (lex.pe) { goto _test_eof530 } st_case_530: - // line NONE:1 - lex.ts = (lex.p) - - // line internal/scanner/scanner.go:19967 + // line internal/scanner/scanner.go:19955 switch lex.data[(lex.p)] { case 10: - goto tr818 + goto tr814 case 13: - goto tr819 + goto tr815 } - goto tr817 - tr817: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:492 - lex.act = 186 - goto st531 - tr822: - // line NONE:1 - lex.te = (lex.p) + 1 - - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:492 - lex.act = 186 - goto st531 - st531: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof531 - } - st_case_531: - // line internal/scanner/scanner.go:19996 - switch lex.data[(lex.p)] { - case 10: - goto tr818 - case 13: - goto tr819 - } - goto tr817 - tr818: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st532 - tr823: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st532 - st532: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof532 - } - st_case_532: - // line internal/scanner/scanner.go:20035 - switch lex.data[(lex.p)] { - case 10: - goto tr823 - case 13: - goto tr824 - } - goto tr822 - tr819: - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st533 - tr824: - // line internal/scanner/scanner.rl:54 - - // line internal/scanner/scanner.rl:38 - - if lex.data[lex.p] == '\n' { - lex.newLines.Append(lex.p + 1) - } - - if lex.data[lex.p] == '\r' && lex.data[lex.p+1] != '\n' { - lex.newLines.Append(lex.p + 1) - } - - goto st533 - st533: - if (lex.p)++; (lex.p) == (lex.pe) { - goto _test_eof533 - } - st_case_533: - // line internal/scanner/scanner.go:20074 - switch lex.data[(lex.p)] { - case 10: - goto tr818 - case 13: - goto tr819 - } - goto tr817 + goto tr813 st_out: _test_eof113: lex.cs = 113 @@ -23016,6 +22890,9 @@ func (lex *Lexer) Lex() *token.Token { _test_eof469: lex.cs = 469 goto _test_eof + _test_eof99: + lex.cs = 99 + goto _test_eof _test_eof470: lex.cs = 470 goto _test_eof @@ -23025,9 +22902,6 @@ func (lex *Lexer) Lex() *token.Token { _test_eof472: lex.cs = 472 goto _test_eof - _test_eof99: - lex.cs = 99 - goto _test_eof _test_eof473: lex.cs = 473 goto _test_eof @@ -23046,6 +22920,9 @@ func (lex *Lexer) Lex() *token.Token { _test_eof478: lex.cs = 478 goto _test_eof + _test_eof100: + lex.cs = 100 + goto _test_eof _test_eof479: lex.cs = 479 goto _test_eof @@ -23055,9 +22932,6 @@ func (lex *Lexer) Lex() *token.Token { _test_eof481: lex.cs = 481 goto _test_eof - _test_eof100: - lex.cs = 100 - goto _test_eof _test_eof482: lex.cs = 482 goto _test_eof @@ -23067,6 +22941,12 @@ func (lex *Lexer) Lex() *token.Token { _test_eof484: lex.cs = 484 goto _test_eof + _test_eof101: + lex.cs = 101 + goto _test_eof + _test_eof102: + lex.cs = 102 + goto _test_eof _test_eof485: lex.cs = 485 goto _test_eof @@ -23076,12 +22956,6 @@ func (lex *Lexer) Lex() *token.Token { _test_eof487: lex.cs = 487 goto _test_eof - _test_eof101: - lex.cs = 101 - goto _test_eof - _test_eof102: - lex.cs = 102 - goto _test_eof _test_eof488: lex.cs = 488 goto _test_eof @@ -23091,6 +22965,12 @@ func (lex *Lexer) Lex() *token.Token { _test_eof490: lex.cs = 490 goto _test_eof + _test_eof103: + lex.cs = 103 + goto _test_eof + _test_eof104: + lex.cs = 104 + goto _test_eof _test_eof491: lex.cs = 491 goto _test_eof @@ -23100,12 +22980,6 @@ func (lex *Lexer) Lex() *token.Token { _test_eof493: lex.cs = 493 goto _test_eof - _test_eof103: - lex.cs = 103 - goto _test_eof - _test_eof104: - lex.cs = 104 - goto _test_eof _test_eof494: lex.cs = 494 goto _test_eof @@ -23130,6 +23004,9 @@ func (lex *Lexer) Lex() *token.Token { _test_eof501: lex.cs = 501 goto _test_eof + _test_eof105: + lex.cs = 105 + goto _test_eof _test_eof502: lex.cs = 502 goto _test_eof @@ -23139,9 +23016,6 @@ func (lex *Lexer) Lex() *token.Token { _test_eof504: lex.cs = 504 goto _test_eof - _test_eof105: - lex.cs = 105 - goto _test_eof _test_eof505: lex.cs = 505 goto _test_eof @@ -23157,30 +23031,33 @@ func (lex *Lexer) Lex() *token.Token { _test_eof509: lex.cs = 509 goto _test_eof + _test_eof106: + lex.cs = 106 + goto _test_eof + _test_eof107: + lex.cs = 107 + goto _test_eof _test_eof510: lex.cs = 510 goto _test_eof + _test_eof108: + lex.cs = 108 + goto _test_eof _test_eof511: lex.cs = 511 goto _test_eof _test_eof512: lex.cs = 512 goto _test_eof - _test_eof106: - lex.cs = 106 - goto _test_eof - _test_eof107: - lex.cs = 107 - goto _test_eof _test_eof513: lex.cs = 513 goto _test_eof - _test_eof108: - lex.cs = 108 - goto _test_eof _test_eof514: lex.cs = 514 goto _test_eof + _test_eof109: + lex.cs = 109 + goto _test_eof _test_eof515: lex.cs = 515 goto _test_eof @@ -23190,8 +23067,8 @@ func (lex *Lexer) Lex() *token.Token { _test_eof517: lex.cs = 517 goto _test_eof - _test_eof109: - lex.cs = 109 + _test_eof110: + lex.cs = 110 goto _test_eof _test_eof518: lex.cs = 518 @@ -23202,12 +23079,12 @@ func (lex *Lexer) Lex() *token.Token { _test_eof520: lex.cs = 520 goto _test_eof - _test_eof110: - lex.cs = 110 - goto _test_eof _test_eof521: lex.cs = 521 goto _test_eof + _test_eof111: + lex.cs = 111 + goto _test_eof _test_eof522: lex.cs = 522 goto _test_eof @@ -23217,12 +23094,12 @@ func (lex *Lexer) Lex() *token.Token { _test_eof524: lex.cs = 524 goto _test_eof - _test_eof111: - lex.cs = 111 - goto _test_eof _test_eof525: lex.cs = 525 goto _test_eof + _test_eof112: + lex.cs = 112 + goto _test_eof _test_eof526: lex.cs = 526 goto _test_eof @@ -23232,24 +23109,12 @@ func (lex *Lexer) Lex() *token.Token { _test_eof528: lex.cs = 528 goto _test_eof - _test_eof112: - lex.cs = 112 - goto _test_eof _test_eof529: lex.cs = 529 goto _test_eof _test_eof530: lex.cs = 530 goto _test_eof - _test_eof531: - lex.cs = 531 - goto _test_eof - _test_eof532: - lex.cs = 532 - goto _test_eof - _test_eof533: - lex.cs = 533 - goto _test_eof _test_eof: { @@ -24021,13 +23886,13 @@ func (lex *Lexer) Lex() *token.Token { case 98: goto tr132 case 400: - goto tr314 + goto tr248 case 401: goto tr314 case 402: goto tr314 case 403: - goto tr248 + goto tr314 case 404: goto tr314 case 405: @@ -24153,133 +24018,127 @@ func (lex *Lexer) Lex() *token.Token { case 465: goto tr314 case 466: - goto tr314 - case 467: - goto tr314 - case 468: - goto tr314 - case 469: goto tr248 - case 471: - goto tr679 - case 472: - goto tr681 + case 468: + goto tr675 + case 469: + goto tr677 case 99: goto tr144 - case 473: - goto tr685 + case 470: + goto tr681 + case 471: + goto tr681 + case 472: + goto tr683 case 474: - goto tr685 - case 475: goto tr687 - case 477: - goto tr691 - case 478: + case 475: + goto tr688 + case 476: goto tr692 + case 478: + goto tr700 case 479: - goto tr696 + goto tr702 + case 480: + goto tr703 case 481: - goto tr704 + goto tr707 case 482: - goto tr706 + goto tr700 case 483: goto tr707 - case 484: - goto tr711 case 485: - goto tr704 + goto tr719 case 486: - goto tr711 + goto tr720 + case 487: + goto tr724 case 488: - goto tr723 + goto tr724 case 489: goto tr724 - case 490: - goto tr728 case 491: - goto tr728 + goto tr737 case 492: - goto tr728 + goto tr738 + case 493: + goto tr742 case 494: - goto tr741 + goto tr742 case 495: goto tr742 - case 496: - goto tr746 case 497: - goto tr746 - case 498: - goto tr746 + goto tr747 + case 499: + goto tr753 case 500: - goto tr751 - case 502: - goto tr757 - case 503: - goto tr759 - case 504: - goto tr757 + goto tr755 + case 501: + goto tr753 case 105: goto tr154 + case 502: + goto tr757 + case 504: + goto tr767 case 505: - goto tr761 + goto tr768 + case 506: + goto tr769 case 507: goto tr771 case 508: goto tr772 case 509: - goto tr773 - case 510: - goto tr775 - case 511: - goto tr776 - case 512: - goto tr776 + goto tr772 case 106: goto tr156 case 107: goto tr156 - case 513: - goto tr776 + case 510: + goto tr772 case 108: goto tr156 - case 514: + case 511: + goto tr772 + case 512: goto tr776 - case 515: - goto tr780 - case 517: - goto tr783 + case 514: + goto tr779 case 109: goto tr160 - case 519: - goto tr788 - case 520: - goto tr790 + case 516: + goto tr784 + case 517: + goto tr786 case 110: goto tr163 + case 518: + goto tr790 + case 520: + goto tr795 case 521: - goto tr794 - case 523: - goto tr799 - case 524: - goto tr801 + goto tr797 case 111: goto tr165 + case 522: + goto tr801 + case 524: + goto tr806 case 525: - goto tr805 - case 527: - goto tr810 - case 528: - goto tr812 + goto tr808 case 112: goto tr167 - case 529: + case 526: + goto tr812 + case 528: goto tr816 - case 531: - goto tr820 - case 532: + case 529: + goto tr817 + case 530: goto tr821 - case 533: - goto tr825 } } diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index e7d1179..30d12af 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -255,7 +255,7 @@ func (lex *Lexer) Lex() *token.Token { 'use'i => {lex.setTokenPosition(tkn); tok = token.T_USE; fbreak;}; 'var'i => {lex.setTokenPosition(tkn); tok = token.T_VAR; fbreak;}; 'while'i => {lex.setTokenPosition(tkn); tok = token.T_WHILE; fbreak;}; - 'yield'i whitespace_line* 'from'i => {lex.setTokenPosition(tkn); tok = token.T_YIELD_FROM; fbreak;}; + 'yield'i whitespace_line+ 'from'i => {lex.setTokenPosition(tkn); tok = token.T_YIELD_FROM; fbreak;}; 'yield'i => {lex.setTokenPosition(tkn); tok = token.T_YIELD; fbreak;}; 'include'i => {lex.setTokenPosition(tkn); tok = token.T_INCLUDE; fbreak;}; 'include_once'i => {lex.setTokenPosition(tkn); tok = token.T_INCLUDE_ONCE; fbreak;}; diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index af4a87a..7ea2622 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -1,985 +1,2373 @@ package visitor import ( - "fmt" - "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" "io" "strconv" "strings" + + "github.com/z7zmey/php-parser/pkg/ast" ) -type meta struct { - singleNode bool -} - type Dump struct { - writer io.Writer - indent int - depth int - stack []meta + writer io.Writer + indent int + withTokens bool + withPositions bool } func NewDump(writer io.Writer) *Dump { return &Dump{writer: writer} } -func (v *Dump) print(str string) { - _, err := io.WriteString(v.writer, str) +func (v *Dump) WithTokens() *Dump { + v.withTokens = true + return v +} + +func (v *Dump) WithPositions() *Dump { + v.withPositions = true + return v +} + +func (v *Dump) Dump(n ast.Vertex) { + n.Accept(v) +} + +func (v *Dump) print(indent int, str string) { + _, err := io.WriteString(v.writer, strings.Repeat("\t", indent)) + if err != nil { + panic(err) + } + + _, err = io.WriteString(v.writer, str) if err != nil { panic(err) } } -func (v *Dump) printIndent(indentDepth int) { - if indentDepth < 0 { - indentDepth = 0 - } - - v.print(strings.Repeat("\t", indentDepth)) -} - -func (v *Dump) printIndentIfNotSingle(indentDepth int) { - if indentDepth < 0 { - indentDepth = 0 - } - - if !v.stack[v.depth-1].singleNode { - v.print(strings.Repeat("\t", indentDepth)) - } -} - -func (v *Dump) Enter(key string, singleNode bool) { - if len(v.stack) < v.depth+1 { - v.stack = append(v.stack, meta{}) - } - - v.stack[v.depth].singleNode = singleNode - - v.printIndent(v.indent) - v.print(key) - v.print(": ") - - if !singleNode { - v.print("[]ast.Vertex{\n") - v.indent++ - } -} - -func (v *Dump) Leave(_ string, singleNode bool) { - if !singleNode { - v.indent-- - v.printIndent(v.indent) - v.print("},\n") - } -} - -func (v *Dump) EnterNode(n ast.Vertex) bool { - v.indent++ - v.depth++ - - if len(v.stack) < v.depth { - v.stack = append(v.stack, meta{}) - } - - n.Accept(v) - - return true -} - -func (v *Dump) LeaveNode(_ ast.Vertex) { - v.indent-- - v.depth-- - v.printIndent(v.indent) - v.print("}") - if v.depth != 0 { - v.print(",") - } - v.print("\n") -} - -func (v *Dump) printToken(key string, t *token.Token) { - if t == nil { +func (v *Dump) dumpVertex(key string, node ast.Vertex) { + if node == nil { return } - v.printIndent(v.indent) - v.print(key) - v.print(": &token.Token{\n") + v.print(v.indent, key+": ") + node.Accept(v) +} - v.printIndent(v.indent + 1) - v.print("ID: token." + t.ID.String() + ",\n") +func (v *Dump) dumpVertexList(key string, list []ast.Vertex) { + if list == nil { + return + } - v.printIndent(v.indent + 1) - v.print("Value: []byte(" + strconv.Quote(string(t.Value)) + "),\n") + if len(list) == 0 { + v.print(v.indent, key+": []ast.Vertex{},\n") + return + } + + v.print(v.indent, key+": []ast.Vertex{\n") + v.indent++ + + for _, nn := range list { + v.print(v.indent, "") + nn.Accept(v) + } + + v.indent-- + v.print(v.indent, "},\n") +} + +func (v *Dump) dumpToken(key string, tok *token.Token) { + if !v.withTokens { + return + } + + if tok == nil { + return + } + + if key == "" { + v.print(v.indent, "{\n") + } else { + v.print(v.indent, key+": &token.Token{\n") + } + + v.indent++ + + if tok.ID > 0 { + v.print(v.indent, "ID: token."+tok.ID.String()+",\n") + } + if tok.Value != nil { + v.print(v.indent, "Value: []byte("+strconv.Quote(string(tok.Value))+"),\n") + } + v.dumpPosition(tok.Position) + v.dumpTokenList("FreeFloating", tok.FreeFloating) + + v.indent-- + v.print(v.indent, "},\n") +} + +func (v *Dump) dumpTokenList(key string, list []*token.Token) { + if !v.withTokens { + return + } + + if list == nil { + return + } + + if len(list) == 0 { + v.print(v.indent, key+": []*token.Token{},\n") + return + } + + v.print(v.indent, key+": []*token.Token{\n") + v.indent++ + + for _, tok := range list { + v.dumpToken("", tok) + } + + v.indent-- + v.print(v.indent, "},\n") +} + +func (v *Dump) dumpPosition(pos *position.Position) { + if !v.withPositions { + return + } + + if pos == nil { + return + } + + v.print(v.indent, "Position: &position.Position{\n") + v.indent++ + + v.print(v.indent, "StartLine: "+strconv.Itoa(pos.StartLine)+",\n") + v.print(v.indent, "EndLine: "+strconv.Itoa(pos.EndLine)+",\n") + v.print(v.indent, "StartPos: "+strconv.Itoa(pos.StartPos)+",\n") + v.print(v.indent, "EndPos: "+strconv.Itoa(pos.EndPos)+",\n") + + v.indent-- + v.print(v.indent, "},\n") +} + +func (v *Dump) dumpValue(key string, val []byte) { + if val == nil { + return + } + + v.print(v.indent, key+": []byte("+strconv.Quote(string(val))+"),\n") - v.printIndent(v.indent) - v.print("},\n") } func (v *Dump) Root(n *ast.Root) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.Root{\n") + v.print(0, "&ast.Root{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("EndTkn", n.EndTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) Nullable(n *ast.Nullable) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.Nullable{\n") + v.print(0, "&ast.Nullable{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("QuestionTkn", n.QuestionTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) Parameter(n *ast.Parameter) { - v.printIndent(v.indent - 1) - v.print("&ast.Parameter{\n") + v.print(0, "&ast.Parameter{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Type", n.Type) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpToken("VariadicTkn", n.VariadicTkn) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("DefaultValue", n.DefaultValue) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) Identifier(n *ast.Identifier) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.Identifier{\n") + v.print(0, "&ast.Identifier{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("IdentifierTkn", n.IdentifierTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) Argument(n *ast.Argument) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.Argument{\n") + v.print(0, "&ast.Argument{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpToken("VariadicTkn", n.VariadicTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtBreak(n *ast.StmtBreak) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtBreak{\n") + v.print(0, "&ast.StmtBreak{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("BreakTkn", n.BreakTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtCase(n *ast.StmtCase) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtCase{\n") + v.print(0, "&ast.StmtCase{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CaseTkn", n.CaseTkn) + v.dumpVertex("Cond", n.Cond) + v.dumpToken("CaseSeparatorTkn", n.CaseSeparatorTkn) + v.dumpVertexList("Stmts", n.Stmts) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtCatch(n *ast.StmtCatch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtCatch{\n") + v.print(0, "&ast.StmtCatch{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CatchTkn", n.CatchTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Types", n.Types) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpVertex("Var", n.Var) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtClass(n *ast.StmtClass) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtClass{\n") + v.print(0, "&ast.StmtClass{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertexList("Modifiers", n.Modifiers) + v.dumpToken("ClassTkn", n.ClassTkn) + v.dumpVertex("ClassName", n.ClassName) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Arguments", n.Arguments) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpVertex("Extends", n.Extends) + v.dumpVertex("Implements", n.Implements) + v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtClassConstList(n *ast.StmtClassConstList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtClassConstList{\n") + v.print(0, "&ast.StmtClassConstList{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertexList("Modifiers", n.Modifiers) + v.dumpToken("ConstTkn", n.ConstTkn) + v.dumpVertexList("Consts", n.Consts) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtClassExtends(n *ast.StmtClassExtends) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtClassExtends{\n") + v.print(0, "&ast.StmtClassExtends{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ExtendTkn", n.ExtendTkn) + v.dumpVertex("ClassName", n.ClassName) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtClassImplements(n *ast.StmtClassImplements) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtClassImplements{\n") + v.print(0, "&ast.StmtClassImplements{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ImplementsTkn", n.ImplementsTkn) + v.dumpVertexList("InterfaceNames", n.InterfaceNames) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtClassMethod{\n") + v.print(0, "&ast.StmtClassMethod{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertexList("Modifiers", n.Modifiers) + v.dumpToken("FunctionTkn", n.FunctionTkn) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpVertex("MethodName", n.MethodName) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Params", n.Params) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("ReturnType", n.ReturnType) + v.dumpVertex("Stmt", n.Stmt) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtConstList(n *ast.StmtConstList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtConstList{\n") + v.print(0, "&ast.StmtConstList{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ConstTkn", n.ConstTkn) + v.dumpVertexList("Consts", n.Consts) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtConstant(n *ast.StmtConstant) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtConstant{\n") + v.print(0, "&ast.StmtConstant{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Name", n.Name) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtContinue(n *ast.StmtContinue) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtContinue{\n") + v.print(0, "&ast.StmtContinue{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ContinueTkn", n.ContinueTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtDeclare{\n") + v.print(0, "&ast.StmtDeclare{\n") + v.indent++ - if n.Alt { - v.printIndent(v.indent) - v.print("Alt: true,\n") - } + v.dumpPosition(n.Position) + v.dumpToken("DeclareTkn", n.DeclareTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Consts", n.Consts) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("Stmt", n.Stmt) + v.dumpToken("EndDeclareTkn", n.EndDeclareTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtDefault(n *ast.StmtDefault) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtDefault{\n") + v.print(0, "&ast.StmtDefault{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("DefaultTkn", n.DefaultTkn) + v.dumpToken("CaseSeparatorTkn", n.CaseSeparatorTkn) + v.dumpVertexList("Stmts", n.Stmts) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtDo(n *ast.StmtDo) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtDo{\n") + v.print(0, "&ast.StmtDo{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("DoTkn", n.DoTkn) + v.dumpVertex("Stmt", n.Stmt) + v.dumpToken("WhileTkn", n.WhileTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Cond", n.Cond) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") + } func (v *Dump) StmtEcho(n *ast.StmtEcho) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtEcho{\n") + v.print(0, "&ast.StmtEcho{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("EchoTkn", n.EchoTkn) + v.dumpVertexList("Exprs", n.Exprs) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtElse(n *ast.StmtElse) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtElse{\n") + v.print(0, "&ast.StmtElse{\n") + v.indent++ - if n.Alt { - v.printIndent(v.indent) - v.print("Alt: true,\n") - } + v.dumpPosition(n.Position) + v.dumpToken("ElseTkn", n.ElseTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("Stmt", n.Stmt) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtElseIf{\n") + v.print(0, "&ast.StmtElseIf{\n") + v.indent++ - if n.Alt { - v.printIndent(v.indent) - v.print("Alt: true,\n") - } + v.dumpPosition(n.Position) + v.dumpToken("ElseIfTkn", n.ElseIfTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Cond", n.Cond) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("Stmt", n.Stmt) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtExpression(n *ast.StmtExpression) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtExpression{\n") + v.print(0, "&ast.StmtExpression{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtFinally(n *ast.StmtFinally) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtFinally{\n") + v.print(0, "&ast.StmtFinally{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("FinallyTkn", n.FinallyTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtFor(n *ast.StmtFor) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtFor{\n") + v.print(0, "&ast.StmtFor{\n") + v.indent++ - if n.Alt { - v.printIndent(v.indent) - v.print("Alt: true,\n") - } + v.dumpPosition(n.Position) + v.dumpToken("ForTkn", n.ForTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Init", n.Init) + v.dumpTokenList("InitSeparatorTkns", n.InitSeparatorTkns) + v.dumpToken("InitSemiColonTkn", n.InitSemiColonTkn) + v.dumpVertexList("Cond", n.Cond) + v.dumpTokenList("CondSeparatorTkns", n.CondSeparatorTkns) + v.dumpToken("CondSemiColonTkn", n.CondSemiColonTkn) + v.dumpVertexList("Loop", n.Loop) + v.dumpTokenList("LoopSeparatorTkns", n.LoopSeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("Stmt", n.Stmt) + v.dumpToken("EndForTkn", n.EndForTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtForeach(n *ast.StmtForeach) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtForeach{\n") + v.print(0, "&ast.StmtForeach{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ForeachTkn", n.ForeachTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("AsTkn", n.AsTkn) + v.dumpVertex("Key", n.Key) + v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn) + v.dumpVertex("Var", n.Var) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("Stmt", n.Stmt) + v.dumpToken("EndForeachTkn", n.EndForeachTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtFunction(n *ast.StmtFunction) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtFunction{\n") + v.print(0, "&ast.StmtFunction{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("FunctionTkn", n.FunctionTkn) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpVertex("FunctionName", n.FunctionName) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Params", n.Params) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("ReturnType", n.ReturnType) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtGlobal{\n") + v.print(0, "&ast.StmtGlobal{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("GlobalTkn", n.GlobalTkn) + v.dumpVertexList("Vars", n.Vars) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtGoto(n *ast.StmtGoto) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtGoto{\n") + v.print(0, "&ast.StmtGoto{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("GotoTkn", n.GotoTkn) + v.dumpVertex("Label", n.Label) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtHaltCompiler{\n") + v.print(0, "&ast.StmtHaltCompiler{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("HaltCompilerTkn", n.HaltCompilerTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtIf(n *ast.StmtIf) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtIf{\n") + v.print(0, "&ast.StmtIf{\n") + v.indent++ - if n.Alt { - v.printIndent(v.indent) - v.print("Alt: true,\n") - } + v.dumpPosition(n.Position) + v.dumpToken("IfTkn", n.IfTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Cond", n.Cond) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("Stmt", n.Stmt) + v.dumpVertexList("ElseIf", n.ElseIf) + v.dumpVertex("Else", n.Else) + v.dumpToken("EndIfTkn", n.EndIfTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtInlineHtml{\n") + v.print(0, "&ast.StmtInlineHtml{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("InlineHtmlTkn", n.InlineHtmlTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtInterface(n *ast.StmtInterface) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtInterface{\n") + v.print(0, "&ast.StmtInterface{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("InterfaceTkn", n.InterfaceTkn) + v.dumpVertex("InterfaceName", n.InterfaceName) + v.dumpVertex("Extends", n.Extends) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtInterfaceExtends{\n") + v.print(0, "&ast.StmtInterfaceExtends{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ExtendsTkn", n.ExtendsTkn) + v.dumpVertexList("InterfaceNames", n.InterfaceNames) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtLabel(n *ast.StmtLabel) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtLabel{\n") + v.print(0, "&ast.StmtLabel{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("LabelName", n.LabelName) + v.dumpToken("ColonTkn", n.ColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtNamespace{\n") + v.print(0, "&ast.StmtNamespace{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("NsTkn", n.NsTkn) + v.dumpVertex("Name", n.Name) + v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtNop(n *ast.StmtNop) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtNop{\n") + v.print(0, "&ast.StmtNop{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtProperty(n *ast.StmtProperty) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtProperty{\n") + v.print(0, "&ast.StmtProperty{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtPropertyList(n *ast.StmtPropertyList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtPropertyList{\n") + v.print(0, "&ast.StmtPropertyList{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertexList("Modifiers", n.Modifiers) + v.dumpVertex("Type", n.Type) + v.dumpVertexList("Properties", n.Properties) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtReturn(n *ast.StmtReturn) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtReturn{\n") + v.print(0, "&ast.StmtReturn{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ReturnTkn", n.ReturnTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtStatic(n *ast.StmtStatic) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtStatic{\n") + v.print(0, "&ast.StmtStatic{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("StaticTkn", n.StaticTkn) + v.dumpVertexList("Vars", n.Vars) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtStaticVar(n *ast.StmtStaticVar) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtStaticVar{\n") + v.print(0, "&ast.StmtStaticVar{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtStmtList{\n") + v.print(0, "&ast.StmtStmtList{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtSwitch{\n") + v.print(0, "&ast.StmtSwitch{\n") + v.indent++ - if n.Alt { - v.printIndent(v.indent) - v.print("Alt: true,\n") - } + v.dumpPosition(n.Position) + v.dumpToken("SwitchTkn", n.SwitchTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Cond", n.Cond) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpToken("CaseSeparatorTkn", n.CaseSeparatorTkn) + v.dumpVertexList("CaseList", n.CaseList) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + v.dumpToken("EndSwitchTkn", n.EndSwitchTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtThrow(n *ast.StmtThrow) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtThrow{\n") + v.print(0, "&ast.StmtThrow{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ThrowTkn", n.ThrowTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtTrait(n *ast.StmtTrait) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtTrait{\n") + v.print(0, "&ast.StmtTrait{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("TraitTkn", n.TraitTkn) + v.dumpVertex("TraitName", n.TraitName) + v.dumpVertex("Extends", n.Extends) + v.dumpVertex("Implements", n.Implements) + v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtTraitAdaptationList{\n") + v.print(0, "&ast.StmtTraitAdaptationList{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("Adaptations", n.Adaptations) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtTraitMethodRef{\n") + v.print(0, "&ast.StmtTraitMethodRef{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Trait", n.Trait) + v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) + v.dumpVertex("Method", n.Method) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtTraitUse(n *ast.StmtTraitUse) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtTraitUse{\n") + v.print(0, "&ast.StmtTraitUse{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("UseTkn", n.UseTkn) + v.dumpVertexList("Traits", n.Traits) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpVertex("Adaptations", n.Adaptations) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtTraitUseAlias{\n") + v.print(0, "&ast.StmtTraitUseAlias{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Ref", n.Ref) + v.dumpToken("AsTkn", n.AsTkn) + v.dumpVertex("Modifier", n.Modifier) + v.dumpVertex("Alias", n.Alias) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtTraitUsePrecedence{\n") + v.print(0, "&ast.StmtTraitUsePrecedence{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Ref", n.Ref) + v.dumpToken("InsteadofTkn", n.InsteadofTkn) + v.dumpVertexList("Insteadof", n.Insteadof) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtTry(n *ast.StmtTry) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtTry{\n") + v.print(0, "&ast.StmtTry{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("TryTkn", n.TryTkn) + v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + v.dumpVertexList("Catches", n.Catches) + v.dumpVertex("Finally", n.Finally) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtUnset(n *ast.StmtUnset) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtUnset{\n") + v.print(0, "&ast.StmtUnset{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("UnsetTkn", n.UnsetTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Vars", n.Vars) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtUse(n *ast.StmtUse) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtUse{\n") - v.printToken("UseTkn", n.UseTkn) - v.printToken("SemiColonTkn", n.SemiColonTkn) + v.print(0, "&ast.StmtUse{\n") + v.indent++ + v.dumpPosition(n.Position) + v.dumpToken("UseTkn", n.UseTkn) + v.dumpVertex("Type", n.Type) + v.dumpVertexList("UseDeclarations", n.UseDeclarations) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtGroupUse{\n") - v.printToken("UseTkn", n.UseTkn) - v.printToken("LeadingNsSeparatorTkn", n.LeadingNsSeparatorTkn) - v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) - v.printToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) - v.printToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) - v.printToken("SemiColonTkn", n.SemiColonTkn) + v.print(0, "&ast.StmtGroupUse{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("UseTkn", n.UseTkn) + v.dumpVertex("Type", n.Type) + v.dumpToken("LeadingNsSeparatorTkn", n.LeadingNsSeparatorTkn) + v.dumpVertex("Prefix", n.Prefix) + v.dumpToken("NsSeparatorTkn", n.NsSeparatorTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("UseDeclarations", n.UseDeclarations) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtUseDeclaration{\n") - v.printToken("NsSeparatorTkn", n.NsSeparatorTkn) - v.printToken("AsTkn", n.AsTkn) + v.print(0, "&ast.StmtUseDeclaration{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Type", n.Type) + v.dumpToken("NsSeparatorTkn", n.NsSeparatorTkn) + v.dumpVertex("Use", n.Use) + v.dumpToken("AsTkn", n.AsTkn) + v.dumpVertex("Alias", n.Alias) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) StmtWhile(n *ast.StmtWhile) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.StmtWhile{\n") + v.print(0, "&ast.StmtWhile{\n") + v.indent++ - if n.Alt { - v.printIndent(v.indent) - v.print("Alt: true,\n") - } + v.dumpPosition(n.Position) + v.dumpToken("WhileTkn", n.WhileTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Cond", n.Cond) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("Stmt", n.Stmt) + v.dumpToken("EndWhileTkn", n.EndWhileTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprArray(n *ast.ExprArray) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprArray{\n") + v.print(0, "&ast.ExprArray{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ArrayTkn", n.ArrayTkn) + v.dumpToken("OpenBracketTkn", n.OpenBracketTkn) + v.dumpVertexList("Items", n.Items) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseBracketTkn", n.CloseBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprArrayDimFetch{\n") + v.print(0, "&ast.ExprArrayDimFetch{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("OpenBracketTkn", n.OpenBracketTkn) + v.dumpVertex("Dim", n.Dim) + v.dumpToken("CloseBracketTkn", n.CloseBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprArrayItem{\n") + v.print(0, "&ast.ExprArrayItem{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("EllipsisTkn", n.EllipsisTkn) + v.dumpVertex("Key", n.Key) + v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn) + v.dumpVertex("Val", n.Val) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprArrowFunction{\n") + v.print(0, "&ast.ExprArrowFunction{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("StaticTkn", n.StaticTkn) + v.dumpToken("FnTkn", n.FnTkn) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Params", n.Params) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("ReturnType", n.ReturnType) + v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBitwiseNot{\n") + v.print(0, "&ast.ExprBitwiseNot{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("TildaTkn", n.TildaTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBooleanNot(n *ast.ExprBooleanNot) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBooleanNot{\n") + v.print(0, "&ast.ExprBooleanNot{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ExclamationTkn", n.ExclamationTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprClassConstFetch(n *ast.ExprClassConstFetch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprClassConstFetch{\n") + v.print(0, "&ast.ExprClassConstFetch{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Class", n.Class) + v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) + v.dumpVertex("ConstantName", n.ConstantName) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprClone(n *ast.ExprClone) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprClone{\n") + v.print(0, "&ast.ExprClone{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CloneTkn", n.CloneTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprClosure(n *ast.ExprClosure) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprClosure{\n") + v.print(0, "&ast.ExprClosure{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("StaticTkn", n.StaticTkn) + v.dumpToken("FunctionTkn", n.FunctionTkn) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Params", n.Params) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpVertex("ClosureUse", n.ClosureUse) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("ReturnType", n.ReturnType) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("Stmts", n.Stmts) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprClosureUse{\n") + v.print(0, "&ast.ExprClosureUse{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("UseTkn", n.UseTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Uses", n.Uses) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprConstFetch(n *ast.ExprConstFetch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprConstFetch{\n") + v.print(0, "&ast.ExprConstFetch{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Const", n.Const) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprEmpty(n *ast.ExprEmpty) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprEmpty{\n") + v.print(0, "&ast.ExprEmpty{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("EmptyTkn", n.EmptyTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprErrorSuppress(n *ast.ExprErrorSuppress) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprErrorSuppress{\n") + v.print(0, "&ast.ExprErrorSuppress{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("AtTkn", n.AtTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprEval(n *ast.ExprEval) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprEval{\n") + v.print(0, "&ast.ExprEval{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("EvalTkn", n.EvalTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprExit(n *ast.ExprExit) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprExit{\n") + v.print(0, "&ast.ExprExit{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("DieTkn", n.DieTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprFunctionCall{\n") + v.print(0, "&ast.ExprFunctionCall{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Function", n.Function) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Arguments", n.Arguments) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprInclude(n *ast.ExprInclude) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprInclude{\n") + v.print(0, "&ast.ExprInclude{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("IncludeTkn", n.IncludeTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprIncludeOnce(n *ast.ExprIncludeOnce) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprIncludeOnce{\n") + v.print(0, "&ast.ExprIncludeOnce{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("IncludeTkn", n.IncludeTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprInstanceOf(n *ast.ExprInstanceOf) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprInstanceOf{\n") + v.print(0, "&ast.ExprInstanceOf{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("InstanceOfTkn", n.InstanceOfTkn) + v.dumpVertex("Class", n.Class) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprIsset(n *ast.ExprIsset) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprIsset{\n") + v.print(0, "&ast.ExprIsset{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("IssetTkn", n.IssetTkn) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Vars", n.Vars) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprList(n *ast.ExprList) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprList{\n") + v.print(0, "&ast.ExprList{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("ListTkn", n.ListTkn) + v.dumpToken("OpenBracketTkn", n.OpenBracketTkn) + v.dumpVertexList("Items", n.Items) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseBracketTkn", n.CloseBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprMethodCall(n *ast.ExprMethodCall) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprMethodCall{\n") + v.print(0, "&ast.ExprMethodCall{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("ObjectOperatorTkn", n.ObjectOperatorTkn) + v.dumpVertex("Method", n.Method) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Arguments", n.Arguments) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprNew(n *ast.ExprNew) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprNew{\n") + v.print(0, "&ast.ExprNew{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("NewTkn", n.NewTkn) + v.dumpVertex("Class", n.Class) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Arguments", n.Arguments) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprPostDec(n *ast.ExprPostDec) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprPostDec{\n") + v.print(0, "&ast.ExprPostDec{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("DecTkn", n.DecTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprPostInc(n *ast.ExprPostInc) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprPostInc{\n") + v.print(0, "&ast.ExprPostInc{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("IncTkn", n.IncTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprPreDec(n *ast.ExprPreDec) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprPreDec{\n") + v.print(0, "&ast.ExprPreDec{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("DecTkn", n.DecTkn) + v.dumpVertex("Var", n.Var) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprPreInc(n *ast.ExprPreInc) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprPreInc{\n") + v.print(0, "&ast.ExprPreInc{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("IncTkn", n.IncTkn) + v.dumpVertex("Var", n.Var) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprPrint(n *ast.ExprPrint) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprPrint{\n") + v.print(0, "&ast.ExprPrint{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("PrintTkn", n.PrintTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprPropertyFetch(n *ast.ExprPropertyFetch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprPropertyFetch{\n") + v.print(0, "&ast.ExprPropertyFetch{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("ObjectOperatorTkn", n.ObjectOperatorTkn) + v.dumpVertex("Property", n.Property) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprReference(n *ast.ExprReference) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprReference{\n") + v.print(0, "&ast.ExprReference{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpVertex("Var", n.Var) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprRequire(n *ast.ExprRequire) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprRequire{\n") + v.print(0, "&ast.ExprRequire{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("RequireTkn", n.RequireTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprRequireOnce(n *ast.ExprRequireOnce) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprRequireOnce{\n") + v.print(0, "&ast.ExprRequireOnce{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("RequireOnceTkn", n.RequireOnceTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprShellExec{\n") + v.print(0, "&ast.ExprShellExec{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenBacktickTkn", n.OpenBacktickTkn) + v.dumpVertexList("Parts", n.Parts) + v.dumpToken("CloseBacktickTkn", n.CloseBacktickTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprStaticCall{\n") + v.print(0, "&ast.ExprStaticCall{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Class", n.Class) + v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) + v.dumpVertex("Call", n.Call) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertexList("Arguments", n.Arguments) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprStaticPropertyFetch{\n") + v.print(0, "&ast.ExprStaticPropertyFetch{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Class", n.Class) + v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) + v.dumpVertex("Property", n.Property) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprTernary(n *ast.ExprTernary) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprTernary{\n") + v.print(0, "&ast.ExprTernary{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Condition", n.Condition) + v.dumpToken("QuestionTkn", n.QuestionTkn) + v.dumpVertex("IfTrue", n.IfTrue) + v.dumpToken("ColonTkn", n.ColonTkn) + v.dumpVertex("IfFalse", n.IfFalse) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprUnaryMinus(n *ast.ExprUnaryMinus) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprUnaryMinus{\n") + v.print(0, "&ast.ExprUnaryMinus{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("MinusTkn", n.MinusTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprUnaryPlus(n *ast.ExprUnaryPlus) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprUnaryPlus{\n") + v.print(0, "&ast.ExprUnaryPlus{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("PlusTkn", n.PlusTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprVariable(n *ast.ExprVariable) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprVariable{\n") + v.print(0, "&ast.ExprVariable{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("DollarTkn", n.DollarTkn) + v.dumpVertex("VarName", n.VarName) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprYield(n *ast.ExprYield) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprYield{\n") + v.print(0, "&ast.ExprYield{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("YieldTkn", n.YieldTkn) + v.dumpVertex("Key", n.Key) + v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn) + v.dumpVertex("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprYieldFrom(n *ast.ExprYieldFrom) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprYieldFrom{\n") + v.print(0, "&ast.ExprYieldFrom{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("YieldFromTkn", n.YieldFromTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssign(n *ast.ExprAssign) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssign{\n") + v.print(0, "&ast.ExprAssign{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignReference(n *ast.ExprAssignReference) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignReference{\n") + v.print(0, "&ast.ExprAssignReference{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignBitwiseAnd{\n") + v.print(0, "&ast.ExprAssignBitwiseAnd{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignBitwiseOr{\n") + v.print(0, "&ast.ExprAssignBitwiseOr{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignBitwiseXor{\n") + v.print(0, "&ast.ExprAssignBitwiseXor{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignCoalesce{\n") + v.print(0, "&ast.ExprAssignCoalesce{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignConcat(n *ast.ExprAssignConcat) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignConcat{\n") + v.print(0, "&ast.ExprAssignConcat{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignDiv(n *ast.ExprAssignDiv) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignDiv{\n") + v.print(0, "&ast.ExprAssignDiv{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignMinus(n *ast.ExprAssignMinus) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignMinus{\n") + v.print(0, "&ast.ExprAssignMinus{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignMod(n *ast.ExprAssignMod) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignMod{\n") + v.print(0, "&ast.ExprAssignMod{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignMul(n *ast.ExprAssignMul) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignMul{\n") + v.print(0, "&ast.ExprAssignMul{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignPlus(n *ast.ExprAssignPlus) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignPlus{\n") + v.print(0, "&ast.ExprAssignPlus{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignPow(n *ast.ExprAssignPow) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignPow{\n") + v.print(0, "&ast.ExprAssignPow{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignShiftLeft{\n") + v.print(0, "&ast.ExprAssignShiftLeft{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprAssignShiftRight{\n") + v.print(0, "&ast.ExprAssignShiftRight{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Var", n.Var) + v.dumpToken("EqualTkn", n.EqualTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryBitwiseAnd{\n") + v.print(0, "&ast.ExprBinaryBitwiseAnd{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryBitwiseOr{\n") + v.print(0, "&ast.ExprBinaryBitwiseOr{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryBitwiseXor{\n") + v.print(0, "&ast.ExprBinaryBitwiseXor{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryBooleanAnd{\n") + v.print(0, "&ast.ExprBinaryBooleanAnd{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryBooleanOr{\n") + v.print(0, "&ast.ExprBinaryBooleanOr{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryCoalesce{\n") + v.print(0, "&ast.ExprBinaryCoalesce{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryConcat(n *ast.ExprBinaryConcat) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryConcat{\n") + v.print(0, "&ast.ExprBinaryConcat{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryDiv(n *ast.ExprBinaryDiv) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryDiv{\n") + v.print(0, "&ast.ExprBinaryDiv{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryEqual(n *ast.ExprBinaryEqual) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryEqual{\n") + v.print(0, "&ast.ExprBinaryEqual{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryGreater(n *ast.ExprBinaryGreater) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryGreater{\n") + v.print(0, "&ast.ExprBinaryGreater{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryGreaterOrEqual{\n") + v.print(0, "&ast.ExprBinaryGreaterOrEqual{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryIdentical{\n") + v.print(0, "&ast.ExprBinaryIdentical{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryLogicalAnd{\n") + v.print(0, "&ast.ExprBinaryLogicalAnd{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryLogicalOr{\n") + v.print(0, "&ast.ExprBinaryLogicalOr{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryLogicalXor{\n") + v.print(0, "&ast.ExprBinaryLogicalXor{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryMinus(n *ast.ExprBinaryMinus) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryMinus{\n") + v.print(0, "&ast.ExprBinaryMinus{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryMod(n *ast.ExprBinaryMod) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryMod{\n") + v.print(0, "&ast.ExprBinaryMod{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryMul(n *ast.ExprBinaryMul) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryMul{\n") + v.print(0, "&ast.ExprBinaryMul{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryNotEqual{\n") + v.print(0, "&ast.ExprBinaryNotEqual{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryNotIdentical{\n") + v.print(0, "&ast.ExprBinaryNotIdentical{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryPlus(n *ast.ExprBinaryPlus) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryPlus{\n") + v.print(0, "&ast.ExprBinaryPlus{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryPow(n *ast.ExprBinaryPow) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryPow{\n") + v.print(0, "&ast.ExprBinaryPow{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryShiftLeft{\n") + v.print(0, "&ast.ExprBinaryShiftLeft{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinaryShiftRight{\n") + v.print(0, "&ast.ExprBinaryShiftRight{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinarySmaller(n *ast.ExprBinarySmaller) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinarySmaller{\n") + v.print(0, "&ast.ExprBinarySmaller{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinarySmallerOrEqual{\n") + v.print(0, "&ast.ExprBinarySmallerOrEqual{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprBinarySpaceship{\n") + v.print(0, "&ast.ExprBinarySpaceship{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertex("Left", n.Left) + v.dumpToken("OpTkn", n.OpTkn) + v.dumpVertex("Right", n.Right) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprCastArray(n *ast.ExprCastArray) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprCastArray{\n") + v.print(0, "&ast.ExprCastArray{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CastTkn", n.CastTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprCastBool(n *ast.ExprCastBool) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprCastBool{\n") + v.print(0, "&ast.ExprCastBool{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CastTkn", n.CastTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprCastDouble(n *ast.ExprCastDouble) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprCastDouble{\n") + v.print(0, "&ast.ExprCastDouble{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CastTkn", n.CastTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprCastInt(n *ast.ExprCastInt) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprCastInt{\n") + v.print(0, "&ast.ExprCastInt{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CastTkn", n.CastTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprCastObject(n *ast.ExprCastObject) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprCastObject{\n") + v.print(0, "&ast.ExprCastObject{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CastTkn", n.CastTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprCastString(n *ast.ExprCastString) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprCastString{\n") + v.print(0, "&ast.ExprCastString{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CastTkn", n.CastTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ExprCastUnset(n *ast.ExprCastUnset) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ExprCastUnset{\n") + v.print(0, "&ast.ExprCastUnset{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("CastTkn", n.CastTkn) + v.dumpVertex("Expr", n.Expr) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ScalarDnumber{\n") + v.print(0, "&ast.ScalarDnumber{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("NumberTkn", n.NumberTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ScalarEncapsed{\n") + v.print(0, "&ast.ScalarEncapsed{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenQoteTkn", n.OpenQoteTkn) + v.dumpVertexList("Parts", n.Parts) + v.dumpToken("CloseQoteTkn", n.CloseQoteTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ScalarEncapsedStringPart{\n") + v.print(0, "&ast.ScalarEncapsedStringPart{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("EncapsedStrTkn", n.EncapsedStrTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ScalarHeredoc{\n") + v.print(0, "&ast.ScalarHeredoc{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenHeredocTkn", n.OpenHeredocTkn) + v.dumpVertexList("Parts", n.Parts) + v.dumpToken("CloseHeredocTkn", n.CloseHeredocTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ScalarLnumber{\n") + v.print(0, "&ast.ScalarLnumber{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("NumberTkn", n.NumberTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ScalarMagicConstant{\n") + v.print(0, "&ast.ScalarMagicConstant{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("MagicConstTkn", n.MagicConstTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ScalarString(n *ast.ScalarString) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ScalarString{\n") + v.print(0, "&ast.ScalarString{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("MinusTkn", n.MinusTkn) + v.dumpToken("StringTkn", n.StringTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) NameName(n *ast.NameName) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.NameName{\n") + v.print(0, "&ast.NameName{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpVertexList("Parts", n.Parts) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) NameFullyQualified(n *ast.NameFullyQualified) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.NameFullyQualified{\n") + v.print(0, "&ast.NameFullyQualified{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("NsSeparatorTkn", n.NsSeparatorTkn) + v.dumpVertexList("Parts", n.Parts) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) NameRelative(n *ast.NameRelative) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.NameRelative{\n") + v.print(0, "&ast.NameRelative{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("NsTkn", n.NsTkn) + v.dumpToken("NsSeparatorTkn", n.NsSeparatorTkn) + v.dumpVertexList("Parts", n.Parts) + v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) NameNamePart(n *ast.NameNamePart) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.NameNamePart{\n") + v.print(0, "&ast.NameNamePart{\n") + v.indent++ - v.printIndent(v.indent) - v.print(fmt.Sprintf("Value: []byte(%q),\n", n.Value)) + v.dumpPosition(n.Position) + v.dumpToken("StringTkn", n.StringTkn) + v.dumpValue("Value", n.Value) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { - v.printIndentIfNotSingle(v.indent - 1) - v.print("&ast.ParserBrackets{\n") + v.print(0, "&ast.ParserBrackets{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenBracketTkn", n.OpenBracketTkn) + v.dumpVertex("Child", n.Child) + v.dumpToken("CloseBracketTkn", n.CloseBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") } func (v *Dump) ParserSeparatedList(n *ast.ParserSeparatedList) { diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index 42283dc..cc9fb09 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -1,62 +1,76 @@ package visitor_test import ( - "os" + "bytes" + "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" + "testing" "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/traverser" "github.com/z7zmey/php-parser/pkg/ast/visitor" - "github.com/z7zmey/php-parser/pkg/token" ) -func ExampleDump() { - stxTree := &ast.Root{ +func TestDumper_root(t *testing.T) { + o := bytes.NewBufferString("") + + p := visitor.NewDump(o) + n := &ast.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 2, + StartPos: 3, + EndPos: 4, + }, Stmts: []ast.Vertex{ - &ast.Identifier{}, - &ast.Parameter{ - Var: &ast.ExprVariable{}, - }, - &ast.StmtInlineHtml{ - Value: []byte("foo"), - }, + &ast.StmtNop{}, }, EndTkn: &token.Token{ - ID: token.T_WHITESPACE, - Value: []byte(" "), + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 2, + StartPos: 3, + EndPos: 4, + }, + }, + }, }, } + n.Accept(p) - traverser.NewDFS(visitor.NewDump(os.Stdout)).Traverse(stxTree) + expected := `&ast.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 2, + StartPos: 3, + EndPos: 4, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{ + }, + }, + EndTkn: &token.Token{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 2, + StartPos: 3, + EndPos: 4, + }, + }, + }, + }, +}, +` + actual := o.String() - //output: - //&ast.Root{ - // Node: ast.Node{ - // Tokens: token.Collection{ - // token.Start: []*token.Token{ - // { - // ID: token.T_WHITESPACE, - // Value: []byte(" "), - // }, - // }, - // }, - // Position: &position.Position{ - // StartLine: 1, - // EndLine: 1, - // StartPos: 0, - // EndPos: 1, - // }, - // }, - // Stmts: []ast.Vertex{ - // &ast.Identifier{ - // Value: []byte(""), - // }, - // &ast.Parameter{ - // Var: &ast.ExprVariable{ - // }, - // }, - // &ast.StmtInlineHtml{ - // Value: []byte("foo"), - // }, - // }, - //} + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index e5ec818..fa7043a 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -117,7 +117,7 @@ func TestResolveNew(t *testing.T) { }, }, &ast.ExprNew{ - Class: nameBC, + Class: nameBC, }, }, } @@ -227,7 +227,7 @@ func TestResolveFunctionCall(t *testing.T) { }, }, &ast.ExprFunctionCall{ - Function: nameB, + Function: nameB, }, }, } @@ -309,10 +309,10 @@ func TestResolveGroupUse(t *testing.T) { Const: nameC, }, &ast.ExprFunctionCall{ - Function: nameF, + Function: nameF, }, &ast.ExprFunctionCall{ - Function: nameE, + Function: nameE, }, }, } @@ -649,8 +649,8 @@ func TestResolveNamespaces(t *testing.T) { }, }, &ast.ExprStaticCall{ - Class: nameFG, - Call: &ast.Identifier{Value: []byte("foo")}, + Class: nameFG, + Call: &ast.Identifier{Value: []byte("foo")}, }, &ast.StmtNamespace{ Stmts: []ast.Vertex{}, @@ -666,12 +666,12 @@ func TestResolveNamespaces(t *testing.T) { }, }, &ast.ExprStaticCall{ - Class: relativeNameCE, - Call: &ast.Identifier{Value: []byte("foo")}, + Class: relativeNameCE, + Call: &ast.Identifier{Value: []byte("foo")}, }, &ast.ExprStaticCall{ - Class: nameCF, - Call: &ast.Identifier{Value: []byte("foo")}, + Class: nameCF, + Call: &ast.Identifier{Value: []byte("foo")}, }, }, }, @@ -697,8 +697,8 @@ func TestResolveStaticCallDinamicClassName(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.ExprStaticCall{ - Class: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, - Call: &ast.Identifier{Value: []byte("foo")}, + Class: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Call: &ast.Identifier{Value: []byte("foo")}, }, }, } @@ -917,20 +917,20 @@ func TestDoNotResolveReservedSpecialNames(t *testing.T) { Stmts: []ast.Vertex{ &ast.StmtExpression{ Expr: &ast.ExprStaticCall{ - Class: nameSelf, - Call: &ast.Identifier{Value: []byte("func")}, + Class: nameSelf, + Call: &ast.Identifier{Value: []byte("func")}, }, }, &ast.StmtExpression{ Expr: &ast.ExprStaticCall{ - Class: nameStatic, - Call: &ast.Identifier{Value: []byte("func")}, + Class: nameStatic, + Call: &ast.Identifier{Value: []byte("func")}, }, }, &ast.StmtExpression{ Expr: &ast.ExprStaticCall{ - Class: nameParent, - Call: &ast.Identifier{Value: []byte("func")}, + Class: nameParent, + Call: &ast.Identifier{Value: []byte("func")}, }, }, }, From 45ded326d0d2c10343cec99af68ddf929aca1d8d Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 11 Dec 2020 17:17:13 +0200 Subject: [PATCH 110/140] [refactoring] remove ParserSeparatedList from visitor --- pkg/ast/ast.go | 1 - pkg/ast/node.go | 2 +- pkg/ast/visitor/dump.go | 4 ---- pkg/ast/visitor/null.go | 4 ---- pkg/ast/visitor/printer.go | 4 ---- 5 files changed, 1 insertion(+), 14 deletions(-) diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index c689909..fad100c 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -187,5 +187,4 @@ type NodeVisitor interface { NameNamePart(n *NameNamePart) ParserBrackets(n *ParserBrackets) - ParserSeparatedList(n *ParserSeparatedList) } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 4089027..4108daa 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -2700,7 +2700,7 @@ type ParserSeparatedList struct { } func (n *ParserSeparatedList) Accept(v NodeVisitor) { - v.ParserSeparatedList(n) + // do nothing } func (n *ParserSeparatedList) GetPosition() *position.Position { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 7ea2622..5ddc306 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -2369,7 +2369,3 @@ func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { v.indent-- v.print(v.indent, "},\n") } - -func (v *Dump) ParserSeparatedList(n *ast.ParserSeparatedList) { - // do nothing -} diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 92b9b55..bba280c 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -657,7 +657,3 @@ func (v *Null) NameNamePart(_ *ast.NameNamePart) { func (v *Null) ParserBrackets(_ *ast.ParserBrackets) { // do nothing } - -func (v *Null) ParserSeparatedList(_ *ast.ParserSeparatedList) { - // do nothing -} diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 5d49077..3388399 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -1233,7 +1233,3 @@ func (p *printer) ParserBrackets(n *ast.ParserBrackets) { p.printNode(n.Child) p.printToken(n.CloseBracketTkn, nil) } - -func (p *printer) ParserSeparatedList(n *ast.ParserSeparatedList) { - // do nothing -} From 5291529a37ff01cdc9a6c1e80c26769dde56118f Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 11 Dec 2020 17:29:22 +0200 Subject: [PATCH 111/140] [refactoring] fix typo --- internal/php5/php5.go | 62 ++++++++++----------- internal/php5/php5.y | 44 +++++++-------- internal/php7/php7.go | 102 +++++++++++++++++------------------ internal/php7/php7.y | 90 +++++++++++++++---------------- pkg/ast/node.go | 86 ++++++++++++++--------------- pkg/ast/visitor/dump.go | 24 ++++----- pkg/ast/visitor/dump_test.go | 2 +- pkg/ast/visitor/printer.go | 52 +++++++++--------- 8 files changed, 231 insertions(+), 231 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 219f8fc..6dd0b65 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2430,9 +2430,9 @@ yydefault: Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, - OpenCurlyBracket: yyDollar[3].token, - Stmts: yyDollar[4].list, - CloseCurlyBracket: yyDollar[5].token, + OpenCurlyBracketTkn: yyDollar[3].token, + Stmts: yyDollar[4].list, + CloseCurlyBracketTkn: yyDollar[5].token, } } case 13: @@ -2440,11 +2440,11 @@ yydefault: // line internal/php5/php5.y:375 { yyVAL.node = &ast.StmtNamespace{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - NsTkn: yyDollar[1].token, - OpenCurlyBracket: yyDollar[2].token, - Stmts: yyDollar[3].list, - CloseCurlyBracket: yyDollar[4].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + NsTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, } } case 14: @@ -2867,10 +2867,10 @@ yydefault: // line internal/php5/php5.y:769 { yyVAL.node = &ast.StmtStmtList{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenCurlyBracket: yyDollar[1].token, - Stmts: yyDollar[2].list, - CloseCurlyBracket: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 48: @@ -3193,13 +3193,13 @@ yydefault: } yyVAL.node = &ast.StmtTry{ - Position: pos, - TryTkn: yyDollar[1].token, - OpenCurlyBracket: yyDollar[2].token, - Stmts: yyDollar[3].list, - CloseCurlyBracket: yyDollar[4].token, - Catches: yyDollar[5].list, - Finally: yyDollar[6].node, + Position: pos, + TryTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, + Catches: yyDollar[5].list, + Finally: yyDollar[6].node, } } case 73: @@ -3418,9 +3418,9 @@ yydefault: } n.Extends = yyDollar[3].node n.Implements = yyDollar[4].node - n.OpenCurlyBracket = yyDollar[5].token + n.OpenCurlyBracketTkn = yyDollar[5].token n.Stmts = yyDollar[6].list - n.CloseCurlyBracket = yyDollar[7].token + n.CloseCurlyBracketTkn = yyDollar[7].token case *ast.StmtTrait: n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) n.TraitName = &ast.Identifier{ @@ -3430,9 +3430,9 @@ yydefault: } n.Extends = yyDollar[3].node n.Implements = yyDollar[4].node - n.OpenCurlyBracket = yyDollar[5].token + n.OpenCurlyBracketTkn = yyDollar[5].token n.Stmts = yyDollar[6].list - n.CloseCurlyBracket = yyDollar[7].token + n.CloseCurlyBracketTkn = yyDollar[7].token } yyVAL.node = yyDollar[1].node @@ -4557,10 +4557,10 @@ yydefault: // line internal/php5/php5.y:2353 { yyVAL.node = &ast.StmtStmtList{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenCurlyBracket: yyDollar[1].token, - Stmts: yyDollar[2].list, - CloseCurlyBracket: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 198: @@ -7027,10 +7027,10 @@ yydefault: // line internal/php5/php5.y:4498 { yyVAL.node = &ast.ScalarEncapsed{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenQoteTkn: yyDollar[1].token, - Parts: yyDollar[2].list, - CloseQoteTkn: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenQuoteTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseQuoteTkn: yyDollar[3].token, } } case 419: diff --git a/internal/php5/php5.y b/internal/php5/php5.y index f244655..67e127a 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -366,19 +366,19 @@ top_statement: Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, - OpenCurlyBracket: $3, - Stmts: $4, - CloseCurlyBracket: $5, + OpenCurlyBracketTkn: $3, + Stmts: $4, + CloseCurlyBracketTkn: $5, } } | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - NsTkn: $1, - OpenCurlyBracket: $2, - Stmts: $3, - CloseCurlyBracket: $4, + NsTkn: $1, + OpenCurlyBracketTkn: $2, + Stmts: $3, + CloseCurlyBracketTkn: $4, } } | T_USE use_declarations ';' @@ -769,9 +769,9 @@ unticked_statement: { $$ = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenCurlyBracket: $1, - Stmts: $2, - CloseCurlyBracket: $3, + OpenCurlyBracketTkn: $1, + Stmts: $2, + CloseCurlyBracketTkn: $3, } } | T_IF parenthesis_expr statement elseif_list else_single @@ -1045,12 +1045,12 @@ unticked_statement: $$ = &ast.StmtTry{ Position: pos, - TryTkn: $1, - OpenCurlyBracket: $2, - Stmts: $3, - CloseCurlyBracket: $4, - Catches: $5, - Finally: $6, + TryTkn: $1, + OpenCurlyBracketTkn: $2, + Stmts: $3, + CloseCurlyBracketTkn: $4, + Catches: $5, + Finally: $6, } } | T_THROW expr ';' @@ -2353,9 +2353,9 @@ method_body: { $$ = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenCurlyBracket: $1, - Stmts: $2, - CloseCurlyBracket: $3, + OpenCurlyBracketTkn: $1, + Stmts: $2, + CloseCurlyBracketTkn: $3, } } ; @@ -4498,9 +4498,9 @@ scalar: { $$ = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenQoteTkn: $1, - Parts: $2, - CloseQoteTkn: $3, + OpenQuoteTkn: $1, + Parts: $2, + CloseQuoteTkn: $3, } } | T_START_HEREDOC encaps_list T_END_HEREDOC diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 7e9dd54..e2b0b1a 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2730,9 +2730,9 @@ yydefault: Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, }, - OpenCurlyBracket: yyDollar[3].token, - Stmts: yyDollar[4].list, - CloseCurlyBracket: yyDollar[5].token, + OpenCurlyBracketTkn: yyDollar[3].token, + Stmts: yyDollar[4].list, + CloseCurlyBracketTkn: yyDollar[5].token, } } case 95: @@ -2740,11 +2740,11 @@ yydefault: // line internal/php7/php7.y:459 { yyVAL.node = &ast.StmtNamespace{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - NsTkn: yyDollar[1].token, - OpenCurlyBracket: yyDollar[2].token, - Stmts: yyDollar[3].list, - CloseCurlyBracket: yyDollar[4].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + NsTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, } } case 96: @@ -3127,10 +3127,10 @@ yydefault: // line internal/php7/php7.y:813 { yyVAL.node = &ast.StmtStmtList{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenCurlyBracket: yyDollar[1].token, - Stmts: yyDollar[2].list, - CloseCurlyBracket: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 133: @@ -3363,13 +3363,13 @@ yydefault: } yyVAL.node = &ast.StmtTry{ - Position: pos, - TryTkn: yyDollar[1].token, - OpenCurlyBracket: yyDollar[2].token, - Stmts: yyDollar[3].list, - CloseCurlyBracket: yyDollar[4].token, - Catches: yyDollar[5].list, - Finally: yyDollar[6].node, + Position: pos, + TryTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + Stmts: yyDollar[3].list, + CloseCurlyBracketTkn: yyDollar[4].token, + Catches: yyDollar[5].list, + Finally: yyDollar[6].node, } } case 153: @@ -3560,11 +3560,11 @@ yydefault: IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, - Extends: yyDollar[4].node, - Implements: yyDollar[5].node, - OpenCurlyBracket: yyDollar[7].token, - Stmts: yyDollar[8].list, - CloseCurlyBracket: yyDollar[9].token, + Extends: yyDollar[4].node, + Implements: yyDollar[5].node, + OpenCurlyBracketTkn: yyDollar[7].token, + Stmts: yyDollar[8].list, + CloseCurlyBracketTkn: yyDollar[9].token, } } case 171: @@ -3579,11 +3579,11 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - Extends: yyDollar[3].node, - Implements: yyDollar[4].node, - OpenCurlyBracket: yyDollar[6].token, - Stmts: yyDollar[7].list, - CloseCurlyBracket: yyDollar[8].token, + Extends: yyDollar[3].node, + Implements: yyDollar[4].node, + OpenCurlyBracketTkn: yyDollar[6].token, + Stmts: yyDollar[7].list, + CloseCurlyBracketTkn: yyDollar[8].token, } } case 172: @@ -3630,9 +3630,9 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - OpenCurlyBracket: yyDollar[4].token, - Stmts: yyDollar[5].list, - CloseCurlyBracket: yyDollar[6].token, + OpenCurlyBracketTkn: yyDollar[4].token, + Stmts: yyDollar[5].list, + CloseCurlyBracketTkn: yyDollar[6].token, } } case 177: @@ -4614,10 +4614,10 @@ yydefault: // line internal/php7/php7.y:2191 { yyVAL.node = &ast.StmtStmtList{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenCurlyBracket: yyDollar[1].token, - Stmts: yyDollar[2].list, - CloseCurlyBracket: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Stmts: yyDollar[2].list, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 266: @@ -4878,17 +4878,17 @@ yydefault: // line internal/php7/php7.y:2441 { yyVAL.node = &ast.StmtClass{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), - ClassTkn: yyDollar[1].token, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, - Extends: yyDollar[3].node, - Implements: yyDollar[4].node, - OpenCurlyBracket: yyDollar[6].token, - Stmts: yyDollar[7].list, - CloseCurlyBracket: yyDollar[8].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), + ClassTkn: yyDollar[1].token, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, + Extends: yyDollar[3].node, + Implements: yyDollar[4].node, + OpenCurlyBracketTkn: yyDollar[6].token, + Stmts: yyDollar[7].list, + CloseCurlyBracketTkn: yyDollar[8].token, } } case 294: @@ -6178,10 +6178,10 @@ yydefault: // line internal/php7/php7.y:3550 { yyVAL.node = &ast.ScalarEncapsed{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenQoteTkn: yyDollar[1].token, - Parts: yyDollar[2].list, - CloseQoteTkn: yyDollar[3].token, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenQuoteTkn: yyDollar[1].token, + Parts: yyDollar[2].list, + CloseQuoteTkn: yyDollar[3].token, } } case 415: diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 1db8b0a..b69d0a3 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -450,19 +450,19 @@ top_statement: Parts: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }, - OpenCurlyBracket: $3, - Stmts: $4, - CloseCurlyBracket: $5, + OpenCurlyBracketTkn: $3, + Stmts: $4, + CloseCurlyBracketTkn: $5, } } | T_NAMESPACE '{' top_statement_list '}' { $$ = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - NsTkn: $1, - OpenCurlyBracket: $2, - Stmts: $3, - CloseCurlyBracket: $4, + NsTkn: $1, + OpenCurlyBracketTkn: $2, + Stmts: $3, + CloseCurlyBracket: $4, } } | T_USE mixed_group_use_declaration ';' @@ -813,9 +813,9 @@ statement: { $$ = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenCurlyBracket: $1, - Stmts: $2, - CloseCurlyBracket: $3, + OpenCurlyBracketTkn: $1, + Stmts: $2, + CloseCurlyBracketTkn: $3, } } | if_stmt @@ -1009,12 +1009,12 @@ statement: $$ = &ast.StmtTry{ Position: pos, - TryTkn: $1, - OpenCurlyBracket: $2, - Stmts: $3, - CloseCurlyBracket: $4, - Catches: $5, - Finally: $6, + TryTkn: $1, + OpenCurlyBracketTkn: $2, + Stmts: $3, + CloseCurlyBracketTkn: $4, + Catches: $5, + Finally: $6, } } | T_THROW expr ';' @@ -1194,11 +1194,11 @@ class_declaration_statement: IdentifierTkn: $3, Value: $3.Value, }, - Extends: $4, - Implements: $5, - OpenCurlyBracket: $7, - Stmts: $8, - CloseCurlyBracket: $9, + Extends: $4, + Implements: $5, + OpenCurlyBracketTkn: $7, + Stmts: $8, + CloseCurlyBracketTkn: $9, } } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' @@ -1211,11 +1211,11 @@ class_declaration_statement: IdentifierTkn: $2, Value: $2.Value, }, - Extends: $3, - Implements: $4, - OpenCurlyBracket: $6, - Stmts: $7, - CloseCurlyBracket: $8, + Extends: $3, + Implements: $4, + OpenCurlyBracketTkn: $6, + Stmts: $7, + CloseCurlyBracketTkn: $8, } } ; @@ -1261,9 +1261,9 @@ trait_declaration_statement: IdentifierTkn: $2, Value: $2.Value, }, - OpenCurlyBracket: $4, - Stmts: $5, - CloseCurlyBracket: $6, + OpenCurlyBracketTkn: $4, + Stmts: $5, + CloseCurlyBracketTkn: $6, } } ; @@ -2191,9 +2191,9 @@ method_body: { $$ = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenCurlyBracket: $1, - Stmts: $2, - CloseCurlyBracket: $3, + OpenCurlyBracketTkn: $1, + Stmts: $2, + CloseCurlyBracketTkn: $3, } } ; @@ -2441,16 +2441,16 @@ anonymous_class: { $$ = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), - ClassTkn: $1, - OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ast.ArgumentList).Arguments, - SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, - Extends: $3, - Implements: $4, - OpenCurlyBracket: $6, - Stmts: $7, - CloseCurlyBracket: $8, + ClassTkn: $1, + OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ast.ArgumentList).Arguments, + SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, + Extends: $3, + Implements: $4, + OpenCurlyBracketTkn: $6, + Stmts: $7, + CloseCurlyBracketTkn: $8, } } ; @@ -3550,9 +3550,9 @@ scalar: { $$ = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenQoteTkn: $1, - Parts: $2, - CloseQoteTkn: $3, + OpenQuoteTkn: $1, + Parts: $2, + CloseQuoteTkn: $3, } } | T_START_HEREDOC encaps_list T_END_HEREDOC diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 4108daa..7ba8fc6 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -102,10 +102,10 @@ func (n *ScalarDnumber) GetPosition() *position.Position { // ScalarEncapsed node type ScalarEncapsed struct { - Position *position.Position - OpenQoteTkn *token.Token - Parts []Vertex - CloseQoteTkn *token.Token + Position *position.Position + OpenQuoteTkn *token.Token + Parts []Vertex + CloseQuoteTkn *token.Token } func (n *ScalarEncapsed) Accept(v NodeVisitor) { @@ -250,19 +250,19 @@ func (n *StmtCatch) GetPosition() *position.Position { // StmtClass node type StmtClass struct { - Position *position.Position - Modifiers []Vertex - ClassTkn *token.Token - ClassName Vertex - OpenParenthesisTkn *token.Token - Arguments []Vertex - SeparatorTkns []*token.Token - CloseParenthesisTkn *token.Token - Extends Vertex - Implements Vertex - OpenCurlyBracket *token.Token - Stmts []Vertex - CloseCurlyBracket *token.Token + Position *position.Position + Modifiers []Vertex + ClassTkn *token.Token + ClassName Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token + Extends Vertex + Implements Vertex + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtClass) Accept(v NodeVisitor) { @@ -761,13 +761,13 @@ func (n *StmtLabel) GetPosition() *position.Position { // StmtNamespace node type StmtNamespace struct { - Position *position.Position - NsTkn *token.Token - Name Vertex - OpenCurlyBracket *token.Token - Stmts []Vertex - CloseCurlyBracket *token.Token - SemiColonTkn *token.Token + Position *position.Position + NsTkn *token.Token + Name Vertex + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtNamespace) Accept(v NodeVisitor) { @@ -877,10 +877,10 @@ func (n *StmtStaticVar) GetPosition() *position.Position { // StmtStmtList node type StmtStmtList struct { - Position *position.Position - OpenCurlyBracket *token.Token - Stmts []Vertex - CloseCurlyBracket *token.Token + Position *position.Position + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtStmtList) Accept(v NodeVisitor) { @@ -934,14 +934,14 @@ func (n *StmtThrow) GetPosition() *position.Position { // StmtTrait node type StmtTrait struct { - Position *position.Position - TraitTkn *token.Token - TraitName Vertex - Extends Vertex - Implements Vertex - OpenCurlyBracket *token.Token - Stmts []Vertex - CloseCurlyBracket *token.Token + Position *position.Position + TraitTkn *token.Token + TraitName Vertex + Extends Vertex + Implements Vertex + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtTrait) Accept(v NodeVisitor) { @@ -1039,13 +1039,13 @@ func (n *StmtTraitUsePrecedence) GetPosition() *position.Position { // StmtTry node type StmtTry struct { - Position *position.Position - TryTkn *token.Token - OpenCurlyBracket *token.Token - Stmts []Vertex - CloseCurlyBracket *token.Token - Catches []Vertex - Finally Vertex + Position *position.Position + TryTkn *token.Token + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token + Catches []Vertex + Finally Vertex } func (n *StmtTry) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dump.go index 5ddc306..8366e52 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dump.go @@ -288,9 +288,9 @@ func (v *Dump) StmtClass(n *ast.StmtClass) { v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) v.dumpVertex("Extends", n.Extends) v.dumpVertex("Implements", n.Implements) - v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) - v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.indent-- v.print(v.indent, "},\n") @@ -706,9 +706,9 @@ func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { v.dumpPosition(n.Position) v.dumpToken("NsTkn", n.NsTkn) v.dumpVertex("Name", n.Name) - v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) - v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpToken("SemiColonTkn", n.SemiColonTkn) v.indent-- @@ -799,9 +799,9 @@ func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { v.indent++ v.dumpPosition(n.Position) - v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) - v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.indent-- v.print(v.indent, "},\n") @@ -850,9 +850,9 @@ func (v *Dump) StmtTrait(n *ast.StmtTrait) { v.dumpVertex("TraitName", n.TraitName) v.dumpVertex("Extends", n.Extends) v.dumpVertex("Implements", n.Implements) - v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) - v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.indent-- v.print(v.indent, "},\n") @@ -934,9 +934,9 @@ func (v *Dump) StmtTry(n *ast.StmtTry) { v.dumpPosition(n.Position) v.dumpToken("TryTkn", n.TryTkn) - v.dumpToken("OpenCurlyBracket", n.OpenCurlyBracket) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) - v.dumpToken("CloseCurlyBracket", n.CloseCurlyBracket) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpVertexList("Catches", n.Catches) v.dumpVertex("Finally", n.Finally) @@ -2236,9 +2236,9 @@ func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { v.indent++ v.dumpPosition(n.Position) - v.dumpToken("OpenQoteTkn", n.OpenQoteTkn) + v.dumpToken("OpenQuoteTkn", n.OpenQuoteTkn) v.dumpVertexList("Parts", n.Parts) - v.dumpToken("CloseQoteTkn", n.CloseQoteTkn) + v.dumpToken("CloseQuoteTkn", n.CloseQuoteTkn) v.indent-- v.print(v.indent, "},\n") diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dump_test.go index cc9fb09..f3a26df 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dump_test.go @@ -13,7 +13,7 @@ import ( func TestDumper_root(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewDump(o) + p := visitor.NewDump(o).WithTokens().WithPositions() n := &ast.Root{ Position: &position.Position{ StartLine: 1, diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 3388399..ae85256 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -196,9 +196,9 @@ func (p *printer) StmtClass(n *ast.StmtClass) { p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) p.printNode(n.Extends) p.printNode(n.Implements) - p.printToken(n.OpenCurlyBracket, []byte("{")) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) - p.printToken(n.CloseCurlyBracket, []byte("}")) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) } func (p *printer) StmtClassConstList(n *ast.StmtClassConstList) { @@ -256,9 +256,9 @@ func (p *printer) StmtDeclare(n *ast.StmtDeclare) { p.printToken(n.CloseParenthesisTkn, []byte(")")) p.printToken(n.ColonTkn, nil) if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { - p.printToken(stmt.OpenCurlyBracket, nil) + p.printToken(stmt.OpenCurlyBracketTkn, nil) p.printList(stmt.Stmts) - p.printToken(stmt.CloseCurlyBracket, nil) + p.printToken(stmt.CloseCurlyBracketTkn, nil) } else { p.printNode(n.Stmt) } @@ -293,9 +293,9 @@ func (p *printer) StmtElse(n *ast.StmtElse) { p.printToken(n.ElseTkn, []byte("else")) p.printToken(n.ColonTkn, nil) if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { - p.printToken(stmt.OpenCurlyBracket, nil) + p.printToken(stmt.OpenCurlyBracketTkn, nil) p.printList(stmt.Stmts) - p.printToken(stmt.CloseCurlyBracket, nil) + p.printToken(stmt.CloseCurlyBracketTkn, nil) } else { p.printNode(n.Stmt) } @@ -308,9 +308,9 @@ func (p *printer) StmtElseIf(n *ast.StmtElseIf) { p.printToken(n.CloseParenthesisTkn, []byte(")")) p.printToken(n.ColonTkn, nil) if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { - p.printToken(stmt.OpenCurlyBracket, nil) + p.printToken(stmt.OpenCurlyBracketTkn, nil) p.printList(stmt.Stmts) - p.printToken(stmt.CloseCurlyBracket, nil) + p.printToken(stmt.CloseCurlyBracketTkn, nil) } else { p.printNode(n.Stmt) } @@ -339,9 +339,9 @@ func (p *printer) StmtFor(n *ast.StmtFor) { p.printToken(n.CloseParenthesisTkn, []byte(")")) p.printToken(n.ColonTkn, nil) if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { - p.printToken(stmt.OpenCurlyBracket, nil) + p.printToken(stmt.OpenCurlyBracketTkn, nil) p.printList(stmt.Stmts) - p.printToken(stmt.CloseCurlyBracket, nil) + p.printToken(stmt.CloseCurlyBracketTkn, nil) } else { p.printNode(n.Stmt) } @@ -360,9 +360,9 @@ func (p *printer) StmtForeach(n *ast.StmtForeach) { p.printToken(n.CloseParenthesisTkn, []byte(")")) p.printToken(n.ColonTkn, nil) if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { - p.printToken(stmt.OpenCurlyBracket, nil) + p.printToken(stmt.OpenCurlyBracketTkn, nil) p.printList(stmt.Stmts) - p.printToken(stmt.CloseCurlyBracket, nil) + p.printToken(stmt.CloseCurlyBracketTkn, nil) } else { p.printNode(n.Stmt) } @@ -410,9 +410,9 @@ func (p *printer) StmtIf(n *ast.StmtIf) { p.printToken(n.CloseParenthesisTkn, []byte(")")) p.printToken(n.ColonTkn, nil) if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { - p.printToken(stmt.OpenCurlyBracket, nil) + p.printToken(stmt.OpenCurlyBracketTkn, nil) p.printList(stmt.Stmts) - p.printToken(stmt.CloseCurlyBracket, nil) + p.printToken(stmt.CloseCurlyBracketTkn, nil) } else { p.printNode(n.Stmt) } @@ -454,9 +454,9 @@ func (p *printer) StmtLabel(n *ast.StmtLabel) { func (p *printer) StmtNamespace(n *ast.StmtNamespace) { p.printToken(n.NsTkn, []byte("namespace")) p.printNode(n.Name) - p.printToken(n.OpenCurlyBracket, p.ifNodeList(n.Stmts, []byte("{"))) + p.printToken(n.OpenCurlyBracketTkn, p.ifNodeList(n.Stmts, []byte("{"))) p.printList(n.Stmts) - p.printToken(n.CloseCurlyBracket, p.ifNodeList(n.Stmts, []byte("}"))) + p.printToken(n.CloseCurlyBracketTkn, p.ifNodeList(n.Stmts, []byte("}"))) p.printToken(n.SemiColonTkn, p.ifNotNodeList(n.Stmts, []byte(";"))) } @@ -496,9 +496,9 @@ func (p *printer) StmtStaticVar(n *ast.StmtStaticVar) { } func (p *printer) StmtStmtList(n *ast.StmtStmtList) { - p.printToken(n.OpenCurlyBracket, []byte("{")) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) - p.printToken(n.CloseCurlyBracket, []byte("}")) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) } func (p *printer) StmtSwitch(n *ast.StmtSwitch) { @@ -526,9 +526,9 @@ func (p *printer) StmtTrait(n *ast.StmtTrait) { p.printNode(n.TraitName) p.printNode(n.Extends) p.printNode(n.Implements) - p.printToken(n.OpenCurlyBracket, []byte("{")) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) - p.printToken(n.CloseCurlyBracket, []byte("}")) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) } func (p *printer) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { @@ -566,9 +566,9 @@ func (p *printer) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { func (p *printer) StmtTry(n *ast.StmtTry) { p.printToken(n.TryTkn, []byte("try")) - p.printToken(n.OpenCurlyBracket, []byte("{")) + p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) - p.printToken(n.CloseCurlyBracket, []byte("}")) + p.printToken(n.CloseCurlyBracketTkn, []byte("}")) p.printList(n.Catches) p.printNode(n.Finally) } @@ -615,9 +615,9 @@ func (p *printer) StmtWhile(n *ast.StmtWhile) { p.printToken(n.CloseParenthesisTkn, []byte(")")) p.printToken(n.ColonTkn, nil) if stmt, ok := n.Stmt.(*ast.StmtStmtList); ok && n.ColonTkn != nil { - p.printToken(stmt.OpenCurlyBracket, nil) + p.printToken(stmt.OpenCurlyBracketTkn, nil) p.printList(stmt.Stmts) - p.printToken(stmt.CloseCurlyBracket, nil) + p.printToken(stmt.CloseCurlyBracketTkn, nil) } else { p.printNode(n.Stmt) } @@ -1181,9 +1181,9 @@ func (p *printer) ScalarDnumber(n *ast.ScalarDnumber) { } func (p *printer) ScalarEncapsed(n *ast.ScalarEncapsed) { - p.printToken(n.OpenQoteTkn, []byte("\"")) + p.printToken(n.OpenQuoteTkn, []byte("\"")) p.printList(n.Parts) - p.printToken(n.CloseQoteTkn, []byte("\"")) + p.printToken(n.CloseQuoteTkn, []byte("\"")) } func (p *printer) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { From c32f5bd29b7b7b4e5769d8109dd3f6c8c0cb4d3e Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Fri, 11 Dec 2020 17:34:29 +0200 Subject: [PATCH 112/140] [refactoring] remove Alt flags --- internal/php5/php5.go | 953 +++++++++++++++++++++--------------------- internal/php5/php5.y | 17 +- internal/php7/php7.go | 619 ++++++++++++++------------- internal/php7/php7.y | 17 +- pkg/ast/node.go | 8 - 5 files changed, 785 insertions(+), 829 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 6dd0b65..0d1325e 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5636 +// line internal/php5/php5.y:5627 // line yacctab:1 var yyExca = [...]int{ @@ -2901,7 +2901,6 @@ yydefault: { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), - Alt: true, IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, Cond: yyDollar[2].node.(*ast.ParserBrackets).Child, @@ -2919,7 +2918,7 @@ yydefault: } case 50: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:818 + // line internal/php5/php5.y:817 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -2931,7 +2930,7 @@ yydefault: } case 51: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:828 + // line internal/php5/php5.y:827 { yyVAL.node = &ast.StmtDo{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), @@ -2946,7 +2945,7 @@ yydefault: } case 52: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:841 + // line internal/php5/php5.y:840 { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token @@ -2965,7 +2964,7 @@ yydefault: } case 53: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:858 + // line internal/php5/php5.y:857 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn @@ -2977,7 +2976,7 @@ yydefault: } case 54: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:868 + // line internal/php5/php5.y:867 { yyVAL.node = &ast.StmtBreak{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -2987,7 +2986,7 @@ yydefault: } case 55: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:876 + // line internal/php5/php5.y:875 { yyVAL.node = &ast.StmtBreak{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -2998,7 +2997,7 @@ yydefault: } case 56: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:885 + // line internal/php5/php5.y:884 { yyVAL.node = &ast.StmtContinue{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3008,7 +3007,7 @@ yydefault: } case 57: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:893 + // line internal/php5/php5.y:892 { yyVAL.node = &ast.StmtContinue{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3019,7 +3018,7 @@ yydefault: } case 58: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:902 + // line internal/php5/php5.y:901 { yyVAL.node = &ast.StmtReturn{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3029,7 +3028,7 @@ yydefault: } case 59: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:910 + // line internal/php5/php5.y:909 { yyVAL.node = &ast.StmtReturn{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3040,7 +3039,7 @@ yydefault: } case 60: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:919 + // line internal/php5/php5.y:918 { yyVAL.node = &ast.StmtReturn{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3051,7 +3050,7 @@ yydefault: } case 61: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:928 + // line internal/php5/php5.y:927 { yyVAL.node = &ast.StmtExpression{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -3061,7 +3060,7 @@ yydefault: } case 62: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:936 + // line internal/php5/php5.y:935 { yyDollar[2].node.(*ast.StmtGlobal).GlobalTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtGlobal).SemiColonTkn = yyDollar[3].token @@ -3071,7 +3070,7 @@ yydefault: } case 63: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:944 + // line internal/php5/php5.y:943 { yyDollar[2].node.(*ast.StmtStatic).StaticTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtStatic).SemiColonTkn = yyDollar[3].token @@ -3081,7 +3080,7 @@ yydefault: } case 64: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:952 + // line internal/php5/php5.y:951 { yyDollar[2].node.(*ast.StmtEcho).EchoTkn = yyDollar[1].token yyDollar[2].node.(*ast.StmtEcho).SemiColonTkn = yyDollar[3].token @@ -3091,7 +3090,7 @@ yydefault: } case 65: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:960 + // line internal/php5/php5.y:959 { yyVAL.node = &ast.StmtInlineHtml{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3101,7 +3100,7 @@ yydefault: } case 66: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:968 + // line internal/php5/php5.y:967 { yyVAL.node = &ast.StmtExpression{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -3111,7 +3110,7 @@ yydefault: } case 67: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:976 + // line internal/php5/php5.y:975 { yyDollar[3].node.(*ast.StmtUnset).UnsetTkn = yyDollar[1].token yyDollar[3].node.(*ast.StmtUnset).OpenParenthesisTkn = yyDollar[2].token @@ -3123,7 +3122,7 @@ yydefault: } case 68: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:986 + // line internal/php5/php5.y:985 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3143,7 +3142,7 @@ yydefault: } case 69: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1004 + // line internal/php5/php5.y:1003 { yyDollar[8].node.(*ast.StmtForeach).ForeachTkn = yyDollar[1].token yyDollar[8].node.(*ast.StmtForeach).OpenParenthesisTkn = yyDollar[2].token @@ -3163,7 +3162,7 @@ yydefault: } case 70: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1022 + // line internal/php5/php5.y:1021 { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token @@ -3176,7 +3175,7 @@ yydefault: } case 71: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1033 + // line internal/php5/php5.y:1032 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3185,7 +3184,7 @@ yydefault: } case 72: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1040 + // line internal/php5/php5.y:1039 { pos := yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[5].list) if yyDollar[6].node != nil { @@ -3204,7 +3203,7 @@ yydefault: } case 73: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1057 + // line internal/php5/php5.y:1056 { yyVAL.node = &ast.StmtThrow{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3215,7 +3214,7 @@ yydefault: } case 74: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1066 + // line internal/php5/php5.y:1065 { yyVAL.node = &ast.StmtGoto{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3230,13 +3229,13 @@ yydefault: } case 75: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1082 + // line internal/php5/php5.y:1081 { yyVAL.list = []ast.Vertex{} } case 76: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1086 + // line internal/php5/php5.y:1085 { catch := &ast.StmtCatch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -3260,13 +3259,13 @@ yydefault: } case 77: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1111 + // line internal/php5/php5.y:1110 { yyVAL.node = nil } case 78: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1115 + // line internal/php5/php5.y:1114 { yyVAL.node = &ast.StmtFinally{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3278,31 +3277,31 @@ yydefault: } case 79: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1128 + // line internal/php5/php5.y:1127 { yyVAL.list = yyDollar[1].list } case 80: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1132 + // line internal/php5/php5.y:1131 { yyVAL.list = []ast.Vertex{} } case 81: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1139 + // line internal/php5/php5.y:1138 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 82: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1143 + // line internal/php5/php5.y:1142 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 83: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:1150 + // line internal/php5/php5.y:1149 { yyVAL.node = &ast.StmtCatch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -3325,7 +3324,7 @@ yydefault: } case 84: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1174 + // line internal/php5/php5.y:1173 { yyVAL.node = &ast.StmtUnset{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -3333,7 +3332,7 @@ yydefault: } case 85: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1180 + // line internal/php5/php5.y:1179 { yyDollar[1].node.(*ast.StmtUnset).Vars = append(yyDollar[1].node.(*ast.StmtUnset).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtUnset).SeparatorTkns, yyDollar[2].token) @@ -3342,49 +3341,49 @@ yydefault: } case 86: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1190 + // line internal/php5/php5.y:1189 { yyVAL.node = yyDollar[1].node } case 87: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1197 + // line internal/php5/php5.y:1196 { yyVAL.node = yyDollar[1].node } case 88: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1204 + // line internal/php5/php5.y:1203 { yyVAL.node = yyDollar[1].node } case 89: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1211 + // line internal/php5/php5.y:1210 { yyVAL.token = nil } case 90: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1215 + // line internal/php5/php5.y:1214 { yyVAL.token = yyDollar[1].token } case 91: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1222 + // line internal/php5/php5.y:1221 { yyVAL.token = nil } case 92: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1226 + // line internal/php5/php5.y:1225 { yyVAL.token = yyDollar[1].token } case 93: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:1233 + // line internal/php5/php5.y:1232 { yyVAL.node = &ast.StmtFunction{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), @@ -3406,7 +3405,7 @@ yydefault: } case 94: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php5/php5.y:1256 + // line internal/php5/php5.y:1255 { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: @@ -3439,7 +3438,7 @@ yydefault: } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1287 + // line internal/php5/php5.y:1286 { yyVAL.node = &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -3457,7 +3456,7 @@ yydefault: } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1307 + // line internal/php5/php5.y:1306 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3466,7 +3465,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1314 + // line internal/php5/php5.y:1313 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3482,7 +3481,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1328 + // line internal/php5/php5.y:1327 { yyVAL.node = &ast.StmtTrait{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3491,7 +3490,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1335 + // line internal/php5/php5.y:1334 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3507,13 +3506,13 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1352 + // line internal/php5/php5.y:1351 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1356 + // line internal/php5/php5.y:1355 { yyVAL.node = &ast.StmtClassExtends{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3523,19 +3522,19 @@ yydefault: } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1367 + // line internal/php5/php5.y:1366 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1374 + // line internal/php5/php5.y:1373 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1378 + // line internal/php5/php5.y:1377 { yyVAL.node = &ast.StmtInterfaceExtends{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -3546,13 +3545,13 @@ yydefault: } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1390 + // line internal/php5/php5.y:1389 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1394 + // line internal/php5/php5.y:1393 { yyVAL.node = &ast.StmtClassImplements{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -3563,7 +3562,7 @@ yydefault: } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1406 + // line internal/php5/php5.y:1405 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3571,7 +3570,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1412 + // line internal/php5/php5.y:1411 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3580,13 +3579,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1422 + // line internal/php5/php5.y:1421 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1426 + // line internal/php5/php5.y:1425 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3595,13 +3594,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1436 + // line internal/php5/php5.y:1435 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1440 + // line internal/php5/php5.y:1439 { yyVAL.node = &ast.ExprReference{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3611,7 +3610,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1448 + // line internal/php5/php5.y:1447 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3631,7 +3630,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1469 + // line internal/php5/php5.y:1468 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3640,11 +3639,10 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1476 + // line internal/php5/php5.y:1475 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3656,7 +3654,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1493 + // line internal/php5/php5.y:1491 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3665,11 +3663,10 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1500 + // line internal/php5/php5.y:1498 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3681,7 +3678,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1518 + // line internal/php5/php5.y:1515 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3690,11 +3687,10 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1525 + // line internal/php5/php5.y:1522 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3706,7 +3702,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1543 + // line internal/php5/php5.y:1539 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3725,7 +3721,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1560 + // line internal/php5/php5.y:1556 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3746,7 +3742,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1583 + // line internal/php5/php5.y:1579 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3757,7 +3753,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1592 + // line internal/php5/php5.y:1588 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3769,11 +3765,10 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1602 + // line internal/php5/php5.y:1598 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, CaseList: yyDollar[2].list, EndSwitchTkn: yyDollar[3].token, @@ -3782,11 +3777,10 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1613 + // line internal/php5/php5.y:1608 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - Alt: true, ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, CaseList: yyDollar[3].list, @@ -3796,13 +3790,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1629 + // line internal/php5/php5.y:1623 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1633 + // line internal/php5/php5.y:1627 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), @@ -3814,7 +3808,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1643 + // line internal/php5/php5.y:1637 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), @@ -3825,19 +3819,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1656 + // line internal/php5/php5.y:1650 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1660 + // line internal/php5/php5.y:1654 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1668 + // line internal/php5/php5.y:1662 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3846,11 +3840,10 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1675 + // line internal/php5/php5.y:1669 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3862,13 +3855,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1694 + // line internal/php5/php5.y:1687 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1698 + // line internal/php5/php5.y:1691 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), @@ -3881,17 +3874,16 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1713 + // line internal/php5/php5.y:1706 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1717 + // line internal/php5/php5.y:1710 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), - Alt: true, ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, Cond: yyDollar[3].node.(*ast.ParserBrackets).Child, @@ -3905,13 +3897,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1737 + // line internal/php5/php5.y:1729 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1741 + // line internal/php5/php5.y:1733 { yyVAL.node = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3921,17 +3913,16 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1753 + // line internal/php5/php5.y:1745 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1757 + // line internal/php5/php5.y:1749 { yyVAL.node = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), - Alt: true, ElseTkn: yyDollar[1].token, ColonTkn: yyDollar[2].token, Stmt: &ast.StmtStmtList{ @@ -3942,19 +3933,19 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1774 + // line internal/php5/php5.y:1765 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1778 + // line internal/php5/php5.y:1769 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1785 + // line internal/php5/php5.y:1776 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3962,7 +3953,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1791 + // line internal/php5/php5.y:1782 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3971,7 +3962,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1801 + // line internal/php5/php5.y:1792 { pos := yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -3999,7 +3990,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1827 + // line internal/php5/php5.y:1818 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4029,13 +4020,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1859 + // line internal/php5/php5.y:1850 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1863 + // line internal/php5/php5.y:1854 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4045,7 +4036,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1871 + // line internal/php5/php5.y:1862 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4055,13 +4046,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1879 + // line internal/php5/php5.y:1870 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1887 + // line internal/php5/php5.y:1878 { yyVAL.node = &ast.ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -4071,7 +4062,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1895 + // line internal/php5/php5.y:1886 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4082,7 +4073,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1904 + // line internal/php5/php5.y:1895 { yyVAL.node = &ast.ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4098,7 +4089,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1922 + // line internal/php5/php5.y:1913 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4106,7 +4097,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1928 + // line internal/php5/php5.y:1919 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4115,7 +4106,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1938 + // line internal/php5/php5.y:1929 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -4124,7 +4115,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1945 + // line internal/php5/php5.y:1936 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -4133,7 +4124,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1952 + // line internal/php5/php5.y:1943 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4143,7 +4134,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1960 + // line internal/php5/php5.y:1951 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4153,7 +4144,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1971 + // line internal/php5/php5.y:1962 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4162,7 +4153,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1978 + // line internal/php5/php5.y:1969 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4170,7 +4161,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1988 + // line internal/php5/php5.y:1979 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4183,7 +4174,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1999 + // line internal/php5/php5.y:1990 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4193,7 +4184,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2007 + // line internal/php5/php5.y:1998 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -4208,7 +4199,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2024 + // line internal/php5/php5.y:2015 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4227,7 +4218,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2041 + // line internal/php5/php5.y:2032 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4248,7 +4239,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2060 + // line internal/php5/php5.y:2051 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4268,7 +4259,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2078 + // line internal/php5/php5.y:2069 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4290,19 +4281,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2102 + // line internal/php5/php5.y:2093 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2106 + // line internal/php5/php5.y:2097 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2114 + // line internal/php5/php5.y:2105 { yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), @@ -4314,7 +4305,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2124 + // line internal/php5/php5.y:2115 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4322,13 +4313,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2130 + // line internal/php5/php5.y:2121 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2134 + // line internal/php5/php5.y:2125 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4354,7 +4345,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2161 + // line internal/php5/php5.y:2152 { yyVAL.node = &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4366,7 +4357,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2174 + // line internal/php5/php5.y:2165 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4374,7 +4365,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2180 + // line internal/php5/php5.y:2171 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4383,7 +4374,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2190 + // line internal/php5/php5.y:2181 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4392,7 +4383,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2188 { yyVAL.node = &ast.StmtTraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4403,31 +4394,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2209 + // line internal/php5/php5.y:2200 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2213 + // line internal/php5/php5.y:2204 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2220 + // line internal/php5/php5.y:2211 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2224 + // line internal/php5/php5.y:2215 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2231 + // line internal/php5/php5.y:2222 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4435,7 +4426,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2237 + // line internal/php5/php5.y:2228 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4443,7 +4434,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2246 + // line internal/php5/php5.y:2237 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4455,7 +4446,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2259 + // line internal/php5/php5.y:2250 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4463,7 +4454,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2265 + // line internal/php5/php5.y:2256 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4472,7 +4463,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2275 + // line internal/php5/php5.y:2266 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4485,13 +4476,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2286 + // line internal/php5/php5.y:2277 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2293 + // line internal/php5/php5.y:2284 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4506,7 +4497,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2309 + // line internal/php5/php5.y:2300 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4522,7 +4513,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2323 + // line internal/php5/php5.y:2314 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4533,19 +4524,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2335 + // line internal/php5/php5.y:2326 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2339 + // line internal/php5/php5.y:2330 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2346 + // line internal/php5/php5.y:2337 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4554,7 +4545,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2353 + // line internal/php5/php5.y:2344 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4565,13 +4556,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2365 + // line internal/php5/php5.y:2356 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2369 + // line internal/php5/php5.y:2360 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4583,31 +4574,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2382 + // line internal/php5/php5.y:2373 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2386 + // line internal/php5/php5.y:2377 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2393 + // line internal/php5/php5.y:2384 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2397 + // line internal/php5/php5.y:2388 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2404 + // line internal/php5/php5.y:2395 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4617,7 +4608,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2412 + // line internal/php5/php5.y:2403 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4627,7 +4618,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2420 + // line internal/php5/php5.y:2411 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4637,7 +4628,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2428 + // line internal/php5/php5.y:2419 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4647,7 +4638,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2436 + // line internal/php5/php5.y:2427 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4657,7 +4648,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2444 + // line internal/php5/php5.y:2435 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4667,7 +4658,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2455 + // line internal/php5/php5.y:2446 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4688,7 +4679,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2474 + // line internal/php5/php5.y:2465 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4711,7 +4702,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2495 + // line internal/php5/php5.y:2486 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4732,7 +4723,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2514 + // line internal/php5/php5.y:2505 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4754,7 +4745,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2537 + // line internal/php5/php5.y:2528 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -4774,7 +4765,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2555 + // line internal/php5/php5.y:2546 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -4795,7 +4786,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2577 + // line internal/php5/php5.y:2568 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4804,7 +4795,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2584 + // line internal/php5/php5.y:2575 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4812,19 +4803,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2594 + // line internal/php5/php5.y:2585 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2598 + // line internal/php5/php5.y:2589 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2605 + // line internal/php5/php5.y:2596 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4833,7 +4824,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2612 + // line internal/php5/php5.y:2603 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4841,19 +4832,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2621 + // line internal/php5/php5.y:2612 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2625 + // line internal/php5/php5.y:2616 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2632 + // line internal/php5/php5.y:2623 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -4867,7 +4858,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2644 + // line internal/php5/php5.y:2635 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4881,37 +4872,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2659 + // line internal/php5/php5.y:2650 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2663 + // line internal/php5/php5.y:2654 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2667 + // line internal/php5/php5.y:2658 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2674 + // line internal/php5/php5.y:2665 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2678 + // line internal/php5/php5.y:2669 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2685 + // line internal/php5/php5.y:2676 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4932,7 +4923,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2707 + // line internal/php5/php5.y:2698 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4950,7 +4941,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2723 + // line internal/php5/php5.y:2714 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4961,7 +4952,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2732 + // line internal/php5/php5.y:2723 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -4973,7 +4964,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2742 + // line internal/php5/php5.y:2733 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5004,7 +4995,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2771 + // line internal/php5/php5.y:2762 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5014,7 +5005,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2770 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5025,7 +5016,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2788 + // line internal/php5/php5.y:2779 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5036,7 +5027,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2797 + // line internal/php5/php5.y:2788 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5047,7 +5038,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2806 + // line internal/php5/php5.y:2797 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5058,7 +5049,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2815 + // line internal/php5/php5.y:2806 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5069,7 +5060,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2824 + // line internal/php5/php5.y:2815 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5080,7 +5071,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2833 + // line internal/php5/php5.y:2824 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5091,7 +5082,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2842 + // line internal/php5/php5.y:2833 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5102,7 +5093,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2851 + // line internal/php5/php5.y:2842 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5113,7 +5104,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2860 + // line internal/php5/php5.y:2851 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5124,7 +5115,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2869 + // line internal/php5/php5.y:2860 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5135,7 +5126,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2878 + // line internal/php5/php5.y:2869 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5146,7 +5137,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2887 + // line internal/php5/php5.y:2878 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5156,7 +5147,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2895 + // line internal/php5/php5.y:2886 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5166,7 +5157,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2903 + // line internal/php5/php5.y:2894 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5176,7 +5167,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2911 + // line internal/php5/php5.y:2902 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5186,7 +5177,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2919 + // line internal/php5/php5.y:2910 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5197,7 +5188,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2928 + // line internal/php5/php5.y:2919 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5208,7 +5199,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2937 + // line internal/php5/php5.y:2928 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5219,7 +5210,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2946 + // line internal/php5/php5.y:2937 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5230,7 +5221,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2955 + // line internal/php5/php5.y:2946 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5241,7 +5232,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2964 + // line internal/php5/php5.y:2955 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5252,7 +5243,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2973 + // line internal/php5/php5.y:2964 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5263,7 +5254,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2982 + // line internal/php5/php5.y:2973 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5274,7 +5265,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2991 + // line internal/php5/php5.y:2982 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5285,7 +5276,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3000 + // line internal/php5/php5.y:2991 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5296,7 +5287,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3009 + // line internal/php5/php5.y:3000 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5307,7 +5298,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3018 + // line internal/php5/php5.y:3009 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5318,7 +5309,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3027 + // line internal/php5/php5.y:3018 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5329,7 +5320,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3036 + // line internal/php5/php5.y:3027 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5340,7 +5331,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3045 + // line internal/php5/php5.y:3036 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5351,7 +5342,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3045 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5362,7 +5353,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3063 + // line internal/php5/php5.y:3054 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5373,7 +5364,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3072 + // line internal/php5/php5.y:3063 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5383,7 +5374,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3071 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5393,7 +5384,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3088 + // line internal/php5/php5.y:3079 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5403,7 +5394,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3096 + // line internal/php5/php5.y:3087 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5413,7 +5404,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3095 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5424,7 +5415,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3104 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5435,7 +5426,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3122 + // line internal/php5/php5.y:3113 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5446,7 +5437,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3131 + // line internal/php5/php5.y:3122 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5457,7 +5448,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3131 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5468,7 +5459,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3149 + // line internal/php5/php5.y:3140 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5479,7 +5470,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3158 + // line internal/php5/php5.y:3149 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5490,7 +5481,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3167 + // line internal/php5/php5.y:3158 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5501,7 +5492,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3176 + // line internal/php5/php5.y:3167 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5512,19 +5503,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3185 + // line internal/php5/php5.y:3176 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3189 + // line internal/php5/php5.y:3180 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3193 + // line internal/php5/php5.y:3184 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5559,7 +5550,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3226 + // line internal/php5/php5.y:3217 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5572,7 +5563,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3237 + // line internal/php5/php5.y:3228 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5584,13 +5575,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3247 + // line internal/php5/php5.y:3238 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3251 + // line internal/php5/php5.y:3242 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5600,7 +5591,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3259 + // line internal/php5/php5.y:3250 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5610,7 +5601,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3267 + // line internal/php5/php5.y:3258 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5620,7 +5611,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3275 + // line internal/php5/php5.y:3266 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5630,7 +5621,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3283 + // line internal/php5/php5.y:3274 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5640,7 +5631,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3291 + // line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5650,7 +5641,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3299 + // line internal/php5/php5.y:3290 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5660,7 +5651,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3307 + // line internal/php5/php5.y:3298 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -5679,7 +5670,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3324 + // line internal/php5/php5.y:3315 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5689,25 +5680,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3332 + // line internal/php5/php5.y:3323 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3336 + // line internal/php5/php5.y:3327 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3340 + // line internal/php5/php5.y:3331 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3344 + // line internal/php5/php5.y:3335 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5718,7 +5709,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3353 + // line internal/php5/php5.y:3344 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5728,7 +5719,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3361 + // line internal/php5/php5.y:3352 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5737,7 +5728,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3368 + // line internal/php5/php5.y:3359 { yyVAL.node = &ast.ExprClosure{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), @@ -5755,7 +5746,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3384 + // line internal/php5/php5.y:3375 { yyVAL.node = &ast.ExprClosure{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token), @@ -5774,7 +5765,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3404 + // line internal/php5/php5.y:3395 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5784,7 +5775,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3412 + // line internal/php5/php5.y:3403 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5794,7 +5785,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3420 + // line internal/php5/php5.y:3411 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5806,7 +5797,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3430 + // line internal/php5/php5.y:3421 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5818,7 +5809,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3443 + // line internal/php5/php5.y:3434 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5830,7 +5821,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3453 + // line internal/php5/php5.y:3444 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5842,7 +5833,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3463 + // line internal/php5/php5.y:3454 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5858,7 +5849,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3477 + // line internal/php5/php5.y:3468 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5870,7 +5861,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3490 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5883,7 +5874,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3501 + // line internal/php5/php5.y:3492 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5895,19 +5886,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3514 + // line internal/php5/php5.y:3505 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3521 + // line internal/php5/php5.y:3512 { yyVAL.node = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3525 + // line internal/php5/php5.y:3516 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5920,7 +5911,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3539 + // line internal/php5/php5.y:3530 { variable := &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -5938,7 +5929,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3555 + // line internal/php5/php5.y:3546 { reference := &ast.ExprReference{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), @@ -5960,7 +5951,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3575 + // line internal/php5/php5.y:3566 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5977,7 +5968,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3590 + // line internal/php5/php5.y:3581 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5998,7 +5989,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3612 + // line internal/php5/php5.y:3603 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), @@ -6015,7 +6006,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3627 + // line internal/php5/php5.y:3618 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -6034,7 +6025,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3644 + // line internal/php5/php5.y:3635 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -6052,7 +6043,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3660 + // line internal/php5/php5.y:3651 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6067,7 +6058,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3673 + // line internal/php5/php5.y:3664 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6082,7 +6073,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3686 + // line internal/php5/php5.y:3677 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6097,7 +6088,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3699 + // line internal/php5/php5.y:3690 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6112,7 +6103,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3712 + // line internal/php5/php5.y:3703 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -6125,7 +6116,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3726 + // line internal/php5/php5.y:3717 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6135,7 +6126,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3734 + // line internal/php5/php5.y:3725 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6145,7 +6136,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3742 + // line internal/php5/php5.y:3733 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6157,7 +6148,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3752 + // line internal/php5/php5.y:3743 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6168,7 +6159,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3764 + // line internal/php5/php5.y:3755 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6178,7 +6169,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3772 + // line internal/php5/php5.y:3763 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6190,7 +6181,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3782 + // line internal/php5/php5.y:3773 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6201,19 +6192,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3794 + // line internal/php5/php5.y:3785 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3798 + // line internal/php5/php5.y:3789 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3805 + // line internal/php5/php5.y:3796 { yyVAL.node = yyDollar[1].node @@ -6249,25 +6240,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3839 + // line internal/php5/php5.y:3830 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3847 + // line internal/php5/php5.y:3838 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3842 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3859 + // line internal/php5/php5.y:3850 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6275,13 +6266,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3868 + // line internal/php5/php5.y:3859 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3872 + // line internal/php5/php5.y:3863 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6291,19 +6282,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3880 + // line internal/php5/php5.y:3871 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3887 + // line internal/php5/php5.y:3878 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3891 + // line internal/php5/php5.y:3882 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6315,25 +6306,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3901 + // line internal/php5/php5.y:3892 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3908 + // line internal/php5/php5.y:3899 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3912 + // line internal/php5/php5.y:3903 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3919 + // line internal/php5/php5.y:3910 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6343,7 +6334,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3927 + // line internal/php5/php5.y:3918 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6353,7 +6344,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3935 + // line internal/php5/php5.y:3926 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6363,7 +6354,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3943 + // line internal/php5/php5.y:3934 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6373,7 +6364,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3951 + // line internal/php5/php5.y:3942 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6383,7 +6374,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3959 + // line internal/php5/php5.y:3950 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6393,7 +6384,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3967 + // line internal/php5/php5.y:3958 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6403,7 +6394,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3975 + // line internal/php5/php5.y:3966 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6413,7 +6404,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3983 + // line internal/php5/php5.y:3974 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6423,7 +6414,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3991 + // line internal/php5/php5.y:3982 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6433,7 +6424,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3999 + // line internal/php5/php5.y:3990 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6450,7 +6441,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4014 + // line internal/php5/php5.y:4005 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6460,7 +6451,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4025 + // line internal/php5/php5.y:4016 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6475,25 +6466,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4041 + // line internal/php5/php5.y:4032 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4048 + // line internal/php5/php5.y:4039 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4052 + // line internal/php5/php5.y:4043 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4056 + // line internal/php5/php5.y:4047 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6506,7 +6497,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4067 + // line internal/php5/php5.y:4058 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6521,7 +6512,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4080 + // line internal/php5/php5.y:4071 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6535,7 +6526,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4092 + // line internal/php5/php5.y:4083 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6548,7 +6539,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4103 + // line internal/php5/php5.y:4094 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6560,13 +6551,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4104 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4117 + // line internal/php5/php5.y:4108 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6576,13 +6567,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4125 + // line internal/php5/php5.y:4116 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4132 + // line internal/php5/php5.y:4123 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6594,7 +6585,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4142 + // line internal/php5/php5.y:4133 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6605,7 +6596,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4142 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6616,7 +6607,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4160 + // line internal/php5/php5.y:4151 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6627,7 +6618,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4169 + // line internal/php5/php5.y:4160 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6638,7 +6629,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4178 + // line internal/php5/php5.y:4169 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6649,7 +6640,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4187 + // line internal/php5/php5.y:4178 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6660,7 +6651,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4196 + // line internal/php5/php5.y:4187 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6670,7 +6661,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4204 + // line internal/php5/php5.y:4195 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6680,7 +6671,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4212 + // line internal/php5/php5.y:4203 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6691,7 +6682,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4221 + // line internal/php5/php5.y:4212 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6702,7 +6693,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4230 + // line internal/php5/php5.y:4221 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6713,7 +6704,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4239 + // line internal/php5/php5.y:4230 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6724,7 +6715,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4248 + // line internal/php5/php5.y:4239 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6735,7 +6726,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4257 + // line internal/php5/php5.y:4248 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6746,7 +6737,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4257 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6757,7 +6748,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4275 + // line internal/php5/php5.y:4266 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6768,7 +6759,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4275 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6779,7 +6770,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4293 + // line internal/php5/php5.y:4284 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6790,7 +6781,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4302 + // line internal/php5/php5.y:4293 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6801,7 +6792,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4311 + // line internal/php5/php5.y:4302 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6812,7 +6803,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4311 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6823,7 +6814,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6834,7 +6825,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4338 + // line internal/php5/php5.y:4329 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6845,7 +6836,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4347 + // line internal/php5/php5.y:4338 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6856,7 +6847,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4356 + // line internal/php5/php5.y:4347 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6867,7 +6858,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4365 + // line internal/php5/php5.y:4356 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6878,7 +6869,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4374 + // line internal/php5/php5.y:4365 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6889,7 +6880,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4383 + // line internal/php5/php5.y:4374 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6901,7 +6892,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4393 + // line internal/php5/php5.y:4384 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -6914,7 +6905,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4404 + // line internal/php5/php5.y:4395 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6924,7 +6915,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4412 + // line internal/php5/php5.y:4403 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6934,7 +6925,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4411 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6945,13 +6936,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4432 + // line internal/php5/php5.y:4423 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4436 + // line internal/php5/php5.y:4427 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6964,7 +6955,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4447 + // line internal/php5/php5.y:4438 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6979,7 +6970,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4460 + // line internal/php5/php5.y:4451 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6993,7 +6984,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4475 + // line internal/php5/php5.y:4466 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7006,25 +6997,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4486 + // line internal/php5/php5.y:4477 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4490 + // line internal/php5/php5.y:4481 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4494 + // line internal/php5/php5.y:4485 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4489 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7035,7 +7026,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4507 + // line internal/php5/php5.y:4498 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7046,7 +7037,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4516 + // line internal/php5/php5.y:4507 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7056,13 +7047,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4527 + // line internal/php5/php5.y:4518 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4531 + // line internal/php5/php5.y:4522 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7073,19 +7064,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4543 + // line internal/php5/php5.y:4534 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4547 + // line internal/php5/php5.y:4538 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4554 + // line internal/php5/php5.y:4545 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7101,7 +7092,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4568 + // line internal/php5/php5.y:4559 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7115,7 +7106,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4580 + // line internal/php5/php5.y:4571 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7130,7 +7121,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4584 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7143,19 +7134,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4607 + // line internal/php5/php5.y:4598 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4611 + // line internal/php5/php5.y:4602 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4618 + // line internal/php5/php5.y:4609 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7166,7 +7157,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4627 + // line internal/php5/php5.y:4618 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7177,25 +7168,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4640 + // line internal/php5/php5.y:4631 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4648 + // line internal/php5/php5.y:4639 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4655 + // line internal/php5/php5.y:4646 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4662 + // line internal/php5/php5.y:4653 { yyVAL.node = yyDollar[1].node @@ -7272,25 +7263,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4737 + // line internal/php5/php5.y:4728 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4744 + // line internal/php5/php5.y:4735 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4748 + // line internal/php5/php5.y:4739 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4756 + // line internal/php5/php5.y:4747 { println("FOOFOOFOOFOOFOOFOOFOOFOOFOO") yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7320,7 +7311,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4777 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7334,7 +7325,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4798 + // line internal/php5/php5.y:4789 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7348,7 +7339,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4813 + // line internal/php5/php5.y:4804 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7360,31 +7351,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4826 + // line internal/php5/php5.y:4817 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4830 + // line internal/php5/php5.y:4821 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4834 + // line internal/php5/php5.y:4825 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4841 + // line internal/php5/php5.y:4832 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4845 + // line internal/php5/php5.y:4836 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7396,7 +7387,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4858 + // line internal/php5/php5.y:4849 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7407,7 +7398,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4867 + // line internal/php5/php5.y:4858 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7418,13 +7409,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4870 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4886 + // line internal/php5/php5.y:4877 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7436,7 +7427,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4896 + // line internal/php5/php5.y:4887 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7448,31 +7439,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4909 + // line internal/php5/php5.y:4900 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4913 + // line internal/php5/php5.y:4904 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4908 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4925 + // line internal/php5/php5.y:4916 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4929 + // line internal/php5/php5.y:4920 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7484,13 +7475,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4939 + // line internal/php5/php5.y:4930 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4946 + // line internal/php5/php5.y:4937 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7502,7 +7493,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4956 + // line internal/php5/php5.y:4947 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7514,13 +7505,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4966 + // line internal/php5/php5.y:4957 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4974 + // line internal/php5/php5.y:4965 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7533,7 +7524,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4985 + // line internal/php5/php5.y:4976 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7548,25 +7539,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5001 + // line internal/php5/php5.y:4992 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5005 + // line internal/php5/php5.y:4996 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5013 + // line internal/php5/php5.y:5004 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5017 + // line internal/php5/php5.y:5008 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7577,7 +7568,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5029 + // line internal/php5/php5.y:5020 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7591,7 +7582,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5041 + // line internal/php5/php5.y:5032 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7605,7 +7596,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5053 + // line internal/php5/php5.y:5044 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7616,7 +7607,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5065 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7626,7 +7617,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5073 + // line internal/php5/php5.y:5064 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7637,7 +7628,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5085 + // line internal/php5/php5.y:5076 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7648,7 +7639,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5094 + // line internal/php5/php5.y:5085 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7657,7 +7648,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5104 + // line internal/php5/php5.y:5095 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7666,7 +7657,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5111 + // line internal/php5/php5.y:5102 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7674,7 +7665,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5121 + // line internal/php5/php5.y:5112 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7683,7 +7674,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5128 + // line internal/php5/php5.y:5119 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7706,19 +7697,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5149 + // line internal/php5/php5.y:5140 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5157 + // line internal/php5/php5.y:5148 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5161 + // line internal/php5/php5.y:5152 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7729,7 +7720,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5173 + // line internal/php5/php5.y:5164 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7745,7 +7736,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5187 + // line internal/php5/php5.y:5178 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7759,7 +7750,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5199 + // line internal/php5/php5.y:5190 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7774,7 +7765,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5212 + // line internal/php5/php5.y:5203 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7787,7 +7778,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5223 + // line internal/php5/php5.y:5214 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7807,7 +7798,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5241 + // line internal/php5/php5.y:5232 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7825,7 +7816,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5257 + // line internal/php5/php5.y:5248 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7844,7 +7835,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7861,13 +7852,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5292 + // line internal/php5/php5.y:5283 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5296 + // line internal/php5/php5.y:5287 { yyVAL.list = append( yyDollar[1].list, @@ -7880,13 +7871,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5298 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5311 + // line internal/php5/php5.y:5302 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7899,7 +7890,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5325 + // line internal/php5/php5.y:5316 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7912,7 +7903,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5336 + // line internal/php5/php5.y:5327 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7931,7 +7922,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5353 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7953,7 +7944,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5373 + // line internal/php5/php5.y:5364 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7967,7 +7958,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5385 + // line internal/php5/php5.y:5376 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7985,7 +7976,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5401 + // line internal/php5/php5.y:5392 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -8009,7 +8000,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5423 + // line internal/php5/php5.y:5414 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8020,7 +8011,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5435 + // line internal/php5/php5.y:5426 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8030,7 +8021,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5443 + // line internal/php5/php5.y:5434 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8049,7 +8040,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5460 + // line internal/php5/php5.y:5451 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8062,7 +8053,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5474 + // line internal/php5/php5.y:5465 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8075,7 +8066,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5476 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8087,7 +8078,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5495 + // line internal/php5/php5.y:5486 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8099,7 +8090,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5505 + // line internal/php5/php5.y:5496 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8109,7 +8100,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5513 + // line internal/php5/php5.y:5504 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8119,7 +8110,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5512 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8131,7 +8122,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5531 + // line internal/php5/php5.y:5522 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8141,7 +8132,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5539 + // line internal/php5/php5.y:5530 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8151,7 +8142,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5541 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8159,7 +8150,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5556 + // line internal/php5/php5.y:5547 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8168,19 +8159,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5566 + // line internal/php5/php5.y:5557 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5570 + // line internal/php5/php5.y:5561 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5577 + // line internal/php5/php5.y:5568 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8195,7 +8186,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5590 + // line internal/php5/php5.y:5581 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8210,7 +8201,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5606 + // line internal/php5/php5.y:5597 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8225,7 +8216,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5622 + // line internal/php5/php5.y:5613 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 67e127a..86ffc35 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -798,7 +798,6 @@ unticked_statement: { $$ = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), - Alt: true, IfTkn: $1, OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, Cond: $2.(*ast.ParserBrackets).Child, @@ -1264,9 +1263,9 @@ unticked_class_declaration_statement: } n.Extends = $3 n.Implements = $4 - n.OpenCurlyBracket = $5 + n.OpenCurlyBracketTkn = $5 n.Stmts = $6 - n.CloseCurlyBracket = $7 + n.CloseCurlyBracketTkn = $7 case *ast.StmtTrait : n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) n.TraitName = &ast.Identifier{ @@ -1276,9 +1275,9 @@ unticked_class_declaration_statement: } n.Extends = $3 n.Implements = $4 - n.OpenCurlyBracket = $5 + n.OpenCurlyBracketTkn = $5 n.Stmts = $6 - n.CloseCurlyBracket = $7 + n.CloseCurlyBracketTkn = $7 } $$ = $1 @@ -1476,7 +1475,6 @@ for_statement: { $$ = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1500,7 +1498,6 @@ foreach_statement: { $$ = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1525,7 +1522,6 @@ declare_statement: { $$ = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1602,7 +1598,6 @@ switch_case_list: { $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, CaseList: $2, EndSwitchTkn: $3, @@ -1613,7 +1608,6 @@ switch_case_list: { $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), - Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1675,7 +1669,6 @@ while_statement: { $$ = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1717,7 +1710,6 @@ new_elseif_list: { $$ = append($1, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), - Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, Cond: $3.(*ast.ParserBrackets).Child, @@ -1757,7 +1749,6 @@ new_else_single: { $$ = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3), - Alt: true, ElseTkn: $1, ColonTkn: $2, Stmt: &ast.StmtStmtList{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index e2b0b1a..957aacc 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4337 +// line internal/php7/php7.y:4328 // line yacctab:1 var yyExca = [...]int{ @@ -3759,7 +3759,6 @@ yydefault: { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3771,7 +3770,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1399 + // line internal/php7/php7.y:1398 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3780,11 +3779,10 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1406 + // line internal/php7/php7.y:1405 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3796,7 +3794,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1421 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3805,11 +3803,10 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1430 + // line internal/php7/php7.y:1428 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3821,7 +3818,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1447 + // line internal/php7/php7.y:1444 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3832,7 +3829,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1456 + // line internal/php7/php7.y:1453 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3844,11 +3841,10 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1466 + // line internal/php7/php7.y:1463 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, CaseList: yyDollar[2].list, EndSwitchTkn: yyDollar[3].token, @@ -3857,11 +3853,10 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1477 + // line internal/php7/php7.y:1473 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), - Alt: true, ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, CaseList: yyDollar[3].list, @@ -3871,13 +3866,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1492 + // line internal/php7/php7.y:1487 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1496 + // line internal/php7/php7.y:1491 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), @@ -3889,7 +3884,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1506 + // line internal/php7/php7.y:1501 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), @@ -3900,19 +3895,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1518 + // line internal/php7/php7.y:1513 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1522 + // line internal/php7/php7.y:1517 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1529 + // line internal/php7/php7.y:1524 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3921,11 +3916,10 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1536 + // line internal/php7/php7.y:1531 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - Alt: true, ColonTkn: yyDollar[1].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].list), @@ -3937,7 +3931,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1553 + // line internal/php7/php7.y:1547 { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -3950,7 +3944,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1564 + // line internal/php7/php7.y:1558 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), @@ -3967,13 +3961,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1582 + // line internal/php7/php7.y:1576 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1586 + // line internal/php7/php7.y:1580 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), @@ -3987,11 +3981,10 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1601 + // line internal/php7/php7.y:1595 { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), - Alt: true, IfTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, Cond: yyDollar[3].node, @@ -4005,11 +3998,10 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1617 + // line internal/php7/php7.y:1610 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), - Alt: true, ElseIfTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, Cond: yyDollar[4].node, @@ -4025,7 +4017,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1638 + // line internal/php7/php7.y:1630 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4035,11 +4027,10 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1646 + // line internal/php7/php7.y:1638 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), - Alt: true, ElseTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, Stmt: &ast.StmtStmtList{ @@ -4055,19 +4046,19 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1667 + // line internal/php7/php7.y:1658 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1671 + // line internal/php7/php7.y:1662 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1678 + // line internal/php7/php7.y:1669 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4075,7 +4066,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1684 + // line internal/php7/php7.y:1675 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4084,7 +4075,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1694 + // line internal/php7/php7.y:1685 { pos := yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4112,7 +4103,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1720 + // line internal/php7/php7.y:1711 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4142,25 +4133,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1751 + // line internal/php7/php7.y:1742 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1755 + // line internal/php7/php7.y:1746 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1762 + // line internal/php7/php7.y:1753 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1766 + // line internal/php7/php7.y:1757 { yyVAL.node = &ast.Nullable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4170,7 +4161,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1777 + // line internal/php7/php7.y:1768 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4180,7 +4171,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1785 + // line internal/php7/php7.y:1776 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4190,19 +4181,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1793 + // line internal/php7/php7.y:1784 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1800 + // line internal/php7/php7.y:1791 { yyVAL.node = &ast.ReturnType{} } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1804 + // line internal/php7/php7.y:1795 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4211,7 +4202,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1814 + // line internal/php7/php7.y:1805 { yyVAL.node = &ast.ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -4221,7 +4212,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1822 + // line internal/php7/php7.y:1813 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4235,7 +4226,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1837 + // line internal/php7/php7.y:1828 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4243,7 +4234,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1843 + // line internal/php7/php7.y:1834 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4252,7 +4243,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1853 + // line internal/php7/php7.y:1844 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -4261,7 +4252,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1860 + // line internal/php7/php7.y:1851 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4271,7 +4262,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1871 + // line internal/php7/php7.y:1862 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4280,7 +4271,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1878 + // line internal/php7/php7.y:1869 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4288,13 +4279,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1887 + // line internal/php7/php7.y:1878 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1894 + // line internal/php7/php7.y:1885 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4303,7 +4294,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1901 + // line internal/php7/php7.y:1892 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4311,7 +4302,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1910 + // line internal/php7/php7.y:1901 { yyVAL.node = &ast.StmtStaticVar{ @@ -4328,7 +4319,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1925 + // line internal/php7/php7.y:1916 { yyVAL.node = &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4346,19 +4337,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1944 + // line internal/php7/php7.y:1935 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1948 + // line internal/php7/php7.y:1939 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1955 + // line internal/php7/php7.y:1946 { yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), @@ -4371,7 +4362,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1966 + // line internal/php7/php7.y:1957 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), @@ -4384,7 +4375,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1977 + // line internal/php7/php7.y:1968 { yyVAL.node = &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4396,7 +4387,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:1987 + // line internal/php7/php7.y:1978 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4424,7 +4415,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2016 + // line internal/php7/php7.y:2007 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4432,7 +4423,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2022 + // line internal/php7/php7.y:2013 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4441,7 +4432,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2032 + // line internal/php7/php7.y:2023 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4450,7 +4441,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2039 + // line internal/php7/php7.y:2030 { yyVAL.node = &ast.StmtTraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -4460,7 +4451,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2047 + // line internal/php7/php7.y:2038 { yyVAL.node = &ast.StmtTraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4471,19 +4462,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2059 + // line internal/php7/php7.y:2050 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2063 + // line internal/php7/php7.y:2054 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2070 + // line internal/php7/php7.y:2061 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4491,7 +4482,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2076 + // line internal/php7/php7.y:2067 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4499,7 +4490,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2085 + // line internal/php7/php7.y:2076 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4511,7 +4502,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2098 + // line internal/php7/php7.y:2089 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4526,7 +4517,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2111 + // line internal/php7/php7.y:2102 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4541,7 +4532,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2124 + // line internal/php7/php7.y:2115 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4557,7 +4548,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2138 + // line internal/php7/php7.y:2129 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4568,7 +4559,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2150 + // line internal/php7/php7.y:2141 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4581,13 +4572,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2161 + // line internal/php7/php7.y:2152 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2168 + // line internal/php7/php7.y:2159 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4602,7 +4593,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2184 + // line internal/php7/php7.y:2175 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4611,7 +4602,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2191 + // line internal/php7/php7.y:2182 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4622,13 +4613,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2203 + // line internal/php7/php7.y:2194 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2207 + // line internal/php7/php7.y:2198 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4640,31 +4631,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2220 + // line internal/php7/php7.y:2211 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2224 + // line internal/php7/php7.y:2215 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2231 + // line internal/php7/php7.y:2222 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2235 + // line internal/php7/php7.y:2226 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2242 + // line internal/php7/php7.y:2233 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4674,7 +4665,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2250 + // line internal/php7/php7.y:2241 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4684,7 +4675,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2258 + // line internal/php7/php7.y:2249 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4694,7 +4685,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2266 + // line internal/php7/php7.y:2257 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4704,7 +4695,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2274 + // line internal/php7/php7.y:2265 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4714,7 +4705,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2282 + // line internal/php7/php7.y:2273 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4724,7 +4715,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2293 + // line internal/php7/php7.y:2284 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4733,7 +4724,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2300 + // line internal/php7/php7.y:2291 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4741,7 +4732,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2309 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4758,7 +4749,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2324 + // line internal/php7/php7.y:2315 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4776,7 +4767,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2343 + // line internal/php7/php7.y:2334 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4785,7 +4776,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2350 + // line internal/php7/php7.y:2341 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4793,7 +4784,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2359 + // line internal/php7/php7.y:2350 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4808,7 +4799,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2375 + // line internal/php7/php7.y:2366 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4823,7 +4814,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2391 + // line internal/php7/php7.y:2382 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4832,7 +4823,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2398 + // line internal/php7/php7.y:2389 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4840,25 +4831,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2407 + // line internal/php7/php7.y:2398 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2414 + // line internal/php7/php7.y:2405 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2418 + // line internal/php7/php7.y:2409 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2425 + // line internal/php7/php7.y:2416 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4867,7 +4858,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2432 + // line internal/php7/php7.y:2423 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4875,7 +4866,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2441 + // line internal/php7/php7.y:2432 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -4893,7 +4884,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2460 + // line internal/php7/php7.y:2451 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4915,7 +4906,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2480 + // line internal/php7/php7.y:2471 { yyVAL.node = &ast.ExprNew{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4925,7 +4916,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2491 + // line internal/php7/php7.y:2482 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4943,7 +4934,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2507 + // line internal/php7/php7.y:2498 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -4960,7 +4951,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2522 + // line internal/php7/php7.y:2513 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4971,7 +4962,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2531 + // line internal/php7/php7.y:2522 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -4983,7 +4974,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2541 + // line internal/php7/php7.y:2532 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4993,7 +4984,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2549 + // line internal/php7/php7.y:2540 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5004,7 +4995,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2558 + // line internal/php7/php7.y:2549 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5015,7 +5006,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2567 + // line internal/php7/php7.y:2558 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5026,7 +5017,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2576 + // line internal/php7/php7.y:2567 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5037,7 +5028,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2585 + // line internal/php7/php7.y:2576 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5048,7 +5039,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2594 + // line internal/php7/php7.y:2585 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5059,7 +5050,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2603 + // line internal/php7/php7.y:2594 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5070,7 +5061,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2612 + // line internal/php7/php7.y:2603 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5081,7 +5072,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2621 + // line internal/php7/php7.y:2612 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5092,7 +5083,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2630 + // line internal/php7/php7.y:2621 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5103,7 +5094,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2639 + // line internal/php7/php7.y:2630 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5114,7 +5105,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2648 + // line internal/php7/php7.y:2639 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5125,7 +5116,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2657 + // line internal/php7/php7.y:2648 { yyVAL.node = &ast.ExprAssignCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5136,7 +5127,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2666 + // line internal/php7/php7.y:2657 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5146,7 +5137,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2674 + // line internal/php7/php7.y:2665 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5156,7 +5147,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2682 + // line internal/php7/php7.y:2673 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5166,7 +5157,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2690 + // line internal/php7/php7.y:2681 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5176,7 +5167,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2698 + // line internal/php7/php7.y:2689 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5187,7 +5178,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2707 + // line internal/php7/php7.y:2698 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5198,7 +5189,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2716 + // line internal/php7/php7.y:2707 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5209,7 +5200,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2725 + // line internal/php7/php7.y:2716 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5220,7 +5211,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2734 + // line internal/php7/php7.y:2725 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5231,7 +5222,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2743 + // line internal/php7/php7.y:2734 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5242,7 +5233,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2752 + // line internal/php7/php7.y:2743 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5253,7 +5244,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2761 + // line internal/php7/php7.y:2752 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5264,7 +5255,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2770 + // line internal/php7/php7.y:2761 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5275,7 +5266,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2779 + // line internal/php7/php7.y:2770 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5286,7 +5277,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2788 + // line internal/php7/php7.y:2779 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5297,7 +5288,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2797 + // line internal/php7/php7.y:2788 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5308,7 +5299,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2806 + // line internal/php7/php7.y:2797 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5319,7 +5310,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2815 + // line internal/php7/php7.y:2806 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5330,7 +5321,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2824 + // line internal/php7/php7.y:2815 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5341,7 +5332,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2833 + // line internal/php7/php7.y:2824 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5352,7 +5343,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2842 + // line internal/php7/php7.y:2833 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5363,7 +5354,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2851 + // line internal/php7/php7.y:2842 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5373,7 +5364,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2859 + // line internal/php7/php7.y:2850 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5383,7 +5374,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2867 + // line internal/php7/php7.y:2858 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5393,7 +5384,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2875 + // line internal/php7/php7.y:2866 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5403,7 +5394,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2874 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5414,7 +5405,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2892 + // line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5425,7 +5416,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2901 + // line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5436,7 +5427,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2910 + // line internal/php7/php7.y:2901 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5447,7 +5438,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2919 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5458,7 +5449,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2928 + // line internal/php7/php7.y:2919 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5469,7 +5460,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2937 + // line internal/php7/php7.y:2928 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5480,7 +5471,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2946 + // line internal/php7/php7.y:2937 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5491,7 +5482,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2955 + // line internal/php7/php7.y:2946 { yyVAL.node = &ast.ExprBinarySpaceship{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5502,7 +5493,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2964 + // line internal/php7/php7.y:2955 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5513,7 +5504,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2973 + // line internal/php7/php7.y:2964 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5524,13 +5515,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2982 + // line internal/php7/php7.y:2973 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2986 + // line internal/php7/php7.y:2977 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5543,7 +5534,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2997 + // line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5555,7 +5546,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3007 + // line internal/php7/php7.y:2998 { yyVAL.node = &ast.ExprBinaryCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5566,13 +5557,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3016 + // line internal/php7/php7.y:3007 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3020 + // line internal/php7/php7.y:3011 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5582,7 +5573,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3028 + // line internal/php7/php7.y:3019 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5592,7 +5583,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3036 + // line internal/php7/php7.y:3027 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5602,7 +5593,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3044 + // line internal/php7/php7.y:3035 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5612,7 +5603,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3052 + // line internal/php7/php7.y:3043 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5622,7 +5613,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3060 + // line internal/php7/php7.y:3051 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5632,7 +5623,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3068 + // line internal/php7/php7.y:3059 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5642,7 +5633,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3076 + // line internal/php7/php7.y:3067 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -5661,7 +5652,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3093 + // line internal/php7/php7.y:3084 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5671,13 +5662,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3101 + // line internal/php7/php7.y:3092 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3105 + // line internal/php7/php7.y:3096 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5688,7 +5679,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3114 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5698,7 +5689,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3122 + // line internal/php7/php7.y:3113 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5707,7 +5698,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3129 + // line internal/php7/php7.y:3120 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5717,7 +5708,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3137 + // line internal/php7/php7.y:3128 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5729,7 +5720,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3147 + // line internal/php7/php7.y:3138 { yyVAL.node = &ast.ExprYieldFrom{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5739,13 +5730,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3155 + // line internal/php7/php7.y:3146 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3159 + // line internal/php7/php7.y:3150 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -5760,7 +5751,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3175 + // line internal/php7/php7.y:3166 { yyVAL.node = &ast.ExprClosure{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), @@ -5780,7 +5771,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3193 + // line internal/php7/php7.y:3184 { yyVAL.node = &ast.ExprArrowFunction{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), @@ -5798,25 +5789,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3216 + // line internal/php7/php7.y:3207 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3220 + // line internal/php7/php7.y:3211 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3227 + // line internal/php7/php7.y:3218 { yyVAL.node = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3231 + // line internal/php7/php7.y:3222 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5829,7 +5820,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3245 + // line internal/php7/php7.y:3236 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5838,7 +5829,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3252 + // line internal/php7/php7.y:3243 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5846,7 +5837,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3261 + // line internal/php7/php7.y:3252 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5859,7 +5850,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3272 + // line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprReference{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -5876,7 +5867,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3290 + // line internal/php7/php7.y:3281 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5889,7 +5880,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3301 + // line internal/php7/php7.y:3292 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5904,7 +5895,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3314 + // line internal/php7/php7.y:3305 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5919,7 +5910,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3327 + // line internal/php7/php7.y:3318 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5932,7 +5923,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3341 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5942,31 +5933,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3340 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3356 + // line internal/php7/php7.y:3347 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3360 + // line internal/php7/php7.y:3351 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3367 + // line internal/php7/php7.y:3358 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3371 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5977,13 +5968,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3383 + // line internal/php7/php7.y:3374 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3378 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -5995,25 +5986,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3397 + // line internal/php7/php7.y:3388 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3404 + // line internal/php7/php7.y:3395 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3408 + // line internal/php7/php7.y:3399 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3415 + // line internal/php7/php7.y:3406 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6026,7 +6017,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3417 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6038,7 +6029,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3436 + // line internal/php7/php7.y:3427 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6048,7 +6039,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3447 + // line internal/php7/php7.y:3438 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6058,7 +6049,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3455 + // line internal/php7/php7.y:3446 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6068,7 +6059,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3463 + // line internal/php7/php7.y:3454 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6078,7 +6069,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3471 + // line internal/php7/php7.y:3462 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6088,7 +6079,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3479 + // line internal/php7/php7.y:3470 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6098,7 +6089,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3487 + // line internal/php7/php7.y:3478 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6108,7 +6099,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3495 + // line internal/php7/php7.y:3486 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6118,7 +6109,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3503 + // line internal/php7/php7.y:3494 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6128,7 +6119,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3511 + // line internal/php7/php7.y:3502 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6138,7 +6129,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3519 + // line internal/php7/php7.y:3510 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6148,7 +6139,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3527 + // line internal/php7/php7.y:3518 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6165,7 +6156,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3542 + // line internal/php7/php7.y:3533 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6175,7 +6166,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3550 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6186,7 +6177,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3559 + // line internal/php7/php7.y:3550 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6197,19 +6188,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3568 + // line internal/php7/php7.y:3559 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3572 + // line internal/php7/php7.y:3563 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3579 + // line internal/php7/php7.y:3570 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6218,7 +6209,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3586 + // line internal/php7/php7.y:3577 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6233,7 +6224,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3599 + // line internal/php7/php7.y:3590 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6248,43 +6239,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3615 + // line internal/php7/php7.y:3606 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3619 + // line internal/php7/php7.y:3610 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3626 + // line internal/php7/php7.y:3617 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3630 + // line internal/php7/php7.y:3621 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3637 + // line internal/php7/php7.y:3628 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3644 + // line internal/php7/php7.y:3635 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3648 + // line internal/php7/php7.y:3639 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6295,19 +6286,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3657 + // line internal/php7/php7.y:3648 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3664 + // line internal/php7/php7.y:3655 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3668 + // line internal/php7/php7.y:3659 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6318,19 +6309,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3677 + // line internal/php7/php7.y:3668 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3684 + // line internal/php7/php7.y:3675 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3688 + // line internal/php7/php7.y:3679 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6342,7 +6333,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3698 + // line internal/php7/php7.y:3689 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6354,7 +6345,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3699 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6366,7 +6357,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3718 + // line internal/php7/php7.y:3709 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6381,25 +6372,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3731 + // line internal/php7/php7.y:3722 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3738 + // line internal/php7/php7.y:3729 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3742 + // line internal/php7/php7.y:3733 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3737 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6410,7 +6401,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3758 + // line internal/php7/php7.y:3749 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6423,7 +6414,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3769 + // line internal/php7/php7.y:3760 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6438,7 +6429,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3782 + // line internal/php7/php7.y:3773 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6448,7 +6439,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3793 + // line internal/php7/php7.y:3784 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6459,7 +6450,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3802 + // line internal/php7/php7.y:3793 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6470,13 +6461,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3814 + // line internal/php7/php7.y:3805 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3818 + // line internal/php7/php7.y:3809 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6488,7 +6479,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3828 + // line internal/php7/php7.y:3819 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6500,7 +6491,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3838 + // line internal/php7/php7.y:3829 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6511,7 +6502,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3838 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6522,7 +6513,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3856 + // line internal/php7/php7.y:3847 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6533,7 +6524,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3868 + // line internal/php7/php7.y:3859 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6543,7 +6534,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3876 + // line internal/php7/php7.y:3867 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6554,13 +6545,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3885 + // line internal/php7/php7.y:3876 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3892 + // line internal/php7/php7.y:3883 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6570,7 +6561,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3900 + // line internal/php7/php7.y:3891 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6581,13 +6572,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3909 + // line internal/php7/php7.y:3900 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3916 + // line internal/php7/php7.y:3907 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6600,19 +6591,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3930 + // line internal/php7/php7.y:3921 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3934 + // line internal/php7/php7.y:3925 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3941 + // line internal/php7/php7.y:3932 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6621,7 +6612,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3948 + // line internal/php7/php7.y:3939 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6629,7 +6620,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3957 + // line internal/php7/php7.y:3948 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6640,7 +6631,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3966 + // line internal/php7/php7.y:3957 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6649,7 +6640,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3973 + // line internal/php7/php7.y:3964 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6664,7 +6655,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3986 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6677,7 +6668,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3997 + // line internal/php7/php7.y:3988 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6687,7 +6678,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4005 + // line internal/php7/php7.y:3996 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6705,7 +6696,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4021 + // line internal/php7/php7.y:4012 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6721,13 +6712,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4038 + // line internal/php7/php7.y:4029 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4033 { yyVAL.list = append( yyDollar[1].list, @@ -6740,13 +6731,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4053 + // line internal/php7/php7.y:4044 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4057 + // line internal/php7/php7.y:4048 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6759,7 +6750,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4071 + // line internal/php7/php7.y:4062 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6772,7 +6763,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4082 + // line internal/php7/php7.y:4073 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6791,7 +6782,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4099 + // line internal/php7/php7.y:4090 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6813,7 +6804,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4119 + // line internal/php7/php7.y:4110 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6827,7 +6818,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4131 + // line internal/php7/php7.y:4122 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6845,7 +6836,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4147 + // line internal/php7/php7.y:4138 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -6869,7 +6860,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4160 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6880,7 +6871,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4181 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6890,7 +6881,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4189 + // line internal/php7/php7.y:4180 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6909,7 +6900,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4206 + // line internal/php7/php7.y:4197 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6935,7 +6926,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4221 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6948,7 +6939,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4244 + // line internal/php7/php7.y:4235 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -6965,7 +6956,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4259 + // line internal/php7/php7.y:4250 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6977,7 +6968,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4269 + // line internal/php7/php7.y:4260 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6987,7 +6978,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4277 + // line internal/php7/php7.y:4268 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6997,7 +6988,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4276 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7009,7 +7000,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4295 + // line internal/php7/php7.y:4286 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7019,7 +7010,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4303 + // line internal/php7/php7.y:4294 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7029,7 +7020,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4305 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7037,7 +7028,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4320 + // line internal/php7/php7.y:4311 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7046,7 +7037,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4330 + // line internal/php7/php7.y:4321 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index b69d0a3..4b5c149 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -459,10 +459,10 @@ top_statement: { $$ = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - NsTkn: $1, - OpenCurlyBracketTkn: $2, - Stmts: $3, - CloseCurlyBracket: $4, + NsTkn: $1, + OpenCurlyBracketTkn: $2, + Stmts: $3, + CloseCurlyBracketTkn: $4, } } | T_USE mixed_group_use_declaration ';' @@ -1382,7 +1382,6 @@ for_statement: { $$ = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1406,7 +1405,6 @@ foreach_statement: { $$ = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1430,7 +1428,6 @@ declare_statement: { $$ = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1466,7 +1463,6 @@ switch_case_list: { $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, CaseList: $2, EndSwitchTkn: $3, @@ -1477,7 +1473,6 @@ switch_case_list: { $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), - Alt: true, ColonTkn: $1, CaseSeparatorTkn: $2, CaseList: $3, @@ -1536,7 +1531,6 @@ while_statement: { $$ = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - Alt: true, ColonTkn: $1, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($2), @@ -1601,7 +1595,6 @@ alt_if_stmt_without_else: { $$ = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $6), - Alt: true, IfTkn: $1, OpenParenthesisTkn: $2, Cond: $3, @@ -1617,7 +1610,6 @@ alt_if_stmt_without_else: { $1.(*ast.StmtIf).ElseIf = append($1.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $7), - Alt: true, ElseIfTkn: $2, OpenParenthesisTkn: $3, Cond: $4, @@ -1646,7 +1638,6 @@ alt_if_stmt: { $1.(*ast.StmtIf).Else = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $4), - Alt: true, ElseTkn: $2, ColonTkn: $3, Stmt: &ast.StmtStmtList{ diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 7ba8fc6..7497f9a 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -398,7 +398,6 @@ func (n *StmtContinue) GetPosition() *position.Position { // StmtDeclare node type StmtDeclare struct { Position *position.Position - Alt bool DeclareTkn *token.Token OpenParenthesisTkn *token.Token Consts []Vertex @@ -474,7 +473,6 @@ func (n *StmtEcho) GetPosition() *position.Position { // StmtElse node type StmtElse struct { Position *position.Position - Alt bool ElseTkn *token.Token ColonTkn *token.Token Stmt Vertex @@ -491,7 +489,6 @@ func (n *StmtElse) GetPosition() *position.Position { // StmtElseIf node type StmtElseIf struct { Position *position.Position - Alt bool ElseIfTkn *token.Token OpenParenthesisTkn *token.Token Cond Vertex @@ -543,7 +540,6 @@ func (n *StmtFinally) GetPosition() *position.Position { // StmtFor node type StmtFor struct { Position *position.Position - Alt bool ForTkn *token.Token OpenParenthesisTkn *token.Token Init []Vertex @@ -572,7 +568,6 @@ func (n *StmtFor) GetPosition() *position.Position { // StmtForeach node type StmtForeach struct { Position *position.Position - Alt bool ForeachTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex @@ -673,7 +668,6 @@ func (n *StmtHaltCompiler) GetPosition() *position.Position { // StmtIf node type StmtIf struct { Position *position.Position - Alt bool IfTkn *token.Token OpenParenthesisTkn *token.Token Cond Vertex @@ -894,7 +888,6 @@ func (n *StmtStmtList) GetPosition() *position.Position { // StmtSwitch node type StmtSwitch struct { Position *position.Position - Alt bool SwitchTkn *token.Token OpenParenthesisTkn *token.Token Cond Vertex @@ -1137,7 +1130,6 @@ func (n *StmtUseDeclaration) GetPosition() *position.Position { // StmtWhile node type StmtWhile struct { Position *position.Position - Alt bool WhileTkn *token.Token OpenParenthesisTkn *token.Token Cond Vertex From 6941f0f51bd9d7245f8905a86b549de5bd173175 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 12 Dec 2020 12:09:39 +0200 Subject: [PATCH 113/140] [refactoring] rename dumper --- cmd/php-parser/main.go | 2 +- pkg/ast/visitor/{dump.go => dumper.go} | 344 +++++++++--------- .../visitor/{dump_test.go => dumper_test.go} | 2 +- 3 files changed, 174 insertions(+), 174 deletions(-) rename pkg/ast/visitor/{dump.go => dumper.go} (82%) rename pkg/ast/visitor/{dump_test.go => dumper_test.go} (95%) diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 73af6c5..13d8734 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -182,7 +182,7 @@ func printerWorker(r <-chan result) { } if *dump == true { - visitor.NewDump(os.Stdout).WithPositions().WithTokens().Dump(res.rootNode) + visitor.NewDumper(os.Stdout).WithPositions().WithTokens().Dump(res.rootNode) } wg.Done() diff --git a/pkg/ast/visitor/dump.go b/pkg/ast/visitor/dumper.go similarity index 82% rename from pkg/ast/visitor/dump.go rename to pkg/ast/visitor/dumper.go index 8366e52..98ef5ef 100644 --- a/pkg/ast/visitor/dump.go +++ b/pkg/ast/visitor/dumper.go @@ -10,32 +10,32 @@ import ( "github.com/z7zmey/php-parser/pkg/ast" ) -type Dump struct { +type Dumper struct { writer io.Writer indent int withTokens bool withPositions bool } -func NewDump(writer io.Writer) *Dump { - return &Dump{writer: writer} +func NewDumper(writer io.Writer) *Dumper { + return &Dumper{writer: writer} } -func (v *Dump) WithTokens() *Dump { +func (v *Dumper) WithTokens() *Dumper { v.withTokens = true return v } -func (v *Dump) WithPositions() *Dump { +func (v *Dumper) WithPositions() *Dumper { v.withPositions = true return v } -func (v *Dump) Dump(n ast.Vertex) { +func (v *Dumper) Dump(n ast.Vertex) { n.Accept(v) } -func (v *Dump) print(indent int, str string) { +func (v *Dumper) print(indent int, str string) { _, err := io.WriteString(v.writer, strings.Repeat("\t", indent)) if err != nil { panic(err) @@ -47,7 +47,7 @@ func (v *Dump) print(indent int, str string) { } } -func (v *Dump) dumpVertex(key string, node ast.Vertex) { +func (v *Dumper) dumpVertex(key string, node ast.Vertex) { if node == nil { return } @@ -56,7 +56,7 @@ func (v *Dump) dumpVertex(key string, node ast.Vertex) { node.Accept(v) } -func (v *Dump) dumpVertexList(key string, list []ast.Vertex) { +func (v *Dumper) dumpVertexList(key string, list []ast.Vertex) { if list == nil { return } @@ -78,7 +78,7 @@ func (v *Dump) dumpVertexList(key string, list []ast.Vertex) { v.print(v.indent, "},\n") } -func (v *Dump) dumpToken(key string, tok *token.Token) { +func (v *Dumper) dumpToken(key string, tok *token.Token) { if !v.withTokens { return } @@ -108,7 +108,7 @@ func (v *Dump) dumpToken(key string, tok *token.Token) { v.print(v.indent, "},\n") } -func (v *Dump) dumpTokenList(key string, list []*token.Token) { +func (v *Dumper) dumpTokenList(key string, list []*token.Token) { if !v.withTokens { return } @@ -133,7 +133,7 @@ func (v *Dump) dumpTokenList(key string, list []*token.Token) { v.print(v.indent, "},\n") } -func (v *Dump) dumpPosition(pos *position.Position) { +func (v *Dumper) dumpPosition(pos *position.Position) { if !v.withPositions { return } @@ -154,7 +154,7 @@ func (v *Dump) dumpPosition(pos *position.Position) { v.print(v.indent, "},\n") } -func (v *Dump) dumpValue(key string, val []byte) { +func (v *Dumper) dumpValue(key string, val []byte) { if val == nil { return } @@ -163,7 +163,7 @@ func (v *Dump) dumpValue(key string, val []byte) { } -func (v *Dump) Root(n *ast.Root) { +func (v *Dumper) Root(n *ast.Root) { v.print(0, "&ast.Root{\n") v.indent++ @@ -175,7 +175,7 @@ func (v *Dump) Root(n *ast.Root) { v.print(v.indent, "},\n") } -func (v *Dump) Nullable(n *ast.Nullable) { +func (v *Dumper) Nullable(n *ast.Nullable) { v.print(0, "&ast.Nullable{\n") v.indent++ @@ -187,7 +187,7 @@ func (v *Dump) Nullable(n *ast.Nullable) { v.print(v.indent, "},\n") } -func (v *Dump) Parameter(n *ast.Parameter) { +func (v *Dumper) Parameter(n *ast.Parameter) { v.print(0, "&ast.Parameter{\n") v.indent++ @@ -203,7 +203,7 @@ func (v *Dump) Parameter(n *ast.Parameter) { v.print(v.indent, "},\n") } -func (v *Dump) Identifier(n *ast.Identifier) { +func (v *Dumper) Identifier(n *ast.Identifier) { v.print(0, "&ast.Identifier{\n") v.indent++ @@ -215,7 +215,7 @@ func (v *Dump) Identifier(n *ast.Identifier) { v.print(v.indent, "},\n") } -func (v *Dump) Argument(n *ast.Argument) { +func (v *Dumper) Argument(n *ast.Argument) { v.print(0, "&ast.Argument{\n") v.indent++ @@ -228,7 +228,7 @@ func (v *Dump) Argument(n *ast.Argument) { v.print(v.indent, "},\n") } -func (v *Dump) StmtBreak(n *ast.StmtBreak) { +func (v *Dumper) StmtBreak(n *ast.StmtBreak) { v.print(0, "&ast.StmtBreak{\n") v.indent++ @@ -241,7 +241,7 @@ func (v *Dump) StmtBreak(n *ast.StmtBreak) { v.print(v.indent, "},\n") } -func (v *Dump) StmtCase(n *ast.StmtCase) { +func (v *Dumper) StmtCase(n *ast.StmtCase) { v.print(0, "&ast.StmtCase{\n") v.indent++ @@ -255,7 +255,7 @@ func (v *Dump) StmtCase(n *ast.StmtCase) { v.print(v.indent, "},\n") } -func (v *Dump) StmtCatch(n *ast.StmtCatch) { +func (v *Dumper) StmtCatch(n *ast.StmtCatch) { v.print(0, "&ast.StmtCatch{\n") v.indent++ @@ -274,7 +274,7 @@ func (v *Dump) StmtCatch(n *ast.StmtCatch) { v.print(v.indent, "},\n") } -func (v *Dump) StmtClass(n *ast.StmtClass) { +func (v *Dumper) StmtClass(n *ast.StmtClass) { v.print(0, "&ast.StmtClass{\n") v.indent++ @@ -296,7 +296,7 @@ func (v *Dump) StmtClass(n *ast.StmtClass) { v.print(v.indent, "},\n") } -func (v *Dump) StmtClassConstList(n *ast.StmtClassConstList) { +func (v *Dumper) StmtClassConstList(n *ast.StmtClassConstList) { v.print(0, "&ast.StmtClassConstList{\n") v.indent++ @@ -311,7 +311,7 @@ func (v *Dump) StmtClassConstList(n *ast.StmtClassConstList) { v.print(v.indent, "},\n") } -func (v *Dump) StmtClassExtends(n *ast.StmtClassExtends) { +func (v *Dumper) StmtClassExtends(n *ast.StmtClassExtends) { v.print(0, "&ast.StmtClassExtends{\n") v.indent++ @@ -323,7 +323,7 @@ func (v *Dump) StmtClassExtends(n *ast.StmtClassExtends) { v.print(v.indent, "},\n") } -func (v *Dump) StmtClassImplements(n *ast.StmtClassImplements) { +func (v *Dumper) StmtClassImplements(n *ast.StmtClassImplements) { v.print(0, "&ast.StmtClassImplements{\n") v.indent++ @@ -336,7 +336,7 @@ func (v *Dump) StmtClassImplements(n *ast.StmtClassImplements) { v.print(v.indent, "},\n") } -func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { +func (v *Dumper) StmtClassMethod(n *ast.StmtClassMethod) { v.print(0, "&ast.StmtClassMethod{\n") v.indent++ @@ -357,7 +357,7 @@ func (v *Dump) StmtClassMethod(n *ast.StmtClassMethod) { v.print(v.indent, "},\n") } -func (v *Dump) StmtConstList(n *ast.StmtConstList) { +func (v *Dumper) StmtConstList(n *ast.StmtConstList) { v.print(0, "&ast.StmtConstList{\n") v.indent++ @@ -371,7 +371,7 @@ func (v *Dump) StmtConstList(n *ast.StmtConstList) { v.print(v.indent, "},\n") } -func (v *Dump) StmtConstant(n *ast.StmtConstant) { +func (v *Dumper) StmtConstant(n *ast.StmtConstant) { v.print(0, "&ast.StmtConstant{\n") v.indent++ @@ -384,7 +384,7 @@ func (v *Dump) StmtConstant(n *ast.StmtConstant) { v.print(v.indent, "},\n") } -func (v *Dump) StmtContinue(n *ast.StmtContinue) { +func (v *Dumper) StmtContinue(n *ast.StmtContinue) { v.print(0, "&ast.StmtContinue{\n") v.indent++ @@ -397,7 +397,7 @@ func (v *Dump) StmtContinue(n *ast.StmtContinue) { v.print(v.indent, "},\n") } -func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { +func (v *Dumper) StmtDeclare(n *ast.StmtDeclare) { v.print(0, "&ast.StmtDeclare{\n") v.indent++ @@ -416,7 +416,7 @@ func (v *Dump) StmtDeclare(n *ast.StmtDeclare) { v.print(v.indent, "},\n") } -func (v *Dump) StmtDefault(n *ast.StmtDefault) { +func (v *Dumper) StmtDefault(n *ast.StmtDefault) { v.print(0, "&ast.StmtDefault{\n") v.indent++ @@ -429,7 +429,7 @@ func (v *Dump) StmtDefault(n *ast.StmtDefault) { v.print(v.indent, "},\n") } -func (v *Dump) StmtDo(n *ast.StmtDo) { +func (v *Dumper) StmtDo(n *ast.StmtDo) { v.print(0, "&ast.StmtDo{\n") v.indent++ @@ -447,7 +447,7 @@ func (v *Dump) StmtDo(n *ast.StmtDo) { } -func (v *Dump) StmtEcho(n *ast.StmtEcho) { +func (v *Dumper) StmtEcho(n *ast.StmtEcho) { v.print(0, "&ast.StmtEcho{\n") v.indent++ @@ -461,7 +461,7 @@ func (v *Dump) StmtEcho(n *ast.StmtEcho) { v.print(v.indent, "},\n") } -func (v *Dump) StmtElse(n *ast.StmtElse) { +func (v *Dumper) StmtElse(n *ast.StmtElse) { v.print(0, "&ast.StmtElse{\n") v.indent++ @@ -474,7 +474,7 @@ func (v *Dump) StmtElse(n *ast.StmtElse) { v.print(v.indent, "},\n") } -func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { +func (v *Dumper) StmtElseIf(n *ast.StmtElseIf) { v.print(0, "&ast.StmtElseIf{\n") v.indent++ @@ -490,7 +490,7 @@ func (v *Dump) StmtElseIf(n *ast.StmtElseIf) { v.print(v.indent, "},\n") } -func (v *Dump) StmtExpression(n *ast.StmtExpression) { +func (v *Dumper) StmtExpression(n *ast.StmtExpression) { v.print(0, "&ast.StmtExpression{\n") v.indent++ @@ -502,7 +502,7 @@ func (v *Dump) StmtExpression(n *ast.StmtExpression) { v.print(v.indent, "},\n") } -func (v *Dump) StmtFinally(n *ast.StmtFinally) { +func (v *Dumper) StmtFinally(n *ast.StmtFinally) { v.print(0, "&ast.StmtFinally{\n") v.indent++ @@ -516,7 +516,7 @@ func (v *Dump) StmtFinally(n *ast.StmtFinally) { v.print(v.indent, "},\n") } -func (v *Dump) StmtFor(n *ast.StmtFor) { +func (v *Dumper) StmtFor(n *ast.StmtFor) { v.print(0, "&ast.StmtFor{\n") v.indent++ @@ -541,7 +541,7 @@ func (v *Dump) StmtFor(n *ast.StmtFor) { v.print(v.indent, "},\n") } -func (v *Dump) StmtForeach(n *ast.StmtForeach) { +func (v *Dumper) StmtForeach(n *ast.StmtForeach) { v.print(0, "&ast.StmtForeach{\n") v.indent++ @@ -563,7 +563,7 @@ func (v *Dump) StmtForeach(n *ast.StmtForeach) { v.print(v.indent, "},\n") } -func (v *Dump) StmtFunction(n *ast.StmtFunction) { +func (v *Dumper) StmtFunction(n *ast.StmtFunction) { v.print(0, "&ast.StmtFunction{\n") v.indent++ @@ -585,7 +585,7 @@ func (v *Dump) StmtFunction(n *ast.StmtFunction) { v.print(v.indent, "},\n") } -func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { +func (v *Dumper) StmtGlobal(n *ast.StmtGlobal) { v.print(0, "&ast.StmtGlobal{\n") v.indent++ @@ -599,7 +599,7 @@ func (v *Dump) StmtGlobal(n *ast.StmtGlobal) { v.print(v.indent, "},\n") } -func (v *Dump) StmtGoto(n *ast.StmtGoto) { +func (v *Dumper) StmtGoto(n *ast.StmtGoto) { v.print(0, "&ast.StmtGoto{\n") v.indent++ @@ -612,7 +612,7 @@ func (v *Dump) StmtGoto(n *ast.StmtGoto) { v.print(v.indent, "},\n") } -func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { +func (v *Dumper) StmtHaltCompiler(n *ast.StmtHaltCompiler) { v.print(0, "&ast.StmtHaltCompiler{\n") v.indent++ @@ -626,7 +626,7 @@ func (v *Dump) StmtHaltCompiler(n *ast.StmtHaltCompiler) { v.print(v.indent, "},\n") } -func (v *Dump) StmtIf(n *ast.StmtIf) { +func (v *Dumper) StmtIf(n *ast.StmtIf) { v.print(0, "&ast.StmtIf{\n") v.indent++ @@ -646,7 +646,7 @@ func (v *Dump) StmtIf(n *ast.StmtIf) { v.print(v.indent, "},\n") } -func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { +func (v *Dumper) StmtInlineHtml(n *ast.StmtInlineHtml) { v.print(0, "&ast.StmtInlineHtml{\n") v.indent++ @@ -658,7 +658,7 @@ func (v *Dump) StmtInlineHtml(n *ast.StmtInlineHtml) { v.print(v.indent, "},\n") } -func (v *Dump) StmtInterface(n *ast.StmtInterface) { +func (v *Dumper) StmtInterface(n *ast.StmtInterface) { v.print(0, "&ast.StmtInterface{\n") v.indent++ @@ -674,7 +674,7 @@ func (v *Dump) StmtInterface(n *ast.StmtInterface) { v.print(v.indent, "},\n") } -func (v *Dump) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { +func (v *Dumper) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { v.print(0, "&ast.StmtInterfaceExtends{\n") v.indent++ @@ -687,7 +687,7 @@ func (v *Dump) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { v.print(v.indent, "},\n") } -func (v *Dump) StmtLabel(n *ast.StmtLabel) { +func (v *Dumper) StmtLabel(n *ast.StmtLabel) { v.print(0, "&ast.StmtLabel{\n") v.indent++ @@ -699,7 +699,7 @@ func (v *Dump) StmtLabel(n *ast.StmtLabel) { v.print(v.indent, "},\n") } -func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { +func (v *Dumper) StmtNamespace(n *ast.StmtNamespace) { v.print(0, "&ast.StmtNamespace{\n") v.indent++ @@ -715,7 +715,7 @@ func (v *Dump) StmtNamespace(n *ast.StmtNamespace) { v.print(v.indent, "},\n") } -func (v *Dump) StmtNop(n *ast.StmtNop) { +func (v *Dumper) StmtNop(n *ast.StmtNop) { v.print(0, "&ast.StmtNop{\n") v.indent++ @@ -726,7 +726,7 @@ func (v *Dump) StmtNop(n *ast.StmtNop) { v.print(v.indent, "},\n") } -func (v *Dump) StmtProperty(n *ast.StmtProperty) { +func (v *Dumper) StmtProperty(n *ast.StmtProperty) { v.print(0, "&ast.StmtProperty{\n") v.indent++ @@ -739,7 +739,7 @@ func (v *Dump) StmtProperty(n *ast.StmtProperty) { v.print(v.indent, "},\n") } -func (v *Dump) StmtPropertyList(n *ast.StmtPropertyList) { +func (v *Dumper) StmtPropertyList(n *ast.StmtPropertyList) { v.print(0, "&ast.StmtPropertyList{\n") v.indent++ @@ -754,7 +754,7 @@ func (v *Dump) StmtPropertyList(n *ast.StmtPropertyList) { v.print(v.indent, "},\n") } -func (v *Dump) StmtReturn(n *ast.StmtReturn) { +func (v *Dumper) StmtReturn(n *ast.StmtReturn) { v.print(0, "&ast.StmtReturn{\n") v.indent++ @@ -767,7 +767,7 @@ func (v *Dump) StmtReturn(n *ast.StmtReturn) { v.print(v.indent, "},\n") } -func (v *Dump) StmtStatic(n *ast.StmtStatic) { +func (v *Dumper) StmtStatic(n *ast.StmtStatic) { v.print(0, "&ast.StmtStatic{\n") v.indent++ @@ -781,7 +781,7 @@ func (v *Dump) StmtStatic(n *ast.StmtStatic) { v.print(v.indent, "},\n") } -func (v *Dump) StmtStaticVar(n *ast.StmtStaticVar) { +func (v *Dumper) StmtStaticVar(n *ast.StmtStaticVar) { v.print(0, "&ast.StmtStaticVar{\n") v.indent++ @@ -794,7 +794,7 @@ func (v *Dump) StmtStaticVar(n *ast.StmtStaticVar) { v.print(v.indent, "},\n") } -func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { +func (v *Dumper) StmtStmtList(n *ast.StmtStmtList) { v.print(0, "&ast.StmtStmtList{\n") v.indent++ @@ -807,7 +807,7 @@ func (v *Dump) StmtStmtList(n *ast.StmtStmtList) { v.print(v.indent, "},\n") } -func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { +func (v *Dumper) StmtSwitch(n *ast.StmtSwitch) { v.print(0, "&ast.StmtSwitch{\n") v.indent++ @@ -828,7 +828,7 @@ func (v *Dump) StmtSwitch(n *ast.StmtSwitch) { v.print(v.indent, "},\n") } -func (v *Dump) StmtThrow(n *ast.StmtThrow) { +func (v *Dumper) StmtThrow(n *ast.StmtThrow) { v.print(0, "&ast.StmtThrow{\n") v.indent++ @@ -841,7 +841,7 @@ func (v *Dump) StmtThrow(n *ast.StmtThrow) { v.print(v.indent, "},\n") } -func (v *Dump) StmtTrait(n *ast.StmtTrait) { +func (v *Dumper) StmtTrait(n *ast.StmtTrait) { v.print(0, "&ast.StmtTrait{\n") v.indent++ @@ -858,7 +858,7 @@ func (v *Dump) StmtTrait(n *ast.StmtTrait) { v.print(v.indent, "},\n") } -func (v *Dump) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { +func (v *Dumper) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { v.print(0, "&ast.StmtTraitAdaptationList{\n") v.indent++ @@ -871,7 +871,7 @@ func (v *Dump) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { v.print(v.indent, "},\n") } -func (v *Dump) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { +func (v *Dumper) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { v.print(0, "&ast.StmtTraitMethodRef{\n") v.indent++ @@ -884,7 +884,7 @@ func (v *Dump) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { v.print(v.indent, "},\n") } -func (v *Dump) StmtTraitUse(n *ast.StmtTraitUse) { +func (v *Dumper) StmtTraitUse(n *ast.StmtTraitUse) { v.print(0, "&ast.StmtTraitUse{\n") v.indent++ @@ -898,7 +898,7 @@ func (v *Dump) StmtTraitUse(n *ast.StmtTraitUse) { v.print(v.indent, "},\n") } -func (v *Dump) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { +func (v *Dumper) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { v.print(0, "&ast.StmtTraitUseAlias{\n") v.indent++ @@ -913,7 +913,7 @@ func (v *Dump) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { v.print(v.indent, "},\n") } -func (v *Dump) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { +func (v *Dumper) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { v.print(0, "&ast.StmtTraitUsePrecedence{\n") v.indent++ @@ -928,7 +928,7 @@ func (v *Dump) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { v.print(v.indent, "},\n") } -func (v *Dump) StmtTry(n *ast.StmtTry) { +func (v *Dumper) StmtTry(n *ast.StmtTry) { v.print(0, "&ast.StmtTry{\n") v.indent++ @@ -944,7 +944,7 @@ func (v *Dump) StmtTry(n *ast.StmtTry) { v.print(v.indent, "},\n") } -func (v *Dump) StmtUnset(n *ast.StmtUnset) { +func (v *Dumper) StmtUnset(n *ast.StmtUnset) { v.print(0, "&ast.StmtUnset{\n") v.indent++ @@ -960,7 +960,7 @@ func (v *Dump) StmtUnset(n *ast.StmtUnset) { v.print(v.indent, "},\n") } -func (v *Dump) StmtUse(n *ast.StmtUse) { +func (v *Dumper) StmtUse(n *ast.StmtUse) { v.print(0, "&ast.StmtUse{\n") v.indent++ @@ -975,7 +975,7 @@ func (v *Dump) StmtUse(n *ast.StmtUse) { v.print(v.indent, "},\n") } -func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { +func (v *Dumper) StmtGroupUse(n *ast.StmtGroupUse) { v.print(0, "&ast.StmtGroupUse{\n") v.indent++ @@ -995,7 +995,7 @@ func (v *Dump) StmtGroupUse(n *ast.StmtGroupUse) { v.print(v.indent, "},\n") } -func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { +func (v *Dumper) StmtUseDeclaration(n *ast.StmtUseDeclaration) { v.print(0, "&ast.StmtUseDeclaration{\n") v.indent++ @@ -1010,7 +1010,7 @@ func (v *Dump) StmtUseDeclaration(n *ast.StmtUseDeclaration) { v.print(v.indent, "},\n") } -func (v *Dump) StmtWhile(n *ast.StmtWhile) { +func (v *Dumper) StmtWhile(n *ast.StmtWhile) { v.print(0, "&ast.StmtWhile{\n") v.indent++ @@ -1028,7 +1028,7 @@ func (v *Dump) StmtWhile(n *ast.StmtWhile) { v.print(v.indent, "},\n") } -func (v *Dump) ExprArray(n *ast.ExprArray) { +func (v *Dumper) ExprArray(n *ast.ExprArray) { v.print(0, "&ast.ExprArray{\n") v.indent++ @@ -1043,7 +1043,7 @@ func (v *Dump) ExprArray(n *ast.ExprArray) { v.print(v.indent, "},\n") } -func (v *Dump) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { +func (v *Dumper) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { v.print(0, "&ast.ExprArrayDimFetch{\n") v.indent++ @@ -1057,7 +1057,7 @@ func (v *Dump) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { v.print(v.indent, "},\n") } -func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { +func (v *Dumper) ExprArrayItem(n *ast.ExprArrayItem) { v.print(0, "&ast.ExprArrayItem{\n") v.indent++ @@ -1071,7 +1071,7 @@ func (v *Dump) ExprArrayItem(n *ast.ExprArrayItem) { v.print(v.indent, "},\n") } -func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { +func (v *Dumper) ExprArrowFunction(n *ast.ExprArrowFunction) { v.print(0, "&ast.ExprArrowFunction{\n") v.indent++ @@ -1092,7 +1092,7 @@ func (v *Dump) ExprArrowFunction(n *ast.ExprArrowFunction) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { +func (v *Dumper) ExprBitwiseNot(n *ast.ExprBitwiseNot) { v.print(0, "&ast.ExprBitwiseNot{\n") v.indent++ @@ -1104,7 +1104,7 @@ func (v *Dump) ExprBitwiseNot(n *ast.ExprBitwiseNot) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBooleanNot(n *ast.ExprBooleanNot) { +func (v *Dumper) ExprBooleanNot(n *ast.ExprBooleanNot) { v.print(0, "&ast.ExprBooleanNot{\n") v.indent++ @@ -1116,7 +1116,7 @@ func (v *Dump) ExprBooleanNot(n *ast.ExprBooleanNot) { v.print(v.indent, "},\n") } -func (v *Dump) ExprClassConstFetch(n *ast.ExprClassConstFetch) { +func (v *Dumper) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.print(0, "&ast.ExprClassConstFetch{\n") v.indent++ @@ -1129,7 +1129,7 @@ func (v *Dump) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.print(v.indent, "},\n") } -func (v *Dump) ExprClone(n *ast.ExprClone) { +func (v *Dumper) ExprClone(n *ast.ExprClone) { v.print(0, "&ast.ExprClone{\n") v.indent++ @@ -1141,7 +1141,7 @@ func (v *Dump) ExprClone(n *ast.ExprClone) { v.print(v.indent, "},\n") } -func (v *Dump) ExprClosure(n *ast.ExprClosure) { +func (v *Dumper) ExprClosure(n *ast.ExprClosure) { v.print(0, "&ast.ExprClosure{\n") v.indent++ @@ -1164,7 +1164,7 @@ func (v *Dump) ExprClosure(n *ast.ExprClosure) { v.print(v.indent, "},\n") } -func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { +func (v *Dumper) ExprClosureUse(n *ast.ExprClosureUse) { v.print(0, "&ast.ExprClosureUse{\n") v.indent++ @@ -1179,7 +1179,7 @@ func (v *Dump) ExprClosureUse(n *ast.ExprClosureUse) { v.print(v.indent, "},\n") } -func (v *Dump) ExprConstFetch(n *ast.ExprConstFetch) { +func (v *Dumper) ExprConstFetch(n *ast.ExprConstFetch) { v.print(0, "&ast.ExprConstFetch{\n") v.indent++ @@ -1190,7 +1190,7 @@ func (v *Dump) ExprConstFetch(n *ast.ExprConstFetch) { v.print(v.indent, "},\n") } -func (v *Dump) ExprEmpty(n *ast.ExprEmpty) { +func (v *Dumper) ExprEmpty(n *ast.ExprEmpty) { v.print(0, "&ast.ExprEmpty{\n") v.indent++ @@ -1204,7 +1204,7 @@ func (v *Dump) ExprEmpty(n *ast.ExprEmpty) { v.print(v.indent, "},\n") } -func (v *Dump) ExprErrorSuppress(n *ast.ExprErrorSuppress) { +func (v *Dumper) ExprErrorSuppress(n *ast.ExprErrorSuppress) { v.print(0, "&ast.ExprErrorSuppress{\n") v.indent++ @@ -1216,7 +1216,7 @@ func (v *Dump) ExprErrorSuppress(n *ast.ExprErrorSuppress) { v.print(v.indent, "},\n") } -func (v *Dump) ExprEval(n *ast.ExprEval) { +func (v *Dumper) ExprEval(n *ast.ExprEval) { v.print(0, "&ast.ExprEval{\n") v.indent++ @@ -1230,7 +1230,7 @@ func (v *Dump) ExprEval(n *ast.ExprEval) { v.print(v.indent, "},\n") } -func (v *Dump) ExprExit(n *ast.ExprExit) { +func (v *Dumper) ExprExit(n *ast.ExprExit) { v.print(0, "&ast.ExprExit{\n") v.indent++ @@ -1244,7 +1244,7 @@ func (v *Dump) ExprExit(n *ast.ExprExit) { v.print(v.indent, "},\n") } -func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { +func (v *Dumper) ExprFunctionCall(n *ast.ExprFunctionCall) { v.print(0, "&ast.ExprFunctionCall{\n") v.indent++ @@ -1259,7 +1259,7 @@ func (v *Dump) ExprFunctionCall(n *ast.ExprFunctionCall) { v.print(v.indent, "},\n") } -func (v *Dump) ExprInclude(n *ast.ExprInclude) { +func (v *Dumper) ExprInclude(n *ast.ExprInclude) { v.print(0, "&ast.ExprInclude{\n") v.indent++ @@ -1271,7 +1271,7 @@ func (v *Dump) ExprInclude(n *ast.ExprInclude) { v.print(v.indent, "},\n") } -func (v *Dump) ExprIncludeOnce(n *ast.ExprIncludeOnce) { +func (v *Dumper) ExprIncludeOnce(n *ast.ExprIncludeOnce) { v.print(0, "&ast.ExprIncludeOnce{\n") v.indent++ @@ -1283,7 +1283,7 @@ func (v *Dump) ExprIncludeOnce(n *ast.ExprIncludeOnce) { v.print(v.indent, "},\n") } -func (v *Dump) ExprInstanceOf(n *ast.ExprInstanceOf) { +func (v *Dumper) ExprInstanceOf(n *ast.ExprInstanceOf) { v.print(0, "&ast.ExprInstanceOf{\n") v.indent++ @@ -1296,7 +1296,7 @@ func (v *Dump) ExprInstanceOf(n *ast.ExprInstanceOf) { v.print(v.indent, "},\n") } -func (v *Dump) ExprIsset(n *ast.ExprIsset) { +func (v *Dumper) ExprIsset(n *ast.ExprIsset) { v.print(0, "&ast.ExprIsset{\n") v.indent++ @@ -1311,7 +1311,7 @@ func (v *Dump) ExprIsset(n *ast.ExprIsset) { v.print(v.indent, "},\n") } -func (v *Dump) ExprList(n *ast.ExprList) { +func (v *Dumper) ExprList(n *ast.ExprList) { v.print(0, "&ast.ExprList{\n") v.indent++ @@ -1326,7 +1326,7 @@ func (v *Dump) ExprList(n *ast.ExprList) { v.print(v.indent, "},\n") } -func (v *Dump) ExprMethodCall(n *ast.ExprMethodCall) { +func (v *Dumper) ExprMethodCall(n *ast.ExprMethodCall) { v.print(0, "&ast.ExprMethodCall{\n") v.indent++ @@ -1343,7 +1343,7 @@ func (v *Dump) ExprMethodCall(n *ast.ExprMethodCall) { v.print(v.indent, "},\n") } -func (v *Dump) ExprNew(n *ast.ExprNew) { +func (v *Dumper) ExprNew(n *ast.ExprNew) { v.print(0, "&ast.ExprNew{\n") v.indent++ @@ -1359,7 +1359,7 @@ func (v *Dump) ExprNew(n *ast.ExprNew) { v.print(v.indent, "},\n") } -func (v *Dump) ExprPostDec(n *ast.ExprPostDec) { +func (v *Dumper) ExprPostDec(n *ast.ExprPostDec) { v.print(0, "&ast.ExprPostDec{\n") v.indent++ @@ -1371,7 +1371,7 @@ func (v *Dump) ExprPostDec(n *ast.ExprPostDec) { v.print(v.indent, "},\n") } -func (v *Dump) ExprPostInc(n *ast.ExprPostInc) { +func (v *Dumper) ExprPostInc(n *ast.ExprPostInc) { v.print(0, "&ast.ExprPostInc{\n") v.indent++ @@ -1383,7 +1383,7 @@ func (v *Dump) ExprPostInc(n *ast.ExprPostInc) { v.print(v.indent, "},\n") } -func (v *Dump) ExprPreDec(n *ast.ExprPreDec) { +func (v *Dumper) ExprPreDec(n *ast.ExprPreDec) { v.print(0, "&ast.ExprPreDec{\n") v.indent++ @@ -1395,7 +1395,7 @@ func (v *Dump) ExprPreDec(n *ast.ExprPreDec) { v.print(v.indent, "},\n") } -func (v *Dump) ExprPreInc(n *ast.ExprPreInc) { +func (v *Dumper) ExprPreInc(n *ast.ExprPreInc) { v.print(0, "&ast.ExprPreInc{\n") v.indent++ @@ -1407,7 +1407,7 @@ func (v *Dump) ExprPreInc(n *ast.ExprPreInc) { v.print(v.indent, "},\n") } -func (v *Dump) ExprPrint(n *ast.ExprPrint) { +func (v *Dumper) ExprPrint(n *ast.ExprPrint) { v.print(0, "&ast.ExprPrint{\n") v.indent++ @@ -1419,7 +1419,7 @@ func (v *Dump) ExprPrint(n *ast.ExprPrint) { v.print(v.indent, "},\n") } -func (v *Dump) ExprPropertyFetch(n *ast.ExprPropertyFetch) { +func (v *Dumper) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.print(0, "&ast.ExprPropertyFetch{\n") v.indent++ @@ -1432,7 +1432,7 @@ func (v *Dump) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.print(v.indent, "},\n") } -func (v *Dump) ExprReference(n *ast.ExprReference) { +func (v *Dumper) ExprReference(n *ast.ExprReference) { v.print(0, "&ast.ExprReference{\n") v.indent++ @@ -1444,7 +1444,7 @@ func (v *Dump) ExprReference(n *ast.ExprReference) { v.print(v.indent, "},\n") } -func (v *Dump) ExprRequire(n *ast.ExprRequire) { +func (v *Dumper) ExprRequire(n *ast.ExprRequire) { v.print(0, "&ast.ExprRequire{\n") v.indent++ @@ -1456,7 +1456,7 @@ func (v *Dump) ExprRequire(n *ast.ExprRequire) { v.print(v.indent, "},\n") } -func (v *Dump) ExprRequireOnce(n *ast.ExprRequireOnce) { +func (v *Dumper) ExprRequireOnce(n *ast.ExprRequireOnce) { v.print(0, "&ast.ExprRequireOnce{\n") v.indent++ @@ -1468,7 +1468,7 @@ func (v *Dump) ExprRequireOnce(n *ast.ExprRequireOnce) { v.print(v.indent, "},\n") } -func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { +func (v *Dumper) ExprShellExec(n *ast.ExprShellExec) { v.print(0, "&ast.ExprShellExec{\n") v.indent++ @@ -1481,7 +1481,7 @@ func (v *Dump) ExprShellExec(n *ast.ExprShellExec) { v.print(v.indent, "},\n") } -func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { +func (v *Dumper) ExprStaticCall(n *ast.ExprStaticCall) { v.print(0, "&ast.ExprStaticCall{\n") v.indent++ @@ -1498,7 +1498,7 @@ func (v *Dump) ExprStaticCall(n *ast.ExprStaticCall) { v.print(v.indent, "},\n") } -func (v *Dump) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { +func (v *Dumper) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { v.print(0, "&ast.ExprStaticPropertyFetch{\n") v.indent++ @@ -1511,7 +1511,7 @@ func (v *Dump) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { v.print(v.indent, "},\n") } -func (v *Dump) ExprTernary(n *ast.ExprTernary) { +func (v *Dumper) ExprTernary(n *ast.ExprTernary) { v.print(0, "&ast.ExprTernary{\n") v.indent++ @@ -1526,7 +1526,7 @@ func (v *Dump) ExprTernary(n *ast.ExprTernary) { v.print(v.indent, "},\n") } -func (v *Dump) ExprUnaryMinus(n *ast.ExprUnaryMinus) { +func (v *Dumper) ExprUnaryMinus(n *ast.ExprUnaryMinus) { v.print(0, "&ast.ExprUnaryMinus{\n") v.indent++ @@ -1538,7 +1538,7 @@ func (v *Dump) ExprUnaryMinus(n *ast.ExprUnaryMinus) { v.print(v.indent, "},\n") } -func (v *Dump) ExprUnaryPlus(n *ast.ExprUnaryPlus) { +func (v *Dumper) ExprUnaryPlus(n *ast.ExprUnaryPlus) { v.print(0, "&ast.ExprUnaryPlus{\n") v.indent++ @@ -1550,7 +1550,7 @@ func (v *Dump) ExprUnaryPlus(n *ast.ExprUnaryPlus) { v.print(v.indent, "},\n") } -func (v *Dump) ExprVariable(n *ast.ExprVariable) { +func (v *Dumper) ExprVariable(n *ast.ExprVariable) { v.print(0, "&ast.ExprVariable{\n") v.indent++ @@ -1562,7 +1562,7 @@ func (v *Dump) ExprVariable(n *ast.ExprVariable) { v.print(v.indent, "},\n") } -func (v *Dump) ExprYield(n *ast.ExprYield) { +func (v *Dumper) ExprYield(n *ast.ExprYield) { v.print(0, "&ast.ExprYield{\n") v.indent++ @@ -1576,7 +1576,7 @@ func (v *Dump) ExprYield(n *ast.ExprYield) { v.print(v.indent, "},\n") } -func (v *Dump) ExprYieldFrom(n *ast.ExprYieldFrom) { +func (v *Dumper) ExprYieldFrom(n *ast.ExprYieldFrom) { v.print(0, "&ast.ExprYieldFrom{\n") v.indent++ @@ -1588,7 +1588,7 @@ func (v *Dump) ExprYieldFrom(n *ast.ExprYieldFrom) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssign(n *ast.ExprAssign) { +func (v *Dumper) ExprAssign(n *ast.ExprAssign) { v.print(0, "&ast.ExprAssign{\n") v.indent++ @@ -1601,7 +1601,7 @@ func (v *Dump) ExprAssign(n *ast.ExprAssign) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignReference(n *ast.ExprAssignReference) { +func (v *Dumper) ExprAssignReference(n *ast.ExprAssignReference) { v.print(0, "&ast.ExprAssignReference{\n") v.indent++ @@ -1615,7 +1615,7 @@ func (v *Dump) ExprAssignReference(n *ast.ExprAssignReference) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { +func (v *Dumper) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { v.print(0, "&ast.ExprAssignBitwiseAnd{\n") v.indent++ @@ -1628,7 +1628,7 @@ func (v *Dump) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { +func (v *Dumper) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { v.print(0, "&ast.ExprAssignBitwiseOr{\n") v.indent++ @@ -1641,7 +1641,7 @@ func (v *Dump) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { +func (v *Dumper) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { v.print(0, "&ast.ExprAssignBitwiseXor{\n") v.indent++ @@ -1654,7 +1654,7 @@ func (v *Dump) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { +func (v *Dumper) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { v.print(0, "&ast.ExprAssignCoalesce{\n") v.indent++ @@ -1667,7 +1667,7 @@ func (v *Dump) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignConcat(n *ast.ExprAssignConcat) { +func (v *Dumper) ExprAssignConcat(n *ast.ExprAssignConcat) { v.print(0, "&ast.ExprAssignConcat{\n") v.indent++ @@ -1680,7 +1680,7 @@ func (v *Dump) ExprAssignConcat(n *ast.ExprAssignConcat) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignDiv(n *ast.ExprAssignDiv) { +func (v *Dumper) ExprAssignDiv(n *ast.ExprAssignDiv) { v.print(0, "&ast.ExprAssignDiv{\n") v.indent++ @@ -1693,7 +1693,7 @@ func (v *Dump) ExprAssignDiv(n *ast.ExprAssignDiv) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignMinus(n *ast.ExprAssignMinus) { +func (v *Dumper) ExprAssignMinus(n *ast.ExprAssignMinus) { v.print(0, "&ast.ExprAssignMinus{\n") v.indent++ @@ -1706,7 +1706,7 @@ func (v *Dump) ExprAssignMinus(n *ast.ExprAssignMinus) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignMod(n *ast.ExprAssignMod) { +func (v *Dumper) ExprAssignMod(n *ast.ExprAssignMod) { v.print(0, "&ast.ExprAssignMod{\n") v.indent++ @@ -1719,7 +1719,7 @@ func (v *Dump) ExprAssignMod(n *ast.ExprAssignMod) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignMul(n *ast.ExprAssignMul) { +func (v *Dumper) ExprAssignMul(n *ast.ExprAssignMul) { v.print(0, "&ast.ExprAssignMul{\n") v.indent++ @@ -1732,7 +1732,7 @@ func (v *Dump) ExprAssignMul(n *ast.ExprAssignMul) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignPlus(n *ast.ExprAssignPlus) { +func (v *Dumper) ExprAssignPlus(n *ast.ExprAssignPlus) { v.print(0, "&ast.ExprAssignPlus{\n") v.indent++ @@ -1745,7 +1745,7 @@ func (v *Dump) ExprAssignPlus(n *ast.ExprAssignPlus) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignPow(n *ast.ExprAssignPow) { +func (v *Dumper) ExprAssignPow(n *ast.ExprAssignPow) { v.print(0, "&ast.ExprAssignPow{\n") v.indent++ @@ -1758,7 +1758,7 @@ func (v *Dump) ExprAssignPow(n *ast.ExprAssignPow) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { +func (v *Dumper) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { v.print(0, "&ast.ExprAssignShiftLeft{\n") v.indent++ @@ -1771,7 +1771,7 @@ func (v *Dump) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { v.print(v.indent, "},\n") } -func (v *Dump) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { +func (v *Dumper) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { v.print(0, "&ast.ExprAssignShiftRight{\n") v.indent++ @@ -1784,7 +1784,7 @@ func (v *Dump) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { +func (v *Dumper) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { v.print(0, "&ast.ExprBinaryBitwiseAnd{\n") v.indent++ @@ -1797,7 +1797,7 @@ func (v *Dump) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { +func (v *Dumper) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { v.print(0, "&ast.ExprBinaryBitwiseOr{\n") v.indent++ @@ -1810,7 +1810,7 @@ func (v *Dump) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { +func (v *Dumper) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { v.print(0, "&ast.ExprBinaryBitwiseXor{\n") v.indent++ @@ -1823,7 +1823,7 @@ func (v *Dump) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { +func (v *Dumper) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { v.print(0, "&ast.ExprBinaryBooleanAnd{\n") v.indent++ @@ -1836,7 +1836,7 @@ func (v *Dump) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { +func (v *Dumper) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { v.print(0, "&ast.ExprBinaryBooleanOr{\n") v.indent++ @@ -1849,7 +1849,7 @@ func (v *Dump) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { +func (v *Dumper) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { v.print(0, "&ast.ExprBinaryCoalesce{\n") v.indent++ @@ -1862,7 +1862,7 @@ func (v *Dump) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryConcat(n *ast.ExprBinaryConcat) { +func (v *Dumper) ExprBinaryConcat(n *ast.ExprBinaryConcat) { v.print(0, "&ast.ExprBinaryConcat{\n") v.indent++ @@ -1875,7 +1875,7 @@ func (v *Dump) ExprBinaryConcat(n *ast.ExprBinaryConcat) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryDiv(n *ast.ExprBinaryDiv) { +func (v *Dumper) ExprBinaryDiv(n *ast.ExprBinaryDiv) { v.print(0, "&ast.ExprBinaryDiv{\n") v.indent++ @@ -1888,7 +1888,7 @@ func (v *Dump) ExprBinaryDiv(n *ast.ExprBinaryDiv) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryEqual(n *ast.ExprBinaryEqual) { +func (v *Dumper) ExprBinaryEqual(n *ast.ExprBinaryEqual) { v.print(0, "&ast.ExprBinaryEqual{\n") v.indent++ @@ -1901,7 +1901,7 @@ func (v *Dump) ExprBinaryEqual(n *ast.ExprBinaryEqual) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryGreater(n *ast.ExprBinaryGreater) { +func (v *Dumper) ExprBinaryGreater(n *ast.ExprBinaryGreater) { v.print(0, "&ast.ExprBinaryGreater{\n") v.indent++ @@ -1914,7 +1914,7 @@ func (v *Dump) ExprBinaryGreater(n *ast.ExprBinaryGreater) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { +func (v *Dumper) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { v.print(0, "&ast.ExprBinaryGreaterOrEqual{\n") v.indent++ @@ -1927,7 +1927,7 @@ func (v *Dump) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { +func (v *Dumper) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { v.print(0, "&ast.ExprBinaryIdentical{\n") v.indent++ @@ -1940,7 +1940,7 @@ func (v *Dump) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { +func (v *Dumper) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { v.print(0, "&ast.ExprBinaryLogicalAnd{\n") v.indent++ @@ -1953,7 +1953,7 @@ func (v *Dump) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { +func (v *Dumper) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { v.print(0, "&ast.ExprBinaryLogicalOr{\n") v.indent++ @@ -1966,7 +1966,7 @@ func (v *Dump) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { +func (v *Dumper) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { v.print(0, "&ast.ExprBinaryLogicalXor{\n") v.indent++ @@ -1979,7 +1979,7 @@ func (v *Dump) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryMinus(n *ast.ExprBinaryMinus) { +func (v *Dumper) ExprBinaryMinus(n *ast.ExprBinaryMinus) { v.print(0, "&ast.ExprBinaryMinus{\n") v.indent++ @@ -1992,7 +1992,7 @@ func (v *Dump) ExprBinaryMinus(n *ast.ExprBinaryMinus) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryMod(n *ast.ExprBinaryMod) { +func (v *Dumper) ExprBinaryMod(n *ast.ExprBinaryMod) { v.print(0, "&ast.ExprBinaryMod{\n") v.indent++ @@ -2005,7 +2005,7 @@ func (v *Dump) ExprBinaryMod(n *ast.ExprBinaryMod) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryMul(n *ast.ExprBinaryMul) { +func (v *Dumper) ExprBinaryMul(n *ast.ExprBinaryMul) { v.print(0, "&ast.ExprBinaryMul{\n") v.indent++ @@ -2018,7 +2018,7 @@ func (v *Dump) ExprBinaryMul(n *ast.ExprBinaryMul) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { +func (v *Dumper) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { v.print(0, "&ast.ExprBinaryNotEqual{\n") v.indent++ @@ -2031,7 +2031,7 @@ func (v *Dump) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { +func (v *Dumper) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { v.print(0, "&ast.ExprBinaryNotIdentical{\n") v.indent++ @@ -2044,7 +2044,7 @@ func (v *Dump) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryPlus(n *ast.ExprBinaryPlus) { +func (v *Dumper) ExprBinaryPlus(n *ast.ExprBinaryPlus) { v.print(0, "&ast.ExprBinaryPlus{\n") v.indent++ @@ -2057,7 +2057,7 @@ func (v *Dump) ExprBinaryPlus(n *ast.ExprBinaryPlus) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryPow(n *ast.ExprBinaryPow) { +func (v *Dumper) ExprBinaryPow(n *ast.ExprBinaryPow) { v.print(0, "&ast.ExprBinaryPow{\n") v.indent++ @@ -2070,7 +2070,7 @@ func (v *Dump) ExprBinaryPow(n *ast.ExprBinaryPow) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { +func (v *Dumper) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { v.print(0, "&ast.ExprBinaryShiftLeft{\n") v.indent++ @@ -2083,7 +2083,7 @@ func (v *Dump) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { +func (v *Dumper) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { v.print(0, "&ast.ExprBinaryShiftRight{\n") v.indent++ @@ -2096,7 +2096,7 @@ func (v *Dump) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinarySmaller(n *ast.ExprBinarySmaller) { +func (v *Dumper) ExprBinarySmaller(n *ast.ExprBinarySmaller) { v.print(0, "&ast.ExprBinarySmaller{\n") v.indent++ @@ -2109,7 +2109,7 @@ func (v *Dump) ExprBinarySmaller(n *ast.ExprBinarySmaller) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { +func (v *Dumper) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { v.print(0, "&ast.ExprBinarySmallerOrEqual{\n") v.indent++ @@ -2122,7 +2122,7 @@ func (v *Dump) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { v.print(v.indent, "},\n") } -func (v *Dump) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { +func (v *Dumper) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { v.print(0, "&ast.ExprBinarySpaceship{\n") v.indent++ @@ -2135,7 +2135,7 @@ func (v *Dump) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { v.print(v.indent, "},\n") } -func (v *Dump) ExprCastArray(n *ast.ExprCastArray) { +func (v *Dumper) ExprCastArray(n *ast.ExprCastArray) { v.print(0, "&ast.ExprCastArray{\n") v.indent++ @@ -2147,7 +2147,7 @@ func (v *Dump) ExprCastArray(n *ast.ExprCastArray) { v.print(v.indent, "},\n") } -func (v *Dump) ExprCastBool(n *ast.ExprCastBool) { +func (v *Dumper) ExprCastBool(n *ast.ExprCastBool) { v.print(0, "&ast.ExprCastBool{\n") v.indent++ @@ -2159,7 +2159,7 @@ func (v *Dump) ExprCastBool(n *ast.ExprCastBool) { v.print(v.indent, "},\n") } -func (v *Dump) ExprCastDouble(n *ast.ExprCastDouble) { +func (v *Dumper) ExprCastDouble(n *ast.ExprCastDouble) { v.print(0, "&ast.ExprCastDouble{\n") v.indent++ @@ -2171,7 +2171,7 @@ func (v *Dump) ExprCastDouble(n *ast.ExprCastDouble) { v.print(v.indent, "},\n") } -func (v *Dump) ExprCastInt(n *ast.ExprCastInt) { +func (v *Dumper) ExprCastInt(n *ast.ExprCastInt) { v.print(0, "&ast.ExprCastInt{\n") v.indent++ @@ -2183,7 +2183,7 @@ func (v *Dump) ExprCastInt(n *ast.ExprCastInt) { v.print(v.indent, "},\n") } -func (v *Dump) ExprCastObject(n *ast.ExprCastObject) { +func (v *Dumper) ExprCastObject(n *ast.ExprCastObject) { v.print(0, "&ast.ExprCastObject{\n") v.indent++ @@ -2195,7 +2195,7 @@ func (v *Dump) ExprCastObject(n *ast.ExprCastObject) { v.print(v.indent, "},\n") } -func (v *Dump) ExprCastString(n *ast.ExprCastString) { +func (v *Dumper) ExprCastString(n *ast.ExprCastString) { v.print(0, "&ast.ExprCastString{\n") v.indent++ @@ -2207,7 +2207,7 @@ func (v *Dump) ExprCastString(n *ast.ExprCastString) { v.print(v.indent, "},\n") } -func (v *Dump) ExprCastUnset(n *ast.ExprCastUnset) { +func (v *Dumper) ExprCastUnset(n *ast.ExprCastUnset) { v.print(0, "&ast.ExprCastUnset{\n") v.indent++ @@ -2219,7 +2219,7 @@ func (v *Dump) ExprCastUnset(n *ast.ExprCastUnset) { v.print(v.indent, "},\n") } -func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { +func (v *Dumper) ScalarDnumber(n *ast.ScalarDnumber) { v.print(0, "&ast.ScalarDnumber{\n") v.indent++ @@ -2231,7 +2231,7 @@ func (v *Dump) ScalarDnumber(n *ast.ScalarDnumber) { v.print(v.indent, "},\n") } -func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { +func (v *Dumper) ScalarEncapsed(n *ast.ScalarEncapsed) { v.print(0, "&ast.ScalarEncapsed{\n") v.indent++ @@ -2244,7 +2244,7 @@ func (v *Dump) ScalarEncapsed(n *ast.ScalarEncapsed) { v.print(v.indent, "},\n") } -func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { +func (v *Dumper) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.print(0, "&ast.ScalarEncapsedStringPart{\n") v.indent++ @@ -2256,7 +2256,7 @@ func (v *Dump) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.print(v.indent, "},\n") } -func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { +func (v *Dumper) ScalarHeredoc(n *ast.ScalarHeredoc) { v.print(0, "&ast.ScalarHeredoc{\n") v.indent++ @@ -2269,7 +2269,7 @@ func (v *Dump) ScalarHeredoc(n *ast.ScalarHeredoc) { v.print(v.indent, "},\n") } -func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { +func (v *Dumper) ScalarLnumber(n *ast.ScalarLnumber) { v.print(0, "&ast.ScalarLnumber{\n") v.indent++ @@ -2281,7 +2281,7 @@ func (v *Dump) ScalarLnumber(n *ast.ScalarLnumber) { v.print(v.indent, "},\n") } -func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { +func (v *Dumper) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.print(0, "&ast.ScalarMagicConstant{\n") v.indent++ @@ -2293,7 +2293,7 @@ func (v *Dump) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.print(v.indent, "},\n") } -func (v *Dump) ScalarString(n *ast.ScalarString) { +func (v *Dumper) ScalarString(n *ast.ScalarString) { v.print(0, "&ast.ScalarString{\n") v.indent++ @@ -2306,7 +2306,7 @@ func (v *Dump) ScalarString(n *ast.ScalarString) { v.print(v.indent, "},\n") } -func (v *Dump) NameName(n *ast.NameName) { +func (v *Dumper) NameName(n *ast.NameName) { v.print(0, "&ast.NameName{\n") v.indent++ @@ -2318,7 +2318,7 @@ func (v *Dump) NameName(n *ast.NameName) { v.print(v.indent, "},\n") } -func (v *Dump) NameFullyQualified(n *ast.NameFullyQualified) { +func (v *Dumper) NameFullyQualified(n *ast.NameFullyQualified) { v.print(0, "&ast.NameFullyQualified{\n") v.indent++ @@ -2331,7 +2331,7 @@ func (v *Dump) NameFullyQualified(n *ast.NameFullyQualified) { v.print(v.indent, "},\n") } -func (v *Dump) NameRelative(n *ast.NameRelative) { +func (v *Dumper) NameRelative(n *ast.NameRelative) { v.print(0, "&ast.NameRelative{\n") v.indent++ @@ -2345,7 +2345,7 @@ func (v *Dump) NameRelative(n *ast.NameRelative) { v.print(v.indent, "},\n") } -func (v *Dump) NameNamePart(n *ast.NameNamePart) { +func (v *Dumper) NameNamePart(n *ast.NameNamePart) { v.print(0, "&ast.NameNamePart{\n") v.indent++ @@ -2357,7 +2357,7 @@ func (v *Dump) NameNamePart(n *ast.NameNamePart) { v.print(v.indent, "},\n") } -func (v *Dump) ParserBrackets(n *ast.ParserBrackets) { +func (v *Dumper) ParserBrackets(n *ast.ParserBrackets) { v.print(0, "&ast.ParserBrackets{\n") v.indent++ diff --git a/pkg/ast/visitor/dump_test.go b/pkg/ast/visitor/dumper_test.go similarity index 95% rename from pkg/ast/visitor/dump_test.go rename to pkg/ast/visitor/dumper_test.go index f3a26df..c9f3e8c 100644 --- a/pkg/ast/visitor/dump_test.go +++ b/pkg/ast/visitor/dumper_test.go @@ -13,7 +13,7 @@ import ( func TestDumper_root(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewDump(o).WithTokens().WithPositions() + p := visitor.NewDumper(o).WithTokens().WithPositions() n := &ast.Root{ Position: &position.Position{ StartLine: 1, From 7b8b1ce7b970b6ddf1a894cc4081417dcb65a950 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 20 Dec 2020 01:28:47 +0200 Subject: [PATCH 114/140] refactoring: update formatter --- pkg/ast/visitor/formatter.go | 1997 ++++++++ pkg/ast/visitor/formatter_test.go | 6740 ++++++++++++++++++++++++++++ pkg/printer/pretty_printer.go | 2181 --------- pkg/printer/pretty_printer_test.go | 4097 ----------------- 4 files changed, 8737 insertions(+), 6278 deletions(-) create mode 100644 pkg/ast/visitor/formatter.go create mode 100644 pkg/ast/visitor/formatter_test.go delete mode 100644 pkg/printer/pretty_printer.go delete mode 100644 pkg/printer/pretty_printer_test.go diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go new file mode 100644 index 0000000..31b1475 --- /dev/null +++ b/pkg/ast/visitor/formatter.go @@ -0,0 +1,1997 @@ +package visitor + +import ( + "bytes" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/token" +) + +type formatterState int + +const ( + FormatterStateHTML formatterState = iota + FormatterStatePHP +) + +type formatter struct { + state formatterState + indent int + freeFloating []*token.Token + + lastSemiColon *token.Token +} + +func NewFormatter() *formatter { + return &formatter{} +} + +func (f *formatter) WithState(state formatterState) *formatter { + f.state = state + return f +} + +func (f *formatter) WithIndent(indent int) *formatter { + f.indent = indent + return f +} + +func (f *formatter) addFreeFloating(id token.ID, val []byte) { + f.freeFloating = append(f.freeFloating, &token.Token{ + ID: id, + Value: val, + }) +} + +func (f *formatter) addIndent() { + if f.indent < 1 { + return + } + + f.freeFloating = append(f.freeFloating, &token.Token{ + ID: token.T_WHITESPACE, + Value: bytes.Repeat([]byte(" "), f.indent), + }) +} + +func (f *formatter) resetFreeFloating() { + f.freeFloating = nil +} + +func (f *formatter) getFreeFloating() []*token.Token { + defer f.resetFreeFloating() + + if f.state == FormatterStateHTML { + t := &token.Token{ + ID: token.T_OPEN_TAG, + Value: []byte("') + } else { + *list = insert(*list, i+insertCounter, &ast.StmtNop{ + SemiColonTkn: &token.Token{ + Value: []byte("?>"), + }, + }) + insertCounter++ + } + } else { + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + stmt.Accept(f) + } +} + +func (f *formatter) newSemicolonTkn() *token.Token { + f.lastSemiColon = f.newToken(';', []byte(";")) + return f.lastSemiColon +} + +func insert(s []ast.Vertex, k int, vs ...ast.Vertex) []ast.Vertex { + if n := len(s) + len(vs); n <= cap(s) { + s2 := s[:n] + copy(s2[k+len(vs):], s[k:]) + copy(s2[k:], vs) + return s2 + } + s2 := make([]ast.Vertex, len(s)+len(vs)) + copy(s2, s[:k]) + copy(s2[k:], vs) + copy(s2[k+len(vs):], s[k:]) + return s2 +} + +func (f *formatter) Root(n *ast.Root) { + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + + f.formatStmts(&n.Stmts) +} + +func (f *formatter) Nullable(n *ast.Nullable) { + n.QuestionTkn = f.newToken('?', []byte("?")) + n.Expr.Accept(f) +} + +func (f *formatter) Parameter(n *ast.Parameter) { + if n.Type != nil { + n.Type.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + if n.AmpersandTkn != nil { + n.AmpersandTkn = f.newToken('&', []byte("&")) + } + + if n.VariadicTkn != nil { + n.VariadicTkn = f.newToken(token.T_ELLIPSIS, []byte("...")) + } + + n.Var.Accept(f) + + if n.DefaultValue != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken('=', []byte("=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.DefaultValue.Accept(f) + } +} + +func (f *formatter) Identifier(n *ast.Identifier) { + if n.IdentifierTkn == nil { + n.IdentifierTkn = f.newToken(token.T_STRING, n.Value) + } else { + n.IdentifierTkn.FreeFloating = f.getFreeFloating() + } +} + +func (f *formatter) Argument(n *ast.Argument) { + if n.VariadicTkn != nil { + n.VariadicTkn = f.newToken(token.T_ELLIPSIS, []byte("...")) + } + + if n.AmpersandTkn != nil { + n.AmpersandTkn = f.newToken('&', []byte("&")) + } + + n.Expr.Accept(f) +} + +func (f *formatter) StmtBreak(n *ast.StmtBreak) { + n.BreakTkn = f.newToken(token.T_BREAK, []byte("break")) + + if n.Expr != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) + } + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtCase(n *ast.StmtCase) { + n.CaseTkn = f.newToken(token.T_CASE, []byte("case")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Cond.Accept(f) + + n.CaseSeparatorTkn = f.newToken(':', []byte(":")) + + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- +} + +func (f *formatter) StmtCatch(n *ast.StmtCatch) { + n.CatchTkn = f.newToken(token.T_CATCH, []byte("catch")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + + n.SeparatorTkns = make([]*token.Token, len(n.Types)-1) + for i, t := range n.Types { + t.Accept(f) + + if i != len(n.Types)-1 { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.SeparatorTkns[i] = f.newToken('|', []byte("|")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + } + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Var.Accept(f) + + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtClass(n *ast.StmtClass) { + for _, m := range n.Modifiers { + m.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.ClassTkn = f.newToken(token.T_CLASS, []byte("class")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.ClassName.Accept(f) + + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + if len(n.Arguments) > 0 { + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + + n.SeparatorTkns = f.formatList(n.Arguments, ',') + + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + } + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + if n.Extends != nil { + n.Extends.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + if n.Implements != nil { + n.Implements.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtClassConstList(n *ast.StmtClassConstList) { + for _, m := range n.Modifiers { + m.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.ConstTkn = f.newToken(token.T_CONST, []byte("const")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = f.formatList(n.Consts, ',') + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtClassExtends(n *ast.StmtClassExtends) { + n.ExtendTkn = f.newToken(token.T_EXTENDS, []byte("extends")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.ClassName.Accept(f) +} + +func (f *formatter) StmtClassImplements(n *ast.StmtClassImplements) { + n.ImplementsTkn = f.newToken(token.T_IMPLEMENTS, []byte("implements")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = f.formatList(n.InterfaceNames, ',') +} + +func (f *formatter) StmtClassMethod(n *ast.StmtClassMethod) { + for _, m := range n.Modifiers { + m.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.FunctionTkn = f.newToken(token.T_FUNCTION, []byte("function")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + if n.AmpersandTkn != nil { + n.AmpersandTkn = f.newToken('&', []byte("&")) + } + + n.MethodName.Accept(f) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + + n.SeparatorTkns = nil + if len(n.Params) > 0 { + n.SeparatorTkns = f.formatList(n.Params, ',') + } + + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + if n.ReturnType != nil { + n.ColonTkn = f.newToken(':', []byte(":")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.ReturnType.Accept(f) + } + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) +} + +func (f *formatter) StmtConstList(n *ast.StmtConstList) { + n.ConstTkn = f.newToken(token.T_CONST, []byte("const")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = f.formatList(n.Consts, ',') + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtConstant(n *ast.StmtConstant) { + n.Name.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken('=', []byte("=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) StmtContinue(n *ast.StmtContinue) { + n.ContinueTkn = f.newToken(token.T_CONTINUE, []byte("continue")) + + if n.Expr != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) + } + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtDeclare(n *ast.StmtDeclare) { + n.ColonTkn = nil + n.EndDeclareTkn = nil + n.SemiColonTkn = nil + + n.DeclareTkn = f.newToken(token.T_DECLARE, []byte("declare")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + + n.SeparatorTkns = nil + if len(n.Consts) > 0 { + n.SeparatorTkns = f.formatList(n.Consts, ',') + } + + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) +} + +func (f *formatter) StmtDefault(n *ast.StmtDefault) { + n.DefaultTkn = f.newToken(token.T_DEFAULT, []byte("default")) + + n.CaseSeparatorTkn = f.newToken(':', []byte(":")) + + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- +} + +func (f *formatter) StmtDo(n *ast.StmtDo) { + n.DoTkn = f.newToken(token.T_DO, []byte("do")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.WhileTkn = f.newToken(token.T_WHILE, []byte("while")) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Cond.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtEcho(n *ast.StmtEcho) { + n.EchoTkn = f.newToken(token.T_ECHO, []byte("echo")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = nil + if len(n.Exprs) > 0 { + n.SeparatorTkns = f.formatList(n.Exprs, ',') + } + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtElse(n *ast.StmtElse) { + n.ColonTkn = nil + + n.ElseTkn = f.newToken(token.T_ELSE, []byte("else")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) +} + +func (f *formatter) StmtElseIf(n *ast.StmtElseIf) { + n.ColonTkn = nil + + n.ElseIfTkn = f.newToken(token.T_ELSEIF, []byte("elseif")) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Cond.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) +} + +func (f *formatter) StmtExpression(n *ast.StmtExpression) { + n.Expr.Accept(f) + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtFinally(n *ast.StmtFinally) { + n.FinallyTkn = f.newToken(token.T_FINALLY, []byte("finally")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtFor(n *ast.StmtFor) { + n.ColonTkn = nil + n.EndForTkn = nil + n.SemiColonTkn = nil + + n.ForTkn = f.newToken(token.T_FOR, []byte("for")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + + n.InitSeparatorTkns = nil + if len(n.Init) > 0 { + n.InitSeparatorTkns = f.formatList(n.Init, ',') + } + + n.InitSemiColonTkn = f.newSemicolonTkn() + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.CondSeparatorTkns = nil + if len(n.Cond) > 0 { + n.CondSeparatorTkns = f.formatList(n.Cond, ',') + } + + n.CondSemiColonTkn = f.newSemicolonTkn() + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.LoopSeparatorTkns = nil + if len(n.Loop) > 0 { + n.LoopSeparatorTkns = f.formatList(n.Loop, ',') + } + + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) +} + +func (f *formatter) StmtForeach(n *ast.StmtForeach) { + n.ColonTkn = nil + n.EndForeachTkn = nil + n.SemiColonTkn = nil + + n.ForeachTkn = f.newToken(token.T_FOREACH, []byte("foreach")) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + + n.Expr.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.AsTkn = f.newToken(token.T_AS, []byte("as")) + + if n.Key != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Key.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.DoubleArrowTkn = f.newToken(token.T_DOUBLE_ARROW, []byte("=>")) + } + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Var.Accept(f) + + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) +} + +func (f *formatter) StmtFunction(n *ast.StmtFunction) { + n.FunctionTkn = f.newToken(token.T_FUNCTION, []byte("function")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + if n.AmpersandTkn != nil { + n.AmpersandTkn = f.newToken('&', []byte("&")) + } + + n.FunctionName.Accept(f) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + + n.SeparatorTkns = nil + if len(n.Params) > 0 { + n.SeparatorTkns = f.formatList(n.Params, ',') + } + + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + if n.ReturnType != nil { + n.ColonTkn = f.newToken(':', []byte(":")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.ReturnType.Accept(f) + } + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtGlobal(n *ast.StmtGlobal) { + n.GlobalTkn = f.newToken(token.T_GLOBAL, []byte("global")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = nil + if len(n.Vars) > 0 { + n.SeparatorTkns = f.formatList(n.Vars, ',') + } + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtGoto(n *ast.StmtGoto) { + n.GotoTkn = f.newToken(token.T_GOTO, []byte("goto")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Label.Accept(f) + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtHaltCompiler(n *ast.StmtHaltCompiler) { + n.HaltCompilerTkn = f.newToken(token.T_HALT_COMPILER, []byte("__halt_compiler")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtIf(n *ast.StmtIf) { + n.ColonTkn = nil + n.EndIfTkn = nil + n.SemiColonTkn = nil + + n.IfTkn = f.newToken(token.T_IF, []byte("if")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Cond.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) + + if len(n.ElseIf) > 0 { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + f.formatList(n.ElseIf, ' ') + } + + if n.Else != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Else.Accept(f) + } +} + +func (f *formatter) StmtInlineHtml(n *ast.StmtInlineHtml) { + n.InlineHtmlTkn = f.newToken(token.T_STRING, n.Value) + f.state = FormatterStateHTML +} + +func (f *formatter) StmtInterface(n *ast.StmtInterface) { + n.InterfaceTkn = f.newToken(token.T_INTERFACE, []byte("interface")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.InterfaceName.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + if n.Extends != nil { + n.Extends.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { + n.ExtendsTkn = f.newToken(token.T_EXTENDS, []byte("extends")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = nil + if len(n.InterfaceNames) > 0 { + n.SeparatorTkns = f.formatList(n.InterfaceNames, ',') + } +} + +func (f *formatter) StmtLabel(n *ast.StmtLabel) { + n.LabelName.Accept(f) + n.ColonTkn = f.newToken(':', []byte(":")) +} + +func (f *formatter) StmtNamespace(n *ast.StmtNamespace) { + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil + n.SemiColonTkn = nil + + n.NsTkn = f.newToken(token.T_NAMESPACE, []byte("namespace")) + + if n.Name != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Name.Accept(f) + } + + if len(n.Stmts) > 0 { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + } else { + n.SemiColonTkn = f.newSemicolonTkn() + } + +} + +func (f *formatter) StmtNop(n *ast.StmtNop) { + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtProperty(n *ast.StmtProperty) { + n.Var.Accept(f) + + if n.Expr != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken('=', []byte("=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) + } +} + +func (f *formatter) StmtPropertyList(n *ast.StmtPropertyList) { + for _, m := range n.Modifiers { + m.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + if n.Type != nil { + n.Type.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.SeparatorTkns = f.formatList(n.Properties, ',') + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtReturn(n *ast.StmtReturn) { + n.ReturnTkn = f.newToken(token.T_RETURN, []byte("return")) + + if n.Expr != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) + } + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtStatic(n *ast.StmtStatic) { + n.StaticTkn = f.newToken(token.T_STATIC, []byte("static")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = nil + if len(n.Vars) > 0 { + n.SeparatorTkns = f.formatList(n.Vars, ',') + } + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtStaticVar(n *ast.StmtStaticVar) { + n.Var.Accept(f) + + if n.Expr != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken('=', []byte("=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) + } +} + +func (f *formatter) StmtStmtList(n *ast.StmtStmtList) { + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtSwitch(n *ast.StmtSwitch) { + n.CaseSeparatorTkn = nil + n.ColonTkn = nil + n.EndSwitchTkn = nil + n.SemiColonTkn = nil + + n.SwitchTkn = f.newToken(token.T_SWITCH, []byte("switch")) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Cond.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.CaseList) > 0 { + f.indent++ + f.formatStmts(&n.CaseList) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtThrow(n *ast.StmtThrow) { + n.ThrowTkn = f.newToken(token.T_THROW, []byte("throw")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtTrait(n *ast.StmtTrait) { + n.TraitTkn = f.newToken(token.T_TRAIT, []byte("trait")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.TraitName.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + if n.Extends != nil { + n.Extends.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + if n.Implements != nil { + n.Implements.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Adaptations) > 0 { + f.indent++ + f.formatStmts(&n.Adaptations) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { + if n.Trait != nil { + n.Trait.Accept(f) + n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) + } + + n.Method.Accept(f) +} + +func (f *formatter) StmtTraitUse(n *ast.StmtTraitUse) { + n.UseTkn = f.newToken(token.T_USE, []byte("use")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = f.formatList(n.Traits, ',') + + if _, ok := n.Adaptations.(*ast.StmtTraitAdaptationList); ok { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.Adaptations.Accept(f) +} + +func (f *formatter) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { + n.Ref.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.AsTkn = f.newToken(token.T_AS, []byte("as")) + + if n.Modifier != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Modifier.Accept(f) + } + + if n.Alias != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Alias.Accept(f) + } + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { + n.Ref.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.InsteadofTkn = f.newToken(token.T_INSTEADOF, []byte("insteadof")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.SeparatorTkns = f.formatList(n.Insteadof, ',') + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtTry(n *ast.StmtTry) { + n.TryTkn = f.newToken(token.T_TRY, []byte("try")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + + for _, catch := range n.Catches { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + catch.Accept(f) + } + + if n.Finally != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Finally.Accept(f) + } +} + +func (f *formatter) StmtUnset(n *ast.StmtUnset) { + n.UnsetTkn = f.newToken(token.T_UNSET, []byte("unset")) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = f.formatList(n.Vars, ',') + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtUse(n *ast.StmtUse) { + n.UseTkn = f.newToken(token.T_USE, []byte("use")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + if n.Type != nil { + n.Type.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.SeparatorTkns = f.formatList(n.UseDeclarations, ',') + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtGroupUse(n *ast.StmtGroupUse) { + n.UseTkn = f.newToken(token.T_USE, []byte("use")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + if n.Type != nil { + n.Type.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.LeadingNsSeparatorTkn = nil + + n.Prefix.Accept(f) + n.NsSeparatorTkn = f.newToken(token.T_NS_SEPARATOR, []byte("\\")) + + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + n.SeparatorTkns = f.formatList(n.UseDeclarations, ',') + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + + n.SemiColonTkn = f.newSemicolonTkn() +} + +func (f *formatter) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + if n.Type != nil { + n.Type.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.NsSeparatorTkn = nil + + n.Use.Accept(f) + + if n.Alias != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.AsTkn = f.newToken(token.T_AS, []byte("as")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Alias.Accept(f) + } +} + +func (f *formatter) StmtWhile(n *ast.StmtWhile) { + n.ColonTkn = nil + n.EndWhileTkn = nil + n.SemiColonTkn = nil + + n.WhileTkn = f.newToken(token.T_WHILE, []byte("while")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Cond.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Stmt.Accept(f) +} + +func (f *formatter) ExprArray(n *ast.ExprArray) { + n.ArrayTkn = f.newToken(token.T_ARRAY, []byte("array")) + n.OpenBracketTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = f.formatList(n.Items, ',') + n.CloseBracketTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { + n.Var.Accept(f) + n.OpenBracketTkn = f.newToken('[', []byte("[")) + n.Dim.Accept(f) + n.CloseBracketTkn = f.newToken(']', []byte("]")) +} + +func (f *formatter) ExprArrayItem(n *ast.ExprArrayItem) { + if n.EllipsisTkn != nil { + n.EllipsisTkn = f.newToken(token.T_ELLIPSIS, []byte("...")) + } + + if n.Key != nil { + n.Key.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.DoubleArrowTkn = f.newToken(token.T_DOUBLE_ARROW, []byte("=>")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.Val.Accept(f) +} + +func (f *formatter) ExprArrowFunction(n *ast.ExprArrowFunction) { + if n.StaticTkn != nil { + n.StaticTkn = f.newToken(token.T_STATIC, []byte("static")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.FnTkn = f.newToken(token.T_FN, []byte("fn")) + + if n.AmpersandTkn != nil { + n.AmpersandTkn = f.newToken('&', []byte("&")) + } + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = nil + if len(n.Params) > 0 { + n.SeparatorTkns = f.formatList(n.Params, ',') + } + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + n.ColonTkn = nil + if n.ReturnType != nil { + n.ColonTkn = f.newToken(':', []byte(":")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.ReturnType.Accept(f) + } + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.DoubleArrowTkn = f.newToken(token.T_DOUBLE_ARROW, []byte("=>")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprBitwiseNot(n *ast.ExprBitwiseNot) { + n.TildaTkn = f.newToken('~', []byte("~")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprBooleanNot(n *ast.ExprBooleanNot) { + n.ExclamationTkn = f.newToken('!', []byte("!")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprClassConstFetch(n *ast.ExprClassConstFetch) { + n.Class.Accept(f) + n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) + n.ConstantName.Accept(f) +} + +func (f *formatter) ExprClone(n *ast.ExprClone) { + n.CloneTkn = f.newToken(token.T_CLONE, []byte("clone")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprClosure(n *ast.ExprClosure) { + if n.StaticTkn != nil { + n.StaticTkn = f.newToken(token.T_STATIC, []byte("static")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.FunctionTkn = f.newToken(token.T_FN, []byte("function")) + + if n.AmpersandTkn != nil { + n.AmpersandTkn = f.newToken('&', []byte("&")) + } + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = nil + if len(n.Params) > 0 { + n.SeparatorTkns = f.formatList(n.Params, ',') + } + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + + if n.ClosureUse != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.ClosureUse.Accept(f) + } + + n.ColonTkn = nil + if n.ReturnType != nil { + n.ColonTkn = f.newToken(':', []byte(":")) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.ReturnType.Accept(f) + } + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + if len(n.Stmts) > 0 { + f.indent++ + f.formatStmts(&n.Stmts) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + +func (f *formatter) ExprClosureUse(n *ast.ExprClosureUse) { + n.UseTkn = f.newToken(token.T_USE, []byte("use")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = f.formatList(n.Uses, ',') + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprConstFetch(n *ast.ExprConstFetch) { + n.Const.Accept(f) +} + +func (f *formatter) ExprEmpty(n *ast.ExprEmpty) { + n.EmptyTkn = f.newToken(token.T_EMPTY, []byte("empty")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Expr.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprErrorSuppress(n *ast.ExprErrorSuppress) { + n.AtTkn = f.newToken('@', []byte("@")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprEval(n *ast.ExprEval) { + n.EvalTkn = f.newToken(token.T_EVAL, []byte("eval")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Expr.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprExit(n *ast.ExprExit) { + n.DieTkn = f.newToken(token.T_EVAL, []byte("exit")) + + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + if n.Expr != nil { + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Expr.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + } +} + +func (f *formatter) ExprFunctionCall(n *ast.ExprFunctionCall) { + n.Function.Accept(f) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = nil + if len(n.Arguments) > 0 { + n.SeparatorTkns = f.formatList(n.Arguments, ',') + } + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprInclude(n *ast.ExprInclude) { + n.IncludeTkn = f.newToken(token.T_INCLUDE, []byte("include")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprIncludeOnce(n *ast.ExprIncludeOnce) { + n.IncludeTkn = f.newToken(token.T_INCLUDE_ONCE, []byte("include_once")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprInstanceOf(n *ast.ExprInstanceOf) { + n.Expr.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.InstanceOfTkn = f.newToken(token.T_INSTANCEOF, []byte("instanceof")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Class.Accept(f) +} + +func (f *formatter) ExprIsset(n *ast.ExprIsset) { + n.IssetTkn = f.newToken(token.T_ISSET, []byte("isset")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = f.formatList(n.Vars, ',') + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprList(n *ast.ExprList) { + n.ListTkn = f.newToken(token.T_LIST, []byte("list")) + n.OpenBracketTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = f.formatList(n.Items, ',') + n.CloseBracketTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprMethodCall(n *ast.ExprMethodCall) { + n.Var.Accept(f) + n.ObjectOperatorTkn = f.newToken(token.T_OBJECT_OPERATOR, []byte("->")) + n.Method.Accept(f) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = nil + if len(n.Arguments) > 0 { + n.SeparatorTkns = f.formatList(n.Arguments, ',') + } + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprNew(n *ast.ExprNew) { + n.NewTkn = f.newToken(token.T_NEW, []byte("new")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Class.Accept(f) + + n.SeparatorTkns = nil + n.OpenParenthesisTkn = nil + n.CloseParenthesisTkn = nil + if len(n.Arguments) > 0 { + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = f.formatList(n.Arguments, ',') + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + } +} + +func (f *formatter) ExprPostDec(n *ast.ExprPostDec) { + n.Var.Accept(f) + n.DecTkn = f.newToken(token.T_DEC, []byte("--")) +} + +func (f *formatter) ExprPostInc(n *ast.ExprPostInc) { + n.Var.Accept(f) + n.IncTkn = f.newToken(token.T_INC, []byte("++")) +} + +func (f *formatter) ExprPreDec(n *ast.ExprPreDec) { + n.DecTkn = f.newToken(token.T_DEC, []byte("--")) + n.Var.Accept(f) +} + +func (f *formatter) ExprPreInc(n *ast.ExprPreInc) { + n.IncTkn = f.newToken(token.T_INC, []byte("++")) + n.Var.Accept(f) +} + +func (f *formatter) ExprPrint(n *ast.ExprPrint) { + n.PrintTkn = f.newToken(token.T_PRINT, []byte("print")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprPropertyFetch(n *ast.ExprPropertyFetch) { + n.Var.Accept(f) + n.ObjectOperatorTkn = f.newToken(token.T_OBJECT_OPERATOR, []byte("->")) + n.Property.Accept(f) +} + +func (f *formatter) ExprReference(n *ast.ExprReference) { + n.AmpersandTkn = f.newToken('&', []byte("&")) + n.Var.Accept(f) +} + +func (f *formatter) ExprRequire(n *ast.ExprRequire) { + n.RequireTkn = f.newToken(token.T_REQUIRE, []byte("require")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprRequireOnce(n *ast.ExprRequireOnce) { + n.RequireOnceTkn = f.newToken(token.T_REQUIRE_ONCE, []byte("require_once")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprShellExec(n *ast.ExprShellExec) { + n.OpenBacktickTkn = f.newToken('`', []byte("`")) + for _, p := range n.Parts { + p.Accept(f) + } + n.CloseBacktickTkn = f.newToken('`', []byte("`")) +} + +func (f *formatter) ExprStaticCall(n *ast.ExprStaticCall) { + n.Class.Accept(f) + n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) + n.Call.Accept(f) + + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = nil + if len(n.Arguments) > 0 { + n.SeparatorTkns = f.formatList(n.Arguments, ',') + } + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + +func (f *formatter) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { + n.Class.Accept(f) + n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) + n.Property.Accept(f) +} + +func (f *formatter) ExprTernary(n *ast.ExprTernary) { + n.Condition.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.QuestionTkn = f.newToken('?', []byte("?")) + if n.IfTrue != nil { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.IfTrue.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + n.ColonTkn = f.newToken(':', []byte(":")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.IfFalse.Accept(f) +} + +func (f *formatter) ExprUnaryMinus(n *ast.ExprUnaryMinus) { + n.MinusTkn = f.newToken('-', []byte("-")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprUnaryPlus(n *ast.ExprUnaryPlus) { + n.PlusTkn = f.newToken('+', []byte("+")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprVariable(n *ast.ExprVariable) { + if _, ok := n.VarName.(*ast.Identifier); !ok { + n.DollarTkn = f.newToken('$', []byte("$")) + } + + n.VarName.Accept(f) +} + +func (f *formatter) ExprYield(n *ast.ExprYield) { + n.YieldTkn = f.newToken(token.T_YIELD, []byte("yield")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + if n.Key != nil { + n.Key.Accept(f) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.DoubleArrowTkn = f.newToken(token.T_DOUBLE_ARROW, []byte("=>")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + } + + n.Value.Accept(f) +} + +func (f *formatter) ExprYieldFrom(n *ast.ExprYieldFrom) { + n.YieldFromTkn = f.newToken(token.T_YIELD_FROM, []byte("yield from")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssign(n *ast.ExprAssign) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken('=', []byte("=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignReference(n *ast.ExprAssignReference) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken('=', []byte("=")) + n.AmpersandTkn = f.newToken('&', []byte("&")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_AND_EQUAL, []byte("&=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_OR_EQUAL, []byte("|=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_XOR_EQUAL, []byte("^=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_COALESCE_EQUAL, []byte("??=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignConcat(n *ast.ExprAssignConcat) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_CONCAT_EQUAL, []byte(".=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignDiv(n *ast.ExprAssignDiv) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_DIV_EQUAL, []byte("/=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignMinus(n *ast.ExprAssignMinus) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_MINUS_EQUAL, []byte("-=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignMod(n *ast.ExprAssignMod) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_MOD_EQUAL, []byte("%=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignMul(n *ast.ExprAssignMul) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_MUL_EQUAL, []byte("*=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignPlus(n *ast.ExprAssignPlus) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_PLUS_EQUAL, []byte("+=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignPow(n *ast.ExprAssignPow) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_POW_EQUAL, []byte("**=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_SL_EQUAL, []byte("<<=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { + n.Var.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.EqualTkn = f.newToken(token.T_SR_EQUAL, []byte(">>=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Expr.Accept(f) +} + +func (f *formatter) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('&', []byte("&")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('|', []byte("|")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('^', []byte("^")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_BOOLEAN_AND, []byte("&&")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_BOOLEAN_OR, []byte("||")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_COALESCE, []byte("??")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryConcat(n *ast.ExprBinaryConcat) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('.', []byte(".")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryDiv(n *ast.ExprBinaryDiv) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('/', []byte("/")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryEqual(n *ast.ExprBinaryEqual) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_IS_EQUAL, []byte("==")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryGreater(n *ast.ExprBinaryGreater) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('>', []byte(">")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_IS_GREATER_OR_EQUAL, []byte(">=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_IS_IDENTICAL, []byte("===")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_LOGICAL_AND, []byte("and")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_LOGICAL_OR, []byte("or")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_LOGICAL_XOR, []byte("xor")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryMinus(n *ast.ExprBinaryMinus) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('-', []byte("-")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryMod(n *ast.ExprBinaryMod) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('%', []byte("%")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryMul(n *ast.ExprBinaryMul) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('*', []byte("*")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_IS_NOT_EQUAL, []byte("!=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_IS_NOT_IDENTICAL, []byte("!==")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryPlus(n *ast.ExprBinaryPlus) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('+', []byte("+")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryPow(n *ast.ExprBinaryPow) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_POW, []byte("**")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_SL, []byte("<<")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_SR, []byte(">>")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinarySmaller(n *ast.ExprBinarySmaller) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken('<', []byte("<")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_IS_SMALLER_OR_EQUAL, []byte("<=")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { + n.Left.Accept(f) + + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpTkn = f.newToken(token.T_SPACESHIP, []byte("<=>")) + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + + n.Right.Accept(f) +} + +func (f *formatter) ExprCastArray(n *ast.ExprCastArray) { + n.CastTkn = f.newToken(token.T_ARRAY_CAST, []byte("(array)")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprCastBool(n *ast.ExprCastBool) { + n.CastTkn = f.newToken(token.T_BOOL_CAST, []byte("(bool)")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprCastDouble(n *ast.ExprCastDouble) { + n.CastTkn = f.newToken(token.T_DOUBLE_CAST, []byte("(float)")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprCastInt(n *ast.ExprCastInt) { + n.CastTkn = f.newToken(token.T_INT_CAST, []byte("(integer)")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprCastObject(n *ast.ExprCastObject) { + n.CastTkn = f.newToken(token.T_OBJECT_CAST, []byte("(object)")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprCastString(n *ast.ExprCastString) { + n.CastTkn = f.newToken(token.T_STRING_CAST, []byte("(string)")) + n.Expr.Accept(f) +} + +func (f *formatter) ExprCastUnset(n *ast.ExprCastUnset) { + n.CastTkn = f.newToken(token.T_UNSET_CAST, []byte("(unset)")) + n.Expr.Accept(f) +} + +func (f *formatter) ScalarDnumber(n *ast.ScalarDnumber) { + if n.NumberTkn == nil { + n.NumberTkn = f.newToken(token.T_STRING, n.Value) + } else { + n.NumberTkn.FreeFloating = f.getFreeFloating() + } +} + +func (f *formatter) ScalarEncapsed(n *ast.ScalarEncapsed) { + n.OpenQuoteTkn = f.newToken('"', []byte("\"")) + for _, p := range n.Parts { + p.Accept(f) + } + n.CloseQuoteTkn = f.newToken('"', []byte("\"")) +} + +func (f *formatter) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { + if n.EncapsedStrTkn == nil { + n.EncapsedStrTkn = f.newToken(token.T_STRING, n.Value) + } else { + n.EncapsedStrTkn.FreeFloating = f.getFreeFloating() + } +} + +func (f *formatter) ScalarHeredoc(n *ast.ScalarHeredoc) { + n.OpenHeredocTkn = f.newToken(token.T_START_HEREDOC, []byte("<< $val) { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtFunction(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtFunction{ + FunctionName: &ast.Identifier{ + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function foo() { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtFunction_Ref(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtFunction{ + AmpersandTkn: &token.Token{}, + FunctionName: &ast.Identifier{ + Value: []byte("foo"), + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function &foo() { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtFunction_Params(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtFunction{ + FunctionName: &ast.Identifier{ + Value: []byte("foo"), + }, + Params: []ast.Vertex{ + &ast.Parameter{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + }, + &ast.Parameter{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function foo($a, $b) { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtFunction_ReturnType(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtFunction{ + FunctionName: &ast.Identifier{ + Value: []byte("foo"), + }, + ReturnType: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("bar"), + }, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function foo(): bar { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtGlobal(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtGlobal{ + Vars: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `global $a, $b;` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtGoto(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtGoto{ + Label: &ast.Identifier{ + Value: []byte("FOO"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `goto FOO;` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtHaltCompiler(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtHaltCompiler{} + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `__halt_compiler();` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtIf(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `if ($foo) { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtIf_ElseIf(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + }, + ElseIf: []ast.Vertex{ + &ast.StmtElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + }, + }, + &ast.StmtElseIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$baz"), + }, + }, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `if ($foo) { + ; + } elseif($bar) { + ; + } elseif($baz) { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtIf_Else(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtIf{ + Cond: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + }, + Else: &ast.StmtElse{ + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `if ($foo) { + ; + } else { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_StmtInlineHtml(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.Root{ + Stmts: []ast.Vertex{ + &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + &ast.StmtInlineHtml{ + Value: []byte("
"), + }, + &ast.StmtEcho{ + Exprs: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + }, + }, + &ast.StmtInlineHtml{ + Value: []byte("
"), + }, + &ast.StmtNop{}, + }, + }, + }, + } + + f := visitor.NewFormatter() + n.Accept(f) + + p := visitor.NewPrinter(o) + n.Accept(p) + + expected := `
$bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprArrayItem_Variadic(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprArrayItem{ + EllipsisTkn: &token.Token{}, + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `...$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprArrowFunction(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprArrowFunction{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `fn() => $foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprArrowFunction_Ref(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprArrowFunction{ + AmpersandTkn: &token.Token{}, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `fn&() => $foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprArrowFunction_Params(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprArrowFunction{ + Params: []ast.Vertex{ + &ast.Parameter{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + }, + &ast.Parameter{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `fn($a, $b) => $foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprArrowFunction_ReturnType(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprArrowFunction{ + ReturnType: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `fn(): foo => $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBitwiseNot(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBitwiseNot{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `~$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBooleanNot(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBooleanNot{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `!$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClassConstFetch(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClassConstFetch{ + Class: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + ConstantName: &ast.Identifier{ + Value: []byte("bar"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo::bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClone(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClone{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `clone $foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClosure(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClosure{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function() { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClosure_Ref(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClosure{ + AmpersandTkn: &token.Token{}, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function&() { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClosure_Params(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClosure{ + Params: []ast.Vertex{ + &ast.Parameter{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + }, + &ast.Parameter{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function($a, $b) { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClosure_ReturnType(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClosure{ + ReturnType: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function(): foo { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClosure_Use(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClosure{ + ClosureUse: &ast.ExprClosureUse{ + Uses: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + }, + }, + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `function() use($foo) { + ; + }` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClosureUse(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClosureUse{ + Uses: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `use($a, $b)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprConstFetch(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprConstFetch{ + Const: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("FOO"), + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `FOO` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprEmpty(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprEmpty{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `empty($foo)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprErrorSuppress(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprErrorSuppress{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `@$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprEval(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprEval{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `eval($foo)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprExit(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprExit{} + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `exit` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprExit_Expr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprExit{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `exit($foo)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprFunctionCall(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprFunctionCall{ + Function: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo()` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprFunctionCall_Arguments(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprFunctionCall{ + Function: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo($bar)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprInclude(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprInclude{ + Expr: &ast.ScalarString{ + Value: []byte("'foo.php'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `include 'foo.php'` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprIncludeOnce(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprIncludeOnce{ + Expr: &ast.ScalarString{ + Value: []byte("'foo.php'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `include_once 'foo.php'` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprInstanceOf(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprInstanceOf{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Class: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("bar"), + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo instanceof bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprIsset(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprIsset{ + Vars: []ast.Vertex{ + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `isset($a, $b)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprList(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprList{ + Items: []ast.Vertex{ + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + }, + &ast.ExprArrayItem{ + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `list($a, $b)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprMethodCall(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprMethodCall{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Method: &ast.Identifier{ + Value: []byte("bar"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo->bar()` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprMethodCall_Arguments(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprMethodCall{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Method: &ast.Identifier{ + Value: []byte("bar"), + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo->bar($a, $b)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprNew(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprNew{ + Class: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `new foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprNew_Arguments(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprNew{ + Class: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `new foo($a, $b)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprPreDec(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprPreDec{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `--$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprPreInc(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprPreInc{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `++$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprPostDec(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprPostDec{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo--` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprPostInc(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprPostInc{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo++` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprPrint(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprPrint{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `print $foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprPropertyFetch(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprPropertyFetch{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Property: &ast.Identifier{ + Value: []byte("bar"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo->bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprReference(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprReference{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `&$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprRequire(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprRequire{ + Expr: &ast.ScalarString{ + Value: []byte("'foo.php'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `require 'foo.php'` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprRequireOnce(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprRequireOnce{ + Expr: &ast.ScalarString{ + Value: []byte("'foo.php'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `require_once 'foo.php'` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprShellExec(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprShellExec{} + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := "``" + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprShellExec_Part(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprShellExec{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Value: []byte("foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := "`foo`" + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprShellExec_Parts(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprShellExec{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Value: []byte("foo "), + }, + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + &ast.ScalarEncapsedStringPart{ + Value: []byte(" baz"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := "`foo $bar baz`" + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprStaticCall(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprStaticCall{ + Class: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Call: &ast.Identifier{ + Value: []byte("bar"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo::bar()` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprStaticCall_Arguments(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprStaticCall{ + Class: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Call: &ast.Identifier{ + Value: []byte("bar"), + }, + Arguments: []ast.Vertex{ + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + }, + &ast.Argument{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$b"), + }, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo::bar($a, $b)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprStaticPropertyFetch(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprStaticPropertyFetch{ + Class: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Property: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo::$bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprTernary(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprTernary{ + Condition: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + IfTrue: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + IfFalse: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$baz"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo ? $bar : $baz` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprTernary_short(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprTernary{ + Condition: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + IfFalse: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo ?: $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprUnaryMinus(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprUnaryMinus{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `-$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprUnaryPlus(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprUnaryPlus{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `+$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprYield(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprYield{ + Value: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `yield $foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprYield_Key(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprYield{ + Key: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Value: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `yield $foo => $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprYieldFrom(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprYieldFrom{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `yield from $foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssign(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssign{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo = $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignReference(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignReference{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo =& $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignBitwiseAnd(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignBitwiseAnd{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo &= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignBitwiseOr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignBitwiseOr{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo |= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignBitwiseXor(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignBitwiseXor{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo ^= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignCoalesce(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignCoalesce{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo ??= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignConcat(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignConcat{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo .= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignDiv(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignDiv{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo /= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignMinus(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignMinus{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo -= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignMod(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignMod{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo %= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignMul(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignMul{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo *= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignPlus(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignPlus{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo += $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignPow(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignPow{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo **= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignShiftLeft(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignShiftLeft{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo <<= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprAssignShiftRight(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprAssignShiftRight{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo >>= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryBitwiseAnd(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryBitwiseAnd{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo & $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryBitwiseOr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryBitwiseOr{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo | $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryBitwiseXor(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryBitwiseXor{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo ^ $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryBooleanAnd(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryBooleanAnd{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo && $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryBooleanOr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryBooleanOr{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo || $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryCoalesce(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryCoalesce{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo ?? $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryConcat(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryConcat{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo . $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryDiv(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryDiv{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo / $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryEqual(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryEqual{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo == $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryGreater(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryGreater{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo > $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryGreaterOrEqual(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryGreaterOrEqual{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo >= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryIdentical(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryIdentical{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo === $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryLogicalAnd(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryLogicalAnd{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo and $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryLogicalOr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryLogicalOr{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo or $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryLogicalXor(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryLogicalXor{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo xor $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryMinus(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryMinus{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo - $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryMod(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryMod{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo % $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryMul(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryMul{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo * $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryNotEqual(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryNotEqual{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo != $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryNotIdentical(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryNotIdentical{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo !== $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryPlus(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryPlus{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo + $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryPow(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryPow{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo ** $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryShiftLeft(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryShiftLeft{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo << $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinaryShiftRight(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinaryShiftRight{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo >> $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinarySmaller(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinarySmaller{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo < $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinarySmallerOrEqual(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinarySmallerOrEqual{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo <= $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprBinarySpaceship(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBinarySpaceship{ + Left: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Right: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo <=> $bar` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprCastArray(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprCastArray{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `(array)$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprCastBool(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprCastBool{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `(bool)$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprCastDouble(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprCastDouble{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `(float)$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprCastInt(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprCastInt{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `(integer)$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprCastObject(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprCastObject{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `(object)$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprCastString(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprCastString{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `(string)$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprCastUnset(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprCastUnset{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `(unset)$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ScalarDnumber(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ScalarDnumber{ + Value: []byte("1234"), + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `1234` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ScalarEncapsed(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ScalarEncapsed{} + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `""` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ScalarEncapsed_Part(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ScalarEncapsed{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Value: []byte("foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `"foo"` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ScalarEncapsed_Parts(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ScalarEncapsed{ + Parts: []ast.Vertex{ + &ast.ScalarEncapsedStringPart{ + Value: []byte("foo "), + }, + &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$bar"), + }, + }, + &ast.ScalarEncapsedStringPart{ + Value: []byte(" baz"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `"foo $bar baz"` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ScalarEncapsedStringPart(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ScalarEncapsedStringPart{ + Value: []byte("foo"), + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ScalarHeredoc(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ScalarHeredoc{} + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `<< 0 { - io.WriteString(p.w, glue) - } - - p.Print(n) - } -} - -func (p *PrettyPrinter) printNodes(nn []ast.Vertex) { - p.indentDepth++ - l := len(nn) - 1 - for k, n := range nn { - p.printIndent() - p.Print(n) - if k < l { - io.WriteString(p.w, "\n") - } - } - p.indentDepth-- -} - -func (p *PrettyPrinter) printIndent() { - for i := 0; i < p.indentDepth; i++ { - io.WriteString(p.w, p.indentStr) - } -} - -func (p *PrettyPrinter) printNode(n ast.Vertex) { - switch n.(type) { - - // node - - case *ast.Root: - p.printNodeRoot(n) - case *ast.Identifier: - p.printNodeIdentifier(n) - case *ast.Parameter: - p.printNodeParameter(n) - case *ast.Nullable: - p.printNodeNullable(n) - case *ast.Argument: - p.printNodeArgument(n) - - // name - - case *ast.NameNamePart: - p.printNameNamePart(n) - case *ast.NameName: - p.printNameName(n) - case *ast.NameFullyQualified: - p.printNameFullyQualified(n) - case *ast.NameRelative: - p.printNameRelative(n) - - // scalar - - case *ast.ScalarLnumber: - p.printScalarLNumber(n) - case *ast.ScalarDnumber: - p.printScalarDNumber(n) - case *ast.ScalarString: - p.printScalarString(n) - case *ast.ScalarEncapsedStringPart: - p.printScalarEncapsedStringPart(n) - case *ast.ScalarEncapsed: - p.printScalarEncapsed(n) - case *ast.ScalarHeredoc: - p.printScalarHeredoc(n) - case *ast.ScalarMagicConstant: - p.printScalarMagicConstant(n) - - // assign - - case *ast.ExprAssign: - p.printAssignAssign(n) - case *ast.ExprAssignReference: - p.printAssignReference(n) - case *ast.ExprAssignBitwiseAnd: - p.printAssignBitwiseAnd(n) - case *ast.ExprAssignBitwiseOr: - p.printAssignBitwiseOr(n) - case *ast.ExprAssignBitwiseXor: - p.printAssignBitwiseXor(n) - case *ast.ExprAssignConcat: - p.printAssignConcat(n) - case *ast.ExprAssignDiv: - p.printAssignDiv(n) - case *ast.ExprAssignMinus: - p.printAssignMinus(n) - case *ast.ExprAssignMod: - p.printAssignMod(n) - case *ast.ExprAssignMul: - p.printAssignMul(n) - case *ast.ExprAssignPlus: - p.printAssignPlus(n) - case *ast.ExprAssignPow: - p.printAssignPow(n) - case *ast.ExprAssignShiftLeft: - p.printAssignShiftLeft(n) - case *ast.ExprAssignShiftRight: - p.printAssignShiftRight(n) - - // binary - - case *ast.ExprBinaryBitwiseAnd: - p.printBinaryBitwiseAnd(n) - case *ast.ExprBinaryBitwiseOr: - p.printBinaryBitwiseOr(n) - case *ast.ExprBinaryBitwiseXor: - p.printBinaryBitwiseXor(n) - case *ast.ExprBinaryBooleanAnd: - p.printBinaryBooleanAnd(n) - case *ast.ExprBinaryBooleanOr: - p.printBinaryBooleanOr(n) - case *ast.ExprBinaryCoalesce: - p.printBinaryCoalesce(n) - case *ast.ExprBinaryConcat: - p.printBinaryConcat(n) - case *ast.ExprBinaryDiv: - p.printBinaryDiv(n) - case *ast.ExprBinaryEqual: - p.printBinaryEqual(n) - case *ast.ExprBinaryGreaterOrEqual: - p.printBinaryGreaterOrEqual(n) - case *ast.ExprBinaryGreater: - p.printBinaryGreater(n) - case *ast.ExprBinaryIdentical: - p.printBinaryIdentical(n) - case *ast.ExprBinaryLogicalAnd: - p.printBinaryLogicalAnd(n) - case *ast.ExprBinaryLogicalOr: - p.printBinaryLogicalOr(n) - case *ast.ExprBinaryLogicalXor: - p.printBinaryLogicalXor(n) - case *ast.ExprBinaryMinus: - p.printBinaryMinus(n) - case *ast.ExprBinaryMod: - p.printBinaryMod(n) - case *ast.ExprBinaryMul: - p.printBinaryMul(n) - case *ast.ExprBinaryNotEqual: - p.printBinaryNotEqual(n) - case *ast.ExprBinaryNotIdentical: - p.printBinaryNotIdentical(n) - case *ast.ExprBinaryPlus: - p.printBinaryPlus(n) - case *ast.ExprBinaryPow: - p.printBinaryPow(n) - case *ast.ExprBinaryShiftLeft: - p.printBinaryShiftLeft(n) - case *ast.ExprBinaryShiftRight: - p.printBinaryShiftRight(n) - case *ast.ExprBinarySmallerOrEqual: - p.printBinarySmallerOrEqual(n) - case *ast.ExprBinarySmaller: - p.printBinarySmaller(n) - case *ast.ExprBinarySpaceship: - p.printBinarySpaceship(n) - - // cast - - case *ast.ExprCastArray: - p.printArray(n) - case *ast.ExprCastBool: - p.printBool(n) - case *ast.ExprCastDouble: - p.printDouble(n) - case *ast.ExprCastInt: - p.printInt(n) - case *ast.ExprCastObject: - p.printObject(n) - case *ast.ExprCastString: - p.printString(n) - case *ast.ExprCastUnset: - p.printUnset(n) - - // expr - - case *ast.ExprArrayDimFetch: - p.printExprArrayDimFetch(n) - case *ast.ExprArrayItem: - p.printExprArrayItem(n) - case *ast.ExprArray: - p.printExprArray(n) - case *ast.ExprBitwiseNot: - p.printExprBitwiseNot(n) - case *ast.ExprBooleanNot: - p.printExprBooleanNot(n) - case *ast.ExprClassConstFetch: - p.printExprClassConstFetch(n) - case *ast.ExprClone: - p.printExprClone(n) - case *ast.ExprClosureUse: - p.printExprClosureUse(n) - case *ast.ExprClosure: - p.printExprClosure(n) - case *ast.ExprConstFetch: - p.printExprConstFetch(n) - case *ast.ExprEmpty: - p.printExprEmpty(n) - case *ast.ExprErrorSuppress: - p.printExprErrorSuppress(n) - case *ast.ExprEval: - p.printExprEval(n) - case *ast.ExprExit: - p.printExprExit(n) - case *ast.ExprFunctionCall: - p.printExprFunctionCall(n) - case *ast.ExprInclude: - p.printExprInclude(n) - case *ast.ExprIncludeOnce: - p.printExprIncludeOnce(n) - case *ast.ExprInstanceOf: - p.printExprInstanceOf(n) - case *ast.ExprIsset: - p.printExprIsset(n) - case *ast.ExprList: - p.printExprList(n) - case *ast.ExprMethodCall: - p.printExprMethodCall(n) - case *ast.ExprNew: - p.printExprNew(n) - case *ast.ExprPostDec: - p.printExprPostDec(n) - case *ast.ExprPostInc: - p.printExprPostInc(n) - case *ast.ExprPreDec: - p.printExprPreDec(n) - case *ast.ExprPreInc: - p.printExprPreInc(n) - case *ast.ExprPrint: - p.printExprPrint(n) - case *ast.ExprPropertyFetch: - p.printExprPropertyFetch(n) - case *ast.ExprReference: - p.printExprReference(n) - case *ast.ExprRequire: - p.printExprRequire(n) - case *ast.ExprRequireOnce: - p.printExprRequireOnce(n) - case *ast.ExprShellExec: - p.printExprShellExec(n) - case *ast.ExprStaticCall: - p.printExprStaticCall(n) - case *ast.ExprStaticPropertyFetch: - p.printExprStaticPropertyFetch(n) - case *ast.ExprTernary: - p.printExprTernary(n) - case *ast.ExprUnaryMinus: - p.printExprUnaryMinus(n) - case *ast.ExprUnaryPlus: - p.printExprUnaryPlus(n) - case *ast.ExprVariable: - p.printExprVariable(n) - case *ast.ExprYieldFrom: - p.printExprYieldFrom(n) - case *ast.ExprYield: - p.printExprYield(n) - - // stmt - - case *ast.StmtBreak: - p.printStmtBreak(n) - case *ast.StmtCase: - p.printStmtCase(n) - case *ast.StmtCatch: - p.printStmtCatch(n) - case *ast.StmtClassMethod: - p.printStmtClassMethod(n) - case *ast.StmtClass: - p.printStmtClass(n) - case *ast.StmtClassConstList: - p.printStmtClassConstList(n) - case *ast.StmtConstant: - p.printStmtConstant(n) - case *ast.StmtContinue: - p.printStmtContinue(n) - case *ast.StmtDeclare: - p.printStmtDeclare(n) - case *ast.StmtDefault: - p.printStmtDefault(n) - case *ast.StmtDo: - p.printStmtDo(n) - case *ast.StmtEcho: - p.printStmtEcho(n) - case *ast.StmtElseIf: - p.printStmtElseif(n) - case *ast.StmtElse: - p.printStmtElse(n) - case *ast.StmtExpression: - p.printStmtExpression(n) - case *ast.StmtFinally: - p.printStmtFinally(n) - case *ast.StmtFor: - p.printStmtFor(n) - case *ast.StmtForeach: - p.printStmtForeach(n) - case *ast.StmtFunction: - p.printStmtFunction(n) - case *ast.StmtGlobal: - p.printStmtGlobal(n) - case *ast.StmtGoto: - p.printStmtGoto(n) - case *ast.StmtHaltCompiler: - p.printStmtHaltCompiler(n) - case *ast.StmtIf: - p.printStmtIf(n) - case *ast.StmtInlineHtml: - p.printStmtInlineHTML(n) - case *ast.StmtInterface: - p.printStmtInterface(n) - case *ast.StmtLabel: - p.printStmtLabel(n) - case *ast.StmtNamespace: - p.printStmtNamespace(n) - case *ast.StmtNop: - p.printStmtNop(n) - case *ast.StmtPropertyList: - p.printStmtPropertyList(n) - case *ast.StmtProperty: - p.printStmtProperty(n) - case *ast.StmtReturn: - p.printStmtReturn(n) - case *ast.StmtStaticVar: - p.printStmtStaticVar(n) - case *ast.StmtStatic: - p.printStmtStatic(n) - case *ast.StmtStmtList: - p.printStmtStmtList(n) - case *ast.StmtSwitch: - p.printStmtSwitch(n) - case *ast.StmtThrow: - p.printStmtThrow(n) - case *ast.StmtTraitMethodRef: - p.printStmtTraitMethodRef(n) - case *ast.StmtTraitUseAlias: - p.printStmtTraitUseAlias(n) - case *ast.StmtTraitUsePrecedence: - p.printStmtTraitUsePrecedence(n) - case *ast.StmtTraitUse: - p.printStmtTraitUse(n) - case *ast.StmtTrait: - p.printStmtTrait(n) - case *ast.StmtTry: - p.printStmtTry(n) - case *ast.StmtUnset: - p.printStmtUnset(n) - case *ast.StmtUse: - p.printStmtUse(n) - case *ast.StmtGroupUse: - p.printStmtGroupUse(n) - case *ast.StmtUseDeclaration: - p.printStmtUseDeclaration(n) - case *ast.StmtWhile: - p.printStmtWhile(n) - } -} - -// node - -func (p *PrettyPrinter) printNodeRoot(n ast.Vertex) { - var stmts []ast.Vertex - v := n.(*ast.Root) - - if len(v.Stmts) > 0 { - firstStmt := v.Stmts[0] - stmts = v.Stmts[1:] - - switch fs := firstStmt.(type) { - case *ast.StmtInlineHtml: - io.WriteString(p.w, string(fs.Value)) - io.WriteString(p.w, " 0 { - io.WriteString(p.w, "\\") - } - - p.Print(part) - } -} - -func (p *PrettyPrinter) printNameFullyQualified(n ast.Vertex) { - nn := n.(*ast.NameFullyQualified) - - for _, part := range nn.Parts { - io.WriteString(p.w, "\\") - p.Print(part) - } -} - -func (p *PrettyPrinter) printNameRelative(n ast.Vertex) { - nn := n.(*ast.NameRelative) - - io.WriteString(p.w, "namespace") - for _, part := range nn.Parts { - io.WriteString(p.w, "\\") - p.Print(part) - } -} - -// scalar - -func (p *PrettyPrinter) printScalarLNumber(n ast.Vertex) { - v := string(n.(*ast.ScalarLnumber).Value) - io.WriteString(p.w, v) -} - -func (p *PrettyPrinter) printScalarDNumber(n ast.Vertex) { - v := string(n.(*ast.ScalarDnumber).Value) - io.WriteString(p.w, v) -} - -func (p *PrettyPrinter) printScalarString(n ast.Vertex) { - v := string(n.(*ast.ScalarString).Value) - - io.WriteString(p.w, v) -} - -func (p *PrettyPrinter) printScalarEncapsedStringPart(n ast.Vertex) { - v := string(n.(*ast.ScalarEncapsedStringPart).Value) - io.WriteString(p.w, v) -} - -func (p *PrettyPrinter) printScalarEncapsed(n ast.Vertex) { - nn := n.(*ast.ScalarEncapsed) - io.WriteString(p.w, "\"") - - for _, part := range nn.Parts { - switch part.(type) { - case *ast.ScalarEncapsedStringPart: - p.Print(part) - default: - io.WriteString(p.w, "{") - p.Print(part) - io.WriteString(p.w, "}") - } - } - - io.WriteString(p.w, "\"") -} - -func (p *PrettyPrinter) printScalarHeredoc(n ast.Vertex) { - nn := n.(*ast.ScalarHeredoc) - - io.WriteString(p.w, string(nn.OpenHeredocTkn.Value)) - - for _, part := range nn.Parts { - switch part.(type) { - case *ast.ScalarEncapsedStringPart: - p.Print(part) - default: - io.WriteString(p.w, "{") - p.Print(part) - io.WriteString(p.w, "}") - } - } - - io.WriteString(p.w, strings.Trim(string(nn.OpenHeredocTkn.Value), "<\"'\n")) -} - -func (p *PrettyPrinter) printScalarMagicConstant(n ast.Vertex) { - v := string(n.(*ast.ScalarMagicConstant).Value) - io.WriteString(p.w, v) -} - -// Assign - -func (p *PrettyPrinter) printAssignAssign(n ast.Vertex) { - nn := n.(*ast.ExprAssign) - p.Print(nn.Var) - io.WriteString(p.w, " = ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignReference(n ast.Vertex) { - nn := n.(*ast.ExprAssignReference) - p.Print(nn.Var) - io.WriteString(p.w, " =& ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignBitwiseAnd(n ast.Vertex) { - nn := n.(*ast.ExprAssignBitwiseAnd) - p.Print(nn.Var) - io.WriteString(p.w, " &= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignBitwiseOr(n ast.Vertex) { - nn := n.(*ast.ExprAssignBitwiseOr) - p.Print(nn.Var) - io.WriteString(p.w, " |= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignBitwiseXor(n ast.Vertex) { - nn := n.(*ast.ExprAssignBitwiseXor) - p.Print(nn.Var) - io.WriteString(p.w, " ^= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignConcat(n ast.Vertex) { - nn := n.(*ast.ExprAssignConcat) - p.Print(nn.Var) - io.WriteString(p.w, " .= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignDiv(n ast.Vertex) { - nn := n.(*ast.ExprAssignDiv) - p.Print(nn.Var) - io.WriteString(p.w, " /= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignMinus(n ast.Vertex) { - nn := n.(*ast.ExprAssignMinus) - p.Print(nn.Var) - io.WriteString(p.w, " -= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignMod(n ast.Vertex) { - nn := n.(*ast.ExprAssignMod) - p.Print(nn.Var) - io.WriteString(p.w, " %= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignMul(n ast.Vertex) { - nn := n.(*ast.ExprAssignMul) - p.Print(nn.Var) - io.WriteString(p.w, " *= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignPlus(n ast.Vertex) { - nn := n.(*ast.ExprAssignPlus) - p.Print(nn.Var) - io.WriteString(p.w, " += ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignPow(n ast.Vertex) { - nn := n.(*ast.ExprAssignPow) - p.Print(nn.Var) - io.WriteString(p.w, " **= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignShiftLeft(n ast.Vertex) { - nn := n.(*ast.ExprAssignShiftLeft) - p.Print(nn.Var) - io.WriteString(p.w, " <<= ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printAssignShiftRight(n ast.Vertex) { - nn := n.(*ast.ExprAssignShiftRight) - p.Print(nn.Var) - io.WriteString(p.w, " >>= ") - p.Print(nn.Expr) -} - -// binary - -func (p *PrettyPrinter) printBinaryBitwiseAnd(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBitwiseAnd) - - p.Print(nn.Left) - io.WriteString(p.w, " & ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryBitwiseOr(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBitwiseOr) - - p.Print(nn.Left) - io.WriteString(p.w, " | ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryBitwiseXor(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBitwiseXor) - - p.Print(nn.Left) - io.WriteString(p.w, " ^ ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryBooleanAnd(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBooleanAnd) - - p.Print(nn.Left) - io.WriteString(p.w, " && ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryBooleanOr(n ast.Vertex) { - nn := n.(*ast.ExprBinaryBooleanOr) - - p.Print(nn.Left) - io.WriteString(p.w, " || ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryCoalesce(n ast.Vertex) { - nn := n.(*ast.ExprBinaryCoalesce) - - p.Print(nn.Left) - io.WriteString(p.w, " ?? ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryConcat(n ast.Vertex) { - nn := n.(*ast.ExprBinaryConcat) - - p.Print(nn.Left) - io.WriteString(p.w, " . ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryDiv(n ast.Vertex) { - nn := n.(*ast.ExprBinaryDiv) - - p.Print(nn.Left) - io.WriteString(p.w, " / ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinaryEqual) - - p.Print(nn.Left) - io.WriteString(p.w, " == ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryGreaterOrEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinaryGreaterOrEqual) - - p.Print(nn.Left) - io.WriteString(p.w, " >= ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryGreater(n ast.Vertex) { - nn := n.(*ast.ExprBinaryGreater) - - p.Print(nn.Left) - io.WriteString(p.w, " > ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryIdentical(n ast.Vertex) { - nn := n.(*ast.ExprBinaryIdentical) - - p.Print(nn.Left) - io.WriteString(p.w, " === ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryLogicalAnd(n ast.Vertex) { - nn := n.(*ast.ExprBinaryLogicalAnd) - - p.Print(nn.Left) - io.WriteString(p.w, " and ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryLogicalOr(n ast.Vertex) { - nn := n.(*ast.ExprBinaryLogicalOr) - - p.Print(nn.Left) - io.WriteString(p.w, " or ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryLogicalXor(n ast.Vertex) { - nn := n.(*ast.ExprBinaryLogicalXor) - - p.Print(nn.Left) - io.WriteString(p.w, " xor ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryMinus(n ast.Vertex) { - nn := n.(*ast.ExprBinaryMinus) - - p.Print(nn.Left) - io.WriteString(p.w, " - ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryMod(n ast.Vertex) { - nn := n.(*ast.ExprBinaryMod) - - p.Print(nn.Left) - io.WriteString(p.w, " % ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryMul(n ast.Vertex) { - nn := n.(*ast.ExprBinaryMul) - - p.Print(nn.Left) - io.WriteString(p.w, " * ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryNotEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinaryNotEqual) - - p.Print(nn.Left) - io.WriteString(p.w, " != ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryNotIdentical(n ast.Vertex) { - nn := n.(*ast.ExprBinaryNotIdentical) - - p.Print(nn.Left) - io.WriteString(p.w, " !== ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryPlus(n ast.Vertex) { - nn := n.(*ast.ExprBinaryPlus) - - p.Print(nn.Left) - io.WriteString(p.w, " + ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryPow(n ast.Vertex) { - nn := n.(*ast.ExprBinaryPow) - - p.Print(nn.Left) - io.WriteString(p.w, " ** ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryShiftLeft(n ast.Vertex) { - nn := n.(*ast.ExprBinaryShiftLeft) - - p.Print(nn.Left) - io.WriteString(p.w, " << ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinaryShiftRight(n ast.Vertex) { - nn := n.(*ast.ExprBinaryShiftRight) - - p.Print(nn.Left) - io.WriteString(p.w, " >> ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinarySmallerOrEqual(n ast.Vertex) { - nn := n.(*ast.ExprBinarySmallerOrEqual) - - p.Print(nn.Left) - io.WriteString(p.w, " <= ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinarySmaller(n ast.Vertex) { - nn := n.(*ast.ExprBinarySmaller) - - p.Print(nn.Left) - io.WriteString(p.w, " < ") - p.Print(nn.Right) -} - -func (p *PrettyPrinter) printBinarySpaceship(n ast.Vertex) { - nn := n.(*ast.ExprBinarySpaceship) - - p.Print(nn.Left) - io.WriteString(p.w, " <=> ") - p.Print(nn.Right) -} - -// cast - -func (p *PrettyPrinter) printArray(n ast.Vertex) { - nn := n.(*ast.ExprCastArray) - - io.WriteString(p.w, "(array)") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printBool(n ast.Vertex) { - nn := n.(*ast.ExprCastBool) - - io.WriteString(p.w, "(bool)") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printDouble(n ast.Vertex) { - nn := n.(*ast.ExprCastDouble) - - io.WriteString(p.w, "(float)") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printInt(n ast.Vertex) { - nn := n.(*ast.ExprCastInt) - - io.WriteString(p.w, "(int)") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printObject(n ast.Vertex) { - nn := n.(*ast.ExprCastObject) - - io.WriteString(p.w, "(object)") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printString(n ast.Vertex) { - nn := n.(*ast.ExprCastString) - - io.WriteString(p.w, "(string)") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printUnset(n ast.Vertex) { - nn := n.(*ast.ExprCastUnset) - - io.WriteString(p.w, "(unset)") - p.Print(nn.Expr) -} - -// expr - -func (p *PrettyPrinter) printExprArrayDimFetch(n ast.Vertex) { - nn := n.(*ast.ExprArrayDimFetch) - p.Print(nn.Var) - io.WriteString(p.w, "[") - p.Print(nn.Dim) - io.WriteString(p.w, "]") -} - -func (p *PrettyPrinter) printExprArrayItem(n ast.Vertex) { - nn := n.(*ast.ExprArrayItem) - - if nn.Key != nil { - p.Print(nn.Key) - io.WriteString(p.w, " => ") - } - - p.Print(nn.Val) -} - -func (p *PrettyPrinter) printExprArray(n ast.Vertex) { - nn := n.(*ast.ExprArray) - - io.WriteString(p.w, "array(") - p.joinPrint(", ", nn.Items) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprBitwiseNot(n ast.Vertex) { - nn := n.(*ast.ExprBitwiseNot) - io.WriteString(p.w, "~") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprBooleanNot(n ast.Vertex) { - nn := n.(*ast.ExprBooleanNot) - io.WriteString(p.w, "!") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprClassConstFetch(n ast.Vertex) { - nn := n.(*ast.ExprClassConstFetch) - - p.Print(nn.Class) - io.WriteString(p.w, "::") - io.WriteString(p.w, string(nn.ConstantName.(*ast.Identifier).Value)) -} - -func (p *PrettyPrinter) printExprClone(n ast.Vertex) { - nn := n.(*ast.ExprClone) - - io.WriteString(p.w, "clone ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprClosureUse(n ast.Vertex) { - nn := n.(*ast.ExprClosureUse) - - io.WriteString(p.w, "use (") - p.joinPrint(", ", nn.Uses) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprClosure(n ast.Vertex) { - nn := n.(*ast.ExprClosure) - - if nn.StaticTkn != nil { - io.WriteString(p.w, "static ") - } - - io.WriteString(p.w, "function ") - - if nn.AmpersandTkn != nil { - io.WriteString(p.w, "&") - } - - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Params) - io.WriteString(p.w, ")") - - if nn.ClosureUse != nil { - io.WriteString(p.w, " ") - p.Print(nn.ClosureUse) - } - - if nn.ReturnType != nil { - io.WriteString(p.w, ": ") - p.Print(nn.ReturnType) - } - - io.WriteString(p.w, " {\n") - p.printNodes(nn.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "}") -} - -func (p *PrettyPrinter) printExprConstFetch(n ast.Vertex) { - nn := n.(*ast.ExprConstFetch) - - p.Print(nn.Const) -} - -func (p *PrettyPrinter) printExprEmpty(n ast.Vertex) { - nn := n.(*ast.ExprEmpty) - - io.WriteString(p.w, "empty(") - p.Print(nn.Expr) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprErrorSuppress(n ast.Vertex) { - nn := n.(*ast.ExprErrorSuppress) - - io.WriteString(p.w, "@") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprEval(n ast.Vertex) { - nn := n.(*ast.ExprEval) - - io.WriteString(p.w, "eval(") - p.Print(nn.Expr) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprExit(n ast.Vertex) { - nn := n.(*ast.ExprExit) - - io.WriteString(p.w, "exit(") - p.Print(nn.Expr) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprFunctionCall(n ast.Vertex) { - nn := n.(*ast.ExprFunctionCall) - - p.Print(nn.Function) - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Arguments) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprInclude(n ast.Vertex) { - nn := n.(*ast.ExprInclude) - - io.WriteString(p.w, "include ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprIncludeOnce(n ast.Vertex) { - nn := n.(*ast.ExprIncludeOnce) - - io.WriteString(p.w, "include_once ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprInstanceOf(n ast.Vertex) { - nn := n.(*ast.ExprInstanceOf) - - p.Print(nn.Expr) - io.WriteString(p.w, " instanceof ") - p.Print(nn.Class) -} - -func (p *PrettyPrinter) printExprIsset(n ast.Vertex) { - nn := n.(*ast.ExprIsset) - - io.WriteString(p.w, "isset(") - p.joinPrint(", ", nn.Vars) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprList(n ast.Vertex) { - nn := n.(*ast.ExprList) - - io.WriteString(p.w, "list(") - p.joinPrint(", ", nn.Items) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprMethodCall(n ast.Vertex) { - nn := n.(*ast.ExprMethodCall) - - p.Print(nn.Var) - io.WriteString(p.w, "->") - p.Print(nn.Method) - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Arguments) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprNew(n ast.Vertex) { - nn := n.(*ast.ExprNew) - - io.WriteString(p.w, "new ") - p.Print(nn.Class) - - if nn.Arguments != nil { - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Arguments) - io.WriteString(p.w, ")") - } -} - -func (p *PrettyPrinter) printExprPostDec(n ast.Vertex) { - nn := n.(*ast.ExprPostDec) - - p.Print(nn.Var) - io.WriteString(p.w, "--") -} - -func (p *PrettyPrinter) printExprPostInc(n ast.Vertex) { - nn := n.(*ast.ExprPostInc) - - p.Print(nn.Var) - io.WriteString(p.w, "++") -} - -func (p *PrettyPrinter) printExprPreDec(n ast.Vertex) { - nn := n.(*ast.ExprPreDec) - - io.WriteString(p.w, "--") - p.Print(nn.Var) -} - -func (p *PrettyPrinter) printExprPreInc(n ast.Vertex) { - nn := n.(*ast.ExprPreInc) - - io.WriteString(p.w, "++") - p.Print(nn.Var) -} - -func (p *PrettyPrinter) printExprPrint(n ast.Vertex) { - nn := n.(*ast.ExprPrint) - - io.WriteString(p.w, "print(") - p.Print(nn.Expr) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprPropertyFetch(n ast.Vertex) { - nn := n.(*ast.ExprPropertyFetch) - - p.Print(nn.Var) - io.WriteString(p.w, "->") - p.Print(nn.Property) -} - -func (p *PrettyPrinter) printExprReference(n ast.Vertex) { - nn := n.(*ast.ExprReference) - - io.WriteString(p.w, "&") - p.Print(nn.Var) -} - -func (p *PrettyPrinter) printExprRequire(n ast.Vertex) { - nn := n.(*ast.ExprRequire) - - io.WriteString(p.w, "require ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprRequireOnce(n ast.Vertex) { - nn := n.(*ast.ExprRequireOnce) - - io.WriteString(p.w, "require_once ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprShellExec(n ast.Vertex) { - nn := n.(*ast.ExprShellExec) - - io.WriteString(p.w, "`") - for _, part := range nn.Parts { - switch part.(type) { - case *ast.ScalarEncapsedStringPart: - p.Print(part) - default: - io.WriteString(p.w, "{") - p.Print(part) - io.WriteString(p.w, "}") - } - } - io.WriteString(p.w, "`") -} - -func (p *PrettyPrinter) printExprStaticCall(n ast.Vertex) { - nn := n.(*ast.ExprStaticCall) - - p.Print(nn.Class) - io.WriteString(p.w, "::") - p.Print(nn.Call) - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Arguments) - io.WriteString(p.w, ")") -} - -func (p *PrettyPrinter) printExprStaticPropertyFetch(n ast.Vertex) { - nn := n.(*ast.ExprStaticPropertyFetch) - - p.Print(nn.Class) - io.WriteString(p.w, "::") - p.Print(nn.Property) -} - -func (p *PrettyPrinter) printExprTernary(n ast.Vertex) { - nn := n.(*ast.ExprTernary) - - p.Print(nn.Condition) - io.WriteString(p.w, " ?") - - if nn.IfTrue != nil { - io.WriteString(p.w, " ") - p.Print(nn.IfTrue) - io.WriteString(p.w, " ") - } - - io.WriteString(p.w, ": ") - p.Print(nn.IfFalse) -} - -func (p *PrettyPrinter) printExprUnaryMinus(n ast.Vertex) { - nn := n.(*ast.ExprUnaryMinus) - - io.WriteString(p.w, "-") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprUnaryPlus(n ast.Vertex) { - nn := n.(*ast.ExprUnaryPlus) - - io.WriteString(p.w, "+") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprVariable(n ast.Vertex) { - nn := n.(*ast.ExprVariable) - io.WriteString(p.w, "$") - p.Print(nn.VarName) -} - -func (p *PrettyPrinter) printExprYieldFrom(n ast.Vertex) { - nn := n.(*ast.ExprYieldFrom) - - io.WriteString(p.w, "yield from ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printExprYield(n ast.Vertex) { - nn := n.(*ast.ExprYield) - - io.WriteString(p.w, "yield ") - - if nn.Key != nil { - p.Print(nn.Key) - io.WriteString(p.w, " => ") - } - - p.Print(nn.Value) -} - -// smtm - -func (p *PrettyPrinter) printStmtAltElseIf(n ast.Vertex) { - nn := n.(*ast.StmtElseIf) - - io.WriteString(p.w, "elseif (") - p.Print(nn.Cond) - io.WriteString(p.w, ") :") - - if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { - io.WriteString(p.w, "\n") - p.printNodes(s) - } -} - -func (p *PrettyPrinter) printStmtAltElse(n ast.Vertex) { - nn := n.(*ast.StmtElse) - - io.WriteString(p.w, "else :") - - if s := nn.Stmt.(*ast.StmtStmtList).Stmts; len(s) > 0 { - io.WriteString(p.w, "\n") - p.printNodes(s) - } -} - -func (p *PrettyPrinter) printStmtAltIf(n ast.Vertex) { - nn := n.(*ast.StmtIf) - - io.WriteString(p.w, "if (") - p.Print(nn.Cond) - io.WriteString(p.w, ") :\n") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - - for _, elseif := range nn.ElseIf { - io.WriteString(p.w, "\n") - p.printIndent() - p.Print(elseif) - } - - if nn.Else != nil { - io.WriteString(p.w, "\n") - p.printIndent() - p.Print(nn.Else) - } - - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "endif;") -} - -func (p *PrettyPrinter) printStmtBreak(n ast.Vertex) { - nn := n.(*ast.StmtBreak) - - io.WriteString(p.w, "break") - if nn.Expr != nil { - io.WriteString(p.w, " ") - p.Print(nn.Expr) - } - - io.WriteString(p.w, ";") -} - -func (p *PrettyPrinter) printStmtCase(n ast.Vertex) { - nn := n.(*ast.StmtCase) - - io.WriteString(p.w, "case ") - p.Print(nn.Cond) - io.WriteString(p.w, ":") - - if len(nn.Stmts) > 0 { - io.WriteString(p.w, "\n") - p.printNodes(nn.Stmts) - } -} - -func (p *PrettyPrinter) printStmtCatch(n ast.Vertex) { - nn := n.(*ast.StmtCatch) - - io.WriteString(p.w, "catch (") - p.joinPrint(" | ", nn.Types) - io.WriteString(p.w, " ") - p.Print(nn.Var) - io.WriteString(p.w, ") {\n") - p.printNodes(nn.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "}") -} - -func (p *PrettyPrinter) printStmtClassMethod(n ast.Vertex) { - nn := n.(*ast.StmtClassMethod) - - if nn.Modifiers != nil { - p.joinPrint(" ", nn.Modifiers) - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "function ") - - if nn.AmpersandTkn != nil { - io.WriteString(p.w, "&") - } - - p.Print(nn.MethodName) - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Params) - io.WriteString(p.w, ")") - - if nn.ReturnType != nil { - io.WriteString(p.w, ": ") - p.Print(nn.ReturnType) - } - - switch s := nn.Stmt.(type) { - case *ast.StmtStmtList: - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "{\n") - p.printNodes(s.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "}") - default: - p.Print(s) - } -} - -func (p *PrettyPrinter) printStmtClass(n ast.Vertex) { - nn := n.(*ast.StmtClass) - - if nn.Modifiers != nil { - p.joinPrint(" ", nn.Modifiers) - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "class") - - if nn.ClassName != nil { - io.WriteString(p.w, " ") - p.Print(nn.ClassName) - } - - if nn.Arguments != nil { - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Arguments) - io.WriteString(p.w, ")") - } - - if nn.Extends != nil { - io.WriteString(p.w, " extends ") - p.Print(nn.Extends.(*ast.StmtClassExtends).ClassName) - } - - if nn.Implements != nil { - io.WriteString(p.w, " implements ") - p.joinPrint(", ", nn.Implements.(*ast.StmtClassImplements).InterfaceNames) - } - - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "{\n") - p.printNodes(nn.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "}") -} - -func (p *PrettyPrinter) printStmtClassConstList(n ast.Vertex) { - nn := n.(*ast.StmtClassConstList) - - if nn.Modifiers != nil { - p.joinPrint(" ", nn.Modifiers) - io.WriteString(p.w, " ") - } - io.WriteString(p.w, "const ") - - p.joinPrint(", ", nn.Consts) - - io.WriteString(p.w, ";") -} - -func (p *PrettyPrinter) printStmtConstant(n ast.Vertex) { - nn := n.(*ast.StmtConstant) - - p.Print(nn.Name) - io.WriteString(p.w, " = ") - p.Print(nn.Expr) -} - -func (p *PrettyPrinter) printStmtContinue(n ast.Vertex) { - nn := n.(*ast.StmtContinue) - - io.WriteString(p.w, "continue") - if nn.Expr != nil { - io.WriteString(p.w, " ") - p.Print(nn.Expr) - } - - io.WriteString(p.w, ";") -} - -func (p *PrettyPrinter) printStmtDeclare(n ast.Vertex) { - nn := n.(*ast.StmtDeclare) - - io.WriteString(p.w, "declare(") - p.joinPrint(", ", nn.Consts) - io.WriteString(p.w, ")") - - switch s := nn.Stmt.(type) { - case *ast.StmtNop: - p.Print(s) - break - case *ast.StmtStmtList: - io.WriteString(p.w, " ") - p.Print(s) - default: - io.WriteString(p.w, "\n") - p.indentDepth++ - p.printIndent() - p.Print(s) - p.indentDepth-- - } -} - -func (p *PrettyPrinter) printStmtDefault(n ast.Vertex) { - nn := n.(*ast.StmtDefault) - io.WriteString(p.w, "default:") - - if len(nn.Stmts) > 0 { - io.WriteString(p.w, "\n") - p.printNodes(nn.Stmts) - } -} - -func (p *PrettyPrinter) printStmtDo(n ast.Vertex) { - nn := n.(*ast.StmtDo) - io.WriteString(p.w, "do") - - switch s := nn.Stmt.(type) { - case *ast.StmtStmtList: - io.WriteString(p.w, " ") - p.Print(s) - io.WriteString(p.w, " ") - default: - io.WriteString(p.w, "\n") - p.indentDepth++ - p.printIndent() - p.Print(s) - p.indentDepth-- - io.WriteString(p.w, "\n") - p.printIndent() - } - - io.WriteString(p.w, "while (") - p.Print(nn.Cond) - io.WriteString(p.w, ");") -} - -func (p *PrettyPrinter) printStmtEcho(n ast.Vertex) { - nn := n.(*ast.StmtEcho) - io.WriteString(p.w, "echo ") - p.joinPrint(", ", nn.Exprs) - io.WriteString(p.w, ";") -} - -func (p *PrettyPrinter) printStmtElseif(n ast.Vertex) { - nn := n.(*ast.StmtElseIf) - - if nn.Alt { - p.printStmtAltElseIf(nn) - return - } - - io.WriteString(p.w, "elseif (") - p.Print(nn.Cond) - io.WriteString(p.w, ")") - - switch s := nn.Stmt.(type) { - case *ast.StmtNop: - p.Print(s) - break - case *ast.StmtStmtList: - io.WriteString(p.w, " ") - p.Print(s) - default: - io.WriteString(p.w, "\n") - p.indentDepth++ - p.printIndent() - p.Print(s) - p.indentDepth-- - } -} - -func (p *PrettyPrinter) printStmtElse(n ast.Vertex) { - nn := n.(*ast.StmtElse) - - if nn.Alt { - p.printStmtAltElse(nn) - return - } - - io.WriteString(p.w, "else") - - switch s := nn.Stmt.(type) { - case *ast.StmtNop: - p.Print(s) - break - case *ast.StmtStmtList: - io.WriteString(p.w, " ") - p.Print(s) - default: - io.WriteString(p.w, "\n") - p.indentDepth++ - p.printIndent() - p.Print(s) - p.indentDepth-- - } -} - -func (p *PrettyPrinter) printStmtExpression(n ast.Vertex) { - nn := n.(*ast.StmtExpression) - - p.Print(nn.Expr) - - io.WriteString(p.w, ";") -} - -func (p *PrettyPrinter) printStmtFinally(n ast.Vertex) { - nn := n.(*ast.StmtFinally) - - io.WriteString(p.w, "finally {\n") - p.printNodes(nn.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "}") -} - -func (p *PrettyPrinter) printStmtFor(n ast.Vertex) { - nn := n.(*ast.StmtFor) - - if nn.Alt { - p.printStmtAltFor(nn) - return - } - - io.WriteString(p.w, "for (") - p.joinPrint(", ", nn.Init) - io.WriteString(p.w, "; ") - p.joinPrint(", ", nn.Cond) - io.WriteString(p.w, "; ") - p.joinPrint(", ", nn.Loop) - io.WriteString(p.w, ")") - - switch s := nn.Stmt.(type) { - case *ast.StmtNop: - p.Print(s) - break - case *ast.StmtStmtList: - io.WriteString(p.w, " ") - p.Print(s) - default: - io.WriteString(p.w, "\n") - p.indentDepth++ - p.printIndent() - p.Print(s) - p.indentDepth-- - } -} - -func (p *PrettyPrinter) printStmtAltFor(n ast.Vertex) { - nn := n.(*ast.StmtFor) - - io.WriteString(p.w, "for (") - p.joinPrint(", ", nn.Init) - io.WriteString(p.w, "; ") - p.joinPrint(", ", nn.Cond) - io.WriteString(p.w, "; ") - p.joinPrint(", ", nn.Loop) - io.WriteString(p.w, ") :\n") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - - io.WriteString(p.w, "endfor;") -} - -func (p *PrettyPrinter) printStmtForeach(n ast.Vertex) { - nn := n.(*ast.StmtForeach) - - if nn.Alt { - p.printStmtAltForeach(n) - return - } - - io.WriteString(p.w, "foreach (") - p.Print(nn.Expr) - io.WriteString(p.w, " as ") - - if nn.Key != nil { - p.Print(nn.Key) - io.WriteString(p.w, " => ") - } - - p.Print(nn.Var) - io.WriteString(p.w, ")") - - switch s := nn.Stmt.(type) { - case *ast.StmtNop: - p.Print(s) - break - case *ast.StmtStmtList: - io.WriteString(p.w, " ") - p.Print(s) - default: - io.WriteString(p.w, "\n") - p.indentDepth++ - p.printIndent() - p.Print(s) - p.indentDepth-- - } -} - -func (p *PrettyPrinter) printStmtAltForeach(n ast.Vertex) { - nn := n.(*ast.StmtForeach) - - io.WriteString(p.w, "foreach (") - p.Print(nn.Expr) - io.WriteString(p.w, " as ") - - if nn.Key != nil { - p.Print(nn.Key) - io.WriteString(p.w, " => ") - } - - p.Print(nn.Var) - - io.WriteString(p.w, ") :\n") - - s := nn.Stmt.(*ast.StmtStmtList) - p.printNodes(s.Stmts) - - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "endforeach;") -} - -func (p *PrettyPrinter) printStmtFunction(n ast.Vertex) { - nn := n.(*ast.StmtFunction) - - io.WriteString(p.w, "function ") - - if nn.AmpersandTkn != nil { - io.WriteString(p.w, "&") - } - - p.Print(nn.FunctionName) - - io.WriteString(p.w, "(") - p.joinPrint(", ", nn.Params) - io.WriteString(p.w, ")") - - if nn.ReturnType != nil { - io.WriteString(p.w, ": ") - p.Print(nn.ReturnType) - } - - io.WriteString(p.w, " {\n") - p.printNodes(nn.Stmts) - io.WriteString(p.w, "\n") - p.printIndent() - io.WriteString(p.w, "}") -} - -func (p *PrettyPrinter) printStmtGlobal(n ast.Vertex) { - nn := n.(*ast.StmtGlobal) - - io.WriteString(p.w, "global ") - p.joinPrint(", ", nn.Vars) - io.WriteString(p.w, ";") -} - -func (p *PrettyPrinter) printStmtGoto(n ast.Vertex) { - nn := n.(*ast.StmtGoto) - - io.WriteString(p.w, "goto ") - p.Print(nn.Label) - io.WriteString(p.w, ";") -} - -func (p *PrettyPrinter) printStmtHaltCompiler(n ast.Vertex) { - io.WriteString(p.w, "__halt_compiler();") -} - -func (p *PrettyPrinter) printStmtIf(n ast.Vertex) { - nn := n.(*ast.StmtIf) - - if nn.Alt { - p.printStmtAltIf(nn) - return - } - - io.WriteString(p.w, "if (") - p.Print(nn.Cond) - io.WriteString(p.w, ")") - - switch s := nn.Stmt.(type) { - case *ast.StmtNop: - p.Print(s) - break - case *ast.StmtStmtList: - io.WriteString(p.w, " ") - p.Print(s) - default: - io.WriteString(p.w, "\n") - p.indentDepth++ - p.printIndent() - p.Print(s) - p.indentDepth-- - } - - if nn.ElseIf != nil { - io.WriteString(p.w, "\n") - p.indentDepth-- - p.printNodes(nn.ElseIf) - p.indentDepth++ - } - - if nn.Else != nil { - io.WriteString(p.w, "\n") - p.printIndent() - p.Print(nn.Else) - } -} - -func (p *PrettyPrinter) printStmtInlineHTML(n ast.Vertex) { - nn := n.(*ast.StmtInlineHtml) - - io.WriteString(p.w, "?>") - io.WriteString(p.w, string(nn.Value)) - io.WriteString(p.w, "HTML")}, - &ast.StmtExpression{ - Expr: &ast.ScalarHeredoc{ - Label: []byte("<<<\"LBL\"\n"), - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{Value: []byte("hello world\n")}, - }, - }, - }, - }, - }) - - expected := `
HTML
>= $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -// binary - -func TestPrintBinaryBitwiseAnd(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryBitwiseAnd{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a & $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryBitwiseOr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryBitwiseOr{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a | $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryBitwiseXor(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryBitwiseXor{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a ^ $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryBooleanAnd(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryBooleanAnd{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a && $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryBooleanOr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryBooleanOr{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a || $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryCoalesce(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryCoalesce{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a ?? $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryConcat(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryConcat{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a . $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryDiv(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryDiv{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a / $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryEqual(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryEqual{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a == $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryGreaterOrEqual(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryGreaterOrEqual{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a >= $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryGreater(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryGreater{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a > $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryIdentical(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryIdentical{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a === $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryLogicalAnd(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryLogicalAnd{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a and $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryLogicalOr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryLogicalOr{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a or $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryLogicalXor(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryLogicalXor{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a xor $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryMinus(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryMinus{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a - $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryMod(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryMod{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a % $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryMul(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryMul{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a * $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryNotEqual(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryNotEqual{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a != $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryNotIdentical(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryNotIdentical{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a !== $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryPlus(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryPlus{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a + $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryPow(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryPow{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a ** $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryShiftLeft(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryShiftLeft{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a << $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinaryShiftRight(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinaryShiftRight{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a >> $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinarySmallerOrEqual(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinarySmallerOrEqual{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a <= $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinarySmaller(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinarySmaller{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a < $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBinarySpaceship(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBinarySpaceship{ - Left: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Right: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a <=> $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -// cast - -func TestPrintArray(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprCastArray{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `(array)$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintBool(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprCastBool{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `(bool)$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintDouble(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprCastDouble{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `(float)$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintInt(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprCastInt{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `(int)$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintObject(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprCastObject{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `(object)$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintString(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprCastString{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `(string)$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintUnset(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprCastUnset{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `(unset)$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -// expr - -func TestPrintExprArrayDimFetch(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprArrayDimFetch{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - Dim: &ast.ScalarLnumber{Value: []byte("1")}, - }) - - expected := `$var[1]` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprArrayItemWithKey(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprArrayItem{ - Key: &ast.ScalarString{Value: []byte("'Hello'")}, - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, - }) - - expected := `'Hello' => $world` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprArrayItem(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprArrayItem{ - Val: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}}, - }) - - expected := `&$world` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprArray(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprArray{ - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Key: &ast.ScalarString{Value: []byte("'Hello'")}, - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, - }, - &ast.ExprArrayItem{ - Key: &ast.ScalarLnumber{Value: []byte("2")}, - Val: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, - }, - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }, - }, - }) - - expected := `array('Hello' => $world, 2 => &$var, $var)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprBitwiseNot(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBitwiseNot{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `~$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprBooleanNot(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprBooleanNot{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `!$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprClassConstFetch(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprClassConstFetch{ - Class: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - ConstantName: &ast.Identifier{Value: []byte("CONST")}, - }) - - expected := `$var::CONST` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprClone(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprClone{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `clone $var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprClosureUse(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprClosureUse{ - Uses: []ast.Vertex{ - &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("bar")}}, - }, - }) - - expected := `use (&$foo, $bar)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprClosure(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.ExprClosure{ - Static: true, - ReturnsRef: true, - Params: []ast.Vertex{ - &ast.Parameter{ - Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, - }, - }, - ClosureUse: &ast.ExprClosureUse{ - Uses: []ast.Vertex{ - &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }, - ReturnType: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, - }, - }, - }) - - expected := `namespace { - static function &(&$var) use (&$a, $b): \Foo { - $a; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprConstFetch(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprConstFetch{ - Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}, - }) - - expected := "null" - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintEmpty(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprEmpty{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) - - expected := `empty($var)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrettyPrinterrorSuppress(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprErrorSuppress{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) - - expected := `@$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintEval(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprEval{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) - - expected := `eval($var)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExit(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprExit{Die: false, Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) - - expected := `exit($var)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintDie(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprExit{Die: true, Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) - - expected := `die($var)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintFunctionCall(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprFunctionCall{ - Function: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - IsReference: true, - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - &ast.Argument{ - Variadic: true, - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - }, - }, - }, - }) - - expected := `$var(&$a, ...$b, $c)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintInclude(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprInclude{Expr: &ast.ScalarString{Value: []byte("'path'")}}) - - expected := `include 'path'` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintIncludeOnce(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprIncludeOnce{Expr: &ast.ScalarString{Value: []byte("'path'")}}) - - expected := `include_once 'path'` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintInstanceOf(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprInstanceOf{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - Class: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - }) - - expected := `$var instanceof Foo` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintIsset(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprIsset{ - Vars: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }) - - expected := `isset($a, $b)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintList(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprList{ - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - &ast.ExprArrayItem{ - Val: &ast.ExprList{ - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - }, - }, - }, - }, - }, - }) - - expected := `list($a, list($b, $c))` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintMethodCall(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprMethodCall{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, - Method: &ast.Identifier{Value: []byte("bar")}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }, - }, - }) - - expected := `$foo->bar($a, $b)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintNew(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprNew{ - Class: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }, - }, - }) - - expected := `new Foo($a, $b)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintPostDec(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprPostDec{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `$var--` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintPostInc(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprPostInc{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `$var++` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintPreDec(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprPreDec{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `--$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintPreInc(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprPreInc{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `++$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintPrint(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprPrint{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) - - expected := `print($var)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintPropertyFetch(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprPropertyFetch{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, - Property: &ast.Identifier{Value: []byte("bar")}, - }) - - expected := `$foo->bar` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprReference(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprReference{ - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, - }) - - expected := `&$foo` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintRequire(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprRequire{Expr: &ast.ScalarString{Value: []byte("'path'")}}) - - expected := `require 'path'` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintRequireOnce(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprRequireOnce{Expr: &ast.ScalarString{Value: []byte("'path'")}}) - - expected := `require_once 'path'` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintShellExec(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprShellExec{ - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, - &ast.ScalarEncapsedStringPart{Value: []byte("!")}, - }, - }) - - expected := "`hello {$world}!`" - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExprShortArray(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprShortArray{ - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Key: &ast.ScalarString{Value: []byte("'Hello'")}, - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("world")}}, - }, - &ast.ExprArrayItem{ - Key: &ast.ScalarLnumber{Value: []byte("2")}, - Val: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, - }, - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }, - }, - }) - - expected := `['Hello' => $world, 2 => &$var, $var]` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintShortList(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprShortList{ - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - &ast.ExprArrayItem{ - Val: &ast.ExprList{ - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - &ast.ExprArrayItem{ - Val: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - }, - }, - }, - }, - }, - }) - - expected := `[$a, list($b, $c)]` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStaticCall(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprStaticCall{ - Class: &ast.Identifier{Value: []byte("Foo")}, - Call: &ast.Identifier{Value: []byte("bar")}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }, - }, - }) - - expected := `Foo::bar($a, $b)` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStaticPropertyFetch(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprStaticPropertyFetch{ - Class: &ast.Identifier{Value: []byte("Foo")}, - Property: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("bar")}}, - }) - - expected := `Foo::$bar` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintTernary(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprTernary{ - Condition: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - IfFalse: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }) - - expected := `$a ?: $b` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintTernaryFull(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprTernary{ - Condition: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - IfTrue: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - IfFalse: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - }) - - expected := `$a ? $b : $c` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintUnaryMinus(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprUnaryMinus{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `-$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintUnaryPlus(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprUnaryPlus{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `+$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintVariable(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprVariable{VarName: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}) - - expected := `$$var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintYieldFrom(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprYieldFrom{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `yield from $var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintYield(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprYield{ - Value: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `yield $var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintYieldFull(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.ExprYield{ - Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("k")}}, - Value: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - }) - - expected := `yield $k => $var` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -// stmt - -func TestPrintAltElseIf(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElseIf{ - Alt: true, - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - }) - - expected := `elseif ($a) : - $b;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintAltElseIfEmpty(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElseIf{ - Alt: true, - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtStmtList{}, - }) - - expected := `elseif ($a) :` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintAltElse(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElse{ - Alt: true, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - }) - - expected := `else : - $b;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintAltElseEmpty(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElse{ - Alt: true, - Stmt: &ast.StmtStmtList{}, - }) - - expected := `else :` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintAltFor(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtFor{ - Alt: true, - Init: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - Cond: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - Loop: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - }, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}}, - }, - }, - }, - }, - }) - - expected := `namespace { - for ($a; $b; $c) : - $d; - endfor; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintAltForeach(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtForeach{ - Alt: true, - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("key")}}, - Var: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("val")}}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}}, - }, - }, - }, - }, - }) - - expected := `namespace { - foreach ($var as $key => &$val) : - $d; - endforeach; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintAltIf(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtIf{ - Alt: true, - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}}, - }, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Alt: true, - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - }, - &ast.StmtElseIf{ - Alt: true, - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - Stmt: &ast.StmtStmtList{}, - }, - }, - Else: &ast.StmtElse{ - Alt: true, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - }, - }, - }, - }) - - expected := `namespace { - if ($a) : - $d; - elseif ($b) : - $b; - elseif ($c) : - else : - $b; - endif; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtAltSwitch(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtSwitch{ - Alt: true, - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Cond: &ast.ScalarString{Value: []byte("'a'")}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, - }, - &ast.StmtCase{ - Cond: &ast.ScalarString{Value: []byte("'b'")}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - }, - }, - }, - }) - - expected := `namespace { - switch ($var) : - case 'a': - $a; - case 'b': - $b; - endswitch; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintAltWhile(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtWhile{ - Alt: true, - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - }, - }, - }) - - expected := `namespace { - while ($a) : - $b; - endwhile; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtBreak(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtBreak{ - Expr: &ast.ScalarLnumber{Value: []byte("1")}, - }) - - expected := "break 1;" - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtCase(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtCase{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, - }) - - expected := `case $a: - $a;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtCaseEmpty(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtCase{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmts: []ast.Vertex{}, - }) - - expected := "case $a:" - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtCatch(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtCatch{ - Types: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, - &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("RuntimeException")}}}, - }, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("e")}}, - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, - }, - }, - }) - - expected := `namespace { - catch (Exception | \RuntimeException $e) { - $a; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtClassMethod(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtClassMethod{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - ReturnsRef: true, - MethodName: &ast.Identifier{Value: []byte("foo")}, - Params: []ast.Vertex{ - &ast.Parameter{ - Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, - Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, - }, - &ast.Parameter{ - Var: &ast.Variadic{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - ReturnType: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, - }, - }) - - expected := `public function &foo(?int &$a = null, ...$b): void -{ - $a; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} -func TestPrintStmtAbstractClassMethod(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtClassMethod{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - ReturnsRef: true, - MethodName: &ast.Identifier{Value: []byte("foo")}, - Params: []ast.Vertex{ - &ast.Parameter{ - Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, - Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, - }, - &ast.Parameter{ - Var: &ast.Variadic{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}}, - }, - }, - ReturnType: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}}, - Stmt: &ast.StmtNop{}, - }) - - expected := `public function &foo(?int &$a = null, ...$b): void;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtClass(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtClass{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, - ClassName: &ast.Identifier{Value: []byte("Foo")}, - Extends: &ast.StmtClassExtends{ - ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - }, - Implements: &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtClassConstList{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, - }, - }, - }, - }, - }, - }, - }) - - expected := `namespace { - abstract class Foo extends Bar implements Baz, Quuz - { - public const FOO = 'bar'; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtAnonymousClass(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtClass{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, - ArgumentList: &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - &ast.Argument{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }, - }, - Extends: &ast.StmtClassExtends{ - ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - }, - Implements: &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtClassConstList{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, - }, - }, - }, - }, - }, - }, - }) - - expected := `namespace { - abstract class($a, $b) extends Bar implements Baz, Quuz - { - public const FOO = 'bar'; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtClassConstList(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtClassConstList{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'a'")}, - }, - &ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("BAR")}, - Expr: &ast.ScalarString{Value: []byte("'b'")}, - }, - }, - }) - - expected := `public const FOO = 'a', BAR = 'b';` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtConstant(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'BAR'")}, - }) - - expected := "FOO = 'BAR'" - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtContinue(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtContinue{ - Expr: &ast.ScalarLnumber{Value: []byte("1")}, - }) - - expected := `continue 1;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtDeclareStmts(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtDeclare{ - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, - }, - }, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - }, - }, - }, - }) - - expected := `{ - declare(FOO = 'bar') { - ; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtDeclareExpr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtDeclare{ - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, - }, - }, - Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, - }, - }, - }) - - expected := `{ - declare(FOO = 'bar') - 'bar'; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtDeclareNop(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtDeclare{ - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Name: &ast.Identifier{Value: []byte("FOO")}, - Expr: &ast.ScalarString{Value: []byte("'bar'")}, - }, - }, - Stmt: &ast.StmtNop{}, - }) - - expected := `declare(FOO = 'bar');` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtDefalut(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtDefault{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, - }) - - expected := `default: - $a;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtDefalutEmpty(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtDefault{ - Stmts: []ast.Vertex{}, - }) - - expected := `default:` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtDo_Expression(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtDo{ - Cond: &ast.ScalarLnumber{Value: []byte("1")}, - Stmt: &ast.StmtExpression{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - }, - }, - }) - - expected := `namespace { - do - $a; - while (1); -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtDo_StmtList(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtDo{ - Cond: &ast.ScalarLnumber{Value: []byte("1")}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}, - }, - }, - }, - }, - }) - - expected := `namespace { - do { - $a; - } while (1); -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtEcho(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtEcho{ - Exprs: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }) - - expected := `echo $a, $b;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtElseIfStmts(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElseIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - }, - }) - - expected := `elseif ($a) { - ; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtElseIfExpr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElseIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, - }) - - expected := `elseif ($a) - 'bar';` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtElseIfNop(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElseIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtNop{}, - }) - - expected := `elseif ($a);` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtElseStmts(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElse{ - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - }, - }) - - expected := `else { - ; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtElseExpr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElse{ - Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, - }) - - expected := `else - 'bar';` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtElseNop(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtElse{ - Stmt: &ast.StmtNop{}, - }) - - expected := `else;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintExpression(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtExpression{Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}}) - - expected := `$a;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtFinally(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtFinally{ - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - }, - }, - }) - - expected := `namespace { - finally { - ; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtForStmts(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtFor{ - Init: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - Cond: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}, - }, - Loop: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("e")}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("f")}}, - }, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - }, - }, - }, - }) - - expected := `namespace { - for ($a, $b; $c, $d; $e, $f) { - ; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtForExpr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtFor{ - Init: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - Cond: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - Loop: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - }, - Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, - }, - }, - }) - - expected := `namespace { - for ($a; $b; $c) - 'bar'; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtForNop(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtFor{ - Init: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - }, - Cond: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - Loop: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - }, - Stmt: &ast.StmtNop{}, - }) - - expected := `for ($a; $b; $c);` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtForeachStmts(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtForeach{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - }, - }, - }, - }) - - expected := `namespace { - foreach ($a as $b) { - ; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtForeachExpr(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtForeach{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("k")}}, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("v")}}, - Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, - }, - }, - }) - - expected := `namespace { - foreach ($a as $k => $v) - 'bar'; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtForeachNop(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtForeach{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Key: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("k")}}, - Var: &ast.ExprReference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("v")}}}, - Stmt: &ast.StmtNop{}, - }) - - expected := `foreach ($a as $k => &$v);` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtFunction(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtFunction{ - ReturnsRef: true, - FunctionName: &ast.Identifier{Value: []byte("foo")}, - Params: []ast.Vertex{ - &ast.Parameter{ - Var: &ast.Reference{Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("var")}}}, - }, - }, - ReturnType: &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - }, - }, - }) - - expected := `namespace { - function &foo(&$var): \Foo { - ; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtGlobal(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtGlobal{ - Vars: []ast.Vertex{ - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }) - - expected := `global $a, $b;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintStmtGoto(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtGoto{ - Label: &ast.Identifier{Value: []byte("FOO")}, - }) - - expected := `goto FOO;` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintHaltCompiler(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtHaltCompiler{}) - - expected := `__halt_compiler();` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintIfExpression(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtExpression{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("c")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("d")}}, - }, - }, - }, - }, - &ast.StmtElseIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("e")}}, - Stmt: &ast.StmtNop{}, - }, - }, - Else: &ast.StmtElse{ - Stmt: &ast.StmtExpression{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("f")}}, - }, - }, - }, - }, - }) - - expected := `namespace { - if ($a) - $b; - elseif ($c) { - $d; - } - elseif ($e); - else - $f; -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintIfStmtList(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtNamespace{ - Stmts: []ast.Vertex{ - &ast.StmtIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtStmtList{ - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("b")}}, - }, - }, - }, - }, - }, - }) - - expected := `namespace { - if ($a) { - $b; - } -}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintIfNop(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtIf{ - Cond: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("a")}}, - Stmt: &ast.StmtNop{}, - }) - - expected := `if ($a);` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrintInlineHtml(t *testing.T) { - o := bytes.NewBufferString("") - - p := printer.NewPrettyPrinter(o, " ") - p.Print(&ast.StmtInlineHtml{ - Value: []byte("test"), - }) - - expected := `?>test Date: Sun, 20 Dec 2020 11:38:13 +0200 Subject: [PATCH 115/140] refactoring: update php7 tests --- internal/php7/parser_test.go | 50330 +++++++++++++++++++++++------ internal/php7/php7.go | 790 +- internal/php7/php7.y | 8 +- internal/php7/php7_bench_test.go | 378 +- internal/php7/php7_test.go | 19703 ----------- 5 files changed, 40254 insertions(+), 30955 deletions(-) delete mode 100644 internal/php7/php7_test.go diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 94835e1..6c94e47 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -1,6 +1,7 @@ package php7_test import ( + "github.com/z7zmey/php-parser/pkg/errors" "testing" "gotest.tools/assert" @@ -8,69 +9,101 @@ import ( "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/traverser" - "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" ) func TestIdentifier(t *testing.T) { src := `bar($a, ...$b); @@ -78,729 +111,1424 @@ func TestPhp7ArgumentNode(t *testing.T) { $foo::bar($a, ...$b); new foo($a, ...$b); /** anonymous class */ - new class ($a, ...$b) {}; - ` + new class ($a, ...$b) {};` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 9, - StartPos: 6, - EndPos: 186, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 9, + StartPos: 5, + EndPos: 185, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 20, + }, + Expr: &ast.ExprFunctionCall{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, - EndPos: 21, + StartPos: 5, + EndPos: 19, }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ + Function: &ast.NameName{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, - EndPos: 20, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 9, - }, + StartPos: 5, + EndPos: 8, }, Parts: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 8, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, - EndPos: 9, + StartPos: 5, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 46, + EndPos: 48, + }, + }, Method: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 48, + EndPos: 51, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 49, - EndPos: 52, + StartPos: 48, + EndPos: 51, }, }, Value: []byte("bar"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 51, + EndPos: 52, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 52, - EndPos: 63, + EndPos: 54, }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 54, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, - EndPos: 55, + StartPos: 52, + EndPos: 54, }, - }, - IsReference: false, - Variadic: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 57, - EndPos: 62, - }, - }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 60, - EndPos: 62, + StartPos: 52, + EndPos: 54, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 60, - EndPos: 62, - }, - }, - Value: []byte("$b"), - }, + Value: []byte("$a"), }, }, }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 56, + EndPos: 61, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 56, + EndPos: 59, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 55, + EndPos: 56, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + }, + Value: []byte("$b"), + }, + }, + }, + }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 54, + EndPos: 55, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 61, + EndPos: 62, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 62, + EndPos: 63, }, }, }, &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 86, + }, + Expr: &ast.ExprStaticCall{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, - EndPos: 87, + StartPos: 66, + EndPos: 85, }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ + Class: &ast.NameName{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, - EndPos: 86, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 70, - }, + StartPos: 66, + EndPos: 69, }, Parts: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 69, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, - EndPos: 70, + StartPos: 66, + EndPos: 69, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 4, + EndLine: 5, + StartPos: 63, + EndPos: 66, + }, + }, }, }, Value: []byte("foo"), }, }, }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 69, + EndPos: 71, + }, + }, Call: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 71, + EndPos: 74, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 72, - EndPos: 75, + StartPos: 71, + EndPos: 74, }, }, Value: []byte("bar"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 74, + EndPos: 75, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 75, - EndPos: 86, + EndPos: 77, }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 77, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, - EndPos: 78, + StartPos: 75, + EndPos: 77, }, - }, - Variadic: false, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 80, - EndPos: 85, - }, - }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 83, - EndPos: 85, + StartPos: 75, + EndPos: 77, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 83, - EndPos: 85, - }, - }, - Value: []byte("$b"), - }, + Value: []byte("$a"), }, }, }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 79, + EndPos: 84, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 79, + EndPos: 82, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 78, + EndPos: 79, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + }, + Value: []byte("$b"), + }, + }, + }, + }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 77, + EndPos: 78, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 84, + EndPos: 85, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 85, + EndPos: 86, }, }, }, &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 89, + EndPos: 110, + }, + Expr: &ast.ExprStaticCall{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 111, + StartPos: 89, + EndPos: 109, }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ + Class: &ast.ExprVariable{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 110, + StartPos: 89, + EndPos: 93, }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 94, + StartPos: 89, + EndPos: 93, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$foo"), Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 94, + StartPos: 89, + EndPos: 93, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 5, + EndLine: 6, + StartPos: 86, + EndPos: 89, + }, + }, }, }, Value: []byte("$foo"), }, }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 93, + EndPos: 95, + }, + }, Call: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 95, + EndPos: 98, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 96, - EndPos: 99, + StartPos: 95, + EndPos: 98, }, }, Value: []byte("bar"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 98, + EndPos: 99, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 99, - EndPos: 110, + EndPos: 101, }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 101, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, - EndPos: 102, + StartPos: 99, + EndPos: 101, }, - }, - Variadic: false, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 104, - EndPos: 109, - }, - }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 107, - EndPos: 109, + StartPos: 99, + EndPos: 101, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 107, - EndPos: 109, - }, - }, - Value: []byte("$b"), - }, + Value: []byte("$a"), }, }, }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 103, + EndPos: 108, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 103, + EndPos: 106, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 102, + EndPos: 103, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + }, + Value: []byte("$b"), + }, + }, + }, + }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 101, + EndPos: 102, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 108, + EndPos: 109, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 109, + EndPos: 110, }, }, }, &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 113, + EndPos: 132, + }, + Expr: &ast.ExprNew{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, - EndPos: 133, + StartPos: 113, + EndPos: 131, }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ + NewTkn: &token.Token{ + ID: token.T_NEW, + Value: []byte("new"), Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, - EndPos: 132, + StartPos: 113, + EndPos: 116, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 6, + EndLine: 7, + StartPos: 110, + EndPos: 113, + }, + }, }, }, Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 118, - EndPos: 121, - }, + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, }, Parts: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 118, - EndPos: 121, + StartPos: 117, + EndPos: 120, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 116, + EndPos: 117, + }, + }, }, }, Value: []byte("foo"), }, }, }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 120, + EndPos: 121, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 7, EndLine: 7, StartPos: 121, - EndPos: 132, + EndPos: 123, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + }, + Value: []byte("$a"), + }, + }, + }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 125, + EndPos: 130, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 125, + EndPos: 128, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 124, + EndPos: 125, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 128, + EndPos: 130, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 128, + EndPos: 130, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 128, + EndPos: 130, + }, + }, + Value: []byte("$b"), + }, + }, + }, + }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 123, + EndPos: 124, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 130, + EndPos: 131, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 131, + EndPos: 132, + }, + }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 160, + EndPos: 185, + }, + Expr: &ast.ExprNew{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 160, + EndPos: 184, + }, + NewTkn: &token.Token{ + ID: token.T_NEW, + Value: []byte("new"), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 160, + EndPos: 163, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 7, + EndLine: 8, + StartPos: 132, + EndPos: 135, + }, + }, + { + ID: token.T_DOC_COMMENT, + Value: []byte("/** anonymous class */"), + Position: &position.Position{ + StartLine: 8, + EndLine: 8, + StartPos: 135, + EndPos: 157, + }, + }, + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 8, + EndLine: 9, + StartPos: 157, + EndPos: 160, + }, + }, + }, + }, + Class: &ast.StmtClass{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 164, + EndPos: 184, + }, + ClassTkn: &token.Token{ + ID: token.T_CLASS, + Value: []byte("class"), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 164, + EndPos: 169, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 163, + EndPos: 164, + }, + }, + }, + }, + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 170, + EndPos: 171, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 169, + EndPos: 170, + }, + }, }, }, Arguments: []ast.Vertex{ &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 173, }, - Variadic: false, - IsReference: false, Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 173, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 173, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, + StartLine: 9, + EndLine: 9, + StartPos: 171, + EndPos: 173, }, }, Value: []byte("$a"), @@ -808,32 +1536,56 @@ func TestPhp7ArgumentNode(t *testing.T) { }, }, &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 126, - EndPos: 131, - }, + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 175, + EndPos: 180, }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 129, - EndPos: 131, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 175, + EndPos: 178, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 174, + EndPos: 175, + }, }, }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 178, + EndPos: 180, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 178, + EndPos: 180, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 129, - EndPos: 131, + StartLine: 9, + EndLine: 9, + StartPos: 178, + EndPos: 180, }, }, Value: []byte("$b"), @@ -841,127 +1593,82 @@ func TestPhp7ArgumentNode(t *testing.T) { }, }, }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 161, - EndPos: 186, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 161, - EndPos: 185, - }, - }, - Class: &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 165, - EndPos: 185, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), Position: &position.Position{ StartLine: 9, EndLine: 9, - StartPos: 171, - EndPos: 182, + StartPos: 173, + EndPos: 174, }, }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 172, - EndPos: 174, - }, - }, - Variadic: false, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 172, - EndPos: 174, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 172, - EndPos: 174, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 176, - EndPos: 181, - }, - }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 179, - EndPos: 181, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 179, - EndPos: 181, - }, - }, - Value: []byte("$b"), - }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 180, + EndPos: 181, + }, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 182, + EndPos: 183, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 181, + EndPos: 182, }, }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 183, + EndPos: 184, + }, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 9, + EndLine: 9, + StartPos: 184, + EndPos: 185, }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -974,66 +1681,136 @@ func TestPhp7ParameterNode(t *testing.T) { ` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 5, - StartPos: 5, - EndPos: 214, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 5, + StartPos: 5, + EndPos: 214, }, Stmts: []ast.Vertex{ &ast.StmtFunction{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 50, + }, + FunctionTkn: &token.Token{ + ID: token.T_FUNCTION, + Value: []byte("function"), Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 5, - EndPos: 50, + EndPos: 13, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte("bar()";` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 22, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + Expr: &ast.ScalarEncapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 22, + EndPos: 21, }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ + OpenQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 21, + EndPos: 4, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 15, + }, + }, Property: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -2516,7 +4563,15 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, }, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + EncapsedStrTkn: &token.Token{ + ID: token.T_ENCAPSED_AND_WHITESPACE, + Value: []byte("()"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -2527,17 +4582,36 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { Value: []byte("()"), }, }, + CloseQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 22, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2545,36 +4619,70 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { src := `bar()}";` +func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { + src := `bar()}";` + + expected := &ast.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + Expr: &ast.ScalarEncapsed{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + OpenQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 4, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 16, + }, + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("bar"), + }, + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + CloseBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 22, + }, + }, + }, + }, + CloseQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 23, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, + }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2837,37 +5224,70 @@ LBL; ` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 3, - StartPos: 3, - EndPos: 24, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 3, + EndPos: 24, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 3, + EndPos: 24, + }, + Expr: &ast.ScalarHeredoc{ Position: &position.Position{ StartLine: 1, EndLine: 3, StartPos: 3, - EndPos: 24, + EndPos: 23, }, - }, - Expr: &ast.ScalarHeredoc{ - Node: ast.Node{ + OpenHeredocTkn: &token.Token{ + ID: token.T_START_HEREDOC, + Value: []byte("<< $v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 30, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, }, Value: []byte("$v"), }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 30, + EndPos: 29, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7217,98 +16061,284 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { src := ` $v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 30, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, }, Value: []byte("$v"), }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 30, + EndPos: 29, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7316,35 +16346,91 @@ func TestStmtForeach_WithRef(t *testing.T) { src := ` &$v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 31, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprReference{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 27, + EndPos: 25, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -7407,27 +16581,66 @@ func TestStmtForeach_WithRef(t *testing.T) { }, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, - EndPos: 31, + EndPos: 30, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7435,35 +16648,91 @@ func TestStmtForeach_WithList(t *testing.T) { src := ` list($v)) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 36, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 36, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 32, + }, + ListTkn: &token.Token{ + ID: token.T_LIST, + Value: []byte("list"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 32, + EndPos: 28, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, + }, + OpenBracketTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, }, }, Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, EndPos: 31, }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, EndPos: 31, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -7537,28 +16902,77 @@ func TestStmtForeach_WithList(t *testing.T) { }, }, }, + CloseBracketTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 31, + EndPos: 32, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 32, + EndPos: 33, + }, }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 34, - EndPos: 36, + EndPos: 35, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 36, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -7566,47 +16980,145 @@ func TestStmtFunction(t *testing.T) { src := `
` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, }, Stmts: []ast.Vertex{ &ast.StmtNop{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte("?>"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8958,14 +20585,13 @@ func TestStmtInlineHtml(t *testing.T) { Value: []byte("
"), }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8973,46 +20599,125 @@ func TestStmtInterface(t *testing.T) { src := `1, &$b,);` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 21, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + Expr: &ast.ExprArray{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 21, + EndPos: 20, }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ + ArrayTkn: &token.Token{ + ID: token.T_ARRAY, + Value: []byte("array"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 20, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, Val: &ast.ScalarLnumber{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("1"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14828,34 +34768,58 @@ func TestExprArray_Items(t *testing.T) { }, }, &ast.ExprArrayItem{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + Val: &ast.ExprReference{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 18, }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, - EndPos: 18, + EndPos: 16, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 18, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14870,17 +34834,58 @@ func TestExprArray_Items(t *testing.T) { }, &ast.ExprArrayItem{}, }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + }, + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 19, + }, + }, + }, + CloseBracketTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -14888,55 +34893,104 @@ func TestExprArray_ItemUnpack(t *testing.T) { src := ` $a;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 14, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 14, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 14, + }, + Expr: &ast.ExprArrowFunction{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 14, + EndPos: 13, }, - }, - Expr: &ast.ExprArrowFunction{ - Node: ast.Node{ + FnTkn: &token.Token{ + ID: token.T_FN, + Value: []byte("fn"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 13, + EndPos: 5, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 8, + }, + }, }, }, - ReturnsRef: false, - Static: false, Expr: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + }, + }, }, Value: []byte("$a"), }, }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15035,90 +35201,257 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { src := ` $a;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 23, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + Expr: &ast.ExprArrowFunction{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 23, + EndPos: 22, }, - }, - Expr: &ast.ExprArrowFunction{ - Node: ast.Node{ + FnTkn: &token.Token{ + ID: token.T_FN, + Value: []byte("fn"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 22, + EndPos: 5, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 19, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 17, + }, + }, + }, + }, Expr: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 22, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 20, EndPos: 22, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 20, EndPos: 22, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + }, + }, }, Value: []byte("$a"), }, }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 23, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -15126,44 +35459,76 @@ func TestExprBitwiseNot(t *testing.T) { src := `foo();` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + Expr: &ast.ExprMethodCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 13, + EndPos: 12, }, - }, - Expr: &ast.ExprMethodCall{ - Node: ast.Node{ + Var: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 12, + EndPos: 5, }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 7, + }, + }, Method: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18910,27 +42553,46 @@ func TestExprMethodCall(t *testing.T) { }, Value: []byte("foo"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, - }, + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -18938,67 +42600,120 @@ func TestExprNew(t *testing.T) { src := `foo;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + Expr: &ast.ExprPropertyFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 11, + EndPos: 10, }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ + Var: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 10, + EndPos: 5, }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 7, + }, + }, Property: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19422,16 +43549,25 @@ func TestExprPropertyFetch(t *testing.T) { Value: []byte("foo"), }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19440,35 +43576,91 @@ func TestExprReference_ForeachWithRef(t *testing.T) { src := ` &$v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 31, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprReference{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 27, + EndPos: 25, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19531,27 +43811,66 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, - EndPos: 31, + EndPos: 30, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19559,36 +43878,70 @@ func TestExprShellExec(t *testing.T) { src := "1, &$b,];` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 16, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + Expr: &ast.ExprArray{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 16, + EndPos: 15, }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ + OpenBracketTkn: &token.Token{ + ID: token.ID(91), + Value: []byte("["), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 15, + EndPos: 4, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 7, + }, + }, Val: &ast.ScalarLnumber{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 8, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("1"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19813,34 +44336,58 @@ func TestExprShortArray_Items(t *testing.T) { }, }, &ast.ExprArrayItem{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + Val: &ast.ExprReference{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 10, EndPos: 13, }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 10, - EndPos: 13, + EndPos: 11, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19855,17 +44402,58 @@ func TestExprShortArray_Items(t *testing.T) { }, &ast.ExprArrayItem{}, }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 9, + }, + }, + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + }, + }, + CloseBracketTkn: &token.Token{ + ID: token.ID(93), + Value: []byte("]"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19873,63 +44461,91 @@ func TestExprShortList(t *testing.T) { src := ` $b;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 18, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, + }, + Expr: &ast.ExprYield{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 18, + EndPos: 17, }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ + YieldTkn: &token.Token{ + ID: token.T_YIELD, + Value: []byte("yield"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 17, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + }, + }, + }, Value: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 17, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 17, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 17, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, + }, }, Value: []byte("$b"), }, }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 18, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -21929,55 +48233,110 @@ func TestExprYield_Expr(t *testing.T) { src := ` 1;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + Expr: &ast.ExprYield{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 17, + EndPos: 16, }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ + YieldTkn: &token.Token{ + ID: token.T_YIELD, + Value: []byte("yield"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 16, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + }, + }, + }, Value: &ast.ScalarLnumber{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("1"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 16, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, + }, }, Value: []byte("1"), }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 17, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -22062,4082 +48516,6018 @@ func TestExprYieldFrom(t *testing.T) { src := `>= $b; + $a ??= $b;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 18, + StartPos: 5, + EndPos: 223, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 13, }, Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) - php7parser.Parse() - actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprAssign_Reference(t *testing.T) { - src := `>= $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, + StartLine: 16, + EndLine: 16, + StartPos: 196, + EndPos: 197, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 210, + }, Expr: &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 209, }, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 202, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 202, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 202, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 16, + EndLine: 17, + StartPos: 197, + EndPos: 200, + }, + }, }, }, Value: []byte("$a"), }, }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, + EqualTkn: &token.Token{ + ID: token.T_SR_EQUAL, + Value: []byte(">>="), + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 203, + EndPos: 206, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 202, + EndPos: 203, + }, }, }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 207, + EndPos: 209, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 207, + EndPos: 209, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, + StartLine: 17, + EndLine: 17, + StartPos: 207, + EndPos: 209, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 206, + EndPos: 207, + }, + }, }, }, Value: []byte("$b"), }, }, }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) - php7parser.Parse() - actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprAssign_Coalesce(t *testing.T) { - src := `= $b; + $a > $b; + $a === $b; + $a and $b; + $a or $b; + $a xor $b; + $a - $b; + $a % $b; + $a * $b; + $a != $b; + $a !== $b; + $a + $b; + $a ** $b; + $a << $b; + $a >> $b; + $a <= $b; + $a < $b; + $a <=> $b;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 28, + StartPos: 5, + EndPos: 320, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 13, }, Expr: &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 12, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 7, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 7, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 7, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte("= $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, + StartLine: 10, + EndLine: 10, + StartPos: 104, + EndPos: 105, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 117, + }, Expr: &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 116, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 110, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 110, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 110, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 10, + EndLine: 11, + StartPos: 105, + EndPos: 108, + }, + }, }, }, Value: []byte("$a"), }, }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + OpTkn: &token.Token{ + ID: token.T_IS_GREATER_OR_EQUAL, + Value: []byte(">="), + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 111, + EndPos: 113, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 110, + EndPos: 111, + }, }, }, + }, + Right: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 114, + EndPos: 116, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 114, + EndPos: 116, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + StartLine: 11, + EndLine: 11, + StartPos: 114, + EndPos: 116, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 113, + EndPos: 114, + }, + }, }, }, Value: []byte("$b"), }, }, }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) - php7parser.Parse() - actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprBinary_Greater(t *testing.T) { - src := ` $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, + StartLine: 11, + EndLine: 11, + StartPos: 116, + EndPos: 117, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 120, + EndPos: 128, + }, Expr: &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 120, + EndPos: 127, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 120, + EndPos: 122, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 120, + EndPos: 122, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 12, + EndLine: 12, + StartPos: 120, + EndPos: 122, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 11, + EndLine: 12, + StartPos: 117, + EndPos: 120, + }, + }, }, }, Value: []byte("$a"), }, }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, + OpTkn: &token.Token{ + ID: token.ID(62), + Value: []byte(">"), + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 123, + EndPos: 124, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 122, + EndPos: 123, + }, }, }, + }, + Right: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 125, + EndPos: 127, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 125, + EndPos: 127, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, + StartLine: 12, + EndLine: 12, + StartPos: 125, + EndPos: 127, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 12, + EndLine: 12, + StartPos: 124, + EndPos: 125, + }, + }, }, }, Value: []byte("$b"), }, }, }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) - php7parser.Parse() - actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprBinary_Identical(t *testing.T) { - src := `> $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, + StartLine: 24, + EndLine: 24, + StartPos: 271, + EndPos: 272, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 275, + EndPos: 284, + }, Expr: &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 275, + EndPos: 283, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 275, + EndPos: 277, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 275, + EndPos: 277, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 25, + EndLine: 25, + StartPos: 275, + EndPos: 277, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 24, + EndLine: 25, + StartPos: 272, + EndPos: 275, + }, + }, }, }, Value: []byte("$a"), }, }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + OpTkn: &token.Token{ + ID: token.T_SR, + Value: []byte(">>"), + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 278, + EndPos: 280, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 277, + EndPos: 278, + }, }, }, + }, + Right: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 281, + EndPos: 283, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 281, + EndPos: 283, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + StartLine: 25, + EndLine: 25, + StartPos: 281, + EndPos: 283, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 25, + EndLine: 25, + StartPos: 280, + EndPos: 281, + }, + }, }, }, Value: []byte("$b"), }, }, }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) - php7parser.Parse() - actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprBinary_SmallerOrEqual(t *testing.T) { - src := ` $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, + StartLine: 27, + EndLine: 27, + StartPos: 306, + EndPos: 307, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 310, + EndPos: 320, + }, Expr: &ast.ExprBinarySpaceship{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 310, + EndPos: 319, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 310, + EndPos: 312, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 310, + EndPos: 312, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 28, + EndLine: 28, + StartPos: 310, + EndPos: 312, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 27, + EndLine: 28, + StartPos: 307, + EndPos: 310, + }, + }, }, }, Value: []byte("$a"), }, }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, + OpTkn: &token.Token{ + ID: token.T_SPACESHIP, + Value: []byte("<=>"), + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 313, + EndPos: 316, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 312, + EndPos: 313, + }, }, }, + }, + Right: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 317, + EndPos: 319, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 317, + EndPos: 319, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, + StartLine: 28, + EndLine: 28, + StartPos: 317, + EndPos: 319, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 316, + EndPos: 317, + }, + }, }, }, Value: []byte("$b"), }, }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 28, + EndLine: 28, + StartPos: 319, + EndPos: 320, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } // expr cast func TestExprCast_Array(t *testing.T) { - src := `bar($a, ...$b); - foo::bar($a, ...$b); - $foo::bar($a, ...$b); - new foo($a, ...$b); - /** anonymous class */ - new class ($a, ...$b) {}; - new class {}; - new $foo; - new $foo[1]; - new $foo{$bar}; - new $foo->bar; - new $foo::$bar; - new static::$bar; + src, err := ioutil.ReadFile("test.php") - function foo(?bar $bar=null, baz &...$baz) {} - class foo {public function foo(?bar $bar=null, baz &...$baz) {}} - function(?bar $bar=null, baz &...$baz) {}; - static function(?bar $bar=null, baz &...$baz) {}; - - "test"; - "\$test"; - " - test - "; - '$test'; - ' - $test - '; - <<bar()"; - "test ${foo}"; - "test ${foo[0]}"; - "test ${$foo}"; - "test {$foo->bar()}"; - - if ($a) : - endif; - if ($a) : - elseif ($b): - endif; - if ($a) : - else: - endif; - if ($a) : - elseif ($b): - elseif ($c): - else: - endif; - - while (1) { break; } - while (1) { break 2; } - while (1) : break(3); endwhile; - class foo{ public const FOO = 1, BAR = 2; } - class foo{ const FOO = 1, BAR = 2; } - class foo{ function bar() {} } - class foo{ public static function &bar() {} } - class foo{ public static function &bar(): void {} } - abstract class foo{ } - final class foo extends bar { } - final class foo implements bar { } - final class foo implements bar, baz { } - new class() extends foo implements bar, baz { }; - - const FOO = 1, BAR = 2; - while (1) { continue; } - while (1) { continue 2; } - while (1) { continue(3); } - declare(ticks=1); - declare(ticks=1) {} - declare(ticks=1): enddeclare; - do {} while(1); - echo $a, 1; - echo($a); - for($i = 0; $i < 10; $i++, $i++) {} - for(; $i < 10; $i++, $i++) : endfor; - foreach ($a as $v) {} - foreach ($a as $v) : endforeach; - foreach ($a as $k => $v) {} - foreach ($a as $k => &$v) {} - foreach ($a as $k => list($v)) {} - foreach ($a as $k => [$v]) {} - function foo() {} - function foo() {return;} - function &foo() {return 1;} - function &foo(): void {} - global $a, $b; - a: - goto a; - __halt_compiler(); - if ($a) {} - if ($a) {} elseif ($b) {} - if ($a) {} else {} - if ($a) {} elseif ($b) {} elseif ($c) {} else {} - if ($a) {} elseif ($b) {} else if ($c) {} else {} - ?>
1, &$b,); - ~$a; - !$a; - - Foo::Bar; - $foo::Bar; - clone($a); - clone $a; - function(){}; - function($a, $b) use ($c, &$d) {}; - function(): void {}; - foo; - namespace\foo; - \foo; - - empty($a); - @$a; - eval($a); - exit; - exit($a); - die; - die($a); - foo(); - namespace\foo(); - \foo(); - $foo(); - - $a--; - $a++; - --$a; - ++$a; - - include $a; - include_once $a; - require $a; - require_once $a; - - $a instanceof Foo; - $a instanceof namespace\Foo; - $a instanceof \Foo; - - isset($a, $b); - list($a) = $b; - list($a[]) = $b; - list(list($a)) = $b; - - $a->foo(); - new Foo(); - new namespace\Foo(); - new \Foo(); - new class ($a, ...$b) {}; - print($a); - $a->foo; - ` + "`cmd $a`;" + ` - ` + "`cmd`;" + ` - ` + "``;" + ` - []; - [1]; - [1=>1, &$b,]; - - [$a] = $b; - [$a[]] = $b; - [list($a)] = $b; - Foo::bar(); - namespace\Foo::bar(); - \Foo::bar(); - Foo::$bar; - $foo::$bar; - namespace\Foo::$bar; - \Foo::$bar; - $a ? $b : $c; - $a ? : $c; - $a ? $b ? $c : $d : $e; - $a ? $b : $c ? $d : $e; - -$a; - +$a; - $$a; - yield; - yield $a; - yield $a => $b; - yield from $a; - - (array)$a; - (boolean)$a; - (bool)$a; - (double)$a; - (float)$a; - (integer)$a; - (int)$a; - (object)$a; - (string)$a; - (unset)$a; - - $a & $b; - $a | $b; - $a ^ $b; - $a && $b; - $a || $b; - $a ?? $b; - $a . $b; - $a / $b; - $a == $b; - $a >= $b; - $a > $b; - $a === $b; - $a and $b; - $a or $b; - $a xor $b; - $a - $b; - $a % $b; - $a * $b; - $a != $b; - $a !== $b; - $a + $b; - $a ** $b; - $a << $b; - $a >> $b; - $a <= $b; - $a < $b; - $a <=> $b; - - $a =& $b; - $a = $b; - $a &= $b; - $a |= $b; - $a ^= $b; - $a .= $b; - $a /= $b; - $a -= $b; - $a %= $b; - $a *= $b; - $a += $b; - $a **= $b; - $a <<= $b; - $a >>= $b; - - class foo {public function class() {} } - \foo\bar(); - - function foo(&$a, ...$b) { - __halt_compiler(); - function bar() {} - class Baz {} - trait Quux{} - interface Quuux {} - } - - function foo(&$a = 1, ...$b = 1, $c = 1) {} - function foo(array $a, callable $b) {} - abstract final class foo { abstract protected static function bar(); final private function baz() {} } - - (new Foo)->bar; - (new Foo)(); - [$foo][0](); - foo[1](); - "foo"(); - [1]{$foo}(); - ${foo()}; - - Foo::$bar(); - Foo::{$bar[0]}(); - - $foo->$bar; - $foo->{$bar[0]}; - - [1=>&$a, 2=>list($b)]; - ` + if err != nil { + b.Fatal("can not read test.php: " + err.Error()) + } for n := 0; n < b.N; n++ { - lexer := scanner.NewLexer([]byte(src), "7.4", nil) + lexer := scanner.NewLexer(src, "7.4", nil) php7parser := php7.NewParser(lexer, nil) php7parser.Parse() } diff --git a/internal/php7/php7_test.go b/internal/php7/php7_test.go deleted file mode 100644 index 452a0a3..0000000 --- a/internal/php7/php7_test.go +++ /dev/null @@ -1,19703 +0,0 @@ -package php7_test - -import ( - "io/ioutil" - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/internal/php7" - "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/traverser" - "github.com/z7zmey/php-parser/pkg/ast/visitor" - "github.com/z7zmey/php-parser/pkg/errors" - "github.com/z7zmey/php-parser/pkg/position" -) - -func TestPhp7(t *testing.T) { - src, err := ioutil.ReadFile("test.php") - assert.NilError(t, err) - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 348, - StartPos: 3, - EndPos: 5706, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 18, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 17, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 6, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 6, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 17, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 7, - EndPos: 9, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 7, - EndPos: 9, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 7, - EndPos: 9, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 11, - EndPos: 16, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 14, - EndPos: 16, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 14, - EndPos: 16, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 35, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 34, - }, - }, - Function: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 23, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 23, - }, - }, - Value: []byte("$foo"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 23, - EndPos: 34, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 26, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 26, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 26, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 33, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 31, - EndPos: 33, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 31, - EndPos: 33, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 57, - }, - }, - Expr: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 56, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 40, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 40, - }, - }, - Value: []byte("$foo"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 42, - EndPos: 45, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 45, - EndPos: 56, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 46, - EndPos: 48, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 46, - EndPos: 48, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 46, - EndPos: 48, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 50, - EndPos: 55, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 78, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 77, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 61, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 61, - }, - }, - Value: []byte("foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 63, - EndPos: 66, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 77, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 69, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 69, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 69, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 71, - EndPos: 76, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 74, - EndPos: 76, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 74, - EndPos: 76, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 100, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 99, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 83, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 83, - }, - }, - Value: []byte("$foo"), - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 85, - EndPos: 88, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 88, - EndPos: 99, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 91, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 91, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 91, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 93, - EndPos: 98, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 96, - EndPos: 98, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 96, - EndPos: 98, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 101, - EndPos: 120, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 101, - EndPos: 119, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 105, - EndPos: 108, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 105, - EndPos: 108, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 108, - EndPos: 119, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 109, - EndPos: 111, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 109, - EndPos: 111, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 109, - EndPos: 111, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 113, - EndPos: 118, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 116, - EndPos: 118, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 116, - EndPos: 118, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 144, - EndPos: 169, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 144, - EndPos: 168, - }, - }, - Class: &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 148, - EndPos: 168, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 154, - EndPos: 165, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 155, - EndPos: 157, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 155, - EndPos: 157, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 155, - EndPos: 157, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 159, - EndPos: 164, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 162, - EndPos: 164, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 162, - EndPos: 164, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 170, - EndPos: 183, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 170, - EndPos: 182, - }, - }, - Class: &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 174, - EndPos: 182, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 184, - EndPos: 193, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 184, - EndPos: 192, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 188, - EndPos: 192, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 188, - EndPos: 192, - }, - }, - Value: []byte("$foo"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 194, - EndPos: 206, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 194, - EndPos: 205, - }, - }, - Class: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 198, - EndPos: 205, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 198, - EndPos: 202, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 198, - EndPos: 202, - }, - }, - Value: []byte("$foo"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 203, - EndPos: 204, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 207, - EndPos: 222, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 207, - EndPos: 221, - }, - }, - Class: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 211, - EndPos: 221, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 211, - EndPos: 215, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 211, - EndPos: 215, - }, - }, - Value: []byte("$foo"), - }, - }, - Dim: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 216, - EndPos: 220, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 13, - EndLine: 13, - StartPos: 216, - EndPos: 220, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 223, - EndPos: 237, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 223, - EndPos: 236, - }, - }, - Class: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 227, - EndPos: 236, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 227, - EndPos: 231, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 227, - EndPos: 231, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 233, - EndPos: 236, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 238, - EndPos: 253, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 238, - EndPos: 252, - }, - }, - Class: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 242, - EndPos: 252, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 242, - EndPos: 246, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 242, - EndPos: 246, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 248, - EndPos: 252, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 248, - EndPos: 252, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 254, - EndPos: 271, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 254, - EndPos: 270, - }, - }, - Class: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 258, - EndPos: 270, - }, - }, - Class: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 258, - EndPos: 264, - }, - }, - Value: []byte("static"), - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 266, - EndPos: 270, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 266, - EndPos: 270, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 273, - EndPos: 318, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 282, - EndPos: 285, - }, - }, - Value: []byte("foo"), - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 286, - EndPos: 300, - }, - }, - Type: &ast.Nullable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 286, - EndPos: 290, - }, - }, - Expr: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 287, - EndPos: 290, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 287, - EndPos: 290, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 291, - EndPos: 295, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 291, - EndPos: 295, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 296, - EndPos: 300, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 296, - EndPos: 300, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 296, - EndPos: 300, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 302, - EndPos: 314, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 302, - EndPos: 305, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 302, - EndPos: 305, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 306, - EndPos: 314, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 307, - EndPos: 314, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 310, - EndPos: 314, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 310, - EndPos: 314, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 319, - EndPos: 383, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 325, - EndPos: 328, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 330, - EndPos: 382, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 346, - EndPos: 349, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 330, - EndPos: 336, - }, - }, - Value: []byte("public"), - }, - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 350, - EndPos: 364, - }, - }, - Type: &ast.Nullable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 350, - EndPos: 354, - }, - }, - Expr: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 351, - EndPos: 354, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 351, - EndPos: 354, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 355, - EndPos: 359, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 355, - EndPos: 359, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 360, - EndPos: 364, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 360, - EndPos: 364, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 360, - EndPos: 364, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 366, - EndPos: 378, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 366, - EndPos: 369, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 366, - EndPos: 369, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 370, - EndPos: 378, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 371, - EndPos: 378, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 374, - EndPos: 378, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 374, - EndPos: 378, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 380, - EndPos: 382, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 384, - EndPos: 426, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 384, - EndPos: 425, - }, - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 393, - EndPos: 407, - }, - }, - Type: &ast.Nullable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 393, - EndPos: 397, - }, - }, - Expr: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 394, - EndPos: 397, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 394, - EndPos: 397, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 398, - EndPos: 402, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 398, - EndPos: 402, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 403, - EndPos: 407, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 403, - EndPos: 407, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 403, - EndPos: 407, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 409, - EndPos: 421, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 409, - EndPos: 412, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 409, - EndPos: 412, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 413, - EndPos: 421, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 414, - EndPos: 421, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 417, - EndPos: 421, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 417, - EndPos: 421, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 427, - EndPos: 476, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 427, - EndPos: 475, - }, - }, - Static: true, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 443, - EndPos: 457, - }, - }, - Type: &ast.Nullable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 443, - EndPos: 447, - }, - }, - Expr: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 444, - EndPos: 447, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 444, - EndPos: 447, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 448, - EndPos: 452, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 448, - EndPos: 452, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 453, - EndPos: 457, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 453, - EndPos: 457, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 453, - EndPos: 457, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 459, - EndPos: 471, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 459, - EndPos: 462, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 459, - EndPos: 462, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 463, - EndPos: 471, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 464, - EndPos: 471, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 467, - EndPos: 471, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 467, - EndPos: 471, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 23, - EndLine: 23, - StartPos: 478, - EndPos: 498, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 23, - EndLine: 23, - StartPos: 478, - EndPos: 497, - }, - }, - Value: []byte("1234567890123456789"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 24, - EndLine: 24, - StartPos: 499, - EndPos: 520, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 24, - EndLine: 24, - StartPos: 499, - EndPos: 519, - }, - }, - Value: []byte("12345678901234567890"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 25, - EndLine: 25, - StartPos: 521, - EndPos: 524, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 25, - EndLine: 25, - StartPos: 521, - EndPos: 523, - }, - }, - Value: []byte("0."), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 26, - EndLine: 26, - StartPos: 525, - EndPos: 592, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 26, - EndLine: 26, - StartPos: 525, - EndPos: 591, - }, - }, - Value: []byte("0b0111111111111111111111111111111111111111111111111111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 27, - EndLine: 27, - StartPos: 593, - EndPos: 660, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 27, - EndLine: 27, - StartPos: 593, - EndPos: 659, - }, - }, - Value: []byte("0b1111111111111111111111111111111111111111111111111111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 28, - EndLine: 28, - StartPos: 661, - EndPos: 682, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 28, - EndLine: 28, - StartPos: 661, - EndPos: 681, - }, - }, - Value: []byte("0x007111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 29, - EndLine: 29, - StartPos: 683, - EndPos: 702, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 29, - EndLine: 29, - StartPos: 683, - EndPos: 701, - }, - }, - Value: []byte("0x8111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 703, - EndPos: 713, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 703, - EndPos: 712, - }, - }, - Value: []byte("__CLASS__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 714, - EndPos: 722, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 714, - EndPos: 721, - }, - }, - Value: []byte("__DIR__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 723, - EndPos: 732, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 723, - EndPos: 731, - }, - }, - Value: []byte("__FILE__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 733, - EndPos: 746, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 733, - EndPos: 745, - }, - }, - Value: []byte("__FUNCTION__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 747, - EndPos: 756, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 747, - EndPos: 755, - }, - }, - Value: []byte("__LINE__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 757, - EndPos: 771, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 757, - EndPos: 770, - }, - }, - Value: []byte("__NAMESPACE__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 772, - EndPos: 783, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 772, - EndPos: 782, - }, - }, - Value: []byte("__METHOD__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 784, - EndPos: 794, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 784, - EndPos: 793, - }, - }, - Value: []byte("__TRAIT__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 796, - EndPos: 808, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 796, - EndPos: 807, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 797, - EndPos: 802, - }, - }, - Value: []byte("test "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 802, - EndPos: 806, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 802, - EndPos: 806, - }, - }, - Value: []byte("$var"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 809, - EndPos: 824, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 809, - EndPos: 823, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 810, - EndPos: 815, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 815, - EndPos: 822, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 815, - EndPos: 819, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 815, - EndPos: 819, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 40, - EndLine: 40, - StartPos: 820, - EndPos: 821, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 825, - EndPos: 841, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 825, - EndPos: 840, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 826, - EndPos: 831, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 831, - EndPos: 839, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 831, - EndPos: 835, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 831, - EndPos: 835, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 836, - EndPos: 838, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 836, - EndPos: 838, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 842, - EndPos: 896, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 842, - EndPos: 895, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 843, - EndPos: 848, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 848, - EndPos: 894, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 848, - EndPos: 852, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 848, - EndPos: 852, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ScalarString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 42, - EndLine: 42, - StartPos: 853, - EndPos: 893, - }, - }, - Value: []byte("1234567890123456789012345678901234567890"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 897, - EndPos: 952, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 897, - EndPos: 951, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 898, - EndPos: 903, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 903, - EndPos: 950, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 903, - EndPos: 907, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 903, - EndPos: 907, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ScalarString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 908, - EndPos: 949, - }, - }, - Value: []byte("-1234567890123456789012345678901234567890"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 953, - EndPos: 970, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 953, - EndPos: 969, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 954, - EndPos: 959, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 959, - EndPos: 968, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 959, - EndPos: 963, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 959, - EndPos: 963, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ScalarString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 964, - EndPos: 967, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 971, - EndPos: 989, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 971, - EndPos: 988, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 972, - EndPos: 977, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 977, - EndPos: 987, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 977, - EndPos: 981, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 977, - EndPos: 981, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 982, - EndPos: 986, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 45, - EndLine: 45, - StartPos: 982, - EndPos: 986, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 990, - EndPos: 1002, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 990, - EndPos: 1001, - }, - }, - Parts: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 991, - EndPos: 995, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 991, - EndPos: 995, - }, - }, - Value: []byte("$foo"), - }, - }, - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 995, - EndPos: 996, - }, - }, - Value: []byte(" "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 996, - EndPos: 1000, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 996, - EndPos: 1000, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1003, - EndPos: 1022, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1003, - EndPos: 1021, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1004, - EndPos: 1009, - }, - }, - Value: []byte("test "), - }, - &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1009, - EndPos: 1018, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1009, - EndPos: 1013, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1009, - EndPos: 1013, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1015, - EndPos: 1018, - }, - }, - Value: []byte("bar"), - }, - }, - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: 47, - StartPos: 1018, - EndPos: 1020, - }, - }, - Value: []byte("()"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1023, - EndPos: 1037, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1023, - EndPos: 1036, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1024, - EndPos: 1029, - }, - }, - Value: []byte("test "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1029, - EndPos: 1035, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 48, - EndLine: 48, - StartPos: 1031, - EndPos: 1034, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1038, - EndPos: 1055, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1038, - EndPos: 1054, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1039, - EndPos: 1044, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1044, - EndPos: 1053, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1046, - EndPos: 1049, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1046, - EndPos: 1049, - }, - }, - Value: []byte("foo"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 1050, - EndPos: 1051, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1056, - EndPos: 1071, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1056, - EndPos: 1070, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1057, - EndPos: 1062, - }, - }, - Value: []byte("test "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1062, - EndPos: 1069, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1064, - EndPos: 1068, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 1064, - EndPos: 1068, - }, - }, - Value: []byte("$foo"), - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1072, - EndPos: 1093, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1072, - EndPos: 1092, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1073, - EndPos: 1078, - }, - }, - Value: []byte("test "), - }, - &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1079, - EndPos: 1090, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1079, - EndPos: 1083, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1079, - EndPos: 1083, - }, - }, - Value: []byte("$foo"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1085, - EndPos: 1088, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 1088, - EndPos: 1090, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 53, - EndLine: 54, - StartPos: 1095, - EndPos: 1111, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 53, - EndLine: 53, - StartPos: 1099, - EndPos: 1101, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 53, - EndLine: 53, - StartPos: 1099, - EndPos: 1101, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 55, - EndLine: 57, - StartPos: 1112, - EndPos: 1141, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 1116, - EndPos: 1118, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 1116, - EndPos: 1118, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: -1, - StartPos: 1122, - EndPos: -1, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1130, - EndPos: 1132, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1130, - EndPos: 1132, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 60, - StartPos: 1142, - EndPos: 1164, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1146, - EndPos: 1148, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1146, - EndPos: 1148, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 59, - EndLine: -1, - StartPos: 1152, - EndPos: -1, - }, - }, - Alt: true, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 65, - StartPos: 1165, - EndPos: 1213, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1169, - EndPos: 1171, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1169, - EndPos: 1171, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: -1, - StartPos: 1175, - EndPos: -1, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1183, - EndPos: 1185, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1183, - EndPos: 1185, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: -1, - StartPos: 1188, - EndPos: -1, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1196, - EndPos: 1198, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1196, - EndPos: 1198, - }, - }, - Value: []byte("$c"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 64, - EndLine: -1, - StartPos: 1201, - EndPos: -1, - }, - }, - Alt: true, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1215, - EndPos: 1235, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1222, - EndPos: 1223, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1225, - EndPos: 1235, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1227, - EndPos: 1233, - }, - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1236, - EndPos: 1258, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1243, - EndPos: 1244, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1246, - EndPos: 1258, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1248, - EndPos: 1256, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1254, - EndPos: 1255, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1259, - EndPos: 1290, - }, - }, - Alt: true, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1266, - EndPos: 1267, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1271, - EndPos: 1280, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1271, - EndPos: 1280, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1277, - EndPos: 1278, - }, - }, - Value: []byte("3"), - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1291, - EndPos: 1334, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1297, - EndPos: 1300, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassConstList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1302, - EndPos: 1332, - }, - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1302, - EndPos: 1308, - }, - }, - Value: []byte("public"), - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1315, - EndPos: 1322, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1315, - EndPos: 1318, - }, - }, - Value: []byte("FOO"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1321, - EndPos: 1322, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1324, - EndPos: 1331, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1324, - EndPos: 1327, - }, - }, - Value: []byte("BAR"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1330, - EndPos: 1331, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1335, - EndPos: 1371, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1341, - EndPos: 1344, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassConstList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1346, - EndPos: 1369, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1352, - EndPos: 1359, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1352, - EndPos: 1355, - }, - }, - Value: []byte("FOO"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1358, - EndPos: 1359, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1361, - EndPos: 1368, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1361, - EndPos: 1364, - }, - }, - Value: []byte("BAR"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1367, - EndPos: 1368, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1372, - EndPos: 1402, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1378, - EndPos: 1381, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1383, - EndPos: 1400, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1392, - EndPos: 1395, - }, - }, - Value: []byte("bar"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1398, - EndPos: 1400, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1403, - EndPos: 1448, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1409, - EndPos: 1412, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1414, - EndPos: 1446, - }, - }, - ReturnsRef: true, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1438, - EndPos: 1441, - }, - }, - Value: []byte("bar"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1414, - EndPos: 1420, - }, - }, - Value: []byte("public"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1421, - EndPos: 1427, - }, - }, - Value: []byte("static"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1444, - EndPos: 1446, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1449, - EndPos: 1500, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1455, - EndPos: 1458, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1460, - EndPos: 1498, - }, - }, - ReturnsRef: true, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1484, - EndPos: 1487, - }, - }, - Value: []byte("bar"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1460, - EndPos: 1466, - }, - }, - Value: []byte("public"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1467, - EndPos: 1473, - }, - }, - Value: []byte("static"), - }, - }, - ReturnType: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1491, - EndPos: 1495, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1491, - EndPos: 1495, - }, - }, - Value: []byte("void"), - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1496, - EndPos: 1498, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1501, - EndPos: 1522, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1516, - EndPos: 1519, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1501, - EndPos: 1509, - }, - }, - Value: []byte("abstract"), - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1523, - EndPos: 1554, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1535, - EndPos: 1538, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1523, - EndPos: 1528, - }, - }, - Value: []byte("final"), - }, - }, - Extends: &ast.StmtClassExtends{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1539, - EndPos: 1550, - }, - }, - ClassName: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1547, - EndPos: 1550, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1547, - EndPos: 1550, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1555, - EndPos: 1589, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1567, - EndPos: 1570, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1555, - EndPos: 1560, - }, - }, - Value: []byte("final"), - }, - }, - Implements: &ast.StmtClassImplements{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1571, - EndPos: 1585, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1582, - EndPos: 1585, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1582, - EndPos: 1585, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1590, - EndPos: 1629, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1602, - EndPos: 1605, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1590, - EndPos: 1595, - }, - }, - Value: []byte("final"), - }, - }, - Implements: &ast.StmtClassImplements{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1606, - EndPos: 1625, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1617, - EndPos: 1620, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1617, - EndPos: 1620, - }, - }, - Value: []byte("bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1622, - EndPos: 1625, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1622, - EndPos: 1625, - }, - }, - Value: []byte("baz"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1630, - EndPos: 1678, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1630, - EndPos: 1677, - }, - }, - Class: &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1634, - EndPos: 1677, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1639, - EndPos: 1641, - }, - }, - }, - Extends: &ast.StmtClassExtends{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1642, - EndPos: 1653, - }, - }, - ClassName: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1650, - EndPos: 1653, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1650, - EndPos: 1653, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - Implements: &ast.StmtClassImplements{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1654, - EndPos: 1673, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1665, - EndPos: 1668, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1665, - EndPos: 1668, - }, - }, - Value: []byte("bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1670, - EndPos: 1673, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1670, - EndPos: 1673, - }, - }, - Value: []byte("baz"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtConstList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1680, - EndPos: 1703, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1686, - EndPos: 1693, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1686, - EndPos: 1689, - }, - }, - Value: []byte("FOO"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1692, - EndPos: 1693, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1695, - EndPos: 1702, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1695, - EndPos: 1698, - }, - }, - Value: []byte("BAR"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1701, - EndPos: 1702, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1704, - EndPos: 1727, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1711, - EndPos: 1712, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1714, - EndPos: 1727, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtContinue{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1716, - EndPos: 1725, - }, - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1728, - EndPos: 1753, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1735, - EndPos: 1736, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1738, - EndPos: 1753, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtContinue{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1740, - EndPos: 1751, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1749, - EndPos: 1750, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1754, - EndPos: 1780, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1761, - EndPos: 1762, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1764, - EndPos: 1780, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtContinue{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1766, - EndPos: 1778, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1775, - EndPos: 1776, - }, - }, - Value: []byte("3"), - }, - }, - }, - }, - }, - &ast.StmtDeclare{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1781, - EndPos: 1798, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1789, - EndPos: 1796, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1789, - EndPos: 1794, - }, - }, - Value: []byte("ticks"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1795, - EndPos: 1796, - }, - }, - Value: []byte("1"), - }, - }, - }, - Stmt: &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1797, - EndPos: 1798, - }, - }, - }, - }, - &ast.StmtDeclare{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1799, - EndPos: 1818, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1807, - EndPos: 1814, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1807, - EndPos: 1812, - }, - }, - Value: []byte("ticks"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1813, - EndPos: 1814, - }, - }, - Value: []byte("1"), - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1816, - EndPos: 1818, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtDeclare{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1819, - EndPos: 1848, - }, - }, - Alt: true, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1827, - EndPos: 1834, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1827, - EndPos: 1832, - }, - }, - Value: []byte("ticks"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 87, - EndLine: 87, - StartPos: 1833, - EndPos: 1834, - }, - }, - Value: []byte("1"), - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtDo{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 88, - EndLine: 88, - StartPos: 1849, - EndPos: 1864, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 88, - EndLine: 88, - StartPos: 1852, - EndPos: 1854, - }, - }, - Stmts: []ast.Vertex{}, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 88, - EndLine: 88, - StartPos: 1861, - EndPos: 1862, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtEcho{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 1865, - EndPos: 1876, - }, - }, - Exprs: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 1870, - EndPos: 1872, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 1870, - EndPos: 1872, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 1874, - EndPos: 1875, - }, - }, - Value: []byte("1"), - }, - }, - }, - &ast.StmtEcho{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 1877, - EndPos: 1886, - }, - }, - Exprs: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 1882, - EndPos: 1884, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 1882, - EndPos: 1884, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtFor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1887, - EndPos: 1922, - }, - }, - Init: []ast.Vertex{ - &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1891, - EndPos: 1897, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1891, - EndPos: 1893, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1891, - EndPos: 1893, - }, - }, - Value: []byte("$i"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1896, - EndPos: 1897, - }, - }, - Value: []byte("0"), - }, - }, - }, - Cond: []ast.Vertex{ - &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1899, - EndPos: 1906, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1899, - EndPos: 1901, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1899, - EndPos: 1901, - }, - }, - Value: []byte("$i"), - }, - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1904, - EndPos: 1906, - }, - }, - Value: []byte("10"), - }, - }, - }, - Loop: []ast.Vertex{ - &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1908, - EndPos: 1912, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1908, - EndPos: 1910, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1908, - EndPos: 1910, - }, - }, - Value: []byte("$i"), - }, - }, - }, - &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1914, - EndPos: 1918, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1914, - EndPos: 1916, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1914, - EndPos: 1916, - }, - }, - Value: []byte("$i"), - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1920, - EndPos: 1922, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtFor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1923, - EndPos: 1959, - }, - }, - Alt: true, - Cond: []ast.Vertex{ - &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1929, - EndPos: 1936, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1929, - EndPos: 1931, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1929, - EndPos: 1931, - }, - }, - Value: []byte("$i"), - }, - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1934, - EndPos: 1936, - }, - }, - Value: []byte("10"), - }, - }, - }, - Loop: []ast.Vertex{ - &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1938, - EndPos: 1942, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1938, - EndPos: 1940, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1938, - EndPos: 1940, - }, - }, - Value: []byte("$i"), - }, - }, - }, - &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1944, - EndPos: 1948, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1944, - EndPos: 1946, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 92, - EndLine: 92, - StartPos: 1944, - EndPos: 1946, - }, - }, - Value: []byte("$i"), - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 1960, - EndPos: 1981, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 1969, - EndPos: 1971, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 1969, - EndPos: 1971, - }, - }, - Value: []byte("$a"), - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 1975, - EndPos: 1977, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 1975, - EndPos: 1977, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 93, - EndLine: 93, - StartPos: 1979, - EndPos: 1981, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1982, - EndPos: 2014, - }, - }, - Alt: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1991, - EndPos: 1993, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1991, - EndPos: 1993, - }, - }, - Value: []byte("$a"), - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1997, - EndPos: 1999, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1997, - EndPos: 1999, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2015, - EndPos: 2042, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2024, - EndPos: 2026, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2024, - EndPos: 2026, - }, - }, - Value: []byte("$a"), - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2030, - EndPos: 2032, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2030, - EndPos: 2032, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2036, - EndPos: 2038, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2036, - EndPos: 2038, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2040, - EndPos: 2042, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2043, - EndPos: 2071, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2052, - EndPos: 2054, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2052, - EndPos: 2054, - }, - }, - Value: []byte("$a"), - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2058, - EndPos: 2060, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2058, - EndPos: 2060, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2064, - EndPos: 2067, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2065, - EndPos: 2067, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2065, - EndPos: 2067, - }, - }, - Value: []byte("$v"), - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2069, - EndPos: 2071, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2072, - EndPos: 2105, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2081, - EndPos: 2083, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2081, - EndPos: 2083, - }, - }, - Value: []byte("$a"), - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2087, - EndPos: 2089, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2087, - EndPos: 2089, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2093, - EndPos: 2101, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2098, - EndPos: 2100, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2098, - EndPos: 2100, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2098, - EndPos: 2100, - }, - }, - Value: []byte("$v"), - }, - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2103, - EndPos: 2105, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2106, - EndPos: 2135, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2115, - EndPos: 2117, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2115, - EndPos: 2117, - }, - }, - Value: []byte("$a"), - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2121, - EndPos: 2123, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2121, - EndPos: 2123, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprShortList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2127, - EndPos: 2131, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2128, - EndPos: 2130, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2128, - EndPos: 2130, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2128, - EndPos: 2130, - }, - }, - Value: []byte("$v"), - }, - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2133, - EndPos: 2135, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2136, - EndPos: 2153, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2145, - EndPos: 2148, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2154, - EndPos: 2178, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2163, - EndPos: 2166, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtReturn{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2170, - EndPos: 2177, - }, - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2179, - EndPos: 2206, - }, - }, - ReturnsRef: true, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2189, - EndPos: 2192, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtReturn{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2196, - EndPos: 2205, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2203, - EndPos: 2204, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2207, - EndPos: 2231, - }, - }, - ReturnsRef: true, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2217, - EndPos: 2220, - }, - }, - Value: []byte("foo"), - }, - ReturnType: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2224, - EndPos: 2228, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2224, - EndPos: 2228, - }, - }, - Value: []byte("void"), - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtGlobal{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2232, - EndPos: 2246, - }, - }, - Vars: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2239, - EndPos: 2241, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2239, - EndPos: 2241, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2243, - EndPos: 2245, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2243, - EndPos: 2245, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtLabel{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2247, - EndPos: 2249, - }, - }, - LabelName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2247, - EndPos: 2248, - }, - }, - Value: []byte("a"), - }, - }, - &ast.StmtGoto{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2250, - EndPos: 2257, - }, - }, - Label: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2255, - EndPos: 2256, - }, - }, - Value: []byte("a"), - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2258, - EndPos: 2268, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2262, - EndPos: 2264, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2262, - EndPos: 2264, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2266, - EndPos: 2268, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2269, - EndPos: 2294, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2273, - EndPos: 2275, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2273, - EndPos: 2275, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2277, - EndPos: 2279, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2280, - EndPos: 2294, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2288, - EndPos: 2290, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2288, - EndPos: 2290, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2292, - EndPos: 2294, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2295, - EndPos: 2313, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2299, - EndPos: 2301, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2299, - EndPos: 2301, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2303, - EndPos: 2305, - }, - }, - Stmts: []ast.Vertex{}, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2306, - EndPos: 2313, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2311, - EndPos: 2313, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2314, - EndPos: 2362, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2318, - EndPos: 2320, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2318, - EndPos: 2320, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2322, - EndPos: 2324, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2325, - EndPos: 2339, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2333, - EndPos: 2335, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2333, - EndPos: 2335, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2337, - EndPos: 2339, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2340, - EndPos: 2354, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2348, - EndPos: 2350, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2348, - EndPos: 2350, - }, - }, - Value: []byte("$c"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2352, - EndPos: 2354, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2355, - EndPos: 2362, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2360, - EndPos: 2362, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2363, - EndPos: 2412, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2367, - EndPos: 2369, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2367, - EndPos: 2369, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2371, - EndPos: 2373, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2374, - EndPos: 2388, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2382, - EndPos: 2384, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2382, - EndPos: 2384, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2386, - EndPos: 2388, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2389, - EndPos: 2412, - }, - }, - Stmt: &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2394, - EndPos: 2412, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2398, - EndPos: 2400, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2398, - EndPos: 2400, - }, - }, - Value: []byte("$c"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2402, - EndPos: 2404, - }, - }, - Stmts: []ast.Vertex{}, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2405, - EndPos: 2412, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2410, - EndPos: 2412, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - }, - &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2413, - EndPos: 2415, - }, - }, - }, - &ast.StmtInlineHtml{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2415, - EndPos: 2428, - }, - }, - Value: []byte("
"), - }, - &ast.StmtInterface{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2431, - EndPos: 2447, - }, - }, - InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2441, - EndPos: 2444, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtInterface{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2448, - EndPos: 2476, - }, - }, - InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2458, - EndPos: 2461, - }, - }, - Value: []byte("Foo"), - }, - Extends: &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2462, - EndPos: 2473, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2470, - EndPos: 2473, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2470, - EndPos: 2473, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtInterface{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2477, - EndPos: 2510, - }, - }, - InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2487, - EndPos: 2490, - }, - }, - Value: []byte("Foo"), - }, - Extends: &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2491, - EndPos: 2507, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2499, - EndPos: 2502, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2499, - EndPos: 2502, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2504, - EndPos: 2507, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2504, - EndPos: 2507, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtNamespace{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2511, - EndPos: 2525, - }, - }, - Name: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2521, - EndPos: 2524, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2521, - EndPos: 2524, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtNamespace{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2526, - EndPos: 2542, - }, - }, - Name: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2536, - EndPos: 2539, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2536, - EndPos: 2539, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtNamespace{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 117, - EndLine: 117, - StartPos: 2543, - EndPos: 2555, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2556, - EndPos: 2575, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2562, - EndPos: 2565, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtPropertyList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2567, - EndPos: 2574, - }, - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2567, - EndPos: 2570, - }, - }, - Value: []byte("var"), - }, - }, - Properties: []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2571, - EndPos: 2573, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2571, - EndPos: 2573, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2571, - EndPos: 2573, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2576, - EndPos: 2613, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2582, - EndPos: 2585, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtPropertyList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2587, - EndPos: 2612, - }, - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2587, - EndPos: 2593, - }, - }, - Value: []byte("public"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2594, - EndPos: 2600, - }, - }, - Value: []byte("static"), - }, - }, - Properties: []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2601, - EndPos: 2603, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2601, - EndPos: 2603, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2601, - EndPos: 2603, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2605, - EndPos: 2611, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2605, - EndPos: 2607, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2605, - EndPos: 2607, - }, - }, - Value: []byte("$b"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2610, - EndPos: 2611, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2614, - EndPos: 2632, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2621, - EndPos: 2623, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2621, - EndPos: 2623, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2621, - EndPos: 2623, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2625, - EndPos: 2631, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2625, - EndPos: 2627, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2625, - EndPos: 2627, - }, - }, - Value: []byte("$b"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: 120, - StartPos: 2630, - EndPos: 2631, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 122, - EndLine: 126, - StartPos: 2634, - EndPos: 2694, - }, - }, - Alt: true, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 122, - EndLine: 122, - StartPos: 2642, - EndPos: 2643, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 123, - EndLine: -1, - StartPos: 2651, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 123, - EndLine: 123, - StartPos: 2656, - EndPos: 2657, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtDefault{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 124, - EndLine: -1, - StartPos: 2663, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 125, - EndLine: -1, - StartPos: 2676, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 125, - EndLine: 125, - StartPos: 2681, - EndPos: 2682, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 128, - EndLine: 131, - StartPos: 2696, - EndPos: 2744, - }, - }, - Alt: true, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 128, - EndLine: 128, - StartPos: 2704, - EndPos: 2705, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 129, - EndLine: -1, - StartPos: 2714, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 129, - EndLine: 129, - StartPos: 2719, - EndPos: 2720, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 130, - EndLine: -1, - StartPos: 2726, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2731, - EndPos: 2732, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 133, - EndLine: 136, - StartPos: 2746, - EndPos: 2798, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 133, - EndLine: 133, - StartPos: 2754, - EndPos: 2755, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 2763, - EndPos: 2777, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 2768, - EndPos: 2769, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 2771, - EndPos: 2777, - }, - }, - }, - }, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2782, - EndPos: 2796, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2787, - EndPos: 2788, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2790, - EndPos: 2796, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 138, - EndLine: 141, - StartPos: 2800, - EndPos: 2853, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 2808, - EndPos: 2809, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 2818, - EndPos: 2832, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 2823, - EndPos: 2824, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 2826, - EndPos: 2832, - }, - }, - }, - }, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2837, - EndPos: 2851, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2842, - EndPos: 2843, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2845, - EndPos: 2851, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtThrow{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2855, - EndPos: 2864, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2861, - EndPos: 2863, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2861, - EndPos: 2863, - }, - }, - Value: []byte("$e"), - }, - }, - }, - &ast.StmtTrait{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 2866, - EndPos: 2878, - }, - }, - TraitName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 145, - EndLine: 145, - StartPos: 2872, - EndPos: 2875, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 2879, - EndPos: 2901, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 2885, - EndPos: 2888, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 2891, - EndPos: 2899, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 2895, - EndPos: 2898, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 2895, - EndPos: 2898, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 146, - EndLine: 146, - StartPos: 2898, - EndPos: 2899, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2902, - EndPos: 2931, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2908, - EndPos: 2911, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2914, - EndPos: 2929, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2918, - EndPos: 2921, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2918, - EndPos: 2921, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2923, - EndPos: 2926, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2923, - EndPos: 2926, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 2927, - EndPos: 2929, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2932, - EndPos: 2978, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2938, - EndPos: 2941, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2944, - EndPos: 2976, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2948, - EndPos: 2951, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2948, - EndPos: 2951, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2953, - EndPos: 2956, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2953, - EndPos: 2956, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2957, - EndPos: 2976, - }, - }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2959, - EndPos: 2973, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2959, - EndPos: 2962, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2959, - EndPos: 2962, - }, - }, - Value: []byte("one"), - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 2966, - EndPos: 2973, - }, - }, - Value: []byte("include"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 2979, - EndPos: 3024, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 2985, - EndPos: 2988, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 2991, - EndPos: 3022, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 2995, - EndPos: 2998, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 2995, - EndPos: 2998, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3000, - EndPos: 3003, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3000, - EndPos: 3003, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3004, - EndPos: 3022, - }, - }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3006, - EndPos: 3019, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3006, - EndPos: 3009, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3006, - EndPos: 3009, - }, - }, - Value: []byte("one"), - }, - }, - Modifier: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3013, - EndPos: 3019, - }, - }, - Value: []byte("public"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3025, - EndPos: 3074, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3031, - EndPos: 3034, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3037, - EndPos: 3072, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3041, - EndPos: 3044, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3041, - EndPos: 3044, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3046, - EndPos: 3049, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3046, - EndPos: 3049, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3050, - EndPos: 3072, - }, - }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3052, - EndPos: 3069, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3052, - EndPos: 3055, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3052, - EndPos: 3055, - }, - }, - Value: []byte("one"), - }, - }, - Modifier: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3059, - EndPos: 3065, - }, - }, - Value: []byte("public"), - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3066, - EndPos: 3069, - }, - }, - Value: []byte("two"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3075, - EndPos: 3152, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3081, - EndPos: 3084, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3087, - EndPos: 3150, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3091, - EndPos: 3094, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3091, - EndPos: 3094, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3096, - EndPos: 3099, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3096, - EndPos: 3099, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3100, - EndPos: 3150, - }, - }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUsePrecedence{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3102, - EndPos: 3130, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3102, - EndPos: 3110, - }, - }, - Trait: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3102, - EndPos: 3105, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3102, - EndPos: 3105, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3107, - EndPos: 3110, - }, - }, - Value: []byte("one"), - }, - }, - Insteadof: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3121, - EndPos: 3124, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3121, - EndPos: 3124, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3126, - EndPos: 3130, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3126, - EndPos: 3130, - }, - }, - Value: []byte("Quux"), - }, - }, - }, - }, - }, - &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3132, - EndPos: 3147, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3132, - EndPos: 3140, - }, - }, - Trait: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3132, - EndPos: 3135, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3132, - EndPos: 3135, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3137, - EndPos: 3140, - }, - }, - Value: []byte("one"), - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 151, - EndLine: 151, - StartPos: 3144, - EndPos: 3147, - }, - }, - Value: []byte("two"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 153, - EndLine: -1, - StartPos: 3154, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{}, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3161, - EndPos: 3191, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3168, - EndPos: 3191, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3175, - EndPos: 3184, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3175, - EndPos: 3184, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3185, - EndPos: 3187, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3185, - EndPos: 3187, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3192, - EndPos: 3239, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3199, - EndPos: 3239, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3206, - EndPos: 3215, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3206, - EndPos: 3215, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3216, - EndPos: 3232, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3216, - EndPos: 3232, - }, - }, - Value: []byte("RuntimeException"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3233, - EndPos: 3235, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3233, - EndPos: 3235, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3240, - EndPos: 3301, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3247, - EndPos: 3270, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3254, - EndPos: 3263, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3254, - EndPos: 3263, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3264, - EndPos: 3266, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3264, - EndPos: 3266, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3271, - EndPos: 3301, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3278, - EndPos: 3294, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3278, - EndPos: 3294, - }, - }, - Value: []byte("RuntimeException"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3295, - EndPos: 3297, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3295, - EndPos: 3297, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3302, - EndPos: 3343, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3309, - EndPos: 3332, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3316, - EndPos: 3325, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3316, - EndPos: 3325, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3328, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3328, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - Finally: &ast.StmtFinally{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3333, - EndPos: 3343, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtUnset{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3345, - EndPos: 3360, - }, - }, - Vars: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3351, - EndPos: 3353, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3351, - EndPos: 3353, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3355, - EndPos: 3357, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3355, - EndPos: 3357, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3362, - EndPos: 3370, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3366, - EndPos: 3369, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3371, - EndPos: 3380, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3375, - EndPos: 3379, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3376, - EndPos: 3379, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3376, - EndPos: 3379, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3381, - EndPos: 3397, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3385, - EndPos: 3396, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3386, - EndPos: 3389, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3386, - EndPos: 3389, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 163, - EndLine: 163, - StartPos: 3393, - EndPos: 3396, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3398, - EndPos: 3411, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3405, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3405, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3402, - EndPos: 3405, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3407, - EndPos: 3410, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3407, - EndPos: 3410, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3407, - EndPos: 3410, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3412, - EndPos: 3432, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3419, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3419, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3416, - EndPos: 3419, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3421, - EndPos: 3431, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3421, - EndPos: 3424, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3421, - EndPos: 3424, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3428, - EndPos: 3431, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3433, - EndPos: 3456, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3437, - EndPos: 3445, - }, - }, - Value: []byte("function"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3446, - EndPos: 3449, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3446, - EndPos: 3449, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3446, - EndPos: 3449, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3451, - EndPos: 3455, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3452, - EndPos: 3455, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3452, - EndPos: 3455, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3457, - EndPos: 3494, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3461, - EndPos: 3469, - }, - }, - Value: []byte("function"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3470, - EndPos: 3480, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3470, - EndPos: 3473, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3470, - EndPos: 3473, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3477, - EndPos: 3480, - }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3482, - EndPos: 3493, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3483, - EndPos: 3486, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3483, - EndPos: 3486, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3490, - EndPos: 3493, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3495, - EndPos: 3515, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3499, - EndPos: 3504, - }, - }, - Value: []byte("const"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3505, - EndPos: 3508, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3505, - EndPos: 3508, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3505, - EndPos: 3508, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3510, - EndPos: 3514, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3511, - EndPos: 3514, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3511, - EndPos: 3514, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3516, - EndPos: 3550, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3520, - EndPos: 3525, - }, - }, - Value: []byte("const"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3536, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3529, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3529, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3533, - EndPos: 3536, - }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3538, - EndPos: 3549, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3539, - EndPos: 3542, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3539, - EndPos: 3542, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3546, - EndPos: 3549, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - &ast.StmtGroupUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3552, - EndPos: 3572, - }, - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3557, - EndPos: 3560, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3557, - EndPos: 3560, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3562, - EndPos: 3565, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3562, - EndPos: 3565, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3562, - EndPos: 3565, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3567, - EndPos: 3570, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3567, - EndPos: 3570, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3567, - EndPos: 3570, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - }, - }, - &ast.StmtGroupUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3573, - EndPos: 3600, - }, - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3577, - EndPos: 3580, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3577, - EndPos: 3580, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3582, - EndPos: 3585, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3582, - EndPos: 3585, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3582, - EndPos: 3585, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3587, - EndPos: 3598, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3587, - EndPos: 3590, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3587, - EndPos: 3590, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3594, - EndPos: 3598, - }, - }, - Value: []byte("quux"), - }, - }, - }, - }, - &ast.StmtGroupUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3601, - EndPos: 3629, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3605, - EndPos: 3613, - }, - }, - Value: []byte("function"), - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3614, - EndPos: 3617, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3614, - EndPos: 3617, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3619, - EndPos: 3622, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3619, - EndPos: 3622, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3619, - EndPos: 3622, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3624, - EndPos: 3627, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3624, - EndPos: 3627, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 173, - EndLine: 173, - StartPos: 3624, - EndPos: 3627, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - }, - }, - &ast.StmtGroupUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3630, - EndPos: 3656, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3634, - EndPos: 3639, - }, - }, - Value: []byte("const"), - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3641, - EndPos: 3644, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3641, - EndPos: 3644, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3646, - EndPos: 3649, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3646, - EndPos: 3649, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3646, - EndPos: 3649, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3651, - EndPos: 3654, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3651, - EndPos: 3654, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3651, - EndPos: 3654, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - }, - }, - &ast.StmtGroupUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3657, - EndPos: 3691, - }, - }, - Prefix: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3661, - EndPos: 3664, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3661, - EndPos: 3664, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3666, - EndPos: 3675, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3666, - EndPos: 3671, - }, - }, - Value: []byte("const"), - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3672, - EndPos: 3675, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3672, - EndPos: 3675, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3677, - EndPos: 3689, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3677, - EndPos: 3685, - }, - }, - Value: []byte("function"), - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3686, - EndPos: 3689, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3686, - EndPos: 3689, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3693, - EndPos: 3699, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3693, - EndPos: 3698, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3693, - EndPos: 3695, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3693, - EndPos: 3695, - }, - }, - Value: []byte("$a"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3696, - EndPos: 3697, - }, - }, - Value: []byte("1"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3700, - EndPos: 3709, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3700, - EndPos: 3708, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3700, - EndPos: 3705, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3700, - EndPos: 3702, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3700, - EndPos: 3702, - }, - }, - Value: []byte("$a"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3703, - EndPos: 3704, - }, - }, - Value: []byte("1"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3706, - EndPos: 3707, - }, - }, - Value: []byte("2"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3710, - EndPos: 3718, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3710, - EndPos: 3717, - }, - }, - Items: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3719, - EndPos: 3728, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3719, - EndPos: 3727, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3725, - EndPos: 3726, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3725, - EndPos: 3726, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3729, - EndPos: 3747, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3729, - EndPos: 3746, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3735, - EndPos: 3739, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3735, - EndPos: 3736, - }, - }, - Value: []byte("1"), - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3738, - EndPos: 3739, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3741, - EndPos: 3744, - }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3741, - EndPos: 3744, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3742, - EndPos: 3744, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3742, - EndPos: 3744, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.ExprArrayItem{}, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3748, - EndPos: 3752, - }, - }, - Expr: &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3748, - EndPos: 3751, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3749, - EndPos: 3751, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3749, - EndPos: 3751, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3753, - EndPos: 3757, - }, - }, - Expr: &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3753, - EndPos: 3756, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3754, - EndPos: 3756, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3754, - EndPos: 3756, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3759, - EndPos: 3768, - }, - }, - Expr: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3759, - EndPos: 3767, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3759, - EndPos: 3762, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3759, - EndPos: 3762, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3764, - EndPos: 3767, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3769, - EndPos: 3779, - }, - }, - Expr: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3769, - EndPos: 3778, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3769, - EndPos: 3773, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3769, - EndPos: 3773, - }, - }, - Value: []byte("$foo"), - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3775, - EndPos: 3778, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3780, - EndPos: 3790, - }, - }, - Expr: &ast.ExprClone{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3780, - EndPos: 3789, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3786, - EndPos: 3788, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3786, - EndPos: 3788, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3791, - EndPos: 3800, - }, - }, - Expr: &ast.ExprClone{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3791, - EndPos: 3799, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3797, - EndPos: 3799, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3797, - EndPos: 3799, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 3801, - EndPos: 3814, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 3801, - EndPos: 3813, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3815, - EndPos: 3849, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3815, - EndPos: 3848, - }, - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3824, - EndPos: 3826, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3824, - EndPos: 3826, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3824, - EndPos: 3826, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3828, - EndPos: 3830, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3828, - EndPos: 3830, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3828, - EndPos: 3830, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - ClosureUse: &ast.ExprClosureUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3832, - EndPos: 3845, - }, - }, - Uses: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3837, - EndPos: 3839, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3837, - EndPos: 3839, - }, - }, - Value: []byte("$c"), - }, - }, - &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3841, - EndPos: 3844, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3842, - EndPos: 3844, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3842, - EndPos: 3844, - }, - }, - Value: []byte("$d"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 3850, - EndPos: 3870, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 3850, - EndPos: 3869, - }, - }, - ReturnType: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 3862, - EndPos: 3866, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 3862, - EndPos: 3866, - }, - }, - Value: []byte("void"), - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3871, - EndPos: 3875, - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3871, - EndPos: 3874, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3871, - EndPos: 3874, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3871, - EndPos: 3874, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3876, - EndPos: 3890, - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3876, - EndPos: 3889, - }, - }, - Const: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3876, - EndPos: 3889, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3886, - EndPos: 3889, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3891, - EndPos: 3896, - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3891, - EndPos: 3895, - }, - }, - Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3891, - EndPos: 3895, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3892, - EndPos: 3895, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3898, - EndPos: 3908, - }, - }, - Expr: &ast.ExprEmpty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3898, - EndPos: 3907, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3904, - EndPos: 3906, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3904, - EndPos: 3906, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 3909, - EndPos: 3913, - }, - }, - Expr: &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 3909, - EndPos: 3912, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 3910, - EndPos: 3912, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 197, - EndLine: 197, - StartPos: 3910, - EndPos: 3912, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3914, - EndPos: 3923, - }, - }, - Expr: &ast.ExprEval{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3914, - EndPos: 3922, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3919, - EndPos: 3921, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3919, - EndPos: 3921, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 3924, - EndPos: 3929, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 3924, - EndPos: 3928, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3930, - EndPos: 3939, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3930, - EndPos: 3938, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3935, - EndPos: 3937, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3935, - EndPos: 3937, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 3940, - EndPos: 3944, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 3940, - EndPos: 3943, - }, - }, - Die: true, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 3945, - EndPos: 3953, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 3945, - EndPos: 3952, - }, - }, - Die: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 3949, - EndPos: 3951, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 202, - EndLine: 202, - StartPos: 3949, - EndPos: 3951, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3954, - EndPos: 3960, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3954, - EndPos: 3959, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3954, - EndPos: 3957, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3954, - EndPos: 3957, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3957, - EndPos: 3959, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3961, - EndPos: 3977, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3961, - EndPos: 3976, - }, - }, - Function: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3961, - EndPos: 3974, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3971, - EndPos: 3974, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3974, - EndPos: 3976, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3978, - EndPos: 3985, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3978, - EndPos: 3984, - }, - }, - Function: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3978, - EndPos: 3982, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3979, - EndPos: 3982, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3982, - EndPos: 3984, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3986, - EndPos: 3993, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3986, - EndPos: 3992, - }, - }, - Function: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3986, - EndPos: 3990, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3986, - EndPos: 3990, - }, - }, - Value: []byte("$foo"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3990, - EndPos: 3992, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3995, - EndPos: 4000, - }, - }, - Expr: &ast.ExprPostDec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3995, - EndPos: 3999, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3995, - EndPos: 3997, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3995, - EndPos: 3997, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4001, - EndPos: 4006, - }, - }, - Expr: &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4001, - EndPos: 4005, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4001, - EndPos: 4003, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 4001, - EndPos: 4003, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4007, - EndPos: 4012, - }, - }, - Expr: &ast.ExprPreDec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4007, - EndPos: 4011, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4009, - EndPos: 4011, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4009, - EndPos: 4011, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4013, - EndPos: 4018, - }, - }, - Expr: &ast.ExprPreInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4013, - EndPos: 4017, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4015, - EndPos: 4017, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 211, - EndLine: 211, - StartPos: 4015, - EndPos: 4017, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4020, - EndPos: 4031, - }, - }, - Expr: &ast.ExprInclude{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4020, - EndPos: 4030, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4028, - EndPos: 4030, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4028, - EndPos: 4030, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4032, - EndPos: 4048, - }, - }, - Expr: &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4032, - EndPos: 4047, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4045, - EndPos: 4047, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4045, - EndPos: 4047, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4049, - EndPos: 4060, - }, - }, - Expr: &ast.ExprRequire{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4049, - EndPos: 4059, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4057, - EndPos: 4059, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4057, - EndPos: 4059, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4061, - EndPos: 4077, - }, - }, - Expr: &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4061, - EndPos: 4076, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4074, - EndPos: 4076, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4074, - EndPos: 4076, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4079, - EndPos: 4097, - }, - }, - Expr: &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4079, - EndPos: 4096, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4079, - EndPos: 4081, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4079, - EndPos: 4081, - }, - }, - Value: []byte("$a"), - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4093, - EndPos: 4096, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 218, - EndLine: 218, - StartPos: 4093, - EndPos: 4096, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4098, - EndPos: 4126, - }, - }, - Expr: &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4098, - EndPos: 4125, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4098, - EndPos: 4100, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4098, - EndPos: 4100, - }, - }, - Value: []byte("$a"), - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4112, - EndPos: 4125, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4122, - EndPos: 4125, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4127, - EndPos: 4146, - }, - }, - Expr: &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4127, - EndPos: 4145, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4127, - EndPos: 4129, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4127, - EndPos: 4129, - }, - }, - Value: []byte("$a"), - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4141, - EndPos: 4145, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4142, - EndPos: 4145, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4148, - EndPos: 4162, - }, - }, - Expr: &ast.ExprIsset{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4148, - EndPos: 4161, - }, - }, - Vars: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4154, - EndPos: 4156, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4154, - EndPos: 4156, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4158, - EndPos: 4160, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4158, - EndPos: 4160, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4163, - EndPos: 4177, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4163, - EndPos: 4176, - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4163, - EndPos: 4171, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4168, - EndPos: 4170, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4168, - EndPos: 4170, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4168, - EndPos: 4170, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4174, - EndPos: 4176, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4174, - EndPos: 4176, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4178, - EndPos: 4194, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4178, - EndPos: 4193, - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4178, - EndPos: 4188, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4183, - EndPos: 4187, - }, - }, - Val: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4183, - EndPos: 4187, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4183, - EndPos: 4185, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4183, - EndPos: 4185, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4191, - EndPos: 4193, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4191, - EndPos: 4193, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4195, - EndPos: 4215, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4195, - EndPos: 4214, - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4195, - EndPos: 4209, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4200, - EndPos: 4208, - }, - }, - Val: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4200, - EndPos: 4208, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4205, - EndPos: 4207, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4205, - EndPos: 4207, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4205, - EndPos: 4207, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4212, - EndPos: 4214, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4212, - EndPos: 4214, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4217, - EndPos: 4227, - }, - }, - Expr: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4217, - EndPos: 4226, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4217, - EndPos: 4219, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4217, - EndPos: 4219, - }, - }, - Value: []byte("$a"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4221, - EndPos: 4224, - }, - }, - Value: []byte("foo"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4224, - EndPos: 4226, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4228, - EndPos: 4238, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4228, - EndPos: 4237, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4232, - EndPos: 4235, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4232, - EndPos: 4235, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4235, - EndPos: 4237, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4239, - EndPos: 4259, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4239, - EndPos: 4258, - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4243, - EndPos: 4256, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4253, - EndPos: 4256, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4256, - EndPos: 4258, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4260, - EndPos: 4271, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4260, - EndPos: 4270, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4264, - EndPos: 4268, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4265, - EndPos: 4268, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4268, - EndPos: 4270, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4272, - EndPos: 4297, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4272, - EndPos: 4296, - }, - }, - Class: &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4276, - EndPos: 4296, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4282, - EndPos: 4293, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4283, - EndPos: 4285, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4283, - EndPos: 4285, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4283, - EndPos: 4285, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4287, - EndPos: 4292, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4290, - EndPos: 4292, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4290, - EndPos: 4292, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4298, - EndPos: 4308, - }, - }, - Expr: &ast.ExprPrint{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4298, - EndPos: 4307, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4304, - EndPos: 4306, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4304, - EndPos: 4306, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4309, - EndPos: 4317, - }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4309, - EndPos: 4316, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4309, - EndPos: 4311, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4309, - EndPos: 4311, - }, - }, - Value: []byte("$a"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4313, - EndPos: 4316, - }, - }, - Value: []byte("foo"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4318, - EndPos: 4327, - }, - }, - Expr: &ast.ExprShellExec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4318, - EndPos: 4326, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4319, - EndPos: 4323, - }, - }, - Value: []byte("cmd "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4323, - EndPos: 4325, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 234, - EndLine: 234, - StartPos: 4323, - EndPos: 4325, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4328, - EndPos: 4334, - }, - }, - Expr: &ast.ExprShellExec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4328, - EndPos: 4333, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4329, - EndPos: 4332, - }, - }, - Value: []byte("cmd"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4335, - EndPos: 4338, - }, - }, - Expr: &ast.ExprShellExec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4335, - EndPos: 4337, - }, - }, - Parts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4339, - EndPos: 4342, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4339, - EndPos: 4341, - }, - }, - Items: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4343, - EndPos: 4347, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4343, - EndPos: 4346, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4344, - EndPos: 4345, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4344, - EndPos: 4345, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4348, - EndPos: 4361, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4348, - EndPos: 4360, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4349, - EndPos: 4353, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4349, - EndPos: 4350, - }, - }, - Value: []byte("1"), - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4352, - EndPos: 4353, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4355, - EndPos: 4358, - }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4355, - EndPos: 4358, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4356, - EndPos: 4358, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4356, - EndPos: 4358, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.ExprArrayItem{}, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4363, - EndPos: 4373, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4363, - EndPos: 4372, - }, - }, - Var: &ast.ExprShortList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4363, - EndPos: 4367, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4364, - EndPos: 4366, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4364, - EndPos: 4366, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4364, - EndPos: 4366, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4370, - EndPos: 4372, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4370, - EndPos: 4372, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4374, - EndPos: 4386, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4374, - EndPos: 4385, - }, - }, - Var: &ast.ExprShortList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4374, - EndPos: 4380, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4375, - EndPos: 4379, - }, - }, - Val: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4375, - EndPos: 4379, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4375, - EndPos: 4377, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4375, - EndPos: 4377, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4383, - EndPos: 4385, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4383, - EndPos: 4385, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4387, - EndPos: 4403, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4387, - EndPos: 4402, - }, - }, - Var: &ast.ExprShortList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4387, - EndPos: 4397, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4388, - EndPos: 4396, - }, - }, - Val: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4388, - EndPos: 4396, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4393, - EndPos: 4395, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4393, - EndPos: 4395, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4393, - EndPos: 4395, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4400, - EndPos: 4402, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4400, - EndPos: 4402, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4404, - EndPos: 4415, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4404, - EndPos: 4414, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4404, - EndPos: 4407, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4404, - EndPos: 4407, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4409, - EndPos: 4412, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4412, - EndPos: 4414, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4416, - EndPos: 4437, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4416, - EndPos: 4436, - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4416, - EndPos: 4429, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4426, - EndPos: 4429, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4431, - EndPos: 4434, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4434, - EndPos: 4436, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4438, - EndPos: 4450, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4438, - EndPos: 4449, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4438, - EndPos: 4442, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4439, - EndPos: 4442, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4444, - EndPos: 4447, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4447, - EndPos: 4449, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4451, - EndPos: 4461, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4451, - EndPos: 4460, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4451, - EndPos: 4454, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4451, - EndPos: 4454, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4456, - EndPos: 4460, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4456, - EndPos: 4460, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4462, - EndPos: 4473, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4462, - EndPos: 4472, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4462, - EndPos: 4466, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4462, - EndPos: 4466, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4468, - EndPos: 4472, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4468, - EndPos: 4472, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4474, - EndPos: 4494, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4474, - EndPos: 4493, - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4474, - EndPos: 4487, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4484, - EndPos: 4487, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4489, - EndPos: 4493, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4489, - EndPos: 4493, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4495, - EndPos: 4506, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4495, - EndPos: 4505, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4495, - EndPos: 4499, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4496, - EndPos: 4499, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4501, - EndPos: 4505, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4501, - EndPos: 4505, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4507, - EndPos: 4520, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4507, - EndPos: 4519, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4507, - EndPos: 4509, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4507, - EndPos: 4509, - }, - }, - Value: []byte("$a"), - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4512, - EndPos: 4514, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4512, - EndPos: 4514, - }, - }, - Value: []byte("$b"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4517, - EndPos: 4519, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4517, - EndPos: 4519, - }, - }, - Value: []byte("$c"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4521, - EndPos: 4531, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4521, - EndPos: 4530, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4521, - EndPos: 4523, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4521, - EndPos: 4523, - }, - }, - Value: []byte("$a"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4528, - EndPos: 4530, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4528, - EndPos: 4530, - }, - }, - Value: []byte("$c"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4532, - EndPos: 4555, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4532, - EndPos: 4554, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4532, - EndPos: 4534, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4532, - EndPos: 4534, - }, - }, - Value: []byte("$a"), - }, - }, - IfTrue: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4537, - EndPos: 4549, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4537, - EndPos: 4539, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4537, - EndPos: 4539, - }, - }, - Value: []byte("$b"), - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4542, - EndPos: 4544, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4542, - EndPos: 4544, - }, - }, - Value: []byte("$c"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4547, - EndPos: 4549, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4547, - EndPos: 4549, - }, - }, - Value: []byte("$d"), - }, - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4552, - EndPos: 4554, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4552, - EndPos: 4554, - }, - }, - Value: []byte("$e"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4556, - EndPos: 4579, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4556, - EndPos: 4578, - }, - }, - Condition: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4556, - EndPos: 4568, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4556, - EndPos: 4558, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4556, - EndPos: 4558, - }, - }, - Value: []byte("$a"), - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4561, - EndPos: 4563, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4561, - EndPos: 4563, - }, - }, - Value: []byte("$b"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4566, - EndPos: 4568, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4566, - EndPos: 4568, - }, - }, - Value: []byte("$c"), - }, - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4571, - EndPos: 4573, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4571, - EndPos: 4573, - }, - }, - Value: []byte("$d"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4576, - EndPos: 4578, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4576, - EndPos: 4578, - }, - }, - Value: []byte("$e"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4580, - EndPos: 4584, - }, - }, - Expr: &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4580, - EndPos: 4583, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4581, - EndPos: 4583, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4581, - EndPos: 4583, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 4585, - EndPos: 4589, - }, - }, - Expr: &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 4585, - EndPos: 4588, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 4586, - EndPos: 4588, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 256, - EndLine: 256, - StartPos: 4586, - EndPos: 4588, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4590, - EndPos: 4594, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4590, - EndPos: 4593, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4591, - EndPos: 4593, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4591, - EndPos: 4593, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 4595, - EndPos: 4601, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 4595, - EndPos: 4600, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4602, - EndPos: 4611, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4602, - EndPos: 4610, - }, - }, - Value: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4608, - EndPos: 4610, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4608, - EndPos: 4610, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4612, - EndPos: 4627, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4612, - EndPos: 4626, - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4618, - EndPos: 4620, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4618, - EndPos: 4620, - }, - }, - Value: []byte("$a"), - }, - }, - Value: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4624, - EndPos: 4626, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4624, - EndPos: 4626, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4628, - EndPos: 4642, - }, - }, - Expr: &ast.ExprYieldFrom{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4628, - EndPos: 4641, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4639, - EndPos: 4641, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4639, - EndPos: 4641, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4644, - EndPos: 4654, - }, - }, - Expr: &ast.ExprCastArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4644, - EndPos: 4653, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4651, - EndPos: 4653, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4651, - EndPos: 4653, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4655, - EndPos: 4667, - }, - }, - Expr: &ast.ExprCastBool{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4655, - EndPos: 4666, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4664, - EndPos: 4666, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4664, - EndPos: 4666, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4668, - EndPos: 4677, - }, - }, - Expr: &ast.ExprCastBool{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4668, - EndPos: 4676, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4674, - EndPos: 4676, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4674, - EndPos: 4676, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4678, - EndPos: 4689, - }, - }, - Expr: &ast.ExprCastDouble{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4678, - EndPos: 4688, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4686, - EndPos: 4688, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4686, - EndPos: 4688, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 4690, - EndPos: 4700, - }, - }, - Expr: &ast.ExprCastDouble{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 4690, - EndPos: 4699, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 4697, - EndPos: 4699, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 267, - EndLine: 267, - StartPos: 4697, - EndPos: 4699, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4701, - EndPos: 4713, - }, - }, - Expr: &ast.ExprCastInt{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4701, - EndPos: 4712, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4710, - EndPos: 4712, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4710, - EndPos: 4712, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4714, - EndPos: 4722, - }, - }, - Expr: &ast.ExprCastInt{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4714, - EndPos: 4721, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4719, - EndPos: 4721, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4719, - EndPos: 4721, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4723, - EndPos: 4734, - }, - }, - Expr: &ast.ExprCastObject{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4723, - EndPos: 4733, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4731, - EndPos: 4733, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4731, - EndPos: 4733, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4735, - EndPos: 4746, - }, - }, - Expr: &ast.ExprCastString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4735, - EndPos: 4745, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4743, - EndPos: 4745, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4743, - EndPos: 4745, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4747, - EndPos: 4757, - }, - }, - Expr: &ast.ExprCastUnset{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4747, - EndPos: 4756, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4754, - EndPos: 4756, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4754, - EndPos: 4756, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4759, - EndPos: 4767, - }, - }, - Expr: &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4759, - EndPos: 4766, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4759, - EndPos: 4761, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4759, - EndPos: 4761, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4764, - EndPos: 4766, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4764, - EndPos: 4766, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4768, - EndPos: 4776, - }, - }, - Expr: &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4768, - EndPos: 4775, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4768, - EndPos: 4770, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4768, - EndPos: 4770, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4773, - EndPos: 4775, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4773, - EndPos: 4775, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4777, - EndPos: 4785, - }, - }, - Expr: &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4777, - EndPos: 4784, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4777, - EndPos: 4779, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4777, - EndPos: 4779, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4782, - EndPos: 4784, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4782, - EndPos: 4784, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4786, - EndPos: 4795, - }, - }, - Expr: &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4786, - EndPos: 4794, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4786, - EndPos: 4788, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4786, - EndPos: 4788, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4792, - EndPos: 4794, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4792, - EndPos: 4794, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4796, - EndPos: 4805, - }, - }, - Expr: &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4796, - EndPos: 4804, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4796, - EndPos: 4798, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4796, - EndPos: 4798, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4802, - EndPos: 4804, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4802, - EndPos: 4804, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4806, - EndPos: 4815, - }, - }, - Expr: &ast.ExprBinaryCoalesce{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4806, - EndPos: 4814, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4806, - EndPos: 4808, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4806, - EndPos: 4808, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4812, - EndPos: 4814, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4812, - EndPos: 4814, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4816, - EndPos: 4824, - }, - }, - Expr: &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4816, - EndPos: 4823, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4816, - EndPos: 4818, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4816, - EndPos: 4818, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4821, - EndPos: 4823, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4821, - EndPos: 4823, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4825, - EndPos: 4833, - }, - }, - Expr: &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4825, - EndPos: 4832, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4825, - EndPos: 4827, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4825, - EndPos: 4827, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4830, - EndPos: 4832, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4830, - EndPos: 4832, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4834, - EndPos: 4843, - }, - }, - Expr: &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4834, - EndPos: 4842, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4834, - EndPos: 4836, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4834, - EndPos: 4836, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4840, - EndPos: 4842, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4840, - EndPos: 4842, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4844, - EndPos: 4853, - }, - }, - Expr: &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4844, - EndPos: 4852, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4844, - EndPos: 4846, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4844, - EndPos: 4846, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4850, - EndPos: 4852, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4850, - EndPos: 4852, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4854, - EndPos: 4862, - }, - }, - Expr: &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4854, - EndPos: 4861, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4854, - EndPos: 4856, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4854, - EndPos: 4856, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4859, - EndPos: 4861, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4859, - EndPos: 4861, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4863, - EndPos: 4873, - }, - }, - Expr: &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4863, - EndPos: 4872, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4863, - EndPos: 4865, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4863, - EndPos: 4865, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4870, - EndPos: 4872, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4870, - EndPos: 4872, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4874, - EndPos: 4884, - }, - }, - Expr: &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4874, - EndPos: 4883, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4874, - EndPos: 4876, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4874, - EndPos: 4876, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4881, - EndPos: 4883, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4881, - EndPos: 4883, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4885, - EndPos: 4894, - }, - }, - Expr: &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4885, - EndPos: 4893, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4885, - EndPos: 4887, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4885, - EndPos: 4887, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4891, - EndPos: 4893, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4891, - EndPos: 4893, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4895, - EndPos: 4905, - }, - }, - Expr: &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4895, - EndPos: 4904, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4895, - EndPos: 4897, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4895, - EndPos: 4897, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4902, - EndPos: 4904, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4902, - EndPos: 4904, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4906, - EndPos: 4914, - }, - }, - Expr: &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4906, - EndPos: 4913, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4906, - EndPos: 4908, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4906, - EndPos: 4908, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4911, - EndPos: 4913, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4911, - EndPos: 4913, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4915, - EndPos: 4923, - }, - }, - Expr: &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4915, - EndPos: 4922, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4915, - EndPos: 4917, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4915, - EndPos: 4917, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4920, - EndPos: 4922, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4920, - EndPos: 4922, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4924, - EndPos: 4932, - }, - }, - Expr: &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4924, - EndPos: 4931, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4924, - EndPos: 4926, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4924, - EndPos: 4926, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4929, - EndPos: 4931, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4929, - EndPos: 4931, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4933, - EndPos: 4942, - }, - }, - Expr: &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4933, - EndPos: 4941, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4933, - EndPos: 4935, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4933, - EndPos: 4935, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4939, - EndPos: 4941, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4939, - EndPos: 4941, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 4943, - EndPos: 4953, - }, - }, - Expr: &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 4943, - EndPos: 4952, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 4943, - EndPos: 4945, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 4943, - EndPos: 4945, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 4950, - EndPos: 4952, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 293, - EndLine: 293, - StartPos: 4950, - EndPos: 4952, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4954, - EndPos: 4962, - }, - }, - Expr: &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4954, - EndPos: 4961, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4954, - EndPos: 4956, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4954, - EndPos: 4956, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4959, - EndPos: 4961, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4959, - EndPos: 4961, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4963, - EndPos: 4972, - }, - }, - Expr: &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4963, - EndPos: 4971, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4963, - EndPos: 4965, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4963, - EndPos: 4965, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4969, - EndPos: 4971, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4969, - EndPos: 4971, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4973, - EndPos: 4982, - }, - }, - Expr: &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4973, - EndPos: 4981, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4973, - EndPos: 4975, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4973, - EndPos: 4975, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4979, - EndPos: 4981, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4979, - EndPos: 4981, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4992, - }, - }, - Expr: &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4991, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4985, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4985, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4989, - EndPos: 4991, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4989, - EndPos: 4991, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4993, - EndPos: 5002, - }, - }, - Expr: &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4993, - EndPos: 5001, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4993, - EndPos: 4995, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4993, - EndPos: 4995, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4999, - EndPos: 5001, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4999, - EndPos: 5001, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5003, - EndPos: 5011, - }, - }, - Expr: &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5003, - EndPos: 5010, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5003, - EndPos: 5005, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5003, - EndPos: 5005, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5008, - EndPos: 5010, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5008, - EndPos: 5010, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5022, - }, - }, - Expr: &ast.ExprBinarySpaceship{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5021, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5014, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5014, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5019, - EndPos: 5021, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5019, - EndPos: 5021, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5024, - EndPos: 5033, - }, - }, - Expr: &ast.ExprAssignReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5024, - EndPos: 5032, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5024, - EndPos: 5026, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5024, - EndPos: 5026, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5030, - EndPos: 5032, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5030, - EndPos: 5032, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5034, - EndPos: 5042, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5034, - EndPos: 5041, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5034, - EndPos: 5036, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5034, - EndPos: 5036, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5039, - EndPos: 5041, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5039, - EndPos: 5041, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5043, - EndPos: 5052, - }, - }, - Expr: &ast.ExprAssignBitwiseAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5043, - EndPos: 5051, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5043, - EndPos: 5045, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5043, - EndPos: 5045, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5049, - EndPos: 5051, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5049, - EndPos: 5051, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5053, - EndPos: 5062, - }, - }, - Expr: &ast.ExprAssignBitwiseOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5053, - EndPos: 5061, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5053, - EndPos: 5055, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5053, - EndPos: 5055, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5059, - EndPos: 5061, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5059, - EndPos: 5061, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5063, - EndPos: 5072, - }, - }, - Expr: &ast.ExprAssignBitwiseXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5063, - EndPos: 5071, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5063, - EndPos: 5065, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5063, - EndPos: 5065, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5069, - EndPos: 5071, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5069, - EndPos: 5071, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5073, - EndPos: 5082, - }, - }, - Expr: &ast.ExprAssignConcat{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5073, - EndPos: 5081, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5073, - EndPos: 5075, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5073, - EndPos: 5075, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5079, - EndPos: 5081, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5079, - EndPos: 5081, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5083, - EndPos: 5092, - }, - }, - Expr: &ast.ExprAssignDiv{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5083, - EndPos: 5091, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5083, - EndPos: 5085, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5083, - EndPos: 5085, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5089, - EndPos: 5091, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5089, - EndPos: 5091, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5093, - EndPos: 5102, - }, - }, - Expr: &ast.ExprAssignMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5093, - EndPos: 5101, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5093, - EndPos: 5095, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5093, - EndPos: 5095, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5099, - EndPos: 5101, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5099, - EndPos: 5101, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5103, - EndPos: 5112, - }, - }, - Expr: &ast.ExprAssignMod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5103, - EndPos: 5111, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5103, - EndPos: 5105, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5103, - EndPos: 5105, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5109, - EndPos: 5111, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 310, - EndLine: 310, - StartPos: 5109, - EndPos: 5111, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5113, - EndPos: 5122, - }, - }, - Expr: &ast.ExprAssignMul{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5113, - EndPos: 5121, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5113, - EndPos: 5115, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5113, - EndPos: 5115, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5119, - EndPos: 5121, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 311, - EndLine: 311, - StartPos: 5119, - EndPos: 5121, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5123, - EndPos: 5132, - }, - }, - Expr: &ast.ExprAssignPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5123, - EndPos: 5131, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5123, - EndPos: 5125, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5123, - EndPos: 5125, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5129, - EndPos: 5131, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5129, - EndPos: 5131, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5133, - EndPos: 5143, - }, - }, - Expr: &ast.ExprAssignPow{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5133, - EndPos: 5142, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5133, - EndPos: 5135, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5133, - EndPos: 5135, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5140, - EndPos: 5142, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5140, - EndPos: 5142, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5144, - EndPos: 5154, - }, - }, - Expr: &ast.ExprAssignShiftLeft{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5144, - EndPos: 5153, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5144, - EndPos: 5146, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5144, - EndPos: 5146, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5151, - EndPos: 5153, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5151, - EndPos: 5153, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5155, - EndPos: 5165, - }, - }, - Expr: &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5155, - EndPos: 5164, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5155, - EndPos: 5157, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5155, - EndPos: 5157, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5162, - EndPos: 5164, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5162, - EndPos: 5164, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5167, - EndPos: 5206, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5173, - EndPos: 5176, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5178, - EndPos: 5204, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5194, - EndPos: 5199, - }, - }, - Value: []byte("class"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5178, - EndPos: 5184, - }, - }, - Value: []byte("public"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5202, - EndPos: 5204, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5207, - EndPos: 5218, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5207, - EndPos: 5217, - }, - }, - Function: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5207, - EndPos: 5215, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5208, - EndPos: 5211, - }, - }, - Value: []byte("foo"), - }, - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5211, - EndPos: 5215, - }, - }, - Value: []byte("bar"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5215, - EndPos: 5217, - }, - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 326, - StartPos: 5220, - EndPos: 5328, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5229, - EndPos: 5232, - }, - }, - Value: []byte("foo"), - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5233, - EndPos: 5236, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5233, - EndPos: 5236, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5234, - EndPos: 5236, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5234, - EndPos: 5236, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5238, - EndPos: 5243, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5238, - EndPos: 5243, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5241, - EndPos: 5243, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5241, - EndPos: 5243, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5252, - EndPos: 5269, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5261, - EndPos: 5264, - }, - }, - Value: []byte("bar"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5274, - EndPos: 5286, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5280, - EndPos: 5283, - }, - }, - Value: []byte("Baz"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtTrait{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5291, - EndPos: 5303, - }, - }, - TraitName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5297, - EndPos: 5301, - }, - }, - Value: []byte("Quux"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtInterface{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5308, - EndPos: 5326, - }, - }, - InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5318, - EndPos: 5323, - }, - }, - Value: []byte("Quuux"), - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5330, - EndPos: 5373, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5339, - EndPos: 5342, - }, - }, - Value: []byte("foo"), - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5343, - EndPos: 5350, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5343, - EndPos: 5346, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5344, - EndPos: 5346, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5344, - EndPos: 5346, - }, - }, - Value: []byte("$a"), - }, - }, - }, - DefaultValue: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5349, - EndPos: 5350, - }, - }, - Value: []byte("1"), - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5352, - EndPos: 5361, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5352, - EndPos: 5357, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5355, - EndPos: 5357, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5355, - EndPos: 5357, - }, - }, - Value: []byte("$b"), - }, - }, - }, - DefaultValue: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5360, - EndPos: 5361, - }, - }, - Value: []byte("1"), - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5363, - EndPos: 5369, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5363, - EndPos: 5365, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5363, - EndPos: 5365, - }, - }, - Value: []byte("$c"), - }, - }, - DefaultValue: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5368, - EndPos: 5369, - }, - }, - Value: []byte("1"), - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5374, - EndPos: 5412, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5383, - EndPos: 5386, - }, - }, - Value: []byte("foo"), - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5387, - EndPos: 5395, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5387, - EndPos: 5392, - }, - }, - Value: []byte("array"), - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5393, - EndPos: 5395, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5393, - EndPos: 5395, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5397, - EndPos: 5408, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5397, - EndPos: 5405, - }, - }, - Value: []byte("callable"), - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5406, - EndPos: 5408, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5406, - EndPos: 5408, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5413, - EndPos: 5515, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5434, - EndPos: 5437, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5413, - EndPos: 5421, - }, - }, - Value: []byte("abstract"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5422, - EndPos: 5427, - }, - }, - Value: []byte("final"), - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5440, - EndPos: 5481, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5475, - EndPos: 5478, - }, - }, - Value: []byte("bar"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5440, - EndPos: 5448, - }, - }, - Value: []byte("abstract"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5449, - EndPos: 5458, - }, - }, - Value: []byte("protected"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5459, - EndPos: 5465, - }, - }, - Value: []byte("static"), - }, - }, - Stmt: &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5480, - EndPos: 5481, - }, - }, - }, - }, - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5482, - EndPos: 5513, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5505, - EndPos: 5508, - }, - }, - Value: []byte("baz"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5482, - EndPos: 5487, - }, - }, - Value: []byte("final"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5488, - EndPos: 5495, - }, - }, - Value: []byte("private"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5511, - EndPos: 5513, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5517, - EndPos: 5532, - }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5517, - EndPos: 5531, - }, - }, - Var: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5518, - EndPos: 5525, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5522, - EndPos: 5525, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5522, - EndPos: 5525, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5528, - EndPos: 5531, - }, - }, - Value: []byte("bar"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5533, - EndPos: 5545, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5533, - EndPos: 5544, - }, - }, - Function: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5534, - EndPos: 5541, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5538, - EndPos: 5541, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5538, - EndPos: 5541, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5542, - EndPos: 5544, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5546, - EndPos: 5558, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5546, - EndPos: 5557, - }, - }, - Function: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5546, - EndPos: 5555, - }, - }, - Var: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5546, - EndPos: 5552, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5547, - EndPos: 5551, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5547, - EndPos: 5551, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5547, - EndPos: 5551, - }, - }, - Value: []byte("$foo"), - }, - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5553, - EndPos: 5554, - }, - }, - Value: []byte("0"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5555, - EndPos: 5557, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5559, - EndPos: 5568, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5559, - EndPos: 5567, - }, - }, - Function: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5559, - EndPos: 5565, - }, - }, - Var: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5559, - EndPos: 5562, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5559, - EndPos: 5562, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5559, - EndPos: 5562, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5563, - EndPos: 5564, - }, - }, - Value: []byte("1"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5565, - EndPos: 5567, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5569, - EndPos: 5577, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5569, - EndPos: 5576, - }, - }, - Function: &ast.ScalarString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5569, - EndPos: 5574, - }, - }, - Value: []byte("\"foo\""), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5574, - EndPos: 5576, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5578, - EndPos: 5590, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5578, - EndPos: 5589, - }, - }, - Function: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5578, - EndPos: 5587, - }, - }, - Var: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5578, - EndPos: 5581, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5579, - EndPos: 5580, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5579, - EndPos: 5580, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - Dim: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5582, - EndPos: 5586, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5582, - EndPos: 5586, - }, - }, - Value: []byte("$foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5587, - EndPos: 5589, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5591, - EndPos: 5600, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5591, - EndPos: 5599, - }, - }, - VarName: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5593, - EndPos: 5598, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5593, - EndPos: 5596, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5593, - EndPos: 5596, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5596, - EndPos: 5598, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5602, - EndPos: 5614, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5602, - EndPos: 5613, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5602, - EndPos: 5605, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5602, - EndPos: 5605, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5607, - EndPos: 5611, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5607, - EndPos: 5611, - }, - }, - Value: []byte("$bar"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5611, - EndPos: 5613, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5615, - EndPos: 5632, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5615, - EndPos: 5631, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5615, - EndPos: 5618, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5615, - EndPos: 5618, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5621, - EndPos: 5628, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5621, - EndPos: 5625, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5621, - EndPos: 5625, - }, - }, - Value: []byte("$bar"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5626, - EndPos: 5627, - }, - }, - Value: []byte("0"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5629, - EndPos: 5631, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5634, - EndPos: 5645, - }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5634, - EndPos: 5644, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5634, - EndPos: 5638, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5634, - EndPos: 5638, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5640, - EndPos: 5644, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5640, - EndPos: 5644, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5646, - EndPos: 5662, - }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5646, - EndPos: 5660, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5646, - EndPos: 5650, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5646, - EndPos: 5650, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5653, - EndPos: 5660, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5653, - EndPos: 5657, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5653, - EndPos: 5657, - }, - }, - Value: []byte("$bar"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5658, - EndPos: 5659, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5664, - EndPos: 5686, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5664, - EndPos: 5685, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5665, - EndPos: 5671, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5665, - EndPos: 5666, - }, - }, - Value: []byte("1"), - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5668, - EndPos: 5671, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5669, - EndPos: 5671, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5669, - EndPos: 5671, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5673, - EndPos: 5684, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5673, - EndPos: 5674, - }, - }, - Value: []byte("2"), - }, - Val: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5676, - EndPos: 5684, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5681, - EndPos: 5683, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5681, - EndPos: 5683, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5681, - EndPos: 5683, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5688, - EndPos: 5706, - }, - }, - }, - }, - } - - lexer := scanner.NewLexer(src, "7.4", nil) - php7parser := php7.NewParser(lexer, nil) - php7parser.Parse() - actual := php7parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestPhp5Strings(t *testing.T) { - src := ` Date: Sun, 20 Dec 2020 14:26:26 +0200 Subject: [PATCH 116/140] refactoring: update php5 tests --- internal/php5/parser_test.go | 45090 +++++++++++++++++++++++------ internal/php5/php5.go | 1 - internal/php5/php5.y | 2 +- internal/php5/php5_bench_test.go | 409 +- internal/php5/php5_test.go | 22460 -------------- 5 files changed, 35573 insertions(+), 32389 deletions(-) delete mode 100644 internal/php5/php5_test.go diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index a2b90ea..b4a4ee9 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -8,849 +8,1396 @@ import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/traverser" - "github.com/z7zmey/php-parser/pkg/ast/visitor" + "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" ) func TestIdentifier(t *testing.T) { src := `bar($a, ...$b); foo::bar($a, ...$b); $foo::bar($a, ...$b); - new foo($a, ...$b); - ` + new foo($a, ...$b);` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 7, - StartPos: 6, - EndPos: 133, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 7, + StartPos: 5, + EndPos: 132, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 20, + }, + Expr: &ast.ExprFunctionCall{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, - EndPos: 21, + StartPos: 5, + EndPos: 19, }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ + Function: &ast.NameName{ Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, - EndPos: 20, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 9, - }, + StartPos: 5, + EndPos: 8, }, Parts: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 8, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 2, EndLine: 2, - StartPos: 6, - EndPos: 9, + StartPos: 5, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 46, + EndPos: 48, + }, + }, Method: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 48, + EndPos: 51, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 49, - EndPos: 52, + StartPos: 48, + EndPos: 51, }, }, Value: []byte("bar"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 51, + EndPos: 52, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 4, EndLine: 4, StartPos: 52, - EndPos: 63, + EndPos: 54, }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 52, + EndPos: 54, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 53, - EndPos: 55, + StartPos: 52, + EndPos: 54, }, - }, - Variadic: false, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 57, - EndPos: 62, - }, - }, - IsReference: false, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ Position: &position.Position{ StartLine: 4, EndLine: 4, - StartPos: 60, - EndPos: 62, + StartPos: 52, + EndPos: 54, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 60, - EndPos: 62, - }, - }, - Value: []byte("$b"), - }, + Value: []byte("$a"), }, }, }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 56, + EndPos: 61, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 56, + EndPos: 59, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 55, + EndPos: 56, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 59, + EndPos: 61, + }, + }, + Value: []byte("$b"), + }, + }, + }, + }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 54, + EndPos: 55, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 61, + EndPos: 62, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 4, + EndLine: 4, + StartPos: 62, + EndPos: 63, }, }, }, &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 86, + }, + Expr: &ast.ExprStaticCall{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, - EndPos: 87, + StartPos: 66, + EndPos: 85, }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ + Class: &ast.NameName{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, - EndPos: 86, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 70, - }, + StartPos: 66, + EndPos: 69, }, Parts: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 66, + EndPos: 69, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 67, - EndPos: 70, + StartPos: 66, + EndPos: 69, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 4, + EndLine: 5, + StartPos: 63, + EndPos: 66, + }, + }, }, }, Value: []byte("foo"), }, }, }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 69, + EndPos: 71, + }, + }, Call: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 71, + EndPos: 74, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 72, - EndPos: 75, + StartPos: 71, + EndPos: 74, }, }, Value: []byte("bar"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 74, + EndPos: 75, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 5, EndLine: 5, StartPos: 75, - EndPos: 86, + EndPos: 77, }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 75, + EndPos: 77, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 76, - EndPos: 78, + StartPos: 75, + EndPos: 77, }, - }, - Variadic: false, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 76, - EndPos: 78, - }, - }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 80, - EndPos: 85, - }, - }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ Position: &position.Position{ StartLine: 5, EndLine: 5, - StartPos: 83, - EndPos: 85, + StartPos: 75, + EndPos: 77, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 83, - EndPos: 85, - }, - }, - Value: []byte("$b"), - }, + Value: []byte("$a"), }, }, }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 79, + EndPos: 84, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 79, + EndPos: 82, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 78, + EndPos: 79, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 82, + EndPos: 84, + }, + }, + Value: []byte("$b"), + }, + }, + }, + }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 77, + EndPos: 78, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 84, + EndPos: 85, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 5, + EndLine: 5, + StartPos: 85, + EndPos: 86, }, }, }, &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 89, + EndPos: 110, + }, + Expr: &ast.ExprStaticCall{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 111, + StartPos: 89, + EndPos: 109, }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ + Class: &ast.ExprVariable{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 110, + StartPos: 89, + EndPos: 93, }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 94, + StartPos: 89, + EndPos: 93, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$foo"), Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 90, - EndPos: 94, + StartPos: 89, + EndPos: 93, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 5, + EndLine: 6, + StartPos: 86, + EndPos: 89, + }, + }, }, }, Value: []byte("$foo"), }, }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 93, + EndPos: 95, + }, + }, Call: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 95, + EndPos: 98, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 96, - EndPos: 99, + StartPos: 95, + EndPos: 98, }, }, Value: []byte("bar"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 98, + EndPos: 99, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 6, EndLine: 6, StartPos: 99, - EndPos: 110, + EndPos: 101, }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 99, + EndPos: 101, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 100, - EndPos: 102, + StartPos: 99, + EndPos: 101, }, - }, - Variadic: false, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 100, - EndPos: 102, - }, - }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 104, - EndPos: 109, - }, - }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ Position: &position.Position{ StartLine: 6, EndLine: 6, - StartPos: 107, - EndPos: 109, + StartPos: 99, + EndPos: 101, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 107, - EndPos: 109, - }, - }, - Value: []byte("$b"), - }, + Value: []byte("$a"), }, }, }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 103, + EndPos: 108, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 103, + EndPos: 106, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 102, + EndPos: 103, + }, + }, + }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 106, + EndPos: 108, + }, + }, + Value: []byte("$b"), + }, + }, + }, + }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 101, + EndPos: 102, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 108, + EndPos: 109, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 6, + EndLine: 6, + StartPos: 109, + EndPos: 110, }, }, }, &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 113, + EndPos: 132, + }, + Expr: &ast.ExprNew{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, - EndPos: 133, + StartPos: 113, + EndPos: 131, }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ + NewTkn: &token.Token{ + ID: token.T_NEW, + Value: []byte("new"), Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 114, - EndPos: 132, + StartPos: 113, + EndPos: 116, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 6, + EndLine: 7, + StartPos: 110, + EndPos: 113, + }, + }, }, }, Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 118, - EndPos: 121, - }, + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, }, Parts: []ast.Vertex{ &ast.NameNamePart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 117, + EndPos: 120, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 118, - EndPos: 121, + StartPos: 117, + EndPos: 120, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 116, + EndPos: 117, + }, + }, }, }, Value: []byte("foo"), }, }, }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 120, + EndPos: 121, + }, + }, + Arguments: []ast.Vertex{ + &ast.Argument{ Position: &position.Position{ StartLine: 7, EndLine: 7, StartPos: 121, - EndPos: 132, + EndPos: 123, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + VarName: &ast.Identifier{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 121, + EndPos: 123, + }, + }, + Value: []byte("$a"), + }, }, }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, + &ast.Argument{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 125, + EndPos: 130, + }, + VariadicTkn: &token.Token{ + ID: token.T_ELLIPSIS, + Value: []byte("..."), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 125, + EndPos: 128, }, - Variadic: false, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 122, - EndPos: 124, + StartPos: 124, + EndPos: 125, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 122, - EndPos: 124, - }, - }, - Value: []byte("$a"), - }, }, }, - &ast.Argument{ - Node: ast.Node{ + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 128, + EndPos: 130, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 126, - EndPos: 131, + StartPos: 128, + EndPos: 130, }, - }, - Variadic: true, - IsReference: false, - Expr: &ast.ExprVariable{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 7, EndLine: 7, - StartPos: 129, - EndPos: 131, + StartPos: 128, + EndPos: 130, }, }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 129, - EndPos: 131, - }, - }, - Value: []byte("$b"), - }, + Value: []byte("$b"), }, }, }, }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 123, + EndPos: 124, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 130, + EndPos: 131, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 7, + EndLine: 7, + StartPos: 131, + EndPos: 132, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -859,61 +1406,122 @@ func TestPhp5ParameterNode(t *testing.T) { function foo(bar $bar=null, baz &...$baz) {} class foo {public function foo(bar $bar=null, baz &...$baz) {}} function(bar $bar=null, baz &...$baz) {}; - static function(bar $bar=null, baz &...$baz) {}; - ` + static function(bar $bar=null, baz &...$baz) {};` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 5, - StartPos: 5, - EndPos: 210, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 5, + StartPos: 5, + EndPos: 210, }, Stmts: []ast.Vertex{ &ast.StmtFunction{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 49, + }, + FunctionTkn: &token.Token{ + ID: token.T_FUNCTION, + Value: []byte("function"), Position: &position.Position{ StartLine: 2, EndLine: 2, StartPos: 5, - EndPos: 49, + EndPos: 13, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte("bar()";` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 22, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 22, + }, + Expr: &ast.ScalarEncapsed{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 22, + EndPos: 21, }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ + OpenQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 21, + EndPos: 4, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 15, + }, + }, Property: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -2365,7 +4206,15 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { }, }, &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 20, + }, + EncapsedStrTkn: &token.Token{ + ID: token.T_ENCAPSED_AND_WHITESPACE, + Value: []byte("()"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -2376,17 +4225,36 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { Value: []byte("()"), }, }, + CloseQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 22, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2394,36 +4262,70 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { src := `bar()}";` +func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { + src := `bar()}";` + + expected := &ast.Root{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + Stmts: []ast.Vertex{ + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 24, + }, + Expr: &ast.ScalarEncapsed{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 23, + }, + OpenQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 4, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 16, + }, + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 19, + }, + }, + Value: []byte("bar"), + }, + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + CloseBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 22, + }, + }, + }, + }, + CloseQuoteTkn: &token.Token{ + ID: token.ID(34), + Value: []byte("\""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 23, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, + }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -2686,37 +4867,70 @@ LBL; ` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 3, - StartPos: 3, - EndPos: 24, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 3, + EndPos: 24, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 3, + StartPos: 3, + EndPos: 24, + }, + Expr: &ast.ScalarHeredoc{ Position: &position.Position{ StartLine: 1, EndLine: 3, StartPos: 3, - EndPos: 24, + EndPos: 23, }, - }, - Expr: &ast.ScalarHeredoc{ - Node: ast.Node{ + OpenHeredocTkn: &token.Token{ + ID: token.T_START_HEREDOC, + Value: []byte("<< $v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 30, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, }, Value: []byte("$v"), }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 30, + EndPos: 29, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6620,98 +14582,284 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { src := ` $v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 30, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 30, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 30, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 26, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, EndPos: 26, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, }, Value: []byte("$v"), }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 30, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 30, + EndPos: 29, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6719,35 +14867,91 @@ func TestStmtForeach_WithRef(t *testing.T) { src := ` &$v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 31, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprReference{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 27, + EndPos: 25, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -6810,27 +15102,66 @@ func TestStmtForeach_WithRef(t *testing.T) { }, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, - EndPos: 31, + EndPos: 30, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6838,35 +15169,91 @@ func TestStmtForeach_WithList(t *testing.T) { src := ` list($v)) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 36, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 36, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 36, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 32, + }, + ListTkn: &token.Token{ + ID: token.T_LIST, + Value: []byte("list"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 32, + EndPos: 28, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, + }, + }, + OpenBracketTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, }, }, Items: []ast.Vertex{ &ast.ExprArrayItem{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, EndPos: 31, }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, EndPos: 31, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -6940,28 +15423,77 @@ func TestStmtForeach_WithList(t *testing.T) { }, }, }, + CloseBracketTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 31, + EndPos: 32, + }, + }, + }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 32, + EndPos: 33, + }, }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 34, - EndPos: 36, + EndPos: 35, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 36, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -6969,47 +15501,145 @@ func TestStmtFunction(t *testing.T) { src := `
` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, }, Stmts: []ast.Vertex{ &ast.StmtNop{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 5, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte("?>"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8290,14 +18899,13 @@ func TestStmtInlineHtml(t *testing.T) { Value: []byte("
"), }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -8305,46 +18913,125 @@ func TestStmtInterface(t *testing.T) { src := `1, &$b,);` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 21, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 21, + }, + Expr: &ast.ExprArray{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 21, + EndPos: 20, }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ + ArrayTkn: &token.Token{ + ID: token.T_ARRAY, + Value: []byte("array"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 20, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 12, + }, + }, Val: &ast.ScalarLnumber{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("1"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13149,34 +30836,58 @@ func TestExprArray_Items(t *testing.T) { }, }, &ast.ExprArrayItem{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 18, + }, + Val: &ast.ExprReference{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 18, }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, - EndPos: 18, + EndPos: 16, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 18, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13191,17 +30902,58 @@ func TestExprArray_Items(t *testing.T) { }, &ast.ExprArrayItem{}, }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + }, + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 19, + }, + }, + }, + CloseBracketTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 19, + EndPos: 20, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -13209,44 +30961,76 @@ func TestExprBitwiseNot(t *testing.T) { src := `foo();` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 13, + }, + Expr: &ast.ExprMethodCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 13, + EndPos: 12, }, - }, - Expr: &ast.ExprMethodCall{ - Node: ast.Node{ + Var: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 12, + EndPos: 5, }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 7, + }, + }, Method: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16922,27 +37874,46 @@ func TestExprMethodCall(t *testing.T) { }, Value: []byte("foo"), }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, - }, + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 13, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -16950,67 +37921,120 @@ func TestExprNew(t *testing.T) { src := `foo;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 11, + }, + Expr: &ast.ExprPropertyFetch{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 11, + EndPos: 10, }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ + Var: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 10, + EndPos: 5, }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 7, + }, + }, Property: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 10, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17302,16 +38591,25 @@ func TestExprPropertyFetch(t *testing.T) { Value: []byte("foo"), }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 11, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17320,35 +38618,91 @@ func TestExprReference_ForeachWithRef(t *testing.T) { src := ` &$v) {}` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, }, Stmts: []ast.Vertex{ &ast.StmtForeach{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 31, + }, + ForeachTkn: &token.Token{ + ID: token.T_FOREACH, + Value: []byte("foreach"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 31, + EndPos: 10, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 21, + EndPos: 23, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 20, + EndPos: 21, + }, + }, + }, + }, Var: &ast.ExprReference{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 27, + }, + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 27, + EndPos: 25, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17411,27 +38853,66 @@ func TestExprReference_ForeachWithRef(t *testing.T) { }, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, + }, + }, Stmt: &ast.StmtStmtList{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 31, + }, + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 29, - EndPos: 31, + EndPos: 30, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, + }, + }, }, }, Stmts: []ast.Vertex{}, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17439,36 +38920,70 @@ func TestExprShellExec(t *testing.T) { src := "1, &$b,];` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 16, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 16, + }, + Expr: &ast.ExprArray{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 16, + EndPos: 15, }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ + OpenBracketTkn: &token.Token{ + ID: token.ID(91), + Value: []byte("["), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 15, + EndPos: 4, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 5, + EndPos: 7, + }, + }, Val: &ast.ScalarLnumber{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 7, + EndPos: 8, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("1"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17693,34 +39378,58 @@ func TestExprShortArray_Items(t *testing.T) { }, }, &ast.ExprArrayItem{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 10, + EndPos: 13, + }, + Val: &ast.ExprReference{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 10, EndPos: 13, }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 10, - EndPos: 13, + EndPos: 11, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, + }, + }, }, }, Var: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17735,17 +39444,58 @@ func TestExprShortArray_Items(t *testing.T) { }, &ast.ExprArrayItem{}, }, + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 8, + EndPos: 9, + }, + }, + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 13, + EndPos: 14, + }, + }, + }, + CloseBracketTkn: &token.Token{ + ID: token.ID(93), + Value: []byte("]"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -17753,58 +39503,98 @@ func TestExprStaticCall(t *testing.T) { src := ` $b;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 18, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 18, + }, + Expr: &ast.ExprYield{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 18, + EndPos: 17, }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ + YieldTkn: &token.Token{ + ID: token.T_YIELD, + Value: []byte("yield"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 17, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + }, + }, + }, Value: &ast.ExprVariable{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 17, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 17, }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 17, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, + }, }, Value: []byte("$b"), }, }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 17, + EndPos: 18, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } @@ -19450,55 +42611,110 @@ func TestExprYield_Expr(t *testing.T) { src := ` 1;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 17, - }, + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 3, + EndPos: 17, + }, + Expr: &ast.ExprYield{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 17, + EndPos: 16, }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ + YieldTkn: &token.Token{ + ID: token.T_YIELD, + Value: []byte("yield"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, - EndPos: 16, + EndPos: 8, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte(""), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 12, + EndPos: 14, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 12, + }, + }, + }, + }, Value: &ast.ScalarLnumber{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("1"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 16, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, + }, + }, + }, }, Value: []byte("1"), }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 17, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } // expr assign -func TestExprAssign_Assign(t *testing.T) { - src := `>= $b;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 17, + StartPos: 5, + EndPos: 210, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 13, }, Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) - php5parser.Parse() - actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprAssign_Reference(t *testing.T) { - src := `>= $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 13, + StartLine: 16, + EndLine: 16, + StartPos: 196, + EndPos: 197, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 210, + }, Expr: &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 209, }, Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 202, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 202, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 17, + EndLine: 17, + StartPos: 200, + EndPos: 202, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 16, + EndLine: 17, + StartPos: 197, + EndPos: 200, + }, + }, }, }, Value: []byte("$a"), }, }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, + EqualTkn: &token.Token{ + ID: token.T_SR_EQUAL, + Value: []byte(">>="), + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 203, + EndPos: 206, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 202, + EndPos: 203, + }, }, }, + }, + Expr: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 207, + EndPos: 209, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 207, + EndPos: 209, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 12, + StartLine: 17, + EndLine: 17, + StartPos: 207, + EndPos: 209, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 206, + EndPos: 207, + }, + }, }, }, Value: []byte("$b"), }, }, }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 17, + EndLine: 17, + StartPos: 209, + EndPos: 210, + }, + }, }, }, + EndTkn: &token.Token{}, } lexer := scanner.NewLexer([]byte(src), "5.6", nil) php5parser := php5.NewParser(lexer, nil) php5parser.Parse() actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) assert.DeepEqual(t, expected, actual) } // expr binary func TestExprBinary_BitwiseAnd(t *testing.T) { - src := `= $b; + $a > $b; + $a === $b; + $a and $b; + $a or $b; + $a xor $b; + $a - $b; + $a % $b; + $a * $b; + $a != $b; + $a !== $b; + $a + $b; + $a ** $b; + $a << $b; + $a >> $b; + $a <= $b; + $a < $b;` expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 26, + StartPos: 5, + EndPos: 295, }, Stmts: []ast.Vertex{ &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 13, }, Expr: &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 12, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 7, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 7, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 2, + EndLine: 2, + StartPos: 5, + EndPos: 7, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_OPEN_TAG, + Value: []byte("= $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, + StartLine: 9, + EndLine: 9, + StartPos: 92, + EndPos: 93, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 96, + EndPos: 105, + }, Expr: &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 96, + EndPos: 104, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 96, + EndPos: 98, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 96, + EndPos: 98, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 10, + EndLine: 10, + StartPos: 96, + EndPos: 98, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 9, + EndLine: 10, + StartPos: 93, + EndPos: 96, + }, + }, }, }, Value: []byte("$a"), }, }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + OpTkn: &token.Token{ + ID: token.T_IS_GREATER_OR_EQUAL, + Value: []byte(">="), + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 99, + EndPos: 101, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 98, + EndPos: 99, + }, }, }, + }, + Right: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 102, + EndPos: 104, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 102, + EndPos: 104, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + StartLine: 10, + EndLine: 10, + StartPos: 102, + EndPos: 104, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 10, + EndLine: 10, + StartPos: 101, + EndPos: 102, + }, + }, }, }, Value: []byte("$b"), }, }, }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) - php5parser.Parse() - actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprBinary_Greater(t *testing.T) { - src := ` $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, + StartLine: 10, + EndLine: 10, + StartPos: 104, + EndPos: 105, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 116, + }, Expr: &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 115, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 110, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 110, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 11, + EndLine: 11, + StartPos: 108, + EndPos: 110, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 10, + EndLine: 11, + StartPos: 105, + EndPos: 108, + }, + }, }, }, Value: []byte("$a"), }, }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, + OpTkn: &token.Token{ + ID: token.ID(62), + Value: []byte(">"), + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 111, + EndPos: 112, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 110, + EndPos: 111, + }, }, }, + }, + Right: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 113, + EndPos: 115, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 113, + EndPos: 115, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 8, - EndPos: 10, + StartLine: 11, + EndLine: 11, + StartPos: 113, + EndPos: 115, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 11, + EndLine: 11, + StartPos: 112, + EndPos: 113, + }, + }, }, }, Value: []byte("$b"), }, }, }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) - php5parser.Parse() - actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprBinary_Identical(t *testing.T) { - src := `> $b;` - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 12, + StartLine: 23, + EndLine: 23, + StartPos: 259, + EndPos: 260, }, }, + }, + &ast.StmtExpression{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 263, + EndPos: 272, + }, Expr: &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 11, - }, + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 263, + EndPos: 271, }, Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, - }, + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 263, + EndPos: 265, }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 263, + EndPos: 265, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$a"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 5, + StartLine: 24, + EndLine: 24, + StartPos: 263, + EndPos: 265, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte("\n\t\t"), + Position: &position.Position{ + StartLine: 23, + EndLine: 24, + StartPos: 260, + EndPos: 263, + }, + }, }, }, Value: []byte("$a"), }, }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + OpTkn: &token.Token{ + ID: token.T_SR, + Value: []byte(">>"), + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 266, + EndPos: 268, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 265, + EndPos: 266, + }, }, }, + }, + Right: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 269, + EndPos: 271, + }, VarName: &ast.Identifier{ - Node: ast.Node{ + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 269, + EndPos: 271, + }, + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 11, + StartLine: 24, + EndLine: 24, + StartPos: 269, + EndPos: 271, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 24, + EndLine: 24, + StartPos: 268, + EndPos: 269, + }, + }, }, }, Value: []byte("$b"), }, }, }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) - php5parser.Parse() - actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestExprBinary_SmallerOrEqual(t *testing.T) { - src := `bar($a, ...$b); - foo::bar($a, ...$b); - $foo::bar($a, ...$b); - new foo($a, ...$b); - - function foo(bar $bar=null, baz &...$baz) {} - class foo {public function foo(bar $bar=null, baz &...$baz) {}} - function(bar $bar=null, baz &...$baz) {}; - static function(bar $bar=null, baz &...$baz) {}; - - "test"; - "\$test"; - " - test - "; - '$test'; - ' - $test - '; - <<bar()"; - "test ${foo}"; - "test ${foo[0]}"; - "test {$foo->bar()}"; - - if ($a) : - endif; - if ($a) : - elseif ($b): - endif; - if ($a) : - else: - endif; - if ($a) : - elseif ($b): - elseif ($c): - else: - endif; - - while (1) { break; } - while (1) { break 2; } - while (1) : break(3); endwhile; - class foo{ const FOO = 1, BAR = 2; } - class foo{ function bar() {} } - class foo{ public static function &bar() {} } - class foo{ final private function bar() {} protected function baz() {} } - abstract class foo{ abstract public function bar(); } - final class foo extends bar { } - final class foo implements bar { } - final class foo implements bar, baz { } - - const FOO = 1, BAR = 2; - while (1) { continue; } - while (1) { continue 2; } - while (1) { continue(3); } - declare(ticks=1); - declare(ticks=1, strict_types=1) {} - declare(ticks=1): enddeclare; - do {} while(1); - echo $a, 1; - echo($a); - for($i = 0; $i < 10; $i++, $i++) {} - for(; $i < 10; $i++) : endfor; - foreach ($a as $v) {} - foreach ([] as $v) {} - foreach ($a as $v) : endforeach; - foreach ($a as $k => $v) {} - foreach ([] as $k => $v) {} - foreach ($a as $k => &$v) {} - foreach ($a as $k => list($v)) {} - function foo() {} - - function foo() { - __halt_compiler(); - function bar() {} - class Baz {} - return $a; - } - - function foo(array $a, callable $b) {return;} - function &foo() {return 1;} - function &foo() {} - global $a, $b, $$c, ${foo()}; - a: - goto a; - __halt_compiler(); - if ($a) {} - if ($a) {} elseif ($b) {} - if ($a) {} else {} - if ($a) {} elseif ($b) {} elseif ($c) {} else {} - if ($a) {} elseif ($b) {} else if ($c) {} else {} - ?>
1, &$b,); - array(3 =>&$b); - array(&$b, 1=>1, 1, 3 =>&$b); - ~$a; - !$a; - - Foo::Bar; - clone($a); - clone $a; - function(){}; - function($a, $b) use ($c, &$d) {}; - function($a, $b) use (&$c, $d) {}; - function() {}; - foo; - namespace\foo; - \foo; - - empty($a); - empty(Foo); - @$a; - eval($a); - exit; - exit($a); - die(); - die($a); - foo(); - namespace\foo(&$a); - \foo([]); - $foo(yield $a); - - $a--; - $a++; - --$a; - ++$a; - - include $a; - include_once $a; - require $a; - require_once $a; - - $a instanceof Foo; - $a instanceof namespace\Foo; - $a instanceof \Foo; - - isset($a, $b); - isset(Foo); - list() = $b; - list($a, $b) = $b; - list($a[]) = $b; - list(list($a)) = $b; - - $a->foo(); - new Foo; - new namespace\Foo(); - new \Foo(); - print($a); - $a->foo; - $a->foo[1]; - $a->foo->bar->baz()->quux[0]; - $a->foo()[1][1]; - ` + "`cmd $a`;" + ` - ` + "`cmd`;" + ` - ` + "``;" + ` - []; - [1]; - [1=>1, &$b,]; - - Foo::bar(); - namespace\Foo::bar(); - \Foo::bar(); - Foo::$bar(); - $foo::$bar(); - Foo::$bar; - namespace\Foo::$bar; - \Foo::$bar; - $a ? $b : $c; - $a ? : $c; - $a ? $b ? $c : $d : $e; - $a ? $b : $c ? $d : $e; - -$a; - +$a; - $$a; - $$$a; - yield; - yield $a; - yield $a => $b; - yield Foo::class; - yield $a => Foo::class; - - (array)$a; - (boolean)$a; - (bool)$a; - (double)$a; - (float)$a; - (integer)$a; - (int)$a; - (object)$a; - (string)$a; - (unset)$a; - - $a & $b; - $a | $b; - $a ^ $b; - $a && $b; - $a || $b; - $a . $b; - $a / $b; - $a == $b; - $a >= $b; - $a > $b; - $a === $b; - $a and $b; - $a or $b; - $a xor $b; - $a - $b; - $a % $b; - $a * $b; - $a != $b; - $a !== $b; - $a + $b; - $a ** $b; - $a << $b; - $a >> $b; - $a <= $b; - $a < $b; - - $a =& $b; - $a =& new Foo; - $a =& new Foo($b); - $a = $b; - $a &= $b; - $a |= $b; - $a ^= $b; - $a .= $b; - $a /= $b; - $a -= $b; - $a %= $b; - $a *= $b; - $a += $b; - $a **= $b; - $a <<= $b; - $a >>= $b; - - - (new \Foo()); - (new \Foo())->bar()->baz; - (new \Foo())[0][0]; - (new \Foo())[0]->bar(); - - array([0])[0][0]; - "foo"[0]; - foo[0]; - static::foo; - - new $foo; - new $foo::$bar; - new $a->b[0]; - new $a->b{$b ?: null}->$c->d[0];static $a = [1][0]; - - static $a = !1; - static $a = ~1; - static $a = +1; - static $a = -1; - static $a = (1); - static $a = 1 ?: 2; - static $a = 1 ? 2 : 3; - static $a = 1 & 2; - static $a = 1 | 2; - static $a = 1 ^ 2; - static $a = 1 && 2; - static $a = 1 || 2; - static $a = 1 . 2; - static $a = 1 / 2; - static $a = 1 == 2; - static $a = 1 >= 2; - static $a = 1 > 2; - static $a = 1 === 2; - static $a = 1 and 2; - static $a = 1 or 2; - static $a = 1 xor 2; - static $a = 1 - 2; - static $a = 1 % 2; - static $a = 1 * 2; - static $a = 1 != 2; - static $a = 1 !== 2; - static $a = 1 + 2; - static $a = 1 ** 2; - static $a = 1 << 2; - static $a = 1 >> 2; - static $a = 1 <= 2; - static $a = 1 < 2; - static $a = Foo::bar; - static $a = Foo::class; - static $a = __CLASS__; - static $a = Foo; - static $a = namespace\Foo; - static $a = \Foo; - static $a = array(); - static $a = array(1 => 1, 2); - static $a = [1, 2 => 2][0]; - - if (yield 1) {} - Foo::$$bar; - - $foo(); - $foo()[0][0]; - $a{$b}; - ${$a}; - $foo::{$bar}(); - $foo::bar; - ` + src, err := ioutil.ReadFile("test.php") + if err != nil { + b.Fatal("can not read test.php: " + err.Error()) + } for n := 0; n < b.N; n++ { lexer := scanner.NewLexer([]byte(src), "5.6", nil) diff --git a/internal/php5/php5_test.go b/internal/php5/php5_test.go deleted file mode 100644 index 406f860..0000000 --- a/internal/php5/php5_test.go +++ /dev/null @@ -1,22460 +0,0 @@ -package php5_test - -import ( - "io/ioutil" - "testing" - - "gotest.tools/assert" - - "github.com/z7zmey/php-parser/internal/php5" - "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/traverser" - "github.com/z7zmey/php-parser/pkg/ast/visitor" - "github.com/z7zmey/php-parser/pkg/errors" - "github.com/z7zmey/php-parser/pkg/position" -) - -func TestPhp5(t *testing.T) { - src, err := ioutil.ReadFile("test.php") - assert.NilError(t, err) - - expected := &ast.Root{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 379, - StartPos: 3, - EndPos: 6285, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 18, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 17, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 6, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 3, - EndPos: 6, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 6, - EndPos: 17, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 7, - EndPos: 9, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 7, - EndPos: 9, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 7, - EndPos: 9, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 11, - EndPos: 16, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 14, - EndPos: 16, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 2, - EndLine: 2, - StartPos: 14, - EndPos: 16, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 35, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 34, - }, - }, - Function: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 23, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 19, - EndPos: 23, - }, - }, - Value: []byte("$foo"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 23, - EndPos: 34, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 26, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 26, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 24, - EndPos: 26, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 28, - EndPos: 33, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 31, - EndPos: 33, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 3, - EndLine: 3, - StartPos: 31, - EndPos: 33, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 57, - }, - }, - Expr: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 56, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 40, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 36, - EndPos: 40, - }, - }, - Value: []byte("$foo"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 42, - EndPos: 45, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 45, - EndPos: 56, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 46, - EndPos: 48, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 46, - EndPos: 48, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 46, - EndPos: 48, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 50, - EndPos: 55, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 4, - EndLine: 4, - StartPos: 53, - EndPos: 55, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 78, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 77, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 61, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 58, - EndPos: 61, - }, - }, - Value: []byte("foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 63, - EndPos: 66, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 66, - EndPos: 77, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 69, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 69, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 67, - EndPos: 69, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 71, - EndPos: 76, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 74, - EndPos: 76, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 5, - EndLine: 5, - StartPos: 74, - EndPos: 76, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 100, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 99, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 83, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 79, - EndPos: 83, - }, - }, - Value: []byte("$foo"), - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 85, - EndPos: 88, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 88, - EndPos: 99, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 91, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 91, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 89, - EndPos: 91, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 93, - EndPos: 98, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 96, - EndPos: 98, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 6, - EndLine: 6, - StartPos: 96, - EndPos: 98, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 101, - EndPos: 120, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 101, - EndPos: 119, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 105, - EndPos: 108, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 105, - EndPos: 108, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 108, - EndPos: 119, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 109, - EndPos: 111, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 109, - EndPos: 111, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 109, - EndPos: 111, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 113, - EndPos: 118, - }, - }, - Variadic: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 116, - EndPos: 118, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 7, - EndLine: 7, - StartPos: 116, - EndPos: 118, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 122, - EndPos: 166, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 131, - EndPos: 134, - }, - }, - Value: []byte("foo"), - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 135, - EndPos: 148, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 135, - EndPos: 138, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 135, - EndPos: 138, - }, - }, - Value: []byte("bar"), - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 139, - EndPos: 143, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 139, - EndPos: 143, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 144, - EndPos: 148, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 144, - EndPos: 148, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 144, - EndPos: 148, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 150, - EndPos: 162, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 150, - EndPos: 153, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 150, - EndPos: 153, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 154, - EndPos: 162, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 155, - EndPos: 162, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 158, - EndPos: 162, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 9, - EndLine: 9, - StartPos: 158, - EndPos: 162, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 167, - EndPos: 230, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 173, - EndPos: 176, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 178, - EndPos: 229, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 194, - EndPos: 197, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 178, - EndPos: 184, - }, - }, - Value: []byte("public"), - }, - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 198, - EndPos: 211, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 198, - EndPos: 201, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 198, - EndPos: 201, - }, - }, - Value: []byte("bar"), - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 202, - EndPos: 206, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 202, - EndPos: 206, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 207, - EndPos: 211, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 207, - EndPos: 211, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 207, - EndPos: 211, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 213, - EndPos: 225, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 213, - EndPos: 216, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 213, - EndPos: 216, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 217, - EndPos: 225, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 218, - EndPos: 225, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 221, - EndPos: 225, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 221, - EndPos: 225, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 10, - EndLine: 10, - StartPos: 227, - EndPos: 229, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 231, - EndPos: 272, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 231, - EndPos: 271, - }, - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 240, - EndPos: 253, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 240, - EndPos: 243, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 240, - EndPos: 243, - }, - }, - Value: []byte("bar"), - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 244, - EndPos: 248, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 244, - EndPos: 248, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 249, - EndPos: 253, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 249, - EndPos: 253, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 249, - EndPos: 253, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 255, - EndPos: 267, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 255, - EndPos: 258, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 255, - EndPos: 258, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 259, - EndPos: 267, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 260, - EndPos: 267, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 263, - EndPos: 267, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 11, - EndLine: 11, - StartPos: 263, - EndPos: 267, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 273, - EndPos: 321, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 273, - EndPos: 320, - }, - }, - Static: true, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 289, - EndPos: 302, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 289, - EndPos: 292, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 289, - EndPos: 292, - }, - }, - Value: []byte("bar"), - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 293, - EndPos: 297, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 293, - EndPos: 297, - }, - }, - Value: []byte("$bar"), - }, - }, - DefaultValue: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 298, - EndPos: 302, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 298, - EndPos: 302, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 298, - EndPos: 302, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 304, - EndPos: 316, - }, - }, - Type: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 304, - EndPos: 307, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 304, - EndPos: 307, - }, - }, - Value: []byte("baz"), - }, - }, - }, - Var: &ast.Reference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 308, - EndPos: 316, - }, - }, - Var: &ast.Variadic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 309, - EndPos: 316, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 312, - EndPos: 316, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 12, - EndLine: 12, - StartPos: 312, - EndPos: 316, - }, - }, - Value: []byte("$baz"), - }, - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 323, - EndPos: 343, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 14, - EndLine: 14, - StartPos: 323, - EndPos: 342, - }, - }, - Value: []byte("1234567890123456789"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 344, - EndPos: 365, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 15, - EndLine: 15, - StartPos: 344, - EndPos: 364, - }, - }, - Value: []byte("12345678901234567890"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 366, - EndPos: 369, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 16, - EndLine: 16, - StartPos: 366, - EndPos: 368, - }, - }, - Value: []byte("0."), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 17, - EndLine: 17, - StartPos: 370, - EndPos: 437, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 17, - EndLine: 17, - StartPos: 370, - EndPos: 436, - }, - }, - Value: []byte("0b0111111111111111111111111111111111111111111111111111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 438, - EndPos: 505, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 18, - EndLine: 18, - StartPos: 438, - EndPos: 504, - }, - }, - Value: []byte("0b1111111111111111111111111111111111111111111111111111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 506, - EndPos: 527, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 19, - EndLine: 19, - StartPos: 506, - EndPos: 526, - }, - }, - Value: []byte("0x007111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 528, - EndPos: 547, - }, - }, - Expr: &ast.ScalarDnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 20, - EndLine: 20, - StartPos: 528, - EndPos: 546, - }, - }, - Value: []byte("0x8111111111111111"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 548, - EndPos: 558, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 21, - EndLine: 21, - StartPos: 548, - EndPos: 557, - }, - }, - Value: []byte("__CLASS__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 22, - EndLine: 22, - StartPos: 559, - EndPos: 567, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 22, - EndLine: 22, - StartPos: 559, - EndPos: 566, - }, - }, - Value: []byte("__DIR__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 23, - EndLine: 23, - StartPos: 568, - EndPos: 577, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 23, - EndLine: 23, - StartPos: 568, - EndPos: 576, - }, - }, - Value: []byte("__FILE__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 24, - EndLine: 24, - StartPos: 578, - EndPos: 591, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 24, - EndLine: 24, - StartPos: 578, - EndPos: 590, - }, - }, - Value: []byte("__FUNCTION__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 25, - EndLine: 25, - StartPos: 592, - EndPos: 601, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 25, - EndLine: 25, - StartPos: 592, - EndPos: 600, - }, - }, - Value: []byte("__LINE__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 26, - EndLine: 26, - StartPos: 602, - EndPos: 616, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 26, - EndLine: 26, - StartPos: 602, - EndPos: 615, - }, - }, - Value: []byte("__NAMESPACE__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 27, - EndLine: 27, - StartPos: 617, - EndPos: 628, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 27, - EndLine: 27, - StartPos: 617, - EndPos: 627, - }, - }, - Value: []byte("__METHOD__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 28, - EndLine: 28, - StartPos: 629, - EndPos: 639, - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 28, - EndLine: 28, - StartPos: 629, - EndPos: 638, - }, - }, - Value: []byte("__TRAIT__"), - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 641, - EndPos: 653, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 641, - EndPos: 652, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 642, - EndPos: 647, - }, - }, - Value: []byte("test "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 647, - EndPos: 651, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 30, - EndLine: 30, - StartPos: 647, - EndPos: 651, - }, - }, - Value: []byte("$var"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 654, - EndPos: 669, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 654, - EndPos: 668, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 655, - EndPos: 660, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 660, - EndPos: 667, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 660, - EndPos: 664, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 660, - EndPos: 664, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 31, - EndLine: 31, - StartPos: 665, - EndPos: 666, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 670, - EndPos: 724, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 670, - EndPos: 723, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 671, - EndPos: 676, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 676, - EndPos: 722, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 676, - EndPos: 680, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 676, - EndPos: 680, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ScalarString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 32, - EndLine: 32, - StartPos: 681, - EndPos: 721, - }, - }, - Value: []byte("1234567890123456789012345678901234567890"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 725, - EndPos: 742, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 725, - EndPos: 741, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 726, - EndPos: 731, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 731, - EndPos: 740, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 731, - EndPos: 735, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 731, - EndPos: 735, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ScalarString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 33, - EndLine: 33, - StartPos: 736, - EndPos: 739, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 743, - EndPos: 761, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 743, - EndPos: 760, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 744, - EndPos: 749, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 749, - EndPos: 759, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 749, - EndPos: 753, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 749, - EndPos: 753, - }, - }, - Value: []byte("$var"), - }, - }, - Dim: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 754, - EndPos: 758, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 34, - EndLine: 34, - StartPos: 754, - EndPos: 758, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 762, - EndPos: 774, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 762, - EndPos: 773, - }, - }, - Parts: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 763, - EndPos: 767, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 763, - EndPos: 767, - }, - }, - Value: []byte("$foo"), - }, - }, - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 767, - EndPos: 768, - }, - }, - Value: []byte(" "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 768, - EndPos: 772, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 35, - EndLine: 35, - StartPos: 768, - EndPos: 772, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 775, - EndPos: 794, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 775, - EndPos: 793, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 776, - EndPos: 781, - }, - }, - Value: []byte("test "), - }, - &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 781, - EndPos: 790, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 781, - EndPos: 785, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 781, - EndPos: 785, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 787, - EndPos: 790, - }, - }, - Value: []byte("bar"), - }, - }, - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 36, - EndLine: 36, - StartPos: 790, - EndPos: 792, - }, - }, - Value: []byte("()"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 795, - EndPos: 809, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 795, - EndPos: 808, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 796, - EndPos: 801, - }, - }, - Value: []byte("test "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 801, - EndPos: 807, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 37, - EndLine: 37, - StartPos: 803, - EndPos: 806, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 810, - EndPos: 827, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 810, - EndPos: 826, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 811, - EndPos: 816, - }, - }, - Value: []byte("test "), - }, - &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 816, - EndPos: 825, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 818, - EndPos: 821, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 818, - EndPos: 821, - }, - }, - Value: []byte("foo"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 38, - EndLine: 38, - StartPos: 822, - EndPos: 823, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 828, - EndPos: 849, - }, - }, - Expr: &ast.ScalarEncapsed{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 828, - EndPos: 848, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 829, - EndPos: 834, - }, - }, - Value: []byte("test "), - }, - &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 835, - EndPos: 846, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 835, - EndPos: 839, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 835, - EndPos: 839, - }, - }, - Value: []byte("$foo"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 841, - EndPos: 844, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 39, - EndLine: 39, - StartPos: 844, - EndPos: 846, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 42, - StartPos: 851, - EndPos: 867, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 855, - EndPos: 857, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 41, - EndLine: 41, - StartPos: 855, - EndPos: 857, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 45, - StartPos: 868, - EndPos: 897, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 872, - EndPos: 874, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 43, - EndLine: 43, - StartPos: 872, - EndPos: 874, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: -1, - StartPos: 878, - EndPos: -1, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 886, - EndPos: 888, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 44, - EndLine: 44, - StartPos: 886, - EndPos: 888, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 48, - StartPos: 898, - EndPos: 920, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 902, - EndPos: 904, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 46, - EndLine: 46, - StartPos: 902, - EndPos: 904, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 47, - EndLine: -1, - StartPos: 908, - EndPos: -1, - }, - }, - Alt: true, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 53, - StartPos: 921, - EndPos: 969, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 925, - EndPos: 927, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 49, - EndLine: 49, - StartPos: 925, - EndPos: 927, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: -1, - StartPos: 931, - EndPos: -1, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 939, - EndPos: 941, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 50, - EndLine: 50, - StartPos: 939, - EndPos: 941, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: -1, - StartPos: 944, - EndPos: -1, - }, - }, - Alt: true, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 952, - EndPos: 954, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 51, - EndLine: 51, - StartPos: 952, - EndPos: 954, - }, - }, - Value: []byte("$c"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 52, - EndLine: -1, - StartPos: 957, - EndPos: -1, - }, - }, - Alt: true, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 971, - EndPos: 991, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 978, - EndPos: 979, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 981, - EndPos: 991, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 55, - EndLine: 55, - StartPos: 983, - EndPos: 989, - }, - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 992, - EndPos: 1014, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 999, - EndPos: 1000, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1002, - EndPos: 1014, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1004, - EndPos: 1012, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 56, - EndLine: 56, - StartPos: 1010, - EndPos: 1011, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1015, - EndPos: 1046, - }, - }, - Alt: true, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1022, - EndPos: 1023, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1027, - EndPos: 1036, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1027, - EndPos: 1036, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 57, - EndLine: 57, - StartPos: 1033, - EndPos: 1034, - }, - }, - Value: []byte("3"), - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1047, - EndPos: 1083, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1053, - EndPos: 1056, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassConstList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1058, - EndPos: 1081, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1064, - EndPos: 1071, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1064, - EndPos: 1067, - }, - }, - Value: []byte("FOO"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1070, - EndPos: 1071, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1073, - EndPos: 1080, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1073, - EndPos: 1076, - }, - }, - Value: []byte("BAR"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 58, - EndLine: 58, - StartPos: 1079, - EndPos: 1080, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 59, - EndLine: 59, - StartPos: 1084, - EndPos: 1114, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 59, - EndLine: 59, - StartPos: 1090, - EndPos: 1093, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 59, - EndLine: 59, - StartPos: 1095, - EndPos: 1112, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 59, - EndLine: 59, - StartPos: 1104, - EndPos: 1107, - }, - }, - Value: []byte("bar"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 59, - EndLine: 59, - StartPos: 1110, - EndPos: 1112, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1115, - EndPos: 1160, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1121, - EndPos: 1124, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1126, - EndPos: 1158, - }, - }, - ReturnsRef: true, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1150, - EndPos: 1153, - }, - }, - Value: []byte("bar"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1126, - EndPos: 1132, - }, - }, - Value: []byte("public"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1133, - EndPos: 1139, - }, - }, - Value: []byte("static"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 60, - EndLine: 60, - StartPos: 1156, - EndPos: 1158, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1161, - EndPos: 1233, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1167, - EndPos: 1170, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1172, - EndPos: 1203, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1195, - EndPos: 1198, - }, - }, - Value: []byte("bar"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1172, - EndPos: 1177, - }, - }, - Value: []byte("final"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1178, - EndPos: 1185, - }, - }, - Value: []byte("private"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1201, - EndPos: 1203, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1204, - EndPos: 1231, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1223, - EndPos: 1226, - }, - }, - Value: []byte("baz"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1204, - EndPos: 1213, - }, - }, - Value: []byte("protected"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 61, - EndLine: 61, - StartPos: 1229, - EndPos: 1231, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1234, - EndPos: 1287, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1249, - EndPos: 1252, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1234, - EndPos: 1242, - }, - }, - Value: []byte("abstract"), - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtClassMethod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1254, - EndPos: 1285, - }, - }, - MethodName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1279, - EndPos: 1282, - }, - }, - Value: []byte("bar"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1254, - EndPos: 1262, - }, - }, - Value: []byte("abstract"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1263, - EndPos: 1269, - }, - }, - Value: []byte("public"), - }, - }, - Stmt: &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 62, - EndLine: 62, - StartPos: 1284, - EndPos: 1285, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1288, - EndPos: 1319, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1300, - EndPos: 1303, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1288, - EndPos: 1293, - }, - }, - Value: []byte("final"), - }, - }, - Extends: &ast.StmtClassExtends{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1304, - EndPos: 1315, - }, - }, - ClassName: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1312, - EndPos: 1315, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 63, - EndLine: 63, - StartPos: 1312, - EndPos: 1315, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1320, - EndPos: 1354, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1332, - EndPos: 1335, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1320, - EndPos: 1325, - }, - }, - Value: []byte("final"), - }, - }, - Implements: &ast.StmtClassImplements{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1336, - EndPos: 1350, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1347, - EndPos: 1350, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 64, - EndLine: 64, - StartPos: 1347, - EndPos: 1350, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1355, - EndPos: 1394, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1367, - EndPos: 1370, - }, - }, - Value: []byte("foo"), - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1355, - EndPos: 1360, - }, - }, - Value: []byte("final"), - }, - }, - Implements: &ast.StmtClassImplements{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1371, - EndPos: 1390, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1382, - EndPos: 1385, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1382, - EndPos: 1385, - }, - }, - Value: []byte("bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1387, - EndPos: 1390, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 65, - EndLine: 65, - StartPos: 1387, - EndPos: 1390, - }, - }, - Value: []byte("baz"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtConstList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1396, - EndPos: 1419, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1402, - EndPos: 1409, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1402, - EndPos: 1405, - }, - }, - Value: []byte("FOO"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1408, - EndPos: 1409, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1411, - EndPos: 1418, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1411, - EndPos: 1414, - }, - }, - Value: []byte("BAR"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 67, - EndLine: 67, - StartPos: 1417, - EndPos: 1418, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1420, - EndPos: 1443, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1427, - EndPos: 1428, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1430, - EndPos: 1443, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtContinue{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 68, - EndLine: 68, - StartPos: 1432, - EndPos: 1441, - }, - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1444, - EndPos: 1469, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1451, - EndPos: 1452, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1454, - EndPos: 1469, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtContinue{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1456, - EndPos: 1467, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 69, - EndLine: 69, - StartPos: 1465, - EndPos: 1466, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtWhile{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1470, - EndPos: 1496, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1477, - EndPos: 1478, - }, - }, - Value: []byte("1"), - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1480, - EndPos: 1496, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtContinue{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1482, - EndPos: 1494, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 70, - EndLine: 70, - StartPos: 1491, - EndPos: 1492, - }, - }, - Value: []byte("3"), - }, - }, - }, - }, - }, - &ast.StmtDeclare{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1497, - EndPos: 1514, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1505, - EndPos: 1512, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1505, - EndPos: 1510, - }, - }, - Value: []byte("ticks"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1511, - EndPos: 1512, - }, - }, - Value: []byte("1"), - }, - }, - }, - Stmt: &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 71, - EndLine: 71, - StartPos: 1513, - EndPos: 1514, - }, - }, - }, - }, - &ast.StmtDeclare{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1515, - EndPos: 1550, - }, - }, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1523, - EndPos: 1530, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1523, - EndPos: 1528, - }, - }, - Value: []byte("ticks"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1529, - EndPos: 1530, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1532, - EndPos: 1546, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1532, - EndPos: 1544, - }, - }, - Value: []byte("strict_types"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1545, - EndPos: 1546, - }, - }, - Value: []byte("1"), - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 72, - EndLine: 72, - StartPos: 1548, - EndPos: 1550, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtDeclare{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1551, - EndPos: 1580, - }, - }, - Alt: true, - Consts: []ast.Vertex{ - &ast.StmtConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1559, - EndPos: 1566, - }, - }, - Name: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1559, - EndPos: 1564, - }, - }, - Value: []byte("ticks"), - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 73, - EndLine: 73, - StartPos: 1565, - EndPos: 1566, - }, - }, - Value: []byte("1"), - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtDo{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1581, - EndPos: 1596, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1584, - EndPos: 1586, - }, - }, - Stmts: []ast.Vertex{}, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 74, - EndLine: 74, - StartPos: 1593, - EndPos: 1594, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtEcho{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1597, - EndPos: 1608, - }, - }, - Exprs: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1602, - EndPos: 1604, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1602, - EndPos: 1604, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 75, - EndLine: 75, - StartPos: 1606, - EndPos: 1607, - }, - }, - Value: []byte("1"), - }, - }, - }, - &ast.StmtEcho{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1609, - EndPos: 1618, - }, - }, - Exprs: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1614, - EndPos: 1616, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 76, - EndLine: 76, - StartPos: 1614, - EndPos: 1616, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtFor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1619, - EndPos: 1654, - }, - }, - Init: []ast.Vertex{ - &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1623, - EndPos: 1629, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1623, - EndPos: 1625, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1623, - EndPos: 1625, - }, - }, - Value: []byte("$i"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1628, - EndPos: 1629, - }, - }, - Value: []byte("0"), - }, - }, - }, - Cond: []ast.Vertex{ - &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1631, - EndPos: 1638, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1631, - EndPos: 1633, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1631, - EndPos: 1633, - }, - }, - Value: []byte("$i"), - }, - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1636, - EndPos: 1638, - }, - }, - Value: []byte("10"), - }, - }, - }, - Loop: []ast.Vertex{ - &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1640, - EndPos: 1644, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1640, - EndPos: 1642, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1640, - EndPos: 1642, - }, - }, - Value: []byte("$i"), - }, - }, - }, - &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1646, - EndPos: 1650, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1646, - EndPos: 1648, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1646, - EndPos: 1648, - }, - }, - Value: []byte("$i"), - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 77, - EndLine: 77, - StartPos: 1652, - EndPos: 1654, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtFor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1655, - EndPos: 1685, - }, - }, - Alt: true, - Cond: []ast.Vertex{ - &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1661, - EndPos: 1668, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1661, - EndPos: 1663, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1661, - EndPos: 1663, - }, - }, - Value: []byte("$i"), - }, - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1666, - EndPos: 1668, - }, - }, - Value: []byte("10"), - }, - }, - }, - Loop: []ast.Vertex{ - &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1670, - EndPos: 1674, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1670, - EndPos: 1672, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 78, - EndLine: 78, - StartPos: 1670, - EndPos: 1672, - }, - }, - Value: []byte("$i"), - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1686, - EndPos: 1707, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1695, - EndPos: 1697, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1695, - EndPos: 1697, - }, - }, - Value: []byte("$a"), - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1701, - EndPos: 1703, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1701, - EndPos: 1703, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 79, - EndLine: 79, - StartPos: 1705, - EndPos: 1707, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1708, - EndPos: 1729, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1717, - EndPos: 1719, - }, - }, - Items: []ast.Vertex{}, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1723, - EndPos: 1725, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1723, - EndPos: 1725, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 80, - EndLine: 80, - StartPos: 1727, - EndPos: 1729, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1730, - EndPos: 1762, - }, - }, - Alt: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1739, - EndPos: 1741, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1739, - EndPos: 1741, - }, - }, - Value: []byte("$a"), - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1745, - EndPos: 1747, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 81, - EndLine: 81, - StartPos: 1745, - EndPos: 1747, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: -1, - EndLine: -1, - StartPos: -1, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1763, - EndPos: 1790, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1772, - EndPos: 1774, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1772, - EndPos: 1774, - }, - }, - Value: []byte("$a"), - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1778, - EndPos: 1780, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1778, - EndPos: 1780, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1784, - EndPos: 1786, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1784, - EndPos: 1786, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 82, - EndLine: 82, - StartPos: 1788, - EndPos: 1790, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1791, - EndPos: 1818, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1800, - EndPos: 1802, - }, - }, - Items: []ast.Vertex{}, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1806, - EndPos: 1808, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1806, - EndPos: 1808, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1812, - EndPos: 1814, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1812, - EndPos: 1814, - }, - }, - Value: []byte("$v"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 83, - EndLine: 83, - StartPos: 1816, - EndPos: 1818, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1819, - EndPos: 1847, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1828, - EndPos: 1830, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1828, - EndPos: 1830, - }, - }, - Value: []byte("$a"), - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1834, - EndPos: 1836, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1834, - EndPos: 1836, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1840, - EndPos: 1843, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1841, - EndPos: 1843, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1841, - EndPos: 1843, - }, - }, - Value: []byte("$v"), - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 84, - EndLine: 84, - StartPos: 1845, - EndPos: 1847, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtForeach{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1848, - EndPos: 1881, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1857, - EndPos: 1859, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1857, - EndPos: 1859, - }, - }, - Value: []byte("$a"), - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1863, - EndPos: 1865, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1863, - EndPos: 1865, - }, - }, - Value: []byte("$k"), - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1869, - EndPos: 1877, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1874, - EndPos: 1876, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1874, - EndPos: 1876, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1874, - EndPos: 1876, - }, - }, - Value: []byte("$v"), - }, - }, - }, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 85, - EndLine: 85, - StartPos: 1879, - EndPos: 1881, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1882, - EndPos: 1899, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 86, - EndLine: 86, - StartPos: 1891, - EndPos: 1894, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 88, - EndLine: 92, - StartPos: 1901, - EndPos: 1973, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 88, - EndLine: 88, - StartPos: 1910, - EndPos: 1913, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 1922, - EndPos: 1939, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 89, - EndLine: 89, - StartPos: 1931, - EndPos: 1934, - }, - }, - Value: []byte("bar"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 1944, - EndPos: 1956, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 90, - EndLine: 90, - StartPos: 1950, - EndPos: 1953, - }, - }, - Value: []byte("Baz"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtReturn{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1961, - EndPos: 1971, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1968, - EndPos: 1970, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 91, - EndLine: 91, - StartPos: 1968, - EndPos: 1970, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1975, - EndPos: 2020, - }, - }, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1984, - EndPos: 1987, - }, - }, - Value: []byte("foo"), - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1988, - EndPos: 1996, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1988, - EndPos: 1993, - }, - }, - Value: []byte("array"), - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1994, - EndPos: 1996, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1994, - EndPos: 1996, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1998, - EndPos: 2009, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 1998, - EndPos: 2006, - }, - }, - Value: []byte("callable"), - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2007, - EndPos: 2009, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2007, - EndPos: 2009, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtReturn{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 94, - EndLine: 94, - StartPos: 2012, - EndPos: 2019, - }, - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2021, - EndPos: 2048, - }, - }, - ReturnsRef: true, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2031, - EndPos: 2034, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtReturn{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2038, - EndPos: 2047, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 95, - EndLine: 95, - StartPos: 2045, - EndPos: 2046, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - &ast.StmtFunction{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2049, - EndPos: 2067, - }, - }, - ReturnsRef: true, - FunctionName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 96, - EndLine: 96, - StartPos: 2059, - EndPos: 2062, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtGlobal{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2068, - EndPos: 2097, - }, - }, - Vars: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2075, - EndPos: 2077, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2075, - EndPos: 2077, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2079, - EndPos: 2081, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2079, - EndPos: 2081, - }, - }, - Value: []byte("$b"), - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2083, - EndPos: 2086, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2084, - EndPos: 2086, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2084, - EndPos: 2086, - }, - }, - Value: []byte("$c"), - }, - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2088, - EndPos: 2096, - }, - }, - VarName: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2090, - EndPos: 2095, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2090, - EndPos: 2093, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2090, - EndPos: 2093, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 97, - EndLine: 97, - StartPos: 2093, - EndPos: 2095, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtLabel{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2098, - EndPos: 2100, - }, - }, - LabelName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 98, - EndLine: 98, - StartPos: 2098, - EndPos: 2099, - }, - }, - Value: []byte("a"), - }, - }, - &ast.StmtGoto{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2101, - EndPos: 2108, - }, - }, - Label: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 99, - EndLine: 99, - StartPos: 2106, - EndPos: 2107, - }, - }, - Value: []byte("a"), - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2109, - EndPos: 2119, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2113, - EndPos: 2115, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2113, - EndPos: 2115, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 100, - EndLine: 100, - StartPos: 2117, - EndPos: 2119, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2120, - EndPos: 2145, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2124, - EndPos: 2126, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2124, - EndPos: 2126, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2128, - EndPos: 2130, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2131, - EndPos: 2145, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2139, - EndPos: 2141, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2139, - EndPos: 2141, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 101, - EndLine: 101, - StartPos: 2143, - EndPos: 2145, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2146, - EndPos: 2164, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2150, - EndPos: 2152, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2150, - EndPos: 2152, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2154, - EndPos: 2156, - }, - }, - Stmts: []ast.Vertex{}, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2157, - EndPos: 2164, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 102, - EndLine: 102, - StartPos: 2162, - EndPos: 2164, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2165, - EndPos: 2213, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2169, - EndPos: 2171, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2169, - EndPos: 2171, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2173, - EndPos: 2175, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2176, - EndPos: 2190, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2184, - EndPos: 2186, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2184, - EndPos: 2186, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2188, - EndPos: 2190, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2191, - EndPos: 2205, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2199, - EndPos: 2201, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2199, - EndPos: 2201, - }, - }, - Value: []byte("$c"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2203, - EndPos: 2205, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2206, - EndPos: 2213, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 103, - EndLine: 103, - StartPos: 2211, - EndPos: 2213, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2214, - EndPos: 2263, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2218, - EndPos: 2220, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2218, - EndPos: 2220, - }, - }, - Value: []byte("$a"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2222, - EndPos: 2224, - }, - }, - Stmts: []ast.Vertex{}, - }, - ElseIf: []ast.Vertex{ - &ast.StmtElseIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2225, - EndPos: 2239, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2233, - EndPos: 2235, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2233, - EndPos: 2235, - }, - }, - Value: []byte("$b"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2237, - EndPos: 2239, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2240, - EndPos: 2263, - }, - }, - Stmt: &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2245, - EndPos: 2263, - }, - }, - Cond: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2249, - EndPos: 2251, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2249, - EndPos: 2251, - }, - }, - Value: []byte("$c"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2253, - EndPos: 2255, - }, - }, - Stmts: []ast.Vertex{}, - }, - Else: &ast.StmtElse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2256, - EndPos: 2263, - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 104, - EndLine: 104, - StartPos: 2261, - EndPos: 2263, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - }, - }, - &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2264, - EndPos: 2266, - }, - }, - }, - &ast.StmtInlineHtml{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 105, - EndLine: 105, - StartPos: 2266, - EndPos: 2279, - }, - }, - Value: []byte("
"), - }, - &ast.StmtInterface{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2282, - EndPos: 2298, - }, - }, - InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 106, - EndLine: 106, - StartPos: 2292, - EndPos: 2295, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtInterface{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2299, - EndPos: 2327, - }, - }, - InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2309, - EndPos: 2312, - }, - }, - Value: []byte("Foo"), - }, - Extends: &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2313, - EndPos: 2324, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2321, - EndPos: 2324, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 107, - EndLine: 107, - StartPos: 2321, - EndPos: 2324, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtInterface{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2328, - EndPos: 2361, - }, - }, - InterfaceName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2338, - EndPos: 2341, - }, - }, - Value: []byte("Foo"), - }, - Extends: &ast.StmtInterfaceExtends{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2342, - EndPos: 2358, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2350, - EndPos: 2353, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2350, - EndPos: 2353, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2355, - EndPos: 2358, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 108, - EndLine: 108, - StartPos: 2355, - EndPos: 2358, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtNamespace{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2362, - EndPos: 2376, - }, - }, - Name: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2372, - EndPos: 2375, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 109, - EndLine: 109, - StartPos: 2372, - EndPos: 2375, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtNamespace{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2377, - EndPos: 2397, - }, - }, - Name: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2387, - EndPos: 2394, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2387, - EndPos: 2390, - }, - }, - Value: []byte("Foo"), - }, - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 110, - EndLine: 110, - StartPos: 2390, - EndPos: 2394, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtNamespace{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 111, - EndLine: 111, - StartPos: 2398, - EndPos: 2410, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2411, - EndPos: 2430, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2417, - EndPos: 2420, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtPropertyList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2422, - EndPos: 2429, - }, - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2422, - EndPos: 2425, - }, - }, - Value: []byte("var"), - }, - }, - Properties: []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2426, - EndPos: 2428, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2426, - EndPos: 2428, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 112, - EndLine: 112, - StartPos: 2426, - EndPos: 2428, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2431, - EndPos: 2468, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2437, - EndPos: 2440, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtPropertyList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2442, - EndPos: 2467, - }, - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2442, - EndPos: 2448, - }, - }, - Value: []byte("public"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2449, - EndPos: 2455, - }, - }, - Value: []byte("static"), - }, - }, - Properties: []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2456, - EndPos: 2458, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2456, - EndPos: 2458, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2456, - EndPos: 2458, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2460, - EndPos: 2466, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2460, - EndPos: 2462, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2460, - EndPos: 2462, - }, - }, - Value: []byte("$b"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 113, - EndLine: 113, - StartPos: 2465, - EndPos: 2466, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2469, - EndPos: 2506, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2475, - EndPos: 2478, - }, - }, - Value: []byte("foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtPropertyList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2480, - EndPos: 2505, - }, - }, - Modifiers: []ast.Vertex{ - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2480, - EndPos: 2486, - }, - }, - Value: []byte("public"), - }, - &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2487, - EndPos: 2493, - }, - }, - Value: []byte("static"), - }, - }, - Properties: []ast.Vertex{ - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2494, - EndPos: 2500, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2494, - EndPos: 2496, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2494, - EndPos: 2496, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2499, - EndPos: 2500, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtProperty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2502, - EndPos: 2504, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2502, - EndPos: 2504, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 114, - EndLine: 114, - StartPos: 2502, - EndPos: 2504, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2507, - EndPos: 2525, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2514, - EndPos: 2516, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2514, - EndPos: 2516, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2514, - EndPos: 2516, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2518, - EndPos: 2524, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2518, - EndPos: 2520, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2518, - EndPos: 2520, - }, - }, - Value: []byte("$b"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 115, - EndLine: 115, - StartPos: 2523, - EndPos: 2524, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2526, - EndPos: 2544, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2533, - EndPos: 2539, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2533, - EndPos: 2535, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2533, - EndPos: 2535, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2538, - EndPos: 2539, - }, - }, - Value: []byte("1"), - }, - }, - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2541, - EndPos: 2543, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2541, - EndPos: 2543, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 116, - EndLine: 116, - StartPos: 2541, - EndPos: 2543, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 122, - StartPos: 2546, - EndPos: 2606, - }, - }, - Alt: true, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 118, - EndLine: 118, - StartPos: 2554, - EndPos: 2555, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: -1, - StartPos: 2563, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 119, - EndLine: 119, - StartPos: 2568, - EndPos: 2569, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtDefault{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 120, - EndLine: -1, - StartPos: 2575, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 121, - EndLine: -1, - StartPos: 2588, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 121, - EndLine: 121, - StartPos: 2593, - EndPos: 2594, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 124, - EndLine: 127, - StartPos: 2608, - EndPos: 2656, - }, - }, - Alt: true, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 124, - EndLine: 124, - StartPos: 2616, - EndPos: 2617, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 125, - EndLine: -1, - StartPos: 2626, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 125, - EndLine: 125, - StartPos: 2631, - EndPos: 2632, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 126, - EndLine: -1, - StartPos: 2638, - EndPos: -1, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 126, - EndLine: 126, - StartPos: 2643, - EndPos: 2644, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 129, - EndLine: 132, - StartPos: 2658, - EndPos: 2710, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 129, - EndLine: 129, - StartPos: 2666, - EndPos: 2667, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2675, - EndPos: 2689, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2680, - EndPos: 2681, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 130, - EndLine: 130, - StartPos: 2683, - EndPos: 2689, - }, - }, - }, - }, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 131, - EndLine: 131, - StartPos: 2694, - EndPos: 2708, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 131, - EndLine: 131, - StartPos: 2699, - EndPos: 2700, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 131, - EndLine: 131, - StartPos: 2702, - EndPos: 2708, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtSwitch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 134, - EndLine: 137, - StartPos: 2712, - EndPos: 2765, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 134, - EndLine: 134, - StartPos: 2720, - EndPos: 2721, - }, - }, - Value: []byte("1"), - }, - CaseList: []ast.Vertex{ - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2730, - EndPos: 2744, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2735, - EndPos: 2736, - }, - }, - Value: []byte("1"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 135, - EndLine: 135, - StartPos: 2738, - EndPos: 2744, - }, - }, - }, - }, - }, - &ast.StmtCase{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 2749, - EndPos: 2763, - }, - }, - Cond: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 2754, - EndPos: 2755, - }, - }, - Value: []byte("2"), - }, - Stmts: []ast.Vertex{ - &ast.StmtBreak{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 136, - EndLine: 136, - StartPos: 2757, - EndPos: 2763, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtThrow{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 2766, - EndPos: 2775, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 2772, - EndPos: 2774, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 138, - EndLine: 138, - StartPos: 2772, - EndPos: 2774, - }, - }, - Value: []byte("$e"), - }, - }, - }, - &ast.StmtTrait{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 2776, - EndPos: 2788, - }, - }, - TraitName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 139, - EndLine: 139, - StartPos: 2782, - EndPos: 2785, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2789, - EndPos: 2811, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2795, - EndPos: 2798, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2801, - EndPos: 2809, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2805, - EndPos: 2808, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2805, - EndPos: 2808, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtNop{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 140, - EndLine: 140, - StartPos: 2808, - EndPos: 2809, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2812, - EndPos: 2841, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2818, - EndPos: 2821, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2824, - EndPos: 2839, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2828, - EndPos: 2831, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2828, - EndPos: 2831, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2833, - EndPos: 2836, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2833, - EndPos: 2836, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 141, - EndLine: 141, - StartPos: 2837, - EndPos: 2839, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2842, - EndPos: 2887, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2848, - EndPos: 2851, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2854, - EndPos: 2885, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2858, - EndPos: 2861, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2858, - EndPos: 2861, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2863, - EndPos: 2866, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2863, - EndPos: 2866, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2867, - EndPos: 2885, - }, - }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2869, - EndPos: 2882, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2869, - EndPos: 2872, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2869, - EndPos: 2872, - }, - }, - Value: []byte("one"), - }, - }, - Modifier: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 142, - EndLine: 142, - StartPos: 2876, - EndPos: 2882, - }, - }, - Value: []byte("public"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2888, - EndPos: 2937, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2894, - EndPos: 2897, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2900, - EndPos: 2935, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2904, - EndPos: 2907, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2904, - EndPos: 2907, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2909, - EndPos: 2912, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2909, - EndPos: 2912, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2913, - EndPos: 2935, - }, - }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2915, - EndPos: 2932, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2915, - EndPos: 2918, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2915, - EndPos: 2918, - }, - }, - Value: []byte("one"), - }, - }, - Modifier: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2922, - EndPos: 2928, - }, - }, - Value: []byte("public"), - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 143, - EndLine: 143, - StartPos: 2929, - EndPos: 2932, - }, - }, - Value: []byte("two"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtClass{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2938, - EndPos: 3015, - }, - }, - ClassName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2944, - EndPos: 2947, - }, - }, - Value: []byte("Foo"), - }, - Stmts: []ast.Vertex{ - &ast.StmtTraitUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2950, - EndPos: 3013, - }, - }, - Traits: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2954, - EndPos: 2957, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2954, - EndPos: 2957, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2959, - EndPos: 2962, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2959, - EndPos: 2962, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - TraitAdaptationList: &ast.StmtTraitAdaptationList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2963, - EndPos: 3013, - }, - }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUsePrecedence{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2965, - EndPos: 2993, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2965, - EndPos: 2973, - }, - }, - Trait: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2965, - EndPos: 2968, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2965, - EndPos: 2968, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2970, - EndPos: 2973, - }, - }, - Value: []byte("one"), - }, - }, - Insteadof: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2984, - EndPos: 2987, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2984, - EndPos: 2987, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2989, - EndPos: 2993, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2989, - EndPos: 2993, - }, - }, - Value: []byte("Quux"), - }, - }, - }, - }, - }, - &ast.StmtTraitUseAlias{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2995, - EndPos: 3010, - }, - }, - Ref: &ast.StmtTraitMethodRef{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2995, - EndPos: 3003, - }, - }, - Trait: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2995, - EndPos: 2998, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 2995, - EndPos: 2998, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3000, - EndPos: 3003, - }, - }, - Value: []byte("one"), - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 144, - EndLine: 144, - StartPos: 3007, - EndPos: 3010, - }, - }, - Value: []byte("two"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 146, - EndLine: -1, - StartPos: 3017, - EndPos: -1, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{}, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3024, - EndPos: 3054, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3031, - EndPos: 3054, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3038, - EndPos: 3047, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3038, - EndPos: 3047, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3048, - EndPos: 3050, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 147, - EndLine: 147, - StartPos: 3048, - EndPos: 3050, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3055, - EndPos: 3116, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3062, - EndPos: 3085, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3069, - EndPos: 3078, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3069, - EndPos: 3078, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3079, - EndPos: 3081, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3079, - EndPos: 3081, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3086, - EndPos: 3116, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3093, - EndPos: 3109, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3093, - EndPos: 3109, - }, - }, - Value: []byte("RuntimeException"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3110, - EndPos: 3112, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 148, - EndLine: 148, - StartPos: 3110, - EndPos: 3112, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3117, - EndPos: 3221, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3124, - EndPos: 3147, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3131, - EndPos: 3140, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3131, - EndPos: 3140, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3141, - EndPos: 3143, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3141, - EndPos: 3143, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3148, - EndPos: 3179, - }, - }, - Types: []ast.Vertex{ - &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3155, - EndPos: 3172, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3156, - EndPos: 3172, - }, - }, - Value: []byte("RuntimeException"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3173, - EndPos: 3175, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3173, - EndPos: 3175, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3180, - EndPos: 3221, - }, - }, - Types: []ast.Vertex{ - &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3187, - EndPos: 3214, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3197, - EndPos: 3214, - }, - }, - Value: []byte("AdditionException"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3215, - EndPos: 3217, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 149, - EndLine: 149, - StartPos: 3215, - EndPos: 3217, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - }, - &ast.StmtTry{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3222, - EndPos: 3263, - }, - }, - Stmts: []ast.Vertex{}, - Catches: []ast.Vertex{ - &ast.StmtCatch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3229, - EndPos: 3252, - }, - }, - Types: []ast.Vertex{ - &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3236, - EndPos: 3245, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3236, - EndPos: 3245, - }, - }, - Value: []byte("Exception"), - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3246, - EndPos: 3248, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3246, - EndPos: 3248, - }, - }, - Value: []byte("$e"), - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - Finally: &ast.StmtFinally{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 150, - EndLine: 150, - StartPos: 3253, - EndPos: 3263, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtUnset{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3265, - EndPos: 3279, - }, - }, - Vars: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3271, - EndPos: 3273, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3271, - EndPos: 3273, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3275, - EndPos: 3277, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 152, - EndLine: 152, - StartPos: 3275, - EndPos: 3277, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3281, - EndPos: 3289, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 154, - EndLine: 154, - StartPos: 3285, - EndPos: 3288, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3290, - EndPos: 3299, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3294, - EndPos: 3298, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3295, - EndPos: 3298, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 155, - EndLine: 155, - StartPos: 3295, - EndPos: 3298, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3300, - EndPos: 3316, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3304, - EndPos: 3315, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3305, - EndPos: 3308, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3305, - EndPos: 3308, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 156, - EndLine: 156, - StartPos: 3312, - EndPos: 3315, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3317, - EndPos: 3330, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3324, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3324, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3321, - EndPos: 3324, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3329, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3329, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 157, - EndLine: 157, - StartPos: 3326, - EndPos: 3329, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3331, - EndPos: 3351, - }, - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3338, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3338, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3335, - EndPos: 3338, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3340, - EndPos: 3350, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3340, - EndPos: 3343, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3340, - EndPos: 3343, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 158, - EndLine: 158, - StartPos: 3347, - EndPos: 3350, - }, - }, - Value: []byte("Baz"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3352, - EndPos: 3375, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3356, - EndPos: 3364, - }, - }, - Value: []byte("function"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3365, - EndPos: 3368, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3365, - EndPos: 3368, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3365, - EndPos: 3368, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3370, - EndPos: 3374, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3371, - EndPos: 3374, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 159, - EndLine: 159, - StartPos: 3371, - EndPos: 3374, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3376, - EndPos: 3413, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3380, - EndPos: 3388, - }, - }, - Value: []byte("function"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3389, - EndPos: 3399, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3389, - EndPos: 3392, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3389, - EndPos: 3392, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3396, - EndPos: 3399, - }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3401, - EndPos: 3412, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3402, - EndPos: 3405, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3402, - EndPos: 3405, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 160, - EndLine: 160, - StartPos: 3409, - EndPos: 3412, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3414, - EndPos: 3434, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3418, - EndPos: 3423, - }, - }, - Value: []byte("const"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3424, - EndPos: 3427, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3424, - EndPos: 3427, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3424, - EndPos: 3427, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3429, - EndPos: 3433, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3430, - EndPos: 3433, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 161, - EndLine: 161, - StartPos: 3430, - EndPos: 3433, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - }, - }, - }, - &ast.StmtUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3435, - EndPos: 3469, - }, - }, - Type: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3439, - EndPos: 3444, - }, - }, - Value: []byte("const"), - }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3445, - EndPos: 3455, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3445, - EndPos: 3448, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3445, - EndPos: 3448, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3452, - EndPos: 3455, - }, - }, - Value: []byte("foo"), - }, - }, - &ast.StmtUseDeclaration{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3457, - EndPos: 3468, - }, - }, - Use: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3458, - EndPos: 3461, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3458, - EndPos: 3461, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - Alias: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 162, - EndLine: 162, - StartPos: 3465, - EndPos: 3468, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3471, - EndPos: 3477, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3471, - EndPos: 3476, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3471, - EndPos: 3473, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3471, - EndPos: 3473, - }, - }, - Value: []byte("$a"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 164, - EndLine: 164, - StartPos: 3474, - EndPos: 3475, - }, - }, - Value: []byte("1"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3478, - EndPos: 3487, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3478, - EndPos: 3486, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3478, - EndPos: 3483, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3478, - EndPos: 3480, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3478, - EndPos: 3480, - }, - }, - Value: []byte("$a"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3481, - EndPos: 3482, - }, - }, - Value: []byte("1"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 165, - EndLine: 165, - StartPos: 3484, - EndPos: 3485, - }, - }, - Value: []byte("2"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3488, - EndPos: 3496, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 166, - EndLine: 166, - StartPos: 3488, - EndPos: 3495, - }, - }, - Items: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3497, - EndPos: 3506, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3497, - EndPos: 3505, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3503, - EndPos: 3504, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 167, - EndLine: 167, - StartPos: 3503, - EndPos: 3504, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3507, - EndPos: 3525, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3507, - EndPos: 3524, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3513, - EndPos: 3517, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3513, - EndPos: 3514, - }, - }, - Value: []byte("1"), - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3516, - EndPos: 3517, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3519, - EndPos: 3522, - }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3519, - EndPos: 3522, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3520, - EndPos: 3522, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 168, - EndLine: 168, - StartPos: 3520, - EndPos: 3522, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.ExprArrayItem{}, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3541, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3526, - EndPos: 3540, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3532, - EndPos: 3539, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3532, - EndPos: 3533, - }, - }, - Value: []byte("3"), - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3536, - EndPos: 3539, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3537, - EndPos: 3539, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 169, - EndLine: 169, - StartPos: 3537, - EndPos: 3539, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3542, - EndPos: 3571, - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3542, - EndPos: 3570, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3548, - EndPos: 3551, - }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3548, - EndPos: 3551, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3549, - EndPos: 3551, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3549, - EndPos: 3551, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3553, - EndPos: 3557, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3553, - EndPos: 3554, - }, - }, - Value: []byte("1"), - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3556, - EndPos: 3557, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3559, - EndPos: 3560, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3559, - EndPos: 3560, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3562, - EndPos: 3569, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3562, - EndPos: 3563, - }, - }, - Value: []byte("3"), - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3566, - EndPos: 3569, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3567, - EndPos: 3569, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 170, - EndLine: 170, - StartPos: 3567, - EndPos: 3569, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3572, - EndPos: 3576, - }, - }, - Expr: &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3572, - EndPos: 3575, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3573, - EndPos: 3575, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 171, - EndLine: 171, - StartPos: 3573, - EndPos: 3575, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3577, - EndPos: 3581, - }, - }, - Expr: &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3577, - EndPos: 3580, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3578, - EndPos: 3580, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 172, - EndLine: 172, - StartPos: 3578, - EndPos: 3580, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3583, - EndPos: 3592, - }, - }, - Expr: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3583, - EndPos: 3591, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3583, - EndPos: 3586, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3583, - EndPos: 3586, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 174, - EndLine: 174, - StartPos: 3588, - EndPos: 3591, - }, - }, - Value: []byte("Bar"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3593, - EndPos: 3603, - }, - }, - Expr: &ast.ExprClone{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3593, - EndPos: 3602, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3599, - EndPos: 3601, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 175, - EndLine: 175, - StartPos: 3599, - EndPos: 3601, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3604, - EndPos: 3613, - }, - }, - Expr: &ast.ExprClone{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3604, - EndPos: 3612, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3610, - EndPos: 3612, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 176, - EndLine: 176, - StartPos: 3610, - EndPos: 3612, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3614, - EndPos: 3627, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 177, - EndLine: 177, - StartPos: 3614, - EndPos: 3626, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3628, - EndPos: 3662, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3628, - EndPos: 3661, - }, - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3637, - EndPos: 3639, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3637, - EndPos: 3639, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3637, - EndPos: 3639, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3641, - EndPos: 3643, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3641, - EndPos: 3643, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3641, - EndPos: 3643, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - ClosureUse: &ast.ExprClosureUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3645, - EndPos: 3658, - }, - }, - Uses: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3650, - EndPos: 3652, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3650, - EndPos: 3652, - }, - }, - Value: []byte("$c"), - }, - }, - &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3654, - EndPos: 3657, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3655, - EndPos: 3657, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 178, - EndLine: 178, - StartPos: 3655, - EndPos: 3657, - }, - }, - Value: []byte("$d"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3663, - EndPos: 3697, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3663, - EndPos: 3696, - }, - }, - Params: []ast.Vertex{ - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3672, - EndPos: 3674, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3672, - EndPos: 3674, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3672, - EndPos: 3674, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.Parameter{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3676, - EndPos: 3678, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3676, - EndPos: 3678, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3676, - EndPos: 3678, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - ClosureUse: &ast.ExprClosureUse{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3680, - EndPos: 3693, - }, - }, - Uses: []ast.Vertex{ - &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3685, - EndPos: 3688, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3686, - EndPos: 3688, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3686, - EndPos: 3688, - }, - }, - Value: []byte("$c"), - }, - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3690, - EndPos: 3692, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 179, - EndLine: 179, - StartPos: 3690, - EndPos: 3692, - }, - }, - Value: []byte("$d"), - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3698, - EndPos: 3712, - }, - }, - Expr: &ast.ExprClosure{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 180, - EndLine: 180, - StartPos: 3698, - EndPos: 3711, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3713, - EndPos: 3717, - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3713, - EndPos: 3716, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3713, - EndPos: 3716, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 181, - EndLine: 181, - StartPos: 3713, - EndPos: 3716, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3718, - EndPos: 3732, - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3718, - EndPos: 3731, - }, - }, - Const: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3718, - EndPos: 3731, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 182, - EndLine: 182, - StartPos: 3728, - EndPos: 3731, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3733, - EndPos: 3738, - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3733, - EndPos: 3737, - }, - }, - Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3733, - EndPos: 3737, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 183, - EndLine: 183, - StartPos: 3734, - EndPos: 3737, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3740, - EndPos: 3750, - }, - }, - Expr: &ast.ExprEmpty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3740, - EndPos: 3749, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3746, - EndPos: 3748, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 185, - EndLine: 185, - StartPos: 3746, - EndPos: 3748, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3751, - EndPos: 3762, - }, - }, - Expr: &ast.ExprEmpty{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3751, - EndPos: 3761, - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3757, - EndPos: 3760, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3757, - EndPos: 3760, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 186, - EndLine: 186, - StartPos: 3757, - EndPos: 3760, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3763, - EndPos: 3767, - }, - }, - Expr: &ast.ExprErrorSuppress{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3763, - EndPos: 3766, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3764, - EndPos: 3766, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 187, - EndLine: 187, - StartPos: 3764, - EndPos: 3766, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3768, - EndPos: 3777, - }, - }, - Expr: &ast.ExprEval{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3768, - EndPos: 3776, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3773, - EndPos: 3775, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 188, - EndLine: 188, - StartPos: 3773, - EndPos: 3775, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 3778, - EndPos: 3783, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 189, - EndLine: 189, - StartPos: 3778, - EndPos: 3782, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3784, - EndPos: 3793, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3784, - EndPos: 3792, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3789, - EndPos: 3791, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 190, - EndLine: 190, - StartPos: 3789, - EndPos: 3791, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 3794, - EndPos: 3800, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 191, - EndLine: 191, - StartPos: 3794, - EndPos: 3799, - }, - }, - Die: true, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3801, - EndPos: 3809, - }, - }, - Expr: &ast.ExprExit{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3801, - EndPos: 3808, - }, - }, - Die: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3805, - EndPos: 3807, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 192, - EndLine: 192, - StartPos: 3805, - EndPos: 3807, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3810, - EndPos: 3816, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3810, - EndPos: 3815, - }, - }, - Function: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3810, - EndPos: 3813, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3810, - EndPos: 3813, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 193, - EndLine: 193, - StartPos: 3813, - EndPos: 3815, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3817, - EndPos: 3836, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3817, - EndPos: 3835, - }, - }, - Function: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3817, - EndPos: 3830, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3827, - EndPos: 3830, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3830, - EndPos: 3835, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3832, - EndPos: 3834, - }, - }, - IsReference: true, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3832, - EndPos: 3834, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 194, - EndLine: 194, - StartPos: 3832, - EndPos: 3834, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 3837, - EndPos: 3846, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 3837, - EndPos: 3845, - }, - }, - Function: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 3837, - EndPos: 3841, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 3838, - EndPos: 3841, - }, - }, - Value: []byte("foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 3841, - EndPos: 3845, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 3842, - EndPos: 3844, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 195, - EndLine: 195, - StartPos: 3842, - EndPos: 3844, - }, - }, - Items: []ast.Vertex{}, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3847, - EndPos: 3862, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3847, - EndPos: 3861, - }, - }, - Function: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3847, - EndPos: 3851, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3847, - EndPos: 3851, - }, - }, - Value: []byte("$foo"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3851, - EndPos: 3861, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3852, - EndPos: 3860, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3852, - EndPos: 3860, - }, - }, - Value: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3858, - EndPos: 3860, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 196, - EndLine: 196, - StartPos: 3858, - EndPos: 3860, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3864, - EndPos: 3869, - }, - }, - Expr: &ast.ExprPostDec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3864, - EndPos: 3868, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3864, - EndPos: 3866, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 198, - EndLine: 198, - StartPos: 3864, - EndPos: 3866, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 3870, - EndPos: 3875, - }, - }, - Expr: &ast.ExprPostInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 3870, - EndPos: 3874, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 3870, - EndPos: 3872, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 199, - EndLine: 199, - StartPos: 3870, - EndPos: 3872, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3876, - EndPos: 3881, - }, - }, - Expr: &ast.ExprPreDec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3876, - EndPos: 3880, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3878, - EndPos: 3880, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 200, - EndLine: 200, - StartPos: 3878, - EndPos: 3880, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 3882, - EndPos: 3887, - }, - }, - Expr: &ast.ExprPreInc{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 3882, - EndPos: 3886, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 3884, - EndPos: 3886, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 201, - EndLine: 201, - StartPos: 3884, - EndPos: 3886, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3889, - EndPos: 3900, - }, - }, - Expr: &ast.ExprInclude{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3889, - EndPos: 3899, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3897, - EndPos: 3899, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 203, - EndLine: 203, - StartPos: 3897, - EndPos: 3899, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3901, - EndPos: 3917, - }, - }, - Expr: &ast.ExprIncludeOnce{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3901, - EndPos: 3916, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3914, - EndPos: 3916, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 204, - EndLine: 204, - StartPos: 3914, - EndPos: 3916, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3918, - EndPos: 3929, - }, - }, - Expr: &ast.ExprRequire{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3918, - EndPos: 3928, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3926, - EndPos: 3928, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 205, - EndLine: 205, - StartPos: 3926, - EndPos: 3928, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3930, - EndPos: 3946, - }, - }, - Expr: &ast.ExprRequireOnce{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3930, - EndPos: 3945, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3943, - EndPos: 3945, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 206, - EndLine: 206, - StartPos: 3943, - EndPos: 3945, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3948, - EndPos: 3966, - }, - }, - Expr: &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3948, - EndPos: 3965, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3948, - EndPos: 3950, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3948, - EndPos: 3950, - }, - }, - Value: []byte("$a"), - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3962, - EndPos: 3965, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 208, - EndLine: 208, - StartPos: 3962, - EndPos: 3965, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 3967, - EndPos: 3995, - }, - }, - Expr: &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 3967, - EndPos: 3994, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 3967, - EndPos: 3969, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 3967, - EndPos: 3969, - }, - }, - Value: []byte("$a"), - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 3981, - EndPos: 3994, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 209, - EndLine: 209, - StartPos: 3991, - EndPos: 3994, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 3996, - EndPos: 4015, - }, - }, - Expr: &ast.ExprInstanceOf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 3996, - EndPos: 4014, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 3996, - EndPos: 3998, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 3996, - EndPos: 3998, - }, - }, - Value: []byte("$a"), - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4010, - EndPos: 4014, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 210, - EndLine: 210, - StartPos: 4011, - EndPos: 4014, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4017, - EndPos: 4031, - }, - }, - Expr: &ast.ExprIsset{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4017, - EndPos: 4030, - }, - }, - Vars: []ast.Vertex{ - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4023, - EndPos: 4025, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4023, - EndPos: 4025, - }, - }, - Value: []byte("$a"), - }, - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4027, - EndPos: 4029, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 212, - EndLine: 212, - StartPos: 4027, - EndPos: 4029, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4032, - EndPos: 4043, - }, - }, - Expr: &ast.ExprIsset{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4032, - EndPos: 4042, - }, - }, - Vars: []ast.Vertex{ - &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4038, - EndPos: 4041, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4038, - EndPos: 4041, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 213, - EndLine: 213, - StartPos: 4038, - EndPos: 4041, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4044, - EndPos: 4056, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4044, - EndPos: 4055, - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4044, - EndPos: 4050, - }, - }, - Items: []ast.Vertex{}, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4053, - EndPos: 4055, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 214, - EndLine: 214, - StartPos: 4053, - EndPos: 4055, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4057, - EndPos: 4075, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4057, - EndPos: 4074, - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4057, - EndPos: 4069, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4062, - EndPos: 4064, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4062, - EndPos: 4064, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4062, - EndPos: 4064, - }, - }, - Value: []byte("$a"), - }, - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4066, - EndPos: 4068, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4066, - EndPos: 4068, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4066, - EndPos: 4068, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4072, - EndPos: 4074, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 215, - EndLine: 215, - StartPos: 4072, - EndPos: 4074, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4076, - EndPos: 4092, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4076, - EndPos: 4091, - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4076, - EndPos: 4086, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4081, - EndPos: 4085, - }, - }, - Val: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4081, - EndPos: 4085, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4081, - EndPos: 4083, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4081, - EndPos: 4083, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4089, - EndPos: 4091, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 216, - EndLine: 216, - StartPos: 4089, - EndPos: 4091, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4093, - EndPos: 4113, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4093, - EndPos: 4112, - }, - }, - Var: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4093, - EndPos: 4107, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4098, - EndPos: 4106, - }, - }, - Val: &ast.ExprList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4098, - EndPos: 4106, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4103, - EndPos: 4105, - }, - }, - Val: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4103, - EndPos: 4105, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4103, - EndPos: 4105, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - }, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4110, - EndPos: 4112, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 217, - EndLine: 217, - StartPos: 4110, - EndPos: 4112, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4115, - EndPos: 4125, - }, - }, - Expr: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4115, - EndPos: 4124, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4115, - EndPos: 4117, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4115, - EndPos: 4117, - }, - }, - Value: []byte("$a"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4119, - EndPos: 4122, - }, - }, - Value: []byte("foo"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 219, - EndLine: 219, - StartPos: 4122, - EndPos: 4124, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4126, - EndPos: 4134, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4126, - EndPos: 4133, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4130, - EndPos: 4133, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 220, - EndLine: 220, - StartPos: 4130, - EndPos: 4133, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4135, - EndPos: 4155, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4135, - EndPos: 4154, - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4139, - EndPos: 4152, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4149, - EndPos: 4152, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 221, - EndLine: 221, - StartPos: 4152, - EndPos: 4154, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4156, - EndPos: 4167, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4156, - EndPos: 4166, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4160, - EndPos: 4164, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4161, - EndPos: 4164, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 222, - EndLine: 222, - StartPos: 4164, - EndPos: 4166, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4168, - EndPos: 4178, - }, - }, - Expr: &ast.ExprPrint{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4168, - EndPos: 4177, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4174, - EndPos: 4176, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 223, - EndLine: 223, - StartPos: 4174, - EndPos: 4176, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4179, - EndPos: 4187, - }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4179, - EndPos: 4186, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4179, - EndPos: 4181, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4179, - EndPos: 4181, - }, - }, - Value: []byte("$a"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 224, - EndLine: 224, - StartPos: 4183, - EndPos: 4186, - }, - }, - Value: []byte("foo"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4188, - EndPos: 4199, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4188, - EndPos: 4197, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4188, - EndPos: 4195, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4188, - EndPos: 4190, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4188, - EndPos: 4190, - }, - }, - Value: []byte("$a"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4192, - EndPos: 4195, - }, - }, - Value: []byte("foo"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 225, - EndLine: 225, - StartPos: 4196, - EndPos: 4197, - }, - }, - Value: []byte("1"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4229, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4227, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4225, - }, - }, - Var: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4219, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4212, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4207, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4202, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4200, - EndPos: 4202, - }, - }, - Value: []byte("$a"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4204, - EndPos: 4207, - }, - }, - Value: []byte("foo"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4209, - EndPos: 4212, - }, - }, - Value: []byte("bar"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4214, - EndPos: 4217, - }, - }, - Value: []byte("baz"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4217, - EndPos: 4219, - }, - }, - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4221, - EndPos: 4225, - }, - }, - Value: []byte("quux"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 226, - EndLine: 226, - StartPos: 4226, - EndPos: 4227, - }, - }, - Value: []byte("0"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4230, - EndPos: 4246, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4230, - EndPos: 4244, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4230, - EndPos: 4241, - }, - }, - Var: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4230, - EndPos: 4239, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4230, - EndPos: 4232, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4230, - EndPos: 4232, - }, - }, - Value: []byte("$a"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4234, - EndPos: 4237, - }, - }, - Value: []byte("foo"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4237, - EndPos: 4239, - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4240, - EndPos: 4241, - }, - }, - Value: []byte("1"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 227, - EndLine: 227, - StartPos: 4243, - EndPos: 4244, - }, - }, - Value: []byte("1"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4247, - EndPos: 4256, - }, - }, - Expr: &ast.ExprShellExec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4247, - EndPos: 4255, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4248, - EndPos: 4252, - }, - }, - Value: []byte("cmd "), - }, - &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4252, - EndPos: 4254, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 228, - EndLine: 228, - StartPos: 4252, - EndPos: 4254, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4257, - EndPos: 4263, - }, - }, - Expr: &ast.ExprShellExec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4257, - EndPos: 4262, - }, - }, - Parts: []ast.Vertex{ - &ast.ScalarEncapsedStringPart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 229, - EndLine: 229, - StartPos: 4258, - EndPos: 4261, - }, - }, - Value: []byte("cmd"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4264, - EndPos: 4267, - }, - }, - Expr: &ast.ExprShellExec{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 230, - EndLine: 230, - StartPos: 4264, - EndPos: 4266, - }, - }, - Parts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4268, - EndPos: 4271, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 231, - EndLine: 231, - StartPos: 4268, - EndPos: 4270, - }, - }, - Items: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4272, - EndPos: 4276, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4272, - EndPos: 4275, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4273, - EndPos: 4274, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 232, - EndLine: 232, - StartPos: 4273, - EndPos: 4274, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4277, - EndPos: 4290, - }, - }, - Expr: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4277, - EndPos: 4289, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4278, - EndPos: 4282, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4278, - EndPos: 4279, - }, - }, - Value: []byte("1"), - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4281, - EndPos: 4282, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4284, - EndPos: 4287, - }, - }, - Val: &ast.ExprReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4284, - EndPos: 4287, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4285, - EndPos: 4287, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 233, - EndLine: 233, - StartPos: 4285, - EndPos: 4287, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.ExprArrayItem{}, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4292, - EndPos: 4303, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4292, - EndPos: 4302, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4292, - EndPos: 4295, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4292, - EndPos: 4295, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4297, - EndPos: 4300, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 235, - EndLine: 235, - StartPos: 4300, - EndPos: 4302, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4304, - EndPos: 4325, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4304, - EndPos: 4324, - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4304, - EndPos: 4317, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4314, - EndPos: 4317, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4319, - EndPos: 4322, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 236, - EndLine: 236, - StartPos: 4322, - EndPos: 4324, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4326, - EndPos: 4338, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4326, - EndPos: 4337, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4326, - EndPos: 4330, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4327, - EndPos: 4330, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4332, - EndPos: 4335, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 237, - EndLine: 237, - StartPos: 4335, - EndPos: 4337, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4339, - EndPos: 4351, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4339, - EndPos: 4350, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4339, - EndPos: 4342, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4339, - EndPos: 4342, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Call: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4344, - EndPos: 4348, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4344, - EndPos: 4348, - }, - }, - Value: []byte("$bar"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 238, - EndLine: 238, - StartPos: 4348, - EndPos: 4350, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4352, - EndPos: 4365, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4352, - EndPos: 4364, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4352, - EndPos: 4356, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4352, - EndPos: 4356, - }, - }, - Value: []byte("$foo"), - }, - }, - Call: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4358, - EndPos: 4362, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4358, - EndPos: 4362, - }, - }, - Value: []byte("$bar"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 239, - EndLine: 239, - StartPos: 4362, - EndPos: 4364, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4366, - EndPos: 4376, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4366, - EndPos: 4375, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4366, - EndPos: 4369, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4366, - EndPos: 4369, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4371, - EndPos: 4375, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 240, - EndLine: 240, - StartPos: 4371, - EndPos: 4375, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4377, - EndPos: 4397, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4377, - EndPos: 4396, - }, - }, - Class: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4377, - EndPos: 4390, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4387, - EndPos: 4390, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4392, - EndPos: 4396, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 241, - EndLine: 241, - StartPos: 4392, - EndPos: 4396, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4398, - EndPos: 4409, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4398, - EndPos: 4408, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4398, - EndPos: 4402, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4399, - EndPos: 4402, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4404, - EndPos: 4408, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 242, - EndLine: 242, - StartPos: 4404, - EndPos: 4408, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4410, - EndPos: 4423, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4410, - EndPos: 4422, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4410, - EndPos: 4412, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4410, - EndPos: 4412, - }, - }, - Value: []byte("$a"), - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4415, - EndPos: 4417, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4415, - EndPos: 4417, - }, - }, - Value: []byte("$b"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4420, - EndPos: 4422, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 243, - EndLine: 243, - StartPos: 4420, - EndPos: 4422, - }, - }, - Value: []byte("$c"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4424, - EndPos: 4434, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4424, - EndPos: 4433, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4424, - EndPos: 4426, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4424, - EndPos: 4426, - }, - }, - Value: []byte("$a"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4431, - EndPos: 4433, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 244, - EndLine: 244, - StartPos: 4431, - EndPos: 4433, - }, - }, - Value: []byte("$c"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4435, - EndPos: 4458, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4435, - EndPos: 4457, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4435, - EndPos: 4437, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4435, - EndPos: 4437, - }, - }, - Value: []byte("$a"), - }, - }, - IfTrue: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4440, - EndPos: 4452, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4440, - EndPos: 4442, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4440, - EndPos: 4442, - }, - }, - Value: []byte("$b"), - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4445, - EndPos: 4447, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4445, - EndPos: 4447, - }, - }, - Value: []byte("$c"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4450, - EndPos: 4452, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4450, - EndPos: 4452, - }, - }, - Value: []byte("$d"), - }, - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4455, - EndPos: 4457, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 245, - EndLine: 245, - StartPos: 4455, - EndPos: 4457, - }, - }, - Value: []byte("$e"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4459, - EndPos: 4482, - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4459, - EndPos: 4481, - }, - }, - Condition: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4459, - EndPos: 4471, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4459, - EndPos: 4461, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4459, - EndPos: 4461, - }, - }, - Value: []byte("$a"), - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4464, - EndPos: 4466, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4464, - EndPos: 4466, - }, - }, - Value: []byte("$b"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4469, - EndPos: 4471, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4469, - EndPos: 4471, - }, - }, - Value: []byte("$c"), - }, - }, - }, - IfTrue: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4474, - EndPos: 4476, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4474, - EndPos: 4476, - }, - }, - Value: []byte("$d"), - }, - }, - IfFalse: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4479, - EndPos: 4481, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 246, - EndLine: 246, - StartPos: 4479, - EndPos: 4481, - }, - }, - Value: []byte("$e"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4483, - EndPos: 4487, - }, - }, - Expr: &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4483, - EndPos: 4486, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4484, - EndPos: 4486, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 247, - EndLine: 247, - StartPos: 4484, - EndPos: 4486, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4488, - EndPos: 4492, - }, - }, - Expr: &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4488, - EndPos: 4491, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4489, - EndPos: 4491, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 248, - EndLine: 248, - StartPos: 4489, - EndPos: 4491, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4493, - EndPos: 4497, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4493, - EndPos: 4496, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4494, - EndPos: 4496, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 249, - EndLine: 249, - StartPos: 4494, - EndPos: 4496, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4498, - EndPos: 4503, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4498, - EndPos: 4502, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4499, - EndPos: 4502, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4500, - EndPos: 4502, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 250, - EndLine: 250, - StartPos: 4500, - EndPos: 4502, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4504, - EndPos: 4510, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 251, - EndLine: 251, - StartPos: 4504, - EndPos: 4509, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4511, - EndPos: 4520, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4511, - EndPos: 4519, - }, - }, - Value: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4517, - EndPos: 4519, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 252, - EndLine: 252, - StartPos: 4517, - EndPos: 4519, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4521, - EndPos: 4536, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4521, - EndPos: 4535, - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4527, - EndPos: 4529, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4527, - EndPos: 4529, - }, - }, - Value: []byte("$a"), - }, - }, - Value: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4533, - EndPos: 4535, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 253, - EndLine: 253, - StartPos: 4533, - EndPos: 4535, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4537, - EndPos: 4554, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4537, - EndPos: 4553, - }, - }, - Value: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4543, - EndPos: 4553, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4543, - EndPos: 4546, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4543, - EndPos: 4546, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 254, - EndLine: 254, - StartPos: 4548, - EndPos: 4553, - }, - }, - Value: []byte("class"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4555, - EndPos: 4578, - }, - }, - Expr: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4555, - EndPos: 4577, - }, - }, - Key: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4561, - EndPos: 4563, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4561, - EndPos: 4563, - }, - }, - Value: []byte("$a"), - }, - }, - Value: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4567, - EndPos: 4577, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4567, - EndPos: 4570, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4567, - EndPos: 4570, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 255, - EndLine: 255, - StartPos: 4572, - EndPos: 4577, - }, - }, - Value: []byte("class"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4580, - EndPos: 4590, - }, - }, - Expr: &ast.ExprCastArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4580, - EndPos: 4589, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4587, - EndPos: 4589, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 257, - EndLine: 257, - StartPos: 4587, - EndPos: 4589, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 4591, - EndPos: 4603, - }, - }, - Expr: &ast.ExprCastBool{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 4591, - EndPos: 4602, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 4600, - EndPos: 4602, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 258, - EndLine: 258, - StartPos: 4600, - EndPos: 4602, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4604, - EndPos: 4613, - }, - }, - Expr: &ast.ExprCastBool{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4604, - EndPos: 4612, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4610, - EndPos: 4612, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 259, - EndLine: 259, - StartPos: 4610, - EndPos: 4612, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4614, - EndPos: 4625, - }, - }, - Expr: &ast.ExprCastDouble{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4614, - EndPos: 4624, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4622, - EndPos: 4624, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 260, - EndLine: 260, - StartPos: 4622, - EndPos: 4624, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4626, - EndPos: 4636, - }, - }, - Expr: &ast.ExprCastDouble{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4626, - EndPos: 4635, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4633, - EndPos: 4635, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 261, - EndLine: 261, - StartPos: 4633, - EndPos: 4635, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 4637, - EndPos: 4649, - }, - }, - Expr: &ast.ExprCastInt{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 4637, - EndPos: 4648, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 4646, - EndPos: 4648, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 262, - EndLine: 262, - StartPos: 4646, - EndPos: 4648, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4650, - EndPos: 4658, - }, - }, - Expr: &ast.ExprCastInt{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4650, - EndPos: 4657, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4655, - EndPos: 4657, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 263, - EndLine: 263, - StartPos: 4655, - EndPos: 4657, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4659, - EndPos: 4670, - }, - }, - Expr: &ast.ExprCastObject{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4659, - EndPos: 4669, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4667, - EndPos: 4669, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 264, - EndLine: 264, - StartPos: 4667, - EndPos: 4669, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4671, - EndPos: 4682, - }, - }, - Expr: &ast.ExprCastString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4671, - EndPos: 4681, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4679, - EndPos: 4681, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 265, - EndLine: 265, - StartPos: 4679, - EndPos: 4681, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4683, - EndPos: 4693, - }, - }, - Expr: &ast.ExprCastUnset{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4683, - EndPos: 4692, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4690, - EndPos: 4692, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 266, - EndLine: 266, - StartPos: 4690, - EndPos: 4692, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4695, - EndPos: 4703, - }, - }, - Expr: &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4695, - EndPos: 4702, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4695, - EndPos: 4697, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4695, - EndPos: 4697, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4700, - EndPos: 4702, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 268, - EndLine: 268, - StartPos: 4700, - EndPos: 4702, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4704, - EndPos: 4712, - }, - }, - Expr: &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4704, - EndPos: 4711, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4704, - EndPos: 4706, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4704, - EndPos: 4706, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4709, - EndPos: 4711, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 269, - EndLine: 269, - StartPos: 4709, - EndPos: 4711, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4713, - EndPos: 4721, - }, - }, - Expr: &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4713, - EndPos: 4720, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4713, - EndPos: 4715, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4713, - EndPos: 4715, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4718, - EndPos: 4720, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 270, - EndLine: 270, - StartPos: 4718, - EndPos: 4720, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4722, - EndPos: 4731, - }, - }, - Expr: &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4722, - EndPos: 4730, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4722, - EndPos: 4724, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4722, - EndPos: 4724, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4728, - EndPos: 4730, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 271, - EndLine: 271, - StartPos: 4728, - EndPos: 4730, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4732, - EndPos: 4741, - }, - }, - Expr: &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4732, - EndPos: 4740, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4732, - EndPos: 4734, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4732, - EndPos: 4734, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4738, - EndPos: 4740, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 272, - EndLine: 272, - StartPos: 4738, - EndPos: 4740, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 4742, - EndPos: 4750, - }, - }, - Expr: &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 4742, - EndPos: 4749, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 4742, - EndPos: 4744, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 4742, - EndPos: 4744, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 4747, - EndPos: 4749, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 273, - EndLine: 273, - StartPos: 4747, - EndPos: 4749, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4751, - EndPos: 4759, - }, - }, - Expr: &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4751, - EndPos: 4758, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4751, - EndPos: 4753, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4751, - EndPos: 4753, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4756, - EndPos: 4758, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 274, - EndLine: 274, - StartPos: 4756, - EndPos: 4758, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4760, - EndPos: 4769, - }, - }, - Expr: &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4760, - EndPos: 4768, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4760, - EndPos: 4762, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4760, - EndPos: 4762, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4766, - EndPos: 4768, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 275, - EndLine: 275, - StartPos: 4766, - EndPos: 4768, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4770, - EndPos: 4779, - }, - }, - Expr: &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4770, - EndPos: 4778, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4770, - EndPos: 4772, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4770, - EndPos: 4772, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4776, - EndPos: 4778, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 276, - EndLine: 276, - StartPos: 4776, - EndPos: 4778, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4780, - EndPos: 4788, - }, - }, - Expr: &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4780, - EndPos: 4787, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4780, - EndPos: 4782, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4780, - EndPos: 4782, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4785, - EndPos: 4787, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 277, - EndLine: 277, - StartPos: 4785, - EndPos: 4787, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4789, - EndPos: 4799, - }, - }, - Expr: &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4789, - EndPos: 4798, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4789, - EndPos: 4791, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4789, - EndPos: 4791, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4796, - EndPos: 4798, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 278, - EndLine: 278, - StartPos: 4796, - EndPos: 4798, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4800, - EndPos: 4810, - }, - }, - Expr: &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4800, - EndPos: 4809, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4800, - EndPos: 4802, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4800, - EndPos: 4802, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4807, - EndPos: 4809, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 279, - EndLine: 279, - StartPos: 4807, - EndPos: 4809, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4811, - EndPos: 4820, - }, - }, - Expr: &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4811, - EndPos: 4819, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4811, - EndPos: 4813, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4811, - EndPos: 4813, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4817, - EndPos: 4819, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 280, - EndLine: 280, - StartPos: 4817, - EndPos: 4819, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4821, - EndPos: 4831, - }, - }, - Expr: &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4821, - EndPos: 4830, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4821, - EndPos: 4823, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4821, - EndPos: 4823, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4828, - EndPos: 4830, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 281, - EndLine: 281, - StartPos: 4828, - EndPos: 4830, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4832, - EndPos: 4840, - }, - }, - Expr: &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4832, - EndPos: 4839, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4832, - EndPos: 4834, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4832, - EndPos: 4834, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4837, - EndPos: 4839, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 282, - EndLine: 282, - StartPos: 4837, - EndPos: 4839, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4841, - EndPos: 4849, - }, - }, - Expr: &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4841, - EndPos: 4848, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4841, - EndPos: 4843, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4841, - EndPos: 4843, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4846, - EndPos: 4848, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 283, - EndLine: 283, - StartPos: 4846, - EndPos: 4848, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4850, - EndPos: 4858, - }, - }, - Expr: &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4850, - EndPos: 4857, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4850, - EndPos: 4852, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4850, - EndPos: 4852, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4855, - EndPos: 4857, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 284, - EndLine: 284, - StartPos: 4855, - EndPos: 4857, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4859, - EndPos: 4868, - }, - }, - Expr: &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4859, - EndPos: 4867, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4859, - EndPos: 4861, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4859, - EndPos: 4861, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4865, - EndPos: 4867, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 285, - EndLine: 285, - StartPos: 4865, - EndPos: 4867, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4869, - EndPos: 4879, - }, - }, - Expr: &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4869, - EndPos: 4878, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4869, - EndPos: 4871, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4869, - EndPos: 4871, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4876, - EndPos: 4878, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 286, - EndLine: 286, - StartPos: 4876, - EndPos: 4878, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4880, - EndPos: 4888, - }, - }, - Expr: &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4880, - EndPos: 4887, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4880, - EndPos: 4882, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4880, - EndPos: 4882, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4885, - EndPos: 4887, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 287, - EndLine: 287, - StartPos: 4885, - EndPos: 4887, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4889, - EndPos: 4898, - }, - }, - Expr: &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4889, - EndPos: 4897, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4889, - EndPos: 4891, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4889, - EndPos: 4891, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4895, - EndPos: 4897, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 288, - EndLine: 288, - StartPos: 4895, - EndPos: 4897, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4899, - EndPos: 4908, - }, - }, - Expr: &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4899, - EndPos: 4907, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4899, - EndPos: 4901, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4899, - EndPos: 4901, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4905, - EndPos: 4907, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 289, - EndLine: 289, - StartPos: 4905, - EndPos: 4907, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4909, - EndPos: 4918, - }, - }, - Expr: &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4909, - EndPos: 4917, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4909, - EndPos: 4911, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4909, - EndPos: 4911, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4915, - EndPos: 4917, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 290, - EndLine: 290, - StartPos: 4915, - EndPos: 4917, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4919, - EndPos: 4928, - }, - }, - Expr: &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4919, - EndPos: 4927, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4919, - EndPos: 4921, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4919, - EndPos: 4921, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4925, - EndPos: 4927, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 291, - EndLine: 291, - StartPos: 4925, - EndPos: 4927, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4929, - EndPos: 4937, - }, - }, - Expr: &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4929, - EndPos: 4936, - }, - }, - Left: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4929, - EndPos: 4931, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4929, - EndPos: 4931, - }, - }, - Value: []byte("$a"), - }, - }, - Right: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4934, - EndPos: 4936, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 292, - EndLine: 292, - StartPos: 4934, - EndPos: 4936, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4939, - EndPos: 4948, - }, - }, - Expr: &ast.ExprAssignReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4939, - EndPos: 4947, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4939, - EndPos: 4941, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4939, - EndPos: 4941, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4945, - EndPos: 4947, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 294, - EndLine: 294, - StartPos: 4945, - EndPos: 4947, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4949, - EndPos: 4963, - }, - }, - Expr: &ast.ExprAssignReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4949, - EndPos: 4962, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4949, - EndPos: 4951, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4949, - EndPos: 4951, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4955, - EndPos: 4962, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4959, - EndPos: 4962, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 295, - EndLine: 295, - StartPos: 4959, - EndPos: 4962, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4964, - EndPos: 4982, - }, - }, - Expr: &ast.ExprAssignReference{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4964, - EndPos: 4981, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4964, - EndPos: 4966, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4964, - EndPos: 4966, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4970, - EndPos: 4981, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4974, - EndPos: 4977, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4974, - EndPos: 4977, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4977, - EndPos: 4981, - }, - }, - Arguments: []ast.Vertex{ - &ast.Argument{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4978, - EndPos: 4980, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4978, - EndPos: 4980, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 296, - EndLine: 296, - StartPos: 4978, - EndPos: 4980, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4991, - }, - }, - Expr: &ast.ExprAssign{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4990, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4985, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4983, - EndPos: 4985, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4988, - EndPos: 4990, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 297, - EndLine: 297, - StartPos: 4988, - EndPos: 4990, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4992, - EndPos: 5001, - }, - }, - Expr: &ast.ExprAssignBitwiseAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4992, - EndPos: 5000, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4992, - EndPos: 4994, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4992, - EndPos: 4994, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4998, - EndPos: 5000, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 298, - EndLine: 298, - StartPos: 4998, - EndPos: 5000, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5002, - EndPos: 5011, - }, - }, - Expr: &ast.ExprAssignBitwiseOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5002, - EndPos: 5010, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5002, - EndPos: 5004, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5002, - EndPos: 5004, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5008, - EndPos: 5010, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 299, - EndLine: 299, - StartPos: 5008, - EndPos: 5010, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5021, - }, - }, - Expr: &ast.ExprAssignBitwiseXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5020, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5014, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5012, - EndPos: 5014, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5018, - EndPos: 5020, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 300, - EndLine: 300, - StartPos: 5018, - EndPos: 5020, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5022, - EndPos: 5031, - }, - }, - Expr: &ast.ExprAssignConcat{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5022, - EndPos: 5030, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5022, - EndPos: 5024, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5022, - EndPos: 5024, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5028, - EndPos: 5030, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 301, - EndLine: 301, - StartPos: 5028, - EndPos: 5030, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5032, - EndPos: 5041, - }, - }, - Expr: &ast.ExprAssignDiv{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5032, - EndPos: 5040, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5032, - EndPos: 5034, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5032, - EndPos: 5034, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5038, - EndPos: 5040, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 302, - EndLine: 302, - StartPos: 5038, - EndPos: 5040, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5042, - EndPos: 5051, - }, - }, - Expr: &ast.ExprAssignMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5042, - EndPos: 5050, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5042, - EndPos: 5044, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5042, - EndPos: 5044, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5048, - EndPos: 5050, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 303, - EndLine: 303, - StartPos: 5048, - EndPos: 5050, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5052, - EndPos: 5061, - }, - }, - Expr: &ast.ExprAssignMod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5052, - EndPos: 5060, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5052, - EndPos: 5054, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5052, - EndPos: 5054, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5058, - EndPos: 5060, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 304, - EndLine: 304, - StartPos: 5058, - EndPos: 5060, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5062, - EndPos: 5071, - }, - }, - Expr: &ast.ExprAssignMul{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5062, - EndPos: 5070, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5062, - EndPos: 5064, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5062, - EndPos: 5064, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5068, - EndPos: 5070, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 305, - EndLine: 305, - StartPos: 5068, - EndPos: 5070, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5072, - EndPos: 5081, - }, - }, - Expr: &ast.ExprAssignPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5072, - EndPos: 5080, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5072, - EndPos: 5074, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5072, - EndPos: 5074, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5078, - EndPos: 5080, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 306, - EndLine: 306, - StartPos: 5078, - EndPos: 5080, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5082, - EndPos: 5092, - }, - }, - Expr: &ast.ExprAssignPow{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5082, - EndPos: 5091, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5082, - EndPos: 5084, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5082, - EndPos: 5084, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5089, - EndPos: 5091, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 307, - EndLine: 307, - StartPos: 5089, - EndPos: 5091, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5093, - EndPos: 5103, - }, - }, - Expr: &ast.ExprAssignShiftLeft{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5093, - EndPos: 5102, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5093, - EndPos: 5095, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5093, - EndPos: 5095, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5100, - EndPos: 5102, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 308, - EndLine: 308, - StartPos: 5100, - EndPos: 5102, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5104, - EndPos: 5114, - }, - }, - Expr: &ast.ExprAssignShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5104, - EndPos: 5113, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5104, - EndPos: 5106, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5104, - EndPos: 5106, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5111, - EndPos: 5113, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 309, - EndLine: 309, - StartPos: 5111, - EndPos: 5113, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5118, - EndPos: 5130, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5118, - EndPos: 5128, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5122, - EndPos: 5126, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5123, - EndPos: 5126, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 312, - EndLine: 312, - StartPos: 5126, - EndPos: 5128, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5152, - EndPos: 5156, - }, - }, - Expr: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5152, - EndPos: 5155, - }, - }, - Var: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5148, - EndPos: 5150, - }, - }, - Var: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5132, - EndPos: 5142, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5136, - EndPos: 5140, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5137, - EndPos: 5140, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5140, - EndPos: 5142, - }, - }, - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5145, - EndPos: 5148, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5148, - EndPos: 5150, - }, - }, - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 313, - EndLine: 313, - StartPos: 5152, - EndPos: 5155, - }, - }, - Value: []byte("baz"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5173, - EndPos: 5176, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5173, - EndPos: 5174, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5170, - EndPos: 5171, - }, - }, - Var: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5158, - EndPos: 5168, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5162, - EndPos: 5166, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5163, - EndPos: 5166, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5166, - EndPos: 5168, - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5170, - EndPos: 5171, - }, - }, - Value: []byte("0"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 314, - EndLine: 314, - StartPos: 5173, - EndPos: 5174, - }, - }, - Value: []byte("0"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5197, - EndPos: 5200, - }, - }, - Expr: &ast.ExprMethodCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5197, - EndPos: 5199, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5190, - EndPos: 5191, - }, - }, - Var: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5178, - EndPos: 5188, - }, - }, - Class: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5182, - EndPos: 5186, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5183, - EndPos: 5186, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5186, - EndPos: 5188, - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5190, - EndPos: 5191, - }, - }, - Value: []byte("0"), - }, - }, - Method: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5194, - EndPos: 5197, - }, - }, - Value: []byte("bar"), - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 315, - EndLine: 315, - StartPos: 5197, - EndPos: 5199, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5202, - EndPos: 5219, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5202, - EndPos: 5218, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5202, - EndPos: 5215, - }, - }, - Var: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5202, - EndPos: 5212, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5208, - EndPos: 5211, - }, - }, - Val: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5208, - EndPos: 5211, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5209, - EndPos: 5210, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5209, - EndPos: 5210, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5213, - EndPos: 5214, - }, - }, - Value: []byte("0"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 317, - EndLine: 317, - StartPos: 5216, - EndPos: 5217, - }, - }, - Value: []byte("0"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5220, - EndPos: 5229, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5220, - EndPos: 5228, - }, - }, - Var: &ast.ScalarString{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5220, - EndPos: 5225, - }, - }, - Value: []byte("\"foo\""), - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 318, - EndLine: 318, - StartPos: 5226, - EndPos: 5227, - }, - }, - Value: []byte("0"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5230, - EndPos: 5237, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5230, - EndPos: 5236, - }, - }, - Var: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5230, - EndPos: 5233, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5230, - EndPos: 5233, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5230, - EndPos: 5233, - }, - }, - Value: []byte("foo"), - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 319, - EndLine: 319, - StartPos: 5234, - EndPos: 5235, - }, - }, - Value: []byte("0"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5238, - EndPos: 5250, - }, - }, - Expr: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5238, - EndPos: 5249, - }, - }, - Class: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5238, - EndPos: 5244, - }, - }, - Value: []byte("static"), - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 320, - EndLine: 320, - StartPos: 5246, - EndPos: 5249, - }, - }, - Value: []byte("foo"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5252, - EndPos: 5261, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5252, - EndPos: 5260, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5256, - EndPos: 5260, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 322, - EndLine: 322, - StartPos: 5256, - EndPos: 5260, - }, - }, - Value: []byte("$foo"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5262, - EndPos: 5277, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5262, - EndPos: 5276, - }, - }, - Class: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5266, - EndPos: 5276, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5266, - EndPos: 5270, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5266, - EndPos: 5270, - }, - }, - Value: []byte("$foo"), - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5272, - EndPos: 5276, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 323, - EndLine: 323, - StartPos: 5272, - EndPos: 5276, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5278, - EndPos: 5291, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5278, - EndPos: 5289, - }, - }, - Class: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5288, - EndPos: 5289, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5286, - EndPos: 5289, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5282, - EndPos: 5287, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5282, - EndPos: 5284, - }, - }, - Value: []byte("$a"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5286, - EndPos: 5287, - }, - }, - Value: []byte("b"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 324, - EndLine: 324, - StartPos: 5288, - EndPos: 5289, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5292, - EndPos: 5324, - }, - }, - Expr: &ast.ExprNew{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5292, - EndPos: 5322, - }, - }, - Class: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5321, - EndPos: 5322, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5319, - EndPos: 5322, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5315, - EndPos: 5320, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5302, - EndPos: 5317, - }, - }, - Var: &ast.ExprPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5300, - EndPos: 5312, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5296, - EndPos: 5301, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5296, - EndPos: 5298, - }, - }, - Value: []byte("$a"), - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5300, - EndPos: 5301, - }, - }, - Value: []byte("b"), - }, - }, - Dim: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5302, - EndPos: 5312, - }, - }, - Condition: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5302, - EndPos: 5304, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5302, - EndPos: 5304, - }, - }, - Value: []byte("$b"), - }, - }, - IfFalse: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5308, - EndPos: 5312, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5308, - EndPos: 5312, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5308, - EndPos: 5312, - }, - }, - Value: []byte("null"), - }, - }, - }, - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5315, - EndPos: 5317, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5315, - EndPos: 5317, - }, - }, - Value: []byte("$c"), - }, - }, - }, - Property: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5319, - EndPos: 5320, - }, - }, - Value: []byte("d"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5321, - EndPos: 5322, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5324, - EndPos: 5343, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5331, - EndPos: 5342, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5331, - EndPos: 5333, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5331, - EndPos: 5333, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5336, - EndPos: 5342, - }, - }, - Var: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5336, - EndPos: 5339, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5337, - EndPos: 5338, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5337, - EndPos: 5338, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 325, - EndLine: 325, - StartPos: 5340, - EndPos: 5341, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5345, - EndPos: 5360, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5352, - EndPos: 5359, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5352, - EndPos: 5354, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5352, - EndPos: 5354, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBooleanNot{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5357, - EndPos: 5359, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 327, - EndLine: 327, - StartPos: 5358, - EndPos: 5359, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5361, - EndPos: 5376, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5368, - EndPos: 5375, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5368, - EndPos: 5370, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5368, - EndPos: 5370, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBitwiseNot{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5373, - EndPos: 5375, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 328, - EndLine: 328, - StartPos: 5374, - EndPos: 5375, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5377, - EndPos: 5392, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5384, - EndPos: 5391, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5384, - EndPos: 5386, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5384, - EndPos: 5386, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprUnaryPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5389, - EndPos: 5391, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 329, - EndLine: 329, - StartPos: 5390, - EndPos: 5391, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5393, - EndPos: 5408, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5400, - EndPos: 5407, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5400, - EndPos: 5402, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5400, - EndPos: 5402, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprUnaryMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5405, - EndPos: 5407, - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 330, - EndLine: 330, - StartPos: 5406, - EndPos: 5407, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5409, - EndPos: 5425, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5416, - EndPos: 5423, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5416, - EndPos: 5418, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5416, - EndPos: 5418, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 331, - EndLine: 331, - StartPos: 5422, - EndPos: 5423, - }, - }, - Value: []byte("1"), - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5426, - EndPos: 5445, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5433, - EndPos: 5444, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5433, - EndPos: 5435, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5433, - EndPos: 5435, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5438, - EndPos: 5444, - }, - }, - Condition: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5438, - EndPos: 5439, - }, - }, - Value: []byte("1"), - }, - IfFalse: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 332, - EndLine: 332, - StartPos: 5443, - EndPos: 5444, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5446, - EndPos: 5468, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5453, - EndPos: 5467, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5453, - EndPos: 5455, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5453, - EndPos: 5455, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprTernary{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5458, - EndPos: 5467, - }, - }, - Condition: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5458, - EndPos: 5459, - }, - }, - Value: []byte("1"), - }, - IfTrue: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5462, - EndPos: 5463, - }, - }, - Value: []byte("2"), - }, - IfFalse: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 333, - EndLine: 333, - StartPos: 5466, - EndPos: 5467, - }, - }, - Value: []byte("3"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5469, - EndPos: 5487, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5476, - EndPos: 5486, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5476, - EndPos: 5478, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5476, - EndPos: 5478, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryBitwiseAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5481, - EndPos: 5486, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5481, - EndPos: 5482, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 334, - EndLine: 334, - StartPos: 5485, - EndPos: 5486, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5488, - EndPos: 5506, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5495, - EndPos: 5505, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5495, - EndPos: 5497, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5495, - EndPos: 5497, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryBitwiseOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5500, - EndPos: 5505, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5500, - EndPos: 5501, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 335, - EndLine: 335, - StartPos: 5504, - EndPos: 5505, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5507, - EndPos: 5525, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5514, - EndPos: 5524, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5514, - EndPos: 5516, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5514, - EndPos: 5516, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryBitwiseXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5519, - EndPos: 5524, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5519, - EndPos: 5520, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 336, - EndLine: 336, - StartPos: 5523, - EndPos: 5524, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5526, - EndPos: 5545, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5533, - EndPos: 5544, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5533, - EndPos: 5535, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5533, - EndPos: 5535, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryBooleanAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5538, - EndPos: 5544, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5538, - EndPos: 5539, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 337, - EndLine: 337, - StartPos: 5543, - EndPos: 5544, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5546, - EndPos: 5565, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5553, - EndPos: 5564, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5553, - EndPos: 5555, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5553, - EndPos: 5555, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryBooleanOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5558, - EndPos: 5564, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5558, - EndPos: 5559, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 338, - EndLine: 338, - StartPos: 5563, - EndPos: 5564, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 5566, - EndPos: 5584, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 5573, - EndPos: 5583, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 5573, - EndPos: 5575, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 5573, - EndPos: 5575, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryConcat{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 5578, - EndPos: 5583, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 5578, - EndPos: 5579, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 339, - EndLine: 339, - StartPos: 5582, - EndPos: 5583, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5585, - EndPos: 5603, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5592, - EndPos: 5602, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5592, - EndPos: 5594, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5592, - EndPos: 5594, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryDiv{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5597, - EndPos: 5602, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5597, - EndPos: 5598, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 340, - EndLine: 340, - StartPos: 5601, - EndPos: 5602, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5604, - EndPos: 5623, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5611, - EndPos: 5622, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5611, - EndPos: 5613, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5611, - EndPos: 5613, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5616, - EndPos: 5622, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5616, - EndPos: 5617, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 341, - EndLine: 341, - StartPos: 5621, - EndPos: 5622, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 5624, - EndPos: 5643, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 5631, - EndPos: 5642, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 5631, - EndPos: 5633, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 5631, - EndPos: 5633, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryGreaterOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 5636, - EndPos: 5642, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 5636, - EndPos: 5637, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 342, - EndLine: 342, - StartPos: 5641, - EndPos: 5642, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5644, - EndPos: 5662, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5651, - EndPos: 5661, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5651, - EndPos: 5653, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5651, - EndPos: 5653, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryGreater{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5656, - EndPos: 5661, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5656, - EndPos: 5657, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 343, - EndLine: 343, - StartPos: 5660, - EndPos: 5661, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5663, - EndPos: 5683, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5670, - EndPos: 5682, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5670, - EndPos: 5672, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5670, - EndPos: 5672, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryIdentical{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5675, - EndPos: 5682, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5675, - EndPos: 5676, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 344, - EndLine: 344, - StartPos: 5681, - EndPos: 5682, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 5684, - EndPos: 5704, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 5691, - EndPos: 5703, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 5691, - EndPos: 5693, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 5691, - EndPos: 5693, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryLogicalAnd{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 5696, - EndPos: 5703, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 5696, - EndPos: 5697, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 345, - EndLine: 345, - StartPos: 5702, - EndPos: 5703, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5705, - EndPos: 5724, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5712, - EndPos: 5723, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5712, - EndPos: 5714, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5712, - EndPos: 5714, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryLogicalOr{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5717, - EndPos: 5723, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5717, - EndPos: 5718, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 346, - EndLine: 346, - StartPos: 5722, - EndPos: 5723, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 5725, - EndPos: 5745, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 5732, - EndPos: 5744, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 5732, - EndPos: 5734, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 5732, - EndPos: 5734, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryLogicalXor{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 5737, - EndPos: 5744, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 5737, - EndPos: 5738, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 347, - EndLine: 347, - StartPos: 5743, - EndPos: 5744, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5746, - EndPos: 5764, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5753, - EndPos: 5763, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5753, - EndPos: 5755, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5753, - EndPos: 5755, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryMinus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5758, - EndPos: 5763, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5758, - EndPos: 5759, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 348, - EndLine: 348, - StartPos: 5762, - EndPos: 5763, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 5765, - EndPos: 5783, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 5772, - EndPos: 5782, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 5772, - EndPos: 5774, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 5772, - EndPos: 5774, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryMod{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 5777, - EndPos: 5782, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 5777, - EndPos: 5778, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 349, - EndLine: 349, - StartPos: 5781, - EndPos: 5782, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 5784, - EndPos: 5802, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 5791, - EndPos: 5801, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 5791, - EndPos: 5793, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 5791, - EndPos: 5793, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryMul{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 5796, - EndPos: 5801, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 5796, - EndPos: 5797, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 350, - EndLine: 350, - StartPos: 5800, - EndPos: 5801, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 5803, - EndPos: 5822, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 5810, - EndPos: 5821, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 5810, - EndPos: 5812, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 5810, - EndPos: 5812, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryNotEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 5815, - EndPos: 5821, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 5815, - EndPos: 5816, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 351, - EndLine: 351, - StartPos: 5820, - EndPos: 5821, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 5823, - EndPos: 5843, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 5830, - EndPos: 5842, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 5830, - EndPos: 5832, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 5830, - EndPos: 5832, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryNotIdentical{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 5835, - EndPos: 5842, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 5835, - EndPos: 5836, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 352, - EndLine: 352, - StartPos: 5841, - EndPos: 5842, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 5844, - EndPos: 5862, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 5851, - EndPos: 5861, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 5851, - EndPos: 5853, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 5851, - EndPos: 5853, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryPlus{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 5856, - EndPos: 5861, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 5856, - EndPos: 5857, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 353, - EndLine: 353, - StartPos: 5860, - EndPos: 5861, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 5863, - EndPos: 5882, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 5870, - EndPos: 5881, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 5870, - EndPos: 5872, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 5870, - EndPos: 5872, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryPow{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 5875, - EndPos: 5881, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 5875, - EndPos: 5876, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 354, - EndLine: 354, - StartPos: 5880, - EndPos: 5881, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 5883, - EndPos: 5902, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 5890, - EndPos: 5901, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 5890, - EndPos: 5892, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 5890, - EndPos: 5892, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryShiftLeft{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 5895, - EndPos: 5901, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 5895, - EndPos: 5896, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 355, - EndLine: 355, - StartPos: 5900, - EndPos: 5901, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 5903, - EndPos: 5922, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 5910, - EndPos: 5921, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 5910, - EndPos: 5912, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 5910, - EndPos: 5912, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinaryShiftRight{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 5915, - EndPos: 5921, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 5915, - EndPos: 5916, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 356, - EndLine: 356, - StartPos: 5920, - EndPos: 5921, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 5923, - EndPos: 5942, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 5930, - EndPos: 5941, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 5930, - EndPos: 5932, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 5930, - EndPos: 5932, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinarySmallerOrEqual{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 5935, - EndPos: 5941, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 5935, - EndPos: 5936, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 357, - EndLine: 357, - StartPos: 5940, - EndPos: 5941, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 5943, - EndPos: 5961, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 5950, - EndPos: 5960, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 5950, - EndPos: 5952, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 5950, - EndPos: 5952, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprBinarySmaller{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 5955, - EndPos: 5960, - }, - }, - Left: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 5955, - EndPos: 5956, - }, - }, - Value: []byte("1"), - }, - Right: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 358, - EndLine: 358, - StartPos: 5959, - EndPos: 5960, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5962, - EndPos: 5983, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5969, - EndPos: 5982, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5969, - EndPos: 5971, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5969, - EndPos: 5971, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5974, - EndPos: 5982, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5974, - EndPos: 5977, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5974, - EndPos: 5977, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 359, - EndLine: 359, - StartPos: 5979, - EndPos: 5982, - }, - }, - Value: []byte("bar"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 5984, - EndPos: 6007, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 5991, - EndPos: 6006, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 5991, - EndPos: 5993, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 5991, - EndPos: 5993, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 5996, - EndPos: 6006, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 5996, - EndPos: 5999, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 5996, - EndPos: 5999, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 360, - EndLine: 360, - StartPos: 6001, - EndPos: 6006, - }, - }, - Value: []byte("class"), - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6008, - EndPos: 6030, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6015, - EndPos: 6029, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6015, - EndPos: 6017, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6015, - EndPos: 6017, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ScalarMagicConstant{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 361, - EndLine: 361, - StartPos: 6020, - EndPos: 6029, - }, - }, - Value: []byte("__CLASS__"), - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6031, - EndPos: 6047, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6038, - EndPos: 6046, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6038, - EndPos: 6040, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6038, - EndPos: 6040, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6043, - EndPos: 6046, - }, - }, - Const: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6043, - EndPos: 6046, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 362, - EndLine: 362, - StartPos: 6043, - EndPos: 6046, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6048, - EndPos: 6074, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6055, - EndPos: 6073, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6055, - EndPos: 6057, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6055, - EndPos: 6057, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6060, - EndPos: 6073, - }, - }, - Const: &ast.NameRelative{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6060, - EndPos: 6073, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 363, - EndLine: 363, - StartPos: 6070, - EndPos: 6073, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6075, - EndPos: 6092, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6082, - EndPos: 6091, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6082, - EndPos: 6084, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6082, - EndPos: 6084, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6087, - EndPos: 6091, - }, - }, - Const: &ast.NameFullyQualified{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6087, - EndPos: 6091, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 364, - EndLine: 364, - StartPos: 6088, - EndPos: 6091, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6093, - EndPos: 6113, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6100, - EndPos: 6112, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6100, - EndPos: 6102, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6100, - EndPos: 6102, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 365, - EndLine: 365, - StartPos: 6105, - EndPos: 6112, - }, - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6114, - EndPos: 6143, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6121, - EndPos: 6142, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6121, - EndPos: 6123, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6121, - EndPos: 6123, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6126, - EndPos: 6142, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6132, - EndPos: 6138, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6132, - EndPos: 6133, - }, - }, - Value: []byte("1"), - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6137, - EndPos: 6138, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6140, - EndPos: 6141, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 366, - EndLine: 366, - StartPos: 6140, - EndPos: 6141, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - }, - }, - }, - &ast.StmtStatic{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6144, - EndPos: 6171, - }, - }, - Vars: []ast.Vertex{ - &ast.StmtStaticVar{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6151, - EndPos: 6170, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6151, - EndPos: 6153, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6151, - EndPos: 6153, - }, - }, - Value: []byte("$a"), - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6156, - EndPos: 6170, - }, - }, - Var: &ast.ExprShortArray{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6156, - EndPos: 6167, - }, - }, - Items: []ast.Vertex{ - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6157, - EndPos: 6158, - }, - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6157, - EndPos: 6158, - }, - }, - Value: []byte("1"), - }, - }, - &ast.ExprArrayItem{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6160, - EndPos: 6166, - }, - }, - Key: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6160, - EndPos: 6161, - }, - }, - Value: []byte("2"), - }, - Val: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6165, - EndPos: 6166, - }, - }, - Value: []byte("2"), - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 367, - EndLine: 367, - StartPos: 6168, - EndPos: 6169, - }, - }, - Value: []byte("0"), - }, - }, - }, - }, - }, - &ast.StmtIf{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6173, - EndPos: 6188, - }, - }, - Cond: &ast.ExprYield{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6177, - EndPos: 6184, - }, - }, - Value: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6183, - EndPos: 6184, - }, - }, - Value: []byte("1"), - }, - }, - Stmt: &ast.StmtStmtList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 369, - EndLine: 369, - StartPos: 6186, - EndPos: 6188, - }, - }, - Stmts: []ast.Vertex{}, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6189, - EndPos: 6200, - }, - }, - Expr: &ast.ExprStaticPropertyFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6189, - EndPos: 6199, - }, - }, - Class: &ast.NameName{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6189, - EndPos: 6192, - }, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6189, - EndPos: 6192, - }, - }, - Value: []byte("Foo"), - }, - }, - }, - Property: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6194, - EndPos: 6199, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6195, - EndPos: 6199, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 370, - EndLine: 370, - StartPos: 6195, - EndPos: 6199, - }, - }, - Value: []byte("$bar"), - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6202, - EndPos: 6209, - }, - }, - Expr: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6202, - EndPos: 6208, - }, - }, - Function: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6202, - EndPos: 6206, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6202, - EndPos: 6206, - }, - }, - Value: []byte("$foo"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 372, - EndLine: 372, - StartPos: 6206, - EndPos: 6208, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6210, - EndPos: 6223, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6210, - EndPos: 6222, - }, - }, - Var: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6210, - EndPos: 6219, - }, - }, - Var: &ast.ExprFunctionCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6210, - EndPos: 6216, - }, - }, - Function: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6210, - EndPos: 6214, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6210, - EndPos: 6214, - }, - }, - Value: []byte("$foo"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6214, - EndPos: 6216, - }, - }, - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6217, - EndPos: 6218, - }, - }, - Value: []byte("0"), - }, - }, - Dim: &ast.ScalarLnumber{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 373, - EndLine: 373, - StartPos: 6220, - EndPos: 6221, - }, - }, - Value: []byte("0"), - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6224, - EndPos: 6231, - }, - }, - Expr: &ast.ExprArrayDimFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6224, - EndPos: 6230, - }, - }, - Var: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6224, - EndPos: 6226, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6224, - EndPos: 6226, - }, - }, - Value: []byte("$a"), - }, - }, - Dim: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6227, - EndPos: 6229, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 374, - EndLine: 374, - StartPos: 6227, - EndPos: 6229, - }, - }, - Value: []byte("$b"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6232, - EndPos: 6238, - }, - }, - Expr: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6232, - EndPos: 6237, - }, - }, - VarName: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6234, - EndPos: 6236, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 375, - EndLine: 375, - StartPos: 6234, - EndPos: 6236, - }, - }, - Value: []byte("$a"), - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6239, - EndPos: 6254, - }, - }, - Expr: &ast.ExprStaticCall{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6239, - EndPos: 6253, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6239, - EndPos: 6243, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6239, - EndPos: 6243, - }, - }, - Value: []byte("$foo"), - }, - }, - Call: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6245, - EndPos: 6251, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6246, - EndPos: 6250, - }, - }, - Value: []byte("$bar"), - }, - }, - ArgumentList: &ast.ArgumentList{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 376, - EndLine: 376, - StartPos: 6251, - EndPos: 6253, - }, - }, - }, - }, - }, - &ast.StmtExpression{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6255, - EndPos: 6265, - }, - }, - Expr: &ast.ExprClassConstFetch{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6255, - EndPos: 6264, - }, - }, - Class: &ast.ExprVariable{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6255, - EndPos: 6259, - }, - }, - VarName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6255, - EndPos: 6259, - }, - }, - Value: []byte("$foo"), - }, - }, - ConstantName: &ast.Identifier{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 377, - EndLine: 377, - StartPos: 6261, - EndPos: 6264, - }, - }, - Value: []byte("bar"), - }, - }, - }, - &ast.StmtHaltCompiler{ - Node: ast.Node{ - Position: &position.Position{ - StartLine: 379, - EndLine: 379, - StartPos: 6267, - EndPos: 6285, - }, - }, - }, - }, - } - - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) - php5parser.Parse() - actual := php5parser.GetRootNode() - traverser.NewDFS(new(visitor.FilterParserNodes)).Traverse(actual) - traverser.NewDFS(new(visitor.FilterTokens)).Traverse(actual) - assert.DeepEqual(t, expected, actual) -} - -func TestPhp5Strings(t *testing.T) { - src := ` Date: Sun, 20 Dec 2020 14:34:09 +0200 Subject: [PATCH 117/140] refactoring: update position builder tests --- internal/position/position_test.go | 36 +++++----- pkg/ast/ast_test.go | 102 ----------------------------- 2 files changed, 18 insertions(+), 120 deletions(-) delete mode 100644 pkg/ast/ast_test.go diff --git a/internal/position/position_test.go b/internal/position/position_test.go index fcd2681..4609179 100644 --- a/internal/position/position_test.go +++ b/internal/position/position_test.go @@ -21,7 +21,7 @@ func TestNewTokenPosition(t *testing.T) { }, } - pos := builder.NewTokenPosition(tkn) + pos := builder.NewBuilder().NewTokenPosition(tkn) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 1, EndPos: 3}, pos) } @@ -46,7 +46,7 @@ func TestNewTokensPosition(t *testing.T) { }, } - pos := builder.NewTokensPosition(token1, token2) + pos := builder.NewBuilder().NewTokensPosition(token1, token2) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 6}, pos) } @@ -61,7 +61,7 @@ func TestNewNodePosition(t *testing.T) { }, } - pos := builder.NewNodePosition(n) + pos := builder.NewBuilder().NewNodePosition(n) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 1, EndPos: 3}, pos) } @@ -85,7 +85,7 @@ func TestNewTokenNodePosition(t *testing.T) { }, } - pos := builder.NewTokenNodePosition(tkn, n) + pos := builder.NewBuilder().NewTokenNodePosition(tkn, n) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 12}, pos) } @@ -110,7 +110,7 @@ func TestNewNodeTokenPosition(t *testing.T) { }, } - pos := builder.NewNodeTokenPosition(n, tkn) + pos := builder.NewBuilder().NewNodeTokenPosition(n, tkn) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 12}, pos) } @@ -134,7 +134,7 @@ func TestNewNodeListPosition(t *testing.T) { }, } - pos := builder.NewNodeListPosition([]ast.Vertex{n1, n2}) + pos := builder.NewBuilder().NewNodeListPosition([]ast.Vertex{n1, n2}) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 19}, pos) } @@ -158,7 +158,7 @@ func TestNewNodesPosition(t *testing.T) { }, } - pos := builder.NewNodesPosition(n1, n2) + pos := builder.NewBuilder().NewNodesPosition(n1, n2) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 19}, pos) } @@ -192,7 +192,7 @@ func TestNewNodeListTokenPosition(t *testing.T) { }, } - pos := builder.NewNodeListTokenPosition([]ast.Vertex{n1, n2}, tkn) + pos := builder.NewBuilder().NewNodeListTokenPosition([]ast.Vertex{n1, n2}, tkn) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 22}, pos) } @@ -226,7 +226,7 @@ func TestNewTokenNodeListPosition(t *testing.T) { }, } - pos := builder.NewTokenNodeListPosition(tkn, []ast.Vertex{n1, n2}) + pos := builder.NewBuilder().NewTokenNodeListPosition(tkn, []ast.Vertex{n1, n2}) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 20}, pos) } @@ -259,7 +259,7 @@ func TestNewNodeNodeListPosition(t *testing.T) { }, } - pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{n2, n3}) + pos := builder.NewBuilder().NewNodeNodeListPosition(n1, []ast.Vertex{n2, n3}) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 26}, pos) } @@ -290,7 +290,7 @@ func TestNewNodeListNodePosition(t *testing.T) { }, } - pos := builder.NewNodeListNodePosition([]ast.Vertex{n1, n2}, n3) + pos := builder.NewBuilder().NewNodeListNodePosition([]ast.Vertex{n1, n2}, n3) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 3, EndPos: 26}, pos) } @@ -315,7 +315,7 @@ func TestNewOptionalListTokensPosition(t *testing.T) { }, } - pos := builder.NewOptionalListTokensPosition(nil, token1, token2) + pos := builder.NewBuilder().NewOptionalListTokensPosition(nil, token1, token2) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: 2, EndPos: 6}, pos) } @@ -357,13 +357,13 @@ func TestNewOptionalListTokensPosition2(t *testing.T) { }, } - pos := builder.NewOptionalListTokensPosition([]ast.Vertex{n2, n3}, token1, token2) + pos := builder.NewBuilder().NewOptionalListTokensPosition([]ast.Vertex{n2, n3}, token1, token2) assert.DeepEqual(t, &position.Position{StartLine: 2, EndLine: 5, StartPos: 9, EndPos: 32}, pos) } func TestNilNodePos(t *testing.T) { - pos := builder.NewNodesPosition(nil, nil) + pos := builder.NewBuilder().NewNodesPosition(nil, nil) assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: -1, StartPos: -1, EndPos: -1}, pos) } @@ -378,7 +378,7 @@ func TestNilNodeListPos(t *testing.T) { }, } - pos := builder.NewNodeNodeListPosition(n1, nil) + pos := builder.NewBuilder().NewNodeNodeListPosition(n1, nil) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: -1, EndPos: -1}, pos) } @@ -394,7 +394,7 @@ func TestNilNodeListTokenPos(t *testing.T) { }, } - pos := builder.NewNodeListTokenPosition(nil, tkn) + pos := builder.NewBuilder().NewNodeListTokenPosition(nil, tkn) assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: 1, StartPos: -1, EndPos: 3}, pos) } @@ -409,7 +409,7 @@ func TestEmptyNodeListPos(t *testing.T) { }, } - pos := builder.NewNodeNodeListPosition(n1, []ast.Vertex{}) + pos := builder.NewBuilder().NewNodeNodeListPosition(n1, []ast.Vertex{}) assert.DeepEqual(t, &position.Position{StartLine: 1, EndLine: -1, EndPos: -1}, pos) } @@ -425,7 +425,7 @@ func TestEmptyNodeListTokenPos(t *testing.T) { }, } - pos := builder.NewNodeListTokenPosition([]ast.Vertex{}, tkn) + pos := builder.NewBuilder().NewNodeListTokenPosition([]ast.Vertex{}, tkn) assert.DeepEqual(t, &position.Position{StartLine: -1, EndLine: 1, StartPos: -1, EndPos: 3}, pos) } diff --git a/pkg/ast/ast_test.go b/pkg/ast/ast_test.go deleted file mode 100644 index 923106a..0000000 --- a/pkg/ast/ast_test.go +++ /dev/null @@ -1,102 +0,0 @@ -package ast_test - -import ( - "fmt" - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/traverser" - "github.com/z7zmey/php-parser/pkg/ast/visitor" - "os" - "strings" -) - -func ExampleStxTree() { - stxTree := &ast.Root{ - Stmts: []ast.Vertex{ - &ast.Nullable{ - Expr: &ast.Parameter{ - Type: nil, - Var: nil, - DefaultValue: nil, - }, - }, - &ast.Identifier{}, - &ast.ArgumentList{ - Arguments: []ast.Vertex{ - &ast.Argument{}, - &ast.Argument{ - Expr: &ast.ScalarDnumber{}, - }, - }, - }, - }, - } - - traverser.NewDFS(&testVisitor{}).Traverse(stxTree) - - //output: - //=> *ast.Root - //=> Stmts: - //=> *ast.Nullable - //=> Expr: - //=> *ast.Parameter - //=> *ast.Identifier - //=> *ast.ArgumentList - //=> Arguments: - //=> *ast.Argument - //=> *ast.Argument - //=> Expr: - //=> *ast.ScalarDnumber -} - -type testVisitor struct { - visitor.Null - depth int -} - -func (v *testVisitor) Enter(key string, _ bool) { - v.depth++ - fmt.Fprint(os.Stdout, "=>", strings.Repeat(" ", v.depth), key, ":\n") -} - -func (v *testVisitor) Leave(key string, _ bool) { - v.depth-- -} - -func (v *testVisitor) EnterNode(n ast.Vertex) bool { - v.depth++ - n.Accept(v) - - return true -} - -func (v *testVisitor) LeaveNode(_ ast.Vertex) { - v.depth-- -} - -func (v *testVisitor) Root(_ *ast.Root) { - fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Root") -} - -func (v *testVisitor) Nullable(_ *ast.Nullable) { - fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Nullable") -} - -func (v *testVisitor) Parameter(_ *ast.Parameter) { - fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Parameter") -} - -func (v *testVisitor) Identifier(_ *ast.Identifier) { - fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Identifier") -} - -func (v *testVisitor) ArgumentList(_ *ast.ArgumentList) { - fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.ArgumentList") -} - -func (v *testVisitor) Argument(_ *ast.Argument) { - fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.Argument") -} - -func (v *testVisitor) ScalarDnumber(_ *ast.ScalarDnumber) { - fmt.Fprintln(os.Stdout, "=>", strings.Repeat(" ", v.depth-1), "*ast.ScalarDnumber") -} From eda7ae1c87036852f6186b99bd13c3a9d5730c25 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 20 Dec 2020 14:39:37 +0200 Subject: [PATCH 118/140] refactoring: update scanner tests --- internal/scanner/scanner_test.go | 57 +++++++++++--------------------- 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index c49b785..04888c4 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -386,8 +386,7 @@ func TestShebang(t *testing.T) { tkn := lexer.Lex() assert.Equal(t, tkn.ID, token.T_DNUMBER) - l := len(tkn.FreeFloating) - for _, tt := range tkn.FreeFloating[:l-1] { + for _, tt := range tkn.FreeFloating { actual = append(actual, string(tt.Value)) } @@ -1137,8 +1136,7 @@ func TestCommentEnd(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1169,8 +1167,7 @@ func TestCommentNewLine(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1201,8 +1198,7 @@ func TestCommentNewLine1(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1233,8 +1229,7 @@ func TestCommentNewLine2(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1266,8 +1261,7 @@ func TestCommentWithPhpEndTag(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1299,8 +1293,7 @@ func TestInlineComment(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1332,8 +1325,7 @@ func TestInlineComment2(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1369,8 +1361,7 @@ func TestEmptyInlineComment(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1402,8 +1393,7 @@ func TestEmptyInlineComment2(t *testing.T) { tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1428,8 +1418,7 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1442,8 +1431,7 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.FreeFloating) - actual = tkn.FreeFloating[:l-1] + actual = tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1456,8 +1444,7 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.FreeFloating) - actual = tkn.FreeFloating[:l-1] + actual = tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1470,8 +1457,7 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.FreeFloating) - actual = tkn.FreeFloating[:l-1] + actual = tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1484,8 +1470,7 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.FreeFloating) - actual = tkn.FreeFloating[:l-1] + actual = tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1498,8 +1483,7 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.FreeFloating) - actual = tkn.FreeFloating[:l-1] + actual = tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1512,8 +1496,7 @@ func TestMethodCallTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.FreeFloating) - actual = tkn.FreeFloating[:l-1] + actual = tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1537,8 +1520,7 @@ func TestYieldFromTokens(t *testing.T) { }, } tkn := lexer.Lex() - l := len(tkn.FreeFloating) - actual := tkn.FreeFloating[:l-1] + actual := tkn.FreeFloating for _, v := range actual { v.Position = nil } @@ -1551,8 +1533,7 @@ func TestYieldFromTokens(t *testing.T) { }, } tkn = lexer.Lex() - l = len(tkn.FreeFloating) - actual = tkn.FreeFloating[:l-1] + actual = tkn.FreeFloating for _, v := range actual { v.Position = nil } From 74b094925550f6ff6b5a007e60be545a40ae1c72 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 20 Dec 2020 22:11:16 +0200 Subject: [PATCH 119/140] refactoring: test variable formatter --- pkg/ast/visitor/formatter_test.go | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index c6f493f..d4b2c0a 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -4855,6 +4855,54 @@ func TestFormatter_ExprUnaryPlus(t *testing.T) { } } +func TestFormatter_ExprVariable(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprVariable_Variable(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprVariable{ + VarName: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_ExprYield(t *testing.T) { o := bytes.NewBufferString("") From 03c7979ccd26eeb0d52ce92cad2ec44293a2a9fb Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 20 Dec 2020 23:04:23 +0200 Subject: [PATCH 120/140] refactoring: remove StmtTraitAdaptationList node --- internal/php5/parser_test.go | 1138 ++++++++++---------- internal/php5/php5.go | 782 +++++++------- internal/php5/php5.y | 16 +- internal/php7/parser_test.go | 1138 ++++++++++---------- internal/php7/php7.go | 556 +++++----- internal/php7/php7.y | 18 +- pkg/ast/ast.go | 1 - pkg/ast/node.go | 45 +- pkg/ast/traverser/dfs.go | 22 +- pkg/ast/visitor/dumper.go | 18 +- pkg/ast/visitor/formatter.go | 39 +- pkg/ast/visitor/formatter_test.go | 88 +- pkg/ast/visitor/namespace_resolver.go | 30 +- pkg/ast/visitor/namespace_resolver_test.go | 26 +- pkg/ast/visitor/null.go | 4 - pkg/ast/visitor/printer.go | 11 +- pkg/ast/visitor/printer_test.go | 40 +- 17 files changed, 1900 insertions(+), 2072 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index b4a4ee9..a60a8fb 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -23235,23 +23235,15 @@ func TestStmtTraitUse(t *testing.T) { }, }, }, - Adaptations: &ast.StmtNop{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 22, EndPos: 23, }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 23, - }, - }, }, }, }, @@ -23518,23 +23510,15 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, }, - Adaptations: &ast.StmtNop{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 27, EndPos: 28, }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, - }, }, }, }, @@ -23801,44 +23785,36 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 30, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, @@ -24106,120 +24082,59 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 46, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 43, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 43, + EndPos: 33, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, - }, - }, - }, - Value: []byte("one"), - }, - }, - AsTkn: &token.Token{ - ID: token.T_AS, - Value: []byte("as"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 34, - EndPos: 36, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 34, - }, - }, - }, - }, - Modifier: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, - IdentifierTkn: &token.Token{ - ID: token.T_PUBLIC, - Value: []byte("public"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, FreeFloating: []*token.Token{ { ID: token.T_WHITESPACE, @@ -24227,45 +24142,98 @@ func TestStmtTraitUse_Modifier(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 36, - EndPos: 37, + StartPos: 29, + EndPos: 30, }, }, }, }, - Value: []byte("public"), + Value: []byte("one"), }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), + }, + AsTkn: &token.Token{ + ID: token.T_AS, + Value: []byte("as"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, + }, + }, + }, + }, + Modifier: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 37, + EndPos: 43, + }, + IdentifierTkn: &token.Token{ + ID: token.T_PUBLIC, + Value: []byte("public"), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 43, - EndPos: 44, + StartPos: 37, + EndPos: 43, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 36, + EndPos: 37, + }, + }, + }, + }, + Value: []byte("public"), + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 43, + EndPos: 44, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 45, - EndPos: 46, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 44, - EndPos: 45, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 45, + EndPos: 46, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 44, + EndPos: 45, }, }, }, @@ -24535,90 +24503,112 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 50, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 47, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 47, + EndPos: 33, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("one"), + }, + Value: []byte("one"), + }, + }, + AsTkn: &token.Token{ + ID: token.T_AS, + Value: []byte("as"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, + }, }, }, - AsTkn: &token.Token{ - ID: token.T_AS, - Value: []byte("as"), + }, + Modifier: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 37, + EndPos: 43, + }, + IdentifierTkn: &token.Token{ + ID: token.T_PUBLIC, + Value: []byte("public"), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 34, - EndPos: 36, + StartPos: 37, + EndPos: 43, }, FreeFloating: []*token.Token{ { @@ -24627,105 +24617,75 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 33, - EndPos: 34, + StartPos: 36, + EndPos: 37, }, }, }, }, - Modifier: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, - IdentifierTkn: &token.Token{ - ID: token.T_PUBLIC, - Value: []byte("public"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 36, - EndPos: 37, - }, - }, - }, - }, - Value: []byte("public"), + Value: []byte("public"), + }, + Alias: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 44, + EndPos: 47, }, - Alias: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("two"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 44, EndPos: 47, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("two"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 44, - EndPos: 47, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 43, - EndPos: 44, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 43, + EndPos: 44, }, }, }, - Value: []byte("two"), }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 47, - EndPos: 48, - }, + Value: []byte("two"), + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 47, + EndPos: 48, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 49, - EndPos: 50, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 48, - EndPos: 49, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 49, + EndPos: 50, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 48, + EndPos: 49, }, }, }, @@ -24995,343 +24955,365 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 78, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUsePrecedence{ + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUsePrecedence{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 58, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 58, + EndPos: 38, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 38, + EndPos: 33, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 35, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 35, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 35, EndPos: 38, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - }, - Value: []byte("one"), }, + Value: []byte("one"), }, - InsteadofTkn: &token.Token{ - ID: token.T_INSTEADOF, - Value: []byte("insteadof"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 39, - EndPos: 48, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 38, - EndPos: 39, - }, - }, - }, + }, + InsteadofTkn: &token.Token{ + ID: token.T_INSTEADOF, + Value: []byte("insteadof"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 39, + EndPos: 48, }, - Insteadof: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 49, - EndPos: 52, + StartPos: 38, + EndPos: 39, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Insteadof: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 49, + EndPos: 52, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 49, + EndPos: 52, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 49, EndPos: 52, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 49, - EndPos: 52, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 48, - EndPos: 49, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 48, + EndPos: 49, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 54, - EndPos: 58, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 54, + EndPos: 58, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 54, + EndPos: 58, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Quux"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 54, EndPos: 58, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Quux"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 54, - EndPos: 58, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 53, - EndPos: 54, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 53, + EndPos: 54, }, }, }, - Value: []byte("Quux"), }, + Value: []byte("Quux"), }, }, }, - SeparatorTkns: []*token.Token{ - { - ID: token.ID(44), - Value: []byte(","), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 52, - EndPos: 53, - }, - }, - }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 58, - EndPos: 59, - }, - }, }, - &ast.StmtTraitUseAlias{ + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 52, + EndPos: 53, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 58, + EndPos: 59, + }, + }, + }, + &ast.StmtTraitUseAlias{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 60, + EndPos: 75, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, - EndPos: 75, + EndPos: 68, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, - EndPos: 68, + EndPos: 63, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 60, + EndPos: 63, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, EndPos: 63, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 59, - EndPos: 60, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 59, + EndPos: 60, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 63, - EndPos: 65, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 63, + EndPos: 65, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 65, + EndPos: 68, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 65, EndPos: 68, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 65, - EndPos: 68, - }, + }, + Value: []byte("one"), + }, + }, + AsTkn: &token.Token{ + ID: token.T_AS, + Value: []byte("as"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 69, + EndPos: 71, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 68, + EndPos: 69, }, - Value: []byte("one"), }, }, - AsTkn: &token.Token{ - ID: token.T_AS, - Value: []byte("as"), + }, + Alias: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 72, + EndPos: 75, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("two"), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 69, - EndPos: 71, + StartPos: 72, + EndPos: 75, }, FreeFloating: []*token.Token{ { @@ -25340,74 +25322,44 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 68, - EndPos: 69, + StartPos: 71, + EndPos: 72, }, }, }, }, - Alias: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 72, - EndPos: 75, - }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("two"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 72, - EndPos: 75, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 71, - EndPos: 72, - }, - }, - }, - }, - Value: []byte("two"), - }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 75, - EndPos: 76, - }, + Value: []byte("two"), + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 75, + EndPos: 76, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 77, - EndPos: 78, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 76, - EndPos: 77, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 77, + EndPos: 78, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 76, + EndPos: 77, }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 59fe0b9..0aaa2b9 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5627 +// line internal/php5/php5.y:5637 // line yacctab:1 var yyExca = [...]int{ @@ -4347,17 +4347,27 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2152 { - yyVAL.node = &ast.StmtTraitUse{ + traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, - Adaptations: yyDollar[3].node, } + + switch n := yyDollar[3].node.(type) { + case *ast.TraitAdaptationList: + traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn + traitUse.Adaptations = n.Adaptations + traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn + case *ast.StmtNop: + traitUse.SemiColonTkn = n.SemiColonTkn + } + + yyVAL.node = traitUse } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2165 + // line internal/php5/php5.y:2175 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4365,7 +4375,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2171 + // line internal/php5/php5.y:2181 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4374,7 +4384,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2181 + // line internal/php5/php5.y:2191 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4383,9 +4393,9 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2188 + // line internal/php5/php5.y:2198 { - yyVAL.node = &ast.StmtTraitAdaptationList{ + yyVAL.node = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, @@ -4394,31 +4404,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2200 + // line internal/php5/php5.y:2210 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2204 + // line internal/php5/php5.y:2214 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2211 + // line internal/php5/php5.y:2221 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2215 + // line internal/php5/php5.y:2225 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2222 + // line internal/php5/php5.y:2232 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4426,7 +4436,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2228 + // line internal/php5/php5.y:2238 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4434,7 +4444,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2237 + // line internal/php5/php5.y:2247 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4446,7 +4456,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2250 + // line internal/php5/php5.y:2260 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4454,7 +4464,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2256 + // line internal/php5/php5.y:2266 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4463,7 +4473,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2266 + // line internal/php5/php5.y:2276 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4476,13 +4486,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2277 + // line internal/php5/php5.y:2287 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2284 + // line internal/php5/php5.y:2294 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4497,7 +4507,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2300 + // line internal/php5/php5.y:2310 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4513,7 +4523,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2314 + // line internal/php5/php5.y:2324 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4524,19 +4534,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2326 + // line internal/php5/php5.y:2336 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2330 + // line internal/php5/php5.y:2340 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2337 + // line internal/php5/php5.y:2347 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4545,7 +4555,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2344 + // line internal/php5/php5.y:2354 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4556,13 +4566,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2356 + // line internal/php5/php5.y:2366 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2360 + // line internal/php5/php5.y:2370 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4574,31 +4584,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2373 + // line internal/php5/php5.y:2383 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2377 + // line internal/php5/php5.y:2387 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2394 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2388 + // line internal/php5/php5.y:2398 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2395 + // line internal/php5/php5.y:2405 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4608,7 +4618,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2403 + // line internal/php5/php5.y:2413 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4618,7 +4628,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2411 + // line internal/php5/php5.y:2421 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4628,7 +4638,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2419 + // line internal/php5/php5.y:2429 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4638,7 +4648,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2427 + // line internal/php5/php5.y:2437 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4648,7 +4658,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2435 + // line internal/php5/php5.y:2445 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4658,7 +4668,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2456 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4679,7 +4689,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2465 + // line internal/php5/php5.y:2475 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4702,7 +4712,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2486 + // line internal/php5/php5.y:2496 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4723,7 +4733,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2505 + // line internal/php5/php5.y:2515 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4745,7 +4755,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2528 + // line internal/php5/php5.y:2538 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -4765,7 +4775,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2546 + // line internal/php5/php5.y:2556 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -4786,7 +4796,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2568 + // line internal/php5/php5.y:2578 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4795,7 +4805,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2575 + // line internal/php5/php5.y:2585 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4803,19 +4813,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2585 + // line internal/php5/php5.y:2595 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2589 + // line internal/php5/php5.y:2599 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2596 + // line internal/php5/php5.y:2606 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4824,7 +4834,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2603 + // line internal/php5/php5.y:2613 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4832,19 +4842,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2612 + // line internal/php5/php5.y:2622 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2616 + // line internal/php5/php5.y:2626 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2623 + // line internal/php5/php5.y:2633 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -4858,7 +4868,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2635 + // line internal/php5/php5.y:2645 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4872,37 +4882,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2650 + // line internal/php5/php5.y:2660 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2664 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2668 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2665 + // line internal/php5/php5.y:2675 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2669 + // line internal/php5/php5.y:2679 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2676 + // line internal/php5/php5.y:2686 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4923,7 +4933,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2698 + // line internal/php5/php5.y:2708 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4941,7 +4951,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2714 + // line internal/php5/php5.y:2724 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4952,7 +4962,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2723 + // line internal/php5/php5.y:2733 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -4964,7 +4974,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2733 + // line internal/php5/php5.y:2743 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -4995,7 +5005,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2762 + // line internal/php5/php5.y:2772 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5005,7 +5015,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2770 + // line internal/php5/php5.y:2780 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5016,7 +5026,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2779 + // line internal/php5/php5.y:2789 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5027,7 +5037,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2788 + // line internal/php5/php5.y:2798 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5038,7 +5048,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2797 + // line internal/php5/php5.y:2807 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5049,7 +5059,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2806 + // line internal/php5/php5.y:2816 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5060,7 +5070,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2815 + // line internal/php5/php5.y:2825 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5071,7 +5081,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2824 + // line internal/php5/php5.y:2834 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5082,7 +5092,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2833 + // line internal/php5/php5.y:2843 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5093,7 +5103,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2842 + // line internal/php5/php5.y:2852 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5104,7 +5114,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2851 + // line internal/php5/php5.y:2861 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5115,7 +5125,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2860 + // line internal/php5/php5.y:2870 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5126,7 +5136,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2869 + // line internal/php5/php5.y:2879 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5137,7 +5147,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2878 + // line internal/php5/php5.y:2888 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5147,7 +5157,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2886 + // line internal/php5/php5.y:2896 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5157,7 +5167,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2894 + // line internal/php5/php5.y:2904 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5167,7 +5177,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2902 + // line internal/php5/php5.y:2912 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5177,7 +5187,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2910 + // line internal/php5/php5.y:2920 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5188,7 +5198,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2919 + // line internal/php5/php5.y:2929 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5199,7 +5209,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2928 + // line internal/php5/php5.y:2938 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5210,7 +5220,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2937 + // line internal/php5/php5.y:2947 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5221,7 +5231,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2946 + // line internal/php5/php5.y:2956 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5232,7 +5242,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2955 + // line internal/php5/php5.y:2965 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5243,7 +5253,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2964 + // line internal/php5/php5.y:2974 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5254,7 +5264,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2973 + // line internal/php5/php5.y:2983 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5265,7 +5275,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2982 + // line internal/php5/php5.y:2992 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5276,7 +5286,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2991 + // line internal/php5/php5.y:3001 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5287,7 +5297,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3000 + // line internal/php5/php5.y:3010 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5298,7 +5308,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3009 + // line internal/php5/php5.y:3019 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5309,7 +5319,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3018 + // line internal/php5/php5.y:3028 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5320,7 +5330,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3027 + // line internal/php5/php5.y:3037 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5331,7 +5341,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3036 + // line internal/php5/php5.y:3046 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5342,7 +5352,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3045 + // line internal/php5/php5.y:3055 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5353,7 +5363,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3054 + // line internal/php5/php5.y:3064 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5364,7 +5374,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3063 + // line internal/php5/php5.y:3073 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5374,7 +5384,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3081 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5384,7 +5394,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3079 + // line internal/php5/php5.y:3089 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5394,7 +5404,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3087 + // line internal/php5/php5.y:3097 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5404,7 +5414,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3095 + // line internal/php5/php5.y:3105 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5415,7 +5425,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3104 + // line internal/php5/php5.y:3114 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5426,7 +5436,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3113 + // line internal/php5/php5.y:3123 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5437,7 +5447,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3122 + // line internal/php5/php5.y:3132 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5448,7 +5458,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3131 + // line internal/php5/php5.y:3141 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5459,7 +5469,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3140 + // line internal/php5/php5.y:3150 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5470,7 +5480,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3149 + // line internal/php5/php5.y:3159 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5481,7 +5491,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3158 + // line internal/php5/php5.y:3168 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5492,7 +5502,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3167 + // line internal/php5/php5.y:3177 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5503,19 +5513,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3176 + // line internal/php5/php5.y:3186 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3180 + // line internal/php5/php5.y:3190 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3184 + // line internal/php5/php5.y:3194 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5550,7 +5560,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3217 + // line internal/php5/php5.y:3227 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5563,7 +5573,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3228 + // line internal/php5/php5.y:3238 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5575,13 +5585,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3248 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3242 + // line internal/php5/php5.y:3252 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5591,7 +5601,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3250 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5601,7 +5611,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3258 + // line internal/php5/php5.y:3268 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5611,7 +5621,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3266 + // line internal/php5/php5.y:3276 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5621,7 +5631,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3274 + // line internal/php5/php5.y:3284 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5631,7 +5641,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3282 + // line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5641,7 +5651,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3290 + // line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5651,7 +5661,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3298 + // line internal/php5/php5.y:3308 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -5670,7 +5680,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3315 + // line internal/php5/php5.y:3325 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5680,25 +5690,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3323 + // line internal/php5/php5.y:3333 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3327 + // line internal/php5/php5.y:3337 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3331 + // line internal/php5/php5.y:3341 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3335 + // line internal/php5/php5.y:3345 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5709,7 +5719,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3344 + // line internal/php5/php5.y:3354 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5719,7 +5729,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3352 + // line internal/php5/php5.y:3362 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5728,7 +5738,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3359 + // line internal/php5/php5.y:3369 { yyVAL.node = &ast.ExprClosure{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), @@ -5746,7 +5756,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3375 + // line internal/php5/php5.y:3385 { yyVAL.node = &ast.ExprClosure{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[10].token), @@ -5765,7 +5775,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3395 + // line internal/php5/php5.y:3405 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5775,7 +5785,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3403 + // line internal/php5/php5.y:3413 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5784,18 +5794,6 @@ yydefault: } } case 308: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3411 - { - yyVAL.node = &ast.ExprYield{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), - YieldTkn: yyDollar[1].token, - Key: yyDollar[2].node, - DoubleArrowTkn: yyDollar[3].token, - Value: yyDollar[4].node, - } - } - case 309: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:3421 { @@ -5807,19 +5805,19 @@ yydefault: Value: yyDollar[4].node, } } - case 310: + case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3431 { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, + yyVAL.node = &ast.ExprYield{ + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), + YieldTkn: yyDollar[1].token, + Key: yyDollar[2].node, + DoubleArrowTkn: yyDollar[3].token, + Value: yyDollar[4].node, } } - case 311: + case 310: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:3444 { @@ -5831,9 +5829,21 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 312: + case 311: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:3454 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } + case 312: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php5/php5.y:3464 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5849,7 +5859,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3468 + // line internal/php5/php5.y:3478 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5861,7 +5871,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3491 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5874,7 +5884,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3492 + // line internal/php5/php5.y:3502 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5886,19 +5896,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3505 + // line internal/php5/php5.y:3515 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3512 + // line internal/php5/php5.y:3522 { yyVAL.node = nil } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3516 + // line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5911,7 +5921,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3530 + // line internal/php5/php5.y:3540 { variable := &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -5929,7 +5939,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3546 + // line internal/php5/php5.y:3556 { reference := &ast.ExprReference{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), @@ -5951,7 +5961,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3566 + // line internal/php5/php5.y:3576 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5968,7 +5978,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3581 + // line internal/php5/php5.y:3591 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -5989,7 +5999,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3603 + // line internal/php5/php5.y:3613 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), @@ -6006,7 +6016,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3618 + // line internal/php5/php5.y:3628 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -6025,7 +6035,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3635 + // line internal/php5/php5.y:3645 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -6043,7 +6053,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3651 + // line internal/php5/php5.y:3661 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6058,7 +6068,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3664 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6073,7 +6083,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3677 + // line internal/php5/php5.y:3687 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6088,7 +6098,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3690 + // line internal/php5/php5.y:3700 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6103,7 +6113,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3703 + // line internal/php5/php5.y:3713 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -6116,7 +6126,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3717 + // line internal/php5/php5.y:3727 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6126,7 +6136,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3725 + // line internal/php5/php5.y:3735 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6136,7 +6146,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3733 + // line internal/php5/php5.y:3743 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6148,7 +6158,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3743 + // line internal/php5/php5.y:3753 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6159,7 +6169,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3755 + // line internal/php5/php5.y:3765 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6169,7 +6179,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3763 + // line internal/php5/php5.y:3773 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6181,7 +6191,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3773 + // line internal/php5/php5.y:3783 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6192,19 +6202,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3785 + // line internal/php5/php5.y:3795 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3789 + // line internal/php5/php5.y:3799 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3796 + // line internal/php5/php5.y:3806 { yyVAL.node = yyDollar[1].node @@ -6240,25 +6250,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3830 + // line internal/php5/php5.y:3840 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3838 + // line internal/php5/php5.y:3848 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3842 + // line internal/php5/php5.y:3852 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3850 + // line internal/php5/php5.y:3860 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6266,13 +6276,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3859 + // line internal/php5/php5.y:3869 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3863 + // line internal/php5/php5.y:3873 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6282,19 +6292,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3871 + // line internal/php5/php5.y:3881 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3878 + // line internal/php5/php5.y:3888 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3882 + // line internal/php5/php5.y:3892 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6306,25 +6316,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3892 + // line internal/php5/php5.y:3902 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3899 + // line internal/php5/php5.y:3909 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3903 + // line internal/php5/php5.y:3913 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3910 + // line internal/php5/php5.y:3920 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6334,7 +6344,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3918 + // line internal/php5/php5.y:3928 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6344,7 +6354,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3926 + // line internal/php5/php5.y:3936 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6354,7 +6364,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3934 + // line internal/php5/php5.y:3944 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6364,7 +6374,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3942 + // line internal/php5/php5.y:3952 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6374,7 +6384,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3950 + // line internal/php5/php5.y:3960 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6384,7 +6394,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3958 + // line internal/php5/php5.y:3968 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6394,7 +6404,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3966 + // line internal/php5/php5.y:3976 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6404,7 +6414,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3974 + // line internal/php5/php5.y:3984 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6414,7 +6424,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3982 + // line internal/php5/php5.y:3992 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6424,7 +6434,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3990 + // line internal/php5/php5.y:4000 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6441,7 +6451,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4005 + // line internal/php5/php5.y:4015 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6451,7 +6461,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4016 + // line internal/php5/php5.y:4026 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6466,25 +6476,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4032 + // line internal/php5/php5.y:4042 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4039 + // line internal/php5/php5.y:4049 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4043 + // line internal/php5/php5.y:4053 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4057 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6497,7 +6507,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4058 + // line internal/php5/php5.y:4068 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6512,7 +6522,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4071 + // line internal/php5/php5.y:4081 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6526,7 +6536,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4083 + // line internal/php5/php5.y:4093 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6539,7 +6549,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4094 + // line internal/php5/php5.y:4104 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6551,13 +6561,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4104 + // line internal/php5/php5.y:4114 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4108 + // line internal/php5/php5.y:4118 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6567,13 +6577,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4116 + // line internal/php5/php5.y:4126 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4123 + // line internal/php5/php5.y:4133 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6585,7 +6595,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4133 + // line internal/php5/php5.y:4143 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6596,7 +6606,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4142 + // line internal/php5/php5.y:4152 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6607,7 +6617,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4151 + // line internal/php5/php5.y:4161 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6618,7 +6628,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4160 + // line internal/php5/php5.y:4170 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6629,7 +6639,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4169 + // line internal/php5/php5.y:4179 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6640,7 +6650,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4178 + // line internal/php5/php5.y:4188 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6651,7 +6661,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4187 + // line internal/php5/php5.y:4197 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6661,7 +6671,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4195 + // line internal/php5/php5.y:4205 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6671,7 +6681,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4203 + // line internal/php5/php5.y:4213 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6682,7 +6692,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4212 + // line internal/php5/php5.y:4222 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6693,7 +6703,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4221 + // line internal/php5/php5.y:4231 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6704,7 +6714,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4230 + // line internal/php5/php5.y:4240 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6715,7 +6725,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4239 + // line internal/php5/php5.y:4249 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6726,7 +6736,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4248 + // line internal/php5/php5.y:4258 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6737,7 +6747,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4257 + // line internal/php5/php5.y:4267 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6748,7 +6758,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4266 + // line internal/php5/php5.y:4276 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6759,7 +6769,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4275 + // line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6770,7 +6780,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4294 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6781,7 +6791,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4293 + // line internal/php5/php5.y:4303 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6792,7 +6802,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4302 + // line internal/php5/php5.y:4312 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6803,7 +6813,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4311 + // line internal/php5/php5.y:4321 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6814,7 +6824,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4330 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6825,7 +6835,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6836,7 +6846,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4338 + // line internal/php5/php5.y:4348 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6847,7 +6857,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4347 + // line internal/php5/php5.y:4357 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6858,7 +6868,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4356 + // line internal/php5/php5.y:4366 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6869,7 +6879,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4365 + // line internal/php5/php5.y:4375 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6880,7 +6890,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4374 + // line internal/php5/php5.y:4384 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6892,7 +6902,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4384 + // line internal/php5/php5.y:4394 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -6905,7 +6915,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4395 + // line internal/php5/php5.y:4405 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6915,7 +6925,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4403 + // line internal/php5/php5.y:4413 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6925,7 +6935,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4411 + // line internal/php5/php5.y:4421 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6936,13 +6946,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4423 + // line internal/php5/php5.y:4433 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4427 + // line internal/php5/php5.y:4437 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6955,7 +6965,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4438 + // line internal/php5/php5.y:4448 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6970,7 +6980,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4451 + // line internal/php5/php5.y:4461 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6984,7 +6994,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4466 + // line internal/php5/php5.y:4476 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6997,25 +7007,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4477 + // line internal/php5/php5.y:4487 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4481 + // line internal/php5/php5.y:4491 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4485 + // line internal/php5/php5.y:4495 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4489 + // line internal/php5/php5.y:4499 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7026,7 +7036,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4498 + // line internal/php5/php5.y:4508 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7037,7 +7047,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4507 + // line internal/php5/php5.y:4517 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7047,13 +7057,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4518 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4522 + // line internal/php5/php5.y:4532 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7064,19 +7074,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4534 + // line internal/php5/php5.y:4544 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4538 + // line internal/php5/php5.y:4548 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4545 + // line internal/php5/php5.y:4555 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7092,7 +7102,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4559 + // line internal/php5/php5.y:4569 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7106,7 +7116,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4571 + // line internal/php5/php5.y:4581 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7121,7 +7131,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4584 + // line internal/php5/php5.y:4594 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7134,19 +7144,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4598 + // line internal/php5/php5.y:4608 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4602 + // line internal/php5/php5.y:4612 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4609 + // line internal/php5/php5.y:4619 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7157,7 +7167,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4618 + // line internal/php5/php5.y:4628 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7168,25 +7178,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4631 + // line internal/php5/php5.y:4641 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4639 + // line internal/php5/php5.y:4649 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4646 + // line internal/php5/php5.y:4656 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4653 + // line internal/php5/php5.y:4663 { yyVAL.node = yyDollar[1].node @@ -7263,25 +7273,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4728 + // line internal/php5/php5.y:4738 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4735 + // line internal/php5/php5.y:4745 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4739 + // line internal/php5/php5.y:4749 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4747 + // line internal/php5/php5.y:4757 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7310,7 +7320,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4777 + // line internal/php5/php5.y:4787 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7324,7 +7334,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4789 + // line internal/php5/php5.y:4799 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7338,7 +7348,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4804 + // line internal/php5/php5.y:4814 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7350,31 +7360,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4817 + // line internal/php5/php5.y:4827 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4821 + // line internal/php5/php5.y:4831 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4825 + // line internal/php5/php5.y:4835 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4832 + // line internal/php5/php5.y:4842 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4836 + // line internal/php5/php5.y:4846 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7386,7 +7396,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4849 + // line internal/php5/php5.y:4859 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7397,7 +7407,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4858 + // line internal/php5/php5.y:4868 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7408,23 +7418,11 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4870 + // line internal/php5/php5.y:4880 { yyVAL.node = yyDollar[1].node } case 452: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4877 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 453: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:4887 { @@ -7436,33 +7434,45 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } + case 453: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php5/php5.y:4897 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4900 + // line internal/php5/php5.y:4910 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4904 + // line internal/php5/php5.y:4914 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4908 + // line internal/php5/php5.y:4918 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4916 + // line internal/php5/php5.y:4926 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4920 + // line internal/php5/php5.y:4930 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7474,23 +7484,11 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4940 { yyVAL.node = yyDollar[1].node } case 460: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4937 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 461: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:4947 { @@ -7502,15 +7500,27 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } + case 461: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php5/php5.y:4957 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4957 + // line internal/php5/php5.y:4967 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4965 + // line internal/php5/php5.y:4975 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7523,7 +7533,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4976 + // line internal/php5/php5.y:4986 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7538,25 +7548,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4992 + // line internal/php5/php5.y:5002 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5006 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5004 + // line internal/php5/php5.y:5014 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5018 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7567,7 +7577,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5020 + // line internal/php5/php5.y:5030 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7581,7 +7591,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5042 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7595,7 +7605,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5054 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7606,7 +7616,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5066 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7616,7 +7626,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5064 + // line internal/php5/php5.y:5074 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7627,7 +7637,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5076 + // line internal/php5/php5.y:5086 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7638,7 +7648,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5085 + // line internal/php5/php5.y:5095 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7647,7 +7657,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5095 + // line internal/php5/php5.y:5105 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7656,7 +7666,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5102 + // line internal/php5/php5.y:5112 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7664,7 +7674,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5122 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7673,7 +7683,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5119 + // line internal/php5/php5.y:5129 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7696,19 +7706,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5140 + // line internal/php5/php5.y:5150 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5158 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5152 + // line internal/php5/php5.y:5162 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7719,7 +7729,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5164 + // line internal/php5/php5.y:5174 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7735,7 +7745,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5178 + // line internal/php5/php5.y:5188 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7749,7 +7759,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5190 + // line internal/php5/php5.y:5200 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7764,7 +7774,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5203 + // line internal/php5/php5.y:5213 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7777,7 +7787,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5214 + // line internal/php5/php5.y:5224 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7797,7 +7807,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5232 + // line internal/php5/php5.y:5242 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7815,7 +7825,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5248 + // line internal/php5/php5.y:5258 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7834,7 +7844,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5265 + // line internal/php5/php5.y:5275 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7851,13 +7861,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5283 + // line internal/php5/php5.y:5293 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5287 + // line internal/php5/php5.y:5297 { yyVAL.list = append( yyDollar[1].list, @@ -7870,13 +7880,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5298 + // line internal/php5/php5.y:5308 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5312 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7889,7 +7899,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5316 + // line internal/php5/php5.y:5326 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7902,7 +7912,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5327 + // line internal/php5/php5.y:5337 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7921,7 +7931,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5354 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7943,7 +7953,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5364 + // line internal/php5/php5.y:5374 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7957,7 +7967,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5376 + // line internal/php5/php5.y:5386 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7975,7 +7985,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5392 + // line internal/php5/php5.y:5402 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -7999,7 +8009,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5414 + // line internal/php5/php5.y:5424 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8010,7 +8020,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5426 + // line internal/php5/php5.y:5436 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8020,7 +8030,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5434 + // line internal/php5/php5.y:5444 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8039,7 +8049,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5451 + // line internal/php5/php5.y:5461 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8052,7 +8062,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5465 + // line internal/php5/php5.y:5475 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8065,7 +8075,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5476 + // line internal/php5/php5.y:5486 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8077,7 +8087,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5486 + // line internal/php5/php5.y:5496 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8089,7 +8099,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5496 + // line internal/php5/php5.y:5506 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8099,7 +8109,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5504 + // line internal/php5/php5.y:5514 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8109,7 +8119,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5512 + // line internal/php5/php5.y:5522 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8121,7 +8131,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5522 + // line internal/php5/php5.y:5532 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8131,7 +8141,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5530 + // line internal/php5/php5.y:5540 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8141,7 +8151,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5541 + // line internal/php5/php5.y:5551 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8149,7 +8159,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5547 + // line internal/php5/php5.y:5557 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8158,19 +8168,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5557 + // line internal/php5/php5.y:5567 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5561 + // line internal/php5/php5.y:5571 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5568 + // line internal/php5/php5.y:5578 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8185,7 +8195,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5581 + // line internal/php5/php5.y:5591 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8200,7 +8210,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5597 + // line internal/php5/php5.y:5607 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8215,7 +8225,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5613 + // line internal/php5/php5.y:5623 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 727d486..7867d5c 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2150,13 +2150,23 @@ class_statement: trait_use_statement: T_USE trait_list trait_adaptations { - $$ = &ast.StmtTraitUse{ + traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, - Adaptations: $3, } + + switch n := $3.(type) { + case *ast.TraitAdaptationList : + traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn + traitUse.Adaptations = n.Adaptations + traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn + case *ast.StmtNop : + traitUse.SemiColonTkn = n.SemiColonTkn + }; + + $$ = traitUse } ; @@ -2186,7 +2196,7 @@ trait_adaptations: } | '{' trait_adaptation_list '}' { - $$ = &ast.StmtTraitAdaptationList{ + $$ = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, Adaptations: $2, diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 6c94e47..76706ed 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -25219,23 +25219,15 @@ func TestStmtTraitUse(t *testing.T) { }, }, }, - Adaptations: &ast.StmtNop{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 22, EndPos: 23, }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 22, - EndPos: 23, - }, - }, }, }, }, @@ -25502,23 +25494,15 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, }, - Adaptations: &ast.StmtNop{ + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 27, EndPos: 28, }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, - }, }, }, }, @@ -25785,44 +25769,36 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 30, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, @@ -26090,120 +26066,59 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 46, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 43, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 43, + EndPos: 33, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, - }, - }, - }, - Value: []byte("one"), - }, - }, - AsTkn: &token.Token{ - ID: token.T_AS, - Value: []byte("as"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 34, - EndPos: 36, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 34, - }, - }, - }, - }, - Modifier: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, - IdentifierTkn: &token.Token{ - ID: token.T_PUBLIC, - Value: []byte("public"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, FreeFloating: []*token.Token{ { ID: token.T_WHITESPACE, @@ -26211,45 +26126,98 @@ func TestStmtTraitUse_Modifier(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 36, - EndPos: 37, + StartPos: 29, + EndPos: 30, }, }, }, }, - Value: []byte("public"), + Value: []byte("one"), }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), + }, + AsTkn: &token.Token{ + ID: token.T_AS, + Value: []byte("as"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, + }, + }, + }, + }, + Modifier: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 37, + EndPos: 43, + }, + IdentifierTkn: &token.Token{ + ID: token.T_PUBLIC, + Value: []byte("public"), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 43, - EndPos: 44, + StartPos: 37, + EndPos: 43, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 36, + EndPos: 37, + }, + }, + }, + }, + Value: []byte("public"), + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 43, + EndPos: 44, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 45, - EndPos: 46, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 44, - EndPos: 45, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 45, + EndPos: 46, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 44, + EndPos: 45, }, }, }, @@ -26519,90 +26487,112 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 50, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 47, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 47, + EndPos: 33, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("one"), + }, + Value: []byte("one"), + }, + }, + AsTkn: &token.Token{ + ID: token.T_AS, + Value: []byte("as"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 36, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, + }, }, }, - AsTkn: &token.Token{ - ID: token.T_AS, - Value: []byte("as"), + }, + Modifier: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 37, + EndPos: 43, + }, + IdentifierTkn: &token.Token{ + ID: token.T_PUBLIC, + Value: []byte("public"), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 34, - EndPos: 36, + StartPos: 37, + EndPos: 43, }, FreeFloating: []*token.Token{ { @@ -26611,105 +26601,75 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 33, - EndPos: 34, + StartPos: 36, + EndPos: 37, }, }, }, }, - Modifier: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, - IdentifierTkn: &token.Token{ - ID: token.T_PUBLIC, - Value: []byte("public"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 43, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 36, - EndPos: 37, - }, - }, - }, - }, - Value: []byte("public"), + Value: []byte("public"), + }, + Alias: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 44, + EndPos: 47, }, - Alias: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("two"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 44, EndPos: 47, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("two"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 44, - EndPos: 47, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 43, - EndPos: 44, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 43, + EndPos: 44, }, }, }, - Value: []byte("two"), }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 47, - EndPos: 48, - }, + Value: []byte("two"), + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 47, + EndPos: 48, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 49, - EndPos: 50, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 48, - EndPos: 49, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 49, + EndPos: 50, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 48, + EndPos: 49, }, }, }, @@ -26979,343 +26939,365 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 28, - EndPos: 78, + EndPos: 29, }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 28, }, }, }, - Adaptations: []ast.Vertex{ - &ast.StmtTraitUsePrecedence{ + }, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUsePrecedence{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 58, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 58, + EndPos: 38, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 38, + EndPos: 33, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 35, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 35, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 35, EndPos: 38, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - }, - Value: []byte("one"), }, + Value: []byte("one"), }, - InsteadofTkn: &token.Token{ - ID: token.T_INSTEADOF, - Value: []byte("insteadof"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 39, - EndPos: 48, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 38, - EndPos: 39, - }, - }, - }, + }, + InsteadofTkn: &token.Token{ + ID: token.T_INSTEADOF, + Value: []byte("insteadof"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 39, + EndPos: 48, }, - Insteadof: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 49, - EndPos: 52, + StartPos: 38, + EndPos: 39, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Insteadof: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 49, + EndPos: 52, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 49, + EndPos: 52, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 49, EndPos: 52, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 49, - EndPos: 52, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 48, - EndPos: 49, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 48, + EndPos: 49, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 54, - EndPos: 58, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 54, + EndPos: 58, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 54, + EndPos: 58, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Quux"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 54, EndPos: 58, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Quux"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 54, - EndPos: 58, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 53, - EndPos: 54, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 53, + EndPos: 54, }, }, }, - Value: []byte("Quux"), }, + Value: []byte("Quux"), }, }, }, - SeparatorTkns: []*token.Token{ - { - ID: token.ID(44), - Value: []byte(","), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 52, - EndPos: 53, - }, - }, - }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 58, - EndPos: 59, - }, - }, }, - &ast.StmtTraitUseAlias{ + SeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 52, + EndPos: 53, + }, + }, + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 58, + EndPos: 59, + }, + }, + }, + &ast.StmtTraitUseAlias{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 60, + EndPos: 75, + }, + Ref: &ast.StmtTraitMethodRef{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, - EndPos: 75, + EndPos: 68, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, - EndPos: 68, + EndPos: 63, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 60, + EndPos: 63, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, EndPos: 63, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 59, - EndPos: 60, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 59, + EndPos: 60, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 63, - EndPos: 65, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 63, + EndPos: 65, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 65, + EndPos: 68, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 65, EndPos: 68, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 65, - EndPos: 68, - }, + }, + Value: []byte("one"), + }, + }, + AsTkn: &token.Token{ + ID: token.T_AS, + Value: []byte("as"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 69, + EndPos: 71, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 68, + EndPos: 69, }, - Value: []byte("one"), }, }, - AsTkn: &token.Token{ - ID: token.T_AS, - Value: []byte("as"), + }, + Alias: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 72, + EndPos: 75, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("two"), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 69, - EndPos: 71, + StartPos: 72, + EndPos: 75, }, FreeFloating: []*token.Token{ { @@ -27324,74 +27306,44 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 68, - EndPos: 69, + StartPos: 71, + EndPos: 72, }, }, }, }, - Alias: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 72, - EndPos: 75, - }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("two"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 72, - EndPos: 75, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 71, - EndPos: 72, - }, - }, - }, - }, - Value: []byte("two"), - }, - SemiColonTkn: &token.Token{ - ID: token.ID(59), - Value: []byte(";"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 75, - EndPos: 76, - }, + Value: []byte("two"), + }, + SemiColonTkn: &token.Token{ + ID: token.ID(59), + Value: []byte(";"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 75, + EndPos: 76, }, }, }, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 77, - EndPos: 78, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 76, - EndPos: 77, - }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 77, + EndPos: 78, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 76, + EndPos: 77, }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 82fd500..3c139f2 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4332 +// line internal/php7/php7.y:4342 // line yacctab:1 var yyExca = [...]int{ @@ -4381,17 +4381,27 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:1972 { - yyVAL.node = &ast.StmtTraitUse{ + traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, - Adaptations: yyDollar[3].node, } + + switch n := yyDollar[3].node.(type) { + case *ast.TraitAdaptationList: + traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn + traitUse.Adaptations = n.Adaptations + traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn + case *ast.StmtNop: + traitUse.SemiColonTkn = n.SemiColonTkn + } + + yyVAL.node = traitUse } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:1982 + // line internal/php7/php7.y:1992 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4419,7 +4429,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2011 + // line internal/php7/php7.y:2021 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4427,7 +4437,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2017 + // line internal/php7/php7.y:2027 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4436,7 +4446,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2027 + // line internal/php7/php7.y:2037 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4445,9 +4455,9 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2034 + // line internal/php7/php7.y:2044 { - yyVAL.node = &ast.StmtTraitAdaptationList{ + yyVAL.node = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenCurlyBracketTkn: yyDollar[1].token, CloseCurlyBracketTkn: yyDollar[2].token, @@ -4455,9 +4465,9 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2042 + // line internal/php7/php7.y:2052 { - yyVAL.node = &ast.StmtTraitAdaptationList{ + yyVAL.node = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, @@ -4466,19 +4476,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2054 + // line internal/php7/php7.y:2064 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2058 + // line internal/php7/php7.y:2068 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2065 + // line internal/php7/php7.y:2075 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4486,7 +4496,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2071 + // line internal/php7/php7.y:2081 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4494,7 +4504,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2080 + // line internal/php7/php7.y:2090 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4506,7 +4516,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2093 + // line internal/php7/php7.y:2103 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4521,7 +4531,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2106 + // line internal/php7/php7.y:2116 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4536,7 +4546,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2119 + // line internal/php7/php7.y:2129 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4552,7 +4562,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2133 + // line internal/php7/php7.y:2143 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4563,7 +4573,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2145 + // line internal/php7/php7.y:2155 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4576,13 +4586,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2156 + // line internal/php7/php7.y:2166 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2163 + // line internal/php7/php7.y:2173 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4597,7 +4607,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2179 + // line internal/php7/php7.y:2189 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4606,7 +4616,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2186 + // line internal/php7/php7.y:2196 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4617,13 +4627,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2198 + // line internal/php7/php7.y:2208 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2202 + // line internal/php7/php7.y:2212 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4635,31 +4645,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2215 + // line internal/php7/php7.y:2225 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2219 + // line internal/php7/php7.y:2229 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2226 + // line internal/php7/php7.y:2236 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2230 + // line internal/php7/php7.y:2240 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2237 + // line internal/php7/php7.y:2247 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4669,7 +4679,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2245 + // line internal/php7/php7.y:2255 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4679,7 +4689,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2253 + // line internal/php7/php7.y:2263 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4689,7 +4699,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2261 + // line internal/php7/php7.y:2271 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4699,7 +4709,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2269 + // line internal/php7/php7.y:2279 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4709,7 +4719,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2277 + // line internal/php7/php7.y:2287 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4719,7 +4729,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2288 + // line internal/php7/php7.y:2298 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4728,7 +4738,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2295 + // line internal/php7/php7.y:2305 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4736,7 +4746,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2304 + // line internal/php7/php7.y:2314 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4753,7 +4763,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2319 + // line internal/php7/php7.y:2329 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4771,7 +4781,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2338 + // line internal/php7/php7.y:2348 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4780,7 +4790,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2345 + // line internal/php7/php7.y:2355 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4788,7 +4798,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2354 + // line internal/php7/php7.y:2364 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4803,7 +4813,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2370 + // line internal/php7/php7.y:2380 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4818,7 +4828,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2386 + // line internal/php7/php7.y:2396 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4827,7 +4837,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2393 + // line internal/php7/php7.y:2403 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4835,25 +4845,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2402 + // line internal/php7/php7.y:2412 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2409 + // line internal/php7/php7.y:2419 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2413 + // line internal/php7/php7.y:2423 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2420 + // line internal/php7/php7.y:2430 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4862,7 +4872,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2427 + // line internal/php7/php7.y:2437 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4870,7 +4880,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2436 + // line internal/php7/php7.y:2446 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -4888,7 +4898,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2455 + // line internal/php7/php7.y:2465 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4910,7 +4920,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2475 + // line internal/php7/php7.y:2485 { yyVAL.node = &ast.ExprNew{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4920,7 +4930,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2486 + // line internal/php7/php7.y:2496 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4938,7 +4948,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2502 + // line internal/php7/php7.y:2512 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -4955,7 +4965,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2517 + // line internal/php7/php7.y:2527 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4966,7 +4976,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2526 + // line internal/php7/php7.y:2536 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -4978,7 +4988,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2536 + // line internal/php7/php7.y:2546 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4988,7 +4998,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2544 + // line internal/php7/php7.y:2554 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4999,7 +5009,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2553 + // line internal/php7/php7.y:2563 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5010,7 +5020,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2562 + // line internal/php7/php7.y:2572 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5021,7 +5031,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2571 + // line internal/php7/php7.y:2581 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5032,7 +5042,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2580 + // line internal/php7/php7.y:2590 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5043,7 +5053,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2589 + // line internal/php7/php7.y:2599 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5054,7 +5064,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2598 + // line internal/php7/php7.y:2608 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5065,7 +5075,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2607 + // line internal/php7/php7.y:2617 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5076,7 +5086,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2616 + // line internal/php7/php7.y:2626 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5087,7 +5097,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2625 + // line internal/php7/php7.y:2635 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5098,7 +5108,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2634 + // line internal/php7/php7.y:2644 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5109,7 +5119,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2643 + // line internal/php7/php7.y:2653 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5120,7 +5130,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2652 + // line internal/php7/php7.y:2662 { yyVAL.node = &ast.ExprAssignCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5131,7 +5141,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2661 + // line internal/php7/php7.y:2671 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5141,7 +5151,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2669 + // line internal/php7/php7.y:2679 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5151,7 +5161,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2677 + // line internal/php7/php7.y:2687 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5161,7 +5171,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2685 + // line internal/php7/php7.y:2695 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5171,7 +5181,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2693 + // line internal/php7/php7.y:2703 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5182,7 +5192,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2702 + // line internal/php7/php7.y:2712 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5193,7 +5203,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2711 + // line internal/php7/php7.y:2721 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5204,7 +5214,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2720 + // line internal/php7/php7.y:2730 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5215,7 +5225,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2729 + // line internal/php7/php7.y:2739 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5226,7 +5236,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2738 + // line internal/php7/php7.y:2748 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5237,7 +5247,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2747 + // line internal/php7/php7.y:2757 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5248,7 +5258,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2756 + // line internal/php7/php7.y:2766 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5259,7 +5269,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2765 + // line internal/php7/php7.y:2775 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5270,7 +5280,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2774 + // line internal/php7/php7.y:2784 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5281,7 +5291,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2783 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5292,7 +5302,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2792 + // line internal/php7/php7.y:2802 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5303,7 +5313,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2801 + // line internal/php7/php7.y:2811 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5314,7 +5324,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2810 + // line internal/php7/php7.y:2820 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5325,7 +5335,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2819 + // line internal/php7/php7.y:2829 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5336,7 +5346,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2828 + // line internal/php7/php7.y:2838 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5347,7 +5357,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2837 + // line internal/php7/php7.y:2847 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5358,7 +5368,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2846 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5368,7 +5378,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2854 + // line internal/php7/php7.y:2864 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5378,7 +5388,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2862 + // line internal/php7/php7.y:2872 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5388,7 +5398,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2880 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5398,7 +5408,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2888 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5409,7 +5419,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2887 + // line internal/php7/php7.y:2897 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5420,7 +5430,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2896 + // line internal/php7/php7.y:2906 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5431,7 +5441,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2905 + // line internal/php7/php7.y:2915 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5442,7 +5452,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2914 + // line internal/php7/php7.y:2924 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5453,7 +5463,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2923 + // line internal/php7/php7.y:2933 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5464,7 +5474,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2932 + // line internal/php7/php7.y:2942 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5475,7 +5485,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2941 + // line internal/php7/php7.y:2951 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5486,7 +5496,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2950 + // line internal/php7/php7.y:2960 { yyVAL.node = &ast.ExprBinarySpaceship{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5497,7 +5507,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2959 + // line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5508,7 +5518,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2968 + // line internal/php7/php7.y:2978 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5519,13 +5529,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2977 + // line internal/php7/php7.y:2987 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2981 + // line internal/php7/php7.y:2991 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5538,7 +5548,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2992 + // line internal/php7/php7.y:3002 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5550,7 +5560,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3002 + // line internal/php7/php7.y:3012 { yyVAL.node = &ast.ExprBinaryCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5561,13 +5571,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3011 + // line internal/php7/php7.y:3021 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3015 + // line internal/php7/php7.y:3025 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5577,7 +5587,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3033 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5587,7 +5597,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3031 + // line internal/php7/php7.y:3041 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5597,7 +5607,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3039 + // line internal/php7/php7.y:3049 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5607,7 +5617,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3047 + // line internal/php7/php7.y:3057 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5617,7 +5627,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3055 + // line internal/php7/php7.y:3065 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5627,7 +5637,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3063 + // line internal/php7/php7.y:3073 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5637,7 +5647,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3081 { exit := &ast.ExprExit{ DieTkn: yyDollar[1].token, @@ -5656,7 +5666,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3088 + // line internal/php7/php7.y:3098 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5666,13 +5676,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3096 + // line internal/php7/php7.y:3106 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3100 + // line internal/php7/php7.y:3110 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5683,7 +5693,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3109 + // line internal/php7/php7.y:3119 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5693,7 +5703,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3117 + // line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5702,7 +5712,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3124 + // line internal/php7/php7.y:3134 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5712,7 +5722,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3132 + // line internal/php7/php7.y:3142 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5724,7 +5734,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3142 + // line internal/php7/php7.y:3152 { yyVAL.node = &ast.ExprYieldFrom{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5734,13 +5744,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3150 + // line internal/php7/php7.y:3160 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3154 + // line internal/php7/php7.y:3164 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -5755,7 +5765,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3170 + // line internal/php7/php7.y:3180 { yyVAL.node = &ast.ExprClosure{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), @@ -5775,7 +5785,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3188 + // line internal/php7/php7.y:3198 { yyVAL.node = &ast.ExprArrowFunction{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), @@ -5793,25 +5803,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3211 + // line internal/php7/php7.y:3221 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3215 + // line internal/php7/php7.y:3225 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3222 + // line internal/php7/php7.y:3232 { yyVAL.node = nil } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3226 + // line internal/php7/php7.y:3236 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5824,7 +5834,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3240 + // line internal/php7/php7.y:3250 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5833,7 +5843,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3247 + // line internal/php7/php7.y:3257 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5841,7 +5851,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3256 + // line internal/php7/php7.y:3266 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5854,7 +5864,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3267 + // line internal/php7/php7.y:3277 { yyVAL.node = &ast.ExprReference{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -5871,7 +5881,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3285 + // line internal/php7/php7.y:3295 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5884,7 +5894,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3296 + // line internal/php7/php7.y:3306 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5899,7 +5909,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3309 + // line internal/php7/php7.y:3319 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5914,7 +5924,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3322 + // line internal/php7/php7.y:3332 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5927,7 +5937,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3346 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5937,31 +5947,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3344 + // line internal/php7/php7.y:3354 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3351 + // line internal/php7/php7.y:3361 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3355 + // line internal/php7/php7.y:3365 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3362 + // line internal/php7/php7.y:3372 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3366 + // line internal/php7/php7.y:3376 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5972,13 +5982,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3378 + // line internal/php7/php7.y:3388 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3382 + // line internal/php7/php7.y:3392 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -5990,25 +6000,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3392 + // line internal/php7/php7.y:3402 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3399 + // line internal/php7/php7.y:3409 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3403 + // line internal/php7/php7.y:3413 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3410 + // line internal/php7/php7.y:3420 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6021,7 +6031,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3421 + // line internal/php7/php7.y:3431 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6033,7 +6043,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3431 + // line internal/php7/php7.y:3441 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6043,7 +6053,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3452 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6053,7 +6063,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3450 + // line internal/php7/php7.y:3460 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6063,7 +6073,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3458 + // line internal/php7/php7.y:3468 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6073,7 +6083,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3466 + // line internal/php7/php7.y:3476 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6083,7 +6093,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3484 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6093,7 +6103,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3482 + // line internal/php7/php7.y:3492 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6103,7 +6113,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3490 + // line internal/php7/php7.y:3500 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6113,7 +6123,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3498 + // line internal/php7/php7.y:3508 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6123,7 +6133,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3506 + // line internal/php7/php7.y:3516 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6133,7 +6143,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3514 + // line internal/php7/php7.y:3524 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6143,7 +6153,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3522 + // line internal/php7/php7.y:3532 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6160,7 +6170,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3537 + // line internal/php7/php7.y:3547 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6170,7 +6180,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3545 + // line internal/php7/php7.y:3555 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6181,7 +6191,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3554 + // line internal/php7/php7.y:3564 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6192,19 +6202,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3563 + // line internal/php7/php7.y:3573 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3567 + // line internal/php7/php7.y:3577 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3574 + // line internal/php7/php7.y:3584 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6213,7 +6223,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3591 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6228,7 +6238,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3604 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6243,43 +6253,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3620 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3614 + // line internal/php7/php7.y:3624 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3631 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3625 + // line internal/php7/php7.y:3635 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3632 + // line internal/php7/php7.y:3642 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3639 + // line internal/php7/php7.y:3649 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3643 + // line internal/php7/php7.y:3653 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6290,19 +6300,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3652 + // line internal/php7/php7.y:3662 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3669 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3663 + // line internal/php7/php7.y:3673 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6313,29 +6323,17 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3672 + // line internal/php7/php7.y:3682 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3679 + // line internal/php7/php7.y:3689 { yyVAL.node = yyDollar[1].node } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3683 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3693 { @@ -6347,7 +6345,7 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 435: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3703 { @@ -6359,9 +6357,21 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 436: + case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3713 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:3723 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6376,25 +6386,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3726 + // line internal/php7/php7.y:3736 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3733 + // line internal/php7/php7.y:3743 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3737 + // line internal/php7/php7.y:3747 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3741 + // line internal/php7/php7.y:3751 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6405,7 +6415,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3763 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6418,7 +6428,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3764 + // line internal/php7/php7.y:3774 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6433,7 +6443,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3777 + // line internal/php7/php7.y:3787 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6443,7 +6453,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3798 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6454,7 +6464,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3797 + // line internal/php7/php7.y:3807 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6465,23 +6475,11 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3809 + // line internal/php7/php7.y:3819 { yyVAL.node = yyDollar[1].node } case 447: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3813 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 448: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3823 { @@ -6493,9 +6491,21 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } + case 448: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:3833 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3833 + // line internal/php7/php7.y:3843 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6506,7 +6516,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3842 + // line internal/php7/php7.y:3852 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6517,7 +6527,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3851 + // line internal/php7/php7.y:3861 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6528,7 +6538,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3873 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6538,7 +6548,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3871 + // line internal/php7/php7.y:3881 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6549,13 +6559,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3880 + // line internal/php7/php7.y:3890 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3887 + // line internal/php7/php7.y:3897 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6565,7 +6575,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3895 + // line internal/php7/php7.y:3905 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6576,13 +6586,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3904 + // line internal/php7/php7.y:3914 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3911 + // line internal/php7/php7.y:3921 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6595,19 +6605,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3925 + // line internal/php7/php7.y:3935 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3939 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3936 + // line internal/php7/php7.y:3946 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6616,7 +6626,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3943 + // line internal/php7/php7.y:3953 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6624,7 +6634,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3962 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6635,7 +6645,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3961 + // line internal/php7/php7.y:3971 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6644,7 +6654,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3968 + // line internal/php7/php7.y:3978 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6659,7 +6669,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3981 + // line internal/php7/php7.y:3991 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6672,7 +6682,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3992 + // line internal/php7/php7.y:4002 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6682,7 +6692,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4000 + // line internal/php7/php7.y:4010 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6700,7 +6710,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6716,13 +6726,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4033 + // line internal/php7/php7.y:4043 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4037 + // line internal/php7/php7.y:4047 { yyVAL.list = append( yyDollar[1].list, @@ -6735,13 +6745,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4048 + // line internal/php7/php7.y:4058 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4052 + // line internal/php7/php7.y:4062 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6754,7 +6764,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4076 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6767,7 +6777,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4077 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6786,7 +6796,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4094 + // line internal/php7/php7.y:4104 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6808,7 +6818,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4114 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6822,7 +6832,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4126 + // line internal/php7/php7.y:4136 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6840,7 +6850,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4142 + // line internal/php7/php7.y:4152 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -6864,7 +6874,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4164 + // line internal/php7/php7.y:4174 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6875,7 +6885,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4176 + // line internal/php7/php7.y:4186 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6885,7 +6895,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4184 + // line internal/php7/php7.y:4194 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6904,7 +6914,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4201 + // line internal/php7/php7.y:4211 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6930,7 +6940,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4225 + // line internal/php7/php7.y:4235 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6943,7 +6953,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4239 + // line internal/php7/php7.y:4249 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -6960,7 +6970,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4254 + // line internal/php7/php7.y:4264 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6972,7 +6982,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4264 + // line internal/php7/php7.y:4274 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6982,7 +6992,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4272 + // line internal/php7/php7.y:4282 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6992,7 +7002,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4280 + // line internal/php7/php7.y:4290 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7004,7 +7014,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4290 + // line internal/php7/php7.y:4300 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7014,7 +7024,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7024,7 +7034,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4309 + // line internal/php7/php7.y:4319 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7032,7 +7042,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4315 + // line internal/php7/php7.y:4325 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7041,7 +7051,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4325 + // line internal/php7/php7.y:4335 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 2c14cff..00582e4 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1970,13 +1970,23 @@ class_statement: } | T_USE name_list trait_adaptations { - $$ = &ast.StmtTraitUse{ + traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, Traits: $2.(*ast.ParserSeparatedList).Items, SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, - Adaptations: $3, } + + switch n := $3.(type) { + case *ast.TraitAdaptationList : + traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn + traitUse.Adaptations = n.Adaptations + traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn + case *ast.StmtNop : + traitUse.SemiColonTkn = n.SemiColonTkn + }; + + $$ = traitUse } | method_modifiers T_FUNCTION returns_ref identifier backup_doc_comment '(' parameter_list ')' return_type method_body { @@ -2032,7 +2042,7 @@ trait_adaptations: } | '{' '}' { - $$ = &ast.StmtTraitAdaptationList{ + $$ = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenCurlyBracketTkn: $1, CloseCurlyBracketTkn: $2, @@ -2040,7 +2050,7 @@ trait_adaptations: } | '{' trait_adaptation_list '}' { - $$ = &ast.StmtTraitAdaptationList{ + $$ = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, Adaptations: $2, diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index fad100c..0cdb4b0 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -67,7 +67,6 @@ type NodeVisitor interface { StmtSwitch(n *StmtSwitch) StmtThrow(n *StmtThrow) StmtTrait(n *StmtTrait) - StmtTraitAdaptationList(n *StmtTraitAdaptationList) StmtTraitMethodRef(n *StmtTraitMethodRef) StmtTraitUse(n *StmtTraitUse) StmtTraitUseAlias(n *StmtTraitUseAlias) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 7497f9a..3e3e428 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -945,22 +945,6 @@ func (n *StmtTrait) GetPosition() *position.Position { return n.Position } -// StmtTraitAdaptationList node -type StmtTraitAdaptationList struct { - Position *position.Position - OpenCurlyBracketTkn *token.Token - Adaptations []Vertex - CloseCurlyBracketTkn *token.Token -} - -func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) { - v.StmtTraitAdaptationList(n) -} - -func (n *StmtTraitAdaptationList) GetPosition() *position.Position { - return n.Position -} - // StmtTraitMethodRef node type StmtTraitMethodRef struct { Position *position.Position @@ -979,11 +963,14 @@ func (n *StmtTraitMethodRef) GetPosition() *position.Position { // StmtTraitUse node type StmtTraitUse struct { - Position *position.Position - UseTkn *token.Token - Traits []Vertex - SeparatorTkns []*token.Token - Adaptations Vertex + Position *position.Position + UseTkn *token.Token + Traits []Vertex + SeparatorTkns []*token.Token + OpenCurlyBracketTkn *token.Token + Adaptations []Vertex + CloseCurlyBracketTkn *token.Token + SemiColonTkn *token.Token } func (n *StmtTraitUse) Accept(v NodeVisitor) { @@ -2699,6 +2686,22 @@ func (n *ParserSeparatedList) GetPosition() *position.Position { return n.Position } +// TraitAdaptationList node +type TraitAdaptationList struct { + Position *position.Position + OpenCurlyBracketTkn *token.Token + Adaptations []Vertex + CloseCurlyBracketTkn *token.Token +} + +func (n *TraitAdaptationList) Accept(v NodeVisitor) { + // do nothing +} + +func (n *TraitAdaptationList) GetPosition() *position.Position { + return n.Position +} + // ArgumentList node type ArgumentList struct { Position *position.Position diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index d9e198e..f980c7f 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -812,20 +812,6 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Stmts", false) } - case *ast.StmtTraitAdaptationList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Adaptations != nil { - t.visitor.Enter("Adaptations", false) - for _, c := range nn.Adaptations { - t.Traverse(c) - } - t.visitor.Leave("Adaptations", false) - } case *ast.StmtTraitMethodRef: if nn == nil { return @@ -858,9 +844,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.visitor.Leave("Traits", false) } if nn.Adaptations != nil { - t.visitor.Enter("Adaptations", true) - t.Traverse(nn.Adaptations) - t.visitor.Leave("Adaptations", true) + t.visitor.Enter("Adaptations", false) + for _, c := range nn.Adaptations { + t.Traverse(c) + } + t.visitor.Leave("Adaptations", false) } case *ast.StmtTraitUseAlias: if nn == nil { diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 98ef5ef..c086d47 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -858,19 +858,6 @@ func (v *Dumper) StmtTrait(n *ast.StmtTrait) { v.print(v.indent, "},\n") } -func (v *Dumper) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { - v.print(0, "&ast.StmtTraitAdaptationList{\n") - v.indent++ - - v.dumpPosition(n.Position) - v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) - v.dumpVertexList("Adaptations", n.Adaptations) - v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) - - v.indent-- - v.print(v.indent, "},\n") -} - func (v *Dumper) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { v.print(0, "&ast.StmtTraitMethodRef{\n") v.indent++ @@ -892,7 +879,10 @@ func (v *Dumper) StmtTraitUse(n *ast.StmtTraitUse) { v.dumpToken("UseTkn", n.UseTkn) v.dumpVertexList("Traits", n.Traits) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) - v.dumpVertex("Adaptations", n.Adaptations) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertexList("Adaptations", n.Adaptations) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + v.dumpToken("SemiColonTkn", n.SemiColonTkn) v.indent-- v.print(v.indent, "},\n") diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 31b1475..5d2d202 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -886,21 +886,6 @@ func (f *formatter) StmtTrait(n *ast.StmtTrait) { n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) } -func (f *formatter) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { - n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) - - if len(n.Adaptations) > 0 { - f.indent++ - f.formatStmts(&n.Adaptations) - f.indent-- - - f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) - f.addIndent() - } - - n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) -} - func (f *formatter) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { if n.Trait != nil { n.Trait.Accept(f) @@ -916,11 +901,27 @@ func (f *formatter) StmtTraitUse(n *ast.StmtTraitUse) { n.SeparatorTkns = f.formatList(n.Traits, ',') - if _, ok := n.Adaptations.(*ast.StmtTraitAdaptationList); ok { - f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - } + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil + n.SemiColonTkn = nil - n.Adaptations.Accept(f) + if len(n.Adaptations) > 0 { + f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + + if len(n.Adaptations) > 0 { + f.indent++ + f.formatStmts(&n.Adaptations) + f.indent-- + + f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) + f.addIndent() + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + } else { + n.SemiColonTkn = f.newToken(';', []byte(";")) + } } func (f *formatter) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index d4b2c0a..ee8637b 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -2503,76 +2503,6 @@ func TestFormatter_StmtTrait_Implements(t *testing.T) { } } -func TestFormatter_StmtTraitAdaptationList(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtTraitAdaptationList{} - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `{}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestFormatter_StmtTraitAdaptationList_List(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtTraitAdaptationList{ - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, - }, - Alias: &ast.Identifier{ - Value: []byte("bar"), - }, - }, - &ast.StmtTraitUsePrecedence{ - Ref: &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, - }, - Insteadof: []ast.Vertex{ - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, - }, - }, - }, - }, - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `{ - foo as bar; - foo insteadof bar; - }` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestFormatter_StmtTraitMethodRef(t *testing.T) { o := bytes.NewBufferString("") @@ -2646,7 +2576,6 @@ func TestFormatter_StmtTraitUse(t *testing.T) { }, }, }, - Adaptations: &ast.StmtNop{}, } f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) @@ -2683,7 +2612,18 @@ func TestFormatter_StmtTraitUse_Adaptations(t *testing.T) { }, }, }, - Adaptations: &ast.StmtTraitAdaptationList{}, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ + Value: []byte("foo"), + }, + }, + Alias: &ast.Identifier{ + Value: []byte("baz"), + }, + }, + }, } f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) @@ -2692,7 +2632,9 @@ func TestFormatter_StmtTraitUse_Adaptations(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n.Accept(p) - expected := `use foo, bar {}` + expected := `use foo, bar { + foo as baz; + }` actual := o.String() if expected != actual { diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index 5bc82ca..9e4e6a2 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -184,23 +184,21 @@ func (nsr *NamespaceResolver) StmtTraitUse(n *ast.StmtTraitUse) { nsr.ResolveName(t, "") } - if adaptationList, ok := n.Adaptations.(*ast.StmtTraitAdaptationList); ok { - for _, a := range adaptationList.Adaptations { - switch aa := a.(type) { - case *ast.StmtTraitUsePrecedence: - refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait - if refTrait != nil { - nsr.ResolveName(refTrait, "") - } - for _, insteadOf := range aa.Insteadof { - nsr.ResolveName(insteadOf, "") - } + for _, a := range n.Adaptations { + switch aa := a.(type) { + case *ast.StmtTraitUsePrecedence: + refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait + if refTrait != nil { + nsr.ResolveName(refTrait, "") + } + for _, insteadOf := range aa.Insteadof { + nsr.ResolveName(insteadOf, "") + } - case *ast.StmtTraitUseAlias: - refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait - if refTrait != nil { - nsr.ResolveName(refTrait, "") - } + case *ast.StmtTraitUseAlias: + refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait + if refTrait != nil { + nsr.ResolveName(refTrait, "") } } } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index fa7043a..f42f11e 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -354,22 +354,20 @@ func TestResolveTraitUse(t *testing.T) { nameB, relativeNameB, }, - Adaptations: &ast.StmtTraitAdaptationList{ - Adaptations: []ast.Vertex{ - &ast.StmtTraitUsePrecedence{ - Ref: &ast.StmtTraitMethodRef{ - Trait: fullyQualifiedNameB, - Method: &ast.Identifier{Value: []byte("foo")}, - }, - Insteadof: []ast.Vertex{fullyQualifiedNameBC}, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUsePrecedence{ + Ref: &ast.StmtTraitMethodRef{ + Trait: fullyQualifiedNameB, + Method: &ast.Identifier{Value: []byte("foo")}, }, - &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Trait: relativeNameBC, - Method: &ast.Identifier{Value: []byte("foo")}, - }, - Alias: &ast.Identifier{Value: []byte("bar")}, + Insteadof: []ast.Vertex{fullyQualifiedNameBC}, + }, + &ast.StmtTraitUseAlias{ + Ref: &ast.StmtTraitMethodRef{ + Trait: relativeNameBC, + Method: &ast.Identifier{Value: []byte("foo")}, }, + Alias: &ast.Identifier{Value: []byte("bar")}, }, }, }, diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index bba280c..cef3d73 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -206,10 +206,6 @@ func (v *Null) StmtTrait(_ *ast.StmtTrait) { // do nothing } -func (v *Null) StmtTraitAdaptationList(_ *ast.StmtTraitAdaptationList) { - // do nothing -} - func (v *Null) StmtTraitMethodRef(_ *ast.StmtTraitMethodRef) { // do nothing } diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index ae85256..255ffe9 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -531,12 +531,6 @@ func (p *printer) StmtTrait(n *ast.StmtTrait) { p.printToken(n.CloseCurlyBracketTkn, []byte("}")) } -func (p *printer) StmtTraitAdaptationList(n *ast.StmtTraitAdaptationList) { - p.printToken(n.OpenCurlyBracketTkn, []byte("{")) - p.printList(n.Adaptations) - p.printToken(n.CloseCurlyBracketTkn, []byte("}")) -} - func (p *printer) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { p.printNode(n.Trait) p.printToken(n.DoubleColonTkn, p.ifNode(n.Trait, []byte("::"))) @@ -546,7 +540,10 @@ func (p *printer) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { func (p *printer) StmtTraitUse(n *ast.StmtTraitUse) { p.printToken(n.UseTkn, []byte("use")) p.printSeparatedList(n.Traits, n.SeparatorTkns, []byte(",")) - p.printNode(n.Adaptations) + p.printToken(n.OpenCurlyBracketTkn, p.ifNodeList(n.Adaptations, []byte("{"))) + p.printList(n.Adaptations) + p.printToken(n.CloseCurlyBracketTkn, p.ifNodeList(n.Adaptations, []byte("}"))) + p.printToken(n.SemiColonTkn, p.ifNotToken(n.OpenCurlyBracketTkn, p.ifNotNodeList(n.Adaptations, []byte(";")))) } func (p *printer) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 7920cb2..d918f0a 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -4339,31 +4339,6 @@ func TestPrinterPrintStmtThrow(t *testing.T) { } } -func TestPrinterPrintStmtTraitAdaptationList(t *testing.T) { - o := bytes.NewBufferString("") - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n := &ast.StmtTraitAdaptationList{ - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Method: &ast.Identifier{Value: []byte("a")}, - }, - Alias: &ast.Identifier{Value: []byte("b")}, - }, - }, - } - n.Accept(p) - - expected := `{Foo::a as b;}` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestPrinterPrintStmtTraitMethodRef(t *testing.T) { o := bytes.NewBufferString("") @@ -4454,7 +4429,6 @@ func TestPrinterPrintStmtTraitUse(t *testing.T) { &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - Adaptations: &ast.StmtNop{}, } n.Accept(p) @@ -4475,15 +4449,13 @@ func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, }, - Adaptations: &ast.StmtTraitAdaptationList{ - Adaptations: []ast.Vertex{ - &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Method: &ast.Identifier{Value: []byte("a")}, - }, - Alias: &ast.Identifier{Value: []byte("b")}, + Adaptations: []ast.Vertex{ + &ast.StmtTraitUseAlias{ + Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, }, + Alias: &ast.Identifier{Value: []byte("b")}, }, }, } From b85bae2ec11a36eb6cdd9ae08132b01ed93cecf3 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 26 Dec 2020 18:20:10 +0200 Subject: [PATCH 121/140] refactoring: update ast structure of "Closure" and "ClosureUse" nodes --- internal/php5/parser_test.go | 426 +++++++-------- internal/php5/php5.go | 569 +++++++++++---------- internal/php5/php5.y | 131 ++--- internal/php7/parser_test.go | 426 +++++++-------- internal/php7/php7.go | 297 +++++------ internal/php7/php7.y | 59 ++- pkg/ast/node.go | 41 +- pkg/ast/traverser/dfs.go | 20 +- pkg/ast/visitor/dumper.go | 13 +- pkg/ast/visitor/formatter.go | 20 +- pkg/ast/visitor/formatter_test.go | 47 +- pkg/ast/visitor/namespace_resolver_test.go | 1 - pkg/ast/visitor/printer.go | 11 +- pkg/ast/visitor/printer_test.go | 48 +- 14 files changed, 1092 insertions(+), 1017 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index a60a8fb..6ff6707 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -31770,7 +31770,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 36, }, FunctionTkn: &token.Token{ - ID: token.T_FUNCTION, + ID: token.T_FUNCTION, Value: []byte("function"), Position: &position.Position{ StartLine: 1, @@ -31780,7 +31780,7 @@ func TestExprClosure_Use(t *testing.T) { }, FreeFloating: []*token.Token{ { - ID: token.T_OPEN_TAG, + ID: token.T_OPEN_TAG, Value: []byte("= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7396,7 +7403,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4859 + // line internal/php5/php5.y:4866 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7407,7 +7414,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4875 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7418,13 +7425,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4880 + // line internal/php5/php5.y:4887 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4887 + // line internal/php5/php5.y:4894 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7436,7 +7443,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4897 + // line internal/php5/php5.y:4904 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7448,31 +7455,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4917 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4914 + // line internal/php5/php5.y:4921 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4918 + // line internal/php5/php5.y:4925 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4926 + // line internal/php5/php5.y:4933 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4937 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7484,13 +7491,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4940 + // line internal/php5/php5.y:4947 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4954 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7502,7 +7509,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4957 + // line internal/php5/php5.y:4964 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7514,13 +7521,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4967 + // line internal/php5/php5.y:4974 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4975 + // line internal/php5/php5.y:4982 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7533,7 +7540,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4986 + // line internal/php5/php5.y:4993 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7548,25 +7555,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5002 + // line internal/php5/php5.y:5009 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5006 + // line internal/php5/php5.y:5013 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5014 + // line internal/php5/php5.y:5021 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5018 + // line internal/php5/php5.y:5025 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7577,7 +7584,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5030 + // line internal/php5/php5.y:5037 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7591,7 +7598,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5042 + // line internal/php5/php5.y:5049 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7605,7 +7612,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5054 + // line internal/php5/php5.y:5061 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7616,7 +7623,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5066 + // line internal/php5/php5.y:5073 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7626,7 +7633,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5074 + // line internal/php5/php5.y:5081 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7637,7 +7644,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5086 + // line internal/php5/php5.y:5093 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7648,7 +7655,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5095 + // line internal/php5/php5.y:5102 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7657,7 +7664,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5105 + // line internal/php5/php5.y:5112 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7666,7 +7673,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5119 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7674,7 +7681,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5129 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7683,7 +7690,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5136 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7706,19 +7713,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5150 + // line internal/php5/php5.y:5157 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5158 + // line internal/php5/php5.y:5165 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5162 + // line internal/php5/php5.y:5169 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7729,7 +7736,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5174 + // line internal/php5/php5.y:5181 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7745,7 +7752,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5195 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7759,7 +7766,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5200 + // line internal/php5/php5.y:5207 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7774,7 +7781,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5213 + // line internal/php5/php5.y:5220 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7787,7 +7794,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5224 + // line internal/php5/php5.y:5231 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7807,7 +7814,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5242 + // line internal/php5/php5.y:5249 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7825,7 +7832,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5258 + // line internal/php5/php5.y:5265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7844,7 +7851,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5282 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7861,13 +7868,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5293 + // line internal/php5/php5.y:5300 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5297 + // line internal/php5/php5.y:5304 { yyVAL.list = append( yyDollar[1].list, @@ -7880,13 +7887,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5308 + // line internal/php5/php5.y:5315 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5312 + // line internal/php5/php5.y:5319 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7899,7 +7906,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5326 + // line internal/php5/php5.y:5333 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7912,7 +7919,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5337 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7931,7 +7938,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5354 + // line internal/php5/php5.y:5361 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7953,7 +7960,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5374 + // line internal/php5/php5.y:5381 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7967,7 +7974,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5393 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7985,7 +7992,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5402 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -8009,7 +8016,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5424 + // line internal/php5/php5.y:5431 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8020,7 +8027,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5436 + // line internal/php5/php5.y:5443 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8030,7 +8037,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5444 + // line internal/php5/php5.y:5451 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8049,7 +8056,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5461 + // line internal/php5/php5.y:5468 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8062,7 +8069,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5475 + // line internal/php5/php5.y:5482 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8075,7 +8082,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5486 + // line internal/php5/php5.y:5493 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8087,7 +8094,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5496 + // line internal/php5/php5.y:5503 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8099,7 +8106,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5513 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8109,7 +8116,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5514 + // line internal/php5/php5.y:5521 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8119,7 +8126,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5522 + // line internal/php5/php5.y:5529 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8131,7 +8138,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5532 + // line internal/php5/php5.y:5539 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8141,7 +8148,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5540 + // line internal/php5/php5.y:5547 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8151,7 +8158,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5551 + // line internal/php5/php5.y:5558 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8159,7 +8166,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5557 + // line internal/php5/php5.y:5564 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8168,19 +8175,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5567 + // line internal/php5/php5.y:5574 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5571 + // line internal/php5/php5.y:5578 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5578 + // line internal/php5/php5.y:5585 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8195,7 +8202,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5598 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8210,7 +8217,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5614 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8225,7 +8232,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5623 + // line internal/php5/php5.y:5630 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 7867d5c..50edcc3 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3367,36 +3367,38 @@ expr_without_variable: } | function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = &ast.ExprClosure{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $9), - FunctionTkn: $1, - AmpersandTkn: $2, - OpenParenthesisTkn: $3, - Params: $4.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, - CloseParenthesisTkn: $5, - ClosureUse: $6, - OpenCurlyBracketTkn: $7, - Stmts: $8, - CloseCurlyBracketTkn: $9, - } + closure := $6.(*ast.ExprClosure) + + closure.Position = yylex.(*Parser).builder.NewTokensPosition($1, $9) + closure.FunctionTkn = $1 + closure.AmpersandTkn = $2 + closure.OpenParenthesisTkn = $3 + closure.Params = $4.(*ast.ParserSeparatedList).Items + closure.SeparatorTkns = $4.(*ast.ParserSeparatedList).SeparatorTkns + closure.CloseParenthesisTkn = $5 + closure.OpenCurlyBracketTkn = $7 + closure.Stmts = $8 + closure.CloseCurlyBracketTkn = $9 + + $$ = closure } | T_STATIC function is_reference '(' parameter_list ')' lexical_vars '{' inner_statement_list '}' { - $$ = &ast.ExprClosure{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $10), - StaticTkn: $1, - FunctionTkn: $2, - AmpersandTkn: $3, - OpenParenthesisTkn: $4, - Params: $5.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, - CloseParenthesisTkn: $6, - ClosureUse: $7, - OpenCurlyBracketTkn: $8, - Stmts: $9, - CloseCurlyBracketTkn: $10, - } + closure := $7.(*ast.ExprClosure) + + closure.Position = yylex.(*Parser).builder.NewTokensPosition($1, $10) + closure.StaticTkn = $1 + closure.FunctionTkn = $2 + closure.AmpersandTkn = $3 + closure.OpenParenthesisTkn = $4 + closure.Params = $5.(*ast.ParserSeparatedList).Items + closure.SeparatorTkns = $5.(*ast.ParserSeparatedList).SeparatorTkns + closure.CloseParenthesisTkn = $6 + closure.OpenCurlyBracketTkn = $8 + closure.Stmts = $9 + closure.CloseCurlyBracketTkn = $10 + + $$ = closure } ; @@ -3520,17 +3522,16 @@ function: lexical_vars: /* empty */ { - $$ = nil + $$ = &ast.ExprClosure{} } | T_USE '(' lexical_var_list ')' { - $$ = &ast.ExprClosureUse{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - UseTkn: $1, - OpenParenthesisTkn: $2, - Uses: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, - CloseParenthesisTkn: $4, + $$ = &ast.ExprClosure{ + UseTkn: $1, + UseOpenParenthesisTkn: $2, + Use: $3.(*ast.ParserSeparatedList).Items, + UseSeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + UseCloseParenthesisTkn: $4, } } ; @@ -3538,12 +3539,15 @@ lexical_vars: lexical_var_list: lexical_var_list ',' T_VARIABLE { - variable := &ast.ExprVariable{ + variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition($3), - VarName: &ast.Identifier{ + Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($3), - IdentifierTkn: $3, - Value: $3.Value, + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition($3), + IdentifierTkn: $3, + Value: $3.Value, + }, }, } @@ -3554,7 +3558,7 @@ lexical_var_list: } | lexical_var_list ',' '&' T_VARIABLE { - reference := &ast.ExprReference{ + variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition($3, $4), AmpersandTkn: $3, Var: &ast.ExprVariable{ @@ -3568,43 +3572,46 @@ lexical_var_list: } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, reference) + $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, variable) $$ = $1 } | T_VARIABLE { - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{ - &ast.ExprVariable{ + variable := &ast.ExprClosureUse{ + Position: yylex.(*Parser).builder.NewTokenPosition($1), + Var: &ast.ExprVariable{ + Position: yylex.(*Parser).builder.NewTokenPosition($1), + VarName: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($1), - IdentifierTkn: $1, - Value: $1.Value, - }, + IdentifierTkn: $1, + Value: $1.Value, }, }, } + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ variable }, + } } | '&' T_VARIABLE { - $$ = &ast.ParserSeparatedList{ - Items: []ast.Vertex{ - &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), - AmpersandTkn: $1, - Var: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - IdentifierTkn: $2, - Value: $2.Value, - }, - }, + variable := &ast.ExprClosureUse{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), + AmpersandTkn: $1, + Var: &ast.ExprVariable{ + Position: yylex.(*Parser).builder.NewTokenPosition($2), + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition($2), + IdentifierTkn: $2, + Value: $2.Value, }, }, } + + $$ = &ast.ParserSeparatedList{ + Items: []ast.Vertex{ variable }, + } } ; diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 76706ed..c33bafd 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -36268,7 +36268,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 36, }, FunctionTkn: &token.Token{ - ID: token.T_FUNCTION, + ID: token.T_FUNCTION, Value: []byte("function"), Position: &position.Position{ StartLine: 1, @@ -36278,7 +36278,7 @@ func TestExprClosure_Use(t *testing.T) { }, FreeFloating: []*token.Token{ { - ID: token.T_OPEN_TAG, + ID: token.T_OPEN_TAG, Value: []byte(" 0 { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - n.ClosureUse.Accept(f) + n.UseTkn = f.newToken(token.T_USE, []byte("use")) + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.SeparatorTkns = f.formatList(n.Use, ',') + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) } n.ColonTkn = nil @@ -1189,10 +1196,11 @@ func (f *formatter) ExprClosure(n *ast.ExprClosure) { } func (f *formatter) ExprClosureUse(n *ast.ExprClosureUse) { - n.UseTkn = f.newToken(token.T_USE, []byte("use")) - n.OpenParenthesisTkn = f.newToken('(', []byte("(")) - n.SeparatorTkns = f.formatList(n.Uses, ',') - n.CloseParenthesisTkn = f.newToken(')', []byte(")")) + if n.AmpersandTkn != nil { + n.AmpersandTkn = f.newToken('&', []byte("&")) + } + + n.Var.Accept(f) } func (f *formatter) ExprConstFetch(n *ast.ExprConstFetch) { diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index ee8637b..b917aea 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -3714,9 +3714,9 @@ func TestFormatter_ExprClosure_Use(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprClosure{ - ClosureUse: &ast.ExprClosureUse{ - Uses: []ast.Vertex{ - &ast.ExprVariable{ + Use: []ast.Vertex{ + &ast.ExprClosureUse{ + Var: &ast.ExprVariable{ VarName: &ast.Identifier{ Value: []byte("$foo"), }, @@ -3748,16 +3748,9 @@ func TestFormatter_ExprClosureUse(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprClosureUse{ - Uses: []ast.Vertex{ - &ast.ExprVariable{ - VarName: &ast.Identifier{ - Value: []byte("$a"), - }, - }, - &ast.ExprVariable{ - VarName: &ast.Identifier{ - Value: []byte("$b"), - }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), }, }, } @@ -3768,7 +3761,33 @@ func TestFormatter_ExprClosureUse(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n.Accept(p) - expected := `use($a, $b)` + expected := `$a` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestFormatter_ExprClosureUse_Reference(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprClosureUse{ + AmpersandTkn: &token.Token{}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$a"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `&$a` actual := o.String() if expected != actual { diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index f42f11e..8a8bb14 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -562,7 +562,6 @@ func TestResolveClosureName(t *testing.T) { Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, }, }, - ClosureUse: nil, ReturnType: &ast.Nullable{Expr: nameBC}, Stmts: []ast.Vertex{}, } diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 255ffe9..8802a43 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -684,7 +684,10 @@ func (p *printer) ExprClosure(n *ast.ExprClosure) { p.printToken(n.OpenParenthesisTkn, []byte("(")) p.printSeparatedList(n.Params, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, []byte(")")) - p.printNode(n.ClosureUse) + p.printToken(n.UseTkn, p.ifNodeList(n.Use, []byte("use"))) + p.printToken(n.UseOpenParenthesisTkn, p.ifNodeList(n.Use, []byte("("))) + p.printSeparatedList(n.Use, n.UseSeparatorTkns, []byte(",")) + p.printToken(n.UseCloseParenthesisTkn, p.ifNodeList(n.Use, []byte(")"))) p.printToken(n.ColonTkn, p.ifNode(n.ReturnType, []byte(":"))) p.printNode(n.ReturnType) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) @@ -693,10 +696,8 @@ func (p *printer) ExprClosure(n *ast.ExprClosure) { } func (p *printer) ExprClosureUse(n *ast.ExprClosureUse) { - p.printToken(n.UseTkn, []byte("use")) - p.printToken(n.OpenParenthesisTkn, []byte("(")) - p.printSeparatedList(n.Uses, n.SeparatorTkns, []byte(",")) - p.printToken(n.CloseParenthesisTkn, []byte(")")) + p.printToken(n.AmpersandTkn, nil) + p.printNode(n.Var) } func (p *printer) ExprConstFetch(n *ast.ExprConstFetch) { diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index d918f0a..571f51e 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -1717,18 +1717,35 @@ func TestPrinterPrintExprClosureUse(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n := &ast.ExprClosureUse{ - Uses: []ast.Vertex{ - &ast.ExprReference{Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$foo")}, - }}, - &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$bar")}, - }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$foo")}, }, } n.Accept(p) - expected := `use(&$foo,$bar)` + expected := `$foo` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrinterPrintExprClosureUse_Reference(t *testing.T) { + o := bytes.NewBufferString("") + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprClosureUse{ + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$foo")}, + }, + } + n.Accept(p) + + expected := `&$foo` actual := o.String() if expected != actual { @@ -1754,12 +1771,17 @@ func TestPrinterPrintExprClosure(t *testing.T) { }, }, }, - ClosureUse: &ast.ExprClosureUse{ - Uses: []ast.Vertex{ - &ast.ExprReference{Var: &ast.ExprVariable{ + Use: []ast.Vertex{ + &ast.ExprClosureUse{ + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, - }}, - &ast.ExprVariable{ + }, + }, + &ast.ExprClosureUse{ + Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$b")}, }, }, From 8bf1fa822dd9bb3d91ead43ec08e506285f8168b Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 26 Dec 2020 19:38:45 +0200 Subject: [PATCH 122/140] refactoring: update ast structure of "Foreach" node --- internal/php5/parser_test.go | 461 ++---------- internal/php5/php5.go | 1125 +++++++++++++++-------------- internal/php5/php5.y | 81 ++- internal/php7/parser_test.go | 461 ++---------- internal/php7/php7.go | 742 +++++++++---------- internal/php7/php7.y | 50 +- pkg/ast/node.go | 1 + pkg/ast/visitor/dumper.go | 1 + pkg/ast/visitor/formatter.go | 3 + pkg/ast/visitor/formatter_test.go | 38 + pkg/ast/visitor/printer.go | 1 + pkg/ast/visitor/printer_test.go | 33 + 12 files changed, 1263 insertions(+), 1734 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 6ff6707..10e9084 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -15045,61 +15045,53 @@ func TestStmtForeach_WithRef(t *testing.T) { }, }, }, - Var: &ast.ExprReference{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 27, + EndPos: 25, }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 24, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, }, }, }, - Var: &ast.ExprVariable{ + }, + Var: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$v"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - }, - Value: []byte("$v"), }, + Value: []byte("$v"), }, }, CloseParenthesisTkn: &token.Token{ @@ -31770,7 +31762,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 36, }, FunctionTkn: &token.Token{ - ID: token.T_FUNCTION, + ID: token.T_FUNCTION, Value: []byte("function"), Position: &position.Position{ StartLine: 1, @@ -31780,7 +31772,7 @@ func TestExprClosure_Use(t *testing.T) { }, FreeFloating: []*token.Token{ { - ID: token.T_OPEN_TAG, + ID: token.T_OPEN_TAG, Value: []byte(" &$v) {}` - - expected := &ast.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - Stmts: []ast.Vertex{ - &ast.StmtForeach{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - ForeachTkn: &token.Token{ - ID: token.T_FOREACH, - Value: []byte("foreach"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_OPEN_TAG, - Value: []byte(""), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 21, - EndPos: 23, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 20, - EndPos: 21, - }, - }, - }, - }, - Var: &ast.ExprReference{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 27, - }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 24, - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - VarName: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$v"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - }, - Value: []byte("$v"), - }, - }, - }, - CloseParenthesisTkn: &token.Token{ - ID: token.ID(41), - Value: []byte(")"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, - }, - Stmt: &ast.StmtStmtList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 31, - }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 31, - }, - }, - }, - }, - }, - EndTkn: &token.Token{}, - } - - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) - php5parser.Parse() - actual := php5parser.GetRootNode() - assert.DeepEqual(t, expected, actual) -} - func TestExprShellExec(t *testing.T) { src := "= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7403,7 +7428,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4866 + // line internal/php5/php5.y:4891 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7414,7 +7439,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4875 + // line internal/php5/php5.y:4900 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7425,13 +7450,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4887 + // line internal/php5/php5.y:4912 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4894 + // line internal/php5/php5.y:4919 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7443,7 +7468,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4904 + // line internal/php5/php5.y:4929 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7455,31 +7480,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4942 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4921 + // line internal/php5/php5.y:4946 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4925 + // line internal/php5/php5.y:4950 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4933 + // line internal/php5/php5.y:4958 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4937 + // line internal/php5/php5.y:4962 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7491,13 +7516,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4972 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4954 + // line internal/php5/php5.y:4979 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7509,7 +7534,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4964 + // line internal/php5/php5.y:4989 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7521,13 +7546,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4974 + // line internal/php5/php5.y:4999 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4982 + // line internal/php5/php5.y:5007 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7540,7 +7565,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4993 + // line internal/php5/php5.y:5018 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7555,25 +7580,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5009 + // line internal/php5/php5.y:5034 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5013 + // line internal/php5/php5.y:5038 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5021 + // line internal/php5/php5.y:5046 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5025 + // line internal/php5/php5.y:5050 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7584,7 +7609,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5037 + // line internal/php5/php5.y:5062 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7598,7 +7623,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5049 + // line internal/php5/php5.y:5074 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7612,7 +7637,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5061 + // line internal/php5/php5.y:5086 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7623,7 +7648,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5073 + // line internal/php5/php5.y:5098 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7633,7 +7658,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5081 + // line internal/php5/php5.y:5106 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7644,7 +7669,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5093 + // line internal/php5/php5.y:5118 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7655,7 +7680,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5102 + // line internal/php5/php5.y:5127 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7664,7 +7689,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5137 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7673,7 +7698,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5119 + // line internal/php5/php5.y:5144 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7681,7 +7706,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5129 + // line internal/php5/php5.y:5154 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7690,7 +7715,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5136 + // line internal/php5/php5.y:5161 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7713,19 +7738,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5157 + // line internal/php5/php5.y:5182 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5165 + // line internal/php5/php5.y:5190 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5169 + // line internal/php5/php5.y:5194 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7736,7 +7761,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5181 + // line internal/php5/php5.y:5206 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7752,7 +7777,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5195 + // line internal/php5/php5.y:5220 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7766,7 +7791,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5207 + // line internal/php5/php5.y:5232 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7781,7 +7806,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5220 + // line internal/php5/php5.y:5245 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7794,7 +7819,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5231 + // line internal/php5/php5.y:5256 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7814,7 +7839,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5249 + // line internal/php5/php5.y:5274 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7832,7 +7857,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5265 + // line internal/php5/php5.y:5290 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7851,7 +7876,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5282 + // line internal/php5/php5.y:5307 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7868,13 +7893,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5300 + // line internal/php5/php5.y:5325 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5304 + // line internal/php5/php5.y:5329 { yyVAL.list = append( yyDollar[1].list, @@ -7887,13 +7912,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5315 + // line internal/php5/php5.y:5340 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5319 + // line internal/php5/php5.y:5344 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7906,7 +7931,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5333 + // line internal/php5/php5.y:5358 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7919,7 +7944,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5369 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7938,7 +7963,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5361 + // line internal/php5/php5.y:5386 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7960,7 +7985,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5381 + // line internal/php5/php5.y:5406 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7974,7 +7999,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5393 + // line internal/php5/php5.y:5418 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7992,7 +8017,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5409 + // line internal/php5/php5.y:5434 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -8016,7 +8041,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5431 + // line internal/php5/php5.y:5456 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8027,7 +8052,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5443 + // line internal/php5/php5.y:5468 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8037,7 +8062,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5451 + // line internal/php5/php5.y:5476 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8056,7 +8081,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5468 + // line internal/php5/php5.y:5493 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8069,7 +8094,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5482 + // line internal/php5/php5.y:5507 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8082,7 +8107,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5493 + // line internal/php5/php5.y:5518 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8094,7 +8119,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5503 + // line internal/php5/php5.y:5528 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8106,7 +8131,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5513 + // line internal/php5/php5.y:5538 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8116,7 +8141,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5521 + // line internal/php5/php5.y:5546 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8126,7 +8151,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5529 + // line internal/php5/php5.y:5554 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8138,7 +8163,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5539 + // line internal/php5/php5.y:5564 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8148,7 +8173,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5547 + // line internal/php5/php5.y:5572 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8158,7 +8183,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5558 + // line internal/php5/php5.y:5583 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8166,7 +8191,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5564 + // line internal/php5/php5.y:5589 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8175,19 +8200,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5574 + // line internal/php5/php5.y:5599 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5578 + // line internal/php5/php5.y:5603 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5585 + // line internal/php5/php5.y:5610 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8202,7 +8227,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5598 + // line internal/php5/php5.y:5623 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8217,7 +8242,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5614 + // line internal/php5/php5.y:5639 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8232,7 +8257,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5630 + // line internal/php5/php5.y:5655 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 50edcc3..6b33687 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -5,6 +5,7 @@ import ( "strconv" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/token" ) @@ -983,39 +984,63 @@ unticked_statement: } | T_FOREACH '(' variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { - $8.(*ast.StmtForeach).ForeachTkn = $1 - $8.(*ast.StmtForeach).OpenParenthesisTkn = $2 - $8.(*ast.StmtForeach).Expr = $3 - $8.(*ast.StmtForeach).AsTkn = $4 - if $6 == nil { - $8.(*ast.StmtForeach).Var = $5 - } else { - $8.(*ast.StmtForeach).Key = $5 - $8.(*ast.StmtForeach).DoubleArrowTkn = $6.(*ast.StmtForeach).DoubleArrowTkn - $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var - } - $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) + foreach := $8.(*ast.StmtForeach) - $$ = $8 + foreach.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) + foreach.ForeachTkn = $1 + foreach.OpenParenthesisTkn = $2 + foreach.Expr = $3 + foreach.AsTkn = $4 + foreach.Var = $5 + foreach.CloseParenthesisTkn = $7 + + if $6 != nil { + foreach.Key = foreach.Var + foreach.DoubleArrowTkn = $6.(*ast.StmtForeach).DoubleArrowTkn + foreach.Var = $6.(*ast.StmtForeach).Var + } + + if val, ok := foreach.Key.(*ast.ExprReference); ok { + yylex.(*Parser).errHandlerFunc(errors.NewError("Key element cannot be a reference", val.AmpersandTkn.Position)) + foreach.Key = val.Var + } + + if val, ok := foreach.Var.(*ast.ExprReference); ok { + foreach.AmpersandTkn = val.AmpersandTkn + foreach.Var = val.Var + } + + $$ = foreach } | T_FOREACH '(' expr_without_variable T_AS foreach_variable foreach_optional_arg ')' foreach_statement { - $8.(*ast.StmtForeach).ForeachTkn = $1 - $8.(*ast.StmtForeach).OpenParenthesisTkn = $2 - $8.(*ast.StmtForeach).Expr = $3 - $8.(*ast.StmtForeach).AsTkn = $4 - if $6 == nil { - $8.(*ast.StmtForeach).Var = $5 - } else { - $8.(*ast.StmtForeach).Key = $5 - $8.(*ast.StmtForeach).DoubleArrowTkn = $6.(*ast.StmtForeach).DoubleArrowTkn - $8.(*ast.StmtForeach).Var = $6.(*ast.StmtForeach).Var - } - $8.(*ast.StmtForeach).CloseParenthesisTkn = $7 - $8.(*ast.StmtForeach).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) + foreach := $8.(*ast.StmtForeach) - $$ = $8 + foreach.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $8) + foreach.ForeachTkn = $1 + foreach.OpenParenthesisTkn = $2 + foreach.Expr = $3 + foreach.AsTkn = $4 + foreach.Var = $5 + foreach.CloseParenthesisTkn = $7 + + if $6 != nil { + foreach.Key = foreach.Var + foreach.DoubleArrowTkn = $6.(*ast.StmtForeach).DoubleArrowTkn + foreach.Var = $6.(*ast.StmtForeach).Var + } + + if val, ok := foreach.Key.(*ast.ExprReference); ok { + yylex.(*Parser).errHandlerFunc(errors.NewError("Key element cannot be a reference", val.AmpersandTkn.Position)) + foreach.Key = val.Var + } + + if val, ok := foreach.Var.(*ast.ExprReference); ok { + foreach.AmpersandTkn = val.AmpersandTkn + foreach.Var = val.Var + } + + $$ = foreach } | T_DECLARE '(' declare_list ')' declare_statement { diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index c33bafd..eb10949 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -16524,61 +16524,53 @@ func TestStmtForeach_WithRef(t *testing.T) { }, }, }, - Var: &ast.ExprReference{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 27, + EndPos: 25, }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 24, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 24, }, }, }, - Var: &ast.ExprVariable{ + }, + Var: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 27, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$v"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 27, }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$v"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - }, - Value: []byte("$v"), }, + Value: []byte("$v"), }, }, CloseParenthesisTkn: &token.Token{ @@ -36268,7 +36260,7 @@ func TestExprClosure_Use(t *testing.T) { EndPos: 36, }, FunctionTkn: &token.Token{ - ID: token.T_FUNCTION, + ID: token.T_FUNCTION, Value: []byte("function"), Position: &position.Position{ StartLine: 1, @@ -36278,7 +36270,7 @@ func TestExprClosure_Use(t *testing.T) { }, FreeFloating: []*token.Token{ { - ID: token.T_OPEN_TAG, + ID: token.T_OPEN_TAG, Value: []byte(" &$v) {}` - - expected := &ast.Root{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - Stmts: []ast.Vertex{ - &ast.StmtForeach{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 31, - }, - ForeachTkn: &token.Token{ - ID: token.T_FOREACH, - Value: []byte("foreach"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 3, - EndPos: 10, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_OPEN_TAG, - Value: []byte(""), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 21, - EndPos: 23, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 20, - EndPos: 21, - }, - }, - }, - }, - Var: &ast.ExprReference{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 27, - }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 24, - }, - }, - }, - }, - Var: &ast.ExprVariable{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - VarName: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$v"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 27, - }, - }, - Value: []byte("$v"), - }, - }, - }, - CloseParenthesisTkn: &token.Token{ - ID: token.ID(41), - Value: []byte(")"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 28, - }, - }, - Stmt: &ast.StmtStmtList{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 31, - }, - OpenCurlyBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - }, - }, - }, - Stmts: []ast.Vertex{}, - CloseCurlyBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 31, - }, - }, - }, - }, - }, - EndTkn: &token.Token{}, - } - - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) - php7parser.Parse() - actual := php7parser.GetRootNode() - assert.DeepEqual(t, expected, actual) -} - func TestExprShellExec(t *testing.T) { src := ""))) + p.printToken(n.AmpersandTkn, nil) p.printNode(n.Var) p.printToken(n.CloseParenthesisTkn, []byte(")")) p.printToken(n.ColonTkn, nil) diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 571f51e..8671134 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -3799,6 +3799,39 @@ func TestPrinterPrintStmtForeach(t *testing.T) { } } +func TestPrinterPrintStmtForeach_Reference(t *testing.T) { + o := bytes.NewBufferString("") + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtForeach{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$a")}, + }, + Key: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$k")}, + }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$v")}, + }, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtNop{}, + }, + }, + } + n.Accept(p) + + expected := `foreach($a as$k=>&$v){;}` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestPrinterPrintStmtFunction(t *testing.T) { o := bytes.NewBufferString("") From 0f5f5e7dc7980e0466c1dffada468c91756ff688 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 26 Dec 2020 20:13:50 +0200 Subject: [PATCH 123/140] refactoring: update ast structure of "ArrayItem" node --- internal/php5/parser_test.go | 120 ++++++++++++++------------------ internal/php5/php5.go | 100 ++++++++++++-------------- internal/php5/php5.y | 36 ++++------ internal/php7/parser_test.go | 120 ++++++++++++++------------------ internal/php7/php7.go | 76 ++++++++++---------- internal/php7/php7.y | 18 ++--- pkg/ast/node.go | 1 + pkg/ast/visitor/dumper.go | 1 + pkg/ast/visitor/printer.go | 1 + pkg/ast/visitor/printer_test.go | 26 ++++++- 10 files changed, 228 insertions(+), 271 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 10e9084..eeca77d 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -30786,61 +30786,53 @@ func TestExprArray_Items(t *testing.T) { StartPos: 15, EndPos: 18, }, - Val: &ast.ExprReference{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, - EndPos: 18, + EndPos: 16, }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 16, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 14, - EndPos: 15, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, }, }, }, - Var: &ast.ExprVariable{ + }, + Val: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 18, }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$b"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 18, - }, - }, - Value: []byte("$b"), }, + Value: []byte("$b"), }, }, }, @@ -39025,61 +39017,53 @@ func TestExprShortArray_Items(t *testing.T) { StartPos: 10, EndPos: 13, }, - Val: &ast.ExprReference{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 10, - EndPos: 13, + EndPos: 11, }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 11, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 10, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, }, }, }, - Var: &ast.ExprVariable{ + }, + Val: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$b"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 13, - }, - }, - Value: []byte("$b"), }, + Value: []byte("$b"), }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 7fbb547..392b113 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5669 +// line internal/php5/php5.y:5657 // line yacctab:1 var yyExca = [...]int{ @@ -7825,11 +7825,8 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), Key: yyDollar[3].node, DoubleArrowTkn: yyDollar[4].token, - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[5].token, yyDollar[6].node), - AmpersandTkn: yyDollar[5].token, - Var: yyDollar[6].node, - }, + AmpersandTkn: yyDollar[5].token, + Val: yyDollar[6].node, } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7839,15 +7836,12 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5274 + // line internal/php5/php5.y:5271 { arrayItem := &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - AmpersandTkn: yyDollar[3].token, - Var: yyDollar[4].node, - }, + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), + AmpersandTkn: yyDollar[3].token, + Val: yyDollar[4].node, } yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7857,7 +7851,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5290 + // line internal/php5/php5.y:5284 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7865,41 +7859,35 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - AmpersandTkn: yyDollar[3].token, - Var: yyDollar[4].node, - }, + AmpersandTkn: yyDollar[3].token, + Val: yyDollar[4].node, }, }, } } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5298 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - AmpersandTkn: yyDollar[1].token, - Var: yyDollar[2].node, - }, + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + AmpersandTkn: yyDollar[1].token, + Val: yyDollar[2].node, }, }, } } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5325 + // line internal/php5/php5.y:5313 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5329 + // line internal/php5/php5.y:5317 { yyVAL.list = append( yyDollar[1].list, @@ -7912,13 +7900,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5340 + // line internal/php5/php5.y:5328 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5332 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7931,7 +7919,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5358 + // line internal/php5/php5.y:5346 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7944,7 +7932,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5369 + // line internal/php5/php5.y:5357 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7963,7 +7951,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5386 + // line internal/php5/php5.y:5374 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7985,7 +7973,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5406 + // line internal/php5/php5.y:5394 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7999,7 +7987,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5418 + // line internal/php5/php5.y:5406 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8017,7 +8005,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5434 + // line internal/php5/php5.y:5422 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -8041,7 +8029,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5456 + // line internal/php5/php5.y:5444 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8052,7 +8040,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5468 + // line internal/php5/php5.y:5456 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8062,7 +8050,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5476 + // line internal/php5/php5.y:5464 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8081,7 +8069,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5493 + // line internal/php5/php5.y:5481 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8094,7 +8082,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5507 + // line internal/php5/php5.y:5495 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8107,7 +8095,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5518 + // line internal/php5/php5.y:5506 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8119,7 +8107,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5528 + // line internal/php5/php5.y:5516 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8131,7 +8119,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5538 + // line internal/php5/php5.y:5526 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8141,7 +8129,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5534 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8151,7 +8139,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5554 + // line internal/php5/php5.y:5542 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8163,7 +8151,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5564 + // line internal/php5/php5.y:5552 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8173,7 +8161,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5572 + // line internal/php5/php5.y:5560 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8183,7 +8171,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5583 + // line internal/php5/php5.y:5571 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8191,7 +8179,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5589 + // line internal/php5/php5.y:5577 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8200,19 +8188,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5599 + // line internal/php5/php5.y:5587 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5603 + // line internal/php5/php5.y:5591 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5610 + // line internal/php5/php5.y:5598 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8227,7 +8215,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5623 + // line internal/php5/php5.y:5611 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8242,7 +8230,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5639 + // line internal/php5/php5.y:5627 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8257,7 +8245,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5655 + // line internal/php5/php5.y:5643 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 6b33687..a1bb134 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -5255,14 +5255,11 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewNodesPosition($3, $6), + Position: yylex.(*Parser).builder.NewNodesPosition($3, $6), Key: $3, DoubleArrowTkn: $4, - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($5, $6), - AmpersandTkn: $5, - Var: $6, - }, + AmpersandTkn: $5, + Val: $6, } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) @@ -5273,12 +5270,9 @@ non_empty_array_pair_list: | non_empty_array_pair_list ',' '&' w_variable { arrayItem := &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), - AmpersandTkn: $3, - Var: $4, - }, + Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), + AmpersandTkn: $3, + Val: $4, } $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) @@ -5291,14 +5285,11 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), - AmpersandTkn: $3, - Var: $4, - }, + AmpersandTkn: $3, + Val: $4, }, }, } @@ -5308,12 +5299,9 @@ non_empty_array_pair_list: $$ = &ast.ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - AmpersandTkn: $1, - Var: $2, - }, + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), + AmpersandTkn: $1, + Val: $2, }, }, } diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index eb10949..cd532ff 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -34718,61 +34718,53 @@ func TestExprArray_Items(t *testing.T) { StartPos: 15, EndPos: 18, }, - Val: &ast.ExprReference{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, - EndPos: 18, + EndPos: 16, }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 16, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 14, - EndPos: 15, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, }, }, }, - Var: &ast.ExprVariable{ + }, + Val: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 18, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 18, }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$b"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 18, - }, - }, - Value: []byte("$b"), }, + Value: []byte("$b"), }, }, }, @@ -43983,61 +43975,53 @@ func TestExprShortArray_Items(t *testing.T) { StartPos: 10, EndPos: 13, }, - Val: &ast.ExprReference{ + AmpersandTkn: &token.Token{ + ID: token.ID(38), + Value: []byte("&"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 10, - EndPos: 13, + EndPos: 11, }, - AmpersandTkn: &token.Token{ - ID: token.ID(38), - Value: []byte("&"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 10, - EndPos: 11, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 9, - EndPos: 10, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 9, + EndPos: 10, }, }, }, - Var: &ast.ExprVariable{ + }, + Val: &ast.ExprVariable{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 11, + EndPos: 13, + }, + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_VARIABLE, + Value: []byte("$b"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 13, }, - IdentifierTkn: &token.Token{ - ID: token.T_VARIABLE, - Value: []byte("$b"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 13, - }, - }, - Value: []byte("$b"), }, + Value: []byte("$b"), }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 85bc391..2e0135b 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4359 +// line internal/php7/php7.y:4353 // line yacctab:1 var yyExca = [...]int{ @@ -6677,29 +6677,23 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Key: yyDollar[1].node, DoubleArrowTkn: yyDollar[2].token, - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), - AmpersandTkn: yyDollar[3].token, - Var: yyDollar[4].node, - }, + AmpersandTkn: yyDollar[3].token, + Val: yyDollar[4].node, } } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4008 + // line internal/php7/php7.y:4005 { yyVAL.node = &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - AmpersandTkn: yyDollar[1].token, - Var: yyDollar[2].node, - }, + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + AmpersandTkn: yyDollar[1].token, + Val: yyDollar[2].node, } } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4019 + // line internal/php7/php7.y:4013 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6709,7 +6703,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4027 + // line internal/php7/php7.y:4021 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6727,7 +6721,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4043 + // line internal/php7/php7.y:4037 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6743,13 +6737,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4060 + // line internal/php7/php7.y:4054 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4064 + // line internal/php7/php7.y:4058 { yyVAL.list = append( yyDollar[1].list, @@ -6762,13 +6756,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4069 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4079 + // line internal/php7/php7.y:4073 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6781,7 +6775,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4093 + // line internal/php7/php7.y:4087 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6794,7 +6788,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4104 + // line internal/php7/php7.y:4098 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6813,7 +6807,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4121 + // line internal/php7/php7.y:4115 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6835,7 +6829,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4141 + // line internal/php7/php7.y:4135 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6849,7 +6843,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4153 + // line internal/php7/php7.y:4147 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6867,7 +6861,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4169 + // line internal/php7/php7.y:4163 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -6891,7 +6885,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4191 + // line internal/php7/php7.y:4185 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6902,7 +6896,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4203 + // line internal/php7/php7.y:4197 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6912,7 +6906,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4211 + // line internal/php7/php7.y:4205 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6931,7 +6925,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4228 + // line internal/php7/php7.y:4222 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6957,7 +6951,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4252 + // line internal/php7/php7.y:4246 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6970,7 +6964,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4266 + // line internal/php7/php7.y:4260 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -6987,7 +6981,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4275 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6999,7 +6993,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4291 + // line internal/php7/php7.y:4285 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7009,7 +7003,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4299 + // line internal/php7/php7.y:4293 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7019,7 +7013,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4307 + // line internal/php7/php7.y:4301 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7031,7 +7025,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4317 + // line internal/php7/php7.y:4311 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7041,7 +7035,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4325 + // line internal/php7/php7.y:4319 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7051,7 +7045,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4330 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7059,7 +7053,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4342 + // line internal/php7/php7.y:4336 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7068,7 +7062,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4352 + // line internal/php7/php7.y:4346 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index f85ad45..3e7e479 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3994,25 +3994,19 @@ array_pair: | expr T_DOUBLE_ARROW '&' variable { $$ = &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), + Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Key: $1, DoubleArrowTkn: $2, - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $4), - AmpersandTkn: $3, - Var: $4, - }, + AmpersandTkn: $3, + Val: $4, } } | '&' variable { $$ = &ast.ExprArrayItem{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - Val: &ast.ExprReference{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - AmpersandTkn: $1, - Var: $2, - }, + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), + AmpersandTkn: $1, + Val: $2, } } | T_ELLIPSIS expr diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 8a020b6..62d26a5 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1177,6 +1177,7 @@ type ExprArrayItem struct { EllipsisTkn *token.Token Key Vertex DoubleArrowTkn *token.Token + AmpersandTkn *token.Token Val Vertex } diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index dfb5a64..598ab1f 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1056,6 +1056,7 @@ func (v *Dumper) ExprArrayItem(n *ast.ExprArrayItem) { v.dumpToken("EllipsisTkn", n.EllipsisTkn) v.dumpVertex("Key", n.Key) v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn) + v.dumpToken("AmpersandTkn", n.AmpersandTkn) v.dumpVertex("Val", n.Val) v.indent-- diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index ff0fac5..479c98c 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -641,6 +641,7 @@ func (p *printer) ExprArrayItem(n *ast.ExprArrayItem) { p.printToken(n.EllipsisTkn, nil) p.printNode(n.Key) p.printToken(n.DoubleArrowTkn, p.ifNode(n.Key, []byte("=>"))) + p.printToken(n.AmpersandTkn, nil) p.printNode(n.Val) } diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 8671134..187c173 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -1559,9 +1559,31 @@ func TestPrinterPrintExprArrayItem(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n := &ast.ExprArrayItem{ - Val: &ast.ExprReference{Var: &ast.ExprVariable{ + Val: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$world")}, - }}, + }, + } + n.Accept(p) + + expected := `$world` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrinterPrintExprArrayItem_Reference(t *testing.T) { + o := bytes.NewBufferString("") + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprArrayItem{ + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Val: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$world")}, + }, } n.Accept(p) From a593760569778bbd0a4f091e80288f78fd57bc98 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 26 Dec 2020 22:38:35 +0200 Subject: [PATCH 124/140] refactoring: remove ExprReference node --- internal/php5/php5.go | 10 ++--- internal/php5/php5.y | 10 ++--- internal/php7/php7.go | 6 +-- internal/php7/php7.y | 6 +-- pkg/ast/ast.go | 1 - pkg/ast/node.go | 15 ------- pkg/ast/traverser/dfs.go | 12 ----- pkg/ast/visitor/dumper.go | 12 ----- pkg/ast/visitor/formatter.go | 5 --- pkg/ast/visitor/formatter_test.go | 25 ----------- pkg/ast/visitor/null.go | 4 -- pkg/ast/visitor/printer.go | 5 --- pkg/ast/visitor/printer_test.go | 75 ++++++++++++++++++++----------- 13 files changed, 65 insertions(+), 121 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 392b113..f002d93 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -3141,12 +3141,12 @@ yydefault: foreach.Var = yyDollar[6].node.(*ast.StmtForeach).Var } - if val, ok := foreach.Key.(*ast.ExprReference); ok { + if val, ok := foreach.Key.(*ast.StmtForeach); ok { yylex.(*Parser).errHandlerFunc(errors.NewError("Key element cannot be a reference", val.AmpersandTkn.Position)) foreach.Key = val.Var } - if val, ok := foreach.Var.(*ast.ExprReference); ok { + if val, ok := foreach.Var.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -3173,12 +3173,12 @@ yydefault: foreach.Var = yyDollar[6].node.(*ast.StmtForeach).Var } - if val, ok := foreach.Key.(*ast.ExprReference); ok { + if val, ok := foreach.Key.(*ast.StmtForeach); ok { yylex.(*Parser).errHandlerFunc(errors.NewError("Key element cannot be a reference", val.AmpersandTkn.Position)) foreach.Key = val.Var } - if val, ok := foreach.Var.(*ast.ExprReference); ok { + if val, ok := foreach.Var.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -3627,7 +3627,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:1464 { - yyVAL.node = &ast.ExprReference{ + yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, diff --git a/internal/php5/php5.y b/internal/php5/php5.y index a1bb134..6cfbe62 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1000,12 +1000,12 @@ unticked_statement: foreach.Var = $6.(*ast.StmtForeach).Var } - if val, ok := foreach.Key.(*ast.ExprReference); ok { + if val, ok := foreach.Key.(*ast.StmtForeach); ok { yylex.(*Parser).errHandlerFunc(errors.NewError("Key element cannot be a reference", val.AmpersandTkn.Position)) foreach.Key = val.Var } - if val, ok := foreach.Var.(*ast.ExprReference); ok { + if val, ok := foreach.Var.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -1030,12 +1030,12 @@ unticked_statement: foreach.Var = $6.(*ast.StmtForeach).Var } - if val, ok := foreach.Key.(*ast.ExprReference); ok { + if val, ok := foreach.Key.(*ast.StmtForeach); ok { yylex.(*Parser).errHandlerFunc(errors.NewError("Key element cannot be a reference", val.AmpersandTkn.Position)) foreach.Key = val.Var } - if val, ok := foreach.Var.(*ast.ExprReference); ok { + if val, ok := foreach.Var.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -1462,7 +1462,7 @@ foreach_variable: } | '&' variable { - $$ = &ast.ExprReference{ + $$ = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 2e0135b..6492224 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -3319,7 +3319,7 @@ yydefault: foreach.Var = yyDollar[5].node foreach.CloseParenthesisTkn = yyDollar[6].token - if val, ok := yyDollar[5].node.(*ast.ExprReference); ok { + if val, ok := yyDollar[5].node.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -3342,7 +3342,7 @@ yydefault: foreach.Var = yyDollar[7].node foreach.CloseParenthesisTkn = yyDollar[8].token - if val, ok := yyDollar[7].node.(*ast.ExprReference); ok { + if val, ok := yyDollar[7].node.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -3731,7 +3731,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:1361 { - yyVAL.node = &ast.ExprReference{ + yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), AmpersandTkn: yyDollar[1].token, Var: yyDollar[2].node, diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 3e7e479..9a2cc31 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -972,7 +972,7 @@ statement: foreach.Var = $5 foreach.CloseParenthesisTkn = $6 - if val, ok := $5.(*ast.ExprReference); ok { + if val, ok := $5.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -993,7 +993,7 @@ statement: foreach.Var = $7 foreach.CloseParenthesisTkn = $8 - if val, ok := $7.(*ast.ExprReference); ok { + if val, ok := $7.(*ast.StmtForeach); ok { foreach.AmpersandTkn = val.AmpersandTkn foreach.Var = val.Var } @@ -1359,7 +1359,7 @@ foreach_variable: } | '&' variable { - $$ = &ast.ExprReference{ + $$ = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), AmpersandTkn: $1, Var: $2, diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 0cdb4b0..5c5494a 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -107,7 +107,6 @@ type NodeVisitor interface { ExprPreInc(n *ExprPreInc) ExprPrint(n *ExprPrint) ExprPropertyFetch(n *ExprPropertyFetch) - ExprReference(n *ExprReference) ExprRequire(n *ExprRequire) ExprRequireOnce(n *ExprRequireOnce) ExprShellExec(n *ExprShellExec) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 62d26a5..bdc0b75 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1629,21 +1629,6 @@ func (n *ExprPropertyFetch) GetPosition() *position.Position { return n.Position } -// ExprReference node -type ExprReference struct { - Position *position.Position - AmpersandTkn *token.Token - Var Vertex -} - -func (n *ExprReference) Accept(v NodeVisitor) { - v.ExprReference(n) -} - -func (n *ExprReference) GetPosition() *position.Position { - return n.Position -} - // ExprRequire node type ExprRequire struct { Position *position.Position diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 5c8f792..7538f71 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1451,18 +1451,6 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Property) t.visitor.Leave("Property", true) } - case *ast.ExprReference: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } case *ast.ExprRequire: if nn == nil { return diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 598ab1f..bb54652 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1425,18 +1425,6 @@ func (v *Dumper) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.print(v.indent, "},\n") } -func (v *Dumper) ExprReference(n *ast.ExprReference) { - v.print(0, "&ast.ExprReference{\n") - v.indent++ - - v.dumpPosition(n.Position) - v.dumpToken("AmpersandTkn", n.AmpersandTkn) - v.dumpVertex("Var", n.Var) - - v.indent-- - v.print(v.indent, "},\n") -} - func (v *Dumper) ExprRequire(n *ast.ExprRequire) { v.print(0, "&ast.ExprRequire{\n") v.indent++ diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index e4b5f97..93c3046 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1349,11 +1349,6 @@ func (f *formatter) ExprPropertyFetch(n *ast.ExprPropertyFetch) { n.Property.Accept(f) } -func (f *formatter) ExprReference(n *ast.ExprReference) { - n.AmpersandTkn = f.newToken('&', []byte("&")) - n.Var.Accept(f) -} - func (f *formatter) ExprRequire(n *ast.ExprRequire) { n.RequireTkn = f.newToken(token.T_REQUIRE, []byte("require")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index 9723e46..d99fbfa 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -4483,31 +4483,6 @@ func TestFormatter_ExprPropertyFetch(t *testing.T) { } } -func TestFormatter_ExprReference(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.ExprReference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ - Value: []byte("$foo"), - }, - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `&$foo` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestFormatter_ExprRequire(t *testing.T) { o := bytes.NewBufferString("") diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index cef3d73..6623a75 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -362,10 +362,6 @@ func (v *Null) ExprPropertyFetch(_ *ast.ExprPropertyFetch) { // do nothing } -func (v *Null) ExprReference(_ *ast.ExprReference) { - // do nothing -} - func (v *Null) ExprRequire(_ *ast.ExprRequire) { // do nothing } diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 479c98c..eb96c0e 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -817,11 +817,6 @@ func (p *printer) ExprPropertyFetch(n *ast.ExprPropertyFetch) { p.printNode(n.Property) } -func (p *printer) ExprReference(n *ast.ExprReference) { - p.printToken(n.AmpersandTkn, []byte("&")) - p.printNode(n.Var) -} - func (p *printer) ExprRequire(n *ast.ExprRequire) { p.printToken(n.RequireTkn, []byte("require")) p.printNode(n.Expr) diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 187c173..44764bb 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -1634,9 +1634,12 @@ func TestPrinterPrintExprArray(t *testing.T) { }, &ast.ExprArrayItem{ Key: &ast.ScalarLnumber{Value: []byte("2")}, - Val: &ast.ExprReference{Var: &ast.ExprVariable{ + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Val: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, - }}, + }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ @@ -2323,25 +2326,6 @@ func TestPrinterPrintPropertyFetch(t *testing.T) { } } -func TestPrinterPrintExprReference(t *testing.T) { - o := bytes.NewBufferString("") - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n := &ast.ExprReference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$foo")}, - }, - } - n.Accept(p) - - expected := `&$foo` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestPrinterPrintRequire(t *testing.T) { o := bytes.NewBufferString("") @@ -2413,9 +2397,12 @@ func TestPrinterPrintExprShortArray(t *testing.T) { }, &ast.ExprArrayItem{ Key: &ast.ScalarLnumber{Value: []byte("2")}, - Val: &ast.ExprReference{Var: &ast.ExprVariable{ + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Val: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, - }}, + }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ @@ -2848,11 +2835,47 @@ func TestPrinterPrintAltForeach(t *testing.T) { Key: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$key")}, }, - Var: &ast.ExprReference{ - Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$val")}, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$val")}, + }, + ColonTkn: &token.Token{ + Value: []byte(":"), + }, + Stmt: &ast.StmtStmtList{ + Stmts: []ast.Vertex{ + &ast.StmtExpression{Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$d")}, + }}, }, }, + } + n.Accept(p) + + expected := `foreach($var as$key=>$val):$d;endforeach;` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + +func TestPrinterPrintAltForeach_Reference(t *testing.T) { + o := bytes.NewBufferString("") + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.StmtForeach{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$var")}, + }, + Key: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$key")}, + }, + AmpersandTkn: &token.Token{ + Value: []byte("&"), + }, + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$val")}, + }, ColonTkn: &token.Token{ Value: []byte(":"), }, From 616fd4448ee4d96dc914698081218c09d6fbd576 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 26 Dec 2020 22:41:25 +0200 Subject: [PATCH 125/140] refactoring: rename DieTkn to ExitTkn --- internal/php5/parser_test.go | 12 ++++++------ internal/php5/php5.go | 2 +- internal/php5/php5.y | 2 +- internal/php7/parser_test.go | 12 ++++++------ internal/php7/php7.go | 2 +- internal/php7/php7.y | 2 +- pkg/ast/node.go | 2 +- pkg/ast/visitor/dumper.go | 2 +- pkg/ast/visitor/formatter.go | 2 +- pkg/ast/visitor/printer.go | 2 +- pkg/ast/visitor/printer_test.go | 2 +- 11 files changed, 21 insertions(+), 21 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index eeca77d..7cf63ec 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -33219,7 +33219,7 @@ func TestExprExit(t *testing.T) { StartPos: 3, EndPos: 7, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("exit"), Position: &position.Position{ @@ -33299,7 +33299,7 @@ func TestExprExit_Empty(t *testing.T) { StartPos: 3, EndPos: 9, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("exit"), Position: &position.Position{ @@ -33399,7 +33399,7 @@ func TestExprExit_Expr(t *testing.T) { StartPos: 3, EndPos: 11, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("exit"), Position: &position.Position{ @@ -33526,7 +33526,7 @@ func TestExprDie(t *testing.T) { StartPos: 3, EndPos: 6, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("die"), Position: &position.Position{ @@ -33606,7 +33606,7 @@ func TestExprDie_Empty(t *testing.T) { StartPos: 3, EndPos: 8, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("die"), Position: &position.Position{ @@ -33706,7 +33706,7 @@ func TestExprDie_Expr(t *testing.T) { StartPos: 3, EndPos: 10, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("die"), Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index f002d93..fb7f8db 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -5689,7 +5689,7 @@ yydefault: // line internal/php5/php5.y:3333 { exit := &ast.ExprExit{ - DieTkn: yyDollar[1].token, + ExitTkn: yyDollar[1].token, } if yyDollar[2].node == nil { diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 6cfbe62..8a66936 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3332,7 +3332,7 @@ expr_without_variable: | T_EXIT exit_expr { exit := &ast.ExprExit{ - DieTkn: $1, + ExitTkn: $1, } if $2 == nil { diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index cd532ff..02bf256 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -37901,7 +37901,7 @@ func TestExprExit(t *testing.T) { StartPos: 3, EndPos: 7, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("exit"), Position: &position.Position{ @@ -37981,7 +37981,7 @@ func TestExprExit_Empty(t *testing.T) { StartPos: 3, EndPos: 9, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("exit"), Position: &position.Position{ @@ -38081,7 +38081,7 @@ func TestExprExit_Expr(t *testing.T) { StartPos: 3, EndPos: 11, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("exit"), Position: &position.Position{ @@ -38208,7 +38208,7 @@ func TestExprDie(t *testing.T) { StartPos: 3, EndPos: 6, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("die"), Position: &position.Position{ @@ -38288,7 +38288,7 @@ func TestExprDie_Empty(t *testing.T) { StartPos: 3, EndPos: 8, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("die"), Position: &position.Position{ @@ -38388,7 +38388,7 @@ func TestExprDie_Expr(t *testing.T) { StartPos: 3, EndPos: 10, }, - DieTkn: &token.Token{ + ExitTkn: &token.Token{ ID: token.T_EXIT, Value: []byte("die"), Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 6492224..9503f81 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -5664,7 +5664,7 @@ yydefault: // line internal/php7/php7.y:3095 { exit := &ast.ExprExit{ - DieTkn: yyDollar[1].token, + ExitTkn: yyDollar[1].token, } if yyDollar[2].node == nil { diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 9a2cc31..44d8880 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3094,7 +3094,7 @@ expr_without_variable: | T_EXIT exit_expr { exit := &ast.ExprExit{ - DieTkn: $1, + ExitTkn: $1, } if $2 == nil { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index bdc0b75..a3f60d8 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1385,7 +1385,7 @@ func (n *ExprEval) GetPosition() *position.Position { // ExprExit node type ExprExit struct { Position *position.Position - DieTkn *token.Token + ExitTkn *token.Token OpenParenthesisTkn *token.Token Expr Vertex CloseParenthesisTkn *token.Token diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index bb54652..689274d 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1228,7 +1228,7 @@ func (v *Dumper) ExprExit(n *ast.ExprExit) { v.indent++ v.dumpPosition(n.Position) - v.dumpToken("DieTkn", n.DieTkn) + v.dumpToken("ExitTkn", n.ExitTkn) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) v.dumpVertex("Expr", n.Expr) v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 93c3046..8ce9363 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1230,7 +1230,7 @@ func (f *formatter) ExprEval(n *ast.ExprEval) { } func (f *formatter) ExprExit(n *ast.ExprExit) { - n.DieTkn = f.newToken(token.T_EVAL, []byte("exit")) + n.ExitTkn = f.newToken(token.T_EVAL, []byte("exit")) n.OpenParenthesisTkn = nil n.CloseParenthesisTkn = nil diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index eb96c0e..524c1e8 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -726,7 +726,7 @@ func (p *printer) ExprEval(n *ast.ExprEval) { } func (p *printer) ExprExit(n *ast.ExprExit) { - p.printToken(n.DieTkn, []byte("exit")) + p.printToken(n.ExitTkn, []byte("exit")) p.printToken(n.OpenParenthesisTkn, nil) p.printNode(n.Expr) p.printToken(n.CloseParenthesisTkn, p.ifToken(n.OpenParenthesisTkn, []byte(")"), nil)) diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 44764bb..55b56d6 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -1968,7 +1968,7 @@ func TestPrinterPrintDie(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n := &ast.ExprExit{ - DieTkn: &token.Token{ + ExitTkn: &token.Token{ Value: []byte("die"), }, Expr: &ast.ExprVariable{ From 115d481a576c8f787543eeb84d4c1c1c1a700b19 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 26 Dec 2020 22:44:14 +0200 Subject: [PATCH 126/140] refactoring: update ast structure of "IncludeOnce" node --- internal/php5/parser_test.go | 2 +- internal/php5/php5.go | 6 +++--- internal/php5/php5.y | 6 +++--- internal/php7/parser_test.go | 2 +- internal/php7/php7.go | 6 +++--- internal/php7/php7.y | 6 +++--- pkg/ast/node.go | 6 +++--- pkg/ast/visitor/dumper.go | 4 ++-- pkg/ast/visitor/formatter.go | 2 +- pkg/ast/visitor/printer.go | 2 +- 10 files changed, 21 insertions(+), 21 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 7cf63ec..f4b35d8 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -35182,7 +35182,7 @@ func TestExprInclude_Once(t *testing.T) { StartPos: 3, EndPos: 18, }, - IncludeTkn: &token.Token{ + IncludeOnceTkn: &token.Token{ ID: token.T_INCLUDE_ONCE, Value: []byte("include_once"), Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index fb7f8db..09a1930 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -8132,9 +8132,9 @@ yydefault: // line internal/php5/php5.y:5534 { yyVAL.node = &ast.ExprIncludeOnce{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - IncludeTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + IncludeOnceTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 510: diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 8a66936..f08fbff 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -5533,9 +5533,9 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - IncludeTkn: $1, - Expr: $2, + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), + IncludeOnceTkn: $1, + Expr: $2, } } | T_EVAL '(' expr ')' diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 02bf256..2854d9a 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -39864,7 +39864,7 @@ func TestExprInclude_Once(t *testing.T) { StartPos: 3, EndPos: 18, }, - IncludeTkn: &token.Token{ + IncludeOnceTkn: &token.Token{ ID: token.T_INCLUDE_ONCE, Value: []byte("include_once"), Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 9503f81..2c5e9d0 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -7006,9 +7006,9 @@ yydefault: // line internal/php7/php7.y:4293 { yyVAL.node = &ast.ExprIncludeOnce{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - IncludeTkn: yyDollar[1].token, - Expr: yyDollar[2].node, + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + IncludeOnceTkn: yyDollar[1].token, + Expr: yyDollar[2].node, } } case 489: diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 44d8880..4e44911 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -4292,9 +4292,9 @@ internal_functions_in_yacc: | T_INCLUDE_ONCE expr { $$ = &ast.ExprIncludeOnce{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - IncludeTkn: $1, - Expr: $2, + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), + IncludeOnceTkn: $1, + Expr: $2, } } | T_EVAL '(' expr ')' diff --git a/pkg/ast/node.go b/pkg/ast/node.go index a3f60d8..e85fde6 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1434,9 +1434,9 @@ func (n *ExprInclude) GetPosition() *position.Position { // ExprIncludeOnce node type ExprIncludeOnce struct { - Position *position.Position - IncludeTkn *token.Token - Expr Vertex + Position *position.Position + IncludeOnceTkn *token.Token + Expr Vertex } func (n *ExprIncludeOnce) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 689274d..dc5536d 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1257,7 +1257,7 @@ func (v *Dumper) ExprInclude(n *ast.ExprInclude) { v.indent++ v.dumpPosition(n.Position) - v.dumpToken("IncludeTkn", n.IncludeTkn) + v.dumpToken("IncludeOnceTkn", n.IncludeTkn) v.dumpVertex("Expr", n.Expr) v.indent-- @@ -1269,7 +1269,7 @@ func (v *Dumper) ExprIncludeOnce(n *ast.ExprIncludeOnce) { v.indent++ v.dumpPosition(n.Position) - v.dumpToken("IncludeTkn", n.IncludeTkn) + v.dumpToken("IncludeOnceTkn", n.IncludeOnceTkn) v.dumpVertex("Expr", n.Expr) v.indent-- diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 8ce9363..3831228 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1258,7 +1258,7 @@ func (f *formatter) ExprInclude(n *ast.ExprInclude) { } func (f *formatter) ExprIncludeOnce(n *ast.ExprIncludeOnce) { - n.IncludeTkn = f.newToken(token.T_INCLUDE_ONCE, []byte("include_once")) + n.IncludeOnceTkn = f.newToken(token.T_INCLUDE_ONCE, []byte("include_once")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) n.Expr.Accept(f) } diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 524c1e8..22e0cae 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -745,7 +745,7 @@ func (p *printer) ExprInclude(n *ast.ExprInclude) { } func (p *printer) ExprIncludeOnce(n *ast.ExprIncludeOnce) { - p.printToken(n.IncludeTkn, []byte("include_once")) + p.printToken(n.IncludeOnceTkn, []byte("include_once")) p.printNode(n.Expr) } From 69919594fde5177ff74528a66dfc8455e4ba5a42 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 26 Dec 2020 22:48:02 +0200 Subject: [PATCH 127/140] refactoring: short int cast --- pkg/ast/visitor/formatter.go | 2 +- pkg/ast/visitor/formatter_test.go | 2 +- pkg/ast/visitor/printer.go | 2 +- pkg/ast/visitor/printer_test.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 3831228..f66c766 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1878,7 +1878,7 @@ func (f *formatter) ExprCastDouble(n *ast.ExprCastDouble) { } func (f *formatter) ExprCastInt(n *ast.ExprCastInt) { - n.CastTkn = f.newToken(token.T_INT_CAST, []byte("(integer)")) + n.CastTkn = f.newToken(token.T_INT_CAST, []byte("(int)")) n.Expr.Accept(f) } diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index d99fbfa..6a72c6b 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -6309,7 +6309,7 @@ func TestFormatter_ExprCastInt(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n.Accept(p) - expected := `(integer)$foo` + expected := `(int)$foo` actual := o.String() if expected != actual { diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 22e0cae..7fba6a1 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -1152,7 +1152,7 @@ func (p *printer) ExprCastDouble(n *ast.ExprCastDouble) { } func (p *printer) ExprCastInt(n *ast.ExprCastInt) { - p.printToken(n.CastTkn, []byte("(integer)")) + p.printToken(n.CastTkn, []byte("(int)")) p.printNode(n.Expr) } diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 55b56d6..3f75246 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -1447,7 +1447,7 @@ func TestPrinterPrintInt(t *testing.T) { } n.Accept(p) - expected := `(integer)$var` + expected := `(int)$var` actual := o.String() if expected != actual { From 2c09138600a57f3a0bbfb1563177a18a2de063fd Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 27 Dec 2020 21:55:36 +0200 Subject: [PATCH 128/140] refactoring: update ast structure of "Variable" node --- internal/php5/parser_test.go | 108 ++--- internal/php5/php5.go | 740 +++++++++++++++--------------- internal/php5/php5.y | 26 +- internal/php7/parser_test.go | 108 ++--- internal/php7/php7.go | 119 +++-- internal/php7/php7.y | 13 +- pkg/ast/node.go | 8 +- pkg/ast/visitor/dumper.go | 2 + pkg/ast/visitor/formatter.go | 10 + pkg/ast/visitor/formatter_test.go | 23 + pkg/ast/visitor/printer.go | 2 + pkg/ast/visitor/printer_test.go | 8 +- 12 files changed, 589 insertions(+), 578 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index f4b35d8..889fb3c 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -16726,90 +16726,82 @@ func TestStmtGlobal_Vars(t *testing.T) { }, }, }, - VarName: &ast.ParserBrackets{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 31, + EndPos: 25, }, - OpenBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, + }, + VarName: &ast.ExprFunctionCall{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 30, }, - Child: &ast.ExprFunctionCall{ + Function: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, - EndPos: 30, + EndPos: 28, }, - Function: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 28, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("foo"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - }, - Value: []byte("foo"), }, - }, - }, - OpenParenthesisTkn: &token.Token{ - ID: token.ID(40), - Value: []byte("("), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - }, - CloseParenthesisTkn: &token.Token{ - ID: token.ID(41), - Value: []byte(")"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, + Value: []byte("foo"), }, }, }, - CloseBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, - EndPos: 31, + StartPos: 28, + EndPos: 29, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 09a1930..9cc409a 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5657 +// line internal/php5/php5.y:5651 // line yacctab:1 var yyExca = [...]int{ @@ -4212,19 +4212,16 @@ yydefault: // line internal/php5/php5.y:2023 { yyVAL.node = &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - DollarTkn: yyDollar[1].token, - VarName: &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - }, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + DollarTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + VarName: yyDollar[3].node, + CloseCurlyBracketTkn: yyDollar[4].token, } } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2040 + // line internal/php5/php5.y:2037 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4243,7 +4240,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2057 + // line internal/php5/php5.y:2054 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4264,7 +4261,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2076 + // line internal/php5/php5.y:2073 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4284,7 +4281,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2094 + // line internal/php5/php5.y:2091 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4306,19 +4303,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2118 + // line internal/php5/php5.y:2115 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2122 + // line internal/php5/php5.y:2119 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2130 + // line internal/php5/php5.y:2127 { yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), @@ -4330,7 +4327,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2140 + // line internal/php5/php5.y:2137 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4338,13 +4335,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2146 + // line internal/php5/php5.y:2143 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2150 + // line internal/php5/php5.y:2147 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4370,7 +4367,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2177 + // line internal/php5/php5.y:2174 { traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4392,7 +4389,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2200 + // line internal/php5/php5.y:2197 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4400,7 +4397,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2206 + // line internal/php5/php5.y:2203 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4409,7 +4406,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2216 + // line internal/php5/php5.y:2213 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4418,7 +4415,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2223 + // line internal/php5/php5.y:2220 { yyVAL.node = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4429,31 +4426,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2235 + // line internal/php5/php5.y:2232 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2239 + // line internal/php5/php5.y:2236 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2246 + // line internal/php5/php5.y:2243 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2250 + // line internal/php5/php5.y:2247 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2257 + // line internal/php5/php5.y:2254 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4461,7 +4458,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2263 + // line internal/php5/php5.y:2260 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4469,7 +4466,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2272 + // line internal/php5/php5.y:2269 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4481,7 +4478,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2285 + // line internal/php5/php5.y:2282 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4489,7 +4486,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2291 + // line internal/php5/php5.y:2288 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4498,7 +4495,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2301 + // line internal/php5/php5.y:2298 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4511,13 +4508,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2312 + // line internal/php5/php5.y:2309 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2319 + // line internal/php5/php5.y:2316 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4532,7 +4529,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2335 + // line internal/php5/php5.y:2332 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4548,7 +4545,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2349 + // line internal/php5/php5.y:2346 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4559,19 +4556,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2361 + // line internal/php5/php5.y:2358 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2365 + // line internal/php5/php5.y:2362 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2372 + // line internal/php5/php5.y:2369 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4580,7 +4577,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2379 + // line internal/php5/php5.y:2376 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4591,13 +4588,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2391 + // line internal/php5/php5.y:2388 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2395 + // line internal/php5/php5.y:2392 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4609,31 +4606,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2408 + // line internal/php5/php5.y:2405 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2412 + // line internal/php5/php5.y:2409 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2419 + // line internal/php5/php5.y:2416 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2423 + // line internal/php5/php5.y:2420 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2430 + // line internal/php5/php5.y:2427 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4643,7 +4640,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2438 + // line internal/php5/php5.y:2435 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4653,7 +4650,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2443 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4663,7 +4660,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2454 + // line internal/php5/php5.y:2451 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4673,7 +4670,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2462 + // line internal/php5/php5.y:2459 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4683,7 +4680,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2470 + // line internal/php5/php5.y:2467 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4693,7 +4690,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2481 + // line internal/php5/php5.y:2478 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4714,7 +4711,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2500 + // line internal/php5/php5.y:2497 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4737,7 +4734,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2521 + // line internal/php5/php5.y:2518 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4758,7 +4755,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2540 + // line internal/php5/php5.y:2537 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4780,7 +4777,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2563 + // line internal/php5/php5.y:2560 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -4800,7 +4797,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2581 + // line internal/php5/php5.y:2578 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -4821,7 +4818,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2603 + // line internal/php5/php5.y:2600 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4830,7 +4827,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2610 + // line internal/php5/php5.y:2607 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4838,19 +4835,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2620 + // line internal/php5/php5.y:2617 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2624 + // line internal/php5/php5.y:2621 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2631 + // line internal/php5/php5.y:2628 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4859,7 +4856,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2638 + // line internal/php5/php5.y:2635 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4867,19 +4864,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2647 + // line internal/php5/php5.y:2644 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2651 + // line internal/php5/php5.y:2648 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2658 + // line internal/php5/php5.y:2655 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -4893,7 +4890,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2670 + // line internal/php5/php5.y:2667 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4907,37 +4904,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2685 + // line internal/php5/php5.y:2682 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2689 + // line internal/php5/php5.y:2686 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2693 + // line internal/php5/php5.y:2690 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2700 + // line internal/php5/php5.y:2697 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2704 + // line internal/php5/php5.y:2701 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2711 + // line internal/php5/php5.y:2708 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4958,7 +4955,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2733 + // line internal/php5/php5.y:2730 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4976,7 +4973,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2749 + // line internal/php5/php5.y:2746 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4987,7 +4984,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2758 + // line internal/php5/php5.y:2755 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -4999,7 +4996,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2768 + // line internal/php5/php5.y:2765 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5030,7 +5027,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2797 + // line internal/php5/php5.y:2794 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5040,7 +5037,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2805 + // line internal/php5/php5.y:2802 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5051,7 +5048,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2814 + // line internal/php5/php5.y:2811 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5062,7 +5059,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2823 + // line internal/php5/php5.y:2820 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5073,7 +5070,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2832 + // line internal/php5/php5.y:2829 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5084,7 +5081,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2841 + // line internal/php5/php5.y:2838 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5095,7 +5092,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2850 + // line internal/php5/php5.y:2847 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5106,7 +5103,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2859 + // line internal/php5/php5.y:2856 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5117,7 +5114,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2868 + // line internal/php5/php5.y:2865 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5128,7 +5125,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2877 + // line internal/php5/php5.y:2874 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5139,7 +5136,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2886 + // line internal/php5/php5.y:2883 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5150,7 +5147,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2895 + // line internal/php5/php5.y:2892 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5161,7 +5158,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2904 + // line internal/php5/php5.y:2901 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5172,7 +5169,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2913 + // line internal/php5/php5.y:2910 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5182,7 +5179,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2921 + // line internal/php5/php5.y:2918 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5192,7 +5189,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2929 + // line internal/php5/php5.y:2926 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5202,7 +5199,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2937 + // line internal/php5/php5.y:2934 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5212,7 +5209,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2945 + // line internal/php5/php5.y:2942 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5223,7 +5220,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2954 + // line internal/php5/php5.y:2951 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5234,7 +5231,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2963 + // line internal/php5/php5.y:2960 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5245,7 +5242,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2972 + // line internal/php5/php5.y:2969 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5256,7 +5253,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2981 + // line internal/php5/php5.y:2978 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5267,7 +5264,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2990 + // line internal/php5/php5.y:2987 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5278,7 +5275,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2999 + // line internal/php5/php5.y:2996 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5289,7 +5286,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3008 + // line internal/php5/php5.y:3005 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5300,7 +5297,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3017 + // line internal/php5/php5.y:3014 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5311,7 +5308,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3026 + // line internal/php5/php5.y:3023 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5322,7 +5319,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3035 + // line internal/php5/php5.y:3032 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5333,7 +5330,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3044 + // line internal/php5/php5.y:3041 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5344,7 +5341,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3053 + // line internal/php5/php5.y:3050 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5355,7 +5352,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3062 + // line internal/php5/php5.y:3059 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5366,7 +5363,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3071 + // line internal/php5/php5.y:3068 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5377,7 +5374,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3080 + // line internal/php5/php5.y:3077 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5388,7 +5385,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3089 + // line internal/php5/php5.y:3086 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5399,7 +5396,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3098 + // line internal/php5/php5.y:3095 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5409,7 +5406,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3106 + // line internal/php5/php5.y:3103 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5419,7 +5416,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3114 + // line internal/php5/php5.y:3111 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5429,7 +5426,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3122 + // line internal/php5/php5.y:3119 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5439,7 +5436,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3130 + // line internal/php5/php5.y:3127 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5450,7 +5447,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3139 + // line internal/php5/php5.y:3136 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5461,7 +5458,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3148 + // line internal/php5/php5.y:3145 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5472,7 +5469,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3157 + // line internal/php5/php5.y:3154 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5483,7 +5480,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3166 + // line internal/php5/php5.y:3163 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5494,7 +5491,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3175 + // line internal/php5/php5.y:3172 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5505,7 +5502,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3184 + // line internal/php5/php5.y:3181 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5516,7 +5513,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3193 + // line internal/php5/php5.y:3190 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5527,7 +5524,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3202 + // line internal/php5/php5.y:3199 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5538,19 +5535,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3211 + // line internal/php5/php5.y:3208 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3215 + // line internal/php5/php5.y:3212 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3219 + // line internal/php5/php5.y:3216 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5585,7 +5582,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3252 + // line internal/php5/php5.y:3249 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5598,7 +5595,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3263 + // line internal/php5/php5.y:3260 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5610,13 +5607,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3273 + // line internal/php5/php5.y:3270 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3277 + // line internal/php5/php5.y:3274 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5626,7 +5623,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3285 + // line internal/php5/php5.y:3282 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5636,7 +5633,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3293 + // line internal/php5/php5.y:3290 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5646,7 +5643,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3301 + // line internal/php5/php5.y:3298 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5656,7 +5653,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3309 + // line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5666,7 +5663,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3317 + // line internal/php5/php5.y:3314 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5676,7 +5673,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3325 + // line internal/php5/php5.y:3322 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5686,7 +5683,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3333 + // line internal/php5/php5.y:3330 { exit := &ast.ExprExit{ ExitTkn: yyDollar[1].token, @@ -5705,7 +5702,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3350 + // line internal/php5/php5.y:3347 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5715,25 +5712,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3358 + // line internal/php5/php5.y:3355 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3362 + // line internal/php5/php5.y:3359 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3366 + // line internal/php5/php5.y:3363 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3370 + // line internal/php5/php5.y:3367 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5744,7 +5741,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3379 + // line internal/php5/php5.y:3376 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5754,7 +5751,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3387 + // line internal/php5/php5.y:3384 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5763,7 +5760,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3394 + // line internal/php5/php5.y:3391 { closure := yyDollar[6].node.(*ast.ExprClosure) @@ -5782,7 +5779,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3411 + // line internal/php5/php5.y:3408 { closure := yyDollar[7].node.(*ast.ExprClosure) @@ -5802,7 +5799,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3432 + // line internal/php5/php5.y:3429 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5812,7 +5809,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3440 + // line internal/php5/php5.y:3437 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5822,7 +5819,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3448 + // line internal/php5/php5.y:3445 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5834,7 +5831,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3458 + // line internal/php5/php5.y:3455 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5846,7 +5843,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3471 + // line internal/php5/php5.y:3468 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5858,7 +5855,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3478 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5870,7 +5867,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3491 + // line internal/php5/php5.y:3488 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5886,7 +5883,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3505 + // line internal/php5/php5.y:3502 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5898,7 +5895,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3518 + // line internal/php5/php5.y:3515 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5911,7 +5908,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3529 + // line internal/php5/php5.y:3526 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5923,19 +5920,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3542 + // line internal/php5/php5.y:3539 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3549 + // line internal/php5/php5.y:3546 { yyVAL.node = &ast.ExprClosure{} } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3553 + // line internal/php5/php5.y:3550 { yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, @@ -5947,7 +5944,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3566 + // line internal/php5/php5.y:3563 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -5968,7 +5965,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3585 + // line internal/php5/php5.y:3582 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), @@ -5990,7 +5987,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3605 + // line internal/php5/php5.y:3602 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6010,7 +6007,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3623 + // line internal/php5/php5.y:3620 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6031,7 +6028,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3645 + // line internal/php5/php5.y:3642 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), @@ -6048,7 +6045,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3660 + // line internal/php5/php5.y:3657 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -6067,7 +6064,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3677 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -6085,7 +6082,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3693 + // line internal/php5/php5.y:3690 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6100,7 +6097,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3706 + // line internal/php5/php5.y:3703 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6115,7 +6112,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3719 + // line internal/php5/php5.y:3716 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6130,7 +6127,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3732 + // line internal/php5/php5.y:3729 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6145,7 +6142,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3745 + // line internal/php5/php5.y:3742 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -6158,7 +6155,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3759 + // line internal/php5/php5.y:3756 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6168,7 +6165,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3767 + // line internal/php5/php5.y:3764 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6178,7 +6175,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3775 + // line internal/php5/php5.y:3772 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6190,7 +6187,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3785 + // line internal/php5/php5.y:3782 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6201,7 +6198,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3797 + // line internal/php5/php5.y:3794 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6211,7 +6208,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3805 + // line internal/php5/php5.y:3802 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6223,7 +6220,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3815 + // line internal/php5/php5.y:3812 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6234,19 +6231,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3827 + // line internal/php5/php5.y:3824 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3831 + // line internal/php5/php5.y:3828 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3838 + // line internal/php5/php5.y:3835 { yyVAL.node = yyDollar[1].node @@ -6282,25 +6279,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3872 + // line internal/php5/php5.y:3869 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3880 + // line internal/php5/php5.y:3877 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3884 + // line internal/php5/php5.y:3881 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3892 + // line internal/php5/php5.y:3889 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6308,13 +6305,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3901 + // line internal/php5/php5.y:3898 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3905 + // line internal/php5/php5.y:3902 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6324,19 +6321,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3913 + // line internal/php5/php5.y:3910 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3920 + // line internal/php5/php5.y:3917 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3924 + // line internal/php5/php5.y:3921 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6348,25 +6345,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3934 + // line internal/php5/php5.y:3931 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3941 + // line internal/php5/php5.y:3938 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3945 + // line internal/php5/php5.y:3942 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3952 + // line internal/php5/php5.y:3949 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6376,7 +6373,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3960 + // line internal/php5/php5.y:3957 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6386,7 +6383,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3968 + // line internal/php5/php5.y:3965 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6396,7 +6393,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3976 + // line internal/php5/php5.y:3973 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6406,7 +6403,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3984 + // line internal/php5/php5.y:3981 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6416,7 +6413,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3992 + // line internal/php5/php5.y:3989 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6426,7 +6423,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4000 + // line internal/php5/php5.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6436,7 +6433,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4008 + // line internal/php5/php5.y:4005 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6446,7 +6443,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4016 + // line internal/php5/php5.y:4013 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6456,7 +6453,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4024 + // line internal/php5/php5.y:4021 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6466,7 +6463,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4032 + // line internal/php5/php5.y:4029 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6483,7 +6480,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4044 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6493,7 +6490,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4058 + // line internal/php5/php5.y:4055 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6508,25 +6505,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4074 + // line internal/php5/php5.y:4071 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4081 + // line internal/php5/php5.y:4078 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4085 + // line internal/php5/php5.y:4082 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4089 + // line internal/php5/php5.y:4086 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6539,7 +6536,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4100 + // line internal/php5/php5.y:4097 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6554,7 +6551,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4110 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6568,7 +6565,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4125 + // line internal/php5/php5.y:4122 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6581,7 +6578,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4136 + // line internal/php5/php5.y:4133 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6593,13 +6590,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4146 + // line internal/php5/php5.y:4143 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4150 + // line internal/php5/php5.y:4147 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6609,13 +6606,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4158 + // line internal/php5/php5.y:4155 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4165 + // line internal/php5/php5.y:4162 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6627,7 +6624,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4175 + // line internal/php5/php5.y:4172 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6638,7 +6635,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4184 + // line internal/php5/php5.y:4181 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6649,7 +6646,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4193 + // line internal/php5/php5.y:4190 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6660,7 +6657,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4202 + // line internal/php5/php5.y:4199 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6671,7 +6668,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4211 + // line internal/php5/php5.y:4208 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6682,7 +6679,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4220 + // line internal/php5/php5.y:4217 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6693,7 +6690,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4229 + // line internal/php5/php5.y:4226 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6703,7 +6700,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4237 + // line internal/php5/php5.y:4234 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6713,7 +6710,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4245 + // line internal/php5/php5.y:4242 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6724,7 +6721,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4254 + // line internal/php5/php5.y:4251 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6735,7 +6732,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4263 + // line internal/php5/php5.y:4260 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6746,7 +6743,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4272 + // line internal/php5/php5.y:4269 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6757,7 +6754,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4281 + // line internal/php5/php5.y:4278 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6768,7 +6765,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4290 + // line internal/php5/php5.y:4287 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6779,7 +6776,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4299 + // line internal/php5/php5.y:4296 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6790,7 +6787,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4308 + // line internal/php5/php5.y:4305 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6801,7 +6798,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4317 + // line internal/php5/php5.y:4314 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6812,7 +6809,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4326 + // line internal/php5/php5.y:4323 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6823,7 +6820,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4335 + // line internal/php5/php5.y:4332 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6834,7 +6831,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4344 + // line internal/php5/php5.y:4341 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6845,7 +6842,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4353 + // line internal/php5/php5.y:4350 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6856,7 +6853,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4362 + // line internal/php5/php5.y:4359 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6867,7 +6864,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4371 + // line internal/php5/php5.y:4368 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6878,7 +6875,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4380 + // line internal/php5/php5.y:4377 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6889,7 +6886,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4389 + // line internal/php5/php5.y:4386 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6900,7 +6897,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4398 + // line internal/php5/php5.y:4395 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6911,7 +6908,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4407 + // line internal/php5/php5.y:4404 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6922,7 +6919,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4416 + // line internal/php5/php5.y:4413 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6934,7 +6931,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4426 + // line internal/php5/php5.y:4423 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -6947,7 +6944,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4437 + // line internal/php5/php5.y:4434 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6957,7 +6954,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4445 + // line internal/php5/php5.y:4442 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6967,7 +6964,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4453 + // line internal/php5/php5.y:4450 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6978,13 +6975,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4465 + // line internal/php5/php5.y:4462 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4469 + // line internal/php5/php5.y:4466 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6997,7 +6994,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4480 + // line internal/php5/php5.y:4477 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -7012,7 +7009,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4493 + // line internal/php5/php5.y:4490 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -7026,7 +7023,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4508 + // line internal/php5/php5.y:4505 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7039,25 +7036,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4519 + // line internal/php5/php5.y:4516 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4523 + // line internal/php5/php5.y:4520 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4527 + // line internal/php5/php5.y:4524 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4531 + // line internal/php5/php5.y:4528 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7068,7 +7065,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4540 + // line internal/php5/php5.y:4537 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7079,7 +7076,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4549 + // line internal/php5/php5.y:4546 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7089,13 +7086,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4560 + // line internal/php5/php5.y:4557 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4564 + // line internal/php5/php5.y:4561 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7106,19 +7103,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4576 + // line internal/php5/php5.y:4573 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4580 + // line internal/php5/php5.y:4577 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4587 + // line internal/php5/php5.y:4584 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7134,7 +7131,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4601 + // line internal/php5/php5.y:4598 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7148,7 +7145,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4613 + // line internal/php5/php5.y:4610 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7163,7 +7160,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4626 + // line internal/php5/php5.y:4623 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7176,19 +7173,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4640 + // line internal/php5/php5.y:4637 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4644 + // line internal/php5/php5.y:4641 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4651 + // line internal/php5/php5.y:4648 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7199,7 +7196,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4660 + // line internal/php5/php5.y:4657 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7210,25 +7207,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4673 + // line internal/php5/php5.y:4670 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4681 + // line internal/php5/php5.y:4678 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4688 + // line internal/php5/php5.y:4685 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4695 + // line internal/php5/php5.y:4692 { yyVAL.node = yyDollar[1].node @@ -7305,25 +7302,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4770 + // line internal/php5/php5.y:4767 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4777 + // line internal/php5/php5.y:4774 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4781 + // line internal/php5/php5.y:4778 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4789 + // line internal/php5/php5.y:4786 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7352,7 +7349,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4819 + // line internal/php5/php5.y:4816 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7366,7 +7363,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4831 + // line internal/php5/php5.y:4828 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7380,7 +7377,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4846 + // line internal/php5/php5.y:4843 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7392,31 +7389,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4859 + // line internal/php5/php5.y:4856 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4863 + // line internal/php5/php5.y:4860 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4867 + // line internal/php5/php5.y:4864 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4874 + // line internal/php5/php5.y:4871 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4878 + // line internal/php5/php5.y:4875 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7428,7 +7425,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4888 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7439,7 +7436,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4900 + // line internal/php5/php5.y:4897 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7450,13 +7447,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4912 + // line internal/php5/php5.y:4909 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4919 + // line internal/php5/php5.y:4916 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7468,7 +7465,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4929 + // line internal/php5/php5.y:4926 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7480,31 +7477,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4942 + // line internal/php5/php5.y:4939 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4946 + // line internal/php5/php5.y:4943 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4950 + // line internal/php5/php5.y:4947 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4958 + // line internal/php5/php5.y:4955 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4962 + // line internal/php5/php5.y:4959 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7516,13 +7513,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4972 + // line internal/php5/php5.y:4969 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4979 + // line internal/php5/php5.y:4976 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7534,7 +7531,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4989 + // line internal/php5/php5.y:4986 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7546,13 +7543,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4999 + // line internal/php5/php5.y:4996 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5007 + // line internal/php5/php5.y:5004 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7565,40 +7562,37 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5018 + // line internal/php5/php5.y:5015 { yyVAL.node = &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - DollarTkn: yyDollar[1].token, - VarName: &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - }, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + DollarTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + VarName: yyDollar[3].node, + CloseCurlyBracketTkn: yyDollar[4].token, } } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5034 + // line internal/php5/php5.y:5028 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5038 + // line internal/php5/php5.y:5032 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5046 + // line internal/php5/php5.y:5040 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5050 + // line internal/php5/php5.y:5044 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7609,7 +7603,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5062 + // line internal/php5/php5.y:5056 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7623,7 +7617,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5074 + // line internal/php5/php5.y:5068 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7637,7 +7631,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5086 + // line internal/php5/php5.y:5080 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7648,7 +7642,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5098 + // line internal/php5/php5.y:5092 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7658,7 +7652,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5106 + // line internal/php5/php5.y:5100 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7669,7 +7663,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5118 + // line internal/php5/php5.y:5112 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7680,7 +7674,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5127 + // line internal/php5/php5.y:5121 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7689,7 +7683,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5137 + // line internal/php5/php5.y:5131 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7698,7 +7692,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5138 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7706,7 +7700,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5154 + // line internal/php5/php5.y:5148 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7715,7 +7709,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5161 + // line internal/php5/php5.y:5155 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7738,19 +7732,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5182 + // line internal/php5/php5.y:5176 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5190 + // line internal/php5/php5.y:5184 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5194 + // line internal/php5/php5.y:5188 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7761,7 +7755,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5206 + // line internal/php5/php5.y:5200 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7777,7 +7771,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5220 + // line internal/php5/php5.y:5214 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7791,7 +7785,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5232 + // line internal/php5/php5.y:5226 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7806,7 +7800,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5245 + // line internal/php5/php5.y:5239 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7819,7 +7813,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5256 + // line internal/php5/php5.y:5250 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7836,7 +7830,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5271 + // line internal/php5/php5.y:5265 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7851,7 +7845,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5284 + // line internal/php5/php5.y:5278 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7867,7 +7861,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5298 + // line internal/php5/php5.y:5292 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7881,13 +7875,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5313 + // line internal/php5/php5.y:5307 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5317 + // line internal/php5/php5.y:5311 { yyVAL.list = append( yyDollar[1].list, @@ -7900,13 +7894,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5328 + // line internal/php5/php5.y:5322 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5332 + // line internal/php5/php5.y:5326 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7919,7 +7913,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5346 + // line internal/php5/php5.y:5340 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7932,7 +7926,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5357 + // line internal/php5/php5.y:5351 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7951,7 +7945,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5374 + // line internal/php5/php5.y:5368 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7973,7 +7967,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5394 + // line internal/php5/php5.y:5388 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7987,7 +7981,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5406 + // line internal/php5/php5.y:5400 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8005,7 +7999,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5422 + // line internal/php5/php5.y:5416 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -8029,7 +8023,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5444 + // line internal/php5/php5.y:5438 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8040,7 +8034,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5456 + // line internal/php5/php5.y:5450 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8050,7 +8044,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5464 + // line internal/php5/php5.y:5458 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8069,7 +8063,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5481 + // line internal/php5/php5.y:5475 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8082,7 +8076,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5495 + // line internal/php5/php5.y:5489 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8095,7 +8089,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5506 + // line internal/php5/php5.y:5500 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8107,7 +8101,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5516 + // line internal/php5/php5.y:5510 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8119,7 +8113,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5520 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8129,7 +8123,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5534 + // line internal/php5/php5.y:5528 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8139,7 +8133,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5542 + // line internal/php5/php5.y:5536 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8151,7 +8145,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5552 + // line internal/php5/php5.y:5546 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8161,7 +8155,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5554 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8171,7 +8165,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5571 + // line internal/php5/php5.y:5565 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8179,7 +8173,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5577 + // line internal/php5/php5.y:5571 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8188,19 +8182,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5587 + // line internal/php5/php5.y:5581 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5585 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5598 + // line internal/php5/php5.y:5592 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8215,7 +8209,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5611 + // line internal/php5/php5.y:5605 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8230,7 +8224,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5627 + // line internal/php5/php5.y:5621 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8245,7 +8239,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5643 + // line internal/php5/php5.y:5637 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index f08fbff..ac247f2 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2022,14 +2022,11 @@ global_var: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - DollarTkn: $1, - VarName: &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, - }, + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), + DollarTkn: $1, + OpenCurlyBracketTkn: $2, + VarName: $3, + CloseCurlyBracketTkn: $4, } } ; @@ -5017,14 +5014,11 @@ compound_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - DollarTkn: $1, - VarName: &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, - }, + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), + DollarTkn: $1, + OpenCurlyBracketTkn: $2, + VarName: $3, + CloseCurlyBracketTkn: $4, } } ; diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 2854d9a..b2bf948 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -18412,90 +18412,82 @@ func TestStmtGlobal_Vars(t *testing.T) { }, }, }, - VarName: &ast.ParserBrackets{ + OpenCurlyBracketTkn: &token.Token{ + ID: token.ID(123), + Value: []byte("{"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 24, - EndPos: 31, + EndPos: 25, }, - OpenBracketTkn: &token.Token{ - ID: token.ID(123), - Value: []byte("{"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, + }, + VarName: &ast.ExprFunctionCall{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 30, }, - Child: &ast.ExprFunctionCall{ + Function: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, - EndPos: 30, + EndPos: 28, }, - Function: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 28, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("foo"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - }, - Value: []byte("foo"), }, - }, - }, - OpenParenthesisTkn: &token.Token{ - ID: token.ID(40), - Value: []byte("("), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, - }, - CloseParenthesisTkn: &token.Token{ - ID: token.ID(41), - Value: []byte(")"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, + Value: []byte("foo"), }, }, }, - CloseBracketTkn: &token.Token{ - ID: token.ID(125), - Value: []byte("}"), + OpenParenthesisTkn: &token.Token{ + ID: token.ID(40), + Value: []byte("("), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, - EndPos: 31, + StartPos: 28, + EndPos: 29, }, }, + CloseParenthesisTkn: &token.Token{ + ID: token.ID(41), + Value: []byte(")"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, + }, + }, + }, + CloseCurlyBracketTkn: &token.Token{ + ID: token.ID(125), + Value: []byte("}"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 31, + }, }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 2c5e9d0..da378e5 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4353 +// line internal/php7/php7.y:4350 // line yacctab:1 var yyExca = [...]int{ @@ -6448,19 +6448,16 @@ yydefault: // line internal/php7/php7.y:3791 { yyVAL.node = &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - DollarTkn: yyDollar[1].token, - VarName: &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), - OpenBracketTkn: yyDollar[2].token, - Child: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - }, + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + DollarTkn: yyDollar[1].token, + OpenCurlyBracketTkn: yyDollar[2].token, + VarName: yyDollar[3].node, + CloseCurlyBracketTkn: yyDollar[4].token, } } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3804 + // line internal/php7/php7.y:3801 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6470,7 +6467,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3815 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6481,7 +6478,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3824 + // line internal/php7/php7.y:3821 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6492,13 +6489,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3836 + // line internal/php7/php7.y:3833 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3840 + // line internal/php7/php7.y:3837 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6510,7 +6507,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3850 + // line internal/php7/php7.y:3847 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6522,7 +6519,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3860 + // line internal/php7/php7.y:3857 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6533,7 +6530,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3869 + // line internal/php7/php7.y:3866 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6544,7 +6541,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3878 + // line internal/php7/php7.y:3875 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6555,7 +6552,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3890 + // line internal/php7/php7.y:3887 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6565,7 +6562,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3898 + // line internal/php7/php7.y:3895 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6576,13 +6573,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3907 + // line internal/php7/php7.y:3904 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3914 + // line internal/php7/php7.y:3911 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6592,7 +6589,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3922 + // line internal/php7/php7.y:3919 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6603,13 +6600,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3931 + // line internal/php7/php7.y:3928 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3938 + // line internal/php7/php7.y:3935 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6622,19 +6619,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3949 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3956 + // line internal/php7/php7.y:3953 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3963 + // line internal/php7/php7.y:3960 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6643,7 +6640,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3970 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6651,7 +6648,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3979 + // line internal/php7/php7.y:3976 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6662,7 +6659,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3988 + // line internal/php7/php7.y:3985 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6671,7 +6668,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3995 + // line internal/php7/php7.y:3992 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6683,7 +6680,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4005 + // line internal/php7/php7.y:4002 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6693,7 +6690,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4013 + // line internal/php7/php7.y:4010 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6703,7 +6700,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4021 + // line internal/php7/php7.y:4018 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6721,7 +6718,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4037 + // line internal/php7/php7.y:4034 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6737,13 +6734,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4054 + // line internal/php7/php7.y:4051 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4058 + // line internal/php7/php7.y:4055 { yyVAL.list = append( yyDollar[1].list, @@ -6756,13 +6753,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4069 + // line internal/php7/php7.y:4066 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4073 + // line internal/php7/php7.y:4070 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6775,7 +6772,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4087 + // line internal/php7/php7.y:4084 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6788,7 +6785,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4098 + // line internal/php7/php7.y:4095 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6807,7 +6804,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4115 + // line internal/php7/php7.y:4112 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6829,7 +6826,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4135 + // line internal/php7/php7.y:4132 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6843,7 +6840,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4147 + // line internal/php7/php7.y:4144 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6861,7 +6858,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4163 + // line internal/php7/php7.y:4160 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -6885,7 +6882,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4185 + // line internal/php7/php7.y:4182 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6896,7 +6893,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4197 + // line internal/php7/php7.y:4194 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6906,7 +6903,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4205 + // line internal/php7/php7.y:4202 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6925,7 +6922,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4222 + // line internal/php7/php7.y:4219 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6951,7 +6948,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4246 + // line internal/php7/php7.y:4243 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6964,7 +6961,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4260 + // line internal/php7/php7.y:4257 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -6981,7 +6978,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4275 + // line internal/php7/php7.y:4272 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6993,7 +6990,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4282 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7003,7 +7000,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4293 + // line internal/php7/php7.y:4290 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7013,7 +7010,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4301 + // line internal/php7/php7.y:4298 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7025,7 +7022,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4311 + // line internal/php7/php7.y:4308 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7035,7 +7032,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4319 + // line internal/php7/php7.y:4316 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7045,7 +7042,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4330 + // line internal/php7/php7.y:4327 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7053,7 +7050,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4333 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7062,7 +7059,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4346 + // line internal/php7/php7.y:4343 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 4e44911..ae5f176 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3790,14 +3790,11 @@ simple_variable: | '$' '{' expr '}' { $$ = &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - DollarTkn: $1, - VarName: &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($2, $4), - OpenBracketTkn: $2, - Child: $3, - CloseBracketTkn: $4, - }, + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), + DollarTkn: $1, + OpenCurlyBracketTkn: $2, + VarName: $3, + CloseCurlyBracketTkn: $4, } } | '$' simple_variable diff --git a/pkg/ast/node.go b/pkg/ast/node.go index e85fde6..400537f 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1761,9 +1761,11 @@ func (n *ExprUnaryPlus) GetPosition() *position.Position { // ExprVariable node type ExprVariable struct { - Position *position.Position - DollarTkn *token.Token - VarName Vertex + Position *position.Position + DollarTkn *token.Token + OpenCurlyBracketTkn *token.Token + VarName Vertex + CloseCurlyBracketTkn *token.Token } func (n *ExprVariable) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index dc5536d..9778215 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1537,7 +1537,9 @@ func (v *Dumper) ExprVariable(n *ast.ExprVariable) { v.dumpPosition(n.Position) v.dumpToken("DollarTkn", n.DollarTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertex("VarName", n.VarName) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.indent-- v.print(v.indent, "},\n") diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index f66c766..7fde3cb 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1417,6 +1417,16 @@ func (f *formatter) ExprVariable(n *ast.ExprVariable) { n.DollarTkn = f.newToken('$', []byte("$")) } + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil + switch n.VarName.(type) { + case *ast.Identifier: + case *ast.ExprVariable: + default: + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + } + n.VarName.Accept(f) } diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index 6a72c6b..62580e7 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -4877,6 +4877,29 @@ func TestFormatter_ExprVariable_Variable(t *testing.T) { } } +func TestFormatter_ExprVariable_Expression(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprVariable{ + VarName: &ast.ScalarString{ + Value: []byte("'foo'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `${'foo'}` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_ExprYield(t *testing.T) { o := bytes.NewBufferString("") diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 7fba6a1..99db93a 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -868,7 +868,9 @@ func (p *printer) ExprUnaryPlus(n *ast.ExprUnaryPlus) { func (p *printer) ExprVariable(n *ast.ExprVariable) { p.printToken(n.DollarTkn, nil) + p.printToken(n.OpenCurlyBracketTkn, nil) p.printNode(n.VarName) + p.printToken(n.CloseCurlyBracketTkn, nil) } func (p *printer) ExprYield(n *ast.ExprYield) { diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 3f75246..621ea27 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -2609,13 +2609,19 @@ func TestPrinterPrintVariable(t *testing.T) { DollarTkn: &token.Token{ Value: []byte("$"), }, + OpenCurlyBracketTkn: &token.Token{ + Value: []byte("{"), + }, VarName: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, }, + CloseCurlyBracketTkn: &token.Token{ + Value: []byte("}"), + }, } n.Accept(p) - expected := `$$var` + expected := `${$var}` actual := o.String() if expected != actual { From 0f2341bfa929d4d0d8a41519bb9d28b95e21bb60 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 27 Dec 2020 23:04:09 +0200 Subject: [PATCH 129/140] refactoring: update ast structure of "MethodCall" and "PropertyFetch" nodes --- internal/php5/php5.go | 190 +++++++++++++++-------------- internal/php5/php5.y | 20 ++- internal/php7/php7.go | 194 +++++++++++++++++------------- internal/php7/php7.y | 30 ++++- pkg/ast/node.go | 28 +++-- pkg/ast/visitor/dumper.go | 4 + pkg/ast/visitor/formatter.go | 22 ++++ pkg/ast/visitor/formatter_test.go | 56 +++++++++ pkg/ast/visitor/printer.go | 4 + 9 files changed, 353 insertions(+), 195 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 9cc409a..a2bd33c 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5651 +// line internal/php5/php5.y:5661 // line yacctab:1 var yyExca = [...]int{ @@ -7246,7 +7246,9 @@ yydefault: ) yyDollar[3].list = append(yyDollar[3].list, yyDollar[4].list[1:len(yyDollar[4].list)]...) case *ast.ExprPropertyFetch: + yyDollar[4].list[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn yyDollar[4].list[0].(*ast.ExprMethodCall).Method = l.Property + yyDollar[4].list[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn yyDollar[4].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn yyDollar[3].list = append(yyDollar[3].list[:len(yyDollar[3].list)-1], yyDollar[4].list...) } @@ -7302,25 +7304,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4767 + // line internal/php5/php5.y:4769 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4774 + // line internal/php5/php5.y:4776 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4778 + // line internal/php5/php5.y:4780 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4786 + // line internal/php5/php5.y:4788 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7339,7 +7341,9 @@ yydefault: ) yyDollar[2].list = append(yyDollar[2].list, yyDollar[3].list[1:len(yyDollar[3].list)]...) case *ast.ExprPropertyFetch: + yyDollar[3].list[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn yyDollar[3].list[0].(*ast.ExprMethodCall).Method = l.Property + yyDollar[3].list[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn yyDollar[3].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn yyDollar[2].list = append(yyDollar[2].list[:len(yyDollar[2].list)-1], yyDollar[3].list...) } @@ -7349,7 +7353,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4816 + // line internal/php5/php5.y:4820 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7363,7 +7367,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4828 + // line internal/php5/php5.y:4832 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7377,7 +7381,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4843 + // line internal/php5/php5.y:4847 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7389,31 +7393,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4856 + // line internal/php5/php5.y:4860 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4860 + // line internal/php5/php5.y:4864 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4864 + // line internal/php5/php5.y:4868 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4871 + // line internal/php5/php5.y:4875 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4875 + // line internal/php5/php5.y:4879 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7425,7 +7429,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4888 + // line internal/php5/php5.y:4892 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7436,7 +7440,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4897 + // line internal/php5/php5.y:4901 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7447,13 +7451,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4909 + // line internal/php5/php5.y:4913 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4916 + // line internal/php5/php5.y:4920 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7465,7 +7469,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4926 + // line internal/php5/php5.y:4930 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7477,31 +7481,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4939 + // line internal/php5/php5.y:4943 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4943 + // line internal/php5/php5.y:4947 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4951 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4955 + // line internal/php5/php5.y:4959 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4959 + // line internal/php5/php5.y:4963 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7513,13 +7517,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4969 + // line internal/php5/php5.y:4973 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4976 + // line internal/php5/php5.y:4980 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7531,7 +7535,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4986 + // line internal/php5/php5.y:4990 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7543,13 +7547,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5000 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5004 + // line internal/php5/php5.y:5008 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7562,7 +7566,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5015 + // line internal/php5/php5.y:5019 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7574,25 +7578,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5028 + // line internal/php5/php5.y:5032 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5036 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5040 + // line internal/php5/php5.y:5044 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5048 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7603,7 +7607,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5056 + // line internal/php5/php5.y:5060 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7617,7 +7621,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5068 + // line internal/php5/php5.y:5072 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7631,18 +7635,24 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5080 + // line internal/php5/php5.y:5084 { - yyVAL.list = []ast.Vertex{ - &ast.ExprPropertyFetch{ - Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), - Property: yyDollar[1].node, - }, + property := &ast.ExprPropertyFetch{ + Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), + Property: yyDollar[1].node, } + + if brackets, ok := yyDollar[1].node.(*ast.ParserBrackets); ok { + property.OpenCurlyBracketTkn = brackets.OpenBracketTkn + property.Property = brackets.Child + property.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.list = []ast.Vertex{property} } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5092 + // line internal/php5/php5.y:5102 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7652,7 +7662,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5100 + // line internal/php5/php5.y:5110 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7663,7 +7673,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5112 + // line internal/php5/php5.y:5122 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7674,7 +7684,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5121 + // line internal/php5/php5.y:5131 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7683,7 +7693,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5131 + // line internal/php5/php5.y:5141 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7692,7 +7702,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5138 + // line internal/php5/php5.y:5148 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7700,7 +7710,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5158 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7709,7 +7719,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5155 + // line internal/php5/php5.y:5165 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7732,19 +7742,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5176 + // line internal/php5/php5.y:5186 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5184 + // line internal/php5/php5.y:5194 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5188 + // line internal/php5/php5.y:5198 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7755,7 +7765,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5200 + // line internal/php5/php5.y:5210 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7771,7 +7781,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5214 + // line internal/php5/php5.y:5224 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7785,7 +7795,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5226 + // line internal/php5/php5.y:5236 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7800,7 +7810,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5239 + // line internal/php5/php5.y:5249 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7813,7 +7823,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5250 + // line internal/php5/php5.y:5260 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7830,7 +7840,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5265 + // line internal/php5/php5.y:5275 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7845,7 +7855,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5288 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7861,7 +7871,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5292 + // line internal/php5/php5.y:5302 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7875,13 +7885,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5307 + // line internal/php5/php5.y:5317 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5311 + // line internal/php5/php5.y:5321 { yyVAL.list = append( yyDollar[1].list, @@ -7894,13 +7904,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5322 + // line internal/php5/php5.y:5332 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5326 + // line internal/php5/php5.y:5336 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7913,7 +7923,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5340 + // line internal/php5/php5.y:5350 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7926,7 +7936,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5351 + // line internal/php5/php5.y:5361 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7945,7 +7955,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5368 + // line internal/php5/php5.y:5378 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7967,7 +7977,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5388 + // line internal/php5/php5.y:5398 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7981,7 +7991,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5400 + // line internal/php5/php5.y:5410 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7999,7 +8009,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5416 + // line internal/php5/php5.y:5426 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -8023,7 +8033,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5438 + // line internal/php5/php5.y:5448 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8034,7 +8044,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5450 + // line internal/php5/php5.y:5460 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8044,7 +8054,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5458 + // line internal/php5/php5.y:5468 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8063,7 +8073,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5475 + // line internal/php5/php5.y:5485 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8076,7 +8086,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5489 + // line internal/php5/php5.y:5499 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8089,7 +8099,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5500 + // line internal/php5/php5.y:5510 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8101,7 +8111,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5520 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8113,7 +8123,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5520 + // line internal/php5/php5.y:5530 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8123,7 +8133,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5528 + // line internal/php5/php5.y:5538 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8133,7 +8143,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5536 + // line internal/php5/php5.y:5546 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8145,7 +8155,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5556 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8155,7 +8165,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5554 + // line internal/php5/php5.y:5564 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8165,7 +8175,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5565 + // line internal/php5/php5.y:5575 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8173,7 +8183,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5571 + // line internal/php5/php5.y:5581 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8182,19 +8192,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5581 + // line internal/php5/php5.y:5591 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5585 + // line internal/php5/php5.y:5595 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5592 + // line internal/php5/php5.y:5602 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8209,7 +8219,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5615 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8224,7 +8234,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5621 + // line internal/php5/php5.y:5631 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8239,7 +8249,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5637 + // line internal/php5/php5.y:5647 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index ac247f2..ba55690 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -4709,7 +4709,9 @@ variable: ) $3 = append($3, $4[1:len($4)]...) case *ast.ExprPropertyFetch: + $4[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn $4[0].(*ast.ExprMethodCall).Method = l.Property + $4[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn $4[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn $3 = append($3[:len($3)-1], $4...) } @@ -4801,7 +4803,9 @@ variable_property: ) $2 = append($2, $3[1:len($3)]...) case *ast.ExprPropertyFetch: + $3[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn $3[0].(*ast.ExprMethodCall).Method = l.Property + $3[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn $3[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn $2 = append($2[:len($2)-1], $3...) } @@ -5078,12 +5082,18 @@ object_dim_list: } | variable_name { - $$ = []ast.Vertex{ - &ast.ExprPropertyFetch{ - Position: yylex.(*Parser).builder.NewNodePosition($1), - Property: $1, - }, + property := &ast.ExprPropertyFetch{ + Position: yylex.(*Parser).builder.NewNodePosition($1), + Property: $1, } + + if brackets, ok := $1.(*ast.ParserBrackets); ok { + property.OpenCurlyBracketTkn = brackets.OpenBracketTkn + property.Property = brackets.Child + property.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = []ast.Vertex{ property } } ; diff --git a/internal/php7/php7.go b/internal/php7/php7.go index da378e5..bdd9dc6 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4350 +// line internal/php7/php7.y:4374 // line yacctab:1 var yyExca = [...]int{ @@ -6390,7 +6390,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3740 { - yyVAL.node = &ast.ExprMethodCall{ + methodCall := &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, @@ -6400,39 +6400,55 @@ yydefault: SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + methodCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + methodCall.Method = brackets.Child + methodCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.node = methodCall } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3753 + // line internal/php7/php7.y:3761 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3760 + // line internal/php7/php7.y:3768 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3764 + // line internal/php7/php7.y:3772 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3768 + // line internal/php7/php7.y:3776 { - yyVAL.node = &ast.ExprPropertyFetch{ + propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Property: yyDollar[3].node, } + + if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn + propertyFetch.Property = brackets.Child + propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.node = propertyFetch } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3780 + // line internal/php7/php7.y:3796 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6445,7 +6461,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3791 + // line internal/php7/php7.y:3807 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6457,7 +6473,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3801 + // line internal/php7/php7.y:3817 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6467,7 +6483,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3828 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6478,7 +6494,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3821 + // line internal/php7/php7.y:3837 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6489,13 +6505,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3833 + // line internal/php7/php7.y:3849 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3837 + // line internal/php7/php7.y:3853 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6507,7 +6523,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3847 + // line internal/php7/php7.y:3863 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6519,18 +6535,26 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3857 + // line internal/php7/php7.y:3873 { - yyVAL.node = &ast.ExprPropertyFetch{ + propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Property: yyDollar[3].node, } + + if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn + propertyFetch.Property = brackets.Child + propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.node = propertyFetch } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3866 + // line internal/php7/php7.y:3890 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6541,7 +6565,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3875 + // line internal/php7/php7.y:3899 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6551,33 +6575,6 @@ yydefault: } } case 452: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3887 - { - yyVAL.node = &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - IdentifierTkn: yyDollar[1].token, - Value: yyDollar[1].token.Value, - } - } - case 453: - yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3895 - { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, - } - } - case 454: - yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3904 - { - yyVAL.node = yyDollar[1].node - } - case 455: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:3911 { @@ -6587,7 +6584,7 @@ yydefault: Value: yyDollar[1].token.Value, } } - case 456: + case 453: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:3919 { @@ -6598,15 +6595,42 @@ yydefault: CloseBracketTkn: yyDollar[3].token, } } - case 457: + case 454: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:3928 { yyVAL.node = yyDollar[1].node } - case 458: + case 455: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:3935 + { + yyVAL.node = &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), + IdentifierTkn: yyDollar[1].token, + Value: yyDollar[1].token.Value, + } + } + case 456: + yyDollar = yyS[yypt-3 : yypt+1] + // line internal/php7/php7.y:3943 + { + yyVAL.node = &ast.ParserBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenBracketTkn: yyDollar[1].token, + Child: yyDollar[2].node, + CloseBracketTkn: yyDollar[3].token, + } + } + case 457: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php7/php7.y:3952 + { + yyVAL.node = yyDollar[1].node + } + case 458: + yyDollar = yyS[yypt-1 : yypt+1] + // line internal/php7/php7.y:3959 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6619,19 +6643,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3949 + // line internal/php7/php7.y:3973 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3953 + // line internal/php7/php7.y:3977 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3960 + // line internal/php7/php7.y:3984 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6640,7 +6664,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3967 + // line internal/php7/php7.y:3991 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6648,7 +6672,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3976 + // line internal/php7/php7.y:4000 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6659,7 +6683,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3985 + // line internal/php7/php7.y:4009 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6668,7 +6692,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3992 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6680,7 +6704,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4002 + // line internal/php7/php7.y:4026 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6690,7 +6714,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4010 + // line internal/php7/php7.y:4034 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6700,7 +6724,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4018 + // line internal/php7/php7.y:4042 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6718,7 +6742,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4034 + // line internal/php7/php7.y:4058 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6734,13 +6758,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4051 + // line internal/php7/php7.y:4075 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4055 + // line internal/php7/php7.y:4079 { yyVAL.list = append( yyDollar[1].list, @@ -6753,13 +6777,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4066 + // line internal/php7/php7.y:4090 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4070 + // line internal/php7/php7.y:4094 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6772,7 +6796,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4084 + // line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6785,7 +6809,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4095 + // line internal/php7/php7.y:4119 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6804,7 +6828,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4112 + // line internal/php7/php7.y:4136 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6826,7 +6850,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4132 + // line internal/php7/php7.y:4156 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6840,7 +6864,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4144 + // line internal/php7/php7.y:4168 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6858,7 +6882,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4160 + // line internal/php7/php7.y:4184 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -6882,7 +6906,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4182 + // line internal/php7/php7.y:4206 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6893,7 +6917,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4194 + // line internal/php7/php7.y:4218 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6903,7 +6927,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4202 + // line internal/php7/php7.y:4226 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6922,7 +6946,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4219 + // line internal/php7/php7.y:4243 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6948,7 +6972,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4243 + // line internal/php7/php7.y:4267 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6961,7 +6985,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4257 + // line internal/php7/php7.y:4281 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -6978,7 +7002,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4272 + // line internal/php7/php7.y:4296 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6990,7 +7014,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4282 + // line internal/php7/php7.y:4306 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7000,7 +7024,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4290 + // line internal/php7/php7.y:4314 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7010,7 +7034,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4298 + // line internal/php7/php7.y:4322 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7022,7 +7046,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4308 + // line internal/php7/php7.y:4332 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7032,7 +7056,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4316 + // line internal/php7/php7.y:4340 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7042,7 +7066,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4327 + // line internal/php7/php7.y:4351 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7050,7 +7074,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4333 + // line internal/php7/php7.y:4357 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7059,7 +7083,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4343 + // line internal/php7/php7.y:4367 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index ae5f176..078c6eb 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3738,7 +3738,7 @@ callable_variable: } | dereferencable T_OBJECT_OPERATOR property_name argument_list { - $$ = &ast.ExprMethodCall{ + methodCall := &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Var: $1, ObjectOperatorTkn: $2, @@ -3748,6 +3748,14 @@ callable_variable: SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := $3.(*ast.ParserBrackets); ok { + methodCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + methodCall.Method = brackets.Child + methodCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = methodCall } | function_call { @@ -3766,12 +3774,20 @@ variable: } | dereferencable T_OBJECT_OPERATOR property_name { - $$ = &ast.ExprPropertyFetch{ + propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, } + + if brackets, ok := $3.(*ast.ParserBrackets); ok { + propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn + propertyFetch.Property = brackets.Child + propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = propertyFetch } ; @@ -3855,12 +3871,20 @@ new_variable: } | new_variable T_OBJECT_OPERATOR property_name { - $$ = &ast.ExprPropertyFetch{ + propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, Property: $3, } + + if brackets, ok := $3.(*ast.ParserBrackets); ok { + propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn + propertyFetch.Property = brackets.Child + propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = propertyFetch } | class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 400537f..7a89a90 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1501,14 +1501,16 @@ func (n *ExprList) GetPosition() *position.Position { // ExprMethodCall node type ExprMethodCall struct { - Position *position.Position - Var Vertex - ObjectOperatorTkn *token.Token - Method Vertex - OpenParenthesisTkn *token.Token - Arguments []Vertex - SeparatorTkns []*token.Token - CloseParenthesisTkn *token.Token + Position *position.Position + Var Vertex + ObjectOperatorTkn *token.Token + OpenCurlyBracketTkn *token.Token + Method Vertex + CloseCurlyBracketTkn *token.Token + OpenParenthesisTkn *token.Token + Arguments []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token } func (n *ExprMethodCall) Accept(v NodeVisitor) { @@ -1615,10 +1617,12 @@ func (n *ExprPrint) GetPosition() *position.Position { // ExprPropertyFetch node type ExprPropertyFetch struct { - Position *position.Position - Var Vertex - ObjectOperatorTkn *token.Token - Property Vertex + Position *position.Position + Var Vertex + ObjectOperatorTkn *token.Token + OpenCurlyBracketTkn *token.Token + Property Vertex + CloseCurlyBracketTkn *token.Token } func (n *ExprPropertyFetch) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 9778215..11f3159 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1326,7 +1326,9 @@ func (v *Dumper) ExprMethodCall(n *ast.ExprMethodCall) { v.dumpPosition(n.Position) v.dumpVertex("Var", n.Var) v.dumpToken("ObjectOperatorTkn", n.ObjectOperatorTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertex("Method", n.Method) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) v.dumpVertexList("Arguments", n.Arguments) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) @@ -1419,7 +1421,9 @@ func (v *Dumper) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.dumpPosition(n.Position) v.dumpVertex("Var", n.Var) v.dumpToken("ObjectOperatorTkn", n.ObjectOperatorTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertex("Property", n.Property) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.indent-- v.print(v.indent, "},\n") diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 7fde3cb..9dd5d00 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1290,6 +1290,17 @@ func (f *formatter) ExprList(n *ast.ExprList) { func (f *formatter) ExprMethodCall(n *ast.ExprMethodCall) { n.Var.Accept(f) n.ObjectOperatorTkn = f.newToken(token.T_OBJECT_OPERATOR, []byte("->")) + + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil + switch n.Method.(type) { + case *ast.Identifier: + case *ast.ExprVariable: + default: + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + } + n.Method.Accept(f) n.OpenParenthesisTkn = f.newToken('(', []byte("(")) @@ -1346,6 +1357,17 @@ func (f *formatter) ExprPrint(n *ast.ExprPrint) { func (f *formatter) ExprPropertyFetch(n *ast.ExprPropertyFetch) { n.Var.Accept(f) n.ObjectOperatorTkn = f.newToken(token.T_OBJECT_OPERATOR, []byte("->")) + + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil + switch n.Property.(type) { + case *ast.Identifier: + case *ast.ExprVariable: + default: + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + } + n.Property.Accept(f) } diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index 62580e7..bc08e81 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -4216,6 +4216,34 @@ func TestFormatter_ExprMethodCall(t *testing.T) { } } +func TestFormatter_ExprMethodCall_Expr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprMethodCall{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Method: &ast.ScalarString{ + Value: []byte("'bar'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo->{'bar'}()` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_ExprMethodCall_Arguments(t *testing.T) { o := bytes.NewBufferString("") @@ -4483,6 +4511,34 @@ func TestFormatter_ExprPropertyFetch(t *testing.T) { } } +func TestFormatter_ExprPropertyFetch_Expr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprPropertyFetch{ + Var: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + Property: &ast.ScalarString{ + Value: []byte("'bar'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `$foo->{'bar'}` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_ExprRequire(t *testing.T) { o := bytes.NewBufferString("") diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 99db93a..d4ac78a 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -772,7 +772,9 @@ func (p *printer) ExprList(n *ast.ExprList) { func (p *printer) ExprMethodCall(n *ast.ExprMethodCall) { p.printNode(n.Var) p.printToken(n.ObjectOperatorTkn, []byte("->")) + p.printToken(n.OpenCurlyBracketTkn, nil) p.printNode(n.Method) + p.printToken(n.CloseCurlyBracketTkn, nil) p.printToken(n.OpenParenthesisTkn, []byte("(")) p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, []byte(")")) @@ -814,7 +816,9 @@ func (p *printer) ExprPrint(n *ast.ExprPrint) { func (p *printer) ExprPropertyFetch(n *ast.ExprPropertyFetch) { p.printNode(n.Var) p.printToken(n.ObjectOperatorTkn, []byte("->")) + p.printToken(n.OpenCurlyBracketTkn, nil) p.printNode(n.Property) + p.printToken(n.CloseCurlyBracketTkn, nil) } func (p *printer) ExprRequire(n *ast.ExprRequire) { From ad884c99df00ca08f49513739f12a26bda696aa6 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sun, 27 Dec 2020 23:19:49 +0200 Subject: [PATCH 130/140] refactoring: update ast structure of "StaticCall" node --- internal/php5/php5.go | 410 ++++++++++++++++-------------- internal/php5/php5.y | 20 +- internal/php7/php7.go | 240 +++++++++-------- internal/php7/php7.y | 20 +- pkg/ast/node.go | 18 +- pkg/ast/visitor/dumper.go | 2 + pkg/ast/visitor/formatter.go | 11 + pkg/ast/visitor/formatter_test.go | 30 +++ pkg/ast/visitor/printer.go | 2 + 9 files changed, 432 insertions(+), 321 deletions(-) diff --git a/internal/php5/php5.go b/internal/php5/php5.go index a2bd33c..4e5baf8 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5661 +// line internal/php5/php5.y:5677 // line yacctab:1 var yyExca = [...]int{ @@ -6084,7 +6084,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:3690 { - yyVAL.node = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -6094,10 +6094,18 @@ yydefault: SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.node = staticCall } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3703 + // line internal/php5/php5.y:3711 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6112,9 +6120,9 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3716 + // line internal/php5/php5.y:3724 { - yyVAL.node = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -6124,10 +6132,18 @@ yydefault: SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.node = staticCall } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3729 + // line internal/php5/php5.y:3745 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6142,7 +6158,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3742 + // line internal/php5/php5.y:3758 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -6155,7 +6171,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3756 + // line internal/php5/php5.y:3772 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6165,7 +6181,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3764 + // line internal/php5/php5.y:3780 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6175,7 +6191,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3772 + // line internal/php5/php5.y:3788 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6187,7 +6203,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3782 + // line internal/php5/php5.y:3798 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6198,7 +6214,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3794 + // line internal/php5/php5.y:3810 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6208,7 +6224,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3802 + // line internal/php5/php5.y:3818 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6220,7 +6236,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3812 + // line internal/php5/php5.y:3828 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6231,19 +6247,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3824 + // line internal/php5/php5.y:3840 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3828 + // line internal/php5/php5.y:3844 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3835 + // line internal/php5/php5.y:3851 { yyVAL.node = yyDollar[1].node @@ -6279,25 +6295,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3869 + // line internal/php5/php5.y:3885 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3877 + // line internal/php5/php5.y:3893 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3881 + // line internal/php5/php5.y:3897 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3889 + // line internal/php5/php5.y:3905 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6305,13 +6321,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3898 + // line internal/php5/php5.y:3914 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3902 + // line internal/php5/php5.y:3918 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6321,19 +6337,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3910 + // line internal/php5/php5.y:3926 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3917 + // line internal/php5/php5.y:3933 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3921 + // line internal/php5/php5.y:3937 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6345,25 +6361,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3931 + // line internal/php5/php5.y:3947 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3938 + // line internal/php5/php5.y:3954 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3942 + // line internal/php5/php5.y:3958 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3949 + // line internal/php5/php5.y:3965 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6373,7 +6389,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3957 + // line internal/php5/php5.y:3973 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6383,7 +6399,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3965 + // line internal/php5/php5.y:3981 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6393,7 +6409,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3973 + // line internal/php5/php5.y:3989 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6403,7 +6419,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3981 + // line internal/php5/php5.y:3997 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6413,7 +6429,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3989 + // line internal/php5/php5.y:4005 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6423,7 +6439,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3997 + // line internal/php5/php5.y:4013 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6433,7 +6449,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4005 + // line internal/php5/php5.y:4021 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6443,7 +6459,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4013 + // line internal/php5/php5.y:4029 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6453,7 +6469,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4021 + // line internal/php5/php5.y:4037 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6463,7 +6479,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4029 + // line internal/php5/php5.y:4045 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6480,7 +6496,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4044 + // line internal/php5/php5.y:4060 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6490,7 +6506,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4055 + // line internal/php5/php5.y:4071 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6505,25 +6521,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4071 + // line internal/php5/php5.y:4087 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4078 + // line internal/php5/php5.y:4094 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4082 + // line internal/php5/php5.y:4098 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4086 + // line internal/php5/php5.y:4102 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6536,7 +6552,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4097 + // line internal/php5/php5.y:4113 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6551,7 +6567,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4110 + // line internal/php5/php5.y:4126 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6565,7 +6581,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4122 + // line internal/php5/php5.y:4138 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6578,7 +6594,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4133 + // line internal/php5/php5.y:4149 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6590,13 +6606,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4143 + // line internal/php5/php5.y:4159 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4147 + // line internal/php5/php5.y:4163 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6606,13 +6622,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4155 + // line internal/php5/php5.y:4171 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4162 + // line internal/php5/php5.y:4178 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6624,7 +6640,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4172 + // line internal/php5/php5.y:4188 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6635,7 +6651,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4181 + // line internal/php5/php5.y:4197 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6646,7 +6662,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4190 + // line internal/php5/php5.y:4206 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6657,7 +6673,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4199 + // line internal/php5/php5.y:4215 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6668,7 +6684,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4208 + // line internal/php5/php5.y:4224 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6679,7 +6695,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4217 + // line internal/php5/php5.y:4233 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6690,7 +6706,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4226 + // line internal/php5/php5.y:4242 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6700,7 +6716,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4234 + // line internal/php5/php5.y:4250 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6710,7 +6726,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4258 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6721,7 +6737,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4251 + // line internal/php5/php5.y:4267 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6732,7 +6748,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4260 + // line internal/php5/php5.y:4276 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6743,7 +6759,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4269 + // line internal/php5/php5.y:4285 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6754,7 +6770,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4278 + // line internal/php5/php5.y:4294 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6765,7 +6781,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4287 + // line internal/php5/php5.y:4303 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6776,7 +6792,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4296 + // line internal/php5/php5.y:4312 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6787,7 +6803,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4305 + // line internal/php5/php5.y:4321 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6798,7 +6814,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4314 + // line internal/php5/php5.y:4330 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6809,7 +6825,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4323 + // line internal/php5/php5.y:4339 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6820,7 +6836,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4332 + // line internal/php5/php5.y:4348 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6831,7 +6847,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4341 + // line internal/php5/php5.y:4357 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6842,7 +6858,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4350 + // line internal/php5/php5.y:4366 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6853,7 +6869,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4359 + // line internal/php5/php5.y:4375 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6864,7 +6880,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4368 + // line internal/php5/php5.y:4384 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6875,7 +6891,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4377 + // line internal/php5/php5.y:4393 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6886,7 +6902,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4386 + // line internal/php5/php5.y:4402 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6897,7 +6913,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4395 + // line internal/php5/php5.y:4411 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6908,7 +6924,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4404 + // line internal/php5/php5.y:4420 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6919,7 +6935,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4413 + // line internal/php5/php5.y:4429 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6931,7 +6947,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4423 + // line internal/php5/php5.y:4439 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -6944,7 +6960,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4434 + // line internal/php5/php5.y:4450 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6954,7 +6970,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4442 + // line internal/php5/php5.y:4458 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6964,7 +6980,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4450 + // line internal/php5/php5.y:4466 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6975,13 +6991,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4462 + // line internal/php5/php5.y:4478 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4466 + // line internal/php5/php5.y:4482 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6994,7 +7010,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4477 + // line internal/php5/php5.y:4493 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -7009,7 +7025,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4490 + // line internal/php5/php5.y:4506 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -7023,7 +7039,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4505 + // line internal/php5/php5.y:4521 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7036,25 +7052,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4516 + // line internal/php5/php5.y:4532 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4520 + // line internal/php5/php5.y:4536 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4524 + // line internal/php5/php5.y:4540 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4528 + // line internal/php5/php5.y:4544 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7065,7 +7081,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4537 + // line internal/php5/php5.y:4553 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7076,7 +7092,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4546 + // line internal/php5/php5.y:4562 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7086,13 +7102,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4557 + // line internal/php5/php5.y:4573 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4561 + // line internal/php5/php5.y:4577 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7103,19 +7119,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4573 + // line internal/php5/php5.y:4589 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4577 + // line internal/php5/php5.y:4593 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4584 + // line internal/php5/php5.y:4600 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7131,7 +7147,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4598 + // line internal/php5/php5.y:4614 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7145,7 +7161,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4610 + // line internal/php5/php5.y:4626 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7160,7 +7176,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4623 + // line internal/php5/php5.y:4639 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7173,19 +7189,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4637 + // line internal/php5/php5.y:4653 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4641 + // line internal/php5/php5.y:4657 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4648 + // line internal/php5/php5.y:4664 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7196,7 +7212,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4657 + // line internal/php5/php5.y:4673 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7207,25 +7223,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4670 + // line internal/php5/php5.y:4686 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4678 + // line internal/php5/php5.y:4694 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4685 + // line internal/php5/php5.y:4701 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4692 + // line internal/php5/php5.y:4708 { yyVAL.node = yyDollar[1].node @@ -7304,25 +7320,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4769 + // line internal/php5/php5.y:4785 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4776 + // line internal/php5/php5.y:4792 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4780 + // line internal/php5/php5.y:4796 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4788 + // line internal/php5/php5.y:4804 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7353,7 +7369,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4820 + // line internal/php5/php5.y:4836 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7367,7 +7383,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4832 + // line internal/php5/php5.y:4848 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7381,7 +7397,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4847 + // line internal/php5/php5.y:4863 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7393,31 +7409,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4860 + // line internal/php5/php5.y:4876 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4864 + // line internal/php5/php5.y:4880 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4868 + // line internal/php5/php5.y:4884 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4875 + // line internal/php5/php5.y:4891 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4879 + // line internal/php5/php5.y:4895 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7429,7 +7445,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4892 + // line internal/php5/php5.y:4908 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7440,7 +7456,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4901 + // line internal/php5/php5.y:4917 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7451,13 +7467,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4913 + // line internal/php5/php5.y:4929 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4920 + // line internal/php5/php5.y:4936 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7469,7 +7485,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4930 + // line internal/php5/php5.y:4946 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7481,31 +7497,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4943 + // line internal/php5/php5.y:4959 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4947 + // line internal/php5/php5.y:4963 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4951 + // line internal/php5/php5.y:4967 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4959 + // line internal/php5/php5.y:4975 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4963 + // line internal/php5/php5.y:4979 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7517,13 +7533,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4973 + // line internal/php5/php5.y:4989 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4980 + // line internal/php5/php5.y:4996 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7535,7 +7551,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4990 + // line internal/php5/php5.y:5006 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7547,13 +7563,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5000 + // line internal/php5/php5.y:5016 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5008 + // line internal/php5/php5.y:5024 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7566,7 +7582,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5019 + // line internal/php5/php5.y:5035 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7578,25 +7594,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5048 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5036 + // line internal/php5/php5.y:5052 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5044 + // line internal/php5/php5.y:5060 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5048 + // line internal/php5/php5.y:5064 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7607,7 +7623,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5060 + // line internal/php5/php5.y:5076 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7621,7 +7637,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5072 + // line internal/php5/php5.y:5088 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7635,7 +7651,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5084 + // line internal/php5/php5.y:5100 { property := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7652,7 +7668,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5102 + // line internal/php5/php5.y:5118 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7662,7 +7678,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5110 + // line internal/php5/php5.y:5126 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7673,7 +7689,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5122 + // line internal/php5/php5.y:5138 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7684,7 +7700,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5131 + // line internal/php5/php5.y:5147 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7693,7 +7709,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5141 + // line internal/php5/php5.y:5157 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7702,7 +7718,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5148 + // line internal/php5/php5.y:5164 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7710,7 +7726,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5158 + // line internal/php5/php5.y:5174 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7719,7 +7735,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5165 + // line internal/php5/php5.y:5181 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7742,19 +7758,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5186 + // line internal/php5/php5.y:5202 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5194 + // line internal/php5/php5.y:5210 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5198 + // line internal/php5/php5.y:5214 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7765,7 +7781,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5210 + // line internal/php5/php5.y:5226 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7781,7 +7797,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5224 + // line internal/php5/php5.y:5240 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7795,7 +7811,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5236 + // line internal/php5/php5.y:5252 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7810,7 +7826,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5249 + // line internal/php5/php5.y:5265 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7823,7 +7839,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5260 + // line internal/php5/php5.y:5276 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7840,7 +7856,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5275 + // line internal/php5/php5.y:5291 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7855,7 +7871,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5288 + // line internal/php5/php5.y:5304 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7871,7 +7887,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5318 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7885,13 +7901,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5317 + // line internal/php5/php5.y:5333 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5321 + // line internal/php5/php5.y:5337 { yyVAL.list = append( yyDollar[1].list, @@ -7904,13 +7920,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5332 + // line internal/php5/php5.y:5348 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5336 + // line internal/php5/php5.y:5352 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7923,7 +7939,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5350 + // line internal/php5/php5.y:5366 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7936,7 +7952,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5361 + // line internal/php5/php5.y:5377 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7955,7 +7971,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5378 + // line internal/php5/php5.y:5394 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7977,7 +7993,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5398 + // line internal/php5/php5.y:5414 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7991,7 +8007,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5410 + // line internal/php5/php5.y:5426 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8009,7 +8025,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5426 + // line internal/php5/php5.y:5442 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -8033,7 +8049,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5448 + // line internal/php5/php5.y:5464 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8044,7 +8060,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5460 + // line internal/php5/php5.y:5476 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8054,7 +8070,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5468 + // line internal/php5/php5.y:5484 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8073,7 +8089,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5485 + // line internal/php5/php5.y:5501 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8086,7 +8102,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5499 + // line internal/php5/php5.y:5515 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8099,7 +8115,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5510 + // line internal/php5/php5.y:5526 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8111,7 +8127,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5520 + // line internal/php5/php5.y:5536 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8123,7 +8139,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5530 + // line internal/php5/php5.y:5546 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8133,7 +8149,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5538 + // line internal/php5/php5.y:5554 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8143,7 +8159,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5562 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8155,7 +8171,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5556 + // line internal/php5/php5.y:5572 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8165,7 +8181,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5564 + // line internal/php5/php5.y:5580 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8175,7 +8191,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5575 + // line internal/php5/php5.y:5591 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8183,7 +8199,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5581 + // line internal/php5/php5.y:5597 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8192,19 +8208,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5607 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5595 + // line internal/php5/php5.y:5611 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5602 + // line internal/php5/php5.y:5618 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8219,7 +8235,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5615 + // line internal/php5/php5.y:5631 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8234,7 +8250,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5631 + // line internal/php5/php5.y:5647 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8249,7 +8265,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5647 + // line internal/php5/php5.y:5663 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index ba55690..a9d05ee 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -3688,7 +3688,7 @@ function_call: } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, @@ -3698,6 +3698,14 @@ function_call: SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := $3.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = staticCall } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { @@ -3714,7 +3722,7 @@ function_call: } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list { - $$ = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, @@ -3724,6 +3732,14 @@ function_call: SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := $3.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = staticCall } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects function_call_parameter_list { diff --git a/internal/php7/php7.go b/internal/php7/php7.go index bdd9dc6..72e8ddc 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4374 +// line internal/php7/php7.y:4390 // line yacctab:1 var yyExca = [...]int{ @@ -5913,7 +5913,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3323 { - yyVAL.node = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -5923,12 +5923,20 @@ yydefault: SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.node = staticCall } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3336 + // line internal/php7/php7.y:3344 { - yyVAL.node = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -5938,10 +5946,18 @@ yydefault: SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + yyVAL.node = staticCall } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3349 + // line internal/php7/php7.y:3365 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5954,7 +5970,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3363 + // line internal/php7/php7.y:3379 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5964,31 +5980,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3371 + // line internal/php7/php7.y:3387 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3378 + // line internal/php7/php7.y:3394 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3382 + // line internal/php7/php7.y:3398 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3389 + // line internal/php7/php7.y:3405 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3393 + // line internal/php7/php7.y:3409 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5999,13 +6015,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3405 + // line internal/php7/php7.y:3421 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3409 + // line internal/php7/php7.y:3425 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6017,25 +6033,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3419 + // line internal/php7/php7.y:3435 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3426 + // line internal/php7/php7.y:3442 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3430 + // line internal/php7/php7.y:3446 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3437 + // line internal/php7/php7.y:3453 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6048,7 +6064,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3448 + // line internal/php7/php7.y:3464 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6060,7 +6076,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3458 + // line internal/php7/php7.y:3474 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6070,7 +6086,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3469 + // line internal/php7/php7.y:3485 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6080,7 +6096,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3477 + // line internal/php7/php7.y:3493 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6090,7 +6106,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3485 + // line internal/php7/php7.y:3501 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6100,7 +6116,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3493 + // line internal/php7/php7.y:3509 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6110,7 +6126,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3517 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6120,7 +6136,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3525 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6130,7 +6146,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3517 + // line internal/php7/php7.y:3533 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6140,7 +6156,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6150,7 +6166,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3533 + // line internal/php7/php7.y:3549 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6160,7 +6176,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3541 + // line internal/php7/php7.y:3557 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6170,7 +6186,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3549 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6187,7 +6203,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3564 + // line internal/php7/php7.y:3580 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6197,7 +6213,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3572 + // line internal/php7/php7.y:3588 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6208,7 +6224,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3597 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6219,19 +6235,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3590 + // line internal/php7/php7.y:3606 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3594 + // line internal/php7/php7.y:3610 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3601 + // line internal/php7/php7.y:3617 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6240,7 +6256,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3608 + // line internal/php7/php7.y:3624 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6255,7 +6271,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3621 + // line internal/php7/php7.y:3637 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6270,43 +6286,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3637 + // line internal/php7/php7.y:3653 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3641 + // line internal/php7/php7.y:3657 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3648 + // line internal/php7/php7.y:3664 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3652 + // line internal/php7/php7.y:3668 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3659 + // line internal/php7/php7.y:3675 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3666 + // line internal/php7/php7.y:3682 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3670 + // line internal/php7/php7.y:3686 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6317,19 +6333,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3679 + // line internal/php7/php7.y:3695 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3686 + // line internal/php7/php7.y:3702 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3690 + // line internal/php7/php7.y:3706 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6340,19 +6356,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3699 + // line internal/php7/php7.y:3715 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3706 + // line internal/php7/php7.y:3722 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3710 + // line internal/php7/php7.y:3726 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6364,7 +6380,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3720 + // line internal/php7/php7.y:3736 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6376,7 +6392,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3730 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6388,7 +6404,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3740 + // line internal/php7/php7.y:3756 { methodCall := &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6411,25 +6427,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3761 + // line internal/php7/php7.y:3777 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3768 + // line internal/php7/php7.y:3784 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3772 + // line internal/php7/php7.y:3788 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3776 + // line internal/php7/php7.y:3792 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6448,7 +6464,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3796 + // line internal/php7/php7.y:3812 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6461,7 +6477,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3807 + // line internal/php7/php7.y:3823 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6473,7 +6489,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3817 + // line internal/php7/php7.y:3833 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6483,7 +6499,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3828 + // line internal/php7/php7.y:3844 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6494,7 +6510,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3837 + // line internal/php7/php7.y:3853 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6505,13 +6521,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3849 + // line internal/php7/php7.y:3865 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3869 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6523,7 +6539,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3879 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6535,7 +6551,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3873 + // line internal/php7/php7.y:3889 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6554,7 +6570,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3890 + // line internal/php7/php7.y:3906 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6565,7 +6581,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3899 + // line internal/php7/php7.y:3915 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6576,7 +6592,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3911 + // line internal/php7/php7.y:3927 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6586,7 +6602,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3919 + // line internal/php7/php7.y:3935 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6597,13 +6613,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3928 + // line internal/php7/php7.y:3944 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3935 + // line internal/php7/php7.y:3951 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6613,7 +6629,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3943 + // line internal/php7/php7.y:3959 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6624,13 +6640,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3952 + // line internal/php7/php7.y:3968 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3975 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6643,19 +6659,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3973 + // line internal/php7/php7.y:3989 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3977 + // line internal/php7/php7.y:3993 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3984 + // line internal/php7/php7.y:4000 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6664,7 +6680,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3991 + // line internal/php7/php7.y:4007 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6672,7 +6688,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4000 + // line internal/php7/php7.y:4016 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6683,7 +6699,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4009 + // line internal/php7/php7.y:4025 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6692,7 +6708,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4032 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6704,7 +6720,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4026 + // line internal/php7/php7.y:4042 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6714,7 +6730,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4034 + // line internal/php7/php7.y:4050 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6724,7 +6740,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4058 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6742,7 +6758,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4058 + // line internal/php7/php7.y:4074 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6758,13 +6774,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4075 + // line internal/php7/php7.y:4091 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4079 + // line internal/php7/php7.y:4095 { yyVAL.list = append( yyDollar[1].list, @@ -6777,13 +6793,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4090 + // line internal/php7/php7.y:4106 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4094 + // line internal/php7/php7.y:4110 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6796,7 +6812,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4108 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6809,7 +6825,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4119 + // line internal/php7/php7.y:4135 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6828,7 +6844,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4136 + // line internal/php7/php7.y:4152 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6850,7 +6866,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4156 + // line internal/php7/php7.y:4172 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6864,7 +6880,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4168 + // line internal/php7/php7.y:4184 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6882,7 +6898,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4184 + // line internal/php7/php7.y:4200 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -6906,7 +6922,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4206 + // line internal/php7/php7.y:4222 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6917,7 +6933,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4218 + // line internal/php7/php7.y:4234 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6927,7 +6943,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4226 + // line internal/php7/php7.y:4242 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6946,7 +6962,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4243 + // line internal/php7/php7.y:4259 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6972,7 +6988,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4267 + // line internal/php7/php7.y:4283 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6985,7 +7001,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4281 + // line internal/php7/php7.y:4297 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7002,7 +7018,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4296 + // line internal/php7/php7.y:4312 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7014,7 +7030,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4306 + // line internal/php7/php7.y:4322 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7024,7 +7040,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4314 + // line internal/php7/php7.y:4330 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7034,7 +7050,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4322 + // line internal/php7/php7.y:4338 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7046,7 +7062,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4332 + // line internal/php7/php7.y:4348 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7056,7 +7072,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4340 + // line internal/php7/php7.y:4356 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7066,7 +7082,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4351 + // line internal/php7/php7.y:4367 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7074,7 +7090,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4357 + // line internal/php7/php7.y:4373 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7083,7 +7099,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4367 + // line internal/php7/php7.y:4383 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 078c6eb..dbb58b7 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -3321,7 +3321,7 @@ function_call: } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { - $$ = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, @@ -3331,10 +3331,18 @@ function_call: SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := $3.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = staticCall } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list { - $$ = &ast.ExprStaticCall{ + staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), Class: $1, DoubleColonTkn: $2, @@ -3344,6 +3352,14 @@ function_call: SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, } + + if brackets, ok := $3.(*ast.ParserBrackets); ok { + staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn + staticCall.Call = brackets.Child + staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn + } + + $$ = staticCall } | callable_expr argument_list { diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 7a89a90..290a51a 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1681,14 +1681,16 @@ func (n *ExprShellExec) GetPosition() *position.Position { // ExprStaticCall node type ExprStaticCall struct { - Position *position.Position - Class Vertex - DoubleColonTkn *token.Token - Call Vertex - OpenParenthesisTkn *token.Token - Arguments []Vertex - SeparatorTkns []*token.Token - CloseParenthesisTkn *token.Token + Position *position.Position + Class Vertex + DoubleColonTkn *token.Token + OpenCurlyBracketTkn *token.Token + Call Vertex + CloseCurlyBracketTkn *token.Token + OpenParenthesisTkn *token.Token + Arguments []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token } func (n *ExprStaticCall) Accept(v NodeVisitor) { diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 11f3159..dde094a 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1473,7 +1473,9 @@ func (v *Dumper) ExprStaticCall(n *ast.ExprStaticCall) { v.dumpPosition(n.Position) v.dumpVertex("Class", n.Class) v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertex("Call", n.Call) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) v.dumpVertexList("Arguments", n.Arguments) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 9dd5d00..c698359 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1394,6 +1394,17 @@ func (f *formatter) ExprShellExec(n *ast.ExprShellExec) { func (f *formatter) ExprStaticCall(n *ast.ExprStaticCall) { n.Class.Accept(f) n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) + + n.OpenCurlyBracketTkn = nil + n.CloseCurlyBracketTkn = nil + switch n.Call.(type) { + case *ast.Identifier: + case *ast.ExprVariable: + default: + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) + } + n.Call.Accept(f) n.OpenParenthesisTkn = f.newToken('(', []byte("(")) diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index bc08e81..8180fdb 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -4692,6 +4692,36 @@ func TestFormatter_ExprStaticCall(t *testing.T) { } } +func TestFormatter_ExprStaticCall_Expr(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprStaticCall{ + Class: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Call: &ast.ScalarString{ + Value: []byte("'bar'"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo::{'bar'}()` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_ExprStaticCall_Arguments(t *testing.T) { o := bytes.NewBufferString("") diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index d4ac78a..23b23f1 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -840,7 +840,9 @@ func (p *printer) ExprShellExec(n *ast.ExprShellExec) { func (p *printer) ExprStaticCall(n *ast.ExprStaticCall) { p.printNode(n.Class) p.printToken(n.DoubleColonTkn, []byte("::")) + p.printToken(n.OpenCurlyBracketTkn, nil) p.printNode(n.Call) + p.printToken(n.CloseCurlyBracketTkn, nil) p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("("))) p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) From e4321b5e9023da7605a8aaf819af47f053c866b8 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 28 Dec 2020 00:02:14 +0200 Subject: [PATCH 131/140] refactoring: create "ExprBrackets" node --- internal/php5/parser_test.go | 54 ++++++++--------- internal/php5/php5.go | 96 +++++++++++++++---------------- internal/php5/php5.y | 86 +++++++++++++-------------- internal/php7/parser_test.go | 40 ++++++------- internal/php7/php7.go | 46 +++++++-------- internal/php7/php7.y | 38 ++++++------ pkg/ast/ast.go | 1 + pkg/ast/node.go | 15 +++++ pkg/ast/traverser/dfs.go | 12 ++++ pkg/ast/visitor/dumper.go | 13 +++++ pkg/ast/visitor/formatter.go | 6 ++ pkg/ast/visitor/formatter_test.go | 25 ++++++++ pkg/ast/visitor/null.go | 4 ++ pkg/ast/visitor/printer.go | 6 ++ pkg/ast/visitor/printer_test.go | 19 ++++++ 15 files changed, 281 insertions(+), 180 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 889fb3c..928496a 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -11513,14 +11513,14 @@ func TestStmtContinue(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 23, EndPos: 26, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -11530,7 +11530,7 @@ func TestStmtContinue(t *testing.T) { EndPos: 24, }, }, - Child: &ast.ScalarLnumber{ + Expr: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11549,7 +11549,7 @@ func TestStmtContinue(t *testing.T) { }, Value: []byte("3"), }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -12598,14 +12598,14 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, }, Exprs: []ast.Vertex{ - &ast.ParserBrackets{ + &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 11, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -12615,7 +12615,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { EndPos: 8, }, }, - Child: &ast.ExprVariable{ + Expr: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -12642,7 +12642,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { Value: []byte("$a"), }, }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -12694,14 +12694,14 @@ func TestStmtExpression(t *testing.T) { StartPos: 3, EndPos: 9, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 8, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -12733,14 +12733,14 @@ func TestStmtExpression(t *testing.T) { }, }, }, - Child: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 4, EndPos: 7, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -12750,7 +12750,7 @@ func TestStmtExpression(t *testing.T) { EndPos: 5, }, }, - Child: &ast.ScalarLnumber{ + Expr: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -12769,7 +12769,7 @@ func TestStmtExpression(t *testing.T) { }, Value: []byte("1"), }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -12780,7 +12780,7 @@ func TestStmtExpression(t *testing.T) { }, }, }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -29993,14 +29993,14 @@ func TestStmtBreak(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 20, EndPos: 23, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -30010,7 +30010,7 @@ func TestStmtBreak(t *testing.T) { EndPos: 21, }, }, - Child: &ast.ScalarLnumber{ + Expr: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30029,7 +30029,7 @@ func TestStmtBreak(t *testing.T) { }, Value: []byte("3"), }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -31402,14 +31402,14 @@ func TestExprClone_Brackets(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 12, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -31419,7 +31419,7 @@ func TestExprClone_Brackets(t *testing.T) { EndPos: 9, }, }, - Child: &ast.ExprVariable{ + Expr: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31446,7 +31446,7 @@ func TestExprClone_Brackets(t *testing.T) { Value: []byte("$a"), }, }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -38335,14 +38335,14 @@ func TestExprPrint(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 12, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -38352,7 +38352,7 @@ func TestExprPrint(t *testing.T) { EndPos: 9, }, }, - Child: &ast.ExprVariable{ + Expr: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38379,7 +38379,7 @@ func TestExprPrint(t *testing.T) { Value: []byte("$a"), }, }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 4e5baf8..ce0b005 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2888,9 +2888,9 @@ yydefault: yyVAL.node = &ast.StmtIf{ Position: pos, IfTkn: yyDollar[1].token, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, - Cond: yyDollar[2].node.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: yyDollar[2].node.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ExprBrackets).CloseParenthesisTkn, Stmt: yyDollar[3].node, ElseIf: yyDollar[4].list, Else: yyDollar[5].node, @@ -2903,9 +2903,9 @@ yydefault: yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), IfTkn: yyDollar[1].token, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn, - Cond: yyDollar[2].node.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: yyDollar[2].node.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: yyDollar[2].node.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: yyDollar[2].node.(*ast.ExprBrackets).CloseParenthesisTkn, ColonTkn: yyDollar[3].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[4].list), @@ -2922,9 +2922,9 @@ yydefault: // line internal/php5/php5.y:818 { yyDollar[3].node.(*ast.StmtWhile).WhileTkn = yyDollar[1].token - yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn - yyDollar[3].node.(*ast.StmtWhile).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child - yyDollar[3].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn + yyDollar[3].node.(*ast.StmtWhile).OpenParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).OpenParenthesisTkn + yyDollar[3].node.(*ast.StmtWhile).Cond = yyDollar[2].node.(*ast.ExprBrackets).Expr + yyDollar[3].node.(*ast.StmtWhile).CloseParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).CloseParenthesisTkn yyDollar[3].node.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node @@ -2938,9 +2938,9 @@ yydefault: DoTkn: yyDollar[1].token, Stmt: yyDollar[2].node, WhileTkn: yyDollar[3].token, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ParserBrackets).OpenBracketTkn, - Cond: yyDollar[4].node.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: yyDollar[4].node.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: yyDollar[4].node.(*ast.ExprBrackets).CloseParenthesisTkn, SemiColonTkn: yyDollar[5].token, } } @@ -2968,9 +2968,9 @@ yydefault: // line internal/php5/php5.y:858 { yyDollar[3].node.(*ast.StmtSwitch).SwitchTkn = yyDollar[1].token - yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn - yyDollar[3].node.(*ast.StmtSwitch).Cond = yyDollar[2].node.(*ast.ParserBrackets).Child - yyDollar[3].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn + yyDollar[3].node.(*ast.StmtSwitch).OpenParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).OpenParenthesisTkn + yyDollar[3].node.(*ast.StmtSwitch).Cond = yyDollar[2].node.(*ast.ExprBrackets).Expr + yyDollar[3].node.(*ast.StmtSwitch).CloseParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).CloseParenthesisTkn yyDollar[3].node.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node) yyVAL.node = yyDollar[3].node @@ -3891,9 +3891,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), ElseIfTkn: yyDollar[2].token, - OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, - Cond: yyDollar[3].node.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: yyDollar[3].node.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ExprBrackets).CloseParenthesisTkn, Stmt: yyDollar[4].node, }) } @@ -3910,9 +3910,9 @@ yydefault: yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), ElseIfTkn: yyDollar[2].token, - OpenParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).OpenBracketTkn, - Cond: yyDollar[3].node.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: yyDollar[3].node.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: yyDollar[3].node.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: yyDollar[3].node.(*ast.ExprBrackets).CloseParenthesisTkn, ColonTkn: yyDollar[4].token, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[5].list), @@ -5549,11 +5549,11 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:3216 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } for _, n := range yyDollar[4].list { @@ -5693,9 +5693,9 @@ yydefault: exit.Position = yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token) } else { exit.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn - exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child - exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn + exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).OpenParenthesisTkn + exit.Expr = yyDollar[2].node.(*ast.ExprBrackets).Expr + exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).CloseParenthesisTkn } yyVAL.node = exit @@ -6329,10 +6329,10 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:3918 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - OpenBracketTkn: yyDollar[1].token, - CloseBracketTkn: yyDollar[2].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), + OpenParenthesisTkn: yyDollar[1].token, + CloseParenthesisTkn: yyDollar[2].token, } } case 347: @@ -6982,11 +6982,11 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:4466 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } } case 410: @@ -7203,22 +7203,22 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:4664 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } } case 432: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:4673 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } } case 433: diff --git a/internal/php5/php5.y b/internal/php5/php5.y index a9d05ee..245e18a 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -787,9 +787,9 @@ unticked_statement: $$ = &ast.StmtIf{ Position: pos, IfTkn: $1, - OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, - Cond: $2.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: $2.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: $2.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: $2.(*ast.ExprBrackets).CloseParenthesisTkn, Stmt: $3, ElseIf: $4, Else: $5, @@ -800,9 +800,9 @@ unticked_statement: $$ = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), IfTkn: $1, - OpenParenthesisTkn: $2.(*ast.ParserBrackets).OpenBracketTkn, - Cond: $2.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: $2.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: $2.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: $2.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: $2.(*ast.ExprBrackets).CloseParenthesisTkn, ColonTkn: $3, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($4), @@ -817,9 +817,9 @@ unticked_statement: | T_WHILE parenthesis_expr while_statement { $3.(*ast.StmtWhile).WhileTkn = $1 - $3.(*ast.StmtWhile).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn - $3.(*ast.StmtWhile).Cond = $2.(*ast.ParserBrackets).Child - $3.(*ast.StmtWhile).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn + $3.(*ast.StmtWhile).OpenParenthesisTkn = $2.(*ast.ExprBrackets).OpenParenthesisTkn + $3.(*ast.StmtWhile).Cond = $2.(*ast.ExprBrackets).Expr + $3.(*ast.StmtWhile).CloseParenthesisTkn = $2.(*ast.ExprBrackets).CloseParenthesisTkn $3.(*ast.StmtWhile).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $3) $$ = $3 @@ -831,9 +831,9 @@ unticked_statement: DoTkn: $1, Stmt: $2, WhileTkn: $3, - OpenParenthesisTkn: $4.(*ast.ParserBrackets).OpenBracketTkn, - Cond: $4.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: $4.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: $4.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: $4.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: $4.(*ast.ExprBrackets).CloseParenthesisTkn, SemiColonTkn: $5, } } @@ -857,9 +857,9 @@ unticked_statement: | T_SWITCH parenthesis_expr switch_case_list { $3.(*ast.StmtSwitch).SwitchTkn = $1 - $3.(*ast.StmtSwitch).OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn - $3.(*ast.StmtSwitch).Cond = $2.(*ast.ParserBrackets).Child - $3.(*ast.StmtSwitch).CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn + $3.(*ast.StmtSwitch).OpenParenthesisTkn = $2.(*ast.ExprBrackets).OpenParenthesisTkn + $3.(*ast.StmtSwitch).Cond = $2.(*ast.ExprBrackets).Expr + $3.(*ast.StmtSwitch).CloseParenthesisTkn = $2.(*ast.ExprBrackets).CloseParenthesisTkn $3.(*ast.StmtSwitch).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $3) $$ = $3 @@ -1717,9 +1717,9 @@ elseif_list: $$ = append($1, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition($2, $4), ElseIfTkn: $2, - OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, - Cond: $3.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: $3.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: $3.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: $3.(*ast.ExprBrackets).CloseParenthesisTkn, Stmt: $4, }) } @@ -1736,9 +1736,9 @@ new_elseif_list: $$ = append($1, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($2, $5), ElseIfTkn: $2, - OpenParenthesisTkn: $3.(*ast.ParserBrackets).OpenBracketTkn, - Cond: $3.(*ast.ParserBrackets).Child, - CloseParenthesisTkn: $3.(*ast.ParserBrackets).CloseBracketTkn, + OpenParenthesisTkn: $3.(*ast.ExprBrackets).OpenParenthesisTkn, + Cond: $3.(*ast.ExprBrackets).Expr, + CloseParenthesisTkn: $3.(*ast.ExprBrackets).CloseParenthesisTkn, ColonTkn: $4, Stmt: &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewNodeListPosition($5), @@ -3214,11 +3214,11 @@ expr_without_variable: } | '(' new_expr ')' instance_call { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } for _, n := range($4) { @@ -3336,9 +3336,9 @@ expr_without_variable: exit.Position = yylex.(*Parser).builder.NewTokenPosition($1) } else { exit.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) - exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn - exit.Expr = $2.(*ast.ParserBrackets).Child - exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn + exit.OpenParenthesisTkn = $2.(*ast.ExprBrackets).OpenParenthesisTkn + exit.Expr = $2.(*ast.ExprBrackets).Expr + exit.CloseParenthesisTkn = $2.(*ast.ExprBrackets).CloseParenthesisTkn } $$ = exit @@ -3916,10 +3916,10 @@ exit_expr: } | '(' ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), - OpenBracketTkn: $1, - CloseBracketTkn: $2, + OpenParenthesisTkn: $1, + CloseParenthesisTkn: $2, } } | parenthesis_expr @@ -4464,11 +4464,11 @@ static_operation: } | '(' static_scalar_value ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } } ; @@ -4662,20 +4662,20 @@ expr: parenthesis_expr: '(' expr ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } } | '(' yield_expr ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } } ; diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index b2bf948..4957b16 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -13048,14 +13048,14 @@ func TestStmtContinue(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 23, EndPos: 26, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -13065,7 +13065,7 @@ func TestStmtContinue(t *testing.T) { EndPos: 24, }, }, - Child: &ast.ScalarLnumber{ + Expr: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13084,7 +13084,7 @@ func TestStmtContinue(t *testing.T) { }, Value: []byte("3"), }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -14133,14 +14133,14 @@ func TestStmtEcho_Parenthesis(t *testing.T) { }, }, Exprs: []ast.Vertex{ - &ast.ParserBrackets{ + &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 11, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -14150,7 +14150,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { EndPos: 8, }, }, - Child: &ast.ExprVariable{ + Expr: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14177,7 +14177,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { Value: []byte("$a"), }, }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -33925,14 +33925,14 @@ func TestStmtBreak(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 20, EndPos: 23, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -33942,7 +33942,7 @@ func TestStmtBreak(t *testing.T) { EndPos: 21, }, }, - Child: &ast.ScalarLnumber{ + Expr: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33961,7 +33961,7 @@ func TestStmtBreak(t *testing.T) { }, Value: []byte("3"), }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -35900,14 +35900,14 @@ func TestExprClone_Brackets(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 12, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -35917,7 +35917,7 @@ func TestExprClone_Brackets(t *testing.T) { EndPos: 9, }, }, - Child: &ast.ExprVariable{ + Expr: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35944,7 +35944,7 @@ func TestExprClone_Brackets(t *testing.T) { Value: []byte("$a"), }, }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ @@ -43295,14 +43295,14 @@ func TestExprPrint(t *testing.T) { }, }, }, - Expr: &ast.ParserBrackets{ + Expr: &ast.ExprBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 12, }, - OpenBracketTkn: &token.Token{ + OpenParenthesisTkn: &token.Token{ ID: token.ID(40), Value: []byte("("), Position: &position.Position{ @@ -43312,7 +43312,7 @@ func TestExprPrint(t *testing.T) { EndPos: 9, }, }, - Child: &ast.ExprVariable{ + Expr: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -43339,7 +43339,7 @@ func TestExprPrint(t *testing.T) { Value: []byte("$a"), }, }, - CloseBracketTkn: &token.Token{ + CloseParenthesisTkn: &token.Token{ ID: token.ID(41), Value: []byte(")"), Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 72e8ddc..5e50fce 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -5534,11 +5534,11 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:2992 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } } case 350: @@ -5671,9 +5671,9 @@ yydefault: exit.Position = yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token) } else { exit.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) - exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).OpenBracketTkn - exit.Expr = yyDollar[2].node.(*ast.ParserBrackets).Child - exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ParserBrackets).CloseBracketTkn + exit.OpenParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).OpenParenthesisTkn + exit.Expr = yyDollar[2].node.(*ast.ExprBrackets).Expr + exit.CloseParenthesisTkn = yyDollar[2].node.(*ast.ExprBrackets).CloseParenthesisTkn } yyVAL.node = exit @@ -6006,11 +6006,11 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:3409 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } } case 394: @@ -6324,11 +6324,11 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:3686 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } } case 428: @@ -6347,11 +6347,11 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:3706 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ExprBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenParenthesisTkn: yyDollar[1].token, + Expr: yyDollar[2].node, + CloseParenthesisTkn: yyDollar[3].token, } } case 431: diff --git a/internal/php7/php7.y b/internal/php7/php7.y index dbb58b7..f388612 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2990,11 +2990,11 @@ expr_without_variable: } | '(' expr ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } } | new_expr @@ -3101,9 +3101,9 @@ expr_without_variable: exit.Position = yylex.(*Parser).builder.NewTokenPosition($1) } else { exit.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) - exit.OpenParenthesisTkn = $2.(*ast.ParserBrackets).OpenBracketTkn - exit.Expr = $2.(*ast.ParserBrackets).Child - exit.CloseParenthesisTkn = $2.(*ast.ParserBrackets).CloseBracketTkn + exit.OpenParenthesisTkn = $2.(*ast.ExprBrackets).OpenParenthesisTkn + exit.Expr = $2.(*ast.ExprBrackets).Expr + exit.CloseParenthesisTkn = $2.(*ast.ExprBrackets).CloseParenthesisTkn } $$ = exit @@ -3407,11 +3407,11 @@ exit_expr: } | '(' optional_expr ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } } ; @@ -3684,11 +3684,11 @@ dereferencable: } | '(' expr ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } } | dereferencable_scalar @@ -3704,11 +3704,11 @@ callable_expr: } | '(' expr ')' { - $$ = &ast.ParserBrackets{ + $$ = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + OpenParenthesisTkn: $1, + Expr: $2, + CloseParenthesisTkn: $3, } } | dereferencable_scalar diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 5c5494a..2debd18 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -82,6 +82,7 @@ type NodeVisitor interface { ExprArrayDimFetch(n *ExprArrayDimFetch) ExprArrayItem(n *ExprArrayItem) ExprArrowFunction(n *ExprArrowFunction) + ExprBrackets(n *ExprBrackets) ExprBitwiseNot(n *ExprBitwiseNot) ExprBooleanNot(n *ExprBooleanNot) ExprClassConstFetch(n *ExprClassConstFetch) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 290a51a..cf71bcd 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -1243,6 +1243,21 @@ func (n *ExprBooleanNot) GetPosition() *position.Position { return n.Position } +type ExprBrackets struct { + Position *position.Position + OpenParenthesisTkn *token.Token + Expr Vertex + CloseParenthesisTkn *token.Token +} + +func (n *ExprBrackets) Accept(v NodeVisitor) { + v.ExprBrackets(n) +} + +func (n *ExprBrackets) GetPosition() *position.Position { + return n.Position +} + // ExprClassConstFetch node type ExprClassConstFetch struct { Position *position.Position diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 7538f71..c41d2eb 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -1109,6 +1109,18 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Expr) t.visitor.Leave("Expr", true) } + case *ast.ExprBrackets: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Expr != nil { + t.visitor.Enter("Expr", true) + t.Traverse(nn.Expr) + t.visitor.Leave("Expr", true) + } case *ast.ExprClassConstFetch: if nn == nil { return diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index dde094a..b9c8af6 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -1108,6 +1108,19 @@ func (v *Dumper) ExprBooleanNot(n *ast.ExprBooleanNot) { v.print(v.indent, "},\n") } +func (v *Dumper) ExprBrackets(n *ast.ExprBrackets) { + v.print(0, "&ast.ExprBrackets{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) + v.dumpVertex("Expr", n.Expr) + v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + + v.indent-- + v.print(v.indent, "},\n") +} + func (v *Dumper) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.print(0, "&ast.ExprClassConstFetch{\n") v.indent++ diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index c698359..193f8b1 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1134,6 +1134,12 @@ func (f *formatter) ExprBooleanNot(n *ast.ExprBooleanNot) { n.Expr.Accept(f) } +func (f *formatter) ExprBrackets(n *ast.ExprBrackets) { + n.OpenParenthesisTkn = f.newToken('(', []byte("(")) + n.Expr.Accept(f) + n.CloseParenthesisTkn = f.newToken(')', []byte(")")) +} + func (f *formatter) ExprClassConstFetch(n *ast.ExprClassConstFetch) { n.Class.Accept(f) n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index 8180fdb..fd92dff 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -3571,6 +3571,31 @@ func TestFormatter_ExprBooleanNot(t *testing.T) { } } +func TestFormatter_ExprBrackets(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.ExprBrackets{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{ + Value: []byte("$foo"), + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `($foo)` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_ExprClassConstFetch(t *testing.T) { o := bytes.NewBufferString("") diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index 6623a75..8b8cd62 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -270,6 +270,10 @@ func (v *Null) ExprBooleanNot(_ *ast.ExprBooleanNot) { // do nothing } +func (v *Null) ExprBrackets(_ *ast.ExprBrackets) { + // do nothing +} + func (v *Null) ExprClassConstFetch(_ *ast.ExprClassConstFetch) { // do nothing } diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 23b23f1..a57729e 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -668,6 +668,12 @@ func (p *printer) ExprBooleanNot(n *ast.ExprBooleanNot) { p.printNode(n.Expr) } +func (p *printer) ExprBrackets(n *ast.ExprBrackets) { + p.printToken(n.OpenParenthesisTkn, nil) + p.printNode(n.Expr) + p.printToken(n.CloseParenthesisTkn, nil) +} + func (p *printer) ExprClassConstFetch(n *ast.ExprClassConstFetch) { p.printNode(n.Class) p.printToken(n.DoubleColonTkn, []byte("::")) diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 621ea27..1d4bcb1 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -1696,6 +1696,25 @@ func TestPrinterPrintExprBooleanNot(t *testing.T) { } } +func TestPrinterPrintExprBracket(t *testing.T) { + o := bytes.NewBufferString("") + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n := &ast.ExprBooleanNot{ + Expr: &ast.ExprVariable{ + VarName: &ast.Identifier{Value: []byte("$var")}, + }, + } + n.Accept(p) + + expected := `!$var` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestPrinterPrintExprClassConstFetch(t *testing.T) { o := bytes.NewBufferString("") From 38141ce97f653badc43cc933db4d2f139a26c008 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 28 Dec 2020 00:38:39 +0200 Subject: [PATCH 132/140] refactoring: create "ScalarEncapsedStringVar" node --- internal/php5/parser_test.go | 120 ++++++++++++------------------ internal/php5/php5.go | 106 ++++++++++++-------------- internal/php5/php5.y | 58 ++++++--------- internal/php7/parser_test.go | 120 ++++++++++++------------------ internal/php7/php7.go | 96 +++++++++++------------- internal/php7/php7.y | 58 ++++++--------- pkg/ast/ast.go | 1 + pkg/ast/node.go | 19 +++++ pkg/ast/traverser/dfs.go | 17 +++++ pkg/ast/visitor/dumper.go | 16 ++++ pkg/ast/visitor/formatter.go | 15 ++++ pkg/ast/visitor/formatter_test.go | 49 ++++++++++++ pkg/ast/visitor/null.go | 4 + pkg/ast/visitor/printer.go | 9 +++ 14 files changed, 361 insertions(+), 327 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 928496a..c875222 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -4335,14 +4335,14 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, Value: []byte("test "), }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringVar{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 15, }, - OpenBracketTkn: &token.Token{ + DollarOpenCurlyBracketTkn: &token.Token{ ID: token.T_DOLLAR_OPEN_CURLY_BRACES, Value: []byte("${"), Position: &position.Position{ @@ -4352,34 +4352,26 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { EndPos: 11, }, }, - Child: &ast.ExprVariable{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 14, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING_VARNAME, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 14, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING_VARNAME, - Value: []byte("foo"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 14, - }, - }, - Value: []byte("foo"), }, + Value: []byte("foo"), }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ @@ -4501,14 +4493,14 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, Value: []byte("test "), }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringVar{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, - EndPos: 18, + EndPos: 15, }, - OpenBracketTkn: &token.Token{ + DollarOpenCurlyBracketTkn: &token.Token{ ID: token.T_DOLLAR_OPEN_CURLY_BRACES, Value: []byte("${"), Position: &position.Position{ @@ -4518,81 +4510,65 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { EndPos: 11, }, }, - Child: &ast.ExprArrayDimFetch{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, - EndPos: 17, + EndPos: 14, }, - Var: &ast.ExprVariable{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING_VARNAME, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 14, }, - VarName: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 14, - }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING_VARNAME, - Value: []byte("foo"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 14, - }, - }, - Value: []byte("foo"), - }, }, - OpenBracketTkn: &token.Token{ - ID: token.ID(91), - Value: []byte("["), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 14, - EndPos: 15, - }, + Value: []byte("foo"), + }, + OpenSquareBracketTkn: &token.Token{ + ID: token.ID(91), + Value: []byte("["), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, }, - Dim: &ast.ScalarLnumber{ + }, + Dim: &ast.ScalarLnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("0"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 16, }, - NumberTkn: &token.Token{ - ID: token.T_LNUMBER, - Value: []byte("0"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 16, - }, - }, - Value: []byte("0"), }, - CloseBracketTkn: &token.Token{ - ID: token.ID(93), - Value: []byte("]"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 17, - }, + Value: []byte("0"), + }, + CloseSquareBracketTkn: &token.Token{ + ID: token.ID(93), + Value: []byte("]"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 17, }, }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index ce0b005..b1468ec 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5677 +// line internal/php5/php5.y:5665 // line yacctab:1 var yyExca = [...]int{ @@ -7995,61 +7995,49 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5414 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[2].node), - VarName: yyDollar[2].node, - }, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + DollarOpenCurlyBracketTkn: yyDollar[1].token, + VarName: yyDollar[2].node, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5426 + // line internal/php5/php5.y:5423 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, - }, + yyVAL.node = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + DollarOpenCurlyBracketTkn: yyDollar[1].token, + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, - CloseBracketTkn: yyDollar[3].token, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5442 + // line internal/php5/php5.y:5436 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - OpenBracketTkn: yyDollar[1].token, - Child: &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), - Var: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, - }, - }, - OpenBracketTkn: yyDollar[3].token, - Dim: yyDollar[4].node, - CloseBracketTkn: yyDollar[5].token, + yyVAL.node = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + DollarOpenCurlyBracketTkn: yyDollar[1].token, + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, - CloseBracketTkn: yyDollar[6].token, + OpenSquareBracketTkn: yyDollar[3].token, + Dim: yyDollar[4].node, + CloseSquareBracketTkn: yyDollar[5].token, + CloseCurlyBracketTkn: yyDollar[6].token, } } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5464 + // line internal/php5/php5.y:5452 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8060,7 +8048,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5476 + // line internal/php5/php5.y:5464 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8070,7 +8058,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5484 + // line internal/php5/php5.y:5472 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8089,7 +8077,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5501 + // line internal/php5/php5.y:5489 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8102,7 +8090,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5515 + // line internal/php5/php5.y:5503 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8115,7 +8103,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5526 + // line internal/php5/php5.y:5514 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8127,7 +8115,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5536 + // line internal/php5/php5.y:5524 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8139,7 +8127,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5546 + // line internal/php5/php5.y:5534 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8149,7 +8137,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5554 + // line internal/php5/php5.y:5542 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8159,7 +8147,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5562 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8171,7 +8159,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5572 + // line internal/php5/php5.y:5560 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8181,7 +8169,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5580 + // line internal/php5/php5.y:5568 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8191,7 +8179,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5591 + // line internal/php5/php5.y:5579 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8199,7 +8187,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5597 + // line internal/php5/php5.y:5585 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8208,19 +8196,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5607 + // line internal/php5/php5.y:5595 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5611 + // line internal/php5/php5.y:5599 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5618 + // line internal/php5/php5.y:5606 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8235,7 +8223,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5631 + // line internal/php5/php5.y:5619 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8250,7 +8238,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5647 + // line internal/php5/php5.y:5635 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8265,7 +8253,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5663 + // line internal/php5/php5.y:5651 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 245e18a..5c2a399 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -5412,52 +5412,40 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewNodePosition($2), - VarName: $2, - }, - CloseBracketTkn: $3, + $$ = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + DollarOpenCurlyBracketTkn: $1, + VarName: $2, + CloseCurlyBracketTkn: $3, } } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: &ast.ExprVariable{ + $$ = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + DollarOpenCurlyBracketTkn: $1, + VarName: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - IdentifierTkn: $2, - Value: $2.Value, - }, + IdentifierTkn: $2, + Value: $2.Value, }, - CloseBracketTkn: $3, + CloseCurlyBracketTkn: $3, } } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), - OpenBracketTkn: $1, - Child: &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewTokensPosition($2, $5), - Var: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - IdentifierTkn: $2, - Value: $2.Value, - }, - }, - OpenBracketTkn: $3, - Dim: $4, - CloseBracketTkn: $5, + $$ = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + DollarOpenCurlyBracketTkn: $1, + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition($2), + IdentifierTkn: $2, + Value: $2.Value, }, - CloseBracketTkn: $6, + OpenSquareBracketTkn: $3, + Dim: $4, + CloseSquareBracketTkn: $5, + CloseCurlyBracketTkn: $6, } } | T_CURLY_OPEN variable '}' diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 4957b16..ca22168 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -4692,14 +4692,14 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { }, Value: []byte("test "), }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringVar{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 15, }, - OpenBracketTkn: &token.Token{ + DollarOpenCurlyBracketTkn: &token.Token{ ID: token.T_DOLLAR_OPEN_CURLY_BRACES, Value: []byte("${"), Position: &position.Position{ @@ -4709,34 +4709,26 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { EndPos: 11, }, }, - Child: &ast.ExprVariable{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 14, }, - VarName: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING_VARNAME, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 14, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING_VARNAME, - Value: []byte("foo"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 14, - }, - }, - Value: []byte("foo"), }, + Value: []byte("foo"), }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ @@ -4858,14 +4850,14 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { }, Value: []byte("test "), }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringVar{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, - EndPos: 18, + EndPos: 15, }, - OpenBracketTkn: &token.Token{ + DollarOpenCurlyBracketTkn: &token.Token{ ID: token.T_DOLLAR_OPEN_CURLY_BRACES, Value: []byte("${"), Position: &position.Position{ @@ -4875,81 +4867,65 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { EndPos: 11, }, }, - Child: &ast.ExprArrayDimFetch{ + VarName: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, - EndPos: 17, + EndPos: 14, }, - Var: &ast.ExprVariable{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING_VARNAME, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 11, EndPos: 14, }, - VarName: &ast.Identifier{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 14, - }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING_VARNAME, - Value: []byte("foo"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 11, - EndPos: 14, - }, - }, - Value: []byte("foo"), - }, }, - OpenBracketTkn: &token.Token{ - ID: token.ID(91), - Value: []byte("["), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 14, - EndPos: 15, - }, + Value: []byte("foo"), + }, + OpenSquareBracketTkn: &token.Token{ + ID: token.ID(91), + Value: []byte("["), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, }, - Dim: &ast.ScalarLnumber{ + }, + Dim: &ast.ScalarLnumber{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 15, + EndPos: 16, + }, + NumberTkn: &token.Token{ + ID: token.T_LNUMBER, + Value: []byte("0"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 16, }, - NumberTkn: &token.Token{ - ID: token.T_LNUMBER, - Value: []byte("0"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 16, - }, - }, - Value: []byte("0"), }, - CloseBracketTkn: &token.Token{ - ID: token.ID(93), - Value: []byte("]"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 17, - }, + Value: []byte("0"), + }, + CloseSquareBracketTkn: &token.Token{ + ID: token.ID(93), + Value: []byte("]"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 16, + EndPos: 17, }, }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 5e50fce..f4271ba 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4390 +// line internal/php7/php7.y:4378 // line yacctab:1 var yyExca = [...]int{ @@ -6868,61 +6868,49 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4172 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[2].node), - VarName: yyDollar[2].node, - }, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + DollarOpenCurlyBracketTkn: yyDollar[1].token, + VarName: yyDollar[2].node, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4184 + // line internal/php7/php7.y:4181 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, - }, + yyVAL.node = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + DollarOpenCurlyBracketTkn: yyDollar[1].token, + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, - CloseBracketTkn: yyDollar[3].token, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4200 + // line internal/php7/php7.y:4194 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), - OpenBracketTkn: yyDollar[1].token, - Child: &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[5].token), - Var: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - IdentifierTkn: yyDollar[2].token, - Value: yyDollar[2].token.Value, - }, - }, - OpenBracketTkn: yyDollar[3].token, - Dim: yyDollar[4].node, - CloseBracketTkn: yyDollar[5].token, + yyVAL.node = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + DollarOpenCurlyBracketTkn: yyDollar[1].token, + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), + IdentifierTkn: yyDollar[2].token, + Value: yyDollar[2].token.Value, }, - CloseBracketTkn: yyDollar[6].token, + OpenSquareBracketTkn: yyDollar[3].token, + Dim: yyDollar[4].node, + CloseSquareBracketTkn: yyDollar[5].token, + CloseCurlyBracketTkn: yyDollar[6].token, } } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4222 + // line internal/php7/php7.y:4210 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6933,7 +6921,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4234 + // line internal/php7/php7.y:4222 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6943,7 +6931,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4242 + // line internal/php7/php7.y:4230 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6962,7 +6950,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4259 + // line internal/php7/php7.y:4247 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6988,7 +6976,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4283 + // line internal/php7/php7.y:4271 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7001,7 +6989,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4297 + // line internal/php7/php7.y:4285 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7018,7 +7006,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4312 + // line internal/php7/php7.y:4300 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7030,7 +7018,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4322 + // line internal/php7/php7.y:4310 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7040,7 +7028,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4330 + // line internal/php7/php7.y:4318 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7050,7 +7038,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4338 + // line internal/php7/php7.y:4326 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7062,7 +7050,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4348 + // line internal/php7/php7.y:4336 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7072,7 +7060,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4356 + // line internal/php7/php7.y:4344 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7082,7 +7070,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4367 + // line internal/php7/php7.y:4355 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7090,7 +7078,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4373 + // line internal/php7/php7.y:4361 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7099,7 +7087,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4383 + // line internal/php7/php7.y:4371 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index f388612..e695902 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -4170,52 +4170,40 @@ encaps_var: } | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewNodePosition($2), - VarName: $2, - }, - CloseBracketTkn: $3, + $$ = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + DollarOpenCurlyBracketTkn: $1, + VarName: $2, + CloseCurlyBracketTkn: $3, } } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: &ast.ExprVariable{ + $$ = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + DollarOpenCurlyBracketTkn: $1, + VarName: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - IdentifierTkn: $2, - Value: $2.Value, - }, + IdentifierTkn: $2, + Value: $2.Value, }, - CloseBracketTkn: $3, + CloseCurlyBracketTkn: $3, } } | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), - OpenBracketTkn: $1, - Child: &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewTokensPosition($2, $5), - Var: &ast.ExprVariable{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - VarName: &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), - IdentifierTkn: $2, - Value: $2.Value, - }, - }, - OpenBracketTkn: $3, - Dim: $4, - CloseBracketTkn: $5, + $$ = &ast.ScalarEncapsedStringVar{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + DollarOpenCurlyBracketTkn: $1, + VarName: &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition($2), + IdentifierTkn: $2, + Value: $2.Value, }, - CloseBracketTkn: $6, + OpenSquareBracketTkn: $3, + Dim: $4, + CloseSquareBracketTkn: $5, + CloseCurlyBracketTkn: $6, } } | T_CURLY_OPEN variable '}' diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 2debd18..214c67d 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -175,6 +175,7 @@ type NodeVisitor interface { ScalarDnumber(n *ScalarDnumber) ScalarEncapsed(n *ScalarEncapsed) ScalarEncapsedStringPart(n *ScalarEncapsedStringPart) + ScalarEncapsedStringVar(n *ScalarEncapsedStringVar) ScalarHeredoc(n *ScalarHeredoc) ScalarLnumber(n *ScalarLnumber) ScalarMagicConstant(n *ScalarMagicConstant) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index cf71bcd..edfa296 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -131,6 +131,25 @@ func (n *ScalarEncapsedStringPart) GetPosition() *position.Position { return n.Position } +// ScalarEncapsedStringVar node +type ScalarEncapsedStringVar struct { + Position *position.Position + DollarOpenCurlyBracketTkn *token.Token + VarName Vertex + OpenSquareBracketTkn *token.Token + Dim Vertex + CloseSquareBracketTkn *token.Token + CloseCurlyBracketTkn *token.Token +} + +func (n *ScalarEncapsedStringVar) Accept(v NodeVisitor) { + v.ScalarEncapsedStringVar(n) +} + +func (n *ScalarEncapsedStringVar) GetPosition() *position.Position { + return n.Position +} + // ScalarHeredoc node type ScalarHeredoc struct { Position *position.Position diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index c41d2eb..f5683de 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -2455,6 +2455,23 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } + case *ast.ScalarEncapsedStringVar: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.VarName != nil { + t.visitor.Enter("VarName", true) + t.Traverse(nn.VarName) + t.visitor.Leave("VarName", true) + } + if nn.Dim != nil { + t.visitor.Enter("Dim", true) + t.Traverse(nn.Dim) + t.visitor.Leave("Dim", true) + } case *ast.ScalarHeredoc: if nn == nil { return diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index b9c8af6..6b01b99 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -2258,6 +2258,22 @@ func (v *Dumper) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.print(v.indent, "},\n") } +func (v *Dumper) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { + v.print(0, "&ast.ScalarEncapsedStringVar{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("DollarOpenCurlyBracketTkn", n.DollarOpenCurlyBracketTkn) + v.dumpVertex("VarName", n.VarName) + v.dumpToken("OpenSquareBracketTkn", n.OpenSquareBracketTkn) + v.dumpVertex("Dim", n.Dim) + v.dumpToken("CloseSquareBracketTkn", n.CloseSquareBracketTkn) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") +} + func (v *Dumper) ScalarHeredoc(n *ast.ScalarHeredoc) { v.print(0, "&ast.ScalarHeredoc{\n") v.indent++ diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 193f8b1..8c42228 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1970,6 +1970,21 @@ func (f *formatter) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { } } +func (f *formatter) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { + n.DollarOpenCurlyBracketTkn = f.newToken(token.T_DOLLAR_OPEN_CURLY_BRACES, []byte("${")) + n.VarName.Accept(f) + + n.OpenSquareBracketTkn = nil + n.CloseSquareBracketTkn = nil + if n.Dim != nil { + n.OpenSquareBracketTkn = f.newToken('[', []byte("[")) + n.Dim.Accept(f) + n.CloseSquareBracketTkn = f.newToken(']', []byte("]")) + } + + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + func (f *formatter) ScalarHeredoc(n *ast.ScalarHeredoc) { n.OpenHeredocTkn = f.newToken(token.T_START_HEREDOC, []byte("<< Date: Mon, 28 Dec 2020 00:53:48 +0200 Subject: [PATCH 133/140] refactoring: create "ScalarEncapsedStringBrackets" node --- internal/php5/parser_test.go | 16 ++++++++-------- internal/php5/php5.go | 10 +++++----- internal/php5/php5.y | 10 +++++----- internal/php7/parser_test.go | 16 ++++++++-------- internal/php7/php7.go | 10 +++++----- internal/php7/php7.y | 10 +++++----- pkg/ast/ast.go | 3 +-- pkg/ast/node.go | 18 +++++++++++++++++- pkg/ast/traverser/dfs.go | 24 ++++++++++++------------ pkg/ast/visitor/dumper.go | 26 +++++++++++++------------- pkg/ast/visitor/formatter.go | 10 ++++++---- pkg/ast/visitor/formatter_test.go | 25 +++++++++++++++++++++++++ pkg/ast/visitor/null.go | 8 ++++---- pkg/ast/visitor/printer.go | 12 ++++++------ 14 files changed, 120 insertions(+), 78 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index c875222..bff1735 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -3975,14 +3975,14 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { Value: []byte("$a"), }, }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 11, }, - OpenBracketTkn: &token.Token{ + OpenCurlyBracketTkn: &token.Token{ ID: token.T_CURLY_OPEN, Value: []byte("{"), Position: &position.Position{ @@ -3992,7 +3992,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndPos: 8, }, }, - Child: &ast.ExprVariable{ + Var: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4019,7 +4019,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { Value: []byte("$b"), }, }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ @@ -4690,14 +4690,14 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, Value: []byte("test "), }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 22, }, - OpenBracketTkn: &token.Token{ + OpenCurlyBracketTkn: &token.Token{ ID: token.T_CURLY_OPEN, Value: []byte("{"), Position: &position.Position{ @@ -4707,7 +4707,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { EndPos: 10, }, }, - Child: &ast.ExprMethodCall{ + Var: &ast.ExprMethodCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4791,7 +4791,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, }, }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ diff --git a/internal/php5/php5.go b/internal/php5/php5.go index b1468ec..3c7d097 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -8039,11 +8039,11 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5452 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ScalarEncapsedStringBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Var: yyDollar[2].node, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 502: diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 5c2a399..65e6ed1 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -5450,11 +5450,11 @@ encaps_var: } | T_CURLY_OPEN variable '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + $$ = &ast.ScalarEncapsedStringBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + OpenCurlyBracketTkn: $1, + Var: $2, + CloseCurlyBracketTkn: $3, } } ; diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index ca22168..d6ddeac 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -4332,14 +4332,14 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { Value: []byte("$a"), }, }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 11, }, - OpenBracketTkn: &token.Token{ + OpenCurlyBracketTkn: &token.Token{ ID: token.T_CURLY_OPEN, Value: []byte("{"), Position: &position.Position{ @@ -4349,7 +4349,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndPos: 8, }, }, - Child: &ast.ExprVariable{ + Var: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4376,7 +4376,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { Value: []byte("$b"), }, }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ @@ -5047,14 +5047,14 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, Value: []byte("test "), }, - &ast.ParserBrackets{ + &ast.ScalarEncapsedStringBrackets{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 22, }, - OpenBracketTkn: &token.Token{ + OpenCurlyBracketTkn: &token.Token{ ID: token.T_CURLY_OPEN, Value: []byte("{"), Position: &position.Position{ @@ -5064,7 +5064,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { EndPos: 10, }, }, - Child: &ast.ExprMethodCall{ + Var: &ast.ExprMethodCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -5148,7 +5148,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { }, }, }, - CloseBracketTkn: &token.Token{ + CloseCurlyBracketTkn: &token.Token{ ID: token.ID(125), Value: []byte("}"), Position: &position.Position{ diff --git a/internal/php7/php7.go b/internal/php7/php7.go index f4271ba..97c37c1 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -6912,11 +6912,11 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4210 { - yyVAL.node = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - OpenBracketTkn: yyDollar[1].token, - Child: yyDollar[2].node, - CloseBracketTkn: yyDollar[3].token, + yyVAL.node = &ast.ScalarEncapsedStringBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + OpenCurlyBracketTkn: yyDollar[1].token, + Var: yyDollar[2].node, + CloseCurlyBracketTkn: yyDollar[3].token, } } case 481: diff --git a/internal/php7/php7.y b/internal/php7/php7.y index e695902..ec98771 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -4208,11 +4208,11 @@ encaps_var: } | T_CURLY_OPEN variable '}' { - $$ = &ast.ParserBrackets{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - OpenBracketTkn: $1, - Child: $2, - CloseBracketTkn: $3, + $$ = &ast.ScalarEncapsedStringBrackets{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + OpenCurlyBracketTkn: $1, + Var: $2, + CloseCurlyBracketTkn: $3, } } ; diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 214c67d..508cca0 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -176,6 +176,7 @@ type NodeVisitor interface { ScalarEncapsed(n *ScalarEncapsed) ScalarEncapsedStringPart(n *ScalarEncapsedStringPart) ScalarEncapsedStringVar(n *ScalarEncapsedStringVar) + ScalarEncapsedStringBrackets(n *ScalarEncapsedStringBrackets) ScalarHeredoc(n *ScalarHeredoc) ScalarLnumber(n *ScalarLnumber) ScalarMagicConstant(n *ScalarMagicConstant) @@ -185,6 +186,4 @@ type NodeVisitor interface { NameFullyQualified(n *NameFullyQualified) NameRelative(n *NameRelative) NameNamePart(n *NameNamePart) - - ParserBrackets(n *ParserBrackets) } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index edfa296..d523b27 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -150,6 +150,22 @@ func (n *ScalarEncapsedStringVar) GetPosition() *position.Position { return n.Position } +// ScalarEncapsedStringVar node +type ScalarEncapsedStringBrackets struct { + Position *position.Position + OpenCurlyBracketTkn *token.Token + Var Vertex + CloseCurlyBracketTkn *token.Token +} + +func (n *ScalarEncapsedStringBrackets) Accept(v NodeVisitor) { + v.ScalarEncapsedStringBrackets(n) +} + +func (n *ScalarEncapsedStringBrackets) GetPosition() *position.Position { + return n.Position +} + // ScalarHeredoc node type ScalarHeredoc struct { Position *position.Position @@ -2695,7 +2711,7 @@ type ParserBrackets struct { } func (n *ParserBrackets) Accept(v NodeVisitor) { - v.ParserBrackets(n) + // do nothing } func (n *ParserBrackets) GetPosition() *position.Position { diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index f5683de..93333c9 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -2472,6 +2472,18 @@ func (t *DFS) Traverse(n ast.Vertex) { t.Traverse(nn.Dim) t.visitor.Leave("Dim", true) } + case *ast.ScalarEncapsedStringBrackets: + if nn == nil { + return + } + if !t.visitor.EnterNode(nn) { + return + } + if nn.Var != nil { + t.visitor.Enter("Var", true) + t.Traverse(nn.Var) + t.visitor.Leave("Var", true) + } case *ast.ScalarHeredoc: if nn == nil { return @@ -2556,18 +2568,6 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - case *ast.ParserBrackets: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Child != nil { - t.visitor.Enter("Child", true) - t.Traverse(nn.Child) - t.visitor.Leave("Child", true) - } default: panic("unexpected type of node") } diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 6b01b99..0e1bf41 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -2274,6 +2274,19 @@ func (v *Dumper) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { v.print(v.indent, "},\n") } +func (v *Dumper) ScalarEncapsedStringBrackets(n *ast.ScalarEncapsedStringBrackets) { + v.print(0, "&ast.ScalarEncapsedStringBrackets{\n") + v.indent++ + + v.dumpPosition(n.Position) + v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) + v.dumpVertex("Var", n.Var) + v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) + + v.indent-- + v.print(v.indent, "},\n") +} + func (v *Dumper) ScalarHeredoc(n *ast.ScalarHeredoc) { v.print(0, "&ast.ScalarHeredoc{\n") v.indent++ @@ -2374,16 +2387,3 @@ func (v *Dumper) NameNamePart(n *ast.NameNamePart) { v.indent-- v.print(v.indent, "},\n") } - -func (v *Dumper) ParserBrackets(n *ast.ParserBrackets) { - v.print(0, "&ast.ParserBrackets{\n") - v.indent++ - - v.dumpPosition(n.Position) - v.dumpToken("OpenBracketTkn", n.OpenBracketTkn) - v.dumpVertex("Child", n.Child) - v.dumpToken("CloseBracketTkn", n.CloseBracketTkn) - - v.indent-- - v.print(v.indent, "},\n") -} diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index 8c42228..b81a13c 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -1985,6 +1985,12 @@ func (f *formatter) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) } +func (f *formatter) ScalarEncapsedStringBrackets(n *ast.ScalarEncapsedStringBrackets) { + n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) + n.Var.Accept(f) + n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) +} + func (f *formatter) ScalarHeredoc(n *ast.ScalarHeredoc) { n.OpenHeredocTkn = f.newToken(token.T_START_HEREDOC, []byte("<< Date: Mon, 28 Dec 2020 10:10:15 +0200 Subject: [PATCH 134/140] refactoring: update ast structure of "Class", "Interface" and "Trait" nodes --- internal/php5/parser_test.go | 616 +++++++------- internal/php5/php5.go | 928 +++++++++++---------- internal/php5/php5.y | 86 +- internal/php7/parser_test.go | 878 +++++++++---------- internal/php7/php7.go | 738 ++++++++-------- internal/php7/php7.y | 90 +- pkg/ast/ast.go | 3 - pkg/ast/node.go | 82 +- pkg/ast/traverser/dfs.go | 56 +- pkg/ast/visitor/dumper.go | 49 +- pkg/ast/visitor/formatter.go | 41 +- pkg/ast/visitor/formatter_test.go | 209 +---- pkg/ast/visitor/namespace_resolver.go | 6 +- pkg/ast/visitor/namespace_resolver_test.go | 18 +- pkg/ast/visitor/null.go | 12 - pkg/ast/visitor/printer.go | 24 +- pkg/ast/visitor/printer_test.go | 40 +- 17 files changed, 1769 insertions(+), 2107 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index bff1735..b2d3144 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -9945,74 +9945,66 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, Value: []byte("foo"), }, - Extends: &ast.StmtClassExtends{ + ExtendsTkn: &token.Token{ + ID: token.T_EXTENDS, + Value: []byte("extends"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, - EndPos: 30, + EndPos: 26, }, - ExtendTkn: &token.Token{ - ID: token.T_EXTENDS, - Value: []byte("extends"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 26, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 19, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 19, }, }, }, - ClassName: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 30, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + Extends: &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 30, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 30, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 27, EndPos: 30, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 30, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 27, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, }, }, }, - Value: []byte("bar"), }, + Value: []byte("bar"), }, }, }, @@ -10187,75 +10179,67 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, Value: []byte("foo"), }, - Implements: &ast.StmtClassImplements{ + ImplementsTkn: &token.Token{ + ID: token.T_IMPLEMENTS, + Value: []byte("implements"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, - EndPos: 33, + EndPos: 29, }, - ImplementsTkn: &token.Token{ - ID: token.T_IMPLEMENTS, - Value: []byte("implements"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 19, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, - EndPos: 33, + StartPos: 18, + EndPos: 19, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Implements: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("bar"), }, + Value: []byte("bar"), }, }, }, @@ -10431,129 +10415,121 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, Value: []byte("foo"), }, - Implements: &ast.StmtClassImplements{ + ImplementsTkn: &token.Token{ + ID: token.T_IMPLEMENTS, + Value: []byte("implements"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, - EndPos: 38, + EndPos: 29, }, - ImplementsTkn: &token.Token{ - ID: token.T_IMPLEMENTS, - Value: []byte("implements"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 19, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, - EndPos: 33, + StartPos: 18, + EndPos: 19, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Implements: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("bar"), }, + Value: []byte("bar"), }, }, - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 35, EndPos: 38, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 34, - EndPos: 35, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 35, }, }, }, - Value: []byte("baz"), }, + Value: []byte("baz"), }, }, }, - SeparatorTkns: []*token.Token{ - { - ID: token.ID(44), - Value: []byte(","), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 34, - }, + }, + ImplementsSeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, }, }, }, @@ -19076,75 +19052,67 @@ func TestStmtInterface_Extend(t *testing.T) { }, Value: []byte("Foo"), }, - Extends: &ast.StmtInterfaceExtends{ + ExtendsTkn: &token.Token{ + ID: token.T_EXTENDS, + Value: []byte("extends"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 17, - EndPos: 28, + EndPos: 24, }, - ExtendsTkn: &token.Token{ - ID: token.T_EXTENDS, - Value: []byte("extends"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 24, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 17, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 25, - EndPos: 28, + StartPos: 16, + EndPos: 17, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Extends: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 28, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 25, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, }, @@ -19275,129 +19243,121 @@ func TestStmtInterface_Extends(t *testing.T) { }, Value: []byte("Foo"), }, - Extends: &ast.StmtInterfaceExtends{ + ExtendsTkn: &token.Token{ + ID: token.T_EXTENDS, + Value: []byte("extends"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 17, - EndPos: 33, + EndPos: 24, }, - ExtendsTkn: &token.Token{ - ID: token.T_EXTENDS, - Value: []byte("extends"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 24, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 17, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 25, - EndPos: 28, + StartPos: 16, + EndPos: 17, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Extends: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 28, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 25, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, }, - SeparatorTkns: []*token.Token{ - { - ID: token.ID(44), - Value: []byte(","), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, + }, + ExtendsSeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, }, }, }, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 3c7d097..6b818aa 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5665 +// line internal/php5/php5.y:5691 // line yacctab:1 var yyExca = [...]int{ @@ -3434,38 +3434,57 @@ yydefault: { switch n := yyDollar[1].node.(type) { case *ast.StmtClass: - n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) - n.ClassName = &ast.Identifier{ + className := &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } - n.Extends = yyDollar[3].node - n.Implements = yyDollar[4].node + + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) + n.ClassName = className n.OpenCurlyBracketTkn = yyDollar[5].token n.Stmts = yyDollar[6].list n.CloseCurlyBracketTkn = yyDollar[7].token + + if yyDollar[3].node != nil { + n.ExtendsTkn = yyDollar[3].node.(*ast.StmtClass).ExtendsTkn + n.Extends = yyDollar[3].node.(*ast.StmtClass).Extends + } + + if yyDollar[4].node != nil { + n.ImplementsTkn = yyDollar[4].node.(*ast.StmtClass).ImplementsTkn + n.Implements = yyDollar[4].node.(*ast.StmtClass).Implements + n.ImplementsSeparatorTkns = yyDollar[4].node.(*ast.StmtClass).ImplementsSeparatorTkns + } case *ast.StmtTrait: - n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) - n.TraitName = &ast.Identifier{ + traitName := &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, } - n.Extends = yyDollar[3].node - n.Implements = yyDollar[4].node + + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) + n.TraitName = traitName n.OpenCurlyBracketTkn = yyDollar[5].token n.Stmts = yyDollar[6].list n.CloseCurlyBracketTkn = yyDollar[7].token + + if yyDollar[3].node != nil { + yylex.(*Parser).errHandlerFunc(errors.NewError("A trait cannot extend a class. Traits can only be composed from other traits with the 'use' keyword", yyDollar[3].node.(*ast.StmtClass).Position)) + } + + if yyDollar[4].node != nil { + yylex.(*Parser).errHandlerFunc(errors.NewError("A trait cannot implement an interface", yyDollar[4].node.(*ast.StmtClass).Position)) + } } yyVAL.node = yyDollar[1].node } case 95: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1311 + // line internal/php5/php5.y:1330 { - yyVAL.node = &ast.StmtInterface{ + iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), InterfaceTkn: yyDollar[1].token, InterfaceName: &ast.Identifier{ @@ -3473,15 +3492,22 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - Extends: yyDollar[3].node, OpenCurlyBracketTkn: yyDollar[4].token, Stmts: yyDollar[5].list, CloseCurlyBracketTkn: yyDollar[6].token, } + + if yyDollar[3].node != nil { + iface.ExtendsTkn = yyDollar[3].node.(*ast.StmtInterface).ExtendsTkn + iface.Extends = yyDollar[3].node.(*ast.StmtInterface).Extends + iface.ExtendsSeparatorTkns = yyDollar[3].node.(*ast.StmtInterface).ExtendsSeparatorTkns + } + + yyVAL.node = iface } case 96: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1331 + // line internal/php5/php5.y:1357 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3490,7 +3516,7 @@ yydefault: } case 97: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1338 + // line internal/php5/php5.y:1364 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3506,7 +3532,7 @@ yydefault: } case 98: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1352 + // line internal/php5/php5.y:1378 { yyVAL.node = &ast.StmtTrait{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3515,7 +3541,7 @@ yydefault: } case 99: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1359 + // line internal/php5/php5.y:1385 { yyVAL.node = &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -3531,63 +3557,63 @@ yydefault: } case 100: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1376 + // line internal/php5/php5.y:1402 { yyVAL.node = nil } case 101: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1380 + // line internal/php5/php5.y:1406 { - yyVAL.node = &ast.StmtClassExtends{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - ExtendTkn: yyDollar[1].token, - ClassName: yyDollar[2].node, + yyVAL.node = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + ExtendsTkn: yyDollar[1].token, + Extends: yyDollar[2].node, } } case 102: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1391 + // line internal/php5/php5.y:1417 { yyVAL.token = yyDollar[1].token } case 103: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1398 + // line internal/php5/php5.y:1424 { yyVAL.node = nil } case 104: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1402 + // line internal/php5/php5.y:1428 { - yyVAL.node = &ast.StmtInterfaceExtends{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - ExtendsTkn: yyDollar[1].token, - InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + yyVAL.node = &ast.StmtInterface{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + ExtendsTkn: yyDollar[1].token, + Extends: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + ExtendsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 105: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1414 + // line internal/php5/php5.y:1440 { yyVAL.node = nil } case 106: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1418 + // line internal/php5/php5.y:1444 { - yyVAL.node = &ast.StmtClassImplements{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - ImplementsTkn: yyDollar[1].token, - InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + yyVAL.node = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + ImplementsTkn: yyDollar[1].token, + Implements: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + ImplementsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 107: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1430 + // line internal/php5/php5.y:1456 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3595,7 +3621,7 @@ yydefault: } case 108: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1436 + // line internal/php5/php5.y:1462 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3604,13 +3630,13 @@ yydefault: } case 109: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1446 + // line internal/php5/php5.y:1472 { yyVAL.node = nil } case 110: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1450 + // line internal/php5/php5.y:1476 { yyVAL.node = &ast.StmtForeach{ DoubleArrowTkn: yyDollar[1].token, @@ -3619,13 +3645,13 @@ yydefault: } case 111: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1460 + // line internal/php5/php5.y:1486 { yyVAL.node = yyDollar[1].node } case 112: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1464 + // line internal/php5/php5.y:1490 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3635,7 +3661,7 @@ yydefault: } case 113: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1472 + // line internal/php5/php5.y:1498 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -3655,7 +3681,7 @@ yydefault: } case 114: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1493 + // line internal/php5/php5.y:1519 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3664,7 +3690,7 @@ yydefault: } case 115: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1500 + // line internal/php5/php5.y:1526 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3679,7 +3705,7 @@ yydefault: } case 116: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1516 + // line internal/php5/php5.y:1542 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3688,7 +3714,7 @@ yydefault: } case 117: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1523 + // line internal/php5/php5.y:1549 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3703,7 +3729,7 @@ yydefault: } case 118: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1540 + // line internal/php5/php5.y:1566 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3712,7 +3738,7 @@ yydefault: } case 119: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1547 + // line internal/php5/php5.y:1573 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3727,7 +3753,7 @@ yydefault: } case 120: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1564 + // line internal/php5/php5.y:1590 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -3746,7 +3772,7 @@ yydefault: } case 121: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1581 + // line internal/php5/php5.y:1607 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( @@ -3767,7 +3793,7 @@ yydefault: } case 122: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1604 + // line internal/php5/php5.y:1630 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3778,7 +3804,7 @@ yydefault: } case 123: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1613 + // line internal/php5/php5.y:1639 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3790,7 +3816,7 @@ yydefault: } case 124: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1623 + // line internal/php5/php5.y:1649 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3802,7 +3828,7 @@ yydefault: } case 125: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1633 + // line internal/php5/php5.y:1659 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), @@ -3815,13 +3841,13 @@ yydefault: } case 126: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1648 + // line internal/php5/php5.y:1674 { yyVAL.list = nil } case 127: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1652 + // line internal/php5/php5.y:1678 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), @@ -3833,7 +3859,7 @@ yydefault: } case 128: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1662 + // line internal/php5/php5.y:1688 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), @@ -3844,19 +3870,19 @@ yydefault: } case 129: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1675 + // line internal/php5/php5.y:1701 { yyVAL.token = yyDollar[1].token } case 130: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1679 + // line internal/php5/php5.y:1705 { yyVAL.token = yyDollar[1].token } case 131: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1687 + // line internal/php5/php5.y:1713 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3865,7 +3891,7 @@ yydefault: } case 132: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1694 + // line internal/php5/php5.y:1720 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3880,13 +3906,13 @@ yydefault: } case 133: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1712 + // line internal/php5/php5.y:1738 { yyVAL.list = nil } case 134: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1716 + // line internal/php5/php5.y:1742 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[4].node), @@ -3899,13 +3925,13 @@ yydefault: } case 135: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1731 + // line internal/php5/php5.y:1757 { yyVAL.list = nil } case 136: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:1735 + // line internal/php5/php5.y:1761 { yyVAL.list = append(yyDollar[1].list, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), @@ -3922,13 +3948,13 @@ yydefault: } case 137: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1754 + // line internal/php5/php5.y:1780 { yyVAL.node = nil } case 138: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1758 + // line internal/php5/php5.y:1784 { yyVAL.node = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3938,13 +3964,13 @@ yydefault: } case 139: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1770 + // line internal/php5/php5.y:1796 { yyVAL.node = nil } case 140: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1774 + // line internal/php5/php5.y:1800 { yyVAL.node = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].list), @@ -3958,19 +3984,19 @@ yydefault: } case 141: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1790 + // line internal/php5/php5.y:1816 { yyVAL.node = yyDollar[1].node } case 142: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1794 + // line internal/php5/php5.y:1820 { yyVAL.node = &ast.ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1801 + // line internal/php5/php5.y:1827 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -3978,7 +4004,7 @@ yydefault: } case 144: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1807 + // line internal/php5/php5.y:1833 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -3987,7 +4013,7 @@ yydefault: } case 145: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:1817 + // line internal/php5/php5.y:1843 { pos := yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4015,7 +4041,7 @@ yydefault: } case 146: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:1843 + // line internal/php5/php5.y:1869 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4045,13 +4071,13 @@ yydefault: } case 147: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:1875 + // line internal/php5/php5.y:1901 { yyVAL.node = nil } case 148: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1879 + // line internal/php5/php5.y:1905 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4061,7 +4087,7 @@ yydefault: } case 149: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1887 + // line internal/php5/php5.y:1913 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4071,13 +4097,13 @@ yydefault: } case 150: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1895 + // line internal/php5/php5.y:1921 { yyVAL.node = yyDollar[1].node } case 151: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1903 + // line internal/php5/php5.y:1929 { yyVAL.node = &ast.ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -4087,7 +4113,7 @@ yydefault: } case 152: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1911 + // line internal/php5/php5.y:1937 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) @@ -4098,7 +4124,7 @@ yydefault: } case 153: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1920 + // line internal/php5/php5.y:1946 { yyVAL.node = &ast.ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4114,7 +4140,7 @@ yydefault: } case 154: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1938 + // line internal/php5/php5.y:1964 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4122,7 +4148,7 @@ yydefault: } case 155: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1944 + // line internal/php5/php5.y:1970 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4131,7 +4157,7 @@ yydefault: } case 156: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1954 + // line internal/php5/php5.y:1980 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -4140,7 +4166,7 @@ yydefault: } case 157: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1961 + // line internal/php5/php5.y:1987 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -4149,7 +4175,7 @@ yydefault: } case 158: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1968 + // line internal/php5/php5.y:1994 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4159,7 +4185,7 @@ yydefault: } case 159: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:1976 + // line internal/php5/php5.y:2002 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4169,7 +4195,7 @@ yydefault: } case 160: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:1987 + // line internal/php5/php5.y:2013 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4178,7 +4204,7 @@ yydefault: } case 161: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:1994 + // line internal/php5/php5.y:2020 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4186,7 +4212,7 @@ yydefault: } case 162: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2004 + // line internal/php5/php5.y:2030 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4199,7 +4225,7 @@ yydefault: } case 163: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2015 + // line internal/php5/php5.y:2041 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4209,7 +4235,7 @@ yydefault: } case 164: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2023 + // line internal/php5/php5.y:2049 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -4221,7 +4247,7 @@ yydefault: } case 165: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2037 + // line internal/php5/php5.y:2063 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4240,7 +4266,7 @@ yydefault: } case 166: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2054 + // line internal/php5/php5.y:2080 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4261,7 +4287,7 @@ yydefault: } case 167: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2073 + // line internal/php5/php5.y:2099 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4281,7 +4307,7 @@ yydefault: } case 168: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2091 + // line internal/php5/php5.y:2117 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{ @@ -4303,19 +4329,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2115 + // line internal/php5/php5.y:2141 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 170: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2119 + // line internal/php5/php5.y:2145 { yyVAL.list = []ast.Vertex{} } case 171: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2127 + // line internal/php5/php5.y:2153 { yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), @@ -4327,7 +4353,7 @@ yydefault: } case 172: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2137 + // line internal/php5/php5.y:2163 { yyDollar[1].node.(*ast.StmtClassConstList).SemiColonTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtClassConstList).Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token) @@ -4335,13 +4361,13 @@ yydefault: } case 173: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2143 + // line internal/php5/php5.y:2169 { yyVAL.node = yyDollar[1].node } case 174: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php5/php5.y:2147 + // line internal/php5/php5.y:2173 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[8].node) if yyDollar[1].list != nil { @@ -4367,7 +4393,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2174 + // line internal/php5/php5.y:2200 { traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4389,7 +4415,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2197 + // line internal/php5/php5.y:2223 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4397,7 +4423,7 @@ yydefault: } case 177: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2203 + // line internal/php5/php5.y:2229 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4406,7 +4432,7 @@ yydefault: } case 178: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2213 + // line internal/php5/php5.y:2239 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4415,7 +4441,7 @@ yydefault: } case 179: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2220 + // line internal/php5/php5.y:2246 { yyVAL.node = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4426,31 +4452,31 @@ yydefault: } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2232 + // line internal/php5/php5.y:2258 { yyVAL.list = nil } case 181: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2236 + // line internal/php5/php5.y:2262 { yyVAL.list = yyDollar[1].list } case 182: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2243 + // line internal/php5/php5.y:2269 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2247 + // line internal/php5/php5.y:2273 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 184: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2254 + // line internal/php5/php5.y:2280 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4458,7 +4484,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2260 + // line internal/php5/php5.y:2286 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4466,7 +4492,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2269 + // line internal/php5/php5.y:2295 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4478,7 +4504,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2282 + // line internal/php5/php5.y:2308 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4486,7 +4512,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2288 + // line internal/php5/php5.y:2314 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4495,7 +4521,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2298 + // line internal/php5/php5.y:2324 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4508,13 +4534,13 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2309 + // line internal/php5/php5.y:2335 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2316 + // line internal/php5/php5.y:2342 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4529,7 +4555,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2332 + // line internal/php5/php5.y:2358 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4545,7 +4571,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2346 + // line internal/php5/php5.y:2372 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4556,19 +4582,19 @@ yydefault: } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2358 + // line internal/php5/php5.y:2384 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2362 + // line internal/php5/php5.y:2388 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2369 + // line internal/php5/php5.y:2395 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4577,7 +4603,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2376 + // line internal/php5/php5.y:2402 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4588,13 +4614,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2388 + // line internal/php5/php5.y:2414 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2392 + // line internal/php5/php5.y:2418 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4606,31 +4632,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2405 + // line internal/php5/php5.y:2431 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2409 + // line internal/php5/php5.y:2435 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2416 + // line internal/php5/php5.y:2442 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2420 + // line internal/php5/php5.y:2446 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2427 + // line internal/php5/php5.y:2453 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4640,7 +4666,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2435 + // line internal/php5/php5.y:2461 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4650,7 +4676,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2443 + // line internal/php5/php5.y:2469 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4660,7 +4686,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2451 + // line internal/php5/php5.y:2477 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4670,7 +4696,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2459 + // line internal/php5/php5.y:2485 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4680,7 +4706,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2467 + // line internal/php5/php5.y:2493 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4690,7 +4716,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2478 + // line internal/php5/php5.y:2504 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4711,7 +4737,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2497 + // line internal/php5/php5.y:2523 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4734,7 +4760,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2518 + // line internal/php5/php5.y:2544 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4755,7 +4781,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2537 + // line internal/php5/php5.y:2563 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4777,7 +4803,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2560 + // line internal/php5/php5.y:2586 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -4797,7 +4823,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2578 + // line internal/php5/php5.y:2604 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -4818,7 +4844,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2600 + // line internal/php5/php5.y:2626 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4827,7 +4853,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2607 + // line internal/php5/php5.y:2633 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4835,19 +4861,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2617 + // line internal/php5/php5.y:2643 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2621 + // line internal/php5/php5.y:2647 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2628 + // line internal/php5/php5.y:2654 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4856,7 +4882,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2635 + // line internal/php5/php5.y:2661 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4864,19 +4890,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2644 + // line internal/php5/php5.y:2670 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2648 + // line internal/php5/php5.y:2674 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2655 + // line internal/php5/php5.y:2681 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -4890,7 +4916,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2667 + // line internal/php5/php5.y:2693 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4904,37 +4930,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2682 + // line internal/php5/php5.y:2708 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2686 + // line internal/php5/php5.y:2712 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2690 + // line internal/php5/php5.y:2716 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2697 + // line internal/php5/php5.y:2723 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2701 + // line internal/php5/php5.y:2727 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2734 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4955,7 +4981,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2730 + // line internal/php5/php5.y:2756 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4973,7 +4999,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2746 + // line internal/php5/php5.y:2772 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4984,7 +5010,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2755 + // line internal/php5/php5.y:2781 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -4996,7 +5022,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2765 + // line internal/php5/php5.y:2791 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5027,7 +5053,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2794 + // line internal/php5/php5.y:2820 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5037,7 +5063,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2802 + // line internal/php5/php5.y:2828 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5048,7 +5074,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2811 + // line internal/php5/php5.y:2837 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5059,7 +5085,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2820 + // line internal/php5/php5.y:2846 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5070,7 +5096,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2829 + // line internal/php5/php5.y:2855 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5081,7 +5107,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2838 + // line internal/php5/php5.y:2864 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5092,7 +5118,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2847 + // line internal/php5/php5.y:2873 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5103,7 +5129,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2856 + // line internal/php5/php5.y:2882 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5114,7 +5140,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2865 + // line internal/php5/php5.y:2891 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5125,7 +5151,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2874 + // line internal/php5/php5.y:2900 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5136,7 +5162,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2883 + // line internal/php5/php5.y:2909 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5147,7 +5173,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2892 + // line internal/php5/php5.y:2918 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5158,7 +5184,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2901 + // line internal/php5/php5.y:2927 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5169,7 +5195,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2910 + // line internal/php5/php5.y:2936 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5179,7 +5205,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2918 + // line internal/php5/php5.y:2944 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5189,7 +5215,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2926 + // line internal/php5/php5.y:2952 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5199,7 +5225,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2934 + // line internal/php5/php5.y:2960 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5209,7 +5235,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2942 + // line internal/php5/php5.y:2968 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5220,7 +5246,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2951 + // line internal/php5/php5.y:2977 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5231,7 +5257,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2960 + // line internal/php5/php5.y:2986 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5242,7 +5268,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2969 + // line internal/php5/php5.y:2995 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5253,7 +5279,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2978 + // line internal/php5/php5.y:3004 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5264,7 +5290,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2987 + // line internal/php5/php5.y:3013 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5275,7 +5301,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2996 + // line internal/php5/php5.y:3022 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5286,7 +5312,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3005 + // line internal/php5/php5.y:3031 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5297,7 +5323,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3014 + // line internal/php5/php5.y:3040 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5308,7 +5334,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3023 + // line internal/php5/php5.y:3049 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5319,7 +5345,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3032 + // line internal/php5/php5.y:3058 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5330,7 +5356,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3041 + // line internal/php5/php5.y:3067 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5341,7 +5367,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3050 + // line internal/php5/php5.y:3076 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5352,7 +5378,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3059 + // line internal/php5/php5.y:3085 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5363,7 +5389,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3068 + // line internal/php5/php5.y:3094 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5374,7 +5400,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3077 + // line internal/php5/php5.y:3103 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5385,7 +5411,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3086 + // line internal/php5/php5.y:3112 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5396,7 +5422,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3095 + // line internal/php5/php5.y:3121 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5406,7 +5432,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3103 + // line internal/php5/php5.y:3129 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5416,7 +5442,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3111 + // line internal/php5/php5.y:3137 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5426,7 +5452,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3119 + // line internal/php5/php5.y:3145 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5436,7 +5462,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3127 + // line internal/php5/php5.y:3153 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5447,7 +5473,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3136 + // line internal/php5/php5.y:3162 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5458,7 +5484,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3145 + // line internal/php5/php5.y:3171 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5469,7 +5495,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3154 + // line internal/php5/php5.y:3180 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5480,7 +5506,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3163 + // line internal/php5/php5.y:3189 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5491,7 +5517,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3172 + // line internal/php5/php5.y:3198 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5502,7 +5528,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3181 + // line internal/php5/php5.y:3207 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5513,7 +5539,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3190 + // line internal/php5/php5.y:3216 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5524,7 +5550,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3199 + // line internal/php5/php5.y:3225 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5535,19 +5561,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3208 + // line internal/php5/php5.y:3234 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3212 + // line internal/php5/php5.y:3238 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3216 + // line internal/php5/php5.y:3242 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5582,7 +5608,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3249 + // line internal/php5/php5.y:3275 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5595,7 +5621,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3260 + // line internal/php5/php5.y:3286 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5607,13 +5633,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3270 + // line internal/php5/php5.y:3296 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3274 + // line internal/php5/php5.y:3300 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5623,7 +5649,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3282 + // line internal/php5/php5.y:3308 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5633,7 +5659,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3290 + // line internal/php5/php5.y:3316 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5643,7 +5669,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3298 + // line internal/php5/php5.y:3324 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5653,7 +5679,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3306 + // line internal/php5/php5.y:3332 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5663,7 +5689,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3314 + // line internal/php5/php5.y:3340 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5673,7 +5699,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3322 + // line internal/php5/php5.y:3348 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5683,7 +5709,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3330 + // line internal/php5/php5.y:3356 { exit := &ast.ExprExit{ ExitTkn: yyDollar[1].token, @@ -5702,7 +5728,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3347 + // line internal/php5/php5.y:3373 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5712,25 +5738,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3355 + // line internal/php5/php5.y:3381 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3359 + // line internal/php5/php5.y:3385 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3363 + // line internal/php5/php5.y:3389 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3367 + // line internal/php5/php5.y:3393 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5741,7 +5767,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3376 + // line internal/php5/php5.y:3402 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5751,7 +5777,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3384 + // line internal/php5/php5.y:3410 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5760,7 +5786,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3391 + // line internal/php5/php5.y:3417 { closure := yyDollar[6].node.(*ast.ExprClosure) @@ -5779,7 +5805,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3408 + // line internal/php5/php5.y:3434 { closure := yyDollar[7].node.(*ast.ExprClosure) @@ -5799,7 +5825,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3429 + // line internal/php5/php5.y:3455 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5809,7 +5835,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3437 + // line internal/php5/php5.y:3463 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5819,7 +5845,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3445 + // line internal/php5/php5.y:3471 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5831,7 +5857,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3455 + // line internal/php5/php5.y:3481 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5843,7 +5869,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3468 + // line internal/php5/php5.y:3494 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5855,7 +5881,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3478 + // line internal/php5/php5.y:3504 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5867,7 +5893,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3488 + // line internal/php5/php5.y:3514 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5883,7 +5909,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3502 + // line internal/php5/php5.y:3528 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5895,7 +5921,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3515 + // line internal/php5/php5.y:3541 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5908,7 +5934,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3526 + // line internal/php5/php5.y:3552 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5920,19 +5946,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3539 + // line internal/php5/php5.y:3565 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3546 + // line internal/php5/php5.y:3572 { yyVAL.node = &ast.ExprClosure{} } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3550 + // line internal/php5/php5.y:3576 { yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, @@ -5944,7 +5970,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3563 + // line internal/php5/php5.y:3589 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -5965,7 +5991,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3582 + // line internal/php5/php5.y:3608 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), @@ -5987,7 +6013,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3602 + // line internal/php5/php5.y:3628 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6007,7 +6033,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3620 + // line internal/php5/php5.y:3646 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6028,7 +6054,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3642 + // line internal/php5/php5.y:3668 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), @@ -6045,7 +6071,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3657 + // line internal/php5/php5.y:3683 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -6064,7 +6090,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3674 + // line internal/php5/php5.y:3700 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -6082,7 +6108,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3690 + // line internal/php5/php5.y:3716 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6105,7 +6131,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3711 + // line internal/php5/php5.y:3737 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6120,7 +6146,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3724 + // line internal/php5/php5.y:3750 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6143,7 +6169,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3745 + // line internal/php5/php5.y:3771 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6158,7 +6184,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3758 + // line internal/php5/php5.y:3784 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -6171,7 +6197,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3772 + // line internal/php5/php5.y:3798 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6181,7 +6207,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3780 + // line internal/php5/php5.y:3806 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6191,7 +6217,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3788 + // line internal/php5/php5.y:3814 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6203,7 +6229,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3798 + // line internal/php5/php5.y:3824 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6214,7 +6240,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3810 + // line internal/php5/php5.y:3836 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6224,7 +6250,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3818 + // line internal/php5/php5.y:3844 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6236,7 +6262,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3828 + // line internal/php5/php5.y:3854 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6247,19 +6273,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3840 + // line internal/php5/php5.y:3866 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3844 + // line internal/php5/php5.y:3870 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3851 + // line internal/php5/php5.y:3877 { yyVAL.node = yyDollar[1].node @@ -6295,25 +6321,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3885 + // line internal/php5/php5.y:3911 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3893 + // line internal/php5/php5.y:3919 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3897 + // line internal/php5/php5.y:3923 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3905 + // line internal/php5/php5.y:3931 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6321,13 +6347,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3914 + // line internal/php5/php5.y:3940 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3918 + // line internal/php5/php5.y:3944 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6337,19 +6363,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3926 + // line internal/php5/php5.y:3952 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3933 + // line internal/php5/php5.y:3959 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3937 + // line internal/php5/php5.y:3963 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6361,25 +6387,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3947 + // line internal/php5/php5.y:3973 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3954 + // line internal/php5/php5.y:3980 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3958 + // line internal/php5/php5.y:3984 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3965 + // line internal/php5/php5.y:3991 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6389,7 +6415,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3973 + // line internal/php5/php5.y:3999 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6399,7 +6425,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3981 + // line internal/php5/php5.y:4007 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6409,7 +6435,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3989 + // line internal/php5/php5.y:4015 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6419,7 +6445,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3997 + // line internal/php5/php5.y:4023 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6429,7 +6455,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4005 + // line internal/php5/php5.y:4031 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6439,7 +6465,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4013 + // line internal/php5/php5.y:4039 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6449,7 +6475,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4021 + // line internal/php5/php5.y:4047 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6459,7 +6485,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4029 + // line internal/php5/php5.y:4055 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6469,7 +6495,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4037 + // line internal/php5/php5.y:4063 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6479,7 +6505,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4045 + // line internal/php5/php5.y:4071 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6496,7 +6522,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4060 + // line internal/php5/php5.y:4086 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6506,7 +6532,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4071 + // line internal/php5/php5.y:4097 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6521,25 +6547,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4087 + // line internal/php5/php5.y:4113 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4094 + // line internal/php5/php5.y:4120 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4098 + // line internal/php5/php5.y:4124 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4102 + // line internal/php5/php5.y:4128 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6552,7 +6578,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4139 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6567,7 +6593,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4126 + // line internal/php5/php5.y:4152 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6581,7 +6607,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4138 + // line internal/php5/php5.y:4164 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6594,7 +6620,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4149 + // line internal/php5/php5.y:4175 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6606,13 +6632,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4159 + // line internal/php5/php5.y:4185 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4163 + // line internal/php5/php5.y:4189 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6622,13 +6648,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4171 + // line internal/php5/php5.y:4197 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4178 + // line internal/php5/php5.y:4204 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6640,7 +6666,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4188 + // line internal/php5/php5.y:4214 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6651,7 +6677,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4197 + // line internal/php5/php5.y:4223 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6662,7 +6688,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4206 + // line internal/php5/php5.y:4232 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6673,7 +6699,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4215 + // line internal/php5/php5.y:4241 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6684,7 +6710,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4224 + // line internal/php5/php5.y:4250 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6695,7 +6721,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4233 + // line internal/php5/php5.y:4259 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6706,7 +6732,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4242 + // line internal/php5/php5.y:4268 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6716,7 +6742,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4250 + // line internal/php5/php5.y:4276 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6726,7 +6752,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4258 + // line internal/php5/php5.y:4284 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6737,7 +6763,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4267 + // line internal/php5/php5.y:4293 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6748,7 +6774,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4276 + // line internal/php5/php5.y:4302 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6759,7 +6785,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4285 + // line internal/php5/php5.y:4311 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6770,7 +6796,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4294 + // line internal/php5/php5.y:4320 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6781,7 +6807,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4303 + // line internal/php5/php5.y:4329 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6792,7 +6818,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4312 + // line internal/php5/php5.y:4338 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6803,7 +6829,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4321 + // line internal/php5/php5.y:4347 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6814,7 +6840,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4330 + // line internal/php5/php5.y:4356 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6825,7 +6851,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4339 + // line internal/php5/php5.y:4365 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6836,7 +6862,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4348 + // line internal/php5/php5.y:4374 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6847,7 +6873,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4357 + // line internal/php5/php5.y:4383 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6858,7 +6884,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4366 + // line internal/php5/php5.y:4392 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6869,7 +6895,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4375 + // line internal/php5/php5.y:4401 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6880,7 +6906,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4384 + // line internal/php5/php5.y:4410 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6891,7 +6917,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4393 + // line internal/php5/php5.y:4419 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6902,7 +6928,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4402 + // line internal/php5/php5.y:4428 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6913,7 +6939,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4411 + // line internal/php5/php5.y:4437 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6924,7 +6950,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4420 + // line internal/php5/php5.y:4446 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6935,7 +6961,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4429 + // line internal/php5/php5.y:4455 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6947,7 +6973,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4439 + // line internal/php5/php5.y:4465 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -6960,7 +6986,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4450 + // line internal/php5/php5.y:4476 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6970,7 +6996,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4458 + // line internal/php5/php5.y:4484 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6980,7 +7006,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4466 + // line internal/php5/php5.y:4492 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6991,13 +7017,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4478 + // line internal/php5/php5.y:4504 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4482 + // line internal/php5/php5.y:4508 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -7010,7 +7036,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4493 + // line internal/php5/php5.y:4519 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -7025,7 +7051,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4506 + // line internal/php5/php5.y:4532 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -7039,7 +7065,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4521 + // line internal/php5/php5.y:4547 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7052,25 +7078,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4558 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4536 + // line internal/php5/php5.y:4562 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4540 + // line internal/php5/php5.y:4566 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4544 + // line internal/php5/php5.y:4570 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7081,7 +7107,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4553 + // line internal/php5/php5.y:4579 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7092,7 +7118,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4588 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7102,13 +7128,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4573 + // line internal/php5/php5.y:4599 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4577 + // line internal/php5/php5.y:4603 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7119,19 +7145,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4589 + // line internal/php5/php5.y:4615 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4593 + // line internal/php5/php5.y:4619 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4600 + // line internal/php5/php5.y:4626 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7147,7 +7173,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4614 + // line internal/php5/php5.y:4640 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7161,7 +7187,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4626 + // line internal/php5/php5.y:4652 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7176,7 +7202,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4639 + // line internal/php5/php5.y:4665 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7189,19 +7215,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4653 + // line internal/php5/php5.y:4679 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4657 + // line internal/php5/php5.y:4683 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4664 + // line internal/php5/php5.y:4690 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7212,7 +7238,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4673 + // line internal/php5/php5.y:4699 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7223,25 +7249,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4686 + // line internal/php5/php5.y:4712 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4694 + // line internal/php5/php5.y:4720 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4701 + // line internal/php5/php5.y:4727 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4708 + // line internal/php5/php5.y:4734 { yyVAL.node = yyDollar[1].node @@ -7320,25 +7346,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4785 + // line internal/php5/php5.y:4811 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4792 + // line internal/php5/php5.y:4818 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4796 + // line internal/php5/php5.y:4822 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4804 + // line internal/php5/php5.y:4830 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7369,7 +7395,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4836 + // line internal/php5/php5.y:4862 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7383,7 +7409,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4848 + // line internal/php5/php5.y:4874 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7397,7 +7423,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4863 + // line internal/php5/php5.y:4889 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7409,31 +7435,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4876 + // line internal/php5/php5.y:4902 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4880 + // line internal/php5/php5.y:4906 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4884 + // line internal/php5/php5.y:4910 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4891 + // line internal/php5/php5.y:4917 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4895 + // line internal/php5/php5.y:4921 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7445,7 +7471,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4908 + // line internal/php5/php5.y:4934 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7456,7 +7482,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4943 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7467,13 +7493,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4929 + // line internal/php5/php5.y:4955 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4936 + // line internal/php5/php5.y:4962 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7485,7 +7511,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4946 + // line internal/php5/php5.y:4972 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7497,31 +7523,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4959 + // line internal/php5/php5.y:4985 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4963 + // line internal/php5/php5.y:4989 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4967 + // line internal/php5/php5.y:4993 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4975 + // line internal/php5/php5.y:5001 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4979 + // line internal/php5/php5.y:5005 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7533,13 +7559,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4989 + // line internal/php5/php5.y:5015 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4996 + // line internal/php5/php5.y:5022 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7551,7 +7577,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5006 + // line internal/php5/php5.y:5032 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7563,13 +7589,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5016 + // line internal/php5/php5.y:5042 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5024 + // line internal/php5/php5.y:5050 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7582,7 +7608,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5035 + // line internal/php5/php5.y:5061 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7594,25 +7620,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5048 + // line internal/php5/php5.y:5074 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5052 + // line internal/php5/php5.y:5078 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5060 + // line internal/php5/php5.y:5086 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5064 + // line internal/php5/php5.y:5090 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7623,7 +7649,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5076 + // line internal/php5/php5.y:5102 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7637,7 +7663,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5088 + // line internal/php5/php5.y:5114 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7651,7 +7677,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5100 + // line internal/php5/php5.y:5126 { property := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7668,7 +7694,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5118 + // line internal/php5/php5.y:5144 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7678,7 +7704,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5126 + // line internal/php5/php5.y:5152 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7689,7 +7715,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5138 + // line internal/php5/php5.y:5164 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7700,7 +7726,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5147 + // line internal/php5/php5.y:5173 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7709,7 +7735,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5157 + // line internal/php5/php5.y:5183 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7718,7 +7744,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5164 + // line internal/php5/php5.y:5190 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7726,7 +7752,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5174 + // line internal/php5/php5.y:5200 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7735,7 +7761,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5181 + // line internal/php5/php5.y:5207 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7758,19 +7784,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5202 + // line internal/php5/php5.y:5228 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5210 + // line internal/php5/php5.y:5236 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5214 + // line internal/php5/php5.y:5240 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7781,7 +7807,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5226 + // line internal/php5/php5.y:5252 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7797,7 +7823,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5240 + // line internal/php5/php5.y:5266 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7811,7 +7837,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5278 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7826,7 +7852,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5265 + // line internal/php5/php5.y:5291 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7839,7 +7865,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5276 + // line internal/php5/php5.y:5302 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7856,7 +7882,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5291 + // line internal/php5/php5.y:5317 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7871,7 +7897,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5304 + // line internal/php5/php5.y:5330 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7887,7 +7913,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5318 + // line internal/php5/php5.y:5344 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7901,13 +7927,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5333 + // line internal/php5/php5.y:5359 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5337 + // line internal/php5/php5.y:5363 { yyVAL.list = append( yyDollar[1].list, @@ -7920,13 +7946,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5348 + // line internal/php5/php5.y:5374 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5352 + // line internal/php5/php5.y:5378 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7939,7 +7965,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5366 + // line internal/php5/php5.y:5392 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7952,7 +7978,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5377 + // line internal/php5/php5.y:5403 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7971,7 +7997,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5394 + // line internal/php5/php5.y:5420 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7993,7 +8019,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5414 + // line internal/php5/php5.y:5440 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8004,7 +8030,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5423 + // line internal/php5/php5.y:5449 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8019,7 +8045,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5436 + // line internal/php5/php5.y:5462 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8037,7 +8063,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5452 + // line internal/php5/php5.y:5478 { yyVAL.node = &ast.ScalarEncapsedStringBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8048,7 +8074,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5464 + // line internal/php5/php5.y:5490 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8058,7 +8084,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5472 + // line internal/php5/php5.y:5498 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8077,7 +8103,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5489 + // line internal/php5/php5.y:5515 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8090,7 +8116,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5503 + // line internal/php5/php5.y:5529 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8103,7 +8129,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5514 + // line internal/php5/php5.y:5540 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8115,7 +8141,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5524 + // line internal/php5/php5.y:5550 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8127,7 +8153,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5534 + // line internal/php5/php5.y:5560 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8137,7 +8163,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5542 + // line internal/php5/php5.y:5568 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8147,7 +8173,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5576 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8159,7 +8185,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5586 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8169,7 +8195,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5568 + // line internal/php5/php5.y:5594 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8179,7 +8205,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5579 + // line internal/php5/php5.y:5605 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8187,7 +8213,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5585 + // line internal/php5/php5.y:5611 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8196,19 +8222,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5595 + // line internal/php5/php5.y:5621 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5599 + // line internal/php5/php5.y:5625 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5606 + // line internal/php5/php5.y:5632 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8223,7 +8249,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5619 + // line internal/php5/php5.y:5645 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8238,7 +8264,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5635 + // line internal/php5/php5.y:5661 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8253,7 +8279,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5651 + // line internal/php5/php5.y:5677 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 65e6ed1..b422f9f 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -1280,36 +1280,55 @@ unticked_class_declaration_statement: { switch n := $1.(type) { case *ast.StmtClass : - n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) - n.ClassName = &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), + className := &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } - n.Extends = $3 - n.Implements = $4 - n.OpenCurlyBracketTkn = $5 - n.Stmts = $6 + + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) + n.ClassName = className + n.OpenCurlyBracketTkn = $5 + n.Stmts = $6 n.CloseCurlyBracketTkn = $7 + + if $3 != nil { + n.ExtendsTkn = $3.(*ast.StmtClass).ExtendsTkn + n.Extends = $3.(*ast.StmtClass).Extends + } + + if $4 != nil { + n.ImplementsTkn = $4.(*ast.StmtClass).ImplementsTkn + n.Implements = $4.(*ast.StmtClass).Implements + n.ImplementsSeparatorTkns = $4.(*ast.StmtClass).ImplementsSeparatorTkns + } case *ast.StmtTrait : - n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) - n.TraitName = &ast.Identifier{ - Position: yylex.(*Parser).builder.NewTokenPosition($2), + traitName := &ast.Identifier{ + Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, } - n.Extends = $3 - n.Implements = $4 - n.OpenCurlyBracketTkn = $5 - n.Stmts = $6 + + n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) + n.TraitName = traitName + n.OpenCurlyBracketTkn = $5 + n.Stmts = $6 n.CloseCurlyBracketTkn = $7 + + if $3 != nil { + yylex.(*Parser).errHandlerFunc(errors.NewError("A trait cannot extend a class. Traits can only be composed from other traits with the 'use' keyword", $3.(*ast.StmtClass).Position)) + } + + if $4 != nil { + yylex.(*Parser).errHandlerFunc(errors.NewError("A trait cannot implement an interface", $4.(*ast.StmtClass).Position)) + } } $$ = $1 } | interface_entry T_STRING interface_extends_list '{' class_statement_list '}' { - $$ = &ast.StmtInterface{ + iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ @@ -1317,11 +1336,18 @@ unticked_class_declaration_statement: IdentifierTkn: $2, Value: $2.Value, }, - Extends: $3, OpenCurlyBracketTkn: $4, Stmts: $5, CloseCurlyBracketTkn: $6, } + + if $3 != nil { + iface.ExtendsTkn = $3.(*ast.StmtInterface).ExtendsTkn + iface.Extends = $3.(*ast.StmtInterface).Extends + iface.ExtendsSeparatorTkns = $3.(*ast.StmtInterface).ExtendsSeparatorTkns + } + + $$ = iface } ; @@ -1378,10 +1404,10 @@ extends_from: } | T_EXTENDS fully_qualified_class_name { - $$ = &ast.StmtClassExtends{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - ExtendTkn: $1, - ClassName: $2, + $$ = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), + ExtendsTkn: $1, + Extends: $2, } } ; @@ -1400,11 +1426,11 @@ interface_extends_list: } | T_EXTENDS interface_list { - $$ = &ast.StmtInterfaceExtends{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - ExtendsTkn: $1, - InterfaceNames: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + $$ = &ast.StmtInterface{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + ExtendsTkn: $1, + Extends: $2.(*ast.ParserSeparatedList).Items, + ExtendsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }; } ; @@ -1416,11 +1442,11 @@ implements_list: } | T_IMPLEMENTS interface_list { - $$ = &ast.StmtClassImplements{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - ImplementsTkn: $1, - InterfaceNames: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + $$ = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + ImplementsTkn: $1, + Implements: $2.(*ast.ParserSeparatedList).Items, + ImplementsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }; } ; diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index d6ddeac..5b63320 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -11108,74 +11108,66 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, Value: []byte("foo"), }, - Extends: &ast.StmtClassExtends{ + ExtendsTkn: &token.Token{ + ID: token.T_EXTENDS, + Value: []byte("extends"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, - EndPos: 30, + EndPos: 26, }, - ExtendTkn: &token.Token{ - ID: token.T_EXTENDS, - Value: []byte("extends"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 26, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 19, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 18, + EndPos: 19, }, }, }, - ClassName: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 30, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + Extends: &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 30, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 30, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 27, EndPos: 30, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 30, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 26, - EndPos: 27, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, }, }, }, - Value: []byte("bar"), }, + Value: []byte("bar"), }, }, }, @@ -11350,75 +11342,67 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, Value: []byte("foo"), }, - Implements: &ast.StmtClassImplements{ + ImplementsTkn: &token.Token{ + ID: token.T_IMPLEMENTS, + Value: []byte("implements"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, - EndPos: 33, + EndPos: 29, }, - ImplementsTkn: &token.Token{ - ID: token.T_IMPLEMENTS, - Value: []byte("implements"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 19, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, - EndPos: 33, + StartPos: 18, + EndPos: 19, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Implements: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("bar"), }, + Value: []byte("bar"), }, }, }, @@ -11594,129 +11578,121 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, Value: []byte("foo"), }, - Implements: &ast.StmtClassImplements{ + ImplementsTkn: &token.Token{ + ID: token.T_IMPLEMENTS, + Value: []byte("implements"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, - EndPos: 38, + EndPos: 29, }, - ImplementsTkn: &token.Token{ - ID: token.T_IMPLEMENTS, - Value: []byte("implements"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 19, - EndPos: 29, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 18, - EndPos: 19, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 30, - EndPos: 33, + StartPos: 18, + EndPos: 19, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Implements: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("bar"), }, + Value: []byte("bar"), }, }, - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 35, EndPos: 38, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 34, - EndPos: 35, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 34, + EndPos: 35, }, }, }, - Value: []byte("baz"), }, + Value: []byte("baz"), }, }, }, - SeparatorTkns: []*token.Token{ - { - ID: token.ID(44), - Value: []byte(","), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 34, - }, + }, + ImplementsSeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 34, }, }, }, @@ -11883,58 +11859,115 @@ func TestStmtClass_AnonimousClass(t *testing.T) { EndPos: 14, }, }, - Extends: &ast.StmtClassExtends{ + ExtendsTkn: &token.Token{ + ID: token.T_EXTENDS, + Value: []byte("extends"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, - EndPos: 26, + EndPos: 22, }, - ExtendTkn: &token.Token{ - ID: token.T_EXTENDS, - Value: []byte("extends"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 15, - EndPos: 22, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 14, - EndPos: 15, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 14, + EndPos: 15, }, }, }, - ClassName: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 23, - EndPos: 26, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + Extends: &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 23, + EndPos: 26, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("foo"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 23, EndPos: 26, }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 22, + EndPos: 23, + }, + }, + }, + }, + Value: []byte("foo"), + }, + }, + }, + ImplementsTkn: &token.Token{ + ID: token.T_IMPLEMENTS, + Value: []byte("implements"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 27, + EndPos: 37, + }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 26, + EndPos: 27, + }, + }, + }, + }, + Implements: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 38, + EndPos: 41, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 38, + EndPos: 41, + }, StringTkn: &token.Token{ ID: token.T_STRING, - Value: []byte("foo"), + Value: []byte("bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 23, - EndPos: 26, + StartPos: 38, + EndPos: 41, }, FreeFloating: []*token.Token{ { @@ -11943,140 +11976,67 @@ func TestStmtClass_AnonimousClass(t *testing.T) { Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 22, - EndPos: 23, + StartPos: 37, + EndPos: 38, }, }, }, }, - Value: []byte("foo"), + Value: []byte("bar"), }, }, }, - }, - Implements: &ast.StmtClassImplements{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 27, - EndPos: 46, - }, - ImplementsTkn: &token.Token{ - ID: token.T_IMPLEMENTS, - Value: []byte("implements"), + &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 27, - EndPos: 37, + StartPos: 43, + EndPos: 46, }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), + Parts: []ast.Vertex{ + &ast.NameNamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 26, - EndPos: 27, + StartPos: 43, + EndPos: 46, }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 38, - EndPos: 41, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 38, - EndPos: 41, - }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 38, - EndPos: 41, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 37, - EndPos: 38, - }, - }, - }, - }, - Value: []byte("bar"), - }, - }, - }, - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 43, - EndPos: 46, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 43, EndPos: 46, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 43, - EndPos: 46, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 42, - EndPos: 43, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 42, + EndPos: 43, }, }, }, - Value: []byte("baz"), }, + Value: []byte("baz"), }, }, }, - SeparatorTkns: []*token.Token{ - { - ID: token.ID(44), - Value: []byte(","), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 41, - EndPos: 42, - }, + }, + ImplementsSeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 41, + EndPos: 42, }, }, }, @@ -20762,75 +20722,67 @@ func TestStmtInterface_Extend(t *testing.T) { }, Value: []byte("Foo"), }, - Extends: &ast.StmtInterfaceExtends{ + ExtendsTkn: &token.Token{ + ID: token.T_EXTENDS, + Value: []byte("extends"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 17, - EndPos: 28, + EndPos: 24, }, - ExtendsTkn: &token.Token{ - ID: token.T_EXTENDS, - Value: []byte("extends"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 24, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 17, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 25, - EndPos: 28, + StartPos: 16, + EndPos: 17, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Extends: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 28, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 25, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, }, @@ -20961,129 +20913,121 @@ func TestStmtInterface_Extends(t *testing.T) { }, Value: []byte("Foo"), }, - Extends: &ast.StmtInterfaceExtends{ + ExtendsTkn: &token.Token{ + ID: token.T_EXTENDS, + Value: []byte("extends"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 17, - EndPos: 33, + EndPos: 24, }, - ExtendsTkn: &token.Token{ - ID: token.T_EXTENDS, - Value: []byte("extends"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 17, - EndPos: 24, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 16, - EndPos: 17, - }, - }, - }, - }, - InterfaceNames: []ast.Vertex{ - &ast.NameName{ + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 1, - StartPos: 25, - EndPos: 28, + StartPos: 16, + EndPos: 17, }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + }, + }, + Extends: []ast.Vertex{ + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 25, + EndPos: 28, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 28, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 25, - EndPos: 28, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 24, - EndPos: 25, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 24, + EndPos: 25, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, - &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + }, + &ast.NameName{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, }, - SeparatorTkns: []*token.Token{ - { - ID: token.ID(44), - Value: []byte(","), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 28, - EndPos: 29, - }, + }, + ExtendsSeparatorTkns: []*token.Token{ + { + ID: token.ID(44), + Value: []byte(","), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 28, + EndPos: 29, }, }, }, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 97c37c1..2c353f7 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4378 +// line internal/php7/php7.y:4418 // line yacctab:1 var yyExca = [...]int{ @@ -3569,7 +3569,7 @@ yydefault: yyDollar = yyS[yypt-9 : yypt+1] // line internal/php7/php7.y:1205 { - yyVAL.node = &ast.StmtClass{ + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), Modifiers: yyDollar[1].list, ClassTkn: yyDollar[2].token, @@ -3578,18 +3578,29 @@ yydefault: IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, }, - Extends: yyDollar[4].node, - Implements: yyDollar[5].node, OpenCurlyBracketTkn: yyDollar[7].token, Stmts: yyDollar[8].list, CloseCurlyBracketTkn: yyDollar[9].token, } + + if yyDollar[4].node != nil { + class.ExtendsTkn = yyDollar[4].node.(*ast.StmtClass).ExtendsTkn + class.Extends = yyDollar[4].node.(*ast.StmtClass).Extends + } + + if yyDollar[5].node != nil { + class.ImplementsTkn = yyDollar[5].node.(*ast.StmtClass).ImplementsTkn + class.Implements = yyDollar[5].node.(*ast.StmtClass).Implements + class.ImplementsSeparatorTkns = yyDollar[5].node.(*ast.StmtClass).ImplementsSeparatorTkns + } + + yyVAL.node = class } case 171: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:1223 + // line internal/php7/php7.y:1234 { - yyVAL.node = &ast.StmtClass{ + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, ClassName: &ast.Identifier{ @@ -3597,28 +3608,39 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - Extends: yyDollar[3].node, - Implements: yyDollar[4].node, OpenCurlyBracketTkn: yyDollar[6].token, Stmts: yyDollar[7].list, CloseCurlyBracketTkn: yyDollar[8].token, } + + if yyDollar[3].node != nil { + class.ExtendsTkn = yyDollar[3].node.(*ast.StmtClass).ExtendsTkn + class.Extends = yyDollar[3].node.(*ast.StmtClass).Extends + } + + if yyDollar[4].node != nil { + class.ImplementsTkn = yyDollar[4].node.(*ast.StmtClass).ImplementsTkn + class.Implements = yyDollar[4].node.(*ast.StmtClass).Implements + class.ImplementsSeparatorTkns = yyDollar[4].node.(*ast.StmtClass).ImplementsSeparatorTkns + } + + yyVAL.node = class } case 172: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1243 + // line internal/php7/php7.y:1265 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 173: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1247 + // line internal/php7/php7.y:1269 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 174: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1254 + // line internal/php7/php7.y:1276 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3628,7 +3650,7 @@ yydefault: } case 175: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1262 + // line internal/php7/php7.y:1284 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -3638,7 +3660,7 @@ yydefault: } case 176: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1273 + // line internal/php7/php7.y:1295 { yyVAL.node = &ast.StmtTrait{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), @@ -3655,9 +3677,9 @@ yydefault: } case 177: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1291 + // line internal/php7/php7.y:1313 { - yyVAL.node = &ast.StmtInterface{ + iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), InterfaceTkn: yyDollar[1].token, InterfaceName: &ast.Identifier{ @@ -3665,71 +3687,78 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - Extends: yyDollar[3].node, OpenCurlyBracketTkn: yyDollar[5].token, Stmts: yyDollar[6].list, CloseCurlyBracketTkn: yyDollar[7].token, } + + if yyDollar[3].node != nil { + iface.ExtendsTkn = yyDollar[3].node.(*ast.StmtInterface).ExtendsTkn + iface.Extends = yyDollar[3].node.(*ast.StmtInterface).Extends + iface.ExtendsSeparatorTkns = yyDollar[3].node.(*ast.StmtInterface).ExtendsSeparatorTkns + } + + yyVAL.node = iface } case 178: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1310 + // line internal/php7/php7.y:1339 { yyVAL.node = nil } case 179: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1314 + // line internal/php7/php7.y:1343 { - yyVAL.node = &ast.StmtClassExtends{ - Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), - ExtendTkn: yyDollar[1].token, - ClassName: yyDollar[2].node, + yyVAL.node = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), + ExtendsTkn: yyDollar[1].token, + Extends: yyDollar[2].node, } } case 180: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1325 + // line internal/php7/php7.y:1354 { yyVAL.node = nil } case 181: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1329 + // line internal/php7/php7.y:1358 { - yyVAL.node = &ast.StmtInterfaceExtends{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - ExtendsTkn: yyDollar[1].token, - InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + yyVAL.node = &ast.StmtInterface{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + ExtendsTkn: yyDollar[1].token, + Extends: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + ExtendsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 182: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1341 + // line internal/php7/php7.y:1370 { yyVAL.node = nil } case 183: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1345 + // line internal/php7/php7.y:1374 { - yyVAL.node = &ast.StmtClassImplements{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), - ImplementsTkn: yyDollar[1].token, - InterfaceNames: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + yyVAL.node = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + ImplementsTkn: yyDollar[1].token, + Implements: yyDollar[2].node.(*ast.ParserSeparatedList).Items, + ImplementsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 184: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1357 + // line internal/php7/php7.y:1386 { yyVAL.node = yyDollar[1].node } case 185: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1361 + // line internal/php7/php7.y:1390 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -3739,7 +3768,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1369 + // line internal/php7/php7.y:1398 { yyVAL.node = &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3752,7 +3781,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1380 + // line internal/php7/php7.y:1409 { yyVAL.node = &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3764,7 +3793,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1393 + // line internal/php7/php7.y:1422 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3773,7 +3802,7 @@ yydefault: } case 189: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1400 + // line internal/php7/php7.y:1429 { yyVAL.node = &ast.StmtFor{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3788,7 +3817,7 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1416 + // line internal/php7/php7.y:1445 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3797,7 +3826,7 @@ yydefault: } case 191: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1423 + // line internal/php7/php7.y:1452 { yyVAL.node = &ast.StmtForeach{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3812,7 +3841,7 @@ yydefault: } case 192: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1439 + // line internal/php7/php7.y:1468 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3821,7 +3850,7 @@ yydefault: } case 193: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1446 + // line internal/php7/php7.y:1475 { yyVAL.node = &ast.StmtDeclare{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3836,7 +3865,7 @@ yydefault: } case 194: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1462 + // line internal/php7/php7.y:1491 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -3847,7 +3876,7 @@ yydefault: } case 195: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1471 + // line internal/php7/php7.y:1500 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3859,7 +3888,7 @@ yydefault: } case 196: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1481 + // line internal/php7/php7.y:1510 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3871,7 +3900,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1491 + // line internal/php7/php7.y:1520 { yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), @@ -3884,13 +3913,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1505 + // line internal/php7/php7.y:1534 { yyVAL.list = nil } case 199: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1509 + // line internal/php7/php7.y:1538 { yyVAL.list = append(yyDollar[1].list, &ast.StmtCase{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[5].list), @@ -3902,7 +3931,7 @@ yydefault: } case 200: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1519 + // line internal/php7/php7.y:1548 { yyVAL.list = append(yyDollar[1].list, &ast.StmtDefault{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), @@ -3913,19 +3942,19 @@ yydefault: } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1531 + // line internal/php7/php7.y:1560 { yyVAL.token = yyDollar[1].token } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1535 + // line internal/php7/php7.y:1564 { yyVAL.token = yyDollar[1].token } case 203: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1542 + // line internal/php7/php7.y:1571 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -3934,7 +3963,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1549 + // line internal/php7/php7.y:1578 { yyVAL.node = &ast.StmtWhile{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -3949,7 +3978,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:1565 + // line internal/php7/php7.y:1594 { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -3962,7 +3991,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1576 + // line internal/php7/php7.y:1605 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[6].node), @@ -3979,13 +4008,13 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1594 + // line internal/php7/php7.y:1623 { yyVAL.node = yyDollar[1].node } case 208: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1598 + // line internal/php7/php7.y:1627 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[3].node), @@ -3999,7 +4028,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1613 + // line internal/php7/php7.y:1642 { yyVAL.node = &ast.StmtIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[6].list), @@ -4016,7 +4045,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-7 : yypt+1] - // line internal/php7/php7.y:1628 + // line internal/php7/php7.y:1657 { yyDollar[1].node.(*ast.StmtIf).ElseIf = append(yyDollar[1].node.(*ast.StmtIf).ElseIf, &ast.StmtElseIf{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[7].list), @@ -4035,7 +4064,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1648 + // line internal/php7/php7.y:1677 { yyDollar[1].node.(*ast.StmtIf).EndIfTkn = yyDollar[2].token yyDollar[1].node.(*ast.StmtIf).SemiColonTkn = yyDollar[3].token @@ -4045,7 +4074,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1656 + // line internal/php7/php7.y:1685 { yyDollar[1].node.(*ast.StmtIf).Else = &ast.StmtElse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[2].token, yyDollar[4].list), @@ -4064,19 +4093,19 @@ yydefault: } case 213: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1676 + // line internal/php7/php7.y:1705 { yyVAL.node = yyDollar[1].node } case 214: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1680 + // line internal/php7/php7.y:1709 { yyVAL.node = &ast.ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1687 + // line internal/php7/php7.y:1716 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4084,7 +4113,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1693 + // line internal/php7/php7.y:1722 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4093,7 +4122,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1703 + // line internal/php7/php7.y:1732 { pos := yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token) if yyDollar[1].node != nil { @@ -4121,7 +4150,7 @@ yydefault: } case 218: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:1729 + // line internal/php7/php7.y:1758 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node) if yyDollar[1].node != nil { @@ -4151,25 +4180,25 @@ yydefault: } case 219: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1760 + // line internal/php7/php7.y:1789 { yyVAL.node = nil } case 220: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1764 + // line internal/php7/php7.y:1793 { yyVAL.node = yyDollar[1].node } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1771 + // line internal/php7/php7.y:1800 { yyVAL.node = yyDollar[1].node } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1775 + // line internal/php7/php7.y:1804 { yyVAL.node = &ast.Nullable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4179,7 +4208,7 @@ yydefault: } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1786 + // line internal/php7/php7.y:1815 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4189,7 +4218,7 @@ yydefault: } case 224: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1794 + // line internal/php7/php7.y:1823 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4199,19 +4228,19 @@ yydefault: } case 225: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1802 + // line internal/php7/php7.y:1831 { yyVAL.node = yyDollar[1].node } case 226: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1809 + // line internal/php7/php7.y:1838 { yyVAL.node = &ast.ReturnType{} } case 227: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1813 + // line internal/php7/php7.y:1842 { yyVAL.node = &ast.ReturnType{ ColonTkn: yyDollar[1].token, @@ -4220,7 +4249,7 @@ yydefault: } case 228: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1823 + // line internal/php7/php7.y:1852 { yyVAL.node = &ast.ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -4230,7 +4259,7 @@ yydefault: } case 229: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1831 + // line internal/php7/php7.y:1860 { argumentList := yyDollar[2].node.(*ast.ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) @@ -4244,7 +4273,7 @@ yydefault: } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1846 + // line internal/php7/php7.y:1875 { yyVAL.node = &ast.ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, @@ -4252,7 +4281,7 @@ yydefault: } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1852 + // line internal/php7/php7.y:1881 { yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) @@ -4261,7 +4290,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1862 + // line internal/php7/php7.y:1891 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -4270,7 +4299,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1869 + // line internal/php7/php7.y:1898 { yyVAL.node = &ast.Argument{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4280,7 +4309,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1880 + // line internal/php7/php7.y:1909 { yyDollar[1].node.(*ast.StmtGlobal).Vars = append(yyDollar[1].node.(*ast.StmtGlobal).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtGlobal).SeparatorTkns, yyDollar[2].token) @@ -4289,7 +4318,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1887 + // line internal/php7/php7.y:1916 { yyVAL.node = &ast.StmtGlobal{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4297,13 +4326,13 @@ yydefault: } case 236: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1896 + // line internal/php7/php7.y:1925 { yyVAL.node = yyDollar[1].node } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1903 + // line internal/php7/php7.y:1932 { yyDollar[1].node.(*ast.StmtStatic).Vars = append(yyDollar[1].node.(*ast.StmtStatic).Vars, yyDollar[3].node) yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtStatic).SeparatorTkns, yyDollar[2].token) @@ -4312,7 +4341,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1910 + // line internal/php7/php7.y:1939 { yyVAL.node = &ast.StmtStatic{ Vars: []ast.Vertex{yyDollar[1].node}, @@ -4320,7 +4349,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:1919 + // line internal/php7/php7.y:1948 { yyVAL.node = &ast.StmtStaticVar{ @@ -4337,7 +4366,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1934 + // line internal/php7/php7.y:1963 { yyVAL.node = &ast.StmtStaticVar{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4355,19 +4384,19 @@ yydefault: } case 241: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:1953 + // line internal/php7/php7.y:1982 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 242: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:1957 + // line internal/php7/php7.y:1986 { yyVAL.list = []ast.Vertex{} } case 243: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1964 + // line internal/php7/php7.y:1993 { yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), @@ -4380,7 +4409,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:1975 + // line internal/php7/php7.y:2004 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), @@ -4393,7 +4422,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:1986 + // line internal/php7/php7.y:2015 { traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4415,7 +4444,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php7/php7.y:2006 + // line internal/php7/php7.y:2035 { pos := yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[2].token, yyDollar[10].node) if yyDollar[1].list != nil { @@ -4443,7 +4472,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2035 + // line internal/php7/php7.y:2064 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4451,7 +4480,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2041 + // line internal/php7/php7.y:2070 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4460,7 +4489,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2051 + // line internal/php7/php7.y:2080 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4469,7 +4498,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2058 + // line internal/php7/php7.y:2087 { yyVAL.node = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -4479,7 +4508,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2066 + // line internal/php7/php7.y:2095 { yyVAL.node = &ast.TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4490,19 +4519,19 @@ yydefault: } case 252: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2078 + // line internal/php7/php7.y:2107 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 253: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2082 + // line internal/php7/php7.y:2111 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 254: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2089 + // line internal/php7/php7.y:2118 { yyDollar[1].node.(*ast.StmtTraitUsePrecedence).SemiColonTkn = yyDollar[2].token @@ -4510,7 +4539,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2095 + // line internal/php7/php7.y:2124 { yyDollar[1].node.(*ast.StmtTraitUseAlias).SemiColonTkn = yyDollar[2].token @@ -4518,7 +4547,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2104 + // line internal/php7/php7.y:2133 { yyVAL.node = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -4530,7 +4559,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2117 + // line internal/php7/php7.y:2146 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4545,7 +4574,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2130 + // line internal/php7/php7.y:2159 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4560,7 +4589,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2143 + // line internal/php7/php7.y:2172 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -4576,7 +4605,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2157 + // line internal/php7/php7.y:2186 { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4587,7 +4616,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2169 + // line internal/php7/php7.y:2198 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4600,13 +4629,13 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2180 + // line internal/php7/php7.y:2209 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2187 + // line internal/php7/php7.y:2216 { yyVAL.node = &ast.StmtTraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -4621,7 +4650,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2203 + // line internal/php7/php7.y:2232 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4630,7 +4659,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2210 + // line internal/php7/php7.y:2239 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4641,13 +4670,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2222 + // line internal/php7/php7.y:2251 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2226 + // line internal/php7/php7.y:2255 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4659,31 +4688,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2239 + // line internal/php7/php7.y:2268 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2243 + // line internal/php7/php7.y:2272 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2250 + // line internal/php7/php7.y:2279 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2254 + // line internal/php7/php7.y:2283 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2261 + // line internal/php7/php7.y:2290 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4693,7 +4722,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2269 + // line internal/php7/php7.y:2298 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4703,7 +4732,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2277 + // line internal/php7/php7.y:2306 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4713,7 +4742,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2285 + // line internal/php7/php7.y:2314 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4723,7 +4752,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2293 + // line internal/php7/php7.y:2322 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4733,7 +4762,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2301 + // line internal/php7/php7.y:2330 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4743,7 +4772,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2312 + // line internal/php7/php7.y:2341 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4752,7 +4781,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2319 + // line internal/php7/php7.y:2348 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4760,7 +4789,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2328 + // line internal/php7/php7.y:2357 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4777,7 +4806,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2343 + // line internal/php7/php7.y:2372 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4795,7 +4824,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2362 + // line internal/php7/php7.y:2391 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4804,7 +4833,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2369 + // line internal/php7/php7.y:2398 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4812,7 +4841,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2378 + // line internal/php7/php7.y:2407 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4827,7 +4856,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2394 + // line internal/php7/php7.y:2423 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4842,7 +4871,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2410 + // line internal/php7/php7.y:2439 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4851,7 +4880,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2417 + // line internal/php7/php7.y:2446 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4859,25 +4888,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2426 + // line internal/php7/php7.y:2455 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2433 + // line internal/php7/php7.y:2462 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2437 + // line internal/php7/php7.y:2466 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2444 + // line internal/php7/php7.y:2473 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4886,7 +4915,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2451 + // line internal/php7/php7.y:2480 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4894,25 +4923,36 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2460 + // line internal/php7/php7.y:2489 { - yyVAL.node = &ast.StmtClass{ + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, - Extends: yyDollar[3].node, - Implements: yyDollar[4].node, OpenCurlyBracketTkn: yyDollar[6].token, Stmts: yyDollar[7].list, CloseCurlyBracketTkn: yyDollar[8].token, } + + if yyDollar[3].node != nil { + class.ExtendsTkn = yyDollar[3].node.(*ast.StmtClass).ExtendsTkn + class.Extends = yyDollar[3].node.(*ast.StmtClass).Extends + } + + if yyDollar[4].node != nil { + class.ImplementsTkn = yyDollar[4].node.(*ast.StmtClass).ImplementsTkn + class.Implements = yyDollar[4].node.(*ast.StmtClass).Implements + class.ImplementsSeparatorTkns = yyDollar[4].node.(*ast.StmtClass).ImplementsSeparatorTkns + } + + yyVAL.node = class } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2479 + // line internal/php7/php7.y:2519 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4934,7 +4974,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2499 + // line internal/php7/php7.y:2539 { yyVAL.node = &ast.ExprNew{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4944,7 +4984,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2510 + // line internal/php7/php7.y:2550 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4962,7 +5002,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2526 + // line internal/php7/php7.y:2566 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -4979,7 +5019,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2541 + // line internal/php7/php7.y:2581 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -4990,7 +5030,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2550 + // line internal/php7/php7.y:2590 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5002,7 +5042,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2560 + // line internal/php7/php7.y:2600 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5012,7 +5052,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2568 + // line internal/php7/php7.y:2608 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5023,7 +5063,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2577 + // line internal/php7/php7.y:2617 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5034,7 +5074,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2586 + // line internal/php7/php7.y:2626 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5045,7 +5085,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2595 + // line internal/php7/php7.y:2635 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5056,7 +5096,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2604 + // line internal/php7/php7.y:2644 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5067,7 +5107,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2613 + // line internal/php7/php7.y:2653 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5078,7 +5118,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2622 + // line internal/php7/php7.y:2662 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5089,7 +5129,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2631 + // line internal/php7/php7.y:2671 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5100,7 +5140,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2640 + // line internal/php7/php7.y:2680 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5111,7 +5151,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2649 + // line internal/php7/php7.y:2689 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5122,7 +5162,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2658 + // line internal/php7/php7.y:2698 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5133,7 +5173,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2667 + // line internal/php7/php7.y:2707 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5144,7 +5184,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2676 + // line internal/php7/php7.y:2716 { yyVAL.node = &ast.ExprAssignCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5155,7 +5195,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2685 + // line internal/php7/php7.y:2725 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5165,7 +5205,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2693 + // line internal/php7/php7.y:2733 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5175,7 +5215,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2701 + // line internal/php7/php7.y:2741 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5185,7 +5225,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2709 + // line internal/php7/php7.y:2749 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5195,7 +5235,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2717 + // line internal/php7/php7.y:2757 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5206,7 +5246,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2726 + // line internal/php7/php7.y:2766 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5217,7 +5257,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2735 + // line internal/php7/php7.y:2775 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5228,7 +5268,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2744 + // line internal/php7/php7.y:2784 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5239,7 +5279,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2753 + // line internal/php7/php7.y:2793 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5250,7 +5290,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2762 + // line internal/php7/php7.y:2802 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5261,7 +5301,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2771 + // line internal/php7/php7.y:2811 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5272,7 +5312,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2780 + // line internal/php7/php7.y:2820 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5283,7 +5323,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2789 + // line internal/php7/php7.y:2829 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5294,7 +5334,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2798 + // line internal/php7/php7.y:2838 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5305,7 +5345,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2807 + // line internal/php7/php7.y:2847 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5316,7 +5356,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2816 + // line internal/php7/php7.y:2856 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5327,7 +5367,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2825 + // line internal/php7/php7.y:2865 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5338,7 +5378,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2834 + // line internal/php7/php7.y:2874 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5349,7 +5389,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2843 + // line internal/php7/php7.y:2883 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5360,7 +5400,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2852 + // line internal/php7/php7.y:2892 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5371,7 +5411,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2861 + // line internal/php7/php7.y:2901 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5382,7 +5422,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2870 + // line internal/php7/php7.y:2910 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5392,7 +5432,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2878 + // line internal/php7/php7.y:2918 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5402,7 +5442,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2886 + // line internal/php7/php7.y:2926 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5412,7 +5452,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2894 + // line internal/php7/php7.y:2934 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5422,7 +5462,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2902 + // line internal/php7/php7.y:2942 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5433,7 +5473,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2911 + // line internal/php7/php7.y:2951 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5444,7 +5484,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2920 + // line internal/php7/php7.y:2960 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5455,7 +5495,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2929 + // line internal/php7/php7.y:2969 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5466,7 +5506,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2938 + // line internal/php7/php7.y:2978 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5477,7 +5517,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2947 + // line internal/php7/php7.y:2987 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5488,7 +5528,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2956 + // line internal/php7/php7.y:2996 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5499,7 +5539,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2965 + // line internal/php7/php7.y:3005 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5510,7 +5550,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2974 + // line internal/php7/php7.y:3014 { yyVAL.node = &ast.ExprBinarySpaceship{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5521,7 +5561,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2983 + // line internal/php7/php7.y:3023 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5532,7 +5572,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2992 + // line internal/php7/php7.y:3032 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5543,13 +5583,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3001 + // line internal/php7/php7.y:3041 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3005 + // line internal/php7/php7.y:3045 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5562,7 +5602,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3016 + // line internal/php7/php7.y:3056 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5574,7 +5614,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3026 + // line internal/php7/php7.y:3066 { yyVAL.node = &ast.ExprBinaryCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5585,13 +5625,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3035 + // line internal/php7/php7.y:3075 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3039 + // line internal/php7/php7.y:3079 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5601,7 +5641,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3047 + // line internal/php7/php7.y:3087 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5611,7 +5651,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3055 + // line internal/php7/php7.y:3095 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5621,7 +5661,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3063 + // line internal/php7/php7.y:3103 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5631,7 +5671,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3071 + // line internal/php7/php7.y:3111 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5641,7 +5681,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3079 + // line internal/php7/php7.y:3119 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5651,7 +5691,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3087 + // line internal/php7/php7.y:3127 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5661,7 +5701,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3135 { exit := &ast.ExprExit{ ExitTkn: yyDollar[1].token, @@ -5680,7 +5720,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3112 + // line internal/php7/php7.y:3152 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5690,13 +5730,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3120 + // line internal/php7/php7.y:3160 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3124 + // line internal/php7/php7.y:3164 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5707,7 +5747,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3133 + // line internal/php7/php7.y:3173 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5717,7 +5757,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3141 + // line internal/php7/php7.y:3181 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5726,7 +5766,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3148 + // line internal/php7/php7.y:3188 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5736,7 +5776,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3156 + // line internal/php7/php7.y:3196 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5748,7 +5788,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3166 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprYieldFrom{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5758,13 +5798,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3174 + // line internal/php7/php7.y:3214 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3178 + // line internal/php7/php7.y:3218 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -5779,7 +5819,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3194 + // line internal/php7/php7.y:3234 { closure := yyDollar[7].node.(*ast.ExprClosure) @@ -5800,7 +5840,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3213 + // line internal/php7/php7.y:3253 { yyVAL.node = &ast.ExprArrowFunction{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), @@ -5818,25 +5858,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3236 + // line internal/php7/php7.y:3276 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3240 + // line internal/php7/php7.y:3280 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3247 + // line internal/php7/php7.y:3287 { yyVAL.node = &ast.ExprClosure{} } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3251 + // line internal/php7/php7.y:3291 { yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, @@ -5848,7 +5888,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3264 + // line internal/php7/php7.y:3304 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5857,7 +5897,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3271 + // line internal/php7/php7.y:3311 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5865,7 +5905,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3280 + // line internal/php7/php7.y:3320 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5881,7 +5921,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3294 + // line internal/php7/php7.y:3334 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -5898,7 +5938,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3312 + // line internal/php7/php7.y:3352 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5911,7 +5951,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3323 + // line internal/php7/php7.y:3363 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5934,7 +5974,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3344 + // line internal/php7/php7.y:3384 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5957,7 +5997,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3365 + // line internal/php7/php7.y:3405 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5970,7 +6010,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3379 + // line internal/php7/php7.y:3419 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5980,31 +6020,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3387 + // line internal/php7/php7.y:3427 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3394 + // line internal/php7/php7.y:3434 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3398 + // line internal/php7/php7.y:3438 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3405 + // line internal/php7/php7.y:3445 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3409 + // line internal/php7/php7.y:3449 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6015,13 +6055,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3421 + // line internal/php7/php7.y:3461 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3425 + // line internal/php7/php7.y:3465 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6033,25 +6073,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3435 + // line internal/php7/php7.y:3475 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3442 + // line internal/php7/php7.y:3482 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3446 + // line internal/php7/php7.y:3486 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3453 + // line internal/php7/php7.y:3493 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6064,7 +6104,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3464 + // line internal/php7/php7.y:3504 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6076,7 +6116,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3474 + // line internal/php7/php7.y:3514 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6086,7 +6126,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3485 + // line internal/php7/php7.y:3525 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6096,7 +6136,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3493 + // line internal/php7/php7.y:3533 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6106,7 +6146,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3501 + // line internal/php7/php7.y:3541 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6116,7 +6156,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3509 + // line internal/php7/php7.y:3549 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6126,7 +6166,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3517 + // line internal/php7/php7.y:3557 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6136,7 +6176,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3565 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6146,7 +6186,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3533 + // line internal/php7/php7.y:3573 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6156,7 +6196,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3541 + // line internal/php7/php7.y:3581 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6166,7 +6206,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3549 + // line internal/php7/php7.y:3589 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6176,7 +6216,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3557 + // line internal/php7/php7.y:3597 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6186,7 +6226,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3565 + // line internal/php7/php7.y:3605 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6203,7 +6243,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3580 + // line internal/php7/php7.y:3620 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6213,7 +6253,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3588 + // line internal/php7/php7.y:3628 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6224,7 +6264,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3597 + // line internal/php7/php7.y:3637 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6235,19 +6275,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3606 + // line internal/php7/php7.y:3646 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3610 + // line internal/php7/php7.y:3650 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3617 + // line internal/php7/php7.y:3657 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6256,7 +6296,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3624 + // line internal/php7/php7.y:3664 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6271,7 +6311,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3637 + // line internal/php7/php7.y:3677 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6286,43 +6326,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3653 + // line internal/php7/php7.y:3693 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3657 + // line internal/php7/php7.y:3697 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3664 + // line internal/php7/php7.y:3704 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3668 + // line internal/php7/php7.y:3708 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3675 + // line internal/php7/php7.y:3715 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3682 + // line internal/php7/php7.y:3722 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3686 + // line internal/php7/php7.y:3726 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6333,19 +6373,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3695 + // line internal/php7/php7.y:3735 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3702 + // line internal/php7/php7.y:3742 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3706 + // line internal/php7/php7.y:3746 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6356,19 +6396,19 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3715 + // line internal/php7/php7.y:3755 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3722 + // line internal/php7/php7.y:3762 { yyVAL.node = yyDollar[1].node } case 433: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3726 + // line internal/php7/php7.y:3766 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6380,7 +6420,7 @@ yydefault: } case 434: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3736 + // line internal/php7/php7.y:3776 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6392,7 +6432,7 @@ yydefault: } case 435: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3786 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6404,7 +6444,7 @@ yydefault: } case 436: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3756 + // line internal/php7/php7.y:3796 { methodCall := &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6427,25 +6467,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3777 + // line internal/php7/php7.y:3817 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3784 + // line internal/php7/php7.y:3824 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3788 + // line internal/php7/php7.y:3828 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3792 + // line internal/php7/php7.y:3832 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6464,7 +6504,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3812 + // line internal/php7/php7.y:3852 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6477,7 +6517,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3823 + // line internal/php7/php7.y:3863 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6489,7 +6529,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3833 + // line internal/php7/php7.y:3873 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6499,7 +6539,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3844 + // line internal/php7/php7.y:3884 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6510,7 +6550,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3853 + // line internal/php7/php7.y:3893 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6521,13 +6561,13 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3865 + // line internal/php7/php7.y:3905 { yyVAL.node = yyDollar[1].node } case 447: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3869 + // line internal/php7/php7.y:3909 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6539,7 +6579,7 @@ yydefault: } case 448: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3879 + // line internal/php7/php7.y:3919 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6551,7 +6591,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3889 + // line internal/php7/php7.y:3929 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6570,7 +6610,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3906 + // line internal/php7/php7.y:3946 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6581,7 +6621,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3915 + // line internal/php7/php7.y:3955 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6592,7 +6632,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3927 + // line internal/php7/php7.y:3967 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6602,7 +6642,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3935 + // line internal/php7/php7.y:3975 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6613,13 +6653,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3944 + // line internal/php7/php7.y:3984 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3951 + // line internal/php7/php7.y:3991 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6629,7 +6669,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3959 + // line internal/php7/php7.y:3999 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6640,13 +6680,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3968 + // line internal/php7/php7.y:4008 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3975 + // line internal/php7/php7.y:4015 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6659,19 +6699,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3989 + // line internal/php7/php7.y:4029 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3993 + // line internal/php7/php7.y:4033 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4000 + // line internal/php7/php7.y:4040 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6680,7 +6720,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4007 + // line internal/php7/php7.y:4047 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6688,7 +6728,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4016 + // line internal/php7/php7.y:4056 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6699,7 +6739,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4025 + // line internal/php7/php7.y:4065 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6708,7 +6748,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4032 + // line internal/php7/php7.y:4072 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6720,7 +6760,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4042 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6730,7 +6770,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4050 + // line internal/php7/php7.y:4090 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6740,7 +6780,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4058 + // line internal/php7/php7.y:4098 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6758,7 +6798,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4074 + // line internal/php7/php7.y:4114 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6774,13 +6814,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4091 + // line internal/php7/php7.y:4131 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4095 + // line internal/php7/php7.y:4135 { yyVAL.list = append( yyDollar[1].list, @@ -6793,13 +6833,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4106 + // line internal/php7/php7.y:4146 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4110 + // line internal/php7/php7.y:4150 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6812,7 +6852,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4124 + // line internal/php7/php7.y:4164 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6825,7 +6865,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4135 + // line internal/php7/php7.y:4175 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6844,7 +6884,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4152 + // line internal/php7/php7.y:4192 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6866,7 +6906,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4172 + // line internal/php7/php7.y:4212 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6877,7 +6917,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4181 + // line internal/php7/php7.y:4221 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6892,7 +6932,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4194 + // line internal/php7/php7.y:4234 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6910,7 +6950,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4210 + // line internal/php7/php7.y:4250 { yyVAL.node = &ast.ScalarEncapsedStringBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6921,7 +6961,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4222 + // line internal/php7/php7.y:4262 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6931,7 +6971,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4230 + // line internal/php7/php7.y:4270 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6950,7 +6990,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4247 + // line internal/php7/php7.y:4287 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -6976,7 +7016,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4271 + // line internal/php7/php7.y:4311 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6989,7 +7029,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4285 + // line internal/php7/php7.y:4325 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7006,7 +7046,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4300 + // line internal/php7/php7.y:4340 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7018,7 +7058,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4310 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7028,7 +7068,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4318 + // line internal/php7/php7.y:4358 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7038,7 +7078,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4326 + // line internal/php7/php7.y:4366 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7050,7 +7090,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4336 + // line internal/php7/php7.y:4376 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7060,7 +7100,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4344 + // line internal/php7/php7.y:4384 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7070,7 +7110,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4355 + // line internal/php7/php7.y:4395 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7078,7 +7118,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4361 + // line internal/php7/php7.y:4401 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7087,7 +7127,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4371 + // line internal/php7/php7.y:4411 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index ec98771..117b1f8 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -1203,7 +1203,7 @@ is_variadic: class_declaration_statement: class_modifiers T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - $$ = &ast.StmtClass{ + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewOptionalListTokensPosition($1, $2, $9), Modifiers: $1, ClassTkn: $2, @@ -1212,16 +1212,27 @@ class_declaration_statement: IdentifierTkn: $3, Value: $3.Value, }, - Extends: $4, - Implements: $5, OpenCurlyBracketTkn: $7, Stmts: $8, CloseCurlyBracketTkn: $9, } + + if $4 != nil { + class.ExtendsTkn = $4.(*ast.StmtClass).ExtendsTkn + class.Extends = $4.(*ast.StmtClass).Extends + } + + if $5 != nil { + class.ImplementsTkn = $5.(*ast.StmtClass).ImplementsTkn + class.Implements = $5.(*ast.StmtClass).Implements + class.ImplementsSeparatorTkns = $5.(*ast.StmtClass).ImplementsSeparatorTkns + } + + $$ = class } | T_CLASS T_STRING extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - $$ = &ast.StmtClass{ + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, ClassName: &ast.Identifier{ @@ -1229,12 +1240,23 @@ class_declaration_statement: IdentifierTkn: $2, Value: $2.Value, }, - Extends: $3, - Implements: $4, OpenCurlyBracketTkn: $6, Stmts: $7, CloseCurlyBracketTkn: $8, } + + if $3 != nil { + class.ExtendsTkn = $3.(*ast.StmtClass).ExtendsTkn + class.Extends = $3.(*ast.StmtClass).Extends + } + + if $4 != nil { + class.ImplementsTkn = $4.(*ast.StmtClass).ImplementsTkn + class.Implements = $4.(*ast.StmtClass).Implements + class.ImplementsSeparatorTkns = $4.(*ast.StmtClass).ImplementsSeparatorTkns + } + + $$ = class } ; @@ -1289,7 +1311,7 @@ trait_declaration_statement: interface_declaration_statement: T_INTERFACE T_STRING interface_extends_list backup_doc_comment '{' class_statement_list '}' { - $$ = &ast.StmtInterface{ + iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), InterfaceTkn: $1, InterfaceName: &ast.Identifier{ @@ -1297,11 +1319,18 @@ interface_declaration_statement: IdentifierTkn: $2, Value: $2.Value, }, - Extends: $3, OpenCurlyBracketTkn: $5, Stmts: $6, CloseCurlyBracketTkn: $7, } + + if $3 != nil { + iface.ExtendsTkn = $3.(*ast.StmtInterface).ExtendsTkn + iface.Extends = $3.(*ast.StmtInterface).Extends + iface.ExtendsSeparatorTkns = $3.(*ast.StmtInterface).ExtendsSeparatorTkns + } + + $$ = iface } ; @@ -1312,10 +1341,10 @@ extends_from: } | T_EXTENDS name { - $$ = &ast.StmtClassExtends{ - Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), - ExtendTkn: $1, - ClassName: $2, + $$ = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), + ExtendsTkn: $1, + Extends: $2, } } ; @@ -1327,11 +1356,11 @@ interface_extends_list: } | T_EXTENDS name_list { - $$ = &ast.StmtInterfaceExtends{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - ExtendsTkn: $1, - InterfaceNames: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + $$ = &ast.StmtInterface{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + ExtendsTkn: $1, + Extends: $2.(*ast.ParserSeparatedList).Items, + ExtendsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }; } ; @@ -1343,11 +1372,11 @@ implements_list: } | T_IMPLEMENTS name_list { - $$ = &ast.StmtClassImplements{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), - ImplementsTkn: $1, - InterfaceNames: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + $$ = &ast.StmtClass{ + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + ImplementsTkn: $1, + Implements: $2.(*ast.ParserSeparatedList).Items, + ImplementsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, }; } ; @@ -2458,19 +2487,30 @@ non_empty_for_exprs: anonymous_class: T_CLASS ctor_arguments extends_from implements_list backup_doc_comment '{' class_statement_list '}' { - $$ = &ast.StmtClass{ + class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, Arguments: $2.(*ast.ArgumentList).Arguments, SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, - Extends: $3, - Implements: $4, OpenCurlyBracketTkn: $6, Stmts: $7, CloseCurlyBracketTkn: $8, } + + if $3 != nil { + class.ExtendsTkn = $3.(*ast.StmtClass).ExtendsTkn + class.Extends = $3.(*ast.StmtClass).Extends + } + + if $4 != nil { + class.ImplementsTkn = $4.(*ast.StmtClass).ImplementsTkn + class.Implements = $4.(*ast.StmtClass).Implements + class.ImplementsSeparatorTkns = $4.(*ast.StmtClass).ImplementsSeparatorTkns + } + + $$ = class } ; diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 508cca0..d8fb966 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -31,8 +31,6 @@ type NodeVisitor interface { StmtCatch(n *StmtCatch) StmtClass(n *StmtClass) StmtClassConstList(n *StmtClassConstList) - StmtClassExtends(n *StmtClassExtends) - StmtClassImplements(n *StmtClassImplements) StmtClassMethod(n *StmtClassMethod) StmtConstList(n *StmtConstList) StmtConstant(n *StmtConstant) @@ -54,7 +52,6 @@ type NodeVisitor interface { StmtIf(n *StmtIf) StmtInlineHtml(n *StmtInlineHtml) StmtInterface(n *StmtInterface) - StmtInterfaceExtends(n *StmtInterfaceExtends) StmtLabel(n *StmtLabel) StmtNamespace(n *StmtNamespace) StmtNop(n *StmtNop) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index d523b27..98889da 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -285,19 +285,22 @@ func (n *StmtCatch) GetPosition() *position.Position { // StmtClass node type StmtClass struct { - Position *position.Position - Modifiers []Vertex - ClassTkn *token.Token - ClassName Vertex - OpenParenthesisTkn *token.Token - Arguments []Vertex - SeparatorTkns []*token.Token - CloseParenthesisTkn *token.Token - Extends Vertex - Implements Vertex - OpenCurlyBracketTkn *token.Token - Stmts []Vertex - CloseCurlyBracketTkn *token.Token + Position *position.Position + Modifiers []Vertex + ClassTkn *token.Token + ClassName Vertex + OpenParenthesisTkn *token.Token + Arguments []Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token + ExtendsTkn *token.Token + Extends Vertex + ImplementsTkn *token.Token + Implements []Vertex + ImplementsSeparatorTkns []*token.Token + OpenCurlyBracketTkn *token.Token + Stmts []Vertex + CloseCurlyBracketTkn *token.Token } func (n *StmtClass) Accept(v NodeVisitor) { @@ -326,37 +329,6 @@ func (n *StmtClassConstList) GetPosition() *position.Position { return n.Position } -// StmtClassExtends node -type StmtClassExtends struct { - Position *position.Position - ExtendTkn *token.Token - ClassName Vertex -} - -func (n *StmtClassExtends) Accept(v NodeVisitor) { - v.StmtClassExtends(n) -} - -func (n *StmtClassExtends) GetPosition() *position.Position { - return n.Position -} - -// StmtClassImplements node -type StmtClassImplements struct { - Position *position.Position - ImplementsTkn *token.Token - InterfaceNames []Vertex - SeparatorTkns []*token.Token -} - -func (n *StmtClassImplements) Accept(v NodeVisitor) { - v.StmtClassImplements(n) -} - -func (n *StmtClassImplements) GetPosition() *position.Position { - return n.Position -} - // StmtClassMethod node type StmtClassMethod struct { Position *position.Position @@ -744,7 +716,9 @@ type StmtInterface struct { Position *position.Position InterfaceTkn *token.Token InterfaceName Vertex - Extends Vertex + ExtendsTkn *token.Token + Extends []Vertex + ExtendsSeparatorTkns []*token.Token OpenCurlyBracketTkn *token.Token Stmts []Vertex CloseCurlyBracketTkn *token.Token @@ -758,22 +732,6 @@ func (n *StmtInterface) GetPosition() *position.Position { return n.Position } -// StmtInterfaceExtends node -type StmtInterfaceExtends struct { - Position *position.Position - ExtendsTkn *token.Token - InterfaceNames []Vertex - SeparatorTkns []*token.Token -} - -func (n *StmtInterfaceExtends) Accept(v NodeVisitor) { - v.StmtInterfaceExtends(n) -} - -func (n *StmtInterfaceExtends) GetPosition() *position.Position { - return n.Position -} - // StmtLabel node type StmtLabel struct { Position *position.Position @@ -966,8 +924,6 @@ type StmtTrait struct { Position *position.Position TraitTkn *token.Token TraitName Vertex - Extends Vertex - Implements Vertex OpenCurlyBracketTkn *token.Token Stmts []Vertex CloseCurlyBracketTkn *token.Token diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 93333c9..9e58ba5 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -170,9 +170,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.visitor.Leave("Extends", true) } if nn.Implements != nil { - t.visitor.Enter("Implements", true) - t.Traverse(nn.Implements) - t.visitor.Leave("Implements", true) + t.visitor.Enter("Implements", false) + for _, c := range nn.Implements { + t.Traverse(c) + } + t.visitor.Leave("Implements", false) } if nn.Stmts != nil { t.visitor.Enter("Stmts", false) @@ -202,32 +204,6 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Consts", false) } - case *ast.StmtClassExtends: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.ClassName != nil { - t.visitor.Enter("ClassName", true) - t.Traverse(nn.ClassName) - t.visitor.Leave("ClassName", true) - } - case *ast.StmtClassImplements: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.InterfaceNames != nil { - t.visitor.Enter("InterfaceNames", false) - for _, c := range nn.InterfaceNames { - t.Traverse(c) - } - t.visitor.Leave("InterfaceNames", false) - } case *ast.StmtClassMethod: if nn == nil { return @@ -599,9 +575,11 @@ func (t *DFS) Traverse(n ast.Vertex) { t.visitor.Leave("InterfaceName", true) } if nn.Extends != nil { - t.visitor.Enter("Extends", true) - t.Traverse(nn.Extends) - t.visitor.Leave("Extends", true) + t.visitor.Enter("Extends", false) + for _, c := range nn.Extends { + t.Traverse(c) + } + t.visitor.Leave("Extends", false) } if nn.Stmts != nil { t.visitor.Enter("Stmts", false) @@ -610,20 +588,6 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Stmts", false) } - case *ast.StmtInterfaceExtends: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.InterfaceNames != nil { - t.visitor.Enter("InterfaceNames", false) - for _, c := range nn.InterfaceNames { - t.Traverse(c) - } - t.visitor.Leave("InterfaceNames", false) - } case *ast.StmtLabel: if nn == nil { return diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 0e1bf41..2783faa 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -286,8 +286,11 @@ func (v *Dumper) StmtClass(n *ast.StmtClass) { v.dumpVertexList("Arguments", n.Arguments) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) + v.dumpToken("ExtendsTkn", n.ExtendsTkn) v.dumpVertex("Extends", n.Extends) - v.dumpVertex("Implements", n.Implements) + v.dumpToken("ImplementsTkn", n.ImplementsTkn) + v.dumpVertexList("Implements", n.Implements) + v.dumpTokenList("ImplementsSeparatorTkns", n.ImplementsSeparatorTkns) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) @@ -311,31 +314,6 @@ func (v *Dumper) StmtClassConstList(n *ast.StmtClassConstList) { v.print(v.indent, "},\n") } -func (v *Dumper) StmtClassExtends(n *ast.StmtClassExtends) { - v.print(0, "&ast.StmtClassExtends{\n") - v.indent++ - - v.dumpPosition(n.Position) - v.dumpToken("ExtendTkn", n.ExtendTkn) - v.dumpVertex("ClassName", n.ClassName) - - v.indent-- - v.print(v.indent, "},\n") -} - -func (v *Dumper) StmtClassImplements(n *ast.StmtClassImplements) { - v.print(0, "&ast.StmtClassImplements{\n") - v.indent++ - - v.dumpPosition(n.Position) - v.dumpToken("ImplementsTkn", n.ImplementsTkn) - v.dumpVertexList("InterfaceNames", n.InterfaceNames) - v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) - - v.indent-- - v.print(v.indent, "},\n") -} - func (v *Dumper) StmtClassMethod(n *ast.StmtClassMethod) { v.print(0, "&ast.StmtClassMethod{\n") v.indent++ @@ -666,7 +644,9 @@ func (v *Dumper) StmtInterface(n *ast.StmtInterface) { v.dumpPosition(n.Position) v.dumpToken("InterfaceTkn", n.InterfaceTkn) v.dumpVertex("InterfaceName", n.InterfaceName) - v.dumpVertex("Extends", n.Extends) + v.dumpToken("ExtendsTkn", n.ExtendsTkn) + v.dumpVertexList("Extends", n.Extends) + v.dumpTokenList("ExtendsSeparatorTkns", n.ExtendsSeparatorTkns) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) @@ -675,19 +655,6 @@ func (v *Dumper) StmtInterface(n *ast.StmtInterface) { v.print(v.indent, "},\n") } -func (v *Dumper) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { - v.print(0, "&ast.StmtInterfaceExtends{\n") - v.indent++ - - v.dumpPosition(n.Position) - v.dumpToken("ExtendsTkn", n.ExtendsTkn) - v.dumpVertexList("InterfaceNames", n.InterfaceNames) - v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) - - v.indent-- - v.print(v.indent, "},\n") -} - func (v *Dumper) StmtLabel(n *ast.StmtLabel) { v.print(0, "&ast.StmtLabel{\n") v.indent++ @@ -849,8 +816,6 @@ func (v *Dumper) StmtTrait(n *ast.StmtTrait) { v.dumpPosition(n.Position) v.dumpToken("TraitTkn", n.TraitTkn) v.dumpVertex("TraitName", n.TraitName) - v.dumpVertex("Extends", n.Extends) - v.dumpVertex("Implements", n.Implements) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index b81a13c..c6e1a50 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -281,12 +281,14 @@ func (f *formatter) StmtClass(n *ast.StmtClass) { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) if n.Extends != nil { + n.ExtendsTkn = f.newToken(token.T_EXTENDS, []byte("extends")) n.Extends.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) } if n.Implements != nil { - n.Implements.Accept(f) + n.ImplementsTkn = f.newToken(token.T_IMPLEMENTS, []byte("implements")) + n.ImplementsSeparatorTkns = f.formatList(n.Implements, ',') f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) } @@ -318,20 +320,6 @@ func (f *formatter) StmtClassConstList(n *ast.StmtClassConstList) { n.SemiColonTkn = f.newSemicolonTkn() } -func (f *formatter) StmtClassExtends(n *ast.StmtClassExtends) { - n.ExtendTkn = f.newToken(token.T_EXTENDS, []byte("extends")) - f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - - n.ClassName.Accept(f) -} - -func (f *formatter) StmtClassImplements(n *ast.StmtClassImplements) { - n.ImplementsTkn = f.newToken(token.T_IMPLEMENTS, []byte("implements")) - f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - - n.SeparatorTkns = f.formatList(n.InterfaceNames, ',') -} - func (f *formatter) StmtClassMethod(n *ast.StmtClassMethod) { for _, m := range n.Modifiers { m.Accept(f) @@ -677,7 +665,8 @@ func (f *formatter) StmtInterface(n *ast.StmtInterface) { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) if n.Extends != nil { - n.Extends.Accept(f) + n.ExtendsTkn = f.newToken(token.T_EXTENDS, []byte("extends")) + n.ExtendsSeparatorTkns = f.formatList(n.Extends, ',') f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) } @@ -695,16 +684,6 @@ func (f *formatter) StmtInterface(n *ast.StmtInterface) { n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) } -func (f *formatter) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { - n.ExtendsTkn = f.newToken(token.T_EXTENDS, []byte("extends")) - f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - - n.SeparatorTkns = nil - if len(n.InterfaceNames) > 0 { - n.SeparatorTkns = f.formatList(n.InterfaceNames, ',') - } -} - func (f *formatter) StmtLabel(n *ast.StmtLabel) { n.LabelName.Accept(f) n.ColonTkn = f.newToken(':', []byte(":")) @@ -865,16 +844,6 @@ func (f *formatter) StmtTrait(n *ast.StmtTrait) { n.TraitName.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - if n.Extends != nil { - n.Extends.Accept(f) - f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - } - - if n.Implements != nil { - n.Implements.Accept(f) - f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - } - n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) if len(n.Stmts) > 0 { diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index 9e59126..7c708bc 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -519,12 +519,10 @@ func TestFormatter_Class_Extends(t *testing.T) { ClassName: &ast.Identifier{ Value: []byte("foo"), }, - Extends: &ast.StmtClassExtends{ - ClassName: &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, + Extends: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("bar"), }, }, }, @@ -556,13 +554,11 @@ func TestFormatter_Class_Implements(t *testing.T) { ClassName: &ast.Identifier{ Value: []byte("foo"), }, - Implements: &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, + Implements: []ast.Vertex{ + &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("bar"), }, }, }, @@ -669,69 +665,6 @@ func TestFormatter_StmtClassConstList_Modifier(t *testing.T) { } } -func TestFormatter_ClassExtends(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtClassExtends{ - ClassName: &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("foo"), - }, - }, - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `extends foo` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestFormatter_ClassImplements(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("foo"), - }, - }, - }, - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, - }, - }, - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `implements foo, bar` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestFormatter_ClassMethod(t *testing.T) { o := bytes.NewBufferString("") @@ -1881,13 +1814,11 @@ func TestFormatter_StmtInterface_Extends(t *testing.T) { InterfaceName: &ast.Identifier{ Value: []byte("foo"), }, - Extends: &ast.StmtInterfaceExtends{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, + Extends: []ast.Vertex{ + &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("bar"), }, }, }, @@ -1913,42 +1844,6 @@ func TestFormatter_StmtInterface_Extends(t *testing.T) { } } -func TestFormatter_StmtInterfaceExtends(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtInterfaceExtends{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("foo"), - }, - }, - }, - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, - }, - }, - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `extends foo, bar` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestFormatter_StmtLabel(t *testing.T) { o := bytes.NewBufferString("") @@ -2465,82 +2360,6 @@ func TestFormatter_StmtTrait(t *testing.T) { } } -func TestFormatter_StmtTrait_Extends(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtTrait{ - TraitName: &ast.Identifier{ - Value: []byte("foo"), - }, - Extends: &ast.StmtClassExtends{ - ClassName: &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, - }, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `trait foo extends bar { - ; - }` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestFormatter_StmtTrait_Implements(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtTrait{ - TraitName: &ast.Identifier{ - Value: []byte("foo"), - }, - Implements: &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("bar"), - }, - }, - }, - }, - }, - Stmts: []ast.Vertex{ - &ast.StmtNop{}, - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `trait foo implements bar { - ; - }` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestFormatter_StmtTraitMethodRef(t *testing.T) { o := bytes.NewBufferString("") diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index 9e4e6a2..7de7f68 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -73,11 +73,11 @@ func (nsr *NamespaceResolver) StmtGroupUse(n *ast.StmtGroupUse) { func (nsr *NamespaceResolver) StmtClass(n *ast.StmtClass) { if n.Extends != nil { - nsr.ResolveName(n.Extends.(*ast.StmtClassExtends).ClassName, "") + nsr.ResolveName(n.Extends, "") } if n.Implements != nil { - for _, interfaceName := range n.Implements.(*ast.StmtClassImplements).InterfaceNames { + for _, interfaceName := range n.Implements { nsr.ResolveName(interfaceName, "") } } @@ -89,7 +89,7 @@ func (nsr *NamespaceResolver) StmtClass(n *ast.StmtClass) { func (nsr *NamespaceResolver) StmtInterface(n *ast.StmtInterface) { if n.Extends != nil { - for _, interfaceName := range n.Extends.(*ast.StmtInterfaceExtends).InterfaceNames { + for _, interfaceName := range n.Extends { nsr.ResolveName(interfaceName, "") } } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 8a8bb14..8d7d5cb 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -401,13 +401,9 @@ func TestResolveClassName(t *testing.T) { class := &ast.StmtClass{ ClassName: &ast.Identifier{Value: []byte("A")}, - Extends: &ast.StmtClassExtends{ - ClassName: nameAB, - }, - Implements: &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - nameBC, - }, + Extends: nameAB, + Implements: []ast.Vertex{ + nameBC, }, } @@ -436,11 +432,9 @@ func TestResolveInterfaceName(t *testing.T) { interfaceNode := &ast.StmtInterface{ InterfaceName: &ast.Identifier{Value: []byte("A")}, - Extends: &ast.StmtInterfaceExtends{ - InterfaceNames: []ast.Vertex{ - nameAB, - nameBC, - }, + Extends: []ast.Vertex{ + nameAB, + nameBC, }, } diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index f412369..a8ca90d 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -62,14 +62,6 @@ func (v *Null) StmtClassConstList(_ *ast.StmtClassConstList) { // do nothing } -func (v *Null) StmtClassExtends(_ *ast.StmtClassExtends) { - // do nothing -} - -func (v *Null) StmtClassImplements(_ *ast.StmtClassImplements) { - // do nothing -} - func (v *Null) StmtClassMethod(_ *ast.StmtClassMethod) { // do nothing } @@ -154,10 +146,6 @@ func (v *Null) StmtInterface(_ *ast.StmtInterface) { // do nothing } -func (v *Null) StmtInterfaceExtends(_ *ast.StmtInterfaceExtends) { - // do nothing -} - func (v *Null) StmtLabel(_ *ast.StmtLabel) { // do nothing } diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index ff82f60..88fffed 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -194,8 +194,10 @@ func (p *printer) StmtClass(n *ast.StmtClass) { p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("("))) p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) + p.printToken(n.ExtendsTkn, p.ifNode(n.Extends, []byte("extends"))) p.printNode(n.Extends) - p.printNode(n.Implements) + p.printToken(n.ImplementsTkn, p.ifNodeList(n.Implements, []byte("implements"))) + p.printSeparatedList(n.Implements, n.ImplementsSeparatorTkns, []byte(",")) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) p.printToken(n.CloseCurlyBracketTkn, []byte("}")) @@ -208,16 +210,6 @@ func (p *printer) StmtClassConstList(n *ast.StmtClassConstList) { p.printToken(n.SemiColonTkn, []byte(";")) } -func (p *printer) StmtClassExtends(n *ast.StmtClassExtends) { - p.printToken(n.ExtendTkn, []byte("extends")) - p.printNode(n.ClassName) -} - -func (p *printer) StmtClassImplements(n *ast.StmtClassImplements) { - p.printToken(n.ImplementsTkn, []byte("implements")) - p.printSeparatedList(n.InterfaceNames, n.SeparatorTkns, []byte(",")) -} - func (p *printer) StmtClassMethod(n *ast.StmtClassMethod) { p.printList(n.Modifiers) p.printToken(n.FunctionTkn, []byte("function")) @@ -436,17 +428,13 @@ func (p *printer) StmtInlineHtml(n *ast.StmtInlineHtml) { func (p *printer) StmtInterface(n *ast.StmtInterface) { p.printToken(n.InterfaceTkn, []byte("interface")) p.printNode(n.InterfaceName) - p.printNode(n.Extends) + p.printToken(n.ExtendsTkn, p.ifNodeList(n.Extends, []byte("extends"))) + p.printSeparatedList(n.Extends, n.ExtendsSeparatorTkns, []byte(",")) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) p.printToken(n.CloseCurlyBracketTkn, []byte("}")) } -func (p *printer) StmtInterfaceExtends(n *ast.StmtInterfaceExtends) { - p.printToken(n.ExtendsTkn, []byte("extends")) - p.printSeparatedList(n.InterfaceNames, n.SeparatorTkns, []byte(",")) -} - func (p *printer) StmtLabel(n *ast.StmtLabel) { p.printNode(n.LabelName) p.printToken(n.ColonTkn, []byte(":")) @@ -525,8 +513,6 @@ func (p *printer) StmtThrow(n *ast.StmtThrow) { func (p *printer) StmtTrait(n *ast.StmtTrait) { p.printToken(n.TraitTkn, []byte("trait")) p.printNode(n.TraitName) - p.printNode(n.Extends) - p.printNode(n.Implements) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) p.printToken(n.CloseCurlyBracketTkn, []byte("}")) diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 1d4bcb1..7735a52 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -29,11 +29,9 @@ func TestPrinterPrintFile(t *testing.T) { &ast.NameNamePart{Value: []byte("Bar")}, }, }, - Extends: &ast.StmtClassExtends{ - ClassName: &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Baz")}, - }, + Extends: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{Value: []byte("Baz")}, }, }, Stmts: []ast.Vertex{ @@ -3255,14 +3253,10 @@ func TestPrinterPrintStmtClass(t *testing.T) { n := &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, ClassName: &ast.Identifier{Value: []byte("Foo")}, - Extends: &ast.StmtClassExtends{ - ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - }, - Implements: &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, - }, + Extends: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + Implements: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, Stmts: []ast.Vertex{ &ast.StmtClassConstList{ @@ -3307,14 +3301,10 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { }, }, }, - Extends: &ast.StmtClassExtends{ - ClassName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - }, - Implements: &ast.StmtClassImplements{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, - }, + Extends: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + Implements: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, }, Stmts: []ast.Vertex{ &ast.StmtClassConstList{ @@ -4122,11 +4112,9 @@ func TestPrinterPrintInterface(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n := &ast.StmtInterface{ InterfaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Extends: &ast.StmtInterfaceExtends{ - InterfaceNames: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - }, + Extends: []ast.Vertex{ + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, }, Stmts: []ast.Vertex{ &ast.StmtClassMethod{ From c0465f96051dfa7ad857a1c54de6a4363a4a6399 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 28 Dec 2020 10:47:09 +0200 Subject: [PATCH 135/140] refactoring: remove "StmtTraitMethodRef" node --- internal/php5/parser_test.go | 264 ++++---- internal/php5/php5.go | 706 +++++++++++---------- internal/php5/php5.y | 34 +- internal/php7/parser_test.go | 264 ++++---- internal/php7/php7.go | 568 +++++++++-------- internal/php7/php7.y | 52 +- pkg/ast/ast.go | 1 - pkg/ast/node.go | 60 +- pkg/ast/traverser/dfs.go | 43 +- pkg/ast/visitor/dumper.go | 21 +- pkg/ast/visitor/formatter.go | 23 +- pkg/ast/visitor/formatter_test.go | 158 ++--- pkg/ast/visitor/namespace_resolver.go | 4 +- pkg/ast/visitor/namespace_resolver_test.go | 14 +- pkg/ast/visitor/null.go | 4 - pkg/ast/visitor/printer.go | 14 +- pkg/ast/visitor/printer_test.go | 55 +- 17 files changed, 1101 insertions(+), 1184 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index b2d3144..ad51d2f 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -24032,44 +24032,36 @@ func TestStmtTraitUse_Modifier(t *testing.T) { StartPos: 30, EndPos: 43, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("one"), }, + Value: []byte("one"), }, AsTkn: &token.Token{ ID: token.T_AS, @@ -24453,44 +24445,36 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { StartPos: 30, EndPos: 47, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("one"), }, + Value: []byte("one"), }, AsTkn: &token.Token{ ID: token.T_AS, @@ -24905,83 +24889,75 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 30, EndPos: 58, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 38, + EndPos: 33, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 35, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 35, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 35, EndPos: 38, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - }, - Value: []byte("one"), }, + Value: []byte("one"), }, InsteadofTkn: &token.Token{ ID: token.T_INSTEADOF, @@ -25119,83 +25095,75 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 60, EndPos: 75, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, - EndPos: 68, + EndPos: 63, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 60, + EndPos: 63, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, EndPos: 63, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 59, - EndPos: 60, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 59, + EndPos: 60, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 63, - EndPos: 65, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 63, + EndPos: 65, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 65, + EndPos: 68, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 65, EndPos: 68, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 65, - EndPos: 68, - }, - }, - Value: []byte("one"), }, + Value: []byte("one"), }, AsTkn: &token.Token{ ID: token.T_AS, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index 6b818aa..a65a4c8 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -340,7 +340,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php5/php5.y:5691 +// line internal/php5/php5.y:5697 // line yacctab:1 var yyExca = [...]int{ @@ -4495,16 +4495,18 @@ yydefault: // line internal/php5/php5.y:2295 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - Ref: yyDollar[1].node, - InsteadofTkn: yyDollar[2].token, - Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + InsteadofTkn: yyDollar[2].token, + Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 187: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2308 + // line internal/php5/php5.y:2310 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4512,7 +4514,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2314 + // line internal/php5/php5.y:2316 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4521,9 +4523,9 @@ yydefault: } case 189: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2324 + // line internal/php5/php5.y:2326 { - yyVAL.node = &ast.StmtTraitMethodRef{ + yyVAL.node = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4534,15 +4536,15 @@ yydefault: } case 190: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2335 + // line internal/php5/php5.y:2337 { yyVAL.node = yyDollar[1].node } case 191: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2342 + // line internal/php5/php5.y:2344 { - yyVAL.node = &ast.StmtTraitMethodRef{ + yyVAL.node = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -4555,13 +4557,15 @@ yydefault: } case 192: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2358 + // line internal/php5/php5.y:2360 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, - Modifier: yyDollar[3].node, + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, @@ -4571,30 +4575,32 @@ yydefault: } case 193: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2372 + // line internal/php5/php5.y:2376 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, - Modifier: yyDollar[3].node, + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, } } case 194: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2384 + // line internal/php5/php5.y:2390 { yyVAL.node = nil } case 195: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2388 + // line internal/php5/php5.y:2394 { yyVAL.node = yyDollar[1].node } case 196: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2395 + // line internal/php5/php5.y:2401 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4603,7 +4609,7 @@ yydefault: } case 197: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2402 + // line internal/php5/php5.y:2408 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4614,13 +4620,13 @@ yydefault: } case 198: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2414 + // line internal/php5/php5.y:2420 { yyVAL.list = yyDollar[1].list } case 199: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2418 + // line internal/php5/php5.y:2424 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4632,31 +4638,31 @@ yydefault: } case 200: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2431 + // line internal/php5/php5.y:2437 { yyVAL.list = nil } case 201: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2435 + // line internal/php5/php5.y:2441 { yyVAL.list = yyDollar[1].list } case 202: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2442 + // line internal/php5/php5.y:2448 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 203: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2446 + // line internal/php5/php5.y:2452 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 204: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2453 + // line internal/php5/php5.y:2459 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4666,7 +4672,7 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2461 + // line internal/php5/php5.y:2467 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4676,7 +4682,7 @@ yydefault: } case 206: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2469 + // line internal/php5/php5.y:2475 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4686,7 +4692,7 @@ yydefault: } case 207: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2477 + // line internal/php5/php5.y:2483 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4696,7 +4702,7 @@ yydefault: } case 208: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2485 + // line internal/php5/php5.y:2491 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4706,7 +4712,7 @@ yydefault: } case 209: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2493 + // line internal/php5/php5.y:2499 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4716,7 +4722,7 @@ yydefault: } case 210: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2504 + // line internal/php5/php5.y:2510 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4737,7 +4743,7 @@ yydefault: } case 211: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2523 + // line internal/php5/php5.y:2529 { item := &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), @@ -4760,7 +4766,7 @@ yydefault: } case 212: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2544 + // line internal/php5/php5.y:2550 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4781,7 +4787,7 @@ yydefault: } case 213: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2563 + // line internal/php5/php5.y:2569 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -4803,7 +4809,7 @@ yydefault: } case 214: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:2586 + // line internal/php5/php5.y:2592 { constList := yyDollar[1].node.(*ast.StmtClassConstList) constList.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node) @@ -4823,7 +4829,7 @@ yydefault: } case 215: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2604 + // line internal/php5/php5.y:2610 { yyVAL.node = &ast.StmtClassConstList{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -4844,7 +4850,7 @@ yydefault: } case 216: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2626 + // line internal/php5/php5.y:2632 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4853,7 +4859,7 @@ yydefault: } case 217: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2633 + // line internal/php5/php5.y:2639 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4861,19 +4867,19 @@ yydefault: } case 218: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2643 + // line internal/php5/php5.y:2649 { yyVAL.node = &ast.ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2647 + // line internal/php5/php5.y:2653 { yyVAL.node = yyDollar[1].node } case 220: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2654 + // line internal/php5/php5.y:2660 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4882,7 +4888,7 @@ yydefault: } case 221: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2661 + // line internal/php5/php5.y:2667 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4890,19 +4896,19 @@ yydefault: } case 222: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2670 + // line internal/php5/php5.y:2676 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 223: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2674 + // line internal/php5/php5.y:2680 { yyVAL.list = yyDollar[1].list } case 224: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2681 + // line internal/php5/php5.y:2687 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -4916,7 +4922,7 @@ yydefault: } case 225: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2693 + // line internal/php5/php5.y:2699 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4930,37 +4936,37 @@ yydefault: } case 226: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2708 + // line internal/php5/php5.y:2714 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 227: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2712 + // line internal/php5/php5.y:2718 { yyVAL.list = yyDollar[1].list } case 228: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2716 + // line internal/php5/php5.y:2722 { yyVAL.list = yyDollar[1].list } case 229: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:2723 + // line internal/php5/php5.y:2729 { yyVAL.list = nil } case 230: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:2727 + // line internal/php5/php5.y:2733 { yyVAL.list = yyDollar[1].list } case 231: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2734 + // line internal/php5/php5.y:2740 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4981,7 +4987,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2756 + // line internal/php5/php5.y:2762 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -4999,7 +5005,7 @@ yydefault: } case 233: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2772 + // line internal/php5/php5.y:2778 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5010,7 +5016,7 @@ yydefault: } case 234: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:2781 + // line internal/php5/php5.y:2787 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5022,7 +5028,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:2791 + // line internal/php5/php5.y:2797 { var _new *ast.ExprNew if yyDollar[3].token != nil { @@ -5053,7 +5059,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2820 + // line internal/php5/php5.y:2826 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5063,7 +5069,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2828 + // line internal/php5/php5.y:2834 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5074,7 +5080,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2837 + // line internal/php5/php5.y:2843 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5085,7 +5091,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2846 + // line internal/php5/php5.y:2852 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5096,7 +5102,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2855 + // line internal/php5/php5.y:2861 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5107,7 +5113,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2864 + // line internal/php5/php5.y:2870 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5118,7 +5124,7 @@ yydefault: } case 242: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2873 + // line internal/php5/php5.y:2879 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5129,7 +5135,7 @@ yydefault: } case 243: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2882 + // line internal/php5/php5.y:2888 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5140,7 +5146,7 @@ yydefault: } case 244: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2891 + // line internal/php5/php5.y:2897 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5151,7 +5157,7 @@ yydefault: } case 245: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2900 + // line internal/php5/php5.y:2906 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5162,7 +5168,7 @@ yydefault: } case 246: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2909 + // line internal/php5/php5.y:2915 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5173,7 +5179,7 @@ yydefault: } case 247: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2918 + // line internal/php5/php5.y:2924 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5184,7 +5190,7 @@ yydefault: } case 248: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2927 + // line internal/php5/php5.y:2933 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5195,7 +5201,7 @@ yydefault: } case 249: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2936 + // line internal/php5/php5.y:2942 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5205,7 +5211,7 @@ yydefault: } case 250: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2944 + // line internal/php5/php5.y:2950 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5215,7 +5221,7 @@ yydefault: } case 251: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2952 + // line internal/php5/php5.y:2958 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5225,7 +5231,7 @@ yydefault: } case 252: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:2960 + // line internal/php5/php5.y:2966 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5235,7 +5241,7 @@ yydefault: } case 253: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2968 + // line internal/php5/php5.y:2974 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5246,7 +5252,7 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2977 + // line internal/php5/php5.y:2983 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5257,7 +5263,7 @@ yydefault: } case 255: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2986 + // line internal/php5/php5.y:2992 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5268,7 +5274,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:2995 + // line internal/php5/php5.y:3001 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5279,7 +5285,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3004 + // line internal/php5/php5.y:3010 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5290,7 +5296,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3013 + // line internal/php5/php5.y:3019 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5301,7 +5307,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3022 + // line internal/php5/php5.y:3028 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5312,7 +5318,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3031 + // line internal/php5/php5.y:3037 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5323,7 +5329,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3040 + // line internal/php5/php5.y:3046 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5334,7 +5340,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3049 + // line internal/php5/php5.y:3055 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5345,7 +5351,7 @@ yydefault: } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3058 + // line internal/php5/php5.y:3064 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5356,7 +5362,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3067 + // line internal/php5/php5.y:3073 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5367,7 +5373,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3076 + // line internal/php5/php5.y:3082 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5378,7 +5384,7 @@ yydefault: } case 266: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3085 + // line internal/php5/php5.y:3091 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5389,7 +5395,7 @@ yydefault: } case 267: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3094 + // line internal/php5/php5.y:3100 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5400,7 +5406,7 @@ yydefault: } case 268: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3103 + // line internal/php5/php5.y:3109 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5411,7 +5417,7 @@ yydefault: } case 269: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3112 + // line internal/php5/php5.y:3118 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5422,7 +5428,7 @@ yydefault: } case 270: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3121 + // line internal/php5/php5.y:3127 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5432,7 +5438,7 @@ yydefault: } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3129 + // line internal/php5/php5.y:3135 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5442,7 +5448,7 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3137 + // line internal/php5/php5.y:3143 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5452,7 +5458,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3145 + // line internal/php5/php5.y:3151 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5462,7 +5468,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3153 + // line internal/php5/php5.y:3159 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5473,7 +5479,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3162 + // line internal/php5/php5.y:3168 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5484,7 +5490,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3171 + // line internal/php5/php5.y:3177 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5495,7 +5501,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3180 + // line internal/php5/php5.y:3186 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5506,7 +5512,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3189 + // line internal/php5/php5.y:3195 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5517,7 +5523,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3198 + // line internal/php5/php5.y:3204 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5528,7 +5534,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3207 + // line internal/php5/php5.y:3213 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5539,7 +5545,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3216 + // line internal/php5/php5.y:3222 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5550,7 +5556,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3225 + // line internal/php5/php5.y:3231 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5561,19 +5567,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3234 + // line internal/php5/php5.y:3240 { yyVAL.node = yyDollar[1].node } case 284: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3238 + // line internal/php5/php5.y:3244 { yyVAL.node = yyDollar[1].node } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3242 + // line internal/php5/php5.y:3248 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5608,7 +5614,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:3275 + // line internal/php5/php5.y:3281 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5621,7 +5627,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3286 + // line internal/php5/php5.y:3292 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5633,13 +5639,13 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3296 + // line internal/php5/php5.y:3302 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3300 + // line internal/php5/php5.y:3306 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5649,7 +5655,7 @@ yydefault: } case 290: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3308 + // line internal/php5/php5.y:3314 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5659,7 +5665,7 @@ yydefault: } case 291: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3316 + // line internal/php5/php5.y:3322 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5669,7 +5675,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3324 + // line internal/php5/php5.y:3330 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5679,7 +5685,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3332 + // line internal/php5/php5.y:3338 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5689,7 +5695,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3340 + // line internal/php5/php5.y:3346 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5699,7 +5705,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3348 + // line internal/php5/php5.y:3354 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5709,7 +5715,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3356 + // line internal/php5/php5.y:3362 { exit := &ast.ExprExit{ ExitTkn: yyDollar[1].token, @@ -5728,7 +5734,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3373 + // line internal/php5/php5.y:3379 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5738,25 +5744,25 @@ yydefault: } case 298: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3381 + // line internal/php5/php5.y:3387 { yyVAL.node = yyDollar[1].node } case 299: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3385 + // line internal/php5/php5.y:3391 { yyVAL.node = yyDollar[1].node } case 300: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3389 + // line internal/php5/php5.y:3395 { yyVAL.node = yyDollar[1].node } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3393 + // line internal/php5/php5.y:3399 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5767,7 +5773,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3402 + // line internal/php5/php5.y:3408 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5777,7 +5783,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3410 + // line internal/php5/php5.y:3416 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5786,7 +5792,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php5/php5.y:3417 + // line internal/php5/php5.y:3423 { closure := yyDollar[6].node.(*ast.ExprClosure) @@ -5805,7 +5811,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-10 : yypt+1] - // line internal/php5/php5.y:3434 + // line internal/php5/php5.y:3440 { closure := yyDollar[7].node.(*ast.ExprClosure) @@ -5825,7 +5831,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3455 + // line internal/php5/php5.y:3461 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5835,7 +5841,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3463 + // line internal/php5/php5.y:3469 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5845,7 +5851,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3471 + // line internal/php5/php5.y:3477 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5857,7 +5863,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3481 + // line internal/php5/php5.y:3487 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5869,7 +5875,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3494 + // line internal/php5/php5.y:3500 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5881,7 +5887,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3504 + // line internal/php5/php5.y:3510 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5893,7 +5899,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3514 + // line internal/php5/php5.y:3520 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5909,7 +5915,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3528 + // line internal/php5/php5.y:3534 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -5921,7 +5927,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3541 + // line internal/php5/php5.y:3547 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -5934,7 +5940,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3552 + // line internal/php5/php5.y:3558 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5946,19 +5952,19 @@ yydefault: } case 316: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3565 + // line internal/php5/php5.y:3571 { yyVAL.token = yyDollar[1].token } case 317: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3572 + // line internal/php5/php5.y:3578 { yyVAL.node = &ast.ExprClosure{} } case 318: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3576 + // line internal/php5/php5.y:3582 { yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, @@ -5970,7 +5976,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3589 + // line internal/php5/php5.y:3595 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -5991,7 +5997,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3608 + // line internal/php5/php5.y:3614 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[4].token), @@ -6013,7 +6019,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3628 + // line internal/php5/php5.y:3634 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6033,7 +6039,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3646 + // line internal/php5/php5.y:3652 { variable := &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6054,7 +6060,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3668 + // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), @@ -6071,7 +6077,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3683 + // line internal/php5/php5.y:3689 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -6090,7 +6096,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3700 + // line internal/php5/php5.y:3706 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -6108,7 +6114,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3716 + // line internal/php5/php5.y:3722 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6131,7 +6137,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3737 + // line internal/php5/php5.y:3743 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6146,7 +6152,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3750 + // line internal/php5/php5.y:3756 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6169,7 +6175,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3771 + // line internal/php5/php5.y:3777 { yyVAL.node = &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6184,7 +6190,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3784 + // line internal/php5/php5.y:3790 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -6197,7 +6203,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3798 + // line internal/php5/php5.y:3804 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6207,7 +6213,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3806 + // line internal/php5/php5.y:3812 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6217,7 +6223,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3814 + // line internal/php5/php5.y:3820 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6229,7 +6235,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3824 + // line internal/php5/php5.y:3830 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6240,7 +6246,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3836 + // line internal/php5/php5.y:3842 { yyVAL.node = &ast.NameName{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6250,7 +6256,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:3844 + // line internal/php5/php5.y:3850 { yyVAL.node = &ast.NameRelative{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6262,7 +6268,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3854 + // line internal/php5/php5.y:3860 { yyVAL.node = &ast.NameFullyQualified{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6273,19 +6279,19 @@ yydefault: } case 338: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3866 + // line internal/php5/php5.y:3872 { yyVAL.node = yyDollar[1].node } case 339: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3870 + // line internal/php5/php5.y:3876 { yyVAL.node = yyDollar[1].node } case 340: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:3877 + // line internal/php5/php5.y:3883 { yyVAL.node = yyDollar[1].node @@ -6321,25 +6327,25 @@ yydefault: } case 341: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3911 + // line internal/php5/php5.y:3917 { yyVAL.node = yyDollar[1].node } case 342: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3919 + // line internal/php5/php5.y:3925 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 343: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3923 + // line internal/php5/php5.y:3929 { yyVAL.list = []ast.Vertex{} } case 344: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3931 + // line internal/php5/php5.y:3937 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -6347,13 +6353,13 @@ yydefault: } case 345: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3940 + // line internal/php5/php5.y:3946 { yyVAL.node = nil } case 346: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:3944 + // line internal/php5/php5.y:3950 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6363,19 +6369,19 @@ yydefault: } case 347: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3952 + // line internal/php5/php5.y:3958 { yyVAL.node = yyDollar[1].node } case 348: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3959 + // line internal/php5/php5.y:3965 { yyVAL.list = []ast.Vertex{} } case 349: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3963 + // line internal/php5/php5.y:3969 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6387,25 +6393,25 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3973 + // line internal/php5/php5.y:3979 { yyVAL.list = yyDollar[1].list } case 351: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:3980 + // line internal/php5/php5.y:3986 { yyVAL.node = &ast.ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3984 + // line internal/php5/php5.y:3990 { yyVAL.node = yyDollar[1].node } case 353: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3991 + // line internal/php5/php5.y:3997 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6415,7 +6421,7 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:3999 + // line internal/php5/php5.y:4005 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6425,7 +6431,7 @@ yydefault: } case 355: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4007 + // line internal/php5/php5.y:4013 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6435,7 +6441,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4015 + // line internal/php5/php5.y:4021 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6445,7 +6451,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4023 + // line internal/php5/php5.y:4029 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6455,7 +6461,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4031 + // line internal/php5/php5.y:4037 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6465,7 +6471,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4039 + // line internal/php5/php5.y:4045 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6475,7 +6481,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4047 + // line internal/php5/php5.y:4053 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6485,7 +6491,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4055 + // line internal/php5/php5.y:4061 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6495,7 +6501,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4063 + // line internal/php5/php5.y:4069 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6505,7 +6511,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4071 + // line internal/php5/php5.y:4077 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6522,7 +6528,7 @@ yydefault: } case 364: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4086 + // line internal/php5/php5.y:4092 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6532,7 +6538,7 @@ yydefault: } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4097 + // line internal/php5/php5.y:4103 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6547,25 +6553,25 @@ yydefault: } case 366: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4113 + // line internal/php5/php5.y:4119 { yyVAL.node = yyDollar[1].node } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4120 + // line internal/php5/php5.y:4126 { yyVAL.node = yyDollar[1].node } case 368: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4124 + // line internal/php5/php5.y:4130 { yyVAL.node = yyDollar[1].node } case 369: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4128 + // line internal/php5/php5.y:4134 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -6578,7 +6584,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4139 + // line internal/php5/php5.y:4145 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -6593,7 +6599,7 @@ yydefault: } case 371: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4152 + // line internal/php5/php5.y:4158 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -6607,7 +6613,7 @@ yydefault: } case 372: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4164 + // line internal/php5/php5.y:4170 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6620,7 +6626,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4175 + // line internal/php5/php5.y:4181 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6632,13 +6638,13 @@ yydefault: } case 374: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4185 + // line internal/php5/php5.y:4191 { yyVAL.node = yyDollar[1].node } case 375: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4189 + // line internal/php5/php5.y:4195 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6648,13 +6654,13 @@ yydefault: } case 376: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4197 + // line internal/php5/php5.y:4203 { yyVAL.node = yyDollar[1].node } case 377: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4204 + // line internal/php5/php5.y:4210 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -6666,7 +6672,7 @@ yydefault: } case 378: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4214 + // line internal/php5/php5.y:4220 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6677,7 +6683,7 @@ yydefault: } case 379: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4223 + // line internal/php5/php5.y:4229 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6688,7 +6694,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4232 + // line internal/php5/php5.y:4238 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6699,7 +6705,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4241 + // line internal/php5/php5.y:4247 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6710,7 +6716,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4250 + // line internal/php5/php5.y:4256 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6721,7 +6727,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4259 + // line internal/php5/php5.y:4265 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6732,7 +6738,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4268 + // line internal/php5/php5.y:4274 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6742,7 +6748,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4276 + // line internal/php5/php5.y:4282 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6752,7 +6758,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4284 + // line internal/php5/php5.y:4290 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6763,7 +6769,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4293 + // line internal/php5/php5.y:4299 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6774,7 +6780,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4302 + // line internal/php5/php5.y:4308 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6785,7 +6791,7 @@ yydefault: } case 389: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4311 + // line internal/php5/php5.y:4317 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6796,7 +6802,7 @@ yydefault: } case 390: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4320 + // line internal/php5/php5.y:4326 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6807,7 +6813,7 @@ yydefault: } case 391: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4329 + // line internal/php5/php5.y:4335 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6818,7 +6824,7 @@ yydefault: } case 392: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4338 + // line internal/php5/php5.y:4344 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6829,7 +6835,7 @@ yydefault: } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4347 + // line internal/php5/php5.y:4353 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6840,7 +6846,7 @@ yydefault: } case 394: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4356 + // line internal/php5/php5.y:4362 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6851,7 +6857,7 @@ yydefault: } case 395: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4365 + // line internal/php5/php5.y:4371 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6862,7 +6868,7 @@ yydefault: } case 396: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4374 + // line internal/php5/php5.y:4380 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6873,7 +6879,7 @@ yydefault: } case 397: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4383 + // line internal/php5/php5.y:4389 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6884,7 +6890,7 @@ yydefault: } case 398: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4392 + // line internal/php5/php5.y:4398 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6895,7 +6901,7 @@ yydefault: } case 399: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4401 + // line internal/php5/php5.y:4407 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6906,7 +6912,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4410 + // line internal/php5/php5.y:4416 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6917,7 +6923,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4419 + // line internal/php5/php5.y:4425 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6928,7 +6934,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4428 + // line internal/php5/php5.y:4434 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6939,7 +6945,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4437 + // line internal/php5/php5.y:4443 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6950,7 +6956,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4446 + // line internal/php5/php5.y:4452 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6961,7 +6967,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4455 + // line internal/php5/php5.y:4461 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6973,7 +6979,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4465 + // line internal/php5/php5.y:4471 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -6986,7 +6992,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4476 + // line internal/php5/php5.y:4482 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6996,7 +7002,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4484 + // line internal/php5/php5.y:4490 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7006,7 +7012,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4492 + // line internal/php5/php5.y:4498 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7017,13 +7023,13 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4504 + // line internal/php5/php5.y:4510 { yyVAL.node = yyDollar[1].node } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4508 + // line internal/php5/php5.y:4514 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), @@ -7036,7 +7042,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4519 + // line internal/php5/php5.y:4525 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), @@ -7051,7 +7057,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4532 + // line internal/php5/php5.y:4538 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), @@ -7065,7 +7071,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4547 + // line internal/php5/php5.y:4553 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7078,25 +7084,25 @@ yydefault: } case 415: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4558 + // line internal/php5/php5.y:4564 { yyVAL.node = yyDollar[1].node } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4562 + // line internal/php5/php5.y:4568 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4566 + // line internal/php5/php5.y:4572 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4570 + // line internal/php5/php5.y:4576 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7107,7 +7113,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4579 + // line internal/php5/php5.y:4585 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7118,7 +7124,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4588 + // line internal/php5/php5.y:4594 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7128,13 +7134,13 @@ yydefault: } case 421: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4599 + // line internal/php5/php5.y:4605 { yyVAL.node = &ast.ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4603 + // line internal/php5/php5.y:4609 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7145,19 +7151,19 @@ yydefault: } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4615 + // line internal/php5/php5.y:4621 { yyVAL.token = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4619 + // line internal/php5/php5.y:4625 { yyVAL.token = yyDollar[1].token } case 425: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4626 + // line internal/php5/php5.y:4632 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7173,7 +7179,7 @@ yydefault: } case 426: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4640 + // line internal/php5/php5.y:4646 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7187,7 +7193,7 @@ yydefault: } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4652 + // line internal/php5/php5.y:4658 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7202,7 +7208,7 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4665 + // line internal/php5/php5.y:4671 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7215,19 +7221,19 @@ yydefault: } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4679 + // line internal/php5/php5.y:4685 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4683 + // line internal/php5/php5.y:4689 { yyVAL.node = yyDollar[1].node } case 431: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4690 + // line internal/php5/php5.y:4696 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7238,7 +7244,7 @@ yydefault: } case 432: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4699 + // line internal/php5/php5.y:4705 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7249,25 +7255,25 @@ yydefault: } case 433: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4712 + // line internal/php5/php5.y:4718 { yyVAL.node = yyDollar[1].node } case 434: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4720 + // line internal/php5/php5.y:4726 { yyVAL.node = yyDollar[1].node } case 435: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4727 + // line internal/php5/php5.y:4733 { yyVAL.node = yyDollar[1].node } case 436: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:4734 + // line internal/php5/php5.y:4740 { yyVAL.node = yyDollar[1].node @@ -7346,25 +7352,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4811 + // line internal/php5/php5.y:4817 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4818 + // line internal/php5/php5.y:4824 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].list...) } case 439: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4822 + // line internal/php5/php5.y:4828 { yyVAL.list = []ast.Vertex{} } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4830 + // line internal/php5/php5.y:4836 { yyDollar[2].list[0].(*ast.ExprPropertyFetch).ObjectOperatorTkn = yyDollar[1].token @@ -7395,7 +7401,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4862 + // line internal/php5/php5.y:4868 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7409,7 +7415,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4874 + // line internal/php5/php5.y:4880 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7423,7 +7429,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4889 + // line internal/php5/php5.y:4895 { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7435,31 +7441,31 @@ yydefault: } case 444: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4902 + // line internal/php5/php5.y:4908 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4906 + // line internal/php5/php5.y:4912 { yyVAL.list = yyDollar[1].list } case 446: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:4910 + // line internal/php5/php5.y:4916 { yyVAL.list = nil } case 447: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4917 + // line internal/php5/php5.y:4923 { yyVAL.node = yyDollar[1].node } case 448: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:4921 + // line internal/php5/php5.y:4927 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7471,7 +7477,7 @@ yydefault: } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4934 + // line internal/php5/php5.y:4940 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7482,7 +7488,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:4943 + // line internal/php5/php5.y:4949 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7493,13 +7499,13 @@ yydefault: } case 451: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4955 + // line internal/php5/php5.y:4961 { yyVAL.node = yyDollar[1].node } case 452: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4962 + // line internal/php5/php5.y:4968 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7511,7 +7517,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:4972 + // line internal/php5/php5.y:4978 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7523,31 +7529,31 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4985 + // line internal/php5/php5.y:4991 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4989 + // line internal/php5/php5.y:4995 { yyVAL.node = yyDollar[1].node } case 456: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:4993 + // line internal/php5/php5.y:4999 { yyVAL.node = yyDollar[1].node } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5001 + // line internal/php5/php5.y:5007 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5005 + // line internal/php5/php5.y:5011 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node @@ -7559,13 +7565,13 @@ yydefault: } case 459: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5015 + // line internal/php5/php5.y:5021 { yyVAL.node = yyDollar[1].node } case 460: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5022 + // line internal/php5/php5.y:5028 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7577,7 +7583,7 @@ yydefault: } case 461: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5032 + // line internal/php5/php5.y:5038 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), @@ -7589,13 +7595,13 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5042 + // line internal/php5/php5.y:5048 { yyVAL.node = yyDollar[1].node } case 463: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5050 + // line internal/php5/php5.y:5056 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7608,7 +7614,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5061 + // line internal/php5/php5.y:5067 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7620,25 +7626,25 @@ yydefault: } case 465: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5074 + // line internal/php5/php5.y:5080 { yyVAL.node = nil } case 466: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5078 + // line internal/php5/php5.y:5084 { yyVAL.node = yyDollar[1].node } case 467: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5086 + // line internal/php5/php5.y:5092 { yyVAL.list = yyDollar[1].list } case 468: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5090 + // line internal/php5/php5.y:5096 { yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ @@ -7649,7 +7655,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5102 + // line internal/php5/php5.y:5108 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7663,7 +7669,7 @@ yydefault: } case 470: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5114 + // line internal/php5/php5.y:5120 { fetch := &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[2].token, yyDollar[4].token), @@ -7677,7 +7683,7 @@ yydefault: } case 471: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5126 + // line internal/php5/php5.y:5132 { property := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7694,7 +7700,7 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5144 + // line internal/php5/php5.y:5150 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7704,7 +7710,7 @@ yydefault: } case 473: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5152 + // line internal/php5/php5.y:5158 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -7715,7 +7721,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5164 + // line internal/php5/php5.y:5170 { yyVAL.list = []ast.Vertex{ &ast.ExprVariable{ @@ -7726,7 +7732,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5173 + // line internal/php5/php5.y:5179 { yyVAL.list = append(yyDollar[1].list, &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), @@ -7735,7 +7741,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5183 + // line internal/php5/php5.y:5189 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7744,7 +7750,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5190 + // line internal/php5/php5.y:5196 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7752,7 +7758,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5200 + // line internal/php5/php5.y:5206 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7761,7 +7767,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5207 + // line internal/php5/php5.y:5213 { pairList := yyDollar[3].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -7784,19 +7790,19 @@ yydefault: } case 480: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5228 + // line internal/php5/php5.y:5234 { yyVAL.node = &ast.ExprArrayItem{} } case 481: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php5/php5.y:5236 + // line internal/php5/php5.y:5242 { yyVAL.node = &ast.ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5240 + // line internal/php5/php5.y:5246 { if yyDollar[2].token != nil { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) @@ -7807,7 +7813,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php5/php5.y:5252 + // line internal/php5/php5.y:5258 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[5].node), @@ -7823,7 +7829,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5266 + // line internal/php5/php5.y:5272 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[3].node), @@ -7837,7 +7843,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5278 + // line internal/php5/php5.y:5284 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7852,7 +7858,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5291 + // line internal/php5/php5.y:5297 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7865,7 +7871,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5302 + // line internal/php5/php5.y:5308 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[3].node, yyDollar[6].node), @@ -7882,7 +7888,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5317 + // line internal/php5/php5.y:5323 { arrayItem := &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[4].node), @@ -7897,7 +7903,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5330 + // line internal/php5/php5.y:5336 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7913,7 +7919,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5344 + // line internal/php5/php5.y:5350 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{ @@ -7927,13 +7933,13 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5359 + // line internal/php5/php5.y:5365 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 492: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5363 + // line internal/php5/php5.y:5369 { yyVAL.list = append( yyDollar[1].list, @@ -7946,13 +7952,13 @@ yydefault: } case 493: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5374 + // line internal/php5/php5.y:5380 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 494: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5378 + // line internal/php5/php5.y:5384 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -7965,7 +7971,7 @@ yydefault: } case 495: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5392 + // line internal/php5/php5.y:5398 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7978,7 +7984,7 @@ yydefault: } case 496: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5403 + // line internal/php5/php5.y:5409 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7997,7 +8003,7 @@ yydefault: } case 497: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5420 + // line internal/php5/php5.y:5426 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8019,7 +8025,7 @@ yydefault: } case 498: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5440 + // line internal/php5/php5.y:5446 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8030,7 +8036,7 @@ yydefault: } case 499: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5449 + // line internal/php5/php5.y:5455 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8045,7 +8051,7 @@ yydefault: } case 500: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php5/php5.y:5462 + // line internal/php5/php5.y:5468 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8063,7 +8069,7 @@ yydefault: } case 501: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5478 + // line internal/php5/php5.y:5484 { yyVAL.node = &ast.ScalarEncapsedStringBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -8074,7 +8080,7 @@ yydefault: } case 502: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5490 + // line internal/php5/php5.y:5496 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8084,7 +8090,7 @@ yydefault: } case 503: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5498 + // line internal/php5/php5.y:5504 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -8103,7 +8109,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5515 + // line internal/php5/php5.y:5521 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -8116,7 +8122,7 @@ yydefault: } case 505: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5529 + // line internal/php5/php5.y:5535 { yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8129,7 +8135,7 @@ yydefault: } case 506: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5540 + // line internal/php5/php5.y:5546 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8141,7 +8147,7 @@ yydefault: } case 507: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5550 + // line internal/php5/php5.y:5556 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8153,7 +8159,7 @@ yydefault: } case 508: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5560 + // line internal/php5/php5.y:5566 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8163,7 +8169,7 @@ yydefault: } case 509: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5568 + // line internal/php5/php5.y:5574 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8173,7 +8179,7 @@ yydefault: } case 510: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php5/php5.y:5576 + // line internal/php5/php5.y:5582 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -8185,7 +8191,7 @@ yydefault: } case 511: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5586 + // line internal/php5/php5.y:5592 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8195,7 +8201,7 @@ yydefault: } case 512: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php5/php5.y:5594 + // line internal/php5/php5.y:5600 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8205,7 +8211,7 @@ yydefault: } case 513: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5605 + // line internal/php5/php5.y:5611 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -8213,7 +8219,7 @@ yydefault: } case 514: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5611 + // line internal/php5/php5.y:5617 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -8222,19 +8228,19 @@ yydefault: } case 515: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5621 + // line internal/php5/php5.y:5627 { yyVAL.node = yyDollar[1].node } case 516: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php5/php5.y:5625 + // line internal/php5/php5.y:5631 { yyVAL.node = yyDollar[1].node } case 517: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5632 + // line internal/php5/php5.y:5638 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8249,7 +8255,7 @@ yydefault: } case 518: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5645 + // line internal/php5/php5.y:5651 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8264,7 +8270,7 @@ yydefault: } case 519: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5661 + // line internal/php5/php5.y:5667 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -8279,7 +8285,7 @@ yydefault: } case 520: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php5/php5.y:5677 + // line internal/php5/php5.y:5683 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), diff --git a/internal/php5/php5.y b/internal/php5/php5.y index b422f9f..581d612 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -2295,10 +2295,12 @@ trait_precedence: { $$ = &ast.StmtTraitUsePrecedence{ Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - Ref: $1, - InsteadofTkn: $2, - Insteadof: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + InsteadofTkn: $2, + Insteadof: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, } } ; @@ -2322,7 +2324,7 @@ trait_reference_list: trait_method_reference: T_STRING { - $$ = &ast.StmtTraitMethodRef{ + $$ = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), @@ -2340,7 +2342,7 @@ trait_method_reference: trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - $$ = &ast.StmtTraitMethodRef{ + $$ = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, @@ -2357,10 +2359,12 @@ trait_alias: trait_method_reference T_AS trait_modifiers T_STRING { $$ = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), - Ref: $1, - AsTkn: $2, - Modifier: $3, + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + AsTkn: $2, + Modifier: $3, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, @@ -2371,10 +2375,12 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), - Ref: $1, - AsTkn: $2, - Modifier: $3, + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + AsTkn: $2, + Modifier: $3, } } ; diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index 5b63320..aa1b77d 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -26000,44 +26000,36 @@ func TestStmtTraitUse_Modifier(t *testing.T) { StartPos: 30, EndPos: 43, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("one"), }, + Value: []byte("one"), }, AsTkn: &token.Token{ ID: token.T_AS, @@ -26421,44 +26413,36 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { StartPos: 30, EndPos: 47, }, - Ref: &ast.StmtTraitMethodRef{ + Method: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - Method: &ast.Identifier{ + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("one"), }, + Value: []byte("one"), }, AsTkn: &token.Token{ ID: token.T_AS, @@ -26873,83 +26857,75 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 30, EndPos: 58, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, - EndPos: 38, + EndPos: 33, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 30, + EndPos: 33, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Bar"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 30, EndPos: 33, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Bar"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 30, - EndPos: 33, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 29, - EndPos: 30, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 29, + EndPos: 30, }, }, }, - Value: []byte("Bar"), }, + Value: []byte("Bar"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 33, - EndPos: 35, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 33, + EndPos: 35, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 35, + EndPos: 38, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 35, EndPos: 38, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 35, - EndPos: 38, - }, - }, - Value: []byte("one"), }, + Value: []byte("one"), }, InsteadofTkn: &token.Token{ ID: token.T_INSTEADOF, @@ -27087,83 +27063,75 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 60, EndPos: 75, }, - Ref: &ast.StmtTraitMethodRef{ + Trait: &ast.NameName{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, - EndPos: 68, + EndPos: 63, }, - Trait: &ast.NameName{ - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - Parts: []ast.Vertex{ - &ast.NameNamePart{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 60, + EndPos: 63, + }, + StringTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("Baz"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 60, EndPos: 63, }, - StringTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("Baz"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 60, - EndPos: 63, - }, - FreeFloating: []*token.Token{ - { - ID: token.T_WHITESPACE, - Value: []byte(" "), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 59, - EndPos: 60, - }, + FreeFloating: []*token.Token{ + { + ID: token.T_WHITESPACE, + Value: []byte(" "), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 59, + EndPos: 60, }, }, }, - Value: []byte("Baz"), }, + Value: []byte("Baz"), }, }, - DoubleColonTkn: &token.Token{ - ID: token.T_PAAMAYIM_NEKUDOTAYIM, - Value: []byte("::"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 63, - EndPos: 65, - }, + }, + DoubleColonTkn: &token.Token{ + ID: token.T_PAAMAYIM_NEKUDOTAYIM, + Value: []byte("::"), + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 63, + EndPos: 65, }, - Method: &ast.Identifier{ + }, + Method: &ast.Identifier{ + Position: &position.Position{ + StartLine: 1, + EndLine: 1, + StartPos: 65, + EndPos: 68, + }, + IdentifierTkn: &token.Token{ + ID: token.T_STRING, + Value: []byte("one"), Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 65, EndPos: 68, }, - IdentifierTkn: &token.Token{ - ID: token.T_STRING, - Value: []byte("one"), - Position: &position.Position{ - StartLine: 1, - EndLine: 1, - StartPos: 65, - EndPos: 68, - }, - }, - Value: []byte("one"), }, + Value: []byte("one"), }, AsTkn: &token.Token{ ID: token.T_AS, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 2c353f7..8c4c775 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -339,7 +339,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -// line internal/php7/php7.y:4418 +// line internal/php7/php7.y:4428 // line yacctab:1 var yyExca = [...]int{ @@ -4550,21 +4550,25 @@ yydefault: // line internal/php7/php7.y:2133 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - Ref: yyDollar[1].node, - InsteadofTkn: yyDollar[2].token, - Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + InsteadofTkn: yyDollar[2].token, + Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, } } case 257: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2146 + // line internal/php7/php7.y:2148 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, @@ -4574,12 +4578,14 @@ yydefault: } case 258: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2159 + // line internal/php7/php7.y:2163 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, @@ -4589,13 +4595,15 @@ yydefault: } case 259: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2172 + // line internal/php7/php7.y:2178 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, - Modifier: yyDollar[3].node, + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, @@ -4605,20 +4613,22 @@ yydefault: } case 260: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2186 + // line internal/php7/php7.y:2194 { yyVAL.node = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - Ref: yyDollar[1].node, - AsTkn: yyDollar[2].token, - Modifier: yyDollar[3].node, + Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), + Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + AsTkn: yyDollar[2].token, + Modifier: yyDollar[3].node, } } case 261: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2198 + // line internal/php7/php7.y:2208 { - yyVAL.node = &ast.StmtTraitMethodRef{ + yyVAL.node = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4629,15 +4639,15 @@ yydefault: } case 262: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2209 + // line internal/php7/php7.y:2219 { yyVAL.node = yyDollar[1].node } case 263: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2216 + // line internal/php7/php7.y:2226 { - yyVAL.node = &ast.StmtTraitMethodRef{ + yyVAL.node = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -4650,7 +4660,7 @@ yydefault: } case 264: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2232 + // line internal/php7/php7.y:2242 { yyVAL.node = &ast.StmtNop{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4659,7 +4669,7 @@ yydefault: } case 265: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2239 + // line internal/php7/php7.y:2249 { yyVAL.node = &ast.StmtStmtList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -4670,13 +4680,13 @@ yydefault: } case 266: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2251 + // line internal/php7/php7.y:2261 { yyVAL.list = yyDollar[1].list } case 267: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2255 + // line internal/php7/php7.y:2265 { yyVAL.list = []ast.Vertex{ &ast.Identifier{ @@ -4688,31 +4698,31 @@ yydefault: } case 268: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2268 + // line internal/php7/php7.y:2278 { yyVAL.list = nil } case 269: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2272 + // line internal/php7/php7.y:2282 { yyVAL.list = yyDollar[1].list } case 270: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2279 + // line internal/php7/php7.y:2289 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 271: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2283 + // line internal/php7/php7.y:2293 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 272: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2290 + // line internal/php7/php7.y:2300 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4722,7 +4732,7 @@ yydefault: } case 273: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2298 + // line internal/php7/php7.y:2308 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4732,7 +4742,7 @@ yydefault: } case 274: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2306 + // line internal/php7/php7.y:2316 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4742,7 +4752,7 @@ yydefault: } case 275: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2314 + // line internal/php7/php7.y:2324 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4752,7 +4762,7 @@ yydefault: } case 276: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2322 + // line internal/php7/php7.y:2332 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4762,7 +4772,7 @@ yydefault: } case 277: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2330 + // line internal/php7/php7.y:2340 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4772,7 +4782,7 @@ yydefault: } case 278: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2341 + // line internal/php7/php7.y:2351 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4781,7 +4791,7 @@ yydefault: } case 279: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2348 + // line internal/php7/php7.y:2358 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4789,7 +4799,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2357 + // line internal/php7/php7.y:2367 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4806,7 +4816,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2372 + // line internal/php7/php7.y:2382 { yyVAL.node = &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4824,7 +4834,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2391 + // line internal/php7/php7.y:2401 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4833,7 +4843,7 @@ yydefault: } case 283: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2398 + // line internal/php7/php7.y:2408 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4841,7 +4851,7 @@ yydefault: } case 284: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2407 + // line internal/php7/php7.y:2417 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4856,7 +4866,7 @@ yydefault: } case 285: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2423 + // line internal/php7/php7.y:2433 { yyVAL.node = &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4871,7 +4881,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2439 + // line internal/php7/php7.y:2449 { yyDollar[1].node.(*ast.StmtEcho).Exprs = append(yyDollar[1].node.(*ast.StmtEcho).Exprs, yyDollar[3].node) yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns = append(yyDollar[1].node.(*ast.StmtEcho).SeparatorTkns, yyDollar[2].token) @@ -4880,7 +4890,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2446 + // line internal/php7/php7.y:2456 { yyVAL.node = &ast.StmtEcho{ Exprs: []ast.Vertex{yyDollar[1].node}, @@ -4888,25 +4898,25 @@ yydefault: } case 288: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2455 + // line internal/php7/php7.y:2465 { yyVAL.node = yyDollar[1].node } case 289: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:2462 + // line internal/php7/php7.y:2472 { yyVAL.node = &ast.ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2466 + // line internal/php7/php7.y:2476 { yyVAL.node = yyDollar[1].node } case 291: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2473 + // line internal/php7/php7.y:2483 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -4915,7 +4925,7 @@ yydefault: } case 292: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:2480 + // line internal/php7/php7.y:2490 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -4923,7 +4933,7 @@ yydefault: } case 293: yyDollar = yyS[yypt-8 : yypt+1] - // line internal/php7/php7.y:2489 + // line internal/php7/php7.y:2499 { class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), @@ -4952,7 +4962,7 @@ yydefault: } case 294: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2519 + // line internal/php7/php7.y:2529 { if yyDollar[3].node != nil { yyVAL.node = &ast.ExprNew{ @@ -4974,7 +4984,7 @@ yydefault: } case 295: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2539 + // line internal/php7/php7.y:2549 { yyVAL.node = &ast.ExprNew{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -4984,7 +4994,7 @@ yydefault: } case 296: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:2550 + // line internal/php7/php7.y:2560 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[6].node), @@ -5002,7 +5012,7 @@ yydefault: } case 297: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:2566 + // line internal/php7/php7.y:2576 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node), @@ -5019,7 +5029,7 @@ yydefault: } case 298: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2581 + // line internal/php7/php7.y:2591 { yyVAL.node = &ast.ExprAssign{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5030,7 +5040,7 @@ yydefault: } case 299: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:2590 + // line internal/php7/php7.y:2600 { yyVAL.node = &ast.ExprAssignReference{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5042,7 +5052,7 @@ yydefault: } case 300: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2600 + // line internal/php7/php7.y:2610 { yyVAL.node = &ast.ExprClone{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5052,7 +5062,7 @@ yydefault: } case 301: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2608 + // line internal/php7/php7.y:2618 { yyVAL.node = &ast.ExprAssignPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5063,7 +5073,7 @@ yydefault: } case 302: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2617 + // line internal/php7/php7.y:2627 { yyVAL.node = &ast.ExprAssignMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5074,7 +5084,7 @@ yydefault: } case 303: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2626 + // line internal/php7/php7.y:2636 { yyVAL.node = &ast.ExprAssignMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5085,7 +5095,7 @@ yydefault: } case 304: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2635 + // line internal/php7/php7.y:2645 { yyVAL.node = &ast.ExprAssignPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5096,7 +5106,7 @@ yydefault: } case 305: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2644 + // line internal/php7/php7.y:2654 { yyVAL.node = &ast.ExprAssignDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5107,7 +5117,7 @@ yydefault: } case 306: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2653 + // line internal/php7/php7.y:2663 { yyVAL.node = &ast.ExprAssignConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5118,7 +5128,7 @@ yydefault: } case 307: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2662 + // line internal/php7/php7.y:2672 { yyVAL.node = &ast.ExprAssignMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5129,7 +5139,7 @@ yydefault: } case 308: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2671 + // line internal/php7/php7.y:2681 { yyVAL.node = &ast.ExprAssignBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5140,7 +5150,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2680 + // line internal/php7/php7.y:2690 { yyVAL.node = &ast.ExprAssignBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5151,7 +5161,7 @@ yydefault: } case 310: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2689 + // line internal/php7/php7.y:2699 { yyVAL.node = &ast.ExprAssignBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5162,7 +5172,7 @@ yydefault: } case 311: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2698 + // line internal/php7/php7.y:2708 { yyVAL.node = &ast.ExprAssignShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5173,7 +5183,7 @@ yydefault: } case 312: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2707 + // line internal/php7/php7.y:2717 { yyVAL.node = &ast.ExprAssignShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5184,7 +5194,7 @@ yydefault: } case 313: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2716 + // line internal/php7/php7.y:2726 { yyVAL.node = &ast.ExprAssignCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5195,7 +5205,7 @@ yydefault: } case 314: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2725 + // line internal/php7/php7.y:2735 { yyVAL.node = &ast.ExprPostInc{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5205,7 +5215,7 @@ yydefault: } case 315: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2733 + // line internal/php7/php7.y:2743 { yyVAL.node = &ast.ExprPreInc{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5215,7 +5225,7 @@ yydefault: } case 316: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2741 + // line internal/php7/php7.y:2751 { yyVAL.node = &ast.ExprPostDec{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[2].token), @@ -5225,7 +5235,7 @@ yydefault: } case 317: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2749 + // line internal/php7/php7.y:2759 { yyVAL.node = &ast.ExprPreDec{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5235,7 +5245,7 @@ yydefault: } case 318: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2757 + // line internal/php7/php7.y:2767 { yyVAL.node = &ast.ExprBinaryBooleanOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5246,7 +5256,7 @@ yydefault: } case 319: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2766 + // line internal/php7/php7.y:2776 { yyVAL.node = &ast.ExprBinaryBooleanAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5257,7 +5267,7 @@ yydefault: } case 320: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2775 + // line internal/php7/php7.y:2785 { yyVAL.node = &ast.ExprBinaryLogicalOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5268,7 +5278,7 @@ yydefault: } case 321: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2784 + // line internal/php7/php7.y:2794 { yyVAL.node = &ast.ExprBinaryLogicalAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5279,7 +5289,7 @@ yydefault: } case 322: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2793 + // line internal/php7/php7.y:2803 { yyVAL.node = &ast.ExprBinaryLogicalXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5290,7 +5300,7 @@ yydefault: } case 323: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2802 + // line internal/php7/php7.y:2812 { yyVAL.node = &ast.ExprBinaryBitwiseOr{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5301,7 +5311,7 @@ yydefault: } case 324: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2811 + // line internal/php7/php7.y:2821 { yyVAL.node = &ast.ExprBinaryBitwiseAnd{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5312,7 +5322,7 @@ yydefault: } case 325: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2820 + // line internal/php7/php7.y:2830 { yyVAL.node = &ast.ExprBinaryBitwiseXor{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5323,7 +5333,7 @@ yydefault: } case 326: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2829 + // line internal/php7/php7.y:2839 { yyVAL.node = &ast.ExprBinaryConcat{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5334,7 +5344,7 @@ yydefault: } case 327: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2838 + // line internal/php7/php7.y:2848 { yyVAL.node = &ast.ExprBinaryPlus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5345,7 +5355,7 @@ yydefault: } case 328: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2847 + // line internal/php7/php7.y:2857 { yyVAL.node = &ast.ExprBinaryMinus{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5356,7 +5366,7 @@ yydefault: } case 329: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2856 + // line internal/php7/php7.y:2866 { yyVAL.node = &ast.ExprBinaryMul{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5367,7 +5377,7 @@ yydefault: } case 330: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2865 + // line internal/php7/php7.y:2875 { yyVAL.node = &ast.ExprBinaryPow{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5378,7 +5388,7 @@ yydefault: } case 331: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2874 + // line internal/php7/php7.y:2884 { yyVAL.node = &ast.ExprBinaryDiv{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5389,7 +5399,7 @@ yydefault: } case 332: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2883 + // line internal/php7/php7.y:2893 { yyVAL.node = &ast.ExprBinaryMod{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5400,7 +5410,7 @@ yydefault: } case 333: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2892 + // line internal/php7/php7.y:2902 { yyVAL.node = &ast.ExprBinaryShiftLeft{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5411,7 +5421,7 @@ yydefault: } case 334: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2901 + // line internal/php7/php7.y:2911 { yyVAL.node = &ast.ExprBinaryShiftRight{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5422,7 +5432,7 @@ yydefault: } case 335: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2910 + // line internal/php7/php7.y:2920 { yyVAL.node = &ast.ExprUnaryPlus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5432,7 +5442,7 @@ yydefault: } case 336: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2918 + // line internal/php7/php7.y:2928 { yyVAL.node = &ast.ExprUnaryMinus{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5442,7 +5452,7 @@ yydefault: } case 337: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2926 + // line internal/php7/php7.y:2936 { yyVAL.node = &ast.ExprBooleanNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5452,7 +5462,7 @@ yydefault: } case 338: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:2934 + // line internal/php7/php7.y:2944 { yyVAL.node = &ast.ExprBitwiseNot{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5462,7 +5472,7 @@ yydefault: } case 339: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2942 + // line internal/php7/php7.y:2952 { yyVAL.node = &ast.ExprBinaryIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5473,7 +5483,7 @@ yydefault: } case 340: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2951 + // line internal/php7/php7.y:2961 { yyVAL.node = &ast.ExprBinaryNotIdentical{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5484,7 +5494,7 @@ yydefault: } case 341: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2960 + // line internal/php7/php7.y:2970 { yyVAL.node = &ast.ExprBinaryEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5495,7 +5505,7 @@ yydefault: } case 342: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2969 + // line internal/php7/php7.y:2979 { yyVAL.node = &ast.ExprBinaryNotEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5506,7 +5516,7 @@ yydefault: } case 343: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2978 + // line internal/php7/php7.y:2988 { yyVAL.node = &ast.ExprBinarySmaller{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5517,7 +5527,7 @@ yydefault: } case 344: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2987 + // line internal/php7/php7.y:2997 { yyVAL.node = &ast.ExprBinarySmallerOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5528,7 +5538,7 @@ yydefault: } case 345: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:2996 + // line internal/php7/php7.y:3006 { yyVAL.node = &ast.ExprBinaryGreater{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5539,7 +5549,7 @@ yydefault: } case 346: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3005 + // line internal/php7/php7.y:3015 { yyVAL.node = &ast.ExprBinaryGreaterOrEqual{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5550,7 +5560,7 @@ yydefault: } case 347: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3014 + // line internal/php7/php7.y:3024 { yyVAL.node = &ast.ExprBinarySpaceship{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5561,7 +5571,7 @@ yydefault: } case 348: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3023 + // line internal/php7/php7.y:3033 { yyVAL.node = &ast.ExprInstanceOf{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5572,7 +5582,7 @@ yydefault: } case 349: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3032 + // line internal/php7/php7.y:3042 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5583,13 +5593,13 @@ yydefault: } case 350: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3041 + // line internal/php7/php7.y:3051 { yyVAL.node = yyDollar[1].node } case 351: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:3045 + // line internal/php7/php7.y:3055 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), @@ -5602,7 +5612,7 @@ yydefault: } case 352: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3056 + // line internal/php7/php7.y:3066 { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5614,7 +5624,7 @@ yydefault: } case 353: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3066 + // line internal/php7/php7.y:3076 { yyVAL.node = &ast.ExprBinaryCoalesce{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -5625,13 +5635,13 @@ yydefault: } case 354: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3075 + // line internal/php7/php7.y:3085 { yyVAL.node = yyDollar[1].node } case 355: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3079 + // line internal/php7/php7.y:3089 { yyVAL.node = &ast.ExprCastInt{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5641,7 +5651,7 @@ yydefault: } case 356: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3087 + // line internal/php7/php7.y:3097 { yyVAL.node = &ast.ExprCastDouble{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5651,7 +5661,7 @@ yydefault: } case 357: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3095 + // line internal/php7/php7.y:3105 { yyVAL.node = &ast.ExprCastString{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5661,7 +5671,7 @@ yydefault: } case 358: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3103 + // line internal/php7/php7.y:3113 { yyVAL.node = &ast.ExprCastArray{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5671,7 +5681,7 @@ yydefault: } case 359: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3111 + // line internal/php7/php7.y:3121 { yyVAL.node = &ast.ExprCastObject{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5681,7 +5691,7 @@ yydefault: } case 360: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3119 + // line internal/php7/php7.y:3129 { yyVAL.node = &ast.ExprCastBool{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5691,7 +5701,7 @@ yydefault: } case 361: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3127 + // line internal/php7/php7.y:3137 { yyVAL.node = &ast.ExprCastUnset{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5701,7 +5711,7 @@ yydefault: } case 362: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3135 + // line internal/php7/php7.y:3145 { exit := &ast.ExprExit{ ExitTkn: yyDollar[1].token, @@ -5720,7 +5730,7 @@ yydefault: } case 363: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3152 + // line internal/php7/php7.y:3162 { yyVAL.node = &ast.ExprErrorSuppress{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5730,13 +5740,13 @@ yydefault: } case 364: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3160 + // line internal/php7/php7.y:3170 { yyVAL.node = yyDollar[1].node } case 365: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3164 + // line internal/php7/php7.y:3174 { yyVAL.node = &ast.ExprShellExec{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -5747,7 +5757,7 @@ yydefault: } case 366: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3173 + // line internal/php7/php7.y:3183 { yyVAL.node = &ast.ExprPrint{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5757,7 +5767,7 @@ yydefault: } case 367: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3181 + // line internal/php7/php7.y:3191 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5766,7 +5776,7 @@ yydefault: } case 368: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3188 + // line internal/php7/php7.y:3198 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5776,7 +5786,7 @@ yydefault: } case 369: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3196 + // line internal/php7/php7.y:3206 { yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), @@ -5788,7 +5798,7 @@ yydefault: } case 370: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3206 + // line internal/php7/php7.y:3216 { yyVAL.node = &ast.ExprYieldFrom{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -5798,13 +5808,13 @@ yydefault: } case 371: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3214 + // line internal/php7/php7.y:3224 { yyVAL.node = yyDollar[1].node } case 372: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3218 + // line internal/php7/php7.y:3228 { switch n := yyDollar[2].node.(type) { case *ast.ExprClosure: @@ -5819,7 +5829,7 @@ yydefault: } case 373: yyDollar = yyS[yypt-11 : yypt+1] - // line internal/php7/php7.y:3234 + // line internal/php7/php7.y:3244 { closure := yyDollar[7].node.(*ast.ExprClosure) @@ -5840,7 +5850,7 @@ yydefault: } case 374: yyDollar = yyS[yypt-9 : yypt+1] - // line internal/php7/php7.y:3253 + // line internal/php7/php7.y:3263 { yyVAL.node = &ast.ExprArrowFunction{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node), @@ -5858,25 +5868,25 @@ yydefault: } case 376: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3276 + // line internal/php7/php7.y:3286 { yyVAL.token = nil } case 377: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3280 + // line internal/php7/php7.y:3290 { yyVAL.token = yyDollar[1].token } case 378: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3287 + // line internal/php7/php7.y:3297 { yyVAL.node = &ast.ExprClosure{} } case 379: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3291 + // line internal/php7/php7.y:3301 { yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, @@ -5888,7 +5898,7 @@ yydefault: } case 380: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3304 + // line internal/php7/php7.y:3314 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -5897,7 +5907,7 @@ yydefault: } case 381: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3311 + // line internal/php7/php7.y:3321 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -5905,7 +5915,7 @@ yydefault: } case 382: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3320 + // line internal/php7/php7.y:3330 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -5921,7 +5931,7 @@ yydefault: } case 383: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3334 + // line internal/php7/php7.y:3344 { yyVAL.node = &ast.ExprClosureUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -5938,7 +5948,7 @@ yydefault: } case 384: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3352 + // line internal/php7/php7.y:3362 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -5951,7 +5961,7 @@ yydefault: } case 385: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3363 + // line internal/php7/php7.y:3373 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5974,7 +5984,7 @@ yydefault: } case 386: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3384 + // line internal/php7/php7.y:3394 { staticCall := &ast.ExprStaticCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -5997,7 +6007,7 @@ yydefault: } case 387: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3405 + // line internal/php7/php7.y:3415 { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), @@ -6010,7 +6020,7 @@ yydefault: } case 388: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3419 + // line internal/php7/php7.y:3429 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6020,31 +6030,31 @@ yydefault: } case 389: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3427 + // line internal/php7/php7.y:3437 { yyVAL.node = yyDollar[1].node } case 390: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3434 + // line internal/php7/php7.y:3444 { yyVAL.node = yyDollar[1].node } case 391: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3438 + // line internal/php7/php7.y:3448 { yyVAL.node = yyDollar[1].node } case 392: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3445 + // line internal/php7/php7.y:3455 { yyVAL.node = nil } case 393: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3449 + // line internal/php7/php7.y:3459 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6055,13 +6065,13 @@ yydefault: } case 394: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3461 + // line internal/php7/php7.y:3471 { yyVAL.list = []ast.Vertex{} } case 395: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3465 + // line internal/php7/php7.y:3475 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6073,25 +6083,25 @@ yydefault: } case 396: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3475 + // line internal/php7/php7.y:3485 { yyVAL.list = yyDollar[1].list } case 397: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3482 + // line internal/php7/php7.y:3492 { yyVAL.node = &ast.ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3486 + // line internal/php7/php7.y:3496 { yyVAL.node = yyDollar[1].node } case 399: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3493 + // line internal/php7/php7.y:3503 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6104,7 +6114,7 @@ yydefault: } case 400: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3504 + // line internal/php7/php7.y:3514 { yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6116,7 +6126,7 @@ yydefault: } case 401: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3514 + // line internal/php7/php7.y:3524 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6126,7 +6136,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3525 + // line internal/php7/php7.y:3535 { yyVAL.node = &ast.ScalarLnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6136,7 +6146,7 @@ yydefault: } case 403: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3533 + // line internal/php7/php7.y:3543 { yyVAL.node = &ast.ScalarDnumber{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6146,7 +6156,7 @@ yydefault: } case 404: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3541 + // line internal/php7/php7.y:3551 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6156,7 +6166,7 @@ yydefault: } case 405: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3549 + // line internal/php7/php7.y:3559 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6166,7 +6176,7 @@ yydefault: } case 406: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3557 + // line internal/php7/php7.y:3567 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6176,7 +6186,7 @@ yydefault: } case 407: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3565 + // line internal/php7/php7.y:3575 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6186,7 +6196,7 @@ yydefault: } case 408: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3573 + // line internal/php7/php7.y:3583 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6196,7 +6206,7 @@ yydefault: } case 409: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3581 + // line internal/php7/php7.y:3591 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6206,7 +6216,7 @@ yydefault: } case 410: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3589 + // line internal/php7/php7.y:3599 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6216,7 +6226,7 @@ yydefault: } case 411: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3597 + // line internal/php7/php7.y:3607 { yyVAL.node = &ast.ScalarMagicConstant{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6226,7 +6236,7 @@ yydefault: } case 412: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3605 + // line internal/php7/php7.y:3615 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6243,7 +6253,7 @@ yydefault: } case 413: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3620 + // line internal/php7/php7.y:3630 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), @@ -6253,7 +6263,7 @@ yydefault: } case 414: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3628 + // line internal/php7/php7.y:3638 { yyVAL.node = &ast.ScalarEncapsed{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6264,7 +6274,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3637 + // line internal/php7/php7.y:3647 { yyVAL.node = &ast.ScalarHeredoc{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6275,19 +6285,19 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3646 + // line internal/php7/php7.y:3656 { yyVAL.node = yyDollar[1].node } case 417: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3650 + // line internal/php7/php7.y:3660 { yyVAL.node = yyDollar[1].node } case 418: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3657 + // line internal/php7/php7.y:3667 { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6296,7 +6306,7 @@ yydefault: } case 419: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3664 + // line internal/php7/php7.y:3674 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6311,7 +6321,7 @@ yydefault: } case 420: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3677 + // line internal/php7/php7.y:3687 { yyVAL.node = &ast.ExprClassConstFetch{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), @@ -6326,43 +6336,43 @@ yydefault: } case 421: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3693 + // line internal/php7/php7.y:3703 { yyVAL.node = yyDollar[1].node } case 422: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3697 + // line internal/php7/php7.y:3707 { yyVAL.node = yyDollar[1].node } case 423: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:3704 + // line internal/php7/php7.y:3714 { yyVAL.node = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3708 + // line internal/php7/php7.y:3718 { yyVAL.node = yyDollar[1].node } case 425: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3715 + // line internal/php7/php7.y:3725 { yyVAL.node = yyDollar[1].node } case 426: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3722 + // line internal/php7/php7.y:3732 { yyVAL.node = yyDollar[1].node } case 427: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3726 + // line internal/php7/php7.y:3736 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6373,19 +6383,19 @@ yydefault: } case 428: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3735 + // line internal/php7/php7.y:3745 { yyVAL.node = yyDollar[1].node } case 429: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3742 + // line internal/php7/php7.y:3752 { yyVAL.node = yyDollar[1].node } case 430: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3746 + // line internal/php7/php7.y:3756 { yyVAL.node = &ast.ExprBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6396,29 +6406,17 @@ yydefault: } case 431: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3755 + // line internal/php7/php7.y:3765 { yyVAL.node = yyDollar[1].node } case 432: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3762 + // line internal/php7/php7.y:3772 { yyVAL.node = yyDollar[1].node } case 433: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3766 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3776 { @@ -6430,7 +6428,7 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 435: + case 434: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3786 { @@ -6442,9 +6440,21 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } - case 436: + case 435: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3796 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } + case 436: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:3806 { methodCall := &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6467,25 +6477,25 @@ yydefault: } case 437: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3817 + // line internal/php7/php7.y:3827 { yyVAL.node = yyDollar[1].node } case 438: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3824 + // line internal/php7/php7.y:3834 { yyVAL.node = yyDollar[1].node } case 439: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3828 + // line internal/php7/php7.y:3838 { yyVAL.node = yyDollar[1].node } case 440: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3832 + // line internal/php7/php7.y:3842 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6504,7 +6514,7 @@ yydefault: } case 441: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3852 + // line internal/php7/php7.y:3862 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6517,7 +6527,7 @@ yydefault: } case 442: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3863 + // line internal/php7/php7.y:3873 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6529,7 +6539,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:3873 + // line internal/php7/php7.y:3883 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6539,7 +6549,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3884 + // line internal/php7/php7.y:3894 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6550,7 +6560,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3893 + // line internal/php7/php7.y:3903 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6561,23 +6571,11 @@ yydefault: } case 446: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3905 + // line internal/php7/php7.y:3915 { yyVAL.node = yyDollar[1].node } case 447: - yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:3909 - { - yyVAL.node = &ast.ExprArrayDimFetch{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Var: yyDollar[1].node, - OpenBracketTkn: yyDollar[2].token, - Dim: yyDollar[3].node, - CloseBracketTkn: yyDollar[4].token, - } - } - case 448: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:3919 { @@ -6589,9 +6587,21 @@ yydefault: CloseBracketTkn: yyDollar[4].token, } } + case 448: + yyDollar = yyS[yypt-4 : yypt+1] + // line internal/php7/php7.y:3929 + { + yyVAL.node = &ast.ExprArrayDimFetch{ + Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), + Var: yyDollar[1].node, + OpenBracketTkn: yyDollar[2].token, + Dim: yyDollar[3].node, + CloseBracketTkn: yyDollar[4].token, + } + } case 449: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3929 + // line internal/php7/php7.y:3939 { propertyFetch := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6610,7 +6620,7 @@ yydefault: } case 450: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3946 + // line internal/php7/php7.y:3956 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6621,7 +6631,7 @@ yydefault: } case 451: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3955 + // line internal/php7/php7.y:3965 { yyVAL.node = &ast.ExprStaticPropertyFetch{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6632,7 +6642,7 @@ yydefault: } case 452: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3967 + // line internal/php7/php7.y:3977 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6642,7 +6652,7 @@ yydefault: } case 453: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3975 + // line internal/php7/php7.y:3985 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6653,13 +6663,13 @@ yydefault: } case 454: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3984 + // line internal/php7/php7.y:3994 { yyVAL.node = yyDollar[1].node } case 455: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:3991 + // line internal/php7/php7.y:4001 { yyVAL.node = &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6669,7 +6679,7 @@ yydefault: } case 456: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:3999 + // line internal/php7/php7.y:4009 { yyVAL.node = &ast.ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6680,13 +6690,13 @@ yydefault: } case 457: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4008 + // line internal/php7/php7.y:4018 { yyVAL.node = yyDollar[1].node } case 458: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4015 + // line internal/php7/php7.y:4025 { pairList := yyDollar[1].node.(*ast.ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) @@ -6699,19 +6709,19 @@ yydefault: } case 459: yyDollar = yyS[yypt-0 : yypt+1] - // line internal/php7/php7.y:4029 + // line internal/php7/php7.y:4039 { yyVAL.node = &ast.ExprArrayItem{} } case 460: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4033 + // line internal/php7/php7.y:4043 { yyVAL.node = yyDollar[1].node } case 461: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4040 + // line internal/php7/php7.y:4050 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -6720,7 +6730,7 @@ yydefault: } case 462: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4047 + // line internal/php7/php7.y:4057 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -6728,7 +6738,7 @@ yydefault: } case 463: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4056 + // line internal/php7/php7.y:4066 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -6739,7 +6749,7 @@ yydefault: } case 464: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4065 + // line internal/php7/php7.y:4075 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -6748,7 +6758,7 @@ yydefault: } case 465: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4072 + // line internal/php7/php7.y:4082 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -6760,7 +6770,7 @@ yydefault: } case 466: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4082 + // line internal/php7/php7.y:4092 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6770,7 +6780,7 @@ yydefault: } case 467: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4090 + // line internal/php7/php7.y:4100 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -6780,7 +6790,7 @@ yydefault: } case 468: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4098 + // line internal/php7/php7.y:4108 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[6].token), @@ -6798,7 +6808,7 @@ yydefault: } case 469: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4114 + // line internal/php7/php7.y:4124 { yyVAL.node = &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6814,13 +6824,13 @@ yydefault: } case 470: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4131 + // line internal/php7/php7.y:4141 { yyVAL.list = append(yyDollar[1].list, yyDollar[2].node) } case 471: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4135 + // line internal/php7/php7.y:4145 { yyVAL.list = append( yyDollar[1].list, @@ -6833,13 +6843,13 @@ yydefault: } case 472: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4146 + // line internal/php7/php7.y:4156 { yyVAL.list = []ast.Vertex{yyDollar[1].node} } case 473: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4150 + // line internal/php7/php7.y:4160 { yyVAL.list = []ast.Vertex{ &ast.ScalarEncapsedStringPart{ @@ -6852,7 +6862,7 @@ yydefault: } case 474: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4164 + // line internal/php7/php7.y:4174 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6865,7 +6875,7 @@ yydefault: } case 475: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4175 + // line internal/php7/php7.y:4185 { yyVAL.node = &ast.ExprArrayDimFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -6884,7 +6894,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4192 + // line internal/php7/php7.y:4202 { yyVAL.node = &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6906,7 +6916,7 @@ yydefault: } case 477: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4212 + // line internal/php7/php7.y:4222 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6917,7 +6927,7 @@ yydefault: } case 478: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4221 + // line internal/php7/php7.y:4231 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6932,7 +6942,7 @@ yydefault: } case 479: yyDollar = yyS[yypt-6 : yypt+1] - // line internal/php7/php7.y:4234 + // line internal/php7/php7.y:4244 { yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6950,7 +6960,7 @@ yydefault: } case 480: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4250 + // line internal/php7/php7.y:4260 { yyVAL.node = &ast.ScalarEncapsedStringBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), @@ -6961,7 +6971,7 @@ yydefault: } case 481: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4262 + // line internal/php7/php7.y:4272 { yyVAL.node = &ast.ScalarString{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -6971,7 +6981,7 @@ yydefault: } case 482: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4270 + // line internal/php7/php7.y:4280 { // TODO: add option to handle 64 bit integer if _, err := strconv.Atoi(string(yyDollar[1].token.Value)); err == nil { @@ -6990,7 +7000,7 @@ yydefault: } case 483: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4287 + // line internal/php7/php7.y:4297 { _, err := strconv.Atoi(string(yyDollar[2].token.Value)) isInt := err == nil @@ -7016,7 +7026,7 @@ yydefault: } case 484: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4311 + // line internal/php7/php7.y:4321 { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -7029,7 +7039,7 @@ yydefault: } case 485: yyDollar = yyS[yypt-5 : yypt+1] - // line internal/php7/php7.y:4325 + // line internal/php7/php7.y:4335 { if yyDollar[4].token != nil { yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) @@ -7046,7 +7056,7 @@ yydefault: } case 486: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4340 + // line internal/php7/php7.y:4350 { yyVAL.node = &ast.ExprEmpty{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7058,7 +7068,7 @@ yydefault: } case 487: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4350 + // line internal/php7/php7.y:4360 { yyVAL.node = &ast.ExprInclude{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7068,7 +7078,7 @@ yydefault: } case 488: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4358 + // line internal/php7/php7.y:4368 { yyVAL.node = &ast.ExprIncludeOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7078,7 +7088,7 @@ yydefault: } case 489: yyDollar = yyS[yypt-4 : yypt+1] - // line internal/php7/php7.y:4366 + // line internal/php7/php7.y:4376 { yyVAL.node = &ast.ExprEval{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), @@ -7090,7 +7100,7 @@ yydefault: } case 490: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4376 + // line internal/php7/php7.y:4386 { yyVAL.node = &ast.ExprRequire{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7100,7 +7110,7 @@ yydefault: } case 491: yyDollar = yyS[yypt-2 : yypt+1] - // line internal/php7/php7.y:4384 + // line internal/php7/php7.y:4394 { yyVAL.node = &ast.ExprRequireOnce{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -7110,7 +7120,7 @@ yydefault: } case 492: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4395 + // line internal/php7/php7.y:4405 { yyVAL.node = &ast.ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, @@ -7118,7 +7128,7 @@ yydefault: } case 493: yyDollar = yyS[yypt-3 : yypt+1] - // line internal/php7/php7.y:4401 + // line internal/php7/php7.y:4411 { yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) @@ -7127,7 +7137,7 @@ yydefault: } case 494: yyDollar = yyS[yypt-1 : yypt+1] - // line internal/php7/php7.y:4411 + // line internal/php7/php7.y:4421 { yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 117b1f8..0b15329 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -2132,11 +2132,13 @@ trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { $$ = &ast.StmtTraitUsePrecedence{ - Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - Ref: $1, - InsteadofTkn: $2, - Insteadof: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + InsteadofTkn: $2, + Insteadof: $3.(*ast.ParserSeparatedList).Items, + SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, } } ; @@ -2145,9 +2147,11 @@ trait_alias: trait_method_reference T_AS T_STRING { $$ = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), - Ref: $1, - AsTkn: $2, + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + AsTkn: $2, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, @@ -2158,9 +2162,11 @@ trait_alias: | trait_method_reference T_AS reserved_non_modifiers { $$ = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), - Ref: $1, - AsTkn: $2, + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + AsTkn: $2, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, @@ -2171,10 +2177,12 @@ trait_alias: | trait_method_reference T_AS member_modifier identifier { $$ = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), - Ref: $1, - AsTkn: $2, - Modifier: $3, + Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + AsTkn: $2, + Modifier: $3, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, @@ -2185,10 +2193,12 @@ trait_alias: | trait_method_reference T_AS member_modifier { $$ = &ast.StmtTraitUseAlias{ - Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), - Ref: $1, - AsTkn: $2, - Modifier: $3, + Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), + Trait: $1.(*ast.TraitMethodRef).Trait, + DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, + Method: $1.(*ast.TraitMethodRef).Method, + AsTkn: $2, + Modifier: $3, } } ; @@ -2196,7 +2206,7 @@ trait_alias: trait_method_reference: identifier { - $$ = &ast.StmtTraitMethodRef{ + $$ = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), @@ -2214,7 +2224,7 @@ trait_method_reference: absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { - $$ = &ast.StmtTraitMethodRef{ + $$ = &ast.TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index d8fb966..fb5b351 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -64,7 +64,6 @@ type NodeVisitor interface { StmtSwitch(n *StmtSwitch) StmtThrow(n *StmtThrow) StmtTrait(n *StmtTrait) - StmtTraitMethodRef(n *StmtTraitMethodRef) StmtTraitUse(n *StmtTraitUse) StmtTraitUseAlias(n *StmtTraitUseAlias) StmtTraitUsePrecedence(n *StmtTraitUsePrecedence) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 98889da..e97fc87 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -937,22 +937,6 @@ func (n *StmtTrait) GetPosition() *position.Position { return n.Position } -// StmtTraitMethodRef node -type StmtTraitMethodRef struct { - Position *position.Position - Trait Vertex - DoubleColonTkn *token.Token - Method Vertex -} - -func (n *StmtTraitMethodRef) Accept(v NodeVisitor) { - v.StmtTraitMethodRef(n) -} - -func (n *StmtTraitMethodRef) GetPosition() *position.Position { - return n.Position -} - // StmtTraitUse node type StmtTraitUse struct { Position *position.Position @@ -975,12 +959,14 @@ func (n *StmtTraitUse) GetPosition() *position.Position { // StmtTraitUseAlias node type StmtTraitUseAlias struct { - Position *position.Position - Ref Vertex - AsTkn *token.Token - Modifier Vertex - Alias Vertex - SemiColonTkn *token.Token + Position *position.Position + Trait Vertex + DoubleColonTkn *token.Token + Method Vertex + AsTkn *token.Token + Modifier Vertex + Alias Vertex + SemiColonTkn *token.Token } func (n *StmtTraitUseAlias) Accept(v NodeVisitor) { @@ -993,12 +979,14 @@ func (n *StmtTraitUseAlias) GetPosition() *position.Position { // StmtTraitUsePrecedence node type StmtTraitUsePrecedence struct { - Position *position.Position - Ref Vertex - InsteadofTkn *token.Token - Insteadof []Vertex - SeparatorTkns []*token.Token - SemiColonTkn *token.Token + Position *position.Position + Trait Vertex + DoubleColonTkn *token.Token + Method Vertex + InsteadofTkn *token.Token + Insteadof []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { @@ -2734,3 +2722,19 @@ func (n *ReturnType) Accept(v NodeVisitor) { func (n *ReturnType) GetPosition() *position.Position { return n.Position } + +// TraitMethodRef node +type TraitMethodRef struct { + Position *position.Position + Trait Vertex + DoubleColonTkn *token.Token + Method Vertex +} + +func (n *TraitMethodRef) Accept(v NodeVisitor) { + // do nothing +} + +func (n *TraitMethodRef) GetPosition() *position.Position { + return n.Position +} diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go index 9e58ba5..716bb30 100644 --- a/pkg/ast/traverser/dfs.go +++ b/pkg/ast/traverser/dfs.go @@ -776,23 +776,6 @@ func (t *DFS) Traverse(n ast.Vertex) { } t.visitor.Leave("Stmts", false) } - case *ast.StmtTraitMethodRef: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Trait != nil { - t.visitor.Enter("Trait", true) - t.Traverse(nn.Trait) - t.visitor.Leave("Trait", true) - } - if nn.Method != nil { - t.visitor.Enter("Method", true) - t.Traverse(nn.Method) - t.visitor.Leave("Method", true) - } case *ast.StmtTraitUse: if nn == nil { return @@ -821,10 +804,15 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - if nn.Ref != nil { - t.visitor.Enter("Ref", true) - t.Traverse(nn.Ref) - t.visitor.Leave("Ref", true) + if nn.Trait != nil { + t.visitor.Enter("Trait", true) + t.Traverse(nn.Trait) + t.visitor.Leave("Trait", true) + } + if nn.Method != nil { + t.visitor.Enter("Method", true) + t.Traverse(nn.Method) + t.visitor.Leave("Method", true) } if nn.Modifier != nil { t.visitor.Enter("Modifier", true) @@ -843,10 +831,15 @@ func (t *DFS) Traverse(n ast.Vertex) { if !t.visitor.EnterNode(nn) { return } - if nn.Ref != nil { - t.visitor.Enter("Ref", true) - t.Traverse(nn.Ref) - t.visitor.Leave("Ref", true) + if nn.Trait != nil { + t.visitor.Enter("Trait", true) + t.Traverse(nn.Trait) + t.visitor.Leave("Trait", true) + } + if nn.Method != nil { + t.visitor.Enter("Method", true) + t.Traverse(nn.Method) + t.visitor.Leave("Method", true) } if nn.Insteadof != nil { t.visitor.Enter("Insteadof", false) diff --git a/pkg/ast/visitor/dumper.go b/pkg/ast/visitor/dumper.go index 2783faa..9a7f501 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/ast/visitor/dumper.go @@ -824,19 +824,6 @@ func (v *Dumper) StmtTrait(n *ast.StmtTrait) { v.print(v.indent, "},\n") } -func (v *Dumper) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { - v.print(0, "&ast.StmtTraitMethodRef{\n") - v.indent++ - - v.dumpPosition(n.Position) - v.dumpVertex("Trait", n.Trait) - v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) - v.dumpVertex("Method", n.Method) - - v.indent-- - v.print(v.indent, "},\n") -} - func (v *Dumper) StmtTraitUse(n *ast.StmtTraitUse) { v.print(0, "&ast.StmtTraitUse{\n") v.indent++ @@ -859,7 +846,9 @@ func (v *Dumper) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { v.indent++ v.dumpPosition(n.Position) - v.dumpVertex("Ref", n.Ref) + v.dumpVertex("Trait", n.Trait) + v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) + v.dumpVertex("Method", n.Method) v.dumpToken("AsTkn", n.AsTkn) v.dumpVertex("Modifier", n.Modifier) v.dumpVertex("Alias", n.Alias) @@ -874,7 +863,9 @@ func (v *Dumper) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { v.indent++ v.dumpPosition(n.Position) - v.dumpVertex("Ref", n.Ref) + v.dumpVertex("Trait", n.Trait) + v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) + v.dumpVertex("Method", n.Method) v.dumpToken("InsteadofTkn", n.InsteadofTkn) v.dumpVertexList("Insteadof", n.Insteadof) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) diff --git a/pkg/ast/visitor/formatter.go b/pkg/ast/visitor/formatter.go index c6e1a50..757cd49 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/ast/visitor/formatter.go @@ -858,15 +858,6 @@ func (f *formatter) StmtTrait(n *ast.StmtTrait) { n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) } -func (f *formatter) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { - if n.Trait != nil { - n.Trait.Accept(f) - n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) - } - - n.Method.Accept(f) -} - func (f *formatter) StmtTraitUse(n *ast.StmtTraitUse) { n.UseTkn = f.newToken(token.T_USE, []byte("use")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) @@ -897,7 +888,12 @@ func (f *formatter) StmtTraitUse(n *ast.StmtTraitUse) { } func (f *formatter) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { - n.Ref.Accept(f) + if n.Trait != nil { + n.Trait.Accept(f) + n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) + } + + n.Method.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) n.AsTkn = f.newToken(token.T_AS, []byte("as")) @@ -915,7 +911,12 @@ func (f *formatter) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { } func (f *formatter) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { - n.Ref.Accept(f) + if n.Trait != nil { + n.Trait.Accept(f) + n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) + } + + n.Method.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) n.InsteadofTkn = f.newToken(token.T_INSTEADOF, []byte("insteadof")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/ast/visitor/formatter_test.go index 7c708bc..fc0ede9 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/ast/visitor/formatter_test.go @@ -2360,59 +2360,6 @@ func TestFormatter_StmtTrait(t *testing.T) { } } -func TestFormatter_StmtTraitMethodRef(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `foo` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestFormatter_StmtTraitMethodRef_Trait(t *testing.T) { - o := bytes.NewBufferString("") - - n := &ast.StmtTraitMethodRef{ - Trait: &ast.NameName{ - Parts: []ast.Vertex{ - &ast.NameNamePart{ - Value: []byte("foo"), - }, - }, - }, - Method: &ast.Identifier{ - Value: []byte("bar"), - }, - } - - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) - n.Accept(f) - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n.Accept(p) - - expected := `foo::bar` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestFormatter_StmtTraitUse(t *testing.T) { o := bytes.NewBufferString("") @@ -2471,10 +2418,8 @@ func TestFormatter_StmtTraitUse_Adaptations(t *testing.T) { }, Adaptations: []ast.Vertex{ &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, + Method: &ast.Identifier{ + Value: []byte("foo"), }, Alias: &ast.Identifier{ Value: []byte("baz"), @@ -2503,10 +2448,8 @@ func TestFormatter_StmtTraitUseAlias(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, + Method: &ast.Identifier{ + Value: []byte("foo"), }, Modifier: &ast.Identifier{ Value: []byte("public"), @@ -2530,14 +2473,48 @@ func TestFormatter_StmtTraitUseAlias(t *testing.T) { } } +func TestFormatter_StmtTraitUseAlias_Trait(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtTraitUseAlias{ + Trait: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Method: &ast.Identifier{ + Value: []byte("bar"), + }, + Modifier: &ast.Identifier{ + Value: []byte("public"), + }, + Alias: &ast.Identifier{ + Value: []byte("baz"), + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo::bar as public baz;` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_StmtTraitUseAlias_Alias(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, + Method: &ast.Identifier{ + Value: []byte("foo"), }, Alias: &ast.Identifier{ Value: []byte("bar"), @@ -2562,10 +2539,8 @@ func TestFormatter_StmtTraitUseAlias_Modifier(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, + Method: &ast.Identifier{ + Value: []byte("foo"), }, Modifier: &ast.Identifier{ Value: []byte("public"), @@ -2590,10 +2565,8 @@ func TestFormatter_StmtTraitUsePrecedence(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtTraitUsePrecedence{ - Ref: &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{ - Value: []byte("foo"), - }, + Method: &ast.Identifier{ + Value: []byte("foo"), }, Insteadof: []ast.Vertex{ &ast.NameName{ @@ -2627,6 +2600,45 @@ func TestFormatter_StmtTraitUsePrecedence(t *testing.T) { } } +func TestFormatter_StmtTraitUsePrecedence_Trait(t *testing.T) { + o := bytes.NewBufferString("") + + n := &ast.StmtTraitUsePrecedence{ + Trait: &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("foo"), + }, + }, + }, + Method: &ast.Identifier{ + Value: []byte("bar"), + }, + Insteadof: []ast.Vertex{ + &ast.NameName{ + Parts: []ast.Vertex{ + &ast.NameNamePart{ + Value: []byte("baz"), + }, + }, + }, + }, + } + + f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + n.Accept(f) + + p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + n.Accept(p) + + expected := `foo::bar insteadof baz;` + actual := o.String() + + if expected != actual { + t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) + } +} + func TestFormatter_StmtTry(t *testing.T) { o := bytes.NewBufferString("") diff --git a/pkg/ast/visitor/namespace_resolver.go b/pkg/ast/visitor/namespace_resolver.go index 7de7f68..ccec503 100644 --- a/pkg/ast/visitor/namespace_resolver.go +++ b/pkg/ast/visitor/namespace_resolver.go @@ -187,7 +187,7 @@ func (nsr *NamespaceResolver) StmtTraitUse(n *ast.StmtTraitUse) { for _, a := range n.Adaptations { switch aa := a.(type) { case *ast.StmtTraitUsePrecedence: - refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait + refTrait := aa.Trait if refTrait != nil { nsr.ResolveName(refTrait, "") } @@ -196,7 +196,7 @@ func (nsr *NamespaceResolver) StmtTraitUse(n *ast.StmtTraitUse) { } case *ast.StmtTraitUseAlias: - refTrait := aa.Ref.(*ast.StmtTraitMethodRef).Trait + refTrait := aa.Trait if refTrait != nil { nsr.ResolveName(refTrait, "") } diff --git a/pkg/ast/visitor/namespace_resolver_test.go b/pkg/ast/visitor/namespace_resolver_test.go index 8d7d5cb..5ff03db 100644 --- a/pkg/ast/visitor/namespace_resolver_test.go +++ b/pkg/ast/visitor/namespace_resolver_test.go @@ -356,18 +356,14 @@ func TestResolveTraitUse(t *testing.T) { }, Adaptations: []ast.Vertex{ &ast.StmtTraitUsePrecedence{ - Ref: &ast.StmtTraitMethodRef{ - Trait: fullyQualifiedNameB, - Method: &ast.Identifier{Value: []byte("foo")}, - }, + Trait: fullyQualifiedNameB, + Method: &ast.Identifier{Value: []byte("foo")}, Insteadof: []ast.Vertex{fullyQualifiedNameBC}, }, &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Trait: relativeNameBC, - Method: &ast.Identifier{Value: []byte("foo")}, - }, - Alias: &ast.Identifier{Value: []byte("bar")}, + Trait: relativeNameBC, + Method: &ast.Identifier{Value: []byte("foo")}, + Alias: &ast.Identifier{Value: []byte("bar")}, }, }, }, diff --git a/pkg/ast/visitor/null.go b/pkg/ast/visitor/null.go index a8ca90d..2e15f24 100644 --- a/pkg/ast/visitor/null.go +++ b/pkg/ast/visitor/null.go @@ -194,10 +194,6 @@ func (v *Null) StmtTrait(_ *ast.StmtTrait) { // do nothing } -func (v *Null) StmtTraitMethodRef(_ *ast.StmtTraitMethodRef) { - // do nothing -} - func (v *Null) StmtTraitUse(_ *ast.StmtTraitUse) { // do nothing } diff --git a/pkg/ast/visitor/printer.go b/pkg/ast/visitor/printer.go index 88fffed..92e6e9b 100644 --- a/pkg/ast/visitor/printer.go +++ b/pkg/ast/visitor/printer.go @@ -518,12 +518,6 @@ func (p *printer) StmtTrait(n *ast.StmtTrait) { p.printToken(n.CloseCurlyBracketTkn, []byte("}")) } -func (p *printer) StmtTraitMethodRef(n *ast.StmtTraitMethodRef) { - p.printNode(n.Trait) - p.printToken(n.DoubleColonTkn, p.ifNode(n.Trait, []byte("::"))) - p.printNode(n.Method) -} - func (p *printer) StmtTraitUse(n *ast.StmtTraitUse) { p.printToken(n.UseTkn, []byte("use")) p.printSeparatedList(n.Traits, n.SeparatorTkns, []byte(",")) @@ -534,7 +528,9 @@ func (p *printer) StmtTraitUse(n *ast.StmtTraitUse) { } func (p *printer) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { - p.printNode(n.Ref) + p.printNode(n.Trait) + p.printToken(n.DoubleColonTkn, p.ifNode(n.Trait, []byte("::"))) + p.printNode(n.Method) p.printToken(n.AsTkn, []byte("as")) p.printNode(n.Modifier) p.printNode(n.Alias) @@ -542,7 +538,9 @@ func (p *printer) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { } func (p *printer) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { - p.printNode(n.Ref) + p.printNode(n.Trait) + p.printToken(n.DoubleColonTkn, p.ifNode(n.Trait, []byte("::"))) + p.printNode(n.Method) p.printToken(n.InsteadofTkn, []byte("insteadof")) p.printSeparatedList(n.Insteadof, n.SeparatorTkns, []byte(",")) p.printToken(n.SemiColonTkn, []byte(";")) diff --git a/pkg/ast/visitor/printer_test.go b/pkg/ast/visitor/printer_test.go index 7735a52..9eb41f5 100644 --- a/pkg/ast/visitor/printer_test.go +++ b/pkg/ast/visitor/printer_test.go @@ -4452,50 +4452,13 @@ func TestPrinterPrintStmtThrow(t *testing.T) { } } -func TestPrinterPrintStmtTraitMethodRef(t *testing.T) { - o := bytes.NewBufferString("") - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n := &ast.StmtTraitMethodRef{ - Method: &ast.Identifier{Value: []byte("a")}, - } - n.Accept(p) - - expected := `a` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - -func TestPrinterPrintStmtTraitMethodRefFull(t *testing.T) { - o := bytes.NewBufferString("") - - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) - n := &ast.StmtTraitMethodRef{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Method: &ast.Identifier{Value: []byte("a")}, - } - n.Accept(p) - - expected := `Foo::a` - actual := o.String() - - if expected != actual { - t.Errorf("\nexpected: %s\ngot: %s\n", expected, actual) - } -} - func TestPrinterPrintStmtTraitUseAlias(t *testing.T) { o := bytes.NewBufferString("") p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n := &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Method: &ast.Identifier{Value: []byte("a")}, - }, + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, Modifier: &ast.Identifier{Value: []byte("public")}, Alias: &ast.Identifier{Value: []byte("b")}, } @@ -4514,10 +4477,8 @@ func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) n := &ast.StmtTraitUsePrecedence{ - Ref: &ast.StmtTraitMethodRef{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Method: &ast.Identifier{Value: []byte("a")}, - }, + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, Insteadof: []ast.Vertex{ &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, @@ -4564,11 +4525,9 @@ func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { }, Adaptations: []ast.Vertex{ &ast.StmtTraitUseAlias{ - Ref: &ast.StmtTraitMethodRef{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - Method: &ast.Identifier{Value: []byte("a")}, - }, - Alias: &ast.Identifier{Value: []byte("b")}, + Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Method: &ast.Identifier{Value: []byte("a")}, + Alias: &ast.Identifier{Value: []byte("b")}, }, }, } From bd479007be360c588a51e531f7d309f4ced77e16 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 28 Dec 2020 21:13:08 +0200 Subject: [PATCH 136/140] refactoring: update traverser --- cmd/php-parser/main.go | 15 +- pkg/ast/ast.go | 14 +- pkg/ast/node.go | 322 +-- pkg/ast/traverser/dfs.go | 2533 ----------------- pkg/{ast/visitor => visitor/dumper}/dumper.go | 2 +- .../visitor => visitor/dumper}/dumper_test.go | 6 +- .../formatter}/formatter.go | 2 +- .../formatter}/formatter_test.go | 913 +++--- .../nsresolver}/namespace_resolver.go | 5 +- .../nsresolver}/namespace_resolver_test.go | 121 +- pkg/{ast => }/visitor/null.go | 0 .../visitor => visitor/printer}/printer.go | 2 +- .../printer}/printer_php5_test.go | 6 +- .../printer}/printer_php7_test.go | 8 +- .../printer}/printer_test.go | 388 +-- pkg/visitor/traverser/traverser.go | 1164 ++++++++ 16 files changed, 2050 insertions(+), 3451 deletions(-) delete mode 100644 pkg/ast/traverser/dfs.go rename pkg/{ast/visitor => visitor/dumper}/dumper.go (99%) rename pkg/{ast/visitor => visitor/dumper}/dumper_test.go (90%) rename pkg/{ast/visitor => visitor/formatter}/formatter.go (99%) rename pkg/{ast/visitor => visitor/formatter}/formatter_test.go (75%) rename pkg/{ast/visitor => visitor/nsresolver}/namespace_resolver.go (99%) rename pkg/{ast/visitor => visitor/nsresolver}/namespace_resolver_test.go (88%) rename pkg/{ast => }/visitor/null.go (100%) rename pkg/{ast/visitor => visitor/printer}/printer.go (99%) rename pkg/{ast/visitor => visitor/printer}/printer_php5_test.go (99%) rename pkg/{ast/visitor => visitor/printer}/printer_php7_test.go (99%) rename pkg/{ast/visitor => visitor/printer}/printer_test.go (88%) create mode 100644 pkg/visitor/traverser/traverser.go diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index 13d8734..a94d348 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -3,6 +3,10 @@ package main import ( "bytes" "flag" + "github.com/z7zmey/php-parser/pkg/visitor/dumper" + "github.com/z7zmey/php-parser/pkg/visitor/nsresolver" + "github.com/z7zmey/php-parser/pkg/visitor/printer" + "github.com/z7zmey/php-parser/pkg/visitor/traverser" "io" "io/ioutil" "log" @@ -17,8 +21,6 @@ import ( "github.com/yookoala/realpath" "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/traverser" - "github.com/z7zmey/php-parser/pkg/ast/visitor" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/parser" ) @@ -165,7 +167,7 @@ func printerWorker(r <-chan result) { if *printBack { o := bytes.NewBuffer([]byte{}) - p := visitor.NewPrinter(o) + p := printer.NewPrinter(o) res.rootNode.Accept(p) err := ioutil.WriteFile(res.path, o.Bytes(), 0644) @@ -173,16 +175,15 @@ func printerWorker(r <-chan result) { } if *showResolvedNs { - v := visitor.NewNamespaceResolver() - t := traverser.NewDFS(v) - t.Traverse(res.rootNode) + v := nsresolver.NewNamespaceResolver() + traverser.NewTraverser(v).Traverse(res.rootNode) for _, n := range v.ResolvedNames { _, _ = io.WriteString(os.Stderr, "===> "+n+"\n") } } if *dump == true { - visitor.NewDumper(os.Stdout).WithPositions().WithTokens().Dump(res.rootNode) + dumper.NewDumper(os.Stdout).WithPositions().WithTokens().Dump(res.rootNode) } wg.Done() diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index fb5b351..261001f 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -3,23 +3,11 @@ package ast import "github.com/z7zmey/php-parser/pkg/position" type Vertex interface { - Accept(v NodeVisitor) + Accept(v Visitor) GetPosition() *position.Position } -type Traverser interface { - Traverse(n Vertex) -} - type Visitor interface { - Enter(key string, singleNode bool) - Leave(key string, singleNode bool) - - EnterNode(n Vertex) bool - LeaveNode(n Vertex) -} - -type NodeVisitor interface { Root(n *Root) Nullable(n *Nullable) Parameter(n *Parameter) diff --git a/pkg/ast/node.go b/pkg/ast/node.go index e97fc87..043c404 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -12,7 +12,7 @@ type Root struct { EndTkn *token.Token } -func (n *Root) Accept(v NodeVisitor) { +func (n *Root) Accept(v Visitor) { v.Root(n) } @@ -27,7 +27,7 @@ type Nullable struct { Expr Vertex } -func (n *Nullable) Accept(v NodeVisitor) { +func (n *Nullable) Accept(v Visitor) { v.Nullable(n) } @@ -46,7 +46,7 @@ type Parameter struct { DefaultValue Vertex } -func (n *Parameter) Accept(v NodeVisitor) { +func (n *Parameter) Accept(v Visitor) { v.Parameter(n) } @@ -61,7 +61,7 @@ type Identifier struct { Value []byte } -func (n *Identifier) Accept(v NodeVisitor) { +func (n *Identifier) Accept(v Visitor) { v.Identifier(n) } @@ -77,7 +77,7 @@ type Argument struct { Expr Vertex } -func (n *Argument) Accept(v NodeVisitor) { +func (n *Argument) Accept(v Visitor) { v.Argument(n) } @@ -92,7 +92,7 @@ type ScalarDnumber struct { Value []byte } -func (n *ScalarDnumber) Accept(v NodeVisitor) { +func (n *ScalarDnumber) Accept(v Visitor) { v.ScalarDnumber(n) } @@ -108,7 +108,7 @@ type ScalarEncapsed struct { CloseQuoteTkn *token.Token } -func (n *ScalarEncapsed) Accept(v NodeVisitor) { +func (n *ScalarEncapsed) Accept(v Visitor) { v.ScalarEncapsed(n) } @@ -123,7 +123,7 @@ type ScalarEncapsedStringPart struct { Value []byte } -func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) { +func (n *ScalarEncapsedStringPart) Accept(v Visitor) { v.ScalarEncapsedStringPart(n) } @@ -142,7 +142,7 @@ type ScalarEncapsedStringVar struct { CloseCurlyBracketTkn *token.Token } -func (n *ScalarEncapsedStringVar) Accept(v NodeVisitor) { +func (n *ScalarEncapsedStringVar) Accept(v Visitor) { v.ScalarEncapsedStringVar(n) } @@ -158,7 +158,7 @@ type ScalarEncapsedStringBrackets struct { CloseCurlyBracketTkn *token.Token } -func (n *ScalarEncapsedStringBrackets) Accept(v NodeVisitor) { +func (n *ScalarEncapsedStringBrackets) Accept(v Visitor) { v.ScalarEncapsedStringBrackets(n) } @@ -174,7 +174,7 @@ type ScalarHeredoc struct { CloseHeredocTkn *token.Token } -func (n *ScalarHeredoc) Accept(v NodeVisitor) { +func (n *ScalarHeredoc) Accept(v Visitor) { v.ScalarHeredoc(n) } @@ -189,7 +189,7 @@ type ScalarLnumber struct { Value []byte } -func (n *ScalarLnumber) Accept(v NodeVisitor) { +func (n *ScalarLnumber) Accept(v Visitor) { v.ScalarLnumber(n) } @@ -204,7 +204,7 @@ type ScalarMagicConstant struct { Value []byte } -func (n *ScalarMagicConstant) Accept(v NodeVisitor) { +func (n *ScalarMagicConstant) Accept(v Visitor) { v.ScalarMagicConstant(n) } @@ -220,7 +220,7 @@ type ScalarString struct { Value []byte } -func (n *ScalarString) Accept(v NodeVisitor) { +func (n *ScalarString) Accept(v Visitor) { v.ScalarString(n) } @@ -236,7 +236,7 @@ type StmtBreak struct { SemiColonTkn *token.Token } -func (n *StmtBreak) Accept(v NodeVisitor) { +func (n *StmtBreak) Accept(v Visitor) { v.StmtBreak(n) } @@ -253,7 +253,7 @@ type StmtCase struct { Stmts []Vertex } -func (n *StmtCase) Accept(v NodeVisitor) { +func (n *StmtCase) Accept(v Visitor) { v.StmtCase(n) } @@ -275,7 +275,7 @@ type StmtCatch struct { CloseCurlyBracketTkn *token.Token } -func (n *StmtCatch) Accept(v NodeVisitor) { +func (n *StmtCatch) Accept(v Visitor) { v.StmtCatch(n) } @@ -303,7 +303,7 @@ type StmtClass struct { CloseCurlyBracketTkn *token.Token } -func (n *StmtClass) Accept(v NodeVisitor) { +func (n *StmtClass) Accept(v Visitor) { v.StmtClass(n) } @@ -321,7 +321,7 @@ type StmtClassConstList struct { SemiColonTkn *token.Token } -func (n *StmtClassConstList) Accept(v NodeVisitor) { +func (n *StmtClassConstList) Accept(v Visitor) { v.StmtClassConstList(n) } @@ -345,7 +345,7 @@ type StmtClassMethod struct { Stmt Vertex } -func (n *StmtClassMethod) Accept(v NodeVisitor) { +func (n *StmtClassMethod) Accept(v Visitor) { v.StmtClassMethod(n) } @@ -362,7 +362,7 @@ type StmtConstList struct { SemiColonTkn *token.Token } -func (n *StmtConstList) Accept(v NodeVisitor) { +func (n *StmtConstList) Accept(v Visitor) { v.StmtConstList(n) } @@ -378,7 +378,7 @@ type StmtConstant struct { Expr Vertex } -func (n *StmtConstant) Accept(v NodeVisitor) { +func (n *StmtConstant) Accept(v Visitor) { v.StmtConstant(n) } @@ -394,7 +394,7 @@ type StmtContinue struct { SemiColonTkn *token.Token } -func (n *StmtContinue) Accept(v NodeVisitor) { +func (n *StmtContinue) Accept(v Visitor) { v.StmtContinue(n) } @@ -416,7 +416,7 @@ type StmtDeclare struct { SemiColonTkn *token.Token } -func (n *StmtDeclare) Accept(v NodeVisitor) { +func (n *StmtDeclare) Accept(v Visitor) { v.StmtDeclare(n) } @@ -432,7 +432,7 @@ type StmtDefault struct { Stmts []Vertex } -func (n *StmtDefault) Accept(v NodeVisitor) { +func (n *StmtDefault) Accept(v Visitor) { v.StmtDefault(n) } @@ -452,7 +452,7 @@ type StmtDo struct { SemiColonTkn *token.Token } -func (n *StmtDo) Accept(v NodeVisitor) { +func (n *StmtDo) Accept(v Visitor) { v.StmtDo(n) } @@ -469,7 +469,7 @@ type StmtEcho struct { SemiColonTkn *token.Token } -func (n *StmtEcho) Accept(v NodeVisitor) { +func (n *StmtEcho) Accept(v Visitor) { v.StmtEcho(n) } @@ -485,7 +485,7 @@ type StmtElse struct { Stmt Vertex } -func (n *StmtElse) Accept(v NodeVisitor) { +func (n *StmtElse) Accept(v Visitor) { v.StmtElse(n) } @@ -504,7 +504,7 @@ type StmtElseIf struct { Stmt Vertex } -func (n *StmtElseIf) Accept(v NodeVisitor) { +func (n *StmtElseIf) Accept(v Visitor) { v.StmtElseIf(n) } @@ -519,7 +519,7 @@ type StmtExpression struct { SemiColonTkn *token.Token } -func (n *StmtExpression) Accept(v NodeVisitor) { +func (n *StmtExpression) Accept(v Visitor) { v.StmtExpression(n) } @@ -536,7 +536,7 @@ type StmtFinally struct { CloseCurlyBracketTkn *token.Token } -func (n *StmtFinally) Accept(v NodeVisitor) { +func (n *StmtFinally) Accept(v Visitor) { v.StmtFinally(n) } @@ -564,7 +564,7 @@ type StmtFor struct { SemiColonTkn *token.Token } -func (n *StmtFor) Accept(v NodeVisitor) { +func (n *StmtFor) Accept(v Visitor) { v.StmtFor(n) } @@ -590,7 +590,7 @@ type StmtForeach struct { SemiColonTkn *token.Token } -func (n *StmtForeach) Accept(v NodeVisitor) { +func (n *StmtForeach) Accept(v Visitor) { v.StmtForeach(n) } @@ -615,7 +615,7 @@ type StmtFunction struct { CloseCurlyBracketTkn *token.Token } -func (n *StmtFunction) Accept(v NodeVisitor) { +func (n *StmtFunction) Accept(v Visitor) { v.StmtFunction(n) } @@ -632,7 +632,7 @@ type StmtGlobal struct { SemiColonTkn *token.Token } -func (n *StmtGlobal) Accept(v NodeVisitor) { +func (n *StmtGlobal) Accept(v Visitor) { v.StmtGlobal(n) } @@ -648,7 +648,7 @@ type StmtGoto struct { SemiColonTkn *token.Token } -func (n *StmtGoto) Accept(v NodeVisitor) { +func (n *StmtGoto) Accept(v Visitor) { v.StmtGoto(n) } @@ -665,7 +665,7 @@ type StmtHaltCompiler struct { SemiColonTkn *token.Token } -func (n *StmtHaltCompiler) Accept(v NodeVisitor) { +func (n *StmtHaltCompiler) Accept(v Visitor) { v.StmtHaltCompiler(n) } @@ -688,7 +688,7 @@ type StmtIf struct { SemiColonTkn *token.Token } -func (n *StmtIf) Accept(v NodeVisitor) { +func (n *StmtIf) Accept(v Visitor) { v.StmtIf(n) } @@ -703,7 +703,7 @@ type StmtInlineHtml struct { Value []byte } -func (n *StmtInlineHtml) Accept(v NodeVisitor) { +func (n *StmtInlineHtml) Accept(v Visitor) { v.StmtInlineHtml(n) } @@ -724,7 +724,7 @@ type StmtInterface struct { CloseCurlyBracketTkn *token.Token } -func (n *StmtInterface) Accept(v NodeVisitor) { +func (n *StmtInterface) Accept(v Visitor) { v.StmtInterface(n) } @@ -739,7 +739,7 @@ type StmtLabel struct { ColonTkn *token.Token } -func (n *StmtLabel) Accept(v NodeVisitor) { +func (n *StmtLabel) Accept(v Visitor) { v.StmtLabel(n) } @@ -758,7 +758,7 @@ type StmtNamespace struct { SemiColonTkn *token.Token } -func (n *StmtNamespace) Accept(v NodeVisitor) { +func (n *StmtNamespace) Accept(v Visitor) { v.StmtNamespace(n) } @@ -772,7 +772,7 @@ type StmtNop struct { SemiColonTkn *token.Token } -func (n *StmtNop) Accept(v NodeVisitor) { +func (n *StmtNop) Accept(v Visitor) { v.StmtNop(n) } @@ -788,7 +788,7 @@ type StmtProperty struct { Expr Vertex } -func (n *StmtProperty) Accept(v NodeVisitor) { +func (n *StmtProperty) Accept(v Visitor) { v.StmtProperty(n) } @@ -806,7 +806,7 @@ type StmtPropertyList struct { SemiColonTkn *token.Token } -func (n *StmtPropertyList) Accept(v NodeVisitor) { +func (n *StmtPropertyList) Accept(v Visitor) { v.StmtPropertyList(n) } @@ -822,7 +822,7 @@ type StmtReturn struct { SemiColonTkn *token.Token } -func (n *StmtReturn) Accept(v NodeVisitor) { +func (n *StmtReturn) Accept(v Visitor) { v.StmtReturn(n) } @@ -839,7 +839,7 @@ type StmtStatic struct { SemiColonTkn *token.Token } -func (n *StmtStatic) Accept(v NodeVisitor) { +func (n *StmtStatic) Accept(v Visitor) { v.StmtStatic(n) } @@ -855,7 +855,7 @@ type StmtStaticVar struct { Expr Vertex } -func (n *StmtStaticVar) Accept(v NodeVisitor) { +func (n *StmtStaticVar) Accept(v Visitor) { v.StmtStaticVar(n) } @@ -871,7 +871,7 @@ type StmtStmtList struct { CloseCurlyBracketTkn *token.Token } -func (n *StmtStmtList) Accept(v NodeVisitor) { +func (n *StmtStmtList) Accept(v Visitor) { v.StmtStmtList(n) } @@ -895,7 +895,7 @@ type StmtSwitch struct { SemiColonTkn *token.Token } -func (n *StmtSwitch) Accept(v NodeVisitor) { +func (n *StmtSwitch) Accept(v Visitor) { v.StmtSwitch(n) } @@ -911,7 +911,7 @@ type StmtThrow struct { SemiColonTkn *token.Token } -func (n *StmtThrow) Accept(v NodeVisitor) { +func (n *StmtThrow) Accept(v Visitor) { v.StmtThrow(n) } @@ -929,7 +929,7 @@ type StmtTrait struct { CloseCurlyBracketTkn *token.Token } -func (n *StmtTrait) Accept(v NodeVisitor) { +func (n *StmtTrait) Accept(v Visitor) { v.StmtTrait(n) } @@ -949,7 +949,7 @@ type StmtTraitUse struct { SemiColonTkn *token.Token } -func (n *StmtTraitUse) Accept(v NodeVisitor) { +func (n *StmtTraitUse) Accept(v Visitor) { v.StmtTraitUse(n) } @@ -969,7 +969,7 @@ type StmtTraitUseAlias struct { SemiColonTkn *token.Token } -func (n *StmtTraitUseAlias) Accept(v NodeVisitor) { +func (n *StmtTraitUseAlias) Accept(v Visitor) { v.StmtTraitUseAlias(n) } @@ -989,7 +989,7 @@ type StmtTraitUsePrecedence struct { SemiColonTkn *token.Token } -func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) { +func (n *StmtTraitUsePrecedence) Accept(v Visitor) { v.StmtTraitUsePrecedence(n) } @@ -1008,7 +1008,7 @@ type StmtTry struct { Finally Vertex } -func (n *StmtTry) Accept(v NodeVisitor) { +func (n *StmtTry) Accept(v Visitor) { v.StmtTry(n) } @@ -1027,7 +1027,7 @@ type StmtUnset struct { SemiColonTkn *token.Token } -func (n *StmtUnset) Accept(v NodeVisitor) { +func (n *StmtUnset) Accept(v Visitor) { v.StmtUnset(n) } @@ -1045,7 +1045,7 @@ type StmtUse struct { SemiColonTkn *token.Token } -func (n *StmtUse) Accept(v NodeVisitor) { +func (n *StmtUse) Accept(v Visitor) { v.StmtUse(n) } @@ -1068,7 +1068,7 @@ type StmtGroupUse struct { SemiColonTkn *token.Token } -func (n *StmtGroupUse) Accept(v NodeVisitor) { +func (n *StmtGroupUse) Accept(v Visitor) { v.StmtGroupUse(n) } @@ -1086,7 +1086,7 @@ type StmtUseDeclaration struct { Alias Vertex } -func (n *StmtUseDeclaration) Accept(v NodeVisitor) { +func (n *StmtUseDeclaration) Accept(v Visitor) { v.StmtUseDeclaration(n) } @@ -1107,7 +1107,7 @@ type StmtWhile struct { SemiColonTkn *token.Token } -func (n *StmtWhile) Accept(v NodeVisitor) { +func (n *StmtWhile) Accept(v Visitor) { v.StmtWhile(n) } @@ -1125,7 +1125,7 @@ type ExprArray struct { CloseBracketTkn *token.Token } -func (n *ExprArray) Accept(v NodeVisitor) { +func (n *ExprArray) Accept(v Visitor) { v.ExprArray(n) } @@ -1142,7 +1142,7 @@ type ExprArrayDimFetch struct { CloseBracketTkn *token.Token } -func (n *ExprArrayDimFetch) Accept(v NodeVisitor) { +func (n *ExprArrayDimFetch) Accept(v Visitor) { v.ExprArrayDimFetch(n) } @@ -1160,7 +1160,7 @@ type ExprArrayItem struct { Val Vertex } -func (n *ExprArrayItem) Accept(v NodeVisitor) { +func (n *ExprArrayItem) Accept(v Visitor) { v.ExprArrayItem(n) } @@ -1184,7 +1184,7 @@ type ExprArrowFunction struct { Expr Vertex } -func (n *ExprArrowFunction) Accept(v NodeVisitor) { +func (n *ExprArrowFunction) Accept(v Visitor) { v.ExprArrowFunction(n) } @@ -1199,7 +1199,7 @@ type ExprBitwiseNot struct { Expr Vertex } -func (n *ExprBitwiseNot) Accept(v NodeVisitor) { +func (n *ExprBitwiseNot) Accept(v Visitor) { v.ExprBitwiseNot(n) } @@ -1214,7 +1214,7 @@ type ExprBooleanNot struct { Expr Vertex } -func (n *ExprBooleanNot) Accept(v NodeVisitor) { +func (n *ExprBooleanNot) Accept(v Visitor) { v.ExprBooleanNot(n) } @@ -1229,7 +1229,7 @@ type ExprBrackets struct { CloseParenthesisTkn *token.Token } -func (n *ExprBrackets) Accept(v NodeVisitor) { +func (n *ExprBrackets) Accept(v Visitor) { v.ExprBrackets(n) } @@ -1245,7 +1245,7 @@ type ExprClassConstFetch struct { ConstantName Vertex } -func (n *ExprClassConstFetch) Accept(v NodeVisitor) { +func (n *ExprClassConstFetch) Accept(v Visitor) { v.ExprClassConstFetch(n) } @@ -1260,7 +1260,7 @@ type ExprClone struct { Expr Vertex } -func (n *ExprClone) Accept(v NodeVisitor) { +func (n *ExprClone) Accept(v Visitor) { v.ExprClone(n) } @@ -1290,7 +1290,7 @@ type ExprClosure struct { CloseCurlyBracketTkn *token.Token } -func (n *ExprClosure) Accept(v NodeVisitor) { +func (n *ExprClosure) Accept(v Visitor) { v.ExprClosure(n) } @@ -1305,7 +1305,7 @@ type ExprClosureUse struct { Var Vertex } -func (n *ExprClosureUse) Accept(v NodeVisitor) { +func (n *ExprClosureUse) Accept(v Visitor) { v.ExprClosureUse(n) } @@ -1319,7 +1319,7 @@ type ExprConstFetch struct { Const Vertex } -func (n *ExprConstFetch) Accept(v NodeVisitor) { +func (n *ExprConstFetch) Accept(v Visitor) { v.ExprConstFetch(n) } @@ -1336,7 +1336,7 @@ type ExprEmpty struct { CloseParenthesisTkn *token.Token } -func (n *ExprEmpty) Accept(v NodeVisitor) { +func (n *ExprEmpty) Accept(v Visitor) { v.ExprEmpty(n) } @@ -1351,7 +1351,7 @@ type ExprErrorSuppress struct { Expr Vertex } -func (n *ExprErrorSuppress) Accept(v NodeVisitor) { +func (n *ExprErrorSuppress) Accept(v Visitor) { v.ExprErrorSuppress(n) } @@ -1368,7 +1368,7 @@ type ExprEval struct { CloseParenthesisTkn *token.Token } -func (n *ExprEval) Accept(v NodeVisitor) { +func (n *ExprEval) Accept(v Visitor) { v.ExprEval(n) } @@ -1385,7 +1385,7 @@ type ExprExit struct { CloseParenthesisTkn *token.Token } -func (n *ExprExit) Accept(v NodeVisitor) { +func (n *ExprExit) Accept(v Visitor) { v.ExprExit(n) } @@ -1403,7 +1403,7 @@ type ExprFunctionCall struct { CloseParenthesisTkn *token.Token } -func (n *ExprFunctionCall) Accept(v NodeVisitor) { +func (n *ExprFunctionCall) Accept(v Visitor) { v.ExprFunctionCall(n) } @@ -1418,7 +1418,7 @@ type ExprInclude struct { Expr Vertex } -func (n *ExprInclude) Accept(v NodeVisitor) { +func (n *ExprInclude) Accept(v Visitor) { v.ExprInclude(n) } @@ -1433,7 +1433,7 @@ type ExprIncludeOnce struct { Expr Vertex } -func (n *ExprIncludeOnce) Accept(v NodeVisitor) { +func (n *ExprIncludeOnce) Accept(v Visitor) { v.ExprIncludeOnce(n) } @@ -1449,7 +1449,7 @@ type ExprInstanceOf struct { Class Vertex } -func (n *ExprInstanceOf) Accept(v NodeVisitor) { +func (n *ExprInstanceOf) Accept(v Visitor) { v.ExprInstanceOf(n) } @@ -1467,7 +1467,7 @@ type ExprIsset struct { CloseParenthesisTkn *token.Token } -func (n *ExprIsset) Accept(v NodeVisitor) { +func (n *ExprIsset) Accept(v Visitor) { v.ExprIsset(n) } @@ -1485,7 +1485,7 @@ type ExprList struct { CloseBracketTkn *token.Token } -func (n *ExprList) Accept(v NodeVisitor) { +func (n *ExprList) Accept(v Visitor) { v.ExprList(n) } @@ -1507,7 +1507,7 @@ type ExprMethodCall struct { CloseParenthesisTkn *token.Token } -func (n *ExprMethodCall) Accept(v NodeVisitor) { +func (n *ExprMethodCall) Accept(v Visitor) { v.ExprMethodCall(n) } @@ -1526,7 +1526,7 @@ type ExprNew struct { CloseParenthesisTkn *token.Token } -func (n *ExprNew) Accept(v NodeVisitor) { +func (n *ExprNew) Accept(v Visitor) { v.ExprNew(n) } @@ -1541,7 +1541,7 @@ type ExprPostDec struct { DecTkn *token.Token } -func (n *ExprPostDec) Accept(v NodeVisitor) { +func (n *ExprPostDec) Accept(v Visitor) { v.ExprPostDec(n) } @@ -1556,7 +1556,7 @@ type ExprPostInc struct { IncTkn *token.Token } -func (n *ExprPostInc) Accept(v NodeVisitor) { +func (n *ExprPostInc) Accept(v Visitor) { v.ExprPostInc(n) } @@ -1571,7 +1571,7 @@ type ExprPreDec struct { Var Vertex } -func (n *ExprPreDec) Accept(v NodeVisitor) { +func (n *ExprPreDec) Accept(v Visitor) { v.ExprPreDec(n) } @@ -1586,7 +1586,7 @@ type ExprPreInc struct { Var Vertex } -func (n *ExprPreInc) Accept(v NodeVisitor) { +func (n *ExprPreInc) Accept(v Visitor) { v.ExprPreInc(n) } @@ -1601,7 +1601,7 @@ type ExprPrint struct { Expr Vertex } -func (n *ExprPrint) Accept(v NodeVisitor) { +func (n *ExprPrint) Accept(v Visitor) { v.ExprPrint(n) } @@ -1619,7 +1619,7 @@ type ExprPropertyFetch struct { CloseCurlyBracketTkn *token.Token } -func (n *ExprPropertyFetch) Accept(v NodeVisitor) { +func (n *ExprPropertyFetch) Accept(v Visitor) { v.ExprPropertyFetch(n) } @@ -1634,7 +1634,7 @@ type ExprRequire struct { Expr Vertex } -func (n *ExprRequire) Accept(v NodeVisitor) { +func (n *ExprRequire) Accept(v Visitor) { v.ExprRequire(n) } @@ -1649,7 +1649,7 @@ type ExprRequireOnce struct { Expr Vertex } -func (n *ExprRequireOnce) Accept(v NodeVisitor) { +func (n *ExprRequireOnce) Accept(v Visitor) { v.ExprRequireOnce(n) } @@ -1665,7 +1665,7 @@ type ExprShellExec struct { CloseBacktickTkn *token.Token } -func (n *ExprShellExec) Accept(v NodeVisitor) { +func (n *ExprShellExec) Accept(v Visitor) { v.ExprShellExec(n) } @@ -1687,7 +1687,7 @@ type ExprStaticCall struct { CloseParenthesisTkn *token.Token } -func (n *ExprStaticCall) Accept(v NodeVisitor) { +func (n *ExprStaticCall) Accept(v Visitor) { v.ExprStaticCall(n) } @@ -1703,7 +1703,7 @@ type ExprStaticPropertyFetch struct { Property Vertex } -func (n *ExprStaticPropertyFetch) Accept(v NodeVisitor) { +func (n *ExprStaticPropertyFetch) Accept(v Visitor) { v.ExprStaticPropertyFetch(n) } @@ -1721,7 +1721,7 @@ type ExprTernary struct { IfFalse Vertex } -func (n *ExprTernary) Accept(v NodeVisitor) { +func (n *ExprTernary) Accept(v Visitor) { v.ExprTernary(n) } @@ -1736,7 +1736,7 @@ type ExprUnaryMinus struct { Expr Vertex } -func (n *ExprUnaryMinus) Accept(v NodeVisitor) { +func (n *ExprUnaryMinus) Accept(v Visitor) { v.ExprUnaryMinus(n) } @@ -1751,7 +1751,7 @@ type ExprUnaryPlus struct { Expr Vertex } -func (n *ExprUnaryPlus) Accept(v NodeVisitor) { +func (n *ExprUnaryPlus) Accept(v Visitor) { v.ExprUnaryPlus(n) } @@ -1768,7 +1768,7 @@ type ExprVariable struct { CloseCurlyBracketTkn *token.Token } -func (n *ExprVariable) Accept(v NodeVisitor) { +func (n *ExprVariable) Accept(v Visitor) { v.ExprVariable(n) } @@ -1785,7 +1785,7 @@ type ExprYield struct { Value Vertex } -func (n *ExprYield) Accept(v NodeVisitor) { +func (n *ExprYield) Accept(v Visitor) { v.ExprYield(n) } @@ -1800,7 +1800,7 @@ type ExprYieldFrom struct { Expr Vertex } -func (n *ExprYieldFrom) Accept(v NodeVisitor) { +func (n *ExprYieldFrom) Accept(v Visitor) { v.ExprYieldFrom(n) } @@ -1815,7 +1815,7 @@ type ExprCastArray struct { Expr Vertex } -func (n *ExprCastArray) Accept(v NodeVisitor) { +func (n *ExprCastArray) Accept(v Visitor) { v.ExprCastArray(n) } @@ -1830,7 +1830,7 @@ type ExprCastBool struct { Expr Vertex } -func (n *ExprCastBool) Accept(v NodeVisitor) { +func (n *ExprCastBool) Accept(v Visitor) { v.ExprCastBool(n) } @@ -1845,7 +1845,7 @@ type ExprCastDouble struct { Expr Vertex } -func (n *ExprCastDouble) Accept(v NodeVisitor) { +func (n *ExprCastDouble) Accept(v Visitor) { v.ExprCastDouble(n) } @@ -1860,7 +1860,7 @@ type ExprCastInt struct { Expr Vertex } -func (n *ExprCastInt) Accept(v NodeVisitor) { +func (n *ExprCastInt) Accept(v Visitor) { v.ExprCastInt(n) } @@ -1875,7 +1875,7 @@ type ExprCastObject struct { Expr Vertex } -func (n *ExprCastObject) Accept(v NodeVisitor) { +func (n *ExprCastObject) Accept(v Visitor) { v.ExprCastObject(n) } @@ -1890,7 +1890,7 @@ type ExprCastString struct { Expr Vertex } -func (n *ExprCastString) Accept(v NodeVisitor) { +func (n *ExprCastString) Accept(v Visitor) { v.ExprCastString(n) } @@ -1905,7 +1905,7 @@ type ExprCastUnset struct { Expr Vertex } -func (n *ExprCastUnset) Accept(v NodeVisitor) { +func (n *ExprCastUnset) Accept(v Visitor) { v.ExprCastUnset(n) } @@ -1921,7 +1921,7 @@ type ExprAssign struct { Expr Vertex } -func (n *ExprAssign) Accept(v NodeVisitor) { +func (n *ExprAssign) Accept(v Visitor) { v.ExprAssign(n) } @@ -1938,7 +1938,7 @@ type ExprAssignReference struct { Expr Vertex } -func (n *ExprAssignReference) Accept(v NodeVisitor) { +func (n *ExprAssignReference) Accept(v Visitor) { v.ExprAssignReference(n) } @@ -1954,7 +1954,7 @@ type ExprAssignBitwiseAnd struct { Expr Vertex } -func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) { +func (n *ExprAssignBitwiseAnd) Accept(v Visitor) { v.ExprAssignBitwiseAnd(n) } @@ -1970,7 +1970,7 @@ type ExprAssignBitwiseOr struct { Expr Vertex } -func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) { +func (n *ExprAssignBitwiseOr) Accept(v Visitor) { v.ExprAssignBitwiseOr(n) } @@ -1986,7 +1986,7 @@ type ExprAssignBitwiseXor struct { Expr Vertex } -func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) { +func (n *ExprAssignBitwiseXor) Accept(v Visitor) { v.ExprAssignBitwiseXor(n) } @@ -2002,7 +2002,7 @@ type ExprAssignCoalesce struct { Expr Vertex } -func (n *ExprAssignCoalesce) Accept(v NodeVisitor) { +func (n *ExprAssignCoalesce) Accept(v Visitor) { v.ExprAssignCoalesce(n) } @@ -2018,7 +2018,7 @@ type ExprAssignConcat struct { Expr Vertex } -func (n *ExprAssignConcat) Accept(v NodeVisitor) { +func (n *ExprAssignConcat) Accept(v Visitor) { v.ExprAssignConcat(n) } @@ -2034,7 +2034,7 @@ type ExprAssignDiv struct { Expr Vertex } -func (n *ExprAssignDiv) Accept(v NodeVisitor) { +func (n *ExprAssignDiv) Accept(v Visitor) { v.ExprAssignDiv(n) } @@ -2050,7 +2050,7 @@ type ExprAssignMinus struct { Expr Vertex } -func (n *ExprAssignMinus) Accept(v NodeVisitor) { +func (n *ExprAssignMinus) Accept(v Visitor) { v.ExprAssignMinus(n) } @@ -2066,7 +2066,7 @@ type ExprAssignMod struct { Expr Vertex } -func (n *ExprAssignMod) Accept(v NodeVisitor) { +func (n *ExprAssignMod) Accept(v Visitor) { v.ExprAssignMod(n) } @@ -2082,7 +2082,7 @@ type ExprAssignMul struct { Expr Vertex } -func (n *ExprAssignMul) Accept(v NodeVisitor) { +func (n *ExprAssignMul) Accept(v Visitor) { v.ExprAssignMul(n) } @@ -2098,7 +2098,7 @@ type ExprAssignPlus struct { Expr Vertex } -func (n *ExprAssignPlus) Accept(v NodeVisitor) { +func (n *ExprAssignPlus) Accept(v Visitor) { v.ExprAssignPlus(n) } @@ -2114,7 +2114,7 @@ type ExprAssignPow struct { Expr Vertex } -func (n *ExprAssignPow) Accept(v NodeVisitor) { +func (n *ExprAssignPow) Accept(v Visitor) { v.ExprAssignPow(n) } @@ -2130,7 +2130,7 @@ type ExprAssignShiftLeft struct { Expr Vertex } -func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) { +func (n *ExprAssignShiftLeft) Accept(v Visitor) { v.ExprAssignShiftLeft(n) } @@ -2146,7 +2146,7 @@ type ExprAssignShiftRight struct { Expr Vertex } -func (n *ExprAssignShiftRight) Accept(v NodeVisitor) { +func (n *ExprAssignShiftRight) Accept(v Visitor) { v.ExprAssignShiftRight(n) } @@ -2162,7 +2162,7 @@ type ExprBinaryBitwiseAnd struct { Right Vertex } -func (n *ExprBinaryBitwiseAnd) Accept(v NodeVisitor) { +func (n *ExprBinaryBitwiseAnd) Accept(v Visitor) { v.ExprBinaryBitwiseAnd(n) } @@ -2178,7 +2178,7 @@ type ExprBinaryBitwiseOr struct { Right Vertex } -func (n *ExprBinaryBitwiseOr) Accept(v NodeVisitor) { +func (n *ExprBinaryBitwiseOr) Accept(v Visitor) { v.ExprBinaryBitwiseOr(n) } @@ -2194,7 +2194,7 @@ type ExprBinaryBitwiseXor struct { Right Vertex } -func (n *ExprBinaryBitwiseXor) Accept(v NodeVisitor) { +func (n *ExprBinaryBitwiseXor) Accept(v Visitor) { v.ExprBinaryBitwiseXor(n) } @@ -2210,7 +2210,7 @@ type ExprBinaryBooleanAnd struct { Right Vertex } -func (n *ExprBinaryBooleanAnd) Accept(v NodeVisitor) { +func (n *ExprBinaryBooleanAnd) Accept(v Visitor) { v.ExprBinaryBooleanAnd(n) } @@ -2226,7 +2226,7 @@ type ExprBinaryBooleanOr struct { Right Vertex } -func (n *ExprBinaryBooleanOr) Accept(v NodeVisitor) { +func (n *ExprBinaryBooleanOr) Accept(v Visitor) { v.ExprBinaryBooleanOr(n) } @@ -2242,7 +2242,7 @@ type ExprBinaryCoalesce struct { Right Vertex } -func (n *ExprBinaryCoalesce) Accept(v NodeVisitor) { +func (n *ExprBinaryCoalesce) Accept(v Visitor) { v.ExprBinaryCoalesce(n) } @@ -2258,7 +2258,7 @@ type ExprBinaryConcat struct { Right Vertex } -func (n *ExprBinaryConcat) Accept(v NodeVisitor) { +func (n *ExprBinaryConcat) Accept(v Visitor) { v.ExprBinaryConcat(n) } @@ -2274,7 +2274,7 @@ type ExprBinaryDiv struct { Right Vertex } -func (n *ExprBinaryDiv) Accept(v NodeVisitor) { +func (n *ExprBinaryDiv) Accept(v Visitor) { v.ExprBinaryDiv(n) } @@ -2290,7 +2290,7 @@ type ExprBinaryEqual struct { Right Vertex } -func (n *ExprBinaryEqual) Accept(v NodeVisitor) { +func (n *ExprBinaryEqual) Accept(v Visitor) { v.ExprBinaryEqual(n) } @@ -2306,7 +2306,7 @@ type ExprBinaryGreater struct { Right Vertex } -func (n *ExprBinaryGreater) Accept(v NodeVisitor) { +func (n *ExprBinaryGreater) Accept(v Visitor) { v.ExprBinaryGreater(n) } @@ -2322,7 +2322,7 @@ type ExprBinaryGreaterOrEqual struct { Right Vertex } -func (n *ExprBinaryGreaterOrEqual) Accept(v NodeVisitor) { +func (n *ExprBinaryGreaterOrEqual) Accept(v Visitor) { v.ExprBinaryGreaterOrEqual(n) } @@ -2338,7 +2338,7 @@ type ExprBinaryIdentical struct { Right Vertex } -func (n *ExprBinaryIdentical) Accept(v NodeVisitor) { +func (n *ExprBinaryIdentical) Accept(v Visitor) { v.ExprBinaryIdentical(n) } @@ -2354,7 +2354,7 @@ type ExprBinaryLogicalAnd struct { Right Vertex } -func (n *ExprBinaryLogicalAnd) Accept(v NodeVisitor) { +func (n *ExprBinaryLogicalAnd) Accept(v Visitor) { v.ExprBinaryLogicalAnd(n) } @@ -2370,7 +2370,7 @@ type ExprBinaryLogicalOr struct { Right Vertex } -func (n *ExprBinaryLogicalOr) Accept(v NodeVisitor) { +func (n *ExprBinaryLogicalOr) Accept(v Visitor) { v.ExprBinaryLogicalOr(n) } @@ -2386,7 +2386,7 @@ type ExprBinaryLogicalXor struct { Right Vertex } -func (n *ExprBinaryLogicalXor) Accept(v NodeVisitor) { +func (n *ExprBinaryLogicalXor) Accept(v Visitor) { v.ExprBinaryLogicalXor(n) } @@ -2402,7 +2402,7 @@ type ExprBinaryMinus struct { Right Vertex } -func (n *ExprBinaryMinus) Accept(v NodeVisitor) { +func (n *ExprBinaryMinus) Accept(v Visitor) { v.ExprBinaryMinus(n) } @@ -2418,7 +2418,7 @@ type ExprBinaryMod struct { Right Vertex } -func (n *ExprBinaryMod) Accept(v NodeVisitor) { +func (n *ExprBinaryMod) Accept(v Visitor) { v.ExprBinaryMod(n) } @@ -2434,7 +2434,7 @@ type ExprBinaryMul struct { Right Vertex } -func (n *ExprBinaryMul) Accept(v NodeVisitor) { +func (n *ExprBinaryMul) Accept(v Visitor) { v.ExprBinaryMul(n) } @@ -2450,7 +2450,7 @@ type ExprBinaryNotEqual struct { Right Vertex } -func (n *ExprBinaryNotEqual) Accept(v NodeVisitor) { +func (n *ExprBinaryNotEqual) Accept(v Visitor) { v.ExprBinaryNotEqual(n) } @@ -2466,7 +2466,7 @@ type ExprBinaryNotIdentical struct { Right Vertex } -func (n *ExprBinaryNotIdentical) Accept(v NodeVisitor) { +func (n *ExprBinaryNotIdentical) Accept(v Visitor) { v.ExprBinaryNotIdentical(n) } @@ -2482,7 +2482,7 @@ type ExprBinaryPlus struct { Right Vertex } -func (n *ExprBinaryPlus) Accept(v NodeVisitor) { +func (n *ExprBinaryPlus) Accept(v Visitor) { v.ExprBinaryPlus(n) } @@ -2498,7 +2498,7 @@ type ExprBinaryPow struct { Right Vertex } -func (n *ExprBinaryPow) Accept(v NodeVisitor) { +func (n *ExprBinaryPow) Accept(v Visitor) { v.ExprBinaryPow(n) } @@ -2514,7 +2514,7 @@ type ExprBinaryShiftLeft struct { Right Vertex } -func (n *ExprBinaryShiftLeft) Accept(v NodeVisitor) { +func (n *ExprBinaryShiftLeft) Accept(v Visitor) { v.ExprBinaryShiftLeft(n) } @@ -2530,7 +2530,7 @@ type ExprBinaryShiftRight struct { Right Vertex } -func (n *ExprBinaryShiftRight) Accept(v NodeVisitor) { +func (n *ExprBinaryShiftRight) Accept(v Visitor) { v.ExprBinaryShiftRight(n) } @@ -2546,7 +2546,7 @@ type ExprBinarySmaller struct { Right Vertex } -func (n *ExprBinarySmaller) Accept(v NodeVisitor) { +func (n *ExprBinarySmaller) Accept(v Visitor) { v.ExprBinarySmaller(n) } @@ -2562,7 +2562,7 @@ type ExprBinarySmallerOrEqual struct { Right Vertex } -func (n *ExprBinarySmallerOrEqual) Accept(v NodeVisitor) { +func (n *ExprBinarySmallerOrEqual) Accept(v Visitor) { v.ExprBinarySmallerOrEqual(n) } @@ -2578,7 +2578,7 @@ type ExprBinarySpaceship struct { Right Vertex } -func (n *ExprBinarySpaceship) Accept(v NodeVisitor) { +func (n *ExprBinarySpaceship) Accept(v Visitor) { v.ExprBinarySpaceship(n) } @@ -2592,7 +2592,7 @@ type NameName struct { SeparatorTkns []*token.Token } -func (n *NameName) Accept(v NodeVisitor) { +func (n *NameName) Accept(v Visitor) { v.NameName(n) } @@ -2607,7 +2607,7 @@ type NameFullyQualified struct { SeparatorTkns []*token.Token } -func (n *NameFullyQualified) Accept(v NodeVisitor) { +func (n *NameFullyQualified) Accept(v Visitor) { v.NameFullyQualified(n) } @@ -2623,7 +2623,7 @@ type NameRelative struct { SeparatorTkns []*token.Token } -func (n *NameRelative) Accept(v NodeVisitor) { +func (n *NameRelative) Accept(v Visitor) { v.NameRelative(n) } @@ -2637,7 +2637,7 @@ type NameNamePart struct { Value []byte } -func (n *NameNamePart) Accept(v NodeVisitor) { +func (n *NameNamePart) Accept(v Visitor) { v.NameNamePart(n) } @@ -2654,7 +2654,7 @@ type ParserBrackets struct { CloseBracketTkn *token.Token } -func (n *ParserBrackets) Accept(v NodeVisitor) { +func (n *ParserBrackets) Accept(v Visitor) { // do nothing } @@ -2668,7 +2668,7 @@ type ParserSeparatedList struct { SeparatorTkns []*token.Token } -func (n *ParserSeparatedList) Accept(v NodeVisitor) { +func (n *ParserSeparatedList) Accept(v Visitor) { // do nothing } @@ -2684,7 +2684,7 @@ type TraitAdaptationList struct { CloseCurlyBracketTkn *token.Token } -func (n *TraitAdaptationList) Accept(v NodeVisitor) { +func (n *TraitAdaptationList) Accept(v Visitor) { // do nothing } @@ -2701,7 +2701,7 @@ type ArgumentList struct { CloseParenthesisTkn *token.Token } -func (n *ArgumentList) Accept(v NodeVisitor) { +func (n *ArgumentList) Accept(v Visitor) { // do nothing } @@ -2715,7 +2715,7 @@ type ReturnType struct { Type Vertex } -func (n *ReturnType) Accept(v NodeVisitor) { +func (n *ReturnType) Accept(v Visitor) { // do nothing } @@ -2731,7 +2731,7 @@ type TraitMethodRef struct { Method Vertex } -func (n *TraitMethodRef) Accept(v NodeVisitor) { +func (n *TraitMethodRef) Accept(v Visitor) { // do nothing } diff --git a/pkg/ast/traverser/dfs.go b/pkg/ast/traverser/dfs.go deleted file mode 100644 index 716bb30..0000000 --- a/pkg/ast/traverser/dfs.go +++ /dev/null @@ -1,2533 +0,0 @@ -package traverser - -import "github.com/z7zmey/php-parser/pkg/ast" - -type DFS struct { - visitor ast.Visitor -} - -func NewDFS(visitor ast.Visitor) *DFS { - return &DFS{ - visitor: visitor, - } -} - -func (t *DFS) Traverse(n ast.Vertex) { - switch nn := n.(type) { - case *ast.Root: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.Nullable: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.Parameter: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Type != nil { - t.visitor.Enter("Type", true) - t.Traverse(nn.Type) - t.visitor.Leave("Type", true) - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.DefaultValue != nil { - t.visitor.Enter("DefaultValue", true) - t.Traverse(nn.DefaultValue) - t.visitor.Leave("DefaultValue", true) - } - case *ast.Identifier: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.Argument: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtBreak: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtCase: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtCatch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Types != nil { - t.visitor.Enter("Types", false) - for _, c := range nn.Types { - t.Traverse(c) - } - t.visitor.Leave("Types", false) - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtClass: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.ClassName != nil { - t.visitor.Enter("ClassName", true) - t.Traverse(nn.ClassName) - t.visitor.Leave("ClassName", true) - } - if nn.Modifiers != nil { - t.visitor.Enter("Modifiers", false) - for _, c := range nn.Modifiers { - t.Traverse(c) - } - t.visitor.Leave("Modifiers", false) - } - if nn.Arguments != nil { - t.visitor.Enter("Arguments", false) - for _, c := range nn.Arguments { - t.Traverse(c) - } - t.visitor.Leave("Arguments", false) - } - if nn.Extends != nil { - t.visitor.Enter("Extends", true) - t.Traverse(nn.Extends) - t.visitor.Leave("Extends", true) - } - if nn.Implements != nil { - t.visitor.Enter("Implements", false) - for _, c := range nn.Implements { - t.Traverse(c) - } - t.visitor.Leave("Implements", false) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtClassConstList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Modifiers != nil { - t.visitor.Enter("Modifiers", false) - for _, c := range nn.Modifiers { - t.Traverse(c) - } - t.visitor.Leave("Modifiers", false) - } - if nn.Consts != nil { - t.visitor.Enter("Consts", false) - for _, c := range nn.Consts { - t.Traverse(c) - } - t.visitor.Leave("Consts", false) - } - case *ast.StmtClassMethod: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.MethodName != nil { - t.visitor.Enter("MethodName", true) - t.Traverse(nn.MethodName) - t.visitor.Leave("MethodName", true) - } - if nn.Modifiers != nil { - t.visitor.Enter("Modifiers", false) - for _, c := range nn.Modifiers { - t.Traverse(c) - } - t.visitor.Leave("Modifiers", false) - } - if nn.Params != nil { - t.visitor.Enter("Params", false) - for _, c := range nn.Params { - t.Traverse(c) - } - t.visitor.Leave("Params", false) - } - if nn.ReturnType != nil { - t.visitor.Enter("ReturnType", true) - t.Traverse(nn.ReturnType) - t.visitor.Leave("ReturnType", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.StmtConstList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Consts != nil { - t.visitor.Enter("Consts", false) - for _, c := range nn.Consts { - t.Traverse(c) - } - t.visitor.Leave("Consts", false) - } - case *ast.StmtConstant: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Name != nil { - t.visitor.Enter("Name", true) - t.Traverse(nn.Name) - t.visitor.Leave("Name", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtContinue: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtDeclare: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Consts != nil { - t.visitor.Enter("Consts", false) - for _, c := range nn.Consts { - t.Traverse(c) - } - t.visitor.Leave("Consts", false) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.StmtDefault: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtDo: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - case *ast.StmtEcho: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Exprs != nil { - t.visitor.Enter("Exprs", false) - for _, c := range nn.Exprs { - t.Traverse(c) - } - t.visitor.Leave("Exprs", false) - } - case *ast.StmtElse: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.StmtElseIf: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.StmtExpression: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtFinally: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtFor: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Init != nil { - t.visitor.Enter("Init", false) - for _, c := range nn.Init { - t.Traverse(c) - } - t.visitor.Leave("Init", false) - } - if nn.Cond != nil { - t.visitor.Enter("Cond", false) - for _, c := range nn.Cond { - t.Traverse(c) - } - t.visitor.Leave("Cond", false) - } - if nn.Loop != nil { - t.visitor.Enter("Loop", false) - for _, c := range nn.Loop { - t.Traverse(c) - } - t.visitor.Leave("Loop", false) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.StmtForeach: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - if nn.Key != nil { - t.visitor.Enter("Key", true) - t.Traverse(nn.Key) - t.visitor.Leave("Key", true) - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.StmtFunction: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.FunctionName != nil { - t.visitor.Enter("FunctionName", true) - t.Traverse(nn.FunctionName) - t.visitor.Leave("FunctionName", true) - } - if nn.Params != nil { - t.visitor.Enter("Params", false) - for _, c := range nn.Params { - t.Traverse(c) - } - t.visitor.Leave("Params", false) - } - if nn.ReturnType != nil { - t.visitor.Enter("ReturnType", true) - t.Traverse(nn.ReturnType) - t.visitor.Leave("ReturnType", true) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtGlobal: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Vars != nil { - t.visitor.Enter("Vars", false) - for _, c := range nn.Vars { - t.Traverse(c) - } - t.visitor.Leave("Vars", false) - } - case *ast.StmtGoto: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Label != nil { - t.visitor.Enter("Label", true) - t.Traverse(nn.Label) - t.visitor.Leave("Label", true) - } - case *ast.StmtHaltCompiler: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.StmtIf: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - if nn.ElseIf != nil { - t.visitor.Enter("ElseIf", false) - for _, c := range nn.ElseIf { - t.Traverse(c) - } - t.visitor.Leave("ElseIf", false) - } - if nn.Else != nil { - t.visitor.Enter("Else", true) - t.Traverse(nn.Else) - t.visitor.Leave("Else", true) - } - case *ast.StmtInlineHtml: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.StmtInterface: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.InterfaceName != nil { - t.visitor.Enter("InterfaceName", true) - t.Traverse(nn.InterfaceName) - t.visitor.Leave("InterfaceName", true) - } - if nn.Extends != nil { - t.visitor.Enter("Extends", false) - for _, c := range nn.Extends { - t.Traverse(c) - } - t.visitor.Leave("Extends", false) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtLabel: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.LabelName != nil { - t.visitor.Enter("LabelName", true) - t.Traverse(nn.LabelName) - t.visitor.Leave("LabelName", true) - } - case *ast.StmtNamespace: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Name != nil { - t.visitor.Enter("Name", true) - t.Traverse(nn.Name) - t.visitor.Leave("Name", true) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtNop: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.StmtProperty: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtPropertyList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Modifiers != nil { - t.visitor.Enter("Modifiers", false) - for _, c := range nn.Modifiers { - t.Traverse(c) - } - t.visitor.Leave("Modifiers", false) - } - if nn.Type != nil { - t.visitor.Enter("Type", true) - t.Traverse(nn.Type) - t.visitor.Leave("Type", true) - } - if nn.Properties != nil { - t.visitor.Enter("Properties", false) - for _, c := range nn.Properties { - t.Traverse(c) - } - t.visitor.Leave("Properties", false) - } - case *ast.StmtReturn: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtStatic: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Vars != nil { - t.visitor.Enter("Vars", false) - for _, c := range nn.Vars { - t.Traverse(c) - } - t.visitor.Leave("Vars", false) - } - case *ast.StmtStaticVar: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtStmtList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtSwitch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.CaseList != nil { - t.visitor.Enter("CaseList", false) - for _, c := range nn.CaseList { - t.Traverse(c) - } - t.visitor.Leave("CaseList", false) - } - case *ast.StmtThrow: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.StmtTrait: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.TraitName != nil { - t.visitor.Enter("TraitName", true) - t.Traverse(nn.TraitName) - t.visitor.Leave("TraitName", true) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.StmtTraitUse: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Traits != nil { - t.visitor.Enter("Traits", false) - for _, c := range nn.Traits { - t.Traverse(c) - } - t.visitor.Leave("Traits", false) - } - if nn.Adaptations != nil { - t.visitor.Enter("Adaptations", false) - for _, c := range nn.Adaptations { - t.Traverse(c) - } - t.visitor.Leave("Adaptations", false) - } - case *ast.StmtTraitUseAlias: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Trait != nil { - t.visitor.Enter("Trait", true) - t.Traverse(nn.Trait) - t.visitor.Leave("Trait", true) - } - if nn.Method != nil { - t.visitor.Enter("Method", true) - t.Traverse(nn.Method) - t.visitor.Leave("Method", true) - } - if nn.Modifier != nil { - t.visitor.Enter("Modifier", true) - t.Traverse(nn.Modifier) - t.visitor.Leave("Modifier", true) - } - if nn.Alias != nil { - t.visitor.Enter("Alias", true) - t.Traverse(nn.Alias) - t.visitor.Leave("Alias", true) - } - case *ast.StmtTraitUsePrecedence: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Trait != nil { - t.visitor.Enter("Trait", true) - t.Traverse(nn.Trait) - t.visitor.Leave("Trait", true) - } - if nn.Method != nil { - t.visitor.Enter("Method", true) - t.Traverse(nn.Method) - t.visitor.Leave("Method", true) - } - if nn.Insteadof != nil { - t.visitor.Enter("Insteadof", false) - for _, c := range nn.Insteadof { - t.Traverse(c) - } - t.visitor.Leave("Insteadof", false) - } - case *ast.StmtTry: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - if nn.Catches != nil { - t.visitor.Enter("Catches", false) - for _, c := range nn.Catches { - t.Traverse(c) - } - t.visitor.Leave("Catches", false) - } - if nn.Finally != nil { - t.visitor.Enter("Finally", true) - t.Traverse(nn.Finally) - t.visitor.Leave("Finally", true) - } - case *ast.StmtUnset: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Vars != nil { - t.visitor.Enter("Vars", false) - for _, c := range nn.Vars { - t.Traverse(c) - } - t.visitor.Leave("Vars", false) - } - case *ast.StmtUse: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Type != nil { - t.visitor.Enter("Type", true) - t.Traverse(nn.Type) - t.visitor.Leave("Type", true) - } - if nn.UseDeclarations != nil { - t.visitor.Enter("UseDeclarations", false) - for _, c := range nn.UseDeclarations { - t.Traverse(c) - } - t.visitor.Leave("UseDeclarations", false) - } - case *ast.StmtGroupUse: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Type != nil { - t.visitor.Enter("Type", true) - t.Traverse(nn.Type) - t.visitor.Leave("Type", true) - } - if nn.Prefix != nil { - t.visitor.Enter("Prefix", true) - t.Traverse(nn.Prefix) - t.visitor.Leave("Prefix", true) - } - if nn.UseDeclarations != nil { - t.visitor.Enter("UseDeclarations", false) - for _, c := range nn.UseDeclarations { - t.Traverse(c) - } - t.visitor.Leave("UseDeclarations", false) - } - case *ast.StmtUseDeclaration: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Type != nil { - t.visitor.Enter("Type", true) - t.Traverse(nn.Type) - t.visitor.Leave("Type", true) - } - if nn.Use != nil { - t.visitor.Enter("Use", true) - t.Traverse(nn.Use) - t.visitor.Leave("Use", true) - } - if nn.Alias != nil { - t.visitor.Enter("Alias", true) - t.Traverse(nn.Alias) - t.visitor.Leave("Alias", true) - } - case *ast.StmtWhile: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Cond != nil { - t.visitor.Enter("Cond", true) - t.Traverse(nn.Cond) - t.visitor.Leave("Cond", true) - } - if nn.Stmt != nil { - t.visitor.Enter("Stmt", true) - t.Traverse(nn.Stmt) - t.visitor.Leave("Stmt", true) - } - case *ast.ExprArray: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Items != nil { - t.visitor.Enter("Items", false) - for _, c := range nn.Items { - t.Traverse(c) - } - t.visitor.Leave("Items", false) - } - case *ast.ExprArrayDimFetch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Dim != nil { - t.visitor.Enter("Dim", true) - t.Traverse(nn.Dim) - t.visitor.Leave("Dim", true) - } - case *ast.ExprArrayItem: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Key != nil { - t.visitor.Enter("Key", true) - t.Traverse(nn.Key) - t.visitor.Leave("Key", true) - } - if nn.Val != nil { - t.visitor.Enter("Val", true) - t.Traverse(nn.Val) - t.visitor.Leave("Val", true) - } - case *ast.ExprArrowFunction: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Params != nil { - t.visitor.Enter("Params", false) - for _, c := range nn.Params { - t.Traverse(c) - } - t.visitor.Leave("Params", false) - } - if nn.ReturnType != nil { - t.visitor.Enter("ReturnType", true) - t.Traverse(nn.ReturnType) - t.visitor.Leave("ReturnType", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprBitwiseNot: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprBooleanNot: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprBrackets: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprClassConstFetch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Class != nil { - t.visitor.Enter("Class", true) - t.Traverse(nn.Class) - t.visitor.Leave("Class", true) - } - if nn.ConstantName != nil { - t.visitor.Enter("Name", true) - t.Traverse(nn.ConstantName) - t.visitor.Leave("Name", true) - } - case *ast.ExprClone: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprClosure: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Params != nil { - t.visitor.Enter("Params", false) - for _, c := range nn.Params { - t.Traverse(c) - } - t.visitor.Leave("Params", false) - } - if nn.Use != nil { - t.visitor.Enter("Use", false) - for _, c := range nn.Use { - t.Traverse(c) - } - t.visitor.Leave("Use", false) - } - if nn.ReturnType != nil { - t.visitor.Enter("ReturnType", true) - t.Traverse(nn.ReturnType) - t.visitor.Leave("ReturnType", true) - } - if nn.Stmts != nil { - t.visitor.Enter("Stmts", false) - for _, c := range nn.Stmts { - t.Traverse(c) - } - t.visitor.Leave("Stmts", false) - } - case *ast.ExprClosureUse: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - case *ast.ExprConstFetch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Const != nil { - t.visitor.Enter("Const", true) - t.Traverse(nn.Const) - t.visitor.Leave("Const", true) - } - case *ast.ExprEmpty: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprErrorSuppress: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprEval: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprExit: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprFunctionCall: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Function != nil { - t.visitor.Enter("Function", true) - t.Traverse(nn.Function) - t.visitor.Leave("Function", true) - } - if nn.Arguments != nil { - t.visitor.Enter("Arguments", false) - for _, c := range nn.Arguments { - t.Traverse(c) - } - t.visitor.Leave("Arguments", false) - } - case *ast.ExprInclude: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprIncludeOnce: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprInstanceOf: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - if nn.Class != nil { - t.visitor.Enter("Class", true) - t.Traverse(nn.Class) - t.visitor.Leave("Class", true) - } - case *ast.ExprIsset: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Vars != nil { - t.visitor.Enter("Vars", false) - for _, c := range nn.Vars { - t.Traverse(c) - } - t.visitor.Leave("Vars", false) - } - case *ast.ExprList: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Items != nil { - t.visitor.Enter("Items", false) - for _, c := range nn.Items { - t.Traverse(c) - } - t.visitor.Leave("Items", false) - } - case *ast.ExprMethodCall: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Method != nil { - t.visitor.Enter("Method", true) - t.Traverse(nn.Method) - t.visitor.Leave("Method", true) - } - if nn.Arguments != nil { - t.visitor.Enter("Arguments", false) - for _, c := range nn.Arguments { - t.Traverse(c) - } - t.visitor.Leave("Arguments", false) - } - case *ast.ExprNew: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Class != nil { - t.visitor.Enter("Class", true) - t.Traverse(nn.Class) - t.visitor.Leave("Class", true) - } - if nn.Arguments != nil { - t.visitor.Enter("Arguments", false) - for _, c := range nn.Arguments { - t.Traverse(c) - } - t.visitor.Leave("Arguments", false) - } - case *ast.ExprPostDec: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - case *ast.ExprPostInc: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - case *ast.ExprPreDec: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - case *ast.ExprPreInc: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - case *ast.ExprPrint: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprPropertyFetch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Property != nil { - t.visitor.Enter("Property", true) - t.Traverse(nn.Property) - t.visitor.Leave("Property", true) - } - case *ast.ExprRequire: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprRequireOnce: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprShellExec: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Parts != nil { - t.visitor.Enter("Parts", false) - for _, c := range nn.Parts { - t.Traverse(c) - } - t.visitor.Leave("Parts", false) - } - case *ast.ExprStaticCall: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Class != nil { - t.visitor.Enter("Class", true) - t.Traverse(nn.Class) - t.visitor.Leave("Class", true) - } - if nn.Call != nil { - t.visitor.Enter("Call", true) - t.Traverse(nn.Call) - t.visitor.Leave("Call", true) - } - if nn.Arguments != nil { - t.visitor.Enter("Arguments", false) - for _, c := range nn.Arguments { - t.Traverse(c) - } - t.visitor.Leave("Arguments", false) - } - case *ast.ExprStaticPropertyFetch: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Class != nil { - t.visitor.Enter("Class", true) - t.Traverse(nn.Class) - t.visitor.Leave("Class", true) - } - if nn.Property != nil { - t.visitor.Enter("Property", true) - t.Traverse(nn.Property) - t.visitor.Leave("Property", true) - } - case *ast.ExprTernary: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Condition != nil { - t.visitor.Enter("Condition", true) - t.Traverse(nn.Condition) - t.visitor.Leave("Condition", true) - } - if nn.IfTrue != nil { - t.visitor.Enter("IfTrue", true) - t.Traverse(nn.IfTrue) - t.visitor.Leave("IfTrue", true) - } - if nn.IfFalse != nil { - t.visitor.Enter("IfFalse", true) - t.Traverse(nn.IfFalse) - t.visitor.Leave("IfFalse", true) - } - case *ast.ExprUnaryMinus: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprUnaryPlus: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprVariable: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.VarName != nil { - t.visitor.Enter("VarName", true) - t.Traverse(nn.VarName) - t.visitor.Leave("VarName", true) - } - case *ast.ExprYield: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Key != nil { - t.visitor.Enter("Key", true) - t.Traverse(nn.Key) - t.visitor.Leave("Key", true) - } - if nn.Value != nil { - t.visitor.Enter("Value", true) - t.Traverse(nn.Value) - t.visitor.Leave("Value", true) - } - case *ast.ExprYieldFrom: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssign: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignReference: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignBitwiseAnd: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignBitwiseOr: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignBitwiseXor: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignCoalesce: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignConcat: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignDiv: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignMinus: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignMod: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignMul: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignPlus: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignPow: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignShiftLeft: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprAssignShiftRight: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprBinaryBitwiseAnd: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryBitwiseOr: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryBitwiseXor: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryBooleanAnd: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryBooleanOr: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryCoalesce: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryConcat: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryDiv: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryEqual: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryGreater: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryGreaterOrEqual: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryIdentical: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryLogicalAnd: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryLogicalOr: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryLogicalXor: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryMinus: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryMod: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryMul: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryNotEqual: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryNotIdentical: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryPlus: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryPow: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryShiftLeft: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinaryShiftRight: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinarySmaller: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinarySmallerOrEqual: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprBinarySpaceship: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Left != nil { - t.visitor.Enter("Left", true) - t.Traverse(nn.Left) - t.visitor.Leave("Left", true) - } - if nn.Right != nil { - t.visitor.Enter("Right", true) - t.Traverse(nn.Right) - t.visitor.Leave("Right", true) - } - case *ast.ExprCastArray: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprCastBool: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprCastDouble: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprCastInt: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprCastObject: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprCastString: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ExprCastUnset: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Expr != nil { - t.visitor.Enter("Expr", true) - t.Traverse(nn.Expr) - t.visitor.Leave("Expr", true) - } - case *ast.ScalarDnumber: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.ScalarEncapsed: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Parts != nil { - t.visitor.Enter("Parts", false) - for _, c := range nn.Parts { - t.Traverse(c) - } - t.visitor.Leave("Parts", false) - } - case *ast.ScalarEncapsedStringPart: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.ScalarEncapsedStringVar: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.VarName != nil { - t.visitor.Enter("VarName", true) - t.Traverse(nn.VarName) - t.visitor.Leave("VarName", true) - } - if nn.Dim != nil { - t.visitor.Enter("Dim", true) - t.Traverse(nn.Dim) - t.visitor.Leave("Dim", true) - } - case *ast.ScalarEncapsedStringBrackets: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Var != nil { - t.visitor.Enter("Var", true) - t.Traverse(nn.Var) - t.visitor.Leave("Var", true) - } - case *ast.ScalarHeredoc: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Parts != nil { - t.visitor.Enter("Parts", false) - for _, c := range nn.Parts { - t.Traverse(c) - } - t.visitor.Leave("Parts", false) - } - case *ast.ScalarLnumber: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.ScalarMagicConstant: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.ScalarString: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - case *ast.NameName: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Parts != nil { - t.visitor.Enter("Parts", false) - for _, c := range nn.Parts { - t.Traverse(c) - } - t.visitor.Leave("Parts", false) - } - case *ast.NameFullyQualified: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Parts != nil { - t.visitor.Enter("Parts", false) - for _, c := range nn.Parts { - t.Traverse(c) - } - t.visitor.Leave("Parts", false) - } - case *ast.NameRelative: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - if nn.Parts != nil { - t.visitor.Enter("Parts", false) - for _, c := range nn.Parts { - t.Traverse(c) - } - t.visitor.Leave("Parts", false) - } - case *ast.NameNamePart: - if nn == nil { - return - } - if !t.visitor.EnterNode(nn) { - return - } - default: - panic("unexpected type of node") - } - - t.visitor.LeaveNode(n) -} diff --git a/pkg/ast/visitor/dumper.go b/pkg/visitor/dumper/dumper.go similarity index 99% rename from pkg/ast/visitor/dumper.go rename to pkg/visitor/dumper/dumper.go index 9a7f501..2aa6d0e 100644 --- a/pkg/ast/visitor/dumper.go +++ b/pkg/visitor/dumper/dumper.go @@ -1,4 +1,4 @@ -package visitor +package dumper import ( "github.com/z7zmey/php-parser/pkg/position" diff --git a/pkg/ast/visitor/dumper_test.go b/pkg/visitor/dumper/dumper_test.go similarity index 90% rename from pkg/ast/visitor/dumper_test.go rename to pkg/visitor/dumper/dumper_test.go index c9f3e8c..8c94ac2 100644 --- a/pkg/ast/visitor/dumper_test.go +++ b/pkg/visitor/dumper/dumper_test.go @@ -1,19 +1,19 @@ -package visitor_test +package dumper_test import ( "bytes" "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/pkg/visitor/dumper" "testing" "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/visitor" ) func TestDumper_root(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewDumper(o).WithTokens().WithPositions() + p := dumper.NewDumper(o).WithTokens().WithPositions() n := &ast.Root{ Position: &position.Position{ StartLine: 1, diff --git a/pkg/ast/visitor/formatter.go b/pkg/visitor/formatter/formatter.go similarity index 99% rename from pkg/ast/visitor/formatter.go rename to pkg/visitor/formatter/formatter.go index 757cd49..e6cb6f6 100644 --- a/pkg/ast/visitor/formatter.go +++ b/pkg/visitor/formatter/formatter.go @@ -1,4 +1,4 @@ -package visitor +package formatter import ( "bytes" diff --git a/pkg/ast/visitor/formatter_test.go b/pkg/visitor/formatter/formatter_test.go similarity index 75% rename from pkg/ast/visitor/formatter_test.go rename to pkg/visitor/formatter/formatter_test.go index fc0ede9..a170d89 100644 --- a/pkg/ast/visitor/formatter_test.go +++ b/pkg/visitor/formatter/formatter_test.go @@ -1,12 +1,13 @@ -package visitor_test +package formatter_test import ( "bytes" "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/pkg/visitor/formatter" + "github.com/z7zmey/php-parser/pkg/visitor/printer" "testing" "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/ast/visitor" ) func TestFormatter_Root(t *testing.T) { @@ -18,10 +19,10 @@ func TestFormatter_Root(t *testing.T) { }, } - f := visitor.NewFormatter() + f := formatter.NewFormatter() n.Accept(f) - p := visitor.NewPrinter(o) + p := printer.NewPrinter(o) n.Accept(p) expected := ` $val) { @@ -1397,10 +1398,10 @@ func TestFormatter_StmtFunction(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function foo() { @@ -1426,10 +1427,10 @@ func TestFormatter_StmtFunction_Ref(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function &foo() { @@ -1470,10 +1471,10 @@ func TestFormatter_StmtFunction_Params(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function foo($a, $b) { @@ -1505,10 +1506,10 @@ func TestFormatter_StmtFunction_ReturnType(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function foo(): bar { @@ -1539,10 +1540,10 @@ func TestFormatter_StmtGlobal(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `global $a, $b;` @@ -1562,10 +1563,10 @@ func TestFormatter_StmtGoto(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `goto FOO;` @@ -1581,10 +1582,10 @@ func TestFormatter_StmtHaltCompiler(t *testing.T) { n := &ast.StmtHaltCompiler{} - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `__halt_compiler();` @@ -1611,10 +1612,10 @@ func TestFormatter_StmtIf(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `if ($foo) { @@ -1669,10 +1670,10 @@ func TestFormatter_StmtIf_ElseIf(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `if ($foo) { @@ -1712,10 +1713,10 @@ func TestFormatter_StmtIf_Else(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `if ($foo) { @@ -1759,10 +1760,10 @@ func TestFormatter_StmtInlineHtml(t *testing.T) { }, } - f := visitor.NewFormatter() + f := formatter.NewFormatter() n.Accept(f) - p := visitor.NewPrinter(o) + p := printer.NewPrinter(o) n.Accept(p) expected := ` $bar` @@ -3214,10 +3215,10 @@ func TestFormatter_ExprArrayItem_Variadic(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `...$foo` @@ -3239,10 +3240,10 @@ func TestFormatter_ExprArrowFunction(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `fn() => $foo` @@ -3265,10 +3266,10 @@ func TestFormatter_ExprArrowFunction_Ref(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `fn&() => $foo` @@ -3306,10 +3307,10 @@ func TestFormatter_ExprArrowFunction_Params(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `fn($a, $b) => $foo` @@ -3338,10 +3339,10 @@ func TestFormatter_ExprArrowFunction_ReturnType(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `fn(): foo => $bar` @@ -3363,10 +3364,10 @@ func TestFormatter_ExprBitwiseNot(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `~$foo` @@ -3388,10 +3389,10 @@ func TestFormatter_ExprBooleanNot(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `!$foo` @@ -3413,10 +3414,10 @@ func TestFormatter_ExprBrackets(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `($foo)` @@ -3441,10 +3442,10 @@ func TestFormatter_ExprClassConstFetch(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo::bar` @@ -3466,10 +3467,10 @@ func TestFormatter_ExprClone(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `clone $foo` @@ -3489,10 +3490,10 @@ func TestFormatter_ExprClosure(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function() { @@ -3515,10 +3516,10 @@ func TestFormatter_ExprClosure_Ref(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function&() { @@ -3556,10 +3557,10 @@ func TestFormatter_ExprClosure_Params(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function($a, $b) { @@ -3588,10 +3589,10 @@ func TestFormatter_ExprClosure_ReturnType(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function(): foo { @@ -3622,10 +3623,10 @@ func TestFormatter_ExprClosure_Use(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `function() use($foo) { @@ -3649,10 +3650,10 @@ func TestFormatter_ExprClosureUse(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$a` @@ -3675,10 +3676,10 @@ func TestFormatter_ExprClosureUse_Reference(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `&$a` @@ -3702,10 +3703,10 @@ func TestFormatter_ExprConstFetch(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `FOO` @@ -3727,10 +3728,10 @@ func TestFormatter_ExprEmpty(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `empty($foo)` @@ -3752,10 +3753,10 @@ func TestFormatter_ExprErrorSuppress(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `@$foo` @@ -3777,10 +3778,10 @@ func TestFormatter_ExprEval(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `eval($foo)` @@ -3796,10 +3797,10 @@ func TestFormatter_ExprExit(t *testing.T) { n := &ast.ExprExit{} - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `exit` @@ -3821,10 +3822,10 @@ func TestFormatter_ExprExit_Expr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `exit($foo)` @@ -3848,10 +3849,10 @@ func TestFormatter_ExprFunctionCall(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `foo()` @@ -3884,10 +3885,10 @@ func TestFormatter_ExprFunctionCall_Arguments(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `foo($bar)` @@ -3907,10 +3908,10 @@ func TestFormatter_ExprInclude(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `include 'foo.php'` @@ -3930,10 +3931,10 @@ func TestFormatter_ExprIncludeOnce(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `include_once 'foo.php'` @@ -3962,10 +3963,10 @@ func TestFormatter_ExprInstanceOf(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo instanceof bar` @@ -3994,10 +3995,10 @@ func TestFormatter_ExprIsset(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `isset($a, $b)` @@ -4030,10 +4031,10 @@ func TestFormatter_ExprList(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `list($a, $b)` @@ -4058,10 +4059,10 @@ func TestFormatter_ExprMethodCall(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo->bar()` @@ -4086,10 +4087,10 @@ func TestFormatter_ExprMethodCall_Expr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo->{'bar'}()` @@ -4130,10 +4131,10 @@ func TestFormatter_ExprMethodCall_Arguments(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo->bar($a, $b)` @@ -4157,10 +4158,10 @@ func TestFormatter_ExprNew(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `new foo` @@ -4200,10 +4201,10 @@ func TestFormatter_ExprNew_Arguments(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `new foo($a, $b)` @@ -4225,10 +4226,10 @@ func TestFormatter_ExprPreDec(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `--$foo` @@ -4250,10 +4251,10 @@ func TestFormatter_ExprPreInc(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `++$foo` @@ -4275,10 +4276,10 @@ func TestFormatter_ExprPostDec(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo--` @@ -4300,10 +4301,10 @@ func TestFormatter_ExprPostInc(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo++` @@ -4325,10 +4326,10 @@ func TestFormatter_ExprPrint(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `print $foo` @@ -4353,10 +4354,10 @@ func TestFormatter_ExprPropertyFetch(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo->bar` @@ -4381,10 +4382,10 @@ func TestFormatter_ExprPropertyFetch_Expr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo->{'bar'}` @@ -4404,10 +4405,10 @@ func TestFormatter_ExprRequire(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `require 'foo.php'` @@ -4427,10 +4428,10 @@ func TestFormatter_ExprRequireOnce(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `require_once 'foo.php'` @@ -4446,10 +4447,10 @@ func TestFormatter_ExprShellExec(t *testing.T) { n := &ast.ExprShellExec{} - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := "``" @@ -4471,10 +4472,10 @@ func TestFormatter_ExprShellExec_Part(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := "`foo`" @@ -4504,10 +4505,10 @@ func TestFormatter_ExprShellExec_Parts(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := "`foo $bar baz`" @@ -4534,10 +4535,10 @@ func TestFormatter_ExprStaticCall(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `foo::bar()` @@ -4564,10 +4565,10 @@ func TestFormatter_ExprStaticCall_Expr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `foo::{'bar'}()` @@ -4610,10 +4611,10 @@ func TestFormatter_ExprStaticCall_Arguments(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `foo::bar($a, $b)` @@ -4642,10 +4643,10 @@ func TestFormatter_ExprStaticPropertyFetch(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `foo::$bar` @@ -4677,10 +4678,10 @@ func TestFormatter_ExprTernary(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo ? $bar : $baz` @@ -4707,10 +4708,10 @@ func TestFormatter_ExprTernary_short(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo ?: $bar` @@ -4732,10 +4733,10 @@ func TestFormatter_ExprUnaryMinus(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `-$foo` @@ -4757,10 +4758,10 @@ func TestFormatter_ExprUnaryPlus(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `+$foo` @@ -4780,10 +4781,10 @@ func TestFormatter_ExprVariable(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo` @@ -4805,10 +4806,10 @@ func TestFormatter_ExprVariable_Variable(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$$foo` @@ -4828,10 +4829,10 @@ func TestFormatter_ExprVariable_Expression(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `${'foo'}` @@ -4853,10 +4854,10 @@ func TestFormatter_ExprYield(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `yield $foo` @@ -4883,10 +4884,10 @@ func TestFormatter_ExprYield_Key(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `yield $foo => $bar` @@ -4908,10 +4909,10 @@ func TestFormatter_ExprYieldFrom(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `yield from $foo` @@ -4938,10 +4939,10 @@ func TestFormatter_ExprAssign(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo = $bar` @@ -4968,10 +4969,10 @@ func TestFormatter_ExprAssignReference(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo =& $bar` @@ -4998,10 +4999,10 @@ func TestFormatter_ExprAssignBitwiseAnd(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo &= $bar` @@ -5028,10 +5029,10 @@ func TestFormatter_ExprAssignBitwiseOr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo |= $bar` @@ -5058,10 +5059,10 @@ func TestFormatter_ExprAssignBitwiseXor(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo ^= $bar` @@ -5088,10 +5089,10 @@ func TestFormatter_ExprAssignCoalesce(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo ??= $bar` @@ -5118,10 +5119,10 @@ func TestFormatter_ExprAssignConcat(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo .= $bar` @@ -5148,10 +5149,10 @@ func TestFormatter_ExprAssignDiv(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo /= $bar` @@ -5178,10 +5179,10 @@ func TestFormatter_ExprAssignMinus(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo -= $bar` @@ -5208,10 +5209,10 @@ func TestFormatter_ExprAssignMod(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo %= $bar` @@ -5238,10 +5239,10 @@ func TestFormatter_ExprAssignMul(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo *= $bar` @@ -5268,10 +5269,10 @@ func TestFormatter_ExprAssignPlus(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo += $bar` @@ -5298,10 +5299,10 @@ func TestFormatter_ExprAssignPow(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo **= $bar` @@ -5328,10 +5329,10 @@ func TestFormatter_ExprAssignShiftLeft(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo <<= $bar` @@ -5358,10 +5359,10 @@ func TestFormatter_ExprAssignShiftRight(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo >>= $bar` @@ -5388,10 +5389,10 @@ func TestFormatter_ExprBinaryBitwiseAnd(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo & $bar` @@ -5418,10 +5419,10 @@ func TestFormatter_ExprBinaryBitwiseOr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo | $bar` @@ -5448,10 +5449,10 @@ func TestFormatter_ExprBinaryBitwiseXor(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo ^ $bar` @@ -5478,10 +5479,10 @@ func TestFormatter_ExprBinaryBooleanAnd(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo && $bar` @@ -5508,10 +5509,10 @@ func TestFormatter_ExprBinaryBooleanOr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo || $bar` @@ -5538,10 +5539,10 @@ func TestFormatter_ExprBinaryCoalesce(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo ?? $bar` @@ -5568,10 +5569,10 @@ func TestFormatter_ExprBinaryConcat(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo . $bar` @@ -5598,10 +5599,10 @@ func TestFormatter_ExprBinaryDiv(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo / $bar` @@ -5628,10 +5629,10 @@ func TestFormatter_ExprBinaryEqual(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo == $bar` @@ -5658,10 +5659,10 @@ func TestFormatter_ExprBinaryGreater(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo > $bar` @@ -5688,10 +5689,10 @@ func TestFormatter_ExprBinaryGreaterOrEqual(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo >= $bar` @@ -5718,10 +5719,10 @@ func TestFormatter_ExprBinaryIdentical(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo === $bar` @@ -5748,10 +5749,10 @@ func TestFormatter_ExprBinaryLogicalAnd(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo and $bar` @@ -5778,10 +5779,10 @@ func TestFormatter_ExprBinaryLogicalOr(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo or $bar` @@ -5808,10 +5809,10 @@ func TestFormatter_ExprBinaryLogicalXor(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo xor $bar` @@ -5838,10 +5839,10 @@ func TestFormatter_ExprBinaryMinus(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo - $bar` @@ -5868,10 +5869,10 @@ func TestFormatter_ExprBinaryMod(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo % $bar` @@ -5898,10 +5899,10 @@ func TestFormatter_ExprBinaryMul(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo * $bar` @@ -5928,10 +5929,10 @@ func TestFormatter_ExprBinaryNotEqual(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo != $bar` @@ -5958,10 +5959,10 @@ func TestFormatter_ExprBinaryNotIdentical(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo !== $bar` @@ -5988,10 +5989,10 @@ func TestFormatter_ExprBinaryPlus(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo + $bar` @@ -6018,10 +6019,10 @@ func TestFormatter_ExprBinaryPow(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo ** $bar` @@ -6048,10 +6049,10 @@ func TestFormatter_ExprBinaryShiftLeft(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo << $bar` @@ -6078,10 +6079,10 @@ func TestFormatter_ExprBinaryShiftRight(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo >> $bar` @@ -6108,10 +6109,10 @@ func TestFormatter_ExprBinarySmaller(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo < $bar` @@ -6138,10 +6139,10 @@ func TestFormatter_ExprBinarySmallerOrEqual(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo <= $bar` @@ -6168,10 +6169,10 @@ func TestFormatter_ExprBinarySpaceship(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `$foo <=> $bar` @@ -6193,10 +6194,10 @@ func TestFormatter_ExprCastArray(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `(array)$foo` @@ -6218,10 +6219,10 @@ func TestFormatter_ExprCastBool(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `(bool)$foo` @@ -6243,10 +6244,10 @@ func TestFormatter_ExprCastDouble(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `(float)$foo` @@ -6268,10 +6269,10 @@ func TestFormatter_ExprCastInt(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `(int)$foo` @@ -6293,10 +6294,10 @@ func TestFormatter_ExprCastObject(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `(object)$foo` @@ -6318,10 +6319,10 @@ func TestFormatter_ExprCastString(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `(string)$foo` @@ -6343,10 +6344,10 @@ func TestFormatter_ExprCastUnset(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `(unset)$foo` @@ -6364,10 +6365,10 @@ func TestFormatter_ScalarDnumber(t *testing.T) { Value: []byte("1234"), } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `1234` @@ -6383,10 +6384,10 @@ func TestFormatter_ScalarEncapsed(t *testing.T) { n := &ast.ScalarEncapsed{} - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `""` @@ -6408,10 +6409,10 @@ func TestFormatter_ScalarEncapsed_Part(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `"foo"` @@ -6441,10 +6442,10 @@ func TestFormatter_ScalarEncapsed_Parts(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `"foo $bar baz"` @@ -6462,10 +6463,10 @@ func TestFormatter_ScalarEncapsedStringPart(t *testing.T) { Value: []byte("foo"), } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `foo` @@ -6485,10 +6486,10 @@ func TestFormatter_ScalarEncapsedStringVar(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `${foo}` @@ -6511,10 +6512,10 @@ func TestFormatter_ScalarEncapsedStringVar_Dim(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `${foo['bar']}` @@ -6536,10 +6537,10 @@ func TestFormatter_ScalarEncapsedStringBrackets(t *testing.T) { }, } - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `{$foo}` @@ -6555,10 +6556,10 @@ func TestFormatter_ScalarHeredoc(t *testing.T) { n := &ast.ScalarHeredoc{} - f := visitor.NewFormatter().WithState(visitor.FormatterStatePHP).WithIndent(1) + f := formatter.NewFormatter().WithState(formatter.FormatterStatePHP).WithIndent(1) n.Accept(f) - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n.Accept(p) expected := `<<HTML")}, @@ -101,7 +101,7 @@ func TestPrinterPrintFileInlineHtml(t *testing.T) { func TestPrinterPrintIdentifier(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.Identifier{ Value: []byte("test"), } @@ -118,7 +118,7 @@ func TestPrinterPrintIdentifier(t *testing.T) { func TestPrinterPrintParameter(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.Parameter{ Type: &ast.NameFullyQualified{ Parts: []ast.Vertex{ @@ -150,7 +150,7 @@ func TestPrinterPrintParameter(t *testing.T) { func TestPrinterPrintNullable(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.Nullable{ Expr: &ast.Parameter{ Type: &ast.NameFullyQualified{ @@ -184,7 +184,7 @@ func TestPrinterPrintNullable(t *testing.T) { func TestPrinterPrintArgument(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.Argument{ VariadicTkn: &token.Token{ Value: []byte("..."), @@ -205,7 +205,7 @@ func TestPrinterPrintArgument(t *testing.T) { func TestPrinterPrintArgumentByRef(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.Argument{ AmpersandTkn: &token.Token{ Value: []byte("&"), @@ -229,7 +229,7 @@ func TestPrinterPrintArgumentByRef(t *testing.T) { func TestPrinterPrintNameNamePart(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.NameNamePart{ Value: []byte("foo"), } @@ -246,7 +246,7 @@ func TestPrinterPrintNameNamePart(t *testing.T) { func TestPrinterPrintNameName(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.NameName{ Parts: []ast.Vertex{ &ast.NameNamePart{ @@ -270,7 +270,7 @@ func TestPrinterPrintNameName(t *testing.T) { func TestPrinterPrintNameFullyQualified(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.NameFullyQualified{ Parts: []ast.Vertex{ &ast.NameNamePart{ @@ -294,7 +294,7 @@ func TestPrinterPrintNameFullyQualified(t *testing.T) { func TestPrinterPrintNameRelative(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.NameRelative{ Parts: []ast.Vertex{ &ast.NameNamePart{ @@ -320,7 +320,7 @@ func TestPrinterPrintNameRelative(t *testing.T) { func TestPrinterPrintScalarLNumber(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ScalarLnumber{ Value: []byte("1"), } @@ -337,7 +337,7 @@ func TestPrinterPrintScalarLNumber(t *testing.T) { func TestPrinterPrintScalarDNumber(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ScalarDnumber{ Value: []byte(".1"), } @@ -354,7 +354,7 @@ func TestPrinterPrintScalarDNumber(t *testing.T) { func TestPrinterPrintScalarString(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ScalarString{ Value: []byte("'hello world'"), } @@ -371,7 +371,7 @@ func TestPrinterPrintScalarString(t *testing.T) { func TestPrinterPrintScalarEncapsedStringPart(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ScalarEncapsedStringPart{ Value: []byte("hello world"), } @@ -388,7 +388,7 @@ func TestPrinterPrintScalarEncapsedStringPart(t *testing.T) { func TestPrinterPrintScalarEncapsed(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ScalarEncapsed{ Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, @@ -411,7 +411,7 @@ func TestPrinterPrintScalarEncapsed(t *testing.T) { func TestPrinterPrintScalarHeredoc(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ScalarHeredoc{ Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, @@ -436,7 +436,7 @@ EOT` func TestPrinterPrintScalarMagicConstant(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ScalarMagicConstant{ Value: []byte("__DIR__"), } @@ -452,7 +452,7 @@ func TestPrinterPrintScalarMagicConstant(t *testing.T) { func TestPrinterPrintAssign(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssign{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -474,7 +474,7 @@ func TestPrinterPrintAssign(t *testing.T) { func TestPrinterPrintReference(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignReference{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -496,7 +496,7 @@ func TestPrinterPrintReference(t *testing.T) { func TestPrinterPrintAssignBitwiseAnd(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignBitwiseAnd{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -518,7 +518,7 @@ func TestPrinterPrintAssignBitwiseAnd(t *testing.T) { func TestPrinterPrintAssignBitwiseOr(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignBitwiseOr{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -540,7 +540,7 @@ func TestPrinterPrintAssignBitwiseOr(t *testing.T) { func TestPrinterPrintAssignBitwiseXor(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignBitwiseXor{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -562,7 +562,7 @@ func TestPrinterPrintAssignBitwiseXor(t *testing.T) { func TestPrinterPrintAssignCoalesce(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignCoalesce{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -584,7 +584,7 @@ func TestPrinterPrintAssignCoalesce(t *testing.T) { func TestPrinterPrintAssignConcat(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignConcat{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -606,7 +606,7 @@ func TestPrinterPrintAssignConcat(t *testing.T) { func TestPrinterPrintAssignDiv(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignDiv{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -628,7 +628,7 @@ func TestPrinterPrintAssignDiv(t *testing.T) { func TestPrinterPrintAssignMinus(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignMinus{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -650,7 +650,7 @@ func TestPrinterPrintAssignMinus(t *testing.T) { func TestPrinterPrintAssignMod(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignMod{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -672,7 +672,7 @@ func TestPrinterPrintAssignMod(t *testing.T) { func TestPrinterPrintAssignMul(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignMul{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -694,7 +694,7 @@ func TestPrinterPrintAssignMul(t *testing.T) { func TestPrinterPrintAssignPlus(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignPlus{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -716,7 +716,7 @@ func TestPrinterPrintAssignPlus(t *testing.T) { func TestPrinterPrintAssignPow(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignPow{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -738,7 +738,7 @@ func TestPrinterPrintAssignPow(t *testing.T) { func TestPrinterPrintAssignShiftLeft(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignShiftLeft{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -760,7 +760,7 @@ func TestPrinterPrintAssignShiftLeft(t *testing.T) { func TestPrinterPrintAssignShiftRight(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignShiftRight{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -784,7 +784,7 @@ func TestPrinterPrintAssignShiftRight(t *testing.T) { func TestPrinterPrintBinaryBitwiseAnd(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBitwiseAnd{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -806,7 +806,7 @@ func TestPrinterPrintBinaryBitwiseAnd(t *testing.T) { func TestPrinterPrintBinaryBitwiseOr(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBitwiseOr{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -828,7 +828,7 @@ func TestPrinterPrintBinaryBitwiseOr(t *testing.T) { func TestPrinterPrintBinaryBitwiseXor(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBitwiseXor{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -850,7 +850,7 @@ func TestPrinterPrintBinaryBitwiseXor(t *testing.T) { func TestPrinterPrintBinaryBooleanAnd(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBooleanAnd{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -872,7 +872,7 @@ func TestPrinterPrintBinaryBooleanAnd(t *testing.T) { func TestPrinterPrintBinaryBooleanOr(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBooleanOr{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -894,7 +894,7 @@ func TestPrinterPrintBinaryBooleanOr(t *testing.T) { func TestPrinterPrintBinaryCoalesce(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryCoalesce{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -916,7 +916,7 @@ func TestPrinterPrintBinaryCoalesce(t *testing.T) { func TestPrinterPrintBinaryConcat(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryConcat{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -938,7 +938,7 @@ func TestPrinterPrintBinaryConcat(t *testing.T) { func TestPrinterPrintBinaryDiv(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryDiv{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -960,7 +960,7 @@ func TestPrinterPrintBinaryDiv(t *testing.T) { func TestPrinterPrintBinaryEqual(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -982,7 +982,7 @@ func TestPrinterPrintBinaryEqual(t *testing.T) { func TestPrinterPrintBinaryGreaterOrEqual(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryGreaterOrEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1004,7 +1004,7 @@ func TestPrinterPrintBinaryGreaterOrEqual(t *testing.T) { func TestPrinterPrintBinaryGreater(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryGreater{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1026,7 +1026,7 @@ func TestPrinterPrintBinaryGreater(t *testing.T) { func TestPrinterPrintBinaryIdentical(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryIdentical{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1048,7 +1048,7 @@ func TestPrinterPrintBinaryIdentical(t *testing.T) { func TestPrinterPrintBinaryLogicalAnd(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryLogicalAnd{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1070,7 +1070,7 @@ func TestPrinterPrintBinaryLogicalAnd(t *testing.T) { func TestPrinterPrintBinaryLogicalOr(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryLogicalOr{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1092,7 +1092,7 @@ func TestPrinterPrintBinaryLogicalOr(t *testing.T) { func TestPrinterPrintBinaryLogicalXor(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryLogicalXor{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1114,7 +1114,7 @@ func TestPrinterPrintBinaryLogicalXor(t *testing.T) { func TestPrinterPrintBinaryMinus(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryMinus{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1136,7 +1136,7 @@ func TestPrinterPrintBinaryMinus(t *testing.T) { func TestPrinterPrintBinaryMod(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryMod{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1158,7 +1158,7 @@ func TestPrinterPrintBinaryMod(t *testing.T) { func TestPrinterPrintBinaryMul(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryMul{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1180,7 +1180,7 @@ func TestPrinterPrintBinaryMul(t *testing.T) { func TestPrinterPrintBinaryNotEqual(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryNotEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1202,7 +1202,7 @@ func TestPrinterPrintBinaryNotEqual(t *testing.T) { func TestPrinterPrintBinaryNotIdentical(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryNotIdentical{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1224,7 +1224,7 @@ func TestPrinterPrintBinaryNotIdentical(t *testing.T) { func TestPrinterPrintBinaryPlus(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryPlus{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1246,7 +1246,7 @@ func TestPrinterPrintBinaryPlus(t *testing.T) { func TestPrinterPrintBinaryPow(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryPow{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1268,7 +1268,7 @@ func TestPrinterPrintBinaryPow(t *testing.T) { func TestPrinterPrintBinaryShiftLeft(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryShiftLeft{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1290,7 +1290,7 @@ func TestPrinterPrintBinaryShiftLeft(t *testing.T) { func TestPrinterPrintBinaryShiftRight(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryShiftRight{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1312,7 +1312,7 @@ func TestPrinterPrintBinaryShiftRight(t *testing.T) { func TestPrinterPrintBinarySmallerOrEqual(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinarySmallerOrEqual{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1334,7 +1334,7 @@ func TestPrinterPrintBinarySmallerOrEqual(t *testing.T) { func TestPrinterPrintBinarySmaller(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinarySmaller{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1356,7 +1356,7 @@ func TestPrinterPrintBinarySmaller(t *testing.T) { func TestPrinterPrintBinarySpaceship(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinarySpaceship{ Left: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -1380,7 +1380,7 @@ func TestPrinterPrintBinarySpaceship(t *testing.T) { func TestPrinterPrintArray(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastArray{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1399,7 +1399,7 @@ func TestPrinterPrintArray(t *testing.T) { func TestPrinterPrintBool(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastBool{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1418,7 +1418,7 @@ func TestPrinterPrintBool(t *testing.T) { func TestPrinterPrintDouble(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastDouble{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1437,7 +1437,7 @@ func TestPrinterPrintDouble(t *testing.T) { func TestPrinterPrintInt(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastInt{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1456,7 +1456,7 @@ func TestPrinterPrintInt(t *testing.T) { func TestPrinterPrintObject(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastObject{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1475,7 +1475,7 @@ func TestPrinterPrintObject(t *testing.T) { func TestPrinterPrintString(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastString{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1494,7 +1494,7 @@ func TestPrinterPrintString(t *testing.T) { func TestPrinterPrintUnset(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastUnset{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1515,7 +1515,7 @@ func TestPrinterPrintUnset(t *testing.T) { func TestPrinterPrintExprArrayDimFetch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArrayDimFetch{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1535,7 +1535,7 @@ func TestPrinterPrintExprArrayDimFetch(t *testing.T) { func TestPrinterPrintExprArrayItemWithKey(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArrayItem{ Key: &ast.ScalarString{Value: []byte("'Hello'")}, Val: &ast.ExprVariable{ @@ -1555,7 +1555,7 @@ func TestPrinterPrintExprArrayItemWithKey(t *testing.T) { func TestPrinterPrintExprArrayItem(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArrayItem{ Val: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$world")}, @@ -1574,7 +1574,7 @@ func TestPrinterPrintExprArrayItem(t *testing.T) { func TestPrinterPrintExprArrayItem_Reference(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArrayItem{ AmpersandTkn: &token.Token{ Value: []byte("&"), @@ -1596,7 +1596,7 @@ func TestPrinterPrintExprArrayItem_Reference(t *testing.T) { func TestPrinterPrintExprArrayItemUnpack(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArrayItem{ EllipsisTkn: &token.Token{ Value: []byte("..."), @@ -1618,7 +1618,7 @@ func TestPrinterPrintExprArrayItemUnpack(t *testing.T) { func TestPrinterPrintExprArray(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArray{ ArrayTkn: &token.Token{ Value: []byte("array"), @@ -1659,7 +1659,7 @@ func TestPrinterPrintExprArray(t *testing.T) { func TestPrinterPrintExprBitwiseNot(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBitwiseNot{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1678,7 +1678,7 @@ func TestPrinterPrintExprBitwiseNot(t *testing.T) { func TestPrinterPrintExprBooleanNot(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBooleanNot{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1697,7 +1697,7 @@ func TestPrinterPrintExprBooleanNot(t *testing.T) { func TestPrinterPrintExprBracket(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBooleanNot{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1716,7 +1716,7 @@ func TestPrinterPrintExprBracket(t *testing.T) { func TestPrinterPrintExprClassConstFetch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClassConstFetch{ Class: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1738,7 +1738,7 @@ func TestPrinterPrintExprClassConstFetch(t *testing.T) { func TestPrinterPrintExprClone(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClone{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1757,7 +1757,7 @@ func TestPrinterPrintExprClone(t *testing.T) { func TestPrinterPrintExprClosureUse(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClosureUse{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$foo")}, @@ -1776,7 +1776,7 @@ func TestPrinterPrintExprClosureUse(t *testing.T) { func TestPrinterPrintExprClosureUse_Reference(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClosureUse{ AmpersandTkn: &token.Token{ Value: []byte("&"), @@ -1798,7 +1798,7 @@ func TestPrinterPrintExprClosureUse_Reference(t *testing.T) { func TestPrinterPrintExprClosure(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClosure{ StaticTkn: &token.Token{ Value: []byte("static"), @@ -1850,7 +1850,7 @@ func TestPrinterPrintExprClosure(t *testing.T) { func TestPrinterPrintExprArrowFunction(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtExpression{ Expr: &ast.ExprArrowFunction{ StaticTkn: &token.Token{ @@ -1890,7 +1890,7 @@ func TestPrinterPrintExprArrowFunction(t *testing.T) { func TestPrinterPrintExprConstFetch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprConstFetch{ Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}, } @@ -1907,7 +1907,7 @@ func TestPrinterPrintExprConstFetch(t *testing.T) { func TestPrinterPrintEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprEmpty{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1926,7 +1926,7 @@ func TestPrinterPrintEmpty(t *testing.T) { func TestPrinterPrettyPrinterrorSuppress(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprErrorSuppress{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1945,7 +1945,7 @@ func TestPrinterPrettyPrinterrorSuppress(t *testing.T) { func TestPrinterPrintEval(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprEval{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1964,7 +1964,7 @@ func TestPrinterPrintEval(t *testing.T) { func TestPrinterPrintExit(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprExit{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -1983,7 +1983,7 @@ func TestPrinterPrintExit(t *testing.T) { func TestPrinterPrintDie(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprExit{ ExitTkn: &token.Token{ Value: []byte("die"), @@ -2005,7 +2005,7 @@ func TestPrinterPrintDie(t *testing.T) { func TestPrinterPrintFunctionCall(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprFunctionCall{ Function: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2047,7 +2047,7 @@ func TestPrinterPrintFunctionCall(t *testing.T) { func TestPrinterPrintInclude(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprInclude{ Expr: &ast.ScalarString{Value: []byte("'path'")}, } @@ -2064,7 +2064,7 @@ func TestPrinterPrintInclude(t *testing.T) { func TestPrinterPrintIncludeOnce(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprIncludeOnce{ Expr: &ast.ScalarString{Value: []byte("'path'")}, } @@ -2081,7 +2081,7 @@ func TestPrinterPrintIncludeOnce(t *testing.T) { func TestPrinterPrintInstanceOf(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprInstanceOf{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2101,7 +2101,7 @@ func TestPrinterPrintInstanceOf(t *testing.T) { func TestPrinterPrintIsset(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprIsset{ Vars: []ast.Vertex{ &ast.ExprVariable{ @@ -2125,7 +2125,7 @@ func TestPrinterPrintIsset(t *testing.T) { func TestPrinterPrintList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ @@ -2164,7 +2164,7 @@ func TestPrinterPrintList(t *testing.T) { func TestPrinterPrintMethodCall(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprMethodCall{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$foo")}, @@ -2196,7 +2196,7 @@ func TestPrinterPrintMethodCall(t *testing.T) { func TestPrinterPrintNew(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprNew{ Class: &ast.NameName{ Parts: []ast.Vertex{ @@ -2231,7 +2231,7 @@ func TestPrinterPrintNew(t *testing.T) { func TestPrinterPrintPostDec(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPostDec{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2250,7 +2250,7 @@ func TestPrinterPrintPostDec(t *testing.T) { func TestPrinterPrintPostInc(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPostInc{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2269,7 +2269,7 @@ func TestPrinterPrintPostInc(t *testing.T) { func TestPrinterPrintPreDec(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPreDec{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2288,7 +2288,7 @@ func TestPrinterPrintPreDec(t *testing.T) { func TestPrinterPrintPreInc(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPreInc{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2307,7 +2307,7 @@ func TestPrinterPrintPreInc(t *testing.T) { func TestPrinterPrintPrint(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPrint{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2326,7 +2326,7 @@ func TestPrinterPrintPrint(t *testing.T) { func TestPrinterPrintPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPropertyFetch{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$foo")}, @@ -2346,7 +2346,7 @@ func TestPrinterPrintPropertyFetch(t *testing.T) { func TestPrinterPrintRequire(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprRequire{ Expr: &ast.ScalarString{Value: []byte("'path'")}, } @@ -2363,7 +2363,7 @@ func TestPrinterPrintRequire(t *testing.T) { func TestPrinterPrintRequireOnce(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprRequireOnce{ Expr: &ast.ScalarString{Value: []byte("'path'")}, } @@ -2380,7 +2380,7 @@ func TestPrinterPrintRequireOnce(t *testing.T) { func TestPrinterPrintShellExec(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprShellExec{ Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, @@ -2403,7 +2403,7 @@ func TestPrinterPrintShellExec(t *testing.T) { func TestPrinterPrintExprShortArray(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArray{ Items: []ast.Vertex{ &ast.ExprArrayItem{ @@ -2441,7 +2441,7 @@ func TestPrinterPrintExprShortArray(t *testing.T) { func TestPrinterPrintShortList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprList{ OpenBracketTkn: &token.Token{ Value: []byte("["), @@ -2486,7 +2486,7 @@ func TestPrinterPrintShortList(t *testing.T) { func TestPrinterPrintStaticCall(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprStaticCall{ Class: &ast.Identifier{Value: []byte("Foo")}, Call: &ast.Identifier{Value: []byte("bar")}, @@ -2516,7 +2516,7 @@ func TestPrinterPrintStaticCall(t *testing.T) { func TestPrinterPrintStaticPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprStaticPropertyFetch{ Class: &ast.Identifier{Value: []byte("Foo")}, Property: &ast.ExprVariable{ @@ -2536,7 +2536,7 @@ func TestPrinterPrintStaticPropertyFetch(t *testing.T) { func TestPrinterPrintTernary(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprTernary{ Condition: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -2558,7 +2558,7 @@ func TestPrinterPrintTernary(t *testing.T) { func TestPrinterPrintTernaryFull(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprTernary{ Condition: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -2583,7 +2583,7 @@ func TestPrinterPrintTernaryFull(t *testing.T) { func TestPrinterPrintUnaryMinus(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprUnaryMinus{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2602,7 +2602,7 @@ func TestPrinterPrintUnaryMinus(t *testing.T) { func TestPrinterPrintUnaryPlus(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprUnaryPlus{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2621,7 +2621,7 @@ func TestPrinterPrintUnaryPlus(t *testing.T) { func TestPrinterPrintVariable(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprVariable{ DollarTkn: &token.Token{ Value: []byte("$"), @@ -2649,7 +2649,7 @@ func TestPrinterPrintVariable(t *testing.T) { func TestPrinterPrintYieldFrom(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprYieldFrom{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2668,7 +2668,7 @@ func TestPrinterPrintYieldFrom(t *testing.T) { func TestPrinterPrintYield(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprYield{ Value: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2687,7 +2687,7 @@ func TestPrinterPrintYield(t *testing.T) { func TestPrinterPrintYieldFull(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprYield{ Key: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$k")}, @@ -2711,7 +2711,7 @@ func TestPrinterPrintYieldFull(t *testing.T) { func TestPrinterPrintAltElseIf(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -2740,7 +2740,7 @@ func TestPrinterPrintAltElseIf(t *testing.T) { func TestPrinterPrintAltElseIfEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -2763,7 +2763,7 @@ func TestPrinterPrintAltElseIfEmpty(t *testing.T) { func TestPrinterPrintAltElse(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElse{ ColonTkn: &token.Token{ Value: []byte(":"), @@ -2789,7 +2789,7 @@ func TestPrinterPrintAltElse(t *testing.T) { func TestPrinterPrintAltElseEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElse{ ColonTkn: &token.Token{ Value: []byte(":"), @@ -2809,7 +2809,7 @@ func TestPrinterPrintAltElseEmpty(t *testing.T) { func TestPrinterPrintAltFor(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtFor{ Init: []ast.Vertex{ &ast.ExprVariable{ @@ -2850,7 +2850,7 @@ func TestPrinterPrintAltFor(t *testing.T) { func TestPrinterPrintAltForeach(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2885,7 +2885,7 @@ func TestPrinterPrintAltForeach(t *testing.T) { func TestPrinterPrintAltForeach_Reference(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -2923,7 +2923,7 @@ func TestPrinterPrintAltForeach_Reference(t *testing.T) { func TestPrinterPrintAltIf(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -2990,7 +2990,7 @@ func TestPrinterPrintAltIf(t *testing.T) { func TestPrinterPrintStmtAltSwitch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtSwitch{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -3030,7 +3030,7 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { func TestPrinterPrintAltWhile(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtWhile{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3059,7 +3059,7 @@ func TestPrinterPrintAltWhile(t *testing.T) { func TestPrinterPrintStmtBreak(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtBreak{ Expr: &ast.ScalarLnumber{ Value: []byte("1"), @@ -3078,7 +3078,7 @@ func TestPrinterPrintStmtBreak(t *testing.T) { func TestPrinterPrintStmtCase(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtCase{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3102,7 +3102,7 @@ func TestPrinterPrintStmtCase(t *testing.T) { func TestPrinterPrintStmtCaseEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtCase{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3122,7 +3122,7 @@ func TestPrinterPrintStmtCaseEmpty(t *testing.T) { func TestPrinterPrintStmtCatch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtCatch{ Types: []ast.Vertex{ &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, @@ -3150,7 +3150,7 @@ func TestPrinterPrintStmtCatch(t *testing.T) { func TestPrinterPrintStmtClassMethod(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtClassMethod{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, AmpersandTkn: &token.Token{ @@ -3201,7 +3201,7 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtClassMethod{ Modifiers: []ast.Vertex{ &ast.Identifier{Value: []byte("public")}, @@ -3249,7 +3249,7 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { func TestPrinterPrintStmtClass(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, ClassName: &ast.Identifier{Value: []byte("Foo")}, @@ -3286,7 +3286,7 @@ func TestPrinterPrintStmtClass(t *testing.T) { func TestPrinterPrintStmtAnonymousClass(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, Arguments: []ast.Vertex{ @@ -3331,7 +3331,7 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { func TestPrinterPrintStmtClassConstList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtClassConstList{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, Consts: []ast.Vertex{ @@ -3358,7 +3358,7 @@ func TestPrinterPrintStmtClassConstList(t *testing.T) { func TestPrinterPrintStmtConstList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtConstList{ Consts: []ast.Vertex{ &ast.StmtConstant{ @@ -3384,7 +3384,7 @@ func TestPrinterPrintStmtConstList(t *testing.T) { func TestPrinterPrintStmtConstant(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("FOO")}, Expr: &ast.ScalarString{Value: []byte("'BAR'")}, @@ -3402,7 +3402,7 @@ func TestPrinterPrintStmtConstant(t *testing.T) { func TestPrinterPrintStmtContinue(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtContinue{ Expr: &ast.ScalarLnumber{ Value: []byte("1"), @@ -3421,7 +3421,7 @@ func TestPrinterPrintStmtContinue(t *testing.T) { func TestPrinterPrintStmtDeclareStmts(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ @@ -3448,7 +3448,7 @@ func TestPrinterPrintStmtDeclareStmts(t *testing.T) { func TestPrinterPrintStmtDeclareExpr(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ @@ -3471,7 +3471,7 @@ func TestPrinterPrintStmtDeclareExpr(t *testing.T) { func TestPrinterPrintStmtDeclareNop(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtDeclare{ Consts: []ast.Vertex{ &ast.StmtConstant{ @@ -3494,7 +3494,7 @@ func TestPrinterPrintStmtDeclareNop(t *testing.T) { func TestPrinterPrintStmtDefalut(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtDefault{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -3515,7 +3515,7 @@ func TestPrinterPrintStmtDefalut(t *testing.T) { func TestPrinterPrintStmtDefalutEmpty(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtDefault{ Stmts: []ast.Vertex{}, } @@ -3532,7 +3532,7 @@ func TestPrinterPrintStmtDefalutEmpty(t *testing.T) { func TestPrinterPrintStmtDo_Expression(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtDo{ Cond: &ast.ScalarLnumber{Value: []byte("1")}, Stmt: &ast.StmtExpression{ @@ -3554,7 +3554,7 @@ func TestPrinterPrintStmtDo_Expression(t *testing.T) { func TestPrinterPrintStmtDo_StmtList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtDo{ Cond: &ast.ScalarLnumber{Value: []byte("1")}, Stmt: &ast.StmtStmtList{ @@ -3578,7 +3578,7 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { func TestPrinterPrintStmtEchoHtmlState(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o) + p := printer.NewPrinter(o) n := &ast.Root{ Stmts: []ast.Vertex{ &ast.StmtEcho{ @@ -3606,7 +3606,7 @@ func TestPrinterPrintStmtEchoHtmlState(t *testing.T) { func TestPrinterPrintStmtEchoPhpState(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtEcho{ Exprs: []ast.Vertex{ &ast.ExprVariable{ @@ -3630,7 +3630,7 @@ func TestPrinterPrintStmtEchoPhpState(t *testing.T) { func TestPrinterPrintStmtElseIfStmts(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3654,7 +3654,7 @@ func TestPrinterPrintStmtElseIfStmts(t *testing.T) { func TestPrinterPrintStmtElseIfExpr(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3674,7 +3674,7 @@ func TestPrinterPrintStmtElseIfExpr(t *testing.T) { func TestPrinterPrintStmtElseIfNop(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3694,7 +3694,7 @@ func TestPrinterPrintStmtElseIfNop(t *testing.T) { func TestPrinterPrintStmtElseStmts(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElse{ Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -3715,7 +3715,7 @@ func TestPrinterPrintStmtElseStmts(t *testing.T) { func TestPrinterPrintStmtElseExpr(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElse{ Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, } @@ -3732,7 +3732,7 @@ func TestPrinterPrintStmtElseExpr(t *testing.T) { func TestPrinterPrintStmtElseNop(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElse{ Stmt: &ast.StmtNop{}, } @@ -3749,7 +3749,7 @@ func TestPrinterPrintStmtElseNop(t *testing.T) { func TestPrinterPrintExpression(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtExpression{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3768,7 +3768,7 @@ func TestPrinterPrintExpression(t *testing.T) { func TestPrinterPrintStmtFinally(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtFinally{ Stmts: []ast.Vertex{ &ast.StmtNop{}, @@ -3787,7 +3787,7 @@ func TestPrinterPrintStmtFinally(t *testing.T) { func TestPrinterPrintStmtFor(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtFor{ Init: []ast.Vertex{ &ast.ExprVariable{ @@ -3832,7 +3832,7 @@ func TestPrinterPrintStmtFor(t *testing.T) { func TestPrinterPrintStmtForeach(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3862,7 +3862,7 @@ func TestPrinterPrintStmtForeach(t *testing.T) { func TestPrinterPrintStmtForeach_Reference(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -3895,7 +3895,7 @@ func TestPrinterPrintStmtForeach_Reference(t *testing.T) { func TestPrinterPrintStmtFunction(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtFunction{ AmpersandTkn: &token.Token{ Value: []byte("&"), @@ -3931,7 +3931,7 @@ func TestPrinterPrintStmtFunction(t *testing.T) { func TestPrinterPrintStmtGlobal(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtGlobal{ Vars: []ast.Vertex{ &ast.ExprVariable{ @@ -3955,7 +3955,7 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { func TestPrinterPrintStmtGoto(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtGoto{ Label: &ast.Identifier{Value: []byte("FOO")}, } @@ -3972,7 +3972,7 @@ func TestPrinterPrintStmtGoto(t *testing.T) { func TestPrinterPrintHaltCompiler(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtHaltCompiler{} n.Accept(p) @@ -3987,7 +3987,7 @@ func TestPrinterPrintHaltCompiler(t *testing.T) { func TestPrinterPrintIfExpression(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4040,7 +4040,7 @@ func TestPrinterPrintIfExpression(t *testing.T) { func TestPrinterPrintIfStmtList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4068,7 +4068,7 @@ func TestPrinterPrintIfStmtList(t *testing.T) { func TestPrinterPrintIfNop(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4088,7 +4088,7 @@ func TestPrinterPrintIfNop(t *testing.T) { func TestPrinterPrintInlineHtml(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.Root{ Stmts: []ast.Vertex{ &ast.StmtInlineHtml{ @@ -4109,7 +4109,7 @@ func TestPrinterPrintInlineHtml(t *testing.T) { func TestPrinterPrintInterface(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtInterface{ InterfaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Extends: []ast.Vertex{ @@ -4144,7 +4144,7 @@ func TestPrinterPrintInterface(t *testing.T) { func TestPrinterPrintLabel(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtLabel{ LabelName: &ast.Identifier{Value: []byte("FOO")}, } @@ -4161,7 +4161,7 @@ func TestPrinterPrintLabel(t *testing.T) { func TestPrinterPrintNamespace(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtNamespace{ Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, } @@ -4178,7 +4178,7 @@ func TestPrinterPrintNamespace(t *testing.T) { func TestPrinterPrintNamespaceWithStmts(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtNamespace{ Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Stmts: []ast.Vertex{ @@ -4200,7 +4200,7 @@ func TestPrinterPrintNamespaceWithStmts(t *testing.T) { func TestPrinterPrintNop(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtNop{} n.Accept(p) @@ -4215,7 +4215,7 @@ func TestPrinterPrintNop(t *testing.T) { func TestPrinterPrintPropertyList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtPropertyList{ Modifiers: []ast.Vertex{ &ast.Identifier{Value: []byte("public")}, @@ -4255,7 +4255,7 @@ func TestPrinterPrintPropertyList(t *testing.T) { func TestPrinterPrintProperty(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtProperty{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4275,7 +4275,7 @@ func TestPrinterPrintProperty(t *testing.T) { func TestPrinterPrintReturn(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtReturn{ Expr: &ast.ScalarLnumber{Value: []byte("1")}, } @@ -4292,7 +4292,7 @@ func TestPrinterPrintReturn(t *testing.T) { func TestPrinterPrintStaticVar(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtStaticVar{ Var: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, @@ -4312,7 +4312,7 @@ func TestPrinterPrintStaticVar(t *testing.T) { func TestPrinterPrintStatic(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtStatic{ Vars: []ast.Vertex{ &ast.StmtStaticVar{ @@ -4340,7 +4340,7 @@ func TestPrinterPrintStatic(t *testing.T) { func TestPrinterPrintStmtList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -4364,7 +4364,7 @@ func TestPrinterPrintStmtList(t *testing.T) { func TestPrinterPrintStmtListNested(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -4399,7 +4399,7 @@ func TestPrinterPrintStmtListNested(t *testing.T) { func TestPrinterPrintStmtSwitch(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtSwitch{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -4436,7 +4436,7 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { func TestPrinterPrintStmtThrow(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtThrow{ Expr: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$var")}, @@ -4455,7 +4455,7 @@ func TestPrinterPrintStmtThrow(t *testing.T) { func TestPrinterPrintStmtTraitUseAlias(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUseAlias{ Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, @@ -4475,7 +4475,7 @@ func TestPrinterPrintStmtTraitUseAlias(t *testing.T) { func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUsePrecedence{ Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, @@ -4497,7 +4497,7 @@ func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { func TestPrinterPrintStmtTraitUse(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, @@ -4517,7 +4517,7 @@ func TestPrinterPrintStmtTraitUse(t *testing.T) { func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, @@ -4544,7 +4544,7 @@ func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { func TestPrinterPrintTrait(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTrait{ TraitName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, Stmts: []ast.Vertex{ @@ -4575,7 +4575,7 @@ func TestPrinterPrintTrait(t *testing.T) { func TestPrinterPrintStmtTry(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTry{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ @@ -4617,7 +4617,7 @@ func TestPrinterPrintStmtTry(t *testing.T) { func TestPrinterPrintStmtUnset(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtUnset{ Vars: []ast.Vertex{ &ast.ExprVariable{ @@ -4641,7 +4641,7 @@ func TestPrinterPrintStmtUnset(t *testing.T) { func TestPrinterPrintUse(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtUse{ Type: &ast.Identifier{Value: []byte("function")}, UseDeclarations: []ast.Vertex{ @@ -4667,7 +4667,7 @@ func TestPrinterPrintUse(t *testing.T) { func TestPrinterPrintStmtGroupUse(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtGroupUse{ Type: &ast.Identifier{Value: []byte("function")}, Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, @@ -4694,7 +4694,7 @@ func TestPrinterPrintStmtGroupUse(t *testing.T) { func TestPrinterPrintUseDeclaration(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtUseDeclaration{ Type: &ast.Identifier{Value: []byte("function")}, Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, @@ -4713,7 +4713,7 @@ func TestPrinterPrintUseDeclaration(t *testing.T) { func TestPrinterPrintWhileStmtList(t *testing.T) { o := bytes.NewBufferString("") - p := visitor.NewPrinter(o).WithState(visitor.PrinterStatePHP) + p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtWhile{ Cond: &ast.ExprVariable{ VarName: &ast.Identifier{Value: []byte("$a")}, diff --git a/pkg/visitor/traverser/traverser.go b/pkg/visitor/traverser/traverser.go new file mode 100644 index 0000000..128f7ea --- /dev/null +++ b/pkg/visitor/traverser/traverser.go @@ -0,0 +1,1164 @@ +package traverser + +import ( + "github.com/z7zmey/php-parser/pkg/ast" +) + +type Traverser struct { + v ast.Visitor +} + +func NewTraverser(v ast.Visitor) *Traverser { + return &Traverser{ + v: v, + } +} + +func (t *Traverser) Traverse(n ast.Vertex) { + if n != nil { + n.Accept(t) + } +} + +func (t *Traverser) Root(n *ast.Root) { + n.Accept(t.v) + + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) Nullable(n *ast.Nullable) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) Parameter(n *ast.Parameter) { + n.Accept(t.v) + + t.Traverse(n.Type) + t.Traverse(n.Var) + t.Traverse(n.DefaultValue) +} + +func (t *Traverser) Identifier(n *ast.Identifier) { + n.Accept(t.v) +} + +func (t *Traverser) Argument(n *ast.Argument) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtBreak(n *ast.StmtBreak) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtCase(n *ast.StmtCase) { + n.Accept(t.v) + + t.Traverse(n.Cond) + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtCatch(n *ast.StmtCatch) { + n.Accept(t.v) + + for _, nn := range n.Types { + nn.Accept(t) + } + t.Traverse(n.Var) + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtClass(n *ast.StmtClass) { + n.Accept(t.v) + + for _, nn := range n.Modifiers { + nn.Accept(t) + } + t.Traverse(n.ClassName) + for _, nn := range n.Arguments { + nn.Accept(t) + } + t.Traverse(n.Extends) + for _, nn := range n.Implements { + nn.Accept(t) + } + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtClassConstList(n *ast.StmtClassConstList) { + n.Accept(t.v) + + for _, nn := range n.Modifiers { + nn.Accept(t) + } + for _, nn := range n.Consts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtClassMethod(n *ast.StmtClassMethod) { + n.Accept(t.v) + + for _, nn := range n.Modifiers { + nn.Accept(t) + } + t.Traverse(n.MethodName) + for _, nn := range n.Params { + nn.Accept(t) + } + t.Traverse(n.ReturnType) + t.Traverse(n.Stmt) +} + +func (t *Traverser) StmtConstList(n *ast.StmtConstList) { + n.Accept(t.v) + + for _, nn := range n.Consts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtConstant(n *ast.StmtConstant) { + n.Accept(t.v) + + t.Traverse(n.Name) + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtContinue(n *ast.StmtContinue) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtDeclare(n *ast.StmtDeclare) { + n.Accept(t.v) + + for _, nn := range n.Consts { + nn.Accept(t) + } + t.Traverse(n.Stmt) +} + +func (t *Traverser) StmtDefault(n *ast.StmtDefault) { + n.Accept(t.v) + + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtDo(n *ast.StmtDo) { + n.Accept(t.v) + + t.Traverse(n.Stmt) + t.Traverse(n.Cond) +} + +func (t *Traverser) StmtEcho(n *ast.StmtEcho) { + n.Accept(t.v) + + for _, nn := range n.Exprs { + nn.Accept(t) + } +} + +func (t *Traverser) StmtElse(n *ast.StmtElse) { + n.Accept(t.v) + + t.Traverse(n.Stmt) +} + +func (t *Traverser) StmtElseIf(n *ast.StmtElseIf) { + n.Accept(t.v) + + t.Traverse(n.Cond) + t.Traverse(n.Stmt) +} + +func (t *Traverser) StmtExpression(n *ast.StmtExpression) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtFinally(n *ast.StmtFinally) { + n.Accept(t.v) + + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtFor(n *ast.StmtFor) { + n.Accept(t.v) + + for _, nn := range n.Init { + nn.Accept(t) + } + for _, nn := range n.Cond { + nn.Accept(t) + } + for _, nn := range n.Loop { + nn.Accept(t) + } + t.Traverse(n.Stmt) +} + +func (t *Traverser) StmtForeach(n *ast.StmtForeach) { + n.Accept(t.v) + + t.Traverse(n.Expr) + t.Traverse(n.Key) + t.Traverse(n.Var) + t.Traverse(n.Stmt) +} + +func (t *Traverser) StmtFunction(n *ast.StmtFunction) { + n.Accept(t.v) + + t.Traverse(n.FunctionName) + for _, nn := range n.Params { + nn.Accept(t) + } + t.Traverse(n.ReturnType) + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtGlobal(n *ast.StmtGlobal) { + n.Accept(t.v) + + for _, nn := range n.Vars { + nn.Accept(t) + } +} + +func (t *Traverser) StmtGoto(n *ast.StmtGoto) { + n.Accept(t.v) + + t.Traverse(n.Label) +} + +func (t *Traverser) StmtHaltCompiler(n *ast.StmtHaltCompiler) { + n.Accept(t.v) +} + +func (t *Traverser) StmtIf(n *ast.StmtIf) { + n.Accept(t.v) + + t.Traverse(n.Cond) + t.Traverse(n.Stmt) + for _, nn := range n.ElseIf { + nn.Accept(t) + } + t.Traverse(n.Else) +} + +func (t *Traverser) StmtInlineHtml(n *ast.StmtInlineHtml) { + n.Accept(t.v) +} + +func (t *Traverser) StmtInterface(n *ast.StmtInterface) { + n.Accept(t.v) + + t.Traverse(n.InterfaceName) + for _, nn := range n.Extends { + nn.Accept(t) + } + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtLabel(n *ast.StmtLabel) { + n.Accept(t.v) + + t.Traverse(n.LabelName) +} + +func (t *Traverser) StmtNamespace(n *ast.StmtNamespace) { + n.Accept(t.v) + + t.Traverse(n.Name) + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtNop(n *ast.StmtNop) { + n.Accept(t.v) +} + +func (t *Traverser) StmtProperty(n *ast.StmtProperty) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtPropertyList(n *ast.StmtPropertyList) { + n.Accept(t.v) + + for _, nn := range n.Modifiers { + nn.Accept(t) + } + t.Traverse(n.Type) + for _, nn := range n.Properties { + nn.Accept(t) + } +} + +func (t *Traverser) StmtReturn(n *ast.StmtReturn) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtStatic(n *ast.StmtStatic) { + n.Accept(t.v) + + for _, nn := range n.Vars { + nn.Accept(t) + } +} + +func (t *Traverser) StmtStaticVar(n *ast.StmtStaticVar) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtStmtList(n *ast.StmtStmtList) { + n.Accept(t.v) + + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtSwitch(n *ast.StmtSwitch) { + n.Accept(t.v) + + t.Traverse(n.Cond) + for _, nn := range n.CaseList { + nn.Accept(t) + } +} + +func (t *Traverser) StmtThrow(n *ast.StmtThrow) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) StmtTrait(n *ast.StmtTrait) { + n.Accept(t.v) + + t.Traverse(n.TraitName) + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) StmtTraitUse(n *ast.StmtTraitUse) { + n.Accept(t.v) + + for _, nn := range n.Traits { + nn.Accept(t) + } + for _, nn := range n.Adaptations { + nn.Accept(t) + } +} + +func (t *Traverser) StmtTraitUseAlias(n *ast.StmtTraitUseAlias) { + n.Accept(t.v) + + t.Traverse(n.Trait) + t.Traverse(n.Method) + t.Traverse(n.Modifier) + t.Traverse(n.Alias) +} + +func (t *Traverser) StmtTraitUsePrecedence(n *ast.StmtTraitUsePrecedence) { + n.Accept(t.v) + + t.Traverse(n.Trait) + t.Traverse(n.Method) + for _, nn := range n.Insteadof { + nn.Accept(t) + } +} + +func (t *Traverser) StmtTry(n *ast.StmtTry) { + n.Accept(t.v) + + for _, nn := range n.Stmts { + nn.Accept(t) + } + for _, nn := range n.Catches { + nn.Accept(t) + } + t.Traverse(n.Finally) +} + +func (t *Traverser) StmtUnset(n *ast.StmtUnset) { + n.Accept(t.v) + + for _, nn := range n.Vars { + nn.Accept(t) + } +} + +func (t *Traverser) StmtUse(n *ast.StmtUse) { + n.Accept(t.v) + + t.Traverse(n.Type) + for _, nn := range n.UseDeclarations { + nn.Accept(t) + } +} + +func (t *Traverser) StmtGroupUse(n *ast.StmtGroupUse) { + n.Accept(t.v) + + t.Traverse(n.Type) + t.Traverse(n.Prefix) + for _, nn := range n.UseDeclarations { + nn.Accept(t) + } +} + +func (t *Traverser) StmtUseDeclaration(n *ast.StmtUseDeclaration) { + n.Accept(t.v) + + t.Traverse(n.Type) + t.Traverse(n.Use) + t.Traverse(n.Alias) +} + +func (t *Traverser) StmtWhile(n *ast.StmtWhile) { + n.Accept(t.v) + + t.Traverse(n.Cond) + t.Traverse(n.Stmt) +} + +func (t *Traverser) ExprArray(n *ast.ExprArray) { + n.Accept(t.v) + + for _, nn := range n.Items { + nn.Accept(t) + } +} + +func (t *Traverser) ExprArrayDimFetch(n *ast.ExprArrayDimFetch) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Dim) +} + +func (t *Traverser) ExprArrayItem(n *ast.ExprArrayItem) { + n.Accept(t.v) + + t.Traverse(n.Key) + t.Traverse(n.Val) +} + +func (t *Traverser) ExprArrowFunction(n *ast.ExprArrowFunction) { + n.Accept(t.v) + + for _, nn := range n.Params { + nn.Accept(t) + } + t.Traverse(n.ReturnType) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprBitwiseNot(n *ast.ExprBitwiseNot) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprBooleanNot(n *ast.ExprBooleanNot) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprBrackets(n *ast.ExprBrackets) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprClassConstFetch(n *ast.ExprClassConstFetch) { + n.Accept(t.v) + + t.Traverse(n.Class) + t.Traverse(n.ConstantName) +} + +func (t *Traverser) ExprClone(n *ast.ExprClone) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprClosure(n *ast.ExprClosure) { + n.Accept(t.v) + + for _, nn := range n.Params { + nn.Accept(t) + } + for _, nn := range n.Use { + nn.Accept(t) + } + t.Traverse(n.ReturnType) + for _, nn := range n.Stmts { + nn.Accept(t) + } +} + +func (t *Traverser) ExprClosureUse(n *ast.ExprClosureUse) { + n.Accept(t.v) + + t.Traverse(n.Var) +} + +func (t *Traverser) ExprConstFetch(n *ast.ExprConstFetch) { + n.Accept(t.v) + + t.Traverse(n.Const) +} + +func (t *Traverser) ExprEmpty(n *ast.ExprEmpty) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprErrorSuppress(n *ast.ExprErrorSuppress) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprEval(n *ast.ExprEval) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprExit(n *ast.ExprExit) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprFunctionCall(n *ast.ExprFunctionCall) { + n.Accept(t.v) + + t.Traverse(n.Function) + for _, nn := range n.Arguments { + nn.Accept(t) + } +} + +func (t *Traverser) ExprInclude(n *ast.ExprInclude) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprIncludeOnce(n *ast.ExprIncludeOnce) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprInstanceOf(n *ast.ExprInstanceOf) { + n.Accept(t.v) + + t.Traverse(n.Expr) + t.Traverse(n.Class) +} + +func (t *Traverser) ExprIsset(n *ast.ExprIsset) { + n.Accept(t.v) + + for _, nn := range n.Vars { + nn.Accept(t) + } +} + +func (t *Traverser) ExprList(n *ast.ExprList) { + n.Accept(t.v) + + for _, nn := range n.Items { + nn.Accept(t) + } +} + +func (t *Traverser) ExprMethodCall(n *ast.ExprMethodCall) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Method) + for _, nn := range n.Arguments { + nn.Accept(t) + } +} + +func (t *Traverser) ExprNew(n *ast.ExprNew) { + n.Accept(t.v) + + t.Traverse(n.Class) + for _, nn := range n.Arguments { + nn.Accept(t) + } +} + +func (t *Traverser) ExprPostDec(n *ast.ExprPostDec) { + n.Accept(t.v) + + t.Traverse(n.Var) +} + +func (t *Traverser) ExprPostInc(n *ast.ExprPostInc) { + n.Accept(t.v) + + t.Traverse(n.Var) +} + +func (t *Traverser) ExprPreDec(n *ast.ExprPreDec) { + n.Accept(t.v) + + t.Traverse(n.Var) +} + +func (t *Traverser) ExprPreInc(n *ast.ExprPreInc) { + n.Accept(t.v) + + t.Traverse(n.Var) +} + +func (t *Traverser) ExprPrint(n *ast.ExprPrint) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprPropertyFetch(n *ast.ExprPropertyFetch) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Property) +} + +func (t *Traverser) ExprRequire(n *ast.ExprRequire) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprRequireOnce(n *ast.ExprRequireOnce) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprShellExec(n *ast.ExprShellExec) { + n.Accept(t.v) + + for _, nn := range n.Parts { + nn.Accept(t) + } +} + +func (t *Traverser) ExprStaticCall(n *ast.ExprStaticCall) { + n.Accept(t.v) + + t.Traverse(n.Class) + t.Traverse(n.Call) + for _, nn := range n.Arguments { + nn.Accept(t) + } +} + +func (t *Traverser) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { + n.Accept(t.v) + + t.Traverse(n.Class) + t.Traverse(n.Property) +} + +func (t *Traverser) ExprTernary(n *ast.ExprTernary) { + n.Accept(t.v) + + t.Traverse(n.Condition) + t.Traverse(n.IfTrue) + t.Traverse(n.IfFalse) +} + +func (t *Traverser) ExprUnaryMinus(n *ast.ExprUnaryMinus) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprUnaryPlus(n *ast.ExprUnaryPlus) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprVariable(n *ast.ExprVariable) { + n.Accept(t.v) + + t.Traverse(n.VarName) +} + +func (t *Traverser) ExprYield(n *ast.ExprYield) { + n.Accept(t.v) + + t.Traverse(n.Key) + t.Traverse(n.Value) +} + +func (t *Traverser) ExprYieldFrom(n *ast.ExprYieldFrom) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssign(n *ast.ExprAssign) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignReference(n *ast.ExprAssignReference) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignBitwiseAnd(n *ast.ExprAssignBitwiseAnd) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignBitwiseOr(n *ast.ExprAssignBitwiseOr) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignBitwiseXor(n *ast.ExprAssignBitwiseXor) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignCoalesce(n *ast.ExprAssignCoalesce) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignConcat(n *ast.ExprAssignConcat) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignDiv(n *ast.ExprAssignDiv) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignMinus(n *ast.ExprAssignMinus) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignMod(n *ast.ExprAssignMod) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignMul(n *ast.ExprAssignMul) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignPlus(n *ast.ExprAssignPlus) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignPow(n *ast.ExprAssignPow) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignShiftLeft(n *ast.ExprAssignShiftLeft) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprAssignShiftRight(n *ast.ExprAssignShiftRight) { + n.Accept(t.v) + + t.Traverse(n.Var) + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprBinaryBitwiseAnd(n *ast.ExprBinaryBitwiseAnd) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryBitwiseOr(n *ast.ExprBinaryBitwiseOr) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryBitwiseXor(n *ast.ExprBinaryBitwiseXor) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryBooleanAnd(n *ast.ExprBinaryBooleanAnd) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryBooleanOr(n *ast.ExprBinaryBooleanOr) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryCoalesce(n *ast.ExprBinaryCoalesce) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryConcat(n *ast.ExprBinaryConcat) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryDiv(n *ast.ExprBinaryDiv) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryEqual(n *ast.ExprBinaryEqual) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryGreater(n *ast.ExprBinaryGreater) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryGreaterOrEqual(n *ast.ExprBinaryGreaterOrEqual) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryIdentical(n *ast.ExprBinaryIdentical) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryLogicalAnd(n *ast.ExprBinaryLogicalAnd) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryLogicalOr(n *ast.ExprBinaryLogicalOr) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryLogicalXor(n *ast.ExprBinaryLogicalXor) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryMinus(n *ast.ExprBinaryMinus) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryMod(n *ast.ExprBinaryMod) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryMul(n *ast.ExprBinaryMul) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryNotEqual(n *ast.ExprBinaryNotEqual) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryNotIdentical(n *ast.ExprBinaryNotIdentical) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryPlus(n *ast.ExprBinaryPlus) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryPow(n *ast.ExprBinaryPow) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryShiftLeft(n *ast.ExprBinaryShiftLeft) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinaryShiftRight(n *ast.ExprBinaryShiftRight) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinarySmaller(n *ast.ExprBinarySmaller) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinarySmallerOrEqual(n *ast.ExprBinarySmallerOrEqual) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprBinarySpaceship(n *ast.ExprBinarySpaceship) { + n.Accept(t.v) + + t.Traverse(n.Left) + t.Traverse(n.Right) +} + +func (t *Traverser) ExprCastArray(n *ast.ExprCastArray) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprCastBool(n *ast.ExprCastBool) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprCastDouble(n *ast.ExprCastDouble) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprCastInt(n *ast.ExprCastInt) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprCastObject(n *ast.ExprCastObject) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprCastString(n *ast.ExprCastString) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ExprCastUnset(n *ast.ExprCastUnset) { + n.Accept(t.v) + + t.Traverse(n.Expr) +} + +func (t *Traverser) ScalarDnumber(n *ast.ScalarDnumber) { + n.Accept(t.v) +} + +func (t *Traverser) ScalarEncapsed(n *ast.ScalarEncapsed) { + n.Accept(t.v) + + for _, nn := range n.Parts { + nn.Accept(t) + } +} + +func (t *Traverser) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { + n.Accept(t.v) +} + +func (t *Traverser) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { + n.Accept(t.v) + + t.Traverse(n.VarName) + t.Traverse(n.Dim) +} + +func (t *Traverser) ScalarEncapsedStringBrackets(n *ast.ScalarEncapsedStringBrackets) { + n.Accept(t.v) + + t.Traverse(n.Var) +} + +func (t *Traverser) ScalarHeredoc(n *ast.ScalarHeredoc) { + n.Accept(t.v) + + for _, nn := range n.Parts { + nn.Accept(t) + } +} + +func (t *Traverser) ScalarLnumber(n *ast.ScalarLnumber) { + n.Accept(t.v) +} + +func (t *Traverser) ScalarMagicConstant(n *ast.ScalarMagicConstant) { + n.Accept(t.v) +} + +func (t *Traverser) ScalarString(n *ast.ScalarString) { + n.Accept(t.v) +} + +func (t *Traverser) NameName(n *ast.NameName) { + n.Accept(t.v) + + for _, nn := range n.Parts { + nn.Accept(t) + } +} + +func (t *Traverser) NameFullyQualified(n *ast.NameFullyQualified) { + n.Accept(t.v) + + for _, nn := range n.Parts { + nn.Accept(t) + } +} + +func (t *Traverser) NameRelative(n *ast.NameRelative) { + n.Accept(t.v) + + for _, nn := range n.Parts { + nn.Accept(t) + } +} + +func (t *Traverser) NameNamePart(n *ast.NameNamePart) { + n.Accept(t.v) +} From 07f49a4d21a99e69621f2d84560bc3d618344649 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 28 Dec 2020 21:31:24 +0200 Subject: [PATCH 137/140] refactoring: move internal nodes --- internal/php5/node.go | 85 ++++++ internal/php5/php5.go | 602 +++++++++++++++++++++--------------------- internal/php5/php5.y | 602 +++++++++++++++++++++--------------------- internal/php7/node.go | 99 +++++++ internal/php7/php7.go | 440 +++++++++++++++--------------- internal/php7/php7.y | 440 +++++++++++++++--------------- pkg/ast/node.go | 94 ------- 7 files changed, 1226 insertions(+), 1136 deletions(-) create mode 100644 internal/php5/node.go create mode 100644 internal/php7/node.go diff --git a/internal/php5/node.go b/internal/php5/node.go new file mode 100644 index 0000000..6a612ac --- /dev/null +++ b/internal/php5/node.go @@ -0,0 +1,85 @@ +package php5 + +import ( + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" +) + +type ParserBrackets struct { + Position *position.Position + OpenBracketTkn *token.Token + Child ast.Vertex + CloseBracketTkn *token.Token +} + +func (n *ParserBrackets) Accept(v ast.Visitor) { + // do nothing +} + +func (n *ParserBrackets) GetPosition() *position.Position { + return n.Position +} + +type ParserSeparatedList struct { + Position *position.Position + Items []ast.Vertex + SeparatorTkns []*token.Token +} + +func (n *ParserSeparatedList) Accept(v ast.Visitor) { + // do nothing +} + +func (n *ParserSeparatedList) GetPosition() *position.Position { + return n.Position +} + +// TraitAdaptationList node +type TraitAdaptationList struct { + Position *position.Position + OpenCurlyBracketTkn *token.Token + Adaptations []ast.Vertex + CloseCurlyBracketTkn *token.Token +} + +func (n *TraitAdaptationList) Accept(v ast.Visitor) { + // do nothing +} + +func (n *TraitAdaptationList) GetPosition() *position.Position { + return n.Position +} + +// ArgumentList node +type ArgumentList struct { + Position *position.Position + OpenParenthesisTkn *token.Token + Arguments []ast.Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token +} + +func (n *ArgumentList) Accept(v ast.Visitor) { + // do nothing +} + +func (n *ArgumentList) GetPosition() *position.Position { + return n.Position +} + +// TraitMethodRef node +type TraitMethodRef struct { + Position *position.Position + Trait ast.Vertex + DoubleColonTkn *token.Token + Method ast.Vertex +} + +func (n *TraitMethodRef) Accept(v ast.Visitor) { + // do nothing +} + +func (n *TraitMethodRef) GetPosition() *position.Position { + return n.Position +} diff --git a/internal/php5/php5.go b/internal/php5/php5.go index a65a4c8..f93f178 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2342,7 +2342,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:293 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -2362,8 +2362,8 @@ yydefault: Value: yyDollar[3].token.Value, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, part) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, part) yyVAL.node = yyDollar[1].node } @@ -2412,9 +2412,9 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: yyDollar[3].token, } @@ -2427,9 +2427,9 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracketTkn: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -2455,8 +2455,8 @@ yydefault: yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), UseTkn: yyDollar[1].token, - UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[3].token, } } @@ -2472,8 +2472,8 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } @@ -2489,8 +2489,8 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } @@ -2506,8 +2506,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:435 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -2515,7 +2515,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:442 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -2524,11 +2524,11 @@ yydefault: // line internal/php5/php5.y:451 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -2537,11 +2537,11 @@ yydefault: // line internal/php5/php5.y:462 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -2556,12 +2556,12 @@ yydefault: // line internal/php5/php5.y:479 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -2573,9 +2573,9 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ @@ -2589,8 +2589,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:512 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -2598,7 +2598,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:519 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -2607,11 +2607,11 @@ yydefault: // line internal/php5/php5.y:528 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -2620,11 +2620,11 @@ yydefault: // line internal/php5/php5.y:539 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -2639,12 +2639,12 @@ yydefault: // line internal/php5/php5.y:556 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -2656,9 +2656,9 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ @@ -2672,8 +2672,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:589 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -2681,7 +2681,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:596 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -2690,11 +2690,11 @@ yydefault: // line internal/php5/php5.y:605 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -2703,11 +2703,11 @@ yydefault: // line internal/php5/php5.y:616 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -2722,12 +2722,12 @@ yydefault: // line internal/php5/php5.y:633 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -2739,9 +2739,9 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[3].token, Alias: &ast.Identifier{ @@ -2950,14 +2950,14 @@ yydefault: { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token - yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].node.(*ast.ParserSeparatedList).Items - yyDollar[9].node.(*ast.StmtFor).InitSeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].node.(*ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).InitSeparatorTkns = yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).InitSemiColonTkn = yyDollar[4].token - yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].node.(*ast.ParserSeparatedList).Items - yyDollar[9].node.(*ast.StmtFor).CondSeparatorTkns = yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].node.(*ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).CondSeparatorTkns = yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CondSemiColonTkn = yyDollar[6].token - yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items - yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token yyDollar[9].node.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) @@ -3191,8 +3191,8 @@ yydefault: { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token - yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items - yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ParserSeparatedList).Items + yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token yyDollar[5].node.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) @@ -3420,8 +3420,8 @@ yydefault: Value: yyDollar[3].token.Value, }, OpenParenthesisTkn: yyDollar[4].token, - Params: yyDollar[5].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, + Params: yyDollar[5].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].token, OpenCurlyBracketTkn: yyDollar[7].token, Stmts: yyDollar[8].list, @@ -3588,10 +3588,10 @@ yydefault: // line internal/php5/php5.y:1428 { yyVAL.node = &ast.StmtInterface{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), ExtendsTkn: yyDollar[1].token, - Extends: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - ExtendsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Extends: yyDollar[2].node.(*ParserSeparatedList).Items, + ExtendsSeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } } case 105: @@ -3605,17 +3605,17 @@ yydefault: // line internal/php5/php5.y:1444 { yyVAL.node = &ast.StmtClass{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), ImplementsTkn: yyDollar[1].token, - Implements: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - ImplementsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Implements: yyDollar[2].node.(*ParserSeparatedList).Items, + ImplementsSeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } } case 107: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:1456 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -3623,8 +3623,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1462 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -3663,7 +3663,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:1498 { - pairList := yyDollar[3].node.(*ast.ParserSeparatedList) + pairList := yyDollar[3].node.(*ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { @@ -3674,8 +3674,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, } } @@ -3755,7 +3755,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1590 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -3774,9 +3774,9 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] // line internal/php5/php5.y:1607 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append( - yyDollar[1].node.(*ast.ParserSeparatedList).Items, + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append( + yyDollar[1].node.(*ParserSeparatedList).Items, &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Name: &ast.Identifier{ @@ -3992,13 +3992,13 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php5/php5.y:1820 { - yyVAL.node = &ast.ParserSeparatedList{} + yyVAL.node = &ParserSeparatedList{} } case 143: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:1827 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4006,8 +4006,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1833 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4105,7 +4105,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:1929 { - yyVAL.node = &ast.ArgumentList{ + yyVAL.node = &ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, @@ -4115,7 +4115,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1937 { - argumentList := yyDollar[2].node.(*ast.ArgumentList) + argumentList := yyDollar[2].node.(*ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) argumentList.OpenParenthesisTkn = yyDollar[1].token argumentList.CloseParenthesisTkn = yyDollar[3].token @@ -4126,7 +4126,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1946 { - yyVAL.node = &ast.ArgumentList{ + yyVAL.node = &ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenParenthesisTkn: yyDollar[1].token, Arguments: []ast.Vertex{ @@ -4142,7 +4142,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:1964 { - yyVAL.node = &ast.ArgumentList{ + yyVAL.node = &ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, } } @@ -4150,8 +4150,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:1970 { - yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) + yyDollar[1].node.(*ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ArgumentList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ArgumentList).Arguments = append(yyDollar[1].node.(*ArgumentList).Arguments, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4346,8 +4346,8 @@ yydefault: yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), Modifiers: yyDollar[1].list, - Properties: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Properties: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[3].token, } } @@ -4385,8 +4385,8 @@ yydefault: Value: yyDollar[4].token.Value, }, OpenParenthesisTkn: yyDollar[5].token, - Params: yyDollar[6].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[6].node.(*ast.ParserSeparatedList).SeparatorTkns, + Params: yyDollar[6].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[6].node.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[7].token, Stmt: yyDollar[8].node, } @@ -4398,12 +4398,12 @@ yydefault: traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, - Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Traits: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } switch n := yyDollar[3].node.(type) { - case *ast.TraitAdaptationList: + case *TraitAdaptationList: traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn traitUse.Adaptations = n.Adaptations traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn @@ -4417,7 +4417,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:2223 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4425,8 +4425,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2229 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4443,7 +4443,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2246 { - yyVAL.node = &ast.TraitAdaptationList{ + yyVAL.node = &TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, @@ -4495,20 +4495,20 @@ yydefault: // line internal/php5/php5.y:2295 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ParserSeparatedList).Items), + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, InsteadofTkn: yyDollar[2].token, - Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Insteadof: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, } } case 187: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:2310 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4516,8 +4516,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2316 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4525,7 +4525,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:2326 { - yyVAL.node = &ast.TraitMethodRef{ + yyVAL.node = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4544,7 +4544,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2344 { - yyVAL.node = &ast.TraitMethodRef{ + yyVAL.node = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -4561,9 +4561,9 @@ yydefault: { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, Alias: &ast.Identifier{ @@ -4579,9 +4579,9 @@ yydefault: { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, } @@ -4736,8 +4736,8 @@ yydefault: }, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, item) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, item) yyVAL.node = yyDollar[1].node } @@ -4759,8 +4759,8 @@ yydefault: Expr: yyDollar[5].node, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, item) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, item) yyVAL.node = yyDollar[1].node } @@ -4768,7 +4768,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:2550 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4789,7 +4789,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2569 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), @@ -4869,7 +4869,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php5/php5.y:2649 { - yyVAL.node = &ast.ParserSeparatedList{} + yyVAL.node = &ParserSeparatedList{} } case 219: yyDollar = yyS[yypt-1 : yypt+1] @@ -4881,8 +4881,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:2660 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4890,7 +4890,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:2667 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4973,10 +4973,10 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, - OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[3].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[3].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[3].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[3].node.(*ArgumentList).CloseParenthesisTkn, } } else { yyVAL.node = &ast.ExprNew{ @@ -4995,8 +4995,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, }, EqualTkn: yyDollar[5].token, @@ -5036,10 +5036,10 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[4].token, yyDollar[6].node), NewTkn: yyDollar[4].token, Class: yyDollar[5].node, - OpenParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[6].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[6].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[6].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[6].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[6].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[6].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[6].node.(*ArgumentList).CloseParenthesisTkn, } } else { _new = &ast.ExprNew{ @@ -5800,8 +5800,8 @@ yydefault: closure.FunctionTkn = yyDollar[1].token closure.AmpersandTkn = yyDollar[2].token closure.OpenParenthesisTkn = yyDollar[3].token - closure.Params = yyDollar[4].node.(*ast.ParserSeparatedList).Items - closure.SeparatorTkns = yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns + closure.Params = yyDollar[4].node.(*ParserSeparatedList).Items + closure.SeparatorTkns = yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns closure.CloseParenthesisTkn = yyDollar[5].token closure.OpenCurlyBracketTkn = yyDollar[7].token closure.Stmts = yyDollar[8].list @@ -5820,8 +5820,8 @@ yydefault: closure.FunctionTkn = yyDollar[2].token closure.AmpersandTkn = yyDollar[3].token closure.OpenParenthesisTkn = yyDollar[4].token - closure.Params = yyDollar[5].node.(*ast.ParserSeparatedList).Items - closure.SeparatorTkns = yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns + closure.Params = yyDollar[5].node.(*ParserSeparatedList).Items + closure.SeparatorTkns = yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns closure.CloseParenthesisTkn = yyDollar[6].token closure.OpenCurlyBracketTkn = yyDollar[8].token closure.Stmts = yyDollar[9].list @@ -5933,8 +5933,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, } } @@ -5945,8 +5945,8 @@ yydefault: yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, - Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[3].token, } } @@ -5969,8 +5969,8 @@ yydefault: yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, UseOpenParenthesisTkn: yyDollar[2].token, - Use: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - UseSeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Use: yyDollar[3].node.(*ParserSeparatedList).Items, + UseSeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: yyDollar[4].token, } } @@ -5990,8 +5990,8 @@ yydefault: }, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, variable) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, variable) yyVAL.node = yyDollar[1].node } @@ -6012,8 +6012,8 @@ yydefault: }, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, variable) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, variable) yyVAL.node = yyDollar[1].node } @@ -6033,7 +6033,7 @@ yydefault: }, } - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{variable}, } } @@ -6054,7 +6054,7 @@ yydefault: }, } - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{variable}, } } @@ -6063,16 +6063,16 @@ yydefault: // line internal/php5/php5.y:3674 { yyVAL.node = &ast.ExprFunctionCall{ - Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[2].node), + Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[2].node), Function: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } } case 324: @@ -6082,16 +6082,16 @@ yydefault: yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[4].node), Function: &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, }, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } } case 325: @@ -6101,15 +6101,15 @@ yydefault: yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Function: &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, - OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[3].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[3].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[3].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[3].node.(*ArgumentList).CloseParenthesisTkn, } } case 326: @@ -6121,13 +6121,13 @@ yydefault: Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -6144,10 +6144,10 @@ yydefault: Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } } case 328: @@ -6159,13 +6159,13 @@ yydefault: Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -6182,10 +6182,10 @@ yydefault: Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } } case 330: @@ -6195,10 +6195,10 @@ yydefault: yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } } case 331: @@ -6216,9 +6216,9 @@ yydefault: // line internal/php5/php5.y:3812 { yyVAL.node = &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, } } case 333: @@ -6226,11 +6226,11 @@ yydefault: // line internal/php5/php5.y:3820 { yyVAL.node = &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, } } case 334: @@ -6238,10 +6238,10 @@ yydefault: // line internal/php5/php5.y:3830 { yyVAL.node = &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } } case 335: @@ -6249,9 +6249,9 @@ yydefault: // line internal/php5/php5.y:3842 { yyVAL.node = &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, } } case 336: @@ -6259,11 +6259,11 @@ yydefault: // line internal/php5/php5.y:3850 { yyVAL.node = &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, } } case 337: @@ -6271,10 +6271,10 @@ yydefault: // line internal/php5/php5.y:3860 { yyVAL.node = &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } } case 338: @@ -6401,7 +6401,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php5/php5.y:3986 { - yyVAL.node = &ast.ArgumentList{} + yyVAL.node = &ArgumentList{} } case 352: yyDollar = yyS[yypt-1 : yypt+1] @@ -6574,11 +6574,11 @@ yydefault: // line internal/php5/php5.y:4134 { yyVAL.node = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Const: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -6587,13 +6587,13 @@ yydefault: // line internal/php5/php5.y:4145 { yyVAL.node = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -6602,12 +6602,12 @@ yydefault: // line internal/php5/php5.y:4158 { yyVAL.node = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -6619,8 +6619,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, } } @@ -6631,8 +6631,8 @@ yydefault: yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, - Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[3].token, } } @@ -7032,11 +7032,11 @@ yydefault: // line internal/php5/php5.y:4514 { yyVAL.node = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Const: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -7045,13 +7045,13 @@ yydefault: // line internal/php5/php5.y:4525 { yyVAL.node = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -7060,12 +7060,12 @@ yydefault: // line internal/php5/php5.y:4538 { yyVAL.node = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -7136,15 +7136,15 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php5/php5.y:4605 { - yyVAL.node = &ast.ParserSeparatedList{} + yyVAL.node = &ParserSeparatedList{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:4609 { if yyDollar[2].token != nil { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, &ast.ExprArrayItem{}) } yyVAL.node = yyDollar[1].node @@ -7172,8 +7172,8 @@ yydefault: Val: yyDollar[5].node, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node } @@ -7186,8 +7186,8 @@ yydefault: Val: yyDollar[3].node, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node } @@ -7195,7 +7195,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:4658 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7210,7 +7210,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:4671 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7433,10 +7433,10 @@ yydefault: { yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), - OpenParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[1].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[1].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[1].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[1].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[1].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[1].node.(*ArgumentList).CloseParenthesisTkn, } } case 444: @@ -7690,7 +7690,7 @@ yydefault: Property: yyDollar[1].node, } - if brackets, ok := yyDollar[1].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[1].node.(*ParserBrackets); ok { property.OpenCurlyBracketTkn = brackets.OpenBracketTkn property.Property = brackets.Child property.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -7712,7 +7712,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5158 { - yyVAL.node = &ast.ParserBrackets{ + yyVAL.node = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, @@ -7743,8 +7743,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5189 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -7752,7 +7752,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:5196 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -7769,7 +7769,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5213 { - pairList := yyDollar[3].node.(*ast.ParserSeparatedList) + pairList := yyDollar[3].node.(*ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { @@ -7782,8 +7782,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, }, } @@ -7798,15 +7798,15 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php5/php5.y:5242 { - yyVAL.node = &ast.ParserSeparatedList{} + yyVAL.node = &ParserSeparatedList{} } case 482: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:5246 { if yyDollar[2].token != nil { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, &ast.ExprArrayItem{}) } yyVAL.node = yyDollar[1].node @@ -7822,8 +7822,8 @@ yydefault: Val: yyDollar[5].node, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node } @@ -7836,8 +7836,8 @@ yydefault: Val: yyDollar[3].node, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node } @@ -7845,7 +7845,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5284 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), @@ -7860,7 +7860,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:5297 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), @@ -7881,8 +7881,8 @@ yydefault: Val: yyDollar[6].node, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node } @@ -7896,8 +7896,8 @@ yydefault: Val: yyDollar[4].node, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, arrayItem) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, arrayItem) yyVAL.node = yyDollar[1].node } @@ -7905,7 +7905,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:5336 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), @@ -7921,7 +7921,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:5350 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), @@ -8128,8 +8128,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), IssetTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, - Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Vars: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].token, } } @@ -8213,7 +8213,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:5611 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -8221,8 +8221,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:5617 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 581d612..54e00b5 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -291,7 +291,7 @@ top_statement_list: namespace_name: T_STRING { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ Position: yylex.(*Parser).builder.NewTokenPosition($1), @@ -309,8 +309,8 @@ namespace_name: Value: $3.Value, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, part) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, part) $$ = $1 } @@ -350,9 +350,9 @@ top_statement: Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: $3, } @@ -363,9 +363,9 @@ top_statement: Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracketTkn: $3, Stmts: $4, @@ -387,8 +387,8 @@ top_statement: $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), UseTkn: $1, - UseDeclarations: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } } @@ -402,8 +402,8 @@ top_statement: IdentifierTkn: $2, Value: $2.Value, }, - UseDeclarations: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -417,8 +417,8 @@ top_statement: IdentifierTkn: $2, Value: $2.Value, }, - UseDeclarations: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -433,14 +433,14 @@ top_statement: use_declarations: use_declarations ',' use_declaration { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | use_declaration { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -450,22 +450,22 @@ use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, } } | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -478,12 +478,12 @@ use_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -493,9 +493,9 @@ use_declaration: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ @@ -510,14 +510,14 @@ use_declaration: use_function_declarations: use_function_declarations ',' use_function_declaration { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | use_function_declaration { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -527,22 +527,22 @@ use_function_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, } } | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -555,12 +555,12 @@ use_function_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -570,9 +570,9 @@ use_function_declaration: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ @@ -587,14 +587,14 @@ use_function_declaration: use_const_declarations: use_const_declarations ',' use_const_declaration { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | use_const_declaration { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -604,22 +604,22 @@ use_const_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, } } | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -632,12 +632,12 @@ use_const_declaration: | T_NS_SEPARATOR namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -647,9 +647,9 @@ use_const_declaration: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: $3, Alias: &ast.Identifier{ @@ -841,14 +841,14 @@ unticked_statement: { $9.(*ast.StmtFor).ForTkn = $1 $9.(*ast.StmtFor).OpenParenthesisTkn = $2 - $9.(*ast.StmtFor).Init = $3.(*ast.ParserSeparatedList).Items - $9.(*ast.StmtFor).InitSeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns + $9.(*ast.StmtFor).Init = $3.(*ParserSeparatedList).Items + $9.(*ast.StmtFor).InitSeparatorTkns = $3.(*ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).InitSemiColonTkn = $4 - $9.(*ast.StmtFor).Cond = $5.(*ast.ParserSeparatedList).Items - $9.(*ast.StmtFor).CondSeparatorTkns = $5.(*ast.ParserSeparatedList).SeparatorTkns + $9.(*ast.StmtFor).Cond = $5.(*ParserSeparatedList).Items + $9.(*ast.StmtFor).CondSeparatorTkns = $5.(*ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CondSemiColonTkn = $6 - $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items - $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns + $9.(*ast.StmtFor).Loop = $7.(*ParserSeparatedList).Items + $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 $9.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) @@ -1046,8 +1046,8 @@ unticked_statement: { $5.(*ast.StmtDeclare).DeclareTkn = $1 $5.(*ast.StmtDeclare).OpenParenthesisTkn = $2 - $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items - $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns + $5.(*ast.StmtDeclare).Consts = $3.(*ParserSeparatedList).Items + $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 $5.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) @@ -1265,8 +1265,8 @@ unticked_function_declaration_statement: Value: $3.Value, }, OpenParenthesisTkn: $4, - Params: $5.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, + Params: $5.(*ParserSeparatedList).Items, + SeparatorTkns: $5.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $6, OpenCurlyBracketTkn: $7, Stmts: $8, @@ -1427,10 +1427,10 @@ interface_extends_list: | T_EXTENDS interface_list { $$ = &ast.StmtInterface{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), ExtendsTkn: $1, - Extends: $2.(*ast.ParserSeparatedList).Items, - ExtendsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Extends: $2.(*ParserSeparatedList).Items, + ExtendsSeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }; } ; @@ -1443,10 +1443,10 @@ implements_list: | T_IMPLEMENTS interface_list { $$ = &ast.StmtClass{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), ImplementsTkn: $1, - Implements: $2.(*ast.ParserSeparatedList).Items, - ImplementsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Implements: $2.(*ParserSeparatedList).Items, + ImplementsSeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }; } ; @@ -1454,14 +1454,14 @@ implements_list: interface_list: fully_qualified_class_name { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | interface_list ',' fully_qualified_class_name { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } @@ -1496,7 +1496,7 @@ foreach_variable: } | T_LIST '(' assignment_list ')' { - pairList := $3.(*ast.ParserSeparatedList) + pairList := $3.(*ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { @@ -1507,8 +1507,8 @@ foreach_variable: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, } } @@ -1588,7 +1588,7 @@ declare_statement: declare_list: T_STRING '=' static_scalar { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), @@ -1605,9 +1605,9 @@ declare_list: } | declare_list ',' T_STRING '=' static_scalar { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append( - $1.(*ast.ParserSeparatedList).Items, + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append( + $1.(*ParserSeparatedList).Items, &ast.StmtConstant{ Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Name: &ast.Identifier{ @@ -1818,21 +1818,21 @@ parameter_list: } | /* empty */ { - $$ = &ast.ParserSeparatedList{} + $$ = &ParserSeparatedList{} } ; non_empty_parameter_list: parameter { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | non_empty_parameter_list ',' parameter { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } @@ -1927,7 +1927,7 @@ optional_class_type: function_call_parameter_list: '(' ')' { - $$ = &ast.ArgumentList{ + $$ = &ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, @@ -1935,7 +1935,7 @@ function_call_parameter_list: } | '(' non_empty_function_call_parameter_list ')' { - argumentList := $2.(*ast.ArgumentList) + argumentList := $2.(*ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) argumentList.OpenParenthesisTkn = $1 argumentList.CloseParenthesisTkn = $3 @@ -1944,7 +1944,7 @@ function_call_parameter_list: } | '(' yield_expr ')' { - $$ = &ast.ArgumentList{ + $$ = &ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenParenthesisTkn: $1, Arguments: []ast.Vertex{ @@ -1962,14 +1962,14 @@ function_call_parameter_list: non_empty_function_call_parameter_list: function_call_parameter { - $$ = &ast.ArgumentList{ + $$ = &ArgumentList{ Arguments: []ast.Vertex{$1}, } } | non_empty_function_call_parameter_list ',' function_call_parameter { - $1.(*ast.ArgumentList).SeparatorTkns = append($1.(*ast.ArgumentList).SeparatorTkns, $2) - $1.(*ast.ArgumentList).Arguments = append($1.(*ast.ArgumentList).Arguments, $3) + $1.(*ArgumentList).SeparatorTkns = append($1.(*ArgumentList).SeparatorTkns, $2) + $1.(*ArgumentList).Arguments = append($1.(*ArgumentList).Arguments, $3) $$ = $1 } @@ -2154,8 +2154,8 @@ class_statement: $$ = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $3), Modifiers: $1, - Properties: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Properties: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } } @@ -2187,8 +2187,8 @@ class_statement: Value: $4.Value, }, OpenParenthesisTkn: $5, - Params: $6.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $6.(*ast.ParserSeparatedList).SeparatorTkns, + Params: $6.(*ParserSeparatedList).Items, + SeparatorTkns: $6.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $7, Stmt: $8, } @@ -2201,12 +2201,12 @@ trait_use_statement: traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, - Traits: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Traits: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, } switch n := $3.(type) { - case *ast.TraitAdaptationList : + case *TraitAdaptationList : traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn traitUse.Adaptations = n.Adaptations traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn @@ -2221,14 +2221,14 @@ trait_use_statement: trait_list: fully_qualified_class_name { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | trait_list ',' fully_qualified_class_name { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } @@ -2244,7 +2244,7 @@ trait_adaptations: } | '{' trait_adaptation_list '}' { - $$ = &ast.TraitAdaptationList{ + $$ = &TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, Adaptations: $2, @@ -2294,13 +2294,13 @@ trait_precedence: trait_method_reference_fully_qualified T_INSTEADOF trait_reference_list { $$ = &ast.StmtTraitUsePrecedence{ - Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ParserSeparatedList).Items), + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, InsteadofTkn: $2, - Insteadof: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Insteadof: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, } } ; @@ -2308,14 +2308,14 @@ trait_precedence: trait_reference_list: fully_qualified_class_name { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | trait_reference_list ',' fully_qualified_class_name { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } @@ -2324,7 +2324,7 @@ trait_reference_list: trait_method_reference: T_STRING { - $$ = &ast.TraitMethodRef{ + $$ = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), @@ -2342,7 +2342,7 @@ trait_method_reference: trait_method_reference_fully_qualified: fully_qualified_class_name T_PAAMAYIM_NEKUDOTAYIM T_STRING { - $$ = &ast.TraitMethodRef{ + $$ = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, @@ -2360,9 +2360,9 @@ trait_alias: { $$ = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ @@ -2376,9 +2376,9 @@ trait_alias: { $$ = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, AsTkn: $2, Modifier: $3, } @@ -2520,8 +2520,8 @@ class_variable_declaration: }, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, item) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, item) $$ = $1 } @@ -2541,14 +2541,14 @@ class_variable_declaration: Expr: $5, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, item) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, item) $$ = $1 } | T_VARIABLE { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenPosition($1), @@ -2567,7 +2567,7 @@ class_variable_declaration: } | T_VARIABLE '=' static_scalar { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.StmtProperty{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), @@ -2647,7 +2647,7 @@ echo_expr_list: for_expr: /* empty */ { - $$ = &ast.ParserSeparatedList{} + $$ = &ParserSeparatedList{} } | non_empty_for_expr { @@ -2658,14 +2658,14 @@ for_expr: non_empty_for_expr: non_empty_for_expr ',' expr { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | expr { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -2743,10 +2743,10 @@ new_expr: Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, - OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $3.(*ast.ArgumentList).Arguments, - SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $3.(*ArgumentList).OpenParenthesisTkn, + Arguments: $3.(*ArgumentList).Arguments, + SeparatorTkns: $3.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $3.(*ArgumentList).CloseParenthesisTkn, } } else { $$ = &ast.ExprNew{ @@ -2766,8 +2766,8 @@ expr_without_variable: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, }, EqualTkn: $5, @@ -2801,10 +2801,10 @@ expr_without_variable: Position: yylex.(*Parser).builder.NewTokenNodePosition($4, $6), NewTkn: $4, Class: $5, - OpenParenthesisTkn: $6.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $6.(*ast.ArgumentList).Arguments, - SeparatorTkns: $6.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $6.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $6.(*ArgumentList).OpenParenthesisTkn, + Arguments: $6.(*ArgumentList).Arguments, + SeparatorTkns: $6.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $6.(*ArgumentList).CloseParenthesisTkn, } } else { _new = &ast.ExprNew{ @@ -3427,8 +3427,8 @@ expr_without_variable: closure.FunctionTkn = $1 closure.AmpersandTkn = $2 closure.OpenParenthesisTkn = $3 - closure.Params = $4.(*ast.ParserSeparatedList).Items - closure.SeparatorTkns = $4.(*ast.ParserSeparatedList).SeparatorTkns + closure.Params = $4.(*ParserSeparatedList).Items + closure.SeparatorTkns = $4.(*ParserSeparatedList).SeparatorTkns closure.CloseParenthesisTkn = $5 closure.OpenCurlyBracketTkn = $7 closure.Stmts = $8 @@ -3445,8 +3445,8 @@ expr_without_variable: closure.FunctionTkn = $2 closure.AmpersandTkn = $3 closure.OpenParenthesisTkn = $4 - closure.Params = $5.(*ast.ParserSeparatedList).Items - closure.SeparatorTkns = $5.(*ast.ParserSeparatedList).SeparatorTkns + closure.Params = $5.(*ParserSeparatedList).Items + closure.SeparatorTkns = $5.(*ParserSeparatedList).SeparatorTkns closure.CloseParenthesisTkn = $6 closure.OpenCurlyBracketTkn = $8 closure.Stmts = $9 @@ -3549,8 +3549,8 @@ combined_scalar: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, } } @@ -3559,8 +3559,8 @@ combined_scalar: $$ = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, - Items: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $3, } } @@ -3583,8 +3583,8 @@ lexical_vars: $$ = &ast.ExprClosure{ UseTkn: $1, UseOpenParenthesisTkn: $2, - Use: $3.(*ast.ParserSeparatedList).Items, - UseSeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Use: $3.(*ParserSeparatedList).Items, + UseSeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: $4, } } @@ -3605,8 +3605,8 @@ lexical_var_list: }, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, variable) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, variable) $$ = $1 } @@ -3625,8 +3625,8 @@ lexical_var_list: }, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, variable) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, variable) $$ = $1 } @@ -3644,7 +3644,7 @@ lexical_var_list: }, } - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ variable }, } } @@ -3663,7 +3663,7 @@ lexical_var_list: }, } - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ variable }, } } @@ -3673,16 +3673,16 @@ function_call: namespace_name function_call_parameter_list { $$ = &ast.ExprFunctionCall{ - Position: yylex.(*Parser).builder.NewNodeListNodePosition($1.(*ast.ParserSeparatedList).Items, $2), + Position: yylex.(*Parser).builder.NewNodeListNodePosition($1.(*ParserSeparatedList).Items, $2), Function: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, - OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ast.ArgumentList).Arguments, - SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ArgumentList).Arguments, + SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name function_call_parameter_list @@ -3690,16 +3690,16 @@ function_call: $$ = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $4), Function: &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, }, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } } | T_NS_SEPARATOR namespace_name function_call_parameter_list @@ -3707,15 +3707,15 @@ function_call: $$ = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Function: &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, - OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $3.(*ast.ArgumentList).Arguments, - SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $3.(*ArgumentList).OpenParenthesisTkn, + Arguments: $3.(*ArgumentList).Arguments, + SeparatorTkns: $3.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $3.(*ArgumentList).CloseParenthesisTkn, } } | class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list @@ -3725,13 +3725,13 @@ function_call: Class: $1, DoubleColonTkn: $2, Call: $3, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := $3.(*ast.ParserBrackets); ok { + if brackets, ok := $3.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -3746,10 +3746,10 @@ function_call: Class: $1, DoubleColonTkn: $2, Call: $3, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_name function_call_parameter_list @@ -3759,13 +3759,13 @@ function_call: Class: $1, DoubleColonTkn: $2, Call: $3, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := $3.(*ast.ParserBrackets); ok { + if brackets, ok := $3.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -3780,10 +3780,10 @@ function_call: Class: $1, DoubleColonTkn: $2, Call: $3, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } } | variable_without_objects function_call_parameter_list @@ -3791,10 +3791,10 @@ function_call: $$ = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, - OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ast.ArgumentList).Arguments, - SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ArgumentList).Arguments, + SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } } ; @@ -3811,28 +3811,28 @@ class_name: | namespace_name { $$ = &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, } } ; @@ -3841,28 +3841,28 @@ fully_qualified_class_name: namespace_name { $$ = &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, } } ; @@ -3984,7 +3984,7 @@ backticks_expr: ctor_arguments: /* empty */ { - $$ = &ast.ArgumentList{} + $$ = &ArgumentList{} } | function_call_parameter_list { @@ -4133,36 +4133,36 @@ static_scalar_value: | namespace_name { $$ = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Const: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, }, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -4172,8 +4172,8 @@ static_scalar_value: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, } } @@ -4182,8 +4182,8 @@ static_scalar_value: $$ = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, - Items: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $3, } } @@ -4513,36 +4513,36 @@ general_constant: | namespace_name { $$ = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Const: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), Const: &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, }, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.ExprConstFetch{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), Const: &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -4603,13 +4603,13 @@ scalar: static_array_pair_list: /* empty */ { - $$ = &ast.ParserSeparatedList{} + $$ = &ParserSeparatedList{} } | non_empty_static_array_pair_list possible_comma { if $2 != nil { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, &ast.ExprArrayItem{}) } $$ = $1 @@ -4637,8 +4637,8 @@ non_empty_static_array_pair_list: Val: $5, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, arrayItem) $$ = $1 } @@ -4649,14 +4649,14 @@ non_empty_static_array_pair_list: Val: $3, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, arrayItem) $$ = $1 } | static_scalar_value T_DOUBLE_ARROW static_scalar_value { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), @@ -4669,7 +4669,7 @@ non_empty_static_array_pair_list: } | static_scalar_value { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition($1), @@ -4895,10 +4895,10 @@ method: { $$ = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition($1), - OpenParenthesisTkn: $1.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $1.(*ast.ArgumentList).Arguments, - SeparatorTkns: $1.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $1.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $1.(*ArgumentList).OpenParenthesisTkn, + Arguments: $1.(*ArgumentList).Arguments, + SeparatorTkns: $1.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $1.(*ArgumentList).CloseParenthesisTkn, } } ; @@ -5135,7 +5135,7 @@ object_dim_list: Property: $1, } - if brackets, ok := $1.(*ast.ParserBrackets); ok { + if brackets, ok := $1.(*ParserBrackets); ok { property.OpenCurlyBracketTkn = brackets.OpenBracketTkn property.Property = brackets.Child property.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -5156,7 +5156,7 @@ variable_name: } | '{' expr '}' { - $$ = &ast.ParserBrackets{ + $$ = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, @@ -5187,14 +5187,14 @@ simple_indirect_reference: assignment_list: assignment_list ',' assignment_list_element { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | assignment_list_element { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -5211,7 +5211,7 @@ assignment_list_element: } | T_LIST '(' assignment_list ')' { - pairList := $3.(*ast.ParserSeparatedList) + pairList := $3.(*ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { @@ -5224,8 +5224,8 @@ assignment_list_element: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, }, } @@ -5240,13 +5240,13 @@ assignment_list_element: array_pair_list: /* empty */ { - $$ = &ast.ParserSeparatedList{} + $$ = &ParserSeparatedList{} } | non_empty_array_pair_list possible_comma { if $2 != nil { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, &ast.ExprArrayItem{}) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, &ast.ExprArrayItem{}) } $$ = $1 @@ -5263,8 +5263,8 @@ non_empty_array_pair_list: Val: $5, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, arrayItem) $$ = $1 } @@ -5275,14 +5275,14 @@ non_empty_array_pair_list: Val: $3, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, arrayItem) $$ = $1 } | expr T_DOUBLE_ARROW expr { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), @@ -5295,7 +5295,7 @@ non_empty_array_pair_list: } | expr { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodePosition($1), @@ -5314,8 +5314,8 @@ non_empty_array_pair_list: Val: $6, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, arrayItem) $$ = $1 } @@ -5327,14 +5327,14 @@ non_empty_array_pair_list: Val: $4, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, arrayItem) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, arrayItem) $$ = $1 } | expr T_DOUBLE_ARROW '&' w_variable { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), @@ -5348,7 +5348,7 @@ non_empty_array_pair_list: } | '&' w_variable { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.ExprArrayItem{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), @@ -5537,8 +5537,8 @@ internal_functions_in_yacc: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), IssetTkn: $1, OpenParenthesisTkn: $2, - Vars: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Vars: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $4, } } @@ -5609,14 +5609,14 @@ internal_functions_in_yacc: isset_variables: isset_variable { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | isset_variables ',' isset_variable { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } diff --git a/internal/php7/node.go b/internal/php7/node.go new file mode 100644 index 0000000..dfb0236 --- /dev/null +++ b/internal/php7/node.go @@ -0,0 +1,99 @@ +package php7 + +import ( + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/position" + "github.com/z7zmey/php-parser/pkg/token" +) + +type ParserBrackets struct { + Position *position.Position + OpenBracketTkn *token.Token + Child ast.Vertex + CloseBracketTkn *token.Token +} + +func (n *ParserBrackets) Accept(v ast.Visitor) { + // do nothing +} + +func (n *ParserBrackets) GetPosition() *position.Position { + return n.Position +} + +type ParserSeparatedList struct { + Position *position.Position + Items []ast.Vertex + SeparatorTkns []*token.Token +} + +func (n *ParserSeparatedList) Accept(v ast.Visitor) { + // do nothing +} + +func (n *ParserSeparatedList) GetPosition() *position.Position { + return n.Position +} + +// TraitAdaptationList node +type TraitAdaptationList struct { + Position *position.Position + OpenCurlyBracketTkn *token.Token + Adaptations []ast.Vertex + CloseCurlyBracketTkn *token.Token +} + +func (n *TraitAdaptationList) Accept(v ast.Visitor) { + // do nothing +} + +func (n *TraitAdaptationList) GetPosition() *position.Position { + return n.Position +} + +// ArgumentList node +type ArgumentList struct { + Position *position.Position + OpenParenthesisTkn *token.Token + Arguments []ast.Vertex + SeparatorTkns []*token.Token + CloseParenthesisTkn *token.Token +} + +func (n *ArgumentList) Accept(v ast.Visitor) { + // do nothing +} + +func (n *ArgumentList) GetPosition() *position.Position { + return n.Position +} + +type ReturnType struct { + Position *position.Position + ColonTkn *token.Token + Type ast.Vertex +} + +func (n *ReturnType) Accept(v ast.Visitor) { + // do nothing +} + +func (n *ReturnType) GetPosition() *position.Position { + return n.Position +} + +// TraitMethodRef node +type TraitMethodRef struct { + Position *position.Position + Trait ast.Vertex + DoubleColonTkn *token.Token + Method ast.Vertex +} + +func (n *TraitMethodRef) Accept(v ast.Visitor) { + // do nothing +} + +func (n *TraitMethodRef) GetPosition() *position.Position { + return n.Position +} diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 8c4c775..9810e30 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2596,7 +2596,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:338 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -2616,8 +2616,8 @@ yydefault: Value: yyDollar[3].token.Value, } - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, part) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, part) yyVAL.node = yyDollar[1].node } @@ -2626,9 +2626,9 @@ yydefault: // line internal/php7/php7.y:366 { yyVAL.node = &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, } } case 84: @@ -2636,11 +2636,11 @@ yydefault: // line internal/php7/php7.y:374 { yyVAL.node = &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[3].node.(*ParserSeparatedList).Items), NsTkn: yyDollar[1].token, NsSeparatorTkn: yyDollar[2].token, - Parts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, } } case 85: @@ -2648,10 +2648,10 @@ yydefault: // line internal/php7/php7.y:384 { yyVAL.node = &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } } case 86: @@ -2711,9 +2711,9 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: yyDollar[3].token, } @@ -2726,9 +2726,9 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), NsTkn: yyDollar[1].token, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracketTkn: yyDollar[3].token, Stmts: yyDollar[4].list, @@ -2779,8 +2779,8 @@ yydefault: yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), UseTkn: yyDollar[1].token, - UseDeclarations: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[3].token, } } @@ -2792,8 +2792,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, Type: yyDollar[2].node, - UseDeclarations: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } @@ -2804,8 +2804,8 @@ yydefault: yyVAL.node = &ast.StmtConstList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), ConstTkn: yyDollar[1].token, - Consts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Consts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[3].token, } } @@ -2834,20 +2834,20 @@ yydefault: // line internal/php7/php7.y:543 { if yyDollar[5].token != nil { - yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) + yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[5].token) } yyVAL.node = &ast.StmtGroupUse{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[6].token), Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[2].token, OpenCurlyBracketTkn: yyDollar[3].token, - UseDeclarations: yyDollar[4].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[4].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[6].token, } } @@ -2856,21 +2856,21 @@ yydefault: // line internal/php7/php7.y:563 { if yyDollar[6].token != nil { - yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) + yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[6].token) } yyVAL.node = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[3].token, OpenCurlyBracketTkn: yyDollar[4].token, - UseDeclarations: yyDollar[5].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[5].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[7].token, } } @@ -2879,20 +2879,20 @@ yydefault: // line internal/php7/php7.y:587 { if yyDollar[5].token != nil { - yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[5].token) + yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[5].token) } yyVAL.node = &ast.StmtGroupUse{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[6].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[6].token), Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[2].token, OpenCurlyBracketTkn: yyDollar[3].token, - UseDeclarations: yyDollar[4].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[4].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[6].token, } } @@ -2901,21 +2901,21 @@ yydefault: // line internal/php7/php7.y:607 { if yyDollar[6].token != nil { - yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[6].token) + yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[6].token) } yyVAL.node = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), + Parts: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[3].token, OpenCurlyBracketTkn: yyDollar[4].token, - UseDeclarations: yyDollar[5].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: yyDollar[5].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[7].token, } } @@ -2935,8 +2935,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:642 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -2944,7 +2944,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:649 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -2952,8 +2952,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:658 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -2961,7 +2961,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:665 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -2969,8 +2969,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:674 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -2978,7 +2978,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:681 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -3003,11 +3003,11 @@ yydefault: // line internal/php7/php7.y:705 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, } } @@ -3016,11 +3016,11 @@ yydefault: // line internal/php7/php7.y:716 { yyVAL.node = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].token), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ast.ParserSeparatedList).Items), - Parts: yyDollar[1].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), + Parts: yyDollar[1].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ @@ -3050,8 +3050,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:751 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -3059,7 +3059,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:758 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -3182,14 +3182,14 @@ yydefault: { yyDollar[9].node.(*ast.StmtFor).ForTkn = yyDollar[1].token yyDollar[9].node.(*ast.StmtFor).OpenParenthesisTkn = yyDollar[2].token - yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].node.(*ast.ParserSeparatedList).Items - yyDollar[9].node.(*ast.StmtFor).InitSeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[9].node.(*ast.StmtFor).Init = yyDollar[3].node.(*ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).InitSeparatorTkns = yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).InitSemiColonTkn = yyDollar[4].token - yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].node.(*ast.ParserSeparatedList).Items - yyDollar[9].node.(*ast.StmtFor).CondSeparatorTkns = yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[9].node.(*ast.StmtFor).Cond = yyDollar[5].node.(*ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).CondSeparatorTkns = yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CondSemiColonTkn = yyDollar[6].token - yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ast.ParserSeparatedList).Items - yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[9].node.(*ast.StmtFor).Loop = yyDollar[7].node.(*ParserSeparatedList).Items + yyDollar[9].node.(*ast.StmtFor).LoopSeparatorTkns = yyDollar[7].node.(*ParserSeparatedList).SeparatorTkns yyDollar[9].node.(*ast.StmtFor).CloseParenthesisTkn = yyDollar[8].token yyDollar[9].node.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[9].node) @@ -3355,8 +3355,8 @@ yydefault: { yyDollar[5].node.(*ast.StmtDeclare).DeclareTkn = yyDollar[1].token yyDollar[5].node.(*ast.StmtDeclare).OpenParenthesisTkn = yyDollar[2].token - yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ast.ParserSeparatedList).Items - yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns + yyDollar[5].node.(*ast.StmtDeclare).Consts = yyDollar[3].node.(*ParserSeparatedList).Items + yyDollar[5].node.(*ast.StmtDeclare).SeparatorTkns = yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns yyDollar[5].node.(*ast.StmtDeclare).CloseParenthesisTkn = yyDollar[4].token yyDollar[5].node.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[5].node) @@ -3531,11 +3531,11 @@ yydefault: Value: yyDollar[3].token.Value, }, OpenParenthesisTkn: yyDollar[5].token, - Params: yyDollar[6].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[6].node.(*ast.ParserSeparatedList).SeparatorTkns, + Params: yyDollar[6].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[6].node.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[7].token, - ColonTkn: yyDollar[8].node.(*ast.ReturnType).ColonTkn, - ReturnType: yyDollar[8].node.(*ast.ReturnType).Type, + ColonTkn: yyDollar[8].node.(*ReturnType).ColonTkn, + ReturnType: yyDollar[8].node.(*ReturnType).Type, OpenCurlyBracketTkn: yyDollar[9].token, Stmts: yyDollar[10].list, CloseCurlyBracketTkn: yyDollar[11].token, @@ -3727,10 +3727,10 @@ yydefault: // line internal/php7/php7.y:1358 { yyVAL.node = &ast.StmtInterface{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), ExtendsTkn: yyDollar[1].token, - Extends: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - ExtendsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Extends: yyDollar[2].node.(*ParserSeparatedList).Items, + ExtendsSeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } } case 182: @@ -3744,10 +3744,10 @@ yydefault: // line internal/php7/php7.y:1374 { yyVAL.node = &ast.StmtClass{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), ImplementsTkn: yyDollar[1].token, - Implements: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - ImplementsSeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Implements: yyDollar[2].node.(*ParserSeparatedList).Items, + ImplementsSeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } } case 184: @@ -3774,8 +3774,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, } } @@ -3786,8 +3786,8 @@ yydefault: yyVAL.node = &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, - Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[3].token, } } @@ -4101,13 +4101,13 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php7/php7.y:1709 { - yyVAL.node = &ast.ParserSeparatedList{} + yyVAL.node = &ParserSeparatedList{} } case 215: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:1716 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4115,8 +4115,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:1722 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4236,13 +4236,13 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php7/php7.y:1838 { - yyVAL.node = &ast.ReturnType{} + yyVAL.node = &ReturnType{} } case 227: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:1842 { - yyVAL.node = &ast.ReturnType{ + yyVAL.node = &ReturnType{ ColonTkn: yyDollar[1].token, Type: yyDollar[2].node, } @@ -4251,7 +4251,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:1852 { - yyVAL.node = &ast.ArgumentList{ + yyVAL.node = &ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenParenthesisTkn: yyDollar[1].token, CloseParenthesisTkn: yyDollar[2].token, @@ -4261,7 +4261,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:1860 { - argumentList := yyDollar[2].node.(*ast.ArgumentList) + argumentList := yyDollar[2].node.(*ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) argumentList.OpenParenthesisTkn = yyDollar[1].token if yyDollar[3].token != nil { @@ -4275,7 +4275,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:1875 { - yyVAL.node = &ast.ArgumentList{ + yyVAL.node = &ArgumentList{ Arguments: []ast.Vertex{yyDollar[1].node}, } } @@ -4283,8 +4283,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:1881 { - yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ast.ArgumentList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ArgumentList).Arguments = append(yyDollar[1].node.(*ast.ArgumentList).Arguments, yyDollar[3].node) + yyDollar[1].node.(*ArgumentList).SeparatorTkns = append(yyDollar[1].node.(*ArgumentList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ArgumentList).Arguments = append(yyDollar[1].node.(*ArgumentList).Arguments, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4402,8 +4402,8 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), Modifiers: yyDollar[1].list, Type: yyDollar[2].node, - Properties: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Properties: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } @@ -4415,8 +4415,8 @@ yydefault: Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[4].token), Modifiers: yyDollar[1].list, ConstTkn: yyDollar[2].token, - Consts: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Consts: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } } @@ -4427,12 +4427,12 @@ yydefault: traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), UseTkn: yyDollar[1].token, - Traits: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Traits: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, } switch n := yyDollar[3].node.(type) { - case *ast.TraitAdaptationList: + case *TraitAdaptationList: traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn traitUse.Adaptations = n.Adaptations traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn @@ -4462,11 +4462,11 @@ yydefault: Value: yyDollar[4].token.Value, }, OpenParenthesisTkn: yyDollar[6].token, - Params: yyDollar[7].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[7].node.(*ast.ParserSeparatedList).SeparatorTkns, + Params: yyDollar[7].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[7].node.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[8].token, - ColonTkn: yyDollar[9].node.(*ast.ReturnType).ColonTkn, - ReturnType: yyDollar[9].node.(*ast.ReturnType).Type, + ColonTkn: yyDollar[9].node.(*ReturnType).ColonTkn, + ReturnType: yyDollar[9].node.(*ReturnType).Type, Stmt: yyDollar[10].node, } } @@ -4474,7 +4474,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2064 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4482,8 +4482,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:2070 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4500,7 +4500,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:2087 { - yyVAL.node = &ast.TraitAdaptationList{ + yyVAL.node = &TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), OpenCurlyBracketTkn: yyDollar[1].token, CloseCurlyBracketTkn: yyDollar[2].token, @@ -4510,7 +4510,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:2095 { - yyVAL.node = &ast.TraitAdaptationList{ + yyVAL.node = &TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, Adaptations: yyDollar[2].list, @@ -4550,13 +4550,13 @@ yydefault: // line internal/php7/php7.y:2133 { yyVAL.node = &ast.StmtTraitUsePrecedence{ - Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ast.ParserSeparatedList).Items), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Position: yylex.(*Parser).builder.NewNodeNodeListPosition(yyDollar[1].node, yyDollar[3].node.(*ParserSeparatedList).Items), + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, InsteadofTkn: yyDollar[2].token, - Insteadof: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Insteadof: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, } } case 257: @@ -4565,9 +4565,9 @@ yydefault: { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4582,9 +4582,9 @@ yydefault: { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, AsTkn: yyDollar[2].token, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), @@ -4599,9 +4599,9 @@ yydefault: { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[4].token), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, Alias: &ast.Identifier{ @@ -4617,9 +4617,9 @@ yydefault: { yyVAL.node = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), - Trait: yyDollar[1].node.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: yyDollar[1].node.(*ast.TraitMethodRef).DoubleColonTkn, - Method: yyDollar[1].node.(*ast.TraitMethodRef).Method, + Trait: yyDollar[1].node.(*TraitMethodRef).Trait, + DoubleColonTkn: yyDollar[1].node.(*TraitMethodRef).DoubleColonTkn, + Method: yyDollar[1].node.(*TraitMethodRef).Method, AsTkn: yyDollar[2].token, Modifier: yyDollar[3].node, } @@ -4628,7 +4628,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2208 { - yyVAL.node = &ast.TraitMethodRef{ + yyVAL.node = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), @@ -4647,7 +4647,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:2226 { - yyVAL.node = &ast.TraitMethodRef{ + yyVAL.node = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Trait: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, @@ -4784,8 +4784,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:2351 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4793,7 +4793,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2358 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4836,8 +4836,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:2401 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4845,7 +4845,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2408 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4906,7 +4906,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php7/php7.y:2472 { - yyVAL.node = &ast.ParserSeparatedList{} + yyVAL.node = &ParserSeparatedList{} } case 290: yyDollar = yyS[yypt-1 : yypt+1] @@ -4918,8 +4918,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:2483 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -4927,7 +4927,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:2490 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -4938,10 +4938,10 @@ yydefault: class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, OpenCurlyBracketTkn: yyDollar[6].token, Stmts: yyDollar[7].list, CloseCurlyBracketTkn: yyDollar[8].token, @@ -4969,10 +4969,10 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), NewTkn: yyDollar[1].token, Class: yyDollar[2].node, - OpenParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[3].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[3].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[3].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[3].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[3].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[3].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[3].node.(*ArgumentList).CloseParenthesisTkn, } } else { yyVAL.node = &ast.ExprNew{ @@ -5002,8 +5002,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, }, EqualTkn: yyDollar[5].token, @@ -5019,8 +5019,8 @@ yydefault: Var: &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, - Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[3].token, }, EqualTkn: yyDollar[4].token, @@ -5837,11 +5837,11 @@ yydefault: closure.FunctionTkn = yyDollar[1].token closure.AmpersandTkn = yyDollar[2].token closure.OpenParenthesisTkn = yyDollar[4].token - closure.Params = yyDollar[5].node.(*ast.ParserSeparatedList).Items - closure.SeparatorTkns = yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns + closure.Params = yyDollar[5].node.(*ParserSeparatedList).Items + closure.SeparatorTkns = yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns closure.CloseParenthesisTkn = yyDollar[6].token - closure.ColonTkn = yyDollar[8].node.(*ast.ReturnType).ColonTkn - closure.ReturnType = yyDollar[8].node.(*ast.ReturnType).Type + closure.ColonTkn = yyDollar[8].node.(*ReturnType).ColonTkn + closure.ReturnType = yyDollar[8].node.(*ReturnType).Type closure.OpenCurlyBracketTkn = yyDollar[9].token closure.Stmts = yyDollar[10].list closure.CloseCurlyBracketTkn = yyDollar[11].token @@ -5857,11 +5857,11 @@ yydefault: FnTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, OpenParenthesisTkn: yyDollar[3].token, - Params: yyDollar[4].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[4].node.(*ast.ParserSeparatedList).SeparatorTkns, + Params: yyDollar[4].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[5].token, - ColonTkn: yyDollar[6].node.(*ast.ReturnType).ColonTkn, - ReturnType: yyDollar[6].node.(*ast.ReturnType).Type, + ColonTkn: yyDollar[6].node.(*ReturnType).ColonTkn, + ReturnType: yyDollar[6].node.(*ReturnType).Type, DoubleArrowTkn: yyDollar[8].token, Expr: yyDollar[9].node, } @@ -5891,8 +5891,8 @@ yydefault: yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, UseOpenParenthesisTkn: yyDollar[2].token, - Use: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - UseSeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Use: yyDollar[3].node.(*ParserSeparatedList).Items, + UseSeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: yyDollar[4].token, } } @@ -5900,8 +5900,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:3314 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -5909,7 +5909,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:3321 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -5953,10 +5953,10 @@ yydefault: yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } } case 385: @@ -5968,13 +5968,13 @@ yydefault: Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -5991,13 +5991,13 @@ yydefault: Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -6012,10 +6012,10 @@ yydefault: yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, - OpenParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[2].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[2].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } } case 388: @@ -6091,7 +6091,7 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] // line internal/php7/php7.y:3492 { - yyVAL.node = &ast.ArgumentList{} + yyVAL.node = &ArgumentList{} } case 398: yyDollar = yyS[yypt-1 : yypt+1] @@ -6107,8 +6107,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ArrayTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, } } @@ -6119,8 +6119,8 @@ yydefault: yyVAL.node = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, - Items: yyDollar[2].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[3].token, } } @@ -6461,13 +6461,13 @@ yydefault: Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, Method: yyDollar[3].node, - OpenParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ast.ArgumentList).Arguments, - SeparatorTkns: yyDollar[4].node.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: yyDollar[4].node.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, + Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { methodCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn methodCall.Method = brackets.Child methodCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -6504,7 +6504,7 @@ yydefault: Property: yyDollar[3].node, } - if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn propertyFetch.Property = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -6610,7 +6610,7 @@ yydefault: Property: yyDollar[3].node, } - if brackets, ok := yyDollar[3].node.(*ast.ParserBrackets); ok { + if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn propertyFetch.Property = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -6654,7 +6654,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:3985 { - yyVAL.node = &ast.ParserBrackets{ + yyVAL.node = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, @@ -6681,7 +6681,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4009 { - yyVAL.node = &ast.ParserBrackets{ + yyVAL.node = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenBracketTkn: yyDollar[1].token, Child: yyDollar[2].node, @@ -6698,7 +6698,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:4025 { - pairList := yyDollar[1].node.(*ast.ParserSeparatedList) + pairList := yyDollar[1].node.(*ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { @@ -6723,8 +6723,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4050 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } @@ -6732,7 +6732,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:4057 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -6800,8 +6800,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[3].token, yyDollar[6].token), ListTkn: yyDollar[3].token, OpenBracketTkn: yyDollar[4].token, - Items: yyDollar[5].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[5].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[5].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[6].token, }, } @@ -6816,8 +6816,8 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ListTkn: yyDollar[1].token, OpenBracketTkn: yyDollar[2].token, - Items: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Items: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: yyDollar[4].token, }, } @@ -7042,15 +7042,15 @@ yydefault: // line internal/php7/php7.y:4335 { if yyDollar[4].token != nil { - yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[4].token) + yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[4].token) } yyVAL.node = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), IssetTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].token, - Vars: yyDollar[3].node.(*ast.ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ast.ParserSeparatedList).SeparatorTkns, + Vars: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: yyDollar[5].token, } } @@ -7122,7 +7122,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:4405 { - yyVAL.node = &ast.ParserSeparatedList{ + yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{yyDollar[1].node}, } } @@ -7130,8 +7130,8 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:4411 { - yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ast.ParserSeparatedList).SeparatorTkns, yyDollar[2].token) - yyDollar[1].node.(*ast.ParserSeparatedList).Items = append(yyDollar[1].node.(*ast.ParserSeparatedList).Items, yyDollar[3].node) + yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[2].token) + yyDollar[1].node.(*ParserSeparatedList).Items = append(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].node) yyVAL.node = yyDollar[1].node } diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 0b15329..6a3f21d 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -336,7 +336,7 @@ top_statement_list: namespace_name: T_STRING { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{ &ast.NameNamePart{ Position: yylex.(*Parser).builder.NewTokenPosition($1), @@ -354,8 +354,8 @@ namespace_name: Value: $3.Value, } - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, part) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, part) $$ = $1 } @@ -365,28 +365,28 @@ name: namespace_name { $$ = &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, } } | T_NAMESPACE T_NS_SEPARATOR namespace_name { $$ = &ast.NameRelative{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $3.(*ParserSeparatedList).Items), NsTkn: $1, NsSeparatorTkn: $2, - Parts: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, } } | T_NS_SEPARATOR namespace_name { $$ = &ast.NameFullyQualified{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, } } ; @@ -433,9 +433,9 @@ top_statement: Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), NsTkn: $1, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, SemiColonTkn: $3, } @@ -446,9 +446,9 @@ top_statement: Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), NsTkn: $1, Name: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, OpenCurlyBracketTkn: $3, Stmts: $4, @@ -491,8 +491,8 @@ top_statement: $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), UseTkn: $1, - UseDeclarations: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } } @@ -502,8 +502,8 @@ top_statement: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, Type: $2, - UseDeclarations: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -512,8 +512,8 @@ top_statement: $$ = &ast.StmtConstList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), ConstTkn: $1, - Consts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Consts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } } @@ -542,41 +542,41 @@ group_use_declaration: namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { if $5 != nil { - $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) + $4.(*ParserSeparatedList).SeparatorTkns = append($4.(*ParserSeparatedList).SeparatorTkns, $5) } $$ = &ast.StmtGroupUse{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $2, OpenCurlyBracketTkn: $3, - UseDeclarations: $4.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $4.(*ParserSeparatedList).Items, + SeparatorTkns: $4.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $6, } } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations possible_comma '}' { if $6 != nil { - $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) + $5.(*ParserSeparatedList).SeparatorTkns = append($5.(*ParserSeparatedList).SeparatorTkns, $6) } $$ = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $3, OpenCurlyBracketTkn: $4, - UseDeclarations: $5.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $5.(*ParserSeparatedList).Items, + SeparatorTkns: $5.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $7, } } @@ -586,41 +586,41 @@ mixed_group_use_declaration: namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { if $5 != nil { - $4.(*ast.ParserSeparatedList).SeparatorTkns = append($4.(*ast.ParserSeparatedList).SeparatorTkns, $5) + $4.(*ParserSeparatedList).SeparatorTkns = append($4.(*ParserSeparatedList).SeparatorTkns, $5) } $$ = &ast.StmtGroupUse{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $6), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $6), Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $2, OpenCurlyBracketTkn: $3, - UseDeclarations: $4.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $4.(*ParserSeparatedList).Items, + SeparatorTkns: $4.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $6, } } | T_NS_SEPARATOR namespace_name T_NS_SEPARATOR '{' inline_use_declarations possible_comma '}' { if $6 != nil { - $5.(*ast.ParserSeparatedList).SeparatorTkns = append($5.(*ast.ParserSeparatedList).SeparatorTkns, $6) + $5.(*ParserSeparatedList).SeparatorTkns = append($5.(*ParserSeparatedList).SeparatorTkns, $6) } $$ = &ast.StmtGroupUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, Prefix: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ast.ParserSeparatedList).Items), - Parts: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), + Parts: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $3, OpenCurlyBracketTkn: $4, - UseDeclarations: $5.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, + UseDeclarations: $5.(*ParserSeparatedList).Items, + SeparatorTkns: $5.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $7, } } @@ -640,14 +640,14 @@ possible_comma: inline_use_declarations: inline_use_declarations ',' inline_use_declaration { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | inline_use_declaration { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -656,14 +656,14 @@ inline_use_declarations: unprefixed_use_declarations: unprefixed_use_declarations ',' unprefixed_use_declaration { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | unprefixed_use_declaration { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -672,14 +672,14 @@ unprefixed_use_declarations: use_declarations: use_declarations ',' use_declaration { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | use_declaration { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -704,22 +704,22 @@ unprefixed_use_declaration: namespace_name { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, } } | namespace_name T_AS T_STRING { $$ = &ast.StmtUseDeclaration{ - Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ast.ParserSeparatedList).Items, $3), + Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), Use: &ast.NameName{ - Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ast.ParserSeparatedList).Items), - Parts: $1.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $1.(*ast.ParserSeparatedList).SeparatorTkns, + Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), + Parts: $1.(*ParserSeparatedList).Items, + SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, AsTkn: $2, Alias: &ast.Identifier{ @@ -749,14 +749,14 @@ use_declaration: const_list: const_list ',' const_decl { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | const_decl { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -857,14 +857,14 @@ statement: { $9.(*ast.StmtFor).ForTkn = $1 $9.(*ast.StmtFor).OpenParenthesisTkn = $2 - $9.(*ast.StmtFor).Init = $3.(*ast.ParserSeparatedList).Items - $9.(*ast.StmtFor).InitSeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns + $9.(*ast.StmtFor).Init = $3.(*ParserSeparatedList).Items + $9.(*ast.StmtFor).InitSeparatorTkns = $3.(*ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).InitSemiColonTkn = $4 - $9.(*ast.StmtFor).Cond = $5.(*ast.ParserSeparatedList).Items - $9.(*ast.StmtFor).CondSeparatorTkns = $5.(*ast.ParserSeparatedList).SeparatorTkns + $9.(*ast.StmtFor).Cond = $5.(*ParserSeparatedList).Items + $9.(*ast.StmtFor).CondSeparatorTkns = $5.(*ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CondSemiColonTkn = $6 - $9.(*ast.StmtFor).Loop = $7.(*ast.ParserSeparatedList).Items - $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ast.ParserSeparatedList).SeparatorTkns + $9.(*ast.StmtFor).Loop = $7.(*ParserSeparatedList).Items + $9.(*ast.StmtFor).LoopSeparatorTkns = $7.(*ParserSeparatedList).SeparatorTkns $9.(*ast.StmtFor).CloseParenthesisTkn = $8 $9.(*ast.StmtFor).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $9) @@ -1004,8 +1004,8 @@ statement: { $5.(*ast.StmtDeclare).DeclareTkn = $1 $5.(*ast.StmtDeclare).OpenParenthesisTkn = $2 - $5.(*ast.StmtDeclare).Consts = $3.(*ast.ParserSeparatedList).Items - $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ast.ParserSeparatedList).SeparatorTkns + $5.(*ast.StmtDeclare).Consts = $3.(*ParserSeparatedList).Items + $5.(*ast.StmtDeclare).SeparatorTkns = $3.(*ParserSeparatedList).SeparatorTkns $5.(*ast.StmtDeclare).CloseParenthesisTkn = $4 $5.(*ast.StmtDeclare).Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $5) @@ -1166,11 +1166,11 @@ function_declaration_statement: Value: $3.Value, }, OpenParenthesisTkn: $5, - Params: $6.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $6.(*ast.ParserSeparatedList).SeparatorTkns, + Params: $6.(*ParserSeparatedList).Items, + SeparatorTkns: $6.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $7, - ColonTkn: $8.(*ast.ReturnType).ColonTkn, - ReturnType: $8.(*ast.ReturnType).Type, + ColonTkn: $8.(*ReturnType).ColonTkn, + ReturnType: $8.(*ReturnType).Type, OpenCurlyBracketTkn: $9, Stmts: $10, CloseCurlyBracketTkn: $11, @@ -1357,10 +1357,10 @@ interface_extends_list: | T_EXTENDS name_list { $$ = &ast.StmtInterface{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), ExtendsTkn: $1, - Extends: $2.(*ast.ParserSeparatedList).Items, - ExtendsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Extends: $2.(*ParserSeparatedList).Items, + ExtendsSeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }; } ; @@ -1373,10 +1373,10 @@ implements_list: | T_IMPLEMENTS name_list { $$ = &ast.StmtClass{ - Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ast.ParserSeparatedList).Items), + Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), ImplementsTkn: $1, - Implements: $2.(*ast.ParserSeparatedList).Items, - ImplementsSeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Implements: $2.(*ParserSeparatedList).Items, + ImplementsSeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }; } ; @@ -1400,8 +1400,8 @@ foreach_variable: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, } } @@ -1410,8 +1410,8 @@ foreach_variable: $$ = &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, - Items: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $3, } } @@ -1707,21 +1707,21 @@ parameter_list: } | /* empty */ { - $$ = &ast.ParserSeparatedList{} + $$ = &ParserSeparatedList{} } ; non_empty_parameter_list: parameter { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | non_empty_parameter_list ',' parameter { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } @@ -1836,11 +1836,11 @@ type: return_type: /* empty */ { - $$ = &ast.ReturnType{} + $$ = &ReturnType{} } | ':' type_expr { - $$ = &ast.ReturnType{ + $$ = &ReturnType{ ColonTkn: $1, Type: $2, } @@ -1850,7 +1850,7 @@ return_type: argument_list: '(' ')' { - $$ = &ast.ArgumentList{ + $$ = &ArgumentList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenParenthesisTkn: $1, CloseParenthesisTkn: $2, @@ -1858,7 +1858,7 @@ argument_list: } | '(' non_empty_argument_list possible_comma ')' { - argumentList := $2.(*ast.ArgumentList) + argumentList := $2.(*ArgumentList) argumentList.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4) argumentList.OpenParenthesisTkn = $1 if $3 != nil { @@ -1873,14 +1873,14 @@ argument_list: non_empty_argument_list: argument { - $$ = &ast.ArgumentList{ + $$ = &ArgumentList{ Arguments: []ast.Vertex{$1}, } } | non_empty_argument_list ',' argument { - $1.(*ast.ArgumentList).SeparatorTkns = append($1.(*ast.ArgumentList).SeparatorTkns, $2) - $1.(*ast.ArgumentList).Arguments = append($1.(*ast.ArgumentList).Arguments, $3) + $1.(*ArgumentList).SeparatorTkns = append($1.(*ArgumentList).SeparatorTkns, $2) + $1.(*ArgumentList).Arguments = append($1.(*ArgumentList).Arguments, $3) $$ = $1 } @@ -1995,8 +1995,8 @@ class_statement: Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $4), Modifiers: $1, Type: $2, - Properties: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Properties: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -2006,8 +2006,8 @@ class_statement: Position: yylex.(*Parser).builder.NewOptionalListTokensPosition($1, $2, $4), Modifiers: $1, ConstTkn: $2, - Consts: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Consts: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } @@ -2016,12 +2016,12 @@ class_statement: traitUse := &ast.StmtTraitUse{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), UseTkn: $1, - Traits: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Traits: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, } switch n := $3.(type) { - case *ast.TraitAdaptationList : + case *TraitAdaptationList : traitUse.OpenCurlyBracketTkn = n.OpenCurlyBracketTkn traitUse.Adaptations = n.Adaptations traitUse.CloseCurlyBracketTkn = n.CloseCurlyBracketTkn @@ -2049,11 +2049,11 @@ class_statement: Value: $4.Value, }, OpenParenthesisTkn: $6, - Params: $7.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $7.(*ast.ParserSeparatedList).SeparatorTkns, + Params: $7.(*ParserSeparatedList).Items, + SeparatorTkns: $7.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $8, - ColonTkn: $9.(*ast.ReturnType).ColonTkn, - ReturnType: $9.(*ast.ReturnType).Type, + ColonTkn: $9.(*ReturnType).ColonTkn, + ReturnType: $9.(*ReturnType).Type, Stmt: $10, } } @@ -2062,14 +2062,14 @@ class_statement: name_list: name { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | name_list ',' name { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } @@ -2085,7 +2085,7 @@ trait_adaptations: } | '{' '}' { - $$ = &ast.TraitAdaptationList{ + $$ = &TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), OpenCurlyBracketTkn: $1, CloseCurlyBracketTkn: $2, @@ -2093,7 +2093,7 @@ trait_adaptations: } | '{' trait_adaptation_list '}' { - $$ = &ast.TraitAdaptationList{ + $$ = &TraitAdaptationList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, Adaptations: $2, @@ -2132,13 +2132,13 @@ trait_precedence: absolute_trait_method_reference T_INSTEADOF name_list { $$ = &ast.StmtTraitUsePrecedence{ - Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ast.ParserSeparatedList).Items), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Position: yylex.(*Parser).builder.NewNodeNodeListPosition($1, $3.(*ParserSeparatedList).Items), + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, InsteadofTkn: $2, - Insteadof: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Insteadof: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, } } ; @@ -2148,9 +2148,9 @@ trait_alias: { $$ = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, AsTkn: $2, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), @@ -2163,9 +2163,9 @@ trait_alias: { $$ = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, AsTkn: $2, Alias: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), @@ -2178,9 +2178,9 @@ trait_alias: { $$ = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $4), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, AsTkn: $2, Modifier: $3, Alias: &ast.Identifier{ @@ -2194,9 +2194,9 @@ trait_alias: { $$ = &ast.StmtTraitUseAlias{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), - Trait: $1.(*ast.TraitMethodRef).Trait, - DoubleColonTkn: $1.(*ast.TraitMethodRef).DoubleColonTkn, - Method: $1.(*ast.TraitMethodRef).Method, + Trait: $1.(*TraitMethodRef).Trait, + DoubleColonTkn: $1.(*TraitMethodRef).DoubleColonTkn, + Method: $1.(*TraitMethodRef).Method, AsTkn: $2, Modifier: $3, } @@ -2206,7 +2206,7 @@ trait_alias: trait_method_reference: identifier { - $$ = &ast.TraitMethodRef{ + $$ = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewTokenPosition($1), Method: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), @@ -2224,7 +2224,7 @@ trait_method_reference: absolute_trait_method_reference: name T_PAAMAYIM_NEKUDOTAYIM identifier { - $$ = &ast.TraitMethodRef{ + $$ = &TraitMethodRef{ Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Trait: $1, DoubleColonTkn: $2, @@ -2349,14 +2349,14 @@ member_modifier: property_list: property_list ',' property { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | property { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -2399,14 +2399,14 @@ property: class_const_list: class_const_list ',' class_const_decl { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | class_const_decl { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -2470,7 +2470,7 @@ echo_expr: for_exprs: /* empty */ { - $$ = &ast.ParserSeparatedList{} + $$ = &ParserSeparatedList{} } | non_empty_for_exprs { @@ -2481,14 +2481,14 @@ for_exprs: non_empty_for_exprs: non_empty_for_exprs ',' expr { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | expr { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -2500,10 +2500,10 @@ anonymous_class: class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, - OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ast.ArgumentList).Arguments, - SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ArgumentList).Arguments, + SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, OpenCurlyBracketTkn: $6, Stmts: $7, CloseCurlyBracketTkn: $8, @@ -2532,10 +2532,10 @@ new_expr: Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), NewTkn: $1, Class: $2, - OpenParenthesisTkn: $3.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $3.(*ast.ArgumentList).Arguments, - SeparatorTkns: $3.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $3.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $3.(*ArgumentList).OpenParenthesisTkn, + Arguments: $3.(*ArgumentList).Arguments, + SeparatorTkns: $3.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $3.(*ArgumentList).CloseParenthesisTkn, } } else { $$ = &ast.ExprNew{ @@ -2564,8 +2564,8 @@ expr_without_variable: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, }, EqualTkn: $5, @@ -2579,8 +2579,8 @@ expr_without_variable: Var: &ast.ExprList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, - Items: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $3, }, EqualTkn: $4, @@ -3248,11 +3248,11 @@ inline_function: closure.FunctionTkn = $1 closure.AmpersandTkn = $2 closure.OpenParenthesisTkn = $4 - closure.Params = $5.(*ast.ParserSeparatedList).Items - closure.SeparatorTkns = $5.(*ast.ParserSeparatedList).SeparatorTkns + closure.Params = $5.(*ParserSeparatedList).Items + closure.SeparatorTkns = $5.(*ParserSeparatedList).SeparatorTkns closure.CloseParenthesisTkn = $6 - closure.ColonTkn = $8.(*ast.ReturnType).ColonTkn - closure.ReturnType = $8.(*ast.ReturnType).Type + closure.ColonTkn = $8.(*ReturnType).ColonTkn + closure.ReturnType = $8.(*ReturnType).Type closure.OpenCurlyBracketTkn = $9 closure.Stmts = $10 closure.CloseCurlyBracketTkn = $11 @@ -3266,11 +3266,11 @@ inline_function: FnTkn: $1, AmpersandTkn: $2, OpenParenthesisTkn: $3, - Params: $4.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $4.(*ast.ParserSeparatedList).SeparatorTkns, + Params: $4.(*ParserSeparatedList).Items, + SeparatorTkns: $4.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $5, - ColonTkn: $6.(*ast.ReturnType).ColonTkn, - ReturnType: $6.(*ast.ReturnType).Type, + ColonTkn: $6.(*ReturnType).ColonTkn, + ReturnType: $6.(*ReturnType).Type, DoubleArrowTkn: $8, Expr: $9, } @@ -3302,8 +3302,8 @@ lexical_vars: $$ = &ast.ExprClosure{ UseTkn: $1, UseOpenParenthesisTkn: $2, - Use: $3.(*ast.ParserSeparatedList).Items, - UseSeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Use: $3.(*ParserSeparatedList).Items, + UseSeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: $4, } } @@ -3312,14 +3312,14 @@ lexical_vars: lexical_var_list: lexical_var_list ',' lexical_var { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | lexical_var { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -3363,10 +3363,10 @@ function_call: $$ = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, - OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ast.ArgumentList).Arguments, - SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ArgumentList).Arguments, + SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } } | class_name T_PAAMAYIM_NEKUDOTAYIM member_name argument_list @@ -3376,13 +3376,13 @@ function_call: Class: $1, DoubleColonTkn: $2, Call: $3, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := $3.(*ast.ParserBrackets); ok { + if brackets, ok := $3.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -3397,13 +3397,13 @@ function_call: Class: $1, DoubleColonTkn: $2, Call: $3, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := $3.(*ast.ParserBrackets); ok { + if brackets, ok := $3.(*ParserBrackets); ok { staticCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn staticCall.Call = brackets.Child staticCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -3416,10 +3416,10 @@ function_call: $$ = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, - OpenParenthesisTkn: $2.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ast.ArgumentList).Arguments, - SeparatorTkns: $2.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $2.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, + Arguments: $2.(*ArgumentList).Arguments, + SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } } ; @@ -3490,7 +3490,7 @@ backticks_expr: ctor_arguments: /* empty */ { - $$ = &ast.ArgumentList{} + $$ = &ArgumentList{} } | argument_list { @@ -3505,8 +3505,8 @@ dereferencable_scalar: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ArrayTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, } } @@ -3515,8 +3515,8 @@ dereferencable_scalar: $$ = &ast.ExprArray{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, - Items: $2.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $2.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $3, } } @@ -3809,13 +3809,13 @@ callable_variable: Var: $1, ObjectOperatorTkn: $2, Method: $3, - OpenParenthesisTkn: $4.(*ast.ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ast.ArgumentList).Arguments, - SeparatorTkns: $4.(*ast.ArgumentList).SeparatorTkns, - CloseParenthesisTkn: $4.(*ast.ArgumentList).CloseParenthesisTkn, + OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, + Arguments: $4.(*ArgumentList).Arguments, + SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, + CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } - if brackets, ok := $3.(*ast.ParserBrackets); ok { + if brackets, ok := $3.(*ParserBrackets); ok { methodCall.OpenCurlyBracketTkn = brackets.OpenBracketTkn methodCall.Method = brackets.Child methodCall.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -3847,7 +3847,7 @@ variable: Property: $3, } - if brackets, ok := $3.(*ast.ParserBrackets); ok { + if brackets, ok := $3.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn propertyFetch.Property = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -3944,7 +3944,7 @@ new_variable: Property: $3, } - if brackets, ok := $3.(*ast.ParserBrackets); ok { + if brackets, ok := $3.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn propertyFetch.Property = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn @@ -3983,7 +3983,7 @@ member_name: } | '{' expr '}' { - $$ = &ast.ParserBrackets{ + $$ = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, @@ -4007,7 +4007,7 @@ property_name: } | '{' expr '}' { - $$ = &ast.ParserBrackets{ + $$ = &ParserBrackets{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenBracketTkn: $1, Child: $2, @@ -4023,7 +4023,7 @@ property_name: array_pair_list: non_empty_array_pair_list { - pairList := $1.(*ast.ParserSeparatedList) + pairList := $1.(*ParserSeparatedList) fistPair := pairList.Items[0].(*ast.ExprArrayItem) if fistPair.Key == nil && fistPair.Val == nil && len(pairList.Items) == 1 { @@ -4048,14 +4048,14 @@ possible_array_pair: non_empty_array_pair_list: non_empty_array_pair_list ',' possible_array_pair { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } | possible_array_pair { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } @@ -4114,8 +4114,8 @@ array_pair: Position: yylex.(*Parser).builder.NewTokensPosition($3, $6), ListTkn: $3, OpenBracketTkn: $4, - Items: $5.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $5.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $5.(*ParserSeparatedList).Items, + SeparatorTkns: $5.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $6, }, } @@ -4128,8 +4128,8 @@ array_pair: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ListTkn: $1, OpenBracketTkn: $2, - Items: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Items: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseBracketTkn: $4, }, } @@ -4334,15 +4334,15 @@ internal_functions_in_yacc: T_ISSET '(' isset_variables possible_comma ')' { if $4 != nil { - $3.(*ast.ParserSeparatedList).SeparatorTkns = append($3.(*ast.ParserSeparatedList).SeparatorTkns, $4) + $3.(*ParserSeparatedList).SeparatorTkns = append($3.(*ParserSeparatedList).SeparatorTkns, $4) } $$ = &ast.ExprIsset{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), IssetTkn: $1, OpenParenthesisTkn: $2, - Vars: $3.(*ast.ParserSeparatedList).Items, - SeparatorTkns: $3.(*ast.ParserSeparatedList).SeparatorTkns, + Vars: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, CloseParenthesisTkn: $5, } } @@ -4403,14 +4403,14 @@ internal_functions_in_yacc: isset_variables: isset_variable { - $$ = &ast.ParserSeparatedList{ + $$ = &ParserSeparatedList{ Items: []ast.Vertex{$1}, } } | isset_variables ',' isset_variable { - $1.(*ast.ParserSeparatedList).SeparatorTkns = append($1.(*ast.ParserSeparatedList).SeparatorTkns, $2) - $1.(*ast.ParserSeparatedList).Items = append($1.(*ast.ParserSeparatedList).Items, $3) + $1.(*ParserSeparatedList).SeparatorTkns = append($1.(*ParserSeparatedList).SeparatorTkns, $2) + $1.(*ParserSeparatedList).Items = append($1.(*ParserSeparatedList).Items, $3) $$ = $1 } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 043c404..40e1093 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -2644,97 +2644,3 @@ func (n *NameNamePart) Accept(v Visitor) { func (n *NameNamePart) GetPosition() *position.Position { return n.Position } - -// TODO: move to private section - -type ParserBrackets struct { - Position *position.Position - OpenBracketTkn *token.Token - Child Vertex - CloseBracketTkn *token.Token -} - -func (n *ParserBrackets) Accept(v Visitor) { - // do nothing -} - -func (n *ParserBrackets) GetPosition() *position.Position { - return n.Position -} - -type ParserSeparatedList struct { - Position *position.Position - Items []Vertex - SeparatorTkns []*token.Token -} - -func (n *ParserSeparatedList) Accept(v Visitor) { - // do nothing -} - -func (n *ParserSeparatedList) GetPosition() *position.Position { - return n.Position -} - -// TraitAdaptationList node -type TraitAdaptationList struct { - Position *position.Position - OpenCurlyBracketTkn *token.Token - Adaptations []Vertex - CloseCurlyBracketTkn *token.Token -} - -func (n *TraitAdaptationList) Accept(v Visitor) { - // do nothing -} - -func (n *TraitAdaptationList) GetPosition() *position.Position { - return n.Position -} - -// ArgumentList node -type ArgumentList struct { - Position *position.Position - OpenParenthesisTkn *token.Token - Arguments []Vertex - SeparatorTkns []*token.Token - CloseParenthesisTkn *token.Token -} - -func (n *ArgumentList) Accept(v Visitor) { - // do nothing -} - -func (n *ArgumentList) GetPosition() *position.Position { - return n.Position -} - -type ReturnType struct { - Position *position.Position - ColonTkn *token.Token - Type Vertex -} - -func (n *ReturnType) Accept(v Visitor) { - // do nothing -} - -func (n *ReturnType) GetPosition() *position.Position { - return n.Position -} - -// TraitMethodRef node -type TraitMethodRef struct { - Position *position.Position - Trait Vertex - DoubleColonTkn *token.Token - Method Vertex -} - -func (n *TraitMethodRef) Accept(v Visitor) { - // do nothing -} - -func (n *TraitMethodRef) GetPosition() *position.Position { - return n.Position -} From 0701b3552e78b0ad1112e2fe2460467ddaabcc5a Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Mon, 28 Dec 2020 21:43:55 +0200 Subject: [PATCH 138/140] refactoring: fix scanning double dollar in template string --- internal/scanner/scanner.go | 716 ++++++++++++++++--------------- internal/scanner/scanner.rl | 11 +- internal/scanner/scanner_test.go | 42 ++ 3 files changed, 407 insertions(+), 362 deletions(-) diff --git a/internal/scanner/scanner.go b/internal/scanner/scanner.go index 49e8150..7fd94d1 100644 --- a/internal/scanner/scanner.go +++ b/internal/scanner/scanner.go @@ -2203,7 +2203,7 @@ func (lex *Lexer) Lex() *token.Token { goto st_out tr0: lex.cs = 113 - // line internal/scanner/scanner.rl:129 + // line internal/scanner/scanner.rl:130 (lex.p) = (lex.te) - 1 { lex.cs = 116 @@ -2212,7 +2212,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr169: lex.cs = 113 - // line internal/scanner/scanner.rl:129 + // line internal/scanner/scanner.rl:130 lex.te = (lex.p) + 1 { lex.cs = 116 @@ -2221,7 +2221,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr171: lex.cs = 113 - // line internal/scanner/scanner.rl:129 + // line internal/scanner/scanner.rl:130 lex.te = (lex.p) (lex.p)-- { @@ -2232,7 +2232,7 @@ func (lex *Lexer) Lex() *token.Token { tr172: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:126 + // line internal/scanner/scanner.rl:127 lex.te = (lex.p) (lex.p)-- { @@ -2316,7 +2316,7 @@ func (lex *Lexer) Lex() *token.Token { goto tr172 tr4: lex.cs = 116 - // line internal/scanner/scanner.rl:142 + // line internal/scanner/scanner.rl:143 (lex.p) = (lex.te) - 1 { lex.addFreeFloatingToken(tkn, token.T_OPEN_TAG, lex.ts, lex.te) @@ -2325,7 +2325,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr7: lex.cs = 116 - // line internal/scanner/scanner.rl:146 + // line internal/scanner/scanner.rl:147 lex.te = (lex.p) + 1 { lex.ungetCnt(lex.te - lex.ts - 5) @@ -2334,7 +2334,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr177: - // line internal/scanner/scanner.rl:136 + // line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2351,7 +2351,7 @@ func (lex *Lexer) Lex() *token.Token { tr179: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:136 + // line internal/scanner/scanner.rl:137 lex.te = (lex.p) (lex.p)-- { @@ -2367,7 +2367,7 @@ func (lex *Lexer) Lex() *token.Token { goto st116 tr185: lex.cs = 116 - // line internal/scanner/scanner.rl:142 + // line internal/scanner/scanner.rl:143 lex.te = (lex.p) (lex.p)-- { @@ -2377,7 +2377,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr186: lex.cs = 116 - // line internal/scanner/scanner.rl:151 + // line internal/scanner/scanner.rl:152 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -2393,7 +2393,7 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 116 // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:146 + // line internal/scanner/scanner.rl:147 lex.te = (lex.p) (lex.p)-- { @@ -2648,7 +2648,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr4 tr10: - // line internal/scanner/scanner.rl:160 + // line internal/scanner/scanner.rl:161 (lex.p) = (lex.te) - 1 { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) @@ -3458,7 +3458,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr15: - // line internal/scanner/scanner.rl:348 + // line internal/scanner/scanner.rl:349 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3471,7 +3471,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr19: - // line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:372 (lex.p) = (lex.te) - 1 { c := lex.data[lex.p] @@ -3479,7 +3479,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr23: - // line internal/scanner/scanner.rl:335 + // line internal/scanner/scanner.rl:336 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3492,7 +3492,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr38: - // line internal/scanner/scanner.rl:310 + // line internal/scanner/scanner.rl:311 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3505,7 +3505,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr45: - // line internal/scanner/scanner.rl:315 + // line internal/scanner/scanner.rl:316 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3518,7 +3518,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr49: - // line internal/scanner/scanner.rl:311 + // line internal/scanner/scanner.rl:312 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3531,7 +3531,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr57: - // line internal/scanner/scanner.rl:312 + // line internal/scanner/scanner.rl:313 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3544,7 +3544,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr64: - // line internal/scanner/scanner.rl:313 + // line internal/scanner/scanner.rl:314 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3557,7 +3557,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr73: - // line internal/scanner/scanner.rl:314 + // line internal/scanner/scanner.rl:315 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3570,7 +3570,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr84: - // line internal/scanner/scanner.rl:316 + // line internal/scanner/scanner.rl:317 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3583,7 +3583,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr85: - // line internal/scanner/scanner.rl:278 + // line internal/scanner/scanner.rl:279 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3596,7 +3596,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr88: - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:165 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3609,7 +3609,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr98: - // line internal/scanner/scanner.rl:322 + // line internal/scanner/scanner.rl:323 lex.te = (lex.p) + 1 { isDocComment := false @@ -3625,7 +3625,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr99: - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:176 (lex.p) = (lex.te) - 1 { base := 10 @@ -3657,7 +3657,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr112: lex.cs = 123 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:163 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3671,7 +3671,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr128: lex.cs = 123 - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:162 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3684,7 +3684,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr130: - // line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:345 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3697,7 +3697,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr132: - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:260 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -3710,7 +3710,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr143: - // line internal/scanner/scanner.rl:258 + // line internal/scanner/scanner.rl:259 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3723,7 +3723,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr189: - // line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:372 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -3731,7 +3731,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr200: - // line internal/scanner/scanner.rl:335 + // line internal/scanner/scanner.rl:336 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3744,7 +3744,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr234: - // line internal/scanner/scanner.rl:277 + // line internal/scanner/scanner.rl:278 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3758,7 +3758,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr237: lex.cs = 123 - // line internal/scanner/scanner.rl:368 + // line internal/scanner/scanner.rl:369 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3771,7 +3771,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr238: - // line internal/scanner/scanner.rl:341 + // line internal/scanner/scanner.rl:342 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3781,7 +3781,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr240: - // line internal/scanner/scanner.rl:342 + // line internal/scanner/scanner.rl:343 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3791,7 +3791,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr241: - // line internal/scanner/scanner.rl:160 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -3801,7 +3801,7 @@ func (lex *Lexer) Lex() *token.Token { tr243: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:160 + // line internal/scanner/scanner.rl:161 lex.te = (lex.p) (lex.p)-- { @@ -3809,7 +3809,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr247: - // line internal/scanner/scanner.rl:371 + // line internal/scanner/scanner.rl:372 lex.te = (lex.p) (lex.p)-- { @@ -3818,7 +3818,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr248: - // line internal/scanner/scanner.rl:335 + // line internal/scanner/scanner.rl:336 lex.te = (lex.p) (lex.p)-- { @@ -3832,7 +3832,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr250: - // line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) (lex.p)-- { @@ -3846,7 +3846,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr251: - // line internal/scanner/scanner.rl:297 + // line internal/scanner/scanner.rl:298 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3860,7 +3860,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr252: lex.cs = 123 - // line internal/scanner/scanner.rl:369 + // line internal/scanner/scanner.rl:370 lex.te = (lex.p) (lex.p)-- { @@ -3874,7 +3874,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr253: - // line internal/scanner/scanner.rl:318 + // line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { @@ -3885,7 +3885,7 @@ func (lex *Lexer) Lex() *token.Token { tr256: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:318 + // line internal/scanner/scanner.rl:319 lex.te = (lex.p) (lex.p)-- { @@ -3894,7 +3894,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr261: - // line internal/scanner/scanner.rl:343 + // line internal/scanner/scanner.rl:344 lex.te = (lex.p) (lex.p)-- { @@ -3908,7 +3908,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr262: - // line internal/scanner/scanner.rl:291 + // line internal/scanner/scanner.rl:292 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3921,7 +3921,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr263: - // line internal/scanner/scanner.rl:280 + // line internal/scanner/scanner.rl:281 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3934,7 +3934,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr264: - // line internal/scanner/scanner.rl:282 + // line internal/scanner/scanner.rl:283 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3947,7 +3947,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr266: - // line internal/scanner/scanner.rl:285 + // line internal/scanner/scanner.rl:286 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3960,7 +3960,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr267: - // line internal/scanner/scanner.rl:304 + // line internal/scanner/scanner.rl:305 lex.te = (lex.p) (lex.p)-- { @@ -3974,7 +3974,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr268: - // line internal/scanner/scanner.rl:286 + // line internal/scanner/scanner.rl:287 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -3987,7 +3987,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr269: - // line internal/scanner/scanner.rl:293 + // line internal/scanner/scanner.rl:294 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4000,7 +4000,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr270: - // line internal/scanner/scanner.rl:288 + // line internal/scanner/scanner.rl:289 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4013,7 +4013,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr271: - // line internal/scanner/scanner.rl:292 + // line internal/scanner/scanner.rl:293 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4026,7 +4026,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr272: - // line internal/scanner/scanner.rl:289 + // line internal/scanner/scanner.rl:290 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4040,7 +4040,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr273: lex.cs = 123 - // line internal/scanner/scanner.rl:346 + // line internal/scanner/scanner.rl:347 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4053,7 +4053,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr275: - // line internal/scanner/scanner.rl:284 + // line internal/scanner/scanner.rl:285 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4066,7 +4066,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr276: - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:165 lex.te = (lex.p) (lex.p)-- { @@ -4080,7 +4080,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr279: - // line internal/scanner/scanner.rl:287 + // line internal/scanner/scanner.rl:288 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4093,7 +4093,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr280: - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:176 lex.te = (lex.p) (lex.p)-- { @@ -4125,7 +4125,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr285: - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:166 lex.te = (lex.p) (lex.p)-- { @@ -4152,7 +4152,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr286: - // line internal/scanner/scanner.rl:190 + // line internal/scanner/scanner.rl:191 lex.te = (lex.p) (lex.p)-- { @@ -4179,7 +4179,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr287: - // line internal/scanner/scanner.rl:279 + // line internal/scanner/scanner.rl:280 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4193,7 +4193,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr288: lex.cs = 123 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4210,7 +4210,7 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 123 // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:162 + // line internal/scanner/scanner.rl:163 lex.te = (lex.p) (lex.p)-- { @@ -4224,7 +4224,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr293: - // line internal/scanner/scanner.rl:296 + // line internal/scanner/scanner.rl:297 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4237,7 +4237,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr294: - // line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:306 lex.te = (lex.p) (lex.p)-- { @@ -4251,7 +4251,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr295: - // line internal/scanner/scanner.rl:300 + // line internal/scanner/scanner.rl:301 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4267,7 +4267,7 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 123 // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:354 + // line internal/scanner/scanner.rl:355 lex.te = (lex.p) (lex.p)-- { @@ -4289,7 +4289,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr297: - // line internal/scanner/scanner.rl:303 + // line internal/scanner/scanner.rl:304 lex.te = (lex.p) (lex.p)-- { @@ -4303,7 +4303,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr298: - // line internal/scanner/scanner.rl:295 + // line internal/scanner/scanner.rl:296 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4316,7 +4316,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr300: - // line internal/scanner/scanner.rl:294 + // line internal/scanner/scanner.rl:295 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4329,7 +4329,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr301: - // line internal/scanner/scanner.rl:298 + // line internal/scanner/scanner.rl:299 lex.te = (lex.p) (lex.p)-- { @@ -4343,7 +4343,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr302: - // line internal/scanner/scanner.rl:299 + // line internal/scanner/scanner.rl:300 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4356,7 +4356,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr303: - // line internal/scanner/scanner.rl:302 + // line internal/scanner/scanner.rl:303 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4369,7 +4369,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr305: - // line internal/scanner/scanner.rl:306 + // line internal/scanner/scanner.rl:307 lex.te = (lex.p) (lex.p)-- { @@ -4383,7 +4383,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr306: - // line internal/scanner/scanner.rl:301 + // line internal/scanner/scanner.rl:302 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4397,7 +4397,7 @@ func (lex *Lexer) Lex() *token.Token { goto st123 tr309: lex.cs = 123 - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4414,7 +4414,7 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 123 // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:161 + // line internal/scanner/scanner.rl:162 lex.te = (lex.p) (lex.p)-- { @@ -4428,7 +4428,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr312: - // line internal/scanner/scanner.rl:307 + // line internal/scanner/scanner.rl:308 lex.te = (lex.p) (lex.p)-- { @@ -4442,7 +4442,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr313: - // line internal/scanner/scanner.rl:308 + // line internal/scanner/scanner.rl:309 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4455,7 +4455,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr314: - // line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:345 lex.te = (lex.p) (lex.p)-- { @@ -4469,7 +4469,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr394: - // line internal/scanner/scanner.rl:216 + // line internal/scanner/scanner.rl:217 lex.te = (lex.p) (lex.p)-- { @@ -4483,7 +4483,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr414: - // line internal/scanner/scanner.rl:220 + // line internal/scanner/scanner.rl:221 lex.te = (lex.p) (lex.p)-- { @@ -4497,7 +4497,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr443: - // line internal/scanner/scanner.rl:228 + // line internal/scanner/scanner.rl:229 lex.te = (lex.p) (lex.p)-- { @@ -4511,7 +4511,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr447: - // line internal/scanner/scanner.rl:230 + // line internal/scanner/scanner.rl:231 lex.te = (lex.p) (lex.p)-- { @@ -4525,7 +4525,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr479: - // line internal/scanner/scanner.rl:260 + // line internal/scanner/scanner.rl:261 lex.te = (lex.p) (lex.p)-- { @@ -4539,7 +4539,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr547: - // line internal/scanner/scanner.rl:262 + // line internal/scanner/scanner.rl:263 lex.te = (lex.p) (lex.p)-- { @@ -4553,7 +4553,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr593: - // line internal/scanner/scanner.rl:259 + // line internal/scanner/scanner.rl:260 lex.te = (lex.p) (lex.p)-- { @@ -4567,7 +4567,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr594: - // line internal/scanner/scanner.rl:290 + // line internal/scanner/scanner.rl:291 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4580,7 +4580,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr668: - // line internal/scanner/scanner.rl:283 + // line internal/scanner/scanner.rl:284 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4593,7 +4593,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st123 tr669: - // line internal/scanner/scanner.rl:281 + // line internal/scanner/scanner.rl:282 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -4952,7 +4952,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:369 + // line internal/scanner/scanner.rl:370 lex.act = 140 goto st129 st129: @@ -5021,6 +5021,8 @@ func (lex *Lexer) Lex() *token.Token { goto tr14 case 34: goto tr15 + case 36: + goto st8 case 92: goto st9 case 96: @@ -5104,7 +5106,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof130 } st_case_130: - // line internal/scanner/scanner.go:3976 + // line internal/scanner/scanner.go:3978 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5184,7 +5186,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof131 } st_case_131: - // line internal/scanner/scanner.go:4056 + // line internal/scanner/scanner.go:4058 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -5311,7 +5313,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof136 } st_case_136: - // line internal/scanner/scanner.go:4183 + // line internal/scanner/scanner.go:4185 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5340,7 +5342,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof11 } st_case_11: - // line internal/scanner/scanner.go:4212 + // line internal/scanner/scanner.go:4214 switch lex.data[(lex.p)] { case 10: goto tr21 @@ -5374,7 +5376,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof137 } st_case_137: - // line internal/scanner/scanner.go:4246 + // line internal/scanner/scanner.go:4248 switch lex.data[(lex.p)] { case 9: goto st13 @@ -6222,7 +6224,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof142 } st_case_142: - // line internal/scanner/scanner.go:5094 + // line internal/scanner/scanner.go:5096 switch lex.data[(lex.p)] { case 46: goto st67 @@ -6246,7 +6248,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st143 st143: @@ -6254,7 +6256,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof143 } st_case_143: - // line internal/scanner/scanner.go:5126 + // line internal/scanner/scanner.go:5128 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6295,7 +6297,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st144 st144: @@ -6303,7 +6305,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof144 } st_case_144: - // line internal/scanner/scanner.go:5175 + // line internal/scanner/scanner.go:5177 if lex.data[(lex.p)] == 95 { goto st69 } @@ -6330,7 +6332,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof145 } st_case_145: - // line internal/scanner/scanner.go:5202 + // line internal/scanner/scanner.go:5204 switch lex.data[(lex.p)] { case 42: goto st71 @@ -6375,7 +6377,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof71 } st_case_71: - // line internal/scanner/scanner.go:5247 + // line internal/scanner/scanner.go:5249 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6416,7 +6418,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof72 } st_case_72: - // line internal/scanner/scanner.go:5288 + // line internal/scanner/scanner.go:5290 switch lex.data[(lex.p)] { case 10: goto tr95 @@ -6435,7 +6437,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof73 } st_case_73: - // line internal/scanner/scanner.go:5307 + // line internal/scanner/scanner.go:5309 switch lex.data[(lex.p)] { case 10: goto tr91 @@ -6451,7 +6453,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:176 lex.act = 12 goto st146 st146: @@ -6459,7 +6461,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof146 } st_case_146: - // line internal/scanner/scanner.go:5331 + // line internal/scanner/scanner.go:5333 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6482,7 +6484,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:164 + // line internal/scanner/scanner.rl:165 lex.act = 10 goto st147 st147: @@ -6490,7 +6492,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof147 } st_case_147: - // line internal/scanner/scanner.go:5362 + // line internal/scanner/scanner.go:5364 switch lex.data[(lex.p)] { case 69: goto st68 @@ -6505,7 +6507,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:175 + // line internal/scanner/scanner.rl:176 lex.act = 12 goto st148 st148: @@ -6513,7 +6515,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof148 } st_case_148: - // line internal/scanner/scanner.go:5385 + // line internal/scanner/scanner.go:5387 switch lex.data[(lex.p)] { case 46: goto tr281 @@ -6550,7 +6552,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:165 + // line internal/scanner/scanner.rl:166 lex.act = 11 goto st149 st149: @@ -6558,7 +6560,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof149 } st_case_149: - // line internal/scanner/scanner.go:5430 + // line internal/scanner/scanner.go:5432 if lex.data[(lex.p)] == 95 { goto st75 } @@ -6588,7 +6590,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:190 + // line internal/scanner/scanner.rl:191 lex.act = 13 goto st150 st150: @@ -6596,7 +6598,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof150 } st_case_150: - // line internal/scanner/scanner.go:5468 + // line internal/scanner/scanner.go:5470 if lex.data[(lex.p)] == 95 { goto st76 } @@ -6632,7 +6634,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof152 } st_case_152: - // line internal/scanner/scanner.go:5504 + // line internal/scanner/scanner.go:5506 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6656,7 +6658,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof77 } st_case_77: - // line internal/scanner/scanner.go:5528 + // line internal/scanner/scanner.go:5530 switch lex.data[(lex.p)] { case 10: goto tr104 @@ -6702,7 +6704,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof78 } st_case_78: - // line internal/scanner/scanner.go:5574 + // line internal/scanner/scanner.go:5576 switch lex.data[(lex.p)] { case 10: goto tr108 @@ -6748,7 +6750,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof79 } st_case_79: - // line internal/scanner/scanner.go:5620 + // line internal/scanner/scanner.go:5622 if lex.data[(lex.p)] == 10 { goto tr104 } @@ -6762,7 +6764,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof80 } st_case_80: - // line internal/scanner/scanner.go:5634 + // line internal/scanner/scanner.go:5636 if lex.data[(lex.p)] == 62 { goto tr111 } @@ -6777,7 +6779,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof153 } st_case_153: - // line internal/scanner/scanner.go:5649 + // line internal/scanner/scanner.go:5651 switch lex.data[(lex.p)] { case 10: goto tr113 @@ -6802,7 +6804,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof154 } st_case_154: - // line internal/scanner/scanner.go:5674 + // line internal/scanner/scanner.go:5676 goto tr290 tr289: // line internal/scanner/scanner.rl:38 @@ -6821,7 +6823,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof81 } st_case_81: - // line internal/scanner/scanner.go:5693 + // line internal/scanner/scanner.go:5695 if lex.data[(lex.p)] == 10 { goto tr113 } @@ -6844,7 +6846,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:305 + // line internal/scanner/scanner.rl:306 lex.act = 118 goto st156 st156: @@ -6852,7 +6854,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof156 } st_case_156: - // line internal/scanner/scanner.go:5724 + // line internal/scanner/scanner.go:5726 switch lex.data[(lex.p)] { case 60: goto st82 @@ -6920,7 +6922,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof84 } st_case_84: - // line internal/scanner/scanner.go:5792 + // line internal/scanner/scanner.go:5794 switch lex.data[(lex.p)] { case 34: goto tr119 @@ -6954,7 +6956,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof85 } st_case_85: - // line internal/scanner/scanner.go:5826 + // line internal/scanner/scanner.go:5828 switch lex.data[(lex.p)] { case 10: goto tr121 @@ -6993,7 +6995,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof157 } st_case_157: - // line internal/scanner/scanner.go:5865 + // line internal/scanner/scanner.go:5867 goto tr296 tr122: // line internal/scanner/scanner.rl:38 @@ -7026,7 +7028,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof86 } st_case_86: - // line internal/scanner/scanner.go:5898 + // line internal/scanner/scanner.go:5900 if lex.data[(lex.p)] == 10 { goto tr121 } @@ -7061,7 +7063,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof88 } st_case_88: - // line internal/scanner/scanner.go:5933 + // line internal/scanner/scanner.go:5935 switch lex.data[(lex.p)] { case 39: goto tr119 @@ -7095,7 +7097,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof89 } st_case_89: - // line internal/scanner/scanner.go:5967 + // line internal/scanner/scanner.go:5969 switch lex.data[(lex.p)] { case 10: goto tr125 @@ -7195,7 +7197,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof164 } st_case_164: - // line internal/scanner/scanner.go:6067 + // line internal/scanner/scanner.go:6069 switch lex.data[(lex.p)] { case 10: goto tr129 @@ -7220,7 +7222,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof165 } st_case_165: - // line internal/scanner/scanner.go:6092 + // line internal/scanner/scanner.go:6094 goto tr311 tr310: // line internal/scanner/scanner.rl:38 @@ -7239,7 +7241,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof90 } st_case_90: - // line internal/scanner/scanner.go:6111 + // line internal/scanner/scanner.go:6113 if lex.data[(lex.p)] == 10 { goto tr129 } @@ -7300,483 +7302,483 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:345 lex.act = 135 goto st168 tr318: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:203 + // line internal/scanner/scanner.rl:204 lex.act = 16 goto st168 tr324: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:201 + // line internal/scanner/scanner.rl:202 lex.act = 14 goto st168 tr325: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:274 + // line internal/scanner/scanner.rl:275 lex.act = 87 goto st168 tr328: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:202 + // line internal/scanner/scanner.rl:203 lex.act = 15 goto st168 tr333: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:204 + // line internal/scanner/scanner.rl:205 lex.act = 17 goto st168 tr345: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:205 + // line internal/scanner/scanner.rl:206 lex.act = 18 goto st168 tr346: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:206 + // line internal/scanner/scanner.rl:207 lex.act = 19 goto st168 tr348: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:207 + // line internal/scanner/scanner.rl:208 lex.act = 20 goto st168 tr355: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:232 + // line internal/scanner/scanner.rl:233 lex.act = 45 goto st168 tr359: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:208 + // line internal/scanner/scanner.rl:209 lex.act = 21 goto st168 tr361: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:209 + // line internal/scanner/scanner.rl:210 lex.act = 22 goto st168 tr365: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:210 + // line internal/scanner/scanner.rl:211 lex.act = 23 goto st168 tr369: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:211 + // line internal/scanner/scanner.rl:212 lex.act = 24 goto st168 tr372: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:214 + // line internal/scanner/scanner.rl:215 lex.act = 27 goto st168 tr378: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:212 + // line internal/scanner/scanner.rl:213 lex.act = 25 goto st168 tr382: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:213 + // line internal/scanner/scanner.rl:214 lex.act = 26 goto st168 tr383: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:226 + // line internal/scanner/scanner.rl:227 lex.act = 39 goto st168 tr391: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:215 + // line internal/scanner/scanner.rl:216 lex.act = 28 goto st168 tr396: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:217 + // line internal/scanner/scanner.rl:218 lex.act = 30 goto st168 tr399: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:218 + // line internal/scanner/scanner.rl:219 lex.act = 31 goto st168 tr411: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:219 + // line internal/scanner/scanner.rl:220 lex.act = 32 goto st168 tr418: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:221 + // line internal/scanner/scanner.rl:222 lex.act = 34 goto st168 tr419: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:222 + // line internal/scanner/scanner.rl:223 lex.act = 35 goto st168 tr424: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:223 + // line internal/scanner/scanner.rl:224 lex.act = 36 goto st168 tr428: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:224 + // line internal/scanner/scanner.rl:225 lex.act = 37 goto st168 tr430: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:225 + // line internal/scanner/scanner.rl:226 lex.act = 38 goto st168 tr436: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:227 + // line internal/scanner/scanner.rl:228 lex.act = 40 goto st168 tr438: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:233 + // line internal/scanner/scanner.rl:234 lex.act = 46 goto st168 tr445: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:229 + // line internal/scanner/scanner.rl:230 lex.act = 42 goto st168 tr451: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:231 + // line internal/scanner/scanner.rl:232 lex.act = 44 goto st168 tr457: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:234 + // line internal/scanner/scanner.rl:235 lex.act = 47 goto st168 tr459: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:235 + // line internal/scanner/scanner.rl:236 lex.act = 48 goto st168 tr460: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:236 + // line internal/scanner/scanner.rl:237 lex.act = 49 goto st168 tr471: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:238 + // line internal/scanner/scanner.rl:239 lex.act = 51 goto st168 tr484: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:261 + // line internal/scanner/scanner.rl:262 lex.act = 74 goto st168 tr492: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:239 + // line internal/scanner/scanner.rl:240 lex.act = 52 goto st168 tr496: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:240 + // line internal/scanner/scanner.rl:241 lex.act = 53 goto st168 tr502: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:241 + // line internal/scanner/scanner.rl:242 lex.act = 54 goto st168 tr505: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:237 + // line internal/scanner/scanner.rl:238 lex.act = 50 goto st168 tr508: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:242 + // line internal/scanner/scanner.rl:243 lex.act = 55 goto st168 tr517: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:243 + // line internal/scanner/scanner.rl:244 lex.act = 56 goto st168 tr518: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:273 + // line internal/scanner/scanner.rl:274 lex.act = 86 goto st168 tr519: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:275 + // line internal/scanner/scanner.rl:276 lex.act = 88 goto st168 tr526: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:246 + // line internal/scanner/scanner.rl:247 lex.act = 59 goto st168 tr529: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:244 + // line internal/scanner/scanner.rl:245 lex.act = 57 goto st168 tr535: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:247 + // line internal/scanner/scanner.rl:248 lex.act = 60 goto st168 tr539: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:245 + // line internal/scanner/scanner.rl:246 lex.act = 58 goto st168 tr552: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:263 + // line internal/scanner/scanner.rl:264 lex.act = 76 goto st168 tr555: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:248 + // line internal/scanner/scanner.rl:249 lex.act = 61 goto st168 tr561: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:249 + // line internal/scanner/scanner.rl:250 lex.act = 62 goto st168 tr565: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:250 + // line internal/scanner/scanner.rl:251 lex.act = 63 goto st168 tr570: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:251 + // line internal/scanner/scanner.rl:252 lex.act = 64 goto st168 tr572: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:253 + // line internal/scanner/scanner.rl:254 lex.act = 66 goto st168 tr574: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:252 + // line internal/scanner/scanner.rl:253 lex.act = 65 goto st168 tr579: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:254 + // line internal/scanner/scanner.rl:255 lex.act = 67 goto st168 tr580: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:255 + // line internal/scanner/scanner.rl:256 lex.act = 68 goto st168 tr582: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:256 + // line internal/scanner/scanner.rl:257 lex.act = 69 goto st168 tr586: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:257 + // line internal/scanner/scanner.rl:258 lex.act = 70 goto st168 tr588: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:276 + // line internal/scanner/scanner.rl:277 lex.act = 89 goto st168 tr609: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:264 + // line internal/scanner/scanner.rl:265 lex.act = 77 goto st168 tr613: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:265 + // line internal/scanner/scanner.rl:266 lex.act = 78 goto st168 tr619: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:266 + // line internal/scanner/scanner.rl:267 lex.act = 79 goto st168 tr627: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:267 + // line internal/scanner/scanner.rl:268 lex.act = 80 goto st168 tr639: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:272 + // line internal/scanner/scanner.rl:273 lex.act = 85 goto st168 tr644: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:268 + // line internal/scanner/scanner.rl:269 lex.act = 81 goto st168 tr651: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:270 + // line internal/scanner/scanner.rl:271 lex.act = 83 goto st168 tr661: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:269 + // line internal/scanner/scanner.rl:270 lex.act = 82 goto st168 tr667: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:271 + // line internal/scanner/scanner.rl:272 lex.act = 84 goto st168 st168: @@ -7784,7 +7786,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof168 } st_case_168: - // line internal/scanner/scanner.go:6656 + // line internal/scanner/scanner.go:6658 if lex.data[(lex.p)] == 96 { goto tr12 } @@ -8120,7 +8122,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:344 + // line internal/scanner/scanner.rl:345 lex.act = 135 goto st179 st179: @@ -8128,7 +8130,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof179 } st_case_179: - // line internal/scanner/scanner.go:7000 + // line internal/scanner/scanner.go:7002 switch lex.data[(lex.p)] { case 34: goto st7 @@ -15122,7 +15124,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof399 } st_case_399: - // line internal/scanner/scanner.go:13994 + // line internal/scanner/scanner.go:13996 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15169,7 +15171,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof93 } st_case_93: - // line internal/scanner/scanner.go:14041 + // line internal/scanner/scanner.go:14043 switch lex.data[(lex.p)] { case 10: goto tr134 @@ -15217,7 +15219,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof94 } st_case_94: - // line internal/scanner/scanner.go:14089 + // line internal/scanner/scanner.go:14091 switch lex.data[(lex.p)] { case 10: goto tr138 @@ -15265,7 +15267,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof95 } st_case_95: - // line internal/scanner/scanner.go:14137 + // line internal/scanner/scanner.go:14139 if lex.data[(lex.p)] == 10 { goto tr134 } @@ -15279,7 +15281,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof96 } st_case_96: - // line internal/scanner/scanner.go:14151 + // line internal/scanner/scanner.go:14153 switch lex.data[(lex.p)] { case 82: goto st97 @@ -17290,14 +17292,14 @@ func (lex *Lexer) Lex() *token.Token { } goto tr248 tr144: - // line internal/scanner/scanner.rl:378 + // line internal/scanner/scanner.rl:379 (lex.p) = (lex.te) - 1 { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) } goto st467 tr670: - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:382 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17307,7 +17309,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st467 tr675: - // line internal/scanner/scanner.rl:378 + // line internal/scanner/scanner.rl:379 lex.te = (lex.p) (lex.p)-- { @@ -17317,7 +17319,7 @@ func (lex *Lexer) Lex() *token.Token { tr677: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:378 + // line internal/scanner/scanner.rl:379 lex.te = (lex.p) (lex.p)-- { @@ -17325,7 +17327,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st467 tr681: - // line internal/scanner/scanner.rl:381 + // line internal/scanner/scanner.rl:382 lex.te = (lex.p) (lex.p)-- { @@ -17336,7 +17338,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st467 tr682: - // line internal/scanner/scanner.rl:379 + // line internal/scanner/scanner.rl:380 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -17350,7 +17352,7 @@ func (lex *Lexer) Lex() *token.Token { goto st467 tr683: lex.cs = 467 - // line internal/scanner/scanner.rl:380 + // line internal/scanner/scanner.rl:381 lex.te = (lex.p) (lex.p)-- { @@ -17374,7 +17376,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16214 + // line internal/scanner/scanner.go:16216 switch lex.data[(lex.p)] { case 10: goto tr145 @@ -17427,7 +17429,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof468 } st_case_468: - // line internal/scanner/scanner.go:16267 + // line internal/scanner/scanner.go:16269 switch lex.data[(lex.p)] { case 10: goto tr145 @@ -17477,7 +17479,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof469 } st_case_469: - // line internal/scanner/scanner.go:16317 + // line internal/scanner/scanner.go:16319 switch lex.data[(lex.p)] { case 10: goto tr679 @@ -17521,7 +17523,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof99 } st_case_99: - // line internal/scanner/scanner.go:16361 + // line internal/scanner/scanner.go:16363 if lex.data[(lex.p)] == 10 { goto tr145 } @@ -17543,7 +17545,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof470 } st_case_470: - // line internal/scanner/scanner.go:16383 + // line internal/scanner/scanner.go:16385 if lex.data[(lex.p)] == 10 { goto tr145 } @@ -17612,7 +17614,7 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 473 // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:385 + // line internal/scanner/scanner.rl:386 lex.te = (lex.p) (lex.p)-- { @@ -17627,7 +17629,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr692: lex.cs = 473 - // line internal/scanner/scanner.rl:385 + // line internal/scanner/scanner.rl:386 lex.te = (lex.p) (lex.p)-- { @@ -17654,7 +17656,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16480 + // line internal/scanner/scanner.go:16482 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17711,7 +17713,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:385 + // line internal/scanner/scanner.rl:386 lex.act = 146 goto st474 tr689: @@ -17720,7 +17722,7 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:385 + // line internal/scanner/scanner.rl:386 lex.act = 146 goto st474 st474: @@ -17728,7 +17730,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof474 } st_case_474: - // line internal/scanner/scanner.go:16554 + // line internal/scanner/scanner.go:16556 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17808,7 +17810,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof475 } st_case_475: - // line internal/scanner/scanner.go:16634 + // line internal/scanner/scanner.go:16636 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17888,7 +17890,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof476 } st_case_476: - // line internal/scanner/scanner.go:16714 + // line internal/scanner/scanner.go:16716 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -17938,7 +17940,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr692 tr146: - // line internal/scanner/scanner.rl:394 + // line internal/scanner/scanner.rl:395 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -17949,7 +17951,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st477 tr700: - // line internal/scanner/scanner.rl:396 + // line internal/scanner/scanner.rl:397 lex.te = (lex.p) (lex.p)-- { @@ -17965,7 +17967,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st477 tr701: - // line internal/scanner/scanner.rl:395 + // line internal/scanner/scanner.rl:396 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -18017,7 +18019,7 @@ func (lex *Lexer) Lex() *token.Token { lex.cs = 477 // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:398 lex.te = (lex.p) (lex.p)-- { @@ -18035,7 +18037,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr707: lex.cs = 477 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:398 lex.te = (lex.p) (lex.p)-- { @@ -18062,7 +18064,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:16846 + // line internal/scanner/scanner.go:16848 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18141,7 +18143,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:398 lex.act = 150 goto st479 tr704: @@ -18150,21 +18152,21 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:397 + // line internal/scanner/scanner.rl:398 lex.act = 150 goto st479 tr708: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:395 + // line internal/scanner/scanner.rl:396 lex.act = 148 goto st479 tr709: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:394 + // line internal/scanner/scanner.rl:395 lex.act = 147 goto st479 st479: @@ -18172,7 +18174,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof479 } st_case_479: - // line internal/scanner/scanner.go:16956 + // line internal/scanner/scanner.go:16958 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18252,7 +18254,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof480 } st_case_480: - // line internal/scanner/scanner.go:17036 + // line internal/scanner/scanner.go:17038 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18332,7 +18334,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof481 } st_case_481: - // line internal/scanner/scanner.go:17116 + // line internal/scanner/scanner.go:17118 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18496,7 +18498,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr707 tr148: - // line internal/scanner/scanner.rl:411 + // line internal/scanner/scanner.rl:412 lex.te = (lex.p) + 1 { lex.ungetCnt(2) @@ -18511,7 +18513,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st484 tr149: - // line internal/scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:411 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -18521,7 +18523,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st484 tr150: - // line internal/scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:410 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -18533,7 +18535,7 @@ func (lex *Lexer) Lex() *token.Token { goto st484 tr711: lex.cs = 484 - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:413 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -18607,7 +18609,7 @@ func (lex *Lexer) Lex() *token.Token { tr720: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:414 lex.te = (lex.p) (lex.p)-- { @@ -18621,7 +18623,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st484 tr724: - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:414 lex.te = (lex.p) (lex.p)-- { @@ -18645,7 +18647,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17359 + // line internal/scanner/scanner.go:17361 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18743,14 +18745,14 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:414 lex.act = 155 goto st485 tr717: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:412 + // line internal/scanner/scanner.rl:413 lex.act = 154 goto st485 tr721: @@ -18759,28 +18761,28 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:413 + // line internal/scanner/scanner.rl:414 lex.act = 155 goto st485 tr725: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:411 + // line internal/scanner/scanner.rl:412 lex.act = 153 goto st485 tr726: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:410 + // line internal/scanner/scanner.rl:411 lex.act = 152 goto st485 tr727: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:409 + // line internal/scanner/scanner.rl:410 lex.act = 151 goto st485 st485: @@ -18788,7 +18790,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof485 } st_case_485: - // line internal/scanner/scanner.go:17502 + // line internal/scanner/scanner.go:17504 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18868,7 +18870,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof486 } st_case_486: - // line internal/scanner/scanner.go:17582 + // line internal/scanner/scanner.go:17584 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -18948,7 +18950,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof487 } st_case_487: - // line internal/scanner/scanner.go:17662 + // line internal/scanner/scanner.go:17664 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19153,7 +19155,7 @@ func (lex *Lexer) Lex() *token.Token { } goto tr724 tr151: - // line internal/scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:424 lex.te = (lex.p) + 1 { lex.ungetCnt(2) @@ -19168,7 +19170,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st490 tr152: - // line internal/scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:423 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -19178,7 +19180,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st490 tr153: - // line internal/scanner/scanner.rl:421 + // line internal/scanner/scanner.rl:422 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19190,7 +19192,7 @@ func (lex *Lexer) Lex() *token.Token { goto st490 tr728: lex.cs = 490 - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:425 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -19264,7 +19266,7 @@ func (lex *Lexer) Lex() *token.Token { tr738: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) (lex.p)-- { @@ -19278,7 +19280,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st490 tr742: - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:426 lex.te = (lex.p) (lex.p)-- { @@ -19302,7 +19304,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:17946 + // line internal/scanner/scanner.go:17948 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19400,14 +19402,14 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:426 lex.act = 160 goto st491 tr734: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:424 + // line internal/scanner/scanner.rl:425 lex.act = 159 goto st491 tr739: @@ -19416,28 +19418,28 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:425 + // line internal/scanner/scanner.rl:426 lex.act = 160 goto st491 tr743: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:423 + // line internal/scanner/scanner.rl:424 lex.act = 158 goto st491 tr744: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:422 + // line internal/scanner/scanner.rl:423 lex.act = 157 goto st491 tr745: // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:421 + // line internal/scanner/scanner.rl:422 lex.act = 156 goto st491 st491: @@ -19445,7 +19447,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof491 } st_case_491: - // line internal/scanner/scanner.go:18089 + // line internal/scanner/scanner.go:18091 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19525,7 +19527,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof492 } st_case_492: - // line internal/scanner/scanner.go:18169 + // line internal/scanner/scanner.go:18171 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19605,7 +19607,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof493 } st_case_493: - // line internal/scanner/scanner.go:18249 + // line internal/scanner/scanner.go:18251 _widec = int16(lex.data[(lex.p)]) switch { case lex.data[(lex.p)] < 11: @@ -19811,7 +19813,7 @@ func (lex *Lexer) Lex() *token.Token { goto tr742 tr747: lex.cs = 496 - // line internal/scanner/scanner.rl:433 + // line internal/scanner/scanner.rl:434 lex.te = (lex.p) (lex.p)-- { @@ -19835,7 +19837,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18476 + // line internal/scanner/scanner.go:18478 if lex.data[(lex.p)] == 96 { goto st0 } @@ -19879,7 +19881,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st497 tr154: - // line internal/scanner/scanner.rl:452 + // line internal/scanner/scanner.rl:453 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -19891,7 +19893,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st498 tr155: - // line internal/scanner/scanner.rl:449 + // line internal/scanner/scanner.rl:450 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19905,7 +19907,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st498 tr748: - // line internal/scanner/scanner.rl:452 + // line internal/scanner/scanner.rl:453 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -19917,7 +19919,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st498 tr752: - // line internal/scanner/scanner.rl:451 + // line internal/scanner/scanner.rl:452 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -19927,7 +19929,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st498 tr753: - // line internal/scanner/scanner.rl:452 + // line internal/scanner/scanner.rl:453 lex.te = (lex.p) (lex.p)-- { @@ -19940,7 +19942,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st498 tr755: - // line internal/scanner/scanner.rl:448 + // line internal/scanner/scanner.rl:449 lex.te = (lex.p) (lex.p)-- { @@ -19954,7 +19956,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st498 tr757: - // line internal/scanner/scanner.rl:450 + // line internal/scanner/scanner.rl:451 lex.te = (lex.p) (lex.p)-- { @@ -19978,7 +19980,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18568 + // line internal/scanner/scanner.go:18570 switch lex.data[(lex.p)] { case 36: goto st499 @@ -20059,7 +20061,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof501 } st_case_501: - // line internal/scanner/scanner.go:18649 + // line internal/scanner/scanner.go:18651 if lex.data[(lex.p)] == 62 { goto st105 } @@ -20112,7 +20114,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st502 tr156: - // line internal/scanner/scanner.rl:456 + // line internal/scanner/scanner.rl:457 (lex.p) = (lex.te) - 1 { lex.setTokenPosition(tkn) @@ -20125,7 +20127,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr758: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) + 1 { c := lex.data[lex.p] @@ -20133,7 +20135,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr759: - // line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20143,7 +20145,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr762: - // line internal/scanner/scanner.rl:460 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20156,7 +20158,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr766: - // line internal/scanner/scanner.rl:461 + // line internal/scanner/scanner.rl:462 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20168,7 +20170,7 @@ func (lex *Lexer) Lex() *token.Token { tr767: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:459 + // line internal/scanner/scanner.rl:460 lex.te = (lex.p) (lex.p)-- { @@ -20179,7 +20181,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr768: - // line internal/scanner/scanner.rl:462 + // line internal/scanner/scanner.rl:463 lex.te = (lex.p) (lex.p)-- { @@ -20188,7 +20190,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr769: - // line internal/scanner/scanner.rl:460 + // line internal/scanner/scanner.rl:461 lex.te = (lex.p) (lex.p)-- { @@ -20202,7 +20204,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr771: - // line internal/scanner/scanner.rl:457 + // line internal/scanner/scanner.rl:458 lex.te = (lex.p) (lex.p)-- { @@ -20216,7 +20218,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr772: - // line internal/scanner/scanner.rl:456 + // line internal/scanner/scanner.rl:457 lex.te = (lex.p) (lex.p)-- { @@ -20230,7 +20232,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st503 tr776: - // line internal/scanner/scanner.rl:458 + // line internal/scanner/scanner.rl:459 lex.te = (lex.p) (lex.p)-- { @@ -20254,7 +20256,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:18781 + // line internal/scanner/scanner.go:18783 switch lex.data[(lex.p)] { case 10: goto tr760 @@ -20336,7 +20338,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof504 } st_case_504: - // line internal/scanner/scanner.go:18863 + // line internal/scanner/scanner.go:18865 goto tr767 tr761: // line internal/scanner/scanner.rl:38 @@ -20355,7 +20357,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof505 } st_case_505: - // line internal/scanner/scanner.go:18882 + // line internal/scanner/scanner.go:18884 if lex.data[(lex.p)] == 10 { goto tr760 } @@ -20417,7 +20419,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof508 } st_case_508: - // line internal/scanner/scanner.go:18944 + // line internal/scanner/scanner.go:18946 switch lex.data[(lex.p)] { case 95: goto st106 @@ -20440,7 +20442,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof509 } st_case_509: - // line internal/scanner/scanner.go:18967 + // line internal/scanner/scanner.go:18969 if lex.data[(lex.p)] == 95 { goto st106 } @@ -20476,7 +20478,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof510 } st_case_510: - // line internal/scanner/scanner.go:19003 + // line internal/scanner/scanner.go:19005 if lex.data[(lex.p)] == 95 { goto st107 } @@ -20512,7 +20514,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof511 } st_case_511: - // line internal/scanner/scanner.go:19039 + // line internal/scanner/scanner.go:19041 if lex.data[(lex.p)] == 95 { goto st108 } @@ -20557,7 +20559,7 @@ func (lex *Lexer) Lex() *token.Token { goto st512 tr160: lex.cs = 513 - // line internal/scanner/scanner.rl:470 + // line internal/scanner/scanner.rl:471 (lex.p) = (lex.te) - 1 { lex.ungetCnt(1) @@ -20566,7 +20568,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr162: lex.cs = 513 - // line internal/scanner/scanner.rl:469 + // line internal/scanner/scanner.rl:470 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20581,7 +20583,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr777: lex.cs = 513 - // line internal/scanner/scanner.rl:470 + // line internal/scanner/scanner.rl:471 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20590,7 +20592,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr779: lex.cs = 513 - // line internal/scanner/scanner.rl:470 + // line internal/scanner/scanner.rl:471 lex.te = (lex.p) (lex.p)-- { @@ -20609,7 +20611,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19118 + // line internal/scanner/scanner.go:19120 if lex.data[(lex.p)] == 96 { goto tr777 } @@ -20636,7 +20638,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof514 } st_case_514: - // line internal/scanner/scanner.go:19145 + // line internal/scanner/scanner.go:19147 switch lex.data[(lex.p)] { case 91: goto tr162 @@ -20695,7 +20697,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st109 tr163: - // line internal/scanner/scanner.rl:474 + // line internal/scanner/scanner.rl:475 (lex.p) = (lex.te) - 1 { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) @@ -20703,7 +20705,7 @@ func (lex *Lexer) Lex() *token.Token { goto st515 tr780: lex.cs = 515 - // line internal/scanner/scanner.rl:476 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20712,7 +20714,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr783: lex.cs = 515 - // line internal/scanner/scanner.rl:475 + // line internal/scanner/scanner.rl:476 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20725,7 +20727,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr784: - // line internal/scanner/scanner.rl:474 + // line internal/scanner/scanner.rl:475 lex.te = (lex.p) (lex.p)-- { @@ -20735,7 +20737,7 @@ func (lex *Lexer) Lex() *token.Token { tr786: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:474 + // line internal/scanner/scanner.rl:475 lex.te = (lex.p) (lex.p)-- { @@ -20744,7 +20746,7 @@ func (lex *Lexer) Lex() *token.Token { goto st515 tr790: lex.cs = 515 - // line internal/scanner/scanner.rl:476 + // line internal/scanner/scanner.rl:477 lex.te = (lex.p) (lex.p)-- { @@ -20763,7 +20765,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19252 + // line internal/scanner/scanner.go:19254 switch lex.data[(lex.p)] { case 10: goto tr164 @@ -20795,7 +20797,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof516 } st_case_516: - // line internal/scanner/scanner.go:19284 + // line internal/scanner/scanner.go:19286 switch lex.data[(lex.p)] { case 10: goto tr164 @@ -20845,7 +20847,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof517 } st_case_517: - // line internal/scanner/scanner.go:19334 + // line internal/scanner/scanner.go:19336 switch lex.data[(lex.p)] { case 10: goto tr788 @@ -20889,7 +20891,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof110 } st_case_110: - // line internal/scanner/scanner.go:19378 + // line internal/scanner/scanner.go:19380 if lex.data[(lex.p)] == 10 { goto tr164 } @@ -20911,13 +20913,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof518 } st_case_518: - // line internal/scanner/scanner.go:19400 + // line internal/scanner/scanner.go:19402 if lex.data[(lex.p)] == 10 { goto tr164 } goto tr790 tr165: - // line internal/scanner/scanner.rl:480 + // line internal/scanner/scanner.rl:481 (lex.p) = (lex.te) - 1 { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) @@ -20925,7 +20927,7 @@ func (lex *Lexer) Lex() *token.Token { goto st519 tr791: lex.cs = 519 - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -20934,7 +20936,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr794: lex.cs = 519 - // line internal/scanner/scanner.rl:481 + // line internal/scanner/scanner.rl:482 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -20947,7 +20949,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr795: - // line internal/scanner/scanner.rl:480 + // line internal/scanner/scanner.rl:481 lex.te = (lex.p) (lex.p)-- { @@ -20957,7 +20959,7 @@ func (lex *Lexer) Lex() *token.Token { tr797: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:480 + // line internal/scanner/scanner.rl:481 lex.te = (lex.p) (lex.p)-- { @@ -20966,7 +20968,7 @@ func (lex *Lexer) Lex() *token.Token { goto st519 tr801: lex.cs = 519 - // line internal/scanner/scanner.rl:482 + // line internal/scanner/scanner.rl:483 lex.te = (lex.p) (lex.p)-- { @@ -20985,7 +20987,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19454 + // line internal/scanner/scanner.go:19456 switch lex.data[(lex.p)] { case 10: goto tr166 @@ -21017,7 +21019,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof520 } st_case_520: - // line internal/scanner/scanner.go:19486 + // line internal/scanner/scanner.go:19488 switch lex.data[(lex.p)] { case 10: goto tr166 @@ -21067,7 +21069,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof521 } st_case_521: - // line internal/scanner/scanner.go:19536 + // line internal/scanner/scanner.go:19538 switch lex.data[(lex.p)] { case 10: goto tr799 @@ -21111,7 +21113,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof111 } st_case_111: - // line internal/scanner/scanner.go:19580 + // line internal/scanner/scanner.go:19582 if lex.data[(lex.p)] == 10 { goto tr166 } @@ -21133,13 +21135,13 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof522 } st_case_522: - // line internal/scanner/scanner.go:19602 + // line internal/scanner/scanner.go:19604 if lex.data[(lex.p)] == 10 { goto tr166 } goto tr801 tr167: - // line internal/scanner/scanner.rl:486 + // line internal/scanner/scanner.rl:487 (lex.p) = (lex.te) - 1 { lex.addFreeFloatingToken(tkn, token.T_WHITESPACE, lex.ts, lex.te) @@ -21147,7 +21149,7 @@ func (lex *Lexer) Lex() *token.Token { goto st523 tr802: lex.cs = 523 - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) + 1 { lex.ungetCnt(1) @@ -21156,7 +21158,7 @@ func (lex *Lexer) Lex() *token.Token { goto _again tr805: lex.cs = 523 - // line internal/scanner/scanner.rl:487 + // line internal/scanner/scanner.rl:488 lex.te = (lex.p) + 1 { lex.setTokenPosition(tkn) @@ -21169,7 +21171,7 @@ func (lex *Lexer) Lex() *token.Token { } goto _again tr806: - // line internal/scanner/scanner.rl:486 + // line internal/scanner/scanner.rl:487 lex.te = (lex.p) (lex.p)-- { @@ -21179,7 +21181,7 @@ func (lex *Lexer) Lex() *token.Token { tr808: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:486 + // line internal/scanner/scanner.rl:487 lex.te = (lex.p) (lex.p)-- { @@ -21188,7 +21190,7 @@ func (lex *Lexer) Lex() *token.Token { goto st523 tr812: lex.cs = 523 - // line internal/scanner/scanner.rl:488 + // line internal/scanner/scanner.rl:489 lex.te = (lex.p) (lex.p)-- { @@ -21207,7 +21209,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19656 + // line internal/scanner/scanner.go:19658 switch lex.data[(lex.p)] { case 10: goto tr168 @@ -21239,7 +21241,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof524 } st_case_524: - // line internal/scanner/scanner.go:19688 + // line internal/scanner/scanner.go:19690 switch lex.data[(lex.p)] { case 10: goto tr168 @@ -21289,7 +21291,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof525 } st_case_525: - // line internal/scanner/scanner.go:19738 + // line internal/scanner/scanner.go:19740 switch lex.data[(lex.p)] { case 10: goto tr810 @@ -21333,7 +21335,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof112 } st_case_112: - // line internal/scanner/scanner.go:19782 + // line internal/scanner/scanner.go:19784 if lex.data[(lex.p)] == 10 { goto tr168 } @@ -21355,7 +21357,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof526 } st_case_526: - // line internal/scanner/scanner.go:19804 + // line internal/scanner/scanner.go:19806 if lex.data[(lex.p)] == 10 { goto tr168 } @@ -21380,7 +21382,7 @@ func (lex *Lexer) Lex() *token.Token { tr817: // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:492 + // line internal/scanner/scanner.rl:493 lex.te = (lex.p) (lex.p)-- { @@ -21388,7 +21390,7 @@ func (lex *Lexer) Lex() *token.Token { } goto st527 tr821: - // line internal/scanner/scanner.rl:492 + // line internal/scanner/scanner.rl:493 lex.te = (lex.p) (lex.p)-- { @@ -21409,7 +21411,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.ts = (lex.p) - // line internal/scanner/scanner.go:19848 + // line internal/scanner/scanner.go:19850 switch lex.data[(lex.p)] { case 10: goto tr814 @@ -21421,7 +21423,7 @@ func (lex *Lexer) Lex() *token.Token { // line NONE:1 lex.te = (lex.p) + 1 - // line internal/scanner/scanner.rl:492 + // line internal/scanner/scanner.rl:493 lex.act = 186 goto st528 tr818: @@ -21430,7 +21432,7 @@ func (lex *Lexer) Lex() *token.Token { // line internal/scanner/scanner.rl:54 - // line internal/scanner/scanner.rl:492 + // line internal/scanner/scanner.rl:493 lex.act = 186 goto st528 st528: @@ -21438,7 +21440,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof528 } st_case_528: - // line internal/scanner/scanner.go:19877 + // line internal/scanner/scanner.go:19879 switch lex.data[(lex.p)] { case 10: goto tr814 @@ -21477,7 +21479,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof529 } st_case_529: - // line internal/scanner/scanner.go:19916 + // line internal/scanner/scanner.go:19918 switch lex.data[(lex.p)] { case 10: goto tr819 @@ -21516,7 +21518,7 @@ func (lex *Lexer) Lex() *token.Token { goto _test_eof530 } st_case_530: - // line internal/scanner/scanner.go:19955 + // line internal/scanner/scanner.go:19957 switch lex.data[(lex.p)] { case 10: goto tr814 @@ -24147,7 +24149,7 @@ func (lex *Lexer) Lex() *token.Token { } } - // line internal/scanner/scanner.rl:496 + // line internal/scanner/scanner.rl:497 tkn.Value = lex.data[lex.ts:lex.te] tkn.ID = token.ID(tok) diff --git a/internal/scanner/scanner.rl b/internal/scanner/scanner.rl index 30d12af..812c742 100644 --- a/internal/scanner/scanner.rl +++ b/internal/scanner/scanner.rl @@ -115,11 +115,12 @@ func (lex *Lexer) Lex() *token.Token { | '"' -> final ), double_qoute_nonvarname: ( - (any - [\\{"\r\n] - varname_first) -> double_qoute - | "\r" @new_line -> double_qoute - | "\n" @new_line -> double_qoute - | "\\" -> double_qoute_any - | '"' -> final + (any - [\\${"\r\n] - varname_first) -> double_qoute + | "\r" @new_line -> double_qoute + | "\n" @new_line -> double_qoute + | "\\" -> double_qoute_any + | '$' -> double_qoute_nonvarname + | '"' -> final ); main := |* diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index 04888c4..a51e6ea 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -1628,3 +1628,45 @@ func TestIgnoreControllCharactersAtStringVarOffset(t *testing.T) { actual = string(tkn.Value) assert.DeepEqual(t, expected, actual) } + +func TestDoubleDollar(t *testing.T) { + src := ` Date: Mon, 28 Dec 2020 23:01:02 +0200 Subject: [PATCH 139/140] refactoring: fix naming --- internal/php5/parser_test.go | 1096 +++++++------- internal/php5/php5.go | 248 ++-- internal/php5/php5.y | 232 +-- internal/php7/parser_test.go | 1304 ++++++++--------- internal/php7/php7.go | 184 +-- internal/php7/php7.y | 184 +-- pkg/ast/ast.go | 10 +- pkg/ast/node.go | 96 +- pkg/visitor/dumper/dumper.go | 86 +- pkg/visitor/dumper/dumper_test.go | 2 +- pkg/visitor/formatter/formatter.go | 76 +- pkg/visitor/formatter/formatter_test.go | 728 ++++----- pkg/visitor/nsresolver/namespace_resolver.go | 44 +- .../nsresolver/namespace_resolver_test.go | 296 ++-- pkg/visitor/null.go | 10 +- pkg/visitor/printer/printer.go | 74 +- pkg/visitor/printer/printer_php7_test.go | 4 +- pkg/visitor/printer/printer_test.go | 736 +++++----- pkg/visitor/traverser/traverser.go | 56 +- 19 files changed, 2733 insertions(+), 2733 deletions(-) diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index ad51d2f..6c1dfde 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -38,7 +38,7 @@ func TestIdentifier(t *testing.T) { StartPos: 3, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -133,7 +133,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 5, EndPos: 19, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -141,7 +141,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 8, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -194,7 +194,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 9, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 2, @@ -209,7 +209,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -266,7 +266,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -343,7 +343,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 23, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -385,7 +385,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 28, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 3, @@ -400,7 +400,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -457,7 +457,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 35, EndPos: 37, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -534,7 +534,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 42, EndPos: 46, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -605,7 +605,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 52, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 4, @@ -620,7 +620,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 52, EndPos: 54, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -677,7 +677,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 59, EndPos: 61, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -747,7 +747,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 66, EndPos: 85, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -755,7 +755,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 69, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -827,7 +827,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 75, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 5, @@ -842,7 +842,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 75, EndPos: 77, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -899,7 +899,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 82, EndPos: 84, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -976,7 +976,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 89, EndPos: 93, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -1047,7 +1047,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 99, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 6, @@ -1062,7 +1062,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 99, EndPos: 101, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -1119,7 +1119,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 106, EndPos: 108, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -1211,7 +1211,7 @@ func TestPhp5ArgumentNode(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1219,7 +1219,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 120, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1262,7 +1262,7 @@ func TestPhp5ArgumentNode(t *testing.T) { EndPos: 121, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 7, @@ -1277,7 +1277,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 121, EndPos: 123, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1334,7 +1334,7 @@ func TestPhp5ArgumentNode(t *testing.T) { StartPos: 128, EndPos: 130, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1455,7 +1455,7 @@ func TestPhp5ParameterNode(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1504,7 +1504,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 18, EndPos: 31, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1512,7 +1512,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 21, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1540,7 +1540,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 22, EndPos: 26, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1589,7 +1589,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 27, EndPos: 31, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1597,7 +1597,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 31, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1627,7 +1627,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 33, EndPos: 45, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1635,7 +1635,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 36, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1707,7 +1707,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 41, EndPos: 45, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1814,7 +1814,7 @@ func TestPhp5ParameterNode(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -1918,7 +1918,7 @@ func TestPhp5ParameterNode(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -1967,7 +1967,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 83, EndPos: 96, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -1975,7 +1975,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 86, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2003,7 +2003,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 87, EndPos: 91, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2052,7 +2052,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 92, EndPos: 96, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2060,7 +2060,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 96, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2090,7 +2090,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 98, EndPos: 110, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2098,7 +2098,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 101, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2170,7 +2170,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 106, EndPos: 110, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2322,7 +2322,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 127, EndPos: 140, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2330,7 +2330,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 130, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2358,7 +2358,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 131, EndPos: 135, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2407,7 +2407,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 136, EndPos: 140, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2415,7 +2415,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 140, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2445,7 +2445,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 142, EndPos: 154, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2453,7 +2453,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 145, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2525,7 +2525,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 150, EndPos: 154, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2690,7 +2690,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 178, EndPos: 191, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -2698,7 +2698,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 181, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -2726,7 +2726,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 182, EndPos: 186, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -2775,7 +2775,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 187, EndPos: 191, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -2783,7 +2783,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 191, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -2813,7 +2813,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 193, EndPos: 205, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -2821,7 +2821,7 @@ func TestPhp5ParameterNode(t *testing.T) { EndPos: 196, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -2893,7 +2893,7 @@ func TestPhp5ParameterNode(t *testing.T) { StartPos: 201, EndPos: 205, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3074,7 +3074,7 @@ func TestName(t *testing.T) { StartPos: 3, EndPos: 8, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3082,7 +3082,7 @@ func TestName(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3233,7 +3233,7 @@ func TestFullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3372,7 +3372,7 @@ func TestRelative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3522,7 +3522,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3660,7 +3660,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3798,7 +3798,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3955,7 +3955,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3999,7 +3999,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4155,7 +4155,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4185,7 +4185,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { EndPos: 15, }, }, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4352,7 +4352,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { EndPos: 11, }, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4510,7 +4510,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { EndPos: 11, }, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4721,7 +4721,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { StartPos: 10, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4923,7 +4923,7 @@ LBL; StartPos: 15, EndPos: 19, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -5096,7 +5096,7 @@ LBL; StartPos: 17, EndPos: 21, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -6682,7 +6682,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -6870,7 +6870,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -6990,7 +6990,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -7181,7 +7181,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -7433,7 +7433,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -7553,7 +7553,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -7661,7 +7661,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { StartPos: 40, EndPos: 42, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -7868,7 +7868,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8233,7 +8233,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8304,7 +8304,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8482,7 +8482,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8617,7 +8617,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8772,7 +8772,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8950,7 +8950,7 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9107,7 +9107,7 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9306,7 +9306,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9441,7 +9441,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9596,7 +9596,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9755,7 +9755,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9914,7 +9914,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9967,7 +9967,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, }, }, - Extends: &ast.NameName{ + Extends: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9975,7 +9975,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { EndPos: 30, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10148,7 +10148,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10202,7 +10202,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, }, Implements: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10210,7 +10210,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10384,7 +10384,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10438,7 +10438,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, }, Implements: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10446,7 +10446,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10479,7 +10479,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10487,7 +10487,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { EndPos: 38, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -12401,7 +12401,7 @@ func TestStmtEcho(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -12574,7 +12574,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -12840,7 +12840,7 @@ func TestStmtFor(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -12940,7 +12940,7 @@ func TestStmtFor(t *testing.T) { StartPos: 15, EndPos: 17, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13052,7 +13052,7 @@ func TestStmtFor(t *testing.T) { StartPos: 24, EndPos: 26, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13109,7 +13109,7 @@ func TestStmtFor(t *testing.T) { StartPos: 30, EndPos: 32, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13313,7 +13313,7 @@ func TestStmtFor_Alt(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13425,7 +13425,7 @@ func TestStmtFor_Alt(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13633,7 +13633,7 @@ func TestStmtForeach(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13682,7 +13682,7 @@ func TestStmtForeach(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13906,7 +13906,7 @@ func TestStmtForeach_Expr(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14080,7 +14080,7 @@ func TestStmtForeach_Alt(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14129,7 +14129,7 @@ func TestStmtForeach_Alt(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14325,7 +14325,7 @@ func TestStmtForeach_WithKey(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14374,7 +14374,7 @@ func TestStmtForeach_WithKey(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14435,7 +14435,7 @@ func TestStmtForeach_WithKey(t *testing.T) { StartPos: 24, EndPos: 26, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14659,7 +14659,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14720,7 +14720,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { StartPos: 24, EndPos: 26, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14894,7 +14894,7 @@ func TestStmtForeach_WithRef(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14943,7 +14943,7 @@ func TestStmtForeach_WithRef(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15026,7 +15026,7 @@ func TestStmtForeach_WithRef(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15188,7 +15188,7 @@ func TestStmtForeach_WithList(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15237,7 +15237,7 @@ func TestStmtForeach_WithList(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15345,7 +15345,7 @@ func TestStmtForeach_WithList(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15491,7 +15491,7 @@ func TestStmtFunction(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15637,7 +15637,7 @@ func TestStmtFunction_Return(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15812,7 +15812,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15887,7 +15887,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15965,7 +15965,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { StartPos: 35, EndPos: 37, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16068,7 +16068,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { StartPos: 47, EndPos: 49, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16206,7 +16206,7 @@ func TestStmtFunction_Ref(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16408,7 +16408,7 @@ func TestStmtGlobal(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16521,7 +16521,7 @@ func TestStmtGlobal_Vars(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16560,7 +16560,7 @@ func TestStmtGlobal_Vars(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16621,14 +16621,14 @@ func TestStmtGlobal_Vars(t *testing.T) { }, }, }, - VarName: &ast.ExprVariable{ + Name: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, EndPos: 21, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16688,14 +16688,14 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 25, }, }, - VarName: &ast.ExprFunctionCall{ + Name: &ast.ExprFunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 30, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16703,7 +16703,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16829,7 +16829,7 @@ func TestStmtGotoLabel(t *testing.T) { StartPos: 3, EndPos: 5, }, - LabelName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17134,7 +17134,7 @@ func TestStmtIf(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17296,7 +17296,7 @@ func TestStmtIf_ElseIf(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17426,7 +17426,7 @@ func TestStmtIf_ElseIf(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17590,7 +17590,7 @@ func TestStmtIf_Else(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17823,7 +17823,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17953,7 +17953,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18083,7 +18083,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { StartPos: 37, EndPos: 39, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18318,7 +18318,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18448,7 +18448,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18608,7 +18608,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { StartPos: 38, EndPos: 40, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18895,7 +18895,7 @@ func TestStmtInterface(t *testing.T) { }, }, }, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19021,7 +19021,7 @@ func TestStmtInterface_Extend(t *testing.T) { }, }, }, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19075,7 +19075,7 @@ func TestStmtInterface_Extend(t *testing.T) { }, }, Extends: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19083,7 +19083,7 @@ func TestStmtInterface_Extend(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19212,7 +19212,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, }, }, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19266,7 +19266,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, }, Extends: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19274,7 +19274,7 @@ func TestStmtInterface_Extends(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19307,7 +19307,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19315,7 +19315,7 @@ func TestStmtInterface_Extends(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19456,7 +19456,7 @@ func TestStmtNamespace(t *testing.T) { }, }, }, - Name: &ast.NameName{ + Name: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19464,7 +19464,7 @@ func TestStmtNamespace(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19569,7 +19569,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, }, }, - Name: &ast.NameName{ + Name: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19577,7 +19577,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19800,7 +19800,7 @@ func TestStmtProperty(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19882,7 +19882,7 @@ func TestStmtProperty(t *testing.T) { Value: []byte("var"), }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Position: &position.Position{ StartLine: 1, @@ -19897,7 +19897,7 @@ func TestStmtProperty(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20015,7 +20015,7 @@ func TestStmtProperty_Properties(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20128,7 +20128,7 @@ func TestStmtProperty_Properties(t *testing.T) { Value: []byte("static"), }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Position: &position.Position{ StartLine: 1, @@ -20143,7 +20143,7 @@ func TestStmtProperty_Properties(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20190,7 +20190,7 @@ func TestStmtProperty_Properties(t *testing.T) { StartPos: 32, EndPos: 34, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20373,7 +20373,7 @@ func TestStmtProperty_Properties2(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20486,7 +20486,7 @@ func TestStmtProperty_Properties2(t *testing.T) { Value: []byte("static"), }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Position: &position.Position{ StartLine: 1, @@ -20501,7 +20501,7 @@ func TestStmtProperty_Properties2(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20601,7 +20601,7 @@ func TestStmtProperty_Properties2(t *testing.T) { StartPos: 36, EndPos: 38, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20746,7 +20746,7 @@ func TestStmtStaticVar(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20867,7 +20867,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20914,7 +20914,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21100,7 +21100,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21200,7 +21200,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21395,7 +21395,7 @@ func TestStmtSwitch(t *testing.T) { }, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -21794,7 +21794,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { EndPos: 18, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -22184,7 +22184,7 @@ func TestStmtSwitch_Alt(t *testing.T) { }, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -22552,7 +22552,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { EndPos: 18, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -22799,7 +22799,7 @@ func TestStmtThrow(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22903,7 +22903,7 @@ func TestStmtTrait(t *testing.T) { }, }, }, - TraitName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23029,7 +23029,7 @@ func TestStmtTraitUse(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23113,7 +23113,7 @@ func TestStmtTraitUse(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23121,7 +23121,7 @@ func TestStmtTraitUse(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23251,7 +23251,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23335,7 +23335,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23343,7 +23343,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23376,7 +23376,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23384,7 +23384,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23526,7 +23526,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23610,7 +23610,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23618,7 +23618,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23651,7 +23651,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23659,7 +23659,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23823,7 +23823,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23907,7 +23907,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23915,7 +23915,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23948,7 +23948,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23956,7 +23956,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24236,7 +24236,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24320,7 +24320,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24328,7 +24328,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24361,7 +24361,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24369,7 +24369,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24680,7 +24680,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24764,7 +24764,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24772,7 +24772,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24805,7 +24805,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24813,7 +24813,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24889,7 +24889,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 30, EndPos: 58, }, - Trait: &ast.NameName{ + Trait: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24897,7 +24897,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24982,7 +24982,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, Insteadof: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24990,7 +24990,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 52, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25023,7 +25023,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25031,7 +25031,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 58, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25095,7 +25095,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 60, EndPos: 75, }, - Trait: &ast.NameName{ + Trait: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25103,7 +25103,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 63, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25522,7 +25522,7 @@ func TestStmtTry_TryCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25530,7 +25530,7 @@ func TestStmtTry_TryCatch(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25559,7 +25559,7 @@ func TestStmtTry_TryCatch(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25785,7 +25785,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25793,7 +25793,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25822,7 +25822,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25950,7 +25950,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25958,7 +25958,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 59, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -25987,7 +25987,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { StartPos: 60, EndPos: 62, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -26213,7 +26213,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -26221,7 +26221,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -26250,7 +26250,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -26538,7 +26538,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26546,7 +26546,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 26, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26575,7 +26575,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { StartPos: 27, EndPos: 29, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26721,7 +26721,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26750,7 +26750,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { StartPos: 59, EndPos: 61, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26906,7 +26906,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26935,7 +26935,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { StartPos: 101, EndPos: 103, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27092,7 +27092,7 @@ func TestStmtUnset(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27213,7 +27213,7 @@ func TestStmtUnset_Vars(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27240,7 +27240,7 @@ func TestStmtUnset_Vars(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27328,7 +27328,7 @@ func TestStmtUse(t *testing.T) { EndPos: 11, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27367,15 +27367,15 @@ func TestStmtUse(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 10, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27383,7 +27383,7 @@ func TestStmtUse(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27451,7 +27451,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 12, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27490,8 +27490,8 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27520,7 +27520,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27528,7 +27528,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 11, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27584,7 +27584,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 19, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27623,8 +27623,8 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27653,7 +27653,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27661,7 +27661,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 11, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27770,7 +27770,7 @@ func TestStmtUse_List(t *testing.T) { EndPos: 16, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27809,15 +27809,15 @@ func TestStmtUse_List(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 10, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27825,7 +27825,7 @@ func TestStmtUse_List(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27859,14 +27859,14 @@ func TestStmtUse_List(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, EndPos: 15, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27874,7 +27874,7 @@ func TestStmtUse_List(t *testing.T) { EndPos: 15, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27954,7 +27954,7 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 23, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27993,15 +27993,15 @@ func TestStmtUse_ListAlias(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 10, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28009,7 +28009,7 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28043,14 +28043,14 @@ func TestStmtUse_ListAlias(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, EndPos: 22, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28058,7 +28058,7 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 15, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28191,7 +28191,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 26, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28261,15 +28261,15 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, Value: []byte("function"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 19, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28277,7 +28277,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 19, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28311,7 +28311,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28340,7 +28340,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28348,7 +28348,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 25, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28416,7 +28416,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 40, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28486,15 +28486,15 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, Value: []byte("function"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 26, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28502,7 +28502,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 19, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28589,7 +28589,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { Value: []byte("foo"), }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28618,7 +28618,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28626,7 +28626,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 32, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28747,7 +28747,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 23, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28817,15 +28817,15 @@ func TestStmtUse_ListConstType(t *testing.T) { }, Value: []byte("const"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, EndPos: 16, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28833,7 +28833,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28867,7 +28867,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28896,7 +28896,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28904,7 +28904,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28972,7 +28972,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 37, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29042,15 +29042,15 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, Value: []byte("const"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, EndPos: 23, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29058,7 +29058,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29145,7 +29145,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { Value: []byte("foo"), }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29174,7 +29174,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29182,7 +29182,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 29, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30035,7 +30035,7 @@ func TestExprArrayDimFetch(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30178,7 +30178,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30711,7 +30711,7 @@ func TestExprArray_Items(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30853,7 +30853,7 @@ func TestExprBitwiseNot(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30960,7 +30960,7 @@ func TestExprBooleanNot(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31028,7 +31028,7 @@ func TestExprClassConstFetch(t *testing.T) { StartPos: 3, EndPos: 11, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31036,7 +31036,7 @@ func TestExprClassConstFetch(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31089,7 +31089,7 @@ func TestExprClassConstFetch(t *testing.T) { EndPos: 8, }, }, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31207,7 +31207,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { EndPos: 11, }, }, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31330,7 +31330,7 @@ func TestExprClone_Brackets(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31448,7 +31448,7 @@ func TestExprClone(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31706,7 +31706,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31741,7 +31741,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31841,7 +31841,7 @@ func TestExprClosure_Use(t *testing.T) { }, }, }, - Use: []ast.Vertex{ + Uses: []ast.Vertex{ &ast.ExprClosureUse{ Position: &position.Position{ StartLine: 1, @@ -31856,7 +31856,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31913,7 +31913,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 30, EndPos: 32, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32095,7 +32095,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32130,7 +32130,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32230,7 +32230,7 @@ func TestExprClosure_Use2(t *testing.T) { }, }, }, - Use: []ast.Vertex{ + Uses: []ast.Vertex{ &ast.ExprClosureUse{ Position: &position.Position{ StartLine: 1, @@ -32255,7 +32255,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 26, EndPos: 28, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32290,7 +32290,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 30, EndPos: 32, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32427,7 +32427,7 @@ func TestExprConstFetch(t *testing.T) { StartPos: 3, EndPos: 6, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32435,7 +32435,7 @@ func TestExprConstFetch(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32576,7 +32576,7 @@ func TestExprConstFetch_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32685,7 +32685,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32803,7 +32803,7 @@ func TestExprEmpty(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32920,7 +32920,7 @@ func TestExprErrorSuppress(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33037,7 +33037,7 @@ func TestExprEval(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33344,7 +33344,7 @@ func TestExprExit_Expr(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33651,7 +33651,7 @@ func TestExprDie_Expr(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33729,7 +33729,7 @@ func TestExprFunctionCall(t *testing.T) { StartPos: 3, EndPos: 8, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33737,7 +33737,7 @@ func TestExprFunctionCall(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33898,7 +33898,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34027,7 +34027,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34058,7 +34058,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { EndPos: 8, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 1, @@ -34161,7 +34161,7 @@ func TestExprFunctionCall_Var(t *testing.T) { StartPos: 3, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34213,7 +34213,7 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 8, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 1, @@ -34238,14 +34238,14 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 13, }, }, - Value: &ast.ExprVariable{ + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34338,7 +34338,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { StartPos: 3, EndPos: 15, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34346,7 +34346,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndPos: 7, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34399,7 +34399,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndPos: 8, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 1, @@ -34421,7 +34421,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { StartPos: 8, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34538,7 +34538,7 @@ func TestExprPostDec(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34645,7 +34645,7 @@ func TestExprPostInc(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34784,7 +34784,7 @@ func TestExprPreDec(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34891,7 +34891,7 @@ func TestExprPreInc(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34998,7 +34998,7 @@ func TestExprInclude(t *testing.T) { StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35117,7 +35117,7 @@ func TestExprInclude_Once(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35236,7 +35236,7 @@ func TestExprRequire(t *testing.T) { StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35355,7 +35355,7 @@ func TestExprRequire_Once(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35442,7 +35442,7 @@ func TestExprInstanceOf(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35506,7 +35506,7 @@ func TestExprInstanceOf(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35514,7 +35514,7 @@ func TestExprInstanceOf(t *testing.T) { EndPos: 20, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35602,7 +35602,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35706,7 +35706,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35782,7 +35782,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35876,7 +35876,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35995,7 +35995,7 @@ func TestExprIsset(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36124,7 +36124,7 @@ func TestExprIsset_Variables(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36151,7 +36151,7 @@ func TestExprIsset_Variables(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36346,7 +36346,7 @@ func TestExprList_Empty(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36490,7 +36490,7 @@ func TestExprList(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36552,7 +36552,7 @@ func TestExprList(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36703,7 +36703,7 @@ func TestExprList_ArrayIndex(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36786,7 +36786,7 @@ func TestExprList_ArrayIndex(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36965,7 +36965,7 @@ func TestExprList_List(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37040,7 +37040,7 @@ func TestExprList_List(t *testing.T) { StartPos: 20, EndPos: 22, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37185,7 +37185,7 @@ func TestExprList_EmptyItem(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37271,7 +37271,7 @@ func TestExprList_EmptyItem(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37417,7 +37417,7 @@ func TestExprList_EmptyItems(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37548,7 +37548,7 @@ func TestExprList_EmptyItems(t *testing.T) { StartPos: 20, EndPos: 22, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37635,7 +37635,7 @@ func TestExprMethodCall(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37806,7 +37806,7 @@ func TestExprNew(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37814,7 +37814,7 @@ func TestExprNew(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37967,7 +37967,7 @@ func TestExprNew_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38118,7 +38118,7 @@ func TestExprNew_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38263,7 +38263,7 @@ func TestExprPrint(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38351,7 +38351,7 @@ func TestExprPropertyFetch(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38403,7 +38403,7 @@ func TestExprPropertyFetch(t *testing.T) { EndPos: 7, }, }, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38529,7 +38529,7 @@ func TestExprShellExec(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38942,7 +38942,7 @@ func TestExprShortArray_Items(t *testing.T) { StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39045,7 +39045,7 @@ func TestExprStaticCall(t *testing.T) { StartPos: 3, EndPos: 13, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39053,7 +39053,7 @@ func TestExprStaticCall(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39243,7 +39243,7 @@ func TestExprStaticCall_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39401,7 +39401,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39519,7 +39519,7 @@ func TestExprStaticCall_Var(t *testing.T) { StartPos: 3, EndPos: 14, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39527,7 +39527,7 @@ func TestExprStaticCall_Var(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39587,7 +39587,7 @@ func TestExprStaticCall_Var(t *testing.T) { StartPos: 8, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39682,7 +39682,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { StartPos: 3, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39741,7 +39741,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39829,7 +39829,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { StartPos: 3, EndPos: 12, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39837,7 +39837,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39890,14 +39890,14 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndPos: 8, }, }, - Property: &ast.ExprVariable{ + Prop: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40015,7 +40015,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40046,14 +40046,14 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { EndPos: 18, }, }, - Property: &ast.ExprVariable{ + Prop: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 18, EndPos: 22, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40161,7 +40161,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40192,14 +40192,14 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { EndPos: 9, }, }, - Property: &ast.ExprVariable{ + Prop: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40267,14 +40267,14 @@ func TestExprTernary(t *testing.T) { StartPos: 3, EndPos: 15, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40345,7 +40345,7 @@ func TestExprTernary(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40406,7 +40406,7 @@ func TestExprTernary(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40486,14 +40486,14 @@ func TestExprTernary_Simple(t *testing.T) { StartPos: 3, EndPos: 12, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40586,7 +40586,7 @@ func TestExprTernary_Simple(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40666,14 +40666,14 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 3, EndPos: 25, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40744,14 +40744,14 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 8, EndPos: 20, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40812,7 +40812,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40873,7 +40873,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40935,7 +40935,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 23, EndPos: 25, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41015,21 +41015,21 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 3, EndPos: 25, }, - Condition: &ast.ExprTernary{ + Cond: &ast.ExprTernary{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 15, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41100,7 +41100,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41161,7 +41161,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41223,7 +41223,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41284,7 +41284,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 23, EndPos: 25, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41403,7 +41403,7 @@ func TestExprUnaryMinus(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41510,7 +41510,7 @@ func TestExprUnaryPlus(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41578,7 +41578,7 @@ func TestExprVariable(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41699,14 +41699,14 @@ func TestExprVariable_Variable(t *testing.T) { }, }, }, - VarName: &ast.ExprVariable{ + Name: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41886,14 +41886,14 @@ func TestExprYield_Val(t *testing.T) { }, }, }, - Value: &ast.ExprVariable{ + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42012,7 +42012,7 @@ func TestExprYield_KeyVal(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42066,14 +42066,14 @@ func TestExprYield_KeyVal(t *testing.T) { }, }, }, - Value: &ast.ExprVariable{ + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 17, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42185,7 +42185,7 @@ func TestExprYield_Expr(t *testing.T) { }, }, }, - Value: &ast.ScalarLnumber{ + Val: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42303,7 +42303,7 @@ func TestExprYield_KeyExpr(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42357,7 +42357,7 @@ func TestExprYield_KeyExpr(t *testing.T) { }, }, }, - Value: &ast.ScalarLnumber{ + Val: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42461,7 +42461,7 @@ func TestExprAssign(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -42532,7 +42532,7 @@ func TestExprAssign(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -42597,7 +42597,7 @@ func TestExprAssign(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -42668,7 +42668,7 @@ func TestExprAssign(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -42733,7 +42733,7 @@ func TestExprAssign(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -42826,7 +42826,7 @@ func TestExprAssign(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -42834,7 +42834,7 @@ func TestExprAssign(t *testing.T) { EndPos: 41, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -42901,7 +42901,7 @@ func TestExprAssign(t *testing.T) { StartPos: 45, EndPos: 47, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -42994,7 +42994,7 @@ func TestExprAssign(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -43002,7 +43002,7 @@ func TestExprAssign(t *testing.T) { EndPos: 58, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -43045,7 +43045,7 @@ func TestExprAssign(t *testing.T) { EndPos: 59, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 5, @@ -43060,7 +43060,7 @@ func TestExprAssign(t *testing.T) { StartPos: 59, EndPos: 61, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -43126,7 +43126,7 @@ func TestExprAssign(t *testing.T) { StartPos: 66, EndPos: 68, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -43187,7 +43187,7 @@ func TestExprAssign(t *testing.T) { StartPos: 72, EndPos: 74, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -43252,7 +43252,7 @@ func TestExprAssign(t *testing.T) { StartPos: 78, EndPos: 80, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -43313,7 +43313,7 @@ func TestExprAssign(t *testing.T) { StartPos: 84, EndPos: 86, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -43378,7 +43378,7 @@ func TestExprAssign(t *testing.T) { StartPos: 90, EndPos: 92, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -43439,7 +43439,7 @@ func TestExprAssign(t *testing.T) { StartPos: 96, EndPos: 98, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -43504,7 +43504,7 @@ func TestExprAssign(t *testing.T) { StartPos: 102, EndPos: 104, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -43565,7 +43565,7 @@ func TestExprAssign(t *testing.T) { StartPos: 108, EndPos: 110, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -43630,7 +43630,7 @@ func TestExprAssign(t *testing.T) { StartPos: 114, EndPos: 116, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -43691,7 +43691,7 @@ func TestExprAssign(t *testing.T) { StartPos: 120, EndPos: 122, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -43756,7 +43756,7 @@ func TestExprAssign(t *testing.T) { StartPos: 126, EndPos: 128, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -43817,7 +43817,7 @@ func TestExprAssign(t *testing.T) { StartPos: 132, EndPos: 134, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -43882,7 +43882,7 @@ func TestExprAssign(t *testing.T) { StartPos: 138, EndPos: 140, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -43943,7 +43943,7 @@ func TestExprAssign(t *testing.T) { StartPos: 144, EndPos: 146, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -44008,7 +44008,7 @@ func TestExprAssign(t *testing.T) { StartPos: 150, EndPos: 152, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -44069,7 +44069,7 @@ func TestExprAssign(t *testing.T) { StartPos: 156, EndPos: 158, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -44134,7 +44134,7 @@ func TestExprAssign(t *testing.T) { StartPos: 162, EndPos: 164, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -44195,7 +44195,7 @@ func TestExprAssign(t *testing.T) { StartPos: 168, EndPos: 170, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -44260,7 +44260,7 @@ func TestExprAssign(t *testing.T) { StartPos: 174, EndPos: 176, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -44321,7 +44321,7 @@ func TestExprAssign(t *testing.T) { StartPos: 181, EndPos: 183, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -44386,7 +44386,7 @@ func TestExprAssign(t *testing.T) { StartPos: 187, EndPos: 189, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -44447,7 +44447,7 @@ func TestExprAssign(t *testing.T) { StartPos: 194, EndPos: 196, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -44512,7 +44512,7 @@ func TestExprAssign(t *testing.T) { StartPos: 200, EndPos: 202, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -44573,7 +44573,7 @@ func TestExprAssign(t *testing.T) { StartPos: 207, EndPos: 209, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -44687,7 +44687,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -44758,7 +44758,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -44823,7 +44823,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -44884,7 +44884,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 21, EndPos: 23, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -44949,7 +44949,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 27, EndPos: 29, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -45010,7 +45010,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 32, EndPos: 34, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -45075,7 +45075,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 38, EndPos: 40, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -45136,7 +45136,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 44, EndPos: 46, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -45201,7 +45201,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 50, EndPos: 52, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -45262,7 +45262,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 56, EndPos: 58, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -45327,7 +45327,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 62, EndPos: 64, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -45388,7 +45388,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 67, EndPos: 69, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -45453,7 +45453,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 73, EndPos: 75, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -45514,7 +45514,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 78, EndPos: 80, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -45579,7 +45579,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 84, EndPos: 86, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -45640,7 +45640,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 90, EndPos: 92, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -45705,7 +45705,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 96, EndPos: 98, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -45766,7 +45766,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 102, EndPos: 104, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -45831,7 +45831,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 108, EndPos: 110, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -45892,7 +45892,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 113, EndPos: 115, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -45957,7 +45957,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 119, EndPos: 121, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -46018,7 +46018,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 126, EndPos: 128, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -46083,7 +46083,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 132, EndPos: 134, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -46144,7 +46144,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 139, EndPos: 141, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -46209,7 +46209,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 145, EndPos: 147, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -46270,7 +46270,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 151, EndPos: 153, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -46335,7 +46335,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 157, EndPos: 159, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -46396,7 +46396,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 164, EndPos: 166, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -46461,7 +46461,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 170, EndPos: 172, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -46522,7 +46522,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 175, EndPos: 177, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -46587,7 +46587,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 181, EndPos: 183, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -46648,7 +46648,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 186, EndPos: 188, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -46713,7 +46713,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 192, EndPos: 194, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, @@ -46774,7 +46774,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 197, EndPos: 199, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, @@ -46839,7 +46839,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 203, EndPos: 205, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 19, EndLine: 19, @@ -46900,7 +46900,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 209, EndPos: 211, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 19, EndLine: 19, @@ -46965,7 +46965,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 215, EndPos: 217, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 20, EndLine: 20, @@ -47026,7 +47026,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 222, EndPos: 224, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 20, EndLine: 20, @@ -47091,7 +47091,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 228, EndPos: 230, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 21, EndLine: 21, @@ -47152,7 +47152,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 233, EndPos: 235, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 21, EndLine: 21, @@ -47217,7 +47217,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 239, EndPos: 241, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 22, EndLine: 22, @@ -47278,7 +47278,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 245, EndPos: 247, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 22, EndLine: 22, @@ -47343,7 +47343,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 251, EndPos: 253, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 23, EndLine: 23, @@ -47404,7 +47404,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 257, EndPos: 259, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 23, EndLine: 23, @@ -47469,7 +47469,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 263, EndPos: 265, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 24, EndLine: 24, @@ -47530,7 +47530,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 269, EndPos: 271, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 24, EndLine: 24, @@ -47595,7 +47595,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 275, EndPos: 277, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 25, EndLine: 25, @@ -47656,7 +47656,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 281, EndPos: 283, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 25, EndLine: 25, @@ -47721,7 +47721,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 287, EndPos: 289, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 26, EndLine: 26, @@ -47782,7 +47782,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 292, EndPos: 294, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 26, EndLine: 26, @@ -47914,7 +47914,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -47989,7 +47989,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 27, EndPos: 29, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -48064,7 +48064,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 39, EndPos: 41, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -48139,7 +48139,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 53, EndPos: 55, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -48214,7 +48214,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 66, EndPos: 68, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -48289,7 +48289,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 81, EndPos: 83, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -48364,7 +48364,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 92, EndPos: 94, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -48439,7 +48439,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 106, EndPos: 108, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -48514,7 +48514,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 120, EndPos: 122, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -48589,7 +48589,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 134, EndPos: 136, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -48664,7 +48664,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 147, EndPos: 149, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -49322,7 +49322,7 @@ CAD; StartPos: 79, EndPos: 85, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, diff --git a/internal/php5/php5.go b/internal/php5/php5.go index f93f178..b213c53 100644 --- a/internal/php5/php5.go +++ b/internal/php5/php5.go @@ -2344,7 +2344,7 @@ yydefault: { yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -2356,7 +2356,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:305 { - part := &ast.NameNamePart{ + part := &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), StringTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -2411,7 +2411,7 @@ yydefault: yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), NsTkn: yyDollar[1].token, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2426,7 +2426,7 @@ yydefault: yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), NsTkn: yyDollar[1].token, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2452,19 +2452,19 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:386 { - yyVAL.node = &ast.StmtUse{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - UseTkn: yyDollar[1].token, - UseDeclarations: yyDollar[2].node.(*ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, - SemiColonTkn: yyDollar[3].token, + yyVAL.node = &ast.StmtUseList{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + UseTkn: yyDollar[1].token, + Uses: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[3].token, } } case 15: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:396 { - yyVAL.node = &ast.StmtUse{ + yyVAL.node = &ast.StmtUseList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, Type: &ast.Identifier{ @@ -2472,16 +2472,16 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - UseDeclarations: yyDollar[3].node.(*ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, - SemiColonTkn: yyDollar[4].token, + Uses: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[4].token, } } case 16: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:411 { - yyVAL.node = &ast.StmtUse{ + yyVAL.node = &ast.StmtUseList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), UseTkn: yyDollar[1].token, Type: &ast.Identifier{ @@ -2489,9 +2489,9 @@ yydefault: IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, }, - UseDeclarations: yyDollar[3].node.(*ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, - SemiColonTkn: yyDollar[4].token, + Uses: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[4].token, } } case 17: @@ -2523,9 +2523,9 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:451 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -2536,9 +2536,9 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:462 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -2555,10 +2555,10 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:479 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2569,10 +2569,10 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:491 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2606,9 +2606,9 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:528 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -2619,9 +2619,9 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:539 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -2638,10 +2638,10 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:556 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2652,10 +2652,10 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:568 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2689,9 +2689,9 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:605 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -2702,9 +2702,9 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php5/php5.y:616 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -2721,10 +2721,10 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php5/php5.y:633 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition(yyDollar[1].token, yyDollar[2].node.(*ParserSeparatedList).Items), NsSeparatorTkn: yyDollar[1].token, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2735,10 +2735,10 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php5/php5.y:645 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), NsSeparatorTkn: yyDollar[1].token, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2855,7 +2855,7 @@ yydefault: { yyVAL.node = &ast.StmtLabel{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - LabelName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -3269,7 +3269,7 @@ yydefault: Types: []ast.Vertex{yyDollar[3].node}, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -3335,7 +3335,7 @@ yydefault: Types: []ast.Vertex{yyDollar[3].node}, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -3414,7 +3414,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[9].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -3441,7 +3441,7 @@ yydefault: } n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) - n.ClassName = className + n.Name = className n.OpenCurlyBracketTkn = yyDollar[5].token n.Stmts = yyDollar[6].list n.CloseCurlyBracketTkn = yyDollar[7].token @@ -3464,7 +3464,7 @@ yydefault: } n.Position = yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[7].token) - n.TraitName = traitName + n.Name = traitName n.OpenCurlyBracketTkn = yyDollar[5].token n.Stmts = yyDollar[6].list n.CloseCurlyBracketTkn = yyDollar[7].token @@ -3487,7 +3487,7 @@ yydefault: iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), InterfaceTkn: yyDollar[1].token, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -3798,7 +3798,7 @@ yydefault: yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, - CaseList: yyDollar[2].list, + Cases: yyDollar[2].list, CloseCurlyBracketTkn: yyDollar[3].token, } } @@ -3810,7 +3810,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, - CaseList: yyDollar[3].list, + Cases: yyDollar[3].list, CloseCurlyBracketTkn: yyDollar[4].token, } } @@ -3821,7 +3821,7 @@ yydefault: yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ColonTkn: yyDollar[1].token, - CaseList: yyDollar[2].list, + Cases: yyDollar[2].list, EndSwitchTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, } @@ -3834,7 +3834,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, - CaseList: yyDollar[3].list, + Cases: yyDollar[3].list, EndSwitchTkn: yyDollar[4].token, SemiColonTkn: yyDollar[5].token, } @@ -4031,7 +4031,7 @@ yydefault: VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -4059,7 +4059,7 @@ yydefault: VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -4216,7 +4216,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4230,7 +4230,7 @@ yydefault: yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DollarTkn: yyDollar[1].token, - VarName: yyDollar[2].node, + Name: yyDollar[2].node, } } case 164: @@ -4241,7 +4241,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, OpenCurlyBracketTkn: yyDollar[2].token, - VarName: yyDollar[3].node, + Name: yyDollar[3].node, CloseCurlyBracketTkn: yyDollar[4].token, } } @@ -4253,7 +4253,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -4272,7 +4272,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -4295,7 +4295,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4315,7 +4315,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4346,7 +4346,7 @@ yydefault: yyVAL.node = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[3].token), Modifiers: yyDollar[1].list, - Properties: yyDollar[2].node.(*ParserSeparatedList).Items, + Props: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[3].token, } @@ -4379,7 +4379,7 @@ yydefault: Modifiers: yyDollar[1].list, FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -4728,7 +4728,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -4749,7 +4749,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[3].token, yyDollar[5].node), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -4774,7 +4774,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4795,7 +4795,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4974,7 +4974,7 @@ yydefault: NewTkn: yyDollar[1].token, Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[3].node.(*ArgumentList).Arguments, + Args: yyDollar[3].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[3].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[3].node.(*ArgumentList).CloseParenthesisTkn, } @@ -5037,7 +5037,7 @@ yydefault: NewTkn: yyDollar[4].token, Class: yyDollar[5].node, OpenParenthesisTkn: yyDollar[6].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[6].node.(*ArgumentList).Arguments, + Args: yyDollar[6].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[6].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[6].node.(*ArgumentList).CloseParenthesisTkn, } @@ -5618,7 +5618,7 @@ yydefault: { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), - Condition: yyDollar[1].node, + Cond: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, ColonTkn: yyDollar[4].token, @@ -5631,7 +5631,7 @@ yydefault: { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - Condition: yyDollar[1].node, + Cond: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, IfFalse: yyDollar[4].node, @@ -5836,7 +5836,7 @@ yydefault: yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, - Value: yyDollar[2].node, + Val: yyDollar[2].node, } } case 307: @@ -5846,7 +5846,7 @@ yydefault: yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, - Value: yyDollar[2].node, + Val: yyDollar[2].node, } } case 308: @@ -5858,7 +5858,7 @@ yydefault: YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, - Value: yyDollar[4].node, + Val: yyDollar[4].node, } } case 309: @@ -5870,7 +5870,7 @@ yydefault: YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, - Value: yyDollar[4].node, + Val: yyDollar[4].node, } } case 310: @@ -5969,7 +5969,7 @@ yydefault: yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, UseOpenParenthesisTkn: yyDollar[2].token, - Use: yyDollar[3].node.(*ParserSeparatedList).Items, + Uses: yyDollar[3].node.(*ParserSeparatedList).Items, UseSeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: yyDollar[4].token, } @@ -5982,7 +5982,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -6004,7 +6004,7 @@ yydefault: AmpersandTkn: yyDollar[3].token, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -6025,7 +6025,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -6046,7 +6046,7 @@ yydefault: AmpersandTkn: yyDollar[1].token, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -6064,13 +6064,13 @@ yydefault: { yyVAL.node = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodeListNodePosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[2].node), - Function: &ast.NameName{ + Function: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + Args: yyDollar[2].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6089,7 +6089,7 @@ yydefault: SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6107,7 +6107,7 @@ yydefault: SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: yyDollar[3].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[3].node.(*ArgumentList).Arguments, + Args: yyDollar[3].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[3].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[3].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6122,7 +6122,7 @@ yydefault: DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6145,7 +6145,7 @@ yydefault: DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6160,7 +6160,7 @@ yydefault: DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6183,7 +6183,7 @@ yydefault: DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6196,7 +6196,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + Args: yyDollar[2].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6215,7 +6215,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3812 { - yyVAL.node = &ast.NameName{ + yyVAL.node = &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -6248,7 +6248,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php5/php5.y:3842 { - yyVAL.node = &ast.NameName{ + yyVAL.node = &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -6544,7 +6544,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -6575,7 +6575,7 @@ yydefault: { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), - Const: &ast.NameName{ + Const: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -6971,7 +6971,7 @@ yydefault: { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - Condition: yyDollar[1].node, + Cond: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, IfFalse: yyDollar[4].node, @@ -6983,7 +6983,7 @@ yydefault: { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), - Condition: yyDollar[1].node, + Cond: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, ColonTkn: yyDollar[4].token, @@ -7033,7 +7033,7 @@ yydefault: { yyVAL.node = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), - Const: &ast.NameName{ + Const: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -7075,7 +7075,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -7287,7 +7287,7 @@ yydefault: yyDollar[3].list = append(yyDollar[3].list, &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, - Arguments: mc.Arguments, + Args: mc.Args, SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.CloseParenthesisTkn, }, @@ -7295,7 +7295,7 @@ yydefault: yyDollar[3].list = append(yyDollar[3].list, yyDollar[4].list[1:len(yyDollar[4].list)]...) case *ast.ExprPropertyFetch: yyDollar[4].list[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn - yyDollar[4].list[0].(*ast.ExprMethodCall).Method = l.Property + yyDollar[4].list[0].(*ast.ExprMethodCall).Method = l.Prop yyDollar[4].list[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn yyDollar[4].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn yyDollar[3].list = append(yyDollar[3].list[:len(yyDollar[3].list)-1], yyDollar[4].list...) @@ -7382,7 +7382,7 @@ yydefault: yyDollar[2].list = append(yyDollar[2].list, &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, - Arguments: mc.Arguments, + Args: mc.Args, SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.OpenParenthesisTkn, }, @@ -7390,7 +7390,7 @@ yydefault: yyDollar[2].list = append(yyDollar[2].list, yyDollar[3].list[1:len(yyDollar[3].list)]...) case *ast.ExprPropertyFetch: yyDollar[3].list[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn - yyDollar[3].list[0].(*ast.ExprMethodCall).Method = l.Property + yyDollar[3].list[0].(*ast.ExprMethodCall).Method = l.Prop yyDollar[3].list[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn yyDollar[3].list[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn yyDollar[2].list = append(yyDollar[2].list[:len(yyDollar[2].list)-1], yyDollar[3].list...) @@ -7434,7 +7434,7 @@ yydefault: yyVAL.node = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), OpenParenthesisTkn: yyDollar[1].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[1].node.(*ArgumentList).Arguments, + Args: yyDollar[1].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[1].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[1].node.(*ArgumentList).CloseParenthesisTkn, } @@ -7468,7 +7468,7 @@ yydefault: // line internal/php5/php5.y:4927 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { - yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node + yyDollar[1].list[i].(*ast.ExprVariable).Name = yyDollar[2].node yyDollar[1].list[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) yyDollar[2].node = yyDollar[1].list[i] } @@ -7483,7 +7483,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } } case 450: @@ -7494,7 +7494,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } } case 451: @@ -7556,7 +7556,7 @@ yydefault: // line internal/php5/php5.y:5011 { for i := len(yyDollar[1].list) - 1; i >= 0; i-- { - yyDollar[1].list[i].(*ast.ExprVariable).VarName = yyDollar[2].node + yyDollar[1].list[i].(*ast.ExprVariable).Name = yyDollar[2].node yyDollar[1].list[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].list[i], yyDollar[2].node) yyDollar[2].node = yyDollar[1].list[i] } @@ -7605,7 +7605,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -7620,7 +7620,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, OpenCurlyBracketTkn: yyDollar[2].token, - VarName: yyDollar[3].node, + Name: yyDollar[3].node, CloseCurlyBracketTkn: yyDollar[4].token, } } @@ -7649,7 +7649,7 @@ yydefault: yyVAL.list = []ast.Vertex{ &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), - Property: yyDollar[1].node, + Prop: yyDollar[1].node, }, } } @@ -7687,12 +7687,12 @@ yydefault: { property := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodePosition(yyDollar[1].node), - Property: yyDollar[1].node, + Prop: yyDollar[1].node, } if brackets, ok := yyDollar[1].node.(*ParserBrackets); ok { property.OpenCurlyBracketTkn = brackets.OpenBracketTkn - property.Property = brackets.Child + property.Prop = brackets.Child property.CloseCurlyBracketTkn = brackets.CloseBracketTkn } @@ -7975,7 +7975,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -7990,7 +7990,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -8009,14 +8009,14 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, }, ObjectOperatorTkn: yyDollar[2].token, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -8030,7 +8030,7 @@ yydefault: yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), DollarOpenCurlyBracketTkn: yyDollar[1].token, - VarName: yyDollar[2].node, + Name: yyDollar[2].node, CloseCurlyBracketTkn: yyDollar[3].token, } } @@ -8041,7 +8041,7 @@ yydefault: yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), DollarOpenCurlyBracketTkn: yyDollar[1].token, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -8056,7 +8056,7 @@ yydefault: yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), DollarOpenCurlyBracketTkn: yyDollar[1].token, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -8113,7 +8113,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -8246,7 +8246,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -8261,7 +8261,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -8276,7 +8276,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -8291,7 +8291,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, diff --git a/internal/php5/php5.y b/internal/php5/php5.y index 54e00b5..41ef5e4 100644 --- a/internal/php5/php5.y +++ b/internal/php5/php5.y @@ -293,7 +293,7 @@ namespace_name: { $$ = &ParserSeparatedList{ Items: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, @@ -303,7 +303,7 @@ namespace_name: } | namespace_name T_NS_SEPARATOR T_STRING { - part := &ast.NameNamePart{ + part := &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, @@ -349,7 +349,7 @@ top_statement: $$ = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), NsTkn: $1, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -362,7 +362,7 @@ top_statement: $$ = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), NsTkn: $1, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -384,17 +384,17 @@ top_statement: } | T_USE use_declarations ';' { - $$ = &ast.StmtUse{ + $$ = &ast.StmtUseList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), UseTkn: $1, - UseDeclarations: $2.(*ParserSeparatedList).Items, + Uses: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } } | T_USE T_FUNCTION use_function_declarations ';' { - $$ = &ast.StmtUse{ + $$ = &ast.StmtUseList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ @@ -402,14 +402,14 @@ top_statement: IdentifierTkn: $2, Value: $2.Value, }, - UseDeclarations: $3.(*ParserSeparatedList).Items, + Uses: $3.(*ParserSeparatedList).Items, SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } } | T_USE T_CONST use_const_declarations ';' { - $$ = &ast.StmtUse{ + $$ = &ast.StmtUseList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), UseTkn: $1, Type: &ast.Identifier{ @@ -417,7 +417,7 @@ top_statement: IdentifierTkn: $2, Value: $2.Value, }, - UseDeclarations: $3.(*ParserSeparatedList).Items, + Uses: $3.(*ParserSeparatedList).Items, SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } @@ -449,9 +449,9 @@ use_declarations: use_declaration: namespace_name { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -460,9 +460,9 @@ use_declaration: } | namespace_name T_AS T_STRING { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -477,10 +477,10 @@ use_declaration: } | T_NS_SEPARATOR namespace_name { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -489,10 +489,10 @@ use_declaration: } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -526,9 +526,9 @@ use_function_declarations: use_function_declaration: namespace_name { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -537,9 +537,9 @@ use_function_declaration: } | namespace_name T_AS T_STRING { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -554,10 +554,10 @@ use_function_declaration: } | T_NS_SEPARATOR namespace_name { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -566,10 +566,10 @@ use_function_declaration: } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -603,9 +603,9 @@ use_const_declarations: use_const_declaration: namespace_name { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -614,9 +614,9 @@ use_const_declaration: } | namespace_name T_AS T_STRING { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -631,10 +631,10 @@ use_const_declaration: } | T_NS_SEPARATOR namespace_name { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokenNodeListPosition($1, $2.(*ParserSeparatedList).Items), NsSeparatorTkn: $1, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -643,10 +643,10 @@ use_const_declaration: } | T_NS_SEPARATOR namespace_name T_AS T_STRING { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), NsSeparatorTkn: $1, - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -755,7 +755,7 @@ statement: { $$ = &ast.StmtLabel{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), - LabelName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -1115,7 +1115,7 @@ catch_statement: Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($4), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -1179,7 +1179,7 @@ additional_catch: Types: []ast.Vertex{$3}, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($4), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -1259,7 +1259,7 @@ unticked_function_declaration_statement: Position: yylex.(*Parser).builder.NewTokensPosition($1, $9), FunctionTkn: $1, AmpersandTkn: $2, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -1287,7 +1287,7 @@ unticked_class_declaration_statement: } n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) - n.ClassName = className + n.Name = className n.OpenCurlyBracketTkn = $5 n.Stmts = $6 n.CloseCurlyBracketTkn = $7 @@ -1310,7 +1310,7 @@ unticked_class_declaration_statement: } n.Position = yylex.(*Parser).builder.NewNodeTokenPosition($1, $7) - n.TraitName = traitName + n.Name = traitName n.OpenCurlyBracketTkn = $5 n.Stmts = $6 n.CloseCurlyBracketTkn = $7 @@ -1331,7 +1331,7 @@ unticked_class_declaration_statement: iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), InterfaceTkn: $1, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -1631,7 +1631,7 @@ switch_case_list: $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, - CaseList: $2, + Cases: $2, CloseCurlyBracketTkn: $3, } } @@ -1641,7 +1641,7 @@ switch_case_list: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, - CaseList: $3, + Cases: $3, CloseCurlyBracketTkn: $4, } } @@ -1650,7 +1650,7 @@ switch_case_list: $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ColonTkn: $1, - CaseList: $2, + Cases: $2, EndSwitchTkn: $3, SemiColonTkn: $4, } @@ -1661,7 +1661,7 @@ switch_case_list: Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), ColonTkn: $1, CaseSeparatorTkn: $2, - CaseList: $3, + Cases: $3, EndSwitchTkn: $4, SemiColonTkn: $5, } @@ -1857,7 +1857,7 @@ parameter: VariadicTkn: $3, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($4), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -1883,7 +1883,7 @@ parameter: VariadicTkn: $3, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($4), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -2030,7 +2030,7 @@ global_var: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -2042,7 +2042,7 @@ global_var: $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DollarTkn: $1, - VarName: $2, + Name: $2, } } | '$' '{' expr '}' @@ -2051,7 +2051,7 @@ global_var: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, OpenCurlyBracketTkn: $2, - VarName: $3, + Name: $3, CloseCurlyBracketTkn: $4, } } @@ -2065,7 +2065,7 @@ static_var_list: Position: yylex.(*Parser).builder.NewTokenPosition($3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($3), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -2082,7 +2082,7 @@ static_var_list: Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($3), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -2103,7 +2103,7 @@ static_var_list: Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -2121,7 +2121,7 @@ static_var_list: Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -2154,7 +2154,7 @@ class_statement: $$ = &ast.StmtPropertyList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $3), Modifiers: $1, - Properties: $2.(*ParserSeparatedList).Items, + Props: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $3, } @@ -2181,7 +2181,7 @@ class_statement: Modifiers: $1, FunctionTkn: $2, AmpersandTkn: $3, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -2512,7 +2512,7 @@ class_variable_declaration: Position: yylex.(*Parser).builder.NewTokenPosition($3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($3), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -2531,7 +2531,7 @@ class_variable_declaration: Position: yylex.(*Parser).builder.NewTokenNodePosition($3, $5), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($3), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -2554,7 +2554,7 @@ class_variable_declaration: Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -2573,7 +2573,7 @@ class_variable_declaration: Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -2744,7 +2744,7 @@ new_expr: NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ArgumentList).OpenParenthesisTkn, - Arguments: $3.(*ArgumentList).Arguments, + Args: $3.(*ArgumentList).Arguments, SeparatorTkns: $3.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $3.(*ArgumentList).CloseParenthesisTkn, } @@ -2802,7 +2802,7 @@ expr_without_variable: NewTkn: $4, Class: $5, OpenParenthesisTkn: $6.(*ArgumentList).OpenParenthesisTkn, - Arguments: $6.(*ArgumentList).Arguments, + Args: $6.(*ArgumentList).Arguments, SeparatorTkns: $6.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $6.(*ArgumentList).CloseParenthesisTkn, } @@ -3281,7 +3281,7 @@ expr_without_variable: { $$ = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), - Condition: $1, + Cond: $1, QuestionTkn: $2, IfTrue: $3, ColonTkn: $4, @@ -3292,7 +3292,7 @@ expr_without_variable: { $$ = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), - Condition: $1, + Cond: $1, QuestionTkn: $2, ColonTkn: $3, IfFalse: $4, @@ -3462,7 +3462,7 @@ yield_expr: $$ = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, - Value: $2, + Val: $2, } } | T_YIELD variable @@ -3470,7 +3470,7 @@ yield_expr: $$ = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, - Value: $2, + Val: $2, } } | T_YIELD expr T_DOUBLE_ARROW expr_without_variable @@ -3480,7 +3480,7 @@ yield_expr: YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, - Value: $4, + Val: $4, } } | T_YIELD expr T_DOUBLE_ARROW variable @@ -3490,7 +3490,7 @@ yield_expr: YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, - Value: $4, + Val: $4, } } ; @@ -3583,7 +3583,7 @@ lexical_vars: $$ = &ast.ExprClosure{ UseTkn: $1, UseOpenParenthesisTkn: $2, - Use: $3.(*ParserSeparatedList).Items, + Uses: $3.(*ParserSeparatedList).Items, UseSeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: $4, } @@ -3597,7 +3597,7 @@ lexical_var_list: Position: yylex.(*Parser).builder.NewTokenPosition($3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($3), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -3617,7 +3617,7 @@ lexical_var_list: AmpersandTkn: $3, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($4), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -3636,7 +3636,7 @@ lexical_var_list: Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -3655,7 +3655,7 @@ lexical_var_list: AmpersandTkn: $1, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($2), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -3674,13 +3674,13 @@ function_call: { $$ = &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodeListNodePosition($1.(*ParserSeparatedList).Items, $2), - Function: &ast.NameName{ + Function: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ArgumentList).Arguments, + Args: $2.(*ArgumentList).Arguments, SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } @@ -3697,7 +3697,7 @@ function_call: SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3713,7 +3713,7 @@ function_call: SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, OpenParenthesisTkn: $3.(*ArgumentList).OpenParenthesisTkn, - Arguments: $3.(*ArgumentList).Arguments, + Args: $3.(*ArgumentList).Arguments, SeparatorTkns: $3.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $3.(*ArgumentList).CloseParenthesisTkn, } @@ -3726,7 +3726,7 @@ function_call: DoubleColonTkn: $2, Call: $3, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3747,7 +3747,7 @@ function_call: DoubleColonTkn: $2, Call: $3, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3760,7 +3760,7 @@ function_call: DoubleColonTkn: $2, Call: $3, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3781,7 +3781,7 @@ function_call: DoubleColonTkn: $2, Call: $3, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3792,7 +3792,7 @@ function_call: Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ArgumentList).Arguments, + Args: $2.(*ArgumentList).Arguments, SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } @@ -3810,7 +3810,7 @@ class_name: } | namespace_name { - $$ = &ast.NameName{ + $$ = &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -3840,7 +3840,7 @@ class_name: fully_qualified_class_name: namespace_name { - $$ = &ast.NameName{ + $$ = &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -4105,7 +4105,7 @@ static_class_constant: Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -4134,7 +4134,7 @@ static_scalar_value: { $$ = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), - Const: &ast.NameName{ + Const: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -4461,7 +4461,7 @@ static_operation: { $$ = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), - Condition: $1, + Cond: $1, QuestionTkn: $2, ColonTkn: $3, IfFalse: $4, @@ -4471,7 +4471,7 @@ static_operation: { $$ = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), - Condition: $1, + Cond: $1, QuestionTkn: $2, IfTrue: $3, ColonTkn: $4, @@ -4514,7 +4514,7 @@ general_constant: { $$ = &ast.ExprConstFetch{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), - Const: &ast.NameName{ + Const: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -4553,7 +4553,7 @@ scalar: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -4750,7 +4750,7 @@ variable: $3 = append($3, &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, - Arguments: mc.Arguments, + Args: mc.Args, SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.CloseParenthesisTkn, }, @@ -4758,7 +4758,7 @@ variable: $3 = append($3, $4[1:len($4)]...) case *ast.ExprPropertyFetch: $4[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn - $4[0].(*ast.ExprMethodCall).Method = l.Property + $4[0].(*ast.ExprMethodCall).Method = l.Prop $4[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn $4[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn $3 = append($3[:len($3)-1], $4...) @@ -4844,7 +4844,7 @@ variable_property: $2 = append($2, &ast.ExprFunctionCall{ Position: yylex.(*Parser).builder.NewNodePosition(mc), OpenParenthesisTkn: mc.OpenParenthesisTkn, - Arguments: mc.Arguments, + Args: mc.Args, SeparatorTkns: mc.SeparatorTkns, CloseParenthesisTkn: mc.OpenParenthesisTkn, }, @@ -4852,7 +4852,7 @@ variable_property: $2 = append($2, $3[1:len($3)]...) case *ast.ExprPropertyFetch: $3[0].(*ast.ExprMethodCall).OpenCurlyBracketTkn = l.OpenCurlyBracketTkn - $3[0].(*ast.ExprMethodCall).Method = l.Property + $3[0].(*ast.ExprMethodCall).Method = l.Prop $3[0].(*ast.ExprMethodCall).CloseCurlyBracketTkn = l.CloseCurlyBracketTkn $3[0].(*ast.ExprMethodCall).ObjectOperatorTkn = l.ObjectOperatorTkn $2 = append($2[:len($2)-1], $3...) @@ -4896,7 +4896,7 @@ method: $$ = &ast.ExprMethodCall{ Position: yylex.(*Parser).builder.NewNodePosition($1), OpenParenthesisTkn: $1.(*ArgumentList).OpenParenthesisTkn, - Arguments: $1.(*ArgumentList).Arguments, + Args: $1.(*ArgumentList).Arguments, SeparatorTkns: $1.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $1.(*ArgumentList).CloseParenthesisTkn, } @@ -4926,7 +4926,7 @@ variable_without_objects: | simple_indirect_reference reference_variable { for i := len($1)-1; i>=0; i-- { - $1[i].(*ast.ExprVariable).VarName = $2 + $1[i].(*ast.ExprVariable).Name = $2 $1[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -4942,7 +4942,7 @@ static_member: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, - Property: $3, + Prop: $3, } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM variable_without_objects @@ -4951,7 +4951,7 @@ static_member: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, - Property: $3, + Prop: $3, } } ; @@ -5010,7 +5010,7 @@ base_variable: | simple_indirect_reference reference_variable { for i := len($1)-1; i>=0; i-- { - $1[i].(*ast.ExprVariable).VarName = $2 + $1[i].(*ast.ExprVariable).Name = $2 $1[i].(*ast.ExprVariable).Position = yylex.(*Parser).builder.NewNodesPosition($1[i], $2) $2 = $1[i] } @@ -5056,7 +5056,7 @@ compound_variable: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -5069,7 +5069,7 @@ compound_variable: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, OpenCurlyBracketTkn: $2, - VarName: $3, + Name: $3, CloseCurlyBracketTkn: $4, } } @@ -5097,7 +5097,7 @@ object_property: $$ = []ast.Vertex{ &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodePosition($1), - Property: $1, + Prop: $1, }, } } @@ -5132,12 +5132,12 @@ object_dim_list: { property := &ast.ExprPropertyFetch{ Position: yylex.(*Parser).builder.NewNodePosition($1), - Property: $1, + Prop: $1, } if brackets, ok := $1.(*ParserBrackets); ok { property.OpenCurlyBracketTkn = brackets.OpenBracketTkn - property.Property = brackets.Child + property.Prop = brackets.Child property.CloseCurlyBracketTkn = brackets.CloseBracketTkn } @@ -5398,7 +5398,7 @@ encaps_var: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -5411,7 +5411,7 @@ encaps_var: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -5428,14 +5428,14 @@ encaps_var: Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -5447,7 +5447,7 @@ encaps_var: $$ = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), DollarOpenCurlyBracketTkn: $1, - VarName: $2, + Name: $2, CloseCurlyBracketTkn: $3, } } @@ -5456,7 +5456,7 @@ encaps_var: $$ = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), DollarOpenCurlyBracketTkn: $1, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -5469,7 +5469,7 @@ encaps_var: $$ = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), DollarOpenCurlyBracketTkn: $1, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -5521,7 +5521,7 @@ encaps_var_offset: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -5640,7 +5640,7 @@ class_constant: Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -5653,7 +5653,7 @@ class_constant: Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -5669,7 +5669,7 @@ static_class_name_scalar: Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -5685,7 +5685,7 @@ class_name_scalar: Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index aa1b77d..b35eece 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -38,7 +38,7 @@ func TestIdentifier(t *testing.T) { StartPos: 3, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -135,7 +135,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 5, EndPos: 19, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -143,7 +143,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 8, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -196,7 +196,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 9, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 2, @@ -211,7 +211,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -268,7 +268,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -345,7 +345,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 23, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -387,7 +387,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 28, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 3, @@ -402,7 +402,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -459,7 +459,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 35, EndPos: 37, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -536,7 +536,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 42, EndPos: 46, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -607,7 +607,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 52, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 4, @@ -622,7 +622,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 52, EndPos: 54, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -679,7 +679,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 59, EndPos: 61, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -749,7 +749,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 66, EndPos: 85, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -757,7 +757,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 69, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -829,7 +829,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 75, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 5, @@ -844,7 +844,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 75, EndPos: 77, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -901,7 +901,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 82, EndPos: 84, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -978,7 +978,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 89, EndPos: 93, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -1049,7 +1049,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 99, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 6, @@ -1064,7 +1064,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 99, EndPos: 101, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -1121,7 +1121,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 106, EndPos: 108, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -1213,7 +1213,7 @@ func TestPhp7ArgumentNode(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1221,7 +1221,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 120, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1264,7 +1264,7 @@ func TestPhp7ArgumentNode(t *testing.T) { EndPos: 121, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 7, @@ -1279,7 +1279,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 121, EndPos: 123, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1336,7 +1336,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 128, EndPos: 130, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -1499,7 +1499,7 @@ func TestPhp7ArgumentNode(t *testing.T) { }, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 9, @@ -1514,7 +1514,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 171, EndPos: 173, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -1571,7 +1571,7 @@ func TestPhp7ArgumentNode(t *testing.T) { StartPos: 178, EndPos: 180, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -1727,7 +1727,7 @@ func TestPhp7ParameterNode(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1793,7 +1793,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 19, }, }, - Expr: &ast.NameName{ + Expr: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1801,7 +1801,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1830,7 +1830,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 23, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1879,7 +1879,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 28, EndPos: 32, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1887,7 +1887,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 32, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1917,7 +1917,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 34, EndPos: 46, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1925,7 +1925,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 37, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -1997,7 +1997,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 42, EndPos: 46, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -2104,7 +2104,7 @@ func TestPhp7ParameterNode(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2208,7 +2208,7 @@ func TestPhp7ParameterNode(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2274,7 +2274,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 85, }, }, - Expr: &ast.NameName{ + Expr: &ast.Name{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2282,7 +2282,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 88, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2311,7 +2311,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 89, EndPos: 93, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2360,7 +2360,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 94, EndPos: 98, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2368,7 +2368,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 98, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2398,7 +2398,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 100, EndPos: 112, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2406,7 +2406,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 103, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2478,7 +2478,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 108, EndPos: 112, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -2647,7 +2647,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 130, }, }, - Expr: &ast.NameName{ + Expr: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2655,7 +2655,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 133, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2684,7 +2684,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 134, EndPos: 138, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2733,7 +2733,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 139, EndPos: 143, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2741,7 +2741,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 143, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2771,7 +2771,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 145, EndPos: 157, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2779,7 +2779,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 148, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -2851,7 +2851,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 153, EndPos: 157, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -3033,7 +3033,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 182, }, }, - Expr: &ast.NameName{ + Expr: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3041,7 +3041,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 185, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3070,7 +3070,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 186, EndPos: 190, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3119,7 +3119,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 191, EndPos: 195, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3127,7 +3127,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 195, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3157,7 +3157,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 197, EndPos: 209, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3165,7 +3165,7 @@ func TestPhp7ParameterNode(t *testing.T) { EndPos: 200, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3237,7 +3237,7 @@ func TestPhp7ParameterNode(t *testing.T) { StartPos: 205, EndPos: 209, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -3431,7 +3431,7 @@ func TestName(t *testing.T) { StartPos: 3, EndPos: 8, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3439,7 +3439,7 @@ func TestName(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3590,7 +3590,7 @@ func TestFullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3729,7 +3729,7 @@ func TestRelative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -3879,7 +3879,7 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4017,7 +4017,7 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4155,7 +4155,7 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4312,7 +4312,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4356,7 +4356,7 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4512,7 +4512,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4542,7 +4542,7 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { EndPos: 15, }, }, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4709,7 +4709,7 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { EndPos: 11, }, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -4867,7 +4867,7 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { EndPos: 11, }, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -5078,7 +5078,7 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { StartPos: 10, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -5280,7 +5280,7 @@ LBL; StartPos: 15, EndPos: 19, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -5453,7 +5453,7 @@ LBL; StartPos: 17, EndPos: 21, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -7040,7 +7040,7 @@ func TestStmtAltIf_AltIf(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -7241,7 +7241,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -7361,7 +7361,7 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -7552,7 +7552,7 @@ func TestStmtAltIf_AltElse(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -7804,7 +7804,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -7924,7 +7924,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -8032,7 +8032,7 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { StartPos: 40, EndPos: 42, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -8239,7 +8239,7 @@ func TestStmtClassConstList(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -8637,7 +8637,7 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9002,7 +9002,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9073,7 +9073,7 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9251,7 +9251,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9386,7 +9386,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9541,7 +9541,7 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9719,7 +9719,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9876,7 +9876,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9925,7 +9925,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { EndPos: 44, }, }, - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -9933,7 +9933,7 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { EndPos: 49, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10126,7 +10126,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10261,7 +10261,7 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10449,7 +10449,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10553,7 +10553,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { }, }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10614,7 +10614,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { EndPos: 45, }, }, - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10622,7 +10622,7 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { EndPos: 50, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10759,7 +10759,7 @@ func TestStmtClass_SimpleClass(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -10918,7 +10918,7 @@ func TestStmtClass_AbstractClass(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11077,7 +11077,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11130,7 +11130,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { }, }, }, - Extends: &ast.NameName{ + Extends: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11138,7 +11138,7 @@ func TestStmtClass_ClassExtends(t *testing.T) { EndPos: 30, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11311,7 +11311,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11365,7 +11365,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { }, }, Implements: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11373,7 +11373,7 @@ func TestStmtClass_ClassImplement(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11547,7 +11547,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11601,7 +11601,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, }, Implements: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11609,7 +11609,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11642,7 +11642,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11650,7 +11650,7 @@ func TestStmtClass_ClassImplements(t *testing.T) { EndPos: 38, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11881,7 +11881,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { }, }, }, - Extends: &ast.NameName{ + Extends: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11889,7 +11889,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { EndPos: 26, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11945,7 +11945,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { }, }, Implements: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11953,7 +11953,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { EndPos: 41, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11986,7 +11986,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -11994,7 +11994,7 @@ func TestStmtClass_AnonimousClass(t *testing.T) { EndPos: 46, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -13920,7 +13920,7 @@ func TestStmtEcho(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14093,7 +14093,7 @@ func TestStmtEcho_Parenthesis(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14303,7 +14303,7 @@ func TestStmtFor(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14403,7 +14403,7 @@ func TestStmtFor(t *testing.T) { StartPos: 15, EndPos: 17, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14515,7 +14515,7 @@ func TestStmtFor(t *testing.T) { StartPos: 24, EndPos: 26, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14572,7 +14572,7 @@ func TestStmtFor(t *testing.T) { StartPos: 30, EndPos: 32, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14776,7 +14776,7 @@ func TestStmtFor_Alt(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -14888,7 +14888,7 @@ func TestStmtFor_Alt(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15096,7 +15096,7 @@ func TestStmtForeach(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15145,7 +15145,7 @@ func TestStmtForeach(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15369,7 +15369,7 @@ func TestStmtForeach_Expr(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15543,7 +15543,7 @@ func TestStmtForeach_Alt(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15592,7 +15592,7 @@ func TestStmtForeach_Alt(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15788,7 +15788,7 @@ func TestStmtForeach_WithKey(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15837,7 +15837,7 @@ func TestStmtForeach_WithKey(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -15898,7 +15898,7 @@ func TestStmtForeach_WithKey(t *testing.T) { StartPos: 24, EndPos: 26, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16122,7 +16122,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16183,7 +16183,7 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { StartPos: 24, EndPos: 26, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16357,7 +16357,7 @@ func TestStmtForeach_WithRef(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16406,7 +16406,7 @@ func TestStmtForeach_WithRef(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16489,7 +16489,7 @@ func TestStmtForeach_WithRef(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16651,7 +16651,7 @@ func TestStmtForeach_WithList(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16700,7 +16700,7 @@ func TestStmtForeach_WithList(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16808,7 +16808,7 @@ func TestStmtForeach_WithList(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -16954,7 +16954,7 @@ func TestStmtFunction(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17100,7 +17100,7 @@ func TestStmtFunction_Return(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17275,7 +17275,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17350,7 +17350,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17428,7 +17428,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { StartPos: 35, EndPos: 37, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17531,7 +17531,7 @@ func TestStmtFunction_ReturnVar(t *testing.T) { StartPos: 47, EndPos: 49, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17669,7 +17669,7 @@ func TestStmtFunction_Ref(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17885,7 +17885,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { }, }, }, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17934,7 +17934,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { EndPos: 19, }, }, - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -17942,7 +17942,7 @@ func TestStmtFunction_ReturnType(t *testing.T) { EndPos: 24, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18078,7 +18078,7 @@ func TestStmtGlobal(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18191,7 +18191,7 @@ func TestStmtGlobal_Vars(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18230,7 +18230,7 @@ func TestStmtGlobal_Vars(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18291,14 +18291,14 @@ func TestStmtGlobal_Vars(t *testing.T) { }, }, }, - VarName: &ast.ExprVariable{ + Name: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 19, EndPos: 21, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18358,14 +18358,14 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 25, }, }, - VarName: &ast.ExprFunctionCall{ + Name: &ast.ExprFunctionCall{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 25, EndPos: 30, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18373,7 +18373,7 @@ func TestStmtGlobal_Vars(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18499,7 +18499,7 @@ func TestStmtGotoLabel(t *testing.T) { StartPos: 3, EndPos: 5, }, - LabelName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18804,7 +18804,7 @@ func TestStmtIf(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -18966,7 +18966,7 @@ func TestStmtIf_ElseIf(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19096,7 +19096,7 @@ func TestStmtIf_ElseIf(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19260,7 +19260,7 @@ func TestStmtIf_Else(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19493,7 +19493,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19623,7 +19623,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19753,7 +19753,7 @@ func TestStmtIf_ElseElseIf(t *testing.T) { StartPos: 37, EndPos: 39, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -19988,7 +19988,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20118,7 +20118,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20278,7 +20278,7 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { StartPos: 38, EndPos: 40, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20565,7 +20565,7 @@ func TestStmtInterface(t *testing.T) { }, }, }, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20691,7 +20691,7 @@ func TestStmtInterface_Extend(t *testing.T) { }, }, }, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20745,7 +20745,7 @@ func TestStmtInterface_Extend(t *testing.T) { }, }, Extends: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20753,7 +20753,7 @@ func TestStmtInterface_Extend(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20882,7 +20882,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, }, }, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20936,7 +20936,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, }, Extends: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20944,7 +20944,7 @@ func TestStmtInterface_Extends(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20977,7 +20977,7 @@ func TestStmtInterface_Extends(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -20985,7 +20985,7 @@ func TestStmtInterface_Extends(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21126,7 +21126,7 @@ func TestStmtNamespace(t *testing.T) { }, }, }, - Name: &ast.NameName{ + Name: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21134,7 +21134,7 @@ func TestStmtNamespace(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21239,7 +21239,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { }, }, }, - Name: &ast.NameName{ + Name: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21247,7 +21247,7 @@ func TestStmtNamespace_Stmts(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21470,7 +21470,7 @@ func TestStmtProperty(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21552,7 +21552,7 @@ func TestStmtProperty(t *testing.T) { Value: []byte("var"), }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Position: &position.Position{ StartLine: 1, @@ -21567,7 +21567,7 @@ func TestStmtProperty(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21685,7 +21685,7 @@ func TestStmtProperty_Properties(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21798,7 +21798,7 @@ func TestStmtProperty_Properties(t *testing.T) { Value: []byte("static"), }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Position: &position.Position{ StartLine: 1, @@ -21813,7 +21813,7 @@ func TestStmtProperty_Properties(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -21860,7 +21860,7 @@ func TestStmtProperty_Properties(t *testing.T) { StartPos: 32, EndPos: 34, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22043,7 +22043,7 @@ func TestStmtProperty_Properties2(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22156,7 +22156,7 @@ func TestStmtProperty_Properties2(t *testing.T) { Value: []byte("static"), }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Position: &position.Position{ StartLine: 1, @@ -22171,7 +22171,7 @@ func TestStmtProperty_Properties2(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22271,7 +22271,7 @@ func TestStmtProperty_Properties2(t *testing.T) { StartPos: 36, EndPos: 38, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22401,7 +22401,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22483,7 +22483,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { Value: []byte("var"), }, }, - Type: &ast.NameName{ + Type: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22491,7 +22491,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { EndPos: 21, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22524,7 +22524,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { }, }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Position: &position.Position{ StartLine: 1, @@ -22539,7 +22539,7 @@ func TestStmtProperty_PropertyType(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22672,7 +22672,7 @@ func TestStmtStaticVar(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22793,7 +22793,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -22840,7 +22840,7 @@ func TestStmtStaticVar_Vars(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23026,7 +23026,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23126,7 +23126,7 @@ func TestStmtStaticVar_Vars2(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -23322,7 +23322,7 @@ func TestStmtSwitch(t *testing.T) { }, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -23735,7 +23735,7 @@ func TestStmtSwitch_Semicolon(t *testing.T) { EndPos: 18, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -24139,7 +24139,7 @@ func TestStmtSwitch_Alt(t *testing.T) { }, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -24520,7 +24520,7 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { EndPos: 18, }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Position: &position.Position{ StartLine: 3, @@ -24767,7 +24767,7 @@ func TestStmtThrow(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24871,7 +24871,7 @@ func TestStmtTrait(t *testing.T) { }, }, }, - TraitName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -24997,7 +24997,7 @@ func TestStmtTraitUse(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25081,7 +25081,7 @@ func TestStmtTraitUse(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25089,7 +25089,7 @@ func TestStmtTraitUse(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25219,7 +25219,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25303,7 +25303,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25311,7 +25311,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25344,7 +25344,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25352,7 +25352,7 @@ func TestStmtTraitUse_Uses(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25494,7 +25494,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25578,7 +25578,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25586,7 +25586,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25619,7 +25619,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25627,7 +25627,7 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25791,7 +25791,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25875,7 +25875,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25883,7 +25883,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25916,7 +25916,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -25924,7 +25924,7 @@ func TestStmtTraitUse_Modifier(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26204,7 +26204,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26288,7 +26288,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26296,7 +26296,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26329,7 +26329,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26337,7 +26337,7 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26648,7 +26648,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26732,7 +26732,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26740,7 +26740,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26773,7 +26773,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26781,7 +26781,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 27, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26857,7 +26857,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 30, EndPos: 58, }, - Trait: &ast.NameName{ + Trait: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26865,7 +26865,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 33, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26950,7 +26950,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, Insteadof: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26958,7 +26958,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 52, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26991,7 +26991,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -26999,7 +26999,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 58, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27063,7 +27063,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { StartPos: 60, EndPos: 75, }, - Trait: &ast.NameName{ + Trait: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27071,7 +27071,7 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndPos: 63, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -27505,7 +27505,7 @@ func TestStmtTry_TryCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -27513,7 +27513,7 @@ func TestStmtTry_TryCatch(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -27542,7 +27542,7 @@ func TestStmtTry_TryCatch(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -27782,7 +27782,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -27790,7 +27790,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -27811,7 +27811,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { }, }, }, - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -27819,7 +27819,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { EndPos: 45, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -27860,7 +27860,7 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { StartPos: 46, EndPos: 48, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28100,7 +28100,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28108,7 +28108,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28137,7 +28137,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28265,7 +28265,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28273,7 +28273,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndPos: 59, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28302,7 +28302,7 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { StartPos: 60, EndPos: 62, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28542,7 +28542,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28550,7 +28550,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { EndPos: 28, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28579,7 +28579,7 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { StartPos: 29, EndPos: 31, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -28880,7 +28880,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, }, Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28888,7 +28888,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndPos: 26, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -28917,7 +28917,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { StartPos: 27, EndPos: 29, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29063,7 +29063,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29092,7 +29092,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { StartPos: 59, EndPos: 61, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29248,7 +29248,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29277,7 +29277,7 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { StartPos: 101, EndPos: 103, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29434,7 +29434,7 @@ func TestStmtUnset(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29555,7 +29555,7 @@ func TestStmtUnset_Vars(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29582,7 +29582,7 @@ func TestStmtUnset_Vars(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29727,7 +29727,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29754,7 +29754,7 @@ func TestStmtUnset_TrailingComma(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29852,7 +29852,7 @@ func TestStmtUse(t *testing.T) { EndPos: 11, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29891,15 +29891,15 @@ func TestStmtUse(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 10, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29907,7 +29907,7 @@ func TestStmtUse(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -29975,7 +29975,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 12, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30014,8 +30014,8 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30044,7 +30044,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30052,7 +30052,7 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndPos: 11, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30108,7 +30108,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 19, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30147,8 +30147,8 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30177,7 +30177,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30185,7 +30185,7 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndPos: 11, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30294,7 +30294,7 @@ func TestStmtUse_List(t *testing.T) { EndPos: 16, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30333,15 +30333,15 @@ func TestStmtUse_List(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 10, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30349,7 +30349,7 @@ func TestStmtUse_List(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30383,14 +30383,14 @@ func TestStmtUse_List(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, EndPos: 15, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30398,7 +30398,7 @@ func TestStmtUse_List(t *testing.T) { EndPos: 15, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30478,7 +30478,7 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 23, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30517,15 +30517,15 @@ func TestStmtUse_ListAlias(t *testing.T) { }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 7, EndPos: 10, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30533,7 +30533,7 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30567,14 +30567,14 @@ func TestStmtUse_ListAlias(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, EndPos: 22, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30582,7 +30582,7 @@ func TestStmtUse_ListAlias(t *testing.T) { EndPos: 15, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30715,7 +30715,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 26, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30785,15 +30785,15 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, Value: []byte("function"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 19, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30801,7 +30801,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 19, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30835,7 +30835,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30864,7 +30864,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30872,7 +30872,7 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndPos: 25, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -30940,7 +30940,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 40, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31010,15 +31010,15 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, Value: []byte("function"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 16, EndPos: 26, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31026,7 +31026,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 19, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31113,7 +31113,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { Value: []byte("foo"), }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31142,7 +31142,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31150,7 +31150,7 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndPos: 32, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31271,7 +31271,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 23, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31341,15 +31341,15 @@ func TestStmtUse_ListConstType(t *testing.T) { }, Value: []byte("const"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, EndPos: 16, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31357,7 +31357,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31391,7 +31391,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31420,7 +31420,7 @@ func TestStmtUse_ListConstType(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31428,7 +31428,7 @@ func TestStmtUse_ListConstType(t *testing.T) { EndPos: 22, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31496,7 +31496,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 37, }, Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31566,15 +31566,15 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, Value: []byte("const"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 13, EndPos: 23, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31582,7 +31582,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31669,7 +31669,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { Value: []byte("foo"), }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31698,7 +31698,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { }, }, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31706,7 +31706,7 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndPos: 29, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31827,7 +31827,7 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 22, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtGroupUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31866,7 +31866,7 @@ func TestStmtUse_GroupUse(t *testing.T) { }, }, }, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31874,7 +31874,7 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31927,15 +31927,15 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 12, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, EndPos: 15, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31943,7 +31943,7 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 15, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31965,14 +31965,14 @@ func TestStmtUse_GroupUse(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 17, EndPos: 20, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -31980,7 +31980,7 @@ func TestStmtUse_GroupUse(t *testing.T) { EndPos: 20, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32070,7 +32070,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 30, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtGroupUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32109,7 +32109,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { }, }, }, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32117,7 +32117,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32170,15 +32170,15 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 12, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 12, EndPos: 15, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32186,7 +32186,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 15, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32208,14 +32208,14 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 17, EndPos: 28, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32223,7 +32223,7 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndPos: 20, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32366,7 +32366,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 31, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtGroupUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32436,7 +32436,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { }, Value: []byte("function"), }, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32444,7 +32444,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 19, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32497,15 +32497,15 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 21, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 21, EndPos: 24, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32513,7 +32513,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 24, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32535,14 +32535,14 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 26, EndPos: 29, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32550,7 +32550,7 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndPos: 29, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32640,7 +32640,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 28, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtGroupUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32710,7 +32710,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { }, Value: []byte("const"), }, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32718,7 +32718,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32771,15 +32771,15 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 18, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 18, EndPos: 21, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32787,7 +32787,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 21, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32809,14 +32809,14 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 23, EndPos: 26, }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32824,7 +32824,7 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndPos: 26, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32914,7 +32914,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 37, }, Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtGroupUseList{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32953,7 +32953,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, }, }, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -32961,7 +32961,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33014,8 +33014,8 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 12, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33041,7 +33041,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, Value: []byte("const"), }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33049,7 +33049,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 21, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33083,7 +33083,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, }, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33121,7 +33121,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { }, Value: []byte("function"), }, - Use: &ast.NameName{ + Use: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33129,7 +33129,7 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndPos: 35, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -33951,7 +33951,7 @@ func TestExprArrayDimFetch(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34094,7 +34094,7 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34627,7 +34627,7 @@ func TestExprArray_Items(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34797,7 +34797,7 @@ func TestExprArray_ItemUnpack(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -34958,7 +34958,7 @@ func TestExprArrowFunction(t *testing.T) { StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35146,7 +35146,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { }, }, }, - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35154,7 +35154,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { EndPos: 16, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35216,7 +35216,7 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { StartPos: 20, EndPos: 22, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35335,7 +35335,7 @@ func TestExprBitwiseNot(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35442,7 +35442,7 @@ func TestExprBooleanNot(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35510,7 +35510,7 @@ func TestExprClassConstFetch(t *testing.T) { StartPos: 3, EndPos: 11, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35518,7 +35518,7 @@ func TestExprClassConstFetch(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35571,7 +35571,7 @@ func TestExprClassConstFetch(t *testing.T) { EndPos: 8, }, }, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35689,7 +35689,7 @@ func TestExprClassConstFetch_Static(t *testing.T) { EndPos: 11, }, }, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35812,7 +35812,7 @@ func TestExprClone_Brackets(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -35930,7 +35930,7 @@ func TestExprClone(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36188,7 +36188,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36223,7 +36223,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36323,7 +36323,7 @@ func TestExprClosure_Use(t *testing.T) { }, }, }, - Use: []ast.Vertex{ + Uses: []ast.Vertex{ &ast.ExprClosureUse{ Position: &position.Position{ StartLine: 1, @@ -36338,7 +36338,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 25, EndPos: 27, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36395,7 +36395,7 @@ func TestExprClosure_Use(t *testing.T) { StartPos: 30, EndPos: 32, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36577,7 +36577,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36612,7 +36612,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36712,7 +36712,7 @@ func TestExprClosure_Use2(t *testing.T) { }, }, }, - Use: []ast.Vertex{ + Uses: []ast.Vertex{ &ast.ExprClosureUse{ Position: &position.Position{ StartLine: 1, @@ -36737,7 +36737,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 26, EndPos: 28, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36772,7 +36772,7 @@ func TestExprClosure_Use2(t *testing.T) { StartPos: 30, EndPos: 32, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36971,7 +36971,7 @@ func TestExprClosure_ReturnType(t *testing.T) { EndPos: 14, }, }, - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -36979,7 +36979,7 @@ func TestExprClosure_ReturnType(t *testing.T) { EndPos: 19, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37093,7 +37093,7 @@ func TestExprConstFetch(t *testing.T) { StartPos: 3, EndPos: 6, }, - Const: &ast.NameName{ + Const: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37101,7 +37101,7 @@ func TestExprConstFetch(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37242,7 +37242,7 @@ func TestExprConstFetch_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37351,7 +37351,7 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37469,7 +37469,7 @@ func TestExprEmpty(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37586,7 +37586,7 @@ func TestExprErrorSuppress(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -37703,7 +37703,7 @@ func TestExprEval(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38010,7 +38010,7 @@ func TestExprExit_Expr(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38317,7 +38317,7 @@ func TestExprDie_Expr(t *testing.T) { StartPos: 7, EndPos: 9, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38395,7 +38395,7 @@ func TestExprFunctionCall(t *testing.T) { StartPos: 3, EndPos: 8, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38403,7 +38403,7 @@ func TestExprFunctionCall(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38564,7 +38564,7 @@ func TestExprFunctionCall_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38693,7 +38693,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38724,7 +38724,7 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { EndPos: 8, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 1, @@ -38827,7 +38827,7 @@ func TestExprFunctionCall_Var(t *testing.T) { StartPos: 3, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -38879,7 +38879,7 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 8, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 1, @@ -38904,14 +38904,14 @@ func TestExprFunctionCall_Var(t *testing.T) { EndPos: 13, }, }, - Value: &ast.ExprVariable{ + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39004,7 +39004,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { StartPos: 3, EndPos: 15, }, - Function: &ast.NameName{ + Function: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39012,7 +39012,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndPos: 7, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39065,7 +39065,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndPos: 8, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 1, @@ -39087,7 +39087,7 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { StartPos: 8, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39204,7 +39204,7 @@ func TestExprPostDec(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39311,7 +39311,7 @@ func TestExprPostInc(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39450,7 +39450,7 @@ func TestExprPreDec(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39557,7 +39557,7 @@ func TestExprPreInc(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39664,7 +39664,7 @@ func TestExprInclude(t *testing.T) { StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39783,7 +39783,7 @@ func TestExprInclude_Once(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -39902,7 +39902,7 @@ func TestExprRequire(t *testing.T) { StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40021,7 +40021,7 @@ func TestExprRequire_Once(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40108,7 +40108,7 @@ func TestExprInstanceOf(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40172,7 +40172,7 @@ func TestExprInstanceOf(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40180,7 +40180,7 @@ func TestExprInstanceOf(t *testing.T) { EndPos: 20, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40268,7 +40268,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40372,7 +40372,7 @@ func TestExprInstanceOf_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40448,7 +40448,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40542,7 +40542,7 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40661,7 +40661,7 @@ func TestExprIsset(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40790,7 +40790,7 @@ func TestExprIsset_Variables(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -40817,7 +40817,7 @@ func TestExprIsset_Variables(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41009,7 +41009,7 @@ func TestExprList_Empty(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41153,7 +41153,7 @@ func TestExprList(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41215,7 +41215,7 @@ func TestExprList(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41366,7 +41366,7 @@ func TestExprList_ArrayIndex(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41449,7 +41449,7 @@ func TestExprList_ArrayIndex(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41628,7 +41628,7 @@ func TestExprList_List(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41703,7 +41703,7 @@ func TestExprList_List(t *testing.T) { StartPos: 20, EndPos: 22, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41848,7 +41848,7 @@ func TestExprList_EmptyItem(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -41934,7 +41934,7 @@ func TestExprList_EmptyItem(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42080,7 +42080,7 @@ func TestExprList_EmptyItems(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42211,7 +42211,7 @@ func TestExprList_EmptyItems(t *testing.T) { StartPos: 20, EndPos: 22, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42298,7 +42298,7 @@ func TestExprMethodCall(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42469,7 +42469,7 @@ func TestExprNew(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42477,7 +42477,7 @@ func TestExprNew(t *testing.T) { EndPos: 10, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42630,7 +42630,7 @@ func TestExprNew_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42781,7 +42781,7 @@ func TestExprNew_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -42953,7 +42953,7 @@ func TestExprNew_Anonymous(t *testing.T) { }, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 1, @@ -42968,7 +42968,7 @@ func TestExprNew_Anonymous(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -43025,7 +43025,7 @@ func TestExprNew_Anonymous(t *testing.T) { StartPos: 21, EndPos: 23, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -43207,7 +43207,7 @@ func TestExprPrint(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -43293,7 +43293,7 @@ func TestExprPropertyFetch(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -43345,7 +43345,7 @@ func TestExprPropertyFetch(t *testing.T) { EndPos: 7, }, }, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -43471,7 +43471,7 @@ func TestExprShellExec(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -43884,7 +43884,7 @@ func TestExprShortArray_Items(t *testing.T) { StartPos: 11, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44041,7 +44041,7 @@ func TestExprShortList(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44103,7 +44103,7 @@ func TestExprShortList(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44244,7 +44244,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44327,7 +44327,7 @@ func TestExprShortList_ArrayIndex(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44496,7 +44496,7 @@ func TestExprShortList_List(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44571,7 +44571,7 @@ func TestExprShortList_List(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44651,7 +44651,7 @@ func TestExprStaticCall(t *testing.T) { StartPos: 3, EndPos: 13, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44659,7 +44659,7 @@ func TestExprStaticCall(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -44849,7 +44849,7 @@ func TestExprStaticCall_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45007,7 +45007,7 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45125,7 +45125,7 @@ func TestExprStaticCall_Var(t *testing.T) { StartPos: 3, EndPos: 14, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45133,7 +45133,7 @@ func TestExprStaticCall_Var(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45193,7 +45193,7 @@ func TestExprStaticCall_Var(t *testing.T) { StartPos: 8, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45288,7 +45288,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { StartPos: 3, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45347,7 +45347,7 @@ func TestExprStaticCall_VarVar(t *testing.T) { StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45435,7 +45435,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { StartPos: 3, EndPos: 12, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45443,7 +45443,7 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndPos: 6, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45496,14 +45496,14 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndPos: 8, }, }, - Property: &ast.ExprVariable{ + Prop: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45621,7 +45621,7 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45652,14 +45652,14 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { EndPos: 18, }, }, - Property: &ast.ExprVariable{ + Prop: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 18, EndPos: 22, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45767,7 +45767,7 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { }, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45798,14 +45798,14 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { EndPos: 9, }, }, - Property: &ast.ExprVariable{ + Prop: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 13, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45873,14 +45873,14 @@ func TestExprTernary(t *testing.T) { StartPos: 3, EndPos: 15, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -45951,7 +45951,7 @@ func TestExprTernary(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46012,7 +46012,7 @@ func TestExprTernary(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46092,14 +46092,14 @@ func TestExprTernary_Simple(t *testing.T) { StartPos: 3, EndPos: 12, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46192,7 +46192,7 @@ func TestExprTernary_Simple(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46272,14 +46272,14 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 3, EndPos: 25, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46350,14 +46350,14 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 8, EndPos: 20, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46418,7 +46418,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46479,7 +46479,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46541,7 +46541,7 @@ func TestExprTernary_NestedTrue(t *testing.T) { StartPos: 23, EndPos: 25, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46621,21 +46621,21 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 3, EndPos: 25, }, - Condition: &ast.ExprTernary{ + Cond: &ast.ExprTernary{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 15, }, - Condition: &ast.ExprVariable{ + Cond: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46706,7 +46706,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 8, EndPos: 10, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46767,7 +46767,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 13, EndPos: 15, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46829,7 +46829,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 18, EndPos: 20, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -46890,7 +46890,7 @@ func TestExprTernary_NestedCond(t *testing.T) { StartPos: 23, EndPos: 25, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47009,7 +47009,7 @@ func TestExprUnaryMinus(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47116,7 +47116,7 @@ func TestExprUnaryPlus(t *testing.T) { StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47184,7 +47184,7 @@ func TestExprVariable(t *testing.T) { StartPos: 3, EndPos: 5, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47305,14 +47305,14 @@ func TestExprVariable_Variable(t *testing.T) { }, }, }, - VarName: &ast.ExprVariable{ + Name: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 4, EndPos: 6, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47492,14 +47492,14 @@ func TestExprYield_Val(t *testing.T) { }, }, }, - Value: &ast.ExprVariable{ + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47618,7 +47618,7 @@ func TestExprYield_KeyVal(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47672,14 +47672,14 @@ func TestExprYield_KeyVal(t *testing.T) { }, }, }, - Value: &ast.ExprVariable{ + Val: &ast.ExprVariable{ Position: &position.Position{ StartLine: 1, EndLine: 1, StartPos: 15, EndPos: 17, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47791,7 +47791,7 @@ func TestExprYield_Expr(t *testing.T) { }, }, }, - Value: &ast.ScalarLnumber{ + Val: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47909,7 +47909,7 @@ func TestExprYield_KeyExpr(t *testing.T) { StartPos: 9, EndPos: 11, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -47963,7 +47963,7 @@ func TestExprYield_KeyExpr(t *testing.T) { }, }, }, - Value: &ast.ScalarLnumber{ + Val: &ast.ScalarLnumber{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -48081,7 +48081,7 @@ func TestExprYieldFrom(t *testing.T) { StartPos: 14, EndPos: 16, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 1, EndLine: 1, @@ -48187,7 +48187,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -48258,7 +48258,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -48323,7 +48323,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -48394,7 +48394,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 22, EndPos: 24, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -48459,7 +48459,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 28, EndPos: 30, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -48552,7 +48552,7 @@ func TestExprAssign_Assign(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -48560,7 +48560,7 @@ func TestExprAssign_Assign(t *testing.T) { EndPos: 41, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -48627,7 +48627,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 45, EndPos: 47, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -48720,7 +48720,7 @@ func TestExprAssign_Assign(t *testing.T) { }, }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -48728,7 +48728,7 @@ func TestExprAssign_Assign(t *testing.T) { EndPos: 58, }, Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -48771,7 +48771,7 @@ func TestExprAssign_Assign(t *testing.T) { EndPos: 59, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Position: &position.Position{ StartLine: 5, @@ -48786,7 +48786,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 59, EndPos: 61, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -48852,7 +48852,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 66, EndPos: 68, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -48913,7 +48913,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 72, EndPos: 74, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -48978,7 +48978,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 78, EndPos: 80, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -49039,7 +49039,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 84, EndPos: 86, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -49104,7 +49104,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 90, EndPos: 92, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -49165,7 +49165,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 96, EndPos: 98, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -49230,7 +49230,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 102, EndPos: 104, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -49291,7 +49291,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 108, EndPos: 110, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -49356,7 +49356,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 114, EndPos: 116, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -49417,7 +49417,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 120, EndPos: 122, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -49482,7 +49482,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 126, EndPos: 128, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -49543,7 +49543,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 132, EndPos: 134, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -49608,7 +49608,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 138, EndPos: 140, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -49669,7 +49669,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 144, EndPos: 146, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -49734,7 +49734,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 150, EndPos: 152, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -49795,7 +49795,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 156, EndPos: 158, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -49860,7 +49860,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 162, EndPos: 164, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -49921,7 +49921,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 168, EndPos: 170, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -49986,7 +49986,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 174, EndPos: 176, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -50047,7 +50047,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 181, EndPos: 183, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -50112,7 +50112,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 187, EndPos: 189, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -50173,7 +50173,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 194, EndPos: 196, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -50238,7 +50238,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 200, EndPos: 202, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -50299,7 +50299,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 207, EndPos: 209, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -50364,7 +50364,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 213, EndPos: 215, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, @@ -50425,7 +50425,7 @@ func TestExprAssign_Assign(t *testing.T) { StartPos: 220, EndPos: 222, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, @@ -50541,7 +50541,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 5, EndPos: 7, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -50612,7 +50612,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 10, EndPos: 12, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -50677,7 +50677,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 16, EndPos: 18, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -50738,7 +50738,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 21, EndPos: 23, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -50803,7 +50803,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 27, EndPos: 29, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -50864,7 +50864,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 32, EndPos: 34, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -50929,7 +50929,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 38, EndPos: 40, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -50990,7 +50990,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 44, EndPos: 46, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -51055,7 +51055,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 50, EndPos: 52, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -51116,7 +51116,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 56, EndPos: 58, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -51181,7 +51181,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 62, EndPos: 64, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -51242,7 +51242,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 68, EndPos: 70, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -51307,7 +51307,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 74, EndPos: 76, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -51368,7 +51368,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 79, EndPos: 81, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -51433,7 +51433,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 85, EndPos: 87, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -51494,7 +51494,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 90, EndPos: 92, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -51559,7 +51559,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 96, EndPos: 98, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -51620,7 +51620,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 102, EndPos: 104, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -51685,7 +51685,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 108, EndPos: 110, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -51746,7 +51746,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 114, EndPos: 116, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -51811,7 +51811,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 120, EndPos: 122, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -51872,7 +51872,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 125, EndPos: 127, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -51937,7 +51937,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 131, EndPos: 133, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -51998,7 +51998,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 138, EndPos: 140, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 13, EndLine: 13, @@ -52063,7 +52063,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 144, EndPos: 146, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -52124,7 +52124,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 151, EndPos: 153, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 14, EndLine: 14, @@ -52189,7 +52189,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 157, EndPos: 159, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -52250,7 +52250,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 163, EndPos: 165, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 15, EndLine: 15, @@ -52315,7 +52315,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 169, EndPos: 171, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -52376,7 +52376,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 176, EndPos: 178, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 16, EndLine: 16, @@ -52441,7 +52441,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 182, EndPos: 184, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -52502,7 +52502,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 187, EndPos: 189, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 17, EndLine: 17, @@ -52567,7 +52567,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 193, EndPos: 195, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, @@ -52628,7 +52628,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 198, EndPos: 200, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 18, EndLine: 18, @@ -52693,7 +52693,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 204, EndPos: 206, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 19, EndLine: 19, @@ -52754,7 +52754,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 209, EndPos: 211, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 19, EndLine: 19, @@ -52819,7 +52819,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 215, EndPos: 217, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 20, EndLine: 20, @@ -52880,7 +52880,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 221, EndPos: 223, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 20, EndLine: 20, @@ -52945,7 +52945,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 227, EndPos: 229, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 21, EndLine: 21, @@ -53006,7 +53006,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 234, EndPos: 236, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 21, EndLine: 21, @@ -53071,7 +53071,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 240, EndPos: 242, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 22, EndLine: 22, @@ -53132,7 +53132,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 245, EndPos: 247, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 22, EndLine: 22, @@ -53197,7 +53197,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 251, EndPos: 253, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 23, EndLine: 23, @@ -53258,7 +53258,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 257, EndPos: 259, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 23, EndLine: 23, @@ -53323,7 +53323,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 263, EndPos: 265, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 24, EndLine: 24, @@ -53384,7 +53384,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 269, EndPos: 271, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 24, EndLine: 24, @@ -53449,7 +53449,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 275, EndPos: 277, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 25, EndLine: 25, @@ -53510,7 +53510,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 281, EndPos: 283, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 25, EndLine: 25, @@ -53575,7 +53575,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 287, EndPos: 289, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 26, EndLine: 26, @@ -53636,7 +53636,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 293, EndPos: 295, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 26, EndLine: 26, @@ -53701,7 +53701,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 299, EndPos: 301, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 27, EndLine: 27, @@ -53762,7 +53762,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 304, EndPos: 306, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 27, EndLine: 27, @@ -53827,7 +53827,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 310, EndPos: 312, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 28, EndLine: 28, @@ -53888,7 +53888,7 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { StartPos: 317, EndPos: 319, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 28, EndLine: 28, @@ -54020,7 +54020,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 12, EndPos: 14, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 2, EndLine: 2, @@ -54095,7 +54095,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 27, EndPos: 29, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 3, EndLine: 3, @@ -54170,7 +54170,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 39, EndPos: 41, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 4, EndLine: 4, @@ -54245,7 +54245,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 53, EndPos: 55, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 5, EndLine: 5, @@ -54320,7 +54320,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 66, EndPos: 68, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 6, EndLine: 6, @@ -54395,7 +54395,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 81, EndPos: 83, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 7, EndLine: 7, @@ -54470,7 +54470,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 92, EndPos: 94, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 8, EndLine: 8, @@ -54545,7 +54545,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 106, EndPos: 108, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 9, EndLine: 9, @@ -54620,7 +54620,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 120, EndPos: 122, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 10, EndLine: 10, @@ -54695,7 +54695,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 134, EndPos: 136, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, @@ -54770,7 +54770,7 @@ func TestExprCast_Array(t *testing.T) { StartPos: 147, EndPos: 149, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 12, EndLine: 12, @@ -55428,7 +55428,7 @@ CAD; StartPos: 79, EndPos: 85, }, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: &position.Position{ StartLine: 11, EndLine: 11, diff --git a/internal/php7/php7.go b/internal/php7/php7.go index 9810e30..eeb7595 100644 --- a/internal/php7/php7.go +++ b/internal/php7/php7.go @@ -2598,7 +2598,7 @@ yydefault: { yyVAL.node = &ParserSeparatedList{ Items: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), StringTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -2610,7 +2610,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:350 { - part := &ast.NameNamePart{ + part := &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), StringTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -2625,7 +2625,7 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:366 { - yyVAL.node = &ast.NameName{ + yyVAL.node = &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -2710,7 +2710,7 @@ yydefault: yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), NsTkn: yyDollar[1].token, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2725,7 +2725,7 @@ yydefault: yyVAL.node = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), NsTkn: yyDollar[1].token, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, @@ -2751,7 +2751,7 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:469 { - use := yyDollar[2].node.(*ast.StmtGroupUse) + use := yyDollar[2].node.(*ast.StmtGroupUseList) use.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token) use.UseTkn = yyDollar[1].token @@ -2763,7 +2763,7 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:479 { - use := yyDollar[3].node.(*ast.StmtGroupUse) + use := yyDollar[3].node.(*ast.StmtGroupUseList) use.Position = yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token) use.UseTkn = yyDollar[1].token @@ -2776,25 +2776,25 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:490 { - yyVAL.node = &ast.StmtUse{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), - UseTkn: yyDollar[1].token, - UseDeclarations: yyDollar[2].node.(*ParserSeparatedList).Items, - SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, - SemiColonTkn: yyDollar[3].token, + yyVAL.node = &ast.StmtUseList{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), + UseTkn: yyDollar[1].token, + Uses: yyDollar[2].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[3].token, } } case 99: yyDollar = yyS[yypt-4 : yypt+1] // line internal/php7/php7.y:500 { - yyVAL.node = &ast.StmtUse{ - Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), - UseTkn: yyDollar[1].token, - Type: yyDollar[2].node, - UseDeclarations: yyDollar[3].node.(*ParserSeparatedList).Items, - SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, - SemiColonTkn: yyDollar[4].token, + yyVAL.node = &ast.StmtUseList{ + Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), + UseTkn: yyDollar[1].token, + Type: yyDollar[2].node, + Uses: yyDollar[3].node.(*ParserSeparatedList).Items, + SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, + SemiColonTkn: yyDollar[4].token, } } case 100: @@ -2837,16 +2837,16 @@ yydefault: yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[5].token) } - yyVAL.node = &ast.StmtGroupUse{ + yyVAL.node = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[6].token), - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[2].token, OpenCurlyBracketTkn: yyDollar[3].token, - UseDeclarations: yyDollar[4].node.(*ParserSeparatedList).Items, + Uses: yyDollar[4].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[6].token, } @@ -2859,17 +2859,17 @@ yydefault: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[6].token) } - yyVAL.node = &ast.StmtGroupUse{ + yyVAL.node = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[3].token, OpenCurlyBracketTkn: yyDollar[4].token, - UseDeclarations: yyDollar[5].node.(*ParserSeparatedList).Items, + Uses: yyDollar[5].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[7].token, } @@ -2882,16 +2882,16 @@ yydefault: yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[5].token) } - yyVAL.node = &ast.StmtGroupUse{ + yyVAL.node = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[6].token), - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[2].token, OpenCurlyBracketTkn: yyDollar[3].token, - UseDeclarations: yyDollar[4].node.(*ParserSeparatedList).Items, + Uses: yyDollar[4].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[4].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[6].token, } @@ -2904,17 +2904,17 @@ yydefault: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns = append(yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, yyDollar[6].token) } - yyVAL.node = &ast.StmtGroupUse{ + yyVAL.node = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), LeadingNsSeparatorTkn: yyDollar[1].token, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[2].node.(*ParserSeparatedList).Items), Parts: yyDollar[2].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[2].node.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: yyDollar[3].token, OpenCurlyBracketTkn: yyDollar[4].token, - UseDeclarations: yyDollar[5].node.(*ParserSeparatedList).Items, + Uses: yyDollar[5].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[5].node.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: yyDollar[7].token, } @@ -2992,7 +2992,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:694 { - decl := yyDollar[2].node.(*ast.StmtUseDeclaration) + decl := yyDollar[2].node.(*ast.StmtUse) decl.Type = yyDollar[1].node decl.Position = yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node) @@ -3002,9 +3002,9 @@ yydefault: yyDollar = yyS[yypt-1 : yypt+1] // line internal/php7/php7.y:705 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -3015,9 +3015,9 @@ yydefault: yyDollar = yyS[yypt-3 : yypt+1] // line internal/php7/php7.y:716 { - yyVAL.node = &ast.StmtUseDeclaration{ + yyVAL.node = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].node.(*ParserSeparatedList).Items, yyDollar[3].token), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition(yyDollar[1].node.(*ParserSeparatedList).Items), Parts: yyDollar[1].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[1].node.(*ParserSeparatedList).SeparatorTkns, @@ -3040,7 +3040,7 @@ yydefault: yyDollar = yyS[yypt-2 : yypt+1] // line internal/php7/php7.y:740 { - decl := yyDollar[2].node.(*ast.StmtUseDeclaration) + decl := yyDollar[2].node.(*ast.StmtUse) decl.NsSeparatorTkn = yyDollar[1].token decl.Position = yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node) @@ -3422,7 +3422,7 @@ yydefault: { yyVAL.node = &ast.StmtLabel{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[2].token), - LabelName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -3445,7 +3445,7 @@ yydefault: catch.OpenParenthesisTkn = yyDollar[3].token catch.Var = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[5].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[5].token), IdentifierTkn: yyDollar[5].token, Value: yyDollar[5].token.Value, @@ -3525,7 +3525,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[11].token), FunctionTkn: yyDollar[1].token, AmpersandTkn: yyDollar[2].token, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -3573,7 +3573,7 @@ yydefault: Position: yylex.(*Parser).builder.NewOptionalListTokensPosition(yyDollar[1].list, yyDollar[2].token, yyDollar[9].token), Modifiers: yyDollar[1].list, ClassTkn: yyDollar[2].token, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -3603,7 +3603,7 @@ yydefault: class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -3665,7 +3665,7 @@ yydefault: yyVAL.node = &ast.StmtTrait{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[6].token), TraitTkn: yyDollar[1].token, - TraitName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -3682,7 +3682,7 @@ yydefault: iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[7].token), InterfaceTkn: yyDollar[1].token, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -3870,7 +3870,7 @@ yydefault: yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), OpenCurlyBracketTkn: yyDollar[1].token, - CaseList: yyDollar[2].list, + Cases: yyDollar[2].list, CloseCurlyBracketTkn: yyDollar[3].token, } } @@ -3882,7 +3882,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), OpenCurlyBracketTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, - CaseList: yyDollar[3].list, + Cases: yyDollar[3].list, CloseCurlyBracketTkn: yyDollar[4].token, } } @@ -3893,7 +3893,7 @@ yydefault: yyVAL.node = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), ColonTkn: yyDollar[1].token, - CaseList: yyDollar[2].list, + Cases: yyDollar[2].list, EndSwitchTkn: yyDollar[3].token, SemiColonTkn: yyDollar[4].token, } @@ -3906,7 +3906,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[5].token), ColonTkn: yyDollar[1].token, CaseSeparatorTkn: yyDollar[2].token, - CaseList: yyDollar[3].list, + Cases: yyDollar[3].list, EndSwitchTkn: yyDollar[4].token, SemiColonTkn: yyDollar[5].token, } @@ -4140,7 +4140,7 @@ yydefault: VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -4168,7 +4168,7 @@ yydefault: VariadicTkn: yyDollar[3].token, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -4356,7 +4356,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4372,7 +4372,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4402,7 +4402,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeListTokenPosition(yyDollar[1].list, yyDollar[4].token), Modifiers: yyDollar[1].list, Type: yyDollar[2].node, - Properties: yyDollar[3].node.(*ParserSeparatedList).Items, + Props: yyDollar[3].node.(*ParserSeparatedList).Items, SeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: yyDollar[4].token, } @@ -4456,7 +4456,7 @@ yydefault: Modifiers: yyDollar[1].list, FunctionTkn: yyDollar[2].token, AmpersandTkn: yyDollar[3].token, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[4].token), IdentifierTkn: yyDollar[4].token, Value: yyDollar[4].token.Value, @@ -4805,7 +4805,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4822,7 +4822,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[3].node), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -4939,7 +4939,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[8].token), ClassTkn: yyDollar[1].token, OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + Args: yyDollar[2].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, OpenCurlyBracketTkn: yyDollar[6].token, @@ -4970,7 +4970,7 @@ yydefault: NewTkn: yyDollar[1].token, Class: yyDollar[2].node, OpenParenthesisTkn: yyDollar[3].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[3].node.(*ArgumentList).Arguments, + Args: yyDollar[3].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[3].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[3].node.(*ArgumentList).CloseParenthesisTkn, } @@ -5603,7 +5603,7 @@ yydefault: { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[5].node), - Condition: yyDollar[1].node, + Cond: yyDollar[1].node, QuestionTkn: yyDollar[2].token, IfTrue: yyDollar[3].node, ColonTkn: yyDollar[4].token, @@ -5616,7 +5616,7 @@ yydefault: { yyVAL.node = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[4].node), - Condition: yyDollar[1].node, + Cond: yyDollar[1].node, QuestionTkn: yyDollar[2].token, ColonTkn: yyDollar[3].token, IfFalse: yyDollar[4].node, @@ -5781,7 +5781,7 @@ yydefault: yyVAL.node = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), YieldTkn: yyDollar[1].token, - Value: yyDollar[2].node, + Val: yyDollar[2].node, } } case 369: @@ -5793,7 +5793,7 @@ yydefault: YieldTkn: yyDollar[1].token, Key: yyDollar[2].node, DoubleArrowTkn: yyDollar[3].token, - Value: yyDollar[4].node, + Val: yyDollar[4].node, } } case 370: @@ -5891,7 +5891,7 @@ yydefault: yyVAL.node = &ast.ExprClosure{ UseTkn: yyDollar[1].token, UseOpenParenthesisTkn: yyDollar[2].token, - Use: yyDollar[3].node.(*ParserSeparatedList).Items, + Uses: yyDollar[3].node.(*ParserSeparatedList).Items, UseSeparatorTkns: yyDollar[3].node.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: yyDollar[4].token, } @@ -5921,7 +5921,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -5938,7 +5938,7 @@ yydefault: AmpersandTkn: yyDollar[1].token, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -5954,7 +5954,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + Args: yyDollar[2].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } @@ -5969,7 +5969,7 @@ yydefault: DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -5992,7 +5992,7 @@ yydefault: DoubleColonTkn: yyDollar[2].token, Call: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6013,7 +6013,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[2].node), Function: yyDollar[1].node, OpenParenthesisTkn: yyDollar[2].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[2].node.(*ArgumentList).Arguments, + Args: yyDollar[2].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[2].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[2].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6312,7 +6312,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -6327,7 +6327,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodeTokenPosition(yyDollar[1].node, yyDollar[3].token), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -6462,7 +6462,7 @@ yydefault: ObjectOperatorTkn: yyDollar[2].token, Method: yyDollar[3].node, OpenParenthesisTkn: yyDollar[4].node.(*ArgumentList).OpenParenthesisTkn, - Arguments: yyDollar[4].node.(*ArgumentList).Arguments, + Args: yyDollar[4].node.(*ArgumentList).Arguments, SeparatorTkns: yyDollar[4].node.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: yyDollar[4].node.(*ArgumentList).CloseParenthesisTkn, } @@ -6501,12 +6501,12 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn - propertyFetch.Property = brackets.Child + propertyFetch.Prop = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn } @@ -6518,7 +6518,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -6533,7 +6533,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), DollarTkn: yyDollar[1].token, OpenCurlyBracketTkn: yyDollar[2].token, - VarName: yyDollar[3].node, + Name: yyDollar[3].node, CloseCurlyBracketTkn: yyDollar[4].token, } } @@ -6544,7 +6544,7 @@ yydefault: yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition(yyDollar[1].token, yyDollar[2].node), DollarTkn: yyDollar[1].token, - VarName: yyDollar[2].node, + Name: yyDollar[2].node, } } case 444: @@ -6555,7 +6555,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } } case 445: @@ -6566,7 +6566,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } } case 446: @@ -6607,12 +6607,12 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Var: yyDollar[1].node, ObjectOperatorTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } if brackets, ok := yyDollar[3].node.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn - propertyFetch.Property = brackets.Child + propertyFetch.Prop = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn } @@ -6626,7 +6626,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } } case 451: @@ -6637,7 +6637,7 @@ yydefault: Position: yylex.(*Parser).builder.NewNodesPosition(yyDollar[1].node, yyDollar[3].node), Class: yyDollar[1].node, DoubleColonTkn: yyDollar[2].token, - Property: yyDollar[3].node, + Prop: yyDollar[3].node, } } case 452: @@ -6866,7 +6866,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -6881,7 +6881,7 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[4].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, @@ -6900,14 +6900,14 @@ yydefault: Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, }, }, ObjectOperatorTkn: yyDollar[2].token, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[3].token), IdentifierTkn: yyDollar[3].token, Value: yyDollar[3].token.Value, @@ -6921,7 +6921,7 @@ yydefault: yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), DollarOpenCurlyBracketTkn: yyDollar[1].token, - VarName: yyDollar[2].node, + Name: yyDollar[2].node, CloseCurlyBracketTkn: yyDollar[3].token, } } @@ -6932,7 +6932,7 @@ yydefault: yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), DollarOpenCurlyBracketTkn: yyDollar[1].token, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -6947,7 +6947,7 @@ yydefault: yyVAL.node = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition(yyDollar[1].token, yyDollar[3].token), DollarOpenCurlyBracketTkn: yyDollar[1].token, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[2].token), IdentifierTkn: yyDollar[2].token, Value: yyDollar[2].token.Value, @@ -7030,7 +7030,7 @@ yydefault: { yyVAL.node = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition(yyDollar[1].token), IdentifierTkn: yyDollar[1].token, Value: yyDollar[1].token.Value, diff --git a/internal/php7/php7.y b/internal/php7/php7.y index 6a3f21d..fceb827 100644 --- a/internal/php7/php7.y +++ b/internal/php7/php7.y @@ -338,7 +338,7 @@ namespace_name: { $$ = &ParserSeparatedList{ Items: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition($1), StringTkn: $1, Value: $1.Value, @@ -348,7 +348,7 @@ namespace_name: } | namespace_name T_NS_SEPARATOR T_STRING { - part := &ast.NameNamePart{ + part := &ast.NamePart{ Position: yylex.(*Parser).builder.NewTokenPosition($3), StringTkn: $3, Value: $3.Value, @@ -364,7 +364,7 @@ namespace_name: name: namespace_name { - $$ = &ast.NameName{ + $$ = &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -432,7 +432,7 @@ top_statement: $$ = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), NsTkn: $1, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -445,7 +445,7 @@ top_statement: $$ = &ast.StmtNamespace{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), NsTkn: $1, - Name: &ast.NameName{ + Name: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, @@ -467,7 +467,7 @@ top_statement: } | T_USE mixed_group_use_declaration ';' { - use := $2.(*ast.StmtGroupUse) + use := $2.(*ast.StmtGroupUseList) use.Position = yylex.(*Parser).builder.NewTokensPosition($1, $3) use.UseTkn = $1 @@ -477,7 +477,7 @@ top_statement: } | T_USE use_type group_use_declaration ';' { - use := $3.(*ast.StmtGroupUse) + use := $3.(*ast.StmtGroupUseList) use.Position = yylex.(*Parser).builder.NewTokensPosition($1, $4) use.UseTkn = $1 @@ -488,23 +488,23 @@ top_statement: } | T_USE use_declarations ';' { - $$ = &ast.StmtUse{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), - UseTkn: $1, - UseDeclarations: $2.(*ParserSeparatedList).Items, - SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, - SemiColonTkn: $3, + $$ = &ast.StmtUseList{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), + UseTkn: $1, + Uses: $2.(*ParserSeparatedList).Items, + SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $3, } } | T_USE use_type use_declarations ';' { - $$ = &ast.StmtUse{ - Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), - UseTkn: $1, - Type: $2, - UseDeclarations: $3.(*ParserSeparatedList).Items, - SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, - SemiColonTkn: $4, + $$ = &ast.StmtUseList{ + Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), + UseTkn: $1, + Type: $2, + Uses: $3.(*ParserSeparatedList).Items, + SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, + SemiColonTkn: $4, } } | T_CONST const_list ';' @@ -545,16 +545,16 @@ group_use_declaration: $4.(*ParserSeparatedList).SeparatorTkns = append($4.(*ParserSeparatedList).SeparatorTkns, $5) } - $$ = &ast.StmtGroupUse{ + $$ = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $6), - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $2, OpenCurlyBracketTkn: $3, - UseDeclarations: $4.(*ParserSeparatedList).Items, + Uses: $4.(*ParserSeparatedList).Items, SeparatorTkns: $4.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $6, } @@ -565,17 +565,17 @@ group_use_declaration: $5.(*ParserSeparatedList).SeparatorTkns = append($5.(*ParserSeparatedList).SeparatorTkns, $6) } - $$ = &ast.StmtGroupUse{ + $$ = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $3, OpenCurlyBracketTkn: $4, - UseDeclarations: $5.(*ParserSeparatedList).Items, + Uses: $5.(*ParserSeparatedList).Items, SeparatorTkns: $5.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $7, } @@ -589,16 +589,16 @@ mixed_group_use_declaration: $4.(*ParserSeparatedList).SeparatorTkns = append($4.(*ParserSeparatedList).SeparatorTkns, $5) } - $$ = &ast.StmtGroupUse{ + $$ = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $6), - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $2, OpenCurlyBracketTkn: $3, - UseDeclarations: $4.(*ParserSeparatedList).Items, + Uses: $4.(*ParserSeparatedList).Items, SeparatorTkns: $4.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $6, } @@ -609,17 +609,17 @@ mixed_group_use_declaration: $5.(*ParserSeparatedList).SeparatorTkns = append($5.(*ParserSeparatedList).SeparatorTkns, $6) } - $$ = &ast.StmtGroupUse{ + $$ = &ast.StmtGroupUseList{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), LeadingNsSeparatorTkn: $1, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($2.(*ParserSeparatedList).Items), Parts: $2.(*ParserSeparatedList).Items, SeparatorTkns: $2.(*ParserSeparatedList).SeparatorTkns, }, NsSeparatorTkn: $3, OpenCurlyBracketTkn: $4, - UseDeclarations: $5.(*ParserSeparatedList).Items, + Uses: $5.(*ParserSeparatedList).Items, SeparatorTkns: $5.(*ParserSeparatedList).SeparatorTkns, CloseCurlyBracketTkn: $7, } @@ -692,7 +692,7 @@ inline_use_declaration: } | use_type unprefixed_use_declaration { - decl := $2.(*ast.StmtUseDeclaration) + decl := $2.(*ast.StmtUse) decl.Type = $1 decl.Position = yylex.(*Parser).builder.NewNodesPosition($1, $2) @@ -703,9 +703,9 @@ inline_use_declaration: unprefixed_use_declaration: namespace_name { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -714,9 +714,9 @@ unprefixed_use_declaration: } | namespace_name T_AS T_STRING { - $$ = &ast.StmtUseDeclaration{ + $$ = &ast.StmtUse{ Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1.(*ParserSeparatedList).Items, $3), - Use: &ast.NameName{ + Use: &ast.Name{ Position: yylex.(*Parser).builder.NewNodeListPosition($1.(*ParserSeparatedList).Items), Parts: $1.(*ParserSeparatedList).Items, SeparatorTkns: $1.(*ParserSeparatedList).SeparatorTkns, @@ -738,7 +738,7 @@ use_declaration: } | T_NS_SEPARATOR unprefixed_use_declaration { - decl := $2.(*ast.StmtUseDeclaration) + decl := $2.(*ast.StmtUse) decl.NsSeparatorTkn = $1 decl.Position = yylex.(*Parser).builder.NewTokenNodePosition($1, $2) @@ -1061,7 +1061,7 @@ statement: { $$ = &ast.StmtLabel{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $2), - LabelName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -1082,7 +1082,7 @@ catch_list: catch.OpenParenthesisTkn = $3 catch.Var = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($5), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($5), IdentifierTkn: $5, Value: $5.Value, @@ -1160,7 +1160,7 @@ function_declaration_statement: Position: yylex.(*Parser).builder.NewTokensPosition($1, $11), FunctionTkn: $1, AmpersandTkn: $2, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -1207,7 +1207,7 @@ class_declaration_statement: Position: yylex.(*Parser).builder.NewOptionalListTokensPosition($1, $2, $9), Modifiers: $1, ClassTkn: $2, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -1235,7 +1235,7 @@ class_declaration_statement: class := &ast.StmtClass{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -1296,7 +1296,7 @@ trait_declaration_statement: $$ = &ast.StmtTrait{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $6), TraitTkn: $1, - TraitName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -1314,7 +1314,7 @@ interface_declaration_statement: iface := &ast.StmtInterface{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $7), InterfaceTkn: $1, - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -1492,7 +1492,7 @@ switch_case_list: $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), OpenCurlyBracketTkn: $1, - CaseList: $2, + Cases: $2, CloseCurlyBracketTkn: $3, } } @@ -1502,7 +1502,7 @@ switch_case_list: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), OpenCurlyBracketTkn: $1, CaseSeparatorTkn: $2, - CaseList: $3, + Cases: $3, CloseCurlyBracketTkn: $4, } } @@ -1511,7 +1511,7 @@ switch_case_list: $$ = &ast.StmtSwitch{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), ColonTkn: $1, - CaseList: $2, + Cases: $2, EndSwitchTkn: $3, SemiColonTkn: $4, } @@ -1522,7 +1522,7 @@ switch_case_list: Position: yylex.(*Parser).builder.NewTokensPosition($1, $5), ColonTkn: $1, CaseSeparatorTkn: $2, - CaseList: $3, + Cases: $3, EndSwitchTkn: $4, SemiColonTkn: $5, } @@ -1746,7 +1746,7 @@ parameter: VariadicTkn: $3, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($4), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -1772,7 +1772,7 @@ parameter: VariadicTkn: $3, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($4), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -1951,7 +1951,7 @@ static_var: Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -1965,7 +1965,7 @@ static_var: Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -1995,7 +1995,7 @@ class_statement: Position: yylex.(*Parser).builder.NewNodeListTokenPosition($1, $4), Modifiers: $1, Type: $2, - Properties: $3.(*ParserSeparatedList).Items, + Props: $3.(*ParserSeparatedList).Items, SeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, SemiColonTkn: $4, } @@ -2043,7 +2043,7 @@ class_statement: Modifiers: $1, FunctionTkn: $2, AmpersandTkn: $3, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($4), IdentifierTkn: $4, Value: $4.Value, @@ -2369,7 +2369,7 @@ property: Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -2384,7 +2384,7 @@ property: Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -2501,7 +2501,7 @@ anonymous_class: Position: yylex.(*Parser).builder.NewTokensPosition($1, $8), ClassTkn: $1, OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ArgumentList).Arguments, + Args: $2.(*ArgumentList).Arguments, SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, OpenCurlyBracketTkn: $6, @@ -2533,7 +2533,7 @@ new_expr: NewTkn: $1, Class: $2, OpenParenthesisTkn: $3.(*ArgumentList).OpenParenthesisTkn, - Arguments: $3.(*ArgumentList).Arguments, + Args: $3.(*ArgumentList).Arguments, SeparatorTkns: $3.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $3.(*ArgumentList).CloseParenthesisTkn, } @@ -3055,7 +3055,7 @@ expr_without_variable: { $$ = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $5), - Condition: $1, + Cond: $1, QuestionTkn: $2, IfTrue: $3, ColonTkn: $4, @@ -3066,7 +3066,7 @@ expr_without_variable: { $$ = &ast.ExprTernary{ Position: yylex.(*Parser).builder.NewNodesPosition($1, $4), - Condition: $1, + Cond: $1, QuestionTkn: $2, ColonTkn: $3, IfFalse: $4, @@ -3199,7 +3199,7 @@ expr_without_variable: $$ = &ast.ExprYield{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), YieldTkn: $1, - Value: $2, + Val: $2, } } | T_YIELD expr T_DOUBLE_ARROW expr @@ -3209,7 +3209,7 @@ expr_without_variable: YieldTkn: $1, Key: $2, DoubleArrowTkn: $3, - Value: $4, + Val: $4, } } | T_YIELD_FROM expr @@ -3302,7 +3302,7 @@ lexical_vars: $$ = &ast.ExprClosure{ UseTkn: $1, UseOpenParenthesisTkn: $2, - Use: $3.(*ParserSeparatedList).Items, + Uses: $3.(*ParserSeparatedList).Items, UseSeparatorTkns: $3.(*ParserSeparatedList).SeparatorTkns, UseCloseParenthesisTkn: $4, } @@ -3332,7 +3332,7 @@ lexical_var: Position: yylex.(*Parser).builder.NewTokenPosition($1), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -3347,7 +3347,7 @@ lexical_var: AmpersandTkn: $1, Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($2), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -3364,7 +3364,7 @@ function_call: Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ArgumentList).Arguments, + Args: $2.(*ArgumentList).Arguments, SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } @@ -3377,7 +3377,7 @@ function_call: DoubleColonTkn: $2, Call: $3, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3398,7 +3398,7 @@ function_call: DoubleColonTkn: $2, Call: $3, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3417,7 +3417,7 @@ function_call: Position: yylex.(*Parser).builder.NewNodesPosition($1, $2), Function: $1, OpenParenthesisTkn: $2.(*ArgumentList).OpenParenthesisTkn, - Arguments: $2.(*ArgumentList).Arguments, + Args: $2.(*ArgumentList).Arguments, SeparatorTkns: $2.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $2.(*ArgumentList).CloseParenthesisTkn, } @@ -3676,7 +3676,7 @@ constant: Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -3689,7 +3689,7 @@ constant: Position: yylex.(*Parser).builder.NewNodeTokenPosition($1, $3), Class: $1, DoubleColonTkn: $2, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -3810,7 +3810,7 @@ callable_variable: ObjectOperatorTkn: $2, Method: $3, OpenParenthesisTkn: $4.(*ArgumentList).OpenParenthesisTkn, - Arguments: $4.(*ArgumentList).Arguments, + Args: $4.(*ArgumentList).Arguments, SeparatorTkns: $4.(*ArgumentList).SeparatorTkns, CloseParenthesisTkn: $4.(*ArgumentList).CloseParenthesisTkn, } @@ -3844,12 +3844,12 @@ variable: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, - Property: $3, + Prop: $3, } if brackets, ok := $3.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn - propertyFetch.Property = brackets.Child + propertyFetch.Prop = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn } @@ -3862,7 +3862,7 @@ simple_variable: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -3875,7 +3875,7 @@ simple_variable: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), DollarTkn: $1, OpenCurlyBracketTkn: $2, - VarName: $3, + Name: $3, CloseCurlyBracketTkn: $4, } } @@ -3884,7 +3884,7 @@ simple_variable: $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenNodePosition($1, $2), DollarTkn: $1, - VarName: $2, + Name: $2, } } ; @@ -3896,7 +3896,7 @@ static_member: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, - Property: $3, + Prop: $3, } } | variable_class_name T_PAAMAYIM_NEKUDOTAYIM simple_variable @@ -3905,7 +3905,7 @@ static_member: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, - Property: $3, + Prop: $3, } } ; @@ -3941,12 +3941,12 @@ new_variable: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Var: $1, ObjectOperatorTkn: $2, - Property: $3, + Prop: $3, } if brackets, ok := $3.(*ParserBrackets); ok { propertyFetch.OpenCurlyBracketTkn = brackets.OpenBracketTkn - propertyFetch.Property = brackets.Child + propertyFetch.Prop = brackets.Child propertyFetch.CloseCurlyBracketTkn = brackets.CloseBracketTkn } @@ -3958,7 +3958,7 @@ new_variable: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, - Property: $3, + Prop: $3, } } | new_variable T_PAAMAYIM_NEKUDOTAYIM simple_variable @@ -3967,7 +3967,7 @@ new_variable: Position: yylex.(*Parser).builder.NewNodesPosition($1, $3), Class: $1, DoubleColonTkn: $2, - Property: $3, + Prop: $3, } } ; @@ -4174,7 +4174,7 @@ encaps_var: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -4187,7 +4187,7 @@ encaps_var: Position: yylex.(*Parser).builder.NewTokensPosition($1, $4), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, @@ -4204,14 +4204,14 @@ encaps_var: Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), Var: &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, }, }, ObjectOperatorTkn: $2, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($3), IdentifierTkn: $3, Value: $3.Value, @@ -4223,7 +4223,7 @@ encaps_var: $$ = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), DollarOpenCurlyBracketTkn: $1, - VarName: $2, + Name: $2, CloseCurlyBracketTkn: $3, } } @@ -4232,7 +4232,7 @@ encaps_var: $$ = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), DollarOpenCurlyBracketTkn: $1, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -4245,7 +4245,7 @@ encaps_var: $$ = &ast.ScalarEncapsedStringVar{ Position: yylex.(*Parser).builder.NewTokensPosition($1, $3), DollarOpenCurlyBracketTkn: $1, - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($2), IdentifierTkn: $2, Value: $2.Value, @@ -4321,7 +4321,7 @@ encaps_var_offset: { $$ = &ast.ExprVariable{ Position: yylex.(*Parser).builder.NewTokenPosition($1), - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Position: yylex.(*Parser).builder.NewTokenPosition($1), IdentifierTkn: $1, Value: $1.Value, diff --git a/pkg/ast/ast.go b/pkg/ast/ast.go index 261001f..7199459 100644 --- a/pkg/ast/ast.go +++ b/pkg/ast/ast.go @@ -57,9 +57,9 @@ type Visitor interface { StmtTraitUsePrecedence(n *StmtTraitUsePrecedence) StmtTry(n *StmtTry) StmtUnset(n *StmtUnset) - StmtUse(n *StmtUse) - StmtGroupUse(n *StmtGroupUse) - StmtUseDeclaration(n *StmtUseDeclaration) + StmtUse(n *StmtUseList) + StmtGroupUse(n *StmtGroupUseList) + StmtUseDeclaration(n *StmtUse) StmtWhile(n *StmtWhile) ExprArray(n *ExprArray) @@ -166,8 +166,8 @@ type Visitor interface { ScalarMagicConstant(n *ScalarMagicConstant) ScalarString(n *ScalarString) - NameName(n *NameName) + NameName(n *Name) NameFullyQualified(n *NameFullyQualified) NameRelative(n *NameRelative) - NameNamePart(n *NameNamePart) + NameNamePart(n *NamePart) } diff --git a/pkg/ast/node.go b/pkg/ast/node.go index 40e1093..9a9dea7 100644 --- a/pkg/ast/node.go +++ b/pkg/ast/node.go @@ -135,7 +135,7 @@ func (n *ScalarEncapsedStringPart) GetPosition() *position.Position { type ScalarEncapsedStringVar struct { Position *position.Position DollarOpenCurlyBracketTkn *token.Token - VarName Vertex + Name Vertex OpenSquareBracketTkn *token.Token Dim Vertex CloseSquareBracketTkn *token.Token @@ -288,9 +288,9 @@ type StmtClass struct { Position *position.Position Modifiers []Vertex ClassTkn *token.Token - ClassName Vertex + Name Vertex OpenParenthesisTkn *token.Token - Arguments []Vertex + Args []Vertex SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token ExtendsTkn *token.Token @@ -335,7 +335,7 @@ type StmtClassMethod struct { Modifiers []Vertex FunctionTkn *token.Token AmpersandTkn *token.Token - MethodName Vertex + Name Vertex OpenParenthesisTkn *token.Token Params []Vertex SeparatorTkns []*token.Token @@ -603,7 +603,7 @@ type StmtFunction struct { Position *position.Position FunctionTkn *token.Token AmpersandTkn *token.Token - FunctionName Vertex + Name Vertex OpenParenthesisTkn *token.Token Params []Vertex SeparatorTkns []*token.Token @@ -715,7 +715,7 @@ func (n *StmtInlineHtml) GetPosition() *position.Position { type StmtInterface struct { Position *position.Position InterfaceTkn *token.Token - InterfaceName Vertex + Name Vertex ExtendsTkn *token.Token Extends []Vertex ExtendsSeparatorTkns []*token.Token @@ -734,9 +734,9 @@ func (n *StmtInterface) GetPosition() *position.Position { // StmtLabel node type StmtLabel struct { - Position *position.Position - LabelName Vertex - ColonTkn *token.Token + Position *position.Position + Name Vertex + ColonTkn *token.Token } func (n *StmtLabel) Accept(v Visitor) { @@ -801,7 +801,7 @@ type StmtPropertyList struct { Position *position.Position Modifiers []Vertex Type Vertex - Properties []Vertex + Props []Vertex SeparatorTkns []*token.Token SemiColonTkn *token.Token } @@ -889,7 +889,7 @@ type StmtSwitch struct { ColonTkn *token.Token OpenCurlyBracketTkn *token.Token CaseSeparatorTkn *token.Token - CaseList []Vertex + Cases []Vertex CloseCurlyBracketTkn *token.Token EndSwitchTkn *token.Token SemiColonTkn *token.Token @@ -923,7 +923,7 @@ func (n *StmtThrow) GetPosition() *position.Position { type StmtTrait struct { Position *position.Position TraitTkn *token.Token - TraitName Vertex + Name Vertex OpenCurlyBracketTkn *token.Token Stmts []Vertex CloseCurlyBracketTkn *token.Token @@ -1035,26 +1035,26 @@ func (n *StmtUnset) GetPosition() *position.Position { return n.Position } -// StmtUse node -type StmtUse struct { - Position *position.Position - UseTkn *token.Token - Type Vertex - UseDeclarations []Vertex - SeparatorTkns []*token.Token - SemiColonTkn *token.Token +// StmtUseList node +type StmtUseList struct { + Position *position.Position + UseTkn *token.Token + Type Vertex + Uses []Vertex + SeparatorTkns []*token.Token + SemiColonTkn *token.Token } -func (n *StmtUse) Accept(v Visitor) { +func (n *StmtUseList) Accept(v Visitor) { v.StmtUse(n) } -func (n *StmtUse) GetPosition() *position.Position { +func (n *StmtUseList) GetPosition() *position.Position { return n.Position } -// StmtGroupUse node -type StmtGroupUse struct { +// StmtGroupUseList node +type StmtGroupUseList struct { Position *position.Position UseTkn *token.Token Type Vertex @@ -1062,22 +1062,22 @@ type StmtGroupUse struct { Prefix Vertex NsSeparatorTkn *token.Token OpenCurlyBracketTkn *token.Token - UseDeclarations []Vertex + Uses []Vertex SeparatorTkns []*token.Token CloseCurlyBracketTkn *token.Token SemiColonTkn *token.Token } -func (n *StmtGroupUse) Accept(v Visitor) { +func (n *StmtGroupUseList) Accept(v Visitor) { v.StmtGroupUse(n) } -func (n *StmtGroupUse) GetPosition() *position.Position { +func (n *StmtGroupUseList) GetPosition() *position.Position { return n.Position } -// StmtUseDeclaration node -type StmtUseDeclaration struct { +// StmtUse node +type StmtUse struct { Position *position.Position Type Vertex NsSeparatorTkn *token.Token @@ -1086,11 +1086,11 @@ type StmtUseDeclaration struct { Alias Vertex } -func (n *StmtUseDeclaration) Accept(v Visitor) { +func (n *StmtUse) Accept(v Visitor) { v.StmtUseDeclaration(n) } -func (n *StmtUseDeclaration) GetPosition() *position.Position { +func (n *StmtUse) GetPosition() *position.Position { return n.Position } @@ -1242,7 +1242,7 @@ type ExprClassConstFetch struct { Position *position.Position Class Vertex DoubleColonTkn *token.Token - ConstantName Vertex + Const Vertex } func (n *ExprClassConstFetch) Accept(v Visitor) { @@ -1280,7 +1280,7 @@ type ExprClosure struct { CloseParenthesisTkn *token.Token UseTkn *token.Token UseOpenParenthesisTkn *token.Token - Use []Vertex + Uses []Vertex UseSeparatorTkns []*token.Token UseCloseParenthesisTkn *token.Token ColonTkn *token.Token @@ -1398,7 +1398,7 @@ type ExprFunctionCall struct { Position *position.Position Function Vertex OpenParenthesisTkn *token.Token - Arguments []Vertex + Args []Vertex SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } @@ -1502,7 +1502,7 @@ type ExprMethodCall struct { Method Vertex CloseCurlyBracketTkn *token.Token OpenParenthesisTkn *token.Token - Arguments []Vertex + Args []Vertex SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } @@ -1521,7 +1521,7 @@ type ExprNew struct { NewTkn *token.Token Class Vertex OpenParenthesisTkn *token.Token - Arguments []Vertex + Args []Vertex SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } @@ -1615,7 +1615,7 @@ type ExprPropertyFetch struct { Var Vertex ObjectOperatorTkn *token.Token OpenCurlyBracketTkn *token.Token - Property Vertex + Prop Vertex CloseCurlyBracketTkn *token.Token } @@ -1682,7 +1682,7 @@ type ExprStaticCall struct { Call Vertex CloseCurlyBracketTkn *token.Token OpenParenthesisTkn *token.Token - Arguments []Vertex + Args []Vertex SeparatorTkns []*token.Token CloseParenthesisTkn *token.Token } @@ -1700,7 +1700,7 @@ type ExprStaticPropertyFetch struct { Position *position.Position Class Vertex DoubleColonTkn *token.Token - Property Vertex + Prop Vertex } func (n *ExprStaticPropertyFetch) Accept(v Visitor) { @@ -1714,7 +1714,7 @@ func (n *ExprStaticPropertyFetch) GetPosition() *position.Position { // ExprTernary node type ExprTernary struct { Position *position.Position - Condition Vertex + Cond Vertex QuestionTkn *token.Token IfTrue Vertex ColonTkn *token.Token @@ -1764,7 +1764,7 @@ type ExprVariable struct { Position *position.Position DollarTkn *token.Token OpenCurlyBracketTkn *token.Token - VarName Vertex + Name Vertex CloseCurlyBracketTkn *token.Token } @@ -1782,7 +1782,7 @@ type ExprYield struct { YieldTkn *token.Token Key Vertex DoubleArrowTkn *token.Token - Value Vertex + Val Vertex } func (n *ExprYield) Accept(v Visitor) { @@ -2586,17 +2586,17 @@ func (n *ExprBinarySpaceship) GetPosition() *position.Position { return n.Position } -type NameName struct { +type Name struct { Position *position.Position Parts []Vertex SeparatorTkns []*token.Token } -func (n *NameName) Accept(v Visitor) { +func (n *Name) Accept(v Visitor) { v.NameName(n) } -func (n *NameName) GetPosition() *position.Position { +func (n *Name) GetPosition() *position.Position { return n.Position } @@ -2631,16 +2631,16 @@ func (n *NameRelative) GetPosition() *position.Position { return n.Position } -type NameNamePart struct { +type NamePart struct { Position *position.Position StringTkn *token.Token Value []byte } -func (n *NameNamePart) Accept(v Visitor) { +func (n *NamePart) Accept(v Visitor) { v.NameNamePart(n) } -func (n *NameNamePart) GetPosition() *position.Position { +func (n *NamePart) GetPosition() *position.Position { return n.Position } diff --git a/pkg/visitor/dumper/dumper.go b/pkg/visitor/dumper/dumper.go index 2aa6d0e..e38ebeb 100644 --- a/pkg/visitor/dumper/dumper.go +++ b/pkg/visitor/dumper/dumper.go @@ -99,7 +99,7 @@ func (v *Dumper) dumpToken(key string, tok *token.Token) { v.print(v.indent, "ID: token."+tok.ID.String()+",\n") } if tok.Value != nil { - v.print(v.indent, "Value: []byte("+strconv.Quote(string(tok.Value))+"),\n") + v.print(v.indent, "Val: []byte("+strconv.Quote(string(tok.Value))+"),\n") } v.dumpPosition(tok.Position) v.dumpTokenList("FreeFloating", tok.FreeFloating) @@ -209,7 +209,7 @@ func (v *Dumper) Identifier(n *ast.Identifier) { v.dumpPosition(n.Position) v.dumpToken("IdentifierTkn", n.IdentifierTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") @@ -281,9 +281,9 @@ func (v *Dumper) StmtClass(n *ast.StmtClass) { v.dumpPosition(n.Position) v.dumpVertexList("Modifiers", n.Modifiers) v.dumpToken("ClassTkn", n.ClassTkn) - v.dumpVertex("ClassName", n.ClassName) + v.dumpVertex("Name", n.Name) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) - v.dumpVertexList("Arguments", n.Arguments) + v.dumpVertexList("Args", n.Args) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) v.dumpToken("ExtendsTkn", n.ExtendsTkn) @@ -322,7 +322,7 @@ func (v *Dumper) StmtClassMethod(n *ast.StmtClassMethod) { v.dumpVertexList("Modifiers", n.Modifiers) v.dumpToken("FunctionTkn", n.FunctionTkn) v.dumpToken("AmpersandTkn", n.AmpersandTkn) - v.dumpVertex("MethodName", n.MethodName) + v.dumpVertex("Name", n.Name) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) v.dumpVertexList("Params", n.Params) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) @@ -549,7 +549,7 @@ func (v *Dumper) StmtFunction(n *ast.StmtFunction) { v.dumpPosition(n.Position) v.dumpToken("FunctionTkn", n.FunctionTkn) v.dumpToken("AmpersandTkn", n.AmpersandTkn) - v.dumpVertex("FunctionName", n.FunctionName) + v.dumpVertex("Name", n.Name) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) v.dumpVertexList("Params", n.Params) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) @@ -631,7 +631,7 @@ func (v *Dumper) StmtInlineHtml(n *ast.StmtInlineHtml) { v.dumpPosition(n.Position) v.dumpToken("InlineHtmlTkn", n.InlineHtmlTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") @@ -643,7 +643,7 @@ func (v *Dumper) StmtInterface(n *ast.StmtInterface) { v.dumpPosition(n.Position) v.dumpToken("InterfaceTkn", n.InterfaceTkn) - v.dumpVertex("InterfaceName", n.InterfaceName) + v.dumpVertex("Name", n.Name) v.dumpToken("ExtendsTkn", n.ExtendsTkn) v.dumpVertexList("Extends", n.Extends) v.dumpTokenList("ExtendsSeparatorTkns", n.ExtendsSeparatorTkns) @@ -660,7 +660,7 @@ func (v *Dumper) StmtLabel(n *ast.StmtLabel) { v.indent++ v.dumpPosition(n.Position) - v.dumpVertex("LabelName", n.LabelName) + v.dumpVertex("Name", n.Name) v.dumpToken("ColonTkn", n.ColonTkn) v.indent-- @@ -714,7 +714,7 @@ func (v *Dumper) StmtPropertyList(n *ast.StmtPropertyList) { v.dumpPosition(n.Position) v.dumpVertexList("Modifiers", n.Modifiers) v.dumpVertex("Type", n.Type) - v.dumpVertexList("Properties", n.Properties) + v.dumpVertexList("Props", n.Props) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("SemiColonTkn", n.SemiColonTkn) @@ -787,7 +787,7 @@ func (v *Dumper) StmtSwitch(n *ast.StmtSwitch) { v.dumpToken("ColonTkn", n.ColonTkn) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpToken("CaseSeparatorTkn", n.CaseSeparatorTkn) - v.dumpVertexList("CaseList", n.CaseList) + v.dumpVertexList("Cases", n.Cases) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpToken("EndSwitchTkn", n.EndSwitchTkn) v.dumpToken("SemiColonTkn", n.SemiColonTkn) @@ -815,7 +815,7 @@ func (v *Dumper) StmtTrait(n *ast.StmtTrait) { v.dumpPosition(n.Position) v.dumpToken("TraitTkn", n.TraitTkn) - v.dumpVertex("TraitName", n.TraitName) + v.dumpVertex("Name", n.Name) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) v.dumpVertexList("Stmts", n.Stmts) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) @@ -907,14 +907,14 @@ func (v *Dumper) StmtUnset(n *ast.StmtUnset) { v.print(v.indent, "},\n") } -func (v *Dumper) StmtUse(n *ast.StmtUse) { - v.print(0, "&ast.StmtUse{\n") +func (v *Dumper) StmtUse(n *ast.StmtUseList) { + v.print(0, "&ast.StmtUseList{\n") v.indent++ v.dumpPosition(n.Position) v.dumpToken("UseTkn", n.UseTkn) v.dumpVertex("Type", n.Type) - v.dumpVertexList("UseDeclarations", n.UseDeclarations) + v.dumpVertexList("Uses", n.Uses) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("SemiColonTkn", n.SemiColonTkn) @@ -922,8 +922,8 @@ func (v *Dumper) StmtUse(n *ast.StmtUse) { v.print(v.indent, "},\n") } -func (v *Dumper) StmtGroupUse(n *ast.StmtGroupUse) { - v.print(0, "&ast.StmtGroupUse{\n") +func (v *Dumper) StmtGroupUse(n *ast.StmtGroupUseList) { + v.print(0, "&ast.StmtGroupUseList{\n") v.indent++ v.dumpPosition(n.Position) @@ -933,7 +933,7 @@ func (v *Dumper) StmtGroupUse(n *ast.StmtGroupUse) { v.dumpVertex("Prefix", n.Prefix) v.dumpToken("NsSeparatorTkn", n.NsSeparatorTkn) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) - v.dumpVertexList("UseDeclarations", n.UseDeclarations) + v.dumpVertexList("Uses", n.Uses) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpToken("SemiColonTkn", n.SemiColonTkn) @@ -942,14 +942,14 @@ func (v *Dumper) StmtGroupUse(n *ast.StmtGroupUse) { v.print(v.indent, "},\n") } -func (v *Dumper) StmtUseDeclaration(n *ast.StmtUseDeclaration) { - v.print(0, "&ast.StmtUseDeclaration{\n") +func (v *Dumper) StmtUseDeclaration(n *ast.StmtUse) { + v.print(0, "&ast.StmtUse{\n") v.indent++ v.dumpPosition(n.Position) v.dumpVertex("Type", n.Type) v.dumpToken("NsSeparatorTkn", n.NsSeparatorTkn) - v.dumpVertex("Use", n.Use) + v.dumpVertex("Uses", n.Use) v.dumpToken("AsTkn", n.AsTkn) v.dumpVertex("Alias", n.Alias) @@ -1084,7 +1084,7 @@ func (v *Dumper) ExprClassConstFetch(n *ast.ExprClassConstFetch) { v.dumpPosition(n.Position) v.dumpVertex("Class", n.Class) v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) - v.dumpVertex("ConstantName", n.ConstantName) + v.dumpVertex("Const", n.Const) v.indent-- v.print(v.indent, "},\n") @@ -1116,7 +1116,7 @@ func (v *Dumper) ExprClosure(n *ast.ExprClosure) { v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) v.dumpToken("UseTkn", n.UseTkn) v.dumpToken("UseOpenParenthesisTkn", n.UseOpenParenthesisTkn) - v.dumpVertexList("Use", n.Use) + v.dumpVertexList("Uses", n.Uses) v.dumpTokenList("UseSeparatorTkns", n.UseSeparatorTkns) v.dumpToken("UseCloseParenthesisTkn", n.UseCloseParenthesisTkn) v.dumpToken("ColonTkn", n.ColonTkn) @@ -1213,7 +1213,7 @@ func (v *Dumper) ExprFunctionCall(n *ast.ExprFunctionCall) { v.dumpPosition(n.Position) v.dumpVertex("Function", n.Function) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) - v.dumpVertexList("Arguments", n.Arguments) + v.dumpVertexList("Args", n.Args) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) @@ -1299,7 +1299,7 @@ func (v *Dumper) ExprMethodCall(n *ast.ExprMethodCall) { v.dumpVertex("Method", n.Method) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) - v.dumpVertexList("Arguments", n.Arguments) + v.dumpVertexList("Args", n.Args) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) @@ -1315,7 +1315,7 @@ func (v *Dumper) ExprNew(n *ast.ExprNew) { v.dumpToken("NewTkn", n.NewTkn) v.dumpVertex("Class", n.Class) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) - v.dumpVertexList("Arguments", n.Arguments) + v.dumpVertexList("Args", n.Args) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) @@ -1391,7 +1391,7 @@ func (v *Dumper) ExprPropertyFetch(n *ast.ExprPropertyFetch) { v.dumpVertex("Var", n.Var) v.dumpToken("ObjectOperatorTkn", n.ObjectOperatorTkn) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) - v.dumpVertex("Property", n.Property) + v.dumpVertex("Prop", n.Prop) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.indent-- @@ -1446,7 +1446,7 @@ func (v *Dumper) ExprStaticCall(n *ast.ExprStaticCall) { v.dumpVertex("Call", n.Call) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.dumpToken("OpenParenthesisTkn", n.OpenParenthesisTkn) - v.dumpVertexList("Arguments", n.Arguments) + v.dumpVertexList("Args", n.Args) v.dumpTokenList("SeparatorTkns", n.SeparatorTkns) v.dumpToken("CloseParenthesisTkn", n.CloseParenthesisTkn) @@ -1461,7 +1461,7 @@ func (v *Dumper) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { v.dumpPosition(n.Position) v.dumpVertex("Class", n.Class) v.dumpToken("DoubleColonTkn", n.DoubleColonTkn) - v.dumpVertex("Property", n.Property) + v.dumpVertex("Prop", n.Prop) v.indent-- v.print(v.indent, "},\n") @@ -1472,7 +1472,7 @@ func (v *Dumper) ExprTernary(n *ast.ExprTernary) { v.indent++ v.dumpPosition(n.Position) - v.dumpVertex("Condition", n.Condition) + v.dumpVertex("Cond", n.Cond) v.dumpToken("QuestionTkn", n.QuestionTkn) v.dumpVertex("IfTrue", n.IfTrue) v.dumpToken("ColonTkn", n.ColonTkn) @@ -1513,7 +1513,7 @@ func (v *Dumper) ExprVariable(n *ast.ExprVariable) { v.dumpPosition(n.Position) v.dumpToken("DollarTkn", n.DollarTkn) v.dumpToken("OpenCurlyBracketTkn", n.OpenCurlyBracketTkn) - v.dumpVertex("VarName", n.VarName) + v.dumpVertex("Name", n.Name) v.dumpToken("CloseCurlyBracketTkn", n.CloseCurlyBracketTkn) v.indent-- @@ -1528,7 +1528,7 @@ func (v *Dumper) ExprYield(n *ast.ExprYield) { v.dumpToken("YieldTkn", n.YieldTkn) v.dumpVertex("Key", n.Key) v.dumpToken("DoubleArrowTkn", n.DoubleArrowTkn) - v.dumpVertex("Value", n.Value) + v.dumpVertex("Val", n.Val) v.indent-- v.print(v.indent, "},\n") @@ -2183,7 +2183,7 @@ func (v *Dumper) ScalarDnumber(n *ast.ScalarDnumber) { v.dumpPosition(n.Position) v.dumpToken("NumberTkn", n.NumberTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") @@ -2208,7 +2208,7 @@ func (v *Dumper) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { v.dumpPosition(n.Position) v.dumpToken("EncapsedStrTkn", n.EncapsedStrTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") @@ -2220,7 +2220,7 @@ func (v *Dumper) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { v.dumpPosition(n.Position) v.dumpToken("DollarOpenCurlyBracketTkn", n.DollarOpenCurlyBracketTkn) - v.dumpVertex("VarName", n.VarName) + v.dumpVertex("Name", n.Name) v.dumpToken("OpenSquareBracketTkn", n.OpenSquareBracketTkn) v.dumpVertex("Dim", n.Dim) v.dumpToken("CloseSquareBracketTkn", n.CloseSquareBracketTkn) @@ -2262,7 +2262,7 @@ func (v *Dumper) ScalarLnumber(n *ast.ScalarLnumber) { v.dumpPosition(n.Position) v.dumpToken("NumberTkn", n.NumberTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") @@ -2274,7 +2274,7 @@ func (v *Dumper) ScalarMagicConstant(n *ast.ScalarMagicConstant) { v.dumpPosition(n.Position) v.dumpToken("MagicConstTkn", n.MagicConstTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") @@ -2287,14 +2287,14 @@ func (v *Dumper) ScalarString(n *ast.ScalarString) { v.dumpPosition(n.Position) v.dumpToken("MinusTkn", n.MinusTkn) v.dumpToken("StringTkn", n.StringTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") } -func (v *Dumper) NameName(n *ast.NameName) { - v.print(0, "&ast.NameName{\n") +func (v *Dumper) NameName(n *ast.Name) { + v.print(0, "&ast.Name{\n") v.indent++ v.dumpPosition(n.Position) @@ -2332,13 +2332,13 @@ func (v *Dumper) NameRelative(n *ast.NameRelative) { v.print(v.indent, "},\n") } -func (v *Dumper) NameNamePart(n *ast.NameNamePart) { - v.print(0, "&ast.NameNamePart{\n") +func (v *Dumper) NameNamePart(n *ast.NamePart) { + v.print(0, "&ast.NamePart{\n") v.indent++ v.dumpPosition(n.Position) v.dumpToken("StringTkn", n.StringTkn) - v.dumpValue("Value", n.Value) + v.dumpValue("Val", n.Value) v.indent-- v.print(v.indent, "},\n") diff --git a/pkg/visitor/dumper/dumper_test.go b/pkg/visitor/dumper/dumper_test.go index 8c94ac2..2a9ec04 100644 --- a/pkg/visitor/dumper/dumper_test.go +++ b/pkg/visitor/dumper/dumper_test.go @@ -56,7 +56,7 @@ func TestDumper_root(t *testing.T) { FreeFloating: []*token.Token{ { ID: token.T_WHITESPACE, - Value: []byte(" "), + Val: []byte(" "), Position: &position.Position{ StartLine: 1, EndLine: 2, diff --git a/pkg/visitor/formatter/formatter.go b/pkg/visitor/formatter/formatter.go index e6cb6f6..4f9ce9c 100644 --- a/pkg/visitor/formatter/formatter.go +++ b/pkg/visitor/formatter/formatter.go @@ -267,14 +267,14 @@ func (f *formatter) StmtClass(n *ast.StmtClass) { n.ClassTkn = f.newToken(token.T_CLASS, []byte("class")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - n.ClassName.Accept(f) + n.Name.Accept(f) n.OpenParenthesisTkn = nil n.CloseParenthesisTkn = nil - if len(n.Arguments) > 0 { + if len(n.Args) > 0 { n.OpenParenthesisTkn = f.newToken('(', []byte("(")) - n.SeparatorTkns = f.formatList(n.Arguments, ',') + n.SeparatorTkns = f.formatList(n.Args, ',') n.CloseParenthesisTkn = f.newToken(')', []byte(")")) } @@ -333,7 +333,7 @@ func (f *formatter) StmtClassMethod(n *ast.StmtClassMethod) { n.AmpersandTkn = f.newToken('&', []byte("&")) } - n.MethodName.Accept(f) + n.Name.Accept(f) n.OpenParenthesisTkn = f.newToken('(', []byte("(")) @@ -564,7 +564,7 @@ func (f *formatter) StmtFunction(n *ast.StmtFunction) { n.AmpersandTkn = f.newToken('&', []byte("&")) } - n.FunctionName.Accept(f) + n.Name.Accept(f) n.OpenParenthesisTkn = f.newToken('(', []byte("(")) @@ -661,7 +661,7 @@ func (f *formatter) StmtInterface(n *ast.StmtInterface) { n.InterfaceTkn = f.newToken(token.T_INTERFACE, []byte("interface")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - n.InterfaceName.Accept(f) + n.Name.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) if n.Extends != nil { @@ -685,7 +685,7 @@ func (f *formatter) StmtInterface(n *ast.StmtInterface) { } func (f *formatter) StmtLabel(n *ast.StmtLabel) { - n.LabelName.Accept(f) + n.Name.Accept(f) n.ColonTkn = f.newToken(':', []byte(":")) } @@ -746,7 +746,7 @@ func (f *formatter) StmtPropertyList(n *ast.StmtPropertyList) { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) } - n.SeparatorTkns = f.formatList(n.Properties, ',') + n.SeparatorTkns = f.formatList(n.Props, ',') n.SemiColonTkn = f.newSemicolonTkn() } @@ -816,9 +816,9 @@ func (f *formatter) StmtSwitch(n *ast.StmtSwitch) { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) - if len(n.CaseList) > 0 { + if len(n.Cases) > 0 { f.indent++ - f.formatStmts(&n.CaseList) + f.formatStmts(&n.Cases) f.indent-- f.addFreeFloating(token.T_WHITESPACE, []byte("\n")) @@ -841,7 +841,7 @@ func (f *formatter) StmtTrait(n *ast.StmtTrait) { n.TraitTkn = f.newToken(token.T_TRAIT, []byte("trait")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) - n.TraitName.Accept(f) + n.Name.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) @@ -964,7 +964,7 @@ func (f *formatter) StmtUnset(n *ast.StmtUnset) { n.SemiColonTkn = f.newSemicolonTkn() } -func (f *formatter) StmtUse(n *ast.StmtUse) { +func (f *formatter) StmtUse(n *ast.StmtUseList) { n.UseTkn = f.newToken(token.T_USE, []byte("use")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) @@ -973,12 +973,12 @@ func (f *formatter) StmtUse(n *ast.StmtUse) { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) } - n.SeparatorTkns = f.formatList(n.UseDeclarations, ',') + n.SeparatorTkns = f.formatList(n.Uses, ',') n.SemiColonTkn = f.newSemicolonTkn() } -func (f *formatter) StmtGroupUse(n *ast.StmtGroupUse) { +func (f *formatter) StmtGroupUse(n *ast.StmtGroupUseList) { n.UseTkn = f.newToken(token.T_USE, []byte("use")) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) @@ -993,13 +993,13 @@ func (f *formatter) StmtGroupUse(n *ast.StmtGroupUse) { n.NsSeparatorTkn = f.newToken(token.T_NS_SEPARATOR, []byte("\\")) n.OpenCurlyBracketTkn = f.newToken('{', []byte("{")) - n.SeparatorTkns = f.formatList(n.UseDeclarations, ',') + n.SeparatorTkns = f.formatList(n.Uses, ',') n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) n.SemiColonTkn = f.newSemicolonTkn() } -func (f *formatter) StmtUseDeclaration(n *ast.StmtUseDeclaration) { +func (f *formatter) StmtUseDeclaration(n *ast.StmtUse) { if n.Type != nil { n.Type.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) @@ -1113,7 +1113,7 @@ func (f *formatter) ExprBrackets(n *ast.ExprBrackets) { func (f *formatter) ExprClassConstFetch(n *ast.ExprClassConstFetch) { n.Class.Accept(f) n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) - n.ConstantName.Accept(f) + n.Const.Accept(f) } func (f *formatter) ExprClone(n *ast.ExprClone) { @@ -1145,11 +1145,11 @@ func (f *formatter) ExprClosure(n *ast.ExprClosure) { n.UseOpenParenthesisTkn = nil n.UseCloseParenthesisTkn = nil n.UseSeparatorTkns = nil - if len(n.Use) > 0 { + if len(n.Uses) > 0 { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) n.UseTkn = f.newToken(token.T_USE, []byte("use")) n.OpenParenthesisTkn = f.newToken('(', []byte("(")) - n.SeparatorTkns = f.formatList(n.Use, ',') + n.SeparatorTkns = f.formatList(n.Uses, ',') n.CloseParenthesisTkn = f.newToken(')', []byte(")")) } @@ -1221,8 +1221,8 @@ func (f *formatter) ExprFunctionCall(n *ast.ExprFunctionCall) { n.Function.Accept(f) n.OpenParenthesisTkn = f.newToken('(', []byte("(")) n.SeparatorTkns = nil - if len(n.Arguments) > 0 { - n.SeparatorTkns = f.formatList(n.Arguments, ',') + if len(n.Args) > 0 { + n.SeparatorTkns = f.formatList(n.Args, ',') } n.CloseParenthesisTkn = f.newToken(')', []byte(")")) } @@ -1281,8 +1281,8 @@ func (f *formatter) ExprMethodCall(n *ast.ExprMethodCall) { n.OpenParenthesisTkn = f.newToken('(', []byte("(")) n.SeparatorTkns = nil - if len(n.Arguments) > 0 { - n.SeparatorTkns = f.formatList(n.Arguments, ',') + if len(n.Args) > 0 { + n.SeparatorTkns = f.formatList(n.Args, ',') } n.CloseParenthesisTkn = f.newToken(')', []byte(")")) } @@ -1296,9 +1296,9 @@ func (f *formatter) ExprNew(n *ast.ExprNew) { n.SeparatorTkns = nil n.OpenParenthesisTkn = nil n.CloseParenthesisTkn = nil - if len(n.Arguments) > 0 { + if len(n.Args) > 0 { n.OpenParenthesisTkn = f.newToken('(', []byte("(")) - n.SeparatorTkns = f.formatList(n.Arguments, ',') + n.SeparatorTkns = f.formatList(n.Args, ',') n.CloseParenthesisTkn = f.newToken(')', []byte(")")) } } @@ -1336,7 +1336,7 @@ func (f *formatter) ExprPropertyFetch(n *ast.ExprPropertyFetch) { n.OpenCurlyBracketTkn = nil n.CloseCurlyBracketTkn = nil - switch n.Property.(type) { + switch n.Prop.(type) { case *ast.Identifier: case *ast.ExprVariable: default: @@ -1344,7 +1344,7 @@ func (f *formatter) ExprPropertyFetch(n *ast.ExprPropertyFetch) { n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) } - n.Property.Accept(f) + n.Prop.Accept(f) } func (f *formatter) ExprRequire(n *ast.ExprRequire) { @@ -1385,8 +1385,8 @@ func (f *formatter) ExprStaticCall(n *ast.ExprStaticCall) { n.OpenParenthesisTkn = f.newToken('(', []byte("(")) n.SeparatorTkns = nil - if len(n.Arguments) > 0 { - n.SeparatorTkns = f.formatList(n.Arguments, ',') + if len(n.Args) > 0 { + n.SeparatorTkns = f.formatList(n.Args, ',') } n.CloseParenthesisTkn = f.newToken(')', []byte(")")) } @@ -1394,11 +1394,11 @@ func (f *formatter) ExprStaticCall(n *ast.ExprStaticCall) { func (f *formatter) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { n.Class.Accept(f) n.DoubleColonTkn = f.newToken(token.T_PAAMAYIM_NEKUDOTAYIM, []byte("::")) - n.Property.Accept(f) + n.Prop.Accept(f) } func (f *formatter) ExprTernary(n *ast.ExprTernary) { - n.Condition.Accept(f) + n.Cond.Accept(f) f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) n.QuestionTkn = f.newToken('?', []byte("?")) if n.IfTrue != nil { @@ -1422,13 +1422,13 @@ func (f *formatter) ExprUnaryPlus(n *ast.ExprUnaryPlus) { } func (f *formatter) ExprVariable(n *ast.ExprVariable) { - if _, ok := n.VarName.(*ast.Identifier); !ok { + if _, ok := n.Name.(*ast.Identifier); !ok { n.DollarTkn = f.newToken('$', []byte("$")) } n.OpenCurlyBracketTkn = nil n.CloseCurlyBracketTkn = nil - switch n.VarName.(type) { + switch n.Name.(type) { case *ast.Identifier: case *ast.ExprVariable: default: @@ -1436,7 +1436,7 @@ func (f *formatter) ExprVariable(n *ast.ExprVariable) { n.CloseCurlyBracketTkn = f.newToken('}', []byte("}")) } - n.VarName.Accept(f) + n.Name.Accept(f) } func (f *formatter) ExprYield(n *ast.ExprYield) { @@ -1450,7 +1450,7 @@ func (f *formatter) ExprYield(n *ast.ExprYield) { f.addFreeFloating(token.T_WHITESPACE, []byte(" ")) } - n.Value.Accept(f) + n.Val.Accept(f) } func (f *formatter) ExprYieldFrom(n *ast.ExprYieldFrom) { @@ -1942,7 +1942,7 @@ func (f *formatter) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { func (f *formatter) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { n.DollarOpenCurlyBracketTkn = f.newToken(token.T_DOLLAR_OPEN_CURLY_BRACES, []byte("${")) - n.VarName.Accept(f) + n.Name.Accept(f) n.OpenSquareBracketTkn = nil n.CloseSquareBracketTkn = nil @@ -1993,7 +1993,7 @@ func (f *formatter) ScalarString(n *ast.ScalarString) { } } -func (f *formatter) NameName(n *ast.NameName) { +func (f *formatter) NameName(n *ast.Name) { separatorTkns := make([]*token.Token, len(n.Parts)-1) for i, v := range n.Parts { v.Accept(f) @@ -2031,7 +2031,7 @@ func (f *formatter) NameRelative(n *ast.NameRelative) { } } -func (f *formatter) NameNamePart(n *ast.NameNamePart) { +func (f *formatter) NameNamePart(n *ast.NamePart) { if n.StringTkn == nil { n.StringTkn = f.newToken(token.T_STRING, n.Value) } else { diff --git a/pkg/visitor/formatter/formatter_test.go b/pkg/visitor/formatter/formatter_test.go index a170d89..b78ad38 100644 --- a/pkg/visitor/formatter/formatter_test.go +++ b/pkg/visitor/formatter/formatter_test.go @@ -63,7 +63,7 @@ func TestFormatter_Parameter(t *testing.T) { n := &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -89,7 +89,7 @@ func TestFormatter_Parameter_Ref(t *testing.T) { n := &ast.Parameter{ AmpersandTkn: &token.Token{}, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -115,7 +115,7 @@ func TestFormatter_Parameter_Variadic(t *testing.T) { n := &ast.Parameter{ VariadicTkn: &token.Token{}, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -143,7 +143,7 @@ func TestFormatter_Parameter_Type(t *testing.T) { Value: []byte("array"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -168,7 +168,7 @@ func TestFormatter_Parameter_Default(t *testing.T) { n := &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -217,7 +217,7 @@ func TestFormatter_Argument(t *testing.T) { n := &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -243,7 +243,7 @@ func TestFormatter_Argument_Ref(t *testing.T) { n := &ast.Argument{ AmpersandTkn: &token.Token{}, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -269,7 +269,7 @@ func TestFormatter_Argument_Variadic(t *testing.T) { n := &ast.Argument{ VariadicTkn: &token.Token{}, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -313,7 +313,7 @@ func TestFormatter_StmtBreak_Expr(t *testing.T) { n := &ast.StmtBreak{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -338,7 +338,7 @@ func TestFormatter_Case(t *testing.T) { n := &ast.StmtCase{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -367,23 +367,23 @@ func TestFormatter_Catch(t *testing.T) { n := &ast.StmtCatch{ Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, }, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$baz"), }, }, @@ -412,7 +412,7 @@ func TestFormatter_Class(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtClass{ - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmts: []ast.Vertex{ @@ -445,7 +445,7 @@ func TestFormatter_Class_Modifier(t *testing.T) { Value: []byte("final"), }, }, - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmts: []ast.Vertex{ @@ -473,20 +473,20 @@ func TestFormatter_Class_Anonymous(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtClass{ - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -517,12 +517,12 @@ func TestFormatter_Class_Extends(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtClass{ - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, - Extends: &ast.NameName{ + Extends: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -552,13 +552,13 @@ func TestFormatter_Class_Implements(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtClass{ - ClassName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Implements: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -670,7 +670,7 @@ func TestFormatter_ClassMethod(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtClassMethod{ - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmt: &ast.StmtNop{}, @@ -699,7 +699,7 @@ func TestFormatter_ClassMethod_Modifier(t *testing.T) { Value: []byte("public"), }, }, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmt: &ast.StmtStmtList{ @@ -730,7 +730,7 @@ func TestFormatter_ClassMethod_Ref(t *testing.T) { n := &ast.StmtClassMethod{ AmpersandTkn: &token.Token{}, - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmt: &ast.StmtStmtList{ @@ -760,20 +760,20 @@ func TestFormatter_ClassMethod_Params(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtClassMethod{ - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Params: []ast.Vertex{ &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -806,12 +806,12 @@ func TestFormatter_ClassMethod_ReturnType(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtClassMethod{ - MethodName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -927,7 +927,7 @@ func TestFormatter_StmtContinue_Expr(t *testing.T) { n := &ast.StmtContinue{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -1047,7 +1047,7 @@ func TestFormatter_StmtDo(t *testing.T) { }, }, Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -1129,7 +1129,7 @@ func TestFormatter_StmtElseIf(t *testing.T) { n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -1161,7 +1161,7 @@ func TestFormatter_StmtExpression(t *testing.T) { n := &ast.StmtExpression{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$var"), }, }, @@ -1212,36 +1212,36 @@ func TestFormatter_StmtFor(t *testing.T) { n := &ast.StmtFor{ Init: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, }, Cond: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, }, Loop: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -1274,12 +1274,12 @@ func TestFormatter_StmtForeach(t *testing.T) { n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$val"), }, }, @@ -1311,13 +1311,13 @@ func TestFormatter_StmtForeach_Reference(t *testing.T) { n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, AmpersandTkn: &token.Token{}, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$val"), }, }, @@ -1349,17 +1349,17 @@ func TestFormatter_StmtForeach_Key(t *testing.T) { n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Key: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$key"), }, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$val"), }, }, @@ -1390,7 +1390,7 @@ func TestFormatter_StmtFunction(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtFunction{ - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmts: []ast.Vertex{ @@ -1419,7 +1419,7 @@ func TestFormatter_StmtFunction_Ref(t *testing.T) { n := &ast.StmtFunction{ AmpersandTkn: &token.Token{}, - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmts: []ast.Vertex{ @@ -1447,20 +1447,20 @@ func TestFormatter_StmtFunction_Params(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtFunction{ - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Params: []ast.Vertex{ &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -1491,12 +1491,12 @@ func TestFormatter_StmtFunction_ReturnType(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtFunction{ - FunctionName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -1528,12 +1528,12 @@ func TestFormatter_StmtGlobal(t *testing.T) { n := &ast.StmtGlobal{ Vars: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -1601,7 +1601,7 @@ func TestFormatter_StmtIf(t *testing.T) { n := &ast.StmtIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -1633,7 +1633,7 @@ func TestFormatter_StmtIf_ElseIf(t *testing.T) { n := &ast.StmtIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -1645,7 +1645,7 @@ func TestFormatter_StmtIf_ElseIf(t *testing.T) { ElseIf: []ast.Vertex{ &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -1657,7 +1657,7 @@ func TestFormatter_StmtIf_ElseIf(t *testing.T) { }, &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$baz"), }, }, @@ -1695,7 +1695,7 @@ func TestFormatter_StmtIf_Else(t *testing.T) { n := &ast.StmtIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -1745,7 +1745,7 @@ func TestFormatter_StmtInlineHtml(t *testing.T) { &ast.StmtEcho{ Exprs: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -1784,7 +1784,7 @@ func TestFormatter_StmtInterface(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtInterface{ - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmts: []ast.Vertex{ @@ -1812,13 +1812,13 @@ func TestFormatter_StmtInterface_Extends(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtInterface{ - InterfaceName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Extends: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -1849,7 +1849,7 @@ func TestFormatter_StmtLabel(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtLabel{ - LabelName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("FOO"), }, } @@ -1872,9 +1872,9 @@ func TestFormatter_StmtNamespace_Name(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtNamespace{ - Name: &ast.NameName{ + Name: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -1992,7 +1992,7 @@ func TestFormatter_StmtPropertyList(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtPropertyList{ - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Var: &ast.Identifier{ Value: []byte("$foo"), @@ -2032,7 +2032,7 @@ func TestFormatter_StmtPropertyList_Modifiers(t *testing.T) { Value: []byte("static"), }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Var: &ast.Identifier{ Value: []byte("$foo"), @@ -2067,7 +2067,7 @@ func TestFormatter_StmtPropertyList_Type(t *testing.T) { Type: &ast.Identifier{ Value: []byte("array"), }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Var: &ast.Identifier{ Value: []byte("$foo"), @@ -2144,14 +2144,14 @@ func TestFormatter_StmtStatic(t *testing.T) { Vars: []ast.Vertex{ &ast.StmtStaticVar{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.StmtStaticVar{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -2178,7 +2178,7 @@ func TestFormatter_StmtStaticVar(t *testing.T) { n := &ast.StmtStaticVar{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -2203,7 +2203,7 @@ func TestFormatter_StmtStaticVar_Expr(t *testing.T) { n := &ast.StmtStaticVar{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -2268,11 +2268,11 @@ func TestFormatter_StmtSwitch(t *testing.T) { n := &ast.StmtSwitch{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Cond: &ast.ScalarString{ Value: []byte("'bar'"), @@ -2313,7 +2313,7 @@ func TestFormatter_StmtThrow(t *testing.T) { n := &ast.StmtThrow{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -2337,7 +2337,7 @@ func TestFormatter_StmtTrait(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtTrait{ - TraitName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Stmts: []ast.Vertex{ @@ -2366,16 +2366,16 @@ func TestFormatter_StmtTraitUse(t *testing.T) { n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -2402,16 +2402,16 @@ func TestFormatter_StmtTraitUse_Adaptations(t *testing.T) { n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -2478,9 +2478,9 @@ func TestFormatter_StmtTraitUseAlias_Trait(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtTraitUseAlias{ - Trait: &ast.NameName{ + Trait: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -2570,16 +2570,16 @@ func TestFormatter_StmtTraitUsePrecedence(t *testing.T) { Value: []byte("foo"), }, Insteadof: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, }, - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("baz"), }, }, @@ -2605,9 +2605,9 @@ func TestFormatter_StmtTraitUsePrecedence_Trait(t *testing.T) { o := bytes.NewBufferString("") n := &ast.StmtTraitUsePrecedence{ - Trait: &ast.NameName{ + Trait: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -2616,9 +2616,9 @@ func TestFormatter_StmtTraitUsePrecedence_Trait(t *testing.T) { Value: []byte("bar"), }, Insteadof: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("baz"), }, }, @@ -2675,16 +2675,16 @@ func TestFormatter_StmtTry_Catch(t *testing.T) { Catches: []ast.Vertex{ &ast.StmtCatch{ Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -2694,16 +2694,16 @@ func TestFormatter_StmtTry_Catch(t *testing.T) { }, &ast.StmtCatch{ Types: []ast.Vertex{ - &ast.NameName{ + &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -2772,12 +2772,12 @@ func TestFormatter_StmtUnset(t *testing.T) { n := &ast.StmtUnset{ Vars: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -2801,21 +2801,21 @@ func TestFormatter_StmtUnset(t *testing.T) { func TestFormatter_StmtUse(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + n := &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, }, - &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -2841,15 +2841,15 @@ func TestFormatter_StmtUse(t *testing.T) { func TestFormatter_StmtUse_Type(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.StmtUse{ + n := &ast.StmtUseList{ Type: &ast.Identifier{ Value: []byte("function"), }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -2875,28 +2875,28 @@ func TestFormatter_StmtUse_Type(t *testing.T) { func TestFormatter_StmtGroupUse(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.StmtGroupUse{ - Prefix: &ast.NameName{ + n := &ast.StmtGroupUseList{ + Prefix: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, }, }, - &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("baz"), }, }, @@ -2922,31 +2922,31 @@ func TestFormatter_StmtGroupUse(t *testing.T) { func TestFormatter_StmtGroupUse_Type(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.StmtGroupUse{ + n := &ast.StmtGroupUseList{ Type: &ast.Identifier{ Value: []byte("function"), }, - Prefix: &ast.NameName{ + Prefix: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, }, }, - &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("baz"), }, }, @@ -2972,10 +2972,10 @@ func TestFormatter_StmtGroupUse_Type(t *testing.T) { func TestFormatter_StmtUseDeclaration(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + n := &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -2999,13 +2999,13 @@ func TestFormatter_StmtUseDeclaration(t *testing.T) { func TestFormatter_StmtUseDeclaration_Type(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.StmtUseDeclaration{ + n := &ast.StmtUse{ Type: &ast.Identifier{ Value: []byte("function"), }, - Use: &ast.NameName{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -3029,10 +3029,10 @@ func TestFormatter_StmtUseDeclaration_Type(t *testing.T) { func TestFormatter_StmtUseDeclaration_Alias(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.StmtUseDeclaration{ - Use: &ast.NameName{ + n := &ast.StmtUse{ + Use: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -3061,7 +3061,7 @@ func TestFormatter_StmtWhile(t *testing.T) { n := &ast.StmtWhile{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3089,14 +3089,14 @@ func TestFormatter_ExprArray(t *testing.T) { Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -3123,12 +3123,12 @@ func TestFormatter_ExprArrayDimFetch(t *testing.T) { n := &ast.ExprArrayDimFetch{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Dim: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -3153,7 +3153,7 @@ func TestFormatter_ExprArrayItem(t *testing.T) { n := &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3178,12 +3178,12 @@ func TestFormatter_ExprArrayItem_Key(t *testing.T) { n := &ast.ExprArrayItem{ Key: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -3209,7 +3209,7 @@ func TestFormatter_ExprArrayItem_Variadic(t *testing.T) { n := &ast.ExprArrayItem{ EllipsisTkn: &token.Token{}, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3234,7 +3234,7 @@ func TestFormatter_ExprArrowFunction(t *testing.T) { n := &ast.ExprArrowFunction{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3260,7 +3260,7 @@ func TestFormatter_ExprArrowFunction_Ref(t *testing.T) { n := &ast.ExprArrowFunction{ AmpersandTkn: &token.Token{}, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3287,21 +3287,21 @@ func TestFormatter_ExprArrowFunction_Params(t *testing.T) { Params: []ast.Vertex{ &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3325,15 +3325,15 @@ func TestFormatter_ExprArrowFunction_ReturnType(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprArrowFunction{ - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -3358,7 +3358,7 @@ func TestFormatter_ExprBitwiseNot(t *testing.T) { n := &ast.ExprBitwiseNot{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3383,7 +3383,7 @@ func TestFormatter_ExprBooleanNot(t *testing.T) { n := &ast.ExprBooleanNot{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3408,7 +3408,7 @@ func TestFormatter_ExprBrackets(t *testing.T) { n := &ast.ExprBrackets{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3433,11 +3433,11 @@ func TestFormatter_ExprClassConstFetch(t *testing.T) { n := &ast.ExprClassConstFetch{ Class: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Value: []byte("bar"), }, } @@ -3461,7 +3461,7 @@ func TestFormatter_ExprClone(t *testing.T) { n := &ast.ExprClone{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3539,14 +3539,14 @@ func TestFormatter_ExprClosure_Params(t *testing.T) { Params: []ast.Vertex{ &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -3577,9 +3577,9 @@ func TestFormatter_ExprClosure_ReturnType(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprClosure{ - ReturnType: &ast.NameName{ + ReturnType: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -3609,10 +3609,10 @@ func TestFormatter_ExprClosure_Use(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprClosure{ - Use: []ast.Vertex{ + Uses: []ast.Vertex{ &ast.ExprClosureUse{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3644,7 +3644,7 @@ func TestFormatter_ExprClosureUse(t *testing.T) { n := &ast.ExprClosureUse{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, @@ -3670,7 +3670,7 @@ func TestFormatter_ExprClosureUse_Reference(t *testing.T) { n := &ast.ExprClosureUse{ AmpersandTkn: &token.Token{}, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, @@ -3694,9 +3694,9 @@ func TestFormatter_ExprConstFetch(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprConstFetch{ - Const: &ast.NameName{ + Const: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("FOO"), }, }, @@ -3722,7 +3722,7 @@ func TestFormatter_ExprEmpty(t *testing.T) { n := &ast.ExprEmpty{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3747,7 +3747,7 @@ func TestFormatter_ExprErrorSuppress(t *testing.T) { n := &ast.ExprErrorSuppress{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3772,7 +3772,7 @@ func TestFormatter_ExprEval(t *testing.T) { n := &ast.ExprEval{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3816,7 +3816,7 @@ func TestFormatter_ExprExit_Expr(t *testing.T) { n := &ast.ExprExit{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -3840,9 +3840,9 @@ func TestFormatter_ExprFunctionCall(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprFunctionCall{ - Function: &ast.NameName{ + Function: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -3867,17 +3867,17 @@ func TestFormatter_ExprFunctionCall_Arguments(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprFunctionCall{ - Function: &ast.NameName{ + Function: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -3950,13 +3950,13 @@ func TestFormatter_ExprInstanceOf(t *testing.T) { n := &ast.ExprInstanceOf{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -3983,12 +3983,12 @@ func TestFormatter_ExprIsset(t *testing.T) { n := &ast.ExprIsset{ Vars: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -4016,14 +4016,14 @@ func TestFormatter_ExprList(t *testing.T) { Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -4050,7 +4050,7 @@ func TestFormatter_ExprMethodCall(t *testing.T) { n := &ast.ExprMethodCall{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4078,7 +4078,7 @@ func TestFormatter_ExprMethodCall_Expr(t *testing.T) { n := &ast.ExprMethodCall{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4106,24 +4106,24 @@ func TestFormatter_ExprMethodCall_Arguments(t *testing.T) { n := &ast.ExprMethodCall{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Method: &ast.Identifier{ Value: []byte("bar"), }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -4149,9 +4149,9 @@ func TestFormatter_ExprNew(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprNew{ - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -4176,24 +4176,24 @@ func TestFormatter_ExprNew_Arguments(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprNew{ - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -4220,7 +4220,7 @@ func TestFormatter_ExprPreDec(t *testing.T) { n := &ast.ExprPreDec{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4245,7 +4245,7 @@ func TestFormatter_ExprPreInc(t *testing.T) { n := &ast.ExprPreInc{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4270,7 +4270,7 @@ func TestFormatter_ExprPostDec(t *testing.T) { n := &ast.ExprPostDec{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4295,7 +4295,7 @@ func TestFormatter_ExprPostInc(t *testing.T) { n := &ast.ExprPostInc{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4320,7 +4320,7 @@ func TestFormatter_ExprPrint(t *testing.T) { n := &ast.ExprPrint{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4345,11 +4345,11 @@ func TestFormatter_ExprPropertyFetch(t *testing.T) { n := &ast.ExprPropertyFetch{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, - Property: &ast.Identifier{ + Prop: &ast.Identifier{ Value: []byte("bar"), }, } @@ -4373,11 +4373,11 @@ func TestFormatter_ExprPropertyFetch_Expr(t *testing.T) { n := &ast.ExprPropertyFetch{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, - Property: &ast.ScalarString{ + Prop: &ast.ScalarString{ Value: []byte("'bar'"), }, } @@ -4495,7 +4495,7 @@ func TestFormatter_ExprShellExec_Parts(t *testing.T) { Value: []byte("foo "), }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -4523,9 +4523,9 @@ func TestFormatter_ExprStaticCall(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprStaticCall{ - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -4553,9 +4553,9 @@ func TestFormatter_ExprStaticCall_Expr(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprStaticCall{ - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -4583,9 +4583,9 @@ func TestFormatter_ExprStaticCall_Arguments(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprStaticCall{ - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, @@ -4593,17 +4593,17 @@ func TestFormatter_ExprStaticCall_Arguments(t *testing.T) { Call: &ast.Identifier{ Value: []byte("bar"), }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$a"), }, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$b"), }, }, @@ -4629,15 +4629,15 @@ func TestFormatter_ExprStaticPropertyFetch(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprStaticPropertyFetch{ - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, }, }, - Property: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Prop: &ast.ExprVariable{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -4661,18 +4661,18 @@ func TestFormatter_ExprTernary(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprTernary{ - Condition: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Cond: &ast.ExprVariable{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, IfTrue: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, IfFalse: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$baz"), }, }, @@ -4696,13 +4696,13 @@ func TestFormatter_ExprTernary_short(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprTernary{ - Condition: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Cond: &ast.ExprVariable{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, IfFalse: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -4727,7 +4727,7 @@ func TestFormatter_ExprUnaryMinus(t *testing.T) { n := &ast.ExprUnaryMinus{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4752,7 +4752,7 @@ func TestFormatter_ExprUnaryPlus(t *testing.T) { n := &ast.ExprUnaryPlus{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4776,7 +4776,7 @@ func TestFormatter_ExprVariable(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, } @@ -4799,8 +4799,8 @@ func TestFormatter_ExprVariable_Variable(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprVariable{ - VarName: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.ExprVariable{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4824,7 +4824,7 @@ func TestFormatter_ExprVariable_Expression(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprVariable{ - VarName: &ast.ScalarString{ + Name: &ast.ScalarString{ Value: []byte("'foo'"), }, } @@ -4847,8 +4847,8 @@ func TestFormatter_ExprYield(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ExprYield{ - Value: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Val: &ast.ExprVariable{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4873,12 +4873,12 @@ func TestFormatter_ExprYield_Key(t *testing.T) { n := &ast.ExprYield{ Key: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, - Value: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Val: &ast.ExprVariable{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -4903,7 +4903,7 @@ func TestFormatter_ExprYieldFrom(t *testing.T) { n := &ast.ExprYieldFrom{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -4928,12 +4928,12 @@ func TestFormatter_ExprAssign(t *testing.T) { n := &ast.ExprAssign{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -4958,12 +4958,12 @@ func TestFormatter_ExprAssignReference(t *testing.T) { n := &ast.ExprAssignReference{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -4988,12 +4988,12 @@ func TestFormatter_ExprAssignBitwiseAnd(t *testing.T) { n := &ast.ExprAssignBitwiseAnd{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5018,12 +5018,12 @@ func TestFormatter_ExprAssignBitwiseOr(t *testing.T) { n := &ast.ExprAssignBitwiseOr{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5048,12 +5048,12 @@ func TestFormatter_ExprAssignBitwiseXor(t *testing.T) { n := &ast.ExprAssignBitwiseXor{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5078,12 +5078,12 @@ func TestFormatter_ExprAssignCoalesce(t *testing.T) { n := &ast.ExprAssignCoalesce{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5108,12 +5108,12 @@ func TestFormatter_ExprAssignConcat(t *testing.T) { n := &ast.ExprAssignConcat{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5138,12 +5138,12 @@ func TestFormatter_ExprAssignDiv(t *testing.T) { n := &ast.ExprAssignDiv{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5168,12 +5168,12 @@ func TestFormatter_ExprAssignMinus(t *testing.T) { n := &ast.ExprAssignMinus{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5198,12 +5198,12 @@ func TestFormatter_ExprAssignMod(t *testing.T) { n := &ast.ExprAssignMod{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5228,12 +5228,12 @@ func TestFormatter_ExprAssignMul(t *testing.T) { n := &ast.ExprAssignMul{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5258,12 +5258,12 @@ func TestFormatter_ExprAssignPlus(t *testing.T) { n := &ast.ExprAssignPlus{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5288,12 +5288,12 @@ func TestFormatter_ExprAssignPow(t *testing.T) { n := &ast.ExprAssignPow{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5318,12 +5318,12 @@ func TestFormatter_ExprAssignShiftLeft(t *testing.T) { n := &ast.ExprAssignShiftLeft{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5348,12 +5348,12 @@ func TestFormatter_ExprAssignShiftRight(t *testing.T) { n := &ast.ExprAssignShiftRight{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5378,12 +5378,12 @@ func TestFormatter_ExprBinaryBitwiseAnd(t *testing.T) { n := &ast.ExprBinaryBitwiseAnd{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5408,12 +5408,12 @@ func TestFormatter_ExprBinaryBitwiseOr(t *testing.T) { n := &ast.ExprBinaryBitwiseOr{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5438,12 +5438,12 @@ func TestFormatter_ExprBinaryBitwiseXor(t *testing.T) { n := &ast.ExprBinaryBitwiseXor{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5468,12 +5468,12 @@ func TestFormatter_ExprBinaryBooleanAnd(t *testing.T) { n := &ast.ExprBinaryBooleanAnd{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5498,12 +5498,12 @@ func TestFormatter_ExprBinaryBooleanOr(t *testing.T) { n := &ast.ExprBinaryBooleanOr{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5528,12 +5528,12 @@ func TestFormatter_ExprBinaryCoalesce(t *testing.T) { n := &ast.ExprBinaryCoalesce{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5558,12 +5558,12 @@ func TestFormatter_ExprBinaryConcat(t *testing.T) { n := &ast.ExprBinaryConcat{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5588,12 +5588,12 @@ func TestFormatter_ExprBinaryDiv(t *testing.T) { n := &ast.ExprBinaryDiv{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5618,12 +5618,12 @@ func TestFormatter_ExprBinaryEqual(t *testing.T) { n := &ast.ExprBinaryEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5648,12 +5648,12 @@ func TestFormatter_ExprBinaryGreater(t *testing.T) { n := &ast.ExprBinaryGreater{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5678,12 +5678,12 @@ func TestFormatter_ExprBinaryGreaterOrEqual(t *testing.T) { n := &ast.ExprBinaryGreaterOrEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5708,12 +5708,12 @@ func TestFormatter_ExprBinaryIdentical(t *testing.T) { n := &ast.ExprBinaryIdentical{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5738,12 +5738,12 @@ func TestFormatter_ExprBinaryLogicalAnd(t *testing.T) { n := &ast.ExprBinaryLogicalAnd{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5768,12 +5768,12 @@ func TestFormatter_ExprBinaryLogicalOr(t *testing.T) { n := &ast.ExprBinaryLogicalOr{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5798,12 +5798,12 @@ func TestFormatter_ExprBinaryLogicalXor(t *testing.T) { n := &ast.ExprBinaryLogicalXor{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5828,12 +5828,12 @@ func TestFormatter_ExprBinaryMinus(t *testing.T) { n := &ast.ExprBinaryMinus{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5858,12 +5858,12 @@ func TestFormatter_ExprBinaryMod(t *testing.T) { n := &ast.ExprBinaryMod{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5888,12 +5888,12 @@ func TestFormatter_ExprBinaryMul(t *testing.T) { n := &ast.ExprBinaryMul{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5918,12 +5918,12 @@ func TestFormatter_ExprBinaryNotEqual(t *testing.T) { n := &ast.ExprBinaryNotEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5948,12 +5948,12 @@ func TestFormatter_ExprBinaryNotIdentical(t *testing.T) { n := &ast.ExprBinaryNotIdentical{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -5978,12 +5978,12 @@ func TestFormatter_ExprBinaryPlus(t *testing.T) { n := &ast.ExprBinaryPlus{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6008,12 +6008,12 @@ func TestFormatter_ExprBinaryPow(t *testing.T) { n := &ast.ExprBinaryPow{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6038,12 +6038,12 @@ func TestFormatter_ExprBinaryShiftLeft(t *testing.T) { n := &ast.ExprBinaryShiftLeft{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6068,12 +6068,12 @@ func TestFormatter_ExprBinaryShiftRight(t *testing.T) { n := &ast.ExprBinaryShiftRight{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6098,12 +6098,12 @@ func TestFormatter_ExprBinarySmaller(t *testing.T) { n := &ast.ExprBinarySmaller{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6128,12 +6128,12 @@ func TestFormatter_ExprBinarySmallerOrEqual(t *testing.T) { n := &ast.ExprBinarySmallerOrEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6158,12 +6158,12 @@ func TestFormatter_ExprBinarySpaceship(t *testing.T) { n := &ast.ExprBinarySpaceship{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6188,7 +6188,7 @@ func TestFormatter_ExprCastArray(t *testing.T) { n := &ast.ExprCastArray{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6213,7 +6213,7 @@ func TestFormatter_ExprCastBool(t *testing.T) { n := &ast.ExprCastBool{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6238,7 +6238,7 @@ func TestFormatter_ExprCastDouble(t *testing.T) { n := &ast.ExprCastDouble{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6263,7 +6263,7 @@ func TestFormatter_ExprCastInt(t *testing.T) { n := &ast.ExprCastInt{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6288,7 +6288,7 @@ func TestFormatter_ExprCastObject(t *testing.T) { n := &ast.ExprCastObject{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6313,7 +6313,7 @@ func TestFormatter_ExprCastString(t *testing.T) { n := &ast.ExprCastString{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6338,7 +6338,7 @@ func TestFormatter_ExprCastUnset(t *testing.T) { n := &ast.ExprCastUnset{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6432,7 +6432,7 @@ func TestFormatter_ScalarEncapsed_Parts(t *testing.T) { Value: []byte("foo "), }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6481,7 +6481,7 @@ func TestFormatter_ScalarEncapsedStringVar(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ScalarEncapsedStringVar{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, } @@ -6504,7 +6504,7 @@ func TestFormatter_ScalarEncapsedStringVar_Dim(t *testing.T) { o := bytes.NewBufferString("") n := &ast.ScalarEncapsedStringVar{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("foo"), }, Dim: &ast.ScalarString{ @@ -6531,7 +6531,7 @@ func TestFormatter_ScalarEncapsedStringBrackets(t *testing.T) { n := &ast.ScalarEncapsedStringBrackets{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$foo"), }, }, @@ -6607,7 +6607,7 @@ func TestFormatter_ScalarHeredoc_Parts(t *testing.T) { Value: []byte("foo "), }, &ast.ExprVariable{ - VarName: &ast.Identifier{ + Name: &ast.Identifier{ Value: []byte("$bar"), }, }, @@ -6699,12 +6699,12 @@ func TestFormatter_ScalarString(t *testing.T) { func TestFormatter_NameName(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.NameName{ + n := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -6729,10 +6729,10 @@ func TestFormatter_NameFullyQualified(t *testing.T) { n := &ast.NameFullyQualified{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -6757,10 +6757,10 @@ func TestFormatter_NameRelative(t *testing.T) { n := &ast.NameRelative{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("foo"), }, - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("bar"), }, }, @@ -6783,7 +6783,7 @@ func TestFormatter_NameRelative(t *testing.T) { func TestFormatter_NameNamePart(t *testing.T) { o := bytes.NewBufferString("") - n := &ast.NameNamePart{ + n := &ast.NamePart{ Value: []byte("foo"), } diff --git a/pkg/visitor/nsresolver/namespace_resolver.go b/pkg/visitor/nsresolver/namespace_resolver.go index 2b42a2c..4d17444 100644 --- a/pkg/visitor/nsresolver/namespace_resolver.go +++ b/pkg/visitor/nsresolver/namespace_resolver.go @@ -41,32 +41,32 @@ func (nsr *NamespaceResolver) StmtNamespace(n *ast.StmtNamespace) { if n.Name == nil { nsr.Namespace = NewNamespace("") } else { - NSParts := n.Name.(*ast.NameName).Parts + NSParts := n.Name.(*ast.Name).Parts nsr.Namespace = NewNamespace(concatNameParts(NSParts)) } } -func (nsr *NamespaceResolver) StmtUse(n *ast.StmtUse) { +func (nsr *NamespaceResolver) StmtUse(n *ast.StmtUseList) { useType := "" if n.Type != nil { useType = string(n.Type.(*ast.Identifier).Value) } - for _, nn := range n.UseDeclarations { + for _, nn := range n.Uses { nsr.AddAlias(useType, nn, nil) } nsr.goDeep = false } -func (nsr *NamespaceResolver) StmtGroupUse(n *ast.StmtGroupUse) { +func (nsr *NamespaceResolver) StmtGroupUse(n *ast.StmtGroupUseList) { useType := "" if n.Type != nil { useType = string(n.Type.(*ast.Identifier).Value) } - for _, nn := range n.UseDeclarations { - nsr.AddAlias(useType, nn, n.Prefix.(*ast.NameName).Parts) + for _, nn := range n.Uses { + nsr.AddAlias(useType, nn, n.Prefix.(*ast.Name).Parts) } nsr.goDeep = false @@ -83,8 +83,8 @@ func (nsr *NamespaceResolver) StmtClass(n *ast.StmtClass) { } } - if n.ClassName != nil { - nsr.AddNamespacedName(n, string(n.ClassName.(*ast.Identifier).Value)) + if n.Name != nil { + nsr.AddNamespacedName(n, string(n.Name.(*ast.Identifier).Value)) } } @@ -95,15 +95,15 @@ func (nsr *NamespaceResolver) StmtInterface(n *ast.StmtInterface) { } } - nsr.AddNamespacedName(n, string(n.InterfaceName.(*ast.Identifier).Value)) + nsr.AddNamespacedName(n, string(n.Name.(*ast.Identifier).Value)) } func (nsr *NamespaceResolver) StmtTrait(n *ast.StmtTrait) { - nsr.AddNamespacedName(n, string(n.TraitName.(*ast.Identifier).Value)) + nsr.AddNamespacedName(n, string(n.Name.(*ast.Identifier).Value)) } func (nsr *NamespaceResolver) StmtFunction(n *ast.StmtFunction) { - nsr.AddNamespacedName(n, string(n.FunctionName.(*ast.Identifier).Value)) + nsr.AddNamespacedName(n, string(n.Name.(*ast.Identifier).Value)) for _, parameter := range n.Params { nsr.ResolveType(parameter.(*ast.Parameter).Type) @@ -218,15 +218,15 @@ func (nsr *NamespaceResolver) LeaveNode(n ast.Vertex) { // AddAlias adds a new alias func (nsr *NamespaceResolver) AddAlias(useType string, nn ast.Vertex, prefix []ast.Vertex) { switch use := nn.(type) { - case *ast.StmtUseDeclaration: + case *ast.StmtUse: if use.Type != nil { useType = string(use.Type.(*ast.Identifier).Value) } - useNameParts := use.Use.(*ast.NameName).Parts + useNameParts := use.Use.(*ast.Name).Parts var alias string if use.Alias == nil { - alias = string(useNameParts[len(useNameParts)-1].(*ast.NameNamePart).Value) + alias = string(useNameParts[len(useNameParts)-1].(*ast.NamePart).Value) } else { alias = string(use.Alias.(*ast.Identifier).Value) } @@ -257,7 +257,7 @@ func (nsr *NamespaceResolver) ResolveType(n ast.Vertex) { switch nn := n.(type) { case *ast.Nullable: nsr.ResolveType(nn.Expr) - case *ast.NameName: + case *ast.Name: nsr.ResolveName(n, "") case *ast.NameRelative: nsr.ResolveName(n, "") @@ -308,16 +308,16 @@ func (ns *Namespace) ResolveName(nameNode ast.Vertex, aliasType string) (string, } return ns.Namespace + "\\" + concatNameParts(n.Parts), nil - case *ast.NameName: + case *ast.Name: if aliasType == "const" && len(n.Parts) == 1 { - part := strings.ToLower(string(n.Parts[0].(*ast.NameNamePart).Value)) + part := strings.ToLower(string(n.Parts[0].(*ast.NamePart).Value)) if part == "true" || part == "false" || part == "null" { return part, nil } } if aliasType == "" && len(n.Parts) == 1 { - part := strings.ToLower(string(n.Parts[0].(*ast.NameNamePart).Value)) + part := strings.ToLower(string(n.Parts[0].(*ast.NamePart).Value)) switch part { case "self": @@ -366,9 +366,9 @@ func (ns *Namespace) ResolveName(nameNode ast.Vertex, aliasType string) (string, // ResolveAlias returns alias or error if not found func (ns *Namespace) ResolveAlias(nameNode ast.Vertex, aliasType string) (string, error) { aliasType = strings.ToLower(aliasType) - nameParts := nameNode.(*ast.NameName).Parts + nameParts := nameNode.(*ast.Name).Parts - firstPartStr := string(nameParts[0].(*ast.NameNamePart).Value) + firstPartStr := string(nameParts[0].(*ast.NamePart).Value) if len(nameParts) > 1 { // resolve aliases for qualified names, always against class alias type firstPartStr = strings.ToLower(firstPartStr) @@ -393,9 +393,9 @@ func concatNameParts(parts ...[]ast.Vertex) string { for _, p := range parts { for _, n := range p { if str == "" { - str = string(n.(*ast.NameNamePart).Value) + str = string(n.(*ast.NamePart).Value) } else { - str = str + "\\" + string(n.(*ast.NameNamePart).Value) + str = str + "\\" + string(n.(*ast.NamePart).Value) } } } diff --git a/pkg/visitor/nsresolver/namespace_resolver_test.go b/pkg/visitor/nsresolver/namespace_resolver_test.go index 1229822..324ba0d 100644 --- a/pkg/visitor/nsresolver/namespace_resolver_test.go +++ b/pkg/visitor/nsresolver/namespace_resolver_test.go @@ -11,14 +11,14 @@ import ( ) func TestResolveStaticCall(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, @@ -41,21 +41,21 @@ func TestResolveStaticCall(t *testing.T) { } func TestResolveStaticPropertyFetch(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, }, &ast.ExprStaticPropertyFetch{ - Class: nameBC, - Property: &ast.Identifier{Value: []byte("foo")}, + Class: nameBC, + Prop: &ast.Identifier{Value: []byte("foo")}, }, }, } @@ -71,21 +71,21 @@ func TestResolveStaticPropertyFetch(t *testing.T) { } func TestResolveClassConstFetch(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, }, &ast.ExprClassConstFetch{ - Class: nameBC, - ConstantName: &ast.Identifier{Value: []byte("FOO")}, + Class: nameBC, + Const: &ast.Identifier{Value: []byte("FOO")}, }, }, } @@ -101,14 +101,14 @@ func TestResolveClassConstFetch(t *testing.T) { } func TestResolveNew(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, @@ -130,20 +130,20 @@ func TestResolveNew(t *testing.T) { } func TestResolveInstanceOf(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, }, &ast.ExprInstanceOf{ - Expr: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Expr: &ast.ExprVariable{Name: &ast.Identifier{Value: []byte("foo")}}, Class: nameBC, }, }, @@ -160,20 +160,20 @@ func TestResolveInstanceOf(t *testing.T) { } func TestResolveInstanceCatch(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} - nameDE := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("D")}, &ast.NameNamePart{Value: []byte("E")}}} - nameF := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("F")}}} + nameDE := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("D")}, &ast.NamePart{Value: []byte("E")}}} + nameF := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("F")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Use: nameDE, Alias: &ast.Identifier{Value: []byte("F")}, }, @@ -187,7 +187,7 @@ func TestResolveInstanceCatch(t *testing.T) { nameBC, nameF, }, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Var: &ast.ExprVariable{Name: &ast.Identifier{Value: []byte("foo")}}, Stmts: []ast.Vertex{}, }, }, @@ -207,15 +207,15 @@ func TestResolveInstanceCatch(t *testing.T) { } func TestResolveFunctionCall(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Type: &ast.Identifier{Value: []byte("function")}, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, @@ -237,15 +237,15 @@ func TestResolveFunctionCall(t *testing.T) { } func TestResolveConstFetch(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ + &ast.StmtUseList{ Type: &ast.Identifier{Value: []byte("const")}, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, @@ -267,32 +267,32 @@ func TestResolveConstFetch(t *testing.T) { } func TestResolveGroupUse(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBD := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("D")}}} - nameE := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("E")}}} - nameC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}}} - nameF := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("F")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBD := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("D")}}} + nameE := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("E")}}} + nameC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("C")}}} + nameF := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("F")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtGroupUse{ + &ast.StmtGroupUseList{ Prefix: nameAB, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Type: &ast.Identifier{Value: []byte("Function")}, Use: nameF, }, - &ast.StmtUseDeclaration{ + &ast.StmtUse{ Type: &ast.Identifier{Value: []byte("const")}, Use: nameC, }, }, }, - &ast.StmtGroupUse{ + &ast.StmtGroupUseList{ Prefix: nameBD, Type: &ast.Identifier{Value: []byte("Function")}, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameE, }, }, @@ -322,20 +322,20 @@ func TestResolveGroupUse(t *testing.T) { } func TestResolveTraitUse(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} - nameD := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("D")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}}} + nameD := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("D")}}} - fullyQualifiedNameB := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} - fullyQualifiedNameBC := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} - relativeNameB := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}}} - relativeNameBC := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + fullyQualifiedNameB := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}}} + fullyQualifiedNameBC := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} + relativeNameB := &ast.NameRelative{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}}} + relativeNameBC := &ast.NameRelative{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAB, }, }, @@ -382,12 +382,12 @@ func TestResolveTraitUse(t *testing.T) { } func TestResolveClassName(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} class := &ast.StmtClass{ - ClassName: &ast.Identifier{Value: []byte("A")}, - Extends: nameAB, + Name: &ast.Identifier{Value: []byte("A")}, + Extends: nameAB, Implements: []ast.Vertex{ nameBC, }, @@ -412,11 +412,11 @@ func TestResolveClassName(t *testing.T) { } func TestResolveInterfaceName(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} interfaceNode := &ast.StmtInterface{ - InterfaceName: &ast.Identifier{Value: []byte("A")}, + Name: &ast.Identifier{Value: []byte("A")}, Extends: []ast.Vertex{ nameAB, nameBC, @@ -443,8 +443,8 @@ func TestResolveInterfaceName(t *testing.T) { func TestResolveTraitName(t *testing.T) { traitNode := &ast.StmtTrait{ - TraitName: &ast.Identifier{Value: []byte("A")}, - Stmts: []ast.Vertex{}, + Name: &ast.Identifier{Value: []byte("A")}, + Stmts: []ast.Vertex{}, } stxTree := &ast.StmtStmtList{ @@ -464,15 +464,15 @@ func TestResolveTraitName(t *testing.T) { } func TestResolveFunctionName(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} functionNode := &ast.StmtFunction{ - FunctionName: &ast.Identifier{Value: []byte("A")}, + Name: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Var: &ast.ExprVariable{Name: &ast.Identifier{Value: []byte("foo")}}, }, }, ReturnType: &ast.Nullable{Expr: nameBC}, @@ -498,15 +498,15 @@ func TestResolveFunctionName(t *testing.T) { } func TestResolveMethodName(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} methodNode := &ast.StmtClassMethod{ - MethodName: &ast.Identifier{Value: []byte("A")}, + Name: &ast.Identifier{Value: []byte("A")}, Params: []ast.Vertex{ &ast.Parameter{ Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Var: &ast.ExprVariable{Name: &ast.Identifier{Value: []byte("foo")}}, }, }, ReturnType: &ast.Nullable{Expr: nameBC}, @@ -527,14 +527,14 @@ func TestResolveMethodName(t *testing.T) { } func TestResolveClosureName(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameBC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("B")}, &ast.NameNamePart{Value: []byte("C")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameBC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("B")}, &ast.NamePart{Value: []byte("C")}}} closureNode := &ast.ExprClosure{ Params: []ast.Vertex{ &ast.Parameter{ Type: nameAB, - Var: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Var: &ast.ExprVariable{Name: &ast.Identifier{Value: []byte("foo")}}, }, }, ReturnType: &ast.Nullable{Expr: nameBC}, @@ -553,7 +553,7 @@ func TestResolveClosureName(t *testing.T) { } func TestResolveConstantsName(t *testing.T) { - nameAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} constantB := &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("B")}, @@ -590,13 +590,13 @@ func TestResolveConstantsName(t *testing.T) { } func TestResolveNamespaces(t *testing.T) { - namespaceAB := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - namespaceCD := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("D")}}} + namespaceAB := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + namespaceCD := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("C")}, &ast.NamePart{Value: []byte("D")}}} - nameAC := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("C")}}} - nameCF := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("F")}}} - nameFG := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("F")}, &ast.NameNamePart{Value: []byte("G")}}} - relativeNameCE := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("C")}, &ast.NameNamePart{Value: []byte("E")}}} + nameAC := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("C")}}} + nameCF := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("C")}, &ast.NamePart{Value: []byte("F")}}} + nameFG := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("F")}, &ast.NamePart{Value: []byte("G")}}} + relativeNameCE := &ast.NameRelative{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("C")}, &ast.NamePart{Value: []byte("E")}}} constantB := &ast.StmtConstant{ Name: &ast.Identifier{Value: []byte("B")}, @@ -628,9 +628,9 @@ func TestResolveNamespaces(t *testing.T) { &ast.StmtNamespace{ Name: namespaceCD, Stmts: []ast.Vertex{ - &ast.StmtUse{ - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ + &ast.StmtUseList{ + Uses: []ast.Vertex{ + &ast.StmtUse{ Use: nameAC, }, }, @@ -666,7 +666,7 @@ func TestResolveStaticCallDinamicClassName(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.ExprStaticCall{ - Class: &ast.ExprVariable{VarName: &ast.Identifier{Value: []byte("foo")}}, + Class: &ast.ExprVariable{Name: &ast.Identifier{Value: []byte("foo")}}, Call: &ast.Identifier{Value: []byte("foo")}, }, }, @@ -681,23 +681,23 @@ func TestResolveStaticCallDinamicClassName(t *testing.T) { } func TestDoNotResolveReservedConstants(t *testing.T) { - namespaceName := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}} + namespaceName := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}} - constantTrue := &ast.NameName{ + constantTrue := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("True")}, + &ast.NamePart{Value: []byte("True")}, }, } - constantFalse := &ast.NameName{ + constantFalse := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("False")}, + &ast.NamePart{Value: []byte("False")}, }, } - constantNull := &ast.NameName{ + constantNull := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("NULL")}, + &ast.NamePart{Value: []byte("NULL")}, }, } @@ -738,91 +738,91 @@ func TestDoNotResolveReservedConstants(t *testing.T) { func TestDoNotResolveReservedNames(t *testing.T) { - nameInt := &ast.NameName{ + nameInt := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("int")}, + &ast.NamePart{Value: []byte("int")}, }, } - nameFloat := &ast.NameName{ + nameFloat := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("float")}, + &ast.NamePart{Value: []byte("float")}, }, } - nameBool := &ast.NameName{ + nameBool := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("bool")}, + &ast.NamePart{Value: []byte("bool")}, }, } - nameString := &ast.NameName{ + nameString := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("string")}, + &ast.NamePart{Value: []byte("string")}, }, } - nameVoid := &ast.NameName{ + nameVoid := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("void")}, + &ast.NamePart{Value: []byte("void")}, }, } - nameIterable := &ast.NameName{ + nameIterable := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("iterable")}, + &ast.NamePart{Value: []byte("iterable")}, }, } - nameObject := &ast.NameName{ + nameObject := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("object")}, + &ast.NamePart{Value: []byte("object")}, }, } function := &ast.StmtFunction{ - FunctionName: &ast.Identifier{Value: []byte("bar")}, + Name: &ast.Identifier{Value: []byte("bar")}, Params: []ast.Vertex{ &ast.Parameter{ Type: nameInt, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("Int")}, + Name: &ast.Identifier{Value: []byte("Int")}, }, }, &ast.Parameter{ Type: nameFloat, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("Float")}, + Name: &ast.Identifier{Value: []byte("Float")}, }, }, &ast.Parameter{ Type: nameBool, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("Bool")}, + Name: &ast.Identifier{Value: []byte("Bool")}, }, }, &ast.Parameter{ Type: nameString, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("String")}, + Name: &ast.Identifier{Value: []byte("String")}, }, }, &ast.Parameter{ Type: nameVoid, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("Void")}, + Name: &ast.Identifier{Value: []byte("Void")}, }, }, &ast.Parameter{ Type: nameIterable, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("Iterable")}, + Name: &ast.Identifier{Value: []byte("Iterable")}, }, }, &ast.Parameter{ Type: nameObject, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("Object")}, + Name: &ast.Identifier{Value: []byte("Object")}, }, }, }, @@ -831,9 +831,9 @@ func TestDoNotResolveReservedNames(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - Name: &ast.NameName{ + Name: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Foo")}, + &ast.NamePart{Value: []byte("Foo")}, }, }, }, @@ -860,26 +860,26 @@ func TestDoNotResolveReservedNames(t *testing.T) { func TestDoNotResolveReservedSpecialNames(t *testing.T) { - nameSelf := &ast.NameName{ + nameSelf := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Self")}, + &ast.NamePart{Value: []byte("Self")}, }, } - nameStatic := &ast.NameName{ + nameStatic := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Static")}, + &ast.NamePart{Value: []byte("Static")}, }, } - nameParent := &ast.NameName{ + nameParent := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Parent")}, + &ast.NamePart{Value: []byte("Parent")}, }, } cls := &ast.StmtClass{ - ClassName: &ast.Identifier{Value: []byte("Bar")}, + Name: &ast.Identifier{Value: []byte("Bar")}, Stmts: []ast.Vertex{ &ast.StmtExpression{ Expr: &ast.ExprStaticCall{ @@ -905,9 +905,9 @@ func TestDoNotResolveReservedSpecialNames(t *testing.T) { stxTree := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - Name: &ast.NameName{ + Name: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Foo")}, + &ast.NamePart{Value: []byte("Foo")}, }, }, }, @@ -928,9 +928,9 @@ func TestDoNotResolveReservedSpecialNames(t *testing.T) { assert.DeepEqual(t, expected, nsResolver.ResolvedNames) } func TestResolvePropertyTypeName(t *testing.T) { - nameSimple := &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameRelative := &ast.NameRelative{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} - nameFullyQualified := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("A")}, &ast.NameNamePart{Value: []byte("B")}}} + nameSimple := &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameRelative := &ast.NameRelative{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} + nameFullyQualified := &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("A")}, &ast.NamePart{Value: []byte("B")}}} propertyNodeSimple := &ast.StmtPropertyList{ Type: nameSimple, @@ -945,7 +945,7 @@ func TestResolvePropertyTypeName(t *testing.T) { } classNode := &ast.StmtClass{ - ClassName: &ast.Identifier{Value: []byte("Bar")}, + Name: &ast.Identifier{Value: []byte("Bar")}, Stmts: []ast.Vertex{ propertyNodeSimple, propertyNodeRelative, @@ -956,9 +956,9 @@ func TestResolvePropertyTypeName(t *testing.T) { stmts := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - Name: &ast.NameName{ + Name: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Foo")}, + &ast.NamePart{Value: []byte("Foo")}, }, }, }, diff --git a/pkg/visitor/null.go b/pkg/visitor/null.go index 2e15f24..e5edcc0 100644 --- a/pkg/visitor/null.go +++ b/pkg/visitor/null.go @@ -214,15 +214,15 @@ func (v *Null) StmtUnset(_ *ast.StmtUnset) { // do nothing } -func (v *Null) StmtUse(_ *ast.StmtUse) { +func (v *Null) StmtUse(_ *ast.StmtUseList) { // do nothing } -func (v *Null) StmtGroupUse(_ *ast.StmtGroupUse) { +func (v *Null) StmtGroupUse(_ *ast.StmtGroupUseList) { // do nothing } -func (v *Null) StmtUseDeclaration(_ *ast.StmtUseDeclaration) { +func (v *Null) StmtUseDeclaration(_ *ast.StmtUse) { // do nothing } @@ -626,7 +626,7 @@ func (v *Null) ScalarString(_ *ast.ScalarString) { // do nothing } -func (v *Null) NameName(_ *ast.NameName) { +func (v *Null) NameName(_ *ast.Name) { // do nothing } @@ -638,6 +638,6 @@ func (v *Null) NameRelative(_ *ast.NameRelative) { // do nothing } -func (v *Null) NameNamePart(_ *ast.NameNamePart) { +func (v *Null) NameNamePart(_ *ast.NamePart) { // do nothing } diff --git a/pkg/visitor/printer/printer.go b/pkg/visitor/printer/printer.go index fca712b..76e230e 100644 --- a/pkg/visitor/printer/printer.go +++ b/pkg/visitor/printer/printer.go @@ -190,10 +190,10 @@ func (p *printer) StmtCatch(n *ast.StmtCatch) { func (p *printer) StmtClass(n *ast.StmtClass) { p.printList(n.Modifiers) p.printToken(n.ClassTkn, []byte("class")) - p.printNode(n.ClassName) - p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("("))) - p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) - p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) + p.printNode(n.Name) + p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Args, []byte("("))) + p.printSeparatedList(n.Args, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Args, []byte(")"))) p.printToken(n.ExtendsTkn, p.ifNode(n.Extends, []byte("extends"))) p.printNode(n.Extends) p.printToken(n.ImplementsTkn, p.ifNodeList(n.Implements, []byte("implements"))) @@ -214,7 +214,7 @@ func (p *printer) StmtClassMethod(n *ast.StmtClassMethod) { p.printList(n.Modifiers) p.printToken(n.FunctionTkn, []byte("function")) p.printToken(n.AmpersandTkn, nil) - p.printNode(n.MethodName) + p.printNode(n.Name) p.printToken(n.OpenParenthesisTkn, []byte("(")) p.printSeparatedList(n.Params, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, []byte(")")) @@ -366,7 +366,7 @@ func (p *printer) StmtForeach(n *ast.StmtForeach) { func (p *printer) StmtFunction(n *ast.StmtFunction) { p.printToken(n.FunctionTkn, []byte("function")) p.printToken(n.AmpersandTkn, nil) - p.printNode(n.FunctionName) + p.printNode(n.Name) p.printToken(n.OpenParenthesisTkn, []byte("(")) p.printSeparatedList(n.Params, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, []byte(")")) @@ -427,7 +427,7 @@ func (p *printer) StmtInlineHtml(n *ast.StmtInlineHtml) { func (p *printer) StmtInterface(n *ast.StmtInterface) { p.printToken(n.InterfaceTkn, []byte("interface")) - p.printNode(n.InterfaceName) + p.printNode(n.Name) p.printToken(n.ExtendsTkn, p.ifNodeList(n.Extends, []byte("extends"))) p.printSeparatedList(n.Extends, n.ExtendsSeparatorTkns, []byte(",")) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) @@ -436,7 +436,7 @@ func (p *printer) StmtInterface(n *ast.StmtInterface) { } func (p *printer) StmtLabel(n *ast.StmtLabel) { - p.printNode(n.LabelName) + p.printNode(n.Name) p.printToken(n.ColonTkn, []byte(":")) } @@ -462,7 +462,7 @@ func (p *printer) StmtProperty(n *ast.StmtProperty) { func (p *printer) StmtPropertyList(n *ast.StmtPropertyList) { p.printList(n.Modifiers) p.printNode(n.Type) - p.printSeparatedList(n.Properties, n.SeparatorTkns, []byte(",")) + p.printSeparatedList(n.Props, n.SeparatorTkns, []byte(",")) p.printToken(n.SemiColonTkn, []byte(";")) } @@ -498,7 +498,7 @@ func (p *printer) StmtSwitch(n *ast.StmtSwitch) { p.printToken(n.ColonTkn, nil) p.printToken(n.OpenCurlyBracketTkn, p.ifNotToken(n.ColonTkn, []byte("{"))) p.printToken(n.CaseSeparatorTkn, nil) - p.printList(n.CaseList) + p.printList(n.Cases) p.printToken(n.CloseCurlyBracketTkn, p.ifNotToken(n.ColonTkn, []byte("}"))) p.printToken(n.EndSwitchTkn, p.ifToken(n.ColonTkn, []byte("endswitch"), nil)) p.printToken(n.SemiColonTkn, p.ifToken(n.ColonTkn, []byte(";"), nil)) @@ -512,7 +512,7 @@ func (p *printer) StmtThrow(n *ast.StmtThrow) { func (p *printer) StmtTrait(n *ast.StmtTrait) { p.printToken(n.TraitTkn, []byte("trait")) - p.printNode(n.TraitName) + p.printNode(n.Name) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) p.printList(n.Stmts) p.printToken(n.CloseCurlyBracketTkn, []byte("}")) @@ -563,26 +563,26 @@ func (p *printer) StmtUnset(n *ast.StmtUnset) { p.printToken(n.SemiColonTkn, []byte(";")) } -func (p *printer) StmtUse(n *ast.StmtUse) { +func (p *printer) StmtUse(n *ast.StmtUseList) { p.printToken(n.UseTkn, []byte("use")) p.printNode(n.Type) - p.printSeparatedList(n.UseDeclarations, n.SeparatorTkns, []byte(",")) + p.printSeparatedList(n.Uses, n.SeparatorTkns, []byte(",")) p.printToken(n.SemiColonTkn, []byte(";")) } -func (p *printer) StmtGroupUse(n *ast.StmtGroupUse) { +func (p *printer) StmtGroupUse(n *ast.StmtGroupUseList) { p.printToken(n.UseTkn, []byte("use")) p.printNode(n.Type) p.printToken(n.LeadingNsSeparatorTkn, nil) p.printNode(n.Prefix) p.printToken(n.NsSeparatorTkn, []byte("\\")) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) - p.printSeparatedList(n.UseDeclarations, n.SeparatorTkns, []byte(",")) + p.printSeparatedList(n.Uses, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseCurlyBracketTkn, []byte("}")) p.printToken(n.SemiColonTkn, []byte(";")) } -func (p *printer) StmtUseDeclaration(n *ast.StmtUseDeclaration) { +func (p *printer) StmtUseDeclaration(n *ast.StmtUse) { p.printNode(n.Type) p.printToken(n.NsSeparatorTkn, nil) p.printNode(n.Use) @@ -661,7 +661,7 @@ func (p *printer) ExprBrackets(n *ast.ExprBrackets) { func (p *printer) ExprClassConstFetch(n *ast.ExprClassConstFetch) { p.printNode(n.Class) p.printToken(n.DoubleColonTkn, []byte("::")) - p.printNode(n.ConstantName) + p.printNode(n.Const) } func (p *printer) ExprClone(n *ast.ExprClone) { @@ -676,10 +676,10 @@ func (p *printer) ExprClosure(n *ast.ExprClosure) { p.printToken(n.OpenParenthesisTkn, []byte("(")) p.printSeparatedList(n.Params, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, []byte(")")) - p.printToken(n.UseTkn, p.ifNodeList(n.Use, []byte("use"))) - p.printToken(n.UseOpenParenthesisTkn, p.ifNodeList(n.Use, []byte("("))) - p.printSeparatedList(n.Use, n.UseSeparatorTkns, []byte(",")) - p.printToken(n.UseCloseParenthesisTkn, p.ifNodeList(n.Use, []byte(")"))) + p.printToken(n.UseTkn, p.ifNodeList(n.Uses, []byte("use"))) + p.printToken(n.UseOpenParenthesisTkn, p.ifNodeList(n.Uses, []byte("("))) + p.printSeparatedList(n.Uses, n.UseSeparatorTkns, []byte(",")) + p.printToken(n.UseCloseParenthesisTkn, p.ifNodeList(n.Uses, []byte(")"))) p.printToken(n.ColonTkn, p.ifNode(n.ReturnType, []byte(":"))) p.printNode(n.ReturnType) p.printToken(n.OpenCurlyBracketTkn, []byte("{")) @@ -725,7 +725,7 @@ func (p *printer) ExprExit(n *ast.ExprExit) { func (p *printer) ExprFunctionCall(n *ast.ExprFunctionCall) { p.printNode(n.Function) p.printToken(n.OpenParenthesisTkn, []byte("(")) - p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) + p.printSeparatedList(n.Args, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, []byte(")")) } @@ -766,16 +766,16 @@ func (p *printer) ExprMethodCall(n *ast.ExprMethodCall) { p.printNode(n.Method) p.printToken(n.CloseCurlyBracketTkn, nil) p.printToken(n.OpenParenthesisTkn, []byte("(")) - p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) + p.printSeparatedList(n.Args, n.SeparatorTkns, []byte(",")) p.printToken(n.CloseParenthesisTkn, []byte(")")) } func (p *printer) ExprNew(n *ast.ExprNew) { p.printToken(n.NewTkn, []byte("new")) p.printNode(n.Class) - p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("("))) - p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) - p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) + p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Args, []byte("("))) + p.printSeparatedList(n.Args, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Args, []byte(")"))) } func (p *printer) ExprPostDec(n *ast.ExprPostDec) { @@ -807,7 +807,7 @@ func (p *printer) ExprPropertyFetch(n *ast.ExprPropertyFetch) { p.printNode(n.Var) p.printToken(n.ObjectOperatorTkn, []byte("->")) p.printToken(n.OpenCurlyBracketTkn, nil) - p.printNode(n.Property) + p.printNode(n.Prop) p.printToken(n.CloseCurlyBracketTkn, nil) } @@ -833,19 +833,19 @@ func (p *printer) ExprStaticCall(n *ast.ExprStaticCall) { p.printToken(n.OpenCurlyBracketTkn, nil) p.printNode(n.Call) p.printToken(n.CloseCurlyBracketTkn, nil) - p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Arguments, []byte("("))) - p.printSeparatedList(n.Arguments, n.SeparatorTkns, []byte(",")) - p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Arguments, []byte(")"))) + p.printToken(n.OpenParenthesisTkn, p.ifNodeList(n.Args, []byte("("))) + p.printSeparatedList(n.Args, n.SeparatorTkns, []byte(",")) + p.printToken(n.CloseParenthesisTkn, p.ifNodeList(n.Args, []byte(")"))) } func (p *printer) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { p.printNode(n.Class) p.printToken(n.DoubleColonTkn, []byte("::")) - p.printNode(n.Property) + p.printNode(n.Prop) } func (p *printer) ExprTernary(n *ast.ExprTernary) { - p.printNode(n.Condition) + p.printNode(n.Cond) p.printToken(n.QuestionTkn, []byte("?")) p.printNode(n.IfTrue) p.printToken(n.ColonTkn, []byte(":")) @@ -865,7 +865,7 @@ func (p *printer) ExprUnaryPlus(n *ast.ExprUnaryPlus) { func (p *printer) ExprVariable(n *ast.ExprVariable) { p.printToken(n.DollarTkn, nil) p.printToken(n.OpenCurlyBracketTkn, nil) - p.printNode(n.VarName) + p.printNode(n.Name) p.printToken(n.CloseCurlyBracketTkn, nil) } @@ -873,7 +873,7 @@ func (p *printer) ExprYield(n *ast.ExprYield) { p.printToken(n.YieldTkn, []byte("yield")) p.printNode(n.Key) p.printToken(n.DoubleArrowTkn, p.ifNode(n.Key, []byte("=>"))) - p.printNode(n.Value) + p.printNode(n.Val) } func (p *printer) ExprYieldFrom(n *ast.ExprYieldFrom) { @@ -1185,7 +1185,7 @@ func (p *printer) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { func (p *printer) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { p.printToken(n.DollarOpenCurlyBracketTkn, []byte("${")) - p.printNode(n.VarName) + p.printNode(n.Name) p.printToken(n.OpenSquareBracketTkn, p.ifNode(n.Dim, []byte("["))) p.printNode(n.Dim) p.printToken(n.CloseSquareBracketTkn, p.ifNode(n.Dim, []byte("]"))) @@ -1217,7 +1217,7 @@ func (p *printer) ScalarString(n *ast.ScalarString) { p.printToken(n.StringTkn, n.Value) } -func (p *printer) NameName(n *ast.NameName) { +func (p *printer) NameName(n *ast.Name) { p.printSeparatedList(n.Parts, n.SeparatorTkns, []byte("\\")) } @@ -1232,6 +1232,6 @@ func (p *printer) NameRelative(n *ast.NameRelative) { p.printSeparatedList(n.Parts, n.SeparatorTkns, []byte("\\")) } -func (p *printer) NameNamePart(n *ast.NameNamePart) { +func (p *printer) NameNamePart(n *ast.NamePart) { p.printToken(n.StringTkn, n.Value) } diff --git a/pkg/visitor/printer/printer_php7_test.go b/pkg/visitor/printer/printer_php7_test.go index e0e274c..1039390 100644 --- a/pkg/visitor/printer/printer_php7_test.go +++ b/pkg/visitor/printer/printer_php7_test.go @@ -36,8 +36,8 @@ abstract class Bar extends Baz // change namespace - parts := &rootNode.(*ast.Root).Stmts[0].(*ast.StmtNamespace).Name.(*ast.NameName).Parts - *parts = append(*parts, &ast.NameNamePart{Value: []byte("Quuz")}) + parts := &rootNode.(*ast.Root).Stmts[0].(*ast.StmtNamespace).Name.(*ast.Name).Parts + *parts = append(*parts, &ast.NamePart{Value: []byte("Quuz")}) // print diff --git a/pkg/visitor/printer/printer_test.go b/pkg/visitor/printer/printer_test.go index 41c8f66..83a1adf 100644 --- a/pkg/visitor/printer/printer_test.go +++ b/pkg/visitor/printer/printer_test.go @@ -16,28 +16,28 @@ func TestPrinterPrintFile(t *testing.T) { n := &ast.Root{ Stmts: []ast.Vertex{ &ast.StmtNamespace{ - Name: &ast.NameName{ + Name: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Foo")}, + &ast.NamePart{Value: []byte("Foo")}, }, }, }, &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, - ClassName: &ast.NameName{ + Name: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Bar")}, + &ast.NamePart{Value: []byte("Bar")}, }, }, - Extends: &ast.NameName{ + Extends: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{Value: []byte("Baz")}, + &ast.NamePart{Value: []byte("Baz")}, }, }, Stmts: []ast.Vertex{ &ast.StmtClassMethod{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - MethodName: &ast.Identifier{Value: []byte("greet")}, + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Name: &ast.Identifier{Value: []byte("greet")}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtEcho{ @@ -122,7 +122,7 @@ func TestPrinterPrintParameter(t *testing.T) { n := &ast.Parameter{ Type: &ast.NameFullyQualified{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Foo"), }, }, @@ -131,7 +131,7 @@ func TestPrinterPrintParameter(t *testing.T) { Value: []byte("..."), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, DefaultValue: &ast.ScalarString{ Value: []byte("'default'"), @@ -155,7 +155,7 @@ func TestPrinterPrintNullable(t *testing.T) { Expr: &ast.Parameter{ Type: &ast.NameFullyQualified{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Foo"), }, }, @@ -164,7 +164,7 @@ func TestPrinterPrintNullable(t *testing.T) { Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, DefaultValue: &ast.ScalarString{ Value: []byte("'default'"), @@ -190,7 +190,7 @@ func TestPrinterPrintArgument(t *testing.T) { Value: []byte("..."), }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -211,7 +211,7 @@ func TestPrinterPrintArgumentByRef(t *testing.T) { Value: []byte("&"), }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -230,7 +230,7 @@ func TestPrinterPrintNameNamePart(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) - n := &ast.NameNamePart{ + n := &ast.NamePart{ Value: []byte("foo"), } n.Accept(p) @@ -247,12 +247,12 @@ func TestPrinterPrintNameName(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) - n := &ast.NameName{ + n := &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Foo"), }, - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Bar"), }, }, @@ -273,10 +273,10 @@ func TestPrinterPrintNameFullyQualified(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.NameFullyQualified{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Foo"), }, - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Bar"), }, }, @@ -297,10 +297,10 @@ func TestPrinterPrintNameRelative(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.NameRelative{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Foo"), }, - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Bar"), }, }, @@ -393,7 +393,7 @@ func TestPrinterPrintScalarEncapsed(t *testing.T) { Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, &ast.ScalarEncapsedStringPart{Value: []byte(" world")}, }, @@ -416,7 +416,7 @@ func TestPrinterPrintScalarHeredoc(t *testing.T) { Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, &ast.ScalarEncapsedStringPart{Value: []byte(" world\n")}, }, @@ -455,10 +455,10 @@ func TestPrinterPrintAssign(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssign{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -477,10 +477,10 @@ func TestPrinterPrintReference(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignReference{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -499,10 +499,10 @@ func TestPrinterPrintAssignBitwiseAnd(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignBitwiseAnd{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -521,10 +521,10 @@ func TestPrinterPrintAssignBitwiseOr(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignBitwiseOr{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -543,10 +543,10 @@ func TestPrinterPrintAssignBitwiseXor(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignBitwiseXor{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -565,10 +565,10 @@ func TestPrinterPrintAssignCoalesce(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignCoalesce{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -587,10 +587,10 @@ func TestPrinterPrintAssignConcat(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignConcat{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -609,10 +609,10 @@ func TestPrinterPrintAssignDiv(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignDiv{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -631,10 +631,10 @@ func TestPrinterPrintAssignMinus(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignMinus{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -653,10 +653,10 @@ func TestPrinterPrintAssignMod(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignMod{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -675,10 +675,10 @@ func TestPrinterPrintAssignMul(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignMul{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -697,10 +697,10 @@ func TestPrinterPrintAssignPlus(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignPlus{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -719,10 +719,10 @@ func TestPrinterPrintAssignPow(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignPow{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -741,10 +741,10 @@ func TestPrinterPrintAssignShiftLeft(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignShiftLeft{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -763,10 +763,10 @@ func TestPrinterPrintAssignShiftRight(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprAssignShiftRight{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -787,10 +787,10 @@ func TestPrinterPrintBinaryBitwiseAnd(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBitwiseAnd{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -809,10 +809,10 @@ func TestPrinterPrintBinaryBitwiseOr(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBitwiseOr{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -831,10 +831,10 @@ func TestPrinterPrintBinaryBitwiseXor(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBitwiseXor{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -853,10 +853,10 @@ func TestPrinterPrintBinaryBooleanAnd(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBooleanAnd{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -875,10 +875,10 @@ func TestPrinterPrintBinaryBooleanOr(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryBooleanOr{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -897,10 +897,10 @@ func TestPrinterPrintBinaryCoalesce(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryCoalesce{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -919,10 +919,10 @@ func TestPrinterPrintBinaryConcat(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryConcat{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -941,10 +941,10 @@ func TestPrinterPrintBinaryDiv(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryDiv{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -963,10 +963,10 @@ func TestPrinterPrintBinaryEqual(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -985,10 +985,10 @@ func TestPrinterPrintBinaryGreaterOrEqual(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryGreaterOrEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1007,10 +1007,10 @@ func TestPrinterPrintBinaryGreater(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryGreater{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1029,10 +1029,10 @@ func TestPrinterPrintBinaryIdentical(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryIdentical{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1051,10 +1051,10 @@ func TestPrinterPrintBinaryLogicalAnd(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryLogicalAnd{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1073,10 +1073,10 @@ func TestPrinterPrintBinaryLogicalOr(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryLogicalOr{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1095,10 +1095,10 @@ func TestPrinterPrintBinaryLogicalXor(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryLogicalXor{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1117,10 +1117,10 @@ func TestPrinterPrintBinaryMinus(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryMinus{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1139,10 +1139,10 @@ func TestPrinterPrintBinaryMod(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryMod{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1161,10 +1161,10 @@ func TestPrinterPrintBinaryMul(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryMul{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1183,10 +1183,10 @@ func TestPrinterPrintBinaryNotEqual(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryNotEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1205,10 +1205,10 @@ func TestPrinterPrintBinaryNotIdentical(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryNotIdentical{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1227,10 +1227,10 @@ func TestPrinterPrintBinaryPlus(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryPlus{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1249,10 +1249,10 @@ func TestPrinterPrintBinaryPow(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryPow{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1271,10 +1271,10 @@ func TestPrinterPrintBinaryShiftLeft(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryShiftLeft{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1293,10 +1293,10 @@ func TestPrinterPrintBinaryShiftRight(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinaryShiftRight{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1315,10 +1315,10 @@ func TestPrinterPrintBinarySmallerOrEqual(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinarySmallerOrEqual{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1337,10 +1337,10 @@ func TestPrinterPrintBinarySmaller(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinarySmaller{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1359,10 +1359,10 @@ func TestPrinterPrintBinarySpaceship(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBinarySpaceship{ Left: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Right: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -1383,7 +1383,7 @@ func TestPrinterPrintArray(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastArray{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1402,7 +1402,7 @@ func TestPrinterPrintBool(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastBool{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1421,7 +1421,7 @@ func TestPrinterPrintDouble(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastDouble{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1440,7 +1440,7 @@ func TestPrinterPrintInt(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastInt{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1459,7 +1459,7 @@ func TestPrinterPrintObject(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastObject{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1478,7 +1478,7 @@ func TestPrinterPrintString(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastString{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1497,7 +1497,7 @@ func TestPrinterPrintUnset(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprCastUnset{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1518,7 +1518,7 @@ func TestPrinterPrintExprArrayDimFetch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArrayDimFetch{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, Dim: &ast.ScalarLnumber{Value: []byte("1")}, } @@ -1539,7 +1539,7 @@ func TestPrinterPrintExprArrayItemWithKey(t *testing.T) { n := &ast.ExprArrayItem{ Key: &ast.ScalarString{Value: []byte("'Hello'")}, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$world")}, + Name: &ast.Identifier{Value: []byte("$world")}, }, } n.Accept(p) @@ -1558,7 +1558,7 @@ func TestPrinterPrintExprArrayItem(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$world")}, + Name: &ast.Identifier{Value: []byte("$world")}, }, } n.Accept(p) @@ -1580,7 +1580,7 @@ func TestPrinterPrintExprArrayItem_Reference(t *testing.T) { Value: []byte("&"), }, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$world")}, + Name: &ast.Identifier{Value: []byte("$world")}, }, } n.Accept(p) @@ -1602,7 +1602,7 @@ func TestPrinterPrintExprArrayItemUnpack(t *testing.T) { Value: []byte("..."), }, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$world")}, + Name: &ast.Identifier{Value: []byte("$world")}, }, } n.Accept(p) @@ -1627,7 +1627,7 @@ func TestPrinterPrintExprArray(t *testing.T) { &ast.ExprArrayItem{ Key: &ast.ScalarString{Value: []byte("'Hello'")}, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$world")}, + Name: &ast.Identifier{Value: []byte("$world")}, }, }, &ast.ExprArrayItem{ @@ -1636,12 +1636,12 @@ func TestPrinterPrintExprArray(t *testing.T) { Value: []byte("&"), }, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, }, }, @@ -1662,7 +1662,7 @@ func TestPrinterPrintExprBitwiseNot(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBitwiseNot{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1681,7 +1681,7 @@ func TestPrinterPrintExprBooleanNot(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBooleanNot{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1700,7 +1700,7 @@ func TestPrinterPrintExprBracket(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprBooleanNot{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1719,9 +1719,9 @@ func TestPrinterPrintExprClassConstFetch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClassConstFetch{ Class: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, - ConstantName: &ast.Identifier{ + Const: &ast.Identifier{ Value: []byte("CONST"), }, } @@ -1741,7 +1741,7 @@ func TestPrinterPrintExprClone(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClone{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1760,7 +1760,7 @@ func TestPrinterPrintExprClosureUse(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprClosureUse{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$foo")}, + Name: &ast.Identifier{Value: []byte("$foo")}, }, } n.Accept(p) @@ -1782,7 +1782,7 @@ func TestPrinterPrintExprClosureUse_Reference(t *testing.T) { Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$foo")}, + Name: &ast.Identifier{Value: []byte("$foo")}, }, } n.Accept(p) @@ -1809,31 +1809,31 @@ func TestPrinterPrintExprClosure(t *testing.T) { Params: []ast.Vertex{ &ast.Parameter{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, }, }, - Use: []ast.Vertex{ + Uses: []ast.Vertex{ &ast.ExprClosureUse{ AmpersandTkn: &token.Token{ Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.ExprClosureUse{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, ReturnType: &ast.NameFullyQualified{ - Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}, + Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}, }, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, } @@ -1865,15 +1865,15 @@ func TestPrinterPrintExprArrowFunction(t *testing.T) { Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, }, }, ReturnType: &ast.NameFullyQualified{ - Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}, + Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}, }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, } @@ -1892,7 +1892,7 @@ func TestPrinterPrintExprConstFetch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprConstFetch{ - Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}, + Const: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("null")}}}, } n.Accept(p) @@ -1910,7 +1910,7 @@ func TestPrinterPrintEmpty(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprEmpty{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1929,7 +1929,7 @@ func TestPrinterPrettyPrinterrorSuppress(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprErrorSuppress{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1948,7 +1948,7 @@ func TestPrinterPrintEval(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprEval{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1967,7 +1967,7 @@ func TestPrinterPrintExit(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprExit{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -1989,7 +1989,7 @@ func TestPrinterPrintDie(t *testing.T) { Value: []byte("die"), }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2008,15 +2008,15 @@ func TestPrinterPrintFunctionCall(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprFunctionCall{ Function: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ AmpersandTkn: &token.Token{ Value: []byte("&"), }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.Argument{ @@ -2024,12 +2024,12 @@ func TestPrinterPrintFunctionCall(t *testing.T) { Value: []byte("..."), }, Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, }, }, @@ -2084,9 +2084,9 @@ func TestPrinterPrintInstanceOf(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprInstanceOf{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, - Class: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Class: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, } n.Accept(p) @@ -2105,10 +2105,10 @@ func TestPrinterPrintIsset(t *testing.T) { n := &ast.ExprIsset{ Vars: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, } @@ -2130,7 +2130,7 @@ func TestPrinterPrintList(t *testing.T) { Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.ExprArrayItem{ @@ -2138,12 +2138,12 @@ func TestPrinterPrintList(t *testing.T) { Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, }, }, @@ -2167,18 +2167,18 @@ func TestPrinterPrintMethodCall(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprMethodCall{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$foo")}, + Name: &ast.Identifier{Value: []byte("$foo")}, }, Method: &ast.Identifier{Value: []byte("bar")}, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -2198,22 +2198,22 @@ func TestPrinterPrintNew(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprNew{ - Class: &ast.NameName{ + Class: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Foo"), }, }, }, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -2234,7 +2234,7 @@ func TestPrinterPrintPostDec(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPostDec{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2253,7 +2253,7 @@ func TestPrinterPrintPostInc(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPostInc{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2272,7 +2272,7 @@ func TestPrinterPrintPreDec(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPreDec{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2291,7 +2291,7 @@ func TestPrinterPrintPreInc(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPreInc{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2310,7 +2310,7 @@ func TestPrinterPrintPrint(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPrint{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2329,9 +2329,9 @@ func TestPrinterPrintPropertyFetch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprPropertyFetch{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$foo")}, + Name: &ast.Identifier{Value: []byte("$foo")}, }, - Property: &ast.Identifier{Value: []byte("bar")}, + Prop: &ast.Identifier{Value: []byte("bar")}, } n.Accept(p) @@ -2385,7 +2385,7 @@ func TestPrinterPrintShellExec(t *testing.T) { Parts: []ast.Vertex{ &ast.ScalarEncapsedStringPart{Value: []byte("hello ")}, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$world")}, + Name: &ast.Identifier{Value: []byte("$world")}, }, &ast.ScalarEncapsedStringPart{Value: []byte("!")}, }, @@ -2409,7 +2409,7 @@ func TestPrinterPrintExprShortArray(t *testing.T) { &ast.ExprArrayItem{ Key: &ast.ScalarString{Value: []byte("'Hello'")}, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$world")}, + Name: &ast.Identifier{Value: []byte("$world")}, }, }, &ast.ExprArrayItem{ @@ -2418,12 +2418,12 @@ func TestPrinterPrintExprShortArray(t *testing.T) { Value: []byte("&"), }, Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, }, }, @@ -2449,7 +2449,7 @@ func TestPrinterPrintShortList(t *testing.T) { Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.ExprArrayItem{ @@ -2457,12 +2457,12 @@ func TestPrinterPrintShortList(t *testing.T) { Items: []ast.Vertex{ &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, &ast.ExprArrayItem{ Val: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, }, }, @@ -2490,15 +2490,15 @@ func TestPrinterPrintStaticCall(t *testing.T) { n := &ast.ExprStaticCall{ Class: &ast.Identifier{Value: []byte("Foo")}, Call: &ast.Identifier{Value: []byte("bar")}, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -2519,8 +2519,8 @@ func TestPrinterPrintStaticPropertyFetch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprStaticPropertyFetch{ Class: &ast.Identifier{Value: []byte("Foo")}, - Property: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$bar")}, + Prop: &ast.ExprVariable{ + Name: &ast.Identifier{Value: []byte("$bar")}, }, } n.Accept(p) @@ -2538,11 +2538,11 @@ func TestPrinterPrintTernary(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprTernary{ - Condition: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Cond: &ast.ExprVariable{ + Name: &ast.Identifier{Value: []byte("$a")}, }, IfFalse: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, } n.Accept(p) @@ -2560,14 +2560,14 @@ func TestPrinterPrintTernaryFull(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprTernary{ - Condition: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Cond: &ast.ExprVariable{ + Name: &ast.Identifier{Value: []byte("$a")}, }, IfTrue: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, IfFalse: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, } n.Accept(p) @@ -2586,7 +2586,7 @@ func TestPrinterPrintUnaryMinus(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprUnaryMinus{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2605,7 +2605,7 @@ func TestPrinterPrintUnaryPlus(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprUnaryPlus{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2629,8 +2629,8 @@ func TestPrinterPrintVariable(t *testing.T) { OpenCurlyBracketTkn: &token.Token{ Value: []byte("{"), }, - VarName: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.ExprVariable{ + Name: &ast.Identifier{Value: []byte("$var")}, }, CloseCurlyBracketTkn: &token.Token{ Value: []byte("}"), @@ -2652,7 +2652,7 @@ func TestPrinterPrintYieldFrom(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprYieldFrom{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2670,8 +2670,8 @@ func TestPrinterPrintYield(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprYield{ - Value: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Val: &ast.ExprVariable{ + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2690,10 +2690,10 @@ func TestPrinterPrintYieldFull(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.ExprYield{ Key: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$k")}, + Name: &ast.Identifier{Value: []byte("$k")}, }, - Value: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Val: &ast.ExprVariable{ + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -2714,7 +2714,7 @@ func TestPrinterPrintAltElseIf(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -2722,7 +2722,7 @@ func TestPrinterPrintAltElseIf(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, @@ -2743,7 +2743,7 @@ func TestPrinterPrintAltElseIfEmpty(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -2771,7 +2771,7 @@ func TestPrinterPrintAltElse(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, @@ -2813,17 +2813,17 @@ func TestPrinterPrintAltFor(t *testing.T) { n := &ast.StmtFor{ Init: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, Cond: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, Loop: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, }, ColonTkn: &token.Token{ @@ -2832,7 +2832,7 @@ func TestPrinterPrintAltFor(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$d")}, + Name: &ast.Identifier{Value: []byte("$d")}, }}, }, }, @@ -2853,13 +2853,13 @@ func TestPrinterPrintAltForeach(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, Key: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$key")}, + Name: &ast.Identifier{Value: []byte("$key")}, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$val")}, + Name: &ast.Identifier{Value: []byte("$val")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -2867,7 +2867,7 @@ func TestPrinterPrintAltForeach(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$d")}, + Name: &ast.Identifier{Value: []byte("$d")}, }}, }, }, @@ -2888,16 +2888,16 @@ func TestPrinterPrintAltForeach_Reference(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, Key: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$key")}, + Name: &ast.Identifier{Value: []byte("$key")}, }, AmpersandTkn: &token.Token{ Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$val")}, + Name: &ast.Identifier{Value: []byte("$val")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -2905,7 +2905,7 @@ func TestPrinterPrintAltForeach_Reference(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$d")}, + Name: &ast.Identifier{Value: []byte("$d")}, }}, }, }, @@ -2926,7 +2926,7 @@ func TestPrinterPrintAltIf(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -2934,14 +2934,14 @@ func TestPrinterPrintAltIf(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$d")}, + Name: &ast.Identifier{Value: []byte("$d")}, }}, }, }, ElseIf: []ast.Vertex{ &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -2949,14 +2949,14 @@ func TestPrinterPrintAltIf(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, }, &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -2971,7 +2971,7 @@ func TestPrinterPrintAltIf(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, @@ -2993,17 +2993,17 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtSwitch{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, ColonTkn: &token.Token{ Value: []byte(":"), }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Cond: &ast.ScalarString{Value: []byte("'a'")}, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, }, @@ -3011,7 +3011,7 @@ func TestPrinterPrintStmtAltSwitch(t *testing.T) { Cond: &ast.ScalarString{Value: []byte("'b'")}, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, @@ -3033,7 +3033,7 @@ func TestPrinterPrintAltWhile(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtWhile{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, ColonTkn: &token.Token{ Value: []byte(":"), @@ -3041,7 +3041,7 @@ func TestPrinterPrintAltWhile(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, @@ -3081,11 +3081,11 @@ func TestPrinterPrintStmtCase(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtCase{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, } @@ -3105,7 +3105,7 @@ func TestPrinterPrintStmtCaseEmpty(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtCase{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmts: []ast.Vertex{}, } @@ -3125,15 +3125,15 @@ func TestPrinterPrintStmtCatch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtCatch{ Types: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, - &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("RuntimeException")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Exception")}}}, + &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("RuntimeException")}}}, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$e")}, + Name: &ast.Identifier{Value: []byte("$e")}, }, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, } @@ -3156,34 +3156,34 @@ func TestPrinterPrintStmtClassMethod(t *testing.T) { AmpersandTkn: &token.Token{ Value: []byte("&"), }, - MethodName: &ast.Identifier{Value: []byte("foo")}, + Name: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ - Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, + Type: &ast.Nullable{Expr: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("int")}}}}, AmpersandTkn: &token.Token{ Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, - DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, + DefaultValue: &ast.ExprConstFetch{Const: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("null")}}}}, }, &ast.Parameter{ VariadicTkn: &token.Token{ Value: []byte("..."), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, - ReturnType: &ast.NameName{ - Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}, + ReturnType: &ast.Name{ + Parts: []ast.Vertex{&ast.NamePart{Value: []byte("void")}}, }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, }, @@ -3210,29 +3210,29 @@ func TestPrinterPrintStmtAbstractClassMethod(t *testing.T) { AmpersandTkn: &token.Token{ Value: []byte("&"), }, - MethodName: &ast.Identifier{Value: []byte("foo")}, + Name: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ - Type: &ast.Nullable{Expr: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("int")}}}}, + Type: &ast.Nullable{Expr: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("int")}}}}, AmpersandTkn: &token.Token{ Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, - DefaultValue: &ast.ExprConstFetch{Const: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("null")}}}}, + DefaultValue: &ast.ExprConstFetch{Const: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("null")}}}}, }, &ast.Parameter{ VariadicTkn: &token.Token{ Value: []byte("..."), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, - ReturnType: &ast.NameName{ - Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("void")}}, + ReturnType: &ast.Name{ + Parts: []ast.Vertex{&ast.NamePart{Value: []byte("void")}}, }, Stmt: &ast.StmtNop{}, } @@ -3252,11 +3252,11 @@ func TestPrinterPrintStmtClass(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, - ClassName: &ast.Identifier{Value: []byte("Foo")}, - Extends: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + Name: &ast.Identifier{Value: []byte("Foo")}, + Extends: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Bar")}}}, Implements: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Baz")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Quuz")}}}, }, Stmts: []ast.Vertex{ &ast.StmtClassConstList{ @@ -3289,22 +3289,22 @@ func TestPrinterPrintStmtAnonymousClass(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtClass{ Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("abstract")}}, - Arguments: []ast.Vertex{ + Args: []ast.Vertex{ &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.Argument{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, - Extends: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + Extends: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Bar")}}}, Implements: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Quuz")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Baz")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Quuz")}}}, }, Stmts: []ast.Vertex{ &ast.StmtClassConstList{ @@ -3498,7 +3498,7 @@ func TestPrinterPrintStmtDefalut(t *testing.T) { n := &ast.StmtDefault{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, } @@ -3537,7 +3537,7 @@ func TestPrinterPrintStmtDo_Expression(t *testing.T) { Cond: &ast.ScalarLnumber{Value: []byte("1")}, Stmt: &ast.StmtExpression{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, } @@ -3560,7 +3560,7 @@ func TestPrinterPrintStmtDo_StmtList(t *testing.T) { Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, }, @@ -3584,10 +3584,10 @@ func TestPrinterPrintStmtEchoHtmlState(t *testing.T) { &ast.StmtEcho{ Exprs: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -3610,10 +3610,10 @@ func TestPrinterPrintStmtEchoPhpState(t *testing.T) { n := &ast.StmtEcho{ Exprs: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, } @@ -3633,7 +3633,7 @@ func TestPrinterPrintStmtElseIfStmts(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -3657,7 +3657,7 @@ func TestPrinterPrintStmtElseIfExpr(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtExpression{Expr: &ast.ScalarString{Value: []byte("'bar'")}}, } @@ -3677,7 +3677,7 @@ func TestPrinterPrintStmtElseIfNop(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtNop{}, } @@ -3752,7 +3752,7 @@ func TestPrinterPrintExpression(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtExpression{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, } n.Accept(p) @@ -3791,26 +3791,26 @@ func TestPrinterPrintStmtFor(t *testing.T) { n := &ast.StmtFor{ Init: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, Cond: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$d")}, + Name: &ast.Identifier{Value: []byte("$d")}, }, }, Loop: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$e")}, + Name: &ast.Identifier{Value: []byte("$e")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$f")}, + Name: &ast.Identifier{Value: []byte("$f")}, }, }, Stmt: &ast.StmtStmtList{ @@ -3835,13 +3835,13 @@ func TestPrinterPrintStmtForeach(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Key: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$k")}, + Name: &ast.Identifier{Value: []byte("$k")}, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$v")}, + Name: &ast.Identifier{Value: []byte("$v")}, }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -3865,16 +3865,16 @@ func TestPrinterPrintStmtForeach_Reference(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtForeach{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Key: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$k")}, + Name: &ast.Identifier{Value: []byte("$k")}, }, AmpersandTkn: &token.Token{ Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$v")}, + Name: &ast.Identifier{Value: []byte("$v")}, }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ @@ -3900,19 +3900,19 @@ func TestPrinterPrintStmtFunction(t *testing.T) { AmpersandTkn: &token.Token{ Value: []byte("&"), }, - FunctionName: &ast.Identifier{Value: []byte("foo")}, + Name: &ast.Identifier{Value: []byte("foo")}, Params: []ast.Vertex{ &ast.Parameter{ AmpersandTkn: &token.Token{ Value: []byte("&"), }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, }, }, ReturnType: &ast.NameFullyQualified{ - Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}, + Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}, }, Stmts: []ast.Vertex{ &ast.StmtNop{}, @@ -3935,10 +3935,10 @@ func TestPrinterPrintStmtGlobal(t *testing.T) { n := &ast.StmtGlobal{ Vars: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, } @@ -3990,23 +3990,23 @@ func TestPrinterPrintIfExpression(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtExpression{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, ElseIf: []ast.Vertex{ &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$d")}, + Name: &ast.Identifier{Value: []byte("$d")}, }, }, }, @@ -4014,7 +4014,7 @@ func TestPrinterPrintIfExpression(t *testing.T) { }, &ast.StmtElseIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$e")}, + Name: &ast.Identifier{Value: []byte("$e")}, }, Stmt: &ast.StmtNop{}, }, @@ -4022,7 +4022,7 @@ func TestPrinterPrintIfExpression(t *testing.T) { Else: &ast.StmtElse{ Stmt: &ast.StmtExpression{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$f")}, + Name: &ast.Identifier{Value: []byte("$f")}, }, }, }, @@ -4043,13 +4043,13 @@ func TestPrinterPrintIfStmtList(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -4071,7 +4071,7 @@ func TestPrinterPrintIfNop(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtIf{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtNop{}, } @@ -4111,20 +4111,20 @@ func TestPrinterPrintInterface(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtInterface{ - InterfaceName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Name: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Extends: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Bar")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Baz")}}}, }, Stmts: []ast.Vertex{ &ast.StmtClassMethod{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - MethodName: &ast.Identifier{Value: []byte("foo")}, - Params: []ast.Vertex{}, + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Name: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, }, @@ -4146,7 +4146,7 @@ func TestPrinterPrintLabel(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtLabel{ - LabelName: &ast.Identifier{Value: []byte("FOO")}, + Name: &ast.Identifier{Value: []byte("FOO")}, } n.Accept(p) @@ -4163,7 +4163,7 @@ func TestPrinterPrintNamespace(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtNamespace{ - Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Name: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, } n.Accept(p) @@ -4180,10 +4180,10 @@ func TestPrinterPrintNamespaceWithStmts(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtNamespace{ - Name: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Name: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, } @@ -4221,23 +4221,23 @@ func TestPrinterPrintPropertyList(t *testing.T) { &ast.Identifier{Value: []byte("public")}, &ast.Identifier{Value: []byte("static")}, }, - Type: &ast.NameName{ + Type: &ast.Name{ Parts: []ast.Vertex{ - &ast.NameNamePart{ + &ast.NamePart{ Value: []byte("Foo"), }, }, }, - Properties: []ast.Vertex{ + Props: []ast.Vertex{ &ast.StmtProperty{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ScalarString{Value: []byte("'a'")}, }, &ast.StmtProperty{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -4258,7 +4258,7 @@ func TestPrinterPrintProperty(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtProperty{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ScalarLnumber{Value: []byte("1")}, } @@ -4295,7 +4295,7 @@ func TestPrinterPrintStaticVar(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtStaticVar{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Expr: &ast.ScalarLnumber{Value: []byte("1")}, } @@ -4317,12 +4317,12 @@ func TestPrinterPrintStatic(t *testing.T) { Vars: []ast.Vertex{ &ast.StmtStaticVar{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, }, &ast.StmtStaticVar{ Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, }, @@ -4344,10 +4344,10 @@ func TestPrinterPrintStmtList(t *testing.T) { n := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, } @@ -4368,17 +4368,17 @@ func TestPrinterPrintStmtListNested(t *testing.T) { n := &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$c")}, + Name: &ast.Identifier{Value: []byte("$c")}, }}, }, }, @@ -4402,14 +4402,14 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtSwitch{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, - CaseList: []ast.Vertex{ + Cases: []ast.Vertex{ &ast.StmtCase{ Cond: &ast.ScalarString{Value: []byte("'a'")}, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, }, @@ -4417,7 +4417,7 @@ func TestPrinterPrintStmtSwitch(t *testing.T) { Cond: &ast.ScalarString{Value: []byte("'b'")}, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, @@ -4439,7 +4439,7 @@ func TestPrinterPrintStmtThrow(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtThrow{ Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$var")}, + Name: &ast.Identifier{Value: []byte("$var")}, }, } n.Accept(p) @@ -4457,7 +4457,7 @@ func TestPrinterPrintStmtTraitUseAlias(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUseAlias{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Trait: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, Modifier: &ast.Identifier{Value: []byte("public")}, Alias: &ast.Identifier{Value: []byte("b")}, @@ -4477,11 +4477,11 @@ func TestPrinterPrintStmtTraitUsePrecedence(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUsePrecedence{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Trait: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, Insteadof: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Bar")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Baz")}}}, }, } n.Accept(p) @@ -4500,8 +4500,8 @@ func TestPrinterPrintStmtTraitUse(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Bar")}}}, }, } n.Accept(p) @@ -4520,12 +4520,12 @@ func TestPrinterPrintStmtTraitAdaptations(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTraitUse{ Traits: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Bar")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Bar")}}}, }, Adaptations: []ast.Vertex{ &ast.StmtTraitUseAlias{ - Trait: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Trait: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Method: &ast.Identifier{Value: []byte("a")}, Alias: &ast.Identifier{Value: []byte("b")}, }, @@ -4546,16 +4546,16 @@ func TestPrinterPrintTrait(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtTrait{ - TraitName: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Name: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Stmts: []ast.Vertex{ &ast.StmtClassMethod{ - Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, - MethodName: &ast.Identifier{Value: []byte("foo")}, - Params: []ast.Vertex{}, + Modifiers: []ast.Vertex{&ast.Identifier{Value: []byte("public")}}, + Name: &ast.Identifier{Value: []byte("foo")}, + Params: []ast.Vertex{}, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, }, @@ -4579,21 +4579,21 @@ func TestPrinterPrintStmtTry(t *testing.T) { n := &ast.StmtTry{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, Catches: []ast.Vertex{ &ast.StmtCatch{ Types: []ast.Vertex{ - &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Exception")}}}, - &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("RuntimeException")}}}, + &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Exception")}}}, + &ast.NameFullyQualified{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("RuntimeException")}}}, }, Var: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$e")}, + Name: &ast.Identifier{Value: []byte("$e")}, }, Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }}, }, }, @@ -4621,10 +4621,10 @@ func TestPrinterPrintStmtUnset(t *testing.T) { n := &ast.StmtUnset{ Vars: []ast.Vertex{ &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$b")}, + Name: &ast.Identifier{Value: []byte("$b")}, }, }, } @@ -4642,15 +4642,15 @@ func TestPrinterPrintUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) - n := &ast.StmtUse{ + n := &ast.StmtUseList{ Type: &ast.Identifier{Value: []byte("function")}, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Alias: &ast.Identifier{Value: []byte("Bar")}, }, - &ast.StmtUseDeclaration{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.StmtUse{ + Use: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Baz")}}}, }, }, } @@ -4668,16 +4668,16 @@ func TestPrinterPrintStmtGroupUse(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) - n := &ast.StmtGroupUse{ + n := &ast.StmtGroupUseList{ Type: &ast.Identifier{Value: []byte("function")}, - Prefix: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, - UseDeclarations: []ast.Vertex{ - &ast.StmtUseDeclaration{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Prefix: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, + Uses: []ast.Vertex{ + &ast.StmtUse{ + Use: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Alias: &ast.Identifier{Value: []byte("Bar")}, }, - &ast.StmtUseDeclaration{ - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Baz")}}}, + &ast.StmtUse{ + Use: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Baz")}}}, }, }, } @@ -4695,9 +4695,9 @@ func TestPrinterPrintUseDeclaration(t *testing.T) { o := bytes.NewBufferString("") p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) - n := &ast.StmtUseDeclaration{ + n := &ast.StmtUse{ Type: &ast.Identifier{Value: []byte("function")}, - Use: &ast.NameName{Parts: []ast.Vertex{&ast.NameNamePart{Value: []byte("Foo")}}}, + Use: &ast.Name{Parts: []ast.Vertex{&ast.NamePart{Value: []byte("Foo")}}}, Alias: &ast.Identifier{Value: []byte("Bar")}, } n.Accept(p) @@ -4716,12 +4716,12 @@ func TestPrinterPrintWhileStmtList(t *testing.T) { p := printer.NewPrinter(o).WithState(printer.PrinterStatePHP) n := &ast.StmtWhile{ Cond: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }, Stmt: &ast.StmtStmtList{ Stmts: []ast.Vertex{ &ast.StmtExpression{Expr: &ast.ExprVariable{ - VarName: &ast.Identifier{Value: []byte("$a")}, + Name: &ast.Identifier{Value: []byte("$a")}, }}, }, }, diff --git a/pkg/visitor/traverser/traverser.go b/pkg/visitor/traverser/traverser.go index 128f7ea..8cc0e30 100644 --- a/pkg/visitor/traverser/traverser.go +++ b/pkg/visitor/traverser/traverser.go @@ -85,8 +85,8 @@ func (t *Traverser) StmtClass(n *ast.StmtClass) { for _, nn := range n.Modifiers { nn.Accept(t) } - t.Traverse(n.ClassName) - for _, nn := range n.Arguments { + t.Traverse(n.Name) + for _, nn := range n.Args { nn.Accept(t) } t.Traverse(n.Extends) @@ -115,7 +115,7 @@ func (t *Traverser) StmtClassMethod(n *ast.StmtClassMethod) { for _, nn := range n.Modifiers { nn.Accept(t) } - t.Traverse(n.MethodName) + t.Traverse(n.Name) for _, nn := range n.Params { nn.Accept(t) } @@ -230,7 +230,7 @@ func (t *Traverser) StmtForeach(n *ast.StmtForeach) { func (t *Traverser) StmtFunction(n *ast.StmtFunction) { n.Accept(t.v) - t.Traverse(n.FunctionName) + t.Traverse(n.Name) for _, nn := range n.Params { nn.Accept(t) } @@ -276,7 +276,7 @@ func (t *Traverser) StmtInlineHtml(n *ast.StmtInlineHtml) { func (t *Traverser) StmtInterface(n *ast.StmtInterface) { n.Accept(t.v) - t.Traverse(n.InterfaceName) + t.Traverse(n.Name) for _, nn := range n.Extends { nn.Accept(t) } @@ -288,7 +288,7 @@ func (t *Traverser) StmtInterface(n *ast.StmtInterface) { func (t *Traverser) StmtLabel(n *ast.StmtLabel) { n.Accept(t.v) - t.Traverse(n.LabelName) + t.Traverse(n.Name) } func (t *Traverser) StmtNamespace(n *ast.StmtNamespace) { @@ -318,7 +318,7 @@ func (t *Traverser) StmtPropertyList(n *ast.StmtPropertyList) { nn.Accept(t) } t.Traverse(n.Type) - for _, nn := range n.Properties { + for _, nn := range n.Props { nn.Accept(t) } } @@ -356,7 +356,7 @@ func (t *Traverser) StmtSwitch(n *ast.StmtSwitch) { n.Accept(t.v) t.Traverse(n.Cond) - for _, nn := range n.CaseList { + for _, nn := range n.Cases { nn.Accept(t) } } @@ -370,7 +370,7 @@ func (t *Traverser) StmtThrow(n *ast.StmtThrow) { func (t *Traverser) StmtTrait(n *ast.StmtTrait) { n.Accept(t.v) - t.Traverse(n.TraitName) + t.Traverse(n.Name) for _, nn := range n.Stmts { nn.Accept(t) } @@ -426,26 +426,26 @@ func (t *Traverser) StmtUnset(n *ast.StmtUnset) { } } -func (t *Traverser) StmtUse(n *ast.StmtUse) { +func (t *Traverser) StmtUse(n *ast.StmtUseList) { n.Accept(t.v) t.Traverse(n.Type) - for _, nn := range n.UseDeclarations { + for _, nn := range n.Uses { nn.Accept(t) } } -func (t *Traverser) StmtGroupUse(n *ast.StmtGroupUse) { +func (t *Traverser) StmtGroupUse(n *ast.StmtGroupUseList) { n.Accept(t.v) t.Traverse(n.Type) t.Traverse(n.Prefix) - for _, nn := range n.UseDeclarations { + for _, nn := range n.Uses { nn.Accept(t) } } -func (t *Traverser) StmtUseDeclaration(n *ast.StmtUseDeclaration) { +func (t *Traverser) StmtUseDeclaration(n *ast.StmtUse) { n.Accept(t.v) t.Traverse(n.Type) @@ -514,7 +514,7 @@ func (t *Traverser) ExprClassConstFetch(n *ast.ExprClassConstFetch) { n.Accept(t.v) t.Traverse(n.Class) - t.Traverse(n.ConstantName) + t.Traverse(n.Const) } func (t *Traverser) ExprClone(n *ast.ExprClone) { @@ -529,7 +529,7 @@ func (t *Traverser) ExprClosure(n *ast.ExprClosure) { for _, nn := range n.Params { nn.Accept(t) } - for _, nn := range n.Use { + for _, nn := range n.Uses { nn.Accept(t) } t.Traverse(n.ReturnType) @@ -578,7 +578,7 @@ func (t *Traverser) ExprFunctionCall(n *ast.ExprFunctionCall) { n.Accept(t.v) t.Traverse(n.Function) - for _, nn := range n.Arguments { + for _, nn := range n.Args { nn.Accept(t) } } @@ -623,7 +623,7 @@ func (t *Traverser) ExprMethodCall(n *ast.ExprMethodCall) { t.Traverse(n.Var) t.Traverse(n.Method) - for _, nn := range n.Arguments { + for _, nn := range n.Args { nn.Accept(t) } } @@ -632,7 +632,7 @@ func (t *Traverser) ExprNew(n *ast.ExprNew) { n.Accept(t.v) t.Traverse(n.Class) - for _, nn := range n.Arguments { + for _, nn := range n.Args { nn.Accept(t) } } @@ -671,7 +671,7 @@ func (t *Traverser) ExprPropertyFetch(n *ast.ExprPropertyFetch) { n.Accept(t.v) t.Traverse(n.Var) - t.Traverse(n.Property) + t.Traverse(n.Prop) } func (t *Traverser) ExprRequire(n *ast.ExprRequire) { @@ -699,7 +699,7 @@ func (t *Traverser) ExprStaticCall(n *ast.ExprStaticCall) { t.Traverse(n.Class) t.Traverse(n.Call) - for _, nn := range n.Arguments { + for _, nn := range n.Args { nn.Accept(t) } } @@ -708,13 +708,13 @@ func (t *Traverser) ExprStaticPropertyFetch(n *ast.ExprStaticPropertyFetch) { n.Accept(t.v) t.Traverse(n.Class) - t.Traverse(n.Property) + t.Traverse(n.Prop) } func (t *Traverser) ExprTernary(n *ast.ExprTernary) { n.Accept(t.v) - t.Traverse(n.Condition) + t.Traverse(n.Cond) t.Traverse(n.IfTrue) t.Traverse(n.IfFalse) } @@ -734,14 +734,14 @@ func (t *Traverser) ExprUnaryPlus(n *ast.ExprUnaryPlus) { func (t *Traverser) ExprVariable(n *ast.ExprVariable) { n.Accept(t.v) - t.Traverse(n.VarName) + t.Traverse(n.Name) } func (t *Traverser) ExprYield(n *ast.ExprYield) { n.Accept(t.v) t.Traverse(n.Key) - t.Traverse(n.Value) + t.Traverse(n.Val) } func (t *Traverser) ExprYieldFrom(n *ast.ExprYieldFrom) { @@ -1105,7 +1105,7 @@ func (t *Traverser) ScalarEncapsedStringPart(n *ast.ScalarEncapsedStringPart) { func (t *Traverser) ScalarEncapsedStringVar(n *ast.ScalarEncapsedStringVar) { n.Accept(t.v) - t.Traverse(n.VarName) + t.Traverse(n.Name) t.Traverse(n.Dim) } @@ -1135,7 +1135,7 @@ func (t *Traverser) ScalarString(n *ast.ScalarString) { n.Accept(t.v) } -func (t *Traverser) NameName(n *ast.NameName) { +func (t *Traverser) NameName(n *ast.Name) { n.Accept(t.v) for _, nn := range n.Parts { @@ -1159,6 +1159,6 @@ func (t *Traverser) NameRelative(n *ast.NameRelative) { } } -func (t *Traverser) NameNamePart(n *ast.NameNamePart) { +func (t *Traverser) NameNamePart(n *ast.NamePart) { n.Accept(t.v) } From e3b133f3de707857311c5bf27f40dfb8a1b44625 Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Tue, 29 Dec 2020 21:23:22 +0200 Subject: [PATCH 140/140] refactoring: update api --- cmd/php-parser/main.go | 37 +- internal/php5/parser.go | 11 +- internal/php5/parser_test.go | 2118 ++++++++++++++++---- internal/php5/php5_bench_test.go | 12 +- internal/php7/parser.go | 11 +- internal/php7/parser_test.go | 2330 +++++++++++++++++----- internal/php7/php7_bench_test.go | 12 +- internal/scanner/lexer.go | 23 +- internal/scanner/scanner_test.go | 272 ++- internal/version/version.go | 61 - internal/version/version_test.go | 29 - pkg/cfg/cfg.go | 11 + pkg/parser/parser.go | 50 +- pkg/version/version.go | 102 + pkg/version/version_test.go | 48 + pkg/visitor/printer/printer_php5_test.go | 21 +- pkg/visitor/printer/printer_php7_test.go | 32 +- 17 files changed, 4086 insertions(+), 1094 deletions(-) delete mode 100644 internal/version/version.go delete mode 100644 internal/version/version_test.go create mode 100644 pkg/cfg/cfg.go create mode 100644 pkg/version/version.go create mode 100644 pkg/version/version_test.go diff --git a/cmd/php-parser/main.go b/cmd/php-parser/main.go index a94d348..796e87e 100644 --- a/cmd/php-parser/main.go +++ b/cmd/php-parser/main.go @@ -3,10 +3,7 @@ package main import ( "bytes" "flag" - "github.com/z7zmey/php-parser/pkg/visitor/dumper" - "github.com/z7zmey/php-parser/pkg/visitor/nsresolver" - "github.com/z7zmey/php-parser/pkg/visitor/printer" - "github.com/z7zmey/php-parser/pkg/visitor/traverser" + "fmt" "io" "io/ioutil" "log" @@ -21,15 +18,20 @@ import ( "github.com/yookoala/realpath" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/cfg" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/parser" + "github.com/z7zmey/php-parser/pkg/version" + "github.com/z7zmey/php-parser/pkg/visitor/dumper" + "github.com/z7zmey/php-parser/pkg/visitor/nsresolver" + "github.com/z7zmey/php-parser/pkg/visitor/printer" + "github.com/z7zmey/php-parser/pkg/visitor/traverser" ) var wg sync.WaitGroup -var phpVersion string +var phpVersion *version.Version var profiler string var dump *bool -var withFreeFloating *bool var showResolvedNs *bool var printBack *bool var printPath *bool @@ -49,19 +51,26 @@ type result struct { func main() { start := time.Now() + var phpVer string printExecTime = flag.Bool("time", false, "print execution time") - 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") printErrors = flag.Bool("e", false, "print errors") dump = flag.Bool("d", false, "dump") flag.StringVar(&profiler, "prof", "", "start profiler: [cpu, mem, trace]") - flag.StringVar(&phpVersion, "phpver", "7.4", "php version") + flag.StringVar(&phpVer, "phpver", "7.4", "php version") flag.Parse() + var err error + phpVersion, err = version.New(phpVer) + if err != nil { + fmt.Println("Error: " + err.Error()) + os.Exit(1) + } + if len(flag.Args()) == 0 { flag.Usage() return @@ -128,16 +137,16 @@ func parserWorker(fileCh <-chan *file, r chan<- result) { return } - parserErrors := []*errors.Error{} - cfg := parser.Config{ - WithTokens: *withFreeFloating, + var parserErrors []*errors.Error + rootNode, err := parser.Parse(f.content, cfg.Config{ + Version: phpVersion, ErrorHandlerFunc: func(e *errors.Error) { parserErrors = append(parserErrors, e) }, - } - rootNode, err := parser.Parse(f.content, phpVersion, cfg) + }) if err != nil { - panic(err.Error()) + fmt.Println("Error:" + err.Error()) + os.Exit(1) } r <- result{path: f.path, rootNode: rootNode, errors: parserErrors} diff --git a/internal/php5/parser.go b/internal/php5/parser.go index 84015d2..a8c8dcf 100644 --- a/internal/php5/parser.go +++ b/internal/php5/parser.go @@ -1,9 +1,10 @@ package php5 import ( - builder "github.com/z7zmey/php-parser/internal/position" + "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/cfg" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/token" ) @@ -14,15 +15,15 @@ type Parser struct { currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) - builder *builder.Builder + builder *position.Builder } // NewParser creates and returns new Parser -func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser { +func NewParser(lexer *scanner.Lexer, config cfg.Config) *Parser { return &Parser{ Lexer: lexer, - errHandlerFunc: errHandlerFunc, - builder: builder.NewBuilder(), + errHandlerFunc: config.ErrorHandlerFunc, + builder: position.NewBuilder(), } } diff --git a/internal/php5/parser_test.go b/internal/php5/parser_test.go index 6c1dfde..a8a9bd5 100644 --- a/internal/php5/parser_test.go +++ b/internal/php5/parser_test.go @@ -8,9 +8,11 @@ import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/cfg" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/pkg/version" ) func TestIdentifier(t *testing.T) { @@ -95,8 +97,14 @@ func TestIdentifier(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1394,8 +1402,14 @@ func TestPhp5ArgumentNode(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -2986,8 +3000,14 @@ func TestPhp5ParameterNode(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3040,8 +3060,14 @@ func TestCommentEndFile(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3161,8 +3187,14 @@ func TestName(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3290,8 +3322,14 @@ func TestFullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3429,8 +3467,14 @@ func TestRelative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3569,8 +3613,14 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3707,8 +3757,14 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3864,8 +3920,14 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4057,8 +4119,14 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4251,8 +4319,14 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4409,8 +4483,14 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4606,8 +4686,14 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4829,8 +4915,14 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5002,8 +5094,14 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5175,8 +5273,14 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5302,8 +5406,14 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5407,8 +5517,14 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5534,8 +5650,14 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5616,8 +5738,14 @@ func TestScalarMagicConstant(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5697,8 +5825,14 @@ func TestScalarNumber_LNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5778,8 +5912,14 @@ func TestScalarNumber_DNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5859,8 +5999,14 @@ func TestScalarNumber_Float(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5940,8 +6086,14 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6021,8 +6173,14 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6102,8 +6260,14 @@ func TestScalarNumber_HLNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6183,8 +6347,14 @@ func TestScalarNumber_HDNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6264,8 +6434,14 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6345,8 +6521,14 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6428,8 +6610,14 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6509,8 +6697,14 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6592,8 +6786,14 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6780,8 +6980,14 @@ func TestStmtAltIf_AltIf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7091,8 +7297,14 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7341,8 +7553,14 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7811,8 +8029,14 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8176,8 +8400,14 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8425,8 +8655,14 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8893,8 +9129,14 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9216,8 +9458,14 @@ func TestStmtClassMethod_Php5ClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9539,8 +9787,14 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9665,8 +9919,14 @@ func TestStmtClass_SimpleClass(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9824,8 +10084,14 @@ func TestStmtClass_AbstractClass(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10058,8 +10324,14 @@ func TestStmtClass_ClassExtends(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10294,8 +10566,14 @@ func TestStmtClass_ClassImplement(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10583,8 +10861,14 @@ func TestStmtClass_ClassImplements(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10853,8 +11137,14 @@ func TestStmtConstList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11060,8 +11350,14 @@ func TestStmtContinue_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11298,8 +11594,14 @@ func TestStmtContinue_Light(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11552,8 +11854,14 @@ func TestStmtContinue(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11710,8 +12018,14 @@ func TestStmtDeclare(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11971,8 +12285,14 @@ func TestStmtDeclare_Stmts(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12162,8 +12482,14 @@ func TestStmtDeclare_Alt(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12336,8 +12662,14 @@ func TestStmtDo(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12492,8 +12824,14 @@ func TestStmtEcho(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12621,8 +12959,14 @@ func TestStmtEcho_Parenthesis(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12758,8 +13102,14 @@ func TestStmtExpression(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13221,8 +13571,14 @@ func TestStmtFor(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13547,8 +13903,14 @@ func TestStmtFor_Alt(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13770,8 +14132,14 @@ func TestStmtForeach(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13994,8 +14362,14 @@ func TestStmtForeach_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14239,8 +14613,14 @@ func TestStmtForeach_Alt(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14523,8 +14903,14 @@ func TestStmtForeach_WithKey(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14808,8 +15194,14 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15102,8 +15494,14 @@ func TestStmtForeach_WithRef(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15434,8 +15832,14 @@ func TestStmtForeach_WithList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15580,8 +15984,14 @@ func TestStmtFunction(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15755,8 +16165,14 @@ func TestStmtFunction_Return(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16127,8 +16543,14 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16343,8 +16765,14 @@ func TestStmtFunction_Ref(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16456,8 +16884,14 @@ func TestStmtGlobal(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16804,8 +17238,14 @@ func TestStmtGlobal_Vars(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16956,8 +17396,14 @@ func TestStmtGotoLabel(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17048,8 +17494,14 @@ func TestStmtHaltCompiler(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17210,8 +17662,14 @@ func TestStmtIf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17504,8 +17962,14 @@ func TestStmtIf_ElseIf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17737,8 +18201,14 @@ func TestStmtIf_Else(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18232,8 +18702,14 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18757,8 +19233,14 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18838,8 +19320,14 @@ func TestStmtInlineHtml(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18964,8 +19452,14 @@ func TestStmtInterface(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19155,8 +19649,14 @@ func TestStmtInterface_Extend(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19399,8 +19899,14 @@ func TestStmtInterface_Extends(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19512,8 +20018,14 @@ func TestStmtNamespace(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19648,8 +20160,14 @@ func TestStmtNamespace_Stmts(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19743,8 +20261,14 @@ func TestStmtNamespace_Anonymous(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19958,8 +20482,14 @@ func TestStmtProperty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20316,8 +20846,14 @@ func TestStmtProperty_Properties(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20674,8 +21210,14 @@ func TestStmtProperty_Properties2(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20795,8 +21337,14 @@ func TestStmtStaticVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21028,8 +21576,14 @@ func TestStmtStaticVar_Vars(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21261,8 +21815,14 @@ func TestStmtStaticVar_Vars2(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21650,8 +22210,14 @@ func TestStmtSwitch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22049,8 +22615,14 @@ func TestStmtSwitch_Semicolon(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22408,8 +22980,14 @@ func TestStmtSwitch_Alt(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22735,8 +23313,14 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22846,8 +23430,14 @@ func TestStmtThrow(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22972,8 +23562,14 @@ func TestStmtTrait(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23194,8 +23790,14 @@ func TestStmtTraitUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23469,8 +24071,14 @@ func TestStmtTraitUse_Uses(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23766,8 +24374,14 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24179,8 +24793,14 @@ func TestStmtTraitUse_Modifier(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24623,8 +25243,14 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25281,8 +25907,14 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25378,8 +26010,14 @@ func TestStmtTry_Try(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25641,8 +26279,14 @@ func TestStmtTry_TryCatch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -26069,8 +26713,14 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -26395,8 +27045,14 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27017,8 +27673,14 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27138,8 +27800,14 @@ func TestStmtUnset(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27310,8 +27978,14 @@ func TestStmtUnset_Vars(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27433,8 +28107,14 @@ func TestStmtUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27566,8 +28246,14 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27752,8 +28438,14 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27936,8 +28628,14 @@ func TestStmtUse_List(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -28173,8 +28871,14 @@ func TestStmtUse_ListAlias(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -28398,8 +29102,14 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -28729,8 +29439,14 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -28954,8 +29670,14 @@ func TestStmtUse_ListConstType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29285,8 +30007,14 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29492,8 +30220,14 @@ func TestStmtBreak_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29730,8 +30464,14 @@ func TestStmtBreak_Light(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29994,8 +30734,14 @@ func TestStmtBreak(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30132,8 +30878,14 @@ func TestExprArrayDimFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30315,8 +31067,14 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30415,8 +31173,14 @@ func TestExprArray(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30544,8 +31308,14 @@ func TestExprArray_Item(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30782,8 +31552,14 @@ func TestExprArray_Items(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30889,8 +31665,14 @@ func TestExprBitwiseNot(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30996,8 +31778,14 @@ func TestExprBooleanNot(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31124,8 +31912,14 @@ func TestExprClassConstFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31242,8 +32036,14 @@ func TestExprClassConstFetch_Static(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31377,8 +32177,14 @@ func TestExprClone_Brackets(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31496,8 +32302,14 @@ func TestExprClone(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31617,8 +32429,14 @@ func TestExprClosure(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32006,8 +32824,14 @@ func TestExprClosure_Use(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32395,8 +33219,14 @@ func TestExprClosure_Use2(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32494,8 +33324,14 @@ func TestExprConstFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32613,8 +33449,14 @@ func TestExprConstFetch_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32722,8 +33564,14 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32849,8 +33697,14 @@ func TestExprEmpty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32956,8 +33810,14 @@ func TestExprErrorSuppress(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33083,8 +33943,14 @@ func TestExprEval(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33163,8 +34029,14 @@ func TestExprExit(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33263,8 +34135,14 @@ func TestExprExit_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33390,8 +34268,14 @@ func TestExprExit_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33470,8 +34354,14 @@ func TestExprDie(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33570,8 +34460,14 @@ func TestExprDie_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33697,8 +34593,14 @@ func TestExprDie_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33816,8 +34718,14 @@ func TestExprFunctionCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33955,8 +34863,14 @@ func TestExprFunctionCall_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34122,8 +35036,14 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34306,8 +35226,14 @@ func TestExprFunctionCall_Var(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34499,8 +35425,14 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34606,8 +35538,14 @@ func TestExprPostDec(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34713,8 +35651,14 @@ func TestExprPostInc(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34820,8 +35764,14 @@ func TestExprPreDec(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34927,8 +35877,14 @@ func TestExprPreInc(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35046,8 +36002,14 @@ func TestExprInclude(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35165,8 +36127,14 @@ func TestExprInclude_Once(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35284,8 +36252,14 @@ func TestExprRequire(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35403,8 +36377,14 @@ func TestExprRequire_Once(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35563,8 +36543,14 @@ func TestExprInstanceOf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35743,8 +36729,14 @@ func TestExprInstanceOf_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35913,8 +36905,14 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36042,8 +37040,14 @@ func TestExprIsset(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36222,8 +37226,14 @@ func TestExprIsset_Variables(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36394,8 +37404,14 @@ func TestExprList_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36600,8 +37616,14 @@ func TestExprList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36834,8 +37856,14 @@ func TestExprList_ArrayIndex(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37088,8 +38116,14 @@ func TestExprList_List(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37319,8 +38353,14 @@ func TestExprList_EmptyItem(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37596,8 +38636,14 @@ func TestExprList_EmptyItems(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37742,8 +38788,14 @@ func TestExprMethodCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37863,8 +38915,14 @@ func TestExprNew(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38024,8 +39082,14 @@ func TestExprNew_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38175,8 +39239,14 @@ func TestExprNew_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38310,8 +39380,14 @@ func TestExprPrint(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38438,8 +39514,14 @@ func TestExprPropertyFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38576,8 +39658,14 @@ func TestExprShellExec(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38666,8 +39754,14 @@ func TestExprShortArray(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38785,8 +39879,14 @@ func TestExprShortArray_Item(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39013,8 +40113,14 @@ func TestExprShortArray_Items(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39161,8 +40267,14 @@ func TestExprStaticCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39329,8 +40441,14 @@ func TestExprStaticCall_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39487,8 +40605,14 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39643,8 +40767,14 @@ func TestExprStaticCall_Var(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39797,8 +40927,14 @@ func TestExprStaticCall_VarVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39933,8 +41069,14 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40089,8 +41231,14 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40235,8 +41383,14 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40454,8 +41608,14 @@ func TestExprTernary(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40634,8 +41794,14 @@ func TestExprTernary_Simple(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40983,8 +42149,14 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41332,8 +42504,14 @@ func TestExprTernary_NestedCond(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41439,8 +42617,14 @@ func TestExprUnaryMinus(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41546,8 +42730,14 @@ func TestExprUnaryPlus(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41635,8 +42825,14 @@ func TestExprVariable(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41742,8 +42938,14 @@ func TestExprVariable_Variable(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41822,8 +43024,14 @@ func TestExprYield(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41941,8 +43149,14 @@ func TestExprYield_Val(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42121,8 +43335,14 @@ func TestExprYield_KeyVal(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42232,8 +43452,14 @@ func TestExprYield_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42404,8 +43630,14 @@ func TestExprYield_KeyExpr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -44621,8 +45853,14 @@ func TestExprAssign(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47830,8 +49068,14 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -48700,8 +49944,14 @@ func TestExprCast_Array(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -49000,8 +50250,14 @@ func TestPhp5Strings(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -49480,8 +50736,14 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() actual := php5parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -49502,12 +50764,18 @@ func TestPhp5ControlCharsErrors(t *testing.T) { } parserErrors := []*errors.Error{} - errorHandlerFunc := func(e *errors.Error) { - parserErrors = append(parserErrors, e) - } - lexer := scanner.NewLexer([]byte(src), "5.6", errorHandlerFunc) - php5parser := php5.NewParser(lexer, errorHandlerFunc) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + ErrorHandlerFunc: func(e *errors.Error) { + parserErrors = append(parserErrors, e) + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() assert.DeepEqual(t, expected, parserErrors) } diff --git a/internal/php5/php5_bench_test.go b/internal/php5/php5_bench_test.go index 77c67cc..b17c36f 100644 --- a/internal/php5/php5_bench_test.go +++ b/internal/php5/php5_bench_test.go @@ -6,6 +6,8 @@ import ( "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/cfg" + "github.com/z7zmey/php-parser/pkg/version" ) func BenchmarkPhp5(b *testing.B) { @@ -15,8 +17,14 @@ func BenchmarkPhp5(b *testing.B) { } for n := 0; n < b.N; n++ { - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer(src, config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() } } diff --git a/internal/php7/parser.go b/internal/php7/parser.go index f053888..eda2135 100644 --- a/internal/php7/parser.go +++ b/internal/php7/parser.go @@ -1,9 +1,10 @@ package php7 import ( - builder "github.com/z7zmey/php-parser/internal/position" + "github.com/z7zmey/php-parser/internal/position" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/cfg" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/token" ) @@ -14,15 +15,15 @@ type Parser struct { currentToken *token.Token rootNode ast.Vertex errHandlerFunc func(*errors.Error) - builder *builder.Builder + builder *position.Builder } // NewParser creates and returns new Parser -func NewParser(lexer *scanner.Lexer, errHandlerFunc func(*errors.Error)) *Parser { +func NewParser(lexer *scanner.Lexer, config cfg.Config) *Parser { return &Parser{ Lexer: lexer, - errHandlerFunc: errHandlerFunc, - builder: builder.NewBuilder(), + errHandlerFunc: config.ErrorHandlerFunc, + builder: position.NewBuilder(), } } diff --git a/internal/php7/parser_test.go b/internal/php7/parser_test.go index b35eece..3df90af 100644 --- a/internal/php7/parser_test.go +++ b/internal/php7/parser_test.go @@ -1,7 +1,6 @@ package php7_test import ( - "github.com/z7zmey/php-parser/pkg/errors" "testing" "gotest.tools/assert" @@ -9,8 +8,11 @@ import ( "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/cfg" + "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/pkg/version" ) func TestIdentifier(t *testing.T) { @@ -95,8 +97,14 @@ func TestIdentifier(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -1665,8 +1673,14 @@ func TestPhp7ArgumentNode(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3343,8 +3357,14 @@ func TestPhp7ParameterNode(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3397,8 +3417,14 @@ func TestCommentEndFile(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3518,8 +3544,14 @@ func TestName(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3647,8 +3679,14 @@ func TestFullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3786,8 +3824,14 @@ func TestRelative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -3926,8 +3970,14 @@ func TestScalarEncapsed_SimpleVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4064,8 +4114,14 @@ func TestScalarEncapsed_SimpleVarOneChar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4221,8 +4277,14 @@ func TestScalarEncapsed_SimpleVarEndsEcapsed(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4414,8 +4476,14 @@ func TestScalarEncapsed_StringVarCurveOpen(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4608,8 +4676,14 @@ func TestScalarEncapsed_SimpleVarPropertyFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4766,8 +4840,14 @@ func TestScalarEncapsed_DollarOpenCurlyBraces(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -4963,8 +5043,14 @@ func TestScalarEncapsed_DollarOpenCurlyBracesDimNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5186,8 +5272,14 @@ func TestScalarEncapsed_CurlyOpenMethodCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5359,8 +5451,14 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5532,8 +5630,14 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5659,8 +5763,14 @@ LBL; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5764,8 +5874,14 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5891,8 +6007,14 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -5973,8 +6095,14 @@ func TestScalarMagicConstant(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6054,8 +6182,14 @@ func TestScalarNumber_LNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6135,8 +6269,14 @@ func TestScalarNumber_DNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6216,8 +6356,14 @@ func TestScalarNumber_Float(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6297,8 +6443,14 @@ func TestScalarNumber_BinaryLNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6378,8 +6530,14 @@ func TestScalarNumber_BinaryDNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6459,8 +6617,14 @@ func TestScalarNumber_HLNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6540,8 +6704,14 @@ func TestScalarNumber_HDNumber(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6621,8 +6791,14 @@ func TestScalarString_DoubleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6702,8 +6878,14 @@ func TestScalarString_DoubleQuotedScalarStringWithEscapedVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6785,8 +6967,14 @@ func TestScalarString_MultilineDoubleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6866,8 +7054,14 @@ func TestScalarString_SingleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -6949,8 +7143,14 @@ func TestScalarString_MultilineSingleQuotedScalarString(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7151,8 +7351,14 @@ func TestStmtAltIf_AltIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7462,8 +7668,14 @@ func TestStmtAltIf_AltElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -7712,8 +7924,14 @@ func TestStmtAltIf_AltElse(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8182,8 +8400,14 @@ func TestStmtAltIf_AltElseElseIf(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8580,8 +8804,14 @@ func TestStmtClassConstList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -8945,8 +9175,14 @@ func TestStmtClassConstList_WithoutModifiers(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9194,8 +9430,14 @@ func TestStmtClassMethod_SimpleClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -9662,8 +9904,14 @@ func TestStmtClassMethod_PrivateProtectedClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10036,8 +10284,14 @@ func TestStmtClassMethod_Php7ClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10359,8 +10613,14 @@ func TestStmtClassMethod_AbstractClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10702,8 +10962,14 @@ func TestStmtClassMethod_Php7AbstractClassMethod(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10828,8 +11094,14 @@ func TestStmtClass_SimpleClass(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -10987,8 +11259,14 @@ func TestStmtClass_AbstractClass(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11221,8 +11499,14 @@ func TestStmtClass_ClassExtends(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11457,8 +11741,14 @@ func TestStmtClass_ClassImplement(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -11746,8 +12036,14 @@ func TestStmtClass_ClassImplements(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12102,8 +12398,14 @@ func TestStmtClass_AnonimousClass(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12372,8 +12674,14 @@ func TestStmtConstList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12579,8 +12887,14 @@ func TestStmtContinue_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -12817,8 +13131,14 @@ func TestStmtContinue_Light(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13071,8 +13391,14 @@ func TestStmtContinue(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13229,8 +13555,14 @@ func TestStmtDeclare(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13490,8 +13822,14 @@ func TestStmtDeclare_Stmts(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13681,8 +14019,14 @@ func TestStmtDeclare_Alt(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -13855,8 +14199,14 @@ func TestStmtDo(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14011,8 +14361,14 @@ func TestStmtEcho(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14140,8 +14496,14 @@ func TestStmtEcho_Parenthesis(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14221,8 +14583,14 @@ func TestStmtExpression(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -14684,8 +15052,14 @@ func TestStmtFor(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15010,8 +15384,14 @@ func TestStmtFor_Alt(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15233,8 +15613,14 @@ func TestStmtForeach(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15457,8 +15843,14 @@ func TestStmtForeach_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15702,8 +16094,14 @@ func TestStmtForeach_Alt(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -15986,8 +16384,14 @@ func TestStmtForeach_WithKey(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16271,8 +16675,14 @@ func TestStmtForeach_ExprWithKey(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16565,8 +16975,14 @@ func TestStmtForeach_WithRef(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -16897,8 +17313,14 @@ func TestStmtForeach_WithList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17043,8 +17465,14 @@ func TestStmtFunction(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17218,8 +17646,14 @@ func TestStmtFunction_Return(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17590,8 +18024,14 @@ func TestStmtFunction_ReturnVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -17806,8 +18246,14 @@ func TestStmtFunction_Ref(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18013,8 +18459,14 @@ func TestStmtFunction_ReturnType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18126,8 +18578,14 @@ func TestStmtGlobal(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18474,8 +18932,14 @@ func TestStmtGlobal_Vars(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18626,8 +19090,14 @@ func TestStmtGotoLabel(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18718,8 +19188,14 @@ func TestStmtHaltCompiler(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -18880,8 +19356,14 @@ func TestStmtIf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19174,8 +19656,14 @@ func TestStmtIf_ElseIf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19407,8 +19895,14 @@ func TestStmtIf_Else(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -19902,8 +20396,14 @@ func TestStmtIf_ElseElseIf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20427,8 +20927,14 @@ func TestStmtIf_ElseIfElseIfElse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20508,8 +21014,14 @@ func TestStmtInlineHtml(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20634,8 +21146,14 @@ func TestStmtInterface(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -20825,8 +21343,14 @@ func TestStmtInterface_Extend(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21069,8 +21593,14 @@ func TestStmtInterface_Extends(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21182,8 +21712,14 @@ func TestStmtNamespace(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21318,8 +21854,14 @@ func TestStmtNamespace_Stmts(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21413,8 +21955,14 @@ func TestStmtNamespace_Anonymous(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21628,8 +22176,14 @@ func TestStmtProperty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -21986,8 +22540,14 @@ func TestStmtProperty_Properties(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22344,8 +22904,14 @@ func TestStmtProperty_Properties2(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22600,8 +23166,14 @@ func TestStmtProperty_PropertyType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22721,8 +23293,14 @@ func TestStmtStaticVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -22954,8 +23532,14 @@ func TestStmtStaticVar_Vars(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23187,8 +23771,14 @@ func TestStmtStaticVar_Vars2(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -23590,8 +24180,14 @@ func TestStmtSwitch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24003,8 +24599,14 @@ func TestStmtSwitch_Semicolon(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24376,8 +24978,14 @@ func TestStmtSwitch_Alt(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24703,8 +25311,14 @@ func TestStmtSwitch_AltSemicolon(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24814,8 +25428,14 @@ func TestStmtThrow(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -24940,8 +25560,14 @@ func TestStmtTrait(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25162,8 +25788,14 @@ func TestStmtTraitUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25437,8 +26069,14 @@ func TestStmtTraitUse_Uses(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -25734,8 +26372,14 @@ func TestStmtTraitUse_EmptyAdaptations(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -26147,8 +26791,14 @@ func TestStmtTraitUse_Modifier(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -26591,8 +27241,14 @@ func TestStmtTraitUse_AliasModifier(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27249,8 +27905,14 @@ func TestStmtTraitUse_Adaptions(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27360,8 +28022,14 @@ func TestStmtTry_Try(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27637,8 +28305,14 @@ func TestStmtTry_TryCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -27955,8 +28629,14 @@ func TestStmtTry_Php7TryCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -28397,8 +29077,14 @@ func TestStmtTry_TryCatchCatch(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -28737,8 +29423,14 @@ func TestStmtTry_TryCatchFinally(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29359,8 +30051,14 @@ func TestStmtTry_TryCatchCatchCatch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29480,8 +30178,14 @@ func TestStmtUnset(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29652,8 +30356,14 @@ func TestStmtUnset_Vars(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29834,8 +30544,14 @@ func TestStmtUnset_TrailingComma(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -29957,8 +30673,14 @@ func TestStmtUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30090,8 +30812,14 @@ func TestStmtUse_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30276,8 +31004,14 @@ func TestStmtUse_FullyQualifiedAlias(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30460,8 +31194,14 @@ func TestStmtUse_List(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30697,8 +31437,14 @@ func TestStmtUse_ListAlias(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -30922,8 +31668,14 @@ func TestStmtUse_ListFunctionType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31253,8 +32005,14 @@ func TestStmtUse_ListFunctionTypeAliases(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31478,8 +32236,14 @@ func TestStmtUse_ListConstType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -31809,8 +32573,14 @@ func TestStmtUse_ListConstTypeAliases(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32052,8 +32822,14 @@ func TestStmtUse_GroupUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32348,8 +33124,14 @@ func TestStmtUse_GroupUseAlias(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32622,8 +33404,14 @@ func TestStmtUse_FunctionGroupUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -32896,8 +33684,14 @@ func TestStmtUse_ConstGroupUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33201,8 +33995,14 @@ func TestStmtUse_MixedGroupUse(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33408,8 +34208,14 @@ func TestStmtBreak_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33646,8 +34452,14 @@ func TestStmtBreak_Light(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -33910,8 +34722,14 @@ func TestStmtBreak(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34048,8 +34866,14 @@ func TestExprArrayDimFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34231,8 +35055,14 @@ func TestExprArrayDimFetch_Nested(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34331,8 +35161,14 @@ func TestExprArray(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34460,8 +35296,14 @@ func TestExprArray_Item(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34698,8 +35540,14 @@ func TestExprArray_Items(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -34845,8 +35693,14 @@ func TestExprArray_ItemUnpack(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35006,8 +35860,14 @@ func TestExprArrowFunction(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35264,8 +36124,14 @@ func TestExprArrowFunction_ReturnType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35371,8 +36237,14 @@ func TestExprBitwiseNot(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35478,8 +36350,14 @@ func TestExprBooleanNot(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35606,8 +36484,14 @@ func TestExprClassConstFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35724,8 +36608,14 @@ func TestExprClassConstFetch_Static(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35859,8 +36749,14 @@ func TestExprClone_Brackets(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -35978,8 +36874,14 @@ func TestExprClone(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36099,8 +37001,14 @@ func TestExprClosure(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36488,8 +37396,14 @@ func TestExprClosure_Use(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -36877,8 +37791,14 @@ func TestExprClosure_Use2(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37061,8 +37981,14 @@ func TestExprClosure_ReturnType(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37160,8 +38086,14 @@ func TestExprConstFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37279,8 +38211,14 @@ func TestExprConstFetch_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37388,8 +38326,14 @@ func TestExprConstFetch_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37515,8 +38459,14 @@ func TestExprEmpty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37622,8 +38572,14 @@ func TestExprErrorSuppress(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37749,8 +38705,14 @@ func TestExprEval(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37829,8 +38791,14 @@ func TestExprExit(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -37929,8 +38897,14 @@ func TestExprExit_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38056,8 +39030,14 @@ func TestExprExit_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38136,8 +39116,14 @@ func TestExprDie(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38236,8 +39222,14 @@ func TestExprDie_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38363,8 +39355,14 @@ func TestExprDie_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38482,8 +39480,14 @@ func TestExprFunctionCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38621,8 +39625,14 @@ func TestExprFunctionCall_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38788,8 +39798,14 @@ func TestExprFunctionCall_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -38972,8 +39988,14 @@ func TestExprFunctionCall_Var(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39165,8 +40187,14 @@ func TestExprFunctionCall_ExprArg(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39272,8 +40300,14 @@ func TestExprPostDec(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39379,8 +40413,14 @@ func TestExprPostInc(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39486,8 +40526,14 @@ func TestExprPreDec(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39593,8 +40639,14 @@ func TestExprPreInc(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39712,8 +40764,14 @@ func TestExprInclude(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39831,8 +40889,14 @@ func TestExprInclude_Once(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -39950,8 +41014,14 @@ func TestExprRequire(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40069,8 +41139,14 @@ func TestExprRequire_Once(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40229,8 +41305,14 @@ func TestExprInstanceOf(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40409,8 +41491,14 @@ func TestExprInstanceOf_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40579,8 +41667,14 @@ func TestExprInstanceOf_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40708,8 +41802,14 @@ func TestExprIsset(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -40888,8 +41988,14 @@ func TestExprIsset_Variables(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41057,8 +42163,14 @@ func TestExprList_Empty(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41263,8 +42375,14 @@ func TestExprList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41497,8 +42615,14 @@ func TestExprList_ArrayIndex(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41751,8 +42875,14 @@ func TestExprList_List(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -41982,8 +43112,14 @@ func TestExprList_EmptyItem(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42259,8 +43395,14 @@ func TestExprList_EmptyItems(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42405,8 +43547,14 @@ func TestExprMethodCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42526,8 +43674,14 @@ func TestExprNew(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42687,8 +43841,14 @@ func TestExprNew_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -42838,8 +43998,14 @@ func TestExprNew_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -43119,8 +44285,14 @@ func TestExprNew_Anonymous(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -43254,8 +44426,14 @@ func TestExprPrint(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -43380,8 +44558,14 @@ func TestExprPropertyFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -43518,8 +44702,14 @@ func TestExprShellExec(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -43608,8 +44798,14 @@ func TestExprShortArray(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -43727,8 +44923,14 @@ func TestExprShortArray_Item(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -43955,8 +45157,14 @@ func TestExprShortArray_Items(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -44151,8 +45359,14 @@ func TestExprShortList(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -44375,8 +45589,14 @@ func TestExprShortList_ArrayIndex(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -44619,8 +45839,14 @@ func TestExprShortList_List(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -44767,8 +45993,14 @@ func TestExprStaticCall(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -44935,8 +46167,14 @@ func TestExprStaticCall_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -45093,8 +46331,14 @@ func TestExprStaticCall_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -45249,8 +46493,14 @@ func TestExprStaticCall_Var(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -45403,8 +46653,14 @@ func TestExprStaticCall_VarVar(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -45539,8 +46795,14 @@ func TestExprStaticPropertyFetch(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -45695,8 +46957,14 @@ func TestExprStaticPropertyFetch_Relative(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -45841,8 +47109,14 @@ func TestExprStaticPropertyFetch_FullyQualified(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -46060,8 +47334,14 @@ func TestExprTernary(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -46240,8 +47520,14 @@ func TestExprTernary_Simple(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -46589,8 +47875,14 @@ func TestExprTernary_NestedTrue(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -46938,8 +48230,14 @@ func TestExprTernary_NestedCond(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47045,8 +48343,14 @@ func TestExprUnaryMinus(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47152,8 +48456,14 @@ func TestExprUnaryPlus(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47241,8 +48551,14 @@ func TestExprVariable(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47348,8 +48664,14 @@ func TestExprVariable_Variable(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47428,8 +48750,14 @@ func TestExprYield(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47547,8 +48875,14 @@ func TestExprYield_Val(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47727,8 +49061,14 @@ func TestExprYield_KeyVal(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -47838,8 +49178,14 @@ func TestExprYield_Expr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -48010,8 +49356,14 @@ func TestExprYield_KeyExpr(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -48129,8 +49481,14 @@ func TestExprYieldFrom(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -50473,8 +51831,14 @@ func TestExprAssign_Assign(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -53936,8 +55300,14 @@ func TestExprBinary_BitwiseAnd(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -54806,8 +56176,14 @@ func TestExprCast_Array(t *testing.T) { EndTkn: &token.Token{}, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -55106,8 +56482,14 @@ func TestStrings(t *testing.T) { }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -55586,8 +56968,14 @@ CAD; }, } - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() actual := php7parser.GetRootNode() assert.DeepEqual(t, expected, actual) @@ -55608,12 +56996,18 @@ func TestControlCharsErrors(t *testing.T) { } parserErrors := []*errors.Error{} - errorHandlerFunc := func(e *errors.Error) { - parserErrors = append(parserErrors, e) - } - lexer := scanner.NewLexer([]byte(src), "7.4", errorHandlerFunc) - php7parser := php7.NewParser(lexer, errorHandlerFunc) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + ErrorHandlerFunc: func(e *errors.Error) { + parserErrors = append(parserErrors, e) + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() assert.DeepEqual(t, expected, parserErrors) } diff --git a/internal/php7/php7_bench_test.go b/internal/php7/php7_bench_test.go index 3ba6578..961688d 100644 --- a/internal/php7/php7_bench_test.go +++ b/internal/php7/php7_bench_test.go @@ -6,6 +6,8 @@ import ( "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/cfg" + "github.com/z7zmey/php-parser/pkg/version" ) func BenchmarkPhp7(b *testing.B) { @@ -16,8 +18,14 @@ func BenchmarkPhp7(b *testing.B) { } for n := 0; n < b.N; n++ { - lexer := scanner.NewLexer(src, "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer(src, config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() } } diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index 6a26ffc..eea6e16 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -4,15 +4,16 @@ import ( "bytes" "strings" - "github.com/z7zmey/php-parser/internal/version" + "github.com/z7zmey/php-parser/pkg/cfg" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/pkg/version" ) type Lexer struct { data []byte - phpVersion string + phpVersion *version.Version errHandlerFunc func(*errors.Error) p, pe, cs int @@ -26,11 +27,11 @@ type Lexer struct { newLines NewLines } -func NewLexer(data []byte, phpVersion string, errHandlerFunc func(*errors.Error)) *Lexer { +func NewLexer(data []byte, config cfg.Config) *Lexer { lex := &Lexer{ data: data, - phpVersion: phpVersion, - errHandlerFunc: errHandlerFunc, + phpVersion: config.Version, + errHandlerFunc: config.ErrorHandlerFunc, pe: len(data), stack: make([]int, 0), @@ -101,16 +102,16 @@ func (lex *Lexer) isNotStringEnd(s byte) bool { } func (lex *Lexer) isHeredocEnd(p int) bool { - r, err := version.Compare(lex.phpVersion, "7.3") + o, err := version.New("7.3") if err != nil { + panic(err) + } + + if lex.phpVersion.GreaterOrEqual(o) { return lex.isHeredocEndSince73(p) } - if r == -1 { - return lex.isHeredocEndBefore73(p) - } - - return lex.isHeredocEndSince73(p) + return lex.isHeredocEndBefore73(p) } func (lex *Lexer) isHeredocEndBefore73(p int) bool { diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index a51e6ea..af6da1f 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -4,9 +4,11 @@ import ( "gotest.tools/assert" "testing" + "github.com/z7zmey/php-parser/pkg/cfg" "github.com/z7zmey/php-parser/pkg/errors" "github.com/z7zmey/php-parser/pkg/position" "github.com/z7zmey/php-parser/pkg/token" + "github.com/z7zmey/php-parser/pkg/version" ) func TestTokens(t *testing.T) { @@ -353,7 +355,13 @@ func TestTokens(t *testing.T) { token.T_UNSET_CAST.String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -380,7 +388,13 @@ func TestShebang(t *testing.T) { "\n", } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} tkn := lexer.Lex() @@ -399,7 +413,13 @@ func TestShebangHtml(t *testing.T) { 0.1 ` - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() assert.Equal(t, tkn.ID, token.T_INLINE_HTML) @@ -448,7 +468,13 @@ func TestNumberTokens(t *testing.T) { token.T_DNUMBER.String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -504,7 +530,13 @@ func TestConstantStrings(t *testing.T) { token.T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -550,7 +582,13 @@ func TestSingleQuoteStringTokens(t *testing.T) { token.T_CONSTANT_ENCAPSED_STRING.String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -644,7 +682,13 @@ func TestTeplateStringTokens(t *testing.T) { token.ID(int('"')).String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -734,7 +778,13 @@ func TestBackquoteStringTokens(t *testing.T) { token.ID(int('`')).String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -827,7 +877,13 @@ CAT; token.ID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -899,7 +955,13 @@ CAT token.T_END_HEREDOC.String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -937,7 +999,13 @@ CAT; token.ID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -967,7 +1035,13 @@ func TestHereDocTokens73(t *testing.T) { token.T_VARIABLE.String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -996,8 +1070,13 @@ CAT;` token.ID(int(';')).String(), } - lexer := NewLexer([]byte(src), "7.4", nil) - lexer.phpVersion = "7.2" + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 2, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -1028,7 +1107,13 @@ func TestInlineHtmlNopTokens(t *testing.T) { token.T_INLINE_HTML.String(), } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} for { @@ -1062,7 +1147,13 @@ func TestStringTokensAfterVariable(t *testing.T) { "\"", } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} actualTokens := []string{} @@ -1095,7 +1186,13 @@ func TestSlashAfterVariable(t *testing.T) { "3", } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) actual := []string{} actualTokens := []string{} @@ -1132,7 +1229,13 @@ func TestCommentEnd(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1163,7 +1266,13 @@ func TestCommentNewLine(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1194,7 +1303,13 @@ func TestCommentNewLine1(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1225,7 +1340,13 @@ func TestCommentNewLine2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1257,7 +1378,13 @@ func TestCommentWithPhpEndTag(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1289,7 +1416,13 @@ func TestInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1321,7 +1454,13 @@ func TestInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1357,7 +1496,13 @@ func TestEmptyInlineComment(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1389,7 +1534,13 @@ func TestEmptyInlineComment2(t *testing.T) { }, } - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) tkn := lexer.Lex() @@ -1405,7 +1556,13 @@ func TestMethodCallTokens(t *testing.T) { src := ` bar ( '' ) ;` - lexer := NewLexer([]byte(src), "7.4", nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := NewLexer([]byte(src), config) expected := []*token.Token{ { @@ -1507,7 +1664,13 @@ func TestYieldFromTokens(t *testing.T) { src := ` 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) { - i := strings.Index(v, ".") - if i == -1 { - return version{}, errors.New("version must contain major and minor parts") - } - - major, err := strconv.Atoi(v[:i]) - if err != nil { - return version{}, err - } - - minor, err := strconv.Atoi(v[i+1:]) - if err != nil { - return version{}, err - } - - return version{major, minor}, nil -} diff --git a/internal/version/version_test.go b/internal/version/version_test.go deleted file mode 100644 index 5f8a2f7..0000000 --- a/internal/version/version_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package version_test - -import ( - "gotest.tools/assert" - "testing" - - "github.com/z7zmey/php-parser/internal/version" -) - -func TestSmaller(t *testing.T) { - r, err := version.Compare("7.3", "5.6") - - assert.NilError(t, err) - assert.Equal(t, 1, r) -} - -func TestGreater(t *testing.T) { - r, err := version.Compare("5.6", "7.3") - - assert.NilError(t, err) - assert.Equal(t, -1, r) -} - -func TestEqual(t *testing.T) { - r, err := version.Compare("7.3", "7.3") - - assert.NilError(t, err) - assert.Equal(t, 0, r) -} diff --git a/pkg/cfg/cfg.go b/pkg/cfg/cfg.go new file mode 100644 index 0000000..1134e04 --- /dev/null +++ b/pkg/cfg/cfg.go @@ -0,0 +1,11 @@ +package cfg + +import ( + "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/version" +) + +type Config struct { + Version *version.Version + ErrorHandlerFunc func(e *errors.Error) +} diff --git a/pkg/parser/parser.go b/pkg/parser/parser.go index a50d09e..343c60d 100644 --- a/pkg/parser/parser.go +++ b/pkg/parser/parser.go @@ -1,12 +1,25 @@ package parser import ( + "errors" + "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" - "github.com/z7zmey/php-parser/internal/version" "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/pkg/errors" + "github.com/z7zmey/php-parser/pkg/cfg" + "github.com/z7zmey/php-parser/pkg/version" +) + +var ( + // ErrVersionOutOfRange is returned if the version is not supported + ErrVersionOutOfRange = errors.New("the version is out of supported range") + + php5RangeStart = &version.Version{Major: 5} + php5RangeEnd = &version.Version{Major: 5, Minor: 6} + + php7RangeStart = &version.Version{Major: 7} + php7RangeEnd = &version.Version{Major: 7, Minor: 4} ) // Parser interface @@ -15,29 +28,26 @@ type Parser interface { GetRootNode() ast.Vertex } -type Config struct { - WithTokens bool - WithPositions bool - ErrorHandlerFunc func(e *errors.Error) -} - -func Parse(src []byte, ver string, cfg Config) (ast.Vertex, error) { +func Parse(src []byte, config cfg.Config) (ast.Vertex, error) { var parser Parser - r, err := version.Compare(ver, "7.0") - if err != nil { - return nil, err + if config.Version == nil { + config.Version = php7RangeEnd } - lexer := scanner.NewLexer(src, ver, cfg.ErrorHandlerFunc) - - if r == -1 { - parser = php5.NewParser(lexer, cfg.ErrorHandlerFunc) - } else { - parser = php7.NewParser(lexer, cfg.ErrorHandlerFunc) + if config.Version.InRange(php5RangeStart, php5RangeEnd) { + lexer := scanner.NewLexer(src, config) + parser = php5.NewParser(lexer, config) + parser.Parse() + return parser.GetRootNode(), nil } - parser.Parse() + if config.Version.InRange(php7RangeStart, php7RangeEnd) { + lexer := scanner.NewLexer(src, config) + parser = php7.NewParser(lexer, config) + parser.Parse() + return parser.GetRootNode(), nil + } - return parser.GetRootNode(), nil + return nil, ErrVersionOutOfRange } diff --git a/pkg/version/version.go b/pkg/version/version.go new file mode 100644 index 0000000..632baeb --- /dev/null +++ b/pkg/version/version.go @@ -0,0 +1,102 @@ +package version + +import ( + "errors" + "strconv" + "strings" +) + +type Version struct { + Major, Minor uint64 +} + +var ( + // ErrInvalidSemVer is returned if a version can not be parsed + ErrInvalidSemVer = errors.New("invalid semantic version") + + // ErrUnsupportedVer is returned if a version out of supported range + ErrUnsupportedVer = errors.New("the version is out of supported range") + + php5RangeStart = &Version{Major: 5} + php5RangeEnd = &Version{Major: 5, Minor: 6} + + php7RangeStart = &Version{Major: 7} + php7RangeEnd = &Version{Major: 7, Minor: 4} +) + +func New(v string) (*Version, error) { + // Split the parts into [0]Major, [1]Minor + parts := strings.SplitN(v, ".", 2) + if len(parts) != 2 { + return nil, ErrInvalidSemVer + } + + var ver = new(Version) + var err error + + ver.Major, err = strconv.ParseUint(parts[0], 10, 64) + if err != nil { + return nil, err + } + + ver.Minor, err = strconv.ParseUint(parts[1], 10, 64) + if err != nil { + return nil, err + } + + return ver, nil +} + +func (v *Version) Validate() error { + if !v.InRange(php5RangeStart, php5RangeEnd) && !v.InRange(php7RangeStart, php7RangeEnd) { + return ErrUnsupportedVer + } + + return nil +} + +// Less tests if one version is less than another one +func (v *Version) Less(o *Version) bool { + return v.Compare(o) < 0 +} + +// LessOrEqual tests if one version is less than another one or equal +func (v *Version) LessOrEqual(o *Version) bool { + return v.Compare(o) <= 0 +} + +// Greater tests if one version is greater than another one +func (v *Version) Greater(o *Version) bool { + return v.Compare(o) > 0 +} + +// GreaterOrEqual tests if one version is greater than another one or equal +func (v *Version) GreaterOrEqual(o *Version) bool { + return v.Compare(o) >= 0 +} + +// GreaterOrEqual tests if one version is greater than another one or equal +func (v *Version) InRange(s, e *Version) bool { + return v.Compare(s) >= 0 && v.Compare(e) <= 0 +} + +// Compare compares this version to another one. It returns -1, 0, or 1 if +// the version smaller, equal, or larger than the other version. +func (v *Version) Compare(o *Version) int { + if d := compareSegment(v.Major, o.Major); d != 0 { + return d + } + + return compareSegment(v.Minor, o.Minor) +} + +func compareSegment(v, o uint64) int { + if v < o { + return -1 + } + if v > o { + return 1 + } + + return 0 +} diff --git a/pkg/version/version_test.go b/pkg/version/version_test.go new file mode 100644 index 0000000..a2bde8b --- /dev/null +++ b/pkg/version/version_test.go @@ -0,0 +1,48 @@ +package version_test + +import ( + "gotest.tools/assert" + "testing" + + "github.com/z7zmey/php-parser/pkg/version" +) + +func Test(t *testing.T) { + ver, err := version.New("7.4") + assert.NilError(t, err) + + assert.Equal(t, *ver, version.Version{ + Major: 7, + Minor: 4, + }) +} + +func TestLeadingZero(t *testing.T) { + ver, err := version.New("07.04") + assert.NilError(t, err) + + assert.Equal(t, *ver, version.Version{ + Major: 7, + Minor: 4, + }) +} + +func TestInRange(t *testing.T) { + s, err := version.New("7.0") + assert.NilError(t, err) + + e, err := version.New("7.4") + assert.NilError(t, err) + + ver, err := version.New("7.0") + assert.NilError(t, err) + assert.Assert(t, ver.InRange(s, e)) + + ver, err = version.New("7.2") + assert.NilError(t, err) + assert.Assert(t, ver.InRange(s, e)) + + ver, err = version.New("7.4") + assert.NilError(t, err) + assert.Assert(t, ver.InRange(s, e)) +} diff --git a/pkg/visitor/printer/printer_php5_test.go b/pkg/visitor/printer/printer_php5_test.go index 69a8460..f73a055 100644 --- a/pkg/visitor/printer/printer_php5_test.go +++ b/pkg/visitor/printer/printer_php5_test.go @@ -2,18 +2,25 @@ package printer_test import ( "bytes" - printer2 "github.com/z7zmey/php-parser/pkg/visitor/printer" "testing" - "github.com/z7zmey/php-parser/pkg/ast" - "github.com/z7zmey/php-parser/internal/php5" "github.com/z7zmey/php-parser/internal/scanner" + "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/cfg" + "github.com/z7zmey/php-parser/pkg/version" + "github.com/z7zmey/php-parser/pkg/visitor/printer" ) func parsePhp5(src string) ast.Vertex { - lexer := scanner.NewLexer([]byte(src), "5.6", nil) - php5parser := php5.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 5, + Minor: 6, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php5parser := php5.NewParser(lexer, config) php5parser.Parse() return php5parser.GetRootNode() @@ -22,8 +29,8 @@ func parsePhp5(src string) ast.Vertex { func printPhp5(n ast.Vertex) string { o := bytes.NewBufferString("") - printer := printer2.NewPrinter(o) - n.Accept(printer) + p := printer.NewPrinter(o) + n.Accept(p) return o.String() } diff --git a/pkg/visitor/printer/printer_php7_test.go b/pkg/visitor/printer/printer_php7_test.go index 1039390..3aceb4d 100644 --- a/pkg/visitor/printer/printer_php7_test.go +++ b/pkg/visitor/printer/printer_php7_test.go @@ -2,13 +2,15 @@ package printer_test import ( "bytes" - printer2 "github.com/z7zmey/php-parser/pkg/visitor/printer" "os" "testing" "github.com/z7zmey/php-parser/internal/php7" "github.com/z7zmey/php-parser/internal/scanner" "github.com/z7zmey/php-parser/pkg/ast" + "github.com/z7zmey/php-parser/pkg/cfg" + "github.com/z7zmey/php-parser/pkg/version" + "github.com/z7zmey/php-parser/pkg/visitor/printer" ) func ExamplePrinter() { @@ -28,8 +30,14 @@ abstract class Bar extends Baz // parse - lexer := scanner.NewLexer([]byte(src), "7.4", nil) - php7parser := php7.NewParser(lexer, nil) + config := cfg.Config{ + Version: &version.Version{ + Major: 7, + Minor: 4, + }, + } + lexer := scanner.NewLexer([]byte(src), config) + php7parser := php7.NewParser(lexer, config) php7parser.Parse() rootNode := php7parser.GetRootNode() @@ -41,8 +49,8 @@ abstract class Bar extends Baz // print - printer := printer2.NewPrinter(os.Stdout) - rootNode.Accept(printer) + p := printer.NewPrinter(os.Stdout) + rootNode.Accept(p) // Output: //